// dt-sql-parser/src/grammar/plsql/PlSqlParser.g4 by ANTLR 4.12.0
// noinspection ES6UnusedImports,JSUnusedGlobalSymbols,JSUnusedLocalSymbols

import {
	ATN,
	ATNDeserializer, DecisionState, DFA, FailedPredicateException,
	RecognitionException, NoViableAltException, ParserATNSimulator,
	RuleContext, ParserRuleContext, PredictionContextCache,
	TerminalNode,
	Token, CommonTokenStream,
} from 'antlr4';

import PlSqlParserListener from "./PlSqlParserListener.js";
import PlSqlParserVisitor from "./PlSqlParserVisitor.js";

import PlSqlBaseParser from './base/PlSqlBaseParser';


export default class PlSqlParser extends PlSqlBaseParser {
	public static readonly ABORT = 1;
	public static readonly ABS = 2;
	public static readonly ACCESS = 3;
	public static readonly ACCESSED = 4;
	public static readonly ACCOUNT = 5;
	public static readonly ACL = 6;
	public static readonly ACOS = 7;
	public static readonly ACTION = 8;
	public static readonly ACTIONS = 9;
	public static readonly ACTIVATE = 10;
	public static readonly ACTIVE = 11;
	public static readonly ACTIVE_COMPONENT = 12;
	public static readonly ACTIVE_DATA = 13;
	public static readonly ACTIVE_FUNCTION = 14;
	public static readonly ACTIVE_TAG = 15;
	public static readonly ACTIVITY = 16;
	public static readonly ADAPTIVE_PLAN = 17;
	public static readonly ADD = 18;
	public static readonly ADD_COLUMN = 19;
	public static readonly ADD_GROUP = 20;
	public static readonly ADD_MONTHS = 21;
	public static readonly ADJ_DATE = 22;
	public static readonly ADMIN = 23;
	public static readonly ADMINISTER = 24;
	public static readonly ADMINISTRATOR = 25;
	public static readonly ADVANCED = 26;
	public static readonly ADVISE = 27;
	public static readonly ADVISOR = 28;
	public static readonly AFD_DISKSTRING = 29;
	public static readonly AFTER = 30;
	public static readonly AGENT = 31;
	public static readonly AGGREGATE = 32;
	public static readonly A_LETTER = 33;
	public static readonly ALIAS = 34;
	public static readonly ALL = 35;
	public static readonly ALLOCATE = 36;
	public static readonly ALLOW = 37;
	public static readonly ALL_ROWS = 38;
	public static readonly ALTER = 39;
	public static readonly ALWAYS = 40;
	public static readonly ANALYZE = 41;
	public static readonly ANCILLARY = 42;
	public static readonly AND = 43;
	public static readonly AND_EQUAL = 44;
	public static readonly ANOMALY = 45;
	public static readonly ANSI_REARCH = 46;
	public static readonly ANTIJOIN = 47;
	public static readonly ANY = 48;
	public static readonly ANYSCHEMA = 49;
	public static readonly APPEND = 50;
	public static readonly APPENDCHILDXML = 51;
	public static readonly APPEND_VALUES = 52;
	public static readonly APPLICATION = 53;
	public static readonly APPLY = 54;
	public static readonly APPROX_COUNT_DISTINCT = 55;
	public static readonly ARCHIVAL = 56;
	public static readonly ARCHIVE = 57;
	public static readonly ARCHIVED = 58;
	public static readonly ARCHIVELOG = 59;
	public static readonly ARRAY = 60;
	public static readonly AS = 61;
	public static readonly ASC = 62;
	public static readonly ASCII = 63;
	public static readonly ASCIISTR = 64;
	public static readonly ASIN = 65;
	public static readonly ASIS = 66;
	public static readonly ASSEMBLY = 67;
	public static readonly ASSIGN = 68;
	public static readonly ASSOCIATE = 69;
	public static readonly ASYNC = 70;
	public static readonly ASYNCHRONOUS = 71;
	public static readonly ATAN2 = 72;
	public static readonly ATAN = 73;
	public static readonly AT = 74;
	public static readonly ATTRIBUTE = 75;
	public static readonly ATTRIBUTES = 76;
	public static readonly AUDIT = 77;
	public static readonly AUTHENTICATED = 78;
	public static readonly AUTHENTICATION = 79;
	public static readonly AUTHID = 80;
	public static readonly AUTHORIZATION = 81;
	public static readonly AUTOALLOCATE = 82;
	public static readonly AUTO = 83;
	public static readonly AUTOBACKUP = 84;
	public static readonly AUTOEXTEND = 85;
	public static readonly AUTO_LOGIN = 86;
	public static readonly AUTOMATIC = 87;
	public static readonly AUTONOMOUS_TRANSACTION = 88;
	public static readonly AUTO_REOPTIMIZE = 89;
	public static readonly AVAILABILITY = 90;
	public static readonly AVRO = 91;
	public static readonly BACKGROUND = 92;
	public static readonly BACKUP = 93;
	public static readonly BACKUPSET = 94;
	public static readonly BASIC = 95;
	public static readonly BASICFILE = 96;
	public static readonly BATCH = 97;
	public static readonly BATCHSIZE = 98;
	public static readonly BATCH_TABLE_ACCESS_BY_ROWID = 99;
	public static readonly BECOME = 100;
	public static readonly BEFORE = 101;
	public static readonly BEGIN = 102;
	public static readonly BEGINNING = 103;
	public static readonly BEGIN_OUTLINE_DATA = 104;
	public static readonly BEHALF = 105;
	public static readonly BEQUEATH = 106;
	public static readonly BETWEEN = 107;
	public static readonly BFILE = 108;
	public static readonly BFILENAME = 109;
	public static readonly BIGFILE = 110;
	public static readonly BINARY = 111;
	public static readonly BINARY_DOUBLE = 112;
	public static readonly BINARY_DOUBLE_INFINITY = 113;
	public static readonly BINARY_DOUBLE_NAN = 114;
	public static readonly BINARY_FLOAT = 115;
	public static readonly BINARY_FLOAT_INFINITY = 116;
	public static readonly BINARY_FLOAT_NAN = 117;
	public static readonly BINARY_INTEGER = 118;
	public static readonly BIND_AWARE = 119;
	public static readonly BINDING = 120;
	public static readonly BIN_TO_NUM = 121;
	public static readonly BITAND = 122;
	public static readonly BITMAP_AND = 123;
	public static readonly BITMAP = 124;
	public static readonly BITMAPS = 125;
	public static readonly BITMAP_TREE = 126;
	public static readonly BITS = 127;
	public static readonly BLOB = 128;
	public static readonly BLOCK = 129;
	public static readonly BLOCK_RANGE = 130;
	public static readonly BLOCKS = 131;
	public static readonly BLOCKSIZE = 132;
	public static readonly BODY = 133;
	public static readonly BOOLEAN = 134;
	public static readonly BOTH = 135;
	public static readonly BOUND = 136;
	public static readonly BRANCH = 137;
	public static readonly BREADTH = 138;
	public static readonly BROADCAST = 139;
	public static readonly BSON = 140;
	public static readonly BUFFER = 141;
	public static readonly BUFFER_CACHE = 142;
	public static readonly BUFFER_POOL = 143;
	public static readonly BUILD = 144;
	public static readonly BULK = 145;
	public static readonly BY = 146;
	public static readonly BYPASS_RECURSIVE_CHECK = 147;
	public static readonly BYPASS_UJVC = 148;
	public static readonly BYTE = 149;
	public static readonly CACHE = 150;
	public static readonly CACHE_CB = 151;
	public static readonly CACHE_INSTANCES = 152;
	public static readonly CACHE_TEMP_TABLE = 153;
	public static readonly CACHING = 154;
	public static readonly CALCULATED = 155;
	public static readonly CALLBACK = 156;
	public static readonly CALL = 157;
	public static readonly CANCEL = 158;
	public static readonly CANONICAL = 159;
	public static readonly CAPACITY = 160;
	public static readonly CARDINALITY = 161;
	public static readonly CASCADE = 162;
	public static readonly CASE = 163;
	public static readonly CAST = 164;
	public static readonly CATEGORY = 165;
	public static readonly CDBDEFAULT = 166;
	public static readonly CEIL = 167;
	public static readonly CELL_FLASH_CACHE = 168;
	public static readonly CERTIFICATE = 169;
	public static readonly CFILE = 170;
	public static readonly CHAINED = 171;
	public static readonly CHANGE = 172;
	public static readonly CHANGETRACKING = 173;
	public static readonly CHANGE_DUPKEY_ERROR_INDEX = 174;
	public static readonly CHARACTER = 175;
	public static readonly CHAR = 176;
	public static readonly CHAR_CS = 177;
	public static readonly CHARTOROWID = 178;
	public static readonly CHECK_ACL_REWRITE = 179;
	public static readonly CHECK = 180;
	public static readonly CHECKPOINT = 181;
	public static readonly CHILD = 182;
	public static readonly CHOOSE = 183;
	public static readonly CHR = 184;
	public static readonly CHUNK = 185;
	public static readonly CLASS = 186;
	public static readonly CLASSIFIER = 187;
	public static readonly CLEANUP = 188;
	public static readonly CLEAR = 189;
	public static readonly C_LETTER = 190;
	public static readonly CLIENT = 191;
	public static readonly CLOB = 192;
	public static readonly CLONE = 193;
	public static readonly CLOSE_CACHED_OPEN_CURSORS = 194;
	public static readonly CLOSE = 195;
	public static readonly CLUSTER_BY_ROWID = 196;
	public static readonly CLUSTER = 197;
	public static readonly CLUSTER_DETAILS = 198;
	public static readonly CLUSTER_DISTANCE = 199;
	public static readonly CLUSTER_ID = 200;
	public static readonly CLUSTERING = 201;
	public static readonly CLUSTERING_FACTOR = 202;
	public static readonly CLUSTER_PROBABILITY = 203;
	public static readonly CLUSTER_SET = 204;
	public static readonly COALESCE = 205;
	public static readonly COALESCE_SQ = 206;
	public static readonly COARSE = 207;
	public static readonly CO_AUTH_IND = 208;
	public static readonly COLD = 209;
	public static readonly COLLECT = 210;
	public static readonly COLUMNAR = 211;
	public static readonly COLUMN_AUTH_INDICATOR = 212;
	public static readonly COLUMN = 213;
	public static readonly COLUMNS = 214;
	public static readonly COLUMN_STATS = 215;
	public static readonly COLUMN_VALUE = 216;
	public static readonly COMMENT = 217;
	public static readonly COMMIT = 218;
	public static readonly COMMITTED = 219;
	public static readonly COMMON_DATA = 220;
	public static readonly COMPACT = 221;
	public static readonly COMPATIBILITY = 222;
	public static readonly COMPILE = 223;
	public static readonly COMPLETE = 224;
	public static readonly COMPLIANCE = 225;
	public static readonly COMPONENT = 226;
	public static readonly COMPONENTS = 227;
	public static readonly COMPOSE = 228;
	public static readonly COMPOSITE = 229;
	public static readonly COMPOSITE_LIMIT = 230;
	public static readonly COMPOUND = 231;
	public static readonly COMPRESS = 232;
	public static readonly COMPUTE = 233;
	public static readonly CONCAT = 234;
	public static readonly CON_DBID_TO_ID = 235;
	public static readonly CONDITIONAL = 236;
	public static readonly CONDITION = 237;
	public static readonly CONFIRM = 238;
	public static readonly CONFORMING = 239;
	public static readonly CON_GUID_TO_ID = 240;
	public static readonly CON_ID = 241;
	public static readonly CON_NAME_TO_ID = 242;
	public static readonly CONNECT_BY_CB_WHR_ONLY = 243;
	public static readonly CONNECT_BY_COMBINE_SW = 244;
	public static readonly CONNECT_BY_COST_BASED = 245;
	public static readonly CONNECT_BY_ELIM_DUPS = 246;
	public static readonly CONNECT_BY_FILTERING = 247;
	public static readonly CONNECT_BY_ISCYCLE = 248;
	public static readonly CONNECT_BY_ISLEAF = 249;
	public static readonly CONNECT_BY_ROOT = 250;
	public static readonly CONNECT = 251;
	public static readonly CONNECT_TIME = 252;
	public static readonly CONSIDER = 253;
	public static readonly CONSISTENT = 254;
	public static readonly CONSTANT = 255;
	public static readonly CONST = 256;
	public static readonly CONSTRAINT = 257;
	public static readonly CONSTRAINTS = 258;
	public static readonly CONSTRUCTOR = 259;
	public static readonly CONTAINER = 260;
	public static readonly CONTAINER_DATA = 261;
	public static readonly CONTAINERS = 262;
	public static readonly CONTENT = 263;
	public static readonly CONTENTS = 264;
	public static readonly CONTEXT = 265;
	public static readonly CONTINUE = 266;
	public static readonly CONTROLFILE = 267;
	public static readonly CON_UID_TO_ID = 268;
	public static readonly CONVERT = 269;
	public static readonly COOKIE = 270;
	public static readonly COPY = 271;
	public static readonly CORR_K = 272;
	public static readonly CORR_S = 273;
	public static readonly CORRUPTION = 274;
	public static readonly CORRUPT_XID_ALL = 275;
	public static readonly CORRUPT_XID = 276;
	public static readonly COS = 277;
	public static readonly COSH = 278;
	public static readonly COST = 279;
	public static readonly COST_XML_QUERY_REWRITE = 280;
	public static readonly COUNT = 281;
	public static readonly COVAR_POP = 282;
	public static readonly COVAR_SAMP = 283;
	public static readonly CPU_COSTING = 284;
	public static readonly CPU_PER_CALL = 285;
	public static readonly CPU_PER_SESSION = 286;
	public static readonly CRASH = 287;
	public static readonly CREATE = 288;
	public static readonly CREATE_FILE_DEST = 289;
	public static readonly CREATE_STORED_OUTLINES = 290;
	public static readonly CREATION = 291;
	public static readonly CREDENTIAL = 292;
	public static readonly CRITICAL = 293;
	public static readonly CROSS = 294;
	public static readonly CROSSEDITION = 295;
	public static readonly CSCONVERT = 296;
	public static readonly CUBE_AJ = 297;
	public static readonly CUBE = 298;
	public static readonly CUBE_GB = 299;
	public static readonly CUBE_SJ = 300;
	public static readonly CUME_DISTM = 301;
	public static readonly CURRENT = 302;
	public static readonly CURRENT_DATE = 303;
	public static readonly CURRENT_SCHEMA = 304;
	public static readonly CURRENT_TIME = 305;
	public static readonly CURRENT_TIMESTAMP = 306;
	public static readonly CURRENT_USER = 307;
	public static readonly CURRENTV = 308;
	public static readonly CURSOR = 309;
	public static readonly CURSOR_SHARING_EXACT = 310;
	public static readonly CURSOR_SPECIFIC_SEGMENT = 311;
	public static readonly CUSTOMDATUM = 312;
	public static readonly CV = 313;
	public static readonly CYCLE = 314;
	public static readonly DANGLING = 315;
	public static readonly DATABASE = 316;
	public static readonly DATA = 317;
	public static readonly DATAFILE = 318;
	public static readonly DATAFILES = 319;
	public static readonly DATAGUARDCONFIG = 320;
	public static readonly DATAMOVEMENT = 321;
	public static readonly DATAOBJNO = 322;
	public static readonly DATAOBJ_TO_MAT_PARTITION = 323;
	public static readonly DATAOBJ_TO_PARTITION = 324;
	public static readonly DATAPUMP = 325;
	public static readonly DATA_SECURITY_REWRITE_LIMIT = 326;
	public static readonly DATE = 327;
	public static readonly DATE_MODE = 328;
	public static readonly DAY = 329;
	public static readonly DAYS = 330;
	public static readonly DBA = 331;
	public static readonly DBA_RECYCLEBIN = 332;
	public static readonly DBMS_STATS = 333;
	public static readonly DB_ROLE_CHANGE = 334;
	public static readonly DBTIMEZONE = 335;
	public static readonly DB_UNIQUE_NAME = 336;
	public static readonly DB_VERSION = 337;
	public static readonly DDL = 338;
	public static readonly DEALLOCATE = 339;
	public static readonly DEBUG = 340;
	public static readonly DEBUGGER = 341;
	public static readonly DEC = 342;
	public static readonly DECIMAL = 343;
	public static readonly DECLARE = 344;
	public static readonly DECOMPOSE = 345;
	public static readonly DECORRELATE = 346;
	public static readonly DECR = 347;
	public static readonly DECREMENT = 348;
	public static readonly DECRYPT = 349;
	public static readonly DEDUPLICATE = 350;
	public static readonly DEFAULT = 351;
	public static readonly DEFAULTS = 352;
	public static readonly DEFERRABLE = 353;
	public static readonly DEFERRED = 354;
	public static readonly DEFINED = 355;
	public static readonly DEFINE = 356;
	public static readonly DEFINER = 357;
	public static readonly DEGREE = 358;
	public static readonly DELAY = 359;
	public static readonly DELEGATE = 360;
	public static readonly DELETE_ALL = 361;
	public static readonly DELETE = 362;
	public static readonly DELETEXML = 363;
	public static readonly DEMAND = 364;
	public static readonly DENSE_RANKM = 365;
	public static readonly DEPENDENT = 366;
	public static readonly DEPTH = 367;
	public static readonly DEQUEUE = 368;
	public static readonly DEREF = 369;
	public static readonly DEREF_NO_REWRITE = 370;
	public static readonly DESC = 371;
	public static readonly DESTROY = 372;
	public static readonly DETACHED = 373;
	public static readonly DETERMINES = 374;
	public static readonly DETERMINISTIC = 375;
	public static readonly DICTIONARY = 376;
	public static readonly DIMENSION = 377;
	public static readonly DIMENSIONS = 378;
	public static readonly DIRECT_LOAD = 379;
	public static readonly DIRECTORY = 380;
	public static readonly DIRECT_PATH = 381;
	public static readonly DISABLE_ALL = 382;
	public static readonly DISABLE = 383;
	public static readonly DISABLE_PARALLEL_DML = 384;
	public static readonly DISABLE_PRESET = 385;
	public static readonly DISABLE_RPKE = 386;
	public static readonly DISALLOW = 387;
	public static readonly DISASSOCIATE = 388;
	public static readonly DISCARD = 389;
	public static readonly DISCONNECT = 390;
	public static readonly DISK = 391;
	public static readonly DISKGROUP = 392;
	public static readonly DISKGROUP_PLUS = 393;
	public static readonly DISKS = 394;
	public static readonly DISMOUNT = 395;
	public static readonly DISTINCT = 396;
	public static readonly DISTINGUISHED = 397;
	public static readonly DISTRIBUTED = 398;
	public static readonly DISTRIBUTE = 399;
	public static readonly DML = 400;
	public static readonly DML_UPDATE = 401;
	public static readonly DOCFIDELITY = 402;
	public static readonly DOCUMENT = 403;
	public static readonly DOMAIN_INDEX_FILTER = 404;
	public static readonly DOMAIN_INDEX_NO_SORT = 405;
	public static readonly DOMAIN_INDEX_SORT = 406;
	public static readonly DOUBLE = 407;
	public static readonly DOWNGRADE = 408;
	public static readonly DRIVING_SITE = 409;
	public static readonly DROP_COLUMN = 410;
	public static readonly DROP = 411;
	public static readonly DROP_GROUP = 412;
	public static readonly DSINTERVAL_UNCONSTRAINED = 413;
	public static readonly DST_UPGRADE_INSERT_CONV = 414;
	public static readonly DUMP = 415;
	public static readonly DUMPSET = 416;
	public static readonly DUPLICATE = 417;
	public static readonly DV = 418;
	public static readonly DYNAMIC = 419;
	public static readonly DYNAMIC_SAMPLING = 420;
	public static readonly DYNAMIC_SAMPLING_EST_CDN = 421;
	public static readonly EACH = 422;
	public static readonly EDITIONABLE = 423;
	public static readonly EDITION = 424;
	public static readonly EDITIONING = 425;
	public static readonly EDITIONS = 426;
	public static readonly ELEMENT = 427;
	public static readonly ELIM_GROUPBY = 428;
	public static readonly ELIMINATE_JOIN = 429;
	public static readonly ELIMINATE_OBY = 430;
	public static readonly ELIMINATE_OUTER_JOIN = 431;
	public static readonly ELSE = 432;
	public static readonly ELSIF = 433;
	public static readonly EM = 434;
	public static readonly EMPTY_BLOB = 435;
	public static readonly EMPTY_CLOB = 436;
	public static readonly EMPTY = 437;
	public static readonly ENABLE_ALL = 438;
	public static readonly ENABLE = 439;
	public static readonly ENABLE_PARALLEL_DML = 440;
	public static readonly ENABLE_PRESET = 441;
	public static readonly ENCODING = 442;
	public static readonly ENCRYPT = 443;
	public static readonly ENCRYPTION = 444;
	public static readonly END = 445;
	public static readonly END_OUTLINE_DATA = 446;
	public static readonly ENFORCED = 447;
	public static readonly ENFORCE = 448;
	public static readonly ENQUEUE = 449;
	public static readonly ENTERPRISE = 450;
	public static readonly ENTITYESCAPING = 451;
	public static readonly ENTRY = 452;
	public static readonly EQUIPART = 453;
	public static readonly ERR = 454;
	public static readonly ERROR_ARGUMENT = 455;
	public static readonly ERROR = 456;
	public static readonly ERROR_ON_OVERLAP_TIME = 457;
	public static readonly ERRORS = 458;
	public static readonly ESCAPE = 459;
	public static readonly ESTIMATE = 460;
	public static readonly EVAL = 461;
	public static readonly EVALNAME = 462;
	public static readonly EVALUATE = 463;
	public static readonly EVALUATION = 464;
	public static readonly EVENTS = 465;
	public static readonly EVERY = 466;
	public static readonly EXCEPT = 467;
	public static readonly EXCEPTION = 468;
	public static readonly EXCEPTION_INIT = 469;
	public static readonly EXCEPTIONS = 470;
	public static readonly EXCHANGE = 471;
	public static readonly EXCLUDE = 472;
	public static readonly EXCLUDING = 473;
	public static readonly EXCLUSIVE = 474;
	public static readonly EXECUTE = 475;
	public static readonly EXEMPT = 476;
	public static readonly EXISTING = 477;
	public static readonly EXISTS = 478;
	public static readonly EXISTSNODE = 479;
	public static readonly EXIT = 480;
	public static readonly EXPAND_GSET_TO_UNION = 481;
	public static readonly EXPAND_TABLE = 482;
	public static readonly EXP = 483;
	public static readonly EXPIRE = 484;
	public static readonly EXPLAIN = 485;
	public static readonly EXPLOSION = 486;
	public static readonly EXPORT = 487;
	public static readonly EXPR_CORR_CHECK = 488;
	public static readonly EXPRESS = 489;
	public static readonly EXTENDS = 490;
	public static readonly EXTENT = 491;
	public static readonly EXTENTS = 492;
	public static readonly EXTERNAL = 493;
	public static readonly EXTERNALLY = 494;
	public static readonly EXTRACTCLOBXML = 495;
	public static readonly EXTRACT = 496;
	public static readonly EXTRACTVALUE = 497;
	public static readonly EXTRA = 498;
	public static readonly FACILITY = 499;
	public static readonly FACT = 500;
	public static readonly FACTOR = 501;
	public static readonly FACTORIZE_JOIN = 502;
	public static readonly FAILED = 503;
	public static readonly FAILED_LOGIN_ATTEMPTS = 504;
	public static readonly FAILGROUP = 505;
	public static readonly FAILOVER = 506;
	public static readonly FAILURE = 507;
	public static readonly FALSE = 508;
	public static readonly FAMILY = 509;
	public static readonly FAR = 510;
	public static readonly FAST = 511;
	public static readonly FASTSTART = 512;
	public static readonly FBTSCAN = 513;
	public static readonly FEATURE_DETAILS = 514;
	public static readonly FEATURE_ID = 515;
	public static readonly FEATURE_SET = 516;
	public static readonly FEATURE_VALUE = 517;
	public static readonly FETCH = 518;
	public static readonly FILE = 519;
	public static readonly FILE_NAME_CONVERT = 520;
	public static readonly FILESYSTEM_LIKE_LOGGING = 521;
	public static readonly FILTER = 522;
	public static readonly FINAL = 523;
	public static readonly FINE = 524;
	public static readonly FINISH = 525;
	public static readonly FIRST = 526;
	public static readonly FIRSTM = 527;
	public static readonly FIRST_ROWS = 528;
	public static readonly FIRST_VALUE = 529;
	public static readonly FIXED_VIEW_DATA = 530;
	public static readonly FLAGGER = 531;
	public static readonly FLASHBACK = 532;
	public static readonly FLASH_CACHE = 533;
	public static readonly FLOAT = 534;
	public static readonly FLOB = 535;
	public static readonly FLOOR = 536;
	public static readonly FLUSH = 537;
	public static readonly FOLDER = 538;
	public static readonly FOLLOWING = 539;
	public static readonly FOLLOWS = 540;
	public static readonly FORALL = 541;
	public static readonly FORCE = 542;
	public static readonly FORCE_XML_QUERY_REWRITE = 543;
	public static readonly FOREIGN = 544;
	public static readonly FOREVER = 545;
	public static readonly FOR = 546;
	public static readonly FORMAT = 547;
	public static readonly FORWARD = 548;
	public static readonly FRAGMENT_NUMBER = 549;
	public static readonly FREELIST = 550;
	public static readonly FREELISTS = 551;
	public static readonly FREEPOOLS = 552;
	public static readonly FRESH = 553;
	public static readonly FROM = 554;
	public static readonly FROM_TZ = 555;
	public static readonly FULL = 556;
	public static readonly FULL_OUTER_JOIN_TO_OUTER = 557;
	public static readonly FUNCTION = 558;
	public static readonly FUNCTIONS = 559;
	public static readonly GATHER_OPTIMIZER_STATISTICS = 560;
	public static readonly GATHER_PLAN_STATISTICS = 561;
	public static readonly GBY_CONC_ROLLUP = 562;
	public static readonly GBY_PUSHDOWN = 563;
	public static readonly GENERATED = 564;
	public static readonly GET = 565;
	public static readonly GLOBAL = 566;
	public static readonly GLOBALLY = 567;
	public static readonly GLOBAL_NAME = 568;
	public static readonly GLOBAL_TOPIC_ENABLED = 569;
	public static readonly GOTO = 570;
	public static readonly GRANT = 571;
	public static readonly GROUP_BY = 572;
	public static readonly GROUP = 573;
	public static readonly GROUP_ID = 574;
	public static readonly GROUPING = 575;
	public static readonly GROUPING_ID = 576;
	public static readonly GROUPS = 577;
	public static readonly GUARANTEED = 578;
	public static readonly GUARANTEE = 579;
	public static readonly GUARD = 580;
	public static readonly HASH_AJ = 581;
	public static readonly HASH = 582;
	public static readonly HASHKEYS = 583;
	public static readonly HASH_SJ = 584;
	public static readonly HAVING = 585;
	public static readonly HEADER = 586;
	public static readonly HEAP = 587;
	public static readonly HELP = 588;
	public static readonly HEXTORAW = 589;
	public static readonly HEXTOREF = 590;
	public static readonly HIDDEN_KEYWORD = 591;
	public static readonly HIDE = 592;
	public static readonly HIERARCHY = 593;
	public static readonly HIGH = 594;
	public static readonly HINTSET_BEGIN = 595;
	public static readonly HINTSET_END = 596;
	public static readonly HOT = 597;
	public static readonly HOUR = 598;
	public static readonly HWM_BROKERED = 599;
	public static readonly HYBRID = 600;
	public static readonly IDENTIFIED = 601;
	public static readonly IDENTIFIER = 602;
	public static readonly IDENTITY = 603;
	public static readonly IDGENERATORS = 604;
	public static readonly ID = 605;
	public static readonly IDLE_TIME = 606;
	public static readonly IF = 607;
	public static readonly IGNORE = 608;
	public static readonly IGNORE_OPTIM_EMBEDDED_HINTS = 609;
	public static readonly IGNORE_ROW_ON_DUPKEY_INDEX = 610;
	public static readonly IGNORE_WHERE_CLAUSE = 611;
	public static readonly ILM = 612;
	public static readonly IMMEDIATE = 613;
	public static readonly IMPACT = 614;
	public static readonly IMPORT = 615;
	public static readonly INACTIVE = 616;
	public static readonly INCLUDE = 617;
	public static readonly INCLUDE_VERSION = 618;
	public static readonly INCLUDING = 619;
	public static readonly INCREMENTAL = 620;
	public static readonly INCREMENT = 621;
	public static readonly INCR = 622;
	public static readonly INDENT = 623;
	public static readonly INDEX_ASC = 624;
	public static readonly INDEX_COMBINE = 625;
	public static readonly INDEX_DESC = 626;
	public static readonly INDEXED = 627;
	public static readonly INDEXES = 628;
	public static readonly INDEX_FFS = 629;
	public static readonly INDEX_FILTER = 630;
	public static readonly INDEX = 631;
	public static readonly INDEXING = 632;
	public static readonly INDEX_JOIN = 633;
	public static readonly INDEX_ROWS = 634;
	public static readonly INDEX_RRS = 635;
	public static readonly INDEX_RS_ASC = 636;
	public static readonly INDEX_RS_DESC = 637;
	public static readonly INDEX_RS = 638;
	public static readonly INDEX_SCAN = 639;
	public static readonly INDEX_SKIP_SCAN = 640;
	public static readonly INDEX_SS_ASC = 641;
	public static readonly INDEX_SS_DESC = 642;
	public static readonly INDEX_SS = 643;
	public static readonly INDEX_STATS = 644;
	public static readonly INDEXTYPE = 645;
	public static readonly INDEXTYPES = 646;
	public static readonly INDICATOR = 647;
	public static readonly INDICES = 648;
	public static readonly INFINITE = 649;
	public static readonly INFORMATIONAL = 650;
	public static readonly INHERIT = 651;
	public static readonly IN = 652;
	public static readonly INITCAP = 653;
	public static readonly INITIAL = 654;
	public static readonly INITIALIZED = 655;
	public static readonly INITIALLY = 656;
	public static readonly INITRANS = 657;
	public static readonly INLINE = 658;
	public static readonly INLINE_XMLTYPE_NT = 659;
	public static readonly INMEMORY = 660;
	public static readonly IN_MEMORY_METADATA = 661;
	public static readonly INMEMORY_PRUNING = 662;
	public static readonly INNER = 663;
	public static readonly INOUT = 664;
	public static readonly INPLACE = 665;
	public static readonly INSERTCHILDXMLAFTER = 666;
	public static readonly INSERTCHILDXMLBEFORE = 667;
	public static readonly INSERTCHILDXML = 668;
	public static readonly INSERT = 669;
	public static readonly INSERTXMLAFTER = 670;
	public static readonly INSERTXMLBEFORE = 671;
	public static readonly INSTANCE = 672;
	public static readonly INSTANCES = 673;
	public static readonly INSTANTIABLE = 674;
	public static readonly INSTANTLY = 675;
	public static readonly INSTEAD = 676;
	public static readonly INSTR2 = 677;
	public static readonly INSTR4 = 678;
	public static readonly INSTRB = 679;
	public static readonly INSTRC = 680;
	public static readonly INSTR = 681;
	public static readonly INTEGER = 682;
	public static readonly INTERLEAVED = 683;
	public static readonly INTERMEDIATE = 684;
	public static readonly INTERNAL_CONVERT = 685;
	public static readonly INTERNAL_USE = 686;
	public static readonly INTERPRETED = 687;
	public static readonly INTERSECT = 688;
	public static readonly INTERVAL = 689;
	public static readonly INT = 690;
	public static readonly INTO = 691;
	public static readonly INVALIDATE = 692;
	public static readonly INVISIBLE = 693;
	public static readonly IN_XQUERY = 694;
	public static readonly IS = 695;
	public static readonly ISOLATION = 696;
	public static readonly ISOLATION_LEVEL = 697;
	public static readonly ITERATE = 698;
	public static readonly ITERATION_NUMBER = 699;
	public static readonly JAVA = 700;
	public static readonly JOB = 701;
	public static readonly JOIN = 702;
	public static readonly JSON_ARRAYAGG = 703;
	public static readonly JSON_ARRAY = 704;
	public static readonly JSON_EQUAL = 705;
	public static readonly JSON_EXISTS2 = 706;
	public static readonly JSON_EXISTS = 707;
	public static readonly JSONGET = 708;
	public static readonly JSON = 709;
	public static readonly JSON_OBJECTAGG = 710;
	public static readonly JSON_OBJECT = 711;
	public static readonly JSONPARSE = 712;
	public static readonly JSON_QUERY = 713;
	public static readonly JSON_SERIALIZE = 714;
	public static readonly JSON_TABLE = 715;
	public static readonly JSON_TEXTCONTAINS2 = 716;
	public static readonly JSON_TEXTCONTAINS = 717;
	public static readonly JSON_VALUE = 718;
	public static readonly KEEP_DUPLICATES = 719;
	public static readonly KEEP = 720;
	public static readonly KERBEROS = 721;
	public static readonly KEY = 722;
	public static readonly KEY_LENGTH = 723;
	public static readonly KEYSIZE = 724;
	public static readonly KEYS = 725;
	public static readonly KEYSTORE = 726;
	public static readonly KILL = 727;
	public static readonly LABEL = 728;
	public static readonly LANGUAGE = 729;
	public static readonly LAST_DAY = 730;
	public static readonly LAST = 731;
	public static readonly LAST_VALUE = 732;
	public static readonly LATERAL = 733;
	public static readonly LAX = 734;
	public static readonly LAYER = 735;
	public static readonly LDAP_REGISTRATION_ENABLED = 736;
	public static readonly LDAP_REGISTRATION = 737;
	public static readonly LDAP_REG_SYNC_INTERVAL = 738;
	public static readonly LEADING = 739;
	public static readonly LEFT = 740;
	public static readonly LENGTH2 = 741;
	public static readonly LENGTH4 = 742;
	public static readonly LENGTHB = 743;
	public static readonly LENGTHC = 744;
	public static readonly LENGTH = 745;
	public static readonly LESS = 746;
	public static readonly LEVEL = 747;
	public static readonly LEVELS = 748;
	public static readonly LIBRARY = 749;
	public static readonly LIFECYCLE = 750;
	public static readonly LIFE = 751;
	public static readonly LIFETIME = 752;
	public static readonly LIKE2 = 753;
	public static readonly LIKE4 = 754;
	public static readonly LIKEC = 755;
	public static readonly LIKE_EXPAND = 756;
	public static readonly LIKE = 757;
	public static readonly LIMIT = 758;
	public static readonly LINEAR = 759;
	public static readonly LINK = 760;
	public static readonly LIST = 761;
	public static readonly LN = 762;
	public static readonly LNNVL = 763;
	public static readonly LOAD = 764;
	public static readonly LOB = 765;
	public static readonly LOBNVL = 766;
	public static readonly LOBS = 767;
	public static readonly LOCAL_INDEXES = 768;
	public static readonly LOCAL = 769;
	public static readonly LOCALTIME = 770;
	public static readonly LOCALTIMESTAMP = 771;
	public static readonly LOCATION = 772;
	public static readonly LOCATOR = 773;
	public static readonly LOCKED = 774;
	public static readonly LOCKING = 775;
	public static readonly LOCK = 776;
	public static readonly LOGFILE = 777;
	public static readonly LOGFILES = 778;
	public static readonly LOGGING = 779;
	public static readonly LOGICAL = 780;
	public static readonly LOGICAL_READS_PER_CALL = 781;
	public static readonly LOGICAL_READS_PER_SESSION = 782;
	public static readonly LOG = 783;
	public static readonly LOGMINING = 784;
	public static readonly LOGOFF = 785;
	public static readonly LOGON = 786;
	public static readonly LOG_READ_ONLY_VIOLATIONS = 787;
	public static readonly LONG = 788;
	public static readonly LOOP = 789;
	public static readonly LOWER = 790;
	public static readonly LOW = 791;
	public static readonly LPAD = 792;
	public static readonly LTRIM = 793;
	public static readonly MAIN = 794;
	public static readonly MAKE_REF = 795;
	public static readonly MANAGED = 796;
	public static readonly MANAGE = 797;
	public static readonly MANAGEMENT = 798;
	public static readonly MANAGER = 799;
	public static readonly MANUAL = 800;
	public static readonly MAP = 801;
	public static readonly MAPPING = 802;
	public static readonly MASTER = 803;
	public static readonly MATCHED = 804;
	public static readonly MATCHES = 805;
	public static readonly MATCH = 806;
	public static readonly MATCH_NUMBER = 807;
	public static readonly MATCH_RECOGNIZE = 808;
	public static readonly MATERIALIZED = 809;
	public static readonly MATERIALIZE = 810;
	public static readonly MAXARCHLOGS = 811;
	public static readonly MAXDATAFILES = 812;
	public static readonly MAXEXTENTS = 813;
	public static readonly MAXIMIZE = 814;
	public static readonly MAXINSTANCES = 815;
	public static readonly MAXLOGFILES = 816;
	public static readonly MAXLOGHISTORY = 817;
	public static readonly MAXLOGMEMBERS = 818;
	public static readonly MAX_SHARED_TEMP_SIZE = 819;
	public static readonly MAXSIZE = 820;
	public static readonly MAXTRANS = 821;
	public static readonly MAXVALUE = 822;
	public static readonly MEASURE = 823;
	public static readonly MEASURES = 824;
	public static readonly MEDIUM = 825;
	public static readonly MEMBER = 826;
	public static readonly MEMCOMPRESS = 827;
	public static readonly MEMORY = 828;
	public static readonly MERGEACTIONS = 829;
	public static readonly MERGE_AJ = 830;
	public static readonly MERGE_CONST_ON = 831;
	public static readonly MERGE = 832;
	public static readonly MERGE_SJ = 833;
	public static readonly METADATA = 834;
	public static readonly METHOD = 835;
	public static readonly MIGRATE = 836;
	public static readonly MIGRATION = 837;
	public static readonly MINEXTENTS = 838;
	public static readonly MINIMIZE = 839;
	public static readonly MINIMUM = 840;
	public static readonly MINING = 841;
	public static readonly MINUS = 842;
	public static readonly MINUS_NULL = 843;
	public static readonly MINUTE = 844;
	public static readonly MINVALUE = 845;
	public static readonly MIRRORCOLD = 846;
	public static readonly MIRRORHOT = 847;
	public static readonly MIRROR = 848;
	public static readonly MLSLABEL = 849;
	public static readonly MODEL_COMPILE_SUBQUERY = 850;
	public static readonly MODEL_DONTVERIFY_UNIQUENESS = 851;
	public static readonly MODEL_DYNAMIC_SUBQUERY = 852;
	public static readonly MODEL_MIN_ANALYSIS = 853;
	public static readonly MODEL = 854;
	public static readonly MODEL_NB = 855;
	public static readonly MODEL_NO_ANALYSIS = 856;
	public static readonly MODEL_PBY = 857;
	public static readonly MODEL_PUSH_REF = 858;
	public static readonly MODEL_SV = 859;
	public static readonly MODE = 860;
	public static readonly MODIFICATION = 861;
	public static readonly MODIFY_COLUMN_TYPE = 862;
	public static readonly MODIFY = 863;
	public static readonly MOD = 864;
	public static readonly MODULE = 865;
	public static readonly MONITORING = 866;
	public static readonly MONITOR = 867;
	public static readonly MONTH = 868;
	public static readonly MONTHS_BETWEEN = 869;
	public static readonly MONTHS = 870;
	public static readonly MOUNT = 871;
	public static readonly MOUNTPATH = 872;
	public static readonly MOVEMENT = 873;
	public static readonly MOVE = 874;
	public static readonly MULTIDIMENSIONAL = 875;
	public static readonly MULTISET = 876;
	public static readonly MV_MERGE = 877;
	public static readonly NAMED = 878;
	public static readonly NAME = 879;
	public static readonly NAMESPACE = 880;
	public static readonly NAN = 881;
	public static readonly NANVL = 882;
	public static readonly NATIONAL = 883;
	public static readonly NATIVE_FULL_OUTER_JOIN = 884;
	public static readonly NATIVE = 885;
	public static readonly NATURAL = 886;
	public static readonly NATURALN = 887;
	public static readonly NAV = 888;
	public static readonly NCHAR_CS = 889;
	public static readonly NCHAR = 890;
	public static readonly NCHR = 891;
	public static readonly NCLOB = 892;
	public static readonly NEEDED = 893;
	public static readonly NEG = 894;
	public static readonly NESTED = 895;
	public static readonly NESTED_TABLE_FAST_INSERT = 896;
	public static readonly NESTED_TABLE_GET_REFS = 897;
	public static readonly NESTED_TABLE_ID = 898;
	public static readonly NESTED_TABLE_SET_REFS = 899;
	public static readonly NESTED_TABLE_SET_SETID = 900;
	public static readonly NETWORK = 901;
	public static readonly NEVER = 902;
	public static readonly NEW = 903;
	public static readonly NEW_TIME = 904;
	public static readonly NEXT_DAY = 905;
	public static readonly NEXT = 906;
	public static readonly NL_AJ = 907;
	public static readonly NLJ_BATCHING = 908;
	public static readonly NLJ_INDEX_FILTER = 909;
	public static readonly NLJ_INDEX_SCAN = 910;
	public static readonly NLJ_PREFETCH = 911;
	public static readonly NLS_CALENDAR = 912;
	public static readonly NLS_CHARACTERSET = 913;
	public static readonly NLS_CHARSET_DECL_LEN = 914;
	public static readonly NLS_CHARSET_ID = 915;
	public static readonly NLS_CHARSET_NAME = 916;
	public static readonly NLS_COMP = 917;
	public static readonly NLS_CURRENCY = 918;
	public static readonly NLS_DATE_FORMAT = 919;
	public static readonly NLS_DATE_LANGUAGE = 920;
	public static readonly NLS_INITCAP = 921;
	public static readonly NLS_ISO_CURRENCY = 922;
	public static readonly NL_SJ = 923;
	public static readonly NLS_LANG = 924;
	public static readonly NLS_LANGUAGE = 925;
	public static readonly NLS_LENGTH_SEMANTICS = 926;
	public static readonly NLS_LOWER = 927;
	public static readonly NLS_NCHAR_CONV_EXCP = 928;
	public static readonly NLS_NUMERIC_CHARACTERS = 929;
	public static readonly NLS_SORT = 930;
	public static readonly NLSSORT = 931;
	public static readonly NLS_SPECIAL_CHARS = 932;
	public static readonly NLS_TERRITORY = 933;
	public static readonly NLS_UPPER = 934;
	public static readonly NO_ACCESS = 935;
	public static readonly NO_ADAPTIVE_PLAN = 936;
	public static readonly NO_ANSI_REARCH = 937;
	public static readonly NOAPPEND = 938;
	public static readonly NOARCHIVELOG = 939;
	public static readonly NOAUDIT = 940;
	public static readonly NO_AUTO_REOPTIMIZE = 941;
	public static readonly NO_BASETABLE_MULTIMV_REWRITE = 942;
	public static readonly NO_BATCH_TABLE_ACCESS_BY_ROWID = 943;
	public static readonly NO_BIND_AWARE = 944;
	public static readonly NO_BUFFER = 945;
	public static readonly NOCACHE = 946;
	public static readonly NO_CARTESIAN = 947;
	public static readonly NO_CHECK_ACL_REWRITE = 948;
	public static readonly NO_CLUSTER_BY_ROWID = 949;
	public static readonly NO_CLUSTERING = 950;
	public static readonly NO_COALESCE_SQ = 951;
	public static readonly NO_COMMON_DATA = 952;
	public static readonly NOCOMPRESS = 953;
	public static readonly NO_CONNECT_BY_CB_WHR_ONLY = 954;
	public static readonly NO_CONNECT_BY_COMBINE_SW = 955;
	public static readonly NO_CONNECT_BY_COST_BASED = 956;
	public static readonly NO_CONNECT_BY_ELIM_DUPS = 957;
	public static readonly NO_CONNECT_BY_FILTERING = 958;
	public static readonly NOCOPY = 959;
	public static readonly NO_COST_XML_QUERY_REWRITE = 960;
	public static readonly NO_CPU_COSTING = 961;
	public static readonly NOCPU_COSTING = 962;
	public static readonly NOCYCLE = 963;
	public static readonly NO_DATA_SECURITY_REWRITE = 964;
	public static readonly NO_DECORRELATE = 965;
	public static readonly NODELAY = 966;
	public static readonly NO_DOMAIN_INDEX_FILTER = 967;
	public static readonly NO_DST_UPGRADE_INSERT_CONV = 968;
	public static readonly NO_ELIM_GROUPBY = 969;
	public static readonly NO_ELIMINATE_JOIN = 970;
	public static readonly NO_ELIMINATE_OBY = 971;
	public static readonly NO_ELIMINATE_OUTER_JOIN = 972;
	public static readonly NOENTITYESCAPING = 973;
	public static readonly NO_EXPAND_GSET_TO_UNION = 974;
	public static readonly NO_EXPAND = 975;
	public static readonly NO_EXPAND_TABLE = 976;
	public static readonly NO_FACT = 977;
	public static readonly NO_FACTORIZE_JOIN = 978;
	public static readonly NO_FILTERING = 979;
	public static readonly NOFORCE = 980;
	public static readonly NO_FULL_OUTER_JOIN_TO_OUTER = 981;
	public static readonly NO_GATHER_OPTIMIZER_STATISTICS = 982;
	public static readonly NO_GBY_PUSHDOWN = 983;
	public static readonly NOGUARANTEE = 984;
	public static readonly NO_INDEX_FFS = 985;
	public static readonly NO_INDEX = 986;
	public static readonly NO_INDEX_SS = 987;
	public static readonly NO_INMEMORY = 988;
	public static readonly NO_INMEMORY_PRUNING = 989;
	public static readonly NOKEEP = 990;
	public static readonly NO_LOAD = 991;
	public static readonly NOLOCAL = 992;
	public static readonly NOLOGGING = 993;
	public static readonly NOMAPPING = 994;
	public static readonly NOMAXVALUE = 995;
	public static readonly NO_MERGE = 996;
	public static readonly NOMINIMIZE = 997;
	public static readonly NOMINVALUE = 998;
	public static readonly NO_MODEL_PUSH_REF = 999;
	public static readonly NO_MONITORING = 1000;
	public static readonly NOMONITORING = 1001;
	public static readonly NO_MONITOR = 1002;
	public static readonly NO_MULTIMV_REWRITE = 1003;
	public static readonly NO_NATIVE_FULL_OUTER_JOIN = 1004;
	public static readonly NONBLOCKING = 1005;
	public static readonly NONEDITIONABLE = 1006;
	public static readonly NONE = 1007;
	public static readonly NO_NLJ_BATCHING = 1008;
	public static readonly NO_NLJ_PREFETCH = 1009;
	public static readonly NO = 1010;
	public static readonly NONSCHEMA = 1011;
	public static readonly NO_OBJECT_LINK = 1012;
	public static readonly NOORDER = 1013;
	public static readonly NO_ORDER_ROLLUPS = 1014;
	public static readonly NO_OUTER_JOIN_TO_ANTI = 1015;
	public static readonly NO_OUTER_JOIN_TO_INNER = 1016;
	public static readonly NOOVERRIDE = 1017;
	public static readonly NO_PARALLEL_INDEX = 1018;
	public static readonly NOPARALLEL_INDEX = 1019;
	public static readonly NO_PARALLEL = 1020;
	public static readonly NOPARALLEL = 1021;
	public static readonly NO_PARTIAL_COMMIT = 1022;
	public static readonly NO_PARTIAL_JOIN = 1023;
	public static readonly NO_PARTIAL_ROLLUP_PUSHDOWN = 1024;
	public static readonly NOPARTITION = 1025;
	public static readonly NO_PLACE_DISTINCT = 1026;
	public static readonly NO_PLACE_GROUP_BY = 1027;
	public static readonly NO_PQ_CONCURRENT_UNION = 1028;
	public static readonly NO_PQ_MAP = 1029;
	public static readonly NO_PQ_REPLICATE = 1030;
	public static readonly NO_PQ_SKEW = 1031;
	public static readonly NO_PRUNE_GSETS = 1032;
	public static readonly NO_PULL_PRED = 1033;
	public static readonly NO_PUSH_PRED = 1034;
	public static readonly NO_PUSH_SUBQ = 1035;
	public static readonly NO_PX_FAULT_TOLERANCE = 1036;
	public static readonly NO_PX_JOIN_FILTER = 1037;
	public static readonly NO_QKN_BUFF = 1038;
	public static readonly NO_QUERY_TRANSFORMATION = 1039;
	public static readonly NO_REF_CASCADE = 1040;
	public static readonly NORELOCATE = 1041;
	public static readonly NORELY = 1042;
	public static readonly NOREPAIR = 1043;
	public static readonly NOREPLAY = 1044;
	public static readonly NORESETLOGS = 1045;
	public static readonly NO_RESULT_CACHE = 1046;
	public static readonly NOREVERSE = 1047;
	public static readonly NO_REWRITE = 1048;
	public static readonly NOREWRITE = 1049;
	public static readonly NORMAL = 1050;
	public static readonly NO_ROOT_SW_FOR_LOCAL = 1051;
	public static readonly NOROWDEPENDENCIES = 1052;
	public static readonly NOSCHEMACHECK = 1053;
	public static readonly NOSEGMENT = 1054;
	public static readonly NO_SEMIJOIN = 1055;
	public static readonly NO_SEMI_TO_INNER = 1056;
	public static readonly NO_SET_TO_JOIN = 1057;
	public static readonly NOSORT = 1058;
	public static readonly NO_SQL_TRANSLATION = 1059;
	public static readonly NO_SQL_TUNE = 1060;
	public static readonly NO_STAR_TRANSFORMATION = 1061;
	public static readonly NO_STATEMENT_QUEUING = 1062;
	public static readonly NO_STATS_GSETS = 1063;
	public static readonly NOSTRICT = 1064;
	public static readonly NO_SUBQUERY_PRUNING = 1065;
	public static readonly NO_SUBSTRB_PAD = 1066;
	public static readonly NO_SWAP_JOIN_INPUTS = 1067;
	public static readonly NOSWITCH = 1068;
	public static readonly NO_TABLE_LOOKUP_BY_NL = 1069;
	public static readonly NO_TEMP_TABLE = 1070;
	public static readonly NOTHING = 1071;
	public static readonly NOTIFICATION = 1072;
	public static readonly NOT = 1073;
	public static readonly NO_TRANSFORM_DISTINCT_AGG = 1074;
	public static readonly NO_UNNEST = 1075;
	public static readonly NO_USE_CUBE = 1076;
	public static readonly NO_USE_HASH_AGGREGATION = 1077;
	public static readonly NO_USE_HASH_GBY_FOR_PUSHDOWN = 1078;
	public static readonly NO_USE_HASH = 1079;
	public static readonly NO_USE_INVISIBLE_INDEXES = 1080;
	public static readonly NO_USE_MERGE = 1081;
	public static readonly NO_USE_NL = 1082;
	public static readonly NO_USE_VECTOR_AGGREGATION = 1083;
	public static readonly NOVALIDATE = 1084;
	public static readonly NO_VECTOR_TRANSFORM_DIMS = 1085;
	public static readonly NO_VECTOR_TRANSFORM_FACT = 1086;
	public static readonly NO_VECTOR_TRANSFORM = 1087;
	public static readonly NOWAIT = 1088;
	public static readonly NO_XDB_FASTPATH_INSERT = 1089;
	public static readonly NO_XML_DML_REWRITE = 1090;
	public static readonly NO_XMLINDEX_REWRITE_IN_SELECT = 1091;
	public static readonly NO_XMLINDEX_REWRITE = 1092;
	public static readonly NO_XML_QUERY_REWRITE = 1093;
	public static readonly NO_ZONEMAP = 1094;
	public static readonly NTH_VALUE = 1095;
	public static readonly NULLIF = 1096;
	public static readonly NULL_ = 1097;
	public static readonly NULLS = 1098;
	public static readonly NUMBER = 1099;
	public static readonly NUMERIC = 1100;
	public static readonly NUM_INDEX_KEYS = 1101;
	public static readonly NUMTODSINTERVAL = 1102;
	public static readonly NUMTOYMINTERVAL = 1103;
	public static readonly NVARCHAR2 = 1104;
	public static readonly NVL2 = 1105;
	public static readonly OBJECT2XML = 1106;
	public static readonly OBJECT = 1107;
	public static readonly OBJ_ID = 1108;
	public static readonly OBJNO = 1109;
	public static readonly OBJNO_REUSE = 1110;
	public static readonly OCCURENCES = 1111;
	public static readonly OFFLINE = 1112;
	public static readonly OFF = 1113;
	public static readonly OFFSET = 1114;
	public static readonly OF = 1115;
	public static readonly OIDINDEX = 1116;
	public static readonly OID = 1117;
	public static readonly OLAP = 1118;
	public static readonly OLD = 1119;
	public static readonly OLD_PUSH_PRED = 1120;
	public static readonly OLS = 1121;
	public static readonly OLTP = 1122;
	public static readonly OMIT = 1123;
	public static readonly ONE = 1124;
	public static readonly ONLINE = 1125;
	public static readonly ONLINELOG = 1126;
	public static readonly ONLY = 1127;
	public static readonly ON = 1128;
	public static readonly OPAQUE = 1129;
	public static readonly OPAQUE_TRANSFORM = 1130;
	public static readonly OPAQUE_XCANONICAL = 1131;
	public static readonly OPCODE = 1132;
	public static readonly OPEN = 1133;
	public static readonly OPERATIONS = 1134;
	public static readonly OPERATOR = 1135;
	public static readonly OPT_ESTIMATE = 1136;
	public static readonly OPTIMAL = 1137;
	public static readonly OPTIMIZE = 1138;
	public static readonly OPTIMIZER_FEATURES_ENABLE = 1139;
	public static readonly OPTIMIZER_GOAL = 1140;
	public static readonly OPTION = 1141;
	public static readonly OPT_PARAM = 1142;
	public static readonly ORA_BRANCH = 1143;
	public static readonly ORA_CHECK_ACL = 1144;
	public static readonly ORA_CHECK_PRIVILEGE = 1145;
	public static readonly ORA_CLUSTERING = 1146;
	public static readonly ORADATA = 1147;
	public static readonly ORADEBUG = 1148;
	public static readonly ORA_DST_AFFECTED = 1149;
	public static readonly ORA_DST_CONVERT = 1150;
	public static readonly ORA_DST_ERROR = 1151;
	public static readonly ORA_GET_ACLIDS = 1152;
	public static readonly ORA_GET_PRIVILEGES = 1153;
	public static readonly ORA_HASH = 1154;
	public static readonly ORA_INVOKING_USERID = 1155;
	public static readonly ORA_INVOKING_USER = 1156;
	public static readonly ORA_INVOKING_XS_USER_GUID = 1157;
	public static readonly ORA_INVOKING_XS_USER = 1158;
	public static readonly ORA_RAWCOMPARE = 1159;
	public static readonly ORA_RAWCONCAT = 1160;
	public static readonly ORA_ROWSCN = 1161;
	public static readonly ORA_ROWSCN_RAW = 1162;
	public static readonly ORA_ROWVERSION = 1163;
	public static readonly ORA_TABVERSION = 1164;
	public static readonly ORA_WRITE_TIME = 1165;
	public static readonly ORDERED = 1166;
	public static readonly ORDERED_PREDICATES = 1167;
	public static readonly ORDER = 1168;
	public static readonly ORDINALITY = 1169;
	public static readonly OR_EXPAND = 1170;
	public static readonly ORGANIZATION = 1171;
	public static readonly OR = 1172;
	public static readonly OR_PREDICATES = 1173;
	public static readonly OSERROR = 1174;
	public static readonly OTHER = 1175;
	public static readonly OUTER_JOIN_TO_ANTI = 1176;
	public static readonly OUTER_JOIN_TO_INNER = 1177;
	public static readonly OUTER = 1178;
	public static readonly OUTLINE_LEAF = 1179;
	public static readonly OUTLINE = 1180;
	public static readonly OUT_OF_LINE = 1181;
	public static readonly OUT = 1182;
	public static readonly OVERFLOW_NOMOVE = 1183;
	public static readonly OVERFLOW = 1184;
	public static readonly OVERLAPS = 1185;
	public static readonly OVER = 1186;
	public static readonly OVERRIDING = 1187;
	public static readonly OWNER = 1188;
	public static readonly OWNERSHIP = 1189;
	public static readonly OWN = 1190;
	public static readonly PACKAGE = 1191;
	public static readonly PACKAGES = 1192;
	public static readonly PARALLEL_ENABLE = 1193;
	public static readonly PARALLEL_INDEX = 1194;
	public static readonly PARALLEL = 1195;
	public static readonly PARAMETERFILE = 1196;
	public static readonly PARAMETERS = 1197;
	public static readonly PARAM = 1198;
	public static readonly PARENT = 1199;
	public static readonly PARITY = 1200;
	public static readonly PARTIAL_JOIN = 1201;
	public static readonly PARTIALLY = 1202;
	public static readonly PARTIAL = 1203;
	public static readonly PARTIAL_ROLLUP_PUSHDOWN = 1204;
	public static readonly PARTITION_HASH = 1205;
	public static readonly PARTITION_LIST = 1206;
	public static readonly PARTITION = 1207;
	public static readonly PARTITION_RANGE = 1208;
	public static readonly PARTITIONS = 1209;
	public static readonly PARTNUMINST = 1210;
	public static readonly PASSING = 1211;
	public static readonly PASSWORD_GRACE_TIME = 1212;
	public static readonly PASSWORD_LIFE_TIME = 1213;
	public static readonly PASSWORD_LOCK_TIME = 1214;
	public static readonly PASSWORD = 1215;
	public static readonly PASSWORD_REUSE_MAX = 1216;
	public static readonly PASSWORD_REUSE_TIME = 1217;
	public static readonly PASSWORD_VERIFY_FUNCTION = 1218;
	public static readonly PAST = 1219;
	public static readonly PATCH = 1220;
	public static readonly PATH = 1221;
	public static readonly PATH_PREFIX = 1222;
	public static readonly PATHS = 1223;
	public static readonly PATTERN = 1224;
	public static readonly PBL_HS_BEGIN = 1225;
	public static readonly PBL_HS_END = 1226;
	public static readonly PCTFREE = 1227;
	public static readonly PCTINCREASE = 1228;
	public static readonly PCTTHRESHOLD = 1229;
	public static readonly PCTUSED = 1230;
	public static readonly PCTVERSION = 1231;
	public static readonly PENDING = 1232;
	public static readonly PERCENT_FOUND = 1233;
	public static readonly PERCENT_ISOPEN = 1234;
	public static readonly PERCENT_NOTFOUND = 1235;
	public static readonly PERCENT_KEYWORD = 1236;
	public static readonly PERCENT_RANKM = 1237;
	public static readonly PERCENT_ROWCOUNT = 1238;
	public static readonly PERCENT_ROWTYPE = 1239;
	public static readonly PERCENT_TYPE = 1240;
	public static readonly PERFORMANCE = 1241;
	public static readonly PERIOD_KEYWORD = 1242;
	public static readonly PERMANENT = 1243;
	public static readonly PERMISSION = 1244;
	public static readonly PERMUTE = 1245;
	public static readonly PER = 1246;
	public static readonly PFILE = 1247;
	public static readonly PHYSICAL = 1248;
	public static readonly PIKEY = 1249;
	public static readonly PIPELINED = 1250;
	public static readonly PIPE = 1251;
	public static readonly PIV_GB = 1252;
	public static readonly PIVOT = 1253;
	public static readonly PIV_SSF = 1254;
	public static readonly PLACE_DISTINCT = 1255;
	public static readonly PLACE_GROUP_BY = 1256;
	public static readonly PLAN = 1257;
	public static readonly PLSCOPE_SETTINGS = 1258;
	public static readonly PLS_INTEGER = 1259;
	public static readonly PLSQL_CCFLAGS = 1260;
	public static readonly PLSQL_CODE_TYPE = 1261;
	public static readonly PLSQL_DEBUG = 1262;
	public static readonly PLSQL_OPTIMIZE_LEVEL = 1263;
	public static readonly PLSQL_WARNINGS = 1264;
	public static readonly PLUGGABLE = 1265;
	public static readonly POINT = 1266;
	public static readonly POLICY = 1267;
	public static readonly POOL_16K = 1268;
	public static readonly POOL_2K = 1269;
	public static readonly POOL_32K = 1270;
	public static readonly POOL_4K = 1271;
	public static readonly POOL_8K = 1272;
	public static readonly POSITIVEN = 1273;
	public static readonly POSITIVE = 1274;
	public static readonly POST_TRANSACTION = 1275;
	public static readonly POWERMULTISET_BY_CARDINALITY = 1276;
	public static readonly POWERMULTISET = 1277;
	public static readonly POWER = 1278;
	public static readonly PQ_CONCURRENT_UNION = 1279;
	public static readonly PQ_DISTRIBUTE = 1280;
	public static readonly PQ_DISTRIBUTE_WINDOW = 1281;
	public static readonly PQ_FILTER = 1282;
	public static readonly PQ_MAP = 1283;
	public static readonly PQ_NOMAP = 1284;
	public static readonly PQ_REPLICATE = 1285;
	public static readonly PQ_SKEW = 1286;
	public static readonly PRAGMA = 1287;
	public static readonly PREBUILT = 1288;
	public static readonly PRECEDES = 1289;
	public static readonly PRECEDING = 1290;
	public static readonly PRECISION = 1291;
	public static readonly PRECOMPUTE_SUBQUERY = 1292;
	public static readonly PREDICATE_REORDERS = 1293;
	public static readonly PRELOAD = 1294;
	public static readonly PREPARE = 1295;
	public static readonly PRESENTNNV = 1296;
	public static readonly PRESENT = 1297;
	public static readonly PRESENTV = 1298;
	public static readonly PRESERVE_OID = 1299;
	public static readonly PRESERVE = 1300;
	public static readonly PRETTY = 1301;
	public static readonly PREVIOUS = 1302;
	public static readonly PREV = 1303;
	public static readonly PRIMARY = 1304;
	public static readonly PRINTBLOBTOCLOB = 1305;
	public static readonly PRIORITY = 1306;
	public static readonly PRIOR = 1307;
	public static readonly PRIVATE = 1308;
	public static readonly PRIVATE_SGA = 1309;
	public static readonly PRIVILEGED = 1310;
	public static readonly PRIVILEGE = 1311;
	public static readonly PRIVILEGES = 1312;
	public static readonly PROCEDURAL = 1313;
	public static readonly PROCEDURE = 1314;
	public static readonly PROCESS = 1315;
	public static readonly PROFILE = 1316;
	public static readonly PROGRAM = 1317;
	public static readonly PROJECT = 1318;
	public static readonly PROPAGATE = 1319;
	public static readonly PROTECTED = 1320;
	public static readonly PROTECTION = 1321;
	public static readonly PROXY = 1322;
	public static readonly PRUNING = 1323;
	public static readonly PUBLIC = 1324;
	public static readonly PULL_PRED = 1325;
	public static readonly PURGE = 1326;
	public static readonly PUSH_PRED = 1327;
	public static readonly PUSH_SUBQ = 1328;
	public static readonly PX_FAULT_TOLERANCE = 1329;
	public static readonly PX_GRANULE = 1330;
	public static readonly PX_JOIN_FILTER = 1331;
	public static readonly QB_NAME = 1332;
	public static readonly QUERY_BLOCK = 1333;
	public static readonly QUERY = 1334;
	public static readonly QUEUE_CURR = 1335;
	public static readonly QUEUE = 1336;
	public static readonly QUEUE_ROWP = 1337;
	public static readonly QUIESCE = 1338;
	public static readonly QUORUM = 1339;
	public static readonly QUOTA = 1340;
	public static readonly RAISE = 1341;
	public static readonly RANDOM_LOCAL = 1342;
	public static readonly RANDOM = 1343;
	public static readonly RANGE = 1344;
	public static readonly RANKM = 1345;
	public static readonly RAPIDLY = 1346;
	public static readonly RAW = 1347;
	public static readonly RAWTOHEX = 1348;
	public static readonly RAWTONHEX = 1349;
	public static readonly RBA = 1350;
	public static readonly RBO_OUTLINE = 1351;
	public static readonly RDBA = 1352;
	public static readonly READ = 1353;
	public static readonly READS = 1354;
	public static readonly REALM = 1355;
	public static readonly REAL = 1356;
	public static readonly REBALANCE = 1357;
	public static readonly REBUILD = 1358;
	public static readonly RECORD = 1359;
	public static readonly RECORDS_PER_BLOCK = 1360;
	public static readonly RECOVERABLE = 1361;
	public static readonly RECOVER = 1362;
	public static readonly RECOVERY = 1363;
	public static readonly RECYCLEBIN = 1364;
	public static readonly RECYCLE = 1365;
	public static readonly REDACTION = 1366;
	public static readonly REDEFINE = 1367;
	public static readonly REDO = 1368;
	public static readonly REDUCED = 1369;
	public static readonly REDUNDANCY = 1370;
	public static readonly REF_CASCADE_CURSOR = 1371;
	public static readonly REFERENCED = 1372;
	public static readonly REFERENCE = 1373;
	public static readonly REFERENCES = 1374;
	public static readonly REFERENCING = 1375;
	public static readonly REF = 1376;
	public static readonly REFRESH = 1377;
	public static readonly REFTOHEX = 1378;
	public static readonly REGEXP_COUNT = 1379;
	public static readonly REGEXP_INSTR = 1380;
	public static readonly REGEXP_LIKE = 1381;
	public static readonly REGEXP_REPLACE = 1382;
	public static readonly REGEXP_SUBSTR = 1383;
	public static readonly REGISTER = 1384;
	public static readonly REGR_AVGX = 1385;
	public static readonly REGR_AVGY = 1386;
	public static readonly REGR_COUNT = 1387;
	public static readonly REGR_INTERCEPT = 1388;
	public static readonly REGR_R2 = 1389;
	public static readonly REGR_SLOPE = 1390;
	public static readonly REGR_SXX = 1391;
	public static readonly REGR_SXY = 1392;
	public static readonly REGR_SYY = 1393;
	public static readonly REGULAR = 1394;
	public static readonly REJECT = 1395;
	public static readonly REKEY = 1396;
	public static readonly RELATIONAL = 1397;
	public static readonly RELIES_ON = 1398;
	public static readonly RELOCATE = 1399;
	public static readonly RELY = 1400;
	public static readonly REMAINDER = 1401;
	public static readonly REMOTE_MAPPED = 1402;
	public static readonly REMOVE = 1403;
	public static readonly RENAME = 1404;
	public static readonly REPAIR = 1405;
	public static readonly REPEAT = 1406;
	public static readonly REPLACE = 1407;
	public static readonly REPLICATION = 1408;
	public static readonly REQUIRED = 1409;
	public static readonly RESETLOGS = 1410;
	public static readonly RESET = 1411;
	public static readonly RESIZE = 1412;
	public static readonly RESOLVE = 1413;
	public static readonly RESOLVER = 1414;
	public static readonly RESOURCE = 1415;
	public static readonly RESPECT = 1416;
	public static readonly RESTART = 1417;
	public static readonly RESTORE_AS_INTERVALS = 1418;
	public static readonly RESTORE = 1419;
	public static readonly RESTRICT_ALL_REF_CONS = 1420;
	public static readonly RESTRICTED = 1421;
	public static readonly RESTRICT_REFERENCES = 1422;
	public static readonly RESTRICT = 1423;
	public static readonly RESULT_CACHE = 1424;
	public static readonly RESULT = 1425;
	public static readonly RESUMABLE = 1426;
	public static readonly RESUME = 1427;
	public static readonly RETENTION = 1428;
	public static readonly RETRY_ON_ROW_CHANGE = 1429;
	public static readonly RETURNING = 1430;
	public static readonly RETURN = 1431;
	public static readonly REUSE = 1432;
	public static readonly REVERSE = 1433;
	public static readonly REVOKE = 1434;
	public static readonly REWRITE_OR_ERROR = 1435;
	public static readonly REWRITE = 1436;
	public static readonly RIGHT = 1437;
	public static readonly ROLE = 1438;
	public static readonly ROLESET = 1439;
	public static readonly ROLES = 1440;
	public static readonly ROLLBACK = 1441;
	public static readonly ROLLING = 1442;
	public static readonly ROLLUP = 1443;
	public static readonly ROWDEPENDENCIES = 1444;
	public static readonly ROWID_MAPPING_TABLE = 1445;
	public static readonly ROWID = 1446;
	public static readonly ROWIDTOCHAR = 1447;
	public static readonly ROWIDTONCHAR = 1448;
	public static readonly ROW_LENGTH = 1449;
	public static readonly ROWNUM = 1450;
	public static readonly ROW = 1451;
	public static readonly ROWS = 1452;
	public static readonly RPAD = 1453;
	public static readonly RTRIM = 1454;
	public static readonly RULE = 1455;
	public static readonly RULES = 1456;
	public static readonly RUNNING = 1457;
	public static readonly SALT = 1458;
	public static readonly SAMPLE = 1459;
	public static readonly SAVE_AS_INTERVALS = 1460;
	public static readonly SAVEPOINT = 1461;
	public static readonly SAVE = 1462;
	public static readonly SB4 = 1463;
	public static readonly SCALE_ROWS = 1464;
	public static readonly SCALE = 1465;
	public static readonly SCAN_INSTANCES = 1466;
	public static readonly SCAN = 1467;
	public static readonly SCHEDULER = 1468;
	public static readonly SCHEMACHECK = 1469;
	public static readonly SCHEMA = 1470;
	public static readonly SCN_ASCENDING = 1471;
	public static readonly SCN = 1472;
	public static readonly SCOPE = 1473;
	public static readonly SCRUB = 1474;
	public static readonly SD_ALL = 1475;
	public static readonly SD_INHIBIT = 1476;
	public static readonly SDO_GEOM_MBR = 1477;
	public static readonly SD_SHOW = 1478;
	public static readonly SEARCH = 1479;
	public static readonly SECOND = 1480;
	public static readonly SECRET = 1481;
	public static readonly SECUREFILE_DBA = 1482;
	public static readonly SECUREFILE = 1483;
	public static readonly SECURITY = 1484;
	public static readonly SEED = 1485;
	public static readonly SEG_BLOCK = 1486;
	public static readonly SEG_FILE = 1487;
	public static readonly SEGMENT = 1488;
	public static readonly SELECTIVITY = 1489;
	public static readonly SELECT = 1490;
	public static readonly SELF = 1491;
	public static readonly SEMIJOIN_DRIVER = 1492;
	public static readonly SEMIJOIN = 1493;
	public static readonly SEMI_TO_INNER = 1494;
	public static readonly SEQUENCED = 1495;
	public static readonly SEQUENCE = 1496;
	public static readonly SEQUENTIAL = 1497;
	public static readonly SEQ = 1498;
	public static readonly SERIALIZABLE = 1499;
	public static readonly SERIALLY_REUSABLE = 1500;
	public static readonly SERIAL = 1501;
	public static readonly SERVERERROR = 1502;
	public static readonly SERVICE_NAME_CONVERT = 1503;
	public static readonly SERVICES = 1504;
	public static readonly SESSION_CACHED_CURSORS = 1505;
	public static readonly SESSION = 1506;
	public static readonly SESSIONS_PER_USER = 1507;
	public static readonly SESSIONTIMEZONE = 1508;
	public static readonly SESSIONTZNAME = 1509;
	public static readonly SET = 1510;
	public static readonly SETS = 1511;
	public static readonly SETTINGS = 1512;
	public static readonly SET_TO_JOIN = 1513;
	public static readonly SEVERE = 1514;
	public static readonly SHARED_POOL = 1515;
	public static readonly SHARED = 1516;
	public static readonly SHARE = 1517;
	public static readonly SHARING = 1518;
	public static readonly SHELFLIFE = 1519;
	public static readonly SHOW = 1520;
	public static readonly SHRINK = 1521;
	public static readonly SHUTDOWN = 1522;
	public static readonly SIBLINGS = 1523;
	public static readonly SID = 1524;
	public static readonly SIGNAL_COMPONENT = 1525;
	public static readonly SIGNAL_FUNCTION = 1526;
	public static readonly SIGN = 1527;
	public static readonly SIGNTYPE = 1528;
	public static readonly SIMPLE_INTEGER = 1529;
	public static readonly SIMPLE = 1530;
	public static readonly SINGLE = 1531;
	public static readonly SINGLETASK = 1532;
	public static readonly SINH = 1533;
	public static readonly SIN = 1534;
	public static readonly SIZE = 1535;
	public static readonly SKIP_EXT_OPTIMIZER = 1536;
	public static readonly SKIP_ = 1537;
	public static readonly SKIP_UNQ_UNUSABLE_IDX = 1538;
	public static readonly SKIP_UNUSABLE_INDEXES = 1539;
	public static readonly SMALLFILE = 1540;
	public static readonly SMALLINT = 1541;
	public static readonly SNAPSHOT = 1542;
	public static readonly SOME = 1543;
	public static readonly SORT = 1544;
	public static readonly SOUNDEX = 1545;
	public static readonly SOURCE_FILE_DIRECTORY = 1546;
	public static readonly SOURCE_FILE_NAME_CONVERT = 1547;
	public static readonly SOURCE = 1548;
	public static readonly SPACE_KEYWORD = 1549;
	public static readonly SPECIFICATION = 1550;
	public static readonly SPFILE = 1551;
	public static readonly SPLIT = 1552;
	public static readonly SPREADSHEET = 1553;
	public static readonly SQLDATA = 1554;
	public static readonly SQLERROR = 1555;
	public static readonly SQLLDR = 1556;
	public static readonly SQL = 1557;
	public static readonly SQL_TRACE = 1558;
	public static readonly SQL_TRANSLATION_PROFILE = 1559;
	public static readonly SQRT = 1560;
	public static readonly STALE = 1561;
	public static readonly STANDALONE = 1562;
	public static readonly STANDARD_HASH = 1563;
	public static readonly STANDBY_MAX_DATA_DELAY = 1564;
	public static readonly STANDBYS = 1565;
	public static readonly STANDBY = 1566;
	public static readonly STAR = 1567;
	public static readonly STAR_TRANSFORMATION = 1568;
	public static readonly START = 1569;
	public static readonly STARTUP = 1570;
	public static readonly STATEMENT_ID = 1571;
	public static readonly STATEMENT_QUEUING = 1572;
	public static readonly STATEMENTS = 1573;
	public static readonly STATEMENT = 1574;
	public static readonly STATE = 1575;
	public static readonly STATIC = 1576;
	public static readonly STATISTICS = 1577;
	public static readonly STATS_BINOMIAL_TEST = 1578;
	public static readonly STATS_CROSSTAB = 1579;
	public static readonly STATS_F_TEST = 1580;
	public static readonly STATS_KS_TEST = 1581;
	public static readonly STATS_MODE = 1582;
	public static readonly STATS_MW_TEST = 1583;
	public static readonly STATS_ONE_WAY_ANOVA = 1584;
	public static readonly STATS_T_TEST_INDEP = 1585;
	public static readonly STATS_T_TEST_INDEPU = 1586;
	public static readonly STATS_T_TEST_ONE = 1587;
	public static readonly STATS_T_TEST_PAIRED = 1588;
	public static readonly STATS_WSR_TEST = 1589;
	public static readonly STDDEV_POP = 1590;
	public static readonly STDDEV_SAMP = 1591;
	public static readonly STOP = 1592;
	public static readonly STORAGE = 1593;
	public static readonly STORE = 1594;
	public static readonly STREAMS = 1595;
	public static readonly STREAM = 1596;
	public static readonly STRICT = 1597;
	public static readonly STRING = 1598;
	public static readonly STRIPE_COLUMNS = 1599;
	public static readonly STRIPE_WIDTH = 1600;
	public static readonly STRIP = 1601;
	public static readonly STRUCTURE = 1602;
	public static readonly SUBMULTISET = 1603;
	public static readonly SUBPARTITION_REL = 1604;
	public static readonly SUBPARTITIONS = 1605;
	public static readonly SUBPARTITION = 1606;
	public static readonly SUBQUERIES = 1607;
	public static readonly SUBQUERY_PRUNING = 1608;
	public static readonly SUBSCRIBE = 1609;
	public static readonly SUBSET = 1610;
	public static readonly SUBSTITUTABLE = 1611;
	public static readonly SUBSTR2 = 1612;
	public static readonly SUBSTR4 = 1613;
	public static readonly SUBSTRB = 1614;
	public static readonly SUBSTRC = 1615;
	public static readonly SUBTYPE = 1616;
	public static readonly SUCCESSFUL = 1617;
	public static readonly SUCCESS = 1618;
	public static readonly SUMMARY = 1619;
	public static readonly SUPPLEMENTAL = 1620;
	public static readonly SUSPEND = 1621;
	public static readonly SWAP_JOIN_INPUTS = 1622;
	public static readonly SWITCHOVER = 1623;
	public static readonly SWITCH = 1624;
	public static readonly SYNCHRONOUS = 1625;
	public static readonly SYNC = 1626;
	public static readonly SYNONYM = 1627;
	public static readonly SYSASM = 1628;
	public static readonly SYS_AUDIT = 1629;
	public static readonly SYSAUX = 1630;
	public static readonly SYSBACKUP = 1631;
	public static readonly SYS_CHECKACL = 1632;
	public static readonly SYS_CHECK_PRIVILEGE = 1633;
	public static readonly SYS_CONNECT_BY_PATH = 1634;
	public static readonly SYS_CONTEXT = 1635;
	public static readonly SYSDATE = 1636;
	public static readonly SYSDBA = 1637;
	public static readonly SYS_DBURIGEN = 1638;
	public static readonly SYSDG = 1639;
	public static readonly SYS_DL_CURSOR = 1640;
	public static readonly SYS_DM_RXFORM_CHR = 1641;
	public static readonly SYS_DM_RXFORM_NUM = 1642;
	public static readonly SYS_DOM_COMPARE = 1643;
	public static readonly SYS_DST_PRIM2SEC = 1644;
	public static readonly SYS_DST_SEC2PRIM = 1645;
	public static readonly SYS_ET_BFILE_TO_RAW = 1646;
	public static readonly SYS_ET_BLOB_TO_IMAGE = 1647;
	public static readonly SYS_ET_IMAGE_TO_BLOB = 1648;
	public static readonly SYS_ET_RAW_TO_BFILE = 1649;
	public static readonly SYS_EXTPDTXT = 1650;
	public static readonly SYS_EXTRACT_UTC = 1651;
	public static readonly SYS_FBT_INSDEL = 1652;
	public static readonly SYS_FILTER_ACLS = 1653;
	public static readonly SYS_FNMATCHES = 1654;
	public static readonly SYS_FNREPLACE = 1655;
	public static readonly SYS_GET_ACLIDS = 1656;
	public static readonly SYS_GET_COL_ACLIDS = 1657;
	public static readonly SYS_GET_PRIVILEGES = 1658;
	public static readonly SYS_GETTOKENID = 1659;
	public static readonly SYS_GETXTIVAL = 1660;
	public static readonly SYS_GUID = 1661;
	public static readonly SYSGUID = 1662;
	public static readonly SYSKM = 1663;
	public static readonly SYS_MAKE_XMLNODEID = 1664;
	public static readonly SYS_MAKEXML = 1665;
	public static readonly SYS_MKXMLATTR = 1666;
	public static readonly SYS_MKXTI = 1667;
	public static readonly SYSOBJ = 1668;
	public static readonly SYS_OP_ADT2BIN = 1669;
	public static readonly SYS_OP_ADTCONS = 1670;
	public static readonly SYS_OP_ALSCRVAL = 1671;
	public static readonly SYS_OP_ATG = 1672;
	public static readonly SYS_OP_BIN2ADT = 1673;
	public static readonly SYS_OP_BITVEC = 1674;
	public static readonly SYS_OP_BL2R = 1675;
	public static readonly SYS_OP_BLOOM_FILTER_LIST = 1676;
	public static readonly SYS_OP_BLOOM_FILTER = 1677;
	public static readonly SYS_OP_C2C = 1678;
	public static readonly SYS_OP_CAST = 1679;
	public static readonly SYS_OP_CEG = 1680;
	public static readonly SYS_OP_CL2C = 1681;
	public static readonly SYS_OP_COMBINED_HASH = 1682;
	public static readonly SYS_OP_COMP = 1683;
	public static readonly SYS_OP_CONVERT = 1684;
	public static readonly SYS_OP_COUNTCHG = 1685;
	public static readonly SYS_OP_CSCONV = 1686;
	public static readonly SYS_OP_CSCONVTEST = 1687;
	public static readonly SYS_OP_CSR = 1688;
	public static readonly SYS_OP_CSX_PATCH = 1689;
	public static readonly SYS_OP_CYCLED_SEQ = 1690;
	public static readonly SYS_OP_DECOMP = 1691;
	public static readonly SYS_OP_DESCEND = 1692;
	public static readonly SYS_OP_DISTINCT = 1693;
	public static readonly SYS_OP_DRA = 1694;
	public static readonly SYS_OP_DUMP = 1695;
	public static readonly SYS_OP_DV_CHECK = 1696;
	public static readonly SYS_OP_ENFORCE_NOT_NULL = 1697;
	public static readonly SYSOPER = 1698;
	public static readonly SYS_OP_EXTRACT = 1699;
	public static readonly SYS_OP_GROUPING = 1700;
	public static readonly SYS_OP_GUID = 1701;
	public static readonly SYS_OP_HASH = 1702;
	public static readonly SYS_OP_IIX = 1703;
	public static readonly SYS_OP_ITR = 1704;
	public static readonly SYS_OP_KEY_VECTOR_CREATE = 1705;
	public static readonly SYS_OP_KEY_VECTOR_FILTER_LIST = 1706;
	public static readonly SYS_OP_KEY_VECTOR_FILTER = 1707;
	public static readonly SYS_OP_KEY_VECTOR_SUCCEEDED = 1708;
	public static readonly SYS_OP_KEY_VECTOR_USE = 1709;
	public static readonly SYS_OP_LBID = 1710;
	public static readonly SYS_OP_LOBLOC2BLOB = 1711;
	public static readonly SYS_OP_LOBLOC2CLOB = 1712;
	public static readonly SYS_OP_LOBLOC2ID = 1713;
	public static readonly SYS_OP_LOBLOC2NCLOB = 1714;
	public static readonly SYS_OP_LOBLOC2TYP = 1715;
	public static readonly SYS_OP_LSVI = 1716;
	public static readonly SYS_OP_LVL = 1717;
	public static readonly SYS_OP_MAKEOID = 1718;
	public static readonly SYS_OP_MAP_NONNULL = 1719;
	public static readonly SYS_OP_MSR = 1720;
	public static readonly SYS_OP_NICOMBINE = 1721;
	public static readonly SYS_OP_NIEXTRACT = 1722;
	public static readonly SYS_OP_NII = 1723;
	public static readonly SYS_OP_NIX = 1724;
	public static readonly SYS_OP_NOEXPAND = 1725;
	public static readonly SYS_OP_NTCIMG = 1726;
	public static readonly SYS_OP_NUMTORAW = 1727;
	public static readonly SYS_OP_OIDVALUE = 1728;
	public static readonly SYS_OP_OPNSIZE = 1729;
	public static readonly SYS_OP_PAR_1 = 1730;
	public static readonly SYS_OP_PARGID_1 = 1731;
	public static readonly SYS_OP_PARGID = 1732;
	public static readonly SYS_OP_PAR = 1733;
	public static readonly SYS_OP_PART_ID = 1734;
	public static readonly SYS_OP_PIVOT = 1735;
	public static readonly SYS_OP_R2O = 1736;
	public static readonly SYS_OP_RAWTONUM = 1737;
	public static readonly SYS_OP_RDTM = 1738;
	public static readonly SYS_OP_REF = 1739;
	public static readonly SYS_OP_RMTD = 1740;
	public static readonly SYS_OP_ROWIDTOOBJ = 1741;
	public static readonly SYS_OP_RPB = 1742;
	public static readonly SYS_OPTLOBPRBSC = 1743;
	public static readonly SYS_OP_TOSETID = 1744;
	public static readonly SYS_OP_TPR = 1745;
	public static readonly SYS_OP_TRTB = 1746;
	public static readonly SYS_OPTXICMP = 1747;
	public static readonly SYS_OPTXQCASTASNQ = 1748;
	public static readonly SYS_OP_UNDESCEND = 1749;
	public static readonly SYS_OP_VECAND = 1750;
	public static readonly SYS_OP_VECBIT = 1751;
	public static readonly SYS_OP_VECOR = 1752;
	public static readonly SYS_OP_VECXOR = 1753;
	public static readonly SYS_OP_VERSION = 1754;
	public static readonly SYS_OP_VREF = 1755;
	public static readonly SYS_OP_VVD = 1756;
	public static readonly SYS_OP_XMLCONS_FOR_CSX = 1757;
	public static readonly SYS_OP_XPTHATG = 1758;
	public static readonly SYS_OP_XPTHIDX = 1759;
	public static readonly SYS_OP_XPTHOP = 1760;
	public static readonly SYS_OP_XTXT2SQLT = 1761;
	public static readonly SYS_OP_ZONE_ID = 1762;
	public static readonly SYS_ORDERKEY_DEPTH = 1763;
	public static readonly SYS_ORDERKEY_MAXCHILD = 1764;
	public static readonly SYS_ORDERKEY_PARENT = 1765;
	public static readonly SYS_PARALLEL_TXN = 1766;
	public static readonly SYS_PATHID_IS_ATTR = 1767;
	public static readonly SYS_PATHID_IS_NMSPC = 1768;
	public static readonly SYS_PATHID_LASTNAME = 1769;
	public static readonly SYS_PATHID_LASTNMSPC = 1770;
	public static readonly SYS_PATH_REVERSE = 1771;
	public static readonly SYS_PXQEXTRACT = 1772;
	public static readonly SYS_RAW_TO_XSID = 1773;
	public static readonly SYS_RID_ORDER = 1774;
	public static readonly SYS_ROW_DELTA = 1775;
	public static readonly SYS_SC_2_XMLT = 1776;
	public static readonly SYS_SYNRCIREDO = 1777;
	public static readonly SYSTEM_DEFINED = 1778;
	public static readonly SYSTEM = 1779;
	public static readonly SYSTIMESTAMP = 1780;
	public static readonly SYS_TYPEID = 1781;
	public static readonly SYS_UMAKEXML = 1782;
	public static readonly SYS_XMLANALYZE = 1783;
	public static readonly SYS_XMLCONTAINS = 1784;
	public static readonly SYS_XMLCONV = 1785;
	public static readonly SYS_XMLEXNSURI = 1786;
	public static readonly SYS_XMLGEN = 1787;
	public static readonly SYS_XMLI_LOC_ISNODE = 1788;
	public static readonly SYS_XMLI_LOC_ISTEXT = 1789;
	public static readonly SYS_XMLINSTR = 1790;
	public static readonly SYS_XMLLOCATOR_GETSVAL = 1791;
	public static readonly SYS_XMLNODEID_GETCID = 1792;
	public static readonly SYS_XMLNODEID_GETLOCATOR = 1793;
	public static readonly SYS_XMLNODEID_GETOKEY = 1794;
	public static readonly SYS_XMLNODEID_GETPATHID = 1795;
	public static readonly SYS_XMLNODEID_GETPTRID = 1796;
	public static readonly SYS_XMLNODEID_GETRID = 1797;
	public static readonly SYS_XMLNODEID_GETSVAL = 1798;
	public static readonly SYS_XMLNODEID_GETTID = 1799;
	public static readonly SYS_XMLNODEID = 1800;
	public static readonly SYS_XMLT_2_SC = 1801;
	public static readonly SYS_XMLTRANSLATE = 1802;
	public static readonly SYS_XMLTYPE2SQL = 1803;
	public static readonly SYS_XQ_ASQLCNV = 1804;
	public static readonly SYS_XQ_ATOMCNVCHK = 1805;
	public static readonly SYS_XQBASEURI = 1806;
	public static readonly SYS_XQCASTABLEERRH = 1807;
	public static readonly SYS_XQCODEP2STR = 1808;
	public static readonly SYS_XQCODEPEQ = 1809;
	public static readonly SYS_XQCON2SEQ = 1810;
	public static readonly SYS_XQCONCAT = 1811;
	public static readonly SYS_XQDELETE = 1812;
	public static readonly SYS_XQDFLTCOLATION = 1813;
	public static readonly SYS_XQDOC = 1814;
	public static readonly SYS_XQDOCURI = 1815;
	public static readonly SYS_XQDURDIV = 1816;
	public static readonly SYS_XQED4URI = 1817;
	public static readonly SYS_XQENDSWITH = 1818;
	public static readonly SYS_XQERRH = 1819;
	public static readonly SYS_XQERR = 1820;
	public static readonly SYS_XQESHTMLURI = 1821;
	public static readonly SYS_XQEXLOBVAL = 1822;
	public static readonly SYS_XQEXSTWRP = 1823;
	public static readonly SYS_XQEXTRACT = 1824;
	public static readonly SYS_XQEXTRREF = 1825;
	public static readonly SYS_XQEXVAL = 1826;
	public static readonly SYS_XQFB2STR = 1827;
	public static readonly SYS_XQFNBOOL = 1828;
	public static readonly SYS_XQFNCMP = 1829;
	public static readonly SYS_XQFNDATIM = 1830;
	public static readonly SYS_XQFNLNAME = 1831;
	public static readonly SYS_XQFNNM = 1832;
	public static readonly SYS_XQFNNSURI = 1833;
	public static readonly SYS_XQFNPREDTRUTH = 1834;
	public static readonly SYS_XQFNQNM = 1835;
	public static readonly SYS_XQFNROOT = 1836;
	public static readonly SYS_XQFORMATNUM = 1837;
	public static readonly SYS_XQFTCONTAIN = 1838;
	public static readonly SYS_XQFUNCR = 1839;
	public static readonly SYS_XQGETCONTENT = 1840;
	public static readonly SYS_XQINDXOF = 1841;
	public static readonly SYS_XQINSERT = 1842;
	public static readonly SYS_XQINSPFX = 1843;
	public static readonly SYS_XQIRI2URI = 1844;
	public static readonly SYS_XQLANG = 1845;
	public static readonly SYS_XQLLNMFRMQNM = 1846;
	public static readonly SYS_XQMKNODEREF = 1847;
	public static readonly SYS_XQNILLED = 1848;
	public static readonly SYS_XQNODENAME = 1849;
	public static readonly SYS_XQNORMSPACE = 1850;
	public static readonly SYS_XQNORMUCODE = 1851;
	public static readonly SYS_XQ_NRNG = 1852;
	public static readonly SYS_XQNSP4PFX = 1853;
	public static readonly SYS_XQNSPFRMQNM = 1854;
	public static readonly SYS_XQPFXFRMQNM = 1855;
	public static readonly SYS_XQ_PKSQL2XML = 1856;
	public static readonly SYS_XQPOLYABS = 1857;
	public static readonly SYS_XQPOLYADD = 1858;
	public static readonly SYS_XQPOLYCEL = 1859;
	public static readonly SYS_XQPOLYCSTBL = 1860;
	public static readonly SYS_XQPOLYCST = 1861;
	public static readonly SYS_XQPOLYDIV = 1862;
	public static readonly SYS_XQPOLYFLR = 1863;
	public static readonly SYS_XQPOLYMOD = 1864;
	public static readonly SYS_XQPOLYMUL = 1865;
	public static readonly SYS_XQPOLYRND = 1866;
	public static readonly SYS_XQPOLYSQRT = 1867;
	public static readonly SYS_XQPOLYSUB = 1868;
	public static readonly SYS_XQPOLYUMUS = 1869;
	public static readonly SYS_XQPOLYUPLS = 1870;
	public static readonly SYS_XQPOLYVEQ = 1871;
	public static readonly SYS_XQPOLYVGE = 1872;
	public static readonly SYS_XQPOLYVGT = 1873;
	public static readonly SYS_XQPOLYVLE = 1874;
	public static readonly SYS_XQPOLYVLT = 1875;
	public static readonly SYS_XQPOLYVNE = 1876;
	public static readonly SYS_XQREF2VAL = 1877;
	public static readonly SYS_XQRENAME = 1878;
	public static readonly SYS_XQREPLACE = 1879;
	public static readonly SYS_XQRESVURI = 1880;
	public static readonly SYS_XQRNDHALF2EVN = 1881;
	public static readonly SYS_XQRSLVQNM = 1882;
	public static readonly SYS_XQRYENVPGET = 1883;
	public static readonly SYS_XQRYVARGET = 1884;
	public static readonly SYS_XQRYWRP = 1885;
	public static readonly SYS_XQSEQ2CON4XC = 1886;
	public static readonly SYS_XQSEQ2CON = 1887;
	public static readonly SYS_XQSEQDEEPEQ = 1888;
	public static readonly SYS_XQSEQINSB = 1889;
	public static readonly SYS_XQSEQRM = 1890;
	public static readonly SYS_XQSEQRVS = 1891;
	public static readonly SYS_XQSEQSUB = 1892;
	public static readonly SYS_XQSEQTYPMATCH = 1893;
	public static readonly SYS_XQSTARTSWITH = 1894;
	public static readonly SYS_XQSTATBURI = 1895;
	public static readonly SYS_XQSTR2CODEP = 1896;
	public static readonly SYS_XQSTRJOIN = 1897;
	public static readonly SYS_XQSUBSTRAFT = 1898;
	public static readonly SYS_XQSUBSTRBEF = 1899;
	public static readonly SYS_XQTOKENIZE = 1900;
	public static readonly SYS_XQTREATAS = 1901;
	public static readonly SYS_XQ_UPKXML2SQL = 1902;
	public static readonly SYS_XQXFORM = 1903;
	public static readonly SYS_XSID_TO_RAW = 1904;
	public static readonly SYS_ZMAP_FILTER = 1905;
	public static readonly SYS_ZMAP_REFRESH = 1906;
	public static readonly TABLE_LOOKUP_BY_NL = 1907;
	public static readonly TABLESPACE_NO = 1908;
	public static readonly TABLESPACE = 1909;
	public static readonly TABLES = 1910;
	public static readonly TABLE_STATS = 1911;
	public static readonly TABLE = 1912;
	public static readonly TABNO = 1913;
	public static readonly TAG = 1914;
	public static readonly TANH = 1915;
	public static readonly TAN = 1916;
	public static readonly TBLORIDXPARTNUM = 1917;
	public static readonly TEMPFILE = 1918;
	public static readonly TEMPLATE = 1919;
	public static readonly TEMPORARY = 1920;
	public static readonly TEMP_TABLE = 1921;
	public static readonly TEST = 1922;
	public static readonly TEXT = 1923;
	public static readonly THAN = 1924;
	public static readonly THEN = 1925;
	public static readonly THE = 1926;
	public static readonly THREAD = 1927;
	public static readonly THROUGH = 1928;
	public static readonly TIER = 1929;
	public static readonly TIES = 1930;
	public static readonly TIMEOUT = 1931;
	public static readonly TIMESTAMP_LTZ_UNCONSTRAINED = 1932;
	public static readonly TIMESTAMP = 1933;
	public static readonly TIMESTAMP_TZ_UNCONSTRAINED = 1934;
	public static readonly TIMESTAMP_UNCONSTRAINED = 1935;
	public static readonly TIMES = 1936;
	public static readonly TIME = 1937;
	public static readonly TIMEZONE = 1938;
	public static readonly TIMEZONE_ABBR = 1939;
	public static readonly TIMEZONE_HOUR = 1940;
	public static readonly TIMEZONE_MINUTE = 1941;
	public static readonly TIMEZONE_OFFSET = 1942;
	public static readonly TIMEZONE_REGION = 1943;
	public static readonly TIME_ZONE = 1944;
	public static readonly TIV_GB = 1945;
	public static readonly TIV_SSF = 1946;
	public static readonly TO_ACLID = 1947;
	public static readonly TO_BINARY_DOUBLE = 1948;
	public static readonly TO_BINARY_FLOAT = 1949;
	public static readonly TO_BLOB = 1950;
	public static readonly TO_CLOB = 1951;
	public static readonly TO_DSINTERVAL = 1952;
	public static readonly TO_LOB = 1953;
	public static readonly TO_MULTI_BYTE = 1954;
	public static readonly TO_NCHAR = 1955;
	public static readonly TO_NCLOB = 1956;
	public static readonly TO_NUMBER = 1957;
	public static readonly TOPLEVEL = 1958;
	public static readonly TO_SINGLE_BYTE = 1959;
	public static readonly TO_TIMESTAMP = 1960;
	public static readonly TO_TIMESTAMP_TZ = 1961;
	public static readonly TO_TIME = 1962;
	public static readonly TO_TIME_TZ = 1963;
	public static readonly TO = 1964;
	public static readonly TO_YMINTERVAL = 1965;
	public static readonly TRACE = 1966;
	public static readonly TRACING = 1967;
	public static readonly TRACKING = 1968;
	public static readonly TRAILING = 1969;
	public static readonly TRANSACTION = 1970;
	public static readonly TRANSFORM_DISTINCT_AGG = 1971;
	public static readonly TRANSITIONAL = 1972;
	public static readonly TRANSITION = 1973;
	public static readonly TRANSLATE = 1974;
	public static readonly TRANSLATION = 1975;
	public static readonly TREAT = 1976;
	public static readonly TRIGGERS = 1977;
	public static readonly TRIGGER = 1978;
	public static readonly TRUE = 1979;
	public static readonly TRUNCATE = 1980;
	public static readonly TRUNC = 1981;
	public static readonly TRUSTED = 1982;
	public static readonly TRUST = 1983;
	public static readonly TUNING = 1984;
	public static readonly TX = 1985;
	public static readonly TYPES = 1986;
	public static readonly TYPE = 1987;
	public static readonly TZ_OFFSET = 1988;
	public static readonly UB2 = 1989;
	public static readonly UBA = 1990;
	public static readonly UCS2 = 1991;
	public static readonly UID = 1992;
	public static readonly UNARCHIVED = 1993;
	public static readonly UNBOUNDED = 1994;
	public static readonly UNBOUND = 1995;
	public static readonly UNCONDITIONAL = 1996;
	public static readonly UNDER = 1997;
	public static readonly UNDO = 1998;
	public static readonly UNDROP = 1999;
	public static readonly UNIFORM = 2000;
	public static readonly UNION = 2001;
	public static readonly UNIQUE = 2002;
	public static readonly UNISTR = 2003;
	public static readonly UNLIMITED = 2004;
	public static readonly UNLOAD = 2005;
	public static readonly UNLOCK = 2006;
	public static readonly UNMATCHED = 2007;
	public static readonly UNNEST_INNERJ_DISTINCT_VIEW = 2008;
	public static readonly UNNEST_NOSEMIJ_NODISTINCTVIEW = 2009;
	public static readonly UNNEST_SEMIJ_VIEW = 2010;
	public static readonly UNNEST = 2011;
	public static readonly UNPACKED = 2012;
	public static readonly UNPIVOT = 2013;
	public static readonly UNPLUG = 2014;
	public static readonly UNPROTECTED = 2015;
	public static readonly UNQUIESCE = 2016;
	public static readonly UNRECOVERABLE = 2017;
	public static readonly UNRESTRICTED = 2018;
	public static readonly UNSUBSCRIBE = 2019;
	public static readonly UNTIL = 2020;
	public static readonly UNUSABLE = 2021;
	public static readonly UNUSED = 2022;
	public static readonly UPDATABLE = 2023;
	public static readonly UPDATED = 2024;
	public static readonly UPDATE = 2025;
	public static readonly UPDATEXML = 2026;
	public static readonly UPD_INDEXES = 2027;
	public static readonly UPD_JOININDEX = 2028;
	public static readonly UPGRADE = 2029;
	public static readonly UPPER = 2030;
	public static readonly UPSERT = 2031;
	public static readonly UROWID = 2032;
	public static readonly USABLE = 2033;
	public static readonly USAGE = 2034;
	public static readonly USE_ANTI = 2035;
	public static readonly USE_CONCAT = 2036;
	public static readonly USE_CUBE = 2037;
	public static readonly USE_HASH_AGGREGATION = 2038;
	public static readonly USE_HASH_GBY_FOR_PUSHDOWN = 2039;
	public static readonly USE_HASH = 2040;
	public static readonly USE_HIDDEN_PARTITIONS = 2041;
	public static readonly USE_INVISIBLE_INDEXES = 2042;
	public static readonly USE_MERGE_CARTESIAN = 2043;
	public static readonly USE_MERGE = 2044;
	public static readonly USE_NL = 2045;
	public static readonly USE_NL_WITH_INDEX = 2046;
	public static readonly USE_PRIVATE_OUTLINES = 2047;
	public static readonly USER_DATA = 2048;
	public static readonly USER_DEFINED = 2049;
	public static readonly USERENV = 2050;
	public static readonly USERGROUP = 2051;
	public static readonly USER_RECYCLEBIN = 2052;
	public static readonly USERS = 2053;
	public static readonly USER_TABLESPACES = 2054;
	public static readonly USER = 2055;
	public static readonly USE_SEMI = 2056;
	public static readonly USE_STORED_OUTLINES = 2057;
	public static readonly USE_TTT_FOR_GSETS = 2058;
	public static readonly USE = 2059;
	public static readonly USE_VECTOR_AGGREGATION = 2060;
	public static readonly USE_WEAK_NAME_RESL = 2061;
	public static readonly USING_NO_EXPAND = 2062;
	public static readonly USING = 2063;
	public static readonly UTF16BE = 2064;
	public static readonly UTF16LE = 2065;
	public static readonly UTF32 = 2066;
	public static readonly UTF8 = 2067;
	public static readonly V1 = 2068;
	public static readonly V2 = 2069;
	public static readonly VALIDATE = 2070;
	public static readonly VALIDATION = 2071;
	public static readonly VALID_TIME_END = 2072;
	public static readonly VALUES = 2073;
	public static readonly VALUE = 2074;
	public static readonly VARCHAR2 = 2075;
	public static readonly VARCHAR = 2076;
	public static readonly VARIABLE = 2077;
	public static readonly VAR_POP = 2078;
	public static readonly VARRAYS = 2079;
	public static readonly VARRAY = 2080;
	public static readonly VAR_SAMP = 2081;
	public static readonly VARYING = 2082;
	public static readonly VECTOR_READ_TRACE = 2083;
	public static readonly VECTOR_READ = 2084;
	public static readonly VECTOR_TRANSFORM_DIMS = 2085;
	public static readonly VECTOR_TRANSFORM_FACT = 2086;
	public static readonly VECTOR_TRANSFORM = 2087;
	public static readonly VERIFIER = 2088;
	public static readonly VERIFY = 2089;
	public static readonly VERSIONING = 2090;
	public static readonly VERSIONS_ENDSCN = 2091;
	public static readonly VERSIONS_ENDTIME = 2092;
	public static readonly VERSIONS_OPERATION = 2093;
	public static readonly VERSIONS_STARTSCN = 2094;
	public static readonly VERSIONS_STARTTIME = 2095;
	public static readonly VERSIONS = 2096;
	public static readonly VERSIONS_XID = 2097;
	public static readonly VERSION = 2098;
	public static readonly VIEW = 2099;
	public static readonly VIOLATION = 2100;
	public static readonly VIRTUAL = 2101;
	public static readonly VISIBILITY = 2102;
	public static readonly VISIBLE = 2103;
	public static readonly VOLUME = 2104;
	public static readonly VSIZE = 2105;
	public static readonly WAIT = 2106;
	public static readonly WALLET = 2107;
	public static readonly WARNING = 2108;
	public static readonly WEEKS = 2109;
	public static readonly WEEK = 2110;
	public static readonly WELLFORMED = 2111;
	public static readonly WHENEVER = 2112;
	public static readonly WHEN = 2113;
	public static readonly WHERE = 2114;
	public static readonly WHILE = 2115;
	public static readonly WHITESPACE = 2116;
	public static readonly WIDTH_BUCKET = 2117;
	public static readonly WITHIN = 2118;
	public static readonly WITHOUT = 2119;
	public static readonly WITH_PLSQL = 2120;
	public static readonly WITH = 2121;
	public static readonly WORK = 2122;
	public static readonly WRAPPED = 2123;
	public static readonly WRAPPER = 2124;
	public static readonly WRITE = 2125;
	public static readonly XDB_FASTPATH_INSERT = 2126;
	public static readonly XDB = 2127;
	public static readonly X_DYN_PRUNE = 2128;
	public static readonly XID = 2129;
	public static readonly XML2OBJECT = 2130;
	public static readonly XMLAGG = 2131;
	public static readonly XMLATTRIBUTES = 2132;
	public static readonly XMLCAST = 2133;
	public static readonly XMLCDATA = 2134;
	public static readonly XMLCOLATTVAL = 2135;
	public static readonly XMLCOMMENT = 2136;
	public static readonly XMLCONCAT = 2137;
	public static readonly XMLDIFF = 2138;
	public static readonly XML_DML_RWT_STMT = 2139;
	public static readonly XMLELEMENT = 2140;
	public static readonly XMLEXISTS2 = 2141;
	public static readonly XMLEXISTS = 2142;
	public static readonly XMLFOREST = 2143;
	public static readonly XMLINDEX = 2144;
	public static readonly XMLINDEX_REWRITE_IN_SELECT = 2145;
	public static readonly XMLINDEX_REWRITE = 2146;
	public static readonly XMLINDEX_SEL_IDX_TBL = 2147;
	public static readonly XMLISNODE = 2148;
	public static readonly XMLISVALID = 2149;
	public static readonly XMLNAMESPACES = 2150;
	public static readonly XMLPARSE = 2151;
	public static readonly XMLPATCH = 2152;
	public static readonly XMLPI = 2153;
	public static readonly XMLQUERYVAL = 2154;
	public static readonly XMLQUERY = 2155;
	public static readonly XMLROOT = 2156;
	public static readonly XMLSCHEMA = 2157;
	public static readonly XMLSERIALIZE = 2158;
	public static readonly XMLTABLE = 2159;
	public static readonly XMLTRANSFORMBLOB = 2160;
	public static readonly XMLTRANSFORM = 2161;
	public static readonly XMLTYPE = 2162;
	public static readonly XML = 2163;
	public static readonly XPATHTABLE = 2164;
	public static readonly XS_SYS_CONTEXT = 2165;
	public static readonly XS = 2166;
	public static readonly XTRANSPORT = 2167;
	public static readonly YEARS = 2168;
	public static readonly YEAR = 2169;
	public static readonly YES = 2170;
	public static readonly YMINTERVAL_UNCONSTRAINED = 2171;
	public static readonly ZONEMAP = 2172;
	public static readonly ZONE = 2173;
	public static readonly PREDICTION = 2174;
	public static readonly PREDICTION_BOUNDS = 2175;
	public static readonly PREDICTION_COST = 2176;
	public static readonly PREDICTION_DETAILS = 2177;
	public static readonly PREDICTION_PROBABILITY = 2178;
	public static readonly PREDICTION_SET = 2179;
	public static readonly CUME_DIST = 2180;
	public static readonly DENSE_RANK = 2181;
	public static readonly LISTAGG = 2182;
	public static readonly PERCENT_RANK = 2183;
	public static readonly PERCENTILE_CONT = 2184;
	public static readonly PERCENTILE_DISC = 2185;
	public static readonly RANK = 2186;
	public static readonly AVG = 2187;
	public static readonly CORR = 2188;
	public static readonly COVAR_ = 2189;
	public static readonly DECODE = 2190;
	public static readonly LAG = 2191;
	public static readonly LEAD = 2192;
	public static readonly MAX = 2193;
	public static readonly MEDIAN = 2194;
	public static readonly MIN = 2195;
	public static readonly NTILE = 2196;
	public static readonly NVL = 2197;
	public static readonly RATIO_TO_REPORT = 2198;
	public static readonly REGR_ = 2199;
	public static readonly ROUND = 2200;
	public static readonly ROW_NUMBER = 2201;
	public static readonly SUBSTR = 2202;
	public static readonly TO_CHAR = 2203;
	public static readonly TRIM = 2204;
	public static readonly SUM = 2205;
	public static readonly STDDEV = 2206;
	public static readonly VAR_ = 2207;
	public static readonly VARIANCE = 2208;
	public static readonly LEAST = 2209;
	public static readonly GREATEST = 2210;
	public static readonly TO_DATE = 2211;
	public static readonly NATIONAL_CHAR_STRING_LIT = 2212;
	public static readonly BIT_STRING_LIT = 2213;
	public static readonly HEX_STRING_LIT = 2214;
	public static readonly DOUBLE_PERIOD = 2215;
	public static readonly PERIOD = 2216;
	public static readonly UNSIGNED_INTEGER = 2217;
	public static readonly APPROXIMATE_NUM_LIT = 2218;
	public static readonly CHAR_STRING = 2219;
	public static readonly DELIMITED_ID = 2220;
	public static readonly PERCENT = 2221;
	public static readonly AMPERSAND = 2222;
	public static readonly LEFT_PAREN = 2223;
	public static readonly RIGHT_PAREN = 2224;
	public static readonly DOUBLE_ASTERISK = 2225;
	public static readonly ASTERISK = 2226;
	public static readonly PLUS_SIGN = 2227;
	public static readonly MINUS_SIGN = 2228;
	public static readonly COMMA = 2229;
	public static readonly SOLIDUS = 2230;
	public static readonly AT_SIGN = 2231;
	public static readonly ASSIGN_OP = 2232;
	public static readonly BINDVAR = 2233;
	public static readonly NOT_EQUAL_OP = 2234;
	public static readonly CARRET_OPERATOR_PART = 2235;
	public static readonly TILDE_OPERATOR_PART = 2236;
	public static readonly EXCLAMATION_OPERATOR_PART = 2237;
	public static readonly GREATER_THAN_OP = 2238;
	public static readonly LESS_THAN_OP = 2239;
	public static readonly COLON = 2240;
	public static readonly SEMICOLON = 2241;
	public static readonly BAR = 2242;
	public static readonly EQUALS_OP = 2243;
	public static readonly LEFT_BRACKET = 2244;
	public static readonly RIGHT_BRACKET = 2245;
	public static readonly INTRODUCER = 2246;
	public static readonly SINGLE_LINE_COMMENT = 2247;
	public static readonly MULTI_LINE_COMMENT = 2248;
	public static readonly REMARK_COMMENT = 2249;
	public static readonly PROMPT_MESSAGE = 2250;
	public static readonly START_CMD = 2251;
	public static readonly REGULAR_ID = 2252;
	public static readonly SPACES = 2253;
	public static readonly EOF = Token.EOF;
	public static readonly RULE_program = 0;
	public static readonly RULE_sql_script = 1;
	public static readonly RULE_unit_statement = 2;
	public static readonly RULE_drop_function = 3;
	public static readonly RULE_alter_function = 4;
	public static readonly RULE_create_function_body = 5;
	public static readonly RULE_parallel_enable_clause = 6;
	public static readonly RULE_partition_by_clause = 7;
	public static readonly RULE_result_cache_clause = 8;
	public static readonly RULE_relies_on_part = 9;
	public static readonly RULE_streaming_clause = 10;
	public static readonly RULE_drop_package = 11;
	public static readonly RULE_alter_package = 12;
	public static readonly RULE_create_package = 13;
	public static readonly RULE_create_package_body = 14;
	public static readonly RULE_package_obj_spec = 15;
	public static readonly RULE_procedure_spec = 16;
	public static readonly RULE_function_spec = 17;
	public static readonly RULE_package_obj_body = 18;
	public static readonly RULE_drop_procedure = 19;
	public static readonly RULE_alter_procedure = 20;
	public static readonly RULE_function_body = 21;
	public static readonly RULE_procedure_body = 22;
	public static readonly RULE_create_procedure_body = 23;
	public static readonly RULE_drop_trigger = 24;
	public static readonly RULE_alter_trigger = 25;
	public static readonly RULE_create_trigger = 26;
	public static readonly RULE_trigger_follows_clause = 27;
	public static readonly RULE_trigger_when_clause = 28;
	public static readonly RULE_simple_dml_trigger = 29;
	public static readonly RULE_for_each_row = 30;
	public static readonly RULE_compound_dml_trigger = 31;
	public static readonly RULE_non_dml_trigger = 32;
	public static readonly RULE_trigger_body = 33;
	public static readonly RULE_routine_clause = 34;
	public static readonly RULE_compound_trigger_block = 35;
	public static readonly RULE_timing_point_section = 36;
	public static readonly RULE_non_dml_event = 37;
	public static readonly RULE_dml_event_clause = 38;
	public static readonly RULE_dml_event_element = 39;
	public static readonly RULE_dml_event_nested_clause = 40;
	public static readonly RULE_referencing_clause = 41;
	public static readonly RULE_referencing_element = 42;
	public static readonly RULE_drop_type = 43;
	public static readonly RULE_alter_type = 44;
	public static readonly RULE_compile_type_clause = 45;
	public static readonly RULE_replace_type_clause = 46;
	public static readonly RULE_alter_method_spec = 47;
	public static readonly RULE_alter_method_element = 48;
	public static readonly RULE_alter_attribute_definition = 49;
	public static readonly RULE_attribute_definition = 50;
	public static readonly RULE_alter_collection_clauses = 51;
	public static readonly RULE_dependent_handling_clause = 52;
	public static readonly RULE_dependent_exceptions_part = 53;
	public static readonly RULE_create_type = 54;
	public static readonly RULE_type_definition = 55;
	public static readonly RULE_object_type_def = 56;
	public static readonly RULE_object_as_part = 57;
	public static readonly RULE_object_under_part = 58;
	public static readonly RULE_nested_table_type_def = 59;
	public static readonly RULE_sqlj_object_type = 60;
	public static readonly RULE_type_body = 61;
	public static readonly RULE_type_body_elements = 62;
	public static readonly RULE_map_order_func_declaration = 63;
	public static readonly RULE_subprog_decl_in_type = 64;
	public static readonly RULE_proc_decl_in_type = 65;
	public static readonly RULE_func_decl_in_type = 66;
	public static readonly RULE_constructor_declaration = 67;
	public static readonly RULE_modifier_clause = 68;
	public static readonly RULE_object_member_spec = 69;
	public static readonly RULE_sqlj_object_type_attr = 70;
	public static readonly RULE_element_spec = 71;
	public static readonly RULE_element_spec_options = 72;
	public static readonly RULE_subprogram_spec = 73;
	public static readonly RULE_overriding_subprogram_spec = 74;
	public static readonly RULE_overriding_function_spec = 75;
	public static readonly RULE_type_procedure_spec = 76;
	public static readonly RULE_type_function_spec = 77;
	public static readonly RULE_constructor_spec = 78;
	public static readonly RULE_map_order_function_spec = 79;
	public static readonly RULE_pragma_clause = 80;
	public static readonly RULE_pragma_elements = 81;
	public static readonly RULE_type_elements_parameter = 82;
	public static readonly RULE_drop_sequence = 83;
	public static readonly RULE_alter_sequence = 84;
	public static readonly RULE_alter_session = 85;
	public static readonly RULE_alter_session_set_clause = 86;
	public static readonly RULE_create_sequence = 87;
	public static readonly RULE_sequence_spec = 88;
	public static readonly RULE_sequence_start_clause = 89;
	public static readonly RULE_create_index = 90;
	public static readonly RULE_cluster_index_clause = 91;
	public static readonly RULE_cluster_name = 92;
	public static readonly RULE_table_index_clause = 93;
	public static readonly RULE_bitmap_join_index_clause = 94;
	public static readonly RULE_index_expr = 95;
	public static readonly RULE_index_properties = 96;
	public static readonly RULE_domain_index_clause = 97;
	public static readonly RULE_local_domain_index_clause = 98;
	public static readonly RULE_xmlindex_clause = 99;
	public static readonly RULE_local_xmlindex_clause = 100;
	public static readonly RULE_global_partitioned_index = 101;
	public static readonly RULE_index_partitioning_clause = 102;
	public static readonly RULE_local_partitioned_index = 103;
	public static readonly RULE_on_range_partitioned_table = 104;
	public static readonly RULE_on_list_partitioned_table = 105;
	public static readonly RULE_partitioned_table = 106;
	public static readonly RULE_on_hash_partitioned_table = 107;
	public static readonly RULE_on_hash_partitioned_clause = 108;
	public static readonly RULE_on_comp_partitioned_table = 109;
	public static readonly RULE_on_comp_partitioned_clause = 110;
	public static readonly RULE_index_subpartition_clause = 111;
	public static readonly RULE_index_subpartition_subclause = 112;
	public static readonly RULE_odci_parameters = 113;
	public static readonly RULE_indextype = 114;
	public static readonly RULE_alter_index = 115;
	public static readonly RULE_alter_index_ops_set1 = 116;
	public static readonly RULE_alter_index_ops_set2 = 117;
	public static readonly RULE_visible_or_invisible = 118;
	public static readonly RULE_monitoring_nomonitoring = 119;
	public static readonly RULE_rebuild_clause = 120;
	public static readonly RULE_alter_index_partitioning = 121;
	public static readonly RULE_modify_index_default_attrs = 122;
	public static readonly RULE_add_hash_index_partition = 123;
	public static readonly RULE_coalesce_index_partition = 124;
	public static readonly RULE_modify_index_partition = 125;
	public static readonly RULE_modify_index_partitions_ops = 126;
	public static readonly RULE_rename_index_partition = 127;
	public static readonly RULE_drop_index_partition = 128;
	public static readonly RULE_split_index_partition = 129;
	public static readonly RULE_index_partition_description = 130;
	public static readonly RULE_modify_index_subpartition = 131;
	public static readonly RULE_partition_name_old = 132;
	public static readonly RULE_new_partition_name = 133;
	public static readonly RULE_new_index_name = 134;
	public static readonly RULE_create_user = 135;
	public static readonly RULE_alter_user = 136;
	public static readonly RULE_alter_identified_by = 137;
	public static readonly RULE_identified_by = 138;
	public static readonly RULE_identified_other_clause = 139;
	public static readonly RULE_user_tablespace_clause = 140;
	public static readonly RULE_quota_clause = 141;
	public static readonly RULE_profile_clause = 142;
	public static readonly RULE_role_clause = 143;
	public static readonly RULE_user_default_role_clause = 144;
	public static readonly RULE_password_expire_clause = 145;
	public static readonly RULE_user_lock_clause = 146;
	public static readonly RULE_user_editions_clause = 147;
	public static readonly RULE_alter_user_editions_clause = 148;
	public static readonly RULE_proxy_clause = 149;
	public static readonly RULE_container_names = 150;
	public static readonly RULE_set_container_data = 151;
	public static readonly RULE_add_rem_container_data = 152;
	public static readonly RULE_container_data_clause = 153;
	public static readonly RULE_analyze = 154;
	public static readonly RULE_partition_extention_clause = 155;
	public static readonly RULE_validation_clauses = 156;
	public static readonly RULE_online_or_offline = 157;
	public static readonly RULE_into_clause1 = 158;
	public static readonly RULE_partition_key_value = 159;
	public static readonly RULE_subpartition_key_value = 160;
	public static readonly RULE_associate_statistics = 161;
	public static readonly RULE_column_association = 162;
	public static readonly RULE_function_association = 163;
	public static readonly RULE_indextype_name = 164;
	public static readonly RULE_using_statistics_type = 165;
	public static readonly RULE_statistics_type_name = 166;
	public static readonly RULE_default_cost_clause = 167;
	public static readonly RULE_cpu_cost = 168;
	public static readonly RULE_io_cost = 169;
	public static readonly RULE_network_cost = 170;
	public static readonly RULE_default_selectivity_clause = 171;
	public static readonly RULE_default_selectivity = 172;
	public static readonly RULE_storage_table_clause = 173;
	public static readonly RULE_unified_auditing = 174;
	public static readonly RULE_policy_name = 175;
	public static readonly RULE_audit_traditional = 176;
	public static readonly RULE_audit_direct_path = 177;
	public static readonly RULE_audit_container_clause = 178;
	public static readonly RULE_audit_operation_clause = 179;
	public static readonly RULE_auditing_by_clause = 180;
	public static readonly RULE_audit_user = 181;
	public static readonly RULE_audit_schema_object_clause = 182;
	public static readonly RULE_sql_operation = 183;
	public static readonly RULE_auditing_on_clause = 184;
	public static readonly RULE_model_name = 185;
	public static readonly RULE_object_name = 186;
	public static readonly RULE_profile_name = 187;
	public static readonly RULE_sql_statement_shortcut = 188;
	public static readonly RULE_drop_index = 189;
	public static readonly RULE_rename_object = 190;
	public static readonly RULE_grant_statement = 191;
	public static readonly RULE_container_clause = 192;
	public static readonly RULE_create_directory = 193;
	public static readonly RULE_directory_name = 194;
	public static readonly RULE_directory_path = 195;
	public static readonly RULE_alter_library = 196;
	public static readonly RULE_library_editionable = 197;
	public static readonly RULE_library_debug = 198;
	public static readonly RULE_compiler_parameters_clause = 199;
	public static readonly RULE_parameter_value = 200;
	public static readonly RULE_library_name = 201;
	public static readonly RULE_alter_view = 202;
	public static readonly RULE_alter_view_editionable = 203;
	public static readonly RULE_create_view = 204;
	public static readonly RULE_view_options = 205;
	public static readonly RULE_view_alias_constraint = 206;
	public static readonly RULE_object_view_clause = 207;
	public static readonly RULE_inline_constraint = 208;
	public static readonly RULE_inline_ref_constraint = 209;
	public static readonly RULE_out_of_line_ref_constraint = 210;
	public static readonly RULE_out_of_line_constraint = 211;
	public static readonly RULE_constraint_state = 212;
	public static readonly RULE_alter_tablespace = 213;
	public static readonly RULE_datafile_tempfile_clauses = 214;
	public static readonly RULE_tablespace_logging_clauses = 215;
	public static readonly RULE_tablespace_group_clause = 216;
	public static readonly RULE_tablespace_group_name = 217;
	public static readonly RULE_tablespace_state_clauses = 218;
	public static readonly RULE_flashback_mode_clause = 219;
	public static readonly RULE_new_tablespace_name = 220;
	public static readonly RULE_create_tablespace = 221;
	public static readonly RULE_permanent_tablespace_clause = 222;
	public static readonly RULE_tablespace_encryption_spec = 223;
	public static readonly RULE_logging_clause = 224;
	public static readonly RULE_extent_management_clause = 225;
	public static readonly RULE_segment_management_clause = 226;
	public static readonly RULE_temporary_tablespace_clause = 227;
	public static readonly RULE_undo_tablespace_clause = 228;
	public static readonly RULE_tablespace_retention_clause = 229;
	public static readonly RULE_datafile_specification = 230;
	public static readonly RULE_tempfile_specification = 231;
	public static readonly RULE_datafile_tempfile_spec = 232;
	public static readonly RULE_redo_log_file_spec = 233;
	public static readonly RULE_autoextend_clause = 234;
	public static readonly RULE_maxsize_clause = 235;
	public static readonly RULE_build_clause = 236;
	public static readonly RULE_parallel_clause = 237;
	public static readonly RULE_alter_materialized_view = 238;
	public static readonly RULE_alter_mv_option1 = 239;
	public static readonly RULE_alter_mv_refresh = 240;
	public static readonly RULE_rollback_segment = 241;
	public static readonly RULE_modify_mv_column_clause = 242;
	public static readonly RULE_alter_materialized_view_log = 243;
	public static readonly RULE_add_mv_log_column_clause = 244;
	public static readonly RULE_move_mv_log_clause = 245;
	public static readonly RULE_mv_log_augmentation = 246;
	public static readonly RULE_datetime_expr = 247;
	public static readonly RULE_interval_expr = 248;
	public static readonly RULE_synchronous_or_asynchronous = 249;
	public static readonly RULE_including_or_excluding = 250;
	public static readonly RULE_create_materialized_view_log = 251;
	public static readonly RULE_new_values_clause = 252;
	public static readonly RULE_mv_log_purge_clause = 253;
	public static readonly RULE_create_materialized_view = 254;
	public static readonly RULE_create_mv_refresh = 255;
	public static readonly RULE_create_context = 256;
	public static readonly RULE_oracle_namespace = 257;
	public static readonly RULE_create_cluster = 258;
	public static readonly RULE_create_table = 259;
	public static readonly RULE_xmltype_table = 260;
	public static readonly RULE_xmltype_virtual_columns = 261;
	public static readonly RULE_xmltype_column_properties = 262;
	public static readonly RULE_xmltype_storage = 263;
	public static readonly RULE_xmlschema_spec = 264;
	public static readonly RULE_object_table = 265;
	public static readonly RULE_oid_index_clause = 266;
	public static readonly RULE_oid_clause = 267;
	public static readonly RULE_object_properties = 268;
	public static readonly RULE_object_table_substitution = 269;
	public static readonly RULE_relational_table = 270;
	public static readonly RULE_relational_property = 271;
	public static readonly RULE_table_partitioning_clauses = 272;
	public static readonly RULE_range_partitions = 273;
	public static readonly RULE_list_partitions = 274;
	public static readonly RULE_hash_partitions = 275;
	public static readonly RULE_individual_hash_partitions = 276;
	public static readonly RULE_hash_partitions_by_quantity = 277;
	public static readonly RULE_hash_partition_quantity = 278;
	public static readonly RULE_composite_range_partitions = 279;
	public static readonly RULE_composite_list_partitions = 280;
	public static readonly RULE_composite_hash_partitions = 281;
	public static readonly RULE_reference_partitioning = 282;
	public static readonly RULE_reference_partition_desc = 283;
	public static readonly RULE_system_partitioning = 284;
	public static readonly RULE_range_partition_desc = 285;
	public static readonly RULE_list_partition_desc = 286;
	public static readonly RULE_subpartition_template = 287;
	public static readonly RULE_hash_subpartition_quantity = 288;
	public static readonly RULE_subpartition_by_range = 289;
	public static readonly RULE_subpartition_by_list = 290;
	public static readonly RULE_subpartition_by_hash = 291;
	public static readonly RULE_subpartition_name = 292;
	public static readonly RULE_range_subpartition_desc = 293;
	public static readonly RULE_list_subpartition_desc = 294;
	public static readonly RULE_individual_hash_subparts = 295;
	public static readonly RULE_hash_subparts_by_quantity = 296;
	public static readonly RULE_range_values_clause = 297;
	public static readonly RULE_list_values_clause = 298;
	public static readonly RULE_table_partition_description = 299;
	public static readonly RULE_partitioning_storage_clause = 300;
	public static readonly RULE_lob_partitioning_storage = 301;
	public static readonly RULE_datatype_null_enable = 302;
	public static readonly RULE_size_clause = 303;
	public static readonly RULE_table_compression = 304;
	public static readonly RULE_physical_attributes_clause = 305;
	public static readonly RULE_storage_clause = 306;
	public static readonly RULE_deferred_segment_creation = 307;
	public static readonly RULE_segment_attributes_clause = 308;
	public static readonly RULE_physical_properties = 309;
	public static readonly RULE_row_movement_clause = 310;
	public static readonly RULE_flashback_archive_clause = 311;
	public static readonly RULE_log_grp = 312;
	public static readonly RULE_supplemental_table_logging = 313;
	public static readonly RULE_supplemental_log_grp_clause = 314;
	public static readonly RULE_supplemental_id_key_clause = 315;
	public static readonly RULE_allocate_extent_clause = 316;
	public static readonly RULE_deallocate_unused_clause = 317;
	public static readonly RULE_shrink_clause = 318;
	public static readonly RULE_records_per_block_clause = 319;
	public static readonly RULE_upgrade_table_clause = 320;
	public static readonly RULE_drop_table = 321;
	public static readonly RULE_drop_view = 322;
	public static readonly RULE_comment_on_column = 323;
	public static readonly RULE_enable_or_disable = 324;
	public static readonly RULE_allow_or_disallow = 325;
	public static readonly RULE_create_synonym = 326;
	public static readonly RULE_comment_on_table = 327;
	public static readonly RULE_alter_cluster = 328;
	public static readonly RULE_cache_or_nocache = 329;
	public static readonly RULE_database_name = 330;
	public static readonly RULE_alter_database = 331;
	public static readonly RULE_startup_clauses = 332;
	public static readonly RULE_resetlogs_or_noresetlogs = 333;
	public static readonly RULE_upgrade_or_downgrade = 334;
	public static readonly RULE_recovery_clauses = 335;
	public static readonly RULE_begin_or_end = 336;
	public static readonly RULE_general_recovery = 337;
	public static readonly RULE_full_database_recovery = 338;
	public static readonly RULE_partial_database_recovery = 339;
	public static readonly RULE_partial_database_recovery_10g = 340;
	public static readonly RULE_managed_standby_recovery = 341;
	public static readonly RULE_db_name = 342;
	public static readonly RULE_database_file_clauses = 343;
	public static readonly RULE_create_datafile_clause = 344;
	public static readonly RULE_alter_datafile_clause = 345;
	public static readonly RULE_alter_tempfile_clause = 346;
	public static readonly RULE_logfile_clauses = 347;
	public static readonly RULE_add_logfile_clauses = 348;
	public static readonly RULE_log_file_group = 349;
	public static readonly RULE_drop_logfile_clauses = 350;
	public static readonly RULE_switch_logfile_clause = 351;
	public static readonly RULE_supplemental_db_logging = 352;
	public static readonly RULE_add_or_drop = 353;
	public static readonly RULE_supplemental_plsql_clause = 354;
	public static readonly RULE_logfile_descriptor = 355;
	public static readonly RULE_controlfile_clauses = 356;
	public static readonly RULE_trace_file_clause = 357;
	public static readonly RULE_standby_database_clauses = 358;
	public static readonly RULE_activate_standby_db_clause = 359;
	public static readonly RULE_maximize_standby_db_clause = 360;
	public static readonly RULE_register_logfile_clause = 361;
	public static readonly RULE_commit_switchover_clause = 362;
	public static readonly RULE_start_standby_clause = 363;
	public static readonly RULE_stop_standby_clause = 364;
	public static readonly RULE_convert_database_clause = 365;
	public static readonly RULE_default_settings_clause = 366;
	public static readonly RULE_set_time_zone_clause = 367;
	public static readonly RULE_instance_clauses = 368;
	public static readonly RULE_security_clause = 369;
	public static readonly RULE_domain = 370;
	public static readonly RULE_database = 371;
	public static readonly RULE_edition_name = 372;
	public static readonly RULE_filenumber = 373;
	public static readonly RULE_filename = 374;
	public static readonly RULE_alter_table = 375;
	public static readonly RULE_alter_table_properties = 376;
	public static readonly RULE_alter_table_properties_1 = 377;
	public static readonly RULE_alter_iot_clauses = 378;
	public static readonly RULE_alter_mapping_table_clause = 379;
	public static readonly RULE_alter_overflow_clause = 380;
	public static readonly RULE_add_overflow_clause = 381;
	public static readonly RULE_enable_disable_clause = 382;
	public static readonly RULE_using_index_clause = 383;
	public static readonly RULE_index_attributes = 384;
	public static readonly RULE_sort_or_nosort = 385;
	public static readonly RULE_exceptions_clause = 386;
	public static readonly RULE_move_table_clause = 387;
	public static readonly RULE_index_org_table_clause = 388;
	public static readonly RULE_mapping_table_clause = 389;
	public static readonly RULE_key_compression = 390;
	public static readonly RULE_index_org_overflow_clause = 391;
	public static readonly RULE_column_clauses = 392;
	public static readonly RULE_modify_collection_retrieval = 393;
	public static readonly RULE_collection_item = 394;
	public static readonly RULE_rename_column_clause = 395;
	public static readonly RULE_old_column_name = 396;
	public static readonly RULE_new_column_name = 397;
	public static readonly RULE_add_modify_drop_column_clauses = 398;
	public static readonly RULE_drop_column_clause = 399;
	public static readonly RULE_modify_column_clauses = 400;
	public static readonly RULE_modify_col_properties = 401;
	public static readonly RULE_modify_col_substitutable = 402;
	public static readonly RULE_add_column_clause = 403;
	public static readonly RULE_alter_varray_col_properties = 404;
	public static readonly RULE_varray_col_properties = 405;
	public static readonly RULE_varray_storage_clause = 406;
	public static readonly RULE_lob_segname = 407;
	public static readonly RULE_lob_item = 408;
	public static readonly RULE_lob_storage_parameters = 409;
	public static readonly RULE_lob_storage_clause = 410;
	public static readonly RULE_modify_lob_storage_clause = 411;
	public static readonly RULE_modify_lob_parameters = 412;
	public static readonly RULE_lob_parameters = 413;
	public static readonly RULE_lob_deduplicate_clause = 414;
	public static readonly RULE_lob_compression_clause = 415;
	public static readonly RULE_lob_retention_clause = 416;
	public static readonly RULE_encryption_spec = 417;
	public static readonly RULE_tablespace = 418;
	public static readonly RULE_varray_item = 419;
	public static readonly RULE_column_properties = 420;
	public static readonly RULE_period_definition = 421;
	public static readonly RULE_start_time_column = 422;
	public static readonly RULE_end_time_column = 423;
	public static readonly RULE_column_definition = 424;
	public static readonly RULE_virtual_column_definition = 425;
	public static readonly RULE_autogenerated_sequence_definition = 426;
	public static readonly RULE_out_of_line_part_storage = 427;
	public static readonly RULE_nested_table_col_properties = 428;
	public static readonly RULE_nested_item = 429;
	public static readonly RULE_substitutable_column_clause = 430;
	public static readonly RULE_partition_name = 431;
	public static readonly RULE_supplemental_logging_props = 432;
	public static readonly RULE_column_or_attribute = 433;
	public static readonly RULE_object_type_col_properties = 434;
	public static readonly RULE_constraint_clauses = 435;
	public static readonly RULE_old_constraint_name = 436;
	public static readonly RULE_new_constraint_name = 437;
	public static readonly RULE_drop_constraint_clause = 438;
	public static readonly RULE_drop_primary_key_or_unique_or_generic_clause = 439;
	public static readonly RULE_add_constraint = 440;
	public static readonly RULE_add_constraint_clause = 441;
	public static readonly RULE_check_constraint = 442;
	public static readonly RULE_drop_constraint = 443;
	public static readonly RULE_enable_constraint = 444;
	public static readonly RULE_disable_constraint = 445;
	public static readonly RULE_foreign_key_clause = 446;
	public static readonly RULE_references_clause = 447;
	public static readonly RULE_on_delete_clause = 448;
	public static readonly RULE_unique_key_clause = 449;
	public static readonly RULE_primary_key_clause = 450;
	public static readonly RULE_anonymous_block = 451;
	public static readonly RULE_invoker_rights_clause = 452;
	public static readonly RULE_call_spec = 453;
	public static readonly RULE_java_spec = 454;
	public static readonly RULE_c_spec = 455;
	public static readonly RULE_c_agent_in_clause = 456;
	public static readonly RULE_c_parameters_clause = 457;
	public static readonly RULE_parameter = 458;
	public static readonly RULE_default_value_part = 459;
	public static readonly RULE_seq_of_declare_specs = 460;
	public static readonly RULE_declare_spec = 461;
	public static readonly RULE_variable_declaration = 462;
	public static readonly RULE_subtype_declaration = 463;
	public static readonly RULE_cursor_declaration = 464;
	public static readonly RULE_parameter_spec = 465;
	public static readonly RULE_exception_declaration = 466;
	public static readonly RULE_pragma_declaration = 467;
	public static readonly RULE_record_type_def = 468;
	public static readonly RULE_field_spec = 469;
	public static readonly RULE_ref_cursor_type_def = 470;
	public static readonly RULE_type_declaration = 471;
	public static readonly RULE_table_type_def = 472;
	public static readonly RULE_table_indexed_by_part = 473;
	public static readonly RULE_varray_type_def = 474;
	public static readonly RULE_seq_of_statements = 475;
	public static readonly RULE_label_declaration = 476;
	public static readonly RULE_statement = 477;
	public static readonly RULE_swallow_to_semi = 478;
	public static readonly RULE_assignment_statement = 479;
	public static readonly RULE_continue_statement = 480;
	public static readonly RULE_exit_statement = 481;
	public static readonly RULE_goto_statement = 482;
	public static readonly RULE_if_statement = 483;
	public static readonly RULE_elsif_part = 484;
	public static readonly RULE_else_part = 485;
	public static readonly RULE_loop_statement = 486;
	public static readonly RULE_cursor_loop_param = 487;
	public static readonly RULE_forall_statement = 488;
	public static readonly RULE_bounds_clause = 489;
	public static readonly RULE_between_bound = 490;
	public static readonly RULE_lower_bound = 491;
	public static readonly RULE_upper_bound = 492;
	public static readonly RULE_null_statement = 493;
	public static readonly RULE_raise_statement = 494;
	public static readonly RULE_return_statement = 495;
	public static readonly RULE_function_call = 496;
	public static readonly RULE_procedure_call = 497;
	public static readonly RULE_pipe_row_statement = 498;
	public static readonly RULE_body = 499;
	public static readonly RULE_exception_handler = 500;
	public static readonly RULE_trigger_block = 501;
	public static readonly RULE_block = 502;
	public static readonly RULE_sql_statement = 503;
	public static readonly RULE_execute_immediate = 504;
	public static readonly RULE_dynamic_returning_clause = 505;
	public static readonly RULE_data_manipulation_language_statements = 506;
	public static readonly RULE_cursor_manipulation_statements = 507;
	public static readonly RULE_close_statement = 508;
	public static readonly RULE_open_statement = 509;
	public static readonly RULE_fetch_statement = 510;
	public static readonly RULE_open_for_statement = 511;
	public static readonly RULE_transaction_control_statements = 512;
	public static readonly RULE_set_transaction_command = 513;
	public static readonly RULE_set_constraint_command = 514;
	public static readonly RULE_commit_statement = 515;
	public static readonly RULE_write_clause = 516;
	public static readonly RULE_rollback_statement = 517;
	public static readonly RULE_savepoint_statement = 518;
	public static readonly RULE_explain_statement = 519;
	public static readonly RULE_select_only_statement = 520;
	public static readonly RULE_select_statement = 521;
	public static readonly RULE_subquery_factoring_clause = 522;
	public static readonly RULE_factoring_element = 523;
	public static readonly RULE_search_clause = 524;
	public static readonly RULE_cycle_clause = 525;
	public static readonly RULE_subquery = 526;
	public static readonly RULE_subquery_basic_elements = 527;
	public static readonly RULE_subquery_operation_part = 528;
	public static readonly RULE_query_block = 529;
	public static readonly RULE_selected_list = 530;
	public static readonly RULE_from_clause = 531;
	public static readonly RULE_select_list_elements = 532;
	public static readonly RULE_table_ref_list = 533;
	public static readonly RULE_table_ref = 534;
	public static readonly RULE_table_ref_aux = 535;
	public static readonly RULE_table_ref_aux_internal = 536;
	public static readonly RULE_join_clause = 537;
	public static readonly RULE_join_on_part = 538;
	public static readonly RULE_join_using_part = 539;
	public static readonly RULE_outer_join_type = 540;
	public static readonly RULE_query_partition_clause = 541;
	public static readonly RULE_flashback_query_clause = 542;
	public static readonly RULE_pivot_clause = 543;
	public static readonly RULE_pivot_element = 544;
	public static readonly RULE_pivot_for_clause = 545;
	public static readonly RULE_pivot_in_clause = 546;
	public static readonly RULE_pivot_in_clause_element = 547;
	public static readonly RULE_pivot_in_clause_elements = 548;
	public static readonly RULE_unpivot_clause = 549;
	public static readonly RULE_unpivot_in_clause = 550;
	public static readonly RULE_unpivot_in_elements = 551;
	public static readonly RULE_hierarchical_query_clause = 552;
	public static readonly RULE_start_part = 553;
	public static readonly RULE_group_by_clause = 554;
	public static readonly RULE_group_by_elements = 555;
	public static readonly RULE_rollup_cube_clause = 556;
	public static readonly RULE_grouping_sets_clause = 557;
	public static readonly RULE_grouping_sets_elements = 558;
	public static readonly RULE_having_clause = 559;
	public static readonly RULE_model_clause = 560;
	public static readonly RULE_cell_reference_options = 561;
	public static readonly RULE_return_rows_clause = 562;
	public static readonly RULE_reference_model = 563;
	public static readonly RULE_main_model = 564;
	public static readonly RULE_model_column_clauses = 565;
	public static readonly RULE_model_column_partition_part = 566;
	public static readonly RULE_model_column_list = 567;
	public static readonly RULE_model_column = 568;
	public static readonly RULE_model_rules_clause = 569;
	public static readonly RULE_model_rules_part = 570;
	public static readonly RULE_model_rules_element = 571;
	public static readonly RULE_cell_assignment = 572;
	public static readonly RULE_model_iterate_clause = 573;
	public static readonly RULE_until_part = 574;
	public static readonly RULE_order_by_clause = 575;
	public static readonly RULE_order_by_elements = 576;
	public static readonly RULE_offset_clause = 577;
	public static readonly RULE_fetch_clause = 578;
	public static readonly RULE_for_update_clause = 579;
	public static readonly RULE_for_update_of_part = 580;
	public static readonly RULE_for_update_options = 581;
	public static readonly RULE_update_statement = 582;
	public static readonly RULE_update_set_clause = 583;
	public static readonly RULE_column_based_update_set_clause = 584;
	public static readonly RULE_delete_statement = 585;
	public static readonly RULE_insert_statement = 586;
	public static readonly RULE_single_table_insert = 587;
	public static readonly RULE_multi_table_insert = 588;
	public static readonly RULE_multi_table_element = 589;
	public static readonly RULE_conditional_insert_clause = 590;
	public static readonly RULE_conditional_insert_when_part = 591;
	public static readonly RULE_conditional_insert_else_part = 592;
	public static readonly RULE_insert_into_clause = 593;
	public static readonly RULE_values_clause = 594;
	public static readonly RULE_merge_statement = 595;
	public static readonly RULE_merge_update_clause = 596;
	public static readonly RULE_merge_element = 597;
	public static readonly RULE_merge_update_delete_part = 598;
	public static readonly RULE_merge_insert_clause = 599;
	public static readonly RULE_selected_tableview = 600;
	public static readonly RULE_lock_table_statement = 601;
	public static readonly RULE_wait_nowait_part = 602;
	public static readonly RULE_lock_table_element = 603;
	public static readonly RULE_lock_mode = 604;
	public static readonly RULE_general_table_ref = 605;
	public static readonly RULE_static_returning_clause = 606;
	public static readonly RULE_error_logging_clause = 607;
	public static readonly RULE_error_logging_into_part = 608;
	public static readonly RULE_error_logging_reject_part = 609;
	public static readonly RULE_dml_table_expression_clause = 610;
	public static readonly RULE_table_collection_expression = 611;
	public static readonly RULE_subquery_restriction_clause = 612;
	public static readonly RULE_sample_clause = 613;
	public static readonly RULE_seed_part = 614;
	public static readonly RULE_condition = 615;
	public static readonly RULE_expressions = 616;
	public static readonly RULE_expression = 617;
	public static readonly RULE_cursor_expression = 618;
	public static readonly RULE_logical_expression = 619;
	public static readonly RULE_unary_logical_expression = 620;
	public static readonly RULE_logical_operation = 621;
	public static readonly RULE_multiset_expression = 622;
	public static readonly RULE_relational_expression = 623;
	public static readonly RULE_compound_expression = 624;
	public static readonly RULE_relational_operator = 625;
	public static readonly RULE_in_elements = 626;
	public static readonly RULE_between_elements = 627;
	public static readonly RULE_concatenation = 628;
	public static readonly RULE_interval_expression = 629;
	public static readonly RULE_model_expression = 630;
	public static readonly RULE_model_expression_element = 631;
	public static readonly RULE_single_column_for_loop = 632;
	public static readonly RULE_multi_column_for_loop = 633;
	public static readonly RULE_unary_expression = 634;
	public static readonly RULE_case_statement = 635;
	public static readonly RULE_simple_case_statement = 636;
	public static readonly RULE_simple_case_when_part = 637;
	public static readonly RULE_searched_case_statement = 638;
	public static readonly RULE_searched_case_when_part = 639;
	public static readonly RULE_case_else_part = 640;
	public static readonly RULE_atom = 641;
	public static readonly RULE_quantified_expression = 642;
	public static readonly RULE_string_function = 643;
	public static readonly RULE_standard_function = 644;
	public static readonly RULE_literal = 645;
	public static readonly RULE_numeric_function_wrapper = 646;
	public static readonly RULE_numeric_function = 647;
	public static readonly RULE_other_function = 648;
	public static readonly RULE_over_clause_keyword = 649;
	public static readonly RULE_within_or_over_clause_keyword = 650;
	public static readonly RULE_standard_prediction_function_keyword = 651;
	public static readonly RULE_over_clause = 652;
	public static readonly RULE_windowing_clause = 653;
	public static readonly RULE_windowing_type = 654;
	public static readonly RULE_windowing_elements = 655;
	public static readonly RULE_using_clause = 656;
	public static readonly RULE_using_element = 657;
	public static readonly RULE_collect_order_by_part = 658;
	public static readonly RULE_within_or_over_part = 659;
	public static readonly RULE_cost_matrix_clause = 660;
	public static readonly RULE_xml_passing_clause = 661;
	public static readonly RULE_xml_attributes_clause = 662;
	public static readonly RULE_xml_namespaces_clause = 663;
	public static readonly RULE_xml_table_column = 664;
	public static readonly RULE_xml_general_default_part = 665;
	public static readonly RULE_xml_multiuse_expression_element = 666;
	public static readonly RULE_xmlroot_param_version_part = 667;
	public static readonly RULE_xmlroot_param_standalone_part = 668;
	public static readonly RULE_xmlserialize_param_enconding_part = 669;
	public static readonly RULE_xmlserialize_param_version_part = 670;
	public static readonly RULE_xmlserialize_param_ident_part = 671;
	public static readonly RULE_sql_plus_command = 672;
	public static readonly RULE_whenever_command = 673;
	public static readonly RULE_set_command = 674;
	public static readonly RULE_partition_extension_clause = 675;
	public static readonly RULE_column_alias = 676;
	public static readonly RULE_table_alias = 677;
	public static readonly RULE_where_clause = 678;
	public static readonly RULE_into_clause = 679;
	public static readonly RULE_xml_column_name = 680;
	public static readonly RULE_cost_class_name = 681;
	public static readonly RULE_attribute_name = 682;
	public static readonly RULE_savepoint_name = 683;
	public static readonly RULE_rollback_segment_name = 684;
	public static readonly RULE_table_var_name = 685;
	public static readonly RULE_schema_name = 686;
	public static readonly RULE_routine_name = 687;
	public static readonly RULE_package_name = 688;
	public static readonly RULE_implementation_type_name = 689;
	public static readonly RULE_parameter_name = 690;
	public static readonly RULE_reference_model_name = 691;
	public static readonly RULE_main_model_name = 692;
	public static readonly RULE_container_tableview_name = 693;
	public static readonly RULE_aggregate_function_name = 694;
	public static readonly RULE_query_name = 695;
	public static readonly RULE_grantee_name = 696;
	public static readonly RULE_role_name = 697;
	public static readonly RULE_constraint_name = 698;
	public static readonly RULE_label_name = 699;
	public static readonly RULE_type_name = 700;
	public static readonly RULE_sequence_name = 701;
	public static readonly RULE_exception_name = 702;
	public static readonly RULE_function_name = 703;
	public static readonly RULE_procedure_name = 704;
	public static readonly RULE_trigger_name = 705;
	public static readonly RULE_variable_name = 706;
	public static readonly RULE_index_name = 707;
	public static readonly RULE_cursor_name = 708;
	public static readonly RULE_record_name = 709;
	public static readonly RULE_collection_name = 710;
	public static readonly RULE_link_name = 711;
	public static readonly RULE_column_name = 712;
	public static readonly RULE_tableview_name = 713;
	public static readonly RULE_xmltable = 714;
	public static readonly RULE_char_set_name = 715;
	public static readonly RULE_synonym_name = 716;
	public static readonly RULE_schema_object_name = 717;
	public static readonly RULE_dir_object_name = 718;
	public static readonly RULE_user_object_name = 719;
	public static readonly RULE_grant_object_name = 720;
	public static readonly RULE_column_list = 721;
	public static readonly RULE_paren_column_list = 722;
	public static readonly RULE_keep_clause = 723;
	public static readonly RULE_function_argument = 724;
	public static readonly RULE_function_argument_analytic = 725;
	public static readonly RULE_function_argument_modeling = 726;
	public static readonly RULE_respect_or_ignore_nulls = 727;
	public static readonly RULE_argument = 728;
	public static readonly RULE_type_spec = 729;
	public static readonly RULE_datatype = 730;
	public static readonly RULE_precision_part = 731;
	public static readonly RULE_native_datatype_element = 732;
	public static readonly RULE_bind_variable = 733;
	public static readonly RULE_general_element = 734;
	public static readonly RULE_general_element_part = 735;
	public static readonly RULE_table_element = 736;
	public static readonly RULE_object_privilege = 737;
	public static readonly RULE_system_privilege = 738;
	public static readonly RULE_constant = 739;
	public static readonly RULE_numeric = 740;
	public static readonly RULE_numeric_negative = 741;
	public static readonly RULE_quoted_string = 742;
	public static readonly RULE_identifier = 743;
	public static readonly RULE_id_expression = 744;
	public static readonly RULE_outer_join_sign = 745;
	public static readonly RULE_regular_id = 746;
	public static readonly RULE_non_reserved_keywords_in_12c = 747;
	public static readonly RULE_non_reserved_keywords_pre12c = 748;
	public static readonly RULE_string_function_name = 749;
	public static readonly RULE_numeric_function_name = 750;
	public static readonly literalNames: (string | null)[] = [ null, "'ABORT'", 
                                                            "'ABS'", "'ACCESS'", 
                                                            "'ACCESSED'", 
                                                            "'ACCOUNT'", 
                                                            "'ACL'", "'ACOS'", 
                                                            "'ACTION'", 
                                                            "'ACTIONS'", 
                                                            "'ACTIVATE'", 
                                                            "'ACTIVE'", 
                                                            "'ACTIVE_COMPONENT'", 
                                                            "'ACTIVE_DATA'", 
                                                            "'ACTIVE_FUNCTION'", 
                                                            "'ACTIVE_TAG'", 
                                                            "'ACTIVITY'", 
                                                            "'ADAPTIVE_PLAN'", 
                                                            "'ADD'", "'ADD_COLUMN'", 
                                                            "'ADD_GROUP'", 
                                                            "'ADD_MONTHS'", 
                                                            "'ADJ_DATE'", 
                                                            "'ADMIN'", "'ADMINISTER'", 
                                                            "'ADMINISTRATOR'", 
                                                            "'ADVANCED'", 
                                                            "'ADVISE'", 
                                                            "'ADVISOR'", 
                                                            "'AFD_DISKSTRING'", 
                                                            "'AFTER'", "'AGENT'", 
                                                            "'AGGREGATE'", 
                                                            "'A'", "'ALIAS'", 
                                                            "'ALL'", "'ALLOCATE'", 
                                                            "'ALLOW'", "'ALL_ROWS'", 
                                                            "'ALTER'", "'ALWAYS'", 
                                                            "'ANALYZE'", 
                                                            "'ANCILLARY'", 
                                                            "'AND'", "'AND_EQUAL'", 
                                                            "'ANOMALY'", 
                                                            "'ANSI_REARCH'", 
                                                            "'ANTIJOIN'", 
                                                            "'ANY'", "'ANYSCHEMA'", 
                                                            "'APPEND'", 
                                                            "'APPENDCHILDXML'", 
                                                            "'APPEND_VALUES'", 
                                                            "'APPLICATION'", 
                                                            "'APPLY'", "'APPROX_COUNT_DISTINCT'", 
                                                            "'ARCHIVAL'", 
                                                            "'ARCHIVE'", 
                                                            "'ARCHIVED'", 
                                                            "'ARCHIVELOG'", 
                                                            "'ARRAY'", "'AS'", 
                                                            "'ASC'", "'ASCII'", 
                                                            "'ASCIISTR'", 
                                                            "'ASIN'", "'ASIS'", 
                                                            "'ASSEMBLY'", 
                                                            "'ASSIGN'", 
                                                            "'ASSOCIATE'", 
                                                            "'ASYNC'", "'ASYNCHRONOUS'", 
                                                            "'ATAN2'", "'ATAN'", 
                                                            "'AT'", "'ATTRIBUTE'", 
                                                            "'ATTRIBUTES'", 
                                                            "'AUDIT'", "'AUTHENTICATED'", 
                                                            "'AUTHENTICATION'", 
                                                            "'AUTHID'", 
                                                            "'AUTHORIZATION'", 
                                                            "'AUTOALLOCATE'", 
                                                            "'AUTO'", "'AUTOBACKUP'", 
                                                            "'AUTOEXTEND'", 
                                                            "'AUTO_LOGIN'", 
                                                            "'AUTOMATIC'", 
                                                            "'AUTONOMOUS_TRANSACTION'", 
                                                            "'AUTO_REOPTIMIZE'", 
                                                            "'AVAILABILITY'", 
                                                            "'AVRO'", "'BACKGROUND'", 
                                                            "'BACKUP'", 
                                                            "'BACKUPSET'", 
                                                            "'BASIC'", "'BASICFILE'", 
                                                            "'BATCH'", "'BATCHSIZE'", 
                                                            "'BATCH_TABLE_ACCESS_BY_ROWID'", 
                                                            "'BECOME'", 
                                                            "'BEFORE'", 
                                                            "'BEGIN'", "'BEGINNING'", 
                                                            "'BEGIN_OUTLINE_DATA'", 
                                                            "'BEHALF'", 
                                                            "'BEQUEATH'", 
                                                            "'BETWEEN'", 
                                                            "'BFILE'", "'BFILENAME'", 
                                                            "'BIGFILE'", 
                                                            "'BINARY'", 
                                                            "'BINARY_DOUBLE'", 
                                                            "'BINARY_DOUBLE_INFINITY'", 
                                                            "'BINARY_DOUBLE_NAN'", 
                                                            "'BINARY_FLOAT'", 
                                                            "'BINARY_FLOAT_INFINITY'", 
                                                            "'BINARY_FLOAT_NAN'", 
                                                            "'BINARY_INTEGER'", 
                                                            "'BIND_AWARE'", 
                                                            "'BINDING'", 
                                                            "'BIN_TO_NUM'", 
                                                            "'BITAND'", 
                                                            "'BITMAP_AND'", 
                                                            "'BITMAP'", 
                                                            "'BITMAPS'", 
                                                            "'BITMAP_TREE'", 
                                                            "'BITS'", "'BLOB'", 
                                                            "'BLOCK'", "'BLOCK_RANGE'", 
                                                            "'BLOCKS'", 
                                                            "'BLOCKSIZE'", 
                                                            "'BODY'", "'BOOLEAN'", 
                                                            "'BOTH'", "'BOUND'", 
                                                            "'BRANCH'", 
                                                            "'BREADTH'", 
                                                            "'BROADCAST'", 
                                                            "'BSON'", "'BUFFER'", 
                                                            "'BUFFER_CACHE'", 
                                                            "'BUFFER_POOL'", 
                                                            "'BUILD'", "'BULK'", 
                                                            "'BY'", "'BYPASS_RECURSIVE_CHECK'", 
                                                            "'BYPASS_UJVC'", 
                                                            "'BYTE'", "'CACHE'", 
                                                            "'CACHE_CB'", 
                                                            "'CACHE_INSTANCES'", 
                                                            "'CACHE_TEMP_TABLE'", 
                                                            "'CACHING'", 
                                                            "'CALCULATED'", 
                                                            "'CALLBACK'", 
                                                            "'CALL'", "'CANCEL'", 
                                                            "'CANONICAL'", 
                                                            "'CAPACITY'", 
                                                            "'CARDINALITY'", 
                                                            "'CASCADE'", 
                                                            "'CASE'", "'CAST'", 
                                                            "'CATEGORY'", 
                                                            "'CDB$DEFAULT'", 
                                                            "'CEIL'", "'CELL_FLASH_CACHE'", 
                                                            "'CERTIFICATE'", 
                                                            "'CFILE'", "'CHAINED'", 
                                                            "'CHANGE'", 
                                                            "'CHANGETRACKING'", 
                                                            "'CHANGE_DUPKEY_ERROR_INDEX'", 
                                                            "'CHARACTER'", 
                                                            "'CHAR'", "'CHAR_CS'", 
                                                            "'CHARTOROWID'", 
                                                            "'CHECK_ACL_REWRITE'", 
                                                            "'CHECK'", "'CHECKPOINT'", 
                                                            "'CHILD'", "'CHOOSE'", 
                                                            "'CHR'", "'CHUNK'", 
                                                            "'CLASS'", "'CLASSIFIER'", 
                                                            "'CLEANUP'", 
                                                            "'CLEAR'", "'C'", 
                                                            "'CLIENT'", 
                                                            "'CLOB'", "'CLONE'", 
                                                            "'CLOSE_CACHED_OPEN_CURSORS'", 
                                                            "'CLOSE'", "'CLUSTER_BY_ROWID'", 
                                                            "'CLUSTER'", 
                                                            "'CLUSTER_DETAILS'", 
                                                            "'CLUSTER_DISTANCE'", 
                                                            "'CLUSTER_ID'", 
                                                            "'CLUSTERING'", 
                                                            "'CLUSTERING_FACTOR'", 
                                                            "'CLUSTER_PROBABILITY'", 
                                                            "'CLUSTER_SET'", 
                                                            "'COALESCE'", 
                                                            "'COALESCE_SQ'", 
                                                            "'COARSE'", 
                                                            "'CO_AUTH_IND'", 
                                                            "'COLD'", "'COLLECT'", 
                                                            "'COLUMNAR'", 
                                                            "'COLUMN_AUTH_INDICATOR'", 
                                                            "'COLUMN'", 
                                                            "'COLUMNS'", 
                                                            "'COLUMN_STATS'", 
                                                            "'COLUMN_VALUE'", 
                                                            "'COMMENT'", 
                                                            "'COMMIT'", 
                                                            "'COMMITTED'", 
                                                            "'COMMON_DATA'", 
                                                            "'COMPACT'", 
                                                            "'COMPATIBILITY'", 
                                                            "'COMPILE'", 
                                                            "'COMPLETE'", 
                                                            "'COMPLIANCE'", 
                                                            "'COMPONENT'", 
                                                            "'COMPONENTS'", 
                                                            "'COMPOSE'", 
                                                            "'COMPOSITE'", 
                                                            "'COMPOSITE_LIMIT'", 
                                                            "'COMPOUND'", 
                                                            "'COMPRESS'", 
                                                            "'COMPUTE'", 
                                                            "'CONCAT'", 
                                                            "'CON_DBID_TO_ID'", 
                                                            "'CONDITIONAL'", 
                                                            "'CONDITION'", 
                                                            "'CONFIRM'", 
                                                            "'CONFORMING'", 
                                                            "'CON_GUID_TO_ID'", 
                                                            "'CON_ID'", 
                                                            "'CON_NAME_TO_ID'", 
                                                            "'CONNECT_BY_CB_WHR_ONLY'", 
                                                            "'CONNECT_BY_COMBINE_SW'", 
                                                            "'CONNECT_BY_COST_BASED'", 
                                                            "'CONNECT_BY_ELIM_DUPS'", 
                                                            "'CONNECT_BY_FILTERING'", 
                                                            "'CONNECT_BY_ISCYCLE'", 
                                                            "'CONNECT_BY_ISLEAF'", 
                                                            "'CONNECT_BY_ROOT'", 
                                                            "'CONNECT'", 
                                                            "'CONNECT_TIME'", 
                                                            "'CONSIDER'", 
                                                            "'CONSISTENT'", 
                                                            "'CONSTANT'", 
                                                            "'CONST'", "'CONSTRAINT'", 
                                                            "'CONSTRAINTS'", 
                                                            "'CONSTRUCTOR'", 
                                                            "'CONTAINER'", 
                                                            "'CONTAINER_DATA'", 
                                                            "'CONTAINERS'", 
                                                            "'CONTENT'", 
                                                            "'CONTENTS'", 
                                                            "'CONTEXT'", 
                                                            "'CONTINUE'", 
                                                            "'CONTROLFILE'", 
                                                            "'CON_UID_TO_ID'", 
                                                            "'CONVERT'", 
                                                            "'COOKIE'", 
                                                            "'COPY'", "'CORR_K'", 
                                                            "'CORR_S'", 
                                                            "'CORRUPTION'", 
                                                            "'CORRUPT_XID_ALL'", 
                                                            "'CORRUPT_XID'", 
                                                            "'COS'", "'COSH'", 
                                                            "'COST'", "'COST_XML_QUERY_REWRITE'", 
                                                            "'COUNT'", "'COVAR_POP'", 
                                                            "'COVAR_SAMP'", 
                                                            "'CPU_COSTING'", 
                                                            "'CPU_PER_CALL'", 
                                                            "'CPU_PER_SESSION'", 
                                                            "'CRASH'", "'CREATE'", 
                                                            "'CREATE_FILE_DEST'", 
                                                            "'CREATE_STORED_OUTLINES'", 
                                                            "'CREATION'", 
                                                            "'CREDENTIAL'", 
                                                            "'CRITICAL'", 
                                                            "'CROSS'", "'CROSSEDITION'", 
                                                            "'CSCONVERT'", 
                                                            "'CUBE_AJ'", 
                                                            "'CUBE'", "'CUBE_GB'", 
                                                            "'CUBE_SJ'", 
                                                            "'CUME_DISTM'", 
                                                            "'CURRENT'", 
                                                            "'CURRENT_DATE'", 
                                                            "'CURRENT_SCHEMA'", 
                                                            "'CURRENT_TIME'", 
                                                            "'CURRENT_TIMESTAMP'", 
                                                            "'CURRENT_USER'", 
                                                            "'CURRENTV'", 
                                                            "'CURSOR'", 
                                                            "'CURSOR_SHARING_EXACT'", 
                                                            "'CURSOR_SPECIFIC_SEGMENT'", 
                                                            "'CUSTOMDATUM'", 
                                                            "'CV'", "'CYCLE'", 
                                                            "'DANGLING'", 
                                                            "'DATABASE'", 
                                                            "'DATA'", "'DATAFILE'", 
                                                            "'DATAFILES'", 
                                                            "'DATAGUARDCONFIG'", 
                                                            "'DATAMOVEMENT'", 
                                                            "'DATAOBJNO'", 
                                                            "'DATAOBJ_TO_MAT_PARTITION'", 
                                                            "'DATAOBJ_TO_PARTITION'", 
                                                            "'DATAPUMP'", 
                                                            "'DATA_SECURITY_REWRITE_LIMIT'", 
                                                            "'DATE'", "'DATE_MODE'", 
                                                            "'DAY'", "'DAYS'", 
                                                            "'DBA'", "'DBA_RECYCLEBIN'", 
                                                            "'DBMS_STATS'", 
                                                            "'DB_ROLE_CHANGE'", 
                                                            "'DBTIMEZONE'", 
                                                            "'DB_UNIQUE_NAME'", 
                                                            "'DB_VERSION'", 
                                                            "'DDL'", "'DEALLOCATE'", 
                                                            "'DEBUG'", "'DEBUGGER'", 
                                                            "'DEC'", "'DECIMAL'", 
                                                            "'DECLARE'", 
                                                            "'DECOMPOSE'", 
                                                            "'DECORRELATE'", 
                                                            "'DECR'", "'DECREMENT'", 
                                                            "'DECRYPT'", 
                                                            "'DEDUPLICATE'", 
                                                            "'DEFAULT'", 
                                                            "'DEFAULTS'", 
                                                            "'DEFERRABLE'", 
                                                            "'DEFERRED'", 
                                                            "'DEFINED'", 
                                                            "'DEFINE'", 
                                                            "'DEFINER'", 
                                                            "'DEGREE'", 
                                                            "'DELAY'", "'DELEGATE'", 
                                                            "'DELETE_ALL'", 
                                                            "'DELETE'", 
                                                            "'DELETEXML'", 
                                                            "'DEMAND'", 
                                                            "'DENSE_RANKM'", 
                                                            "'DEPENDENT'", 
                                                            "'DEPTH'", "'DEQUEUE'", 
                                                            "'DEREF'", "'DEREF_NO_REWRITE'", 
                                                            "'DESC'", "'DESTROY'", 
                                                            "'DETACHED'", 
                                                            "'DETERMINES'", 
                                                            "'DETERMINISTIC'", 
                                                            "'DICTIONARY'", 
                                                            "'DIMENSION'", 
                                                            "'DIMENSIONS'", 
                                                            "'DIRECT_LOAD'", 
                                                            "'DIRECTORY'", 
                                                            "'DIRECT_PATH'", 
                                                            "'DISABLE_ALL'", 
                                                            "'DISABLE'", 
                                                            "'DISABLE_PARALLEL_DML'", 
                                                            "'DISABLE_PRESET'", 
                                                            "'DISABLE_RPKE'", 
                                                            "'DISALLOW'", 
                                                            "'DISASSOCIATE'", 
                                                            "'DISCARD'", 
                                                            "'DISCONNECT'", 
                                                            "'DISK'", "'DISKGROUP'", 
                                                            "''+ DISKGROUP'", 
                                                            "'DISKS'", "'DISMOUNT'", 
                                                            "'DISTINCT'", 
                                                            "'DISTINGUISHED'", 
                                                            "'DISTRIBUTED'", 
                                                            "'DISTRIBUTE'", 
                                                            "'DML'", "'DML_UPDATE'", 
                                                            "'DOCFIDELITY'", 
                                                            "'DOCUMENT'", 
                                                            "'DOMAIN_INDEX_FILTER'", 
                                                            "'DOMAIN_INDEX_NO_SORT'", 
                                                            "'DOMAIN_INDEX_SORT'", 
                                                            "'DOUBLE'", 
                                                            "'DOWNGRADE'", 
                                                            "'DRIVING_SITE'", 
                                                            "'DROP_COLUMN'", 
                                                            "'DROP'", "'DROP_GROUP'", 
                                                            "'DSINTERVAL_UNCONSTRAINED'", 
                                                            "'DST_UPGRADE_INSERT_CONV'", 
                                                            "'DUMP'", "'DUMPSET'", 
                                                            "'DUPLICATE'", 
                                                            "'DV'", "'DYNAMIC'", 
                                                            "'DYNAMIC_SAMPLING'", 
                                                            "'DYNAMIC_SAMPLING_EST_CDN'", 
                                                            "'EACH'", "'EDITIONABLE'", 
                                                            "'EDITION'", 
                                                            "'EDITIONING'", 
                                                            "'EDITIONS'", 
                                                            "'ELEMENT'", 
                                                            "'ELIM_GROUPBY'", 
                                                            "'ELIMINATE_JOIN'", 
                                                            "'ELIMINATE_OBY'", 
                                                            "'ELIMINATE_OUTER_JOIN'", 
                                                            "'ELSE'", "'ELSIF'", 
                                                            "'EM'", "'EMPTY_BLOB'", 
                                                            "'EMPTY_CLOB'", 
                                                            "'EMPTY'", "'ENABLE_ALL'", 
                                                            "'ENABLE'", 
                                                            "'ENABLE_PARALLEL_DML'", 
                                                            "'ENABLE_PRESET'", 
                                                            "'ENCODING'", 
                                                            "'ENCRYPT'", 
                                                            "'ENCRYPTION'", 
                                                            "'END'", "'END_OUTLINE_DATA'", 
                                                            "'ENFORCED'", 
                                                            "'ENFORCE'", 
                                                            "'ENQUEUE'", 
                                                            "'ENTERPRISE'", 
                                                            "'ENTITYESCAPING'", 
                                                            "'ENTRY'", "'EQUIPART'", 
                                                            "'ERR'", "'ERROR_ARGUMENT'", 
                                                            "'ERROR'", "'ERROR_ON_OVERLAP_TIME'", 
                                                            "'ERRORS'", 
                                                            "'ESCAPE'", 
                                                            "'ESTIMATE'", 
                                                            "'EVAL'", "'EVALNAME'", 
                                                            "'EVALUATE'", 
                                                            "'EVALUATION'", 
                                                            "'EVENTS'", 
                                                            "'EVERY'", "'EXCEPT'", 
                                                            "'EXCEPTION'", 
                                                            "'EXCEPTION_INIT'", 
                                                            "'EXCEPTIONS'", 
                                                            "'EXCHANGE'", 
                                                            "'EXCLUDE'", 
                                                            "'EXCLUDING'", 
                                                            "'EXCLUSIVE'", 
                                                            "'EXECUTE'", 
                                                            "'EXEMPT'", 
                                                            "'EXISTING'", 
                                                            "'EXISTS'", 
                                                            "'EXISTSNODE'", 
                                                            "'EXIT'", "'EXPAND_GSET_TO_UNION'", 
                                                            "'EXPAND_TABLE'", 
                                                            "'EXP'", "'EXPIRE'", 
                                                            "'EXPLAIN'", 
                                                            "'EXPLOSION'", 
                                                            "'EXPORT'", 
                                                            "'EXPR_CORR_CHECK'", 
                                                            "'EXPRESS'", 
                                                            "'EXTENDS'", 
                                                            "'EXTENT'", 
                                                            "'EXTENTS'", 
                                                            "'EXTERNAL'", 
                                                            "'EXTERNALLY'", 
                                                            "'EXTRACTCLOBXML'", 
                                                            "'EXTRACT'", 
                                                            "'EXTRACTVALUE'", 
                                                            "'EXTRA'", "'FACILITY'", 
                                                            "'FACT'", "'FACTOR'", 
                                                            "'FACTORIZE_JOIN'", 
                                                            "'FAILED'", 
                                                            "'FAILED_LOGIN_ATTEMPTS'", 
                                                            "'FAILGROUP'", 
                                                            "'FAILOVER'", 
                                                            "'FAILURE'", 
                                                            "'FALSE'", "'FAMILY'", 
                                                            "'FAR'", "'FAST'", 
                                                            "'FASTSTART'", 
                                                            "'FBTSCAN'", 
                                                            "'FEATURE_DETAILS'", 
                                                            "'FEATURE_ID'", 
                                                            "'FEATURE_SET'", 
                                                            "'FEATURE_VALUE'", 
                                                            "'FETCH'", "'FILE'", 
                                                            "'FILE_NAME_CONVERT'", 
                                                            "'FILESYSTEM_LIKE_LOGGING'", 
                                                            "'FILTER'", 
                                                            "'FINAL'", "'FINE'", 
                                                            "'FINISH'", 
                                                            "'FIRST'", "'FIRSTM'", 
                                                            "'FIRST_ROWS'", 
                                                            "'FIRST_VALUE'", 
                                                            "'FIXED_VIEW_DATA'", 
                                                            "'FLAGGER'", 
                                                            "'FLASHBACK'", 
                                                            "'FLASH_CACHE'", 
                                                            "'FLOAT'", "'FLOB'", 
                                                            "'FLOOR'", "'FLUSH'", 
                                                            "'FOLDER'", 
                                                            "'FOLLOWING'", 
                                                            "'FOLLOWS'", 
                                                            "'FORALL'", 
                                                            "'FORCE'", "'FORCE_XML_QUERY_REWRITE'", 
                                                            "'FOREIGN'", 
                                                            "'FOREVER'", 
                                                            "'FOR'", "'FORMAT'", 
                                                            "'FORWARD'", 
                                                            "'FRAGMENT_NUMBER'", 
                                                            "'FREELIST'", 
                                                            "'FREELISTS'", 
                                                            "'FREEPOOLS'", 
                                                            "'FRESH'", "'FROM'", 
                                                            "'FROM_TZ'", 
                                                            "'FULL'", "'FULL_OUTER_JOIN_TO_OUTER'", 
                                                            "'FUNCTION'", 
                                                            "'FUNCTIONS'", 
                                                            "'GATHER_OPTIMIZER_STATISTICS'", 
                                                            "'GATHER_PLAN_STATISTICS'", 
                                                            "'GBY_CONC_ROLLUP'", 
                                                            "'GBY_PUSHDOWN'", 
                                                            "'GENERATED'", 
                                                            "'GET'", "'GLOBAL'", 
                                                            "'GLOBALLY'", 
                                                            "'GLOBAL_NAME'", 
                                                            "'GLOBAL_TOPIC_ENABLED'", 
                                                            "'GOTO'", "'GRANT'", 
                                                            "'GROUP_BY'", 
                                                            "'GROUP'", "'GROUP_ID'", 
                                                            "'GROUPING'", 
                                                            "'GROUPING_ID'", 
                                                            "'GROUPS'", 
                                                            "'GUARANTEED'", 
                                                            "'GUARANTEE'", 
                                                            "'GUARD'", "'HASH_AJ'", 
                                                            "'HASH'", "'HASHKEYS'", 
                                                            "'HASH_SJ'", 
                                                            "'HAVING'", 
                                                            "'HEADER'", 
                                                            "'HEAP'", "'HELP'", 
                                                            "'HEXTORAW'", 
                                                            "'HEXTOREF'", 
                                                            "'HIDDEN'", 
                                                            "'HIDE'", "'HIERARCHY'", 
                                                            "'HIGH'", "'HINTSET_BEGIN'", 
                                                            "'HINTSET_END'", 
                                                            "'HOT'", "'HOUR'", 
                                                            "'HWM_BROKERED'", 
                                                            "'HYBRID'", 
                                                            "'IDENTIFIED'", 
                                                            "'IDENTIFIER'", 
                                                            "'IDENTITY'", 
                                                            "'IDGENERATORS'", 
                                                            "'ID'", "'IDLE_TIME'", 
                                                            "'IF'", "'IGNORE'", 
                                                            "'IGNORE_OPTIM_EMBEDDED_HINTS'", 
                                                            "'IGNORE_ROW_ON_DUPKEY_INDEX'", 
                                                            "'IGNORE_WHERE_CLAUSE'", 
                                                            "'ILM'", "'IMMEDIATE'", 
                                                            "'IMPACT'", 
                                                            "'IMPORT'", 
                                                            "'INACTIVE'", 
                                                            "'INCLUDE'", 
                                                            "'INCLUDE_VERSION'", 
                                                            "'INCLUDING'", 
                                                            "'INCREMENTAL'", 
                                                            "'INCREMENT'", 
                                                            "'INCR'", "'INDENT'", 
                                                            "'INDEX_ASC'", 
                                                            "'INDEX_COMBINE'", 
                                                            "'INDEX_DESC'", 
                                                            "'INDEXED'", 
                                                            "'INDEXES'", 
                                                            "'INDEX_FFS'", 
                                                            "'INDEX_FILTER'", 
                                                            "'INDEX'", "'INDEXING'", 
                                                            "'INDEX_JOIN'", 
                                                            "'INDEX_ROWS'", 
                                                            "'INDEX_RRS'", 
                                                            "'INDEX_RS_ASC'", 
                                                            "'INDEX_RS_DESC'", 
                                                            "'INDEX_RS'", 
                                                            "'INDEX_SCAN'", 
                                                            "'INDEX_SKIP_SCAN'", 
                                                            "'INDEX_SS_ASC'", 
                                                            "'INDEX_SS_DESC'", 
                                                            "'INDEX_SS'", 
                                                            "'INDEX_STATS'", 
                                                            "'INDEXTYPE'", 
                                                            "'INDEXTYPES'", 
                                                            "'INDICATOR'", 
                                                            "'INDICES'", 
                                                            "'INFINITE'", 
                                                            "'INFORMATIONAL'", 
                                                            "'INHERIT'", 
                                                            "'IN'", "'INITCAP'", 
                                                            "'INITIAL'", 
                                                            "'INITIALIZED'", 
                                                            "'INITIALLY'", 
                                                            "'INITRANS'", 
                                                            "'INLINE'", 
                                                            "'INLINE_XMLTYPE_NT'", 
                                                            "'INMEMORY'", 
                                                            "'IN_MEMORY_METADATA'", 
                                                            "'INMEMORY_PRUNING'", 
                                                            "'INNER'", "'INOUT'", 
                                                            "'INPLACE'", 
                                                            "'INSERTCHILDXMLAFTER'", 
                                                            "'INSERTCHILDXMLBEFORE'", 
                                                            "'INSERTCHILDXML'", 
                                                            "'INSERT'", 
                                                            "'INSERTXMLAFTER'", 
                                                            "'INSERTXMLBEFORE'", 
                                                            "'INSTANCE'", 
                                                            "'INSTANCES'", 
                                                            "'INSTANTIABLE'", 
                                                            "'INSTANTLY'", 
                                                            "'INSTEAD'", 
                                                            "'INSTR2'", 
                                                            "'INSTR4'", 
                                                            "'INSTRB'", 
                                                            "'INSTRC'", 
                                                            "'INSTR'", "'INTEGER'", 
                                                            "'INTERLEAVED'", 
                                                            "'INTERMEDIATE'", 
                                                            "'INTERNAL_CONVERT'", 
                                                            "'INTERNAL_USE'", 
                                                            "'INTERPRETED'", 
                                                            "'INTERSECT'", 
                                                            "'INTERVAL'", 
                                                            "'INT'", "'INTO'", 
                                                            "'INVALIDATE'", 
                                                            "'INVISIBLE'", 
                                                            "'IN_XQUERY'", 
                                                            "'IS'", "'ISOLATION'", 
                                                            "'ISOLATION_LEVEL'", 
                                                            "'ITERATE'", 
                                                            "'ITERATION_NUMBER'", 
                                                            "'JAVA'", "'JOB'", 
                                                            "'JOIN'", "'JSON_ARRAYAGG'", 
                                                            "'JSON_ARRAY'", 
                                                            "'JSON_EQUAL'", 
                                                            "'JSON_EXISTS2'", 
                                                            "'JSON_EXISTS'", 
                                                            "'JSONGET'", 
                                                            "'JSON'", "'JSON_OBJECTAGG'", 
                                                            "'JSON_OBJECT'", 
                                                            "'JSONPARSE'", 
                                                            "'JSON_QUERY'", 
                                                            "'JSON_SERIALIZE'", 
                                                            "'JSON_TABLE'", 
                                                            "'JSON_TEXTCONTAINS2'", 
                                                            "'JSON_TEXTCONTAINS'", 
                                                            "'JSON_VALUE'", 
                                                            "'KEEP_DUPLICATES'", 
                                                            "'KEEP'", "'KERBEROS'", 
                                                            "'KEY'", "'KEY_LENGTH'", 
                                                            "'KEYSIZE'", 
                                                            "'KEYS'", "'KEYSTORE'", 
                                                            "'KILL'", "'LABEL'", 
                                                            "'LANGUAGE'", 
                                                            "'LAST_DAY'", 
                                                            "'LAST'", "'LAST_VALUE'", 
                                                            "'LATERAL'", 
                                                            "'LAX'", "'LAYER'", 
                                                            "'LDAP_REGISTRATION_ENABLED'", 
                                                            "'LDAP_REGISTRATION'", 
                                                            "'LDAP_REG_SYNC_INTERVAL'", 
                                                            "'LEADING'", 
                                                            "'LEFT'", "'LENGTH2'", 
                                                            "'LENGTH4'", 
                                                            "'LENGTHB'", 
                                                            "'LENGTHC'", 
                                                            "'LENGTH'", 
                                                            "'LESS'", "'LEVEL'", 
                                                            "'LEVELS'", 
                                                            "'LIBRARY'", 
                                                            "'LIFECYCLE'", 
                                                            "'LIFE'", "'LIFETIME'", 
                                                            "'LIKE2'", "'LIKE4'", 
                                                            "'LIKEC'", "'LIKE_EXPAND'", 
                                                            "'LIKE'", "'LIMIT'", 
                                                            "'LINEAR'", 
                                                            "'LINK'", "'LIST'", 
                                                            "'LN'", "'LNNVL'", 
                                                            "'LOAD'", "'LOB'", 
                                                            "'LOBNVL'", 
                                                            "'LOBS'", "'LOCAL_INDEXES'", 
                                                            "'LOCAL'", "'LOCALTIME'", 
                                                            "'LOCALTIMESTAMP'", 
                                                            "'LOCATION'", 
                                                            "'LOCATOR'", 
                                                            "'LOCKED'", 
                                                            "'LOCKING'", 
                                                            "'LOCK'", "'LOGFILE'", 
                                                            "'LOGFILES'", 
                                                            "'LOGGING'", 
                                                            "'LOGICAL'", 
                                                            "'LOGICAL_READS_PER_CALL'", 
                                                            "'LOGICAL_READS_PER_SESSION'", 
                                                            "'LOG'", "'LOGMINING'", 
                                                            "'LOGOFF'", 
                                                            "'LOGON'", "'LOG_READ_ONLY_VIOLATIONS'", 
                                                            "'LONG'", "'LOOP'", 
                                                            "'LOWER'", "'LOW'", 
                                                            "'LPAD'", "'LTRIM'", 
                                                            "'MAIN'", "'MAKE_REF'", 
                                                            "'MANAGED'", 
                                                            "'MANAGE'", 
                                                            "'MANAGEMENT'", 
                                                            "'MANAGER'", 
                                                            "'MANUAL'", 
                                                            "'MAP'", "'MAPPING'", 
                                                            "'MASTER'", 
                                                            "'MATCHED'", 
                                                            "'MATCHES'", 
                                                            "'MATCH'", "'MATCH_NUMBER'", 
                                                            "'MATCH_RECOGNIZE'", 
                                                            "'MATERIALIZED'", 
                                                            "'MATERIALIZE'", 
                                                            "'MAXARCHLOGS'", 
                                                            "'MAXDATAFILES'", 
                                                            "'MAXEXTENTS'", 
                                                            "'MAXIMIZE'", 
                                                            "'MAXINSTANCES'", 
                                                            "'MAXLOGFILES'", 
                                                            "'MAXLOGHISTORY'", 
                                                            "'MAXLOGMEMBERS'", 
                                                            "'MAX_SHARED_TEMP_SIZE'", 
                                                            "'MAXSIZE'", 
                                                            "'MAXTRANS'", 
                                                            "'MAXVALUE'", 
                                                            "'MEASURE'", 
                                                            "'MEASURES'", 
                                                            "'MEDIUM'", 
                                                            "'MEMBER'", 
                                                            "'MEMCOMPRESS'", 
                                                            "'MEMORY'", 
                                                            "'MERGE$ACTIONS'", 
                                                            "'MERGE_AJ'", 
                                                            "'MERGE_CONST_ON'", 
                                                            "'MERGE'", "'MERGE_SJ'", 
                                                            "'METADATA'", 
                                                            "'METHOD'", 
                                                            "'MIGRATE'", 
                                                            "'MIGRATION'", 
                                                            "'MINEXTENTS'", 
                                                            "'MINIMIZE'", 
                                                            "'MINIMUM'", 
                                                            "'MINING'", 
                                                            "'MINUS'", "'MINUS_NULL'", 
                                                            "'MINUTE'", 
                                                            "'MINVALUE'", 
                                                            "'MIRRORCOLD'", 
                                                            "'MIRRORHOT'", 
                                                            "'MIRROR'", 
                                                            "'MLSLABEL'", 
                                                            "'MODEL_COMPILE_SUBQUERY'", 
                                                            "'MODEL_DONTVERIFY_UNIQUENESS'", 
                                                            "'MODEL_DYNAMIC_SUBQUERY'", 
                                                            "'MODEL_MIN_ANALYSIS'", 
                                                            "'MODEL'", "'MODEL_NB'", 
                                                            "'MODEL_NO_ANALYSIS'", 
                                                            "'MODEL_PBY'", 
                                                            "'MODEL_PUSH_REF'", 
                                                            "'MODEL_SV'", 
                                                            "'MODE'", "'MODIFICATION'", 
                                                            "'MODIFY_COLUMN_TYPE'", 
                                                            "'MODIFY'", 
                                                            "'MOD'", "'MODULE'", 
                                                            "'MONITORING'", 
                                                            "'MONITOR'", 
                                                            "'MONTH'", "'MONTHS_BETWEEN'", 
                                                            "'MONTHS'", 
                                                            "'MOUNT'", "'MOUNTPATH'", 
                                                            "'MOVEMENT'", 
                                                            "'MOVE'", "'MULTIDIMENSIONAL'", 
                                                            "'MULTISET'", 
                                                            "'MV_MERGE'", 
                                                            "'NAMED'", "'NAME'", 
                                                            "'NAMESPACE'", 
                                                            "'NAN'", "'NANVL'", 
                                                            "'NATIONAL'", 
                                                            "'NATIVE_FULL_OUTER_JOIN'", 
                                                            "'NATIVE'", 
                                                            "'NATURAL'", 
                                                            "'NATURALN'", 
                                                            "'NAV'", "'NCHAR_CS'", 
                                                            "'NCHAR'", "'NCHR'", 
                                                            "'NCLOB'", "'NEEDED'", 
                                                            "'NEG'", "'NESTED'", 
                                                            "'NESTED_TABLE_FAST_INSERT'", 
                                                            "'NESTED_TABLE_GET_REFS'", 
                                                            "'NESTED_TABLE_ID'", 
                                                            "'NESTED_TABLE_SET_REFS'", 
                                                            "'NESTED_TABLE_SET_SETID'", 
                                                            "'NETWORK'", 
                                                            "'NEVER'", "'NEW'", 
                                                            "'NEW_TIME'", 
                                                            "'NEXT_DAY'", 
                                                            "'NEXT'", "'NL_AJ'", 
                                                            "'NLJ_BATCHING'", 
                                                            "'NLJ_INDEX_FILTER'", 
                                                            "'NLJ_INDEX_SCAN'", 
                                                            "'NLJ_PREFETCH'", 
                                                            "'NLS_CALENDAR'", 
                                                            "'NLS_CHARACTERSET'", 
                                                            "'NLS_CHARSET_DECL_LEN'", 
                                                            "'NLS_CHARSET_ID'", 
                                                            "'NLS_CHARSET_NAME'", 
                                                            "'NLS_COMP'", 
                                                            "'NLS_CURRENCY'", 
                                                            "'NLS_DATE_FORMAT'", 
                                                            "'NLS_DATE_LANGUAGE'", 
                                                            "'NLS_INITCAP'", 
                                                            "'NLS_ISO_CURRENCY'", 
                                                            "'NL_SJ'", "'NLS_LANG'", 
                                                            "'NLS_LANGUAGE'", 
                                                            "'NLS_LENGTH_SEMANTICS'", 
                                                            "'NLS_LOWER'", 
                                                            "'NLS_NCHAR_CONV_EXCP'", 
                                                            "'NLS_NUMERIC_CHARACTERS'", 
                                                            "'NLS_SORT'", 
                                                            "'NLSSORT'", 
                                                            "'NLS_SPECIAL_CHARS'", 
                                                            "'NLS_TERRITORY'", 
                                                            "'NLS_UPPER'", 
                                                            "'NO_ACCESS'", 
                                                            "'NO_ADAPTIVE_PLAN'", 
                                                            "'NO_ANSI_REARCH'", 
                                                            "'NOAPPEND'", 
                                                            "'NOARCHIVELOG'", 
                                                            "'NOAUDIT'", 
                                                            "'NO_AUTO_REOPTIMIZE'", 
                                                            "'NO_BASETABLE_MULTIMV_REWRITE'", 
                                                            "'NO_BATCH_TABLE_ACCESS_BY_ROWID'", 
                                                            "'NO_BIND_AWARE'", 
                                                            "'NO_BUFFER'", 
                                                            "'NOCACHE'", 
                                                            "'NO_CARTESIAN'", 
                                                            "'NO_CHECK_ACL_REWRITE'", 
                                                            "'NO_CLUSTER_BY_ROWID'", 
                                                            "'NO_CLUSTERING'", 
                                                            "'NO_COALESCE_SQ'", 
                                                            "'NO_COMMON_DATA'", 
                                                            "'NOCOMPRESS'", 
                                                            "'NO_CONNECT_BY_CB_WHR_ONLY'", 
                                                            "'NO_CONNECT_BY_COMBINE_SW'", 
                                                            "'NO_CONNECT_BY_COST_BASED'", 
                                                            "'NO_CONNECT_BY_ELIM_DUPS'", 
                                                            "'NO_CONNECT_BY_FILTERING'", 
                                                            "'NOCOPY'", 
                                                            "'NO_COST_XML_QUERY_REWRITE'", 
                                                            "'NO_CPU_COSTING'", 
                                                            "'NOCPU_COSTING'", 
                                                            "'NOCYCLE'", 
                                                            "'NO_DATA_SECURITY_REWRITE'", 
                                                            "'NO_DECORRELATE'", 
                                                            "'NODELAY'", 
                                                            "'NO_DOMAIN_INDEX_FILTER'", 
                                                            "'NO_DST_UPGRADE_INSERT_CONV'", 
                                                            "'NO_ELIM_GROUPBY'", 
                                                            "'NO_ELIMINATE_JOIN'", 
                                                            "'NO_ELIMINATE_OBY'", 
                                                            "'NO_ELIMINATE_OUTER_JOIN'", 
                                                            "'NOENTITYESCAPING'", 
                                                            "'NO_EXPAND_GSET_TO_UNION'", 
                                                            "'NO_EXPAND'", 
                                                            "'NO_EXPAND_TABLE'", 
                                                            "'NO_FACT'", 
                                                            "'NO_FACTORIZE_JOIN'", 
                                                            "'NO_FILTERING'", 
                                                            "'NOFORCE'", 
                                                            "'NO_FULL_OUTER_JOIN_TO_OUTER'", 
                                                            "'NO_GATHER_OPTIMIZER_STATISTICS'", 
                                                            "'NO_GBY_PUSHDOWN'", 
                                                            "'NOGUARANTEE'", 
                                                            "'NO_INDEX_FFS'", 
                                                            "'NO_INDEX'", 
                                                            "'NO_INDEX_SS'", 
                                                            "'NO_INMEMORY'", 
                                                            "'NO_INMEMORY_PRUNING'", 
                                                            "'NOKEEP'", 
                                                            "'NO_LOAD'", 
                                                            "'NOLOCAL'", 
                                                            "'NOLOGGING'", 
                                                            "'NOMAPPING'", 
                                                            "'NOMAXVALUE'", 
                                                            "'NO_MERGE'", 
                                                            "'NOMINIMIZE'", 
                                                            "'NOMINVALUE'", 
                                                            "'NO_MODEL_PUSH_REF'", 
                                                            "'NO_MONITORING'", 
                                                            "'NOMONITORING'", 
                                                            "'NO_MONITOR'", 
                                                            "'NO_MULTIMV_REWRITE'", 
                                                            "'NO_NATIVE_FULL_OUTER_JOIN'", 
                                                            "'NONBLOCKING'", 
                                                            "'NONEDITIONABLE'", 
                                                            "'NONE'", "'NO_NLJ_BATCHING'", 
                                                            "'NO_NLJ_PREFETCH'", 
                                                            "'NO'", "'NONSCHEMA'", 
                                                            "'NO_OBJECT_LINK'", 
                                                            "'NOORDER'", 
                                                            "'NO_ORDER_ROLLUPS'", 
                                                            "'NO_OUTER_JOIN_TO_ANTI'", 
                                                            "'NO_OUTER_JOIN_TO_INNER'", 
                                                            "'NOOVERRIDE'", 
                                                            "'NO_PARALLEL_INDEX'", 
                                                            "'NOPARALLEL_INDEX'", 
                                                            "'NO_PARALLEL'", 
                                                            "'NOPARALLEL'", 
                                                            "'NO_PARTIAL_COMMIT'", 
                                                            "'NO_PARTIAL_JOIN'", 
                                                            "'NO_PARTIAL_ROLLUP_PUSHDOWN'", 
                                                            "'NOPARTITION'", 
                                                            "'NO_PLACE_DISTINCT'", 
                                                            "'NO_PLACE_GROUP_BY'", 
                                                            "'NO_PQ_CONCURRENT_UNION'", 
                                                            "'NO_PQ_MAP'", 
                                                            "'NO_PQ_REPLICATE'", 
                                                            "'NO_PQ_SKEW'", 
                                                            "'NO_PRUNE_GSETS'", 
                                                            "'NO_PULL_PRED'", 
                                                            "'NO_PUSH_PRED'", 
                                                            "'NO_PUSH_SUBQ'", 
                                                            "'NO_PX_FAULT_TOLERANCE'", 
                                                            "'NO_PX_JOIN_FILTER'", 
                                                            "'NO_QKN_BUFF'", 
                                                            "'NO_QUERY_TRANSFORMATION'", 
                                                            "'NO_REF_CASCADE'", 
                                                            "'NORELOCATE'", 
                                                            "'NORELY'", 
                                                            "'NOREPAIR'", 
                                                            "'NOREPLAY'", 
                                                            "'NORESETLOGS'", 
                                                            "'NO_RESULT_CACHE'", 
                                                            "'NOREVERSE'", 
                                                            "'NO_REWRITE'", 
                                                            "'NOREWRITE'", 
                                                            "'NORMAL'", 
                                                            "'NO_ROOT_SW_FOR_LOCAL'", 
                                                            "'NOROWDEPENDENCIES'", 
                                                            "'NOSCHEMACHECK'", 
                                                            "'NOSEGMENT'", 
                                                            "'NO_SEMIJOIN'", 
                                                            "'NO_SEMI_TO_INNER'", 
                                                            "'NO_SET_TO_JOIN'", 
                                                            "'NOSORT'", 
                                                            "'NO_SQL_TRANSLATION'", 
                                                            "'NO_SQL_TUNE'", 
                                                            "'NO_STAR_TRANSFORMATION'", 
                                                            "'NO_STATEMENT_QUEUING'", 
                                                            "'NO_STATS_GSETS'", 
                                                            "'NOSTRICT'", 
                                                            "'NO_SUBQUERY_PRUNING'", 
                                                            "'NO_SUBSTRB_PAD'", 
                                                            "'NO_SWAP_JOIN_INPUTS'", 
                                                            "'NOSWITCH'", 
                                                            "'NO_TABLE_LOOKUP_BY_NL'", 
                                                            "'NO_TEMP_TABLE'", 
                                                            "'NOTHING'", 
                                                            "'NOTIFICATION'", 
                                                            "'NOT'", "'NO_TRANSFORM_DISTINCT_AGG'", 
                                                            "'NO_UNNEST'", 
                                                            "'NO_USE_CUBE'", 
                                                            "'NO_USE_HASH_AGGREGATION'", 
                                                            "'NO_USE_HASH_GBY_FOR_PUSHDOWN'", 
                                                            "'NO_USE_HASH'", 
                                                            "'NO_USE_INVISIBLE_INDEXES'", 
                                                            "'NO_USE_MERGE'", 
                                                            "'NO_USE_NL'", 
                                                            "'NO_USE_VECTOR_AGGREGATION'", 
                                                            "'NOVALIDATE'", 
                                                            "'NO_VECTOR_TRANSFORM_DIMS'", 
                                                            "'NO_VECTOR_TRANSFORM_FACT'", 
                                                            "'NO_VECTOR_TRANSFORM'", 
                                                            "'NOWAIT'", 
                                                            "'NO_XDB_FASTPATH_INSERT'", 
                                                            "'NO_XML_DML_REWRITE'", 
                                                            "'NO_XMLINDEX_REWRITE_IN_SELECT'", 
                                                            "'NO_XMLINDEX_REWRITE'", 
                                                            "'NO_XML_QUERY_REWRITE'", 
                                                            "'NO_ZONEMAP'", 
                                                            "'NTH_VALUE'", 
                                                            "'NULLIF'", 
                                                            "'NULL'", "'NULLS'", 
                                                            "'NUMBER'", 
                                                            "'NUMERIC'", 
                                                            "'NUM_INDEX_KEYS'", 
                                                            "'NUMTODSINTERVAL'", 
                                                            "'NUMTOYMINTERVAL'", 
                                                            "'NVARCHAR2'", 
                                                            "'NVL2'", "'OBJECT2XML'", 
                                                            "'OBJECT'", 
                                                            "'OBJ_ID'", 
                                                            "'OBJNO'", "'OBJNO_REUSE'", 
                                                            "'OCCURENCES'", 
                                                            "'OFFLINE'", 
                                                            "'OFF'", "'OFFSET'", 
                                                            "'OF'", "'OIDINDEX'", 
                                                            "'OID'", "'OLAP'", 
                                                            "'OLD'", "'OLD_PUSH_PRED'", 
                                                            "'OLS'", "'OLTP'", 
                                                            "'OMIT'", "'ONE'", 
                                                            "'ONLINE'", 
                                                            "'ONLINELOG'", 
                                                            "'ONLY'", "'ON'", 
                                                            "'OPAQUE'", 
                                                            "'OPAQUE_TRANSFORM'", 
                                                            "'OPAQUE_XCANONICAL'", 
                                                            "'OPCODE'", 
                                                            "'OPEN'", "'OPERATIONS'", 
                                                            "'OPERATOR'", 
                                                            "'OPT_ESTIMATE'", 
                                                            "'OPTIMAL'", 
                                                            "'OPTIMIZE'", 
                                                            "'OPTIMIZER_FEATURES_ENABLE'", 
                                                            "'OPTIMIZER_GOAL'", 
                                                            "'OPTION'", 
                                                            "'OPT_PARAM'", 
                                                            "'ORA_BRANCH'", 
                                                            "'ORA_CHECK_ACL'", 
                                                            "'ORA_CHECK_PRIVILEGE'", 
                                                            "'ORA_CLUSTERING'", 
                                                            "'ORADATA'", 
                                                            "'ORADEBUG'", 
                                                            "'ORA_DST_AFFECTED'", 
                                                            "'ORA_DST_CONVERT'", 
                                                            "'ORA_DST_ERROR'", 
                                                            "'ORA_GET_ACLIDS'", 
                                                            "'ORA_GET_PRIVILEGES'", 
                                                            "'ORA_HASH'", 
                                                            "'ORA_INVOKING_USERID'", 
                                                            "'ORA_INVOKING_USER'", 
                                                            "'ORA_INVOKING_XS_USER_GUID'", 
                                                            "'ORA_INVOKING_XS_USER'", 
                                                            "'ORA_RAWCOMPARE'", 
                                                            "'ORA_RAWCONCAT'", 
                                                            "'ORA_ROWSCN'", 
                                                            "'ORA_ROWSCN_RAW'", 
                                                            "'ORA_ROWVERSION'", 
                                                            "'ORA_TABVERSION'", 
                                                            "'ORA_WRITE_TIME'", 
                                                            "'ORDERED'", 
                                                            "'ORDERED_PREDICATES'", 
                                                            "'ORDER'", "'ORDINALITY'", 
                                                            "'OR_EXPAND'", 
                                                            "'ORGANIZATION'", 
                                                            "'OR'", "'OR_PREDICATES'", 
                                                            "'OSERROR'", 
                                                            "'OTHER'", "'OUTER_JOIN_TO_ANTI'", 
                                                            "'OUTER_JOIN_TO_INNER'", 
                                                            "'OUTER'", "'OUTLINE_LEAF'", 
                                                            "'OUTLINE'", 
                                                            "'OUT_OF_LINE'", 
                                                            "'OUT'", "'OVERFLOW_NOMOVE'", 
                                                            "'OVERFLOW'", 
                                                            "'OVERLAPS'", 
                                                            "'OVER'", "'OVERRIDING'", 
                                                            "'OWNER'", "'OWNERSHIP'", 
                                                            "'OWN'", "'PACKAGE'", 
                                                            "'PACKAGES'", 
                                                            "'PARALLEL_ENABLE'", 
                                                            "'PARALLEL_INDEX'", 
                                                            "'PARALLEL'", 
                                                            "'PARAMETERFILE'", 
                                                            "'PARAMETERS'", 
                                                            "'PARAM'", "'PARENT'", 
                                                            "'PARITY'", 
                                                            "'PARTIAL_JOIN'", 
                                                            "'PARTIALLY'", 
                                                            "'PARTIAL'", 
                                                            "'PARTIAL_ROLLUP_PUSHDOWN'", 
                                                            "'PARTITION_HASH'", 
                                                            "'PARTITION_LIST'", 
                                                            "'PARTITION'", 
                                                            "'PARTITION_RANGE'", 
                                                            "'PARTITIONS'", 
                                                            "'PART$NUM$INST'", 
                                                            "'PASSING'", 
                                                            "'PASSWORD_GRACE_TIME'", 
                                                            "'PASSWORD_LIFE_TIME'", 
                                                            "'PASSWORD_LOCK_TIME'", 
                                                            "'PASSWORD'", 
                                                            "'PASSWORD_REUSE_MAX'", 
                                                            "'PASSWORD_REUSE_TIME'", 
                                                            "'PASSWORD_VERIFY_FUNCTION'", 
                                                            "'PAST'", "'PATCH'", 
                                                            "'PATH'", "'PATH_PREFIX'", 
                                                            "'PATHS'", "'PATTERN'", 
                                                            "'PBL_HS_BEGIN'", 
                                                            "'PBL_HS_END'", 
                                                            "'PCTFREE'", 
                                                            "'PCTINCREASE'", 
                                                            "'PCTTHRESHOLD'", 
                                                            "'PCTUSED'", 
                                                            "'PCTVERSION'", 
                                                            "'PENDING'", 
                                                            null, null, 
                                                            null, "'PERCENT'", 
                                                            "'PERCENT_RANKM'", 
                                                            null, null, 
                                                            null, "'PERFORMANCE'", 
                                                            "'PERIOD'", 
                                                            "'PERMANENT'", 
                                                            "'PERMISSION'", 
                                                            "'PERMUTE'", 
                                                            "'PER'", "'PFILE'", 
                                                            "'PHYSICAL'", 
                                                            "'PIKEY'", "'PIPELINED'", 
                                                            "'PIPE'", "'PIV_GB'", 
                                                            "'PIVOT'", "'PIV_SSF'", 
                                                            "'PLACE_DISTINCT'", 
                                                            "'PLACE_GROUP_BY'", 
                                                            "'PLAN'", "'PLSCOPE_SETTINGS'", 
                                                            "'PLS_INTEGER'", 
                                                            "'PLSQL_CCFLAGS'", 
                                                            "'PLSQL_CODE_TYPE'", 
                                                            "'PLSQL_DEBUG'", 
                                                            "'PLSQL_OPTIMIZE_LEVEL'", 
                                                            "'PLSQL_WARNINGS'", 
                                                            "'PLUGGABLE'", 
                                                            "'POINT'", "'POLICY'", 
                                                            "'POOL_16K'", 
                                                            "'POOL_2K'", 
                                                            "'POOL_32K'", 
                                                            "'POOL_4K'", 
                                                            "'POOL_8K'", 
                                                            "'POSITIVEN'", 
                                                            "'POSITIVE'", 
                                                            "'POST_TRANSACTION'", 
                                                            "'POWERMULTISET_BY_CARDINALITY'", 
                                                            "'POWERMULTISET'", 
                                                            "'POWER'", "'PQ_CONCURRENT_UNION'", 
                                                            "'PQ_DISTRIBUTE'", 
                                                            "'PQ_DISTRIBUTE_WINDOW'", 
                                                            "'PQ_FILTER'", 
                                                            "'PQ_MAP'", 
                                                            "'PQ_NOMAP'", 
                                                            "'PQ_REPLICATE'", 
                                                            "'PQ_SKEW'", 
                                                            "'PRAGMA'", 
                                                            "'PREBUILT'", 
                                                            "'PRECEDES'", 
                                                            "'PRECEDING'", 
                                                            "'PRECISION'", 
                                                            "'PRECOMPUTE_SUBQUERY'", 
                                                            "'PREDICATE_REORDERS'", 
                                                            "'PRELOAD'", 
                                                            "'PREPARE'", 
                                                            "'PRESENTNNV'", 
                                                            "'PRESENT'", 
                                                            "'PRESENTV'", 
                                                            "'PRESERVE_OID'", 
                                                            "'PRESERVE'", 
                                                            "'PRETTY'", 
                                                            "'PREVIOUS'", 
                                                            "'PREV'", "'PRIMARY'", 
                                                            "'PRINTBLOBTOCLOB'", 
                                                            "'PRIORITY'", 
                                                            "'PRIOR'", "'PRIVATE'", 
                                                            "'PRIVATE_SGA'", 
                                                            "'PRIVILEGED'", 
                                                            "'PRIVILEGE'", 
                                                            "'PRIVILEGES'", 
                                                            "'PROCEDURAL'", 
                                                            "'PROCEDURE'", 
                                                            "'PROCESS'", 
                                                            "'PROFILE'", 
                                                            "'PROGRAM'", 
                                                            "'PROJECT'", 
                                                            "'PROPAGATE'", 
                                                            "'PROTECTED'", 
                                                            "'PROTECTION'", 
                                                            "'PROXY'", "'PRUNING'", 
                                                            "'PUBLIC'", 
                                                            "'PULL_PRED'", 
                                                            "'PURGE'", "'PUSH_PRED'", 
                                                            "'PUSH_SUBQ'", 
                                                            "'PX_FAULT_TOLERANCE'", 
                                                            "'PX_GRANULE'", 
                                                            "'PX_JOIN_FILTER'", 
                                                            "'QB_NAME'", 
                                                            "'QUERY_BLOCK'", 
                                                            "'QUERY'", "'QUEUE_CURR'", 
                                                            "'QUEUE'", "'QUEUE_ROWP'", 
                                                            "'QUIESCE'", 
                                                            "'QUORUM'", 
                                                            "'QUOTA'", "'RAISE'", 
                                                            "'RANDOM_LOCAL'", 
                                                            "'RANDOM'", 
                                                            "'RANGE'", "'RANKM'", 
                                                            "'RAPIDLY'", 
                                                            "'RAW'", "'RAWTOHEX'", 
                                                            "'RAWTONHEX'", 
                                                            "'RBA'", "'RBO_OUTLINE'", 
                                                            "'RDBA'", "'READ'", 
                                                            "'READS'", "'REALM'", 
                                                            "'REAL'", "'REBALANCE'", 
                                                            "'REBUILD'", 
                                                            "'RECORD'", 
                                                            "'RECORDS_PER_BLOCK'", 
                                                            "'RECOVERABLE'", 
                                                            "'RECOVER'", 
                                                            "'RECOVERY'", 
                                                            "'RECYCLEBIN'", 
                                                            "'RECYCLE'", 
                                                            "'REDACTION'", 
                                                            "'REDEFINE'", 
                                                            "'REDO'", "'REDUCED'", 
                                                            "'REDUNDANCY'", 
                                                            "'REF_CASCADE_CURSOR'", 
                                                            "'REFERENCED'", 
                                                            "'REFERENCE'", 
                                                            "'REFERENCES'", 
                                                            "'REFERENCING'", 
                                                            "'REF'", "'REFRESH'", 
                                                            "'REFTOHEX'", 
                                                            "'REGEXP_COUNT'", 
                                                            "'REGEXP_INSTR'", 
                                                            "'REGEXP_LIKE'", 
                                                            "'REGEXP_REPLACE'", 
                                                            "'REGEXP_SUBSTR'", 
                                                            "'REGISTER'", 
                                                            "'REGR_AVGX'", 
                                                            "'REGR_AVGY'", 
                                                            "'REGR_COUNT'", 
                                                            "'REGR_INTERCEPT'", 
                                                            "'REGR_R2'", 
                                                            "'REGR_SLOPE'", 
                                                            "'REGR_SXX'", 
                                                            "'REGR_SXY'", 
                                                            "'REGR_SYY'", 
                                                            "'REGULAR'", 
                                                            "'REJECT'", 
                                                            "'REKEY'", "'RELATIONAL'", 
                                                            "'RELIES_ON'", 
                                                            "'RELOCATE'", 
                                                            "'RELY'", "'REMAINDER'", 
                                                            "'REMOTE_MAPPED'", 
                                                            "'REMOVE'", 
                                                            "'RENAME'", 
                                                            "'REPAIR'", 
                                                            "'REPEAT'", 
                                                            "'REPLACE'", 
                                                            "'REPLICATION'", 
                                                            "'REQUIRED'", 
                                                            "'RESETLOGS'", 
                                                            "'RESET'", "'RESIZE'", 
                                                            "'RESOLVE'", 
                                                            "'RESOLVER'", 
                                                            "'RESOURCE'", 
                                                            "'RESPECT'", 
                                                            "'RESTART'", 
                                                            "'RESTORE_AS_INTERVALS'", 
                                                            "'RESTORE'", 
                                                            "'RESTRICT_ALL_REF_CONS'", 
                                                            "'RESTRICTED'", 
                                                            "'RESTRICT_REFERENCES'", 
                                                            "'RESTRICT'", 
                                                            "'RESULT_CACHE'", 
                                                            "'RESULT'", 
                                                            "'RESUMABLE'", 
                                                            "'RESUME'", 
                                                            "'RETENTION'", 
                                                            "'RETRY_ON_ROW_CHANGE'", 
                                                            "'RETURNING'", 
                                                            "'RETURN'", 
                                                            "'REUSE'", "'REVERSE'", 
                                                            "'REVOKE'", 
                                                            "'REWRITE_OR_ERROR'", 
                                                            "'REWRITE'", 
                                                            "'RIGHT'", "'ROLE'", 
                                                            "'ROLESET'", 
                                                            "'ROLES'", "'ROLLBACK'", 
                                                            "'ROLLING'", 
                                                            "'ROLLUP'", 
                                                            "'ROWDEPENDENCIES'", 
                                                            "'ROWID_MAPPING_TABLE'", 
                                                            "'ROWID'", "'ROWIDTOCHAR'", 
                                                            "'ROWIDTONCHAR'", 
                                                            "'ROW_LENGTH'", 
                                                            "'ROWNUM'", 
                                                            "'ROW'", "'ROWS'", 
                                                            "'RPAD'", "'RTRIM'", 
                                                            "'RULE'", "'RULES'", 
                                                            "'RUNNING'", 
                                                            "'SALT'", "'SAMPLE'", 
                                                            "'SAVE_AS_INTERVALS'", 
                                                            "'SAVEPOINT'", 
                                                            "'SAVE'", "'SB4'", 
                                                            "'SCALE_ROWS'", 
                                                            "'SCALE'", "'SCAN_INSTANCES'", 
                                                            "'SCAN'", "'SCHEDULER'", 
                                                            "'SCHEMACHECK'", 
                                                            "'SCHEMA'", 
                                                            "'SCN_ASCENDING'", 
                                                            "'SCN'", "'SCOPE'", 
                                                            "'SCRUB'", "'SD_ALL'", 
                                                            "'SD_INHIBIT'", 
                                                            "'SDO_GEOM_MBR'", 
                                                            "'SD_SHOW'", 
                                                            "'SEARCH'", 
                                                            "'SECOND'", 
                                                            "'SECRET'", 
                                                            "'SECUREFILE_DBA'", 
                                                            "'SECUREFILE'", 
                                                            "'SECURITY'", 
                                                            "'SEED'", "'SEG_BLOCK'", 
                                                            "'SEG_FILE'", 
                                                            "'SEGMENT'", 
                                                            "'SELECTIVITY'", 
                                                            "'SELECT'", 
                                                            "'SELF'", "'SEMIJOIN_DRIVER'", 
                                                            "'SEMIJOIN'", 
                                                            "'SEMI_TO_INNER'", 
                                                            "'SEQUENCED'", 
                                                            "'SEQUENCE'", 
                                                            "'SEQUENTIAL'", 
                                                            "'SEQ'", "'SERIALIZABLE'", 
                                                            "'SERIALLY_REUSABLE'", 
                                                            "'SERIAL'", 
                                                            "'SERVERERROR'", 
                                                            "'SERVICE_NAME_CONVERT'", 
                                                            "'SERVICES'", 
                                                            "'SESSION_CACHED_CURSORS'", 
                                                            "'SESSION'", 
                                                            "'SESSIONS_PER_USER'", 
                                                            "'SESSIONTIMEZONE'", 
                                                            "'SESSIONTZNAME'", 
                                                            "'SET'", "'SETS'", 
                                                            "'SETTINGS'", 
                                                            "'SET_TO_JOIN'", 
                                                            "'SEVERE'", 
                                                            "'SHARED_POOL'", 
                                                            "'SHARED'", 
                                                            "'SHARE'", "'SHARING'", 
                                                            "'SHELFLIFE'", 
                                                            "'SHOW'", "'SHRINK'", 
                                                            "'SHUTDOWN'", 
                                                            "'SIBLINGS'", 
                                                            "'SID'", "'SIGNAL_COMPONENT'", 
                                                            "'SIGNAL_FUNCTION'", 
                                                            "'SIGN'", "'SIGNTYPE'", 
                                                            "'SIMPLE_INTEGER'", 
                                                            "'SIMPLE'", 
                                                            "'SINGLE'", 
                                                            "'SINGLETASK'", 
                                                            "'SINH'", "'SIN'", 
                                                            "'SIZE'", "'SKIP_EXT_OPTIMIZER'", 
                                                            "'SKIP'", "'SKIP_UNQ_UNUSABLE_IDX'", 
                                                            "'SKIP_UNUSABLE_INDEXES'", 
                                                            "'SMALLFILE'", 
                                                            "'SMALLINT'", 
                                                            "'SNAPSHOT'", 
                                                            "'SOME'", "'SORT'", 
                                                            "'SOUNDEX'", 
                                                            "'SOURCE_FILE_DIRECTORY'", 
                                                            "'SOURCE_FILE_NAME_CONVERT'", 
                                                            "'SOURCE'", 
                                                            "'SPACE'", "'SPECIFICATION'", 
                                                            "'SPFILE'", 
                                                            "'SPLIT'", "'SPREADSHEET'", 
                                                            "'SQLDATA'", 
                                                            "'SQLERROR'", 
                                                            "'SQLLDR'", 
                                                            "'SQL'", "'SQL_TRACE'", 
                                                            "'SQL_TRANSLATION_PROFILE'", 
                                                            "'SQRT'", "'STALE'", 
                                                            "'STANDALONE'", 
                                                            "'STANDARD_HASH'", 
                                                            "'STANDBY_MAX_DATA_DELAY'", 
                                                            "'STANDBYS'", 
                                                            "'STANDBY'", 
                                                            "'STAR'", "'STAR_TRANSFORMATION'", 
                                                            "'START'", "'STARTUP'", 
                                                            "'STATEMENT_ID'", 
                                                            "'STATEMENT_QUEUING'", 
                                                            "'STATEMENTS'", 
                                                            "'STATEMENT'", 
                                                            "'STATE'", "'STATIC'", 
                                                            "'STATISTICS'", 
                                                            "'STATS_BINOMIAL_TEST'", 
                                                            "'STATS_CROSSTAB'", 
                                                            "'STATS_F_TEST'", 
                                                            "'STATS_KS_TEST'", 
                                                            "'STATS_MODE'", 
                                                            "'STATS_MW_TEST'", 
                                                            "'STATS_ONE_WAY_ANOVA'", 
                                                            "'STATS_T_TEST_INDEP'", 
                                                            "'STATS_T_TEST_INDEPU'", 
                                                            "'STATS_T_TEST_ONE'", 
                                                            "'STATS_T_TEST_PAIRED'", 
                                                            "'STATS_WSR_TEST'", 
                                                            "'STDDEV_POP'", 
                                                            "'STDDEV_SAMP'", 
                                                            "'STOP'", "'STORAGE'", 
                                                            "'STORE'", "'STREAMS'", 
                                                            "'STREAM'", 
                                                            "'STRICT'", 
                                                            "'STRING'", 
                                                            "'STRIPE_COLUMNS'", 
                                                            "'STRIPE_WIDTH'", 
                                                            "'STRIP'", "'STRUCTURE'", 
                                                            "'SUBMULTISET'", 
                                                            "'SUBPARTITION_REL'", 
                                                            "'SUBPARTITIONS'", 
                                                            "'SUBPARTITION'", 
                                                            "'SUBQUERIES'", 
                                                            "'SUBQUERY_PRUNING'", 
                                                            "'SUBSCRIBE'", 
                                                            "'SUBSET'", 
                                                            "'SUBSTITUTABLE'", 
                                                            "'SUBSTR2'", 
                                                            "'SUBSTR4'", 
                                                            "'SUBSTRB'", 
                                                            "'SUBSTRC'", 
                                                            "'SUBTYPE'", 
                                                            "'SUCCESSFUL'", 
                                                            "'SUCCESS'", 
                                                            "'SUMMARY'", 
                                                            "'SUPPLEMENTAL'", 
                                                            "'SUSPEND'", 
                                                            "'SWAP_JOIN_INPUTS'", 
                                                            "'SWITCHOVER'", 
                                                            "'SWITCH'", 
                                                            "'SYNCHRONOUS'", 
                                                            "'SYNC'", "'SYNONYM'", 
                                                            "'SYSASM'", 
                                                            "'SYS_AUDIT'", 
                                                            "'SYSAUX'", 
                                                            "'SYSBACKUP'", 
                                                            "'SYS_CHECKACL'", 
                                                            "'SYS_CHECK_PRIVILEGE'", 
                                                            "'SYS_CONNECT_BY_PATH'", 
                                                            "'SYS_CONTEXT'", 
                                                            "'SYSDATE'", 
                                                            "'SYSDBA'", 
                                                            "'SYS_DBURIGEN'", 
                                                            "'SYSDG'", "'SYS_DL_CURSOR'", 
                                                            "'SYS_DM_RXFORM_CHR'", 
                                                            "'SYS_DM_RXFORM_NUM'", 
                                                            "'SYS_DOM_COMPARE'", 
                                                            "'SYS_DST_PRIM2SEC'", 
                                                            "'SYS_DST_SEC2PRIM'", 
                                                            "'SYS_ET_BFILE_TO_RAW'", 
                                                            "'SYS_ET_BLOB_TO_IMAGE'", 
                                                            "'SYS_ET_IMAGE_TO_BLOB'", 
                                                            "'SYS_ET_RAW_TO_BFILE'", 
                                                            "'SYS_EXTPDTXT'", 
                                                            "'SYS_EXTRACT_UTC'", 
                                                            "'SYS_FBT_INSDEL'", 
                                                            "'SYS_FILTER_ACLS'", 
                                                            "'SYS_FNMATCHES'", 
                                                            "'SYS_FNREPLACE'", 
                                                            "'SYS_GET_ACLIDS'", 
                                                            "'SYS_GET_COL_ACLIDS'", 
                                                            "'SYS_GET_PRIVILEGES'", 
                                                            "'SYS_GETTOKENID'", 
                                                            "'SYS_GETXTIVAL'", 
                                                            "'SYS_GUID'", 
                                                            "'SYSGUID'", 
                                                            "'SYSKM'", "'SYS_MAKE_XMLNODEID'", 
                                                            "'SYS_MAKEXML'", 
                                                            "'SYS_MKXMLATTR'", 
                                                            "'SYS_MKXTI'", 
                                                            "'SYSOBJ'", 
                                                            "'SYS_OP_ADT2BIN'", 
                                                            "'SYS_OP_ADTCONS'", 
                                                            "'SYS_OP_ALSCRVAL'", 
                                                            "'SYS_OP_ATG'", 
                                                            "'SYS_OP_BIN2ADT'", 
                                                            "'SYS_OP_BITVEC'", 
                                                            "'SYS_OP_BL2R'", 
                                                            "'SYS_OP_BLOOM_FILTER_LIST'", 
                                                            "'SYS_OP_BLOOM_FILTER'", 
                                                            "'SYS_OP_C2C'", 
                                                            "'SYS_OP_CAST'", 
                                                            "'SYS_OP_CEG'", 
                                                            "'SYS_OP_CL2C'", 
                                                            "'SYS_OP_COMBINED_HASH'", 
                                                            "'SYS_OP_COMP'", 
                                                            "'SYS_OP_CONVERT'", 
                                                            "'SYS_OP_COUNTCHG'", 
                                                            "'SYS_OP_CSCONV'", 
                                                            "'SYS_OP_CSCONVTEST'", 
                                                            "'SYS_OP_CSR'", 
                                                            "'SYS_OP_CSX_PATCH'", 
                                                            "'SYS_OP_CYCLED_SEQ'", 
                                                            "'SYS_OP_DECOMP'", 
                                                            "'SYS_OP_DESCEND'", 
                                                            "'SYS_OP_DISTINCT'", 
                                                            "'SYS_OP_DRA'", 
                                                            "'SYS_OP_DUMP'", 
                                                            "'SYS_OP_DV_CHECK'", 
                                                            "'SYS_OP_ENFORCE_NOT_NULL$'", 
                                                            "'SYSOPER'", 
                                                            "'SYS_OP_EXTRACT'", 
                                                            "'SYS_OP_GROUPING'", 
                                                            "'SYS_OP_GUID'", 
                                                            "'SYS_OP_HASH'", 
                                                            "'SYS_OP_IIX'", 
                                                            "'SYS_OP_ITR'", 
                                                            "'SYS_OP_KEY_VECTOR_CREATE'", 
                                                            "'SYS_OP_KEY_VECTOR_FILTER_LIST'", 
                                                            "'SYS_OP_KEY_VECTOR_FILTER'", 
                                                            "'SYS_OP_KEY_VECTOR_SUCCEEDED'", 
                                                            "'SYS_OP_KEY_VECTOR_USE'", 
                                                            "'SYS_OP_LBID'", 
                                                            "'SYS_OP_LOBLOC2BLOB'", 
                                                            "'SYS_OP_LOBLOC2CLOB'", 
                                                            "'SYS_OP_LOBLOC2ID'", 
                                                            "'SYS_OP_LOBLOC2NCLOB'", 
                                                            "'SYS_OP_LOBLOC2TYP'", 
                                                            "'SYS_OP_LSVI'", 
                                                            "'SYS_OP_LVL'", 
                                                            "'SYS_OP_MAKEOID'", 
                                                            "'SYS_OP_MAP_NONNULL'", 
                                                            "'SYS_OP_MSR'", 
                                                            "'SYS_OP_NICOMBINE'", 
                                                            "'SYS_OP_NIEXTRACT'", 
                                                            "'SYS_OP_NII'", 
                                                            "'SYS_OP_NIX'", 
                                                            "'SYS_OP_NOEXPAND'", 
                                                            "'SYS_OP_NTCIMG$'", 
                                                            "'SYS_OP_NUMTORAW'", 
                                                            "'SYS_OP_OIDVALUE'", 
                                                            "'SYS_OP_OPNSIZE'", 
                                                            "'SYS_OP_PAR_1'", 
                                                            "'SYS_OP_PARGID_1'", 
                                                            "'SYS_OP_PARGID'", 
                                                            "'SYS_OP_PAR'", 
                                                            "'SYS_OP_PART_ID'", 
                                                            "'SYS_OP_PIVOT'", 
                                                            "'SYS_OP_R2O'", 
                                                            "'SYS_OP_RAWTONUM'", 
                                                            "'SYS_OP_RDTM'", 
                                                            "'SYS_OP_REF'", 
                                                            "'SYS_OP_RMTD'", 
                                                            "'SYS_OP_ROWIDTOOBJ'", 
                                                            "'SYS_OP_RPB'", 
                                                            "'SYS_OPTLOBPRBSC'", 
                                                            "'SYS_OP_TOSETID'", 
                                                            "'SYS_OP_TPR'", 
                                                            "'SYS_OP_TRTB'", 
                                                            "'SYS_OPTXICMP'", 
                                                            "'SYS_OPTXQCASTASNQ'", 
                                                            "'SYS_OP_UNDESCEND'", 
                                                            "'SYS_OP_VECAND'", 
                                                            "'SYS_OP_VECBIT'", 
                                                            "'SYS_OP_VECOR'", 
                                                            "'SYS_OP_VECXOR'", 
                                                            "'SYS_OP_VERSION'", 
                                                            "'SYS_OP_VREF'", 
                                                            "'SYS_OP_VVD'", 
                                                            "'SYS_OP_XMLCONS_FOR_CSX'", 
                                                            "'SYS_OP_XPTHATG'", 
                                                            "'SYS_OP_XPTHIDX'", 
                                                            "'SYS_OP_XPTHOP'", 
                                                            "'SYS_OP_XTXT2SQLT'", 
                                                            "'SYS_OP_ZONE_ID'", 
                                                            "'SYS_ORDERKEY_DEPTH'", 
                                                            "'SYS_ORDERKEY_MAXCHILD'", 
                                                            "'SYS_ORDERKEY_PARENT'", 
                                                            "'SYS_PARALLEL_TXN'", 
                                                            "'SYS_PATHID_IS_ATTR'", 
                                                            "'SYS_PATHID_IS_NMSPC'", 
                                                            "'SYS_PATHID_LASTNAME'", 
                                                            "'SYS_PATHID_LASTNMSPC'", 
                                                            "'SYS_PATH_REVERSE'", 
                                                            "'SYS_PXQEXTRACT'", 
                                                            "'SYS_RAW_TO_XSID'", 
                                                            "'SYS_RID_ORDER'", 
                                                            "'SYS_ROW_DELTA'", 
                                                            "'SYS_SC_2_XMLT'", 
                                                            "'SYS_SYNRCIREDO'", 
                                                            "'SYSTEM_DEFINED'", 
                                                            "'SYSTEM'", 
                                                            "'SYSTIMESTAMP'", 
                                                            "'SYS_TYPEID'", 
                                                            "'SYS_UMAKEXML'", 
                                                            "'SYS_XMLANALYZE'", 
                                                            "'SYS_XMLCONTAINS'", 
                                                            "'SYS_XMLCONV'", 
                                                            "'SYS_XMLEXNSURI'", 
                                                            "'SYS_XMLGEN'", 
                                                            "'SYS_XMLI_LOC_ISNODE'", 
                                                            "'SYS_XMLI_LOC_ISTEXT'", 
                                                            "'SYS_XMLINSTR'", 
                                                            "'SYS_XMLLOCATOR_GETSVAL'", 
                                                            "'SYS_XMLNODEID_GETCID'", 
                                                            "'SYS_XMLNODEID_GETLOCATOR'", 
                                                            "'SYS_XMLNODEID_GETOKEY'", 
                                                            "'SYS_XMLNODEID_GETPATHID'", 
                                                            "'SYS_XMLNODEID_GETPTRID'", 
                                                            "'SYS_XMLNODEID_GETRID'", 
                                                            "'SYS_XMLNODEID_GETSVAL'", 
                                                            "'SYS_XMLNODEID_GETTID'", 
                                                            "'SYS_XMLNODEID'", 
                                                            "'SYS_XMLT_2_SC'", 
                                                            "'SYS_XMLTRANSLATE'", 
                                                            "'SYS_XMLTYPE2SQL'", 
                                                            "'SYS_XQ_ASQLCNV'", 
                                                            "'SYS_XQ_ATOMCNVCHK'", 
                                                            "'SYS_XQBASEURI'", 
                                                            "'SYS_XQCASTABLEERRH'", 
                                                            "'SYS_XQCODEP2STR'", 
                                                            "'SYS_XQCODEPEQ'", 
                                                            "'SYS_XQCON2SEQ'", 
                                                            "'SYS_XQCONCAT'", 
                                                            "'SYS_XQDELETE'", 
                                                            "'SYS_XQDFLTCOLATION'", 
                                                            "'SYS_XQDOC'", 
                                                            "'SYS_XQDOCURI'", 
                                                            "'SYS_XQDURDIV'", 
                                                            "'SYS_XQED4URI'", 
                                                            "'SYS_XQENDSWITH'", 
                                                            "'SYS_XQERRH'", 
                                                            "'SYS_XQERR'", 
                                                            "'SYS_XQESHTMLURI'", 
                                                            "'SYS_XQEXLOBVAL'", 
                                                            "'SYS_XQEXSTWRP'", 
                                                            "'SYS_XQEXTRACT'", 
                                                            "'SYS_XQEXTRREF'", 
                                                            "'SYS_XQEXVAL'", 
                                                            "'SYS_XQFB2STR'", 
                                                            "'SYS_XQFNBOOL'", 
                                                            "'SYS_XQFNCMP'", 
                                                            "'SYS_XQFNDATIM'", 
                                                            "'SYS_XQFNLNAME'", 
                                                            "'SYS_XQFNNM'", 
                                                            "'SYS_XQFNNSURI'", 
                                                            "'SYS_XQFNPREDTRUTH'", 
                                                            "'SYS_XQFNQNM'", 
                                                            "'SYS_XQFNROOT'", 
                                                            "'SYS_XQFORMATNUM'", 
                                                            "'SYS_XQFTCONTAIN'", 
                                                            "'SYS_XQFUNCR'", 
                                                            "'SYS_XQGETCONTENT'", 
                                                            "'SYS_XQINDXOF'", 
                                                            "'SYS_XQINSERT'", 
                                                            "'SYS_XQINSPFX'", 
                                                            "'SYS_XQIRI2URI'", 
                                                            "'SYS_XQLANG'", 
                                                            "'SYS_XQLLNMFRMQNM'", 
                                                            "'SYS_XQMKNODEREF'", 
                                                            "'SYS_XQNILLED'", 
                                                            "'SYS_XQNODENAME'", 
                                                            "'SYS_XQNORMSPACE'", 
                                                            "'SYS_XQNORMUCODE'", 
                                                            "'SYS_XQ_NRNG'", 
                                                            "'SYS_XQNSP4PFX'", 
                                                            "'SYS_XQNSPFRMQNM'", 
                                                            "'SYS_XQPFXFRMQNM'", 
                                                            "'SYS_XQ_PKSQL2XML'", 
                                                            "'SYS_XQPOLYABS'", 
                                                            "'SYS_XQPOLYADD'", 
                                                            "'SYS_XQPOLYCEL'", 
                                                            "'SYS_XQPOLYCSTBL'", 
                                                            "'SYS_XQPOLYCST'", 
                                                            "'SYS_XQPOLYDIV'", 
                                                            "'SYS_XQPOLYFLR'", 
                                                            "'SYS_XQPOLYMOD'", 
                                                            "'SYS_XQPOLYMUL'", 
                                                            "'SYS_XQPOLYRND'", 
                                                            "'SYS_XQPOLYSQRT'", 
                                                            "'SYS_XQPOLYSUB'", 
                                                            "'SYS_XQPOLYUMUS'", 
                                                            "'SYS_XQPOLYUPLS'", 
                                                            "'SYS_XQPOLYVEQ'", 
                                                            "'SYS_XQPOLYVGE'", 
                                                            "'SYS_XQPOLYVGT'", 
                                                            "'SYS_XQPOLYVLE'", 
                                                            "'SYS_XQPOLYVLT'", 
                                                            "'SYS_XQPOLYVNE'", 
                                                            "'SYS_XQREF2VAL'", 
                                                            "'SYS_XQRENAME'", 
                                                            "'SYS_XQREPLACE'", 
                                                            "'SYS_XQRESVURI'", 
                                                            "'SYS_XQRNDHALF2EVN'", 
                                                            "'SYS_XQRSLVQNM'", 
                                                            "'SYS_XQRYENVPGET'", 
                                                            "'SYS_XQRYVARGET'", 
                                                            "'SYS_XQRYWRP'", 
                                                            "'SYS_XQSEQ2CON4XC'", 
                                                            "'SYS_XQSEQ2CON'", 
                                                            "'SYS_XQSEQDEEPEQ'", 
                                                            "'SYS_XQSEQINSB'", 
                                                            "'SYS_XQSEQRM'", 
                                                            "'SYS_XQSEQRVS'", 
                                                            "'SYS_XQSEQSUB'", 
                                                            "'SYS_XQSEQTYPMATCH'", 
                                                            "'SYS_XQSTARTSWITH'", 
                                                            "'SYS_XQSTATBURI'", 
                                                            "'SYS_XQSTR2CODEP'", 
                                                            "'SYS_XQSTRJOIN'", 
                                                            "'SYS_XQSUBSTRAFT'", 
                                                            "'SYS_XQSUBSTRBEF'", 
                                                            "'SYS_XQTOKENIZE'", 
                                                            "'SYS_XQTREATAS'", 
                                                            "'SYS_XQ_UPKXML2SQL'", 
                                                            "'SYS_XQXFORM'", 
                                                            "'SYS_XSID_TO_RAW'", 
                                                            "'SYS_ZMAP_FILTER'", 
                                                            "'SYS_ZMAP_REFRESH'", 
                                                            "'TABLE_LOOKUP_BY_NL'", 
                                                            "'TABLESPACE_NO'", 
                                                            "'TABLESPACE'", 
                                                            "'TABLES'", 
                                                            "'TABLE_STATS'", 
                                                            "'TABLE'", "'TABNO'", 
                                                            "'TAG'", "'TANH'", 
                                                            "'TAN'", "'TBL$OR$IDX$PART$NUM'", 
                                                            "'TEMPFILE'", 
                                                            "'TEMPLATE'", 
                                                            "'TEMPORARY'", 
                                                            "'TEMP_TABLE'", 
                                                            "'TEST'", "'TEXT'", 
                                                            "'THAN'", "'THEN'", 
                                                            "'THE'", "'THREAD'", 
                                                            "'THROUGH'", 
                                                            "'TIER'", "'TIES'", 
                                                            "'TIMEOUT'", 
                                                            "'TIMESTAMP_LTZ_UNCONSTRAINED'", 
                                                            "'TIMESTAMP'", 
                                                            "'TIMESTAMP_TZ_UNCONSTRAINED'", 
                                                            "'TIMESTAMP_UNCONSTRAINED'", 
                                                            "'TIMES'", "'TIME'", 
                                                            "'TIMEZONE'", 
                                                            "'TIMEZONE_ABBR'", 
                                                            "'TIMEZONE_HOUR'", 
                                                            "'TIMEZONE_MINUTE'", 
                                                            "'TIMEZONE_OFFSET'", 
                                                            "'TIMEZONE_REGION'", 
                                                            "'TIME_ZONE'", 
                                                            "'TIV_GB'", 
                                                            "'TIV_SSF'", 
                                                            "'TO_ACLID'", 
                                                            "'TO_BINARY_DOUBLE'", 
                                                            "'TO_BINARY_FLOAT'", 
                                                            "'TO_BLOB'", 
                                                            "'TO_CLOB'", 
                                                            "'TO_DSINTERVAL'", 
                                                            "'TO_LOB'", 
                                                            "'TO_MULTI_BYTE'", 
                                                            "'TO_NCHAR'", 
                                                            "'TO_NCLOB'", 
                                                            "'TO_NUMBER'", 
                                                            "'TOPLEVEL'", 
                                                            "'TO_SINGLE_BYTE'", 
                                                            "'TO_TIMESTAMP'", 
                                                            "'TO_TIMESTAMP_TZ'", 
                                                            "'TO_TIME'", 
                                                            "'TO_TIME_TZ'", 
                                                            "'TO'", "'TO_YMINTERVAL'", 
                                                            "'TRACE'", "'TRACING'", 
                                                            "'TRACKING'", 
                                                            "'TRAILING'", 
                                                            "'TRANSACTION'", 
                                                            "'TRANSFORM_DISTINCT_AGG'", 
                                                            "'TRANSITIONAL'", 
                                                            "'TRANSITION'", 
                                                            "'TRANSLATE'", 
                                                            "'TRANSLATION'", 
                                                            "'TREAT'", "'TRIGGERS'", 
                                                            "'TRIGGER'", 
                                                            "'TRUE'", "'TRUNCATE'", 
                                                            "'TRUNC'", "'TRUSTED'", 
                                                            "'TRUST'", "'TUNING'", 
                                                            "'TX'", "'TYPES'", 
                                                            "'TYPE'", "'TZ_OFFSET'", 
                                                            "'UB2'", "'UBA'", 
                                                            "'UCS2'", "'UID'", 
                                                            "'UNARCHIVED'", 
                                                            "'UNBOUNDED'", 
                                                            "'UNBOUND'", 
                                                            "'UNCONDITIONAL'", 
                                                            "'UNDER'", "'UNDO'", 
                                                            "'UNDROP'", 
                                                            "'UNIFORM'", 
                                                            "'UNION'", "'UNIQUE'", 
                                                            "'UNISTR'", 
                                                            "'UNLIMITED'", 
                                                            "'UNLOAD'", 
                                                            "'UNLOCK'", 
                                                            "'UNMATCHED'", 
                                                            "'UNNEST_INNERJ_DISTINCT_VIEW'", 
                                                            "'UNNEST_NOSEMIJ_NODISTINCTVIEW'", 
                                                            "'UNNEST_SEMIJ_VIEW'", 
                                                            "'UNNEST'", 
                                                            "'UNPACKED'", 
                                                            "'UNPIVOT'", 
                                                            "'UNPLUG'", 
                                                            "'UNPROTECTED'", 
                                                            "'UNQUIESCE'", 
                                                            "'UNRECOVERABLE'", 
                                                            "'UNRESTRICTED'", 
                                                            "'UNSUBSCRIBE'", 
                                                            "'UNTIL'", "'UNUSABLE'", 
                                                            "'UNUSED'", 
                                                            "'UPDATABLE'", 
                                                            "'UPDATED'", 
                                                            "'UPDATE'", 
                                                            "'UPDATEXML'", 
                                                            "'UPD_INDEXES'", 
                                                            "'UPD_JOININDEX'", 
                                                            "'UPGRADE'", 
                                                            "'UPPER'", "'UPSERT'", 
                                                            "'UROWID'", 
                                                            "'USABLE'", 
                                                            "'USAGE'", "'USE_ANTI'", 
                                                            "'USE_CONCAT'", 
                                                            "'USE_CUBE'", 
                                                            "'USE_HASH_AGGREGATION'", 
                                                            "'USE_HASH_GBY_FOR_PUSHDOWN'", 
                                                            "'USE_HASH'", 
                                                            "'USE_HIDDEN_PARTITIONS'", 
                                                            "'USE_INVISIBLE_INDEXES'", 
                                                            "'USE_MERGE_CARTESIAN'", 
                                                            "'USE_MERGE'", 
                                                            "'USE_NL'", 
                                                            "'USE_NL_WITH_INDEX'", 
                                                            "'USE_PRIVATE_OUTLINES'", 
                                                            "'USER_DATA'", 
                                                            "'USER_DEFINED'", 
                                                            "'USERENV'", 
                                                            "'USERGROUP'", 
                                                            "'USER_RECYCLEBIN'", 
                                                            "'USERS'", "'USER_TABLESPACES'", 
                                                            "'USER'", "'USE_SEMI'", 
                                                            "'USE_STORED_OUTLINES'", 
                                                            "'USE_TTT_FOR_GSETS'", 
                                                            "'USE'", "'USE_VECTOR_AGGREGATION'", 
                                                            "'USE_WEAK_NAME_RESL'", 
                                                            "'USING_NO_EXPAND'", 
                                                            "'USING'", "'UTF16BE'", 
                                                            "'UTF16LE'", 
                                                            "'UTF32'", "'UTF8'", 
                                                            "'V1'", "'V2'", 
                                                            "'VALIDATE'", 
                                                            "'VALIDATION'", 
                                                            "'VALID_TIME_END'", 
                                                            "'VALUES'", 
                                                            "'VALUE'", "'VARCHAR2'", 
                                                            "'VARCHAR'", 
                                                            "'VARIABLE'", 
                                                            "'VAR_POP'", 
                                                            "'VARRAYS'", 
                                                            "'VARRAY'", 
                                                            "'VAR_SAMP'", 
                                                            "'VARYING'", 
                                                            "'VECTOR_READ_TRACE'", 
                                                            "'VECTOR_READ'", 
                                                            "'VECTOR_TRANSFORM_DIMS'", 
                                                            "'VECTOR_TRANSFORM_FACT'", 
                                                            "'VECTOR_TRANSFORM'", 
                                                            "'VERIFIER'", 
                                                            "'VERIFY'", 
                                                            "'VERSIONING'", 
                                                            "'VERSIONS_ENDSCN'", 
                                                            "'VERSIONS_ENDTIME'", 
                                                            "'VERSIONS_OPERATION'", 
                                                            "'VERSIONS_STARTSCN'", 
                                                            "'VERSIONS_STARTTIME'", 
                                                            "'VERSIONS'", 
                                                            "'VERSIONS_XID'", 
                                                            "'VERSION'", 
                                                            "'VIEW'", "'VIOLATION'", 
                                                            "'VIRTUAL'", 
                                                            "'VISIBILITY'", 
                                                            "'VISIBLE'", 
                                                            "'VOLUME'", 
                                                            "'VSIZE'", "'WAIT'", 
                                                            "'WALLET'", 
                                                            "'WARNING'", 
                                                            "'WEEKS'", "'WEEK'", 
                                                            "'WELLFORMED'", 
                                                            "'WHENEVER'", 
                                                            "'WHEN'", "'WHERE'", 
                                                            "'WHILE'", "'WHITESPACE'", 
                                                            "'WIDTH_BUCKET'", 
                                                            "'WITHIN'", 
                                                            "'WITHOUT'", 
                                                            "'WITH_PLSQL'", 
                                                            "'WITH'", "'WORK'", 
                                                            "'WRAPPED'", 
                                                            "'WRAPPER'", 
                                                            "'WRITE'", "'XDB_FASTPATH_INSERT'", 
                                                            "'XDB'", "'X_DYN_PRUNE'", 
                                                            "'XID'", "'XML2OBJECT'", 
                                                            "'XMLAGG'", 
                                                            "'XMLATTRIBUTES'", 
                                                            "'XMLCAST'", 
                                                            "'XMLCDATA'", 
                                                            "'XMLCOLATTVAL'", 
                                                            "'XMLCOMMENT'", 
                                                            "'XMLCONCAT'", 
                                                            "'XMLDIFF'", 
                                                            "'XML_DML_RWT_STMT'", 
                                                            "'XMLELEMENT'", 
                                                            "'XMLEXISTS2'", 
                                                            "'XMLEXISTS'", 
                                                            "'XMLFOREST'", 
                                                            "'XMLINDEX'", 
                                                            "'XMLINDEX_REWRITE_IN_SELECT'", 
                                                            "'XMLINDEX_REWRITE'", 
                                                            "'XMLINDEX_SEL_IDX_TBL'", 
                                                            "'XMLISNODE'", 
                                                            "'XMLISVALID'", 
                                                            "'XMLNAMESPACES'", 
                                                            "'XMLPARSE'", 
                                                            "'XMLPATCH'", 
                                                            "'XMLPI'", "'XMLQUERYVAL'", 
                                                            "'XMLQUERY'", 
                                                            "'XMLROOT'", 
                                                            "'XMLSCHEMA'", 
                                                            "'XMLSERIALIZE'", 
                                                            "'XMLTABLE'", 
                                                            "'XMLTRANSFORMBLOB'", 
                                                            "'XMLTRANSFORM'", 
                                                            "'XMLTYPE'", 
                                                            "'XML'", "'XPATHTABLE'", 
                                                            "'XS_SYS_CONTEXT'", 
                                                            "'XS'", "'XTRANSPORT'", 
                                                            "'YEARS'", "'YEAR'", 
                                                            "'YES'", "'YMINTERVAL_UNCONSTRAINED'", 
                                                            "'ZONEMAP'", 
                                                            "'ZONE'", "'PREDICTION'", 
                                                            "'PREDICTION_BOUNDS'", 
                                                            "'PREDICTION_COST'", 
                                                            "'PREDICTION_DETAILS'", 
                                                            "'PREDICTION_PROBABILITY'", 
                                                            "'PREDICTION_SET'", 
                                                            "'CUME_DIST'", 
                                                            "'DENSE_RANK'", 
                                                            "'LISTAGG'", 
                                                            "'PERCENT_RANK'", 
                                                            "'PERCENTILE_CONT'", 
                                                            "'PERCENTILE_DISC'", 
                                                            "'RANK'", "'AVG'", 
                                                            "'CORR'", "'COVAR_'", 
                                                            "'DECODE'", 
                                                            "'LAG'", "'LEAD'", 
                                                            "'MAX'", "'MEDIAN'", 
                                                            "'MIN'", "'NTILE'", 
                                                            "'NVL'", "'RATIO_TO_REPORT'", 
                                                            "'REGR_'", "'ROUND'", 
                                                            "'ROW_NUMBER'", 
                                                            "'SUBSTR'", 
                                                            "'TO_CHAR'", 
                                                            "'TRIM'", "'SUM'", 
                                                            "'STDDEV'", 
                                                            "'VAR_'", "'VARIANCE'", 
                                                            "'LEAST'", "'GREATEST'", 
                                                            "'TO_DATE'", 
                                                            null, null, 
                                                            null, "'..'", 
                                                            "'.'", null, 
                                                            null, null, 
                                                            null, "'%'", 
                                                            "'&'", "'('", 
                                                            "')'", "'**'", 
                                                            "'*'", "'+'", 
                                                            "'-'", "','", 
                                                            "'/'", "'@'", 
                                                            "':='", null, 
                                                            null, "'^'", 
                                                            "'~'", "'!'", 
                                                            "'>'", "'<'", 
                                                            "':'", "';'", 
                                                            "'|'", "'='", 
                                                            "'['", "']'", 
                                                            "'_'" ];
	public static readonly symbolicNames: (string | null)[] = [ null, "ABORT", 
                                                             "ABS", "ACCESS", 
                                                             "ACCESSED", 
                                                             "ACCOUNT", 
                                                             "ACL", "ACOS", 
                                                             "ACTION", "ACTIONS", 
                                                             "ACTIVATE", 
                                                             "ACTIVE", "ACTIVE_COMPONENT", 
                                                             "ACTIVE_DATA", 
                                                             "ACTIVE_FUNCTION", 
                                                             "ACTIVE_TAG", 
                                                             "ACTIVITY", 
                                                             "ADAPTIVE_PLAN", 
                                                             "ADD", "ADD_COLUMN", 
                                                             "ADD_GROUP", 
                                                             "ADD_MONTHS", 
                                                             "ADJ_DATE", 
                                                             "ADMIN", "ADMINISTER", 
                                                             "ADMINISTRATOR", 
                                                             "ADVANCED", 
                                                             "ADVISE", "ADVISOR", 
                                                             "AFD_DISKSTRING", 
                                                             "AFTER", "AGENT", 
                                                             "AGGREGATE", 
                                                             "A_LETTER", 
                                                             "ALIAS", "ALL", 
                                                             "ALLOCATE", 
                                                             "ALLOW", "ALL_ROWS", 
                                                             "ALTER", "ALWAYS", 
                                                             "ANALYZE", 
                                                             "ANCILLARY", 
                                                             "AND", "AND_EQUAL", 
                                                             "ANOMALY", 
                                                             "ANSI_REARCH", 
                                                             "ANTIJOIN", 
                                                             "ANY", "ANYSCHEMA", 
                                                             "APPEND", "APPENDCHILDXML", 
                                                             "APPEND_VALUES", 
                                                             "APPLICATION", 
                                                             "APPLY", "APPROX_COUNT_DISTINCT", 
                                                             "ARCHIVAL", 
                                                             "ARCHIVE", 
                                                             "ARCHIVED", 
                                                             "ARCHIVELOG", 
                                                             "ARRAY", "AS", 
                                                             "ASC", "ASCII", 
                                                             "ASCIISTR", 
                                                             "ASIN", "ASIS", 
                                                             "ASSEMBLY", 
                                                             "ASSIGN", "ASSOCIATE", 
                                                             "ASYNC", "ASYNCHRONOUS", 
                                                             "ATAN2", "ATAN", 
                                                             "AT", "ATTRIBUTE", 
                                                             "ATTRIBUTES", 
                                                             "AUDIT", "AUTHENTICATED", 
                                                             "AUTHENTICATION", 
                                                             "AUTHID", "AUTHORIZATION", 
                                                             "AUTOALLOCATE", 
                                                             "AUTO", "AUTOBACKUP", 
                                                             "AUTOEXTEND", 
                                                             "AUTO_LOGIN", 
                                                             "AUTOMATIC", 
                                                             "AUTONOMOUS_TRANSACTION", 
                                                             "AUTO_REOPTIMIZE", 
                                                             "AVAILABILITY", 
                                                             "AVRO", "BACKGROUND", 
                                                             "BACKUP", "BACKUPSET", 
                                                             "BASIC", "BASICFILE", 
                                                             "BATCH", "BATCHSIZE", 
                                                             "BATCH_TABLE_ACCESS_BY_ROWID", 
                                                             "BECOME", "BEFORE", 
                                                             "BEGIN", "BEGINNING", 
                                                             "BEGIN_OUTLINE_DATA", 
                                                             "BEHALF", "BEQUEATH", 
                                                             "BETWEEN", 
                                                             "BFILE", "BFILENAME", 
                                                             "BIGFILE", 
                                                             "BINARY", "BINARY_DOUBLE", 
                                                             "BINARY_DOUBLE_INFINITY", 
                                                             "BINARY_DOUBLE_NAN", 
                                                             "BINARY_FLOAT", 
                                                             "BINARY_FLOAT_INFINITY", 
                                                             "BINARY_FLOAT_NAN", 
                                                             "BINARY_INTEGER", 
                                                             "BIND_AWARE", 
                                                             "BINDING", 
                                                             "BIN_TO_NUM", 
                                                             "BITAND", "BITMAP_AND", 
                                                             "BITMAP", "BITMAPS", 
                                                             "BITMAP_TREE", 
                                                             "BITS", "BLOB", 
                                                             "BLOCK", "BLOCK_RANGE", 
                                                             "BLOCKS", "BLOCKSIZE", 
                                                             "BODY", "BOOLEAN", 
                                                             "BOTH", "BOUND", 
                                                             "BRANCH", "BREADTH", 
                                                             "BROADCAST", 
                                                             "BSON", "BUFFER", 
                                                             "BUFFER_CACHE", 
                                                             "BUFFER_POOL", 
                                                             "BUILD", "BULK", 
                                                             "BY", "BYPASS_RECURSIVE_CHECK", 
                                                             "BYPASS_UJVC", 
                                                             "BYTE", "CACHE", 
                                                             "CACHE_CB", 
                                                             "CACHE_INSTANCES", 
                                                             "CACHE_TEMP_TABLE", 
                                                             "CACHING", 
                                                             "CALCULATED", 
                                                             "CALLBACK", 
                                                             "CALL", "CANCEL", 
                                                             "CANONICAL", 
                                                             "CAPACITY", 
                                                             "CARDINALITY", 
                                                             "CASCADE", 
                                                             "CASE", "CAST", 
                                                             "CATEGORY", 
                                                             "CDBDEFAULT", 
                                                             "CEIL", "CELL_FLASH_CACHE", 
                                                             "CERTIFICATE", 
                                                             "CFILE", "CHAINED", 
                                                             "CHANGE", "CHANGETRACKING", 
                                                             "CHANGE_DUPKEY_ERROR_INDEX", 
                                                             "CHARACTER", 
                                                             "CHAR", "CHAR_CS", 
                                                             "CHARTOROWID", 
                                                             "CHECK_ACL_REWRITE", 
                                                             "CHECK", "CHECKPOINT", 
                                                             "CHILD", "CHOOSE", 
                                                             "CHR", "CHUNK", 
                                                             "CLASS", "CLASSIFIER", 
                                                             "CLEANUP", 
                                                             "CLEAR", "C_LETTER", 
                                                             "CLIENT", "CLOB", 
                                                             "CLONE", "CLOSE_CACHED_OPEN_CURSORS", 
                                                             "CLOSE", "CLUSTER_BY_ROWID", 
                                                             "CLUSTER", 
                                                             "CLUSTER_DETAILS", 
                                                             "CLUSTER_DISTANCE", 
                                                             "CLUSTER_ID", 
                                                             "CLUSTERING", 
                                                             "CLUSTERING_FACTOR", 
                                                             "CLUSTER_PROBABILITY", 
                                                             "CLUSTER_SET", 
                                                             "COALESCE", 
                                                             "COALESCE_SQ", 
                                                             "COARSE", "CO_AUTH_IND", 
                                                             "COLD", "COLLECT", 
                                                             "COLUMNAR", 
                                                             "COLUMN_AUTH_INDICATOR", 
                                                             "COLUMN", "COLUMNS", 
                                                             "COLUMN_STATS", 
                                                             "COLUMN_VALUE", 
                                                             "COMMENT", 
                                                             "COMMIT", "COMMITTED", 
                                                             "COMMON_DATA", 
                                                             "COMPACT", 
                                                             "COMPATIBILITY", 
                                                             "COMPILE", 
                                                             "COMPLETE", 
                                                             "COMPLIANCE", 
                                                             "COMPONENT", 
                                                             "COMPONENTS", 
                                                             "COMPOSE", 
                                                             "COMPOSITE", 
                                                             "COMPOSITE_LIMIT", 
                                                             "COMPOUND", 
                                                             "COMPRESS", 
                                                             "COMPUTE", 
                                                             "CONCAT", "CON_DBID_TO_ID", 
                                                             "CONDITIONAL", 
                                                             "CONDITION", 
                                                             "CONFIRM", 
                                                             "CONFORMING", 
                                                             "CON_GUID_TO_ID", 
                                                             "CON_ID", "CON_NAME_TO_ID", 
                                                             "CONNECT_BY_CB_WHR_ONLY", 
                                                             "CONNECT_BY_COMBINE_SW", 
                                                             "CONNECT_BY_COST_BASED", 
                                                             "CONNECT_BY_ELIM_DUPS", 
                                                             "CONNECT_BY_FILTERING", 
                                                             "CONNECT_BY_ISCYCLE", 
                                                             "CONNECT_BY_ISLEAF", 
                                                             "CONNECT_BY_ROOT", 
                                                             "CONNECT", 
                                                             "CONNECT_TIME", 
                                                             "CONSIDER", 
                                                             "CONSISTENT", 
                                                             "CONSTANT", 
                                                             "CONST", "CONSTRAINT", 
                                                             "CONSTRAINTS", 
                                                             "CONSTRUCTOR", 
                                                             "CONTAINER", 
                                                             "CONTAINER_DATA", 
                                                             "CONTAINERS", 
                                                             "CONTENT", 
                                                             "CONTENTS", 
                                                             "CONTEXT", 
                                                             "CONTINUE", 
                                                             "CONTROLFILE", 
                                                             "CON_UID_TO_ID", 
                                                             "CONVERT", 
                                                             "COOKIE", "COPY", 
                                                             "CORR_K", "CORR_S", 
                                                             "CORRUPTION", 
                                                             "CORRUPT_XID_ALL", 
                                                             "CORRUPT_XID", 
                                                             "COS", "COSH", 
                                                             "COST", "COST_XML_QUERY_REWRITE", 
                                                             "COUNT", "COVAR_POP", 
                                                             "COVAR_SAMP", 
                                                             "CPU_COSTING", 
                                                             "CPU_PER_CALL", 
                                                             "CPU_PER_SESSION", 
                                                             "CRASH", "CREATE", 
                                                             "CREATE_FILE_DEST", 
                                                             "CREATE_STORED_OUTLINES", 
                                                             "CREATION", 
                                                             "CREDENTIAL", 
                                                             "CRITICAL", 
                                                             "CROSS", "CROSSEDITION", 
                                                             "CSCONVERT", 
                                                             "CUBE_AJ", 
                                                             "CUBE", "CUBE_GB", 
                                                             "CUBE_SJ", 
                                                             "CUME_DISTM", 
                                                             "CURRENT", 
                                                             "CURRENT_DATE", 
                                                             "CURRENT_SCHEMA", 
                                                             "CURRENT_TIME", 
                                                             "CURRENT_TIMESTAMP", 
                                                             "CURRENT_USER", 
                                                             "CURRENTV", 
                                                             "CURSOR", "CURSOR_SHARING_EXACT", 
                                                             "CURSOR_SPECIFIC_SEGMENT", 
                                                             "CUSTOMDATUM", 
                                                             "CV", "CYCLE", 
                                                             "DANGLING", 
                                                             "DATABASE", 
                                                             "DATA", "DATAFILE", 
                                                             "DATAFILES", 
                                                             "DATAGUARDCONFIG", 
                                                             "DATAMOVEMENT", 
                                                             "DATAOBJNO", 
                                                             "DATAOBJ_TO_MAT_PARTITION", 
                                                             "DATAOBJ_TO_PARTITION", 
                                                             "DATAPUMP", 
                                                             "DATA_SECURITY_REWRITE_LIMIT", 
                                                             "DATE", "DATE_MODE", 
                                                             "DAY", "DAYS", 
                                                             "DBA", "DBA_RECYCLEBIN", 
                                                             "DBMS_STATS", 
                                                             "DB_ROLE_CHANGE", 
                                                             "DBTIMEZONE", 
                                                             "DB_UNIQUE_NAME", 
                                                             "DB_VERSION", 
                                                             "DDL", "DEALLOCATE", 
                                                             "DEBUG", "DEBUGGER", 
                                                             "DEC", "DECIMAL", 
                                                             "DECLARE", 
                                                             "DECOMPOSE", 
                                                             "DECORRELATE", 
                                                             "DECR", "DECREMENT", 
                                                             "DECRYPT", 
                                                             "DEDUPLICATE", 
                                                             "DEFAULT", 
                                                             "DEFAULTS", 
                                                             "DEFERRABLE", 
                                                             "DEFERRED", 
                                                             "DEFINED", 
                                                             "DEFINE", "DEFINER", 
                                                             "DEGREE", "DELAY", 
                                                             "DELEGATE", 
                                                             "DELETE_ALL", 
                                                             "DELETE", "DELETEXML", 
                                                             "DEMAND", "DENSE_RANKM", 
                                                             "DEPENDENT", 
                                                             "DEPTH", "DEQUEUE", 
                                                             "DEREF", "DEREF_NO_REWRITE", 
                                                             "DESC", "DESTROY", 
                                                             "DETACHED", 
                                                             "DETERMINES", 
                                                             "DETERMINISTIC", 
                                                             "DICTIONARY", 
                                                             "DIMENSION", 
                                                             "DIMENSIONS", 
                                                             "DIRECT_LOAD", 
                                                             "DIRECTORY", 
                                                             "DIRECT_PATH", 
                                                             "DISABLE_ALL", 
                                                             "DISABLE", 
                                                             "DISABLE_PARALLEL_DML", 
                                                             "DISABLE_PRESET", 
                                                             "DISABLE_RPKE", 
                                                             "DISALLOW", 
                                                             "DISASSOCIATE", 
                                                             "DISCARD", 
                                                             "DISCONNECT", 
                                                             "DISK", "DISKGROUP", 
                                                             "DISKGROUP_PLUS", 
                                                             "DISKS", "DISMOUNT", 
                                                             "DISTINCT", 
                                                             "DISTINGUISHED", 
                                                             "DISTRIBUTED", 
                                                             "DISTRIBUTE", 
                                                             "DML", "DML_UPDATE", 
                                                             "DOCFIDELITY", 
                                                             "DOCUMENT", 
                                                             "DOMAIN_INDEX_FILTER", 
                                                             "DOMAIN_INDEX_NO_SORT", 
                                                             "DOMAIN_INDEX_SORT", 
                                                             "DOUBLE", "DOWNGRADE", 
                                                             "DRIVING_SITE", 
                                                             "DROP_COLUMN", 
                                                             "DROP", "DROP_GROUP", 
                                                             "DSINTERVAL_UNCONSTRAINED", 
                                                             "DST_UPGRADE_INSERT_CONV", 
                                                             "DUMP", "DUMPSET", 
                                                             "DUPLICATE", 
                                                             "DV", "DYNAMIC", 
                                                             "DYNAMIC_SAMPLING", 
                                                             "DYNAMIC_SAMPLING_EST_CDN", 
                                                             "EACH", "EDITIONABLE", 
                                                             "EDITION", 
                                                             "EDITIONING", 
                                                             "EDITIONS", 
                                                             "ELEMENT", 
                                                             "ELIM_GROUPBY", 
                                                             "ELIMINATE_JOIN", 
                                                             "ELIMINATE_OBY", 
                                                             "ELIMINATE_OUTER_JOIN", 
                                                             "ELSE", "ELSIF", 
                                                             "EM", "EMPTY_BLOB", 
                                                             "EMPTY_CLOB", 
                                                             "EMPTY", "ENABLE_ALL", 
                                                             "ENABLE", "ENABLE_PARALLEL_DML", 
                                                             "ENABLE_PRESET", 
                                                             "ENCODING", 
                                                             "ENCRYPT", 
                                                             "ENCRYPTION", 
                                                             "END", "END_OUTLINE_DATA", 
                                                             "ENFORCED", 
                                                             "ENFORCE", 
                                                             "ENQUEUE", 
                                                             "ENTERPRISE", 
                                                             "ENTITYESCAPING", 
                                                             "ENTRY", "EQUIPART", 
                                                             "ERR", "ERROR_ARGUMENT", 
                                                             "ERROR", "ERROR_ON_OVERLAP_TIME", 
                                                             "ERRORS", "ESCAPE", 
                                                             "ESTIMATE", 
                                                             "EVAL", "EVALNAME", 
                                                             "EVALUATE", 
                                                             "EVALUATION", 
                                                             "EVENTS", "EVERY", 
                                                             "EXCEPT", "EXCEPTION", 
                                                             "EXCEPTION_INIT", 
                                                             "EXCEPTIONS", 
                                                             "EXCHANGE", 
                                                             "EXCLUDE", 
                                                             "EXCLUDING", 
                                                             "EXCLUSIVE", 
                                                             "EXECUTE", 
                                                             "EXEMPT", "EXISTING", 
                                                             "EXISTS", "EXISTSNODE", 
                                                             "EXIT", "EXPAND_GSET_TO_UNION", 
                                                             "EXPAND_TABLE", 
                                                             "EXP", "EXPIRE", 
                                                             "EXPLAIN", 
                                                             "EXPLOSION", 
                                                             "EXPORT", "EXPR_CORR_CHECK", 
                                                             "EXPRESS", 
                                                             "EXTENDS", 
                                                             "EXTENT", "EXTENTS", 
                                                             "EXTERNAL", 
                                                             "EXTERNALLY", 
                                                             "EXTRACTCLOBXML", 
                                                             "EXTRACT", 
                                                             "EXTRACTVALUE", 
                                                             "EXTRA", "FACILITY", 
                                                             "FACT", "FACTOR", 
                                                             "FACTORIZE_JOIN", 
                                                             "FAILED", "FAILED_LOGIN_ATTEMPTS", 
                                                             "FAILGROUP", 
                                                             "FAILOVER", 
                                                             "FAILURE", 
                                                             "FALSE", "FAMILY", 
                                                             "FAR", "FAST", 
                                                             "FASTSTART", 
                                                             "FBTSCAN", 
                                                             "FEATURE_DETAILS", 
                                                             "FEATURE_ID", 
                                                             "FEATURE_SET", 
                                                             "FEATURE_VALUE", 
                                                             "FETCH", "FILE", 
                                                             "FILE_NAME_CONVERT", 
                                                             "FILESYSTEM_LIKE_LOGGING", 
                                                             "FILTER", "FINAL", 
                                                             "FINE", "FINISH", 
                                                             "FIRST", "FIRSTM", 
                                                             "FIRST_ROWS", 
                                                             "FIRST_VALUE", 
                                                             "FIXED_VIEW_DATA", 
                                                             "FLAGGER", 
                                                             "FLASHBACK", 
                                                             "FLASH_CACHE", 
                                                             "FLOAT", "FLOB", 
                                                             "FLOOR", "FLUSH", 
                                                             "FOLDER", "FOLLOWING", 
                                                             "FOLLOWS", 
                                                             "FORALL", "FORCE", 
                                                             "FORCE_XML_QUERY_REWRITE", 
                                                             "FOREIGN", 
                                                             "FOREVER", 
                                                             "FOR", "FORMAT", 
                                                             "FORWARD", 
                                                             "FRAGMENT_NUMBER", 
                                                             "FREELIST", 
                                                             "FREELISTS", 
                                                             "FREEPOOLS", 
                                                             "FRESH", "FROM", 
                                                             "FROM_TZ", 
                                                             "FULL", "FULL_OUTER_JOIN_TO_OUTER", 
                                                             "FUNCTION", 
                                                             "FUNCTIONS", 
                                                             "GATHER_OPTIMIZER_STATISTICS", 
                                                             "GATHER_PLAN_STATISTICS", 
                                                             "GBY_CONC_ROLLUP", 
                                                             "GBY_PUSHDOWN", 
                                                             "GENERATED", 
                                                             "GET", "GLOBAL", 
                                                             "GLOBALLY", 
                                                             "GLOBAL_NAME", 
                                                             "GLOBAL_TOPIC_ENABLED", 
                                                             "GOTO", "GRANT", 
                                                             "GROUP_BY", 
                                                             "GROUP", "GROUP_ID", 
                                                             "GROUPING", 
                                                             "GROUPING_ID", 
                                                             "GROUPS", "GUARANTEED", 
                                                             "GUARANTEE", 
                                                             "GUARD", "HASH_AJ", 
                                                             "HASH", "HASHKEYS", 
                                                             "HASH_SJ", 
                                                             "HAVING", "HEADER", 
                                                             "HEAP", "HELP", 
                                                             "HEXTORAW", 
                                                             "HEXTOREF", 
                                                             "HIDDEN_KEYWORD", 
                                                             "HIDE", "HIERARCHY", 
                                                             "HIGH", "HINTSET_BEGIN", 
                                                             "HINTSET_END", 
                                                             "HOT", "HOUR", 
                                                             "HWM_BROKERED", 
                                                             "HYBRID", "IDENTIFIED", 
                                                             "IDENTIFIER", 
                                                             "IDENTITY", 
                                                             "IDGENERATORS", 
                                                             "ID", "IDLE_TIME", 
                                                             "IF", "IGNORE", 
                                                             "IGNORE_OPTIM_EMBEDDED_HINTS", 
                                                             "IGNORE_ROW_ON_DUPKEY_INDEX", 
                                                             "IGNORE_WHERE_CLAUSE", 
                                                             "ILM", "IMMEDIATE", 
                                                             "IMPACT", "IMPORT", 
                                                             "INACTIVE", 
                                                             "INCLUDE", 
                                                             "INCLUDE_VERSION", 
                                                             "INCLUDING", 
                                                             "INCREMENTAL", 
                                                             "INCREMENT", 
                                                             "INCR", "INDENT", 
                                                             "INDEX_ASC", 
                                                             "INDEX_COMBINE", 
                                                             "INDEX_DESC", 
                                                             "INDEXED", 
                                                             "INDEXES", 
                                                             "INDEX_FFS", 
                                                             "INDEX_FILTER", 
                                                             "INDEX", "INDEXING", 
                                                             "INDEX_JOIN", 
                                                             "INDEX_ROWS", 
                                                             "INDEX_RRS", 
                                                             "INDEX_RS_ASC", 
                                                             "INDEX_RS_DESC", 
                                                             "INDEX_RS", 
                                                             "INDEX_SCAN", 
                                                             "INDEX_SKIP_SCAN", 
                                                             "INDEX_SS_ASC", 
                                                             "INDEX_SS_DESC", 
                                                             "INDEX_SS", 
                                                             "INDEX_STATS", 
                                                             "INDEXTYPE", 
                                                             "INDEXTYPES", 
                                                             "INDICATOR", 
                                                             "INDICES", 
                                                             "INFINITE", 
                                                             "INFORMATIONAL", 
                                                             "INHERIT", 
                                                             "IN", "INITCAP", 
                                                             "INITIAL", 
                                                             "INITIALIZED", 
                                                             "INITIALLY", 
                                                             "INITRANS", 
                                                             "INLINE", "INLINE_XMLTYPE_NT", 
                                                             "INMEMORY", 
                                                             "IN_MEMORY_METADATA", 
                                                             "INMEMORY_PRUNING", 
                                                             "INNER", "INOUT", 
                                                             "INPLACE", 
                                                             "INSERTCHILDXMLAFTER", 
                                                             "INSERTCHILDXMLBEFORE", 
                                                             "INSERTCHILDXML", 
                                                             "INSERT", "INSERTXMLAFTER", 
                                                             "INSERTXMLBEFORE", 
                                                             "INSTANCE", 
                                                             "INSTANCES", 
                                                             "INSTANTIABLE", 
                                                             "INSTANTLY", 
                                                             "INSTEAD", 
                                                             "INSTR2", "INSTR4", 
                                                             "INSTRB", "INSTRC", 
                                                             "INSTR", "INTEGER", 
                                                             "INTERLEAVED", 
                                                             "INTERMEDIATE", 
                                                             "INTERNAL_CONVERT", 
                                                             "INTERNAL_USE", 
                                                             "INTERPRETED", 
                                                             "INTERSECT", 
                                                             "INTERVAL", 
                                                             "INT", "INTO", 
                                                             "INVALIDATE", 
                                                             "INVISIBLE", 
                                                             "IN_XQUERY", 
                                                             "IS", "ISOLATION", 
                                                             "ISOLATION_LEVEL", 
                                                             "ITERATE", 
                                                             "ITERATION_NUMBER", 
                                                             "JAVA", "JOB", 
                                                             "JOIN", "JSON_ARRAYAGG", 
                                                             "JSON_ARRAY", 
                                                             "JSON_EQUAL", 
                                                             "JSON_EXISTS2", 
                                                             "JSON_EXISTS", 
                                                             "JSONGET", 
                                                             "JSON", "JSON_OBJECTAGG", 
                                                             "JSON_OBJECT", 
                                                             "JSONPARSE", 
                                                             "JSON_QUERY", 
                                                             "JSON_SERIALIZE", 
                                                             "JSON_TABLE", 
                                                             "JSON_TEXTCONTAINS2", 
                                                             "JSON_TEXTCONTAINS", 
                                                             "JSON_VALUE", 
                                                             "KEEP_DUPLICATES", 
                                                             "KEEP", "KERBEROS", 
                                                             "KEY", "KEY_LENGTH", 
                                                             "KEYSIZE", 
                                                             "KEYS", "KEYSTORE", 
                                                             "KILL", "LABEL", 
                                                             "LANGUAGE", 
                                                             "LAST_DAY", 
                                                             "LAST", "LAST_VALUE", 
                                                             "LATERAL", 
                                                             "LAX", "LAYER", 
                                                             "LDAP_REGISTRATION_ENABLED", 
                                                             "LDAP_REGISTRATION", 
                                                             "LDAP_REG_SYNC_INTERVAL", 
                                                             "LEADING", 
                                                             "LEFT", "LENGTH2", 
                                                             "LENGTH4", 
                                                             "LENGTHB", 
                                                             "LENGTHC", 
                                                             "LENGTH", "LESS", 
                                                             "LEVEL", "LEVELS", 
                                                             "LIBRARY", 
                                                             "LIFECYCLE", 
                                                             "LIFE", "LIFETIME", 
                                                             "LIKE2", "LIKE4", 
                                                             "LIKEC", "LIKE_EXPAND", 
                                                             "LIKE", "LIMIT", 
                                                             "LINEAR", "LINK", 
                                                             "LIST", "LN", 
                                                             "LNNVL", "LOAD", 
                                                             "LOB", "LOBNVL", 
                                                             "LOBS", "LOCAL_INDEXES", 
                                                             "LOCAL", "LOCALTIME", 
                                                             "LOCALTIMESTAMP", 
                                                             "LOCATION", 
                                                             "LOCATOR", 
                                                             "LOCKED", "LOCKING", 
                                                             "LOCK", "LOGFILE", 
                                                             "LOGFILES", 
                                                             "LOGGING", 
                                                             "LOGICAL", 
                                                             "LOGICAL_READS_PER_CALL", 
                                                             "LOGICAL_READS_PER_SESSION", 
                                                             "LOG", "LOGMINING", 
                                                             "LOGOFF", "LOGON", 
                                                             "LOG_READ_ONLY_VIOLATIONS", 
                                                             "LONG", "LOOP", 
                                                             "LOWER", "LOW", 
                                                             "LPAD", "LTRIM", 
                                                             "MAIN", "MAKE_REF", 
                                                             "MANAGED", 
                                                             "MANAGE", "MANAGEMENT", 
                                                             "MANAGER", 
                                                             "MANUAL", "MAP", 
                                                             "MAPPING", 
                                                             "MASTER", "MATCHED", 
                                                             "MATCHES", 
                                                             "MATCH", "MATCH_NUMBER", 
                                                             "MATCH_RECOGNIZE", 
                                                             "MATERIALIZED", 
                                                             "MATERIALIZE", 
                                                             "MAXARCHLOGS", 
                                                             "MAXDATAFILES", 
                                                             "MAXEXTENTS", 
                                                             "MAXIMIZE", 
                                                             "MAXINSTANCES", 
                                                             "MAXLOGFILES", 
                                                             "MAXLOGHISTORY", 
                                                             "MAXLOGMEMBERS", 
                                                             "MAX_SHARED_TEMP_SIZE", 
                                                             "MAXSIZE", 
                                                             "MAXTRANS", 
                                                             "MAXVALUE", 
                                                             "MEASURE", 
                                                             "MEASURES", 
                                                             "MEDIUM", "MEMBER", 
                                                             "MEMCOMPRESS", 
                                                             "MEMORY", "MERGEACTIONS", 
                                                             "MERGE_AJ", 
                                                             "MERGE_CONST_ON", 
                                                             "MERGE", "MERGE_SJ", 
                                                             "METADATA", 
                                                             "METHOD", "MIGRATE", 
                                                             "MIGRATION", 
                                                             "MINEXTENTS", 
                                                             "MINIMIZE", 
                                                             "MINIMUM", 
                                                             "MINING", "MINUS", 
                                                             "MINUS_NULL", 
                                                             "MINUTE", "MINVALUE", 
                                                             "MIRRORCOLD", 
                                                             "MIRRORHOT", 
                                                             "MIRROR", "MLSLABEL", 
                                                             "MODEL_COMPILE_SUBQUERY", 
                                                             "MODEL_DONTVERIFY_UNIQUENESS", 
                                                             "MODEL_DYNAMIC_SUBQUERY", 
                                                             "MODEL_MIN_ANALYSIS", 
                                                             "MODEL", "MODEL_NB", 
                                                             "MODEL_NO_ANALYSIS", 
                                                             "MODEL_PBY", 
                                                             "MODEL_PUSH_REF", 
                                                             "MODEL_SV", 
                                                             "MODE", "MODIFICATION", 
                                                             "MODIFY_COLUMN_TYPE", 
                                                             "MODIFY", "MOD", 
                                                             "MODULE", "MONITORING", 
                                                             "MONITOR", 
                                                             "MONTH", "MONTHS_BETWEEN", 
                                                             "MONTHS", "MOUNT", 
                                                             "MOUNTPATH", 
                                                             "MOVEMENT", 
                                                             "MOVE", "MULTIDIMENSIONAL", 
                                                             "MULTISET", 
                                                             "MV_MERGE", 
                                                             "NAMED", "NAME", 
                                                             "NAMESPACE", 
                                                             "NAN", "NANVL", 
                                                             "NATIONAL", 
                                                             "NATIVE_FULL_OUTER_JOIN", 
                                                             "NATIVE", "NATURAL", 
                                                             "NATURALN", 
                                                             "NAV", "NCHAR_CS", 
                                                             "NCHAR", "NCHR", 
                                                             "NCLOB", "NEEDED", 
                                                             "NEG", "NESTED", 
                                                             "NESTED_TABLE_FAST_INSERT", 
                                                             "NESTED_TABLE_GET_REFS", 
                                                             "NESTED_TABLE_ID", 
                                                             "NESTED_TABLE_SET_REFS", 
                                                             "NESTED_TABLE_SET_SETID", 
                                                             "NETWORK", 
                                                             "NEVER", "NEW", 
                                                             "NEW_TIME", 
                                                             "NEXT_DAY", 
                                                             "NEXT", "NL_AJ", 
                                                             "NLJ_BATCHING", 
                                                             "NLJ_INDEX_FILTER", 
                                                             "NLJ_INDEX_SCAN", 
                                                             "NLJ_PREFETCH", 
                                                             "NLS_CALENDAR", 
                                                             "NLS_CHARACTERSET", 
                                                             "NLS_CHARSET_DECL_LEN", 
                                                             "NLS_CHARSET_ID", 
                                                             "NLS_CHARSET_NAME", 
                                                             "NLS_COMP", 
                                                             "NLS_CURRENCY", 
                                                             "NLS_DATE_FORMAT", 
                                                             "NLS_DATE_LANGUAGE", 
                                                             "NLS_INITCAP", 
                                                             "NLS_ISO_CURRENCY", 
                                                             "NL_SJ", "NLS_LANG", 
                                                             "NLS_LANGUAGE", 
                                                             "NLS_LENGTH_SEMANTICS", 
                                                             "NLS_LOWER", 
                                                             "NLS_NCHAR_CONV_EXCP", 
                                                             "NLS_NUMERIC_CHARACTERS", 
                                                             "NLS_SORT", 
                                                             "NLSSORT", 
                                                             "NLS_SPECIAL_CHARS", 
                                                             "NLS_TERRITORY", 
                                                             "NLS_UPPER", 
                                                             "NO_ACCESS", 
                                                             "NO_ADAPTIVE_PLAN", 
                                                             "NO_ANSI_REARCH", 
                                                             "NOAPPEND", 
                                                             "NOARCHIVELOG", 
                                                             "NOAUDIT", 
                                                             "NO_AUTO_REOPTIMIZE", 
                                                             "NO_BASETABLE_MULTIMV_REWRITE", 
                                                             "NO_BATCH_TABLE_ACCESS_BY_ROWID", 
                                                             "NO_BIND_AWARE", 
                                                             "NO_BUFFER", 
                                                             "NOCACHE", 
                                                             "NO_CARTESIAN", 
                                                             "NO_CHECK_ACL_REWRITE", 
                                                             "NO_CLUSTER_BY_ROWID", 
                                                             "NO_CLUSTERING", 
                                                             "NO_COALESCE_SQ", 
                                                             "NO_COMMON_DATA", 
                                                             "NOCOMPRESS", 
                                                             "NO_CONNECT_BY_CB_WHR_ONLY", 
                                                             "NO_CONNECT_BY_COMBINE_SW", 
                                                             "NO_CONNECT_BY_COST_BASED", 
                                                             "NO_CONNECT_BY_ELIM_DUPS", 
                                                             "NO_CONNECT_BY_FILTERING", 
                                                             "NOCOPY", "NO_COST_XML_QUERY_REWRITE", 
                                                             "NO_CPU_COSTING", 
                                                             "NOCPU_COSTING", 
                                                             "NOCYCLE", 
                                                             "NO_DATA_SECURITY_REWRITE", 
                                                             "NO_DECORRELATE", 
                                                             "NODELAY", 
                                                             "NO_DOMAIN_INDEX_FILTER", 
                                                             "NO_DST_UPGRADE_INSERT_CONV", 
                                                             "NO_ELIM_GROUPBY", 
                                                             "NO_ELIMINATE_JOIN", 
                                                             "NO_ELIMINATE_OBY", 
                                                             "NO_ELIMINATE_OUTER_JOIN", 
                                                             "NOENTITYESCAPING", 
                                                             "NO_EXPAND_GSET_TO_UNION", 
                                                             "NO_EXPAND", 
                                                             "NO_EXPAND_TABLE", 
                                                             "NO_FACT", 
                                                             "NO_FACTORIZE_JOIN", 
                                                             "NO_FILTERING", 
                                                             "NOFORCE", 
                                                             "NO_FULL_OUTER_JOIN_TO_OUTER", 
                                                             "NO_GATHER_OPTIMIZER_STATISTICS", 
                                                             "NO_GBY_PUSHDOWN", 
                                                             "NOGUARANTEE", 
                                                             "NO_INDEX_FFS", 
                                                             "NO_INDEX", 
                                                             "NO_INDEX_SS", 
                                                             "NO_INMEMORY", 
                                                             "NO_INMEMORY_PRUNING", 
                                                             "NOKEEP", "NO_LOAD", 
                                                             "NOLOCAL", 
                                                             "NOLOGGING", 
                                                             "NOMAPPING", 
                                                             "NOMAXVALUE", 
                                                             "NO_MERGE", 
                                                             "NOMINIMIZE", 
                                                             "NOMINVALUE", 
                                                             "NO_MODEL_PUSH_REF", 
                                                             "NO_MONITORING", 
                                                             "NOMONITORING", 
                                                             "NO_MONITOR", 
                                                             "NO_MULTIMV_REWRITE", 
                                                             "NO_NATIVE_FULL_OUTER_JOIN", 
                                                             "NONBLOCKING", 
                                                             "NONEDITIONABLE", 
                                                             "NONE", "NO_NLJ_BATCHING", 
                                                             "NO_NLJ_PREFETCH", 
                                                             "NO", "NONSCHEMA", 
                                                             "NO_OBJECT_LINK", 
                                                             "NOORDER", 
                                                             "NO_ORDER_ROLLUPS", 
                                                             "NO_OUTER_JOIN_TO_ANTI", 
                                                             "NO_OUTER_JOIN_TO_INNER", 
                                                             "NOOVERRIDE", 
                                                             "NO_PARALLEL_INDEX", 
                                                             "NOPARALLEL_INDEX", 
                                                             "NO_PARALLEL", 
                                                             "NOPARALLEL", 
                                                             "NO_PARTIAL_COMMIT", 
                                                             "NO_PARTIAL_JOIN", 
                                                             "NO_PARTIAL_ROLLUP_PUSHDOWN", 
                                                             "NOPARTITION", 
                                                             "NO_PLACE_DISTINCT", 
                                                             "NO_PLACE_GROUP_BY", 
                                                             "NO_PQ_CONCURRENT_UNION", 
                                                             "NO_PQ_MAP", 
                                                             "NO_PQ_REPLICATE", 
                                                             "NO_PQ_SKEW", 
                                                             "NO_PRUNE_GSETS", 
                                                             "NO_PULL_PRED", 
                                                             "NO_PUSH_PRED", 
                                                             "NO_PUSH_SUBQ", 
                                                             "NO_PX_FAULT_TOLERANCE", 
                                                             "NO_PX_JOIN_FILTER", 
                                                             "NO_QKN_BUFF", 
                                                             "NO_QUERY_TRANSFORMATION", 
                                                             "NO_REF_CASCADE", 
                                                             "NORELOCATE", 
                                                             "NORELY", "NOREPAIR", 
                                                             "NOREPLAY", 
                                                             "NORESETLOGS", 
                                                             "NO_RESULT_CACHE", 
                                                             "NOREVERSE", 
                                                             "NO_REWRITE", 
                                                             "NOREWRITE", 
                                                             "NORMAL", "NO_ROOT_SW_FOR_LOCAL", 
                                                             "NOROWDEPENDENCIES", 
                                                             "NOSCHEMACHECK", 
                                                             "NOSEGMENT", 
                                                             "NO_SEMIJOIN", 
                                                             "NO_SEMI_TO_INNER", 
                                                             "NO_SET_TO_JOIN", 
                                                             "NOSORT", "NO_SQL_TRANSLATION", 
                                                             "NO_SQL_TUNE", 
                                                             "NO_STAR_TRANSFORMATION", 
                                                             "NO_STATEMENT_QUEUING", 
                                                             "NO_STATS_GSETS", 
                                                             "NOSTRICT", 
                                                             "NO_SUBQUERY_PRUNING", 
                                                             "NO_SUBSTRB_PAD", 
                                                             "NO_SWAP_JOIN_INPUTS", 
                                                             "NOSWITCH", 
                                                             "NO_TABLE_LOOKUP_BY_NL", 
                                                             "NO_TEMP_TABLE", 
                                                             "NOTHING", 
                                                             "NOTIFICATION", 
                                                             "NOT", "NO_TRANSFORM_DISTINCT_AGG", 
                                                             "NO_UNNEST", 
                                                             "NO_USE_CUBE", 
                                                             "NO_USE_HASH_AGGREGATION", 
                                                             "NO_USE_HASH_GBY_FOR_PUSHDOWN", 
                                                             "NO_USE_HASH", 
                                                             "NO_USE_INVISIBLE_INDEXES", 
                                                             "NO_USE_MERGE", 
                                                             "NO_USE_NL", 
                                                             "NO_USE_VECTOR_AGGREGATION", 
                                                             "NOVALIDATE", 
                                                             "NO_VECTOR_TRANSFORM_DIMS", 
                                                             "NO_VECTOR_TRANSFORM_FACT", 
                                                             "NO_VECTOR_TRANSFORM", 
                                                             "NOWAIT", "NO_XDB_FASTPATH_INSERT", 
                                                             "NO_XML_DML_REWRITE", 
                                                             "NO_XMLINDEX_REWRITE_IN_SELECT", 
                                                             "NO_XMLINDEX_REWRITE", 
                                                             "NO_XML_QUERY_REWRITE", 
                                                             "NO_ZONEMAP", 
                                                             "NTH_VALUE", 
                                                             "NULLIF", "NULL_", 
                                                             "NULLS", "NUMBER", 
                                                             "NUMERIC", 
                                                             "NUM_INDEX_KEYS", 
                                                             "NUMTODSINTERVAL", 
                                                             "NUMTOYMINTERVAL", 
                                                             "NVARCHAR2", 
                                                             "NVL2", "OBJECT2XML", 
                                                             "OBJECT", "OBJ_ID", 
                                                             "OBJNO", "OBJNO_REUSE", 
                                                             "OCCURENCES", 
                                                             "OFFLINE", 
                                                             "OFF", "OFFSET", 
                                                             "OF", "OIDINDEX", 
                                                             "OID", "OLAP", 
                                                             "OLD", "OLD_PUSH_PRED", 
                                                             "OLS", "OLTP", 
                                                             "OMIT", "ONE", 
                                                             "ONLINE", "ONLINELOG", 
                                                             "ONLY", "ON", 
                                                             "OPAQUE", "OPAQUE_TRANSFORM", 
                                                             "OPAQUE_XCANONICAL", 
                                                             "OPCODE", "OPEN", 
                                                             "OPERATIONS", 
                                                             "OPERATOR", 
                                                             "OPT_ESTIMATE", 
                                                             "OPTIMAL", 
                                                             "OPTIMIZE", 
                                                             "OPTIMIZER_FEATURES_ENABLE", 
                                                             "OPTIMIZER_GOAL", 
                                                             "OPTION", "OPT_PARAM", 
                                                             "ORA_BRANCH", 
                                                             "ORA_CHECK_ACL", 
                                                             "ORA_CHECK_PRIVILEGE", 
                                                             "ORA_CLUSTERING", 
                                                             "ORADATA", 
                                                             "ORADEBUG", 
                                                             "ORA_DST_AFFECTED", 
                                                             "ORA_DST_CONVERT", 
                                                             "ORA_DST_ERROR", 
                                                             "ORA_GET_ACLIDS", 
                                                             "ORA_GET_PRIVILEGES", 
                                                             "ORA_HASH", 
                                                             "ORA_INVOKING_USERID", 
                                                             "ORA_INVOKING_USER", 
                                                             "ORA_INVOKING_XS_USER_GUID", 
                                                             "ORA_INVOKING_XS_USER", 
                                                             "ORA_RAWCOMPARE", 
                                                             "ORA_RAWCONCAT", 
                                                             "ORA_ROWSCN", 
                                                             "ORA_ROWSCN_RAW", 
                                                             "ORA_ROWVERSION", 
                                                             "ORA_TABVERSION", 
                                                             "ORA_WRITE_TIME", 
                                                             "ORDERED", 
                                                             "ORDERED_PREDICATES", 
                                                             "ORDER", "ORDINALITY", 
                                                             "OR_EXPAND", 
                                                             "ORGANIZATION", 
                                                             "OR", "OR_PREDICATES", 
                                                             "OSERROR", 
                                                             "OTHER", "OUTER_JOIN_TO_ANTI", 
                                                             "OUTER_JOIN_TO_INNER", 
                                                             "OUTER", "OUTLINE_LEAF", 
                                                             "OUTLINE", 
                                                             "OUT_OF_LINE", 
                                                             "OUT", "OVERFLOW_NOMOVE", 
                                                             "OVERFLOW", 
                                                             "OVERLAPS", 
                                                             "OVER", "OVERRIDING", 
                                                             "OWNER", "OWNERSHIP", 
                                                             "OWN", "PACKAGE", 
                                                             "PACKAGES", 
                                                             "PARALLEL_ENABLE", 
                                                             "PARALLEL_INDEX", 
                                                             "PARALLEL", 
                                                             "PARAMETERFILE", 
                                                             "PARAMETERS", 
                                                             "PARAM", "PARENT", 
                                                             "PARITY", "PARTIAL_JOIN", 
                                                             "PARTIALLY", 
                                                             "PARTIAL", 
                                                             "PARTIAL_ROLLUP_PUSHDOWN", 
                                                             "PARTITION_HASH", 
                                                             "PARTITION_LIST", 
                                                             "PARTITION", 
                                                             "PARTITION_RANGE", 
                                                             "PARTITIONS", 
                                                             "PARTNUMINST", 
                                                             "PASSING", 
                                                             "PASSWORD_GRACE_TIME", 
                                                             "PASSWORD_LIFE_TIME", 
                                                             "PASSWORD_LOCK_TIME", 
                                                             "PASSWORD", 
                                                             "PASSWORD_REUSE_MAX", 
                                                             "PASSWORD_REUSE_TIME", 
                                                             "PASSWORD_VERIFY_FUNCTION", 
                                                             "PAST", "PATCH", 
                                                             "PATH", "PATH_PREFIX", 
                                                             "PATHS", "PATTERN", 
                                                             "PBL_HS_BEGIN", 
                                                             "PBL_HS_END", 
                                                             "PCTFREE", 
                                                             "PCTINCREASE", 
                                                             "PCTTHRESHOLD", 
                                                             "PCTUSED", 
                                                             "PCTVERSION", 
                                                             "PENDING", 
                                                             "PERCENT_FOUND", 
                                                             "PERCENT_ISOPEN", 
                                                             "PERCENT_NOTFOUND", 
                                                             "PERCENT_KEYWORD", 
                                                             "PERCENT_RANKM", 
                                                             "PERCENT_ROWCOUNT", 
                                                             "PERCENT_ROWTYPE", 
                                                             "PERCENT_TYPE", 
                                                             "PERFORMANCE", 
                                                             "PERIOD_KEYWORD", 
                                                             "PERMANENT", 
                                                             "PERMISSION", 
                                                             "PERMUTE", 
                                                             "PER", "PFILE", 
                                                             "PHYSICAL", 
                                                             "PIKEY", "PIPELINED", 
                                                             "PIPE", "PIV_GB", 
                                                             "PIVOT", "PIV_SSF", 
                                                             "PLACE_DISTINCT", 
                                                             "PLACE_GROUP_BY", 
                                                             "PLAN", "PLSCOPE_SETTINGS", 
                                                             "PLS_INTEGER", 
                                                             "PLSQL_CCFLAGS", 
                                                             "PLSQL_CODE_TYPE", 
                                                             "PLSQL_DEBUG", 
                                                             "PLSQL_OPTIMIZE_LEVEL", 
                                                             "PLSQL_WARNINGS", 
                                                             "PLUGGABLE", 
                                                             "POINT", "POLICY", 
                                                             "POOL_16K", 
                                                             "POOL_2K", 
                                                             "POOL_32K", 
                                                             "POOL_4K", 
                                                             "POOL_8K", 
                                                             "POSITIVEN", 
                                                             "POSITIVE", 
                                                             "POST_TRANSACTION", 
                                                             "POWERMULTISET_BY_CARDINALITY", 
                                                             "POWERMULTISET", 
                                                             "POWER", "PQ_CONCURRENT_UNION", 
                                                             "PQ_DISTRIBUTE", 
                                                             "PQ_DISTRIBUTE_WINDOW", 
                                                             "PQ_FILTER", 
                                                             "PQ_MAP", "PQ_NOMAP", 
                                                             "PQ_REPLICATE", 
                                                             "PQ_SKEW", 
                                                             "PRAGMA", "PREBUILT", 
                                                             "PRECEDES", 
                                                             "PRECEDING", 
                                                             "PRECISION", 
                                                             "PRECOMPUTE_SUBQUERY", 
                                                             "PREDICATE_REORDERS", 
                                                             "PRELOAD", 
                                                             "PREPARE", 
                                                             "PRESENTNNV", 
                                                             "PRESENT", 
                                                             "PRESENTV", 
                                                             "PRESERVE_OID", 
                                                             "PRESERVE", 
                                                             "PRETTY", "PREVIOUS", 
                                                             "PREV", "PRIMARY", 
                                                             "PRINTBLOBTOCLOB", 
                                                             "PRIORITY", 
                                                             "PRIOR", "PRIVATE", 
                                                             "PRIVATE_SGA", 
                                                             "PRIVILEGED", 
                                                             "PRIVILEGE", 
                                                             "PRIVILEGES", 
                                                             "PROCEDURAL", 
                                                             "PROCEDURE", 
                                                             "PROCESS", 
                                                             "PROFILE", 
                                                             "PROGRAM", 
                                                             "PROJECT", 
                                                             "PROPAGATE", 
                                                             "PROTECTED", 
                                                             "PROTECTION", 
                                                             "PROXY", "PRUNING", 
                                                             "PUBLIC", "PULL_PRED", 
                                                             "PURGE", "PUSH_PRED", 
                                                             "PUSH_SUBQ", 
                                                             "PX_FAULT_TOLERANCE", 
                                                             "PX_GRANULE", 
                                                             "PX_JOIN_FILTER", 
                                                             "QB_NAME", 
                                                             "QUERY_BLOCK", 
                                                             "QUERY", "QUEUE_CURR", 
                                                             "QUEUE", "QUEUE_ROWP", 
                                                             "QUIESCE", 
                                                             "QUORUM", "QUOTA", 
                                                             "RAISE", "RANDOM_LOCAL", 
                                                             "RANDOM", "RANGE", 
                                                             "RANKM", "RAPIDLY", 
                                                             "RAW", "RAWTOHEX", 
                                                             "RAWTONHEX", 
                                                             "RBA", "RBO_OUTLINE", 
                                                             "RDBA", "READ", 
                                                             "READS", "REALM", 
                                                             "REAL", "REBALANCE", 
                                                             "REBUILD", 
                                                             "RECORD", "RECORDS_PER_BLOCK", 
                                                             "RECOVERABLE", 
                                                             "RECOVER", 
                                                             "RECOVERY", 
                                                             "RECYCLEBIN", 
                                                             "RECYCLE", 
                                                             "REDACTION", 
                                                             "REDEFINE", 
                                                             "REDO", "REDUCED", 
                                                             "REDUNDANCY", 
                                                             "REF_CASCADE_CURSOR", 
                                                             "REFERENCED", 
                                                             "REFERENCE", 
                                                             "REFERENCES", 
                                                             "REFERENCING", 
                                                             "REF", "REFRESH", 
                                                             "REFTOHEX", 
                                                             "REGEXP_COUNT", 
                                                             "REGEXP_INSTR", 
                                                             "REGEXP_LIKE", 
                                                             "REGEXP_REPLACE", 
                                                             "REGEXP_SUBSTR", 
                                                             "REGISTER", 
                                                             "REGR_AVGX", 
                                                             "REGR_AVGY", 
                                                             "REGR_COUNT", 
                                                             "REGR_INTERCEPT", 
                                                             "REGR_R2", 
                                                             "REGR_SLOPE", 
                                                             "REGR_SXX", 
                                                             "REGR_SXY", 
                                                             "REGR_SYY", 
                                                             "REGULAR", 
                                                             "REJECT", "REKEY", 
                                                             "RELATIONAL", 
                                                             "RELIES_ON", 
                                                             "RELOCATE", 
                                                             "RELY", "REMAINDER", 
                                                             "REMOTE_MAPPED", 
                                                             "REMOVE", "RENAME", 
                                                             "REPAIR", "REPEAT", 
                                                             "REPLACE", 
                                                             "REPLICATION", 
                                                             "REQUIRED", 
                                                             "RESETLOGS", 
                                                             "RESET", "RESIZE", 
                                                             "RESOLVE", 
                                                             "RESOLVER", 
                                                             "RESOURCE", 
                                                             "RESPECT", 
                                                             "RESTART", 
                                                             "RESTORE_AS_INTERVALS", 
                                                             "RESTORE", 
                                                             "RESTRICT_ALL_REF_CONS", 
                                                             "RESTRICTED", 
                                                             "RESTRICT_REFERENCES", 
                                                             "RESTRICT", 
                                                             "RESULT_CACHE", 
                                                             "RESULT", "RESUMABLE", 
                                                             "RESUME", "RETENTION", 
                                                             "RETRY_ON_ROW_CHANGE", 
                                                             "RETURNING", 
                                                             "RETURN", "REUSE", 
                                                             "REVERSE", 
                                                             "REVOKE", "REWRITE_OR_ERROR", 
                                                             "REWRITE", 
                                                             "RIGHT", "ROLE", 
                                                             "ROLESET", 
                                                             "ROLES", "ROLLBACK", 
                                                             "ROLLING", 
                                                             "ROLLUP", "ROWDEPENDENCIES", 
                                                             "ROWID_MAPPING_TABLE", 
                                                             "ROWID", "ROWIDTOCHAR", 
                                                             "ROWIDTONCHAR", 
                                                             "ROW_LENGTH", 
                                                             "ROWNUM", "ROW", 
                                                             "ROWS", "RPAD", 
                                                             "RTRIM", "RULE", 
                                                             "RULES", "RUNNING", 
                                                             "SALT", "SAMPLE", 
                                                             "SAVE_AS_INTERVALS", 
                                                             "SAVEPOINT", 
                                                             "SAVE", "SB4", 
                                                             "SCALE_ROWS", 
                                                             "SCALE", "SCAN_INSTANCES", 
                                                             "SCAN", "SCHEDULER", 
                                                             "SCHEMACHECK", 
                                                             "SCHEMA", "SCN_ASCENDING", 
                                                             "SCN", "SCOPE", 
                                                             "SCRUB", "SD_ALL", 
                                                             "SD_INHIBIT", 
                                                             "SDO_GEOM_MBR", 
                                                             "SD_SHOW", 
                                                             "SEARCH", "SECOND", 
                                                             "SECRET", "SECUREFILE_DBA", 
                                                             "SECUREFILE", 
                                                             "SECURITY", 
                                                             "SEED", "SEG_BLOCK", 
                                                             "SEG_FILE", 
                                                             "SEGMENT", 
                                                             "SELECTIVITY", 
                                                             "SELECT", "SELF", 
                                                             "SEMIJOIN_DRIVER", 
                                                             "SEMIJOIN", 
                                                             "SEMI_TO_INNER", 
                                                             "SEQUENCED", 
                                                             "SEQUENCE", 
                                                             "SEQUENTIAL", 
                                                             "SEQ", "SERIALIZABLE", 
                                                             "SERIALLY_REUSABLE", 
                                                             "SERIAL", "SERVERERROR", 
                                                             "SERVICE_NAME_CONVERT", 
                                                             "SERVICES", 
                                                             "SESSION_CACHED_CURSORS", 
                                                             "SESSION", 
                                                             "SESSIONS_PER_USER", 
                                                             "SESSIONTIMEZONE", 
                                                             "SESSIONTZNAME", 
                                                             "SET", "SETS", 
                                                             "SETTINGS", 
                                                             "SET_TO_JOIN", 
                                                             "SEVERE", "SHARED_POOL", 
                                                             "SHARED", "SHARE", 
                                                             "SHARING", 
                                                             "SHELFLIFE", 
                                                             "SHOW", "SHRINK", 
                                                             "SHUTDOWN", 
                                                             "SIBLINGS", 
                                                             "SID", "SIGNAL_COMPONENT", 
                                                             "SIGNAL_FUNCTION", 
                                                             "SIGN", "SIGNTYPE", 
                                                             "SIMPLE_INTEGER", 
                                                             "SIMPLE", "SINGLE", 
                                                             "SINGLETASK", 
                                                             "SINH", "SIN", 
                                                             "SIZE", "SKIP_EXT_OPTIMIZER", 
                                                             "SKIP_", "SKIP_UNQ_UNUSABLE_IDX", 
                                                             "SKIP_UNUSABLE_INDEXES", 
                                                             "SMALLFILE", 
                                                             "SMALLINT", 
                                                             "SNAPSHOT", 
                                                             "SOME", "SORT", 
                                                             "SOUNDEX", 
                                                             "SOURCE_FILE_DIRECTORY", 
                                                             "SOURCE_FILE_NAME_CONVERT", 
                                                             "SOURCE", "SPACE_KEYWORD", 
                                                             "SPECIFICATION", 
                                                             "SPFILE", "SPLIT", 
                                                             "SPREADSHEET", 
                                                             "SQLDATA", 
                                                             "SQLERROR", 
                                                             "SQLLDR", "SQL", 
                                                             "SQL_TRACE", 
                                                             "SQL_TRANSLATION_PROFILE", 
                                                             "SQRT", "STALE", 
                                                             "STANDALONE", 
                                                             "STANDARD_HASH", 
                                                             "STANDBY_MAX_DATA_DELAY", 
                                                             "STANDBYS", 
                                                             "STANDBY", 
                                                             "STAR", "STAR_TRANSFORMATION", 
                                                             "START", "STARTUP", 
                                                             "STATEMENT_ID", 
                                                             "STATEMENT_QUEUING", 
                                                             "STATEMENTS", 
                                                             "STATEMENT", 
                                                             "STATE", "STATIC", 
                                                             "STATISTICS", 
                                                             "STATS_BINOMIAL_TEST", 
                                                             "STATS_CROSSTAB", 
                                                             "STATS_F_TEST", 
                                                             "STATS_KS_TEST", 
                                                             "STATS_MODE", 
                                                             "STATS_MW_TEST", 
                                                             "STATS_ONE_WAY_ANOVA", 
                                                             "STATS_T_TEST_INDEP", 
                                                             "STATS_T_TEST_INDEPU", 
                                                             "STATS_T_TEST_ONE", 
                                                             "STATS_T_TEST_PAIRED", 
                                                             "STATS_WSR_TEST", 
                                                             "STDDEV_POP", 
                                                             "STDDEV_SAMP", 
                                                             "STOP", "STORAGE", 
                                                             "STORE", "STREAMS", 
                                                             "STREAM", "STRICT", 
                                                             "STRING", "STRIPE_COLUMNS", 
                                                             "STRIPE_WIDTH", 
                                                             "STRIP", "STRUCTURE", 
                                                             "SUBMULTISET", 
                                                             "SUBPARTITION_REL", 
                                                             "SUBPARTITIONS", 
                                                             "SUBPARTITION", 
                                                             "SUBQUERIES", 
                                                             "SUBQUERY_PRUNING", 
                                                             "SUBSCRIBE", 
                                                             "SUBSET", "SUBSTITUTABLE", 
                                                             "SUBSTR2", 
                                                             "SUBSTR4", 
                                                             "SUBSTRB", 
                                                             "SUBSTRC", 
                                                             "SUBTYPE", 
                                                             "SUCCESSFUL", 
                                                             "SUCCESS", 
                                                             "SUMMARY", 
                                                             "SUPPLEMENTAL", 
                                                             "SUSPEND", 
                                                             "SWAP_JOIN_INPUTS", 
                                                             "SWITCHOVER", 
                                                             "SWITCH", "SYNCHRONOUS", 
                                                             "SYNC", "SYNONYM", 
                                                             "SYSASM", "SYS_AUDIT", 
                                                             "SYSAUX", "SYSBACKUP", 
                                                             "SYS_CHECKACL", 
                                                             "SYS_CHECK_PRIVILEGE", 
                                                             "SYS_CONNECT_BY_PATH", 
                                                             "SYS_CONTEXT", 
                                                             "SYSDATE", 
                                                             "SYSDBA", "SYS_DBURIGEN", 
                                                             "SYSDG", "SYS_DL_CURSOR", 
                                                             "SYS_DM_RXFORM_CHR", 
                                                             "SYS_DM_RXFORM_NUM", 
                                                             "SYS_DOM_COMPARE", 
                                                             "SYS_DST_PRIM2SEC", 
                                                             "SYS_DST_SEC2PRIM", 
                                                             "SYS_ET_BFILE_TO_RAW", 
                                                             "SYS_ET_BLOB_TO_IMAGE", 
                                                             "SYS_ET_IMAGE_TO_BLOB", 
                                                             "SYS_ET_RAW_TO_BFILE", 
                                                             "SYS_EXTPDTXT", 
                                                             "SYS_EXTRACT_UTC", 
                                                             "SYS_FBT_INSDEL", 
                                                             "SYS_FILTER_ACLS", 
                                                             "SYS_FNMATCHES", 
                                                             "SYS_FNREPLACE", 
                                                             "SYS_GET_ACLIDS", 
                                                             "SYS_GET_COL_ACLIDS", 
                                                             "SYS_GET_PRIVILEGES", 
                                                             "SYS_GETTOKENID", 
                                                             "SYS_GETXTIVAL", 
                                                             "SYS_GUID", 
                                                             "SYSGUID", 
                                                             "SYSKM", "SYS_MAKE_XMLNODEID", 
                                                             "SYS_MAKEXML", 
                                                             "SYS_MKXMLATTR", 
                                                             "SYS_MKXTI", 
                                                             "SYSOBJ", "SYS_OP_ADT2BIN", 
                                                             "SYS_OP_ADTCONS", 
                                                             "SYS_OP_ALSCRVAL", 
                                                             "SYS_OP_ATG", 
                                                             "SYS_OP_BIN2ADT", 
                                                             "SYS_OP_BITVEC", 
                                                             "SYS_OP_BL2R", 
                                                             "SYS_OP_BLOOM_FILTER_LIST", 
                                                             "SYS_OP_BLOOM_FILTER", 
                                                             "SYS_OP_C2C", 
                                                             "SYS_OP_CAST", 
                                                             "SYS_OP_CEG", 
                                                             "SYS_OP_CL2C", 
                                                             "SYS_OP_COMBINED_HASH", 
                                                             "SYS_OP_COMP", 
                                                             "SYS_OP_CONVERT", 
                                                             "SYS_OP_COUNTCHG", 
                                                             "SYS_OP_CSCONV", 
                                                             "SYS_OP_CSCONVTEST", 
                                                             "SYS_OP_CSR", 
                                                             "SYS_OP_CSX_PATCH", 
                                                             "SYS_OP_CYCLED_SEQ", 
                                                             "SYS_OP_DECOMP", 
                                                             "SYS_OP_DESCEND", 
                                                             "SYS_OP_DISTINCT", 
                                                             "SYS_OP_DRA", 
                                                             "SYS_OP_DUMP", 
                                                             "SYS_OP_DV_CHECK", 
                                                             "SYS_OP_ENFORCE_NOT_NULL", 
                                                             "SYSOPER", 
                                                             "SYS_OP_EXTRACT", 
                                                             "SYS_OP_GROUPING", 
                                                             "SYS_OP_GUID", 
                                                             "SYS_OP_HASH", 
                                                             "SYS_OP_IIX", 
                                                             "SYS_OP_ITR", 
                                                             "SYS_OP_KEY_VECTOR_CREATE", 
                                                             "SYS_OP_KEY_VECTOR_FILTER_LIST", 
                                                             "SYS_OP_KEY_VECTOR_FILTER", 
                                                             "SYS_OP_KEY_VECTOR_SUCCEEDED", 
                                                             "SYS_OP_KEY_VECTOR_USE", 
                                                             "SYS_OP_LBID", 
                                                             "SYS_OP_LOBLOC2BLOB", 
                                                             "SYS_OP_LOBLOC2CLOB", 
                                                             "SYS_OP_LOBLOC2ID", 
                                                             "SYS_OP_LOBLOC2NCLOB", 
                                                             "SYS_OP_LOBLOC2TYP", 
                                                             "SYS_OP_LSVI", 
                                                             "SYS_OP_LVL", 
                                                             "SYS_OP_MAKEOID", 
                                                             "SYS_OP_MAP_NONNULL", 
                                                             "SYS_OP_MSR", 
                                                             "SYS_OP_NICOMBINE", 
                                                             "SYS_OP_NIEXTRACT", 
                                                             "SYS_OP_NII", 
                                                             "SYS_OP_NIX", 
                                                             "SYS_OP_NOEXPAND", 
                                                             "SYS_OP_NTCIMG", 
                                                             "SYS_OP_NUMTORAW", 
                                                             "SYS_OP_OIDVALUE", 
                                                             "SYS_OP_OPNSIZE", 
                                                             "SYS_OP_PAR_1", 
                                                             "SYS_OP_PARGID_1", 
                                                             "SYS_OP_PARGID", 
                                                             "SYS_OP_PAR", 
                                                             "SYS_OP_PART_ID", 
                                                             "SYS_OP_PIVOT", 
                                                             "SYS_OP_R2O", 
                                                             "SYS_OP_RAWTONUM", 
                                                             "SYS_OP_RDTM", 
                                                             "SYS_OP_REF", 
                                                             "SYS_OP_RMTD", 
                                                             "SYS_OP_ROWIDTOOBJ", 
                                                             "SYS_OP_RPB", 
                                                             "SYS_OPTLOBPRBSC", 
                                                             "SYS_OP_TOSETID", 
                                                             "SYS_OP_TPR", 
                                                             "SYS_OP_TRTB", 
                                                             "SYS_OPTXICMP", 
                                                             "SYS_OPTXQCASTASNQ", 
                                                             "SYS_OP_UNDESCEND", 
                                                             "SYS_OP_VECAND", 
                                                             "SYS_OP_VECBIT", 
                                                             "SYS_OP_VECOR", 
                                                             "SYS_OP_VECXOR", 
                                                             "SYS_OP_VERSION", 
                                                             "SYS_OP_VREF", 
                                                             "SYS_OP_VVD", 
                                                             "SYS_OP_XMLCONS_FOR_CSX", 
                                                             "SYS_OP_XPTHATG", 
                                                             "SYS_OP_XPTHIDX", 
                                                             "SYS_OP_XPTHOP", 
                                                             "SYS_OP_XTXT2SQLT", 
                                                             "SYS_OP_ZONE_ID", 
                                                             "SYS_ORDERKEY_DEPTH", 
                                                             "SYS_ORDERKEY_MAXCHILD", 
                                                             "SYS_ORDERKEY_PARENT", 
                                                             "SYS_PARALLEL_TXN", 
                                                             "SYS_PATHID_IS_ATTR", 
                                                             "SYS_PATHID_IS_NMSPC", 
                                                             "SYS_PATHID_LASTNAME", 
                                                             "SYS_PATHID_LASTNMSPC", 
                                                             "SYS_PATH_REVERSE", 
                                                             "SYS_PXQEXTRACT", 
                                                             "SYS_RAW_TO_XSID", 
                                                             "SYS_RID_ORDER", 
                                                             "SYS_ROW_DELTA", 
                                                             "SYS_SC_2_XMLT", 
                                                             "SYS_SYNRCIREDO", 
                                                             "SYSTEM_DEFINED", 
                                                             "SYSTEM", "SYSTIMESTAMP", 
                                                             "SYS_TYPEID", 
                                                             "SYS_UMAKEXML", 
                                                             "SYS_XMLANALYZE", 
                                                             "SYS_XMLCONTAINS", 
                                                             "SYS_XMLCONV", 
                                                             "SYS_XMLEXNSURI", 
                                                             "SYS_XMLGEN", 
                                                             "SYS_XMLI_LOC_ISNODE", 
                                                             "SYS_XMLI_LOC_ISTEXT", 
                                                             "SYS_XMLINSTR", 
                                                             "SYS_XMLLOCATOR_GETSVAL", 
                                                             "SYS_XMLNODEID_GETCID", 
                                                             "SYS_XMLNODEID_GETLOCATOR", 
                                                             "SYS_XMLNODEID_GETOKEY", 
                                                             "SYS_XMLNODEID_GETPATHID", 
                                                             "SYS_XMLNODEID_GETPTRID", 
                                                             "SYS_XMLNODEID_GETRID", 
                                                             "SYS_XMLNODEID_GETSVAL", 
                                                             "SYS_XMLNODEID_GETTID", 
                                                             "SYS_XMLNODEID", 
                                                             "SYS_XMLT_2_SC", 
                                                             "SYS_XMLTRANSLATE", 
                                                             "SYS_XMLTYPE2SQL", 
                                                             "SYS_XQ_ASQLCNV", 
                                                             "SYS_XQ_ATOMCNVCHK", 
                                                             "SYS_XQBASEURI", 
                                                             "SYS_XQCASTABLEERRH", 
                                                             "SYS_XQCODEP2STR", 
                                                             "SYS_XQCODEPEQ", 
                                                             "SYS_XQCON2SEQ", 
                                                             "SYS_XQCONCAT", 
                                                             "SYS_XQDELETE", 
                                                             "SYS_XQDFLTCOLATION", 
                                                             "SYS_XQDOC", 
                                                             "SYS_XQDOCURI", 
                                                             "SYS_XQDURDIV", 
                                                             "SYS_XQED4URI", 
                                                             "SYS_XQENDSWITH", 
                                                             "SYS_XQERRH", 
                                                             "SYS_XQERR", 
                                                             "SYS_XQESHTMLURI", 
                                                             "SYS_XQEXLOBVAL", 
                                                             "SYS_XQEXSTWRP", 
                                                             "SYS_XQEXTRACT", 
                                                             "SYS_XQEXTRREF", 
                                                             "SYS_XQEXVAL", 
                                                             "SYS_XQFB2STR", 
                                                             "SYS_XQFNBOOL", 
                                                             "SYS_XQFNCMP", 
                                                             "SYS_XQFNDATIM", 
                                                             "SYS_XQFNLNAME", 
                                                             "SYS_XQFNNM", 
                                                             "SYS_XQFNNSURI", 
                                                             "SYS_XQFNPREDTRUTH", 
                                                             "SYS_XQFNQNM", 
                                                             "SYS_XQFNROOT", 
                                                             "SYS_XQFORMATNUM", 
                                                             "SYS_XQFTCONTAIN", 
                                                             "SYS_XQFUNCR", 
                                                             "SYS_XQGETCONTENT", 
                                                             "SYS_XQINDXOF", 
                                                             "SYS_XQINSERT", 
                                                             "SYS_XQINSPFX", 
                                                             "SYS_XQIRI2URI", 
                                                             "SYS_XQLANG", 
                                                             "SYS_XQLLNMFRMQNM", 
                                                             "SYS_XQMKNODEREF", 
                                                             "SYS_XQNILLED", 
                                                             "SYS_XQNODENAME", 
                                                             "SYS_XQNORMSPACE", 
                                                             "SYS_XQNORMUCODE", 
                                                             "SYS_XQ_NRNG", 
                                                             "SYS_XQNSP4PFX", 
                                                             "SYS_XQNSPFRMQNM", 
                                                             "SYS_XQPFXFRMQNM", 
                                                             "SYS_XQ_PKSQL2XML", 
                                                             "SYS_XQPOLYABS", 
                                                             "SYS_XQPOLYADD", 
                                                             "SYS_XQPOLYCEL", 
                                                             "SYS_XQPOLYCSTBL", 
                                                             "SYS_XQPOLYCST", 
                                                             "SYS_XQPOLYDIV", 
                                                             "SYS_XQPOLYFLR", 
                                                             "SYS_XQPOLYMOD", 
                                                             "SYS_XQPOLYMUL", 
                                                             "SYS_XQPOLYRND", 
                                                             "SYS_XQPOLYSQRT", 
                                                             "SYS_XQPOLYSUB", 
                                                             "SYS_XQPOLYUMUS", 
                                                             "SYS_XQPOLYUPLS", 
                                                             "SYS_XQPOLYVEQ", 
                                                             "SYS_XQPOLYVGE", 
                                                             "SYS_XQPOLYVGT", 
                                                             "SYS_XQPOLYVLE", 
                                                             "SYS_XQPOLYVLT", 
                                                             "SYS_XQPOLYVNE", 
                                                             "SYS_XQREF2VAL", 
                                                             "SYS_XQRENAME", 
                                                             "SYS_XQREPLACE", 
                                                             "SYS_XQRESVURI", 
                                                             "SYS_XQRNDHALF2EVN", 
                                                             "SYS_XQRSLVQNM", 
                                                             "SYS_XQRYENVPGET", 
                                                             "SYS_XQRYVARGET", 
                                                             "SYS_XQRYWRP", 
                                                             "SYS_XQSEQ2CON4XC", 
                                                             "SYS_XQSEQ2CON", 
                                                             "SYS_XQSEQDEEPEQ", 
                                                             "SYS_XQSEQINSB", 
                                                             "SYS_XQSEQRM", 
                                                             "SYS_XQSEQRVS", 
                                                             "SYS_XQSEQSUB", 
                                                             "SYS_XQSEQTYPMATCH", 
                                                             "SYS_XQSTARTSWITH", 
                                                             "SYS_XQSTATBURI", 
                                                             "SYS_XQSTR2CODEP", 
                                                             "SYS_XQSTRJOIN", 
                                                             "SYS_XQSUBSTRAFT", 
                                                             "SYS_XQSUBSTRBEF", 
                                                             "SYS_XQTOKENIZE", 
                                                             "SYS_XQTREATAS", 
                                                             "SYS_XQ_UPKXML2SQL", 
                                                             "SYS_XQXFORM", 
                                                             "SYS_XSID_TO_RAW", 
                                                             "SYS_ZMAP_FILTER", 
                                                             "SYS_ZMAP_REFRESH", 
                                                             "TABLE_LOOKUP_BY_NL", 
                                                             "TABLESPACE_NO", 
                                                             "TABLESPACE", 
                                                             "TABLES", "TABLE_STATS", 
                                                             "TABLE", "TABNO", 
                                                             "TAG", "TANH", 
                                                             "TAN", "TBLORIDXPARTNUM", 
                                                             "TEMPFILE", 
                                                             "TEMPLATE", 
                                                             "TEMPORARY", 
                                                             "TEMP_TABLE", 
                                                             "TEST", "TEXT", 
                                                             "THAN", "THEN", 
                                                             "THE", "THREAD", 
                                                             "THROUGH", 
                                                             "TIER", "TIES", 
                                                             "TIMEOUT", 
                                                             "TIMESTAMP_LTZ_UNCONSTRAINED", 
                                                             "TIMESTAMP", 
                                                             "TIMESTAMP_TZ_UNCONSTRAINED", 
                                                             "TIMESTAMP_UNCONSTRAINED", 
                                                             "TIMES", "TIME", 
                                                             "TIMEZONE", 
                                                             "TIMEZONE_ABBR", 
                                                             "TIMEZONE_HOUR", 
                                                             "TIMEZONE_MINUTE", 
                                                             "TIMEZONE_OFFSET", 
                                                             "TIMEZONE_REGION", 
                                                             "TIME_ZONE", 
                                                             "TIV_GB", "TIV_SSF", 
                                                             "TO_ACLID", 
                                                             "TO_BINARY_DOUBLE", 
                                                             "TO_BINARY_FLOAT", 
                                                             "TO_BLOB", 
                                                             "TO_CLOB", 
                                                             "TO_DSINTERVAL", 
                                                             "TO_LOB", "TO_MULTI_BYTE", 
                                                             "TO_NCHAR", 
                                                             "TO_NCLOB", 
                                                             "TO_NUMBER", 
                                                             "TOPLEVEL", 
                                                             "TO_SINGLE_BYTE", 
                                                             "TO_TIMESTAMP", 
                                                             "TO_TIMESTAMP_TZ", 
                                                             "TO_TIME", 
                                                             "TO_TIME_TZ", 
                                                             "TO", "TO_YMINTERVAL", 
                                                             "TRACE", "TRACING", 
                                                             "TRACKING", 
                                                             "TRAILING", 
                                                             "TRANSACTION", 
                                                             "TRANSFORM_DISTINCT_AGG", 
                                                             "TRANSITIONAL", 
                                                             "TRANSITION", 
                                                             "TRANSLATE", 
                                                             "TRANSLATION", 
                                                             "TREAT", "TRIGGERS", 
                                                             "TRIGGER", 
                                                             "TRUE", "TRUNCATE", 
                                                             "TRUNC", "TRUSTED", 
                                                             "TRUST", "TUNING", 
                                                             "TX", "TYPES", 
                                                             "TYPE", "TZ_OFFSET", 
                                                             "UB2", "UBA", 
                                                             "UCS2", "UID", 
                                                             "UNARCHIVED", 
                                                             "UNBOUNDED", 
                                                             "UNBOUND", 
                                                             "UNCONDITIONAL", 
                                                             "UNDER", "UNDO", 
                                                             "UNDROP", "UNIFORM", 
                                                             "UNION", "UNIQUE", 
                                                             "UNISTR", "UNLIMITED", 
                                                             "UNLOAD", "UNLOCK", 
                                                             "UNMATCHED", 
                                                             "UNNEST_INNERJ_DISTINCT_VIEW", 
                                                             "UNNEST_NOSEMIJ_NODISTINCTVIEW", 
                                                             "UNNEST_SEMIJ_VIEW", 
                                                             "UNNEST", "UNPACKED", 
                                                             "UNPIVOT", 
                                                             "UNPLUG", "UNPROTECTED", 
                                                             "UNQUIESCE", 
                                                             "UNRECOVERABLE", 
                                                             "UNRESTRICTED", 
                                                             "UNSUBSCRIBE", 
                                                             "UNTIL", "UNUSABLE", 
                                                             "UNUSED", "UPDATABLE", 
                                                             "UPDATED", 
                                                             "UPDATE", "UPDATEXML", 
                                                             "UPD_INDEXES", 
                                                             "UPD_JOININDEX", 
                                                             "UPGRADE", 
                                                             "UPPER", "UPSERT", 
                                                             "UROWID", "USABLE", 
                                                             "USAGE", "USE_ANTI", 
                                                             "USE_CONCAT", 
                                                             "USE_CUBE", 
                                                             "USE_HASH_AGGREGATION", 
                                                             "USE_HASH_GBY_FOR_PUSHDOWN", 
                                                             "USE_HASH", 
                                                             "USE_HIDDEN_PARTITIONS", 
                                                             "USE_INVISIBLE_INDEXES", 
                                                             "USE_MERGE_CARTESIAN", 
                                                             "USE_MERGE", 
                                                             "USE_NL", "USE_NL_WITH_INDEX", 
                                                             "USE_PRIVATE_OUTLINES", 
                                                             "USER_DATA", 
                                                             "USER_DEFINED", 
                                                             "USERENV", 
                                                             "USERGROUP", 
                                                             "USER_RECYCLEBIN", 
                                                             "USERS", "USER_TABLESPACES", 
                                                             "USER", "USE_SEMI", 
                                                             "USE_STORED_OUTLINES", 
                                                             "USE_TTT_FOR_GSETS", 
                                                             "USE", "USE_VECTOR_AGGREGATION", 
                                                             "USE_WEAK_NAME_RESL", 
                                                             "USING_NO_EXPAND", 
                                                             "USING", "UTF16BE", 
                                                             "UTF16LE", 
                                                             "UTF32", "UTF8", 
                                                             "V1", "V2", 
                                                             "VALIDATE", 
                                                             "VALIDATION", 
                                                             "VALID_TIME_END", 
                                                             "VALUES", "VALUE", 
                                                             "VARCHAR2", 
                                                             "VARCHAR", 
                                                             "VARIABLE", 
                                                             "VAR_POP", 
                                                             "VARRAYS", 
                                                             "VARRAY", "VAR_SAMP", 
                                                             "VARYING", 
                                                             "VECTOR_READ_TRACE", 
                                                             "VECTOR_READ", 
                                                             "VECTOR_TRANSFORM_DIMS", 
                                                             "VECTOR_TRANSFORM_FACT", 
                                                             "VECTOR_TRANSFORM", 
                                                             "VERIFIER", 
                                                             "VERIFY", "VERSIONING", 
                                                             "VERSIONS_ENDSCN", 
                                                             "VERSIONS_ENDTIME", 
                                                             "VERSIONS_OPERATION", 
                                                             "VERSIONS_STARTSCN", 
                                                             "VERSIONS_STARTTIME", 
                                                             "VERSIONS", 
                                                             "VERSIONS_XID", 
                                                             "VERSION", 
                                                             "VIEW", "VIOLATION", 
                                                             "VIRTUAL", 
                                                             "VISIBILITY", 
                                                             "VISIBLE", 
                                                             "VOLUME", "VSIZE", 
                                                             "WAIT", "WALLET", 
                                                             "WARNING", 
                                                             "WEEKS", "WEEK", 
                                                             "WELLFORMED", 
                                                             "WHENEVER", 
                                                             "WHEN", "WHERE", 
                                                             "WHILE", "WHITESPACE", 
                                                             "WIDTH_BUCKET", 
                                                             "WITHIN", "WITHOUT", 
                                                             "WITH_PLSQL", 
                                                             "WITH", "WORK", 
                                                             "WRAPPED", 
                                                             "WRAPPER", 
                                                             "WRITE", "XDB_FASTPATH_INSERT", 
                                                             "XDB", "X_DYN_PRUNE", 
                                                             "XID", "XML2OBJECT", 
                                                             "XMLAGG", "XMLATTRIBUTES", 
                                                             "XMLCAST", 
                                                             "XMLCDATA", 
                                                             "XMLCOLATTVAL", 
                                                             "XMLCOMMENT", 
                                                             "XMLCONCAT", 
                                                             "XMLDIFF", 
                                                             "XML_DML_RWT_STMT", 
                                                             "XMLELEMENT", 
                                                             "XMLEXISTS2", 
                                                             "XMLEXISTS", 
                                                             "XMLFOREST", 
                                                             "XMLINDEX", 
                                                             "XMLINDEX_REWRITE_IN_SELECT", 
                                                             "XMLINDEX_REWRITE", 
                                                             "XMLINDEX_SEL_IDX_TBL", 
                                                             "XMLISNODE", 
                                                             "XMLISVALID", 
                                                             "XMLNAMESPACES", 
                                                             "XMLPARSE", 
                                                             "XMLPATCH", 
                                                             "XMLPI", "XMLQUERYVAL", 
                                                             "XMLQUERY", 
                                                             "XMLROOT", 
                                                             "XMLSCHEMA", 
                                                             "XMLSERIALIZE", 
                                                             "XMLTABLE", 
                                                             "XMLTRANSFORMBLOB", 
                                                             "XMLTRANSFORM", 
                                                             "XMLTYPE", 
                                                             "XML", "XPATHTABLE", 
                                                             "XS_SYS_CONTEXT", 
                                                             "XS", "XTRANSPORT", 
                                                             "YEARS", "YEAR", 
                                                             "YES", "YMINTERVAL_UNCONSTRAINED", 
                                                             "ZONEMAP", 
                                                             "ZONE", "PREDICTION", 
                                                             "PREDICTION_BOUNDS", 
                                                             "PREDICTION_COST", 
                                                             "PREDICTION_DETAILS", 
                                                             "PREDICTION_PROBABILITY", 
                                                             "PREDICTION_SET", 
                                                             "CUME_DIST", 
                                                             "DENSE_RANK", 
                                                             "LISTAGG", 
                                                             "PERCENT_RANK", 
                                                             "PERCENTILE_CONT", 
                                                             "PERCENTILE_DISC", 
                                                             "RANK", "AVG", 
                                                             "CORR", "COVAR_", 
                                                             "DECODE", "LAG", 
                                                             "LEAD", "MAX", 
                                                             "MEDIAN", "MIN", 
                                                             "NTILE", "NVL", 
                                                             "RATIO_TO_REPORT", 
                                                             "REGR_", "ROUND", 
                                                             "ROW_NUMBER", 
                                                             "SUBSTR", "TO_CHAR", 
                                                             "TRIM", "SUM", 
                                                             "STDDEV", "VAR_", 
                                                             "VARIANCE", 
                                                             "LEAST", "GREATEST", 
                                                             "TO_DATE", 
                                                             "NATIONAL_CHAR_STRING_LIT", 
                                                             "BIT_STRING_LIT", 
                                                             "HEX_STRING_LIT", 
                                                             "DOUBLE_PERIOD", 
                                                             "PERIOD", "UNSIGNED_INTEGER", 
                                                             "APPROXIMATE_NUM_LIT", 
                                                             "CHAR_STRING", 
                                                             "DELIMITED_ID", 
                                                             "PERCENT", 
                                                             "AMPERSAND", 
                                                             "LEFT_PAREN", 
                                                             "RIGHT_PAREN", 
                                                             "DOUBLE_ASTERISK", 
                                                             "ASTERISK", 
                                                             "PLUS_SIGN", 
                                                             "MINUS_SIGN", 
                                                             "COMMA", "SOLIDUS", 
                                                             "AT_SIGN", 
                                                             "ASSIGN_OP", 
                                                             "BINDVAR", 
                                                             "NOT_EQUAL_OP", 
                                                             "CARRET_OPERATOR_PART", 
                                                             "TILDE_OPERATOR_PART", 
                                                             "EXCLAMATION_OPERATOR_PART", 
                                                             "GREATER_THAN_OP", 
                                                             "LESS_THAN_OP", 
                                                             "COLON", "SEMICOLON", 
                                                             "BAR", "EQUALS_OP", 
                                                             "LEFT_BRACKET", 
                                                             "RIGHT_BRACKET", 
                                                             "INTRODUCER", 
                                                             "SINGLE_LINE_COMMENT", 
                                                             "MULTI_LINE_COMMENT", 
                                                             "REMARK_COMMENT", 
                                                             "PROMPT_MESSAGE", 
                                                             "START_CMD", 
                                                             "REGULAR_ID", 
                                                             "SPACES" ];
	// tslint:disable:no-trailing-whitespace
	public static readonly ruleNames: string[] = [
		"program", "sql_script", "unit_statement", "drop_function", "alter_function", 
		"create_function_body", "parallel_enable_clause", "partition_by_clause", 
		"result_cache_clause", "relies_on_part", "streaming_clause", "drop_package", 
		"alter_package", "create_package", "create_package_body", "package_obj_spec", 
		"procedure_spec", "function_spec", "package_obj_body", "drop_procedure", 
		"alter_procedure", "function_body", "procedure_body", "create_procedure_body", 
		"drop_trigger", "alter_trigger", "create_trigger", "trigger_follows_clause", 
		"trigger_when_clause", "simple_dml_trigger", "for_each_row", "compound_dml_trigger", 
		"non_dml_trigger", "trigger_body", "routine_clause", "compound_trigger_block", 
		"timing_point_section", "non_dml_event", "dml_event_clause", "dml_event_element", 
		"dml_event_nested_clause", "referencing_clause", "referencing_element", 
		"drop_type", "alter_type", "compile_type_clause", "replace_type_clause", 
		"alter_method_spec", "alter_method_element", "alter_attribute_definition", 
		"attribute_definition", "alter_collection_clauses", "dependent_handling_clause", 
		"dependent_exceptions_part", "create_type", "type_definition", "object_type_def", 
		"object_as_part", "object_under_part", "nested_table_type_def", "sqlj_object_type", 
		"type_body", "type_body_elements", "map_order_func_declaration", "subprog_decl_in_type", 
		"proc_decl_in_type", "func_decl_in_type", "constructor_declaration", "modifier_clause", 
		"object_member_spec", "sqlj_object_type_attr", "element_spec", "element_spec_options", 
		"subprogram_spec", "overriding_subprogram_spec", "overriding_function_spec", 
		"type_procedure_spec", "type_function_spec", "constructor_spec", "map_order_function_spec", 
		"pragma_clause", "pragma_elements", "type_elements_parameter", "drop_sequence", 
		"alter_sequence", "alter_session", "alter_session_set_clause", "create_sequence", 
		"sequence_spec", "sequence_start_clause", "create_index", "cluster_index_clause", 
		"cluster_name", "table_index_clause", "bitmap_join_index_clause", "index_expr", 
		"index_properties", "domain_index_clause", "local_domain_index_clause", 
		"xmlindex_clause", "local_xmlindex_clause", "global_partitioned_index", 
		"index_partitioning_clause", "local_partitioned_index", "on_range_partitioned_table", 
		"on_list_partitioned_table", "partitioned_table", "on_hash_partitioned_table", 
		"on_hash_partitioned_clause", "on_comp_partitioned_table", "on_comp_partitioned_clause", 
		"index_subpartition_clause", "index_subpartition_subclause", "odci_parameters", 
		"indextype", "alter_index", "alter_index_ops_set1", "alter_index_ops_set2", 
		"visible_or_invisible", "monitoring_nomonitoring", "rebuild_clause", "alter_index_partitioning", 
		"modify_index_default_attrs", "add_hash_index_partition", "coalesce_index_partition", 
		"modify_index_partition", "modify_index_partitions_ops", "rename_index_partition", 
		"drop_index_partition", "split_index_partition", "index_partition_description", 
		"modify_index_subpartition", "partition_name_old", "new_partition_name", 
		"new_index_name", "create_user", "alter_user", "alter_identified_by", 
		"identified_by", "identified_other_clause", "user_tablespace_clause", 
		"quota_clause", "profile_clause", "role_clause", "user_default_role_clause", 
		"password_expire_clause", "user_lock_clause", "user_editions_clause", 
		"alter_user_editions_clause", "proxy_clause", "container_names", "set_container_data", 
		"add_rem_container_data", "container_data_clause", "analyze", "partition_extention_clause", 
		"validation_clauses", "online_or_offline", "into_clause1", "partition_key_value", 
		"subpartition_key_value", "associate_statistics", "column_association", 
		"function_association", "indextype_name", "using_statistics_type", "statistics_type_name", 
		"default_cost_clause", "cpu_cost", "io_cost", "network_cost", "default_selectivity_clause", 
		"default_selectivity", "storage_table_clause", "unified_auditing", "policy_name", 
		"audit_traditional", "audit_direct_path", "audit_container_clause", "audit_operation_clause", 
		"auditing_by_clause", "audit_user", "audit_schema_object_clause", "sql_operation", 
		"auditing_on_clause", "model_name", "object_name", "profile_name", "sql_statement_shortcut", 
		"drop_index", "rename_object", "grant_statement", "container_clause", 
		"create_directory", "directory_name", "directory_path", "alter_library", 
		"library_editionable", "library_debug", "compiler_parameters_clause", 
		"parameter_value", "library_name", "alter_view", "alter_view_editionable", 
		"create_view", "view_options", "view_alias_constraint", "object_view_clause", 
		"inline_constraint", "inline_ref_constraint", "out_of_line_ref_constraint", 
		"out_of_line_constraint", "constraint_state", "alter_tablespace", "datafile_tempfile_clauses", 
		"tablespace_logging_clauses", "tablespace_group_clause", "tablespace_group_name", 
		"tablespace_state_clauses", "flashback_mode_clause", "new_tablespace_name", 
		"create_tablespace", "permanent_tablespace_clause", "tablespace_encryption_spec", 
		"logging_clause", "extent_management_clause", "segment_management_clause", 
		"temporary_tablespace_clause", "undo_tablespace_clause", "tablespace_retention_clause", 
		"datafile_specification", "tempfile_specification", "datafile_tempfile_spec", 
		"redo_log_file_spec", "autoextend_clause", "maxsize_clause", "build_clause", 
		"parallel_clause", "alter_materialized_view", "alter_mv_option1", "alter_mv_refresh", 
		"rollback_segment", "modify_mv_column_clause", "alter_materialized_view_log", 
		"add_mv_log_column_clause", "move_mv_log_clause", "mv_log_augmentation", 
		"datetime_expr", "interval_expr", "synchronous_or_asynchronous", "including_or_excluding", 
		"create_materialized_view_log", "new_values_clause", "mv_log_purge_clause", 
		"create_materialized_view", "create_mv_refresh", "create_context", "oracle_namespace", 
		"create_cluster", "create_table", "xmltype_table", "xmltype_virtual_columns", 
		"xmltype_column_properties", "xmltype_storage", "xmlschema_spec", "object_table", 
		"oid_index_clause", "oid_clause", "object_properties", "object_table_substitution", 
		"relational_table", "relational_property", "table_partitioning_clauses", 
		"range_partitions", "list_partitions", "hash_partitions", "individual_hash_partitions", 
		"hash_partitions_by_quantity", "hash_partition_quantity", "composite_range_partitions", 
		"composite_list_partitions", "composite_hash_partitions", "reference_partitioning", 
		"reference_partition_desc", "system_partitioning", "range_partition_desc", 
		"list_partition_desc", "subpartition_template", "hash_subpartition_quantity", 
		"subpartition_by_range", "subpartition_by_list", "subpartition_by_hash", 
		"subpartition_name", "range_subpartition_desc", "list_subpartition_desc", 
		"individual_hash_subparts", "hash_subparts_by_quantity", "range_values_clause", 
		"list_values_clause", "table_partition_description", "partitioning_storage_clause", 
		"lob_partitioning_storage", "datatype_null_enable", "size_clause", "table_compression", 
		"physical_attributes_clause", "storage_clause", "deferred_segment_creation", 
		"segment_attributes_clause", "physical_properties", "row_movement_clause", 
		"flashback_archive_clause", "log_grp", "supplemental_table_logging", "supplemental_log_grp_clause", 
		"supplemental_id_key_clause", "allocate_extent_clause", "deallocate_unused_clause", 
		"shrink_clause", "records_per_block_clause", "upgrade_table_clause", "drop_table", 
		"drop_view", "comment_on_column", "enable_or_disable", "allow_or_disallow", 
		"create_synonym", "comment_on_table", "alter_cluster", "cache_or_nocache", 
		"database_name", "alter_database", "startup_clauses", "resetlogs_or_noresetlogs", 
		"upgrade_or_downgrade", "recovery_clauses", "begin_or_end", "general_recovery", 
		"full_database_recovery", "partial_database_recovery", "partial_database_recovery_10g", 
		"managed_standby_recovery", "db_name", "database_file_clauses", "create_datafile_clause", 
		"alter_datafile_clause", "alter_tempfile_clause", "logfile_clauses", "add_logfile_clauses", 
		"log_file_group", "drop_logfile_clauses", "switch_logfile_clause", "supplemental_db_logging", 
		"add_or_drop", "supplemental_plsql_clause", "logfile_descriptor", "controlfile_clauses", 
		"trace_file_clause", "standby_database_clauses", "activate_standby_db_clause", 
		"maximize_standby_db_clause", "register_logfile_clause", "commit_switchover_clause", 
		"start_standby_clause", "stop_standby_clause", "convert_database_clause", 
		"default_settings_clause", "set_time_zone_clause", "instance_clauses", 
		"security_clause", "domain", "database", "edition_name", "filenumber", 
		"filename", "alter_table", "alter_table_properties", "alter_table_properties_1", 
		"alter_iot_clauses", "alter_mapping_table_clause", "alter_overflow_clause", 
		"add_overflow_clause", "enable_disable_clause", "using_index_clause", 
		"index_attributes", "sort_or_nosort", "exceptions_clause", "move_table_clause", 
		"index_org_table_clause", "mapping_table_clause", "key_compression", "index_org_overflow_clause", 
		"column_clauses", "modify_collection_retrieval", "collection_item", "rename_column_clause", 
		"old_column_name", "new_column_name", "add_modify_drop_column_clauses", 
		"drop_column_clause", "modify_column_clauses", "modify_col_properties", 
		"modify_col_substitutable", "add_column_clause", "alter_varray_col_properties", 
		"varray_col_properties", "varray_storage_clause", "lob_segname", "lob_item", 
		"lob_storage_parameters", "lob_storage_clause", "modify_lob_storage_clause", 
		"modify_lob_parameters", "lob_parameters", "lob_deduplicate_clause", "lob_compression_clause", 
		"lob_retention_clause", "encryption_spec", "tablespace", "varray_item", 
		"column_properties", "period_definition", "start_time_column", "end_time_column", 
		"column_definition", "virtual_column_definition", "autogenerated_sequence_definition", 
		"out_of_line_part_storage", "nested_table_col_properties", "nested_item", 
		"substitutable_column_clause", "partition_name", "supplemental_logging_props", 
		"column_or_attribute", "object_type_col_properties", "constraint_clauses", 
		"old_constraint_name", "new_constraint_name", "drop_constraint_clause", 
		"drop_primary_key_or_unique_or_generic_clause", "add_constraint", "add_constraint_clause", 
		"check_constraint", "drop_constraint", "enable_constraint", "disable_constraint", 
		"foreign_key_clause", "references_clause", "on_delete_clause", "unique_key_clause", 
		"primary_key_clause", "anonymous_block", "invoker_rights_clause", "call_spec", 
		"java_spec", "c_spec", "c_agent_in_clause", "c_parameters_clause", "parameter", 
		"default_value_part", "seq_of_declare_specs", "declare_spec", "variable_declaration", 
		"subtype_declaration", "cursor_declaration", "parameter_spec", "exception_declaration", 
		"pragma_declaration", "record_type_def", "field_spec", "ref_cursor_type_def", 
		"type_declaration", "table_type_def", "table_indexed_by_part", "varray_type_def", 
		"seq_of_statements", "label_declaration", "statement", "swallow_to_semi", 
		"assignment_statement", "continue_statement", "exit_statement", "goto_statement", 
		"if_statement", "elsif_part", "else_part", "loop_statement", "cursor_loop_param", 
		"forall_statement", "bounds_clause", "between_bound", "lower_bound", "upper_bound", 
		"null_statement", "raise_statement", "return_statement", "function_call", 
		"procedure_call", "pipe_row_statement", "body", "exception_handler", "trigger_block", 
		"block", "sql_statement", "execute_immediate", "dynamic_returning_clause", 
		"data_manipulation_language_statements", "cursor_manipulation_statements", 
		"close_statement", "open_statement", "fetch_statement", "open_for_statement", 
		"transaction_control_statements", "set_transaction_command", "set_constraint_command", 
		"commit_statement", "write_clause", "rollback_statement", "savepoint_statement", 
		"explain_statement", "select_only_statement", "select_statement", "subquery_factoring_clause", 
		"factoring_element", "search_clause", "cycle_clause", "subquery", "subquery_basic_elements", 
		"subquery_operation_part", "query_block", "selected_list", "from_clause", 
		"select_list_elements", "table_ref_list", "table_ref", "table_ref_aux", 
		"table_ref_aux_internal", "join_clause", "join_on_part", "join_using_part", 
		"outer_join_type", "query_partition_clause", "flashback_query_clause", 
		"pivot_clause", "pivot_element", "pivot_for_clause", "pivot_in_clause", 
		"pivot_in_clause_element", "pivot_in_clause_elements", "unpivot_clause", 
		"unpivot_in_clause", "unpivot_in_elements", "hierarchical_query_clause", 
		"start_part", "group_by_clause", "group_by_elements", "rollup_cube_clause", 
		"grouping_sets_clause", "grouping_sets_elements", "having_clause", "model_clause", 
		"cell_reference_options", "return_rows_clause", "reference_model", "main_model", 
		"model_column_clauses", "model_column_partition_part", "model_column_list", 
		"model_column", "model_rules_clause", "model_rules_part", "model_rules_element", 
		"cell_assignment", "model_iterate_clause", "until_part", "order_by_clause", 
		"order_by_elements", "offset_clause", "fetch_clause", "for_update_clause", 
		"for_update_of_part", "for_update_options", "update_statement", "update_set_clause", 
		"column_based_update_set_clause", "delete_statement", "insert_statement", 
		"single_table_insert", "multi_table_insert", "multi_table_element", "conditional_insert_clause", 
		"conditional_insert_when_part", "conditional_insert_else_part", "insert_into_clause", 
		"values_clause", "merge_statement", "merge_update_clause", "merge_element", 
		"merge_update_delete_part", "merge_insert_clause", "selected_tableview", 
		"lock_table_statement", "wait_nowait_part", "lock_table_element", "lock_mode", 
		"general_table_ref", "static_returning_clause", "error_logging_clause", 
		"error_logging_into_part", "error_logging_reject_part", "dml_table_expression_clause", 
		"table_collection_expression", "subquery_restriction_clause", "sample_clause", 
		"seed_part", "condition", "expressions", "expression", "cursor_expression", 
		"logical_expression", "unary_logical_expression", "logical_operation", 
		"multiset_expression", "relational_expression", "compound_expression", 
		"relational_operator", "in_elements", "between_elements", "concatenation", 
		"interval_expression", "model_expression", "model_expression_element", 
		"single_column_for_loop", "multi_column_for_loop", "unary_expression", 
		"case_statement", "simple_case_statement", "simple_case_when_part", "searched_case_statement", 
		"searched_case_when_part", "case_else_part", "atom", "quantified_expression", 
		"string_function", "standard_function", "literal", "numeric_function_wrapper", 
		"numeric_function", "other_function", "over_clause_keyword", "within_or_over_clause_keyword", 
		"standard_prediction_function_keyword", "over_clause", "windowing_clause", 
		"windowing_type", "windowing_elements", "using_clause", "using_element", 
		"collect_order_by_part", "within_or_over_part", "cost_matrix_clause", 
		"xml_passing_clause", "xml_attributes_clause", "xml_namespaces_clause", 
		"xml_table_column", "xml_general_default_part", "xml_multiuse_expression_element", 
		"xmlroot_param_version_part", "xmlroot_param_standalone_part", "xmlserialize_param_enconding_part", 
		"xmlserialize_param_version_part", "xmlserialize_param_ident_part", "sql_plus_command", 
		"whenever_command", "set_command", "partition_extension_clause", "column_alias", 
		"table_alias", "where_clause", "into_clause", "xml_column_name", "cost_class_name", 
		"attribute_name", "savepoint_name", "rollback_segment_name", "table_var_name", 
		"schema_name", "routine_name", "package_name", "implementation_type_name", 
		"parameter_name", "reference_model_name", "main_model_name", "container_tableview_name", 
		"aggregate_function_name", "query_name", "grantee_name", "role_name", 
		"constraint_name", "label_name", "type_name", "sequence_name", "exception_name", 
		"function_name", "procedure_name", "trigger_name", "variable_name", "index_name", 
		"cursor_name", "record_name", "collection_name", "link_name", "column_name", 
		"tableview_name", "xmltable", "char_set_name", "synonym_name", "schema_object_name", 
		"dir_object_name", "user_object_name", "grant_object_name", "column_list", 
		"paren_column_list", "keep_clause", "function_argument", "function_argument_analytic", 
		"function_argument_modeling", "respect_or_ignore_nulls", "argument", "type_spec", 
		"datatype", "precision_part", "native_datatype_element", "bind_variable", 
		"general_element", "general_element_part", "table_element", "object_privilege", 
		"system_privilege", "constant", "numeric", "numeric_negative", "quoted_string", 
		"identifier", "id_expression", "outer_join_sign", "regular_id", "non_reserved_keywords_in_12c", 
		"non_reserved_keywords_pre12c", "string_function_name", "numeric_function_name",
	];
	public get grammarFileName(): string { return "PlSqlParser.g4"; }
	public get literalNames(): (string | null)[] { return PlSqlParser.literalNames; }
	public get symbolicNames(): (string | null)[] { return PlSqlParser.symbolicNames; }
	public get ruleNames(): string[] { return PlSqlParser.ruleNames; }
	public get serializedATN(): number[] { return PlSqlParser._serializedATN; }

	protected createFailedPredicateException(predicate?: string, message?: string): FailedPredicateException {
		return new FailedPredicateException(this, predicate, message);
	}

	constructor(input: CommonTokenStream) {
		super(input);
		this._interp = new ParserATNSimulator(this, PlSqlParser._ATN, PlSqlParser.DecisionsToDFA, new PredictionContextCache());
	}
	// @RuleVersion(0)
	public program(): ProgramContext {
		let localctx: ProgramContext = new ProgramContext(this, this._ctx, this.state);
		this.enterRule(localctx, 0, PlSqlParser.RULE_program);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 1502;
			this.sql_script();
			this.state = 1503;
			this.match(PlSqlParser.EOF);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public sql_script(): Sql_scriptContext {
		let localctx: Sql_scriptContext = new Sql_scriptContext(this, this._ctx, this.state);
		this.enterRule(localctx, 2, PlSqlParser.RULE_sql_script);
		try {
			let _alt: number;
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 1514;
			this._errHandler.sync(this);
			_alt = this._interp.adaptivePredict(this._input, 2, this._ctx);
			while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) {
				if (_alt === 1) {
					{
					{
					this.state = 1507;
					this._errHandler.sync(this);
					switch ( this._interp.adaptivePredict(this._input, 0, this._ctx) ) {
					case 1:
						{
						this.state = 1505;
						this.unit_statement();
						}
						break;
					case 2:
						{
						this.state = 1506;
						this.sql_plus_command();
						}
						break;
					}
					this.state = 1510;
					this._errHandler.sync(this);
					switch ( this._interp.adaptivePredict(this._input, 1, this._ctx) ) {
					case 1:
						{
						this.state = 1509;
						this.match(PlSqlParser.SEMICOLON);
						}
						break;
					}
					}
					}
				}
				this.state = 1516;
				this._errHandler.sync(this);
				_alt = this._interp.adaptivePredict(this._input, 2, this._ctx);
			}
			this.state = 1517;
			this.match(PlSqlParser.EOF);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public unit_statement(): Unit_statementContext {
		let localctx: Unit_statementContext = new Unit_statementContext(this, this._ctx, this.state);
		this.enterRule(localctx, 4, PlSqlParser.RULE_unit_statement);
		try {
			this.state = 1575;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 3, this._ctx) ) {
			case 1:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 1519;
				this.transaction_control_statements();
				}
				break;
			case 2:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 1520;
				this.alter_cluster();
				}
				break;
			case 3:
				this.enterOuterAlt(localctx, 3);
				{
				this.state = 1521;
				this.alter_database();
				}
				break;
			case 4:
				this.enterOuterAlt(localctx, 4);
				{
				this.state = 1522;
				this.alter_function();
				}
				break;
			case 5:
				this.enterOuterAlt(localctx, 5);
				{
				this.state = 1523;
				this.alter_package();
				}
				break;
			case 6:
				this.enterOuterAlt(localctx, 6);
				{
				this.state = 1524;
				this.alter_procedure();
				}
				break;
			case 7:
				this.enterOuterAlt(localctx, 7);
				{
				this.state = 1525;
				this.alter_sequence();
				}
				break;
			case 8:
				this.enterOuterAlt(localctx, 8);
				{
				this.state = 1526;
				this.alter_session();
				}
				break;
			case 9:
				this.enterOuterAlt(localctx, 9);
				{
				this.state = 1527;
				this.alter_trigger();
				}
				break;
			case 10:
				this.enterOuterAlt(localctx, 10);
				{
				this.state = 1528;
				this.alter_type();
				}
				break;
			case 11:
				this.enterOuterAlt(localctx, 11);
				{
				this.state = 1529;
				this.alter_table();
				}
				break;
			case 12:
				this.enterOuterAlt(localctx, 12);
				{
				this.state = 1530;
				this.alter_tablespace();
				}
				break;
			case 13:
				this.enterOuterAlt(localctx, 13);
				{
				this.state = 1531;
				this.alter_index();
				}
				break;
			case 14:
				this.enterOuterAlt(localctx, 14);
				{
				this.state = 1532;
				this.alter_library();
				}
				break;
			case 15:
				this.enterOuterAlt(localctx, 15);
				{
				this.state = 1533;
				this.alter_materialized_view();
				}
				break;
			case 16:
				this.enterOuterAlt(localctx, 16);
				{
				this.state = 1534;
				this.alter_materialized_view_log();
				}
				break;
			case 17:
				this.enterOuterAlt(localctx, 17);
				{
				this.state = 1535;
				this.alter_user();
				}
				break;
			case 18:
				this.enterOuterAlt(localctx, 18);
				{
				this.state = 1536;
				this.alter_view();
				}
				break;
			case 19:
				this.enterOuterAlt(localctx, 19);
				{
				this.state = 1537;
				this.analyze();
				}
				break;
			case 20:
				this.enterOuterAlt(localctx, 20);
				{
				this.state = 1538;
				this.associate_statistics();
				}
				break;
			case 21:
				this.enterOuterAlt(localctx, 21);
				{
				this.state = 1539;
				this.audit_traditional();
				}
				break;
			case 22:
				this.enterOuterAlt(localctx, 22);
				{
				this.state = 1540;
				this.unified_auditing();
				}
				break;
			case 23:
				this.enterOuterAlt(localctx, 23);
				{
				this.state = 1541;
				this.create_function_body();
				}
				break;
			case 24:
				this.enterOuterAlt(localctx, 24);
				{
				this.state = 1542;
				this.create_procedure_body();
				}
				break;
			case 25:
				this.enterOuterAlt(localctx, 25);
				{
				this.state = 1543;
				this.create_package();
				}
				break;
			case 26:
				this.enterOuterAlt(localctx, 26);
				{
				this.state = 1544;
				this.create_package_body();
				}
				break;
			case 27:
				this.enterOuterAlt(localctx, 27);
				{
				this.state = 1545;
				this.create_index();
				}
				break;
			case 28:
				this.enterOuterAlt(localctx, 28);
				{
				this.state = 1546;
				this.create_table();
				}
				break;
			case 29:
				this.enterOuterAlt(localctx, 29);
				{
				this.state = 1547;
				this.create_tablespace();
				}
				break;
			case 30:
				this.enterOuterAlt(localctx, 30);
				{
				this.state = 1548;
				this.create_cluster();
				}
				break;
			case 31:
				this.enterOuterAlt(localctx, 31);
				{
				this.state = 1549;
				this.create_context();
				}
				break;
			case 32:
				this.enterOuterAlt(localctx, 32);
				{
				this.state = 1550;
				this.create_view();
				}
				break;
			case 33:
				this.enterOuterAlt(localctx, 33);
				{
				this.state = 1551;
				this.create_directory();
				}
				break;
			case 34:
				this.enterOuterAlt(localctx, 34);
				{
				this.state = 1552;
				this.create_materialized_view();
				}
				break;
			case 35:
				this.enterOuterAlt(localctx, 35);
				{
				this.state = 1553;
				this.create_materialized_view_log();
				}
				break;
			case 36:
				this.enterOuterAlt(localctx, 36);
				{
				this.state = 1554;
				this.create_user();
				}
				break;
			case 37:
				this.enterOuterAlt(localctx, 37);
				{
				this.state = 1555;
				this.create_sequence();
				}
				break;
			case 38:
				this.enterOuterAlt(localctx, 38);
				{
				this.state = 1556;
				this.create_trigger();
				}
				break;
			case 39:
				this.enterOuterAlt(localctx, 39);
				{
				this.state = 1557;
				this.create_type();
				}
				break;
			case 40:
				this.enterOuterAlt(localctx, 40);
				{
				this.state = 1558;
				this.create_synonym();
				}
				break;
			case 41:
				this.enterOuterAlt(localctx, 41);
				{
				this.state = 1559;
				this.drop_function();
				}
				break;
			case 42:
				this.enterOuterAlt(localctx, 42);
				{
				this.state = 1560;
				this.drop_package();
				}
				break;
			case 43:
				this.enterOuterAlt(localctx, 43);
				{
				this.state = 1561;
				this.drop_procedure();
				}
				break;
			case 44:
				this.enterOuterAlt(localctx, 44);
				{
				this.state = 1562;
				this.drop_sequence();
				}
				break;
			case 45:
				this.enterOuterAlt(localctx, 45);
				{
				this.state = 1563;
				this.drop_trigger();
				}
				break;
			case 46:
				this.enterOuterAlt(localctx, 46);
				{
				this.state = 1564;
				this.drop_type();
				}
				break;
			case 47:
				this.enterOuterAlt(localctx, 47);
				{
				this.state = 1565;
				this.data_manipulation_language_statements();
				}
				break;
			case 48:
				this.enterOuterAlt(localctx, 48);
				{
				this.state = 1566;
				this.drop_table();
				}
				break;
			case 49:
				this.enterOuterAlt(localctx, 49);
				{
				this.state = 1567;
				this.drop_view();
				}
				break;
			case 50:
				this.enterOuterAlt(localctx, 50);
				{
				this.state = 1568;
				this.drop_index();
				}
				break;
			case 51:
				this.enterOuterAlt(localctx, 51);
				{
				this.state = 1569;
				this.rename_object();
				}
				break;
			case 52:
				this.enterOuterAlt(localctx, 52);
				{
				this.state = 1570;
				this.comment_on_column();
				}
				break;
			case 53:
				this.enterOuterAlt(localctx, 53);
				{
				this.state = 1571;
				this.comment_on_table();
				}
				break;
			case 54:
				this.enterOuterAlt(localctx, 54);
				{
				this.state = 1572;
				this.anonymous_block();
				}
				break;
			case 55:
				this.enterOuterAlt(localctx, 55);
				{
				this.state = 1573;
				this.grant_statement();
				}
				break;
			case 56:
				this.enterOuterAlt(localctx, 56);
				{
				this.state = 1574;
				this.procedure_call();
				}
				break;
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public drop_function(): Drop_functionContext {
		let localctx: Drop_functionContext = new Drop_functionContext(this, this._ctx, this.state);
		this.enterRule(localctx, 6, PlSqlParser.RULE_drop_function);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 1577;
			this.match(PlSqlParser.DROP);
			this.state = 1578;
			this.match(PlSqlParser.FUNCTION);
			this.state = 1579;
			this.function_name();
			this.state = 1580;
			this.match(PlSqlParser.SEMICOLON);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public alter_function(): Alter_functionContext {
		let localctx: Alter_functionContext = new Alter_functionContext(this, this._ctx, this.state);
		this.enterRule(localctx, 8, PlSqlParser.RULE_alter_function);
		let _la: number;
		try {
			let _alt: number;
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 1582;
			this.match(PlSqlParser.ALTER);
			this.state = 1583;
			this.match(PlSqlParser.FUNCTION);
			this.state = 1584;
			this.function_name();
			this.state = 1585;
			this.match(PlSqlParser.COMPILE);
			this.state = 1587;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 4, this._ctx) ) {
			case 1:
				{
				this.state = 1586;
				this.match(PlSqlParser.DEBUG);
				}
				break;
			}
			this.state = 1592;
			this._errHandler.sync(this);
			_alt = this._interp.adaptivePredict(this._input, 5, this._ctx);
			while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) {
				if (_alt === 1) {
					{
					{
					this.state = 1589;
					this.compiler_parameters_clause();
					}
					}
				}
				this.state = 1594;
				this._errHandler.sync(this);
				_alt = this._interp.adaptivePredict(this._input, 5, this._ctx);
			}
			this.state = 1597;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1432) {
				{
				this.state = 1595;
				this.match(PlSqlParser.REUSE);
				this.state = 1596;
				this.match(PlSqlParser.SETTINGS);
				}
			}

			this.state = 1599;
			this.match(PlSqlParser.SEMICOLON);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public create_function_body(): Create_function_bodyContext {
		let localctx: Create_function_bodyContext = new Create_function_bodyContext(this, this._ctx, this.state);
		this.enterRule(localctx, 10, PlSqlParser.RULE_create_function_body);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 1601;
			this.match(PlSqlParser.CREATE);
			this.state = 1604;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1172) {
				{
				this.state = 1602;
				this.match(PlSqlParser.OR);
				this.state = 1603;
				this.match(PlSqlParser.REPLACE);
				}
			}

			this.state = 1606;
			this.match(PlSqlParser.FUNCTION);
			this.state = 1607;
			this.function_name();
			this.state = 1619;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===2223) {
				{
				this.state = 1608;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 1609;
				this.parameter();
				this.state = 1614;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===2229) {
					{
					{
					this.state = 1610;
					this.match(PlSqlParser.COMMA);
					this.state = 1611;
					this.parameter();
					}
					}
					this.state = 1616;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				this.state = 1617;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
			}

			this.state = 1621;
			this.match(PlSqlParser.RETURN);
			this.state = 1622;
			this.type_spec();
			this.state = 1629;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			while (_la===80 || _la===375 || _la===1193 || _la===1424) {
				{
				this.state = 1627;
				this._errHandler.sync(this);
				switch (this._input.LA(1)) {
				case 80:
					{
					this.state = 1623;
					this.invoker_rights_clause();
					}
					break;
				case 1193:
					{
					this.state = 1624;
					this.parallel_enable_clause();
					}
					break;
				case 1424:
					{
					this.state = 1625;
					this.result_cache_clause();
					}
					break;
				case 375:
					{
					this.state = 1626;
					this.match(PlSqlParser.DETERMINISTIC);
					}
					break;
				default:
					throw new NoViableAltException(this);
				}
				}
				this.state = 1631;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			}
			this.state = 1649;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 16, this._ctx) ) {
			case 1:
				{
				{
				this.state = 1633;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===1250) {
					{
					this.state = 1632;
					this.match(PlSqlParser.PIPELINED);
					}
				}

				this.state = 1635;
				_la = this._input.LA(1);
				if(!(_la===61 || _la===695)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				this.state = 1644;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 15, this._ctx) ) {
				case 1:
					{
					this.state = 1637;
					this._errHandler.sync(this);
					switch ( this._interp.adaptivePredict(this._input, 13, this._ctx) ) {
					case 1:
						{
						this.state = 1636;
						this.match(PlSqlParser.DECLARE);
						}
						break;
					}
					this.state = 1640;
					this._errHandler.sync(this);
					switch ( this._interp.adaptivePredict(this._input, 14, this._ctx) ) {
					case 1:
						{
						this.state = 1639;
						this.seq_of_declare_specs();
						}
						break;
					}
					this.state = 1642;
					this.body();
					}
					break;
				case 2:
					{
					this.state = 1643;
					this.call_spec();
					}
					break;
				}
				}
				}
				break;
			case 2:
				{
				this.state = 1646;
				_la = this._input.LA(1);
				if(!(_la===32 || _la===1250)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				this.state = 1647;
				this.match(PlSqlParser.USING);
				this.state = 1648;
				this.implementation_type_name();
				}
				break;
			}
			this.state = 1651;
			this.match(PlSqlParser.SEMICOLON);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public parallel_enable_clause(): Parallel_enable_clauseContext {
		let localctx: Parallel_enable_clauseContext = new Parallel_enable_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 12, PlSqlParser.RULE_parallel_enable_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 1653;
			this.match(PlSqlParser.PARALLEL_ENABLE);
			this.state = 1655;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===2223) {
				{
				this.state = 1654;
				this.partition_by_clause();
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public partition_by_clause(): Partition_by_clauseContext {
		let localctx: Partition_by_clauseContext = new Partition_by_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 14, PlSqlParser.RULE_partition_by_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 1657;
			this.match(PlSqlParser.LEFT_PAREN);
			this.state = 1658;
			this.match(PlSqlParser.PARTITION);
			this.state = 1659;
			this.expression();
			this.state = 1660;
			this.match(PlSqlParser.BY);
			this.state = 1664;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 48:
				{
				this.state = 1661;
				this.match(PlSqlParser.ANY);
				}
				break;
			case 582:
			case 761:
			case 1344:
				{
				this.state = 1662;
				_la = this._input.LA(1);
				if(!(_la===582 || _la===761 || _la===1344)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				this.state = 1663;
				this.paren_column_list();
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
			this.state = 1667;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===197 || _la===1168) {
				{
				this.state = 1666;
				this.streaming_clause();
				}
			}

			this.state = 1669;
			this.match(PlSqlParser.RIGHT_PAREN);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public result_cache_clause(): Result_cache_clauseContext {
		let localctx: Result_cache_clauseContext = new Result_cache_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 16, PlSqlParser.RULE_result_cache_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 1671;
			this.match(PlSqlParser.RESULT_CACHE);
			this.state = 1673;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1398) {
				{
				this.state = 1672;
				this.relies_on_part();
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public relies_on_part(): Relies_on_partContext {
		let localctx: Relies_on_partContext = new Relies_on_partContext(this, this._ctx, this.state);
		this.enterRule(localctx, 18, PlSqlParser.RULE_relies_on_part);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 1675;
			this.match(PlSqlParser.RELIES_ON);
			this.state = 1676;
			this.match(PlSqlParser.LEFT_PAREN);
			this.state = 1677;
			this.tableview_name();
			this.state = 1682;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			while (_la===2229) {
				{
				{
				this.state = 1678;
				this.match(PlSqlParser.COMMA);
				this.state = 1679;
				this.tableview_name();
				}
				}
				this.state = 1684;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			}
			this.state = 1685;
			this.match(PlSqlParser.RIGHT_PAREN);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public streaming_clause(): Streaming_clauseContext {
		let localctx: Streaming_clauseContext = new Streaming_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 20, PlSqlParser.RULE_streaming_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 1687;
			_la = this._input.LA(1);
			if(!(_la===197 || _la===1168)) {
			this._errHandler.recoverInline(this);
			}
			else {
				this._errHandler.reportMatch(this);
			    this.consume();
			}
			this.state = 1688;
			this.expression();
			this.state = 1689;
			this.match(PlSqlParser.BY);
			this.state = 1690;
			this.paren_column_list();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public drop_package(): Drop_packageContext {
		let localctx: Drop_packageContext = new Drop_packageContext(this, this._ctx, this.state);
		this.enterRule(localctx, 22, PlSqlParser.RULE_drop_package);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 1692;
			this.match(PlSqlParser.DROP);
			this.state = 1693;
			this.match(PlSqlParser.PACKAGE);
			this.state = 1695;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 22, this._ctx) ) {
			case 1:
				{
				this.state = 1694;
				this.match(PlSqlParser.BODY);
				}
				break;
			}
			this.state = 1700;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 23, this._ctx) ) {
			case 1:
				{
				this.state = 1697;
				this.schema_object_name();
				this.state = 1698;
				this.match(PlSqlParser.PERIOD);
				}
				break;
			}
			this.state = 1702;
			this.package_name();
			this.state = 1703;
			this.match(PlSqlParser.SEMICOLON);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public alter_package(): Alter_packageContext {
		let localctx: Alter_packageContext = new Alter_packageContext(this, this._ctx, this.state);
		this.enterRule(localctx, 24, PlSqlParser.RULE_alter_package);
		let _la: number;
		try {
			let _alt: number;
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 1705;
			this.match(PlSqlParser.ALTER);
			this.state = 1706;
			this.match(PlSqlParser.PACKAGE);
			this.state = 1707;
			this.package_name();
			this.state = 1708;
			this.match(PlSqlParser.COMPILE);
			this.state = 1710;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 24, this._ctx) ) {
			case 1:
				{
				this.state = 1709;
				this.match(PlSqlParser.DEBUG);
				}
				break;
			}
			this.state = 1713;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 25, this._ctx) ) {
			case 1:
				{
				this.state = 1712;
				_la = this._input.LA(1);
				if(!(_la===133 || _la===1191 || _la===1550)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				}
				break;
			}
			this.state = 1718;
			this._errHandler.sync(this);
			_alt = this._interp.adaptivePredict(this._input, 26, this._ctx);
			while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) {
				if (_alt === 1) {
					{
					{
					this.state = 1715;
					this.compiler_parameters_clause();
					}
					}
				}
				this.state = 1720;
				this._errHandler.sync(this);
				_alt = this._interp.adaptivePredict(this._input, 26, this._ctx);
			}
			this.state = 1723;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1432) {
				{
				this.state = 1721;
				this.match(PlSqlParser.REUSE);
				this.state = 1722;
				this.match(PlSqlParser.SETTINGS);
				}
			}

			this.state = 1725;
			this.match(PlSqlParser.SEMICOLON);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public create_package(): Create_packageContext {
		let localctx: Create_packageContext = new Create_packageContext(this, this._ctx, this.state);
		this.enterRule(localctx, 26, PlSqlParser.RULE_create_package);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 1727;
			this.match(PlSqlParser.CREATE);
			this.state = 1730;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1172) {
				{
				this.state = 1728;
				this.match(PlSqlParser.OR);
				this.state = 1729;
				this.match(PlSqlParser.REPLACE);
				}
			}

			this.state = 1732;
			this.match(PlSqlParser.PACKAGE);
			this.state = 1736;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 29, this._ctx) ) {
			case 1:
				{
				this.state = 1733;
				this.schema_object_name();
				this.state = 1734;
				this.match(PlSqlParser.PERIOD);
				}
				break;
			}
			this.state = 1738;
			this.package_name();
			this.state = 1740;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===80) {
				{
				this.state = 1739;
				this.invoker_rights_clause();
				}
			}

			this.state = 1742;
			_la = this._input.LA(1);
			if(!(_la===61 || _la===695)) {
			this._errHandler.recoverInline(this);
			}
			else {
				this._errHandler.reportMatch(this);
			    this.consume();
			}
			this.state = 1746;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			while ((((_la) & ~0x1F) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & 2684286839) !== 0) || ((((_la - 64)) & ~0x1F) === 0 && ((1 << (_la - 64)) & 3220168703) !== 0) || ((((_la - 96)) & ~0x1F) === 0 && ((1 << (_la - 96)) & 4294965247) !== 0) || ((((_la - 128)) & ~0x1F) === 0 && ((1 << (_la - 128)) & 2147221503) !== 0) || ((((_la - 160)) & ~0x1F) === 0 && ((1 << (_la - 160)) & 4293910527) !== 0) || ((((_la - 192)) & ~0x1F) === 0 && ((1 << (_la - 192)) & 4294967295) !== 0) || ((((_la - 224)) & ~0x1F) === 0 && ((1 << (_la - 224)) & 4160749311) !== 0) || ((((_la - 256)) & ~0x1F) === 0 && ((1 << (_la - 256)) & 4294967295) !== 0) || ((((_la - 289)) & ~0x1F) === 0 && ((1 << (_la - 289)) & 2147483647) !== 0) || ((((_la - 321)) & ~0x1F) === 0 && ((1 << (_la - 321)) & 3221225407) !== 0) || ((((_la - 353)) & ~0x1F) === 0 && ((1 << (_la - 353)) & 4294705151) !== 0) || ((((_la - 385)) & ~0x1F) === 0 && ((1 << (_la - 385)) & 2080372479) !== 0) || ((((_la - 417)) & ~0x1F) === 0 && ((1 << (_la - 417)) & 4026433535) !== 0) || ((((_la - 449)) & ~0x1F) === 0 && ((1 << (_la - 449)) & 4261412863) !== 0) || ((((_la - 481)) & ~0x1F) === 0 && ((1 << (_la - 481)) & 4294967295) !== 0) || ((((_la - 513)) & ~0x1F) === 0 && ((1 << (_la - 513)) & 4294967295) !== 0) || ((((_la - 545)) & ~0x1F) === 0 && ((1 << (_la - 545)) & 3925868029) !== 0) || ((((_la - 577)) & ~0x1F) === 0 && ((1 << (_la - 577)) & 4278189823) !== 0) || ((((_la - 609)) & ~0x1F) === 0 && ((1 << (_la - 609)) & 4290772991) !== 0) || ((((_la - 641)) & ~0x1F) === 0 && ((1 << (_la - 641)) & 4026529791) !== 0) || ((((_la - 673)) & ~0x1F) === 0 && ((1 << (_la - 673)) & 4290478079) !== 0) || ((((_la - 705)) & ~0x1F) === 0 && ((1 << (_la - 705)) & 4294967295) !== 0) || ((((_la - 737)) & ~0x1F) === 0 && ((1 << (_la - 737)) & 4293918719) !== 0) || ((((_la - 769)) & ~0x1F) === 0 && ((1 << (_la - 769)) & 4294967167) !== 0) || ((((_la - 801)) & ~0x1F) === 0 && ((1 << (_la - 801)) & 4294967295) !== 0) || ((((_la - 833)) & ~0x1F) === 0 && ((1 << (_la - 833)) & 4160749055) !== 0) || ((((_la - 865)) & ~0x1F) === 0 && ((1 << (_la - 865)) & 4290772991) !== 0) || ((((_la - 897)) & ~0x1F) === 0 && ((1 << (_la - 897)) & 4294967295) !== 0) || ((((_la - 929)) & ~0x1F) === 0 && ((1 << (_la - 929)) & 4278190079) !== 0) || ((((_la - 961)) & ~0x1F) === 0 && ((1 << (_la - 961)) & 4294967295) !== 0) || ((((_la - 993)) & ~0x1F) === 0 && ((1 << (_la - 993)) & 4294967295) !== 0) || ((((_la - 1025)) & ~0x1F) === 0 && ((1 << (_la - 1025)) & 4294967295) !== 0) || ((((_la - 1057)) & ~0x1F) === 0 && ((1 << (_la - 1057)) & 2147418111) !== 0) || ((((_la - 1089)) & ~0x1F) === 0 && ((1 << (_la - 1089)) & 4227858175) !== 0) || ((((_la - 1121)) & ~0x1F) === 0 && ((1 << (_la - 1121)) & 4293918559) !== 0) || ((((_la - 1153)) & ~0x1F) === 0 && ((1 << (_la - 1153)) & 4294410239) !== 0) || ((((_la - 1185)) & ~0x1F) === 0 && ((1 << (_la - 1185)) & 4294965247) !== 0) || ((((_la - 1217)) & ~0x1F) === 0 && ((1 << (_la - 1217)) & 4279827455) !== 0) || ((((_la - 1249)) & ~0x1F) === 0 && ((1 << (_la - 1249)) & 4294967291) !== 0) || ((((_la - 1281)) & ~0x1F) === 0 && ((1 << (_la - 1281)) & 4227858431) !== 0) || ((((_la - 1313)) & ~0x1F) === 0 && ((1 << (_la - 1313)) & 4294965247) !== 0) || ((((_la - 1345)) & ~0x1F) === 0 && ((1 << (_la - 1345)) & 4294967295) !== 0) || ((((_la - 1377)) & ~0x1F) === 0 && ((1 << (_la - 1377)) & 4292870143) !== 0) || ((((_la - 1409)) & ~0x1F) === 0 && ((1 << (_la - 1409)) & 4261412799) !== 0) || ((((_la - 1441)) & ~0x1F) === 0 && ((1 << (_la - 1441)) & 4294967295) !== 0) || ((((_la - 1473)) & ~0x1F) === 0 && ((1 << (_la - 1473)) & 4261281791) !== 0) || ((((_la - 1505)) & ~0x1F) === 0 && ((1 << (_la - 1505)) & 3221221375) !== 0) || ((((_la - 1537)) & ~0x1F) === 0 && ((1 << (_la - 1537)) & 4294967295) !== 0) || ((((_la - 1570)) & ~0x1F) === 0 && ((1 << (_la - 1570)) & 4294967295) !== 0) || ((((_la - 1602)) & ~0x1F) === 0 && ((1 << (_la - 1602)) & 4261412863) !== 0) || ((((_la - 1634)) & ~0x1F) === 0 && ((1 << (_la - 1634)) & 4294967295) !== 0) || ((((_la - 1666)) & ~0x1F) === 0 && ((1 << (_la - 1666)) & 4294967295) !== 0) || ((((_la - 1698)) & ~0x1F) === 0 && ((1 << (_la - 1698)) & 4294967295) !== 0) || ((((_la - 1730)) & ~0x1F) === 0 && ((1 << (_la - 1730)) & 4294967295) !== 0) || ((((_la - 1762)) & ~0x1F) === 0 && ((1 << (_la - 1762)) & 4294967295) !== 0) || ((((_la - 1794)) & ~0x1F) === 0 && ((1 << (_la - 1794)) & 4294967295) !== 0) || ((((_la - 1826)) & ~0x1F) === 0 && ((1 << (_la - 1826)) & 4294967295) !== 0) || ((((_la - 1858)) & ~0x1F) === 0 && ((1 << (_la - 1858)) & 4294967295) !== 0) || ((((_la - 1890)) & ~0x1F) === 0 && ((1 << (_la - 1890)) & 4294967295) !== 0) || ((((_la - 1922)) & ~0x1F) === 0 && ((1 << (_la - 1922)) & 4294901759) !== 0) || ((((_la - 1954)) & ~0x1F) === 0 && ((1 << (_la - 1954)) & 4294966271) !== 0) || ((((_la - 1986)) & ~0x1F) === 0 && ((1 << (_la - 1986)) & 4294868991) !== 0) || ((((_la - 2018)) & ~0x1F) === 0 && ((1 << (_la - 2018)) & 4294967167) !== 0) || ((((_la - 2050)) & ~0x1F) === 0 && ((1 << (_la - 2050)) & 4286578687) !== 0) || ((((_la - 2082)) & ~0x1F) === 0 && ((1 << (_la - 2082)) & 4294836223) !== 0) || ((((_la - 2115)) & ~0x1F) === 0 && ((1 << (_la - 2115)) & 3758092223) !== 0) || ((((_la - 2147)) & ~0x1F) === 0 && ((1 << (_la - 2147)) & 4293918719) !== 0) || ((((_la - 2179)) & ~0x1F) === 0 && ((1 << (_la - 2179)) & 4294965247) !== 0) || ((((_la - 2211)) & ~0x1F) === 0 && ((1 << (_la - 2211)) & 545) !== 0) || _la===2246 || _la===2252) {
				{
				{
				this.state = 1743;
				this.package_obj_spec();
				}
				}
				this.state = 1748;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			}
			this.state = 1749;
			this.match(PlSqlParser.END);
			this.state = 1751;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & 2684286839) !== 0) || ((((_la - 64)) & ~0x1F) === 0 && ((1 << (_la - 64)) & 3220168703) !== 0) || ((((_la - 96)) & ~0x1F) === 0 && ((1 << (_la - 96)) & 4294965247) !== 0) || ((((_la - 128)) & ~0x1F) === 0 && ((1 << (_la - 128)) & 2147221503) !== 0) || ((((_la - 160)) & ~0x1F) === 0 && ((1 << (_la - 160)) & 4293910527) !== 0) || ((((_la - 192)) & ~0x1F) === 0 && ((1 << (_la - 192)) & 4294967295) !== 0) || ((((_la - 224)) & ~0x1F) === 0 && ((1 << (_la - 224)) & 4160749311) !== 0) || ((((_la - 256)) & ~0x1F) === 0 && ((1 << (_la - 256)) & 4294967295) !== 0) || ((((_la - 289)) & ~0x1F) === 0 && ((1 << (_la - 289)) & 2147483647) !== 0) || ((((_la - 321)) & ~0x1F) === 0 && ((1 << (_la - 321)) & 3221225407) !== 0) || ((((_la - 353)) & ~0x1F) === 0 && ((1 << (_la - 353)) & 4294705151) !== 0) || ((((_la - 385)) & ~0x1F) === 0 && ((1 << (_la - 385)) & 2080372479) !== 0) || ((((_la - 417)) & ~0x1F) === 0 && ((1 << (_la - 417)) & 4026433535) !== 0) || ((((_la - 449)) & ~0x1F) === 0 && ((1 << (_la - 449)) & 4261412863) !== 0) || ((((_la - 481)) & ~0x1F) === 0 && ((1 << (_la - 481)) & 4294967295) !== 0) || ((((_la - 513)) & ~0x1F) === 0 && ((1 << (_la - 513)) & 4294967295) !== 0) || ((((_la - 545)) & ~0x1F) === 0 && ((1 << (_la - 545)) & 3925868029) !== 0) || ((((_la - 577)) & ~0x1F) === 0 && ((1 << (_la - 577)) & 4278189823) !== 0) || ((((_la - 609)) & ~0x1F) === 0 && ((1 << (_la - 609)) & 4290772991) !== 0) || ((((_la - 641)) & ~0x1F) === 0 && ((1 << (_la - 641)) & 4026529791) !== 0) || ((((_la - 673)) & ~0x1F) === 0 && ((1 << (_la - 673)) & 4290478079) !== 0) || ((((_la - 705)) & ~0x1F) === 0 && ((1 << (_la - 705)) & 4294967295) !== 0) || ((((_la - 737)) & ~0x1F) === 0 && ((1 << (_la - 737)) & 4293918719) !== 0) || ((((_la - 769)) & ~0x1F) === 0 && ((1 << (_la - 769)) & 4294967167) !== 0) || ((((_la - 801)) & ~0x1F) === 0 && ((1 << (_la - 801)) & 4294967295) !== 0) || ((((_la - 833)) & ~0x1F) === 0 && ((1 << (_la - 833)) & 4160749055) !== 0) || ((((_la - 865)) & ~0x1F) === 0 && ((1 << (_la - 865)) & 4290772991) !== 0) || ((((_la - 897)) & ~0x1F) === 0 && ((1 << (_la - 897)) & 4294967295) !== 0) || ((((_la - 929)) & ~0x1F) === 0 && ((1 << (_la - 929)) & 4278190079) !== 0) || ((((_la - 961)) & ~0x1F) === 0 && ((1 << (_la - 961)) & 4294967295) !== 0) || ((((_la - 993)) & ~0x1F) === 0 && ((1 << (_la - 993)) & 4294967295) !== 0) || ((((_la - 1025)) & ~0x1F) === 0 && ((1 << (_la - 1025)) & 4294967295) !== 0) || ((((_la - 1057)) & ~0x1F) === 0 && ((1 << (_la - 1057)) & 2147418111) !== 0) || ((((_la - 1089)) & ~0x1F) === 0 && ((1 << (_la - 1089)) & 4227858175) !== 0) || ((((_la - 1121)) & ~0x1F) === 0 && ((1 << (_la - 1121)) & 4293918559) !== 0) || ((((_la - 1153)) & ~0x1F) === 0 && ((1 << (_la - 1153)) & 4294410239) !== 0) || ((((_la - 1185)) & ~0x1F) === 0 && ((1 << (_la - 1185)) & 4294965247) !== 0) || ((((_la - 1217)) & ~0x1F) === 0 && ((1 << (_la - 1217)) & 4279827455) !== 0) || ((((_la - 1249)) & ~0x1F) === 0 && ((1 << (_la - 1249)) & 4294967291) !== 0) || ((((_la - 1281)) & ~0x1F) === 0 && ((1 << (_la - 1281)) & 4227858431) !== 0) || ((((_la - 1313)) & ~0x1F) === 0 && ((1 << (_la - 1313)) & 4294965247) !== 0) || ((((_la - 1345)) & ~0x1F) === 0 && ((1 << (_la - 1345)) & 4294967295) !== 0) || ((((_la - 1377)) & ~0x1F) === 0 && ((1 << (_la - 1377)) & 4292870143) !== 0) || ((((_la - 1409)) & ~0x1F) === 0 && ((1 << (_la - 1409)) & 4261412799) !== 0) || ((((_la - 1441)) & ~0x1F) === 0 && ((1 << (_la - 1441)) & 4294967295) !== 0) || ((((_la - 1473)) & ~0x1F) === 0 && ((1 << (_la - 1473)) & 4261281791) !== 0) || ((((_la - 1505)) & ~0x1F) === 0 && ((1 << (_la - 1505)) & 3221221375) !== 0) || ((((_la - 1537)) & ~0x1F) === 0 && ((1 << (_la - 1537)) & 4294967295) !== 0) || ((((_la - 1570)) & ~0x1F) === 0 && ((1 << (_la - 1570)) & 4294967295) !== 0) || ((((_la - 1602)) & ~0x1F) === 0 && ((1 << (_la - 1602)) & 4261412863) !== 0) || ((((_la - 1634)) & ~0x1F) === 0 && ((1 << (_la - 1634)) & 4294967295) !== 0) || ((((_la - 1666)) & ~0x1F) === 0 && ((1 << (_la - 1666)) & 4294967295) !== 0) || ((((_la - 1698)) & ~0x1F) === 0 && ((1 << (_la - 1698)) & 4294967295) !== 0) || ((((_la - 1730)) & ~0x1F) === 0 && ((1 << (_la - 1730)) & 4294967295) !== 0) || ((((_la - 1762)) & ~0x1F) === 0 && ((1 << (_la - 1762)) & 4294967295) !== 0) || ((((_la - 1794)) & ~0x1F) === 0 && ((1 << (_la - 1794)) & 4294967295) !== 0) || ((((_la - 1826)) & ~0x1F) === 0 && ((1 << (_la - 1826)) & 4294967295) !== 0) || ((((_la - 1858)) & ~0x1F) === 0 && ((1 << (_la - 1858)) & 4294967295) !== 0) || ((((_la - 1890)) & ~0x1F) === 0 && ((1 << (_la - 1890)) & 4294967295) !== 0) || ((((_la - 1922)) & ~0x1F) === 0 && ((1 << (_la - 1922)) & 4294901759) !== 0) || ((((_la - 1954)) & ~0x1F) === 0 && ((1 << (_la - 1954)) & 4294966271) !== 0) || ((((_la - 1986)) & ~0x1F) === 0 && ((1 << (_la - 1986)) & 4294868991) !== 0) || ((((_la - 2018)) & ~0x1F) === 0 && ((1 << (_la - 2018)) & 4294967167) !== 0) || ((((_la - 2050)) & ~0x1F) === 0 && ((1 << (_la - 2050)) & 4286578687) !== 0) || ((((_la - 2082)) & ~0x1F) === 0 && ((1 << (_la - 2082)) & 4294836223) !== 0) || ((((_la - 2115)) & ~0x1F) === 0 && ((1 << (_la - 2115)) & 3758092223) !== 0) || ((((_la - 2147)) & ~0x1F) === 0 && ((1 << (_la - 2147)) & 4293918719) !== 0) || ((((_la - 2179)) & ~0x1F) === 0 && ((1 << (_la - 2179)) & 4294965247) !== 0) || ((((_la - 2211)) & ~0x1F) === 0 && ((1 << (_la - 2211)) & 545) !== 0) || _la===2246 || _la===2252) {
				{
				this.state = 1750;
				this.package_name();
				}
			}

			this.state = 1753;
			this.match(PlSqlParser.SEMICOLON);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public create_package_body(): Create_package_bodyContext {
		let localctx: Create_package_bodyContext = new Create_package_bodyContext(this, this._ctx, this.state);
		this.enterRule(localctx, 28, PlSqlParser.RULE_create_package_body);
		let _la: number;
		try {
			let _alt: number;
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 1755;
			this.match(PlSqlParser.CREATE);
			this.state = 1758;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1172) {
				{
				this.state = 1756;
				this.match(PlSqlParser.OR);
				this.state = 1757;
				this.match(PlSqlParser.REPLACE);
				}
			}

			this.state = 1760;
			this.match(PlSqlParser.PACKAGE);
			this.state = 1761;
			this.match(PlSqlParser.BODY);
			this.state = 1765;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 34, this._ctx) ) {
			case 1:
				{
				this.state = 1762;
				this.schema_object_name();
				this.state = 1763;
				this.match(PlSqlParser.PERIOD);
				}
				break;
			}
			this.state = 1767;
			this.package_name();
			this.state = 1768;
			_la = this._input.LA(1);
			if(!(_la===61 || _la===695)) {
			this._errHandler.recoverInline(this);
			}
			else {
				this._errHandler.reportMatch(this);
			    this.consume();
			}
			this.state = 1772;
			this._errHandler.sync(this);
			_alt = this._interp.adaptivePredict(this._input, 35, this._ctx);
			while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) {
				if (_alt === 1) {
					{
					{
					this.state = 1769;
					this.package_obj_body();
					}
					}
				}
				this.state = 1774;
				this._errHandler.sync(this);
				_alt = this._interp.adaptivePredict(this._input, 35, this._ctx);
			}
			this.state = 1777;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===102) {
				{
				this.state = 1775;
				this.match(PlSqlParser.BEGIN);
				this.state = 1776;
				this.seq_of_statements();
				}
			}

			this.state = 1779;
			this.match(PlSqlParser.END);
			this.state = 1781;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & 2684286839) !== 0) || ((((_la - 64)) & ~0x1F) === 0 && ((1 << (_la - 64)) & 3220168703) !== 0) || ((((_la - 96)) & ~0x1F) === 0 && ((1 << (_la - 96)) & 4294965247) !== 0) || ((((_la - 128)) & ~0x1F) === 0 && ((1 << (_la - 128)) & 2147221503) !== 0) || ((((_la - 160)) & ~0x1F) === 0 && ((1 << (_la - 160)) & 4293910527) !== 0) || ((((_la - 192)) & ~0x1F) === 0 && ((1 << (_la - 192)) & 4294967295) !== 0) || ((((_la - 224)) & ~0x1F) === 0 && ((1 << (_la - 224)) & 4160749311) !== 0) || ((((_la - 256)) & ~0x1F) === 0 && ((1 << (_la - 256)) & 4294967295) !== 0) || ((((_la - 289)) & ~0x1F) === 0 && ((1 << (_la - 289)) & 2147483647) !== 0) || ((((_la - 321)) & ~0x1F) === 0 && ((1 << (_la - 321)) & 3221225407) !== 0) || ((((_la - 353)) & ~0x1F) === 0 && ((1 << (_la - 353)) & 4294705151) !== 0) || ((((_la - 385)) & ~0x1F) === 0 && ((1 << (_la - 385)) & 2080372479) !== 0) || ((((_la - 417)) & ~0x1F) === 0 && ((1 << (_la - 417)) & 4026433535) !== 0) || ((((_la - 449)) & ~0x1F) === 0 && ((1 << (_la - 449)) & 4261412863) !== 0) || ((((_la - 481)) & ~0x1F) === 0 && ((1 << (_la - 481)) & 4294967295) !== 0) || ((((_la - 513)) & ~0x1F) === 0 && ((1 << (_la - 513)) & 4294967295) !== 0) || ((((_la - 545)) & ~0x1F) === 0 && ((1 << (_la - 545)) & 3925868029) !== 0) || ((((_la - 577)) & ~0x1F) === 0 && ((1 << (_la - 577)) & 4278189823) !== 0) || ((((_la - 609)) & ~0x1F) === 0 && ((1 << (_la - 609)) & 4290772991) !== 0) || ((((_la - 641)) & ~0x1F) === 0 && ((1 << (_la - 641)) & 4026529791) !== 0) || ((((_la - 673)) & ~0x1F) === 0 && ((1 << (_la - 673)) & 4290478079) !== 0) || ((((_la - 705)) & ~0x1F) === 0 && ((1 << (_la - 705)) & 4294967295) !== 0) || ((((_la - 737)) & ~0x1F) === 0 && ((1 << (_la - 737)) & 4293918719) !== 0) || ((((_la - 769)) & ~0x1F) === 0 && ((1 << (_la - 769)) & 4294967167) !== 0) || ((((_la - 801)) & ~0x1F) === 0 && ((1 << (_la - 801)) & 4294967295) !== 0) || ((((_la - 833)) & ~0x1F) === 0 && ((1 << (_la - 833)) & 4160749055) !== 0) || ((((_la - 865)) & ~0x1F) === 0 && ((1 << (_la - 865)) & 4290772991) !== 0) || ((((_la - 897)) & ~0x1F) === 0 && ((1 << (_la - 897)) & 4294967295) !== 0) || ((((_la - 929)) & ~0x1F) === 0 && ((1 << (_la - 929)) & 4278190079) !== 0) || ((((_la - 961)) & ~0x1F) === 0 && ((1 << (_la - 961)) & 4294967295) !== 0) || ((((_la - 993)) & ~0x1F) === 0 && ((1 << (_la - 993)) & 4294967295) !== 0) || ((((_la - 1025)) & ~0x1F) === 0 && ((1 << (_la - 1025)) & 4294967295) !== 0) || ((((_la - 1057)) & ~0x1F) === 0 && ((1 << (_la - 1057)) & 2147418111) !== 0) || ((((_la - 1089)) & ~0x1F) === 0 && ((1 << (_la - 1089)) & 4227858175) !== 0) || ((((_la - 1121)) & ~0x1F) === 0 && ((1 << (_la - 1121)) & 4293918559) !== 0) || ((((_la - 1153)) & ~0x1F) === 0 && ((1 << (_la - 1153)) & 4294410239) !== 0) || ((((_la - 1185)) & ~0x1F) === 0 && ((1 << (_la - 1185)) & 4294965247) !== 0) || ((((_la - 1217)) & ~0x1F) === 0 && ((1 << (_la - 1217)) & 4279827455) !== 0) || ((((_la - 1249)) & ~0x1F) === 0 && ((1 << (_la - 1249)) & 4294967291) !== 0) || ((((_la - 1281)) & ~0x1F) === 0 && ((1 << (_la - 1281)) & 4227858431) !== 0) || ((((_la - 1313)) & ~0x1F) === 0 && ((1 << (_la - 1313)) & 4294965247) !== 0) || ((((_la - 1345)) & ~0x1F) === 0 && ((1 << (_la - 1345)) & 4294967295) !== 0) || ((((_la - 1377)) & ~0x1F) === 0 && ((1 << (_la - 1377)) & 4292870143) !== 0) || ((((_la - 1409)) & ~0x1F) === 0 && ((1 << (_la - 1409)) & 4261412799) !== 0) || ((((_la - 1441)) & ~0x1F) === 0 && ((1 << (_la - 1441)) & 4294967295) !== 0) || ((((_la - 1473)) & ~0x1F) === 0 && ((1 << (_la - 1473)) & 4261281791) !== 0) || ((((_la - 1505)) & ~0x1F) === 0 && ((1 << (_la - 1505)) & 3221221375) !== 0) || ((((_la - 1537)) & ~0x1F) === 0 && ((1 << (_la - 1537)) & 4294967295) !== 0) || ((((_la - 1570)) & ~0x1F) === 0 && ((1 << (_la - 1570)) & 4294967295) !== 0) || ((((_la - 1602)) & ~0x1F) === 0 && ((1 << (_la - 1602)) & 4261412863) !== 0) || ((((_la - 1634)) & ~0x1F) === 0 && ((1 << (_la - 1634)) & 4294967295) !== 0) || ((((_la - 1666)) & ~0x1F) === 0 && ((1 << (_la - 1666)) & 4294967295) !== 0) || ((((_la - 1698)) & ~0x1F) === 0 && ((1 << (_la - 1698)) & 4294967295) !== 0) || ((((_la - 1730)) & ~0x1F) === 0 && ((1 << (_la - 1730)) & 4294967295) !== 0) || ((((_la - 1762)) & ~0x1F) === 0 && ((1 << (_la - 1762)) & 4294967295) !== 0) || ((((_la - 1794)) & ~0x1F) === 0 && ((1 << (_la - 1794)) & 4294967295) !== 0) || ((((_la - 1826)) & ~0x1F) === 0 && ((1 << (_la - 1826)) & 4294967295) !== 0) || ((((_la - 1858)) & ~0x1F) === 0 && ((1 << (_la - 1858)) & 4294967295) !== 0) || ((((_la - 1890)) & ~0x1F) === 0 && ((1 << (_la - 1890)) & 4294967295) !== 0) || ((((_la - 1922)) & ~0x1F) === 0 && ((1 << (_la - 1922)) & 4294901759) !== 0) || ((((_la - 1954)) & ~0x1F) === 0 && ((1 << (_la - 1954)) & 4294966271) !== 0) || ((((_la - 1986)) & ~0x1F) === 0 && ((1 << (_la - 1986)) & 4294868991) !== 0) || ((((_la - 2018)) & ~0x1F) === 0 && ((1 << (_la - 2018)) & 4294967167) !== 0) || ((((_la - 2050)) & ~0x1F) === 0 && ((1 << (_la - 2050)) & 4286578687) !== 0) || ((((_la - 2082)) & ~0x1F) === 0 && ((1 << (_la - 2082)) & 4294836223) !== 0) || ((((_la - 2115)) & ~0x1F) === 0 && ((1 << (_la - 2115)) & 3758092223) !== 0) || ((((_la - 2147)) & ~0x1F) === 0 && ((1 << (_la - 2147)) & 4293918719) !== 0) || ((((_la - 2179)) & ~0x1F) === 0 && ((1 << (_la - 2179)) & 4294965247) !== 0) || ((((_la - 2211)) & ~0x1F) === 0 && ((1 << (_la - 2211)) & 545) !== 0) || _la===2246 || _la===2252) {
				{
				this.state = 1780;
				this.package_name();
				}
			}

			this.state = 1783;
			this.match(PlSqlParser.SEMICOLON);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public package_obj_spec(): Package_obj_specContext {
		let localctx: Package_obj_specContext = new Package_obj_specContext(this, this._ctx, this.state);
		this.enterRule(localctx, 30, PlSqlParser.RULE_package_obj_spec);
		try {
			this.state = 1793;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 38, this._ctx) ) {
			case 1:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 1785;
				this.pragma_declaration();
				}
				break;
			case 2:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 1786;
				this.variable_declaration();
				}
				break;
			case 3:
				this.enterOuterAlt(localctx, 3);
				{
				this.state = 1787;
				this.subtype_declaration();
				}
				break;
			case 4:
				this.enterOuterAlt(localctx, 4);
				{
				this.state = 1788;
				this.cursor_declaration();
				}
				break;
			case 5:
				this.enterOuterAlt(localctx, 5);
				{
				this.state = 1789;
				this.exception_declaration();
				}
				break;
			case 6:
				this.enterOuterAlt(localctx, 6);
				{
				this.state = 1790;
				this.type_declaration();
				}
				break;
			case 7:
				this.enterOuterAlt(localctx, 7);
				{
				this.state = 1791;
				this.procedure_spec();
				}
				break;
			case 8:
				this.enterOuterAlt(localctx, 8);
				{
				this.state = 1792;
				this.function_spec();
				}
				break;
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public procedure_spec(): Procedure_specContext {
		let localctx: Procedure_specContext = new Procedure_specContext(this, this._ctx, this.state);
		this.enterRule(localctx, 32, PlSqlParser.RULE_procedure_spec);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 1795;
			this.match(PlSqlParser.PROCEDURE);
			this.state = 1796;
			this.identifier();
			this.state = 1808;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===2223) {
				{
				this.state = 1797;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 1798;
				this.parameter();
				this.state = 1803;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===2229) {
					{
					{
					this.state = 1799;
					this.match(PlSqlParser.COMMA);
					this.state = 1800;
					this.parameter();
					}
					}
					this.state = 1805;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				this.state = 1806;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
			}

			this.state = 1810;
			this.match(PlSqlParser.SEMICOLON);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public function_spec(): Function_specContext {
		let localctx: Function_specContext = new Function_specContext(this, this._ctx, this.state);
		this.enterRule(localctx, 34, PlSqlParser.RULE_function_spec);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 1812;
			this.match(PlSqlParser.FUNCTION);
			this.state = 1813;
			this.identifier();
			this.state = 1825;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===2223) {
				{
				this.state = 1814;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 1815;
				this.parameter();
				this.state = 1820;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===2229) {
					{
					{
					this.state = 1816;
					this.match(PlSqlParser.COMMA);
					this.state = 1817;
					this.parameter();
					}
					}
					this.state = 1822;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				this.state = 1823;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
			}

			this.state = 1827;
			this.match(PlSqlParser.RETURN);
			this.state = 1828;
			this.type_spec();
			this.state = 1830;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1250) {
				{
				this.state = 1829;
				this.match(PlSqlParser.PIPELINED);
				}
			}

			this.state = 1833;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===375) {
				{
				this.state = 1832;
				this.match(PlSqlParser.DETERMINISTIC);
				}
			}

			this.state = 1836;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1424) {
				{
				this.state = 1835;
				this.match(PlSqlParser.RESULT_CACHE);
				}
			}

			this.state = 1838;
			this.match(PlSqlParser.SEMICOLON);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public package_obj_body(): Package_obj_bodyContext {
		let localctx: Package_obj_bodyContext = new Package_obj_bodyContext(this, this._ctx, this.state);
		this.enterRule(localctx, 36, PlSqlParser.RULE_package_obj_body);
		try {
			this.state = 1849;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 46, this._ctx) ) {
			case 1:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 1840;
				this.variable_declaration();
				}
				break;
			case 2:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 1841;
				this.subtype_declaration();
				}
				break;
			case 3:
				this.enterOuterAlt(localctx, 3);
				{
				this.state = 1842;
				this.cursor_declaration();
				}
				break;
			case 4:
				this.enterOuterAlt(localctx, 4);
				{
				this.state = 1843;
				this.exception_declaration();
				}
				break;
			case 5:
				this.enterOuterAlt(localctx, 5);
				{
				this.state = 1844;
				this.type_declaration();
				}
				break;
			case 6:
				this.enterOuterAlt(localctx, 6);
				{
				this.state = 1845;
				this.procedure_body();
				}
				break;
			case 7:
				this.enterOuterAlt(localctx, 7);
				{
				this.state = 1846;
				this.function_body();
				}
				break;
			case 8:
				this.enterOuterAlt(localctx, 8);
				{
				this.state = 1847;
				this.procedure_spec();
				}
				break;
			case 9:
				this.enterOuterAlt(localctx, 9);
				{
				this.state = 1848;
				this.function_spec();
				}
				break;
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public drop_procedure(): Drop_procedureContext {
		let localctx: Drop_procedureContext = new Drop_procedureContext(this, this._ctx, this.state);
		this.enterRule(localctx, 38, PlSqlParser.RULE_drop_procedure);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 1851;
			this.match(PlSqlParser.DROP);
			this.state = 1852;
			this.match(PlSqlParser.PROCEDURE);
			this.state = 1853;
			this.procedure_name();
			this.state = 1854;
			this.match(PlSqlParser.SEMICOLON);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public alter_procedure(): Alter_procedureContext {
		let localctx: Alter_procedureContext = new Alter_procedureContext(this, this._ctx, this.state);
		this.enterRule(localctx, 40, PlSqlParser.RULE_alter_procedure);
		let _la: number;
		try {
			let _alt: number;
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 1856;
			this.match(PlSqlParser.ALTER);
			this.state = 1857;
			this.match(PlSqlParser.PROCEDURE);
			this.state = 1858;
			this.procedure_name();
			this.state = 1859;
			this.match(PlSqlParser.COMPILE);
			this.state = 1861;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 47, this._ctx) ) {
			case 1:
				{
				this.state = 1860;
				this.match(PlSqlParser.DEBUG);
				}
				break;
			}
			this.state = 1866;
			this._errHandler.sync(this);
			_alt = this._interp.adaptivePredict(this._input, 48, this._ctx);
			while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) {
				if (_alt === 1) {
					{
					{
					this.state = 1863;
					this.compiler_parameters_clause();
					}
					}
				}
				this.state = 1868;
				this._errHandler.sync(this);
				_alt = this._interp.adaptivePredict(this._input, 48, this._ctx);
			}
			this.state = 1871;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1432) {
				{
				this.state = 1869;
				this.match(PlSqlParser.REUSE);
				this.state = 1870;
				this.match(PlSqlParser.SETTINGS);
				}
			}

			this.state = 1873;
			this.match(PlSqlParser.SEMICOLON);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public function_body(): Function_bodyContext {
		let localctx: Function_bodyContext = new Function_bodyContext(this, this._ctx, this.state);
		this.enterRule(localctx, 42, PlSqlParser.RULE_function_body);
		let _la: number;
		try {
			let _alt: number;
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 1875;
			this.match(PlSqlParser.FUNCTION);
			this.state = 1876;
			this.identifier();
			this.state = 1888;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===2223) {
				{
				this.state = 1877;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 1878;
				this.parameter();
				this.state = 1883;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===2229) {
					{
					{
					this.state = 1879;
					this.match(PlSqlParser.COMMA);
					this.state = 1880;
					this.parameter();
					}
					}
					this.state = 1885;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				this.state = 1886;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
			}

			this.state = 1890;
			this.match(PlSqlParser.RETURN);
			this.state = 1891;
			this.type_spec();
			this.state = 1898;
			this._errHandler.sync(this);
			_alt = this._interp.adaptivePredict(this._input, 53, this._ctx);
			while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) {
				if (_alt === 1) {
					{
					this.state = 1896;
					this._errHandler.sync(this);
					switch (this._input.LA(1)) {
					case 80:
						{
						this.state = 1892;
						this.invoker_rights_clause();
						}
						break;
					case 1193:
						{
						this.state = 1893;
						this.parallel_enable_clause();
						}
						break;
					case 1424:
						{
						this.state = 1894;
						this.result_cache_clause();
						}
						break;
					case 375:
						{
						this.state = 1895;
						this.match(PlSqlParser.DETERMINISTIC);
						}
						break;
					default:
						throw new NoViableAltException(this);
					}
					}
				}
				this.state = 1900;
				this._errHandler.sync(this);
				_alt = this._interp.adaptivePredict(this._input, 53, this._ctx);
			}
			this.state = 1921;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 59, this._ctx) ) {
			case 1:
				{
				{
				this.state = 1902;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===1250) {
					{
					this.state = 1901;
					this.match(PlSqlParser.PIPELINED);
					}
				}

				this.state = 1905;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===375) {
					{
					this.state = 1904;
					this.match(PlSqlParser.DETERMINISTIC);
					}
				}

				this.state = 1907;
				_la = this._input.LA(1);
				if(!(_la===61 || _la===695)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				this.state = 1916;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 58, this._ctx) ) {
				case 1:
					{
					this.state = 1909;
					this._errHandler.sync(this);
					switch ( this._interp.adaptivePredict(this._input, 56, this._ctx) ) {
					case 1:
						{
						this.state = 1908;
						this.match(PlSqlParser.DECLARE);
						}
						break;
					}
					this.state = 1912;
					this._errHandler.sync(this);
					switch ( this._interp.adaptivePredict(this._input, 57, this._ctx) ) {
					case 1:
						{
						this.state = 1911;
						this.seq_of_declare_specs();
						}
						break;
					}
					this.state = 1914;
					this.body();
					}
					break;
				case 2:
					{
					this.state = 1915;
					this.call_spec();
					}
					break;
				}
				}
				}
				break;
			case 2:
				{
				this.state = 1918;
				_la = this._input.LA(1);
				if(!(_la===32 || _la===1250)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				this.state = 1919;
				this.match(PlSqlParser.USING);
				this.state = 1920;
				this.implementation_type_name();
				}
				break;
			}
			this.state = 1923;
			this.match(PlSqlParser.SEMICOLON);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public procedure_body(): Procedure_bodyContext {
		let localctx: Procedure_bodyContext = new Procedure_bodyContext(this, this._ctx, this.state);
		this.enterRule(localctx, 44, PlSqlParser.RULE_procedure_body);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 1925;
			this.match(PlSqlParser.PROCEDURE);
			this.state = 1926;
			this.identifier();
			this.state = 1938;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===2223) {
				{
				this.state = 1927;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 1928;
				this.parameter();
				this.state = 1933;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===2229) {
					{
					{
					this.state = 1929;
					this.match(PlSqlParser.COMMA);
					this.state = 1930;
					this.parameter();
					}
					}
					this.state = 1935;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				this.state = 1936;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
			}

			this.state = 1940;
			_la = this._input.LA(1);
			if(!(_la===61 || _la===695)) {
			this._errHandler.recoverInline(this);
			}
			else {
				this._errHandler.reportMatch(this);
			    this.consume();
			}
			this.state = 1950;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 64, this._ctx) ) {
			case 1:
				{
				this.state = 1942;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 62, this._ctx) ) {
				case 1:
					{
					this.state = 1941;
					this.match(PlSqlParser.DECLARE);
					}
					break;
				}
				this.state = 1945;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 63, this._ctx) ) {
				case 1:
					{
					this.state = 1944;
					this.seq_of_declare_specs();
					}
					break;
				}
				this.state = 1947;
				this.body();
				}
				break;
			case 2:
				{
				this.state = 1948;
				this.call_spec();
				}
				break;
			case 3:
				{
				this.state = 1949;
				this.match(PlSqlParser.EXTERNAL);
				}
				break;
			}
			this.state = 1952;
			this.match(PlSqlParser.SEMICOLON);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public create_procedure_body(): Create_procedure_bodyContext {
		let localctx: Create_procedure_bodyContext = new Create_procedure_bodyContext(this, this._ctx, this.state);
		this.enterRule(localctx, 46, PlSqlParser.RULE_create_procedure_body);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 1954;
			this.match(PlSqlParser.CREATE);
			this.state = 1957;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1172) {
				{
				this.state = 1955;
				this.match(PlSqlParser.OR);
				this.state = 1956;
				this.match(PlSqlParser.REPLACE);
				}
			}

			this.state = 1959;
			this.match(PlSqlParser.PROCEDURE);
			this.state = 1960;
			this.procedure_name();
			this.state = 1972;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===2223) {
				{
				this.state = 1961;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 1962;
				this.parameter();
				this.state = 1967;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===2229) {
					{
					{
					this.state = 1963;
					this.match(PlSqlParser.COMMA);
					this.state = 1964;
					this.parameter();
					}
					}
					this.state = 1969;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				this.state = 1970;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
			}

			this.state = 1975;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===80) {
				{
				this.state = 1974;
				this.invoker_rights_clause();
				}
			}

			this.state = 1977;
			_la = this._input.LA(1);
			if(!(_la===61 || _la===695)) {
			this._errHandler.recoverInline(this);
			}
			else {
				this._errHandler.reportMatch(this);
			    this.consume();
			}
			this.state = 1987;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 71, this._ctx) ) {
			case 1:
				{
				this.state = 1979;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 69, this._ctx) ) {
				case 1:
					{
					this.state = 1978;
					this.match(PlSqlParser.DECLARE);
					}
					break;
				}
				this.state = 1982;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 70, this._ctx) ) {
				case 1:
					{
					this.state = 1981;
					this.seq_of_declare_specs();
					}
					break;
				}
				this.state = 1984;
				this.body();
				}
				break;
			case 2:
				{
				this.state = 1985;
				this.call_spec();
				}
				break;
			case 3:
				{
				this.state = 1986;
				this.match(PlSqlParser.EXTERNAL);
				}
				break;
			}
			this.state = 1989;
			this.match(PlSqlParser.SEMICOLON);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public drop_trigger(): Drop_triggerContext {
		let localctx: Drop_triggerContext = new Drop_triggerContext(this, this._ctx, this.state);
		this.enterRule(localctx, 48, PlSqlParser.RULE_drop_trigger);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 1991;
			this.match(PlSqlParser.DROP);
			this.state = 1992;
			this.match(PlSqlParser.TRIGGER);
			this.state = 1993;
			this.trigger_name();
			this.state = 1994;
			this.match(PlSqlParser.SEMICOLON);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public alter_trigger(): Alter_triggerContext {
		let localctx: Alter_triggerContext = new Alter_triggerContext(this, this._ctx, this.state);
		this.enterRule(localctx, 50, PlSqlParser.RULE_alter_trigger);
		let _la: number;
		try {
			let _alt: number;
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 1996;
			this.match(PlSqlParser.ALTER);
			this.state = 1997;
			this.match(PlSqlParser.TRIGGER);
			this.state = 1998;
			localctx._alter_trigger_name = this.trigger_name();
			this.state = 2017;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 383:
			case 439:
				{
				this.state = 1999;
				_la = this._input.LA(1);
				if(!(_la===383 || _la===439)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				}
				break;
			case 1404:
				{
				this.state = 2000;
				this.match(PlSqlParser.RENAME);
				this.state = 2001;
				this.match(PlSqlParser.TO);
				this.state = 2002;
				localctx._rename_trigger_name = this.trigger_name();
				}
				break;
			case 223:
				{
				this.state = 2003;
				this.match(PlSqlParser.COMPILE);
				this.state = 2005;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 72, this._ctx) ) {
				case 1:
					{
					this.state = 2004;
					this.match(PlSqlParser.DEBUG);
					}
					break;
				}
				this.state = 2010;
				this._errHandler.sync(this);
				_alt = this._interp.adaptivePredict(this._input, 73, this._ctx);
				while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) {
					if (_alt === 1) {
						{
						{
						this.state = 2007;
						this.compiler_parameters_clause();
						}
						}
					}
					this.state = 2012;
					this._errHandler.sync(this);
					_alt = this._interp.adaptivePredict(this._input, 73, this._ctx);
				}
				this.state = 2015;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===1432) {
					{
					this.state = 2013;
					this.match(PlSqlParser.REUSE);
					this.state = 2014;
					this.match(PlSqlParser.SETTINGS);
					}
				}

				}
				break;
			default:
				throw new NoViableAltException(this);
			}
			this.state = 2019;
			this.match(PlSqlParser.SEMICOLON);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public create_trigger(): Create_triggerContext {
		let localctx: Create_triggerContext = new Create_triggerContext(this, this._ctx, this.state);
		this.enterRule(localctx, 52, PlSqlParser.RULE_create_trigger);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 2021;
			this.match(PlSqlParser.CREATE);
			this.state = 2024;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1172) {
				{
				this.state = 2022;
				this.match(PlSqlParser.OR);
				this.state = 2023;
				this.match(PlSqlParser.REPLACE);
				}
			}

			this.state = 2026;
			this.match(PlSqlParser.TRIGGER);
			this.state = 2027;
			this.trigger_name();
			this.state = 2031;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 77, this._ctx) ) {
			case 1:
				{
				this.state = 2028;
				this.simple_dml_trigger();
				}
				break;
			case 2:
				{
				this.state = 2029;
				this.compound_dml_trigger();
				}
				break;
			case 3:
				{
				this.state = 2030;
				this.non_dml_trigger();
				}
				break;
			}
			this.state = 2034;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 78, this._ctx) ) {
			case 1:
				{
				this.state = 2033;
				this.trigger_follows_clause();
				}
				break;
			}
			this.state = 2037;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 79, this._ctx) ) {
			case 1:
				{
				this.state = 2036;
				_la = this._input.LA(1);
				if(!(_la===383 || _la===439)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				}
				break;
			}
			this.state = 2040;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 80, this._ctx) ) {
			case 1:
				{
				this.state = 2039;
				this.trigger_when_clause();
				}
				break;
			}
			this.state = 2042;
			this.trigger_body();
			this.state = 2043;
			this.match(PlSqlParser.SEMICOLON);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public trigger_follows_clause(): Trigger_follows_clauseContext {
		let localctx: Trigger_follows_clauseContext = new Trigger_follows_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 54, PlSqlParser.RULE_trigger_follows_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 2045;
			this.match(PlSqlParser.FOLLOWS);
			this.state = 2046;
			this.trigger_name();
			this.state = 2051;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			while (_la===2229) {
				{
				{
				this.state = 2047;
				this.match(PlSqlParser.COMMA);
				this.state = 2048;
				this.trigger_name();
				}
				}
				this.state = 2053;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public trigger_when_clause(): Trigger_when_clauseContext {
		let localctx: Trigger_when_clauseContext = new Trigger_when_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 56, PlSqlParser.RULE_trigger_when_clause);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 2054;
			this.match(PlSqlParser.WHEN);
			this.state = 2055;
			this.match(PlSqlParser.LEFT_PAREN);
			this.state = 2056;
			this.condition();
			this.state = 2057;
			this.match(PlSqlParser.RIGHT_PAREN);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public simple_dml_trigger(): Simple_dml_triggerContext {
		let localctx: Simple_dml_triggerContext = new Simple_dml_triggerContext(this, this._ctx, this.state);
		this.enterRule(localctx, 58, PlSqlParser.RULE_simple_dml_trigger);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 2063;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 101:
				{
				this.state = 2059;
				this.match(PlSqlParser.BEFORE);
				}
				break;
			case 30:
				{
				this.state = 2060;
				this.match(PlSqlParser.AFTER);
				}
				break;
			case 676:
				{
				this.state = 2061;
				this.match(PlSqlParser.INSTEAD);
				this.state = 2062;
				this.match(PlSqlParser.OF);
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
			this.state = 2065;
			this.dml_event_clause();
			this.state = 2067;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 83, this._ctx) ) {
			case 1:
				{
				this.state = 2066;
				this.referencing_clause();
				}
				break;
			}
			this.state = 2070;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===546) {
				{
				this.state = 2069;
				this.for_each_row();
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public for_each_row(): For_each_rowContext {
		let localctx: For_each_rowContext = new For_each_rowContext(this, this._ctx, this.state);
		this.enterRule(localctx, 60, PlSqlParser.RULE_for_each_row);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 2072;
			this.match(PlSqlParser.FOR);
			this.state = 2073;
			this.match(PlSqlParser.EACH);
			this.state = 2074;
			this.match(PlSqlParser.ROW);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public compound_dml_trigger(): Compound_dml_triggerContext {
		let localctx: Compound_dml_triggerContext = new Compound_dml_triggerContext(this, this._ctx, this.state);
		this.enterRule(localctx, 62, PlSqlParser.RULE_compound_dml_trigger);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 2076;
			this.match(PlSqlParser.FOR);
			this.state = 2077;
			this.dml_event_clause();
			this.state = 2079;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 85, this._ctx) ) {
			case 1:
				{
				this.state = 2078;
				this.referencing_clause();
				}
				break;
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public non_dml_trigger(): Non_dml_triggerContext {
		let localctx: Non_dml_triggerContext = new Non_dml_triggerContext(this, this._ctx, this.state);
		this.enterRule(localctx, 64, PlSqlParser.RULE_non_dml_trigger);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 2081;
			_la = this._input.LA(1);
			if(!(_la===30 || _la===101)) {
			this._errHandler.recoverInline(this);
			}
			else {
				this._errHandler.reportMatch(this);
			    this.consume();
			}
			this.state = 2082;
			this.non_dml_event();
			this.state = 2087;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			while (_la===1172) {
				{
				{
				this.state = 2083;
				this.match(PlSqlParser.OR);
				this.state = 2084;
				this.non_dml_event();
				}
				}
				this.state = 2089;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			}
			this.state = 2090;
			this.match(PlSqlParser.ON);
			this.state = 2098;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 88, this._ctx) ) {
			case 1:
				{
				this.state = 2091;
				this.match(PlSqlParser.DATABASE);
				}
				break;
			case 2:
				{
				this.state = 2095;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 87, this._ctx) ) {
				case 1:
					{
					this.state = 2092;
					this.schema_name();
					this.state = 2093;
					this.match(PlSqlParser.PERIOD);
					}
					break;
				}
				this.state = 2097;
				this.match(PlSqlParser.SCHEMA);
				}
				break;
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public trigger_body(): Trigger_bodyContext {
		let localctx: Trigger_bodyContext = new Trigger_bodyContext(this, this._ctx, this.state);
		this.enterRule(localctx, 66, PlSqlParser.RULE_trigger_body);
		try {
			this.state = 2105;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 89, this._ctx) ) {
			case 1:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 2100;
				this.match(PlSqlParser.COMPOUND);
				this.state = 2101;
				this.match(PlSqlParser.TRIGGER);
				}
				break;
			case 2:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 2102;
				this.match(PlSqlParser.CALL);
				this.state = 2103;
				this.identifier();
				}
				break;
			case 3:
				this.enterOuterAlt(localctx, 3);
				{
				this.state = 2104;
				this.trigger_block();
				}
				break;
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public routine_clause(): Routine_clauseContext {
		let localctx: Routine_clauseContext = new Routine_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 68, PlSqlParser.RULE_routine_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 2107;
			this.routine_name();
			this.state = 2109;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===2223) {
				{
				this.state = 2108;
				this.function_argument();
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public compound_trigger_block(): Compound_trigger_blockContext {
		let localctx: Compound_trigger_blockContext = new Compound_trigger_blockContext(this, this._ctx, this.state);
		this.enterRule(localctx, 70, PlSqlParser.RULE_compound_trigger_block);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 2111;
			this.match(PlSqlParser.COMPOUND);
			this.state = 2112;
			this.match(PlSqlParser.TRIGGER);
			this.state = 2114;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 91, this._ctx) ) {
			case 1:
				{
				this.state = 2113;
				this.seq_of_declare_specs();
				}
				break;
			}
			this.state = 2117;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			do {
				{
				{
				this.state = 2116;
				this.timing_point_section();
				}
				}
				this.state = 2119;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			} while (_la===30 || _la===101);
			this.state = 2121;
			this.match(PlSqlParser.END);
			this.state = 2122;
			this.trigger_name();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public timing_point_section(): Timing_point_sectionContext {
		let localctx: Timing_point_sectionContext = new Timing_point_sectionContext(this, this._ctx, this.state);
		this.enterRule(localctx, 72, PlSqlParser.RULE_timing_point_section);
		try {
			this.state = 2160;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 93, this._ctx) ) {
			case 1:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 2124;
				localctx._bk = this.match(PlSqlParser.BEFORE);
				this.state = 2125;
				this.match(PlSqlParser.STATEMENT);
				this.state = 2126;
				this.match(PlSqlParser.IS);
				this.state = 2127;
				this.trigger_block();
				this.state = 2128;
				this.match(PlSqlParser.BEFORE);
				this.state = 2129;
				this.match(PlSqlParser.STATEMENT);
				this.state = 2130;
				this.match(PlSqlParser.SEMICOLON);
				}
				break;
			case 2:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 2132;
				localctx._bk = this.match(PlSqlParser.BEFORE);
				this.state = 2133;
				this.match(PlSqlParser.EACH);
				this.state = 2134;
				this.match(PlSqlParser.ROW);
				this.state = 2135;
				this.match(PlSqlParser.IS);
				this.state = 2136;
				this.trigger_block();
				this.state = 2137;
				this.match(PlSqlParser.BEFORE);
				this.state = 2138;
				this.match(PlSqlParser.EACH);
				this.state = 2139;
				this.match(PlSqlParser.ROW);
				this.state = 2140;
				this.match(PlSqlParser.SEMICOLON);
				}
				break;
			case 3:
				this.enterOuterAlt(localctx, 3);
				{
				this.state = 2142;
				localctx._ak = this.match(PlSqlParser.AFTER);
				this.state = 2143;
				this.match(PlSqlParser.STATEMENT);
				this.state = 2144;
				this.match(PlSqlParser.IS);
				this.state = 2145;
				this.trigger_block();
				this.state = 2146;
				this.match(PlSqlParser.AFTER);
				this.state = 2147;
				this.match(PlSqlParser.STATEMENT);
				this.state = 2148;
				this.match(PlSqlParser.SEMICOLON);
				}
				break;
			case 4:
				this.enterOuterAlt(localctx, 4);
				{
				this.state = 2150;
				localctx._ak = this.match(PlSqlParser.AFTER);
				this.state = 2151;
				this.match(PlSqlParser.EACH);
				this.state = 2152;
				this.match(PlSqlParser.ROW);
				this.state = 2153;
				this.match(PlSqlParser.IS);
				this.state = 2154;
				this.trigger_block();
				this.state = 2155;
				this.match(PlSqlParser.AFTER);
				this.state = 2156;
				this.match(PlSqlParser.EACH);
				this.state = 2157;
				this.match(PlSqlParser.ROW);
				this.state = 2158;
				this.match(PlSqlParser.SEMICOLON);
				}
				break;
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public non_dml_event(): Non_dml_eventContext {
		let localctx: Non_dml_eventContext = new Non_dml_eventContext(this, this._ctx, this.state);
		this.enterRule(localctx, 74, PlSqlParser.RULE_non_dml_event);
		try {
			this.state = 2188;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 39:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 2162;
				this.match(PlSqlParser.ALTER);
				}
				break;
			case 41:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 2163;
				this.match(PlSqlParser.ANALYZE);
				}
				break;
			case 69:
				this.enterOuterAlt(localctx, 3);
				{
				this.state = 2164;
				this.match(PlSqlParser.ASSOCIATE);
				this.state = 2165;
				this.match(PlSqlParser.STATISTICS);
				}
				break;
			case 77:
				this.enterOuterAlt(localctx, 4);
				{
				this.state = 2166;
				this.match(PlSqlParser.AUDIT);
				}
				break;
			case 217:
				this.enterOuterAlt(localctx, 5);
				{
				this.state = 2167;
				this.match(PlSqlParser.COMMENT);
				}
				break;
			case 288:
				this.enterOuterAlt(localctx, 6);
				{
				this.state = 2168;
				this.match(PlSqlParser.CREATE);
				}
				break;
			case 388:
				this.enterOuterAlt(localctx, 7);
				{
				this.state = 2169;
				this.match(PlSqlParser.DISASSOCIATE);
				this.state = 2170;
				this.match(PlSqlParser.STATISTICS);
				}
				break;
			case 411:
				this.enterOuterAlt(localctx, 8);
				{
				this.state = 2171;
				this.match(PlSqlParser.DROP);
				}
				break;
			case 571:
				this.enterOuterAlt(localctx, 9);
				{
				this.state = 2172;
				this.match(PlSqlParser.GRANT);
				}
				break;
			case 940:
				this.enterOuterAlt(localctx, 10);
				{
				this.state = 2173;
				this.match(PlSqlParser.NOAUDIT);
				}
				break;
			case 1404:
				this.enterOuterAlt(localctx, 11);
				{
				this.state = 2174;
				this.match(PlSqlParser.RENAME);
				}
				break;
			case 1434:
				this.enterOuterAlt(localctx, 12);
				{
				this.state = 2175;
				this.match(PlSqlParser.REVOKE);
				}
				break;
			case 1980:
				this.enterOuterAlt(localctx, 13);
				{
				this.state = 2176;
				this.match(PlSqlParser.TRUNCATE);
				}
				break;
			case 338:
				this.enterOuterAlt(localctx, 14);
				{
				this.state = 2177;
				this.match(PlSqlParser.DDL);
				}
				break;
			case 1570:
				this.enterOuterAlt(localctx, 15);
				{
				this.state = 2178;
				this.match(PlSqlParser.STARTUP);
				}
				break;
			case 1522:
				this.enterOuterAlt(localctx, 16);
				{
				this.state = 2179;
				this.match(PlSqlParser.SHUTDOWN);
				}
				break;
			case 334:
				this.enterOuterAlt(localctx, 17);
				{
				this.state = 2180;
				this.match(PlSqlParser.DB_ROLE_CHANGE);
				}
				break;
			case 786:
				this.enterOuterAlt(localctx, 18);
				{
				this.state = 2181;
				this.match(PlSqlParser.LOGON);
				}
				break;
			case 785:
				this.enterOuterAlt(localctx, 19);
				{
				this.state = 2182;
				this.match(PlSqlParser.LOGOFF);
				}
				break;
			case 1502:
				this.enterOuterAlt(localctx, 20);
				{
				this.state = 2183;
				this.match(PlSqlParser.SERVERERROR);
				}
				break;
			case 1621:
				this.enterOuterAlt(localctx, 21);
				{
				this.state = 2184;
				this.match(PlSqlParser.SUSPEND);
				}
				break;
			case 316:
				this.enterOuterAlt(localctx, 22);
				{
				this.state = 2185;
				this.match(PlSqlParser.DATABASE);
				}
				break;
			case 1470:
				this.enterOuterAlt(localctx, 23);
				{
				this.state = 2186;
				this.match(PlSqlParser.SCHEMA);
				}
				break;
			case 540:
				this.enterOuterAlt(localctx, 24);
				{
				this.state = 2187;
				this.match(PlSqlParser.FOLLOWS);
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public dml_event_clause(): Dml_event_clauseContext {
		let localctx: Dml_event_clauseContext = new Dml_event_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 76, PlSqlParser.RULE_dml_event_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 2190;
			this.dml_event_element();
			this.state = 2195;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			while (_la===1172) {
				{
				{
				this.state = 2191;
				this.match(PlSqlParser.OR);
				this.state = 2192;
				this.dml_event_element();
				}
				}
				this.state = 2197;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			}
			this.state = 2198;
			this.match(PlSqlParser.ON);
			this.state = 2200;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 96, this._ctx) ) {
			case 1:
				{
				this.state = 2199;
				this.dml_event_nested_clause();
				}
				break;
			}
			this.state = 2202;
			this.tableview_name();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public dml_event_element(): Dml_event_elementContext {
		let localctx: Dml_event_elementContext = new Dml_event_elementContext(this, this._ctx, this.state);
		this.enterRule(localctx, 78, PlSqlParser.RULE_dml_event_element);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 2204;
			_la = this._input.LA(1);
			if(!(_la===362 || _la===669 || _la===2025)) {
			this._errHandler.recoverInline(this);
			}
			else {
				this._errHandler.reportMatch(this);
			    this.consume();
			}
			this.state = 2207;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1115) {
				{
				this.state = 2205;
				this.match(PlSqlParser.OF);
				this.state = 2206;
				this.column_list();
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public dml_event_nested_clause(): Dml_event_nested_clauseContext {
		let localctx: Dml_event_nested_clauseContext = new Dml_event_nested_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 80, PlSqlParser.RULE_dml_event_nested_clause);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 2209;
			this.match(PlSqlParser.NESTED);
			this.state = 2210;
			this.match(PlSqlParser.TABLE);
			this.state = 2211;
			this.tableview_name();
			this.state = 2212;
			this.match(PlSqlParser.OF);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public referencing_clause(): Referencing_clauseContext {
		let localctx: Referencing_clauseContext = new Referencing_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 82, PlSqlParser.RULE_referencing_clause);
		try {
			let _alt: number;
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 2214;
			this.match(PlSqlParser.REFERENCING);
			this.state = 2216;
			this._errHandler.sync(this);
			_alt = 1;
			do {
				switch (_alt) {
				case 1:
					{
					{
					this.state = 2215;
					this.referencing_element();
					}
					}
					break;
				default:
					throw new NoViableAltException(this);
				}
				this.state = 2218;
				this._errHandler.sync(this);
				_alt = this._interp.adaptivePredict(this._input, 98, this._ctx);
			} while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public referencing_element(): Referencing_elementContext {
		let localctx: Referencing_elementContext = new Referencing_elementContext(this, this._ctx, this.state);
		this.enterRule(localctx, 84, PlSqlParser.RULE_referencing_element);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 2220;
			_la = this._input.LA(1);
			if(!(_la===903 || _la===1119 || _la===1199)) {
			this._errHandler.recoverInline(this);
			}
			else {
				this._errHandler.reportMatch(this);
			    this.consume();
			}
			this.state = 2221;
			this.column_alias();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public drop_type(): Drop_typeContext {
		let localctx: Drop_typeContext = new Drop_typeContext(this, this._ctx, this.state);
		this.enterRule(localctx, 86, PlSqlParser.RULE_drop_type);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 2223;
			this.match(PlSqlParser.DROP);
			this.state = 2224;
			this.match(PlSqlParser.TYPE);
			this.state = 2226;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 99, this._ctx) ) {
			case 1:
				{
				this.state = 2225;
				this.match(PlSqlParser.BODY);
				}
				break;
			}
			this.state = 2228;
			this.type_name();
			this.state = 2230;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===542 || _la===2070) {
				{
				this.state = 2229;
				_la = this._input.LA(1);
				if(!(_la===542 || _la===2070)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				}
			}

			this.state = 2232;
			this.match(PlSqlParser.SEMICOLON);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public alter_type(): Alter_typeContext {
		let localctx: Alter_typeContext = new Alter_typeContext(this, this._ctx, this.state);
		this.enterRule(localctx, 88, PlSqlParser.RULE_alter_type);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 2234;
			this.match(PlSqlParser.ALTER);
			this.state = 2235;
			this.match(PlSqlParser.TYPE);
			this.state = 2236;
			this.type_name();
			this.state = 2243;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 101, this._ctx) ) {
			case 1:
				{
				this.state = 2237;
				this.compile_type_clause();
				}
				break;
			case 2:
				{
				this.state = 2238;
				this.replace_type_clause();
				}
				break;
			case 3:
				{
				this.state = 2239;
				this.alter_method_spec();
				}
				break;
			case 4:
				{
				this.state = 2240;
				this.alter_collection_clauses();
				}
				break;
			case 5:
				{
				this.state = 2241;
				this.modifier_clause();
				}
				break;
			case 6:
				{
				this.state = 2242;
				this.overriding_subprogram_spec();
				}
				break;
			}
			this.state = 2246;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===162 || _la===692) {
				{
				this.state = 2245;
				this.dependent_handling_clause();
				}
			}

			this.state = 2248;
			this.match(PlSqlParser.SEMICOLON);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public compile_type_clause(): Compile_type_clauseContext {
		let localctx: Compile_type_clauseContext = new Compile_type_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 90, PlSqlParser.RULE_compile_type_clause);
		let _la: number;
		try {
			let _alt: number;
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 2250;
			this.match(PlSqlParser.COMPILE);
			this.state = 2252;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 103, this._ctx) ) {
			case 1:
				{
				this.state = 2251;
				this.match(PlSqlParser.DEBUG);
				}
				break;
			}
			this.state = 2255;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 104, this._ctx) ) {
			case 1:
				{
				this.state = 2254;
				_la = this._input.LA(1);
				if(!(_la===133 || _la===1550)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				}
				break;
			}
			this.state = 2260;
			this._errHandler.sync(this);
			_alt = this._interp.adaptivePredict(this._input, 105, this._ctx);
			while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) {
				if (_alt === 1) {
					{
					{
					this.state = 2257;
					this.compiler_parameters_clause();
					}
					}
				}
				this.state = 2262;
				this._errHandler.sync(this);
				_alt = this._interp.adaptivePredict(this._input, 105, this._ctx);
			}
			this.state = 2265;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1432) {
				{
				this.state = 2263;
				this.match(PlSqlParser.REUSE);
				this.state = 2264;
				this.match(PlSqlParser.SETTINGS);
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public replace_type_clause(): Replace_type_clauseContext {
		let localctx: Replace_type_clauseContext = new Replace_type_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 92, PlSqlParser.RULE_replace_type_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 2267;
			this.match(PlSqlParser.REPLACE);
			this.state = 2269;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===80) {
				{
				this.state = 2268;
				this.invoker_rights_clause();
				}
			}

			this.state = 2271;
			this.match(PlSqlParser.AS);
			this.state = 2272;
			this.match(PlSqlParser.OBJECT);
			this.state = 2273;
			this.match(PlSqlParser.LEFT_PAREN);
			this.state = 2274;
			this.object_member_spec();
			this.state = 2279;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			while (_la===2229) {
				{
				{
				this.state = 2275;
				this.match(PlSqlParser.COMMA);
				this.state = 2276;
				this.object_member_spec();
				}
				}
				this.state = 2281;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			}
			this.state = 2282;
			this.match(PlSqlParser.RIGHT_PAREN);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public alter_method_spec(): Alter_method_specContext {
		let localctx: Alter_method_specContext = new Alter_method_specContext(this, this._ctx, this.state);
		this.enterRule(localctx, 94, PlSqlParser.RULE_alter_method_spec);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 2284;
			this.alter_method_element();
			this.state = 2289;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			while (_la===2229) {
				{
				{
				this.state = 2285;
				this.match(PlSqlParser.COMMA);
				this.state = 2286;
				this.alter_method_element();
				}
				}
				this.state = 2291;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public alter_method_element(): Alter_method_elementContext {
		let localctx: Alter_method_elementContext = new Alter_method_elementContext(this, this._ctx, this.state);
		this.enterRule(localctx, 96, PlSqlParser.RULE_alter_method_element);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 2292;
			_la = this._input.LA(1);
			if(!(_la===18 || _la===411)) {
			this._errHandler.recoverInline(this);
			}
			else {
				this._errHandler.reportMatch(this);
			    this.consume();
			}
			this.state = 2295;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 801:
			case 1168:
				{
				this.state = 2293;
				this.map_order_function_spec();
				}
				break;
			case 826:
			case 1576:
				{
				this.state = 2294;
				this.subprogram_spec();
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public alter_attribute_definition(): Alter_attribute_definitionContext {
		let localctx: Alter_attribute_definitionContext = new Alter_attribute_definitionContext(this, this._ctx, this.state);
		this.enterRule(localctx, 98, PlSqlParser.RULE_alter_attribute_definition);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 2297;
			_la = this._input.LA(1);
			if(!(_la===18 || _la===411 || _la===863)) {
			this._errHandler.recoverInline(this);
			}
			else {
				this._errHandler.reportMatch(this);
			    this.consume();
			}
			this.state = 2298;
			this.match(PlSqlParser.ATTRIBUTE);
			this.state = 2311;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 1:
			case 2:
			case 3:
			case 4:
			case 5:
			case 6:
			case 7:
			case 8:
			case 9:
			case 10:
			case 11:
			case 12:
			case 13:
			case 14:
			case 15:
			case 16:
			case 17:
			case 18:
			case 19:
			case 20:
			case 21:
			case 22:
			case 23:
			case 24:
			case 25:
			case 26:
			case 27:
			case 28:
			case 29:
			case 30:
			case 31:
			case 32:
			case 33:
			case 34:
			case 36:
			case 37:
			case 38:
			case 40:
			case 41:
			case 42:
			case 44:
			case 45:
			case 46:
			case 47:
			case 49:
			case 50:
			case 51:
			case 52:
			case 53:
			case 54:
			case 55:
			case 56:
			case 57:
			case 58:
			case 59:
			case 60:
			case 63:
			case 64:
			case 65:
			case 66:
			case 67:
			case 68:
			case 69:
			case 70:
			case 71:
			case 72:
			case 73:
			case 74:
			case 75:
			case 76:
			case 78:
			case 79:
			case 80:
			case 81:
			case 82:
			case 83:
			case 85:
			case 86:
			case 87:
			case 88:
			case 89:
			case 90:
			case 91:
			case 92:
			case 93:
			case 95:
			case 96:
			case 97:
			case 98:
			case 99:
			case 100:
			case 101:
			case 102:
			case 103:
			case 104:
			case 105:
			case 106:
			case 108:
			case 109:
			case 110:
			case 111:
			case 112:
			case 113:
			case 114:
			case 115:
			case 116:
			case 117:
			case 118:
			case 119:
			case 120:
			case 121:
			case 122:
			case 123:
			case 124:
			case 125:
			case 126:
			case 127:
			case 128:
			case 129:
			case 130:
			case 131:
			case 132:
			case 133:
			case 134:
			case 135:
			case 136:
			case 137:
			case 138:
			case 139:
			case 140:
			case 141:
			case 142:
			case 143:
			case 144:
			case 145:
			case 147:
			case 148:
			case 149:
			case 150:
			case 151:
			case 152:
			case 153:
			case 154:
			case 155:
			case 156:
			case 157:
			case 158:
			case 160:
			case 161:
			case 162:
			case 163:
			case 164:
			case 165:
			case 166:
			case 167:
			case 168:
			case 169:
			case 170:
			case 171:
			case 172:
			case 174:
			case 175:
			case 176:
			case 177:
			case 178:
			case 179:
			case 181:
			case 182:
			case 183:
			case 184:
			case 185:
			case 186:
			case 187:
			case 188:
			case 189:
			case 190:
			case 191:
			case 192:
			case 193:
			case 194:
			case 195:
			case 196:
			case 197:
			case 198:
			case 199:
			case 200:
			case 201:
			case 202:
			case 203:
			case 204:
			case 205:
			case 206:
			case 207:
			case 208:
			case 209:
			case 210:
			case 211:
			case 212:
			case 213:
			case 214:
			case 215:
			case 216:
			case 217:
			case 218:
			case 219:
			case 220:
			case 221:
			case 222:
			case 223:
			case 224:
			case 225:
			case 226:
			case 227:
			case 228:
			case 229:
			case 230:
			case 231:
			case 233:
			case 234:
			case 235:
			case 236:
			case 237:
			case 238:
			case 239:
			case 240:
			case 241:
			case 242:
			case 243:
			case 244:
			case 245:
			case 246:
			case 247:
			case 248:
			case 249:
			case 250:
			case 252:
			case 253:
			case 254:
			case 255:
			case 256:
			case 257:
			case 258:
			case 259:
			case 260:
			case 261:
			case 262:
			case 263:
			case 264:
			case 265:
			case 266:
			case 267:
			case 268:
			case 269:
			case 270:
			case 271:
			case 272:
			case 273:
			case 274:
			case 275:
			case 276:
			case 277:
			case 278:
			case 279:
			case 280:
			case 281:
			case 282:
			case 283:
			case 284:
			case 285:
			case 286:
			case 287:
			case 289:
			case 290:
			case 291:
			case 292:
			case 293:
			case 294:
			case 295:
			case 296:
			case 297:
			case 298:
			case 299:
			case 300:
			case 301:
			case 302:
			case 303:
			case 304:
			case 305:
			case 306:
			case 307:
			case 308:
			case 309:
			case 310:
			case 311:
			case 312:
			case 313:
			case 314:
			case 315:
			case 316:
			case 317:
			case 318:
			case 319:
			case 321:
			case 322:
			case 323:
			case 324:
			case 325:
			case 326:
			case 328:
			case 329:
			case 330:
			case 331:
			case 332:
			case 333:
			case 334:
			case 335:
			case 336:
			case 337:
			case 338:
			case 339:
			case 340:
			case 341:
			case 342:
			case 343:
			case 344:
			case 345:
			case 346:
			case 347:
			case 348:
			case 349:
			case 350:
			case 352:
			case 353:
			case 354:
			case 355:
			case 356:
			case 357:
			case 358:
			case 359:
			case 360:
			case 361:
			case 362:
			case 363:
			case 364:
			case 365:
			case 366:
			case 367:
			case 368:
			case 369:
			case 370:
			case 372:
			case 373:
			case 374:
			case 375:
			case 376:
			case 377:
			case 378:
			case 379:
			case 380:
			case 381:
			case 382:
			case 383:
			case 384:
			case 385:
			case 386:
			case 387:
			case 388:
			case 389:
			case 390:
			case 391:
			case 392:
			case 394:
			case 395:
			case 397:
			case 398:
			case 399:
			case 400:
			case 401:
			case 402:
			case 403:
			case 404:
			case 405:
			case 406:
			case 407:
			case 408:
			case 409:
			case 410:
			case 412:
			case 413:
			case 414:
			case 415:
			case 417:
			case 418:
			case 419:
			case 420:
			case 421:
			case 422:
			case 423:
			case 424:
			case 425:
			case 426:
			case 427:
			case 428:
			case 429:
			case 430:
			case 431:
			case 434:
			case 435:
			case 436:
			case 437:
			case 438:
			case 439:
			case 440:
			case 441:
			case 442:
			case 443:
			case 444:
			case 446:
			case 447:
			case 448:
			case 449:
			case 450:
			case 451:
			case 452:
			case 453:
			case 454:
			case 455:
			case 456:
			case 457:
			case 458:
			case 459:
			case 460:
			case 461:
			case 462:
			case 463:
			case 464:
			case 465:
			case 466:
			case 467:
			case 468:
			case 469:
			case 470:
			case 471:
			case 472:
			case 473:
			case 475:
			case 476:
			case 477:
			case 478:
			case 479:
			case 480:
			case 481:
			case 482:
			case 483:
			case 484:
			case 485:
			case 486:
			case 487:
			case 488:
			case 489:
			case 490:
			case 491:
			case 492:
			case 493:
			case 494:
			case 495:
			case 496:
			case 497:
			case 498:
			case 499:
			case 500:
			case 501:
			case 502:
			case 503:
			case 504:
			case 505:
			case 506:
			case 507:
			case 508:
			case 509:
			case 510:
			case 511:
			case 512:
			case 513:
			case 514:
			case 515:
			case 516:
			case 517:
			case 518:
			case 519:
			case 520:
			case 521:
			case 522:
			case 523:
			case 524:
			case 525:
			case 526:
			case 527:
			case 528:
			case 529:
			case 530:
			case 531:
			case 532:
			case 533:
			case 534:
			case 535:
			case 536:
			case 537:
			case 538:
			case 539:
			case 540:
			case 541:
			case 542:
			case 543:
			case 544:
			case 545:
			case 547:
			case 548:
			case 549:
			case 550:
			case 551:
			case 552:
			case 553:
			case 555:
			case 556:
			case 557:
			case 558:
			case 559:
			case 560:
			case 561:
			case 562:
			case 563:
			case 564:
			case 565:
			case 566:
			case 567:
			case 568:
			case 569:
			case 572:
			case 574:
			case 575:
			case 576:
			case 577:
			case 578:
			case 579:
			case 580:
			case 581:
			case 582:
			case 583:
			case 584:
			case 586:
			case 587:
			case 588:
			case 589:
			case 590:
			case 591:
			case 592:
			case 593:
			case 594:
			case 595:
			case 596:
			case 597:
			case 598:
			case 599:
			case 600:
			case 602:
			case 603:
			case 604:
			case 605:
			case 606:
			case 607:
			case 608:
			case 609:
			case 610:
			case 611:
			case 612:
			case 613:
			case 614:
			case 615:
			case 616:
			case 617:
			case 618:
			case 619:
			case 620:
			case 621:
			case 622:
			case 623:
			case 624:
			case 625:
			case 626:
			case 627:
			case 628:
			case 629:
			case 630:
			case 632:
			case 633:
			case 634:
			case 635:
			case 636:
			case 637:
			case 638:
			case 639:
			case 640:
			case 641:
			case 642:
			case 643:
			case 644:
			case 645:
			case 646:
			case 647:
			case 648:
			case 649:
			case 650:
			case 651:
			case 653:
			case 654:
			case 655:
			case 656:
			case 657:
			case 658:
			case 659:
			case 660:
			case 661:
			case 662:
			case 663:
			case 664:
			case 665:
			case 666:
			case 667:
			case 668:
			case 670:
			case 671:
			case 672:
			case 673:
			case 674:
			case 675:
			case 676:
			case 677:
			case 678:
			case 679:
			case 680:
			case 681:
			case 682:
			case 683:
			case 684:
			case 685:
			case 686:
			case 687:
			case 689:
			case 690:
			case 692:
			case 693:
			case 694:
			case 696:
			case 697:
			case 698:
			case 699:
			case 700:
			case 701:
			case 702:
			case 703:
			case 704:
			case 705:
			case 706:
			case 707:
			case 708:
			case 709:
			case 710:
			case 711:
			case 712:
			case 713:
			case 714:
			case 715:
			case 716:
			case 717:
			case 718:
			case 719:
			case 720:
			case 721:
			case 722:
			case 723:
			case 724:
			case 725:
			case 726:
			case 727:
			case 728:
			case 729:
			case 730:
			case 731:
			case 732:
			case 733:
			case 734:
			case 735:
			case 736:
			case 737:
			case 738:
			case 739:
			case 740:
			case 741:
			case 742:
			case 743:
			case 744:
			case 745:
			case 746:
			case 747:
			case 748:
			case 749:
			case 750:
			case 751:
			case 752:
			case 753:
			case 754:
			case 755:
			case 756:
			case 758:
			case 759:
			case 760:
			case 761:
			case 762:
			case 763:
			case 764:
			case 765:
			case 766:
			case 767:
			case 768:
			case 769:
			case 770:
			case 771:
			case 772:
			case 773:
			case 774:
			case 775:
			case 777:
			case 778:
			case 779:
			case 780:
			case 781:
			case 782:
			case 783:
			case 784:
			case 785:
			case 786:
			case 787:
			case 788:
			case 789:
			case 790:
			case 791:
			case 792:
			case 793:
			case 794:
			case 795:
			case 796:
			case 797:
			case 798:
			case 799:
			case 800:
			case 801:
			case 802:
			case 803:
			case 804:
			case 805:
			case 806:
			case 807:
			case 808:
			case 809:
			case 810:
			case 811:
			case 812:
			case 813:
			case 814:
			case 815:
			case 816:
			case 817:
			case 818:
			case 819:
			case 820:
			case 821:
			case 822:
			case 823:
			case 824:
			case 825:
			case 826:
			case 827:
			case 828:
			case 829:
			case 830:
			case 831:
			case 832:
			case 833:
			case 834:
			case 835:
			case 836:
			case 837:
			case 838:
			case 839:
			case 840:
			case 841:
			case 843:
			case 844:
			case 845:
			case 846:
			case 847:
			case 848:
			case 849:
			case 850:
			case 851:
			case 852:
			case 853:
			case 854:
			case 855:
			case 856:
			case 857:
			case 858:
			case 859:
			case 861:
			case 862:
			case 863:
			case 864:
			case 865:
			case 866:
			case 867:
			case 868:
			case 869:
			case 870:
			case 871:
			case 872:
			case 873:
			case 874:
			case 875:
			case 876:
			case 877:
			case 878:
			case 879:
			case 880:
			case 881:
			case 882:
			case 883:
			case 884:
			case 885:
			case 886:
			case 888:
			case 889:
			case 890:
			case 891:
			case 892:
			case 893:
			case 894:
			case 895:
			case 896:
			case 897:
			case 898:
			case 899:
			case 900:
			case 901:
			case 902:
			case 903:
			case 904:
			case 905:
			case 906:
			case 907:
			case 908:
			case 909:
			case 910:
			case 911:
			case 912:
			case 913:
			case 914:
			case 915:
			case 916:
			case 917:
			case 918:
			case 919:
			case 920:
			case 921:
			case 922:
			case 923:
			case 924:
			case 925:
			case 926:
			case 927:
			case 928:
			case 929:
			case 930:
			case 931:
			case 932:
			case 933:
			case 934:
			case 935:
			case 936:
			case 937:
			case 938:
			case 939:
			case 940:
			case 941:
			case 942:
			case 943:
			case 944:
			case 945:
			case 946:
			case 947:
			case 948:
			case 949:
			case 950:
			case 951:
			case 952:
			case 954:
			case 955:
			case 956:
			case 957:
			case 958:
			case 959:
			case 960:
			case 961:
			case 962:
			case 963:
			case 964:
			case 965:
			case 966:
			case 967:
			case 968:
			case 969:
			case 970:
			case 971:
			case 972:
			case 973:
			case 974:
			case 975:
			case 976:
			case 977:
			case 978:
			case 979:
			case 980:
			case 981:
			case 982:
			case 983:
			case 984:
			case 985:
			case 986:
			case 987:
			case 988:
			case 989:
			case 990:
			case 991:
			case 992:
			case 993:
			case 994:
			case 995:
			case 996:
			case 997:
			case 998:
			case 999:
			case 1000:
			case 1001:
			case 1002:
			case 1003:
			case 1004:
			case 1005:
			case 1006:
			case 1007:
			case 1008:
			case 1009:
			case 1010:
			case 1011:
			case 1012:
			case 1013:
			case 1014:
			case 1015:
			case 1016:
			case 1017:
			case 1018:
			case 1019:
			case 1020:
			case 1021:
			case 1022:
			case 1023:
			case 1024:
			case 1025:
			case 1026:
			case 1027:
			case 1028:
			case 1029:
			case 1030:
			case 1031:
			case 1032:
			case 1033:
			case 1034:
			case 1035:
			case 1036:
			case 1037:
			case 1038:
			case 1039:
			case 1040:
			case 1041:
			case 1042:
			case 1043:
			case 1044:
			case 1045:
			case 1046:
			case 1047:
			case 1048:
			case 1049:
			case 1050:
			case 1051:
			case 1052:
			case 1053:
			case 1054:
			case 1055:
			case 1056:
			case 1057:
			case 1058:
			case 1059:
			case 1060:
			case 1061:
			case 1062:
			case 1063:
			case 1064:
			case 1065:
			case 1066:
			case 1067:
			case 1068:
			case 1069:
			case 1070:
			case 1071:
			case 1072:
			case 1074:
			case 1075:
			case 1076:
			case 1077:
			case 1078:
			case 1079:
			case 1080:
			case 1081:
			case 1082:
			case 1083:
			case 1084:
			case 1085:
			case 1086:
			case 1087:
			case 1089:
			case 1090:
			case 1091:
			case 1092:
			case 1093:
			case 1094:
			case 1095:
			case 1096:
			case 1098:
			case 1099:
			case 1100:
			case 1101:
			case 1102:
			case 1103:
			case 1104:
			case 1105:
			case 1106:
			case 1107:
			case 1108:
			case 1109:
			case 1110:
			case 1111:
			case 1112:
			case 1113:
			case 1114:
			case 1116:
			case 1117:
			case 1118:
			case 1119:
			case 1120:
			case 1121:
			case 1122:
			case 1123:
			case 1124:
			case 1125:
			case 1127:
			case 1129:
			case 1130:
			case 1131:
			case 1132:
			case 1133:
			case 1134:
			case 1135:
			case 1136:
			case 1137:
			case 1138:
			case 1139:
			case 1140:
			case 1142:
			case 1143:
			case 1144:
			case 1145:
			case 1146:
			case 1147:
			case 1148:
			case 1149:
			case 1150:
			case 1151:
			case 1152:
			case 1153:
			case 1154:
			case 1155:
			case 1156:
			case 1157:
			case 1158:
			case 1159:
			case 1160:
			case 1161:
			case 1162:
			case 1163:
			case 1164:
			case 1165:
			case 1166:
			case 1167:
			case 1169:
			case 1170:
			case 1171:
			case 1173:
			case 1174:
			case 1175:
			case 1176:
			case 1177:
			case 1178:
			case 1179:
			case 1180:
			case 1181:
			case 1182:
			case 1183:
			case 1184:
			case 1185:
			case 1186:
			case 1187:
			case 1188:
			case 1189:
			case 1190:
			case 1191:
			case 1192:
			case 1193:
			case 1194:
			case 1195:
			case 1197:
			case 1198:
			case 1199:
			case 1200:
			case 1201:
			case 1202:
			case 1203:
			case 1204:
			case 1205:
			case 1206:
			case 1207:
			case 1208:
			case 1209:
			case 1210:
			case 1211:
			case 1212:
			case 1213:
			case 1214:
			case 1215:
			case 1216:
			case 1217:
			case 1218:
			case 1219:
			case 1220:
			case 1221:
			case 1222:
			case 1223:
			case 1224:
			case 1225:
			case 1226:
			case 1228:
			case 1229:
			case 1230:
			case 1231:
			case 1232:
			case 1236:
			case 1237:
			case 1241:
			case 1242:
			case 1243:
			case 1244:
			case 1245:
			case 1246:
			case 1247:
			case 1248:
			case 1249:
			case 1250:
			case 1252:
			case 1253:
			case 1254:
			case 1255:
			case 1256:
			case 1257:
			case 1258:
			case 1259:
			case 1260:
			case 1261:
			case 1262:
			case 1263:
			case 1264:
			case 1265:
			case 1266:
			case 1267:
			case 1268:
			case 1269:
			case 1270:
			case 1271:
			case 1272:
			case 1273:
			case 1274:
			case 1275:
			case 1276:
			case 1277:
			case 1278:
			case 1279:
			case 1280:
			case 1281:
			case 1282:
			case 1283:
			case 1284:
			case 1285:
			case 1286:
			case 1287:
			case 1288:
			case 1289:
			case 1290:
			case 1291:
			case 1292:
			case 1293:
			case 1294:
			case 1295:
			case 1296:
			case 1297:
			case 1298:
			case 1299:
			case 1300:
			case 1301:
			case 1302:
			case 1303:
			case 1304:
			case 1305:
			case 1306:
			case 1308:
			case 1309:
			case 1310:
			case 1311:
			case 1312:
			case 1313:
			case 1314:
			case 1315:
			case 1316:
			case 1317:
			case 1318:
			case 1319:
			case 1320:
			case 1321:
			case 1322:
			case 1323:
			case 1325:
			case 1326:
			case 1327:
			case 1328:
			case 1329:
			case 1330:
			case 1331:
			case 1332:
			case 1333:
			case 1334:
			case 1335:
			case 1336:
			case 1337:
			case 1338:
			case 1339:
			case 1340:
			case 1341:
			case 1342:
			case 1343:
			case 1344:
			case 1345:
			case 1346:
			case 1347:
			case 1348:
			case 1349:
			case 1350:
			case 1351:
			case 1352:
			case 1353:
			case 1354:
			case 1355:
			case 1356:
			case 1357:
			case 1358:
			case 1359:
			case 1360:
			case 1361:
			case 1362:
			case 1363:
			case 1364:
			case 1365:
			case 1366:
			case 1367:
			case 1368:
			case 1369:
			case 1370:
			case 1371:
			case 1372:
			case 1373:
			case 1374:
			case 1375:
			case 1376:
			case 1377:
			case 1378:
			case 1379:
			case 1380:
			case 1381:
			case 1382:
			case 1383:
			case 1384:
			case 1385:
			case 1386:
			case 1387:
			case 1388:
			case 1389:
			case 1390:
			case 1391:
			case 1392:
			case 1393:
			case 1394:
			case 1395:
			case 1396:
			case 1397:
			case 1399:
			case 1400:
			case 1401:
			case 1402:
			case 1403:
			case 1404:
			case 1405:
			case 1406:
			case 1407:
			case 1408:
			case 1409:
			case 1410:
			case 1411:
			case 1412:
			case 1413:
			case 1414:
			case 1416:
			case 1417:
			case 1418:
			case 1419:
			case 1420:
			case 1421:
			case 1422:
			case 1423:
			case 1424:
			case 1425:
			case 1426:
			case 1427:
			case 1428:
			case 1429:
			case 1430:
			case 1431:
			case 1432:
			case 1433:
			case 1435:
			case 1436:
			case 1437:
			case 1438:
			case 1439:
			case 1440:
			case 1441:
			case 1442:
			case 1443:
			case 1444:
			case 1445:
			case 1446:
			case 1447:
			case 1448:
			case 1449:
			case 1450:
			case 1451:
			case 1452:
			case 1453:
			case 1454:
			case 1455:
			case 1456:
			case 1457:
			case 1458:
			case 1459:
			case 1460:
			case 1461:
			case 1462:
			case 1463:
			case 1464:
			case 1465:
			case 1466:
			case 1467:
			case 1468:
			case 1469:
			case 1470:
			case 1471:
			case 1472:
			case 1473:
			case 1474:
			case 1475:
			case 1476:
			case 1477:
			case 1478:
			case 1479:
			case 1480:
			case 1481:
			case 1482:
			case 1483:
			case 1484:
			case 1485:
			case 1486:
			case 1487:
			case 1488:
			case 1489:
			case 1491:
			case 1492:
			case 1493:
			case 1494:
			case 1495:
			case 1496:
			case 1497:
			case 1499:
			case 1500:
			case 1501:
			case 1502:
			case 1503:
			case 1504:
			case 1505:
			case 1506:
			case 1507:
			case 1508:
			case 1509:
			case 1510:
			case 1511:
			case 1512:
			case 1513:
			case 1514:
			case 1515:
			case 1516:
			case 1518:
			case 1519:
			case 1520:
			case 1521:
			case 1522:
			case 1523:
			case 1524:
			case 1525:
			case 1526:
			case 1527:
			case 1528:
			case 1529:
			case 1530:
			case 1531:
			case 1532:
			case 1533:
			case 1534:
			case 1536:
			case 1537:
			case 1538:
			case 1539:
			case 1540:
			case 1541:
			case 1542:
			case 1543:
			case 1544:
			case 1545:
			case 1546:
			case 1547:
			case 1548:
			case 1549:
			case 1550:
			case 1551:
			case 1552:
			case 1553:
			case 1554:
			case 1555:
			case 1556:
			case 1557:
			case 1558:
			case 1559:
			case 1560:
			case 1561:
			case 1562:
			case 1563:
			case 1564:
			case 1565:
			case 1566:
			case 1567:
			case 1568:
			case 1570:
			case 1571:
			case 1572:
			case 1573:
			case 1574:
			case 1575:
			case 1576:
			case 1577:
			case 1578:
			case 1579:
			case 1580:
			case 1581:
			case 1582:
			case 1583:
			case 1584:
			case 1585:
			case 1586:
			case 1587:
			case 1588:
			case 1589:
			case 1590:
			case 1591:
			case 1592:
			case 1593:
			case 1594:
			case 1595:
			case 1596:
			case 1597:
			case 1598:
			case 1599:
			case 1600:
			case 1601:
			case 1602:
			case 1603:
			case 1604:
			case 1605:
			case 1606:
			case 1607:
			case 1608:
			case 1609:
			case 1610:
			case 1611:
			case 1612:
			case 1613:
			case 1614:
			case 1615:
			case 1616:
			case 1617:
			case 1618:
			case 1619:
			case 1620:
			case 1621:
			case 1622:
			case 1623:
			case 1624:
			case 1625:
			case 1626:
			case 1628:
			case 1629:
			case 1630:
			case 1631:
			case 1632:
			case 1633:
			case 1634:
			case 1635:
			case 1636:
			case 1637:
			case 1638:
			case 1639:
			case 1640:
			case 1641:
			case 1642:
			case 1643:
			case 1644:
			case 1645:
			case 1646:
			case 1647:
			case 1648:
			case 1649:
			case 1650:
			case 1651:
			case 1652:
			case 1653:
			case 1654:
			case 1655:
			case 1656:
			case 1657:
			case 1658:
			case 1659:
			case 1660:
			case 1661:
			case 1662:
			case 1663:
			case 1664:
			case 1665:
			case 1666:
			case 1667:
			case 1668:
			case 1669:
			case 1670:
			case 1671:
			case 1672:
			case 1673:
			case 1674:
			case 1675:
			case 1676:
			case 1677:
			case 1678:
			case 1679:
			case 1680:
			case 1681:
			case 1682:
			case 1683:
			case 1684:
			case 1685:
			case 1686:
			case 1687:
			case 1688:
			case 1689:
			case 1690:
			case 1691:
			case 1692:
			case 1693:
			case 1694:
			case 1695:
			case 1696:
			case 1697:
			case 1698:
			case 1699:
			case 1700:
			case 1701:
			case 1702:
			case 1703:
			case 1704:
			case 1705:
			case 1706:
			case 1707:
			case 1708:
			case 1709:
			case 1710:
			case 1711:
			case 1712:
			case 1713:
			case 1714:
			case 1715:
			case 1716:
			case 1717:
			case 1718:
			case 1719:
			case 1720:
			case 1721:
			case 1722:
			case 1723:
			case 1724:
			case 1725:
			case 1726:
			case 1727:
			case 1728:
			case 1729:
			case 1730:
			case 1731:
			case 1732:
			case 1733:
			case 1734:
			case 1735:
			case 1736:
			case 1737:
			case 1738:
			case 1739:
			case 1740:
			case 1741:
			case 1742:
			case 1743:
			case 1744:
			case 1745:
			case 1746:
			case 1747:
			case 1748:
			case 1749:
			case 1750:
			case 1751:
			case 1752:
			case 1753:
			case 1754:
			case 1755:
			case 1756:
			case 1757:
			case 1758:
			case 1759:
			case 1760:
			case 1761:
			case 1762:
			case 1763:
			case 1764:
			case 1765:
			case 1766:
			case 1767:
			case 1768:
			case 1769:
			case 1770:
			case 1771:
			case 1772:
			case 1773:
			case 1774:
			case 1775:
			case 1776:
			case 1777:
			case 1778:
			case 1779:
			case 1780:
			case 1781:
			case 1782:
			case 1783:
			case 1784:
			case 1785:
			case 1786:
			case 1787:
			case 1788:
			case 1789:
			case 1790:
			case 1791:
			case 1792:
			case 1793:
			case 1794:
			case 1795:
			case 1796:
			case 1797:
			case 1798:
			case 1799:
			case 1800:
			case 1801:
			case 1802:
			case 1803:
			case 1804:
			case 1805:
			case 1806:
			case 1807:
			case 1808:
			case 1809:
			case 1810:
			case 1811:
			case 1812:
			case 1813:
			case 1814:
			case 1815:
			case 1816:
			case 1817:
			case 1818:
			case 1819:
			case 1820:
			case 1821:
			case 1822:
			case 1823:
			case 1824:
			case 1825:
			case 1826:
			case 1827:
			case 1828:
			case 1829:
			case 1830:
			case 1831:
			case 1832:
			case 1833:
			case 1834:
			case 1835:
			case 1836:
			case 1837:
			case 1838:
			case 1839:
			case 1840:
			case 1841:
			case 1842:
			case 1843:
			case 1844:
			case 1845:
			case 1846:
			case 1847:
			case 1848:
			case 1849:
			case 1850:
			case 1851:
			case 1852:
			case 1853:
			case 1854:
			case 1855:
			case 1856:
			case 1857:
			case 1858:
			case 1859:
			case 1860:
			case 1861:
			case 1862:
			case 1863:
			case 1864:
			case 1865:
			case 1866:
			case 1867:
			case 1868:
			case 1869:
			case 1870:
			case 1871:
			case 1872:
			case 1873:
			case 1874:
			case 1875:
			case 1876:
			case 1877:
			case 1878:
			case 1879:
			case 1880:
			case 1881:
			case 1882:
			case 1883:
			case 1884:
			case 1885:
			case 1886:
			case 1887:
			case 1888:
			case 1889:
			case 1890:
			case 1891:
			case 1892:
			case 1893:
			case 1894:
			case 1895:
			case 1896:
			case 1897:
			case 1898:
			case 1899:
			case 1900:
			case 1901:
			case 1902:
			case 1903:
			case 1904:
			case 1905:
			case 1906:
			case 1907:
			case 1908:
			case 1909:
			case 1910:
			case 1911:
			case 1912:
			case 1913:
			case 1914:
			case 1915:
			case 1916:
			case 1917:
			case 1918:
			case 1919:
			case 1920:
			case 1921:
			case 1922:
			case 1923:
			case 1924:
			case 1925:
			case 1926:
			case 1927:
			case 1928:
			case 1929:
			case 1930:
			case 1931:
			case 1932:
			case 1933:
			case 1934:
			case 1935:
			case 1936:
			case 1937:
			case 1939:
			case 1940:
			case 1941:
			case 1942:
			case 1943:
			case 1944:
			case 1945:
			case 1946:
			case 1947:
			case 1948:
			case 1949:
			case 1950:
			case 1951:
			case 1952:
			case 1953:
			case 1954:
			case 1955:
			case 1956:
			case 1957:
			case 1958:
			case 1959:
			case 1960:
			case 1961:
			case 1962:
			case 1963:
			case 1965:
			case 1966:
			case 1967:
			case 1968:
			case 1969:
			case 1970:
			case 1971:
			case 1972:
			case 1973:
			case 1974:
			case 1975:
			case 1976:
			case 1977:
			case 1978:
			case 1979:
			case 1980:
			case 1981:
			case 1982:
			case 1983:
			case 1984:
			case 1985:
			case 1986:
			case 1987:
			case 1988:
			case 1989:
			case 1990:
			case 1991:
			case 1992:
			case 1993:
			case 1994:
			case 1995:
			case 1996:
			case 1997:
			case 1998:
			case 1999:
			case 2000:
			case 2003:
			case 2004:
			case 2005:
			case 2006:
			case 2007:
			case 2008:
			case 2009:
			case 2010:
			case 2011:
			case 2012:
			case 2013:
			case 2014:
			case 2015:
			case 2016:
			case 2017:
			case 2018:
			case 2019:
			case 2020:
			case 2021:
			case 2022:
			case 2023:
			case 2024:
			case 2026:
			case 2027:
			case 2028:
			case 2029:
			case 2030:
			case 2031:
			case 2032:
			case 2033:
			case 2034:
			case 2035:
			case 2036:
			case 2037:
			case 2038:
			case 2039:
			case 2040:
			case 2041:
			case 2042:
			case 2043:
			case 2044:
			case 2045:
			case 2046:
			case 2047:
			case 2048:
			case 2049:
			case 2050:
			case 2051:
			case 2052:
			case 2053:
			case 2054:
			case 2055:
			case 2056:
			case 2057:
			case 2058:
			case 2059:
			case 2060:
			case 2061:
			case 2062:
			case 2063:
			case 2064:
			case 2065:
			case 2066:
			case 2067:
			case 2068:
			case 2069:
			case 2070:
			case 2071:
			case 2072:
			case 2074:
			case 2075:
			case 2076:
			case 2077:
			case 2078:
			case 2079:
			case 2080:
			case 2081:
			case 2082:
			case 2083:
			case 2084:
			case 2085:
			case 2086:
			case 2087:
			case 2088:
			case 2089:
			case 2090:
			case 2091:
			case 2092:
			case 2093:
			case 2094:
			case 2095:
			case 2096:
			case 2097:
			case 2098:
			case 2100:
			case 2101:
			case 2102:
			case 2103:
			case 2104:
			case 2105:
			case 2106:
			case 2107:
			case 2108:
			case 2109:
			case 2110:
			case 2111:
			case 2112:
			case 2113:
			case 2115:
			case 2116:
			case 2117:
			case 2118:
			case 2119:
			case 2120:
			case 2122:
			case 2123:
			case 2124:
			case 2125:
			case 2126:
			case 2128:
			case 2129:
			case 2130:
			case 2131:
			case 2132:
			case 2133:
			case 2134:
			case 2135:
			case 2136:
			case 2137:
			case 2138:
			case 2139:
			case 2140:
			case 2141:
			case 2142:
			case 2143:
			case 2145:
			case 2146:
			case 2147:
			case 2148:
			case 2149:
			case 2150:
			case 2151:
			case 2152:
			case 2153:
			case 2154:
			case 2155:
			case 2156:
			case 2157:
			case 2158:
			case 2159:
			case 2160:
			case 2161:
			case 2162:
			case 2163:
			case 2164:
			case 2165:
			case 2166:
			case 2168:
			case 2169:
			case 2170:
			case 2171:
			case 2172:
			case 2173:
			case 2174:
			case 2175:
			case 2176:
			case 2177:
			case 2178:
			case 2179:
			case 2180:
			case 2181:
			case 2182:
			case 2183:
			case 2184:
			case 2185:
			case 2186:
			case 2187:
			case 2188:
			case 2189:
			case 2191:
			case 2192:
			case 2193:
			case 2194:
			case 2195:
			case 2196:
			case 2197:
			case 2198:
			case 2199:
			case 2200:
			case 2201:
			case 2202:
			case 2203:
			case 2204:
			case 2205:
			case 2206:
			case 2207:
			case 2208:
			case 2209:
			case 2210:
			case 2211:
			case 2216:
			case 2220:
			case 2246:
			case 2252:
				{
				this.state = 2299;
				this.attribute_definition();
				}
				break;
			case 2223:
				{
				this.state = 2300;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 2301;
				this.attribute_definition();
				this.state = 2306;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===2229) {
					{
					{
					this.state = 2302;
					this.match(PlSqlParser.COMMA);
					this.state = 2303;
					this.attribute_definition();
					}
					}
					this.state = 2308;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				this.state = 2309;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public attribute_definition(): Attribute_definitionContext {
		let localctx: Attribute_definitionContext = new Attribute_definitionContext(this, this._ctx, this.state);
		this.enterRule(localctx, 100, PlSqlParser.RULE_attribute_definition);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 2313;
			this.attribute_name();
			this.state = 2315;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & 2684286839) !== 0) || ((((_la - 64)) & ~0x1F) === 0 && ((1 << (_la - 64)) & 3220168703) !== 0) || ((((_la - 96)) & ~0x1F) === 0 && ((1 << (_la - 96)) & 4294965247) !== 0) || ((((_la - 128)) & ~0x1F) === 0 && ((1 << (_la - 128)) & 2147221503) !== 0) || ((((_la - 160)) & ~0x1F) === 0 && ((1 << (_la - 160)) & 4293910527) !== 0) || ((((_la - 192)) & ~0x1F) === 0 && ((1 << (_la - 192)) & 4294967295) !== 0) || ((((_la - 224)) & ~0x1F) === 0 && ((1 << (_la - 224)) & 4160749311) !== 0) || ((((_la - 256)) & ~0x1F) === 0 && ((1 << (_la - 256)) & 4294967295) !== 0) || ((((_la - 289)) & ~0x1F) === 0 && ((1 << (_la - 289)) & 2147483647) !== 0) || ((((_la - 321)) & ~0x1F) === 0 && ((1 << (_la - 321)) & 3221225471) !== 0) || ((((_la - 353)) & ~0x1F) === 0 && ((1 << (_la - 353)) & 4294705151) !== 0) || ((((_la - 385)) & ~0x1F) === 0 && ((1 << (_la - 385)) & 2080372479) !== 0) || ((((_la - 417)) & ~0x1F) === 0 && ((1 << (_la - 417)) & 4026433535) !== 0) || ((((_la - 449)) & ~0x1F) === 0 && ((1 << (_la - 449)) & 4261412863) !== 0) || ((((_la - 481)) & ~0x1F) === 0 && ((1 << (_la - 481)) & 4294967295) !== 0) || ((((_la - 513)) & ~0x1F) === 0 && ((1 << (_la - 513)) & 4294967295) !== 0) || ((((_la - 545)) & ~0x1F) === 0 && ((1 << (_la - 545)) & 3925868029) !== 0) || ((((_la - 577)) & ~0x1F) === 0 && ((1 << (_la - 577)) & 4278189823) !== 0) || ((((_la - 609)) & ~0x1F) === 0 && ((1 << (_la - 609)) & 4290772991) !== 0) || ((((_la - 641)) & ~0x1F) === 0 && ((1 << (_la - 641)) & 4026529791) !== 0) || ((((_la - 673)) & ~0x1F) === 0 && ((1 << (_la - 673)) & 4290478079) !== 0) || ((((_la - 705)) & ~0x1F) === 0 && ((1 << (_la - 705)) & 4294967295) !== 0) || ((((_la - 737)) & ~0x1F) === 0 && ((1 << (_la - 737)) & 4293918719) !== 0) || ((((_la - 769)) & ~0x1F) === 0 && ((1 << (_la - 769)) & 4294967167) !== 0) || ((((_la - 801)) & ~0x1F) === 0 && ((1 << (_la - 801)) & 4294967295) !== 0) || ((((_la - 833)) & ~0x1F) === 0 && ((1 << (_la - 833)) & 4160749055) !== 0) || ((((_la - 865)) & ~0x1F) === 0 && ((1 << (_la - 865)) & 4294967295) !== 0) || ((((_la - 897)) & ~0x1F) === 0 && ((1 << (_la - 897)) & 4294967295) !== 0) || ((((_la - 929)) & ~0x1F) === 0 && ((1 << (_la - 929)) & 4278190079) !== 0) || ((((_la - 961)) & ~0x1F) === 0 && ((1 << (_la - 961)) & 4294967295) !== 0) || ((((_la - 993)) & ~0x1F) === 0 && ((1 << (_la - 993)) & 4294967295) !== 0) || ((((_la - 1025)) & ~0x1F) === 0 && ((1 << (_la - 1025)) & 4294967295) !== 0) || ((((_la - 1057)) & ~0x1F) === 0 && ((1 << (_la - 1057)) & 2147418111) !== 0) || ((((_la - 1089)) & ~0x1F) === 0 && ((1 << (_la - 1089)) & 4227858175) !== 0) || ((((_la - 1121)) & ~0x1F) === 0 && ((1 << (_la - 1121)) & 4293918559) !== 0) || ((((_la - 1153)) & ~0x1F) === 0 && ((1 << (_la - 1153)) & 4294410239) !== 0) || ((((_la - 1185)) & ~0x1F) === 0 && ((1 << (_la - 1185)) & 4294965247) !== 0) || ((((_la - 1217)) & ~0x1F) === 0 && ((1 << (_la - 1217)) & 4279827455) !== 0) || ((((_la - 1249)) & ~0x1F) === 0 && ((1 << (_la - 1249)) & 4294967291) !== 0) || ((((_la - 1281)) & ~0x1F) === 0 && ((1 << (_la - 1281)) & 4227858431) !== 0) || ((((_la - 1313)) & ~0x1F) === 0 && ((1 << (_la - 1313)) & 4294965247) !== 0) || ((((_la - 1345)) & ~0x1F) === 0 && ((1 << (_la - 1345)) & 4294967295) !== 0) || ((((_la - 1377)) & ~0x1F) === 0 && ((1 << (_la - 1377)) & 4292870143) !== 0) || ((((_la - 1409)) & ~0x1F) === 0 && ((1 << (_la - 1409)) & 4261412799) !== 0) || ((((_la - 1441)) & ~0x1F) === 0 && ((1 << (_la - 1441)) & 4294967295) !== 0) || ((((_la - 1473)) & ~0x1F) === 0 && ((1 << (_la - 1473)) & 4261281791) !== 0) || ((((_la - 1505)) & ~0x1F) === 0 && ((1 << (_la - 1505)) & 3221221375) !== 0) || ((((_la - 1537)) & ~0x1F) === 0 && ((1 << (_la - 1537)) & 4294967295) !== 0) || ((((_la - 1570)) & ~0x1F) === 0 && ((1 << (_la - 1570)) & 4294967295) !== 0) || ((((_la - 1602)) & ~0x1F) === 0 && ((1 << (_la - 1602)) & 4261412863) !== 0) || ((((_la - 1634)) & ~0x1F) === 0 && ((1 << (_la - 1634)) & 4294967295) !== 0) || ((((_la - 1666)) & ~0x1F) === 0 && ((1 << (_la - 1666)) & 4294967295) !== 0) || ((((_la - 1698)) & ~0x1F) === 0 && ((1 << (_la - 1698)) & 4294967295) !== 0) || ((((_la - 1730)) & ~0x1F) === 0 && ((1 << (_la - 1730)) & 4294967295) !== 0) || ((((_la - 1762)) & ~0x1F) === 0 && ((1 << (_la - 1762)) & 4294967295) !== 0) || ((((_la - 1794)) & ~0x1F) === 0 && ((1 << (_la - 1794)) & 4294967295) !== 0) || ((((_la - 1826)) & ~0x1F) === 0 && ((1 << (_la - 1826)) & 4294967295) !== 0) || ((((_la - 1858)) & ~0x1F) === 0 && ((1 << (_la - 1858)) & 4294967295) !== 0) || ((((_la - 1890)) & ~0x1F) === 0 && ((1 << (_la - 1890)) & 4294967295) !== 0) || ((((_la - 1922)) & ~0x1F) === 0 && ((1 << (_la - 1922)) & 4294901759) !== 0) || ((((_la - 1954)) & ~0x1F) === 0 && ((1 << (_la - 1954)) & 4294966271) !== 0) || ((((_la - 1986)) & ~0x1F) === 0 && ((1 << (_la - 1986)) & 4294868991) !== 0) || ((((_la - 2018)) & ~0x1F) === 0 && ((1 << (_la - 2018)) & 4294967167) !== 0) || ((((_la - 2050)) & ~0x1F) === 0 && ((1 << (_la - 2050)) & 4286578687) !== 0) || ((((_la - 2082)) & ~0x1F) === 0 && ((1 << (_la - 2082)) & 4294836223) !== 0) || ((((_la - 2115)) & ~0x1F) === 0 && ((1 << (_la - 2115)) & 3758092223) !== 0) || ((((_la - 2147)) & ~0x1F) === 0 && ((1 << (_la - 2147)) & 4293918719) !== 0) || ((((_la - 2179)) & ~0x1F) === 0 && ((1 << (_la - 2179)) & 4294965247) !== 0) || ((((_la - 2211)) & ~0x1F) === 0 && ((1 << (_la - 2211)) & 545) !== 0) || _la===2252) {
				{
				this.state = 2314;
				this.type_spec();
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public alter_collection_clauses(): Alter_collection_clausesContext {
		let localctx: Alter_collection_clausesContext = new Alter_collection_clausesContext(this, this._ctx, this.state);
		this.enterRule(localctx, 102, PlSqlParser.RULE_alter_collection_clauses);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 2317;
			this.match(PlSqlParser.MODIFY);
			this.state = 2323;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 758:
				{
				this.state = 2318;
				this.match(PlSqlParser.LIMIT);
				this.state = 2319;
				this.expression();
				}
				break;
			case 427:
				{
				this.state = 2320;
				this.match(PlSqlParser.ELEMENT);
				this.state = 2321;
				this.match(PlSqlParser.TYPE);
				this.state = 2322;
				this.type_spec();
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public dependent_handling_clause(): Dependent_handling_clauseContext {
		let localctx: Dependent_handling_clauseContext = new Dependent_handling_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 104, PlSqlParser.RULE_dependent_handling_clause);
		let _la: number;
		try {
			this.state = 2341;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 692:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 2325;
				this.match(PlSqlParser.INVALIDATE);
				}
				break;
			case 162:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 2326;
				this.match(PlSqlParser.CASCADE);
				this.state = 2336;
				this._errHandler.sync(this);
				switch (this._input.LA(1)) {
				case 269:
					{
					this.state = 2327;
					this.match(PlSqlParser.CONVERT);
					this.state = 2328;
					this.match(PlSqlParser.TO);
					this.state = 2329;
					this.match(PlSqlParser.SUBSTITUTABLE);
					}
					break;
				case 619:
				case 1073:
					{
					this.state = 2331;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
					if (_la===1073) {
						{
						this.state = 2330;
						this.match(PlSqlParser.NOT);
						}
					}

					this.state = 2333;
					this.match(PlSqlParser.INCLUDING);
					this.state = 2334;
					this.match(PlSqlParser.TABLE);
					this.state = 2335;
					this.match(PlSqlParser.DATA);
					}
					break;
				case 470:
				case 542:
				case 2241:
					break;
				default:
					break;
				}
				this.state = 2339;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===470 || _la===542) {
					{
					this.state = 2338;
					this.dependent_exceptions_part();
					}
				}

				}
				break;
			default:
				throw new NoViableAltException(this);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public dependent_exceptions_part(): Dependent_exceptions_partContext {
		let localctx: Dependent_exceptions_partContext = new Dependent_exceptions_partContext(this, this._ctx, this.state);
		this.enterRule(localctx, 106, PlSqlParser.RULE_dependent_exceptions_part);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 2344;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===542) {
				{
				this.state = 2343;
				this.match(PlSqlParser.FORCE);
				}
			}

			this.state = 2346;
			this.match(PlSqlParser.EXCEPTIONS);
			this.state = 2347;
			this.match(PlSqlParser.INTO);
			this.state = 2348;
			this.tableview_name();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public create_type(): Create_typeContext {
		let localctx: Create_typeContext = new Create_typeContext(this, this._ctx, this.state);
		this.enterRule(localctx, 108, PlSqlParser.RULE_create_type);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 2350;
			this.match(PlSqlParser.CREATE);
			this.state = 2353;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1172) {
				{
				this.state = 2351;
				this.match(PlSqlParser.OR);
				this.state = 2352;
				this.match(PlSqlParser.REPLACE);
				}
			}

			this.state = 2355;
			this.match(PlSqlParser.TYPE);
			this.state = 2358;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 121, this._ctx) ) {
			case 1:
				{
				this.state = 2356;
				this.type_definition();
				}
				break;
			case 2:
				{
				this.state = 2357;
				this.type_body();
				}
				break;
			}
			this.state = 2360;
			this.match(PlSqlParser.SEMICOLON);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public type_definition(): Type_definitionContext {
		let localctx: Type_definitionContext = new Type_definitionContext(this, this._ctx, this.state);
		this.enterRule(localctx, 110, PlSqlParser.RULE_type_definition);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 2362;
			this.type_name();
			this.state = 2365;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1117) {
				{
				this.state = 2363;
				this.match(PlSqlParser.OID);
				this.state = 2364;
				this.match(PlSqlParser.CHAR_STRING);
				}
			}

			this.state = 2368;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===61 || _la===80 || _la===695 || _la===1997) {
				{
				this.state = 2367;
				this.object_type_def();
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public object_type_def(): Object_type_defContext {
		let localctx: Object_type_defContext = new Object_type_defContext(this, this._ctx, this.state);
		this.enterRule(localctx, 112, PlSqlParser.RULE_object_type_def);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 2371;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===80) {
				{
				this.state = 2370;
				this.invoker_rights_clause();
				}
			}

			this.state = 2375;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 61:
			case 695:
				{
				this.state = 2373;
				this.object_as_part();
				}
				break;
			case 1997:
				{
				this.state = 2374;
				this.object_under_part();
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
			this.state = 2378;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===493) {
				{
				this.state = 2377;
				this.sqlj_object_type();
				}
			}

			this.state = 2391;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===2223) {
				{
				this.state = 2380;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 2381;
				this.object_member_spec();
				this.state = 2386;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===2229) {
					{
					{
					this.state = 2382;
					this.match(PlSqlParser.COMMA);
					this.state = 2383;
					this.object_member_spec();
					}
					}
					this.state = 2388;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				this.state = 2389;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
			}

			this.state = 2396;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			while (_la===523 || _la===674 || _la===1073 || _la===1187) {
				{
				{
				this.state = 2393;
				this.modifier_clause();
				}
				}
				this.state = 2398;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public object_as_part(): Object_as_partContext {
		let localctx: Object_as_partContext = new Object_as_partContext(this, this._ctx, this.state);
		this.enterRule(localctx, 114, PlSqlParser.RULE_object_as_part);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 2399;
			_la = this._input.LA(1);
			if(!(_la===61 || _la===695)) {
			this._errHandler.recoverInline(this);
			}
			else {
				this._errHandler.reportMatch(this);
			    this.consume();
			}
			this.state = 2403;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 1107:
				{
				this.state = 2400;
				this.match(PlSqlParser.OBJECT);
				}
				break;
			case 2080:
			case 2082:
				{
				this.state = 2401;
				this.varray_type_def();
				}
				break;
			case 1912:
				{
				this.state = 2402;
				this.nested_table_type_def();
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public object_under_part(): Object_under_partContext {
		let localctx: Object_under_partContext = new Object_under_partContext(this, this._ctx, this.state);
		this.enterRule(localctx, 116, PlSqlParser.RULE_object_under_part);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 2405;
			this.match(PlSqlParser.UNDER);
			this.state = 2406;
			this.type_spec();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public nested_table_type_def(): Nested_table_type_defContext {
		let localctx: Nested_table_type_defContext = new Nested_table_type_defContext(this, this._ctx, this.state);
		this.enterRule(localctx, 118, PlSqlParser.RULE_nested_table_type_def);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 2408;
			this.match(PlSqlParser.TABLE);
			this.state = 2409;
			this.match(PlSqlParser.OF);
			this.state = 2410;
			this.type_spec();
			this.state = 2413;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 131, this._ctx) ) {
			case 1:
				{
				this.state = 2411;
				this.match(PlSqlParser.NOT);
				this.state = 2412;
				this.match(PlSqlParser.NULL_);
				}
				break;
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public sqlj_object_type(): Sqlj_object_typeContext {
		let localctx: Sqlj_object_typeContext = new Sqlj_object_typeContext(this, this._ctx, this.state);
		this.enterRule(localctx, 120, PlSqlParser.RULE_sqlj_object_type);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 2415;
			this.match(PlSqlParser.EXTERNAL);
			this.state = 2416;
			this.match(PlSqlParser.NAME);
			this.state = 2417;
			this.expression();
			this.state = 2418;
			this.match(PlSqlParser.LANGUAGE);
			this.state = 2419;
			this.match(PlSqlParser.JAVA);
			this.state = 2420;
			this.match(PlSqlParser.USING);
			this.state = 2421;
			_la = this._input.LA(1);
			if(!(_la===312 || _la===1147 || _la===1554)) {
			this._errHandler.recoverInline(this);
			}
			else {
				this._errHandler.reportMatch(this);
			    this.consume();
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public type_body(): Type_bodyContext {
		let localctx: Type_bodyContext = new Type_bodyContext(this, this._ctx, this.state);
		this.enterRule(localctx, 122, PlSqlParser.RULE_type_body);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 2423;
			this.match(PlSqlParser.BODY);
			this.state = 2424;
			this.type_name();
			this.state = 2425;
			_la = this._input.LA(1);
			if(!(_la===61 || _la===695)) {
			this._errHandler.recoverInline(this);
			}
			else {
				this._errHandler.reportMatch(this);
			    this.consume();
			}
			this.state = 2427;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			do {
				{
				{
				this.state = 2426;
				this.type_body_elements();
				}
				}
				this.state = 2429;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			} while (_la===801 || _la===826 || _la===1168 || _la===1187 || _la===1576);
			this.state = 2431;
			this.match(PlSqlParser.END);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public type_body_elements(): Type_body_elementsContext {
		let localctx: Type_body_elementsContext = new Type_body_elementsContext(this, this._ctx, this.state);
		this.enterRule(localctx, 124, PlSqlParser.RULE_type_body_elements);
		try {
			this.state = 2436;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 801:
			case 1168:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 2433;
				this.map_order_func_declaration();
				}
				break;
			case 826:
			case 1576:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 2434;
				this.subprog_decl_in_type();
				}
				break;
			case 1187:
				this.enterOuterAlt(localctx, 3);
				{
				this.state = 2435;
				this.overriding_subprogram_spec();
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public map_order_func_declaration(): Map_order_func_declarationContext {
		let localctx: Map_order_func_declarationContext = new Map_order_func_declarationContext(this, this._ctx, this.state);
		this.enterRule(localctx, 126, PlSqlParser.RULE_map_order_func_declaration);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 2438;
			_la = this._input.LA(1);
			if(!(_la===801 || _la===1168)) {
			this._errHandler.recoverInline(this);
			}
			else {
				this._errHandler.reportMatch(this);
			    this.consume();
			}
			this.state = 2439;
			this.match(PlSqlParser.MEMBER);
			this.state = 2440;
			this.func_decl_in_type();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public subprog_decl_in_type(): Subprog_decl_in_typeContext {
		let localctx: Subprog_decl_in_typeContext = new Subprog_decl_in_typeContext(this, this._ctx, this.state);
		this.enterRule(localctx, 128, PlSqlParser.RULE_subprog_decl_in_type);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 2442;
			_la = this._input.LA(1);
			if(!(_la===826 || _la===1576)) {
			this._errHandler.recoverInline(this);
			}
			else {
				this._errHandler.reportMatch(this);
			    this.consume();
			}
			this.state = 2446;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 1314:
				{
				this.state = 2443;
				this.proc_decl_in_type();
				}
				break;
			case 558:
				{
				this.state = 2444;
				this.func_decl_in_type();
				}
				break;
			case 259:
			case 523:
			case 674:
				{
				this.state = 2445;
				this.constructor_declaration();
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public proc_decl_in_type(): Proc_decl_in_typeContext {
		let localctx: Proc_decl_in_typeContext = new Proc_decl_in_typeContext(this, this._ctx, this.state);
		this.enterRule(localctx, 130, PlSqlParser.RULE_proc_decl_in_type);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 2448;
			this.match(PlSqlParser.PROCEDURE);
			this.state = 2449;
			this.procedure_name();
			this.state = 2450;
			this.match(PlSqlParser.LEFT_PAREN);
			this.state = 2451;
			this.type_elements_parameter();
			this.state = 2456;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			while (_la===2229) {
				{
				{
				this.state = 2452;
				this.match(PlSqlParser.COMMA);
				this.state = 2453;
				this.type_elements_parameter();
				}
				}
				this.state = 2458;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			}
			this.state = 2459;
			this.match(PlSqlParser.RIGHT_PAREN);
			this.state = 2460;
			_la = this._input.LA(1);
			if(!(_la===61 || _la===695)) {
			this._errHandler.recoverInline(this);
			}
			else {
				this._errHandler.reportMatch(this);
			    this.consume();
			}
			this.state = 2471;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 138, this._ctx) ) {
			case 1:
				{
				this.state = 2461;
				this.call_spec();
				}
				break;
			case 2:
				{
				this.state = 2463;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 136, this._ctx) ) {
				case 1:
					{
					this.state = 2462;
					this.match(PlSqlParser.DECLARE);
					}
					break;
				}
				this.state = 2466;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 137, this._ctx) ) {
				case 1:
					{
					this.state = 2465;
					this.seq_of_declare_specs();
					}
					break;
				}
				this.state = 2468;
				this.body();
				this.state = 2469;
				this.match(PlSqlParser.SEMICOLON);
				}
				break;
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public func_decl_in_type(): Func_decl_in_typeContext {
		let localctx: Func_decl_in_typeContext = new Func_decl_in_typeContext(this, this._ctx, this.state);
		this.enterRule(localctx, 132, PlSqlParser.RULE_func_decl_in_type);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 2473;
			this.match(PlSqlParser.FUNCTION);
			this.state = 2474;
			this.function_name();
			this.state = 2486;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===2223) {
				{
				this.state = 2475;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 2476;
				this.type_elements_parameter();
				this.state = 2481;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===2229) {
					{
					{
					this.state = 2477;
					this.match(PlSqlParser.COMMA);
					this.state = 2478;
					this.type_elements_parameter();
					}
					}
					this.state = 2483;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				this.state = 2484;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
			}

			this.state = 2488;
			this.match(PlSqlParser.RETURN);
			this.state = 2489;
			this.type_spec();
			this.state = 2490;
			_la = this._input.LA(1);
			if(!(_la===61 || _la===695)) {
			this._errHandler.recoverInline(this);
			}
			else {
				this._errHandler.reportMatch(this);
			    this.consume();
			}
			this.state = 2501;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 143, this._ctx) ) {
			case 1:
				{
				this.state = 2491;
				this.call_spec();
				}
				break;
			case 2:
				{
				this.state = 2493;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 141, this._ctx) ) {
				case 1:
					{
					this.state = 2492;
					this.match(PlSqlParser.DECLARE);
					}
					break;
				}
				this.state = 2496;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 142, this._ctx) ) {
				case 1:
					{
					this.state = 2495;
					this.seq_of_declare_specs();
					}
					break;
				}
				this.state = 2498;
				this.body();
				this.state = 2499;
				this.match(PlSqlParser.SEMICOLON);
				}
				break;
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public constructor_declaration(): Constructor_declarationContext {
		let localctx: Constructor_declarationContext = new Constructor_declarationContext(this, this._ctx, this.state);
		this.enterRule(localctx, 134, PlSqlParser.RULE_constructor_declaration);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 2504;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===523) {
				{
				this.state = 2503;
				this.match(PlSqlParser.FINAL);
				}
			}

			this.state = 2507;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===674) {
				{
				this.state = 2506;
				this.match(PlSqlParser.INSTANTIABLE);
				}
			}

			this.state = 2509;
			this.match(PlSqlParser.CONSTRUCTOR);
			this.state = 2510;
			this.match(PlSqlParser.FUNCTION);
			this.state = 2511;
			this.type_spec();
			this.state = 2529;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===2223) {
				{
				this.state = 2512;
				this.match(PlSqlParser.LEFT_PAREN);
				{
				this.state = 2513;
				this.match(PlSqlParser.SELF);
				this.state = 2514;
				this.match(PlSqlParser.IN);
				this.state = 2515;
				this.match(PlSqlParser.OUT);
				this.state = 2516;
				this.type_spec();
				this.state = 2517;
				this.match(PlSqlParser.COMMA);
				}
				this.state = 2519;
				this.type_elements_parameter();
				this.state = 2524;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===2229) {
					{
					{
					this.state = 2520;
					this.match(PlSqlParser.COMMA);
					this.state = 2521;
					this.type_elements_parameter();
					}
					}
					this.state = 2526;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				this.state = 2527;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
			}

			this.state = 2531;
			this.match(PlSqlParser.RETURN);
			this.state = 2532;
			this.match(PlSqlParser.SELF);
			this.state = 2533;
			this.match(PlSqlParser.AS);
			this.state = 2534;
			this.match(PlSqlParser.RESULT);
			this.state = 2535;
			_la = this._input.LA(1);
			if(!(_la===61 || _la===695)) {
			this._errHandler.recoverInline(this);
			}
			else {
				this._errHandler.reportMatch(this);
			    this.consume();
			}
			this.state = 2546;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 150, this._ctx) ) {
			case 1:
				{
				this.state = 2536;
				this.call_spec();
				}
				break;
			case 2:
				{
				this.state = 2538;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 148, this._ctx) ) {
				case 1:
					{
					this.state = 2537;
					this.match(PlSqlParser.DECLARE);
					}
					break;
				}
				this.state = 2541;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 149, this._ctx) ) {
				case 1:
					{
					this.state = 2540;
					this.seq_of_declare_specs();
					}
					break;
				}
				this.state = 2543;
				this.body();
				this.state = 2544;
				this.match(PlSqlParser.SEMICOLON);
				}
				break;
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public modifier_clause(): Modifier_clauseContext {
		let localctx: Modifier_clauseContext = new Modifier_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 136, PlSqlParser.RULE_modifier_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 2549;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1073) {
				{
				this.state = 2548;
				this.match(PlSqlParser.NOT);
				}
			}

			this.state = 2551;
			_la = this._input.LA(1);
			if(!(_la===523 || _la===674 || _la===1187)) {
			this._errHandler.recoverInline(this);
			}
			else {
				this._errHandler.reportMatch(this);
			    this.consume();
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public object_member_spec(): Object_member_specContext {
		let localctx: Object_member_specContext = new Object_member_specContext(this, this._ctx, this.state);
		this.enterRule(localctx, 138, PlSqlParser.RULE_object_member_spec);
		let _la: number;
		try {
			this.state = 2559;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 153, this._ctx) ) {
			case 1:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 2553;
				this.identifier();
				this.state = 2554;
				this.type_spec();
				this.state = 2556;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===493) {
					{
					this.state = 2555;
					this.sqlj_object_type_attr();
					}
				}

				}
				break;
			case 2:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 2558;
				this.element_spec();
				}
				break;
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public sqlj_object_type_attr(): Sqlj_object_type_attrContext {
		let localctx: Sqlj_object_type_attrContext = new Sqlj_object_type_attrContext(this, this._ctx, this.state);
		this.enterRule(localctx, 140, PlSqlParser.RULE_sqlj_object_type_attr);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 2561;
			this.match(PlSqlParser.EXTERNAL);
			this.state = 2562;
			this.match(PlSqlParser.NAME);
			this.state = 2563;
			this.expression();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public element_spec(): Element_specContext {
		let localctx: Element_specContext = new Element_specContext(this, this._ctx, this.state);
		this.enterRule(localctx, 142, PlSqlParser.RULE_element_spec);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 2566;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 154, this._ctx) ) {
			case 1:
				{
				this.state = 2565;
				this.modifier_clause();
				}
				break;
			}
			this.state = 2569;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			do {
				{
				{
				this.state = 2568;
				this.element_spec_options();
				}
				}
				this.state = 2571;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			} while (_la===259 || _la===523 || _la===674 || _la===801 || _la===826 || _la===1168 || _la===1576);
			this.state = 2575;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 156, this._ctx) ) {
			case 1:
				{
				this.state = 2573;
				this.match(PlSqlParser.COMMA);
				this.state = 2574;
				this.pragma_clause();
				}
				break;
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public element_spec_options(): Element_spec_optionsContext {
		let localctx: Element_spec_optionsContext = new Element_spec_optionsContext(this, this._ctx, this.state);
		this.enterRule(localctx, 144, PlSqlParser.RULE_element_spec_options);
		try {
			this.state = 2580;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 826:
			case 1576:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 2577;
				this.subprogram_spec();
				}
				break;
			case 259:
			case 523:
			case 674:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 2578;
				this.constructor_spec();
				}
				break;
			case 801:
			case 1168:
				this.enterOuterAlt(localctx, 3);
				{
				this.state = 2579;
				this.map_order_function_spec();
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public subprogram_spec(): Subprogram_specContext {
		let localctx: Subprogram_specContext = new Subprogram_specContext(this, this._ctx, this.state);
		this.enterRule(localctx, 146, PlSqlParser.RULE_subprogram_spec);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 2582;
			_la = this._input.LA(1);
			if(!(_la===826 || _la===1576)) {
			this._errHandler.recoverInline(this);
			}
			else {
				this._errHandler.reportMatch(this);
			    this.consume();
			}
			this.state = 2585;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 1314:
				{
				this.state = 2583;
				this.type_procedure_spec();
				}
				break;
			case 558:
				{
				this.state = 2584;
				this.type_function_spec();
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public overriding_subprogram_spec(): Overriding_subprogram_specContext {
		let localctx: Overriding_subprogram_specContext = new Overriding_subprogram_specContext(this, this._ctx, this.state);
		this.enterRule(localctx, 148, PlSqlParser.RULE_overriding_subprogram_spec);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 2587;
			this.match(PlSqlParser.OVERRIDING);
			this.state = 2588;
			this.match(PlSqlParser.MEMBER);
			this.state = 2589;
			this.overriding_function_spec();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public overriding_function_spec(): Overriding_function_specContext {
		let localctx: Overriding_function_specContext = new Overriding_function_specContext(this, this._ctx, this.state);
		this.enterRule(localctx, 150, PlSqlParser.RULE_overriding_function_spec);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 2591;
			this.match(PlSqlParser.FUNCTION);
			this.state = 2592;
			this.function_name();
			this.state = 2604;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===2223) {
				{
				this.state = 2593;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 2594;
				this.type_elements_parameter();
				this.state = 2599;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===2229) {
					{
					{
					this.state = 2595;
					this.match(PlSqlParser.COMMA);
					this.state = 2596;
					this.type_elements_parameter();
					}
					}
					this.state = 2601;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				this.state = 2602;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
			}

			this.state = 2606;
			this.match(PlSqlParser.RETURN);
			this.state = 2611;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 161, this._ctx) ) {
			case 1:
				{
				this.state = 2607;
				this.type_spec();
				}
				break;
			case 2:
				{
				this.state = 2608;
				this.match(PlSqlParser.SELF);
				this.state = 2609;
				this.match(PlSqlParser.AS);
				this.state = 2610;
				this.match(PlSqlParser.RESULT);
				}
				break;
			}
			this.state = 2624;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===61 || _la===695 || _la===1250) {
				{
				this.state = 2614;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===1250) {
					{
					this.state = 2613;
					this.match(PlSqlParser.PIPELINED);
					}
				}

				this.state = 2616;
				_la = this._input.LA(1);
				if(!(_la===61 || _la===695)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				{
				this.state = 2618;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 163, this._ctx) ) {
				case 1:
					{
					this.state = 2617;
					this.match(PlSqlParser.DECLARE);
					}
					break;
				}
				this.state = 2621;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 164, this._ctx) ) {
				case 1:
					{
					this.state = 2620;
					this.seq_of_declare_specs();
					}
					break;
				}
				this.state = 2623;
				this.body();
				}
				}
			}

			this.state = 2627;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 166, this._ctx) ) {
			case 1:
				{
				this.state = 2626;
				this.match(PlSqlParser.SEMICOLON);
				}
				break;
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public type_procedure_spec(): Type_procedure_specContext {
		let localctx: Type_procedure_specContext = new Type_procedure_specContext(this, this._ctx, this.state);
		this.enterRule(localctx, 152, PlSqlParser.RULE_type_procedure_spec);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 2629;
			this.match(PlSqlParser.PROCEDURE);
			this.state = 2630;
			this.procedure_name();
			this.state = 2631;
			this.match(PlSqlParser.LEFT_PAREN);
			this.state = 2632;
			this.type_elements_parameter();
			this.state = 2637;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			while (_la===2229) {
				{
				{
				this.state = 2633;
				this.match(PlSqlParser.COMMA);
				this.state = 2634;
				this.type_elements_parameter();
				}
				}
				this.state = 2639;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			}
			this.state = 2640;
			this.match(PlSqlParser.RIGHT_PAREN);
			this.state = 2643;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===61 || _la===695) {
				{
				this.state = 2641;
				_la = this._input.LA(1);
				if(!(_la===61 || _la===695)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				this.state = 2642;
				this.call_spec();
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public type_function_spec(): Type_function_specContext {
		let localctx: Type_function_specContext = new Type_function_specContext(this, this._ctx, this.state);
		this.enterRule(localctx, 154, PlSqlParser.RULE_type_function_spec);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 2645;
			this.match(PlSqlParser.FUNCTION);
			this.state = 2646;
			this.function_name();
			this.state = 2658;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===2223) {
				{
				this.state = 2647;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 2648;
				this.type_elements_parameter();
				this.state = 2653;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===2229) {
					{
					{
					this.state = 2649;
					this.match(PlSqlParser.COMMA);
					this.state = 2650;
					this.type_elements_parameter();
					}
					}
					this.state = 2655;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				this.state = 2656;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
			}

			this.state = 2660;
			this.match(PlSqlParser.RETURN);
			this.state = 2665;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 171, this._ctx) ) {
			case 1:
				{
				this.state = 2661;
				this.type_spec();
				}
				break;
			case 2:
				{
				this.state = 2662;
				this.match(PlSqlParser.SELF);
				this.state = 2663;
				this.match(PlSqlParser.AS);
				this.state = 2664;
				this.match(PlSqlParser.RESULT);
				}
				break;
			}
			this.state = 2675;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 61:
			case 695:
				{
				this.state = 2667;
				_la = this._input.LA(1);
				if(!(_la===61 || _la===695)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				this.state = 2668;
				this.call_spec();
				}
				break;
			case 493:
				{
				this.state = 2669;
				this.match(PlSqlParser.EXTERNAL);
				this.state = 2671;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===2077) {
					{
					this.state = 2670;
					this.match(PlSqlParser.VARIABLE);
					}
				}

				this.state = 2673;
				this.match(PlSqlParser.NAME);
				this.state = 2674;
				this.expression();
				}
				break;
			case 162:
			case 259:
			case 523:
			case 674:
			case 692:
			case 801:
			case 826:
			case 1168:
			case 1576:
			case 2224:
			case 2229:
			case 2241:
				break;
			default:
				break;
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public constructor_spec(): Constructor_specContext {
		let localctx: Constructor_specContext = new Constructor_specContext(this, this._ctx, this.state);
		this.enterRule(localctx, 156, PlSqlParser.RULE_constructor_spec);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 2678;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===523) {
				{
				this.state = 2677;
				this.match(PlSqlParser.FINAL);
				}
			}

			this.state = 2681;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===674) {
				{
				this.state = 2680;
				this.match(PlSqlParser.INSTANTIABLE);
				}
			}

			this.state = 2683;
			this.match(PlSqlParser.CONSTRUCTOR);
			this.state = 2684;
			this.match(PlSqlParser.FUNCTION);
			this.state = 2685;
			this.type_spec();
			this.state = 2703;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===2223) {
				{
				this.state = 2686;
				this.match(PlSqlParser.LEFT_PAREN);
				{
				this.state = 2687;
				this.match(PlSqlParser.SELF);
				this.state = 2688;
				this.match(PlSqlParser.IN);
				this.state = 2689;
				this.match(PlSqlParser.OUT);
				this.state = 2690;
				this.type_spec();
				this.state = 2691;
				this.match(PlSqlParser.COMMA);
				}
				this.state = 2693;
				this.type_elements_parameter();
				this.state = 2698;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===2229) {
					{
					{
					this.state = 2694;
					this.match(PlSqlParser.COMMA);
					this.state = 2695;
					this.type_elements_parameter();
					}
					}
					this.state = 2700;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				this.state = 2701;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
			}

			this.state = 2705;
			this.match(PlSqlParser.RETURN);
			this.state = 2706;
			this.match(PlSqlParser.SELF);
			this.state = 2707;
			this.match(PlSqlParser.AS);
			this.state = 2708;
			this.match(PlSqlParser.RESULT);
			this.state = 2711;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===61 || _la===695) {
				{
				this.state = 2709;
				_la = this._input.LA(1);
				if(!(_la===61 || _la===695)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				this.state = 2710;
				this.call_spec();
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public map_order_function_spec(): Map_order_function_specContext {
		let localctx: Map_order_function_specContext = new Map_order_function_specContext(this, this._ctx, this.state);
		this.enterRule(localctx, 158, PlSqlParser.RULE_map_order_function_spec);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 2713;
			_la = this._input.LA(1);
			if(!(_la===801 || _la===1168)) {
			this._errHandler.recoverInline(this);
			}
			else {
				this._errHandler.reportMatch(this);
			    this.consume();
			}
			this.state = 2714;
			this.match(PlSqlParser.MEMBER);
			this.state = 2715;
			this.type_function_spec();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public pragma_clause(): Pragma_clauseContext {
		let localctx: Pragma_clauseContext = new Pragma_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 160, PlSqlParser.RULE_pragma_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 2717;
			this.match(PlSqlParser.PRAGMA);
			this.state = 2718;
			this.match(PlSqlParser.RESTRICT_REFERENCES);
			this.state = 2719;
			this.match(PlSqlParser.LEFT_PAREN);
			this.state = 2720;
			this.pragma_elements();
			this.state = 2725;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			while (_la===2229) {
				{
				{
				this.state = 2721;
				this.match(PlSqlParser.COMMA);
				this.state = 2722;
				this.pragma_elements();
				}
				}
				this.state = 2727;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			}
			this.state = 2728;
			this.match(PlSqlParser.RIGHT_PAREN);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public pragma_elements(): Pragma_elementsContext {
		let localctx: Pragma_elementsContext = new Pragma_elementsContext(this, this._ctx, this.state);
		this.enterRule(localctx, 162, PlSqlParser.RULE_pragma_elements);
		try {
			this.state = 2732;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 1:
			case 2:
			case 3:
			case 4:
			case 5:
			case 6:
			case 7:
			case 8:
			case 9:
			case 10:
			case 11:
			case 12:
			case 13:
			case 14:
			case 15:
			case 16:
			case 17:
			case 18:
			case 19:
			case 20:
			case 21:
			case 22:
			case 23:
			case 24:
			case 25:
			case 26:
			case 27:
			case 28:
			case 29:
			case 30:
			case 31:
			case 32:
			case 33:
			case 34:
			case 36:
			case 37:
			case 38:
			case 40:
			case 41:
			case 42:
			case 44:
			case 45:
			case 46:
			case 47:
			case 49:
			case 50:
			case 51:
			case 52:
			case 53:
			case 54:
			case 55:
			case 56:
			case 57:
			case 58:
			case 59:
			case 60:
			case 63:
			case 64:
			case 65:
			case 66:
			case 67:
			case 68:
			case 69:
			case 70:
			case 71:
			case 72:
			case 73:
			case 74:
			case 75:
			case 76:
			case 78:
			case 79:
			case 80:
			case 81:
			case 82:
			case 83:
			case 85:
			case 86:
			case 87:
			case 88:
			case 89:
			case 90:
			case 91:
			case 92:
			case 93:
			case 95:
			case 96:
			case 97:
			case 98:
			case 99:
			case 100:
			case 101:
			case 102:
			case 103:
			case 104:
			case 105:
			case 106:
			case 108:
			case 109:
			case 110:
			case 111:
			case 112:
			case 113:
			case 114:
			case 115:
			case 116:
			case 117:
			case 118:
			case 119:
			case 120:
			case 121:
			case 122:
			case 123:
			case 124:
			case 125:
			case 126:
			case 127:
			case 128:
			case 129:
			case 130:
			case 131:
			case 132:
			case 133:
			case 134:
			case 135:
			case 136:
			case 137:
			case 138:
			case 139:
			case 140:
			case 141:
			case 142:
			case 143:
			case 144:
			case 145:
			case 147:
			case 148:
			case 149:
			case 150:
			case 151:
			case 152:
			case 153:
			case 154:
			case 155:
			case 156:
			case 157:
			case 158:
			case 160:
			case 161:
			case 162:
			case 163:
			case 164:
			case 165:
			case 166:
			case 167:
			case 168:
			case 169:
			case 170:
			case 171:
			case 172:
			case 174:
			case 175:
			case 176:
			case 177:
			case 178:
			case 179:
			case 181:
			case 182:
			case 183:
			case 184:
			case 185:
			case 186:
			case 187:
			case 188:
			case 189:
			case 190:
			case 191:
			case 192:
			case 193:
			case 194:
			case 195:
			case 196:
			case 197:
			case 198:
			case 199:
			case 200:
			case 201:
			case 202:
			case 203:
			case 204:
			case 205:
			case 206:
			case 207:
			case 208:
			case 209:
			case 210:
			case 211:
			case 212:
			case 213:
			case 214:
			case 215:
			case 216:
			case 217:
			case 218:
			case 219:
			case 220:
			case 221:
			case 222:
			case 223:
			case 224:
			case 225:
			case 226:
			case 227:
			case 228:
			case 229:
			case 230:
			case 231:
			case 233:
			case 234:
			case 235:
			case 236:
			case 237:
			case 238:
			case 239:
			case 240:
			case 241:
			case 242:
			case 243:
			case 244:
			case 245:
			case 246:
			case 247:
			case 248:
			case 249:
			case 250:
			case 252:
			case 253:
			case 254:
			case 255:
			case 256:
			case 257:
			case 258:
			case 259:
			case 260:
			case 261:
			case 262:
			case 263:
			case 264:
			case 265:
			case 266:
			case 267:
			case 268:
			case 269:
			case 270:
			case 271:
			case 272:
			case 273:
			case 274:
			case 275:
			case 276:
			case 277:
			case 278:
			case 279:
			case 280:
			case 281:
			case 282:
			case 283:
			case 284:
			case 285:
			case 286:
			case 287:
			case 289:
			case 290:
			case 291:
			case 292:
			case 293:
			case 294:
			case 295:
			case 296:
			case 297:
			case 298:
			case 299:
			case 300:
			case 301:
			case 302:
			case 303:
			case 304:
			case 305:
			case 306:
			case 307:
			case 308:
			case 309:
			case 310:
			case 311:
			case 312:
			case 313:
			case 314:
			case 315:
			case 316:
			case 317:
			case 318:
			case 319:
			case 321:
			case 322:
			case 323:
			case 324:
			case 325:
			case 326:
			case 328:
			case 329:
			case 330:
			case 331:
			case 332:
			case 333:
			case 334:
			case 335:
			case 336:
			case 337:
			case 338:
			case 339:
			case 340:
			case 341:
			case 342:
			case 343:
			case 344:
			case 345:
			case 346:
			case 347:
			case 348:
			case 349:
			case 350:
			case 352:
			case 353:
			case 354:
			case 355:
			case 356:
			case 357:
			case 358:
			case 359:
			case 360:
			case 361:
			case 362:
			case 363:
			case 364:
			case 365:
			case 366:
			case 367:
			case 368:
			case 369:
			case 370:
			case 372:
			case 373:
			case 374:
			case 375:
			case 376:
			case 377:
			case 378:
			case 379:
			case 380:
			case 381:
			case 382:
			case 383:
			case 384:
			case 385:
			case 386:
			case 387:
			case 388:
			case 389:
			case 390:
			case 391:
			case 392:
			case 394:
			case 395:
			case 397:
			case 398:
			case 399:
			case 400:
			case 401:
			case 402:
			case 403:
			case 404:
			case 405:
			case 406:
			case 407:
			case 408:
			case 409:
			case 410:
			case 412:
			case 413:
			case 414:
			case 415:
			case 417:
			case 418:
			case 419:
			case 420:
			case 421:
			case 422:
			case 423:
			case 424:
			case 425:
			case 426:
			case 427:
			case 428:
			case 429:
			case 430:
			case 431:
			case 434:
			case 435:
			case 436:
			case 437:
			case 438:
			case 439:
			case 440:
			case 441:
			case 442:
			case 443:
			case 444:
			case 446:
			case 447:
			case 448:
			case 449:
			case 450:
			case 451:
			case 452:
			case 453:
			case 454:
			case 455:
			case 456:
			case 457:
			case 458:
			case 459:
			case 460:
			case 461:
			case 462:
			case 463:
			case 464:
			case 465:
			case 466:
			case 467:
			case 468:
			case 469:
			case 470:
			case 471:
			case 472:
			case 473:
			case 475:
			case 476:
			case 477:
			case 478:
			case 479:
			case 480:
			case 481:
			case 482:
			case 483:
			case 484:
			case 485:
			case 486:
			case 487:
			case 488:
			case 489:
			case 490:
			case 491:
			case 492:
			case 493:
			case 494:
			case 495:
			case 496:
			case 497:
			case 498:
			case 499:
			case 500:
			case 501:
			case 502:
			case 503:
			case 504:
			case 505:
			case 506:
			case 507:
			case 508:
			case 509:
			case 510:
			case 511:
			case 512:
			case 513:
			case 514:
			case 515:
			case 516:
			case 517:
			case 518:
			case 519:
			case 520:
			case 521:
			case 522:
			case 523:
			case 524:
			case 525:
			case 526:
			case 527:
			case 528:
			case 529:
			case 530:
			case 531:
			case 532:
			case 533:
			case 534:
			case 535:
			case 536:
			case 537:
			case 538:
			case 539:
			case 540:
			case 541:
			case 542:
			case 543:
			case 544:
			case 545:
			case 547:
			case 548:
			case 549:
			case 550:
			case 551:
			case 552:
			case 553:
			case 555:
			case 556:
			case 557:
			case 558:
			case 559:
			case 560:
			case 561:
			case 562:
			case 563:
			case 564:
			case 565:
			case 566:
			case 567:
			case 568:
			case 569:
			case 572:
			case 574:
			case 575:
			case 576:
			case 577:
			case 578:
			case 579:
			case 580:
			case 581:
			case 582:
			case 583:
			case 584:
			case 586:
			case 587:
			case 588:
			case 589:
			case 590:
			case 591:
			case 592:
			case 593:
			case 594:
			case 595:
			case 596:
			case 597:
			case 598:
			case 599:
			case 600:
			case 602:
			case 603:
			case 604:
			case 605:
			case 606:
			case 607:
			case 608:
			case 609:
			case 610:
			case 611:
			case 612:
			case 613:
			case 614:
			case 615:
			case 616:
			case 617:
			case 618:
			case 619:
			case 620:
			case 621:
			case 622:
			case 623:
			case 624:
			case 625:
			case 626:
			case 627:
			case 628:
			case 629:
			case 630:
			case 632:
			case 633:
			case 634:
			case 635:
			case 636:
			case 637:
			case 638:
			case 639:
			case 640:
			case 641:
			case 642:
			case 643:
			case 644:
			case 645:
			case 646:
			case 647:
			case 648:
			case 649:
			case 650:
			case 651:
			case 653:
			case 654:
			case 655:
			case 656:
			case 657:
			case 658:
			case 659:
			case 660:
			case 661:
			case 662:
			case 663:
			case 664:
			case 665:
			case 666:
			case 667:
			case 668:
			case 670:
			case 671:
			case 672:
			case 673:
			case 674:
			case 675:
			case 676:
			case 677:
			case 678:
			case 679:
			case 680:
			case 681:
			case 682:
			case 683:
			case 684:
			case 685:
			case 686:
			case 687:
			case 689:
			case 690:
			case 692:
			case 693:
			case 694:
			case 696:
			case 697:
			case 698:
			case 699:
			case 700:
			case 701:
			case 702:
			case 703:
			case 704:
			case 705:
			case 706:
			case 707:
			case 708:
			case 709:
			case 710:
			case 711:
			case 712:
			case 713:
			case 714:
			case 715:
			case 716:
			case 717:
			case 718:
			case 719:
			case 720:
			case 721:
			case 722:
			case 723:
			case 724:
			case 725:
			case 726:
			case 727:
			case 728:
			case 729:
			case 730:
			case 731:
			case 732:
			case 733:
			case 734:
			case 735:
			case 736:
			case 737:
			case 738:
			case 739:
			case 740:
			case 741:
			case 742:
			case 743:
			case 744:
			case 745:
			case 746:
			case 747:
			case 748:
			case 749:
			case 750:
			case 751:
			case 752:
			case 753:
			case 754:
			case 755:
			case 756:
			case 758:
			case 759:
			case 760:
			case 761:
			case 762:
			case 763:
			case 764:
			case 765:
			case 766:
			case 767:
			case 768:
			case 769:
			case 770:
			case 771:
			case 772:
			case 773:
			case 774:
			case 775:
			case 777:
			case 778:
			case 779:
			case 780:
			case 781:
			case 782:
			case 783:
			case 784:
			case 785:
			case 786:
			case 787:
			case 788:
			case 789:
			case 790:
			case 791:
			case 792:
			case 793:
			case 794:
			case 795:
			case 796:
			case 797:
			case 798:
			case 799:
			case 800:
			case 801:
			case 802:
			case 803:
			case 804:
			case 805:
			case 806:
			case 807:
			case 808:
			case 809:
			case 810:
			case 811:
			case 812:
			case 813:
			case 814:
			case 815:
			case 816:
			case 817:
			case 818:
			case 819:
			case 820:
			case 821:
			case 822:
			case 823:
			case 824:
			case 825:
			case 826:
			case 827:
			case 828:
			case 829:
			case 830:
			case 831:
			case 832:
			case 833:
			case 834:
			case 835:
			case 836:
			case 837:
			case 838:
			case 839:
			case 840:
			case 841:
			case 843:
			case 844:
			case 845:
			case 846:
			case 847:
			case 848:
			case 849:
			case 850:
			case 851:
			case 852:
			case 853:
			case 854:
			case 855:
			case 856:
			case 857:
			case 858:
			case 859:
			case 861:
			case 862:
			case 863:
			case 864:
			case 865:
			case 866:
			case 867:
			case 868:
			case 869:
			case 870:
			case 871:
			case 872:
			case 873:
			case 874:
			case 875:
			case 876:
			case 877:
			case 878:
			case 879:
			case 880:
			case 881:
			case 882:
			case 883:
			case 884:
			case 885:
			case 886:
			case 888:
			case 889:
			case 890:
			case 891:
			case 892:
			case 893:
			case 894:
			case 895:
			case 896:
			case 897:
			case 898:
			case 899:
			case 900:
			case 901:
			case 902:
			case 903:
			case 904:
			case 905:
			case 906:
			case 907:
			case 908:
			case 909:
			case 910:
			case 911:
			case 912:
			case 913:
			case 914:
			case 915:
			case 916:
			case 917:
			case 918:
			case 919:
			case 920:
			case 921:
			case 922:
			case 923:
			case 924:
			case 925:
			case 926:
			case 927:
			case 928:
			case 929:
			case 930:
			case 931:
			case 932:
			case 933:
			case 934:
			case 935:
			case 936:
			case 937:
			case 938:
			case 939:
			case 940:
			case 941:
			case 942:
			case 943:
			case 944:
			case 945:
			case 946:
			case 947:
			case 948:
			case 949:
			case 950:
			case 951:
			case 952:
			case 954:
			case 955:
			case 956:
			case 957:
			case 958:
			case 959:
			case 960:
			case 961:
			case 962:
			case 963:
			case 964:
			case 965:
			case 966:
			case 967:
			case 968:
			case 969:
			case 970:
			case 971:
			case 972:
			case 973:
			case 974:
			case 975:
			case 976:
			case 977:
			case 978:
			case 979:
			case 980:
			case 981:
			case 982:
			case 983:
			case 984:
			case 985:
			case 986:
			case 987:
			case 988:
			case 989:
			case 990:
			case 991:
			case 992:
			case 993:
			case 994:
			case 995:
			case 996:
			case 997:
			case 998:
			case 999:
			case 1000:
			case 1001:
			case 1002:
			case 1003:
			case 1004:
			case 1005:
			case 1006:
			case 1007:
			case 1008:
			case 1009:
			case 1010:
			case 1011:
			case 1012:
			case 1013:
			case 1014:
			case 1015:
			case 1016:
			case 1017:
			case 1018:
			case 1019:
			case 1020:
			case 1021:
			case 1022:
			case 1023:
			case 1024:
			case 1025:
			case 1026:
			case 1027:
			case 1028:
			case 1029:
			case 1030:
			case 1031:
			case 1032:
			case 1033:
			case 1034:
			case 1035:
			case 1036:
			case 1037:
			case 1038:
			case 1039:
			case 1040:
			case 1041:
			case 1042:
			case 1043:
			case 1044:
			case 1045:
			case 1046:
			case 1047:
			case 1048:
			case 1049:
			case 1050:
			case 1051:
			case 1052:
			case 1053:
			case 1054:
			case 1055:
			case 1056:
			case 1057:
			case 1058:
			case 1059:
			case 1060:
			case 1061:
			case 1062:
			case 1063:
			case 1064:
			case 1065:
			case 1066:
			case 1067:
			case 1068:
			case 1069:
			case 1070:
			case 1071:
			case 1072:
			case 1074:
			case 1075:
			case 1076:
			case 1077:
			case 1078:
			case 1079:
			case 1080:
			case 1081:
			case 1082:
			case 1083:
			case 1084:
			case 1085:
			case 1086:
			case 1087:
			case 1089:
			case 1090:
			case 1091:
			case 1092:
			case 1093:
			case 1094:
			case 1095:
			case 1096:
			case 1098:
			case 1099:
			case 1100:
			case 1101:
			case 1102:
			case 1103:
			case 1104:
			case 1105:
			case 1106:
			case 1107:
			case 1108:
			case 1109:
			case 1110:
			case 1111:
			case 1112:
			case 1113:
			case 1114:
			case 1116:
			case 1117:
			case 1118:
			case 1119:
			case 1120:
			case 1121:
			case 1122:
			case 1123:
			case 1124:
			case 1125:
			case 1127:
			case 1129:
			case 1130:
			case 1131:
			case 1132:
			case 1133:
			case 1134:
			case 1135:
			case 1136:
			case 1137:
			case 1138:
			case 1139:
			case 1140:
			case 1142:
			case 1143:
			case 1144:
			case 1145:
			case 1146:
			case 1147:
			case 1148:
			case 1149:
			case 1150:
			case 1151:
			case 1152:
			case 1153:
			case 1154:
			case 1155:
			case 1156:
			case 1157:
			case 1158:
			case 1159:
			case 1160:
			case 1161:
			case 1162:
			case 1163:
			case 1164:
			case 1165:
			case 1166:
			case 1167:
			case 1169:
			case 1170:
			case 1171:
			case 1173:
			case 1174:
			case 1175:
			case 1176:
			case 1177:
			case 1178:
			case 1179:
			case 1180:
			case 1181:
			case 1182:
			case 1183:
			case 1184:
			case 1185:
			case 1186:
			case 1187:
			case 1188:
			case 1189:
			case 1190:
			case 1191:
			case 1192:
			case 1193:
			case 1194:
			case 1195:
			case 1197:
			case 1198:
			case 1199:
			case 1200:
			case 1201:
			case 1202:
			case 1203:
			case 1204:
			case 1205:
			case 1206:
			case 1207:
			case 1208:
			case 1209:
			case 1210:
			case 1211:
			case 1212:
			case 1213:
			case 1214:
			case 1215:
			case 1216:
			case 1217:
			case 1218:
			case 1219:
			case 1220:
			case 1221:
			case 1222:
			case 1223:
			case 1224:
			case 1225:
			case 1226:
			case 1228:
			case 1229:
			case 1230:
			case 1231:
			case 1232:
			case 1236:
			case 1237:
			case 1241:
			case 1242:
			case 1243:
			case 1244:
			case 1245:
			case 1246:
			case 1247:
			case 1248:
			case 1249:
			case 1250:
			case 1252:
			case 1253:
			case 1254:
			case 1255:
			case 1256:
			case 1257:
			case 1258:
			case 1259:
			case 1260:
			case 1261:
			case 1262:
			case 1263:
			case 1264:
			case 1265:
			case 1266:
			case 1267:
			case 1268:
			case 1269:
			case 1270:
			case 1271:
			case 1272:
			case 1273:
			case 1274:
			case 1275:
			case 1276:
			case 1277:
			case 1278:
			case 1279:
			case 1280:
			case 1281:
			case 1282:
			case 1283:
			case 1284:
			case 1285:
			case 1286:
			case 1287:
			case 1288:
			case 1289:
			case 1290:
			case 1291:
			case 1292:
			case 1293:
			case 1294:
			case 1295:
			case 1296:
			case 1297:
			case 1298:
			case 1299:
			case 1300:
			case 1301:
			case 1302:
			case 1303:
			case 1304:
			case 1305:
			case 1306:
			case 1308:
			case 1309:
			case 1310:
			case 1311:
			case 1312:
			case 1313:
			case 1314:
			case 1315:
			case 1316:
			case 1317:
			case 1318:
			case 1319:
			case 1320:
			case 1321:
			case 1322:
			case 1323:
			case 1325:
			case 1326:
			case 1327:
			case 1328:
			case 1329:
			case 1330:
			case 1331:
			case 1332:
			case 1333:
			case 1334:
			case 1335:
			case 1336:
			case 1337:
			case 1338:
			case 1339:
			case 1340:
			case 1341:
			case 1342:
			case 1343:
			case 1344:
			case 1345:
			case 1346:
			case 1347:
			case 1348:
			case 1349:
			case 1350:
			case 1351:
			case 1352:
			case 1353:
			case 1354:
			case 1355:
			case 1356:
			case 1357:
			case 1358:
			case 1359:
			case 1360:
			case 1361:
			case 1362:
			case 1363:
			case 1364:
			case 1365:
			case 1366:
			case 1367:
			case 1368:
			case 1369:
			case 1370:
			case 1371:
			case 1372:
			case 1373:
			case 1374:
			case 1375:
			case 1376:
			case 1377:
			case 1378:
			case 1379:
			case 1380:
			case 1381:
			case 1382:
			case 1383:
			case 1384:
			case 1385:
			case 1386:
			case 1387:
			case 1388:
			case 1389:
			case 1390:
			case 1391:
			case 1392:
			case 1393:
			case 1394:
			case 1395:
			case 1396:
			case 1397:
			case 1399:
			case 1400:
			case 1401:
			case 1402:
			case 1403:
			case 1404:
			case 1405:
			case 1406:
			case 1407:
			case 1408:
			case 1409:
			case 1410:
			case 1411:
			case 1412:
			case 1413:
			case 1414:
			case 1416:
			case 1417:
			case 1418:
			case 1419:
			case 1420:
			case 1421:
			case 1422:
			case 1423:
			case 1424:
			case 1425:
			case 1426:
			case 1427:
			case 1428:
			case 1429:
			case 1430:
			case 1431:
			case 1432:
			case 1433:
			case 1435:
			case 1436:
			case 1437:
			case 1438:
			case 1439:
			case 1440:
			case 1441:
			case 1442:
			case 1443:
			case 1444:
			case 1445:
			case 1446:
			case 1447:
			case 1448:
			case 1449:
			case 1450:
			case 1451:
			case 1452:
			case 1453:
			case 1454:
			case 1455:
			case 1456:
			case 1457:
			case 1458:
			case 1459:
			case 1460:
			case 1461:
			case 1462:
			case 1463:
			case 1464:
			case 1465:
			case 1466:
			case 1467:
			case 1468:
			case 1469:
			case 1470:
			case 1471:
			case 1472:
			case 1473:
			case 1474:
			case 1475:
			case 1476:
			case 1477:
			case 1478:
			case 1479:
			case 1480:
			case 1481:
			case 1482:
			case 1483:
			case 1484:
			case 1485:
			case 1486:
			case 1487:
			case 1488:
			case 1489:
			case 1491:
			case 1492:
			case 1493:
			case 1494:
			case 1495:
			case 1496:
			case 1497:
			case 1499:
			case 1500:
			case 1501:
			case 1502:
			case 1503:
			case 1504:
			case 1505:
			case 1506:
			case 1507:
			case 1508:
			case 1509:
			case 1510:
			case 1511:
			case 1512:
			case 1513:
			case 1514:
			case 1515:
			case 1516:
			case 1518:
			case 1519:
			case 1520:
			case 1521:
			case 1522:
			case 1523:
			case 1524:
			case 1525:
			case 1526:
			case 1527:
			case 1528:
			case 1529:
			case 1530:
			case 1531:
			case 1532:
			case 1533:
			case 1534:
			case 1536:
			case 1537:
			case 1538:
			case 1539:
			case 1540:
			case 1541:
			case 1542:
			case 1543:
			case 1544:
			case 1545:
			case 1546:
			case 1547:
			case 1548:
			case 1549:
			case 1550:
			case 1551:
			case 1552:
			case 1553:
			case 1554:
			case 1555:
			case 1556:
			case 1557:
			case 1558:
			case 1559:
			case 1560:
			case 1561:
			case 1562:
			case 1563:
			case 1564:
			case 1565:
			case 1566:
			case 1567:
			case 1568:
			case 1570:
			case 1571:
			case 1572:
			case 1573:
			case 1574:
			case 1575:
			case 1576:
			case 1577:
			case 1578:
			case 1579:
			case 1580:
			case 1581:
			case 1582:
			case 1583:
			case 1584:
			case 1585:
			case 1586:
			case 1587:
			case 1588:
			case 1589:
			case 1590:
			case 1591:
			case 1592:
			case 1593:
			case 1594:
			case 1595:
			case 1596:
			case 1597:
			case 1598:
			case 1599:
			case 1600:
			case 1601:
			case 1602:
			case 1603:
			case 1604:
			case 1605:
			case 1606:
			case 1607:
			case 1608:
			case 1609:
			case 1610:
			case 1611:
			case 1612:
			case 1613:
			case 1614:
			case 1615:
			case 1616:
			case 1617:
			case 1618:
			case 1619:
			case 1620:
			case 1621:
			case 1622:
			case 1623:
			case 1624:
			case 1625:
			case 1626:
			case 1628:
			case 1629:
			case 1630:
			case 1631:
			case 1632:
			case 1633:
			case 1634:
			case 1635:
			case 1636:
			case 1637:
			case 1638:
			case 1639:
			case 1640:
			case 1641:
			case 1642:
			case 1643:
			case 1644:
			case 1645:
			case 1646:
			case 1647:
			case 1648:
			case 1649:
			case 1650:
			case 1651:
			case 1652:
			case 1653:
			case 1654:
			case 1655:
			case 1656:
			case 1657:
			case 1658:
			case 1659:
			case 1660:
			case 1661:
			case 1662:
			case 1663:
			case 1664:
			case 1665:
			case 1666:
			case 1667:
			case 1668:
			case 1669:
			case 1670:
			case 1671:
			case 1672:
			case 1673:
			case 1674:
			case 1675:
			case 1676:
			case 1677:
			case 1678:
			case 1679:
			case 1680:
			case 1681:
			case 1682:
			case 1683:
			case 1684:
			case 1685:
			case 1686:
			case 1687:
			case 1688:
			case 1689:
			case 1690:
			case 1691:
			case 1692:
			case 1693:
			case 1694:
			case 1695:
			case 1696:
			case 1697:
			case 1698:
			case 1699:
			case 1700:
			case 1701:
			case 1702:
			case 1703:
			case 1704:
			case 1705:
			case 1706:
			case 1707:
			case 1708:
			case 1709:
			case 1710:
			case 1711:
			case 1712:
			case 1713:
			case 1714:
			case 1715:
			case 1716:
			case 1717:
			case 1718:
			case 1719:
			case 1720:
			case 1721:
			case 1722:
			case 1723:
			case 1724:
			case 1725:
			case 1726:
			case 1727:
			case 1728:
			case 1729:
			case 1730:
			case 1731:
			case 1732:
			case 1733:
			case 1734:
			case 1735:
			case 1736:
			case 1737:
			case 1738:
			case 1739:
			case 1740:
			case 1741:
			case 1742:
			case 1743:
			case 1744:
			case 1745:
			case 1746:
			case 1747:
			case 1748:
			case 1749:
			case 1750:
			case 1751:
			case 1752:
			case 1753:
			case 1754:
			case 1755:
			case 1756:
			case 1757:
			case 1758:
			case 1759:
			case 1760:
			case 1761:
			case 1762:
			case 1763:
			case 1764:
			case 1765:
			case 1766:
			case 1767:
			case 1768:
			case 1769:
			case 1770:
			case 1771:
			case 1772:
			case 1773:
			case 1774:
			case 1775:
			case 1776:
			case 1777:
			case 1778:
			case 1779:
			case 1780:
			case 1781:
			case 1782:
			case 1783:
			case 1784:
			case 1785:
			case 1786:
			case 1787:
			case 1788:
			case 1789:
			case 1790:
			case 1791:
			case 1792:
			case 1793:
			case 1794:
			case 1795:
			case 1796:
			case 1797:
			case 1798:
			case 1799:
			case 1800:
			case 1801:
			case 1802:
			case 1803:
			case 1804:
			case 1805:
			case 1806:
			case 1807:
			case 1808:
			case 1809:
			case 1810:
			case 1811:
			case 1812:
			case 1813:
			case 1814:
			case 1815:
			case 1816:
			case 1817:
			case 1818:
			case 1819:
			case 1820:
			case 1821:
			case 1822:
			case 1823:
			case 1824:
			case 1825:
			case 1826:
			case 1827:
			case 1828:
			case 1829:
			case 1830:
			case 1831:
			case 1832:
			case 1833:
			case 1834:
			case 1835:
			case 1836:
			case 1837:
			case 1838:
			case 1839:
			case 1840:
			case 1841:
			case 1842:
			case 1843:
			case 1844:
			case 1845:
			case 1846:
			case 1847:
			case 1848:
			case 1849:
			case 1850:
			case 1851:
			case 1852:
			case 1853:
			case 1854:
			case 1855:
			case 1856:
			case 1857:
			case 1858:
			case 1859:
			case 1860:
			case 1861:
			case 1862:
			case 1863:
			case 1864:
			case 1865:
			case 1866:
			case 1867:
			case 1868:
			case 1869:
			case 1870:
			case 1871:
			case 1872:
			case 1873:
			case 1874:
			case 1875:
			case 1876:
			case 1877:
			case 1878:
			case 1879:
			case 1880:
			case 1881:
			case 1882:
			case 1883:
			case 1884:
			case 1885:
			case 1886:
			case 1887:
			case 1888:
			case 1889:
			case 1890:
			case 1891:
			case 1892:
			case 1893:
			case 1894:
			case 1895:
			case 1896:
			case 1897:
			case 1898:
			case 1899:
			case 1900:
			case 1901:
			case 1902:
			case 1903:
			case 1904:
			case 1905:
			case 1906:
			case 1907:
			case 1908:
			case 1909:
			case 1910:
			case 1911:
			case 1912:
			case 1913:
			case 1914:
			case 1915:
			case 1916:
			case 1917:
			case 1918:
			case 1919:
			case 1920:
			case 1921:
			case 1922:
			case 1923:
			case 1924:
			case 1925:
			case 1926:
			case 1927:
			case 1928:
			case 1929:
			case 1930:
			case 1931:
			case 1932:
			case 1933:
			case 1934:
			case 1935:
			case 1936:
			case 1937:
			case 1939:
			case 1940:
			case 1941:
			case 1942:
			case 1943:
			case 1944:
			case 1945:
			case 1946:
			case 1947:
			case 1948:
			case 1949:
			case 1950:
			case 1951:
			case 1952:
			case 1953:
			case 1954:
			case 1955:
			case 1956:
			case 1957:
			case 1958:
			case 1959:
			case 1960:
			case 1961:
			case 1962:
			case 1963:
			case 1965:
			case 1966:
			case 1967:
			case 1968:
			case 1969:
			case 1970:
			case 1971:
			case 1972:
			case 1973:
			case 1974:
			case 1975:
			case 1976:
			case 1977:
			case 1978:
			case 1979:
			case 1980:
			case 1981:
			case 1982:
			case 1983:
			case 1984:
			case 1985:
			case 1986:
			case 1987:
			case 1988:
			case 1989:
			case 1990:
			case 1991:
			case 1992:
			case 1993:
			case 1994:
			case 1995:
			case 1996:
			case 1997:
			case 1998:
			case 1999:
			case 2000:
			case 2003:
			case 2004:
			case 2005:
			case 2006:
			case 2007:
			case 2008:
			case 2009:
			case 2010:
			case 2011:
			case 2012:
			case 2013:
			case 2014:
			case 2015:
			case 2016:
			case 2017:
			case 2018:
			case 2019:
			case 2020:
			case 2021:
			case 2022:
			case 2023:
			case 2024:
			case 2026:
			case 2027:
			case 2028:
			case 2029:
			case 2030:
			case 2031:
			case 2032:
			case 2033:
			case 2034:
			case 2035:
			case 2036:
			case 2037:
			case 2038:
			case 2039:
			case 2040:
			case 2041:
			case 2042:
			case 2043:
			case 2044:
			case 2045:
			case 2046:
			case 2047:
			case 2048:
			case 2049:
			case 2050:
			case 2051:
			case 2052:
			case 2053:
			case 2054:
			case 2055:
			case 2056:
			case 2057:
			case 2058:
			case 2059:
			case 2060:
			case 2061:
			case 2062:
			case 2063:
			case 2064:
			case 2065:
			case 2066:
			case 2067:
			case 2068:
			case 2069:
			case 2070:
			case 2071:
			case 2072:
			case 2074:
			case 2075:
			case 2076:
			case 2077:
			case 2078:
			case 2079:
			case 2080:
			case 2081:
			case 2082:
			case 2083:
			case 2084:
			case 2085:
			case 2086:
			case 2087:
			case 2088:
			case 2089:
			case 2090:
			case 2091:
			case 2092:
			case 2093:
			case 2094:
			case 2095:
			case 2096:
			case 2097:
			case 2098:
			case 2100:
			case 2101:
			case 2102:
			case 2103:
			case 2104:
			case 2105:
			case 2106:
			case 2107:
			case 2108:
			case 2109:
			case 2110:
			case 2111:
			case 2112:
			case 2113:
			case 2115:
			case 2116:
			case 2117:
			case 2118:
			case 2119:
			case 2120:
			case 2122:
			case 2123:
			case 2124:
			case 2125:
			case 2126:
			case 2128:
			case 2129:
			case 2130:
			case 2131:
			case 2132:
			case 2133:
			case 2134:
			case 2135:
			case 2136:
			case 2137:
			case 2138:
			case 2139:
			case 2140:
			case 2141:
			case 2142:
			case 2143:
			case 2145:
			case 2146:
			case 2147:
			case 2148:
			case 2149:
			case 2150:
			case 2151:
			case 2152:
			case 2153:
			case 2154:
			case 2155:
			case 2156:
			case 2157:
			case 2158:
			case 2159:
			case 2160:
			case 2161:
			case 2162:
			case 2163:
			case 2164:
			case 2165:
			case 2166:
			case 2168:
			case 2169:
			case 2170:
			case 2171:
			case 2172:
			case 2173:
			case 2174:
			case 2175:
			case 2176:
			case 2177:
			case 2178:
			case 2179:
			case 2180:
			case 2181:
			case 2182:
			case 2183:
			case 2184:
			case 2185:
			case 2186:
			case 2187:
			case 2188:
			case 2189:
			case 2191:
			case 2192:
			case 2193:
			case 2194:
			case 2195:
			case 2196:
			case 2197:
			case 2198:
			case 2199:
			case 2200:
			case 2201:
			case 2202:
			case 2203:
			case 2204:
			case 2205:
			case 2206:
			case 2207:
			case 2208:
			case 2209:
			case 2210:
			case 2211:
			case 2216:
			case 2220:
			case 2246:
			case 2252:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 2730;
				this.identifier();
				}
				break;
			case 351:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 2731;
				this.match(PlSqlParser.DEFAULT);
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public type_elements_parameter(): Type_elements_parameterContext {
		let localctx: Type_elements_parameterContext = new Type_elements_parameterContext(this, this._ctx, this.state);
		this.enterRule(localctx, 164, PlSqlParser.RULE_type_elements_parameter);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 2734;
			this.parameter_name();
			this.state = 2735;
			this.type_spec();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public drop_sequence(): Drop_sequenceContext {
		let localctx: Drop_sequenceContext = new Drop_sequenceContext(this, this._ctx, this.state);
		this.enterRule(localctx, 166, PlSqlParser.RULE_drop_sequence);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 2737;
			this.match(PlSqlParser.DROP);
			this.state = 2738;
			this.match(PlSqlParser.SEQUENCE);
			this.state = 2739;
			this.sequence_name();
			this.state = 2740;
			this.match(PlSqlParser.SEMICOLON);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public alter_sequence(): Alter_sequenceContext {
		let localctx: Alter_sequenceContext = new Alter_sequenceContext(this, this._ctx, this.state);
		this.enterRule(localctx, 168, PlSqlParser.RULE_alter_sequence);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 2742;
			this.match(PlSqlParser.ALTER);
			this.state = 2743;
			this.match(PlSqlParser.SEQUENCE);
			this.state = 2744;
			this.sequence_name();
			this.state = 2746;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			do {
				{
				{
				this.state = 2745;
				this.sequence_spec();
				}
				}
				this.state = 2748;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			} while (_la===150 || _la===314 || _la===621 || _la===822 || _la===845 || _la===946 || _la===963 || ((((_la - 995)) & ~0x1F) === 0 && ((1 << (_la - 995)) & 262153) !== 0) || _la===1168);
			this.state = 2750;
			this.match(PlSqlParser.SEMICOLON);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public alter_session(): Alter_sessionContext {
		let localctx: Alter_sessionContext = new Alter_sessionContext(this, this._ctx, this.state);
		this.enterRule(localctx, 170, PlSqlParser.RULE_alter_session);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 2752;
			this.match(PlSqlParser.ALTER);
			this.state = 2753;
			this.match(PlSqlParser.SESSION);
			this.state = 2783;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 185, this._ctx) ) {
			case 1:
				{
				this.state = 2754;
				this.match(PlSqlParser.ADVISE);
				this.state = 2755;
				_la = this._input.LA(1);
				if(!(_la===218 || _la===1071 || _la===1441)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				}
				break;
			case 2:
				{
				this.state = 2756;
				this.match(PlSqlParser.CLOSE);
				this.state = 2757;
				this.match(PlSqlParser.DATABASE);
				this.state = 2758;
				this.match(PlSqlParser.LINK);
				this.state = 2759;
				this.parameter_name();
				}
				break;
			case 3:
				{
				this.state = 2760;
				this.enable_or_disable();
				this.state = 2761;
				this.match(PlSqlParser.COMMIT);
				this.state = 2762;
				this.match(PlSqlParser.IN);
				this.state = 2763;
				this.match(PlSqlParser.PROCEDURE);
				}
				break;
			case 4:
				{
				this.state = 2765;
				this.enable_or_disable();
				this.state = 2766;
				this.match(PlSqlParser.GUARD);
				}
				break;
			case 5:
				{
				this.state = 2770;
				this._errHandler.sync(this);
				switch (this._input.LA(1)) {
				case 383:
				case 439:
					{
					this.state = 2768;
					this.enable_or_disable();
					}
					break;
				case 542:
					{
					this.state = 2769;
					this.match(PlSqlParser.FORCE);
					}
					break;
				default:
					throw new NoViableAltException(this);
				}
				this.state = 2772;
				this.match(PlSqlParser.PARALLEL);
				this.state = 2773;
				_la = this._input.LA(1);
				if(!(_la===338 || _la===400 || _la===1334)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				this.state = 2779;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 184, this._ctx) ) {
				case 1:
					{
					this.state = 2774;
					this.match(PlSqlParser.PARALLEL);
					this.state = 2777;
					this._errHandler.sync(this);
					switch ( this._interp.adaptivePredict(this._input, 183, this._ctx) ) {
					case 1:
						{
						this.state = 2775;
						this.literal();
						}
						break;
					case 2:
						{
						this.state = 2776;
						this.parameter_name();
						}
						break;
					}
					}
					break;
				}
				}
				break;
			case 6:
				{
				this.state = 2781;
				this.match(PlSqlParser.SET);
				this.state = 2782;
				this.alter_session_set_clause();
				}
				break;
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public alter_session_set_clause(): Alter_session_set_clauseContext {
		let localctx: Alter_session_set_clauseContext = new Alter_session_set_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 172, PlSqlParser.RULE_alter_session_set_clause);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 2785;
			this.parameter_name();
			this.state = 2786;
			this.match(PlSqlParser.EQUALS_OP);
			this.state = 2787;
			this.parameter_value();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public create_sequence(): Create_sequenceContext {
		let localctx: Create_sequenceContext = new Create_sequenceContext(this, this._ctx, this.state);
		this.enterRule(localctx, 174, PlSqlParser.RULE_create_sequence);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 2789;
			this.match(PlSqlParser.CREATE);
			this.state = 2790;
			this.match(PlSqlParser.SEQUENCE);
			this.state = 2791;
			this.sequence_name();
			this.state = 2796;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			while (_la===150 || _la===314 || _la===621 || _la===822 || _la===845 || _la===946 || _la===963 || ((((_la - 995)) & ~0x1F) === 0 && ((1 << (_la - 995)) & 262153) !== 0) || _la===1168 || _la===1569) {
				{
				this.state = 2794;
				this._errHandler.sync(this);
				switch (this._input.LA(1)) {
				case 1569:
					{
					this.state = 2792;
					this.sequence_start_clause();
					}
					break;
				case 150:
				case 314:
				case 621:
				case 822:
				case 845:
				case 946:
				case 963:
				case 995:
				case 998:
				case 1013:
				case 1168:
					{
					this.state = 2793;
					this.sequence_spec();
					}
					break;
				default:
					throw new NoViableAltException(this);
				}
				}
				this.state = 2798;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			}
			this.state = 2799;
			this.match(PlSqlParser.SEMICOLON);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public sequence_spec(): Sequence_specContext {
		let localctx: Sequence_specContext = new Sequence_specContext(this, this._ctx, this.state);
		this.enterRule(localctx, 176, PlSqlParser.RULE_sequence_spec);
		try {
			this.state = 2817;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 621:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 2801;
				this.match(PlSqlParser.INCREMENT);
				this.state = 2802;
				this.match(PlSqlParser.BY);
				this.state = 2803;
				this.match(PlSqlParser.UNSIGNED_INTEGER);
				}
				break;
			case 822:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 2804;
				this.match(PlSqlParser.MAXVALUE);
				this.state = 2805;
				this.match(PlSqlParser.UNSIGNED_INTEGER);
				}
				break;
			case 995:
				this.enterOuterAlt(localctx, 3);
				{
				this.state = 2806;
				this.match(PlSqlParser.NOMAXVALUE);
				}
				break;
			case 845:
				this.enterOuterAlt(localctx, 4);
				{
				this.state = 2807;
				this.match(PlSqlParser.MINVALUE);
				this.state = 2808;
				this.match(PlSqlParser.UNSIGNED_INTEGER);
				}
				break;
			case 998:
				this.enterOuterAlt(localctx, 5);
				{
				this.state = 2809;
				this.match(PlSqlParser.NOMINVALUE);
				}
				break;
			case 314:
				this.enterOuterAlt(localctx, 6);
				{
				this.state = 2810;
				this.match(PlSqlParser.CYCLE);
				}
				break;
			case 963:
				this.enterOuterAlt(localctx, 7);
				{
				this.state = 2811;
				this.match(PlSqlParser.NOCYCLE);
				}
				break;
			case 150:
				this.enterOuterAlt(localctx, 8);
				{
				this.state = 2812;
				this.match(PlSqlParser.CACHE);
				this.state = 2813;
				this.match(PlSqlParser.UNSIGNED_INTEGER);
				}
				break;
			case 946:
				this.enterOuterAlt(localctx, 9);
				{
				this.state = 2814;
				this.match(PlSqlParser.NOCACHE);
				}
				break;
			case 1168:
				this.enterOuterAlt(localctx, 10);
				{
				this.state = 2815;
				this.match(PlSqlParser.ORDER);
				}
				break;
			case 1013:
				this.enterOuterAlt(localctx, 11);
				{
				this.state = 2816;
				this.match(PlSqlParser.NOORDER);
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public sequence_start_clause(): Sequence_start_clauseContext {
		let localctx: Sequence_start_clauseContext = new Sequence_start_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 178, PlSqlParser.RULE_sequence_start_clause);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 2819;
			this.match(PlSqlParser.START);
			this.state = 2820;
			this.match(PlSqlParser.WITH);
			this.state = 2821;
			this.match(PlSqlParser.UNSIGNED_INTEGER);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public create_index(): Create_indexContext {
		let localctx: Create_indexContext = new Create_indexContext(this, this._ctx, this.state);
		this.enterRule(localctx, 180, PlSqlParser.RULE_create_index);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 2823;
			this.match(PlSqlParser.CREATE);
			this.state = 2825;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===124 || _la===2002) {
				{
				this.state = 2824;
				_la = this._input.LA(1);
				if(!(_la===124 || _la===2002)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				}
			}

			this.state = 2827;
			this.match(PlSqlParser.INDEX);
			this.state = 2828;
			this.index_name();
			this.state = 2829;
			this.match(PlSqlParser.ON);
			this.state = 2833;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 190, this._ctx) ) {
			case 1:
				{
				this.state = 2830;
				this.cluster_index_clause();
				}
				break;
			case 2:
				{
				this.state = 2831;
				this.table_index_clause();
				}
				break;
			case 3:
				{
				this.state = 2832;
				this.bitmap_join_index_clause();
				}
				break;
			}
			this.state = 2836;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===2021) {
				{
				this.state = 2835;
				this.match(PlSqlParser.UNUSABLE);
				}
			}

			this.state = 2838;
			this.match(PlSqlParser.SEMICOLON);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public cluster_index_clause(): Cluster_index_clauseContext {
		let localctx: Cluster_index_clauseContext = new Cluster_index_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 182, PlSqlParser.RULE_cluster_index_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 2840;
			this.match(PlSqlParser.CLUSTER);
			this.state = 2841;
			this.cluster_name();
			this.state = 2843;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===232 || _la===521 || _la===657 || _la===693 || _la===779 || _la===953 || _la===993 || _la===1021 || _la===1058 || _la===1195 || _la===1227 || _la===1230 || _la===1433 || _la===1544 || _la===1593 || _la===1909 || _la===2103) {
				{
				this.state = 2842;
				this.index_attributes();
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public cluster_name(): Cluster_nameContext {
		let localctx: Cluster_nameContext = new Cluster_nameContext(this, this._ctx, this.state);
		this.enterRule(localctx, 184, PlSqlParser.RULE_cluster_name);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 2848;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 193, this._ctx) ) {
			case 1:
				{
				this.state = 2845;
				this.id_expression();
				this.state = 2846;
				this.match(PlSqlParser.PERIOD);
				}
				break;
			}
			this.state = 2850;
			this.id_expression();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public table_index_clause(): Table_index_clauseContext {
		let localctx: Table_index_clauseContext = new Table_index_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 186, PlSqlParser.RULE_table_index_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 2852;
			this.tableview_name();
			this.state = 2854;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & 2684286839) !== 0) || ((((_la - 64)) & ~0x1F) === 0 && ((1 << (_la - 64)) & 3220168703) !== 0) || ((((_la - 96)) & ~0x1F) === 0 && ((1 << (_la - 96)) & 4294965247) !== 0) || ((((_la - 128)) & ~0x1F) === 0 && ((1 << (_la - 128)) & 2147221503) !== 0) || ((((_la - 160)) & ~0x1F) === 0 && ((1 << (_la - 160)) & 4293910527) !== 0) || ((((_la - 192)) & ~0x1F) === 0 && ((1 << (_la - 192)) & 4294967295) !== 0) || ((((_la - 224)) & ~0x1F) === 0 && ((1 << (_la - 224)) & 4160749311) !== 0) || ((((_la - 256)) & ~0x1F) === 0 && ((1 << (_la - 256)) & 4294967295) !== 0) || ((((_la - 289)) & ~0x1F) === 0 && ((1 << (_la - 289)) & 2147483647) !== 0) || ((((_la - 321)) & ~0x1F) === 0 && ((1 << (_la - 321)) & 3221225407) !== 0) || ((((_la - 353)) & ~0x1F) === 0 && ((1 << (_la - 353)) & 4294705151) !== 0) || ((((_la - 385)) & ~0x1F) === 0 && ((1 << (_la - 385)) & 2080372479) !== 0) || ((((_la - 417)) & ~0x1F) === 0 && ((1 << (_la - 417)) & 4026433535) !== 0) || ((((_la - 449)) & ~0x1F) === 0 && ((1 << (_la - 449)) & 4261412863) !== 0) || ((((_la - 481)) & ~0x1F) === 0 && ((1 << (_la - 481)) & 4294967295) !== 0) || ((((_la - 513)) & ~0x1F) === 0 && ((1 << (_la - 513)) & 4294967295) !== 0) || ((((_la - 545)) & ~0x1F) === 0 && ((1 << (_la - 545)) & 3925868029) !== 0) || ((((_la - 577)) & ~0x1F) === 0 && ((1 << (_la - 577)) & 4278189823) !== 0) || ((((_la - 609)) & ~0x1F) === 0 && ((1 << (_la - 609)) & 4290772991) !== 0) || ((((_la - 641)) & ~0x1F) === 0 && ((1 << (_la - 641)) & 4026529791) !== 0) || ((((_la - 673)) & ~0x1F) === 0 && ((1 << (_la - 673)) & 4290478079) !== 0) || ((((_la - 705)) & ~0x1F) === 0 && ((1 << (_la - 705)) & 4294967295) !== 0) || ((((_la - 737)) & ~0x1F) === 0 && ((1 << (_la - 737)) & 4293918719) !== 0) || ((((_la - 769)) & ~0x1F) === 0 && ((1 << (_la - 769)) & 4294967167) !== 0) || ((((_la - 801)) & ~0x1F) === 0 && ((1 << (_la - 801)) & 4294967295) !== 0) || ((((_la - 833)) & ~0x1F) === 0 && ((1 << (_la - 833)) & 4160749055) !== 0) || ((((_la - 865)) & ~0x1F) === 0 && ((1 << (_la - 865)) & 4290772991) !== 0) || ((((_la - 897)) & ~0x1F) === 0 && ((1 << (_la - 897)) & 4294967295) !== 0) || ((((_la - 929)) & ~0x1F) === 0 && ((1 << (_la - 929)) & 4278190079) !== 0) || ((((_la - 961)) & ~0x1F) === 0 && ((1 << (_la - 961)) & 4294967295) !== 0) || ((((_la - 993)) & ~0x1F) === 0 && ((1 << (_la - 993)) & 4294967295) !== 0) || ((((_la - 1025)) & ~0x1F) === 0 && ((1 << (_la - 1025)) & 4294967295) !== 0) || ((((_la - 1057)) & ~0x1F) === 0 && ((1 << (_la - 1057)) & 2147418111) !== 0) || ((((_la - 1089)) & ~0x1F) === 0 && ((1 << (_la - 1089)) & 4227858175) !== 0) || ((((_la - 1121)) & ~0x1F) === 0 && ((1 << (_la - 1121)) & 4293918559) !== 0) || ((((_la - 1153)) & ~0x1F) === 0 && ((1 << (_la - 1153)) & 4294410239) !== 0) || ((((_la - 1185)) & ~0x1F) === 0 && ((1 << (_la - 1185)) & 4294965247) !== 0) || ((((_la - 1217)) & ~0x1F) === 0 && ((1 << (_la - 1217)) & 4279827455) !== 0) || ((((_la - 1249)) & ~0x1F) === 0 && ((1 << (_la - 1249)) & 4294967291) !== 0) || ((((_la - 1281)) & ~0x1F) === 0 && ((1 << (_la - 1281)) & 4227858431) !== 0) || ((((_la - 1313)) & ~0x1F) === 0 && ((1 << (_la - 1313)) & 4294965247) !== 0) || ((((_la - 1345)) & ~0x1F) === 0 && ((1 << (_la - 1345)) & 4294967295) !== 0) || ((((_la - 1377)) & ~0x1F) === 0 && ((1 << (_la - 1377)) & 4292870143) !== 0) || ((((_la - 1409)) & ~0x1F) === 0 && ((1 << (_la - 1409)) & 4261412799) !== 0) || ((((_la - 1441)) & ~0x1F) === 0 && ((1 << (_la - 1441)) & 4294967295) !== 0) || ((((_la - 1473)) & ~0x1F) === 0 && ((1 << (_la - 1473)) & 4261281791) !== 0) || ((((_la - 1505)) & ~0x1F) === 0 && ((1 << (_la - 1505)) & 3221221375) !== 0) || ((((_la - 1537)) & ~0x1F) === 0 && ((1 << (_la - 1537)) & 4294967295) !== 0) || ((((_la - 1570)) & ~0x1F) === 0 && ((1 << (_la - 1570)) & 4294967295) !== 0) || ((((_la - 1602)) & ~0x1F) === 0 && ((1 << (_la - 1602)) & 4261412863) !== 0) || ((((_la - 1634)) & ~0x1F) === 0 && ((1 << (_la - 1634)) & 4294967295) !== 0) || ((((_la - 1666)) & ~0x1F) === 0 && ((1 << (_la - 1666)) & 4294967295) !== 0) || ((((_la - 1698)) & ~0x1F) === 0 && ((1 << (_la - 1698)) & 4294967295) !== 0) || ((((_la - 1730)) & ~0x1F) === 0 && ((1 << (_la - 1730)) & 4294967295) !== 0) || ((((_la - 1762)) & ~0x1F) === 0 && ((1 << (_la - 1762)) & 4294967295) !== 0) || ((((_la - 1794)) & ~0x1F) === 0 && ((1 << (_la - 1794)) & 4294967295) !== 0) || ((((_la - 1826)) & ~0x1F) === 0 && ((1 << (_la - 1826)) & 4294967295) !== 0) || ((((_la - 1858)) & ~0x1F) === 0 && ((1 << (_la - 1858)) & 4294967295) !== 0) || ((((_la - 1890)) & ~0x1F) === 0 && ((1 << (_la - 1890)) & 4294967295) !== 0) || ((((_la - 1922)) & ~0x1F) === 0 && ((1 << (_la - 1922)) & 4294901759) !== 0) || ((((_la - 1954)) & ~0x1F) === 0 && ((1 << (_la - 1954)) & 4294966271) !== 0) || ((((_la - 1986)) & ~0x1F) === 0 && ((1 << (_la - 1986)) & 4294868991) !== 0) || ((((_la - 2018)) & ~0x1F) === 0 && ((1 << (_la - 2018)) & 4294967167) !== 0) || ((((_la - 2050)) & ~0x1F) === 0 && ((1 << (_la - 2050)) & 4286578687) !== 0) || ((((_la - 2082)) & ~0x1F) === 0 && ((1 << (_la - 2082)) & 4294836223) !== 0) || ((((_la - 2115)) & ~0x1F) === 0 && ((1 << (_la - 2115)) & 3758092223) !== 0) || ((((_la - 2147)) & ~0x1F) === 0 && ((1 << (_la - 2147)) & 4293918719) !== 0) || ((((_la - 2179)) & ~0x1F) === 0 && ((1 << (_la - 2179)) & 4294965247) !== 0) || ((((_la - 2211)) & ~0x1F) === 0 && ((1 << (_la - 2211)) & 803) !== 0) || _la===2246 || _la===2252) {
				{
				this.state = 2853;
				this.table_alias();
				}
			}

			this.state = 2856;
			this.match(PlSqlParser.LEFT_PAREN);
			this.state = 2857;
			this.index_expr();
			this.state = 2859;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===62 || _la===371) {
				{
				this.state = 2858;
				_la = this._input.LA(1);
				if(!(_la===62 || _la===371)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				}
			}

			this.state = 2868;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			while (_la===2229) {
				{
				{
				this.state = 2861;
				this.match(PlSqlParser.COMMA);
				this.state = 2862;
				this.index_expr();
				this.state = 2864;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===62 || _la===371) {
					{
					this.state = 2863;
					_la = this._input.LA(1);
					if(!(_la===62 || _la===371)) {
					this._errHandler.recoverInline(this);
					}
					else {
						this._errHandler.reportMatch(this);
					    this.consume();
					}
					}
				}

				}
				}
				this.state = 2870;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			}
			this.state = 2871;
			this.match(PlSqlParser.RIGHT_PAREN);
			this.state = 2873;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===232 || _la===521 || _la===566 || _la===645 || _la===657 || _la===693 || _la===769 || _la===779 || _la===953 || _la===993 || _la===1021 || _la===1058 || _la===1195 || _la===1227 || _la===1230 || _la===1433 || _la===1544 || _la===1593 || _la===1909 || _la===2103) {
				{
				this.state = 2872;
				this.index_properties();
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public bitmap_join_index_clause(): Bitmap_join_index_clauseContext {
		let localctx: Bitmap_join_index_clauseContext = new Bitmap_join_index_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 188, PlSqlParser.RULE_bitmap_join_index_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 2875;
			this.tableview_name();
			this.state = 2876;
			this.match(PlSqlParser.LEFT_PAREN);
			this.state = 2879;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 199, this._ctx) ) {
			case 1:
				{
				this.state = 2877;
				this.tableview_name();
				}
				break;
			case 2:
				{
				this.state = 2878;
				this.table_alias();
				}
				break;
			}
			this.state = 2881;
			this.column_name();
			this.state = 2883;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===62 || _la===371) {
				{
				this.state = 2882;
				_la = this._input.LA(1);
				if(!(_la===62 || _la===371)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				}
			}

			this.state = 2896;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			while (_la===2229) {
				{
				{
				this.state = 2885;
				this.match(PlSqlParser.COMMA);
				this.state = 2888;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 201, this._ctx) ) {
				case 1:
					{
					this.state = 2886;
					this.tableview_name();
					}
					break;
				case 2:
					{
					this.state = 2887;
					this.table_alias();
					}
					break;
				}
				this.state = 2890;
				this.column_name();
				this.state = 2892;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===62 || _la===371) {
					{
					this.state = 2891;
					_la = this._input.LA(1);
					if(!(_la===62 || _la===371)) {
					this._errHandler.recoverInline(this);
					}
					else {
						this._errHandler.reportMatch(this);
					    this.consume();
					}
					}
				}

				}
				}
				this.state = 2898;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			}
			this.state = 2899;
			this.match(PlSqlParser.RIGHT_PAREN);
			this.state = 2900;
			this.match(PlSqlParser.FROM);
			this.state = 2901;
			this.tableview_name();
			this.state = 2902;
			this.table_alias();
			this.state = 2909;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			while (_la===2229) {
				{
				{
				this.state = 2903;
				this.match(PlSqlParser.COMMA);
				this.state = 2904;
				this.tableview_name();
				this.state = 2905;
				this.table_alias();
				}
				}
				this.state = 2911;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			}
			this.state = 2912;
			this.where_clause();
			this.state = 2914;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===769) {
				{
				this.state = 2913;
				this.local_partitioned_index();
				}
			}

			this.state = 2917;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===232 || _la===521 || _la===657 || _la===693 || _la===779 || _la===953 || _la===993 || _la===1021 || _la===1058 || _la===1195 || _la===1227 || _la===1230 || _la===1433 || _la===1544 || _la===1593 || _la===1909 || _la===2103) {
				{
				this.state = 2916;
				this.index_attributes();
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public index_expr(): Index_exprContext {
		let localctx: Index_exprContext = new Index_exprContext(this, this._ctx, this.state);
		this.enterRule(localctx, 190, PlSqlParser.RULE_index_expr);
		try {
			this.state = 2921;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 207, this._ctx) ) {
			case 1:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 2919;
				this.column_name();
				}
				break;
			case 2:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 2920;
				this.expression();
				}
				break;
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public index_properties(): Index_propertiesContext {
		let localctx: Index_propertiesContext = new Index_propertiesContext(this, this._ctx, this.state);
		this.enterRule(localctx, 192, PlSqlParser.RULE_index_properties);
		let _la: number;
		try {
			this.state = 2936;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 232:
			case 521:
			case 566:
			case 657:
			case 693:
			case 769:
			case 779:
			case 953:
			case 993:
			case 1021:
			case 1058:
			case 1195:
			case 1227:
			case 1230:
			case 1433:
			case 1544:
			case 1593:
			case 1909:
			case 2103:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 2926;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				do {
					{
					this.state = 2926;
					this._errHandler.sync(this);
					switch (this._input.LA(1)) {
					case 566:
						{
						this.state = 2923;
						this.global_partitioned_index();
						}
						break;
					case 769:
						{
						this.state = 2924;
						this.local_partitioned_index();
						}
						break;
					case 232:
					case 521:
					case 657:
					case 693:
					case 779:
					case 953:
					case 993:
					case 1021:
					case 1058:
					case 1195:
					case 1227:
					case 1230:
					case 1433:
					case 1544:
					case 1593:
					case 1909:
					case 2103:
						{
						this.state = 2925;
						this.index_attributes();
						}
						break;
					default:
						throw new NoViableAltException(this);
					}
					}
					this.state = 2928;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				} while (_la===232 || _la===521 || _la===566 || _la===657 || _la===693 || _la===769 || _la===779 || _la===953 || _la===993 || _la===1021 || _la===1058 || _la===1195 || _la===1227 || _la===1230 || _la===1433 || _la===1544 || _la===1593 || _la===1909 || _la===2103);
				}
				break;
			case 645:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 2930;
				this.match(PlSqlParser.INDEXTYPE);
				this.state = 2931;
				this.match(PlSqlParser.IS);
				this.state = 2934;
				this._errHandler.sync(this);
				switch (this._input.LA(1)) {
				case 1:
				case 2:
				case 3:
				case 4:
				case 5:
				case 6:
				case 7:
				case 8:
				case 9:
				case 10:
				case 11:
				case 12:
				case 13:
				case 14:
				case 15:
				case 16:
				case 17:
				case 18:
				case 19:
				case 20:
				case 21:
				case 22:
				case 23:
				case 24:
				case 25:
				case 26:
				case 27:
				case 28:
				case 29:
				case 30:
				case 31:
				case 32:
				case 33:
				case 34:
				case 36:
				case 37:
				case 38:
				case 40:
				case 41:
				case 42:
				case 44:
				case 45:
				case 46:
				case 47:
				case 49:
				case 50:
				case 51:
				case 52:
				case 53:
				case 54:
				case 55:
				case 56:
				case 57:
				case 58:
				case 59:
				case 60:
				case 63:
				case 64:
				case 65:
				case 66:
				case 67:
				case 68:
				case 69:
				case 70:
				case 71:
				case 72:
				case 73:
				case 74:
				case 75:
				case 76:
				case 78:
				case 79:
				case 80:
				case 81:
				case 82:
				case 83:
				case 85:
				case 86:
				case 87:
				case 88:
				case 89:
				case 90:
				case 91:
				case 92:
				case 93:
				case 95:
				case 96:
				case 97:
				case 98:
				case 99:
				case 100:
				case 101:
				case 102:
				case 103:
				case 104:
				case 105:
				case 106:
				case 108:
				case 109:
				case 110:
				case 111:
				case 112:
				case 113:
				case 114:
				case 115:
				case 116:
				case 117:
				case 118:
				case 119:
				case 120:
				case 121:
				case 122:
				case 123:
				case 124:
				case 125:
				case 126:
				case 127:
				case 128:
				case 129:
				case 130:
				case 131:
				case 132:
				case 133:
				case 134:
				case 135:
				case 136:
				case 137:
				case 138:
				case 139:
				case 140:
				case 141:
				case 142:
				case 143:
				case 144:
				case 145:
				case 147:
				case 148:
				case 149:
				case 150:
				case 151:
				case 152:
				case 153:
				case 154:
				case 155:
				case 156:
				case 157:
				case 158:
				case 160:
				case 161:
				case 162:
				case 163:
				case 164:
				case 165:
				case 166:
				case 167:
				case 168:
				case 169:
				case 170:
				case 171:
				case 172:
				case 174:
				case 175:
				case 176:
				case 177:
				case 178:
				case 179:
				case 181:
				case 182:
				case 183:
				case 184:
				case 185:
				case 186:
				case 187:
				case 188:
				case 189:
				case 190:
				case 191:
				case 192:
				case 193:
				case 194:
				case 195:
				case 196:
				case 197:
				case 198:
				case 199:
				case 200:
				case 201:
				case 202:
				case 203:
				case 204:
				case 205:
				case 206:
				case 207:
				case 208:
				case 209:
				case 210:
				case 211:
				case 212:
				case 213:
				case 214:
				case 215:
				case 216:
				case 217:
				case 218:
				case 219:
				case 220:
				case 221:
				case 222:
				case 223:
				case 224:
				case 225:
				case 226:
				case 227:
				case 228:
				case 229:
				case 230:
				case 231:
				case 233:
				case 234:
				case 235:
				case 236:
				case 237:
				case 238:
				case 239:
				case 240:
				case 241:
				case 242:
				case 243:
				case 244:
				case 245:
				case 246:
				case 247:
				case 248:
				case 249:
				case 250:
				case 252:
				case 253:
				case 254:
				case 255:
				case 256:
				case 257:
				case 258:
				case 259:
				case 260:
				case 261:
				case 262:
				case 263:
				case 264:
				case 265:
				case 266:
				case 267:
				case 268:
				case 269:
				case 270:
				case 271:
				case 272:
				case 273:
				case 274:
				case 275:
				case 276:
				case 277:
				case 278:
				case 279:
				case 280:
				case 281:
				case 282:
				case 283:
				case 284:
				case 285:
				case 286:
				case 287:
				case 289:
				case 290:
				case 291:
				case 292:
				case 293:
				case 294:
				case 295:
				case 296:
				case 297:
				case 298:
				case 299:
				case 300:
				case 301:
				case 302:
				case 303:
				case 304:
				case 305:
				case 306:
				case 307:
				case 308:
				case 309:
				case 310:
				case 311:
				case 312:
				case 313:
				case 314:
				case 315:
				case 316:
				case 317:
				case 318:
				case 319:
				case 321:
				case 322:
				case 323:
				case 324:
				case 325:
				case 326:
				case 328:
				case 329:
				case 330:
				case 331:
				case 332:
				case 333:
				case 334:
				case 335:
				case 336:
				case 337:
				case 338:
				case 339:
				case 340:
				case 341:
				case 342:
				case 343:
				case 344:
				case 345:
				case 346:
				case 347:
				case 348:
				case 349:
				case 350:
				case 352:
				case 353:
				case 354:
				case 355:
				case 356:
				case 357:
				case 358:
				case 359:
				case 360:
				case 361:
				case 362:
				case 363:
				case 364:
				case 365:
				case 366:
				case 367:
				case 368:
				case 369:
				case 370:
				case 372:
				case 373:
				case 374:
				case 375:
				case 376:
				case 377:
				case 378:
				case 379:
				case 380:
				case 381:
				case 382:
				case 383:
				case 384:
				case 385:
				case 386:
				case 387:
				case 388:
				case 389:
				case 390:
				case 391:
				case 392:
				case 394:
				case 395:
				case 397:
				case 398:
				case 399:
				case 400:
				case 401:
				case 402:
				case 403:
				case 404:
				case 405:
				case 406:
				case 407:
				case 408:
				case 409:
				case 410:
				case 412:
				case 413:
				case 414:
				case 415:
				case 417:
				case 418:
				case 419:
				case 420:
				case 421:
				case 422:
				case 423:
				case 424:
				case 425:
				case 426:
				case 427:
				case 428:
				case 429:
				case 430:
				case 431:
				case 434:
				case 435:
				case 436:
				case 437:
				case 438:
				case 439:
				case 440:
				case 441:
				case 442:
				case 443:
				case 444:
				case 446:
				case 447:
				case 448:
				case 449:
				case 450:
				case 451:
				case 452:
				case 453:
				case 454:
				case 455:
				case 456:
				case 457:
				case 458:
				case 459:
				case 460:
				case 461:
				case 462:
				case 463:
				case 464:
				case 465:
				case 466:
				case 467:
				case 468:
				case 469:
				case 470:
				case 471:
				case 472:
				case 473:
				case 475:
				case 476:
				case 477:
				case 478:
				case 479:
				case 480:
				case 481:
				case 482:
				case 483:
				case 484:
				case 485:
				case 486:
				case 487:
				case 488:
				case 489:
				case 490:
				case 491:
				case 492:
				case 493:
				case 494:
				case 495:
				case 496:
				case 497:
				case 498:
				case 499:
				case 500:
				case 501:
				case 502:
				case 503:
				case 504:
				case 505:
				case 506:
				case 507:
				case 508:
				case 509:
				case 510:
				case 511:
				case 512:
				case 513:
				case 514:
				case 515:
				case 516:
				case 517:
				case 518:
				case 519:
				case 520:
				case 521:
				case 522:
				case 523:
				case 524:
				case 525:
				case 526:
				case 527:
				case 528:
				case 529:
				case 530:
				case 531:
				case 532:
				case 533:
				case 534:
				case 535:
				case 536:
				case 537:
				case 538:
				case 539:
				case 540:
				case 541:
				case 542:
				case 543:
				case 544:
				case 545:
				case 547:
				case 548:
				case 549:
				case 550:
				case 551:
				case 552:
				case 553:
				case 555:
				case 556:
				case 557:
				case 558:
				case 559:
				case 560:
				case 561:
				case 562:
				case 563:
				case 564:
				case 565:
				case 566:
				case 567:
				case 568:
				case 569:
				case 572:
				case 574:
				case 575:
				case 576:
				case 577:
				case 578:
				case 579:
				case 580:
				case 581:
				case 582:
				case 583:
				case 584:
				case 586:
				case 587:
				case 588:
				case 589:
				case 590:
				case 591:
				case 592:
				case 593:
				case 594:
				case 595:
				case 596:
				case 597:
				case 598:
				case 599:
				case 600:
				case 602:
				case 603:
				case 604:
				case 605:
				case 606:
				case 607:
				case 608:
				case 609:
				case 610:
				case 611:
				case 612:
				case 613:
				case 614:
				case 615:
				case 616:
				case 617:
				case 618:
				case 619:
				case 620:
				case 621:
				case 622:
				case 623:
				case 624:
				case 625:
				case 626:
				case 627:
				case 628:
				case 629:
				case 630:
				case 632:
				case 633:
				case 634:
				case 635:
				case 636:
				case 637:
				case 638:
				case 639:
				case 640:
				case 641:
				case 642:
				case 643:
				case 644:
				case 645:
				case 646:
				case 647:
				case 648:
				case 649:
				case 650:
				case 651:
				case 653:
				case 654:
				case 655:
				case 656:
				case 657:
				case 658:
				case 659:
				case 660:
				case 661:
				case 662:
				case 663:
				case 664:
				case 665:
				case 666:
				case 667:
				case 668:
				case 670:
				case 671:
				case 672:
				case 673:
				case 674:
				case 675:
				case 676:
				case 677:
				case 678:
				case 679:
				case 680:
				case 681:
				case 682:
				case 683:
				case 684:
				case 685:
				case 686:
				case 687:
				case 689:
				case 690:
				case 692:
				case 693:
				case 694:
				case 696:
				case 697:
				case 698:
				case 699:
				case 700:
				case 701:
				case 702:
				case 703:
				case 704:
				case 705:
				case 706:
				case 707:
				case 708:
				case 709:
				case 710:
				case 711:
				case 712:
				case 713:
				case 714:
				case 715:
				case 716:
				case 717:
				case 718:
				case 719:
				case 720:
				case 721:
				case 722:
				case 723:
				case 724:
				case 725:
				case 726:
				case 727:
				case 728:
				case 729:
				case 730:
				case 731:
				case 732:
				case 733:
				case 734:
				case 735:
				case 736:
				case 737:
				case 738:
				case 739:
				case 740:
				case 741:
				case 742:
				case 743:
				case 744:
				case 745:
				case 746:
				case 747:
				case 748:
				case 749:
				case 750:
				case 751:
				case 752:
				case 753:
				case 754:
				case 755:
				case 756:
				case 758:
				case 759:
				case 760:
				case 761:
				case 762:
				case 763:
				case 764:
				case 765:
				case 766:
				case 767:
				case 768:
				case 769:
				case 770:
				case 771:
				case 772:
				case 773:
				case 774:
				case 775:
				case 777:
				case 778:
				case 779:
				case 780:
				case 781:
				case 782:
				case 783:
				case 784:
				case 785:
				case 786:
				case 787:
				case 788:
				case 789:
				case 790:
				case 791:
				case 792:
				case 793:
				case 794:
				case 795:
				case 796:
				case 797:
				case 798:
				case 799:
				case 800:
				case 801:
				case 802:
				case 803:
				case 804:
				case 805:
				case 806:
				case 807:
				case 808:
				case 809:
				case 810:
				case 811:
				case 812:
				case 813:
				case 814:
				case 815:
				case 816:
				case 817:
				case 818:
				case 819:
				case 820:
				case 821:
				case 822:
				case 823:
				case 824:
				case 825:
				case 826:
				case 827:
				case 828:
				case 829:
				case 830:
				case 831:
				case 832:
				case 833:
				case 834:
				case 835:
				case 836:
				case 837:
				case 838:
				case 839:
				case 840:
				case 841:
				case 843:
				case 844:
				case 845:
				case 846:
				case 847:
				case 848:
				case 849:
				case 850:
				case 851:
				case 852:
				case 853:
				case 854:
				case 855:
				case 856:
				case 857:
				case 858:
				case 859:
				case 861:
				case 862:
				case 863:
				case 864:
				case 865:
				case 866:
				case 867:
				case 868:
				case 869:
				case 870:
				case 871:
				case 872:
				case 873:
				case 874:
				case 875:
				case 876:
				case 877:
				case 878:
				case 879:
				case 880:
				case 881:
				case 882:
				case 883:
				case 884:
				case 885:
				case 886:
				case 888:
				case 889:
				case 890:
				case 891:
				case 892:
				case 893:
				case 894:
				case 895:
				case 896:
				case 897:
				case 898:
				case 899:
				case 900:
				case 901:
				case 902:
				case 903:
				case 904:
				case 905:
				case 906:
				case 907:
				case 908:
				case 909:
				case 910:
				case 911:
				case 912:
				case 913:
				case 914:
				case 915:
				case 916:
				case 917:
				case 918:
				case 919:
				case 920:
				case 921:
				case 922:
				case 923:
				case 924:
				case 925:
				case 926:
				case 927:
				case 928:
				case 929:
				case 930:
				case 931:
				case 932:
				case 933:
				case 934:
				case 935:
				case 936:
				case 937:
				case 938:
				case 939:
				case 940:
				case 941:
				case 942:
				case 943:
				case 944:
				case 945:
				case 946:
				case 947:
				case 948:
				case 949:
				case 950:
				case 951:
				case 952:
				case 954:
				case 955:
				case 956:
				case 957:
				case 958:
				case 959:
				case 960:
				case 961:
				case 962:
				case 963:
				case 964:
				case 965:
				case 966:
				case 967:
				case 968:
				case 969:
				case 970:
				case 971:
				case 972:
				case 973:
				case 974:
				case 975:
				case 976:
				case 977:
				case 978:
				case 979:
				case 980:
				case 981:
				case 982:
				case 983:
				case 984:
				case 985:
				case 986:
				case 987:
				case 988:
				case 989:
				case 990:
				case 991:
				case 992:
				case 993:
				case 994:
				case 995:
				case 996:
				case 997:
				case 998:
				case 999:
				case 1000:
				case 1001:
				case 1002:
				case 1003:
				case 1004:
				case 1005:
				case 1006:
				case 1007:
				case 1008:
				case 1009:
				case 1010:
				case 1011:
				case 1012:
				case 1013:
				case 1014:
				case 1015:
				case 1016:
				case 1017:
				case 1018:
				case 1019:
				case 1020:
				case 1021:
				case 1022:
				case 1023:
				case 1024:
				case 1025:
				case 1026:
				case 1027:
				case 1028:
				case 1029:
				case 1030:
				case 1031:
				case 1032:
				case 1033:
				case 1034:
				case 1035:
				case 1036:
				case 1037:
				case 1038:
				case 1039:
				case 1040:
				case 1041:
				case 1042:
				case 1043:
				case 1044:
				case 1045:
				case 1046:
				case 1047:
				case 1048:
				case 1049:
				case 1050:
				case 1051:
				case 1052:
				case 1053:
				case 1054:
				case 1055:
				case 1056:
				case 1057:
				case 1058:
				case 1059:
				case 1060:
				case 1061:
				case 1062:
				case 1063:
				case 1064:
				case 1065:
				case 1066:
				case 1067:
				case 1068:
				case 1069:
				case 1070:
				case 1071:
				case 1072:
				case 1074:
				case 1075:
				case 1076:
				case 1077:
				case 1078:
				case 1079:
				case 1080:
				case 1081:
				case 1082:
				case 1083:
				case 1084:
				case 1085:
				case 1086:
				case 1087:
				case 1089:
				case 1090:
				case 1091:
				case 1092:
				case 1093:
				case 1094:
				case 1095:
				case 1096:
				case 1098:
				case 1099:
				case 1100:
				case 1101:
				case 1102:
				case 1103:
				case 1104:
				case 1105:
				case 1106:
				case 1107:
				case 1108:
				case 1109:
				case 1110:
				case 1111:
				case 1112:
				case 1113:
				case 1114:
				case 1116:
				case 1117:
				case 1118:
				case 1119:
				case 1120:
				case 1121:
				case 1122:
				case 1123:
				case 1124:
				case 1125:
				case 1127:
				case 1129:
				case 1130:
				case 1131:
				case 1132:
				case 1133:
				case 1134:
				case 1135:
				case 1136:
				case 1137:
				case 1138:
				case 1139:
				case 1140:
				case 1142:
				case 1143:
				case 1144:
				case 1145:
				case 1146:
				case 1147:
				case 1148:
				case 1149:
				case 1150:
				case 1151:
				case 1152:
				case 1153:
				case 1154:
				case 1155:
				case 1156:
				case 1157:
				case 1158:
				case 1159:
				case 1160:
				case 1161:
				case 1162:
				case 1163:
				case 1164:
				case 1165:
				case 1166:
				case 1167:
				case 1169:
				case 1170:
				case 1171:
				case 1173:
				case 1174:
				case 1175:
				case 1176:
				case 1177:
				case 1178:
				case 1179:
				case 1180:
				case 1181:
				case 1182:
				case 1183:
				case 1184:
				case 1185:
				case 1186:
				case 1187:
				case 1188:
				case 1189:
				case 1190:
				case 1191:
				case 1192:
				case 1193:
				case 1194:
				case 1195:
				case 1197:
				case 1198:
				case 1199:
				case 1200:
				case 1201:
				case 1202:
				case 1203:
				case 1204:
				case 1205:
				case 1206:
				case 1207:
				case 1208:
				case 1209:
				case 1210:
				case 1211:
				case 1212:
				case 1213:
				case 1214:
				case 1215:
				case 1216:
				case 1217:
				case 1218:
				case 1219:
				case 1220:
				case 1221:
				case 1222:
				case 1223:
				case 1224:
				case 1225:
				case 1226:
				case 1228:
				case 1229:
				case 1230:
				case 1231:
				case 1232:
				case 1236:
				case 1237:
				case 1241:
				case 1242:
				case 1243:
				case 1244:
				case 1245:
				case 1246:
				case 1247:
				case 1248:
				case 1249:
				case 1250:
				case 1252:
				case 1253:
				case 1254:
				case 1255:
				case 1256:
				case 1257:
				case 1258:
				case 1259:
				case 1260:
				case 1261:
				case 1262:
				case 1263:
				case 1264:
				case 1265:
				case 1266:
				case 1267:
				case 1268:
				case 1269:
				case 1270:
				case 1271:
				case 1272:
				case 1273:
				case 1274:
				case 1275:
				case 1276:
				case 1277:
				case 1278:
				case 1279:
				case 1280:
				case 1281:
				case 1282:
				case 1283:
				case 1284:
				case 1285:
				case 1286:
				case 1287:
				case 1288:
				case 1289:
				case 1290:
				case 1291:
				case 1292:
				case 1293:
				case 1294:
				case 1295:
				case 1296:
				case 1297:
				case 1298:
				case 1299:
				case 1300:
				case 1301:
				case 1302:
				case 1303:
				case 1304:
				case 1305:
				case 1306:
				case 1308:
				case 1309:
				case 1310:
				case 1311:
				case 1312:
				case 1313:
				case 1314:
				case 1315:
				case 1316:
				case 1317:
				case 1318:
				case 1319:
				case 1320:
				case 1321:
				case 1322:
				case 1323:
				case 1325:
				case 1326:
				case 1327:
				case 1328:
				case 1329:
				case 1330:
				case 1331:
				case 1332:
				case 1333:
				case 1334:
				case 1335:
				case 1336:
				case 1337:
				case 1338:
				case 1339:
				case 1340:
				case 1341:
				case 1342:
				case 1343:
				case 1344:
				case 1345:
				case 1346:
				case 1347:
				case 1348:
				case 1349:
				case 1350:
				case 1351:
				case 1352:
				case 1353:
				case 1354:
				case 1355:
				case 1356:
				case 1357:
				case 1358:
				case 1359:
				case 1360:
				case 1361:
				case 1362:
				case 1363:
				case 1364:
				case 1365:
				case 1366:
				case 1367:
				case 1368:
				case 1369:
				case 1370:
				case 1371:
				case 1372:
				case 1373:
				case 1374:
				case 1375:
				case 1376:
				case 1377:
				case 1378:
				case 1379:
				case 1380:
				case 1381:
				case 1382:
				case 1383:
				case 1384:
				case 1385:
				case 1386:
				case 1387:
				case 1388:
				case 1389:
				case 1390:
				case 1391:
				case 1392:
				case 1393:
				case 1394:
				case 1395:
				case 1396:
				case 1397:
				case 1399:
				case 1400:
				case 1401:
				case 1402:
				case 1403:
				case 1404:
				case 1405:
				case 1406:
				case 1407:
				case 1408:
				case 1409:
				case 1410:
				case 1411:
				case 1412:
				case 1413:
				case 1414:
				case 1416:
				case 1417:
				case 1418:
				case 1419:
				case 1420:
				case 1421:
				case 1422:
				case 1423:
				case 1424:
				case 1425:
				case 1426:
				case 1427:
				case 1428:
				case 1429:
				case 1430:
				case 1431:
				case 1432:
				case 1433:
				case 1435:
				case 1436:
				case 1437:
				case 1438:
				case 1439:
				case 1440:
				case 1441:
				case 1442:
				case 1443:
				case 1444:
				case 1445:
				case 1446:
				case 1447:
				case 1448:
				case 1449:
				case 1450:
				case 1451:
				case 1452:
				case 1453:
				case 1454:
				case 1455:
				case 1456:
				case 1457:
				case 1458:
				case 1459:
				case 1460:
				case 1461:
				case 1462:
				case 1463:
				case 1464:
				case 1465:
				case 1466:
				case 1467:
				case 1468:
				case 1469:
				case 1470:
				case 1471:
				case 1472:
				case 1473:
				case 1474:
				case 1475:
				case 1476:
				case 1477:
				case 1478:
				case 1479:
				case 1480:
				case 1481:
				case 1482:
				case 1483:
				case 1484:
				case 1485:
				case 1486:
				case 1487:
				case 1488:
				case 1489:
				case 1491:
				case 1492:
				case 1493:
				case 1494:
				case 1495:
				case 1496:
				case 1497:
				case 1499:
				case 1500:
				case 1501:
				case 1502:
				case 1503:
				case 1504:
				case 1505:
				case 1506:
				case 1507:
				case 1508:
				case 1509:
				case 1510:
				case 1511:
				case 1512:
				case 1513:
				case 1514:
				case 1515:
				case 1516:
				case 1518:
				case 1519:
				case 1520:
				case 1521:
				case 1522:
				case 1523:
				case 1524:
				case 1525:
				case 1526:
				case 1527:
				case 1528:
				case 1529:
				case 1530:
				case 1531:
				case 1532:
				case 1533:
				case 1534:
				case 1536:
				case 1537:
				case 1538:
				case 1539:
				case 1540:
				case 1541:
				case 1542:
				case 1543:
				case 1544:
				case 1545:
				case 1546:
				case 1547:
				case 1548:
				case 1549:
				case 1550:
				case 1551:
				case 1552:
				case 1553:
				case 1554:
				case 1555:
				case 1556:
				case 1557:
				case 1558:
				case 1559:
				case 1560:
				case 1561:
				case 1562:
				case 1563:
				case 1564:
				case 1565:
				case 1566:
				case 1567:
				case 1568:
				case 1570:
				case 1571:
				case 1572:
				case 1573:
				case 1574:
				case 1575:
				case 1576:
				case 1577:
				case 1578:
				case 1579:
				case 1580:
				case 1581:
				case 1582:
				case 1583:
				case 1584:
				case 1585:
				case 1586:
				case 1587:
				case 1588:
				case 1589:
				case 1590:
				case 1591:
				case 1592:
				case 1593:
				case 1594:
				case 1595:
				case 1596:
				case 1597:
				case 1598:
				case 1599:
				case 1600:
				case 1601:
				case 1602:
				case 1603:
				case 1604:
				case 1605:
				case 1606:
				case 1607:
				case 1608:
				case 1609:
				case 1610:
				case 1611:
				case 1612:
				case 1613:
				case 1614:
				case 1615:
				case 1616:
				case 1617:
				case 1618:
				case 1619:
				case 1620:
				case 1621:
				case 1622:
				case 1623:
				case 1624:
				case 1625:
				case 1626:
				case 1628:
				case 1629:
				case 1630:
				case 1631:
				case 1632:
				case 1633:
				case 1634:
				case 1635:
				case 1636:
				case 1637:
				case 1638:
				case 1639:
				case 1640:
				case 1641:
				case 1642:
				case 1643:
				case 1644:
				case 1645:
				case 1646:
				case 1647:
				case 1648:
				case 1649:
				case 1650:
				case 1651:
				case 1652:
				case 1653:
				case 1654:
				case 1655:
				case 1656:
				case 1657:
				case 1658:
				case 1659:
				case 1660:
				case 1661:
				case 1662:
				case 1663:
				case 1664:
				case 1665:
				case 1666:
				case 1667:
				case 1668:
				case 1669:
				case 1670:
				case 1671:
				case 1672:
				case 1673:
				case 1674:
				case 1675:
				case 1676:
				case 1677:
				case 1678:
				case 1679:
				case 1680:
				case 1681:
				case 1682:
				case 1683:
				case 1684:
				case 1685:
				case 1686:
				case 1687:
				case 1688:
				case 1689:
				case 1690:
				case 1691:
				case 1692:
				case 1693:
				case 1694:
				case 1695:
				case 1696:
				case 1697:
				case 1698:
				case 1699:
				case 1700:
				case 1701:
				case 1702:
				case 1703:
				case 1704:
				case 1705:
				case 1706:
				case 1707:
				case 1708:
				case 1709:
				case 1710:
				case 1711:
				case 1712:
				case 1713:
				case 1714:
				case 1715:
				case 1716:
				case 1717:
				case 1718:
				case 1719:
				case 1720:
				case 1721:
				case 1722:
				case 1723:
				case 1724:
				case 1725:
				case 1726:
				case 1727:
				case 1728:
				case 1729:
				case 1730:
				case 1731:
				case 1732:
				case 1733:
				case 1734:
				case 1735:
				case 1736:
				case 1737:
				case 1738:
				case 1739:
				case 1740:
				case 1741:
				case 1742:
				case 1743:
				case 1744:
				case 1745:
				case 1746:
				case 1747:
				case 1748:
				case 1749:
				case 1750:
				case 1751:
				case 1752:
				case 1753:
				case 1754:
				case 1755:
				case 1756:
				case 1757:
				case 1758:
				case 1759:
				case 1760:
				case 1761:
				case 1762:
				case 1763:
				case 1764:
				case 1765:
				case 1766:
				case 1767:
				case 1768:
				case 1769:
				case 1770:
				case 1771:
				case 1772:
				case 1773:
				case 1774:
				case 1775:
				case 1776:
				case 1777:
				case 1778:
				case 1779:
				case 1780:
				case 1781:
				case 1782:
				case 1783:
				case 1784:
				case 1785:
				case 1786:
				case 1787:
				case 1788:
				case 1789:
				case 1790:
				case 1791:
				case 1792:
				case 1793:
				case 1794:
				case 1795:
				case 1796:
				case 1797:
				case 1798:
				case 1799:
				case 1800:
				case 1801:
				case 1802:
				case 1803:
				case 1804:
				case 1805:
				case 1806:
				case 1807:
				case 1808:
				case 1809:
				case 1810:
				case 1811:
				case 1812:
				case 1813:
				case 1814:
				case 1815:
				case 1816:
				case 1817:
				case 1818:
				case 1819:
				case 1820:
				case 1821:
				case 1822:
				case 1823:
				case 1824:
				case 1825:
				case 1826:
				case 1827:
				case 1828:
				case 1829:
				case 1830:
				case 1831:
				case 1832:
				case 1833:
				case 1834:
				case 1835:
				case 1836:
				case 1837:
				case 1838:
				case 1839:
				case 1840:
				case 1841:
				case 1842:
				case 1843:
				case 1844:
				case 1845:
				case 1846:
				case 1847:
				case 1848:
				case 1849:
				case 1850:
				case 1851:
				case 1852:
				case 1853:
				case 1854:
				case 1855:
				case 1856:
				case 1857:
				case 1858:
				case 1859:
				case 1860:
				case 1861:
				case 1862:
				case 1863:
				case 1864:
				case 1865:
				case 1866:
				case 1867:
				case 1868:
				case 1869:
				case 1870:
				case 1871:
				case 1872:
				case 1873:
				case 1874:
				case 1875:
				case 1876:
				case 1877:
				case 1878:
				case 1879:
				case 1880:
				case 1881:
				case 1882:
				case 1883:
				case 1884:
				case 1885:
				case 1886:
				case 1887:
				case 1888:
				case 1889:
				case 1890:
				case 1891:
				case 1892:
				case 1893:
				case 1894:
				case 1895:
				case 1896:
				case 1897:
				case 1898:
				case 1899:
				case 1900:
				case 1901:
				case 1902:
				case 1903:
				case 1904:
				case 1905:
				case 1906:
				case 1907:
				case 1908:
				case 1909:
				case 1910:
				case 1911:
				case 1912:
				case 1913:
				case 1914:
				case 1915:
				case 1916:
				case 1917:
				case 1918:
				case 1919:
				case 1920:
				case 1921:
				case 1922:
				case 1923:
				case 1924:
				case 1925:
				case 1926:
				case 1927:
				case 1928:
				case 1929:
				case 1930:
				case 1931:
				case 1932:
				case 1933:
				case 1934:
				case 1935:
				case 1936:
				case 1937:
				case 1939:
				case 1940:
				case 1941:
				case 1942:
				case 1943:
				case 1944:
				case 1945:
				case 1946:
				case 1947:
				case 1948:
				case 1949:
				case 1950:
				case 1951:
				case 1952:
				case 1953:
				case 1954:
				case 1955:
				case 1956:
				case 1957:
				case 1958:
				case 1959:
				case 1960:
				case 1961:
				case 1962:
				case 1963:
				case 1965:
				case 1966:
				case 1967:
				case 1968:
				case 1969:
				case 1970:
				case 1971:
				case 1972:
				case 1973:
				case 1974:
				case 1975:
				case 1976:
				case 1977:
				case 1978:
				case 1979:
				case 1980:
				case 1981:
				case 1982:
				case 1983:
				case 1984:
				case 1985:
				case 1986:
				case 1987:
				case 1988:
				case 1989:
				case 1990:
				case 1991:
				case 1992:
				case 1993:
				case 1994:
				case 1995:
				case 1996:
				case 1997:
				case 1998:
				case 1999:
				case 2000:
				case 2003:
				case 2004:
				case 2005:
				case 2006:
				case 2007:
				case 2008:
				case 2009:
				case 2010:
				case 2011:
				case 2012:
				case 2013:
				case 2014:
				case 2015:
				case 2016:
				case 2017:
				case 2018:
				case 2019:
				case 2020:
				case 2021:
				case 2022:
				case 2023:
				case 2024:
				case 2026:
				case 2027:
				case 2028:
				case 2029:
				case 2030:
				case 2031:
				case 2032:
				case 2033:
				case 2034:
				case 2035:
				case 2036:
				case 2037:
				case 2038:
				case 2039:
				case 2040:
				case 2041:
				case 2042:
				case 2043:
				case 2044:
				case 2045:
				case 2046:
				case 2047:
				case 2048:
				case 2049:
				case 2050:
				case 2051:
				case 2052:
				case 2053:
				case 2054:
				case 2055:
				case 2056:
				case 2057:
				case 2058:
				case 2059:
				case 2060:
				case 2061:
				case 2062:
				case 2063:
				case 2064:
				case 2065:
				case 2066:
				case 2067:
				case 2068:
				case 2069:
				case 2070:
				case 2071:
				case 2072:
				case 2074:
				case 2075:
				case 2076:
				case 2077:
				case 2078:
				case 2079:
				case 2080:
				case 2081:
				case 2082:
				case 2083:
				case 2084:
				case 2085:
				case 2086:
				case 2087:
				case 2088:
				case 2089:
				case 2090:
				case 2091:
				case 2092:
				case 2093:
				case 2094:
				case 2095:
				case 2096:
				case 2097:
				case 2098:
				case 2100:
				case 2101:
				case 2102:
				case 2103:
				case 2104:
				case 2105:
				case 2106:
				case 2107:
				case 2108:
				case 2109:
				case 2110:
				case 2111:
				case 2112:
				case 2113:
				case 2115:
				case 2116:
				case 2117:
				case 2118:
				case 2119:
				case 2120:
				case 2122:
				case 2123:
				case 2124:
				case 2125:
				case 2126:
				case 2128:
				case 2129:
				case 2130:
				case 2131:
				case 2132:
				case 2133:
				case 2134:
				case 2135:
				case 2136:
				case 2137:
				case 2138:
				case 2139:
				case 2140:
				case 2141:
				case 2142:
				case 2143:
				case 2145:
				case 2146:
				case 2147:
				case 2148:
				case 2149:
				case 2150:
				case 2151:
				case 2152:
				case 2153:
				case 2154:
				case 2155:
				case 2156:
				case 2157:
				case 2158:
				case 2159:
				case 2160:
				case 2161:
				case 2162:
				case 2163:
				case 2164:
				case 2165:
				case 2166:
				case 2168:
				case 2169:
				case 2170:
				case 2171:
				case 2172:
				case 2173:
				case 2174:
				case 2175:
				case 2176:
				case 2177:
				case 2178:
				case 2179:
				case 2180:
				case 2181:
				case 2182:
				case 2183:
				case 2184:
				case 2185:
				case 2186:
				case 2187:
				case 2188:
				case 2189:
				case 2191:
				case 2192:
				case 2193:
				case 2194:
				case 2195:
				case 2196:
				case 2197:
				case 2198:
				case 2199:
				case 2200:
				case 2201:
				case 2202:
				case 2203:
				case 2204:
				case 2205:
				case 2206:
				case 2207:
				case 2208:
				case 2209:
				case 2210:
				case 2211:
				case 2216:
				case 2220:
				case 2252:
					{
					this.state = 2932;
					this.domain_index_clause();
					}
					break;
				case 2127:
				case 2144:
					{
					this.state = 2933;
					this.xmlindex_clause();
					}
					break;
				default:
					throw new NoViableAltException(this);
				}
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public domain_index_clause(): Domain_index_clauseContext {
		let localctx: Domain_index_clauseContext = new Domain_index_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 194, PlSqlParser.RULE_domain_index_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 2938;
			this.indextype();
			this.state = 2940;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===769) {
				{
				this.state = 2939;
				this.local_domain_index_clause();
				}
			}

			this.state = 2943;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1021 || _la===1195) {
				{
				this.state = 2942;
				this.parallel_clause();
				}
			}

			this.state = 2950;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1197) {
				{
				this.state = 2945;
				this.match(PlSqlParser.PARAMETERS);
				this.state = 2946;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 2947;
				this.odci_parameters();
				this.state = 2948;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public local_domain_index_clause(): Local_domain_index_clauseContext {
		let localctx: Local_domain_index_clauseContext = new Local_domain_index_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 196, PlSqlParser.RULE_local_domain_index_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 2952;
			this.match(PlSqlParser.LOCAL);
			this.state = 2980;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===2223) {
				{
				this.state = 2953;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 2954;
				this.match(PlSqlParser.PARTITION);
				this.state = 2955;
				this.partition_name();
				this.state = 2961;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===1197) {
					{
					this.state = 2956;
					this.match(PlSqlParser.PARAMETERS);
					this.state = 2957;
					this.match(PlSqlParser.LEFT_PAREN);
					this.state = 2958;
					this.odci_parameters();
					this.state = 2959;
					this.match(PlSqlParser.RIGHT_PAREN);
					}
				}

				this.state = 2975;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===2229) {
					{
					{
					this.state = 2963;
					this.match(PlSqlParser.COMMA);
					this.state = 2964;
					this.match(PlSqlParser.PARTITION);
					this.state = 2965;
					this.partition_name();
					this.state = 2971;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
					if (_la===1197) {
						{
						this.state = 2966;
						this.match(PlSqlParser.PARAMETERS);
						this.state = 2967;
						this.match(PlSqlParser.LEFT_PAREN);
						this.state = 2968;
						this.odci_parameters();
						this.state = 2969;
						this.match(PlSqlParser.RIGHT_PAREN);
						}
					}

					}
					}
					this.state = 2977;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				this.state = 2978;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public xmlindex_clause(): Xmlindex_clauseContext {
		let localctx: Xmlindex_clauseContext = new Xmlindex_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 198, PlSqlParser.RULE_xmlindex_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 2984;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===2127) {
				{
				this.state = 2982;
				this.match(PlSqlParser.XDB);
				this.state = 2983;
				this.match(PlSqlParser.PERIOD);
				}
			}

			this.state = 2986;
			this.match(PlSqlParser.XMLINDEX);
			this.state = 2988;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===769) {
				{
				this.state = 2987;
				this.local_xmlindex_clause();
				}
			}

			this.state = 2991;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1021 || _la===1195) {
				{
				this.state = 2990;
				this.parallel_clause();
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public local_xmlindex_clause(): Local_xmlindex_clauseContext {
		let localctx: Local_xmlindex_clauseContext = new Local_xmlindex_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 200, PlSqlParser.RULE_local_xmlindex_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 2993;
			this.match(PlSqlParser.LOCAL);
			this.state = 3007;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===2223) {
				{
				this.state = 2994;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 2995;
				this.match(PlSqlParser.PARTITION);
				this.state = 2996;
				this.partition_name();
				this.state = 3002;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===2229) {
					{
					{
					this.state = 2997;
					this.match(PlSqlParser.COMMA);
					this.state = 2998;
					this.match(PlSqlParser.PARTITION);
					this.state = 2999;
					this.partition_name();
					}
					}
					this.state = 3004;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				this.state = 3005;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public global_partitioned_index(): Global_partitioned_indexContext {
		let localctx: Global_partitioned_indexContext = new Global_partitioned_indexContext(this, this._ctx, this.state);
		this.enterRule(localctx, 202, PlSqlParser.RULE_global_partitioned_index);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 3009;
			this.match(PlSqlParser.GLOBAL);
			this.state = 3010;
			this.match(PlSqlParser.PARTITION);
			this.state = 3011;
			this.match(PlSqlParser.BY);
			this.state = 3042;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 1344:
				{
				this.state = 3012;
				this.match(PlSqlParser.RANGE);
				this.state = 3013;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 3014;
				this.column_name();
				this.state = 3019;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===2229) {
					{
					{
					this.state = 3015;
					this.match(PlSqlParser.COMMA);
					this.state = 3016;
					this.column_name();
					}
					}
					this.state = 3021;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				this.state = 3022;
				this.match(PlSqlParser.RIGHT_PAREN);
				this.state = 3023;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 3024;
				this.index_partitioning_clause();
				this.state = 3025;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
				break;
			case 582:
				{
				this.state = 3027;
				this.match(PlSqlParser.HASH);
				this.state = 3028;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 3029;
				this.column_name();
				this.state = 3034;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===2229) {
					{
					{
					this.state = 3030;
					this.match(PlSqlParser.COMMA);
					this.state = 3031;
					this.column_name();
					}
					}
					this.state = 3036;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				this.state = 3037;
				this.match(PlSqlParser.RIGHT_PAREN);
				this.state = 3040;
				this._errHandler.sync(this);
				switch (this._input.LA(1)) {
				case 2223:
					{
					this.state = 3038;
					this.individual_hash_partitions();
					}
					break;
				case 1209:
					{
					this.state = 3039;
					this.hash_partitions_by_quantity();
					}
					break;
				default:
					throw new NoViableAltException(this);
				}
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public index_partitioning_clause(): Index_partitioning_clauseContext {
		let localctx: Index_partitioning_clauseContext = new Index_partitioning_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 204, PlSqlParser.RULE_index_partitioning_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 3044;
			this.match(PlSqlParser.PARTITION);
			this.state = 3046;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & 2684286839) !== 0) || ((((_la - 64)) & ~0x1F) === 0 && ((1 << (_la - 64)) & 3220168703) !== 0) || ((((_la - 96)) & ~0x1F) === 0 && ((1 << (_la - 96)) & 4294965247) !== 0) || ((((_la - 128)) & ~0x1F) === 0 && ((1 << (_la - 128)) & 2147221503) !== 0) || ((((_la - 160)) & ~0x1F) === 0 && ((1 << (_la - 160)) & 4293910527) !== 0) || ((((_la - 192)) & ~0x1F) === 0 && ((1 << (_la - 192)) & 4294967295) !== 0) || ((((_la - 224)) & ~0x1F) === 0 && ((1 << (_la - 224)) & 4160749311) !== 0) || ((((_la - 256)) & ~0x1F) === 0 && ((1 << (_la - 256)) & 4294967295) !== 0) || ((((_la - 289)) & ~0x1F) === 0 && ((1 << (_la - 289)) & 2147483647) !== 0) || ((((_la - 321)) & ~0x1F) === 0 && ((1 << (_la - 321)) & 3221225407) !== 0) || ((((_la - 353)) & ~0x1F) === 0 && ((1 << (_la - 353)) & 4294705151) !== 0) || ((((_la - 385)) & ~0x1F) === 0 && ((1 << (_la - 385)) & 2080372479) !== 0) || ((((_la - 417)) & ~0x1F) === 0 && ((1 << (_la - 417)) & 4026433535) !== 0) || ((((_la - 449)) & ~0x1F) === 0 && ((1 << (_la - 449)) & 4261412863) !== 0) || ((((_la - 481)) & ~0x1F) === 0 && ((1 << (_la - 481)) & 4294967295) !== 0) || ((((_la - 513)) & ~0x1F) === 0 && ((1 << (_la - 513)) & 4294967295) !== 0) || ((((_la - 545)) & ~0x1F) === 0 && ((1 << (_la - 545)) & 3925868029) !== 0) || ((((_la - 577)) & ~0x1F) === 0 && ((1 << (_la - 577)) & 4278189823) !== 0) || ((((_la - 609)) & ~0x1F) === 0 && ((1 << (_la - 609)) & 4290772991) !== 0) || ((((_la - 641)) & ~0x1F) === 0 && ((1 << (_la - 641)) & 4026529791) !== 0) || ((((_la - 673)) & ~0x1F) === 0 && ((1 << (_la - 673)) & 4290478079) !== 0) || ((((_la - 705)) & ~0x1F) === 0 && ((1 << (_la - 705)) & 4294967295) !== 0) || ((((_la - 737)) & ~0x1F) === 0 && ((1 << (_la - 737)) & 4293918719) !== 0) || ((((_la - 769)) & ~0x1F) === 0 && ((1 << (_la - 769)) & 4294967167) !== 0) || ((((_la - 801)) & ~0x1F) === 0 && ((1 << (_la - 801)) & 4294967295) !== 0) || ((((_la - 833)) & ~0x1F) === 0 && ((1 << (_la - 833)) & 4160749055) !== 0) || ((((_la - 865)) & ~0x1F) === 0 && ((1 << (_la - 865)) & 4290772991) !== 0) || ((((_la - 897)) & ~0x1F) === 0 && ((1 << (_la - 897)) & 4294967295) !== 0) || ((((_la - 929)) & ~0x1F) === 0 && ((1 << (_la - 929)) & 4278190079) !== 0) || ((((_la - 961)) & ~0x1F) === 0 && ((1 << (_la - 961)) & 4294967295) !== 0) || ((((_la - 993)) & ~0x1F) === 0 && ((1 << (_la - 993)) & 4294967295) !== 0) || ((((_la - 1025)) & ~0x1F) === 0 && ((1 << (_la - 1025)) & 4294967295) !== 0) || ((((_la - 1057)) & ~0x1F) === 0 && ((1 << (_la - 1057)) & 2147418111) !== 0) || ((((_la - 1089)) & ~0x1F) === 0 && ((1 << (_la - 1089)) & 4227858175) !== 0) || ((((_la - 1121)) & ~0x1F) === 0 && ((1 << (_la - 1121)) & 4293918559) !== 0) || ((((_la - 1153)) & ~0x1F) === 0 && ((1 << (_la - 1153)) & 4294410239) !== 0) || ((((_la - 1185)) & ~0x1F) === 0 && ((1 << (_la - 1185)) & 4294965247) !== 0) || ((((_la - 1217)) & ~0x1F) === 0 && ((1 << (_la - 1217)) & 4279827455) !== 0) || ((((_la - 1249)) & ~0x1F) === 0 && ((1 << (_la - 1249)) & 4294967291) !== 0) || ((((_la - 1281)) & ~0x1F) === 0 && ((1 << (_la - 1281)) & 4227858431) !== 0) || ((((_la - 1313)) & ~0x1F) === 0 && ((1 << (_la - 1313)) & 4294965247) !== 0) || ((((_la - 1345)) & ~0x1F) === 0 && ((1 << (_la - 1345)) & 4294967295) !== 0) || ((((_la - 1377)) & ~0x1F) === 0 && ((1 << (_la - 1377)) & 4292870143) !== 0) || ((((_la - 1409)) & ~0x1F) === 0 && ((1 << (_la - 1409)) & 4261412799) !== 0) || ((((_la - 1441)) & ~0x1F) === 0 && ((1 << (_la - 1441)) & 4294967295) !== 0) || ((((_la - 1473)) & ~0x1F) === 0 && ((1 << (_la - 1473)) & 4261281791) !== 0) || ((((_la - 1505)) & ~0x1F) === 0 && ((1 << (_la - 1505)) & 3221221375) !== 0) || ((((_la - 1537)) & ~0x1F) === 0 && ((1 << (_la - 1537)) & 4294967295) !== 0) || ((((_la - 1570)) & ~0x1F) === 0 && ((1 << (_la - 1570)) & 4294967295) !== 0) || ((((_la - 1602)) & ~0x1F) === 0 && ((1 << (_la - 1602)) & 4261412863) !== 0) || ((((_la - 1634)) & ~0x1F) === 0 && ((1 << (_la - 1634)) & 4294967295) !== 0) || ((((_la - 1666)) & ~0x1F) === 0 && ((1 << (_la - 1666)) & 4294967295) !== 0) || ((((_la - 1698)) & ~0x1F) === 0 && ((1 << (_la - 1698)) & 4294967295) !== 0) || ((((_la - 1730)) & ~0x1F) === 0 && ((1 << (_la - 1730)) & 4294967295) !== 0) || ((((_la - 1762)) & ~0x1F) === 0 && ((1 << (_la - 1762)) & 4294967295) !== 0) || ((((_la - 1794)) & ~0x1F) === 0 && ((1 << (_la - 1794)) & 4294967295) !== 0) || ((((_la - 1826)) & ~0x1F) === 0 && ((1 << (_la - 1826)) & 4294967295) !== 0) || ((((_la - 1858)) & ~0x1F) === 0 && ((1 << (_la - 1858)) & 4294967295) !== 0) || ((((_la - 1890)) & ~0x1F) === 0 && ((1 << (_la - 1890)) & 4294967295) !== 0) || ((((_la - 1922)) & ~0x1F) === 0 && ((1 << (_la - 1922)) & 4294901759) !== 0) || ((((_la - 1954)) & ~0x1F) === 0 && ((1 << (_la - 1954)) & 4294966271) !== 0) || ((((_la - 1986)) & ~0x1F) === 0 && ((1 << (_la - 1986)) & 4294868991) !== 0) || ((((_la - 2018)) & ~0x1F) === 0 && ((1 << (_la - 2018)) & 4294967167) !== 0) || ((((_la - 2050)) & ~0x1F) === 0 && ((1 << (_la - 2050)) & 4286578687) !== 0) || ((((_la - 2082)) & ~0x1F) === 0 && ((1 << (_la - 2082)) & 4294836223) !== 0) || ((((_la - 2115)) & ~0x1F) === 0 && ((1 << (_la - 2115)) & 3758092223) !== 0) || ((((_la - 2147)) & ~0x1F) === 0 && ((1 << (_la - 2147)) & 4293918719) !== 0) || ((((_la - 2179)) & ~0x1F) === 0 && ((1 << (_la - 2179)) & 4294965247) !== 0) || _la===2211 || _la===2216 || _la===2252) {
				{
				this.state = 3045;
				this.partition_name();
				}
			}

			this.state = 3048;
			this.match(PlSqlParser.VALUES);
			this.state = 3049;
			this.match(PlSqlParser.LESS);
			this.state = 3050;
			this.match(PlSqlParser.THAN);
			this.state = 3051;
			this.match(PlSqlParser.LEFT_PAREN);
			this.state = 3052;
			this.literal();
			this.state = 3057;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			while (_la===2229) {
				{
				{
				this.state = 3053;
				this.match(PlSqlParser.COMMA);
				this.state = 3054;
				this.literal();
				}
				}
				this.state = 3059;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			}
			this.state = 3060;
			this.match(PlSqlParser.RIGHT_PAREN);
			this.state = 3062;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===521 || _la===657 || _la===779 || _la===993 || _la===1227 || _la===1230 || _la===1593 || _la===1909) {
				{
				this.state = 3061;
				this.segment_attributes_clause();
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public local_partitioned_index(): Local_partitioned_indexContext {
		let localctx: Local_partitioned_indexContext = new Local_partitioned_indexContext(this, this._ctx, this.state);
		this.enterRule(localctx, 206, PlSqlParser.RULE_local_partitioned_index);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 3064;
			this.match(PlSqlParser.LOCAL);
			this.state = 3069;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 231, this._ctx) ) {
			case 1:
				{
				this.state = 3065;
				this.on_range_partitioned_table();
				}
				break;
			case 2:
				{
				this.state = 3066;
				this.on_list_partitioned_table();
				}
				break;
			case 3:
				{
				this.state = 3067;
				this.on_hash_partitioned_table();
				}
				break;
			case 4:
				{
				this.state = 3068;
				this.on_comp_partitioned_table();
				}
				break;
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public on_range_partitioned_table(): On_range_partitioned_tableContext {
		let localctx: On_range_partitioned_tableContext = new On_range_partitioned_tableContext(this, this._ctx, this.state);
		this.enterRule(localctx, 208, PlSqlParser.RULE_on_range_partitioned_table);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 3071;
			this.match(PlSqlParser.LEFT_PAREN);
			this.state = 3072;
			this.partitioned_table();
			this.state = 3077;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			while (_la===2229) {
				{
				{
				this.state = 3073;
				this.match(PlSqlParser.COMMA);
				this.state = 3074;
				this.partitioned_table();
				}
				}
				this.state = 3079;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			}
			this.state = 3080;
			this.match(PlSqlParser.RIGHT_PAREN);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public on_list_partitioned_table(): On_list_partitioned_tableContext {
		let localctx: On_list_partitioned_tableContext = new On_list_partitioned_tableContext(this, this._ctx, this.state);
		this.enterRule(localctx, 210, PlSqlParser.RULE_on_list_partitioned_table);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 3082;
			this.match(PlSqlParser.LEFT_PAREN);
			this.state = 3083;
			this.partitioned_table();
			this.state = 3088;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			while (_la===2229) {
				{
				{
				this.state = 3084;
				this.match(PlSqlParser.COMMA);
				this.state = 3085;
				this.partitioned_table();
				}
				}
				this.state = 3090;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			}
			this.state = 3091;
			this.match(PlSqlParser.RIGHT_PAREN);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public partitioned_table(): Partitioned_tableContext {
		let localctx: Partitioned_tableContext = new Partitioned_tableContext(this, this._ctx, this.state);
		this.enterRule(localctx, 212, PlSqlParser.RULE_partitioned_table);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 3093;
			this.match(PlSqlParser.PARTITION);
			this.state = 3095;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 234, this._ctx) ) {
			case 1:
				{
				this.state = 3094;
				this.partition_name();
				}
				break;
			}
			this.state = 3101;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			while (_la===232 || _la===521 || _la===657 || _la===779 || _la===953 || _la===993 || _la===1227 || _la===1230 || _la===1593 || _la===1909) {
				{
				this.state = 3099;
				this._errHandler.sync(this);
				switch (this._input.LA(1)) {
				case 521:
				case 657:
				case 779:
				case 993:
				case 1227:
				case 1230:
				case 1593:
				case 1909:
					{
					this.state = 3097;
					this.segment_attributes_clause();
					}
					break;
				case 232:
				case 953:
					{
					this.state = 3098;
					this.key_compression();
					}
					break;
				default:
					throw new NoViableAltException(this);
				}
				}
				this.state = 3103;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			}
			this.state = 3105;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===2021) {
				{
				this.state = 3104;
				this.match(PlSqlParser.UNUSABLE);
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public on_hash_partitioned_table(): On_hash_partitioned_tableContext {
		let localctx: On_hash_partitioned_tableContext = new On_hash_partitioned_tableContext(this, this._ctx, this.state);
		this.enterRule(localctx, 214, PlSqlParser.RULE_on_hash_partitioned_table);
		let _la: number;
		try {
			this.state = 3131;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 1594:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 3107;
				this.match(PlSqlParser.STORE);
				this.state = 3108;
				this.match(PlSqlParser.IN);
				this.state = 3109;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 3110;
				this.tablespace();
				this.state = 3115;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===2229) {
					{
					{
					this.state = 3111;
					this.match(PlSqlParser.COMMA);
					this.state = 3112;
					this.tablespace();
					}
					}
					this.state = 3117;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				this.state = 3118;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
				break;
			case 2223:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 3120;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 3121;
				this.on_hash_partitioned_clause();
				this.state = 3126;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===2229) {
					{
					{
					this.state = 3122;
					this.match(PlSqlParser.COMMA);
					this.state = 3123;
					this.on_hash_partitioned_clause();
					}
					}
					this.state = 3128;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				this.state = 3129;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public on_hash_partitioned_clause(): On_hash_partitioned_clauseContext {
		let localctx: On_hash_partitioned_clauseContext = new On_hash_partitioned_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 216, PlSqlParser.RULE_on_hash_partitioned_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 3133;
			this.match(PlSqlParser.PARTITION);
			this.state = 3135;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 241, this._ctx) ) {
			case 1:
				{
				this.state = 3134;
				this.partition_name();
				}
				break;
			}
			this.state = 3139;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1909) {
				{
				this.state = 3137;
				this.match(PlSqlParser.TABLESPACE);
				this.state = 3138;
				this.tablespace();
				}
			}

			this.state = 3142;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===232 || _la===953) {
				{
				this.state = 3141;
				this.key_compression();
				}
			}

			this.state = 3145;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===2021) {
				{
				this.state = 3144;
				this.match(PlSqlParser.UNUSABLE);
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public on_comp_partitioned_table(): On_comp_partitioned_tableContext {
		let localctx: On_comp_partitioned_tableContext = new On_comp_partitioned_tableContext(this, this._ctx, this.state);
		this.enterRule(localctx, 218, PlSqlParser.RULE_on_comp_partitioned_table);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 3160;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1594) {
				{
				this.state = 3147;
				this.match(PlSqlParser.STORE);
				this.state = 3148;
				this.match(PlSqlParser.IN);
				this.state = 3149;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 3150;
				this.tablespace();
				this.state = 3155;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===2229) {
					{
					{
					this.state = 3151;
					this.match(PlSqlParser.COMMA);
					this.state = 3152;
					this.tablespace();
					}
					}
					this.state = 3157;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				this.state = 3158;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
			}

			this.state = 3162;
			this.match(PlSqlParser.LEFT_PAREN);
			this.state = 3163;
			this.on_comp_partitioned_clause();
			this.state = 3168;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			while (_la===2229) {
				{
				{
				this.state = 3164;
				this.match(PlSqlParser.COMMA);
				this.state = 3165;
				this.on_comp_partitioned_clause();
				}
				}
				this.state = 3170;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			}
			this.state = 3171;
			this.match(PlSqlParser.RIGHT_PAREN);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public on_comp_partitioned_clause(): On_comp_partitioned_clauseContext {
		let localctx: On_comp_partitioned_clauseContext = new On_comp_partitioned_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 220, PlSqlParser.RULE_on_comp_partitioned_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 3173;
			this.match(PlSqlParser.PARTITION);
			this.state = 3175;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 248, this._ctx) ) {
			case 1:
				{
				this.state = 3174;
				this.partition_name();
				}
				break;
			}
			this.state = 3181;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			while (_la===232 || _la===521 || _la===657 || _la===779 || _la===953 || _la===993 || _la===1227 || _la===1230 || _la===1593 || _la===1909) {
				{
				this.state = 3179;
				this._errHandler.sync(this);
				switch (this._input.LA(1)) {
				case 521:
				case 657:
				case 779:
				case 993:
				case 1227:
				case 1230:
				case 1593:
				case 1909:
					{
					this.state = 3177;
					this.segment_attributes_clause();
					}
					break;
				case 232:
				case 953:
					{
					this.state = 3178;
					this.key_compression();
					}
					break;
				default:
					throw new NoViableAltException(this);
				}
				}
				this.state = 3183;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			}
			this.state = 3184;
			this.match(PlSqlParser.UNUSABLE);
			this.state = 3186;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1594 || _la===2223) {
				{
				this.state = 3185;
				this.index_subpartition_clause();
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public index_subpartition_clause(): Index_subpartition_clauseContext {
		let localctx: Index_subpartition_clauseContext = new Index_subpartition_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 222, PlSqlParser.RULE_index_subpartition_clause);
		let _la: number;
		try {
			this.state = 3212;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 1594:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 3188;
				this.match(PlSqlParser.STORE);
				this.state = 3189;
				this.match(PlSqlParser.IN);
				this.state = 3190;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 3191;
				this.tablespace();
				this.state = 3196;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===2229) {
					{
					{
					this.state = 3192;
					this.match(PlSqlParser.COMMA);
					this.state = 3193;
					this.tablespace();
					}
					}
					this.state = 3198;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				this.state = 3199;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
				break;
			case 2223:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 3201;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 3202;
				this.index_subpartition_subclause();
				this.state = 3207;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===2229) {
					{
					{
					this.state = 3203;
					this.match(PlSqlParser.COMMA);
					this.state = 3204;
					this.index_subpartition_subclause();
					}
					}
					this.state = 3209;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				this.state = 3210;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public index_subpartition_subclause(): Index_subpartition_subclauseContext {
		let localctx: Index_subpartition_subclauseContext = new Index_subpartition_subclauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 224, PlSqlParser.RULE_index_subpartition_subclause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 3214;
			this.match(PlSqlParser.SUBPARTITION);
			this.state = 3216;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 255, this._ctx) ) {
			case 1:
				{
				this.state = 3215;
				this.subpartition_name();
				}
				break;
			}
			this.state = 3220;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1909) {
				{
				this.state = 3218;
				this.match(PlSqlParser.TABLESPACE);
				this.state = 3219;
				this.tablespace();
				}
			}

			this.state = 3223;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===232 || _la===953) {
				{
				this.state = 3222;
				this.key_compression();
				}
			}

			this.state = 3226;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===2021) {
				{
				this.state = 3225;
				this.match(PlSqlParser.UNUSABLE);
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public odci_parameters(): Odci_parametersContext {
		let localctx: Odci_parametersContext = new Odci_parametersContext(this, this._ctx, this.state);
		this.enterRule(localctx, 226, PlSqlParser.RULE_odci_parameters);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 3228;
			this.match(PlSqlParser.CHAR_STRING);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public indextype(): IndextypeContext {
		let localctx: IndextypeContext = new IndextypeContext(this, this._ctx, this.state);
		this.enterRule(localctx, 228, PlSqlParser.RULE_indextype);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 3233;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 259, this._ctx) ) {
			case 1:
				{
				this.state = 3230;
				this.id_expression();
				this.state = 3231;
				this.match(PlSqlParser.PERIOD);
				}
				break;
			}
			this.state = 3235;
			this.id_expression();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public alter_index(): Alter_indexContext {
		let localctx: Alter_indexContext = new Alter_indexContext(this, this._ctx, this.state);
		this.enterRule(localctx, 230, PlSqlParser.RULE_alter_index);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 3237;
			this.match(PlSqlParser.ALTER);
			this.state = 3238;
			this.match(PlSqlParser.INDEX);
			this.state = 3239;
			this.index_name();
			this.state = 3242;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 36:
			case 339:
			case 521:
			case 657:
			case 779:
			case 993:
			case 1021:
			case 1195:
			case 1227:
			case 1230:
			case 1521:
			case 1593:
				{
				this.state = 3240;
				this.alter_index_ops_set1();
				}
				break;
			case 18:
			case 205:
			case 223:
			case 383:
			case 411:
			case 439:
			case 693:
			case 863:
			case 866:
			case 1001:
			case 1197:
			case 1358:
			case 1404:
			case 1552:
			case 2021:
			case 2025:
			case 2103:
				{
				this.state = 3241;
				this.alter_index_ops_set2();
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
			this.state = 3244;
			this.match(PlSqlParser.SEMICOLON);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public alter_index_ops_set1(): Alter_index_ops_set1Context {
		let localctx: Alter_index_ops_set1Context = new Alter_index_ops_set1Context(this, this._ctx, this.state);
		this.enterRule(localctx, 232, PlSqlParser.RULE_alter_index_ops_set1);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 3252;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			do {
				{
				this.state = 3252;
				this._errHandler.sync(this);
				switch (this._input.LA(1)) {
				case 339:
					{
					this.state = 3246;
					this.deallocate_unused_clause();
					}
					break;
				case 36:
					{
					this.state = 3247;
					this.allocate_extent_clause();
					}
					break;
				case 1521:
					{
					this.state = 3248;
					this.shrink_clause();
					}
					break;
				case 1021:
				case 1195:
					{
					this.state = 3249;
					this.parallel_clause();
					}
					break;
				case 657:
				case 1227:
				case 1230:
				case 1593:
					{
					this.state = 3250;
					this.physical_attributes_clause();
					}
					break;
				case 521:
				case 779:
				case 993:
					{
					this.state = 3251;
					this.logging_clause();
					}
					break;
				default:
					throw new NoViableAltException(this);
				}
				}
				this.state = 3254;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			} while (_la===36 || _la===339 || _la===521 || _la===657 || _la===779 || _la===993 || _la===1021 || _la===1195 || _la===1227 || _la===1230 || _la===1521 || _la===1593);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public alter_index_ops_set2(): Alter_index_ops_set2Context {
		let localctx: Alter_index_ops_set2Context = new Alter_index_ops_set2Context(this, this._ctx, this.state);
		this.enterRule(localctx, 234, PlSqlParser.RULE_alter_index_ops_set2);
		try {
			this.state = 3277;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 263, this._ctx) ) {
			case 1:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 3256;
				this.rebuild_clause();
				}
				break;
			case 2:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 3257;
				this.match(PlSqlParser.PARAMETERS);
				this.state = 3258;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 3259;
				this.odci_parameters();
				this.state = 3260;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
				break;
			case 3:
				this.enterOuterAlt(localctx, 3);
				{
				this.state = 3262;
				this.match(PlSqlParser.COMPILE);
				}
				break;
			case 4:
				this.enterOuterAlt(localctx, 4);
				{
				this.state = 3263;
				this.enable_or_disable();
				}
				break;
			case 5:
				this.enterOuterAlt(localctx, 5);
				{
				this.state = 3264;
				this.match(PlSqlParser.UNUSABLE);
				}
				break;
			case 6:
				this.enterOuterAlt(localctx, 6);
				{
				this.state = 3265;
				this.visible_or_invisible();
				}
				break;
			case 7:
				this.enterOuterAlt(localctx, 7);
				{
				this.state = 3266;
				this.match(PlSqlParser.RENAME);
				this.state = 3267;
				this.match(PlSqlParser.TO);
				this.state = 3268;
				this.new_index_name();
				}
				break;
			case 8:
				this.enterOuterAlt(localctx, 8);
				{
				this.state = 3269;
				this.match(PlSqlParser.COALESCE);
				}
				break;
			case 9:
				this.enterOuterAlt(localctx, 9);
				{
				this.state = 3270;
				this.monitoring_nomonitoring();
				this.state = 3271;
				this.match(PlSqlParser.USAGE);
				}
				break;
			case 10:
				this.enterOuterAlt(localctx, 10);
				{
				this.state = 3273;
				this.match(PlSqlParser.UPDATE);
				this.state = 3274;
				this.match(PlSqlParser.BLOCK);
				this.state = 3275;
				this.match(PlSqlParser.REFERENCES);
				}
				break;
			case 11:
				this.enterOuterAlt(localctx, 11);
				{
				this.state = 3276;
				this.alter_index_partitioning();
				}
				break;
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public visible_or_invisible(): Visible_or_invisibleContext {
		let localctx: Visible_or_invisibleContext = new Visible_or_invisibleContext(this, this._ctx, this.state);
		this.enterRule(localctx, 236, PlSqlParser.RULE_visible_or_invisible);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 3279;
			_la = this._input.LA(1);
			if(!(_la===693 || _la===2103)) {
			this._errHandler.recoverInline(this);
			}
			else {
				this._errHandler.reportMatch(this);
			    this.consume();
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public monitoring_nomonitoring(): Monitoring_nomonitoringContext {
		let localctx: Monitoring_nomonitoringContext = new Monitoring_nomonitoringContext(this, this._ctx, this.state);
		this.enterRule(localctx, 238, PlSqlParser.RULE_monitoring_nomonitoring);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 3281;
			_la = this._input.LA(1);
			if(!(_la===866 || _la===1001)) {
			this._errHandler.recoverInline(this);
			}
			else {
				this._errHandler.reportMatch(this);
			    this.consume();
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public rebuild_clause(): Rebuild_clauseContext {
		let localctx: Rebuild_clauseContext = new Rebuild_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 240, PlSqlParser.RULE_rebuild_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 3283;
			this.match(PlSqlParser.REBUILD);
			this.state = 3290;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 1207:
				{
				this.state = 3284;
				this.match(PlSqlParser.PARTITION);
				this.state = 3285;
				this.partition_name();
				}
				break;
			case 1606:
				{
				this.state = 3286;
				this.match(PlSqlParser.SUBPARTITION);
				this.state = 3287;
				this.subpartition_name();
				}
				break;
			case 1433:
				{
				this.state = 3288;
				this.match(PlSqlParser.REVERSE);
				}
				break;
			case 1047:
				{
				this.state = 3289;
				this.match(PlSqlParser.NOREVERSE);
				}
				break;
			case 232:
			case 521:
			case 657:
			case 779:
			case 953:
			case 993:
			case 1021:
			case 1125:
			case 1195:
			case 1197:
			case 1227:
			case 1230:
			case 1593:
			case 1909:
			case 2241:
				break;
			default:
				break;
			}
			this.state = 3306;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			while (_la===232 || _la===521 || _la===657 || _la===779 || _la===953 || _la===993 || _la===1021 || _la===1125 || _la===1195 || _la===1197 || _la===1227 || _la===1230 || _la===1593 || _la===1909) {
				{
				this.state = 3304;
				this._errHandler.sync(this);
				switch (this._input.LA(1)) {
				case 1021:
				case 1195:
					{
					this.state = 3292;
					this.parallel_clause();
					}
					break;
				case 1909:
					{
					this.state = 3293;
					this.match(PlSqlParser.TABLESPACE);
					this.state = 3294;
					this.tablespace();
					}
					break;
				case 1197:
					{
					this.state = 3295;
					this.match(PlSqlParser.PARAMETERS);
					this.state = 3296;
					this.match(PlSqlParser.LEFT_PAREN);
					this.state = 3297;
					this.odci_parameters();
					this.state = 3298;
					this.match(PlSqlParser.RIGHT_PAREN);
					}
					break;
				case 1125:
					{
					this.state = 3300;
					this.match(PlSqlParser.ONLINE);
					}
					break;
				case 657:
				case 1227:
				case 1230:
				case 1593:
					{
					this.state = 3301;
					this.physical_attributes_clause();
					}
					break;
				case 232:
				case 953:
					{
					this.state = 3302;
					this.key_compression();
					}
					break;
				case 521:
				case 779:
				case 993:
					{
					this.state = 3303;
					this.logging_clause();
					}
					break;
				default:
					throw new NoViableAltException(this);
				}
				}
				this.state = 3308;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public alter_index_partitioning(): Alter_index_partitioningContext {
		let localctx: Alter_index_partitioningContext = new Alter_index_partitioningContext(this, this._ctx, this.state);
		this.enterRule(localctx, 242, PlSqlParser.RULE_alter_index_partitioning);
		try {
			this.state = 3317;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 267, this._ctx) ) {
			case 1:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 3309;
				this.modify_index_default_attrs();
				}
				break;
			case 2:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 3310;
				this.add_hash_index_partition();
				}
				break;
			case 3:
				this.enterOuterAlt(localctx, 3);
				{
				this.state = 3311;
				this.modify_index_partition();
				}
				break;
			case 4:
				this.enterOuterAlt(localctx, 4);
				{
				this.state = 3312;
				this.rename_index_partition();
				}
				break;
			case 5:
				this.enterOuterAlt(localctx, 5);
				{
				this.state = 3313;
				this.drop_index_partition();
				}
				break;
			case 6:
				this.enterOuterAlt(localctx, 6);
				{
				this.state = 3314;
				this.split_index_partition();
				}
				break;
			case 7:
				this.enterOuterAlt(localctx, 7);
				{
				this.state = 3315;
				this.coalesce_index_partition();
				}
				break;
			case 8:
				this.enterOuterAlt(localctx, 8);
				{
				this.state = 3316;
				this.modify_index_subpartition();
				}
				break;
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public modify_index_default_attrs(): Modify_index_default_attrsContext {
		let localctx: Modify_index_default_attrsContext = new Modify_index_default_attrsContext(this, this._ctx, this.state);
		this.enterRule(localctx, 244, PlSqlParser.RULE_modify_index_default_attrs);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 3319;
			this.match(PlSqlParser.MODIFY);
			this.state = 3320;
			this.match(PlSqlParser.DEFAULT);
			this.state = 3321;
			this.match(PlSqlParser.ATTRIBUTES);
			this.state = 3325;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===546) {
				{
				this.state = 3322;
				this.match(PlSqlParser.FOR);
				this.state = 3323;
				this.match(PlSqlParser.PARTITION);
				this.state = 3324;
				this.partition_name();
				}
			}

			this.state = 3334;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 657:
			case 1227:
			case 1230:
			case 1593:
				{
				this.state = 3327;
				this.physical_attributes_clause();
				}
				break;
			case 1909:
				{
				this.state = 3328;
				this.match(PlSqlParser.TABLESPACE);
				this.state = 3331;
				this._errHandler.sync(this);
				switch (this._input.LA(1)) {
				case 1:
				case 2:
				case 3:
				case 4:
				case 5:
				case 6:
				case 7:
				case 8:
				case 9:
				case 10:
				case 11:
				case 12:
				case 13:
				case 14:
				case 15:
				case 16:
				case 17:
				case 18:
				case 19:
				case 20:
				case 21:
				case 22:
				case 23:
				case 24:
				case 25:
				case 26:
				case 27:
				case 28:
				case 29:
				case 30:
				case 31:
				case 32:
				case 33:
				case 34:
				case 36:
				case 37:
				case 38:
				case 40:
				case 41:
				case 42:
				case 44:
				case 45:
				case 46:
				case 47:
				case 49:
				case 50:
				case 51:
				case 52:
				case 53:
				case 54:
				case 55:
				case 56:
				case 57:
				case 58:
				case 59:
				case 60:
				case 63:
				case 64:
				case 65:
				case 66:
				case 67:
				case 68:
				case 69:
				case 70:
				case 71:
				case 72:
				case 73:
				case 74:
				case 75:
				case 76:
				case 78:
				case 79:
				case 80:
				case 81:
				case 82:
				case 83:
				case 85:
				case 86:
				case 87:
				case 88:
				case 89:
				case 90:
				case 91:
				case 92:
				case 93:
				case 95:
				case 96:
				case 97:
				case 98:
				case 99:
				case 100:
				case 101:
				case 102:
				case 103:
				case 104:
				case 105:
				case 106:
				case 108:
				case 109:
				case 110:
				case 111:
				case 112:
				case 113:
				case 114:
				case 115:
				case 116:
				case 117:
				case 118:
				case 119:
				case 120:
				case 121:
				case 122:
				case 123:
				case 124:
				case 125:
				case 126:
				case 127:
				case 128:
				case 129:
				case 130:
				case 131:
				case 132:
				case 133:
				case 134:
				case 135:
				case 136:
				case 137:
				case 138:
				case 139:
				case 140:
				case 141:
				case 142:
				case 143:
				case 144:
				case 145:
				case 147:
				case 148:
				case 149:
				case 150:
				case 151:
				case 152:
				case 153:
				case 154:
				case 155:
				case 156:
				case 157:
				case 158:
				case 160:
				case 161:
				case 162:
				case 163:
				case 164:
				case 165:
				case 166:
				case 167:
				case 168:
				case 169:
				case 170:
				case 171:
				case 172:
				case 174:
				case 175:
				case 176:
				case 177:
				case 178:
				case 179:
				case 181:
				case 182:
				case 183:
				case 184:
				case 185:
				case 186:
				case 187:
				case 188:
				case 189:
				case 190:
				case 191:
				case 192:
				case 193:
				case 194:
				case 195:
				case 196:
				case 197:
				case 198:
				case 199:
				case 200:
				case 201:
				case 202:
				case 203:
				case 204:
				case 205:
				case 206:
				case 207:
				case 208:
				case 209:
				case 210:
				case 211:
				case 212:
				case 213:
				case 214:
				case 215:
				case 216:
				case 217:
				case 218:
				case 219:
				case 220:
				case 221:
				case 222:
				case 223:
				case 224:
				case 225:
				case 226:
				case 227:
				case 228:
				case 229:
				case 230:
				case 231:
				case 233:
				case 234:
				case 235:
				case 236:
				case 237:
				case 238:
				case 239:
				case 240:
				case 241:
				case 242:
				case 243:
				case 244:
				case 245:
				case 246:
				case 247:
				case 248:
				case 249:
				case 250:
				case 252:
				case 253:
				case 254:
				case 255:
				case 256:
				case 257:
				case 258:
				case 259:
				case 260:
				case 261:
				case 262:
				case 263:
				case 264:
				case 265:
				case 266:
				case 267:
				case 268:
				case 269:
				case 270:
				case 271:
				case 272:
				case 273:
				case 274:
				case 275:
				case 276:
				case 277:
				case 278:
				case 279:
				case 280:
				case 281:
				case 282:
				case 283:
				case 284:
				case 285:
				case 286:
				case 287:
				case 289:
				case 290:
				case 291:
				case 292:
				case 293:
				case 294:
				case 295:
				case 296:
				case 297:
				case 298:
				case 299:
				case 300:
				case 301:
				case 302:
				case 303:
				case 304:
				case 305:
				case 306:
				case 307:
				case 308:
				case 309:
				case 310:
				case 311:
				case 312:
				case 313:
				case 314:
				case 315:
				case 316:
				case 317:
				case 318:
				case 319:
				case 321:
				case 322:
				case 323:
				case 324:
				case 325:
				case 326:
				case 328:
				case 329:
				case 330:
				case 331:
				case 332:
				case 333:
				case 334:
				case 335:
				case 336:
				case 337:
				case 338:
				case 339:
				case 340:
				case 341:
				case 342:
				case 343:
				case 344:
				case 345:
				case 346:
				case 347:
				case 348:
				case 349:
				case 350:
				case 352:
				case 353:
				case 354:
				case 355:
				case 356:
				case 357:
				case 358:
				case 359:
				case 360:
				case 361:
				case 362:
				case 363:
				case 364:
				case 365:
				case 366:
				case 367:
				case 368:
				case 369:
				case 370:
				case 372:
				case 373:
				case 374:
				case 375:
				case 376:
				case 377:
				case 378:
				case 379:
				case 380:
				case 381:
				case 382:
				case 383:
				case 384:
				case 385:
				case 386:
				case 387:
				case 388:
				case 389:
				case 390:
				case 391:
				case 392:
				case 394:
				case 395:
				case 397:
				case 398:
				case 399:
				case 400:
				case 401:
				case 402:
				case 403:
				case 404:
				case 405:
				case 406:
				case 407:
				case 408:
				case 409:
				case 410:
				case 412:
				case 413:
				case 414:
				case 415:
				case 417:
				case 418:
				case 419:
				case 420:
				case 421:
				case 422:
				case 423:
				case 424:
				case 425:
				case 426:
				case 427:
				case 428:
				case 429:
				case 430:
				case 431:
				case 434:
				case 435:
				case 436:
				case 437:
				case 438:
				case 439:
				case 440:
				case 441:
				case 442:
				case 443:
				case 444:
				case 446:
				case 447:
				case 448:
				case 449:
				case 450:
				case 451:
				case 452:
				case 453:
				case 454:
				case 455:
				case 456:
				case 457:
				case 458:
				case 459:
				case 460:
				case 461:
				case 462:
				case 463:
				case 464:
				case 465:
				case 466:
				case 467:
				case 468:
				case 469:
				case 470:
				case 471:
				case 472:
				case 473:
				case 475:
				case 476:
				case 477:
				case 478:
				case 479:
				case 480:
				case 481:
				case 482:
				case 483:
				case 484:
				case 485:
				case 486:
				case 487:
				case 488:
				case 489:
				case 490:
				case 491:
				case 492:
				case 493:
				case 494:
				case 495:
				case 496:
				case 497:
				case 498:
				case 499:
				case 500:
				case 501:
				case 502:
				case 503:
				case 504:
				case 505:
				case 506:
				case 507:
				case 508:
				case 509:
				case 510:
				case 511:
				case 512:
				case 513:
				case 514:
				case 515:
				case 516:
				case 517:
				case 518:
				case 519:
				case 520:
				case 521:
				case 522:
				case 523:
				case 524:
				case 525:
				case 526:
				case 527:
				case 528:
				case 529:
				case 530:
				case 531:
				case 532:
				case 533:
				case 534:
				case 535:
				case 536:
				case 537:
				case 538:
				case 539:
				case 540:
				case 541:
				case 542:
				case 543:
				case 544:
				case 545:
				case 547:
				case 548:
				case 549:
				case 550:
				case 551:
				case 552:
				case 553:
				case 555:
				case 556:
				case 557:
				case 558:
				case 559:
				case 560:
				case 561:
				case 562:
				case 563:
				case 564:
				case 565:
				case 566:
				case 567:
				case 568:
				case 569:
				case 572:
				case 574:
				case 575:
				case 576:
				case 577:
				case 578:
				case 579:
				case 580:
				case 581:
				case 582:
				case 583:
				case 584:
				case 586:
				case 587:
				case 588:
				case 589:
				case 590:
				case 591:
				case 592:
				case 593:
				case 594:
				case 595:
				case 596:
				case 597:
				case 598:
				case 599:
				case 600:
				case 602:
				case 603:
				case 604:
				case 605:
				case 606:
				case 607:
				case 608:
				case 609:
				case 610:
				case 611:
				case 612:
				case 613:
				case 614:
				case 615:
				case 616:
				case 617:
				case 618:
				case 619:
				case 620:
				case 621:
				case 622:
				case 623:
				case 624:
				case 625:
				case 626:
				case 627:
				case 628:
				case 629:
				case 630:
				case 632:
				case 633:
				case 634:
				case 635:
				case 636:
				case 637:
				case 638:
				case 639:
				case 640:
				case 641:
				case 642:
				case 643:
				case 644:
				case 645:
				case 646:
				case 647:
				case 648:
				case 649:
				case 650:
				case 651:
				case 653:
				case 654:
				case 655:
				case 656:
				case 657:
				case 658:
				case 659:
				case 660:
				case 661:
				case 662:
				case 663:
				case 664:
				case 665:
				case 666:
				case 667:
				case 668:
				case 670:
				case 671:
				case 672:
				case 673:
				case 674:
				case 675:
				case 676:
				case 677:
				case 678:
				case 679:
				case 680:
				case 681:
				case 682:
				case 683:
				case 684:
				case 685:
				case 686:
				case 687:
				case 689:
				case 690:
				case 692:
				case 693:
				case 694:
				case 696:
				case 697:
				case 698:
				case 699:
				case 700:
				case 701:
				case 702:
				case 703:
				case 704:
				case 705:
				case 706:
				case 707:
				case 708:
				case 709:
				case 710:
				case 711:
				case 712:
				case 713:
				case 714:
				case 715:
				case 716:
				case 717:
				case 718:
				case 719:
				case 720:
				case 721:
				case 722:
				case 723:
				case 724:
				case 725:
				case 726:
				case 727:
				case 728:
				case 729:
				case 730:
				case 731:
				case 732:
				case 733:
				case 734:
				case 735:
				case 736:
				case 737:
				case 738:
				case 739:
				case 740:
				case 741:
				case 742:
				case 743:
				case 744:
				case 745:
				case 746:
				case 747:
				case 748:
				case 749:
				case 750:
				case 751:
				case 752:
				case 753:
				case 754:
				case 755:
				case 756:
				case 758:
				case 759:
				case 760:
				case 761:
				case 762:
				case 763:
				case 764:
				case 765:
				case 766:
				case 767:
				case 768:
				case 769:
				case 770:
				case 771:
				case 772:
				case 773:
				case 774:
				case 775:
				case 777:
				case 778:
				case 779:
				case 780:
				case 781:
				case 782:
				case 783:
				case 784:
				case 785:
				case 786:
				case 787:
				case 788:
				case 789:
				case 790:
				case 791:
				case 792:
				case 793:
				case 794:
				case 795:
				case 796:
				case 797:
				case 798:
				case 799:
				case 800:
				case 801:
				case 802:
				case 803:
				case 804:
				case 805:
				case 806:
				case 807:
				case 808:
				case 809:
				case 810:
				case 811:
				case 812:
				case 813:
				case 814:
				case 815:
				case 816:
				case 817:
				case 818:
				case 819:
				case 820:
				case 821:
				case 822:
				case 823:
				case 824:
				case 825:
				case 826:
				case 827:
				case 828:
				case 829:
				case 830:
				case 831:
				case 832:
				case 833:
				case 834:
				case 835:
				case 836:
				case 837:
				case 838:
				case 839:
				case 840:
				case 841:
				case 843:
				case 844:
				case 845:
				case 846:
				case 847:
				case 848:
				case 849:
				case 850:
				case 851:
				case 852:
				case 853:
				case 854:
				case 855:
				case 856:
				case 857:
				case 858:
				case 859:
				case 861:
				case 862:
				case 863:
				case 864:
				case 865:
				case 866:
				case 867:
				case 868:
				case 869:
				case 870:
				case 871:
				case 872:
				case 873:
				case 874:
				case 875:
				case 876:
				case 877:
				case 878:
				case 879:
				case 880:
				case 881:
				case 882:
				case 883:
				case 884:
				case 885:
				case 886:
				case 888:
				case 889:
				case 890:
				case 891:
				case 892:
				case 893:
				case 894:
				case 895:
				case 896:
				case 897:
				case 898:
				case 899:
				case 900:
				case 901:
				case 902:
				case 903:
				case 904:
				case 905:
				case 906:
				case 907:
				case 908:
				case 909:
				case 910:
				case 911:
				case 912:
				case 913:
				case 914:
				case 915:
				case 916:
				case 917:
				case 918:
				case 919:
				case 920:
				case 921:
				case 922:
				case 923:
				case 924:
				case 925:
				case 926:
				case 927:
				case 928:
				case 929:
				case 930:
				case 931:
				case 932:
				case 933:
				case 934:
				case 935:
				case 936:
				case 937:
				case 938:
				case 939:
				case 940:
				case 941:
				case 942:
				case 943:
				case 944:
				case 945:
				case 946:
				case 947:
				case 948:
				case 949:
				case 950:
				case 951:
				case 952:
				case 954:
				case 955:
				case 956:
				case 957:
				case 958:
				case 959:
				case 960:
				case 961:
				case 962:
				case 963:
				case 964:
				case 965:
				case 966:
				case 967:
				case 968:
				case 969:
				case 970:
				case 971:
				case 972:
				case 973:
				case 974:
				case 975:
				case 976:
				case 977:
				case 978:
				case 979:
				case 980:
				case 981:
				case 982:
				case 983:
				case 984:
				case 985:
				case 986:
				case 987:
				case 988:
				case 989:
				case 990:
				case 991:
				case 992:
				case 993:
				case 994:
				case 995:
				case 996:
				case 997:
				case 998:
				case 999:
				case 1000:
				case 1001:
				case 1002:
				case 1003:
				case 1004:
				case 1005:
				case 1006:
				case 1007:
				case 1008:
				case 1009:
				case 1010:
				case 1011:
				case 1012:
				case 1013:
				case 1014:
				case 1015:
				case 1016:
				case 1017:
				case 1018:
				case 1019:
				case 1020:
				case 1021:
				case 1022:
				case 1023:
				case 1024:
				case 1025:
				case 1026:
				case 1027:
				case 1028:
				case 1029:
				case 1030:
				case 1031:
				case 1032:
				case 1033:
				case 1034:
				case 1035:
				case 1036:
				case 1037:
				case 1038:
				case 1039:
				case 1040:
				case 1041:
				case 1042:
				case 1043:
				case 1044:
				case 1045:
				case 1046:
				case 1047:
				case 1048:
				case 1049:
				case 1050:
				case 1051:
				case 1052:
				case 1053:
				case 1054:
				case 1055:
				case 1056:
				case 1057:
				case 1058:
				case 1059:
				case 1060:
				case 1061:
				case 1062:
				case 1063:
				case 1064:
				case 1065:
				case 1066:
				case 1067:
				case 1068:
				case 1069:
				case 1070:
				case 1071:
				case 1072:
				case 1074:
				case 1075:
				case 1076:
				case 1077:
				case 1078:
				case 1079:
				case 1080:
				case 1081:
				case 1082:
				case 1083:
				case 1084:
				case 1085:
				case 1086:
				case 1087:
				case 1089:
				case 1090:
				case 1091:
				case 1092:
				case 1093:
				case 1094:
				case 1095:
				case 1096:
				case 1098:
				case 1099:
				case 1100:
				case 1101:
				case 1102:
				case 1103:
				case 1104:
				case 1105:
				case 1106:
				case 1107:
				case 1108:
				case 1109:
				case 1110:
				case 1111:
				case 1112:
				case 1113:
				case 1114:
				case 1116:
				case 1117:
				case 1118:
				case 1119:
				case 1120:
				case 1121:
				case 1122:
				case 1123:
				case 1124:
				case 1125:
				case 1127:
				case 1129:
				case 1130:
				case 1131:
				case 1132:
				case 1133:
				case 1134:
				case 1135:
				case 1136:
				case 1137:
				case 1138:
				case 1139:
				case 1140:
				case 1142:
				case 1143:
				case 1144:
				case 1145:
				case 1146:
				case 1147:
				case 1148:
				case 1149:
				case 1150:
				case 1151:
				case 1152:
				case 1153:
				case 1154:
				case 1155:
				case 1156:
				case 1157:
				case 1158:
				case 1159:
				case 1160:
				case 1161:
				case 1162:
				case 1163:
				case 1164:
				case 1165:
				case 1166:
				case 1167:
				case 1169:
				case 1170:
				case 1171:
				case 1173:
				case 1174:
				case 1175:
				case 1176:
				case 1177:
				case 1178:
				case 1179:
				case 1180:
				case 1181:
				case 1182:
				case 1183:
				case 1184:
				case 1185:
				case 1186:
				case 1187:
				case 1188:
				case 1189:
				case 1190:
				case 1191:
				case 1192:
				case 1193:
				case 1194:
				case 1195:
				case 1197:
				case 1198:
				case 1199:
				case 1200:
				case 1201:
				case 1202:
				case 1203:
				case 1204:
				case 1205:
				case 1206:
				case 1207:
				case 1208:
				case 1209:
				case 1210:
				case 1211:
				case 1212:
				case 1213:
				case 1214:
				case 1215:
				case 1216:
				case 1217:
				case 1218:
				case 1219:
				case 1220:
				case 1221:
				case 1222:
				case 1223:
				case 1224:
				case 1225:
				case 1226:
				case 1228:
				case 1229:
				case 1230:
				case 1231:
				case 1232:
				case 1236:
				case 1237:
				case 1241:
				case 1242:
				case 1243:
				case 1244:
				case 1245:
				case 1246:
				case 1247:
				case 1248:
				case 1249:
				case 1250:
				case 1252:
				case 1253:
				case 1254:
				case 1255:
				case 1256:
				case 1257:
				case 1258:
				case 1259:
				case 1260:
				case 1261:
				case 1262:
				case 1263:
				case 1264:
				case 1265:
				case 1266:
				case 1267:
				case 1268:
				case 1269:
				case 1270:
				case 1271:
				case 1272:
				case 1273:
				case 1274:
				case 1275:
				case 1276:
				case 1277:
				case 1278:
				case 1279:
				case 1280:
				case 1281:
				case 1282:
				case 1283:
				case 1284:
				case 1285:
				case 1286:
				case 1287:
				case 1288:
				case 1289:
				case 1290:
				case 1291:
				case 1292:
				case 1293:
				case 1294:
				case 1295:
				case 1296:
				case 1297:
				case 1298:
				case 1299:
				case 1300:
				case 1301:
				case 1302:
				case 1303:
				case 1304:
				case 1305:
				case 1306:
				case 1308:
				case 1309:
				case 1310:
				case 1311:
				case 1312:
				case 1313:
				case 1314:
				case 1315:
				case 1316:
				case 1317:
				case 1318:
				case 1319:
				case 1320:
				case 1321:
				case 1322:
				case 1323:
				case 1325:
				case 1326:
				case 1327:
				case 1328:
				case 1329:
				case 1330:
				case 1331:
				case 1332:
				case 1333:
				case 1334:
				case 1335:
				case 1336:
				case 1337:
				case 1338:
				case 1339:
				case 1340:
				case 1341:
				case 1342:
				case 1343:
				case 1344:
				case 1345:
				case 1346:
				case 1347:
				case 1348:
				case 1349:
				case 1350:
				case 1351:
				case 1352:
				case 1353:
				case 1354:
				case 1355:
				case 1356:
				case 1357:
				case 1358:
				case 1359:
				case 1360:
				case 1361:
				case 1362:
				case 1363:
				case 1364:
				case 1365:
				case 1366:
				case 1367:
				case 1368:
				case 1369:
				case 1370:
				case 1371:
				case 1372:
				case 1373:
				case 1374:
				case 1375:
				case 1376:
				case 1377:
				case 1378:
				case 1379:
				case 1380:
				case 1381:
				case 1382:
				case 1383:
				case 1384:
				case 1385:
				case 1386:
				case 1387:
				case 1388:
				case 1389:
				case 1390:
				case 1391:
				case 1392:
				case 1393:
				case 1394:
				case 1395:
				case 1396:
				case 1397:
				case 1399:
				case 1400:
				case 1401:
				case 1402:
				case 1403:
				case 1404:
				case 1405:
				case 1406:
				case 1407:
				case 1408:
				case 1409:
				case 1410:
				case 1411:
				case 1412:
				case 1413:
				case 1414:
				case 1416:
				case 1417:
				case 1418:
				case 1419:
				case 1420:
				case 1421:
				case 1422:
				case 1423:
				case 1424:
				case 1425:
				case 1426:
				case 1427:
				case 1428:
				case 1429:
				case 1430:
				case 1431:
				case 1432:
				case 1433:
				case 1435:
				case 1436:
				case 1437:
				case 1438:
				case 1439:
				case 1440:
				case 1441:
				case 1442:
				case 1443:
				case 1444:
				case 1445:
				case 1446:
				case 1447:
				case 1448:
				case 1449:
				case 1450:
				case 1451:
				case 1452:
				case 1453:
				case 1454:
				case 1455:
				case 1456:
				case 1457:
				case 1458:
				case 1459:
				case 1460:
				case 1461:
				case 1462:
				case 1463:
				case 1464:
				case 1465:
				case 1466:
				case 1467:
				case 1468:
				case 1469:
				case 1470:
				case 1471:
				case 1472:
				case 1473:
				case 1474:
				case 1475:
				case 1476:
				case 1477:
				case 1478:
				case 1479:
				case 1480:
				case 1481:
				case 1482:
				case 1483:
				case 1484:
				case 1485:
				case 1486:
				case 1487:
				case 1488:
				case 1489:
				case 1491:
				case 1492:
				case 1493:
				case 1494:
				case 1495:
				case 1496:
				case 1497:
				case 1499:
				case 1500:
				case 1501:
				case 1502:
				case 1503:
				case 1504:
				case 1505:
				case 1506:
				case 1507:
				case 1508:
				case 1509:
				case 1510:
				case 1511:
				case 1512:
				case 1513:
				case 1514:
				case 1515:
				case 1516:
				case 1518:
				case 1519:
				case 1520:
				case 1521:
				case 1522:
				case 1523:
				case 1524:
				case 1525:
				case 1526:
				case 1527:
				case 1528:
				case 1529:
				case 1530:
				case 1531:
				case 1532:
				case 1533:
				case 1534:
				case 1536:
				case 1537:
				case 1538:
				case 1539:
				case 1540:
				case 1541:
				case 1542:
				case 1543:
				case 1544:
				case 1545:
				case 1546:
				case 1547:
				case 1548:
				case 1549:
				case 1550:
				case 1551:
				case 1552:
				case 1553:
				case 1554:
				case 1555:
				case 1556:
				case 1557:
				case 1558:
				case 1559:
				case 1560:
				case 1561:
				case 1562:
				case 1563:
				case 1564:
				case 1565:
				case 1566:
				case 1567:
				case 1568:
				case 1570:
				case 1571:
				case 1572:
				case 1573:
				case 1574:
				case 1575:
				case 1576:
				case 1577:
				case 1578:
				case 1579:
				case 1580:
				case 1581:
				case 1582:
				case 1583:
				case 1584:
				case 1585:
				case 1586:
				case 1587:
				case 1588:
				case 1589:
				case 1590:
				case 1591:
				case 1592:
				case 1593:
				case 1594:
				case 1595:
				case 1596:
				case 1597:
				case 1598:
				case 1599:
				case 1600:
				case 1601:
				case 1602:
				case 1603:
				case 1604:
				case 1605:
				case 1606:
				case 1607:
				case 1608:
				case 1609:
				case 1610:
				case 1611:
				case 1612:
				case 1613:
				case 1614:
				case 1615:
				case 1616:
				case 1617:
				case 1618:
				case 1619:
				case 1620:
				case 1621:
				case 1622:
				case 1623:
				case 1624:
				case 1625:
				case 1626:
				case 1628:
				case 1629:
				case 1630:
				case 1631:
				case 1632:
				case 1633:
				case 1634:
				case 1635:
				case 1636:
				case 1637:
				case 1638:
				case 1639:
				case 1640:
				case 1641:
				case 1642:
				case 1643:
				case 1644:
				case 1645:
				case 1646:
				case 1647:
				case 1648:
				case 1649:
				case 1650:
				case 1651:
				case 1652:
				case 1653:
				case 1654:
				case 1655:
				case 1656:
				case 1657:
				case 1658:
				case 1659:
				case 1660:
				case 1661:
				case 1662:
				case 1663:
				case 1664:
				case 1665:
				case 1666:
				case 1667:
				case 1668:
				case 1669:
				case 1670:
				case 1671:
				case 1672:
				case 1673:
				case 1674:
				case 1675:
				case 1676:
				case 1677:
				case 1678:
				case 1679:
				case 1680:
				case 1681:
				case 1682:
				case 1683:
				case 1684:
				case 1685:
				case 1686:
				case 1687:
				case 1688:
				case 1689:
				case 1690:
				case 1691:
				case 1692:
				case 1693:
				case 1694:
				case 1695:
				case 1696:
				case 1697:
				case 1698:
				case 1699:
				case 1700:
				case 1701:
				case 1702:
				case 1703:
				case 1704:
				case 1705:
				case 1706:
				case 1707:
				case 1708:
				case 1709:
				case 1710:
				case 1711:
				case 1712:
				case 1713:
				case 1714:
				case 1715:
				case 1716:
				case 1717:
				case 1718:
				case 1719:
				case 1720:
				case 1721:
				case 1722:
				case 1723:
				case 1724:
				case 1725:
				case 1726:
				case 1727:
				case 1728:
				case 1729:
				case 1730:
				case 1731:
				case 1732:
				case 1733:
				case 1734:
				case 1735:
				case 1736:
				case 1737:
				case 1738:
				case 1739:
				case 1740:
				case 1741:
				case 1742:
				case 1743:
				case 1744:
				case 1745:
				case 1746:
				case 1747:
				case 1748:
				case 1749:
				case 1750:
				case 1751:
				case 1752:
				case 1753:
				case 1754:
				case 1755:
				case 1756:
				case 1757:
				case 1758:
				case 1759:
				case 1760:
				case 1761:
				case 1762:
				case 1763:
				case 1764:
				case 1765:
				case 1766:
				case 1767:
				case 1768:
				case 1769:
				case 1770:
				case 1771:
				case 1772:
				case 1773:
				case 1774:
				case 1775:
				case 1776:
				case 1777:
				case 1778:
				case 1779:
				case 1780:
				case 1781:
				case 1782:
				case 1783:
				case 1784:
				case 1785:
				case 1786:
				case 1787:
				case 1788:
				case 1789:
				case 1790:
				case 1791:
				case 1792:
				case 1793:
				case 1794:
				case 1795:
				case 1796:
				case 1797:
				case 1798:
				case 1799:
				case 1800:
				case 1801:
				case 1802:
				case 1803:
				case 1804:
				case 1805:
				case 1806:
				case 1807:
				case 1808:
				case 1809:
				case 1810:
				case 1811:
				case 1812:
				case 1813:
				case 1814:
				case 1815:
				case 1816:
				case 1817:
				case 1818:
				case 1819:
				case 1820:
				case 1821:
				case 1822:
				case 1823:
				case 1824:
				case 1825:
				case 1826:
				case 1827:
				case 1828:
				case 1829:
				case 1830:
				case 1831:
				case 1832:
				case 1833:
				case 1834:
				case 1835:
				case 1836:
				case 1837:
				case 1838:
				case 1839:
				case 1840:
				case 1841:
				case 1842:
				case 1843:
				case 1844:
				case 1845:
				case 1846:
				case 1847:
				case 1848:
				case 1849:
				case 1850:
				case 1851:
				case 1852:
				case 1853:
				case 1854:
				case 1855:
				case 1856:
				case 1857:
				case 1858:
				case 1859:
				case 1860:
				case 1861:
				case 1862:
				case 1863:
				case 1864:
				case 1865:
				case 1866:
				case 1867:
				case 1868:
				case 1869:
				case 1870:
				case 1871:
				case 1872:
				case 1873:
				case 1874:
				case 1875:
				case 1876:
				case 1877:
				case 1878:
				case 1879:
				case 1880:
				case 1881:
				case 1882:
				case 1883:
				case 1884:
				case 1885:
				case 1886:
				case 1887:
				case 1888:
				case 1889:
				case 1890:
				case 1891:
				case 1892:
				case 1893:
				case 1894:
				case 1895:
				case 1896:
				case 1897:
				case 1898:
				case 1899:
				case 1900:
				case 1901:
				case 1902:
				case 1903:
				case 1904:
				case 1905:
				case 1906:
				case 1907:
				case 1908:
				case 1909:
				case 1910:
				case 1911:
				case 1912:
				case 1913:
				case 1914:
				case 1915:
				case 1916:
				case 1917:
				case 1918:
				case 1919:
				case 1920:
				case 1921:
				case 1922:
				case 1923:
				case 1924:
				case 1925:
				case 1926:
				case 1927:
				case 1928:
				case 1929:
				case 1930:
				case 1931:
				case 1932:
				case 1933:
				case 1934:
				case 1935:
				case 1936:
				case 1937:
				case 1939:
				case 1940:
				case 1941:
				case 1942:
				case 1943:
				case 1944:
				case 1945:
				case 1946:
				case 1947:
				case 1948:
				case 1949:
				case 1950:
				case 1951:
				case 1952:
				case 1953:
				case 1954:
				case 1955:
				case 1956:
				case 1957:
				case 1958:
				case 1959:
				case 1960:
				case 1961:
				case 1962:
				case 1963:
				case 1965:
				case 1966:
				case 1967:
				case 1968:
				case 1969:
				case 1970:
				case 1971:
				case 1972:
				case 1973:
				case 1974:
				case 1975:
				case 1976:
				case 1977:
				case 1978:
				case 1979:
				case 1980:
				case 1981:
				case 1982:
				case 1983:
				case 1984:
				case 1985:
				case 1986:
				case 1987:
				case 1988:
				case 1989:
				case 1990:
				case 1991:
				case 1992:
				case 1993:
				case 1994:
				case 1995:
				case 1996:
				case 1997:
				case 1998:
				case 1999:
				case 2000:
				case 2003:
				case 2004:
				case 2005:
				case 2006:
				case 2007:
				case 2008:
				case 2009:
				case 2010:
				case 2011:
				case 2012:
				case 2013:
				case 2014:
				case 2015:
				case 2016:
				case 2017:
				case 2018:
				case 2019:
				case 2020:
				case 2021:
				case 2022:
				case 2023:
				case 2024:
				case 2026:
				case 2027:
				case 2028:
				case 2029:
				case 2030:
				case 2031:
				case 2032:
				case 2033:
				case 2034:
				case 2035:
				case 2036:
				case 2037:
				case 2038:
				case 2039:
				case 2040:
				case 2041:
				case 2042:
				case 2043:
				case 2044:
				case 2045:
				case 2046:
				case 2047:
				case 2048:
				case 2049:
				case 2050:
				case 2051:
				case 2052:
				case 2053:
				case 2054:
				case 2055:
				case 2056:
				case 2057:
				case 2058:
				case 2059:
				case 2060:
				case 2061:
				case 2062:
				case 2063:
				case 2064:
				case 2065:
				case 2066:
				case 2067:
				case 2068:
				case 2069:
				case 2070:
				case 2071:
				case 2072:
				case 2074:
				case 2075:
				case 2076:
				case 2077:
				case 2078:
				case 2079:
				case 2080:
				case 2081:
				case 2082:
				case 2083:
				case 2084:
				case 2085:
				case 2086:
				case 2087:
				case 2088:
				case 2089:
				case 2090:
				case 2091:
				case 2092:
				case 2093:
				case 2094:
				case 2095:
				case 2096:
				case 2097:
				case 2098:
				case 2100:
				case 2101:
				case 2102:
				case 2103:
				case 2104:
				case 2105:
				case 2106:
				case 2107:
				case 2108:
				case 2109:
				case 2110:
				case 2111:
				case 2112:
				case 2113:
				case 2115:
				case 2116:
				case 2117:
				case 2118:
				case 2119:
				case 2120:
				case 2122:
				case 2123:
				case 2124:
				case 2125:
				case 2126:
				case 2128:
				case 2129:
				case 2130:
				case 2131:
				case 2132:
				case 2133:
				case 2134:
				case 2135:
				case 2136:
				case 2137:
				case 2138:
				case 2139:
				case 2140:
				case 2141:
				case 2142:
				case 2143:
				case 2145:
				case 2146:
				case 2147:
				case 2148:
				case 2149:
				case 2150:
				case 2151:
				case 2152:
				case 2153:
				case 2154:
				case 2155:
				case 2156:
				case 2157:
				case 2158:
				case 2159:
				case 2160:
				case 2161:
				case 2162:
				case 2163:
				case 2164:
				case 2165:
				case 2166:
				case 2168:
				case 2169:
				case 2170:
				case 2171:
				case 2172:
				case 2173:
				case 2174:
				case 2175:
				case 2176:
				case 2177:
				case 2178:
				case 2179:
				case 2180:
				case 2181:
				case 2182:
				case 2183:
				case 2184:
				case 2185:
				case 2186:
				case 2187:
				case 2188:
				case 2189:
				case 2191:
				case 2192:
				case 2193:
				case 2194:
				case 2195:
				case 2196:
				case 2197:
				case 2198:
				case 2199:
				case 2200:
				case 2201:
				case 2202:
				case 2203:
				case 2204:
				case 2205:
				case 2206:
				case 2207:
				case 2208:
				case 2209:
				case 2210:
				case 2211:
				case 2216:
				case 2252:
					{
					this.state = 3329;
					this.tablespace();
					}
					break;
				case 351:
					{
					this.state = 3330;
					this.match(PlSqlParser.DEFAULT);
					}
					break;
				default:
					throw new NoViableAltException(this);
				}
				}
				break;
			case 521:
			case 779:
			case 993:
				{
				this.state = 3333;
				this.logging_clause();
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public add_hash_index_partition(): Add_hash_index_partitionContext {
		let localctx: Add_hash_index_partitionContext = new Add_hash_index_partitionContext(this, this._ctx, this.state);
		this.enterRule(localctx, 246, PlSqlParser.RULE_add_hash_index_partition);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 3336;
			this.match(PlSqlParser.ADD);
			this.state = 3337;
			this.match(PlSqlParser.PARTITION);
			this.state = 3339;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 271, this._ctx) ) {
			case 1:
				{
				this.state = 3338;
				this.partition_name();
				}
				break;
			}
			this.state = 3343;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1909) {
				{
				this.state = 3341;
				this.match(PlSqlParser.TABLESPACE);
				this.state = 3342;
				this.tablespace();
				}
			}

			this.state = 3346;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===232 || _la===953) {
				{
				this.state = 3345;
				this.key_compression();
				}
			}

			this.state = 3349;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1021 || _la===1195) {
				{
				this.state = 3348;
				this.parallel_clause();
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public coalesce_index_partition(): Coalesce_index_partitionContext {
		let localctx: Coalesce_index_partitionContext = new Coalesce_index_partitionContext(this, this._ctx, this.state);
		this.enterRule(localctx, 248, PlSqlParser.RULE_coalesce_index_partition);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 3351;
			this.match(PlSqlParser.COALESCE);
			this.state = 3352;
			this.match(PlSqlParser.PARTITION);
			this.state = 3354;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1021 || _la===1195) {
				{
				this.state = 3353;
				this.parallel_clause();
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public modify_index_partition(): Modify_index_partitionContext {
		let localctx: Modify_index_partitionContext = new Modify_index_partitionContext(this, this._ctx, this.state);
		this.enterRule(localctx, 250, PlSqlParser.RULE_modify_index_partition);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 3356;
			this.match(PlSqlParser.MODIFY);
			this.state = 3357;
			this.match(PlSqlParser.PARTITION);
			this.state = 3358;
			this.partition_name();
			this.state = 3374;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 36:
			case 232:
			case 339:
			case 521:
			case 657:
			case 779:
			case 953:
			case 993:
			case 1227:
			case 1230:
			case 1593:
				{
				this.state = 3360;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				do {
					{
					{
					this.state = 3359;
					this.modify_index_partitions_ops();
					}
					}
					this.state = 3362;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				} while (_la===36 || _la===232 || _la===339 || _la===521 || _la===657 || _la===779 || _la===953 || _la===993 || _la===1227 || _la===1230 || _la===1593);
				}
				break;
			case 1197:
				{
				this.state = 3364;
				this.match(PlSqlParser.PARAMETERS);
				this.state = 3365;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 3366;
				this.odci_parameters();
				this.state = 3367;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
				break;
			case 205:
				{
				this.state = 3369;
				this.match(PlSqlParser.COALESCE);
				}
				break;
			case 2025:
				{
				this.state = 3370;
				this.match(PlSqlParser.UPDATE);
				this.state = 3371;
				this.match(PlSqlParser.BLOCK);
				this.state = 3372;
				this.match(PlSqlParser.REFERENCES);
				}
				break;
			case 2021:
				{
				this.state = 3373;
				this.match(PlSqlParser.UNUSABLE);
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public modify_index_partitions_ops(): Modify_index_partitions_opsContext {
		let localctx: Modify_index_partitions_opsContext = new Modify_index_partitions_opsContext(this, this._ctx, this.state);
		this.enterRule(localctx, 252, PlSqlParser.RULE_modify_index_partitions_ops);
		try {
			this.state = 3381;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 339:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 3376;
				this.deallocate_unused_clause();
				}
				break;
			case 36:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 3377;
				this.allocate_extent_clause();
				}
				break;
			case 657:
			case 1227:
			case 1230:
			case 1593:
				this.enterOuterAlt(localctx, 3);
				{
				this.state = 3378;
				this.physical_attributes_clause();
				}
				break;
			case 521:
			case 779:
			case 993:
				this.enterOuterAlt(localctx, 4);
				{
				this.state = 3379;
				this.logging_clause();
				}
				break;
			case 232:
			case 953:
				this.enterOuterAlt(localctx, 5);
				{
				this.state = 3380;
				this.key_compression();
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public rename_index_partition(): Rename_index_partitionContext {
		let localctx: Rename_index_partitionContext = new Rename_index_partitionContext(this, this._ctx, this.state);
		this.enterRule(localctx, 254, PlSqlParser.RULE_rename_index_partition);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 3383;
			this.match(PlSqlParser.RENAME);
			this.state = 3388;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 1207:
				{
				this.state = 3384;
				this.match(PlSqlParser.PARTITION);
				this.state = 3385;
				this.partition_name();
				}
				break;
			case 1606:
				{
				this.state = 3386;
				this.match(PlSqlParser.SUBPARTITION);
				this.state = 3387;
				this.subpartition_name();
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
			this.state = 3390;
			this.match(PlSqlParser.TO);
			this.state = 3391;
			this.new_partition_name();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public drop_index_partition(): Drop_index_partitionContext {
		let localctx: Drop_index_partitionContext = new Drop_index_partitionContext(this, this._ctx, this.state);
		this.enterRule(localctx, 256, PlSqlParser.RULE_drop_index_partition);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 3393;
			this.match(PlSqlParser.DROP);
			this.state = 3394;
			this.match(PlSqlParser.PARTITION);
			this.state = 3395;
			this.partition_name();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public split_index_partition(): Split_index_partitionContext {
		let localctx: Split_index_partitionContext = new Split_index_partitionContext(this, this._ctx, this.state);
		this.enterRule(localctx, 258, PlSqlParser.RULE_split_index_partition);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 3397;
			this.match(PlSqlParser.SPLIT);
			this.state = 3398;
			this.match(PlSqlParser.PARTITION);
			this.state = 3399;
			this.partition_name_old();
			this.state = 3400;
			this.match(PlSqlParser.AT);
			this.state = 3401;
			this.match(PlSqlParser.LEFT_PAREN);
			this.state = 3402;
			this.literal();
			this.state = 3407;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			while (_la===2229) {
				{
				{
				this.state = 3403;
				this.match(PlSqlParser.COMMA);
				this.state = 3404;
				this.literal();
				}
				}
				this.state = 3409;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			}
			this.state = 3410;
			this.match(PlSqlParser.RIGHT_PAREN);
			this.state = 3418;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===691) {
				{
				this.state = 3411;
				this.match(PlSqlParser.INTO);
				this.state = 3412;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 3413;
				this.index_partition_description();
				this.state = 3414;
				this.match(PlSqlParser.COMMA);
				this.state = 3415;
				this.index_partition_description();
				this.state = 3416;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
			}

			this.state = 3421;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1021 || _la===1195) {
				{
				this.state = 3420;
				this.parallel_clause();
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public index_partition_description(): Index_partition_descriptionContext {
		let localctx: Index_partition_descriptionContext = new Index_partition_descriptionContext(this, this._ctx, this.state);
		this.enterRule(localctx, 260, PlSqlParser.RULE_index_partition_description);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 3423;
			this.match(PlSqlParser.PARTITION);
			this.state = 3441;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & 2684286839) !== 0) || ((((_la - 64)) & ~0x1F) === 0 && ((1 << (_la - 64)) & 3220168703) !== 0) || ((((_la - 96)) & ~0x1F) === 0 && ((1 << (_la - 96)) & 4294965247) !== 0) || ((((_la - 128)) & ~0x1F) === 0 && ((1 << (_la - 128)) & 2147221503) !== 0) || ((((_la - 160)) & ~0x1F) === 0 && ((1 << (_la - 160)) & 4293910527) !== 0) || ((((_la - 192)) & ~0x1F) === 0 && ((1 << (_la - 192)) & 4294967295) !== 0) || ((((_la - 224)) & ~0x1F) === 0 && ((1 << (_la - 224)) & 4160749311) !== 0) || ((((_la - 256)) & ~0x1F) === 0 && ((1 << (_la - 256)) & 4294967295) !== 0) || ((((_la - 289)) & ~0x1F) === 0 && ((1 << (_la - 289)) & 2147483647) !== 0) || ((((_la - 321)) & ~0x1F) === 0 && ((1 << (_la - 321)) & 3221225407) !== 0) || ((((_la - 353)) & ~0x1F) === 0 && ((1 << (_la - 353)) & 4294705151) !== 0) || ((((_la - 385)) & ~0x1F) === 0 && ((1 << (_la - 385)) & 2080372479) !== 0) || ((((_la - 417)) & ~0x1F) === 0 && ((1 << (_la - 417)) & 4026433535) !== 0) || ((((_la - 449)) & ~0x1F) === 0 && ((1 << (_la - 449)) & 4261412863) !== 0) || ((((_la - 481)) & ~0x1F) === 0 && ((1 << (_la - 481)) & 4294967295) !== 0) || ((((_la - 513)) & ~0x1F) === 0 && ((1 << (_la - 513)) & 4294967295) !== 0) || ((((_la - 545)) & ~0x1F) === 0 && ((1 << (_la - 545)) & 3925868029) !== 0) || ((((_la - 577)) & ~0x1F) === 0 && ((1 << (_la - 577)) & 4278189823) !== 0) || ((((_la - 609)) & ~0x1F) === 0 && ((1 << (_la - 609)) & 4290772991) !== 0) || ((((_la - 641)) & ~0x1F) === 0 && ((1 << (_la - 641)) & 4026529791) !== 0) || ((((_la - 673)) & ~0x1F) === 0 && ((1 << (_la - 673)) & 4290478079) !== 0) || ((((_la - 705)) & ~0x1F) === 0 && ((1 << (_la - 705)) & 4294967295) !== 0) || ((((_la - 737)) & ~0x1F) === 0 && ((1 << (_la - 737)) & 4293918719) !== 0) || ((((_la - 769)) & ~0x1F) === 0 && ((1 << (_la - 769)) & 4294967167) !== 0) || ((((_la - 801)) & ~0x1F) === 0 && ((1 << (_la - 801)) & 4294967295) !== 0) || ((((_la - 833)) & ~0x1F) === 0 && ((1 << (_la - 833)) & 4160749055) !== 0) || ((((_la - 865)) & ~0x1F) === 0 && ((1 << (_la - 865)) & 4290772991) !== 0) || ((((_la - 897)) & ~0x1F) === 0 && ((1 << (_la - 897)) & 4294967295) !== 0) || ((((_la - 929)) & ~0x1F) === 0 && ((1 << (_la - 929)) & 4278190079) !== 0) || ((((_la - 961)) & ~0x1F) === 0 && ((1 << (_la - 961)) & 4294967295) !== 0) || ((((_la - 993)) & ~0x1F) === 0 && ((1 << (_la - 993)) & 4294967295) !== 0) || ((((_la - 1025)) & ~0x1F) === 0 && ((1 << (_la - 1025)) & 4294967295) !== 0) || ((((_la - 1057)) & ~0x1F) === 0 && ((1 << (_la - 1057)) & 2147418111) !== 0) || ((((_la - 1089)) & ~0x1F) === 0 && ((1 << (_la - 1089)) & 4227858175) !== 0) || ((((_la - 1121)) & ~0x1F) === 0 && ((1 << (_la - 1121)) & 4293918559) !== 0) || ((((_la - 1153)) & ~0x1F) === 0 && ((1 << (_la - 1153)) & 4294410239) !== 0) || ((((_la - 1185)) & ~0x1F) === 0 && ((1 << (_la - 1185)) & 4294965247) !== 0) || ((((_la - 1217)) & ~0x1F) === 0 && ((1 << (_la - 1217)) & 4279827455) !== 0) || ((((_la - 1249)) & ~0x1F) === 0 && ((1 << (_la - 1249)) & 4294967291) !== 0) || ((((_la - 1281)) & ~0x1F) === 0 && ((1 << (_la - 1281)) & 4227858431) !== 0) || ((((_la - 1313)) & ~0x1F) === 0 && ((1 << (_la - 1313)) & 4294965247) !== 0) || ((((_la - 1345)) & ~0x1F) === 0 && ((1 << (_la - 1345)) & 4294967295) !== 0) || ((((_la - 1377)) & ~0x1F) === 0 && ((1 << (_la - 1377)) & 4292870143) !== 0) || ((((_la - 1409)) & ~0x1F) === 0 && ((1 << (_la - 1409)) & 4261412799) !== 0) || ((((_la - 1441)) & ~0x1F) === 0 && ((1 << (_la - 1441)) & 4294967295) !== 0) || ((((_la - 1473)) & ~0x1F) === 0 && ((1 << (_la - 1473)) & 4261281791) !== 0) || ((((_la - 1505)) & ~0x1F) === 0 && ((1 << (_la - 1505)) & 3221221375) !== 0) || ((((_la - 1537)) & ~0x1F) === 0 && ((1 << (_la - 1537)) & 4294967295) !== 0) || ((((_la - 1570)) & ~0x1F) === 0 && ((1 << (_la - 1570)) & 4294967295) !== 0) || ((((_la - 1602)) & ~0x1F) === 0 && ((1 << (_la - 1602)) & 4261412863) !== 0) || ((((_la - 1634)) & ~0x1F) === 0 && ((1 << (_la - 1634)) & 4294967295) !== 0) || ((((_la - 1666)) & ~0x1F) === 0 && ((1 << (_la - 1666)) & 4294967295) !== 0) || ((((_la - 1698)) & ~0x1F) === 0 && ((1 << (_la - 1698)) & 4294967295) !== 0) || ((((_la - 1730)) & ~0x1F) === 0 && ((1 << (_la - 1730)) & 4294967295) !== 0) || ((((_la - 1762)) & ~0x1F) === 0 && ((1 << (_la - 1762)) & 4294967295) !== 0) || ((((_la - 1794)) & ~0x1F) === 0 && ((1 << (_la - 1794)) & 4294967295) !== 0) || ((((_la - 1826)) & ~0x1F) === 0 && ((1 << (_la - 1826)) & 4294967295) !== 0) || ((((_la - 1858)) & ~0x1F) === 0 && ((1 << (_la - 1858)) & 4294967295) !== 0) || ((((_la - 1890)) & ~0x1F) === 0 && ((1 << (_la - 1890)) & 4294967295) !== 0) || ((((_la - 1922)) & ~0x1F) === 0 && ((1 << (_la - 1922)) & 4294901759) !== 0) || ((((_la - 1954)) & ~0x1F) === 0 && ((1 << (_la - 1954)) & 4294966271) !== 0) || ((((_la - 1986)) & ~0x1F) === 0 && ((1 << (_la - 1986)) & 4294868991) !== 0) || ((((_la - 2018)) & ~0x1F) === 0 && ((1 << (_la - 2018)) & 4294967167) !== 0) || ((((_la - 2050)) & ~0x1F) === 0 && ((1 << (_la - 2050)) & 4286578687) !== 0) || ((((_la - 2082)) & ~0x1F) === 0 && ((1 << (_la - 2082)) & 4294836223) !== 0) || ((((_la - 2115)) & ~0x1F) === 0 && ((1 << (_la - 2115)) & 3758092223) !== 0) || ((((_la - 2147)) & ~0x1F) === 0 && ((1 << (_la - 2147)) & 4293918719) !== 0) || ((((_la - 2179)) & ~0x1F) === 0 && ((1 << (_la - 2179)) & 4294965247) !== 0) || _la===2211 || _la===2216 || _la===2252) {
				{
				this.state = 3424;
				this.partition_name();
				this.state = 3436;
				this._errHandler.sync(this);
				switch (this._input.LA(1)) {
				case 232:
				case 521:
				case 657:
				case 779:
				case 953:
				case 993:
				case 1227:
				case 1230:
				case 1593:
				case 1909:
					{
					this.state = 3427;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
					do {
						{
						this.state = 3427;
						this._errHandler.sync(this);
						switch (this._input.LA(1)) {
						case 521:
						case 657:
						case 779:
						case 993:
						case 1227:
						case 1230:
						case 1593:
						case 1909:
							{
							this.state = 3425;
							this.segment_attributes_clause();
							}
							break;
						case 232:
						case 953:
							{
							this.state = 3426;
							this.key_compression();
							}
							break;
						default:
							throw new NoViableAltException(this);
						}
						}
						this.state = 3429;
						this._errHandler.sync(this);
						_la = this._input.LA(1);
					} while (_la===232 || _la===521 || _la===657 || _la===779 || _la===953 || _la===993 || _la===1227 || _la===1230 || _la===1593 || _la===1909);
					}
					break;
				case 1197:
					{
					this.state = 3431;
					this.match(PlSqlParser.PARAMETERS);
					this.state = 3432;
					this.match(PlSqlParser.LEFT_PAREN);
					this.state = 3433;
					this.odci_parameters();
					this.state = 3434;
					this.match(PlSqlParser.RIGHT_PAREN);
					}
					break;
				default:
					throw new NoViableAltException(this);
				}
				this.state = 3439;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===2021) {
					{
					this.state = 3438;
					this.match(PlSqlParser.UNUSABLE);
					}
				}

				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public modify_index_subpartition(): Modify_index_subpartitionContext {
		let localctx: Modify_index_subpartitionContext = new Modify_index_subpartitionContext(this, this._ctx, this.state);
		this.enterRule(localctx, 262, PlSqlParser.RULE_modify_index_subpartition);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 3443;
			this.match(PlSqlParser.MODIFY);
			this.state = 3444;
			this.match(PlSqlParser.SUBPARTITION);
			this.state = 3445;
			this.subpartition_name();
			this.state = 3449;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 2021:
				{
				this.state = 3446;
				this.match(PlSqlParser.UNUSABLE);
				}
				break;
			case 36:
				{
				this.state = 3447;
				this.allocate_extent_clause();
				}
				break;
			case 339:
				{
				this.state = 3448;
				this.deallocate_unused_clause();
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public partition_name_old(): Partition_name_oldContext {
		let localctx: Partition_name_oldContext = new Partition_name_oldContext(this, this._ctx, this.state);
		this.enterRule(localctx, 264, PlSqlParser.RULE_partition_name_old);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 3451;
			this.partition_name();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public new_partition_name(): New_partition_nameContext {
		let localctx: New_partition_nameContext = new New_partition_nameContext(this, this._ctx, this.state);
		this.enterRule(localctx, 266, PlSqlParser.RULE_new_partition_name);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 3453;
			this.partition_name();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public new_index_name(): New_index_nameContext {
		let localctx: New_index_nameContext = new New_index_nameContext(this, this._ctx, this.state);
		this.enterRule(localctx, 268, PlSqlParser.RULE_new_index_name);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 3455;
			this.index_name();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public create_user(): Create_userContext {
		let localctx: Create_userContext = new Create_userContext(this, this._ctx, this.state);
		this.enterRule(localctx, 270, PlSqlParser.RULE_create_user);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 3457;
			this.match(PlSqlParser.CREATE);
			this.state = 3458;
			this.match(PlSqlParser.USER);
			this.state = 3459;
			this.user_object_name();
			this.state = 3469;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			do {
				{
				this.state = 3469;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 289, this._ctx) ) {
				case 1:
					{
					this.state = 3460;
					this.identified_by();
					}
					break;
				case 2:
					{
					this.state = 3461;
					this.identified_other_clause();
					}
					break;
				case 3:
					{
					this.state = 3462;
					this.user_tablespace_clause();
					}
					break;
				case 4:
					{
					this.state = 3463;
					this.quota_clause();
					}
					break;
				case 5:
					{
					this.state = 3464;
					this.profile_clause();
					}
					break;
				case 6:
					{
					this.state = 3465;
					this.password_expire_clause();
					}
					break;
				case 7:
					{
					this.state = 3466;
					this.user_lock_clause();
					}
					break;
				case 8:
					{
					this.state = 3467;
					this.user_editions_clause();
					}
					break;
				case 9:
					{
					this.state = 3468;
					this.container_clause();
					}
					break;
				}
				}
				this.state = 3471;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			} while (_la===5 || _la===260 || _la===351 || _la===439 || _la===601 || _la===1215 || _la===1316 || _la===1340 || _la===1920);
			this.state = 3473;
			this.match(PlSqlParser.SEMICOLON);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public alter_user(): Alter_userContext {
		let localctx: Alter_userContext = new Alter_userContext(this, this._ctx, this.state);
		this.enterRule(localctx, 272, PlSqlParser.RULE_alter_user);
		let _la: number;
		try {
			this.state = 3506;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 39:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 3475;
				this.match(PlSqlParser.ALTER);
				this.state = 3476;
				this.match(PlSqlParser.USER);
				this.state = 3477;
				this.user_object_name();
				this.state = 3489;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				do {
					{
					this.state = 3489;
					this._errHandler.sync(this);
					switch ( this._interp.adaptivePredict(this._input, 291, this._ctx) ) {
					case 1:
						{
						this.state = 3478;
						this.alter_identified_by();
						}
						break;
					case 2:
						{
						this.state = 3479;
						this.identified_other_clause();
						}
						break;
					case 3:
						{
						this.state = 3480;
						this.user_tablespace_clause();
						}
						break;
					case 4:
						{
						this.state = 3481;
						this.quota_clause();
						}
						break;
					case 5:
						{
						this.state = 3482;
						this.profile_clause();
						}
						break;
					case 6:
						{
						this.state = 3483;
						this.user_default_role_clause();
						}
						break;
					case 7:
						{
						this.state = 3484;
						this.password_expire_clause();
						}
						break;
					case 8:
						{
						this.state = 3485;
						this.user_lock_clause();
						}
						break;
					case 9:
						{
						this.state = 3486;
						this.alter_user_editions_clause();
						}
						break;
					case 10:
						{
						this.state = 3487;
						this.container_clause();
						}
						break;
					case 11:
						{
						this.state = 3488;
						this.container_data_clause();
						}
						break;
					}
					}
					this.state = 3491;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				} while (_la===5 || _la===18 || _la===260 || _la===351 || _la===439 || _la===601 || _la===1215 || _la===1316 || _la===1340 || _la===1403 || _la===1510 || _la===1920);
				this.state = 3493;
				this.match(PlSqlParser.SEMICOLON);
				}
				break;
			case 1:
			case 2:
			case 3:
			case 4:
			case 5:
			case 6:
			case 7:
			case 8:
			case 9:
			case 10:
			case 11:
			case 12:
			case 13:
			case 14:
			case 15:
			case 16:
			case 17:
			case 18:
			case 19:
			case 20:
			case 21:
			case 22:
			case 23:
			case 24:
			case 25:
			case 26:
			case 27:
			case 28:
			case 29:
			case 30:
			case 31:
			case 32:
			case 33:
			case 34:
			case 36:
			case 37:
			case 38:
			case 40:
			case 41:
			case 42:
			case 44:
			case 45:
			case 46:
			case 47:
			case 49:
			case 50:
			case 51:
			case 52:
			case 53:
			case 54:
			case 55:
			case 56:
			case 57:
			case 58:
			case 59:
			case 60:
			case 63:
			case 64:
			case 65:
			case 66:
			case 67:
			case 68:
			case 69:
			case 70:
			case 71:
			case 72:
			case 73:
			case 74:
			case 75:
			case 76:
			case 78:
			case 79:
			case 80:
			case 81:
			case 82:
			case 83:
			case 85:
			case 86:
			case 87:
			case 88:
			case 89:
			case 90:
			case 91:
			case 92:
			case 93:
			case 95:
			case 96:
			case 97:
			case 98:
			case 99:
			case 100:
			case 101:
			case 102:
			case 103:
			case 104:
			case 105:
			case 106:
			case 108:
			case 109:
			case 110:
			case 111:
			case 112:
			case 113:
			case 114:
			case 115:
			case 116:
			case 117:
			case 118:
			case 119:
			case 120:
			case 121:
			case 122:
			case 123:
			case 124:
			case 125:
			case 126:
			case 127:
			case 128:
			case 129:
			case 130:
			case 131:
			case 132:
			case 133:
			case 134:
			case 135:
			case 136:
			case 137:
			case 138:
			case 139:
			case 140:
			case 141:
			case 142:
			case 143:
			case 144:
			case 145:
			case 147:
			case 148:
			case 149:
			case 150:
			case 151:
			case 152:
			case 153:
			case 154:
			case 155:
			case 156:
			case 157:
			case 158:
			case 160:
			case 161:
			case 162:
			case 163:
			case 164:
			case 165:
			case 166:
			case 167:
			case 168:
			case 169:
			case 170:
			case 171:
			case 172:
			case 174:
			case 175:
			case 176:
			case 177:
			case 178:
			case 179:
			case 181:
			case 182:
			case 183:
			case 184:
			case 185:
			case 186:
			case 187:
			case 188:
			case 189:
			case 190:
			case 191:
			case 192:
			case 193:
			case 194:
			case 195:
			case 196:
			case 197:
			case 198:
			case 199:
			case 200:
			case 201:
			case 202:
			case 203:
			case 204:
			case 205:
			case 206:
			case 207:
			case 208:
			case 209:
			case 210:
			case 211:
			case 212:
			case 213:
			case 214:
			case 215:
			case 216:
			case 217:
			case 218:
			case 219:
			case 220:
			case 221:
			case 222:
			case 223:
			case 224:
			case 225:
			case 226:
			case 227:
			case 228:
			case 229:
			case 230:
			case 231:
			case 233:
			case 234:
			case 235:
			case 236:
			case 237:
			case 238:
			case 239:
			case 240:
			case 241:
			case 242:
			case 243:
			case 244:
			case 245:
			case 246:
			case 247:
			case 248:
			case 249:
			case 250:
			case 252:
			case 253:
			case 254:
			case 255:
			case 256:
			case 257:
			case 258:
			case 259:
			case 260:
			case 261:
			case 262:
			case 263:
			case 264:
			case 265:
			case 266:
			case 267:
			case 268:
			case 269:
			case 270:
			case 271:
			case 272:
			case 273:
			case 274:
			case 275:
			case 276:
			case 277:
			case 278:
			case 279:
			case 280:
			case 281:
			case 282:
			case 283:
			case 284:
			case 285:
			case 286:
			case 287:
			case 289:
			case 290:
			case 291:
			case 292:
			case 293:
			case 294:
			case 295:
			case 296:
			case 297:
			case 298:
			case 299:
			case 300:
			case 301:
			case 302:
			case 303:
			case 304:
			case 305:
			case 306:
			case 307:
			case 308:
			case 309:
			case 310:
			case 311:
			case 312:
			case 313:
			case 314:
			case 315:
			case 316:
			case 317:
			case 318:
			case 319:
			case 321:
			case 322:
			case 323:
			case 324:
			case 325:
			case 326:
			case 328:
			case 329:
			case 330:
			case 331:
			case 332:
			case 333:
			case 334:
			case 335:
			case 336:
			case 337:
			case 338:
			case 339:
			case 340:
			case 341:
			case 342:
			case 343:
			case 344:
			case 345:
			case 346:
			case 347:
			case 348:
			case 349:
			case 350:
			case 352:
			case 353:
			case 354:
			case 355:
			case 356:
			case 357:
			case 358:
			case 359:
			case 360:
			case 361:
			case 362:
			case 363:
			case 364:
			case 365:
			case 366:
			case 367:
			case 368:
			case 369:
			case 370:
			case 372:
			case 373:
			case 374:
			case 375:
			case 376:
			case 377:
			case 378:
			case 379:
			case 380:
			case 381:
			case 382:
			case 383:
			case 384:
			case 385:
			case 386:
			case 387:
			case 388:
			case 389:
			case 390:
			case 391:
			case 392:
			case 394:
			case 395:
			case 397:
			case 398:
			case 399:
			case 400:
			case 401:
			case 402:
			case 403:
			case 404:
			case 405:
			case 406:
			case 407:
			case 408:
			case 409:
			case 410:
			case 412:
			case 413:
			case 414:
			case 415:
			case 417:
			case 418:
			case 419:
			case 420:
			case 421:
			case 422:
			case 423:
			case 424:
			case 425:
			case 426:
			case 427:
			case 428:
			case 429:
			case 430:
			case 431:
			case 434:
			case 435:
			case 436:
			case 437:
			case 438:
			case 439:
			case 440:
			case 441:
			case 442:
			case 443:
			case 444:
			case 446:
			case 447:
			case 448:
			case 449:
			case 450:
			case 451:
			case 452:
			case 453:
			case 454:
			case 455:
			case 456:
			case 457:
			case 458:
			case 459:
			case 460:
			case 461:
			case 462:
			case 463:
			case 464:
			case 465:
			case 466:
			case 467:
			case 468:
			case 469:
			case 470:
			case 471:
			case 472:
			case 473:
			case 475:
			case 476:
			case 477:
			case 478:
			case 479:
			case 480:
			case 481:
			case 482:
			case 483:
			case 484:
			case 485:
			case 486:
			case 487:
			case 488:
			case 489:
			case 490:
			case 491:
			case 492:
			case 493:
			case 494:
			case 495:
			case 496:
			case 497:
			case 498:
			case 499:
			case 500:
			case 501:
			case 502:
			case 503:
			case 504:
			case 505:
			case 506:
			case 507:
			case 508:
			case 509:
			case 510:
			case 511:
			case 512:
			case 513:
			case 514:
			case 515:
			case 516:
			case 517:
			case 518:
			case 519:
			case 520:
			case 521:
			case 522:
			case 523:
			case 524:
			case 525:
			case 526:
			case 527:
			case 528:
			case 529:
			case 530:
			case 531:
			case 532:
			case 533:
			case 534:
			case 535:
			case 536:
			case 537:
			case 538:
			case 539:
			case 540:
			case 541:
			case 542:
			case 543:
			case 544:
			case 545:
			case 547:
			case 548:
			case 549:
			case 550:
			case 551:
			case 552:
			case 553:
			case 555:
			case 556:
			case 557:
			case 558:
			case 559:
			case 560:
			case 561:
			case 562:
			case 563:
			case 564:
			case 565:
			case 566:
			case 567:
			case 568:
			case 569:
			case 572:
			case 574:
			case 575:
			case 576:
			case 577:
			case 578:
			case 579:
			case 580:
			case 581:
			case 582:
			case 583:
			case 584:
			case 586:
			case 587:
			case 588:
			case 589:
			case 590:
			case 591:
			case 592:
			case 593:
			case 594:
			case 595:
			case 596:
			case 597:
			case 598:
			case 599:
			case 600:
			case 602:
			case 603:
			case 604:
			case 605:
			case 606:
			case 607:
			case 608:
			case 609:
			case 610:
			case 611:
			case 612:
			case 613:
			case 614:
			case 615:
			case 616:
			case 617:
			case 618:
			case 619:
			case 620:
			case 621:
			case 622:
			case 623:
			case 624:
			case 625:
			case 626:
			case 627:
			case 628:
			case 629:
			case 630:
			case 632:
			case 633:
			case 634:
			case 635:
			case 636:
			case 637:
			case 638:
			case 639:
			case 640:
			case 641:
			case 642:
			case 643:
			case 644:
			case 645:
			case 646:
			case 647:
			case 648:
			case 649:
			case 650:
			case 651:
			case 653:
			case 654:
			case 655:
			case 656:
			case 657:
			case 658:
			case 659:
			case 660:
			case 661:
			case 662:
			case 663:
			case 664:
			case 665:
			case 666:
			case 667:
			case 668:
			case 670:
			case 671:
			case 672:
			case 673:
			case 674:
			case 675:
			case 676:
			case 677:
			case 678:
			case 679:
			case 680:
			case 681:
			case 682:
			case 683:
			case 684:
			case 685:
			case 686:
			case 687:
			case 689:
			case 690:
			case 692:
			case 693:
			case 694:
			case 696:
			case 697:
			case 698:
			case 699:
			case 700:
			case 701:
			case 702:
			case 703:
			case 704:
			case 705:
			case 706:
			case 707:
			case 708:
			case 709:
			case 710:
			case 711:
			case 712:
			case 713:
			case 714:
			case 715:
			case 716:
			case 717:
			case 718:
			case 719:
			case 720:
			case 721:
			case 722:
			case 723:
			case 724:
			case 725:
			case 726:
			case 727:
			case 728:
			case 729:
			case 730:
			case 731:
			case 732:
			case 733:
			case 734:
			case 735:
			case 736:
			case 737:
			case 738:
			case 739:
			case 740:
			case 741:
			case 742:
			case 743:
			case 744:
			case 745:
			case 746:
			case 747:
			case 748:
			case 749:
			case 750:
			case 751:
			case 752:
			case 753:
			case 754:
			case 755:
			case 756:
			case 758:
			case 759:
			case 760:
			case 761:
			case 762:
			case 763:
			case 764:
			case 765:
			case 766:
			case 767:
			case 768:
			case 769:
			case 770:
			case 771:
			case 772:
			case 773:
			case 774:
			case 775:
			case 777:
			case 778:
			case 779:
			case 780:
			case 781:
			case 782:
			case 783:
			case 784:
			case 785:
			case 786:
			case 787:
			case 788:
			case 789:
			case 790:
			case 791:
			case 792:
			case 793:
			case 794:
			case 795:
			case 796:
			case 797:
			case 798:
			case 799:
			case 800:
			case 801:
			case 802:
			case 803:
			case 804:
			case 805:
			case 806:
			case 807:
			case 808:
			case 809:
			case 810:
			case 811:
			case 812:
			case 813:
			case 814:
			case 815:
			case 816:
			case 817:
			case 818:
			case 819:
			case 820:
			case 821:
			case 822:
			case 823:
			case 824:
			case 825:
			case 826:
			case 827:
			case 828:
			case 829:
			case 830:
			case 831:
			case 832:
			case 833:
			case 834:
			case 835:
			case 836:
			case 837:
			case 838:
			case 839:
			case 840:
			case 841:
			case 843:
			case 844:
			case 845:
			case 846:
			case 847:
			case 848:
			case 849:
			case 850:
			case 851:
			case 852:
			case 853:
			case 854:
			case 855:
			case 856:
			case 857:
			case 858:
			case 859:
			case 861:
			case 862:
			case 863:
			case 864:
			case 865:
			case 866:
			case 867:
			case 868:
			case 869:
			case 870:
			case 871:
			case 872:
			case 873:
			case 874:
			case 875:
			case 876:
			case 877:
			case 878:
			case 879:
			case 880:
			case 881:
			case 882:
			case 883:
			case 884:
			case 885:
			case 886:
			case 888:
			case 889:
			case 890:
			case 891:
			case 892:
			case 893:
			case 894:
			case 895:
			case 896:
			case 897:
			case 898:
			case 899:
			case 900:
			case 901:
			case 902:
			case 903:
			case 904:
			case 905:
			case 906:
			case 907:
			case 908:
			case 909:
			case 910:
			case 911:
			case 912:
			case 913:
			case 914:
			case 915:
			case 916:
			case 917:
			case 918:
			case 919:
			case 920:
			case 921:
			case 922:
			case 923:
			case 924:
			case 925:
			case 926:
			case 927:
			case 928:
			case 929:
			case 930:
			case 931:
			case 932:
			case 933:
			case 934:
			case 935:
			case 936:
			case 937:
			case 938:
			case 939:
			case 940:
			case 941:
			case 942:
			case 943:
			case 944:
			case 945:
			case 946:
			case 947:
			case 948:
			case 949:
			case 950:
			case 951:
			case 952:
			case 954:
			case 955:
			case 956:
			case 957:
			case 958:
			case 959:
			case 960:
			case 961:
			case 962:
			case 963:
			case 964:
			case 965:
			case 966:
			case 967:
			case 968:
			case 969:
			case 970:
			case 971:
			case 972:
			case 973:
			case 974:
			case 975:
			case 976:
			case 977:
			case 978:
			case 979:
			case 980:
			case 981:
			case 982:
			case 983:
			case 984:
			case 985:
			case 986:
			case 987:
			case 988:
			case 989:
			case 990:
			case 991:
			case 992:
			case 993:
			case 994:
			case 995:
			case 996:
			case 997:
			case 998:
			case 999:
			case 1000:
			case 1001:
			case 1002:
			case 1003:
			case 1004:
			case 1005:
			case 1006:
			case 1007:
			case 1008:
			case 1009:
			case 1010:
			case 1011:
			case 1012:
			case 1013:
			case 1014:
			case 1015:
			case 1016:
			case 1017:
			case 1018:
			case 1019:
			case 1020:
			case 1021:
			case 1022:
			case 1023:
			case 1024:
			case 1025:
			case 1026:
			case 1027:
			case 1028:
			case 1029:
			case 1030:
			case 1031:
			case 1032:
			case 1033:
			case 1034:
			case 1035:
			case 1036:
			case 1037:
			case 1038:
			case 1039:
			case 1040:
			case 1041:
			case 1042:
			case 1043:
			case 1044:
			case 1045:
			case 1046:
			case 1047:
			case 1048:
			case 1049:
			case 1050:
			case 1051:
			case 1052:
			case 1053:
			case 1054:
			case 1055:
			case 1056:
			case 1057:
			case 1058:
			case 1059:
			case 1060:
			case 1061:
			case 1062:
			case 1063:
			case 1064:
			case 1065:
			case 1066:
			case 1067:
			case 1068:
			case 1069:
			case 1070:
			case 1071:
			case 1072:
			case 1074:
			case 1075:
			case 1076:
			case 1077:
			case 1078:
			case 1079:
			case 1080:
			case 1081:
			case 1082:
			case 1083:
			case 1084:
			case 1085:
			case 1086:
			case 1087:
			case 1089:
			case 1090:
			case 1091:
			case 1092:
			case 1093:
			case 1094:
			case 1095:
			case 1096:
			case 1098:
			case 1099:
			case 1100:
			case 1101:
			case 1102:
			case 1103:
			case 1104:
			case 1105:
			case 1106:
			case 1107:
			case 1108:
			case 1109:
			case 1110:
			case 1111:
			case 1112:
			case 1113:
			case 1114:
			case 1116:
			case 1117:
			case 1118:
			case 1119:
			case 1120:
			case 1121:
			case 1122:
			case 1123:
			case 1124:
			case 1125:
			case 1127:
			case 1129:
			case 1130:
			case 1131:
			case 1132:
			case 1133:
			case 1134:
			case 1135:
			case 1136:
			case 1137:
			case 1138:
			case 1139:
			case 1140:
			case 1142:
			case 1143:
			case 1144:
			case 1145:
			case 1146:
			case 1147:
			case 1148:
			case 1149:
			case 1150:
			case 1151:
			case 1152:
			case 1153:
			case 1154:
			case 1155:
			case 1156:
			case 1157:
			case 1158:
			case 1159:
			case 1160:
			case 1161:
			case 1162:
			case 1163:
			case 1164:
			case 1165:
			case 1166:
			case 1167:
			case 1169:
			case 1170:
			case 1171:
			case 1173:
			case 1174:
			case 1175:
			case 1176:
			case 1177:
			case 1178:
			case 1179:
			case 1180:
			case 1181:
			case 1182:
			case 1183:
			case 1184:
			case 1185:
			case 1186:
			case 1187:
			case 1188:
			case 1189:
			case 1190:
			case 1191:
			case 1192:
			case 1193:
			case 1194:
			case 1195:
			case 1197:
			case 1198:
			case 1199:
			case 1200:
			case 1201:
			case 1202:
			case 1203:
			case 1204:
			case 1205:
			case 1206:
			case 1207:
			case 1208:
			case 1209:
			case 1210:
			case 1211:
			case 1212:
			case 1213:
			case 1214:
			case 1215:
			case 1216:
			case 1217:
			case 1218:
			case 1219:
			case 1220:
			case 1221:
			case 1222:
			case 1223:
			case 1224:
			case 1225:
			case 1226:
			case 1228:
			case 1229:
			case 1230:
			case 1231:
			case 1232:
			case 1236:
			case 1237:
			case 1241:
			case 1242:
			case 1243:
			case 1244:
			case 1245:
			case 1246:
			case 1247:
			case 1248:
			case 1249:
			case 1250:
			case 1252:
			case 1253:
			case 1254:
			case 1255:
			case 1256:
			case 1257:
			case 1258:
			case 1259:
			case 1260:
			case 1261:
			case 1262:
			case 1263:
			case 1264:
			case 1265:
			case 1266:
			case 1267:
			case 1268:
			case 1269:
			case 1270:
			case 1271:
			case 1272:
			case 1273:
			case 1274:
			case 1275:
			case 1276:
			case 1277:
			case 1278:
			case 1279:
			case 1280:
			case 1281:
			case 1282:
			case 1283:
			case 1284:
			case 1285:
			case 1286:
			case 1287:
			case 1288:
			case 1289:
			case 1290:
			case 1291:
			case 1292:
			case 1293:
			case 1294:
			case 1295:
			case 1296:
			case 1297:
			case 1298:
			case 1299:
			case 1300:
			case 1301:
			case 1302:
			case 1303:
			case 1304:
			case 1305:
			case 1306:
			case 1308:
			case 1309:
			case 1310:
			case 1311:
			case 1312:
			case 1313:
			case 1314:
			case 1315:
			case 1316:
			case 1317:
			case 1318:
			case 1319:
			case 1320:
			case 1321:
			case 1322:
			case 1323:
			case 1325:
			case 1326:
			case 1327:
			case 1328:
			case 1329:
			case 1330:
			case 1331:
			case 1332:
			case 1333:
			case 1334:
			case 1335:
			case 1336:
			case 1337:
			case 1338:
			case 1339:
			case 1340:
			case 1341:
			case 1342:
			case 1343:
			case 1344:
			case 1345:
			case 1346:
			case 1347:
			case 1348:
			case 1349:
			case 1350:
			case 1351:
			case 1352:
			case 1353:
			case 1354:
			case 1355:
			case 1356:
			case 1357:
			case 1358:
			case 1359:
			case 1360:
			case 1361:
			case 1362:
			case 1363:
			case 1364:
			case 1365:
			case 1366:
			case 1367:
			case 1368:
			case 1369:
			case 1370:
			case 1371:
			case 1372:
			case 1373:
			case 1374:
			case 1375:
			case 1376:
			case 1377:
			case 1378:
			case 1379:
			case 1380:
			case 1381:
			case 1382:
			case 1383:
			case 1384:
			case 1385:
			case 1386:
			case 1387:
			case 1388:
			case 1389:
			case 1390:
			case 1391:
			case 1392:
			case 1393:
			case 1394:
			case 1395:
			case 1396:
			case 1397:
			case 1399:
			case 1400:
			case 1401:
			case 1402:
			case 1403:
			case 1404:
			case 1405:
			case 1406:
			case 1407:
			case 1408:
			case 1409:
			case 1410:
			case 1411:
			case 1412:
			case 1413:
			case 1414:
			case 1416:
			case 1417:
			case 1418:
			case 1419:
			case 1420:
			case 1421:
			case 1422:
			case 1423:
			case 1424:
			case 1425:
			case 1426:
			case 1427:
			case 1428:
			case 1429:
			case 1430:
			case 1431:
			case 1432:
			case 1433:
			case 1435:
			case 1436:
			case 1437:
			case 1438:
			case 1439:
			case 1440:
			case 1441:
			case 1442:
			case 1443:
			case 1444:
			case 1445:
			case 1446:
			case 1447:
			case 1448:
			case 1449:
			case 1450:
			case 1451:
			case 1452:
			case 1453:
			case 1454:
			case 1455:
			case 1456:
			case 1457:
			case 1458:
			case 1459:
			case 1460:
			case 1461:
			case 1462:
			case 1463:
			case 1464:
			case 1465:
			case 1466:
			case 1467:
			case 1468:
			case 1469:
			case 1470:
			case 1471:
			case 1472:
			case 1473:
			case 1474:
			case 1475:
			case 1476:
			case 1477:
			case 1478:
			case 1479:
			case 1480:
			case 1481:
			case 1482:
			case 1483:
			case 1484:
			case 1485:
			case 1486:
			case 1487:
			case 1488:
			case 1489:
			case 1491:
			case 1492:
			case 1493:
			case 1494:
			case 1495:
			case 1496:
			case 1497:
			case 1499:
			case 1500:
			case 1501:
			case 1502:
			case 1503:
			case 1504:
			case 1505:
			case 1506:
			case 1507:
			case 1508:
			case 1509:
			case 1510:
			case 1511:
			case 1512:
			case 1513:
			case 1514:
			case 1515:
			case 1516:
			case 1518:
			case 1519:
			case 1520:
			case 1521:
			case 1522:
			case 1523:
			case 1524:
			case 1525:
			case 1526:
			case 1527:
			case 1528:
			case 1529:
			case 1530:
			case 1531:
			case 1532:
			case 1533:
			case 1534:
			case 1536:
			case 1537:
			case 1538:
			case 1539:
			case 1540:
			case 1541:
			case 1542:
			case 1543:
			case 1544:
			case 1545:
			case 1546:
			case 1547:
			case 1548:
			case 1549:
			case 1550:
			case 1551:
			case 1552:
			case 1553:
			case 1554:
			case 1555:
			case 1556:
			case 1557:
			case 1558:
			case 1559:
			case 1560:
			case 1561:
			case 1562:
			case 1563:
			case 1564:
			case 1565:
			case 1566:
			case 1567:
			case 1568:
			case 1570:
			case 1571:
			case 1572:
			case 1573:
			case 1574:
			case 1575:
			case 1576:
			case 1577:
			case 1578:
			case 1579:
			case 1580:
			case 1581:
			case 1582:
			case 1583:
			case 1584:
			case 1585:
			case 1586:
			case 1587:
			case 1588:
			case 1589:
			case 1590:
			case 1591:
			case 1592:
			case 1593:
			case 1594:
			case 1595:
			case 1596:
			case 1597:
			case 1598:
			case 1599:
			case 1600:
			case 1601:
			case 1602:
			case 1603:
			case 1604:
			case 1605:
			case 1606:
			case 1607:
			case 1608:
			case 1609:
			case 1610:
			case 1611:
			case 1612:
			case 1613:
			case 1614:
			case 1615:
			case 1616:
			case 1617:
			case 1618:
			case 1619:
			case 1620:
			case 1621:
			case 1622:
			case 1623:
			case 1624:
			case 1625:
			case 1626:
			case 1628:
			case 1629:
			case 1630:
			case 1631:
			case 1632:
			case 1633:
			case 1634:
			case 1635:
			case 1636:
			case 1637:
			case 1638:
			case 1639:
			case 1640:
			case 1641:
			case 1642:
			case 1643:
			case 1644:
			case 1645:
			case 1646:
			case 1647:
			case 1648:
			case 1649:
			case 1650:
			case 1651:
			case 1652:
			case 1653:
			case 1654:
			case 1655:
			case 1656:
			case 1657:
			case 1658:
			case 1659:
			case 1660:
			case 1661:
			case 1662:
			case 1663:
			case 1664:
			case 1665:
			case 1666:
			case 1667:
			case 1668:
			case 1669:
			case 1670:
			case 1671:
			case 1672:
			case 1673:
			case 1674:
			case 1675:
			case 1676:
			case 1677:
			case 1678:
			case 1679:
			case 1680:
			case 1681:
			case 1682:
			case 1683:
			case 1684:
			case 1685:
			case 1686:
			case 1687:
			case 1688:
			case 1689:
			case 1690:
			case 1691:
			case 1692:
			case 1693:
			case 1694:
			case 1695:
			case 1696:
			case 1697:
			case 1698:
			case 1699:
			case 1700:
			case 1701:
			case 1702:
			case 1703:
			case 1704:
			case 1705:
			case 1706:
			case 1707:
			case 1708:
			case 1709:
			case 1710:
			case 1711:
			case 1712:
			case 1713:
			case 1714:
			case 1715:
			case 1716:
			case 1717:
			case 1718:
			case 1719:
			case 1720:
			case 1721:
			case 1722:
			case 1723:
			case 1724:
			case 1725:
			case 1726:
			case 1727:
			case 1728:
			case 1729:
			case 1730:
			case 1731:
			case 1732:
			case 1733:
			case 1734:
			case 1735:
			case 1736:
			case 1737:
			case 1738:
			case 1739:
			case 1740:
			case 1741:
			case 1742:
			case 1743:
			case 1744:
			case 1745:
			case 1746:
			case 1747:
			case 1748:
			case 1749:
			case 1750:
			case 1751:
			case 1752:
			case 1753:
			case 1754:
			case 1755:
			case 1756:
			case 1757:
			case 1758:
			case 1759:
			case 1760:
			case 1761:
			case 1762:
			case 1763:
			case 1764:
			case 1765:
			case 1766:
			case 1767:
			case 1768:
			case 1769:
			case 1770:
			case 1771:
			case 1772:
			case 1773:
			case 1774:
			case 1775:
			case 1776:
			case 1777:
			case 1778:
			case 1779:
			case 1780:
			case 1781:
			case 1782:
			case 1783:
			case 1784:
			case 1785:
			case 1786:
			case 1787:
			case 1788:
			case 1789:
			case 1790:
			case 1791:
			case 1792:
			case 1793:
			case 1794:
			case 1795:
			case 1796:
			case 1797:
			case 1798:
			case 1799:
			case 1800:
			case 1801:
			case 1802:
			case 1803:
			case 1804:
			case 1805:
			case 1806:
			case 1807:
			case 1808:
			case 1809:
			case 1810:
			case 1811:
			case 1812:
			case 1813:
			case 1814:
			case 1815:
			case 1816:
			case 1817:
			case 1818:
			case 1819:
			case 1820:
			case 1821:
			case 1822:
			case 1823:
			case 1824:
			case 1825:
			case 1826:
			case 1827:
			case 1828:
			case 1829:
			case 1830:
			case 1831:
			case 1832:
			case 1833:
			case 1834:
			case 1835:
			case 1836:
			case 1837:
			case 1838:
			case 1839:
			case 1840:
			case 1841:
			case 1842:
			case 1843:
			case 1844:
			case 1845:
			case 1846:
			case 1847:
			case 1848:
			case 1849:
			case 1850:
			case 1851:
			case 1852:
			case 1853:
			case 1854:
			case 1855:
			case 1856:
			case 1857:
			case 1858:
			case 1859:
			case 1860:
			case 1861:
			case 1862:
			case 1863:
			case 1864:
			case 1865:
			case 1866:
			case 1867:
			case 1868:
			case 1869:
			case 1870:
			case 1871:
			case 1872:
			case 1873:
			case 1874:
			case 1875:
			case 1876:
			case 1877:
			case 1878:
			case 1879:
			case 1880:
			case 1881:
			case 1882:
			case 1883:
			case 1884:
			case 1885:
			case 1886:
			case 1887:
			case 1888:
			case 1889:
			case 1890:
			case 1891:
			case 1892:
			case 1893:
			case 1894:
			case 1895:
			case 1896:
			case 1897:
			case 1898:
			case 1899:
			case 1900:
			case 1901:
			case 1902:
			case 1903:
			case 1904:
			case 1905:
			case 1906:
			case 1907:
			case 1908:
			case 1909:
			case 1910:
			case 1911:
			case 1912:
			case 1913:
			case 1914:
			case 1915:
			case 1916:
			case 1917:
			case 1918:
			case 1919:
			case 1920:
			case 1921:
			case 1922:
			case 1923:
			case 1924:
			case 1925:
			case 1926:
			case 1927:
			case 1928:
			case 1929:
			case 1930:
			case 1931:
			case 1932:
			case 1933:
			case 1934:
			case 1935:
			case 1936:
			case 1937:
			case 1939:
			case 1940:
			case 1941:
			case 1942:
			case 1943:
			case 1944:
			case 1945:
			case 1946:
			case 1947:
			case 1948:
			case 1949:
			case 1950:
			case 1951:
			case 1952:
			case 1953:
			case 1954:
			case 1955:
			case 1956:
			case 1957:
			case 1958:
			case 1959:
			case 1960:
			case 1961:
			case 1962:
			case 1963:
			case 1965:
			case 1966:
			case 1967:
			case 1968:
			case 1969:
			case 1970:
			case 1971:
			case 1972:
			case 1973:
			case 1974:
			case 1975:
			case 1976:
			case 1977:
			case 1978:
			case 1979:
			case 1980:
			case 1981:
			case 1982:
			case 1983:
			case 1984:
			case 1985:
			case 1986:
			case 1987:
			case 1988:
			case 1989:
			case 1990:
			case 1991:
			case 1992:
			case 1993:
			case 1994:
			case 1995:
			case 1996:
			case 1997:
			case 1998:
			case 1999:
			case 2000:
			case 2003:
			case 2004:
			case 2005:
			case 2006:
			case 2007:
			case 2008:
			case 2009:
			case 2010:
			case 2011:
			case 2012:
			case 2013:
			case 2014:
			case 2015:
			case 2016:
			case 2017:
			case 2018:
			case 2019:
			case 2020:
			case 2021:
			case 2022:
			case 2023:
			case 2024:
			case 2026:
			case 2027:
			case 2028:
			case 2029:
			case 2030:
			case 2031:
			case 2032:
			case 2033:
			case 2034:
			case 2035:
			case 2036:
			case 2037:
			case 2038:
			case 2039:
			case 2040:
			case 2041:
			case 2042:
			case 2043:
			case 2044:
			case 2045:
			case 2046:
			case 2047:
			case 2048:
			case 2049:
			case 2050:
			case 2051:
			case 2052:
			case 2053:
			case 2054:
			case 2055:
			case 2056:
			case 2057:
			case 2058:
			case 2059:
			case 2060:
			case 2061:
			case 2062:
			case 2063:
			case 2064:
			case 2065:
			case 2066:
			case 2067:
			case 2068:
			case 2069:
			case 2070:
			case 2071:
			case 2072:
			case 2074:
			case 2075:
			case 2076:
			case 2077:
			case 2078:
			case 2079:
			case 2080:
			case 2081:
			case 2082:
			case 2083:
			case 2084:
			case 2085:
			case 2086:
			case 2087:
			case 2088:
			case 2089:
			case 2090:
			case 2091:
			case 2092:
			case 2093:
			case 2094:
			case 2095:
			case 2096:
			case 2097:
			case 2098:
			case 2100:
			case 2101:
			case 2102:
			case 2103:
			case 2104:
			case 2105:
			case 2106:
			case 2107:
			case 2108:
			case 2109:
			case 2110:
			case 2111:
			case 2112:
			case 2113:
			case 2115:
			case 2116:
			case 2117:
			case 2118:
			case 2119:
			case 2120:
			case 2122:
			case 2123:
			case 2124:
			case 2125:
			case 2126:
			case 2128:
			case 2129:
			case 2130:
			case 2131:
			case 2132:
			case 2133:
			case 2134:
			case 2135:
			case 2136:
			case 2137:
			case 2138:
			case 2139:
			case 2140:
			case 2141:
			case 2142:
			case 2143:
			case 2145:
			case 2146:
			case 2147:
			case 2148:
			case 2149:
			case 2150:
			case 2151:
			case 2152:
			case 2153:
			case 2154:
			case 2155:
			case 2156:
			case 2157:
			case 2158:
			case 2159:
			case 2160:
			case 2161:
			case 2162:
			case 2163:
			case 2164:
			case 2165:
			case 2166:
			case 2168:
			case 2169:
			case 2170:
			case 2171:
			case 2172:
			case 2173:
			case 2174:
			case 2175:
			case 2176:
			case 2177:
			case 2178:
			case 2179:
			case 2180:
			case 2181:
			case 2182:
			case 2183:
			case 2184:
			case 2185:
			case 2186:
			case 2187:
			case 2188:
			case 2189:
			case 2191:
			case 2192:
			case 2193:
			case 2194:
			case 2195:
			case 2196:
			case 2197:
			case 2198:
			case 2199:
			case 2200:
			case 2201:
			case 2202:
			case 2203:
			case 2204:
			case 2205:
			case 2206:
			case 2207:
			case 2208:
			case 2209:
			case 2210:
			case 2211:
			case 2216:
			case 2220:
			case 2252:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 3495;
				this.user_object_name();
				this.state = 3500;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===2229) {
					{
					{
					this.state = 3496;
					this.match(PlSqlParser.COMMA);
					this.state = 3497;
					this.user_object_name();
					}
					}
					this.state = 3502;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				this.state = 3503;
				this.proxy_clause();
				this.state = 3504;
				this.match(PlSqlParser.SEMICOLON);
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public alter_identified_by(): Alter_identified_byContext {
		let localctx: Alter_identified_byContext = new Alter_identified_byContext(this, this._ctx, this.state);
		this.enterRule(localctx, 274, PlSqlParser.RULE_alter_identified_by);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 3508;
			this.identified_by();
			this.state = 3511;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1407) {
				{
				this.state = 3509;
				this.match(PlSqlParser.REPLACE);
				this.state = 3510;
				this.id_expression();
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public identified_by(): Identified_byContext {
		let localctx: Identified_byContext = new Identified_byContext(this, this._ctx, this.state);
		this.enterRule(localctx, 276, PlSqlParser.RULE_identified_by);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 3513;
			this.match(PlSqlParser.IDENTIFIED);
			this.state = 3514;
			this.match(PlSqlParser.BY);
			this.state = 3515;
			this.id_expression();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public identified_other_clause(): Identified_other_clauseContext {
		let localctx: Identified_other_clauseContext = new Identified_other_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 278, PlSqlParser.RULE_identified_other_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 3517;
			this.match(PlSqlParser.IDENTIFIED);
			this.state = 3518;
			_la = this._input.LA(1);
			if(!(_la===494 || _la===567)) {
			this._errHandler.recoverInline(this);
			}
			else {
				this._errHandler.reportMatch(this);
			    this.consume();
			}
			this.state = 3521;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===61) {
				{
				this.state = 3519;
				this.match(PlSqlParser.AS);
				this.state = 3520;
				this.quoted_string();
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public user_tablespace_clause(): User_tablespace_clauseContext {
		let localctx: User_tablespace_clauseContext = new User_tablespace_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 280, PlSqlParser.RULE_user_tablespace_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 3523;
			_la = this._input.LA(1);
			if(!(_la===351 || _la===1920)) {
			this._errHandler.recoverInline(this);
			}
			else {
				this._errHandler.reportMatch(this);
			    this.consume();
			}
			this.state = 3524;
			this.match(PlSqlParser.TABLESPACE);
			this.state = 3525;
			this.id_expression();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public quota_clause(): Quota_clauseContext {
		let localctx: Quota_clauseContext = new Quota_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 282, PlSqlParser.RULE_quota_clause);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 3527;
			this.match(PlSqlParser.QUOTA);
			this.state = 3530;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 2217:
				{
				this.state = 3528;
				this.size_clause();
				}
				break;
			case 2004:
				{
				this.state = 3529;
				this.match(PlSqlParser.UNLIMITED);
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
			this.state = 3532;
			this.match(PlSqlParser.ON);
			this.state = 3533;
			this.id_expression();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public profile_clause(): Profile_clauseContext {
		let localctx: Profile_clauseContext = new Profile_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 284, PlSqlParser.RULE_profile_clause);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 3535;
			this.match(PlSqlParser.PROFILE);
			this.state = 3536;
			this.id_expression();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public role_clause(): Role_clauseContext {
		let localctx: Role_clauseContext = new Role_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 286, PlSqlParser.RULE_role_clause);
		let _la: number;
		try {
			this.state = 3561;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 1:
			case 2:
			case 3:
			case 4:
			case 5:
			case 6:
			case 7:
			case 8:
			case 9:
			case 10:
			case 11:
			case 12:
			case 13:
			case 14:
			case 15:
			case 16:
			case 17:
			case 18:
			case 19:
			case 20:
			case 21:
			case 22:
			case 23:
			case 24:
			case 25:
			case 26:
			case 27:
			case 28:
			case 29:
			case 30:
			case 31:
			case 32:
			case 33:
			case 34:
			case 36:
			case 37:
			case 38:
			case 40:
			case 41:
			case 42:
			case 44:
			case 45:
			case 46:
			case 47:
			case 49:
			case 50:
			case 51:
			case 52:
			case 53:
			case 54:
			case 55:
			case 56:
			case 57:
			case 58:
			case 59:
			case 60:
			case 63:
			case 64:
			case 65:
			case 66:
			case 67:
			case 68:
			case 69:
			case 70:
			case 71:
			case 72:
			case 73:
			case 74:
			case 75:
			case 76:
			case 78:
			case 79:
			case 80:
			case 81:
			case 82:
			case 83:
			case 85:
			case 86:
			case 87:
			case 88:
			case 89:
			case 90:
			case 91:
			case 92:
			case 93:
			case 95:
			case 96:
			case 97:
			case 98:
			case 99:
			case 100:
			case 101:
			case 102:
			case 103:
			case 104:
			case 105:
			case 106:
			case 108:
			case 109:
			case 110:
			case 111:
			case 112:
			case 113:
			case 114:
			case 115:
			case 116:
			case 117:
			case 118:
			case 119:
			case 120:
			case 121:
			case 122:
			case 123:
			case 124:
			case 125:
			case 126:
			case 127:
			case 128:
			case 129:
			case 130:
			case 131:
			case 132:
			case 133:
			case 134:
			case 135:
			case 136:
			case 137:
			case 138:
			case 139:
			case 140:
			case 141:
			case 142:
			case 143:
			case 144:
			case 145:
			case 147:
			case 148:
			case 149:
			case 150:
			case 151:
			case 152:
			case 153:
			case 154:
			case 155:
			case 156:
			case 157:
			case 158:
			case 160:
			case 161:
			case 162:
			case 163:
			case 164:
			case 165:
			case 166:
			case 167:
			case 168:
			case 169:
			case 170:
			case 171:
			case 172:
			case 174:
			case 175:
			case 176:
			case 177:
			case 178:
			case 179:
			case 181:
			case 182:
			case 183:
			case 184:
			case 185:
			case 186:
			case 187:
			case 188:
			case 189:
			case 190:
			case 191:
			case 192:
			case 193:
			case 194:
			case 195:
			case 196:
			case 197:
			case 198:
			case 199:
			case 200:
			case 201:
			case 202:
			case 203:
			case 204:
			case 205:
			case 206:
			case 207:
			case 208:
			case 209:
			case 210:
			case 211:
			case 212:
			case 213:
			case 214:
			case 215:
			case 216:
			case 217:
			case 218:
			case 219:
			case 220:
			case 221:
			case 222:
			case 223:
			case 224:
			case 225:
			case 226:
			case 227:
			case 228:
			case 229:
			case 230:
			case 231:
			case 233:
			case 234:
			case 235:
			case 236:
			case 237:
			case 238:
			case 239:
			case 240:
			case 241:
			case 242:
			case 243:
			case 244:
			case 245:
			case 246:
			case 247:
			case 248:
			case 249:
			case 250:
			case 251:
			case 252:
			case 253:
			case 254:
			case 255:
			case 256:
			case 257:
			case 258:
			case 259:
			case 260:
			case 261:
			case 262:
			case 263:
			case 264:
			case 265:
			case 266:
			case 267:
			case 268:
			case 269:
			case 270:
			case 271:
			case 272:
			case 273:
			case 274:
			case 275:
			case 276:
			case 277:
			case 278:
			case 279:
			case 280:
			case 281:
			case 282:
			case 283:
			case 284:
			case 285:
			case 286:
			case 287:
			case 289:
			case 290:
			case 291:
			case 292:
			case 293:
			case 294:
			case 295:
			case 296:
			case 297:
			case 298:
			case 299:
			case 300:
			case 301:
			case 302:
			case 303:
			case 304:
			case 305:
			case 306:
			case 307:
			case 308:
			case 309:
			case 310:
			case 311:
			case 312:
			case 313:
			case 314:
			case 315:
			case 316:
			case 317:
			case 318:
			case 319:
			case 321:
			case 322:
			case 323:
			case 324:
			case 325:
			case 326:
			case 328:
			case 329:
			case 330:
			case 331:
			case 332:
			case 333:
			case 334:
			case 335:
			case 336:
			case 337:
			case 338:
			case 339:
			case 340:
			case 341:
			case 342:
			case 343:
			case 344:
			case 345:
			case 346:
			case 347:
			case 348:
			case 349:
			case 350:
			case 352:
			case 353:
			case 354:
			case 355:
			case 356:
			case 357:
			case 358:
			case 359:
			case 360:
			case 361:
			case 362:
			case 363:
			case 364:
			case 365:
			case 366:
			case 367:
			case 368:
			case 369:
			case 370:
			case 372:
			case 373:
			case 374:
			case 375:
			case 376:
			case 377:
			case 378:
			case 379:
			case 380:
			case 381:
			case 382:
			case 383:
			case 384:
			case 385:
			case 386:
			case 387:
			case 388:
			case 389:
			case 390:
			case 391:
			case 392:
			case 394:
			case 395:
			case 397:
			case 398:
			case 399:
			case 400:
			case 401:
			case 402:
			case 403:
			case 404:
			case 405:
			case 406:
			case 407:
			case 408:
			case 409:
			case 410:
			case 412:
			case 413:
			case 414:
			case 415:
			case 417:
			case 418:
			case 419:
			case 420:
			case 421:
			case 422:
			case 423:
			case 424:
			case 425:
			case 426:
			case 427:
			case 428:
			case 429:
			case 430:
			case 431:
			case 434:
			case 435:
			case 436:
			case 437:
			case 438:
			case 439:
			case 440:
			case 441:
			case 442:
			case 443:
			case 444:
			case 446:
			case 447:
			case 448:
			case 449:
			case 450:
			case 451:
			case 452:
			case 453:
			case 454:
			case 455:
			case 456:
			case 457:
			case 458:
			case 459:
			case 460:
			case 461:
			case 462:
			case 463:
			case 464:
			case 465:
			case 466:
			case 467:
			case 468:
			case 469:
			case 470:
			case 471:
			case 472:
			case 473:
			case 475:
			case 476:
			case 477:
			case 478:
			case 479:
			case 480:
			case 481:
			case 482:
			case 483:
			case 484:
			case 485:
			case 486:
			case 487:
			case 488:
			case 489:
			case 490:
			case 491:
			case 492:
			case 493:
			case 494:
			case 495:
			case 496:
			case 497:
			case 498:
			case 499:
			case 500:
			case 501:
			case 502:
			case 503:
			case 504:
			case 505:
			case 506:
			case 507:
			case 508:
			case 509:
			case 510:
			case 511:
			case 512:
			case 513:
			case 514:
			case 515:
			case 516:
			case 517:
			case 518:
			case 519:
			case 520:
			case 521:
			case 522:
			case 523:
			case 524:
			case 525:
			case 526:
			case 527:
			case 528:
			case 529:
			case 530:
			case 531:
			case 532:
			case 533:
			case 534:
			case 535:
			case 536:
			case 537:
			case 538:
			case 539:
			case 540:
			case 541:
			case 542:
			case 543:
			case 544:
			case 545:
			case 547:
			case 548:
			case 549:
			case 550:
			case 551:
			case 552:
			case 553:
			case 555:
			case 556:
			case 557:
			case 558:
			case 559:
			case 560:
			case 561:
			case 562:
			case 563:
			case 564:
			case 565:
			case 566:
			case 567:
			case 568:
			case 569:
			case 572:
			case 574:
			case 575:
			case 576:
			case 577:
			case 578:
			case 579:
			case 580:
			case 581:
			case 582:
			case 583:
			case 584:
			case 586:
			case 587:
			case 588:
			case 589:
			case 590:
			case 591:
			case 592:
			case 593:
			case 594:
			case 595:
			case 596:
			case 597:
			case 598:
			case 599:
			case 600:
			case 602:
			case 603:
			case 604:
			case 605:
			case 606:
			case 607:
			case 608:
			case 609:
			case 610:
			case 611:
			case 612:
			case 613:
			case 614:
			case 615:
			case 616:
			case 617:
			case 618:
			case 619:
			case 620:
			case 621:
			case 622:
			case 623:
			case 624:
			case 625:
			case 626:
			case 627:
			case 628:
			case 629:
			case 630:
			case 632:
			case 633:
			case 634:
			case 635:
			case 636:
			case 637:
			case 638:
			case 639:
			case 640:
			case 641:
			case 642:
			case 643:
			case 644:
			case 645:
			case 646:
			case 647:
			case 648:
			case 649:
			case 650:
			case 651:
			case 653:
			case 654:
			case 655:
			case 656:
			case 657:
			case 658:
			case 659:
			case 660:
			case 661:
			case 662:
			case 663:
			case 664:
			case 665:
			case 666:
			case 667:
			case 668:
			case 670:
			case 671:
			case 672:
			case 673:
			case 674:
			case 675:
			case 676:
			case 677:
			case 678:
			case 679:
			case 680:
			case 681:
			case 682:
			case 683:
			case 684:
			case 685:
			case 686:
			case 687:
			case 689:
			case 690:
			case 692:
			case 693:
			case 694:
			case 696:
			case 697:
			case 698:
			case 699:
			case 700:
			case 701:
			case 702:
			case 703:
			case 704:
			case 705:
			case 706:
			case 707:
			case 708:
			case 709:
			case 710:
			case 711:
			case 712:
			case 713:
			case 714:
			case 715:
			case 716:
			case 717:
			case 718:
			case 719:
			case 720:
			case 721:
			case 722:
			case 723:
			case 724:
			case 725:
			case 726:
			case 727:
			case 728:
			case 729:
			case 730:
			case 731:
			case 732:
			case 733:
			case 734:
			case 735:
			case 736:
			case 737:
			case 738:
			case 739:
			case 740:
			case 741:
			case 742:
			case 743:
			case 744:
			case 745:
			case 746:
			case 747:
			case 748:
			case 749:
			case 750:
			case 751:
			case 752:
			case 753:
			case 754:
			case 755:
			case 756:
			case 758:
			case 759:
			case 760:
			case 761:
			case 762:
			case 763:
			case 764:
			case 765:
			case 766:
			case 767:
			case 768:
			case 769:
			case 770:
			case 771:
			case 772:
			case 773:
			case 774:
			case 775:
			case 777:
			case 778:
			case 779:
			case 780:
			case 781:
			case 782:
			case 783:
			case 784:
			case 785:
			case 786:
			case 787:
			case 788:
			case 789:
			case 790:
			case 791:
			case 792:
			case 793:
			case 794:
			case 795:
			case 796:
			case 797:
			case 798:
			case 799:
			case 800:
			case 801:
			case 802:
			case 803:
			case 804:
			case 805:
			case 806:
			case 807:
			case 808:
			case 809:
			case 810:
			case 811:
			case 812:
			case 813:
			case 814:
			case 815:
			case 816:
			case 817:
			case 818:
			case 819:
			case 820:
			case 821:
			case 822:
			case 823:
			case 824:
			case 825:
			case 826:
			case 827:
			case 828:
			case 829:
			case 830:
			case 831:
			case 832:
			case 833:
			case 834:
			case 835:
			case 836:
			case 837:
			case 838:
			case 839:
			case 840:
			case 841:
			case 843:
			case 844:
			case 845:
			case 846:
			case 847:
			case 848:
			case 849:
			case 850:
			case 851:
			case 852:
			case 853:
			case 854:
			case 855:
			case 856:
			case 857:
			case 858:
			case 859:
			case 861:
			case 862:
			case 863:
			case 864:
			case 865:
			case 866:
			case 867:
			case 868:
			case 869:
			case 870:
			case 871:
			case 872:
			case 873:
			case 874:
			case 875:
			case 876:
			case 877:
			case 878:
			case 879:
			case 880:
			case 881:
			case 882:
			case 883:
			case 884:
			case 885:
			case 886:
			case 888:
			case 889:
			case 890:
			case 891:
			case 892:
			case 893:
			case 894:
			case 895:
			case 896:
			case 897:
			case 898:
			case 899:
			case 900:
			case 901:
			case 902:
			case 903:
			case 904:
			case 905:
			case 906:
			case 907:
			case 908:
			case 909:
			case 910:
			case 911:
			case 912:
			case 913:
			case 914:
			case 915:
			case 916:
			case 917:
			case 918:
			case 919:
			case 920:
			case 921:
			case 922:
			case 923:
			case 924:
			case 925:
			case 926:
			case 927:
			case 928:
			case 929:
			case 930:
			case 931:
			case 932:
			case 933:
			case 934:
			case 935:
			case 936:
			case 937:
			case 938:
			case 939:
			case 940:
			case 941:
			case 942:
			case 943:
			case 944:
			case 945:
			case 946:
			case 947:
			case 948:
			case 949:
			case 950:
			case 951:
			case 952:
			case 954:
			case 955:
			case 956:
			case 957:
			case 958:
			case 959:
			case 960:
			case 961:
			case 962:
			case 963:
			case 964:
			case 965:
			case 966:
			case 967:
			case 968:
			case 969:
			case 970:
			case 971:
			case 972:
			case 973:
			case 974:
			case 975:
			case 976:
			case 977:
			case 978:
			case 979:
			case 980:
			case 981:
			case 982:
			case 983:
			case 984:
			case 985:
			case 986:
			case 987:
			case 988:
			case 989:
			case 990:
			case 991:
			case 992:
			case 993:
			case 994:
			case 995:
			case 996:
			case 997:
			case 998:
			case 999:
			case 1000:
			case 1001:
			case 1002:
			case 1003:
			case 1004:
			case 1005:
			case 1006:
			case 1007:
			case 1008:
			case 1009:
			case 1010:
			case 1011:
			case 1012:
			case 1013:
			case 1014:
			case 1015:
			case 1016:
			case 1017:
			case 1018:
			case 1019:
			case 1020:
			case 1021:
			case 1022:
			case 1023:
			case 1024:
			case 1025:
			case 1026:
			case 1027:
			case 1028:
			case 1029:
			case 1030:
			case 1031:
			case 1032:
			case 1033:
			case 1034:
			case 1035:
			case 1036:
			case 1037:
			case 1038:
			case 1039:
			case 1040:
			case 1041:
			case 1042:
			case 1043:
			case 1044:
			case 1045:
			case 1046:
			case 1047:
			case 1048:
			case 1049:
			case 1050:
			case 1051:
			case 1052:
			case 1053:
			case 1054:
			case 1055:
			case 1056:
			case 1057:
			case 1058:
			case 1059:
			case 1060:
			case 1061:
			case 1062:
			case 1063:
			case 1064:
			case 1065:
			case 1066:
			case 1067:
			case 1068:
			case 1069:
			case 1070:
			case 1071:
			case 1072:
			case 1074:
			case 1075:
			case 1076:
			case 1077:
			case 1078:
			case 1079:
			case 1080:
			case 1081:
			case 1082:
			case 1083:
			case 1084:
			case 1085:
			case 1086:
			case 1087:
			case 1089:
			case 1090:
			case 1091:
			case 1092:
			case 1093:
			case 1094:
			case 1095:
			case 1096:
			case 1098:
			case 1099:
			case 1100:
			case 1101:
			case 1102:
			case 1103:
			case 1104:
			case 1105:
			case 1106:
			case 1107:
			case 1108:
			case 1109:
			case 1110:
			case 1111:
			case 1112:
			case 1113:
			case 1114:
			case 1116:
			case 1117:
			case 1118:
			case 1119:
			case 1120:
			case 1121:
			case 1122:
			case 1123:
			case 1124:
			case 1125:
			case 1127:
			case 1129:
			case 1130:
			case 1131:
			case 1132:
			case 1133:
			case 1134:
			case 1135:
			case 1136:
			case 1137:
			case 1138:
			case 1139:
			case 1140:
			case 1142:
			case 1143:
			case 1144:
			case 1145:
			case 1146:
			case 1147:
			case 1148:
			case 1149:
			case 1150:
			case 1151:
			case 1152:
			case 1153:
			case 1154:
			case 1155:
			case 1156:
			case 1157:
			case 1158:
			case 1159:
			case 1160:
			case 1161:
			case 1162:
			case 1163:
			case 1164:
			case 1165:
			case 1166:
			case 1167:
			case 1169:
			case 1170:
			case 1171:
			case 1173:
			case 1174:
			case 1175:
			case 1176:
			case 1177:
			case 1178:
			case 1179:
			case 1180:
			case 1181:
			case 1182:
			case 1183:
			case 1184:
			case 1185:
			case 1186:
			case 1187:
			case 1188:
			case 1189:
			case 1190:
			case 1191:
			case 1192:
			case 1193:
			case 1194:
			case 1195:
			case 1197:
			case 1198:
			case 1199:
			case 1200:
			case 1201:
			case 1202:
			case 1203:
			case 1204:
			case 1205:
			case 1206:
			case 1207:
			case 1208:
			case 1209:
			case 1210:
			case 1211:
			case 1212:
			case 1213:
			case 1214:
			case 1215:
			case 1216:
			case 1217:
			case 1218:
			case 1219:
			case 1220:
			case 1221:
			case 1222:
			case 1223:
			case 1224:
			case 1225:
			case 1226:
			case 1228:
			case 1229:
			case 1230:
			case 1231:
			case 1232:
			case 1236:
			case 1237:
			case 1241:
			case 1242:
			case 1243:
			case 1244:
			case 1245:
			case 1246:
			case 1247:
			case 1248:
			case 1249:
			case 1250:
			case 1252:
			case 1253:
			case 1254:
			case 1255:
			case 1256:
			case 1257:
			case 1258:
			case 1259:
			case 1260:
			case 1261:
			case 1262:
			case 1263:
			case 1264:
			case 1265:
			case 1266:
			case 1267:
			case 1268:
			case 1269:
			case 1270:
			case 1271:
			case 1272:
			case 1273:
			case 1274:
			case 1275:
			case 1276:
			case 1277:
			case 1278:
			case 1279:
			case 1280:
			case 1281:
			case 1282:
			case 1283:
			case 1284:
			case 1285:
			case 1286:
			case 1287:
			case 1288:
			case 1289:
			case 1290:
			case 1291:
			case 1292:
			case 1293:
			case 1294:
			case 1295:
			case 1296:
			case 1297:
			case 1298:
			case 1299:
			case 1300:
			case 1301:
			case 1302:
			case 1303:
			case 1304:
			case 1305:
			case 1306:
			case 1308:
			case 1309:
			case 1310:
			case 1311:
			case 1312:
			case 1313:
			case 1314:
			case 1315:
			case 1316:
			case 1317:
			case 1318:
			case 1319:
			case 1320:
			case 1321:
			case 1322:
			case 1323:
			case 1325:
			case 1326:
			case 1327:
			case 1328:
			case 1329:
			case 1330:
			case 1331:
			case 1332:
			case 1333:
			case 1334:
			case 1335:
			case 1336:
			case 1337:
			case 1338:
			case 1339:
			case 1340:
			case 1341:
			case 1342:
			case 1343:
			case 1344:
			case 1345:
			case 1346:
			case 1347:
			case 1348:
			case 1349:
			case 1350:
			case 1351:
			case 1352:
			case 1353:
			case 1354:
			case 1355:
			case 1356:
			case 1357:
			case 1358:
			case 1359:
			case 1360:
			case 1361:
			case 1362:
			case 1363:
			case 1364:
			case 1365:
			case 1366:
			case 1367:
			case 1368:
			case 1369:
			case 1370:
			case 1371:
			case 1372:
			case 1373:
			case 1374:
			case 1375:
			case 1376:
			case 1377:
			case 1378:
			case 1379:
			case 1380:
			case 1381:
			case 1382:
			case 1383:
			case 1384:
			case 1385:
			case 1386:
			case 1387:
			case 1388:
			case 1389:
			case 1390:
			case 1391:
			case 1392:
			case 1393:
			case 1394:
			case 1395:
			case 1396:
			case 1397:
			case 1399:
			case 1400:
			case 1401:
			case 1402:
			case 1403:
			case 1404:
			case 1405:
			case 1406:
			case 1407:
			case 1408:
			case 1409:
			case 1410:
			case 1411:
			case 1412:
			case 1413:
			case 1414:
			case 1416:
			case 1417:
			case 1418:
			case 1419:
			case 1420:
			case 1421:
			case 1422:
			case 1423:
			case 1424:
			case 1425:
			case 1426:
			case 1427:
			case 1428:
			case 1429:
			case 1430:
			case 1431:
			case 1432:
			case 1433:
			case 1435:
			case 1436:
			case 1437:
			case 1438:
			case 1439:
			case 1440:
			case 1441:
			case 1442:
			case 1443:
			case 1444:
			case 1445:
			case 1446:
			case 1447:
			case 1448:
			case 1449:
			case 1450:
			case 1451:
			case 1452:
			case 1453:
			case 1454:
			case 1455:
			case 1456:
			case 1457:
			case 1458:
			case 1459:
			case 1460:
			case 1461:
			case 1462:
			case 1463:
			case 1464:
			case 1465:
			case 1466:
			case 1467:
			case 1468:
			case 1469:
			case 1470:
			case 1471:
			case 1472:
			case 1473:
			case 1474:
			case 1475:
			case 1476:
			case 1477:
			case 1478:
			case 1479:
			case 1480:
			case 1481:
			case 1482:
			case 1483:
			case 1484:
			case 1485:
			case 1486:
			case 1487:
			case 1488:
			case 1489:
			case 1491:
			case 1492:
			case 1493:
			case 1494:
			case 1495:
			case 1496:
			case 1497:
			case 1499:
			case 1500:
			case 1501:
			case 1502:
			case 1503:
			case 1504:
			case 1505:
			case 1506:
			case 1507:
			case 1508:
			case 1509:
			case 1510:
			case 1511:
			case 1512:
			case 1513:
			case 1514:
			case 1515:
			case 1516:
			case 1518:
			case 1519:
			case 1520:
			case 1521:
			case 1522:
			case 1523:
			case 1524:
			case 1525:
			case 1526:
			case 1527:
			case 1528:
			case 1529:
			case 1530:
			case 1531:
			case 1532:
			case 1533:
			case 1534:
			case 1536:
			case 1537:
			case 1538:
			case 1539:
			case 1540:
			case 1541:
			case 1542:
			case 1543:
			case 1544:
			case 1545:
			case 1546:
			case 1547:
			case 1548:
			case 1549:
			case 1550:
			case 1551:
			case 1552:
			case 1553:
			case 1554:
			case 1555:
			case 1556:
			case 1557:
			case 1558:
			case 1559:
			case 1560:
			case 1561:
			case 1562:
			case 1563:
			case 1564:
			case 1565:
			case 1566:
			case 1567:
			case 1568:
			case 1570:
			case 1571:
			case 1572:
			case 1573:
			case 1574:
			case 1575:
			case 1576:
			case 1577:
			case 1578:
			case 1579:
			case 1580:
			case 1581:
			case 1582:
			case 1583:
			case 1584:
			case 1585:
			case 1586:
			case 1587:
			case 1588:
			case 1589:
			case 1590:
			case 1591:
			case 1592:
			case 1593:
			case 1594:
			case 1595:
			case 1596:
			case 1597:
			case 1598:
			case 1599:
			case 1600:
			case 1601:
			case 1602:
			case 1603:
			case 1604:
			case 1605:
			case 1606:
			case 1607:
			case 1608:
			case 1609:
			case 1610:
			case 1611:
			case 1612:
			case 1613:
			case 1614:
			case 1615:
			case 1616:
			case 1617:
			case 1618:
			case 1619:
			case 1620:
			case 1621:
			case 1622:
			case 1623:
			case 1624:
			case 1625:
			case 1626:
			case 1628:
			case 1629:
			case 1630:
			case 1631:
			case 1632:
			case 1633:
			case 1634:
			case 1635:
			case 1636:
			case 1637:
			case 1638:
			case 1639:
			case 1640:
			case 1641:
			case 1642:
			case 1643:
			case 1644:
			case 1645:
			case 1646:
			case 1647:
			case 1648:
			case 1649:
			case 1650:
			case 1651:
			case 1652:
			case 1653:
			case 1654:
			case 1655:
			case 1656:
			case 1657:
			case 1658:
			case 1659:
			case 1660:
			case 1661:
			case 1662:
			case 1663:
			case 1664:
			case 1665:
			case 1666:
			case 1667:
			case 1668:
			case 1669:
			case 1670:
			case 1671:
			case 1672:
			case 1673:
			case 1674:
			case 1675:
			case 1676:
			case 1677:
			case 1678:
			case 1679:
			case 1680:
			case 1681:
			case 1682:
			case 1683:
			case 1684:
			case 1685:
			case 1686:
			case 1687:
			case 1688:
			case 1689:
			case 1690:
			case 1691:
			case 1692:
			case 1693:
			case 1694:
			case 1695:
			case 1696:
			case 1697:
			case 1698:
			case 1699:
			case 1700:
			case 1701:
			case 1702:
			case 1703:
			case 1704:
			case 1705:
			case 1706:
			case 1707:
			case 1708:
			case 1709:
			case 1710:
			case 1711:
			case 1712:
			case 1713:
			case 1714:
			case 1715:
			case 1716:
			case 1717:
			case 1718:
			case 1719:
			case 1720:
			case 1721:
			case 1722:
			case 1723:
			case 1724:
			case 1725:
			case 1726:
			case 1727:
			case 1728:
			case 1729:
			case 1730:
			case 1731:
			case 1732:
			case 1733:
			case 1734:
			case 1735:
			case 1736:
			case 1737:
			case 1738:
			case 1739:
			case 1740:
			case 1741:
			case 1742:
			case 1743:
			case 1744:
			case 1745:
			case 1746:
			case 1747:
			case 1748:
			case 1749:
			case 1750:
			case 1751:
			case 1752:
			case 1753:
			case 1754:
			case 1755:
			case 1756:
			case 1757:
			case 1758:
			case 1759:
			case 1760:
			case 1761:
			case 1762:
			case 1763:
			case 1764:
			case 1765:
			case 1766:
			case 1767:
			case 1768:
			case 1769:
			case 1770:
			case 1771:
			case 1772:
			case 1773:
			case 1774:
			case 1775:
			case 1776:
			case 1777:
			case 1778:
			case 1779:
			case 1780:
			case 1781:
			case 1782:
			case 1783:
			case 1784:
			case 1785:
			case 1786:
			case 1787:
			case 1788:
			case 1789:
			case 1790:
			case 1791:
			case 1792:
			case 1793:
			case 1794:
			case 1795:
			case 1796:
			case 1797:
			case 1798:
			case 1799:
			case 1800:
			case 1801:
			case 1802:
			case 1803:
			case 1804:
			case 1805:
			case 1806:
			case 1807:
			case 1808:
			case 1809:
			case 1810:
			case 1811:
			case 1812:
			case 1813:
			case 1814:
			case 1815:
			case 1816:
			case 1817:
			case 1818:
			case 1819:
			case 1820:
			case 1821:
			case 1822:
			case 1823:
			case 1824:
			case 1825:
			case 1826:
			case 1827:
			case 1828:
			case 1829:
			case 1830:
			case 1831:
			case 1832:
			case 1833:
			case 1834:
			case 1835:
			case 1836:
			case 1837:
			case 1838:
			case 1839:
			case 1840:
			case 1841:
			case 1842:
			case 1843:
			case 1844:
			case 1845:
			case 1846:
			case 1847:
			case 1848:
			case 1849:
			case 1850:
			case 1851:
			case 1852:
			case 1853:
			case 1854:
			case 1855:
			case 1856:
			case 1857:
			case 1858:
			case 1859:
			case 1860:
			case 1861:
			case 1862:
			case 1863:
			case 1864:
			case 1865:
			case 1866:
			case 1867:
			case 1868:
			case 1869:
			case 1870:
			case 1871:
			case 1872:
			case 1873:
			case 1874:
			case 1875:
			case 1876:
			case 1877:
			case 1878:
			case 1879:
			case 1880:
			case 1881:
			case 1882:
			case 1883:
			case 1884:
			case 1885:
			case 1886:
			case 1887:
			case 1888:
			case 1889:
			case 1890:
			case 1891:
			case 1892:
			case 1893:
			case 1894:
			case 1895:
			case 1896:
			case 1897:
			case 1898:
			case 1899:
			case 1900:
			case 1901:
			case 1902:
			case 1903:
			case 1904:
			case 1905:
			case 1906:
			case 1907:
			case 1908:
			case 1909:
			case 1910:
			case 1911:
			case 1912:
			case 1913:
			case 1914:
			case 1915:
			case 1916:
			case 1917:
			case 1918:
			case 1919:
			case 1920:
			case 1921:
			case 1922:
			case 1923:
			case 1924:
			case 1925:
			case 1926:
			case 1927:
			case 1928:
			case 1929:
			case 1930:
			case 1931:
			case 1932:
			case 1933:
			case 1934:
			case 1935:
			case 1936:
			case 1937:
			case 1939:
			case 1940:
			case 1941:
			case 1942:
			case 1943:
			case 1944:
			case 1945:
			case 1946:
			case 1947:
			case 1948:
			case 1949:
			case 1950:
			case 1951:
			case 1952:
			case 1953:
			case 1954:
			case 1955:
			case 1956:
			case 1957:
			case 1958:
			case 1959:
			case 1960:
			case 1961:
			case 1962:
			case 1963:
			case 1965:
			case 1966:
			case 1967:
			case 1968:
			case 1969:
			case 1970:
			case 1971:
			case 1972:
			case 1973:
			case 1974:
			case 1975:
			case 1976:
			case 1977:
			case 1978:
			case 1979:
			case 1980:
			case 1981:
			case 1982:
			case 1983:
			case 1984:
			case 1985:
			case 1986:
			case 1987:
			case 1988:
			case 1989:
			case 1990:
			case 1991:
			case 1992:
			case 1993:
			case 1994:
			case 1995:
			case 1996:
			case 1997:
			case 1998:
			case 1999:
			case 2000:
			case 2003:
			case 2004:
			case 2005:
			case 2006:
			case 2007:
			case 2008:
			case 2009:
			case 2010:
			case 2011:
			case 2012:
			case 2013:
			case 2014:
			case 2015:
			case 2016:
			case 2017:
			case 2018:
			case 2019:
			case 2020:
			case 2021:
			case 2022:
			case 2023:
			case 2024:
			case 2026:
			case 2027:
			case 2028:
			case 2029:
			case 2030:
			case 2031:
			case 2032:
			case 2033:
			case 2034:
			case 2035:
			case 2036:
			case 2037:
			case 2038:
			case 2039:
			case 2040:
			case 2041:
			case 2042:
			case 2043:
			case 2044:
			case 2045:
			case 2046:
			case 2047:
			case 2048:
			case 2049:
			case 2050:
			case 2051:
			case 2052:
			case 2053:
			case 2054:
			case 2055:
			case 2056:
			case 2057:
			case 2058:
			case 2059:
			case 2060:
			case 2061:
			case 2062:
			case 2063:
			case 2064:
			case 2065:
			case 2066:
			case 2067:
			case 2068:
			case 2069:
			case 2070:
			case 2071:
			case 2072:
			case 2074:
			case 2075:
			case 2076:
			case 2077:
			case 2078:
			case 2079:
			case 2080:
			case 2081:
			case 2082:
			case 2083:
			case 2084:
			case 2085:
			case 2086:
			case 2087:
			case 2088:
			case 2089:
			case 2090:
			case 2091:
			case 2092:
			case 2093:
			case 2094:
			case 2095:
			case 2096:
			case 2097:
			case 2098:
			case 2100:
			case 2101:
			case 2102:
			case 2103:
			case 2104:
			case 2105:
			case 2106:
			case 2107:
			case 2108:
			case 2109:
			case 2110:
			case 2111:
			case 2112:
			case 2113:
			case 2115:
			case 2116:
			case 2117:
			case 2118:
			case 2119:
			case 2120:
			case 2122:
			case 2123:
			case 2124:
			case 2125:
			case 2126:
			case 2128:
			case 2129:
			case 2130:
			case 2131:
			case 2132:
			case 2133:
			case 2134:
			case 2135:
			case 2136:
			case 2137:
			case 2138:
			case 2139:
			case 2140:
			case 2141:
			case 2142:
			case 2143:
			case 2145:
			case 2146:
			case 2147:
			case 2148:
			case 2149:
			case 2150:
			case 2151:
			case 2152:
			case 2153:
			case 2154:
			case 2155:
			case 2156:
			case 2157:
			case 2158:
			case 2159:
			case 2160:
			case 2161:
			case 2162:
			case 2163:
			case 2164:
			case 2165:
			case 2166:
			case 2168:
			case 2169:
			case 2170:
			case 2171:
			case 2172:
			case 2173:
			case 2174:
			case 2175:
			case 2176:
			case 2177:
			case 2178:
			case 2179:
			case 2180:
			case 2181:
			case 2182:
			case 2183:
			case 2184:
			case 2185:
			case 2186:
			case 2187:
			case 2188:
			case 2189:
			case 2191:
			case 2192:
			case 2193:
			case 2194:
			case 2195:
			case 2196:
			case 2197:
			case 2198:
			case 2199:
			case 2200:
			case 2201:
			case 2202:
			case 2203:
			case 2204:
			case 2205:
			case 2206:
			case 2207:
			case 2208:
			case 2209:
			case 2210:
			case 2211:
			case 2216:
			case 2220:
			case 2252:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 3538;
				this.role_name();
				this.state = 3543;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===2229) {
					{
					{
					this.state = 3539;
					this.match(PlSqlParser.COMMA);
					this.state = 3540;
					this.role_name();
					}
					}
					this.state = 3545;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				}
				break;
			case 35:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 3546;
				this.match(PlSqlParser.ALL);
				this.state = 3558;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===467) {
					{
					{
					this.state = 3547;
					this.match(PlSqlParser.EXCEPT);
					this.state = 3548;
					this.role_name();
					this.state = 3553;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
					while (_la===2229) {
						{
						{
						this.state = 3549;
						this.match(PlSqlParser.COMMA);
						this.state = 3550;
						this.role_name();
						}
						}
						this.state = 3555;
						this._errHandler.sync(this);
						_la = this._input.LA(1);
					}
					}
					}
					this.state = 3560;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public user_default_role_clause(): User_default_role_clauseContext {
		let localctx: User_default_role_clauseContext = new User_default_role_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 288, PlSqlParser.RULE_user_default_role_clause);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 3563;
			this.match(PlSqlParser.DEFAULT);
			this.state = 3564;
			this.match(PlSqlParser.ROLE);
			this.state = 3567;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 302, this._ctx) ) {
			case 1:
				{
				this.state = 3565;
				this.match(PlSqlParser.NONE);
				}
				break;
			case 2:
				{
				this.state = 3566;
				this.role_clause();
				}
				break;
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public password_expire_clause(): Password_expire_clauseContext {
		let localctx: Password_expire_clauseContext = new Password_expire_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 290, PlSqlParser.RULE_password_expire_clause);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 3569;
			this.match(PlSqlParser.PASSWORD);
			this.state = 3570;
			this.match(PlSqlParser.EXPIRE);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public user_lock_clause(): User_lock_clauseContext {
		let localctx: User_lock_clauseContext = new User_lock_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 292, PlSqlParser.RULE_user_lock_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 3572;
			this.match(PlSqlParser.ACCOUNT);
			this.state = 3573;
			_la = this._input.LA(1);
			if(!(_la===776 || _la===2006)) {
			this._errHandler.recoverInline(this);
			}
			else {
				this._errHandler.reportMatch(this);
			    this.consume();
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public user_editions_clause(): User_editions_clauseContext {
		let localctx: User_editions_clauseContext = new User_editions_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 294, PlSqlParser.RULE_user_editions_clause);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 3575;
			this.match(PlSqlParser.ENABLE);
			this.state = 3576;
			this.match(PlSqlParser.EDITIONS);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public alter_user_editions_clause(): Alter_user_editions_clauseContext {
		let localctx: Alter_user_editions_clauseContext = new Alter_user_editions_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 296, PlSqlParser.RULE_alter_user_editions_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 3578;
			this.user_editions_clause();
			this.state = 3588;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===546) {
				{
				this.state = 3579;
				this.match(PlSqlParser.FOR);
				this.state = 3580;
				this.regular_id();
				this.state = 3585;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===2229) {
					{
					{
					this.state = 3581;
					this.match(PlSqlParser.COMMA);
					this.state = 3582;
					this.regular_id();
					}
					}
					this.state = 3587;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				}
			}

			this.state = 3591;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===542) {
				{
				this.state = 3590;
				this.match(PlSqlParser.FORCE);
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public proxy_clause(): Proxy_clauseContext {
		let localctx: Proxy_clauseContext = new Proxy_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 298, PlSqlParser.RULE_proxy_clause);
		let _la: number;
		try {
			this.state = 3632;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 1434:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 3593;
				this.match(PlSqlParser.REVOKE);
				this.state = 3594;
				this.match(PlSqlParser.CONNECT);
				this.state = 3595;
				this.match(PlSqlParser.THROUGH);
				this.state = 3599;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 306, this._ctx) ) {
				case 1:
					{
					this.state = 3596;
					this.match(PlSqlParser.ENTERPRISE);
					this.state = 3597;
					this.match(PlSqlParser.USERS);
					}
					break;
				case 2:
					{
					this.state = 3598;
					this.user_object_name();
					}
					break;
				}
				}
				break;
			case 571:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 3601;
				this.match(PlSqlParser.GRANT);
				this.state = 3602;
				this.match(PlSqlParser.CONNECT);
				this.state = 3603;
				this.match(PlSqlParser.THROUGH);
				this.state = 3630;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 312, this._ctx) ) {
				case 1:
					{
					this.state = 3604;
					this.match(PlSqlParser.ENTERPRISE);
					this.state = 3605;
					this.match(PlSqlParser.USERS);
					}
					break;
				case 2:
					{
					this.state = 3606;
					this.user_object_name();
					this.state = 3614;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
					if (_la===2121) {
						{
						this.state = 3607;
						this.match(PlSqlParser.WITH);
						this.state = 3612;
						this._errHandler.sync(this);
						switch (this._input.LA(1)) {
						case 1010:
							{
							this.state = 3608;
							this.match(PlSqlParser.NO);
							this.state = 3609;
							this.match(PlSqlParser.ROLES);
							}
							break;
						case 1438:
							{
							this.state = 3610;
							this.match(PlSqlParser.ROLE);
							this.state = 3611;
							this.role_clause();
							}
							break;
						default:
							throw new NoViableAltException(this);
						}
						}
					}

					this.state = 3618;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
					if (_la===79) {
						{
						this.state = 3616;
						this.match(PlSqlParser.AUTHENTICATION);
						this.state = 3617;
						this.match(PlSqlParser.REQUIRED);
						}
					}

					this.state = 3628;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
					if (_la===78) {
						{
						this.state = 3620;
						this.match(PlSqlParser.AUTHENTICATED);
						this.state = 3621;
						this.match(PlSqlParser.USING);
						this.state = 3626;
						this._errHandler.sync(this);
						switch (this._input.LA(1)) {
						case 1215:
							{
							this.state = 3622;
							this.match(PlSqlParser.PASSWORD);
							}
							break;
						case 169:
							{
							this.state = 3623;
							this.match(PlSqlParser.CERTIFICATE);
							}
							break;
						case 397:
							{
							this.state = 3624;
							this.match(PlSqlParser.DISTINGUISHED);
							this.state = 3625;
							this.match(PlSqlParser.NAME);
							}
							break;
						default:
							throw new NoViableAltException(this);
						}
						}
					}

					}
					break;
				}
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public container_names(): Container_namesContext {
		let localctx: Container_namesContext = new Container_namesContext(this, this._ctx, this.state);
		this.enterRule(localctx, 300, PlSqlParser.RULE_container_names);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 3634;
			this.match(PlSqlParser.LEFT_PAREN);
			this.state = 3635;
			this.id_expression();
			this.state = 3640;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			while (_la===2229) {
				{
				{
				this.state = 3636;
				this.match(PlSqlParser.COMMA);
				this.state = 3637;
				this.id_expression();
				}
				}
				this.state = 3642;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			}
			this.state = 3643;
			this.match(PlSqlParser.RIGHT_PAREN);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public set_container_data(): Set_container_dataContext {
		let localctx: Set_container_dataContext = new Set_container_dataContext(this, this._ctx, this.state);
		this.enterRule(localctx, 302, PlSqlParser.RULE_set_container_data);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 3645;
			this.match(PlSqlParser.SET);
			this.state = 3646;
			this.match(PlSqlParser.CONTAINER_DATA);
			this.state = 3647;
			this.match(PlSqlParser.EQUALS_OP);
			this.state = 3651;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 35:
				{
				this.state = 3648;
				this.match(PlSqlParser.ALL);
				}
				break;
			case 351:
				{
				this.state = 3649;
				this.match(PlSqlParser.DEFAULT);
				}
				break;
			case 2223:
				{
				this.state = 3650;
				this.container_names();
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public add_rem_container_data(): Add_rem_container_dataContext {
		let localctx: Add_rem_container_dataContext = new Add_rem_container_dataContext(this, this._ctx, this.state);
		this.enterRule(localctx, 304, PlSqlParser.RULE_add_rem_container_data);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 3653;
			_la = this._input.LA(1);
			if(!(_la===18 || _la===1403)) {
			this._errHandler.recoverInline(this);
			}
			else {
				this._errHandler.reportMatch(this);
			    this.consume();
			}
			this.state = 3654;
			this.match(PlSqlParser.CONTAINER_DATA);
			this.state = 3655;
			this.match(PlSqlParser.EQUALS_OP);
			this.state = 3656;
			this.container_names();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public container_data_clause(): Container_data_clauseContext {
		let localctx: Container_data_clauseContext = new Container_data_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 306, PlSqlParser.RULE_container_data_clause);
		let _la: number;
		try {
			this.state = 3664;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 1510:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 3658;
				this.set_container_data();
				}
				break;
			case 18:
			case 1403:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 3659;
				this.add_rem_container_data();
				this.state = 3662;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===546) {
					{
					this.state = 3660;
					this.match(PlSqlParser.FOR);
					this.state = 3661;
					this.container_tableview_name();
					}
				}

				}
				break;
			default:
				throw new NoViableAltException(this);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public analyze(): AnalyzeContext {
		let localctx: AnalyzeContext = new AnalyzeContext(this, this._ctx, this.state);
		this.enterRule(localctx, 308, PlSqlParser.RULE_analyze);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 3679;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 320, this._ctx) ) {
			case 1:
				{
				this.state = 3666;
				this.match(PlSqlParser.ANALYZE);
				this.state = 3671;
				this._errHandler.sync(this);
				switch (this._input.LA(1)) {
				case 1912:
					{
					this.state = 3667;
					this.match(PlSqlParser.TABLE);
					this.state = 3668;
					this.tableview_name();
					}
					break;
				case 631:
					{
					this.state = 3669;
					this.match(PlSqlParser.INDEX);
					this.state = 3670;
					this.index_name();
					}
					break;
				default:
					throw new NoViableAltException(this);
				}
				this.state = 3674;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===1207 || _la===1606) {
					{
					this.state = 3673;
					this.partition_extention_clause();
					}
				}

				}
				break;
			case 2:
				{
				this.state = 3676;
				this.match(PlSqlParser.ANALYZE);
				this.state = 3677;
				this.match(PlSqlParser.CLUSTER);
				this.state = 3678;
				this.cluster_name();
				}
				break;
			}
			this.state = 3693;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 2070:
				{
				this.state = 3681;
				this.validation_clauses();
				}
				break;
			case 761:
				{
				this.state = 3682;
				this.match(PlSqlParser.LIST);
				this.state = 3683;
				this.match(PlSqlParser.CHAINED);
				this.state = 3684;
				this.match(PlSqlParser.ROWS);
				this.state = 3686;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===691) {
					{
					this.state = 3685;
					this.into_clause1();
					}
				}

				}
				break;
			case 362:
				{
				this.state = 3688;
				this.match(PlSqlParser.DELETE);
				this.state = 3690;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===1779) {
					{
					this.state = 3689;
					this.match(PlSqlParser.SYSTEM);
					}
				}

				this.state = 3692;
				this.match(PlSqlParser.STATISTICS);
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
			this.state = 3695;
			this.match(PlSqlParser.SEMICOLON);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public partition_extention_clause(): Partition_extention_clauseContext {
		let localctx: Partition_extention_clauseContext = new Partition_extention_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 310, PlSqlParser.RULE_partition_extention_clause);
		let _la: number;
		try {
			this.state = 3735;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 1207:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 3697;
				this.match(PlSqlParser.PARTITION);
				this.state = 3714;
				this._errHandler.sync(this);
				switch (this._input.LA(1)) {
				case 2223:
					{
					this.state = 3698;
					this.match(PlSqlParser.LEFT_PAREN);
					this.state = 3699;
					this.partition_name();
					this.state = 3700;
					this.match(PlSqlParser.RIGHT_PAREN);
					}
					break;
				case 546:
					{
					this.state = 3702;
					this.match(PlSqlParser.FOR);
					this.state = 3703;
					this.match(PlSqlParser.LEFT_PAREN);
					this.state = 3704;
					this.partition_key_value();
					this.state = 3709;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
					while (_la===2229) {
						{
						{
						this.state = 3705;
						this.match(PlSqlParser.COMMA);
						this.state = 3706;
						this.partition_key_value();
						}
						}
						this.state = 3711;
						this._errHandler.sync(this);
						_la = this._input.LA(1);
					}
					this.state = 3712;
					this.match(PlSqlParser.RIGHT_PAREN);
					}
					break;
				default:
					throw new NoViableAltException(this);
				}
				}
				break;
			case 1606:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 3716;
				this.match(PlSqlParser.SUBPARTITION);
				this.state = 3733;
				this._errHandler.sync(this);
				switch (this._input.LA(1)) {
				case 2223:
					{
					this.state = 3717;
					this.match(PlSqlParser.LEFT_PAREN);
					this.state = 3718;
					this.subpartition_name();
					this.state = 3719;
					this.match(PlSqlParser.RIGHT_PAREN);
					}
					break;
				case 546:
					{
					this.state = 3721;
					this.match(PlSqlParser.FOR);
					this.state = 3722;
					this.match(PlSqlParser.LEFT_PAREN);
					this.state = 3723;
					this.subpartition_key_value();
					this.state = 3728;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
					while (_la===2229) {
						{
						{
						this.state = 3724;
						this.match(PlSqlParser.COMMA);
						this.state = 3725;
						this.subpartition_key_value();
						}
						}
						this.state = 3730;
						this._errHandler.sync(this);
						_la = this._input.LA(1);
					}
					this.state = 3731;
					this.match(PlSqlParser.RIGHT_PAREN);
					}
					break;
				default:
					throw new NoViableAltException(this);
				}
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public validation_clauses(): Validation_clausesContext {
		let localctx: Validation_clausesContext = new Validation_clausesContext(this, this._ctx, this.state);
		this.enterRule(localctx, 312, PlSqlParser.RULE_validation_clauses);
		let _la: number;
		try {
			this.state = 3766;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 335, this._ctx) ) {
			case 1:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 3737;
				this.match(PlSqlParser.VALIDATE);
				this.state = 3738;
				this.match(PlSqlParser.REF);
				this.state = 3739;
				this.match(PlSqlParser.UPDATE);
				this.state = 3744;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===1510) {
					{
					this.state = 3740;
					this.match(PlSqlParser.SET);
					this.state = 3741;
					this.match(PlSqlParser.DANGLING);
					this.state = 3742;
					this.match(PlSqlParser.TO);
					this.state = 3743;
					this.match(PlSqlParser.NULL_);
					}
				}

				}
				break;
			case 2:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 3746;
				this.match(PlSqlParser.VALIDATE);
				this.state = 3747;
				this.match(PlSqlParser.STRUCTURE);
				this.state = 3758;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 332, this._ctx) ) {
				case 1:
					{
					this.state = 3748;
					this.match(PlSqlParser.CASCADE);
					this.state = 3749;
					this.match(PlSqlParser.FAST);
					}
					break;
				case 2:
					{
					this.state = 3750;
					this.match(PlSqlParser.CASCADE);
					this.state = 3752;
					this._errHandler.sync(this);
					switch ( this._interp.adaptivePredict(this._input, 330, this._ctx) ) {
					case 1:
						{
						this.state = 3751;
						this.online_or_offline();
						}
						break;
					}
					this.state = 3755;
					this._errHandler.sync(this);
					switch ( this._interp.adaptivePredict(this._input, 331, this._ctx) ) {
					case 1:
						{
						this.state = 3754;
						this.into_clause();
						}
						break;
					}
					}
					break;
				case 3:
					{
					this.state = 3757;
					this.match(PlSqlParser.CASCADE);
					}
					break;
				}
				this.state = 3761;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===1112 || _la===1125) {
					{
					this.state = 3760;
					this.online_or_offline();
					}
				}

				this.state = 3764;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===145 || _la===691) {
					{
					this.state = 3763;
					this.into_clause();
					}
				}

				}
				break;
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public online_or_offline(): Online_or_offlineContext {
		let localctx: Online_or_offlineContext = new Online_or_offlineContext(this, this._ctx, this.state);
		this.enterRule(localctx, 314, PlSqlParser.RULE_online_or_offline);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 3768;
			_la = this._input.LA(1);
			if(!(_la===1112 || _la===1125)) {
			this._errHandler.recoverInline(this);
			}
			else {
				this._errHandler.reportMatch(this);
			    this.consume();
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public into_clause1(): Into_clause1Context {
		let localctx: Into_clause1Context = new Into_clause1Context(this, this._ctx, this.state);
		this.enterRule(localctx, 316, PlSqlParser.RULE_into_clause1);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 3770;
			this.match(PlSqlParser.INTO);
			this.state = 3772;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & 2684286839) !== 0) || ((((_la - 64)) & ~0x1F) === 0 && ((1 << (_la - 64)) & 3220168703) !== 0) || ((((_la - 96)) & ~0x1F) === 0 && ((1 << (_la - 96)) & 4294965247) !== 0) || ((((_la - 128)) & ~0x1F) === 0 && ((1 << (_la - 128)) & 2147221503) !== 0) || ((((_la - 160)) & ~0x1F) === 0 && ((1 << (_la - 160)) & 4293910527) !== 0) || ((((_la - 192)) & ~0x1F) === 0 && ((1 << (_la - 192)) & 4294967295) !== 0) || ((((_la - 224)) & ~0x1F) === 0 && ((1 << (_la - 224)) & 4160749311) !== 0) || ((((_la - 256)) & ~0x1F) === 0 && ((1 << (_la - 256)) & 4294967295) !== 0) || ((((_la - 289)) & ~0x1F) === 0 && ((1 << (_la - 289)) & 2147483647) !== 0) || ((((_la - 321)) & ~0x1F) === 0 && ((1 << (_la - 321)) & 3221225407) !== 0) || ((((_la - 353)) & ~0x1F) === 0 && ((1 << (_la - 353)) & 4294705151) !== 0) || ((((_la - 385)) & ~0x1F) === 0 && ((1 << (_la - 385)) & 2080372479) !== 0) || ((((_la - 417)) & ~0x1F) === 0 && ((1 << (_la - 417)) & 4026433535) !== 0) || ((((_la - 449)) & ~0x1F) === 0 && ((1 << (_la - 449)) & 4261412863) !== 0) || ((((_la - 481)) & ~0x1F) === 0 && ((1 << (_la - 481)) & 4294967295) !== 0) || ((((_la - 513)) & ~0x1F) === 0 && ((1 << (_la - 513)) & 4294967295) !== 0) || ((((_la - 545)) & ~0x1F) === 0 && ((1 << (_la - 545)) & 3925868029) !== 0) || ((((_la - 577)) & ~0x1F) === 0 && ((1 << (_la - 577)) & 4278189823) !== 0) || ((((_la - 609)) & ~0x1F) === 0 && ((1 << (_la - 609)) & 4290772991) !== 0) || ((((_la - 641)) & ~0x1F) === 0 && ((1 << (_la - 641)) & 4026529791) !== 0) || ((((_la - 673)) & ~0x1F) === 0 && ((1 << (_la - 673)) & 4290478079) !== 0) || ((((_la - 705)) & ~0x1F) === 0 && ((1 << (_la - 705)) & 4294967295) !== 0) || ((((_la - 737)) & ~0x1F) === 0 && ((1 << (_la - 737)) & 4293918719) !== 0) || ((((_la - 769)) & ~0x1F) === 0 && ((1 << (_la - 769)) & 4294967167) !== 0) || ((((_la - 801)) & ~0x1F) === 0 && ((1 << (_la - 801)) & 4294967295) !== 0) || ((((_la - 833)) & ~0x1F) === 0 && ((1 << (_la - 833)) & 4160749055) !== 0) || ((((_la - 865)) & ~0x1F) === 0 && ((1 << (_la - 865)) & 4290772991) !== 0) || ((((_la - 897)) & ~0x1F) === 0 && ((1 << (_la - 897)) & 4294967295) !== 0) || ((((_la - 929)) & ~0x1F) === 0 && ((1 << (_la - 929)) & 4278190079) !== 0) || ((((_la - 961)) & ~0x1F) === 0 && ((1 << (_la - 961)) & 4294967295) !== 0) || ((((_la - 993)) & ~0x1F) === 0 && ((1 << (_la - 993)) & 4294967295) !== 0) || ((((_la - 1025)) & ~0x1F) === 0 && ((1 << (_la - 1025)) & 4294967295) !== 0) || ((((_la - 1057)) & ~0x1F) === 0 && ((1 << (_la - 1057)) & 2147418111) !== 0) || ((((_la - 1089)) & ~0x1F) === 0 && ((1 << (_la - 1089)) & 4227858175) !== 0) || ((((_la - 1121)) & ~0x1F) === 0 && ((1 << (_la - 1121)) & 4293918559) !== 0) || ((((_la - 1153)) & ~0x1F) === 0 && ((1 << (_la - 1153)) & 4294410239) !== 0) || ((((_la - 1185)) & ~0x1F) === 0 && ((1 << (_la - 1185)) & 4294965247) !== 0) || ((((_la - 1217)) & ~0x1F) === 0 && ((1 << (_la - 1217)) & 4279827455) !== 0) || ((((_la - 1249)) & ~0x1F) === 0 && ((1 << (_la - 1249)) & 4294967291) !== 0) || ((((_la - 1281)) & ~0x1F) === 0 && ((1 << (_la - 1281)) & 4227858431) !== 0) || ((((_la - 1313)) & ~0x1F) === 0 && ((1 << (_la - 1313)) & 4294965247) !== 0) || ((((_la - 1345)) & ~0x1F) === 0 && ((1 << (_la - 1345)) & 4294967295) !== 0) || ((((_la - 1377)) & ~0x1F) === 0 && ((1 << (_la - 1377)) & 4292870143) !== 0) || ((((_la - 1409)) & ~0x1F) === 0 && ((1 << (_la - 1409)) & 4261412799) !== 0) || ((((_la - 1441)) & ~0x1F) === 0 && ((1 << (_la - 1441)) & 4294967295) !== 0) || ((((_la - 1473)) & ~0x1F) === 0 && ((1 << (_la - 1473)) & 4261281791) !== 0) || ((((_la - 1505)) & ~0x1F) === 0 && ((1 << (_la - 1505)) & 3221221375) !== 0) || ((((_la - 1537)) & ~0x1F) === 0 && ((1 << (_la - 1537)) & 4294967295) !== 0) || ((((_la - 1570)) & ~0x1F) === 0 && ((1 << (_la - 1570)) & 4294967295) !== 0) || ((((_la - 1602)) & ~0x1F) === 0 && ((1 << (_la - 1602)) & 4261412863) !== 0) || ((((_la - 1634)) & ~0x1F) === 0 && ((1 << (_la - 1634)) & 4294967295) !== 0) || ((((_la - 1666)) & ~0x1F) === 0 && ((1 << (_la - 1666)) & 4294967295) !== 0) || ((((_la - 1698)) & ~0x1F) === 0 && ((1 << (_la - 1698)) & 4294967295) !== 0) || ((((_la - 1730)) & ~0x1F) === 0 && ((1 << (_la - 1730)) & 4294967295) !== 0) || ((((_la - 1762)) & ~0x1F) === 0 && ((1 << (_la - 1762)) & 4294967295) !== 0) || ((((_la - 1794)) & ~0x1F) === 0 && ((1 << (_la - 1794)) & 4294967295) !== 0) || ((((_la - 1826)) & ~0x1F) === 0 && ((1 << (_la - 1826)) & 4294967295) !== 0) || ((((_la - 1858)) & ~0x1F) === 0 && ((1 << (_la - 1858)) & 4294967295) !== 0) || ((((_la - 1890)) & ~0x1F) === 0 && ((1 << (_la - 1890)) & 4294967295) !== 0) || ((((_la - 1922)) & ~0x1F) === 0 && ((1 << (_la - 1922)) & 4294901759) !== 0) || ((((_la - 1954)) & ~0x1F) === 0 && ((1 << (_la - 1954)) & 4294966271) !== 0) || ((((_la - 1986)) & ~0x1F) === 0 && ((1 << (_la - 1986)) & 4294868991) !== 0) || ((((_la - 2018)) & ~0x1F) === 0 && ((1 << (_la - 2018)) & 4294967167) !== 0) || ((((_la - 2050)) & ~0x1F) === 0 && ((1 << (_la - 2050)) & 4286578687) !== 0) || ((((_la - 2082)) & ~0x1F) === 0 && ((1 << (_la - 2082)) & 4294836223) !== 0) || ((((_la - 2115)) & ~0x1F) === 0 && ((1 << (_la - 2115)) & 3758092223) !== 0) || ((((_la - 2147)) & ~0x1F) === 0 && ((1 << (_la - 2147)) & 4293918719) !== 0) || ((((_la - 2179)) & ~0x1F) === 0 && ((1 << (_la - 2179)) & 4294965247) !== 0) || ((((_la - 2211)) & ~0x1F) === 0 && ((1 << (_la - 2211)) & 545) !== 0) || _la===2246 || _la===2252) {
				{
				this.state = 3771;
				this.tableview_name();
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public partition_key_value(): Partition_key_valueContext {
		let localctx: Partition_key_valueContext = new Partition_key_valueContext(this, this._ctx, this.state);
		this.enterRule(localctx, 318, PlSqlParser.RULE_partition_key_value);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 3774;
			this.literal();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public subpartition_key_value(): Subpartition_key_valueContext {
		let localctx: Subpartition_key_valueContext = new Subpartition_key_valueContext(this, this._ctx, this.state);
		this.enterRule(localctx, 320, PlSqlParser.RULE_subpartition_key_value);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 3776;
			this.literal();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public associate_statistics(): Associate_statisticsContext {
		let localctx: Associate_statisticsContext = new Associate_statisticsContext(this, this._ctx, this.state);
		this.enterRule(localctx, 322, PlSqlParser.RULE_associate_statistics);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 3778;
			this.match(PlSqlParser.ASSOCIATE);
			this.state = 3779;
			this.match(PlSqlParser.STATISTICS);
			this.state = 3780;
			this.match(PlSqlParser.WITH);
			this.state = 3783;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 214:
				{
				this.state = 3781;
				this.column_association();
				}
				break;
			case 559:
			case 628:
			case 646:
			case 1192:
			case 1986:
				{
				this.state = 3782;
				this.function_association();
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
			this.state = 3786;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===2121) {
				{
				this.state = 3785;
				this.storage_table_clause();
				}
			}

			this.state = 3788;
			this.match(PlSqlParser.SEMICOLON);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public column_association(): Column_associationContext {
		let localctx: Column_associationContext = new Column_associationContext(this, this._ctx, this.state);
		this.enterRule(localctx, 324, PlSqlParser.RULE_column_association);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 3790;
			this.match(PlSqlParser.COLUMNS);
			this.state = 3791;
			this.tableview_name();
			this.state = 3792;
			this.match(PlSqlParser.PERIOD);
			this.state = 3793;
			this.column_name();
			this.state = 3801;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			while (_la===2229) {
				{
				{
				this.state = 3794;
				this.match(PlSqlParser.COMMA);
				this.state = 3795;
				this.tableview_name();
				this.state = 3796;
				this.match(PlSqlParser.PERIOD);
				this.state = 3797;
				this.column_name();
				}
				}
				this.state = 3803;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			}
			this.state = 3804;
			this.using_statistics_type();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public function_association(): Function_associationContext {
		let localctx: Function_associationContext = new Function_associationContext(this, this._ctx, this.state);
		this.enterRule(localctx, 326, PlSqlParser.RULE_function_association);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 3851;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 559:
				{
				this.state = 3806;
				this.match(PlSqlParser.FUNCTIONS);
				this.state = 3807;
				this.function_name();
				this.state = 3812;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===2229) {
					{
					{
					this.state = 3808;
					this.match(PlSqlParser.COMMA);
					this.state = 3809;
					this.function_name();
					}
					}
					this.state = 3814;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				}
				break;
			case 1192:
				{
				this.state = 3815;
				this.match(PlSqlParser.PACKAGES);
				this.state = 3816;
				this.package_name();
				this.state = 3821;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===2229) {
					{
					{
					this.state = 3817;
					this.match(PlSqlParser.COMMA);
					this.state = 3818;
					this.package_name();
					}
					}
					this.state = 3823;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				}
				break;
			case 1986:
				{
				this.state = 3824;
				this.match(PlSqlParser.TYPES);
				this.state = 3825;
				this.type_name();
				this.state = 3830;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===2229) {
					{
					{
					this.state = 3826;
					this.match(PlSqlParser.COMMA);
					this.state = 3827;
					this.type_name();
					}
					}
					this.state = 3832;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				}
				break;
			case 628:
				{
				this.state = 3833;
				this.match(PlSqlParser.INDEXES);
				this.state = 3834;
				this.index_name();
				this.state = 3839;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===2229) {
					{
					{
					this.state = 3835;
					this.match(PlSqlParser.COMMA);
					this.state = 3836;
					this.index_name();
					}
					}
					this.state = 3841;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				}
				break;
			case 646:
				{
				this.state = 3842;
				this.match(PlSqlParser.INDEXTYPES);
				this.state = 3843;
				this.indextype_name();
				this.state = 3848;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===2229) {
					{
					{
					this.state = 3844;
					this.match(PlSqlParser.COMMA);
					this.state = 3845;
					this.indextype_name();
					}
					}
					this.state = 3850;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
			this.state = 3864;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 348, this._ctx) ) {
			case 1:
				{
				this.state = 3853;
				this.using_statistics_type();
				}
				break;
			case 2:
				{
				this.state = 3854;
				this.default_cost_clause();
				this.state = 3857;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===2229) {
					{
					this.state = 3855;
					this.match(PlSqlParser.COMMA);
					this.state = 3856;
					this.default_selectivity_clause();
					}
				}

				}
				break;
			case 3:
				{
				this.state = 3859;
				this.default_selectivity_clause();
				this.state = 3862;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===2229) {
					{
					this.state = 3860;
					this.match(PlSqlParser.COMMA);
					this.state = 3861;
					this.default_cost_clause();
					}
				}

				}
				break;
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public indextype_name(): Indextype_nameContext {
		let localctx: Indextype_nameContext = new Indextype_nameContext(this, this._ctx, this.state);
		this.enterRule(localctx, 328, PlSqlParser.RULE_indextype_name);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 3866;
			this.id_expression();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public using_statistics_type(): Using_statistics_typeContext {
		let localctx: Using_statistics_typeContext = new Using_statistics_typeContext(this, this._ctx, this.state);
		this.enterRule(localctx, 330, PlSqlParser.RULE_using_statistics_type);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 3868;
			this.match(PlSqlParser.USING);
			this.state = 3871;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 1:
			case 2:
			case 3:
			case 4:
			case 5:
			case 6:
			case 7:
			case 8:
			case 9:
			case 10:
			case 11:
			case 12:
			case 13:
			case 14:
			case 15:
			case 16:
			case 17:
			case 18:
			case 19:
			case 20:
			case 21:
			case 22:
			case 23:
			case 24:
			case 25:
			case 26:
			case 27:
			case 28:
			case 29:
			case 30:
			case 31:
			case 32:
			case 33:
			case 34:
			case 36:
			case 37:
			case 38:
			case 40:
			case 41:
			case 42:
			case 44:
			case 45:
			case 46:
			case 47:
			case 49:
			case 50:
			case 51:
			case 52:
			case 53:
			case 54:
			case 55:
			case 56:
			case 57:
			case 58:
			case 59:
			case 60:
			case 63:
			case 64:
			case 65:
			case 66:
			case 67:
			case 68:
			case 69:
			case 70:
			case 71:
			case 72:
			case 73:
			case 74:
			case 75:
			case 76:
			case 78:
			case 79:
			case 80:
			case 81:
			case 82:
			case 83:
			case 85:
			case 86:
			case 87:
			case 88:
			case 89:
			case 90:
			case 91:
			case 92:
			case 93:
			case 95:
			case 96:
			case 97:
			case 98:
			case 99:
			case 100:
			case 101:
			case 102:
			case 103:
			case 104:
			case 105:
			case 106:
			case 108:
			case 109:
			case 110:
			case 111:
			case 112:
			case 113:
			case 114:
			case 115:
			case 116:
			case 117:
			case 118:
			case 119:
			case 120:
			case 121:
			case 122:
			case 123:
			case 124:
			case 125:
			case 126:
			case 127:
			case 128:
			case 129:
			case 130:
			case 131:
			case 132:
			case 133:
			case 134:
			case 135:
			case 136:
			case 137:
			case 138:
			case 139:
			case 140:
			case 141:
			case 142:
			case 143:
			case 144:
			case 145:
			case 147:
			case 148:
			case 149:
			case 150:
			case 151:
			case 152:
			case 153:
			case 154:
			case 155:
			case 156:
			case 157:
			case 158:
			case 160:
			case 161:
			case 162:
			case 163:
			case 164:
			case 165:
			case 166:
			case 167:
			case 168:
			case 169:
			case 170:
			case 171:
			case 172:
			case 174:
			case 175:
			case 176:
			case 177:
			case 178:
			case 179:
			case 181:
			case 182:
			case 183:
			case 184:
			case 185:
			case 186:
			case 187:
			case 188:
			case 189:
			case 190:
			case 191:
			case 192:
			case 193:
			case 194:
			case 195:
			case 196:
			case 197:
			case 198:
			case 199:
			case 200:
			case 201:
			case 202:
			case 203:
			case 204:
			case 205:
			case 206:
			case 207:
			case 208:
			case 209:
			case 210:
			case 211:
			case 212:
			case 213:
			case 214:
			case 215:
			case 216:
			case 217:
			case 218:
			case 219:
			case 220:
			case 221:
			case 222:
			case 223:
			case 224:
			case 225:
			case 226:
			case 227:
			case 228:
			case 229:
			case 230:
			case 231:
			case 233:
			case 234:
			case 235:
			case 236:
			case 237:
			case 238:
			case 239:
			case 240:
			case 241:
			case 242:
			case 243:
			case 244:
			case 245:
			case 246:
			case 247:
			case 248:
			case 249:
			case 250:
			case 252:
			case 253:
			case 254:
			case 255:
			case 256:
			case 257:
			case 258:
			case 259:
			case 260:
			case 261:
			case 262:
			case 263:
			case 264:
			case 265:
			case 266:
			case 267:
			case 268:
			case 269:
			case 270:
			case 271:
			case 272:
			case 273:
			case 274:
			case 275:
			case 276:
			case 277:
			case 278:
			case 279:
			case 280:
			case 281:
			case 282:
			case 283:
			case 284:
			case 285:
			case 286:
			case 287:
			case 289:
			case 290:
			case 291:
			case 292:
			case 293:
			case 294:
			case 295:
			case 296:
			case 297:
			case 298:
			case 299:
			case 300:
			case 301:
			case 302:
			case 303:
			case 304:
			case 305:
			case 306:
			case 307:
			case 308:
			case 309:
			case 310:
			case 311:
			case 312:
			case 313:
			case 314:
			case 315:
			case 316:
			case 317:
			case 318:
			case 319:
			case 321:
			case 322:
			case 323:
			case 324:
			case 325:
			case 326:
			case 328:
			case 329:
			case 330:
			case 331:
			case 332:
			case 333:
			case 334:
			case 335:
			case 336:
			case 337:
			case 338:
			case 339:
			case 340:
			case 341:
			case 342:
			case 343:
			case 344:
			case 345:
			case 346:
			case 347:
			case 348:
			case 349:
			case 350:
			case 352:
			case 353:
			case 354:
			case 355:
			case 356:
			case 357:
			case 358:
			case 359:
			case 360:
			case 361:
			case 362:
			case 363:
			case 364:
			case 365:
			case 366:
			case 367:
			case 368:
			case 369:
			case 370:
			case 372:
			case 373:
			case 374:
			case 375:
			case 376:
			case 377:
			case 378:
			case 379:
			case 380:
			case 381:
			case 382:
			case 383:
			case 384:
			case 385:
			case 386:
			case 387:
			case 388:
			case 389:
			case 390:
			case 391:
			case 392:
			case 394:
			case 395:
			case 397:
			case 398:
			case 399:
			case 400:
			case 401:
			case 402:
			case 403:
			case 404:
			case 405:
			case 406:
			case 407:
			case 408:
			case 409:
			case 410:
			case 412:
			case 413:
			case 414:
			case 415:
			case 417:
			case 418:
			case 419:
			case 420:
			case 421:
			case 422:
			case 423:
			case 424:
			case 425:
			case 426:
			case 427:
			case 428:
			case 429:
			case 430:
			case 431:
			case 434:
			case 435:
			case 436:
			case 437:
			case 438:
			case 439:
			case 440:
			case 441:
			case 442:
			case 443:
			case 444:
			case 446:
			case 447:
			case 448:
			case 449:
			case 450:
			case 451:
			case 452:
			case 453:
			case 454:
			case 455:
			case 456:
			case 457:
			case 458:
			case 459:
			case 460:
			case 461:
			case 462:
			case 463:
			case 464:
			case 465:
			case 466:
			case 467:
			case 468:
			case 469:
			case 470:
			case 471:
			case 472:
			case 473:
			case 475:
			case 476:
			case 477:
			case 478:
			case 479:
			case 480:
			case 481:
			case 482:
			case 483:
			case 484:
			case 485:
			case 486:
			case 487:
			case 488:
			case 489:
			case 490:
			case 491:
			case 492:
			case 493:
			case 494:
			case 495:
			case 496:
			case 497:
			case 498:
			case 499:
			case 500:
			case 501:
			case 502:
			case 503:
			case 504:
			case 505:
			case 506:
			case 507:
			case 508:
			case 509:
			case 510:
			case 511:
			case 512:
			case 513:
			case 514:
			case 515:
			case 516:
			case 517:
			case 518:
			case 519:
			case 520:
			case 521:
			case 522:
			case 523:
			case 524:
			case 525:
			case 526:
			case 527:
			case 528:
			case 529:
			case 530:
			case 531:
			case 532:
			case 533:
			case 534:
			case 535:
			case 536:
			case 537:
			case 538:
			case 539:
			case 540:
			case 541:
			case 542:
			case 543:
			case 544:
			case 545:
			case 547:
			case 548:
			case 549:
			case 550:
			case 551:
			case 552:
			case 553:
			case 555:
			case 556:
			case 557:
			case 558:
			case 559:
			case 560:
			case 561:
			case 562:
			case 563:
			case 564:
			case 565:
			case 566:
			case 567:
			case 568:
			case 569:
			case 572:
			case 574:
			case 575:
			case 576:
			case 577:
			case 578:
			case 579:
			case 580:
			case 581:
			case 582:
			case 583:
			case 584:
			case 586:
			case 587:
			case 588:
			case 589:
			case 590:
			case 591:
			case 592:
			case 593:
			case 594:
			case 595:
			case 596:
			case 597:
			case 598:
			case 599:
			case 600:
			case 602:
			case 603:
			case 604:
			case 605:
			case 606:
			case 607:
			case 608:
			case 609:
			case 610:
			case 611:
			case 612:
			case 613:
			case 614:
			case 615:
			case 616:
			case 617:
			case 618:
			case 619:
			case 620:
			case 621:
			case 622:
			case 623:
			case 624:
			case 625:
			case 626:
			case 627:
			case 628:
			case 629:
			case 630:
			case 632:
			case 633:
			case 634:
			case 635:
			case 636:
			case 637:
			case 638:
			case 639:
			case 640:
			case 641:
			case 642:
			case 643:
			case 644:
			case 645:
			case 646:
			case 647:
			case 648:
			case 649:
			case 650:
			case 651:
			case 653:
			case 654:
			case 655:
			case 656:
			case 657:
			case 658:
			case 659:
			case 660:
			case 661:
			case 662:
			case 663:
			case 664:
			case 665:
			case 666:
			case 667:
			case 668:
			case 670:
			case 671:
			case 672:
			case 673:
			case 674:
			case 675:
			case 676:
			case 677:
			case 678:
			case 679:
			case 680:
			case 681:
			case 682:
			case 683:
			case 684:
			case 685:
			case 686:
			case 687:
			case 689:
			case 690:
			case 692:
			case 693:
			case 694:
			case 696:
			case 697:
			case 698:
			case 699:
			case 700:
			case 701:
			case 702:
			case 703:
			case 704:
			case 705:
			case 706:
			case 707:
			case 708:
			case 709:
			case 710:
			case 711:
			case 712:
			case 713:
			case 714:
			case 715:
			case 716:
			case 717:
			case 718:
			case 719:
			case 720:
			case 721:
			case 722:
			case 723:
			case 724:
			case 725:
			case 726:
			case 727:
			case 728:
			case 729:
			case 730:
			case 731:
			case 732:
			case 733:
			case 734:
			case 735:
			case 736:
			case 737:
			case 738:
			case 739:
			case 740:
			case 741:
			case 742:
			case 743:
			case 744:
			case 745:
			case 746:
			case 747:
			case 748:
			case 749:
			case 750:
			case 751:
			case 752:
			case 753:
			case 754:
			case 755:
			case 756:
			case 758:
			case 759:
			case 760:
			case 761:
			case 762:
			case 763:
			case 764:
			case 765:
			case 766:
			case 767:
			case 768:
			case 769:
			case 770:
			case 771:
			case 772:
			case 773:
			case 774:
			case 775:
			case 777:
			case 778:
			case 779:
			case 780:
			case 781:
			case 782:
			case 783:
			case 784:
			case 785:
			case 786:
			case 787:
			case 788:
			case 789:
			case 790:
			case 791:
			case 792:
			case 793:
			case 794:
			case 795:
			case 796:
			case 797:
			case 798:
			case 799:
			case 800:
			case 801:
			case 802:
			case 803:
			case 804:
			case 805:
			case 806:
			case 807:
			case 808:
			case 809:
			case 810:
			case 811:
			case 812:
			case 813:
			case 814:
			case 815:
			case 816:
			case 817:
			case 818:
			case 819:
			case 820:
			case 821:
			case 822:
			case 823:
			case 824:
			case 825:
			case 826:
			case 827:
			case 828:
			case 829:
			case 830:
			case 831:
			case 832:
			case 833:
			case 834:
			case 835:
			case 836:
			case 837:
			case 838:
			case 839:
			case 840:
			case 841:
			case 843:
			case 844:
			case 845:
			case 846:
			case 847:
			case 848:
			case 849:
			case 850:
			case 851:
			case 852:
			case 853:
			case 854:
			case 855:
			case 856:
			case 857:
			case 858:
			case 859:
			case 861:
			case 862:
			case 863:
			case 864:
			case 865:
			case 866:
			case 867:
			case 868:
			case 869:
			case 870:
			case 871:
			case 872:
			case 873:
			case 874:
			case 875:
			case 876:
			case 877:
			case 878:
			case 879:
			case 880:
			case 881:
			case 882:
			case 883:
			case 884:
			case 885:
			case 886:
			case 888:
			case 889:
			case 890:
			case 891:
			case 892:
			case 893:
			case 894:
			case 895:
			case 896:
			case 897:
			case 898:
			case 899:
			case 900:
			case 901:
			case 902:
			case 903:
			case 904:
			case 905:
			case 906:
			case 907:
			case 908:
			case 909:
			case 910:
			case 911:
			case 912:
			case 913:
			case 914:
			case 915:
			case 916:
			case 917:
			case 918:
			case 919:
			case 920:
			case 921:
			case 922:
			case 923:
			case 924:
			case 925:
			case 926:
			case 927:
			case 928:
			case 929:
			case 930:
			case 931:
			case 932:
			case 933:
			case 934:
			case 935:
			case 936:
			case 937:
			case 938:
			case 939:
			case 940:
			case 941:
			case 942:
			case 943:
			case 944:
			case 945:
			case 946:
			case 947:
			case 948:
			case 949:
			case 950:
			case 951:
			case 952:
			case 954:
			case 955:
			case 956:
			case 957:
			case 958:
			case 959:
			case 960:
			case 961:
			case 962:
			case 963:
			case 964:
			case 965:
			case 966:
			case 967:
			case 968:
			case 969:
			case 970:
			case 971:
			case 972:
			case 973:
			case 974:
			case 975:
			case 976:
			case 977:
			case 978:
			case 979:
			case 980:
			case 981:
			case 982:
			case 983:
			case 984:
			case 985:
			case 986:
			case 987:
			case 988:
			case 989:
			case 990:
			case 991:
			case 992:
			case 993:
			case 994:
			case 995:
			case 996:
			case 997:
			case 998:
			case 999:
			case 1000:
			case 1001:
			case 1002:
			case 1003:
			case 1004:
			case 1005:
			case 1006:
			case 1007:
			case 1008:
			case 1009:
			case 1010:
			case 1011:
			case 1012:
			case 1013:
			case 1014:
			case 1015:
			case 1016:
			case 1017:
			case 1018:
			case 1019:
			case 1020:
			case 1021:
			case 1022:
			case 1023:
			case 1024:
			case 1025:
			case 1026:
			case 1027:
			case 1028:
			case 1029:
			case 1030:
			case 1031:
			case 1032:
			case 1033:
			case 1034:
			case 1035:
			case 1036:
			case 1037:
			case 1038:
			case 1039:
			case 1040:
			case 1041:
			case 1042:
			case 1043:
			case 1044:
			case 1045:
			case 1046:
			case 1047:
			case 1048:
			case 1049:
			case 1050:
			case 1051:
			case 1052:
			case 1053:
			case 1054:
			case 1055:
			case 1056:
			case 1057:
			case 1058:
			case 1059:
			case 1060:
			case 1061:
			case 1062:
			case 1063:
			case 1064:
			case 1065:
			case 1066:
			case 1067:
			case 1068:
			case 1069:
			case 1070:
			case 1071:
			case 1072:
			case 1074:
			case 1075:
			case 1076:
			case 1077:
			case 1078:
			case 1079:
			case 1080:
			case 1081:
			case 1082:
			case 1083:
			case 1084:
			case 1085:
			case 1086:
			case 1087:
			case 1089:
			case 1090:
			case 1091:
			case 1092:
			case 1093:
			case 1094:
			case 1095:
			case 1096:
			case 1098:
			case 1099:
			case 1100:
			case 1101:
			case 1102:
			case 1103:
			case 1104:
			case 1105:
			case 1106:
			case 1107:
			case 1108:
			case 1109:
			case 1110:
			case 1111:
			case 1112:
			case 1113:
			case 1114:
			case 1116:
			case 1117:
			case 1118:
			case 1119:
			case 1120:
			case 1121:
			case 1122:
			case 1123:
			case 1124:
			case 1125:
			case 1127:
			case 1129:
			case 1130:
			case 1131:
			case 1132:
			case 1133:
			case 1134:
			case 1135:
			case 1136:
			case 1137:
			case 1138:
			case 1139:
			case 1140:
			case 1142:
			case 1143:
			case 1144:
			case 1145:
			case 1146:
			case 1147:
			case 1148:
			case 1149:
			case 1150:
			case 1151:
			case 1152:
			case 1153:
			case 1154:
			case 1155:
			case 1156:
			case 1157:
			case 1158:
			case 1159:
			case 1160:
			case 1161:
			case 1162:
			case 1163:
			case 1164:
			case 1165:
			case 1166:
			case 1167:
			case 1169:
			case 1170:
			case 1171:
			case 1173:
			case 1174:
			case 1175:
			case 1176:
			case 1177:
			case 1178:
			case 1179:
			case 1180:
			case 1181:
			case 1182:
			case 1183:
			case 1184:
			case 1185:
			case 1186:
			case 1187:
			case 1188:
			case 1189:
			case 1190:
			case 1191:
			case 1192:
			case 1193:
			case 1194:
			case 1195:
			case 1197:
			case 1198:
			case 1199:
			case 1200:
			case 1201:
			case 1202:
			case 1203:
			case 1204:
			case 1205:
			case 1206:
			case 1207:
			case 1208:
			case 1209:
			case 1210:
			case 1211:
			case 1212:
			case 1213:
			case 1214:
			case 1215:
			case 1216:
			case 1217:
			case 1218:
			case 1219:
			case 1220:
			case 1221:
			case 1222:
			case 1223:
			case 1224:
			case 1225:
			case 1226:
			case 1228:
			case 1229:
			case 1230:
			case 1231:
			case 1232:
			case 1236:
			case 1237:
			case 1241:
			case 1242:
			case 1243:
			case 1244:
			case 1245:
			case 1246:
			case 1247:
			case 1248:
			case 1249:
			case 1250:
			case 1252:
			case 1253:
			case 1254:
			case 1255:
			case 1256:
			case 1257:
			case 1258:
			case 1259:
			case 1260:
			case 1261:
			case 1262:
			case 1263:
			case 1264:
			case 1265:
			case 1266:
			case 1267:
			case 1268:
			case 1269:
			case 1270:
			case 1271:
			case 1272:
			case 1273:
			case 1274:
			case 1275:
			case 1276:
			case 1277:
			case 1278:
			case 1279:
			case 1280:
			case 1281:
			case 1282:
			case 1283:
			case 1284:
			case 1285:
			case 1286:
			case 1287:
			case 1288:
			case 1289:
			case 1290:
			case 1291:
			case 1292:
			case 1293:
			case 1294:
			case 1295:
			case 1296:
			case 1297:
			case 1298:
			case 1299:
			case 1300:
			case 1301:
			case 1302:
			case 1303:
			case 1304:
			case 1305:
			case 1306:
			case 1308:
			case 1309:
			case 1310:
			case 1311:
			case 1312:
			case 1313:
			case 1314:
			case 1315:
			case 1316:
			case 1317:
			case 1318:
			case 1319:
			case 1320:
			case 1321:
			case 1322:
			case 1323:
			case 1325:
			case 1326:
			case 1327:
			case 1328:
			case 1329:
			case 1330:
			case 1331:
			case 1332:
			case 1333:
			case 1334:
			case 1335:
			case 1336:
			case 1337:
			case 1338:
			case 1339:
			case 1340:
			case 1341:
			case 1342:
			case 1343:
			case 1344:
			case 1345:
			case 1346:
			case 1347:
			case 1348:
			case 1349:
			case 1350:
			case 1351:
			case 1352:
			case 1353:
			case 1354:
			case 1355:
			case 1356:
			case 1357:
			case 1358:
			case 1359:
			case 1360:
			case 1361:
			case 1362:
			case 1363:
			case 1364:
			case 1365:
			case 1366:
			case 1367:
			case 1368:
			case 1369:
			case 1370:
			case 1371:
			case 1372:
			case 1373:
			case 1374:
			case 1375:
			case 1376:
			case 1377:
			case 1378:
			case 1379:
			case 1380:
			case 1381:
			case 1382:
			case 1383:
			case 1384:
			case 1385:
			case 1386:
			case 1387:
			case 1388:
			case 1389:
			case 1390:
			case 1391:
			case 1392:
			case 1393:
			case 1394:
			case 1395:
			case 1396:
			case 1397:
			case 1399:
			case 1400:
			case 1401:
			case 1402:
			case 1403:
			case 1404:
			case 1405:
			case 1406:
			case 1407:
			case 1408:
			case 1409:
			case 1410:
			case 1411:
			case 1412:
			case 1413:
			case 1414:
			case 1416:
			case 1417:
			case 1418:
			case 1419:
			case 1420:
			case 1421:
			case 1422:
			case 1423:
			case 1424:
			case 1425:
			case 1426:
			case 1427:
			case 1428:
			case 1429:
			case 1430:
			case 1431:
			case 1432:
			case 1433:
			case 1435:
			case 1436:
			case 1437:
			case 1438:
			case 1439:
			case 1440:
			case 1441:
			case 1442:
			case 1443:
			case 1444:
			case 1445:
			case 1446:
			case 1447:
			case 1448:
			case 1449:
			case 1450:
			case 1451:
			case 1452:
			case 1453:
			case 1454:
			case 1455:
			case 1456:
			case 1457:
			case 1458:
			case 1459:
			case 1460:
			case 1461:
			case 1462:
			case 1463:
			case 1464:
			case 1465:
			case 1466:
			case 1467:
			case 1468:
			case 1469:
			case 1470:
			case 1471:
			case 1472:
			case 1473:
			case 1474:
			case 1475:
			case 1476:
			case 1477:
			case 1478:
			case 1479:
			case 1480:
			case 1481:
			case 1482:
			case 1483:
			case 1484:
			case 1485:
			case 1486:
			case 1487:
			case 1488:
			case 1489:
			case 1491:
			case 1492:
			case 1493:
			case 1494:
			case 1495:
			case 1496:
			case 1497:
			case 1499:
			case 1500:
			case 1501:
			case 1502:
			case 1503:
			case 1504:
			case 1505:
			case 1506:
			case 1507:
			case 1508:
			case 1509:
			case 1510:
			case 1511:
			case 1512:
			case 1513:
			case 1514:
			case 1515:
			case 1516:
			case 1518:
			case 1519:
			case 1520:
			case 1521:
			case 1522:
			case 1523:
			case 1524:
			case 1525:
			case 1526:
			case 1527:
			case 1528:
			case 1529:
			case 1530:
			case 1531:
			case 1532:
			case 1533:
			case 1534:
			case 1536:
			case 1537:
			case 1538:
			case 1539:
			case 1540:
			case 1541:
			case 1542:
			case 1543:
			case 1544:
			case 1545:
			case 1546:
			case 1547:
			case 1548:
			case 1549:
			case 1550:
			case 1551:
			case 1552:
			case 1553:
			case 1554:
			case 1555:
			case 1556:
			case 1557:
			case 1558:
			case 1559:
			case 1560:
			case 1561:
			case 1562:
			case 1563:
			case 1564:
			case 1565:
			case 1566:
			case 1567:
			case 1568:
			case 1570:
			case 1571:
			case 1572:
			case 1573:
			case 1574:
			case 1575:
			case 1576:
			case 1577:
			case 1578:
			case 1579:
			case 1580:
			case 1581:
			case 1582:
			case 1583:
			case 1584:
			case 1585:
			case 1586:
			case 1587:
			case 1588:
			case 1589:
			case 1590:
			case 1591:
			case 1592:
			case 1593:
			case 1594:
			case 1595:
			case 1596:
			case 1597:
			case 1598:
			case 1599:
			case 1600:
			case 1601:
			case 1602:
			case 1603:
			case 1604:
			case 1605:
			case 1606:
			case 1607:
			case 1608:
			case 1609:
			case 1610:
			case 1611:
			case 1612:
			case 1613:
			case 1614:
			case 1615:
			case 1616:
			case 1617:
			case 1618:
			case 1619:
			case 1620:
			case 1621:
			case 1622:
			case 1623:
			case 1624:
			case 1625:
			case 1626:
			case 1628:
			case 1629:
			case 1630:
			case 1631:
			case 1632:
			case 1633:
			case 1634:
			case 1635:
			case 1636:
			case 1637:
			case 1638:
			case 1639:
			case 1640:
			case 1641:
			case 1642:
			case 1643:
			case 1644:
			case 1645:
			case 1646:
			case 1647:
			case 1648:
			case 1649:
			case 1650:
			case 1651:
			case 1652:
			case 1653:
			case 1654:
			case 1655:
			case 1656:
			case 1657:
			case 1658:
			case 1659:
			case 1660:
			case 1661:
			case 1662:
			case 1663:
			case 1664:
			case 1665:
			case 1666:
			case 1667:
			case 1668:
			case 1669:
			case 1670:
			case 1671:
			case 1672:
			case 1673:
			case 1674:
			case 1675:
			case 1676:
			case 1677:
			case 1678:
			case 1679:
			case 1680:
			case 1681:
			case 1682:
			case 1683:
			case 1684:
			case 1685:
			case 1686:
			case 1687:
			case 1688:
			case 1689:
			case 1690:
			case 1691:
			case 1692:
			case 1693:
			case 1694:
			case 1695:
			case 1696:
			case 1697:
			case 1698:
			case 1699:
			case 1700:
			case 1701:
			case 1702:
			case 1703:
			case 1704:
			case 1705:
			case 1706:
			case 1707:
			case 1708:
			case 1709:
			case 1710:
			case 1711:
			case 1712:
			case 1713:
			case 1714:
			case 1715:
			case 1716:
			case 1717:
			case 1718:
			case 1719:
			case 1720:
			case 1721:
			case 1722:
			case 1723:
			case 1724:
			case 1725:
			case 1726:
			case 1727:
			case 1728:
			case 1729:
			case 1730:
			case 1731:
			case 1732:
			case 1733:
			case 1734:
			case 1735:
			case 1736:
			case 1737:
			case 1738:
			case 1739:
			case 1740:
			case 1741:
			case 1742:
			case 1743:
			case 1744:
			case 1745:
			case 1746:
			case 1747:
			case 1748:
			case 1749:
			case 1750:
			case 1751:
			case 1752:
			case 1753:
			case 1754:
			case 1755:
			case 1756:
			case 1757:
			case 1758:
			case 1759:
			case 1760:
			case 1761:
			case 1762:
			case 1763:
			case 1764:
			case 1765:
			case 1766:
			case 1767:
			case 1768:
			case 1769:
			case 1770:
			case 1771:
			case 1772:
			case 1773:
			case 1774:
			case 1775:
			case 1776:
			case 1777:
			case 1778:
			case 1779:
			case 1780:
			case 1781:
			case 1782:
			case 1783:
			case 1784:
			case 1785:
			case 1786:
			case 1787:
			case 1788:
			case 1789:
			case 1790:
			case 1791:
			case 1792:
			case 1793:
			case 1794:
			case 1795:
			case 1796:
			case 1797:
			case 1798:
			case 1799:
			case 1800:
			case 1801:
			case 1802:
			case 1803:
			case 1804:
			case 1805:
			case 1806:
			case 1807:
			case 1808:
			case 1809:
			case 1810:
			case 1811:
			case 1812:
			case 1813:
			case 1814:
			case 1815:
			case 1816:
			case 1817:
			case 1818:
			case 1819:
			case 1820:
			case 1821:
			case 1822:
			case 1823:
			case 1824:
			case 1825:
			case 1826:
			case 1827:
			case 1828:
			case 1829:
			case 1830:
			case 1831:
			case 1832:
			case 1833:
			case 1834:
			case 1835:
			case 1836:
			case 1837:
			case 1838:
			case 1839:
			case 1840:
			case 1841:
			case 1842:
			case 1843:
			case 1844:
			case 1845:
			case 1846:
			case 1847:
			case 1848:
			case 1849:
			case 1850:
			case 1851:
			case 1852:
			case 1853:
			case 1854:
			case 1855:
			case 1856:
			case 1857:
			case 1858:
			case 1859:
			case 1860:
			case 1861:
			case 1862:
			case 1863:
			case 1864:
			case 1865:
			case 1866:
			case 1867:
			case 1868:
			case 1869:
			case 1870:
			case 1871:
			case 1872:
			case 1873:
			case 1874:
			case 1875:
			case 1876:
			case 1877:
			case 1878:
			case 1879:
			case 1880:
			case 1881:
			case 1882:
			case 1883:
			case 1884:
			case 1885:
			case 1886:
			case 1887:
			case 1888:
			case 1889:
			case 1890:
			case 1891:
			case 1892:
			case 1893:
			case 1894:
			case 1895:
			case 1896:
			case 1897:
			case 1898:
			case 1899:
			case 1900:
			case 1901:
			case 1902:
			case 1903:
			case 1904:
			case 1905:
			case 1906:
			case 1907:
			case 1908:
			case 1909:
			case 1910:
			case 1911:
			case 1912:
			case 1913:
			case 1914:
			case 1915:
			case 1916:
			case 1917:
			case 1918:
			case 1919:
			case 1920:
			case 1921:
			case 1922:
			case 1923:
			case 1924:
			case 1925:
			case 1926:
			case 1927:
			case 1928:
			case 1929:
			case 1930:
			case 1931:
			case 1932:
			case 1933:
			case 1934:
			case 1935:
			case 1936:
			case 1937:
			case 1939:
			case 1940:
			case 1941:
			case 1942:
			case 1943:
			case 1944:
			case 1945:
			case 1946:
			case 1947:
			case 1948:
			case 1949:
			case 1950:
			case 1951:
			case 1952:
			case 1953:
			case 1954:
			case 1955:
			case 1956:
			case 1957:
			case 1958:
			case 1959:
			case 1960:
			case 1961:
			case 1962:
			case 1963:
			case 1965:
			case 1966:
			case 1967:
			case 1968:
			case 1969:
			case 1970:
			case 1971:
			case 1972:
			case 1973:
			case 1974:
			case 1975:
			case 1976:
			case 1977:
			case 1978:
			case 1979:
			case 1980:
			case 1981:
			case 1982:
			case 1983:
			case 1984:
			case 1985:
			case 1986:
			case 1987:
			case 1988:
			case 1989:
			case 1990:
			case 1991:
			case 1992:
			case 1993:
			case 1994:
			case 1995:
			case 1996:
			case 1997:
			case 1998:
			case 1999:
			case 2000:
			case 2003:
			case 2004:
			case 2005:
			case 2006:
			case 2007:
			case 2008:
			case 2009:
			case 2010:
			case 2011:
			case 2012:
			case 2013:
			case 2014:
			case 2015:
			case 2016:
			case 2017:
			case 2018:
			case 2019:
			case 2020:
			case 2021:
			case 2022:
			case 2023:
			case 2024:
			case 2026:
			case 2027:
			case 2028:
			case 2029:
			case 2030:
			case 2031:
			case 2032:
			case 2033:
			case 2034:
			case 2035:
			case 2036:
			case 2037:
			case 2038:
			case 2039:
			case 2040:
			case 2041:
			case 2042:
			case 2043:
			case 2044:
			case 2045:
			case 2046:
			case 2047:
			case 2048:
			case 2049:
			case 2050:
			case 2051:
			case 2052:
			case 2053:
			case 2054:
			case 2055:
			case 2056:
			case 2057:
			case 2058:
			case 2059:
			case 2060:
			case 2061:
			case 2062:
			case 2063:
			case 2064:
			case 2065:
			case 2066:
			case 2067:
			case 2068:
			case 2069:
			case 2070:
			case 2071:
			case 2072:
			case 2074:
			case 2075:
			case 2076:
			case 2077:
			case 2078:
			case 2079:
			case 2080:
			case 2081:
			case 2082:
			case 2083:
			case 2084:
			case 2085:
			case 2086:
			case 2087:
			case 2088:
			case 2089:
			case 2090:
			case 2091:
			case 2092:
			case 2093:
			case 2094:
			case 2095:
			case 2096:
			case 2097:
			case 2098:
			case 2100:
			case 2101:
			case 2102:
			case 2103:
			case 2104:
			case 2105:
			case 2106:
			case 2107:
			case 2108:
			case 2109:
			case 2110:
			case 2111:
			case 2112:
			case 2113:
			case 2115:
			case 2116:
			case 2117:
			case 2118:
			case 2119:
			case 2120:
			case 2122:
			case 2123:
			case 2124:
			case 2125:
			case 2126:
			case 2128:
			case 2129:
			case 2130:
			case 2131:
			case 2132:
			case 2133:
			case 2134:
			case 2135:
			case 2136:
			case 2137:
			case 2138:
			case 2139:
			case 2140:
			case 2141:
			case 2142:
			case 2143:
			case 2145:
			case 2146:
			case 2147:
			case 2148:
			case 2149:
			case 2150:
			case 2151:
			case 2152:
			case 2153:
			case 2154:
			case 2155:
			case 2156:
			case 2157:
			case 2158:
			case 2159:
			case 2160:
			case 2161:
			case 2162:
			case 2163:
			case 2164:
			case 2165:
			case 2166:
			case 2168:
			case 2169:
			case 2170:
			case 2171:
			case 2172:
			case 2173:
			case 2174:
			case 2175:
			case 2176:
			case 2177:
			case 2178:
			case 2179:
			case 2180:
			case 2181:
			case 2182:
			case 2183:
			case 2184:
			case 2185:
			case 2186:
			case 2187:
			case 2188:
			case 2189:
			case 2191:
			case 2192:
			case 2193:
			case 2194:
			case 2195:
			case 2196:
			case 2197:
			case 2198:
			case 2199:
			case 2200:
			case 2201:
			case 2202:
			case 2203:
			case 2204:
			case 2205:
			case 2206:
			case 2207:
			case 2208:
			case 2209:
			case 2210:
			case 2211:
			case 2216:
			case 2252:
				{
				this.state = 3869;
				this.statistics_type_name();
				}
				break;
			case 1097:
				{
				this.state = 3870;
				this.match(PlSqlParser.NULL_);
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public statistics_type_name(): Statistics_type_nameContext {
		let localctx: Statistics_type_nameContext = new Statistics_type_nameContext(this, this._ctx, this.state);
		this.enterRule(localctx, 332, PlSqlParser.RULE_statistics_type_name);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 3873;
			this.regular_id();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public default_cost_clause(): Default_cost_clauseContext {
		let localctx: Default_cost_clauseContext = new Default_cost_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 334, PlSqlParser.RULE_default_cost_clause);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 3875;
			this.match(PlSqlParser.DEFAULT);
			this.state = 3876;
			this.match(PlSqlParser.COST);
			this.state = 3877;
			this.match(PlSqlParser.LEFT_PAREN);
			this.state = 3878;
			this.cpu_cost();
			this.state = 3879;
			this.match(PlSqlParser.COMMA);
			this.state = 3880;
			this.io_cost();
			this.state = 3881;
			this.match(PlSqlParser.COMMA);
			this.state = 3882;
			this.network_cost();
			this.state = 3883;
			this.match(PlSqlParser.RIGHT_PAREN);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public cpu_cost(): Cpu_costContext {
		let localctx: Cpu_costContext = new Cpu_costContext(this, this._ctx, this.state);
		this.enterRule(localctx, 336, PlSqlParser.RULE_cpu_cost);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 3885;
			this.match(PlSqlParser.UNSIGNED_INTEGER);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public io_cost(): Io_costContext {
		let localctx: Io_costContext = new Io_costContext(this, this._ctx, this.state);
		this.enterRule(localctx, 338, PlSqlParser.RULE_io_cost);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 3887;
			this.match(PlSqlParser.UNSIGNED_INTEGER);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public network_cost(): Network_costContext {
		let localctx: Network_costContext = new Network_costContext(this, this._ctx, this.state);
		this.enterRule(localctx, 340, PlSqlParser.RULE_network_cost);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 3889;
			this.match(PlSqlParser.UNSIGNED_INTEGER);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public default_selectivity_clause(): Default_selectivity_clauseContext {
		let localctx: Default_selectivity_clauseContext = new Default_selectivity_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 342, PlSqlParser.RULE_default_selectivity_clause);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 3891;
			this.match(PlSqlParser.DEFAULT);
			this.state = 3892;
			this.match(PlSqlParser.SELECTIVITY);
			this.state = 3893;
			this.default_selectivity();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public default_selectivity(): Default_selectivityContext {
		let localctx: Default_selectivityContext = new Default_selectivityContext(this, this._ctx, this.state);
		this.enterRule(localctx, 344, PlSqlParser.RULE_default_selectivity);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 3895;
			this.match(PlSqlParser.UNSIGNED_INTEGER);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public storage_table_clause(): Storage_table_clauseContext {
		let localctx: Storage_table_clauseContext = new Storage_table_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 346, PlSqlParser.RULE_storage_table_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 3897;
			this.match(PlSqlParser.WITH);
			this.state = 3898;
			_la = this._input.LA(1);
			if(!(_la===1779 || _la===2055)) {
			this._errHandler.recoverInline(this);
			}
			else {
				this._errHandler.reportMatch(this);
			    this.consume();
			}
			this.state = 3899;
			this.match(PlSqlParser.MANAGED);
			this.state = 3900;
			this.match(PlSqlParser.STORAGE);
			this.state = 3901;
			this.match(PlSqlParser.TABLES);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public unified_auditing(): Unified_auditingContext {
		let localctx: Unified_auditingContext = new Unified_auditingContext(this, this._ctx, this.state);
		this.enterRule(localctx, 348, PlSqlParser.RULE_unified_auditing);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 3903;
			if (!(this.isVersion12())) {
				throw this.createFailedPredicateException("this.isVersion12()");
			}
			this.state = 3904;
			this.match(PlSqlParser.AUDIT);
			this.state = 3948;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 1267:
				{
				this.state = 3905;
				this.match(PlSqlParser.POLICY);
				this.state = 3906;
				this.policy_name();
				this.state = 3916;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===146 || _la===467) {
					{
					this.state = 3907;
					_la = this._input.LA(1);
					if(!(_la===146 || _la===467)) {
					this._errHandler.recoverInline(this);
					}
					else {
						this._errHandler.reportMatch(this);
					    this.consume();
					}
					this.state = 3908;
					this.audit_user();
					this.state = 3913;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
					while (_la===2229) {
						{
						{
						this.state = 3909;
						this.match(PlSqlParser.COMMA);
						this.state = 3910;
						this.audit_user();
						}
						}
						this.state = 3915;
						this._errHandler.sync(this);
						_la = this._input.LA(1);
					}
					}
				}

				this.state = 3923;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===2112) {
					{
					this.state = 3918;
					this.match(PlSqlParser.WHENEVER);
					this.state = 3920;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
					if (_la===1073) {
						{
						this.state = 3919;
						this.match(PlSqlParser.NOT);
						}
					}

					this.state = 3922;
					this.match(PlSqlParser.SUCCESSFUL);
					}
				}

				}
				break;
			case 265:
				{
				this.state = 3925;
				this.match(PlSqlParser.CONTEXT);
				this.state = 3926;
				this.match(PlSqlParser.NAMESPACE);
				this.state = 3927;
				this.oracle_namespace();
				this.state = 3928;
				this.match(PlSqlParser.ATTRIBUTES);
				this.state = 3929;
				this.attribute_name();
				this.state = 3934;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===2229) {
					{
					{
					this.state = 3930;
					this.match(PlSqlParser.COMMA);
					this.state = 3931;
					this.attribute_name();
					}
					}
					this.state = 3936;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				this.state = 3946;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===146) {
					{
					this.state = 3937;
					this.match(PlSqlParser.BY);
					this.state = 3938;
					this.audit_user();
					this.state = 3943;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
					while (_la===2229) {
						{
						{
						this.state = 3939;
						this.match(PlSqlParser.COMMA);
						this.state = 3940;
						this.audit_user();
						}
						}
						this.state = 3945;
						this._errHandler.sync(this);
						_la = this._input.LA(1);
					}
					}
				}

				}
				break;
			default:
				throw new NoViableAltException(this);
			}
			this.state = 3950;
			this.match(PlSqlParser.SEMICOLON);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public policy_name(): Policy_nameContext {
		let localctx: Policy_nameContext = new Policy_nameContext(this, this._ctx, this.state);
		this.enterRule(localctx, 350, PlSqlParser.RULE_policy_name);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 3952;
			this.identifier();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public audit_traditional(): Audit_traditionalContext {
		let localctx: Audit_traditionalContext = new Audit_traditionalContext(this, this._ctx, this.state);
		this.enterRule(localctx, 352, PlSqlParser.RULE_audit_traditional);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 3954;
			this.match(PlSqlParser.AUDIT);
			this.state = 3965;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 359, this._ctx) ) {
			case 1:
				{
				this.state = 3955;
				this.audit_operation_clause();
				this.state = 3960;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 358, this._ctx) ) {
				case 1:
					{
					this.state = 3956;
					this.auditing_by_clause();
					}
					break;
				case 2:
					{
					this.state = 3957;
					this.match(PlSqlParser.IN);
					this.state = 3958;
					this.match(PlSqlParser.SESSION);
					this.state = 3959;
					this.match(PlSqlParser.CURRENT);
					}
					break;
				}
				}
				break;
			case 2:
				{
				this.state = 3962;
				this.audit_schema_object_clause();
				}
				break;
			case 3:
				{
				this.state = 3963;
				this.match(PlSqlParser.NETWORK);
				}
				break;
			case 4:
				{
				this.state = 3964;
				this.audit_direct_path();
				}
				break;
			}
			this.state = 3969;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 360, this._ctx) ) {
			case 1:
				{
				this.state = 3967;
				this.match(PlSqlParser.BY);
				this.state = 3968;
				_la = this._input.LA(1);
				if(!(_la===3 || _la===1506)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				}
				break;
			}
			this.state = 3976;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 362, this._ctx) ) {
			case 1:
				{
				this.state = 3971;
				this.match(PlSqlParser.WHENEVER);
				this.state = 3973;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===1073) {
					{
					this.state = 3972;
					this.match(PlSqlParser.NOT);
					}
				}

				this.state = 3975;
				this.match(PlSqlParser.SUCCESSFUL);
				}
				break;
			}
			this.state = 3979;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 363, this._ctx) ) {
			case 1:
				{
				this.state = 3978;
				this.audit_container_clause();
				}
				break;
			}
			this.state = 3981;
			this.match(PlSqlParser.SEMICOLON);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public audit_direct_path(): Audit_direct_pathContext {
		let localctx: Audit_direct_pathContext = new Audit_direct_pathContext(this, this._ctx, this.state);
		this.enterRule(localctx, 354, PlSqlParser.RULE_audit_direct_path);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 3983;
			if (!(this.isVersion12())) {
				throw this.createFailedPredicateException("this.isVersion12()");
			}
			this.state = 3984;
			this.match(PlSqlParser.DIRECT_PATH);
			this.state = 3985;
			this.auditing_by_clause();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public audit_container_clause(): Audit_container_clauseContext {
		let localctx: Audit_container_clauseContext = new Audit_container_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 356, PlSqlParser.RULE_audit_container_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 3987;
			if (!(this.isVersion12())) {
				throw this.createFailedPredicateException("this.isVersion12()");
			}
			{
			this.state = 3988;
			this.match(PlSqlParser.CONTAINER);
			this.state = 3989;
			this.match(PlSqlParser.EQUALS_OP);
			this.state = 3990;
			_la = this._input.LA(1);
			if(!(_la===35 || _la===302)) {
			this._errHandler.recoverInline(this);
			}
			else {
				this._errHandler.reportMatch(this);
			    this.consume();
			}
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public audit_operation_clause(): Audit_operation_clauseContext {
		let localctx: Audit_operation_clauseContext = new Audit_operation_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 358, PlSqlParser.RULE_audit_operation_clause);
		try {
			let _alt: number;
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 4028;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 372, this._ctx) ) {
			case 1:
				{
				this.state = 3997;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 365, this._ctx) ) {
				case 1:
					{
					this.state = 3992;
					this.sql_statement_shortcut();
					}
					break;
				case 2:
					{
					this.state = 3993;
					this.match(PlSqlParser.ALL);
					this.state = 3995;
					this._errHandler.sync(this);
					switch ( this._interp.adaptivePredict(this._input, 364, this._ctx) ) {
					case 1:
						{
						this.state = 3994;
						this.match(PlSqlParser.STATEMENTS);
						}
						break;
					}
					}
					break;
				}
				this.state = 4009;
				this._errHandler.sync(this);
				_alt = this._interp.adaptivePredict(this._input, 368, this._ctx);
				while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) {
					if (_alt === 1) {
						{
						{
						this.state = 3999;
						this.match(PlSqlParser.COMMA);
						this.state = 4005;
						this._errHandler.sync(this);
						switch ( this._interp.adaptivePredict(this._input, 367, this._ctx) ) {
						case 1:
							{
							this.state = 4000;
							this.sql_statement_shortcut();
							}
							break;
						case 2:
							{
							this.state = 4001;
							this.match(PlSqlParser.ALL);
							this.state = 4003;
							this._errHandler.sync(this);
							switch ( this._interp.adaptivePredict(this._input, 366, this._ctx) ) {
							case 1:
								{
								this.state = 4002;
								this.match(PlSqlParser.STATEMENTS);
								}
								break;
							}
							}
							break;
						}
						}
						}
					}
					this.state = 4011;
					this._errHandler.sync(this);
					_alt = this._interp.adaptivePredict(this._input, 368, this._ctx);
				}
				}
				break;
			case 2:
				{
				this.state = 4015;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 369, this._ctx) ) {
				case 1:
					{
					this.state = 4012;
					this.system_privilege();
					}
					break;
				case 2:
					{
					this.state = 4013;
					this.match(PlSqlParser.ALL);
					this.state = 4014;
					this.match(PlSqlParser.PRIVILEGES);
					}
					break;
				}
				this.state = 4025;
				this._errHandler.sync(this);
				_alt = this._interp.adaptivePredict(this._input, 371, this._ctx);
				while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) {
					if (_alt === 1) {
						{
						{
						this.state = 4017;
						this.match(PlSqlParser.COMMA);
						this.state = 4021;
						this._errHandler.sync(this);
						switch ( this._interp.adaptivePredict(this._input, 370, this._ctx) ) {
						case 1:
							{
							this.state = 4018;
							this.system_privilege();
							}
							break;
						case 2:
							{
							this.state = 4019;
							this.match(PlSqlParser.ALL);
							this.state = 4020;
							this.match(PlSqlParser.PRIVILEGES);
							}
							break;
						}
						}
						}
					}
					this.state = 4027;
					this._errHandler.sync(this);
					_alt = this._interp.adaptivePredict(this._input, 371, this._ctx);
				}
				}
				break;
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public auditing_by_clause(): Auditing_by_clauseContext {
		let localctx: Auditing_by_clauseContext = new Auditing_by_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 360, PlSqlParser.RULE_auditing_by_clause);
		try {
			let _alt: number;
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 4030;
			this.match(PlSqlParser.BY);
			this.state = 4031;
			this.audit_user();
			this.state = 4036;
			this._errHandler.sync(this);
			_alt = this._interp.adaptivePredict(this._input, 373, this._ctx);
			while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) {
				if (_alt === 1) {
					{
					{
					this.state = 4032;
					this.match(PlSqlParser.COMMA);
					this.state = 4033;
					this.audit_user();
					}
					}
				}
				this.state = 4038;
				this._errHandler.sync(this);
				_alt = this._interp.adaptivePredict(this._input, 373, this._ctx);
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public audit_user(): Audit_userContext {
		let localctx: Audit_userContext = new Audit_userContext(this, this._ctx, this.state);
		this.enterRule(localctx, 362, PlSqlParser.RULE_audit_user);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 4039;
			this.regular_id();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public audit_schema_object_clause(): Audit_schema_object_clauseContext {
		let localctx: Audit_schema_object_clauseContext = new Audit_schema_object_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 364, PlSqlParser.RULE_audit_schema_object_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 4050;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 39:
			case 77:
			case 217:
			case 362:
			case 475:
			case 532:
			case 571:
			case 631:
			case 669:
			case 776:
			case 1353:
			case 1404:
			case 1490:
			case 2025:
				{
				this.state = 4041;
				this.sql_operation();
				this.state = 4046;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===2229) {
					{
					{
					this.state = 4042;
					this.match(PlSqlParser.COMMA);
					this.state = 4043;
					this.sql_operation();
					}
					}
					this.state = 4048;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				}
				break;
			case 35:
				{
				this.state = 4049;
				this.match(PlSqlParser.ALL);
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
			this.state = 4052;
			this.auditing_on_clause();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public sql_operation(): Sql_operationContext {
		let localctx: Sql_operationContext = new Sql_operationContext(this, this._ctx, this.state);
		this.enterRule(localctx, 366, PlSqlParser.RULE_sql_operation);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 4054;
			_la = this._input.LA(1);
			if(!(_la===39 || _la===77 || _la===217 || _la===362 || _la===475 || _la===532 || _la===571 || _la===631 || _la===669 || _la===776 || _la===1353 || _la===1404 || _la===1490 || _la===2025)) {
			this._errHandler.recoverInline(this);
			}
			else {
				this._errHandler.reportMatch(this);
			    this.consume();
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public auditing_on_clause(): Auditing_on_clauseContext {
		let localctx: Auditing_on_clauseContext = new Auditing_on_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 368, PlSqlParser.RULE_auditing_on_clause);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 4056;
			this.match(PlSqlParser.ON);
			this.state = 4069;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 376, this._ctx) ) {
			case 1:
				{
				this.state = 4057;
				this.object_name();
				}
				break;
			case 2:
				{
				this.state = 4058;
				this.match(PlSqlParser.DIRECTORY);
				this.state = 4059;
				this.regular_id();
				}
				break;
			case 3:
				{
				this.state = 4060;
				this.match(PlSqlParser.MINING);
				this.state = 4061;
				this.match(PlSqlParser.MODEL);
				this.state = 4062;
				this.model_name();
				}
				break;
			case 4:
				{
				this.state = 4063;
				if (!(this.isVersion12())) {
					throw this.createFailedPredicateException("this.isVersion12()");
				}
				this.state = 4064;
				this.match(PlSqlParser.SQL);
				this.state = 4065;
				this.match(PlSqlParser.TRANSLATION);
				this.state = 4066;
				this.match(PlSqlParser.PROFILE);
				this.state = 4067;
				this.profile_name();
				}
				break;
			case 5:
				{
				this.state = 4068;
				this.match(PlSqlParser.DEFAULT);
				}
				break;
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public model_name(): Model_nameContext {
		let localctx: Model_nameContext = new Model_nameContext(this, this._ctx, this.state);
		this.enterRule(localctx, 370, PlSqlParser.RULE_model_name);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 4074;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 377, this._ctx) ) {
			case 1:
				{
				this.state = 4071;
				this.id_expression();
				this.state = 4072;
				this.match(PlSqlParser.PERIOD);
				}
				break;
			}
			this.state = 4076;
			this.id_expression();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public object_name(): Object_nameContext {
		let localctx: Object_nameContext = new Object_nameContext(this, this._ctx, this.state);
		this.enterRule(localctx, 372, PlSqlParser.RULE_object_name);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 4081;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 378, this._ctx) ) {
			case 1:
				{
				this.state = 4078;
				this.id_expression();
				this.state = 4079;
				this.match(PlSqlParser.PERIOD);
				}
				break;
			}
			this.state = 4083;
			this.id_expression();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public profile_name(): Profile_nameContext {
		let localctx: Profile_nameContext = new Profile_nameContext(this, this._ctx, this.state);
		this.enterRule(localctx, 374, PlSqlParser.RULE_profile_name);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 4088;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 379, this._ctx) ) {
			case 1:
				{
				this.state = 4085;
				this.id_expression();
				this.state = 4086;
				this.match(PlSqlParser.PERIOD);
				}
				break;
			}
			this.state = 4090;
			this.id_expression();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public sql_statement_shortcut(): Sql_statement_shortcutContext {
		let localctx: Sql_statement_shortcutContext = new Sql_statement_shortcutContext(this, this._ctx, this.state);
		this.enterRule(localctx, 376, PlSqlParser.RULE_sql_statement_shortcut);
		try {
			this.state = 4162;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 380, this._ctx) ) {
			case 1:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 4092;
				this.match(PlSqlParser.ALTER);
				this.state = 4093;
				this.match(PlSqlParser.SYSTEM);
				}
				break;
			case 2:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 4094;
				this.match(PlSqlParser.CLUSTER);
				}
				break;
			case 3:
				this.enterOuterAlt(localctx, 3);
				{
				this.state = 4095;
				this.match(PlSqlParser.CONTEXT);
				}
				break;
			case 4:
				this.enterOuterAlt(localctx, 4);
				{
				this.state = 4096;
				this.match(PlSqlParser.DATABASE);
				this.state = 4097;
				this.match(PlSqlParser.LINK);
				}
				break;
			case 5:
				this.enterOuterAlt(localctx, 5);
				{
				this.state = 4098;
				this.match(PlSqlParser.DIMENSION);
				}
				break;
			case 6:
				this.enterOuterAlt(localctx, 6);
				{
				this.state = 4099;
				this.match(PlSqlParser.DIRECTORY);
				}
				break;
			case 7:
				this.enterOuterAlt(localctx, 7);
				{
				this.state = 4100;
				this.match(PlSqlParser.INDEX);
				}
				break;
			case 8:
				this.enterOuterAlt(localctx, 8);
				{
				this.state = 4101;
				this.match(PlSqlParser.MATERIALIZED);
				this.state = 4102;
				this.match(PlSqlParser.VIEW);
				}
				break;
			case 9:
				this.enterOuterAlt(localctx, 9);
				{
				this.state = 4103;
				this.match(PlSqlParser.NOT);
				this.state = 4104;
				this.match(PlSqlParser.EXISTS);
				}
				break;
			case 10:
				this.enterOuterAlt(localctx, 10);
				{
				this.state = 4105;
				this.match(PlSqlParser.OUTLINE);
				}
				break;
			case 11:
				this.enterOuterAlt(localctx, 11);
				{
				this.state = 4106;
				if (!(this.isVersion12())) {
					throw this.createFailedPredicateException("this.isVersion12()");
				}
				this.state = 4107;
				this.match(PlSqlParser.PLUGGABLE);
				this.state = 4108;
				this.match(PlSqlParser.DATABASE);
				}
				break;
			case 12:
				this.enterOuterAlt(localctx, 12);
				{
				this.state = 4109;
				this.match(PlSqlParser.PROCEDURE);
				}
				break;
			case 13:
				this.enterOuterAlt(localctx, 13);
				{
				this.state = 4110;
				this.match(PlSqlParser.PROFILE);
				}
				break;
			case 14:
				this.enterOuterAlt(localctx, 14);
				{
				this.state = 4111;
				this.match(PlSqlParser.PUBLIC);
				this.state = 4112;
				this.match(PlSqlParser.DATABASE);
				this.state = 4113;
				this.match(PlSqlParser.LINK);
				}
				break;
			case 15:
				this.enterOuterAlt(localctx, 15);
				{
				this.state = 4114;
				this.match(PlSqlParser.PUBLIC);
				this.state = 4115;
				this.match(PlSqlParser.SYNONYM);
				}
				break;
			case 16:
				this.enterOuterAlt(localctx, 16);
				{
				this.state = 4116;
				this.match(PlSqlParser.ROLE);
				}
				break;
			case 17:
				this.enterOuterAlt(localctx, 17);
				{
				this.state = 4117;
				this.match(PlSqlParser.ROLLBACK);
				this.state = 4118;
				this.match(PlSqlParser.SEGMENT);
				}
				break;
			case 18:
				this.enterOuterAlt(localctx, 18);
				{
				this.state = 4119;
				this.match(PlSqlParser.SEQUENCE);
				}
				break;
			case 19:
				this.enterOuterAlt(localctx, 19);
				{
				this.state = 4120;
				this.match(PlSqlParser.SESSION);
				}
				break;
			case 20:
				this.enterOuterAlt(localctx, 20);
				{
				this.state = 4121;
				this.match(PlSqlParser.SYNONYM);
				}
				break;
			case 21:
				this.enterOuterAlt(localctx, 21);
				{
				this.state = 4122;
				this.match(PlSqlParser.SYSTEM);
				this.state = 4123;
				this.match(PlSqlParser.AUDIT);
				}
				break;
			case 22:
				this.enterOuterAlt(localctx, 22);
				{
				this.state = 4124;
				this.match(PlSqlParser.SYSTEM);
				this.state = 4125;
				this.match(PlSqlParser.GRANT);
				}
				break;
			case 23:
				this.enterOuterAlt(localctx, 23);
				{
				this.state = 4126;
				this.match(PlSqlParser.TABLE);
				}
				break;
			case 24:
				this.enterOuterAlt(localctx, 24);
				{
				this.state = 4127;
				this.match(PlSqlParser.TABLESPACE);
				}
				break;
			case 25:
				this.enterOuterAlt(localctx, 25);
				{
				this.state = 4128;
				this.match(PlSqlParser.TRIGGER);
				}
				break;
			case 26:
				this.enterOuterAlt(localctx, 26);
				{
				this.state = 4129;
				this.match(PlSqlParser.TYPE);
				}
				break;
			case 27:
				this.enterOuterAlt(localctx, 27);
				{
				this.state = 4130;
				this.match(PlSqlParser.USER);
				}
				break;
			case 28:
				this.enterOuterAlt(localctx, 28);
				{
				this.state = 4131;
				this.match(PlSqlParser.VIEW);
				}
				break;
			case 29:
				this.enterOuterAlt(localctx, 29);
				{
				this.state = 4132;
				this.match(PlSqlParser.ALTER);
				this.state = 4133;
				this.match(PlSqlParser.SEQUENCE);
				}
				break;
			case 30:
				this.enterOuterAlt(localctx, 30);
				{
				this.state = 4134;
				this.match(PlSqlParser.ALTER);
				this.state = 4135;
				this.match(PlSqlParser.TABLE);
				}
				break;
			case 31:
				this.enterOuterAlt(localctx, 31);
				{
				this.state = 4136;
				this.match(PlSqlParser.COMMENT);
				this.state = 4137;
				this.match(PlSqlParser.TABLE);
				}
				break;
			case 32:
				this.enterOuterAlt(localctx, 32);
				{
				this.state = 4138;
				this.match(PlSqlParser.DELETE);
				this.state = 4139;
				this.match(PlSqlParser.TABLE);
				}
				break;
			case 33:
				this.enterOuterAlt(localctx, 33);
				{
				this.state = 4140;
				this.match(PlSqlParser.EXECUTE);
				this.state = 4141;
				this.match(PlSqlParser.PROCEDURE);
				}
				break;
			case 34:
				this.enterOuterAlt(localctx, 34);
				{
				this.state = 4142;
				this.match(PlSqlParser.GRANT);
				this.state = 4143;
				this.match(PlSqlParser.DIRECTORY);
				}
				break;
			case 35:
				this.enterOuterAlt(localctx, 35);
				{
				this.state = 4144;
				this.match(PlSqlParser.GRANT);
				this.state = 4145;
				this.match(PlSqlParser.PROCEDURE);
				}
				break;
			case 36:
				this.enterOuterAlt(localctx, 36);
				{
				this.state = 4146;
				this.match(PlSqlParser.GRANT);
				this.state = 4147;
				this.match(PlSqlParser.SEQUENCE);
				}
				break;
			case 37:
				this.enterOuterAlt(localctx, 37);
				{
				this.state = 4148;
				this.match(PlSqlParser.GRANT);
				this.state = 4149;
				this.match(PlSqlParser.TABLE);
				}
				break;
			case 38:
				this.enterOuterAlt(localctx, 38);
				{
				this.state = 4150;
				this.match(PlSqlParser.GRANT);
				this.state = 4151;
				this.match(PlSqlParser.TYPE);
				}
				break;
			case 39:
				this.enterOuterAlt(localctx, 39);
				{
				this.state = 4152;
				this.match(PlSqlParser.INSERT);
				this.state = 4153;
				this.match(PlSqlParser.TABLE);
				}
				break;
			case 40:
				this.enterOuterAlt(localctx, 40);
				{
				this.state = 4154;
				this.match(PlSqlParser.LOCK);
				this.state = 4155;
				this.match(PlSqlParser.TABLE);
				}
				break;
			case 41:
				this.enterOuterAlt(localctx, 41);
				{
				this.state = 4156;
				this.match(PlSqlParser.SELECT);
				this.state = 4157;
				this.match(PlSqlParser.SEQUENCE);
				}
				break;
			case 42:
				this.enterOuterAlt(localctx, 42);
				{
				this.state = 4158;
				this.match(PlSqlParser.SELECT);
				this.state = 4159;
				this.match(PlSqlParser.TABLE);
				}
				break;
			case 43:
				this.enterOuterAlt(localctx, 43);
				{
				this.state = 4160;
				this.match(PlSqlParser.UPDATE);
				this.state = 4161;
				this.match(PlSqlParser.TABLE);
				}
				break;
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public drop_index(): Drop_indexContext {
		let localctx: Drop_indexContext = new Drop_indexContext(this, this._ctx, this.state);
		this.enterRule(localctx, 378, PlSqlParser.RULE_drop_index);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 4164;
			this.match(PlSqlParser.DROP);
			this.state = 4165;
			this.match(PlSqlParser.INDEX);
			this.state = 4166;
			this.index_name();
			this.state = 4167;
			this.match(PlSqlParser.SEMICOLON);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public rename_object(): Rename_objectContext {
		let localctx: Rename_objectContext = new Rename_objectContext(this, this._ctx, this.state);
		this.enterRule(localctx, 380, PlSqlParser.RULE_rename_object);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 4169;
			this.match(PlSqlParser.RENAME);
			this.state = 4170;
			this.object_name();
			this.state = 4171;
			this.match(PlSqlParser.TO);
			this.state = 4172;
			this.object_name();
			this.state = 4173;
			this.match(PlSqlParser.SEMICOLON);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public grant_statement(): Grant_statementContext {
		let localctx: Grant_statementContext = new Grant_statementContext(this, this._ctx, this.state);
		this.enterRule(localctx, 382, PlSqlParser.RULE_grant_statement);
		let _la: number;
		try {
			let _alt: number;
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 4175;
			this.match(PlSqlParser.GRANT);
			this.state = 4187;
			this._errHandler.sync(this);
			_alt = 1;
			do {
				switch (_alt) {
				case 1:
					{
					{
					this.state = 4177;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
					if (_la===2229) {
						{
						this.state = 4176;
						this.match(PlSqlParser.COMMA);
						}
					}

					this.state = 4185;
					this._errHandler.sync(this);
					switch ( this._interp.adaptivePredict(this._input, 383, this._ctx) ) {
					case 1:
						{
						this.state = 4179;
						this.role_name();
						}
						break;
					case 2:
						{
						this.state = 4180;
						this.system_privilege();
						}
						break;
					case 3:
						{
						this.state = 4181;
						this.object_privilege();
						this.state = 4183;
						this._errHandler.sync(this);
						_la = this._input.LA(1);
						if (_la===2223) {
							{
							this.state = 4182;
							this.paren_column_list();
							}
						}

						}
						break;
					}
					}
					}
					break;
				default:
					throw new NoViableAltException(this);
				}
				this.state = 4189;
				this._errHandler.sync(this);
				_alt = this._interp.adaptivePredict(this._input, 384, this._ctx);
			} while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER);
			this.state = 4193;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1128) {
				{
				this.state = 4191;
				this.match(PlSqlParser.ON);
				this.state = 4192;
				this.grant_object_name();
				}
			}

			this.state = 4195;
			this.match(PlSqlParser.TO);
			this.state = 4198;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 1:
			case 2:
			case 3:
			case 4:
			case 5:
			case 6:
			case 7:
			case 8:
			case 9:
			case 10:
			case 11:
			case 12:
			case 13:
			case 14:
			case 15:
			case 16:
			case 17:
			case 18:
			case 19:
			case 20:
			case 21:
			case 22:
			case 23:
			case 24:
			case 25:
			case 26:
			case 27:
			case 28:
			case 29:
			case 30:
			case 31:
			case 32:
			case 33:
			case 34:
			case 36:
			case 37:
			case 38:
			case 40:
			case 41:
			case 42:
			case 44:
			case 45:
			case 46:
			case 47:
			case 49:
			case 50:
			case 51:
			case 52:
			case 53:
			case 54:
			case 55:
			case 56:
			case 57:
			case 58:
			case 59:
			case 60:
			case 63:
			case 64:
			case 65:
			case 66:
			case 67:
			case 68:
			case 69:
			case 70:
			case 71:
			case 72:
			case 73:
			case 74:
			case 75:
			case 76:
			case 78:
			case 79:
			case 80:
			case 81:
			case 82:
			case 83:
			case 85:
			case 86:
			case 87:
			case 88:
			case 89:
			case 90:
			case 91:
			case 92:
			case 93:
			case 95:
			case 96:
			case 97:
			case 98:
			case 99:
			case 100:
			case 101:
			case 102:
			case 103:
			case 104:
			case 105:
			case 106:
			case 108:
			case 109:
			case 110:
			case 111:
			case 112:
			case 113:
			case 114:
			case 115:
			case 116:
			case 117:
			case 118:
			case 119:
			case 120:
			case 121:
			case 122:
			case 123:
			case 124:
			case 125:
			case 126:
			case 127:
			case 128:
			case 129:
			case 130:
			case 131:
			case 132:
			case 133:
			case 134:
			case 135:
			case 136:
			case 137:
			case 138:
			case 139:
			case 140:
			case 141:
			case 142:
			case 143:
			case 144:
			case 145:
			case 147:
			case 148:
			case 149:
			case 150:
			case 151:
			case 152:
			case 153:
			case 154:
			case 155:
			case 156:
			case 157:
			case 158:
			case 160:
			case 161:
			case 162:
			case 163:
			case 164:
			case 165:
			case 166:
			case 167:
			case 168:
			case 169:
			case 170:
			case 171:
			case 172:
			case 174:
			case 175:
			case 176:
			case 177:
			case 178:
			case 179:
			case 181:
			case 182:
			case 183:
			case 184:
			case 185:
			case 186:
			case 187:
			case 188:
			case 189:
			case 190:
			case 191:
			case 192:
			case 193:
			case 194:
			case 195:
			case 196:
			case 197:
			case 198:
			case 199:
			case 200:
			case 201:
			case 202:
			case 203:
			case 204:
			case 205:
			case 206:
			case 207:
			case 208:
			case 209:
			case 210:
			case 211:
			case 212:
			case 213:
			case 214:
			case 215:
			case 216:
			case 217:
			case 218:
			case 219:
			case 220:
			case 221:
			case 222:
			case 223:
			case 224:
			case 225:
			case 226:
			case 227:
			case 228:
			case 229:
			case 230:
			case 231:
			case 233:
			case 234:
			case 235:
			case 236:
			case 237:
			case 238:
			case 239:
			case 240:
			case 241:
			case 242:
			case 243:
			case 244:
			case 245:
			case 246:
			case 247:
			case 248:
			case 249:
			case 250:
			case 252:
			case 253:
			case 254:
			case 255:
			case 256:
			case 257:
			case 258:
			case 259:
			case 260:
			case 261:
			case 262:
			case 263:
			case 264:
			case 265:
			case 266:
			case 267:
			case 268:
			case 269:
			case 270:
			case 271:
			case 272:
			case 273:
			case 274:
			case 275:
			case 276:
			case 277:
			case 278:
			case 279:
			case 280:
			case 281:
			case 282:
			case 283:
			case 284:
			case 285:
			case 286:
			case 287:
			case 289:
			case 290:
			case 291:
			case 292:
			case 293:
			case 294:
			case 295:
			case 296:
			case 297:
			case 298:
			case 299:
			case 300:
			case 301:
			case 302:
			case 303:
			case 304:
			case 305:
			case 306:
			case 307:
			case 308:
			case 309:
			case 310:
			case 311:
			case 312:
			case 313:
			case 314:
			case 315:
			case 316:
			case 317:
			case 318:
			case 319:
			case 321:
			case 322:
			case 323:
			case 324:
			case 325:
			case 326:
			case 328:
			case 329:
			case 330:
			case 331:
			case 332:
			case 333:
			case 334:
			case 335:
			case 336:
			case 337:
			case 338:
			case 339:
			case 340:
			case 341:
			case 342:
			case 343:
			case 344:
			case 345:
			case 346:
			case 347:
			case 348:
			case 349:
			case 350:
			case 352:
			case 353:
			case 354:
			case 355:
			case 356:
			case 357:
			case 358:
			case 359:
			case 360:
			case 361:
			case 362:
			case 363:
			case 364:
			case 365:
			case 366:
			case 367:
			case 368:
			case 369:
			case 370:
			case 372:
			case 373:
			case 374:
			case 375:
			case 376:
			case 377:
			case 378:
			case 379:
			case 380:
			case 381:
			case 382:
			case 383:
			case 384:
			case 385:
			case 386:
			case 387:
			case 388:
			case 389:
			case 390:
			case 391:
			case 392:
			case 394:
			case 395:
			case 397:
			case 398:
			case 399:
			case 400:
			case 401:
			case 402:
			case 403:
			case 404:
			case 405:
			case 406:
			case 407:
			case 408:
			case 409:
			case 410:
			case 412:
			case 413:
			case 414:
			case 415:
			case 417:
			case 418:
			case 419:
			case 420:
			case 421:
			case 422:
			case 423:
			case 424:
			case 425:
			case 426:
			case 427:
			case 428:
			case 429:
			case 430:
			case 431:
			case 434:
			case 435:
			case 436:
			case 437:
			case 438:
			case 439:
			case 440:
			case 441:
			case 442:
			case 443:
			case 444:
			case 446:
			case 447:
			case 448:
			case 449:
			case 450:
			case 451:
			case 452:
			case 453:
			case 454:
			case 455:
			case 456:
			case 457:
			case 458:
			case 459:
			case 460:
			case 461:
			case 462:
			case 463:
			case 464:
			case 465:
			case 466:
			case 467:
			case 468:
			case 469:
			case 470:
			case 471:
			case 472:
			case 473:
			case 475:
			case 476:
			case 477:
			case 478:
			case 479:
			case 480:
			case 481:
			case 482:
			case 483:
			case 484:
			case 485:
			case 486:
			case 487:
			case 488:
			case 489:
			case 490:
			case 491:
			case 492:
			case 493:
			case 494:
			case 495:
			case 496:
			case 497:
			case 498:
			case 499:
			case 500:
			case 501:
			case 502:
			case 503:
			case 504:
			case 505:
			case 506:
			case 507:
			case 508:
			case 509:
			case 510:
			case 511:
			case 512:
			case 513:
			case 514:
			case 515:
			case 516:
			case 517:
			case 518:
			case 519:
			case 520:
			case 521:
			case 522:
			case 523:
			case 524:
			case 525:
			case 526:
			case 527:
			case 528:
			case 529:
			case 530:
			case 531:
			case 532:
			case 533:
			case 534:
			case 535:
			case 536:
			case 537:
			case 538:
			case 539:
			case 540:
			case 541:
			case 542:
			case 543:
			case 544:
			case 545:
			case 547:
			case 548:
			case 549:
			case 550:
			case 551:
			case 552:
			case 553:
			case 555:
			case 556:
			case 557:
			case 558:
			case 559:
			case 560:
			case 561:
			case 562:
			case 563:
			case 564:
			case 565:
			case 566:
			case 567:
			case 568:
			case 569:
			case 572:
			case 574:
			case 575:
			case 576:
			case 577:
			case 578:
			case 579:
			case 580:
			case 581:
			case 582:
			case 583:
			case 584:
			case 586:
			case 587:
			case 588:
			case 589:
			case 590:
			case 591:
			case 592:
			case 593:
			case 594:
			case 595:
			case 596:
			case 597:
			case 598:
			case 599:
			case 600:
			case 602:
			case 603:
			case 604:
			case 605:
			case 606:
			case 607:
			case 608:
			case 609:
			case 610:
			case 611:
			case 612:
			case 613:
			case 614:
			case 615:
			case 616:
			case 617:
			case 618:
			case 619:
			case 620:
			case 621:
			case 622:
			case 623:
			case 624:
			case 625:
			case 626:
			case 627:
			case 628:
			case 629:
			case 630:
			case 632:
			case 633:
			case 634:
			case 635:
			case 636:
			case 637:
			case 638:
			case 639:
			case 640:
			case 641:
			case 642:
			case 643:
			case 644:
			case 645:
			case 646:
			case 647:
			case 648:
			case 649:
			case 650:
			case 651:
			case 653:
			case 654:
			case 655:
			case 656:
			case 657:
			case 658:
			case 659:
			case 660:
			case 661:
			case 662:
			case 663:
			case 664:
			case 665:
			case 666:
			case 667:
			case 668:
			case 670:
			case 671:
			case 672:
			case 673:
			case 674:
			case 675:
			case 676:
			case 677:
			case 678:
			case 679:
			case 680:
			case 681:
			case 682:
			case 683:
			case 684:
			case 685:
			case 686:
			case 687:
			case 689:
			case 690:
			case 692:
			case 693:
			case 694:
			case 696:
			case 697:
			case 698:
			case 699:
			case 700:
			case 701:
			case 702:
			case 703:
			case 704:
			case 705:
			case 706:
			case 707:
			case 708:
			case 709:
			case 710:
			case 711:
			case 712:
			case 713:
			case 714:
			case 715:
			case 716:
			case 717:
			case 718:
			case 719:
			case 720:
			case 721:
			case 722:
			case 723:
			case 724:
			case 725:
			case 726:
			case 727:
			case 728:
			case 729:
			case 730:
			case 731:
			case 732:
			case 733:
			case 734:
			case 735:
			case 736:
			case 737:
			case 738:
			case 739:
			case 740:
			case 741:
			case 742:
			case 743:
			case 744:
			case 745:
			case 746:
			case 747:
			case 748:
			case 749:
			case 750:
			case 751:
			case 752:
			case 753:
			case 754:
			case 755:
			case 756:
			case 758:
			case 759:
			case 760:
			case 761:
			case 762:
			case 763:
			case 764:
			case 765:
			case 766:
			case 767:
			case 768:
			case 769:
			case 770:
			case 771:
			case 772:
			case 773:
			case 774:
			case 775:
			case 777:
			case 778:
			case 779:
			case 780:
			case 781:
			case 782:
			case 783:
			case 784:
			case 785:
			case 786:
			case 787:
			case 788:
			case 789:
			case 790:
			case 791:
			case 792:
			case 793:
			case 794:
			case 795:
			case 796:
			case 797:
			case 798:
			case 799:
			case 800:
			case 801:
			case 802:
			case 803:
			case 804:
			case 805:
			case 806:
			case 807:
			case 808:
			case 809:
			case 810:
			case 811:
			case 812:
			case 813:
			case 814:
			case 815:
			case 816:
			case 817:
			case 818:
			case 819:
			case 820:
			case 821:
			case 822:
			case 823:
			case 824:
			case 825:
			case 826:
			case 827:
			case 828:
			case 829:
			case 830:
			case 831:
			case 832:
			case 833:
			case 834:
			case 835:
			case 836:
			case 837:
			case 838:
			case 839:
			case 840:
			case 841:
			case 843:
			case 844:
			case 845:
			case 846:
			case 847:
			case 848:
			case 849:
			case 850:
			case 851:
			case 852:
			case 853:
			case 854:
			case 855:
			case 856:
			case 857:
			case 858:
			case 859:
			case 861:
			case 862:
			case 863:
			case 864:
			case 865:
			case 866:
			case 867:
			case 868:
			case 869:
			case 870:
			case 871:
			case 872:
			case 873:
			case 874:
			case 875:
			case 876:
			case 877:
			case 878:
			case 879:
			case 880:
			case 881:
			case 882:
			case 883:
			case 884:
			case 885:
			case 886:
			case 888:
			case 889:
			case 890:
			case 891:
			case 892:
			case 893:
			case 894:
			case 895:
			case 896:
			case 897:
			case 898:
			case 899:
			case 900:
			case 901:
			case 902:
			case 903:
			case 904:
			case 905:
			case 906:
			case 907:
			case 908:
			case 909:
			case 910:
			case 911:
			case 912:
			case 913:
			case 914:
			case 915:
			case 916:
			case 917:
			case 918:
			case 919:
			case 920:
			case 921:
			case 922:
			case 923:
			case 924:
			case 925:
			case 926:
			case 927:
			case 928:
			case 929:
			case 930:
			case 931:
			case 932:
			case 933:
			case 934:
			case 935:
			case 936:
			case 937:
			case 938:
			case 939:
			case 940:
			case 941:
			case 942:
			case 943:
			case 944:
			case 945:
			case 946:
			case 947:
			case 948:
			case 949:
			case 950:
			case 951:
			case 952:
			case 954:
			case 955:
			case 956:
			case 957:
			case 958:
			case 959:
			case 960:
			case 961:
			case 962:
			case 963:
			case 964:
			case 965:
			case 966:
			case 967:
			case 968:
			case 969:
			case 970:
			case 971:
			case 972:
			case 973:
			case 974:
			case 975:
			case 976:
			case 977:
			case 978:
			case 979:
			case 980:
			case 981:
			case 982:
			case 983:
			case 984:
			case 985:
			case 986:
			case 987:
			case 988:
			case 989:
			case 990:
			case 991:
			case 992:
			case 993:
			case 994:
			case 995:
			case 996:
			case 997:
			case 998:
			case 999:
			case 1000:
			case 1001:
			case 1002:
			case 1003:
			case 1004:
			case 1005:
			case 1006:
			case 1007:
			case 1008:
			case 1009:
			case 1010:
			case 1011:
			case 1012:
			case 1013:
			case 1014:
			case 1015:
			case 1016:
			case 1017:
			case 1018:
			case 1019:
			case 1020:
			case 1021:
			case 1022:
			case 1023:
			case 1024:
			case 1025:
			case 1026:
			case 1027:
			case 1028:
			case 1029:
			case 1030:
			case 1031:
			case 1032:
			case 1033:
			case 1034:
			case 1035:
			case 1036:
			case 1037:
			case 1038:
			case 1039:
			case 1040:
			case 1041:
			case 1042:
			case 1043:
			case 1044:
			case 1045:
			case 1046:
			case 1047:
			case 1048:
			case 1049:
			case 1050:
			case 1051:
			case 1052:
			case 1053:
			case 1054:
			case 1055:
			case 1056:
			case 1057:
			case 1058:
			case 1059:
			case 1060:
			case 1061:
			case 1062:
			case 1063:
			case 1064:
			case 1065:
			case 1066:
			case 1067:
			case 1068:
			case 1069:
			case 1070:
			case 1071:
			case 1072:
			case 1074:
			case 1075:
			case 1076:
			case 1077:
			case 1078:
			case 1079:
			case 1080:
			case 1081:
			case 1082:
			case 1083:
			case 1084:
			case 1085:
			case 1086:
			case 1087:
			case 1089:
			case 1090:
			case 1091:
			case 1092:
			case 1093:
			case 1094:
			case 1095:
			case 1096:
			case 1098:
			case 1099:
			case 1100:
			case 1101:
			case 1102:
			case 1103:
			case 1104:
			case 1105:
			case 1106:
			case 1107:
			case 1108:
			case 1109:
			case 1110:
			case 1111:
			case 1112:
			case 1113:
			case 1114:
			case 1116:
			case 1117:
			case 1118:
			case 1119:
			case 1120:
			case 1121:
			case 1122:
			case 1123:
			case 1124:
			case 1125:
			case 1127:
			case 1129:
			case 1130:
			case 1131:
			case 1132:
			case 1133:
			case 1134:
			case 1135:
			case 1136:
			case 1137:
			case 1138:
			case 1139:
			case 1140:
			case 1142:
			case 1143:
			case 1144:
			case 1145:
			case 1146:
			case 1147:
			case 1148:
			case 1149:
			case 1150:
			case 1151:
			case 1152:
			case 1153:
			case 1154:
			case 1155:
			case 1156:
			case 1157:
			case 1158:
			case 1159:
			case 1160:
			case 1161:
			case 1162:
			case 1163:
			case 1164:
			case 1165:
			case 1166:
			case 1167:
			case 1169:
			case 1170:
			case 1171:
			case 1173:
			case 1174:
			case 1175:
			case 1176:
			case 1177:
			case 1178:
			case 1179:
			case 1180:
			case 1181:
			case 1182:
			case 1183:
			case 1184:
			case 1185:
			case 1186:
			case 1187:
			case 1188:
			case 1189:
			case 1190:
			case 1191:
			case 1192:
			case 1193:
			case 1194:
			case 1195:
			case 1197:
			case 1198:
			case 1199:
			case 1200:
			case 1201:
			case 1202:
			case 1203:
			case 1204:
			case 1205:
			case 1206:
			case 1207:
			case 1208:
			case 1209:
			case 1210:
			case 1211:
			case 1212:
			case 1213:
			case 1214:
			case 1215:
			case 1216:
			case 1217:
			case 1218:
			case 1219:
			case 1220:
			case 1221:
			case 1222:
			case 1223:
			case 1224:
			case 1225:
			case 1226:
			case 1228:
			case 1229:
			case 1230:
			case 1231:
			case 1232:
			case 1236:
			case 1237:
			case 1241:
			case 1242:
			case 1243:
			case 1244:
			case 1245:
			case 1246:
			case 1247:
			case 1248:
			case 1249:
			case 1250:
			case 1252:
			case 1253:
			case 1254:
			case 1255:
			case 1256:
			case 1257:
			case 1258:
			case 1259:
			case 1260:
			case 1261:
			case 1262:
			case 1263:
			case 1264:
			case 1265:
			case 1266:
			case 1267:
			case 1268:
			case 1269:
			case 1270:
			case 1271:
			case 1272:
			case 1273:
			case 1274:
			case 1275:
			case 1276:
			case 1277:
			case 1278:
			case 1279:
			case 1280:
			case 1281:
			case 1282:
			case 1283:
			case 1284:
			case 1285:
			case 1286:
			case 1287:
			case 1288:
			case 1289:
			case 1290:
			case 1291:
			case 1292:
			case 1293:
			case 1294:
			case 1295:
			case 1296:
			case 1297:
			case 1298:
			case 1299:
			case 1300:
			case 1301:
			case 1302:
			case 1303:
			case 1304:
			case 1305:
			case 1306:
			case 1308:
			case 1309:
			case 1310:
			case 1311:
			case 1312:
			case 1313:
			case 1314:
			case 1315:
			case 1316:
			case 1317:
			case 1318:
			case 1319:
			case 1320:
			case 1321:
			case 1322:
			case 1323:
			case 1325:
			case 1326:
			case 1327:
			case 1328:
			case 1329:
			case 1330:
			case 1331:
			case 1332:
			case 1333:
			case 1334:
			case 1335:
			case 1336:
			case 1337:
			case 1338:
			case 1339:
			case 1340:
			case 1341:
			case 1342:
			case 1343:
			case 1344:
			case 1345:
			case 1346:
			case 1347:
			case 1348:
			case 1349:
			case 1350:
			case 1351:
			case 1352:
			case 1353:
			case 1354:
			case 1355:
			case 1356:
			case 1357:
			case 1358:
			case 1359:
			case 1360:
			case 1361:
			case 1362:
			case 1363:
			case 1364:
			case 1365:
			case 1366:
			case 1367:
			case 1368:
			case 1369:
			case 1370:
			case 1371:
			case 1372:
			case 1373:
			case 1374:
			case 1375:
			case 1376:
			case 1377:
			case 1378:
			case 1379:
			case 1380:
			case 1381:
			case 1382:
			case 1383:
			case 1384:
			case 1385:
			case 1386:
			case 1387:
			case 1388:
			case 1389:
			case 1390:
			case 1391:
			case 1392:
			case 1393:
			case 1394:
			case 1395:
			case 1396:
			case 1397:
			case 1399:
			case 1400:
			case 1401:
			case 1402:
			case 1403:
			case 1404:
			case 1405:
			case 1406:
			case 1407:
			case 1408:
			case 1409:
			case 1410:
			case 1411:
			case 1412:
			case 1413:
			case 1414:
			case 1416:
			case 1417:
			case 1418:
			case 1419:
			case 1420:
			case 1421:
			case 1422:
			case 1423:
			case 1424:
			case 1425:
			case 1426:
			case 1427:
			case 1428:
			case 1429:
			case 1430:
			case 1431:
			case 1432:
			case 1433:
			case 1435:
			case 1436:
			case 1437:
			case 1438:
			case 1439:
			case 1440:
			case 1441:
			case 1442:
			case 1443:
			case 1444:
			case 1445:
			case 1446:
			case 1447:
			case 1448:
			case 1449:
			case 1450:
			case 1451:
			case 1452:
			case 1453:
			case 1454:
			case 1455:
			case 1456:
			case 1457:
			case 1458:
			case 1459:
			case 1460:
			case 1461:
			case 1462:
			case 1463:
			case 1464:
			case 1465:
			case 1466:
			case 1467:
			case 1468:
			case 1469:
			case 1470:
			case 1471:
			case 1472:
			case 1473:
			case 1474:
			case 1475:
			case 1476:
			case 1477:
			case 1478:
			case 1479:
			case 1480:
			case 1481:
			case 1482:
			case 1483:
			case 1484:
			case 1485:
			case 1486:
			case 1487:
			case 1488:
			case 1489:
			case 1491:
			case 1492:
			case 1493:
			case 1494:
			case 1495:
			case 1496:
			case 1497:
			case 1499:
			case 1500:
			case 1501:
			case 1502:
			case 1503:
			case 1504:
			case 1505:
			case 1506:
			case 1507:
			case 1508:
			case 1509:
			case 1510:
			case 1511:
			case 1512:
			case 1513:
			case 1514:
			case 1515:
			case 1516:
			case 1518:
			case 1519:
			case 1520:
			case 1521:
			case 1522:
			case 1523:
			case 1524:
			case 1525:
			case 1526:
			case 1527:
			case 1528:
			case 1529:
			case 1530:
			case 1531:
			case 1532:
			case 1533:
			case 1534:
			case 1536:
			case 1537:
			case 1538:
			case 1539:
			case 1540:
			case 1541:
			case 1542:
			case 1543:
			case 1544:
			case 1545:
			case 1546:
			case 1547:
			case 1548:
			case 1549:
			case 1550:
			case 1551:
			case 1552:
			case 1553:
			case 1554:
			case 1555:
			case 1556:
			case 1557:
			case 1558:
			case 1559:
			case 1560:
			case 1561:
			case 1562:
			case 1563:
			case 1564:
			case 1565:
			case 1566:
			case 1567:
			case 1568:
			case 1570:
			case 1571:
			case 1572:
			case 1573:
			case 1574:
			case 1575:
			case 1576:
			case 1577:
			case 1578:
			case 1579:
			case 1580:
			case 1581:
			case 1582:
			case 1583:
			case 1584:
			case 1585:
			case 1586:
			case 1587:
			case 1588:
			case 1589:
			case 1590:
			case 1591:
			case 1592:
			case 1593:
			case 1594:
			case 1595:
			case 1596:
			case 1597:
			case 1598:
			case 1599:
			case 1600:
			case 1601:
			case 1602:
			case 1603:
			case 1604:
			case 1605:
			case 1606:
			case 1607:
			case 1608:
			case 1609:
			case 1610:
			case 1611:
			case 1612:
			case 1613:
			case 1614:
			case 1615:
			case 1616:
			case 1617:
			case 1618:
			case 1619:
			case 1620:
			case 1621:
			case 1622:
			case 1623:
			case 1624:
			case 1625:
			case 1626:
			case 1628:
			case 1629:
			case 1630:
			case 1631:
			case 1632:
			case 1633:
			case 1634:
			case 1635:
			case 1636:
			case 1637:
			case 1638:
			case 1639:
			case 1640:
			case 1641:
			case 1642:
			case 1643:
			case 1644:
			case 1645:
			case 1646:
			case 1647:
			case 1648:
			case 1649:
			case 1650:
			case 1651:
			case 1652:
			case 1653:
			case 1654:
			case 1655:
			case 1656:
			case 1657:
			case 1658:
			case 1659:
			case 1660:
			case 1661:
			case 1662:
			case 1663:
			case 1664:
			case 1665:
			case 1666:
			case 1667:
			case 1668:
			case 1669:
			case 1670:
			case 1671:
			case 1672:
			case 1673:
			case 1674:
			case 1675:
			case 1676:
			case 1677:
			case 1678:
			case 1679:
			case 1680:
			case 1681:
			case 1682:
			case 1683:
			case 1684:
			case 1685:
			case 1686:
			case 1687:
			case 1688:
			case 1689:
			case 1690:
			case 1691:
			case 1692:
			case 1693:
			case 1694:
			case 1695:
			case 1696:
			case 1697:
			case 1698:
			case 1699:
			case 1700:
			case 1701:
			case 1702:
			case 1703:
			case 1704:
			case 1705:
			case 1706:
			case 1707:
			case 1708:
			case 1709:
			case 1710:
			case 1711:
			case 1712:
			case 1713:
			case 1714:
			case 1715:
			case 1716:
			case 1717:
			case 1718:
			case 1719:
			case 1720:
			case 1721:
			case 1722:
			case 1723:
			case 1724:
			case 1725:
			case 1726:
			case 1727:
			case 1728:
			case 1729:
			case 1730:
			case 1731:
			case 1732:
			case 1733:
			case 1734:
			case 1735:
			case 1736:
			case 1737:
			case 1738:
			case 1739:
			case 1740:
			case 1741:
			case 1742:
			case 1743:
			case 1744:
			case 1745:
			case 1746:
			case 1747:
			case 1748:
			case 1749:
			case 1750:
			case 1751:
			case 1752:
			case 1753:
			case 1754:
			case 1755:
			case 1756:
			case 1757:
			case 1758:
			case 1759:
			case 1760:
			case 1761:
			case 1762:
			case 1763:
			case 1764:
			case 1765:
			case 1766:
			case 1767:
			case 1768:
			case 1769:
			case 1770:
			case 1771:
			case 1772:
			case 1773:
			case 1774:
			case 1775:
			case 1776:
			case 1777:
			case 1778:
			case 1779:
			case 1780:
			case 1781:
			case 1782:
			case 1783:
			case 1784:
			case 1785:
			case 1786:
			case 1787:
			case 1788:
			case 1789:
			case 1790:
			case 1791:
			case 1792:
			case 1793:
			case 1794:
			case 1795:
			case 1796:
			case 1797:
			case 1798:
			case 1799:
			case 1800:
			case 1801:
			case 1802:
			case 1803:
			case 1804:
			case 1805:
			case 1806:
			case 1807:
			case 1808:
			case 1809:
			case 1810:
			case 1811:
			case 1812:
			case 1813:
			case 1814:
			case 1815:
			case 1816:
			case 1817:
			case 1818:
			case 1819:
			case 1820:
			case 1821:
			case 1822:
			case 1823:
			case 1824:
			case 1825:
			case 1826:
			case 1827:
			case 1828:
			case 1829:
			case 1830:
			case 1831:
			case 1832:
			case 1833:
			case 1834:
			case 1835:
			case 1836:
			case 1837:
			case 1838:
			case 1839:
			case 1840:
			case 1841:
			case 1842:
			case 1843:
			case 1844:
			case 1845:
			case 1846:
			case 1847:
			case 1848:
			case 1849:
			case 1850:
			case 1851:
			case 1852:
			case 1853:
			case 1854:
			case 1855:
			case 1856:
			case 1857:
			case 1858:
			case 1859:
			case 1860:
			case 1861:
			case 1862:
			case 1863:
			case 1864:
			case 1865:
			case 1866:
			case 1867:
			case 1868:
			case 1869:
			case 1870:
			case 1871:
			case 1872:
			case 1873:
			case 1874:
			case 1875:
			case 1876:
			case 1877:
			case 1878:
			case 1879:
			case 1880:
			case 1881:
			case 1882:
			case 1883:
			case 1884:
			case 1885:
			case 1886:
			case 1887:
			case 1888:
			case 1889:
			case 1890:
			case 1891:
			case 1892:
			case 1893:
			case 1894:
			case 1895:
			case 1896:
			case 1897:
			case 1898:
			case 1899:
			case 1900:
			case 1901:
			case 1902:
			case 1903:
			case 1904:
			case 1905:
			case 1906:
			case 1907:
			case 1908:
			case 1909:
			case 1910:
			case 1911:
			case 1912:
			case 1913:
			case 1914:
			case 1915:
			case 1916:
			case 1917:
			case 1918:
			case 1919:
			case 1920:
			case 1921:
			case 1922:
			case 1923:
			case 1924:
			case 1925:
			case 1926:
			case 1927:
			case 1928:
			case 1929:
			case 1930:
			case 1931:
			case 1932:
			case 1933:
			case 1934:
			case 1935:
			case 1936:
			case 1937:
			case 1939:
			case 1940:
			case 1941:
			case 1942:
			case 1943:
			case 1944:
			case 1945:
			case 1946:
			case 1947:
			case 1948:
			case 1949:
			case 1950:
			case 1951:
			case 1952:
			case 1953:
			case 1954:
			case 1955:
			case 1956:
			case 1957:
			case 1958:
			case 1959:
			case 1960:
			case 1961:
			case 1962:
			case 1963:
			case 1965:
			case 1966:
			case 1967:
			case 1968:
			case 1969:
			case 1970:
			case 1971:
			case 1972:
			case 1973:
			case 1974:
			case 1975:
			case 1976:
			case 1977:
			case 1978:
			case 1979:
			case 1980:
			case 1981:
			case 1982:
			case 1983:
			case 1984:
			case 1985:
			case 1986:
			case 1987:
			case 1988:
			case 1989:
			case 1990:
			case 1991:
			case 1992:
			case 1993:
			case 1994:
			case 1995:
			case 1996:
			case 1997:
			case 1998:
			case 1999:
			case 2000:
			case 2003:
			case 2004:
			case 2005:
			case 2006:
			case 2007:
			case 2008:
			case 2009:
			case 2010:
			case 2011:
			case 2012:
			case 2013:
			case 2014:
			case 2015:
			case 2016:
			case 2017:
			case 2018:
			case 2019:
			case 2020:
			case 2021:
			case 2022:
			case 2023:
			case 2024:
			case 2026:
			case 2027:
			case 2028:
			case 2029:
			case 2030:
			case 2031:
			case 2032:
			case 2033:
			case 2034:
			case 2035:
			case 2036:
			case 2037:
			case 2038:
			case 2039:
			case 2040:
			case 2041:
			case 2042:
			case 2043:
			case 2044:
			case 2045:
			case 2046:
			case 2047:
			case 2048:
			case 2049:
			case 2050:
			case 2051:
			case 2052:
			case 2053:
			case 2054:
			case 2055:
			case 2056:
			case 2057:
			case 2058:
			case 2059:
			case 2060:
			case 2061:
			case 2062:
			case 2063:
			case 2064:
			case 2065:
			case 2066:
			case 2067:
			case 2068:
			case 2069:
			case 2070:
			case 2071:
			case 2072:
			case 2074:
			case 2075:
			case 2076:
			case 2077:
			case 2078:
			case 2079:
			case 2080:
			case 2081:
			case 2082:
			case 2083:
			case 2084:
			case 2085:
			case 2086:
			case 2087:
			case 2088:
			case 2089:
			case 2090:
			case 2091:
			case 2092:
			case 2093:
			case 2094:
			case 2095:
			case 2096:
			case 2097:
			case 2098:
			case 2100:
			case 2101:
			case 2102:
			case 2103:
			case 2104:
			case 2105:
			case 2106:
			case 2107:
			case 2108:
			case 2109:
			case 2110:
			case 2111:
			case 2112:
			case 2113:
			case 2115:
			case 2116:
			case 2117:
			case 2118:
			case 2119:
			case 2120:
			case 2122:
			case 2123:
			case 2124:
			case 2125:
			case 2126:
			case 2128:
			case 2129:
			case 2130:
			case 2131:
			case 2132:
			case 2133:
			case 2134:
			case 2135:
			case 2136:
			case 2137:
			case 2138:
			case 2139:
			case 2140:
			case 2141:
			case 2142:
			case 2143:
			case 2145:
			case 2146:
			case 2147:
			case 2148:
			case 2149:
			case 2150:
			case 2151:
			case 2152:
			case 2153:
			case 2154:
			case 2155:
			case 2156:
			case 2157:
			case 2158:
			case 2159:
			case 2160:
			case 2161:
			case 2162:
			case 2163:
			case 2164:
			case 2165:
			case 2166:
			case 2168:
			case 2169:
			case 2170:
			case 2171:
			case 2172:
			case 2173:
			case 2174:
			case 2175:
			case 2176:
			case 2177:
			case 2178:
			case 2179:
			case 2180:
			case 2181:
			case 2182:
			case 2183:
			case 2184:
			case 2185:
			case 2186:
			case 2187:
			case 2188:
			case 2189:
			case 2191:
			case 2192:
			case 2193:
			case 2194:
			case 2195:
			case 2196:
			case 2197:
			case 2198:
			case 2199:
			case 2200:
			case 2201:
			case 2202:
			case 2203:
			case 2204:
			case 2205:
			case 2206:
			case 2207:
			case 2208:
			case 2209:
			case 2210:
			case 2211:
			case 2216:
			case 2220:
			case 2252:
				{
				this.state = 4196;
				this.grantee_name();
				}
				break;
			case 1324:
				{
				this.state = 4197;
				this.match(PlSqlParser.PUBLIC);
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
			this.state = 4207;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			while (_la===2229) {
				{
				{
				this.state = 4200;
				this.match(PlSqlParser.COMMA);
				this.state = 4203;
				this._errHandler.sync(this);
				switch (this._input.LA(1)) {
				case 1:
				case 2:
				case 3:
				case 4:
				case 5:
				case 6:
				case 7:
				case 8:
				case 9:
				case 10:
				case 11:
				case 12:
				case 13:
				case 14:
				case 15:
				case 16:
				case 17:
				case 18:
				case 19:
				case 20:
				case 21:
				case 22:
				case 23:
				case 24:
				case 25:
				case 26:
				case 27:
				case 28:
				case 29:
				case 30:
				case 31:
				case 32:
				case 33:
				case 34:
				case 36:
				case 37:
				case 38:
				case 40:
				case 41:
				case 42:
				case 44:
				case 45:
				case 46:
				case 47:
				case 49:
				case 50:
				case 51:
				case 52:
				case 53:
				case 54:
				case 55:
				case 56:
				case 57:
				case 58:
				case 59:
				case 60:
				case 63:
				case 64:
				case 65:
				case 66:
				case 67:
				case 68:
				case 69:
				case 70:
				case 71:
				case 72:
				case 73:
				case 74:
				case 75:
				case 76:
				case 78:
				case 79:
				case 80:
				case 81:
				case 82:
				case 83:
				case 85:
				case 86:
				case 87:
				case 88:
				case 89:
				case 90:
				case 91:
				case 92:
				case 93:
				case 95:
				case 96:
				case 97:
				case 98:
				case 99:
				case 100:
				case 101:
				case 102:
				case 103:
				case 104:
				case 105:
				case 106:
				case 108:
				case 109:
				case 110:
				case 111:
				case 112:
				case 113:
				case 114:
				case 115:
				case 116:
				case 117:
				case 118:
				case 119:
				case 120:
				case 121:
				case 122:
				case 123:
				case 124:
				case 125:
				case 126:
				case 127:
				case 128:
				case 129:
				case 130:
				case 131:
				case 132:
				case 133:
				case 134:
				case 135:
				case 136:
				case 137:
				case 138:
				case 139:
				case 140:
				case 141:
				case 142:
				case 143:
				case 144:
				case 145:
				case 147:
				case 148:
				case 149:
				case 150:
				case 151:
				case 152:
				case 153:
				case 154:
				case 155:
				case 156:
				case 157:
				case 158:
				case 160:
				case 161:
				case 162:
				case 163:
				case 164:
				case 165:
				case 166:
				case 167:
				case 168:
				case 169:
				case 170:
				case 171:
				case 172:
				case 174:
				case 175:
				case 176:
				case 177:
				case 178:
				case 179:
				case 181:
				case 182:
				case 183:
				case 184:
				case 185:
				case 186:
				case 187:
				case 188:
				case 189:
				case 190:
				case 191:
				case 192:
				case 193:
				case 194:
				case 195:
				case 196:
				case 197:
				case 198:
				case 199:
				case 200:
				case 201:
				case 202:
				case 203:
				case 204:
				case 205:
				case 206:
				case 207:
				case 208:
				case 209:
				case 210:
				case 211:
				case 212:
				case 213:
				case 214:
				case 215:
				case 216:
				case 217:
				case 218:
				case 219:
				case 220:
				case 221:
				case 222:
				case 223:
				case 224:
				case 225:
				case 226:
				case 227:
				case 228:
				case 229:
				case 230:
				case 231:
				case 233:
				case 234:
				case 235:
				case 236:
				case 237:
				case 238:
				case 239:
				case 240:
				case 241:
				case 242:
				case 243:
				case 244:
				case 245:
				case 246:
				case 247:
				case 248:
				case 249:
				case 250:
				case 252:
				case 253:
				case 254:
				case 255:
				case 256:
				case 257:
				case 258:
				case 259:
				case 260:
				case 261:
				case 262:
				case 263:
				case 264:
				case 265:
				case 266:
				case 267:
				case 268:
				case 269:
				case 270:
				case 271:
				case 272:
				case 273:
				case 274:
				case 275:
				case 276:
				case 277:
				case 278:
				case 279:
				case 280:
				case 281:
				case 282:
				case 283:
				case 284:
				case 285:
				case 286:
				case 287:
				case 289:
				case 290:
				case 291:
				case 292:
				case 293:
				case 294:
				case 295:
				case 296:
				case 297:
				case 298:
				case 299:
				case 300:
				case 301:
				case 302:
				case 303:
				case 304:
				case 305:
				case 306:
				case 307:
				case 308:
				case 309:
				case 310:
				case 311:
				case 312:
				case 313:
				case 314:
				case 315:
				case 316:
				case 317:
				case 318:
				case 319:
				case 321:
				case 322:
				case 323:
				case 324:
				case 325:
				case 326:
				case 328:
				case 329:
				case 330:
				case 331:
				case 332:
				case 333:
				case 334:
				case 335:
				case 336:
				case 337:
				case 338:
				case 339:
				case 340:
				case 341:
				case 342:
				case 343:
				case 344:
				case 345:
				case 346:
				case 347:
				case 348:
				case 349:
				case 350:
				case 352:
				case 353:
				case 354:
				case 355:
				case 356:
				case 357:
				case 358:
				case 359:
				case 360:
				case 361:
				case 362:
				case 363:
				case 364:
				case 365:
				case 366:
				case 367:
				case 368:
				case 369:
				case 370:
				case 372:
				case 373:
				case 374:
				case 375:
				case 376:
				case 377:
				case 378:
				case 379:
				case 380:
				case 381:
				case 382:
				case 383:
				case 384:
				case 385:
				case 386:
				case 387:
				case 388:
				case 389:
				case 390:
				case 391:
				case 392:
				case 394:
				case 395:
				case 397:
				case 398:
				case 399:
				case 400:
				case 401:
				case 402:
				case 403:
				case 404:
				case 405:
				case 406:
				case 407:
				case 408:
				case 409:
				case 410:
				case 412:
				case 413:
				case 414:
				case 415:
				case 417:
				case 418:
				case 419:
				case 420:
				case 421:
				case 422:
				case 423:
				case 424:
				case 425:
				case 426:
				case 427:
				case 428:
				case 429:
				case 430:
				case 431:
				case 434:
				case 435:
				case 436:
				case 437:
				case 438:
				case 439:
				case 440:
				case 441:
				case 442:
				case 443:
				case 444:
				case 446:
				case 447:
				case 448:
				case 449:
				case 450:
				case 451:
				case 452:
				case 453:
				case 454:
				case 455:
				case 456:
				case 457:
				case 458:
				case 459:
				case 460:
				case 461:
				case 462:
				case 463:
				case 464:
				case 465:
				case 466:
				case 467:
				case 468:
				case 469:
				case 470:
				case 471:
				case 472:
				case 473:
				case 475:
				case 476:
				case 477:
				case 478:
				case 479:
				case 480:
				case 481:
				case 482:
				case 483:
				case 484:
				case 485:
				case 486:
				case 487:
				case 488:
				case 489:
				case 490:
				case 491:
				case 492:
				case 493:
				case 494:
				case 495:
				case 496:
				case 497:
				case 498:
				case 499:
				case 500:
				case 501:
				case 502:
				case 503:
				case 504:
				case 505:
				case 506:
				case 507:
				case 508:
				case 509:
				case 510:
				case 511:
				case 512:
				case 513:
				case 514:
				case 515:
				case 516:
				case 517:
				case 518:
				case 519:
				case 520:
				case 521:
				case 522:
				case 523:
				case 524:
				case 525:
				case 526:
				case 527:
				case 528:
				case 529:
				case 530:
				case 531:
				case 532:
				case 533:
				case 534:
				case 535:
				case 536:
				case 537:
				case 538:
				case 539:
				case 540:
				case 541:
				case 542:
				case 543:
				case 544:
				case 545:
				case 547:
				case 548:
				case 549:
				case 550:
				case 551:
				case 552:
				case 553:
				case 555:
				case 556:
				case 557:
				case 558:
				case 559:
				case 560:
				case 561:
				case 562:
				case 563:
				case 564:
				case 565:
				case 566:
				case 567:
				case 568:
				case 569:
				case 572:
				case 574:
				case 575:
				case 576:
				case 577:
				case 578:
				case 579:
				case 580:
				case 581:
				case 582:
				case 583:
				case 584:
				case 586:
				case 587:
				case 588:
				case 589:
				case 590:
				case 591:
				case 592:
				case 593:
				case 594:
				case 595:
				case 596:
				case 597:
				case 598:
				case 599:
				case 600:
				case 602:
				case 603:
				case 604:
				case 605:
				case 606:
				case 607:
				case 608:
				case 609:
				case 610:
				case 611:
				case 612:
				case 613:
				case 614:
				case 615:
				case 616:
				case 617:
				case 618:
				case 619:
				case 620:
				case 621:
				case 622:
				case 623:
				case 624:
				case 625:
				case 626:
				case 627:
				case 628:
				case 629:
				case 630:
				case 632:
				case 633:
				case 634:
				case 635:
				case 636:
				case 637:
				case 638:
				case 639:
				case 640:
				case 641:
				case 642:
				case 643:
				case 644:
				case 645:
				case 646:
				case 647:
				case 648:
				case 649:
				case 650:
				case 651:
				case 653:
				case 654:
				case 655:
				case 656:
				case 657:
				case 658:
				case 659:
				case 660:
				case 661:
				case 662:
				case 663:
				case 664:
				case 665:
				case 666:
				case 667:
				case 668:
				case 670:
				case 671:
				case 672:
				case 673:
				case 674:
				case 675:
				case 676:
				case 677:
				case 678:
				case 679:
				case 680:
				case 681:
				case 682:
				case 683:
				case 684:
				case 685:
				case 686:
				case 687:
				case 689:
				case 690:
				case 692:
				case 693:
				case 694:
				case 696:
				case 697:
				case 698:
				case 699:
				case 700:
				case 701:
				case 702:
				case 703:
				case 704:
				case 705:
				case 706:
				case 707:
				case 708:
				case 709:
				case 710:
				case 711:
				case 712:
				case 713:
				case 714:
				case 715:
				case 716:
				case 717:
				case 718:
				case 719:
				case 720:
				case 721:
				case 722:
				case 723:
				case 724:
				case 725:
				case 726:
				case 727:
				case 728:
				case 729:
				case 730:
				case 731:
				case 732:
				case 733:
				case 734:
				case 735:
				case 736:
				case 737:
				case 738:
				case 739:
				case 740:
				case 741:
				case 742:
				case 743:
				case 744:
				case 745:
				case 746:
				case 747:
				case 748:
				case 749:
				case 750:
				case 751:
				case 752:
				case 753:
				case 754:
				case 755:
				case 756:
				case 758:
				case 759:
				case 760:
				case 761:
				case 762:
				case 763:
				case 764:
				case 765:
				case 766:
				case 767:
				case 768:
				case 769:
				case 770:
				case 771:
				case 772:
				case 773:
				case 774:
				case 775:
				case 777:
				case 778:
				case 779:
				case 780:
				case 781:
				case 782:
				case 783:
				case 784:
				case 785:
				case 786:
				case 787:
				case 788:
				case 789:
				case 790:
				case 791:
				case 792:
				case 793:
				case 794:
				case 795:
				case 796:
				case 797:
				case 798:
				case 799:
				case 800:
				case 801:
				case 802:
				case 803:
				case 804:
				case 805:
				case 806:
				case 807:
				case 808:
				case 809:
				case 810:
				case 811:
				case 812:
				case 813:
				case 814:
				case 815:
				case 816:
				case 817:
				case 818:
				case 819:
				case 820:
				case 821:
				case 822:
				case 823:
				case 824:
				case 825:
				case 826:
				case 827:
				case 828:
				case 829:
				case 830:
				case 831:
				case 832:
				case 833:
				case 834:
				case 835:
				case 836:
				case 837:
				case 838:
				case 839:
				case 840:
				case 841:
				case 843:
				case 844:
				case 845:
				case 846:
				case 847:
				case 848:
				case 849:
				case 850:
				case 851:
				case 852:
				case 853:
				case 854:
				case 855:
				case 856:
				case 857:
				case 858:
				case 859:
				case 861:
				case 862:
				case 863:
				case 864:
				case 865:
				case 866:
				case 867:
				case 868:
				case 869:
				case 870:
				case 871:
				case 872:
				case 873:
				case 874:
				case 875:
				case 876:
				case 877:
				case 878:
				case 879:
				case 880:
				case 881:
				case 882:
				case 883:
				case 884:
				case 885:
				case 886:
				case 888:
				case 889:
				case 890:
				case 891:
				case 892:
				case 893:
				case 894:
				case 895:
				case 896:
				case 897:
				case 898:
				case 899:
				case 900:
				case 901:
				case 902:
				case 903:
				case 904:
				case 905:
				case 906:
				case 907:
				case 908:
				case 909:
				case 910:
				case 911:
				case 912:
				case 913:
				case 914:
				case 915:
				case 916:
				case 917:
				case 918:
				case 919:
				case 920:
				case 921:
				case 922:
				case 923:
				case 924:
				case 925:
				case 926:
				case 927:
				case 928:
				case 929:
				case 930:
				case 931:
				case 932:
				case 933:
				case 934:
				case 935:
				case 936:
				case 937:
				case 938:
				case 939:
				case 940:
				case 941:
				case 942:
				case 943:
				case 944:
				case 945:
				case 946:
				case 947:
				case 948:
				case 949:
				case 950:
				case 951:
				case 952:
				case 954:
				case 955:
				case 956:
				case 957:
				case 958:
				case 959:
				case 960:
				case 961:
				case 962:
				case 963:
				case 964:
				case 965:
				case 966:
				case 967:
				case 968:
				case 969:
				case 970:
				case 971:
				case 972:
				case 973:
				case 974:
				case 975:
				case 976:
				case 977:
				case 978:
				case 979:
				case 980:
				case 981:
				case 982:
				case 983:
				case 984:
				case 985:
				case 986:
				case 987:
				case 988:
				case 989:
				case 990:
				case 991:
				case 992:
				case 993:
				case 994:
				case 995:
				case 996:
				case 997:
				case 998:
				case 999:
				case 1000:
				case 1001:
				case 1002:
				case 1003:
				case 1004:
				case 1005:
				case 1006:
				case 1007:
				case 1008:
				case 1009:
				case 1010:
				case 1011:
				case 1012:
				case 1013:
				case 1014:
				case 1015:
				case 1016:
				case 1017:
				case 1018:
				case 1019:
				case 1020:
				case 1021:
				case 1022:
				case 1023:
				case 1024:
				case 1025:
				case 1026:
				case 1027:
				case 1028:
				case 1029:
				case 1030:
				case 1031:
				case 1032:
				case 1033:
				case 1034:
				case 1035:
				case 1036:
				case 1037:
				case 1038:
				case 1039:
				case 1040:
				case 1041:
				case 1042:
				case 1043:
				case 1044:
				case 1045:
				case 1046:
				case 1047:
				case 1048:
				case 1049:
				case 1050:
				case 1051:
				case 1052:
				case 1053:
				case 1054:
				case 1055:
				case 1056:
				case 1057:
				case 1058:
				case 1059:
				case 1060:
				case 1061:
				case 1062:
				case 1063:
				case 1064:
				case 1065:
				case 1066:
				case 1067:
				case 1068:
				case 1069:
				case 1070:
				case 1071:
				case 1072:
				case 1074:
				case 1075:
				case 1076:
				case 1077:
				case 1078:
				case 1079:
				case 1080:
				case 1081:
				case 1082:
				case 1083:
				case 1084:
				case 1085:
				case 1086:
				case 1087:
				case 1089:
				case 1090:
				case 1091:
				case 1092:
				case 1093:
				case 1094:
				case 1095:
				case 1096:
				case 1098:
				case 1099:
				case 1100:
				case 1101:
				case 1102:
				case 1103:
				case 1104:
				case 1105:
				case 1106:
				case 1107:
				case 1108:
				case 1109:
				case 1110:
				case 1111:
				case 1112:
				case 1113:
				case 1114:
				case 1116:
				case 1117:
				case 1118:
				case 1119:
				case 1120:
				case 1121:
				case 1122:
				case 1123:
				case 1124:
				case 1125:
				case 1127:
				case 1129:
				case 1130:
				case 1131:
				case 1132:
				case 1133:
				case 1134:
				case 1135:
				case 1136:
				case 1137:
				case 1138:
				case 1139:
				case 1140:
				case 1142:
				case 1143:
				case 1144:
				case 1145:
				case 1146:
				case 1147:
				case 1148:
				case 1149:
				case 1150:
				case 1151:
				case 1152:
				case 1153:
				case 1154:
				case 1155:
				case 1156:
				case 1157:
				case 1158:
				case 1159:
				case 1160:
				case 1161:
				case 1162:
				case 1163:
				case 1164:
				case 1165:
				case 1166:
				case 1167:
				case 1169:
				case 1170:
				case 1171:
				case 1173:
				case 1174:
				case 1175:
				case 1176:
				case 1177:
				case 1178:
				case 1179:
				case 1180:
				case 1181:
				case 1182:
				case 1183:
				case 1184:
				case 1185:
				case 1186:
				case 1187:
				case 1188:
				case 1189:
				case 1190:
				case 1191:
				case 1192:
				case 1193:
				case 1194:
				case 1195:
				case 1197:
				case 1198:
				case 1199:
				case 1200:
				case 1201:
				case 1202:
				case 1203:
				case 1204:
				case 1205:
				case 1206:
				case 1207:
				case 1208:
				case 1209:
				case 1210:
				case 1211:
				case 1212:
				case 1213:
				case 1214:
				case 1215:
				case 1216:
				case 1217:
				case 1218:
				case 1219:
				case 1220:
				case 1221:
				case 1222:
				case 1223:
				case 1224:
				case 1225:
				case 1226:
				case 1228:
				case 1229:
				case 1230:
				case 1231:
				case 1232:
				case 1236:
				case 1237:
				case 1241:
				case 1242:
				case 1243:
				case 1244:
				case 1245:
				case 1246:
				case 1247:
				case 1248:
				case 1249:
				case 1250:
				case 1252:
				case 1253:
				case 1254:
				case 1255:
				case 1256:
				case 1257:
				case 1258:
				case 1259:
				case 1260:
				case 1261:
				case 1262:
				case 1263:
				case 1264:
				case 1265:
				case 1266:
				case 1267:
				case 1268:
				case 1269:
				case 1270:
				case 1271:
				case 1272:
				case 1273:
				case 1274:
				case 1275:
				case 1276:
				case 1277:
				case 1278:
				case 1279:
				case 1280:
				case 1281:
				case 1282:
				case 1283:
				case 1284:
				case 1285:
				case 1286:
				case 1287:
				case 1288:
				case 1289:
				case 1290:
				case 1291:
				case 1292:
				case 1293:
				case 1294:
				case 1295:
				case 1296:
				case 1297:
				case 1298:
				case 1299:
				case 1300:
				case 1301:
				case 1302:
				case 1303:
				case 1304:
				case 1305:
				case 1306:
				case 1308:
				case 1309:
				case 1310:
				case 1311:
				case 1312:
				case 1313:
				case 1314:
				case 1315:
				case 1316:
				case 1317:
				case 1318:
				case 1319:
				case 1320:
				case 1321:
				case 1322:
				case 1323:
				case 1325:
				case 1326:
				case 1327:
				case 1328:
				case 1329:
				case 1330:
				case 1331:
				case 1332:
				case 1333:
				case 1334:
				case 1335:
				case 1336:
				case 1337:
				case 1338:
				case 1339:
				case 1340:
				case 1341:
				case 1342:
				case 1343:
				case 1344:
				case 1345:
				case 1346:
				case 1347:
				case 1348:
				case 1349:
				case 1350:
				case 1351:
				case 1352:
				case 1353:
				case 1354:
				case 1355:
				case 1356:
				case 1357:
				case 1358:
				case 1359:
				case 1360:
				case 1361:
				case 1362:
				case 1363:
				case 1364:
				case 1365:
				case 1366:
				case 1367:
				case 1368:
				case 1369:
				case 1370:
				case 1371:
				case 1372:
				case 1373:
				case 1374:
				case 1375:
				case 1376:
				case 1377:
				case 1378:
				case 1379:
				case 1380:
				case 1381:
				case 1382:
				case 1383:
				case 1384:
				case 1385:
				case 1386:
				case 1387:
				case 1388:
				case 1389:
				case 1390:
				case 1391:
				case 1392:
				case 1393:
				case 1394:
				case 1395:
				case 1396:
				case 1397:
				case 1399:
				case 1400:
				case 1401:
				case 1402:
				case 1403:
				case 1404:
				case 1405:
				case 1406:
				case 1407:
				case 1408:
				case 1409:
				case 1410:
				case 1411:
				case 1412:
				case 1413:
				case 1414:
				case 1416:
				case 1417:
				case 1418:
				case 1419:
				case 1420:
				case 1421:
				case 1422:
				case 1423:
				case 1424:
				case 1425:
				case 1426:
				case 1427:
				case 1428:
				case 1429:
				case 1430:
				case 1431:
				case 1432:
				case 1433:
				case 1435:
				case 1436:
				case 1437:
				case 1438:
				case 1439:
				case 1440:
				case 1441:
				case 1442:
				case 1443:
				case 1444:
				case 1445:
				case 1446:
				case 1447:
				case 1448:
				case 1449:
				case 1450:
				case 1451:
				case 1452:
				case 1453:
				case 1454:
				case 1455:
				case 1456:
				case 1457:
				case 1458:
				case 1459:
				case 1460:
				case 1461:
				case 1462:
				case 1463:
				case 1464:
				case 1465:
				case 1466:
				case 1467:
				case 1468:
				case 1469:
				case 1470:
				case 1471:
				case 1472:
				case 1473:
				case 1474:
				case 1475:
				case 1476:
				case 1477:
				case 1478:
				case 1479:
				case 1480:
				case 1481:
				case 1482:
				case 1483:
				case 1484:
				case 1485:
				case 1486:
				case 1487:
				case 1488:
				case 1489:
				case 1491:
				case 1492:
				case 1493:
				case 1494:
				case 1495:
				case 1496:
				case 1497:
				case 1499:
				case 1500:
				case 1501:
				case 1502:
				case 1503:
				case 1504:
				case 1505:
				case 1506:
				case 1507:
				case 1508:
				case 1509:
				case 1510:
				case 1511:
				case 1512:
				case 1513:
				case 1514:
				case 1515:
				case 1516:
				case 1518:
				case 1519:
				case 1520:
				case 1521:
				case 1522:
				case 1523:
				case 1524:
				case 1525:
				case 1526:
				case 1527:
				case 1528:
				case 1529:
				case 1530:
				case 1531:
				case 1532:
				case 1533:
				case 1534:
				case 1536:
				case 1537:
				case 1538:
				case 1539:
				case 1540:
				case 1541:
				case 1542:
				case 1543:
				case 1544:
				case 1545:
				case 1546:
				case 1547:
				case 1548:
				case 1549:
				case 1550:
				case 1551:
				case 1552:
				case 1553:
				case 1554:
				case 1555:
				case 1556:
				case 1557:
				case 1558:
				case 1559:
				case 1560:
				case 1561:
				case 1562:
				case 1563:
				case 1564:
				case 1565:
				case 1566:
				case 1567:
				case 1568:
				case 1570:
				case 1571:
				case 1572:
				case 1573:
				case 1574:
				case 1575:
				case 1576:
				case 1577:
				case 1578:
				case 1579:
				case 1580:
				case 1581:
				case 1582:
				case 1583:
				case 1584:
				case 1585:
				case 1586:
				case 1587:
				case 1588:
				case 1589:
				case 1590:
				case 1591:
				case 1592:
				case 1593:
				case 1594:
				case 1595:
				case 1596:
				case 1597:
				case 1598:
				case 1599:
				case 1600:
				case 1601:
				case 1602:
				case 1603:
				case 1604:
				case 1605:
				case 1606:
				case 1607:
				case 1608:
				case 1609:
				case 1610:
				case 1611:
				case 1612:
				case 1613:
				case 1614:
				case 1615:
				case 1616:
				case 1617:
				case 1618:
				case 1619:
				case 1620:
				case 1621:
				case 1622:
				case 1623:
				case 1624:
				case 1625:
				case 1626:
				case 1628:
				case 1629:
				case 1630:
				case 1631:
				case 1632:
				case 1633:
				case 1634:
				case 1635:
				case 1636:
				case 1637:
				case 1638:
				case 1639:
				case 1640:
				case 1641:
				case 1642:
				case 1643:
				case 1644:
				case 1645:
				case 1646:
				case 1647:
				case 1648:
				case 1649:
				case 1650:
				case 1651:
				case 1652:
				case 1653:
				case 1654:
				case 1655:
				case 1656:
				case 1657:
				case 1658:
				case 1659:
				case 1660:
				case 1661:
				case 1662:
				case 1663:
				case 1664:
				case 1665:
				case 1666:
				case 1667:
				case 1668:
				case 1669:
				case 1670:
				case 1671:
				case 1672:
				case 1673:
				case 1674:
				case 1675:
				case 1676:
				case 1677:
				case 1678:
				case 1679:
				case 1680:
				case 1681:
				case 1682:
				case 1683:
				case 1684:
				case 1685:
				case 1686:
				case 1687:
				case 1688:
				case 1689:
				case 1690:
				case 1691:
				case 1692:
				case 1693:
				case 1694:
				case 1695:
				case 1696:
				case 1697:
				case 1698:
				case 1699:
				case 1700:
				case 1701:
				case 1702:
				case 1703:
				case 1704:
				case 1705:
				case 1706:
				case 1707:
				case 1708:
				case 1709:
				case 1710:
				case 1711:
				case 1712:
				case 1713:
				case 1714:
				case 1715:
				case 1716:
				case 1717:
				case 1718:
				case 1719:
				case 1720:
				case 1721:
				case 1722:
				case 1723:
				case 1724:
				case 1725:
				case 1726:
				case 1727:
				case 1728:
				case 1729:
				case 1730:
				case 1731:
				case 1732:
				case 1733:
				case 1734:
				case 1735:
				case 1736:
				case 1737:
				case 1738:
				case 1739:
				case 1740:
				case 1741:
				case 1742:
				case 1743:
				case 1744:
				case 1745:
				case 1746:
				case 1747:
				case 1748:
				case 1749:
				case 1750:
				case 1751:
				case 1752:
				case 1753:
				case 1754:
				case 1755:
				case 1756:
				case 1757:
				case 1758:
				case 1759:
				case 1760:
				case 1761:
				case 1762:
				case 1763:
				case 1764:
				case 1765:
				case 1766:
				case 1767:
				case 1768:
				case 1769:
				case 1770:
				case 1771:
				case 1772:
				case 1773:
				case 1774:
				case 1775:
				case 1776:
				case 1777:
				case 1778:
				case 1779:
				case 1780:
				case 1781:
				case 1782:
				case 1783:
				case 1784:
				case 1785:
				case 1786:
				case 1787:
				case 1788:
				case 1789:
				case 1790:
				case 1791:
				case 1792:
				case 1793:
				case 1794:
				case 1795:
				case 1796:
				case 1797:
				case 1798:
				case 1799:
				case 1800:
				case 1801:
				case 1802:
				case 1803:
				case 1804:
				case 1805:
				case 1806:
				case 1807:
				case 1808:
				case 1809:
				case 1810:
				case 1811:
				case 1812:
				case 1813:
				case 1814:
				case 1815:
				case 1816:
				case 1817:
				case 1818:
				case 1819:
				case 1820:
				case 1821:
				case 1822:
				case 1823:
				case 1824:
				case 1825:
				case 1826:
				case 1827:
				case 1828:
				case 1829:
				case 1830:
				case 1831:
				case 1832:
				case 1833:
				case 1834:
				case 1835:
				case 1836:
				case 1837:
				case 1838:
				case 1839:
				case 1840:
				case 1841:
				case 1842:
				case 1843:
				case 1844:
				case 1845:
				case 1846:
				case 1847:
				case 1848:
				case 1849:
				case 1850:
				case 1851:
				case 1852:
				case 1853:
				case 1854:
				case 1855:
				case 1856:
				case 1857:
				case 1858:
				case 1859:
				case 1860:
				case 1861:
				case 1862:
				case 1863:
				case 1864:
				case 1865:
				case 1866:
				case 1867:
				case 1868:
				case 1869:
				case 1870:
				case 1871:
				case 1872:
				case 1873:
				case 1874:
				case 1875:
				case 1876:
				case 1877:
				case 1878:
				case 1879:
				case 1880:
				case 1881:
				case 1882:
				case 1883:
				case 1884:
				case 1885:
				case 1886:
				case 1887:
				case 1888:
				case 1889:
				case 1890:
				case 1891:
				case 1892:
				case 1893:
				case 1894:
				case 1895:
				case 1896:
				case 1897:
				case 1898:
				case 1899:
				case 1900:
				case 1901:
				case 1902:
				case 1903:
				case 1904:
				case 1905:
				case 1906:
				case 1907:
				case 1908:
				case 1909:
				case 1910:
				case 1911:
				case 1912:
				case 1913:
				case 1914:
				case 1915:
				case 1916:
				case 1917:
				case 1918:
				case 1919:
				case 1920:
				case 1921:
				case 1922:
				case 1923:
				case 1924:
				case 1925:
				case 1926:
				case 1927:
				case 1928:
				case 1929:
				case 1930:
				case 1931:
				case 1932:
				case 1933:
				case 1934:
				case 1935:
				case 1936:
				case 1937:
				case 1939:
				case 1940:
				case 1941:
				case 1942:
				case 1943:
				case 1944:
				case 1945:
				case 1946:
				case 1947:
				case 1948:
				case 1949:
				case 1950:
				case 1951:
				case 1952:
				case 1953:
				case 1954:
				case 1955:
				case 1956:
				case 1957:
				case 1958:
				case 1959:
				case 1960:
				case 1961:
				case 1962:
				case 1963:
				case 1965:
				case 1966:
				case 1967:
				case 1968:
				case 1969:
				case 1970:
				case 1971:
				case 1972:
				case 1973:
				case 1974:
				case 1975:
				case 1976:
				case 1977:
				case 1978:
				case 1979:
				case 1980:
				case 1981:
				case 1982:
				case 1983:
				case 1984:
				case 1985:
				case 1986:
				case 1987:
				case 1988:
				case 1989:
				case 1990:
				case 1991:
				case 1992:
				case 1993:
				case 1994:
				case 1995:
				case 1996:
				case 1997:
				case 1998:
				case 1999:
				case 2000:
				case 2003:
				case 2004:
				case 2005:
				case 2006:
				case 2007:
				case 2008:
				case 2009:
				case 2010:
				case 2011:
				case 2012:
				case 2013:
				case 2014:
				case 2015:
				case 2016:
				case 2017:
				case 2018:
				case 2019:
				case 2020:
				case 2021:
				case 2022:
				case 2023:
				case 2024:
				case 2026:
				case 2027:
				case 2028:
				case 2029:
				case 2030:
				case 2031:
				case 2032:
				case 2033:
				case 2034:
				case 2035:
				case 2036:
				case 2037:
				case 2038:
				case 2039:
				case 2040:
				case 2041:
				case 2042:
				case 2043:
				case 2044:
				case 2045:
				case 2046:
				case 2047:
				case 2048:
				case 2049:
				case 2050:
				case 2051:
				case 2052:
				case 2053:
				case 2054:
				case 2055:
				case 2056:
				case 2057:
				case 2058:
				case 2059:
				case 2060:
				case 2061:
				case 2062:
				case 2063:
				case 2064:
				case 2065:
				case 2066:
				case 2067:
				case 2068:
				case 2069:
				case 2070:
				case 2071:
				case 2072:
				case 2074:
				case 2075:
				case 2076:
				case 2077:
				case 2078:
				case 2079:
				case 2080:
				case 2081:
				case 2082:
				case 2083:
				case 2084:
				case 2085:
				case 2086:
				case 2087:
				case 2088:
				case 2089:
				case 2090:
				case 2091:
				case 2092:
				case 2093:
				case 2094:
				case 2095:
				case 2096:
				case 2097:
				case 2098:
				case 2100:
				case 2101:
				case 2102:
				case 2103:
				case 2104:
				case 2105:
				case 2106:
				case 2107:
				case 2108:
				case 2109:
				case 2110:
				case 2111:
				case 2112:
				case 2113:
				case 2115:
				case 2116:
				case 2117:
				case 2118:
				case 2119:
				case 2120:
				case 2122:
				case 2123:
				case 2124:
				case 2125:
				case 2126:
				case 2128:
				case 2129:
				case 2130:
				case 2131:
				case 2132:
				case 2133:
				case 2134:
				case 2135:
				case 2136:
				case 2137:
				case 2138:
				case 2139:
				case 2140:
				case 2141:
				case 2142:
				case 2143:
				case 2145:
				case 2146:
				case 2147:
				case 2148:
				case 2149:
				case 2150:
				case 2151:
				case 2152:
				case 2153:
				case 2154:
				case 2155:
				case 2156:
				case 2157:
				case 2158:
				case 2159:
				case 2160:
				case 2161:
				case 2162:
				case 2163:
				case 2164:
				case 2165:
				case 2166:
				case 2168:
				case 2169:
				case 2170:
				case 2171:
				case 2172:
				case 2173:
				case 2174:
				case 2175:
				case 2176:
				case 2177:
				case 2178:
				case 2179:
				case 2180:
				case 2181:
				case 2182:
				case 2183:
				case 2184:
				case 2185:
				case 2186:
				case 2187:
				case 2188:
				case 2189:
				case 2191:
				case 2192:
				case 2193:
				case 2194:
				case 2195:
				case 2196:
				case 2197:
				case 2198:
				case 2199:
				case 2200:
				case 2201:
				case 2202:
				case 2203:
				case 2204:
				case 2205:
				case 2206:
				case 2207:
				case 2208:
				case 2209:
				case 2210:
				case 2211:
				case 2216:
				case 2220:
				case 2252:
					{
					this.state = 4201;
					this.grantee_name();
					}
					break;
				case 1324:
					{
					this.state = 4202;
					this.match(PlSqlParser.PUBLIC);
					}
					break;
				default:
					throw new NoViableAltException(this);
				}
				}
				}
				this.state = 4209;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			}
			this.state = 4213;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 389, this._ctx) ) {
			case 1:
				{
				this.state = 4210;
				this.match(PlSqlParser.WITH);
				this.state = 4211;
				_la = this._input.LA(1);
				if(!(_la===23 || _la===360)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				this.state = 4212;
				this.match(PlSqlParser.OPTION);
				}
				break;
			}
			this.state = 4218;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 390, this._ctx) ) {
			case 1:
				{
				this.state = 4215;
				this.match(PlSqlParser.WITH);
				this.state = 4216;
				this.match(PlSqlParser.HIERARCHY);
				this.state = 4217;
				this.match(PlSqlParser.OPTION);
				}
				break;
			}
			this.state = 4223;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===2121) {
				{
				this.state = 4220;
				this.match(PlSqlParser.WITH);
				this.state = 4221;
				this.match(PlSqlParser.GRANT);
				this.state = 4222;
				this.match(PlSqlParser.OPTION);
				}
			}

			this.state = 4226;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===260) {
				{
				this.state = 4225;
				this.container_clause();
				}
			}

			this.state = 4228;
			this.match(PlSqlParser.SEMICOLON);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public container_clause(): Container_clauseContext {
		let localctx: Container_clauseContext = new Container_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 384, PlSqlParser.RULE_container_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 4230;
			this.match(PlSqlParser.CONTAINER);
			this.state = 4231;
			this.match(PlSqlParser.EQUALS_OP);
			this.state = 4232;
			_la = this._input.LA(1);
			if(!(_la===35 || _la===302)) {
			this._errHandler.recoverInline(this);
			}
			else {
				this._errHandler.reportMatch(this);
			    this.consume();
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public create_directory(): Create_directoryContext {
		let localctx: Create_directoryContext = new Create_directoryContext(this, this._ctx, this.state);
		this.enterRule(localctx, 386, PlSqlParser.RULE_create_directory);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 4234;
			this.match(PlSqlParser.CREATE);
			this.state = 4237;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1172) {
				{
				this.state = 4235;
				this.match(PlSqlParser.OR);
				this.state = 4236;
				this.match(PlSqlParser.REPLACE);
				}
			}

			this.state = 4239;
			this.match(PlSqlParser.DIRECTORY);
			this.state = 4240;
			this.directory_name();
			this.state = 4241;
			this.match(PlSqlParser.AS);
			this.state = 4242;
			this.directory_path();
			this.state = 4243;
			this.match(PlSqlParser.SEMICOLON);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public directory_name(): Directory_nameContext {
		let localctx: Directory_nameContext = new Directory_nameContext(this, this._ctx, this.state);
		this.enterRule(localctx, 388, PlSqlParser.RULE_directory_name);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 4245;
			this.regular_id();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public directory_path(): Directory_pathContext {
		let localctx: Directory_pathContext = new Directory_pathContext(this, this._ctx, this.state);
		this.enterRule(localctx, 390, PlSqlParser.RULE_directory_path);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 4247;
			this.match(PlSqlParser.CHAR_STRING);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public alter_library(): Alter_libraryContext {
		let localctx: Alter_libraryContext = new Alter_libraryContext(this, this._ctx, this.state);
		this.enterRule(localctx, 392, PlSqlParser.RULE_alter_library);
		let _la: number;
		try {
			let _alt: number;
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 4249;
			this.match(PlSqlParser.ALTER);
			this.state = 4250;
			this.match(PlSqlParser.LIBRARY);
			this.state = 4251;
			this.library_name();
			this.state = 4267;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 397, this._ctx) ) {
			case 1:
				{
				this.state = 4252;
				this.match(PlSqlParser.COMPILE);
				this.state = 4254;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 394, this._ctx) ) {
				case 1:
					{
					this.state = 4253;
					this.library_debug();
					}
					break;
				}
				this.state = 4259;
				this._errHandler.sync(this);
				_alt = this._interp.adaptivePredict(this._input, 395, this._ctx);
				while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) {
					if (_alt === 1) {
						{
						{
						this.state = 4256;
						this.compiler_parameters_clause();
						}
						}
					}
					this.state = 4261;
					this._errHandler.sync(this);
					_alt = this._interp.adaptivePredict(this._input, 395, this._ctx);
				}
				this.state = 4264;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===1432) {
					{
					this.state = 4262;
					this.match(PlSqlParser.REUSE);
					this.state = 4263;
					this.match(PlSqlParser.SETTINGS);
					}
				}

				}
				break;
			case 2:
				{
				this.state = 4266;
				this.library_editionable();
				}
				break;
			}
			this.state = 4269;
			this.match(PlSqlParser.SEMICOLON);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public library_editionable(): Library_editionableContext {
		let localctx: Library_editionableContext = new Library_editionableContext(this, this._ctx, this.state);
		this.enterRule(localctx, 394, PlSqlParser.RULE_library_editionable);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 4271;
			if (!(this.isVersion12())) {
				throw this.createFailedPredicateException("this.isVersion12()");
			}
			this.state = 4272;
			_la = this._input.LA(1);
			if(!(_la===423 || _la===1006)) {
			this._errHandler.recoverInline(this);
			}
			else {
				this._errHandler.reportMatch(this);
			    this.consume();
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public library_debug(): Library_debugContext {
		let localctx: Library_debugContext = new Library_debugContext(this, this._ctx, this.state);
		this.enterRule(localctx, 396, PlSqlParser.RULE_library_debug);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 4274;
			if (!(this.isVersion12())) {
				throw this.createFailedPredicateException("this.isVersion12()");
			}
			this.state = 4275;
			this.match(PlSqlParser.DEBUG);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public compiler_parameters_clause(): Compiler_parameters_clauseContext {
		let localctx: Compiler_parameters_clauseContext = new Compiler_parameters_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 398, PlSqlParser.RULE_compiler_parameters_clause);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 4277;
			this.parameter_name();
			this.state = 4278;
			this.match(PlSqlParser.EQUALS_OP);
			this.state = 4279;
			this.parameter_value();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public parameter_value(): Parameter_valueContext {
		let localctx: Parameter_valueContext = new Parameter_valueContext(this, this._ctx, this.state);
		this.enterRule(localctx, 400, PlSqlParser.RULE_parameter_value);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 4281;
			this.regular_id();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public library_name(): Library_nameContext {
		let localctx: Library_nameContext = new Library_nameContext(this, this._ctx, this.state);
		this.enterRule(localctx, 402, PlSqlParser.RULE_library_name);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 4286;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 398, this._ctx) ) {
			case 1:
				{
				this.state = 4283;
				this.regular_id();
				this.state = 4284;
				this.match(PlSqlParser.PERIOD);
				}
				break;
			}
			this.state = 4288;
			this.regular_id();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public alter_view(): Alter_viewContext {
		let localctx: Alter_viewContext = new Alter_viewContext(this, this._ctx, this.state);
		this.enterRule(localctx, 404, PlSqlParser.RULE_alter_view);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 4290;
			this.match(PlSqlParser.ALTER);
			this.state = 4291;
			this.match(PlSqlParser.VIEW);
			this.state = 4292;
			this.tableview_name();
			this.state = 4325;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 402, this._ctx) ) {
			case 1:
				{
				this.state = 4293;
				this.match(PlSqlParser.ADD);
				this.state = 4294;
				this.out_of_line_constraint();
				}
				break;
			case 2:
				{
				this.state = 4295;
				this.match(PlSqlParser.MODIFY);
				this.state = 4296;
				this.match(PlSqlParser.CONSTRAINT);
				this.state = 4297;
				this.constraint_name();
				this.state = 4298;
				_la = this._input.LA(1);
				if(!(_la===1042 || _la===1400)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				}
				break;
			case 3:
				{
				this.state = 4300;
				this.match(PlSqlParser.DROP);
				this.state = 4317;
				this._errHandler.sync(this);
				switch (this._input.LA(1)) {
				case 257:
					{
					this.state = 4301;
					this.match(PlSqlParser.CONSTRAINT);
					this.state = 4302;
					this.constraint_name();
					}
					break;
				case 1304:
					{
					this.state = 4303;
					this.match(PlSqlParser.PRIMARY);
					this.state = 4304;
					this.match(PlSqlParser.KEY);
					}
					break;
				case 2002:
					{
					this.state = 4305;
					this.match(PlSqlParser.UNIQUE);
					this.state = 4306;
					this.match(PlSqlParser.LEFT_PAREN);
					this.state = 4307;
					this.column_name();
					this.state = 4312;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
					while (_la===2229) {
						{
						{
						this.state = 4308;
						this.match(PlSqlParser.COMMA);
						this.state = 4309;
						this.column_name();
						}
						}
						this.state = 4314;
						this._errHandler.sync(this);
						_la = this._input.LA(1);
					}
					this.state = 4315;
					this.match(PlSqlParser.RIGHT_PAREN);
					}
					break;
				default:
					throw new NoViableAltException(this);
				}
				}
				break;
			case 4:
				{
				this.state = 4319;
				this.match(PlSqlParser.COMPILE);
				}
				break;
			case 5:
				{
				this.state = 4320;
				this.match(PlSqlParser.READ);
				this.state = 4321;
				_la = this._input.LA(1);
				if(!(_la===1127 || _la===2125)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				}
				break;
			case 6:
				{
				this.state = 4323;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 401, this._ctx) ) {
				case 1:
					{
					this.state = 4322;
					this.alter_view_editionable();
					}
					break;
				}
				}
				break;
			}
			this.state = 4327;
			this.match(PlSqlParser.SEMICOLON);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public alter_view_editionable(): Alter_view_editionableContext {
		let localctx: Alter_view_editionableContext = new Alter_view_editionableContext(this, this._ctx, this.state);
		this.enterRule(localctx, 406, PlSqlParser.RULE_alter_view_editionable);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 4329;
			if (!(this.isVersion12())) {
				throw this.createFailedPredicateException("this.isVersion12()");
			}
			this.state = 4330;
			_la = this._input.LA(1);
			if(!(_la===423 || _la===1006)) {
			this._errHandler.recoverInline(this);
			}
			else {
				this._errHandler.reportMatch(this);
			    this.consume();
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public create_view(): Create_viewContext {
		let localctx: Create_viewContext = new Create_viewContext(this, this._ctx, this.state);
		this.enterRule(localctx, 408, PlSqlParser.RULE_create_view);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 4332;
			this.match(PlSqlParser.CREATE);
			this.state = 4335;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 403, this._ctx) ) {
			case 1:
				{
				this.state = 4333;
				this.match(PlSqlParser.OR);
				this.state = 4334;
				this.match(PlSqlParser.REPLACE);
				}
				break;
			}
			this.state = 4341;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===542 || _la===1172) {
				{
				this.state = 4338;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===1172) {
					{
					this.state = 4337;
					this.match(PlSqlParser.OR);
					}
				}

				this.state = 4340;
				this.match(PlSqlParser.FORCE);
				}
			}

			this.state = 4344;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===423) {
				{
				this.state = 4343;
				this.match(PlSqlParser.EDITIONABLE);
				}
			}

			this.state = 4347;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===425) {
				{
				this.state = 4346;
				this.match(PlSqlParser.EDITIONING);
				}
			}

			this.state = 4349;
			this.match(PlSqlParser.VIEW);
			this.state = 4350;
			this.tableview_name();
			this.state = 4352;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1115 || _la===2223) {
				{
				this.state = 4351;
				this.view_options();
				}
			}

			this.state = 4354;
			this.match(PlSqlParser.AS);
			this.state = 4355;
			this.select_only_statement();
			this.state = 4357;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 409, this._ctx) ) {
			case 1:
				{
				this.state = 4356;
				this.subquery_restriction_clause();
				}
				break;
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public view_options(): View_optionsContext {
		let localctx: View_optionsContext = new View_optionsContext(this, this._ctx, this.state);
		this.enterRule(localctx, 410, PlSqlParser.RULE_view_options);
		try {
			this.state = 4361;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 2223:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 4359;
				this.view_alias_constraint();
				}
				break;
			case 1115:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 4360;
				this.object_view_clause();
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public view_alias_constraint(): View_alias_constraintContext {
		let localctx: View_alias_constraintContext = new View_alias_constraintContext(this, this._ctx, this.state);
		this.enterRule(localctx, 412, PlSqlParser.RULE_view_alias_constraint);
		let _la: number;
		try {
			let _alt: number;
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 4363;
			this.match(PlSqlParser.LEFT_PAREN);
			this.state = 4377;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			do {
				{
				{
				this.state = 4365;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===2229) {
					{
					this.state = 4364;
					this.match(PlSqlParser.COMMA);
					}
				}

				this.state = 4375;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 413, this._ctx) ) {
				case 1:
					{
					this.state = 4367;
					this.table_alias();
					this.state = 4371;
					this._errHandler.sync(this);
					_alt = this._interp.adaptivePredict(this._input, 412, this._ctx);
					while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) {
						if (_alt === 1) {
							{
							{
							this.state = 4368;
							this.inline_constraint();
							}
							}
						}
						this.state = 4373;
						this._errHandler.sync(this);
						_alt = this._interp.adaptivePredict(this._input, 412, this._ctx);
					}
					}
					break;
				case 2:
					{
					this.state = 4374;
					this.out_of_line_constraint();
					}
					break;
				}
				}
				}
				this.state = 4379;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			} while ((((_la) & ~0x1F) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & 2684286839) !== 0) || ((((_la - 64)) & ~0x1F) === 0 && ((1 << (_la - 64)) & 3220168703) !== 0) || ((((_la - 96)) & ~0x1F) === 0 && ((1 << (_la - 96)) & 4294965247) !== 0) || ((((_la - 128)) & ~0x1F) === 0 && ((1 << (_la - 128)) & 2147221503) !== 0) || ((((_la - 160)) & ~0x1F) === 0 && ((1 << (_la - 160)) & 4294959103) !== 0) || ((((_la - 192)) & ~0x1F) === 0 && ((1 << (_la - 192)) & 4294967295) !== 0) || ((((_la - 224)) & ~0x1F) === 0 && ((1 << (_la - 224)) & 4160749311) !== 0) || ((((_la - 256)) & ~0x1F) === 0 && ((1 << (_la - 256)) & 4294967295) !== 0) || ((((_la - 289)) & ~0x1F) === 0 && ((1 << (_la - 289)) & 2147483647) !== 0) || ((((_la - 321)) & ~0x1F) === 0 && ((1 << (_la - 321)) & 3221225407) !== 0) || ((((_la - 353)) & ~0x1F) === 0 && ((1 << (_la - 353)) & 4294705151) !== 0) || ((((_la - 385)) & ~0x1F) === 0 && ((1 << (_la - 385)) & 2080372479) !== 0) || ((((_la - 417)) & ~0x1F) === 0 && ((1 << (_la - 417)) & 4026433535) !== 0) || ((((_la - 449)) & ~0x1F) === 0 && ((1 << (_la - 449)) & 4261412863) !== 0) || ((((_la - 481)) & ~0x1F) === 0 && ((1 << (_la - 481)) & 4294967295) !== 0) || ((((_la - 513)) & ~0x1F) === 0 && ((1 << (_la - 513)) & 4294967295) !== 0) || ((((_la - 545)) & ~0x1F) === 0 && ((1 << (_la - 545)) & 3925868029) !== 0) || ((((_la - 577)) & ~0x1F) === 0 && ((1 << (_la - 577)) & 4278189823) !== 0) || ((((_la - 609)) & ~0x1F) === 0 && ((1 << (_la - 609)) & 4290772991) !== 0) || ((((_la - 641)) & ~0x1F) === 0 && ((1 << (_la - 641)) & 4026529791) !== 0) || ((((_la - 673)) & ~0x1F) === 0 && ((1 << (_la - 673)) & 4290478079) !== 0) || ((((_la - 705)) & ~0x1F) === 0 && ((1 << (_la - 705)) & 4294967295) !== 0) || ((((_la - 737)) & ~0x1F) === 0 && ((1 << (_la - 737)) & 4293918719) !== 0) || ((((_la - 769)) & ~0x1F) === 0 && ((1 << (_la - 769)) & 4294967167) !== 0) || ((((_la - 801)) & ~0x1F) === 0 && ((1 << (_la - 801)) & 4294967295) !== 0) || ((((_la - 833)) & ~0x1F) === 0 && ((1 << (_la - 833)) & 4160749055) !== 0) || ((((_la - 865)) & ~0x1F) === 0 && ((1 << (_la - 865)) & 4290772991) !== 0) || ((((_la - 897)) & ~0x1F) === 0 && ((1 << (_la - 897)) & 4294967295) !== 0) || ((((_la - 929)) & ~0x1F) === 0 && ((1 << (_la - 929)) & 4278190079) !== 0) || ((((_la - 961)) & ~0x1F) === 0 && ((1 << (_la - 961)) & 4294967295) !== 0) || ((((_la - 993)) & ~0x1F) === 0 && ((1 << (_la - 993)) & 4294967295) !== 0) || ((((_la - 1025)) & ~0x1F) === 0 && ((1 << (_la - 1025)) & 4294967295) !== 0) || ((((_la - 1057)) & ~0x1F) === 0 && ((1 << (_la - 1057)) & 2147418111) !== 0) || ((((_la - 1089)) & ~0x1F) === 0 && ((1 << (_la - 1089)) & 4227858175) !== 0) || ((((_la - 1121)) & ~0x1F) === 0 && ((1 << (_la - 1121)) & 4293918559) !== 0) || ((((_la - 1153)) & ~0x1F) === 0 && ((1 << (_la - 1153)) & 4294410239) !== 0) || ((((_la - 1185)) & ~0x1F) === 0 && ((1 << (_la - 1185)) & 4294965247) !== 0) || ((((_la - 1217)) & ~0x1F) === 0 && ((1 << (_la - 1217)) & 4279827455) !== 0) || ((((_la - 1249)) & ~0x1F) === 0 && ((1 << (_la - 1249)) & 4294967291) !== 0) || ((((_la - 1281)) & ~0x1F) === 0 && ((1 << (_la - 1281)) & 4227858431) !== 0) || ((((_la - 1313)) & ~0x1F) === 0 && ((1 << (_la - 1313)) & 4294965247) !== 0) || ((((_la - 1345)) & ~0x1F) === 0 && ((1 << (_la - 1345)) & 4294967295) !== 0) || ((((_la - 1377)) & ~0x1F) === 0 && ((1 << (_la - 1377)) & 4292870143) !== 0) || ((((_la - 1409)) & ~0x1F) === 0 && ((1 << (_la - 1409)) & 4261412799) !== 0) || ((((_la - 1441)) & ~0x1F) === 0 && ((1 << (_la - 1441)) & 4294967295) !== 0) || ((((_la - 1473)) & ~0x1F) === 0 && ((1 << (_la - 1473)) & 4261281791) !== 0) || ((((_la - 1505)) & ~0x1F) === 0 && ((1 << (_la - 1505)) & 3221221375) !== 0) || ((((_la - 1537)) & ~0x1F) === 0 && ((1 << (_la - 1537)) & 4294967295) !== 0) || ((((_la - 1570)) & ~0x1F) === 0 && ((1 << (_la - 1570)) & 4294967295) !== 0) || ((((_la - 1602)) & ~0x1F) === 0 && ((1 << (_la - 1602)) & 4261412863) !== 0) || ((((_la - 1634)) & ~0x1F) === 0 && ((1 << (_la - 1634)) & 4294967295) !== 0) || ((((_la - 1666)) & ~0x1F) === 0 && ((1 << (_la - 1666)) & 4294967295) !== 0) || ((((_la - 1698)) & ~0x1F) === 0 && ((1 << (_la - 1698)) & 4294967295) !== 0) || ((((_la - 1730)) & ~0x1F) === 0 && ((1 << (_la - 1730)) & 4294967295) !== 0) || ((((_la - 1762)) & ~0x1F) === 0 && ((1 << (_la - 1762)) & 4294967295) !== 0) || ((((_la - 1794)) & ~0x1F) === 0 && ((1 << (_la - 1794)) & 4294967295) !== 0) || ((((_la - 1826)) & ~0x1F) === 0 && ((1 << (_la - 1826)) & 4294967295) !== 0) || ((((_la - 1858)) & ~0x1F) === 0 && ((1 << (_la - 1858)) & 4294967295) !== 0) || ((((_la - 1890)) & ~0x1F) === 0 && ((1 << (_la - 1890)) & 4294967295) !== 0) || ((((_la - 1922)) & ~0x1F) === 0 && ((1 << (_la - 1922)) & 4294901759) !== 0) || ((((_la - 1954)) & ~0x1F) === 0 && ((1 << (_la - 1954)) & 4294966271) !== 0) || ((((_la - 1986)) & ~0x1F) === 0 && ((1 << (_la - 1986)) & 4294934527) !== 0) || ((((_la - 2018)) & ~0x1F) === 0 && ((1 << (_la - 2018)) & 4294967167) !== 0) || ((((_la - 2050)) & ~0x1F) === 0 && ((1 << (_la - 2050)) & 4286578687) !== 0) || ((((_la - 2082)) & ~0x1F) === 0 && ((1 << (_la - 2082)) & 4294836223) !== 0) || ((((_la - 2115)) & ~0x1F) === 0 && ((1 << (_la - 2115)) & 3758092223) !== 0) || ((((_la - 2147)) & ~0x1F) === 0 && ((1 << (_la - 2147)) & 4293918719) !== 0) || ((((_la - 2179)) & ~0x1F) === 0 && ((1 << (_la - 2179)) & 4294965247) !== 0) || ((((_la - 2211)) & ~0x1F) === 0 && ((1 << (_la - 2211)) & 262947) !== 0) || _la===2246 || _la===2252);
			this.state = 4381;
			this.match(PlSqlParser.RIGHT_PAREN);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public object_view_clause(): Object_view_clauseContext {
		let localctx: Object_view_clauseContext = new Object_view_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 414, PlSqlParser.RULE_object_view_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 4383;
			this.match(PlSqlParser.OF);
			this.state = 4384;
			this.type_name();
			this.state = 4403;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 2121:
				{
				this.state = 4385;
				this.match(PlSqlParser.WITH);
				this.state = 4386;
				this.match(PlSqlParser.OBJECT);
				this.state = 4387;
				_la = this._input.LA(1);
				if(!(_la===602 || _la===605 || _la===1117)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				this.state = 4399;
				this._errHandler.sync(this);
				switch (this._input.LA(1)) {
				case 351:
					{
					this.state = 4388;
					this.match(PlSqlParser.DEFAULT);
					}
					break;
				case 2223:
					{
					this.state = 4389;
					this.match(PlSqlParser.LEFT_PAREN);
					this.state = 4390;
					this.match(PlSqlParser.REGULAR_ID);
					this.state = 4395;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
					while (_la===2229) {
						{
						{
						this.state = 4391;
						this.match(PlSqlParser.COMMA);
						this.state = 4392;
						this.match(PlSqlParser.REGULAR_ID);
						}
						}
						this.state = 4397;
						this._errHandler.sync(this);
						_la = this._input.LA(1);
					}
					this.state = 4398;
					this.match(PlSqlParser.RIGHT_PAREN);
					}
					break;
				default:
					throw new NoViableAltException(this);
				}
				}
				break;
			case 1997:
				{
				this.state = 4401;
				this.match(PlSqlParser.UNDER);
				this.state = 4402;
				this.tableview_name();
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
			this.state = 4422;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			while (_la===2223) {
				{
				{
				this.state = 4405;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 4414;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				do {
					{
					{
					this.state = 4407;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
					if (_la===2229) {
						{
						this.state = 4406;
						this.match(PlSqlParser.COMMA);
						}
					}

					this.state = 4412;
					this._errHandler.sync(this);
					switch (this._input.LA(1)) {
					case 180:
					case 257:
					case 544:
					case 1304:
					case 2002:
						{
						this.state = 4409;
						this.out_of_line_constraint();
						}
						break;
					case 2252:
						{
						this.state = 4410;
						this.match(PlSqlParser.REGULAR_ID);
						this.state = 4411;
						this.inline_constraint();
						}
						break;
					default:
						throw new NoViableAltException(this);
					}
					}
					}
					this.state = 4416;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				} while (_la===180 || _la===257 || _la===544 || _la===1304 || _la===2002 || _la===2229 || _la===2252);
				this.state = 4418;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
				}
				this.state = 4424;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public inline_constraint(): Inline_constraintContext {
		let localctx: Inline_constraintContext = new Inline_constraintContext(this, this._ctx, this.state);
		this.enterRule(localctx, 416, PlSqlParser.RULE_inline_constraint);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 4427;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===257) {
				{
				this.state = 4425;
				this.match(PlSqlParser.CONSTRAINT);
				this.state = 4426;
				this.constraint_name();
				}
			}

			this.state = 4438;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 1073:
			case 1097:
				{
				this.state = 4430;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===1073) {
					{
					this.state = 4429;
					this.match(PlSqlParser.NOT);
					}
				}

				this.state = 4432;
				this.match(PlSqlParser.NULL_);
				}
				break;
			case 2002:
				{
				this.state = 4433;
				this.match(PlSqlParser.UNIQUE);
				}
				break;
			case 1304:
				{
				this.state = 4434;
				this.match(PlSqlParser.PRIMARY);
				this.state = 4435;
				this.match(PlSqlParser.KEY);
				}
				break;
			case 1374:
				{
				this.state = 4436;
				this.references_clause();
				}
				break;
			case 180:
				{
				this.state = 4437;
				this.check_constraint();
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
			this.state = 4441;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 425, this._ctx) ) {
			case 1:
				{
				this.state = 4440;
				this.constraint_state();
				}
				break;
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public inline_ref_constraint(): Inline_ref_constraintContext {
		let localctx: Inline_ref_constraintContext = new Inline_ref_constraintContext(this, this._ctx, this.state);
		this.enterRule(localctx, 418, PlSqlParser.RULE_inline_ref_constraint);
		let _la: number;
		try {
			this.state = 4456;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 1473:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 4443;
				this.match(PlSqlParser.SCOPE);
				this.state = 4444;
				this.match(PlSqlParser.IS);
				this.state = 4445;
				this.tableview_name();
				}
				break;
			case 2121:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 4446;
				this.match(PlSqlParser.WITH);
				this.state = 4447;
				this.match(PlSqlParser.ROWID);
				}
				break;
			case 257:
			case 1374:
				this.enterOuterAlt(localctx, 3);
				{
				this.state = 4450;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===257) {
					{
					this.state = 4448;
					this.match(PlSqlParser.CONSTRAINT);
					this.state = 4449;
					this.constraint_name();
					}
				}

				this.state = 4452;
				this.references_clause();
				this.state = 4454;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 427, this._ctx) ) {
				case 1:
					{
					this.state = 4453;
					this.constraint_state();
					}
					break;
				}
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public out_of_line_ref_constraint(): Out_of_line_ref_constraintContext {
		let localctx: Out_of_line_ref_constraintContext = new Out_of_line_ref_constraintContext(this, this._ctx, this.state);
		this.enterRule(localctx, 420, PlSqlParser.RULE_out_of_line_ref_constraint);
		let _la: number;
		try {
			this.state = 4493;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 1473:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 4458;
				this.match(PlSqlParser.SCOPE);
				this.state = 4459;
				this.match(PlSqlParser.FOR);
				this.state = 4460;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 4461;
				localctx._ref_col_or_attr = this.regular_id();
				this.state = 4462;
				this.match(PlSqlParser.RIGHT_PAREN);
				this.state = 4463;
				this.match(PlSqlParser.IS);
				this.state = 4464;
				this.tableview_name();
				}
				break;
			case 1376:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 4466;
				this.match(PlSqlParser.REF);
				this.state = 4467;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 4468;
				localctx._ref_col_or_attr = this.regular_id();
				this.state = 4469;
				this.match(PlSqlParser.RIGHT_PAREN);
				this.state = 4470;
				this.match(PlSqlParser.WITH);
				this.state = 4471;
				this.match(PlSqlParser.ROWID);
				}
				break;
			case 257:
			case 544:
				this.enterOuterAlt(localctx, 3);
				{
				this.state = 4475;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===257) {
					{
					this.state = 4473;
					this.match(PlSqlParser.CONSTRAINT);
					this.state = 4474;
					this.constraint_name();
					}
				}

				this.state = 4477;
				this.match(PlSqlParser.FOREIGN);
				this.state = 4478;
				this.match(PlSqlParser.KEY);
				this.state = 4479;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 4484;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				do {
					{
					{
					this.state = 4481;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
					if (_la===2229) {
						{
						this.state = 4480;
						this.match(PlSqlParser.COMMA);
						}
					}

					this.state = 4483;
					localctx._ref_col_or_attr = this.regular_id();
					}
					}
					this.state = 4486;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				} while ((((_la) & ~0x1F) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & 2684286839) !== 0) || ((((_la - 64)) & ~0x1F) === 0 && ((1 << (_la - 64)) & 3220168703) !== 0) || ((((_la - 96)) & ~0x1F) === 0 && ((1 << (_la - 96)) & 4294965247) !== 0) || ((((_la - 128)) & ~0x1F) === 0 && ((1 << (_la - 128)) & 2147221503) !== 0) || ((((_la - 160)) & ~0x1F) === 0 && ((1 << (_la - 160)) & 4293910527) !== 0) || ((((_la - 192)) & ~0x1F) === 0 && ((1 << (_la - 192)) & 4294967295) !== 0) || ((((_la - 224)) & ~0x1F) === 0 && ((1 << (_la - 224)) & 4160749311) !== 0) || ((((_la - 256)) & ~0x1F) === 0 && ((1 << (_la - 256)) & 4294967295) !== 0) || ((((_la - 289)) & ~0x1F) === 0 && ((1 << (_la - 289)) & 2147483647) !== 0) || ((((_la - 321)) & ~0x1F) === 0 && ((1 << (_la - 321)) & 3221225407) !== 0) || ((((_la - 353)) & ~0x1F) === 0 && ((1 << (_la - 353)) & 4294705151) !== 0) || ((((_la - 385)) & ~0x1F) === 0 && ((1 << (_la - 385)) & 2080372479) !== 0) || ((((_la - 417)) & ~0x1F) === 0 && ((1 << (_la - 417)) & 4026433535) !== 0) || ((((_la - 449)) & ~0x1F) === 0 && ((1 << (_la - 449)) & 4261412863) !== 0) || ((((_la - 481)) & ~0x1F) === 0 && ((1 << (_la - 481)) & 4294967295) !== 0) || ((((_la - 513)) & ~0x1F) === 0 && ((1 << (_la - 513)) & 4294967295) !== 0) || ((((_la - 545)) & ~0x1F) === 0 && ((1 << (_la - 545)) & 3925868029) !== 0) || ((((_la - 577)) & ~0x1F) === 0 && ((1 << (_la - 577)) & 4278189823) !== 0) || ((((_la - 609)) & ~0x1F) === 0 && ((1 << (_la - 609)) & 4290772991) !== 0) || ((((_la - 641)) & ~0x1F) === 0 && ((1 << (_la - 641)) & 4026529791) !== 0) || ((((_la - 673)) & ~0x1F) === 0 && ((1 << (_la - 673)) & 4290478079) !== 0) || ((((_la - 705)) & ~0x1F) === 0 && ((1 << (_la - 705)) & 4294967295) !== 0) || ((((_la - 737)) & ~0x1F) === 0 && ((1 << (_la - 737)) & 4293918719) !== 0) || ((((_la - 769)) & ~0x1F) === 0 && ((1 << (_la - 769)) & 4294967167) !== 0) || ((((_la - 801)) & ~0x1F) === 0 && ((1 << (_la - 801)) & 4294967295) !== 0) || ((((_la - 833)) & ~0x1F) === 0 && ((1 << (_la - 833)) & 4160749055) !== 0) || ((((_la - 865)) & ~0x1F) === 0 && ((1 << (_la - 865)) & 4290772991) !== 0) || ((((_la - 897)) & ~0x1F) === 0 && ((1 << (_la - 897)) & 4294967295) !== 0) || ((((_la - 929)) & ~0x1F) === 0 && ((1 << (_la - 929)) & 4278190079) !== 0) || ((((_la - 961)) & ~0x1F) === 0 && ((1 << (_la - 961)) & 4294967295) !== 0) || ((((_la - 993)) & ~0x1F) === 0 && ((1 << (_la - 993)) & 4294967295) !== 0) || ((((_la - 1025)) & ~0x1F) === 0 && ((1 << (_la - 1025)) & 4294967295) !== 0) || ((((_la - 1057)) & ~0x1F) === 0 && ((1 << (_la - 1057)) & 2147418111) !== 0) || ((((_la - 1089)) & ~0x1F) === 0 && ((1 << (_la - 1089)) & 4227858175) !== 0) || ((((_la - 1121)) & ~0x1F) === 0 && ((1 << (_la - 1121)) & 4293918559) !== 0) || ((((_la - 1153)) & ~0x1F) === 0 && ((1 << (_la - 1153)) & 4294410239) !== 0) || ((((_la - 1185)) & ~0x1F) === 0 && ((1 << (_la - 1185)) & 4294965247) !== 0) || ((((_la - 1217)) & ~0x1F) === 0 && ((1 << (_la - 1217)) & 4279827455) !== 0) || ((((_la - 1249)) & ~0x1F) === 0 && ((1 << (_la - 1249)) & 4294967291) !== 0) || ((((_la - 1281)) & ~0x1F) === 0 && ((1 << (_la - 1281)) & 4227858431) !== 0) || ((((_la - 1313)) & ~0x1F) === 0 && ((1 << (_la - 1313)) & 4294965247) !== 0) || ((((_la - 1345)) & ~0x1F) === 0 && ((1 << (_la - 1345)) & 4294967295) !== 0) || ((((_la - 1377)) & ~0x1F) === 0 && ((1 << (_la - 1377)) & 4292870143) !== 0) || ((((_la - 1409)) & ~0x1F) === 0 && ((1 << (_la - 1409)) & 4261412799) !== 0) || ((((_la - 1441)) & ~0x1F) === 0 && ((1 << (_la - 1441)) & 4294967295) !== 0) || ((((_la - 1473)) & ~0x1F) === 0 && ((1 << (_la - 1473)) & 4261281791) !== 0) || ((((_la - 1505)) & ~0x1F) === 0 && ((1 << (_la - 1505)) & 3221221375) !== 0) || ((((_la - 1537)) & ~0x1F) === 0 && ((1 << (_la - 1537)) & 4294967295) !== 0) || ((((_la - 1570)) & ~0x1F) === 0 && ((1 << (_la - 1570)) & 4294967295) !== 0) || ((((_la - 1602)) & ~0x1F) === 0 && ((1 << (_la - 1602)) & 4261412863) !== 0) || ((((_la - 1634)) & ~0x1F) === 0 && ((1 << (_la - 1634)) & 4294967295) !== 0) || ((((_la - 1666)) & ~0x1F) === 0 && ((1 << (_la - 1666)) & 4294967295) !== 0) || ((((_la - 1698)) & ~0x1F) === 0 && ((1 << (_la - 1698)) & 4294967295) !== 0) || ((((_la - 1730)) & ~0x1F) === 0 && ((1 << (_la - 1730)) & 4294967295) !== 0) || ((((_la - 1762)) & ~0x1F) === 0 && ((1 << (_la - 1762)) & 4294967295) !== 0) || ((((_la - 1794)) & ~0x1F) === 0 && ((1 << (_la - 1794)) & 4294967295) !== 0) || ((((_la - 1826)) & ~0x1F) === 0 && ((1 << (_la - 1826)) & 4294967295) !== 0) || ((((_la - 1858)) & ~0x1F) === 0 && ((1 << (_la - 1858)) & 4294967295) !== 0) || ((((_la - 1890)) & ~0x1F) === 0 && ((1 << (_la - 1890)) & 4294967295) !== 0) || ((((_la - 1922)) & ~0x1F) === 0 && ((1 << (_la - 1922)) & 4294901759) !== 0) || ((((_la - 1954)) & ~0x1F) === 0 && ((1 << (_la - 1954)) & 4294966271) !== 0) || ((((_la - 1986)) & ~0x1F) === 0 && ((1 << (_la - 1986)) & 4294868991) !== 0) || ((((_la - 2018)) & ~0x1F) === 0 && ((1 << (_la - 2018)) & 4294967167) !== 0) || ((((_la - 2050)) & ~0x1F) === 0 && ((1 << (_la - 2050)) & 4286578687) !== 0) || ((((_la - 2082)) & ~0x1F) === 0 && ((1 << (_la - 2082)) & 4294836223) !== 0) || ((((_la - 2115)) & ~0x1F) === 0 && ((1 << (_la - 2115)) & 3758092223) !== 0) || ((((_la - 2147)) & ~0x1F) === 0 && ((1 << (_la - 2147)) & 4293918719) !== 0) || ((((_la - 2179)) & ~0x1F) === 0 && ((1 << (_la - 2179)) & 4294965247) !== 0) || ((((_la - 2211)) & ~0x1F) === 0 && ((1 << (_la - 2211)) & 262177) !== 0) || _la===2252);
				this.state = 4488;
				this.match(PlSqlParser.RIGHT_PAREN);
				this.state = 4489;
				this.references_clause();
				this.state = 4491;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 432, this._ctx) ) {
				case 1:
					{
					this.state = 4490;
					this.constraint_state();
					}
					break;
				}
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public out_of_line_constraint(): Out_of_line_constraintContext {
		let localctx: Out_of_line_constraintContext = new Out_of_line_constraintContext(this, this._ctx, this.state);
		this.enterRule(localctx, 422, PlSqlParser.RULE_out_of_line_constraint);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			{
			this.state = 4497;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===257) {
				{
				this.state = 4495;
				this.match(PlSqlParser.CONSTRAINT);
				this.state = 4496;
				this.constraint_name();
				}
			}

			this.state = 4530;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 2002:
				{
				this.state = 4499;
				this.match(PlSqlParser.UNIQUE);
				this.state = 4500;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 4501;
				this.column_name();
				this.state = 4506;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===2229) {
					{
					{
					this.state = 4502;
					this.match(PlSqlParser.COMMA);
					this.state = 4503;
					this.column_name();
					}
					}
					this.state = 4508;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				this.state = 4509;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
				break;
			case 1304:
				{
				this.state = 4511;
				this.match(PlSqlParser.PRIMARY);
				this.state = 4512;
				this.match(PlSqlParser.KEY);
				this.state = 4513;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 4514;
				this.column_name();
				this.state = 4519;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===2229) {
					{
					{
					this.state = 4515;
					this.match(PlSqlParser.COMMA);
					this.state = 4516;
					this.column_name();
					}
					}
					this.state = 4521;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				this.state = 4522;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
				break;
			case 544:
				{
				this.state = 4524;
				this.foreign_key_clause();
				}
				break;
			case 180:
				{
				this.state = 4525;
				this.match(PlSqlParser.CHECK);
				this.state = 4526;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 4527;
				this.expression();
				this.state = 4528;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
			}
			this.state = 4533;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 438, this._ctx) ) {
			case 1:
				{
				this.state = 4532;
				this.constraint_state();
				}
				break;
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public constraint_state(): Constraint_stateContext {
		let localctx: Constraint_stateContext = new Constraint_stateContext(this, this._ctx, this.state);
		this.enterRule(localctx, 424, PlSqlParser.RULE_constraint_state);
		let _la: number;
		try {
			let _alt: number;
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 4545;
			this._errHandler.sync(this);
			_alt = 1;
			do {
				switch (_alt) {
				case 1:
					{
					this.state = 4545;
					this._errHandler.sync(this);
					switch (this._input.LA(1)) {
					case 353:
					case 1073:
						{
						this.state = 4536;
						this._errHandler.sync(this);
						_la = this._input.LA(1);
						if (_la===1073) {
							{
							this.state = 4535;
							this.match(PlSqlParser.NOT);
							}
						}

						this.state = 4538;
						this.match(PlSqlParser.DEFERRABLE);
						}
						break;
					case 656:
						{
						this.state = 4539;
						this.match(PlSqlParser.INITIALLY);
						this.state = 4540;
						_la = this._input.LA(1);
						if(!(_la===354 || _la===613)) {
						this._errHandler.recoverInline(this);
						}
						else {
							this._errHandler.reportMatch(this);
						    this.consume();
						}
						}
						break;
					case 1042:
					case 1400:
						{
						this.state = 4541;
						_la = this._input.LA(1);
						if(!(_la===1042 || _la===1400)) {
						this._errHandler.recoverInline(this);
						}
						else {
							this._errHandler.reportMatch(this);
						    this.consume();
						}
						}
						break;
					case 383:
					case 439:
						{
						this.state = 4542;
						_la = this._input.LA(1);
						if(!(_la===383 || _la===439)) {
						this._errHandler.recoverInline(this);
						}
						else {
							this._errHandler.reportMatch(this);
						    this.consume();
						}
						}
						break;
					case 1084:
					case 2070:
						{
						this.state = 4543;
						_la = this._input.LA(1);
						if(!(_la===1084 || _la===2070)) {
						this._errHandler.recoverInline(this);
						}
						else {
							this._errHandler.reportMatch(this);
						    this.consume();
						}
						}
						break;
					case 2063:
						{
						this.state = 4544;
						this.using_index_clause();
						}
						break;
					default:
						throw new NoViableAltException(this);
					}
					}
					break;
				default:
					throw new NoViableAltException(this);
				}
				this.state = 4547;
				this._errHandler.sync(this);
				_alt = this._interp.adaptivePredict(this._input, 441, this._ctx);
			} while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public alter_tablespace(): Alter_tablespaceContext {
		let localctx: Alter_tablespaceContext = new Alter_tablespaceContext(this, this._ctx, this.state);
		this.enterRule(localctx, 426, PlSqlParser.RULE_alter_tablespace);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 4549;
			this.match(PlSqlParser.ALTER);
			this.state = 4550;
			this.match(PlSqlParser.TABLESPACE);
			this.state = 4551;
			this.tablespace();
			this.state = 4584;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 445, this._ctx) ) {
			case 1:
				{
				this.state = 4552;
				this.match(PlSqlParser.DEFAULT);
				this.state = 4554;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===232 || _la===953) {
					{
					this.state = 4553;
					this.table_compression();
					}
				}

				this.state = 4557;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===1593) {
					{
					this.state = 4556;
					this.storage_clause();
					}
				}

				}
				break;
			case 2:
				{
				this.state = 4559;
				this.match(PlSqlParser.MINIMUM);
				this.state = 4560;
				this.match(PlSqlParser.EXTENT);
				this.state = 4561;
				this.size_clause();
				}
				break;
			case 3:
				{
				this.state = 4562;
				this.match(PlSqlParser.RESIZE);
				this.state = 4563;
				this.size_clause();
				}
				break;
			case 4:
				{
				this.state = 4564;
				this.match(PlSqlParser.COALESCE);
				}
				break;
			case 5:
				{
				this.state = 4565;
				this.match(PlSqlParser.SHRINK);
				this.state = 4566;
				this.match(PlSqlParser.SPACE_KEYWORD);
				this.state = 4569;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===720) {
					{
					this.state = 4567;
					this.match(PlSqlParser.KEEP);
					this.state = 4568;
					this.size_clause();
					}
				}

				}
				break;
			case 6:
				{
				this.state = 4571;
				this.match(PlSqlParser.RENAME);
				this.state = 4572;
				this.match(PlSqlParser.TO);
				this.state = 4573;
				this.new_tablespace_name();
				}
				break;
			case 7:
				{
				this.state = 4574;
				this.begin_or_end();
				this.state = 4575;
				this.match(PlSqlParser.BACKUP);
				}
				break;
			case 8:
				{
				this.state = 4577;
				this.datafile_tempfile_clauses();
				}
				break;
			case 9:
				{
				this.state = 4578;
				this.tablespace_logging_clauses();
				}
				break;
			case 10:
				{
				this.state = 4579;
				this.tablespace_group_clause();
				}
				break;
			case 11:
				{
				this.state = 4580;
				this.tablespace_state_clauses();
				}
				break;
			case 12:
				{
				this.state = 4581;
				this.autoextend_clause();
				}
				break;
			case 13:
				{
				this.state = 4582;
				this.flashback_mode_clause();
				}
				break;
			case 14:
				{
				this.state = 4583;
				this.tablespace_retention_clause();
				}
				break;
			}
			this.state = 4586;
			this.match(PlSqlParser.SEMICOLON);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public datafile_tempfile_clauses(): Datafile_tempfile_clausesContext {
		let localctx: Datafile_tempfile_clausesContext = new Datafile_tempfile_clausesContext(this, this._ctx, this.state);
		this.enterRule(localctx, 428, PlSqlParser.RULE_datafile_tempfile_clauses);
		let _la: number;
		try {
			this.state = 4634;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 18:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 4588;
				this.match(PlSqlParser.ADD);
				this.state = 4591;
				this._errHandler.sync(this);
				switch (this._input.LA(1)) {
				case 318:
					{
					this.state = 4589;
					this.datafile_specification();
					}
					break;
				case 1918:
					{
					this.state = 4590;
					this.tempfile_specification();
					}
					break;
				default:
					throw new NoViableAltException(this);
				}
				}
				break;
			case 411:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 4593;
				this.match(PlSqlParser.DROP);
				this.state = 4594;
				_la = this._input.LA(1);
				if(!(_la===318 || _la===1918)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				this.state = 4597;
				this._errHandler.sync(this);
				switch (this._input.LA(1)) {
				case 2219:
					{
					this.state = 4595;
					this.filename();
					}
					break;
				case 2217:
					{
					this.state = 4596;
					this.match(PlSqlParser.UNSIGNED_INTEGER);
					}
					break;
				default:
					throw new NoViableAltException(this);
				}
				this.state = 4601;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===720) {
					{
					this.state = 4599;
					this.match(PlSqlParser.KEEP);
					this.state = 4600;
					this.size_clause();
					}
				}

				}
				break;
			case 1521:
				this.enterOuterAlt(localctx, 3);
				{
				this.state = 4603;
				this.match(PlSqlParser.SHRINK);
				this.state = 4604;
				this.match(PlSqlParser.TEMPFILE);
				this.state = 4607;
				this._errHandler.sync(this);
				switch (this._input.LA(1)) {
				case 2219:
					{
					this.state = 4605;
					this.filename();
					}
					break;
				case 2217:
					{
					this.state = 4606;
					this.match(PlSqlParser.UNSIGNED_INTEGER);
					}
					break;
				default:
					throw new NoViableAltException(this);
				}
				this.state = 4611;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===720) {
					{
					this.state = 4609;
					this.match(PlSqlParser.KEEP);
					this.state = 4610;
					this.size_clause();
					}
				}

				}
				break;
			case 1404:
				this.enterOuterAlt(localctx, 4);
				{
				this.state = 4613;
				this.match(PlSqlParser.RENAME);
				this.state = 4614;
				this.match(PlSqlParser.DATAFILE);
				this.state = 4615;
				this.filename();
				this.state = 4620;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===2229) {
					{
					{
					this.state = 4616;
					this.match(PlSqlParser.COMMA);
					this.state = 4617;
					this.filename();
					}
					}
					this.state = 4622;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				this.state = 4623;
				this.match(PlSqlParser.TO);
				this.state = 4624;
				this.filename();
				this.state = 4629;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===2229) {
					{
					{
					this.state = 4625;
					this.match(PlSqlParser.COMMA);
					this.state = 4626;
					this.filename();
					}
					}
					this.state = 4631;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				}
				break;
			case 318:
			case 1918:
				this.enterOuterAlt(localctx, 5);
				{
				this.state = 4632;
				_la = this._input.LA(1);
				if(!(_la===318 || _la===1918)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				{
				this.state = 4633;
				this.online_or_offline();
				}
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public tablespace_logging_clauses(): Tablespace_logging_clausesContext {
		let localctx: Tablespace_logging_clausesContext = new Tablespace_logging_clausesContext(this, this._ctx, this.state);
		this.enterRule(localctx, 430, PlSqlParser.RULE_tablespace_logging_clauses);
		let _la: number;
		try {
			this.state = 4642;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 521:
			case 779:
			case 993:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 4636;
				this.logging_clause();
				}
				break;
			case 542:
			case 1010:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 4638;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===1010) {
					{
					this.state = 4637;
					this.match(PlSqlParser.NO);
					}
				}

				this.state = 4640;
				this.match(PlSqlParser.FORCE);
				this.state = 4641;
				this.match(PlSqlParser.LOGGING);
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public tablespace_group_clause(): Tablespace_group_clauseContext {
		let localctx: Tablespace_group_clauseContext = new Tablespace_group_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 432, PlSqlParser.RULE_tablespace_group_clause);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 4644;
			this.match(PlSqlParser.TABLESPACE);
			this.state = 4645;
			this.match(PlSqlParser.GROUP);
			this.state = 4648;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 1:
			case 2:
			case 3:
			case 4:
			case 5:
			case 6:
			case 7:
			case 8:
			case 9:
			case 10:
			case 11:
			case 12:
			case 13:
			case 14:
			case 15:
			case 16:
			case 17:
			case 18:
			case 19:
			case 20:
			case 21:
			case 22:
			case 23:
			case 24:
			case 25:
			case 26:
			case 27:
			case 28:
			case 29:
			case 30:
			case 31:
			case 32:
			case 33:
			case 34:
			case 36:
			case 37:
			case 38:
			case 40:
			case 41:
			case 42:
			case 44:
			case 45:
			case 46:
			case 47:
			case 49:
			case 50:
			case 51:
			case 52:
			case 53:
			case 54:
			case 55:
			case 56:
			case 57:
			case 58:
			case 59:
			case 60:
			case 63:
			case 64:
			case 65:
			case 66:
			case 67:
			case 68:
			case 69:
			case 70:
			case 71:
			case 72:
			case 73:
			case 74:
			case 75:
			case 76:
			case 78:
			case 79:
			case 80:
			case 81:
			case 82:
			case 83:
			case 85:
			case 86:
			case 87:
			case 88:
			case 89:
			case 90:
			case 91:
			case 92:
			case 93:
			case 95:
			case 96:
			case 97:
			case 98:
			case 99:
			case 100:
			case 101:
			case 102:
			case 103:
			case 104:
			case 105:
			case 106:
			case 108:
			case 109:
			case 110:
			case 111:
			case 112:
			case 113:
			case 114:
			case 115:
			case 116:
			case 117:
			case 118:
			case 119:
			case 120:
			case 121:
			case 122:
			case 123:
			case 124:
			case 125:
			case 126:
			case 127:
			case 128:
			case 129:
			case 130:
			case 131:
			case 132:
			case 133:
			case 134:
			case 135:
			case 136:
			case 137:
			case 138:
			case 139:
			case 140:
			case 141:
			case 142:
			case 143:
			case 144:
			case 145:
			case 147:
			case 148:
			case 149:
			case 150:
			case 151:
			case 152:
			case 153:
			case 154:
			case 155:
			case 156:
			case 157:
			case 158:
			case 160:
			case 161:
			case 162:
			case 163:
			case 164:
			case 165:
			case 166:
			case 167:
			case 168:
			case 169:
			case 170:
			case 171:
			case 172:
			case 174:
			case 175:
			case 176:
			case 177:
			case 178:
			case 179:
			case 181:
			case 182:
			case 183:
			case 184:
			case 185:
			case 186:
			case 187:
			case 188:
			case 189:
			case 190:
			case 191:
			case 192:
			case 193:
			case 194:
			case 195:
			case 196:
			case 197:
			case 198:
			case 199:
			case 200:
			case 201:
			case 202:
			case 203:
			case 204:
			case 205:
			case 206:
			case 207:
			case 208:
			case 209:
			case 210:
			case 211:
			case 212:
			case 213:
			case 214:
			case 215:
			case 216:
			case 217:
			case 218:
			case 219:
			case 220:
			case 221:
			case 222:
			case 223:
			case 224:
			case 225:
			case 226:
			case 227:
			case 228:
			case 229:
			case 230:
			case 231:
			case 233:
			case 234:
			case 235:
			case 236:
			case 237:
			case 238:
			case 239:
			case 240:
			case 241:
			case 242:
			case 243:
			case 244:
			case 245:
			case 246:
			case 247:
			case 248:
			case 249:
			case 250:
			case 252:
			case 253:
			case 254:
			case 255:
			case 256:
			case 257:
			case 258:
			case 259:
			case 260:
			case 261:
			case 262:
			case 263:
			case 264:
			case 265:
			case 266:
			case 267:
			case 268:
			case 269:
			case 270:
			case 271:
			case 272:
			case 273:
			case 274:
			case 275:
			case 276:
			case 277:
			case 278:
			case 279:
			case 280:
			case 281:
			case 282:
			case 283:
			case 284:
			case 285:
			case 286:
			case 287:
			case 289:
			case 290:
			case 291:
			case 292:
			case 293:
			case 294:
			case 295:
			case 296:
			case 297:
			case 298:
			case 299:
			case 300:
			case 301:
			case 302:
			case 303:
			case 304:
			case 305:
			case 306:
			case 307:
			case 308:
			case 309:
			case 310:
			case 311:
			case 312:
			case 313:
			case 314:
			case 315:
			case 316:
			case 317:
			case 318:
			case 319:
			case 321:
			case 322:
			case 323:
			case 324:
			case 325:
			case 326:
			case 328:
			case 329:
			case 330:
			case 331:
			case 332:
			case 333:
			case 334:
			case 335:
			case 336:
			case 337:
			case 338:
			case 339:
			case 340:
			case 341:
			case 342:
			case 343:
			case 344:
			case 345:
			case 346:
			case 347:
			case 348:
			case 349:
			case 350:
			case 352:
			case 353:
			case 354:
			case 355:
			case 356:
			case 357:
			case 358:
			case 359:
			case 360:
			case 361:
			case 362:
			case 363:
			case 364:
			case 365:
			case 366:
			case 367:
			case 368:
			case 369:
			case 370:
			case 372:
			case 373:
			case 374:
			case 375:
			case 376:
			case 377:
			case 378:
			case 379:
			case 380:
			case 381:
			case 382:
			case 383:
			case 384:
			case 385:
			case 386:
			case 387:
			case 388:
			case 389:
			case 390:
			case 391:
			case 392:
			case 394:
			case 395:
			case 397:
			case 398:
			case 399:
			case 400:
			case 401:
			case 402:
			case 403:
			case 404:
			case 405:
			case 406:
			case 407:
			case 408:
			case 409:
			case 410:
			case 412:
			case 413:
			case 414:
			case 415:
			case 417:
			case 418:
			case 419:
			case 420:
			case 421:
			case 422:
			case 423:
			case 424:
			case 425:
			case 426:
			case 427:
			case 428:
			case 429:
			case 430:
			case 431:
			case 434:
			case 435:
			case 436:
			case 437:
			case 438:
			case 439:
			case 440:
			case 441:
			case 442:
			case 443:
			case 444:
			case 446:
			case 447:
			case 448:
			case 449:
			case 450:
			case 451:
			case 452:
			case 453:
			case 454:
			case 455:
			case 456:
			case 457:
			case 458:
			case 459:
			case 460:
			case 461:
			case 462:
			case 463:
			case 464:
			case 465:
			case 466:
			case 467:
			case 468:
			case 469:
			case 470:
			case 471:
			case 472:
			case 473:
			case 475:
			case 476:
			case 477:
			case 478:
			case 479:
			case 480:
			case 481:
			case 482:
			case 483:
			case 484:
			case 485:
			case 486:
			case 487:
			case 488:
			case 489:
			case 490:
			case 491:
			case 492:
			case 493:
			case 494:
			case 495:
			case 496:
			case 497:
			case 498:
			case 499:
			case 500:
			case 501:
			case 502:
			case 503:
			case 504:
			case 505:
			case 506:
			case 507:
			case 508:
			case 509:
			case 510:
			case 511:
			case 512:
			case 513:
			case 514:
			case 515:
			case 516:
			case 517:
			case 518:
			case 519:
			case 520:
			case 521:
			case 522:
			case 523:
			case 524:
			case 525:
			case 526:
			case 527:
			case 528:
			case 529:
			case 530:
			case 531:
			case 532:
			case 533:
			case 534:
			case 535:
			case 536:
			case 537:
			case 538:
			case 539:
			case 540:
			case 541:
			case 542:
			case 543:
			case 544:
			case 545:
			case 547:
			case 548:
			case 549:
			case 550:
			case 551:
			case 552:
			case 553:
			case 555:
			case 556:
			case 557:
			case 558:
			case 559:
			case 560:
			case 561:
			case 562:
			case 563:
			case 564:
			case 565:
			case 566:
			case 567:
			case 568:
			case 569:
			case 572:
			case 574:
			case 575:
			case 576:
			case 577:
			case 578:
			case 579:
			case 580:
			case 581:
			case 582:
			case 583:
			case 584:
			case 586:
			case 587:
			case 588:
			case 589:
			case 590:
			case 591:
			case 592:
			case 593:
			case 594:
			case 595:
			case 596:
			case 597:
			case 598:
			case 599:
			case 600:
			case 602:
			case 603:
			case 604:
			case 605:
			case 606:
			case 607:
			case 608:
			case 609:
			case 610:
			case 611:
			case 612:
			case 613:
			case 614:
			case 615:
			case 616:
			case 617:
			case 618:
			case 619:
			case 620:
			case 621:
			case 622:
			case 623:
			case 624:
			case 625:
			case 626:
			case 627:
			case 628:
			case 629:
			case 630:
			case 632:
			case 633:
			case 634:
			case 635:
			case 636:
			case 637:
			case 638:
			case 639:
			case 640:
			case 641:
			case 642:
			case 643:
			case 644:
			case 645:
			case 646:
			case 647:
			case 648:
			case 649:
			case 650:
			case 651:
			case 653:
			case 654:
			case 655:
			case 656:
			case 657:
			case 658:
			case 659:
			case 660:
			case 661:
			case 662:
			case 663:
			case 664:
			case 665:
			case 666:
			case 667:
			case 668:
			case 670:
			case 671:
			case 672:
			case 673:
			case 674:
			case 675:
			case 676:
			case 677:
			case 678:
			case 679:
			case 680:
			case 681:
			case 682:
			case 683:
			case 684:
			case 685:
			case 686:
			case 687:
			case 689:
			case 690:
			case 692:
			case 693:
			case 694:
			case 696:
			case 697:
			case 698:
			case 699:
			case 700:
			case 701:
			case 702:
			case 703:
			case 704:
			case 705:
			case 706:
			case 707:
			case 708:
			case 709:
			case 710:
			case 711:
			case 712:
			case 713:
			case 714:
			case 715:
			case 716:
			case 717:
			case 718:
			case 719:
			case 720:
			case 721:
			case 722:
			case 723:
			case 724:
			case 725:
			case 726:
			case 727:
			case 728:
			case 729:
			case 730:
			case 731:
			case 732:
			case 733:
			case 734:
			case 735:
			case 736:
			case 737:
			case 738:
			case 739:
			case 740:
			case 741:
			case 742:
			case 743:
			case 744:
			case 745:
			case 746:
			case 747:
			case 748:
			case 749:
			case 750:
			case 751:
			case 752:
			case 753:
			case 754:
			case 755:
			case 756:
			case 758:
			case 759:
			case 760:
			case 761:
			case 762:
			case 763:
			case 764:
			case 765:
			case 766:
			case 767:
			case 768:
			case 769:
			case 770:
			case 771:
			case 772:
			case 773:
			case 774:
			case 775:
			case 777:
			case 778:
			case 779:
			case 780:
			case 781:
			case 782:
			case 783:
			case 784:
			case 785:
			case 786:
			case 787:
			case 788:
			case 789:
			case 790:
			case 791:
			case 792:
			case 793:
			case 794:
			case 795:
			case 796:
			case 797:
			case 798:
			case 799:
			case 800:
			case 801:
			case 802:
			case 803:
			case 804:
			case 805:
			case 806:
			case 807:
			case 808:
			case 809:
			case 810:
			case 811:
			case 812:
			case 813:
			case 814:
			case 815:
			case 816:
			case 817:
			case 818:
			case 819:
			case 820:
			case 821:
			case 822:
			case 823:
			case 824:
			case 825:
			case 826:
			case 827:
			case 828:
			case 829:
			case 830:
			case 831:
			case 832:
			case 833:
			case 834:
			case 835:
			case 836:
			case 837:
			case 838:
			case 839:
			case 840:
			case 841:
			case 843:
			case 844:
			case 845:
			case 846:
			case 847:
			case 848:
			case 849:
			case 850:
			case 851:
			case 852:
			case 853:
			case 854:
			case 855:
			case 856:
			case 857:
			case 858:
			case 859:
			case 861:
			case 862:
			case 863:
			case 864:
			case 865:
			case 866:
			case 867:
			case 868:
			case 869:
			case 870:
			case 871:
			case 872:
			case 873:
			case 874:
			case 875:
			case 876:
			case 877:
			case 878:
			case 879:
			case 880:
			case 881:
			case 882:
			case 883:
			case 884:
			case 885:
			case 886:
			case 888:
			case 889:
			case 890:
			case 891:
			case 892:
			case 893:
			case 894:
			case 895:
			case 896:
			case 897:
			case 898:
			case 899:
			case 900:
			case 901:
			case 902:
			case 903:
			case 904:
			case 905:
			case 906:
			case 907:
			case 908:
			case 909:
			case 910:
			case 911:
			case 912:
			case 913:
			case 914:
			case 915:
			case 916:
			case 917:
			case 918:
			case 919:
			case 920:
			case 921:
			case 922:
			case 923:
			case 924:
			case 925:
			case 926:
			case 927:
			case 928:
			case 929:
			case 930:
			case 931:
			case 932:
			case 933:
			case 934:
			case 935:
			case 936:
			case 937:
			case 938:
			case 939:
			case 940:
			case 941:
			case 942:
			case 943:
			case 944:
			case 945:
			case 946:
			case 947:
			case 948:
			case 949:
			case 950:
			case 951:
			case 952:
			case 954:
			case 955:
			case 956:
			case 957:
			case 958:
			case 959:
			case 960:
			case 961:
			case 962:
			case 963:
			case 964:
			case 965:
			case 966:
			case 967:
			case 968:
			case 969:
			case 970:
			case 971:
			case 972:
			case 973:
			case 974:
			case 975:
			case 976:
			case 977:
			case 978:
			case 979:
			case 980:
			case 981:
			case 982:
			case 983:
			case 984:
			case 985:
			case 986:
			case 987:
			case 988:
			case 989:
			case 990:
			case 991:
			case 992:
			case 993:
			case 994:
			case 995:
			case 996:
			case 997:
			case 998:
			case 999:
			case 1000:
			case 1001:
			case 1002:
			case 1003:
			case 1004:
			case 1005:
			case 1006:
			case 1007:
			case 1008:
			case 1009:
			case 1010:
			case 1011:
			case 1012:
			case 1013:
			case 1014:
			case 1015:
			case 1016:
			case 1017:
			case 1018:
			case 1019:
			case 1020:
			case 1021:
			case 1022:
			case 1023:
			case 1024:
			case 1025:
			case 1026:
			case 1027:
			case 1028:
			case 1029:
			case 1030:
			case 1031:
			case 1032:
			case 1033:
			case 1034:
			case 1035:
			case 1036:
			case 1037:
			case 1038:
			case 1039:
			case 1040:
			case 1041:
			case 1042:
			case 1043:
			case 1044:
			case 1045:
			case 1046:
			case 1047:
			case 1048:
			case 1049:
			case 1050:
			case 1051:
			case 1052:
			case 1053:
			case 1054:
			case 1055:
			case 1056:
			case 1057:
			case 1058:
			case 1059:
			case 1060:
			case 1061:
			case 1062:
			case 1063:
			case 1064:
			case 1065:
			case 1066:
			case 1067:
			case 1068:
			case 1069:
			case 1070:
			case 1071:
			case 1072:
			case 1074:
			case 1075:
			case 1076:
			case 1077:
			case 1078:
			case 1079:
			case 1080:
			case 1081:
			case 1082:
			case 1083:
			case 1084:
			case 1085:
			case 1086:
			case 1087:
			case 1089:
			case 1090:
			case 1091:
			case 1092:
			case 1093:
			case 1094:
			case 1095:
			case 1096:
			case 1098:
			case 1099:
			case 1100:
			case 1101:
			case 1102:
			case 1103:
			case 1104:
			case 1105:
			case 1106:
			case 1107:
			case 1108:
			case 1109:
			case 1110:
			case 1111:
			case 1112:
			case 1113:
			case 1114:
			case 1116:
			case 1117:
			case 1118:
			case 1119:
			case 1120:
			case 1121:
			case 1122:
			case 1123:
			case 1124:
			case 1125:
			case 1127:
			case 1129:
			case 1130:
			case 1131:
			case 1132:
			case 1133:
			case 1134:
			case 1135:
			case 1136:
			case 1137:
			case 1138:
			case 1139:
			case 1140:
			case 1142:
			case 1143:
			case 1144:
			case 1145:
			case 1146:
			case 1147:
			case 1148:
			case 1149:
			case 1150:
			case 1151:
			case 1152:
			case 1153:
			case 1154:
			case 1155:
			case 1156:
			case 1157:
			case 1158:
			case 1159:
			case 1160:
			case 1161:
			case 1162:
			case 1163:
			case 1164:
			case 1165:
			case 1166:
			case 1167:
			case 1169:
			case 1170:
			case 1171:
			case 1173:
			case 1174:
			case 1175:
			case 1176:
			case 1177:
			case 1178:
			case 1179:
			case 1180:
			case 1181:
			case 1182:
			case 1183:
			case 1184:
			case 1185:
			case 1186:
			case 1187:
			case 1188:
			case 1189:
			case 1190:
			case 1191:
			case 1192:
			case 1193:
			case 1194:
			case 1195:
			case 1197:
			case 1198:
			case 1199:
			case 1200:
			case 1201:
			case 1202:
			case 1203:
			case 1204:
			case 1205:
			case 1206:
			case 1207:
			case 1208:
			case 1209:
			case 1210:
			case 1211:
			case 1212:
			case 1213:
			case 1214:
			case 1215:
			case 1216:
			case 1217:
			case 1218:
			case 1219:
			case 1220:
			case 1221:
			case 1222:
			case 1223:
			case 1224:
			case 1225:
			case 1226:
			case 1228:
			case 1229:
			case 1230:
			case 1231:
			case 1232:
			case 1236:
			case 1237:
			case 1241:
			case 1242:
			case 1243:
			case 1244:
			case 1245:
			case 1246:
			case 1247:
			case 1248:
			case 1249:
			case 1250:
			case 1252:
			case 1253:
			case 1254:
			case 1255:
			case 1256:
			case 1257:
			case 1258:
			case 1259:
			case 1260:
			case 1261:
			case 1262:
			case 1263:
			case 1264:
			case 1265:
			case 1266:
			case 1267:
			case 1268:
			case 1269:
			case 1270:
			case 1271:
			case 1272:
			case 1273:
			case 1274:
			case 1275:
			case 1276:
			case 1277:
			case 1278:
			case 1279:
			case 1280:
			case 1281:
			case 1282:
			case 1283:
			case 1284:
			case 1285:
			case 1286:
			case 1287:
			case 1288:
			case 1289:
			case 1290:
			case 1291:
			case 1292:
			case 1293:
			case 1294:
			case 1295:
			case 1296:
			case 1297:
			case 1298:
			case 1299:
			case 1300:
			case 1301:
			case 1302:
			case 1303:
			case 1304:
			case 1305:
			case 1306:
			case 1308:
			case 1309:
			case 1310:
			case 1311:
			case 1312:
			case 1313:
			case 1314:
			case 1315:
			case 1316:
			case 1317:
			case 1318:
			case 1319:
			case 1320:
			case 1321:
			case 1322:
			case 1323:
			case 1325:
			case 1326:
			case 1327:
			case 1328:
			case 1329:
			case 1330:
			case 1331:
			case 1332:
			case 1333:
			case 1334:
			case 1335:
			case 1336:
			case 1337:
			case 1338:
			case 1339:
			case 1340:
			case 1341:
			case 1342:
			case 1343:
			case 1344:
			case 1345:
			case 1346:
			case 1347:
			case 1348:
			case 1349:
			case 1350:
			case 1351:
			case 1352:
			case 1353:
			case 1354:
			case 1355:
			case 1356:
			case 1357:
			case 1358:
			case 1359:
			case 1360:
			case 1361:
			case 1362:
			case 1363:
			case 1364:
			case 1365:
			case 1366:
			case 1367:
			case 1368:
			case 1369:
			case 1370:
			case 1371:
			case 1372:
			case 1373:
			case 1374:
			case 1375:
			case 1376:
			case 1377:
			case 1378:
			case 1379:
			case 1380:
			case 1381:
			case 1382:
			case 1383:
			case 1384:
			case 1385:
			case 1386:
			case 1387:
			case 1388:
			case 1389:
			case 1390:
			case 1391:
			case 1392:
			case 1393:
			case 1394:
			case 1395:
			case 1396:
			case 1397:
			case 1399:
			case 1400:
			case 1401:
			case 1402:
			case 1403:
			case 1404:
			case 1405:
			case 1406:
			case 1407:
			case 1408:
			case 1409:
			case 1410:
			case 1411:
			case 1412:
			case 1413:
			case 1414:
			case 1416:
			case 1417:
			case 1418:
			case 1419:
			case 1420:
			case 1421:
			case 1422:
			case 1423:
			case 1424:
			case 1425:
			case 1426:
			case 1427:
			case 1428:
			case 1429:
			case 1430:
			case 1431:
			case 1432:
			case 1433:
			case 1435:
			case 1436:
			case 1437:
			case 1438:
			case 1439:
			case 1440:
			case 1441:
			case 1442:
			case 1443:
			case 1444:
			case 1445:
			case 1446:
			case 1447:
			case 1448:
			case 1449:
			case 1450:
			case 1451:
			case 1452:
			case 1453:
			case 1454:
			case 1455:
			case 1456:
			case 1457:
			case 1458:
			case 1459:
			case 1460:
			case 1461:
			case 1462:
			case 1463:
			case 1464:
			case 1465:
			case 1466:
			case 1467:
			case 1468:
			case 1469:
			case 1470:
			case 1471:
			case 1472:
			case 1473:
			case 1474:
			case 1475:
			case 1476:
			case 1477:
			case 1478:
			case 1479:
			case 1480:
			case 1481:
			case 1482:
			case 1483:
			case 1484:
			case 1485:
			case 1486:
			case 1487:
			case 1488:
			case 1489:
			case 1491:
			case 1492:
			case 1493:
			case 1494:
			case 1495:
			case 1496:
			case 1497:
			case 1499:
			case 1500:
			case 1501:
			case 1502:
			case 1503:
			case 1504:
			case 1505:
			case 1506:
			case 1507:
			case 1508:
			case 1509:
			case 1510:
			case 1511:
			case 1512:
			case 1513:
			case 1514:
			case 1515:
			case 1516:
			case 1518:
			case 1519:
			case 1520:
			case 1521:
			case 1522:
			case 1523:
			case 1524:
			case 1525:
			case 1526:
			case 1527:
			case 1528:
			case 1529:
			case 1530:
			case 1531:
			case 1532:
			case 1533:
			case 1534:
			case 1536:
			case 1537:
			case 1538:
			case 1539:
			case 1540:
			case 1541:
			case 1542:
			case 1543:
			case 1544:
			case 1545:
			case 1546:
			case 1547:
			case 1548:
			case 1549:
			case 1550:
			case 1551:
			case 1552:
			case 1553:
			case 1554:
			case 1555:
			case 1556:
			case 1557:
			case 1558:
			case 1559:
			case 1560:
			case 1561:
			case 1562:
			case 1563:
			case 1564:
			case 1565:
			case 1566:
			case 1567:
			case 1568:
			case 1570:
			case 1571:
			case 1572:
			case 1573:
			case 1574:
			case 1575:
			case 1576:
			case 1577:
			case 1578:
			case 1579:
			case 1580:
			case 1581:
			case 1582:
			case 1583:
			case 1584:
			case 1585:
			case 1586:
			case 1587:
			case 1588:
			case 1589:
			case 1590:
			case 1591:
			case 1592:
			case 1593:
			case 1594:
			case 1595:
			case 1596:
			case 1597:
			case 1598:
			case 1599:
			case 1600:
			case 1601:
			case 1602:
			case 1603:
			case 1604:
			case 1605:
			case 1606:
			case 1607:
			case 1608:
			case 1609:
			case 1610:
			case 1611:
			case 1612:
			case 1613:
			case 1614:
			case 1615:
			case 1616:
			case 1617:
			case 1618:
			case 1619:
			case 1620:
			case 1621:
			case 1622:
			case 1623:
			case 1624:
			case 1625:
			case 1626:
			case 1628:
			case 1629:
			case 1630:
			case 1631:
			case 1632:
			case 1633:
			case 1634:
			case 1635:
			case 1636:
			case 1637:
			case 1638:
			case 1639:
			case 1640:
			case 1641:
			case 1642:
			case 1643:
			case 1644:
			case 1645:
			case 1646:
			case 1647:
			case 1648:
			case 1649:
			case 1650:
			case 1651:
			case 1652:
			case 1653:
			case 1654:
			case 1655:
			case 1656:
			case 1657:
			case 1658:
			case 1659:
			case 1660:
			case 1661:
			case 1662:
			case 1663:
			case 1664:
			case 1665:
			case 1666:
			case 1667:
			case 1668:
			case 1669:
			case 1670:
			case 1671:
			case 1672:
			case 1673:
			case 1674:
			case 1675:
			case 1676:
			case 1677:
			case 1678:
			case 1679:
			case 1680:
			case 1681:
			case 1682:
			case 1683:
			case 1684:
			case 1685:
			case 1686:
			case 1687:
			case 1688:
			case 1689:
			case 1690:
			case 1691:
			case 1692:
			case 1693:
			case 1694:
			case 1695:
			case 1696:
			case 1697:
			case 1698:
			case 1699:
			case 1700:
			case 1701:
			case 1702:
			case 1703:
			case 1704:
			case 1705:
			case 1706:
			case 1707:
			case 1708:
			case 1709:
			case 1710:
			case 1711:
			case 1712:
			case 1713:
			case 1714:
			case 1715:
			case 1716:
			case 1717:
			case 1718:
			case 1719:
			case 1720:
			case 1721:
			case 1722:
			case 1723:
			case 1724:
			case 1725:
			case 1726:
			case 1727:
			case 1728:
			case 1729:
			case 1730:
			case 1731:
			case 1732:
			case 1733:
			case 1734:
			case 1735:
			case 1736:
			case 1737:
			case 1738:
			case 1739:
			case 1740:
			case 1741:
			case 1742:
			case 1743:
			case 1744:
			case 1745:
			case 1746:
			case 1747:
			case 1748:
			case 1749:
			case 1750:
			case 1751:
			case 1752:
			case 1753:
			case 1754:
			case 1755:
			case 1756:
			case 1757:
			case 1758:
			case 1759:
			case 1760:
			case 1761:
			case 1762:
			case 1763:
			case 1764:
			case 1765:
			case 1766:
			case 1767:
			case 1768:
			case 1769:
			case 1770:
			case 1771:
			case 1772:
			case 1773:
			case 1774:
			case 1775:
			case 1776:
			case 1777:
			case 1778:
			case 1779:
			case 1780:
			case 1781:
			case 1782:
			case 1783:
			case 1784:
			case 1785:
			case 1786:
			case 1787:
			case 1788:
			case 1789:
			case 1790:
			case 1791:
			case 1792:
			case 1793:
			case 1794:
			case 1795:
			case 1796:
			case 1797:
			case 1798:
			case 1799:
			case 1800:
			case 1801:
			case 1802:
			case 1803:
			case 1804:
			case 1805:
			case 1806:
			case 1807:
			case 1808:
			case 1809:
			case 1810:
			case 1811:
			case 1812:
			case 1813:
			case 1814:
			case 1815:
			case 1816:
			case 1817:
			case 1818:
			case 1819:
			case 1820:
			case 1821:
			case 1822:
			case 1823:
			case 1824:
			case 1825:
			case 1826:
			case 1827:
			case 1828:
			case 1829:
			case 1830:
			case 1831:
			case 1832:
			case 1833:
			case 1834:
			case 1835:
			case 1836:
			case 1837:
			case 1838:
			case 1839:
			case 1840:
			case 1841:
			case 1842:
			case 1843:
			case 1844:
			case 1845:
			case 1846:
			case 1847:
			case 1848:
			case 1849:
			case 1850:
			case 1851:
			case 1852:
			case 1853:
			case 1854:
			case 1855:
			case 1856:
			case 1857:
			case 1858:
			case 1859:
			case 1860:
			case 1861:
			case 1862:
			case 1863:
			case 1864:
			case 1865:
			case 1866:
			case 1867:
			case 1868:
			case 1869:
			case 1870:
			case 1871:
			case 1872:
			case 1873:
			case 1874:
			case 1875:
			case 1876:
			case 1877:
			case 1878:
			case 1879:
			case 1880:
			case 1881:
			case 1882:
			case 1883:
			case 1884:
			case 1885:
			case 1886:
			case 1887:
			case 1888:
			case 1889:
			case 1890:
			case 1891:
			case 1892:
			case 1893:
			case 1894:
			case 1895:
			case 1896:
			case 1897:
			case 1898:
			case 1899:
			case 1900:
			case 1901:
			case 1902:
			case 1903:
			case 1904:
			case 1905:
			case 1906:
			case 1907:
			case 1908:
			case 1909:
			case 1910:
			case 1911:
			case 1912:
			case 1913:
			case 1914:
			case 1915:
			case 1916:
			case 1917:
			case 1918:
			case 1919:
			case 1920:
			case 1921:
			case 1922:
			case 1923:
			case 1924:
			case 1925:
			case 1926:
			case 1927:
			case 1928:
			case 1929:
			case 1930:
			case 1931:
			case 1932:
			case 1933:
			case 1934:
			case 1935:
			case 1936:
			case 1937:
			case 1939:
			case 1940:
			case 1941:
			case 1942:
			case 1943:
			case 1944:
			case 1945:
			case 1946:
			case 1947:
			case 1948:
			case 1949:
			case 1950:
			case 1951:
			case 1952:
			case 1953:
			case 1954:
			case 1955:
			case 1956:
			case 1957:
			case 1958:
			case 1959:
			case 1960:
			case 1961:
			case 1962:
			case 1963:
			case 1965:
			case 1966:
			case 1967:
			case 1968:
			case 1969:
			case 1970:
			case 1971:
			case 1972:
			case 1973:
			case 1974:
			case 1975:
			case 1976:
			case 1977:
			case 1978:
			case 1979:
			case 1980:
			case 1981:
			case 1982:
			case 1983:
			case 1984:
			case 1985:
			case 1986:
			case 1987:
			case 1988:
			case 1989:
			case 1990:
			case 1991:
			case 1992:
			case 1993:
			case 1994:
			case 1995:
			case 1996:
			case 1997:
			case 1998:
			case 1999:
			case 2000:
			case 2003:
			case 2004:
			case 2005:
			case 2006:
			case 2007:
			case 2008:
			case 2009:
			case 2010:
			case 2011:
			case 2012:
			case 2013:
			case 2014:
			case 2015:
			case 2016:
			case 2017:
			case 2018:
			case 2019:
			case 2020:
			case 2021:
			case 2022:
			case 2023:
			case 2024:
			case 2026:
			case 2027:
			case 2028:
			case 2029:
			case 2030:
			case 2031:
			case 2032:
			case 2033:
			case 2034:
			case 2035:
			case 2036:
			case 2037:
			case 2038:
			case 2039:
			case 2040:
			case 2041:
			case 2042:
			case 2043:
			case 2044:
			case 2045:
			case 2046:
			case 2047:
			case 2048:
			case 2049:
			case 2050:
			case 2051:
			case 2052:
			case 2053:
			case 2054:
			case 2055:
			case 2056:
			case 2057:
			case 2058:
			case 2059:
			case 2060:
			case 2061:
			case 2062:
			case 2063:
			case 2064:
			case 2065:
			case 2066:
			case 2067:
			case 2068:
			case 2069:
			case 2070:
			case 2071:
			case 2072:
			case 2074:
			case 2075:
			case 2076:
			case 2077:
			case 2078:
			case 2079:
			case 2080:
			case 2081:
			case 2082:
			case 2083:
			case 2084:
			case 2085:
			case 2086:
			case 2087:
			case 2088:
			case 2089:
			case 2090:
			case 2091:
			case 2092:
			case 2093:
			case 2094:
			case 2095:
			case 2096:
			case 2097:
			case 2098:
			case 2100:
			case 2101:
			case 2102:
			case 2103:
			case 2104:
			case 2105:
			case 2106:
			case 2107:
			case 2108:
			case 2109:
			case 2110:
			case 2111:
			case 2112:
			case 2113:
			case 2115:
			case 2116:
			case 2117:
			case 2118:
			case 2119:
			case 2120:
			case 2122:
			case 2123:
			case 2124:
			case 2125:
			case 2126:
			case 2128:
			case 2129:
			case 2130:
			case 2131:
			case 2132:
			case 2133:
			case 2134:
			case 2135:
			case 2136:
			case 2137:
			case 2138:
			case 2139:
			case 2140:
			case 2141:
			case 2142:
			case 2143:
			case 2145:
			case 2146:
			case 2147:
			case 2148:
			case 2149:
			case 2150:
			case 2151:
			case 2152:
			case 2153:
			case 2154:
			case 2155:
			case 2156:
			case 2157:
			case 2158:
			case 2159:
			case 2160:
			case 2161:
			case 2162:
			case 2163:
			case 2164:
			case 2165:
			case 2166:
			case 2168:
			case 2169:
			case 2170:
			case 2171:
			case 2172:
			case 2173:
			case 2174:
			case 2175:
			case 2176:
			case 2177:
			case 2178:
			case 2179:
			case 2180:
			case 2181:
			case 2182:
			case 2183:
			case 2184:
			case 2185:
			case 2186:
			case 2187:
			case 2188:
			case 2189:
			case 2191:
			case 2192:
			case 2193:
			case 2194:
			case 2195:
			case 2196:
			case 2197:
			case 2198:
			case 2199:
			case 2200:
			case 2201:
			case 2202:
			case 2203:
			case 2204:
			case 2205:
			case 2206:
			case 2207:
			case 2208:
			case 2209:
			case 2210:
			case 2211:
			case 2216:
			case 2252:
				{
				this.state = 4646;
				this.tablespace_group_name();
				}
				break;
			case 2219:
				{
				this.state = 4647;
				this.match(PlSqlParser.CHAR_STRING);
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public tablespace_group_name(): Tablespace_group_nameContext {
		let localctx: Tablespace_group_nameContext = new Tablespace_group_nameContext(this, this._ctx, this.state);
		this.enterRule(localctx, 434, PlSqlParser.RULE_tablespace_group_name);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 4650;
			this.regular_id();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public tablespace_state_clauses(): Tablespace_state_clausesContext {
		let localctx: Tablespace_state_clausesContext = new Tablespace_state_clausesContext(this, this._ctx, this.state);
		this.enterRule(localctx, 436, PlSqlParser.RULE_tablespace_state_clauses);
		let _la: number;
		try {
			this.state = 4661;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 1125:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 4652;
				this.match(PlSqlParser.ONLINE);
				}
				break;
			case 1112:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 4653;
				this.match(PlSqlParser.OFFLINE);
				this.state = 4655;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===613 || _la===1050 || _la===1920) {
					{
					this.state = 4654;
					_la = this._input.LA(1);
					if(!(_la===613 || _la===1050 || _la===1920)) {
					this._errHandler.recoverInline(this);
					}
					else {
						this._errHandler.reportMatch(this);
					    this.consume();
					}
					}
				}

				}
				break;
			case 1353:
				this.enterOuterAlt(localctx, 3);
				{
				this.state = 4657;
				this.match(PlSqlParser.READ);
				this.state = 4658;
				_la = this._input.LA(1);
				if(!(_la===1127 || _la===2125)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				}
				break;
			case 1243:
				this.enterOuterAlt(localctx, 4);
				{
				this.state = 4659;
				this.match(PlSqlParser.PERMANENT);
				}
				break;
			case 1920:
				this.enterOuterAlt(localctx, 5);
				{
				this.state = 4660;
				this.match(PlSqlParser.TEMPORARY);
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public flashback_mode_clause(): Flashback_mode_clauseContext {
		let localctx: Flashback_mode_clauseContext = new Flashback_mode_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 438, PlSqlParser.RULE_flashback_mode_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 4663;
			this.match(PlSqlParser.FLASHBACK);
			this.state = 4664;
			_la = this._input.LA(1);
			if(!(_la===1113 || _la===1128)) {
			this._errHandler.recoverInline(this);
			}
			else {
				this._errHandler.reportMatch(this);
			    this.consume();
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public new_tablespace_name(): New_tablespace_nameContext {
		let localctx: New_tablespace_nameContext = new New_tablespace_nameContext(this, this._ctx, this.state);
		this.enterRule(localctx, 440, PlSqlParser.RULE_new_tablespace_name);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 4666;
			this.tablespace();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public create_tablespace(): Create_tablespaceContext {
		let localctx: Create_tablespaceContext = new Create_tablespaceContext(this, this._ctx, this.state);
		this.enterRule(localctx, 442, PlSqlParser.RULE_create_tablespace);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 4668;
			this.match(PlSqlParser.CREATE);
			this.state = 4670;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===110 || _la===1540) {
				{
				this.state = 4669;
				_la = this._input.LA(1);
				if(!(_la===110 || _la===1540)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				}
			}

			this.state = 4675;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 1909:
				{
				this.state = 4672;
				this.permanent_tablespace_clause();
				}
				break;
			case 1920:
				{
				this.state = 4673;
				this.temporary_tablespace_clause();
				}
				break;
			case 1998:
				{
				this.state = 4674;
				this.undo_tablespace_clause();
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
			this.state = 4677;
			this.match(PlSqlParser.SEMICOLON);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public permanent_tablespace_clause(): Permanent_tablespace_clauseContext {
		let localctx: Permanent_tablespace_clauseContext = new Permanent_tablespace_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 444, PlSqlParser.RULE_permanent_tablespace_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 4679;
			this.match(PlSqlParser.TABLESPACE);
			this.state = 4680;
			this.id_expression();
			this.state = 4682;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===318) {
				{
				this.state = 4681;
				this.datafile_specification();
				}
			}

			this.state = 4701;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			while (_la===132 || _la===351 || _la===444 || _la===491 || _la===521 || _la===532 || _la===542 || _la===779 || _la===840 || _la===993 || _la===1112 || _la===1125 || _la===1488) {
				{
				this.state = 4699;
				this._errHandler.sync(this);
				switch (this._input.LA(1)) {
				case 840:
					{
					this.state = 4684;
					this.match(PlSqlParser.MINIMUM);
					this.state = 4685;
					this.match(PlSqlParser.EXTENT);
					this.state = 4686;
					this.size_clause();
					}
					break;
				case 132:
					{
					this.state = 4687;
					this.match(PlSqlParser.BLOCKSIZE);
					this.state = 4688;
					this.size_clause();
					}
					break;
				case 521:
				case 779:
				case 993:
					{
					this.state = 4689;
					this.logging_clause();
					}
					break;
				case 542:
					{
					this.state = 4690;
					this.match(PlSqlParser.FORCE);
					this.state = 4691;
					this.match(PlSqlParser.LOGGING);
					}
					break;
				case 1112:
				case 1125:
					{
					this.state = 4692;
					_la = this._input.LA(1);
					if(!(_la===1112 || _la===1125)) {
					this._errHandler.recoverInline(this);
					}
					else {
						this._errHandler.reportMatch(this);
					    this.consume();
					}
					}
					break;
				case 444:
					{
					this.state = 4693;
					this.match(PlSqlParser.ENCRYPTION);
					this.state = 4694;
					this.tablespace_encryption_spec();
					}
					break;
				case 351:
					{
					this.state = 4695;
					this.match(PlSqlParser.DEFAULT);
					}
					break;
				case 491:
					{
					this.state = 4696;
					this.extent_management_clause();
					}
					break;
				case 1488:
					{
					this.state = 4697;
					this.segment_management_clause();
					}
					break;
				case 532:
					{
					this.state = 4698;
					this.flashback_mode_clause();
					}
					break;
				default:
					throw new NoViableAltException(this);
				}
				}
				this.state = 4703;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public tablespace_encryption_spec(): Tablespace_encryption_specContext {
		let localctx: Tablespace_encryption_specContext = new Tablespace_encryption_specContext(this, this._ctx, this.state);
		this.enterRule(localctx, 446, PlSqlParser.RULE_tablespace_encryption_spec);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 4704;
			this.match(PlSqlParser.USING);
			this.state = 4705;
			localctx._encrypt_algorithm = this.match(PlSqlParser.CHAR_STRING);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public logging_clause(): Logging_clauseContext {
		let localctx: Logging_clauseContext = new Logging_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 448, PlSqlParser.RULE_logging_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 4707;
			_la = this._input.LA(1);
			if(!(_la===521 || _la===779 || _la===993)) {
			this._errHandler.recoverInline(this);
			}
			else {
				this._errHandler.reportMatch(this);
			    this.consume();
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public extent_management_clause(): Extent_management_clauseContext {
		let localctx: Extent_management_clauseContext = new Extent_management_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 450, PlSqlParser.RULE_extent_management_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 4709;
			this.match(PlSqlParser.EXTENT);
			this.state = 4710;
			this.match(PlSqlParser.MANAGEMENT);
			this.state = 4711;
			this.match(PlSqlParser.LOCAL);
			this.state = 4718;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 82:
				{
				this.state = 4712;
				this.match(PlSqlParser.AUTOALLOCATE);
				}
				break;
			case 2000:
				{
				this.state = 4713;
				this.match(PlSqlParser.UNIFORM);
				this.state = 4716;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===1535) {
					{
					this.state = 4714;
					this.match(PlSqlParser.SIZE);
					this.state = 4715;
					this.size_clause();
					}
				}

				}
				break;
			case 132:
			case 351:
			case 444:
			case 491:
			case 521:
			case 532:
			case 542:
			case 779:
			case 840:
			case 993:
			case 1112:
			case 1125:
			case 1428:
			case 1488:
			case 2241:
				break;
			default:
				break;
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public segment_management_clause(): Segment_management_clauseContext {
		let localctx: Segment_management_clauseContext = new Segment_management_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 452, PlSqlParser.RULE_segment_management_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 4720;
			this.match(PlSqlParser.SEGMENT);
			this.state = 4721;
			this.match(PlSqlParser.SPACE_KEYWORD);
			this.state = 4722;
			this.match(PlSqlParser.MANAGEMENT);
			this.state = 4723;
			_la = this._input.LA(1);
			if(!(_la===83 || _la===800)) {
			this._errHandler.recoverInline(this);
			}
			else {
				this._errHandler.reportMatch(this);
			    this.consume();
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public temporary_tablespace_clause(): Temporary_tablespace_clauseContext {
		let localctx: Temporary_tablespace_clauseContext = new Temporary_tablespace_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 454, PlSqlParser.RULE_temporary_tablespace_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 4725;
			this.match(PlSqlParser.TEMPORARY);
			this.state = 4726;
			this.match(PlSqlParser.TABLESPACE);
			this.state = 4727;
			localctx._tablespace_name = this.id_expression();
			this.state = 4729;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1918) {
				{
				this.state = 4728;
				this.tempfile_specification();
				}
			}

			this.state = 4732;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1909) {
				{
				this.state = 4731;
				this.tablespace_group_clause();
				}
			}

			this.state = 4735;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===491) {
				{
				this.state = 4734;
				this.extent_management_clause();
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public undo_tablespace_clause(): Undo_tablespace_clauseContext {
		let localctx: Undo_tablespace_clauseContext = new Undo_tablespace_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 456, PlSqlParser.RULE_undo_tablespace_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 4737;
			this.match(PlSqlParser.UNDO);
			this.state = 4738;
			this.match(PlSqlParser.TABLESPACE);
			this.state = 4739;
			localctx._tablespace_name = this.id_expression();
			this.state = 4741;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===318) {
				{
				this.state = 4740;
				this.datafile_specification();
				}
			}

			this.state = 4744;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===491) {
				{
				this.state = 4743;
				this.extent_management_clause();
				}
			}

			this.state = 4747;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1428) {
				{
				this.state = 4746;
				this.tablespace_retention_clause();
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public tablespace_retention_clause(): Tablespace_retention_clauseContext {
		let localctx: Tablespace_retention_clauseContext = new Tablespace_retention_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 458, PlSqlParser.RULE_tablespace_retention_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 4749;
			this.match(PlSqlParser.RETENTION);
			this.state = 4750;
			_la = this._input.LA(1);
			if(!(_la===579 || _la===984)) {
			this._errHandler.recoverInline(this);
			}
			else {
				this._errHandler.reportMatch(this);
			    this.consume();
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public datafile_specification(): Datafile_specificationContext {
		let localctx: Datafile_specificationContext = new Datafile_specificationContext(this, this._ctx, this.state);
		this.enterRule(localctx, 460, PlSqlParser.RULE_datafile_specification);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 4752;
			this.match(PlSqlParser.DATAFILE);
			{
			this.state = 4754;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===2229) {
				{
				this.state = 4753;
				this.match(PlSqlParser.COMMA);
				}
			}

			this.state = 4756;
			this.datafile_tempfile_spec();
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public tempfile_specification(): Tempfile_specificationContext {
		let localctx: Tempfile_specificationContext = new Tempfile_specificationContext(this, this._ctx, this.state);
		this.enterRule(localctx, 462, PlSqlParser.RULE_tempfile_specification);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 4758;
			this.match(PlSqlParser.TEMPFILE);
			{
			this.state = 4760;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===2229) {
				{
				this.state = 4759;
				this.match(PlSqlParser.COMMA);
				}
			}

			this.state = 4762;
			this.datafile_tempfile_spec();
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public datafile_tempfile_spec(): Datafile_tempfile_specContext {
		let localctx: Datafile_tempfile_specContext = new Datafile_tempfile_specContext(this, this._ctx, this.state);
		this.enterRule(localctx, 464, PlSqlParser.RULE_datafile_tempfile_spec);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 4765;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===2219) {
				{
				this.state = 4764;
				this.match(PlSqlParser.CHAR_STRING);
				}
			}

			this.state = 4769;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1535) {
				{
				this.state = 4767;
				this.match(PlSqlParser.SIZE);
				this.state = 4768;
				this.size_clause();
				}
			}

			this.state = 4772;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1432) {
				{
				this.state = 4771;
				this.match(PlSqlParser.REUSE);
				}
			}

			this.state = 4775;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===85) {
				{
				this.state = 4774;
				this.autoextend_clause();
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public redo_log_file_spec(): Redo_log_file_specContext {
		let localctx: Redo_log_file_specContext = new Redo_log_file_specContext(this, this._ctx, this.state);
		this.enterRule(localctx, 466, PlSqlParser.RULE_redo_log_file_spec);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 4789;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 318:
				{
				this.state = 4777;
				this.match(PlSqlParser.DATAFILE);
				this.state = 4778;
				this.match(PlSqlParser.CHAR_STRING);
				}
				break;
			case 2223:
				{
				this.state = 4779;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 4784;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				do {
					{
					{
					this.state = 4781;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
					if (_la===2229) {
						{
						this.state = 4780;
						this.match(PlSqlParser.COMMA);
						}
					}

					this.state = 4783;
					this.match(PlSqlParser.CHAR_STRING);
					}
					}
					this.state = 4786;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				} while (_la===2219 || _la===2229);
				this.state = 4788;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
				break;
			case 132:
			case 573:
			case 1432:
			case 1535:
			case 1927:
			case 2229:
			case 2241:
				break;
			default:
				break;
			}
			this.state = 4793;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1535) {
				{
				this.state = 4791;
				this.match(PlSqlParser.SIZE);
				this.state = 4792;
				this.size_clause();
				}
			}

			this.state = 4797;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===132) {
				{
				this.state = 4795;
				this.match(PlSqlParser.BLOCKSIZE);
				this.state = 4796;
				this.size_clause();
				}
			}

			this.state = 4800;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1432) {
				{
				this.state = 4799;
				this.match(PlSqlParser.REUSE);
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public autoextend_clause(): Autoextend_clauseContext {
		let localctx: Autoextend_clauseContext = new Autoextend_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 468, PlSqlParser.RULE_autoextend_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 4802;
			this.match(PlSqlParser.AUTOEXTEND);
			this.state = 4812;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 1113:
				{
				this.state = 4803;
				this.match(PlSqlParser.OFF);
				}
				break;
			case 1128:
				{
				this.state = 4804;
				this.match(PlSqlParser.ON);
				this.state = 4807;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===906) {
					{
					this.state = 4805;
					this.match(PlSqlParser.NEXT);
					this.state = 4806;
					this.size_clause();
					}
				}

				this.state = 4810;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===820) {
					{
					this.state = 4809;
					this.maxsize_clause();
					}
				}

				}
				break;
			default:
				throw new NoViableAltException(this);
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public maxsize_clause(): Maxsize_clauseContext {
		let localctx: Maxsize_clauseContext = new Maxsize_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 470, PlSqlParser.RULE_maxsize_clause);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 4814;
			this.match(PlSqlParser.MAXSIZE);
			this.state = 4817;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 2004:
				{
				this.state = 4815;
				this.match(PlSqlParser.UNLIMITED);
				}
				break;
			case 2217:
				{
				this.state = 4816;
				this.size_clause();
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public build_clause(): Build_clauseContext {
		let localctx: Build_clauseContext = new Build_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 472, PlSqlParser.RULE_build_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 4819;
			this.match(PlSqlParser.BUILD);
			this.state = 4820;
			_la = this._input.LA(1);
			if(!(_la===354 || _la===613)) {
			this._errHandler.recoverInline(this);
			}
			else {
				this._errHandler.reportMatch(this);
			    this.consume();
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public parallel_clause(): Parallel_clauseContext {
		let localctx: Parallel_clauseContext = new Parallel_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 474, PlSqlParser.RULE_parallel_clause);
		try {
			this.state = 4827;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 1021:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 4822;
				this.match(PlSqlParser.NOPARALLEL);
				}
				break;
			case 1195:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 4823;
				this.match(PlSqlParser.PARALLEL);
				this.state = 4825;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 488, this._ctx) ) {
				case 1:
					{
					this.state = 4824;
					localctx._parallel_count = this.match(PlSqlParser.UNSIGNED_INTEGER);
					}
					break;
				}
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public alter_materialized_view(): Alter_materialized_viewContext {
		let localctx: Alter_materialized_viewContext = new Alter_materialized_viewContext(this, this._ctx, this.state);
		this.enterRule(localctx, 476, PlSqlParser.RULE_alter_materialized_view);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 4829;
			this.match(PlSqlParser.ALTER);
			this.state = 4830;
			this.match(PlSqlParser.MATERIALIZED);
			this.state = 4831;
			this.match(PlSqlParser.VIEW);
			this.state = 4832;
			this.tableview_name();
			this.state = 4858;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 492, this._ctx) ) {
			case 1:
				{
				this.state = 4833;
				this.physical_attributes_clause();
				}
				break;
			case 2:
				{
				this.state = 4834;
				this.modify_mv_column_clause();
				}
				break;
			case 3:
				{
				this.state = 4835;
				this.table_compression();
				}
				break;
			case 4:
				{
				this.state = 4836;
				this.lob_storage_clause();
				this.state = 4841;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===2229) {
					{
					{
					this.state = 4837;
					this.match(PlSqlParser.COMMA);
					this.state = 4838;
					this.lob_storage_clause();
					}
					}
					this.state = 4843;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				}
				break;
			case 5:
				{
				this.state = 4844;
				this.modify_lob_storage_clause();
				this.state = 4849;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===2229) {
					{
					{
					this.state = 4845;
					this.match(PlSqlParser.COMMA);
					this.state = 4846;
					this.modify_lob_storage_clause();
					}
					}
					this.state = 4851;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				}
				break;
			case 6:
				{
				this.state = 4852;
				this.parallel_clause();
				}
				break;
			case 7:
				{
				this.state = 4853;
				this.logging_clause();
				}
				break;
			case 8:
				{
				this.state = 4854;
				this.allocate_extent_clause();
				}
				break;
			case 9:
				{
				this.state = 4855;
				this.deallocate_unused_clause();
				}
				break;
			case 10:
				{
				this.state = 4856;
				this.shrink_clause();
				}
				break;
			case 11:
				{
				{
				this.state = 4857;
				this.cache_or_nocache();
				}
				}
				break;
			}
			this.state = 4861;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===18 || _la===205 || _la===232 || _la===802 || _la===953 || _la===994 || _la===1184 || _la===1229) {
				{
				this.state = 4860;
				this.alter_iot_clauses();
				}
			}

			this.state = 4866;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===2063) {
				{
				this.state = 4863;
				this.match(PlSqlParser.USING);
				this.state = 4864;
				this.match(PlSqlParser.INDEX);
				this.state = 4865;
				this.physical_attributes_clause();
				}
			}

			this.state = 4869;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1377) {
				{
				this.state = 4868;
				this.alter_mv_option1();
				}
			}

			this.state = 4878;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 383:
			case 439:
				{
				this.state = 4871;
				this.enable_or_disable();
				this.state = 4872;
				this.match(PlSqlParser.QUERY);
				this.state = 4873;
				this.match(PlSqlParser.REWRITE);
				}
				break;
			case 223:
				{
				this.state = 4875;
				this.match(PlSqlParser.COMPILE);
				}
				break;
			case 253:
				{
				this.state = 4876;
				this.match(PlSqlParser.CONSIDER);
				this.state = 4877;
				this.match(PlSqlParser.FRESH);
				}
				break;
			case 2241:
				break;
			default:
				break;
			}
			this.state = 4880;
			this.match(PlSqlParser.SEMICOLON);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public alter_mv_option1(): Alter_mv_option1Context {
		let localctx: Alter_mv_option1Context = new Alter_mv_option1Context(this, this._ctx, this.state);
		this.enterRule(localctx, 478, PlSqlParser.RULE_alter_mv_option1);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 4882;
			this.alter_mv_refresh();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public alter_mv_refresh(): Alter_mv_refreshContext {
		let localctx: Alter_mv_refreshContext = new Alter_mv_refreshContext(this, this._ctx, this.state);
		this.enterRule(localctx, 480, PlSqlParser.RULE_alter_mv_refresh);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 4884;
			this.match(PlSqlParser.REFRESH);
			this.state = 4911;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			do {
				{
				this.state = 4911;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 499, this._ctx) ) {
				case 1:
					{
					this.state = 4885;
					this.match(PlSqlParser.FAST);
					}
					break;
				case 2:
					{
					this.state = 4886;
					this.match(PlSqlParser.COMPLETE);
					}
					break;
				case 3:
					{
					this.state = 4887;
					this.match(PlSqlParser.FORCE);
					}
					break;
				case 4:
					{
					this.state = 4888;
					this.match(PlSqlParser.ON);
					this.state = 4889;
					_la = this._input.LA(1);
					if(!(_la===218 || _la===364)) {
					this._errHandler.recoverInline(this);
					}
					else {
						this._errHandler.reportMatch(this);
					    this.consume();
					}
					}
					break;
				case 5:
					{
					this.state = 4890;
					this.match(PlSqlParser.START);
					this.state = 4891;
					this.match(PlSqlParser.WITH);
					this.state = 4892;
					this.expression();
					}
					break;
				case 6:
					{
					this.state = 4893;
					this.match(PlSqlParser.NEXT);
					this.state = 4894;
					this.expression();
					}
					break;
				case 7:
					{
					this.state = 4895;
					this.match(PlSqlParser.WITH);
					this.state = 4896;
					this.match(PlSqlParser.PRIMARY);
					this.state = 4897;
					this.match(PlSqlParser.KEY);
					}
					break;
				case 8:
					{
					this.state = 4898;
					this.match(PlSqlParser.USING);
					this.state = 4900;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
					if (_la===351) {
						{
						this.state = 4899;
						this.match(PlSqlParser.DEFAULT);
						}
					}

					this.state = 4902;
					this.match(PlSqlParser.MASTER);
					this.state = 4903;
					this.match(PlSqlParser.ROLLBACK);
					this.state = 4904;
					this.match(PlSqlParser.SEGMENT);
					this.state = 4906;
					this._errHandler.sync(this);
					switch ( this._interp.adaptivePredict(this._input, 498, this._ctx) ) {
					case 1:
						{
						this.state = 4905;
						this.rollback_segment();
						}
						break;
					}
					}
					break;
				case 9:
					{
					this.state = 4908;
					this.match(PlSqlParser.USING);
					this.state = 4909;
					_la = this._input.LA(1);
					if(!(_la===447 || _la===1982)) {
					this._errHandler.recoverInline(this);
					}
					else {
						this._errHandler.reportMatch(this);
					    this.consume();
					}
					this.state = 4910;
					this.match(PlSqlParser.CONSTRAINTS);
					}
					break;
				}
				}
				this.state = 4913;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			} while (_la===224 || _la===511 || _la===542 || _la===906 || _la===1128 || _la===1569 || _la===2063 || _la===2121);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public rollback_segment(): Rollback_segmentContext {
		let localctx: Rollback_segmentContext = new Rollback_segmentContext(this, this._ctx, this.state);
		this.enterRule(localctx, 482, PlSqlParser.RULE_rollback_segment);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 4915;
			this.regular_id();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public modify_mv_column_clause(): Modify_mv_column_clauseContext {
		let localctx: Modify_mv_column_clauseContext = new Modify_mv_column_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 484, PlSqlParser.RULE_modify_mv_column_clause);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 4917;
			this.match(PlSqlParser.MODIFY);
			this.state = 4918;
			this.match(PlSqlParser.LEFT_PAREN);
			this.state = 4919;
			this.column_name();
			this.state = 4923;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 443:
				{
				this.state = 4920;
				this.match(PlSqlParser.ENCRYPT);
				this.state = 4921;
				this.encryption_spec();
				}
				break;
			case 349:
				{
				this.state = 4922;
				this.match(PlSqlParser.DECRYPT);
				}
				break;
			case 2224:
				break;
			default:
				break;
			}
			this.state = 4925;
			this.match(PlSqlParser.RIGHT_PAREN);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public alter_materialized_view_log(): Alter_materialized_view_logContext {
		let localctx: Alter_materialized_view_logContext = new Alter_materialized_view_logContext(this, this._ctx, this.state);
		this.enterRule(localctx, 486, PlSqlParser.RULE_alter_materialized_view_log);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 4927;
			this.match(PlSqlParser.ALTER);
			this.state = 4928;
			this.match(PlSqlParser.MATERIALIZED);
			this.state = 4929;
			this.match(PlSqlParser.VIEW);
			this.state = 4930;
			this.match(PlSqlParser.LOG);
			this.state = 4932;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===542) {
				{
				this.state = 4931;
				this.match(PlSqlParser.FORCE);
				}
			}

			this.state = 4934;
			this.match(PlSqlParser.ON);
			this.state = 4935;
			this.tableview_name();
			this.state = 4944;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 503, this._ctx) ) {
			case 1:
				{
				this.state = 4936;
				this.physical_attributes_clause();
				}
				break;
			case 2:
				{
				this.state = 4937;
				this.add_mv_log_column_clause();
				}
				break;
			case 3:
				{
				this.state = 4938;
				this.parallel_clause();
				}
				break;
			case 4:
				{
				this.state = 4939;
				this.logging_clause();
				}
				break;
			case 5:
				{
				this.state = 4940;
				this.allocate_extent_clause();
				}
				break;
			case 6:
				{
				this.state = 4941;
				this.shrink_clause();
				}
				break;
			case 7:
				{
				this.state = 4942;
				this.move_mv_log_clause();
				}
				break;
			case 8:
				{
				this.state = 4943;
				this.cache_or_nocache();
				}
				break;
			}
			this.state = 4947;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===18) {
				{
				this.state = 4946;
				this.mv_log_augmentation();
				}
			}

			this.state = 4950;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1326) {
				{
				this.state = 4949;
				this.mv_log_purge_clause();
				}
			}

			this.state = 4952;
			this.match(PlSqlParser.SEMICOLON);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public add_mv_log_column_clause(): Add_mv_log_column_clauseContext {
		let localctx: Add_mv_log_column_clauseContext = new Add_mv_log_column_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 488, PlSqlParser.RULE_add_mv_log_column_clause);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 4954;
			this.match(PlSqlParser.ADD);
			this.state = 4955;
			this.match(PlSqlParser.LEFT_PAREN);
			this.state = 4956;
			this.column_name();
			this.state = 4957;
			this.match(PlSqlParser.RIGHT_PAREN);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public move_mv_log_clause(): Move_mv_log_clauseContext {
		let localctx: Move_mv_log_clauseContext = new Move_mv_log_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 490, PlSqlParser.RULE_move_mv_log_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 4959;
			this.match(PlSqlParser.MOVE);
			this.state = 4960;
			this.segment_attributes_clause();
			this.state = 4962;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1021 || _la===1195) {
				{
				this.state = 4961;
				this.parallel_clause();
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public mv_log_augmentation(): Mv_log_augmentationContext {
		let localctx: Mv_log_augmentationContext = new Mv_log_augmentationContext(this, this._ctx, this.state);
		this.enterRule(localctx, 492, PlSqlParser.RULE_mv_log_augmentation);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 4964;
			this.match(PlSqlParser.ADD);
			this.state = 4997;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 1107:
			case 1304:
			case 1446:
			case 1496:
				{
				this.state = 4971;
				this._errHandler.sync(this);
				switch (this._input.LA(1)) {
				case 1107:
					{
					this.state = 4965;
					this.match(PlSqlParser.OBJECT);
					this.state = 4966;
					this.match(PlSqlParser.ID);
					}
					break;
				case 1304:
					{
					this.state = 4967;
					this.match(PlSqlParser.PRIMARY);
					this.state = 4968;
					this.match(PlSqlParser.KEY);
					}
					break;
				case 1446:
					{
					this.state = 4969;
					this.match(PlSqlParser.ROWID);
					}
					break;
				case 1496:
					{
					this.state = 4970;
					this.match(PlSqlParser.SEQUENCE);
					}
					break;
				default:
					throw new NoViableAltException(this);
				}
				this.state = 4984;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===2223) {
					{
					this.state = 4973;
					this.match(PlSqlParser.LEFT_PAREN);
					this.state = 4974;
					this.column_name();
					this.state = 4979;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
					while (_la===2229) {
						{
						{
						this.state = 4975;
						this.match(PlSqlParser.COMMA);
						this.state = 4976;
						this.column_name();
						}
						}
						this.state = 4981;
						this._errHandler.sync(this);
						_la = this._input.LA(1);
					}
					this.state = 4982;
					this.match(PlSqlParser.RIGHT_PAREN);
					}
				}

				}
				break;
			case 2223:
				{
				this.state = 4986;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 4987;
				this.column_name();
				this.state = 4992;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===2229) {
					{
					{
					this.state = 4988;
					this.match(PlSqlParser.COMMA);
					this.state = 4989;
					this.column_name();
					}
					}
					this.state = 4994;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				this.state = 4995;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
			this.state = 5000;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===473 || _la===619) {
				{
				this.state = 4999;
				this.new_values_clause();
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public datetime_expr(): Datetime_exprContext {
		let localctx: Datetime_exprContext = new Datetime_exprContext(this, this._ctx, this.state);
		this.enterRule(localctx, 494, PlSqlParser.RULE_datetime_expr);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 5002;
			this.expression();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public interval_expr(): Interval_exprContext {
		let localctx: Interval_exprContext = new Interval_exprContext(this, this._ctx, this.state);
		this.enterRule(localctx, 496, PlSqlParser.RULE_interval_expr);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 5004;
			this.expression();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public synchronous_or_asynchronous(): Synchronous_or_asynchronousContext {
		let localctx: Synchronous_or_asynchronousContext = new Synchronous_or_asynchronousContext(this, this._ctx, this.state);
		this.enterRule(localctx, 498, PlSqlParser.RULE_synchronous_or_asynchronous);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 5006;
			_la = this._input.LA(1);
			if(!(_la===71 || _la===1625)) {
			this._errHandler.recoverInline(this);
			}
			else {
				this._errHandler.reportMatch(this);
			    this.consume();
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public including_or_excluding(): Including_or_excludingContext {
		let localctx: Including_or_excludingContext = new Including_or_excludingContext(this, this._ctx, this.state);
		this.enterRule(localctx, 500, PlSqlParser.RULE_including_or_excluding);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 5008;
			_la = this._input.LA(1);
			if(!(_la===473 || _la===619)) {
			this._errHandler.recoverInline(this);
			}
			else {
				this._errHandler.reportMatch(this);
			    this.consume();
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public create_materialized_view_log(): Create_materialized_view_logContext {
		let localctx: Create_materialized_view_logContext = new Create_materialized_view_logContext(this, this._ctx, this.state);
		this.enterRule(localctx, 502, PlSqlParser.RULE_create_materialized_view_log);
		let _la: number;
		try {
			let _alt: number;
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 5010;
			this.match(PlSqlParser.CREATE);
			this.state = 5011;
			this.match(PlSqlParser.MATERIALIZED);
			this.state = 5012;
			this.match(PlSqlParser.VIEW);
			this.state = 5013;
			this.match(PlSqlParser.LOG);
			this.state = 5014;
			this.match(PlSqlParser.ON);
			this.state = 5015;
			this.tableview_name();
			this.state = 5025;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 515, this._ctx) ) {
			case 1:
				{
				this.state = 5021;
				this._errHandler.sync(this);
				_alt = 1;
				do {
					switch (_alt) {
					case 1:
						{
						this.state = 5021;
						this._errHandler.sync(this);
						switch (this._input.LA(1)) {
						case 657:
						case 1227:
						case 1230:
						case 1593:
							{
							this.state = 5016;
							this.physical_attributes_clause();
							}
							break;
						case 1909:
							{
							this.state = 5017;
							this.match(PlSqlParser.TABLESPACE);
							this.state = 5018;
							localctx._tablespace_name = this.id_expression();
							}
							break;
						case 521:
						case 779:
						case 993:
							{
							this.state = 5019;
							this.logging_clause();
							}
							break;
						case 150:
						case 946:
							{
							this.state = 5020;
							_la = this._input.LA(1);
							if(!(_la===150 || _la===946)) {
							this._errHandler.recoverInline(this);
							}
							else {
								this._errHandler.reportMatch(this);
							    this.consume();
							}
							}
							break;
						default:
							throw new NoViableAltException(this);
						}
						}
						break;
					default:
						throw new NoViableAltException(this);
					}
					this.state = 5023;
					this._errHandler.sync(this);
					_alt = this._interp.adaptivePredict(this._input, 514, this._ctx);
				} while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER);
				}
				break;
			}
			this.state = 5028;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 516, this._ctx) ) {
			case 1:
				{
				this.state = 5027;
				this.parallel_clause();
				}
				break;
			}
			this.state = 5069;
			this._errHandler.sync(this);
			_alt = this._interp.adaptivePredict(this._input, 525, this._ctx);
			while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) {
				if (_alt === 1) {
					{
					{
					this.state = 5030;
					this.match(PlSqlParser.WITH);
					this.state = 5046;
					this._errHandler.sync(this);
					_alt = this._interp.adaptivePredict(this._input, 519, this._ctx);
					while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) {
						if (_alt === 1) {
							{
							{
							this.state = 5032;
							this._errHandler.sync(this);
							_la = this._input.LA(1);
							if (_la===2229) {
								{
								this.state = 5031;
								this.match(PlSqlParser.COMMA);
								}
							}

							this.state = 5042;
							this._errHandler.sync(this);
							switch (this._input.LA(1)) {
							case 1107:
								{
								this.state = 5034;
								this.match(PlSqlParser.OBJECT);
								this.state = 5035;
								this.match(PlSqlParser.ID);
								}
								break;
							case 1304:
								{
								this.state = 5036;
								this.match(PlSqlParser.PRIMARY);
								this.state = 5037;
								this.match(PlSqlParser.KEY);
								}
								break;
							case 1446:
								{
								this.state = 5038;
								this.match(PlSqlParser.ROWID);
								}
								break;
							case 1496:
								{
								this.state = 5039;
								this.match(PlSqlParser.SEQUENCE);
								}
								break;
							case 218:
								{
								this.state = 5040;
								this.match(PlSqlParser.COMMIT);
								this.state = 5041;
								this.match(PlSqlParser.SCN);
								}
								break;
							default:
								throw new NoViableAltException(this);
							}
							}
							}
						}
						this.state = 5048;
						this._errHandler.sync(this);
						_alt = this._interp.adaptivePredict(this._input, 519, this._ctx);
					}
					this.state = 5062;
					this._errHandler.sync(this);
					switch ( this._interp.adaptivePredict(this._input, 523, this._ctx) ) {
					case 1:
						{
						this.state = 5049;
						this.match(PlSqlParser.LEFT_PAREN);
						this.state = 5054;
						this._errHandler.sync(this);
						_la = this._input.LA(1);
						do {
							{
							{
							this.state = 5051;
							this._errHandler.sync(this);
							_la = this._input.LA(1);
							if (_la===2229) {
								{
								this.state = 5050;
								this.match(PlSqlParser.COMMA);
								}
							}

							this.state = 5053;
							this.regular_id();
							}
							}
							this.state = 5056;
							this._errHandler.sync(this);
							_la = this._input.LA(1);
						} while ((((_la) & ~0x1F) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & 2684286839) !== 0) || ((((_la - 64)) & ~0x1F) === 0 && ((1 << (_la - 64)) & 3220168703) !== 0) || ((((_la - 96)) & ~0x1F) === 0 && ((1 << (_la - 96)) & 4294965247) !== 0) || ((((_la - 128)) & ~0x1F) === 0 && ((1 << (_la - 128)) & 2147221503) !== 0) || ((((_la - 160)) & ~0x1F) === 0 && ((1 << (_la - 160)) & 4293910527) !== 0) || ((((_la - 192)) & ~0x1F) === 0 && ((1 << (_la - 192)) & 4294967295) !== 0) || ((((_la - 224)) & ~0x1F) === 0 && ((1 << (_la - 224)) & 4160749311) !== 0) || ((((_la - 256)) & ~0x1F) === 0 && ((1 << (_la - 256)) & 4294967295) !== 0) || ((((_la - 289)) & ~0x1F) === 0 && ((1 << (_la - 289)) & 2147483647) !== 0) || ((((_la - 321)) & ~0x1F) === 0 && ((1 << (_la - 321)) & 3221225407) !== 0) || ((((_la - 353)) & ~0x1F) === 0 && ((1 << (_la - 353)) & 4294705151) !== 0) || ((((_la - 385)) & ~0x1F) === 0 && ((1 << (_la - 385)) & 2080372479) !== 0) || ((((_la - 417)) & ~0x1F) === 0 && ((1 << (_la - 417)) & 4026433535) !== 0) || ((((_la - 449)) & ~0x1F) === 0 && ((1 << (_la - 449)) & 4261412863) !== 0) || ((((_la - 481)) & ~0x1F) === 0 && ((1 << (_la - 481)) & 4294967295) !== 0) || ((((_la - 513)) & ~0x1F) === 0 && ((1 << (_la - 513)) & 4294967295) !== 0) || ((((_la - 545)) & ~0x1F) === 0 && ((1 << (_la - 545)) & 3925868029) !== 0) || ((((_la - 577)) & ~0x1F) === 0 && ((1 << (_la - 577)) & 4278189823) !== 0) || ((((_la - 609)) & ~0x1F) === 0 && ((1 << (_la - 609)) & 4290772991) !== 0) || ((((_la - 641)) & ~0x1F) === 0 && ((1 << (_la - 641)) & 4026529791) !== 0) || ((((_la - 673)) & ~0x1F) === 0 && ((1 << (_la - 673)) & 4290478079) !== 0) || ((((_la - 705)) & ~0x1F) === 0 && ((1 << (_la - 705)) & 4294967295) !== 0) || ((((_la - 737)) & ~0x1F) === 0 && ((1 << (_la - 737)) & 4293918719) !== 0) || ((((_la - 769)) & ~0x1F) === 0 && ((1 << (_la - 769)) & 4294967167) !== 0) || ((((_la - 801)) & ~0x1F) === 0 && ((1 << (_la - 801)) & 4294967295) !== 0) || ((((_la - 833)) & ~0x1F) === 0 && ((1 << (_la - 833)) & 4160749055) !== 0) || ((((_la - 865)) & ~0x1F) === 0 && ((1 << (_la - 865)) & 4290772991) !== 0) || ((((_la - 897)) & ~0x1F) === 0 && ((1 << (_la - 897)) & 4294967295) !== 0) || ((((_la - 929)) & ~0x1F) === 0 && ((1 << (_la - 929)) & 4278190079) !== 0) || ((((_la - 961)) & ~0x1F) === 0 && ((1 << (_la - 961)) & 4294967295) !== 0) || ((((_la - 993)) & ~0x1F) === 0 && ((1 << (_la - 993)) & 4294967295) !== 0) || ((((_la - 1025)) & ~0x1F) === 0 && ((1 << (_la - 1025)) & 4294967295) !== 0) || ((((_la - 1057)) & ~0x1F) === 0 && ((1 << (_la - 1057)) & 2147418111) !== 0) || ((((_la - 1089)) & ~0x1F) === 0 && ((1 << (_la - 1089)) & 4227858175) !== 0) || ((((_la - 1121)) & ~0x1F) === 0 && ((1 << (_la - 1121)) & 4293918559) !== 0) || ((((_la - 1153)) & ~0x1F) === 0 && ((1 << (_la - 1153)) & 4294410239) !== 0) || ((((_la - 1185)) & ~0x1F) === 0 && ((1 << (_la - 1185)) & 4294965247) !== 0) || ((((_la - 1217)) & ~0x1F) === 0 && ((1 << (_la - 1217)) & 4279827455) !== 0) || ((((_la - 1249)) & ~0x1F) === 0 && ((1 << (_la - 1249)) & 4294967291) !== 0) || ((((_la - 1281)) & ~0x1F) === 0 && ((1 << (_la - 1281)) & 4227858431) !== 0) || ((((_la - 1313)) & ~0x1F) === 0 && ((1 << (_la - 1313)) & 4294965247) !== 0) || ((((_la - 1345)) & ~0x1F) === 0 && ((1 << (_la - 1345)) & 4294967295) !== 0) || ((((_la - 1377)) & ~0x1F) === 0 && ((1 << (_la - 1377)) & 4292870143) !== 0) || ((((_la - 1409)) & ~0x1F) === 0 && ((1 << (_la - 1409)) & 4261412799) !== 0) || ((((_la - 1441)) & ~0x1F) === 0 && ((1 << (_la - 1441)) & 4294967295) !== 0) || ((((_la - 1473)) & ~0x1F) === 0 && ((1 << (_la - 1473)) & 4261281791) !== 0) || ((((_la - 1505)) & ~0x1F) === 0 && ((1 << (_la - 1505)) & 3221221375) !== 0) || ((((_la - 1537)) & ~0x1F) === 0 && ((1 << (_la - 1537)) & 4294967295) !== 0) || ((((_la - 1570)) & ~0x1F) === 0 && ((1 << (_la - 1570)) & 4294967295) !== 0) || ((((_la - 1602)) & ~0x1F) === 0 && ((1 << (_la - 1602)) & 4261412863) !== 0) || ((((_la - 1634)) & ~0x1F) === 0 && ((1 << (_la - 1634)) & 4294967295) !== 0) || ((((_la - 1666)) & ~0x1F) === 0 && ((1 << (_la - 1666)) & 4294967295) !== 0) || ((((_la - 1698)) & ~0x1F) === 0 && ((1 << (_la - 1698)) & 4294967295) !== 0) || ((((_la - 1730)) & ~0x1F) === 0 && ((1 << (_la - 1730)) & 4294967295) !== 0) || ((((_la - 1762)) & ~0x1F) === 0 && ((1 << (_la - 1762)) & 4294967295) !== 0) || ((((_la - 1794)) & ~0x1F) === 0 && ((1 << (_la - 1794)) & 4294967295) !== 0) || ((((_la - 1826)) & ~0x1F) === 0 && ((1 << (_la - 1826)) & 4294967295) !== 0) || ((((_la - 1858)) & ~0x1F) === 0 && ((1 << (_la - 1858)) & 4294967295) !== 0) || ((((_la - 1890)) & ~0x1F) === 0 && ((1 << (_la - 1890)) & 4294967295) !== 0) || ((((_la - 1922)) & ~0x1F) === 0 && ((1 << (_la - 1922)) & 4294901759) !== 0) || ((((_la - 1954)) & ~0x1F) === 0 && ((1 << (_la - 1954)) & 4294966271) !== 0) || ((((_la - 1986)) & ~0x1F) === 0 && ((1 << (_la - 1986)) & 4294868991) !== 0) || ((((_la - 2018)) & ~0x1F) === 0 && ((1 << (_la - 2018)) & 4294967167) !== 0) || ((((_la - 2050)) & ~0x1F) === 0 && ((1 << (_la - 2050)) & 4286578687) !== 0) || ((((_la - 2082)) & ~0x1F) === 0 && ((1 << (_la - 2082)) & 4294836223) !== 0) || ((((_la - 2115)) & ~0x1F) === 0 && ((1 << (_la - 2115)) & 3758092223) !== 0) || ((((_la - 2147)) & ~0x1F) === 0 && ((1 << (_la - 2147)) & 4293918719) !== 0) || ((((_la - 2179)) & ~0x1F) === 0 && ((1 << (_la - 2179)) & 4294965247) !== 0) || ((((_la - 2211)) & ~0x1F) === 0 && ((1 << (_la - 2211)) & 262177) !== 0) || _la===2252);
						this.state = 5058;
						this.match(PlSqlParser.RIGHT_PAREN);
						this.state = 5060;
						this._errHandler.sync(this);
						switch ( this._interp.adaptivePredict(this._input, 522, this._ctx) ) {
						case 1:
							{
							this.state = 5059;
							this.new_values_clause();
							}
							break;
						}
						}
						break;
					}
					this.state = 5065;
					this._errHandler.sync(this);
					switch ( this._interp.adaptivePredict(this._input, 524, this._ctx) ) {
					case 1:
						{
						this.state = 5064;
						this.mv_log_purge_clause();
						}
						break;
					}
					}
					}
				}
				this.state = 5071;
				this._errHandler.sync(this);
				_alt = this._interp.adaptivePredict(this._input, 525, this._ctx);
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public new_values_clause(): New_values_clauseContext {
		let localctx: New_values_clauseContext = new New_values_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 504, PlSqlParser.RULE_new_values_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 5072;
			_la = this._input.LA(1);
			if(!(_la===473 || _la===619)) {
			this._errHandler.recoverInline(this);
			}
			else {
				this._errHandler.reportMatch(this);
			    this.consume();
			}
			this.state = 5073;
			this.match(PlSqlParser.NEW);
			this.state = 5074;
			this.match(PlSqlParser.VALUES);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public mv_log_purge_clause(): Mv_log_purge_clauseContext {
		let localctx: Mv_log_purge_clauseContext = new Mv_log_purge_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 506, PlSqlParser.RULE_mv_log_purge_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 5076;
			this.match(PlSqlParser.PURGE);
			{
			this.state = 5077;
			this.match(PlSqlParser.IMMEDIATE);
			this.state = 5079;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 526, this._ctx) ) {
			case 1:
				{
				this.state = 5078;
				_la = this._input.LA(1);
				if(!(_la===71 || _la===1625)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				}
				break;
			}
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public create_materialized_view(): Create_materialized_viewContext {
		let localctx: Create_materialized_viewContext = new Create_materialized_viewContext(this, this._ctx, this.state);
		this.enterRule(localctx, 508, PlSqlParser.RULE_create_materialized_view);
		let _la: number;
		try {
			let _alt: number;
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 5081;
			this.match(PlSqlParser.CREATE);
			this.state = 5082;
			this.match(PlSqlParser.MATERIALIZED);
			this.state = 5083;
			this.match(PlSqlParser.VIEW);
			this.state = 5084;
			this.tableview_name();
			this.state = 5087;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1115) {
				{
				this.state = 5085;
				this.match(PlSqlParser.OF);
				this.state = 5086;
				this.type_name();
				}
			}

			this.state = 5109;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 1128:
				{
				this.state = 5089;
				this.match(PlSqlParser.ON);
				this.state = 5090;
				this.match(PlSqlParser.PREBUILT);
				this.state = 5091;
				this.match(PlSqlParser.TABLE);
				this.state = 5095;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===2119 || _la===2121) {
					{
					this.state = 5092;
					_la = this._input.LA(1);
					if(!(_la===2119 || _la===2121)) {
					this._errHandler.recoverInline(this);
					}
					else {
						this._errHandler.reportMatch(this);
					    this.consume();
					}
					this.state = 5093;
					this.match(PlSqlParser.REDUCED);
					this.state = 5094;
					this.match(PlSqlParser.PRECISION);
					}
				}

				}
				break;
			case 61:
			case 144:
			case 150:
			case 383:
			case 439:
			case 521:
			case 546:
			case 657:
			case 779:
			case 902:
			case 946:
			case 993:
			case 1021:
			case 1195:
			case 1227:
			case 1230:
			case 1377:
			case 1488:
			case 1593:
			case 1909:
			case 2063:
				{
				this.state = 5098;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===521 || _la===657 || _la===779 || _la===993 || _la===1227 || _la===1230 || _la===1488 || _la===1593 || _la===1909) {
					{
					this.state = 5097;
					this.physical_properties();
					}
				}

				this.state = 5101;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===150 || _la===946) {
					{
					this.state = 5100;
					_la = this._input.LA(1);
					if(!(_la===150 || _la===946)) {
					this._errHandler.recoverInline(this);
					}
					else {
						this._errHandler.reportMatch(this);
					    this.consume();
					}
					}
				}

				this.state = 5104;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===1021 || _la===1195) {
					{
					this.state = 5103;
					this.parallel_clause();
					}
				}

				this.state = 5107;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===144) {
					{
					this.state = 5106;
					this.build_clause();
					}
				}

				}
				break;
			default:
				throw new NoViableAltException(this);
			}
			this.state = 5128;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 537, this._ctx) ) {
			case 1:
				{
				this.state = 5111;
				this.match(PlSqlParser.USING);
				this.state = 5112;
				this.match(PlSqlParser.INDEX);
				this.state = 5122;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===657 || _la===1227 || _la===1230 || _la===1593 || _la===1909) {
					{
					{
					this.state = 5116;
					this._errHandler.sync(this);
					_alt = 1;
					do {
						switch (_alt) {
						case 1:
							{
							this.state = 5116;
							this._errHandler.sync(this);
							switch (this._input.LA(1)) {
							case 657:
							case 1227:
							case 1230:
							case 1593:
								{
								this.state = 5113;
								this.physical_attributes_clause();
								}
								break;
							case 1909:
								{
								this.state = 5114;
								this.match(PlSqlParser.TABLESPACE);
								this.state = 5115;
								localctx._mv_tablespace = this.id_expression();
								}
								break;
							default:
								throw new NoViableAltException(this);
							}
							}
							break;
						default:
							throw new NoViableAltException(this);
						}
						this.state = 5118;
						this._errHandler.sync(this);
						_alt = this._interp.adaptivePredict(this._input, 535, this._ctx);
					} while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER);
					}
					}
					this.state = 5124;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				}
				break;
			case 2:
				{
				this.state = 5125;
				this.match(PlSqlParser.USING);
				this.state = 5126;
				this.match(PlSqlParser.NO);
				this.state = 5127;
				this.match(PlSqlParser.INDEX);
				}
				break;
			}
			this.state = 5131;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===902 || _la===1377) {
				{
				this.state = 5130;
				this.create_mv_refresh();
				}
			}

			this.state = 5135;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===546) {
				{
				this.state = 5133;
				this.match(PlSqlParser.FOR);
				this.state = 5134;
				this.match(PlSqlParser.UPDATE);
				}
			}

			this.state = 5140;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===383 || _la===439) {
				{
				this.state = 5137;
				_la = this._input.LA(1);
				if(!(_la===383 || _la===439)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				this.state = 5138;
				this.match(PlSqlParser.QUERY);
				this.state = 5139;
				this.match(PlSqlParser.REWRITE);
				}
			}

			this.state = 5142;
			this.match(PlSqlParser.AS);
			this.state = 5143;
			this.select_only_statement();
			this.state = 5144;
			this.match(PlSqlParser.SEMICOLON);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public create_mv_refresh(): Create_mv_refreshContext {
		let localctx: Create_mv_refreshContext = new Create_mv_refreshContext(this, this._ctx, this.state);
		this.enterRule(localctx, 510, PlSqlParser.RULE_create_mv_refresh);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 5185;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 902:
				{
				this.state = 5146;
				this.match(PlSqlParser.NEVER);
				this.state = 5147;
				this.match(PlSqlParser.REFRESH);
				}
				break;
			case 1377:
				{
				this.state = 5148;
				this.match(PlSqlParser.REFRESH);
				this.state = 5181;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				do {
					{
					this.state = 5181;
					this._errHandler.sync(this);
					switch ( this._interp.adaptivePredict(this._input, 546, this._ctx) ) {
					case 1:
						{
						this.state = 5149;
						_la = this._input.LA(1);
						if(!(_la===224 || _la===511 || _la===542)) {
						this._errHandler.recoverInline(this);
						}
						else {
							this._errHandler.reportMatch(this);
						    this.consume();
						}
						}
						break;
					case 2:
						{
						this.state = 5150;
						this.match(PlSqlParser.ON);
						this.state = 5151;
						_la = this._input.LA(1);
						if(!(_la===218 || _la===364)) {
						this._errHandler.recoverInline(this);
						}
						else {
							this._errHandler.reportMatch(this);
						    this.consume();
						}
						}
						break;
					case 3:
						{
						this.state = 5155;
						this._errHandler.sync(this);
						switch (this._input.LA(1)) {
						case 1569:
							{
							this.state = 5152;
							this.match(PlSqlParser.START);
							this.state = 5153;
							this.match(PlSqlParser.WITH);
							}
							break;
						case 906:
							{
							this.state = 5154;
							this.match(PlSqlParser.NEXT);
							}
							break;
						default:
							throw new NoViableAltException(this);
						}
						}
						break;
					case 4:
						{
						this.state = 5157;
						this.match(PlSqlParser.WITH);
						this.state = 5161;
						this._errHandler.sync(this);
						switch (this._input.LA(1)) {
						case 1304:
							{
							this.state = 5158;
							this.match(PlSqlParser.PRIMARY);
							this.state = 5159;
							this.match(PlSqlParser.KEY);
							}
							break;
						case 1446:
							{
							this.state = 5160;
							this.match(PlSqlParser.ROWID);
							}
							break;
						default:
							throw new NoViableAltException(this);
						}
						}
						break;
					case 5:
						{
						this.state = 5163;
						this.match(PlSqlParser.USING);
						this.state = 5176;
						this._errHandler.sync(this);
						switch (this._input.LA(1)) {
						case 351:
							{
							this.state = 5164;
							this.match(PlSqlParser.DEFAULT);
							this.state = 5166;
							this._errHandler.sync(this);
							_la = this._input.LA(1);
							if (_la===769 || _la===803) {
								{
								this.state = 5165;
								_la = this._input.LA(1);
								if(!(_la===769 || _la===803)) {
								this._errHandler.recoverInline(this);
								}
								else {
									this._errHandler.reportMatch(this);
								    this.consume();
								}
								}
							}

							this.state = 5168;
							this.match(PlSqlParser.ROLLBACK);
							this.state = 5169;
							this.match(PlSqlParser.SEGMENT);
							}
							break;
						case 769:
						case 803:
						case 1441:
							{
							this.state = 5171;
							this._errHandler.sync(this);
							_la = this._input.LA(1);
							if (_la===769 || _la===803) {
								{
								this.state = 5170;
								_la = this._input.LA(1);
								if(!(_la===769 || _la===803)) {
								this._errHandler.recoverInline(this);
								}
								else {
									this._errHandler.reportMatch(this);
								    this.consume();
								}
								}
							}

							this.state = 5173;
							this.match(PlSqlParser.ROLLBACK);
							this.state = 5174;
							this.match(PlSqlParser.SEGMENT);
							this.state = 5175;
							localctx._rb_segment = this.match(PlSqlParser.REGULAR_ID);
							}
							break;
						default:
							throw new NoViableAltException(this);
						}
						}
						break;
					case 6:
						{
						this.state = 5178;
						this.match(PlSqlParser.USING);
						this.state = 5179;
						_la = this._input.LA(1);
						if(!(_la===447 || _la===1982)) {
						this._errHandler.recoverInline(this);
						}
						else {
							this._errHandler.reportMatch(this);
						    this.consume();
						}
						this.state = 5180;
						this.match(PlSqlParser.CONSTRAINTS);
						}
						break;
					}
					}
					this.state = 5183;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				} while (_la===224 || _la===511 || _la===542 || _la===906 || _la===1128 || _la===1569 || _la===2063 || _la===2121);
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public create_context(): Create_contextContext {
		let localctx: Create_contextContext = new Create_contextContext(this, this._ctx, this.state);
		this.enterRule(localctx, 512, PlSqlParser.RULE_create_context);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 5187;
			this.match(PlSqlParser.CREATE);
			this.state = 5190;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1172) {
				{
				this.state = 5188;
				this.match(PlSqlParser.OR);
				this.state = 5189;
				this.match(PlSqlParser.REPLACE);
				}
			}

			this.state = 5192;
			this.match(PlSqlParser.CONTEXT);
			this.state = 5193;
			this.oracle_namespace();
			this.state = 5194;
			this.match(PlSqlParser.USING);
			this.state = 5198;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 550, this._ctx) ) {
			case 1:
				{
				this.state = 5195;
				this.schema_object_name();
				this.state = 5196;
				this.match(PlSqlParser.PERIOD);
				}
				break;
			}
			this.state = 5200;
			this.package_name();
			this.state = 5205;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 655:
				{
				this.state = 5201;
				this.match(PlSqlParser.INITIALIZED);
				this.state = 5202;
				_la = this._input.LA(1);
				if(!(_la===494 || _la===567)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				}
				break;
			case 4:
				{
				this.state = 5203;
				this.match(PlSqlParser.ACCESSED);
				this.state = 5204;
				this.match(PlSqlParser.GLOBALLY);
				}
				break;
			case 2241:
				break;
			default:
				break;
			}
			this.state = 5207;
			this.match(PlSqlParser.SEMICOLON);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public oracle_namespace(): Oracle_namespaceContext {
		let localctx: Oracle_namespaceContext = new Oracle_namespaceContext(this, this._ctx, this.state);
		this.enterRule(localctx, 514, PlSqlParser.RULE_oracle_namespace);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 5209;
			this.id_expression();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public create_cluster(): Create_clusterContext {
		let localctx: Create_clusterContext = new Create_clusterContext(this, this._ctx, this.state);
		this.enterRule(localctx, 516, PlSqlParser.RULE_create_cluster);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 5211;
			this.match(PlSqlParser.CREATE);
			this.state = 5212;
			this.match(PlSqlParser.CLUSTER);
			this.state = 5213;
			this.cluster_name();
			this.state = 5214;
			this.match(PlSqlParser.LEFT_PAREN);
			this.state = 5215;
			this.column_name();
			this.state = 5216;
			this.datatype();
			this.state = 5218;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1544) {
				{
				this.state = 5217;
				this.match(PlSqlParser.SORT);
				}
			}

			this.state = 5228;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			while (_la===2229) {
				{
				{
				this.state = 5220;
				this.match(PlSqlParser.COMMA);
				this.state = 5221;
				this.column_name();
				this.state = 5222;
				this.datatype();
				this.state = 5224;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===1544) {
					{
					this.state = 5223;
					this.match(PlSqlParser.SORT);
					}
				}

				}
				}
				this.state = 5230;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			}
			this.state = 5231;
			this.match(PlSqlParser.RIGHT_PAREN);
			this.state = 5251;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			while (_la===583 || _la===631 || _la===657 || _la===1227 || _la===1230 || _la===1531 || _la===1535 || _la===1593 || _la===1909) {
				{
				this.state = 5249;
				this._errHandler.sync(this);
				switch (this._input.LA(1)) {
				case 657:
				case 1227:
				case 1230:
				case 1593:
					{
					this.state = 5232;
					this.physical_attributes_clause();
					}
					break;
				case 1535:
					{
					this.state = 5233;
					this.match(PlSqlParser.SIZE);
					this.state = 5234;
					this.size_clause();
					}
					break;
				case 1909:
					{
					this.state = 5235;
					this.match(PlSqlParser.TABLESPACE);
					this.state = 5236;
					this.tablespace();
					}
					break;
				case 631:
					{
					this.state = 5237;
					this.match(PlSqlParser.INDEX);
					}
					break;
				case 583:
				case 1531:
					{
					this.state = 5240;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
					if (_la===1531) {
						{
						this.state = 5238;
						this.match(PlSqlParser.SINGLE);
						this.state = 5239;
						this.match(PlSqlParser.TABLE);
						}
					}

					this.state = 5242;
					this.match(PlSqlParser.HASHKEYS);
					this.state = 5243;
					this.match(PlSqlParser.UNSIGNED_INTEGER);
					this.state = 5247;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
					if (_la===582) {
						{
						this.state = 5244;
						this.match(PlSqlParser.HASH);
						this.state = 5245;
						this.match(PlSqlParser.IS);
						this.state = 5246;
						this.expression();
						}
					}

					}
					break;
				default:
					throw new NoViableAltException(this);
				}
				}
				this.state = 5253;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			}
			this.state = 5255;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1021 || _la===1195) {
				{
				this.state = 5254;
				this.parallel_clause();
				}
			}

			this.state = 5258;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1052 || _la===1444) {
				{
				this.state = 5257;
				_la = this._input.LA(1);
				if(!(_la===1052 || _la===1444)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				}
			}

			this.state = 5261;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===150 || _la===946) {
				{
				this.state = 5260;
				_la = this._input.LA(1);
				if(!(_la===150 || _la===946)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				}
			}

			this.state = 5263;
			this.match(PlSqlParser.SEMICOLON);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public create_table(): Create_tableContext {
		let localctx: Create_tableContext = new Create_tableContext(this, this._ctx, this.state);
		this.enterRule(localctx, 518, PlSqlParser.RULE_create_table);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 5265;
			this.match(PlSqlParser.CREATE);
			this.state = 5268;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===566) {
				{
				this.state = 5266;
				this.match(PlSqlParser.GLOBAL);
				this.state = 5267;
				this.match(PlSqlParser.TEMPORARY);
				}
			}

			this.state = 5270;
			this.match(PlSqlParser.TABLE);
			this.state = 5271;
			this.tableview_name();
			this.state = 5275;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 563, this._ctx) ) {
			case 1:
				{
				this.state = 5272;
				this.relational_table();
				}
				break;
			case 2:
				{
				this.state = 5273;
				this.object_table();
				}
				break;
			case 3:
				{
				this.state = 5274;
				this.xmltype_table();
				}
				break;
			}
			this.state = 5279;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===61) {
				{
				this.state = 5277;
				this.match(PlSqlParser.AS);
				this.state = 5278;
				this.select_only_statement();
				}
			}

			this.state = 5281;
			this.match(PlSqlParser.SEMICOLON);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public xmltype_table(): Xmltype_tableContext {
		let localctx: Xmltype_tableContext = new Xmltype_tableContext(this, this._ctx, this.state);
		this.enterRule(localctx, 520, PlSqlParser.RULE_xmltype_table);
		let _la: number;
		try {
			let _alt: number;
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 5283;
			this.match(PlSqlParser.OF);
			this.state = 5284;
			this.match(PlSqlParser.XMLTYPE);
			this.state = 5289;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===2223) {
				{
				this.state = 5285;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 5286;
				this.object_properties();
				this.state = 5287;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
			}

			this.state = 5293;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 566, this._ctx) ) {
			case 1:
				{
				this.state = 5291;
				this.match(PlSqlParser.XMLTYPE);
				this.state = 5292;
				this.xmltype_storage();
				}
				break;
			}
			this.state = 5296;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===427 || _la===2157) {
				{
				this.state = 5295;
				this.xmlschema_spec();
				}
			}

			this.state = 5299;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===2101) {
				{
				this.state = 5298;
				this.xmltype_virtual_columns();
				}
			}

			this.state = 5305;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1128) {
				{
				this.state = 5301;
				this.match(PlSqlParser.ON);
				this.state = 5302;
				this.match(PlSqlParser.COMMIT);
				this.state = 5303;
				_la = this._input.LA(1);
				if(!(_la===362 || _la===1300)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				this.state = 5304;
				this.match(PlSqlParser.ROWS);
				}
			}

			this.state = 5308;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1107) {
				{
				this.state = 5307;
				this.oid_clause();
				}
			}

			this.state = 5311;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1116) {
				{
				this.state = 5310;
				this.oid_index_clause();
				}
			}

			this.state = 5314;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===521 || _la===657 || _la===779 || _la===993 || _la===1227 || _la===1230 || _la===1488 || _la===1593 || _la===1909) {
				{
				this.state = 5313;
				this.physical_properties();
				}
			}

			this.state = 5317;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===213 || _la===765 || _la===895 || _la===2080 || _la===2162) {
				{
				this.state = 5316;
				this.column_properties();
				}
			}

			this.state = 5320;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1207) {
				{
				this.state = 5319;
				this.table_partitioning_clauses();
				}
			}

			this.state = 5323;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===150 || _la===946) {
				{
				this.state = 5322;
				_la = this._input.LA(1);
				if(!(_la===150 || _la===946)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				}
			}

			this.state = 5330;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1424) {
				{
				this.state = 5325;
				this.match(PlSqlParser.RESULT_CACHE);
				this.state = 5326;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 5327;
				this.match(PlSqlParser.MODE);
				this.state = 5328;
				_la = this._input.LA(1);
				if(!(_la===351 || _la===542)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				this.state = 5329;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
			}

			this.state = 5333;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1021 || _la===1195) {
				{
				this.state = 5332;
				this.parallel_clause();
				}
			}

			this.state = 5336;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1052 || _la===1444) {
				{
				this.state = 5335;
				_la = this._input.LA(1);
				if(!(_la===1052 || _la===1444)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				}
			}

			this.state = 5343;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 580, this._ctx) ) {
			case 1:
				{
				this.state = 5339;
				this._errHandler.sync(this);
				_alt = 1;
				do {
					switch (_alt) {
					case 1:
						{
						{
						this.state = 5338;
						this.enable_disable_clause();
						}
						}
						break;
					default:
						throw new NoViableAltException(this);
					}
					this.state = 5341;
					this._errHandler.sync(this);
					_alt = this._interp.adaptivePredict(this._input, 579, this._ctx);
				} while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER);
				}
				break;
			}
			this.state = 5346;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===383 || _la===439 || _la===1451) {
				{
				this.state = 5345;
				this.row_movement_clause();
				}
			}

			this.state = 5349;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===532 || _la===1010) {
				{
				this.state = 5348;
				this.flashback_archive_clause();
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public xmltype_virtual_columns(): Xmltype_virtual_columnsContext {
		let localctx: Xmltype_virtual_columnsContext = new Xmltype_virtual_columnsContext(this, this._ctx, this.state);
		this.enterRule(localctx, 522, PlSqlParser.RULE_xmltype_virtual_columns);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 5351;
			this.match(PlSqlParser.VIRTUAL);
			this.state = 5352;
			this.match(PlSqlParser.COLUMNS);
			this.state = 5353;
			this.match(PlSqlParser.LEFT_PAREN);
			this.state = 5354;
			this.column_name();
			this.state = 5355;
			this.match(PlSqlParser.AS);
			this.state = 5356;
			this.match(PlSqlParser.LEFT_PAREN);
			this.state = 5357;
			this.expression();
			this.state = 5358;
			this.match(PlSqlParser.RIGHT_PAREN);
			this.state = 5368;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			while (_la===2229) {
				{
				{
				this.state = 5359;
				this.match(PlSqlParser.COMMA);
				this.state = 5360;
				this.column_name();
				this.state = 5361;
				this.match(PlSqlParser.AS);
				this.state = 5362;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 5363;
				this.expression();
				this.state = 5364;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
				}
				this.state = 5370;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			}
			this.state = 5371;
			this.match(PlSqlParser.RIGHT_PAREN);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public xmltype_column_properties(): Xmltype_column_propertiesContext {
		let localctx: Xmltype_column_propertiesContext = new Xmltype_column_propertiesContext(this, this._ctx, this.state);
		this.enterRule(localctx, 524, PlSqlParser.RULE_xmltype_column_properties);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 5373;
			this.match(PlSqlParser.XMLTYPE);
			this.state = 5375;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 584, this._ctx) ) {
			case 1:
				{
				this.state = 5374;
				this.match(PlSqlParser.COLUMN);
				}
				break;
			}
			this.state = 5377;
			this.column_name();
			this.state = 5379;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1594) {
				{
				this.state = 5378;
				this.xmltype_storage();
				}
			}

			this.state = 5382;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===427 || _la===2157) {
				{
				this.state = 5381;
				this.xmlschema_spec();
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public xmltype_storage(): Xmltype_storageContext {
		let localctx: Xmltype_storageContext = new Xmltype_storageContext(this, this._ctx, this.state);
		this.enterRule(localctx, 526, PlSqlParser.RULE_xmltype_storage);
		let _la: number;
		try {
			this.state = 5415;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 592, this._ctx) ) {
			case 1:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 5384;
				this.match(PlSqlParser.STORE);
				this.state = 5385;
				this.match(PlSqlParser.AS);
				this.state = 5409;
				this._errHandler.sync(this);
				switch (this._input.LA(1)) {
				case 1107:
					{
					this.state = 5386;
					this.match(PlSqlParser.OBJECT);
					this.state = 5387;
					this.match(PlSqlParser.RELATIONAL);
					}
					break;
				case 96:
				case 111:
				case 192:
				case 1483:
					{
					this.state = 5389;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
					if (_la===96 || _la===1483) {
						{
						this.state = 5388;
						_la = this._input.LA(1);
						if(!(_la===96 || _la===1483)) {
						this._errHandler.recoverInline(this);
						}
						else {
							this._errHandler.reportMatch(this);
						    this.consume();
						}
						}
					}

					this.state = 5394;
					this._errHandler.sync(this);
					switch (this._input.LA(1)) {
					case 192:
						{
						this.state = 5391;
						this.match(PlSqlParser.CLOB);
						}
						break;
					case 111:
						{
						this.state = 5392;
						this.match(PlSqlParser.BINARY);
						this.state = 5393;
						this.match(PlSqlParser.XML);
						}
						break;
					default:
						throw new NoViableAltException(this);
					}
					this.state = 5407;
					this._errHandler.sync(this);
					switch ( this._interp.adaptivePredict(this._input, 590, this._ctx) ) {
					case 1:
						{
						this.state = 5396;
						this.lob_segname();
						this.state = 5401;
						this._errHandler.sync(this);
						switch ( this._interp.adaptivePredict(this._input, 589, this._ctx) ) {
						case 1:
							{
							this.state = 5397;
							this.match(PlSqlParser.LEFT_PAREN);
							this.state = 5398;
							this.lob_parameters();
							this.state = 5399;
							this.match(PlSqlParser.RIGHT_PAREN);
							}
							break;
						}
						}
						break;
					case 2:
						{
						this.state = 5403;
						this.match(PlSqlParser.LEFT_PAREN);
						this.state = 5404;
						this.lob_parameters();
						this.state = 5405;
						this.match(PlSqlParser.RIGHT_PAREN);
						}
						break;
					}
					}
					break;
				default:
					throw new NoViableAltException(this);
				}
				}
				break;
			case 2:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 5411;
				this.match(PlSqlParser.STORE);
				this.state = 5412;
				this.match(PlSqlParser.VARRAYS);
				this.state = 5413;
				this.match(PlSqlParser.AS);
				this.state = 5414;
				_la = this._input.LA(1);
				if(!(_la===767 || _la===1910)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				}
				break;
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public xmlschema_spec(): Xmlschema_specContext {
		let localctx: Xmlschema_specContext = new Xmlschema_specContext(this, this._ctx, this.state);
		this.enterRule(localctx, 528, PlSqlParser.RULE_xmlschema_spec);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 5419;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===2157) {
				{
				this.state = 5417;
				this.match(PlSqlParser.XMLSCHEMA);
				this.state = 5418;
				this.match(PlSqlParser.DELIMITED_ID);
				}
			}

			this.state = 5421;
			this.match(PlSqlParser.ELEMENT);
			this.state = 5422;
			this.match(PlSqlParser.DELIMITED_ID);
			this.state = 5426;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 594, this._ctx) ) {
			case 1:
				{
				this.state = 5423;
				this.allow_or_disallow();
				this.state = 5424;
				this.match(PlSqlParser.NONSCHEMA);
				}
				break;
			}
			this.state = 5431;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===37 || _la===387) {
				{
				this.state = 5428;
				this.allow_or_disallow();
				this.state = 5429;
				this.match(PlSqlParser.ANYSCHEMA);
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public object_table(): Object_tableContext {
		let localctx: Object_tableContext = new Object_tableContext(this, this._ctx, this.state);
		this.enterRule(localctx, 530, PlSqlParser.RULE_object_table);
		let _la: number;
		try {
			let _alt: number;
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 5433;
			this.match(PlSqlParser.OF);
			this.state = 5434;
			this.type_name();
			this.state = 5436;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1073 || _la===1611) {
				{
				this.state = 5435;
				this.object_table_substitution();
				}
			}

			this.state = 5449;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===2223) {
				{
				this.state = 5438;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 5439;
				this.object_properties();
				this.state = 5444;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===2229) {
					{
					{
					this.state = 5440;
					this.match(PlSqlParser.COMMA);
					this.state = 5441;
					this.object_properties();
					}
					}
					this.state = 5446;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				this.state = 5447;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
			}

			this.state = 5455;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1128) {
				{
				this.state = 5451;
				this.match(PlSqlParser.ON);
				this.state = 5452;
				this.match(PlSqlParser.COMMIT);
				this.state = 5453;
				_la = this._input.LA(1);
				if(!(_la===362 || _la===1300)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				this.state = 5454;
				this.match(PlSqlParser.ROWS);
				}
			}

			this.state = 5458;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1107) {
				{
				this.state = 5457;
				this.oid_clause();
				}
			}

			this.state = 5461;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1116) {
				{
				this.state = 5460;
				this.oid_index_clause();
				}
			}

			this.state = 5464;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===521 || _la===657 || _la===779 || _la===993 || _la===1227 || _la===1230 || _la===1488 || _la===1593 || _la===1909) {
				{
				this.state = 5463;
				this.physical_properties();
				}
			}

			this.state = 5467;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===213 || _la===765 || _la===895 || _la===2080 || _la===2162) {
				{
				this.state = 5466;
				this.column_properties();
				}
			}

			this.state = 5470;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1207) {
				{
				this.state = 5469;
				this.table_partitioning_clauses();
				}
			}

			this.state = 5473;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===150 || _la===946) {
				{
				this.state = 5472;
				_la = this._input.LA(1);
				if(!(_la===150 || _la===946)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				}
			}

			this.state = 5480;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1424) {
				{
				this.state = 5475;
				this.match(PlSqlParser.RESULT_CACHE);
				this.state = 5476;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 5477;
				this.match(PlSqlParser.MODE);
				this.state = 5478;
				_la = this._input.LA(1);
				if(!(_la===351 || _la===542)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				this.state = 5479;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
			}

			this.state = 5483;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1021 || _la===1195) {
				{
				this.state = 5482;
				this.parallel_clause();
				}
			}

			this.state = 5486;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1052 || _la===1444) {
				{
				this.state = 5485;
				_la = this._input.LA(1);
				if(!(_la===1052 || _la===1444)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				}
			}

			this.state = 5493;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 610, this._ctx) ) {
			case 1:
				{
				this.state = 5489;
				this._errHandler.sync(this);
				_alt = 1;
				do {
					switch (_alt) {
					case 1:
						{
						{
						this.state = 5488;
						this.enable_disable_clause();
						}
						}
						break;
					default:
						throw new NoViableAltException(this);
					}
					this.state = 5491;
					this._errHandler.sync(this);
					_alt = this._interp.adaptivePredict(this._input, 609, this._ctx);
				} while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER);
				}
				break;
			}
			this.state = 5496;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===383 || _la===439 || _la===1451) {
				{
				this.state = 5495;
				this.row_movement_clause();
				}
			}

			this.state = 5499;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===532 || _la===1010) {
				{
				this.state = 5498;
				this.flashback_archive_clause();
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public oid_index_clause(): Oid_index_clauseContext {
		let localctx: Oid_index_clauseContext = new Oid_index_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 532, PlSqlParser.RULE_oid_index_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 5501;
			this.match(PlSqlParser.OIDINDEX);
			this.state = 5503;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & 2684286839) !== 0) || ((((_la - 64)) & ~0x1F) === 0 && ((1 << (_la - 64)) & 3220168703) !== 0) || ((((_la - 96)) & ~0x1F) === 0 && ((1 << (_la - 96)) & 4294965247) !== 0) || ((((_la - 128)) & ~0x1F) === 0 && ((1 << (_la - 128)) & 2147221503) !== 0) || ((((_la - 160)) & ~0x1F) === 0 && ((1 << (_la - 160)) & 4293910527) !== 0) || ((((_la - 192)) & ~0x1F) === 0 && ((1 << (_la - 192)) & 4294967295) !== 0) || ((((_la - 224)) & ~0x1F) === 0 && ((1 << (_la - 224)) & 4160749311) !== 0) || ((((_la - 256)) & ~0x1F) === 0 && ((1 << (_la - 256)) & 4294967295) !== 0) || ((((_la - 289)) & ~0x1F) === 0 && ((1 << (_la - 289)) & 2147483647) !== 0) || ((((_la - 321)) & ~0x1F) === 0 && ((1 << (_la - 321)) & 3221225407) !== 0) || ((((_la - 353)) & ~0x1F) === 0 && ((1 << (_la - 353)) & 4294705151) !== 0) || ((((_la - 385)) & ~0x1F) === 0 && ((1 << (_la - 385)) & 2080372479) !== 0) || ((((_la - 417)) & ~0x1F) === 0 && ((1 << (_la - 417)) & 4026433535) !== 0) || ((((_la - 449)) & ~0x1F) === 0 && ((1 << (_la - 449)) & 4261412863) !== 0) || ((((_la - 481)) & ~0x1F) === 0 && ((1 << (_la - 481)) & 4294967295) !== 0) || ((((_la - 513)) & ~0x1F) === 0 && ((1 << (_la - 513)) & 4294967295) !== 0) || ((((_la - 545)) & ~0x1F) === 0 && ((1 << (_la - 545)) & 3925868029) !== 0) || ((((_la - 577)) & ~0x1F) === 0 && ((1 << (_la - 577)) & 4278189823) !== 0) || ((((_la - 609)) & ~0x1F) === 0 && ((1 << (_la - 609)) & 4290772991) !== 0) || ((((_la - 641)) & ~0x1F) === 0 && ((1 << (_la - 641)) & 4026529791) !== 0) || ((((_la - 673)) & ~0x1F) === 0 && ((1 << (_la - 673)) & 4290478079) !== 0) || ((((_la - 705)) & ~0x1F) === 0 && ((1 << (_la - 705)) & 4294967295) !== 0) || ((((_la - 737)) & ~0x1F) === 0 && ((1 << (_la - 737)) & 4293918719) !== 0) || ((((_la - 769)) & ~0x1F) === 0 && ((1 << (_la - 769)) & 4294967167) !== 0) || ((((_la - 801)) & ~0x1F) === 0 && ((1 << (_la - 801)) & 4294967295) !== 0) || ((((_la - 833)) & ~0x1F) === 0 && ((1 << (_la - 833)) & 4160749055) !== 0) || ((((_la - 865)) & ~0x1F) === 0 && ((1 << (_la - 865)) & 4290772991) !== 0) || ((((_la - 897)) & ~0x1F) === 0 && ((1 << (_la - 897)) & 4294967295) !== 0) || ((((_la - 929)) & ~0x1F) === 0 && ((1 << (_la - 929)) & 4278190079) !== 0) || ((((_la - 961)) & ~0x1F) === 0 && ((1 << (_la - 961)) & 4294967295) !== 0) || ((((_la - 993)) & ~0x1F) === 0 && ((1 << (_la - 993)) & 4294967295) !== 0) || ((((_la - 1025)) & ~0x1F) === 0 && ((1 << (_la - 1025)) & 4294967295) !== 0) || ((((_la - 1057)) & ~0x1F) === 0 && ((1 << (_la - 1057)) & 2147418111) !== 0) || ((((_la - 1089)) & ~0x1F) === 0 && ((1 << (_la - 1089)) & 4227858175) !== 0) || ((((_la - 1121)) & ~0x1F) === 0 && ((1 << (_la - 1121)) & 4293918559) !== 0) || ((((_la - 1153)) & ~0x1F) === 0 && ((1 << (_la - 1153)) & 4294410239) !== 0) || ((((_la - 1185)) & ~0x1F) === 0 && ((1 << (_la - 1185)) & 4294965247) !== 0) || ((((_la - 1217)) & ~0x1F) === 0 && ((1 << (_la - 1217)) & 4279827455) !== 0) || ((((_la - 1249)) & ~0x1F) === 0 && ((1 << (_la - 1249)) & 4294967291) !== 0) || ((((_la - 1281)) & ~0x1F) === 0 && ((1 << (_la - 1281)) & 4227858431) !== 0) || ((((_la - 1313)) & ~0x1F) === 0 && ((1 << (_la - 1313)) & 4294965247) !== 0) || ((((_la - 1345)) & ~0x1F) === 0 && ((1 << (_la - 1345)) & 4294967295) !== 0) || ((((_la - 1377)) & ~0x1F) === 0 && ((1 << (_la - 1377)) & 4292870143) !== 0) || ((((_la - 1409)) & ~0x1F) === 0 && ((1 << (_la - 1409)) & 4261412799) !== 0) || ((((_la - 1441)) & ~0x1F) === 0 && ((1 << (_la - 1441)) & 4294967295) !== 0) || ((((_la - 1473)) & ~0x1F) === 0 && ((1 << (_la - 1473)) & 4261281791) !== 0) || ((((_la - 1505)) & ~0x1F) === 0 && ((1 << (_la - 1505)) & 3221221375) !== 0) || ((((_la - 1537)) & ~0x1F) === 0 && ((1 << (_la - 1537)) & 4294967295) !== 0) || ((((_la - 1570)) & ~0x1F) === 0 && ((1 << (_la - 1570)) & 4294967295) !== 0) || ((((_la - 1602)) & ~0x1F) === 0 && ((1 << (_la - 1602)) & 4261412863) !== 0) || ((((_la - 1634)) & ~0x1F) === 0 && ((1 << (_la - 1634)) & 4294967295) !== 0) || ((((_la - 1666)) & ~0x1F) === 0 && ((1 << (_la - 1666)) & 4294967295) !== 0) || ((((_la - 1698)) & ~0x1F) === 0 && ((1 << (_la - 1698)) & 4294967295) !== 0) || ((((_la - 1730)) & ~0x1F) === 0 && ((1 << (_la - 1730)) & 4294967295) !== 0) || ((((_la - 1762)) & ~0x1F) === 0 && ((1 << (_la - 1762)) & 4294967295) !== 0) || ((((_la - 1794)) & ~0x1F) === 0 && ((1 << (_la - 1794)) & 4294967295) !== 0) || ((((_la - 1826)) & ~0x1F) === 0 && ((1 << (_la - 1826)) & 4294967295) !== 0) || ((((_la - 1858)) & ~0x1F) === 0 && ((1 << (_la - 1858)) & 4294967295) !== 0) || ((((_la - 1890)) & ~0x1F) === 0 && ((1 << (_la - 1890)) & 4294967295) !== 0) || ((((_la - 1922)) & ~0x1F) === 0 && ((1 << (_la - 1922)) & 4294901759) !== 0) || ((((_la - 1954)) & ~0x1F) === 0 && ((1 << (_la - 1954)) & 4294966271) !== 0) || ((((_la - 1986)) & ~0x1F) === 0 && ((1 << (_la - 1986)) & 4294868991) !== 0) || ((((_la - 2018)) & ~0x1F) === 0 && ((1 << (_la - 2018)) & 4294967167) !== 0) || ((((_la - 2050)) & ~0x1F) === 0 && ((1 << (_la - 2050)) & 4286578687) !== 0) || ((((_la - 2082)) & ~0x1F) === 0 && ((1 << (_la - 2082)) & 4294836223) !== 0) || ((((_la - 2115)) & ~0x1F) === 0 && ((1 << (_la - 2115)) & 3758092223) !== 0) || ((((_la - 2147)) & ~0x1F) === 0 && ((1 << (_la - 2147)) & 4293918719) !== 0) || ((((_la - 2179)) & ~0x1F) === 0 && ((1 << (_la - 2179)) & 4294965247) !== 0) || ((((_la - 2211)) & ~0x1F) === 0 && ((1 << (_la - 2211)) & 545) !== 0) || _la===2246 || _la===2252) {
				{
				this.state = 5502;
				this.index_name();
				}
			}

			this.state = 5505;
			this.match(PlSqlParser.LEFT_PAREN);
			this.state = 5509;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			do {
				{
				this.state = 5509;
				this._errHandler.sync(this);
				switch (this._input.LA(1)) {
				case 657:
				case 1227:
				case 1230:
				case 1593:
					{
					this.state = 5506;
					this.physical_attributes_clause();
					}
					break;
				case 1909:
					{
					this.state = 5507;
					this.match(PlSqlParser.TABLESPACE);
					this.state = 5508;
					this.tablespace();
					}
					break;
				default:
					throw new NoViableAltException(this);
				}
				}
				this.state = 5511;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			} while (_la===657 || _la===1227 || _la===1230 || _la===1593 || _la===1909);
			this.state = 5513;
			this.match(PlSqlParser.RIGHT_PAREN);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public oid_clause(): Oid_clauseContext {
		let localctx: Oid_clauseContext = new Oid_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 534, PlSqlParser.RULE_oid_clause);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 5515;
			this.match(PlSqlParser.OBJECT);
			this.state = 5516;
			this.match(PlSqlParser.IDENTIFIER);
			this.state = 5517;
			this.match(PlSqlParser.IS);
			this.state = 5522;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 1779:
				{
				this.state = 5518;
				this.match(PlSqlParser.SYSTEM);
				this.state = 5519;
				this.match(PlSqlParser.GENERATED);
				}
				break;
			case 1304:
				{
				this.state = 5520;
				this.match(PlSqlParser.PRIMARY);
				this.state = 5521;
				this.match(PlSqlParser.KEY);
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public object_properties(): Object_propertiesContext {
		let localctx: Object_propertiesContext = new Object_propertiesContext(this, this._ctx, this.state);
		this.enterRule(localctx, 536, PlSqlParser.RULE_object_properties);
		let _la: number;
		try {
			let _alt: number;
			this.state = 5546;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 621, this._ctx) ) {
			case 1:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 5526;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 617, this._ctx) ) {
				case 1:
					{
					this.state = 5524;
					this.column_name();
					}
					break;
				case 2:
					{
					this.state = 5525;
					this.attribute_name();
					}
					break;
				}
				this.state = 5530;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===351) {
					{
					this.state = 5528;
					this.match(PlSqlParser.DEFAULT);
					this.state = 5529;
					this.expression();
					}
				}

				this.state = 5541;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 620, this._ctx) ) {
				case 1:
					{
					this.state = 5532;
					this.inline_constraint();
					this.state = 5537;
					this._errHandler.sync(this);
					_alt = this._interp.adaptivePredict(this._input, 619, this._ctx);
					while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) {
						if (_alt === 1) {
							{
							{
							this.state = 5533;
							this.match(PlSqlParser.COMMA);
							this.state = 5534;
							this.inline_constraint();
							}
							}
						}
						this.state = 5539;
						this._errHandler.sync(this);
						_alt = this._interp.adaptivePredict(this._input, 619, this._ctx);
					}
					}
					break;
				case 2:
					{
					this.state = 5540;
					this.inline_ref_constraint();
					}
					break;
				}
				}
				break;
			case 2:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 5543;
				this.out_of_line_constraint();
				}
				break;
			case 3:
				this.enterOuterAlt(localctx, 3);
				{
				this.state = 5544;
				this.out_of_line_ref_constraint();
				}
				break;
			case 4:
				this.enterOuterAlt(localctx, 4);
				{
				this.state = 5545;
				this.supplemental_logging_props();
				}
				break;
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public object_table_substitution(): Object_table_substitutionContext {
		let localctx: Object_table_substitutionContext = new Object_table_substitutionContext(this, this._ctx, this.state);
		this.enterRule(localctx, 538, PlSqlParser.RULE_object_table_substitution);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 5549;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1073) {
				{
				this.state = 5548;
				this.match(PlSqlParser.NOT);
				}
			}

			this.state = 5551;
			this.match(PlSqlParser.SUBSTITUTABLE);
			this.state = 5552;
			this.match(PlSqlParser.AT);
			this.state = 5553;
			this.match(PlSqlParser.ALL);
			this.state = 5554;
			this.match(PlSqlParser.LEVELS);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public relational_table(): Relational_tableContext {
		let localctx: Relational_tableContext = new Relational_tableContext(this, this._ctx, this.state);
		this.enterRule(localctx, 540, PlSqlParser.RULE_relational_table);
		let _la: number;
		try {
			let _alt: number;
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 5567;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===2223) {
				{
				this.state = 5556;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 5557;
				this.relational_property();
				this.state = 5562;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===2229) {
					{
					{
					this.state = 5558;
					this.match(PlSqlParser.COMMA);
					this.state = 5559;
					this.relational_property();
					}
					}
					this.state = 5564;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				this.state = 5565;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
			}

			this.state = 5573;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1128) {
				{
				this.state = 5569;
				this.match(PlSqlParser.ON);
				this.state = 5570;
				this.match(PlSqlParser.COMMIT);
				this.state = 5571;
				_la = this._input.LA(1);
				if(!(_la===362 || _la===1300)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				this.state = 5572;
				this.match(PlSqlParser.ROWS);
				}
			}

			this.state = 5576;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===521 || _la===657 || _la===779 || _la===993 || _la===1227 || _la===1230 || _la===1488 || _la===1593 || _la===1909) {
				{
				this.state = 5575;
				this.physical_properties();
				}
			}

			this.state = 5579;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===213 || _la===765 || _la===895 || _la===2080 || _la===2162) {
				{
				this.state = 5578;
				this.column_properties();
				}
			}

			this.state = 5582;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1207) {
				{
				this.state = 5581;
				this.table_partitioning_clauses();
				}
			}

			this.state = 5585;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===150 || _la===946) {
				{
				this.state = 5584;
				_la = this._input.LA(1);
				if(!(_la===150 || _la===946)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				}
			}

			this.state = 5592;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1424) {
				{
				this.state = 5587;
				this.match(PlSqlParser.RESULT_CACHE);
				this.state = 5588;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 5589;
				this.match(PlSqlParser.MODE);
				this.state = 5590;
				_la = this._input.LA(1);
				if(!(_la===351 || _la===542)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				this.state = 5591;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
			}

			this.state = 5595;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1021 || _la===1195) {
				{
				this.state = 5594;
				this.parallel_clause();
				}
			}

			this.state = 5598;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1052 || _la===1444) {
				{
				this.state = 5597;
				_la = this._input.LA(1);
				if(!(_la===1052 || _la===1444)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				}
			}

			this.state = 5605;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 634, this._ctx) ) {
			case 1:
				{
				this.state = 5601;
				this._errHandler.sync(this);
				_alt = 1;
				do {
					switch (_alt) {
					case 1:
						{
						{
						this.state = 5600;
						this.enable_disable_clause();
						}
						}
						break;
					default:
						throw new NoViableAltException(this);
					}
					this.state = 5603;
					this._errHandler.sync(this);
					_alt = this._interp.adaptivePredict(this._input, 633, this._ctx);
				} while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER);
				}
				break;
			}
			this.state = 5608;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===383 || _la===439 || _la===1451) {
				{
				this.state = 5607;
				this.row_movement_clause();
				}
			}

			this.state = 5611;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===532 || _la===1010) {
				{
				this.state = 5610;
				this.flashback_archive_clause();
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public relational_property(): Relational_propertyContext {
		let localctx: Relational_propertyContext = new Relational_propertyContext(this, this._ctx, this.state);
		this.enterRule(localctx, 542, PlSqlParser.RULE_relational_property);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 5618;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 637, this._ctx) ) {
			case 1:
				{
				this.state = 5613;
				this.column_definition();
				}
				break;
			case 2:
				{
				this.state = 5614;
				this.virtual_column_definition();
				}
				break;
			case 3:
				{
				this.state = 5615;
				this.out_of_line_constraint();
				}
				break;
			case 4:
				{
				this.state = 5616;
				this.out_of_line_ref_constraint();
				}
				break;
			case 5:
				{
				this.state = 5617;
				this.supplemental_logging_props();
				}
				break;
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public table_partitioning_clauses(): Table_partitioning_clausesContext {
		let localctx: Table_partitioning_clausesContext = new Table_partitioning_clausesContext(this, this._ctx, this.state);
		this.enterRule(localctx, 544, PlSqlParser.RULE_table_partitioning_clauses);
		try {
			this.state = 5628;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 638, this._ctx) ) {
			case 1:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 5620;
				this.range_partitions();
				}
				break;
			case 2:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 5621;
				this.list_partitions();
				}
				break;
			case 3:
				this.enterOuterAlt(localctx, 3);
				{
				this.state = 5622;
				this.hash_partitions();
				}
				break;
			case 4:
				this.enterOuterAlt(localctx, 4);
				{
				this.state = 5623;
				this.composite_range_partitions();
				}
				break;
			case 5:
				this.enterOuterAlt(localctx, 5);
				{
				this.state = 5624;
				this.composite_list_partitions();
				}
				break;
			case 6:
				this.enterOuterAlt(localctx, 6);
				{
				this.state = 5625;
				this.composite_hash_partitions();
				}
				break;
			case 7:
				this.enterOuterAlt(localctx, 7);
				{
				this.state = 5626;
				this.reference_partitioning();
				}
				break;
			case 8:
				this.enterOuterAlt(localctx, 8);
				{
				this.state = 5627;
				this.system_partitioning();
				}
				break;
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public range_partitions(): Range_partitionsContext {
		let localctx: Range_partitionsContext = new Range_partitionsContext(this, this._ctx, this.state);
		this.enterRule(localctx, 546, PlSqlParser.RULE_range_partitions);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 5630;
			this.match(PlSqlParser.PARTITION);
			this.state = 5631;
			this.match(PlSqlParser.BY);
			this.state = 5632;
			this.match(PlSqlParser.RANGE);
			this.state = 5633;
			this.match(PlSqlParser.LEFT_PAREN);
			this.state = 5634;
			this.column_name();
			this.state = 5639;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			while (_la===2229) {
				{
				{
				this.state = 5635;
				this.match(PlSqlParser.COMMA);
				this.state = 5636;
				this.column_name();
				}
				}
				this.state = 5641;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			}
			this.state = 5642;
			this.match(PlSqlParser.RIGHT_PAREN);
			this.state = 5662;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===689) {
				{
				this.state = 5643;
				this.match(PlSqlParser.INTERVAL);
				this.state = 5644;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 5645;
				this.expression();
				this.state = 5646;
				this.match(PlSqlParser.RIGHT_PAREN);
				this.state = 5660;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===1594) {
					{
					this.state = 5647;
					this.match(PlSqlParser.STORE);
					this.state = 5648;
					this.match(PlSqlParser.IN);
					this.state = 5649;
					this.match(PlSqlParser.LEFT_PAREN);
					this.state = 5650;
					this.tablespace();
					this.state = 5655;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
					while (_la===2229) {
						{
						{
						this.state = 5651;
						this.match(PlSqlParser.COMMA);
						this.state = 5652;
						this.tablespace();
						}
						}
						this.state = 5657;
						this._errHandler.sync(this);
						_la = this._input.LA(1);
					}
					this.state = 5658;
					this.match(PlSqlParser.RIGHT_PAREN);
					}
				}

				}
			}

			this.state = 5664;
			this.match(PlSqlParser.LEFT_PAREN);
			this.state = 5665;
			this.match(PlSqlParser.PARTITION);
			this.state = 5667;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & 2684286839) !== 0) || ((((_la - 64)) & ~0x1F) === 0 && ((1 << (_la - 64)) & 3220168703) !== 0) || ((((_la - 96)) & ~0x1F) === 0 && ((1 << (_la - 96)) & 4294965247) !== 0) || ((((_la - 128)) & ~0x1F) === 0 && ((1 << (_la - 128)) & 2147221503) !== 0) || ((((_la - 160)) & ~0x1F) === 0 && ((1 << (_la - 160)) & 4293910527) !== 0) || ((((_la - 192)) & ~0x1F) === 0 && ((1 << (_la - 192)) & 4294967295) !== 0) || ((((_la - 224)) & ~0x1F) === 0 && ((1 << (_la - 224)) & 4160749311) !== 0) || ((((_la - 256)) & ~0x1F) === 0 && ((1 << (_la - 256)) & 4294967295) !== 0) || ((((_la - 289)) & ~0x1F) === 0 && ((1 << (_la - 289)) & 2147483647) !== 0) || ((((_la - 321)) & ~0x1F) === 0 && ((1 << (_la - 321)) & 3221225407) !== 0) || ((((_la - 353)) & ~0x1F) === 0 && ((1 << (_la - 353)) & 4294705151) !== 0) || ((((_la - 385)) & ~0x1F) === 0 && ((1 << (_la - 385)) & 2080372479) !== 0) || ((((_la - 417)) & ~0x1F) === 0 && ((1 << (_la - 417)) & 4026433535) !== 0) || ((((_la - 449)) & ~0x1F) === 0 && ((1 << (_la - 449)) & 4261412863) !== 0) || ((((_la - 481)) & ~0x1F) === 0 && ((1 << (_la - 481)) & 4294967295) !== 0) || ((((_la - 513)) & ~0x1F) === 0 && ((1 << (_la - 513)) & 4294967295) !== 0) || ((((_la - 545)) & ~0x1F) === 0 && ((1 << (_la - 545)) & 3925868029) !== 0) || ((((_la - 577)) & ~0x1F) === 0 && ((1 << (_la - 577)) & 4278189823) !== 0) || ((((_la - 609)) & ~0x1F) === 0 && ((1 << (_la - 609)) & 4290772991) !== 0) || ((((_la - 641)) & ~0x1F) === 0 && ((1 << (_la - 641)) & 4026529791) !== 0) || ((((_la - 673)) & ~0x1F) === 0 && ((1 << (_la - 673)) & 4290478079) !== 0) || ((((_la - 705)) & ~0x1F) === 0 && ((1 << (_la - 705)) & 4294967295) !== 0) || ((((_la - 737)) & ~0x1F) === 0 && ((1 << (_la - 737)) & 4293918719) !== 0) || ((((_la - 769)) & ~0x1F) === 0 && ((1 << (_la - 769)) & 4294967167) !== 0) || ((((_la - 801)) & ~0x1F) === 0 && ((1 << (_la - 801)) & 4294967295) !== 0) || ((((_la - 833)) & ~0x1F) === 0 && ((1 << (_la - 833)) & 4160749055) !== 0) || ((((_la - 865)) & ~0x1F) === 0 && ((1 << (_la - 865)) & 4290772991) !== 0) || ((((_la - 897)) & ~0x1F) === 0 && ((1 << (_la - 897)) & 4294967295) !== 0) || ((((_la - 929)) & ~0x1F) === 0 && ((1 << (_la - 929)) & 4278190079) !== 0) || ((((_la - 961)) & ~0x1F) === 0 && ((1 << (_la - 961)) & 4294967295) !== 0) || ((((_la - 993)) & ~0x1F) === 0 && ((1 << (_la - 993)) & 4294967295) !== 0) || ((((_la - 1025)) & ~0x1F) === 0 && ((1 << (_la - 1025)) & 4294967295) !== 0) || ((((_la - 1057)) & ~0x1F) === 0 && ((1 << (_la - 1057)) & 2147418111) !== 0) || ((((_la - 1089)) & ~0x1F) === 0 && ((1 << (_la - 1089)) & 4227858175) !== 0) || ((((_la - 1121)) & ~0x1F) === 0 && ((1 << (_la - 1121)) & 4293918559) !== 0) || ((((_la - 1153)) & ~0x1F) === 0 && ((1 << (_la - 1153)) & 4294410239) !== 0) || ((((_la - 1185)) & ~0x1F) === 0 && ((1 << (_la - 1185)) & 4294965247) !== 0) || ((((_la - 1217)) & ~0x1F) === 0 && ((1 << (_la - 1217)) & 4279827455) !== 0) || ((((_la - 1249)) & ~0x1F) === 0 && ((1 << (_la - 1249)) & 4294967291) !== 0) || ((((_la - 1281)) & ~0x1F) === 0 && ((1 << (_la - 1281)) & 4227858431) !== 0) || ((((_la - 1313)) & ~0x1F) === 0 && ((1 << (_la - 1313)) & 4294965247) !== 0) || ((((_la - 1345)) & ~0x1F) === 0 && ((1 << (_la - 1345)) & 4294967295) !== 0) || ((((_la - 1377)) & ~0x1F) === 0 && ((1 << (_la - 1377)) & 4292870143) !== 0) || ((((_la - 1409)) & ~0x1F) === 0 && ((1 << (_la - 1409)) & 4261412799) !== 0) || ((((_la - 1441)) & ~0x1F) === 0 && ((1 << (_la - 1441)) & 4294967295) !== 0) || ((((_la - 1473)) & ~0x1F) === 0 && ((1 << (_la - 1473)) & 4261281791) !== 0) || ((((_la - 1505)) & ~0x1F) === 0 && ((1 << (_la - 1505)) & 3221221375) !== 0) || ((((_la - 1537)) & ~0x1F) === 0 && ((1 << (_la - 1537)) & 4294967295) !== 0) || ((((_la - 1570)) & ~0x1F) === 0 && ((1 << (_la - 1570)) & 4294967295) !== 0) || ((((_la - 1602)) & ~0x1F) === 0 && ((1 << (_la - 1602)) & 4261412863) !== 0) || ((((_la - 1634)) & ~0x1F) === 0 && ((1 << (_la - 1634)) & 4294967295) !== 0) || ((((_la - 1666)) & ~0x1F) === 0 && ((1 << (_la - 1666)) & 4294967295) !== 0) || ((((_la - 1698)) & ~0x1F) === 0 && ((1 << (_la - 1698)) & 4294967295) !== 0) || ((((_la - 1730)) & ~0x1F) === 0 && ((1 << (_la - 1730)) & 4294967295) !== 0) || ((((_la - 1762)) & ~0x1F) === 0 && ((1 << (_la - 1762)) & 4294967295) !== 0) || ((((_la - 1794)) & ~0x1F) === 0 && ((1 << (_la - 1794)) & 4294967295) !== 0) || ((((_la - 1826)) & ~0x1F) === 0 && ((1 << (_la - 1826)) & 4294967295) !== 0) || ((((_la - 1858)) & ~0x1F) === 0 && ((1 << (_la - 1858)) & 4294967295) !== 0) || ((((_la - 1890)) & ~0x1F) === 0 && ((1 << (_la - 1890)) & 4294967295) !== 0) || ((((_la - 1922)) & ~0x1F) === 0 && ((1 << (_la - 1922)) & 4294901759) !== 0) || ((((_la - 1954)) & ~0x1F) === 0 && ((1 << (_la - 1954)) & 4294966271) !== 0) || ((((_la - 1986)) & ~0x1F) === 0 && ((1 << (_la - 1986)) & 4294868991) !== 0) || ((((_la - 2018)) & ~0x1F) === 0 && ((1 << (_la - 2018)) & 4294967167) !== 0) || ((((_la - 2050)) & ~0x1F) === 0 && ((1 << (_la - 2050)) & 4286578687) !== 0) || ((((_la - 2082)) & ~0x1F) === 0 && ((1 << (_la - 2082)) & 4294836223) !== 0) || ((((_la - 2115)) & ~0x1F) === 0 && ((1 << (_la - 2115)) & 3758092223) !== 0) || ((((_la - 2147)) & ~0x1F) === 0 && ((1 << (_la - 2147)) & 4293918719) !== 0) || ((((_la - 2179)) & ~0x1F) === 0 && ((1 << (_la - 2179)) & 4294965247) !== 0) || _la===2211 || _la===2216 || _la===2252) {
				{
				this.state = 5666;
				this.partition_name();
				}
			}

			this.state = 5669;
			this.range_values_clause();
			this.state = 5670;
			this.table_partition_description();
			this.state = 5681;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			while (_la===2229) {
				{
				{
				this.state = 5671;
				this.match(PlSqlParser.COMMA);
				this.state = 5672;
				this.match(PlSqlParser.PARTITION);
				this.state = 5674;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & 2684286839) !== 0) || ((((_la - 64)) & ~0x1F) === 0 && ((1 << (_la - 64)) & 3220168703) !== 0) || ((((_la - 96)) & ~0x1F) === 0 && ((1 << (_la - 96)) & 4294965247) !== 0) || ((((_la - 128)) & ~0x1F) === 0 && ((1 << (_la - 128)) & 2147221503) !== 0) || ((((_la - 160)) & ~0x1F) === 0 && ((1 << (_la - 160)) & 4293910527) !== 0) || ((((_la - 192)) & ~0x1F) === 0 && ((1 << (_la - 192)) & 4294967295) !== 0) || ((((_la - 224)) & ~0x1F) === 0 && ((1 << (_la - 224)) & 4160749311) !== 0) || ((((_la - 256)) & ~0x1F) === 0 && ((1 << (_la - 256)) & 4294967295) !== 0) || ((((_la - 289)) & ~0x1F) === 0 && ((1 << (_la - 289)) & 2147483647) !== 0) || ((((_la - 321)) & ~0x1F) === 0 && ((1 << (_la - 321)) & 3221225407) !== 0) || ((((_la - 353)) & ~0x1F) === 0 && ((1 << (_la - 353)) & 4294705151) !== 0) || ((((_la - 385)) & ~0x1F) === 0 && ((1 << (_la - 385)) & 2080372479) !== 0) || ((((_la - 417)) & ~0x1F) === 0 && ((1 << (_la - 417)) & 4026433535) !== 0) || ((((_la - 449)) & ~0x1F) === 0 && ((1 << (_la - 449)) & 4261412863) !== 0) || ((((_la - 481)) & ~0x1F) === 0 && ((1 << (_la - 481)) & 4294967295) !== 0) || ((((_la - 513)) & ~0x1F) === 0 && ((1 << (_la - 513)) & 4294967295) !== 0) || ((((_la - 545)) & ~0x1F) === 0 && ((1 << (_la - 545)) & 3925868029) !== 0) || ((((_la - 577)) & ~0x1F) === 0 && ((1 << (_la - 577)) & 4278189823) !== 0) || ((((_la - 609)) & ~0x1F) === 0 && ((1 << (_la - 609)) & 4290772991) !== 0) || ((((_la - 641)) & ~0x1F) === 0 && ((1 << (_la - 641)) & 4026529791) !== 0) || ((((_la - 673)) & ~0x1F) === 0 && ((1 << (_la - 673)) & 4290478079) !== 0) || ((((_la - 705)) & ~0x1F) === 0 && ((1 << (_la - 705)) & 4294967295) !== 0) || ((((_la - 737)) & ~0x1F) === 0 && ((1 << (_la - 737)) & 4293918719) !== 0) || ((((_la - 769)) & ~0x1F) === 0 && ((1 << (_la - 769)) & 4294967167) !== 0) || ((((_la - 801)) & ~0x1F) === 0 && ((1 << (_la - 801)) & 4294967295) !== 0) || ((((_la - 833)) & ~0x1F) === 0 && ((1 << (_la - 833)) & 4160749055) !== 0) || ((((_la - 865)) & ~0x1F) === 0 && ((1 << (_la - 865)) & 4290772991) !== 0) || ((((_la - 897)) & ~0x1F) === 0 && ((1 << (_la - 897)) & 4294967295) !== 0) || ((((_la - 929)) & ~0x1F) === 0 && ((1 << (_la - 929)) & 4278190079) !== 0) || ((((_la - 961)) & ~0x1F) === 0 && ((1 << (_la - 961)) & 4294967295) !== 0) || ((((_la - 993)) & ~0x1F) === 0 && ((1 << (_la - 993)) & 4294967295) !== 0) || ((((_la - 1025)) & ~0x1F) === 0 && ((1 << (_la - 1025)) & 4294967295) !== 0) || ((((_la - 1057)) & ~0x1F) === 0 && ((1 << (_la - 1057)) & 2147418111) !== 0) || ((((_la - 1089)) & ~0x1F) === 0 && ((1 << (_la - 1089)) & 4227858175) !== 0) || ((((_la - 1121)) & ~0x1F) === 0 && ((1 << (_la - 1121)) & 4293918559) !== 0) || ((((_la - 1153)) & ~0x1F) === 0 && ((1 << (_la - 1153)) & 4294410239) !== 0) || ((((_la - 1185)) & ~0x1F) === 0 && ((1 << (_la - 1185)) & 4294965247) !== 0) || ((((_la - 1217)) & ~0x1F) === 0 && ((1 << (_la - 1217)) & 4279827455) !== 0) || ((((_la - 1249)) & ~0x1F) === 0 && ((1 << (_la - 1249)) & 4294967291) !== 0) || ((((_la - 1281)) & ~0x1F) === 0 && ((1 << (_la - 1281)) & 4227858431) !== 0) || ((((_la - 1313)) & ~0x1F) === 0 && ((1 << (_la - 1313)) & 4294965247) !== 0) || ((((_la - 1345)) & ~0x1F) === 0 && ((1 << (_la - 1345)) & 4294967295) !== 0) || ((((_la - 1377)) & ~0x1F) === 0 && ((1 << (_la - 1377)) & 4292870143) !== 0) || ((((_la - 1409)) & ~0x1F) === 0 && ((1 << (_la - 1409)) & 4261412799) !== 0) || ((((_la - 1441)) & ~0x1F) === 0 && ((1 << (_la - 1441)) & 4294967295) !== 0) || ((((_la - 1473)) & ~0x1F) === 0 && ((1 << (_la - 1473)) & 4261281791) !== 0) || ((((_la - 1505)) & ~0x1F) === 0 && ((1 << (_la - 1505)) & 3221221375) !== 0) || ((((_la - 1537)) & ~0x1F) === 0 && ((1 << (_la - 1537)) & 4294967295) !== 0) || ((((_la - 1570)) & ~0x1F) === 0 && ((1 << (_la - 1570)) & 4294967295) !== 0) || ((((_la - 1602)) & ~0x1F) === 0 && ((1 << (_la - 1602)) & 4261412863) !== 0) || ((((_la - 1634)) & ~0x1F) === 0 && ((1 << (_la - 1634)) & 4294967295) !== 0) || ((((_la - 1666)) & ~0x1F) === 0 && ((1 << (_la - 1666)) & 4294967295) !== 0) || ((((_la - 1698)) & ~0x1F) === 0 && ((1 << (_la - 1698)) & 4294967295) !== 0) || ((((_la - 1730)) & ~0x1F) === 0 && ((1 << (_la - 1730)) & 4294967295) !== 0) || ((((_la - 1762)) & ~0x1F) === 0 && ((1 << (_la - 1762)) & 4294967295) !== 0) || ((((_la - 1794)) & ~0x1F) === 0 && ((1 << (_la - 1794)) & 4294967295) !== 0) || ((((_la - 1826)) & ~0x1F) === 0 && ((1 << (_la - 1826)) & 4294967295) !== 0) || ((((_la - 1858)) & ~0x1F) === 0 && ((1 << (_la - 1858)) & 4294967295) !== 0) || ((((_la - 1890)) & ~0x1F) === 0 && ((1 << (_la - 1890)) & 4294967295) !== 0) || ((((_la - 1922)) & ~0x1F) === 0 && ((1 << (_la - 1922)) & 4294901759) !== 0) || ((((_la - 1954)) & ~0x1F) === 0 && ((1 << (_la - 1954)) & 4294966271) !== 0) || ((((_la - 1986)) & ~0x1F) === 0 && ((1 << (_la - 1986)) & 4294868991) !== 0) || ((((_la - 2018)) & ~0x1F) === 0 && ((1 << (_la - 2018)) & 4294967167) !== 0) || ((((_la - 2050)) & ~0x1F) === 0 && ((1 << (_la - 2050)) & 4286578687) !== 0) || ((((_la - 2082)) & ~0x1F) === 0 && ((1 << (_la - 2082)) & 4294836223) !== 0) || ((((_la - 2115)) & ~0x1F) === 0 && ((1 << (_la - 2115)) & 3758092223) !== 0) || ((((_la - 2147)) & ~0x1F) === 0 && ((1 << (_la - 2147)) & 4293918719) !== 0) || ((((_la - 2179)) & ~0x1F) === 0 && ((1 << (_la - 2179)) & 4294965247) !== 0) || _la===2211 || _la===2216 || _la===2252) {
					{
					this.state = 5673;
					this.partition_name();
					}
				}

				this.state = 5676;
				this.range_values_clause();
				this.state = 5677;
				this.table_partition_description();
				}
				}
				this.state = 5683;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			}
			this.state = 5684;
			this.match(PlSqlParser.RIGHT_PAREN);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public list_partitions(): List_partitionsContext {
		let localctx: List_partitionsContext = new List_partitionsContext(this, this._ctx, this.state);
		this.enterRule(localctx, 548, PlSqlParser.RULE_list_partitions);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 5686;
			this.match(PlSqlParser.PARTITION);
			this.state = 5687;
			this.match(PlSqlParser.BY);
			this.state = 5688;
			this.match(PlSqlParser.LIST);
			this.state = 5689;
			this.match(PlSqlParser.LEFT_PAREN);
			this.state = 5690;
			this.column_name();
			this.state = 5691;
			this.match(PlSqlParser.RIGHT_PAREN);
			this.state = 5692;
			this.match(PlSqlParser.LEFT_PAREN);
			this.state = 5693;
			this.match(PlSqlParser.PARTITION);
			this.state = 5695;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & 2684286839) !== 0) || ((((_la - 64)) & ~0x1F) === 0 && ((1 << (_la - 64)) & 3220168703) !== 0) || ((((_la - 96)) & ~0x1F) === 0 && ((1 << (_la - 96)) & 4294965247) !== 0) || ((((_la - 128)) & ~0x1F) === 0 && ((1 << (_la - 128)) & 2147221503) !== 0) || ((((_la - 160)) & ~0x1F) === 0 && ((1 << (_la - 160)) & 4293910527) !== 0) || ((((_la - 192)) & ~0x1F) === 0 && ((1 << (_la - 192)) & 4294967295) !== 0) || ((((_la - 224)) & ~0x1F) === 0 && ((1 << (_la - 224)) & 4160749311) !== 0) || ((((_la - 256)) & ~0x1F) === 0 && ((1 << (_la - 256)) & 4294967295) !== 0) || ((((_la - 289)) & ~0x1F) === 0 && ((1 << (_la - 289)) & 2147483647) !== 0) || ((((_la - 321)) & ~0x1F) === 0 && ((1 << (_la - 321)) & 3221225407) !== 0) || ((((_la - 353)) & ~0x1F) === 0 && ((1 << (_la - 353)) & 4294705151) !== 0) || ((((_la - 385)) & ~0x1F) === 0 && ((1 << (_la - 385)) & 2080372479) !== 0) || ((((_la - 417)) & ~0x1F) === 0 && ((1 << (_la - 417)) & 4026433535) !== 0) || ((((_la - 449)) & ~0x1F) === 0 && ((1 << (_la - 449)) & 4261412863) !== 0) || ((((_la - 481)) & ~0x1F) === 0 && ((1 << (_la - 481)) & 4294967295) !== 0) || ((((_la - 513)) & ~0x1F) === 0 && ((1 << (_la - 513)) & 4294967295) !== 0) || ((((_la - 545)) & ~0x1F) === 0 && ((1 << (_la - 545)) & 3925868029) !== 0) || ((((_la - 577)) & ~0x1F) === 0 && ((1 << (_la - 577)) & 4278189823) !== 0) || ((((_la - 609)) & ~0x1F) === 0 && ((1 << (_la - 609)) & 4290772991) !== 0) || ((((_la - 641)) & ~0x1F) === 0 && ((1 << (_la - 641)) & 4026529791) !== 0) || ((((_la - 673)) & ~0x1F) === 0 && ((1 << (_la - 673)) & 4290478079) !== 0) || ((((_la - 705)) & ~0x1F) === 0 && ((1 << (_la - 705)) & 4294967295) !== 0) || ((((_la - 737)) & ~0x1F) === 0 && ((1 << (_la - 737)) & 4293918719) !== 0) || ((((_la - 769)) & ~0x1F) === 0 && ((1 << (_la - 769)) & 4294967167) !== 0) || ((((_la - 801)) & ~0x1F) === 0 && ((1 << (_la - 801)) & 4294967295) !== 0) || ((((_la - 833)) & ~0x1F) === 0 && ((1 << (_la - 833)) & 4160749055) !== 0) || ((((_la - 865)) & ~0x1F) === 0 && ((1 << (_la - 865)) & 4290772991) !== 0) || ((((_la - 897)) & ~0x1F) === 0 && ((1 << (_la - 897)) & 4294967295) !== 0) || ((((_la - 929)) & ~0x1F) === 0 && ((1 << (_la - 929)) & 4278190079) !== 0) || ((((_la - 961)) & ~0x1F) === 0 && ((1 << (_la - 961)) & 4294967295) !== 0) || ((((_la - 993)) & ~0x1F) === 0 && ((1 << (_la - 993)) & 4294967295) !== 0) || ((((_la - 1025)) & ~0x1F) === 0 && ((1 << (_la - 1025)) & 4294967295) !== 0) || ((((_la - 1057)) & ~0x1F) === 0 && ((1 << (_la - 1057)) & 2147418111) !== 0) || ((((_la - 1089)) & ~0x1F) === 0 && ((1 << (_la - 1089)) & 4227858175) !== 0) || ((((_la - 1121)) & ~0x1F) === 0 && ((1 << (_la - 1121)) & 4293918559) !== 0) || ((((_la - 1153)) & ~0x1F) === 0 && ((1 << (_la - 1153)) & 4294410239) !== 0) || ((((_la - 1185)) & ~0x1F) === 0 && ((1 << (_la - 1185)) & 4294965247) !== 0) || ((((_la - 1217)) & ~0x1F) === 0 && ((1 << (_la - 1217)) & 4279827455) !== 0) || ((((_la - 1249)) & ~0x1F) === 0 && ((1 << (_la - 1249)) & 4294967291) !== 0) || ((((_la - 1281)) & ~0x1F) === 0 && ((1 << (_la - 1281)) & 4227858431) !== 0) || ((((_la - 1313)) & ~0x1F) === 0 && ((1 << (_la - 1313)) & 4294965247) !== 0) || ((((_la - 1345)) & ~0x1F) === 0 && ((1 << (_la - 1345)) & 4294967295) !== 0) || ((((_la - 1377)) & ~0x1F) === 0 && ((1 << (_la - 1377)) & 4292870143) !== 0) || ((((_la - 1409)) & ~0x1F) === 0 && ((1 << (_la - 1409)) & 4261412799) !== 0) || ((((_la - 1441)) & ~0x1F) === 0 && ((1 << (_la - 1441)) & 4294967295) !== 0) || ((((_la - 1473)) & ~0x1F) === 0 && ((1 << (_la - 1473)) & 4261281791) !== 0) || ((((_la - 1505)) & ~0x1F) === 0 && ((1 << (_la - 1505)) & 3221221375) !== 0) || ((((_la - 1537)) & ~0x1F) === 0 && ((1 << (_la - 1537)) & 4294967295) !== 0) || ((((_la - 1570)) & ~0x1F) === 0 && ((1 << (_la - 1570)) & 4294967295) !== 0) || ((((_la - 1602)) & ~0x1F) === 0 && ((1 << (_la - 1602)) & 4261412863) !== 0) || ((((_la - 1634)) & ~0x1F) === 0 && ((1 << (_la - 1634)) & 4294967295) !== 0) || ((((_la - 1666)) & ~0x1F) === 0 && ((1 << (_la - 1666)) & 4294967295) !== 0) || ((((_la - 1698)) & ~0x1F) === 0 && ((1 << (_la - 1698)) & 4294967295) !== 0) || ((((_la - 1730)) & ~0x1F) === 0 && ((1 << (_la - 1730)) & 4294967295) !== 0) || ((((_la - 1762)) & ~0x1F) === 0 && ((1 << (_la - 1762)) & 4294967295) !== 0) || ((((_la - 1794)) & ~0x1F) === 0 && ((1 << (_la - 1794)) & 4294967295) !== 0) || ((((_la - 1826)) & ~0x1F) === 0 && ((1 << (_la - 1826)) & 4294967295) !== 0) || ((((_la - 1858)) & ~0x1F) === 0 && ((1 << (_la - 1858)) & 4294967295) !== 0) || ((((_la - 1890)) & ~0x1F) === 0 && ((1 << (_la - 1890)) & 4294967295) !== 0) || ((((_la - 1922)) & ~0x1F) === 0 && ((1 << (_la - 1922)) & 4294901759) !== 0) || ((((_la - 1954)) & ~0x1F) === 0 && ((1 << (_la - 1954)) & 4294966271) !== 0) || ((((_la - 1986)) & ~0x1F) === 0 && ((1 << (_la - 1986)) & 4294868991) !== 0) || ((((_la - 2018)) & ~0x1F) === 0 && ((1 << (_la - 2018)) & 4294967167) !== 0) || ((((_la - 2050)) & ~0x1F) === 0 && ((1 << (_la - 2050)) & 4286578687) !== 0) || ((((_la - 2082)) & ~0x1F) === 0 && ((1 << (_la - 2082)) & 4294836223) !== 0) || ((((_la - 2115)) & ~0x1F) === 0 && ((1 << (_la - 2115)) & 3758092223) !== 0) || ((((_la - 2147)) & ~0x1F) === 0 && ((1 << (_la - 2147)) & 4293918719) !== 0) || ((((_la - 2179)) & ~0x1F) === 0 && ((1 << (_la - 2179)) & 4294965247) !== 0) || _la===2211 || _la===2216 || _la===2252) {
				{
				this.state = 5694;
				this.partition_name();
				}
			}

			this.state = 5697;
			this.list_values_clause();
			this.state = 5698;
			this.table_partition_description();
			this.state = 5709;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			while (_la===2229) {
				{
				{
				this.state = 5699;
				this.match(PlSqlParser.COMMA);
				this.state = 5700;
				this.match(PlSqlParser.PARTITION);
				this.state = 5702;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & 2684286839) !== 0) || ((((_la - 64)) & ~0x1F) === 0 && ((1 << (_la - 64)) & 3220168703) !== 0) || ((((_la - 96)) & ~0x1F) === 0 && ((1 << (_la - 96)) & 4294965247) !== 0) || ((((_la - 128)) & ~0x1F) === 0 && ((1 << (_la - 128)) & 2147221503) !== 0) || ((((_la - 160)) & ~0x1F) === 0 && ((1 << (_la - 160)) & 4293910527) !== 0) || ((((_la - 192)) & ~0x1F) === 0 && ((1 << (_la - 192)) & 4294967295) !== 0) || ((((_la - 224)) & ~0x1F) === 0 && ((1 << (_la - 224)) & 4160749311) !== 0) || ((((_la - 256)) & ~0x1F) === 0 && ((1 << (_la - 256)) & 4294967295) !== 0) || ((((_la - 289)) & ~0x1F) === 0 && ((1 << (_la - 289)) & 2147483647) !== 0) || ((((_la - 321)) & ~0x1F) === 0 && ((1 << (_la - 321)) & 3221225407) !== 0) || ((((_la - 353)) & ~0x1F) === 0 && ((1 << (_la - 353)) & 4294705151) !== 0) || ((((_la - 385)) & ~0x1F) === 0 && ((1 << (_la - 385)) & 2080372479) !== 0) || ((((_la - 417)) & ~0x1F) === 0 && ((1 << (_la - 417)) & 4026433535) !== 0) || ((((_la - 449)) & ~0x1F) === 0 && ((1 << (_la - 449)) & 4261412863) !== 0) || ((((_la - 481)) & ~0x1F) === 0 && ((1 << (_la - 481)) & 4294967295) !== 0) || ((((_la - 513)) & ~0x1F) === 0 && ((1 << (_la - 513)) & 4294967295) !== 0) || ((((_la - 545)) & ~0x1F) === 0 && ((1 << (_la - 545)) & 3925868029) !== 0) || ((((_la - 577)) & ~0x1F) === 0 && ((1 << (_la - 577)) & 4278189823) !== 0) || ((((_la - 609)) & ~0x1F) === 0 && ((1 << (_la - 609)) & 4290772991) !== 0) || ((((_la - 641)) & ~0x1F) === 0 && ((1 << (_la - 641)) & 4026529791) !== 0) || ((((_la - 673)) & ~0x1F) === 0 && ((1 << (_la - 673)) & 4290478079) !== 0) || ((((_la - 705)) & ~0x1F) === 0 && ((1 << (_la - 705)) & 4294967295) !== 0) || ((((_la - 737)) & ~0x1F) === 0 && ((1 << (_la - 737)) & 4293918719) !== 0) || ((((_la - 769)) & ~0x1F) === 0 && ((1 << (_la - 769)) & 4294967167) !== 0) || ((((_la - 801)) & ~0x1F) === 0 && ((1 << (_la - 801)) & 4294967295) !== 0) || ((((_la - 833)) & ~0x1F) === 0 && ((1 << (_la - 833)) & 4160749055) !== 0) || ((((_la - 865)) & ~0x1F) === 0 && ((1 << (_la - 865)) & 4290772991) !== 0) || ((((_la - 897)) & ~0x1F) === 0 && ((1 << (_la - 897)) & 4294967295) !== 0) || ((((_la - 929)) & ~0x1F) === 0 && ((1 << (_la - 929)) & 4278190079) !== 0) || ((((_la - 961)) & ~0x1F) === 0 && ((1 << (_la - 961)) & 4294967295) !== 0) || ((((_la - 993)) & ~0x1F) === 0 && ((1 << (_la - 993)) & 4294967295) !== 0) || ((((_la - 1025)) & ~0x1F) === 0 && ((1 << (_la - 1025)) & 4294967295) !== 0) || ((((_la - 1057)) & ~0x1F) === 0 && ((1 << (_la - 1057)) & 2147418111) !== 0) || ((((_la - 1089)) & ~0x1F) === 0 && ((1 << (_la - 1089)) & 4227858175) !== 0) || ((((_la - 1121)) & ~0x1F) === 0 && ((1 << (_la - 1121)) & 4293918559) !== 0) || ((((_la - 1153)) & ~0x1F) === 0 && ((1 << (_la - 1153)) & 4294410239) !== 0) || ((((_la - 1185)) & ~0x1F) === 0 && ((1 << (_la - 1185)) & 4294965247) !== 0) || ((((_la - 1217)) & ~0x1F) === 0 && ((1 << (_la - 1217)) & 4279827455) !== 0) || ((((_la - 1249)) & ~0x1F) === 0 && ((1 << (_la - 1249)) & 4294967291) !== 0) || ((((_la - 1281)) & ~0x1F) === 0 && ((1 << (_la - 1281)) & 4227858431) !== 0) || ((((_la - 1313)) & ~0x1F) === 0 && ((1 << (_la - 1313)) & 4294965247) !== 0) || ((((_la - 1345)) & ~0x1F) === 0 && ((1 << (_la - 1345)) & 4294967295) !== 0) || ((((_la - 1377)) & ~0x1F) === 0 && ((1 << (_la - 1377)) & 4292870143) !== 0) || ((((_la - 1409)) & ~0x1F) === 0 && ((1 << (_la - 1409)) & 4261412799) !== 0) || ((((_la - 1441)) & ~0x1F) === 0 && ((1 << (_la - 1441)) & 4294967295) !== 0) || ((((_la - 1473)) & ~0x1F) === 0 && ((1 << (_la - 1473)) & 4261281791) !== 0) || ((((_la - 1505)) & ~0x1F) === 0 && ((1 << (_la - 1505)) & 3221221375) !== 0) || ((((_la - 1537)) & ~0x1F) === 0 && ((1 << (_la - 1537)) & 4294967295) !== 0) || ((((_la - 1570)) & ~0x1F) === 0 && ((1 << (_la - 1570)) & 4294967295) !== 0) || ((((_la - 1602)) & ~0x1F) === 0 && ((1 << (_la - 1602)) & 4261412863) !== 0) || ((((_la - 1634)) & ~0x1F) === 0 && ((1 << (_la - 1634)) & 4294967295) !== 0) || ((((_la - 1666)) & ~0x1F) === 0 && ((1 << (_la - 1666)) & 4294967295) !== 0) || ((((_la - 1698)) & ~0x1F) === 0 && ((1 << (_la - 1698)) & 4294967295) !== 0) || ((((_la - 1730)) & ~0x1F) === 0 && ((1 << (_la - 1730)) & 4294967295) !== 0) || ((((_la - 1762)) & ~0x1F) === 0 && ((1 << (_la - 1762)) & 4294967295) !== 0) || ((((_la - 1794)) & ~0x1F) === 0 && ((1 << (_la - 1794)) & 4294967295) !== 0) || ((((_la - 1826)) & ~0x1F) === 0 && ((1 << (_la - 1826)) & 4294967295) !== 0) || ((((_la - 1858)) & ~0x1F) === 0 && ((1 << (_la - 1858)) & 4294967295) !== 0) || ((((_la - 1890)) & ~0x1F) === 0 && ((1 << (_la - 1890)) & 4294967295) !== 0) || ((((_la - 1922)) & ~0x1F) === 0 && ((1 << (_la - 1922)) & 4294901759) !== 0) || ((((_la - 1954)) & ~0x1F) === 0 && ((1 << (_la - 1954)) & 4294966271) !== 0) || ((((_la - 1986)) & ~0x1F) === 0 && ((1 << (_la - 1986)) & 4294868991) !== 0) || ((((_la - 2018)) & ~0x1F) === 0 && ((1 << (_la - 2018)) & 4294967167) !== 0) || ((((_la - 2050)) & ~0x1F) === 0 && ((1 << (_la - 2050)) & 4286578687) !== 0) || ((((_la - 2082)) & ~0x1F) === 0 && ((1 << (_la - 2082)) & 4294836223) !== 0) || ((((_la - 2115)) & ~0x1F) === 0 && ((1 << (_la - 2115)) & 3758092223) !== 0) || ((((_la - 2147)) & ~0x1F) === 0 && ((1 << (_la - 2147)) & 4293918719) !== 0) || ((((_la - 2179)) & ~0x1F) === 0 && ((1 << (_la - 2179)) & 4294965247) !== 0) || _la===2211 || _la===2216 || _la===2252) {
					{
					this.state = 5701;
					this.partition_name();
					}
				}

				this.state = 5704;
				this.list_values_clause();
				this.state = 5705;
				this.table_partition_description();
				}
				}
				this.state = 5711;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			}
			this.state = 5712;
			this.match(PlSqlParser.RIGHT_PAREN);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public hash_partitions(): Hash_partitionsContext {
		let localctx: Hash_partitionsContext = new Hash_partitionsContext(this, this._ctx, this.state);
		this.enterRule(localctx, 550, PlSqlParser.RULE_hash_partitions);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 5714;
			this.match(PlSqlParser.PARTITION);
			this.state = 5715;
			this.match(PlSqlParser.BY);
			this.state = 5716;
			this.match(PlSqlParser.HASH);
			this.state = 5717;
			this.match(PlSqlParser.LEFT_PAREN);
			this.state = 5718;
			this.column_name();
			this.state = 5723;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			while (_la===2229) {
				{
				{
				this.state = 5719;
				this.match(PlSqlParser.COMMA);
				this.state = 5720;
				this.column_name();
				}
				}
				this.state = 5725;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			}
			this.state = 5726;
			this.match(PlSqlParser.RIGHT_PAREN);
			this.state = 5729;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 2223:
				{
				this.state = 5727;
				this.individual_hash_partitions();
				}
				break;
			case 1209:
				{
				this.state = 5728;
				this.hash_partitions_by_quantity();
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public individual_hash_partitions(): Individual_hash_partitionsContext {
		let localctx: Individual_hash_partitionsContext = new Individual_hash_partitionsContext(this, this._ctx, this.state);
		this.enterRule(localctx, 552, PlSqlParser.RULE_individual_hash_partitions);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 5731;
			this.match(PlSqlParser.LEFT_PAREN);
			this.state = 5732;
			this.match(PlSqlParser.PARTITION);
			this.state = 5734;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 651, this._ctx) ) {
			case 1:
				{
				this.state = 5733;
				this.partition_name();
				}
				break;
			}
			this.state = 5737;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===232 || _la===765 || _la===953 || _la===1184 || _la===1909 || _la===2080) {
				{
				this.state = 5736;
				this.partitioning_storage_clause();
				}
			}

			this.state = 5749;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			while (_la===2229) {
				{
				{
				this.state = 5739;
				this.match(PlSqlParser.COMMA);
				this.state = 5740;
				this.match(PlSqlParser.PARTITION);
				this.state = 5742;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 653, this._ctx) ) {
				case 1:
					{
					this.state = 5741;
					this.partition_name();
					}
					break;
				}
				this.state = 5745;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===232 || _la===765 || _la===953 || _la===1184 || _la===1909 || _la===2080) {
					{
					this.state = 5744;
					this.partitioning_storage_clause();
					}
				}

				}
				}
				this.state = 5751;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			}
			this.state = 5752;
			this.match(PlSqlParser.RIGHT_PAREN);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public hash_partitions_by_quantity(): Hash_partitions_by_quantityContext {
		let localctx: Hash_partitions_by_quantityContext = new Hash_partitions_by_quantityContext(this, this._ctx, this.state);
		this.enterRule(localctx, 554, PlSqlParser.RULE_hash_partitions_by_quantity);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 5754;
			this.match(PlSqlParser.PARTITIONS);
			this.state = 5755;
			this.hash_partition_quantity();
			this.state = 5769;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1594) {
				{
				this.state = 5756;
				this.match(PlSqlParser.STORE);
				this.state = 5757;
				this.match(PlSqlParser.IN);
				this.state = 5758;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 5759;
				this.tablespace();
				this.state = 5764;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===2229) {
					{
					{
					this.state = 5760;
					this.match(PlSqlParser.COMMA);
					this.state = 5761;
					this.tablespace();
					}
					}
					this.state = 5766;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				this.state = 5767;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
			}

			this.state = 5773;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 658, this._ctx) ) {
			case 1:
				{
				this.state = 5771;
				this.table_compression();
				}
				break;
			case 2:
				{
				this.state = 5772;
				this.key_compression();
				}
				break;
			}
			this.state = 5789;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1184) {
				{
				this.state = 5775;
				this.match(PlSqlParser.OVERFLOW);
				this.state = 5776;
				this.match(PlSqlParser.STORE);
				this.state = 5777;
				this.match(PlSqlParser.IN);
				this.state = 5778;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 5779;
				this.tablespace();
				this.state = 5784;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===2229) {
					{
					{
					this.state = 5780;
					this.match(PlSqlParser.COMMA);
					this.state = 5781;
					this.tablespace();
					}
					}
					this.state = 5786;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				this.state = 5787;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public hash_partition_quantity(): Hash_partition_quantityContext {
		let localctx: Hash_partition_quantityContext = new Hash_partition_quantityContext(this, this._ctx, this.state);
		this.enterRule(localctx, 556, PlSqlParser.RULE_hash_partition_quantity);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 5791;
			this.match(PlSqlParser.UNSIGNED_INTEGER);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public composite_range_partitions(): Composite_range_partitionsContext {
		let localctx: Composite_range_partitionsContext = new Composite_range_partitionsContext(this, this._ctx, this.state);
		this.enterRule(localctx, 558, PlSqlParser.RULE_composite_range_partitions);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 5793;
			this.match(PlSqlParser.PARTITION);
			this.state = 5794;
			this.match(PlSqlParser.BY);
			this.state = 5795;
			this.match(PlSqlParser.RANGE);
			this.state = 5796;
			this.match(PlSqlParser.LEFT_PAREN);
			this.state = 5797;
			this.column_name();
			this.state = 5802;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			while (_la===2229) {
				{
				{
				this.state = 5798;
				this.match(PlSqlParser.COMMA);
				this.state = 5799;
				this.column_name();
				}
				}
				this.state = 5804;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			}
			this.state = 5805;
			this.match(PlSqlParser.RIGHT_PAREN);
			this.state = 5825;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===689) {
				{
				this.state = 5806;
				this.match(PlSqlParser.INTERVAL);
				this.state = 5807;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 5808;
				this.expression();
				this.state = 5809;
				this.match(PlSqlParser.RIGHT_PAREN);
				this.state = 5823;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===1594) {
					{
					this.state = 5810;
					this.match(PlSqlParser.STORE);
					this.state = 5811;
					this.match(PlSqlParser.IN);
					this.state = 5812;
					this.match(PlSqlParser.LEFT_PAREN);
					this.state = 5813;
					this.tablespace();
					this.state = 5818;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
					while (_la===2229) {
						{
						{
						this.state = 5814;
						this.match(PlSqlParser.COMMA);
						this.state = 5815;
						this.tablespace();
						}
						}
						this.state = 5820;
						this._errHandler.sync(this);
						_la = this._input.LA(1);
					}
					this.state = 5821;
					this.match(PlSqlParser.RIGHT_PAREN);
					}
				}

				}
			}

			this.state = 5830;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 665, this._ctx) ) {
			case 1:
				{
				this.state = 5827;
				this.subpartition_by_range();
				}
				break;
			case 2:
				{
				this.state = 5828;
				this.subpartition_by_list();
				}
				break;
			case 3:
				{
				this.state = 5829;
				this.subpartition_by_hash();
				}
				break;
			}
			this.state = 5832;
			this.match(PlSqlParser.LEFT_PAREN);
			this.state = 5833;
			this.range_partition_desc();
			this.state = 5838;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			while (_la===2229) {
				{
				{
				this.state = 5834;
				this.match(PlSqlParser.COMMA);
				this.state = 5835;
				this.range_partition_desc();
				}
				}
				this.state = 5840;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			}
			this.state = 5841;
			this.match(PlSqlParser.RIGHT_PAREN);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public composite_list_partitions(): Composite_list_partitionsContext {
		let localctx: Composite_list_partitionsContext = new Composite_list_partitionsContext(this, this._ctx, this.state);
		this.enterRule(localctx, 560, PlSqlParser.RULE_composite_list_partitions);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 5843;
			this.match(PlSqlParser.PARTITION);
			this.state = 5844;
			this.match(PlSqlParser.BY);
			this.state = 5845;
			this.match(PlSqlParser.LIST);
			this.state = 5846;
			this.match(PlSqlParser.LEFT_PAREN);
			this.state = 5847;
			this.column_name();
			this.state = 5848;
			this.match(PlSqlParser.RIGHT_PAREN);
			this.state = 5852;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 667, this._ctx) ) {
			case 1:
				{
				this.state = 5849;
				this.subpartition_by_range();
				}
				break;
			case 2:
				{
				this.state = 5850;
				this.subpartition_by_list();
				}
				break;
			case 3:
				{
				this.state = 5851;
				this.subpartition_by_hash();
				}
				break;
			}
			this.state = 5854;
			this.match(PlSqlParser.LEFT_PAREN);
			this.state = 5855;
			this.list_partition_desc();
			this.state = 5860;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			while (_la===2229) {
				{
				{
				this.state = 5856;
				this.match(PlSqlParser.COMMA);
				this.state = 5857;
				this.list_partition_desc();
				}
				}
				this.state = 5862;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			}
			this.state = 5863;
			this.match(PlSqlParser.RIGHT_PAREN);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public composite_hash_partitions(): Composite_hash_partitionsContext {
		let localctx: Composite_hash_partitionsContext = new Composite_hash_partitionsContext(this, this._ctx, this.state);
		this.enterRule(localctx, 562, PlSqlParser.RULE_composite_hash_partitions);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 5865;
			this.match(PlSqlParser.PARTITION);
			this.state = 5866;
			this.match(PlSqlParser.BY);
			this.state = 5867;
			this.match(PlSqlParser.HASH);
			this.state = 5868;
			this.match(PlSqlParser.LEFT_PAREN);
			this.state = 5871;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			do {
				{
				{
				this.state = 5869;
				this.match(PlSqlParser.COMMA);
				this.state = 5870;
				this.column_name();
				}
				}
				this.state = 5873;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			} while (_la===2229);
			this.state = 5875;
			this.match(PlSqlParser.RIGHT_PAREN);
			this.state = 5879;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 670, this._ctx) ) {
			case 1:
				{
				this.state = 5876;
				this.subpartition_by_range();
				}
				break;
			case 2:
				{
				this.state = 5877;
				this.subpartition_by_list();
				}
				break;
			case 3:
				{
				this.state = 5878;
				this.subpartition_by_hash();
				}
				break;
			}
			this.state = 5883;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 2223:
				{
				this.state = 5881;
				this.individual_hash_partitions();
				}
				break;
			case 1209:
				{
				this.state = 5882;
				this.hash_partitions_by_quantity();
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public reference_partitioning(): Reference_partitioningContext {
		let localctx: Reference_partitioningContext = new Reference_partitioningContext(this, this._ctx, this.state);
		this.enterRule(localctx, 564, PlSqlParser.RULE_reference_partitioning);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 5885;
			this.match(PlSqlParser.PARTITION);
			this.state = 5886;
			this.match(PlSqlParser.BY);
			this.state = 5887;
			this.match(PlSqlParser.REFERENCE);
			this.state = 5888;
			this.match(PlSqlParser.LEFT_PAREN);
			this.state = 5889;
			this.regular_id();
			this.state = 5890;
			this.match(PlSqlParser.RIGHT_PAREN);
			this.state = 5902;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===2223) {
				{
				this.state = 5891;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 5892;
				this.reference_partition_desc();
				this.state = 5897;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===2229) {
					{
					{
					this.state = 5893;
					this.match(PlSqlParser.COMMA);
					this.state = 5894;
					this.reference_partition_desc();
					}
					}
					this.state = 5899;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				this.state = 5900;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public reference_partition_desc(): Reference_partition_descContext {
		let localctx: Reference_partition_descContext = new Reference_partition_descContext(this, this._ctx, this.state);
		this.enterRule(localctx, 566, PlSqlParser.RULE_reference_partition_desc);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 5904;
			this.match(PlSqlParser.PARTITION);
			this.state = 5906;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 674, this._ctx) ) {
			case 1:
				{
				this.state = 5905;
				this.partition_name();
				}
				break;
			}
			this.state = 5908;
			this.table_partition_description();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public system_partitioning(): System_partitioningContext {
		let localctx: System_partitioningContext = new System_partitioningContext(this, this._ctx, this.state);
		this.enterRule(localctx, 568, PlSqlParser.RULE_system_partitioning);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 5910;
			this.match(PlSqlParser.PARTITION);
			this.state = 5911;
			this.match(PlSqlParser.BY);
			this.state = 5912;
			this.match(PlSqlParser.SYSTEM);
			this.state = 5923;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 1209:
				{
				this.state = 5913;
				this.match(PlSqlParser.PARTITIONS);
				this.state = 5914;
				this.match(PlSqlParser.UNSIGNED_INTEGER);
				}
				break;
			case 1207:
				{
				this.state = 5915;
				this.reference_partition_desc();
				this.state = 5920;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===2229) {
					{
					{
					this.state = 5916;
					this.match(PlSqlParser.COMMA);
					this.state = 5917;
					this.reference_partition_desc();
					}
					}
					this.state = 5922;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				}
				break;
			case 61:
			case 150:
			case 383:
			case 439:
			case 532:
			case 946:
			case 1010:
			case 1021:
			case 1052:
			case 1195:
			case 1424:
			case 1444:
			case 1451:
			case 2241:
				break;
			default:
				break;
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public range_partition_desc(): Range_partition_descContext {
		let localctx: Range_partition_descContext = new Range_partition_descContext(this, this._ctx, this.state);
		this.enterRule(localctx, 570, PlSqlParser.RULE_range_partition_desc);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 5925;
			this.match(PlSqlParser.PARTITION);
			this.state = 5927;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & 2684286839) !== 0) || ((((_la - 64)) & ~0x1F) === 0 && ((1 << (_la - 64)) & 3220168703) !== 0) || ((((_la - 96)) & ~0x1F) === 0 && ((1 << (_la - 96)) & 4294965247) !== 0) || ((((_la - 128)) & ~0x1F) === 0 && ((1 << (_la - 128)) & 2147221503) !== 0) || ((((_la - 160)) & ~0x1F) === 0 && ((1 << (_la - 160)) & 4293910527) !== 0) || ((((_la - 192)) & ~0x1F) === 0 && ((1 << (_la - 192)) & 4294967295) !== 0) || ((((_la - 224)) & ~0x1F) === 0 && ((1 << (_la - 224)) & 4160749311) !== 0) || ((((_la - 256)) & ~0x1F) === 0 && ((1 << (_la - 256)) & 4294967295) !== 0) || ((((_la - 289)) & ~0x1F) === 0 && ((1 << (_la - 289)) & 2147483647) !== 0) || ((((_la - 321)) & ~0x1F) === 0 && ((1 << (_la - 321)) & 3221225407) !== 0) || ((((_la - 353)) & ~0x1F) === 0 && ((1 << (_la - 353)) & 4294705151) !== 0) || ((((_la - 385)) & ~0x1F) === 0 && ((1 << (_la - 385)) & 2080372479) !== 0) || ((((_la - 417)) & ~0x1F) === 0 && ((1 << (_la - 417)) & 4026433535) !== 0) || ((((_la - 449)) & ~0x1F) === 0 && ((1 << (_la - 449)) & 4261412863) !== 0) || ((((_la - 481)) & ~0x1F) === 0 && ((1 << (_la - 481)) & 4294967295) !== 0) || ((((_la - 513)) & ~0x1F) === 0 && ((1 << (_la - 513)) & 4294967295) !== 0) || ((((_la - 545)) & ~0x1F) === 0 && ((1 << (_la - 545)) & 3925868029) !== 0) || ((((_la - 577)) & ~0x1F) === 0 && ((1 << (_la - 577)) & 4278189823) !== 0) || ((((_la - 609)) & ~0x1F) === 0 && ((1 << (_la - 609)) & 4290772991) !== 0) || ((((_la - 641)) & ~0x1F) === 0 && ((1 << (_la - 641)) & 4026529791) !== 0) || ((((_la - 673)) & ~0x1F) === 0 && ((1 << (_la - 673)) & 4290478079) !== 0) || ((((_la - 705)) & ~0x1F) === 0 && ((1 << (_la - 705)) & 4294967295) !== 0) || ((((_la - 737)) & ~0x1F) === 0 && ((1 << (_la - 737)) & 4293918719) !== 0) || ((((_la - 769)) & ~0x1F) === 0 && ((1 << (_la - 769)) & 4294967167) !== 0) || ((((_la - 801)) & ~0x1F) === 0 && ((1 << (_la - 801)) & 4294967295) !== 0) || ((((_la - 833)) & ~0x1F) === 0 && ((1 << (_la - 833)) & 4160749055) !== 0) || ((((_la - 865)) & ~0x1F) === 0 && ((1 << (_la - 865)) & 4290772991) !== 0) || ((((_la - 897)) & ~0x1F) === 0 && ((1 << (_la - 897)) & 4294967295) !== 0) || ((((_la - 929)) & ~0x1F) === 0 && ((1 << (_la - 929)) & 4278190079) !== 0) || ((((_la - 961)) & ~0x1F) === 0 && ((1 << (_la - 961)) & 4294967295) !== 0) || ((((_la - 993)) & ~0x1F) === 0 && ((1 << (_la - 993)) & 4294967295) !== 0) || ((((_la - 1025)) & ~0x1F) === 0 && ((1 << (_la - 1025)) & 4294967295) !== 0) || ((((_la - 1057)) & ~0x1F) === 0 && ((1 << (_la - 1057)) & 2147418111) !== 0) || ((((_la - 1089)) & ~0x1F) === 0 && ((1 << (_la - 1089)) & 4227858175) !== 0) || ((((_la - 1121)) & ~0x1F) === 0 && ((1 << (_la - 1121)) & 4293918559) !== 0) || ((((_la - 1153)) & ~0x1F) === 0 && ((1 << (_la - 1153)) & 4294410239) !== 0) || ((((_la - 1185)) & ~0x1F) === 0 && ((1 << (_la - 1185)) & 4294965247) !== 0) || ((((_la - 1217)) & ~0x1F) === 0 && ((1 << (_la - 1217)) & 4279827455) !== 0) || ((((_la - 1249)) & ~0x1F) === 0 && ((1 << (_la - 1249)) & 4294967291) !== 0) || ((((_la - 1281)) & ~0x1F) === 0 && ((1 << (_la - 1281)) & 4227858431) !== 0) || ((((_la - 1313)) & ~0x1F) === 0 && ((1 << (_la - 1313)) & 4294965247) !== 0) || ((((_la - 1345)) & ~0x1F) === 0 && ((1 << (_la - 1345)) & 4294967295) !== 0) || ((((_la - 1377)) & ~0x1F) === 0 && ((1 << (_la - 1377)) & 4292870143) !== 0) || ((((_la - 1409)) & ~0x1F) === 0 && ((1 << (_la - 1409)) & 4261412799) !== 0) || ((((_la - 1441)) & ~0x1F) === 0 && ((1 << (_la - 1441)) & 4294967295) !== 0) || ((((_la - 1473)) & ~0x1F) === 0 && ((1 << (_la - 1473)) & 4261281791) !== 0) || ((((_la - 1505)) & ~0x1F) === 0 && ((1 << (_la - 1505)) & 3221221375) !== 0) || ((((_la - 1537)) & ~0x1F) === 0 && ((1 << (_la - 1537)) & 4294967295) !== 0) || ((((_la - 1570)) & ~0x1F) === 0 && ((1 << (_la - 1570)) & 4294967295) !== 0) || ((((_la - 1602)) & ~0x1F) === 0 && ((1 << (_la - 1602)) & 4261412863) !== 0) || ((((_la - 1634)) & ~0x1F) === 0 && ((1 << (_la - 1634)) & 4294967295) !== 0) || ((((_la - 1666)) & ~0x1F) === 0 && ((1 << (_la - 1666)) & 4294967295) !== 0) || ((((_la - 1698)) & ~0x1F) === 0 && ((1 << (_la - 1698)) & 4294967295) !== 0) || ((((_la - 1730)) & ~0x1F) === 0 && ((1 << (_la - 1730)) & 4294967295) !== 0) || ((((_la - 1762)) & ~0x1F) === 0 && ((1 << (_la - 1762)) & 4294967295) !== 0) || ((((_la - 1794)) & ~0x1F) === 0 && ((1 << (_la - 1794)) & 4294967295) !== 0) || ((((_la - 1826)) & ~0x1F) === 0 && ((1 << (_la - 1826)) & 4294967295) !== 0) || ((((_la - 1858)) & ~0x1F) === 0 && ((1 << (_la - 1858)) & 4294967295) !== 0) || ((((_la - 1890)) & ~0x1F) === 0 && ((1 << (_la - 1890)) & 4294967295) !== 0) || ((((_la - 1922)) & ~0x1F) === 0 && ((1 << (_la - 1922)) & 4294901759) !== 0) || ((((_la - 1954)) & ~0x1F) === 0 && ((1 << (_la - 1954)) & 4294966271) !== 0) || ((((_la - 1986)) & ~0x1F) === 0 && ((1 << (_la - 1986)) & 4294868991) !== 0) || ((((_la - 2018)) & ~0x1F) === 0 && ((1 << (_la - 2018)) & 4294967167) !== 0) || ((((_la - 2050)) & ~0x1F) === 0 && ((1 << (_la - 2050)) & 4286578687) !== 0) || ((((_la - 2082)) & ~0x1F) === 0 && ((1 << (_la - 2082)) & 4294836223) !== 0) || ((((_la - 2115)) & ~0x1F) === 0 && ((1 << (_la - 2115)) & 3758092223) !== 0) || ((((_la - 2147)) & ~0x1F) === 0 && ((1 << (_la - 2147)) & 4293918719) !== 0) || ((((_la - 2179)) & ~0x1F) === 0 && ((1 << (_la - 2179)) & 4294965247) !== 0) || _la===2211 || _la===2216 || _la===2252) {
				{
				this.state = 5926;
				this.partition_name();
				}
			}

			this.state = 5929;
			this.range_values_clause();
			this.state = 5930;
			this.table_partition_description();
			this.state = 5963;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1605 || _la===2223) {
				{
				this.state = 5961;
				this._errHandler.sync(this);
				switch (this._input.LA(1)) {
				case 2223:
					{
					this.state = 5931;
					this.match(PlSqlParser.LEFT_PAREN);
					this.state = 5956;
					this._errHandler.sync(this);
					switch ( this._interp.adaptivePredict(this._input, 681, this._ctx) ) {
					case 1:
						{
						this.state = 5932;
						this.range_subpartition_desc();
						this.state = 5937;
						this._errHandler.sync(this);
						_la = this._input.LA(1);
						while (_la===2229) {
							{
							{
							this.state = 5933;
							this.match(PlSqlParser.COMMA);
							this.state = 5934;
							this.range_subpartition_desc();
							}
							}
							this.state = 5939;
							this._errHandler.sync(this);
							_la = this._input.LA(1);
						}
						}
						break;
					case 2:
						{
						this.state = 5940;
						this.list_subpartition_desc();
						this.state = 5945;
						this._errHandler.sync(this);
						_la = this._input.LA(1);
						while (_la===2229) {
							{
							{
							this.state = 5941;
							this.match(PlSqlParser.COMMA);
							this.state = 5942;
							this.list_subpartition_desc();
							}
							}
							this.state = 5947;
							this._errHandler.sync(this);
							_la = this._input.LA(1);
						}
						}
						break;
					case 3:
						{
						this.state = 5948;
						this.individual_hash_subparts();
						this.state = 5953;
						this._errHandler.sync(this);
						_la = this._input.LA(1);
						while (_la===2229) {
							{
							{
							this.state = 5949;
							this.match(PlSqlParser.COMMA);
							this.state = 5950;
							this.individual_hash_subparts();
							}
							}
							this.state = 5955;
							this._errHandler.sync(this);
							_la = this._input.LA(1);
						}
						}
						break;
					}
					this.state = 5958;
					this.match(PlSqlParser.RIGHT_PAREN);
					}
					break;
				case 1605:
					{
					this.state = 5960;
					this.hash_subparts_by_quantity();
					}
					break;
				default:
					throw new NoViableAltException(this);
				}
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public list_partition_desc(): List_partition_descContext {
		let localctx: List_partition_descContext = new List_partition_descContext(this, this._ctx, this.state);
		this.enterRule(localctx, 572, PlSqlParser.RULE_list_partition_desc);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 5965;
			this.match(PlSqlParser.PARTITION);
			this.state = 5967;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & 2684286839) !== 0) || ((((_la - 64)) & ~0x1F) === 0 && ((1 << (_la - 64)) & 3220168703) !== 0) || ((((_la - 96)) & ~0x1F) === 0 && ((1 << (_la - 96)) & 4294965247) !== 0) || ((((_la - 128)) & ~0x1F) === 0 && ((1 << (_la - 128)) & 2147221503) !== 0) || ((((_la - 160)) & ~0x1F) === 0 && ((1 << (_la - 160)) & 4293910527) !== 0) || ((((_la - 192)) & ~0x1F) === 0 && ((1 << (_la - 192)) & 4294967295) !== 0) || ((((_la - 224)) & ~0x1F) === 0 && ((1 << (_la - 224)) & 4160749311) !== 0) || ((((_la - 256)) & ~0x1F) === 0 && ((1 << (_la - 256)) & 4294967295) !== 0) || ((((_la - 289)) & ~0x1F) === 0 && ((1 << (_la - 289)) & 2147483647) !== 0) || ((((_la - 321)) & ~0x1F) === 0 && ((1 << (_la - 321)) & 3221225407) !== 0) || ((((_la - 353)) & ~0x1F) === 0 && ((1 << (_la - 353)) & 4294705151) !== 0) || ((((_la - 385)) & ~0x1F) === 0 && ((1 << (_la - 385)) & 2080372479) !== 0) || ((((_la - 417)) & ~0x1F) === 0 && ((1 << (_la - 417)) & 4026433535) !== 0) || ((((_la - 449)) & ~0x1F) === 0 && ((1 << (_la - 449)) & 4261412863) !== 0) || ((((_la - 481)) & ~0x1F) === 0 && ((1 << (_la - 481)) & 4294967295) !== 0) || ((((_la - 513)) & ~0x1F) === 0 && ((1 << (_la - 513)) & 4294967295) !== 0) || ((((_la - 545)) & ~0x1F) === 0 && ((1 << (_la - 545)) & 3925868029) !== 0) || ((((_la - 577)) & ~0x1F) === 0 && ((1 << (_la - 577)) & 4278189823) !== 0) || ((((_la - 609)) & ~0x1F) === 0 && ((1 << (_la - 609)) & 4290772991) !== 0) || ((((_la - 641)) & ~0x1F) === 0 && ((1 << (_la - 641)) & 4026529791) !== 0) || ((((_la - 673)) & ~0x1F) === 0 && ((1 << (_la - 673)) & 4290478079) !== 0) || ((((_la - 705)) & ~0x1F) === 0 && ((1 << (_la - 705)) & 4294967295) !== 0) || ((((_la - 737)) & ~0x1F) === 0 && ((1 << (_la - 737)) & 4293918719) !== 0) || ((((_la - 769)) & ~0x1F) === 0 && ((1 << (_la - 769)) & 4294967167) !== 0) || ((((_la - 801)) & ~0x1F) === 0 && ((1 << (_la - 801)) & 4294967295) !== 0) || ((((_la - 833)) & ~0x1F) === 0 && ((1 << (_la - 833)) & 4160749055) !== 0) || ((((_la - 865)) & ~0x1F) === 0 && ((1 << (_la - 865)) & 4290772991) !== 0) || ((((_la - 897)) & ~0x1F) === 0 && ((1 << (_la - 897)) & 4294967295) !== 0) || ((((_la - 929)) & ~0x1F) === 0 && ((1 << (_la - 929)) & 4278190079) !== 0) || ((((_la - 961)) & ~0x1F) === 0 && ((1 << (_la - 961)) & 4294967295) !== 0) || ((((_la - 993)) & ~0x1F) === 0 && ((1 << (_la - 993)) & 4294967295) !== 0) || ((((_la - 1025)) & ~0x1F) === 0 && ((1 << (_la - 1025)) & 4294967295) !== 0) || ((((_la - 1057)) & ~0x1F) === 0 && ((1 << (_la - 1057)) & 2147418111) !== 0) || ((((_la - 1089)) & ~0x1F) === 0 && ((1 << (_la - 1089)) & 4227858175) !== 0) || ((((_la - 1121)) & ~0x1F) === 0 && ((1 << (_la - 1121)) & 4293918559) !== 0) || ((((_la - 1153)) & ~0x1F) === 0 && ((1 << (_la - 1153)) & 4294410239) !== 0) || ((((_la - 1185)) & ~0x1F) === 0 && ((1 << (_la - 1185)) & 4294965247) !== 0) || ((((_la - 1217)) & ~0x1F) === 0 && ((1 << (_la - 1217)) & 4279827455) !== 0) || ((((_la - 1249)) & ~0x1F) === 0 && ((1 << (_la - 1249)) & 4294967291) !== 0) || ((((_la - 1281)) & ~0x1F) === 0 && ((1 << (_la - 1281)) & 4227858431) !== 0) || ((((_la - 1313)) & ~0x1F) === 0 && ((1 << (_la - 1313)) & 4294965247) !== 0) || ((((_la - 1345)) & ~0x1F) === 0 && ((1 << (_la - 1345)) & 4294967295) !== 0) || ((((_la - 1377)) & ~0x1F) === 0 && ((1 << (_la - 1377)) & 4292870143) !== 0) || ((((_la - 1409)) & ~0x1F) === 0 && ((1 << (_la - 1409)) & 4261412799) !== 0) || ((((_la - 1441)) & ~0x1F) === 0 && ((1 << (_la - 1441)) & 4294967295) !== 0) || ((((_la - 1473)) & ~0x1F) === 0 && ((1 << (_la - 1473)) & 4261281791) !== 0) || ((((_la - 1505)) & ~0x1F) === 0 && ((1 << (_la - 1505)) & 3221221375) !== 0) || ((((_la - 1537)) & ~0x1F) === 0 && ((1 << (_la - 1537)) & 4294967295) !== 0) || ((((_la - 1570)) & ~0x1F) === 0 && ((1 << (_la - 1570)) & 4294967295) !== 0) || ((((_la - 1602)) & ~0x1F) === 0 && ((1 << (_la - 1602)) & 4261412863) !== 0) || ((((_la - 1634)) & ~0x1F) === 0 && ((1 << (_la - 1634)) & 4294967295) !== 0) || ((((_la - 1666)) & ~0x1F) === 0 && ((1 << (_la - 1666)) & 4294967295) !== 0) || ((((_la - 1698)) & ~0x1F) === 0 && ((1 << (_la - 1698)) & 4294967295) !== 0) || ((((_la - 1730)) & ~0x1F) === 0 && ((1 << (_la - 1730)) & 4294967295) !== 0) || ((((_la - 1762)) & ~0x1F) === 0 && ((1 << (_la - 1762)) & 4294967295) !== 0) || ((((_la - 1794)) & ~0x1F) === 0 && ((1 << (_la - 1794)) & 4294967295) !== 0) || ((((_la - 1826)) & ~0x1F) === 0 && ((1 << (_la - 1826)) & 4294967295) !== 0) || ((((_la - 1858)) & ~0x1F) === 0 && ((1 << (_la - 1858)) & 4294967295) !== 0) || ((((_la - 1890)) & ~0x1F) === 0 && ((1 << (_la - 1890)) & 4294967295) !== 0) || ((((_la - 1922)) & ~0x1F) === 0 && ((1 << (_la - 1922)) & 4294901759) !== 0) || ((((_la - 1954)) & ~0x1F) === 0 && ((1 << (_la - 1954)) & 4294966271) !== 0) || ((((_la - 1986)) & ~0x1F) === 0 && ((1 << (_la - 1986)) & 4294868991) !== 0) || ((((_la - 2018)) & ~0x1F) === 0 && ((1 << (_la - 2018)) & 4294967167) !== 0) || ((((_la - 2050)) & ~0x1F) === 0 && ((1 << (_la - 2050)) & 4286578687) !== 0) || ((((_la - 2082)) & ~0x1F) === 0 && ((1 << (_la - 2082)) & 4294836223) !== 0) || ((((_la - 2115)) & ~0x1F) === 0 && ((1 << (_la - 2115)) & 3758092223) !== 0) || ((((_la - 2147)) & ~0x1F) === 0 && ((1 << (_la - 2147)) & 4293918719) !== 0) || ((((_la - 2179)) & ~0x1F) === 0 && ((1 << (_la - 2179)) & 4294965247) !== 0) || _la===2211 || _la===2216 || _la===2252) {
				{
				this.state = 5966;
				this.partition_name();
				}
			}

			this.state = 5969;
			this.list_values_clause();
			this.state = 5970;
			this.table_partition_description();
			this.state = 6003;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1605 || _la===2223) {
				{
				this.state = 6001;
				this._errHandler.sync(this);
				switch (this._input.LA(1)) {
				case 2223:
					{
					this.state = 5971;
					this.match(PlSqlParser.LEFT_PAREN);
					this.state = 5996;
					this._errHandler.sync(this);
					switch ( this._interp.adaptivePredict(this._input, 688, this._ctx) ) {
					case 1:
						{
						this.state = 5972;
						this.range_subpartition_desc();
						this.state = 5977;
						this._errHandler.sync(this);
						_la = this._input.LA(1);
						while (_la===2229) {
							{
							{
							this.state = 5973;
							this.match(PlSqlParser.COMMA);
							this.state = 5974;
							this.range_subpartition_desc();
							}
							}
							this.state = 5979;
							this._errHandler.sync(this);
							_la = this._input.LA(1);
						}
						}
						break;
					case 2:
						{
						this.state = 5980;
						this.list_subpartition_desc();
						this.state = 5985;
						this._errHandler.sync(this);
						_la = this._input.LA(1);
						while (_la===2229) {
							{
							{
							this.state = 5981;
							this.match(PlSqlParser.COMMA);
							this.state = 5982;
							this.list_subpartition_desc();
							}
							}
							this.state = 5987;
							this._errHandler.sync(this);
							_la = this._input.LA(1);
						}
						}
						break;
					case 3:
						{
						this.state = 5988;
						this.individual_hash_subparts();
						this.state = 5993;
						this._errHandler.sync(this);
						_la = this._input.LA(1);
						while (_la===2229) {
							{
							{
							this.state = 5989;
							this.match(PlSqlParser.COMMA);
							this.state = 5990;
							this.individual_hash_subparts();
							}
							}
							this.state = 5995;
							this._errHandler.sync(this);
							_la = this._input.LA(1);
						}
						}
						break;
					}
					this.state = 5998;
					this.match(PlSqlParser.RIGHT_PAREN);
					}
					break;
				case 1605:
					{
					this.state = 6000;
					this.hash_subparts_by_quantity();
					}
					break;
				default:
					throw new NoViableAltException(this);
				}
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public subpartition_template(): Subpartition_templateContext {
		let localctx: Subpartition_templateContext = new Subpartition_templateContext(this, this._ctx, this.state);
		this.enterRule(localctx, 574, PlSqlParser.RULE_subpartition_template);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 6005;
			this.match(PlSqlParser.SUBPARTITION);
			this.state = 6006;
			this.match(PlSqlParser.TEMPLATE);
			{
			this.state = 6037;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 2223:
				{
				this.state = 6007;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 6032;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 694, this._ctx) ) {
				case 1:
					{
					this.state = 6008;
					this.range_subpartition_desc();
					this.state = 6013;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
					while (_la===2229) {
						{
						{
						this.state = 6009;
						this.match(PlSqlParser.COMMA);
						this.state = 6010;
						this.range_subpartition_desc();
						}
						}
						this.state = 6015;
						this._errHandler.sync(this);
						_la = this._input.LA(1);
					}
					}
					break;
				case 2:
					{
					this.state = 6016;
					this.list_subpartition_desc();
					this.state = 6021;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
					while (_la===2229) {
						{
						{
						this.state = 6017;
						this.match(PlSqlParser.COMMA);
						this.state = 6018;
						this.list_subpartition_desc();
						}
						}
						this.state = 6023;
						this._errHandler.sync(this);
						_la = this._input.LA(1);
					}
					}
					break;
				case 3:
					{
					this.state = 6024;
					this.individual_hash_subparts();
					this.state = 6029;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
					while (_la===2229) {
						{
						{
						this.state = 6025;
						this.match(PlSqlParser.COMMA);
						this.state = 6026;
						this.individual_hash_subparts();
						}
						}
						this.state = 6031;
						this._errHandler.sync(this);
						_la = this._input.LA(1);
					}
					}
					break;
				}
				this.state = 6034;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
				break;
			case 2217:
				{
				this.state = 6036;
				this.hash_subpartition_quantity();
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public hash_subpartition_quantity(): Hash_subpartition_quantityContext {
		let localctx: Hash_subpartition_quantityContext = new Hash_subpartition_quantityContext(this, this._ctx, this.state);
		this.enterRule(localctx, 576, PlSqlParser.RULE_hash_subpartition_quantity);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 6039;
			this.match(PlSqlParser.UNSIGNED_INTEGER);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public subpartition_by_range(): Subpartition_by_rangeContext {
		let localctx: Subpartition_by_rangeContext = new Subpartition_by_rangeContext(this, this._ctx, this.state);
		this.enterRule(localctx, 578, PlSqlParser.RULE_subpartition_by_range);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 6041;
			this.match(PlSqlParser.SUBPARTITION);
			this.state = 6042;
			this.match(PlSqlParser.BY);
			this.state = 6043;
			this.match(PlSqlParser.RANGE);
			this.state = 6044;
			this.match(PlSqlParser.LEFT_PAREN);
			this.state = 6045;
			this.column_name();
			this.state = 6050;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			while (_la===2229) {
				{
				{
				this.state = 6046;
				this.match(PlSqlParser.COMMA);
				this.state = 6047;
				this.column_name();
				}
				}
				this.state = 6052;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			}
			this.state = 6053;
			this.match(PlSqlParser.RIGHT_PAREN);
			this.state = 6055;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1606) {
				{
				this.state = 6054;
				this.subpartition_template();
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public subpartition_by_list(): Subpartition_by_listContext {
		let localctx: Subpartition_by_listContext = new Subpartition_by_listContext(this, this._ctx, this.state);
		this.enterRule(localctx, 580, PlSqlParser.RULE_subpartition_by_list);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 6057;
			this.match(PlSqlParser.SUBPARTITION);
			this.state = 6058;
			this.match(PlSqlParser.BY);
			this.state = 6059;
			this.match(PlSqlParser.LIST);
			this.state = 6060;
			this.match(PlSqlParser.LEFT_PAREN);
			this.state = 6061;
			this.column_name();
			this.state = 6062;
			this.match(PlSqlParser.RIGHT_PAREN);
			this.state = 6064;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1606) {
				{
				this.state = 6063;
				this.subpartition_template();
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public subpartition_by_hash(): Subpartition_by_hashContext {
		let localctx: Subpartition_by_hashContext = new Subpartition_by_hashContext(this, this._ctx, this.state);
		this.enterRule(localctx, 582, PlSqlParser.RULE_subpartition_by_hash);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 6066;
			this.match(PlSqlParser.SUBPARTITION);
			this.state = 6067;
			this.match(PlSqlParser.BY);
			this.state = 6068;
			this.match(PlSqlParser.HASH);
			this.state = 6069;
			this.match(PlSqlParser.LEFT_PAREN);
			this.state = 6070;
			this.column_name();
			this.state = 6075;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			while (_la===2229) {
				{
				{
				this.state = 6071;
				this.match(PlSqlParser.COMMA);
				this.state = 6072;
				this.column_name();
				}
				}
				this.state = 6077;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			}
			this.state = 6078;
			this.match(PlSqlParser.RIGHT_PAREN);
			this.state = 6097;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 1605:
				{
				this.state = 6079;
				this.match(PlSqlParser.SUBPARTITIONS);
				this.state = 6080;
				this.match(PlSqlParser.UNSIGNED_INTEGER);
				this.state = 6094;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===1594) {
					{
					this.state = 6081;
					this.match(PlSqlParser.STORE);
					this.state = 6082;
					this.match(PlSqlParser.IN);
					this.state = 6083;
					this.match(PlSqlParser.LEFT_PAREN);
					this.state = 6084;
					this.tablespace();
					this.state = 6089;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
					while (_la===2229) {
						{
						{
						this.state = 6085;
						this.match(PlSqlParser.COMMA);
						this.state = 6086;
						this.tablespace();
						}
						}
						this.state = 6091;
						this._errHandler.sync(this);
						_la = this._input.LA(1);
					}
					this.state = 6092;
					this.match(PlSqlParser.RIGHT_PAREN);
					}
				}

				}
				break;
			case 1606:
				{
				this.state = 6096;
				this.subpartition_template();
				}
				break;
			case 1209:
			case 2223:
				break;
			default:
				break;
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public subpartition_name(): Subpartition_nameContext {
		let localctx: Subpartition_nameContext = new Subpartition_nameContext(this, this._ctx, this.state);
		this.enterRule(localctx, 584, PlSqlParser.RULE_subpartition_name);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 6099;
			this.partition_name();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public range_subpartition_desc(): Range_subpartition_descContext {
		let localctx: Range_subpartition_descContext = new Range_subpartition_descContext(this, this._ctx, this.state);
		this.enterRule(localctx, 586, PlSqlParser.RULE_range_subpartition_desc);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 6101;
			this.match(PlSqlParser.SUBPARTITION);
			this.state = 6103;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & 2684286839) !== 0) || ((((_la - 64)) & ~0x1F) === 0 && ((1 << (_la - 64)) & 3220168703) !== 0) || ((((_la - 96)) & ~0x1F) === 0 && ((1 << (_la - 96)) & 4294965247) !== 0) || ((((_la - 128)) & ~0x1F) === 0 && ((1 << (_la - 128)) & 2147221503) !== 0) || ((((_la - 160)) & ~0x1F) === 0 && ((1 << (_la - 160)) & 4293910527) !== 0) || ((((_la - 192)) & ~0x1F) === 0 && ((1 << (_la - 192)) & 4294967295) !== 0) || ((((_la - 224)) & ~0x1F) === 0 && ((1 << (_la - 224)) & 4160749311) !== 0) || ((((_la - 256)) & ~0x1F) === 0 && ((1 << (_la - 256)) & 4294967295) !== 0) || ((((_la - 289)) & ~0x1F) === 0 && ((1 << (_la - 289)) & 2147483647) !== 0) || ((((_la - 321)) & ~0x1F) === 0 && ((1 << (_la - 321)) & 3221225407) !== 0) || ((((_la - 353)) & ~0x1F) === 0 && ((1 << (_la - 353)) & 4294705151) !== 0) || ((((_la - 385)) & ~0x1F) === 0 && ((1 << (_la - 385)) & 2080372479) !== 0) || ((((_la - 417)) & ~0x1F) === 0 && ((1 << (_la - 417)) & 4026433535) !== 0) || ((((_la - 449)) & ~0x1F) === 0 && ((1 << (_la - 449)) & 4261412863) !== 0) || ((((_la - 481)) & ~0x1F) === 0 && ((1 << (_la - 481)) & 4294967295) !== 0) || ((((_la - 513)) & ~0x1F) === 0 && ((1 << (_la - 513)) & 4294967295) !== 0) || ((((_la - 545)) & ~0x1F) === 0 && ((1 << (_la - 545)) & 3925868029) !== 0) || ((((_la - 577)) & ~0x1F) === 0 && ((1 << (_la - 577)) & 4278189823) !== 0) || ((((_la - 609)) & ~0x1F) === 0 && ((1 << (_la - 609)) & 4290772991) !== 0) || ((((_la - 641)) & ~0x1F) === 0 && ((1 << (_la - 641)) & 4026529791) !== 0) || ((((_la - 673)) & ~0x1F) === 0 && ((1 << (_la - 673)) & 4290478079) !== 0) || ((((_la - 705)) & ~0x1F) === 0 && ((1 << (_la - 705)) & 4294967295) !== 0) || ((((_la - 737)) & ~0x1F) === 0 && ((1 << (_la - 737)) & 4293918719) !== 0) || ((((_la - 769)) & ~0x1F) === 0 && ((1 << (_la - 769)) & 4294967167) !== 0) || ((((_la - 801)) & ~0x1F) === 0 && ((1 << (_la - 801)) & 4294967295) !== 0) || ((((_la - 833)) & ~0x1F) === 0 && ((1 << (_la - 833)) & 4160749055) !== 0) || ((((_la - 865)) & ~0x1F) === 0 && ((1 << (_la - 865)) & 4290772991) !== 0) || ((((_la - 897)) & ~0x1F) === 0 && ((1 << (_la - 897)) & 4294967295) !== 0) || ((((_la - 929)) & ~0x1F) === 0 && ((1 << (_la - 929)) & 4278190079) !== 0) || ((((_la - 961)) & ~0x1F) === 0 && ((1 << (_la - 961)) & 4294967295) !== 0) || ((((_la - 993)) & ~0x1F) === 0 && ((1 << (_la - 993)) & 4294967295) !== 0) || ((((_la - 1025)) & ~0x1F) === 0 && ((1 << (_la - 1025)) & 4294967295) !== 0) || ((((_la - 1057)) & ~0x1F) === 0 && ((1 << (_la - 1057)) & 2147418111) !== 0) || ((((_la - 1089)) & ~0x1F) === 0 && ((1 << (_la - 1089)) & 4227858175) !== 0) || ((((_la - 1121)) & ~0x1F) === 0 && ((1 << (_la - 1121)) & 4293918559) !== 0) || ((((_la - 1153)) & ~0x1F) === 0 && ((1 << (_la - 1153)) & 4294410239) !== 0) || ((((_la - 1185)) & ~0x1F) === 0 && ((1 << (_la - 1185)) & 4294965247) !== 0) || ((((_la - 1217)) & ~0x1F) === 0 && ((1 << (_la - 1217)) & 4279827455) !== 0) || ((((_la - 1249)) & ~0x1F) === 0 && ((1 << (_la - 1249)) & 4294967291) !== 0) || ((((_la - 1281)) & ~0x1F) === 0 && ((1 << (_la - 1281)) & 4227858431) !== 0) || ((((_la - 1313)) & ~0x1F) === 0 && ((1 << (_la - 1313)) & 4294965247) !== 0) || ((((_la - 1345)) & ~0x1F) === 0 && ((1 << (_la - 1345)) & 4294967295) !== 0) || ((((_la - 1377)) & ~0x1F) === 0 && ((1 << (_la - 1377)) & 4292870143) !== 0) || ((((_la - 1409)) & ~0x1F) === 0 && ((1 << (_la - 1409)) & 4261412799) !== 0) || ((((_la - 1441)) & ~0x1F) === 0 && ((1 << (_la - 1441)) & 4294967295) !== 0) || ((((_la - 1473)) & ~0x1F) === 0 && ((1 << (_la - 1473)) & 4261281791) !== 0) || ((((_la - 1505)) & ~0x1F) === 0 && ((1 << (_la - 1505)) & 3221221375) !== 0) || ((((_la - 1537)) & ~0x1F) === 0 && ((1 << (_la - 1537)) & 4294967295) !== 0) || ((((_la - 1570)) & ~0x1F) === 0 && ((1 << (_la - 1570)) & 4294967295) !== 0) || ((((_la - 1602)) & ~0x1F) === 0 && ((1 << (_la - 1602)) & 4261412863) !== 0) || ((((_la - 1634)) & ~0x1F) === 0 && ((1 << (_la - 1634)) & 4294967295) !== 0) || ((((_la - 1666)) & ~0x1F) === 0 && ((1 << (_la - 1666)) & 4294967295) !== 0) || ((((_la - 1698)) & ~0x1F) === 0 && ((1 << (_la - 1698)) & 4294967295) !== 0) || ((((_la - 1730)) & ~0x1F) === 0 && ((1 << (_la - 1730)) & 4294967295) !== 0) || ((((_la - 1762)) & ~0x1F) === 0 && ((1 << (_la - 1762)) & 4294967295) !== 0) || ((((_la - 1794)) & ~0x1F) === 0 && ((1 << (_la - 1794)) & 4294967295) !== 0) || ((((_la - 1826)) & ~0x1F) === 0 && ((1 << (_la - 1826)) & 4294967295) !== 0) || ((((_la - 1858)) & ~0x1F) === 0 && ((1 << (_la - 1858)) & 4294967295) !== 0) || ((((_la - 1890)) & ~0x1F) === 0 && ((1 << (_la - 1890)) & 4294967295) !== 0) || ((((_la - 1922)) & ~0x1F) === 0 && ((1 << (_la - 1922)) & 4294901759) !== 0) || ((((_la - 1954)) & ~0x1F) === 0 && ((1 << (_la - 1954)) & 4294966271) !== 0) || ((((_la - 1986)) & ~0x1F) === 0 && ((1 << (_la - 1986)) & 4294868991) !== 0) || ((((_la - 2018)) & ~0x1F) === 0 && ((1 << (_la - 2018)) & 4294967167) !== 0) || ((((_la - 2050)) & ~0x1F) === 0 && ((1 << (_la - 2050)) & 4286578687) !== 0) || ((((_la - 2082)) & ~0x1F) === 0 && ((1 << (_la - 2082)) & 4294836223) !== 0) || ((((_la - 2115)) & ~0x1F) === 0 && ((1 << (_la - 2115)) & 3758092223) !== 0) || ((((_la - 2147)) & ~0x1F) === 0 && ((1 << (_la - 2147)) & 4293918719) !== 0) || ((((_la - 2179)) & ~0x1F) === 0 && ((1 << (_la - 2179)) & 4294965247) !== 0) || _la===2211 || _la===2216 || _la===2252) {
				{
				this.state = 6102;
				this.subpartition_name();
				}
			}

			this.state = 6105;
			this.range_values_clause();
			this.state = 6107;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===232 || _la===765 || _la===953 || _la===1184 || _la===1909 || _la===2080) {
				{
				this.state = 6106;
				this.partitioning_storage_clause();
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public list_subpartition_desc(): List_subpartition_descContext {
		let localctx: List_subpartition_descContext = new List_subpartition_descContext(this, this._ctx, this.state);
		this.enterRule(localctx, 588, PlSqlParser.RULE_list_subpartition_desc);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 6109;
			this.match(PlSqlParser.SUBPARTITION);
			this.state = 6111;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & 2684286839) !== 0) || ((((_la - 64)) & ~0x1F) === 0 && ((1 << (_la - 64)) & 3220168703) !== 0) || ((((_la - 96)) & ~0x1F) === 0 && ((1 << (_la - 96)) & 4294965247) !== 0) || ((((_la - 128)) & ~0x1F) === 0 && ((1 << (_la - 128)) & 2147221503) !== 0) || ((((_la - 160)) & ~0x1F) === 0 && ((1 << (_la - 160)) & 4293910527) !== 0) || ((((_la - 192)) & ~0x1F) === 0 && ((1 << (_la - 192)) & 4294967295) !== 0) || ((((_la - 224)) & ~0x1F) === 0 && ((1 << (_la - 224)) & 4160749311) !== 0) || ((((_la - 256)) & ~0x1F) === 0 && ((1 << (_la - 256)) & 4294967295) !== 0) || ((((_la - 289)) & ~0x1F) === 0 && ((1 << (_la - 289)) & 2147483647) !== 0) || ((((_la - 321)) & ~0x1F) === 0 && ((1 << (_la - 321)) & 3221225407) !== 0) || ((((_la - 353)) & ~0x1F) === 0 && ((1 << (_la - 353)) & 4294705151) !== 0) || ((((_la - 385)) & ~0x1F) === 0 && ((1 << (_la - 385)) & 2080372479) !== 0) || ((((_la - 417)) & ~0x1F) === 0 && ((1 << (_la - 417)) & 4026433535) !== 0) || ((((_la - 449)) & ~0x1F) === 0 && ((1 << (_la - 449)) & 4261412863) !== 0) || ((((_la - 481)) & ~0x1F) === 0 && ((1 << (_la - 481)) & 4294967295) !== 0) || ((((_la - 513)) & ~0x1F) === 0 && ((1 << (_la - 513)) & 4294967295) !== 0) || ((((_la - 545)) & ~0x1F) === 0 && ((1 << (_la - 545)) & 3925868029) !== 0) || ((((_la - 577)) & ~0x1F) === 0 && ((1 << (_la - 577)) & 4278189823) !== 0) || ((((_la - 609)) & ~0x1F) === 0 && ((1 << (_la - 609)) & 4290772991) !== 0) || ((((_la - 641)) & ~0x1F) === 0 && ((1 << (_la - 641)) & 4026529791) !== 0) || ((((_la - 673)) & ~0x1F) === 0 && ((1 << (_la - 673)) & 4290478079) !== 0) || ((((_la - 705)) & ~0x1F) === 0 && ((1 << (_la - 705)) & 4294967295) !== 0) || ((((_la - 737)) & ~0x1F) === 0 && ((1 << (_la - 737)) & 4293918719) !== 0) || ((((_la - 769)) & ~0x1F) === 0 && ((1 << (_la - 769)) & 4294967167) !== 0) || ((((_la - 801)) & ~0x1F) === 0 && ((1 << (_la - 801)) & 4294967295) !== 0) || ((((_la - 833)) & ~0x1F) === 0 && ((1 << (_la - 833)) & 4160749055) !== 0) || ((((_la - 865)) & ~0x1F) === 0 && ((1 << (_la - 865)) & 4290772991) !== 0) || ((((_la - 897)) & ~0x1F) === 0 && ((1 << (_la - 897)) & 4294967295) !== 0) || ((((_la - 929)) & ~0x1F) === 0 && ((1 << (_la - 929)) & 4278190079) !== 0) || ((((_la - 961)) & ~0x1F) === 0 && ((1 << (_la - 961)) & 4294967295) !== 0) || ((((_la - 993)) & ~0x1F) === 0 && ((1 << (_la - 993)) & 4294967295) !== 0) || ((((_la - 1025)) & ~0x1F) === 0 && ((1 << (_la - 1025)) & 4294967295) !== 0) || ((((_la - 1057)) & ~0x1F) === 0 && ((1 << (_la - 1057)) & 2147418111) !== 0) || ((((_la - 1089)) & ~0x1F) === 0 && ((1 << (_la - 1089)) & 4227858175) !== 0) || ((((_la - 1121)) & ~0x1F) === 0 && ((1 << (_la - 1121)) & 4293918559) !== 0) || ((((_la - 1153)) & ~0x1F) === 0 && ((1 << (_la - 1153)) & 4294410239) !== 0) || ((((_la - 1185)) & ~0x1F) === 0 && ((1 << (_la - 1185)) & 4294965247) !== 0) || ((((_la - 1217)) & ~0x1F) === 0 && ((1 << (_la - 1217)) & 4279827455) !== 0) || ((((_la - 1249)) & ~0x1F) === 0 && ((1 << (_la - 1249)) & 4294967291) !== 0) || ((((_la - 1281)) & ~0x1F) === 0 && ((1 << (_la - 1281)) & 4227858431) !== 0) || ((((_la - 1313)) & ~0x1F) === 0 && ((1 << (_la - 1313)) & 4294965247) !== 0) || ((((_la - 1345)) & ~0x1F) === 0 && ((1 << (_la - 1345)) & 4294967295) !== 0) || ((((_la - 1377)) & ~0x1F) === 0 && ((1 << (_la - 1377)) & 4292870143) !== 0) || ((((_la - 1409)) & ~0x1F) === 0 && ((1 << (_la - 1409)) & 4261412799) !== 0) || ((((_la - 1441)) & ~0x1F) === 0 && ((1 << (_la - 1441)) & 4294967295) !== 0) || ((((_la - 1473)) & ~0x1F) === 0 && ((1 << (_la - 1473)) & 4261281791) !== 0) || ((((_la - 1505)) & ~0x1F) === 0 && ((1 << (_la - 1505)) & 3221221375) !== 0) || ((((_la - 1537)) & ~0x1F) === 0 && ((1 << (_la - 1537)) & 4294967295) !== 0) || ((((_la - 1570)) & ~0x1F) === 0 && ((1 << (_la - 1570)) & 4294967295) !== 0) || ((((_la - 1602)) & ~0x1F) === 0 && ((1 << (_la - 1602)) & 4261412863) !== 0) || ((((_la - 1634)) & ~0x1F) === 0 && ((1 << (_la - 1634)) & 4294967295) !== 0) || ((((_la - 1666)) & ~0x1F) === 0 && ((1 << (_la - 1666)) & 4294967295) !== 0) || ((((_la - 1698)) & ~0x1F) === 0 && ((1 << (_la - 1698)) & 4294967295) !== 0) || ((((_la - 1730)) & ~0x1F) === 0 && ((1 << (_la - 1730)) & 4294967295) !== 0) || ((((_la - 1762)) & ~0x1F) === 0 && ((1 << (_la - 1762)) & 4294967295) !== 0) || ((((_la - 1794)) & ~0x1F) === 0 && ((1 << (_la - 1794)) & 4294967295) !== 0) || ((((_la - 1826)) & ~0x1F) === 0 && ((1 << (_la - 1826)) & 4294967295) !== 0) || ((((_la - 1858)) & ~0x1F) === 0 && ((1 << (_la - 1858)) & 4294967295) !== 0) || ((((_la - 1890)) & ~0x1F) === 0 && ((1 << (_la - 1890)) & 4294967295) !== 0) || ((((_la - 1922)) & ~0x1F) === 0 && ((1 << (_la - 1922)) & 4294901759) !== 0) || ((((_la - 1954)) & ~0x1F) === 0 && ((1 << (_la - 1954)) & 4294966271) !== 0) || ((((_la - 1986)) & ~0x1F) === 0 && ((1 << (_la - 1986)) & 4294868991) !== 0) || ((((_la - 2018)) & ~0x1F) === 0 && ((1 << (_la - 2018)) & 4294967167) !== 0) || ((((_la - 2050)) & ~0x1F) === 0 && ((1 << (_la - 2050)) & 4286578687) !== 0) || ((((_la - 2082)) & ~0x1F) === 0 && ((1 << (_la - 2082)) & 4294836223) !== 0) || ((((_la - 2115)) & ~0x1F) === 0 && ((1 << (_la - 2115)) & 3758092223) !== 0) || ((((_la - 2147)) & ~0x1F) === 0 && ((1 << (_la - 2147)) & 4293918719) !== 0) || ((((_la - 2179)) & ~0x1F) === 0 && ((1 << (_la - 2179)) & 4294965247) !== 0) || _la===2211 || _la===2216 || _la===2252) {
				{
				this.state = 6110;
				this.subpartition_name();
				}
			}

			this.state = 6113;
			this.list_values_clause();
			this.state = 6115;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===232 || _la===765 || _la===953 || _la===1184 || _la===1909 || _la===2080) {
				{
				this.state = 6114;
				this.partitioning_storage_clause();
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public individual_hash_subparts(): Individual_hash_subpartsContext {
		let localctx: Individual_hash_subpartsContext = new Individual_hash_subpartsContext(this, this._ctx, this.state);
		this.enterRule(localctx, 590, PlSqlParser.RULE_individual_hash_subparts);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 6117;
			this.match(PlSqlParser.SUBPARTITION);
			this.state = 6119;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 707, this._ctx) ) {
			case 1:
				{
				this.state = 6118;
				this.subpartition_name();
				}
				break;
			}
			this.state = 6122;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===232 || _la===765 || _la===953 || _la===1184 || _la===1909 || _la===2080) {
				{
				this.state = 6121;
				this.partitioning_storage_clause();
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public hash_subparts_by_quantity(): Hash_subparts_by_quantityContext {
		let localctx: Hash_subparts_by_quantityContext = new Hash_subparts_by_quantityContext(this, this._ctx, this.state);
		this.enterRule(localctx, 592, PlSqlParser.RULE_hash_subparts_by_quantity);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 6124;
			this.match(PlSqlParser.SUBPARTITIONS);
			this.state = 6125;
			this.match(PlSqlParser.UNSIGNED_INTEGER);
			this.state = 6139;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1594) {
				{
				this.state = 6126;
				this.match(PlSqlParser.STORE);
				this.state = 6127;
				this.match(PlSqlParser.IN);
				this.state = 6128;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 6129;
				this.tablespace();
				this.state = 6134;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===2229) {
					{
					{
					this.state = 6130;
					this.match(PlSqlParser.COMMA);
					this.state = 6131;
					this.tablespace();
					}
					}
					this.state = 6136;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				this.state = 6137;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public range_values_clause(): Range_values_clauseContext {
		let localctx: Range_values_clauseContext = new Range_values_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 594, PlSqlParser.RULE_range_values_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 6141;
			this.match(PlSqlParser.VALUES);
			this.state = 6142;
			this.match(PlSqlParser.LESS);
			this.state = 6143;
			this.match(PlSqlParser.THAN);
			this.state = 6144;
			this.match(PlSqlParser.LEFT_PAREN);
			this.state = 6145;
			this.literal();
			this.state = 6150;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			while (_la===2229) {
				{
				{
				this.state = 6146;
				this.match(PlSqlParser.COMMA);
				this.state = 6147;
				this.literal();
				}
				}
				this.state = 6152;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			}
			this.state = 6153;
			this.match(PlSqlParser.RIGHT_PAREN);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public list_values_clause(): List_values_clauseContext {
		let localctx: List_values_clauseContext = new List_values_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 596, PlSqlParser.RULE_list_values_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 6155;
			this.match(PlSqlParser.VALUES);
			this.state = 6156;
			this.match(PlSqlParser.LEFT_PAREN);
			this.state = 6166;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 184:
			case 822:
			case 2190:
			case 2197:
			case 2202:
			case 2203:
			case 2204:
			case 2211:
			case 2217:
			case 2218:
			case 2219:
				{
				this.state = 6157;
				this.literal();
				this.state = 6162;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===2229) {
					{
					{
					this.state = 6158;
					this.match(PlSqlParser.COMMA);
					this.state = 6159;
					this.literal();
					}
					}
					this.state = 6164;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				}
				break;
			case 351:
				{
				this.state = 6165;
				this.match(PlSqlParser.DEFAULT);
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
			this.state = 6168;
			this.match(PlSqlParser.RIGHT_PAREN);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public table_partition_description(): Table_partition_descriptionContext {
		let localctx: Table_partition_descriptionContext = new Table_partition_descriptionContext(this, this._ctx, this.state);
		this.enterRule(localctx, 598, PlSqlParser.RULE_table_partition_description);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 6171;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1488) {
				{
				this.state = 6170;
				this.deferred_segment_creation();
				}
			}

			this.state = 6174;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===521 || _la===657 || _la===779 || _la===993 || _la===1227 || _la===1230 || _la===1593 || _la===1909) {
				{
				this.state = 6173;
				this.segment_attributes_clause();
				}
			}

			this.state = 6178;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 716, this._ctx) ) {
			case 1:
				{
				this.state = 6176;
				this.table_compression();
				}
				break;
			case 2:
				{
				this.state = 6177;
				this.key_compression();
				}
				break;
			}
			this.state = 6184;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1184) {
				{
				this.state = 6180;
				this.match(PlSqlParser.OVERFLOW);
				this.state = 6182;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===521 || _la===657 || _la===779 || _la===993 || _la===1227 || _la===1230 || _la===1593 || _la===1909) {
					{
					this.state = 6181;
					this.segment_attributes_clause();
					}
				}

				}
			}

			this.state = 6189;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 765:
				{
				this.state = 6186;
				this.lob_storage_clause();
				}
				break;
			case 2080:
				{
				this.state = 6187;
				this.varray_col_properties();
				}
				break;
			case 895:
				{
				this.state = 6188;
				this.nested_table_col_properties();
				}
				break;
			case 61:
			case 150:
			case 383:
			case 439:
			case 532:
			case 946:
			case 1010:
			case 1021:
			case 1052:
			case 1195:
			case 1424:
			case 1444:
			case 1451:
			case 1605:
			case 2223:
			case 2224:
			case 2229:
			case 2241:
				break;
			default:
				break;
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public partitioning_storage_clause(): Partitioning_storage_clauseContext {
		let localctx: Partitioning_storage_clauseContext = new Partitioning_storage_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 600, PlSqlParser.RULE_partitioning_storage_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 6211;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			do {
				{
				this.state = 6211;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 722, this._ctx) ) {
				case 1:
					{
					this.state = 6191;
					this.match(PlSqlParser.TABLESPACE);
					this.state = 6192;
					this.tablespace();
					}
					break;
				case 2:
					{
					this.state = 6193;
					this.match(PlSqlParser.OVERFLOW);
					this.state = 6196;
					this._errHandler.sync(this);
					switch ( this._interp.adaptivePredict(this._input, 720, this._ctx) ) {
					case 1:
						{
						this.state = 6194;
						this.match(PlSqlParser.TABLESPACE);
						this.state = 6195;
						this.tablespace();
						}
						break;
					}
					}
					break;
				case 3:
					{
					this.state = 6198;
					this.table_compression();
					}
					break;
				case 4:
					{
					this.state = 6199;
					this.key_compression();
					}
					break;
				case 5:
					{
					this.state = 6200;
					this.lob_partitioning_storage();
					}
					break;
				case 6:
					{
					this.state = 6201;
					this.match(PlSqlParser.VARRAY);
					this.state = 6202;
					this.varray_item();
					this.state = 6203;
					this.match(PlSqlParser.STORE);
					this.state = 6204;
					this.match(PlSqlParser.AS);
					this.state = 6206;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
					if (_la===96 || _la===1483) {
						{
						this.state = 6205;
						_la = this._input.LA(1);
						if(!(_la===96 || _la===1483)) {
						this._errHandler.recoverInline(this);
						}
						else {
							this._errHandler.reportMatch(this);
						    this.consume();
						}
						}
					}

					this.state = 6208;
					this.match(PlSqlParser.LOB);
					this.state = 6209;
					this.lob_segname();
					}
					break;
				}
				}
				this.state = 6213;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			} while (_la===232 || _la===765 || _la===953 || _la===1184 || _la===1909 || _la===2080);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public lob_partitioning_storage(): Lob_partitioning_storageContext {
		let localctx: Lob_partitioning_storageContext = new Lob_partitioning_storageContext(this, this._ctx, this.state);
		this.enterRule(localctx, 602, PlSqlParser.RULE_lob_partitioning_storage);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 6215;
			this.match(PlSqlParser.LOB);
			this.state = 6216;
			this.match(PlSqlParser.LEFT_PAREN);
			this.state = 6217;
			this.lob_item();
			this.state = 6218;
			this.match(PlSqlParser.RIGHT_PAREN);
			this.state = 6219;
			this.match(PlSqlParser.STORE);
			this.state = 6220;
			this.match(PlSqlParser.AS);
			this.state = 6222;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 724, this._ctx) ) {
			case 1:
				{
				this.state = 6221;
				_la = this._input.LA(1);
				if(!(_la===96 || _la===1483)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				}
				break;
			}
			this.state = 6237;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 1:
			case 2:
			case 3:
			case 4:
			case 5:
			case 6:
			case 7:
			case 8:
			case 9:
			case 10:
			case 11:
			case 12:
			case 13:
			case 14:
			case 15:
			case 16:
			case 17:
			case 18:
			case 19:
			case 20:
			case 21:
			case 22:
			case 23:
			case 24:
			case 25:
			case 26:
			case 27:
			case 28:
			case 29:
			case 30:
			case 31:
			case 32:
			case 33:
			case 34:
			case 36:
			case 37:
			case 38:
			case 40:
			case 41:
			case 42:
			case 44:
			case 45:
			case 46:
			case 47:
			case 49:
			case 50:
			case 51:
			case 52:
			case 53:
			case 54:
			case 55:
			case 56:
			case 57:
			case 58:
			case 59:
			case 60:
			case 63:
			case 64:
			case 65:
			case 66:
			case 67:
			case 68:
			case 69:
			case 70:
			case 71:
			case 72:
			case 73:
			case 74:
			case 75:
			case 76:
			case 78:
			case 79:
			case 80:
			case 81:
			case 82:
			case 83:
			case 85:
			case 86:
			case 87:
			case 88:
			case 89:
			case 90:
			case 91:
			case 92:
			case 93:
			case 95:
			case 96:
			case 97:
			case 98:
			case 99:
			case 100:
			case 101:
			case 102:
			case 103:
			case 104:
			case 105:
			case 106:
			case 108:
			case 109:
			case 110:
			case 111:
			case 112:
			case 113:
			case 114:
			case 115:
			case 116:
			case 117:
			case 118:
			case 119:
			case 120:
			case 121:
			case 122:
			case 123:
			case 124:
			case 125:
			case 126:
			case 127:
			case 128:
			case 129:
			case 130:
			case 131:
			case 132:
			case 133:
			case 134:
			case 135:
			case 136:
			case 137:
			case 138:
			case 139:
			case 140:
			case 141:
			case 142:
			case 143:
			case 144:
			case 145:
			case 147:
			case 148:
			case 149:
			case 150:
			case 151:
			case 152:
			case 153:
			case 154:
			case 155:
			case 156:
			case 157:
			case 158:
			case 160:
			case 161:
			case 162:
			case 163:
			case 164:
			case 165:
			case 166:
			case 167:
			case 168:
			case 169:
			case 170:
			case 171:
			case 172:
			case 174:
			case 175:
			case 176:
			case 177:
			case 178:
			case 179:
			case 181:
			case 182:
			case 183:
			case 184:
			case 185:
			case 186:
			case 187:
			case 188:
			case 189:
			case 190:
			case 191:
			case 192:
			case 193:
			case 194:
			case 195:
			case 196:
			case 197:
			case 198:
			case 199:
			case 200:
			case 201:
			case 202:
			case 203:
			case 204:
			case 205:
			case 206:
			case 207:
			case 208:
			case 209:
			case 210:
			case 211:
			case 212:
			case 213:
			case 214:
			case 215:
			case 216:
			case 217:
			case 218:
			case 219:
			case 220:
			case 221:
			case 222:
			case 223:
			case 224:
			case 225:
			case 226:
			case 227:
			case 228:
			case 229:
			case 230:
			case 231:
			case 233:
			case 234:
			case 235:
			case 236:
			case 237:
			case 238:
			case 239:
			case 240:
			case 241:
			case 242:
			case 243:
			case 244:
			case 245:
			case 246:
			case 247:
			case 248:
			case 249:
			case 250:
			case 252:
			case 253:
			case 254:
			case 255:
			case 256:
			case 257:
			case 258:
			case 259:
			case 260:
			case 261:
			case 262:
			case 263:
			case 264:
			case 265:
			case 266:
			case 267:
			case 268:
			case 269:
			case 270:
			case 271:
			case 272:
			case 273:
			case 274:
			case 275:
			case 276:
			case 277:
			case 278:
			case 279:
			case 280:
			case 281:
			case 282:
			case 283:
			case 284:
			case 285:
			case 286:
			case 287:
			case 289:
			case 290:
			case 291:
			case 292:
			case 293:
			case 294:
			case 295:
			case 296:
			case 297:
			case 298:
			case 299:
			case 300:
			case 301:
			case 302:
			case 303:
			case 304:
			case 305:
			case 306:
			case 307:
			case 308:
			case 309:
			case 310:
			case 311:
			case 312:
			case 313:
			case 314:
			case 315:
			case 316:
			case 317:
			case 318:
			case 319:
			case 321:
			case 322:
			case 323:
			case 324:
			case 325:
			case 326:
			case 328:
			case 329:
			case 330:
			case 331:
			case 332:
			case 333:
			case 334:
			case 335:
			case 336:
			case 337:
			case 338:
			case 339:
			case 340:
			case 341:
			case 342:
			case 343:
			case 344:
			case 345:
			case 346:
			case 347:
			case 348:
			case 349:
			case 350:
			case 352:
			case 353:
			case 354:
			case 355:
			case 356:
			case 357:
			case 358:
			case 359:
			case 360:
			case 361:
			case 362:
			case 363:
			case 364:
			case 365:
			case 366:
			case 367:
			case 368:
			case 369:
			case 370:
			case 372:
			case 373:
			case 374:
			case 375:
			case 376:
			case 377:
			case 378:
			case 379:
			case 380:
			case 381:
			case 382:
			case 383:
			case 384:
			case 385:
			case 386:
			case 387:
			case 388:
			case 389:
			case 390:
			case 391:
			case 392:
			case 394:
			case 395:
			case 397:
			case 398:
			case 399:
			case 400:
			case 401:
			case 402:
			case 403:
			case 404:
			case 405:
			case 406:
			case 407:
			case 408:
			case 409:
			case 410:
			case 412:
			case 413:
			case 414:
			case 415:
			case 417:
			case 418:
			case 419:
			case 420:
			case 421:
			case 422:
			case 423:
			case 424:
			case 425:
			case 426:
			case 427:
			case 428:
			case 429:
			case 430:
			case 431:
			case 434:
			case 435:
			case 436:
			case 437:
			case 438:
			case 439:
			case 440:
			case 441:
			case 442:
			case 443:
			case 444:
			case 446:
			case 447:
			case 448:
			case 449:
			case 450:
			case 451:
			case 452:
			case 453:
			case 454:
			case 455:
			case 456:
			case 457:
			case 458:
			case 459:
			case 460:
			case 461:
			case 462:
			case 463:
			case 464:
			case 465:
			case 466:
			case 467:
			case 468:
			case 469:
			case 470:
			case 471:
			case 472:
			case 473:
			case 475:
			case 476:
			case 477:
			case 478:
			case 479:
			case 480:
			case 481:
			case 482:
			case 483:
			case 484:
			case 485:
			case 486:
			case 487:
			case 488:
			case 489:
			case 490:
			case 491:
			case 492:
			case 493:
			case 494:
			case 495:
			case 496:
			case 497:
			case 498:
			case 499:
			case 500:
			case 501:
			case 502:
			case 503:
			case 504:
			case 505:
			case 506:
			case 507:
			case 508:
			case 509:
			case 510:
			case 511:
			case 512:
			case 513:
			case 514:
			case 515:
			case 516:
			case 517:
			case 518:
			case 519:
			case 520:
			case 521:
			case 522:
			case 523:
			case 524:
			case 525:
			case 526:
			case 527:
			case 528:
			case 529:
			case 530:
			case 531:
			case 532:
			case 533:
			case 534:
			case 535:
			case 536:
			case 537:
			case 538:
			case 539:
			case 540:
			case 541:
			case 542:
			case 543:
			case 544:
			case 545:
			case 547:
			case 548:
			case 549:
			case 550:
			case 551:
			case 552:
			case 553:
			case 555:
			case 556:
			case 557:
			case 558:
			case 559:
			case 560:
			case 561:
			case 562:
			case 563:
			case 564:
			case 565:
			case 566:
			case 567:
			case 568:
			case 569:
			case 572:
			case 574:
			case 575:
			case 576:
			case 577:
			case 578:
			case 579:
			case 580:
			case 581:
			case 582:
			case 583:
			case 584:
			case 586:
			case 587:
			case 588:
			case 589:
			case 590:
			case 591:
			case 592:
			case 593:
			case 594:
			case 595:
			case 596:
			case 597:
			case 598:
			case 599:
			case 600:
			case 602:
			case 603:
			case 604:
			case 605:
			case 606:
			case 607:
			case 608:
			case 609:
			case 610:
			case 611:
			case 612:
			case 613:
			case 614:
			case 615:
			case 616:
			case 617:
			case 618:
			case 619:
			case 620:
			case 621:
			case 622:
			case 623:
			case 624:
			case 625:
			case 626:
			case 627:
			case 628:
			case 629:
			case 630:
			case 632:
			case 633:
			case 634:
			case 635:
			case 636:
			case 637:
			case 638:
			case 639:
			case 640:
			case 641:
			case 642:
			case 643:
			case 644:
			case 645:
			case 646:
			case 647:
			case 648:
			case 649:
			case 650:
			case 651:
			case 653:
			case 654:
			case 655:
			case 656:
			case 657:
			case 658:
			case 659:
			case 660:
			case 661:
			case 662:
			case 663:
			case 664:
			case 665:
			case 666:
			case 667:
			case 668:
			case 670:
			case 671:
			case 672:
			case 673:
			case 674:
			case 675:
			case 676:
			case 677:
			case 678:
			case 679:
			case 680:
			case 681:
			case 682:
			case 683:
			case 684:
			case 685:
			case 686:
			case 687:
			case 689:
			case 690:
			case 692:
			case 693:
			case 694:
			case 696:
			case 697:
			case 698:
			case 699:
			case 700:
			case 701:
			case 702:
			case 703:
			case 704:
			case 705:
			case 706:
			case 707:
			case 708:
			case 709:
			case 710:
			case 711:
			case 712:
			case 713:
			case 714:
			case 715:
			case 716:
			case 717:
			case 718:
			case 719:
			case 720:
			case 721:
			case 722:
			case 723:
			case 724:
			case 725:
			case 726:
			case 727:
			case 728:
			case 729:
			case 730:
			case 731:
			case 732:
			case 733:
			case 734:
			case 735:
			case 736:
			case 737:
			case 738:
			case 739:
			case 740:
			case 741:
			case 742:
			case 743:
			case 744:
			case 745:
			case 746:
			case 747:
			case 748:
			case 749:
			case 750:
			case 751:
			case 752:
			case 753:
			case 754:
			case 755:
			case 756:
			case 758:
			case 759:
			case 760:
			case 761:
			case 762:
			case 763:
			case 764:
			case 765:
			case 766:
			case 767:
			case 768:
			case 769:
			case 770:
			case 771:
			case 772:
			case 773:
			case 774:
			case 775:
			case 777:
			case 778:
			case 779:
			case 780:
			case 781:
			case 782:
			case 783:
			case 784:
			case 785:
			case 786:
			case 787:
			case 788:
			case 789:
			case 790:
			case 791:
			case 792:
			case 793:
			case 794:
			case 795:
			case 796:
			case 797:
			case 798:
			case 799:
			case 800:
			case 801:
			case 802:
			case 803:
			case 804:
			case 805:
			case 806:
			case 807:
			case 808:
			case 809:
			case 810:
			case 811:
			case 812:
			case 813:
			case 814:
			case 815:
			case 816:
			case 817:
			case 818:
			case 819:
			case 820:
			case 821:
			case 822:
			case 823:
			case 824:
			case 825:
			case 826:
			case 827:
			case 828:
			case 829:
			case 830:
			case 831:
			case 832:
			case 833:
			case 834:
			case 835:
			case 836:
			case 837:
			case 838:
			case 839:
			case 840:
			case 841:
			case 843:
			case 844:
			case 845:
			case 846:
			case 847:
			case 848:
			case 849:
			case 850:
			case 851:
			case 852:
			case 853:
			case 854:
			case 855:
			case 856:
			case 857:
			case 858:
			case 859:
			case 861:
			case 862:
			case 863:
			case 864:
			case 865:
			case 866:
			case 867:
			case 868:
			case 869:
			case 870:
			case 871:
			case 872:
			case 873:
			case 874:
			case 875:
			case 876:
			case 877:
			case 878:
			case 879:
			case 880:
			case 881:
			case 882:
			case 883:
			case 884:
			case 885:
			case 886:
			case 888:
			case 889:
			case 890:
			case 891:
			case 892:
			case 893:
			case 894:
			case 895:
			case 896:
			case 897:
			case 898:
			case 899:
			case 900:
			case 901:
			case 902:
			case 903:
			case 904:
			case 905:
			case 906:
			case 907:
			case 908:
			case 909:
			case 910:
			case 911:
			case 912:
			case 913:
			case 914:
			case 915:
			case 916:
			case 917:
			case 918:
			case 919:
			case 920:
			case 921:
			case 922:
			case 923:
			case 924:
			case 925:
			case 926:
			case 927:
			case 928:
			case 929:
			case 930:
			case 931:
			case 932:
			case 933:
			case 934:
			case 935:
			case 936:
			case 937:
			case 938:
			case 939:
			case 940:
			case 941:
			case 942:
			case 943:
			case 944:
			case 945:
			case 946:
			case 947:
			case 948:
			case 949:
			case 950:
			case 951:
			case 952:
			case 954:
			case 955:
			case 956:
			case 957:
			case 958:
			case 959:
			case 960:
			case 961:
			case 962:
			case 963:
			case 964:
			case 965:
			case 966:
			case 967:
			case 968:
			case 969:
			case 970:
			case 971:
			case 972:
			case 973:
			case 974:
			case 975:
			case 976:
			case 977:
			case 978:
			case 979:
			case 980:
			case 981:
			case 982:
			case 983:
			case 984:
			case 985:
			case 986:
			case 987:
			case 988:
			case 989:
			case 990:
			case 991:
			case 992:
			case 993:
			case 994:
			case 995:
			case 996:
			case 997:
			case 998:
			case 999:
			case 1000:
			case 1001:
			case 1002:
			case 1003:
			case 1004:
			case 1005:
			case 1006:
			case 1007:
			case 1008:
			case 1009:
			case 1010:
			case 1011:
			case 1012:
			case 1013:
			case 1014:
			case 1015:
			case 1016:
			case 1017:
			case 1018:
			case 1019:
			case 1020:
			case 1021:
			case 1022:
			case 1023:
			case 1024:
			case 1025:
			case 1026:
			case 1027:
			case 1028:
			case 1029:
			case 1030:
			case 1031:
			case 1032:
			case 1033:
			case 1034:
			case 1035:
			case 1036:
			case 1037:
			case 1038:
			case 1039:
			case 1040:
			case 1041:
			case 1042:
			case 1043:
			case 1044:
			case 1045:
			case 1046:
			case 1047:
			case 1048:
			case 1049:
			case 1050:
			case 1051:
			case 1052:
			case 1053:
			case 1054:
			case 1055:
			case 1056:
			case 1057:
			case 1058:
			case 1059:
			case 1060:
			case 1061:
			case 1062:
			case 1063:
			case 1064:
			case 1065:
			case 1066:
			case 1067:
			case 1068:
			case 1069:
			case 1070:
			case 1071:
			case 1072:
			case 1074:
			case 1075:
			case 1076:
			case 1077:
			case 1078:
			case 1079:
			case 1080:
			case 1081:
			case 1082:
			case 1083:
			case 1084:
			case 1085:
			case 1086:
			case 1087:
			case 1089:
			case 1090:
			case 1091:
			case 1092:
			case 1093:
			case 1094:
			case 1095:
			case 1096:
			case 1098:
			case 1099:
			case 1100:
			case 1101:
			case 1102:
			case 1103:
			case 1104:
			case 1105:
			case 1106:
			case 1107:
			case 1108:
			case 1109:
			case 1110:
			case 1111:
			case 1112:
			case 1113:
			case 1114:
			case 1116:
			case 1117:
			case 1118:
			case 1119:
			case 1120:
			case 1121:
			case 1122:
			case 1123:
			case 1124:
			case 1125:
			case 1127:
			case 1129:
			case 1130:
			case 1131:
			case 1132:
			case 1133:
			case 1134:
			case 1135:
			case 1136:
			case 1137:
			case 1138:
			case 1139:
			case 1140:
			case 1142:
			case 1143:
			case 1144:
			case 1145:
			case 1146:
			case 1147:
			case 1148:
			case 1149:
			case 1150:
			case 1151:
			case 1152:
			case 1153:
			case 1154:
			case 1155:
			case 1156:
			case 1157:
			case 1158:
			case 1159:
			case 1160:
			case 1161:
			case 1162:
			case 1163:
			case 1164:
			case 1165:
			case 1166:
			case 1167:
			case 1169:
			case 1170:
			case 1171:
			case 1173:
			case 1174:
			case 1175:
			case 1176:
			case 1177:
			case 1178:
			case 1179:
			case 1180:
			case 1181:
			case 1182:
			case 1183:
			case 1184:
			case 1185:
			case 1186:
			case 1187:
			case 1188:
			case 1189:
			case 1190:
			case 1191:
			case 1192:
			case 1193:
			case 1194:
			case 1195:
			case 1197:
			case 1198:
			case 1199:
			case 1200:
			case 1201:
			case 1202:
			case 1203:
			case 1204:
			case 1205:
			case 1206:
			case 1207:
			case 1208:
			case 1209:
			case 1210:
			case 1211:
			case 1212:
			case 1213:
			case 1214:
			case 1215:
			case 1216:
			case 1217:
			case 1218:
			case 1219:
			case 1220:
			case 1221:
			case 1222:
			case 1223:
			case 1224:
			case 1225:
			case 1226:
			case 1228:
			case 1229:
			case 1230:
			case 1231:
			case 1232:
			case 1236:
			case 1237:
			case 1241:
			case 1242:
			case 1243:
			case 1244:
			case 1245:
			case 1246:
			case 1247:
			case 1248:
			case 1249:
			case 1250:
			case 1252:
			case 1253:
			case 1254:
			case 1255:
			case 1256:
			case 1257:
			case 1258:
			case 1259:
			case 1260:
			case 1261:
			case 1262:
			case 1263:
			case 1264:
			case 1265:
			case 1266:
			case 1267:
			case 1268:
			case 1269:
			case 1270:
			case 1271:
			case 1272:
			case 1273:
			case 1274:
			case 1275:
			case 1276:
			case 1277:
			case 1278:
			case 1279:
			case 1280:
			case 1281:
			case 1282:
			case 1283:
			case 1284:
			case 1285:
			case 1286:
			case 1287:
			case 1288:
			case 1289:
			case 1290:
			case 1291:
			case 1292:
			case 1293:
			case 1294:
			case 1295:
			case 1296:
			case 1297:
			case 1298:
			case 1299:
			case 1300:
			case 1301:
			case 1302:
			case 1303:
			case 1304:
			case 1305:
			case 1306:
			case 1308:
			case 1309:
			case 1310:
			case 1311:
			case 1312:
			case 1313:
			case 1314:
			case 1315:
			case 1316:
			case 1317:
			case 1318:
			case 1319:
			case 1320:
			case 1321:
			case 1322:
			case 1323:
			case 1325:
			case 1326:
			case 1327:
			case 1328:
			case 1329:
			case 1330:
			case 1331:
			case 1332:
			case 1333:
			case 1334:
			case 1335:
			case 1336:
			case 1337:
			case 1338:
			case 1339:
			case 1340:
			case 1341:
			case 1342:
			case 1343:
			case 1344:
			case 1345:
			case 1346:
			case 1347:
			case 1348:
			case 1349:
			case 1350:
			case 1351:
			case 1352:
			case 1353:
			case 1354:
			case 1355:
			case 1356:
			case 1357:
			case 1358:
			case 1359:
			case 1360:
			case 1361:
			case 1362:
			case 1363:
			case 1364:
			case 1365:
			case 1366:
			case 1367:
			case 1368:
			case 1369:
			case 1370:
			case 1371:
			case 1372:
			case 1373:
			case 1374:
			case 1375:
			case 1376:
			case 1377:
			case 1378:
			case 1379:
			case 1380:
			case 1381:
			case 1382:
			case 1383:
			case 1384:
			case 1385:
			case 1386:
			case 1387:
			case 1388:
			case 1389:
			case 1390:
			case 1391:
			case 1392:
			case 1393:
			case 1394:
			case 1395:
			case 1396:
			case 1397:
			case 1399:
			case 1400:
			case 1401:
			case 1402:
			case 1403:
			case 1404:
			case 1405:
			case 1406:
			case 1407:
			case 1408:
			case 1409:
			case 1410:
			case 1411:
			case 1412:
			case 1413:
			case 1414:
			case 1416:
			case 1417:
			case 1418:
			case 1419:
			case 1420:
			case 1421:
			case 1422:
			case 1423:
			case 1424:
			case 1425:
			case 1426:
			case 1427:
			case 1428:
			case 1429:
			case 1430:
			case 1431:
			case 1432:
			case 1433:
			case 1435:
			case 1436:
			case 1437:
			case 1438:
			case 1439:
			case 1440:
			case 1441:
			case 1442:
			case 1443:
			case 1444:
			case 1445:
			case 1446:
			case 1447:
			case 1448:
			case 1449:
			case 1450:
			case 1451:
			case 1452:
			case 1453:
			case 1454:
			case 1455:
			case 1456:
			case 1457:
			case 1458:
			case 1459:
			case 1460:
			case 1461:
			case 1462:
			case 1463:
			case 1464:
			case 1465:
			case 1466:
			case 1467:
			case 1468:
			case 1469:
			case 1470:
			case 1471:
			case 1472:
			case 1473:
			case 1474:
			case 1475:
			case 1476:
			case 1477:
			case 1478:
			case 1479:
			case 1480:
			case 1481:
			case 1482:
			case 1483:
			case 1484:
			case 1485:
			case 1486:
			case 1487:
			case 1488:
			case 1489:
			case 1491:
			case 1492:
			case 1493:
			case 1494:
			case 1495:
			case 1496:
			case 1497:
			case 1499:
			case 1500:
			case 1501:
			case 1502:
			case 1503:
			case 1504:
			case 1505:
			case 1506:
			case 1507:
			case 1508:
			case 1509:
			case 1510:
			case 1511:
			case 1512:
			case 1513:
			case 1514:
			case 1515:
			case 1516:
			case 1518:
			case 1519:
			case 1520:
			case 1521:
			case 1522:
			case 1523:
			case 1524:
			case 1525:
			case 1526:
			case 1527:
			case 1528:
			case 1529:
			case 1530:
			case 1531:
			case 1532:
			case 1533:
			case 1534:
			case 1536:
			case 1537:
			case 1538:
			case 1539:
			case 1540:
			case 1541:
			case 1542:
			case 1543:
			case 1544:
			case 1545:
			case 1546:
			case 1547:
			case 1548:
			case 1549:
			case 1550:
			case 1551:
			case 1552:
			case 1553:
			case 1554:
			case 1555:
			case 1556:
			case 1557:
			case 1558:
			case 1559:
			case 1560:
			case 1561:
			case 1562:
			case 1563:
			case 1564:
			case 1565:
			case 1566:
			case 1567:
			case 1568:
			case 1570:
			case 1571:
			case 1572:
			case 1573:
			case 1574:
			case 1575:
			case 1576:
			case 1577:
			case 1578:
			case 1579:
			case 1580:
			case 1581:
			case 1582:
			case 1583:
			case 1584:
			case 1585:
			case 1586:
			case 1587:
			case 1588:
			case 1589:
			case 1590:
			case 1591:
			case 1592:
			case 1593:
			case 1594:
			case 1595:
			case 1596:
			case 1597:
			case 1598:
			case 1599:
			case 1600:
			case 1601:
			case 1602:
			case 1603:
			case 1604:
			case 1605:
			case 1606:
			case 1607:
			case 1608:
			case 1609:
			case 1610:
			case 1611:
			case 1612:
			case 1613:
			case 1614:
			case 1615:
			case 1616:
			case 1617:
			case 1618:
			case 1619:
			case 1620:
			case 1621:
			case 1622:
			case 1623:
			case 1624:
			case 1625:
			case 1626:
			case 1628:
			case 1629:
			case 1630:
			case 1631:
			case 1632:
			case 1633:
			case 1634:
			case 1635:
			case 1636:
			case 1637:
			case 1638:
			case 1639:
			case 1640:
			case 1641:
			case 1642:
			case 1643:
			case 1644:
			case 1645:
			case 1646:
			case 1647:
			case 1648:
			case 1649:
			case 1650:
			case 1651:
			case 1652:
			case 1653:
			case 1654:
			case 1655:
			case 1656:
			case 1657:
			case 1658:
			case 1659:
			case 1660:
			case 1661:
			case 1662:
			case 1663:
			case 1664:
			case 1665:
			case 1666:
			case 1667:
			case 1668:
			case 1669:
			case 1670:
			case 1671:
			case 1672:
			case 1673:
			case 1674:
			case 1675:
			case 1676:
			case 1677:
			case 1678:
			case 1679:
			case 1680:
			case 1681:
			case 1682:
			case 1683:
			case 1684:
			case 1685:
			case 1686:
			case 1687:
			case 1688:
			case 1689:
			case 1690:
			case 1691:
			case 1692:
			case 1693:
			case 1694:
			case 1695:
			case 1696:
			case 1697:
			case 1698:
			case 1699:
			case 1700:
			case 1701:
			case 1702:
			case 1703:
			case 1704:
			case 1705:
			case 1706:
			case 1707:
			case 1708:
			case 1709:
			case 1710:
			case 1711:
			case 1712:
			case 1713:
			case 1714:
			case 1715:
			case 1716:
			case 1717:
			case 1718:
			case 1719:
			case 1720:
			case 1721:
			case 1722:
			case 1723:
			case 1724:
			case 1725:
			case 1726:
			case 1727:
			case 1728:
			case 1729:
			case 1730:
			case 1731:
			case 1732:
			case 1733:
			case 1734:
			case 1735:
			case 1736:
			case 1737:
			case 1738:
			case 1739:
			case 1740:
			case 1741:
			case 1742:
			case 1743:
			case 1744:
			case 1745:
			case 1746:
			case 1747:
			case 1748:
			case 1749:
			case 1750:
			case 1751:
			case 1752:
			case 1753:
			case 1754:
			case 1755:
			case 1756:
			case 1757:
			case 1758:
			case 1759:
			case 1760:
			case 1761:
			case 1762:
			case 1763:
			case 1764:
			case 1765:
			case 1766:
			case 1767:
			case 1768:
			case 1769:
			case 1770:
			case 1771:
			case 1772:
			case 1773:
			case 1774:
			case 1775:
			case 1776:
			case 1777:
			case 1778:
			case 1779:
			case 1780:
			case 1781:
			case 1782:
			case 1783:
			case 1784:
			case 1785:
			case 1786:
			case 1787:
			case 1788:
			case 1789:
			case 1790:
			case 1791:
			case 1792:
			case 1793:
			case 1794:
			case 1795:
			case 1796:
			case 1797:
			case 1798:
			case 1799:
			case 1800:
			case 1801:
			case 1802:
			case 1803:
			case 1804:
			case 1805:
			case 1806:
			case 1807:
			case 1808:
			case 1809:
			case 1810:
			case 1811:
			case 1812:
			case 1813:
			case 1814:
			case 1815:
			case 1816:
			case 1817:
			case 1818:
			case 1819:
			case 1820:
			case 1821:
			case 1822:
			case 1823:
			case 1824:
			case 1825:
			case 1826:
			case 1827:
			case 1828:
			case 1829:
			case 1830:
			case 1831:
			case 1832:
			case 1833:
			case 1834:
			case 1835:
			case 1836:
			case 1837:
			case 1838:
			case 1839:
			case 1840:
			case 1841:
			case 1842:
			case 1843:
			case 1844:
			case 1845:
			case 1846:
			case 1847:
			case 1848:
			case 1849:
			case 1850:
			case 1851:
			case 1852:
			case 1853:
			case 1854:
			case 1855:
			case 1856:
			case 1857:
			case 1858:
			case 1859:
			case 1860:
			case 1861:
			case 1862:
			case 1863:
			case 1864:
			case 1865:
			case 1866:
			case 1867:
			case 1868:
			case 1869:
			case 1870:
			case 1871:
			case 1872:
			case 1873:
			case 1874:
			case 1875:
			case 1876:
			case 1877:
			case 1878:
			case 1879:
			case 1880:
			case 1881:
			case 1882:
			case 1883:
			case 1884:
			case 1885:
			case 1886:
			case 1887:
			case 1888:
			case 1889:
			case 1890:
			case 1891:
			case 1892:
			case 1893:
			case 1894:
			case 1895:
			case 1896:
			case 1897:
			case 1898:
			case 1899:
			case 1900:
			case 1901:
			case 1902:
			case 1903:
			case 1904:
			case 1905:
			case 1906:
			case 1907:
			case 1908:
			case 1909:
			case 1910:
			case 1911:
			case 1912:
			case 1913:
			case 1914:
			case 1915:
			case 1916:
			case 1917:
			case 1918:
			case 1919:
			case 1920:
			case 1921:
			case 1922:
			case 1923:
			case 1924:
			case 1925:
			case 1926:
			case 1927:
			case 1928:
			case 1929:
			case 1930:
			case 1931:
			case 1932:
			case 1933:
			case 1934:
			case 1935:
			case 1936:
			case 1937:
			case 1939:
			case 1940:
			case 1941:
			case 1942:
			case 1943:
			case 1944:
			case 1945:
			case 1946:
			case 1947:
			case 1948:
			case 1949:
			case 1950:
			case 1951:
			case 1952:
			case 1953:
			case 1954:
			case 1955:
			case 1956:
			case 1957:
			case 1958:
			case 1959:
			case 1960:
			case 1961:
			case 1962:
			case 1963:
			case 1965:
			case 1966:
			case 1967:
			case 1968:
			case 1969:
			case 1970:
			case 1971:
			case 1972:
			case 1973:
			case 1974:
			case 1975:
			case 1976:
			case 1977:
			case 1978:
			case 1979:
			case 1980:
			case 1981:
			case 1982:
			case 1983:
			case 1984:
			case 1985:
			case 1986:
			case 1987:
			case 1988:
			case 1989:
			case 1990:
			case 1991:
			case 1992:
			case 1993:
			case 1994:
			case 1995:
			case 1996:
			case 1997:
			case 1998:
			case 1999:
			case 2000:
			case 2003:
			case 2004:
			case 2005:
			case 2006:
			case 2007:
			case 2008:
			case 2009:
			case 2010:
			case 2011:
			case 2012:
			case 2013:
			case 2014:
			case 2015:
			case 2016:
			case 2017:
			case 2018:
			case 2019:
			case 2020:
			case 2021:
			case 2022:
			case 2023:
			case 2024:
			case 2026:
			case 2027:
			case 2028:
			case 2029:
			case 2030:
			case 2031:
			case 2032:
			case 2033:
			case 2034:
			case 2035:
			case 2036:
			case 2037:
			case 2038:
			case 2039:
			case 2040:
			case 2041:
			case 2042:
			case 2043:
			case 2044:
			case 2045:
			case 2046:
			case 2047:
			case 2048:
			case 2049:
			case 2050:
			case 2051:
			case 2052:
			case 2053:
			case 2054:
			case 2055:
			case 2056:
			case 2057:
			case 2058:
			case 2059:
			case 2060:
			case 2061:
			case 2062:
			case 2063:
			case 2064:
			case 2065:
			case 2066:
			case 2067:
			case 2068:
			case 2069:
			case 2070:
			case 2071:
			case 2072:
			case 2074:
			case 2075:
			case 2076:
			case 2077:
			case 2078:
			case 2079:
			case 2080:
			case 2081:
			case 2082:
			case 2083:
			case 2084:
			case 2085:
			case 2086:
			case 2087:
			case 2088:
			case 2089:
			case 2090:
			case 2091:
			case 2092:
			case 2093:
			case 2094:
			case 2095:
			case 2096:
			case 2097:
			case 2098:
			case 2100:
			case 2101:
			case 2102:
			case 2103:
			case 2104:
			case 2105:
			case 2106:
			case 2107:
			case 2108:
			case 2109:
			case 2110:
			case 2111:
			case 2112:
			case 2113:
			case 2115:
			case 2116:
			case 2117:
			case 2118:
			case 2119:
			case 2120:
			case 2122:
			case 2123:
			case 2124:
			case 2125:
			case 2126:
			case 2128:
			case 2129:
			case 2130:
			case 2131:
			case 2132:
			case 2133:
			case 2134:
			case 2135:
			case 2136:
			case 2137:
			case 2138:
			case 2139:
			case 2140:
			case 2141:
			case 2142:
			case 2143:
			case 2145:
			case 2146:
			case 2147:
			case 2148:
			case 2149:
			case 2150:
			case 2151:
			case 2152:
			case 2153:
			case 2154:
			case 2155:
			case 2156:
			case 2157:
			case 2158:
			case 2159:
			case 2160:
			case 2161:
			case 2162:
			case 2163:
			case 2164:
			case 2165:
			case 2166:
			case 2168:
			case 2169:
			case 2170:
			case 2171:
			case 2172:
			case 2173:
			case 2174:
			case 2175:
			case 2176:
			case 2177:
			case 2178:
			case 2179:
			case 2180:
			case 2181:
			case 2182:
			case 2183:
			case 2184:
			case 2185:
			case 2186:
			case 2187:
			case 2188:
			case 2189:
			case 2191:
			case 2192:
			case 2193:
			case 2194:
			case 2195:
			case 2196:
			case 2197:
			case 2198:
			case 2199:
			case 2200:
			case 2201:
			case 2202:
			case 2203:
			case 2204:
			case 2205:
			case 2206:
			case 2207:
			case 2208:
			case 2209:
			case 2210:
			case 2211:
			case 2216:
			case 2252:
				{
				this.state = 6224;
				this.lob_segname();
				this.state = 6230;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===2223) {
					{
					this.state = 6225;
					this.match(PlSqlParser.LEFT_PAREN);
					this.state = 6226;
					this.match(PlSqlParser.TABLESPACE);
					this.state = 6227;
					this.tablespace();
					this.state = 6228;
					this.match(PlSqlParser.RIGHT_PAREN);
					}
				}

				}
				break;
			case 2223:
				{
				this.state = 6232;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 6233;
				this.match(PlSqlParser.TABLESPACE);
				this.state = 6234;
				this.tablespace();
				this.state = 6235;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public datatype_null_enable(): Datatype_null_enableContext {
		let localctx: Datatype_null_enableContext = new Datatype_null_enableContext(this, this._ctx, this.state);
		this.enterRule(localctx, 604, PlSqlParser.RULE_datatype_null_enable);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 6239;
			this.column_name();
			this.state = 6240;
			this.datatype();
			this.state = 6242;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1544) {
				{
				this.state = 6241;
				this.match(PlSqlParser.SORT);
				}
			}

			this.state = 6246;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===351) {
				{
				this.state = 6244;
				this.match(PlSqlParser.DEFAULT);
				this.state = 6245;
				this.expression();
				}
			}

			this.state = 6267;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===443) {
				{
				this.state = 6248;
				this.match(PlSqlParser.ENCRYPT);
				this.state = 6251;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===2063) {
					{
					this.state = 6249;
					this.match(PlSqlParser.USING);
					this.state = 6250;
					this.match(PlSqlParser.CHAR_STRING);
					}
				}

				this.state = 6256;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===601) {
					{
					this.state = 6253;
					this.match(PlSqlParser.IDENTIFIED);
					this.state = 6254;
					this.match(PlSqlParser.BY);
					this.state = 6255;
					this.match(PlSqlParser.REGULAR_ID);
					}
				}

				this.state = 6259;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===2219) {
					{
					this.state = 6258;
					this.match(PlSqlParser.CHAR_STRING);
					}
				}

				this.state = 6265;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===1010 || _la===1458) {
					{
					this.state = 6262;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
					if (_la===1010) {
						{
						this.state = 6261;
						this.match(PlSqlParser.NO);
						}
					}

					this.state = 6264;
					this.match(PlSqlParser.SALT);
					}
				}

				}
			}

			this.state = 6271;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1073) {
				{
				this.state = 6269;
				this.match(PlSqlParser.NOT);
				this.state = 6270;
				this.match(PlSqlParser.NULL_);
				}
			}

			this.state = 6274;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===383 || _la===439) {
				{
				this.state = 6273;
				_la = this._input.LA(1);
				if(!(_la===383 || _la===439)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public size_clause(): Size_clauseContext {
		let localctx: Size_clauseContext = new Size_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 606, PlSqlParser.RULE_size_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 6276;
			this.match(PlSqlParser.UNSIGNED_INTEGER);
			this.state = 6278;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===2252) {
				{
				this.state = 6277;
				this.match(PlSqlParser.REGULAR_ID);
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public table_compression(): Table_compressionContext {
		let localctx: Table_compressionContext = new Table_compressionContext(this, this._ctx, this.state);
		this.enterRule(localctx, 608, PlSqlParser.RULE_table_compression);
		let _la: number;
		try {
			this.state = 6293;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 232:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 6280;
				this.match(PlSqlParser.COMPRESS);
				this.state = 6290;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 740, this._ctx) ) {
				case 1:
					{
					this.state = 6281;
					this.match(PlSqlParser.BASIC);
					}
					break;
				case 2:
					{
					this.state = 6282;
					this.match(PlSqlParser.FOR);
					this.state = 6288;
					this._errHandler.sync(this);
					switch (this._input.LA(1)) {
					case 1122:
						{
						this.state = 6283;
						this.match(PlSqlParser.OLTP);
						}
						break;
					case 57:
					case 1334:
						{
						this.state = 6284;
						_la = this._input.LA(1);
						if(!(_la===57 || _la===1334)) {
						this._errHandler.recoverInline(this);
						}
						else {
							this._errHandler.reportMatch(this);
						    this.consume();
						}
						this.state = 6286;
						this._errHandler.sync(this);
						_la = this._input.LA(1);
						if (_la===594 || _la===791) {
							{
							this.state = 6285;
							_la = this._input.LA(1);
							if(!(_la===594 || _la===791)) {
							this._errHandler.recoverInline(this);
							}
							else {
								this._errHandler.reportMatch(this);
							    this.consume();
							}
							}
						}

						}
						break;
					default:
						throw new NoViableAltException(this);
					}
					}
					break;
				}
				}
				break;
			case 953:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 6292;
				this.match(PlSqlParser.NOCOMPRESS);
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public physical_attributes_clause(): Physical_attributes_clauseContext {
		let localctx: Physical_attributes_clauseContext = new Physical_attributes_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 610, PlSqlParser.RULE_physical_attributes_clause);
		try {
			let _alt: number;
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 6302;
			this._errHandler.sync(this);
			_alt = 1;
			do {
				switch (_alt) {
				case 1:
					{
					this.state = 6302;
					this._errHandler.sync(this);
					switch (this._input.LA(1)) {
					case 1227:
						{
						this.state = 6295;
						this.match(PlSqlParser.PCTFREE);
						this.state = 6296;
						localctx._pctfree = this.match(PlSqlParser.UNSIGNED_INTEGER);
						}
						break;
					case 1230:
						{
						this.state = 6297;
						this.match(PlSqlParser.PCTUSED);
						this.state = 6298;
						localctx._pctused = this.match(PlSqlParser.UNSIGNED_INTEGER);
						}
						break;
					case 657:
						{
						this.state = 6299;
						this.match(PlSqlParser.INITRANS);
						this.state = 6300;
						localctx._inittrans = this.match(PlSqlParser.UNSIGNED_INTEGER);
						}
						break;
					case 1593:
						{
						this.state = 6301;
						this.storage_clause();
						}
						break;
					default:
						throw new NoViableAltException(this);
					}
					}
					break;
				default:
					throw new NoViableAltException(this);
				}
				this.state = 6304;
				this._errHandler.sync(this);
				_alt = this._interp.adaptivePredict(this._input, 743, this._ctx);
			} while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public storage_clause(): Storage_clauseContext {
		let localctx: Storage_clauseContext = new Storage_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 612, PlSqlParser.RULE_storage_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 6306;
			this.match(PlSqlParser.STORAGE);
			this.state = 6307;
			this.match(PlSqlParser.LEFT_PAREN);
			this.state = 6333;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			do {
				{
				this.state = 6333;
				this._errHandler.sync(this);
				switch (this._input.LA(1)) {
				case 654:
					{
					this.state = 6308;
					this.match(PlSqlParser.INITIAL);
					this.state = 6309;
					localctx._initial_size = this.size_clause();
					}
					break;
				case 906:
					{
					this.state = 6310;
					this.match(PlSqlParser.NEXT);
					this.state = 6311;
					localctx._next_size = this.size_clause();
					}
					break;
				case 838:
					{
					this.state = 6312;
					this.match(PlSqlParser.MINEXTENTS);
					this.state = 6313;
					localctx._minextents = this._input.LT(1);
					_la = this._input.LA(1);
					if(!(_la===2004 || _la===2217)) {
					    localctx._minextents = this._errHandler.recoverInline(this);
					}
					else {
						this._errHandler.reportMatch(this);
					    this.consume();
					}
					}
					break;
				case 813:
					{
					this.state = 6314;
					this.match(PlSqlParser.MAXEXTENTS);
					this.state = 6315;
					localctx._minextents = this._input.LT(1);
					_la = this._input.LA(1);
					if(!(_la===2004 || _la===2217)) {
					    localctx._minextents = this._errHandler.recoverInline(this);
					}
					else {
						this._errHandler.reportMatch(this);
					    this.consume();
					}
					}
					break;
				case 1228:
					{
					this.state = 6316;
					this.match(PlSqlParser.PCTINCREASE);
					this.state = 6317;
					localctx._pctincrease = this.match(PlSqlParser.UNSIGNED_INTEGER);
					}
					break;
				case 551:
					{
					this.state = 6318;
					this.match(PlSqlParser.FREELISTS);
					this.state = 6319;
					localctx._freelists = this.match(PlSqlParser.UNSIGNED_INTEGER);
					}
					break;
				case 550:
					{
					this.state = 6320;
					this.match(PlSqlParser.FREELIST);
					this.state = 6321;
					this.match(PlSqlParser.GROUPS);
					this.state = 6322;
					localctx._freelist_groups = this.match(PlSqlParser.UNSIGNED_INTEGER);
					}
					break;
				case 1137:
					{
					this.state = 6323;
					this.match(PlSqlParser.OPTIMAL);
					this.state = 6326;
					this._errHandler.sync(this);
					switch (this._input.LA(1)) {
					case 2217:
						{
						this.state = 6324;
						this.size_clause();
						}
						break;
					case 1097:
						{
						this.state = 6325;
						this.match(PlSqlParser.NULL_);
						}
						break;
					default:
						throw new NoViableAltException(this);
					}
					}
					break;
				case 143:
					{
					this.state = 6328;
					this.match(PlSqlParser.BUFFER_POOL);
					this.state = 6329;
					_la = this._input.LA(1);
					if(!(_la===351 || _la===720 || _la===1365)) {
					this._errHandler.recoverInline(this);
					}
					else {
						this._errHandler.reportMatch(this);
					    this.consume();
					}
					}
					break;
				case 533:
					{
					this.state = 6330;
					this.match(PlSqlParser.FLASH_CACHE);
					this.state = 6331;
					_la = this._input.LA(1);
					if(!(_la===351 || _la===720 || _la===1007)) {
					this._errHandler.recoverInline(this);
					}
					else {
						this._errHandler.reportMatch(this);
					    this.consume();
					}
					}
					break;
				case 443:
					{
					this.state = 6332;
					this.match(PlSqlParser.ENCRYPT);
					}
					break;
				default:
					throw new NoViableAltException(this);
				}
				}
				this.state = 6335;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			} while (_la===143 || _la===443 || ((((_la - 533)) & ~0x1F) === 0 && ((1 << (_la - 533)) & 393217) !== 0) || _la===654 || _la===813 || _la===838 || _la===906 || _la===1137 || _la===1228);
			this.state = 6337;
			this.match(PlSqlParser.RIGHT_PAREN);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public deferred_segment_creation(): Deferred_segment_creationContext {
		let localctx: Deferred_segment_creationContext = new Deferred_segment_creationContext(this, this._ctx, this.state);
		this.enterRule(localctx, 614, PlSqlParser.RULE_deferred_segment_creation);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 6339;
			this.match(PlSqlParser.SEGMENT);
			this.state = 6340;
			this.match(PlSqlParser.CREATION);
			this.state = 6341;
			_la = this._input.LA(1);
			if(!(_la===354 || _la===613)) {
			this._errHandler.recoverInline(this);
			}
			else {
				this._errHandler.reportMatch(this);
			    this.consume();
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public segment_attributes_clause(): Segment_attributes_clauseContext {
		let localctx: Segment_attributes_clauseContext = new Segment_attributes_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 616, PlSqlParser.RULE_segment_attributes_clause);
		try {
			let _alt: number;
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 6347;
			this._errHandler.sync(this);
			_alt = 1;
			do {
				switch (_alt) {
				case 1:
					{
					this.state = 6347;
					this._errHandler.sync(this);
					switch (this._input.LA(1)) {
					case 657:
					case 1227:
					case 1230:
					case 1593:
						{
						this.state = 6343;
						this.physical_attributes_clause();
						}
						break;
					case 1909:
						{
						this.state = 6344;
						this.match(PlSqlParser.TABLESPACE);
						this.state = 6345;
						localctx._tablespace_name = this.id_expression();
						}
						break;
					case 521:
					case 779:
					case 993:
						{
						this.state = 6346;
						this.logging_clause();
						}
						break;
					default:
						throw new NoViableAltException(this);
					}
					}
					break;
				default:
					throw new NoViableAltException(this);
				}
				this.state = 6349;
				this._errHandler.sync(this);
				_alt = this._interp.adaptivePredict(this._input, 748, this._ctx);
			} while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public physical_properties(): Physical_propertiesContext {
		let localctx: Physical_propertiesContext = new Physical_propertiesContext(this, this._ctx, this.state);
		this.enterRule(localctx, 618, PlSqlParser.RULE_physical_properties);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 6352;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1488) {
				{
				this.state = 6351;
				this.deferred_segment_creation();
				}
			}

			this.state = 6354;
			this.segment_attributes_clause();
			this.state = 6356;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===232 || _la===953) {
				{
				this.state = 6355;
				this.table_compression();
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public row_movement_clause(): Row_movement_clauseContext {
		let localctx: Row_movement_clauseContext = new Row_movement_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 620, PlSqlParser.RULE_row_movement_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 6359;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===383 || _la===439) {
				{
				this.state = 6358;
				_la = this._input.LA(1);
				if(!(_la===383 || _la===439)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				}
			}

			this.state = 6361;
			this.match(PlSqlParser.ROW);
			this.state = 6362;
			this.match(PlSqlParser.MOVEMENT);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public flashback_archive_clause(): Flashback_archive_clauseContext {
		let localctx: Flashback_archive_clauseContext = new Flashback_archive_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 622, PlSqlParser.RULE_flashback_archive_clause);
		try {
			this.state = 6370;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 532:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 6364;
				this.match(PlSqlParser.FLASHBACK);
				this.state = 6365;
				this.match(PlSqlParser.ARCHIVE);
				this.state = 6366;
				localctx._flashback_archive = this.match(PlSqlParser.REGULAR_ID);
				}
				break;
			case 1010:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 6367;
				this.match(PlSqlParser.NO);
				this.state = 6368;
				this.match(PlSqlParser.FLASHBACK);
				this.state = 6369;
				this.match(PlSqlParser.ARCHIVE);
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public log_grp(): Log_grpContext {
		let localctx: Log_grpContext = new Log_grpContext(this, this._ctx, this.state);
		this.enterRule(localctx, 624, PlSqlParser.RULE_log_grp);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 6372;
			this.match(PlSqlParser.UNSIGNED_INTEGER);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public supplemental_table_logging(): Supplemental_table_loggingContext {
		let localctx: Supplemental_table_loggingContext = new Supplemental_table_loggingContext(this, this._ctx, this.state);
		this.enterRule(localctx, 626, PlSqlParser.RULE_supplemental_table_logging);
		let _la: number;
		try {
			this.state = 6414;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 18:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 6374;
				this.match(PlSqlParser.ADD);
				this.state = 6375;
				this.match(PlSqlParser.SUPPLEMENTAL);
				this.state = 6376;
				this.match(PlSqlParser.LOG);
				this.state = 6379;
				this._errHandler.sync(this);
				switch (this._input.LA(1)) {
				case 573:
					{
					this.state = 6377;
					this.supplemental_log_grp_clause();
					}
					break;
				case 317:
					{
					this.state = 6378;
					this.supplemental_id_key_clause();
					}
					break;
				default:
					throw new NoViableAltException(this);
				}
				this.state = 6390;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===2229) {
					{
					{
					this.state = 6381;
					this.match(PlSqlParser.COMMA);
					this.state = 6382;
					this.match(PlSqlParser.SUPPLEMENTAL);
					this.state = 6383;
					this.match(PlSqlParser.LOG);
					this.state = 6386;
					this._errHandler.sync(this);
					switch (this._input.LA(1)) {
					case 573:
						{
						this.state = 6384;
						this.supplemental_log_grp_clause();
						}
						break;
					case 317:
						{
						this.state = 6385;
						this.supplemental_id_key_clause();
						}
						break;
					default:
						throw new NoViableAltException(this);
					}
					}
					}
					this.state = 6392;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				}
				break;
			case 411:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 6393;
				this.match(PlSqlParser.DROP);
				this.state = 6394;
				this.match(PlSqlParser.SUPPLEMENTAL);
				this.state = 6395;
				this.match(PlSqlParser.LOG);
				this.state = 6399;
				this._errHandler.sync(this);
				switch (this._input.LA(1)) {
				case 317:
					{
					this.state = 6396;
					this.supplemental_id_key_clause();
					}
					break;
				case 573:
					{
					this.state = 6397;
					this.match(PlSqlParser.GROUP);
					this.state = 6398;
					this.log_grp();
					}
					break;
				default:
					throw new NoViableAltException(this);
				}
				this.state = 6411;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===2229) {
					{
					{
					this.state = 6401;
					this.match(PlSqlParser.COMMA);
					this.state = 6402;
					this.match(PlSqlParser.SUPPLEMENTAL);
					this.state = 6403;
					this.match(PlSqlParser.LOG);
					this.state = 6407;
					this._errHandler.sync(this);
					switch (this._input.LA(1)) {
					case 317:
						{
						this.state = 6404;
						this.supplemental_id_key_clause();
						}
						break;
					case 573:
						{
						this.state = 6405;
						this.match(PlSqlParser.GROUP);
						this.state = 6406;
						this.log_grp();
						}
						break;
					default:
						throw new NoViableAltException(this);
					}
					}
					}
					this.state = 6413;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public supplemental_log_grp_clause(): Supplemental_log_grp_clauseContext {
		let localctx: Supplemental_log_grp_clauseContext = new Supplemental_log_grp_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 628, PlSqlParser.RULE_supplemental_log_grp_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 6416;
			this.match(PlSqlParser.GROUP);
			this.state = 6417;
			this.log_grp();
			this.state = 6418;
			this.match(PlSqlParser.LEFT_PAREN);
			this.state = 6419;
			this.regular_id();
			this.state = 6422;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1010) {
				{
				this.state = 6420;
				this.match(PlSqlParser.NO);
				this.state = 6421;
				this.match(PlSqlParser.LOG);
				}
			}

			this.state = 6432;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			while (_la===2229) {
				{
				{
				this.state = 6424;
				this.match(PlSqlParser.COMMA);
				this.state = 6425;
				this.regular_id();
				this.state = 6428;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===1010) {
					{
					this.state = 6426;
					this.match(PlSqlParser.NO);
					this.state = 6427;
					this.match(PlSqlParser.LOG);
					}
				}

				}
				}
				this.state = 6434;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			}
			this.state = 6435;
			this.match(PlSqlParser.RIGHT_PAREN);
			this.state = 6437;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===40) {
				{
				this.state = 6436;
				this.match(PlSqlParser.ALWAYS);
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public supplemental_id_key_clause(): Supplemental_id_key_clauseContext {
		let localctx: Supplemental_id_key_clauseContext = new Supplemental_id_key_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 630, PlSqlParser.RULE_supplemental_id_key_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 6439;
			this.match(PlSqlParser.DATA);
			this.state = 6440;
			this.match(PlSqlParser.LEFT_PAREN);
			this.state = 6452;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			do {
				{
				{
				this.state = 6442;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===2229) {
					{
					this.state = 6441;
					this.match(PlSqlParser.COMMA);
					}
				}

				this.state = 6450;
				this._errHandler.sync(this);
				switch (this._input.LA(1)) {
				case 35:
					{
					this.state = 6444;
					this.match(PlSqlParser.ALL);
					}
					break;
				case 1304:
					{
					this.state = 6445;
					this.match(PlSqlParser.PRIMARY);
					this.state = 6446;
					this.match(PlSqlParser.KEY);
					}
					break;
				case 2002:
					{
					this.state = 6447;
					this.match(PlSqlParser.UNIQUE);
					}
					break;
				case 544:
					{
					this.state = 6448;
					this.match(PlSqlParser.FOREIGN);
					this.state = 6449;
					this.match(PlSqlParser.KEY);
					}
					break;
				default:
					throw new NoViableAltException(this);
				}
				}
				}
				this.state = 6454;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			} while (_la===35 || _la===544 || _la===1304 || _la===2002 || _la===2229);
			this.state = 6456;
			this.match(PlSqlParser.RIGHT_PAREN);
			this.state = 6457;
			this.match(PlSqlParser.COLUMNS);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public allocate_extent_clause(): Allocate_extent_clauseContext {
		let localctx: Allocate_extent_clauseContext = new Allocate_extent_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 632, PlSqlParser.RULE_allocate_extent_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 6459;
			this.match(PlSqlParser.ALLOCATE);
			this.state = 6460;
			this.match(PlSqlParser.EXTENT);
			this.state = 6473;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===2223) {
				{
				this.state = 6461;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 6468;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				do {
					{
					this.state = 6468;
					this._errHandler.sync(this);
					switch (this._input.LA(1)) {
					case 1535:
						{
						this.state = 6462;
						this.match(PlSqlParser.SIZE);
						this.state = 6463;
						this.size_clause();
						}
						break;
					case 318:
						{
						this.state = 6464;
						this.match(PlSqlParser.DATAFILE);
						this.state = 6465;
						localctx._datafile = this.match(PlSqlParser.CHAR_STRING);
						}
						break;
					case 672:
						{
						this.state = 6466;
						this.match(PlSqlParser.INSTANCE);
						this.state = 6467;
						localctx._inst_num = this.match(PlSqlParser.UNSIGNED_INTEGER);
						}
						break;
					default:
						throw new NoViableAltException(this);
					}
					}
					this.state = 6470;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				} while (_la===318 || _la===672 || _la===1535);
				this.state = 6472;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public deallocate_unused_clause(): Deallocate_unused_clauseContext {
		let localctx: Deallocate_unused_clauseContext = new Deallocate_unused_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 634, PlSqlParser.RULE_deallocate_unused_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 6475;
			this.match(PlSqlParser.DEALLOCATE);
			this.state = 6476;
			this.match(PlSqlParser.UNUSED);
			this.state = 6479;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===720) {
				{
				this.state = 6477;
				this.match(PlSqlParser.KEEP);
				this.state = 6478;
				this.size_clause();
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public shrink_clause(): Shrink_clauseContext {
		let localctx: Shrink_clauseContext = new Shrink_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 636, PlSqlParser.RULE_shrink_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 6481;
			this.match(PlSqlParser.SHRINK);
			this.state = 6482;
			this.match(PlSqlParser.SPACE_KEYWORD);
			this.state = 6484;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===221) {
				{
				this.state = 6483;
				this.match(PlSqlParser.COMPACT);
				}
			}

			this.state = 6487;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===162) {
				{
				this.state = 6486;
				this.match(PlSqlParser.CASCADE);
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public records_per_block_clause(): Records_per_block_clauseContext {
		let localctx: Records_per_block_clauseContext = new Records_per_block_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 638, PlSqlParser.RULE_records_per_block_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 6490;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===839 || _la===997) {
				{
				this.state = 6489;
				_la = this._input.LA(1);
				if(!(_la===839 || _la===997)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				}
			}

			this.state = 6492;
			this.match(PlSqlParser.RECORDS_PER_BLOCK);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public upgrade_table_clause(): Upgrade_table_clauseContext {
		let localctx: Upgrade_table_clauseContext = new Upgrade_table_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 640, PlSqlParser.RULE_upgrade_table_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 6494;
			this.match(PlSqlParser.UPGRADE);
			{
			this.state = 6496;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1073) {
				{
				this.state = 6495;
				this.match(PlSqlParser.NOT);
				}
			}

			this.state = 6498;
			this.match(PlSqlParser.INCLUDING);
			this.state = 6499;
			this.match(PlSqlParser.DATA);
			}
			this.state = 6501;
			this.column_properties();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public drop_table(): Drop_tableContext {
		let localctx: Drop_tableContext = new Drop_tableContext(this, this._ctx, this.state);
		this.enterRule(localctx, 642, PlSqlParser.RULE_drop_table);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 6503;
			this.match(PlSqlParser.DROP);
			this.state = 6504;
			this.match(PlSqlParser.TABLE);
			this.state = 6505;
			this.tableview_name();
			this.state = 6507;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1326) {
				{
				this.state = 6506;
				this.match(PlSqlParser.PURGE);
				}
			}

			this.state = 6509;
			this.match(PlSqlParser.SEMICOLON);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public drop_view(): Drop_viewContext {
		let localctx: Drop_viewContext = new Drop_viewContext(this, this._ctx, this.state);
		this.enterRule(localctx, 644, PlSqlParser.RULE_drop_view);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 6511;
			this.match(PlSqlParser.DROP);
			this.state = 6512;
			this.match(PlSqlParser.VIEW);
			this.state = 6513;
			this.tableview_name();
			this.state = 6516;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===162) {
				{
				this.state = 6514;
				this.match(PlSqlParser.CASCADE);
				this.state = 6515;
				this.match(PlSqlParser.CONSTRAINT);
				}
			}

			this.state = 6518;
			this.match(PlSqlParser.SEMICOLON);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public comment_on_column(): Comment_on_columnContext {
		let localctx: Comment_on_columnContext = new Comment_on_columnContext(this, this._ctx, this.state);
		this.enterRule(localctx, 646, PlSqlParser.RULE_comment_on_column);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 6520;
			this.match(PlSqlParser.COMMENT);
			this.state = 6521;
			this.match(PlSqlParser.ON);
			this.state = 6522;
			this.match(PlSqlParser.COLUMN);
			this.state = 6523;
			this.column_name();
			this.state = 6524;
			this.match(PlSqlParser.IS);
			this.state = 6525;
			this.quoted_string();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public enable_or_disable(): Enable_or_disableContext {
		let localctx: Enable_or_disableContext = new Enable_or_disableContext(this, this._ctx, this.state);
		this.enterRule(localctx, 648, PlSqlParser.RULE_enable_or_disable);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 6527;
			_la = this._input.LA(1);
			if(!(_la===383 || _la===439)) {
			this._errHandler.recoverInline(this);
			}
			else {
				this._errHandler.reportMatch(this);
			    this.consume();
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public allow_or_disallow(): Allow_or_disallowContext {
		let localctx: Allow_or_disallowContext = new Allow_or_disallowContext(this, this._ctx, this.state);
		this.enterRule(localctx, 650, PlSqlParser.RULE_allow_or_disallow);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 6529;
			_la = this._input.LA(1);
			if(!(_la===37 || _la===387)) {
			this._errHandler.recoverInline(this);
			}
			else {
				this._errHandler.reportMatch(this);
			    this.consume();
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public create_synonym(): Create_synonymContext {
		let localctx: Create_synonymContext = new Create_synonymContext(this, this._ctx, this.state);
		this.enterRule(localctx, 652, PlSqlParser.RULE_create_synonym);
		let _la: number;
		try {
			this.state = 6573;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 784, this._ctx) ) {
			case 1:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 6531;
				this.match(PlSqlParser.CREATE);
				this.state = 6534;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===1172) {
					{
					this.state = 6532;
					this.match(PlSqlParser.OR);
					this.state = 6533;
					this.match(PlSqlParser.REPLACE);
					}
				}

				this.state = 6536;
				this.match(PlSqlParser.PUBLIC);
				this.state = 6537;
				this.match(PlSqlParser.SYNONYM);
				this.state = 6538;
				this.synonym_name();
				this.state = 6539;
				this.match(PlSqlParser.FOR);
				this.state = 6543;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 778, this._ctx) ) {
				case 1:
					{
					this.state = 6540;
					this.schema_name();
					this.state = 6541;
					this.match(PlSqlParser.PERIOD);
					}
					break;
				}
				this.state = 6545;
				this.schema_object_name();
				this.state = 6548;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 779, this._ctx) ) {
				case 1:
					{
					this.state = 6546;
					this.match(PlSqlParser.AT_SIGN);
					this.state = 6547;
					this.link_name();
					}
					break;
				}
				}
				break;
			case 2:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 6550;
				this.match(PlSqlParser.CREATE);
				this.state = 6553;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===1172) {
					{
					this.state = 6551;
					this.match(PlSqlParser.OR);
					this.state = 6552;
					this.match(PlSqlParser.REPLACE);
					}
				}

				this.state = 6555;
				this.match(PlSqlParser.SYNONYM);
				this.state = 6559;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 781, this._ctx) ) {
				case 1:
					{
					this.state = 6556;
					this.schema_name();
					this.state = 6557;
					this.match(PlSqlParser.PERIOD);
					}
					break;
				}
				this.state = 6561;
				this.synonym_name();
				this.state = 6562;
				this.match(PlSqlParser.FOR);
				this.state = 6566;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 782, this._ctx) ) {
				case 1:
					{
					this.state = 6563;
					this.schema_name();
					this.state = 6564;
					this.match(PlSqlParser.PERIOD);
					}
					break;
				}
				this.state = 6568;
				this.schema_object_name();
				this.state = 6571;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 783, this._ctx) ) {
				case 1:
					{
					this.state = 6569;
					this.match(PlSqlParser.AT_SIGN);
					this.state = 6570;
					this.link_name();
					}
					break;
				}
				}
				break;
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public comment_on_table(): Comment_on_tableContext {
		let localctx: Comment_on_tableContext = new Comment_on_tableContext(this, this._ctx, this.state);
		this.enterRule(localctx, 654, PlSqlParser.RULE_comment_on_table);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 6575;
			this.match(PlSqlParser.COMMENT);
			this.state = 6576;
			this.match(PlSqlParser.ON);
			this.state = 6577;
			this.match(PlSqlParser.TABLE);
			this.state = 6578;
			this.tableview_name();
			this.state = 6579;
			this.match(PlSqlParser.IS);
			this.state = 6580;
			this.quoted_string();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public alter_cluster(): Alter_clusterContext {
		let localctx: Alter_clusterContext = new Alter_clusterContext(this, this._ctx, this.state);
		this.enterRule(localctx, 656, PlSqlParser.RULE_alter_cluster);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 6582;
			this.match(PlSqlParser.ALTER);
			this.state = 6583;
			this.match(PlSqlParser.CLUSTER);
			this.state = 6584;
			this.cluster_name();
			this.state = 6591;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			do {
				{
				this.state = 6591;
				this._errHandler.sync(this);
				switch (this._input.LA(1)) {
				case 657:
				case 1227:
				case 1230:
				case 1593:
					{
					this.state = 6585;
					this.physical_attributes_clause();
					}
					break;
				case 1535:
					{
					this.state = 6586;
					this.match(PlSqlParser.SIZE);
					this.state = 6587;
					this.size_clause();
					}
					break;
				case 36:
					{
					this.state = 6588;
					this.allocate_extent_clause();
					}
					break;
				case 339:
					{
					this.state = 6589;
					this.deallocate_unused_clause();
					}
					break;
				case 150:
				case 946:
					{
					this.state = 6590;
					this.cache_or_nocache();
					}
					break;
				default:
					throw new NoViableAltException(this);
				}
				}
				this.state = 6593;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			} while (_la===36 || _la===150 || _la===339 || _la===657 || _la===946 || _la===1227 || _la===1230 || _la===1535 || _la===1593);
			this.state = 6596;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1021 || _la===1195) {
				{
				this.state = 6595;
				this.parallel_clause();
				}
			}

			this.state = 6598;
			this.match(PlSqlParser.SEMICOLON);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public cache_or_nocache(): Cache_or_nocacheContext {
		let localctx: Cache_or_nocacheContext = new Cache_or_nocacheContext(this, this._ctx, this.state);
		this.enterRule(localctx, 658, PlSqlParser.RULE_cache_or_nocache);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 6600;
			_la = this._input.LA(1);
			if(!(_la===150 || _la===946)) {
			this._errHandler.recoverInline(this);
			}
			else {
				this._errHandler.reportMatch(this);
			    this.consume();
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public database_name(): Database_nameContext {
		let localctx: Database_nameContext = new Database_nameContext(this, this._ctx, this.state);
		this.enterRule(localctx, 660, PlSqlParser.RULE_database_name);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 6602;
			this.regular_id();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public alter_database(): Alter_databaseContext {
		let localctx: Alter_databaseContext = new Alter_databaseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 662, PlSqlParser.RULE_alter_database);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 6604;
			this.match(PlSqlParser.ALTER);
			this.state = 6605;
			this.match(PlSqlParser.DATABASE);
			this.state = 6607;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 788, this._ctx) ) {
			case 1:
				{
				this.state = 6606;
				this.database_name();
				}
				break;
			}
			this.state = 6618;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 789, this._ctx) ) {
			case 1:
				{
				this.state = 6609;
				this.startup_clauses();
				}
				break;
			case 2:
				{
				this.state = 6610;
				this.recovery_clauses();
				}
				break;
			case 3:
				{
				this.state = 6611;
				this.database_file_clauses();
				}
				break;
			case 4:
				{
				this.state = 6612;
				this.logfile_clauses();
				}
				break;
			case 5:
				{
				this.state = 6613;
				this.controlfile_clauses();
				}
				break;
			case 6:
				{
				this.state = 6614;
				this.standby_database_clauses();
				}
				break;
			case 7:
				{
				this.state = 6615;
				this.default_settings_clause();
				}
				break;
			case 8:
				{
				this.state = 6616;
				this.instance_clauses();
				}
				break;
			case 9:
				{
				this.state = 6617;
				this.security_clause();
				}
				break;
			}
			this.state = 6620;
			this.match(PlSqlParser.SEMICOLON);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public startup_clauses(): Startup_clausesContext {
		let localctx: Startup_clausesContext = new Startup_clausesContext(this, this._ctx, this.state);
		this.enterRule(localctx, 664, PlSqlParser.RULE_startup_clauses);
		let _la: number;
		try {
			this.state = 6641;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 794, this._ctx) ) {
			case 1:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 6622;
				this.match(PlSqlParser.MOUNT);
				this.state = 6625;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===193 || _la===1566) {
					{
					this.state = 6623;
					_la = this._input.LA(1);
					if(!(_la===193 || _la===1566)) {
					this._errHandler.recoverInline(this);
					}
					else {
						this._errHandler.reportMatch(this);
					    this.consume();
					}
					this.state = 6624;
					this.match(PlSqlParser.DATABASE);
					}
				}

				}
				break;
			case 2:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 6627;
				this.match(PlSqlParser.OPEN);
				this.state = 6630;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===1353) {
					{
					this.state = 6628;
					this.match(PlSqlParser.READ);
					this.state = 6629;
					this.match(PlSqlParser.WRITE);
					}
				}

				this.state = 6633;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===1045 || _la===1410) {
					{
					this.state = 6632;
					this.resetlogs_or_noresetlogs();
					}
				}

				this.state = 6636;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===408 || _la===2029) {
					{
					this.state = 6635;
					this.upgrade_or_downgrade();
					}
				}

				}
				break;
			case 3:
				this.enterOuterAlt(localctx, 3);
				{
				this.state = 6638;
				this.match(PlSqlParser.OPEN);
				this.state = 6639;
				this.match(PlSqlParser.READ);
				this.state = 6640;
				this.match(PlSqlParser.ONLY);
				}
				break;
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public resetlogs_or_noresetlogs(): Resetlogs_or_noresetlogsContext {
		let localctx: Resetlogs_or_noresetlogsContext = new Resetlogs_or_noresetlogsContext(this, this._ctx, this.state);
		this.enterRule(localctx, 666, PlSqlParser.RULE_resetlogs_or_noresetlogs);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 6643;
			_la = this._input.LA(1);
			if(!(_la===1045 || _la===1410)) {
			this._errHandler.recoverInline(this);
			}
			else {
				this._errHandler.reportMatch(this);
			    this.consume();
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public upgrade_or_downgrade(): Upgrade_or_downgradeContext {
		let localctx: Upgrade_or_downgradeContext = new Upgrade_or_downgradeContext(this, this._ctx, this.state);
		this.enterRule(localctx, 668, PlSqlParser.RULE_upgrade_or_downgrade);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 6645;
			_la = this._input.LA(1);
			if(!(_la===408 || _la===2029)) {
			this._errHandler.recoverInline(this);
			}
			else {
				this._errHandler.reportMatch(this);
			    this.consume();
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public recovery_clauses(): Recovery_clausesContext {
		let localctx: Recovery_clausesContext = new Recovery_clausesContext(this, this._ctx, this.state);
		this.enterRule(localctx, 670, PlSqlParser.RULE_recovery_clauses);
		try {
			this.state = 6652;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 795, this._ctx) ) {
			case 1:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 6647;
				this.general_recovery();
				}
				break;
			case 2:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 6648;
				this.managed_standby_recovery();
				}
				break;
			case 3:
				this.enterOuterAlt(localctx, 3);
				{
				this.state = 6649;
				this.begin_or_end();
				this.state = 6650;
				this.match(PlSqlParser.BACKUP);
				}
				break;
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public begin_or_end(): Begin_or_endContext {
		let localctx: Begin_or_endContext = new Begin_or_endContext(this, this._ctx, this.state);
		this.enterRule(localctx, 672, PlSqlParser.RULE_begin_or_end);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 6654;
			_la = this._input.LA(1);
			if(!(_la===102 || _la===445)) {
			this._errHandler.recoverInline(this);
			}
			else {
				this._errHandler.reportMatch(this);
			    this.consume();
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public general_recovery(): General_recoveryContext {
		let localctx: General_recoveryContext = new General_recoveryContext(this, this._ctx, this.state);
		this.enterRule(localctx, 674, PlSqlParser.RULE_general_recovery);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 6656;
			this.match(PlSqlParser.RECOVER);
			this.state = 6658;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 796, this._ctx) ) {
			case 1:
				{
				this.state = 6657;
				this.match(PlSqlParser.AUTOMATIC);
				}
				break;
			}
			this.state = 6662;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 797, this._ctx) ) {
			case 1:
				{
				this.state = 6660;
				this.match(PlSqlParser.FROM);
				this.state = 6661;
				this.match(PlSqlParser.CHAR_STRING);
				}
				break;
			}
			this.state = 6686;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 803, this._ctx) ) {
			case 1:
				{
				this.state = 6668;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 798, this._ctx) ) {
				case 1:
					{
					this.state = 6664;
					this.full_database_recovery();
					}
					break;
				case 2:
					{
					this.state = 6665;
					this.partial_database_recovery();
					}
					break;
				case 3:
					{
					this.state = 6666;
					this.match(PlSqlParser.LOGFILE);
					this.state = 6667;
					this.match(PlSqlParser.CHAR_STRING);
					}
					break;
				}
				this.state = 6679;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===37 || _la===1021 || _la===1195 || _la===1922) {
					{
					this.state = 6675;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
					do {
						{
						this.state = 6675;
						this._errHandler.sync(this);
						switch (this._input.LA(1)) {
						case 1922:
							{
							this.state = 6670;
							this.match(PlSqlParser.TEST);
							}
							break;
						case 37:
							{
							this.state = 6671;
							this.match(PlSqlParser.ALLOW);
							this.state = 6672;
							this.match(PlSqlParser.UNSIGNED_INTEGER);
							this.state = 6673;
							this.match(PlSqlParser.CORRUPTION);
							}
							break;
						case 1021:
						case 1195:
							{
							this.state = 6674;
							this.parallel_clause();
							}
							break;
						default:
							throw new NoViableAltException(this);
						}
						}
						this.state = 6677;
						this._errHandler.sync(this);
						_la = this._input.LA(1);
					} while (_la===37 || _la===1021 || _la===1195 || _la===1922);
					}
				}

				}
				break;
			case 2:
				{
				this.state = 6681;
				this.match(PlSqlParser.CONTINUE);
				this.state = 6683;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===351) {
					{
					this.state = 6682;
					this.match(PlSqlParser.DEFAULT);
					}
				}

				}
				break;
			case 3:
				{
				this.state = 6685;
				this.match(PlSqlParser.CANCEL);
				}
				break;
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public full_database_recovery(): Full_database_recoveryContext {
		let localctx: Full_database_recoveryContext = new Full_database_recoveryContext(this, this._ctx, this.state);
		this.enterRule(localctx, 676, PlSqlParser.RULE_full_database_recovery);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 6689;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1566) {
				{
				this.state = 6688;
				this.match(PlSqlParser.STANDBY);
				}
			}

			this.state = 6691;
			this.match(PlSqlParser.DATABASE);
			this.state = 6708;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===2020 || _la===2063) {
				{
				this.state = 6704;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				do {
					{
					this.state = 6704;
					this._errHandler.sync(this);
					switch (this._input.LA(1)) {
					case 2020:
						{
						this.state = 6692;
						this.match(PlSqlParser.UNTIL);
						this.state = 6699;
						this._errHandler.sync(this);
						switch (this._input.LA(1)) {
						case 158:
							{
							this.state = 6693;
							this.match(PlSqlParser.CANCEL);
							}
							break;
						case 1937:
							{
							this.state = 6694;
							this.match(PlSqlParser.TIME);
							this.state = 6695;
							this.match(PlSqlParser.CHAR_STRING);
							}
							break;
						case 172:
							{
							this.state = 6696;
							this.match(PlSqlParser.CHANGE);
							this.state = 6697;
							this.match(PlSqlParser.UNSIGNED_INTEGER);
							}
							break;
						case 254:
							{
							this.state = 6698;
							this.match(PlSqlParser.CONSISTENT);
							}
							break;
						default:
							throw new NoViableAltException(this);
						}
						}
						break;
					case 2063:
						{
						this.state = 6701;
						this.match(PlSqlParser.USING);
						this.state = 6702;
						this.match(PlSqlParser.BACKUP);
						this.state = 6703;
						this.match(PlSqlParser.CONTROLFILE);
						}
						break;
					default:
						throw new NoViableAltException(this);
					}
					}
					this.state = 6706;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				} while (_la===2020 || _la===2063);
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public partial_database_recovery(): Partial_database_recoveryContext {
		let localctx: Partial_database_recoveryContext = new Partial_database_recoveryContext(this, this._ctx, this.state);
		this.enterRule(localctx, 678, PlSqlParser.RULE_partial_database_recovery);
		let _la: number;
		try {
			this.state = 6731;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 812, this._ctx) ) {
			case 1:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 6710;
				this.match(PlSqlParser.TABLESPACE);
				this.state = 6711;
				this.tablespace();
				this.state = 6716;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===2229) {
					{
					{
					this.state = 6712;
					this.match(PlSqlParser.COMMA);
					this.state = 6713;
					this.tablespace();
					}
					}
					this.state = 6718;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				}
				break;
			case 2:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 6719;
				this.match(PlSqlParser.DATAFILE);
				this.state = 6720;
				this.match(PlSqlParser.CHAR_STRING);
				}
				break;
			case 3:
				this.enterOuterAlt(localctx, 3);
				{
				this.state = 6721;
				this.filenumber();
				this.state = 6727;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===2217 || _la===2229) {
					{
					this.state = 6725;
					this._errHandler.sync(this);
					switch (this._input.LA(1)) {
					case 2229:
						{
						this.state = 6722;
						this.match(PlSqlParser.COMMA);
						this.state = 6723;
						this.match(PlSqlParser.CHAR_STRING);
						}
						break;
					case 2217:
						{
						this.state = 6724;
						this.filenumber();
						}
						break;
					default:
						throw new NoViableAltException(this);
					}
					}
					this.state = 6729;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				}
				break;
			case 4:
				this.enterOuterAlt(localctx, 4);
				{
				this.state = 6730;
				this.partial_database_recovery_10g();
				}
				break;
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public partial_database_recovery_10g(): Partial_database_recovery_10gContext {
		let localctx: Partial_database_recovery_10gContext = new Partial_database_recovery_10gContext(this, this._ctx, this.state);
		this.enterRule(localctx, 680, PlSqlParser.RULE_partial_database_recovery_10g);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 6733;
			if (!(this.isVersion10())) {
				throw this.createFailedPredicateException("isVersion10()");
			}
			this.state = 6734;
			this.match(PlSqlParser.STANDBY);
			this.state = 6755;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 1909:
				{
				this.state = 6735;
				this.match(PlSqlParser.TABLESPACE);
				this.state = 6736;
				this.tablespace();
				this.state = 6741;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===2229) {
					{
					{
					this.state = 6737;
					this.match(PlSqlParser.COMMA);
					this.state = 6738;
					this.tablespace();
					}
					}
					this.state = 6743;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				}
				break;
			case 318:
				{
				this.state = 6744;
				this.match(PlSqlParser.DATAFILE);
				this.state = 6745;
				this.match(PlSqlParser.CHAR_STRING);
				}
				break;
			case 2217:
				{
				this.state = 6746;
				this.filenumber();
				this.state = 6752;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===2217 || _la===2229) {
					{
					this.state = 6750;
					this._errHandler.sync(this);
					switch (this._input.LA(1)) {
					case 2229:
						{
						this.state = 6747;
						this.match(PlSqlParser.COMMA);
						this.state = 6748;
						this.match(PlSqlParser.CHAR_STRING);
						}
						break;
					case 2217:
						{
						this.state = 6749;
						this.filenumber();
						}
						break;
					default:
						throw new NoViableAltException(this);
					}
					}
					this.state = 6754;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
			this.state = 6757;
			this.match(PlSqlParser.UNTIL);
			this.state = 6760;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===254) {
				{
				this.state = 6758;
				this.match(PlSqlParser.CONSISTENT);
				this.state = 6759;
				this.match(PlSqlParser.WITH);
				}
			}

			this.state = 6762;
			this.match(PlSqlParser.CONTROLFILE);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public managed_standby_recovery(): Managed_standby_recoveryContext {
		let localctx: Managed_standby_recoveryContext = new Managed_standby_recoveryContext(this, this._ctx, this.state);
		this.enterRule(localctx, 682, PlSqlParser.RULE_managed_standby_recovery);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 6764;
			this.match(PlSqlParser.RECOVER);
			this.state = 6799;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 796:
				{
				this.state = 6765;
				this.match(PlSqlParser.MANAGED);
				this.state = 6766;
				this.match(PlSqlParser.STANDBY);
				this.state = 6767;
				this.match(PlSqlParser.DATABASE);
				this.state = 6789;
				this._errHandler.sync(this);
				switch (this._input.LA(1)) {
				case 390:
				case 966:
				case 1021:
				case 1195:
				case 2020:
				case 2063:
					{
					this.state = 6783;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
					do {
						{
						this.state = 6783;
						this._errHandler.sync(this);
						switch ( this._interp.adaptivePredict(this._input, 819, this._ctx) ) {
						case 1:
							{
							this.state = 6768;
							this.match(PlSqlParser.USING);
							this.state = 6769;
							this.match(PlSqlParser.CURRENT);
							this.state = 6770;
							this.match(PlSqlParser.LOGFILE);
							}
							break;
						case 2:
							{
							this.state = 6771;
							this.match(PlSqlParser.DISCONNECT);
							this.state = 6774;
							this._errHandler.sync(this);
							_la = this._input.LA(1);
							if (_la===554) {
								{
								this.state = 6772;
								this.match(PlSqlParser.FROM);
								this.state = 6773;
								this.match(PlSqlParser.SESSION);
								}
							}

							}
							break;
						case 3:
							{
							this.state = 6776;
							this.match(PlSqlParser.NODELAY);
							}
							break;
						case 4:
							{
							this.state = 6777;
							this.match(PlSqlParser.UNTIL);
							this.state = 6778;
							this.match(PlSqlParser.CHANGE);
							this.state = 6779;
							this.match(PlSqlParser.UNSIGNED_INTEGER);
							}
							break;
						case 5:
							{
							this.state = 6780;
							this.match(PlSqlParser.UNTIL);
							this.state = 6781;
							this.match(PlSqlParser.CONSISTENT);
							}
							break;
						case 6:
							{
							this.state = 6782;
							this.parallel_clause();
							}
							break;
						}
						}
						this.state = 6785;
						this._errHandler.sync(this);
						_la = this._input.LA(1);
					} while (_la===390 || _la===966 || _la===1021 || _la===1195 || _la===2020 || _la===2063);
					}
					break;
				case 525:
					{
					this.state = 6787;
					this.match(PlSqlParser.FINISH);
					}
					break;
				case 158:
					{
					this.state = 6788;
					this.match(PlSqlParser.CANCEL);
					}
					break;
				case 2241:
					break;
				default:
					break;
				}
				}
				break;
			case 1964:
				{
				this.state = 6791;
				this.match(PlSqlParser.TO);
				this.state = 6792;
				this.match(PlSqlParser.LOGICAL);
				this.state = 6793;
				this.match(PlSqlParser.STANDBY);
				this.state = 6797;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 822, this._ctx) ) {
				case 1:
					{
					this.state = 6794;
					this.db_name();
					}
					break;
				case 2:
					{
					this.state = 6795;
					this.match(PlSqlParser.KEEP);
					this.state = 6796;
					this.match(PlSqlParser.IDENTITY);
					}
					break;
				}
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public db_name(): Db_nameContext {
		let localctx: Db_nameContext = new Db_nameContext(this, this._ctx, this.state);
		this.enterRule(localctx, 684, PlSqlParser.RULE_db_name);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 6801;
			this.regular_id();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public database_file_clauses(): Database_file_clausesContext {
		let localctx: Database_file_clausesContext = new Database_file_clausesContext(this, this._ctx, this.state);
		this.enterRule(localctx, 686, PlSqlParser.RULE_database_file_clauses);
		let _la: number;
		try {
			this.state = 6819;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 1404:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 6803;
				this.match(PlSqlParser.RENAME);
				this.state = 6804;
				this.match(PlSqlParser.FILE);
				this.state = 6805;
				this.filename();
				this.state = 6810;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===2229) {
					{
					{
					this.state = 6806;
					this.match(PlSqlParser.COMMA);
					this.state = 6807;
					this.filename();
					}
					}
					this.state = 6812;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				this.state = 6813;
				this.match(PlSqlParser.TO);
				this.state = 6814;
				this.filename();
				}
				break;
			case 288:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 6816;
				this.create_datafile_clause();
				}
				break;
			case 318:
				this.enterOuterAlt(localctx, 3);
				{
				this.state = 6817;
				this.alter_datafile_clause();
				}
				break;
			case 1918:
				this.enterOuterAlt(localctx, 4);
				{
				this.state = 6818;
				this.alter_tempfile_clause();
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public create_datafile_clause(): Create_datafile_clauseContext {
		let localctx: Create_datafile_clauseContext = new Create_datafile_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 688, PlSqlParser.RULE_create_datafile_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 6821;
			this.match(PlSqlParser.CREATE);
			this.state = 6822;
			this.match(PlSqlParser.DATAFILE);
			this.state = 6825;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 2219:
				{
				this.state = 6823;
				this.filename();
				}
				break;
			case 2217:
				{
				this.state = 6824;
				this.filenumber();
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
			this.state = 6834;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			while (_la===2229) {
				{
				{
				this.state = 6827;
				this.match(PlSqlParser.COMMA);
				this.state = 6830;
				this._errHandler.sync(this);
				switch (this._input.LA(1)) {
				case 2219:
					{
					this.state = 6828;
					this.filename();
					}
					break;
				case 2217:
					{
					this.state = 6829;
					this.filenumber();
					}
					break;
				default:
					throw new NoViableAltException(this);
				}
				}
				}
				this.state = 6836;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			}
			this.state = 6839;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===61) {
				{
				this.state = 6837;
				this.match(PlSqlParser.AS);
				{
				this.state = 6838;
				this.match(PlSqlParser.NEW);
				}
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public alter_datafile_clause(): Alter_datafile_clauseContext {
		let localctx: Alter_datafile_clauseContext = new Alter_datafile_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 690, PlSqlParser.RULE_alter_datafile_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 6841;
			this.match(PlSqlParser.DATAFILE);
			this.state = 6844;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 2219:
				{
				this.state = 6842;
				this.filename();
				}
				break;
			case 2217:
				{
				this.state = 6843;
				this.filenumber();
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
			this.state = 6853;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			while (_la===2229) {
				{
				{
				this.state = 6846;
				this.match(PlSqlParser.COMMA);
				this.state = 6849;
				this._errHandler.sync(this);
				switch (this._input.LA(1)) {
				case 2219:
					{
					this.state = 6847;
					this.filename();
					}
					break;
				case 2217:
					{
					this.state = 6848;
					this.filenumber();
					}
					break;
				default:
					throw new NoViableAltException(this);
				}
				}
				}
				this.state = 6855;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			}
			this.state = 6867;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 1125:
				{
				this.state = 6856;
				this.match(PlSqlParser.ONLINE);
				}
				break;
			case 1112:
				{
				this.state = 6857;
				this.match(PlSqlParser.OFFLINE);
				this.state = 6860;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===546) {
					{
					this.state = 6858;
					this.match(PlSqlParser.FOR);
					this.state = 6859;
					this.match(PlSqlParser.DROP);
					}
				}

				}
				break;
			case 1412:
				{
				this.state = 6862;
				this.match(PlSqlParser.RESIZE);
				this.state = 6863;
				this.size_clause();
				}
				break;
			case 85:
				{
				this.state = 6864;
				this.autoextend_clause();
				}
				break;
			case 445:
				{
				this.state = 6865;
				this.match(PlSqlParser.END);
				this.state = 6866;
				this.match(PlSqlParser.BACKUP);
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public alter_tempfile_clause(): Alter_tempfile_clauseContext {
		let localctx: Alter_tempfile_clauseContext = new Alter_tempfile_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 692, PlSqlParser.RULE_alter_tempfile_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 6869;
			this.match(PlSqlParser.TEMPFILE);
			this.state = 6872;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 2219:
				{
				this.state = 6870;
				this.filename();
				}
				break;
			case 2217:
				{
				this.state = 6871;
				this.filenumber();
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
			this.state = 6881;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			while (_la===2229) {
				{
				{
				this.state = 6874;
				this.match(PlSqlParser.COMMA);
				this.state = 6877;
				this._errHandler.sync(this);
				switch (this._input.LA(1)) {
				case 2219:
					{
					this.state = 6875;
					this.filename();
					}
					break;
				case 2217:
					{
					this.state = 6876;
					this.filenumber();
					}
					break;
				default:
					throw new NoViableAltException(this);
				}
				}
				}
				this.state = 6883;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			}
			this.state = 6892;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 1412:
				{
				this.state = 6884;
				this.match(PlSqlParser.RESIZE);
				this.state = 6885;
				this.size_clause();
				}
				break;
			case 85:
				{
				this.state = 6886;
				this.autoextend_clause();
				}
				break;
			case 411:
				{
				this.state = 6887;
				this.match(PlSqlParser.DROP);
				{
				this.state = 6888;
				this.match(PlSqlParser.INCLUDING);
				this.state = 6889;
				this.match(PlSqlParser.DATAFILES);
				}
				}
				break;
			case 1125:
				{
				this.state = 6890;
				this.match(PlSqlParser.ONLINE);
				}
				break;
			case 1112:
				{
				this.state = 6891;
				this.match(PlSqlParser.OFFLINE);
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public logfile_clauses(): Logfile_clausesContext {
		let localctx: Logfile_clausesContext = new Logfile_clausesContext(this, this._ctx, this.state);
		this.enterRule(localctx, 694, PlSqlParser.RULE_logfile_clauses);
		let _la: number;
		try {
			this.state = 6940;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 846, this._ctx) ) {
			case 1:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 6899;
				this._errHandler.sync(this);
				switch (this._input.LA(1)) {
				case 59:
					{
					this.state = 6894;
					this.match(PlSqlParser.ARCHIVELOG);
					this.state = 6896;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
					if (_la===800) {
						{
						this.state = 6895;
						this.match(PlSqlParser.MANUAL);
						}
					}

					}
					break;
				case 939:
					{
					this.state = 6898;
					this.match(PlSqlParser.NOARCHIVELOG);
					}
					break;
				default:
					throw new NoViableAltException(this);
				}
				}
				break;
			case 2:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 6902;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===1010) {
					{
					this.state = 6901;
					this.match(PlSqlParser.NO);
					}
				}

				this.state = 6904;
				this.match(PlSqlParser.FORCE);
				this.state = 6905;
				this.match(PlSqlParser.LOGGING);
				}
				break;
			case 3:
				this.enterOuterAlt(localctx, 3);
				{
				this.state = 6906;
				this.match(PlSqlParser.RENAME);
				this.state = 6907;
				this.match(PlSqlParser.FILE);
				this.state = 6908;
				this.filename();
				this.state = 6913;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===2229) {
					{
					{
					this.state = 6909;
					this.match(PlSqlParser.COMMA);
					this.state = 6910;
					this.filename();
					}
					}
					this.state = 6915;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				this.state = 6916;
				this.match(PlSqlParser.TO);
				this.state = 6917;
				this.filename();
				}
				break;
			case 4:
				this.enterOuterAlt(localctx, 4);
				{
				this.state = 6919;
				this.match(PlSqlParser.CLEAR);
				this.state = 6921;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===1993) {
					{
					this.state = 6920;
					this.match(PlSqlParser.UNARCHIVED);
					}
				}

				this.state = 6923;
				this.match(PlSqlParser.LOGFILE);
				this.state = 6924;
				this.logfile_descriptor();
				this.state = 6929;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===2229) {
					{
					{
					this.state = 6925;
					this.match(PlSqlParser.COMMA);
					this.state = 6926;
					this.logfile_descriptor();
					}
					}
					this.state = 6931;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				this.state = 6934;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===2017) {
					{
					this.state = 6932;
					this.match(PlSqlParser.UNRECOVERABLE);
					this.state = 6933;
					this.match(PlSqlParser.DATAFILE);
					}
				}

				}
				break;
			case 5:
				this.enterOuterAlt(localctx, 5);
				{
				this.state = 6936;
				this.add_logfile_clauses();
				}
				break;
			case 6:
				this.enterOuterAlt(localctx, 6);
				{
				this.state = 6937;
				this.drop_logfile_clauses();
				}
				break;
			case 7:
				this.enterOuterAlt(localctx, 7);
				{
				this.state = 6938;
				this.switch_logfile_clause();
				}
				break;
			case 8:
				this.enterOuterAlt(localctx, 8);
				{
				this.state = 6939;
				this.supplemental_db_logging();
				}
				break;
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public add_logfile_clauses(): Add_logfile_clausesContext {
		let localctx: Add_logfile_clausesContext = new Add_logfile_clausesContext(this, this._ctx, this.state);
		this.enterRule(localctx, 696, PlSqlParser.RULE_add_logfile_clauses);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 6942;
			this.match(PlSqlParser.ADD);
			this.state = 6944;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1566) {
				{
				this.state = 6943;
				this.match(PlSqlParser.STANDBY);
				}
			}

			this.state = 6946;
			this.match(PlSqlParser.LOGFILE);
			this.state = 6978;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 573:
			case 1927:
			case 2229:
				{
				this.state = 6950;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				do {
					{
					{
					this.state = 6947;
					this.log_file_group();
					this.state = 6948;
					this.redo_log_file_spec();
					}
					}
					this.state = 6952;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				} while (_la===573 || _la===1927 || _la===2229);
				}
				break;
			case 826:
				{
				this.state = 6954;
				this.match(PlSqlParser.MEMBER);
				this.state = 6955;
				this.filename();
				this.state = 6957;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===1432) {
					{
					this.state = 6956;
					this.match(PlSqlParser.REUSE);
					}
				}

				this.state = 6966;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===2229) {
					{
					{
					this.state = 6959;
					this.match(PlSqlParser.COMMA);
					this.state = 6960;
					this.filename();
					this.state = 6962;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
					if (_la===1432) {
						{
						this.state = 6961;
						this.match(PlSqlParser.REUSE);
						}
					}

					}
					}
					this.state = 6968;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				this.state = 6969;
				this.match(PlSqlParser.TO);
				this.state = 6970;
				this.logfile_descriptor();
				this.state = 6975;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===2229) {
					{
					{
					this.state = 6971;
					this.match(PlSqlParser.COMMA);
					this.state = 6972;
					this.logfile_descriptor();
					}
					}
					this.state = 6977;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public log_file_group(): Log_file_groupContext {
		let localctx: Log_file_groupContext = new Log_file_groupContext(this, this._ctx, this.state);
		this.enterRule(localctx, 698, PlSqlParser.RULE_log_file_group);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			{
			this.state = 6981;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===2229) {
				{
				this.state = 6980;
				this.match(PlSqlParser.COMMA);
				}
			}

			this.state = 6985;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1927) {
				{
				this.state = 6983;
				this.match(PlSqlParser.THREAD);
				this.state = 6984;
				this.match(PlSqlParser.UNSIGNED_INTEGER);
				}
			}

			this.state = 6987;
			this.match(PlSqlParser.GROUP);
			this.state = 6988;
			this.match(PlSqlParser.UNSIGNED_INTEGER);
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public drop_logfile_clauses(): Drop_logfile_clausesContext {
		let localctx: Drop_logfile_clausesContext = new Drop_logfile_clausesContext(this, this._ctx, this.state);
		this.enterRule(localctx, 700, PlSqlParser.RULE_drop_logfile_clauses);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 6990;
			this.match(PlSqlParser.DROP);
			this.state = 6992;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1566) {
				{
				this.state = 6991;
				this.match(PlSqlParser.STANDBY);
				}
			}

			this.state = 6994;
			this.match(PlSqlParser.LOGFILE);
			this.state = 7012;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 573:
			case 2219:
			case 2223:
				{
				this.state = 6995;
				this.logfile_descriptor();
				this.state = 7000;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===2229) {
					{
					{
					this.state = 6996;
					this.match(PlSqlParser.COMMA);
					this.state = 6997;
					this.logfile_descriptor();
					}
					}
					this.state = 7002;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				}
				break;
			case 826:
				{
				this.state = 7003;
				this.match(PlSqlParser.MEMBER);
				this.state = 7004;
				this.filename();
				this.state = 7009;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===2229) {
					{
					{
					this.state = 7005;
					this.match(PlSqlParser.COMMA);
					this.state = 7006;
					this.filename();
					}
					}
					this.state = 7011;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public switch_logfile_clause(): Switch_logfile_clauseContext {
		let localctx: Switch_logfile_clauseContext = new Switch_logfile_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 702, PlSqlParser.RULE_switch_logfile_clause);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 7014;
			this.match(PlSqlParser.SWITCH);
			this.state = 7015;
			this.match(PlSqlParser.ALL);
			this.state = 7016;
			this.match(PlSqlParser.LOGFILES);
			this.state = 7017;
			this.match(PlSqlParser.TO);
			this.state = 7018;
			this.match(PlSqlParser.BLOCKSIZE);
			this.state = 7019;
			this.match(PlSqlParser.UNSIGNED_INTEGER);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public supplemental_db_logging(): Supplemental_db_loggingContext {
		let localctx: Supplemental_db_loggingContext = new Supplemental_db_loggingContext(this, this._ctx, this.state);
		this.enterRule(localctx, 704, PlSqlParser.RULE_supplemental_db_logging);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 7021;
			this.add_or_drop();
			this.state = 7022;
			this.match(PlSqlParser.SUPPLEMENTAL);
			this.state = 7023;
			this.match(PlSqlParser.LOG);
			this.state = 7027;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 860, this._ctx) ) {
			case 1:
				{
				this.state = 7024;
				this.match(PlSqlParser.DATA);
				}
				break;
			case 2:
				{
				this.state = 7025;
				this.supplemental_id_key_clause();
				}
				break;
			case 3:
				{
				this.state = 7026;
				this.supplemental_plsql_clause();
				}
				break;
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public add_or_drop(): Add_or_dropContext {
		let localctx: Add_or_dropContext = new Add_or_dropContext(this, this._ctx, this.state);
		this.enterRule(localctx, 706, PlSqlParser.RULE_add_or_drop);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 7029;
			_la = this._input.LA(1);
			if(!(_la===18 || _la===411)) {
			this._errHandler.recoverInline(this);
			}
			else {
				this._errHandler.reportMatch(this);
			    this.consume();
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public supplemental_plsql_clause(): Supplemental_plsql_clauseContext {
		let localctx: Supplemental_plsql_clauseContext = new Supplemental_plsql_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 708, PlSqlParser.RULE_supplemental_plsql_clause);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 7031;
			this.match(PlSqlParser.DATA);
			this.state = 7032;
			this.match(PlSqlParser.FOR);
			this.state = 7033;
			this.match(PlSqlParser.PROCEDURAL);
			this.state = 7034;
			this.match(PlSqlParser.REPLICATION);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public logfile_descriptor(): Logfile_descriptorContext {
		let localctx: Logfile_descriptorContext = new Logfile_descriptorContext(this, this._ctx, this.state);
		this.enterRule(localctx, 710, PlSqlParser.RULE_logfile_descriptor);
		let _la: number;
		try {
			this.state = 7050;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 573:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 7036;
				this.match(PlSqlParser.GROUP);
				this.state = 7037;
				this.match(PlSqlParser.UNSIGNED_INTEGER);
				}
				break;
			case 2223:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 7038;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 7039;
				this.filename();
				this.state = 7044;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===2229) {
					{
					{
					this.state = 7040;
					this.match(PlSqlParser.COMMA);
					this.state = 7041;
					this.filename();
					}
					}
					this.state = 7046;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				this.state = 7047;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
				break;
			case 2219:
				this.enterOuterAlt(localctx, 3);
				{
				this.state = 7049;
				this.filename();
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public controlfile_clauses(): Controlfile_clausesContext {
		let localctx: Controlfile_clausesContext = new Controlfile_clausesContext(this, this._ctx, this.state);
		this.enterRule(localctx, 712, PlSqlParser.RULE_controlfile_clauses);
		let _la: number;
		try {
			this.state = 7073;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 288:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 7052;
				this.match(PlSqlParser.CREATE);
				this.state = 7054;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===780 || _la===1248) {
					{
					this.state = 7053;
					_la = this._input.LA(1);
					if(!(_la===780 || _la===1248)) {
					this._errHandler.recoverInline(this);
					}
					else {
						this._errHandler.reportMatch(this);
					    this.consume();
					}
					}
				}

				this.state = 7056;
				this.match(PlSqlParser.STANDBY);
				this.state = 7057;
				this.match(PlSqlParser.CONTROLFILE);
				this.state = 7058;
				this.match(PlSqlParser.AS);
				this.state = 7059;
				this.filename();
				this.state = 7061;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===1432) {
					{
					this.state = 7060;
					this.match(PlSqlParser.REUSE);
					}
				}

				}
				break;
			case 93:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 7063;
				this.match(PlSqlParser.BACKUP);
				this.state = 7064;
				this.match(PlSqlParser.CONTROLFILE);
				this.state = 7065;
				this.match(PlSqlParser.TO);
				this.state = 7071;
				this._errHandler.sync(this);
				switch (this._input.LA(1)) {
				case 2219:
					{
					this.state = 7066;
					this.filename();
					this.state = 7068;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
					if (_la===1432) {
						{
						this.state = 7067;
						this.match(PlSqlParser.REUSE);
						}
					}

					}
					break;
				case 1966:
					{
					this.state = 7070;
					this.trace_file_clause();
					}
					break;
				default:
					throw new NoViableAltException(this);
				}
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public trace_file_clause(): Trace_file_clauseContext {
		let localctx: Trace_file_clauseContext = new Trace_file_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 714, PlSqlParser.RULE_trace_file_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 7075;
			this.match(PlSqlParser.TRACE);
			this.state = 7081;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===61) {
				{
				this.state = 7076;
				this.match(PlSqlParser.AS);
				this.state = 7077;
				this.filename();
				this.state = 7079;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===1432) {
					{
					this.state = 7078;
					this.match(PlSqlParser.REUSE);
					}
				}

				}
			}

			this.state = 7084;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1045 || _la===1410) {
				{
				this.state = 7083;
				_la = this._input.LA(1);
				if(!(_la===1045 || _la===1410)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public standby_database_clauses(): Standby_database_clausesContext {
		let localctx: Standby_database_clausesContext = new Standby_database_clausesContext(this, this._ctx, this.state);
		this.enterRule(localctx, 716, PlSqlParser.RULE_standby_database_clauses);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 7093;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 10:
				{
				this.state = 7086;
				this.activate_standby_db_clause();
				}
				break;
			case 1510:
				{
				this.state = 7087;
				this.maximize_standby_db_clause();
				}
				break;
			case 1384:
				{
				this.state = 7088;
				this.register_logfile_clause();
				}
				break;
			case 218:
			case 1295:
				{
				this.state = 7089;
				this.commit_switchover_clause();
				}
				break;
			case 1569:
				{
				this.state = 7090;
				this.start_standby_clause();
				}
				break;
			case 1:
			case 1592:
				{
				this.state = 7091;
				this.stop_standby_clause();
				}
				break;
			case 269:
				{
				this.state = 7092;
				this.convert_database_clause();
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
			this.state = 7096;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1021 || _la===1195) {
				{
				this.state = 7095;
				this.parallel_clause();
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public activate_standby_db_clause(): Activate_standby_db_clauseContext {
		let localctx: Activate_standby_db_clauseContext = new Activate_standby_db_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 718, PlSqlParser.RULE_activate_standby_db_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 7098;
			this.match(PlSqlParser.ACTIVATE);
			this.state = 7100;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===780 || _la===1248) {
				{
				this.state = 7099;
				_la = this._input.LA(1);
				if(!(_la===780 || _la===1248)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				}
			}

			this.state = 7102;
			this.match(PlSqlParser.STANDBY);
			this.state = 7103;
			this.match(PlSqlParser.DATABASE);
			this.state = 7106;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===525) {
				{
				this.state = 7104;
				this.match(PlSqlParser.FINISH);
				this.state = 7105;
				this.match(PlSqlParser.APPLY);
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public maximize_standby_db_clause(): Maximize_standby_db_clauseContext {
		let localctx: Maximize_standby_db_clauseContext = new Maximize_standby_db_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 720, PlSqlParser.RULE_maximize_standby_db_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 7108;
			this.match(PlSqlParser.SET);
			this.state = 7109;
			this.match(PlSqlParser.STANDBY);
			this.state = 7110;
			this.match(PlSqlParser.DATABASE);
			this.state = 7111;
			this.match(PlSqlParser.TO);
			this.state = 7112;
			this.match(PlSqlParser.MAXIMIZE);
			this.state = 7113;
			_la = this._input.LA(1);
			if(!(_la===90 || _la===1241 || _la===1321)) {
			this._errHandler.recoverInline(this);
			}
			else {
				this._errHandler.reportMatch(this);
			    this.consume();
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public register_logfile_clause(): Register_logfile_clauseContext {
		let localctx: Register_logfile_clauseContext = new Register_logfile_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 722, PlSqlParser.RULE_register_logfile_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 7115;
			this.match(PlSqlParser.REGISTER);
			this.state = 7118;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1172) {
				{
				this.state = 7116;
				this.match(PlSqlParser.OR);
				this.state = 7117;
				this.match(PlSqlParser.REPLACE);
				}
			}

			this.state = 7120;
			_la = this._input.LA(1);
			if(!(_la===780 || _la===1248)) {
			this._errHandler.recoverInline(this);
			}
			else {
				this._errHandler.reportMatch(this);
			    this.consume();
			}
			this.state = 7121;
			this.match(PlSqlParser.LOGFILE);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public commit_switchover_clause(): Commit_switchover_clauseContext {
		let localctx: Commit_switchover_clauseContext = new Commit_switchover_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 724, PlSqlParser.RULE_commit_switchover_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 7123;
			_la = this._input.LA(1);
			if(!(_la===218 || _la===1295)) {
			this._errHandler.recoverInline(this);
			}
			else {
				this._errHandler.reportMatch(this);
			    this.consume();
			}
			this.state = 7124;
			this.match(PlSqlParser.TO);
			this.state = 7125;
			this.match(PlSqlParser.SWITCHOVER);
			this.state = 7154;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 780:
			case 1964:
				{
				this.state = 7151;
				this._errHandler.sync(this);
				switch (this._input.LA(1)) {
				case 1964:
					{
					this.state = 7126;
					this.match(PlSqlParser.TO);
					this.state = 7147;
					this._errHandler.sync(this);
					switch ( this._interp.adaptivePredict(this._input, 881, this._ctx) ) {
					case 1:
						{
						this.state = 7135;
						this._errHandler.sync(this);
						switch ( this._interp.adaptivePredict(this._input, 878, this._ctx) ) {
						case 1:
							{
							this.state = 7128;
							this._errHandler.sync(this);
							_la = this._input.LA(1);
							if (_la===780 || _la===1248) {
								{
								this.state = 7127;
								_la = this._input.LA(1);
								if(!(_la===780 || _la===1248)) {
								this._errHandler.recoverInline(this);
								}
								else {
									this._errHandler.reportMatch(this);
								    this.consume();
								}
								}
							}

							this.state = 7130;
							this.match(PlSqlParser.PRIMARY);
							}
							break;
						case 2:
							{
							this.state = 7132;
							this._errHandler.sync(this);
							_la = this._input.LA(1);
							if (_la===1248) {
								{
								this.state = 7131;
								this.match(PlSqlParser.PHYSICAL);
								}
							}

							this.state = 7134;
							this.match(PlSqlParser.STANDBY);
							}
							break;
						}
						this.state = 7143;
						this._errHandler.sync(this);
						_la = this._input.LA(1);
						if (_la===1506 || _la===2119 || _la===2121) {
							{
							this.state = 7138;
							this._errHandler.sync(this);
							_la = this._input.LA(1);
							if (_la===2119 || _la===2121) {
								{
								this.state = 7137;
								_la = this._input.LA(1);
								if(!(_la===2119 || _la===2121)) {
								this._errHandler.recoverInline(this);
								}
								else {
									this._errHandler.reportMatch(this);
								    this.consume();
								}
								}
							}

							this.state = 7140;
							this.match(PlSqlParser.SESSION);
							this.state = 7141;
							this.match(PlSqlParser.SHUTDOWN);
							this.state = 7142;
							_la = this._input.LA(1);
							if(!(_la===1088 || _la===2106)) {
							this._errHandler.recoverInline(this);
							}
							else {
								this._errHandler.reportMatch(this);
							    this.consume();
							}
							}
						}

						}
						break;
					case 2:
						{
						this.state = 7145;
						this.match(PlSqlParser.LOGICAL);
						this.state = 7146;
						this.match(PlSqlParser.STANDBY);
						}
						break;
					}
					}
					break;
				case 780:
					{
					this.state = 7149;
					this.match(PlSqlParser.LOGICAL);
					this.state = 7150;
					this.match(PlSqlParser.STANDBY);
					}
					break;
				default:
					throw new NoViableAltException(this);
				}
				}
				break;
			case 158:
				{
				this.state = 7153;
				this.match(PlSqlParser.CANCEL);
				}
				break;
			case 1021:
			case 1195:
			case 2241:
				break;
			default:
				break;
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public start_standby_clause(): Start_standby_clauseContext {
		let localctx: Start_standby_clauseContext = new Start_standby_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 726, PlSqlParser.RULE_start_standby_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 7156;
			this.match(PlSqlParser.START);
			this.state = 7157;
			this.match(PlSqlParser.LOGICAL);
			this.state = 7158;
			this.match(PlSqlParser.STANDBY);
			this.state = 7159;
			this.match(PlSqlParser.APPLY);
			this.state = 7161;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===613) {
				{
				this.state = 7160;
				this.match(PlSqlParser.IMMEDIATE);
				}
			}

			this.state = 7164;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===966) {
				{
				this.state = 7163;
				this.match(PlSqlParser.NODELAY);
				}
			}

			this.state = 7177;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 903:
				{
				this.state = 7166;
				this.match(PlSqlParser.NEW);
				this.state = 7167;
				this.match(PlSqlParser.PRIMARY);
				this.state = 7168;
				this.regular_id();
				}
				break;
			case 654:
				{
				this.state = 7169;
				this.match(PlSqlParser.INITIAL);
				this.state = 7171;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===2217) {
					{
					this.state = 7170;
					localctx._scn_value = this.match(PlSqlParser.UNSIGNED_INTEGER);
					}
				}

				}
				break;
			case 1537:
				{
				this.state = 7173;
				this.match(PlSqlParser.SKIP_);
				this.state = 7174;
				this.match(PlSqlParser.FAILED);
				this.state = 7175;
				this.match(PlSqlParser.TRANSACTION);
				}
				break;
			case 525:
				{
				this.state = 7176;
				this.match(PlSqlParser.FINISH);
				}
				break;
			case 1021:
			case 1195:
			case 2241:
				break;
			default:
				break;
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public stop_standby_clause(): Stop_standby_clauseContext {
		let localctx: Stop_standby_clauseContext = new Stop_standby_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 728, PlSqlParser.RULE_stop_standby_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 7179;
			_la = this._input.LA(1);
			if(!(_la===1 || _la===1592)) {
			this._errHandler.recoverInline(this);
			}
			else {
				this._errHandler.reportMatch(this);
			    this.consume();
			}
			this.state = 7180;
			this.match(PlSqlParser.LOGICAL);
			this.state = 7181;
			this.match(PlSqlParser.STANDBY);
			this.state = 7182;
			this.match(PlSqlParser.APPLY);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public convert_database_clause(): Convert_database_clauseContext {
		let localctx: Convert_database_clauseContext = new Convert_database_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 730, PlSqlParser.RULE_convert_database_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 7184;
			this.match(PlSqlParser.CONVERT);
			this.state = 7185;
			this.match(PlSqlParser.TO);
			this.state = 7186;
			_la = this._input.LA(1);
			if(!(_la===1248 || _la===1542)) {
			this._errHandler.recoverInline(this);
			}
			else {
				this._errHandler.reportMatch(this);
			    this.consume();
			}
			this.state = 7187;
			this.match(PlSqlParser.STANDBY);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public default_settings_clause(): Default_settings_clauseContext {
		let localctx: Default_settings_clauseContext = new Default_settings_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 732, PlSqlParser.RULE_default_settings_clause);
		let _la: number;
		try {
			this.state = 7235;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 892, this._ctx) ) {
			case 1:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 7189;
				this.match(PlSqlParser.DEFAULT);
				this.state = 7190;
				this.match(PlSqlParser.EDITION);
				this.state = 7191;
				this.match(PlSqlParser.EQUALS_OP);
				this.state = 7192;
				this.edition_name();
				}
				break;
			case 2:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 7193;
				this.match(PlSqlParser.SET);
				this.state = 7194;
				this.match(PlSqlParser.DEFAULT);
				this.state = 7195;
				_la = this._input.LA(1);
				if(!(_la===110 || _la===1540)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				this.state = 7196;
				this.match(PlSqlParser.TABLESPACE);
				}
				break;
			case 3:
				this.enterOuterAlt(localctx, 3);
				{
				this.state = 7197;
				this.match(PlSqlParser.DEFAULT);
				this.state = 7198;
				this.match(PlSqlParser.TABLESPACE);
				this.state = 7199;
				this.tablespace();
				}
				break;
			case 4:
				this.enterOuterAlt(localctx, 4);
				{
				this.state = 7200;
				this.match(PlSqlParser.DEFAULT);
				this.state = 7201;
				this.match(PlSqlParser.TEMPORARY);
				this.state = 7202;
				this.match(PlSqlParser.TABLESPACE);
				this.state = 7205;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 888, this._ctx) ) {
				case 1:
					{
					this.state = 7203;
					this.tablespace();
					}
					break;
				case 2:
					{
					this.state = 7204;
					this.tablespace_group_name();
					}
					break;
				}
				}
				break;
			case 5:
				this.enterOuterAlt(localctx, 5);
				{
				this.state = 7207;
				this.match(PlSqlParser.RENAME);
				this.state = 7208;
				this.match(PlSqlParser.GLOBAL_NAME);
				this.state = 7209;
				this.match(PlSqlParser.TO);
				this.state = 7210;
				this.database();
				this.state = 7213;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				do {
					{
					{
					this.state = 7211;
					this.match(PlSqlParser.PERIOD);
					this.state = 7212;
					this.domain();
					}
					}
					this.state = 7215;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				} while (_la===2216);
				}
				break;
			case 6:
				this.enterOuterAlt(localctx, 6);
				{
				this.state = 7217;
				this.match(PlSqlParser.ENABLE);
				this.state = 7218;
				this.match(PlSqlParser.BLOCK);
				this.state = 7219;
				this.match(PlSqlParser.CHANGE);
				this.state = 7220;
				this.match(PlSqlParser.TRACKING);
				this.state = 7227;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===2063) {
					{
					this.state = 7221;
					this.match(PlSqlParser.USING);
					this.state = 7222;
					this.match(PlSqlParser.FILE);
					this.state = 7223;
					this.filename();
					this.state = 7225;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
					if (_la===1432) {
						{
						this.state = 7224;
						this.match(PlSqlParser.REUSE);
						}
					}

					}
				}

				}
				break;
			case 7:
				this.enterOuterAlt(localctx, 7);
				{
				this.state = 7229;
				this.match(PlSqlParser.DISABLE);
				this.state = 7230;
				this.match(PlSqlParser.BLOCK);
				this.state = 7231;
				this.match(PlSqlParser.CHANGE);
				this.state = 7232;
				this.match(PlSqlParser.TRACKING);
				}
				break;
			case 8:
				this.enterOuterAlt(localctx, 8);
				{
				this.state = 7233;
				this.flashback_mode_clause();
				}
				break;
			case 9:
				this.enterOuterAlt(localctx, 9);
				{
				this.state = 7234;
				this.set_time_zone_clause();
				}
				break;
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public set_time_zone_clause(): Set_time_zone_clauseContext {
		let localctx: Set_time_zone_clauseContext = new Set_time_zone_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 734, PlSqlParser.RULE_set_time_zone_clause);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 7237;
			this.match(PlSqlParser.SET);
			this.state = 7238;
			this.match(PlSqlParser.TIMEZONE);
			this.state = 7239;
			this.match(PlSqlParser.EQUALS_OP);
			this.state = 7240;
			this.match(PlSqlParser.CHAR_STRING);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public instance_clauses(): Instance_clausesContext {
		let localctx: Instance_clausesContext = new Instance_clausesContext(this, this._ctx, this.state);
		this.enterRule(localctx, 736, PlSqlParser.RULE_instance_clauses);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 7242;
			this.enable_or_disable();
			this.state = 7243;
			this.match(PlSqlParser.INSTANCE);
			this.state = 7244;
			this.match(PlSqlParser.CHAR_STRING);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public security_clause(): Security_clauseContext {
		let localctx: Security_clauseContext = new Security_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 738, PlSqlParser.RULE_security_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 7246;
			this.match(PlSqlParser.GUARD);
			this.state = 7247;
			_la = this._input.LA(1);
			if(!(_la===35 || _la===1007 || _la===1566)) {
			this._errHandler.recoverInline(this);
			}
			else {
				this._errHandler.reportMatch(this);
			    this.consume();
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public domain(): DomainContext {
		let localctx: DomainContext = new DomainContext(this, this._ctx, this.state);
		this.enterRule(localctx, 740, PlSqlParser.RULE_domain);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 7249;
			this.regular_id();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public database(): DatabaseContext {
		let localctx: DatabaseContext = new DatabaseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 742, PlSqlParser.RULE_database);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 7251;
			this.regular_id();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public edition_name(): Edition_nameContext {
		let localctx: Edition_nameContext = new Edition_nameContext(this, this._ctx, this.state);
		this.enterRule(localctx, 744, PlSqlParser.RULE_edition_name);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 7253;
			this.regular_id();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public filenumber(): FilenumberContext {
		let localctx: FilenumberContext = new FilenumberContext(this, this._ctx, this.state);
		this.enterRule(localctx, 746, PlSqlParser.RULE_filenumber);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 7255;
			this.match(PlSqlParser.UNSIGNED_INTEGER);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public filename(): FilenameContext {
		let localctx: FilenameContext = new FilenameContext(this, this._ctx, this.state);
		this.enterRule(localctx, 748, PlSqlParser.RULE_filename);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 7257;
			this.match(PlSqlParser.CHAR_STRING);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public alter_table(): Alter_tableContext {
		let localctx: Alter_tableContext = new Alter_tableContext(this, this._ctx, this.state);
		this.enterRule(localctx, 750, PlSqlParser.RULE_alter_table);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 7259;
			this.match(PlSqlParser.ALTER);
			this.state = 7260;
			this.match(PlSqlParser.TABLE);
			this.state = 7261;
			this.tableview_name();
			this.state = 7267;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 893, this._ctx) ) {
			case 1:
				// tslint:disable-next-line:no-empty
				{
				}
				break;
			case 2:
				{
				this.state = 7263;
				this.alter_table_properties();
				}
				break;
			case 3:
				{
				this.state = 7264;
				this.constraint_clauses();
				}
				break;
			case 4:
				{
				this.state = 7265;
				this.column_clauses();
				}
				break;
			case 5:
				{
				this.state = 7266;
				this.move_table_clause();
				}
				break;
			}
			this.state = 7281;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===383 || _la===439) {
				{
				this.state = 7277;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				do {
					{
					this.state = 7277;
					this._errHandler.sync(this);
					switch ( this._interp.adaptivePredict(this._input, 895, this._ctx) ) {
					case 1:
						{
						this.state = 7269;
						this.enable_disable_clause();
						}
						break;
					case 2:
						{
						this.state = 7270;
						this.enable_or_disable();
						this.state = 7275;
						this._errHandler.sync(this);
						switch (this._input.LA(1)) {
						case 1912:
							{
							this.state = 7271;
							this.match(PlSqlParser.TABLE);
							this.state = 7272;
							this.match(PlSqlParser.LOCK);
							}
							break;
						case 35:
							{
							this.state = 7273;
							this.match(PlSqlParser.ALL);
							this.state = 7274;
							this.match(PlSqlParser.TRIGGERS);
							}
							break;
						default:
							throw new NoViableAltException(this);
						}
						}
						break;
					}
					}
					this.state = 7279;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				} while (_la===383 || _la===439);
				}
			}

			this.state = 7283;
			this.match(PlSqlParser.SEMICOLON);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public alter_table_properties(): Alter_table_propertiesContext {
		let localctx: Alter_table_propertiesContext = new Alter_table_propertiesContext(this, this._ctx, this.state);
		this.enterRule(localctx, 752, PlSqlParser.RULE_alter_table_properties);
		try {
			this.state = 7296;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 898, this._ctx) ) {
			case 1:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 7285;
				this.alter_table_properties_1();
				}
				break;
			case 2:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 7286;
				this.match(PlSqlParser.RENAME);
				this.state = 7287;
				this.match(PlSqlParser.TO);
				this.state = 7288;
				this.tableview_name();
				}
				break;
			case 3:
				this.enterOuterAlt(localctx, 3);
				{
				this.state = 7289;
				this.shrink_clause();
				}
				break;
			case 4:
				this.enterOuterAlt(localctx, 4);
				{
				this.state = 7290;
				this.match(PlSqlParser.READ);
				this.state = 7291;
				this.match(PlSqlParser.ONLY);
				}
				break;
			case 5:
				this.enterOuterAlt(localctx, 5);
				{
				this.state = 7292;
				this.match(PlSqlParser.READ);
				this.state = 7293;
				this.match(PlSqlParser.WRITE);
				}
				break;
			case 6:
				this.enterOuterAlt(localctx, 6);
				{
				this.state = 7294;
				this.match(PlSqlParser.REKEY);
				this.state = 7295;
				this.match(PlSqlParser.CHAR_STRING);
				}
				break;
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public alter_table_properties_1(): Alter_table_properties_1Context {
		let localctx: Alter_table_properties_1Context = new Alter_table_properties_1Context(this, this._ctx, this.state);
		this.enterRule(localctx, 754, PlSqlParser.RULE_alter_table_properties_1);
		let _la: number;
		try {
			let _alt: number;
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 7315;
			this._errHandler.sync(this);
			_alt = 1;
			do {
				switch (_alt) {
				case 1:
					{
					this.state = 7315;
					this._errHandler.sync(this);
					switch (this._input.LA(1)) {
					case 657:
					case 1227:
					case 1230:
					case 1593:
						{
						this.state = 7298;
						this.physical_attributes_clause();
						}
						break;
					case 521:
					case 779:
					case 993:
						{
						this.state = 7299;
						this.logging_clause();
						}
						break;
					case 232:
					case 953:
						{
						this.state = 7300;
						this.table_compression();
						}
						break;
					case 18:
					case 411:
						{
						this.state = 7301;
						this.supplemental_table_logging();
						}
						break;
					case 36:
						{
						this.state = 7302;
						this.allocate_extent_clause();
						}
						break;
					case 339:
						{
						this.state = 7303;
						this.deallocate_unused_clause();
						}
						break;
					case 150:
					case 946:
						{
						this.state = 7304;
						_la = this._input.LA(1);
						if(!(_la===150 || _la===946)) {
						this._errHandler.recoverInline(this);
						}
						else {
							this._errHandler.reportMatch(this);
						    this.consume();
						}
						}
						break;
					case 1424:
						{
						this.state = 7305;
						this.match(PlSqlParser.RESULT_CACHE);
						this.state = 7306;
						this.match(PlSqlParser.LEFT_PAREN);
						this.state = 7307;
						this.match(PlSqlParser.MODE);
						this.state = 7308;
						_la = this._input.LA(1);
						if(!(_la===351 || _la===542)) {
						this._errHandler.recoverInline(this);
						}
						else {
							this._errHandler.reportMatch(this);
						    this.consume();
						}
						this.state = 7309;
						this.match(PlSqlParser.RIGHT_PAREN);
						}
						break;
					case 2029:
						{
						this.state = 7310;
						this.upgrade_table_clause();
						}
						break;
					case 839:
					case 997:
					case 1360:
						{
						this.state = 7311;
						this.records_per_block_clause();
						}
						break;
					case 1021:
					case 1195:
						{
						this.state = 7312;
						this.parallel_clause();
						}
						break;
					case 383:
					case 439:
					case 1451:
						{
						this.state = 7313;
						this.row_movement_clause();
						}
						break;
					case 532:
					case 1010:
						{
						this.state = 7314;
						this.flashback_archive_clause();
						}
						break;
					default:
						throw new NoViableAltException(this);
					}
					}
					break;
				default:
					throw new NoViableAltException(this);
				}
				this.state = 7317;
				this._errHandler.sync(this);
				_alt = this._interp.adaptivePredict(this._input, 900, this._ctx);
			} while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER);
			this.state = 7320;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===18 || _la===205 || _la===232 || _la===802 || _la===953 || _la===994 || _la===1184 || _la===1229) {
				{
				this.state = 7319;
				this.alter_iot_clauses();
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public alter_iot_clauses(): Alter_iot_clausesContext {
		let localctx: Alter_iot_clausesContext = new Alter_iot_clausesContext(this, this._ctx, this.state);
		this.enterRule(localctx, 756, PlSqlParser.RULE_alter_iot_clauses);
		try {
			this.state = 7326;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 902, this._ctx) ) {
			case 1:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 7322;
				this.index_org_table_clause();
				}
				break;
			case 2:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 7323;
				this.alter_overflow_clause();
				}
				break;
			case 3:
				this.enterOuterAlt(localctx, 3);
				{
				this.state = 7324;
				this.alter_mapping_table_clause();
				}
				break;
			case 4:
				this.enterOuterAlt(localctx, 4);
				{
				this.state = 7325;
				this.match(PlSqlParser.COALESCE);
				}
				break;
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public alter_mapping_table_clause(): Alter_mapping_table_clauseContext {
		let localctx: Alter_mapping_table_clauseContext = new Alter_mapping_table_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 758, PlSqlParser.RULE_alter_mapping_table_clause);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 7328;
			this.match(PlSqlParser.MAPPING);
			this.state = 7329;
			this.match(PlSqlParser.TABLE);
			this.state = 7332;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 36:
				{
				this.state = 7330;
				this.allocate_extent_clause();
				}
				break;
			case 339:
				{
				this.state = 7331;
				this.deallocate_unused_clause();
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public alter_overflow_clause(): Alter_overflow_clauseContext {
		let localctx: Alter_overflow_clauseContext = new Alter_overflow_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 760, PlSqlParser.RULE_alter_overflow_clause);
		let _la: number;
		try {
			this.state = 7344;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 18:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 7334;
				this.add_overflow_clause();
				}
				break;
			case 1184:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 7335;
				this.match(PlSqlParser.OVERFLOW);
				this.state = 7340;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				do {
					{
					this.state = 7340;
					this._errHandler.sync(this);
					switch (this._input.LA(1)) {
					case 521:
					case 657:
					case 779:
					case 993:
					case 1227:
					case 1230:
					case 1593:
					case 1909:
						{
						this.state = 7336;
						this.segment_attributes_clause();
						}
						break;
					case 36:
						{
						this.state = 7337;
						this.allocate_extent_clause();
						}
						break;
					case 1521:
						{
						this.state = 7338;
						this.shrink_clause();
						}
						break;
					case 339:
						{
						this.state = 7339;
						this.deallocate_unused_clause();
						}
						break;
					default:
						throw new NoViableAltException(this);
					}
					}
					this.state = 7342;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				} while (_la===36 || _la===339 || _la===521 || _la===657 || _la===779 || _la===993 || _la===1227 || _la===1230 || _la===1521 || _la===1593 || _la===1909);
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public add_overflow_clause(): Add_overflow_clauseContext {
		let localctx: Add_overflow_clauseContext = new Add_overflow_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 762, PlSqlParser.RULE_add_overflow_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 7346;
			this.match(PlSqlParser.ADD);
			this.state = 7347;
			this.match(PlSqlParser.OVERFLOW);
			this.state = 7349;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===521 || _la===657 || _la===779 || _la===993 || _la===1227 || _la===1230 || _la===1593 || _la===1909) {
				{
				this.state = 7348;
				this.segment_attributes_clause();
				}
			}

			this.state = 7367;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===2223) {
				{
				this.state = 7351;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 7352;
				this.match(PlSqlParser.PARTITION);
				this.state = 7354;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===521 || _la===657 || _la===779 || _la===993 || _la===1227 || _la===1230 || _la===1593 || _la===1909) {
					{
					this.state = 7353;
					this.segment_attributes_clause();
					}
				}

				this.state = 7363;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===2229) {
					{
					{
					this.state = 7356;
					this.match(PlSqlParser.COMMA);
					this.state = 7357;
					this.match(PlSqlParser.PARTITION);
					this.state = 7359;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
					if (_la===521 || _la===657 || _la===779 || _la===993 || _la===1227 || _la===1230 || _la===1593 || _la===1909) {
						{
						this.state = 7358;
						this.segment_attributes_clause();
						}
					}

					}
					}
					this.state = 7365;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				this.state = 7366;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public enable_disable_clause(): Enable_disable_clauseContext {
		let localctx: Enable_disable_clauseContext = new Enable_disable_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 764, PlSqlParser.RULE_enable_disable_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 7369;
			_la = this._input.LA(1);
			if(!(_la===383 || _la===439)) {
			this._errHandler.recoverInline(this);
			}
			else {
				this._errHandler.reportMatch(this);
			    this.consume();
			}
			this.state = 7371;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1084 || _la===2070) {
				{
				this.state = 7370;
				_la = this._input.LA(1);
				if(!(_la===1084 || _la===2070)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				}
			}

			this.state = 7389;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 2002:
				{
				this.state = 7373;
				this.match(PlSqlParser.UNIQUE);
				this.state = 7374;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 7375;
				this.column_name();
				this.state = 7380;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===2229) {
					{
					{
					this.state = 7376;
					this.match(PlSqlParser.COMMA);
					this.state = 7377;
					this.column_name();
					}
					}
					this.state = 7382;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				this.state = 7383;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
				break;
			case 1304:
				{
				this.state = 7385;
				this.match(PlSqlParser.PRIMARY);
				this.state = 7386;
				this.match(PlSqlParser.KEY);
				}
				break;
			case 257:
				{
				this.state = 7387;
				this.match(PlSqlParser.CONSTRAINT);
				this.state = 7388;
				this.constraint_name();
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
			this.state = 7392;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===2063) {
				{
				this.state = 7391;
				this.using_index_clause();
				}
			}

			this.state = 7395;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===470) {
				{
				this.state = 7394;
				this.exceptions_clause();
				}
			}

			this.state = 7398;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===162) {
				{
				this.state = 7397;
				this.match(PlSqlParser.CASCADE);
				}
			}

			this.state = 7402;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===411 || _la===720) {
				{
				this.state = 7400;
				_la = this._input.LA(1);
				if(!(_la===411 || _la===720)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				this.state = 7401;
				this.match(PlSqlParser.INDEX);
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public using_index_clause(): Using_index_clauseContext {
		let localctx: Using_index_clauseContext = new Using_index_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 766, PlSqlParser.RULE_using_index_clause);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 7404;
			this.match(PlSqlParser.USING);
			this.state = 7405;
			this.match(PlSqlParser.INDEX);
			this.state = 7412;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 919, this._ctx) ) {
			case 1:
				{
				this.state = 7406;
				this.index_name();
				}
				break;
			case 2:
				{
				this.state = 7407;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 7408;
				this.create_index();
				this.state = 7409;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
				break;
			case 3:
				{
				this.state = 7411;
				this.index_attributes();
				}
				break;
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public index_attributes(): Index_attributesContext {
		let localctx: Index_attributesContext = new Index_attributesContext(this, this._ctx, this.state);
		this.enterRule(localctx, 768, PlSqlParser.RULE_index_attributes);
		try {
			let _alt: number;
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 7426;
			this._errHandler.sync(this);
			_alt = 1;
			do {
				switch (_alt) {
				case 1:
					{
					this.state = 7426;
					this._errHandler.sync(this);
					switch (this._input.LA(1)) {
					case 657:
					case 1227:
					case 1230:
					case 1593:
						{
						this.state = 7414;
						this.physical_attributes_clause();
						}
						break;
					case 521:
					case 779:
					case 993:
						{
						this.state = 7415;
						this.logging_clause();
						}
						break;
					case 1909:
						{
						this.state = 7416;
						this.match(PlSqlParser.TABLESPACE);
						this.state = 7419;
						this._errHandler.sync(this);
						switch (this._input.LA(1)) {
						case 1:
						case 2:
						case 3:
						case 4:
						case 5:
						case 6:
						case 7:
						case 8:
						case 9:
						case 10:
						case 11:
						case 12:
						case 13:
						case 14:
						case 15:
						case 16:
						case 17:
						case 18:
						case 19:
						case 20:
						case 21:
						case 22:
						case 23:
						case 24:
						case 25:
						case 26:
						case 27:
						case 28:
						case 29:
						case 30:
						case 31:
						case 32:
						case 33:
						case 34:
						case 36:
						case 37:
						case 38:
						case 40:
						case 41:
						case 42:
						case 44:
						case 45:
						case 46:
						case 47:
						case 49:
						case 50:
						case 51:
						case 52:
						case 53:
						case 54:
						case 55:
						case 56:
						case 57:
						case 58:
						case 59:
						case 60:
						case 63:
						case 64:
						case 65:
						case 66:
						case 67:
						case 68:
						case 69:
						case 70:
						case 71:
						case 72:
						case 73:
						case 74:
						case 75:
						case 76:
						case 78:
						case 79:
						case 80:
						case 81:
						case 82:
						case 83:
						case 85:
						case 86:
						case 87:
						case 88:
						case 89:
						case 90:
						case 91:
						case 92:
						case 93:
						case 95:
						case 96:
						case 97:
						case 98:
						case 99:
						case 100:
						case 101:
						case 102:
						case 103:
						case 104:
						case 105:
						case 106:
						case 108:
						case 109:
						case 110:
						case 111:
						case 112:
						case 113:
						case 114:
						case 115:
						case 116:
						case 117:
						case 118:
						case 119:
						case 120:
						case 121:
						case 122:
						case 123:
						case 124:
						case 125:
						case 126:
						case 127:
						case 128:
						case 129:
						case 130:
						case 131:
						case 132:
						case 133:
						case 134:
						case 135:
						case 136:
						case 137:
						case 138:
						case 139:
						case 140:
						case 141:
						case 142:
						case 143:
						case 144:
						case 145:
						case 147:
						case 148:
						case 149:
						case 150:
						case 151:
						case 152:
						case 153:
						case 154:
						case 155:
						case 156:
						case 157:
						case 158:
						case 160:
						case 161:
						case 162:
						case 163:
						case 164:
						case 165:
						case 166:
						case 167:
						case 168:
						case 169:
						case 170:
						case 171:
						case 172:
						case 174:
						case 175:
						case 176:
						case 177:
						case 178:
						case 179:
						case 181:
						case 182:
						case 183:
						case 184:
						case 185:
						case 186:
						case 187:
						case 188:
						case 189:
						case 190:
						case 191:
						case 192:
						case 193:
						case 194:
						case 195:
						case 196:
						case 197:
						case 198:
						case 199:
						case 200:
						case 201:
						case 202:
						case 203:
						case 204:
						case 205:
						case 206:
						case 207:
						case 208:
						case 209:
						case 210:
						case 211:
						case 212:
						case 213:
						case 214:
						case 215:
						case 216:
						case 217:
						case 218:
						case 219:
						case 220:
						case 221:
						case 222:
						case 223:
						case 224:
						case 225:
						case 226:
						case 227:
						case 228:
						case 229:
						case 230:
						case 231:
						case 233:
						case 234:
						case 235:
						case 236:
						case 237:
						case 238:
						case 239:
						case 240:
						case 241:
						case 242:
						case 243:
						case 244:
						case 245:
						case 246:
						case 247:
						case 248:
						case 249:
						case 250:
						case 252:
						case 253:
						case 254:
						case 255:
						case 256:
						case 257:
						case 258:
						case 259:
						case 260:
						case 261:
						case 262:
						case 263:
						case 264:
						case 265:
						case 266:
						case 267:
						case 268:
						case 269:
						case 270:
						case 271:
						case 272:
						case 273:
						case 274:
						case 275:
						case 276:
						case 277:
						case 278:
						case 279:
						case 280:
						case 281:
						case 282:
						case 283:
						case 284:
						case 285:
						case 286:
						case 287:
						case 289:
						case 290:
						case 291:
						case 292:
						case 293:
						case 294:
						case 295:
						case 296:
						case 297:
						case 298:
						case 299:
						case 300:
						case 301:
						case 302:
						case 303:
						case 304:
						case 305:
						case 306:
						case 307:
						case 308:
						case 309:
						case 310:
						case 311:
						case 312:
						case 313:
						case 314:
						case 315:
						case 316:
						case 317:
						case 318:
						case 319:
						case 321:
						case 322:
						case 323:
						case 324:
						case 325:
						case 326:
						case 328:
						case 329:
						case 330:
						case 331:
						case 332:
						case 333:
						case 334:
						case 335:
						case 336:
						case 337:
						case 338:
						case 339:
						case 340:
						case 341:
						case 342:
						case 343:
						case 344:
						case 345:
						case 346:
						case 347:
						case 348:
						case 349:
						case 350:
						case 352:
						case 353:
						case 354:
						case 355:
						case 356:
						case 357:
						case 358:
						case 359:
						case 360:
						case 361:
						case 362:
						case 363:
						case 364:
						case 365:
						case 366:
						case 367:
						case 368:
						case 369:
						case 370:
						case 372:
						case 373:
						case 374:
						case 375:
						case 376:
						case 377:
						case 378:
						case 379:
						case 380:
						case 381:
						case 382:
						case 383:
						case 384:
						case 385:
						case 386:
						case 387:
						case 388:
						case 389:
						case 390:
						case 391:
						case 392:
						case 394:
						case 395:
						case 397:
						case 398:
						case 399:
						case 400:
						case 401:
						case 402:
						case 403:
						case 404:
						case 405:
						case 406:
						case 407:
						case 408:
						case 409:
						case 410:
						case 412:
						case 413:
						case 414:
						case 415:
						case 417:
						case 418:
						case 419:
						case 420:
						case 421:
						case 422:
						case 423:
						case 424:
						case 425:
						case 426:
						case 427:
						case 428:
						case 429:
						case 430:
						case 431:
						case 434:
						case 435:
						case 436:
						case 437:
						case 438:
						case 439:
						case 440:
						case 441:
						case 442:
						case 443:
						case 444:
						case 446:
						case 447:
						case 448:
						case 449:
						case 450:
						case 451:
						case 452:
						case 453:
						case 454:
						case 455:
						case 456:
						case 457:
						case 458:
						case 459:
						case 460:
						case 461:
						case 462:
						case 463:
						case 464:
						case 465:
						case 466:
						case 467:
						case 468:
						case 469:
						case 470:
						case 471:
						case 472:
						case 473:
						case 475:
						case 476:
						case 477:
						case 478:
						case 479:
						case 480:
						case 481:
						case 482:
						case 483:
						case 484:
						case 485:
						case 486:
						case 487:
						case 488:
						case 489:
						case 490:
						case 491:
						case 492:
						case 493:
						case 494:
						case 495:
						case 496:
						case 497:
						case 498:
						case 499:
						case 500:
						case 501:
						case 502:
						case 503:
						case 504:
						case 505:
						case 506:
						case 507:
						case 508:
						case 509:
						case 510:
						case 511:
						case 512:
						case 513:
						case 514:
						case 515:
						case 516:
						case 517:
						case 518:
						case 519:
						case 520:
						case 521:
						case 522:
						case 523:
						case 524:
						case 525:
						case 526:
						case 527:
						case 528:
						case 529:
						case 530:
						case 531:
						case 532:
						case 533:
						case 534:
						case 535:
						case 536:
						case 537:
						case 538:
						case 539:
						case 540:
						case 541:
						case 542:
						case 543:
						case 544:
						case 545:
						case 547:
						case 548:
						case 549:
						case 550:
						case 551:
						case 552:
						case 553:
						case 555:
						case 556:
						case 557:
						case 558:
						case 559:
						case 560:
						case 561:
						case 562:
						case 563:
						case 564:
						case 565:
						case 566:
						case 567:
						case 568:
						case 569:
						case 572:
						case 574:
						case 575:
						case 576:
						case 577:
						case 578:
						case 579:
						case 580:
						case 581:
						case 582:
						case 583:
						case 584:
						case 586:
						case 587:
						case 588:
						case 589:
						case 590:
						case 591:
						case 592:
						case 593:
						case 594:
						case 595:
						case 596:
						case 597:
						case 598:
						case 599:
						case 600:
						case 602:
						case 603:
						case 604:
						case 605:
						case 606:
						case 607:
						case 608:
						case 609:
						case 610:
						case 611:
						case 612:
						case 613:
						case 614:
						case 615:
						case 616:
						case 617:
						case 618:
						case 619:
						case 620:
						case 621:
						case 622:
						case 623:
						case 624:
						case 625:
						case 626:
						case 627:
						case 628:
						case 629:
						case 630:
						case 632:
						case 633:
						case 634:
						case 635:
						case 636:
						case 637:
						case 638:
						case 639:
						case 640:
						case 641:
						case 642:
						case 643:
						case 644:
						case 645:
						case 646:
						case 647:
						case 648:
						case 649:
						case 650:
						case 651:
						case 653:
						case 654:
						case 655:
						case 656:
						case 657:
						case 658:
						case 659:
						case 660:
						case 661:
						case 662:
						case 663:
						case 664:
						case 665:
						case 666:
						case 667:
						case 668:
						case 670:
						case 671:
						case 672:
						case 673:
						case 674:
						case 675:
						case 676:
						case 677:
						case 678:
						case 679:
						case 680:
						case 681:
						case 682:
						case 683:
						case 684:
						case 685:
						case 686:
						case 687:
						case 689:
						case 690:
						case 692:
						case 693:
						case 694:
						case 696:
						case 697:
						case 698:
						case 699:
						case 700:
						case 701:
						case 702:
						case 703:
						case 704:
						case 705:
						case 706:
						case 707:
						case 708:
						case 709:
						case 710:
						case 711:
						case 712:
						case 713:
						case 714:
						case 715:
						case 716:
						case 717:
						case 718:
						case 719:
						case 720:
						case 721:
						case 722:
						case 723:
						case 724:
						case 725:
						case 726:
						case 727:
						case 728:
						case 729:
						case 730:
						case 731:
						case 732:
						case 733:
						case 734:
						case 735:
						case 736:
						case 737:
						case 738:
						case 739:
						case 740:
						case 741:
						case 742:
						case 743:
						case 744:
						case 745:
						case 746:
						case 747:
						case 748:
						case 749:
						case 750:
						case 751:
						case 752:
						case 753:
						case 754:
						case 755:
						case 756:
						case 758:
						case 759:
						case 760:
						case 761:
						case 762:
						case 763:
						case 764:
						case 765:
						case 766:
						case 767:
						case 768:
						case 769:
						case 770:
						case 771:
						case 772:
						case 773:
						case 774:
						case 775:
						case 777:
						case 778:
						case 779:
						case 780:
						case 781:
						case 782:
						case 783:
						case 784:
						case 785:
						case 786:
						case 787:
						case 788:
						case 789:
						case 790:
						case 791:
						case 792:
						case 793:
						case 794:
						case 795:
						case 796:
						case 797:
						case 798:
						case 799:
						case 800:
						case 801:
						case 802:
						case 803:
						case 804:
						case 805:
						case 806:
						case 807:
						case 808:
						case 809:
						case 810:
						case 811:
						case 812:
						case 813:
						case 814:
						case 815:
						case 816:
						case 817:
						case 818:
						case 819:
						case 820:
						case 821:
						case 822:
						case 823:
						case 824:
						case 825:
						case 826:
						case 827:
						case 828:
						case 829:
						case 830:
						case 831:
						case 832:
						case 833:
						case 834:
						case 835:
						case 836:
						case 837:
						case 838:
						case 839:
						case 840:
						case 841:
						case 843:
						case 844:
						case 845:
						case 846:
						case 847:
						case 848:
						case 849:
						case 850:
						case 851:
						case 852:
						case 853:
						case 854:
						case 855:
						case 856:
						case 857:
						case 858:
						case 859:
						case 861:
						case 862:
						case 863:
						case 864:
						case 865:
						case 866:
						case 867:
						case 868:
						case 869:
						case 870:
						case 871:
						case 872:
						case 873:
						case 874:
						case 875:
						case 876:
						case 877:
						case 878:
						case 879:
						case 880:
						case 881:
						case 882:
						case 883:
						case 884:
						case 885:
						case 886:
						case 888:
						case 889:
						case 890:
						case 891:
						case 892:
						case 893:
						case 894:
						case 895:
						case 896:
						case 897:
						case 898:
						case 899:
						case 900:
						case 901:
						case 902:
						case 903:
						case 904:
						case 905:
						case 906:
						case 907:
						case 908:
						case 909:
						case 910:
						case 911:
						case 912:
						case 913:
						case 914:
						case 915:
						case 916:
						case 917:
						case 918:
						case 919:
						case 920:
						case 921:
						case 922:
						case 923:
						case 924:
						case 925:
						case 926:
						case 927:
						case 928:
						case 929:
						case 930:
						case 931:
						case 932:
						case 933:
						case 934:
						case 935:
						case 936:
						case 937:
						case 938:
						case 939:
						case 940:
						case 941:
						case 942:
						case 943:
						case 944:
						case 945:
						case 946:
						case 947:
						case 948:
						case 949:
						case 950:
						case 951:
						case 952:
						case 954:
						case 955:
						case 956:
						case 957:
						case 958:
						case 959:
						case 960:
						case 961:
						case 962:
						case 963:
						case 964:
						case 965:
						case 966:
						case 967:
						case 968:
						case 969:
						case 970:
						case 971:
						case 972:
						case 973:
						case 974:
						case 975:
						case 976:
						case 977:
						case 978:
						case 979:
						case 980:
						case 981:
						case 982:
						case 983:
						case 984:
						case 985:
						case 986:
						case 987:
						case 988:
						case 989:
						case 990:
						case 991:
						case 992:
						case 993:
						case 994:
						case 995:
						case 996:
						case 997:
						case 998:
						case 999:
						case 1000:
						case 1001:
						case 1002:
						case 1003:
						case 1004:
						case 1005:
						case 1006:
						case 1007:
						case 1008:
						case 1009:
						case 1010:
						case 1011:
						case 1012:
						case 1013:
						case 1014:
						case 1015:
						case 1016:
						case 1017:
						case 1018:
						case 1019:
						case 1020:
						case 1021:
						case 1022:
						case 1023:
						case 1024:
						case 1025:
						case 1026:
						case 1027:
						case 1028:
						case 1029:
						case 1030:
						case 1031:
						case 1032:
						case 1033:
						case 1034:
						case 1035:
						case 1036:
						case 1037:
						case 1038:
						case 1039:
						case 1040:
						case 1041:
						case 1042:
						case 1043:
						case 1044:
						case 1045:
						case 1046:
						case 1047:
						case 1048:
						case 1049:
						case 1050:
						case 1051:
						case 1052:
						case 1053:
						case 1054:
						case 1055:
						case 1056:
						case 1057:
						case 1058:
						case 1059:
						case 1060:
						case 1061:
						case 1062:
						case 1063:
						case 1064:
						case 1065:
						case 1066:
						case 1067:
						case 1068:
						case 1069:
						case 1070:
						case 1071:
						case 1072:
						case 1074:
						case 1075:
						case 1076:
						case 1077:
						case 1078:
						case 1079:
						case 1080:
						case 1081:
						case 1082:
						case 1083:
						case 1084:
						case 1085:
						case 1086:
						case 1087:
						case 1089:
						case 1090:
						case 1091:
						case 1092:
						case 1093:
						case 1094:
						case 1095:
						case 1096:
						case 1098:
						case 1099:
						case 1100:
						case 1101:
						case 1102:
						case 1103:
						case 1104:
						case 1105:
						case 1106:
						case 1107:
						case 1108:
						case 1109:
						case 1110:
						case 1111:
						case 1112:
						case 1113:
						case 1114:
						case 1116:
						case 1117:
						case 1118:
						case 1119:
						case 1120:
						case 1121:
						case 1122:
						case 1123:
						case 1124:
						case 1125:
						case 1127:
						case 1129:
						case 1130:
						case 1131:
						case 1132:
						case 1133:
						case 1134:
						case 1135:
						case 1136:
						case 1137:
						case 1138:
						case 1139:
						case 1140:
						case 1142:
						case 1143:
						case 1144:
						case 1145:
						case 1146:
						case 1147:
						case 1148:
						case 1149:
						case 1150:
						case 1151:
						case 1152:
						case 1153:
						case 1154:
						case 1155:
						case 1156:
						case 1157:
						case 1158:
						case 1159:
						case 1160:
						case 1161:
						case 1162:
						case 1163:
						case 1164:
						case 1165:
						case 1166:
						case 1167:
						case 1169:
						case 1170:
						case 1171:
						case 1173:
						case 1174:
						case 1175:
						case 1176:
						case 1177:
						case 1178:
						case 1179:
						case 1180:
						case 1181:
						case 1182:
						case 1183:
						case 1184:
						case 1185:
						case 1186:
						case 1187:
						case 1188:
						case 1189:
						case 1190:
						case 1191:
						case 1192:
						case 1193:
						case 1194:
						case 1195:
						case 1197:
						case 1198:
						case 1199:
						case 1200:
						case 1201:
						case 1202:
						case 1203:
						case 1204:
						case 1205:
						case 1206:
						case 1207:
						case 1208:
						case 1209:
						case 1210:
						case 1211:
						case 1212:
						case 1213:
						case 1214:
						case 1215:
						case 1216:
						case 1217:
						case 1218:
						case 1219:
						case 1220:
						case 1221:
						case 1222:
						case 1223:
						case 1224:
						case 1225:
						case 1226:
						case 1228:
						case 1229:
						case 1230:
						case 1231:
						case 1232:
						case 1236:
						case 1237:
						case 1241:
						case 1242:
						case 1243:
						case 1244:
						case 1245:
						case 1246:
						case 1247:
						case 1248:
						case 1249:
						case 1250:
						case 1252:
						case 1253:
						case 1254:
						case 1255:
						case 1256:
						case 1257:
						case 1258:
						case 1259:
						case 1260:
						case 1261:
						case 1262:
						case 1263:
						case 1264:
						case 1265:
						case 1266:
						case 1267:
						case 1268:
						case 1269:
						case 1270:
						case 1271:
						case 1272:
						case 1273:
						case 1274:
						case 1275:
						case 1276:
						case 1277:
						case 1278:
						case 1279:
						case 1280:
						case 1281:
						case 1282:
						case 1283:
						case 1284:
						case 1285:
						case 1286:
						case 1287:
						case 1288:
						case 1289:
						case 1290:
						case 1291:
						case 1292:
						case 1293:
						case 1294:
						case 1295:
						case 1296:
						case 1297:
						case 1298:
						case 1299:
						case 1300:
						case 1301:
						case 1302:
						case 1303:
						case 1304:
						case 1305:
						case 1306:
						case 1308:
						case 1309:
						case 1310:
						case 1311:
						case 1312:
						case 1313:
						case 1314:
						case 1315:
						case 1316:
						case 1317:
						case 1318:
						case 1319:
						case 1320:
						case 1321:
						case 1322:
						case 1323:
						case 1325:
						case 1326:
						case 1327:
						case 1328:
						case 1329:
						case 1330:
						case 1331:
						case 1332:
						case 1333:
						case 1334:
						case 1335:
						case 1336:
						case 1337:
						case 1338:
						case 1339:
						case 1340:
						case 1341:
						case 1342:
						case 1343:
						case 1344:
						case 1345:
						case 1346:
						case 1347:
						case 1348:
						case 1349:
						case 1350:
						case 1351:
						case 1352:
						case 1353:
						case 1354:
						case 1355:
						case 1356:
						case 1357:
						case 1358:
						case 1359:
						case 1360:
						case 1361:
						case 1362:
						case 1363:
						case 1364:
						case 1365:
						case 1366:
						case 1367:
						case 1368:
						case 1369:
						case 1370:
						case 1371:
						case 1372:
						case 1373:
						case 1374:
						case 1375:
						case 1376:
						case 1377:
						case 1378:
						case 1379:
						case 1380:
						case 1381:
						case 1382:
						case 1383:
						case 1384:
						case 1385:
						case 1386:
						case 1387:
						case 1388:
						case 1389:
						case 1390:
						case 1391:
						case 1392:
						case 1393:
						case 1394:
						case 1395:
						case 1396:
						case 1397:
						case 1399:
						case 1400:
						case 1401:
						case 1402:
						case 1403:
						case 1404:
						case 1405:
						case 1406:
						case 1407:
						case 1408:
						case 1409:
						case 1410:
						case 1411:
						case 1412:
						case 1413:
						case 1414:
						case 1416:
						case 1417:
						case 1418:
						case 1419:
						case 1420:
						case 1421:
						case 1422:
						case 1423:
						case 1424:
						case 1425:
						case 1426:
						case 1427:
						case 1428:
						case 1429:
						case 1430:
						case 1431:
						case 1432:
						case 1433:
						case 1435:
						case 1436:
						case 1437:
						case 1438:
						case 1439:
						case 1440:
						case 1441:
						case 1442:
						case 1443:
						case 1444:
						case 1445:
						case 1446:
						case 1447:
						case 1448:
						case 1449:
						case 1450:
						case 1451:
						case 1452:
						case 1453:
						case 1454:
						case 1455:
						case 1456:
						case 1457:
						case 1458:
						case 1459:
						case 1460:
						case 1461:
						case 1462:
						case 1463:
						case 1464:
						case 1465:
						case 1466:
						case 1467:
						case 1468:
						case 1469:
						case 1470:
						case 1471:
						case 1472:
						case 1473:
						case 1474:
						case 1475:
						case 1476:
						case 1477:
						case 1478:
						case 1479:
						case 1480:
						case 1481:
						case 1482:
						case 1483:
						case 1484:
						case 1485:
						case 1486:
						case 1487:
						case 1488:
						case 1489:
						case 1491:
						case 1492:
						case 1493:
						case 1494:
						case 1495:
						case 1496:
						case 1497:
						case 1499:
						case 1500:
						case 1501:
						case 1502:
						case 1503:
						case 1504:
						case 1505:
						case 1506:
						case 1507:
						case 1508:
						case 1509:
						case 1510:
						case 1511:
						case 1512:
						case 1513:
						case 1514:
						case 1515:
						case 1516:
						case 1518:
						case 1519:
						case 1520:
						case 1521:
						case 1522:
						case 1523:
						case 1524:
						case 1525:
						case 1526:
						case 1527:
						case 1528:
						case 1529:
						case 1530:
						case 1531:
						case 1532:
						case 1533:
						case 1534:
						case 1536:
						case 1537:
						case 1538:
						case 1539:
						case 1540:
						case 1541:
						case 1542:
						case 1543:
						case 1544:
						case 1545:
						case 1546:
						case 1547:
						case 1548:
						case 1549:
						case 1550:
						case 1551:
						case 1552:
						case 1553:
						case 1554:
						case 1555:
						case 1556:
						case 1557:
						case 1558:
						case 1559:
						case 1560:
						case 1561:
						case 1562:
						case 1563:
						case 1564:
						case 1565:
						case 1566:
						case 1567:
						case 1568:
						case 1570:
						case 1571:
						case 1572:
						case 1573:
						case 1574:
						case 1575:
						case 1576:
						case 1577:
						case 1578:
						case 1579:
						case 1580:
						case 1581:
						case 1582:
						case 1583:
						case 1584:
						case 1585:
						case 1586:
						case 1587:
						case 1588:
						case 1589:
						case 1590:
						case 1591:
						case 1592:
						case 1593:
						case 1594:
						case 1595:
						case 1596:
						case 1597:
						case 1598:
						case 1599:
						case 1600:
						case 1601:
						case 1602:
						case 1603:
						case 1604:
						case 1605:
						case 1606:
						case 1607:
						case 1608:
						case 1609:
						case 1610:
						case 1611:
						case 1612:
						case 1613:
						case 1614:
						case 1615:
						case 1616:
						case 1617:
						case 1618:
						case 1619:
						case 1620:
						case 1621:
						case 1622:
						case 1623:
						case 1624:
						case 1625:
						case 1626:
						case 1628:
						case 1629:
						case 1630:
						case 1631:
						case 1632:
						case 1633:
						case 1634:
						case 1635:
						case 1636:
						case 1637:
						case 1638:
						case 1639:
						case 1640:
						case 1641:
						case 1642:
						case 1643:
						case 1644:
						case 1645:
						case 1646:
						case 1647:
						case 1648:
						case 1649:
						case 1650:
						case 1651:
						case 1652:
						case 1653:
						case 1654:
						case 1655:
						case 1656:
						case 1657:
						case 1658:
						case 1659:
						case 1660:
						case 1661:
						case 1662:
						case 1663:
						case 1664:
						case 1665:
						case 1666:
						case 1667:
						case 1668:
						case 1669:
						case 1670:
						case 1671:
						case 1672:
						case 1673:
						case 1674:
						case 1675:
						case 1676:
						case 1677:
						case 1678:
						case 1679:
						case 1680:
						case 1681:
						case 1682:
						case 1683:
						case 1684:
						case 1685:
						case 1686:
						case 1687:
						case 1688:
						case 1689:
						case 1690:
						case 1691:
						case 1692:
						case 1693:
						case 1694:
						case 1695:
						case 1696:
						case 1697:
						case 1698:
						case 1699:
						case 1700:
						case 1701:
						case 1702:
						case 1703:
						case 1704:
						case 1705:
						case 1706:
						case 1707:
						case 1708:
						case 1709:
						case 1710:
						case 1711:
						case 1712:
						case 1713:
						case 1714:
						case 1715:
						case 1716:
						case 1717:
						case 1718:
						case 1719:
						case 1720:
						case 1721:
						case 1722:
						case 1723:
						case 1724:
						case 1725:
						case 1726:
						case 1727:
						case 1728:
						case 1729:
						case 1730:
						case 1731:
						case 1732:
						case 1733:
						case 1734:
						case 1735:
						case 1736:
						case 1737:
						case 1738:
						case 1739:
						case 1740:
						case 1741:
						case 1742:
						case 1743:
						case 1744:
						case 1745:
						case 1746:
						case 1747:
						case 1748:
						case 1749:
						case 1750:
						case 1751:
						case 1752:
						case 1753:
						case 1754:
						case 1755:
						case 1756:
						case 1757:
						case 1758:
						case 1759:
						case 1760:
						case 1761:
						case 1762:
						case 1763:
						case 1764:
						case 1765:
						case 1766:
						case 1767:
						case 1768:
						case 1769:
						case 1770:
						case 1771:
						case 1772:
						case 1773:
						case 1774:
						case 1775:
						case 1776:
						case 1777:
						case 1778:
						case 1779:
						case 1780:
						case 1781:
						case 1782:
						case 1783:
						case 1784:
						case 1785:
						case 1786:
						case 1787:
						case 1788:
						case 1789:
						case 1790:
						case 1791:
						case 1792:
						case 1793:
						case 1794:
						case 1795:
						case 1796:
						case 1797:
						case 1798:
						case 1799:
						case 1800:
						case 1801:
						case 1802:
						case 1803:
						case 1804:
						case 1805:
						case 1806:
						case 1807:
						case 1808:
						case 1809:
						case 1810:
						case 1811:
						case 1812:
						case 1813:
						case 1814:
						case 1815:
						case 1816:
						case 1817:
						case 1818:
						case 1819:
						case 1820:
						case 1821:
						case 1822:
						case 1823:
						case 1824:
						case 1825:
						case 1826:
						case 1827:
						case 1828:
						case 1829:
						case 1830:
						case 1831:
						case 1832:
						case 1833:
						case 1834:
						case 1835:
						case 1836:
						case 1837:
						case 1838:
						case 1839:
						case 1840:
						case 1841:
						case 1842:
						case 1843:
						case 1844:
						case 1845:
						case 1846:
						case 1847:
						case 1848:
						case 1849:
						case 1850:
						case 1851:
						case 1852:
						case 1853:
						case 1854:
						case 1855:
						case 1856:
						case 1857:
						case 1858:
						case 1859:
						case 1860:
						case 1861:
						case 1862:
						case 1863:
						case 1864:
						case 1865:
						case 1866:
						case 1867:
						case 1868:
						case 1869:
						case 1870:
						case 1871:
						case 1872:
						case 1873:
						case 1874:
						case 1875:
						case 1876:
						case 1877:
						case 1878:
						case 1879:
						case 1880:
						case 1881:
						case 1882:
						case 1883:
						case 1884:
						case 1885:
						case 1886:
						case 1887:
						case 1888:
						case 1889:
						case 1890:
						case 1891:
						case 1892:
						case 1893:
						case 1894:
						case 1895:
						case 1896:
						case 1897:
						case 1898:
						case 1899:
						case 1900:
						case 1901:
						case 1902:
						case 1903:
						case 1904:
						case 1905:
						case 1906:
						case 1907:
						case 1908:
						case 1909:
						case 1910:
						case 1911:
						case 1912:
						case 1913:
						case 1914:
						case 1915:
						case 1916:
						case 1917:
						case 1918:
						case 1919:
						case 1920:
						case 1921:
						case 1922:
						case 1923:
						case 1924:
						case 1925:
						case 1926:
						case 1927:
						case 1928:
						case 1929:
						case 1930:
						case 1931:
						case 1932:
						case 1933:
						case 1934:
						case 1935:
						case 1936:
						case 1937:
						case 1939:
						case 1940:
						case 1941:
						case 1942:
						case 1943:
						case 1944:
						case 1945:
						case 1946:
						case 1947:
						case 1948:
						case 1949:
						case 1950:
						case 1951:
						case 1952:
						case 1953:
						case 1954:
						case 1955:
						case 1956:
						case 1957:
						case 1958:
						case 1959:
						case 1960:
						case 1961:
						case 1962:
						case 1963:
						case 1965:
						case 1966:
						case 1967:
						case 1968:
						case 1969:
						case 1970:
						case 1971:
						case 1972:
						case 1973:
						case 1974:
						case 1975:
						case 1976:
						case 1977:
						case 1978:
						case 1979:
						case 1980:
						case 1981:
						case 1982:
						case 1983:
						case 1984:
						case 1985:
						case 1986:
						case 1987:
						case 1988:
						case 1989:
						case 1990:
						case 1991:
						case 1992:
						case 1993:
						case 1994:
						case 1995:
						case 1996:
						case 1997:
						case 1998:
						case 1999:
						case 2000:
						case 2003:
						case 2004:
						case 2005:
						case 2006:
						case 2007:
						case 2008:
						case 2009:
						case 2010:
						case 2011:
						case 2012:
						case 2013:
						case 2014:
						case 2015:
						case 2016:
						case 2017:
						case 2018:
						case 2019:
						case 2020:
						case 2021:
						case 2022:
						case 2023:
						case 2024:
						case 2026:
						case 2027:
						case 2028:
						case 2029:
						case 2030:
						case 2031:
						case 2032:
						case 2033:
						case 2034:
						case 2035:
						case 2036:
						case 2037:
						case 2038:
						case 2039:
						case 2040:
						case 2041:
						case 2042:
						case 2043:
						case 2044:
						case 2045:
						case 2046:
						case 2047:
						case 2048:
						case 2049:
						case 2050:
						case 2051:
						case 2052:
						case 2053:
						case 2054:
						case 2055:
						case 2056:
						case 2057:
						case 2058:
						case 2059:
						case 2060:
						case 2061:
						case 2062:
						case 2063:
						case 2064:
						case 2065:
						case 2066:
						case 2067:
						case 2068:
						case 2069:
						case 2070:
						case 2071:
						case 2072:
						case 2074:
						case 2075:
						case 2076:
						case 2077:
						case 2078:
						case 2079:
						case 2080:
						case 2081:
						case 2082:
						case 2083:
						case 2084:
						case 2085:
						case 2086:
						case 2087:
						case 2088:
						case 2089:
						case 2090:
						case 2091:
						case 2092:
						case 2093:
						case 2094:
						case 2095:
						case 2096:
						case 2097:
						case 2098:
						case 2100:
						case 2101:
						case 2102:
						case 2103:
						case 2104:
						case 2105:
						case 2106:
						case 2107:
						case 2108:
						case 2109:
						case 2110:
						case 2111:
						case 2112:
						case 2113:
						case 2115:
						case 2116:
						case 2117:
						case 2118:
						case 2119:
						case 2120:
						case 2122:
						case 2123:
						case 2124:
						case 2125:
						case 2126:
						case 2128:
						case 2129:
						case 2130:
						case 2131:
						case 2132:
						case 2133:
						case 2134:
						case 2135:
						case 2136:
						case 2137:
						case 2138:
						case 2139:
						case 2140:
						case 2141:
						case 2142:
						case 2143:
						case 2145:
						case 2146:
						case 2147:
						case 2148:
						case 2149:
						case 2150:
						case 2151:
						case 2152:
						case 2153:
						case 2154:
						case 2155:
						case 2156:
						case 2157:
						case 2158:
						case 2159:
						case 2160:
						case 2161:
						case 2162:
						case 2163:
						case 2164:
						case 2165:
						case 2166:
						case 2168:
						case 2169:
						case 2170:
						case 2171:
						case 2172:
						case 2173:
						case 2174:
						case 2175:
						case 2176:
						case 2177:
						case 2178:
						case 2179:
						case 2180:
						case 2181:
						case 2182:
						case 2183:
						case 2184:
						case 2185:
						case 2186:
						case 2187:
						case 2188:
						case 2189:
						case 2191:
						case 2192:
						case 2193:
						case 2194:
						case 2195:
						case 2196:
						case 2197:
						case 2198:
						case 2199:
						case 2200:
						case 2201:
						case 2202:
						case 2203:
						case 2204:
						case 2205:
						case 2206:
						case 2207:
						case 2208:
						case 2209:
						case 2210:
						case 2211:
						case 2216:
						case 2252:
							{
							this.state = 7417;
							this.tablespace();
							}
							break;
						case 351:
							{
							this.state = 7418;
							this.match(PlSqlParser.DEFAULT);
							}
							break;
						default:
							throw new NoViableAltException(this);
						}
						}
						break;
					case 232:
					case 953:
						{
						this.state = 7421;
						this.key_compression();
						}
						break;
					case 1058:
					case 1544:
						{
						this.state = 7422;
						this.sort_or_nosort();
						}
						break;
					case 1433:
						{
						this.state = 7423;
						this.match(PlSqlParser.REVERSE);
						}
						break;
					case 693:
					case 2103:
						{
						this.state = 7424;
						this.visible_or_invisible();
						}
						break;
					case 1021:
					case 1195:
						{
						this.state = 7425;
						this.parallel_clause();
						}
						break;
					default:
						throw new NoViableAltException(this);
					}
					}
					break;
				default:
					throw new NoViableAltException(this);
				}
				this.state = 7428;
				this._errHandler.sync(this);
				_alt = this._interp.adaptivePredict(this._input, 922, this._ctx);
			} while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public sort_or_nosort(): Sort_or_nosortContext {
		let localctx: Sort_or_nosortContext = new Sort_or_nosortContext(this, this._ctx, this.state);
		this.enterRule(localctx, 770, PlSqlParser.RULE_sort_or_nosort);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 7430;
			_la = this._input.LA(1);
			if(!(_la===1058 || _la===1544)) {
			this._errHandler.recoverInline(this);
			}
			else {
				this._errHandler.reportMatch(this);
			    this.consume();
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public exceptions_clause(): Exceptions_clauseContext {
		let localctx: Exceptions_clauseContext = new Exceptions_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 772, PlSqlParser.RULE_exceptions_clause);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 7432;
			this.match(PlSqlParser.EXCEPTIONS);
			this.state = 7433;
			this.match(PlSqlParser.INTO);
			this.state = 7434;
			this.tableview_name();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public move_table_clause(): Move_table_clauseContext {
		let localctx: Move_table_clauseContext = new Move_table_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 774, PlSqlParser.RULE_move_table_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 7436;
			this.match(PlSqlParser.MOVE);
			this.state = 7438;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1125) {
				{
				this.state = 7437;
				this.match(PlSqlParser.ONLINE);
				}
			}

			this.state = 7441;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===521 || _la===657 || _la===779 || _la===993 || _la===1227 || _la===1230 || _la===1593 || _la===1909) {
				{
				this.state = 7440;
				this.segment_attributes_clause();
				}
			}

			this.state = 7444;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 925, this._ctx) ) {
			case 1:
				{
				this.state = 7443;
				this.table_compression();
				}
				break;
			}
			this.state = 7447;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===232 || _la===802 || _la===953 || _la===994 || _la===1229) {
				{
				this.state = 7446;
				this.index_org_table_clause();
				}
			}

			this.state = 7455;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===765 || _la===2080) {
				{
				this.state = 7451;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				do {
					{
					this.state = 7451;
					this._errHandler.sync(this);
					switch (this._input.LA(1)) {
					case 765:
						{
						this.state = 7449;
						this.lob_storage_clause();
						}
						break;
					case 2080:
						{
						this.state = 7450;
						this.varray_col_properties();
						}
						break;
					default:
						throw new NoViableAltException(this);
					}
					}
					this.state = 7453;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				} while (_la===765 || _la===2080);
				}
			}

			this.state = 7458;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1021 || _la===1195) {
				{
				this.state = 7457;
				this.parallel_clause();
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public index_org_table_clause(): Index_org_table_clauseContext {
		let localctx: Index_org_table_clauseContext = new Index_org_table_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 776, PlSqlParser.RULE_index_org_table_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 7464;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 802:
			case 994:
				{
				this.state = 7460;
				this.mapping_table_clause();
				}
				break;
			case 1229:
				{
				this.state = 7461;
				this.match(PlSqlParser.PCTTHRESHOLD);
				this.state = 7462;
				this.match(PlSqlParser.UNSIGNED_INTEGER);
				}
				break;
			case 232:
			case 953:
				{
				this.state = 7463;
				this.key_compression();
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
			this.state = 7467;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===619 || _la===1184) {
				{
				this.state = 7466;
				this.index_org_overflow_clause();
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public mapping_table_clause(): Mapping_table_clauseContext {
		let localctx: Mapping_table_clauseContext = new Mapping_table_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 778, PlSqlParser.RULE_mapping_table_clause);
		try {
			this.state = 7472;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 802:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 7469;
				this.match(PlSqlParser.MAPPING);
				this.state = 7470;
				this.match(PlSqlParser.TABLE);
				}
				break;
			case 994:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 7471;
				this.match(PlSqlParser.NOMAPPING);
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public key_compression(): Key_compressionContext {
		let localctx: Key_compressionContext = new Key_compressionContext(this, this._ctx, this.state);
		this.enterRule(localctx, 780, PlSqlParser.RULE_key_compression);
		try {
			this.state = 7477;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 953:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 7474;
				this.match(PlSqlParser.NOCOMPRESS);
				}
				break;
			case 232:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 7475;
				this.match(PlSqlParser.COMPRESS);
				this.state = 7476;
				this.match(PlSqlParser.UNSIGNED_INTEGER);
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public index_org_overflow_clause(): Index_org_overflow_clauseContext {
		let localctx: Index_org_overflow_clauseContext = new Index_org_overflow_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 782, PlSqlParser.RULE_index_org_overflow_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 7481;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===619) {
				{
				this.state = 7479;
				this.match(PlSqlParser.INCLUDING);
				this.state = 7480;
				this.column_name();
				}
			}

			this.state = 7483;
			this.match(PlSqlParser.OVERFLOW);
			this.state = 7485;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===521 || _la===657 || _la===779 || _la===993 || _la===1227 || _la===1230 || _la===1593 || _la===1909) {
				{
				this.state = 7484;
				this.segment_attributes_clause();
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public column_clauses(): Column_clausesContext {
		let localctx: Column_clausesContext = new Column_clausesContext(this, this._ctx, this.state);
		this.enterRule(localctx, 784, PlSqlParser.RULE_column_clauses);
		try {
			this.state = 7491;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 937, this._ctx) ) {
			case 1:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 7487;
				this.add_modify_drop_column_clauses();
				}
				break;
			case 2:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 7488;
				this.rename_column_clause();
				}
				break;
			case 3:
				this.enterOuterAlt(localctx, 3);
				{
				this.state = 7489;
				this.modify_collection_retrieval();
				}
				break;
			case 4:
				this.enterOuterAlt(localctx, 4);
				{
				this.state = 7490;
				this.modify_lob_storage_clause();
				}
				break;
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public modify_collection_retrieval(): Modify_collection_retrievalContext {
		let localctx: Modify_collection_retrievalContext = new Modify_collection_retrievalContext(this, this._ctx, this.state);
		this.enterRule(localctx, 786, PlSqlParser.RULE_modify_collection_retrieval);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 7493;
			this.match(PlSqlParser.MODIFY);
			this.state = 7494;
			this.match(PlSqlParser.NESTED);
			this.state = 7495;
			this.match(PlSqlParser.TABLE);
			this.state = 7496;
			this.collection_item();
			this.state = 7497;
			this.match(PlSqlParser.RETURN);
			this.state = 7498;
			this.match(PlSqlParser.AS);
			this.state = 7499;
			_la = this._input.LA(1);
			if(!(_la===773 || _la===2074)) {
			this._errHandler.recoverInline(this);
			}
			else {
				this._errHandler.reportMatch(this);
			    this.consume();
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public collection_item(): Collection_itemContext {
		let localctx: Collection_itemContext = new Collection_itemContext(this, this._ctx, this.state);
		this.enterRule(localctx, 788, PlSqlParser.RULE_collection_item);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 7501;
			this.tableview_name();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public rename_column_clause(): Rename_column_clauseContext {
		let localctx: Rename_column_clauseContext = new Rename_column_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 790, PlSqlParser.RULE_rename_column_clause);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 7503;
			this.match(PlSqlParser.RENAME);
			this.state = 7504;
			this.match(PlSqlParser.COLUMN);
			this.state = 7505;
			this.old_column_name();
			this.state = 7506;
			this.match(PlSqlParser.TO);
			this.state = 7507;
			this.new_column_name();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public old_column_name(): Old_column_nameContext {
		let localctx: Old_column_nameContext = new Old_column_nameContext(this, this._ctx, this.state);
		this.enterRule(localctx, 792, PlSqlParser.RULE_old_column_name);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 7509;
			this.column_name();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public new_column_name(): New_column_nameContext {
		let localctx: New_column_nameContext = new New_column_nameContext(this, this._ctx, this.state);
		this.enterRule(localctx, 794, PlSqlParser.RULE_new_column_name);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 7511;
			this.column_name();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public add_modify_drop_column_clauses(): Add_modify_drop_column_clausesContext {
		let localctx: Add_modify_drop_column_clausesContext = new Add_modify_drop_column_clausesContext(this, this._ctx, this.state);
		this.enterRule(localctx, 796, PlSqlParser.RULE_add_modify_drop_column_clauses);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 7516;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			do {
				{
				this.state = 7516;
				this._errHandler.sync(this);
				switch (this._input.LA(1)) {
				case 18:
					{
					this.state = 7513;
					this.add_column_clause();
					}
					break;
				case 863:
					{
					this.state = 7514;
					this.modify_column_clauses();
					}
					break;
				case 411:
				case 1510:
					{
					this.state = 7515;
					this.drop_column_clause();
					}
					break;
				default:
					throw new NoViableAltException(this);
				}
				}
				this.state = 7518;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			} while (_la===18 || _la===411 || _la===863 || _la===1510);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public drop_column_clause(): Drop_column_clauseContext {
		let localctx: Drop_column_clauseContext = new Drop_column_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 798, PlSqlParser.RULE_drop_column_clause);
		let _la: number;
		try {
			this.state = 7582;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 950, this._ctx) ) {
			case 1:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 7520;
				this.match(PlSqlParser.SET);
				this.state = 7521;
				this.match(PlSqlParser.UNUSED);
				this.state = 7535;
				this._errHandler.sync(this);
				switch (this._input.LA(1)) {
				case 213:
					{
					this.state = 7522;
					this.match(PlSqlParser.COLUMN);
					this.state = 7523;
					this.column_name();
					}
					break;
				case 2223:
					{
					{
					this.state = 7524;
					this.match(PlSqlParser.LEFT_PAREN);
					this.state = 7525;
					this.column_name();
					this.state = 7530;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
					while (_la===2229) {
						{
						{
						this.state = 7526;
						this.match(PlSqlParser.COMMA);
						this.state = 7527;
						this.column_name();
						}
						}
						this.state = 7532;
						this._errHandler.sync(this);
						_la = this._input.LA(1);
					}
					this.state = 7533;
					this.match(PlSqlParser.RIGHT_PAREN);
					}
					}
					break;
				default:
					throw new NoViableAltException(this);
				}
				this.state = 7542;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===162 || _la===692) {
					{
					this.state = 7540;
					this._errHandler.sync(this);
					switch (this._input.LA(1)) {
					case 162:
						{
						this.state = 7537;
						this.match(PlSqlParser.CASCADE);
						this.state = 7538;
						this.match(PlSqlParser.CONSTRAINTS);
						}
						break;
					case 692:
						{
						this.state = 7539;
						this.match(PlSqlParser.INVALIDATE);
						}
						break;
					default:
						throw new NoViableAltException(this);
					}
					}
					this.state = 7544;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				}
				break;
			case 2:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 7545;
				this.match(PlSqlParser.DROP);
				this.state = 7559;
				this._errHandler.sync(this);
				switch (this._input.LA(1)) {
				case 213:
					{
					this.state = 7546;
					this.match(PlSqlParser.COLUMN);
					this.state = 7547;
					this.column_name();
					}
					break;
				case 2223:
					{
					this.state = 7548;
					this.match(PlSqlParser.LEFT_PAREN);
					this.state = 7549;
					this.column_name();
					this.state = 7554;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
					while (_la===2229) {
						{
						{
						this.state = 7550;
						this.match(PlSqlParser.COMMA);
						this.state = 7551;
						this.column_name();
						}
						}
						this.state = 7556;
						this._errHandler.sync(this);
						_la = this._input.LA(1);
					}
					this.state = 7557;
					this.match(PlSqlParser.RIGHT_PAREN);
					}
					break;
				default:
					throw new NoViableAltException(this);
				}
				this.state = 7566;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===162 || _la===692) {
					{
					this.state = 7564;
					this._errHandler.sync(this);
					switch (this._input.LA(1)) {
					case 162:
						{
						this.state = 7561;
						this.match(PlSqlParser.CASCADE);
						this.state = 7562;
						this.match(PlSqlParser.CONSTRAINTS);
						}
						break;
					case 692:
						{
						this.state = 7563;
						this.match(PlSqlParser.INVALIDATE);
						}
						break;
					default:
						throw new NoViableAltException(this);
					}
					}
					this.state = 7568;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				this.state = 7571;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===181) {
					{
					this.state = 7569;
					this.match(PlSqlParser.CHECKPOINT);
					this.state = 7570;
					this.match(PlSqlParser.UNSIGNED_INTEGER);
					}
				}

				}
				break;
			case 3:
				this.enterOuterAlt(localctx, 3);
				{
				this.state = 7573;
				this.match(PlSqlParser.DROP);
				this.state = 7578;
				this._errHandler.sync(this);
				switch (this._input.LA(1)) {
				case 2022:
					{
					this.state = 7574;
					this.match(PlSqlParser.UNUSED);
					this.state = 7575;
					this.match(PlSqlParser.COLUMNS);
					}
					break;
				case 214:
					{
					this.state = 7576;
					this.match(PlSqlParser.COLUMNS);
					this.state = 7577;
					this.match(PlSqlParser.CONTINUE);
					}
					break;
				default:
					throw new NoViableAltException(this);
				}
				{
				this.state = 7580;
				this.match(PlSqlParser.CHECKPOINT);
				this.state = 7581;
				this.match(PlSqlParser.UNSIGNED_INTEGER);
				}
				}
				break;
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public modify_column_clauses(): Modify_column_clausesContext {
		let localctx: Modify_column_clausesContext = new Modify_column_clausesContext(this, this._ctx, this.state);
		this.enterRule(localctx, 800, PlSqlParser.RULE_modify_column_clauses);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 7584;
			this.match(PlSqlParser.MODIFY);
			this.state = 7598;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 952, this._ctx) ) {
			case 1:
				{
				this.state = 7585;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 7586;
				this.modify_col_properties();
				this.state = 7591;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===2229) {
					{
					{
					this.state = 7587;
					this.match(PlSqlParser.COMMA);
					this.state = 7588;
					this.modify_col_properties();
					}
					}
					this.state = 7593;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				this.state = 7594;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
				break;
			case 2:
				{
				this.state = 7596;
				this.modify_col_properties();
				}
				break;
			case 3:
				{
				this.state = 7597;
				this.modify_col_substitutable();
				}
				break;
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public modify_col_properties(): Modify_col_propertiesContext {
		let localctx: Modify_col_propertiesContext = new Modify_col_propertiesContext(this, this._ctx, this.state);
		this.enterRule(localctx, 802, PlSqlParser.RULE_modify_col_properties);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 7600;
			this.column_name();
			this.state = 7602;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (((((_la - 108)) & ~0x1F) === 0 && ((1 << (_la - 108)) & 68158609) !== 0) || ((((_la - 175)) & ~0x1F) === 0 && ((1 << (_la - 175)) & 131075) !== 0) || ((((_la - 327)) & ~0x1F) === 0 && ((1 << (_la - 327)) & 98309) !== 0) || _la===407 || _la===413 || _la===534 || _la===598 || ((((_la - 682)) & ~0x1F) === 0 && ((1 << (_la - 682)) & 385) !== 0) || _la===788 || ((((_la - 844)) & ~0x1F) === 0 && ((1 << (_la - 844)) & 16777249) !== 0) || ((((_la - 886)) & ~0x1F) === 0 && ((1 << (_la - 886)) & 83) !== 0) || ((((_la - 1099)) & ~0x1F) === 0 && ((1 << (_la - 1099)) & 35) !== 0) || ((((_la - 1259)) & ~0x1F) === 0 && ((1 << (_la - 1259)) & 49153) !== 0) || _la===1347 || _la===1356 || _la===1446 || _la===1480 || ((((_la - 1528)) & ~0x1F) === 0 && ((1 << (_la - 1528)) & 8195) !== 0) || _la===1598 || ((((_la - 1932)) & ~0x1F) === 0 && ((1 << (_la - 1932)) & 2959) !== 0) || _la===2032 || _la===2075 || _la===2076 || _la===2169 || _la===2171) {
				{
				this.state = 7601;
				this.datatype();
				}
			}

			this.state = 7606;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===351) {
				{
				this.state = 7604;
				this.match(PlSqlParser.DEFAULT);
				this.state = 7605;
				this.expression();
				}
			}

			this.state = 7611;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 443:
				{
				this.state = 7608;
				this.match(PlSqlParser.ENCRYPT);
				this.state = 7609;
				this.encryption_spec();
				}
				break;
			case 349:
				{
				this.state = 7610;
				this.match(PlSqlParser.DECRYPT);
				}
				break;
			case 18:
			case 180:
			case 257:
			case 383:
			case 411:
			case 439:
			case 765:
			case 863:
			case 1073:
			case 1097:
			case 1304:
			case 1374:
			case 1510:
			case 2002:
			case 2224:
			case 2229:
			case 2241:
				break;
			default:
				break;
			}
			this.state = 7616;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			while (_la===180 || _la===257 || _la===1073 || _la===1097 || _la===1304 || _la===1374 || _la===2002) {
				{
				{
				this.state = 7613;
				this.inline_constraint();
				}
				}
				this.state = 7618;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			}
			this.state = 7620;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===765) {
				{
				this.state = 7619;
				this.lob_storage_clause();
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public modify_col_substitutable(): Modify_col_substitutableContext {
		let localctx: Modify_col_substitutableContext = new Modify_col_substitutableContext(this, this._ctx, this.state);
		this.enterRule(localctx, 804, PlSqlParser.RULE_modify_col_substitutable);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 7622;
			this.match(PlSqlParser.COLUMN);
			this.state = 7623;
			this.column_name();
			this.state = 7625;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1073) {
				{
				this.state = 7624;
				this.match(PlSqlParser.NOT);
				}
			}

			this.state = 7627;
			this.match(PlSqlParser.SUBSTITUTABLE);
			this.state = 7628;
			this.match(PlSqlParser.AT);
			this.state = 7629;
			this.match(PlSqlParser.ALL);
			this.state = 7630;
			this.match(PlSqlParser.LEVELS);
			this.state = 7632;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===542) {
				{
				this.state = 7631;
				this.match(PlSqlParser.FORCE);
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public add_column_clause(): Add_column_clauseContext {
		let localctx: Add_column_clauseContext = new Add_column_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 806, PlSqlParser.RULE_add_column_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 7634;
			this.match(PlSqlParser.ADD);
			this.state = 7656;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 2223:
				{
				this.state = 7635;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 7638;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 960, this._ctx) ) {
				case 1:
					{
					this.state = 7636;
					this.column_definition();
					}
					break;
				case 2:
					{
					this.state = 7637;
					this.virtual_column_definition();
					}
					break;
				}
				this.state = 7647;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===2229) {
					{
					{
					this.state = 7640;
					this.match(PlSqlParser.COMMA);
					this.state = 7643;
					this._errHandler.sync(this);
					switch ( this._interp.adaptivePredict(this._input, 961, this._ctx) ) {
					case 1:
						{
						this.state = 7641;
						this.column_definition();
						}
						break;
					case 2:
						{
						this.state = 7642;
						this.virtual_column_definition();
						}
						break;
					}
					}
					}
					this.state = 7649;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				this.state = 7650;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
				break;
			case 1:
			case 2:
			case 3:
			case 4:
			case 5:
			case 6:
			case 7:
			case 8:
			case 9:
			case 10:
			case 11:
			case 12:
			case 13:
			case 14:
			case 15:
			case 16:
			case 17:
			case 18:
			case 19:
			case 20:
			case 21:
			case 22:
			case 23:
			case 24:
			case 25:
			case 26:
			case 27:
			case 28:
			case 29:
			case 30:
			case 31:
			case 32:
			case 33:
			case 34:
			case 36:
			case 37:
			case 38:
			case 40:
			case 41:
			case 42:
			case 44:
			case 45:
			case 46:
			case 47:
			case 49:
			case 50:
			case 51:
			case 52:
			case 53:
			case 54:
			case 55:
			case 56:
			case 57:
			case 58:
			case 59:
			case 60:
			case 63:
			case 64:
			case 65:
			case 66:
			case 67:
			case 68:
			case 69:
			case 70:
			case 71:
			case 72:
			case 73:
			case 74:
			case 75:
			case 76:
			case 78:
			case 79:
			case 80:
			case 81:
			case 82:
			case 83:
			case 85:
			case 86:
			case 87:
			case 88:
			case 89:
			case 90:
			case 91:
			case 92:
			case 93:
			case 95:
			case 96:
			case 97:
			case 98:
			case 99:
			case 100:
			case 101:
			case 102:
			case 103:
			case 104:
			case 105:
			case 106:
			case 108:
			case 109:
			case 110:
			case 111:
			case 112:
			case 113:
			case 114:
			case 115:
			case 116:
			case 117:
			case 118:
			case 119:
			case 120:
			case 121:
			case 122:
			case 123:
			case 124:
			case 125:
			case 126:
			case 127:
			case 128:
			case 129:
			case 130:
			case 131:
			case 132:
			case 133:
			case 134:
			case 135:
			case 136:
			case 137:
			case 138:
			case 139:
			case 140:
			case 141:
			case 142:
			case 143:
			case 144:
			case 145:
			case 147:
			case 148:
			case 149:
			case 150:
			case 151:
			case 152:
			case 153:
			case 154:
			case 155:
			case 156:
			case 157:
			case 158:
			case 160:
			case 161:
			case 162:
			case 163:
			case 164:
			case 165:
			case 166:
			case 167:
			case 168:
			case 169:
			case 170:
			case 171:
			case 172:
			case 174:
			case 175:
			case 176:
			case 177:
			case 178:
			case 179:
			case 181:
			case 182:
			case 183:
			case 184:
			case 185:
			case 186:
			case 187:
			case 188:
			case 189:
			case 190:
			case 191:
			case 192:
			case 193:
			case 194:
			case 195:
			case 196:
			case 197:
			case 198:
			case 199:
			case 200:
			case 201:
			case 202:
			case 203:
			case 204:
			case 205:
			case 206:
			case 207:
			case 208:
			case 209:
			case 210:
			case 211:
			case 212:
			case 213:
			case 214:
			case 215:
			case 216:
			case 217:
			case 218:
			case 219:
			case 220:
			case 221:
			case 222:
			case 223:
			case 224:
			case 225:
			case 226:
			case 227:
			case 228:
			case 229:
			case 230:
			case 231:
			case 233:
			case 234:
			case 235:
			case 236:
			case 237:
			case 238:
			case 239:
			case 240:
			case 241:
			case 242:
			case 243:
			case 244:
			case 245:
			case 246:
			case 247:
			case 248:
			case 249:
			case 250:
			case 252:
			case 253:
			case 254:
			case 255:
			case 256:
			case 257:
			case 258:
			case 259:
			case 260:
			case 261:
			case 262:
			case 263:
			case 264:
			case 265:
			case 266:
			case 267:
			case 268:
			case 269:
			case 270:
			case 271:
			case 272:
			case 273:
			case 274:
			case 275:
			case 276:
			case 277:
			case 278:
			case 279:
			case 280:
			case 281:
			case 282:
			case 283:
			case 284:
			case 285:
			case 286:
			case 287:
			case 289:
			case 290:
			case 291:
			case 292:
			case 293:
			case 294:
			case 295:
			case 296:
			case 297:
			case 298:
			case 299:
			case 300:
			case 301:
			case 302:
			case 303:
			case 304:
			case 305:
			case 306:
			case 307:
			case 308:
			case 309:
			case 310:
			case 311:
			case 312:
			case 313:
			case 314:
			case 315:
			case 316:
			case 317:
			case 318:
			case 319:
			case 321:
			case 322:
			case 323:
			case 324:
			case 325:
			case 326:
			case 328:
			case 329:
			case 330:
			case 331:
			case 332:
			case 333:
			case 334:
			case 335:
			case 336:
			case 337:
			case 338:
			case 339:
			case 340:
			case 341:
			case 342:
			case 343:
			case 344:
			case 345:
			case 346:
			case 347:
			case 348:
			case 349:
			case 350:
			case 352:
			case 353:
			case 354:
			case 355:
			case 356:
			case 357:
			case 358:
			case 359:
			case 360:
			case 361:
			case 362:
			case 363:
			case 364:
			case 365:
			case 366:
			case 367:
			case 368:
			case 369:
			case 370:
			case 372:
			case 373:
			case 374:
			case 375:
			case 376:
			case 377:
			case 378:
			case 379:
			case 380:
			case 381:
			case 382:
			case 383:
			case 384:
			case 385:
			case 386:
			case 387:
			case 388:
			case 389:
			case 390:
			case 391:
			case 392:
			case 394:
			case 395:
			case 397:
			case 398:
			case 399:
			case 400:
			case 401:
			case 402:
			case 403:
			case 404:
			case 405:
			case 406:
			case 407:
			case 408:
			case 409:
			case 410:
			case 412:
			case 413:
			case 414:
			case 415:
			case 417:
			case 418:
			case 419:
			case 420:
			case 421:
			case 422:
			case 423:
			case 424:
			case 425:
			case 426:
			case 427:
			case 428:
			case 429:
			case 430:
			case 431:
			case 434:
			case 435:
			case 436:
			case 437:
			case 438:
			case 439:
			case 440:
			case 441:
			case 442:
			case 443:
			case 444:
			case 446:
			case 447:
			case 448:
			case 449:
			case 450:
			case 451:
			case 452:
			case 453:
			case 454:
			case 455:
			case 456:
			case 457:
			case 458:
			case 459:
			case 460:
			case 461:
			case 462:
			case 463:
			case 464:
			case 465:
			case 466:
			case 467:
			case 468:
			case 469:
			case 470:
			case 471:
			case 472:
			case 473:
			case 475:
			case 476:
			case 477:
			case 478:
			case 479:
			case 480:
			case 481:
			case 482:
			case 483:
			case 484:
			case 485:
			case 486:
			case 487:
			case 488:
			case 489:
			case 490:
			case 491:
			case 492:
			case 493:
			case 494:
			case 495:
			case 496:
			case 497:
			case 498:
			case 499:
			case 500:
			case 501:
			case 502:
			case 503:
			case 504:
			case 505:
			case 506:
			case 507:
			case 508:
			case 509:
			case 510:
			case 511:
			case 512:
			case 513:
			case 514:
			case 515:
			case 516:
			case 517:
			case 518:
			case 519:
			case 520:
			case 521:
			case 522:
			case 523:
			case 524:
			case 525:
			case 526:
			case 527:
			case 528:
			case 529:
			case 530:
			case 531:
			case 532:
			case 533:
			case 534:
			case 535:
			case 536:
			case 537:
			case 538:
			case 539:
			case 540:
			case 541:
			case 542:
			case 543:
			case 544:
			case 545:
			case 547:
			case 548:
			case 549:
			case 550:
			case 551:
			case 552:
			case 553:
			case 555:
			case 556:
			case 557:
			case 558:
			case 559:
			case 560:
			case 561:
			case 562:
			case 563:
			case 564:
			case 565:
			case 566:
			case 567:
			case 568:
			case 569:
			case 572:
			case 574:
			case 575:
			case 576:
			case 577:
			case 578:
			case 579:
			case 580:
			case 581:
			case 582:
			case 583:
			case 584:
			case 586:
			case 587:
			case 588:
			case 589:
			case 590:
			case 591:
			case 592:
			case 593:
			case 594:
			case 595:
			case 596:
			case 597:
			case 598:
			case 599:
			case 600:
			case 602:
			case 603:
			case 604:
			case 605:
			case 606:
			case 607:
			case 608:
			case 609:
			case 610:
			case 611:
			case 612:
			case 613:
			case 614:
			case 615:
			case 616:
			case 617:
			case 618:
			case 619:
			case 620:
			case 621:
			case 622:
			case 623:
			case 624:
			case 625:
			case 626:
			case 627:
			case 628:
			case 629:
			case 630:
			case 632:
			case 633:
			case 634:
			case 635:
			case 636:
			case 637:
			case 638:
			case 639:
			case 640:
			case 641:
			case 642:
			case 643:
			case 644:
			case 645:
			case 646:
			case 647:
			case 648:
			case 649:
			case 650:
			case 651:
			case 653:
			case 654:
			case 655:
			case 656:
			case 657:
			case 658:
			case 659:
			case 660:
			case 661:
			case 662:
			case 663:
			case 664:
			case 665:
			case 666:
			case 667:
			case 668:
			case 670:
			case 671:
			case 672:
			case 673:
			case 674:
			case 675:
			case 676:
			case 677:
			case 678:
			case 679:
			case 680:
			case 681:
			case 682:
			case 683:
			case 684:
			case 685:
			case 686:
			case 687:
			case 689:
			case 690:
			case 692:
			case 693:
			case 694:
			case 696:
			case 697:
			case 698:
			case 699:
			case 700:
			case 701:
			case 702:
			case 703:
			case 704:
			case 705:
			case 706:
			case 707:
			case 708:
			case 709:
			case 710:
			case 711:
			case 712:
			case 713:
			case 714:
			case 715:
			case 716:
			case 717:
			case 718:
			case 719:
			case 720:
			case 721:
			case 722:
			case 723:
			case 724:
			case 725:
			case 726:
			case 727:
			case 728:
			case 729:
			case 730:
			case 731:
			case 732:
			case 733:
			case 734:
			case 735:
			case 736:
			case 737:
			case 738:
			case 739:
			case 740:
			case 741:
			case 742:
			case 743:
			case 744:
			case 745:
			case 746:
			case 747:
			case 748:
			case 749:
			case 750:
			case 751:
			case 752:
			case 753:
			case 754:
			case 755:
			case 756:
			case 758:
			case 759:
			case 760:
			case 761:
			case 762:
			case 763:
			case 764:
			case 765:
			case 766:
			case 767:
			case 768:
			case 769:
			case 770:
			case 771:
			case 772:
			case 773:
			case 774:
			case 775:
			case 777:
			case 778:
			case 779:
			case 780:
			case 781:
			case 782:
			case 783:
			case 784:
			case 785:
			case 786:
			case 787:
			case 788:
			case 789:
			case 790:
			case 791:
			case 792:
			case 793:
			case 794:
			case 795:
			case 796:
			case 797:
			case 798:
			case 799:
			case 800:
			case 801:
			case 802:
			case 803:
			case 804:
			case 805:
			case 806:
			case 807:
			case 808:
			case 809:
			case 810:
			case 811:
			case 812:
			case 813:
			case 814:
			case 815:
			case 816:
			case 817:
			case 818:
			case 819:
			case 820:
			case 821:
			case 822:
			case 823:
			case 824:
			case 825:
			case 826:
			case 827:
			case 828:
			case 829:
			case 830:
			case 831:
			case 832:
			case 833:
			case 834:
			case 835:
			case 836:
			case 837:
			case 838:
			case 839:
			case 840:
			case 841:
			case 843:
			case 844:
			case 845:
			case 846:
			case 847:
			case 848:
			case 849:
			case 850:
			case 851:
			case 852:
			case 853:
			case 854:
			case 855:
			case 856:
			case 857:
			case 858:
			case 859:
			case 861:
			case 862:
			case 863:
			case 864:
			case 865:
			case 866:
			case 867:
			case 868:
			case 869:
			case 870:
			case 871:
			case 872:
			case 873:
			case 874:
			case 875:
			case 876:
			case 877:
			case 878:
			case 879:
			case 880:
			case 881:
			case 882:
			case 883:
			case 884:
			case 885:
			case 886:
			case 888:
			case 889:
			case 890:
			case 891:
			case 892:
			case 893:
			case 894:
			case 895:
			case 896:
			case 897:
			case 898:
			case 899:
			case 900:
			case 901:
			case 902:
			case 903:
			case 904:
			case 905:
			case 906:
			case 907:
			case 908:
			case 909:
			case 910:
			case 911:
			case 912:
			case 913:
			case 914:
			case 915:
			case 916:
			case 917:
			case 918:
			case 919:
			case 920:
			case 921:
			case 922:
			case 923:
			case 924:
			case 925:
			case 926:
			case 927:
			case 928:
			case 929:
			case 930:
			case 931:
			case 932:
			case 933:
			case 934:
			case 935:
			case 936:
			case 937:
			case 938:
			case 939:
			case 940:
			case 941:
			case 942:
			case 943:
			case 944:
			case 945:
			case 946:
			case 947:
			case 948:
			case 949:
			case 950:
			case 951:
			case 952:
			case 954:
			case 955:
			case 956:
			case 957:
			case 958:
			case 959:
			case 960:
			case 961:
			case 962:
			case 963:
			case 964:
			case 965:
			case 966:
			case 967:
			case 968:
			case 969:
			case 970:
			case 971:
			case 972:
			case 973:
			case 974:
			case 975:
			case 976:
			case 977:
			case 978:
			case 979:
			case 980:
			case 981:
			case 982:
			case 983:
			case 984:
			case 985:
			case 986:
			case 987:
			case 988:
			case 989:
			case 990:
			case 991:
			case 992:
			case 993:
			case 994:
			case 995:
			case 996:
			case 997:
			case 998:
			case 999:
			case 1000:
			case 1001:
			case 1002:
			case 1003:
			case 1004:
			case 1005:
			case 1006:
			case 1007:
			case 1008:
			case 1009:
			case 1010:
			case 1011:
			case 1012:
			case 1013:
			case 1014:
			case 1015:
			case 1016:
			case 1017:
			case 1018:
			case 1019:
			case 1020:
			case 1021:
			case 1022:
			case 1023:
			case 1024:
			case 1025:
			case 1026:
			case 1027:
			case 1028:
			case 1029:
			case 1030:
			case 1031:
			case 1032:
			case 1033:
			case 1034:
			case 1035:
			case 1036:
			case 1037:
			case 1038:
			case 1039:
			case 1040:
			case 1041:
			case 1042:
			case 1043:
			case 1044:
			case 1045:
			case 1046:
			case 1047:
			case 1048:
			case 1049:
			case 1050:
			case 1051:
			case 1052:
			case 1053:
			case 1054:
			case 1055:
			case 1056:
			case 1057:
			case 1058:
			case 1059:
			case 1060:
			case 1061:
			case 1062:
			case 1063:
			case 1064:
			case 1065:
			case 1066:
			case 1067:
			case 1068:
			case 1069:
			case 1070:
			case 1071:
			case 1072:
			case 1074:
			case 1075:
			case 1076:
			case 1077:
			case 1078:
			case 1079:
			case 1080:
			case 1081:
			case 1082:
			case 1083:
			case 1084:
			case 1085:
			case 1086:
			case 1087:
			case 1089:
			case 1090:
			case 1091:
			case 1092:
			case 1093:
			case 1094:
			case 1095:
			case 1096:
			case 1098:
			case 1099:
			case 1100:
			case 1101:
			case 1102:
			case 1103:
			case 1104:
			case 1105:
			case 1106:
			case 1107:
			case 1108:
			case 1109:
			case 1110:
			case 1111:
			case 1112:
			case 1113:
			case 1114:
			case 1116:
			case 1117:
			case 1118:
			case 1119:
			case 1120:
			case 1121:
			case 1122:
			case 1123:
			case 1124:
			case 1125:
			case 1127:
			case 1129:
			case 1130:
			case 1131:
			case 1132:
			case 1133:
			case 1134:
			case 1135:
			case 1136:
			case 1137:
			case 1138:
			case 1139:
			case 1140:
			case 1142:
			case 1143:
			case 1144:
			case 1145:
			case 1146:
			case 1147:
			case 1148:
			case 1149:
			case 1150:
			case 1151:
			case 1152:
			case 1153:
			case 1154:
			case 1155:
			case 1156:
			case 1157:
			case 1158:
			case 1159:
			case 1160:
			case 1161:
			case 1162:
			case 1163:
			case 1164:
			case 1165:
			case 1166:
			case 1167:
			case 1169:
			case 1170:
			case 1171:
			case 1173:
			case 1174:
			case 1175:
			case 1176:
			case 1177:
			case 1178:
			case 1179:
			case 1180:
			case 1181:
			case 1182:
			case 1183:
			case 1184:
			case 1185:
			case 1186:
			case 1187:
			case 1188:
			case 1189:
			case 1190:
			case 1191:
			case 1192:
			case 1193:
			case 1194:
			case 1195:
			case 1197:
			case 1198:
			case 1199:
			case 1200:
			case 1201:
			case 1202:
			case 1203:
			case 1204:
			case 1205:
			case 1206:
			case 1207:
			case 1208:
			case 1209:
			case 1210:
			case 1211:
			case 1212:
			case 1213:
			case 1214:
			case 1215:
			case 1216:
			case 1217:
			case 1218:
			case 1219:
			case 1220:
			case 1221:
			case 1222:
			case 1223:
			case 1224:
			case 1225:
			case 1226:
			case 1228:
			case 1229:
			case 1230:
			case 1231:
			case 1232:
			case 1236:
			case 1237:
			case 1241:
			case 1242:
			case 1243:
			case 1244:
			case 1245:
			case 1246:
			case 1247:
			case 1248:
			case 1249:
			case 1250:
			case 1252:
			case 1253:
			case 1254:
			case 1255:
			case 1256:
			case 1257:
			case 1258:
			case 1259:
			case 1260:
			case 1261:
			case 1262:
			case 1263:
			case 1264:
			case 1265:
			case 1266:
			case 1267:
			case 1268:
			case 1269:
			case 1270:
			case 1271:
			case 1272:
			case 1273:
			case 1274:
			case 1275:
			case 1276:
			case 1277:
			case 1278:
			case 1279:
			case 1280:
			case 1281:
			case 1282:
			case 1283:
			case 1284:
			case 1285:
			case 1286:
			case 1287:
			case 1288:
			case 1289:
			case 1290:
			case 1291:
			case 1292:
			case 1293:
			case 1294:
			case 1295:
			case 1296:
			case 1297:
			case 1298:
			case 1299:
			case 1300:
			case 1301:
			case 1302:
			case 1303:
			case 1304:
			case 1305:
			case 1306:
			case 1308:
			case 1309:
			case 1310:
			case 1311:
			case 1312:
			case 1313:
			case 1314:
			case 1315:
			case 1316:
			case 1317:
			case 1318:
			case 1319:
			case 1320:
			case 1321:
			case 1322:
			case 1323:
			case 1325:
			case 1326:
			case 1327:
			case 1328:
			case 1329:
			case 1330:
			case 1331:
			case 1332:
			case 1333:
			case 1334:
			case 1335:
			case 1336:
			case 1337:
			case 1338:
			case 1339:
			case 1340:
			case 1341:
			case 1342:
			case 1343:
			case 1344:
			case 1345:
			case 1346:
			case 1347:
			case 1348:
			case 1349:
			case 1350:
			case 1351:
			case 1352:
			case 1353:
			case 1354:
			case 1355:
			case 1356:
			case 1357:
			case 1358:
			case 1359:
			case 1360:
			case 1361:
			case 1362:
			case 1363:
			case 1364:
			case 1365:
			case 1366:
			case 1367:
			case 1368:
			case 1369:
			case 1370:
			case 1371:
			case 1372:
			case 1373:
			case 1374:
			case 1375:
			case 1376:
			case 1377:
			case 1378:
			case 1379:
			case 1380:
			case 1381:
			case 1382:
			case 1383:
			case 1384:
			case 1385:
			case 1386:
			case 1387:
			case 1388:
			case 1389:
			case 1390:
			case 1391:
			case 1392:
			case 1393:
			case 1394:
			case 1395:
			case 1396:
			case 1397:
			case 1399:
			case 1400:
			case 1401:
			case 1402:
			case 1403:
			case 1404:
			case 1405:
			case 1406:
			case 1407:
			case 1408:
			case 1409:
			case 1410:
			case 1411:
			case 1412:
			case 1413:
			case 1414:
			case 1416:
			case 1417:
			case 1418:
			case 1419:
			case 1420:
			case 1421:
			case 1422:
			case 1423:
			case 1424:
			case 1425:
			case 1426:
			case 1427:
			case 1428:
			case 1429:
			case 1430:
			case 1431:
			case 1432:
			case 1433:
			case 1435:
			case 1436:
			case 1437:
			case 1438:
			case 1439:
			case 1440:
			case 1441:
			case 1442:
			case 1443:
			case 1444:
			case 1445:
			case 1446:
			case 1447:
			case 1448:
			case 1449:
			case 1450:
			case 1451:
			case 1452:
			case 1453:
			case 1454:
			case 1455:
			case 1456:
			case 1457:
			case 1458:
			case 1459:
			case 1460:
			case 1461:
			case 1462:
			case 1463:
			case 1464:
			case 1465:
			case 1466:
			case 1467:
			case 1468:
			case 1469:
			case 1470:
			case 1471:
			case 1472:
			case 1473:
			case 1474:
			case 1475:
			case 1476:
			case 1477:
			case 1478:
			case 1479:
			case 1480:
			case 1481:
			case 1482:
			case 1483:
			case 1484:
			case 1485:
			case 1486:
			case 1487:
			case 1488:
			case 1489:
			case 1491:
			case 1492:
			case 1493:
			case 1494:
			case 1495:
			case 1496:
			case 1497:
			case 1499:
			case 1500:
			case 1501:
			case 1502:
			case 1503:
			case 1504:
			case 1505:
			case 1506:
			case 1507:
			case 1508:
			case 1509:
			case 1510:
			case 1511:
			case 1512:
			case 1513:
			case 1514:
			case 1515:
			case 1516:
			case 1518:
			case 1519:
			case 1520:
			case 1521:
			case 1522:
			case 1523:
			case 1524:
			case 1525:
			case 1526:
			case 1527:
			case 1528:
			case 1529:
			case 1530:
			case 1531:
			case 1532:
			case 1533:
			case 1534:
			case 1536:
			case 1537:
			case 1538:
			case 1539:
			case 1540:
			case 1541:
			case 1542:
			case 1543:
			case 1544:
			case 1545:
			case 1546:
			case 1547:
			case 1548:
			case 1549:
			case 1550:
			case 1551:
			case 1552:
			case 1553:
			case 1554:
			case 1555:
			case 1556:
			case 1557:
			case 1558:
			case 1559:
			case 1560:
			case 1561:
			case 1562:
			case 1563:
			case 1564:
			case 1565:
			case 1566:
			case 1567:
			case 1568:
			case 1570:
			case 1571:
			case 1572:
			case 1573:
			case 1574:
			case 1575:
			case 1576:
			case 1577:
			case 1578:
			case 1579:
			case 1580:
			case 1581:
			case 1582:
			case 1583:
			case 1584:
			case 1585:
			case 1586:
			case 1587:
			case 1588:
			case 1589:
			case 1590:
			case 1591:
			case 1592:
			case 1593:
			case 1594:
			case 1595:
			case 1596:
			case 1597:
			case 1598:
			case 1599:
			case 1600:
			case 1601:
			case 1602:
			case 1603:
			case 1604:
			case 1605:
			case 1606:
			case 1607:
			case 1608:
			case 1609:
			case 1610:
			case 1611:
			case 1612:
			case 1613:
			case 1614:
			case 1615:
			case 1616:
			case 1617:
			case 1618:
			case 1619:
			case 1620:
			case 1621:
			case 1622:
			case 1623:
			case 1624:
			case 1625:
			case 1626:
			case 1628:
			case 1629:
			case 1630:
			case 1631:
			case 1632:
			case 1633:
			case 1634:
			case 1635:
			case 1636:
			case 1637:
			case 1638:
			case 1639:
			case 1640:
			case 1641:
			case 1642:
			case 1643:
			case 1644:
			case 1645:
			case 1646:
			case 1647:
			case 1648:
			case 1649:
			case 1650:
			case 1651:
			case 1652:
			case 1653:
			case 1654:
			case 1655:
			case 1656:
			case 1657:
			case 1658:
			case 1659:
			case 1660:
			case 1661:
			case 1662:
			case 1663:
			case 1664:
			case 1665:
			case 1666:
			case 1667:
			case 1668:
			case 1669:
			case 1670:
			case 1671:
			case 1672:
			case 1673:
			case 1674:
			case 1675:
			case 1676:
			case 1677:
			case 1678:
			case 1679:
			case 1680:
			case 1681:
			case 1682:
			case 1683:
			case 1684:
			case 1685:
			case 1686:
			case 1687:
			case 1688:
			case 1689:
			case 1690:
			case 1691:
			case 1692:
			case 1693:
			case 1694:
			case 1695:
			case 1696:
			case 1697:
			case 1698:
			case 1699:
			case 1700:
			case 1701:
			case 1702:
			case 1703:
			case 1704:
			case 1705:
			case 1706:
			case 1707:
			case 1708:
			case 1709:
			case 1710:
			case 1711:
			case 1712:
			case 1713:
			case 1714:
			case 1715:
			case 1716:
			case 1717:
			case 1718:
			case 1719:
			case 1720:
			case 1721:
			case 1722:
			case 1723:
			case 1724:
			case 1725:
			case 1726:
			case 1727:
			case 1728:
			case 1729:
			case 1730:
			case 1731:
			case 1732:
			case 1733:
			case 1734:
			case 1735:
			case 1736:
			case 1737:
			case 1738:
			case 1739:
			case 1740:
			case 1741:
			case 1742:
			case 1743:
			case 1744:
			case 1745:
			case 1746:
			case 1747:
			case 1748:
			case 1749:
			case 1750:
			case 1751:
			case 1752:
			case 1753:
			case 1754:
			case 1755:
			case 1756:
			case 1757:
			case 1758:
			case 1759:
			case 1760:
			case 1761:
			case 1762:
			case 1763:
			case 1764:
			case 1765:
			case 1766:
			case 1767:
			case 1768:
			case 1769:
			case 1770:
			case 1771:
			case 1772:
			case 1773:
			case 1774:
			case 1775:
			case 1776:
			case 1777:
			case 1778:
			case 1779:
			case 1780:
			case 1781:
			case 1782:
			case 1783:
			case 1784:
			case 1785:
			case 1786:
			case 1787:
			case 1788:
			case 1789:
			case 1790:
			case 1791:
			case 1792:
			case 1793:
			case 1794:
			case 1795:
			case 1796:
			case 1797:
			case 1798:
			case 1799:
			case 1800:
			case 1801:
			case 1802:
			case 1803:
			case 1804:
			case 1805:
			case 1806:
			case 1807:
			case 1808:
			case 1809:
			case 1810:
			case 1811:
			case 1812:
			case 1813:
			case 1814:
			case 1815:
			case 1816:
			case 1817:
			case 1818:
			case 1819:
			case 1820:
			case 1821:
			case 1822:
			case 1823:
			case 1824:
			case 1825:
			case 1826:
			case 1827:
			case 1828:
			case 1829:
			case 1830:
			case 1831:
			case 1832:
			case 1833:
			case 1834:
			case 1835:
			case 1836:
			case 1837:
			case 1838:
			case 1839:
			case 1840:
			case 1841:
			case 1842:
			case 1843:
			case 1844:
			case 1845:
			case 1846:
			case 1847:
			case 1848:
			case 1849:
			case 1850:
			case 1851:
			case 1852:
			case 1853:
			case 1854:
			case 1855:
			case 1856:
			case 1857:
			case 1858:
			case 1859:
			case 1860:
			case 1861:
			case 1862:
			case 1863:
			case 1864:
			case 1865:
			case 1866:
			case 1867:
			case 1868:
			case 1869:
			case 1870:
			case 1871:
			case 1872:
			case 1873:
			case 1874:
			case 1875:
			case 1876:
			case 1877:
			case 1878:
			case 1879:
			case 1880:
			case 1881:
			case 1882:
			case 1883:
			case 1884:
			case 1885:
			case 1886:
			case 1887:
			case 1888:
			case 1889:
			case 1890:
			case 1891:
			case 1892:
			case 1893:
			case 1894:
			case 1895:
			case 1896:
			case 1897:
			case 1898:
			case 1899:
			case 1900:
			case 1901:
			case 1902:
			case 1903:
			case 1904:
			case 1905:
			case 1906:
			case 1907:
			case 1908:
			case 1909:
			case 1910:
			case 1911:
			case 1912:
			case 1913:
			case 1914:
			case 1915:
			case 1916:
			case 1917:
			case 1918:
			case 1919:
			case 1920:
			case 1921:
			case 1922:
			case 1923:
			case 1924:
			case 1925:
			case 1926:
			case 1927:
			case 1928:
			case 1929:
			case 1930:
			case 1931:
			case 1932:
			case 1933:
			case 1934:
			case 1935:
			case 1936:
			case 1937:
			case 1939:
			case 1940:
			case 1941:
			case 1942:
			case 1943:
			case 1944:
			case 1945:
			case 1946:
			case 1947:
			case 1948:
			case 1949:
			case 1950:
			case 1951:
			case 1952:
			case 1953:
			case 1954:
			case 1955:
			case 1956:
			case 1957:
			case 1958:
			case 1959:
			case 1960:
			case 1961:
			case 1962:
			case 1963:
			case 1965:
			case 1966:
			case 1967:
			case 1968:
			case 1969:
			case 1970:
			case 1971:
			case 1972:
			case 1973:
			case 1974:
			case 1975:
			case 1976:
			case 1977:
			case 1978:
			case 1979:
			case 1980:
			case 1981:
			case 1982:
			case 1983:
			case 1984:
			case 1985:
			case 1986:
			case 1987:
			case 1988:
			case 1989:
			case 1990:
			case 1991:
			case 1992:
			case 1993:
			case 1994:
			case 1995:
			case 1996:
			case 1997:
			case 1998:
			case 1999:
			case 2000:
			case 2003:
			case 2004:
			case 2005:
			case 2006:
			case 2007:
			case 2008:
			case 2009:
			case 2010:
			case 2011:
			case 2012:
			case 2013:
			case 2014:
			case 2015:
			case 2016:
			case 2017:
			case 2018:
			case 2019:
			case 2020:
			case 2021:
			case 2022:
			case 2023:
			case 2024:
			case 2026:
			case 2027:
			case 2028:
			case 2029:
			case 2030:
			case 2031:
			case 2032:
			case 2033:
			case 2034:
			case 2035:
			case 2036:
			case 2037:
			case 2038:
			case 2039:
			case 2040:
			case 2041:
			case 2042:
			case 2043:
			case 2044:
			case 2045:
			case 2046:
			case 2047:
			case 2048:
			case 2049:
			case 2050:
			case 2051:
			case 2052:
			case 2053:
			case 2054:
			case 2055:
			case 2056:
			case 2057:
			case 2058:
			case 2059:
			case 2060:
			case 2061:
			case 2062:
			case 2063:
			case 2064:
			case 2065:
			case 2066:
			case 2067:
			case 2068:
			case 2069:
			case 2070:
			case 2071:
			case 2072:
			case 2074:
			case 2075:
			case 2076:
			case 2077:
			case 2078:
			case 2079:
			case 2080:
			case 2081:
			case 2082:
			case 2083:
			case 2084:
			case 2085:
			case 2086:
			case 2087:
			case 2088:
			case 2089:
			case 2090:
			case 2091:
			case 2092:
			case 2093:
			case 2094:
			case 2095:
			case 2096:
			case 2097:
			case 2098:
			case 2100:
			case 2101:
			case 2102:
			case 2103:
			case 2104:
			case 2105:
			case 2106:
			case 2107:
			case 2108:
			case 2109:
			case 2110:
			case 2111:
			case 2112:
			case 2113:
			case 2115:
			case 2116:
			case 2117:
			case 2118:
			case 2119:
			case 2120:
			case 2122:
			case 2123:
			case 2124:
			case 2125:
			case 2126:
			case 2128:
			case 2129:
			case 2130:
			case 2131:
			case 2132:
			case 2133:
			case 2134:
			case 2135:
			case 2136:
			case 2137:
			case 2138:
			case 2139:
			case 2140:
			case 2141:
			case 2142:
			case 2143:
			case 2145:
			case 2146:
			case 2147:
			case 2148:
			case 2149:
			case 2150:
			case 2151:
			case 2152:
			case 2153:
			case 2154:
			case 2155:
			case 2156:
			case 2157:
			case 2158:
			case 2159:
			case 2160:
			case 2161:
			case 2162:
			case 2163:
			case 2164:
			case 2165:
			case 2166:
			case 2168:
			case 2169:
			case 2170:
			case 2171:
			case 2172:
			case 2173:
			case 2174:
			case 2175:
			case 2176:
			case 2177:
			case 2178:
			case 2179:
			case 2180:
			case 2181:
			case 2182:
			case 2183:
			case 2184:
			case 2185:
			case 2186:
			case 2187:
			case 2188:
			case 2189:
			case 2191:
			case 2192:
			case 2193:
			case 2194:
			case 2195:
			case 2196:
			case 2197:
			case 2198:
			case 2199:
			case 2200:
			case 2201:
			case 2202:
			case 2203:
			case 2204:
			case 2205:
			case 2206:
			case 2207:
			case 2208:
			case 2209:
			case 2210:
			case 2211:
			case 2216:
			case 2220:
			case 2246:
			case 2252:
				{
				this.state = 7654;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 963, this._ctx) ) {
				case 1:
					{
					this.state = 7652;
					this.column_definition();
					}
					break;
				case 2:
					{
					this.state = 7653;
					this.virtual_column_definition();
					}
					break;
				}
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
			this.state = 7659;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===213 || _la===765 || _la===895 || _la===2080 || _la===2162) {
				{
				this.state = 7658;
				this.column_properties();
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public alter_varray_col_properties(): Alter_varray_col_propertiesContext {
		let localctx: Alter_varray_col_propertiesContext = new Alter_varray_col_propertiesContext(this, this._ctx, this.state);
		this.enterRule(localctx, 808, PlSqlParser.RULE_alter_varray_col_properties);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 7661;
			this.match(PlSqlParser.MODIFY);
			this.state = 7662;
			this.match(PlSqlParser.VARRAY);
			this.state = 7663;
			this.varray_item();
			this.state = 7664;
			this.match(PlSqlParser.LEFT_PAREN);
			this.state = 7665;
			this.modify_lob_parameters();
			this.state = 7666;
			this.match(PlSqlParser.RIGHT_PAREN);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public varray_col_properties(): Varray_col_propertiesContext {
		let localctx: Varray_col_propertiesContext = new Varray_col_propertiesContext(this, this._ctx, this.state);
		this.enterRule(localctx, 810, PlSqlParser.RULE_varray_col_properties);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 7668;
			this.match(PlSqlParser.VARRAY);
			this.state = 7669;
			this.varray_item();
			this.state = 7675;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 967, this._ctx) ) {
			case 1:
				{
				this.state = 7671;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===427 || _la===695 || _la===1073 || _la===1611) {
					{
					this.state = 7670;
					this.substitutable_column_clause();
					}
				}

				this.state = 7673;
				this.varray_storage_clause();
				}
				break;
			case 2:
				{
				this.state = 7674;
				this.substitutable_column_clause();
				}
				break;
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public varray_storage_clause(): Varray_storage_clauseContext {
		let localctx: Varray_storage_clauseContext = new Varray_storage_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 812, PlSqlParser.RULE_varray_storage_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 7677;
			this.match(PlSqlParser.STORE);
			this.state = 7678;
			this.match(PlSqlParser.AS);
			this.state = 7680;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===96 || _la===1483) {
				{
				this.state = 7679;
				_la = this._input.LA(1);
				if(!(_la===96 || _la===1483)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				}
			}

			this.state = 7682;
			this.match(PlSqlParser.LOB);
			this.state = 7691;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 970, this._ctx) ) {
			case 1:
				{
				this.state = 7684;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & 2684286839) !== 0) || ((((_la - 64)) & ~0x1F) === 0 && ((1 << (_la - 64)) & 3220168703) !== 0) || ((((_la - 96)) & ~0x1F) === 0 && ((1 << (_la - 96)) & 4294965247) !== 0) || ((((_la - 128)) & ~0x1F) === 0 && ((1 << (_la - 128)) & 2147221503) !== 0) || ((((_la - 160)) & ~0x1F) === 0 && ((1 << (_la - 160)) & 4293910527) !== 0) || ((((_la - 192)) & ~0x1F) === 0 && ((1 << (_la - 192)) & 4294967295) !== 0) || ((((_la - 224)) & ~0x1F) === 0 && ((1 << (_la - 224)) & 4160749311) !== 0) || ((((_la - 256)) & ~0x1F) === 0 && ((1 << (_la - 256)) & 4294967295) !== 0) || ((((_la - 289)) & ~0x1F) === 0 && ((1 << (_la - 289)) & 2147483647) !== 0) || ((((_la - 321)) & ~0x1F) === 0 && ((1 << (_la - 321)) & 3221225407) !== 0) || ((((_la - 353)) & ~0x1F) === 0 && ((1 << (_la - 353)) & 4294705151) !== 0) || ((((_la - 385)) & ~0x1F) === 0 && ((1 << (_la - 385)) & 2080372479) !== 0) || ((((_la - 417)) & ~0x1F) === 0 && ((1 << (_la - 417)) & 4026433535) !== 0) || ((((_la - 449)) & ~0x1F) === 0 && ((1 << (_la - 449)) & 4261412863) !== 0) || ((((_la - 481)) & ~0x1F) === 0 && ((1 << (_la - 481)) & 4294967295) !== 0) || ((((_la - 513)) & ~0x1F) === 0 && ((1 << (_la - 513)) & 4294967295) !== 0) || ((((_la - 545)) & ~0x1F) === 0 && ((1 << (_la - 545)) & 3925868029) !== 0) || ((((_la - 577)) & ~0x1F) === 0 && ((1 << (_la - 577)) & 4278189823) !== 0) || ((((_la - 609)) & ~0x1F) === 0 && ((1 << (_la - 609)) & 4290772991) !== 0) || ((((_la - 641)) & ~0x1F) === 0 && ((1 << (_la - 641)) & 4026529791) !== 0) || ((((_la - 673)) & ~0x1F) === 0 && ((1 << (_la - 673)) & 4290478079) !== 0) || ((((_la - 705)) & ~0x1F) === 0 && ((1 << (_la - 705)) & 4294967295) !== 0) || ((((_la - 737)) & ~0x1F) === 0 && ((1 << (_la - 737)) & 4293918719) !== 0) || ((((_la - 769)) & ~0x1F) === 0 && ((1 << (_la - 769)) & 4294967167) !== 0) || ((((_la - 801)) & ~0x1F) === 0 && ((1 << (_la - 801)) & 4294967295) !== 0) || ((((_la - 833)) & ~0x1F) === 0 && ((1 << (_la - 833)) & 4160749055) !== 0) || ((((_la - 865)) & ~0x1F) === 0 && ((1 << (_la - 865)) & 4290772991) !== 0) || ((((_la - 897)) & ~0x1F) === 0 && ((1 << (_la - 897)) & 4294967295) !== 0) || ((((_la - 929)) & ~0x1F) === 0 && ((1 << (_la - 929)) & 4278190079) !== 0) || ((((_la - 961)) & ~0x1F) === 0 && ((1 << (_la - 961)) & 4294967295) !== 0) || ((((_la - 993)) & ~0x1F) === 0 && ((1 << (_la - 993)) & 4294967295) !== 0) || ((((_la - 1025)) & ~0x1F) === 0 && ((1 << (_la - 1025)) & 4294967295) !== 0) || ((((_la - 1057)) & ~0x1F) === 0 && ((1 << (_la - 1057)) & 2147418111) !== 0) || ((((_la - 1089)) & ~0x1F) === 0 && ((1 << (_la - 1089)) & 4227858175) !== 0) || ((((_la - 1121)) & ~0x1F) === 0 && ((1 << (_la - 1121)) & 4293918559) !== 0) || ((((_la - 1153)) & ~0x1F) === 0 && ((1 << (_la - 1153)) & 4294410239) !== 0) || ((((_la - 1185)) & ~0x1F) === 0 && ((1 << (_la - 1185)) & 4294965247) !== 0) || ((((_la - 1217)) & ~0x1F) === 0 && ((1 << (_la - 1217)) & 4279827455) !== 0) || ((((_la - 1249)) & ~0x1F) === 0 && ((1 << (_la - 1249)) & 4294967291) !== 0) || ((((_la - 1281)) & ~0x1F) === 0 && ((1 << (_la - 1281)) & 4227858431) !== 0) || ((((_la - 1313)) & ~0x1F) === 0 && ((1 << (_la - 1313)) & 4294965247) !== 0) || ((((_la - 1345)) & ~0x1F) === 0 && ((1 << (_la - 1345)) & 4294967295) !== 0) || ((((_la - 1377)) & ~0x1F) === 0 && ((1 << (_la - 1377)) & 4292870143) !== 0) || ((((_la - 1409)) & ~0x1F) === 0 && ((1 << (_la - 1409)) & 4261412799) !== 0) || ((((_la - 1441)) & ~0x1F) === 0 && ((1 << (_la - 1441)) & 4294967295) !== 0) || ((((_la - 1473)) & ~0x1F) === 0 && ((1 << (_la - 1473)) & 4261281791) !== 0) || ((((_la - 1505)) & ~0x1F) === 0 && ((1 << (_la - 1505)) & 3221221375) !== 0) || ((((_la - 1537)) & ~0x1F) === 0 && ((1 << (_la - 1537)) & 4294967295) !== 0) || ((((_la - 1570)) & ~0x1F) === 0 && ((1 << (_la - 1570)) & 4294967295) !== 0) || ((((_la - 1602)) & ~0x1F) === 0 && ((1 << (_la - 1602)) & 4261412863) !== 0) || ((((_la - 1634)) & ~0x1F) === 0 && ((1 << (_la - 1634)) & 4294967295) !== 0) || ((((_la - 1666)) & ~0x1F) === 0 && ((1 << (_la - 1666)) & 4294967295) !== 0) || ((((_la - 1698)) & ~0x1F) === 0 && ((1 << (_la - 1698)) & 4294967295) !== 0) || ((((_la - 1730)) & ~0x1F) === 0 && ((1 << (_la - 1730)) & 4294967295) !== 0) || ((((_la - 1762)) & ~0x1F) === 0 && ((1 << (_la - 1762)) & 4294967295) !== 0) || ((((_la - 1794)) & ~0x1F) === 0 && ((1 << (_la - 1794)) & 4294967295) !== 0) || ((((_la - 1826)) & ~0x1F) === 0 && ((1 << (_la - 1826)) & 4294967295) !== 0) || ((((_la - 1858)) & ~0x1F) === 0 && ((1 << (_la - 1858)) & 4294967295) !== 0) || ((((_la - 1890)) & ~0x1F) === 0 && ((1 << (_la - 1890)) & 4294967295) !== 0) || ((((_la - 1922)) & ~0x1F) === 0 && ((1 << (_la - 1922)) & 4294901759) !== 0) || ((((_la - 1954)) & ~0x1F) === 0 && ((1 << (_la - 1954)) & 4294966271) !== 0) || ((((_la - 1986)) & ~0x1F) === 0 && ((1 << (_la - 1986)) & 4294868991) !== 0) || ((((_la - 2018)) & ~0x1F) === 0 && ((1 << (_la - 2018)) & 4294967167) !== 0) || ((((_la - 2050)) & ~0x1F) === 0 && ((1 << (_la - 2050)) & 4286578687) !== 0) || ((((_la - 2082)) & ~0x1F) === 0 && ((1 << (_la - 2082)) & 4294836223) !== 0) || ((((_la - 2115)) & ~0x1F) === 0 && ((1 << (_la - 2115)) & 3758092223) !== 0) || ((((_la - 2147)) & ~0x1F) === 0 && ((1 << (_la - 2147)) & 4293918719) !== 0) || ((((_la - 2179)) & ~0x1F) === 0 && ((1 << (_la - 2179)) & 4294965247) !== 0) || _la===2211 || _la===2216 || _la===2252) {
					{
					this.state = 7683;
					this.lob_segname();
					}
				}

				this.state = 7686;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 7687;
				this.lob_storage_parameters();
				this.state = 7688;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
				break;
			case 2:
				{
				this.state = 7690;
				this.lob_segname();
				}
				break;
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public lob_segname(): Lob_segnameContext {
		let localctx: Lob_segnameContext = new Lob_segnameContext(this, this._ctx, this.state);
		this.enterRule(localctx, 814, PlSqlParser.RULE_lob_segname);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 7693;
			this.regular_id();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public lob_item(): Lob_itemContext {
		let localctx: Lob_itemContext = new Lob_itemContext(this, this._ctx, this.state);
		this.enterRule(localctx, 816, PlSqlParser.RULE_lob_item);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 7695;
			this.regular_id();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public lob_storage_parameters(): Lob_storage_parametersContext {
		let localctx: Lob_storage_parametersContext = new Lob_storage_parametersContext(this, this._ctx, this.state);
		this.enterRule(localctx, 818, PlSqlParser.RULE_lob_storage_parameters);
		let _la: number;
		try {
			this.state = 7704;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 1909:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 7697;
				this.match(PlSqlParser.TABLESPACE);
				this.state = 7698;
				this.tablespace();
				}
				break;
			case 150:
			case 185:
			case 232:
			case 349:
			case 350:
			case 383:
			case 439:
			case 443:
			case 552:
			case 719:
			case 946:
			case 953:
			case 1231:
			case 1428:
				this.enterOuterAlt(localctx, 2);
				{
				{
				this.state = 7699;
				this.lob_parameters();
				this.state = 7701;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===1593) {
					{
					this.state = 7700;
					this.storage_clause();
					}
				}

				}
				}
				break;
			case 1593:
				this.enterOuterAlt(localctx, 3);
				{
				this.state = 7703;
				this.storage_clause();
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public lob_storage_clause(): Lob_storage_clauseContext {
		let localctx: Lob_storage_clauseContext = new Lob_storage_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 820, PlSqlParser.RULE_lob_storage_clause);
		let _la: number;
		try {
			let _alt: number;
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 7706;
			this.match(PlSqlParser.LOB);
			this.state = 7743;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 978, this._ctx) ) {
			case 1:
				{
				this.state = 7707;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 7708;
				this.lob_item();
				this.state = 7713;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===2229) {
					{
					{
					this.state = 7709;
					this.match(PlSqlParser.COMMA);
					this.state = 7710;
					this.lob_item();
					}
					}
					this.state = 7715;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				this.state = 7716;
				this.match(PlSqlParser.RIGHT_PAREN);
				this.state = 7717;
				this.match(PlSqlParser.STORE);
				this.state = 7718;
				this.match(PlSqlParser.AS);
				this.state = 7724;
				this._errHandler.sync(this);
				_alt = 1;
				do {
					switch (_alt) {
					case 1:
						{
						this.state = 7724;
						this._errHandler.sync(this);
						switch (this._input.LA(1)) {
						case 96:
						case 1483:
							{
							this.state = 7719;
							_la = this._input.LA(1);
							if(!(_la===96 || _la===1483)) {
							this._errHandler.recoverInline(this);
							}
							else {
								this._errHandler.reportMatch(this);
							    this.consume();
							}
							}
							break;
						case 2223:
							{
							this.state = 7720;
							this.match(PlSqlParser.LEFT_PAREN);
							this.state = 7721;
							this.lob_storage_parameters();
							this.state = 7722;
							this.match(PlSqlParser.RIGHT_PAREN);
							}
							break;
						default:
							throw new NoViableAltException(this);
						}
						}
						break;
					default:
						throw new NoViableAltException(this);
					}
					this.state = 7726;
					this._errHandler.sync(this);
					_alt = this._interp.adaptivePredict(this._input, 975, this._ctx);
				} while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER);
				}
				break;
			case 2:
				{
				this.state = 7728;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 7729;
				this.lob_item();
				this.state = 7730;
				this.match(PlSqlParser.RIGHT_PAREN);
				this.state = 7731;
				this.match(PlSqlParser.STORE);
				this.state = 7732;
				this.match(PlSqlParser.AS);
				this.state = 7739;
				this._errHandler.sync(this);
				_alt = 1;
				do {
					switch (_alt) {
					case 1:
						{
						this.state = 7739;
						this._errHandler.sync(this);
						switch ( this._interp.adaptivePredict(this._input, 976, this._ctx) ) {
						case 1:
							{
							this.state = 7733;
							_la = this._input.LA(1);
							if(!(_la===96 || _la===1483)) {
							this._errHandler.recoverInline(this);
							}
							else {
								this._errHandler.reportMatch(this);
							    this.consume();
							}
							}
							break;
						case 2:
							{
							this.state = 7734;
							this.lob_segname();
							}
							break;
						case 3:
							{
							this.state = 7735;
							this.match(PlSqlParser.LEFT_PAREN);
							this.state = 7736;
							this.lob_storage_parameters();
							this.state = 7737;
							this.match(PlSqlParser.RIGHT_PAREN);
							}
							break;
						}
						}
						break;
					default:
						throw new NoViableAltException(this);
					}
					this.state = 7741;
					this._errHandler.sync(this);
					_alt = this._interp.adaptivePredict(this._input, 977, this._ctx);
				} while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER);
				}
				break;
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public modify_lob_storage_clause(): Modify_lob_storage_clauseContext {
		let localctx: Modify_lob_storage_clauseContext = new Modify_lob_storage_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 822, PlSqlParser.RULE_modify_lob_storage_clause);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 7745;
			this.match(PlSqlParser.MODIFY);
			this.state = 7746;
			this.match(PlSqlParser.LOB);
			this.state = 7747;
			this.match(PlSqlParser.LEFT_PAREN);
			this.state = 7748;
			this.lob_item();
			this.state = 7749;
			this.match(PlSqlParser.RIGHT_PAREN);
			this.state = 7750;
			this.match(PlSqlParser.LEFT_PAREN);
			this.state = 7751;
			this.modify_lob_parameters();
			this.state = 7752;
			this.match(PlSqlParser.RIGHT_PAREN);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public modify_lob_parameters(): Modify_lob_parametersContext {
		let localctx: Modify_lob_parametersContext = new Modify_lob_parametersContext(this, this._ctx, this.state);
		this.enterRule(localctx, 824, PlSqlParser.RULE_modify_lob_parameters);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 7778;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			do {
				{
				this.state = 7778;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 981, this._ctx) ) {
				case 1:
					{
					this.state = 7754;
					this.storage_clause();
					}
					break;
				case 2:
					{
					this.state = 7755;
					_la = this._input.LA(1);
					if(!(_la===552 || _la===1231)) {
					this._errHandler.recoverInline(this);
					}
					else {
						this._errHandler.reportMatch(this);
					    this.consume();
					}
					this.state = 7756;
					this.match(PlSqlParser.UNSIGNED_INTEGER);
					}
					break;
				case 3:
					{
					this.state = 7757;
					this.match(PlSqlParser.REBUILD);
					this.state = 7758;
					this.match(PlSqlParser.FREEPOOLS);
					}
					break;
				case 4:
					{
					this.state = 7759;
					this.lob_retention_clause();
					}
					break;
				case 5:
					{
					this.state = 7760;
					this.lob_deduplicate_clause();
					}
					break;
				case 6:
					{
					this.state = 7761;
					this.lob_compression_clause();
					}
					break;
				case 7:
					{
					this.state = 7762;
					this.match(PlSqlParser.ENCRYPT);
					this.state = 7763;
					this.encryption_spec();
					}
					break;
				case 8:
					{
					this.state = 7764;
					this.match(PlSqlParser.DECRYPT);
					}
					break;
				case 9:
					{
					this.state = 7765;
					this.match(PlSqlParser.CACHE);
					}
					break;
				case 10:
					{
					this.state = 7770;
					this._errHandler.sync(this);
					switch ( this._interp.adaptivePredict(this._input, 979, this._ctx) ) {
					case 1:
						{
						this.state = 7766;
						this.match(PlSqlParser.CACHE);
						}
						break;
					case 2:
						{
						this.state = 7767;
						this.match(PlSqlParser.NOCACHE);
						}
						break;
					case 3:
						{
						this.state = 7768;
						this.match(PlSqlParser.CACHE);
						this.state = 7769;
						this.match(PlSqlParser.READS);
						}
						break;
					}
					this.state = 7773;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
					if (_la===521 || _la===779 || _la===993) {
						{
						this.state = 7772;
						this.logging_clause();
						}
					}

					}
					break;
				case 11:
					{
					this.state = 7775;
					this.allocate_extent_clause();
					}
					break;
				case 12:
					{
					this.state = 7776;
					this.shrink_clause();
					}
					break;
				case 13:
					{
					this.state = 7777;
					this.deallocate_unused_clause();
					}
					break;
				}
				}
				this.state = 7780;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			} while (_la===36 || _la===150 || _la===232 || ((((_la - 339)) & ~0x1F) === 0 && ((1 << (_la - 339)) & 3073) !== 0) || _la===443 || _la===552 || _la===719 || _la===946 || _la===953 || _la===1231 || _la===1358 || _la===1428 || _la===1521 || _la===1593);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public lob_parameters(): Lob_parametersContext {
		let localctx: Lob_parametersContext = new Lob_parametersContext(this, this._ctx, this.state);
		this.enterRule(localctx, 826, PlSqlParser.RULE_lob_parameters);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 7807;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			do {
				{
				this.state = 7807;
				this._errHandler.sync(this);
				switch (this._input.LA(1)) {
				case 383:
				case 439:
					{
					this.state = 7782;
					_la = this._input.LA(1);
					if(!(_la===383 || _la===439)) {
					this._errHandler.recoverInline(this);
					}
					else {
						this._errHandler.reportMatch(this);
					    this.consume();
					}
					this.state = 7783;
					this.match(PlSqlParser.STORAGE);
					this.state = 7784;
					this.match(PlSqlParser.IN);
					this.state = 7785;
					this.match(PlSqlParser.ROW);
					}
					break;
				case 185:
					{
					this.state = 7786;
					this.match(PlSqlParser.CHUNK);
					this.state = 7787;
					this.match(PlSqlParser.UNSIGNED_INTEGER);
					}
					break;
				case 1231:
					{
					this.state = 7788;
					this.match(PlSqlParser.PCTVERSION);
					this.state = 7789;
					this.match(PlSqlParser.UNSIGNED_INTEGER);
					}
					break;
				case 552:
					{
					this.state = 7790;
					this.match(PlSqlParser.FREEPOOLS);
					this.state = 7791;
					this.match(PlSqlParser.UNSIGNED_INTEGER);
					}
					break;
				case 1428:
					{
					this.state = 7792;
					this.lob_retention_clause();
					}
					break;
				case 350:
				case 719:
					{
					this.state = 7793;
					this.lob_deduplicate_clause();
					}
					break;
				case 232:
				case 953:
					{
					this.state = 7794;
					this.lob_compression_clause();
					}
					break;
				case 443:
					{
					this.state = 7795;
					this.match(PlSqlParser.ENCRYPT);
					this.state = 7796;
					this.encryption_spec();
					}
					break;
				case 349:
					{
					this.state = 7797;
					this.match(PlSqlParser.DECRYPT);
					}
					break;
				case 150:
				case 946:
					{
					this.state = 7802;
					this._errHandler.sync(this);
					switch ( this._interp.adaptivePredict(this._input, 983, this._ctx) ) {
					case 1:
						{
						this.state = 7798;
						this.match(PlSqlParser.CACHE);
						}
						break;
					case 2:
						{
						this.state = 7799;
						this.match(PlSqlParser.NOCACHE);
						}
						break;
					case 3:
						{
						this.state = 7800;
						this.match(PlSqlParser.CACHE);
						this.state = 7801;
						this.match(PlSqlParser.READS);
						}
						break;
					}
					this.state = 7805;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
					if (_la===521 || _la===779 || _la===993) {
						{
						this.state = 7804;
						this.logging_clause();
						}
					}

					}
					break;
				default:
					throw new NoViableAltException(this);
				}
				}
				this.state = 7809;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			} while (_la===150 || _la===185 || _la===232 || _la===349 || _la===350 || _la===383 || _la===439 || _la===443 || _la===552 || _la===719 || _la===946 || _la===953 || _la===1231 || _la===1428);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public lob_deduplicate_clause(): Lob_deduplicate_clauseContext {
		let localctx: Lob_deduplicate_clauseContext = new Lob_deduplicate_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 828, PlSqlParser.RULE_lob_deduplicate_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 7811;
			_la = this._input.LA(1);
			if(!(_la===350 || _la===719)) {
			this._errHandler.recoverInline(this);
			}
			else {
				this._errHandler.reportMatch(this);
			    this.consume();
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public lob_compression_clause(): Lob_compression_clauseContext {
		let localctx: Lob_compression_clauseContext = new Lob_compression_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 830, PlSqlParser.RULE_lob_compression_clause);
		let _la: number;
		try {
			this.state = 7818;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 953:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 7813;
				this.match(PlSqlParser.NOCOMPRESS);
				}
				break;
			case 232:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 7814;
				this.match(PlSqlParser.COMPRESS);
				this.state = 7816;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===594 || _la===791 || _la===825) {
					{
					this.state = 7815;
					_la = this._input.LA(1);
					if(!(_la===594 || _la===791 || _la===825)) {
					this._errHandler.recoverInline(this);
					}
					else {
						this._errHandler.reportMatch(this);
					    this.consume();
					}
					}
				}

				}
				break;
			default:
				throw new NoViableAltException(this);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public lob_retention_clause(): Lob_retention_clauseContext {
		let localctx: Lob_retention_clauseContext = new Lob_retention_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 832, PlSqlParser.RULE_lob_retention_clause);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 7820;
			this.match(PlSqlParser.RETENTION);
			this.state = 7826;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 2193:
				{
				this.state = 7821;
				this.match(PlSqlParser.MAX);
				}
				break;
			case 2195:
				{
				this.state = 7822;
				this.match(PlSqlParser.MIN);
				this.state = 7823;
				this.match(PlSqlParser.UNSIGNED_INTEGER);
				}
				break;
			case 83:
				{
				this.state = 7824;
				this.match(PlSqlParser.AUTO);
				}
				break;
			case 1007:
				{
				this.state = 7825;
				this.match(PlSqlParser.NONE);
				}
				break;
			case 36:
			case 150:
			case 185:
			case 232:
			case 339:
			case 349:
			case 350:
			case 383:
			case 439:
			case 443:
			case 552:
			case 719:
			case 946:
			case 953:
			case 1231:
			case 1358:
			case 1428:
			case 1521:
			case 1593:
			case 2224:
				break;
			default:
				break;
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public encryption_spec(): Encryption_specContext {
		let localctx: Encryption_specContext = new Encryption_specContext(this, this._ctx, this.state);
		this.enterRule(localctx, 834, PlSqlParser.RULE_encryption_spec);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 7830;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===2063) {
				{
				this.state = 7828;
				this.match(PlSqlParser.USING);
				this.state = 7829;
				this.match(PlSqlParser.CHAR_STRING);
				}
			}

			this.state = 7835;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===601) {
				{
				this.state = 7832;
				this.match(PlSqlParser.IDENTIFIED);
				this.state = 7833;
				this.match(PlSqlParser.BY);
				this.state = 7834;
				this.match(PlSqlParser.REGULAR_ID);
				}
			}

			this.state = 7838;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===2219) {
				{
				this.state = 7837;
				this.match(PlSqlParser.CHAR_STRING);
				}
			}

			this.state = 7844;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1010 || _la===1458) {
				{
				this.state = 7841;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===1010) {
					{
					this.state = 7840;
					this.match(PlSqlParser.NO);
					}
				}

				this.state = 7843;
				this.match(PlSqlParser.SALT);
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public tablespace(): TablespaceContext {
		let localctx: TablespaceContext = new TablespaceContext(this, this._ctx, this.state);
		this.enterRule(localctx, 836, PlSqlParser.RULE_tablespace);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 7846;
			this.regular_id();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public varray_item(): Varray_itemContext {
		let localctx: Varray_itemContext = new Varray_itemContext(this, this._ctx, this.state);
		this.enterRule(localctx, 838, PlSqlParser.RULE_varray_item);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 7851;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 995, this._ctx) ) {
			case 1:
				{
				this.state = 7848;
				this.id_expression();
				this.state = 7849;
				this.match(PlSqlParser.PERIOD);
				}
				break;
			}
			this.state = 7856;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 996, this._ctx) ) {
			case 1:
				{
				this.state = 7853;
				this.id_expression();
				this.state = 7854;
				this.match(PlSqlParser.PERIOD);
				}
				break;
			}
			this.state = 7858;
			this.id_expression();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public column_properties(): Column_propertiesContext {
		let localctx: Column_propertiesContext = new Column_propertiesContext(this, this._ctx, this.state);
		this.enterRule(localctx, 840, PlSqlParser.RULE_column_properties);
		try {
			this.state = 7867;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 213:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 7860;
				this.object_type_col_properties();
				}
				break;
			case 895:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 7861;
				this.nested_table_col_properties();
				}
				break;
			case 765:
			case 2080:
				this.enterOuterAlt(localctx, 3);
				{
				this.state = 7864;
				this._errHandler.sync(this);
				switch (this._input.LA(1)) {
				case 2080:
					{
					this.state = 7862;
					this.varray_col_properties();
					}
					break;
				case 765:
					{
					this.state = 7863;
					this.lob_storage_clause();
					}
					break;
				default:
					throw new NoViableAltException(this);
				}
				}
				break;
			case 2162:
				this.enterOuterAlt(localctx, 4);
				{
				this.state = 7866;
				this.xmltype_column_properties();
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public period_definition(): Period_definitionContext {
		let localctx: Period_definitionContext = new Period_definitionContext(this, this._ctx, this.state);
		this.enterRule(localctx, 842, PlSqlParser.RULE_period_definition);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 7869;
			if (!(this.isVersion12())) {
				throw this.createFailedPredicateException("this.isVersion12()");
			}
			this.state = 7870;
			this.match(PlSqlParser.PERIOD);
			this.state = 7871;
			this.match(PlSqlParser.FOR);
			this.state = 7872;
			this.column_name();
			this.state = 7879;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===2223) {
				{
				this.state = 7873;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 7874;
				this.start_time_column();
				this.state = 7875;
				this.match(PlSqlParser.COMMA);
				this.state = 7876;
				this.end_time_column();
				this.state = 7877;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public start_time_column(): Start_time_columnContext {
		let localctx: Start_time_columnContext = new Start_time_columnContext(this, this._ctx, this.state);
		this.enterRule(localctx, 844, PlSqlParser.RULE_start_time_column);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 7881;
			this.column_name();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public end_time_column(): End_time_columnContext {
		let localctx: End_time_columnContext = new End_time_columnContext(this, this._ctx, this.state);
		this.enterRule(localctx, 846, PlSqlParser.RULE_end_time_column);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 7883;
			this.column_name();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public column_definition(): Column_definitionContext {
		let localctx: Column_definitionContext = new Column_definitionContext(this, this._ctx, this.state);
		this.enterRule(localctx, 848, PlSqlParser.RULE_column_definition);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 7885;
			this.column_name();
			this.state = 7888;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1000, this._ctx) ) {
			case 1:
				{
				this.state = 7886;
				this.datatype();
				}
				break;
			case 2:
				{
				this.state = 7887;
				this.type_name();
				}
				break;
			}
			this.state = 7891;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1544) {
				{
				this.state = 7890;
				this.match(PlSqlParser.SORT);
				}
			}

			this.state = 7895;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===351) {
				{
				this.state = 7893;
				this.match(PlSqlParser.DEFAULT);
				this.state = 7894;
				this.expression();
				}
			}

			this.state = 7916;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===443) {
				{
				this.state = 7897;
				this.match(PlSqlParser.ENCRYPT);
				this.state = 7900;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===2063) {
					{
					this.state = 7898;
					this.match(PlSqlParser.USING);
					this.state = 7899;
					this.match(PlSqlParser.CHAR_STRING);
					}
				}

				this.state = 7905;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===601) {
					{
					this.state = 7902;
					this.match(PlSqlParser.IDENTIFIED);
					this.state = 7903;
					this.match(PlSqlParser.BY);
					this.state = 7904;
					this.regular_id();
					}
				}

				this.state = 7908;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===2219) {
					{
					this.state = 7907;
					this.match(PlSqlParser.CHAR_STRING);
					}
				}

				this.state = 7914;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===1010 || _la===1458) {
					{
					this.state = 7911;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
					if (_la===1010) {
						{
						this.state = 7910;
						this.match(PlSqlParser.NO);
						}
					}

					this.state = 7913;
					this.match(PlSqlParser.SALT);
					}
				}

				}
			}

			this.state = 7925;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1010, this._ctx) ) {
			case 1:
				{
				this.state = 7921;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===180 || _la===257 || _la===1073 || _la===1097 || _la===1304 || _la===1374 || _la===2002) {
					{
					{
					this.state = 7918;
					this.inline_constraint();
					}
					}
					this.state = 7923;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				}
				break;
			case 2:
				{
				this.state = 7924;
				this.inline_ref_constraint();
				}
				break;
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public virtual_column_definition(): Virtual_column_definitionContext {
		let localctx: Virtual_column_definitionContext = new Virtual_column_definitionContext(this, this._ctx, this.state);
		this.enterRule(localctx, 850, PlSqlParser.RULE_virtual_column_definition);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 7927;
			this.column_name();
			this.state = 7929;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (((((_la - 108)) & ~0x1F) === 0 && ((1 << (_la - 108)) & 68158609) !== 0) || ((((_la - 175)) & ~0x1F) === 0 && ((1 << (_la - 175)) & 131075) !== 0) || ((((_la - 327)) & ~0x1F) === 0 && ((1 << (_la - 327)) & 98309) !== 0) || _la===407 || _la===413 || _la===534 || _la===598 || ((((_la - 682)) & ~0x1F) === 0 && ((1 << (_la - 682)) & 385) !== 0) || _la===788 || ((((_la - 844)) & ~0x1F) === 0 && ((1 << (_la - 844)) & 16777249) !== 0) || ((((_la - 886)) & ~0x1F) === 0 && ((1 << (_la - 886)) & 83) !== 0) || ((((_la - 1099)) & ~0x1F) === 0 && ((1 << (_la - 1099)) & 35) !== 0) || ((((_la - 1259)) & ~0x1F) === 0 && ((1 << (_la - 1259)) & 49153) !== 0) || _la===1347 || _la===1356 || _la===1446 || _la===1480 || ((((_la - 1528)) & ~0x1F) === 0 && ((1 << (_la - 1528)) & 8195) !== 0) || _la===1598 || ((((_la - 1932)) & ~0x1F) === 0 && ((1 << (_la - 1932)) & 2959) !== 0) || _la===2032 || _la===2075 || _la===2076 || _la===2169 || _la===2171) {
				{
				this.state = 7928;
				this.datatype();
				}
			}

			this.state = 7932;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===564) {
				{
				this.state = 7931;
				this.autogenerated_sequence_definition();
				}
			}

			this.state = 7935;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===2101) {
				{
				this.state = 7934;
				this.match(PlSqlParser.VIRTUAL);
				}
			}

			this.state = 7940;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			while (_la===180 || _la===257 || _la===1073 || _la===1097 || _la===1304 || _la===1374 || _la===2002) {
				{
				{
				this.state = 7937;
				this.inline_constraint();
				}
				}
				this.state = 7942;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public autogenerated_sequence_definition(): Autogenerated_sequence_definitionContext {
		let localctx: Autogenerated_sequence_definitionContext = new Autogenerated_sequence_definitionContext(this, this._ctx, this.state);
		this.enterRule(localctx, 852, PlSqlParser.RULE_autogenerated_sequence_definition);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 7943;
			this.match(PlSqlParser.GENERATED);
			this.state = 7951;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 40:
				{
				this.state = 7944;
				this.match(PlSqlParser.ALWAYS);
				}
				break;
			case 146:
				{
				this.state = 7945;
				this.match(PlSqlParser.BY);
				this.state = 7946;
				this.match(PlSqlParser.DEFAULT);
				this.state = 7949;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===1128) {
					{
					this.state = 7947;
					this.match(PlSqlParser.ON);
					this.state = 7948;
					this.match(PlSqlParser.NULL_);
					}
				}

				}
				break;
			case 61:
				break;
			default:
				break;
			}
			this.state = 7953;
			this.match(PlSqlParser.AS);
			this.state = 7954;
			this.match(PlSqlParser.IDENTITY);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public out_of_line_part_storage(): Out_of_line_part_storageContext {
		let localctx: Out_of_line_part_storageContext = new Out_of_line_part_storageContext(this, this._ctx, this.state);
		this.enterRule(localctx, 854, PlSqlParser.RULE_out_of_line_part_storage);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 7956;
			this.match(PlSqlParser.PARTITION);
			this.state = 7957;
			this.partition_name();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public nested_table_col_properties(): Nested_table_col_propertiesContext {
		let localctx: Nested_table_col_propertiesContext = new Nested_table_col_propertiesContext(this, this._ctx, this.state);
		this.enterRule(localctx, 856, PlSqlParser.RULE_nested_table_col_properties);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 7959;
			this.match(PlSqlParser.NESTED);
			this.state = 7960;
			this.match(PlSqlParser.TABLE);
			this.state = 7963;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1017, this._ctx) ) {
			case 1:
				{
				this.state = 7961;
				this.nested_item();
				}
				break;
			case 2:
				{
				this.state = 7962;
				this.match(PlSqlParser.COLUMN_VALUE);
				}
				break;
			}
			this.state = 7966;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===427 || _la===695 || _la===1073 || _la===1611) {
				{
				this.state = 7965;
				this.substitutable_column_clause();
				}
			}

			this.state = 7969;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===566 || _la===769) {
				{
				this.state = 7968;
				_la = this._input.LA(1);
				if(!(_la===566 || _la===769)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				}
			}

			this.state = 7971;
			this.match(PlSqlParser.STORE);
			this.state = 7972;
			this.match(PlSqlParser.AS);
			this.state = 7973;
			this.tableview_name();
			this.state = 7987;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1022, this._ctx) ) {
			case 1:
				{
				this.state = 7974;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 7981;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				do {
					{
					this.state = 7981;
					this._errHandler.sync(this);
					switch (this._input.LA(1)) {
					case 2223:
						{
						this.state = 7975;
						this.match(PlSqlParser.LEFT_PAREN);
						this.state = 7976;
						this.object_properties();
						this.state = 7977;
						this.match(PlSqlParser.RIGHT_PAREN);
						}
						break;
					case 521:
					case 657:
					case 779:
					case 993:
					case 1227:
					case 1230:
					case 1488:
					case 1593:
					case 1909:
						{
						this.state = 7979;
						this.physical_properties();
						}
						break;
					case 213:
					case 765:
					case 895:
					case 2080:
					case 2162:
						{
						this.state = 7980;
						this.column_properties();
						}
						break;
					default:
						throw new NoViableAltException(this);
					}
					}
					this.state = 7983;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				} while (_la===213 || _la===521 || _la===657 || _la===765 || _la===779 || _la===895 || _la===993 || _la===1227 || _la===1230 || _la===1488 || _la===1593 || _la===1909 || _la===2080 || _la===2162 || _la===2223);
				this.state = 7985;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
				break;
			}
			this.state = 7994;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1431) {
				{
				this.state = 7989;
				this.match(PlSqlParser.RETURN);
				this.state = 7991;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===61) {
					{
					this.state = 7990;
					this.match(PlSqlParser.AS);
					}
				}

				this.state = 7993;
				_la = this._input.LA(1);
				if(!(_la===773 || _la===2074)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public nested_item(): Nested_itemContext {
		let localctx: Nested_itemContext = new Nested_itemContext(this, this._ctx, this.state);
		this.enterRule(localctx, 858, PlSqlParser.RULE_nested_item);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 7996;
			this.regular_id();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public substitutable_column_clause(): Substitutable_column_clauseContext {
		let localctx: Substitutable_column_clauseContext = new Substitutable_column_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 860, PlSqlParser.RULE_substitutable_column_clause);
		let _la: number;
		try {
			this.state = 8017;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 427:
			case 695:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 7999;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===427) {
					{
					this.state = 7998;
					this.match(PlSqlParser.ELEMENT);
					}
				}

				this.state = 8001;
				this.match(PlSqlParser.IS);
				this.state = 8002;
				this.match(PlSqlParser.OF);
				this.state = 8004;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===1987) {
					{
					this.state = 8003;
					this.match(PlSqlParser.TYPE);
					}
				}

				this.state = 8006;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 8007;
				this.type_name();
				this.state = 8008;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
				break;
			case 1073:
			case 1611:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 8011;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===1073) {
					{
					this.state = 8010;
					this.match(PlSqlParser.NOT);
					}
				}

				this.state = 8013;
				this.match(PlSqlParser.SUBSTITUTABLE);
				this.state = 8014;
				this.match(PlSqlParser.AT);
				this.state = 8015;
				this.match(PlSqlParser.ALL);
				this.state = 8016;
				this.match(PlSqlParser.LEVELS);
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public partition_name(): Partition_nameContext {
		let localctx: Partition_nameContext = new Partition_nameContext(this, this._ctx, this.state);
		this.enterRule(localctx, 862, PlSqlParser.RULE_partition_name);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 8019;
			this.regular_id();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public supplemental_logging_props(): Supplemental_logging_propsContext {
		let localctx: Supplemental_logging_propsContext = new Supplemental_logging_propsContext(this, this._ctx, this.state);
		this.enterRule(localctx, 864, PlSqlParser.RULE_supplemental_logging_props);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 8021;
			this.match(PlSqlParser.SUPPLEMENTAL);
			this.state = 8022;
			this.match(PlSqlParser.LOG);
			this.state = 8025;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 573:
				{
				this.state = 8023;
				this.supplemental_log_grp_clause();
				}
				break;
			case 317:
				{
				this.state = 8024;
				this.supplemental_id_key_clause();
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public column_or_attribute(): Column_or_attributeContext {
		let localctx: Column_or_attributeContext = new Column_or_attributeContext(this, this._ctx, this.state);
		this.enterRule(localctx, 866, PlSqlParser.RULE_column_or_attribute);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 8027;
			this.regular_id();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public object_type_col_properties(): Object_type_col_propertiesContext {
		let localctx: Object_type_col_propertiesContext = new Object_type_col_propertiesContext(this, this._ctx, this.state);
		this.enterRule(localctx, 868, PlSqlParser.RULE_object_type_col_properties);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 8029;
			this.match(PlSqlParser.COLUMN);
			this.state = 8030;
			localctx._column = this.regular_id();
			this.state = 8031;
			this.substitutable_column_clause();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public constraint_clauses(): Constraint_clausesContext {
		let localctx: Constraint_clausesContext = new Constraint_clausesContext(this, this._ctx, this.state);
		this.enterRule(localctx, 870, PlSqlParser.RULE_constraint_clauses);
		let _la: number;
		try {
			this.state = 8089;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1038, this._ctx) ) {
			case 1:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 8033;
				this.match(PlSqlParser.ADD);
				this.state = 8034;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 8042;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 1031, this._ctx) ) {
				case 1:
					{
					this.state = 8038;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
					while (_la===180 || _la===257 || _la===544 || _la===1304 || _la===2002) {
						{
						{
						this.state = 8035;
						this.out_of_line_constraint();
						}
						}
						this.state = 8040;
						this._errHandler.sync(this);
						_la = this._input.LA(1);
					}
					}
					break;
				case 2:
					{
					this.state = 8041;
					this.out_of_line_ref_constraint();
					}
					break;
				}
				this.state = 8044;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
				break;
			case 2:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 8045;
				this.match(PlSqlParser.ADD);
				this.state = 8053;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 1033, this._ctx) ) {
				case 1:
					{
					this.state = 8049;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
					while (_la===180 || _la===257 || _la===544 || _la===1304 || _la===2002) {
						{
						{
						this.state = 8046;
						this.out_of_line_constraint();
						}
						}
						this.state = 8051;
						this._errHandler.sync(this);
						_la = this._input.LA(1);
					}
					}
					break;
				case 2:
					{
					this.state = 8052;
					this.out_of_line_ref_constraint();
					}
					break;
				}
				}
				break;
			case 3:
				this.enterOuterAlt(localctx, 3);
				{
				this.state = 8055;
				this.match(PlSqlParser.MODIFY);
				this.state = 8072;
				this._errHandler.sync(this);
				switch (this._input.LA(1)) {
				case 257:
					{
					this.state = 8056;
					this.match(PlSqlParser.CONSTRAINT);
					this.state = 8057;
					this.constraint_name();
					}
					break;
				case 1304:
					{
					this.state = 8058;
					this.match(PlSqlParser.PRIMARY);
					this.state = 8059;
					this.match(PlSqlParser.KEY);
					}
					break;
				case 2002:
					{
					this.state = 8060;
					this.match(PlSqlParser.UNIQUE);
					this.state = 8061;
					this.match(PlSqlParser.LEFT_PAREN);
					this.state = 8062;
					this.column_name();
					this.state = 8067;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
					while (_la===2229) {
						{
						{
						this.state = 8063;
						this.match(PlSqlParser.COMMA);
						this.state = 8064;
						this.column_name();
						}
						}
						this.state = 8069;
						this._errHandler.sync(this);
						_la = this._input.LA(1);
					}
					this.state = 8070;
					this.match(PlSqlParser.RIGHT_PAREN);
					}
					break;
				default:
					throw new NoViableAltException(this);
				}
				this.state = 8074;
				this.constraint_state();
				this.state = 8076;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===162) {
					{
					this.state = 8075;
					this.match(PlSqlParser.CASCADE);
					}
				}

				}
				break;
			case 4:
				this.enterOuterAlt(localctx, 4);
				{
				this.state = 8078;
				this.match(PlSqlParser.RENAME);
				this.state = 8079;
				this.match(PlSqlParser.CONSTRAINT);
				this.state = 8080;
				this.old_constraint_name();
				this.state = 8081;
				this.match(PlSqlParser.TO);
				this.state = 8082;
				this.new_constraint_name();
				}
				break;
			case 5:
				this.enterOuterAlt(localctx, 5);
				{
				this.state = 8085;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				do {
					{
					{
					this.state = 8084;
					this.drop_constraint_clause();
					}
					}
					this.state = 8087;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				} while (_la===411);
				}
				break;
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public old_constraint_name(): Old_constraint_nameContext {
		let localctx: Old_constraint_nameContext = new Old_constraint_nameContext(this, this._ctx, this.state);
		this.enterRule(localctx, 872, PlSqlParser.RULE_old_constraint_name);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 8091;
			this.constraint_name();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public new_constraint_name(): New_constraint_nameContext {
		let localctx: New_constraint_nameContext = new New_constraint_nameContext(this, this._ctx, this.state);
		this.enterRule(localctx, 874, PlSqlParser.RULE_new_constraint_name);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 8093;
			this.constraint_name();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public drop_constraint_clause(): Drop_constraint_clauseContext {
		let localctx: Drop_constraint_clauseContext = new Drop_constraint_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 876, PlSqlParser.RULE_drop_constraint_clause);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 8095;
			this.match(PlSqlParser.DROP);
			this.state = 8096;
			this.drop_primary_key_or_unique_or_generic_clause();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public drop_primary_key_or_unique_or_generic_clause(): Drop_primary_key_or_unique_or_generic_clauseContext {
		let localctx: Drop_primary_key_or_unique_or_generic_clauseContext = new Drop_primary_key_or_unique_or_generic_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 878, PlSqlParser.RULE_drop_primary_key_or_unique_or_generic_clause);
		let _la: number;
		try {
			this.state = 8125;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 1304:
			case 2002:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 8112;
				this._errHandler.sync(this);
				switch (this._input.LA(1)) {
				case 1304:
					{
					this.state = 8098;
					this.match(PlSqlParser.PRIMARY);
					this.state = 8099;
					this.match(PlSqlParser.KEY);
					}
					break;
				case 2002:
					{
					this.state = 8100;
					this.match(PlSqlParser.UNIQUE);
					this.state = 8101;
					this.match(PlSqlParser.LEFT_PAREN);
					this.state = 8102;
					this.column_name();
					this.state = 8107;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
					while (_la===2229) {
						{
						{
						this.state = 8103;
						this.match(PlSqlParser.COMMA);
						this.state = 8104;
						this.column_name();
						}
						}
						this.state = 8109;
						this._errHandler.sync(this);
						_la = this._input.LA(1);
					}
					this.state = 8110;
					this.match(PlSqlParser.RIGHT_PAREN);
					}
					break;
				default:
					throw new NoViableAltException(this);
				}
				this.state = 8115;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===162) {
					{
					this.state = 8114;
					this.match(PlSqlParser.CASCADE);
					}
				}

				this.state = 8118;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 1042, this._ctx) ) {
				case 1:
					{
					this.state = 8117;
					_la = this._input.LA(1);
					if(!(_la===411 || _la===720)) {
					this._errHandler.recoverInline(this);
					}
					else {
						this._errHandler.reportMatch(this);
					    this.consume();
					}
					}
					break;
				}
				}
				break;
			case 257:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 8120;
				this.match(PlSqlParser.CONSTRAINT);
				this.state = 8121;
				this.constraint_name();
				this.state = 8123;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===162) {
					{
					this.state = 8122;
					this.match(PlSqlParser.CASCADE);
					}
				}

				}
				break;
			default:
				throw new NoViableAltException(this);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public add_constraint(): Add_constraintContext {
		let localctx: Add_constraintContext = new Add_constraintContext(this, this._ctx, this.state);
		this.enterRule(localctx, 880, PlSqlParser.RULE_add_constraint);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 8127;
			this.match(PlSqlParser.ADD);
			this.state = 8130;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===257) {
				{
				this.state = 8128;
				this.match(PlSqlParser.CONSTRAINT);
				this.state = 8129;
				this.constraint_name();
				}
			}

			this.state = 8132;
			this.add_constraint_clause();
			this.state = 8139;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			do {
				{
				{
				this.state = 8133;
				this.match(PlSqlParser.COMMA);
				this.state = 8136;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===257) {
					{
					this.state = 8134;
					this.match(PlSqlParser.CONSTRAINT);
					this.state = 8135;
					this.constraint_name();
					}
				}

				this.state = 8138;
				this.add_constraint_clause();
				}
				}
				this.state = 8141;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			} while (_la===2229);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public add_constraint_clause(): Add_constraint_clauseContext {
		let localctx: Add_constraint_clauseContext = new Add_constraint_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 882, PlSqlParser.RULE_add_constraint_clause);
		try {
			this.state = 8147;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 1304:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 8143;
				this.primary_key_clause();
				}
				break;
			case 544:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 8144;
				this.foreign_key_clause();
				}
				break;
			case 2002:
				this.enterOuterAlt(localctx, 3);
				{
				this.state = 8145;
				this.unique_key_clause();
				}
				break;
			case 180:
				this.enterOuterAlt(localctx, 4);
				{
				this.state = 8146;
				this.check_constraint();
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public check_constraint(): Check_constraintContext {
		let localctx: Check_constraintContext = new Check_constraintContext(this, this._ctx, this.state);
		this.enterRule(localctx, 884, PlSqlParser.RULE_check_constraint);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 8149;
			this.match(PlSqlParser.CHECK);
			this.state = 8150;
			this.match(PlSqlParser.LEFT_PAREN);
			this.state = 8151;
			this.condition();
			this.state = 8152;
			this.match(PlSqlParser.RIGHT_PAREN);
			this.state = 8154;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1049, this._ctx) ) {
			case 1:
				{
				this.state = 8153;
				this.match(PlSqlParser.DISABLE);
				}
				break;
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public drop_constraint(): Drop_constraintContext {
		let localctx: Drop_constraintContext = new Drop_constraintContext(this, this._ctx, this.state);
		this.enterRule(localctx, 886, PlSqlParser.RULE_drop_constraint);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 8156;
			this.match(PlSqlParser.DROP);
			this.state = 8157;
			this.match(PlSqlParser.CONSTRAINT);
			this.state = 8158;
			this.constraint_name();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public enable_constraint(): Enable_constraintContext {
		let localctx: Enable_constraintContext = new Enable_constraintContext(this, this._ctx, this.state);
		this.enterRule(localctx, 888, PlSqlParser.RULE_enable_constraint);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 8160;
			this.match(PlSqlParser.ENABLE);
			this.state = 8161;
			this.match(PlSqlParser.CONSTRAINT);
			this.state = 8162;
			this.constraint_name();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public disable_constraint(): Disable_constraintContext {
		let localctx: Disable_constraintContext = new Disable_constraintContext(this, this._ctx, this.state);
		this.enterRule(localctx, 890, PlSqlParser.RULE_disable_constraint);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 8164;
			this.match(PlSqlParser.DISABLE);
			this.state = 8165;
			this.match(PlSqlParser.CONSTRAINT);
			this.state = 8166;
			this.constraint_name();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public foreign_key_clause(): Foreign_key_clauseContext {
		let localctx: Foreign_key_clauseContext = new Foreign_key_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 892, PlSqlParser.RULE_foreign_key_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 8168;
			this.match(PlSqlParser.FOREIGN);
			this.state = 8169;
			this.match(PlSqlParser.KEY);
			this.state = 8170;
			this.paren_column_list();
			this.state = 8171;
			this.references_clause();
			this.state = 8173;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1128) {
				{
				this.state = 8172;
				this.on_delete_clause();
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public references_clause(): References_clauseContext {
		let localctx: References_clauseContext = new References_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 894, PlSqlParser.RULE_references_clause);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 8175;
			this.match(PlSqlParser.REFERENCES);
			this.state = 8176;
			this.tableview_name();
			this.state = 8177;
			this.paren_column_list();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public on_delete_clause(): On_delete_clauseContext {
		let localctx: On_delete_clauseContext = new On_delete_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 896, PlSqlParser.RULE_on_delete_clause);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 8179;
			this.match(PlSqlParser.ON);
			this.state = 8180;
			this.match(PlSqlParser.DELETE);
			this.state = 8184;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 162:
				{
				this.state = 8181;
				this.match(PlSqlParser.CASCADE);
				}
				break;
			case 1510:
				{
				this.state = 8182;
				this.match(PlSqlParser.SET);
				this.state = 8183;
				this.match(PlSqlParser.NULL_);
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public unique_key_clause(): Unique_key_clauseContext {
		let localctx: Unique_key_clauseContext = new Unique_key_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 898, PlSqlParser.RULE_unique_key_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 8186;
			this.match(PlSqlParser.UNIQUE);
			this.state = 8187;
			this.paren_column_list();
			this.state = 8189;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===2063) {
				{
				this.state = 8188;
				this.using_index_clause();
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public primary_key_clause(): Primary_key_clauseContext {
		let localctx: Primary_key_clauseContext = new Primary_key_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 900, PlSqlParser.RULE_primary_key_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 8191;
			this.match(PlSqlParser.PRIMARY);
			this.state = 8192;
			this.match(PlSqlParser.KEY);
			this.state = 8193;
			this.paren_column_list();
			this.state = 8195;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===2063) {
				{
				this.state = 8194;
				this.using_index_clause();
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public anonymous_block(): Anonymous_blockContext {
		let localctx: Anonymous_blockContext = new Anonymous_blockContext(this, this._ctx, this.state);
		this.enterRule(localctx, 902, PlSqlParser.RULE_anonymous_block);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 8199;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===344) {
				{
				this.state = 8197;
				this.match(PlSqlParser.DECLARE);
				this.state = 8198;
				this.seq_of_declare_specs();
				}
			}

			this.state = 8201;
			this.match(PlSqlParser.BEGIN);
			this.state = 8202;
			this.seq_of_statements();
			this.state = 8209;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===468) {
				{
				this.state = 8203;
				this.match(PlSqlParser.EXCEPTION);
				this.state = 8205;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				do {
					{
					{
					this.state = 8204;
					this.exception_handler();
					}
					}
					this.state = 8207;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				} while (_la===2113);
				}
			}

			this.state = 8211;
			this.match(PlSqlParser.END);
			this.state = 8212;
			this.match(PlSqlParser.SEMICOLON);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public invoker_rights_clause(): Invoker_rights_clauseContext {
		let localctx: Invoker_rights_clauseContext = new Invoker_rights_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 904, PlSqlParser.RULE_invoker_rights_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 8214;
			this.match(PlSqlParser.AUTHID);
			this.state = 8215;
			_la = this._input.LA(1);
			if(!(_la===307 || _la===357)) {
			this._errHandler.recoverInline(this);
			}
			else {
				this._errHandler.reportMatch(this);
			    this.consume();
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public call_spec(): Call_specContext {
		let localctx: Call_specContext = new Call_specContext(this, this._ctx, this.state);
		this.enterRule(localctx, 906, PlSqlParser.RULE_call_spec);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 8217;
			this.match(PlSqlParser.LANGUAGE);
			this.state = 8220;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 700:
				{
				this.state = 8218;
				this.java_spec();
				}
				break;
			case 190:
				{
				this.state = 8219;
				this.c_spec();
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public java_spec(): Java_specContext {
		let localctx: Java_specContext = new Java_specContext(this, this._ctx, this.state);
		this.enterRule(localctx, 908, PlSqlParser.RULE_java_spec);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 8222;
			this.match(PlSqlParser.JAVA);
			this.state = 8223;
			this.match(PlSqlParser.NAME);
			this.state = 8224;
			this.match(PlSqlParser.CHAR_STRING);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public c_spec(): C_specContext {
		let localctx: C_specContext = new C_specContext(this, this._ctx, this.state);
		this.enterRule(localctx, 910, PlSqlParser.RULE_c_spec);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 8226;
			this.match(PlSqlParser.C_LETTER);
			this.state = 8229;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===879) {
				{
				this.state = 8227;
				this.match(PlSqlParser.NAME);
				this.state = 8228;
				this.match(PlSqlParser.CHAR_STRING);
				}
			}

			this.state = 8231;
			this.match(PlSqlParser.LIBRARY);
			this.state = 8232;
			this.identifier();
			this.state = 8234;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===31) {
				{
				this.state = 8233;
				this.c_agent_in_clause();
				}
			}

			this.state = 8238;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===2121) {
				{
				this.state = 8236;
				this.match(PlSqlParser.WITH);
				this.state = 8237;
				this.match(PlSqlParser.CONTEXT);
				}
			}

			this.state = 8241;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1197) {
				{
				this.state = 8240;
				this.c_parameters_clause();
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public c_agent_in_clause(): C_agent_in_clauseContext {
		let localctx: C_agent_in_clauseContext = new C_agent_in_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 912, PlSqlParser.RULE_c_agent_in_clause);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 8243;
			this.match(PlSqlParser.AGENT);
			this.state = 8244;
			this.match(PlSqlParser.IN);
			this.state = 8245;
			this.match(PlSqlParser.LEFT_PAREN);
			this.state = 8246;
			this.expressions();
			this.state = 8247;
			this.match(PlSqlParser.RIGHT_PAREN);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public c_parameters_clause(): C_parameters_clauseContext {
		let localctx: C_parameters_clauseContext = new C_parameters_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 914, PlSqlParser.RULE_c_parameters_clause);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 8249;
			this.match(PlSqlParser.PARAMETERS);
			this.state = 8250;
			this.match(PlSqlParser.LEFT_PAREN);
			this.state = 8255;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1062, this._ctx) ) {
			case 1:
				{
				this.state = 8251;
				this.expressions();
				}
				break;
			case 2:
				{
				this.state = 8252;
				this.match(PlSqlParser.PERIOD);
				this.state = 8253;
				this.match(PlSqlParser.PERIOD);
				this.state = 8254;
				this.match(PlSqlParser.PERIOD);
				}
				break;
			}
			this.state = 8257;
			this.match(PlSqlParser.RIGHT_PAREN);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public parameter(): ParameterContext {
		let localctx: ParameterContext = new ParameterContext(this, this._ctx, this.state);
		this.enterRule(localctx, 916, PlSqlParser.RULE_parameter);
		let _la: number;
		try {
			let _alt: number;
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 8259;
			this.parameter_name();
			this.state = 8263;
			this._errHandler.sync(this);
			_alt = this._interp.adaptivePredict(this._input, 1063, this._ctx);
			while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) {
				if (_alt === 1) {
					{
					{
					this.state = 8260;
					_la = this._input.LA(1);
					if(!(_la===652 || _la===664 || _la===959 || _la===1182)) {
					this._errHandler.recoverInline(this);
					}
					else {
						this._errHandler.reportMatch(this);
					    this.consume();
					}
					}
					}
				}
				this.state = 8265;
				this._errHandler.sync(this);
				_alt = this._interp.adaptivePredict(this._input, 1063, this._ctx);
			}
			this.state = 8267;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & 2684286839) !== 0) || ((((_la - 64)) & ~0x1F) === 0 && ((1 << (_la - 64)) & 3220168703) !== 0) || ((((_la - 96)) & ~0x1F) === 0 && ((1 << (_la - 96)) & 4294965247) !== 0) || ((((_la - 128)) & ~0x1F) === 0 && ((1 << (_la - 128)) & 2147221503) !== 0) || ((((_la - 160)) & ~0x1F) === 0 && ((1 << (_la - 160)) & 4293910527) !== 0) || ((((_la - 192)) & ~0x1F) === 0 && ((1 << (_la - 192)) & 4294967295) !== 0) || ((((_la - 224)) & ~0x1F) === 0 && ((1 << (_la - 224)) & 4160749311) !== 0) || ((((_la - 256)) & ~0x1F) === 0 && ((1 << (_la - 256)) & 4294967295) !== 0) || ((((_la - 289)) & ~0x1F) === 0 && ((1 << (_la - 289)) & 2147483647) !== 0) || ((((_la - 321)) & ~0x1F) === 0 && ((1 << (_la - 321)) & 3221225471) !== 0) || ((((_la - 353)) & ~0x1F) === 0 && ((1 << (_la - 353)) & 4294705151) !== 0) || ((((_la - 385)) & ~0x1F) === 0 && ((1 << (_la - 385)) & 2080372479) !== 0) || ((((_la - 417)) & ~0x1F) === 0 && ((1 << (_la - 417)) & 4026433535) !== 0) || ((((_la - 449)) & ~0x1F) === 0 && ((1 << (_la - 449)) & 4261412863) !== 0) || ((((_la - 481)) & ~0x1F) === 0 && ((1 << (_la - 481)) & 4294967295) !== 0) || ((((_la - 513)) & ~0x1F) === 0 && ((1 << (_la - 513)) & 4294967295) !== 0) || ((((_la - 545)) & ~0x1F) === 0 && ((1 << (_la - 545)) & 3925868029) !== 0) || ((((_la - 577)) & ~0x1F) === 0 && ((1 << (_la - 577)) & 4278189823) !== 0) || ((((_la - 609)) & ~0x1F) === 0 && ((1 << (_la - 609)) & 4290772991) !== 0) || ((((_la - 641)) & ~0x1F) === 0 && ((1 << (_la - 641)) & 4026529791) !== 0) || ((((_la - 673)) & ~0x1F) === 0 && ((1 << (_la - 673)) & 4290478079) !== 0) || ((((_la - 705)) & ~0x1F) === 0 && ((1 << (_la - 705)) & 4294967295) !== 0) || ((((_la - 737)) & ~0x1F) === 0 && ((1 << (_la - 737)) & 4293918719) !== 0) || ((((_la - 769)) & ~0x1F) === 0 && ((1 << (_la - 769)) & 4294967167) !== 0) || ((((_la - 801)) & ~0x1F) === 0 && ((1 << (_la - 801)) & 4294967295) !== 0) || ((((_la - 833)) & ~0x1F) === 0 && ((1 << (_la - 833)) & 4160749055) !== 0) || ((((_la - 865)) & ~0x1F) === 0 && ((1 << (_la - 865)) & 4294967295) !== 0) || ((((_la - 897)) & ~0x1F) === 0 && ((1 << (_la - 897)) & 4294967295) !== 0) || ((((_la - 929)) & ~0x1F) === 0 && ((1 << (_la - 929)) & 4278190079) !== 0) || ((((_la - 961)) & ~0x1F) === 0 && ((1 << (_la - 961)) & 4294967295) !== 0) || ((((_la - 993)) & ~0x1F) === 0 && ((1 << (_la - 993)) & 4294967295) !== 0) || ((((_la - 1025)) & ~0x1F) === 0 && ((1 << (_la - 1025)) & 4294967295) !== 0) || ((((_la - 1057)) & ~0x1F) === 0 && ((1 << (_la - 1057)) & 2147418111) !== 0) || ((((_la - 1089)) & ~0x1F) === 0 && ((1 << (_la - 1089)) & 4227858175) !== 0) || ((((_la - 1121)) & ~0x1F) === 0 && ((1 << (_la - 1121)) & 4293918559) !== 0) || ((((_la - 1153)) & ~0x1F) === 0 && ((1 << (_la - 1153)) & 4294410239) !== 0) || ((((_la - 1185)) & ~0x1F) === 0 && ((1 << (_la - 1185)) & 4294965247) !== 0) || ((((_la - 1217)) & ~0x1F) === 0 && ((1 << (_la - 1217)) & 4279827455) !== 0) || ((((_la - 1249)) & ~0x1F) === 0 && ((1 << (_la - 1249)) & 4294967291) !== 0) || ((((_la - 1281)) & ~0x1F) === 0 && ((1 << (_la - 1281)) & 4227858431) !== 0) || ((((_la - 1313)) & ~0x1F) === 0 && ((1 << (_la - 1313)) & 4294965247) !== 0) || ((((_la - 1345)) & ~0x1F) === 0 && ((1 << (_la - 1345)) & 4294967295) !== 0) || ((((_la - 1377)) & ~0x1F) === 0 && ((1 << (_la - 1377)) & 4292870143) !== 0) || ((((_la - 1409)) & ~0x1F) === 0 && ((1 << (_la - 1409)) & 4261412799) !== 0) || ((((_la - 1441)) & ~0x1F) === 0 && ((1 << (_la - 1441)) & 4294967295) !== 0) || ((((_la - 1473)) & ~0x1F) === 0 && ((1 << (_la - 1473)) & 4261281791) !== 0) || ((((_la - 1505)) & ~0x1F) === 0 && ((1 << (_la - 1505)) & 3221221375) !== 0) || ((((_la - 1537)) & ~0x1F) === 0 && ((1 << (_la - 1537)) & 4294967295) !== 0) || ((((_la - 1570)) & ~0x1F) === 0 && ((1 << (_la - 1570)) & 4294967295) !== 0) || ((((_la - 1602)) & ~0x1F) === 0 && ((1 << (_la - 1602)) & 4261412863) !== 0) || ((((_la - 1634)) & ~0x1F) === 0 && ((1 << (_la - 1634)) & 4294967295) !== 0) || ((((_la - 1666)) & ~0x1F) === 0 && ((1 << (_la - 1666)) & 4294967295) !== 0) || ((((_la - 1698)) & ~0x1F) === 0 && ((1 << (_la - 1698)) & 4294967295) !== 0) || ((((_la - 1730)) & ~0x1F) === 0 && ((1 << (_la - 1730)) & 4294967295) !== 0) || ((((_la - 1762)) & ~0x1F) === 0 && ((1 << (_la - 1762)) & 4294967295) !== 0) || ((((_la - 1794)) & ~0x1F) === 0 && ((1 << (_la - 1794)) & 4294967295) !== 0) || ((((_la - 1826)) & ~0x1F) === 0 && ((1 << (_la - 1826)) & 4294967295) !== 0) || ((((_la - 1858)) & ~0x1F) === 0 && ((1 << (_la - 1858)) & 4294967295) !== 0) || ((((_la - 1890)) & ~0x1F) === 0 && ((1 << (_la - 1890)) & 4294967295) !== 0) || ((((_la - 1922)) & ~0x1F) === 0 && ((1 << (_la - 1922)) & 4294901759) !== 0) || ((((_la - 1954)) & ~0x1F) === 0 && ((1 << (_la - 1954)) & 4294966271) !== 0) || ((((_la - 1986)) & ~0x1F) === 0 && ((1 << (_la - 1986)) & 4294868991) !== 0) || ((((_la - 2018)) & ~0x1F) === 0 && ((1 << (_la - 2018)) & 4294967167) !== 0) || ((((_la - 2050)) & ~0x1F) === 0 && ((1 << (_la - 2050)) & 4286578687) !== 0) || ((((_la - 2082)) & ~0x1F) === 0 && ((1 << (_la - 2082)) & 4294836223) !== 0) || ((((_la - 2115)) & ~0x1F) === 0 && ((1 << (_la - 2115)) & 3758092223) !== 0) || ((((_la - 2147)) & ~0x1F) === 0 && ((1 << (_la - 2147)) & 4293918719) !== 0) || ((((_la - 2179)) & ~0x1F) === 0 && ((1 << (_la - 2179)) & 4294965247) !== 0) || ((((_la - 2211)) & ~0x1F) === 0 && ((1 << (_la - 2211)) & 545) !== 0) || _la===2252) {
				{
				this.state = 8266;
				this.type_spec();
				}
			}

			this.state = 8270;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===351 || _la===2232) {
				{
				this.state = 8269;
				this.default_value_part();
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public default_value_part(): Default_value_partContext {
		let localctx: Default_value_partContext = new Default_value_partContext(this, this._ctx, this.state);
		this.enterRule(localctx, 918, PlSqlParser.RULE_default_value_part);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 8272;
			_la = this._input.LA(1);
			if(!(_la===351 || _la===2232)) {
			this._errHandler.recoverInline(this);
			}
			else {
				this._errHandler.reportMatch(this);
			    this.consume();
			}
			this.state = 8273;
			this.expression();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public seq_of_declare_specs(): Seq_of_declare_specsContext {
		let localctx: Seq_of_declare_specsContext = new Seq_of_declare_specsContext(this, this._ctx, this.state);
		this.enterRule(localctx, 920, PlSqlParser.RULE_seq_of_declare_specs);
		try {
			let _alt: number;
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 8276;
			this._errHandler.sync(this);
			_alt = 1;
			do {
				switch (_alt) {
				case 1:
					{
					{
					this.state = 8275;
					this.declare_spec();
					}
					}
					break;
				default:
					throw new NoViableAltException(this);
				}
				this.state = 8278;
				this._errHandler.sync(this);
				_alt = this._interp.adaptivePredict(this._input, 1066, this._ctx);
			} while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public declare_spec(): Declare_specContext {
		let localctx: Declare_specContext = new Declare_specContext(this, this._ctx, this.state);
		this.enterRule(localctx, 922, PlSqlParser.RULE_declare_spec);
		try {
			this.state = 8290;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1067, this._ctx) ) {
			case 1:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 8280;
				this.pragma_declaration();
				}
				break;
			case 2:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 8281;
				this.variable_declaration();
				}
				break;
			case 3:
				this.enterOuterAlt(localctx, 3);
				{
				this.state = 8282;
				this.subtype_declaration();
				}
				break;
			case 4:
				this.enterOuterAlt(localctx, 4);
				{
				this.state = 8283;
				this.cursor_declaration();
				}
				break;
			case 5:
				this.enterOuterAlt(localctx, 5);
				{
				this.state = 8284;
				this.exception_declaration();
				}
				break;
			case 6:
				this.enterOuterAlt(localctx, 6);
				{
				this.state = 8285;
				this.type_declaration();
				}
				break;
			case 7:
				this.enterOuterAlt(localctx, 7);
				{
				this.state = 8286;
				this.procedure_spec();
				}
				break;
			case 8:
				this.enterOuterAlt(localctx, 8);
				{
				this.state = 8287;
				this.function_spec();
				}
				break;
			case 9:
				this.enterOuterAlt(localctx, 9);
				{
				this.state = 8288;
				this.procedure_body();
				}
				break;
			case 10:
				this.enterOuterAlt(localctx, 10);
				{
				this.state = 8289;
				this.function_body();
				}
				break;
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public variable_declaration(): Variable_declarationContext {
		let localctx: Variable_declarationContext = new Variable_declarationContext(this, this._ctx, this.state);
		this.enterRule(localctx, 924, PlSqlParser.RULE_variable_declaration);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 8292;
			this.identifier();
			this.state = 8294;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1068, this._ctx) ) {
			case 1:
				{
				this.state = 8293;
				this.match(PlSqlParser.CONSTANT);
				}
				break;
			}
			this.state = 8296;
			this.type_spec();
			this.state = 8299;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1073) {
				{
				this.state = 8297;
				this.match(PlSqlParser.NOT);
				this.state = 8298;
				this.match(PlSqlParser.NULL_);
				}
			}

			this.state = 8302;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===351 || _la===2232) {
				{
				this.state = 8301;
				this.default_value_part();
				}
			}

			this.state = 8304;
			this.match(PlSqlParser.SEMICOLON);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public subtype_declaration(): Subtype_declarationContext {
		let localctx: Subtype_declarationContext = new Subtype_declarationContext(this, this._ctx, this.state);
		this.enterRule(localctx, 926, PlSqlParser.RULE_subtype_declaration);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 8306;
			this.match(PlSqlParser.SUBTYPE);
			this.state = 8307;
			this.identifier();
			this.state = 8308;
			this.match(PlSqlParser.IS);
			this.state = 8309;
			this.type_spec();
			this.state = 8315;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1344) {
				{
				this.state = 8310;
				this.match(PlSqlParser.RANGE);
				this.state = 8311;
				this.expression();
				this.state = 8312;
				this.match(PlSqlParser.DOUBLE_PERIOD);
				this.state = 8313;
				this.expression();
				}
			}

			this.state = 8319;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1073) {
				{
				this.state = 8317;
				this.match(PlSqlParser.NOT);
				this.state = 8318;
				this.match(PlSqlParser.NULL_);
				}
			}

			this.state = 8321;
			this.match(PlSqlParser.SEMICOLON);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public cursor_declaration(): Cursor_declarationContext {
		let localctx: Cursor_declarationContext = new Cursor_declarationContext(this, this._ctx, this.state);
		this.enterRule(localctx, 928, PlSqlParser.RULE_cursor_declaration);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 8323;
			this.match(PlSqlParser.CURSOR);
			this.state = 8324;
			this.identifier();
			this.state = 8336;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===2223) {
				{
				this.state = 8325;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 8326;
				this.parameter_spec();
				this.state = 8331;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===2229) {
					{
					{
					this.state = 8327;
					this.match(PlSqlParser.COMMA);
					this.state = 8328;
					this.parameter_spec();
					}
					}
					this.state = 8333;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				this.state = 8334;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
			}

			this.state = 8340;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1431) {
				{
				this.state = 8338;
				this.match(PlSqlParser.RETURN);
				this.state = 8339;
				this.type_spec();
				}
			}

			this.state = 8344;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===695) {
				{
				this.state = 8342;
				this.match(PlSqlParser.IS);
				this.state = 8343;
				this.select_statement();
				}
			}

			this.state = 8346;
			this.match(PlSqlParser.SEMICOLON);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public parameter_spec(): Parameter_specContext {
		let localctx: Parameter_specContext = new Parameter_specContext(this, this._ctx, this.state);
		this.enterRule(localctx, 930, PlSqlParser.RULE_parameter_spec);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 8348;
			this.parameter_name();
			this.state = 8353;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & 2684286839) !== 0) || ((((_la - 64)) & ~0x1F) === 0 && ((1 << (_la - 64)) & 3220168703) !== 0) || ((((_la - 96)) & ~0x1F) === 0 && ((1 << (_la - 96)) & 4294965247) !== 0) || ((((_la - 128)) & ~0x1F) === 0 && ((1 << (_la - 128)) & 2147221503) !== 0) || ((((_la - 160)) & ~0x1F) === 0 && ((1 << (_la - 160)) & 4293910527) !== 0) || ((((_la - 192)) & ~0x1F) === 0 && ((1 << (_la - 192)) & 4294967295) !== 0) || ((((_la - 224)) & ~0x1F) === 0 && ((1 << (_la - 224)) & 4160749311) !== 0) || ((((_la - 256)) & ~0x1F) === 0 && ((1 << (_la - 256)) & 4294967295) !== 0) || ((((_la - 289)) & ~0x1F) === 0 && ((1 << (_la - 289)) & 2147483647) !== 0) || ((((_la - 321)) & ~0x1F) === 0 && ((1 << (_la - 321)) & 3221225471) !== 0) || ((((_la - 353)) & ~0x1F) === 0 && ((1 << (_la - 353)) & 4294705151) !== 0) || ((((_la - 385)) & ~0x1F) === 0 && ((1 << (_la - 385)) & 2080372479) !== 0) || ((((_la - 417)) & ~0x1F) === 0 && ((1 << (_la - 417)) & 4026433535) !== 0) || ((((_la - 449)) & ~0x1F) === 0 && ((1 << (_la - 449)) & 4261412863) !== 0) || ((((_la - 481)) & ~0x1F) === 0 && ((1 << (_la - 481)) & 4294967295) !== 0) || ((((_la - 513)) & ~0x1F) === 0 && ((1 << (_la - 513)) & 4294967295) !== 0) || ((((_la - 545)) & ~0x1F) === 0 && ((1 << (_la - 545)) & 3925868029) !== 0) || ((((_la - 577)) & ~0x1F) === 0 && ((1 << (_la - 577)) & 4278189823) !== 0) || ((((_la - 609)) & ~0x1F) === 0 && ((1 << (_la - 609)) & 4290772991) !== 0) || ((((_la - 641)) & ~0x1F) === 0 && ((1 << (_la - 641)) & 4026531839) !== 0) || ((((_la - 673)) & ~0x1F) === 0 && ((1 << (_la - 673)) & 4290478079) !== 0) || ((((_la - 705)) & ~0x1F) === 0 && ((1 << (_la - 705)) & 4294967295) !== 0) || ((((_la - 737)) & ~0x1F) === 0 && ((1 << (_la - 737)) & 4293918719) !== 0) || ((((_la - 769)) & ~0x1F) === 0 && ((1 << (_la - 769)) & 4294967167) !== 0) || ((((_la - 801)) & ~0x1F) === 0 && ((1 << (_la - 801)) & 4294967295) !== 0) || ((((_la - 833)) & ~0x1F) === 0 && ((1 << (_la - 833)) & 4160749055) !== 0) || ((((_la - 865)) & ~0x1F) === 0 && ((1 << (_la - 865)) & 4294967295) !== 0) || ((((_la - 897)) & ~0x1F) === 0 && ((1 << (_la - 897)) & 4294967295) !== 0) || ((((_la - 929)) & ~0x1F) === 0 && ((1 << (_la - 929)) & 4278190079) !== 0) || ((((_la - 961)) & ~0x1F) === 0 && ((1 << (_la - 961)) & 4294967295) !== 0) || ((((_la - 993)) & ~0x1F) === 0 && ((1 << (_la - 993)) & 4294967295) !== 0) || ((((_la - 1025)) & ~0x1F) === 0 && ((1 << (_la - 1025)) & 4294967295) !== 0) || ((((_la - 1057)) & ~0x1F) === 0 && ((1 << (_la - 1057)) & 2147418111) !== 0) || ((((_la - 1089)) & ~0x1F) === 0 && ((1 << (_la - 1089)) & 4227858175) !== 0) || ((((_la - 1121)) & ~0x1F) === 0 && ((1 << (_la - 1121)) & 4293918559) !== 0) || ((((_la - 1153)) & ~0x1F) === 0 && ((1 << (_la - 1153)) & 4294410239) !== 0) || ((((_la - 1185)) & ~0x1F) === 0 && ((1 << (_la - 1185)) & 4294965247) !== 0) || ((((_la - 1217)) & ~0x1F) === 0 && ((1 << (_la - 1217)) & 4279827455) !== 0) || ((((_la - 1249)) & ~0x1F) === 0 && ((1 << (_la - 1249)) & 4294967291) !== 0) || ((((_la - 1281)) & ~0x1F) === 0 && ((1 << (_la - 1281)) & 4227858431) !== 0) || ((((_la - 1313)) & ~0x1F) === 0 && ((1 << (_la - 1313)) & 4294965247) !== 0) || ((((_la - 1345)) & ~0x1F) === 0 && ((1 << (_la - 1345)) & 4294967295) !== 0) || ((((_la - 1377)) & ~0x1F) === 0 && ((1 << (_la - 1377)) & 4292870143) !== 0) || ((((_la - 1409)) & ~0x1F) === 0 && ((1 << (_la - 1409)) & 4261412799) !== 0) || ((((_la - 1441)) & ~0x1F) === 0 && ((1 << (_la - 1441)) & 4294967295) !== 0) || ((((_la - 1473)) & ~0x1F) === 0 && ((1 << (_la - 1473)) & 4261281791) !== 0) || ((((_la - 1505)) & ~0x1F) === 0 && ((1 << (_la - 1505)) & 3221221375) !== 0) || ((((_la - 1537)) & ~0x1F) === 0 && ((1 << (_la - 1537)) & 4294967295) !== 0) || ((((_la - 1570)) & ~0x1F) === 0 && ((1 << (_la - 1570)) & 4294967295) !== 0) || ((((_la - 1602)) & ~0x1F) === 0 && ((1 << (_la - 1602)) & 4261412863) !== 0) || ((((_la - 1634)) & ~0x1F) === 0 && ((1 << (_la - 1634)) & 4294967295) !== 0) || ((((_la - 1666)) & ~0x1F) === 0 && ((1 << (_la - 1666)) & 4294967295) !== 0) || ((((_la - 1698)) & ~0x1F) === 0 && ((1 << (_la - 1698)) & 4294967295) !== 0) || ((((_la - 1730)) & ~0x1F) === 0 && ((1 << (_la - 1730)) & 4294967295) !== 0) || ((((_la - 1762)) & ~0x1F) === 0 && ((1 << (_la - 1762)) & 4294967295) !== 0) || ((((_la - 1794)) & ~0x1F) === 0 && ((1 << (_la - 1794)) & 4294967295) !== 0) || ((((_la - 1826)) & ~0x1F) === 0 && ((1 << (_la - 1826)) & 4294967295) !== 0) || ((((_la - 1858)) & ~0x1F) === 0 && ((1 << (_la - 1858)) & 4294967295) !== 0) || ((((_la - 1890)) & ~0x1F) === 0 && ((1 << (_la - 1890)) & 4294967295) !== 0) || ((((_la - 1922)) & ~0x1F) === 0 && ((1 << (_la - 1922)) & 4294901759) !== 0) || ((((_la - 1954)) & ~0x1F) === 0 && ((1 << (_la - 1954)) & 4294966271) !== 0) || ((((_la - 1986)) & ~0x1F) === 0 && ((1 << (_la - 1986)) & 4294868991) !== 0) || ((((_la - 2018)) & ~0x1F) === 0 && ((1 << (_la - 2018)) & 4294967167) !== 0) || ((((_la - 2050)) & ~0x1F) === 0 && ((1 << (_la - 2050)) & 4286578687) !== 0) || ((((_la - 2082)) & ~0x1F) === 0 && ((1 << (_la - 2082)) & 4294836223) !== 0) || ((((_la - 2115)) & ~0x1F) === 0 && ((1 << (_la - 2115)) & 3758092223) !== 0) || ((((_la - 2147)) & ~0x1F) === 0 && ((1 << (_la - 2147)) & 4293918719) !== 0) || ((((_la - 2179)) & ~0x1F) === 0 && ((1 << (_la - 2179)) & 4294965247) !== 0) || ((((_la - 2211)) & ~0x1F) === 0 && ((1 << (_la - 2211)) & 545) !== 0) || _la===2252) {
				{
				this.state = 8350;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===652) {
					{
					this.state = 8349;
					this.match(PlSqlParser.IN);
					}
				}

				this.state = 8352;
				this.type_spec();
				}
			}

			this.state = 8356;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===351 || _la===2232) {
				{
				this.state = 8355;
				this.default_value_part();
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public exception_declaration(): Exception_declarationContext {
		let localctx: Exception_declarationContext = new Exception_declarationContext(this, this._ctx, this.state);
		this.enterRule(localctx, 932, PlSqlParser.RULE_exception_declaration);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 8358;
			this.identifier();
			this.state = 8359;
			this.match(PlSqlParser.EXCEPTION);
			this.state = 8360;
			this.match(PlSqlParser.SEMICOLON);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public pragma_declaration(): Pragma_declarationContext {
		let localctx: Pragma_declarationContext = new Pragma_declarationContext(this, this._ctx, this.state);
		this.enterRule(localctx, 934, PlSqlParser.RULE_pragma_declaration);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 8362;
			this.match(PlSqlParser.PRAGMA);
			this.state = 8393;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 1500:
				{
				this.state = 8363;
				this.match(PlSqlParser.SERIALLY_REUSABLE);
				}
				break;
			case 88:
				{
				this.state = 8364;
				this.match(PlSqlParser.AUTONOMOUS_TRANSACTION);
				}
				break;
			case 469:
				{
				this.state = 8365;
				this.match(PlSqlParser.EXCEPTION_INIT);
				this.state = 8366;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 8367;
				this.exception_name();
				this.state = 8368;
				this.match(PlSqlParser.COMMA);
				this.state = 8369;
				this.numeric_negative();
				this.state = 8370;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
				break;
			case 658:
				{
				this.state = 8372;
				this.match(PlSqlParser.INLINE);
				this.state = 8373;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 8374;
				localctx._id1 = this.identifier();
				this.state = 8375;
				this.match(PlSqlParser.COMMA);
				this.state = 8376;
				this.expression();
				this.state = 8377;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
				break;
			case 1422:
				{
				this.state = 8379;
				this.match(PlSqlParser.RESTRICT_REFERENCES);
				this.state = 8380;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 8383;
				this._errHandler.sync(this);
				switch (this._input.LA(1)) {
				case 1:
				case 2:
				case 3:
				case 4:
				case 5:
				case 6:
				case 7:
				case 8:
				case 9:
				case 10:
				case 11:
				case 12:
				case 13:
				case 14:
				case 15:
				case 16:
				case 17:
				case 18:
				case 19:
				case 20:
				case 21:
				case 22:
				case 23:
				case 24:
				case 25:
				case 26:
				case 27:
				case 28:
				case 29:
				case 30:
				case 31:
				case 32:
				case 33:
				case 34:
				case 36:
				case 37:
				case 38:
				case 40:
				case 41:
				case 42:
				case 44:
				case 45:
				case 46:
				case 47:
				case 49:
				case 50:
				case 51:
				case 52:
				case 53:
				case 54:
				case 55:
				case 56:
				case 57:
				case 58:
				case 59:
				case 60:
				case 63:
				case 64:
				case 65:
				case 66:
				case 67:
				case 68:
				case 69:
				case 70:
				case 71:
				case 72:
				case 73:
				case 74:
				case 75:
				case 76:
				case 78:
				case 79:
				case 80:
				case 81:
				case 82:
				case 83:
				case 85:
				case 86:
				case 87:
				case 88:
				case 89:
				case 90:
				case 91:
				case 92:
				case 93:
				case 95:
				case 96:
				case 97:
				case 98:
				case 99:
				case 100:
				case 101:
				case 102:
				case 103:
				case 104:
				case 105:
				case 106:
				case 108:
				case 109:
				case 110:
				case 111:
				case 112:
				case 113:
				case 114:
				case 115:
				case 116:
				case 117:
				case 118:
				case 119:
				case 120:
				case 121:
				case 122:
				case 123:
				case 124:
				case 125:
				case 126:
				case 127:
				case 128:
				case 129:
				case 130:
				case 131:
				case 132:
				case 133:
				case 134:
				case 135:
				case 136:
				case 137:
				case 138:
				case 139:
				case 140:
				case 141:
				case 142:
				case 143:
				case 144:
				case 145:
				case 147:
				case 148:
				case 149:
				case 150:
				case 151:
				case 152:
				case 153:
				case 154:
				case 155:
				case 156:
				case 157:
				case 158:
				case 160:
				case 161:
				case 162:
				case 163:
				case 164:
				case 165:
				case 166:
				case 167:
				case 168:
				case 169:
				case 170:
				case 171:
				case 172:
				case 174:
				case 175:
				case 176:
				case 177:
				case 178:
				case 179:
				case 181:
				case 182:
				case 183:
				case 184:
				case 185:
				case 186:
				case 187:
				case 188:
				case 189:
				case 190:
				case 191:
				case 192:
				case 193:
				case 194:
				case 195:
				case 196:
				case 197:
				case 198:
				case 199:
				case 200:
				case 201:
				case 202:
				case 203:
				case 204:
				case 205:
				case 206:
				case 207:
				case 208:
				case 209:
				case 210:
				case 211:
				case 212:
				case 213:
				case 214:
				case 215:
				case 216:
				case 217:
				case 218:
				case 219:
				case 220:
				case 221:
				case 222:
				case 223:
				case 224:
				case 225:
				case 226:
				case 227:
				case 228:
				case 229:
				case 230:
				case 231:
				case 233:
				case 234:
				case 235:
				case 236:
				case 237:
				case 238:
				case 239:
				case 240:
				case 241:
				case 242:
				case 243:
				case 244:
				case 245:
				case 246:
				case 247:
				case 248:
				case 249:
				case 250:
				case 252:
				case 253:
				case 254:
				case 255:
				case 256:
				case 257:
				case 258:
				case 259:
				case 260:
				case 261:
				case 262:
				case 263:
				case 264:
				case 265:
				case 266:
				case 267:
				case 268:
				case 269:
				case 270:
				case 271:
				case 272:
				case 273:
				case 274:
				case 275:
				case 276:
				case 277:
				case 278:
				case 279:
				case 280:
				case 281:
				case 282:
				case 283:
				case 284:
				case 285:
				case 286:
				case 287:
				case 289:
				case 290:
				case 291:
				case 292:
				case 293:
				case 294:
				case 295:
				case 296:
				case 297:
				case 298:
				case 299:
				case 300:
				case 301:
				case 302:
				case 303:
				case 304:
				case 305:
				case 306:
				case 307:
				case 308:
				case 309:
				case 310:
				case 311:
				case 312:
				case 313:
				case 314:
				case 315:
				case 316:
				case 317:
				case 318:
				case 319:
				case 321:
				case 322:
				case 323:
				case 324:
				case 325:
				case 326:
				case 328:
				case 329:
				case 330:
				case 331:
				case 332:
				case 333:
				case 334:
				case 335:
				case 336:
				case 337:
				case 338:
				case 339:
				case 340:
				case 341:
				case 342:
				case 343:
				case 344:
				case 345:
				case 346:
				case 347:
				case 348:
				case 349:
				case 350:
				case 352:
				case 353:
				case 354:
				case 355:
				case 356:
				case 357:
				case 358:
				case 359:
				case 360:
				case 361:
				case 362:
				case 363:
				case 364:
				case 365:
				case 366:
				case 367:
				case 368:
				case 369:
				case 370:
				case 372:
				case 373:
				case 374:
				case 375:
				case 376:
				case 377:
				case 378:
				case 379:
				case 380:
				case 381:
				case 382:
				case 383:
				case 384:
				case 385:
				case 386:
				case 387:
				case 388:
				case 389:
				case 390:
				case 391:
				case 392:
				case 394:
				case 395:
				case 397:
				case 398:
				case 399:
				case 400:
				case 401:
				case 402:
				case 403:
				case 404:
				case 405:
				case 406:
				case 407:
				case 408:
				case 409:
				case 410:
				case 412:
				case 413:
				case 414:
				case 415:
				case 417:
				case 418:
				case 419:
				case 420:
				case 421:
				case 422:
				case 423:
				case 424:
				case 425:
				case 426:
				case 427:
				case 428:
				case 429:
				case 430:
				case 431:
				case 434:
				case 435:
				case 436:
				case 437:
				case 438:
				case 439:
				case 440:
				case 441:
				case 442:
				case 443:
				case 444:
				case 446:
				case 447:
				case 448:
				case 449:
				case 450:
				case 451:
				case 452:
				case 453:
				case 454:
				case 455:
				case 456:
				case 457:
				case 458:
				case 459:
				case 460:
				case 461:
				case 462:
				case 463:
				case 464:
				case 465:
				case 466:
				case 467:
				case 468:
				case 469:
				case 470:
				case 471:
				case 472:
				case 473:
				case 475:
				case 476:
				case 477:
				case 478:
				case 479:
				case 480:
				case 481:
				case 482:
				case 483:
				case 484:
				case 485:
				case 486:
				case 487:
				case 488:
				case 489:
				case 490:
				case 491:
				case 492:
				case 493:
				case 494:
				case 495:
				case 496:
				case 497:
				case 498:
				case 499:
				case 500:
				case 501:
				case 502:
				case 503:
				case 504:
				case 505:
				case 506:
				case 507:
				case 508:
				case 509:
				case 510:
				case 511:
				case 512:
				case 513:
				case 514:
				case 515:
				case 516:
				case 517:
				case 518:
				case 519:
				case 520:
				case 521:
				case 522:
				case 523:
				case 524:
				case 525:
				case 526:
				case 527:
				case 528:
				case 529:
				case 530:
				case 531:
				case 532:
				case 533:
				case 534:
				case 535:
				case 536:
				case 537:
				case 538:
				case 539:
				case 540:
				case 541:
				case 542:
				case 543:
				case 544:
				case 545:
				case 547:
				case 548:
				case 549:
				case 550:
				case 551:
				case 552:
				case 553:
				case 555:
				case 556:
				case 557:
				case 558:
				case 559:
				case 560:
				case 561:
				case 562:
				case 563:
				case 564:
				case 565:
				case 566:
				case 567:
				case 568:
				case 569:
				case 572:
				case 574:
				case 575:
				case 576:
				case 577:
				case 578:
				case 579:
				case 580:
				case 581:
				case 582:
				case 583:
				case 584:
				case 586:
				case 587:
				case 588:
				case 589:
				case 590:
				case 591:
				case 592:
				case 593:
				case 594:
				case 595:
				case 596:
				case 597:
				case 598:
				case 599:
				case 600:
				case 602:
				case 603:
				case 604:
				case 605:
				case 606:
				case 607:
				case 608:
				case 609:
				case 610:
				case 611:
				case 612:
				case 613:
				case 614:
				case 615:
				case 616:
				case 617:
				case 618:
				case 619:
				case 620:
				case 621:
				case 622:
				case 623:
				case 624:
				case 625:
				case 626:
				case 627:
				case 628:
				case 629:
				case 630:
				case 632:
				case 633:
				case 634:
				case 635:
				case 636:
				case 637:
				case 638:
				case 639:
				case 640:
				case 641:
				case 642:
				case 643:
				case 644:
				case 645:
				case 646:
				case 647:
				case 648:
				case 649:
				case 650:
				case 651:
				case 653:
				case 654:
				case 655:
				case 656:
				case 657:
				case 658:
				case 659:
				case 660:
				case 661:
				case 662:
				case 663:
				case 664:
				case 665:
				case 666:
				case 667:
				case 668:
				case 670:
				case 671:
				case 672:
				case 673:
				case 674:
				case 675:
				case 676:
				case 677:
				case 678:
				case 679:
				case 680:
				case 681:
				case 682:
				case 683:
				case 684:
				case 685:
				case 686:
				case 687:
				case 689:
				case 690:
				case 692:
				case 693:
				case 694:
				case 696:
				case 697:
				case 698:
				case 699:
				case 700:
				case 701:
				case 702:
				case 703:
				case 704:
				case 705:
				case 706:
				case 707:
				case 708:
				case 709:
				case 710:
				case 711:
				case 712:
				case 713:
				case 714:
				case 715:
				case 716:
				case 717:
				case 718:
				case 719:
				case 720:
				case 721:
				case 722:
				case 723:
				case 724:
				case 725:
				case 726:
				case 727:
				case 728:
				case 729:
				case 730:
				case 731:
				case 732:
				case 733:
				case 734:
				case 735:
				case 736:
				case 737:
				case 738:
				case 739:
				case 740:
				case 741:
				case 742:
				case 743:
				case 744:
				case 745:
				case 746:
				case 747:
				case 748:
				case 749:
				case 750:
				case 751:
				case 752:
				case 753:
				case 754:
				case 755:
				case 756:
				case 758:
				case 759:
				case 760:
				case 761:
				case 762:
				case 763:
				case 764:
				case 765:
				case 766:
				case 767:
				case 768:
				case 769:
				case 770:
				case 771:
				case 772:
				case 773:
				case 774:
				case 775:
				case 777:
				case 778:
				case 779:
				case 780:
				case 781:
				case 782:
				case 783:
				case 784:
				case 785:
				case 786:
				case 787:
				case 788:
				case 789:
				case 790:
				case 791:
				case 792:
				case 793:
				case 794:
				case 795:
				case 796:
				case 797:
				case 798:
				case 799:
				case 800:
				case 801:
				case 802:
				case 803:
				case 804:
				case 805:
				case 806:
				case 807:
				case 808:
				case 809:
				case 810:
				case 811:
				case 812:
				case 813:
				case 814:
				case 815:
				case 816:
				case 817:
				case 818:
				case 819:
				case 820:
				case 821:
				case 822:
				case 823:
				case 824:
				case 825:
				case 826:
				case 827:
				case 828:
				case 829:
				case 830:
				case 831:
				case 832:
				case 833:
				case 834:
				case 835:
				case 836:
				case 837:
				case 838:
				case 839:
				case 840:
				case 841:
				case 843:
				case 844:
				case 845:
				case 846:
				case 847:
				case 848:
				case 849:
				case 850:
				case 851:
				case 852:
				case 853:
				case 854:
				case 855:
				case 856:
				case 857:
				case 858:
				case 859:
				case 861:
				case 862:
				case 863:
				case 864:
				case 865:
				case 866:
				case 867:
				case 868:
				case 869:
				case 870:
				case 871:
				case 872:
				case 873:
				case 874:
				case 875:
				case 876:
				case 877:
				case 878:
				case 879:
				case 880:
				case 881:
				case 882:
				case 883:
				case 884:
				case 885:
				case 886:
				case 888:
				case 889:
				case 890:
				case 891:
				case 892:
				case 893:
				case 894:
				case 895:
				case 896:
				case 897:
				case 898:
				case 899:
				case 900:
				case 901:
				case 902:
				case 903:
				case 904:
				case 905:
				case 906:
				case 907:
				case 908:
				case 909:
				case 910:
				case 911:
				case 912:
				case 913:
				case 914:
				case 915:
				case 916:
				case 917:
				case 918:
				case 919:
				case 920:
				case 921:
				case 922:
				case 923:
				case 924:
				case 925:
				case 926:
				case 927:
				case 928:
				case 929:
				case 930:
				case 931:
				case 932:
				case 933:
				case 934:
				case 935:
				case 936:
				case 937:
				case 938:
				case 939:
				case 940:
				case 941:
				case 942:
				case 943:
				case 944:
				case 945:
				case 946:
				case 947:
				case 948:
				case 949:
				case 950:
				case 951:
				case 952:
				case 954:
				case 955:
				case 956:
				case 957:
				case 958:
				case 959:
				case 960:
				case 961:
				case 962:
				case 963:
				case 964:
				case 965:
				case 966:
				case 967:
				case 968:
				case 969:
				case 970:
				case 971:
				case 972:
				case 973:
				case 974:
				case 975:
				case 976:
				case 977:
				case 978:
				case 979:
				case 980:
				case 981:
				case 982:
				case 983:
				case 984:
				case 985:
				case 986:
				case 987:
				case 988:
				case 989:
				case 990:
				case 991:
				case 992:
				case 993:
				case 994:
				case 995:
				case 996:
				case 997:
				case 998:
				case 999:
				case 1000:
				case 1001:
				case 1002:
				case 1003:
				case 1004:
				case 1005:
				case 1006:
				case 1007:
				case 1008:
				case 1009:
				case 1010:
				case 1011:
				case 1012:
				case 1013:
				case 1014:
				case 1015:
				case 1016:
				case 1017:
				case 1018:
				case 1019:
				case 1020:
				case 1021:
				case 1022:
				case 1023:
				case 1024:
				case 1025:
				case 1026:
				case 1027:
				case 1028:
				case 1029:
				case 1030:
				case 1031:
				case 1032:
				case 1033:
				case 1034:
				case 1035:
				case 1036:
				case 1037:
				case 1038:
				case 1039:
				case 1040:
				case 1041:
				case 1042:
				case 1043:
				case 1044:
				case 1045:
				case 1046:
				case 1047:
				case 1048:
				case 1049:
				case 1050:
				case 1051:
				case 1052:
				case 1053:
				case 1054:
				case 1055:
				case 1056:
				case 1057:
				case 1058:
				case 1059:
				case 1060:
				case 1061:
				case 1062:
				case 1063:
				case 1064:
				case 1065:
				case 1066:
				case 1067:
				case 1068:
				case 1069:
				case 1070:
				case 1071:
				case 1072:
				case 1074:
				case 1075:
				case 1076:
				case 1077:
				case 1078:
				case 1079:
				case 1080:
				case 1081:
				case 1082:
				case 1083:
				case 1084:
				case 1085:
				case 1086:
				case 1087:
				case 1089:
				case 1090:
				case 1091:
				case 1092:
				case 1093:
				case 1094:
				case 1095:
				case 1096:
				case 1098:
				case 1099:
				case 1100:
				case 1101:
				case 1102:
				case 1103:
				case 1104:
				case 1105:
				case 1106:
				case 1107:
				case 1108:
				case 1109:
				case 1110:
				case 1111:
				case 1112:
				case 1113:
				case 1114:
				case 1116:
				case 1117:
				case 1118:
				case 1119:
				case 1120:
				case 1121:
				case 1122:
				case 1123:
				case 1124:
				case 1125:
				case 1127:
				case 1129:
				case 1130:
				case 1131:
				case 1132:
				case 1133:
				case 1134:
				case 1135:
				case 1136:
				case 1137:
				case 1138:
				case 1139:
				case 1140:
				case 1142:
				case 1143:
				case 1144:
				case 1145:
				case 1146:
				case 1147:
				case 1148:
				case 1149:
				case 1150:
				case 1151:
				case 1152:
				case 1153:
				case 1154:
				case 1155:
				case 1156:
				case 1157:
				case 1158:
				case 1159:
				case 1160:
				case 1161:
				case 1162:
				case 1163:
				case 1164:
				case 1165:
				case 1166:
				case 1167:
				case 1169:
				case 1170:
				case 1171:
				case 1173:
				case 1174:
				case 1175:
				case 1176:
				case 1177:
				case 1178:
				case 1179:
				case 1180:
				case 1181:
				case 1182:
				case 1183:
				case 1184:
				case 1185:
				case 1186:
				case 1187:
				case 1188:
				case 1189:
				case 1190:
				case 1191:
				case 1192:
				case 1193:
				case 1194:
				case 1195:
				case 1197:
				case 1198:
				case 1199:
				case 1200:
				case 1201:
				case 1202:
				case 1203:
				case 1204:
				case 1205:
				case 1206:
				case 1207:
				case 1208:
				case 1209:
				case 1210:
				case 1211:
				case 1212:
				case 1213:
				case 1214:
				case 1215:
				case 1216:
				case 1217:
				case 1218:
				case 1219:
				case 1220:
				case 1221:
				case 1222:
				case 1223:
				case 1224:
				case 1225:
				case 1226:
				case 1228:
				case 1229:
				case 1230:
				case 1231:
				case 1232:
				case 1236:
				case 1237:
				case 1241:
				case 1242:
				case 1243:
				case 1244:
				case 1245:
				case 1246:
				case 1247:
				case 1248:
				case 1249:
				case 1250:
				case 1252:
				case 1253:
				case 1254:
				case 1255:
				case 1256:
				case 1257:
				case 1258:
				case 1259:
				case 1260:
				case 1261:
				case 1262:
				case 1263:
				case 1264:
				case 1265:
				case 1266:
				case 1267:
				case 1268:
				case 1269:
				case 1270:
				case 1271:
				case 1272:
				case 1273:
				case 1274:
				case 1275:
				case 1276:
				case 1277:
				case 1278:
				case 1279:
				case 1280:
				case 1281:
				case 1282:
				case 1283:
				case 1284:
				case 1285:
				case 1286:
				case 1287:
				case 1288:
				case 1289:
				case 1290:
				case 1291:
				case 1292:
				case 1293:
				case 1294:
				case 1295:
				case 1296:
				case 1297:
				case 1298:
				case 1299:
				case 1300:
				case 1301:
				case 1302:
				case 1303:
				case 1304:
				case 1305:
				case 1306:
				case 1308:
				case 1309:
				case 1310:
				case 1311:
				case 1312:
				case 1313:
				case 1314:
				case 1315:
				case 1316:
				case 1317:
				case 1318:
				case 1319:
				case 1320:
				case 1321:
				case 1322:
				case 1323:
				case 1325:
				case 1326:
				case 1327:
				case 1328:
				case 1329:
				case 1330:
				case 1331:
				case 1332:
				case 1333:
				case 1334:
				case 1335:
				case 1336:
				case 1337:
				case 1338:
				case 1339:
				case 1340:
				case 1341:
				case 1342:
				case 1343:
				case 1344:
				case 1345:
				case 1346:
				case 1347:
				case 1348:
				case 1349:
				case 1350:
				case 1351:
				case 1352:
				case 1353:
				case 1354:
				case 1355:
				case 1356:
				case 1357:
				case 1358:
				case 1359:
				case 1360:
				case 1361:
				case 1362:
				case 1363:
				case 1364:
				case 1365:
				case 1366:
				case 1367:
				case 1368:
				case 1369:
				case 1370:
				case 1371:
				case 1372:
				case 1373:
				case 1374:
				case 1375:
				case 1376:
				case 1377:
				case 1378:
				case 1379:
				case 1380:
				case 1381:
				case 1382:
				case 1383:
				case 1384:
				case 1385:
				case 1386:
				case 1387:
				case 1388:
				case 1389:
				case 1390:
				case 1391:
				case 1392:
				case 1393:
				case 1394:
				case 1395:
				case 1396:
				case 1397:
				case 1399:
				case 1400:
				case 1401:
				case 1402:
				case 1403:
				case 1404:
				case 1405:
				case 1406:
				case 1407:
				case 1408:
				case 1409:
				case 1410:
				case 1411:
				case 1412:
				case 1413:
				case 1414:
				case 1416:
				case 1417:
				case 1418:
				case 1419:
				case 1420:
				case 1421:
				case 1422:
				case 1423:
				case 1424:
				case 1425:
				case 1426:
				case 1427:
				case 1428:
				case 1429:
				case 1430:
				case 1431:
				case 1432:
				case 1433:
				case 1435:
				case 1436:
				case 1437:
				case 1438:
				case 1439:
				case 1440:
				case 1441:
				case 1442:
				case 1443:
				case 1444:
				case 1445:
				case 1446:
				case 1447:
				case 1448:
				case 1449:
				case 1450:
				case 1451:
				case 1452:
				case 1453:
				case 1454:
				case 1455:
				case 1456:
				case 1457:
				case 1458:
				case 1459:
				case 1460:
				case 1461:
				case 1462:
				case 1463:
				case 1464:
				case 1465:
				case 1466:
				case 1467:
				case 1468:
				case 1469:
				case 1470:
				case 1471:
				case 1472:
				case 1473:
				case 1474:
				case 1475:
				case 1476:
				case 1477:
				case 1478:
				case 1479:
				case 1480:
				case 1481:
				case 1482:
				case 1483:
				case 1484:
				case 1485:
				case 1486:
				case 1487:
				case 1488:
				case 1489:
				case 1491:
				case 1492:
				case 1493:
				case 1494:
				case 1495:
				case 1496:
				case 1497:
				case 1499:
				case 1500:
				case 1501:
				case 1502:
				case 1503:
				case 1504:
				case 1505:
				case 1506:
				case 1507:
				case 1508:
				case 1509:
				case 1510:
				case 1511:
				case 1512:
				case 1513:
				case 1514:
				case 1515:
				case 1516:
				case 1518:
				case 1519:
				case 1520:
				case 1521:
				case 1522:
				case 1523:
				case 1524:
				case 1525:
				case 1526:
				case 1527:
				case 1528:
				case 1529:
				case 1530:
				case 1531:
				case 1532:
				case 1533:
				case 1534:
				case 1536:
				case 1537:
				case 1538:
				case 1539:
				case 1540:
				case 1541:
				case 1542:
				case 1543:
				case 1544:
				case 1545:
				case 1546:
				case 1547:
				case 1548:
				case 1549:
				case 1550:
				case 1551:
				case 1552:
				case 1553:
				case 1554:
				case 1555:
				case 1556:
				case 1557:
				case 1558:
				case 1559:
				case 1560:
				case 1561:
				case 1562:
				case 1563:
				case 1564:
				case 1565:
				case 1566:
				case 1567:
				case 1568:
				case 1570:
				case 1571:
				case 1572:
				case 1573:
				case 1574:
				case 1575:
				case 1576:
				case 1577:
				case 1578:
				case 1579:
				case 1580:
				case 1581:
				case 1582:
				case 1583:
				case 1584:
				case 1585:
				case 1586:
				case 1587:
				case 1588:
				case 1589:
				case 1590:
				case 1591:
				case 1592:
				case 1593:
				case 1594:
				case 1595:
				case 1596:
				case 1597:
				case 1598:
				case 1599:
				case 1600:
				case 1601:
				case 1602:
				case 1603:
				case 1604:
				case 1605:
				case 1606:
				case 1607:
				case 1608:
				case 1609:
				case 1610:
				case 1611:
				case 1612:
				case 1613:
				case 1614:
				case 1615:
				case 1616:
				case 1617:
				case 1618:
				case 1619:
				case 1620:
				case 1621:
				case 1622:
				case 1623:
				case 1624:
				case 1625:
				case 1626:
				case 1628:
				case 1629:
				case 1630:
				case 1631:
				case 1632:
				case 1633:
				case 1634:
				case 1635:
				case 1636:
				case 1637:
				case 1638:
				case 1639:
				case 1640:
				case 1641:
				case 1642:
				case 1643:
				case 1644:
				case 1645:
				case 1646:
				case 1647:
				case 1648:
				case 1649:
				case 1650:
				case 1651:
				case 1652:
				case 1653:
				case 1654:
				case 1655:
				case 1656:
				case 1657:
				case 1658:
				case 1659:
				case 1660:
				case 1661:
				case 1662:
				case 1663:
				case 1664:
				case 1665:
				case 1666:
				case 1667:
				case 1668:
				case 1669:
				case 1670:
				case 1671:
				case 1672:
				case 1673:
				case 1674:
				case 1675:
				case 1676:
				case 1677:
				case 1678:
				case 1679:
				case 1680:
				case 1681:
				case 1682:
				case 1683:
				case 1684:
				case 1685:
				case 1686:
				case 1687:
				case 1688:
				case 1689:
				case 1690:
				case 1691:
				case 1692:
				case 1693:
				case 1694:
				case 1695:
				case 1696:
				case 1697:
				case 1698:
				case 1699:
				case 1700:
				case 1701:
				case 1702:
				case 1703:
				case 1704:
				case 1705:
				case 1706:
				case 1707:
				case 1708:
				case 1709:
				case 1710:
				case 1711:
				case 1712:
				case 1713:
				case 1714:
				case 1715:
				case 1716:
				case 1717:
				case 1718:
				case 1719:
				case 1720:
				case 1721:
				case 1722:
				case 1723:
				case 1724:
				case 1725:
				case 1726:
				case 1727:
				case 1728:
				case 1729:
				case 1730:
				case 1731:
				case 1732:
				case 1733:
				case 1734:
				case 1735:
				case 1736:
				case 1737:
				case 1738:
				case 1739:
				case 1740:
				case 1741:
				case 1742:
				case 1743:
				case 1744:
				case 1745:
				case 1746:
				case 1747:
				case 1748:
				case 1749:
				case 1750:
				case 1751:
				case 1752:
				case 1753:
				case 1754:
				case 1755:
				case 1756:
				case 1757:
				case 1758:
				case 1759:
				case 1760:
				case 1761:
				case 1762:
				case 1763:
				case 1764:
				case 1765:
				case 1766:
				case 1767:
				case 1768:
				case 1769:
				case 1770:
				case 1771:
				case 1772:
				case 1773:
				case 1774:
				case 1775:
				case 1776:
				case 1777:
				case 1778:
				case 1779:
				case 1780:
				case 1781:
				case 1782:
				case 1783:
				case 1784:
				case 1785:
				case 1786:
				case 1787:
				case 1788:
				case 1789:
				case 1790:
				case 1791:
				case 1792:
				case 1793:
				case 1794:
				case 1795:
				case 1796:
				case 1797:
				case 1798:
				case 1799:
				case 1800:
				case 1801:
				case 1802:
				case 1803:
				case 1804:
				case 1805:
				case 1806:
				case 1807:
				case 1808:
				case 1809:
				case 1810:
				case 1811:
				case 1812:
				case 1813:
				case 1814:
				case 1815:
				case 1816:
				case 1817:
				case 1818:
				case 1819:
				case 1820:
				case 1821:
				case 1822:
				case 1823:
				case 1824:
				case 1825:
				case 1826:
				case 1827:
				case 1828:
				case 1829:
				case 1830:
				case 1831:
				case 1832:
				case 1833:
				case 1834:
				case 1835:
				case 1836:
				case 1837:
				case 1838:
				case 1839:
				case 1840:
				case 1841:
				case 1842:
				case 1843:
				case 1844:
				case 1845:
				case 1846:
				case 1847:
				case 1848:
				case 1849:
				case 1850:
				case 1851:
				case 1852:
				case 1853:
				case 1854:
				case 1855:
				case 1856:
				case 1857:
				case 1858:
				case 1859:
				case 1860:
				case 1861:
				case 1862:
				case 1863:
				case 1864:
				case 1865:
				case 1866:
				case 1867:
				case 1868:
				case 1869:
				case 1870:
				case 1871:
				case 1872:
				case 1873:
				case 1874:
				case 1875:
				case 1876:
				case 1877:
				case 1878:
				case 1879:
				case 1880:
				case 1881:
				case 1882:
				case 1883:
				case 1884:
				case 1885:
				case 1886:
				case 1887:
				case 1888:
				case 1889:
				case 1890:
				case 1891:
				case 1892:
				case 1893:
				case 1894:
				case 1895:
				case 1896:
				case 1897:
				case 1898:
				case 1899:
				case 1900:
				case 1901:
				case 1902:
				case 1903:
				case 1904:
				case 1905:
				case 1906:
				case 1907:
				case 1908:
				case 1909:
				case 1910:
				case 1911:
				case 1912:
				case 1913:
				case 1914:
				case 1915:
				case 1916:
				case 1917:
				case 1918:
				case 1919:
				case 1920:
				case 1921:
				case 1922:
				case 1923:
				case 1924:
				case 1925:
				case 1926:
				case 1927:
				case 1928:
				case 1929:
				case 1930:
				case 1931:
				case 1932:
				case 1933:
				case 1934:
				case 1935:
				case 1936:
				case 1937:
				case 1939:
				case 1940:
				case 1941:
				case 1942:
				case 1943:
				case 1944:
				case 1945:
				case 1946:
				case 1947:
				case 1948:
				case 1949:
				case 1950:
				case 1951:
				case 1952:
				case 1953:
				case 1954:
				case 1955:
				case 1956:
				case 1957:
				case 1958:
				case 1959:
				case 1960:
				case 1961:
				case 1962:
				case 1963:
				case 1965:
				case 1966:
				case 1967:
				case 1968:
				case 1969:
				case 1970:
				case 1971:
				case 1972:
				case 1973:
				case 1974:
				case 1975:
				case 1976:
				case 1977:
				case 1978:
				case 1979:
				case 1980:
				case 1981:
				case 1982:
				case 1983:
				case 1984:
				case 1985:
				case 1986:
				case 1987:
				case 1988:
				case 1989:
				case 1990:
				case 1991:
				case 1992:
				case 1993:
				case 1994:
				case 1995:
				case 1996:
				case 1997:
				case 1998:
				case 1999:
				case 2000:
				case 2003:
				case 2004:
				case 2005:
				case 2006:
				case 2007:
				case 2008:
				case 2009:
				case 2010:
				case 2011:
				case 2012:
				case 2013:
				case 2014:
				case 2015:
				case 2016:
				case 2017:
				case 2018:
				case 2019:
				case 2020:
				case 2021:
				case 2022:
				case 2023:
				case 2024:
				case 2026:
				case 2027:
				case 2028:
				case 2029:
				case 2030:
				case 2031:
				case 2032:
				case 2033:
				case 2034:
				case 2035:
				case 2036:
				case 2037:
				case 2038:
				case 2039:
				case 2040:
				case 2041:
				case 2042:
				case 2043:
				case 2044:
				case 2045:
				case 2046:
				case 2047:
				case 2048:
				case 2049:
				case 2050:
				case 2051:
				case 2052:
				case 2053:
				case 2054:
				case 2055:
				case 2056:
				case 2057:
				case 2058:
				case 2059:
				case 2060:
				case 2061:
				case 2062:
				case 2063:
				case 2064:
				case 2065:
				case 2066:
				case 2067:
				case 2068:
				case 2069:
				case 2070:
				case 2071:
				case 2072:
				case 2074:
				case 2075:
				case 2076:
				case 2077:
				case 2078:
				case 2079:
				case 2080:
				case 2081:
				case 2082:
				case 2083:
				case 2084:
				case 2085:
				case 2086:
				case 2087:
				case 2088:
				case 2089:
				case 2090:
				case 2091:
				case 2092:
				case 2093:
				case 2094:
				case 2095:
				case 2096:
				case 2097:
				case 2098:
				case 2100:
				case 2101:
				case 2102:
				case 2103:
				case 2104:
				case 2105:
				case 2106:
				case 2107:
				case 2108:
				case 2109:
				case 2110:
				case 2111:
				case 2112:
				case 2113:
				case 2115:
				case 2116:
				case 2117:
				case 2118:
				case 2119:
				case 2120:
				case 2122:
				case 2123:
				case 2124:
				case 2125:
				case 2126:
				case 2128:
				case 2129:
				case 2130:
				case 2131:
				case 2132:
				case 2133:
				case 2134:
				case 2135:
				case 2136:
				case 2137:
				case 2138:
				case 2139:
				case 2140:
				case 2141:
				case 2142:
				case 2143:
				case 2145:
				case 2146:
				case 2147:
				case 2148:
				case 2149:
				case 2150:
				case 2151:
				case 2152:
				case 2153:
				case 2154:
				case 2155:
				case 2156:
				case 2157:
				case 2158:
				case 2159:
				case 2160:
				case 2161:
				case 2162:
				case 2163:
				case 2164:
				case 2165:
				case 2166:
				case 2168:
				case 2169:
				case 2170:
				case 2171:
				case 2172:
				case 2173:
				case 2174:
				case 2175:
				case 2176:
				case 2177:
				case 2178:
				case 2179:
				case 2180:
				case 2181:
				case 2182:
				case 2183:
				case 2184:
				case 2185:
				case 2186:
				case 2187:
				case 2188:
				case 2189:
				case 2191:
				case 2192:
				case 2193:
				case 2194:
				case 2195:
				case 2196:
				case 2197:
				case 2198:
				case 2199:
				case 2200:
				case 2201:
				case 2202:
				case 2203:
				case 2204:
				case 2205:
				case 2206:
				case 2207:
				case 2208:
				case 2209:
				case 2210:
				case 2211:
				case 2216:
				case 2220:
				case 2246:
				case 2252:
					{
					this.state = 8381;
					this.identifier();
					}
					break;
				case 351:
					{
					this.state = 8382;
					this.match(PlSqlParser.DEFAULT);
					}
					break;
				default:
					throw new NoViableAltException(this);
				}
				this.state = 8387;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				do {
					{
					{
					this.state = 8385;
					this.match(PlSqlParser.COMMA);
					this.state = 8386;
					this.identifier();
					}
					}
					this.state = 8389;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				} while (_la===2229);
				this.state = 8391;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
			this.state = 8395;
			this.match(PlSqlParser.SEMICOLON);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public record_type_def(): Record_type_defContext {
		let localctx: Record_type_defContext = new Record_type_defContext(this, this._ctx, this.state);
		this.enterRule(localctx, 936, PlSqlParser.RULE_record_type_def);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 8397;
			this.match(PlSqlParser.RECORD);
			this.state = 8398;
			this.match(PlSqlParser.LEFT_PAREN);
			this.state = 8399;
			this.field_spec();
			this.state = 8404;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			while (_la===2229) {
				{
				{
				this.state = 8400;
				this.match(PlSqlParser.COMMA);
				this.state = 8401;
				this.field_spec();
				}
				}
				this.state = 8406;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			}
			this.state = 8407;
			this.match(PlSqlParser.RIGHT_PAREN);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public field_spec(): Field_specContext {
		let localctx: Field_specContext = new Field_specContext(this, this._ctx, this.state);
		this.enterRule(localctx, 938, PlSqlParser.RULE_field_spec);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 8409;
			this.column_name();
			this.state = 8411;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & 2684286839) !== 0) || ((((_la - 64)) & ~0x1F) === 0 && ((1 << (_la - 64)) & 3220168703) !== 0) || ((((_la - 96)) & ~0x1F) === 0 && ((1 << (_la - 96)) & 4294965247) !== 0) || ((((_la - 128)) & ~0x1F) === 0 && ((1 << (_la - 128)) & 2147221503) !== 0) || ((((_la - 160)) & ~0x1F) === 0 && ((1 << (_la - 160)) & 4293910527) !== 0) || ((((_la - 192)) & ~0x1F) === 0 && ((1 << (_la - 192)) & 4294967295) !== 0) || ((((_la - 224)) & ~0x1F) === 0 && ((1 << (_la - 224)) & 4160749311) !== 0) || ((((_la - 256)) & ~0x1F) === 0 && ((1 << (_la - 256)) & 4294967295) !== 0) || ((((_la - 289)) & ~0x1F) === 0 && ((1 << (_la - 289)) & 2147483647) !== 0) || ((((_la - 321)) & ~0x1F) === 0 && ((1 << (_la - 321)) & 3221225471) !== 0) || ((((_la - 353)) & ~0x1F) === 0 && ((1 << (_la - 353)) & 4294705151) !== 0) || ((((_la - 385)) & ~0x1F) === 0 && ((1 << (_la - 385)) & 2080372479) !== 0) || ((((_la - 417)) & ~0x1F) === 0 && ((1 << (_la - 417)) & 4026433535) !== 0) || ((((_la - 449)) & ~0x1F) === 0 && ((1 << (_la - 449)) & 4261412863) !== 0) || ((((_la - 481)) & ~0x1F) === 0 && ((1 << (_la - 481)) & 4294967295) !== 0) || ((((_la - 513)) & ~0x1F) === 0 && ((1 << (_la - 513)) & 4294967295) !== 0) || ((((_la - 545)) & ~0x1F) === 0 && ((1 << (_la - 545)) & 3925868029) !== 0) || ((((_la - 577)) & ~0x1F) === 0 && ((1 << (_la - 577)) & 4278189823) !== 0) || ((((_la - 609)) & ~0x1F) === 0 && ((1 << (_la - 609)) & 4290772991) !== 0) || ((((_la - 641)) & ~0x1F) === 0 && ((1 << (_la - 641)) & 4026529791) !== 0) || ((((_la - 673)) & ~0x1F) === 0 && ((1 << (_la - 673)) & 4290478079) !== 0) || ((((_la - 705)) & ~0x1F) === 0 && ((1 << (_la - 705)) & 4294967295) !== 0) || ((((_la - 737)) & ~0x1F) === 0 && ((1 << (_la - 737)) & 4293918719) !== 0) || ((((_la - 769)) & ~0x1F) === 0 && ((1 << (_la - 769)) & 4294967167) !== 0) || ((((_la - 801)) & ~0x1F) === 0 && ((1 << (_la - 801)) & 4294967295) !== 0) || ((((_la - 833)) & ~0x1F) === 0 && ((1 << (_la - 833)) & 4160749055) !== 0) || ((((_la - 865)) & ~0x1F) === 0 && ((1 << (_la - 865)) & 4294967295) !== 0) || ((((_la - 897)) & ~0x1F) === 0 && ((1 << (_la - 897)) & 4294967295) !== 0) || ((((_la - 929)) & ~0x1F) === 0 && ((1 << (_la - 929)) & 4278190079) !== 0) || ((((_la - 961)) & ~0x1F) === 0 && ((1 << (_la - 961)) & 4294967295) !== 0) || ((((_la - 993)) & ~0x1F) === 0 && ((1 << (_la - 993)) & 4294967295) !== 0) || ((((_la - 1025)) & ~0x1F) === 0 && ((1 << (_la - 1025)) & 4294967295) !== 0) || ((((_la - 1057)) & ~0x1F) === 0 && ((1 << (_la - 1057)) & 2147418111) !== 0) || ((((_la - 1089)) & ~0x1F) === 0 && ((1 << (_la - 1089)) & 4227858175) !== 0) || ((((_la - 1121)) & ~0x1F) === 0 && ((1 << (_la - 1121)) & 4293918559) !== 0) || ((((_la - 1153)) & ~0x1F) === 0 && ((1 << (_la - 1153)) & 4294410239) !== 0) || ((((_la - 1185)) & ~0x1F) === 0 && ((1 << (_la - 1185)) & 4294965247) !== 0) || ((((_la - 1217)) & ~0x1F) === 0 && ((1 << (_la - 1217)) & 4279827455) !== 0) || ((((_la - 1249)) & ~0x1F) === 0 && ((1 << (_la - 1249)) & 4294967291) !== 0) || ((((_la - 1281)) & ~0x1F) === 0 && ((1 << (_la - 1281)) & 4227858431) !== 0) || ((((_la - 1313)) & ~0x1F) === 0 && ((1 << (_la - 1313)) & 4294965247) !== 0) || ((((_la - 1345)) & ~0x1F) === 0 && ((1 << (_la - 1345)) & 4294967295) !== 0) || ((((_la - 1377)) & ~0x1F) === 0 && ((1 << (_la - 1377)) & 4292870143) !== 0) || ((((_la - 1409)) & ~0x1F) === 0 && ((1 << (_la - 1409)) & 4261412799) !== 0) || ((((_la - 1441)) & ~0x1F) === 0 && ((1 << (_la - 1441)) & 4294967295) !== 0) || ((((_la - 1473)) & ~0x1F) === 0 && ((1 << (_la - 1473)) & 4261281791) !== 0) || ((((_la - 1505)) & ~0x1F) === 0 && ((1 << (_la - 1505)) & 3221221375) !== 0) || ((((_la - 1537)) & ~0x1F) === 0 && ((1 << (_la - 1537)) & 4294967295) !== 0) || ((((_la - 1570)) & ~0x1F) === 0 && ((1 << (_la - 1570)) & 4294967295) !== 0) || ((((_la - 1602)) & ~0x1F) === 0 && ((1 << (_la - 1602)) & 4261412863) !== 0) || ((((_la - 1634)) & ~0x1F) === 0 && ((1 << (_la - 1634)) & 4294967295) !== 0) || ((((_la - 1666)) & ~0x1F) === 0 && ((1 << (_la - 1666)) & 4294967295) !== 0) || ((((_la - 1698)) & ~0x1F) === 0 && ((1 << (_la - 1698)) & 4294967295) !== 0) || ((((_la - 1730)) & ~0x1F) === 0 && ((1 << (_la - 1730)) & 4294967295) !== 0) || ((((_la - 1762)) & ~0x1F) === 0 && ((1 << (_la - 1762)) & 4294967295) !== 0) || ((((_la - 1794)) & ~0x1F) === 0 && ((1 << (_la - 1794)) & 4294967295) !== 0) || ((((_la - 1826)) & ~0x1F) === 0 && ((1 << (_la - 1826)) & 4294967295) !== 0) || ((((_la - 1858)) & ~0x1F) === 0 && ((1 << (_la - 1858)) & 4294967295) !== 0) || ((((_la - 1890)) & ~0x1F) === 0 && ((1 << (_la - 1890)) & 4294967295) !== 0) || ((((_la - 1922)) & ~0x1F) === 0 && ((1 << (_la - 1922)) & 4294901759) !== 0) || ((((_la - 1954)) & ~0x1F) === 0 && ((1 << (_la - 1954)) & 4294966271) !== 0) || ((((_la - 1986)) & ~0x1F) === 0 && ((1 << (_la - 1986)) & 4294868991) !== 0) || ((((_la - 2018)) & ~0x1F) === 0 && ((1 << (_la - 2018)) & 4294967167) !== 0) || ((((_la - 2050)) & ~0x1F) === 0 && ((1 << (_la - 2050)) & 4286578687) !== 0) || ((((_la - 2082)) & ~0x1F) === 0 && ((1 << (_la - 2082)) & 4294836223) !== 0) || ((((_la - 2115)) & ~0x1F) === 0 && ((1 << (_la - 2115)) & 3758092223) !== 0) || ((((_la - 2147)) & ~0x1F) === 0 && ((1 << (_la - 2147)) & 4293918719) !== 0) || ((((_la - 2179)) & ~0x1F) === 0 && ((1 << (_la - 2179)) & 4294965247) !== 0) || ((((_la - 2211)) & ~0x1F) === 0 && ((1 << (_la - 2211)) & 545) !== 0) || _la===2252) {
				{
				this.state = 8410;
				this.type_spec();
				}
			}

			this.state = 8415;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1073) {
				{
				this.state = 8413;
				this.match(PlSqlParser.NOT);
				this.state = 8414;
				this.match(PlSqlParser.NULL_);
				}
			}

			this.state = 8418;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===351 || _la===2232) {
				{
				this.state = 8417;
				this.default_value_part();
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public ref_cursor_type_def(): Ref_cursor_type_defContext {
		let localctx: Ref_cursor_type_defContext = new Ref_cursor_type_defContext(this, this._ctx, this.state);
		this.enterRule(localctx, 940, PlSqlParser.RULE_ref_cursor_type_def);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 8420;
			this.match(PlSqlParser.REF);
			this.state = 8421;
			this.match(PlSqlParser.CURSOR);
			this.state = 8424;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1431) {
				{
				this.state = 8422;
				this.match(PlSqlParser.RETURN);
				this.state = 8423;
				this.type_spec();
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public type_declaration(): Type_declarationContext {
		let localctx: Type_declarationContext = new Type_declarationContext(this, this._ctx, this.state);
		this.enterRule(localctx, 942, PlSqlParser.RULE_type_declaration);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 8426;
			this.match(PlSqlParser.TYPE);
			this.state = 8427;
			this.identifier();
			this.state = 8428;
			this.match(PlSqlParser.IS);
			this.state = 8433;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 1912:
				{
				this.state = 8429;
				this.table_type_def();
				}
				break;
			case 2080:
			case 2082:
				{
				this.state = 8430;
				this.varray_type_def();
				}
				break;
			case 1359:
				{
				this.state = 8431;
				this.record_type_def();
				}
				break;
			case 1376:
				{
				this.state = 8432;
				this.ref_cursor_type_def();
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
			this.state = 8435;
			this.match(PlSqlParser.SEMICOLON);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public table_type_def(): Table_type_defContext {
		let localctx: Table_type_defContext = new Table_type_defContext(this, this._ctx, this.state);
		this.enterRule(localctx, 944, PlSqlParser.RULE_table_type_def);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 8437;
			this.match(PlSqlParser.TABLE);
			this.state = 8438;
			this.match(PlSqlParser.OF);
			this.state = 8439;
			this.type_spec();
			this.state = 8441;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===627 || _la===631) {
				{
				this.state = 8440;
				this.table_indexed_by_part();
				}
			}

			this.state = 8445;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1073) {
				{
				this.state = 8443;
				this.match(PlSqlParser.NOT);
				this.state = 8444;
				this.match(PlSqlParser.NULL_);
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public table_indexed_by_part(): Table_indexed_by_partContext {
		let localctx: Table_indexed_by_partContext = new Table_indexed_by_partContext(this, this._ctx, this.state);
		this.enterRule(localctx, 946, PlSqlParser.RULE_table_indexed_by_part);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 8449;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 627:
				{
				this.state = 8447;
				localctx._idx1 = this.match(PlSqlParser.INDEXED);
				}
				break;
			case 631:
				{
				this.state = 8448;
				localctx._idx2 = this.match(PlSqlParser.INDEX);
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
			this.state = 8451;
			this.match(PlSqlParser.BY);
			this.state = 8452;
			this.type_spec();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public varray_type_def(): Varray_type_defContext {
		let localctx: Varray_type_defContext = new Varray_type_defContext(this, this._ctx, this.state);
		this.enterRule(localctx, 948, PlSqlParser.RULE_varray_type_def);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 8457;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 2080:
				{
				this.state = 8454;
				this.match(PlSqlParser.VARRAY);
				}
				break;
			case 2082:
				{
				this.state = 8455;
				this.match(PlSqlParser.VARYING);
				this.state = 8456;
				this.match(PlSqlParser.ARRAY);
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
			this.state = 8459;
			this.match(PlSqlParser.LEFT_PAREN);
			this.state = 8460;
			this.expression();
			this.state = 8461;
			this.match(PlSqlParser.RIGHT_PAREN);
			this.state = 8462;
			this.match(PlSqlParser.OF);
			this.state = 8463;
			this.type_spec();
			this.state = 8466;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1093, this._ctx) ) {
			case 1:
				{
				this.state = 8464;
				this.match(PlSqlParser.NOT);
				this.state = 8465;
				this.match(PlSqlParser.NULL_);
				}
				break;
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public seq_of_statements(): Seq_of_statementsContext {
		let localctx: Seq_of_statementsContext = new Seq_of_statementsContext(this, this._ctx, this.state);
		this.enterRule(localctx, 950, PlSqlParser.RULE_seq_of_statements);
		let _la: number;
		try {
			let _alt: number;
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 8472;
			this._errHandler.sync(this);
			_alt = 1;
			do {
				switch (_alt) {
				case 1:
					{
					this.state = 8472;
					this._errHandler.sync(this);
					switch ( this._interp.adaptivePredict(this._input, 1094, this._ctx) ) {
					case 1:
						{
						this.state = 8468;
						this.statement();
						this.state = 8469;
						_la = this._input.LA(1);
						if(!(_la===-1 || _la===2241)) {
						this._errHandler.recoverInline(this);
						}
						else {
							this._errHandler.reportMatch(this);
						    this.consume();
						}
						}
						break;
					case 2:
						{
						this.state = 8471;
						this.label_declaration();
						}
						break;
					}
					}
					break;
				default:
					throw new NoViableAltException(this);
				}
				this.state = 8474;
				this._errHandler.sync(this);
				_alt = this._interp.adaptivePredict(this._input, 1095, this._ctx);
			} while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public label_declaration(): Label_declarationContext {
		let localctx: Label_declarationContext = new Label_declarationContext(this, this._ctx, this.state);
		this.enterRule(localctx, 952, PlSqlParser.RULE_label_declaration);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 8476;
			localctx._ltp1 = this.match(PlSqlParser.LESS_THAN_OP);
			this.state = 8477;
			this.match(PlSqlParser.LESS_THAN_OP);
			this.state = 8478;
			this.label_name();
			this.state = 8479;
			this.match(PlSqlParser.GREATER_THAN_OP);
			this.state = 8480;
			this.match(PlSqlParser.GREATER_THAN_OP);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public statement(): StatementContext {
		let localctx: StatementContext = new StatementContext(this, this._ctx, this.state);
		this.enterRule(localctx, 954, PlSqlParser.RULE_statement);
		try {
			this.state = 8499;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1096, this._ctx) ) {
			case 1:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 8482;
				this.body();
				}
				break;
			case 2:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 8483;
				this.block();
				}
				break;
			case 3:
				this.enterOuterAlt(localctx, 3);
				{
				this.state = 8484;
				this.assignment_statement();
				}
				break;
			case 4:
				this.enterOuterAlt(localctx, 4);
				{
				this.state = 8485;
				this.continue_statement();
				}
				break;
			case 5:
				this.enterOuterAlt(localctx, 5);
				{
				this.state = 8486;
				this.exit_statement();
				}
				break;
			case 6:
				this.enterOuterAlt(localctx, 6);
				{
				this.state = 8487;
				this.goto_statement();
				}
				break;
			case 7:
				this.enterOuterAlt(localctx, 7);
				{
				this.state = 8488;
				this.if_statement();
				}
				break;
			case 8:
				this.enterOuterAlt(localctx, 8);
				{
				this.state = 8489;
				this.loop_statement();
				}
				break;
			case 9:
				this.enterOuterAlt(localctx, 9);
				{
				this.state = 8490;
				this.forall_statement();
				}
				break;
			case 10:
				this.enterOuterAlt(localctx, 10);
				{
				this.state = 8491;
				this.null_statement();
				}
				break;
			case 11:
				this.enterOuterAlt(localctx, 11);
				{
				this.state = 8492;
				this.raise_statement();
				}
				break;
			case 12:
				this.enterOuterAlt(localctx, 12);
				{
				this.state = 8493;
				this.return_statement();
				}
				break;
			case 13:
				this.enterOuterAlt(localctx, 13);
				{
				this.state = 8494;
				this.case_statement();
				}
				break;
			case 14:
				this.enterOuterAlt(localctx, 14);
				{
				this.state = 8495;
				this.sql_statement();
				}
				break;
			case 15:
				this.enterOuterAlt(localctx, 15);
				{
				this.state = 8496;
				this.function_call();
				}
				break;
			case 16:
				this.enterOuterAlt(localctx, 16);
				{
				this.state = 8497;
				this.pipe_row_statement();
				}
				break;
			case 17:
				this.enterOuterAlt(localctx, 17);
				{
				this.state = 8498;
				this.procedure_call();
				}
				break;
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public swallow_to_semi(): Swallow_to_semiContext {
		let localctx: Swallow_to_semiContext = new Swallow_to_semiContext(this, this._ctx, this.state);
		this.enterRule(localctx, 956, PlSqlParser.RULE_swallow_to_semi);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 8502;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			do {
				{
				{
				this.state = 8501;
				_la = this._input.LA(1);
				if(_la<=0 || _la===2241) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				}
				}
				this.state = 8504;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			} while ((((_la) & ~0x1F) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & 4294967295) !== 0) || ((((_la - 64)) & ~0x1F) === 0 && ((1 << (_la - 64)) & 4294967295) !== 0) || ((((_la - 96)) & ~0x1F) === 0 && ((1 << (_la - 96)) & 4294967295) !== 0) || ((((_la - 128)) & ~0x1F) === 0 && ((1 << (_la - 128)) & 4294967295) !== 0) || ((((_la - 160)) & ~0x1F) === 0 && ((1 << (_la - 160)) & 4294967295) !== 0) || ((((_la - 192)) & ~0x1F) === 0 && ((1 << (_la - 192)) & 4294967295) !== 0) || ((((_la - 224)) & ~0x1F) === 0 && ((1 << (_la - 224)) & 4294967295) !== 0) || ((((_la - 256)) & ~0x1F) === 0 && ((1 << (_la - 256)) & 4294967295) !== 0) || ((((_la - 288)) & ~0x1F) === 0 && ((1 << (_la - 288)) & 4294967295) !== 0) || ((((_la - 320)) & ~0x1F) === 0 && ((1 << (_la - 320)) & 4294967295) !== 0) || ((((_la - 352)) & ~0x1F) === 0 && ((1 << (_la - 352)) & 4294967295) !== 0) || ((((_la - 384)) & ~0x1F) === 0 && ((1 << (_la - 384)) & 4294967295) !== 0) || ((((_la - 416)) & ~0x1F) === 0 && ((1 << (_la - 416)) & 4294967295) !== 0) || ((((_la - 448)) & ~0x1F) === 0 && ((1 << (_la - 448)) & 4294967295) !== 0) || ((((_la - 480)) & ~0x1F) === 0 && ((1 << (_la - 480)) & 4294967295) !== 0) || ((((_la - 512)) & ~0x1F) === 0 && ((1 << (_la - 512)) & 4294967295) !== 0) || ((((_la - 544)) & ~0x1F) === 0 && ((1 << (_la - 544)) & 4294967295) !== 0) || ((((_la - 576)) & ~0x1F) === 0 && ((1 << (_la - 576)) & 4294967295) !== 0) || ((((_la - 608)) & ~0x1F) === 0 && ((1 << (_la - 608)) & 4294967295) !== 0) || ((((_la - 640)) & ~0x1F) === 0 && ((1 << (_la - 640)) & 4294967295) !== 0) || ((((_la - 672)) & ~0x1F) === 0 && ((1 << (_la - 672)) & 4294967295) !== 0) || ((((_la - 704)) & ~0x1F) === 0 && ((1 << (_la - 704)) & 4294967295) !== 0) || ((((_la - 736)) & ~0x1F) === 0 && ((1 << (_la - 736)) & 4294967295) !== 0) || ((((_la - 768)) & ~0x1F) === 0 && ((1 << (_la - 768)) & 4294967295) !== 0) || ((((_la - 800)) & ~0x1F) === 0 && ((1 << (_la - 800)) & 4294967295) !== 0) || ((((_la - 832)) & ~0x1F) === 0 && ((1 << (_la - 832)) & 4294967295) !== 0) || ((((_la - 864)) & ~0x1F) === 0 && ((1 << (_la - 864)) & 4294967295) !== 0) || ((((_la - 896)) & ~0x1F) === 0 && ((1 << (_la - 896)) & 4294967295) !== 0) || ((((_la - 928)) & ~0x1F) === 0 && ((1 << (_la - 928)) & 4294967295) !== 0) || ((((_la - 960)) & ~0x1F) === 0 && ((1 << (_la - 960)) & 4294967295) !== 0) || ((((_la - 992)) & ~0x1F) === 0 && ((1 << (_la - 992)) & 4294967295) !== 0) || ((((_la - 1024)) & ~0x1F) === 0 && ((1 << (_la - 1024)) & 4294967295) !== 0) || ((((_la - 1056)) & ~0x1F) === 0 && ((1 << (_la - 1056)) & 4294967295) !== 0) || ((((_la - 1088)) & ~0x1F) === 0 && ((1 << (_la - 1088)) & 4294967295) !== 0) || ((((_la - 1120)) & ~0x1F) === 0 && ((1 << (_la - 1120)) & 4294967295) !== 0) || ((((_la - 1152)) & ~0x1F) === 0 && ((1 << (_la - 1152)) & 4294967295) !== 0) || ((((_la - 1184)) & ~0x1F) === 0 && ((1 << (_la - 1184)) & 4294967295) !== 0) || ((((_la - 1216)) & ~0x1F) === 0 && ((1 << (_la - 1216)) & 4294967295) !== 0) || ((((_la - 1248)) & ~0x1F) === 0 && ((1 << (_la - 1248)) & 4294967295) !== 0) || ((((_la - 1280)) & ~0x1F) === 0 && ((1 << (_la - 1280)) & 4294967295) !== 0) || ((((_la - 1312)) & ~0x1F) === 0 && ((1 << (_la - 1312)) & 4294967295) !== 0) || ((((_la - 1344)) & ~0x1F) === 0 && ((1 << (_la - 1344)) & 4294967295) !== 0) || ((((_la - 1376)) & ~0x1F) === 0 && ((1 << (_la - 1376)) & 4294967295) !== 0) || ((((_la - 1408)) & ~0x1F) === 0 && ((1 << (_la - 1408)) & 4294967295) !== 0) || ((((_la - 1440)) & ~0x1F) === 0 && ((1 << (_la - 1440)) & 4294967295) !== 0) || ((((_la - 1472)) & ~0x1F) === 0 && ((1 << (_la - 1472)) & 4294967295) !== 0) || ((((_la - 1504)) & ~0x1F) === 0 && ((1 << (_la - 1504)) & 4294967295) !== 0) || ((((_la - 1536)) & ~0x1F) === 0 && ((1 << (_la - 1536)) & 4294967295) !== 0) || ((((_la - 1568)) & ~0x1F) === 0 && ((1 << (_la - 1568)) & 4294967295) !== 0) || ((((_la - 1600)) & ~0x1F) === 0 && ((1 << (_la - 1600)) & 4294967295) !== 0) || ((((_la - 1632)) & ~0x1F) === 0 && ((1 << (_la - 1632)) & 4294967295) !== 0) || ((((_la - 1664)) & ~0x1F) === 0 && ((1 << (_la - 1664)) & 4294967295) !== 0) || ((((_la - 1696)) & ~0x1F) === 0 && ((1 << (_la - 1696)) & 4294967295) !== 0) || ((((_la - 1728)) & ~0x1F) === 0 && ((1 << (_la - 1728)) & 4294967295) !== 0) || ((((_la - 1760)) & ~0x1F) === 0 && ((1 << (_la - 1760)) & 4294967295) !== 0) || ((((_la - 1792)) & ~0x1F) === 0 && ((1 << (_la - 1792)) & 4294967295) !== 0) || ((((_la - 1824)) & ~0x1F) === 0 && ((1 << (_la - 1824)) & 4294967295) !== 0) || ((((_la - 1856)) & ~0x1F) === 0 && ((1 << (_la - 1856)) & 4294967295) !== 0) || ((((_la - 1888)) & ~0x1F) === 0 && ((1 << (_la - 1888)) & 4294967295) !== 0) || ((((_la - 1920)) & ~0x1F) === 0 && ((1 << (_la - 1920)) & 4294967295) !== 0) || ((((_la - 1952)) & ~0x1F) === 0 && ((1 << (_la - 1952)) & 4294967295) !== 0) || ((((_la - 1984)) & ~0x1F) === 0 && ((1 << (_la - 1984)) & 4294967295) !== 0) || ((((_la - 2016)) & ~0x1F) === 0 && ((1 << (_la - 2016)) & 4294967295) !== 0) || ((((_la - 2048)) & ~0x1F) === 0 && ((1 << (_la - 2048)) & 4294967295) !== 0) || ((((_la - 2080)) & ~0x1F) === 0 && ((1 << (_la - 2080)) & 4294967295) !== 0) || ((((_la - 2112)) & ~0x1F) === 0 && ((1 << (_la - 2112)) & 4294967295) !== 0) || ((((_la - 2144)) & ~0x1F) === 0 && ((1 << (_la - 2144)) & 4294967295) !== 0) || ((((_la - 2176)) & ~0x1F) === 0 && ((1 << (_la - 2176)) & 4294967295) !== 0) || ((((_la - 2208)) & ~0x1F) === 0 && ((1 << (_la - 2208)) & 4294967295) !== 0) || ((((_la - 2240)) & ~0x1F) === 0 && ((1 << (_la - 2240)) & 16381) !== 0));
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public assignment_statement(): Assignment_statementContext {
		let localctx: Assignment_statementContext = new Assignment_statementContext(this, this._ctx, this.state);
		this.enterRule(localctx, 958, PlSqlParser.RULE_assignment_statement);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 8508;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 1:
			case 2:
			case 3:
			case 4:
			case 5:
			case 6:
			case 7:
			case 8:
			case 9:
			case 10:
			case 11:
			case 12:
			case 13:
			case 14:
			case 15:
			case 16:
			case 17:
			case 18:
			case 19:
			case 20:
			case 21:
			case 22:
			case 23:
			case 24:
			case 25:
			case 26:
			case 27:
			case 28:
			case 29:
			case 30:
			case 31:
			case 32:
			case 33:
			case 34:
			case 36:
			case 37:
			case 38:
			case 40:
			case 41:
			case 42:
			case 44:
			case 45:
			case 46:
			case 47:
			case 49:
			case 50:
			case 51:
			case 52:
			case 53:
			case 54:
			case 55:
			case 56:
			case 57:
			case 58:
			case 59:
			case 60:
			case 63:
			case 64:
			case 65:
			case 66:
			case 67:
			case 68:
			case 69:
			case 70:
			case 71:
			case 72:
			case 73:
			case 74:
			case 75:
			case 76:
			case 78:
			case 79:
			case 80:
			case 81:
			case 82:
			case 83:
			case 85:
			case 86:
			case 87:
			case 88:
			case 89:
			case 90:
			case 91:
			case 92:
			case 93:
			case 95:
			case 96:
			case 97:
			case 98:
			case 99:
			case 100:
			case 101:
			case 102:
			case 103:
			case 104:
			case 105:
			case 106:
			case 108:
			case 109:
			case 110:
			case 111:
			case 112:
			case 113:
			case 114:
			case 115:
			case 116:
			case 117:
			case 118:
			case 119:
			case 120:
			case 121:
			case 122:
			case 123:
			case 124:
			case 125:
			case 126:
			case 127:
			case 128:
			case 129:
			case 130:
			case 131:
			case 132:
			case 133:
			case 134:
			case 135:
			case 136:
			case 137:
			case 138:
			case 139:
			case 140:
			case 141:
			case 142:
			case 143:
			case 144:
			case 145:
			case 147:
			case 148:
			case 149:
			case 150:
			case 151:
			case 152:
			case 153:
			case 154:
			case 155:
			case 156:
			case 157:
			case 158:
			case 160:
			case 161:
			case 162:
			case 163:
			case 164:
			case 165:
			case 166:
			case 167:
			case 168:
			case 169:
			case 170:
			case 171:
			case 172:
			case 174:
			case 175:
			case 176:
			case 177:
			case 178:
			case 179:
			case 181:
			case 182:
			case 183:
			case 184:
			case 185:
			case 186:
			case 187:
			case 188:
			case 189:
			case 190:
			case 191:
			case 192:
			case 193:
			case 194:
			case 195:
			case 196:
			case 197:
			case 198:
			case 199:
			case 200:
			case 201:
			case 202:
			case 203:
			case 204:
			case 205:
			case 206:
			case 207:
			case 208:
			case 209:
			case 210:
			case 211:
			case 212:
			case 213:
			case 214:
			case 215:
			case 216:
			case 217:
			case 218:
			case 219:
			case 220:
			case 221:
			case 222:
			case 223:
			case 224:
			case 225:
			case 226:
			case 227:
			case 228:
			case 229:
			case 230:
			case 231:
			case 233:
			case 234:
			case 235:
			case 236:
			case 237:
			case 238:
			case 239:
			case 240:
			case 241:
			case 242:
			case 243:
			case 244:
			case 245:
			case 246:
			case 247:
			case 248:
			case 249:
			case 250:
			case 252:
			case 253:
			case 254:
			case 255:
			case 256:
			case 257:
			case 258:
			case 259:
			case 260:
			case 261:
			case 262:
			case 263:
			case 264:
			case 265:
			case 266:
			case 267:
			case 268:
			case 269:
			case 270:
			case 271:
			case 272:
			case 273:
			case 274:
			case 275:
			case 276:
			case 277:
			case 278:
			case 279:
			case 280:
			case 281:
			case 282:
			case 283:
			case 284:
			case 285:
			case 286:
			case 287:
			case 289:
			case 290:
			case 291:
			case 292:
			case 293:
			case 294:
			case 295:
			case 296:
			case 297:
			case 298:
			case 299:
			case 300:
			case 301:
			case 302:
			case 303:
			case 304:
			case 305:
			case 306:
			case 307:
			case 308:
			case 309:
			case 310:
			case 311:
			case 312:
			case 313:
			case 314:
			case 315:
			case 316:
			case 317:
			case 318:
			case 319:
			case 321:
			case 322:
			case 323:
			case 324:
			case 325:
			case 326:
			case 328:
			case 329:
			case 330:
			case 331:
			case 332:
			case 333:
			case 334:
			case 335:
			case 336:
			case 337:
			case 338:
			case 339:
			case 340:
			case 341:
			case 342:
			case 343:
			case 344:
			case 345:
			case 346:
			case 347:
			case 348:
			case 349:
			case 350:
			case 352:
			case 353:
			case 354:
			case 355:
			case 356:
			case 357:
			case 358:
			case 359:
			case 360:
			case 361:
			case 362:
			case 363:
			case 364:
			case 365:
			case 366:
			case 367:
			case 368:
			case 369:
			case 370:
			case 372:
			case 373:
			case 374:
			case 375:
			case 376:
			case 377:
			case 378:
			case 379:
			case 380:
			case 381:
			case 382:
			case 383:
			case 384:
			case 385:
			case 386:
			case 387:
			case 388:
			case 389:
			case 390:
			case 391:
			case 392:
			case 394:
			case 395:
			case 397:
			case 398:
			case 399:
			case 400:
			case 401:
			case 402:
			case 403:
			case 404:
			case 405:
			case 406:
			case 407:
			case 408:
			case 409:
			case 410:
			case 412:
			case 413:
			case 414:
			case 415:
			case 417:
			case 418:
			case 419:
			case 420:
			case 421:
			case 422:
			case 423:
			case 424:
			case 425:
			case 426:
			case 427:
			case 428:
			case 429:
			case 430:
			case 431:
			case 434:
			case 435:
			case 436:
			case 437:
			case 438:
			case 439:
			case 440:
			case 441:
			case 442:
			case 443:
			case 444:
			case 446:
			case 447:
			case 448:
			case 449:
			case 450:
			case 451:
			case 452:
			case 453:
			case 454:
			case 455:
			case 456:
			case 457:
			case 458:
			case 459:
			case 460:
			case 461:
			case 462:
			case 463:
			case 464:
			case 465:
			case 466:
			case 467:
			case 468:
			case 469:
			case 470:
			case 471:
			case 472:
			case 473:
			case 475:
			case 476:
			case 477:
			case 478:
			case 479:
			case 480:
			case 481:
			case 482:
			case 483:
			case 484:
			case 485:
			case 486:
			case 487:
			case 488:
			case 489:
			case 490:
			case 491:
			case 492:
			case 493:
			case 494:
			case 495:
			case 496:
			case 497:
			case 498:
			case 499:
			case 500:
			case 501:
			case 502:
			case 503:
			case 504:
			case 505:
			case 506:
			case 507:
			case 508:
			case 509:
			case 510:
			case 511:
			case 512:
			case 513:
			case 514:
			case 515:
			case 516:
			case 517:
			case 518:
			case 519:
			case 520:
			case 521:
			case 522:
			case 523:
			case 524:
			case 525:
			case 526:
			case 527:
			case 528:
			case 529:
			case 530:
			case 531:
			case 532:
			case 533:
			case 534:
			case 535:
			case 536:
			case 537:
			case 538:
			case 539:
			case 540:
			case 541:
			case 542:
			case 543:
			case 544:
			case 545:
			case 547:
			case 548:
			case 549:
			case 550:
			case 551:
			case 552:
			case 553:
			case 555:
			case 556:
			case 557:
			case 558:
			case 559:
			case 560:
			case 561:
			case 562:
			case 563:
			case 564:
			case 565:
			case 566:
			case 567:
			case 568:
			case 569:
			case 572:
			case 574:
			case 575:
			case 576:
			case 577:
			case 578:
			case 579:
			case 580:
			case 581:
			case 582:
			case 583:
			case 584:
			case 586:
			case 587:
			case 588:
			case 589:
			case 590:
			case 591:
			case 592:
			case 593:
			case 594:
			case 595:
			case 596:
			case 597:
			case 598:
			case 599:
			case 600:
			case 602:
			case 603:
			case 604:
			case 605:
			case 606:
			case 607:
			case 608:
			case 609:
			case 610:
			case 611:
			case 612:
			case 613:
			case 614:
			case 615:
			case 616:
			case 617:
			case 618:
			case 619:
			case 620:
			case 621:
			case 622:
			case 623:
			case 624:
			case 625:
			case 626:
			case 627:
			case 628:
			case 629:
			case 630:
			case 632:
			case 633:
			case 634:
			case 635:
			case 636:
			case 637:
			case 638:
			case 639:
			case 640:
			case 641:
			case 642:
			case 643:
			case 644:
			case 645:
			case 646:
			case 647:
			case 648:
			case 649:
			case 650:
			case 651:
			case 653:
			case 654:
			case 655:
			case 656:
			case 657:
			case 658:
			case 659:
			case 660:
			case 661:
			case 662:
			case 663:
			case 664:
			case 665:
			case 666:
			case 667:
			case 668:
			case 670:
			case 671:
			case 672:
			case 673:
			case 674:
			case 675:
			case 676:
			case 677:
			case 678:
			case 679:
			case 680:
			case 681:
			case 682:
			case 683:
			case 684:
			case 685:
			case 686:
			case 687:
			case 689:
			case 690:
			case 692:
			case 693:
			case 694:
			case 696:
			case 697:
			case 698:
			case 699:
			case 700:
			case 701:
			case 702:
			case 703:
			case 704:
			case 705:
			case 706:
			case 707:
			case 708:
			case 709:
			case 710:
			case 711:
			case 712:
			case 713:
			case 714:
			case 715:
			case 716:
			case 717:
			case 718:
			case 719:
			case 720:
			case 721:
			case 722:
			case 723:
			case 724:
			case 725:
			case 726:
			case 727:
			case 728:
			case 729:
			case 730:
			case 731:
			case 732:
			case 733:
			case 734:
			case 735:
			case 736:
			case 737:
			case 738:
			case 739:
			case 740:
			case 741:
			case 742:
			case 743:
			case 744:
			case 745:
			case 746:
			case 747:
			case 748:
			case 749:
			case 750:
			case 751:
			case 752:
			case 753:
			case 754:
			case 755:
			case 756:
			case 758:
			case 759:
			case 760:
			case 761:
			case 762:
			case 763:
			case 764:
			case 765:
			case 766:
			case 767:
			case 768:
			case 769:
			case 770:
			case 771:
			case 772:
			case 773:
			case 774:
			case 775:
			case 777:
			case 778:
			case 779:
			case 780:
			case 781:
			case 782:
			case 783:
			case 784:
			case 785:
			case 786:
			case 787:
			case 788:
			case 789:
			case 790:
			case 791:
			case 792:
			case 793:
			case 794:
			case 795:
			case 796:
			case 797:
			case 798:
			case 799:
			case 800:
			case 801:
			case 802:
			case 803:
			case 804:
			case 805:
			case 806:
			case 807:
			case 808:
			case 809:
			case 810:
			case 811:
			case 812:
			case 813:
			case 814:
			case 815:
			case 816:
			case 817:
			case 818:
			case 819:
			case 820:
			case 821:
			case 822:
			case 823:
			case 824:
			case 825:
			case 826:
			case 827:
			case 828:
			case 829:
			case 830:
			case 831:
			case 832:
			case 833:
			case 834:
			case 835:
			case 836:
			case 837:
			case 838:
			case 839:
			case 840:
			case 841:
			case 843:
			case 844:
			case 845:
			case 846:
			case 847:
			case 848:
			case 849:
			case 850:
			case 851:
			case 852:
			case 853:
			case 854:
			case 855:
			case 856:
			case 857:
			case 858:
			case 859:
			case 861:
			case 862:
			case 863:
			case 864:
			case 865:
			case 866:
			case 867:
			case 868:
			case 869:
			case 870:
			case 871:
			case 872:
			case 873:
			case 874:
			case 875:
			case 876:
			case 877:
			case 878:
			case 879:
			case 880:
			case 881:
			case 882:
			case 883:
			case 884:
			case 885:
			case 886:
			case 888:
			case 889:
			case 890:
			case 891:
			case 892:
			case 893:
			case 894:
			case 895:
			case 896:
			case 897:
			case 898:
			case 899:
			case 900:
			case 901:
			case 902:
			case 903:
			case 904:
			case 905:
			case 906:
			case 907:
			case 908:
			case 909:
			case 910:
			case 911:
			case 912:
			case 913:
			case 914:
			case 915:
			case 916:
			case 917:
			case 918:
			case 919:
			case 920:
			case 921:
			case 922:
			case 923:
			case 924:
			case 925:
			case 926:
			case 927:
			case 928:
			case 929:
			case 930:
			case 931:
			case 932:
			case 933:
			case 934:
			case 935:
			case 936:
			case 937:
			case 938:
			case 939:
			case 940:
			case 941:
			case 942:
			case 943:
			case 944:
			case 945:
			case 946:
			case 947:
			case 948:
			case 949:
			case 950:
			case 951:
			case 952:
			case 954:
			case 955:
			case 956:
			case 957:
			case 958:
			case 959:
			case 960:
			case 961:
			case 962:
			case 963:
			case 964:
			case 965:
			case 966:
			case 967:
			case 968:
			case 969:
			case 970:
			case 971:
			case 972:
			case 973:
			case 974:
			case 975:
			case 976:
			case 977:
			case 978:
			case 979:
			case 980:
			case 981:
			case 982:
			case 983:
			case 984:
			case 985:
			case 986:
			case 987:
			case 988:
			case 989:
			case 990:
			case 991:
			case 992:
			case 993:
			case 994:
			case 995:
			case 996:
			case 997:
			case 998:
			case 999:
			case 1000:
			case 1001:
			case 1002:
			case 1003:
			case 1004:
			case 1005:
			case 1006:
			case 1007:
			case 1008:
			case 1009:
			case 1010:
			case 1011:
			case 1012:
			case 1013:
			case 1014:
			case 1015:
			case 1016:
			case 1017:
			case 1018:
			case 1019:
			case 1020:
			case 1021:
			case 1022:
			case 1023:
			case 1024:
			case 1025:
			case 1026:
			case 1027:
			case 1028:
			case 1029:
			case 1030:
			case 1031:
			case 1032:
			case 1033:
			case 1034:
			case 1035:
			case 1036:
			case 1037:
			case 1038:
			case 1039:
			case 1040:
			case 1041:
			case 1042:
			case 1043:
			case 1044:
			case 1045:
			case 1046:
			case 1047:
			case 1048:
			case 1049:
			case 1050:
			case 1051:
			case 1052:
			case 1053:
			case 1054:
			case 1055:
			case 1056:
			case 1057:
			case 1058:
			case 1059:
			case 1060:
			case 1061:
			case 1062:
			case 1063:
			case 1064:
			case 1065:
			case 1066:
			case 1067:
			case 1068:
			case 1069:
			case 1070:
			case 1071:
			case 1072:
			case 1074:
			case 1075:
			case 1076:
			case 1077:
			case 1078:
			case 1079:
			case 1080:
			case 1081:
			case 1082:
			case 1083:
			case 1084:
			case 1085:
			case 1086:
			case 1087:
			case 1089:
			case 1090:
			case 1091:
			case 1092:
			case 1093:
			case 1094:
			case 1095:
			case 1096:
			case 1098:
			case 1099:
			case 1100:
			case 1101:
			case 1102:
			case 1103:
			case 1104:
			case 1105:
			case 1106:
			case 1107:
			case 1108:
			case 1109:
			case 1110:
			case 1111:
			case 1112:
			case 1113:
			case 1114:
			case 1116:
			case 1117:
			case 1118:
			case 1119:
			case 1120:
			case 1121:
			case 1122:
			case 1123:
			case 1124:
			case 1125:
			case 1127:
			case 1129:
			case 1130:
			case 1131:
			case 1132:
			case 1133:
			case 1134:
			case 1135:
			case 1136:
			case 1137:
			case 1138:
			case 1139:
			case 1140:
			case 1142:
			case 1143:
			case 1144:
			case 1145:
			case 1146:
			case 1147:
			case 1148:
			case 1149:
			case 1150:
			case 1151:
			case 1152:
			case 1153:
			case 1154:
			case 1155:
			case 1156:
			case 1157:
			case 1158:
			case 1159:
			case 1160:
			case 1161:
			case 1162:
			case 1163:
			case 1164:
			case 1165:
			case 1166:
			case 1167:
			case 1169:
			case 1170:
			case 1171:
			case 1173:
			case 1174:
			case 1175:
			case 1176:
			case 1177:
			case 1178:
			case 1179:
			case 1180:
			case 1181:
			case 1182:
			case 1183:
			case 1184:
			case 1185:
			case 1186:
			case 1187:
			case 1188:
			case 1189:
			case 1190:
			case 1191:
			case 1192:
			case 1193:
			case 1194:
			case 1195:
			case 1197:
			case 1198:
			case 1199:
			case 1200:
			case 1201:
			case 1202:
			case 1203:
			case 1204:
			case 1205:
			case 1206:
			case 1207:
			case 1208:
			case 1209:
			case 1210:
			case 1211:
			case 1212:
			case 1213:
			case 1214:
			case 1215:
			case 1216:
			case 1217:
			case 1218:
			case 1219:
			case 1220:
			case 1221:
			case 1222:
			case 1223:
			case 1224:
			case 1225:
			case 1226:
			case 1228:
			case 1229:
			case 1230:
			case 1231:
			case 1232:
			case 1236:
			case 1237:
			case 1241:
			case 1242:
			case 1243:
			case 1244:
			case 1245:
			case 1246:
			case 1247:
			case 1248:
			case 1249:
			case 1250:
			case 1252:
			case 1253:
			case 1254:
			case 1255:
			case 1256:
			case 1257:
			case 1258:
			case 1259:
			case 1260:
			case 1261:
			case 1262:
			case 1263:
			case 1264:
			case 1265:
			case 1266:
			case 1267:
			case 1268:
			case 1269:
			case 1270:
			case 1271:
			case 1272:
			case 1273:
			case 1274:
			case 1275:
			case 1276:
			case 1277:
			case 1278:
			case 1279:
			case 1280:
			case 1281:
			case 1282:
			case 1283:
			case 1284:
			case 1285:
			case 1286:
			case 1287:
			case 1288:
			case 1289:
			case 1290:
			case 1291:
			case 1292:
			case 1293:
			case 1294:
			case 1295:
			case 1296:
			case 1297:
			case 1298:
			case 1299:
			case 1300:
			case 1301:
			case 1302:
			case 1303:
			case 1304:
			case 1305:
			case 1306:
			case 1308:
			case 1309:
			case 1310:
			case 1311:
			case 1312:
			case 1313:
			case 1314:
			case 1315:
			case 1316:
			case 1317:
			case 1318:
			case 1319:
			case 1320:
			case 1321:
			case 1322:
			case 1323:
			case 1325:
			case 1326:
			case 1327:
			case 1328:
			case 1329:
			case 1330:
			case 1331:
			case 1332:
			case 1333:
			case 1334:
			case 1335:
			case 1336:
			case 1337:
			case 1338:
			case 1339:
			case 1340:
			case 1341:
			case 1342:
			case 1343:
			case 1344:
			case 1345:
			case 1346:
			case 1347:
			case 1348:
			case 1349:
			case 1350:
			case 1351:
			case 1352:
			case 1353:
			case 1354:
			case 1355:
			case 1356:
			case 1357:
			case 1358:
			case 1359:
			case 1360:
			case 1361:
			case 1362:
			case 1363:
			case 1364:
			case 1365:
			case 1366:
			case 1367:
			case 1368:
			case 1369:
			case 1370:
			case 1371:
			case 1372:
			case 1373:
			case 1374:
			case 1375:
			case 1376:
			case 1377:
			case 1378:
			case 1379:
			case 1380:
			case 1381:
			case 1382:
			case 1383:
			case 1384:
			case 1385:
			case 1386:
			case 1387:
			case 1388:
			case 1389:
			case 1390:
			case 1391:
			case 1392:
			case 1393:
			case 1394:
			case 1395:
			case 1396:
			case 1397:
			case 1399:
			case 1400:
			case 1401:
			case 1402:
			case 1403:
			case 1404:
			case 1405:
			case 1406:
			case 1407:
			case 1408:
			case 1409:
			case 1410:
			case 1411:
			case 1412:
			case 1413:
			case 1414:
			case 1416:
			case 1417:
			case 1418:
			case 1419:
			case 1420:
			case 1421:
			case 1422:
			case 1423:
			case 1424:
			case 1425:
			case 1426:
			case 1427:
			case 1428:
			case 1429:
			case 1430:
			case 1431:
			case 1432:
			case 1433:
			case 1435:
			case 1436:
			case 1437:
			case 1438:
			case 1439:
			case 1440:
			case 1441:
			case 1442:
			case 1443:
			case 1444:
			case 1445:
			case 1446:
			case 1447:
			case 1448:
			case 1449:
			case 1450:
			case 1451:
			case 1452:
			case 1453:
			case 1454:
			case 1455:
			case 1456:
			case 1457:
			case 1458:
			case 1459:
			case 1460:
			case 1461:
			case 1462:
			case 1463:
			case 1464:
			case 1465:
			case 1466:
			case 1467:
			case 1468:
			case 1469:
			case 1470:
			case 1471:
			case 1472:
			case 1473:
			case 1474:
			case 1475:
			case 1476:
			case 1477:
			case 1478:
			case 1479:
			case 1480:
			case 1481:
			case 1482:
			case 1483:
			case 1484:
			case 1485:
			case 1486:
			case 1487:
			case 1488:
			case 1489:
			case 1491:
			case 1492:
			case 1493:
			case 1494:
			case 1495:
			case 1496:
			case 1497:
			case 1499:
			case 1500:
			case 1501:
			case 1502:
			case 1503:
			case 1504:
			case 1505:
			case 1506:
			case 1507:
			case 1508:
			case 1509:
			case 1510:
			case 1511:
			case 1512:
			case 1513:
			case 1514:
			case 1515:
			case 1516:
			case 1518:
			case 1519:
			case 1520:
			case 1521:
			case 1522:
			case 1523:
			case 1524:
			case 1525:
			case 1526:
			case 1527:
			case 1528:
			case 1529:
			case 1530:
			case 1531:
			case 1532:
			case 1533:
			case 1534:
			case 1536:
			case 1537:
			case 1538:
			case 1539:
			case 1540:
			case 1541:
			case 1542:
			case 1543:
			case 1544:
			case 1545:
			case 1546:
			case 1547:
			case 1548:
			case 1549:
			case 1550:
			case 1551:
			case 1552:
			case 1553:
			case 1554:
			case 1555:
			case 1556:
			case 1557:
			case 1558:
			case 1559:
			case 1560:
			case 1561:
			case 1562:
			case 1563:
			case 1564:
			case 1565:
			case 1566:
			case 1567:
			case 1568:
			case 1570:
			case 1571:
			case 1572:
			case 1573:
			case 1574:
			case 1575:
			case 1576:
			case 1577:
			case 1578:
			case 1579:
			case 1580:
			case 1581:
			case 1582:
			case 1583:
			case 1584:
			case 1585:
			case 1586:
			case 1587:
			case 1588:
			case 1589:
			case 1590:
			case 1591:
			case 1592:
			case 1593:
			case 1594:
			case 1595:
			case 1596:
			case 1597:
			case 1598:
			case 1599:
			case 1600:
			case 1601:
			case 1602:
			case 1603:
			case 1604:
			case 1605:
			case 1606:
			case 1607:
			case 1608:
			case 1609:
			case 1610:
			case 1611:
			case 1612:
			case 1613:
			case 1614:
			case 1615:
			case 1616:
			case 1617:
			case 1618:
			case 1619:
			case 1620:
			case 1621:
			case 1622:
			case 1623:
			case 1624:
			case 1625:
			case 1626:
			case 1628:
			case 1629:
			case 1630:
			case 1631:
			case 1632:
			case 1633:
			case 1634:
			case 1635:
			case 1636:
			case 1637:
			case 1638:
			case 1639:
			case 1640:
			case 1641:
			case 1642:
			case 1643:
			case 1644:
			case 1645:
			case 1646:
			case 1647:
			case 1648:
			case 1649:
			case 1650:
			case 1651:
			case 1652:
			case 1653:
			case 1654:
			case 1655:
			case 1656:
			case 1657:
			case 1658:
			case 1659:
			case 1660:
			case 1661:
			case 1662:
			case 1663:
			case 1664:
			case 1665:
			case 1666:
			case 1667:
			case 1668:
			case 1669:
			case 1670:
			case 1671:
			case 1672:
			case 1673:
			case 1674:
			case 1675:
			case 1676:
			case 1677:
			case 1678:
			case 1679:
			case 1680:
			case 1681:
			case 1682:
			case 1683:
			case 1684:
			case 1685:
			case 1686:
			case 1687:
			case 1688:
			case 1689:
			case 1690:
			case 1691:
			case 1692:
			case 1693:
			case 1694:
			case 1695:
			case 1696:
			case 1697:
			case 1698:
			case 1699:
			case 1700:
			case 1701:
			case 1702:
			case 1703:
			case 1704:
			case 1705:
			case 1706:
			case 1707:
			case 1708:
			case 1709:
			case 1710:
			case 1711:
			case 1712:
			case 1713:
			case 1714:
			case 1715:
			case 1716:
			case 1717:
			case 1718:
			case 1719:
			case 1720:
			case 1721:
			case 1722:
			case 1723:
			case 1724:
			case 1725:
			case 1726:
			case 1727:
			case 1728:
			case 1729:
			case 1730:
			case 1731:
			case 1732:
			case 1733:
			case 1734:
			case 1735:
			case 1736:
			case 1737:
			case 1738:
			case 1739:
			case 1740:
			case 1741:
			case 1742:
			case 1743:
			case 1744:
			case 1745:
			case 1746:
			case 1747:
			case 1748:
			case 1749:
			case 1750:
			case 1751:
			case 1752:
			case 1753:
			case 1754:
			case 1755:
			case 1756:
			case 1757:
			case 1758:
			case 1759:
			case 1760:
			case 1761:
			case 1762:
			case 1763:
			case 1764:
			case 1765:
			case 1766:
			case 1767:
			case 1768:
			case 1769:
			case 1770:
			case 1771:
			case 1772:
			case 1773:
			case 1774:
			case 1775:
			case 1776:
			case 1777:
			case 1778:
			case 1779:
			case 1780:
			case 1781:
			case 1782:
			case 1783:
			case 1784:
			case 1785:
			case 1786:
			case 1787:
			case 1788:
			case 1789:
			case 1790:
			case 1791:
			case 1792:
			case 1793:
			case 1794:
			case 1795:
			case 1796:
			case 1797:
			case 1798:
			case 1799:
			case 1800:
			case 1801:
			case 1802:
			case 1803:
			case 1804:
			case 1805:
			case 1806:
			case 1807:
			case 1808:
			case 1809:
			case 1810:
			case 1811:
			case 1812:
			case 1813:
			case 1814:
			case 1815:
			case 1816:
			case 1817:
			case 1818:
			case 1819:
			case 1820:
			case 1821:
			case 1822:
			case 1823:
			case 1824:
			case 1825:
			case 1826:
			case 1827:
			case 1828:
			case 1829:
			case 1830:
			case 1831:
			case 1832:
			case 1833:
			case 1834:
			case 1835:
			case 1836:
			case 1837:
			case 1838:
			case 1839:
			case 1840:
			case 1841:
			case 1842:
			case 1843:
			case 1844:
			case 1845:
			case 1846:
			case 1847:
			case 1848:
			case 1849:
			case 1850:
			case 1851:
			case 1852:
			case 1853:
			case 1854:
			case 1855:
			case 1856:
			case 1857:
			case 1858:
			case 1859:
			case 1860:
			case 1861:
			case 1862:
			case 1863:
			case 1864:
			case 1865:
			case 1866:
			case 1867:
			case 1868:
			case 1869:
			case 1870:
			case 1871:
			case 1872:
			case 1873:
			case 1874:
			case 1875:
			case 1876:
			case 1877:
			case 1878:
			case 1879:
			case 1880:
			case 1881:
			case 1882:
			case 1883:
			case 1884:
			case 1885:
			case 1886:
			case 1887:
			case 1888:
			case 1889:
			case 1890:
			case 1891:
			case 1892:
			case 1893:
			case 1894:
			case 1895:
			case 1896:
			case 1897:
			case 1898:
			case 1899:
			case 1900:
			case 1901:
			case 1902:
			case 1903:
			case 1904:
			case 1905:
			case 1906:
			case 1907:
			case 1908:
			case 1909:
			case 1910:
			case 1911:
			case 1912:
			case 1913:
			case 1914:
			case 1915:
			case 1916:
			case 1917:
			case 1918:
			case 1919:
			case 1920:
			case 1921:
			case 1922:
			case 1923:
			case 1924:
			case 1925:
			case 1926:
			case 1927:
			case 1928:
			case 1929:
			case 1930:
			case 1931:
			case 1932:
			case 1933:
			case 1934:
			case 1935:
			case 1936:
			case 1937:
			case 1939:
			case 1940:
			case 1941:
			case 1942:
			case 1943:
			case 1944:
			case 1945:
			case 1946:
			case 1947:
			case 1948:
			case 1949:
			case 1950:
			case 1951:
			case 1952:
			case 1953:
			case 1954:
			case 1955:
			case 1956:
			case 1957:
			case 1958:
			case 1959:
			case 1960:
			case 1961:
			case 1962:
			case 1963:
			case 1965:
			case 1966:
			case 1967:
			case 1968:
			case 1969:
			case 1970:
			case 1971:
			case 1972:
			case 1973:
			case 1974:
			case 1975:
			case 1976:
			case 1977:
			case 1978:
			case 1979:
			case 1980:
			case 1981:
			case 1982:
			case 1983:
			case 1984:
			case 1985:
			case 1986:
			case 1987:
			case 1988:
			case 1989:
			case 1990:
			case 1991:
			case 1992:
			case 1993:
			case 1994:
			case 1995:
			case 1996:
			case 1997:
			case 1998:
			case 1999:
			case 2000:
			case 2003:
			case 2004:
			case 2005:
			case 2006:
			case 2007:
			case 2008:
			case 2009:
			case 2010:
			case 2011:
			case 2012:
			case 2013:
			case 2014:
			case 2015:
			case 2016:
			case 2017:
			case 2018:
			case 2019:
			case 2020:
			case 2021:
			case 2022:
			case 2023:
			case 2024:
			case 2026:
			case 2027:
			case 2028:
			case 2029:
			case 2030:
			case 2031:
			case 2032:
			case 2033:
			case 2034:
			case 2035:
			case 2036:
			case 2037:
			case 2038:
			case 2039:
			case 2040:
			case 2041:
			case 2042:
			case 2043:
			case 2044:
			case 2045:
			case 2046:
			case 2047:
			case 2048:
			case 2049:
			case 2050:
			case 2051:
			case 2052:
			case 2053:
			case 2054:
			case 2055:
			case 2056:
			case 2057:
			case 2058:
			case 2059:
			case 2060:
			case 2061:
			case 2062:
			case 2063:
			case 2064:
			case 2065:
			case 2066:
			case 2067:
			case 2068:
			case 2069:
			case 2070:
			case 2071:
			case 2072:
			case 2074:
			case 2075:
			case 2076:
			case 2077:
			case 2078:
			case 2079:
			case 2080:
			case 2081:
			case 2082:
			case 2083:
			case 2084:
			case 2085:
			case 2086:
			case 2087:
			case 2088:
			case 2089:
			case 2090:
			case 2091:
			case 2092:
			case 2093:
			case 2094:
			case 2095:
			case 2096:
			case 2097:
			case 2098:
			case 2100:
			case 2101:
			case 2102:
			case 2103:
			case 2104:
			case 2105:
			case 2106:
			case 2107:
			case 2108:
			case 2109:
			case 2110:
			case 2111:
			case 2112:
			case 2113:
			case 2115:
			case 2116:
			case 2117:
			case 2118:
			case 2119:
			case 2120:
			case 2122:
			case 2123:
			case 2124:
			case 2125:
			case 2126:
			case 2128:
			case 2129:
			case 2130:
			case 2131:
			case 2132:
			case 2133:
			case 2134:
			case 2135:
			case 2136:
			case 2137:
			case 2138:
			case 2139:
			case 2140:
			case 2141:
			case 2142:
			case 2143:
			case 2145:
			case 2146:
			case 2147:
			case 2148:
			case 2149:
			case 2150:
			case 2151:
			case 2152:
			case 2153:
			case 2154:
			case 2155:
			case 2156:
			case 2157:
			case 2158:
			case 2159:
			case 2160:
			case 2161:
			case 2162:
			case 2163:
			case 2164:
			case 2165:
			case 2166:
			case 2168:
			case 2169:
			case 2170:
			case 2171:
			case 2172:
			case 2173:
			case 2174:
			case 2175:
			case 2176:
			case 2177:
			case 2178:
			case 2179:
			case 2180:
			case 2181:
			case 2182:
			case 2183:
			case 2184:
			case 2185:
			case 2186:
			case 2187:
			case 2188:
			case 2189:
			case 2191:
			case 2192:
			case 2193:
			case 2194:
			case 2195:
			case 2196:
			case 2197:
			case 2198:
			case 2199:
			case 2200:
			case 2201:
			case 2202:
			case 2203:
			case 2204:
			case 2205:
			case 2206:
			case 2207:
			case 2208:
			case 2209:
			case 2210:
			case 2211:
			case 2216:
			case 2220:
			case 2246:
			case 2252:
				{
				this.state = 8506;
				this.general_element();
				}
				break;
			case 2233:
			case 2240:
				{
				this.state = 8507;
				this.bind_variable();
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
			this.state = 8510;
			this.match(PlSqlParser.ASSIGN_OP);
			this.state = 8511;
			this.expression();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public continue_statement(): Continue_statementContext {
		let localctx: Continue_statementContext = new Continue_statementContext(this, this._ctx, this.state);
		this.enterRule(localctx, 960, PlSqlParser.RULE_continue_statement);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 8513;
			this.match(PlSqlParser.CONTINUE);
			this.state = 8515;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1099, this._ctx) ) {
			case 1:
				{
				this.state = 8514;
				this.label_name();
				}
				break;
			}
			this.state = 8519;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===2113) {
				{
				this.state = 8517;
				this.match(PlSqlParser.WHEN);
				this.state = 8518;
				this.condition();
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public exit_statement(): Exit_statementContext {
		let localctx: Exit_statementContext = new Exit_statementContext(this, this._ctx, this.state);
		this.enterRule(localctx, 962, PlSqlParser.RULE_exit_statement);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 8521;
			this.match(PlSqlParser.EXIT);
			this.state = 8523;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1101, this._ctx) ) {
			case 1:
				{
				this.state = 8522;
				this.label_name();
				}
				break;
			}
			this.state = 8527;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===2113) {
				{
				this.state = 8525;
				this.match(PlSqlParser.WHEN);
				this.state = 8526;
				this.condition();
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public goto_statement(): Goto_statementContext {
		let localctx: Goto_statementContext = new Goto_statementContext(this, this._ctx, this.state);
		this.enterRule(localctx, 964, PlSqlParser.RULE_goto_statement);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 8529;
			this.match(PlSqlParser.GOTO);
			this.state = 8530;
			this.label_name();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public if_statement(): If_statementContext {
		let localctx: If_statementContext = new If_statementContext(this, this._ctx, this.state);
		this.enterRule(localctx, 966, PlSqlParser.RULE_if_statement);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 8532;
			this.match(PlSqlParser.IF);
			this.state = 8533;
			this.condition();
			this.state = 8534;
			this.match(PlSqlParser.THEN);
			this.state = 8535;
			this.seq_of_statements();
			this.state = 8539;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			while (_la===433) {
				{
				{
				this.state = 8536;
				this.elsif_part();
				}
				}
				this.state = 8541;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			}
			this.state = 8543;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===432) {
				{
				this.state = 8542;
				this.else_part();
				}
			}

			this.state = 8545;
			this.match(PlSqlParser.END);
			this.state = 8546;
			this.match(PlSqlParser.IF);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public elsif_part(): Elsif_partContext {
		let localctx: Elsif_partContext = new Elsif_partContext(this, this._ctx, this.state);
		this.enterRule(localctx, 968, PlSqlParser.RULE_elsif_part);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 8548;
			this.match(PlSqlParser.ELSIF);
			this.state = 8549;
			this.condition();
			this.state = 8550;
			this.match(PlSqlParser.THEN);
			this.state = 8551;
			this.seq_of_statements();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public else_part(): Else_partContext {
		let localctx: Else_partContext = new Else_partContext(this, this._ctx, this.state);
		this.enterRule(localctx, 970, PlSqlParser.RULE_else_part);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 8553;
			this.match(PlSqlParser.ELSE);
			this.state = 8554;
			this.seq_of_statements();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public loop_statement(): Loop_statementContext {
		let localctx: Loop_statementContext = new Loop_statementContext(this, this._ctx, this.state);
		this.enterRule(localctx, 972, PlSqlParser.RULE_loop_statement);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 8557;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===2239) {
				{
				this.state = 8556;
				this.label_declaration();
				}
			}

			this.state = 8563;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 2115:
				{
				this.state = 8559;
				this.match(PlSqlParser.WHILE);
				this.state = 8560;
				this.condition();
				}
				break;
			case 546:
				{
				this.state = 8561;
				this.match(PlSqlParser.FOR);
				this.state = 8562;
				this.cursor_loop_param();
				}
				break;
			case 789:
				break;
			default:
				break;
			}
			this.state = 8565;
			this.match(PlSqlParser.LOOP);
			this.state = 8566;
			this.seq_of_statements();
			this.state = 8567;
			this.match(PlSqlParser.END);
			this.state = 8568;
			this.match(PlSqlParser.LOOP);
			this.state = 8570;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & 2684286839) !== 0) || ((((_la - 64)) & ~0x1F) === 0 && ((1 << (_la - 64)) & 3220168703) !== 0) || ((((_la - 96)) & ~0x1F) === 0 && ((1 << (_la - 96)) & 4294965247) !== 0) || ((((_la - 128)) & ~0x1F) === 0 && ((1 << (_la - 128)) & 2147221503) !== 0) || ((((_la - 160)) & ~0x1F) === 0 && ((1 << (_la - 160)) & 4293910527) !== 0) || ((((_la - 192)) & ~0x1F) === 0 && ((1 << (_la - 192)) & 4294967295) !== 0) || ((((_la - 224)) & ~0x1F) === 0 && ((1 << (_la - 224)) & 4160749311) !== 0) || ((((_la - 256)) & ~0x1F) === 0 && ((1 << (_la - 256)) & 4294967295) !== 0) || ((((_la - 289)) & ~0x1F) === 0 && ((1 << (_la - 289)) & 2147483647) !== 0) || ((((_la - 321)) & ~0x1F) === 0 && ((1 << (_la - 321)) & 3221225407) !== 0) || ((((_la - 353)) & ~0x1F) === 0 && ((1 << (_la - 353)) & 4294705151) !== 0) || ((((_la - 385)) & ~0x1F) === 0 && ((1 << (_la - 385)) & 2080372479) !== 0) || ((((_la - 417)) & ~0x1F) === 0 && ((1 << (_la - 417)) & 4026433535) !== 0) || ((((_la - 449)) & ~0x1F) === 0 && ((1 << (_la - 449)) & 4261412863) !== 0) || ((((_la - 481)) & ~0x1F) === 0 && ((1 << (_la - 481)) & 4294967295) !== 0) || ((((_la - 513)) & ~0x1F) === 0 && ((1 << (_la - 513)) & 4294967295) !== 0) || ((((_la - 545)) & ~0x1F) === 0 && ((1 << (_la - 545)) & 3925868029) !== 0) || ((((_la - 577)) & ~0x1F) === 0 && ((1 << (_la - 577)) & 4278189823) !== 0) || ((((_la - 609)) & ~0x1F) === 0 && ((1 << (_la - 609)) & 4290772991) !== 0) || ((((_la - 641)) & ~0x1F) === 0 && ((1 << (_la - 641)) & 4026529791) !== 0) || ((((_la - 673)) & ~0x1F) === 0 && ((1 << (_la - 673)) & 4290478079) !== 0) || ((((_la - 705)) & ~0x1F) === 0 && ((1 << (_la - 705)) & 4294967295) !== 0) || ((((_la - 737)) & ~0x1F) === 0 && ((1 << (_la - 737)) & 4293918719) !== 0) || ((((_la - 769)) & ~0x1F) === 0 && ((1 << (_la - 769)) & 4294967167) !== 0) || ((((_la - 801)) & ~0x1F) === 0 && ((1 << (_la - 801)) & 4294967295) !== 0) || ((((_la - 833)) & ~0x1F) === 0 && ((1 << (_la - 833)) & 4160749055) !== 0) || ((((_la - 865)) & ~0x1F) === 0 && ((1 << (_la - 865)) & 4290772991) !== 0) || ((((_la - 897)) & ~0x1F) === 0 && ((1 << (_la - 897)) & 4294967295) !== 0) || ((((_la - 929)) & ~0x1F) === 0 && ((1 << (_la - 929)) & 4278190079) !== 0) || ((((_la - 961)) & ~0x1F) === 0 && ((1 << (_la - 961)) & 4294967295) !== 0) || ((((_la - 993)) & ~0x1F) === 0 && ((1 << (_la - 993)) & 4294967295) !== 0) || ((((_la - 1025)) & ~0x1F) === 0 && ((1 << (_la - 1025)) & 4294967295) !== 0) || ((((_la - 1057)) & ~0x1F) === 0 && ((1 << (_la - 1057)) & 2147418111) !== 0) || ((((_la - 1089)) & ~0x1F) === 0 && ((1 << (_la - 1089)) & 4227858175) !== 0) || ((((_la - 1121)) & ~0x1F) === 0 && ((1 << (_la - 1121)) & 4293918559) !== 0) || ((((_la - 1153)) & ~0x1F) === 0 && ((1 << (_la - 1153)) & 4294410239) !== 0) || ((((_la - 1185)) & ~0x1F) === 0 && ((1 << (_la - 1185)) & 4294965247) !== 0) || ((((_la - 1217)) & ~0x1F) === 0 && ((1 << (_la - 1217)) & 4279827455) !== 0) || ((((_la - 1249)) & ~0x1F) === 0 && ((1 << (_la - 1249)) & 4294967291) !== 0) || ((((_la - 1281)) & ~0x1F) === 0 && ((1 << (_la - 1281)) & 4227858431) !== 0) || ((((_la - 1313)) & ~0x1F) === 0 && ((1 << (_la - 1313)) & 4294965247) !== 0) || ((((_la - 1345)) & ~0x1F) === 0 && ((1 << (_la - 1345)) & 4294967295) !== 0) || ((((_la - 1377)) & ~0x1F) === 0 && ((1 << (_la - 1377)) & 4292870143) !== 0) || ((((_la - 1409)) & ~0x1F) === 0 && ((1 << (_la - 1409)) & 4261412799) !== 0) || ((((_la - 1441)) & ~0x1F) === 0 && ((1 << (_la - 1441)) & 4294967295) !== 0) || ((((_la - 1473)) & ~0x1F) === 0 && ((1 << (_la - 1473)) & 4261281791) !== 0) || ((((_la - 1505)) & ~0x1F) === 0 && ((1 << (_la - 1505)) & 3221221375) !== 0) || ((((_la - 1537)) & ~0x1F) === 0 && ((1 << (_la - 1537)) & 4294967295) !== 0) || ((((_la - 1570)) & ~0x1F) === 0 && ((1 << (_la - 1570)) & 4294967295) !== 0) || ((((_la - 1602)) & ~0x1F) === 0 && ((1 << (_la - 1602)) & 4261412863) !== 0) || ((((_la - 1634)) & ~0x1F) === 0 && ((1 << (_la - 1634)) & 4294967295) !== 0) || ((((_la - 1666)) & ~0x1F) === 0 && ((1 << (_la - 1666)) & 4294967295) !== 0) || ((((_la - 1698)) & ~0x1F) === 0 && ((1 << (_la - 1698)) & 4294967295) !== 0) || ((((_la - 1730)) & ~0x1F) === 0 && ((1 << (_la - 1730)) & 4294967295) !== 0) || ((((_la - 1762)) & ~0x1F) === 0 && ((1 << (_la - 1762)) & 4294967295) !== 0) || ((((_la - 1794)) & ~0x1F) === 0 && ((1 << (_la - 1794)) & 4294967295) !== 0) || ((((_la - 1826)) & ~0x1F) === 0 && ((1 << (_la - 1826)) & 4294967295) !== 0) || ((((_la - 1858)) & ~0x1F) === 0 && ((1 << (_la - 1858)) & 4294967295) !== 0) || ((((_la - 1890)) & ~0x1F) === 0 && ((1 << (_la - 1890)) & 4294967295) !== 0) || ((((_la - 1922)) & ~0x1F) === 0 && ((1 << (_la - 1922)) & 4294901759) !== 0) || ((((_la - 1954)) & ~0x1F) === 0 && ((1 << (_la - 1954)) & 4294966271) !== 0) || ((((_la - 1986)) & ~0x1F) === 0 && ((1 << (_la - 1986)) & 4294868991) !== 0) || ((((_la - 2018)) & ~0x1F) === 0 && ((1 << (_la - 2018)) & 4294967167) !== 0) || ((((_la - 2050)) & ~0x1F) === 0 && ((1 << (_la - 2050)) & 4286578687) !== 0) || ((((_la - 2082)) & ~0x1F) === 0 && ((1 << (_la - 2082)) & 4294836223) !== 0) || ((((_la - 2115)) & ~0x1F) === 0 && ((1 << (_la - 2115)) & 3758092223) !== 0) || ((((_la - 2147)) & ~0x1F) === 0 && ((1 << (_la - 2147)) & 4293918719) !== 0) || ((((_la - 2179)) & ~0x1F) === 0 && ((1 << (_la - 2179)) & 4294965247) !== 0) || ((((_la - 2211)) & ~0x1F) === 0 && ((1 << (_la - 2211)) & 545) !== 0) || _la===2252) {
				{
				this.state = 8569;
				this.label_name();
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public cursor_loop_param(): Cursor_loop_paramContext {
		let localctx: Cursor_loop_paramContext = new Cursor_loop_paramContext(this, this._ctx, this.state);
		this.enterRule(localctx, 974, PlSqlParser.RULE_cursor_loop_param);
		let _la: number;
		try {
			this.state = 8597;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1112, this._ctx) ) {
			case 1:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 8572;
				this.index_name();
				this.state = 8573;
				this.match(PlSqlParser.IN);
				this.state = 8575;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 1108, this._ctx) ) {
				case 1:
					{
					this.state = 8574;
					this.match(PlSqlParser.REVERSE);
					}
					break;
				}
				this.state = 8577;
				this.lower_bound();
				this.state = 8578;
				localctx._range_separator = this.match(PlSqlParser.DOUBLE_PERIOD);
				this.state = 8579;
				this.upper_bound();
				}
				break;
			case 2:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 8581;
				this.record_name();
				this.state = 8582;
				this.match(PlSqlParser.IN);
				this.state = 8595;
				this._errHandler.sync(this);
				switch (this._input.LA(1)) {
				case 1:
				case 2:
				case 3:
				case 4:
				case 5:
				case 6:
				case 7:
				case 8:
				case 9:
				case 10:
				case 11:
				case 12:
				case 13:
				case 14:
				case 15:
				case 16:
				case 17:
				case 18:
				case 19:
				case 20:
				case 21:
				case 22:
				case 23:
				case 24:
				case 25:
				case 26:
				case 27:
				case 28:
				case 29:
				case 30:
				case 31:
				case 32:
				case 33:
				case 34:
				case 36:
				case 37:
				case 38:
				case 40:
				case 41:
				case 42:
				case 44:
				case 45:
				case 46:
				case 47:
				case 49:
				case 50:
				case 51:
				case 52:
				case 53:
				case 54:
				case 55:
				case 56:
				case 57:
				case 58:
				case 59:
				case 60:
				case 63:
				case 64:
				case 65:
				case 66:
				case 67:
				case 68:
				case 69:
				case 70:
				case 71:
				case 72:
				case 73:
				case 74:
				case 75:
				case 76:
				case 78:
				case 79:
				case 80:
				case 81:
				case 82:
				case 83:
				case 85:
				case 86:
				case 87:
				case 88:
				case 89:
				case 90:
				case 91:
				case 92:
				case 93:
				case 95:
				case 96:
				case 97:
				case 98:
				case 99:
				case 100:
				case 101:
				case 102:
				case 103:
				case 104:
				case 105:
				case 106:
				case 108:
				case 109:
				case 110:
				case 111:
				case 112:
				case 113:
				case 114:
				case 115:
				case 116:
				case 117:
				case 118:
				case 119:
				case 120:
				case 121:
				case 122:
				case 123:
				case 124:
				case 125:
				case 126:
				case 127:
				case 128:
				case 129:
				case 130:
				case 131:
				case 132:
				case 133:
				case 134:
				case 135:
				case 136:
				case 137:
				case 138:
				case 139:
				case 140:
				case 141:
				case 142:
				case 143:
				case 144:
				case 145:
				case 147:
				case 148:
				case 149:
				case 150:
				case 151:
				case 152:
				case 153:
				case 154:
				case 155:
				case 156:
				case 157:
				case 158:
				case 160:
				case 161:
				case 162:
				case 163:
				case 164:
				case 165:
				case 166:
				case 167:
				case 168:
				case 169:
				case 170:
				case 171:
				case 172:
				case 174:
				case 175:
				case 176:
				case 177:
				case 178:
				case 179:
				case 181:
				case 182:
				case 183:
				case 184:
				case 185:
				case 186:
				case 187:
				case 188:
				case 189:
				case 190:
				case 191:
				case 192:
				case 193:
				case 194:
				case 195:
				case 196:
				case 197:
				case 198:
				case 199:
				case 200:
				case 201:
				case 202:
				case 203:
				case 204:
				case 205:
				case 206:
				case 207:
				case 208:
				case 209:
				case 210:
				case 211:
				case 212:
				case 213:
				case 214:
				case 215:
				case 216:
				case 217:
				case 218:
				case 219:
				case 220:
				case 221:
				case 222:
				case 223:
				case 224:
				case 225:
				case 226:
				case 227:
				case 228:
				case 229:
				case 230:
				case 231:
				case 233:
				case 234:
				case 235:
				case 236:
				case 237:
				case 238:
				case 239:
				case 240:
				case 241:
				case 242:
				case 243:
				case 244:
				case 245:
				case 246:
				case 247:
				case 248:
				case 249:
				case 250:
				case 252:
				case 253:
				case 254:
				case 255:
				case 256:
				case 257:
				case 258:
				case 259:
				case 260:
				case 261:
				case 262:
				case 263:
				case 264:
				case 265:
				case 266:
				case 267:
				case 268:
				case 269:
				case 270:
				case 271:
				case 272:
				case 273:
				case 274:
				case 275:
				case 276:
				case 277:
				case 278:
				case 279:
				case 280:
				case 281:
				case 282:
				case 283:
				case 284:
				case 285:
				case 286:
				case 287:
				case 289:
				case 290:
				case 291:
				case 292:
				case 293:
				case 294:
				case 295:
				case 296:
				case 297:
				case 298:
				case 299:
				case 300:
				case 301:
				case 302:
				case 303:
				case 304:
				case 305:
				case 306:
				case 307:
				case 308:
				case 309:
				case 310:
				case 311:
				case 312:
				case 313:
				case 314:
				case 315:
				case 316:
				case 317:
				case 318:
				case 319:
				case 321:
				case 322:
				case 323:
				case 324:
				case 325:
				case 326:
				case 328:
				case 329:
				case 330:
				case 331:
				case 332:
				case 333:
				case 334:
				case 335:
				case 336:
				case 337:
				case 338:
				case 339:
				case 340:
				case 341:
				case 342:
				case 343:
				case 344:
				case 345:
				case 346:
				case 347:
				case 348:
				case 349:
				case 350:
				case 352:
				case 353:
				case 354:
				case 355:
				case 356:
				case 357:
				case 358:
				case 359:
				case 360:
				case 361:
				case 362:
				case 363:
				case 364:
				case 365:
				case 366:
				case 367:
				case 368:
				case 369:
				case 370:
				case 372:
				case 373:
				case 374:
				case 375:
				case 376:
				case 377:
				case 378:
				case 379:
				case 380:
				case 381:
				case 382:
				case 383:
				case 384:
				case 385:
				case 386:
				case 387:
				case 388:
				case 389:
				case 390:
				case 391:
				case 392:
				case 394:
				case 395:
				case 397:
				case 398:
				case 399:
				case 400:
				case 401:
				case 402:
				case 403:
				case 404:
				case 405:
				case 406:
				case 407:
				case 408:
				case 409:
				case 410:
				case 412:
				case 413:
				case 414:
				case 415:
				case 417:
				case 418:
				case 419:
				case 420:
				case 421:
				case 422:
				case 423:
				case 424:
				case 425:
				case 426:
				case 427:
				case 428:
				case 429:
				case 430:
				case 431:
				case 434:
				case 435:
				case 436:
				case 437:
				case 438:
				case 439:
				case 440:
				case 441:
				case 442:
				case 443:
				case 444:
				case 446:
				case 447:
				case 448:
				case 449:
				case 450:
				case 451:
				case 452:
				case 453:
				case 454:
				case 455:
				case 456:
				case 457:
				case 458:
				case 459:
				case 460:
				case 461:
				case 462:
				case 463:
				case 464:
				case 465:
				case 466:
				case 467:
				case 468:
				case 469:
				case 470:
				case 471:
				case 472:
				case 473:
				case 475:
				case 476:
				case 477:
				case 478:
				case 479:
				case 480:
				case 481:
				case 482:
				case 483:
				case 484:
				case 485:
				case 486:
				case 487:
				case 488:
				case 489:
				case 490:
				case 491:
				case 492:
				case 493:
				case 494:
				case 495:
				case 496:
				case 497:
				case 498:
				case 499:
				case 500:
				case 501:
				case 502:
				case 503:
				case 504:
				case 505:
				case 506:
				case 507:
				case 508:
				case 509:
				case 510:
				case 511:
				case 512:
				case 513:
				case 514:
				case 515:
				case 516:
				case 517:
				case 518:
				case 519:
				case 520:
				case 521:
				case 522:
				case 523:
				case 524:
				case 525:
				case 526:
				case 527:
				case 528:
				case 529:
				case 530:
				case 531:
				case 532:
				case 533:
				case 534:
				case 535:
				case 536:
				case 537:
				case 538:
				case 539:
				case 540:
				case 541:
				case 542:
				case 543:
				case 544:
				case 545:
				case 547:
				case 548:
				case 549:
				case 550:
				case 551:
				case 552:
				case 553:
				case 555:
				case 556:
				case 557:
				case 558:
				case 559:
				case 560:
				case 561:
				case 562:
				case 563:
				case 564:
				case 565:
				case 566:
				case 567:
				case 568:
				case 569:
				case 572:
				case 574:
				case 575:
				case 576:
				case 577:
				case 578:
				case 579:
				case 580:
				case 581:
				case 582:
				case 583:
				case 584:
				case 586:
				case 587:
				case 588:
				case 589:
				case 590:
				case 591:
				case 592:
				case 593:
				case 594:
				case 595:
				case 596:
				case 597:
				case 598:
				case 599:
				case 600:
				case 602:
				case 603:
				case 604:
				case 605:
				case 606:
				case 607:
				case 608:
				case 609:
				case 610:
				case 611:
				case 612:
				case 613:
				case 614:
				case 615:
				case 616:
				case 617:
				case 618:
				case 619:
				case 620:
				case 621:
				case 622:
				case 623:
				case 624:
				case 625:
				case 626:
				case 627:
				case 628:
				case 629:
				case 630:
				case 632:
				case 633:
				case 634:
				case 635:
				case 636:
				case 637:
				case 638:
				case 639:
				case 640:
				case 641:
				case 642:
				case 643:
				case 644:
				case 645:
				case 646:
				case 647:
				case 648:
				case 649:
				case 650:
				case 651:
				case 653:
				case 654:
				case 655:
				case 656:
				case 657:
				case 658:
				case 659:
				case 660:
				case 661:
				case 662:
				case 663:
				case 664:
				case 665:
				case 666:
				case 667:
				case 668:
				case 670:
				case 671:
				case 672:
				case 673:
				case 674:
				case 675:
				case 676:
				case 677:
				case 678:
				case 679:
				case 680:
				case 681:
				case 682:
				case 683:
				case 684:
				case 685:
				case 686:
				case 687:
				case 689:
				case 690:
				case 692:
				case 693:
				case 694:
				case 696:
				case 697:
				case 698:
				case 699:
				case 700:
				case 701:
				case 702:
				case 703:
				case 704:
				case 705:
				case 706:
				case 707:
				case 708:
				case 709:
				case 710:
				case 711:
				case 712:
				case 713:
				case 714:
				case 715:
				case 716:
				case 717:
				case 718:
				case 719:
				case 720:
				case 721:
				case 722:
				case 723:
				case 724:
				case 725:
				case 726:
				case 727:
				case 728:
				case 729:
				case 730:
				case 731:
				case 732:
				case 733:
				case 734:
				case 735:
				case 736:
				case 737:
				case 738:
				case 739:
				case 740:
				case 741:
				case 742:
				case 743:
				case 744:
				case 745:
				case 746:
				case 747:
				case 748:
				case 749:
				case 750:
				case 751:
				case 752:
				case 753:
				case 754:
				case 755:
				case 756:
				case 758:
				case 759:
				case 760:
				case 761:
				case 762:
				case 763:
				case 764:
				case 765:
				case 766:
				case 767:
				case 768:
				case 769:
				case 770:
				case 771:
				case 772:
				case 773:
				case 774:
				case 775:
				case 777:
				case 778:
				case 779:
				case 780:
				case 781:
				case 782:
				case 783:
				case 784:
				case 785:
				case 786:
				case 787:
				case 788:
				case 789:
				case 790:
				case 791:
				case 792:
				case 793:
				case 794:
				case 795:
				case 796:
				case 797:
				case 798:
				case 799:
				case 800:
				case 801:
				case 802:
				case 803:
				case 804:
				case 805:
				case 806:
				case 807:
				case 808:
				case 809:
				case 810:
				case 811:
				case 812:
				case 813:
				case 814:
				case 815:
				case 816:
				case 817:
				case 818:
				case 819:
				case 820:
				case 821:
				case 822:
				case 823:
				case 824:
				case 825:
				case 826:
				case 827:
				case 828:
				case 829:
				case 830:
				case 831:
				case 832:
				case 833:
				case 834:
				case 835:
				case 836:
				case 837:
				case 838:
				case 839:
				case 840:
				case 841:
				case 843:
				case 844:
				case 845:
				case 846:
				case 847:
				case 848:
				case 849:
				case 850:
				case 851:
				case 852:
				case 853:
				case 854:
				case 855:
				case 856:
				case 857:
				case 858:
				case 859:
				case 861:
				case 862:
				case 863:
				case 864:
				case 865:
				case 866:
				case 867:
				case 868:
				case 869:
				case 870:
				case 871:
				case 872:
				case 873:
				case 874:
				case 875:
				case 876:
				case 877:
				case 878:
				case 879:
				case 880:
				case 881:
				case 882:
				case 883:
				case 884:
				case 885:
				case 886:
				case 888:
				case 889:
				case 890:
				case 891:
				case 892:
				case 893:
				case 894:
				case 895:
				case 896:
				case 897:
				case 898:
				case 899:
				case 900:
				case 901:
				case 902:
				case 903:
				case 904:
				case 905:
				case 906:
				case 907:
				case 908:
				case 909:
				case 910:
				case 911:
				case 912:
				case 913:
				case 914:
				case 915:
				case 916:
				case 917:
				case 918:
				case 919:
				case 920:
				case 921:
				case 922:
				case 923:
				case 924:
				case 925:
				case 926:
				case 927:
				case 928:
				case 929:
				case 930:
				case 931:
				case 932:
				case 933:
				case 934:
				case 935:
				case 936:
				case 937:
				case 938:
				case 939:
				case 940:
				case 941:
				case 942:
				case 943:
				case 944:
				case 945:
				case 946:
				case 947:
				case 948:
				case 949:
				case 950:
				case 951:
				case 952:
				case 954:
				case 955:
				case 956:
				case 957:
				case 958:
				case 959:
				case 960:
				case 961:
				case 962:
				case 963:
				case 964:
				case 965:
				case 966:
				case 967:
				case 968:
				case 969:
				case 970:
				case 971:
				case 972:
				case 973:
				case 974:
				case 975:
				case 976:
				case 977:
				case 978:
				case 979:
				case 980:
				case 981:
				case 982:
				case 983:
				case 984:
				case 985:
				case 986:
				case 987:
				case 988:
				case 989:
				case 990:
				case 991:
				case 992:
				case 993:
				case 994:
				case 995:
				case 996:
				case 997:
				case 998:
				case 999:
				case 1000:
				case 1001:
				case 1002:
				case 1003:
				case 1004:
				case 1005:
				case 1006:
				case 1007:
				case 1008:
				case 1009:
				case 1010:
				case 1011:
				case 1012:
				case 1013:
				case 1014:
				case 1015:
				case 1016:
				case 1017:
				case 1018:
				case 1019:
				case 1020:
				case 1021:
				case 1022:
				case 1023:
				case 1024:
				case 1025:
				case 1026:
				case 1027:
				case 1028:
				case 1029:
				case 1030:
				case 1031:
				case 1032:
				case 1033:
				case 1034:
				case 1035:
				case 1036:
				case 1037:
				case 1038:
				case 1039:
				case 1040:
				case 1041:
				case 1042:
				case 1043:
				case 1044:
				case 1045:
				case 1046:
				case 1047:
				case 1048:
				case 1049:
				case 1050:
				case 1051:
				case 1052:
				case 1053:
				case 1054:
				case 1055:
				case 1056:
				case 1057:
				case 1058:
				case 1059:
				case 1060:
				case 1061:
				case 1062:
				case 1063:
				case 1064:
				case 1065:
				case 1066:
				case 1067:
				case 1068:
				case 1069:
				case 1070:
				case 1071:
				case 1072:
				case 1074:
				case 1075:
				case 1076:
				case 1077:
				case 1078:
				case 1079:
				case 1080:
				case 1081:
				case 1082:
				case 1083:
				case 1084:
				case 1085:
				case 1086:
				case 1087:
				case 1089:
				case 1090:
				case 1091:
				case 1092:
				case 1093:
				case 1094:
				case 1095:
				case 1096:
				case 1098:
				case 1099:
				case 1100:
				case 1101:
				case 1102:
				case 1103:
				case 1104:
				case 1105:
				case 1106:
				case 1107:
				case 1108:
				case 1109:
				case 1110:
				case 1111:
				case 1112:
				case 1113:
				case 1114:
				case 1116:
				case 1117:
				case 1118:
				case 1119:
				case 1120:
				case 1121:
				case 1122:
				case 1123:
				case 1124:
				case 1125:
				case 1127:
				case 1129:
				case 1130:
				case 1131:
				case 1132:
				case 1133:
				case 1134:
				case 1135:
				case 1136:
				case 1137:
				case 1138:
				case 1139:
				case 1140:
				case 1142:
				case 1143:
				case 1144:
				case 1145:
				case 1146:
				case 1147:
				case 1148:
				case 1149:
				case 1150:
				case 1151:
				case 1152:
				case 1153:
				case 1154:
				case 1155:
				case 1156:
				case 1157:
				case 1158:
				case 1159:
				case 1160:
				case 1161:
				case 1162:
				case 1163:
				case 1164:
				case 1165:
				case 1166:
				case 1167:
				case 1169:
				case 1170:
				case 1171:
				case 1173:
				case 1174:
				case 1175:
				case 1176:
				case 1177:
				case 1178:
				case 1179:
				case 1180:
				case 1181:
				case 1182:
				case 1183:
				case 1184:
				case 1185:
				case 1186:
				case 1187:
				case 1188:
				case 1189:
				case 1190:
				case 1191:
				case 1192:
				case 1193:
				case 1194:
				case 1195:
				case 1197:
				case 1198:
				case 1199:
				case 1200:
				case 1201:
				case 1202:
				case 1203:
				case 1204:
				case 1205:
				case 1206:
				case 1207:
				case 1208:
				case 1209:
				case 1210:
				case 1211:
				case 1212:
				case 1213:
				case 1214:
				case 1215:
				case 1216:
				case 1217:
				case 1218:
				case 1219:
				case 1220:
				case 1221:
				case 1222:
				case 1223:
				case 1224:
				case 1225:
				case 1226:
				case 1228:
				case 1229:
				case 1230:
				case 1231:
				case 1232:
				case 1236:
				case 1237:
				case 1241:
				case 1242:
				case 1243:
				case 1244:
				case 1245:
				case 1246:
				case 1247:
				case 1248:
				case 1249:
				case 1250:
				case 1252:
				case 1253:
				case 1254:
				case 1255:
				case 1256:
				case 1257:
				case 1258:
				case 1259:
				case 1260:
				case 1261:
				case 1262:
				case 1263:
				case 1264:
				case 1265:
				case 1266:
				case 1267:
				case 1268:
				case 1269:
				case 1270:
				case 1271:
				case 1272:
				case 1273:
				case 1274:
				case 1275:
				case 1276:
				case 1277:
				case 1278:
				case 1279:
				case 1280:
				case 1281:
				case 1282:
				case 1283:
				case 1284:
				case 1285:
				case 1286:
				case 1287:
				case 1288:
				case 1289:
				case 1290:
				case 1291:
				case 1292:
				case 1293:
				case 1294:
				case 1295:
				case 1296:
				case 1297:
				case 1298:
				case 1299:
				case 1300:
				case 1301:
				case 1302:
				case 1303:
				case 1304:
				case 1305:
				case 1306:
				case 1308:
				case 1309:
				case 1310:
				case 1311:
				case 1312:
				case 1313:
				case 1314:
				case 1315:
				case 1316:
				case 1317:
				case 1318:
				case 1319:
				case 1320:
				case 1321:
				case 1322:
				case 1323:
				case 1325:
				case 1326:
				case 1327:
				case 1328:
				case 1329:
				case 1330:
				case 1331:
				case 1332:
				case 1333:
				case 1334:
				case 1335:
				case 1336:
				case 1337:
				case 1338:
				case 1339:
				case 1340:
				case 1341:
				case 1342:
				case 1343:
				case 1344:
				case 1345:
				case 1346:
				case 1347:
				case 1348:
				case 1349:
				case 1350:
				case 1351:
				case 1352:
				case 1353:
				case 1354:
				case 1355:
				case 1356:
				case 1357:
				case 1358:
				case 1359:
				case 1360:
				case 1361:
				case 1362:
				case 1363:
				case 1364:
				case 1365:
				case 1366:
				case 1367:
				case 1368:
				case 1369:
				case 1370:
				case 1371:
				case 1372:
				case 1373:
				case 1374:
				case 1375:
				case 1376:
				case 1377:
				case 1378:
				case 1379:
				case 1380:
				case 1381:
				case 1382:
				case 1383:
				case 1384:
				case 1385:
				case 1386:
				case 1387:
				case 1388:
				case 1389:
				case 1390:
				case 1391:
				case 1392:
				case 1393:
				case 1394:
				case 1395:
				case 1396:
				case 1397:
				case 1399:
				case 1400:
				case 1401:
				case 1402:
				case 1403:
				case 1404:
				case 1405:
				case 1406:
				case 1407:
				case 1408:
				case 1409:
				case 1410:
				case 1411:
				case 1412:
				case 1413:
				case 1414:
				case 1416:
				case 1417:
				case 1418:
				case 1419:
				case 1420:
				case 1421:
				case 1422:
				case 1423:
				case 1424:
				case 1425:
				case 1426:
				case 1427:
				case 1428:
				case 1429:
				case 1430:
				case 1431:
				case 1432:
				case 1433:
				case 1435:
				case 1436:
				case 1437:
				case 1438:
				case 1439:
				case 1440:
				case 1441:
				case 1442:
				case 1443:
				case 1444:
				case 1445:
				case 1446:
				case 1447:
				case 1448:
				case 1449:
				case 1450:
				case 1451:
				case 1452:
				case 1453:
				case 1454:
				case 1455:
				case 1456:
				case 1457:
				case 1458:
				case 1459:
				case 1460:
				case 1461:
				case 1462:
				case 1463:
				case 1464:
				case 1465:
				case 1466:
				case 1467:
				case 1468:
				case 1469:
				case 1470:
				case 1471:
				case 1472:
				case 1473:
				case 1474:
				case 1475:
				case 1476:
				case 1477:
				case 1478:
				case 1479:
				case 1480:
				case 1481:
				case 1482:
				case 1483:
				case 1484:
				case 1485:
				case 1486:
				case 1487:
				case 1488:
				case 1489:
				case 1491:
				case 1492:
				case 1493:
				case 1494:
				case 1495:
				case 1496:
				case 1497:
				case 1499:
				case 1500:
				case 1501:
				case 1502:
				case 1503:
				case 1504:
				case 1505:
				case 1506:
				case 1507:
				case 1508:
				case 1509:
				case 1510:
				case 1511:
				case 1512:
				case 1513:
				case 1514:
				case 1515:
				case 1516:
				case 1518:
				case 1519:
				case 1520:
				case 1521:
				case 1522:
				case 1523:
				case 1524:
				case 1525:
				case 1526:
				case 1527:
				case 1528:
				case 1529:
				case 1530:
				case 1531:
				case 1532:
				case 1533:
				case 1534:
				case 1536:
				case 1537:
				case 1538:
				case 1539:
				case 1540:
				case 1541:
				case 1542:
				case 1543:
				case 1544:
				case 1545:
				case 1546:
				case 1547:
				case 1548:
				case 1549:
				case 1550:
				case 1551:
				case 1552:
				case 1553:
				case 1554:
				case 1555:
				case 1556:
				case 1557:
				case 1558:
				case 1559:
				case 1560:
				case 1561:
				case 1562:
				case 1563:
				case 1564:
				case 1565:
				case 1566:
				case 1567:
				case 1568:
				case 1570:
				case 1571:
				case 1572:
				case 1573:
				case 1574:
				case 1575:
				case 1576:
				case 1577:
				case 1578:
				case 1579:
				case 1580:
				case 1581:
				case 1582:
				case 1583:
				case 1584:
				case 1585:
				case 1586:
				case 1587:
				case 1588:
				case 1589:
				case 1590:
				case 1591:
				case 1592:
				case 1593:
				case 1594:
				case 1595:
				case 1596:
				case 1597:
				case 1598:
				case 1599:
				case 1600:
				case 1601:
				case 1602:
				case 1603:
				case 1604:
				case 1605:
				case 1606:
				case 1607:
				case 1608:
				case 1609:
				case 1610:
				case 1611:
				case 1612:
				case 1613:
				case 1614:
				case 1615:
				case 1616:
				case 1617:
				case 1618:
				case 1619:
				case 1620:
				case 1621:
				case 1622:
				case 1623:
				case 1624:
				case 1625:
				case 1626:
				case 1628:
				case 1629:
				case 1630:
				case 1631:
				case 1632:
				case 1633:
				case 1634:
				case 1635:
				case 1636:
				case 1637:
				case 1638:
				case 1639:
				case 1640:
				case 1641:
				case 1642:
				case 1643:
				case 1644:
				case 1645:
				case 1646:
				case 1647:
				case 1648:
				case 1649:
				case 1650:
				case 1651:
				case 1652:
				case 1653:
				case 1654:
				case 1655:
				case 1656:
				case 1657:
				case 1658:
				case 1659:
				case 1660:
				case 1661:
				case 1662:
				case 1663:
				case 1664:
				case 1665:
				case 1666:
				case 1667:
				case 1668:
				case 1669:
				case 1670:
				case 1671:
				case 1672:
				case 1673:
				case 1674:
				case 1675:
				case 1676:
				case 1677:
				case 1678:
				case 1679:
				case 1680:
				case 1681:
				case 1682:
				case 1683:
				case 1684:
				case 1685:
				case 1686:
				case 1687:
				case 1688:
				case 1689:
				case 1690:
				case 1691:
				case 1692:
				case 1693:
				case 1694:
				case 1695:
				case 1696:
				case 1697:
				case 1698:
				case 1699:
				case 1700:
				case 1701:
				case 1702:
				case 1703:
				case 1704:
				case 1705:
				case 1706:
				case 1707:
				case 1708:
				case 1709:
				case 1710:
				case 1711:
				case 1712:
				case 1713:
				case 1714:
				case 1715:
				case 1716:
				case 1717:
				case 1718:
				case 1719:
				case 1720:
				case 1721:
				case 1722:
				case 1723:
				case 1724:
				case 1725:
				case 1726:
				case 1727:
				case 1728:
				case 1729:
				case 1730:
				case 1731:
				case 1732:
				case 1733:
				case 1734:
				case 1735:
				case 1736:
				case 1737:
				case 1738:
				case 1739:
				case 1740:
				case 1741:
				case 1742:
				case 1743:
				case 1744:
				case 1745:
				case 1746:
				case 1747:
				case 1748:
				case 1749:
				case 1750:
				case 1751:
				case 1752:
				case 1753:
				case 1754:
				case 1755:
				case 1756:
				case 1757:
				case 1758:
				case 1759:
				case 1760:
				case 1761:
				case 1762:
				case 1763:
				case 1764:
				case 1765:
				case 1766:
				case 1767:
				case 1768:
				case 1769:
				case 1770:
				case 1771:
				case 1772:
				case 1773:
				case 1774:
				case 1775:
				case 1776:
				case 1777:
				case 1778:
				case 1779:
				case 1780:
				case 1781:
				case 1782:
				case 1783:
				case 1784:
				case 1785:
				case 1786:
				case 1787:
				case 1788:
				case 1789:
				case 1790:
				case 1791:
				case 1792:
				case 1793:
				case 1794:
				case 1795:
				case 1796:
				case 1797:
				case 1798:
				case 1799:
				case 1800:
				case 1801:
				case 1802:
				case 1803:
				case 1804:
				case 1805:
				case 1806:
				case 1807:
				case 1808:
				case 1809:
				case 1810:
				case 1811:
				case 1812:
				case 1813:
				case 1814:
				case 1815:
				case 1816:
				case 1817:
				case 1818:
				case 1819:
				case 1820:
				case 1821:
				case 1822:
				case 1823:
				case 1824:
				case 1825:
				case 1826:
				case 1827:
				case 1828:
				case 1829:
				case 1830:
				case 1831:
				case 1832:
				case 1833:
				case 1834:
				case 1835:
				case 1836:
				case 1837:
				case 1838:
				case 1839:
				case 1840:
				case 1841:
				case 1842:
				case 1843:
				case 1844:
				case 1845:
				case 1846:
				case 1847:
				case 1848:
				case 1849:
				case 1850:
				case 1851:
				case 1852:
				case 1853:
				case 1854:
				case 1855:
				case 1856:
				case 1857:
				case 1858:
				case 1859:
				case 1860:
				case 1861:
				case 1862:
				case 1863:
				case 1864:
				case 1865:
				case 1866:
				case 1867:
				case 1868:
				case 1869:
				case 1870:
				case 1871:
				case 1872:
				case 1873:
				case 1874:
				case 1875:
				case 1876:
				case 1877:
				case 1878:
				case 1879:
				case 1880:
				case 1881:
				case 1882:
				case 1883:
				case 1884:
				case 1885:
				case 1886:
				case 1887:
				case 1888:
				case 1889:
				case 1890:
				case 1891:
				case 1892:
				case 1893:
				case 1894:
				case 1895:
				case 1896:
				case 1897:
				case 1898:
				case 1899:
				case 1900:
				case 1901:
				case 1902:
				case 1903:
				case 1904:
				case 1905:
				case 1906:
				case 1907:
				case 1908:
				case 1909:
				case 1910:
				case 1911:
				case 1912:
				case 1913:
				case 1914:
				case 1915:
				case 1916:
				case 1917:
				case 1918:
				case 1919:
				case 1920:
				case 1921:
				case 1922:
				case 1923:
				case 1924:
				case 1925:
				case 1926:
				case 1927:
				case 1928:
				case 1929:
				case 1930:
				case 1931:
				case 1932:
				case 1933:
				case 1934:
				case 1935:
				case 1936:
				case 1937:
				case 1939:
				case 1940:
				case 1941:
				case 1942:
				case 1943:
				case 1944:
				case 1945:
				case 1946:
				case 1947:
				case 1948:
				case 1949:
				case 1950:
				case 1951:
				case 1952:
				case 1953:
				case 1954:
				case 1955:
				case 1956:
				case 1957:
				case 1958:
				case 1959:
				case 1960:
				case 1961:
				case 1962:
				case 1963:
				case 1965:
				case 1966:
				case 1967:
				case 1968:
				case 1969:
				case 1970:
				case 1971:
				case 1972:
				case 1973:
				case 1974:
				case 1975:
				case 1976:
				case 1977:
				case 1978:
				case 1979:
				case 1980:
				case 1981:
				case 1982:
				case 1983:
				case 1984:
				case 1985:
				case 1986:
				case 1987:
				case 1988:
				case 1989:
				case 1990:
				case 1991:
				case 1992:
				case 1993:
				case 1994:
				case 1995:
				case 1996:
				case 1997:
				case 1998:
				case 1999:
				case 2000:
				case 2003:
				case 2004:
				case 2005:
				case 2006:
				case 2007:
				case 2008:
				case 2009:
				case 2010:
				case 2011:
				case 2012:
				case 2013:
				case 2014:
				case 2015:
				case 2016:
				case 2017:
				case 2018:
				case 2019:
				case 2020:
				case 2021:
				case 2022:
				case 2023:
				case 2024:
				case 2026:
				case 2027:
				case 2028:
				case 2029:
				case 2030:
				case 2031:
				case 2032:
				case 2033:
				case 2034:
				case 2035:
				case 2036:
				case 2037:
				case 2038:
				case 2039:
				case 2040:
				case 2041:
				case 2042:
				case 2043:
				case 2044:
				case 2045:
				case 2046:
				case 2047:
				case 2048:
				case 2049:
				case 2050:
				case 2051:
				case 2052:
				case 2053:
				case 2054:
				case 2055:
				case 2056:
				case 2057:
				case 2058:
				case 2059:
				case 2060:
				case 2061:
				case 2062:
				case 2063:
				case 2064:
				case 2065:
				case 2066:
				case 2067:
				case 2068:
				case 2069:
				case 2070:
				case 2071:
				case 2072:
				case 2074:
				case 2075:
				case 2076:
				case 2077:
				case 2078:
				case 2079:
				case 2080:
				case 2081:
				case 2082:
				case 2083:
				case 2084:
				case 2085:
				case 2086:
				case 2087:
				case 2088:
				case 2089:
				case 2090:
				case 2091:
				case 2092:
				case 2093:
				case 2094:
				case 2095:
				case 2096:
				case 2097:
				case 2098:
				case 2100:
				case 2101:
				case 2102:
				case 2103:
				case 2104:
				case 2105:
				case 2106:
				case 2107:
				case 2108:
				case 2109:
				case 2110:
				case 2111:
				case 2112:
				case 2113:
				case 2115:
				case 2116:
				case 2117:
				case 2118:
				case 2119:
				case 2120:
				case 2122:
				case 2123:
				case 2124:
				case 2125:
				case 2126:
				case 2128:
				case 2129:
				case 2130:
				case 2131:
				case 2132:
				case 2133:
				case 2134:
				case 2135:
				case 2136:
				case 2137:
				case 2138:
				case 2139:
				case 2140:
				case 2141:
				case 2142:
				case 2143:
				case 2145:
				case 2146:
				case 2147:
				case 2148:
				case 2149:
				case 2150:
				case 2151:
				case 2152:
				case 2153:
				case 2154:
				case 2155:
				case 2156:
				case 2157:
				case 2158:
				case 2159:
				case 2160:
				case 2161:
				case 2162:
				case 2163:
				case 2164:
				case 2165:
				case 2166:
				case 2168:
				case 2169:
				case 2170:
				case 2171:
				case 2172:
				case 2173:
				case 2174:
				case 2175:
				case 2176:
				case 2177:
				case 2178:
				case 2179:
				case 2180:
				case 2181:
				case 2182:
				case 2183:
				case 2184:
				case 2185:
				case 2186:
				case 2187:
				case 2188:
				case 2189:
				case 2191:
				case 2192:
				case 2193:
				case 2194:
				case 2195:
				case 2196:
				case 2197:
				case 2198:
				case 2199:
				case 2200:
				case 2201:
				case 2202:
				case 2203:
				case 2204:
				case 2205:
				case 2206:
				case 2207:
				case 2208:
				case 2209:
				case 2210:
				case 2211:
				case 2216:
				case 2220:
				case 2233:
				case 2240:
				case 2246:
				case 2252:
					{
					this.state = 8583;
					this.cursor_name();
					this.state = 8589;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
					if (_la===2223) {
						{
						this.state = 8584;
						this.match(PlSqlParser.LEFT_PAREN);
						this.state = 8586;
						this._errHandler.sync(this);
						_la = this._input.LA(1);
						if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & 2684352383) !== 0) || ((((_la - 64)) & ~0x1F) === 0 && ((1 << (_la - 64)) & 3220168703) !== 0) || ((((_la - 96)) & ~0x1F) === 0 && ((1 << (_la - 96)) & 4294965247) !== 0) || ((((_la - 128)) & ~0x1F) === 0 && ((1 << (_la - 128)) & 2147221503) !== 0) || ((((_la - 160)) & ~0x1F) === 0 && ((1 << (_la - 160)) & 4293910527) !== 0) || ((((_la - 192)) & ~0x1F) === 0 && ((1 << (_la - 192)) & 4294967295) !== 0) || ((((_la - 224)) & ~0x1F) === 0 && ((1 << (_la - 224)) & 4160749311) !== 0) || ((((_la - 256)) & ~0x1F) === 0 && ((1 << (_la - 256)) & 4294967295) !== 0) || ((((_la - 289)) & ~0x1F) === 0 && ((1 << (_la - 289)) & 2147483647) !== 0) || ((((_la - 321)) & ~0x1F) === 0 && ((1 << (_la - 321)) & 4294967295) !== 0) || ((((_la - 353)) & ~0x1F) === 0 && ((1 << (_la - 353)) & 4294705151) !== 0) || ((((_la - 385)) & ~0x1F) === 0 && ((1 << (_la - 385)) & 2080374527) !== 0) || ((((_la - 417)) & ~0x1F) === 0 && ((1 << (_la - 417)) & 4026433535) !== 0) || ((((_la - 449)) & ~0x1F) === 0 && ((1 << (_la - 449)) & 4261412863) !== 0) || ((((_la - 481)) & ~0x1F) === 0 && ((1 << (_la - 481)) & 4294967295) !== 0) || ((((_la - 513)) & ~0x1F) === 0 && ((1 << (_la - 513)) & 4294967295) !== 0) || ((((_la - 545)) & ~0x1F) === 0 && ((1 << (_la - 545)) & 3925868029) !== 0) || ((((_la - 577)) & ~0x1F) === 0 && ((1 << (_la - 577)) & 4278189823) !== 0) || ((((_la - 609)) & ~0x1F) === 0 && ((1 << (_la - 609)) & 4290772991) !== 0) || ((((_la - 641)) & ~0x1F) === 0 && ((1 << (_la - 641)) & 4026529791) !== 0) || ((((_la - 673)) & ~0x1F) === 0 && ((1 << (_la - 673)) & 4290478079) !== 0) || ((((_la - 705)) & ~0x1F) === 0 && ((1 << (_la - 705)) & 4294967295) !== 0) || ((((_la - 737)) & ~0x1F) === 0 && ((1 << (_la - 737)) & 4293918719) !== 0) || ((((_la - 769)) & ~0x1F) === 0 && ((1 << (_la - 769)) & 4294967167) !== 0) || ((((_la - 801)) & ~0x1F) === 0 && ((1 << (_la - 801)) & 4294967295) !== 0) || ((((_la - 833)) & ~0x1F) === 0 && ((1 << (_la - 833)) & 4160749055) !== 0) || ((((_la - 865)) & ~0x1F) === 0 && ((1 << (_la - 865)) & 4290772991) !== 0) || ((((_la - 897)) & ~0x1F) === 0 && ((1 << (_la - 897)) & 4294967295) !== 0) || ((((_la - 929)) & ~0x1F) === 0 && ((1 << (_la - 929)) & 4278190079) !== 0) || ((((_la - 961)) & ~0x1F) === 0 && ((1 << (_la - 961)) & 4294967295) !== 0) || ((((_la - 993)) & ~0x1F) === 0 && ((1 << (_la - 993)) & 4294967295) !== 0) || ((((_la - 1025)) & ~0x1F) === 0 && ((1 << (_la - 1025)) & 4294967295) !== 0) || ((((_la - 1057)) & ~0x1F) === 0 && ((1 << (_la - 1057)) & 2147483647) !== 0) || ((((_la - 1089)) & ~0x1F) === 0 && ((1 << (_la - 1089)) & 4227858431) !== 0) || ((((_la - 1121)) & ~0x1F) === 0 && ((1 << (_la - 1121)) & 4293918559) !== 0) || ((((_la - 1153)) & ~0x1F) === 0 && ((1 << (_la - 1153)) & 4294410239) !== 0) || ((((_la - 1185)) & ~0x1F) === 0 && ((1 << (_la - 1185)) & 4294965247) !== 0) || ((((_la - 1217)) & ~0x1F) === 0 && ((1 << (_la - 1217)) & 4279827455) !== 0) || ((((_la - 1249)) & ~0x1F) === 0 && ((1 << (_la - 1249)) & 4294967291) !== 0) || ((((_la - 1281)) & ~0x1F) === 0 && ((1 << (_la - 1281)) & 4294967295) !== 0) || ((((_la - 1313)) & ~0x1F) === 0 && ((1 << (_la - 1313)) & 4294965247) !== 0) || ((((_la - 1345)) & ~0x1F) === 0 && ((1 << (_la - 1345)) & 4294967295) !== 0) || ((((_la - 1377)) & ~0x1F) === 0 && ((1 << (_la - 1377)) & 4292870143) !== 0) || ((((_la - 1409)) & ~0x1F) === 0 && ((1 << (_la - 1409)) & 4261412799) !== 0) || ((((_la - 1441)) & ~0x1F) === 0 && ((1 << (_la - 1441)) & 4294967295) !== 0) || ((((_la - 1473)) & ~0x1F) === 0 && ((1 << (_la - 1473)) & 4261281791) !== 0) || ((((_la - 1505)) & ~0x1F) === 0 && ((1 << (_la - 1505)) & 3221221375) !== 0) || ((((_la - 1537)) & ~0x1F) === 0 && ((1 << (_la - 1537)) & 4294967295) !== 0) || ((((_la - 1570)) & ~0x1F) === 0 && ((1 << (_la - 1570)) & 4294967295) !== 0) || ((((_la - 1602)) & ~0x1F) === 0 && ((1 << (_la - 1602)) & 4261412863) !== 0) || ((((_la - 1634)) & ~0x1F) === 0 && ((1 << (_la - 1634)) & 4294967295) !== 0) || ((((_la - 1666)) & ~0x1F) === 0 && ((1 << (_la - 1666)) & 4294967295) !== 0) || ((((_la - 1698)) & ~0x1F) === 0 && ((1 << (_la - 1698)) & 4294967295) !== 0) || ((((_la - 1730)) & ~0x1F) === 0 && ((1 << (_la - 1730)) & 4294967295) !== 0) || ((((_la - 1762)) & ~0x1F) === 0 && ((1 << (_la - 1762)) & 4294967295) !== 0) || ((((_la - 1794)) & ~0x1F) === 0 && ((1 << (_la - 1794)) & 4294967295) !== 0) || ((((_la - 1826)) & ~0x1F) === 0 && ((1 << (_la - 1826)) & 4294967295) !== 0) || ((((_la - 1858)) & ~0x1F) === 0 && ((1 << (_la - 1858)) & 4294967295) !== 0) || ((((_la - 1890)) & ~0x1F) === 0 && ((1 << (_la - 1890)) & 4294967295) !== 0) || ((((_la - 1922)) & ~0x1F) === 0 && ((1 << (_la - 1922)) & 4294901759) !== 0) || ((((_la - 1954)) & ~0x1F) === 0 && ((1 << (_la - 1954)) & 4294966271) !== 0) || ((((_la - 1986)) & ~0x1F) === 0 && ((1 << (_la - 1986)) & 4294868991) !== 0) || ((((_la - 2018)) & ~0x1F) === 0 && ((1 << (_la - 2018)) & 4294967167) !== 0) || ((((_la - 2050)) & ~0x1F) === 0 && ((1 << (_la - 2050)) & 4286578687) !== 0) || ((((_la - 2082)) & ~0x1F) === 0 && ((1 << (_la - 2082)) & 4294836223) !== 0) || ((((_la - 2115)) & ~0x1F) === 0 && ((1 << (_la - 2115)) & 3758092223) !== 0) || ((((_la - 2147)) & ~0x1F) === 0 && ((1 << (_la - 2147)) & 4293918719) !== 0) || ((((_la - 2179)) & ~0x1F) === 0 && ((1 << (_la - 2179)) & 4294967295) !== 0) || ((((_la - 2211)) & ~0x1F) === 0 && ((1 << (_la - 2211)) & 541266915) !== 0) || _la===2246 || _la===2252) {
							{
							this.state = 8585;
							this.expressions();
							}
						}

						this.state = 8588;
						this.match(PlSqlParser.RIGHT_PAREN);
						}
					}

					}
					break;
				case 2223:
					{
					this.state = 8591;
					this.match(PlSqlParser.LEFT_PAREN);
					this.state = 8592;
					this.select_statement();
					this.state = 8593;
					this.match(PlSqlParser.RIGHT_PAREN);
					}
					break;
				default:
					throw new NoViableAltException(this);
				}
				}
				break;
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public forall_statement(): Forall_statementContext {
		let localctx: Forall_statementContext = new Forall_statementContext(this, this._ctx, this.state);
		this.enterRule(localctx, 976, PlSqlParser.RULE_forall_statement);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 8599;
			this.match(PlSqlParser.FORALL);
			this.state = 8600;
			this.index_name();
			this.state = 8601;
			this.match(PlSqlParser.IN);
			this.state = 8602;
			this.bounds_clause();
			this.state = 8603;
			this.sql_statement();
			this.state = 8606;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1462) {
				{
				this.state = 8604;
				this.match(PlSqlParser.SAVE);
				this.state = 8605;
				this.match(PlSqlParser.EXCEPTIONS);
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public bounds_clause(): Bounds_clauseContext {
		let localctx: Bounds_clauseContext = new Bounds_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 978, PlSqlParser.RULE_bounds_clause);
		let _la: number;
		try {
			this.state = 8621;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1115, this._ctx) ) {
			case 1:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 8608;
				this.lower_bound();
				this.state = 8609;
				this.match(PlSqlParser.DOUBLE_PERIOD);
				this.state = 8610;
				this.upper_bound();
				}
				break;
			case 2:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 8612;
				this.match(PlSqlParser.INDICES);
				this.state = 8613;
				this.match(PlSqlParser.OF);
				this.state = 8614;
				this.collection_name();
				this.state = 8616;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===107) {
					{
					this.state = 8615;
					this.between_bound();
					}
				}

				}
				break;
			case 3:
				this.enterOuterAlt(localctx, 3);
				{
				this.state = 8618;
				this.match(PlSqlParser.VALUES);
				this.state = 8619;
				this.match(PlSqlParser.OF);
				this.state = 8620;
				this.index_name();
				}
				break;
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public between_bound(): Between_boundContext {
		let localctx: Between_boundContext = new Between_boundContext(this, this._ctx, this.state);
		this.enterRule(localctx, 980, PlSqlParser.RULE_between_bound);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 8623;
			this.match(PlSqlParser.BETWEEN);
			this.state = 8624;
			this.lower_bound();
			this.state = 8625;
			this.match(PlSqlParser.AND);
			this.state = 8626;
			this.upper_bound();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public lower_bound(): Lower_boundContext {
		let localctx: Lower_boundContext = new Lower_boundContext(this, this._ctx, this.state);
		this.enterRule(localctx, 982, PlSqlParser.RULE_lower_bound);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 8628;
			this.concatenation(0);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public upper_bound(): Upper_boundContext {
		let localctx: Upper_boundContext = new Upper_boundContext(this, this._ctx, this.state);
		this.enterRule(localctx, 984, PlSqlParser.RULE_upper_bound);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 8630;
			this.concatenation(0);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public null_statement(): Null_statementContext {
		let localctx: Null_statementContext = new Null_statementContext(this, this._ctx, this.state);
		this.enterRule(localctx, 986, PlSqlParser.RULE_null_statement);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 8632;
			this.match(PlSqlParser.NULL_);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public raise_statement(): Raise_statementContext {
		let localctx: Raise_statementContext = new Raise_statementContext(this, this._ctx, this.state);
		this.enterRule(localctx, 988, PlSqlParser.RULE_raise_statement);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 8634;
			this.match(PlSqlParser.RAISE);
			this.state = 8636;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & 2684286839) !== 0) || ((((_la - 64)) & ~0x1F) === 0 && ((1 << (_la - 64)) & 3220168703) !== 0) || ((((_la - 96)) & ~0x1F) === 0 && ((1 << (_la - 96)) & 4294965247) !== 0) || ((((_la - 128)) & ~0x1F) === 0 && ((1 << (_la - 128)) & 2147221503) !== 0) || ((((_la - 160)) & ~0x1F) === 0 && ((1 << (_la - 160)) & 4293910527) !== 0) || ((((_la - 192)) & ~0x1F) === 0 && ((1 << (_la - 192)) & 4294967295) !== 0) || ((((_la - 224)) & ~0x1F) === 0 && ((1 << (_la - 224)) & 4160749311) !== 0) || ((((_la - 256)) & ~0x1F) === 0 && ((1 << (_la - 256)) & 4294967295) !== 0) || ((((_la - 289)) & ~0x1F) === 0 && ((1 << (_la - 289)) & 2147483647) !== 0) || ((((_la - 321)) & ~0x1F) === 0 && ((1 << (_la - 321)) & 3221225407) !== 0) || ((((_la - 353)) & ~0x1F) === 0 && ((1 << (_la - 353)) & 4294705151) !== 0) || ((((_la - 385)) & ~0x1F) === 0 && ((1 << (_la - 385)) & 2080372479) !== 0) || ((((_la - 417)) & ~0x1F) === 0 && ((1 << (_la - 417)) & 4026433535) !== 0) || ((((_la - 449)) & ~0x1F) === 0 && ((1 << (_la - 449)) & 4261412863) !== 0) || ((((_la - 481)) & ~0x1F) === 0 && ((1 << (_la - 481)) & 4294967295) !== 0) || ((((_la - 513)) & ~0x1F) === 0 && ((1 << (_la - 513)) & 4294967295) !== 0) || ((((_la - 545)) & ~0x1F) === 0 && ((1 << (_la - 545)) & 3925868029) !== 0) || ((((_la - 577)) & ~0x1F) === 0 && ((1 << (_la - 577)) & 4278189823) !== 0) || ((((_la - 609)) & ~0x1F) === 0 && ((1 << (_la - 609)) & 4290772991) !== 0) || ((((_la - 641)) & ~0x1F) === 0 && ((1 << (_la - 641)) & 4026529791) !== 0) || ((((_la - 673)) & ~0x1F) === 0 && ((1 << (_la - 673)) & 4290478079) !== 0) || ((((_la - 705)) & ~0x1F) === 0 && ((1 << (_la - 705)) & 4294967295) !== 0) || ((((_la - 737)) & ~0x1F) === 0 && ((1 << (_la - 737)) & 4293918719) !== 0) || ((((_la - 769)) & ~0x1F) === 0 && ((1 << (_la - 769)) & 4294967167) !== 0) || ((((_la - 801)) & ~0x1F) === 0 && ((1 << (_la - 801)) & 4294967295) !== 0) || ((((_la - 833)) & ~0x1F) === 0 && ((1 << (_la - 833)) & 4160749055) !== 0) || ((((_la - 865)) & ~0x1F) === 0 && ((1 << (_la - 865)) & 4290772991) !== 0) || ((((_la - 897)) & ~0x1F) === 0 && ((1 << (_la - 897)) & 4294967295) !== 0) || ((((_la - 929)) & ~0x1F) === 0 && ((1 << (_la - 929)) & 4278190079) !== 0) || ((((_la - 961)) & ~0x1F) === 0 && ((1 << (_la - 961)) & 4294967295) !== 0) || ((((_la - 993)) & ~0x1F) === 0 && ((1 << (_la - 993)) & 4294967295) !== 0) || ((((_la - 1025)) & ~0x1F) === 0 && ((1 << (_la - 1025)) & 4294967295) !== 0) || ((((_la - 1057)) & ~0x1F) === 0 && ((1 << (_la - 1057)) & 2147418111) !== 0) || ((((_la - 1089)) & ~0x1F) === 0 && ((1 << (_la - 1089)) & 4227858175) !== 0) || ((((_la - 1121)) & ~0x1F) === 0 && ((1 << (_la - 1121)) & 4293918559) !== 0) || ((((_la - 1153)) & ~0x1F) === 0 && ((1 << (_la - 1153)) & 4294410239) !== 0) || ((((_la - 1185)) & ~0x1F) === 0 && ((1 << (_la - 1185)) & 4294965247) !== 0) || ((((_la - 1217)) & ~0x1F) === 0 && ((1 << (_la - 1217)) & 4279827455) !== 0) || ((((_la - 1249)) & ~0x1F) === 0 && ((1 << (_la - 1249)) & 4294967291) !== 0) || ((((_la - 1281)) & ~0x1F) === 0 && ((1 << (_la - 1281)) & 4227858431) !== 0) || ((((_la - 1313)) & ~0x1F) === 0 && ((1 << (_la - 1313)) & 4294965247) !== 0) || ((((_la - 1345)) & ~0x1F) === 0 && ((1 << (_la - 1345)) & 4294967295) !== 0) || ((((_la - 1377)) & ~0x1F) === 0 && ((1 << (_la - 1377)) & 4292870143) !== 0) || ((((_la - 1409)) & ~0x1F) === 0 && ((1 << (_la - 1409)) & 4261412799) !== 0) || ((((_la - 1441)) & ~0x1F) === 0 && ((1 << (_la - 1441)) & 4294967295) !== 0) || ((((_la - 1473)) & ~0x1F) === 0 && ((1 << (_la - 1473)) & 4261281791) !== 0) || ((((_la - 1505)) & ~0x1F) === 0 && ((1 << (_la - 1505)) & 3221221375) !== 0) || ((((_la - 1537)) & ~0x1F) === 0 && ((1 << (_la - 1537)) & 4294967295) !== 0) || ((((_la - 1570)) & ~0x1F) === 0 && ((1 << (_la - 1570)) & 4294967295) !== 0) || ((((_la - 1602)) & ~0x1F) === 0 && ((1 << (_la - 1602)) & 4261412863) !== 0) || ((((_la - 1634)) & ~0x1F) === 0 && ((1 << (_la - 1634)) & 4294967295) !== 0) || ((((_la - 1666)) & ~0x1F) === 0 && ((1 << (_la - 1666)) & 4294967295) !== 0) || ((((_la - 1698)) & ~0x1F) === 0 && ((1 << (_la - 1698)) & 4294967295) !== 0) || ((((_la - 1730)) & ~0x1F) === 0 && ((1 << (_la - 1730)) & 4294967295) !== 0) || ((((_la - 1762)) & ~0x1F) === 0 && ((1 << (_la - 1762)) & 4294967295) !== 0) || ((((_la - 1794)) & ~0x1F) === 0 && ((1 << (_la - 1794)) & 4294967295) !== 0) || ((((_la - 1826)) & ~0x1F) === 0 && ((1 << (_la - 1826)) & 4294967295) !== 0) || ((((_la - 1858)) & ~0x1F) === 0 && ((1 << (_la - 1858)) & 4294967295) !== 0) || ((((_la - 1890)) & ~0x1F) === 0 && ((1 << (_la - 1890)) & 4294967295) !== 0) || ((((_la - 1922)) & ~0x1F) === 0 && ((1 << (_la - 1922)) & 4294901759) !== 0) || ((((_la - 1954)) & ~0x1F) === 0 && ((1 << (_la - 1954)) & 4294966271) !== 0) || ((((_la - 1986)) & ~0x1F) === 0 && ((1 << (_la - 1986)) & 4294868991) !== 0) || ((((_la - 2018)) & ~0x1F) === 0 && ((1 << (_la - 2018)) & 4294967167) !== 0) || ((((_la - 2050)) & ~0x1F) === 0 && ((1 << (_la - 2050)) & 4286578687) !== 0) || ((((_la - 2082)) & ~0x1F) === 0 && ((1 << (_la - 2082)) & 4294836223) !== 0) || ((((_la - 2115)) & ~0x1F) === 0 && ((1 << (_la - 2115)) & 3758092223) !== 0) || ((((_la - 2147)) & ~0x1F) === 0 && ((1 << (_la - 2147)) & 4293918719) !== 0) || ((((_la - 2179)) & ~0x1F) === 0 && ((1 << (_la - 2179)) & 4294965247) !== 0) || ((((_la - 2211)) & ~0x1F) === 0 && ((1 << (_la - 2211)) & 545) !== 0) || _la===2246 || _la===2252) {
				{
				this.state = 8635;
				this.exception_name();
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public return_statement(): Return_statementContext {
		let localctx: Return_statementContext = new Return_statementContext(this, this._ctx, this.state);
		this.enterRule(localctx, 990, PlSqlParser.RULE_return_statement);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 8638;
			this.match(PlSqlParser.RETURN);
			this.state = 8640;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & 2684352383) !== 0) || ((((_la - 64)) & ~0x1F) === 0 && ((1 << (_la - 64)) & 3220168703) !== 0) || ((((_la - 96)) & ~0x1F) === 0 && ((1 << (_la - 96)) & 4294965247) !== 0) || ((((_la - 128)) & ~0x1F) === 0 && ((1 << (_la - 128)) & 2147221503) !== 0) || ((((_la - 160)) & ~0x1F) === 0 && ((1 << (_la - 160)) & 4293910527) !== 0) || ((((_la - 192)) & ~0x1F) === 0 && ((1 << (_la - 192)) & 4294967295) !== 0) || ((((_la - 224)) & ~0x1F) === 0 && ((1 << (_la - 224)) & 4160749311) !== 0) || ((((_la - 256)) & ~0x1F) === 0 && ((1 << (_la - 256)) & 4294967295) !== 0) || ((((_la - 289)) & ~0x1F) === 0 && ((1 << (_la - 289)) & 2147483647) !== 0) || ((((_la - 321)) & ~0x1F) === 0 && ((1 << (_la - 321)) & 4294967295) !== 0) || ((((_la - 353)) & ~0x1F) === 0 && ((1 << (_la - 353)) & 4294705151) !== 0) || ((((_la - 385)) & ~0x1F) === 0 && ((1 << (_la - 385)) & 2080374527) !== 0) || ((((_la - 417)) & ~0x1F) === 0 && ((1 << (_la - 417)) & 4026433535) !== 0) || ((((_la - 449)) & ~0x1F) === 0 && ((1 << (_la - 449)) & 4261412863) !== 0) || ((((_la - 481)) & ~0x1F) === 0 && ((1 << (_la - 481)) & 4294967295) !== 0) || ((((_la - 513)) & ~0x1F) === 0 && ((1 << (_la - 513)) & 4294967295) !== 0) || ((((_la - 545)) & ~0x1F) === 0 && ((1 << (_la - 545)) & 3925868029) !== 0) || ((((_la - 577)) & ~0x1F) === 0 && ((1 << (_la - 577)) & 4278189823) !== 0) || ((((_la - 609)) & ~0x1F) === 0 && ((1 << (_la - 609)) & 4290772991) !== 0) || ((((_la - 641)) & ~0x1F) === 0 && ((1 << (_la - 641)) & 4026529791) !== 0) || ((((_la - 673)) & ~0x1F) === 0 && ((1 << (_la - 673)) & 4290478079) !== 0) || ((((_la - 705)) & ~0x1F) === 0 && ((1 << (_la - 705)) & 4294967295) !== 0) || ((((_la - 737)) & ~0x1F) === 0 && ((1 << (_la - 737)) & 4293918719) !== 0) || ((((_la - 769)) & ~0x1F) === 0 && ((1 << (_la - 769)) & 4294967167) !== 0) || ((((_la - 801)) & ~0x1F) === 0 && ((1 << (_la - 801)) & 4294967295) !== 0) || ((((_la - 833)) & ~0x1F) === 0 && ((1 << (_la - 833)) & 4160749055) !== 0) || ((((_la - 865)) & ~0x1F) === 0 && ((1 << (_la - 865)) & 4290772991) !== 0) || ((((_la - 897)) & ~0x1F) === 0 && ((1 << (_la - 897)) & 4294967295) !== 0) || ((((_la - 929)) & ~0x1F) === 0 && ((1 << (_la - 929)) & 4278190079) !== 0) || ((((_la - 961)) & ~0x1F) === 0 && ((1 << (_la - 961)) & 4294967295) !== 0) || ((((_la - 993)) & ~0x1F) === 0 && ((1 << (_la - 993)) & 4294967295) !== 0) || ((((_la - 1025)) & ~0x1F) === 0 && ((1 << (_la - 1025)) & 4294967295) !== 0) || ((((_la - 1057)) & ~0x1F) === 0 && ((1 << (_la - 1057)) & 2147483647) !== 0) || ((((_la - 1089)) & ~0x1F) === 0 && ((1 << (_la - 1089)) & 4227858431) !== 0) || ((((_la - 1121)) & ~0x1F) === 0 && ((1 << (_la - 1121)) & 4293918559) !== 0) || ((((_la - 1153)) & ~0x1F) === 0 && ((1 << (_la - 1153)) & 4294410239) !== 0) || ((((_la - 1185)) & ~0x1F) === 0 && ((1 << (_la - 1185)) & 4294965247) !== 0) || ((((_la - 1217)) & ~0x1F) === 0 && ((1 << (_la - 1217)) & 4279827455) !== 0) || ((((_la - 1249)) & ~0x1F) === 0 && ((1 << (_la - 1249)) & 4294967291) !== 0) || ((((_la - 1281)) & ~0x1F) === 0 && ((1 << (_la - 1281)) & 4294967295) !== 0) || ((((_la - 1313)) & ~0x1F) === 0 && ((1 << (_la - 1313)) & 4294965247) !== 0) || ((((_la - 1345)) & ~0x1F) === 0 && ((1 << (_la - 1345)) & 4294967295) !== 0) || ((((_la - 1377)) & ~0x1F) === 0 && ((1 << (_la - 1377)) & 4292870143) !== 0) || ((((_la - 1409)) & ~0x1F) === 0 && ((1 << (_la - 1409)) & 4261412799) !== 0) || ((((_la - 1441)) & ~0x1F) === 0 && ((1 << (_la - 1441)) & 4294967295) !== 0) || ((((_la - 1473)) & ~0x1F) === 0 && ((1 << (_la - 1473)) & 4261281791) !== 0) || ((((_la - 1505)) & ~0x1F) === 0 && ((1 << (_la - 1505)) & 3221221375) !== 0) || ((((_la - 1537)) & ~0x1F) === 0 && ((1 << (_la - 1537)) & 4294967295) !== 0) || ((((_la - 1570)) & ~0x1F) === 0 && ((1 << (_la - 1570)) & 4294967295) !== 0) || ((((_la - 1602)) & ~0x1F) === 0 && ((1 << (_la - 1602)) & 4261412863) !== 0) || ((((_la - 1634)) & ~0x1F) === 0 && ((1 << (_la - 1634)) & 4294967295) !== 0) || ((((_la - 1666)) & ~0x1F) === 0 && ((1 << (_la - 1666)) & 4294967295) !== 0) || ((((_la - 1698)) & ~0x1F) === 0 && ((1 << (_la - 1698)) & 4294967295) !== 0) || ((((_la - 1730)) & ~0x1F) === 0 && ((1 << (_la - 1730)) & 4294967295) !== 0) || ((((_la - 1762)) & ~0x1F) === 0 && ((1 << (_la - 1762)) & 4294967295) !== 0) || ((((_la - 1794)) & ~0x1F) === 0 && ((1 << (_la - 1794)) & 4294967295) !== 0) || ((((_la - 1826)) & ~0x1F) === 0 && ((1 << (_la - 1826)) & 4294967295) !== 0) || ((((_la - 1858)) & ~0x1F) === 0 && ((1 << (_la - 1858)) & 4294967295) !== 0) || ((((_la - 1890)) & ~0x1F) === 0 && ((1 << (_la - 1890)) & 4294967295) !== 0) || ((((_la - 1922)) & ~0x1F) === 0 && ((1 << (_la - 1922)) & 4294901759) !== 0) || ((((_la - 1954)) & ~0x1F) === 0 && ((1 << (_la - 1954)) & 4294966271) !== 0) || ((((_la - 1986)) & ~0x1F) === 0 && ((1 << (_la - 1986)) & 4294868991) !== 0) || ((((_la - 2018)) & ~0x1F) === 0 && ((1 << (_la - 2018)) & 4294967167) !== 0) || ((((_la - 2050)) & ~0x1F) === 0 && ((1 << (_la - 2050)) & 4286578687) !== 0) || ((((_la - 2082)) & ~0x1F) === 0 && ((1 << (_la - 2082)) & 4294836223) !== 0) || ((((_la - 2115)) & ~0x1F) === 0 && ((1 << (_la - 2115)) & 3758092223) !== 0) || ((((_la - 2147)) & ~0x1F) === 0 && ((1 << (_la - 2147)) & 4293918719) !== 0) || ((((_la - 2179)) & ~0x1F) === 0 && ((1 << (_la - 2179)) & 4294967295) !== 0) || ((((_la - 2211)) & ~0x1F) === 0 && ((1 << (_la - 2211)) & 541266915) !== 0) || _la===2246 || _la===2252) {
				{
				this.state = 8639;
				this.expression();
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public function_call(): Function_callContext {
		let localctx: Function_callContext = new Function_callContext(this, this._ctx, this.state);
		this.enterRule(localctx, 992, PlSqlParser.RULE_function_call);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 8643;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1118, this._ctx) ) {
			case 1:
				{
				this.state = 8642;
				this.match(PlSqlParser.CALL);
				}
				break;
			}
			this.state = 8645;
			this.routine_name();
			this.state = 8647;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===2223) {
				{
				this.state = 8646;
				this.function_argument();
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public procedure_call(): Procedure_callContext {
		let localctx: Procedure_callContext = new Procedure_callContext(this, this._ctx, this.state);
		this.enterRule(localctx, 994, PlSqlParser.RULE_procedure_call);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 8649;
			this.routine_name();
			this.state = 8651;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1120, this._ctx) ) {
			case 1:
				{
				this.state = 8650;
				this.function_argument();
				}
				break;
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public pipe_row_statement(): Pipe_row_statementContext {
		let localctx: Pipe_row_statementContext = new Pipe_row_statementContext(this, this._ctx, this.state);
		this.enterRule(localctx, 996, PlSqlParser.RULE_pipe_row_statement);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 8653;
			this.match(PlSqlParser.PIPE);
			this.state = 8654;
			this.match(PlSqlParser.ROW);
			this.state = 8655;
			this.match(PlSqlParser.LEFT_PAREN);
			this.state = 8656;
			this.expression();
			this.state = 8657;
			this.match(PlSqlParser.RIGHT_PAREN);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public body(): BodyContext {
		let localctx: BodyContext = new BodyContext(this, this._ctx, this.state);
		this.enterRule(localctx, 998, PlSqlParser.RULE_body);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 8659;
			this.match(PlSqlParser.BEGIN);
			this.state = 8660;
			this.seq_of_statements();
			this.state = 8667;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===468) {
				{
				this.state = 8661;
				this.match(PlSqlParser.EXCEPTION);
				this.state = 8663;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				do {
					{
					{
					this.state = 8662;
					this.exception_handler();
					}
					}
					this.state = 8665;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				} while (_la===2113);
				}
			}

			this.state = 8669;
			this.match(PlSqlParser.END);
			this.state = 8671;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1123, this._ctx) ) {
			case 1:
				{
				this.state = 8670;
				this.label_name();
				}
				break;
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public exception_handler(): Exception_handlerContext {
		let localctx: Exception_handlerContext = new Exception_handlerContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1000, PlSqlParser.RULE_exception_handler);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 8673;
			this.match(PlSqlParser.WHEN);
			this.state = 8674;
			this.exception_name();
			this.state = 8679;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			while (_la===1172) {
				{
				{
				this.state = 8675;
				this.match(PlSqlParser.OR);
				this.state = 8676;
				this.exception_name();
				}
				}
				this.state = 8681;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			}
			this.state = 8682;
			this.match(PlSqlParser.THEN);
			this.state = 8683;
			this.seq_of_statements();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public trigger_block(): Trigger_blockContext {
		let localctx: Trigger_blockContext = new Trigger_blockContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1002, PlSqlParser.RULE_trigger_block);
		try {
			let _alt: number;
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 8693;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1127, this._ctx) ) {
			case 1:
				{
				this.state = 8686;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 1125, this._ctx) ) {
				case 1:
					{
					this.state = 8685;
					this.match(PlSqlParser.DECLARE);
					}
					break;
				}
				this.state = 8689;
				this._errHandler.sync(this);
				_alt = 1;
				do {
					switch (_alt) {
					case 1:
						{
						{
						this.state = 8688;
						this.declare_spec();
						}
						}
						break;
					default:
						throw new NoViableAltException(this);
					}
					this.state = 8691;
					this._errHandler.sync(this);
					_alt = this._interp.adaptivePredict(this._input, 1126, this._ctx);
				} while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER);
				}
				break;
			}
			this.state = 8695;
			this.body();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public block(): BlockContext {
		let localctx: BlockContext = new BlockContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1004, PlSqlParser.RULE_block);
		try {
			let _alt: number;
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 8698;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1128, this._ctx) ) {
			case 1:
				{
				this.state = 8697;
				this.match(PlSqlParser.DECLARE);
				}
				break;
			}
			this.state = 8701;
			this._errHandler.sync(this);
			_alt = 1;
			do {
				switch (_alt) {
				case 1:
					{
					{
					this.state = 8700;
					this.declare_spec();
					}
					}
					break;
				default:
					throw new NoViableAltException(this);
				}
				this.state = 8703;
				this._errHandler.sync(this);
				_alt = this._interp.adaptivePredict(this._input, 1129, this._ctx);
			} while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER);
			this.state = 8705;
			this.body();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public sql_statement(): Sql_statementContext {
		let localctx: Sql_statementContext = new Sql_statementContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1006, PlSqlParser.RULE_sql_statement);
		try {
			this.state = 8711;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 475:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 8707;
				this.execute_immediate();
				}
				break;
			case 362:
			case 485:
			case 669:
			case 776:
			case 832:
			case 1490:
			case 2025:
			case 2121:
			case 2223:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 8708;
				this.data_manipulation_language_statements();
				}
				break;
			case 195:
			case 518:
			case 1133:
				this.enterOuterAlt(localctx, 3);
				{
				this.state = 8709;
				this.cursor_manipulation_statements();
				}
				break;
			case 218:
			case 1441:
			case 1461:
			case 1510:
				this.enterOuterAlt(localctx, 4);
				{
				this.state = 8710;
				this.transaction_control_statements();
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public execute_immediate(): Execute_immediateContext {
		let localctx: Execute_immediateContext = new Execute_immediateContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1008, PlSqlParser.RULE_execute_immediate);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 8713;
			this.match(PlSqlParser.EXECUTE);
			this.state = 8714;
			this.match(PlSqlParser.IMMEDIATE);
			this.state = 8715;
			this.expression();
			this.state = 8725;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 145:
			case 691:
				{
				this.state = 8716;
				this.into_clause();
				this.state = 8718;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===2063) {
					{
					this.state = 8717;
					this.using_clause();
					}
				}

				}
				break;
			case 2063:
				{
				this.state = 8720;
				this.using_clause();
				this.state = 8722;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===1430 || _la===1431) {
					{
					this.state = 8721;
					this.dynamic_returning_clause();
					}
				}

				}
				break;
			case 1430:
			case 1431:
				{
				this.state = 8724;
				this.dynamic_returning_clause();
				}
				break;
			case -1:
			case 1462:
			case 2241:
				break;
			default:
				break;
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public dynamic_returning_clause(): Dynamic_returning_clauseContext {
		let localctx: Dynamic_returning_clauseContext = new Dynamic_returning_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1010, PlSqlParser.RULE_dynamic_returning_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 8727;
			_la = this._input.LA(1);
			if(!(_la===1430 || _la===1431)) {
			this._errHandler.recoverInline(this);
			}
			else {
				this._errHandler.reportMatch(this);
			    this.consume();
			}
			this.state = 8728;
			this.into_clause();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public data_manipulation_language_statements(): Data_manipulation_language_statementsContext {
		let localctx: Data_manipulation_language_statementsContext = new Data_manipulation_language_statementsContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1012, PlSqlParser.RULE_data_manipulation_language_statements);
		try {
			this.state = 8737;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 832:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 8730;
				this.merge_statement();
				}
				break;
			case 776:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 8731;
				this.lock_table_statement();
				}
				break;
			case 1490:
			case 2121:
			case 2223:
				this.enterOuterAlt(localctx, 3);
				{
				this.state = 8732;
				this.select_statement();
				}
				break;
			case 2025:
				this.enterOuterAlt(localctx, 4);
				{
				this.state = 8733;
				this.update_statement();
				}
				break;
			case 362:
				this.enterOuterAlt(localctx, 5);
				{
				this.state = 8734;
				this.delete_statement();
				}
				break;
			case 669:
				this.enterOuterAlt(localctx, 6);
				{
				this.state = 8735;
				this.insert_statement();
				}
				break;
			case 485:
				this.enterOuterAlt(localctx, 7);
				{
				this.state = 8736;
				this.explain_statement();
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public cursor_manipulation_statements(): Cursor_manipulation_statementsContext {
		let localctx: Cursor_manipulation_statementsContext = new Cursor_manipulation_statementsContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1014, PlSqlParser.RULE_cursor_manipulation_statements);
		try {
			this.state = 8743;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1135, this._ctx) ) {
			case 1:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 8739;
				this.close_statement();
				}
				break;
			case 2:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 8740;
				this.open_statement();
				}
				break;
			case 3:
				this.enterOuterAlt(localctx, 3);
				{
				this.state = 8741;
				this.fetch_statement();
				}
				break;
			case 4:
				this.enterOuterAlt(localctx, 4);
				{
				this.state = 8742;
				this.open_for_statement();
				}
				break;
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public close_statement(): Close_statementContext {
		let localctx: Close_statementContext = new Close_statementContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1016, PlSqlParser.RULE_close_statement);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 8745;
			this.match(PlSqlParser.CLOSE);
			this.state = 8746;
			this.cursor_name();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public open_statement(): Open_statementContext {
		let localctx: Open_statementContext = new Open_statementContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1018, PlSqlParser.RULE_open_statement);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 8748;
			this.match(PlSqlParser.OPEN);
			this.state = 8749;
			this.cursor_name();
			this.state = 8755;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===2223) {
				{
				this.state = 8750;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 8752;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & 2684352383) !== 0) || ((((_la - 64)) & ~0x1F) === 0 && ((1 << (_la - 64)) & 3220168703) !== 0) || ((((_la - 96)) & ~0x1F) === 0 && ((1 << (_la - 96)) & 4294965247) !== 0) || ((((_la - 128)) & ~0x1F) === 0 && ((1 << (_la - 128)) & 2147221503) !== 0) || ((((_la - 160)) & ~0x1F) === 0 && ((1 << (_la - 160)) & 4293910527) !== 0) || ((((_la - 192)) & ~0x1F) === 0 && ((1 << (_la - 192)) & 4294967295) !== 0) || ((((_la - 224)) & ~0x1F) === 0 && ((1 << (_la - 224)) & 4160749311) !== 0) || ((((_la - 256)) & ~0x1F) === 0 && ((1 << (_la - 256)) & 4294967295) !== 0) || ((((_la - 289)) & ~0x1F) === 0 && ((1 << (_la - 289)) & 2147483647) !== 0) || ((((_la - 321)) & ~0x1F) === 0 && ((1 << (_la - 321)) & 4294967295) !== 0) || ((((_la - 353)) & ~0x1F) === 0 && ((1 << (_la - 353)) & 4294705151) !== 0) || ((((_la - 385)) & ~0x1F) === 0 && ((1 << (_la - 385)) & 2080374527) !== 0) || ((((_la - 417)) & ~0x1F) === 0 && ((1 << (_la - 417)) & 4026433535) !== 0) || ((((_la - 449)) & ~0x1F) === 0 && ((1 << (_la - 449)) & 4261412863) !== 0) || ((((_la - 481)) & ~0x1F) === 0 && ((1 << (_la - 481)) & 4294967295) !== 0) || ((((_la - 513)) & ~0x1F) === 0 && ((1 << (_la - 513)) & 4294967295) !== 0) || ((((_la - 545)) & ~0x1F) === 0 && ((1 << (_la - 545)) & 3925868029) !== 0) || ((((_la - 577)) & ~0x1F) === 0 && ((1 << (_la - 577)) & 4278189823) !== 0) || ((((_la - 609)) & ~0x1F) === 0 && ((1 << (_la - 609)) & 4290772991) !== 0) || ((((_la - 641)) & ~0x1F) === 0 && ((1 << (_la - 641)) & 4026529791) !== 0) || ((((_la - 673)) & ~0x1F) === 0 && ((1 << (_la - 673)) & 4290478079) !== 0) || ((((_la - 705)) & ~0x1F) === 0 && ((1 << (_la - 705)) & 4294967295) !== 0) || ((((_la - 737)) & ~0x1F) === 0 && ((1 << (_la - 737)) & 4293918719) !== 0) || ((((_la - 769)) & ~0x1F) === 0 && ((1 << (_la - 769)) & 4294967167) !== 0) || ((((_la - 801)) & ~0x1F) === 0 && ((1 << (_la - 801)) & 4294967295) !== 0) || ((((_la - 833)) & ~0x1F) === 0 && ((1 << (_la - 833)) & 4160749055) !== 0) || ((((_la - 865)) & ~0x1F) === 0 && ((1 << (_la - 865)) & 4290772991) !== 0) || ((((_la - 897)) & ~0x1F) === 0 && ((1 << (_la - 897)) & 4294967295) !== 0) || ((((_la - 929)) & ~0x1F) === 0 && ((1 << (_la - 929)) & 4278190079) !== 0) || ((((_la - 961)) & ~0x1F) === 0 && ((1 << (_la - 961)) & 4294967295) !== 0) || ((((_la - 993)) & ~0x1F) === 0 && ((1 << (_la - 993)) & 4294967295) !== 0) || ((((_la - 1025)) & ~0x1F) === 0 && ((1 << (_la - 1025)) & 4294967295) !== 0) || ((((_la - 1057)) & ~0x1F) === 0 && ((1 << (_la - 1057)) & 2147483647) !== 0) || ((((_la - 1089)) & ~0x1F) === 0 && ((1 << (_la - 1089)) & 4227858431) !== 0) || ((((_la - 1121)) & ~0x1F) === 0 && ((1 << (_la - 1121)) & 4293918559) !== 0) || ((((_la - 1153)) & ~0x1F) === 0 && ((1 << (_la - 1153)) & 4294410239) !== 0) || ((((_la - 1185)) & ~0x1F) === 0 && ((1 << (_la - 1185)) & 4294965247) !== 0) || ((((_la - 1217)) & ~0x1F) === 0 && ((1 << (_la - 1217)) & 4279827455) !== 0) || ((((_la - 1249)) & ~0x1F) === 0 && ((1 << (_la - 1249)) & 4294967291) !== 0) || ((((_la - 1281)) & ~0x1F) === 0 && ((1 << (_la - 1281)) & 4294967295) !== 0) || ((((_la - 1313)) & ~0x1F) === 0 && ((1 << (_la - 1313)) & 4294965247) !== 0) || ((((_la - 1345)) & ~0x1F) === 0 && ((1 << (_la - 1345)) & 4294967295) !== 0) || ((((_la - 1377)) & ~0x1F) === 0 && ((1 << (_la - 1377)) & 4292870143) !== 0) || ((((_la - 1409)) & ~0x1F) === 0 && ((1 << (_la - 1409)) & 4261412799) !== 0) || ((((_la - 1441)) & ~0x1F) === 0 && ((1 << (_la - 1441)) & 4294967295) !== 0) || ((((_la - 1473)) & ~0x1F) === 0 && ((1 << (_la - 1473)) & 4261281791) !== 0) || ((((_la - 1505)) & ~0x1F) === 0 && ((1 << (_la - 1505)) & 3221221375) !== 0) || ((((_la - 1537)) & ~0x1F) === 0 && ((1 << (_la - 1537)) & 4294967295) !== 0) || ((((_la - 1570)) & ~0x1F) === 0 && ((1 << (_la - 1570)) & 4294967295) !== 0) || ((((_la - 1602)) & ~0x1F) === 0 && ((1 << (_la - 1602)) & 4261412863) !== 0) || ((((_la - 1634)) & ~0x1F) === 0 && ((1 << (_la - 1634)) & 4294967295) !== 0) || ((((_la - 1666)) & ~0x1F) === 0 && ((1 << (_la - 1666)) & 4294967295) !== 0) || ((((_la - 1698)) & ~0x1F) === 0 && ((1 << (_la - 1698)) & 4294967295) !== 0) || ((((_la - 1730)) & ~0x1F) === 0 && ((1 << (_la - 1730)) & 4294967295) !== 0) || ((((_la - 1762)) & ~0x1F) === 0 && ((1 << (_la - 1762)) & 4294967295) !== 0) || ((((_la - 1794)) & ~0x1F) === 0 && ((1 << (_la - 1794)) & 4294967295) !== 0) || ((((_la - 1826)) & ~0x1F) === 0 && ((1 << (_la - 1826)) & 4294967295) !== 0) || ((((_la - 1858)) & ~0x1F) === 0 && ((1 << (_la - 1858)) & 4294967295) !== 0) || ((((_la - 1890)) & ~0x1F) === 0 && ((1 << (_la - 1890)) & 4294967295) !== 0) || ((((_la - 1922)) & ~0x1F) === 0 && ((1 << (_la - 1922)) & 4294901759) !== 0) || ((((_la - 1954)) & ~0x1F) === 0 && ((1 << (_la - 1954)) & 4294966271) !== 0) || ((((_la - 1986)) & ~0x1F) === 0 && ((1 << (_la - 1986)) & 4294868991) !== 0) || ((((_la - 2018)) & ~0x1F) === 0 && ((1 << (_la - 2018)) & 4294967167) !== 0) || ((((_la - 2050)) & ~0x1F) === 0 && ((1 << (_la - 2050)) & 4286578687) !== 0) || ((((_la - 2082)) & ~0x1F) === 0 && ((1 << (_la - 2082)) & 4294836223) !== 0) || ((((_la - 2115)) & ~0x1F) === 0 && ((1 << (_la - 2115)) & 3758092223) !== 0) || ((((_la - 2147)) & ~0x1F) === 0 && ((1 << (_la - 2147)) & 4293918719) !== 0) || ((((_la - 2179)) & ~0x1F) === 0 && ((1 << (_la - 2179)) & 4294967295) !== 0) || ((((_la - 2211)) & ~0x1F) === 0 && ((1 << (_la - 2211)) & 541266915) !== 0) || _la===2246 || _la===2252) {
					{
					this.state = 8751;
					this.expressions();
					}
				}

				this.state = 8754;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public fetch_statement(): Fetch_statementContext {
		let localctx: Fetch_statementContext = new Fetch_statementContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1020, PlSqlParser.RULE_fetch_statement);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 8757;
			this.match(PlSqlParser.FETCH);
			this.state = 8758;
			this.cursor_name();
			this.state = 8779;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 691:
				{
				this.state = 8759;
				localctx._it1 = this.match(PlSqlParser.INTO);
				this.state = 8760;
				this.variable_name();
				this.state = 8765;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===2229) {
					{
					{
					this.state = 8761;
					this.match(PlSqlParser.COMMA);
					this.state = 8762;
					this.variable_name();
					}
					}
					this.state = 8767;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				}
				break;
			case 145:
				{
				this.state = 8768;
				this.match(PlSqlParser.BULK);
				this.state = 8769;
				this.match(PlSqlParser.COLLECT);
				this.state = 8770;
				this.match(PlSqlParser.INTO);
				this.state = 8771;
				this.variable_name();
				this.state = 8776;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===2229) {
					{
					{
					this.state = 8772;
					this.match(PlSqlParser.COMMA);
					this.state = 8773;
					this.variable_name();
					}
					}
					this.state = 8778;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public open_for_statement(): Open_for_statementContext {
		let localctx: Open_for_statementContext = new Open_for_statementContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1022, PlSqlParser.RULE_open_for_statement);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 8781;
			this.match(PlSqlParser.OPEN);
			this.state = 8782;
			this.variable_name();
			this.state = 8783;
			this.match(PlSqlParser.FOR);
			this.state = 8786;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1141, this._ctx) ) {
			case 1:
				{
				this.state = 8784;
				this.select_statement();
				}
				break;
			case 2:
				{
				this.state = 8785;
				this.expression();
				}
				break;
			}
			this.state = 8789;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===2063) {
				{
				this.state = 8788;
				this.using_clause();
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public transaction_control_statements(): Transaction_control_statementsContext {
		let localctx: Transaction_control_statementsContext = new Transaction_control_statementsContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1024, PlSqlParser.RULE_transaction_control_statements);
		try {
			this.state = 8796;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1143, this._ctx) ) {
			case 1:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 8791;
				this.set_transaction_command();
				}
				break;
			case 2:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 8792;
				this.set_constraint_command();
				}
				break;
			case 3:
				this.enterOuterAlt(localctx, 3);
				{
				this.state = 8793;
				this.commit_statement();
				}
				break;
			case 4:
				this.enterOuterAlt(localctx, 4);
				{
				this.state = 8794;
				this.rollback_statement();
				}
				break;
			case 5:
				this.enterOuterAlt(localctx, 5);
				{
				this.state = 8795;
				this.savepoint_statement();
				}
				break;
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public set_transaction_command(): Set_transaction_commandContext {
		let localctx: Set_transaction_commandContext = new Set_transaction_commandContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1026, PlSqlParser.RULE_set_transaction_command);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 8798;
			this.match(PlSqlParser.SET);
			this.state = 8799;
			this.match(PlSqlParser.TRANSACTION);
			this.state = 8813;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1145, this._ctx) ) {
			case 1:
				{
				this.state = 8800;
				this.match(PlSqlParser.READ);
				this.state = 8801;
				_la = this._input.LA(1);
				if(!(_la===1127 || _la===2125)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				}
				break;
			case 2:
				{
				this.state = 8802;
				this.match(PlSqlParser.ISOLATION);
				this.state = 8803;
				this.match(PlSqlParser.LEVEL);
				this.state = 8807;
				this._errHandler.sync(this);
				switch (this._input.LA(1)) {
				case 1499:
					{
					this.state = 8804;
					this.match(PlSqlParser.SERIALIZABLE);
					}
					break;
				case 1353:
					{
					this.state = 8805;
					this.match(PlSqlParser.READ);
					this.state = 8806;
					this.match(PlSqlParser.COMMITTED);
					}
					break;
				default:
					throw new NoViableAltException(this);
				}
				}
				break;
			case 3:
				{
				this.state = 8809;
				this.match(PlSqlParser.USE);
				this.state = 8810;
				this.match(PlSqlParser.ROLLBACK);
				this.state = 8811;
				this.match(PlSqlParser.SEGMENT);
				this.state = 8812;
				this.rollback_segment_name();
				}
				break;
			}
			this.state = 8817;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1146, this._ctx) ) {
			case 1:
				{
				this.state = 8815;
				this.match(PlSqlParser.NAME);
				this.state = 8816;
				this.quoted_string();
				}
				break;
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public set_constraint_command(): Set_constraint_commandContext {
		let localctx: Set_constraint_commandContext = new Set_constraint_commandContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1028, PlSqlParser.RULE_set_constraint_command);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 8819;
			this.match(PlSqlParser.SET);
			this.state = 8820;
			_la = this._input.LA(1);
			if(!(_la===257 || _la===258)) {
			this._errHandler.recoverInline(this);
			}
			else {
				this._errHandler.reportMatch(this);
			    this.consume();
			}
			this.state = 8830;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 35:
				{
				this.state = 8821;
				this.match(PlSqlParser.ALL);
				}
				break;
			case 1:
			case 2:
			case 3:
			case 4:
			case 5:
			case 6:
			case 7:
			case 8:
			case 9:
			case 10:
			case 11:
			case 12:
			case 13:
			case 14:
			case 15:
			case 16:
			case 17:
			case 18:
			case 19:
			case 20:
			case 21:
			case 22:
			case 23:
			case 24:
			case 25:
			case 26:
			case 27:
			case 28:
			case 29:
			case 30:
			case 31:
			case 32:
			case 33:
			case 34:
			case 36:
			case 37:
			case 38:
			case 40:
			case 41:
			case 42:
			case 44:
			case 45:
			case 46:
			case 47:
			case 49:
			case 50:
			case 51:
			case 52:
			case 53:
			case 54:
			case 55:
			case 56:
			case 57:
			case 58:
			case 59:
			case 60:
			case 63:
			case 64:
			case 65:
			case 66:
			case 67:
			case 68:
			case 69:
			case 70:
			case 71:
			case 72:
			case 73:
			case 74:
			case 75:
			case 76:
			case 78:
			case 79:
			case 80:
			case 81:
			case 82:
			case 83:
			case 85:
			case 86:
			case 87:
			case 88:
			case 89:
			case 90:
			case 91:
			case 92:
			case 93:
			case 95:
			case 96:
			case 97:
			case 98:
			case 99:
			case 100:
			case 101:
			case 102:
			case 103:
			case 104:
			case 105:
			case 106:
			case 108:
			case 109:
			case 110:
			case 111:
			case 112:
			case 113:
			case 114:
			case 115:
			case 116:
			case 117:
			case 118:
			case 119:
			case 120:
			case 121:
			case 122:
			case 123:
			case 124:
			case 125:
			case 126:
			case 127:
			case 128:
			case 129:
			case 130:
			case 131:
			case 132:
			case 133:
			case 134:
			case 135:
			case 136:
			case 137:
			case 138:
			case 139:
			case 140:
			case 141:
			case 142:
			case 143:
			case 144:
			case 145:
			case 147:
			case 148:
			case 149:
			case 150:
			case 151:
			case 152:
			case 153:
			case 154:
			case 155:
			case 156:
			case 157:
			case 158:
			case 160:
			case 161:
			case 162:
			case 163:
			case 164:
			case 165:
			case 166:
			case 167:
			case 168:
			case 169:
			case 170:
			case 171:
			case 172:
			case 174:
			case 175:
			case 176:
			case 177:
			case 178:
			case 179:
			case 181:
			case 182:
			case 183:
			case 184:
			case 185:
			case 186:
			case 187:
			case 188:
			case 189:
			case 190:
			case 191:
			case 192:
			case 193:
			case 194:
			case 195:
			case 196:
			case 197:
			case 198:
			case 199:
			case 200:
			case 201:
			case 202:
			case 203:
			case 204:
			case 205:
			case 206:
			case 207:
			case 208:
			case 209:
			case 210:
			case 211:
			case 212:
			case 213:
			case 214:
			case 215:
			case 216:
			case 217:
			case 218:
			case 219:
			case 220:
			case 221:
			case 222:
			case 223:
			case 224:
			case 225:
			case 226:
			case 227:
			case 228:
			case 229:
			case 230:
			case 231:
			case 233:
			case 234:
			case 235:
			case 236:
			case 237:
			case 238:
			case 239:
			case 240:
			case 241:
			case 242:
			case 243:
			case 244:
			case 245:
			case 246:
			case 247:
			case 248:
			case 249:
			case 250:
			case 252:
			case 253:
			case 254:
			case 255:
			case 256:
			case 257:
			case 258:
			case 259:
			case 260:
			case 261:
			case 262:
			case 263:
			case 264:
			case 265:
			case 266:
			case 267:
			case 268:
			case 269:
			case 270:
			case 271:
			case 272:
			case 273:
			case 274:
			case 275:
			case 276:
			case 277:
			case 278:
			case 279:
			case 280:
			case 281:
			case 282:
			case 283:
			case 284:
			case 285:
			case 286:
			case 287:
			case 289:
			case 290:
			case 291:
			case 292:
			case 293:
			case 294:
			case 295:
			case 296:
			case 297:
			case 298:
			case 299:
			case 300:
			case 301:
			case 302:
			case 303:
			case 304:
			case 305:
			case 306:
			case 307:
			case 308:
			case 309:
			case 310:
			case 311:
			case 312:
			case 313:
			case 314:
			case 315:
			case 316:
			case 317:
			case 318:
			case 319:
			case 321:
			case 322:
			case 323:
			case 324:
			case 325:
			case 326:
			case 328:
			case 329:
			case 330:
			case 331:
			case 332:
			case 333:
			case 334:
			case 335:
			case 336:
			case 337:
			case 338:
			case 339:
			case 340:
			case 341:
			case 342:
			case 343:
			case 344:
			case 345:
			case 346:
			case 347:
			case 348:
			case 349:
			case 350:
			case 352:
			case 353:
			case 354:
			case 355:
			case 356:
			case 357:
			case 358:
			case 359:
			case 360:
			case 361:
			case 362:
			case 363:
			case 364:
			case 365:
			case 366:
			case 367:
			case 368:
			case 369:
			case 370:
			case 372:
			case 373:
			case 374:
			case 375:
			case 376:
			case 377:
			case 378:
			case 379:
			case 380:
			case 381:
			case 382:
			case 383:
			case 384:
			case 385:
			case 386:
			case 387:
			case 388:
			case 389:
			case 390:
			case 391:
			case 392:
			case 394:
			case 395:
			case 397:
			case 398:
			case 399:
			case 400:
			case 401:
			case 402:
			case 403:
			case 404:
			case 405:
			case 406:
			case 407:
			case 408:
			case 409:
			case 410:
			case 412:
			case 413:
			case 414:
			case 415:
			case 417:
			case 418:
			case 419:
			case 420:
			case 421:
			case 422:
			case 423:
			case 424:
			case 425:
			case 426:
			case 427:
			case 428:
			case 429:
			case 430:
			case 431:
			case 434:
			case 435:
			case 436:
			case 437:
			case 438:
			case 439:
			case 440:
			case 441:
			case 442:
			case 443:
			case 444:
			case 446:
			case 447:
			case 448:
			case 449:
			case 450:
			case 451:
			case 452:
			case 453:
			case 454:
			case 455:
			case 456:
			case 457:
			case 458:
			case 459:
			case 460:
			case 461:
			case 462:
			case 463:
			case 464:
			case 465:
			case 466:
			case 467:
			case 468:
			case 469:
			case 470:
			case 471:
			case 472:
			case 473:
			case 475:
			case 476:
			case 477:
			case 478:
			case 479:
			case 480:
			case 481:
			case 482:
			case 483:
			case 484:
			case 485:
			case 486:
			case 487:
			case 488:
			case 489:
			case 490:
			case 491:
			case 492:
			case 493:
			case 494:
			case 495:
			case 496:
			case 497:
			case 498:
			case 499:
			case 500:
			case 501:
			case 502:
			case 503:
			case 504:
			case 505:
			case 506:
			case 507:
			case 508:
			case 509:
			case 510:
			case 511:
			case 512:
			case 513:
			case 514:
			case 515:
			case 516:
			case 517:
			case 518:
			case 519:
			case 520:
			case 521:
			case 522:
			case 523:
			case 524:
			case 525:
			case 526:
			case 527:
			case 528:
			case 529:
			case 530:
			case 531:
			case 532:
			case 533:
			case 534:
			case 535:
			case 536:
			case 537:
			case 538:
			case 539:
			case 540:
			case 541:
			case 542:
			case 543:
			case 544:
			case 545:
			case 547:
			case 548:
			case 549:
			case 550:
			case 551:
			case 552:
			case 553:
			case 555:
			case 556:
			case 557:
			case 558:
			case 559:
			case 560:
			case 561:
			case 562:
			case 563:
			case 564:
			case 565:
			case 566:
			case 567:
			case 568:
			case 569:
			case 572:
			case 574:
			case 575:
			case 576:
			case 577:
			case 578:
			case 579:
			case 580:
			case 581:
			case 582:
			case 583:
			case 584:
			case 586:
			case 587:
			case 588:
			case 589:
			case 590:
			case 591:
			case 592:
			case 593:
			case 594:
			case 595:
			case 596:
			case 597:
			case 598:
			case 599:
			case 600:
			case 602:
			case 603:
			case 604:
			case 605:
			case 606:
			case 607:
			case 608:
			case 609:
			case 610:
			case 611:
			case 612:
			case 613:
			case 614:
			case 615:
			case 616:
			case 617:
			case 618:
			case 619:
			case 620:
			case 621:
			case 622:
			case 623:
			case 624:
			case 625:
			case 626:
			case 627:
			case 628:
			case 629:
			case 630:
			case 632:
			case 633:
			case 634:
			case 635:
			case 636:
			case 637:
			case 638:
			case 639:
			case 640:
			case 641:
			case 642:
			case 643:
			case 644:
			case 645:
			case 646:
			case 647:
			case 648:
			case 649:
			case 650:
			case 651:
			case 653:
			case 654:
			case 655:
			case 656:
			case 657:
			case 658:
			case 659:
			case 660:
			case 661:
			case 662:
			case 663:
			case 664:
			case 665:
			case 666:
			case 667:
			case 668:
			case 670:
			case 671:
			case 672:
			case 673:
			case 674:
			case 675:
			case 676:
			case 677:
			case 678:
			case 679:
			case 680:
			case 681:
			case 682:
			case 683:
			case 684:
			case 685:
			case 686:
			case 687:
			case 689:
			case 690:
			case 692:
			case 693:
			case 694:
			case 696:
			case 697:
			case 698:
			case 699:
			case 700:
			case 701:
			case 702:
			case 703:
			case 704:
			case 705:
			case 706:
			case 707:
			case 708:
			case 709:
			case 710:
			case 711:
			case 712:
			case 713:
			case 714:
			case 715:
			case 716:
			case 717:
			case 718:
			case 719:
			case 720:
			case 721:
			case 722:
			case 723:
			case 724:
			case 725:
			case 726:
			case 727:
			case 728:
			case 729:
			case 730:
			case 731:
			case 732:
			case 733:
			case 734:
			case 735:
			case 736:
			case 737:
			case 738:
			case 739:
			case 740:
			case 741:
			case 742:
			case 743:
			case 744:
			case 745:
			case 746:
			case 747:
			case 748:
			case 749:
			case 750:
			case 751:
			case 752:
			case 753:
			case 754:
			case 755:
			case 756:
			case 758:
			case 759:
			case 760:
			case 761:
			case 762:
			case 763:
			case 764:
			case 765:
			case 766:
			case 767:
			case 768:
			case 769:
			case 770:
			case 771:
			case 772:
			case 773:
			case 774:
			case 775:
			case 777:
			case 778:
			case 779:
			case 780:
			case 781:
			case 782:
			case 783:
			case 784:
			case 785:
			case 786:
			case 787:
			case 788:
			case 789:
			case 790:
			case 791:
			case 792:
			case 793:
			case 794:
			case 795:
			case 796:
			case 797:
			case 798:
			case 799:
			case 800:
			case 801:
			case 802:
			case 803:
			case 804:
			case 805:
			case 806:
			case 807:
			case 808:
			case 809:
			case 810:
			case 811:
			case 812:
			case 813:
			case 814:
			case 815:
			case 816:
			case 817:
			case 818:
			case 819:
			case 820:
			case 821:
			case 822:
			case 823:
			case 824:
			case 825:
			case 826:
			case 827:
			case 828:
			case 829:
			case 830:
			case 831:
			case 832:
			case 833:
			case 834:
			case 835:
			case 836:
			case 837:
			case 838:
			case 839:
			case 840:
			case 841:
			case 843:
			case 844:
			case 845:
			case 846:
			case 847:
			case 848:
			case 849:
			case 850:
			case 851:
			case 852:
			case 853:
			case 854:
			case 855:
			case 856:
			case 857:
			case 858:
			case 859:
			case 861:
			case 862:
			case 863:
			case 864:
			case 865:
			case 866:
			case 867:
			case 868:
			case 869:
			case 870:
			case 871:
			case 872:
			case 873:
			case 874:
			case 875:
			case 876:
			case 877:
			case 878:
			case 879:
			case 880:
			case 881:
			case 882:
			case 883:
			case 884:
			case 885:
			case 886:
			case 888:
			case 889:
			case 890:
			case 891:
			case 892:
			case 893:
			case 894:
			case 895:
			case 896:
			case 897:
			case 898:
			case 899:
			case 900:
			case 901:
			case 902:
			case 903:
			case 904:
			case 905:
			case 906:
			case 907:
			case 908:
			case 909:
			case 910:
			case 911:
			case 912:
			case 913:
			case 914:
			case 915:
			case 916:
			case 917:
			case 918:
			case 919:
			case 920:
			case 921:
			case 922:
			case 923:
			case 924:
			case 925:
			case 926:
			case 927:
			case 928:
			case 929:
			case 930:
			case 931:
			case 932:
			case 933:
			case 934:
			case 935:
			case 936:
			case 937:
			case 938:
			case 939:
			case 940:
			case 941:
			case 942:
			case 943:
			case 944:
			case 945:
			case 946:
			case 947:
			case 948:
			case 949:
			case 950:
			case 951:
			case 952:
			case 954:
			case 955:
			case 956:
			case 957:
			case 958:
			case 959:
			case 960:
			case 961:
			case 962:
			case 963:
			case 964:
			case 965:
			case 966:
			case 967:
			case 968:
			case 969:
			case 970:
			case 971:
			case 972:
			case 973:
			case 974:
			case 975:
			case 976:
			case 977:
			case 978:
			case 979:
			case 980:
			case 981:
			case 982:
			case 983:
			case 984:
			case 985:
			case 986:
			case 987:
			case 988:
			case 989:
			case 990:
			case 991:
			case 992:
			case 993:
			case 994:
			case 995:
			case 996:
			case 997:
			case 998:
			case 999:
			case 1000:
			case 1001:
			case 1002:
			case 1003:
			case 1004:
			case 1005:
			case 1006:
			case 1007:
			case 1008:
			case 1009:
			case 1010:
			case 1011:
			case 1012:
			case 1013:
			case 1014:
			case 1015:
			case 1016:
			case 1017:
			case 1018:
			case 1019:
			case 1020:
			case 1021:
			case 1022:
			case 1023:
			case 1024:
			case 1025:
			case 1026:
			case 1027:
			case 1028:
			case 1029:
			case 1030:
			case 1031:
			case 1032:
			case 1033:
			case 1034:
			case 1035:
			case 1036:
			case 1037:
			case 1038:
			case 1039:
			case 1040:
			case 1041:
			case 1042:
			case 1043:
			case 1044:
			case 1045:
			case 1046:
			case 1047:
			case 1048:
			case 1049:
			case 1050:
			case 1051:
			case 1052:
			case 1053:
			case 1054:
			case 1055:
			case 1056:
			case 1057:
			case 1058:
			case 1059:
			case 1060:
			case 1061:
			case 1062:
			case 1063:
			case 1064:
			case 1065:
			case 1066:
			case 1067:
			case 1068:
			case 1069:
			case 1070:
			case 1071:
			case 1072:
			case 1074:
			case 1075:
			case 1076:
			case 1077:
			case 1078:
			case 1079:
			case 1080:
			case 1081:
			case 1082:
			case 1083:
			case 1084:
			case 1085:
			case 1086:
			case 1087:
			case 1089:
			case 1090:
			case 1091:
			case 1092:
			case 1093:
			case 1094:
			case 1095:
			case 1096:
			case 1098:
			case 1099:
			case 1100:
			case 1101:
			case 1102:
			case 1103:
			case 1104:
			case 1105:
			case 1106:
			case 1107:
			case 1108:
			case 1109:
			case 1110:
			case 1111:
			case 1112:
			case 1113:
			case 1114:
			case 1116:
			case 1117:
			case 1118:
			case 1119:
			case 1120:
			case 1121:
			case 1122:
			case 1123:
			case 1124:
			case 1125:
			case 1127:
			case 1129:
			case 1130:
			case 1131:
			case 1132:
			case 1133:
			case 1134:
			case 1135:
			case 1136:
			case 1137:
			case 1138:
			case 1139:
			case 1140:
			case 1142:
			case 1143:
			case 1144:
			case 1145:
			case 1146:
			case 1147:
			case 1148:
			case 1149:
			case 1150:
			case 1151:
			case 1152:
			case 1153:
			case 1154:
			case 1155:
			case 1156:
			case 1157:
			case 1158:
			case 1159:
			case 1160:
			case 1161:
			case 1162:
			case 1163:
			case 1164:
			case 1165:
			case 1166:
			case 1167:
			case 1169:
			case 1170:
			case 1171:
			case 1173:
			case 1174:
			case 1175:
			case 1176:
			case 1177:
			case 1178:
			case 1179:
			case 1180:
			case 1181:
			case 1182:
			case 1183:
			case 1184:
			case 1185:
			case 1186:
			case 1187:
			case 1188:
			case 1189:
			case 1190:
			case 1191:
			case 1192:
			case 1193:
			case 1194:
			case 1195:
			case 1197:
			case 1198:
			case 1199:
			case 1200:
			case 1201:
			case 1202:
			case 1203:
			case 1204:
			case 1205:
			case 1206:
			case 1207:
			case 1208:
			case 1209:
			case 1210:
			case 1211:
			case 1212:
			case 1213:
			case 1214:
			case 1215:
			case 1216:
			case 1217:
			case 1218:
			case 1219:
			case 1220:
			case 1221:
			case 1222:
			case 1223:
			case 1224:
			case 1225:
			case 1226:
			case 1228:
			case 1229:
			case 1230:
			case 1231:
			case 1232:
			case 1236:
			case 1237:
			case 1241:
			case 1242:
			case 1243:
			case 1244:
			case 1245:
			case 1246:
			case 1247:
			case 1248:
			case 1249:
			case 1250:
			case 1252:
			case 1253:
			case 1254:
			case 1255:
			case 1256:
			case 1257:
			case 1258:
			case 1259:
			case 1260:
			case 1261:
			case 1262:
			case 1263:
			case 1264:
			case 1265:
			case 1266:
			case 1267:
			case 1268:
			case 1269:
			case 1270:
			case 1271:
			case 1272:
			case 1273:
			case 1274:
			case 1275:
			case 1276:
			case 1277:
			case 1278:
			case 1279:
			case 1280:
			case 1281:
			case 1282:
			case 1283:
			case 1284:
			case 1285:
			case 1286:
			case 1287:
			case 1288:
			case 1289:
			case 1290:
			case 1291:
			case 1292:
			case 1293:
			case 1294:
			case 1295:
			case 1296:
			case 1297:
			case 1298:
			case 1299:
			case 1300:
			case 1301:
			case 1302:
			case 1303:
			case 1304:
			case 1305:
			case 1306:
			case 1308:
			case 1309:
			case 1310:
			case 1311:
			case 1312:
			case 1313:
			case 1314:
			case 1315:
			case 1316:
			case 1317:
			case 1318:
			case 1319:
			case 1320:
			case 1321:
			case 1322:
			case 1323:
			case 1325:
			case 1326:
			case 1327:
			case 1328:
			case 1329:
			case 1330:
			case 1331:
			case 1332:
			case 1333:
			case 1334:
			case 1335:
			case 1336:
			case 1337:
			case 1338:
			case 1339:
			case 1340:
			case 1341:
			case 1342:
			case 1343:
			case 1344:
			case 1345:
			case 1346:
			case 1347:
			case 1348:
			case 1349:
			case 1350:
			case 1351:
			case 1352:
			case 1353:
			case 1354:
			case 1355:
			case 1356:
			case 1357:
			case 1358:
			case 1359:
			case 1360:
			case 1361:
			case 1362:
			case 1363:
			case 1364:
			case 1365:
			case 1366:
			case 1367:
			case 1368:
			case 1369:
			case 1370:
			case 1371:
			case 1372:
			case 1373:
			case 1374:
			case 1375:
			case 1376:
			case 1377:
			case 1378:
			case 1379:
			case 1380:
			case 1381:
			case 1382:
			case 1383:
			case 1384:
			case 1385:
			case 1386:
			case 1387:
			case 1388:
			case 1389:
			case 1390:
			case 1391:
			case 1392:
			case 1393:
			case 1394:
			case 1395:
			case 1396:
			case 1397:
			case 1399:
			case 1400:
			case 1401:
			case 1402:
			case 1403:
			case 1404:
			case 1405:
			case 1406:
			case 1407:
			case 1408:
			case 1409:
			case 1410:
			case 1411:
			case 1412:
			case 1413:
			case 1414:
			case 1416:
			case 1417:
			case 1418:
			case 1419:
			case 1420:
			case 1421:
			case 1422:
			case 1423:
			case 1424:
			case 1425:
			case 1426:
			case 1427:
			case 1428:
			case 1429:
			case 1430:
			case 1431:
			case 1432:
			case 1433:
			case 1435:
			case 1436:
			case 1437:
			case 1438:
			case 1439:
			case 1440:
			case 1441:
			case 1442:
			case 1443:
			case 1444:
			case 1445:
			case 1446:
			case 1447:
			case 1448:
			case 1449:
			case 1450:
			case 1451:
			case 1452:
			case 1453:
			case 1454:
			case 1455:
			case 1456:
			case 1457:
			case 1458:
			case 1459:
			case 1460:
			case 1461:
			case 1462:
			case 1463:
			case 1464:
			case 1465:
			case 1466:
			case 1467:
			case 1468:
			case 1469:
			case 1470:
			case 1471:
			case 1472:
			case 1473:
			case 1474:
			case 1475:
			case 1476:
			case 1477:
			case 1478:
			case 1479:
			case 1480:
			case 1481:
			case 1482:
			case 1483:
			case 1484:
			case 1485:
			case 1486:
			case 1487:
			case 1488:
			case 1489:
			case 1491:
			case 1492:
			case 1493:
			case 1494:
			case 1495:
			case 1496:
			case 1497:
			case 1499:
			case 1500:
			case 1501:
			case 1502:
			case 1503:
			case 1504:
			case 1505:
			case 1506:
			case 1507:
			case 1508:
			case 1509:
			case 1510:
			case 1511:
			case 1512:
			case 1513:
			case 1514:
			case 1515:
			case 1516:
			case 1518:
			case 1519:
			case 1520:
			case 1521:
			case 1522:
			case 1523:
			case 1524:
			case 1525:
			case 1526:
			case 1527:
			case 1528:
			case 1529:
			case 1530:
			case 1531:
			case 1532:
			case 1533:
			case 1534:
			case 1536:
			case 1537:
			case 1538:
			case 1539:
			case 1540:
			case 1541:
			case 1542:
			case 1543:
			case 1544:
			case 1545:
			case 1546:
			case 1547:
			case 1548:
			case 1549:
			case 1550:
			case 1551:
			case 1552:
			case 1553:
			case 1554:
			case 1555:
			case 1556:
			case 1557:
			case 1558:
			case 1559:
			case 1560:
			case 1561:
			case 1562:
			case 1563:
			case 1564:
			case 1565:
			case 1566:
			case 1567:
			case 1568:
			case 1570:
			case 1571:
			case 1572:
			case 1573:
			case 1574:
			case 1575:
			case 1576:
			case 1577:
			case 1578:
			case 1579:
			case 1580:
			case 1581:
			case 1582:
			case 1583:
			case 1584:
			case 1585:
			case 1586:
			case 1587:
			case 1588:
			case 1589:
			case 1590:
			case 1591:
			case 1592:
			case 1593:
			case 1594:
			case 1595:
			case 1596:
			case 1597:
			case 1598:
			case 1599:
			case 1600:
			case 1601:
			case 1602:
			case 1603:
			case 1604:
			case 1605:
			case 1606:
			case 1607:
			case 1608:
			case 1609:
			case 1610:
			case 1611:
			case 1612:
			case 1613:
			case 1614:
			case 1615:
			case 1616:
			case 1617:
			case 1618:
			case 1619:
			case 1620:
			case 1621:
			case 1622:
			case 1623:
			case 1624:
			case 1625:
			case 1626:
			case 1628:
			case 1629:
			case 1630:
			case 1631:
			case 1632:
			case 1633:
			case 1634:
			case 1635:
			case 1636:
			case 1637:
			case 1638:
			case 1639:
			case 1640:
			case 1641:
			case 1642:
			case 1643:
			case 1644:
			case 1645:
			case 1646:
			case 1647:
			case 1648:
			case 1649:
			case 1650:
			case 1651:
			case 1652:
			case 1653:
			case 1654:
			case 1655:
			case 1656:
			case 1657:
			case 1658:
			case 1659:
			case 1660:
			case 1661:
			case 1662:
			case 1663:
			case 1664:
			case 1665:
			case 1666:
			case 1667:
			case 1668:
			case 1669:
			case 1670:
			case 1671:
			case 1672:
			case 1673:
			case 1674:
			case 1675:
			case 1676:
			case 1677:
			case 1678:
			case 1679:
			case 1680:
			case 1681:
			case 1682:
			case 1683:
			case 1684:
			case 1685:
			case 1686:
			case 1687:
			case 1688:
			case 1689:
			case 1690:
			case 1691:
			case 1692:
			case 1693:
			case 1694:
			case 1695:
			case 1696:
			case 1697:
			case 1698:
			case 1699:
			case 1700:
			case 1701:
			case 1702:
			case 1703:
			case 1704:
			case 1705:
			case 1706:
			case 1707:
			case 1708:
			case 1709:
			case 1710:
			case 1711:
			case 1712:
			case 1713:
			case 1714:
			case 1715:
			case 1716:
			case 1717:
			case 1718:
			case 1719:
			case 1720:
			case 1721:
			case 1722:
			case 1723:
			case 1724:
			case 1725:
			case 1726:
			case 1727:
			case 1728:
			case 1729:
			case 1730:
			case 1731:
			case 1732:
			case 1733:
			case 1734:
			case 1735:
			case 1736:
			case 1737:
			case 1738:
			case 1739:
			case 1740:
			case 1741:
			case 1742:
			case 1743:
			case 1744:
			case 1745:
			case 1746:
			case 1747:
			case 1748:
			case 1749:
			case 1750:
			case 1751:
			case 1752:
			case 1753:
			case 1754:
			case 1755:
			case 1756:
			case 1757:
			case 1758:
			case 1759:
			case 1760:
			case 1761:
			case 1762:
			case 1763:
			case 1764:
			case 1765:
			case 1766:
			case 1767:
			case 1768:
			case 1769:
			case 1770:
			case 1771:
			case 1772:
			case 1773:
			case 1774:
			case 1775:
			case 1776:
			case 1777:
			case 1778:
			case 1779:
			case 1780:
			case 1781:
			case 1782:
			case 1783:
			case 1784:
			case 1785:
			case 1786:
			case 1787:
			case 1788:
			case 1789:
			case 1790:
			case 1791:
			case 1792:
			case 1793:
			case 1794:
			case 1795:
			case 1796:
			case 1797:
			case 1798:
			case 1799:
			case 1800:
			case 1801:
			case 1802:
			case 1803:
			case 1804:
			case 1805:
			case 1806:
			case 1807:
			case 1808:
			case 1809:
			case 1810:
			case 1811:
			case 1812:
			case 1813:
			case 1814:
			case 1815:
			case 1816:
			case 1817:
			case 1818:
			case 1819:
			case 1820:
			case 1821:
			case 1822:
			case 1823:
			case 1824:
			case 1825:
			case 1826:
			case 1827:
			case 1828:
			case 1829:
			case 1830:
			case 1831:
			case 1832:
			case 1833:
			case 1834:
			case 1835:
			case 1836:
			case 1837:
			case 1838:
			case 1839:
			case 1840:
			case 1841:
			case 1842:
			case 1843:
			case 1844:
			case 1845:
			case 1846:
			case 1847:
			case 1848:
			case 1849:
			case 1850:
			case 1851:
			case 1852:
			case 1853:
			case 1854:
			case 1855:
			case 1856:
			case 1857:
			case 1858:
			case 1859:
			case 1860:
			case 1861:
			case 1862:
			case 1863:
			case 1864:
			case 1865:
			case 1866:
			case 1867:
			case 1868:
			case 1869:
			case 1870:
			case 1871:
			case 1872:
			case 1873:
			case 1874:
			case 1875:
			case 1876:
			case 1877:
			case 1878:
			case 1879:
			case 1880:
			case 1881:
			case 1882:
			case 1883:
			case 1884:
			case 1885:
			case 1886:
			case 1887:
			case 1888:
			case 1889:
			case 1890:
			case 1891:
			case 1892:
			case 1893:
			case 1894:
			case 1895:
			case 1896:
			case 1897:
			case 1898:
			case 1899:
			case 1900:
			case 1901:
			case 1902:
			case 1903:
			case 1904:
			case 1905:
			case 1906:
			case 1907:
			case 1908:
			case 1909:
			case 1910:
			case 1911:
			case 1912:
			case 1913:
			case 1914:
			case 1915:
			case 1916:
			case 1917:
			case 1918:
			case 1919:
			case 1920:
			case 1921:
			case 1922:
			case 1923:
			case 1924:
			case 1925:
			case 1926:
			case 1927:
			case 1928:
			case 1929:
			case 1930:
			case 1931:
			case 1932:
			case 1933:
			case 1934:
			case 1935:
			case 1936:
			case 1937:
			case 1939:
			case 1940:
			case 1941:
			case 1942:
			case 1943:
			case 1944:
			case 1945:
			case 1946:
			case 1947:
			case 1948:
			case 1949:
			case 1950:
			case 1951:
			case 1952:
			case 1953:
			case 1954:
			case 1955:
			case 1956:
			case 1957:
			case 1958:
			case 1959:
			case 1960:
			case 1961:
			case 1962:
			case 1963:
			case 1965:
			case 1966:
			case 1967:
			case 1968:
			case 1969:
			case 1970:
			case 1971:
			case 1972:
			case 1973:
			case 1974:
			case 1975:
			case 1976:
			case 1977:
			case 1978:
			case 1979:
			case 1980:
			case 1981:
			case 1982:
			case 1983:
			case 1984:
			case 1985:
			case 1986:
			case 1987:
			case 1988:
			case 1989:
			case 1990:
			case 1991:
			case 1992:
			case 1993:
			case 1994:
			case 1995:
			case 1996:
			case 1997:
			case 1998:
			case 1999:
			case 2000:
			case 2003:
			case 2004:
			case 2005:
			case 2006:
			case 2007:
			case 2008:
			case 2009:
			case 2010:
			case 2011:
			case 2012:
			case 2013:
			case 2014:
			case 2015:
			case 2016:
			case 2017:
			case 2018:
			case 2019:
			case 2020:
			case 2021:
			case 2022:
			case 2023:
			case 2024:
			case 2026:
			case 2027:
			case 2028:
			case 2029:
			case 2030:
			case 2031:
			case 2032:
			case 2033:
			case 2034:
			case 2035:
			case 2036:
			case 2037:
			case 2038:
			case 2039:
			case 2040:
			case 2041:
			case 2042:
			case 2043:
			case 2044:
			case 2045:
			case 2046:
			case 2047:
			case 2048:
			case 2049:
			case 2050:
			case 2051:
			case 2052:
			case 2053:
			case 2054:
			case 2055:
			case 2056:
			case 2057:
			case 2058:
			case 2059:
			case 2060:
			case 2061:
			case 2062:
			case 2063:
			case 2064:
			case 2065:
			case 2066:
			case 2067:
			case 2068:
			case 2069:
			case 2070:
			case 2071:
			case 2072:
			case 2074:
			case 2075:
			case 2076:
			case 2077:
			case 2078:
			case 2079:
			case 2080:
			case 2081:
			case 2082:
			case 2083:
			case 2084:
			case 2085:
			case 2086:
			case 2087:
			case 2088:
			case 2089:
			case 2090:
			case 2091:
			case 2092:
			case 2093:
			case 2094:
			case 2095:
			case 2096:
			case 2097:
			case 2098:
			case 2100:
			case 2101:
			case 2102:
			case 2103:
			case 2104:
			case 2105:
			case 2106:
			case 2107:
			case 2108:
			case 2109:
			case 2110:
			case 2111:
			case 2112:
			case 2113:
			case 2115:
			case 2116:
			case 2117:
			case 2118:
			case 2119:
			case 2120:
			case 2122:
			case 2123:
			case 2124:
			case 2125:
			case 2126:
			case 2128:
			case 2129:
			case 2130:
			case 2131:
			case 2132:
			case 2133:
			case 2134:
			case 2135:
			case 2136:
			case 2137:
			case 2138:
			case 2139:
			case 2140:
			case 2141:
			case 2142:
			case 2143:
			case 2145:
			case 2146:
			case 2147:
			case 2148:
			case 2149:
			case 2150:
			case 2151:
			case 2152:
			case 2153:
			case 2154:
			case 2155:
			case 2156:
			case 2157:
			case 2158:
			case 2159:
			case 2160:
			case 2161:
			case 2162:
			case 2163:
			case 2164:
			case 2165:
			case 2166:
			case 2168:
			case 2169:
			case 2170:
			case 2171:
			case 2172:
			case 2173:
			case 2174:
			case 2175:
			case 2176:
			case 2177:
			case 2178:
			case 2179:
			case 2180:
			case 2181:
			case 2182:
			case 2183:
			case 2184:
			case 2185:
			case 2186:
			case 2187:
			case 2188:
			case 2189:
			case 2191:
			case 2192:
			case 2193:
			case 2194:
			case 2195:
			case 2196:
			case 2197:
			case 2198:
			case 2199:
			case 2200:
			case 2201:
			case 2202:
			case 2203:
			case 2204:
			case 2205:
			case 2206:
			case 2207:
			case 2208:
			case 2209:
			case 2210:
			case 2211:
			case 2216:
			case 2220:
			case 2246:
			case 2252:
				{
				this.state = 8822;
				this.constraint_name();
				this.state = 8827;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===2229) {
					{
					{
					this.state = 8823;
					this.match(PlSqlParser.COMMA);
					this.state = 8824;
					this.constraint_name();
					}
					}
					this.state = 8829;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
			this.state = 8832;
			_la = this._input.LA(1);
			if(!(_la===354 || _la===613)) {
			this._errHandler.recoverInline(this);
			}
			else {
				this._errHandler.reportMatch(this);
			    this.consume();
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public commit_statement(): Commit_statementContext {
		let localctx: Commit_statementContext = new Commit_statementContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1030, PlSqlParser.RULE_commit_statement);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 8834;
			this.match(PlSqlParser.COMMIT);
			this.state = 8836;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1149, this._ctx) ) {
			case 1:
				{
				this.state = 8835;
				this.match(PlSqlParser.WORK);
				}
				break;
			}
			this.state = 8851;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1152, this._ctx) ) {
			case 1:
				{
				this.state = 8838;
				this.match(PlSqlParser.COMMENT);
				this.state = 8839;
				this.expression();
				}
				break;
			case 2:
				{
				this.state = 8840;
				this.match(PlSqlParser.FORCE);
				this.state = 8849;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 1151, this._ctx) ) {
				case 1:
					{
					this.state = 8841;
					this.match(PlSqlParser.CORRUPT_XID);
					this.state = 8842;
					this.expression();
					}
					break;
				case 2:
					{
					this.state = 8843;
					this.match(PlSqlParser.CORRUPT_XID_ALL);
					}
					break;
				case 3:
					{
					this.state = 8844;
					this.expression();
					this.state = 8847;
					this._errHandler.sync(this);
					switch ( this._interp.adaptivePredict(this._input, 1150, this._ctx) ) {
					case 1:
						{
						this.state = 8845;
						this.match(PlSqlParser.COMMA);
						this.state = 8846;
						this.expression();
						}
						break;
					}
					}
					break;
				}
				}
				break;
			}
			this.state = 8854;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1153, this._ctx) ) {
			case 1:
				{
				this.state = 8853;
				this.write_clause();
				}
				break;
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public write_clause(): Write_clauseContext {
		let localctx: Write_clauseContext = new Write_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1032, PlSqlParser.RULE_write_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 8856;
			this.match(PlSqlParser.WRITE);
			this.state = 8858;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1154, this._ctx) ) {
			case 1:
				{
				this.state = 8857;
				_la = this._input.LA(1);
				if(!(_la===1088 || _la===2106)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				}
				break;
			}
			this.state = 8861;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1155, this._ctx) ) {
			case 1:
				{
				this.state = 8860;
				_la = this._input.LA(1);
				if(!(_la===97 || _la===613)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				}
				break;
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public rollback_statement(): Rollback_statementContext {
		let localctx: Rollback_statementContext = new Rollback_statementContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1034, PlSqlParser.RULE_rollback_statement);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 8863;
			this.match(PlSqlParser.ROLLBACK);
			this.state = 8865;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1156, this._ctx) ) {
			case 1:
				{
				this.state = 8864;
				this.match(PlSqlParser.WORK);
				}
				break;
			}
			this.state = 8874;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1158, this._ctx) ) {
			case 1:
				{
				this.state = 8867;
				this.match(PlSqlParser.TO);
				this.state = 8869;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 1157, this._ctx) ) {
				case 1:
					{
					this.state = 8868;
					this.match(PlSqlParser.SAVEPOINT);
					}
					break;
				}
				this.state = 8871;
				this.savepoint_name();
				}
				break;
			case 2:
				{
				this.state = 8872;
				this.match(PlSqlParser.FORCE);
				this.state = 8873;
				this.quoted_string();
				}
				break;
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public savepoint_statement(): Savepoint_statementContext {
		let localctx: Savepoint_statementContext = new Savepoint_statementContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1036, PlSqlParser.RULE_savepoint_statement);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 8876;
			this.match(PlSqlParser.SAVEPOINT);
			this.state = 8877;
			this.savepoint_name();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public explain_statement(): Explain_statementContext {
		let localctx: Explain_statementContext = new Explain_statementContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1038, PlSqlParser.RULE_explain_statement);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 8879;
			this.match(PlSqlParser.EXPLAIN);
			this.state = 8880;
			this.match(PlSqlParser.PLAN);
			this.state = 8885;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1510) {
				{
				this.state = 8881;
				this.match(PlSqlParser.SET);
				this.state = 8882;
				this.match(PlSqlParser.STATEMENT_ID);
				this.state = 8883;
				this.match(PlSqlParser.EQUALS_OP);
				this.state = 8884;
				this.quoted_string();
				}
			}

			this.state = 8889;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===691) {
				{
				this.state = 8887;
				this.match(PlSqlParser.INTO);
				this.state = 8888;
				this.tableview_name();
				}
			}

			this.state = 8891;
			this.match(PlSqlParser.FOR);
			this.state = 8897;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 1490:
			case 2121:
			case 2223:
				{
				this.state = 8892;
				this.select_statement();
				}
				break;
			case 2025:
				{
				this.state = 8893;
				this.update_statement();
				}
				break;
			case 362:
				{
				this.state = 8894;
				this.delete_statement();
				}
				break;
			case 669:
				{
				this.state = 8895;
				this.insert_statement();
				}
				break;
			case 832:
				{
				this.state = 8896;
				this.merge_statement();
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public select_only_statement(): Select_only_statementContext {
		let localctx: Select_only_statementContext = new Select_only_statementContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1040, PlSqlParser.RULE_select_only_statement);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 8900;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===2121) {
				{
				this.state = 8899;
				this.subquery_factoring_clause();
				}
			}

			this.state = 8902;
			this.subquery();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public select_statement(): Select_statementContext {
		let localctx: Select_statementContext = new Select_statementContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1042, PlSqlParser.RULE_select_statement);
		try {
			let _alt: number;
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 8904;
			this.select_only_statement();
			this.state = 8911;
			this._errHandler.sync(this);
			_alt = this._interp.adaptivePredict(this._input, 1164, this._ctx);
			while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) {
				if (_alt === 1) {
					{
					this.state = 8909;
					this._errHandler.sync(this);
					switch (this._input.LA(1)) {
					case 546:
						{
						this.state = 8905;
						this.for_update_clause();
						}
						break;
					case 1168:
						{
						this.state = 8906;
						this.order_by_clause();
						}
						break;
					case 1114:
						{
						this.state = 8907;
						this.offset_clause();
						}
						break;
					case 518:
						{
						this.state = 8908;
						this.fetch_clause();
						}
						break;
					default:
						throw new NoViableAltException(this);
					}
					}
				}
				this.state = 8913;
				this._errHandler.sync(this);
				_alt = this._interp.adaptivePredict(this._input, 1164, this._ctx);
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public subquery_factoring_clause(): Subquery_factoring_clauseContext {
		let localctx: Subquery_factoring_clauseContext = new Subquery_factoring_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1044, PlSqlParser.RULE_subquery_factoring_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 8914;
			this.match(PlSqlParser.WITH);
			this.state = 8915;
			this.factoring_element();
			this.state = 8920;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			while (_la===2229) {
				{
				{
				this.state = 8916;
				this.match(PlSqlParser.COMMA);
				this.state = 8917;
				this.factoring_element();
				}
				}
				this.state = 8922;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public factoring_element(): Factoring_elementContext {
		let localctx: Factoring_elementContext = new Factoring_elementContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1046, PlSqlParser.RULE_factoring_element);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 8923;
			this.query_name();
			this.state = 8925;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===2223) {
				{
				this.state = 8924;
				this.paren_column_list();
				}
			}

			this.state = 8927;
			this.match(PlSqlParser.AS);
			this.state = 8928;
			this.match(PlSqlParser.LEFT_PAREN);
			this.state = 8929;
			this.subquery();
			this.state = 8931;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1168) {
				{
				this.state = 8930;
				this.order_by_clause();
				}
			}

			this.state = 8933;
			this.match(PlSqlParser.RIGHT_PAREN);
			this.state = 8935;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1479) {
				{
				this.state = 8934;
				this.search_clause();
				}
			}

			this.state = 8938;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===314) {
				{
				this.state = 8937;
				this.cycle_clause();
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public search_clause(): Search_clauseContext {
		let localctx: Search_clauseContext = new Search_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1048, PlSqlParser.RULE_search_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 8940;
			this.match(PlSqlParser.SEARCH);
			this.state = 8941;
			_la = this._input.LA(1);
			if(!(_la===138 || _la===367)) {
			this._errHandler.recoverInline(this);
			}
			else {
				this._errHandler.reportMatch(this);
			    this.consume();
			}
			this.state = 8942;
			this.match(PlSqlParser.FIRST);
			this.state = 8943;
			this.match(PlSqlParser.BY);
			this.state = 8944;
			this.column_name();
			this.state = 8946;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===62) {
				{
				this.state = 8945;
				this.match(PlSqlParser.ASC);
				}
			}

			this.state = 8949;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===371) {
				{
				this.state = 8948;
				this.match(PlSqlParser.DESC);
				}
			}

			this.state = 8953;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1172, this._ctx) ) {
			case 1:
				{
				this.state = 8951;
				this.match(PlSqlParser.NULLS);
				this.state = 8952;
				this.match(PlSqlParser.FIRST);
				}
				break;
			}
			this.state = 8957;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1098) {
				{
				this.state = 8955;
				this.match(PlSqlParser.NULLS);
				this.state = 8956;
				this.match(PlSqlParser.LAST);
				}
			}

			this.state = 8977;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			while (_la===2229) {
				{
				{
				this.state = 8959;
				this.match(PlSqlParser.COMMA);
				this.state = 8960;
				this.column_name();
				this.state = 8962;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===62) {
					{
					this.state = 8961;
					this.match(PlSqlParser.ASC);
					}
				}

				this.state = 8965;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===371) {
					{
					this.state = 8964;
					this.match(PlSqlParser.DESC);
					}
				}

				this.state = 8969;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 1176, this._ctx) ) {
				case 1:
					{
					this.state = 8967;
					this.match(PlSqlParser.NULLS);
					this.state = 8968;
					this.match(PlSqlParser.FIRST);
					}
					break;
				}
				this.state = 8973;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===1098) {
					{
					this.state = 8971;
					this.match(PlSqlParser.NULLS);
					this.state = 8972;
					this.match(PlSqlParser.LAST);
					}
				}

				}
				}
				this.state = 8979;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			}
			this.state = 8980;
			this.match(PlSqlParser.SET);
			this.state = 8981;
			this.column_name();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public cycle_clause(): Cycle_clauseContext {
		let localctx: Cycle_clauseContext = new Cycle_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1050, PlSqlParser.RULE_cycle_clause);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 8983;
			this.match(PlSqlParser.CYCLE);
			this.state = 8984;
			this.column_list();
			this.state = 8985;
			this.match(PlSqlParser.SET);
			this.state = 8986;
			this.column_name();
			this.state = 8987;
			this.match(PlSqlParser.TO);
			this.state = 8988;
			this.expression();
			this.state = 8989;
			this.match(PlSqlParser.DEFAULT);
			this.state = 8990;
			this.expression();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public subquery(): SubqueryContext {
		let localctx: SubqueryContext = new SubqueryContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1052, PlSqlParser.RULE_subquery);
		try {
			let _alt: number;
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 8992;
			this.subquery_basic_elements();
			this.state = 8996;
			this._errHandler.sync(this);
			_alt = this._interp.adaptivePredict(this._input, 1179, this._ctx);
			while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) {
				if (_alt === 1) {
					{
					{
					this.state = 8993;
					this.subquery_operation_part();
					}
					}
				}
				this.state = 8998;
				this._errHandler.sync(this);
				_alt = this._interp.adaptivePredict(this._input, 1179, this._ctx);
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public subquery_basic_elements(): Subquery_basic_elementsContext {
		let localctx: Subquery_basic_elementsContext = new Subquery_basic_elementsContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1054, PlSqlParser.RULE_subquery_basic_elements);
		try {
			this.state = 9004;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 1490:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 8999;
				this.query_block();
				}
				break;
			case 2223:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 9000;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 9001;
				this.subquery();
				this.state = 9002;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public subquery_operation_part(): Subquery_operation_partContext {
		let localctx: Subquery_operation_partContext = new Subquery_operation_partContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1056, PlSqlParser.RULE_subquery_operation_part);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 9012;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 2001:
				{
				this.state = 9006;
				this.match(PlSqlParser.UNION);
				this.state = 9008;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===35) {
					{
					this.state = 9007;
					this.match(PlSqlParser.ALL);
					}
				}

				}
				break;
			case 688:
				{
				this.state = 9010;
				this.match(PlSqlParser.INTERSECT);
				}
				break;
			case 842:
				{
				this.state = 9011;
				this.match(PlSqlParser.MINUS);
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
			this.state = 9014;
			this.subquery_basic_elements();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public query_block(): Query_blockContext {
		let localctx: Query_blockContext = new Query_blockContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1058, PlSqlParser.RULE_query_block);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 9016;
			this.match(PlSqlParser.SELECT);
			this.state = 9018;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1183, this._ctx) ) {
			case 1:
				{
				this.state = 9017;
				_la = this._input.LA(1);
				if(!(_la===35 || _la===396 || _la===2002)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				}
				break;
			}
			this.state = 9020;
			this.selected_list();
			this.state = 9022;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===145 || _la===691) {
				{
				this.state = 9021;
				this.into_clause();
				}
			}

			this.state = 9024;
			this.from_clause();
			this.state = 9026;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1185, this._ctx) ) {
			case 1:
				{
				this.state = 9025;
				this.where_clause();
				}
				break;
			}
			this.state = 9029;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1186, this._ctx) ) {
			case 1:
				{
				this.state = 9028;
				this.hierarchical_query_clause();
				}
				break;
			}
			this.state = 9032;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1187, this._ctx) ) {
			case 1:
				{
				this.state = 9031;
				this.group_by_clause();
				}
				break;
			}
			this.state = 9035;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1188, this._ctx) ) {
			case 1:
				{
				this.state = 9034;
				this.model_clause();
				}
				break;
			}
			this.state = 9038;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1189, this._ctx) ) {
			case 1:
				{
				this.state = 9037;
				this.order_by_clause();
				}
				break;
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public selected_list(): Selected_listContext {
		let localctx: Selected_listContext = new Selected_listContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1060, PlSqlParser.RULE_selected_list);
		let _la: number;
		try {
			this.state = 9049;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 2226:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 9040;
				this.match(PlSqlParser.ASTERISK);
				}
				break;
			case 1:
			case 2:
			case 3:
			case 4:
			case 5:
			case 6:
			case 7:
			case 8:
			case 9:
			case 10:
			case 11:
			case 12:
			case 13:
			case 14:
			case 15:
			case 16:
			case 17:
			case 18:
			case 19:
			case 20:
			case 21:
			case 22:
			case 23:
			case 24:
			case 25:
			case 26:
			case 27:
			case 28:
			case 29:
			case 30:
			case 31:
			case 32:
			case 33:
			case 34:
			case 35:
			case 36:
			case 37:
			case 38:
			case 40:
			case 41:
			case 42:
			case 44:
			case 45:
			case 46:
			case 47:
			case 48:
			case 49:
			case 50:
			case 51:
			case 52:
			case 53:
			case 54:
			case 55:
			case 56:
			case 57:
			case 58:
			case 59:
			case 60:
			case 63:
			case 64:
			case 65:
			case 66:
			case 67:
			case 68:
			case 69:
			case 70:
			case 71:
			case 72:
			case 73:
			case 74:
			case 75:
			case 76:
			case 78:
			case 79:
			case 80:
			case 81:
			case 82:
			case 83:
			case 85:
			case 86:
			case 87:
			case 88:
			case 89:
			case 90:
			case 91:
			case 92:
			case 93:
			case 95:
			case 96:
			case 97:
			case 98:
			case 99:
			case 100:
			case 101:
			case 102:
			case 103:
			case 104:
			case 105:
			case 106:
			case 108:
			case 109:
			case 110:
			case 111:
			case 112:
			case 113:
			case 114:
			case 115:
			case 116:
			case 117:
			case 118:
			case 119:
			case 120:
			case 121:
			case 122:
			case 123:
			case 124:
			case 125:
			case 126:
			case 127:
			case 128:
			case 129:
			case 130:
			case 131:
			case 132:
			case 133:
			case 134:
			case 135:
			case 136:
			case 137:
			case 138:
			case 139:
			case 140:
			case 141:
			case 142:
			case 143:
			case 144:
			case 145:
			case 147:
			case 148:
			case 149:
			case 150:
			case 151:
			case 152:
			case 153:
			case 154:
			case 155:
			case 156:
			case 157:
			case 158:
			case 160:
			case 161:
			case 162:
			case 163:
			case 164:
			case 165:
			case 166:
			case 167:
			case 168:
			case 169:
			case 170:
			case 171:
			case 172:
			case 174:
			case 175:
			case 176:
			case 177:
			case 178:
			case 179:
			case 181:
			case 182:
			case 183:
			case 184:
			case 185:
			case 186:
			case 187:
			case 188:
			case 189:
			case 190:
			case 191:
			case 192:
			case 193:
			case 194:
			case 195:
			case 196:
			case 197:
			case 198:
			case 199:
			case 200:
			case 201:
			case 202:
			case 203:
			case 204:
			case 205:
			case 206:
			case 207:
			case 208:
			case 209:
			case 210:
			case 211:
			case 212:
			case 213:
			case 214:
			case 215:
			case 216:
			case 217:
			case 218:
			case 219:
			case 220:
			case 221:
			case 222:
			case 223:
			case 224:
			case 225:
			case 226:
			case 227:
			case 228:
			case 229:
			case 230:
			case 231:
			case 233:
			case 234:
			case 235:
			case 236:
			case 237:
			case 238:
			case 239:
			case 240:
			case 241:
			case 242:
			case 243:
			case 244:
			case 245:
			case 246:
			case 247:
			case 248:
			case 249:
			case 250:
			case 252:
			case 253:
			case 254:
			case 255:
			case 256:
			case 257:
			case 258:
			case 259:
			case 260:
			case 261:
			case 262:
			case 263:
			case 264:
			case 265:
			case 266:
			case 267:
			case 268:
			case 269:
			case 270:
			case 271:
			case 272:
			case 273:
			case 274:
			case 275:
			case 276:
			case 277:
			case 278:
			case 279:
			case 280:
			case 281:
			case 282:
			case 283:
			case 284:
			case 285:
			case 286:
			case 287:
			case 289:
			case 290:
			case 291:
			case 292:
			case 293:
			case 294:
			case 295:
			case 296:
			case 297:
			case 298:
			case 299:
			case 300:
			case 301:
			case 302:
			case 303:
			case 304:
			case 305:
			case 306:
			case 307:
			case 308:
			case 309:
			case 310:
			case 311:
			case 312:
			case 313:
			case 314:
			case 315:
			case 316:
			case 317:
			case 318:
			case 319:
			case 321:
			case 322:
			case 323:
			case 324:
			case 325:
			case 326:
			case 327:
			case 328:
			case 329:
			case 330:
			case 331:
			case 332:
			case 333:
			case 334:
			case 335:
			case 336:
			case 337:
			case 338:
			case 339:
			case 340:
			case 341:
			case 342:
			case 343:
			case 344:
			case 345:
			case 346:
			case 347:
			case 348:
			case 349:
			case 350:
			case 351:
			case 352:
			case 353:
			case 354:
			case 355:
			case 356:
			case 357:
			case 358:
			case 359:
			case 360:
			case 361:
			case 362:
			case 363:
			case 364:
			case 365:
			case 366:
			case 367:
			case 368:
			case 369:
			case 370:
			case 372:
			case 373:
			case 374:
			case 375:
			case 376:
			case 377:
			case 378:
			case 379:
			case 380:
			case 381:
			case 382:
			case 383:
			case 384:
			case 385:
			case 386:
			case 387:
			case 388:
			case 389:
			case 390:
			case 391:
			case 392:
			case 394:
			case 395:
			case 396:
			case 397:
			case 398:
			case 399:
			case 400:
			case 401:
			case 402:
			case 403:
			case 404:
			case 405:
			case 406:
			case 407:
			case 408:
			case 409:
			case 410:
			case 412:
			case 413:
			case 414:
			case 415:
			case 417:
			case 418:
			case 419:
			case 420:
			case 421:
			case 422:
			case 423:
			case 424:
			case 425:
			case 426:
			case 427:
			case 428:
			case 429:
			case 430:
			case 431:
			case 434:
			case 435:
			case 436:
			case 437:
			case 438:
			case 439:
			case 440:
			case 441:
			case 442:
			case 443:
			case 444:
			case 446:
			case 447:
			case 448:
			case 449:
			case 450:
			case 451:
			case 452:
			case 453:
			case 454:
			case 455:
			case 456:
			case 457:
			case 458:
			case 459:
			case 460:
			case 461:
			case 462:
			case 463:
			case 464:
			case 465:
			case 466:
			case 467:
			case 468:
			case 469:
			case 470:
			case 471:
			case 472:
			case 473:
			case 475:
			case 476:
			case 477:
			case 478:
			case 479:
			case 480:
			case 481:
			case 482:
			case 483:
			case 484:
			case 485:
			case 486:
			case 487:
			case 488:
			case 489:
			case 490:
			case 491:
			case 492:
			case 493:
			case 494:
			case 495:
			case 496:
			case 497:
			case 498:
			case 499:
			case 500:
			case 501:
			case 502:
			case 503:
			case 504:
			case 505:
			case 506:
			case 507:
			case 508:
			case 509:
			case 510:
			case 511:
			case 512:
			case 513:
			case 514:
			case 515:
			case 516:
			case 517:
			case 518:
			case 519:
			case 520:
			case 521:
			case 522:
			case 523:
			case 524:
			case 525:
			case 526:
			case 527:
			case 528:
			case 529:
			case 530:
			case 531:
			case 532:
			case 533:
			case 534:
			case 535:
			case 536:
			case 537:
			case 538:
			case 539:
			case 540:
			case 541:
			case 542:
			case 543:
			case 544:
			case 545:
			case 547:
			case 548:
			case 549:
			case 550:
			case 551:
			case 552:
			case 553:
			case 555:
			case 556:
			case 557:
			case 558:
			case 559:
			case 560:
			case 561:
			case 562:
			case 563:
			case 564:
			case 565:
			case 566:
			case 567:
			case 568:
			case 569:
			case 572:
			case 574:
			case 575:
			case 576:
			case 577:
			case 578:
			case 579:
			case 580:
			case 581:
			case 582:
			case 583:
			case 584:
			case 586:
			case 587:
			case 588:
			case 589:
			case 590:
			case 591:
			case 592:
			case 593:
			case 594:
			case 595:
			case 596:
			case 597:
			case 598:
			case 599:
			case 600:
			case 602:
			case 603:
			case 604:
			case 605:
			case 606:
			case 607:
			case 608:
			case 609:
			case 610:
			case 611:
			case 612:
			case 613:
			case 614:
			case 615:
			case 616:
			case 617:
			case 618:
			case 619:
			case 620:
			case 621:
			case 622:
			case 623:
			case 624:
			case 625:
			case 626:
			case 627:
			case 628:
			case 629:
			case 630:
			case 632:
			case 633:
			case 634:
			case 635:
			case 636:
			case 637:
			case 638:
			case 639:
			case 640:
			case 641:
			case 642:
			case 643:
			case 644:
			case 645:
			case 646:
			case 647:
			case 648:
			case 649:
			case 650:
			case 651:
			case 653:
			case 654:
			case 655:
			case 656:
			case 657:
			case 658:
			case 659:
			case 660:
			case 661:
			case 662:
			case 663:
			case 664:
			case 665:
			case 666:
			case 667:
			case 668:
			case 670:
			case 671:
			case 672:
			case 673:
			case 674:
			case 675:
			case 676:
			case 677:
			case 678:
			case 679:
			case 680:
			case 681:
			case 682:
			case 683:
			case 684:
			case 685:
			case 686:
			case 687:
			case 689:
			case 690:
			case 692:
			case 693:
			case 694:
			case 696:
			case 697:
			case 698:
			case 699:
			case 700:
			case 701:
			case 702:
			case 703:
			case 704:
			case 705:
			case 706:
			case 707:
			case 708:
			case 709:
			case 710:
			case 711:
			case 712:
			case 713:
			case 714:
			case 715:
			case 716:
			case 717:
			case 718:
			case 719:
			case 720:
			case 721:
			case 722:
			case 723:
			case 724:
			case 725:
			case 726:
			case 727:
			case 728:
			case 729:
			case 730:
			case 731:
			case 732:
			case 733:
			case 734:
			case 735:
			case 736:
			case 737:
			case 738:
			case 739:
			case 740:
			case 741:
			case 742:
			case 743:
			case 744:
			case 745:
			case 746:
			case 747:
			case 748:
			case 749:
			case 750:
			case 751:
			case 752:
			case 753:
			case 754:
			case 755:
			case 756:
			case 758:
			case 759:
			case 760:
			case 761:
			case 762:
			case 763:
			case 764:
			case 765:
			case 766:
			case 767:
			case 768:
			case 769:
			case 770:
			case 771:
			case 772:
			case 773:
			case 774:
			case 775:
			case 777:
			case 778:
			case 779:
			case 780:
			case 781:
			case 782:
			case 783:
			case 784:
			case 785:
			case 786:
			case 787:
			case 788:
			case 789:
			case 790:
			case 791:
			case 792:
			case 793:
			case 794:
			case 795:
			case 796:
			case 797:
			case 798:
			case 799:
			case 800:
			case 801:
			case 802:
			case 803:
			case 804:
			case 805:
			case 806:
			case 807:
			case 808:
			case 809:
			case 810:
			case 811:
			case 812:
			case 813:
			case 814:
			case 815:
			case 816:
			case 817:
			case 818:
			case 819:
			case 820:
			case 821:
			case 822:
			case 823:
			case 824:
			case 825:
			case 826:
			case 827:
			case 828:
			case 829:
			case 830:
			case 831:
			case 832:
			case 833:
			case 834:
			case 835:
			case 836:
			case 837:
			case 838:
			case 839:
			case 840:
			case 841:
			case 843:
			case 844:
			case 845:
			case 846:
			case 847:
			case 848:
			case 849:
			case 850:
			case 851:
			case 852:
			case 853:
			case 854:
			case 855:
			case 856:
			case 857:
			case 858:
			case 859:
			case 861:
			case 862:
			case 863:
			case 864:
			case 865:
			case 866:
			case 867:
			case 868:
			case 869:
			case 870:
			case 871:
			case 872:
			case 873:
			case 874:
			case 875:
			case 876:
			case 877:
			case 878:
			case 879:
			case 880:
			case 881:
			case 882:
			case 883:
			case 884:
			case 885:
			case 886:
			case 888:
			case 889:
			case 890:
			case 891:
			case 892:
			case 893:
			case 894:
			case 895:
			case 896:
			case 897:
			case 898:
			case 899:
			case 900:
			case 901:
			case 902:
			case 903:
			case 904:
			case 905:
			case 906:
			case 907:
			case 908:
			case 909:
			case 910:
			case 911:
			case 912:
			case 913:
			case 914:
			case 915:
			case 916:
			case 917:
			case 918:
			case 919:
			case 920:
			case 921:
			case 922:
			case 923:
			case 924:
			case 925:
			case 926:
			case 927:
			case 928:
			case 929:
			case 930:
			case 931:
			case 932:
			case 933:
			case 934:
			case 935:
			case 936:
			case 937:
			case 938:
			case 939:
			case 940:
			case 941:
			case 942:
			case 943:
			case 944:
			case 945:
			case 946:
			case 947:
			case 948:
			case 949:
			case 950:
			case 951:
			case 952:
			case 954:
			case 955:
			case 956:
			case 957:
			case 958:
			case 959:
			case 960:
			case 961:
			case 962:
			case 963:
			case 964:
			case 965:
			case 966:
			case 967:
			case 968:
			case 969:
			case 970:
			case 971:
			case 972:
			case 973:
			case 974:
			case 975:
			case 976:
			case 977:
			case 978:
			case 979:
			case 980:
			case 981:
			case 982:
			case 983:
			case 984:
			case 985:
			case 986:
			case 987:
			case 988:
			case 989:
			case 990:
			case 991:
			case 992:
			case 993:
			case 994:
			case 995:
			case 996:
			case 997:
			case 998:
			case 999:
			case 1000:
			case 1001:
			case 1002:
			case 1003:
			case 1004:
			case 1005:
			case 1006:
			case 1007:
			case 1008:
			case 1009:
			case 1010:
			case 1011:
			case 1012:
			case 1013:
			case 1014:
			case 1015:
			case 1016:
			case 1017:
			case 1018:
			case 1019:
			case 1020:
			case 1021:
			case 1022:
			case 1023:
			case 1024:
			case 1025:
			case 1026:
			case 1027:
			case 1028:
			case 1029:
			case 1030:
			case 1031:
			case 1032:
			case 1033:
			case 1034:
			case 1035:
			case 1036:
			case 1037:
			case 1038:
			case 1039:
			case 1040:
			case 1041:
			case 1042:
			case 1043:
			case 1044:
			case 1045:
			case 1046:
			case 1047:
			case 1048:
			case 1049:
			case 1050:
			case 1051:
			case 1052:
			case 1053:
			case 1054:
			case 1055:
			case 1056:
			case 1057:
			case 1058:
			case 1059:
			case 1060:
			case 1061:
			case 1062:
			case 1063:
			case 1064:
			case 1065:
			case 1066:
			case 1067:
			case 1068:
			case 1069:
			case 1070:
			case 1071:
			case 1072:
			case 1073:
			case 1074:
			case 1075:
			case 1076:
			case 1077:
			case 1078:
			case 1079:
			case 1080:
			case 1081:
			case 1082:
			case 1083:
			case 1084:
			case 1085:
			case 1086:
			case 1087:
			case 1089:
			case 1090:
			case 1091:
			case 1092:
			case 1093:
			case 1094:
			case 1095:
			case 1096:
			case 1097:
			case 1098:
			case 1099:
			case 1100:
			case 1101:
			case 1102:
			case 1103:
			case 1104:
			case 1105:
			case 1106:
			case 1107:
			case 1108:
			case 1109:
			case 1110:
			case 1111:
			case 1112:
			case 1113:
			case 1114:
			case 1116:
			case 1117:
			case 1118:
			case 1119:
			case 1120:
			case 1121:
			case 1122:
			case 1123:
			case 1124:
			case 1125:
			case 1127:
			case 1129:
			case 1130:
			case 1131:
			case 1132:
			case 1133:
			case 1134:
			case 1135:
			case 1136:
			case 1137:
			case 1138:
			case 1139:
			case 1140:
			case 1142:
			case 1143:
			case 1144:
			case 1145:
			case 1146:
			case 1147:
			case 1148:
			case 1149:
			case 1150:
			case 1151:
			case 1152:
			case 1153:
			case 1154:
			case 1155:
			case 1156:
			case 1157:
			case 1158:
			case 1159:
			case 1160:
			case 1161:
			case 1162:
			case 1163:
			case 1164:
			case 1165:
			case 1166:
			case 1167:
			case 1169:
			case 1170:
			case 1171:
			case 1173:
			case 1174:
			case 1175:
			case 1176:
			case 1177:
			case 1178:
			case 1179:
			case 1180:
			case 1181:
			case 1182:
			case 1183:
			case 1184:
			case 1185:
			case 1186:
			case 1187:
			case 1188:
			case 1189:
			case 1190:
			case 1191:
			case 1192:
			case 1193:
			case 1194:
			case 1195:
			case 1197:
			case 1198:
			case 1199:
			case 1200:
			case 1201:
			case 1202:
			case 1203:
			case 1204:
			case 1205:
			case 1206:
			case 1207:
			case 1208:
			case 1209:
			case 1210:
			case 1211:
			case 1212:
			case 1213:
			case 1214:
			case 1215:
			case 1216:
			case 1217:
			case 1218:
			case 1219:
			case 1220:
			case 1221:
			case 1222:
			case 1223:
			case 1224:
			case 1225:
			case 1226:
			case 1228:
			case 1229:
			case 1230:
			case 1231:
			case 1232:
			case 1236:
			case 1237:
			case 1241:
			case 1242:
			case 1243:
			case 1244:
			case 1245:
			case 1246:
			case 1247:
			case 1248:
			case 1249:
			case 1250:
			case 1252:
			case 1253:
			case 1254:
			case 1255:
			case 1256:
			case 1257:
			case 1258:
			case 1259:
			case 1260:
			case 1261:
			case 1262:
			case 1263:
			case 1264:
			case 1265:
			case 1266:
			case 1267:
			case 1268:
			case 1269:
			case 1270:
			case 1271:
			case 1272:
			case 1273:
			case 1274:
			case 1275:
			case 1276:
			case 1277:
			case 1278:
			case 1279:
			case 1280:
			case 1281:
			case 1282:
			case 1283:
			case 1284:
			case 1285:
			case 1286:
			case 1287:
			case 1288:
			case 1289:
			case 1290:
			case 1291:
			case 1292:
			case 1293:
			case 1294:
			case 1295:
			case 1296:
			case 1297:
			case 1298:
			case 1299:
			case 1300:
			case 1301:
			case 1302:
			case 1303:
			case 1304:
			case 1305:
			case 1306:
			case 1307:
			case 1308:
			case 1309:
			case 1310:
			case 1311:
			case 1312:
			case 1313:
			case 1314:
			case 1315:
			case 1316:
			case 1317:
			case 1318:
			case 1319:
			case 1320:
			case 1321:
			case 1322:
			case 1323:
			case 1325:
			case 1326:
			case 1327:
			case 1328:
			case 1329:
			case 1330:
			case 1331:
			case 1332:
			case 1333:
			case 1334:
			case 1335:
			case 1336:
			case 1337:
			case 1338:
			case 1339:
			case 1340:
			case 1341:
			case 1342:
			case 1343:
			case 1344:
			case 1345:
			case 1346:
			case 1347:
			case 1348:
			case 1349:
			case 1350:
			case 1351:
			case 1352:
			case 1353:
			case 1354:
			case 1355:
			case 1356:
			case 1357:
			case 1358:
			case 1359:
			case 1360:
			case 1361:
			case 1362:
			case 1363:
			case 1364:
			case 1365:
			case 1366:
			case 1367:
			case 1368:
			case 1369:
			case 1370:
			case 1371:
			case 1372:
			case 1373:
			case 1374:
			case 1375:
			case 1376:
			case 1377:
			case 1378:
			case 1379:
			case 1380:
			case 1381:
			case 1382:
			case 1383:
			case 1384:
			case 1385:
			case 1386:
			case 1387:
			case 1388:
			case 1389:
			case 1390:
			case 1391:
			case 1392:
			case 1393:
			case 1394:
			case 1395:
			case 1396:
			case 1397:
			case 1399:
			case 1400:
			case 1401:
			case 1402:
			case 1403:
			case 1404:
			case 1405:
			case 1406:
			case 1407:
			case 1408:
			case 1409:
			case 1410:
			case 1411:
			case 1412:
			case 1413:
			case 1414:
			case 1416:
			case 1417:
			case 1418:
			case 1419:
			case 1420:
			case 1421:
			case 1422:
			case 1423:
			case 1424:
			case 1425:
			case 1426:
			case 1427:
			case 1428:
			case 1429:
			case 1430:
			case 1431:
			case 1432:
			case 1433:
			case 1435:
			case 1436:
			case 1437:
			case 1438:
			case 1439:
			case 1440:
			case 1441:
			case 1442:
			case 1443:
			case 1444:
			case 1445:
			case 1446:
			case 1447:
			case 1448:
			case 1449:
			case 1450:
			case 1451:
			case 1452:
			case 1453:
			case 1454:
			case 1455:
			case 1456:
			case 1457:
			case 1458:
			case 1459:
			case 1460:
			case 1461:
			case 1462:
			case 1463:
			case 1464:
			case 1465:
			case 1466:
			case 1467:
			case 1468:
			case 1469:
			case 1470:
			case 1471:
			case 1472:
			case 1473:
			case 1474:
			case 1475:
			case 1476:
			case 1477:
			case 1478:
			case 1479:
			case 1480:
			case 1481:
			case 1482:
			case 1483:
			case 1484:
			case 1485:
			case 1486:
			case 1487:
			case 1488:
			case 1489:
			case 1491:
			case 1492:
			case 1493:
			case 1494:
			case 1495:
			case 1496:
			case 1497:
			case 1499:
			case 1500:
			case 1501:
			case 1502:
			case 1503:
			case 1504:
			case 1505:
			case 1506:
			case 1507:
			case 1508:
			case 1509:
			case 1510:
			case 1511:
			case 1512:
			case 1513:
			case 1514:
			case 1515:
			case 1516:
			case 1518:
			case 1519:
			case 1520:
			case 1521:
			case 1522:
			case 1523:
			case 1524:
			case 1525:
			case 1526:
			case 1527:
			case 1528:
			case 1529:
			case 1530:
			case 1531:
			case 1532:
			case 1533:
			case 1534:
			case 1536:
			case 1537:
			case 1538:
			case 1539:
			case 1540:
			case 1541:
			case 1542:
			case 1543:
			case 1544:
			case 1545:
			case 1546:
			case 1547:
			case 1548:
			case 1549:
			case 1550:
			case 1551:
			case 1552:
			case 1553:
			case 1554:
			case 1555:
			case 1556:
			case 1557:
			case 1558:
			case 1559:
			case 1560:
			case 1561:
			case 1562:
			case 1563:
			case 1564:
			case 1565:
			case 1566:
			case 1567:
			case 1568:
			case 1570:
			case 1571:
			case 1572:
			case 1573:
			case 1574:
			case 1575:
			case 1576:
			case 1577:
			case 1578:
			case 1579:
			case 1580:
			case 1581:
			case 1582:
			case 1583:
			case 1584:
			case 1585:
			case 1586:
			case 1587:
			case 1588:
			case 1589:
			case 1590:
			case 1591:
			case 1592:
			case 1593:
			case 1594:
			case 1595:
			case 1596:
			case 1597:
			case 1598:
			case 1599:
			case 1600:
			case 1601:
			case 1602:
			case 1603:
			case 1604:
			case 1605:
			case 1606:
			case 1607:
			case 1608:
			case 1609:
			case 1610:
			case 1611:
			case 1612:
			case 1613:
			case 1614:
			case 1615:
			case 1616:
			case 1617:
			case 1618:
			case 1619:
			case 1620:
			case 1621:
			case 1622:
			case 1623:
			case 1624:
			case 1625:
			case 1626:
			case 1628:
			case 1629:
			case 1630:
			case 1631:
			case 1632:
			case 1633:
			case 1634:
			case 1635:
			case 1636:
			case 1637:
			case 1638:
			case 1639:
			case 1640:
			case 1641:
			case 1642:
			case 1643:
			case 1644:
			case 1645:
			case 1646:
			case 1647:
			case 1648:
			case 1649:
			case 1650:
			case 1651:
			case 1652:
			case 1653:
			case 1654:
			case 1655:
			case 1656:
			case 1657:
			case 1658:
			case 1659:
			case 1660:
			case 1661:
			case 1662:
			case 1663:
			case 1664:
			case 1665:
			case 1666:
			case 1667:
			case 1668:
			case 1669:
			case 1670:
			case 1671:
			case 1672:
			case 1673:
			case 1674:
			case 1675:
			case 1676:
			case 1677:
			case 1678:
			case 1679:
			case 1680:
			case 1681:
			case 1682:
			case 1683:
			case 1684:
			case 1685:
			case 1686:
			case 1687:
			case 1688:
			case 1689:
			case 1690:
			case 1691:
			case 1692:
			case 1693:
			case 1694:
			case 1695:
			case 1696:
			case 1697:
			case 1698:
			case 1699:
			case 1700:
			case 1701:
			case 1702:
			case 1703:
			case 1704:
			case 1705:
			case 1706:
			case 1707:
			case 1708:
			case 1709:
			case 1710:
			case 1711:
			case 1712:
			case 1713:
			case 1714:
			case 1715:
			case 1716:
			case 1717:
			case 1718:
			case 1719:
			case 1720:
			case 1721:
			case 1722:
			case 1723:
			case 1724:
			case 1725:
			case 1726:
			case 1727:
			case 1728:
			case 1729:
			case 1730:
			case 1731:
			case 1732:
			case 1733:
			case 1734:
			case 1735:
			case 1736:
			case 1737:
			case 1738:
			case 1739:
			case 1740:
			case 1741:
			case 1742:
			case 1743:
			case 1744:
			case 1745:
			case 1746:
			case 1747:
			case 1748:
			case 1749:
			case 1750:
			case 1751:
			case 1752:
			case 1753:
			case 1754:
			case 1755:
			case 1756:
			case 1757:
			case 1758:
			case 1759:
			case 1760:
			case 1761:
			case 1762:
			case 1763:
			case 1764:
			case 1765:
			case 1766:
			case 1767:
			case 1768:
			case 1769:
			case 1770:
			case 1771:
			case 1772:
			case 1773:
			case 1774:
			case 1775:
			case 1776:
			case 1777:
			case 1778:
			case 1779:
			case 1780:
			case 1781:
			case 1782:
			case 1783:
			case 1784:
			case 1785:
			case 1786:
			case 1787:
			case 1788:
			case 1789:
			case 1790:
			case 1791:
			case 1792:
			case 1793:
			case 1794:
			case 1795:
			case 1796:
			case 1797:
			case 1798:
			case 1799:
			case 1800:
			case 1801:
			case 1802:
			case 1803:
			case 1804:
			case 1805:
			case 1806:
			case 1807:
			case 1808:
			case 1809:
			case 1810:
			case 1811:
			case 1812:
			case 1813:
			case 1814:
			case 1815:
			case 1816:
			case 1817:
			case 1818:
			case 1819:
			case 1820:
			case 1821:
			case 1822:
			case 1823:
			case 1824:
			case 1825:
			case 1826:
			case 1827:
			case 1828:
			case 1829:
			case 1830:
			case 1831:
			case 1832:
			case 1833:
			case 1834:
			case 1835:
			case 1836:
			case 1837:
			case 1838:
			case 1839:
			case 1840:
			case 1841:
			case 1842:
			case 1843:
			case 1844:
			case 1845:
			case 1846:
			case 1847:
			case 1848:
			case 1849:
			case 1850:
			case 1851:
			case 1852:
			case 1853:
			case 1854:
			case 1855:
			case 1856:
			case 1857:
			case 1858:
			case 1859:
			case 1860:
			case 1861:
			case 1862:
			case 1863:
			case 1864:
			case 1865:
			case 1866:
			case 1867:
			case 1868:
			case 1869:
			case 1870:
			case 1871:
			case 1872:
			case 1873:
			case 1874:
			case 1875:
			case 1876:
			case 1877:
			case 1878:
			case 1879:
			case 1880:
			case 1881:
			case 1882:
			case 1883:
			case 1884:
			case 1885:
			case 1886:
			case 1887:
			case 1888:
			case 1889:
			case 1890:
			case 1891:
			case 1892:
			case 1893:
			case 1894:
			case 1895:
			case 1896:
			case 1897:
			case 1898:
			case 1899:
			case 1900:
			case 1901:
			case 1902:
			case 1903:
			case 1904:
			case 1905:
			case 1906:
			case 1907:
			case 1908:
			case 1909:
			case 1910:
			case 1911:
			case 1912:
			case 1913:
			case 1914:
			case 1915:
			case 1916:
			case 1917:
			case 1918:
			case 1919:
			case 1920:
			case 1921:
			case 1922:
			case 1923:
			case 1924:
			case 1925:
			case 1926:
			case 1927:
			case 1928:
			case 1929:
			case 1930:
			case 1931:
			case 1932:
			case 1933:
			case 1934:
			case 1935:
			case 1936:
			case 1937:
			case 1939:
			case 1940:
			case 1941:
			case 1942:
			case 1943:
			case 1944:
			case 1945:
			case 1946:
			case 1947:
			case 1948:
			case 1949:
			case 1950:
			case 1951:
			case 1952:
			case 1953:
			case 1954:
			case 1955:
			case 1956:
			case 1957:
			case 1958:
			case 1959:
			case 1960:
			case 1961:
			case 1962:
			case 1963:
			case 1965:
			case 1966:
			case 1967:
			case 1968:
			case 1969:
			case 1970:
			case 1971:
			case 1972:
			case 1973:
			case 1974:
			case 1975:
			case 1976:
			case 1977:
			case 1978:
			case 1979:
			case 1980:
			case 1981:
			case 1982:
			case 1983:
			case 1984:
			case 1985:
			case 1986:
			case 1987:
			case 1988:
			case 1989:
			case 1990:
			case 1991:
			case 1992:
			case 1993:
			case 1994:
			case 1995:
			case 1996:
			case 1997:
			case 1998:
			case 1999:
			case 2000:
			case 2003:
			case 2004:
			case 2005:
			case 2006:
			case 2007:
			case 2008:
			case 2009:
			case 2010:
			case 2011:
			case 2012:
			case 2013:
			case 2014:
			case 2015:
			case 2016:
			case 2017:
			case 2018:
			case 2019:
			case 2020:
			case 2021:
			case 2022:
			case 2023:
			case 2024:
			case 2026:
			case 2027:
			case 2028:
			case 2029:
			case 2030:
			case 2031:
			case 2032:
			case 2033:
			case 2034:
			case 2035:
			case 2036:
			case 2037:
			case 2038:
			case 2039:
			case 2040:
			case 2041:
			case 2042:
			case 2043:
			case 2044:
			case 2045:
			case 2046:
			case 2047:
			case 2048:
			case 2049:
			case 2050:
			case 2051:
			case 2052:
			case 2053:
			case 2054:
			case 2055:
			case 2056:
			case 2057:
			case 2058:
			case 2059:
			case 2060:
			case 2061:
			case 2062:
			case 2063:
			case 2064:
			case 2065:
			case 2066:
			case 2067:
			case 2068:
			case 2069:
			case 2070:
			case 2071:
			case 2072:
			case 2074:
			case 2075:
			case 2076:
			case 2077:
			case 2078:
			case 2079:
			case 2080:
			case 2081:
			case 2082:
			case 2083:
			case 2084:
			case 2085:
			case 2086:
			case 2087:
			case 2088:
			case 2089:
			case 2090:
			case 2091:
			case 2092:
			case 2093:
			case 2094:
			case 2095:
			case 2096:
			case 2097:
			case 2098:
			case 2100:
			case 2101:
			case 2102:
			case 2103:
			case 2104:
			case 2105:
			case 2106:
			case 2107:
			case 2108:
			case 2109:
			case 2110:
			case 2111:
			case 2112:
			case 2113:
			case 2115:
			case 2116:
			case 2117:
			case 2118:
			case 2119:
			case 2120:
			case 2122:
			case 2123:
			case 2124:
			case 2125:
			case 2126:
			case 2128:
			case 2129:
			case 2130:
			case 2131:
			case 2132:
			case 2133:
			case 2134:
			case 2135:
			case 2136:
			case 2137:
			case 2138:
			case 2139:
			case 2140:
			case 2141:
			case 2142:
			case 2143:
			case 2145:
			case 2146:
			case 2147:
			case 2148:
			case 2149:
			case 2150:
			case 2151:
			case 2152:
			case 2153:
			case 2154:
			case 2155:
			case 2156:
			case 2157:
			case 2158:
			case 2159:
			case 2160:
			case 2161:
			case 2162:
			case 2163:
			case 2164:
			case 2165:
			case 2166:
			case 2168:
			case 2169:
			case 2170:
			case 2171:
			case 2172:
			case 2173:
			case 2174:
			case 2175:
			case 2176:
			case 2177:
			case 2178:
			case 2179:
			case 2180:
			case 2181:
			case 2182:
			case 2183:
			case 2184:
			case 2185:
			case 2186:
			case 2187:
			case 2188:
			case 2189:
			case 2190:
			case 2191:
			case 2192:
			case 2193:
			case 2194:
			case 2195:
			case 2196:
			case 2197:
			case 2198:
			case 2199:
			case 2200:
			case 2201:
			case 2202:
			case 2203:
			case 2204:
			case 2205:
			case 2206:
			case 2207:
			case 2208:
			case 2209:
			case 2210:
			case 2211:
			case 2212:
			case 2216:
			case 2217:
			case 2218:
			case 2219:
			case 2220:
			case 2223:
			case 2227:
			case 2228:
			case 2233:
			case 2240:
			case 2246:
			case 2252:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 9041;
				this.select_list_elements();
				this.state = 9046;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===2229) {
					{
					{
					this.state = 9042;
					this.match(PlSqlParser.COMMA);
					this.state = 9043;
					this.select_list_elements();
					}
					}
					this.state = 9048;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public from_clause(): From_clauseContext {
		let localctx: From_clauseContext = new From_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1062, PlSqlParser.RULE_from_clause);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 9051;
			this.match(PlSqlParser.FROM);
			this.state = 9052;
			this.table_ref_list();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public select_list_elements(): Select_list_elementsContext {
		let localctx: Select_list_elementsContext = new Select_list_elementsContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1064, PlSqlParser.RULE_select_list_elements);
		try {
			this.state = 9062;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1193, this._ctx) ) {
			case 1:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 9054;
				this.tableview_name();
				this.state = 9055;
				this.match(PlSqlParser.PERIOD);
				this.state = 9056;
				this.match(PlSqlParser.ASTERISK);
				}
				break;
			case 2:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 9058;
				this.expression();
				this.state = 9060;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 1192, this._ctx) ) {
				case 1:
					{
					this.state = 9059;
					this.column_alias();
					}
					break;
				}
				}
				break;
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public table_ref_list(): Table_ref_listContext {
		let localctx: Table_ref_listContext = new Table_ref_listContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1066, PlSqlParser.RULE_table_ref_list);
		try {
			let _alt: number;
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 9064;
			this.table_ref();
			this.state = 9069;
			this._errHandler.sync(this);
			_alt = this._interp.adaptivePredict(this._input, 1194, this._ctx);
			while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) {
				if (_alt === 1) {
					{
					{
					this.state = 9065;
					this.match(PlSqlParser.COMMA);
					this.state = 9066;
					this.table_ref();
					}
					}
				}
				this.state = 9071;
				this._errHandler.sync(this);
				_alt = this._interp.adaptivePredict(this._input, 1194, this._ctx);
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public table_ref(): Table_refContext {
		let localctx: Table_refContext = new Table_refContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1068, PlSqlParser.RULE_table_ref);
		try {
			let _alt: number;
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 9072;
			this.table_ref_aux();
			this.state = 9076;
			this._errHandler.sync(this);
			_alt = this._interp.adaptivePredict(this._input, 1195, this._ctx);
			while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) {
				if (_alt === 1) {
					{
					{
					this.state = 9073;
					this.join_clause();
					}
					}
				}
				this.state = 9078;
				this._errHandler.sync(this);
				_alt = this._interp.adaptivePredict(this._input, 1195, this._ctx);
			}
			this.state = 9081;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1196, this._ctx) ) {
			case 1:
				{
				this.state = 9079;
				this.pivot_clause();
				}
				break;
			case 2:
				{
				this.state = 9080;
				this.unpivot_clause();
				}
				break;
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public table_ref_aux(): Table_ref_auxContext {
		let localctx: Table_ref_auxContext = new Table_ref_auxContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1070, PlSqlParser.RULE_table_ref_aux);
		try {
			let _alt: number;
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 9083;
			this.table_ref_aux_internal();
			this.state = 9087;
			this._errHandler.sync(this);
			_alt = this._interp.adaptivePredict(this._input, 1197, this._ctx);
			while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) {
				if (_alt === 1) {
					{
					{
					this.state = 9084;
					this.flashback_query_clause();
					}
					}
				}
				this.state = 9089;
				this._errHandler.sync(this);
				_alt = this._interp.adaptivePredict(this._input, 1197, this._ctx);
			}
			this.state = 9091;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1198, this._ctx) ) {
			case 1:
				{
				this.state = 9090;
				this.table_alias();
				}
				break;
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public table_ref_aux_internal(): Table_ref_aux_internalContext {
		let localctx: Table_ref_aux_internalContext = new Table_ref_aux_internalContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1072, PlSqlParser.RULE_table_ref_aux_internal);
		let _la: number;
		try {
			this.state = 9116;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1202, this._ctx) ) {
			case 1:
				localctx = new Table_ref_aux_internal_oneContext(this, localctx);
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 9093;
				this.dml_table_expression_clause();
				this.state = 9096;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 1199, this._ctx) ) {
				case 1:
					{
					this.state = 9094;
					this.pivot_clause();
					}
					break;
				case 2:
					{
					this.state = 9095;
					this.unpivot_clause();
					}
					break;
				}
				}
				break;
			case 2:
				localctx = new Table_ref_aux_internal_twoContext(this, localctx);
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 9098;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 9099;
				this.table_ref();
				this.state = 9103;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===688 || _la===842 || _la===2001) {
					{
					{
					this.state = 9100;
					this.subquery_operation_part();
					}
					}
					this.state = 9105;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				this.state = 9106;
				this.match(PlSqlParser.RIGHT_PAREN);
				this.state = 9109;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 1201, this._ctx) ) {
				case 1:
					{
					this.state = 9107;
					this.pivot_clause();
					}
					break;
				case 2:
					{
					this.state = 9108;
					this.unpivot_clause();
					}
					break;
				}
				}
				break;
			case 3:
				localctx = new Table_ref_aux_internal_threeContext(this, localctx);
				this.enterOuterAlt(localctx, 3);
				{
				this.state = 9111;
				this.match(PlSqlParser.ONLY);
				this.state = 9112;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 9113;
				this.dml_table_expression_clause();
				this.state = 9114;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
				break;
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public join_clause(): Join_clauseContext {
		let localctx: Join_clauseContext = new Join_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1074, PlSqlParser.RULE_join_clause);
		let _la: number;
		try {
			let _alt: number;
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 9119;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1207) {
				{
				this.state = 9118;
				this.query_partition_clause();
				}
			}

			this.state = 9122;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===294 || _la===886) {
				{
				this.state = 9121;
				_la = this._input.LA(1);
				if(!(_la===294 || _la===886)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				}
			}

			this.state = 9126;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 663:
				{
				this.state = 9124;
				this.match(PlSqlParser.INNER);
				}
				break;
			case 556:
			case 740:
			case 1437:
				{
				this.state = 9125;
				this.outer_join_type();
				}
				break;
			case 702:
				break;
			default:
				break;
			}
			this.state = 9128;
			this.match(PlSqlParser.JOIN);
			this.state = 9129;
			this.table_ref_aux();
			this.state = 9131;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1206, this._ctx) ) {
			case 1:
				{
				this.state = 9130;
				this.query_partition_clause();
				}
				break;
			}
			this.state = 9137;
			this._errHandler.sync(this);
			_alt = this._interp.adaptivePredict(this._input, 1208, this._ctx);
			while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) {
				if (_alt === 1) {
					{
					this.state = 9135;
					this._errHandler.sync(this);
					switch (this._input.LA(1)) {
					case 1128:
						{
						this.state = 9133;
						this.join_on_part();
						}
						break;
					case 2063:
						{
						this.state = 9134;
						this.join_using_part();
						}
						break;
					default:
						throw new NoViableAltException(this);
					}
					}
				}
				this.state = 9139;
				this._errHandler.sync(this);
				_alt = this._interp.adaptivePredict(this._input, 1208, this._ctx);
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public join_on_part(): Join_on_partContext {
		let localctx: Join_on_partContext = new Join_on_partContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1076, PlSqlParser.RULE_join_on_part);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 9140;
			this.match(PlSqlParser.ON);
			this.state = 9141;
			this.condition();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public join_using_part(): Join_using_partContext {
		let localctx: Join_using_partContext = new Join_using_partContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1078, PlSqlParser.RULE_join_using_part);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 9143;
			this.match(PlSqlParser.USING);
			this.state = 9144;
			this.paren_column_list();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public outer_join_type(): Outer_join_typeContext {
		let localctx: Outer_join_typeContext = new Outer_join_typeContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1080, PlSqlParser.RULE_outer_join_type);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 9146;
			_la = this._input.LA(1);
			if(!(_la===556 || _la===740 || _la===1437)) {
			this._errHandler.recoverInline(this);
			}
			else {
				this._errHandler.reportMatch(this);
			    this.consume();
			}
			this.state = 9148;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1178) {
				{
				this.state = 9147;
				this.match(PlSqlParser.OUTER);
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public query_partition_clause(): Query_partition_clauseContext {
		let localctx: Query_partition_clauseContext = new Query_partition_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1082, PlSqlParser.RULE_query_partition_clause);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 9150;
			this.match(PlSqlParser.PARTITION);
			this.state = 9151;
			this.match(PlSqlParser.BY);
			this.state = 9159;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1211, this._ctx) ) {
			case 1:
				{
				{
				this.state = 9152;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 9155;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 1210, this._ctx) ) {
				case 1:
					{
					this.state = 9153;
					this.subquery();
					}
					break;
				case 2:
					{
					this.state = 9154;
					this.expressions();
					}
					break;
				}
				this.state = 9157;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
				}
				break;
			case 2:
				{
				this.state = 9158;
				this.expressions();
				}
				break;
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public flashback_query_clause(): Flashback_query_clauseContext {
		let localctx: Flashback_query_clauseContext = new Flashback_query_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1084, PlSqlParser.RULE_flashback_query_clause);
		let _la: number;
		try {
			this.state = 9169;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 2096:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 9161;
				this.match(PlSqlParser.VERSIONS);
				this.state = 9162;
				this.match(PlSqlParser.BETWEEN);
				this.state = 9163;
				_la = this._input.LA(1);
				if(!(_la===1472 || _la===1933)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				this.state = 9164;
				this.expression();
				}
				break;
			case 61:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 9165;
				this.match(PlSqlParser.AS);
				this.state = 9166;
				this.match(PlSqlParser.OF);
				this.state = 9167;
				_la = this._input.LA(1);
				if(!(_la===1472 || _la===1542 || _la===1933)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				this.state = 9168;
				this.expression();
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public pivot_clause(): Pivot_clauseContext {
		let localctx: Pivot_clauseContext = new Pivot_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1086, PlSqlParser.RULE_pivot_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 9171;
			this.match(PlSqlParser.PIVOT);
			this.state = 9173;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===2163) {
				{
				this.state = 9172;
				this.match(PlSqlParser.XML);
				}
			}

			this.state = 9175;
			this.match(PlSqlParser.LEFT_PAREN);
			this.state = 9176;
			this.pivot_element();
			this.state = 9181;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			while (_la===2229) {
				{
				{
				this.state = 9177;
				this.match(PlSqlParser.COMMA);
				this.state = 9178;
				this.pivot_element();
				}
				}
				this.state = 9183;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			}
			this.state = 9184;
			this.pivot_for_clause();
			this.state = 9185;
			this.pivot_in_clause();
			this.state = 9186;
			this.match(PlSqlParser.RIGHT_PAREN);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public pivot_element(): Pivot_elementContext {
		let localctx: Pivot_elementContext = new Pivot_elementContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1088, PlSqlParser.RULE_pivot_element);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 9188;
			this.aggregate_function_name();
			this.state = 9189;
			this.match(PlSqlParser.LEFT_PAREN);
			this.state = 9190;
			this.expression();
			this.state = 9191;
			this.match(PlSqlParser.RIGHT_PAREN);
			this.state = 9193;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & 3221157751) !== 0) || ((((_la - 64)) & ~0x1F) === 0 && ((1 << (_la - 64)) & 3220168703) !== 0) || ((((_la - 96)) & ~0x1F) === 0 && ((1 << (_la - 96)) & 4294965247) !== 0) || ((((_la - 128)) & ~0x1F) === 0 && ((1 << (_la - 128)) & 2147221503) !== 0) || ((((_la - 160)) & ~0x1F) === 0 && ((1 << (_la - 160)) & 4293910527) !== 0) || ((((_la - 192)) & ~0x1F) === 0 && ((1 << (_la - 192)) & 4294967295) !== 0) || ((((_la - 224)) & ~0x1F) === 0 && ((1 << (_la - 224)) & 4160749311) !== 0) || ((((_la - 256)) & ~0x1F) === 0 && ((1 << (_la - 256)) & 4294967295) !== 0) || ((((_la - 289)) & ~0x1F) === 0 && ((1 << (_la - 289)) & 2147483647) !== 0) || ((((_la - 321)) & ~0x1F) === 0 && ((1 << (_la - 321)) & 3221225407) !== 0) || ((((_la - 353)) & ~0x1F) === 0 && ((1 << (_la - 353)) & 4294705151) !== 0) || ((((_la - 385)) & ~0x1F) === 0 && ((1 << (_la - 385)) & 2080372479) !== 0) || ((((_la - 417)) & ~0x1F) === 0 && ((1 << (_la - 417)) & 4026433535) !== 0) || ((((_la - 449)) & ~0x1F) === 0 && ((1 << (_la - 449)) & 4261412863) !== 0) || ((((_la - 481)) & ~0x1F) === 0 && ((1 << (_la - 481)) & 4294967295) !== 0) || ((((_la - 513)) & ~0x1F) === 0 && ((1 << (_la - 513)) & 4294967295) !== 0) || ((((_la - 545)) & ~0x1F) === 0 && ((1 << (_la - 545)) & 3925868029) !== 0) || ((((_la - 577)) & ~0x1F) === 0 && ((1 << (_la - 577)) & 4278189823) !== 0) || ((((_la - 609)) & ~0x1F) === 0 && ((1 << (_la - 609)) & 4290772991) !== 0) || ((((_la - 641)) & ~0x1F) === 0 && ((1 << (_la - 641)) & 4026529791) !== 0) || ((((_la - 673)) & ~0x1F) === 0 && ((1 << (_la - 673)) & 4290478079) !== 0) || ((((_la - 705)) & ~0x1F) === 0 && ((1 << (_la - 705)) & 4294967295) !== 0) || ((((_la - 737)) & ~0x1F) === 0 && ((1 << (_la - 737)) & 4293918719) !== 0) || ((((_la - 769)) & ~0x1F) === 0 && ((1 << (_la - 769)) & 4294967167) !== 0) || ((((_la - 801)) & ~0x1F) === 0 && ((1 << (_la - 801)) & 4294967295) !== 0) || ((((_la - 833)) & ~0x1F) === 0 && ((1 << (_la - 833)) & 4160749055) !== 0) || ((((_la - 865)) & ~0x1F) === 0 && ((1 << (_la - 865)) & 4290772991) !== 0) || ((((_la - 897)) & ~0x1F) === 0 && ((1 << (_la - 897)) & 4294967295) !== 0) || ((((_la - 929)) & ~0x1F) === 0 && ((1 << (_la - 929)) & 4278190079) !== 0) || ((((_la - 961)) & ~0x1F) === 0 && ((1 << (_la - 961)) & 4294967295) !== 0) || ((((_la - 993)) & ~0x1F) === 0 && ((1 << (_la - 993)) & 4294967295) !== 0) || ((((_la - 1025)) & ~0x1F) === 0 && ((1 << (_la - 1025)) & 4294967295) !== 0) || ((((_la - 1057)) & ~0x1F) === 0 && ((1 << (_la - 1057)) & 2147418111) !== 0) || ((((_la - 1089)) & ~0x1F) === 0 && ((1 << (_la - 1089)) & 4227858175) !== 0) || ((((_la - 1121)) & ~0x1F) === 0 && ((1 << (_la - 1121)) & 4293918559) !== 0) || ((((_la - 1153)) & ~0x1F) === 0 && ((1 << (_la - 1153)) & 4294410239) !== 0) || ((((_la - 1185)) & ~0x1F) === 0 && ((1 << (_la - 1185)) & 4294965247) !== 0) || ((((_la - 1217)) & ~0x1F) === 0 && ((1 << (_la - 1217)) & 4279827455) !== 0) || ((((_la - 1249)) & ~0x1F) === 0 && ((1 << (_la - 1249)) & 4294967291) !== 0) || ((((_la - 1281)) & ~0x1F) === 0 && ((1 << (_la - 1281)) & 4227858431) !== 0) || ((((_la - 1313)) & ~0x1F) === 0 && ((1 << (_la - 1313)) & 4294965247) !== 0) || ((((_la - 1345)) & ~0x1F) === 0 && ((1 << (_la - 1345)) & 4294967295) !== 0) || ((((_la - 1377)) & ~0x1F) === 0 && ((1 << (_la - 1377)) & 4292870143) !== 0) || ((((_la - 1409)) & ~0x1F) === 0 && ((1 << (_la - 1409)) & 4261412799) !== 0) || ((((_la - 1441)) & ~0x1F) === 0 && ((1 << (_la - 1441)) & 4294967295) !== 0) || ((((_la - 1473)) & ~0x1F) === 0 && ((1 << (_la - 1473)) & 4261281791) !== 0) || ((((_la - 1505)) & ~0x1F) === 0 && ((1 << (_la - 1505)) & 3221221375) !== 0) || ((((_la - 1537)) & ~0x1F) === 0 && ((1 << (_la - 1537)) & 4294967295) !== 0) || ((((_la - 1570)) & ~0x1F) === 0 && ((1 << (_la - 1570)) & 4294967295) !== 0) || ((((_la - 1602)) & ~0x1F) === 0 && ((1 << (_la - 1602)) & 4261412863) !== 0) || ((((_la - 1634)) & ~0x1F) === 0 && ((1 << (_la - 1634)) & 4294967295) !== 0) || ((((_la - 1666)) & ~0x1F) === 0 && ((1 << (_la - 1666)) & 4294967295) !== 0) || ((((_la - 1698)) & ~0x1F) === 0 && ((1 << (_la - 1698)) & 4294967295) !== 0) || ((((_la - 1730)) & ~0x1F) === 0 && ((1 << (_la - 1730)) & 4294967295) !== 0) || ((((_la - 1762)) & ~0x1F) === 0 && ((1 << (_la - 1762)) & 4294967295) !== 0) || ((((_la - 1794)) & ~0x1F) === 0 && ((1 << (_la - 1794)) & 4294967295) !== 0) || ((((_la - 1826)) & ~0x1F) === 0 && ((1 << (_la - 1826)) & 4294967295) !== 0) || ((((_la - 1858)) & ~0x1F) === 0 && ((1 << (_la - 1858)) & 4294967295) !== 0) || ((((_la - 1890)) & ~0x1F) === 0 && ((1 << (_la - 1890)) & 4294967295) !== 0) || ((((_la - 1922)) & ~0x1F) === 0 && ((1 << (_la - 1922)) & 4294901759) !== 0) || ((((_la - 1954)) & ~0x1F) === 0 && ((1 << (_la - 1954)) & 4294966271) !== 0) || ((((_la - 1986)) & ~0x1F) === 0 && ((1 << (_la - 1986)) & 4294868991) !== 0) || ((((_la - 2018)) & ~0x1F) === 0 && ((1 << (_la - 2018)) & 4294967167) !== 0) || ((((_la - 2050)) & ~0x1F) === 0 && ((1 << (_la - 2050)) & 4286578687) !== 0) || ((((_la - 2082)) & ~0x1F) === 0 && ((1 << (_la - 2082)) & 4294836223) !== 0) || ((((_la - 2115)) & ~0x1F) === 0 && ((1 << (_la - 2115)) & 3758092223) !== 0) || ((((_la - 2147)) & ~0x1F) === 0 && ((1 << (_la - 2147)) & 4293918719) !== 0) || ((((_la - 2179)) & ~0x1F) === 0 && ((1 << (_la - 2179)) & 4294965247) !== 0) || ((((_la - 2211)) & ~0x1F) === 0 && ((1 << (_la - 2211)) & 803) !== 0) || _la===2246 || _la===2252) {
				{
				this.state = 9192;
				this.column_alias();
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public pivot_for_clause(): Pivot_for_clauseContext {
		let localctx: Pivot_for_clauseContext = new Pivot_for_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1090, PlSqlParser.RULE_pivot_for_clause);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 9195;
			this.match(PlSqlParser.FOR);
			this.state = 9198;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 1:
			case 2:
			case 3:
			case 4:
			case 5:
			case 6:
			case 7:
			case 8:
			case 9:
			case 10:
			case 11:
			case 12:
			case 13:
			case 14:
			case 15:
			case 16:
			case 17:
			case 18:
			case 19:
			case 20:
			case 21:
			case 22:
			case 23:
			case 24:
			case 25:
			case 26:
			case 27:
			case 28:
			case 29:
			case 30:
			case 31:
			case 32:
			case 33:
			case 34:
			case 36:
			case 37:
			case 38:
			case 40:
			case 41:
			case 42:
			case 44:
			case 45:
			case 46:
			case 47:
			case 49:
			case 50:
			case 51:
			case 52:
			case 53:
			case 54:
			case 55:
			case 56:
			case 57:
			case 58:
			case 59:
			case 60:
			case 63:
			case 64:
			case 65:
			case 66:
			case 67:
			case 68:
			case 69:
			case 70:
			case 71:
			case 72:
			case 73:
			case 74:
			case 75:
			case 76:
			case 78:
			case 79:
			case 80:
			case 81:
			case 82:
			case 83:
			case 85:
			case 86:
			case 87:
			case 88:
			case 89:
			case 90:
			case 91:
			case 92:
			case 93:
			case 95:
			case 96:
			case 97:
			case 98:
			case 99:
			case 100:
			case 101:
			case 102:
			case 103:
			case 104:
			case 105:
			case 106:
			case 108:
			case 109:
			case 110:
			case 111:
			case 112:
			case 113:
			case 114:
			case 115:
			case 116:
			case 117:
			case 118:
			case 119:
			case 120:
			case 121:
			case 122:
			case 123:
			case 124:
			case 125:
			case 126:
			case 127:
			case 128:
			case 129:
			case 130:
			case 131:
			case 132:
			case 133:
			case 134:
			case 135:
			case 136:
			case 137:
			case 138:
			case 139:
			case 140:
			case 141:
			case 142:
			case 143:
			case 144:
			case 145:
			case 147:
			case 148:
			case 149:
			case 150:
			case 151:
			case 152:
			case 153:
			case 154:
			case 155:
			case 156:
			case 157:
			case 158:
			case 160:
			case 161:
			case 162:
			case 163:
			case 164:
			case 165:
			case 166:
			case 167:
			case 168:
			case 169:
			case 170:
			case 171:
			case 172:
			case 174:
			case 175:
			case 176:
			case 177:
			case 178:
			case 179:
			case 181:
			case 182:
			case 183:
			case 184:
			case 185:
			case 186:
			case 187:
			case 188:
			case 189:
			case 190:
			case 191:
			case 192:
			case 193:
			case 194:
			case 195:
			case 196:
			case 197:
			case 198:
			case 199:
			case 200:
			case 201:
			case 202:
			case 203:
			case 204:
			case 205:
			case 206:
			case 207:
			case 208:
			case 209:
			case 210:
			case 211:
			case 212:
			case 213:
			case 214:
			case 215:
			case 216:
			case 217:
			case 218:
			case 219:
			case 220:
			case 221:
			case 222:
			case 223:
			case 224:
			case 225:
			case 226:
			case 227:
			case 228:
			case 229:
			case 230:
			case 231:
			case 233:
			case 234:
			case 235:
			case 236:
			case 237:
			case 238:
			case 239:
			case 240:
			case 241:
			case 242:
			case 243:
			case 244:
			case 245:
			case 246:
			case 247:
			case 248:
			case 249:
			case 250:
			case 252:
			case 253:
			case 254:
			case 255:
			case 256:
			case 257:
			case 258:
			case 259:
			case 260:
			case 261:
			case 262:
			case 263:
			case 264:
			case 265:
			case 266:
			case 267:
			case 268:
			case 269:
			case 270:
			case 271:
			case 272:
			case 273:
			case 274:
			case 275:
			case 276:
			case 277:
			case 278:
			case 279:
			case 280:
			case 281:
			case 282:
			case 283:
			case 284:
			case 285:
			case 286:
			case 287:
			case 289:
			case 290:
			case 291:
			case 292:
			case 293:
			case 294:
			case 295:
			case 296:
			case 297:
			case 298:
			case 299:
			case 300:
			case 301:
			case 302:
			case 303:
			case 304:
			case 305:
			case 306:
			case 307:
			case 308:
			case 309:
			case 310:
			case 311:
			case 312:
			case 313:
			case 314:
			case 315:
			case 316:
			case 317:
			case 318:
			case 319:
			case 321:
			case 322:
			case 323:
			case 324:
			case 325:
			case 326:
			case 328:
			case 329:
			case 330:
			case 331:
			case 332:
			case 333:
			case 334:
			case 335:
			case 336:
			case 337:
			case 338:
			case 339:
			case 340:
			case 341:
			case 342:
			case 343:
			case 344:
			case 345:
			case 346:
			case 347:
			case 348:
			case 349:
			case 350:
			case 352:
			case 353:
			case 354:
			case 355:
			case 356:
			case 357:
			case 358:
			case 359:
			case 360:
			case 361:
			case 362:
			case 363:
			case 364:
			case 365:
			case 366:
			case 367:
			case 368:
			case 369:
			case 370:
			case 372:
			case 373:
			case 374:
			case 375:
			case 376:
			case 377:
			case 378:
			case 379:
			case 380:
			case 381:
			case 382:
			case 383:
			case 384:
			case 385:
			case 386:
			case 387:
			case 388:
			case 389:
			case 390:
			case 391:
			case 392:
			case 394:
			case 395:
			case 397:
			case 398:
			case 399:
			case 400:
			case 401:
			case 402:
			case 403:
			case 404:
			case 405:
			case 406:
			case 407:
			case 408:
			case 409:
			case 410:
			case 412:
			case 413:
			case 414:
			case 415:
			case 417:
			case 418:
			case 419:
			case 420:
			case 421:
			case 422:
			case 423:
			case 424:
			case 425:
			case 426:
			case 427:
			case 428:
			case 429:
			case 430:
			case 431:
			case 434:
			case 435:
			case 436:
			case 437:
			case 438:
			case 439:
			case 440:
			case 441:
			case 442:
			case 443:
			case 444:
			case 446:
			case 447:
			case 448:
			case 449:
			case 450:
			case 451:
			case 452:
			case 453:
			case 454:
			case 455:
			case 456:
			case 457:
			case 458:
			case 459:
			case 460:
			case 461:
			case 462:
			case 463:
			case 464:
			case 465:
			case 466:
			case 467:
			case 468:
			case 469:
			case 470:
			case 471:
			case 472:
			case 473:
			case 475:
			case 476:
			case 477:
			case 478:
			case 479:
			case 480:
			case 481:
			case 482:
			case 483:
			case 484:
			case 485:
			case 486:
			case 487:
			case 488:
			case 489:
			case 490:
			case 491:
			case 492:
			case 493:
			case 494:
			case 495:
			case 496:
			case 497:
			case 498:
			case 499:
			case 500:
			case 501:
			case 502:
			case 503:
			case 504:
			case 505:
			case 506:
			case 507:
			case 508:
			case 509:
			case 510:
			case 511:
			case 512:
			case 513:
			case 514:
			case 515:
			case 516:
			case 517:
			case 518:
			case 519:
			case 520:
			case 521:
			case 522:
			case 523:
			case 524:
			case 525:
			case 526:
			case 527:
			case 528:
			case 529:
			case 530:
			case 531:
			case 532:
			case 533:
			case 534:
			case 535:
			case 536:
			case 537:
			case 538:
			case 539:
			case 540:
			case 541:
			case 542:
			case 543:
			case 544:
			case 545:
			case 547:
			case 548:
			case 549:
			case 550:
			case 551:
			case 552:
			case 553:
			case 555:
			case 556:
			case 557:
			case 558:
			case 559:
			case 560:
			case 561:
			case 562:
			case 563:
			case 564:
			case 565:
			case 566:
			case 567:
			case 568:
			case 569:
			case 572:
			case 574:
			case 575:
			case 576:
			case 577:
			case 578:
			case 579:
			case 580:
			case 581:
			case 582:
			case 583:
			case 584:
			case 586:
			case 587:
			case 588:
			case 589:
			case 590:
			case 591:
			case 592:
			case 593:
			case 594:
			case 595:
			case 596:
			case 597:
			case 598:
			case 599:
			case 600:
			case 602:
			case 603:
			case 604:
			case 605:
			case 606:
			case 607:
			case 608:
			case 609:
			case 610:
			case 611:
			case 612:
			case 613:
			case 614:
			case 615:
			case 616:
			case 617:
			case 618:
			case 619:
			case 620:
			case 621:
			case 622:
			case 623:
			case 624:
			case 625:
			case 626:
			case 627:
			case 628:
			case 629:
			case 630:
			case 632:
			case 633:
			case 634:
			case 635:
			case 636:
			case 637:
			case 638:
			case 639:
			case 640:
			case 641:
			case 642:
			case 643:
			case 644:
			case 645:
			case 646:
			case 647:
			case 648:
			case 649:
			case 650:
			case 651:
			case 653:
			case 654:
			case 655:
			case 656:
			case 657:
			case 658:
			case 659:
			case 660:
			case 661:
			case 662:
			case 663:
			case 664:
			case 665:
			case 666:
			case 667:
			case 668:
			case 670:
			case 671:
			case 672:
			case 673:
			case 674:
			case 675:
			case 676:
			case 677:
			case 678:
			case 679:
			case 680:
			case 681:
			case 682:
			case 683:
			case 684:
			case 685:
			case 686:
			case 687:
			case 689:
			case 690:
			case 692:
			case 693:
			case 694:
			case 696:
			case 697:
			case 698:
			case 699:
			case 700:
			case 701:
			case 702:
			case 703:
			case 704:
			case 705:
			case 706:
			case 707:
			case 708:
			case 709:
			case 710:
			case 711:
			case 712:
			case 713:
			case 714:
			case 715:
			case 716:
			case 717:
			case 718:
			case 719:
			case 720:
			case 721:
			case 722:
			case 723:
			case 724:
			case 725:
			case 726:
			case 727:
			case 728:
			case 729:
			case 730:
			case 731:
			case 732:
			case 733:
			case 734:
			case 735:
			case 736:
			case 737:
			case 738:
			case 739:
			case 740:
			case 741:
			case 742:
			case 743:
			case 744:
			case 745:
			case 746:
			case 747:
			case 748:
			case 749:
			case 750:
			case 751:
			case 752:
			case 753:
			case 754:
			case 755:
			case 756:
			case 758:
			case 759:
			case 760:
			case 761:
			case 762:
			case 763:
			case 764:
			case 765:
			case 766:
			case 767:
			case 768:
			case 769:
			case 770:
			case 771:
			case 772:
			case 773:
			case 774:
			case 775:
			case 777:
			case 778:
			case 779:
			case 780:
			case 781:
			case 782:
			case 783:
			case 784:
			case 785:
			case 786:
			case 787:
			case 788:
			case 789:
			case 790:
			case 791:
			case 792:
			case 793:
			case 794:
			case 795:
			case 796:
			case 797:
			case 798:
			case 799:
			case 800:
			case 801:
			case 802:
			case 803:
			case 804:
			case 805:
			case 806:
			case 807:
			case 808:
			case 809:
			case 810:
			case 811:
			case 812:
			case 813:
			case 814:
			case 815:
			case 816:
			case 817:
			case 818:
			case 819:
			case 820:
			case 821:
			case 822:
			case 823:
			case 824:
			case 825:
			case 826:
			case 827:
			case 828:
			case 829:
			case 830:
			case 831:
			case 832:
			case 833:
			case 834:
			case 835:
			case 836:
			case 837:
			case 838:
			case 839:
			case 840:
			case 841:
			case 843:
			case 844:
			case 845:
			case 846:
			case 847:
			case 848:
			case 849:
			case 850:
			case 851:
			case 852:
			case 853:
			case 854:
			case 855:
			case 856:
			case 857:
			case 858:
			case 859:
			case 861:
			case 862:
			case 863:
			case 864:
			case 865:
			case 866:
			case 867:
			case 868:
			case 869:
			case 870:
			case 871:
			case 872:
			case 873:
			case 874:
			case 875:
			case 876:
			case 877:
			case 878:
			case 879:
			case 880:
			case 881:
			case 882:
			case 883:
			case 884:
			case 885:
			case 886:
			case 888:
			case 889:
			case 890:
			case 891:
			case 892:
			case 893:
			case 894:
			case 895:
			case 896:
			case 897:
			case 898:
			case 899:
			case 900:
			case 901:
			case 902:
			case 903:
			case 904:
			case 905:
			case 906:
			case 907:
			case 908:
			case 909:
			case 910:
			case 911:
			case 912:
			case 913:
			case 914:
			case 915:
			case 916:
			case 917:
			case 918:
			case 919:
			case 920:
			case 921:
			case 922:
			case 923:
			case 924:
			case 925:
			case 926:
			case 927:
			case 928:
			case 929:
			case 930:
			case 931:
			case 932:
			case 933:
			case 934:
			case 935:
			case 936:
			case 937:
			case 938:
			case 939:
			case 940:
			case 941:
			case 942:
			case 943:
			case 944:
			case 945:
			case 946:
			case 947:
			case 948:
			case 949:
			case 950:
			case 951:
			case 952:
			case 954:
			case 955:
			case 956:
			case 957:
			case 958:
			case 959:
			case 960:
			case 961:
			case 962:
			case 963:
			case 964:
			case 965:
			case 966:
			case 967:
			case 968:
			case 969:
			case 970:
			case 971:
			case 972:
			case 973:
			case 974:
			case 975:
			case 976:
			case 977:
			case 978:
			case 979:
			case 980:
			case 981:
			case 982:
			case 983:
			case 984:
			case 985:
			case 986:
			case 987:
			case 988:
			case 989:
			case 990:
			case 991:
			case 992:
			case 993:
			case 994:
			case 995:
			case 996:
			case 997:
			case 998:
			case 999:
			case 1000:
			case 1001:
			case 1002:
			case 1003:
			case 1004:
			case 1005:
			case 1006:
			case 1007:
			case 1008:
			case 1009:
			case 1010:
			case 1011:
			case 1012:
			case 1013:
			case 1014:
			case 1015:
			case 1016:
			case 1017:
			case 1018:
			case 1019:
			case 1020:
			case 1021:
			case 1022:
			case 1023:
			case 1024:
			case 1025:
			case 1026:
			case 1027:
			case 1028:
			case 1029:
			case 1030:
			case 1031:
			case 1032:
			case 1033:
			case 1034:
			case 1035:
			case 1036:
			case 1037:
			case 1038:
			case 1039:
			case 1040:
			case 1041:
			case 1042:
			case 1043:
			case 1044:
			case 1045:
			case 1046:
			case 1047:
			case 1048:
			case 1049:
			case 1050:
			case 1051:
			case 1052:
			case 1053:
			case 1054:
			case 1055:
			case 1056:
			case 1057:
			case 1058:
			case 1059:
			case 1060:
			case 1061:
			case 1062:
			case 1063:
			case 1064:
			case 1065:
			case 1066:
			case 1067:
			case 1068:
			case 1069:
			case 1070:
			case 1071:
			case 1072:
			case 1074:
			case 1075:
			case 1076:
			case 1077:
			case 1078:
			case 1079:
			case 1080:
			case 1081:
			case 1082:
			case 1083:
			case 1084:
			case 1085:
			case 1086:
			case 1087:
			case 1089:
			case 1090:
			case 1091:
			case 1092:
			case 1093:
			case 1094:
			case 1095:
			case 1096:
			case 1098:
			case 1099:
			case 1100:
			case 1101:
			case 1102:
			case 1103:
			case 1104:
			case 1105:
			case 1106:
			case 1107:
			case 1108:
			case 1109:
			case 1110:
			case 1111:
			case 1112:
			case 1113:
			case 1114:
			case 1116:
			case 1117:
			case 1118:
			case 1119:
			case 1120:
			case 1121:
			case 1122:
			case 1123:
			case 1124:
			case 1125:
			case 1127:
			case 1129:
			case 1130:
			case 1131:
			case 1132:
			case 1133:
			case 1134:
			case 1135:
			case 1136:
			case 1137:
			case 1138:
			case 1139:
			case 1140:
			case 1142:
			case 1143:
			case 1144:
			case 1145:
			case 1146:
			case 1147:
			case 1148:
			case 1149:
			case 1150:
			case 1151:
			case 1152:
			case 1153:
			case 1154:
			case 1155:
			case 1156:
			case 1157:
			case 1158:
			case 1159:
			case 1160:
			case 1161:
			case 1162:
			case 1163:
			case 1164:
			case 1165:
			case 1166:
			case 1167:
			case 1169:
			case 1170:
			case 1171:
			case 1173:
			case 1174:
			case 1175:
			case 1176:
			case 1177:
			case 1178:
			case 1179:
			case 1180:
			case 1181:
			case 1182:
			case 1183:
			case 1184:
			case 1185:
			case 1186:
			case 1187:
			case 1188:
			case 1189:
			case 1190:
			case 1191:
			case 1192:
			case 1193:
			case 1194:
			case 1195:
			case 1197:
			case 1198:
			case 1199:
			case 1200:
			case 1201:
			case 1202:
			case 1203:
			case 1204:
			case 1205:
			case 1206:
			case 1207:
			case 1208:
			case 1209:
			case 1210:
			case 1211:
			case 1212:
			case 1213:
			case 1214:
			case 1215:
			case 1216:
			case 1217:
			case 1218:
			case 1219:
			case 1220:
			case 1221:
			case 1222:
			case 1223:
			case 1224:
			case 1225:
			case 1226:
			case 1228:
			case 1229:
			case 1230:
			case 1231:
			case 1232:
			case 1236:
			case 1237:
			case 1241:
			case 1242:
			case 1243:
			case 1244:
			case 1245:
			case 1246:
			case 1247:
			case 1248:
			case 1249:
			case 1250:
			case 1252:
			case 1253:
			case 1254:
			case 1255:
			case 1256:
			case 1257:
			case 1258:
			case 1259:
			case 1260:
			case 1261:
			case 1262:
			case 1263:
			case 1264:
			case 1265:
			case 1266:
			case 1267:
			case 1268:
			case 1269:
			case 1270:
			case 1271:
			case 1272:
			case 1273:
			case 1274:
			case 1275:
			case 1276:
			case 1277:
			case 1278:
			case 1279:
			case 1280:
			case 1281:
			case 1282:
			case 1283:
			case 1284:
			case 1285:
			case 1286:
			case 1287:
			case 1288:
			case 1289:
			case 1290:
			case 1291:
			case 1292:
			case 1293:
			case 1294:
			case 1295:
			case 1296:
			case 1297:
			case 1298:
			case 1299:
			case 1300:
			case 1301:
			case 1302:
			case 1303:
			case 1304:
			case 1305:
			case 1306:
			case 1308:
			case 1309:
			case 1310:
			case 1311:
			case 1312:
			case 1313:
			case 1314:
			case 1315:
			case 1316:
			case 1317:
			case 1318:
			case 1319:
			case 1320:
			case 1321:
			case 1322:
			case 1323:
			case 1325:
			case 1326:
			case 1327:
			case 1328:
			case 1329:
			case 1330:
			case 1331:
			case 1332:
			case 1333:
			case 1334:
			case 1335:
			case 1336:
			case 1337:
			case 1338:
			case 1339:
			case 1340:
			case 1341:
			case 1342:
			case 1343:
			case 1344:
			case 1345:
			case 1346:
			case 1347:
			case 1348:
			case 1349:
			case 1350:
			case 1351:
			case 1352:
			case 1353:
			case 1354:
			case 1355:
			case 1356:
			case 1357:
			case 1358:
			case 1359:
			case 1360:
			case 1361:
			case 1362:
			case 1363:
			case 1364:
			case 1365:
			case 1366:
			case 1367:
			case 1368:
			case 1369:
			case 1370:
			case 1371:
			case 1372:
			case 1373:
			case 1374:
			case 1375:
			case 1376:
			case 1377:
			case 1378:
			case 1379:
			case 1380:
			case 1381:
			case 1382:
			case 1383:
			case 1384:
			case 1385:
			case 1386:
			case 1387:
			case 1388:
			case 1389:
			case 1390:
			case 1391:
			case 1392:
			case 1393:
			case 1394:
			case 1395:
			case 1396:
			case 1397:
			case 1399:
			case 1400:
			case 1401:
			case 1402:
			case 1403:
			case 1404:
			case 1405:
			case 1406:
			case 1407:
			case 1408:
			case 1409:
			case 1410:
			case 1411:
			case 1412:
			case 1413:
			case 1414:
			case 1416:
			case 1417:
			case 1418:
			case 1419:
			case 1420:
			case 1421:
			case 1422:
			case 1423:
			case 1424:
			case 1425:
			case 1426:
			case 1427:
			case 1428:
			case 1429:
			case 1430:
			case 1431:
			case 1432:
			case 1433:
			case 1435:
			case 1436:
			case 1437:
			case 1438:
			case 1439:
			case 1440:
			case 1441:
			case 1442:
			case 1443:
			case 1444:
			case 1445:
			case 1446:
			case 1447:
			case 1448:
			case 1449:
			case 1450:
			case 1451:
			case 1452:
			case 1453:
			case 1454:
			case 1455:
			case 1456:
			case 1457:
			case 1458:
			case 1459:
			case 1460:
			case 1461:
			case 1462:
			case 1463:
			case 1464:
			case 1465:
			case 1466:
			case 1467:
			case 1468:
			case 1469:
			case 1470:
			case 1471:
			case 1472:
			case 1473:
			case 1474:
			case 1475:
			case 1476:
			case 1477:
			case 1478:
			case 1479:
			case 1480:
			case 1481:
			case 1482:
			case 1483:
			case 1484:
			case 1485:
			case 1486:
			case 1487:
			case 1488:
			case 1489:
			case 1491:
			case 1492:
			case 1493:
			case 1494:
			case 1495:
			case 1496:
			case 1497:
			case 1499:
			case 1500:
			case 1501:
			case 1502:
			case 1503:
			case 1504:
			case 1505:
			case 1506:
			case 1507:
			case 1508:
			case 1509:
			case 1510:
			case 1511:
			case 1512:
			case 1513:
			case 1514:
			case 1515:
			case 1516:
			case 1518:
			case 1519:
			case 1520:
			case 1521:
			case 1522:
			case 1523:
			case 1524:
			case 1525:
			case 1526:
			case 1527:
			case 1528:
			case 1529:
			case 1530:
			case 1531:
			case 1532:
			case 1533:
			case 1534:
			case 1536:
			case 1537:
			case 1538:
			case 1539:
			case 1540:
			case 1541:
			case 1542:
			case 1543:
			case 1544:
			case 1545:
			case 1546:
			case 1547:
			case 1548:
			case 1549:
			case 1550:
			case 1551:
			case 1552:
			case 1553:
			case 1554:
			case 1555:
			case 1556:
			case 1557:
			case 1558:
			case 1559:
			case 1560:
			case 1561:
			case 1562:
			case 1563:
			case 1564:
			case 1565:
			case 1566:
			case 1567:
			case 1568:
			case 1570:
			case 1571:
			case 1572:
			case 1573:
			case 1574:
			case 1575:
			case 1576:
			case 1577:
			case 1578:
			case 1579:
			case 1580:
			case 1581:
			case 1582:
			case 1583:
			case 1584:
			case 1585:
			case 1586:
			case 1587:
			case 1588:
			case 1589:
			case 1590:
			case 1591:
			case 1592:
			case 1593:
			case 1594:
			case 1595:
			case 1596:
			case 1597:
			case 1598:
			case 1599:
			case 1600:
			case 1601:
			case 1602:
			case 1603:
			case 1604:
			case 1605:
			case 1606:
			case 1607:
			case 1608:
			case 1609:
			case 1610:
			case 1611:
			case 1612:
			case 1613:
			case 1614:
			case 1615:
			case 1616:
			case 1617:
			case 1618:
			case 1619:
			case 1620:
			case 1621:
			case 1622:
			case 1623:
			case 1624:
			case 1625:
			case 1626:
			case 1628:
			case 1629:
			case 1630:
			case 1631:
			case 1632:
			case 1633:
			case 1634:
			case 1635:
			case 1636:
			case 1637:
			case 1638:
			case 1639:
			case 1640:
			case 1641:
			case 1642:
			case 1643:
			case 1644:
			case 1645:
			case 1646:
			case 1647:
			case 1648:
			case 1649:
			case 1650:
			case 1651:
			case 1652:
			case 1653:
			case 1654:
			case 1655:
			case 1656:
			case 1657:
			case 1658:
			case 1659:
			case 1660:
			case 1661:
			case 1662:
			case 1663:
			case 1664:
			case 1665:
			case 1666:
			case 1667:
			case 1668:
			case 1669:
			case 1670:
			case 1671:
			case 1672:
			case 1673:
			case 1674:
			case 1675:
			case 1676:
			case 1677:
			case 1678:
			case 1679:
			case 1680:
			case 1681:
			case 1682:
			case 1683:
			case 1684:
			case 1685:
			case 1686:
			case 1687:
			case 1688:
			case 1689:
			case 1690:
			case 1691:
			case 1692:
			case 1693:
			case 1694:
			case 1695:
			case 1696:
			case 1697:
			case 1698:
			case 1699:
			case 1700:
			case 1701:
			case 1702:
			case 1703:
			case 1704:
			case 1705:
			case 1706:
			case 1707:
			case 1708:
			case 1709:
			case 1710:
			case 1711:
			case 1712:
			case 1713:
			case 1714:
			case 1715:
			case 1716:
			case 1717:
			case 1718:
			case 1719:
			case 1720:
			case 1721:
			case 1722:
			case 1723:
			case 1724:
			case 1725:
			case 1726:
			case 1727:
			case 1728:
			case 1729:
			case 1730:
			case 1731:
			case 1732:
			case 1733:
			case 1734:
			case 1735:
			case 1736:
			case 1737:
			case 1738:
			case 1739:
			case 1740:
			case 1741:
			case 1742:
			case 1743:
			case 1744:
			case 1745:
			case 1746:
			case 1747:
			case 1748:
			case 1749:
			case 1750:
			case 1751:
			case 1752:
			case 1753:
			case 1754:
			case 1755:
			case 1756:
			case 1757:
			case 1758:
			case 1759:
			case 1760:
			case 1761:
			case 1762:
			case 1763:
			case 1764:
			case 1765:
			case 1766:
			case 1767:
			case 1768:
			case 1769:
			case 1770:
			case 1771:
			case 1772:
			case 1773:
			case 1774:
			case 1775:
			case 1776:
			case 1777:
			case 1778:
			case 1779:
			case 1780:
			case 1781:
			case 1782:
			case 1783:
			case 1784:
			case 1785:
			case 1786:
			case 1787:
			case 1788:
			case 1789:
			case 1790:
			case 1791:
			case 1792:
			case 1793:
			case 1794:
			case 1795:
			case 1796:
			case 1797:
			case 1798:
			case 1799:
			case 1800:
			case 1801:
			case 1802:
			case 1803:
			case 1804:
			case 1805:
			case 1806:
			case 1807:
			case 1808:
			case 1809:
			case 1810:
			case 1811:
			case 1812:
			case 1813:
			case 1814:
			case 1815:
			case 1816:
			case 1817:
			case 1818:
			case 1819:
			case 1820:
			case 1821:
			case 1822:
			case 1823:
			case 1824:
			case 1825:
			case 1826:
			case 1827:
			case 1828:
			case 1829:
			case 1830:
			case 1831:
			case 1832:
			case 1833:
			case 1834:
			case 1835:
			case 1836:
			case 1837:
			case 1838:
			case 1839:
			case 1840:
			case 1841:
			case 1842:
			case 1843:
			case 1844:
			case 1845:
			case 1846:
			case 1847:
			case 1848:
			case 1849:
			case 1850:
			case 1851:
			case 1852:
			case 1853:
			case 1854:
			case 1855:
			case 1856:
			case 1857:
			case 1858:
			case 1859:
			case 1860:
			case 1861:
			case 1862:
			case 1863:
			case 1864:
			case 1865:
			case 1866:
			case 1867:
			case 1868:
			case 1869:
			case 1870:
			case 1871:
			case 1872:
			case 1873:
			case 1874:
			case 1875:
			case 1876:
			case 1877:
			case 1878:
			case 1879:
			case 1880:
			case 1881:
			case 1882:
			case 1883:
			case 1884:
			case 1885:
			case 1886:
			case 1887:
			case 1888:
			case 1889:
			case 1890:
			case 1891:
			case 1892:
			case 1893:
			case 1894:
			case 1895:
			case 1896:
			case 1897:
			case 1898:
			case 1899:
			case 1900:
			case 1901:
			case 1902:
			case 1903:
			case 1904:
			case 1905:
			case 1906:
			case 1907:
			case 1908:
			case 1909:
			case 1910:
			case 1911:
			case 1912:
			case 1913:
			case 1914:
			case 1915:
			case 1916:
			case 1917:
			case 1918:
			case 1919:
			case 1920:
			case 1921:
			case 1922:
			case 1923:
			case 1924:
			case 1925:
			case 1926:
			case 1927:
			case 1928:
			case 1929:
			case 1930:
			case 1931:
			case 1932:
			case 1933:
			case 1934:
			case 1935:
			case 1936:
			case 1937:
			case 1939:
			case 1940:
			case 1941:
			case 1942:
			case 1943:
			case 1944:
			case 1945:
			case 1946:
			case 1947:
			case 1948:
			case 1949:
			case 1950:
			case 1951:
			case 1952:
			case 1953:
			case 1954:
			case 1955:
			case 1956:
			case 1957:
			case 1958:
			case 1959:
			case 1960:
			case 1961:
			case 1962:
			case 1963:
			case 1965:
			case 1966:
			case 1967:
			case 1968:
			case 1969:
			case 1970:
			case 1971:
			case 1972:
			case 1973:
			case 1974:
			case 1975:
			case 1976:
			case 1977:
			case 1978:
			case 1979:
			case 1980:
			case 1981:
			case 1982:
			case 1983:
			case 1984:
			case 1985:
			case 1986:
			case 1987:
			case 1988:
			case 1989:
			case 1990:
			case 1991:
			case 1992:
			case 1993:
			case 1994:
			case 1995:
			case 1996:
			case 1997:
			case 1998:
			case 1999:
			case 2000:
			case 2003:
			case 2004:
			case 2005:
			case 2006:
			case 2007:
			case 2008:
			case 2009:
			case 2010:
			case 2011:
			case 2012:
			case 2013:
			case 2014:
			case 2015:
			case 2016:
			case 2017:
			case 2018:
			case 2019:
			case 2020:
			case 2021:
			case 2022:
			case 2023:
			case 2024:
			case 2026:
			case 2027:
			case 2028:
			case 2029:
			case 2030:
			case 2031:
			case 2032:
			case 2033:
			case 2034:
			case 2035:
			case 2036:
			case 2037:
			case 2038:
			case 2039:
			case 2040:
			case 2041:
			case 2042:
			case 2043:
			case 2044:
			case 2045:
			case 2046:
			case 2047:
			case 2048:
			case 2049:
			case 2050:
			case 2051:
			case 2052:
			case 2053:
			case 2054:
			case 2055:
			case 2056:
			case 2057:
			case 2058:
			case 2059:
			case 2060:
			case 2061:
			case 2062:
			case 2063:
			case 2064:
			case 2065:
			case 2066:
			case 2067:
			case 2068:
			case 2069:
			case 2070:
			case 2071:
			case 2072:
			case 2074:
			case 2075:
			case 2076:
			case 2077:
			case 2078:
			case 2079:
			case 2080:
			case 2081:
			case 2082:
			case 2083:
			case 2084:
			case 2085:
			case 2086:
			case 2087:
			case 2088:
			case 2089:
			case 2090:
			case 2091:
			case 2092:
			case 2093:
			case 2094:
			case 2095:
			case 2096:
			case 2097:
			case 2098:
			case 2100:
			case 2101:
			case 2102:
			case 2103:
			case 2104:
			case 2105:
			case 2106:
			case 2107:
			case 2108:
			case 2109:
			case 2110:
			case 2111:
			case 2112:
			case 2113:
			case 2115:
			case 2116:
			case 2117:
			case 2118:
			case 2119:
			case 2120:
			case 2122:
			case 2123:
			case 2124:
			case 2125:
			case 2126:
			case 2128:
			case 2129:
			case 2130:
			case 2131:
			case 2132:
			case 2133:
			case 2134:
			case 2135:
			case 2136:
			case 2137:
			case 2138:
			case 2139:
			case 2140:
			case 2141:
			case 2142:
			case 2143:
			case 2145:
			case 2146:
			case 2147:
			case 2148:
			case 2149:
			case 2150:
			case 2151:
			case 2152:
			case 2153:
			case 2154:
			case 2155:
			case 2156:
			case 2157:
			case 2158:
			case 2159:
			case 2160:
			case 2161:
			case 2162:
			case 2163:
			case 2164:
			case 2165:
			case 2166:
			case 2168:
			case 2169:
			case 2170:
			case 2171:
			case 2172:
			case 2173:
			case 2174:
			case 2175:
			case 2176:
			case 2177:
			case 2178:
			case 2179:
			case 2180:
			case 2181:
			case 2182:
			case 2183:
			case 2184:
			case 2185:
			case 2186:
			case 2187:
			case 2188:
			case 2189:
			case 2191:
			case 2192:
			case 2193:
			case 2194:
			case 2195:
			case 2196:
			case 2197:
			case 2198:
			case 2199:
			case 2200:
			case 2201:
			case 2202:
			case 2203:
			case 2204:
			case 2205:
			case 2206:
			case 2207:
			case 2208:
			case 2209:
			case 2210:
			case 2211:
			case 2216:
			case 2220:
			case 2246:
			case 2252:
				{
				this.state = 9196;
				this.column_name();
				}
				break;
			case 2223:
				{
				this.state = 9197;
				this.paren_column_list();
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public pivot_in_clause(): Pivot_in_clauseContext {
		let localctx: Pivot_in_clauseContext = new Pivot_in_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1092, PlSqlParser.RULE_pivot_in_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 9200;
			this.match(PlSqlParser.IN);
			this.state = 9201;
			this.match(PlSqlParser.LEFT_PAREN);
			this.state = 9219;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1219, this._ctx) ) {
			case 1:
				{
				this.state = 9202;
				this.subquery();
				}
				break;
			case 2:
				{
				this.state = 9203;
				this.match(PlSqlParser.ANY);
				this.state = 9208;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===2229) {
					{
					{
					this.state = 9204;
					this.match(PlSqlParser.COMMA);
					this.state = 9205;
					this.match(PlSqlParser.ANY);
					}
					}
					this.state = 9210;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				}
				break;
			case 3:
				{
				this.state = 9211;
				this.pivot_in_clause_element();
				this.state = 9216;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===2229) {
					{
					{
					this.state = 9212;
					this.match(PlSqlParser.COMMA);
					this.state = 9213;
					this.pivot_in_clause_element();
					}
					}
					this.state = 9218;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				}
				break;
			}
			this.state = 9221;
			this.match(PlSqlParser.RIGHT_PAREN);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public pivot_in_clause_element(): Pivot_in_clause_elementContext {
		let localctx: Pivot_in_clause_elementContext = new Pivot_in_clause_elementContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1094, PlSqlParser.RULE_pivot_in_clause_element);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 9223;
			this.pivot_in_clause_elements();
			this.state = 9225;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & 3221157751) !== 0) || ((((_la - 64)) & ~0x1F) === 0 && ((1 << (_la - 64)) & 3220168703) !== 0) || ((((_la - 96)) & ~0x1F) === 0 && ((1 << (_la - 96)) & 4294965247) !== 0) || ((((_la - 128)) & ~0x1F) === 0 && ((1 << (_la - 128)) & 2147221503) !== 0) || ((((_la - 160)) & ~0x1F) === 0 && ((1 << (_la - 160)) & 4293910527) !== 0) || ((((_la - 192)) & ~0x1F) === 0 && ((1 << (_la - 192)) & 4294967295) !== 0) || ((((_la - 224)) & ~0x1F) === 0 && ((1 << (_la - 224)) & 4160749311) !== 0) || ((((_la - 256)) & ~0x1F) === 0 && ((1 << (_la - 256)) & 4294967295) !== 0) || ((((_la - 289)) & ~0x1F) === 0 && ((1 << (_la - 289)) & 2147483647) !== 0) || ((((_la - 321)) & ~0x1F) === 0 && ((1 << (_la - 321)) & 3221225407) !== 0) || ((((_la - 353)) & ~0x1F) === 0 && ((1 << (_la - 353)) & 4294705151) !== 0) || ((((_la - 385)) & ~0x1F) === 0 && ((1 << (_la - 385)) & 2080372479) !== 0) || ((((_la - 417)) & ~0x1F) === 0 && ((1 << (_la - 417)) & 4026433535) !== 0) || ((((_la - 449)) & ~0x1F) === 0 && ((1 << (_la - 449)) & 4261412863) !== 0) || ((((_la - 481)) & ~0x1F) === 0 && ((1 << (_la - 481)) & 4294967295) !== 0) || ((((_la - 513)) & ~0x1F) === 0 && ((1 << (_la - 513)) & 4294967295) !== 0) || ((((_la - 545)) & ~0x1F) === 0 && ((1 << (_la - 545)) & 3925868029) !== 0) || ((((_la - 577)) & ~0x1F) === 0 && ((1 << (_la - 577)) & 4278189823) !== 0) || ((((_la - 609)) & ~0x1F) === 0 && ((1 << (_la - 609)) & 4290772991) !== 0) || ((((_la - 641)) & ~0x1F) === 0 && ((1 << (_la - 641)) & 4026529791) !== 0) || ((((_la - 673)) & ~0x1F) === 0 && ((1 << (_la - 673)) & 4290478079) !== 0) || ((((_la - 705)) & ~0x1F) === 0 && ((1 << (_la - 705)) & 4294967295) !== 0) || ((((_la - 737)) & ~0x1F) === 0 && ((1 << (_la - 737)) & 4293918719) !== 0) || ((((_la - 769)) & ~0x1F) === 0 && ((1 << (_la - 769)) & 4294967167) !== 0) || ((((_la - 801)) & ~0x1F) === 0 && ((1 << (_la - 801)) & 4294967295) !== 0) || ((((_la - 833)) & ~0x1F) === 0 && ((1 << (_la - 833)) & 4160749055) !== 0) || ((((_la - 865)) & ~0x1F) === 0 && ((1 << (_la - 865)) & 4290772991) !== 0) || ((((_la - 897)) & ~0x1F) === 0 && ((1 << (_la - 897)) & 4294967295) !== 0) || ((((_la - 929)) & ~0x1F) === 0 && ((1 << (_la - 929)) & 4278190079) !== 0) || ((((_la - 961)) & ~0x1F) === 0 && ((1 << (_la - 961)) & 4294967295) !== 0) || ((((_la - 993)) & ~0x1F) === 0 && ((1 << (_la - 993)) & 4294967295) !== 0) || ((((_la - 1025)) & ~0x1F) === 0 && ((1 << (_la - 1025)) & 4294967295) !== 0) || ((((_la - 1057)) & ~0x1F) === 0 && ((1 << (_la - 1057)) & 2147418111) !== 0) || ((((_la - 1089)) & ~0x1F) === 0 && ((1 << (_la - 1089)) & 4227858175) !== 0) || ((((_la - 1121)) & ~0x1F) === 0 && ((1 << (_la - 1121)) & 4293918559) !== 0) || ((((_la - 1153)) & ~0x1F) === 0 && ((1 << (_la - 1153)) & 4294410239) !== 0) || ((((_la - 1185)) & ~0x1F) === 0 && ((1 << (_la - 1185)) & 4294965247) !== 0) || ((((_la - 1217)) & ~0x1F) === 0 && ((1 << (_la - 1217)) & 4279827455) !== 0) || ((((_la - 1249)) & ~0x1F) === 0 && ((1 << (_la - 1249)) & 4294967291) !== 0) || ((((_la - 1281)) & ~0x1F) === 0 && ((1 << (_la - 1281)) & 4227858431) !== 0) || ((((_la - 1313)) & ~0x1F) === 0 && ((1 << (_la - 1313)) & 4294965247) !== 0) || ((((_la - 1345)) & ~0x1F) === 0 && ((1 << (_la - 1345)) & 4294967295) !== 0) || ((((_la - 1377)) & ~0x1F) === 0 && ((1 << (_la - 1377)) & 4292870143) !== 0) || ((((_la - 1409)) & ~0x1F) === 0 && ((1 << (_la - 1409)) & 4261412799) !== 0) || ((((_la - 1441)) & ~0x1F) === 0 && ((1 << (_la - 1441)) & 4294967295) !== 0) || ((((_la - 1473)) & ~0x1F) === 0 && ((1 << (_la - 1473)) & 4261281791) !== 0) || ((((_la - 1505)) & ~0x1F) === 0 && ((1 << (_la - 1505)) & 3221221375) !== 0) || ((((_la - 1537)) & ~0x1F) === 0 && ((1 << (_la - 1537)) & 4294967295) !== 0) || ((((_la - 1570)) & ~0x1F) === 0 && ((1 << (_la - 1570)) & 4294967295) !== 0) || ((((_la - 1602)) & ~0x1F) === 0 && ((1 << (_la - 1602)) & 4261412863) !== 0) || ((((_la - 1634)) & ~0x1F) === 0 && ((1 << (_la - 1634)) & 4294967295) !== 0) || ((((_la - 1666)) & ~0x1F) === 0 && ((1 << (_la - 1666)) & 4294967295) !== 0) || ((((_la - 1698)) & ~0x1F) === 0 && ((1 << (_la - 1698)) & 4294967295) !== 0) || ((((_la - 1730)) & ~0x1F) === 0 && ((1 << (_la - 1730)) & 4294967295) !== 0) || ((((_la - 1762)) & ~0x1F) === 0 && ((1 << (_la - 1762)) & 4294967295) !== 0) || ((((_la - 1794)) & ~0x1F) === 0 && ((1 << (_la - 1794)) & 4294967295) !== 0) || ((((_la - 1826)) & ~0x1F) === 0 && ((1 << (_la - 1826)) & 4294967295) !== 0) || ((((_la - 1858)) & ~0x1F) === 0 && ((1 << (_la - 1858)) & 4294967295) !== 0) || ((((_la - 1890)) & ~0x1F) === 0 && ((1 << (_la - 1890)) & 4294967295) !== 0) || ((((_la - 1922)) & ~0x1F) === 0 && ((1 << (_la - 1922)) & 4294901759) !== 0) || ((((_la - 1954)) & ~0x1F) === 0 && ((1 << (_la - 1954)) & 4294966271) !== 0) || ((((_la - 1986)) & ~0x1F) === 0 && ((1 << (_la - 1986)) & 4294868991) !== 0) || ((((_la - 2018)) & ~0x1F) === 0 && ((1 << (_la - 2018)) & 4294967167) !== 0) || ((((_la - 2050)) & ~0x1F) === 0 && ((1 << (_la - 2050)) & 4286578687) !== 0) || ((((_la - 2082)) & ~0x1F) === 0 && ((1 << (_la - 2082)) & 4294836223) !== 0) || ((((_la - 2115)) & ~0x1F) === 0 && ((1 << (_la - 2115)) & 3758092223) !== 0) || ((((_la - 2147)) & ~0x1F) === 0 && ((1 << (_la - 2147)) & 4293918719) !== 0) || ((((_la - 2179)) & ~0x1F) === 0 && ((1 << (_la - 2179)) & 4294965247) !== 0) || ((((_la - 2211)) & ~0x1F) === 0 && ((1 << (_la - 2211)) & 803) !== 0) || _la===2246 || _la===2252) {
				{
				this.state = 9224;
				this.column_alias();
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public pivot_in_clause_elements(): Pivot_in_clause_elementsContext {
		let localctx: Pivot_in_clause_elementsContext = new Pivot_in_clause_elementsContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1096, PlSqlParser.RULE_pivot_in_clause_elements);
		let _la: number;
		try {
			this.state = 9233;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1222, this._ctx) ) {
			case 1:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 9227;
				this.expression();
				}
				break;
			case 2:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 9228;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 9230;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & 2684352383) !== 0) || ((((_la - 64)) & ~0x1F) === 0 && ((1 << (_la - 64)) & 3220168703) !== 0) || ((((_la - 96)) & ~0x1F) === 0 && ((1 << (_la - 96)) & 4294965247) !== 0) || ((((_la - 128)) & ~0x1F) === 0 && ((1 << (_la - 128)) & 2147221503) !== 0) || ((((_la - 160)) & ~0x1F) === 0 && ((1 << (_la - 160)) & 4293910527) !== 0) || ((((_la - 192)) & ~0x1F) === 0 && ((1 << (_la - 192)) & 4294967295) !== 0) || ((((_la - 224)) & ~0x1F) === 0 && ((1 << (_la - 224)) & 4160749311) !== 0) || ((((_la - 256)) & ~0x1F) === 0 && ((1 << (_la - 256)) & 4294967295) !== 0) || ((((_la - 289)) & ~0x1F) === 0 && ((1 << (_la - 289)) & 2147483647) !== 0) || ((((_la - 321)) & ~0x1F) === 0 && ((1 << (_la - 321)) & 4294967295) !== 0) || ((((_la - 353)) & ~0x1F) === 0 && ((1 << (_la - 353)) & 4294705151) !== 0) || ((((_la - 385)) & ~0x1F) === 0 && ((1 << (_la - 385)) & 2080374527) !== 0) || ((((_la - 417)) & ~0x1F) === 0 && ((1 << (_la - 417)) & 4026433535) !== 0) || ((((_la - 449)) & ~0x1F) === 0 && ((1 << (_la - 449)) & 4261412863) !== 0) || ((((_la - 481)) & ~0x1F) === 0 && ((1 << (_la - 481)) & 4294967295) !== 0) || ((((_la - 513)) & ~0x1F) === 0 && ((1 << (_la - 513)) & 4294967295) !== 0) || ((((_la - 545)) & ~0x1F) === 0 && ((1 << (_la - 545)) & 3925868029) !== 0) || ((((_la - 577)) & ~0x1F) === 0 && ((1 << (_la - 577)) & 4278189823) !== 0) || ((((_la - 609)) & ~0x1F) === 0 && ((1 << (_la - 609)) & 4290772991) !== 0) || ((((_la - 641)) & ~0x1F) === 0 && ((1 << (_la - 641)) & 4026529791) !== 0) || ((((_la - 673)) & ~0x1F) === 0 && ((1 << (_la - 673)) & 4290478079) !== 0) || ((((_la - 705)) & ~0x1F) === 0 && ((1 << (_la - 705)) & 4294967295) !== 0) || ((((_la - 737)) & ~0x1F) === 0 && ((1 << (_la - 737)) & 4293918719) !== 0) || ((((_la - 769)) & ~0x1F) === 0 && ((1 << (_la - 769)) & 4294967167) !== 0) || ((((_la - 801)) & ~0x1F) === 0 && ((1 << (_la - 801)) & 4294967295) !== 0) || ((((_la - 833)) & ~0x1F) === 0 && ((1 << (_la - 833)) & 4160749055) !== 0) || ((((_la - 865)) & ~0x1F) === 0 && ((1 << (_la - 865)) & 4290772991) !== 0) || ((((_la - 897)) & ~0x1F) === 0 && ((1 << (_la - 897)) & 4294967295) !== 0) || ((((_la - 929)) & ~0x1F) === 0 && ((1 << (_la - 929)) & 4278190079) !== 0) || ((((_la - 961)) & ~0x1F) === 0 && ((1 << (_la - 961)) & 4294967295) !== 0) || ((((_la - 993)) & ~0x1F) === 0 && ((1 << (_la - 993)) & 4294967295) !== 0) || ((((_la - 1025)) & ~0x1F) === 0 && ((1 << (_la - 1025)) & 4294967295) !== 0) || ((((_la - 1057)) & ~0x1F) === 0 && ((1 << (_la - 1057)) & 2147483647) !== 0) || ((((_la - 1089)) & ~0x1F) === 0 && ((1 << (_la - 1089)) & 4227858431) !== 0) || ((((_la - 1121)) & ~0x1F) === 0 && ((1 << (_la - 1121)) & 4293918559) !== 0) || ((((_la - 1153)) & ~0x1F) === 0 && ((1 << (_la - 1153)) & 4294410239) !== 0) || ((((_la - 1185)) & ~0x1F) === 0 && ((1 << (_la - 1185)) & 4294965247) !== 0) || ((((_la - 1217)) & ~0x1F) === 0 && ((1 << (_la - 1217)) & 4279827455) !== 0) || ((((_la - 1249)) & ~0x1F) === 0 && ((1 << (_la - 1249)) & 4294967291) !== 0) || ((((_la - 1281)) & ~0x1F) === 0 && ((1 << (_la - 1281)) & 4294967295) !== 0) || ((((_la - 1313)) & ~0x1F) === 0 && ((1 << (_la - 1313)) & 4294965247) !== 0) || ((((_la - 1345)) & ~0x1F) === 0 && ((1 << (_la - 1345)) & 4294967295) !== 0) || ((((_la - 1377)) & ~0x1F) === 0 && ((1 << (_la - 1377)) & 4292870143) !== 0) || ((((_la - 1409)) & ~0x1F) === 0 && ((1 << (_la - 1409)) & 4261412799) !== 0) || ((((_la - 1441)) & ~0x1F) === 0 && ((1 << (_la - 1441)) & 4294967295) !== 0) || ((((_la - 1473)) & ~0x1F) === 0 && ((1 << (_la - 1473)) & 4261281791) !== 0) || ((((_la - 1505)) & ~0x1F) === 0 && ((1 << (_la - 1505)) & 3221221375) !== 0) || ((((_la - 1537)) & ~0x1F) === 0 && ((1 << (_la - 1537)) & 4294967295) !== 0) || ((((_la - 1570)) & ~0x1F) === 0 && ((1 << (_la - 1570)) & 4294967295) !== 0) || ((((_la - 1602)) & ~0x1F) === 0 && ((1 << (_la - 1602)) & 4261412863) !== 0) || ((((_la - 1634)) & ~0x1F) === 0 && ((1 << (_la - 1634)) & 4294967295) !== 0) || ((((_la - 1666)) & ~0x1F) === 0 && ((1 << (_la - 1666)) & 4294967295) !== 0) || ((((_la - 1698)) & ~0x1F) === 0 && ((1 << (_la - 1698)) & 4294967295) !== 0) || ((((_la - 1730)) & ~0x1F) === 0 && ((1 << (_la - 1730)) & 4294967295) !== 0) || ((((_la - 1762)) & ~0x1F) === 0 && ((1 << (_la - 1762)) & 4294967295) !== 0) || ((((_la - 1794)) & ~0x1F) === 0 && ((1 << (_la - 1794)) & 4294967295) !== 0) || ((((_la - 1826)) & ~0x1F) === 0 && ((1 << (_la - 1826)) & 4294967295) !== 0) || ((((_la - 1858)) & ~0x1F) === 0 && ((1 << (_la - 1858)) & 4294967295) !== 0) || ((((_la - 1890)) & ~0x1F) === 0 && ((1 << (_la - 1890)) & 4294967295) !== 0) || ((((_la - 1922)) & ~0x1F) === 0 && ((1 << (_la - 1922)) & 4294901759) !== 0) || ((((_la - 1954)) & ~0x1F) === 0 && ((1 << (_la - 1954)) & 4294966271) !== 0) || ((((_la - 1986)) & ~0x1F) === 0 && ((1 << (_la - 1986)) & 4294868991) !== 0) || ((((_la - 2018)) & ~0x1F) === 0 && ((1 << (_la - 2018)) & 4294967167) !== 0) || ((((_la - 2050)) & ~0x1F) === 0 && ((1 << (_la - 2050)) & 4286578687) !== 0) || ((((_la - 2082)) & ~0x1F) === 0 && ((1 << (_la - 2082)) & 4294836223) !== 0) || ((((_la - 2115)) & ~0x1F) === 0 && ((1 << (_la - 2115)) & 3758092223) !== 0) || ((((_la - 2147)) & ~0x1F) === 0 && ((1 << (_la - 2147)) & 4293918719) !== 0) || ((((_la - 2179)) & ~0x1F) === 0 && ((1 << (_la - 2179)) & 4294967295) !== 0) || ((((_la - 2211)) & ~0x1F) === 0 && ((1 << (_la - 2211)) & 541266915) !== 0) || _la===2246 || _la===2252) {
					{
					this.state = 9229;
					this.expressions();
					}
				}

				this.state = 9232;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
				break;
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public unpivot_clause(): Unpivot_clauseContext {
		let localctx: Unpivot_clauseContext = new Unpivot_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1098, PlSqlParser.RULE_unpivot_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 9235;
			this.match(PlSqlParser.UNPIVOT);
			this.state = 9238;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===472 || _la===617) {
				{
				this.state = 9236;
				_la = this._input.LA(1);
				if(!(_la===472 || _la===617)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				this.state = 9237;
				this.match(PlSqlParser.NULLS);
				}
			}

			this.state = 9240;
			this.match(PlSqlParser.LEFT_PAREN);
			this.state = 9243;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 1:
			case 2:
			case 3:
			case 4:
			case 5:
			case 6:
			case 7:
			case 8:
			case 9:
			case 10:
			case 11:
			case 12:
			case 13:
			case 14:
			case 15:
			case 16:
			case 17:
			case 18:
			case 19:
			case 20:
			case 21:
			case 22:
			case 23:
			case 24:
			case 25:
			case 26:
			case 27:
			case 28:
			case 29:
			case 30:
			case 31:
			case 32:
			case 33:
			case 34:
			case 36:
			case 37:
			case 38:
			case 40:
			case 41:
			case 42:
			case 44:
			case 45:
			case 46:
			case 47:
			case 49:
			case 50:
			case 51:
			case 52:
			case 53:
			case 54:
			case 55:
			case 56:
			case 57:
			case 58:
			case 59:
			case 60:
			case 63:
			case 64:
			case 65:
			case 66:
			case 67:
			case 68:
			case 69:
			case 70:
			case 71:
			case 72:
			case 73:
			case 74:
			case 75:
			case 76:
			case 78:
			case 79:
			case 80:
			case 81:
			case 82:
			case 83:
			case 85:
			case 86:
			case 87:
			case 88:
			case 89:
			case 90:
			case 91:
			case 92:
			case 93:
			case 95:
			case 96:
			case 97:
			case 98:
			case 99:
			case 100:
			case 101:
			case 102:
			case 103:
			case 104:
			case 105:
			case 106:
			case 108:
			case 109:
			case 110:
			case 111:
			case 112:
			case 113:
			case 114:
			case 115:
			case 116:
			case 117:
			case 118:
			case 119:
			case 120:
			case 121:
			case 122:
			case 123:
			case 124:
			case 125:
			case 126:
			case 127:
			case 128:
			case 129:
			case 130:
			case 131:
			case 132:
			case 133:
			case 134:
			case 135:
			case 136:
			case 137:
			case 138:
			case 139:
			case 140:
			case 141:
			case 142:
			case 143:
			case 144:
			case 145:
			case 147:
			case 148:
			case 149:
			case 150:
			case 151:
			case 152:
			case 153:
			case 154:
			case 155:
			case 156:
			case 157:
			case 158:
			case 160:
			case 161:
			case 162:
			case 163:
			case 164:
			case 165:
			case 166:
			case 167:
			case 168:
			case 169:
			case 170:
			case 171:
			case 172:
			case 174:
			case 175:
			case 176:
			case 177:
			case 178:
			case 179:
			case 181:
			case 182:
			case 183:
			case 184:
			case 185:
			case 186:
			case 187:
			case 188:
			case 189:
			case 190:
			case 191:
			case 192:
			case 193:
			case 194:
			case 195:
			case 196:
			case 197:
			case 198:
			case 199:
			case 200:
			case 201:
			case 202:
			case 203:
			case 204:
			case 205:
			case 206:
			case 207:
			case 208:
			case 209:
			case 210:
			case 211:
			case 212:
			case 213:
			case 214:
			case 215:
			case 216:
			case 217:
			case 218:
			case 219:
			case 220:
			case 221:
			case 222:
			case 223:
			case 224:
			case 225:
			case 226:
			case 227:
			case 228:
			case 229:
			case 230:
			case 231:
			case 233:
			case 234:
			case 235:
			case 236:
			case 237:
			case 238:
			case 239:
			case 240:
			case 241:
			case 242:
			case 243:
			case 244:
			case 245:
			case 246:
			case 247:
			case 248:
			case 249:
			case 250:
			case 252:
			case 253:
			case 254:
			case 255:
			case 256:
			case 257:
			case 258:
			case 259:
			case 260:
			case 261:
			case 262:
			case 263:
			case 264:
			case 265:
			case 266:
			case 267:
			case 268:
			case 269:
			case 270:
			case 271:
			case 272:
			case 273:
			case 274:
			case 275:
			case 276:
			case 277:
			case 278:
			case 279:
			case 280:
			case 281:
			case 282:
			case 283:
			case 284:
			case 285:
			case 286:
			case 287:
			case 289:
			case 290:
			case 291:
			case 292:
			case 293:
			case 294:
			case 295:
			case 296:
			case 297:
			case 298:
			case 299:
			case 300:
			case 301:
			case 302:
			case 303:
			case 304:
			case 305:
			case 306:
			case 307:
			case 308:
			case 309:
			case 310:
			case 311:
			case 312:
			case 313:
			case 314:
			case 315:
			case 316:
			case 317:
			case 318:
			case 319:
			case 321:
			case 322:
			case 323:
			case 324:
			case 325:
			case 326:
			case 328:
			case 329:
			case 330:
			case 331:
			case 332:
			case 333:
			case 334:
			case 335:
			case 336:
			case 337:
			case 338:
			case 339:
			case 340:
			case 341:
			case 342:
			case 343:
			case 344:
			case 345:
			case 346:
			case 347:
			case 348:
			case 349:
			case 350:
			case 352:
			case 353:
			case 354:
			case 355:
			case 356:
			case 357:
			case 358:
			case 359:
			case 360:
			case 361:
			case 362:
			case 363:
			case 364:
			case 365:
			case 366:
			case 367:
			case 368:
			case 369:
			case 370:
			case 372:
			case 373:
			case 374:
			case 375:
			case 376:
			case 377:
			case 378:
			case 379:
			case 380:
			case 381:
			case 382:
			case 383:
			case 384:
			case 385:
			case 386:
			case 387:
			case 388:
			case 389:
			case 390:
			case 391:
			case 392:
			case 394:
			case 395:
			case 397:
			case 398:
			case 399:
			case 400:
			case 401:
			case 402:
			case 403:
			case 404:
			case 405:
			case 406:
			case 407:
			case 408:
			case 409:
			case 410:
			case 412:
			case 413:
			case 414:
			case 415:
			case 417:
			case 418:
			case 419:
			case 420:
			case 421:
			case 422:
			case 423:
			case 424:
			case 425:
			case 426:
			case 427:
			case 428:
			case 429:
			case 430:
			case 431:
			case 434:
			case 435:
			case 436:
			case 437:
			case 438:
			case 439:
			case 440:
			case 441:
			case 442:
			case 443:
			case 444:
			case 446:
			case 447:
			case 448:
			case 449:
			case 450:
			case 451:
			case 452:
			case 453:
			case 454:
			case 455:
			case 456:
			case 457:
			case 458:
			case 459:
			case 460:
			case 461:
			case 462:
			case 463:
			case 464:
			case 465:
			case 466:
			case 467:
			case 468:
			case 469:
			case 470:
			case 471:
			case 472:
			case 473:
			case 475:
			case 476:
			case 477:
			case 478:
			case 479:
			case 480:
			case 481:
			case 482:
			case 483:
			case 484:
			case 485:
			case 486:
			case 487:
			case 488:
			case 489:
			case 490:
			case 491:
			case 492:
			case 493:
			case 494:
			case 495:
			case 496:
			case 497:
			case 498:
			case 499:
			case 500:
			case 501:
			case 502:
			case 503:
			case 504:
			case 505:
			case 506:
			case 507:
			case 508:
			case 509:
			case 510:
			case 511:
			case 512:
			case 513:
			case 514:
			case 515:
			case 516:
			case 517:
			case 518:
			case 519:
			case 520:
			case 521:
			case 522:
			case 523:
			case 524:
			case 525:
			case 526:
			case 527:
			case 528:
			case 529:
			case 530:
			case 531:
			case 532:
			case 533:
			case 534:
			case 535:
			case 536:
			case 537:
			case 538:
			case 539:
			case 540:
			case 541:
			case 542:
			case 543:
			case 544:
			case 545:
			case 547:
			case 548:
			case 549:
			case 550:
			case 551:
			case 552:
			case 553:
			case 555:
			case 556:
			case 557:
			case 558:
			case 559:
			case 560:
			case 561:
			case 562:
			case 563:
			case 564:
			case 565:
			case 566:
			case 567:
			case 568:
			case 569:
			case 572:
			case 574:
			case 575:
			case 576:
			case 577:
			case 578:
			case 579:
			case 580:
			case 581:
			case 582:
			case 583:
			case 584:
			case 586:
			case 587:
			case 588:
			case 589:
			case 590:
			case 591:
			case 592:
			case 593:
			case 594:
			case 595:
			case 596:
			case 597:
			case 598:
			case 599:
			case 600:
			case 602:
			case 603:
			case 604:
			case 605:
			case 606:
			case 607:
			case 608:
			case 609:
			case 610:
			case 611:
			case 612:
			case 613:
			case 614:
			case 615:
			case 616:
			case 617:
			case 618:
			case 619:
			case 620:
			case 621:
			case 622:
			case 623:
			case 624:
			case 625:
			case 626:
			case 627:
			case 628:
			case 629:
			case 630:
			case 632:
			case 633:
			case 634:
			case 635:
			case 636:
			case 637:
			case 638:
			case 639:
			case 640:
			case 641:
			case 642:
			case 643:
			case 644:
			case 645:
			case 646:
			case 647:
			case 648:
			case 649:
			case 650:
			case 651:
			case 653:
			case 654:
			case 655:
			case 656:
			case 657:
			case 658:
			case 659:
			case 660:
			case 661:
			case 662:
			case 663:
			case 664:
			case 665:
			case 666:
			case 667:
			case 668:
			case 670:
			case 671:
			case 672:
			case 673:
			case 674:
			case 675:
			case 676:
			case 677:
			case 678:
			case 679:
			case 680:
			case 681:
			case 682:
			case 683:
			case 684:
			case 685:
			case 686:
			case 687:
			case 689:
			case 690:
			case 692:
			case 693:
			case 694:
			case 696:
			case 697:
			case 698:
			case 699:
			case 700:
			case 701:
			case 702:
			case 703:
			case 704:
			case 705:
			case 706:
			case 707:
			case 708:
			case 709:
			case 710:
			case 711:
			case 712:
			case 713:
			case 714:
			case 715:
			case 716:
			case 717:
			case 718:
			case 719:
			case 720:
			case 721:
			case 722:
			case 723:
			case 724:
			case 725:
			case 726:
			case 727:
			case 728:
			case 729:
			case 730:
			case 731:
			case 732:
			case 733:
			case 734:
			case 735:
			case 736:
			case 737:
			case 738:
			case 739:
			case 740:
			case 741:
			case 742:
			case 743:
			case 744:
			case 745:
			case 746:
			case 747:
			case 748:
			case 749:
			case 750:
			case 751:
			case 752:
			case 753:
			case 754:
			case 755:
			case 756:
			case 758:
			case 759:
			case 760:
			case 761:
			case 762:
			case 763:
			case 764:
			case 765:
			case 766:
			case 767:
			case 768:
			case 769:
			case 770:
			case 771:
			case 772:
			case 773:
			case 774:
			case 775:
			case 777:
			case 778:
			case 779:
			case 780:
			case 781:
			case 782:
			case 783:
			case 784:
			case 785:
			case 786:
			case 787:
			case 788:
			case 789:
			case 790:
			case 791:
			case 792:
			case 793:
			case 794:
			case 795:
			case 796:
			case 797:
			case 798:
			case 799:
			case 800:
			case 801:
			case 802:
			case 803:
			case 804:
			case 805:
			case 806:
			case 807:
			case 808:
			case 809:
			case 810:
			case 811:
			case 812:
			case 813:
			case 814:
			case 815:
			case 816:
			case 817:
			case 818:
			case 819:
			case 820:
			case 821:
			case 822:
			case 823:
			case 824:
			case 825:
			case 826:
			case 827:
			case 828:
			case 829:
			case 830:
			case 831:
			case 832:
			case 833:
			case 834:
			case 835:
			case 836:
			case 837:
			case 838:
			case 839:
			case 840:
			case 841:
			case 843:
			case 844:
			case 845:
			case 846:
			case 847:
			case 848:
			case 849:
			case 850:
			case 851:
			case 852:
			case 853:
			case 854:
			case 855:
			case 856:
			case 857:
			case 858:
			case 859:
			case 861:
			case 862:
			case 863:
			case 864:
			case 865:
			case 866:
			case 867:
			case 868:
			case 869:
			case 870:
			case 871:
			case 872:
			case 873:
			case 874:
			case 875:
			case 876:
			case 877:
			case 878:
			case 879:
			case 880:
			case 881:
			case 882:
			case 883:
			case 884:
			case 885:
			case 886:
			case 888:
			case 889:
			case 890:
			case 891:
			case 892:
			case 893:
			case 894:
			case 895:
			case 896:
			case 897:
			case 898:
			case 899:
			case 900:
			case 901:
			case 902:
			case 903:
			case 904:
			case 905:
			case 906:
			case 907:
			case 908:
			case 909:
			case 910:
			case 911:
			case 912:
			case 913:
			case 914:
			case 915:
			case 916:
			case 917:
			case 918:
			case 919:
			case 920:
			case 921:
			case 922:
			case 923:
			case 924:
			case 925:
			case 926:
			case 927:
			case 928:
			case 929:
			case 930:
			case 931:
			case 932:
			case 933:
			case 934:
			case 935:
			case 936:
			case 937:
			case 938:
			case 939:
			case 940:
			case 941:
			case 942:
			case 943:
			case 944:
			case 945:
			case 946:
			case 947:
			case 948:
			case 949:
			case 950:
			case 951:
			case 952:
			case 954:
			case 955:
			case 956:
			case 957:
			case 958:
			case 959:
			case 960:
			case 961:
			case 962:
			case 963:
			case 964:
			case 965:
			case 966:
			case 967:
			case 968:
			case 969:
			case 970:
			case 971:
			case 972:
			case 973:
			case 974:
			case 975:
			case 976:
			case 977:
			case 978:
			case 979:
			case 980:
			case 981:
			case 982:
			case 983:
			case 984:
			case 985:
			case 986:
			case 987:
			case 988:
			case 989:
			case 990:
			case 991:
			case 992:
			case 993:
			case 994:
			case 995:
			case 996:
			case 997:
			case 998:
			case 999:
			case 1000:
			case 1001:
			case 1002:
			case 1003:
			case 1004:
			case 1005:
			case 1006:
			case 1007:
			case 1008:
			case 1009:
			case 1010:
			case 1011:
			case 1012:
			case 1013:
			case 1014:
			case 1015:
			case 1016:
			case 1017:
			case 1018:
			case 1019:
			case 1020:
			case 1021:
			case 1022:
			case 1023:
			case 1024:
			case 1025:
			case 1026:
			case 1027:
			case 1028:
			case 1029:
			case 1030:
			case 1031:
			case 1032:
			case 1033:
			case 1034:
			case 1035:
			case 1036:
			case 1037:
			case 1038:
			case 1039:
			case 1040:
			case 1041:
			case 1042:
			case 1043:
			case 1044:
			case 1045:
			case 1046:
			case 1047:
			case 1048:
			case 1049:
			case 1050:
			case 1051:
			case 1052:
			case 1053:
			case 1054:
			case 1055:
			case 1056:
			case 1057:
			case 1058:
			case 1059:
			case 1060:
			case 1061:
			case 1062:
			case 1063:
			case 1064:
			case 1065:
			case 1066:
			case 1067:
			case 1068:
			case 1069:
			case 1070:
			case 1071:
			case 1072:
			case 1074:
			case 1075:
			case 1076:
			case 1077:
			case 1078:
			case 1079:
			case 1080:
			case 1081:
			case 1082:
			case 1083:
			case 1084:
			case 1085:
			case 1086:
			case 1087:
			case 1089:
			case 1090:
			case 1091:
			case 1092:
			case 1093:
			case 1094:
			case 1095:
			case 1096:
			case 1098:
			case 1099:
			case 1100:
			case 1101:
			case 1102:
			case 1103:
			case 1104:
			case 1105:
			case 1106:
			case 1107:
			case 1108:
			case 1109:
			case 1110:
			case 1111:
			case 1112:
			case 1113:
			case 1114:
			case 1116:
			case 1117:
			case 1118:
			case 1119:
			case 1120:
			case 1121:
			case 1122:
			case 1123:
			case 1124:
			case 1125:
			case 1127:
			case 1129:
			case 1130:
			case 1131:
			case 1132:
			case 1133:
			case 1134:
			case 1135:
			case 1136:
			case 1137:
			case 1138:
			case 1139:
			case 1140:
			case 1142:
			case 1143:
			case 1144:
			case 1145:
			case 1146:
			case 1147:
			case 1148:
			case 1149:
			case 1150:
			case 1151:
			case 1152:
			case 1153:
			case 1154:
			case 1155:
			case 1156:
			case 1157:
			case 1158:
			case 1159:
			case 1160:
			case 1161:
			case 1162:
			case 1163:
			case 1164:
			case 1165:
			case 1166:
			case 1167:
			case 1169:
			case 1170:
			case 1171:
			case 1173:
			case 1174:
			case 1175:
			case 1176:
			case 1177:
			case 1178:
			case 1179:
			case 1180:
			case 1181:
			case 1182:
			case 1183:
			case 1184:
			case 1185:
			case 1186:
			case 1187:
			case 1188:
			case 1189:
			case 1190:
			case 1191:
			case 1192:
			case 1193:
			case 1194:
			case 1195:
			case 1197:
			case 1198:
			case 1199:
			case 1200:
			case 1201:
			case 1202:
			case 1203:
			case 1204:
			case 1205:
			case 1206:
			case 1207:
			case 1208:
			case 1209:
			case 1210:
			case 1211:
			case 1212:
			case 1213:
			case 1214:
			case 1215:
			case 1216:
			case 1217:
			case 1218:
			case 1219:
			case 1220:
			case 1221:
			case 1222:
			case 1223:
			case 1224:
			case 1225:
			case 1226:
			case 1228:
			case 1229:
			case 1230:
			case 1231:
			case 1232:
			case 1236:
			case 1237:
			case 1241:
			case 1242:
			case 1243:
			case 1244:
			case 1245:
			case 1246:
			case 1247:
			case 1248:
			case 1249:
			case 1250:
			case 1252:
			case 1253:
			case 1254:
			case 1255:
			case 1256:
			case 1257:
			case 1258:
			case 1259:
			case 1260:
			case 1261:
			case 1262:
			case 1263:
			case 1264:
			case 1265:
			case 1266:
			case 1267:
			case 1268:
			case 1269:
			case 1270:
			case 1271:
			case 1272:
			case 1273:
			case 1274:
			case 1275:
			case 1276:
			case 1277:
			case 1278:
			case 1279:
			case 1280:
			case 1281:
			case 1282:
			case 1283:
			case 1284:
			case 1285:
			case 1286:
			case 1287:
			case 1288:
			case 1289:
			case 1290:
			case 1291:
			case 1292:
			case 1293:
			case 1294:
			case 1295:
			case 1296:
			case 1297:
			case 1298:
			case 1299:
			case 1300:
			case 1301:
			case 1302:
			case 1303:
			case 1304:
			case 1305:
			case 1306:
			case 1308:
			case 1309:
			case 1310:
			case 1311:
			case 1312:
			case 1313:
			case 1314:
			case 1315:
			case 1316:
			case 1317:
			case 1318:
			case 1319:
			case 1320:
			case 1321:
			case 1322:
			case 1323:
			case 1325:
			case 1326:
			case 1327:
			case 1328:
			case 1329:
			case 1330:
			case 1331:
			case 1332:
			case 1333:
			case 1334:
			case 1335:
			case 1336:
			case 1337:
			case 1338:
			case 1339:
			case 1340:
			case 1341:
			case 1342:
			case 1343:
			case 1344:
			case 1345:
			case 1346:
			case 1347:
			case 1348:
			case 1349:
			case 1350:
			case 1351:
			case 1352:
			case 1353:
			case 1354:
			case 1355:
			case 1356:
			case 1357:
			case 1358:
			case 1359:
			case 1360:
			case 1361:
			case 1362:
			case 1363:
			case 1364:
			case 1365:
			case 1366:
			case 1367:
			case 1368:
			case 1369:
			case 1370:
			case 1371:
			case 1372:
			case 1373:
			case 1374:
			case 1375:
			case 1376:
			case 1377:
			case 1378:
			case 1379:
			case 1380:
			case 1381:
			case 1382:
			case 1383:
			case 1384:
			case 1385:
			case 1386:
			case 1387:
			case 1388:
			case 1389:
			case 1390:
			case 1391:
			case 1392:
			case 1393:
			case 1394:
			case 1395:
			case 1396:
			case 1397:
			case 1399:
			case 1400:
			case 1401:
			case 1402:
			case 1403:
			case 1404:
			case 1405:
			case 1406:
			case 1407:
			case 1408:
			case 1409:
			case 1410:
			case 1411:
			case 1412:
			case 1413:
			case 1414:
			case 1416:
			case 1417:
			case 1418:
			case 1419:
			case 1420:
			case 1421:
			case 1422:
			case 1423:
			case 1424:
			case 1425:
			case 1426:
			case 1427:
			case 1428:
			case 1429:
			case 1430:
			case 1431:
			case 1432:
			case 1433:
			case 1435:
			case 1436:
			case 1437:
			case 1438:
			case 1439:
			case 1440:
			case 1441:
			case 1442:
			case 1443:
			case 1444:
			case 1445:
			case 1446:
			case 1447:
			case 1448:
			case 1449:
			case 1450:
			case 1451:
			case 1452:
			case 1453:
			case 1454:
			case 1455:
			case 1456:
			case 1457:
			case 1458:
			case 1459:
			case 1460:
			case 1461:
			case 1462:
			case 1463:
			case 1464:
			case 1465:
			case 1466:
			case 1467:
			case 1468:
			case 1469:
			case 1470:
			case 1471:
			case 1472:
			case 1473:
			case 1474:
			case 1475:
			case 1476:
			case 1477:
			case 1478:
			case 1479:
			case 1480:
			case 1481:
			case 1482:
			case 1483:
			case 1484:
			case 1485:
			case 1486:
			case 1487:
			case 1488:
			case 1489:
			case 1491:
			case 1492:
			case 1493:
			case 1494:
			case 1495:
			case 1496:
			case 1497:
			case 1499:
			case 1500:
			case 1501:
			case 1502:
			case 1503:
			case 1504:
			case 1505:
			case 1506:
			case 1507:
			case 1508:
			case 1509:
			case 1510:
			case 1511:
			case 1512:
			case 1513:
			case 1514:
			case 1515:
			case 1516:
			case 1518:
			case 1519:
			case 1520:
			case 1521:
			case 1522:
			case 1523:
			case 1524:
			case 1525:
			case 1526:
			case 1527:
			case 1528:
			case 1529:
			case 1530:
			case 1531:
			case 1532:
			case 1533:
			case 1534:
			case 1536:
			case 1537:
			case 1538:
			case 1539:
			case 1540:
			case 1541:
			case 1542:
			case 1543:
			case 1544:
			case 1545:
			case 1546:
			case 1547:
			case 1548:
			case 1549:
			case 1550:
			case 1551:
			case 1552:
			case 1553:
			case 1554:
			case 1555:
			case 1556:
			case 1557:
			case 1558:
			case 1559:
			case 1560:
			case 1561:
			case 1562:
			case 1563:
			case 1564:
			case 1565:
			case 1566:
			case 1567:
			case 1568:
			case 1570:
			case 1571:
			case 1572:
			case 1573:
			case 1574:
			case 1575:
			case 1576:
			case 1577:
			case 1578:
			case 1579:
			case 1580:
			case 1581:
			case 1582:
			case 1583:
			case 1584:
			case 1585:
			case 1586:
			case 1587:
			case 1588:
			case 1589:
			case 1590:
			case 1591:
			case 1592:
			case 1593:
			case 1594:
			case 1595:
			case 1596:
			case 1597:
			case 1598:
			case 1599:
			case 1600:
			case 1601:
			case 1602:
			case 1603:
			case 1604:
			case 1605:
			case 1606:
			case 1607:
			case 1608:
			case 1609:
			case 1610:
			case 1611:
			case 1612:
			case 1613:
			case 1614:
			case 1615:
			case 1616:
			case 1617:
			case 1618:
			case 1619:
			case 1620:
			case 1621:
			case 1622:
			case 1623:
			case 1624:
			case 1625:
			case 1626:
			case 1628:
			case 1629:
			case 1630:
			case 1631:
			case 1632:
			case 1633:
			case 1634:
			case 1635:
			case 1636:
			case 1637:
			case 1638:
			case 1639:
			case 1640:
			case 1641:
			case 1642:
			case 1643:
			case 1644:
			case 1645:
			case 1646:
			case 1647:
			case 1648:
			case 1649:
			case 1650:
			case 1651:
			case 1652:
			case 1653:
			case 1654:
			case 1655:
			case 1656:
			case 1657:
			case 1658:
			case 1659:
			case 1660:
			case 1661:
			case 1662:
			case 1663:
			case 1664:
			case 1665:
			case 1666:
			case 1667:
			case 1668:
			case 1669:
			case 1670:
			case 1671:
			case 1672:
			case 1673:
			case 1674:
			case 1675:
			case 1676:
			case 1677:
			case 1678:
			case 1679:
			case 1680:
			case 1681:
			case 1682:
			case 1683:
			case 1684:
			case 1685:
			case 1686:
			case 1687:
			case 1688:
			case 1689:
			case 1690:
			case 1691:
			case 1692:
			case 1693:
			case 1694:
			case 1695:
			case 1696:
			case 1697:
			case 1698:
			case 1699:
			case 1700:
			case 1701:
			case 1702:
			case 1703:
			case 1704:
			case 1705:
			case 1706:
			case 1707:
			case 1708:
			case 1709:
			case 1710:
			case 1711:
			case 1712:
			case 1713:
			case 1714:
			case 1715:
			case 1716:
			case 1717:
			case 1718:
			case 1719:
			case 1720:
			case 1721:
			case 1722:
			case 1723:
			case 1724:
			case 1725:
			case 1726:
			case 1727:
			case 1728:
			case 1729:
			case 1730:
			case 1731:
			case 1732:
			case 1733:
			case 1734:
			case 1735:
			case 1736:
			case 1737:
			case 1738:
			case 1739:
			case 1740:
			case 1741:
			case 1742:
			case 1743:
			case 1744:
			case 1745:
			case 1746:
			case 1747:
			case 1748:
			case 1749:
			case 1750:
			case 1751:
			case 1752:
			case 1753:
			case 1754:
			case 1755:
			case 1756:
			case 1757:
			case 1758:
			case 1759:
			case 1760:
			case 1761:
			case 1762:
			case 1763:
			case 1764:
			case 1765:
			case 1766:
			case 1767:
			case 1768:
			case 1769:
			case 1770:
			case 1771:
			case 1772:
			case 1773:
			case 1774:
			case 1775:
			case 1776:
			case 1777:
			case 1778:
			case 1779:
			case 1780:
			case 1781:
			case 1782:
			case 1783:
			case 1784:
			case 1785:
			case 1786:
			case 1787:
			case 1788:
			case 1789:
			case 1790:
			case 1791:
			case 1792:
			case 1793:
			case 1794:
			case 1795:
			case 1796:
			case 1797:
			case 1798:
			case 1799:
			case 1800:
			case 1801:
			case 1802:
			case 1803:
			case 1804:
			case 1805:
			case 1806:
			case 1807:
			case 1808:
			case 1809:
			case 1810:
			case 1811:
			case 1812:
			case 1813:
			case 1814:
			case 1815:
			case 1816:
			case 1817:
			case 1818:
			case 1819:
			case 1820:
			case 1821:
			case 1822:
			case 1823:
			case 1824:
			case 1825:
			case 1826:
			case 1827:
			case 1828:
			case 1829:
			case 1830:
			case 1831:
			case 1832:
			case 1833:
			case 1834:
			case 1835:
			case 1836:
			case 1837:
			case 1838:
			case 1839:
			case 1840:
			case 1841:
			case 1842:
			case 1843:
			case 1844:
			case 1845:
			case 1846:
			case 1847:
			case 1848:
			case 1849:
			case 1850:
			case 1851:
			case 1852:
			case 1853:
			case 1854:
			case 1855:
			case 1856:
			case 1857:
			case 1858:
			case 1859:
			case 1860:
			case 1861:
			case 1862:
			case 1863:
			case 1864:
			case 1865:
			case 1866:
			case 1867:
			case 1868:
			case 1869:
			case 1870:
			case 1871:
			case 1872:
			case 1873:
			case 1874:
			case 1875:
			case 1876:
			case 1877:
			case 1878:
			case 1879:
			case 1880:
			case 1881:
			case 1882:
			case 1883:
			case 1884:
			case 1885:
			case 1886:
			case 1887:
			case 1888:
			case 1889:
			case 1890:
			case 1891:
			case 1892:
			case 1893:
			case 1894:
			case 1895:
			case 1896:
			case 1897:
			case 1898:
			case 1899:
			case 1900:
			case 1901:
			case 1902:
			case 1903:
			case 1904:
			case 1905:
			case 1906:
			case 1907:
			case 1908:
			case 1909:
			case 1910:
			case 1911:
			case 1912:
			case 1913:
			case 1914:
			case 1915:
			case 1916:
			case 1917:
			case 1918:
			case 1919:
			case 1920:
			case 1921:
			case 1922:
			case 1923:
			case 1924:
			case 1925:
			case 1926:
			case 1927:
			case 1928:
			case 1929:
			case 1930:
			case 1931:
			case 1932:
			case 1933:
			case 1934:
			case 1935:
			case 1936:
			case 1937:
			case 1939:
			case 1940:
			case 1941:
			case 1942:
			case 1943:
			case 1944:
			case 1945:
			case 1946:
			case 1947:
			case 1948:
			case 1949:
			case 1950:
			case 1951:
			case 1952:
			case 1953:
			case 1954:
			case 1955:
			case 1956:
			case 1957:
			case 1958:
			case 1959:
			case 1960:
			case 1961:
			case 1962:
			case 1963:
			case 1965:
			case 1966:
			case 1967:
			case 1968:
			case 1969:
			case 1970:
			case 1971:
			case 1972:
			case 1973:
			case 1974:
			case 1975:
			case 1976:
			case 1977:
			case 1978:
			case 1979:
			case 1980:
			case 1981:
			case 1982:
			case 1983:
			case 1984:
			case 1985:
			case 1986:
			case 1987:
			case 1988:
			case 1989:
			case 1990:
			case 1991:
			case 1992:
			case 1993:
			case 1994:
			case 1995:
			case 1996:
			case 1997:
			case 1998:
			case 1999:
			case 2000:
			case 2003:
			case 2004:
			case 2005:
			case 2006:
			case 2007:
			case 2008:
			case 2009:
			case 2010:
			case 2011:
			case 2012:
			case 2013:
			case 2014:
			case 2015:
			case 2016:
			case 2017:
			case 2018:
			case 2019:
			case 2020:
			case 2021:
			case 2022:
			case 2023:
			case 2024:
			case 2026:
			case 2027:
			case 2028:
			case 2029:
			case 2030:
			case 2031:
			case 2032:
			case 2033:
			case 2034:
			case 2035:
			case 2036:
			case 2037:
			case 2038:
			case 2039:
			case 2040:
			case 2041:
			case 2042:
			case 2043:
			case 2044:
			case 2045:
			case 2046:
			case 2047:
			case 2048:
			case 2049:
			case 2050:
			case 2051:
			case 2052:
			case 2053:
			case 2054:
			case 2055:
			case 2056:
			case 2057:
			case 2058:
			case 2059:
			case 2060:
			case 2061:
			case 2062:
			case 2063:
			case 2064:
			case 2065:
			case 2066:
			case 2067:
			case 2068:
			case 2069:
			case 2070:
			case 2071:
			case 2072:
			case 2074:
			case 2075:
			case 2076:
			case 2077:
			case 2078:
			case 2079:
			case 2080:
			case 2081:
			case 2082:
			case 2083:
			case 2084:
			case 2085:
			case 2086:
			case 2087:
			case 2088:
			case 2089:
			case 2090:
			case 2091:
			case 2092:
			case 2093:
			case 2094:
			case 2095:
			case 2096:
			case 2097:
			case 2098:
			case 2100:
			case 2101:
			case 2102:
			case 2103:
			case 2104:
			case 2105:
			case 2106:
			case 2107:
			case 2108:
			case 2109:
			case 2110:
			case 2111:
			case 2112:
			case 2113:
			case 2115:
			case 2116:
			case 2117:
			case 2118:
			case 2119:
			case 2120:
			case 2122:
			case 2123:
			case 2124:
			case 2125:
			case 2126:
			case 2128:
			case 2129:
			case 2130:
			case 2131:
			case 2132:
			case 2133:
			case 2134:
			case 2135:
			case 2136:
			case 2137:
			case 2138:
			case 2139:
			case 2140:
			case 2141:
			case 2142:
			case 2143:
			case 2145:
			case 2146:
			case 2147:
			case 2148:
			case 2149:
			case 2150:
			case 2151:
			case 2152:
			case 2153:
			case 2154:
			case 2155:
			case 2156:
			case 2157:
			case 2158:
			case 2159:
			case 2160:
			case 2161:
			case 2162:
			case 2163:
			case 2164:
			case 2165:
			case 2166:
			case 2168:
			case 2169:
			case 2170:
			case 2171:
			case 2172:
			case 2173:
			case 2174:
			case 2175:
			case 2176:
			case 2177:
			case 2178:
			case 2179:
			case 2180:
			case 2181:
			case 2182:
			case 2183:
			case 2184:
			case 2185:
			case 2186:
			case 2187:
			case 2188:
			case 2189:
			case 2191:
			case 2192:
			case 2193:
			case 2194:
			case 2195:
			case 2196:
			case 2197:
			case 2198:
			case 2199:
			case 2200:
			case 2201:
			case 2202:
			case 2203:
			case 2204:
			case 2205:
			case 2206:
			case 2207:
			case 2208:
			case 2209:
			case 2210:
			case 2211:
			case 2216:
			case 2220:
			case 2246:
			case 2252:
				{
				this.state = 9241;
				this.column_name();
				}
				break;
			case 2223:
				{
				this.state = 9242;
				this.paren_column_list();
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
			this.state = 9245;
			this.pivot_for_clause();
			this.state = 9246;
			this.unpivot_in_clause();
			this.state = 9247;
			this.match(PlSqlParser.RIGHT_PAREN);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public unpivot_in_clause(): Unpivot_in_clauseContext {
		let localctx: Unpivot_in_clauseContext = new Unpivot_in_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1100, PlSqlParser.RULE_unpivot_in_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 9249;
			this.match(PlSqlParser.IN);
			this.state = 9250;
			this.match(PlSqlParser.LEFT_PAREN);
			this.state = 9251;
			this.unpivot_in_elements();
			this.state = 9256;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			while (_la===2229) {
				{
				{
				this.state = 9252;
				this.match(PlSqlParser.COMMA);
				this.state = 9253;
				this.unpivot_in_elements();
				}
				}
				this.state = 9258;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			}
			this.state = 9259;
			this.match(PlSqlParser.RIGHT_PAREN);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public unpivot_in_elements(): Unpivot_in_elementsContext {
		let localctx: Unpivot_in_elementsContext = new Unpivot_in_elementsContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1102, PlSqlParser.RULE_unpivot_in_elements);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 9263;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 1:
			case 2:
			case 3:
			case 4:
			case 5:
			case 6:
			case 7:
			case 8:
			case 9:
			case 10:
			case 11:
			case 12:
			case 13:
			case 14:
			case 15:
			case 16:
			case 17:
			case 18:
			case 19:
			case 20:
			case 21:
			case 22:
			case 23:
			case 24:
			case 25:
			case 26:
			case 27:
			case 28:
			case 29:
			case 30:
			case 31:
			case 32:
			case 33:
			case 34:
			case 36:
			case 37:
			case 38:
			case 40:
			case 41:
			case 42:
			case 44:
			case 45:
			case 46:
			case 47:
			case 49:
			case 50:
			case 51:
			case 52:
			case 53:
			case 54:
			case 55:
			case 56:
			case 57:
			case 58:
			case 59:
			case 60:
			case 63:
			case 64:
			case 65:
			case 66:
			case 67:
			case 68:
			case 69:
			case 70:
			case 71:
			case 72:
			case 73:
			case 74:
			case 75:
			case 76:
			case 78:
			case 79:
			case 80:
			case 81:
			case 82:
			case 83:
			case 85:
			case 86:
			case 87:
			case 88:
			case 89:
			case 90:
			case 91:
			case 92:
			case 93:
			case 95:
			case 96:
			case 97:
			case 98:
			case 99:
			case 100:
			case 101:
			case 102:
			case 103:
			case 104:
			case 105:
			case 106:
			case 108:
			case 109:
			case 110:
			case 111:
			case 112:
			case 113:
			case 114:
			case 115:
			case 116:
			case 117:
			case 118:
			case 119:
			case 120:
			case 121:
			case 122:
			case 123:
			case 124:
			case 125:
			case 126:
			case 127:
			case 128:
			case 129:
			case 130:
			case 131:
			case 132:
			case 133:
			case 134:
			case 135:
			case 136:
			case 137:
			case 138:
			case 139:
			case 140:
			case 141:
			case 142:
			case 143:
			case 144:
			case 145:
			case 147:
			case 148:
			case 149:
			case 150:
			case 151:
			case 152:
			case 153:
			case 154:
			case 155:
			case 156:
			case 157:
			case 158:
			case 160:
			case 161:
			case 162:
			case 163:
			case 164:
			case 165:
			case 166:
			case 167:
			case 168:
			case 169:
			case 170:
			case 171:
			case 172:
			case 174:
			case 175:
			case 176:
			case 177:
			case 178:
			case 179:
			case 181:
			case 182:
			case 183:
			case 184:
			case 185:
			case 186:
			case 187:
			case 188:
			case 189:
			case 190:
			case 191:
			case 192:
			case 193:
			case 194:
			case 195:
			case 196:
			case 197:
			case 198:
			case 199:
			case 200:
			case 201:
			case 202:
			case 203:
			case 204:
			case 205:
			case 206:
			case 207:
			case 208:
			case 209:
			case 210:
			case 211:
			case 212:
			case 213:
			case 214:
			case 215:
			case 216:
			case 217:
			case 218:
			case 219:
			case 220:
			case 221:
			case 222:
			case 223:
			case 224:
			case 225:
			case 226:
			case 227:
			case 228:
			case 229:
			case 230:
			case 231:
			case 233:
			case 234:
			case 235:
			case 236:
			case 237:
			case 238:
			case 239:
			case 240:
			case 241:
			case 242:
			case 243:
			case 244:
			case 245:
			case 246:
			case 247:
			case 248:
			case 249:
			case 250:
			case 252:
			case 253:
			case 254:
			case 255:
			case 256:
			case 257:
			case 258:
			case 259:
			case 260:
			case 261:
			case 262:
			case 263:
			case 264:
			case 265:
			case 266:
			case 267:
			case 268:
			case 269:
			case 270:
			case 271:
			case 272:
			case 273:
			case 274:
			case 275:
			case 276:
			case 277:
			case 278:
			case 279:
			case 280:
			case 281:
			case 282:
			case 283:
			case 284:
			case 285:
			case 286:
			case 287:
			case 289:
			case 290:
			case 291:
			case 292:
			case 293:
			case 294:
			case 295:
			case 296:
			case 297:
			case 298:
			case 299:
			case 300:
			case 301:
			case 302:
			case 303:
			case 304:
			case 305:
			case 306:
			case 307:
			case 308:
			case 309:
			case 310:
			case 311:
			case 312:
			case 313:
			case 314:
			case 315:
			case 316:
			case 317:
			case 318:
			case 319:
			case 321:
			case 322:
			case 323:
			case 324:
			case 325:
			case 326:
			case 328:
			case 329:
			case 330:
			case 331:
			case 332:
			case 333:
			case 334:
			case 335:
			case 336:
			case 337:
			case 338:
			case 339:
			case 340:
			case 341:
			case 342:
			case 343:
			case 344:
			case 345:
			case 346:
			case 347:
			case 348:
			case 349:
			case 350:
			case 352:
			case 353:
			case 354:
			case 355:
			case 356:
			case 357:
			case 358:
			case 359:
			case 360:
			case 361:
			case 362:
			case 363:
			case 364:
			case 365:
			case 366:
			case 367:
			case 368:
			case 369:
			case 370:
			case 372:
			case 373:
			case 374:
			case 375:
			case 376:
			case 377:
			case 378:
			case 379:
			case 380:
			case 381:
			case 382:
			case 383:
			case 384:
			case 385:
			case 386:
			case 387:
			case 388:
			case 389:
			case 390:
			case 391:
			case 392:
			case 394:
			case 395:
			case 397:
			case 398:
			case 399:
			case 400:
			case 401:
			case 402:
			case 403:
			case 404:
			case 405:
			case 406:
			case 407:
			case 408:
			case 409:
			case 410:
			case 412:
			case 413:
			case 414:
			case 415:
			case 417:
			case 418:
			case 419:
			case 420:
			case 421:
			case 422:
			case 423:
			case 424:
			case 425:
			case 426:
			case 427:
			case 428:
			case 429:
			case 430:
			case 431:
			case 434:
			case 435:
			case 436:
			case 437:
			case 438:
			case 439:
			case 440:
			case 441:
			case 442:
			case 443:
			case 444:
			case 446:
			case 447:
			case 448:
			case 449:
			case 450:
			case 451:
			case 452:
			case 453:
			case 454:
			case 455:
			case 456:
			case 457:
			case 458:
			case 459:
			case 460:
			case 461:
			case 462:
			case 463:
			case 464:
			case 465:
			case 466:
			case 467:
			case 468:
			case 469:
			case 470:
			case 471:
			case 472:
			case 473:
			case 475:
			case 476:
			case 477:
			case 478:
			case 479:
			case 480:
			case 481:
			case 482:
			case 483:
			case 484:
			case 485:
			case 486:
			case 487:
			case 488:
			case 489:
			case 490:
			case 491:
			case 492:
			case 493:
			case 494:
			case 495:
			case 496:
			case 497:
			case 498:
			case 499:
			case 500:
			case 501:
			case 502:
			case 503:
			case 504:
			case 505:
			case 506:
			case 507:
			case 508:
			case 509:
			case 510:
			case 511:
			case 512:
			case 513:
			case 514:
			case 515:
			case 516:
			case 517:
			case 518:
			case 519:
			case 520:
			case 521:
			case 522:
			case 523:
			case 524:
			case 525:
			case 526:
			case 527:
			case 528:
			case 529:
			case 530:
			case 531:
			case 532:
			case 533:
			case 534:
			case 535:
			case 536:
			case 537:
			case 538:
			case 539:
			case 540:
			case 541:
			case 542:
			case 543:
			case 544:
			case 545:
			case 547:
			case 548:
			case 549:
			case 550:
			case 551:
			case 552:
			case 553:
			case 555:
			case 556:
			case 557:
			case 558:
			case 559:
			case 560:
			case 561:
			case 562:
			case 563:
			case 564:
			case 565:
			case 566:
			case 567:
			case 568:
			case 569:
			case 572:
			case 574:
			case 575:
			case 576:
			case 577:
			case 578:
			case 579:
			case 580:
			case 581:
			case 582:
			case 583:
			case 584:
			case 586:
			case 587:
			case 588:
			case 589:
			case 590:
			case 591:
			case 592:
			case 593:
			case 594:
			case 595:
			case 596:
			case 597:
			case 598:
			case 599:
			case 600:
			case 602:
			case 603:
			case 604:
			case 605:
			case 606:
			case 607:
			case 608:
			case 609:
			case 610:
			case 611:
			case 612:
			case 613:
			case 614:
			case 615:
			case 616:
			case 617:
			case 618:
			case 619:
			case 620:
			case 621:
			case 622:
			case 623:
			case 624:
			case 625:
			case 626:
			case 627:
			case 628:
			case 629:
			case 630:
			case 632:
			case 633:
			case 634:
			case 635:
			case 636:
			case 637:
			case 638:
			case 639:
			case 640:
			case 641:
			case 642:
			case 643:
			case 644:
			case 645:
			case 646:
			case 647:
			case 648:
			case 649:
			case 650:
			case 651:
			case 653:
			case 654:
			case 655:
			case 656:
			case 657:
			case 658:
			case 659:
			case 660:
			case 661:
			case 662:
			case 663:
			case 664:
			case 665:
			case 666:
			case 667:
			case 668:
			case 670:
			case 671:
			case 672:
			case 673:
			case 674:
			case 675:
			case 676:
			case 677:
			case 678:
			case 679:
			case 680:
			case 681:
			case 682:
			case 683:
			case 684:
			case 685:
			case 686:
			case 687:
			case 689:
			case 690:
			case 692:
			case 693:
			case 694:
			case 696:
			case 697:
			case 698:
			case 699:
			case 700:
			case 701:
			case 702:
			case 703:
			case 704:
			case 705:
			case 706:
			case 707:
			case 708:
			case 709:
			case 710:
			case 711:
			case 712:
			case 713:
			case 714:
			case 715:
			case 716:
			case 717:
			case 718:
			case 719:
			case 720:
			case 721:
			case 722:
			case 723:
			case 724:
			case 725:
			case 726:
			case 727:
			case 728:
			case 729:
			case 730:
			case 731:
			case 732:
			case 733:
			case 734:
			case 735:
			case 736:
			case 737:
			case 738:
			case 739:
			case 740:
			case 741:
			case 742:
			case 743:
			case 744:
			case 745:
			case 746:
			case 747:
			case 748:
			case 749:
			case 750:
			case 751:
			case 752:
			case 753:
			case 754:
			case 755:
			case 756:
			case 758:
			case 759:
			case 760:
			case 761:
			case 762:
			case 763:
			case 764:
			case 765:
			case 766:
			case 767:
			case 768:
			case 769:
			case 770:
			case 771:
			case 772:
			case 773:
			case 774:
			case 775:
			case 777:
			case 778:
			case 779:
			case 780:
			case 781:
			case 782:
			case 783:
			case 784:
			case 785:
			case 786:
			case 787:
			case 788:
			case 789:
			case 790:
			case 791:
			case 792:
			case 793:
			case 794:
			case 795:
			case 796:
			case 797:
			case 798:
			case 799:
			case 800:
			case 801:
			case 802:
			case 803:
			case 804:
			case 805:
			case 806:
			case 807:
			case 808:
			case 809:
			case 810:
			case 811:
			case 812:
			case 813:
			case 814:
			case 815:
			case 816:
			case 817:
			case 818:
			case 819:
			case 820:
			case 821:
			case 822:
			case 823:
			case 824:
			case 825:
			case 826:
			case 827:
			case 828:
			case 829:
			case 830:
			case 831:
			case 832:
			case 833:
			case 834:
			case 835:
			case 836:
			case 837:
			case 838:
			case 839:
			case 840:
			case 841:
			case 843:
			case 844:
			case 845:
			case 846:
			case 847:
			case 848:
			case 849:
			case 850:
			case 851:
			case 852:
			case 853:
			case 854:
			case 855:
			case 856:
			case 857:
			case 858:
			case 859:
			case 861:
			case 862:
			case 863:
			case 864:
			case 865:
			case 866:
			case 867:
			case 868:
			case 869:
			case 870:
			case 871:
			case 872:
			case 873:
			case 874:
			case 875:
			case 876:
			case 877:
			case 878:
			case 879:
			case 880:
			case 881:
			case 882:
			case 883:
			case 884:
			case 885:
			case 886:
			case 888:
			case 889:
			case 890:
			case 891:
			case 892:
			case 893:
			case 894:
			case 895:
			case 896:
			case 897:
			case 898:
			case 899:
			case 900:
			case 901:
			case 902:
			case 903:
			case 904:
			case 905:
			case 906:
			case 907:
			case 908:
			case 909:
			case 910:
			case 911:
			case 912:
			case 913:
			case 914:
			case 915:
			case 916:
			case 917:
			case 918:
			case 919:
			case 920:
			case 921:
			case 922:
			case 923:
			case 924:
			case 925:
			case 926:
			case 927:
			case 928:
			case 929:
			case 930:
			case 931:
			case 932:
			case 933:
			case 934:
			case 935:
			case 936:
			case 937:
			case 938:
			case 939:
			case 940:
			case 941:
			case 942:
			case 943:
			case 944:
			case 945:
			case 946:
			case 947:
			case 948:
			case 949:
			case 950:
			case 951:
			case 952:
			case 954:
			case 955:
			case 956:
			case 957:
			case 958:
			case 959:
			case 960:
			case 961:
			case 962:
			case 963:
			case 964:
			case 965:
			case 966:
			case 967:
			case 968:
			case 969:
			case 970:
			case 971:
			case 972:
			case 973:
			case 974:
			case 975:
			case 976:
			case 977:
			case 978:
			case 979:
			case 980:
			case 981:
			case 982:
			case 983:
			case 984:
			case 985:
			case 986:
			case 987:
			case 988:
			case 989:
			case 990:
			case 991:
			case 992:
			case 993:
			case 994:
			case 995:
			case 996:
			case 997:
			case 998:
			case 999:
			case 1000:
			case 1001:
			case 1002:
			case 1003:
			case 1004:
			case 1005:
			case 1006:
			case 1007:
			case 1008:
			case 1009:
			case 1010:
			case 1011:
			case 1012:
			case 1013:
			case 1014:
			case 1015:
			case 1016:
			case 1017:
			case 1018:
			case 1019:
			case 1020:
			case 1021:
			case 1022:
			case 1023:
			case 1024:
			case 1025:
			case 1026:
			case 1027:
			case 1028:
			case 1029:
			case 1030:
			case 1031:
			case 1032:
			case 1033:
			case 1034:
			case 1035:
			case 1036:
			case 1037:
			case 1038:
			case 1039:
			case 1040:
			case 1041:
			case 1042:
			case 1043:
			case 1044:
			case 1045:
			case 1046:
			case 1047:
			case 1048:
			case 1049:
			case 1050:
			case 1051:
			case 1052:
			case 1053:
			case 1054:
			case 1055:
			case 1056:
			case 1057:
			case 1058:
			case 1059:
			case 1060:
			case 1061:
			case 1062:
			case 1063:
			case 1064:
			case 1065:
			case 1066:
			case 1067:
			case 1068:
			case 1069:
			case 1070:
			case 1071:
			case 1072:
			case 1074:
			case 1075:
			case 1076:
			case 1077:
			case 1078:
			case 1079:
			case 1080:
			case 1081:
			case 1082:
			case 1083:
			case 1084:
			case 1085:
			case 1086:
			case 1087:
			case 1089:
			case 1090:
			case 1091:
			case 1092:
			case 1093:
			case 1094:
			case 1095:
			case 1096:
			case 1098:
			case 1099:
			case 1100:
			case 1101:
			case 1102:
			case 1103:
			case 1104:
			case 1105:
			case 1106:
			case 1107:
			case 1108:
			case 1109:
			case 1110:
			case 1111:
			case 1112:
			case 1113:
			case 1114:
			case 1116:
			case 1117:
			case 1118:
			case 1119:
			case 1120:
			case 1121:
			case 1122:
			case 1123:
			case 1124:
			case 1125:
			case 1127:
			case 1129:
			case 1130:
			case 1131:
			case 1132:
			case 1133:
			case 1134:
			case 1135:
			case 1136:
			case 1137:
			case 1138:
			case 1139:
			case 1140:
			case 1142:
			case 1143:
			case 1144:
			case 1145:
			case 1146:
			case 1147:
			case 1148:
			case 1149:
			case 1150:
			case 1151:
			case 1152:
			case 1153:
			case 1154:
			case 1155:
			case 1156:
			case 1157:
			case 1158:
			case 1159:
			case 1160:
			case 1161:
			case 1162:
			case 1163:
			case 1164:
			case 1165:
			case 1166:
			case 1167:
			case 1169:
			case 1170:
			case 1171:
			case 1173:
			case 1174:
			case 1175:
			case 1176:
			case 1177:
			case 1178:
			case 1179:
			case 1180:
			case 1181:
			case 1182:
			case 1183:
			case 1184:
			case 1185:
			case 1186:
			case 1187:
			case 1188:
			case 1189:
			case 1190:
			case 1191:
			case 1192:
			case 1193:
			case 1194:
			case 1195:
			case 1197:
			case 1198:
			case 1199:
			case 1200:
			case 1201:
			case 1202:
			case 1203:
			case 1204:
			case 1205:
			case 1206:
			case 1207:
			case 1208:
			case 1209:
			case 1210:
			case 1211:
			case 1212:
			case 1213:
			case 1214:
			case 1215:
			case 1216:
			case 1217:
			case 1218:
			case 1219:
			case 1220:
			case 1221:
			case 1222:
			case 1223:
			case 1224:
			case 1225:
			case 1226:
			case 1228:
			case 1229:
			case 1230:
			case 1231:
			case 1232:
			case 1236:
			case 1237:
			case 1241:
			case 1242:
			case 1243:
			case 1244:
			case 1245:
			case 1246:
			case 1247:
			case 1248:
			case 1249:
			case 1250:
			case 1252:
			case 1253:
			case 1254:
			case 1255:
			case 1256:
			case 1257:
			case 1258:
			case 1259:
			case 1260:
			case 1261:
			case 1262:
			case 1263:
			case 1264:
			case 1265:
			case 1266:
			case 1267:
			case 1268:
			case 1269:
			case 1270:
			case 1271:
			case 1272:
			case 1273:
			case 1274:
			case 1275:
			case 1276:
			case 1277:
			case 1278:
			case 1279:
			case 1280:
			case 1281:
			case 1282:
			case 1283:
			case 1284:
			case 1285:
			case 1286:
			case 1287:
			case 1288:
			case 1289:
			case 1290:
			case 1291:
			case 1292:
			case 1293:
			case 1294:
			case 1295:
			case 1296:
			case 1297:
			case 1298:
			case 1299:
			case 1300:
			case 1301:
			case 1302:
			case 1303:
			case 1304:
			case 1305:
			case 1306:
			case 1308:
			case 1309:
			case 1310:
			case 1311:
			case 1312:
			case 1313:
			case 1314:
			case 1315:
			case 1316:
			case 1317:
			case 1318:
			case 1319:
			case 1320:
			case 1321:
			case 1322:
			case 1323:
			case 1325:
			case 1326:
			case 1327:
			case 1328:
			case 1329:
			case 1330:
			case 1331:
			case 1332:
			case 1333:
			case 1334:
			case 1335:
			case 1336:
			case 1337:
			case 1338:
			case 1339:
			case 1340:
			case 1341:
			case 1342:
			case 1343:
			case 1344:
			case 1345:
			case 1346:
			case 1347:
			case 1348:
			case 1349:
			case 1350:
			case 1351:
			case 1352:
			case 1353:
			case 1354:
			case 1355:
			case 1356:
			case 1357:
			case 1358:
			case 1359:
			case 1360:
			case 1361:
			case 1362:
			case 1363:
			case 1364:
			case 1365:
			case 1366:
			case 1367:
			case 1368:
			case 1369:
			case 1370:
			case 1371:
			case 1372:
			case 1373:
			case 1374:
			case 1375:
			case 1376:
			case 1377:
			case 1378:
			case 1379:
			case 1380:
			case 1381:
			case 1382:
			case 1383:
			case 1384:
			case 1385:
			case 1386:
			case 1387:
			case 1388:
			case 1389:
			case 1390:
			case 1391:
			case 1392:
			case 1393:
			case 1394:
			case 1395:
			case 1396:
			case 1397:
			case 1399:
			case 1400:
			case 1401:
			case 1402:
			case 1403:
			case 1404:
			case 1405:
			case 1406:
			case 1407:
			case 1408:
			case 1409:
			case 1410:
			case 1411:
			case 1412:
			case 1413:
			case 1414:
			case 1416:
			case 1417:
			case 1418:
			case 1419:
			case 1420:
			case 1421:
			case 1422:
			case 1423:
			case 1424:
			case 1425:
			case 1426:
			case 1427:
			case 1428:
			case 1429:
			case 1430:
			case 1431:
			case 1432:
			case 1433:
			case 1435:
			case 1436:
			case 1437:
			case 1438:
			case 1439:
			case 1440:
			case 1441:
			case 1442:
			case 1443:
			case 1444:
			case 1445:
			case 1446:
			case 1447:
			case 1448:
			case 1449:
			case 1450:
			case 1451:
			case 1452:
			case 1453:
			case 1454:
			case 1455:
			case 1456:
			case 1457:
			case 1458:
			case 1459:
			case 1460:
			case 1461:
			case 1462:
			case 1463:
			case 1464:
			case 1465:
			case 1466:
			case 1467:
			case 1468:
			case 1469:
			case 1470:
			case 1471:
			case 1472:
			case 1473:
			case 1474:
			case 1475:
			case 1476:
			case 1477:
			case 1478:
			case 1479:
			case 1480:
			case 1481:
			case 1482:
			case 1483:
			case 1484:
			case 1485:
			case 1486:
			case 1487:
			case 1488:
			case 1489:
			case 1491:
			case 1492:
			case 1493:
			case 1494:
			case 1495:
			case 1496:
			case 1497:
			case 1499:
			case 1500:
			case 1501:
			case 1502:
			case 1503:
			case 1504:
			case 1505:
			case 1506:
			case 1507:
			case 1508:
			case 1509:
			case 1510:
			case 1511:
			case 1512:
			case 1513:
			case 1514:
			case 1515:
			case 1516:
			case 1518:
			case 1519:
			case 1520:
			case 1521:
			case 1522:
			case 1523:
			case 1524:
			case 1525:
			case 1526:
			case 1527:
			case 1528:
			case 1529:
			case 1530:
			case 1531:
			case 1532:
			case 1533:
			case 1534:
			case 1536:
			case 1537:
			case 1538:
			case 1539:
			case 1540:
			case 1541:
			case 1542:
			case 1543:
			case 1544:
			case 1545:
			case 1546:
			case 1547:
			case 1548:
			case 1549:
			case 1550:
			case 1551:
			case 1552:
			case 1553:
			case 1554:
			case 1555:
			case 1556:
			case 1557:
			case 1558:
			case 1559:
			case 1560:
			case 1561:
			case 1562:
			case 1563:
			case 1564:
			case 1565:
			case 1566:
			case 1567:
			case 1568:
			case 1570:
			case 1571:
			case 1572:
			case 1573:
			case 1574:
			case 1575:
			case 1576:
			case 1577:
			case 1578:
			case 1579:
			case 1580:
			case 1581:
			case 1582:
			case 1583:
			case 1584:
			case 1585:
			case 1586:
			case 1587:
			case 1588:
			case 1589:
			case 1590:
			case 1591:
			case 1592:
			case 1593:
			case 1594:
			case 1595:
			case 1596:
			case 1597:
			case 1598:
			case 1599:
			case 1600:
			case 1601:
			case 1602:
			case 1603:
			case 1604:
			case 1605:
			case 1606:
			case 1607:
			case 1608:
			case 1609:
			case 1610:
			case 1611:
			case 1612:
			case 1613:
			case 1614:
			case 1615:
			case 1616:
			case 1617:
			case 1618:
			case 1619:
			case 1620:
			case 1621:
			case 1622:
			case 1623:
			case 1624:
			case 1625:
			case 1626:
			case 1628:
			case 1629:
			case 1630:
			case 1631:
			case 1632:
			case 1633:
			case 1634:
			case 1635:
			case 1636:
			case 1637:
			case 1638:
			case 1639:
			case 1640:
			case 1641:
			case 1642:
			case 1643:
			case 1644:
			case 1645:
			case 1646:
			case 1647:
			case 1648:
			case 1649:
			case 1650:
			case 1651:
			case 1652:
			case 1653:
			case 1654:
			case 1655:
			case 1656:
			case 1657:
			case 1658:
			case 1659:
			case 1660:
			case 1661:
			case 1662:
			case 1663:
			case 1664:
			case 1665:
			case 1666:
			case 1667:
			case 1668:
			case 1669:
			case 1670:
			case 1671:
			case 1672:
			case 1673:
			case 1674:
			case 1675:
			case 1676:
			case 1677:
			case 1678:
			case 1679:
			case 1680:
			case 1681:
			case 1682:
			case 1683:
			case 1684:
			case 1685:
			case 1686:
			case 1687:
			case 1688:
			case 1689:
			case 1690:
			case 1691:
			case 1692:
			case 1693:
			case 1694:
			case 1695:
			case 1696:
			case 1697:
			case 1698:
			case 1699:
			case 1700:
			case 1701:
			case 1702:
			case 1703:
			case 1704:
			case 1705:
			case 1706:
			case 1707:
			case 1708:
			case 1709:
			case 1710:
			case 1711:
			case 1712:
			case 1713:
			case 1714:
			case 1715:
			case 1716:
			case 1717:
			case 1718:
			case 1719:
			case 1720:
			case 1721:
			case 1722:
			case 1723:
			case 1724:
			case 1725:
			case 1726:
			case 1727:
			case 1728:
			case 1729:
			case 1730:
			case 1731:
			case 1732:
			case 1733:
			case 1734:
			case 1735:
			case 1736:
			case 1737:
			case 1738:
			case 1739:
			case 1740:
			case 1741:
			case 1742:
			case 1743:
			case 1744:
			case 1745:
			case 1746:
			case 1747:
			case 1748:
			case 1749:
			case 1750:
			case 1751:
			case 1752:
			case 1753:
			case 1754:
			case 1755:
			case 1756:
			case 1757:
			case 1758:
			case 1759:
			case 1760:
			case 1761:
			case 1762:
			case 1763:
			case 1764:
			case 1765:
			case 1766:
			case 1767:
			case 1768:
			case 1769:
			case 1770:
			case 1771:
			case 1772:
			case 1773:
			case 1774:
			case 1775:
			case 1776:
			case 1777:
			case 1778:
			case 1779:
			case 1780:
			case 1781:
			case 1782:
			case 1783:
			case 1784:
			case 1785:
			case 1786:
			case 1787:
			case 1788:
			case 1789:
			case 1790:
			case 1791:
			case 1792:
			case 1793:
			case 1794:
			case 1795:
			case 1796:
			case 1797:
			case 1798:
			case 1799:
			case 1800:
			case 1801:
			case 1802:
			case 1803:
			case 1804:
			case 1805:
			case 1806:
			case 1807:
			case 1808:
			case 1809:
			case 1810:
			case 1811:
			case 1812:
			case 1813:
			case 1814:
			case 1815:
			case 1816:
			case 1817:
			case 1818:
			case 1819:
			case 1820:
			case 1821:
			case 1822:
			case 1823:
			case 1824:
			case 1825:
			case 1826:
			case 1827:
			case 1828:
			case 1829:
			case 1830:
			case 1831:
			case 1832:
			case 1833:
			case 1834:
			case 1835:
			case 1836:
			case 1837:
			case 1838:
			case 1839:
			case 1840:
			case 1841:
			case 1842:
			case 1843:
			case 1844:
			case 1845:
			case 1846:
			case 1847:
			case 1848:
			case 1849:
			case 1850:
			case 1851:
			case 1852:
			case 1853:
			case 1854:
			case 1855:
			case 1856:
			case 1857:
			case 1858:
			case 1859:
			case 1860:
			case 1861:
			case 1862:
			case 1863:
			case 1864:
			case 1865:
			case 1866:
			case 1867:
			case 1868:
			case 1869:
			case 1870:
			case 1871:
			case 1872:
			case 1873:
			case 1874:
			case 1875:
			case 1876:
			case 1877:
			case 1878:
			case 1879:
			case 1880:
			case 1881:
			case 1882:
			case 1883:
			case 1884:
			case 1885:
			case 1886:
			case 1887:
			case 1888:
			case 1889:
			case 1890:
			case 1891:
			case 1892:
			case 1893:
			case 1894:
			case 1895:
			case 1896:
			case 1897:
			case 1898:
			case 1899:
			case 1900:
			case 1901:
			case 1902:
			case 1903:
			case 1904:
			case 1905:
			case 1906:
			case 1907:
			case 1908:
			case 1909:
			case 1910:
			case 1911:
			case 1912:
			case 1913:
			case 1914:
			case 1915:
			case 1916:
			case 1917:
			case 1918:
			case 1919:
			case 1920:
			case 1921:
			case 1922:
			case 1923:
			case 1924:
			case 1925:
			case 1926:
			case 1927:
			case 1928:
			case 1929:
			case 1930:
			case 1931:
			case 1932:
			case 1933:
			case 1934:
			case 1935:
			case 1936:
			case 1937:
			case 1939:
			case 1940:
			case 1941:
			case 1942:
			case 1943:
			case 1944:
			case 1945:
			case 1946:
			case 1947:
			case 1948:
			case 1949:
			case 1950:
			case 1951:
			case 1952:
			case 1953:
			case 1954:
			case 1955:
			case 1956:
			case 1957:
			case 1958:
			case 1959:
			case 1960:
			case 1961:
			case 1962:
			case 1963:
			case 1965:
			case 1966:
			case 1967:
			case 1968:
			case 1969:
			case 1970:
			case 1971:
			case 1972:
			case 1973:
			case 1974:
			case 1975:
			case 1976:
			case 1977:
			case 1978:
			case 1979:
			case 1980:
			case 1981:
			case 1982:
			case 1983:
			case 1984:
			case 1985:
			case 1986:
			case 1987:
			case 1988:
			case 1989:
			case 1990:
			case 1991:
			case 1992:
			case 1993:
			case 1994:
			case 1995:
			case 1996:
			case 1997:
			case 1998:
			case 1999:
			case 2000:
			case 2003:
			case 2004:
			case 2005:
			case 2006:
			case 2007:
			case 2008:
			case 2009:
			case 2010:
			case 2011:
			case 2012:
			case 2013:
			case 2014:
			case 2015:
			case 2016:
			case 2017:
			case 2018:
			case 2019:
			case 2020:
			case 2021:
			case 2022:
			case 2023:
			case 2024:
			case 2026:
			case 2027:
			case 2028:
			case 2029:
			case 2030:
			case 2031:
			case 2032:
			case 2033:
			case 2034:
			case 2035:
			case 2036:
			case 2037:
			case 2038:
			case 2039:
			case 2040:
			case 2041:
			case 2042:
			case 2043:
			case 2044:
			case 2045:
			case 2046:
			case 2047:
			case 2048:
			case 2049:
			case 2050:
			case 2051:
			case 2052:
			case 2053:
			case 2054:
			case 2055:
			case 2056:
			case 2057:
			case 2058:
			case 2059:
			case 2060:
			case 2061:
			case 2062:
			case 2063:
			case 2064:
			case 2065:
			case 2066:
			case 2067:
			case 2068:
			case 2069:
			case 2070:
			case 2071:
			case 2072:
			case 2074:
			case 2075:
			case 2076:
			case 2077:
			case 2078:
			case 2079:
			case 2080:
			case 2081:
			case 2082:
			case 2083:
			case 2084:
			case 2085:
			case 2086:
			case 2087:
			case 2088:
			case 2089:
			case 2090:
			case 2091:
			case 2092:
			case 2093:
			case 2094:
			case 2095:
			case 2096:
			case 2097:
			case 2098:
			case 2100:
			case 2101:
			case 2102:
			case 2103:
			case 2104:
			case 2105:
			case 2106:
			case 2107:
			case 2108:
			case 2109:
			case 2110:
			case 2111:
			case 2112:
			case 2113:
			case 2115:
			case 2116:
			case 2117:
			case 2118:
			case 2119:
			case 2120:
			case 2122:
			case 2123:
			case 2124:
			case 2125:
			case 2126:
			case 2128:
			case 2129:
			case 2130:
			case 2131:
			case 2132:
			case 2133:
			case 2134:
			case 2135:
			case 2136:
			case 2137:
			case 2138:
			case 2139:
			case 2140:
			case 2141:
			case 2142:
			case 2143:
			case 2145:
			case 2146:
			case 2147:
			case 2148:
			case 2149:
			case 2150:
			case 2151:
			case 2152:
			case 2153:
			case 2154:
			case 2155:
			case 2156:
			case 2157:
			case 2158:
			case 2159:
			case 2160:
			case 2161:
			case 2162:
			case 2163:
			case 2164:
			case 2165:
			case 2166:
			case 2168:
			case 2169:
			case 2170:
			case 2171:
			case 2172:
			case 2173:
			case 2174:
			case 2175:
			case 2176:
			case 2177:
			case 2178:
			case 2179:
			case 2180:
			case 2181:
			case 2182:
			case 2183:
			case 2184:
			case 2185:
			case 2186:
			case 2187:
			case 2188:
			case 2189:
			case 2191:
			case 2192:
			case 2193:
			case 2194:
			case 2195:
			case 2196:
			case 2197:
			case 2198:
			case 2199:
			case 2200:
			case 2201:
			case 2202:
			case 2203:
			case 2204:
			case 2205:
			case 2206:
			case 2207:
			case 2208:
			case 2209:
			case 2210:
			case 2211:
			case 2216:
			case 2220:
			case 2246:
			case 2252:
				{
				this.state = 9261;
				this.column_name();
				}
				break;
			case 2223:
				{
				this.state = 9262;
				this.paren_column_list();
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
			this.state = 9280;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===61) {
				{
				this.state = 9265;
				this.match(PlSqlParser.AS);
				this.state = 9278;
				this._errHandler.sync(this);
				switch (this._input.LA(1)) {
				case 327:
				case 335:
				case 351:
				case 508:
				case 689:
				case 822:
				case 845:
				case 1097:
				case 1508:
				case 1933:
				case 1979:
				case 2212:
				case 2217:
				case 2218:
				case 2219:
					{
					this.state = 9266;
					this.constant();
					}
					break;
				case 2223:
					{
					this.state = 9267;
					this.match(PlSqlParser.LEFT_PAREN);
					this.state = 9268;
					this.constant();
					this.state = 9273;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
					while (_la===2229) {
						{
						{
						this.state = 9269;
						this.match(PlSqlParser.COMMA);
						this.state = 9270;
						this.constant();
						}
						}
						this.state = 9275;
						this._errHandler.sync(this);
						_la = this._input.LA(1);
					}
					this.state = 9276;
					this.match(PlSqlParser.RIGHT_PAREN);
					}
					break;
				default:
					throw new NoViableAltException(this);
				}
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public hierarchical_query_clause(): Hierarchical_query_clauseContext {
		let localctx: Hierarchical_query_clauseContext = new Hierarchical_query_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1104, PlSqlParser.RULE_hierarchical_query_clause);
		try {
			this.state = 9299;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 251:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 9282;
				this.match(PlSqlParser.CONNECT);
				this.state = 9283;
				this.match(PlSqlParser.BY);
				this.state = 9285;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 1230, this._ctx) ) {
				case 1:
					{
					this.state = 9284;
					this.match(PlSqlParser.NOCYCLE);
					}
					break;
				}
				this.state = 9287;
				this.condition();
				this.state = 9289;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 1231, this._ctx) ) {
				case 1:
					{
					this.state = 9288;
					this.start_part();
					}
					break;
				}
				}
				break;
			case 1569:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 9291;
				this.start_part();
				this.state = 9292;
				this.match(PlSqlParser.CONNECT);
				this.state = 9293;
				this.match(PlSqlParser.BY);
				this.state = 9295;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 1232, this._ctx) ) {
				case 1:
					{
					this.state = 9294;
					this.match(PlSqlParser.NOCYCLE);
					}
					break;
				}
				this.state = 9297;
				this.condition();
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public start_part(): Start_partContext {
		let localctx: Start_partContext = new Start_partContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1106, PlSqlParser.RULE_start_part);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 9301;
			this.match(PlSqlParser.START);
			this.state = 9302;
			this.match(PlSqlParser.WITH);
			this.state = 9303;
			this.condition();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public group_by_clause(): Group_by_clauseContext {
		let localctx: Group_by_clauseContext = new Group_by_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1108, PlSqlParser.RULE_group_by_clause);
		try {
			let _alt: number;
			this.state = 9331;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 573:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 9305;
				this.match(PlSqlParser.GROUP);
				this.state = 9306;
				this.match(PlSqlParser.BY);
				this.state = 9307;
				this.group_by_elements();
				this.state = 9312;
				this._errHandler.sync(this);
				_alt = this._interp.adaptivePredict(this._input, 1234, this._ctx);
				while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) {
					if (_alt === 1) {
						{
						{
						this.state = 9308;
						this.match(PlSqlParser.COMMA);
						this.state = 9309;
						this.group_by_elements();
						}
						}
					}
					this.state = 9314;
					this._errHandler.sync(this);
					_alt = this._interp.adaptivePredict(this._input, 1234, this._ctx);
				}
				this.state = 9316;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 1235, this._ctx) ) {
				case 1:
					{
					this.state = 9315;
					this.having_clause();
					}
					break;
				}
				}
				break;
			case 585:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 9318;
				this.having_clause();
				this.state = 9329;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 1237, this._ctx) ) {
				case 1:
					{
					this.state = 9319;
					this.match(PlSqlParser.GROUP);
					this.state = 9320;
					this.match(PlSqlParser.BY);
					this.state = 9321;
					this.group_by_elements();
					this.state = 9326;
					this._errHandler.sync(this);
					_alt = this._interp.adaptivePredict(this._input, 1236, this._ctx);
					while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) {
						if (_alt === 1) {
							{
							{
							this.state = 9322;
							this.match(PlSqlParser.COMMA);
							this.state = 9323;
							this.group_by_elements();
							}
							}
						}
						this.state = 9328;
						this._errHandler.sync(this);
						_alt = this._interp.adaptivePredict(this._input, 1236, this._ctx);
					}
					}
					break;
				}
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public group_by_elements(): Group_by_elementsContext {
		let localctx: Group_by_elementsContext = new Group_by_elementsContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1110, PlSqlParser.RULE_group_by_elements);
		try {
			this.state = 9336;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1239, this._ctx) ) {
			case 1:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 9333;
				this.grouping_sets_clause();
				}
				break;
			case 2:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 9334;
				this.rollup_cube_clause();
				}
				break;
			case 3:
				this.enterOuterAlt(localctx, 3);
				{
				this.state = 9335;
				this.expression();
				}
				break;
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public rollup_cube_clause(): Rollup_cube_clauseContext {
		let localctx: Rollup_cube_clauseContext = new Rollup_cube_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1112, PlSqlParser.RULE_rollup_cube_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 9338;
			_la = this._input.LA(1);
			if(!(_la===298 || _la===1443)) {
			this._errHandler.recoverInline(this);
			}
			else {
				this._errHandler.reportMatch(this);
			    this.consume();
			}
			this.state = 9339;
			this.match(PlSqlParser.LEFT_PAREN);
			this.state = 9340;
			this.grouping_sets_elements();
			this.state = 9345;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			while (_la===2229) {
				{
				{
				this.state = 9341;
				this.match(PlSqlParser.COMMA);
				this.state = 9342;
				this.grouping_sets_elements();
				}
				}
				this.state = 9347;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			}
			this.state = 9348;
			this.match(PlSqlParser.RIGHT_PAREN);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public grouping_sets_clause(): Grouping_sets_clauseContext {
		let localctx: Grouping_sets_clauseContext = new Grouping_sets_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1114, PlSqlParser.RULE_grouping_sets_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 9350;
			this.match(PlSqlParser.GROUPING);
			this.state = 9351;
			this.match(PlSqlParser.SETS);
			this.state = 9352;
			this.match(PlSqlParser.LEFT_PAREN);
			this.state = 9353;
			this.grouping_sets_elements();
			this.state = 9358;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			while (_la===2229) {
				{
				{
				this.state = 9354;
				this.match(PlSqlParser.COMMA);
				this.state = 9355;
				this.grouping_sets_elements();
				}
				}
				this.state = 9360;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			}
			this.state = 9361;
			this.match(PlSqlParser.RIGHT_PAREN);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public grouping_sets_elements(): Grouping_sets_elementsContext {
		let localctx: Grouping_sets_elementsContext = new Grouping_sets_elementsContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1116, PlSqlParser.RULE_grouping_sets_elements);
		let _la: number;
		try {
			this.state = 9370;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1243, this._ctx) ) {
			case 1:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 9363;
				this.rollup_cube_clause();
				}
				break;
			case 2:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 9364;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 9366;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & 2684352383) !== 0) || ((((_la - 64)) & ~0x1F) === 0 && ((1 << (_la - 64)) & 3220168703) !== 0) || ((((_la - 96)) & ~0x1F) === 0 && ((1 << (_la - 96)) & 4294965247) !== 0) || ((((_la - 128)) & ~0x1F) === 0 && ((1 << (_la - 128)) & 2147221503) !== 0) || ((((_la - 160)) & ~0x1F) === 0 && ((1 << (_la - 160)) & 4293910527) !== 0) || ((((_la - 192)) & ~0x1F) === 0 && ((1 << (_la - 192)) & 4294967295) !== 0) || ((((_la - 224)) & ~0x1F) === 0 && ((1 << (_la - 224)) & 4160749311) !== 0) || ((((_la - 256)) & ~0x1F) === 0 && ((1 << (_la - 256)) & 4294967295) !== 0) || ((((_la - 289)) & ~0x1F) === 0 && ((1 << (_la - 289)) & 2147483647) !== 0) || ((((_la - 321)) & ~0x1F) === 0 && ((1 << (_la - 321)) & 4294967295) !== 0) || ((((_la - 353)) & ~0x1F) === 0 && ((1 << (_la - 353)) & 4294705151) !== 0) || ((((_la - 385)) & ~0x1F) === 0 && ((1 << (_la - 385)) & 2080374527) !== 0) || ((((_la - 417)) & ~0x1F) === 0 && ((1 << (_la - 417)) & 4026433535) !== 0) || ((((_la - 449)) & ~0x1F) === 0 && ((1 << (_la - 449)) & 4261412863) !== 0) || ((((_la - 481)) & ~0x1F) === 0 && ((1 << (_la - 481)) & 4294967295) !== 0) || ((((_la - 513)) & ~0x1F) === 0 && ((1 << (_la - 513)) & 4294967295) !== 0) || ((((_la - 545)) & ~0x1F) === 0 && ((1 << (_la - 545)) & 3925868029) !== 0) || ((((_la - 577)) & ~0x1F) === 0 && ((1 << (_la - 577)) & 4278189823) !== 0) || ((((_la - 609)) & ~0x1F) === 0 && ((1 << (_la - 609)) & 4290772991) !== 0) || ((((_la - 641)) & ~0x1F) === 0 && ((1 << (_la - 641)) & 4026529791) !== 0) || ((((_la - 673)) & ~0x1F) === 0 && ((1 << (_la - 673)) & 4290478079) !== 0) || ((((_la - 705)) & ~0x1F) === 0 && ((1 << (_la - 705)) & 4294967295) !== 0) || ((((_la - 737)) & ~0x1F) === 0 && ((1 << (_la - 737)) & 4293918719) !== 0) || ((((_la - 769)) & ~0x1F) === 0 && ((1 << (_la - 769)) & 4294967167) !== 0) || ((((_la - 801)) & ~0x1F) === 0 && ((1 << (_la - 801)) & 4294967295) !== 0) || ((((_la - 833)) & ~0x1F) === 0 && ((1 << (_la - 833)) & 4160749055) !== 0) || ((((_la - 865)) & ~0x1F) === 0 && ((1 << (_la - 865)) & 4290772991) !== 0) || ((((_la - 897)) & ~0x1F) === 0 && ((1 << (_la - 897)) & 4294967295) !== 0) || ((((_la - 929)) & ~0x1F) === 0 && ((1 << (_la - 929)) & 4278190079) !== 0) || ((((_la - 961)) & ~0x1F) === 0 && ((1 << (_la - 961)) & 4294967295) !== 0) || ((((_la - 993)) & ~0x1F) === 0 && ((1 << (_la - 993)) & 4294967295) !== 0) || ((((_la - 1025)) & ~0x1F) === 0 && ((1 << (_la - 1025)) & 4294967295) !== 0) || ((((_la - 1057)) & ~0x1F) === 0 && ((1 << (_la - 1057)) & 2147483647) !== 0) || ((((_la - 1089)) & ~0x1F) === 0 && ((1 << (_la - 1089)) & 4227858431) !== 0) || ((((_la - 1121)) & ~0x1F) === 0 && ((1 << (_la - 1121)) & 4293918559) !== 0) || ((((_la - 1153)) & ~0x1F) === 0 && ((1 << (_la - 1153)) & 4294410239) !== 0) || ((((_la - 1185)) & ~0x1F) === 0 && ((1 << (_la - 1185)) & 4294965247) !== 0) || ((((_la - 1217)) & ~0x1F) === 0 && ((1 << (_la - 1217)) & 4279827455) !== 0) || ((((_la - 1249)) & ~0x1F) === 0 && ((1 << (_la - 1249)) & 4294967291) !== 0) || ((((_la - 1281)) & ~0x1F) === 0 && ((1 << (_la - 1281)) & 4294967295) !== 0) || ((((_la - 1313)) & ~0x1F) === 0 && ((1 << (_la - 1313)) & 4294965247) !== 0) || ((((_la - 1345)) & ~0x1F) === 0 && ((1 << (_la - 1345)) & 4294967295) !== 0) || ((((_la - 1377)) & ~0x1F) === 0 && ((1 << (_la - 1377)) & 4292870143) !== 0) || ((((_la - 1409)) & ~0x1F) === 0 && ((1 << (_la - 1409)) & 4261412799) !== 0) || ((((_la - 1441)) & ~0x1F) === 0 && ((1 << (_la - 1441)) & 4294967295) !== 0) || ((((_la - 1473)) & ~0x1F) === 0 && ((1 << (_la - 1473)) & 4261281791) !== 0) || ((((_la - 1505)) & ~0x1F) === 0 && ((1 << (_la - 1505)) & 3221221375) !== 0) || ((((_la - 1537)) & ~0x1F) === 0 && ((1 << (_la - 1537)) & 4294967295) !== 0) || ((((_la - 1570)) & ~0x1F) === 0 && ((1 << (_la - 1570)) & 4294967295) !== 0) || ((((_la - 1602)) & ~0x1F) === 0 && ((1 << (_la - 1602)) & 4261412863) !== 0) || ((((_la - 1634)) & ~0x1F) === 0 && ((1 << (_la - 1634)) & 4294967295) !== 0) || ((((_la - 1666)) & ~0x1F) === 0 && ((1 << (_la - 1666)) & 4294967295) !== 0) || ((((_la - 1698)) & ~0x1F) === 0 && ((1 << (_la - 1698)) & 4294967295) !== 0) || ((((_la - 1730)) & ~0x1F) === 0 && ((1 << (_la - 1730)) & 4294967295) !== 0) || ((((_la - 1762)) & ~0x1F) === 0 && ((1 << (_la - 1762)) & 4294967295) !== 0) || ((((_la - 1794)) & ~0x1F) === 0 && ((1 << (_la - 1794)) & 4294967295) !== 0) || ((((_la - 1826)) & ~0x1F) === 0 && ((1 << (_la - 1826)) & 4294967295) !== 0) || ((((_la - 1858)) & ~0x1F) === 0 && ((1 << (_la - 1858)) & 4294967295) !== 0) || ((((_la - 1890)) & ~0x1F) === 0 && ((1 << (_la - 1890)) & 4294967295) !== 0) || ((((_la - 1922)) & ~0x1F) === 0 && ((1 << (_la - 1922)) & 4294901759) !== 0) || ((((_la - 1954)) & ~0x1F) === 0 && ((1 << (_la - 1954)) & 4294966271) !== 0) || ((((_la - 1986)) & ~0x1F) === 0 && ((1 << (_la - 1986)) & 4294868991) !== 0) || ((((_la - 2018)) & ~0x1F) === 0 && ((1 << (_la - 2018)) & 4294967167) !== 0) || ((((_la - 2050)) & ~0x1F) === 0 && ((1 << (_la - 2050)) & 4286578687) !== 0) || ((((_la - 2082)) & ~0x1F) === 0 && ((1 << (_la - 2082)) & 4294836223) !== 0) || ((((_la - 2115)) & ~0x1F) === 0 && ((1 << (_la - 2115)) & 3758092223) !== 0) || ((((_la - 2147)) & ~0x1F) === 0 && ((1 << (_la - 2147)) & 4293918719) !== 0) || ((((_la - 2179)) & ~0x1F) === 0 && ((1 << (_la - 2179)) & 4294967295) !== 0) || ((((_la - 2211)) & ~0x1F) === 0 && ((1 << (_la - 2211)) & 541266915) !== 0) || _la===2246 || _la===2252) {
					{
					this.state = 9365;
					this.expressions();
					}
				}

				this.state = 9368;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
				break;
			case 3:
				this.enterOuterAlt(localctx, 3);
				{
				this.state = 9369;
				this.expression();
				}
				break;
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public having_clause(): Having_clauseContext {
		let localctx: Having_clauseContext = new Having_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1118, PlSqlParser.RULE_having_clause);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 9372;
			this.match(PlSqlParser.HAVING);
			this.state = 9373;
			this.condition();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public model_clause(): Model_clauseContext {
		let localctx: Model_clauseContext = new Model_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1120, PlSqlParser.RULE_model_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 9375;
			this.match(PlSqlParser.MODEL);
			this.state = 9379;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			while (_la===608 || _la===720 || _la===2002) {
				{
				{
				this.state = 9376;
				this.cell_reference_options();
				}
				}
				this.state = 9381;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			}
			this.state = 9383;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1431) {
				{
				this.state = 9382;
				this.return_rows_clause();
				}
			}

			this.state = 9388;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			while (_la===1373) {
				{
				{
				this.state = 9385;
				this.reference_model();
				}
				}
				this.state = 9390;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			}
			this.state = 9391;
			this.main_model();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public cell_reference_options(): Cell_reference_optionsContext {
		let localctx: Cell_reference_optionsContext = new Cell_reference_optionsContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1122, PlSqlParser.RULE_cell_reference_options);
		let _la: number;
		try {
			this.state = 9401;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 608:
			case 720:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 9393;
				_la = this._input.LA(1);
				if(!(_la===608 || _la===720)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				this.state = 9394;
				this.match(PlSqlParser.NAV);
				}
				break;
			case 2002:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 9395;
				this.match(PlSqlParser.UNIQUE);
				this.state = 9399;
				this._errHandler.sync(this);
				switch (this._input.LA(1)) {
				case 377:
					{
					this.state = 9396;
					this.match(PlSqlParser.DIMENSION);
					}
					break;
				case 1531:
					{
					this.state = 9397;
					this.match(PlSqlParser.SINGLE);
					this.state = 9398;
					this.match(PlSqlParser.REFERENCE);
					}
					break;
				default:
					throw new NoViableAltException(this);
				}
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public return_rows_clause(): Return_rows_clauseContext {
		let localctx: Return_rows_clauseContext = new Return_rows_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1124, PlSqlParser.RULE_return_rows_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 9403;
			this.match(PlSqlParser.RETURN);
			this.state = 9404;
			_la = this._input.LA(1);
			if(!(_la===35 || _la===2024)) {
			this._errHandler.recoverInline(this);
			}
			else {
				this._errHandler.reportMatch(this);
			    this.consume();
			}
			this.state = 9405;
			this.match(PlSqlParser.ROWS);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public reference_model(): Reference_modelContext {
		let localctx: Reference_modelContext = new Reference_modelContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1126, PlSqlParser.RULE_reference_model);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 9407;
			this.match(PlSqlParser.REFERENCE);
			this.state = 9408;
			this.reference_model_name();
			this.state = 9409;
			this.match(PlSqlParser.ON);
			this.state = 9410;
			this.match(PlSqlParser.LEFT_PAREN);
			this.state = 9411;
			this.subquery();
			this.state = 9412;
			this.match(PlSqlParser.RIGHT_PAREN);
			this.state = 9413;
			this.model_column_clauses();
			this.state = 9417;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			while (_la===608 || _la===720 || _la===2002) {
				{
				{
				this.state = 9414;
				this.cell_reference_options();
				}
				}
				this.state = 9419;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public main_model(): Main_modelContext {
		let localctx: Main_modelContext = new Main_modelContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1128, PlSqlParser.RULE_main_model);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 9422;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===794) {
				{
				this.state = 9420;
				this.match(PlSqlParser.MAIN);
				this.state = 9421;
				this.main_model_name();
				}
			}

			this.state = 9424;
			this.model_column_clauses();
			this.state = 9428;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			while (_la===608 || _la===720 || _la===2002) {
				{
				{
				this.state = 9425;
				this.cell_reference_options();
				}
				}
				this.state = 9430;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			}
			this.state = 9431;
			this.model_rules_clause();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public model_column_clauses(): Model_column_clausesContext {
		let localctx: Model_column_clausesContext = new Model_column_clausesContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1130, PlSqlParser.RULE_model_column_clauses);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 9434;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1207) {
				{
				this.state = 9433;
				this.model_column_partition_part();
				}
			}

			this.state = 9436;
			this.match(PlSqlParser.DIMENSION);
			this.state = 9437;
			this.match(PlSqlParser.BY);
			this.state = 9438;
			this.model_column_list();
			this.state = 9439;
			this.match(PlSqlParser.MEASURES);
			this.state = 9440;
			this.model_column_list();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public model_column_partition_part(): Model_column_partition_partContext {
		let localctx: Model_column_partition_partContext = new Model_column_partition_partContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1132, PlSqlParser.RULE_model_column_partition_part);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 9442;
			this.match(PlSqlParser.PARTITION);
			this.state = 9443;
			this.match(PlSqlParser.BY);
			this.state = 9444;
			this.model_column_list();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public model_column_list(): Model_column_listContext {
		let localctx: Model_column_listContext = new Model_column_listContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1134, PlSqlParser.RULE_model_column_list);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 9446;
			this.match(PlSqlParser.LEFT_PAREN);
			this.state = 9447;
			this.model_column();
			this.state = 9452;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			while (_la===2229) {
				{
				{
				this.state = 9448;
				this.match(PlSqlParser.COMMA);
				this.state = 9449;
				this.model_column();
				}
				}
				this.state = 9454;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			}
			this.state = 9455;
			this.match(PlSqlParser.RIGHT_PAREN);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public model_column(): Model_columnContext {
		let localctx: Model_columnContext = new Model_columnContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1136, PlSqlParser.RULE_model_column);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 9459;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 1:
			case 2:
			case 3:
			case 4:
			case 5:
			case 6:
			case 7:
			case 8:
			case 9:
			case 10:
			case 11:
			case 12:
			case 13:
			case 14:
			case 15:
			case 16:
			case 17:
			case 18:
			case 19:
			case 20:
			case 21:
			case 22:
			case 23:
			case 24:
			case 25:
			case 26:
			case 27:
			case 28:
			case 29:
			case 30:
			case 31:
			case 32:
			case 33:
			case 34:
			case 35:
			case 36:
			case 37:
			case 38:
			case 40:
			case 41:
			case 42:
			case 44:
			case 45:
			case 46:
			case 47:
			case 48:
			case 49:
			case 50:
			case 51:
			case 52:
			case 53:
			case 54:
			case 55:
			case 56:
			case 57:
			case 58:
			case 59:
			case 60:
			case 63:
			case 64:
			case 65:
			case 66:
			case 67:
			case 68:
			case 69:
			case 70:
			case 71:
			case 72:
			case 73:
			case 74:
			case 75:
			case 76:
			case 78:
			case 79:
			case 80:
			case 81:
			case 82:
			case 83:
			case 85:
			case 86:
			case 87:
			case 88:
			case 89:
			case 90:
			case 91:
			case 92:
			case 93:
			case 95:
			case 96:
			case 97:
			case 98:
			case 99:
			case 100:
			case 101:
			case 102:
			case 103:
			case 104:
			case 105:
			case 106:
			case 108:
			case 109:
			case 110:
			case 111:
			case 112:
			case 113:
			case 114:
			case 115:
			case 116:
			case 117:
			case 118:
			case 119:
			case 120:
			case 121:
			case 122:
			case 123:
			case 124:
			case 125:
			case 126:
			case 127:
			case 128:
			case 129:
			case 130:
			case 131:
			case 132:
			case 133:
			case 134:
			case 135:
			case 136:
			case 137:
			case 138:
			case 139:
			case 140:
			case 141:
			case 142:
			case 143:
			case 144:
			case 145:
			case 147:
			case 148:
			case 149:
			case 150:
			case 151:
			case 152:
			case 153:
			case 154:
			case 155:
			case 156:
			case 157:
			case 158:
			case 160:
			case 161:
			case 162:
			case 163:
			case 164:
			case 165:
			case 166:
			case 167:
			case 168:
			case 169:
			case 170:
			case 171:
			case 172:
			case 174:
			case 175:
			case 176:
			case 177:
			case 178:
			case 179:
			case 181:
			case 182:
			case 183:
			case 184:
			case 185:
			case 186:
			case 187:
			case 188:
			case 189:
			case 190:
			case 191:
			case 192:
			case 193:
			case 194:
			case 195:
			case 196:
			case 197:
			case 198:
			case 199:
			case 200:
			case 201:
			case 202:
			case 203:
			case 204:
			case 205:
			case 206:
			case 207:
			case 208:
			case 209:
			case 210:
			case 211:
			case 212:
			case 213:
			case 214:
			case 215:
			case 216:
			case 217:
			case 218:
			case 219:
			case 220:
			case 221:
			case 222:
			case 223:
			case 224:
			case 225:
			case 226:
			case 227:
			case 228:
			case 229:
			case 230:
			case 231:
			case 233:
			case 234:
			case 235:
			case 236:
			case 237:
			case 238:
			case 239:
			case 240:
			case 241:
			case 242:
			case 243:
			case 244:
			case 245:
			case 246:
			case 247:
			case 248:
			case 249:
			case 250:
			case 252:
			case 253:
			case 254:
			case 255:
			case 256:
			case 257:
			case 258:
			case 259:
			case 260:
			case 261:
			case 262:
			case 263:
			case 264:
			case 265:
			case 266:
			case 267:
			case 268:
			case 269:
			case 270:
			case 271:
			case 272:
			case 273:
			case 274:
			case 275:
			case 276:
			case 277:
			case 278:
			case 279:
			case 280:
			case 281:
			case 282:
			case 283:
			case 284:
			case 285:
			case 286:
			case 287:
			case 289:
			case 290:
			case 291:
			case 292:
			case 293:
			case 294:
			case 295:
			case 296:
			case 297:
			case 298:
			case 299:
			case 300:
			case 301:
			case 302:
			case 303:
			case 304:
			case 305:
			case 306:
			case 307:
			case 308:
			case 309:
			case 310:
			case 311:
			case 312:
			case 313:
			case 314:
			case 315:
			case 316:
			case 317:
			case 318:
			case 319:
			case 321:
			case 322:
			case 323:
			case 324:
			case 325:
			case 326:
			case 327:
			case 328:
			case 329:
			case 330:
			case 331:
			case 332:
			case 333:
			case 334:
			case 335:
			case 336:
			case 337:
			case 338:
			case 339:
			case 340:
			case 341:
			case 342:
			case 343:
			case 344:
			case 345:
			case 346:
			case 347:
			case 348:
			case 349:
			case 350:
			case 351:
			case 352:
			case 353:
			case 354:
			case 355:
			case 356:
			case 357:
			case 358:
			case 359:
			case 360:
			case 361:
			case 362:
			case 363:
			case 364:
			case 365:
			case 366:
			case 367:
			case 368:
			case 369:
			case 370:
			case 372:
			case 373:
			case 374:
			case 375:
			case 376:
			case 377:
			case 378:
			case 379:
			case 380:
			case 381:
			case 382:
			case 383:
			case 384:
			case 385:
			case 386:
			case 387:
			case 388:
			case 389:
			case 390:
			case 391:
			case 392:
			case 394:
			case 395:
			case 396:
			case 397:
			case 398:
			case 399:
			case 400:
			case 401:
			case 402:
			case 403:
			case 404:
			case 405:
			case 406:
			case 407:
			case 408:
			case 409:
			case 410:
			case 412:
			case 413:
			case 414:
			case 415:
			case 417:
			case 418:
			case 419:
			case 420:
			case 421:
			case 422:
			case 423:
			case 424:
			case 425:
			case 426:
			case 427:
			case 428:
			case 429:
			case 430:
			case 431:
			case 434:
			case 435:
			case 436:
			case 437:
			case 438:
			case 439:
			case 440:
			case 441:
			case 442:
			case 443:
			case 444:
			case 446:
			case 447:
			case 448:
			case 449:
			case 450:
			case 451:
			case 452:
			case 453:
			case 454:
			case 455:
			case 456:
			case 457:
			case 458:
			case 459:
			case 460:
			case 461:
			case 462:
			case 463:
			case 464:
			case 465:
			case 466:
			case 467:
			case 468:
			case 469:
			case 470:
			case 471:
			case 472:
			case 473:
			case 475:
			case 476:
			case 477:
			case 478:
			case 479:
			case 480:
			case 481:
			case 482:
			case 483:
			case 484:
			case 485:
			case 486:
			case 487:
			case 488:
			case 489:
			case 490:
			case 491:
			case 492:
			case 493:
			case 494:
			case 495:
			case 496:
			case 497:
			case 498:
			case 499:
			case 500:
			case 501:
			case 502:
			case 503:
			case 504:
			case 505:
			case 506:
			case 507:
			case 508:
			case 509:
			case 510:
			case 511:
			case 512:
			case 513:
			case 514:
			case 515:
			case 516:
			case 517:
			case 518:
			case 519:
			case 520:
			case 521:
			case 522:
			case 523:
			case 524:
			case 525:
			case 526:
			case 527:
			case 528:
			case 529:
			case 530:
			case 531:
			case 532:
			case 533:
			case 534:
			case 535:
			case 536:
			case 537:
			case 538:
			case 539:
			case 540:
			case 541:
			case 542:
			case 543:
			case 544:
			case 545:
			case 547:
			case 548:
			case 549:
			case 550:
			case 551:
			case 552:
			case 553:
			case 555:
			case 556:
			case 557:
			case 558:
			case 559:
			case 560:
			case 561:
			case 562:
			case 563:
			case 564:
			case 565:
			case 566:
			case 567:
			case 568:
			case 569:
			case 572:
			case 574:
			case 575:
			case 576:
			case 577:
			case 578:
			case 579:
			case 580:
			case 581:
			case 582:
			case 583:
			case 584:
			case 586:
			case 587:
			case 588:
			case 589:
			case 590:
			case 591:
			case 592:
			case 593:
			case 594:
			case 595:
			case 596:
			case 597:
			case 598:
			case 599:
			case 600:
			case 602:
			case 603:
			case 604:
			case 605:
			case 606:
			case 607:
			case 608:
			case 609:
			case 610:
			case 611:
			case 612:
			case 613:
			case 614:
			case 615:
			case 616:
			case 617:
			case 618:
			case 619:
			case 620:
			case 621:
			case 622:
			case 623:
			case 624:
			case 625:
			case 626:
			case 627:
			case 628:
			case 629:
			case 630:
			case 632:
			case 633:
			case 634:
			case 635:
			case 636:
			case 637:
			case 638:
			case 639:
			case 640:
			case 641:
			case 642:
			case 643:
			case 644:
			case 645:
			case 646:
			case 647:
			case 648:
			case 649:
			case 650:
			case 651:
			case 653:
			case 654:
			case 655:
			case 656:
			case 657:
			case 658:
			case 659:
			case 660:
			case 661:
			case 662:
			case 663:
			case 664:
			case 665:
			case 666:
			case 667:
			case 668:
			case 670:
			case 671:
			case 672:
			case 673:
			case 674:
			case 675:
			case 676:
			case 677:
			case 678:
			case 679:
			case 680:
			case 681:
			case 682:
			case 683:
			case 684:
			case 685:
			case 686:
			case 687:
			case 689:
			case 690:
			case 692:
			case 693:
			case 694:
			case 696:
			case 697:
			case 698:
			case 699:
			case 700:
			case 701:
			case 702:
			case 703:
			case 704:
			case 705:
			case 706:
			case 707:
			case 708:
			case 709:
			case 710:
			case 711:
			case 712:
			case 713:
			case 714:
			case 715:
			case 716:
			case 717:
			case 718:
			case 719:
			case 720:
			case 721:
			case 722:
			case 723:
			case 724:
			case 725:
			case 726:
			case 727:
			case 728:
			case 729:
			case 730:
			case 731:
			case 732:
			case 733:
			case 734:
			case 735:
			case 736:
			case 737:
			case 738:
			case 739:
			case 740:
			case 741:
			case 742:
			case 743:
			case 744:
			case 745:
			case 746:
			case 747:
			case 748:
			case 749:
			case 750:
			case 751:
			case 752:
			case 753:
			case 754:
			case 755:
			case 756:
			case 758:
			case 759:
			case 760:
			case 761:
			case 762:
			case 763:
			case 764:
			case 765:
			case 766:
			case 767:
			case 768:
			case 769:
			case 770:
			case 771:
			case 772:
			case 773:
			case 774:
			case 775:
			case 777:
			case 778:
			case 779:
			case 780:
			case 781:
			case 782:
			case 783:
			case 784:
			case 785:
			case 786:
			case 787:
			case 788:
			case 789:
			case 790:
			case 791:
			case 792:
			case 793:
			case 794:
			case 795:
			case 796:
			case 797:
			case 798:
			case 799:
			case 800:
			case 801:
			case 802:
			case 803:
			case 804:
			case 805:
			case 806:
			case 807:
			case 808:
			case 809:
			case 810:
			case 811:
			case 812:
			case 813:
			case 814:
			case 815:
			case 816:
			case 817:
			case 818:
			case 819:
			case 820:
			case 821:
			case 822:
			case 823:
			case 824:
			case 825:
			case 826:
			case 827:
			case 828:
			case 829:
			case 830:
			case 831:
			case 832:
			case 833:
			case 834:
			case 835:
			case 836:
			case 837:
			case 838:
			case 839:
			case 840:
			case 841:
			case 843:
			case 844:
			case 845:
			case 846:
			case 847:
			case 848:
			case 849:
			case 850:
			case 851:
			case 852:
			case 853:
			case 854:
			case 855:
			case 856:
			case 857:
			case 858:
			case 859:
			case 861:
			case 862:
			case 863:
			case 864:
			case 865:
			case 866:
			case 867:
			case 868:
			case 869:
			case 870:
			case 871:
			case 872:
			case 873:
			case 874:
			case 875:
			case 876:
			case 877:
			case 878:
			case 879:
			case 880:
			case 881:
			case 882:
			case 883:
			case 884:
			case 885:
			case 886:
			case 888:
			case 889:
			case 890:
			case 891:
			case 892:
			case 893:
			case 894:
			case 895:
			case 896:
			case 897:
			case 898:
			case 899:
			case 900:
			case 901:
			case 902:
			case 903:
			case 904:
			case 905:
			case 906:
			case 907:
			case 908:
			case 909:
			case 910:
			case 911:
			case 912:
			case 913:
			case 914:
			case 915:
			case 916:
			case 917:
			case 918:
			case 919:
			case 920:
			case 921:
			case 922:
			case 923:
			case 924:
			case 925:
			case 926:
			case 927:
			case 928:
			case 929:
			case 930:
			case 931:
			case 932:
			case 933:
			case 934:
			case 935:
			case 936:
			case 937:
			case 938:
			case 939:
			case 940:
			case 941:
			case 942:
			case 943:
			case 944:
			case 945:
			case 946:
			case 947:
			case 948:
			case 949:
			case 950:
			case 951:
			case 952:
			case 954:
			case 955:
			case 956:
			case 957:
			case 958:
			case 959:
			case 960:
			case 961:
			case 962:
			case 963:
			case 964:
			case 965:
			case 966:
			case 967:
			case 968:
			case 969:
			case 970:
			case 971:
			case 972:
			case 973:
			case 974:
			case 975:
			case 976:
			case 977:
			case 978:
			case 979:
			case 980:
			case 981:
			case 982:
			case 983:
			case 984:
			case 985:
			case 986:
			case 987:
			case 988:
			case 989:
			case 990:
			case 991:
			case 992:
			case 993:
			case 994:
			case 995:
			case 996:
			case 997:
			case 998:
			case 999:
			case 1000:
			case 1001:
			case 1002:
			case 1003:
			case 1004:
			case 1005:
			case 1006:
			case 1007:
			case 1008:
			case 1009:
			case 1010:
			case 1011:
			case 1012:
			case 1013:
			case 1014:
			case 1015:
			case 1016:
			case 1017:
			case 1018:
			case 1019:
			case 1020:
			case 1021:
			case 1022:
			case 1023:
			case 1024:
			case 1025:
			case 1026:
			case 1027:
			case 1028:
			case 1029:
			case 1030:
			case 1031:
			case 1032:
			case 1033:
			case 1034:
			case 1035:
			case 1036:
			case 1037:
			case 1038:
			case 1039:
			case 1040:
			case 1041:
			case 1042:
			case 1043:
			case 1044:
			case 1045:
			case 1046:
			case 1047:
			case 1048:
			case 1049:
			case 1050:
			case 1051:
			case 1052:
			case 1053:
			case 1054:
			case 1055:
			case 1056:
			case 1057:
			case 1058:
			case 1059:
			case 1060:
			case 1061:
			case 1062:
			case 1063:
			case 1064:
			case 1065:
			case 1066:
			case 1067:
			case 1068:
			case 1069:
			case 1070:
			case 1071:
			case 1072:
			case 1073:
			case 1074:
			case 1075:
			case 1076:
			case 1077:
			case 1078:
			case 1079:
			case 1080:
			case 1081:
			case 1082:
			case 1083:
			case 1084:
			case 1085:
			case 1086:
			case 1087:
			case 1089:
			case 1090:
			case 1091:
			case 1092:
			case 1093:
			case 1094:
			case 1095:
			case 1096:
			case 1097:
			case 1098:
			case 1099:
			case 1100:
			case 1101:
			case 1102:
			case 1103:
			case 1104:
			case 1105:
			case 1106:
			case 1107:
			case 1108:
			case 1109:
			case 1110:
			case 1111:
			case 1112:
			case 1113:
			case 1114:
			case 1116:
			case 1117:
			case 1118:
			case 1119:
			case 1120:
			case 1121:
			case 1122:
			case 1123:
			case 1124:
			case 1125:
			case 1127:
			case 1129:
			case 1130:
			case 1131:
			case 1132:
			case 1133:
			case 1134:
			case 1135:
			case 1136:
			case 1137:
			case 1138:
			case 1139:
			case 1140:
			case 1142:
			case 1143:
			case 1144:
			case 1145:
			case 1146:
			case 1147:
			case 1148:
			case 1149:
			case 1150:
			case 1151:
			case 1152:
			case 1153:
			case 1154:
			case 1155:
			case 1156:
			case 1157:
			case 1158:
			case 1159:
			case 1160:
			case 1161:
			case 1162:
			case 1163:
			case 1164:
			case 1165:
			case 1166:
			case 1167:
			case 1169:
			case 1170:
			case 1171:
			case 1173:
			case 1174:
			case 1175:
			case 1176:
			case 1177:
			case 1178:
			case 1179:
			case 1180:
			case 1181:
			case 1182:
			case 1183:
			case 1184:
			case 1185:
			case 1186:
			case 1187:
			case 1188:
			case 1189:
			case 1190:
			case 1191:
			case 1192:
			case 1193:
			case 1194:
			case 1195:
			case 1197:
			case 1198:
			case 1199:
			case 1200:
			case 1201:
			case 1202:
			case 1203:
			case 1204:
			case 1205:
			case 1206:
			case 1207:
			case 1208:
			case 1209:
			case 1210:
			case 1211:
			case 1212:
			case 1213:
			case 1214:
			case 1215:
			case 1216:
			case 1217:
			case 1218:
			case 1219:
			case 1220:
			case 1221:
			case 1222:
			case 1223:
			case 1224:
			case 1225:
			case 1226:
			case 1228:
			case 1229:
			case 1230:
			case 1231:
			case 1232:
			case 1236:
			case 1237:
			case 1241:
			case 1242:
			case 1243:
			case 1244:
			case 1245:
			case 1246:
			case 1247:
			case 1248:
			case 1249:
			case 1250:
			case 1252:
			case 1253:
			case 1254:
			case 1255:
			case 1256:
			case 1257:
			case 1258:
			case 1259:
			case 1260:
			case 1261:
			case 1262:
			case 1263:
			case 1264:
			case 1265:
			case 1266:
			case 1267:
			case 1268:
			case 1269:
			case 1270:
			case 1271:
			case 1272:
			case 1273:
			case 1274:
			case 1275:
			case 1276:
			case 1277:
			case 1278:
			case 1279:
			case 1280:
			case 1281:
			case 1282:
			case 1283:
			case 1284:
			case 1285:
			case 1286:
			case 1287:
			case 1288:
			case 1289:
			case 1290:
			case 1291:
			case 1292:
			case 1293:
			case 1294:
			case 1295:
			case 1296:
			case 1297:
			case 1298:
			case 1299:
			case 1300:
			case 1301:
			case 1302:
			case 1303:
			case 1304:
			case 1305:
			case 1306:
			case 1307:
			case 1308:
			case 1309:
			case 1310:
			case 1311:
			case 1312:
			case 1313:
			case 1314:
			case 1315:
			case 1316:
			case 1317:
			case 1318:
			case 1319:
			case 1320:
			case 1321:
			case 1322:
			case 1323:
			case 1325:
			case 1326:
			case 1327:
			case 1328:
			case 1329:
			case 1330:
			case 1331:
			case 1332:
			case 1333:
			case 1334:
			case 1335:
			case 1336:
			case 1337:
			case 1338:
			case 1339:
			case 1340:
			case 1341:
			case 1342:
			case 1343:
			case 1344:
			case 1345:
			case 1346:
			case 1347:
			case 1348:
			case 1349:
			case 1350:
			case 1351:
			case 1352:
			case 1353:
			case 1354:
			case 1355:
			case 1356:
			case 1357:
			case 1358:
			case 1359:
			case 1360:
			case 1361:
			case 1362:
			case 1363:
			case 1364:
			case 1365:
			case 1366:
			case 1367:
			case 1368:
			case 1369:
			case 1370:
			case 1371:
			case 1372:
			case 1373:
			case 1374:
			case 1375:
			case 1376:
			case 1377:
			case 1378:
			case 1379:
			case 1380:
			case 1381:
			case 1382:
			case 1383:
			case 1384:
			case 1385:
			case 1386:
			case 1387:
			case 1388:
			case 1389:
			case 1390:
			case 1391:
			case 1392:
			case 1393:
			case 1394:
			case 1395:
			case 1396:
			case 1397:
			case 1399:
			case 1400:
			case 1401:
			case 1402:
			case 1403:
			case 1404:
			case 1405:
			case 1406:
			case 1407:
			case 1408:
			case 1409:
			case 1410:
			case 1411:
			case 1412:
			case 1413:
			case 1414:
			case 1416:
			case 1417:
			case 1418:
			case 1419:
			case 1420:
			case 1421:
			case 1422:
			case 1423:
			case 1424:
			case 1425:
			case 1426:
			case 1427:
			case 1428:
			case 1429:
			case 1430:
			case 1431:
			case 1432:
			case 1433:
			case 1435:
			case 1436:
			case 1437:
			case 1438:
			case 1439:
			case 1440:
			case 1441:
			case 1442:
			case 1443:
			case 1444:
			case 1445:
			case 1446:
			case 1447:
			case 1448:
			case 1449:
			case 1450:
			case 1451:
			case 1452:
			case 1453:
			case 1454:
			case 1455:
			case 1456:
			case 1457:
			case 1458:
			case 1459:
			case 1460:
			case 1461:
			case 1462:
			case 1463:
			case 1464:
			case 1465:
			case 1466:
			case 1467:
			case 1468:
			case 1469:
			case 1470:
			case 1471:
			case 1472:
			case 1473:
			case 1474:
			case 1475:
			case 1476:
			case 1477:
			case 1478:
			case 1479:
			case 1480:
			case 1481:
			case 1482:
			case 1483:
			case 1484:
			case 1485:
			case 1486:
			case 1487:
			case 1488:
			case 1489:
			case 1491:
			case 1492:
			case 1493:
			case 1494:
			case 1495:
			case 1496:
			case 1497:
			case 1499:
			case 1500:
			case 1501:
			case 1502:
			case 1503:
			case 1504:
			case 1505:
			case 1506:
			case 1507:
			case 1508:
			case 1509:
			case 1510:
			case 1511:
			case 1512:
			case 1513:
			case 1514:
			case 1515:
			case 1516:
			case 1518:
			case 1519:
			case 1520:
			case 1521:
			case 1522:
			case 1523:
			case 1524:
			case 1525:
			case 1526:
			case 1527:
			case 1528:
			case 1529:
			case 1530:
			case 1531:
			case 1532:
			case 1533:
			case 1534:
			case 1536:
			case 1537:
			case 1538:
			case 1539:
			case 1540:
			case 1541:
			case 1542:
			case 1543:
			case 1544:
			case 1545:
			case 1546:
			case 1547:
			case 1548:
			case 1549:
			case 1550:
			case 1551:
			case 1552:
			case 1553:
			case 1554:
			case 1555:
			case 1556:
			case 1557:
			case 1558:
			case 1559:
			case 1560:
			case 1561:
			case 1562:
			case 1563:
			case 1564:
			case 1565:
			case 1566:
			case 1567:
			case 1568:
			case 1570:
			case 1571:
			case 1572:
			case 1573:
			case 1574:
			case 1575:
			case 1576:
			case 1577:
			case 1578:
			case 1579:
			case 1580:
			case 1581:
			case 1582:
			case 1583:
			case 1584:
			case 1585:
			case 1586:
			case 1587:
			case 1588:
			case 1589:
			case 1590:
			case 1591:
			case 1592:
			case 1593:
			case 1594:
			case 1595:
			case 1596:
			case 1597:
			case 1598:
			case 1599:
			case 1600:
			case 1601:
			case 1602:
			case 1603:
			case 1604:
			case 1605:
			case 1606:
			case 1607:
			case 1608:
			case 1609:
			case 1610:
			case 1611:
			case 1612:
			case 1613:
			case 1614:
			case 1615:
			case 1616:
			case 1617:
			case 1618:
			case 1619:
			case 1620:
			case 1621:
			case 1622:
			case 1623:
			case 1624:
			case 1625:
			case 1626:
			case 1628:
			case 1629:
			case 1630:
			case 1631:
			case 1632:
			case 1633:
			case 1634:
			case 1635:
			case 1636:
			case 1637:
			case 1638:
			case 1639:
			case 1640:
			case 1641:
			case 1642:
			case 1643:
			case 1644:
			case 1645:
			case 1646:
			case 1647:
			case 1648:
			case 1649:
			case 1650:
			case 1651:
			case 1652:
			case 1653:
			case 1654:
			case 1655:
			case 1656:
			case 1657:
			case 1658:
			case 1659:
			case 1660:
			case 1661:
			case 1662:
			case 1663:
			case 1664:
			case 1665:
			case 1666:
			case 1667:
			case 1668:
			case 1669:
			case 1670:
			case 1671:
			case 1672:
			case 1673:
			case 1674:
			case 1675:
			case 1676:
			case 1677:
			case 1678:
			case 1679:
			case 1680:
			case 1681:
			case 1682:
			case 1683:
			case 1684:
			case 1685:
			case 1686:
			case 1687:
			case 1688:
			case 1689:
			case 1690:
			case 1691:
			case 1692:
			case 1693:
			case 1694:
			case 1695:
			case 1696:
			case 1697:
			case 1698:
			case 1699:
			case 1700:
			case 1701:
			case 1702:
			case 1703:
			case 1704:
			case 1705:
			case 1706:
			case 1707:
			case 1708:
			case 1709:
			case 1710:
			case 1711:
			case 1712:
			case 1713:
			case 1714:
			case 1715:
			case 1716:
			case 1717:
			case 1718:
			case 1719:
			case 1720:
			case 1721:
			case 1722:
			case 1723:
			case 1724:
			case 1725:
			case 1726:
			case 1727:
			case 1728:
			case 1729:
			case 1730:
			case 1731:
			case 1732:
			case 1733:
			case 1734:
			case 1735:
			case 1736:
			case 1737:
			case 1738:
			case 1739:
			case 1740:
			case 1741:
			case 1742:
			case 1743:
			case 1744:
			case 1745:
			case 1746:
			case 1747:
			case 1748:
			case 1749:
			case 1750:
			case 1751:
			case 1752:
			case 1753:
			case 1754:
			case 1755:
			case 1756:
			case 1757:
			case 1758:
			case 1759:
			case 1760:
			case 1761:
			case 1762:
			case 1763:
			case 1764:
			case 1765:
			case 1766:
			case 1767:
			case 1768:
			case 1769:
			case 1770:
			case 1771:
			case 1772:
			case 1773:
			case 1774:
			case 1775:
			case 1776:
			case 1777:
			case 1778:
			case 1779:
			case 1780:
			case 1781:
			case 1782:
			case 1783:
			case 1784:
			case 1785:
			case 1786:
			case 1787:
			case 1788:
			case 1789:
			case 1790:
			case 1791:
			case 1792:
			case 1793:
			case 1794:
			case 1795:
			case 1796:
			case 1797:
			case 1798:
			case 1799:
			case 1800:
			case 1801:
			case 1802:
			case 1803:
			case 1804:
			case 1805:
			case 1806:
			case 1807:
			case 1808:
			case 1809:
			case 1810:
			case 1811:
			case 1812:
			case 1813:
			case 1814:
			case 1815:
			case 1816:
			case 1817:
			case 1818:
			case 1819:
			case 1820:
			case 1821:
			case 1822:
			case 1823:
			case 1824:
			case 1825:
			case 1826:
			case 1827:
			case 1828:
			case 1829:
			case 1830:
			case 1831:
			case 1832:
			case 1833:
			case 1834:
			case 1835:
			case 1836:
			case 1837:
			case 1838:
			case 1839:
			case 1840:
			case 1841:
			case 1842:
			case 1843:
			case 1844:
			case 1845:
			case 1846:
			case 1847:
			case 1848:
			case 1849:
			case 1850:
			case 1851:
			case 1852:
			case 1853:
			case 1854:
			case 1855:
			case 1856:
			case 1857:
			case 1858:
			case 1859:
			case 1860:
			case 1861:
			case 1862:
			case 1863:
			case 1864:
			case 1865:
			case 1866:
			case 1867:
			case 1868:
			case 1869:
			case 1870:
			case 1871:
			case 1872:
			case 1873:
			case 1874:
			case 1875:
			case 1876:
			case 1877:
			case 1878:
			case 1879:
			case 1880:
			case 1881:
			case 1882:
			case 1883:
			case 1884:
			case 1885:
			case 1886:
			case 1887:
			case 1888:
			case 1889:
			case 1890:
			case 1891:
			case 1892:
			case 1893:
			case 1894:
			case 1895:
			case 1896:
			case 1897:
			case 1898:
			case 1899:
			case 1900:
			case 1901:
			case 1902:
			case 1903:
			case 1904:
			case 1905:
			case 1906:
			case 1907:
			case 1908:
			case 1909:
			case 1910:
			case 1911:
			case 1912:
			case 1913:
			case 1914:
			case 1915:
			case 1916:
			case 1917:
			case 1918:
			case 1919:
			case 1920:
			case 1921:
			case 1922:
			case 1923:
			case 1924:
			case 1925:
			case 1926:
			case 1927:
			case 1928:
			case 1929:
			case 1930:
			case 1931:
			case 1932:
			case 1933:
			case 1934:
			case 1935:
			case 1936:
			case 1937:
			case 1939:
			case 1940:
			case 1941:
			case 1942:
			case 1943:
			case 1944:
			case 1945:
			case 1946:
			case 1947:
			case 1948:
			case 1949:
			case 1950:
			case 1951:
			case 1952:
			case 1953:
			case 1954:
			case 1955:
			case 1956:
			case 1957:
			case 1958:
			case 1959:
			case 1960:
			case 1961:
			case 1962:
			case 1963:
			case 1965:
			case 1966:
			case 1967:
			case 1968:
			case 1969:
			case 1970:
			case 1971:
			case 1972:
			case 1973:
			case 1974:
			case 1975:
			case 1976:
			case 1977:
			case 1978:
			case 1979:
			case 1980:
			case 1981:
			case 1982:
			case 1983:
			case 1984:
			case 1985:
			case 1986:
			case 1987:
			case 1988:
			case 1989:
			case 1990:
			case 1991:
			case 1992:
			case 1993:
			case 1994:
			case 1995:
			case 1996:
			case 1997:
			case 1998:
			case 1999:
			case 2000:
			case 2003:
			case 2004:
			case 2005:
			case 2006:
			case 2007:
			case 2008:
			case 2009:
			case 2010:
			case 2011:
			case 2012:
			case 2013:
			case 2014:
			case 2015:
			case 2016:
			case 2017:
			case 2018:
			case 2019:
			case 2020:
			case 2021:
			case 2022:
			case 2023:
			case 2024:
			case 2026:
			case 2027:
			case 2028:
			case 2029:
			case 2030:
			case 2031:
			case 2032:
			case 2033:
			case 2034:
			case 2035:
			case 2036:
			case 2037:
			case 2038:
			case 2039:
			case 2040:
			case 2041:
			case 2042:
			case 2043:
			case 2044:
			case 2045:
			case 2046:
			case 2047:
			case 2048:
			case 2049:
			case 2050:
			case 2051:
			case 2052:
			case 2053:
			case 2054:
			case 2055:
			case 2056:
			case 2057:
			case 2058:
			case 2059:
			case 2060:
			case 2061:
			case 2062:
			case 2063:
			case 2064:
			case 2065:
			case 2066:
			case 2067:
			case 2068:
			case 2069:
			case 2070:
			case 2071:
			case 2072:
			case 2074:
			case 2075:
			case 2076:
			case 2077:
			case 2078:
			case 2079:
			case 2080:
			case 2081:
			case 2082:
			case 2083:
			case 2084:
			case 2085:
			case 2086:
			case 2087:
			case 2088:
			case 2089:
			case 2090:
			case 2091:
			case 2092:
			case 2093:
			case 2094:
			case 2095:
			case 2096:
			case 2097:
			case 2098:
			case 2100:
			case 2101:
			case 2102:
			case 2103:
			case 2104:
			case 2105:
			case 2106:
			case 2107:
			case 2108:
			case 2109:
			case 2110:
			case 2111:
			case 2112:
			case 2113:
			case 2115:
			case 2116:
			case 2117:
			case 2118:
			case 2119:
			case 2120:
			case 2122:
			case 2123:
			case 2124:
			case 2125:
			case 2126:
			case 2128:
			case 2129:
			case 2130:
			case 2131:
			case 2132:
			case 2133:
			case 2134:
			case 2135:
			case 2136:
			case 2137:
			case 2138:
			case 2139:
			case 2140:
			case 2141:
			case 2142:
			case 2143:
			case 2145:
			case 2146:
			case 2147:
			case 2148:
			case 2149:
			case 2150:
			case 2151:
			case 2152:
			case 2153:
			case 2154:
			case 2155:
			case 2156:
			case 2157:
			case 2158:
			case 2159:
			case 2160:
			case 2161:
			case 2162:
			case 2163:
			case 2164:
			case 2165:
			case 2166:
			case 2168:
			case 2169:
			case 2170:
			case 2171:
			case 2172:
			case 2173:
			case 2174:
			case 2175:
			case 2176:
			case 2177:
			case 2178:
			case 2179:
			case 2180:
			case 2181:
			case 2182:
			case 2183:
			case 2184:
			case 2185:
			case 2186:
			case 2187:
			case 2188:
			case 2189:
			case 2190:
			case 2191:
			case 2192:
			case 2193:
			case 2194:
			case 2195:
			case 2196:
			case 2197:
			case 2198:
			case 2199:
			case 2200:
			case 2201:
			case 2202:
			case 2203:
			case 2204:
			case 2205:
			case 2206:
			case 2207:
			case 2208:
			case 2209:
			case 2210:
			case 2211:
			case 2212:
			case 2216:
			case 2217:
			case 2218:
			case 2219:
			case 2220:
			case 2223:
			case 2227:
			case 2228:
			case 2233:
			case 2240:
			case 2246:
			case 2252:
				{
				this.state = 9457;
				this.expression();
				}
				break;
			case 1490:
				{
				this.state = 9458;
				this.query_block();
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
			this.state = 9462;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & 3221157751) !== 0) || ((((_la - 64)) & ~0x1F) === 0 && ((1 << (_la - 64)) & 3220168703) !== 0) || ((((_la - 96)) & ~0x1F) === 0 && ((1 << (_la - 96)) & 4294965247) !== 0) || ((((_la - 128)) & ~0x1F) === 0 && ((1 << (_la - 128)) & 2147221503) !== 0) || ((((_la - 160)) & ~0x1F) === 0 && ((1 << (_la - 160)) & 4293910527) !== 0) || ((((_la - 192)) & ~0x1F) === 0 && ((1 << (_la - 192)) & 4294967295) !== 0) || ((((_la - 224)) & ~0x1F) === 0 && ((1 << (_la - 224)) & 4160749311) !== 0) || ((((_la - 256)) & ~0x1F) === 0 && ((1 << (_la - 256)) & 4294967295) !== 0) || ((((_la - 289)) & ~0x1F) === 0 && ((1 << (_la - 289)) & 2147483647) !== 0) || ((((_la - 321)) & ~0x1F) === 0 && ((1 << (_la - 321)) & 3221225407) !== 0) || ((((_la - 353)) & ~0x1F) === 0 && ((1 << (_la - 353)) & 4294705151) !== 0) || ((((_la - 385)) & ~0x1F) === 0 && ((1 << (_la - 385)) & 2080372479) !== 0) || ((((_la - 417)) & ~0x1F) === 0 && ((1 << (_la - 417)) & 4026433535) !== 0) || ((((_la - 449)) & ~0x1F) === 0 && ((1 << (_la - 449)) & 4261412863) !== 0) || ((((_la - 481)) & ~0x1F) === 0 && ((1 << (_la - 481)) & 4294967295) !== 0) || ((((_la - 513)) & ~0x1F) === 0 && ((1 << (_la - 513)) & 4294967295) !== 0) || ((((_la - 545)) & ~0x1F) === 0 && ((1 << (_la - 545)) & 3925868029) !== 0) || ((((_la - 577)) & ~0x1F) === 0 && ((1 << (_la - 577)) & 4278189823) !== 0) || ((((_la - 609)) & ~0x1F) === 0 && ((1 << (_la - 609)) & 4290772991) !== 0) || ((((_la - 641)) & ~0x1F) === 0 && ((1 << (_la - 641)) & 4026529791) !== 0) || ((((_la - 673)) & ~0x1F) === 0 && ((1 << (_la - 673)) & 4290478079) !== 0) || ((((_la - 705)) & ~0x1F) === 0 && ((1 << (_la - 705)) & 4294967295) !== 0) || ((((_la - 737)) & ~0x1F) === 0 && ((1 << (_la - 737)) & 4293918719) !== 0) || ((((_la - 769)) & ~0x1F) === 0 && ((1 << (_la - 769)) & 4294967167) !== 0) || ((((_la - 801)) & ~0x1F) === 0 && ((1 << (_la - 801)) & 4294967295) !== 0) || ((((_la - 833)) & ~0x1F) === 0 && ((1 << (_la - 833)) & 4160749055) !== 0) || ((((_la - 865)) & ~0x1F) === 0 && ((1 << (_la - 865)) & 4290772991) !== 0) || ((((_la - 897)) & ~0x1F) === 0 && ((1 << (_la - 897)) & 4294967295) !== 0) || ((((_la - 929)) & ~0x1F) === 0 && ((1 << (_la - 929)) & 4278190079) !== 0) || ((((_la - 961)) & ~0x1F) === 0 && ((1 << (_la - 961)) & 4294967295) !== 0) || ((((_la - 993)) & ~0x1F) === 0 && ((1 << (_la - 993)) & 4294967295) !== 0) || ((((_la - 1025)) & ~0x1F) === 0 && ((1 << (_la - 1025)) & 4294967295) !== 0) || ((((_la - 1057)) & ~0x1F) === 0 && ((1 << (_la - 1057)) & 2147418111) !== 0) || ((((_la - 1089)) & ~0x1F) === 0 && ((1 << (_la - 1089)) & 4227858175) !== 0) || ((((_la - 1121)) & ~0x1F) === 0 && ((1 << (_la - 1121)) & 4293918559) !== 0) || ((((_la - 1153)) & ~0x1F) === 0 && ((1 << (_la - 1153)) & 4294410239) !== 0) || ((((_la - 1185)) & ~0x1F) === 0 && ((1 << (_la - 1185)) & 4294965247) !== 0) || ((((_la - 1217)) & ~0x1F) === 0 && ((1 << (_la - 1217)) & 4279827455) !== 0) || ((((_la - 1249)) & ~0x1F) === 0 && ((1 << (_la - 1249)) & 4294967291) !== 0) || ((((_la - 1281)) & ~0x1F) === 0 && ((1 << (_la - 1281)) & 4227858431) !== 0) || ((((_la - 1313)) & ~0x1F) === 0 && ((1 << (_la - 1313)) & 4294965247) !== 0) || ((((_la - 1345)) & ~0x1F) === 0 && ((1 << (_la - 1345)) & 4294967295) !== 0) || ((((_la - 1377)) & ~0x1F) === 0 && ((1 << (_la - 1377)) & 4292870143) !== 0) || ((((_la - 1409)) & ~0x1F) === 0 && ((1 << (_la - 1409)) & 4261412799) !== 0) || ((((_la - 1441)) & ~0x1F) === 0 && ((1 << (_la - 1441)) & 4294967295) !== 0) || ((((_la - 1473)) & ~0x1F) === 0 && ((1 << (_la - 1473)) & 4261281791) !== 0) || ((((_la - 1505)) & ~0x1F) === 0 && ((1 << (_la - 1505)) & 3221221375) !== 0) || ((((_la - 1537)) & ~0x1F) === 0 && ((1 << (_la - 1537)) & 4294967295) !== 0) || ((((_la - 1570)) & ~0x1F) === 0 && ((1 << (_la - 1570)) & 4294967295) !== 0) || ((((_la - 1602)) & ~0x1F) === 0 && ((1 << (_la - 1602)) & 4261412863) !== 0) || ((((_la - 1634)) & ~0x1F) === 0 && ((1 << (_la - 1634)) & 4294967295) !== 0) || ((((_la - 1666)) & ~0x1F) === 0 && ((1 << (_la - 1666)) & 4294967295) !== 0) || ((((_la - 1698)) & ~0x1F) === 0 && ((1 << (_la - 1698)) & 4294967295) !== 0) || ((((_la - 1730)) & ~0x1F) === 0 && ((1 << (_la - 1730)) & 4294967295) !== 0) || ((((_la - 1762)) & ~0x1F) === 0 && ((1 << (_la - 1762)) & 4294967295) !== 0) || ((((_la - 1794)) & ~0x1F) === 0 && ((1 << (_la - 1794)) & 4294967295) !== 0) || ((((_la - 1826)) & ~0x1F) === 0 && ((1 << (_la - 1826)) & 4294967295) !== 0) || ((((_la - 1858)) & ~0x1F) === 0 && ((1 << (_la - 1858)) & 4294967295) !== 0) || ((((_la - 1890)) & ~0x1F) === 0 && ((1 << (_la - 1890)) & 4294967295) !== 0) || ((((_la - 1922)) & ~0x1F) === 0 && ((1 << (_la - 1922)) & 4294901759) !== 0) || ((((_la - 1954)) & ~0x1F) === 0 && ((1 << (_la - 1954)) & 4294966271) !== 0) || ((((_la - 1986)) & ~0x1F) === 0 && ((1 << (_la - 1986)) & 4294868991) !== 0) || ((((_la - 2018)) & ~0x1F) === 0 && ((1 << (_la - 2018)) & 4294967167) !== 0) || ((((_la - 2050)) & ~0x1F) === 0 && ((1 << (_la - 2050)) & 4286578687) !== 0) || ((((_la - 2082)) & ~0x1F) === 0 && ((1 << (_la - 2082)) & 4294836223) !== 0) || ((((_la - 2115)) & ~0x1F) === 0 && ((1 << (_la - 2115)) & 3758092223) !== 0) || ((((_la - 2147)) & ~0x1F) === 0 && ((1 << (_la - 2147)) & 4293918719) !== 0) || ((((_la - 2179)) & ~0x1F) === 0 && ((1 << (_la - 2179)) & 4294965247) !== 0) || ((((_la - 2211)) & ~0x1F) === 0 && ((1 << (_la - 2211)) & 803) !== 0) || _la===2246 || _la===2252) {
				{
				this.state = 9461;
				this.column_alias();
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public model_rules_clause(): Model_rules_clauseContext {
		let localctx: Model_rules_clauseContext = new Model_rules_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1138, PlSqlParser.RULE_model_rules_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 9465;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1456) {
				{
				this.state = 9464;
				this.model_rules_part();
				}
			}

			this.state = 9467;
			this.match(PlSqlParser.LEFT_PAREN);
			this.state = 9476;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & 2684352383) !== 0) || ((((_la - 64)) & ~0x1F) === 0 && ((1 << (_la - 64)) & 3220168703) !== 0) || ((((_la - 96)) & ~0x1F) === 0 && ((1 << (_la - 96)) & 4294965247) !== 0) || ((((_la - 128)) & ~0x1F) === 0 && ((1 << (_la - 128)) & 2147221503) !== 0) || ((((_la - 160)) & ~0x1F) === 0 && ((1 << (_la - 160)) & 4293910527) !== 0) || ((((_la - 192)) & ~0x1F) === 0 && ((1 << (_la - 192)) & 4294967295) !== 0) || ((((_la - 224)) & ~0x1F) === 0 && ((1 << (_la - 224)) & 4160749311) !== 0) || ((((_la - 256)) & ~0x1F) === 0 && ((1 << (_la - 256)) & 4294967295) !== 0) || ((((_la - 289)) & ~0x1F) === 0 && ((1 << (_la - 289)) & 2147483647) !== 0) || ((((_la - 321)) & ~0x1F) === 0 && ((1 << (_la - 321)) & 4294967295) !== 0) || ((((_la - 353)) & ~0x1F) === 0 && ((1 << (_la - 353)) & 4294705151) !== 0) || ((((_la - 385)) & ~0x1F) === 0 && ((1 << (_la - 385)) & 2080374527) !== 0) || ((((_la - 417)) & ~0x1F) === 0 && ((1 << (_la - 417)) & 4026433535) !== 0) || ((((_la - 449)) & ~0x1F) === 0 && ((1 << (_la - 449)) & 4261412863) !== 0) || ((((_la - 481)) & ~0x1F) === 0 && ((1 << (_la - 481)) & 4294967295) !== 0) || ((((_la - 513)) & ~0x1F) === 0 && ((1 << (_la - 513)) & 4294967295) !== 0) || ((((_la - 545)) & ~0x1F) === 0 && ((1 << (_la - 545)) & 3925868029) !== 0) || ((((_la - 577)) & ~0x1F) === 0 && ((1 << (_la - 577)) & 4278189823) !== 0) || ((((_la - 609)) & ~0x1F) === 0 && ((1 << (_la - 609)) & 4290772991) !== 0) || ((((_la - 641)) & ~0x1F) === 0 && ((1 << (_la - 641)) & 4026529791) !== 0) || ((((_la - 673)) & ~0x1F) === 0 && ((1 << (_la - 673)) & 4290478079) !== 0) || ((((_la - 705)) & ~0x1F) === 0 && ((1 << (_la - 705)) & 4294967295) !== 0) || ((((_la - 737)) & ~0x1F) === 0 && ((1 << (_la - 737)) & 4293918719) !== 0) || ((((_la - 769)) & ~0x1F) === 0 && ((1 << (_la - 769)) & 4294967167) !== 0) || ((((_la - 801)) & ~0x1F) === 0 && ((1 << (_la - 801)) & 4294967295) !== 0) || ((((_la - 833)) & ~0x1F) === 0 && ((1 << (_la - 833)) & 4160749055) !== 0) || ((((_la - 865)) & ~0x1F) === 0 && ((1 << (_la - 865)) & 4290772991) !== 0) || ((((_la - 897)) & ~0x1F) === 0 && ((1 << (_la - 897)) & 4294967295) !== 0) || ((((_la - 929)) & ~0x1F) === 0 && ((1 << (_la - 929)) & 4278190079) !== 0) || ((((_la - 961)) & ~0x1F) === 0 && ((1 << (_la - 961)) & 4294967295) !== 0) || ((((_la - 993)) & ~0x1F) === 0 && ((1 << (_la - 993)) & 4294967295) !== 0) || ((((_la - 1025)) & ~0x1F) === 0 && ((1 << (_la - 1025)) & 4294967295) !== 0) || ((((_la - 1057)) & ~0x1F) === 0 && ((1 << (_la - 1057)) & 2147418111) !== 0) || ((((_la - 1089)) & ~0x1F) === 0 && ((1 << (_la - 1089)) & 4227858431) !== 0) || ((((_la - 1121)) & ~0x1F) === 0 && ((1 << (_la - 1121)) & 4293918559) !== 0) || ((((_la - 1153)) & ~0x1F) === 0 && ((1 << (_la - 1153)) & 4294410239) !== 0) || ((((_la - 1185)) & ~0x1F) === 0 && ((1 << (_la - 1185)) & 4294965247) !== 0) || ((((_la - 1217)) & ~0x1F) === 0 && ((1 << (_la - 1217)) & 4279827455) !== 0) || ((((_la - 1249)) & ~0x1F) === 0 && ((1 << (_la - 1249)) & 4294967291) !== 0) || ((((_la - 1281)) & ~0x1F) === 0 && ((1 << (_la - 1281)) & 4294967295) !== 0) || ((((_la - 1313)) & ~0x1F) === 0 && ((1 << (_la - 1313)) & 4294965247) !== 0) || ((((_la - 1345)) & ~0x1F) === 0 && ((1 << (_la - 1345)) & 4294967295) !== 0) || ((((_la - 1377)) & ~0x1F) === 0 && ((1 << (_la - 1377)) & 4292870143) !== 0) || ((((_la - 1409)) & ~0x1F) === 0 && ((1 << (_la - 1409)) & 4261412799) !== 0) || ((((_la - 1441)) & ~0x1F) === 0 && ((1 << (_la - 1441)) & 4294967295) !== 0) || ((((_la - 1473)) & ~0x1F) === 0 && ((1 << (_la - 1473)) & 4261281791) !== 0) || ((((_la - 1505)) & ~0x1F) === 0 && ((1 << (_la - 1505)) & 3221221375) !== 0) || ((((_la - 1537)) & ~0x1F) === 0 && ((1 << (_la - 1537)) & 4294967295) !== 0) || ((((_la - 1570)) & ~0x1F) === 0 && ((1 << (_la - 1570)) & 4294967295) !== 0) || ((((_la - 1602)) & ~0x1F) === 0 && ((1 << (_la - 1602)) & 4261412863) !== 0) || ((((_la - 1634)) & ~0x1F) === 0 && ((1 << (_la - 1634)) & 4294967295) !== 0) || ((((_la - 1666)) & ~0x1F) === 0 && ((1 << (_la - 1666)) & 4294967295) !== 0) || ((((_la - 1698)) & ~0x1F) === 0 && ((1 << (_la - 1698)) & 4294967295) !== 0) || ((((_la - 1730)) & ~0x1F) === 0 && ((1 << (_la - 1730)) & 4294967295) !== 0) || ((((_la - 1762)) & ~0x1F) === 0 && ((1 << (_la - 1762)) & 4294967295) !== 0) || ((((_la - 1794)) & ~0x1F) === 0 && ((1 << (_la - 1794)) & 4294967295) !== 0) || ((((_la - 1826)) & ~0x1F) === 0 && ((1 << (_la - 1826)) & 4294967295) !== 0) || ((((_la - 1858)) & ~0x1F) === 0 && ((1 << (_la - 1858)) & 4294967295) !== 0) || ((((_la - 1890)) & ~0x1F) === 0 && ((1 << (_la - 1890)) & 4294967295) !== 0) || ((((_la - 1922)) & ~0x1F) === 0 && ((1 << (_la - 1922)) & 4294901759) !== 0) || ((((_la - 1954)) & ~0x1F) === 0 && ((1 << (_la - 1954)) & 4294966271) !== 0) || ((((_la - 1986)) & ~0x1F) === 0 && ((1 << (_la - 1986)) & 4294868991) !== 0) || ((((_la - 2018)) & ~0x1F) === 0 && ((1 << (_la - 2018)) & 4294967295) !== 0) || ((((_la - 2050)) & ~0x1F) === 0 && ((1 << (_la - 2050)) & 4286578687) !== 0) || ((((_la - 2082)) & ~0x1F) === 0 && ((1 << (_la - 2082)) & 4294836223) !== 0) || ((((_la - 2115)) & ~0x1F) === 0 && ((1 << (_la - 2115)) & 3758092223) !== 0) || ((((_la - 2147)) & ~0x1F) === 0 && ((1 << (_la - 2147)) & 4293918719) !== 0) || ((((_la - 2179)) & ~0x1F) === 0 && ((1 << (_la - 2179)) & 4294967295) !== 0) || ((((_la - 2211)) & ~0x1F) === 0 && ((1 << (_la - 2211)) & 541266915) !== 0) || _la===2246 || _la===2252) {
				{
				this.state = 9468;
				this.model_rules_element();
				this.state = 9473;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===2229) {
					{
					{
					this.state = 9469;
					this.match(PlSqlParser.COMMA);
					this.state = 9470;
					this.model_rules_element();
					}
					}
					this.state = 9475;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				}
			}

			this.state = 9478;
			this.match(PlSqlParser.RIGHT_PAREN);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public model_rules_part(): Model_rules_partContext {
		let localctx: Model_rules_partContext = new Model_rules_partContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1140, PlSqlParser.RULE_model_rules_part);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 9480;
			this.match(PlSqlParser.RULES);
			this.state = 9486;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 2025:
				{
				this.state = 9481;
				this.match(PlSqlParser.UPDATE);
				}
				break;
			case 2031:
				{
				this.state = 9482;
				this.match(PlSqlParser.UPSERT);
				this.state = 9484;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===35) {
					{
					this.state = 9483;
					this.match(PlSqlParser.ALL);
					}
				}

				}
				break;
			case 87:
			case 698:
			case 1497:
			case 2223:
				break;
			default:
				break;
			}
			this.state = 9490;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===87 || _la===1497) {
				{
				this.state = 9488;
				_la = this._input.LA(1);
				if(!(_la===87 || _la===1497)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				this.state = 9489;
				this.match(PlSqlParser.ORDER);
				}
			}

			this.state = 9493;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===698) {
				{
				this.state = 9492;
				this.model_iterate_clause();
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public model_rules_element(): Model_rules_elementContext {
		let localctx: Model_rules_elementContext = new Model_rules_elementContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1142, PlSqlParser.RULE_model_rules_element);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 9500;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1264, this._ctx) ) {
			case 1:
				{
				this.state = 9495;
				this.match(PlSqlParser.UPDATE);
				}
				break;
			case 2:
				{
				this.state = 9496;
				this.match(PlSqlParser.UPSERT);
				this.state = 9498;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 1263, this._ctx) ) {
				case 1:
					{
					this.state = 9497;
					this.match(PlSqlParser.ALL);
					}
					break;
				}
				}
				break;
			}
			this.state = 9502;
			this.cell_assignment();
			this.state = 9504;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1168) {
				{
				this.state = 9503;
				this.order_by_clause();
				}
			}

			this.state = 9506;
			this.match(PlSqlParser.EQUALS_OP);
			this.state = 9507;
			this.expression();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public cell_assignment(): Cell_assignmentContext {
		let localctx: Cell_assignmentContext = new Cell_assignmentContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1144, PlSqlParser.RULE_cell_assignment);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 9509;
			this.model_expression();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public model_iterate_clause(): Model_iterate_clauseContext {
		let localctx: Model_iterate_clauseContext = new Model_iterate_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1146, PlSqlParser.RULE_model_iterate_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 9511;
			this.match(PlSqlParser.ITERATE);
			this.state = 9512;
			this.match(PlSqlParser.LEFT_PAREN);
			this.state = 9513;
			this.expression();
			this.state = 9514;
			this.match(PlSqlParser.RIGHT_PAREN);
			this.state = 9516;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===2020) {
				{
				this.state = 9515;
				this.until_part();
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public until_part(): Until_partContext {
		let localctx: Until_partContext = new Until_partContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1148, PlSqlParser.RULE_until_part);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 9518;
			this.match(PlSqlParser.UNTIL);
			this.state = 9519;
			this.match(PlSqlParser.LEFT_PAREN);
			this.state = 9520;
			this.condition();
			this.state = 9521;
			this.match(PlSqlParser.RIGHT_PAREN);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public order_by_clause(): Order_by_clauseContext {
		let localctx: Order_by_clauseContext = new Order_by_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1150, PlSqlParser.RULE_order_by_clause);
		let _la: number;
		try {
			let _alt: number;
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 9523;
			this.match(PlSqlParser.ORDER);
			this.state = 9525;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1523) {
				{
				this.state = 9524;
				this.match(PlSqlParser.SIBLINGS);
				}
			}

			this.state = 9527;
			this.match(PlSqlParser.BY);
			this.state = 9528;
			this.order_by_elements();
			this.state = 9533;
			this._errHandler.sync(this);
			_alt = this._interp.adaptivePredict(this._input, 1268, this._ctx);
			while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) {
				if (_alt === 1) {
					{
					{
					this.state = 9529;
					this.match(PlSqlParser.COMMA);
					this.state = 9530;
					this.order_by_elements();
					}
					}
				}
				this.state = 9535;
				this._errHandler.sync(this);
				_alt = this._interp.adaptivePredict(this._input, 1268, this._ctx);
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public order_by_elements(): Order_by_elementsContext {
		let localctx: Order_by_elementsContext = new Order_by_elementsContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1152, PlSqlParser.RULE_order_by_elements);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 9536;
			this.expression();
			this.state = 9538;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1269, this._ctx) ) {
			case 1:
				{
				this.state = 9537;
				_la = this._input.LA(1);
				if(!(_la===62 || _la===371)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				}
				break;
			}
			this.state = 9542;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1270, this._ctx) ) {
			case 1:
				{
				this.state = 9540;
				this.match(PlSqlParser.NULLS);
				this.state = 9541;
				_la = this._input.LA(1);
				if(!(_la===526 || _la===731)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				}
				break;
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public offset_clause(): Offset_clauseContext {
		let localctx: Offset_clauseContext = new Offset_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1154, PlSqlParser.RULE_offset_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 9544;
			this.match(PlSqlParser.OFFSET);
			this.state = 9545;
			this.expression();
			this.state = 9546;
			_la = this._input.LA(1);
			if(!(_la===1451 || _la===1452)) {
			this._errHandler.recoverInline(this);
			}
			else {
				this._errHandler.reportMatch(this);
			    this.consume();
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public fetch_clause(): Fetch_clauseContext {
		let localctx: Fetch_clauseContext = new Fetch_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1156, PlSqlParser.RULE_fetch_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 9548;
			this.match(PlSqlParser.FETCH);
			this.state = 9549;
			_la = this._input.LA(1);
			if(!(_la===526 || _la===906)) {
			this._errHandler.recoverInline(this);
			}
			else {
				this._errHandler.reportMatch(this);
			    this.consume();
			}
			this.state = 9554;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1272, this._ctx) ) {
			case 1:
				{
				this.state = 9550;
				this.expression();
				this.state = 9552;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===1236) {
					{
					this.state = 9551;
					this.match(PlSqlParser.PERCENT_KEYWORD);
					}
				}

				}
				break;
			}
			this.state = 9556;
			_la = this._input.LA(1);
			if(!(_la===1451 || _la===1452)) {
			this._errHandler.recoverInline(this);
			}
			else {
				this._errHandler.reportMatch(this);
			    this.consume();
			}
			this.state = 9560;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 1127:
				{
				this.state = 9557;
				this.match(PlSqlParser.ONLY);
				}
				break;
			case 2121:
				{
				this.state = 9558;
				this.match(PlSqlParser.WITH);
				this.state = 9559;
				this.match(PlSqlParser.TIES);
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public for_update_clause(): For_update_clauseContext {
		let localctx: For_update_clauseContext = new For_update_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1158, PlSqlParser.RULE_for_update_clause);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 9562;
			this.match(PlSqlParser.FOR);
			this.state = 9563;
			this.match(PlSqlParser.UPDATE);
			this.state = 9565;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1274, this._ctx) ) {
			case 1:
				{
				this.state = 9564;
				this.for_update_of_part();
				}
				break;
			}
			this.state = 9568;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1275, this._ctx) ) {
			case 1:
				{
				this.state = 9567;
				this.for_update_options();
				}
				break;
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public for_update_of_part(): For_update_of_partContext {
		let localctx: For_update_of_partContext = new For_update_of_partContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1160, PlSqlParser.RULE_for_update_of_part);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 9570;
			this.match(PlSqlParser.OF);
			this.state = 9571;
			this.column_list();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public for_update_options(): For_update_optionsContext {
		let localctx: For_update_optionsContext = new For_update_optionsContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1162, PlSqlParser.RULE_for_update_options);
		try {
			this.state = 9578;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 1537:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 9573;
				this.match(PlSqlParser.SKIP_);
				this.state = 9574;
				this.match(PlSqlParser.LOCKED);
				}
				break;
			case 1088:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 9575;
				this.match(PlSqlParser.NOWAIT);
				}
				break;
			case 2106:
				this.enterOuterAlt(localctx, 3);
				{
				this.state = 9576;
				this.match(PlSqlParser.WAIT);
				this.state = 9577;
				this.expression();
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public update_statement(): Update_statementContext {
		let localctx: Update_statementContext = new Update_statementContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1164, PlSqlParser.RULE_update_statement);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 9580;
			this.match(PlSqlParser.UPDATE);
			this.state = 9581;
			this.general_table_ref();
			this.state = 9582;
			this.update_set_clause();
			this.state = 9584;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1277, this._ctx) ) {
			case 1:
				{
				this.state = 9583;
				this.where_clause();
				}
				break;
			}
			this.state = 9587;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1278, this._ctx) ) {
			case 1:
				{
				this.state = 9586;
				this.static_returning_clause();
				}
				break;
			}
			this.state = 9590;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1279, this._ctx) ) {
			case 1:
				{
				this.state = 9589;
				this.error_logging_clause();
				}
				break;
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public update_set_clause(): Update_set_clauseContext {
		let localctx: Update_set_clauseContext = new Update_set_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1166, PlSqlParser.RULE_update_set_clause);
		try {
			let _alt: number;
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 9592;
			this.match(PlSqlParser.SET);
			this.state = 9608;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1281, this._ctx) ) {
			case 1:
				{
				this.state = 9593;
				this.column_based_update_set_clause();
				this.state = 9598;
				this._errHandler.sync(this);
				_alt = this._interp.adaptivePredict(this._input, 1280, this._ctx);
				while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) {
					if (_alt === 1) {
						{
						{
						this.state = 9594;
						this.match(PlSqlParser.COMMA);
						this.state = 9595;
						this.column_based_update_set_clause();
						}
						}
					}
					this.state = 9600;
					this._errHandler.sync(this);
					_alt = this._interp.adaptivePredict(this._input, 1280, this._ctx);
				}
				}
				break;
			case 2:
				{
				this.state = 9601;
				this.match(PlSqlParser.VALUE);
				this.state = 9602;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 9603;
				this.identifier();
				this.state = 9604;
				this.match(PlSqlParser.RIGHT_PAREN);
				this.state = 9605;
				this.match(PlSqlParser.EQUALS_OP);
				this.state = 9606;
				this.expression();
				}
				break;
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public column_based_update_set_clause(): Column_based_update_set_clauseContext {
		let localctx: Column_based_update_set_clauseContext = new Column_based_update_set_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1168, PlSqlParser.RULE_column_based_update_set_clause);
		try {
			this.state = 9618;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 1:
			case 2:
			case 3:
			case 4:
			case 5:
			case 6:
			case 7:
			case 8:
			case 9:
			case 10:
			case 11:
			case 12:
			case 13:
			case 14:
			case 15:
			case 16:
			case 17:
			case 18:
			case 19:
			case 20:
			case 21:
			case 22:
			case 23:
			case 24:
			case 25:
			case 26:
			case 27:
			case 28:
			case 29:
			case 30:
			case 31:
			case 32:
			case 33:
			case 34:
			case 36:
			case 37:
			case 38:
			case 40:
			case 41:
			case 42:
			case 44:
			case 45:
			case 46:
			case 47:
			case 49:
			case 50:
			case 51:
			case 52:
			case 53:
			case 54:
			case 55:
			case 56:
			case 57:
			case 58:
			case 59:
			case 60:
			case 63:
			case 64:
			case 65:
			case 66:
			case 67:
			case 68:
			case 69:
			case 70:
			case 71:
			case 72:
			case 73:
			case 74:
			case 75:
			case 76:
			case 78:
			case 79:
			case 80:
			case 81:
			case 82:
			case 83:
			case 85:
			case 86:
			case 87:
			case 88:
			case 89:
			case 90:
			case 91:
			case 92:
			case 93:
			case 95:
			case 96:
			case 97:
			case 98:
			case 99:
			case 100:
			case 101:
			case 102:
			case 103:
			case 104:
			case 105:
			case 106:
			case 108:
			case 109:
			case 110:
			case 111:
			case 112:
			case 113:
			case 114:
			case 115:
			case 116:
			case 117:
			case 118:
			case 119:
			case 120:
			case 121:
			case 122:
			case 123:
			case 124:
			case 125:
			case 126:
			case 127:
			case 128:
			case 129:
			case 130:
			case 131:
			case 132:
			case 133:
			case 134:
			case 135:
			case 136:
			case 137:
			case 138:
			case 139:
			case 140:
			case 141:
			case 142:
			case 143:
			case 144:
			case 145:
			case 147:
			case 148:
			case 149:
			case 150:
			case 151:
			case 152:
			case 153:
			case 154:
			case 155:
			case 156:
			case 157:
			case 158:
			case 160:
			case 161:
			case 162:
			case 163:
			case 164:
			case 165:
			case 166:
			case 167:
			case 168:
			case 169:
			case 170:
			case 171:
			case 172:
			case 174:
			case 175:
			case 176:
			case 177:
			case 178:
			case 179:
			case 181:
			case 182:
			case 183:
			case 184:
			case 185:
			case 186:
			case 187:
			case 188:
			case 189:
			case 190:
			case 191:
			case 192:
			case 193:
			case 194:
			case 195:
			case 196:
			case 197:
			case 198:
			case 199:
			case 200:
			case 201:
			case 202:
			case 203:
			case 204:
			case 205:
			case 206:
			case 207:
			case 208:
			case 209:
			case 210:
			case 211:
			case 212:
			case 213:
			case 214:
			case 215:
			case 216:
			case 217:
			case 218:
			case 219:
			case 220:
			case 221:
			case 222:
			case 223:
			case 224:
			case 225:
			case 226:
			case 227:
			case 228:
			case 229:
			case 230:
			case 231:
			case 233:
			case 234:
			case 235:
			case 236:
			case 237:
			case 238:
			case 239:
			case 240:
			case 241:
			case 242:
			case 243:
			case 244:
			case 245:
			case 246:
			case 247:
			case 248:
			case 249:
			case 250:
			case 252:
			case 253:
			case 254:
			case 255:
			case 256:
			case 257:
			case 258:
			case 259:
			case 260:
			case 261:
			case 262:
			case 263:
			case 264:
			case 265:
			case 266:
			case 267:
			case 268:
			case 269:
			case 270:
			case 271:
			case 272:
			case 273:
			case 274:
			case 275:
			case 276:
			case 277:
			case 278:
			case 279:
			case 280:
			case 281:
			case 282:
			case 283:
			case 284:
			case 285:
			case 286:
			case 287:
			case 289:
			case 290:
			case 291:
			case 292:
			case 293:
			case 294:
			case 295:
			case 296:
			case 297:
			case 298:
			case 299:
			case 300:
			case 301:
			case 302:
			case 303:
			case 304:
			case 305:
			case 306:
			case 307:
			case 308:
			case 309:
			case 310:
			case 311:
			case 312:
			case 313:
			case 314:
			case 315:
			case 316:
			case 317:
			case 318:
			case 319:
			case 321:
			case 322:
			case 323:
			case 324:
			case 325:
			case 326:
			case 328:
			case 329:
			case 330:
			case 331:
			case 332:
			case 333:
			case 334:
			case 335:
			case 336:
			case 337:
			case 338:
			case 339:
			case 340:
			case 341:
			case 342:
			case 343:
			case 344:
			case 345:
			case 346:
			case 347:
			case 348:
			case 349:
			case 350:
			case 352:
			case 353:
			case 354:
			case 355:
			case 356:
			case 357:
			case 358:
			case 359:
			case 360:
			case 361:
			case 362:
			case 363:
			case 364:
			case 365:
			case 366:
			case 367:
			case 368:
			case 369:
			case 370:
			case 372:
			case 373:
			case 374:
			case 375:
			case 376:
			case 377:
			case 378:
			case 379:
			case 380:
			case 381:
			case 382:
			case 383:
			case 384:
			case 385:
			case 386:
			case 387:
			case 388:
			case 389:
			case 390:
			case 391:
			case 392:
			case 394:
			case 395:
			case 397:
			case 398:
			case 399:
			case 400:
			case 401:
			case 402:
			case 403:
			case 404:
			case 405:
			case 406:
			case 407:
			case 408:
			case 409:
			case 410:
			case 412:
			case 413:
			case 414:
			case 415:
			case 417:
			case 418:
			case 419:
			case 420:
			case 421:
			case 422:
			case 423:
			case 424:
			case 425:
			case 426:
			case 427:
			case 428:
			case 429:
			case 430:
			case 431:
			case 434:
			case 435:
			case 436:
			case 437:
			case 438:
			case 439:
			case 440:
			case 441:
			case 442:
			case 443:
			case 444:
			case 446:
			case 447:
			case 448:
			case 449:
			case 450:
			case 451:
			case 452:
			case 453:
			case 454:
			case 455:
			case 456:
			case 457:
			case 458:
			case 459:
			case 460:
			case 461:
			case 462:
			case 463:
			case 464:
			case 465:
			case 466:
			case 467:
			case 468:
			case 469:
			case 470:
			case 471:
			case 472:
			case 473:
			case 475:
			case 476:
			case 477:
			case 478:
			case 479:
			case 480:
			case 481:
			case 482:
			case 483:
			case 484:
			case 485:
			case 486:
			case 487:
			case 488:
			case 489:
			case 490:
			case 491:
			case 492:
			case 493:
			case 494:
			case 495:
			case 496:
			case 497:
			case 498:
			case 499:
			case 500:
			case 501:
			case 502:
			case 503:
			case 504:
			case 505:
			case 506:
			case 507:
			case 508:
			case 509:
			case 510:
			case 511:
			case 512:
			case 513:
			case 514:
			case 515:
			case 516:
			case 517:
			case 518:
			case 519:
			case 520:
			case 521:
			case 522:
			case 523:
			case 524:
			case 525:
			case 526:
			case 527:
			case 528:
			case 529:
			case 530:
			case 531:
			case 532:
			case 533:
			case 534:
			case 535:
			case 536:
			case 537:
			case 538:
			case 539:
			case 540:
			case 541:
			case 542:
			case 543:
			case 544:
			case 545:
			case 547:
			case 548:
			case 549:
			case 550:
			case 551:
			case 552:
			case 553:
			case 555:
			case 556:
			case 557:
			case 558:
			case 559:
			case 560:
			case 561:
			case 562:
			case 563:
			case 564:
			case 565:
			case 566:
			case 567:
			case 568:
			case 569:
			case 572:
			case 574:
			case 575:
			case 576:
			case 577:
			case 578:
			case 579:
			case 580:
			case 581:
			case 582:
			case 583:
			case 584:
			case 586:
			case 587:
			case 588:
			case 589:
			case 590:
			case 591:
			case 592:
			case 593:
			case 594:
			case 595:
			case 596:
			case 597:
			case 598:
			case 599:
			case 600:
			case 602:
			case 603:
			case 604:
			case 605:
			case 606:
			case 607:
			case 608:
			case 609:
			case 610:
			case 611:
			case 612:
			case 613:
			case 614:
			case 615:
			case 616:
			case 617:
			case 618:
			case 619:
			case 620:
			case 621:
			case 622:
			case 623:
			case 624:
			case 625:
			case 626:
			case 627:
			case 628:
			case 629:
			case 630:
			case 632:
			case 633:
			case 634:
			case 635:
			case 636:
			case 637:
			case 638:
			case 639:
			case 640:
			case 641:
			case 642:
			case 643:
			case 644:
			case 645:
			case 646:
			case 647:
			case 648:
			case 649:
			case 650:
			case 651:
			case 653:
			case 654:
			case 655:
			case 656:
			case 657:
			case 658:
			case 659:
			case 660:
			case 661:
			case 662:
			case 663:
			case 664:
			case 665:
			case 666:
			case 667:
			case 668:
			case 670:
			case 671:
			case 672:
			case 673:
			case 674:
			case 675:
			case 676:
			case 677:
			case 678:
			case 679:
			case 680:
			case 681:
			case 682:
			case 683:
			case 684:
			case 685:
			case 686:
			case 687:
			case 689:
			case 690:
			case 692:
			case 693:
			case 694:
			case 696:
			case 697:
			case 698:
			case 699:
			case 700:
			case 701:
			case 702:
			case 703:
			case 704:
			case 705:
			case 706:
			case 707:
			case 708:
			case 709:
			case 710:
			case 711:
			case 712:
			case 713:
			case 714:
			case 715:
			case 716:
			case 717:
			case 718:
			case 719:
			case 720:
			case 721:
			case 722:
			case 723:
			case 724:
			case 725:
			case 726:
			case 727:
			case 728:
			case 729:
			case 730:
			case 731:
			case 732:
			case 733:
			case 734:
			case 735:
			case 736:
			case 737:
			case 738:
			case 739:
			case 740:
			case 741:
			case 742:
			case 743:
			case 744:
			case 745:
			case 746:
			case 747:
			case 748:
			case 749:
			case 750:
			case 751:
			case 752:
			case 753:
			case 754:
			case 755:
			case 756:
			case 758:
			case 759:
			case 760:
			case 761:
			case 762:
			case 763:
			case 764:
			case 765:
			case 766:
			case 767:
			case 768:
			case 769:
			case 770:
			case 771:
			case 772:
			case 773:
			case 774:
			case 775:
			case 777:
			case 778:
			case 779:
			case 780:
			case 781:
			case 782:
			case 783:
			case 784:
			case 785:
			case 786:
			case 787:
			case 788:
			case 789:
			case 790:
			case 791:
			case 792:
			case 793:
			case 794:
			case 795:
			case 796:
			case 797:
			case 798:
			case 799:
			case 800:
			case 801:
			case 802:
			case 803:
			case 804:
			case 805:
			case 806:
			case 807:
			case 808:
			case 809:
			case 810:
			case 811:
			case 812:
			case 813:
			case 814:
			case 815:
			case 816:
			case 817:
			case 818:
			case 819:
			case 820:
			case 821:
			case 822:
			case 823:
			case 824:
			case 825:
			case 826:
			case 827:
			case 828:
			case 829:
			case 830:
			case 831:
			case 832:
			case 833:
			case 834:
			case 835:
			case 836:
			case 837:
			case 838:
			case 839:
			case 840:
			case 841:
			case 843:
			case 844:
			case 845:
			case 846:
			case 847:
			case 848:
			case 849:
			case 850:
			case 851:
			case 852:
			case 853:
			case 854:
			case 855:
			case 856:
			case 857:
			case 858:
			case 859:
			case 861:
			case 862:
			case 863:
			case 864:
			case 865:
			case 866:
			case 867:
			case 868:
			case 869:
			case 870:
			case 871:
			case 872:
			case 873:
			case 874:
			case 875:
			case 876:
			case 877:
			case 878:
			case 879:
			case 880:
			case 881:
			case 882:
			case 883:
			case 884:
			case 885:
			case 886:
			case 888:
			case 889:
			case 890:
			case 891:
			case 892:
			case 893:
			case 894:
			case 895:
			case 896:
			case 897:
			case 898:
			case 899:
			case 900:
			case 901:
			case 902:
			case 903:
			case 904:
			case 905:
			case 906:
			case 907:
			case 908:
			case 909:
			case 910:
			case 911:
			case 912:
			case 913:
			case 914:
			case 915:
			case 916:
			case 917:
			case 918:
			case 919:
			case 920:
			case 921:
			case 922:
			case 923:
			case 924:
			case 925:
			case 926:
			case 927:
			case 928:
			case 929:
			case 930:
			case 931:
			case 932:
			case 933:
			case 934:
			case 935:
			case 936:
			case 937:
			case 938:
			case 939:
			case 940:
			case 941:
			case 942:
			case 943:
			case 944:
			case 945:
			case 946:
			case 947:
			case 948:
			case 949:
			case 950:
			case 951:
			case 952:
			case 954:
			case 955:
			case 956:
			case 957:
			case 958:
			case 959:
			case 960:
			case 961:
			case 962:
			case 963:
			case 964:
			case 965:
			case 966:
			case 967:
			case 968:
			case 969:
			case 970:
			case 971:
			case 972:
			case 973:
			case 974:
			case 975:
			case 976:
			case 977:
			case 978:
			case 979:
			case 980:
			case 981:
			case 982:
			case 983:
			case 984:
			case 985:
			case 986:
			case 987:
			case 988:
			case 989:
			case 990:
			case 991:
			case 992:
			case 993:
			case 994:
			case 995:
			case 996:
			case 997:
			case 998:
			case 999:
			case 1000:
			case 1001:
			case 1002:
			case 1003:
			case 1004:
			case 1005:
			case 1006:
			case 1007:
			case 1008:
			case 1009:
			case 1010:
			case 1011:
			case 1012:
			case 1013:
			case 1014:
			case 1015:
			case 1016:
			case 1017:
			case 1018:
			case 1019:
			case 1020:
			case 1021:
			case 1022:
			case 1023:
			case 1024:
			case 1025:
			case 1026:
			case 1027:
			case 1028:
			case 1029:
			case 1030:
			case 1031:
			case 1032:
			case 1033:
			case 1034:
			case 1035:
			case 1036:
			case 1037:
			case 1038:
			case 1039:
			case 1040:
			case 1041:
			case 1042:
			case 1043:
			case 1044:
			case 1045:
			case 1046:
			case 1047:
			case 1048:
			case 1049:
			case 1050:
			case 1051:
			case 1052:
			case 1053:
			case 1054:
			case 1055:
			case 1056:
			case 1057:
			case 1058:
			case 1059:
			case 1060:
			case 1061:
			case 1062:
			case 1063:
			case 1064:
			case 1065:
			case 1066:
			case 1067:
			case 1068:
			case 1069:
			case 1070:
			case 1071:
			case 1072:
			case 1074:
			case 1075:
			case 1076:
			case 1077:
			case 1078:
			case 1079:
			case 1080:
			case 1081:
			case 1082:
			case 1083:
			case 1084:
			case 1085:
			case 1086:
			case 1087:
			case 1089:
			case 1090:
			case 1091:
			case 1092:
			case 1093:
			case 1094:
			case 1095:
			case 1096:
			case 1098:
			case 1099:
			case 1100:
			case 1101:
			case 1102:
			case 1103:
			case 1104:
			case 1105:
			case 1106:
			case 1107:
			case 1108:
			case 1109:
			case 1110:
			case 1111:
			case 1112:
			case 1113:
			case 1114:
			case 1116:
			case 1117:
			case 1118:
			case 1119:
			case 1120:
			case 1121:
			case 1122:
			case 1123:
			case 1124:
			case 1125:
			case 1127:
			case 1129:
			case 1130:
			case 1131:
			case 1132:
			case 1133:
			case 1134:
			case 1135:
			case 1136:
			case 1137:
			case 1138:
			case 1139:
			case 1140:
			case 1142:
			case 1143:
			case 1144:
			case 1145:
			case 1146:
			case 1147:
			case 1148:
			case 1149:
			case 1150:
			case 1151:
			case 1152:
			case 1153:
			case 1154:
			case 1155:
			case 1156:
			case 1157:
			case 1158:
			case 1159:
			case 1160:
			case 1161:
			case 1162:
			case 1163:
			case 1164:
			case 1165:
			case 1166:
			case 1167:
			case 1169:
			case 1170:
			case 1171:
			case 1173:
			case 1174:
			case 1175:
			case 1176:
			case 1177:
			case 1178:
			case 1179:
			case 1180:
			case 1181:
			case 1182:
			case 1183:
			case 1184:
			case 1185:
			case 1186:
			case 1187:
			case 1188:
			case 1189:
			case 1190:
			case 1191:
			case 1192:
			case 1193:
			case 1194:
			case 1195:
			case 1197:
			case 1198:
			case 1199:
			case 1200:
			case 1201:
			case 1202:
			case 1203:
			case 1204:
			case 1205:
			case 1206:
			case 1207:
			case 1208:
			case 1209:
			case 1210:
			case 1211:
			case 1212:
			case 1213:
			case 1214:
			case 1215:
			case 1216:
			case 1217:
			case 1218:
			case 1219:
			case 1220:
			case 1221:
			case 1222:
			case 1223:
			case 1224:
			case 1225:
			case 1226:
			case 1228:
			case 1229:
			case 1230:
			case 1231:
			case 1232:
			case 1236:
			case 1237:
			case 1241:
			case 1242:
			case 1243:
			case 1244:
			case 1245:
			case 1246:
			case 1247:
			case 1248:
			case 1249:
			case 1250:
			case 1252:
			case 1253:
			case 1254:
			case 1255:
			case 1256:
			case 1257:
			case 1258:
			case 1259:
			case 1260:
			case 1261:
			case 1262:
			case 1263:
			case 1264:
			case 1265:
			case 1266:
			case 1267:
			case 1268:
			case 1269:
			case 1270:
			case 1271:
			case 1272:
			case 1273:
			case 1274:
			case 1275:
			case 1276:
			case 1277:
			case 1278:
			case 1279:
			case 1280:
			case 1281:
			case 1282:
			case 1283:
			case 1284:
			case 1285:
			case 1286:
			case 1287:
			case 1288:
			case 1289:
			case 1290:
			case 1291:
			case 1292:
			case 1293:
			case 1294:
			case 1295:
			case 1296:
			case 1297:
			case 1298:
			case 1299:
			case 1300:
			case 1301:
			case 1302:
			case 1303:
			case 1304:
			case 1305:
			case 1306:
			case 1308:
			case 1309:
			case 1310:
			case 1311:
			case 1312:
			case 1313:
			case 1314:
			case 1315:
			case 1316:
			case 1317:
			case 1318:
			case 1319:
			case 1320:
			case 1321:
			case 1322:
			case 1323:
			case 1325:
			case 1326:
			case 1327:
			case 1328:
			case 1329:
			case 1330:
			case 1331:
			case 1332:
			case 1333:
			case 1334:
			case 1335:
			case 1336:
			case 1337:
			case 1338:
			case 1339:
			case 1340:
			case 1341:
			case 1342:
			case 1343:
			case 1344:
			case 1345:
			case 1346:
			case 1347:
			case 1348:
			case 1349:
			case 1350:
			case 1351:
			case 1352:
			case 1353:
			case 1354:
			case 1355:
			case 1356:
			case 1357:
			case 1358:
			case 1359:
			case 1360:
			case 1361:
			case 1362:
			case 1363:
			case 1364:
			case 1365:
			case 1366:
			case 1367:
			case 1368:
			case 1369:
			case 1370:
			case 1371:
			case 1372:
			case 1373:
			case 1374:
			case 1375:
			case 1376:
			case 1377:
			case 1378:
			case 1379:
			case 1380:
			case 1381:
			case 1382:
			case 1383:
			case 1384:
			case 1385:
			case 1386:
			case 1387:
			case 1388:
			case 1389:
			case 1390:
			case 1391:
			case 1392:
			case 1393:
			case 1394:
			case 1395:
			case 1396:
			case 1397:
			case 1399:
			case 1400:
			case 1401:
			case 1402:
			case 1403:
			case 1404:
			case 1405:
			case 1406:
			case 1407:
			case 1408:
			case 1409:
			case 1410:
			case 1411:
			case 1412:
			case 1413:
			case 1414:
			case 1416:
			case 1417:
			case 1418:
			case 1419:
			case 1420:
			case 1421:
			case 1422:
			case 1423:
			case 1424:
			case 1425:
			case 1426:
			case 1427:
			case 1428:
			case 1429:
			case 1430:
			case 1431:
			case 1432:
			case 1433:
			case 1435:
			case 1436:
			case 1437:
			case 1438:
			case 1439:
			case 1440:
			case 1441:
			case 1442:
			case 1443:
			case 1444:
			case 1445:
			case 1446:
			case 1447:
			case 1448:
			case 1449:
			case 1450:
			case 1451:
			case 1452:
			case 1453:
			case 1454:
			case 1455:
			case 1456:
			case 1457:
			case 1458:
			case 1459:
			case 1460:
			case 1461:
			case 1462:
			case 1463:
			case 1464:
			case 1465:
			case 1466:
			case 1467:
			case 1468:
			case 1469:
			case 1470:
			case 1471:
			case 1472:
			case 1473:
			case 1474:
			case 1475:
			case 1476:
			case 1477:
			case 1478:
			case 1479:
			case 1480:
			case 1481:
			case 1482:
			case 1483:
			case 1484:
			case 1485:
			case 1486:
			case 1487:
			case 1488:
			case 1489:
			case 1491:
			case 1492:
			case 1493:
			case 1494:
			case 1495:
			case 1496:
			case 1497:
			case 1499:
			case 1500:
			case 1501:
			case 1502:
			case 1503:
			case 1504:
			case 1505:
			case 1506:
			case 1507:
			case 1508:
			case 1509:
			case 1510:
			case 1511:
			case 1512:
			case 1513:
			case 1514:
			case 1515:
			case 1516:
			case 1518:
			case 1519:
			case 1520:
			case 1521:
			case 1522:
			case 1523:
			case 1524:
			case 1525:
			case 1526:
			case 1527:
			case 1528:
			case 1529:
			case 1530:
			case 1531:
			case 1532:
			case 1533:
			case 1534:
			case 1536:
			case 1537:
			case 1538:
			case 1539:
			case 1540:
			case 1541:
			case 1542:
			case 1543:
			case 1544:
			case 1545:
			case 1546:
			case 1547:
			case 1548:
			case 1549:
			case 1550:
			case 1551:
			case 1552:
			case 1553:
			case 1554:
			case 1555:
			case 1556:
			case 1557:
			case 1558:
			case 1559:
			case 1560:
			case 1561:
			case 1562:
			case 1563:
			case 1564:
			case 1565:
			case 1566:
			case 1567:
			case 1568:
			case 1570:
			case 1571:
			case 1572:
			case 1573:
			case 1574:
			case 1575:
			case 1576:
			case 1577:
			case 1578:
			case 1579:
			case 1580:
			case 1581:
			case 1582:
			case 1583:
			case 1584:
			case 1585:
			case 1586:
			case 1587:
			case 1588:
			case 1589:
			case 1590:
			case 1591:
			case 1592:
			case 1593:
			case 1594:
			case 1595:
			case 1596:
			case 1597:
			case 1598:
			case 1599:
			case 1600:
			case 1601:
			case 1602:
			case 1603:
			case 1604:
			case 1605:
			case 1606:
			case 1607:
			case 1608:
			case 1609:
			case 1610:
			case 1611:
			case 1612:
			case 1613:
			case 1614:
			case 1615:
			case 1616:
			case 1617:
			case 1618:
			case 1619:
			case 1620:
			case 1621:
			case 1622:
			case 1623:
			case 1624:
			case 1625:
			case 1626:
			case 1628:
			case 1629:
			case 1630:
			case 1631:
			case 1632:
			case 1633:
			case 1634:
			case 1635:
			case 1636:
			case 1637:
			case 1638:
			case 1639:
			case 1640:
			case 1641:
			case 1642:
			case 1643:
			case 1644:
			case 1645:
			case 1646:
			case 1647:
			case 1648:
			case 1649:
			case 1650:
			case 1651:
			case 1652:
			case 1653:
			case 1654:
			case 1655:
			case 1656:
			case 1657:
			case 1658:
			case 1659:
			case 1660:
			case 1661:
			case 1662:
			case 1663:
			case 1664:
			case 1665:
			case 1666:
			case 1667:
			case 1668:
			case 1669:
			case 1670:
			case 1671:
			case 1672:
			case 1673:
			case 1674:
			case 1675:
			case 1676:
			case 1677:
			case 1678:
			case 1679:
			case 1680:
			case 1681:
			case 1682:
			case 1683:
			case 1684:
			case 1685:
			case 1686:
			case 1687:
			case 1688:
			case 1689:
			case 1690:
			case 1691:
			case 1692:
			case 1693:
			case 1694:
			case 1695:
			case 1696:
			case 1697:
			case 1698:
			case 1699:
			case 1700:
			case 1701:
			case 1702:
			case 1703:
			case 1704:
			case 1705:
			case 1706:
			case 1707:
			case 1708:
			case 1709:
			case 1710:
			case 1711:
			case 1712:
			case 1713:
			case 1714:
			case 1715:
			case 1716:
			case 1717:
			case 1718:
			case 1719:
			case 1720:
			case 1721:
			case 1722:
			case 1723:
			case 1724:
			case 1725:
			case 1726:
			case 1727:
			case 1728:
			case 1729:
			case 1730:
			case 1731:
			case 1732:
			case 1733:
			case 1734:
			case 1735:
			case 1736:
			case 1737:
			case 1738:
			case 1739:
			case 1740:
			case 1741:
			case 1742:
			case 1743:
			case 1744:
			case 1745:
			case 1746:
			case 1747:
			case 1748:
			case 1749:
			case 1750:
			case 1751:
			case 1752:
			case 1753:
			case 1754:
			case 1755:
			case 1756:
			case 1757:
			case 1758:
			case 1759:
			case 1760:
			case 1761:
			case 1762:
			case 1763:
			case 1764:
			case 1765:
			case 1766:
			case 1767:
			case 1768:
			case 1769:
			case 1770:
			case 1771:
			case 1772:
			case 1773:
			case 1774:
			case 1775:
			case 1776:
			case 1777:
			case 1778:
			case 1779:
			case 1780:
			case 1781:
			case 1782:
			case 1783:
			case 1784:
			case 1785:
			case 1786:
			case 1787:
			case 1788:
			case 1789:
			case 1790:
			case 1791:
			case 1792:
			case 1793:
			case 1794:
			case 1795:
			case 1796:
			case 1797:
			case 1798:
			case 1799:
			case 1800:
			case 1801:
			case 1802:
			case 1803:
			case 1804:
			case 1805:
			case 1806:
			case 1807:
			case 1808:
			case 1809:
			case 1810:
			case 1811:
			case 1812:
			case 1813:
			case 1814:
			case 1815:
			case 1816:
			case 1817:
			case 1818:
			case 1819:
			case 1820:
			case 1821:
			case 1822:
			case 1823:
			case 1824:
			case 1825:
			case 1826:
			case 1827:
			case 1828:
			case 1829:
			case 1830:
			case 1831:
			case 1832:
			case 1833:
			case 1834:
			case 1835:
			case 1836:
			case 1837:
			case 1838:
			case 1839:
			case 1840:
			case 1841:
			case 1842:
			case 1843:
			case 1844:
			case 1845:
			case 1846:
			case 1847:
			case 1848:
			case 1849:
			case 1850:
			case 1851:
			case 1852:
			case 1853:
			case 1854:
			case 1855:
			case 1856:
			case 1857:
			case 1858:
			case 1859:
			case 1860:
			case 1861:
			case 1862:
			case 1863:
			case 1864:
			case 1865:
			case 1866:
			case 1867:
			case 1868:
			case 1869:
			case 1870:
			case 1871:
			case 1872:
			case 1873:
			case 1874:
			case 1875:
			case 1876:
			case 1877:
			case 1878:
			case 1879:
			case 1880:
			case 1881:
			case 1882:
			case 1883:
			case 1884:
			case 1885:
			case 1886:
			case 1887:
			case 1888:
			case 1889:
			case 1890:
			case 1891:
			case 1892:
			case 1893:
			case 1894:
			case 1895:
			case 1896:
			case 1897:
			case 1898:
			case 1899:
			case 1900:
			case 1901:
			case 1902:
			case 1903:
			case 1904:
			case 1905:
			case 1906:
			case 1907:
			case 1908:
			case 1909:
			case 1910:
			case 1911:
			case 1912:
			case 1913:
			case 1914:
			case 1915:
			case 1916:
			case 1917:
			case 1918:
			case 1919:
			case 1920:
			case 1921:
			case 1922:
			case 1923:
			case 1924:
			case 1925:
			case 1926:
			case 1927:
			case 1928:
			case 1929:
			case 1930:
			case 1931:
			case 1932:
			case 1933:
			case 1934:
			case 1935:
			case 1936:
			case 1937:
			case 1939:
			case 1940:
			case 1941:
			case 1942:
			case 1943:
			case 1944:
			case 1945:
			case 1946:
			case 1947:
			case 1948:
			case 1949:
			case 1950:
			case 1951:
			case 1952:
			case 1953:
			case 1954:
			case 1955:
			case 1956:
			case 1957:
			case 1958:
			case 1959:
			case 1960:
			case 1961:
			case 1962:
			case 1963:
			case 1965:
			case 1966:
			case 1967:
			case 1968:
			case 1969:
			case 1970:
			case 1971:
			case 1972:
			case 1973:
			case 1974:
			case 1975:
			case 1976:
			case 1977:
			case 1978:
			case 1979:
			case 1980:
			case 1981:
			case 1982:
			case 1983:
			case 1984:
			case 1985:
			case 1986:
			case 1987:
			case 1988:
			case 1989:
			case 1990:
			case 1991:
			case 1992:
			case 1993:
			case 1994:
			case 1995:
			case 1996:
			case 1997:
			case 1998:
			case 1999:
			case 2000:
			case 2003:
			case 2004:
			case 2005:
			case 2006:
			case 2007:
			case 2008:
			case 2009:
			case 2010:
			case 2011:
			case 2012:
			case 2013:
			case 2014:
			case 2015:
			case 2016:
			case 2017:
			case 2018:
			case 2019:
			case 2020:
			case 2021:
			case 2022:
			case 2023:
			case 2024:
			case 2026:
			case 2027:
			case 2028:
			case 2029:
			case 2030:
			case 2031:
			case 2032:
			case 2033:
			case 2034:
			case 2035:
			case 2036:
			case 2037:
			case 2038:
			case 2039:
			case 2040:
			case 2041:
			case 2042:
			case 2043:
			case 2044:
			case 2045:
			case 2046:
			case 2047:
			case 2048:
			case 2049:
			case 2050:
			case 2051:
			case 2052:
			case 2053:
			case 2054:
			case 2055:
			case 2056:
			case 2057:
			case 2058:
			case 2059:
			case 2060:
			case 2061:
			case 2062:
			case 2063:
			case 2064:
			case 2065:
			case 2066:
			case 2067:
			case 2068:
			case 2069:
			case 2070:
			case 2071:
			case 2072:
			case 2074:
			case 2075:
			case 2076:
			case 2077:
			case 2078:
			case 2079:
			case 2080:
			case 2081:
			case 2082:
			case 2083:
			case 2084:
			case 2085:
			case 2086:
			case 2087:
			case 2088:
			case 2089:
			case 2090:
			case 2091:
			case 2092:
			case 2093:
			case 2094:
			case 2095:
			case 2096:
			case 2097:
			case 2098:
			case 2100:
			case 2101:
			case 2102:
			case 2103:
			case 2104:
			case 2105:
			case 2106:
			case 2107:
			case 2108:
			case 2109:
			case 2110:
			case 2111:
			case 2112:
			case 2113:
			case 2115:
			case 2116:
			case 2117:
			case 2118:
			case 2119:
			case 2120:
			case 2122:
			case 2123:
			case 2124:
			case 2125:
			case 2126:
			case 2128:
			case 2129:
			case 2130:
			case 2131:
			case 2132:
			case 2133:
			case 2134:
			case 2135:
			case 2136:
			case 2137:
			case 2138:
			case 2139:
			case 2140:
			case 2141:
			case 2142:
			case 2143:
			case 2145:
			case 2146:
			case 2147:
			case 2148:
			case 2149:
			case 2150:
			case 2151:
			case 2152:
			case 2153:
			case 2154:
			case 2155:
			case 2156:
			case 2157:
			case 2158:
			case 2159:
			case 2160:
			case 2161:
			case 2162:
			case 2163:
			case 2164:
			case 2165:
			case 2166:
			case 2168:
			case 2169:
			case 2170:
			case 2171:
			case 2172:
			case 2173:
			case 2174:
			case 2175:
			case 2176:
			case 2177:
			case 2178:
			case 2179:
			case 2180:
			case 2181:
			case 2182:
			case 2183:
			case 2184:
			case 2185:
			case 2186:
			case 2187:
			case 2188:
			case 2189:
			case 2191:
			case 2192:
			case 2193:
			case 2194:
			case 2195:
			case 2196:
			case 2197:
			case 2198:
			case 2199:
			case 2200:
			case 2201:
			case 2202:
			case 2203:
			case 2204:
			case 2205:
			case 2206:
			case 2207:
			case 2208:
			case 2209:
			case 2210:
			case 2211:
			case 2216:
			case 2220:
			case 2246:
			case 2252:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 9610;
				this.column_name();
				this.state = 9611;
				this.match(PlSqlParser.EQUALS_OP);
				this.state = 9612;
				this.expression();
				}
				break;
			case 2223:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 9614;
				this.paren_column_list();
				this.state = 9615;
				this.match(PlSqlParser.EQUALS_OP);
				this.state = 9616;
				this.subquery();
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public delete_statement(): Delete_statementContext {
		let localctx: Delete_statementContext = new Delete_statementContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1170, PlSqlParser.RULE_delete_statement);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 9620;
			this.match(PlSqlParser.DELETE);
			this.state = 9622;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===554) {
				{
				this.state = 9621;
				this.match(PlSqlParser.FROM);
				}
			}

			this.state = 9624;
			this.general_table_ref();
			this.state = 9626;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1284, this._ctx) ) {
			case 1:
				{
				this.state = 9625;
				this.where_clause();
				}
				break;
			}
			this.state = 9629;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1285, this._ctx) ) {
			case 1:
				{
				this.state = 9628;
				this.static_returning_clause();
				}
				break;
			}
			this.state = 9632;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1286, this._ctx) ) {
			case 1:
				{
				this.state = 9631;
				this.error_logging_clause();
				}
				break;
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public insert_statement(): Insert_statementContext {
		let localctx: Insert_statementContext = new Insert_statementContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1172, PlSqlParser.RULE_insert_statement);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 9634;
			this.match(PlSqlParser.INSERT);
			this.state = 9637;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 691:
				{
				this.state = 9635;
				this.single_table_insert();
				}
				break;
			case 35:
			case 526:
			case 2113:
				{
				this.state = 9636;
				this.multi_table_insert();
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public single_table_insert(): Single_table_insertContext {
		let localctx: Single_table_insertContext = new Single_table_insertContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1174, PlSqlParser.RULE_single_table_insert);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 9639;
			this.insert_into_clause();
			this.state = 9645;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 2073:
				{
				this.state = 9640;
				this.values_clause();
				this.state = 9642;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 1288, this._ctx) ) {
				case 1:
					{
					this.state = 9641;
					this.static_returning_clause();
					}
					break;
				}
				}
				break;
			case 1490:
			case 2121:
			case 2223:
				{
				this.state = 9644;
				this.select_statement();
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
			this.state = 9648;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1290, this._ctx) ) {
			case 1:
				{
				this.state = 9647;
				this.error_logging_clause();
				}
				break;
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public multi_table_insert(): Multi_table_insertContext {
		let localctx: Multi_table_insertContext = new Multi_table_insertContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1176, PlSqlParser.RULE_multi_table_insert);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 9657;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1292, this._ctx) ) {
			case 1:
				{
				this.state = 9650;
				this.match(PlSqlParser.ALL);
				this.state = 9652;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				do {
					{
					{
					this.state = 9651;
					this.multi_table_element();
					}
					}
					this.state = 9654;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				} while (_la===691);
				}
				break;
			case 2:
				{
				this.state = 9656;
				this.conditional_insert_clause();
				}
				break;
			}
			this.state = 9659;
			this.select_statement();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public multi_table_element(): Multi_table_elementContext {
		let localctx: Multi_table_elementContext = new Multi_table_elementContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1178, PlSqlParser.RULE_multi_table_element);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 9661;
			this.insert_into_clause();
			this.state = 9663;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===2073) {
				{
				this.state = 9662;
				this.values_clause();
				}
			}

			this.state = 9666;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===783) {
				{
				this.state = 9665;
				this.error_logging_clause();
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public conditional_insert_clause(): Conditional_insert_clauseContext {
		let localctx: Conditional_insert_clauseContext = new Conditional_insert_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1180, PlSqlParser.RULE_conditional_insert_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 9669;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===35 || _la===526) {
				{
				this.state = 9668;
				_la = this._input.LA(1);
				if(!(_la===35 || _la===526)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				}
			}

			this.state = 9672;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			do {
				{
				{
				this.state = 9671;
				this.conditional_insert_when_part();
				}
				}
				this.state = 9674;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			} while (_la===2113);
			this.state = 9677;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===432) {
				{
				this.state = 9676;
				this.conditional_insert_else_part();
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public conditional_insert_when_part(): Conditional_insert_when_partContext {
		let localctx: Conditional_insert_when_partContext = new Conditional_insert_when_partContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1182, PlSqlParser.RULE_conditional_insert_when_part);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 9679;
			this.match(PlSqlParser.WHEN);
			this.state = 9680;
			this.condition();
			this.state = 9681;
			this.match(PlSqlParser.THEN);
			this.state = 9683;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			do {
				{
				{
				this.state = 9682;
				this.multi_table_element();
				}
				}
				this.state = 9685;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			} while (_la===691);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public conditional_insert_else_part(): Conditional_insert_else_partContext {
		let localctx: Conditional_insert_else_partContext = new Conditional_insert_else_partContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1184, PlSqlParser.RULE_conditional_insert_else_part);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 9687;
			this.match(PlSqlParser.ELSE);
			this.state = 9689;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			do {
				{
				{
				this.state = 9688;
				this.multi_table_element();
				}
				}
				this.state = 9691;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			} while (_la===691);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public insert_into_clause(): Insert_into_clauseContext {
		let localctx: Insert_into_clauseContext = new Insert_into_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1186, PlSqlParser.RULE_insert_into_clause);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 9693;
			this.match(PlSqlParser.INTO);
			this.state = 9694;
			this.general_table_ref();
			this.state = 9696;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1300, this._ctx) ) {
			case 1:
				{
				this.state = 9695;
				this.paren_column_list();
				}
				break;
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public values_clause(): Values_clauseContext {
		let localctx: Values_clauseContext = new Values_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1188, PlSqlParser.RULE_values_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 9698;
			this.match(PlSqlParser.VALUES);
			this.state = 9699;
			this.match(PlSqlParser.LEFT_PAREN);
			this.state = 9701;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & 2684352383) !== 0) || ((((_la - 64)) & ~0x1F) === 0 && ((1 << (_la - 64)) & 3220168703) !== 0) || ((((_la - 96)) & ~0x1F) === 0 && ((1 << (_la - 96)) & 4294965247) !== 0) || ((((_la - 128)) & ~0x1F) === 0 && ((1 << (_la - 128)) & 2147221503) !== 0) || ((((_la - 160)) & ~0x1F) === 0 && ((1 << (_la - 160)) & 4293910527) !== 0) || ((((_la - 192)) & ~0x1F) === 0 && ((1 << (_la - 192)) & 4294967295) !== 0) || ((((_la - 224)) & ~0x1F) === 0 && ((1 << (_la - 224)) & 4160749311) !== 0) || ((((_la - 256)) & ~0x1F) === 0 && ((1 << (_la - 256)) & 4294967295) !== 0) || ((((_la - 289)) & ~0x1F) === 0 && ((1 << (_la - 289)) & 2147483647) !== 0) || ((((_la - 321)) & ~0x1F) === 0 && ((1 << (_la - 321)) & 4294967295) !== 0) || ((((_la - 353)) & ~0x1F) === 0 && ((1 << (_la - 353)) & 4294705151) !== 0) || ((((_la - 385)) & ~0x1F) === 0 && ((1 << (_la - 385)) & 2080374527) !== 0) || ((((_la - 417)) & ~0x1F) === 0 && ((1 << (_la - 417)) & 4026433535) !== 0) || ((((_la - 449)) & ~0x1F) === 0 && ((1 << (_la - 449)) & 4261412863) !== 0) || ((((_la - 481)) & ~0x1F) === 0 && ((1 << (_la - 481)) & 4294967295) !== 0) || ((((_la - 513)) & ~0x1F) === 0 && ((1 << (_la - 513)) & 4294967295) !== 0) || ((((_la - 545)) & ~0x1F) === 0 && ((1 << (_la - 545)) & 3925868029) !== 0) || ((((_la - 577)) & ~0x1F) === 0 && ((1 << (_la - 577)) & 4278189823) !== 0) || ((((_la - 609)) & ~0x1F) === 0 && ((1 << (_la - 609)) & 4290772991) !== 0) || ((((_la - 641)) & ~0x1F) === 0 && ((1 << (_la - 641)) & 4026529791) !== 0) || ((((_la - 673)) & ~0x1F) === 0 && ((1 << (_la - 673)) & 4290478079) !== 0) || ((((_la - 705)) & ~0x1F) === 0 && ((1 << (_la - 705)) & 4294967295) !== 0) || ((((_la - 737)) & ~0x1F) === 0 && ((1 << (_la - 737)) & 4293918719) !== 0) || ((((_la - 769)) & ~0x1F) === 0 && ((1 << (_la - 769)) & 4294967167) !== 0) || ((((_la - 801)) & ~0x1F) === 0 && ((1 << (_la - 801)) & 4294967295) !== 0) || ((((_la - 833)) & ~0x1F) === 0 && ((1 << (_la - 833)) & 4160749055) !== 0) || ((((_la - 865)) & ~0x1F) === 0 && ((1 << (_la - 865)) & 4290772991) !== 0) || ((((_la - 897)) & ~0x1F) === 0 && ((1 << (_la - 897)) & 4294967295) !== 0) || ((((_la - 929)) & ~0x1F) === 0 && ((1 << (_la - 929)) & 4278190079) !== 0) || ((((_la - 961)) & ~0x1F) === 0 && ((1 << (_la - 961)) & 4294967295) !== 0) || ((((_la - 993)) & ~0x1F) === 0 && ((1 << (_la - 993)) & 4294967295) !== 0) || ((((_la - 1025)) & ~0x1F) === 0 && ((1 << (_la - 1025)) & 4294967295) !== 0) || ((((_la - 1057)) & ~0x1F) === 0 && ((1 << (_la - 1057)) & 2147483647) !== 0) || ((((_la - 1089)) & ~0x1F) === 0 && ((1 << (_la - 1089)) & 4227858431) !== 0) || ((((_la - 1121)) & ~0x1F) === 0 && ((1 << (_la - 1121)) & 4293918559) !== 0) || ((((_la - 1153)) & ~0x1F) === 0 && ((1 << (_la - 1153)) & 4294410239) !== 0) || ((((_la - 1185)) & ~0x1F) === 0 && ((1 << (_la - 1185)) & 4294965247) !== 0) || ((((_la - 1217)) & ~0x1F) === 0 && ((1 << (_la - 1217)) & 4279827455) !== 0) || ((((_la - 1249)) & ~0x1F) === 0 && ((1 << (_la - 1249)) & 4294967291) !== 0) || ((((_la - 1281)) & ~0x1F) === 0 && ((1 << (_la - 1281)) & 4294967295) !== 0) || ((((_la - 1313)) & ~0x1F) === 0 && ((1 << (_la - 1313)) & 4294965247) !== 0) || ((((_la - 1345)) & ~0x1F) === 0 && ((1 << (_la - 1345)) & 4294967295) !== 0) || ((((_la - 1377)) & ~0x1F) === 0 && ((1 << (_la - 1377)) & 4292870143) !== 0) || ((((_la - 1409)) & ~0x1F) === 0 && ((1 << (_la - 1409)) & 4261412799) !== 0) || ((((_la - 1441)) & ~0x1F) === 0 && ((1 << (_la - 1441)) & 4294967295) !== 0) || ((((_la - 1473)) & ~0x1F) === 0 && ((1 << (_la - 1473)) & 4261281791) !== 0) || ((((_la - 1505)) & ~0x1F) === 0 && ((1 << (_la - 1505)) & 3221221375) !== 0) || ((((_la - 1537)) & ~0x1F) === 0 && ((1 << (_la - 1537)) & 4294967295) !== 0) || ((((_la - 1570)) & ~0x1F) === 0 && ((1 << (_la - 1570)) & 4294967295) !== 0) || ((((_la - 1602)) & ~0x1F) === 0 && ((1 << (_la - 1602)) & 4261412863) !== 0) || ((((_la - 1634)) & ~0x1F) === 0 && ((1 << (_la - 1634)) & 4294967295) !== 0) || ((((_la - 1666)) & ~0x1F) === 0 && ((1 << (_la - 1666)) & 4294967295) !== 0) || ((((_la - 1698)) & ~0x1F) === 0 && ((1 << (_la - 1698)) & 4294967295) !== 0) || ((((_la - 1730)) & ~0x1F) === 0 && ((1 << (_la - 1730)) & 4294967295) !== 0) || ((((_la - 1762)) & ~0x1F) === 0 && ((1 << (_la - 1762)) & 4294967295) !== 0) || ((((_la - 1794)) & ~0x1F) === 0 && ((1 << (_la - 1794)) & 4294967295) !== 0) || ((((_la - 1826)) & ~0x1F) === 0 && ((1 << (_la - 1826)) & 4294967295) !== 0) || ((((_la - 1858)) & ~0x1F) === 0 && ((1 << (_la - 1858)) & 4294967295) !== 0) || ((((_la - 1890)) & ~0x1F) === 0 && ((1 << (_la - 1890)) & 4294967295) !== 0) || ((((_la - 1922)) & ~0x1F) === 0 && ((1 << (_la - 1922)) & 4294901759) !== 0) || ((((_la - 1954)) & ~0x1F) === 0 && ((1 << (_la - 1954)) & 4294966271) !== 0) || ((((_la - 1986)) & ~0x1F) === 0 && ((1 << (_la - 1986)) & 4294868991) !== 0) || ((((_la - 2018)) & ~0x1F) === 0 && ((1 << (_la - 2018)) & 4294967167) !== 0) || ((((_la - 2050)) & ~0x1F) === 0 && ((1 << (_la - 2050)) & 4286578687) !== 0) || ((((_la - 2082)) & ~0x1F) === 0 && ((1 << (_la - 2082)) & 4294836223) !== 0) || ((((_la - 2115)) & ~0x1F) === 0 && ((1 << (_la - 2115)) & 3758092223) !== 0) || ((((_la - 2147)) & ~0x1F) === 0 && ((1 << (_la - 2147)) & 4293918719) !== 0) || ((((_la - 2179)) & ~0x1F) === 0 && ((1 << (_la - 2179)) & 4294967295) !== 0) || ((((_la - 2211)) & ~0x1F) === 0 && ((1 << (_la - 2211)) & 541266915) !== 0) || _la===2246 || _la===2252) {
				{
				this.state = 9700;
				this.expressions();
				}
			}

			this.state = 9703;
			this.match(PlSqlParser.RIGHT_PAREN);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public merge_statement(): Merge_statementContext {
		let localctx: Merge_statementContext = new Merge_statementContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1190, PlSqlParser.RULE_merge_statement);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 9705;
			this.match(PlSqlParser.MERGE);
			this.state = 9706;
			this.match(PlSqlParser.INTO);
			this.state = 9707;
			this.tableview_name();
			this.state = 9709;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1302, this._ctx) ) {
			case 1:
				{
				this.state = 9708;
				this.table_alias();
				}
				break;
			}
			this.state = 9711;
			this.match(PlSqlParser.USING);
			this.state = 9712;
			this.selected_tableview();
			this.state = 9713;
			this.match(PlSqlParser.ON);
			this.state = 9714;
			this.match(PlSqlParser.LEFT_PAREN);
			this.state = 9715;
			this.condition();
			this.state = 9716;
			this.match(PlSqlParser.RIGHT_PAREN);
			this.state = 9725;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1305, this._ctx) ) {
			case 1:
				{
				this.state = 9717;
				this.merge_update_clause();
				this.state = 9719;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 1303, this._ctx) ) {
				case 1:
					{
					this.state = 9718;
					this.merge_insert_clause();
					}
					break;
				}
				}
				break;
			case 2:
				{
				this.state = 9721;
				this.merge_insert_clause();
				this.state = 9723;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 1304, this._ctx) ) {
				case 1:
					{
					this.state = 9722;
					this.merge_update_clause();
					}
					break;
				}
				}
				break;
			}
			this.state = 9728;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1306, this._ctx) ) {
			case 1:
				{
				this.state = 9727;
				this.error_logging_clause();
				}
				break;
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public merge_update_clause(): Merge_update_clauseContext {
		let localctx: Merge_update_clauseContext = new Merge_update_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1192, PlSqlParser.RULE_merge_update_clause);
		try {
			let _alt: number;
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 9730;
			this.match(PlSqlParser.WHEN);
			this.state = 9731;
			this.match(PlSqlParser.MATCHED);
			this.state = 9732;
			this.match(PlSqlParser.THEN);
			this.state = 9733;
			this.match(PlSqlParser.UPDATE);
			this.state = 9734;
			this.match(PlSqlParser.SET);
			this.state = 9735;
			this.merge_element();
			this.state = 9740;
			this._errHandler.sync(this);
			_alt = this._interp.adaptivePredict(this._input, 1307, this._ctx);
			while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) {
				if (_alt === 1) {
					{
					{
					this.state = 9736;
					this.match(PlSqlParser.COMMA);
					this.state = 9737;
					this.merge_element();
					}
					}
				}
				this.state = 9742;
				this._errHandler.sync(this);
				_alt = this._interp.adaptivePredict(this._input, 1307, this._ctx);
			}
			this.state = 9744;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1308, this._ctx) ) {
			case 1:
				{
				this.state = 9743;
				this.where_clause();
				}
				break;
			}
			this.state = 9747;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1309, this._ctx) ) {
			case 1:
				{
				this.state = 9746;
				this.merge_update_delete_part();
				}
				break;
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public merge_element(): Merge_elementContext {
		let localctx: Merge_elementContext = new Merge_elementContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1194, PlSqlParser.RULE_merge_element);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 9749;
			this.column_name();
			this.state = 9750;
			this.match(PlSqlParser.EQUALS_OP);
			this.state = 9751;
			this.expression();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public merge_update_delete_part(): Merge_update_delete_partContext {
		let localctx: Merge_update_delete_partContext = new Merge_update_delete_partContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1196, PlSqlParser.RULE_merge_update_delete_part);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 9753;
			this.match(PlSqlParser.DELETE);
			this.state = 9754;
			this.where_clause();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public merge_insert_clause(): Merge_insert_clauseContext {
		let localctx: Merge_insert_clauseContext = new Merge_insert_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1198, PlSqlParser.RULE_merge_insert_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 9756;
			this.match(PlSqlParser.WHEN);
			this.state = 9757;
			this.match(PlSqlParser.NOT);
			this.state = 9758;
			this.match(PlSqlParser.MATCHED);
			this.state = 9759;
			this.match(PlSqlParser.THEN);
			this.state = 9760;
			this.match(PlSqlParser.INSERT);
			this.state = 9762;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===2223) {
				{
				this.state = 9761;
				this.paren_column_list();
				}
			}

			this.state = 9764;
			this.match(PlSqlParser.VALUES);
			this.state = 9765;
			this.match(PlSqlParser.LEFT_PAREN);
			this.state = 9767;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & 2684352383) !== 0) || ((((_la - 64)) & ~0x1F) === 0 && ((1 << (_la - 64)) & 3220168703) !== 0) || ((((_la - 96)) & ~0x1F) === 0 && ((1 << (_la - 96)) & 4294965247) !== 0) || ((((_la - 128)) & ~0x1F) === 0 && ((1 << (_la - 128)) & 2147221503) !== 0) || ((((_la - 160)) & ~0x1F) === 0 && ((1 << (_la - 160)) & 4293910527) !== 0) || ((((_la - 192)) & ~0x1F) === 0 && ((1 << (_la - 192)) & 4294967295) !== 0) || ((((_la - 224)) & ~0x1F) === 0 && ((1 << (_la - 224)) & 4160749311) !== 0) || ((((_la - 256)) & ~0x1F) === 0 && ((1 << (_la - 256)) & 4294967295) !== 0) || ((((_la - 289)) & ~0x1F) === 0 && ((1 << (_la - 289)) & 2147483647) !== 0) || ((((_la - 321)) & ~0x1F) === 0 && ((1 << (_la - 321)) & 4294967295) !== 0) || ((((_la - 353)) & ~0x1F) === 0 && ((1 << (_la - 353)) & 4294705151) !== 0) || ((((_la - 385)) & ~0x1F) === 0 && ((1 << (_la - 385)) & 2080374527) !== 0) || ((((_la - 417)) & ~0x1F) === 0 && ((1 << (_la - 417)) & 4026433535) !== 0) || ((((_la - 449)) & ~0x1F) === 0 && ((1 << (_la - 449)) & 4261412863) !== 0) || ((((_la - 481)) & ~0x1F) === 0 && ((1 << (_la - 481)) & 4294967295) !== 0) || ((((_la - 513)) & ~0x1F) === 0 && ((1 << (_la - 513)) & 4294967295) !== 0) || ((((_la - 545)) & ~0x1F) === 0 && ((1 << (_la - 545)) & 3925868029) !== 0) || ((((_la - 577)) & ~0x1F) === 0 && ((1 << (_la - 577)) & 4278189823) !== 0) || ((((_la - 609)) & ~0x1F) === 0 && ((1 << (_la - 609)) & 4290772991) !== 0) || ((((_la - 641)) & ~0x1F) === 0 && ((1 << (_la - 641)) & 4026529791) !== 0) || ((((_la - 673)) & ~0x1F) === 0 && ((1 << (_la - 673)) & 4290478079) !== 0) || ((((_la - 705)) & ~0x1F) === 0 && ((1 << (_la - 705)) & 4294967295) !== 0) || ((((_la - 737)) & ~0x1F) === 0 && ((1 << (_la - 737)) & 4293918719) !== 0) || ((((_la - 769)) & ~0x1F) === 0 && ((1 << (_la - 769)) & 4294967167) !== 0) || ((((_la - 801)) & ~0x1F) === 0 && ((1 << (_la - 801)) & 4294967295) !== 0) || ((((_la - 833)) & ~0x1F) === 0 && ((1 << (_la - 833)) & 4160749055) !== 0) || ((((_la - 865)) & ~0x1F) === 0 && ((1 << (_la - 865)) & 4290772991) !== 0) || ((((_la - 897)) & ~0x1F) === 0 && ((1 << (_la - 897)) & 4294967295) !== 0) || ((((_la - 929)) & ~0x1F) === 0 && ((1 << (_la - 929)) & 4278190079) !== 0) || ((((_la - 961)) & ~0x1F) === 0 && ((1 << (_la - 961)) & 4294967295) !== 0) || ((((_la - 993)) & ~0x1F) === 0 && ((1 << (_la - 993)) & 4294967295) !== 0) || ((((_la - 1025)) & ~0x1F) === 0 && ((1 << (_la - 1025)) & 4294967295) !== 0) || ((((_la - 1057)) & ~0x1F) === 0 && ((1 << (_la - 1057)) & 2147483647) !== 0) || ((((_la - 1089)) & ~0x1F) === 0 && ((1 << (_la - 1089)) & 4227858431) !== 0) || ((((_la - 1121)) & ~0x1F) === 0 && ((1 << (_la - 1121)) & 4293918559) !== 0) || ((((_la - 1153)) & ~0x1F) === 0 && ((1 << (_la - 1153)) & 4294410239) !== 0) || ((((_la - 1185)) & ~0x1F) === 0 && ((1 << (_la - 1185)) & 4294965247) !== 0) || ((((_la - 1217)) & ~0x1F) === 0 && ((1 << (_la - 1217)) & 4279827455) !== 0) || ((((_la - 1249)) & ~0x1F) === 0 && ((1 << (_la - 1249)) & 4294967291) !== 0) || ((((_la - 1281)) & ~0x1F) === 0 && ((1 << (_la - 1281)) & 4294967295) !== 0) || ((((_la - 1313)) & ~0x1F) === 0 && ((1 << (_la - 1313)) & 4294965247) !== 0) || ((((_la - 1345)) & ~0x1F) === 0 && ((1 << (_la - 1345)) & 4294967295) !== 0) || ((((_la - 1377)) & ~0x1F) === 0 && ((1 << (_la - 1377)) & 4292870143) !== 0) || ((((_la - 1409)) & ~0x1F) === 0 && ((1 << (_la - 1409)) & 4261412799) !== 0) || ((((_la - 1441)) & ~0x1F) === 0 && ((1 << (_la - 1441)) & 4294967295) !== 0) || ((((_la - 1473)) & ~0x1F) === 0 && ((1 << (_la - 1473)) & 4261281791) !== 0) || ((((_la - 1505)) & ~0x1F) === 0 && ((1 << (_la - 1505)) & 3221221375) !== 0) || ((((_la - 1537)) & ~0x1F) === 0 && ((1 << (_la - 1537)) & 4294967295) !== 0) || ((((_la - 1570)) & ~0x1F) === 0 && ((1 << (_la - 1570)) & 4294967295) !== 0) || ((((_la - 1602)) & ~0x1F) === 0 && ((1 << (_la - 1602)) & 4261412863) !== 0) || ((((_la - 1634)) & ~0x1F) === 0 && ((1 << (_la - 1634)) & 4294967295) !== 0) || ((((_la - 1666)) & ~0x1F) === 0 && ((1 << (_la - 1666)) & 4294967295) !== 0) || ((((_la - 1698)) & ~0x1F) === 0 && ((1 << (_la - 1698)) & 4294967295) !== 0) || ((((_la - 1730)) & ~0x1F) === 0 && ((1 << (_la - 1730)) & 4294967295) !== 0) || ((((_la - 1762)) & ~0x1F) === 0 && ((1 << (_la - 1762)) & 4294967295) !== 0) || ((((_la - 1794)) & ~0x1F) === 0 && ((1 << (_la - 1794)) & 4294967295) !== 0) || ((((_la - 1826)) & ~0x1F) === 0 && ((1 << (_la - 1826)) & 4294967295) !== 0) || ((((_la - 1858)) & ~0x1F) === 0 && ((1 << (_la - 1858)) & 4294967295) !== 0) || ((((_la - 1890)) & ~0x1F) === 0 && ((1 << (_la - 1890)) & 4294967295) !== 0) || ((((_la - 1922)) & ~0x1F) === 0 && ((1 << (_la - 1922)) & 4294901759) !== 0) || ((((_la - 1954)) & ~0x1F) === 0 && ((1 << (_la - 1954)) & 4294966271) !== 0) || ((((_la - 1986)) & ~0x1F) === 0 && ((1 << (_la - 1986)) & 4294868991) !== 0) || ((((_la - 2018)) & ~0x1F) === 0 && ((1 << (_la - 2018)) & 4294967167) !== 0) || ((((_la - 2050)) & ~0x1F) === 0 && ((1 << (_la - 2050)) & 4286578687) !== 0) || ((((_la - 2082)) & ~0x1F) === 0 && ((1 << (_la - 2082)) & 4294836223) !== 0) || ((((_la - 2115)) & ~0x1F) === 0 && ((1 << (_la - 2115)) & 3758092223) !== 0) || ((((_la - 2147)) & ~0x1F) === 0 && ((1 << (_la - 2147)) & 4293918719) !== 0) || ((((_la - 2179)) & ~0x1F) === 0 && ((1 << (_la - 2179)) & 4294967295) !== 0) || ((((_la - 2211)) & ~0x1F) === 0 && ((1 << (_la - 2211)) & 541266915) !== 0) || _la===2246 || _la===2252) {
				{
				this.state = 9766;
				this.expressions();
				}
			}

			this.state = 9769;
			this.match(PlSqlParser.RIGHT_PAREN);
			this.state = 9771;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1312, this._ctx) ) {
			case 1:
				{
				this.state = 9770;
				this.where_clause();
				}
				break;
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public selected_tableview(): Selected_tableviewContext {
		let localctx: Selected_tableviewContext = new Selected_tableviewContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1200, PlSqlParser.RULE_selected_tableview);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 9778;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 1:
			case 2:
			case 3:
			case 4:
			case 5:
			case 6:
			case 7:
			case 8:
			case 9:
			case 10:
			case 11:
			case 12:
			case 13:
			case 14:
			case 15:
			case 16:
			case 17:
			case 18:
			case 19:
			case 20:
			case 21:
			case 22:
			case 23:
			case 24:
			case 25:
			case 26:
			case 27:
			case 28:
			case 29:
			case 30:
			case 31:
			case 32:
			case 33:
			case 34:
			case 36:
			case 37:
			case 38:
			case 40:
			case 41:
			case 42:
			case 44:
			case 45:
			case 46:
			case 47:
			case 49:
			case 50:
			case 51:
			case 52:
			case 53:
			case 54:
			case 55:
			case 56:
			case 57:
			case 58:
			case 59:
			case 60:
			case 63:
			case 64:
			case 65:
			case 66:
			case 67:
			case 68:
			case 69:
			case 70:
			case 71:
			case 72:
			case 73:
			case 74:
			case 75:
			case 76:
			case 78:
			case 79:
			case 80:
			case 81:
			case 82:
			case 83:
			case 85:
			case 86:
			case 87:
			case 88:
			case 89:
			case 90:
			case 91:
			case 92:
			case 93:
			case 95:
			case 96:
			case 97:
			case 98:
			case 99:
			case 100:
			case 101:
			case 102:
			case 103:
			case 104:
			case 105:
			case 106:
			case 108:
			case 109:
			case 110:
			case 111:
			case 112:
			case 113:
			case 114:
			case 115:
			case 116:
			case 117:
			case 118:
			case 119:
			case 120:
			case 121:
			case 122:
			case 123:
			case 124:
			case 125:
			case 126:
			case 127:
			case 128:
			case 129:
			case 130:
			case 131:
			case 132:
			case 133:
			case 134:
			case 135:
			case 136:
			case 137:
			case 138:
			case 139:
			case 140:
			case 141:
			case 142:
			case 143:
			case 144:
			case 145:
			case 147:
			case 148:
			case 149:
			case 150:
			case 151:
			case 152:
			case 153:
			case 154:
			case 155:
			case 156:
			case 157:
			case 158:
			case 160:
			case 161:
			case 162:
			case 163:
			case 164:
			case 165:
			case 166:
			case 167:
			case 168:
			case 169:
			case 170:
			case 171:
			case 172:
			case 174:
			case 175:
			case 176:
			case 177:
			case 178:
			case 179:
			case 181:
			case 182:
			case 183:
			case 184:
			case 185:
			case 186:
			case 187:
			case 188:
			case 189:
			case 190:
			case 191:
			case 192:
			case 193:
			case 194:
			case 195:
			case 196:
			case 197:
			case 198:
			case 199:
			case 200:
			case 201:
			case 202:
			case 203:
			case 204:
			case 205:
			case 206:
			case 207:
			case 208:
			case 209:
			case 210:
			case 211:
			case 212:
			case 213:
			case 214:
			case 215:
			case 216:
			case 217:
			case 218:
			case 219:
			case 220:
			case 221:
			case 222:
			case 223:
			case 224:
			case 225:
			case 226:
			case 227:
			case 228:
			case 229:
			case 230:
			case 231:
			case 233:
			case 234:
			case 235:
			case 236:
			case 237:
			case 238:
			case 239:
			case 240:
			case 241:
			case 242:
			case 243:
			case 244:
			case 245:
			case 246:
			case 247:
			case 248:
			case 249:
			case 250:
			case 252:
			case 253:
			case 254:
			case 255:
			case 256:
			case 257:
			case 258:
			case 259:
			case 260:
			case 261:
			case 262:
			case 263:
			case 264:
			case 265:
			case 266:
			case 267:
			case 268:
			case 269:
			case 270:
			case 271:
			case 272:
			case 273:
			case 274:
			case 275:
			case 276:
			case 277:
			case 278:
			case 279:
			case 280:
			case 281:
			case 282:
			case 283:
			case 284:
			case 285:
			case 286:
			case 287:
			case 289:
			case 290:
			case 291:
			case 292:
			case 293:
			case 294:
			case 295:
			case 296:
			case 297:
			case 298:
			case 299:
			case 300:
			case 301:
			case 302:
			case 303:
			case 304:
			case 305:
			case 306:
			case 307:
			case 308:
			case 309:
			case 310:
			case 311:
			case 312:
			case 313:
			case 314:
			case 315:
			case 316:
			case 317:
			case 318:
			case 319:
			case 321:
			case 322:
			case 323:
			case 324:
			case 325:
			case 326:
			case 328:
			case 329:
			case 330:
			case 331:
			case 332:
			case 333:
			case 334:
			case 335:
			case 336:
			case 337:
			case 338:
			case 339:
			case 340:
			case 341:
			case 342:
			case 343:
			case 344:
			case 345:
			case 346:
			case 347:
			case 348:
			case 349:
			case 350:
			case 352:
			case 353:
			case 354:
			case 355:
			case 356:
			case 357:
			case 358:
			case 359:
			case 360:
			case 361:
			case 362:
			case 363:
			case 364:
			case 365:
			case 366:
			case 367:
			case 368:
			case 369:
			case 370:
			case 372:
			case 373:
			case 374:
			case 375:
			case 376:
			case 377:
			case 378:
			case 379:
			case 380:
			case 381:
			case 382:
			case 383:
			case 384:
			case 385:
			case 386:
			case 387:
			case 388:
			case 389:
			case 390:
			case 391:
			case 392:
			case 394:
			case 395:
			case 397:
			case 398:
			case 399:
			case 400:
			case 401:
			case 402:
			case 403:
			case 404:
			case 405:
			case 406:
			case 407:
			case 408:
			case 409:
			case 410:
			case 412:
			case 413:
			case 414:
			case 415:
			case 417:
			case 418:
			case 419:
			case 420:
			case 421:
			case 422:
			case 423:
			case 424:
			case 425:
			case 426:
			case 427:
			case 428:
			case 429:
			case 430:
			case 431:
			case 434:
			case 435:
			case 436:
			case 437:
			case 438:
			case 439:
			case 440:
			case 441:
			case 442:
			case 443:
			case 444:
			case 446:
			case 447:
			case 448:
			case 449:
			case 450:
			case 451:
			case 452:
			case 453:
			case 454:
			case 455:
			case 456:
			case 457:
			case 458:
			case 459:
			case 460:
			case 461:
			case 462:
			case 463:
			case 464:
			case 465:
			case 466:
			case 467:
			case 468:
			case 469:
			case 470:
			case 471:
			case 472:
			case 473:
			case 475:
			case 476:
			case 477:
			case 478:
			case 479:
			case 480:
			case 481:
			case 482:
			case 483:
			case 484:
			case 485:
			case 486:
			case 487:
			case 488:
			case 489:
			case 490:
			case 491:
			case 492:
			case 493:
			case 494:
			case 495:
			case 496:
			case 497:
			case 498:
			case 499:
			case 500:
			case 501:
			case 502:
			case 503:
			case 504:
			case 505:
			case 506:
			case 507:
			case 508:
			case 509:
			case 510:
			case 511:
			case 512:
			case 513:
			case 514:
			case 515:
			case 516:
			case 517:
			case 518:
			case 519:
			case 520:
			case 521:
			case 522:
			case 523:
			case 524:
			case 525:
			case 526:
			case 527:
			case 528:
			case 529:
			case 530:
			case 531:
			case 532:
			case 533:
			case 534:
			case 535:
			case 536:
			case 537:
			case 538:
			case 539:
			case 540:
			case 541:
			case 542:
			case 543:
			case 544:
			case 545:
			case 547:
			case 548:
			case 549:
			case 550:
			case 551:
			case 552:
			case 553:
			case 555:
			case 556:
			case 557:
			case 558:
			case 559:
			case 560:
			case 561:
			case 562:
			case 563:
			case 564:
			case 565:
			case 566:
			case 567:
			case 568:
			case 569:
			case 572:
			case 574:
			case 575:
			case 576:
			case 577:
			case 578:
			case 579:
			case 580:
			case 581:
			case 582:
			case 583:
			case 584:
			case 586:
			case 587:
			case 588:
			case 589:
			case 590:
			case 591:
			case 592:
			case 593:
			case 594:
			case 595:
			case 596:
			case 597:
			case 598:
			case 599:
			case 600:
			case 602:
			case 603:
			case 604:
			case 605:
			case 606:
			case 607:
			case 608:
			case 609:
			case 610:
			case 611:
			case 612:
			case 613:
			case 614:
			case 615:
			case 616:
			case 617:
			case 618:
			case 619:
			case 620:
			case 621:
			case 622:
			case 623:
			case 624:
			case 625:
			case 626:
			case 627:
			case 628:
			case 629:
			case 630:
			case 632:
			case 633:
			case 634:
			case 635:
			case 636:
			case 637:
			case 638:
			case 639:
			case 640:
			case 641:
			case 642:
			case 643:
			case 644:
			case 645:
			case 646:
			case 647:
			case 648:
			case 649:
			case 650:
			case 651:
			case 653:
			case 654:
			case 655:
			case 656:
			case 657:
			case 658:
			case 659:
			case 660:
			case 661:
			case 662:
			case 663:
			case 664:
			case 665:
			case 666:
			case 667:
			case 668:
			case 670:
			case 671:
			case 672:
			case 673:
			case 674:
			case 675:
			case 676:
			case 677:
			case 678:
			case 679:
			case 680:
			case 681:
			case 682:
			case 683:
			case 684:
			case 685:
			case 686:
			case 687:
			case 689:
			case 690:
			case 692:
			case 693:
			case 694:
			case 696:
			case 697:
			case 698:
			case 699:
			case 700:
			case 701:
			case 702:
			case 703:
			case 704:
			case 705:
			case 706:
			case 707:
			case 708:
			case 709:
			case 710:
			case 711:
			case 712:
			case 713:
			case 714:
			case 715:
			case 716:
			case 717:
			case 718:
			case 719:
			case 720:
			case 721:
			case 722:
			case 723:
			case 724:
			case 725:
			case 726:
			case 727:
			case 728:
			case 729:
			case 730:
			case 731:
			case 732:
			case 733:
			case 734:
			case 735:
			case 736:
			case 737:
			case 738:
			case 739:
			case 740:
			case 741:
			case 742:
			case 743:
			case 744:
			case 745:
			case 746:
			case 747:
			case 748:
			case 749:
			case 750:
			case 751:
			case 752:
			case 753:
			case 754:
			case 755:
			case 756:
			case 758:
			case 759:
			case 760:
			case 761:
			case 762:
			case 763:
			case 764:
			case 765:
			case 766:
			case 767:
			case 768:
			case 769:
			case 770:
			case 771:
			case 772:
			case 773:
			case 774:
			case 775:
			case 777:
			case 778:
			case 779:
			case 780:
			case 781:
			case 782:
			case 783:
			case 784:
			case 785:
			case 786:
			case 787:
			case 788:
			case 789:
			case 790:
			case 791:
			case 792:
			case 793:
			case 794:
			case 795:
			case 796:
			case 797:
			case 798:
			case 799:
			case 800:
			case 801:
			case 802:
			case 803:
			case 804:
			case 805:
			case 806:
			case 807:
			case 808:
			case 809:
			case 810:
			case 811:
			case 812:
			case 813:
			case 814:
			case 815:
			case 816:
			case 817:
			case 818:
			case 819:
			case 820:
			case 821:
			case 822:
			case 823:
			case 824:
			case 825:
			case 826:
			case 827:
			case 828:
			case 829:
			case 830:
			case 831:
			case 832:
			case 833:
			case 834:
			case 835:
			case 836:
			case 837:
			case 838:
			case 839:
			case 840:
			case 841:
			case 843:
			case 844:
			case 845:
			case 846:
			case 847:
			case 848:
			case 849:
			case 850:
			case 851:
			case 852:
			case 853:
			case 854:
			case 855:
			case 856:
			case 857:
			case 858:
			case 859:
			case 861:
			case 862:
			case 863:
			case 864:
			case 865:
			case 866:
			case 867:
			case 868:
			case 869:
			case 870:
			case 871:
			case 872:
			case 873:
			case 874:
			case 875:
			case 876:
			case 877:
			case 878:
			case 879:
			case 880:
			case 881:
			case 882:
			case 883:
			case 884:
			case 885:
			case 886:
			case 888:
			case 889:
			case 890:
			case 891:
			case 892:
			case 893:
			case 894:
			case 895:
			case 896:
			case 897:
			case 898:
			case 899:
			case 900:
			case 901:
			case 902:
			case 903:
			case 904:
			case 905:
			case 906:
			case 907:
			case 908:
			case 909:
			case 910:
			case 911:
			case 912:
			case 913:
			case 914:
			case 915:
			case 916:
			case 917:
			case 918:
			case 919:
			case 920:
			case 921:
			case 922:
			case 923:
			case 924:
			case 925:
			case 926:
			case 927:
			case 928:
			case 929:
			case 930:
			case 931:
			case 932:
			case 933:
			case 934:
			case 935:
			case 936:
			case 937:
			case 938:
			case 939:
			case 940:
			case 941:
			case 942:
			case 943:
			case 944:
			case 945:
			case 946:
			case 947:
			case 948:
			case 949:
			case 950:
			case 951:
			case 952:
			case 954:
			case 955:
			case 956:
			case 957:
			case 958:
			case 959:
			case 960:
			case 961:
			case 962:
			case 963:
			case 964:
			case 965:
			case 966:
			case 967:
			case 968:
			case 969:
			case 970:
			case 971:
			case 972:
			case 973:
			case 974:
			case 975:
			case 976:
			case 977:
			case 978:
			case 979:
			case 980:
			case 981:
			case 982:
			case 983:
			case 984:
			case 985:
			case 986:
			case 987:
			case 988:
			case 989:
			case 990:
			case 991:
			case 992:
			case 993:
			case 994:
			case 995:
			case 996:
			case 997:
			case 998:
			case 999:
			case 1000:
			case 1001:
			case 1002:
			case 1003:
			case 1004:
			case 1005:
			case 1006:
			case 1007:
			case 1008:
			case 1009:
			case 1010:
			case 1011:
			case 1012:
			case 1013:
			case 1014:
			case 1015:
			case 1016:
			case 1017:
			case 1018:
			case 1019:
			case 1020:
			case 1021:
			case 1022:
			case 1023:
			case 1024:
			case 1025:
			case 1026:
			case 1027:
			case 1028:
			case 1029:
			case 1030:
			case 1031:
			case 1032:
			case 1033:
			case 1034:
			case 1035:
			case 1036:
			case 1037:
			case 1038:
			case 1039:
			case 1040:
			case 1041:
			case 1042:
			case 1043:
			case 1044:
			case 1045:
			case 1046:
			case 1047:
			case 1048:
			case 1049:
			case 1050:
			case 1051:
			case 1052:
			case 1053:
			case 1054:
			case 1055:
			case 1056:
			case 1057:
			case 1058:
			case 1059:
			case 1060:
			case 1061:
			case 1062:
			case 1063:
			case 1064:
			case 1065:
			case 1066:
			case 1067:
			case 1068:
			case 1069:
			case 1070:
			case 1071:
			case 1072:
			case 1074:
			case 1075:
			case 1076:
			case 1077:
			case 1078:
			case 1079:
			case 1080:
			case 1081:
			case 1082:
			case 1083:
			case 1084:
			case 1085:
			case 1086:
			case 1087:
			case 1089:
			case 1090:
			case 1091:
			case 1092:
			case 1093:
			case 1094:
			case 1095:
			case 1096:
			case 1098:
			case 1099:
			case 1100:
			case 1101:
			case 1102:
			case 1103:
			case 1104:
			case 1105:
			case 1106:
			case 1107:
			case 1108:
			case 1109:
			case 1110:
			case 1111:
			case 1112:
			case 1113:
			case 1114:
			case 1116:
			case 1117:
			case 1118:
			case 1119:
			case 1120:
			case 1121:
			case 1122:
			case 1123:
			case 1124:
			case 1125:
			case 1127:
			case 1129:
			case 1130:
			case 1131:
			case 1132:
			case 1133:
			case 1134:
			case 1135:
			case 1136:
			case 1137:
			case 1138:
			case 1139:
			case 1140:
			case 1142:
			case 1143:
			case 1144:
			case 1145:
			case 1146:
			case 1147:
			case 1148:
			case 1149:
			case 1150:
			case 1151:
			case 1152:
			case 1153:
			case 1154:
			case 1155:
			case 1156:
			case 1157:
			case 1158:
			case 1159:
			case 1160:
			case 1161:
			case 1162:
			case 1163:
			case 1164:
			case 1165:
			case 1166:
			case 1167:
			case 1169:
			case 1170:
			case 1171:
			case 1173:
			case 1174:
			case 1175:
			case 1176:
			case 1177:
			case 1178:
			case 1179:
			case 1180:
			case 1181:
			case 1182:
			case 1183:
			case 1184:
			case 1185:
			case 1186:
			case 1187:
			case 1188:
			case 1189:
			case 1190:
			case 1191:
			case 1192:
			case 1193:
			case 1194:
			case 1195:
			case 1197:
			case 1198:
			case 1199:
			case 1200:
			case 1201:
			case 1202:
			case 1203:
			case 1204:
			case 1205:
			case 1206:
			case 1207:
			case 1208:
			case 1209:
			case 1210:
			case 1211:
			case 1212:
			case 1213:
			case 1214:
			case 1215:
			case 1216:
			case 1217:
			case 1218:
			case 1219:
			case 1220:
			case 1221:
			case 1222:
			case 1223:
			case 1224:
			case 1225:
			case 1226:
			case 1228:
			case 1229:
			case 1230:
			case 1231:
			case 1232:
			case 1236:
			case 1237:
			case 1241:
			case 1242:
			case 1243:
			case 1244:
			case 1245:
			case 1246:
			case 1247:
			case 1248:
			case 1249:
			case 1250:
			case 1252:
			case 1253:
			case 1254:
			case 1255:
			case 1256:
			case 1257:
			case 1258:
			case 1259:
			case 1260:
			case 1261:
			case 1262:
			case 1263:
			case 1264:
			case 1265:
			case 1266:
			case 1267:
			case 1268:
			case 1269:
			case 1270:
			case 1271:
			case 1272:
			case 1273:
			case 1274:
			case 1275:
			case 1276:
			case 1277:
			case 1278:
			case 1279:
			case 1280:
			case 1281:
			case 1282:
			case 1283:
			case 1284:
			case 1285:
			case 1286:
			case 1287:
			case 1288:
			case 1289:
			case 1290:
			case 1291:
			case 1292:
			case 1293:
			case 1294:
			case 1295:
			case 1296:
			case 1297:
			case 1298:
			case 1299:
			case 1300:
			case 1301:
			case 1302:
			case 1303:
			case 1304:
			case 1305:
			case 1306:
			case 1308:
			case 1309:
			case 1310:
			case 1311:
			case 1312:
			case 1313:
			case 1314:
			case 1315:
			case 1316:
			case 1317:
			case 1318:
			case 1319:
			case 1320:
			case 1321:
			case 1322:
			case 1323:
			case 1325:
			case 1326:
			case 1327:
			case 1328:
			case 1329:
			case 1330:
			case 1331:
			case 1332:
			case 1333:
			case 1334:
			case 1335:
			case 1336:
			case 1337:
			case 1338:
			case 1339:
			case 1340:
			case 1341:
			case 1342:
			case 1343:
			case 1344:
			case 1345:
			case 1346:
			case 1347:
			case 1348:
			case 1349:
			case 1350:
			case 1351:
			case 1352:
			case 1353:
			case 1354:
			case 1355:
			case 1356:
			case 1357:
			case 1358:
			case 1359:
			case 1360:
			case 1361:
			case 1362:
			case 1363:
			case 1364:
			case 1365:
			case 1366:
			case 1367:
			case 1368:
			case 1369:
			case 1370:
			case 1371:
			case 1372:
			case 1373:
			case 1374:
			case 1375:
			case 1376:
			case 1377:
			case 1378:
			case 1379:
			case 1380:
			case 1381:
			case 1382:
			case 1383:
			case 1384:
			case 1385:
			case 1386:
			case 1387:
			case 1388:
			case 1389:
			case 1390:
			case 1391:
			case 1392:
			case 1393:
			case 1394:
			case 1395:
			case 1396:
			case 1397:
			case 1399:
			case 1400:
			case 1401:
			case 1402:
			case 1403:
			case 1404:
			case 1405:
			case 1406:
			case 1407:
			case 1408:
			case 1409:
			case 1410:
			case 1411:
			case 1412:
			case 1413:
			case 1414:
			case 1416:
			case 1417:
			case 1418:
			case 1419:
			case 1420:
			case 1421:
			case 1422:
			case 1423:
			case 1424:
			case 1425:
			case 1426:
			case 1427:
			case 1428:
			case 1429:
			case 1430:
			case 1431:
			case 1432:
			case 1433:
			case 1435:
			case 1436:
			case 1437:
			case 1438:
			case 1439:
			case 1440:
			case 1441:
			case 1442:
			case 1443:
			case 1444:
			case 1445:
			case 1446:
			case 1447:
			case 1448:
			case 1449:
			case 1450:
			case 1451:
			case 1452:
			case 1453:
			case 1454:
			case 1455:
			case 1456:
			case 1457:
			case 1458:
			case 1459:
			case 1460:
			case 1461:
			case 1462:
			case 1463:
			case 1464:
			case 1465:
			case 1466:
			case 1467:
			case 1468:
			case 1469:
			case 1470:
			case 1471:
			case 1472:
			case 1473:
			case 1474:
			case 1475:
			case 1476:
			case 1477:
			case 1478:
			case 1479:
			case 1480:
			case 1481:
			case 1482:
			case 1483:
			case 1484:
			case 1485:
			case 1486:
			case 1487:
			case 1488:
			case 1489:
			case 1491:
			case 1492:
			case 1493:
			case 1494:
			case 1495:
			case 1496:
			case 1497:
			case 1499:
			case 1500:
			case 1501:
			case 1502:
			case 1503:
			case 1504:
			case 1505:
			case 1506:
			case 1507:
			case 1508:
			case 1509:
			case 1510:
			case 1511:
			case 1512:
			case 1513:
			case 1514:
			case 1515:
			case 1516:
			case 1518:
			case 1519:
			case 1520:
			case 1521:
			case 1522:
			case 1523:
			case 1524:
			case 1525:
			case 1526:
			case 1527:
			case 1528:
			case 1529:
			case 1530:
			case 1531:
			case 1532:
			case 1533:
			case 1534:
			case 1536:
			case 1537:
			case 1538:
			case 1539:
			case 1540:
			case 1541:
			case 1542:
			case 1543:
			case 1544:
			case 1545:
			case 1546:
			case 1547:
			case 1548:
			case 1549:
			case 1550:
			case 1551:
			case 1552:
			case 1553:
			case 1554:
			case 1555:
			case 1556:
			case 1557:
			case 1558:
			case 1559:
			case 1560:
			case 1561:
			case 1562:
			case 1563:
			case 1564:
			case 1565:
			case 1566:
			case 1567:
			case 1568:
			case 1570:
			case 1571:
			case 1572:
			case 1573:
			case 1574:
			case 1575:
			case 1576:
			case 1577:
			case 1578:
			case 1579:
			case 1580:
			case 1581:
			case 1582:
			case 1583:
			case 1584:
			case 1585:
			case 1586:
			case 1587:
			case 1588:
			case 1589:
			case 1590:
			case 1591:
			case 1592:
			case 1593:
			case 1594:
			case 1595:
			case 1596:
			case 1597:
			case 1598:
			case 1599:
			case 1600:
			case 1601:
			case 1602:
			case 1603:
			case 1604:
			case 1605:
			case 1606:
			case 1607:
			case 1608:
			case 1609:
			case 1610:
			case 1611:
			case 1612:
			case 1613:
			case 1614:
			case 1615:
			case 1616:
			case 1617:
			case 1618:
			case 1619:
			case 1620:
			case 1621:
			case 1622:
			case 1623:
			case 1624:
			case 1625:
			case 1626:
			case 1628:
			case 1629:
			case 1630:
			case 1631:
			case 1632:
			case 1633:
			case 1634:
			case 1635:
			case 1636:
			case 1637:
			case 1638:
			case 1639:
			case 1640:
			case 1641:
			case 1642:
			case 1643:
			case 1644:
			case 1645:
			case 1646:
			case 1647:
			case 1648:
			case 1649:
			case 1650:
			case 1651:
			case 1652:
			case 1653:
			case 1654:
			case 1655:
			case 1656:
			case 1657:
			case 1658:
			case 1659:
			case 1660:
			case 1661:
			case 1662:
			case 1663:
			case 1664:
			case 1665:
			case 1666:
			case 1667:
			case 1668:
			case 1669:
			case 1670:
			case 1671:
			case 1672:
			case 1673:
			case 1674:
			case 1675:
			case 1676:
			case 1677:
			case 1678:
			case 1679:
			case 1680:
			case 1681:
			case 1682:
			case 1683:
			case 1684:
			case 1685:
			case 1686:
			case 1687:
			case 1688:
			case 1689:
			case 1690:
			case 1691:
			case 1692:
			case 1693:
			case 1694:
			case 1695:
			case 1696:
			case 1697:
			case 1698:
			case 1699:
			case 1700:
			case 1701:
			case 1702:
			case 1703:
			case 1704:
			case 1705:
			case 1706:
			case 1707:
			case 1708:
			case 1709:
			case 1710:
			case 1711:
			case 1712:
			case 1713:
			case 1714:
			case 1715:
			case 1716:
			case 1717:
			case 1718:
			case 1719:
			case 1720:
			case 1721:
			case 1722:
			case 1723:
			case 1724:
			case 1725:
			case 1726:
			case 1727:
			case 1728:
			case 1729:
			case 1730:
			case 1731:
			case 1732:
			case 1733:
			case 1734:
			case 1735:
			case 1736:
			case 1737:
			case 1738:
			case 1739:
			case 1740:
			case 1741:
			case 1742:
			case 1743:
			case 1744:
			case 1745:
			case 1746:
			case 1747:
			case 1748:
			case 1749:
			case 1750:
			case 1751:
			case 1752:
			case 1753:
			case 1754:
			case 1755:
			case 1756:
			case 1757:
			case 1758:
			case 1759:
			case 1760:
			case 1761:
			case 1762:
			case 1763:
			case 1764:
			case 1765:
			case 1766:
			case 1767:
			case 1768:
			case 1769:
			case 1770:
			case 1771:
			case 1772:
			case 1773:
			case 1774:
			case 1775:
			case 1776:
			case 1777:
			case 1778:
			case 1779:
			case 1780:
			case 1781:
			case 1782:
			case 1783:
			case 1784:
			case 1785:
			case 1786:
			case 1787:
			case 1788:
			case 1789:
			case 1790:
			case 1791:
			case 1792:
			case 1793:
			case 1794:
			case 1795:
			case 1796:
			case 1797:
			case 1798:
			case 1799:
			case 1800:
			case 1801:
			case 1802:
			case 1803:
			case 1804:
			case 1805:
			case 1806:
			case 1807:
			case 1808:
			case 1809:
			case 1810:
			case 1811:
			case 1812:
			case 1813:
			case 1814:
			case 1815:
			case 1816:
			case 1817:
			case 1818:
			case 1819:
			case 1820:
			case 1821:
			case 1822:
			case 1823:
			case 1824:
			case 1825:
			case 1826:
			case 1827:
			case 1828:
			case 1829:
			case 1830:
			case 1831:
			case 1832:
			case 1833:
			case 1834:
			case 1835:
			case 1836:
			case 1837:
			case 1838:
			case 1839:
			case 1840:
			case 1841:
			case 1842:
			case 1843:
			case 1844:
			case 1845:
			case 1846:
			case 1847:
			case 1848:
			case 1849:
			case 1850:
			case 1851:
			case 1852:
			case 1853:
			case 1854:
			case 1855:
			case 1856:
			case 1857:
			case 1858:
			case 1859:
			case 1860:
			case 1861:
			case 1862:
			case 1863:
			case 1864:
			case 1865:
			case 1866:
			case 1867:
			case 1868:
			case 1869:
			case 1870:
			case 1871:
			case 1872:
			case 1873:
			case 1874:
			case 1875:
			case 1876:
			case 1877:
			case 1878:
			case 1879:
			case 1880:
			case 1881:
			case 1882:
			case 1883:
			case 1884:
			case 1885:
			case 1886:
			case 1887:
			case 1888:
			case 1889:
			case 1890:
			case 1891:
			case 1892:
			case 1893:
			case 1894:
			case 1895:
			case 1896:
			case 1897:
			case 1898:
			case 1899:
			case 1900:
			case 1901:
			case 1902:
			case 1903:
			case 1904:
			case 1905:
			case 1906:
			case 1907:
			case 1908:
			case 1909:
			case 1910:
			case 1911:
			case 1912:
			case 1913:
			case 1914:
			case 1915:
			case 1916:
			case 1917:
			case 1918:
			case 1919:
			case 1920:
			case 1921:
			case 1922:
			case 1923:
			case 1924:
			case 1925:
			case 1926:
			case 1927:
			case 1928:
			case 1929:
			case 1930:
			case 1931:
			case 1932:
			case 1933:
			case 1934:
			case 1935:
			case 1936:
			case 1937:
			case 1939:
			case 1940:
			case 1941:
			case 1942:
			case 1943:
			case 1944:
			case 1945:
			case 1946:
			case 1947:
			case 1948:
			case 1949:
			case 1950:
			case 1951:
			case 1952:
			case 1953:
			case 1954:
			case 1955:
			case 1956:
			case 1957:
			case 1958:
			case 1959:
			case 1960:
			case 1961:
			case 1962:
			case 1963:
			case 1965:
			case 1966:
			case 1967:
			case 1968:
			case 1969:
			case 1970:
			case 1971:
			case 1972:
			case 1973:
			case 1974:
			case 1975:
			case 1976:
			case 1977:
			case 1978:
			case 1979:
			case 1980:
			case 1981:
			case 1982:
			case 1983:
			case 1984:
			case 1985:
			case 1986:
			case 1987:
			case 1988:
			case 1989:
			case 1990:
			case 1991:
			case 1992:
			case 1993:
			case 1994:
			case 1995:
			case 1996:
			case 1997:
			case 1998:
			case 1999:
			case 2000:
			case 2003:
			case 2004:
			case 2005:
			case 2006:
			case 2007:
			case 2008:
			case 2009:
			case 2010:
			case 2011:
			case 2012:
			case 2013:
			case 2014:
			case 2015:
			case 2016:
			case 2017:
			case 2018:
			case 2019:
			case 2020:
			case 2021:
			case 2022:
			case 2023:
			case 2024:
			case 2026:
			case 2027:
			case 2028:
			case 2029:
			case 2030:
			case 2031:
			case 2032:
			case 2033:
			case 2034:
			case 2035:
			case 2036:
			case 2037:
			case 2038:
			case 2039:
			case 2040:
			case 2041:
			case 2042:
			case 2043:
			case 2044:
			case 2045:
			case 2046:
			case 2047:
			case 2048:
			case 2049:
			case 2050:
			case 2051:
			case 2052:
			case 2053:
			case 2054:
			case 2055:
			case 2056:
			case 2057:
			case 2058:
			case 2059:
			case 2060:
			case 2061:
			case 2062:
			case 2063:
			case 2064:
			case 2065:
			case 2066:
			case 2067:
			case 2068:
			case 2069:
			case 2070:
			case 2071:
			case 2072:
			case 2074:
			case 2075:
			case 2076:
			case 2077:
			case 2078:
			case 2079:
			case 2080:
			case 2081:
			case 2082:
			case 2083:
			case 2084:
			case 2085:
			case 2086:
			case 2087:
			case 2088:
			case 2089:
			case 2090:
			case 2091:
			case 2092:
			case 2093:
			case 2094:
			case 2095:
			case 2096:
			case 2097:
			case 2098:
			case 2100:
			case 2101:
			case 2102:
			case 2103:
			case 2104:
			case 2105:
			case 2106:
			case 2107:
			case 2108:
			case 2109:
			case 2110:
			case 2111:
			case 2112:
			case 2113:
			case 2115:
			case 2116:
			case 2117:
			case 2118:
			case 2119:
			case 2120:
			case 2122:
			case 2123:
			case 2124:
			case 2125:
			case 2126:
			case 2128:
			case 2129:
			case 2130:
			case 2131:
			case 2132:
			case 2133:
			case 2134:
			case 2135:
			case 2136:
			case 2137:
			case 2138:
			case 2139:
			case 2140:
			case 2141:
			case 2142:
			case 2143:
			case 2145:
			case 2146:
			case 2147:
			case 2148:
			case 2149:
			case 2150:
			case 2151:
			case 2152:
			case 2153:
			case 2154:
			case 2155:
			case 2156:
			case 2157:
			case 2158:
			case 2159:
			case 2160:
			case 2161:
			case 2162:
			case 2163:
			case 2164:
			case 2165:
			case 2166:
			case 2168:
			case 2169:
			case 2170:
			case 2171:
			case 2172:
			case 2173:
			case 2174:
			case 2175:
			case 2176:
			case 2177:
			case 2178:
			case 2179:
			case 2180:
			case 2181:
			case 2182:
			case 2183:
			case 2184:
			case 2185:
			case 2186:
			case 2187:
			case 2188:
			case 2189:
			case 2191:
			case 2192:
			case 2193:
			case 2194:
			case 2195:
			case 2196:
			case 2197:
			case 2198:
			case 2199:
			case 2200:
			case 2201:
			case 2202:
			case 2203:
			case 2204:
			case 2205:
			case 2206:
			case 2207:
			case 2208:
			case 2209:
			case 2210:
			case 2211:
			case 2216:
			case 2220:
			case 2246:
			case 2252:
				{
				this.state = 9773;
				this.tableview_name();
				}
				break;
			case 2223:
				{
				this.state = 9774;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 9775;
				this.select_statement();
				this.state = 9776;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
			this.state = 9781;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & 2684286839) !== 0) || ((((_la - 64)) & ~0x1F) === 0 && ((1 << (_la - 64)) & 3220168703) !== 0) || ((((_la - 96)) & ~0x1F) === 0 && ((1 << (_la - 96)) & 4294965247) !== 0) || ((((_la - 128)) & ~0x1F) === 0 && ((1 << (_la - 128)) & 2147221503) !== 0) || ((((_la - 160)) & ~0x1F) === 0 && ((1 << (_la - 160)) & 4293910527) !== 0) || ((((_la - 192)) & ~0x1F) === 0 && ((1 << (_la - 192)) & 4294967295) !== 0) || ((((_la - 224)) & ~0x1F) === 0 && ((1 << (_la - 224)) & 4160749311) !== 0) || ((((_la - 256)) & ~0x1F) === 0 && ((1 << (_la - 256)) & 4294967295) !== 0) || ((((_la - 289)) & ~0x1F) === 0 && ((1 << (_la - 289)) & 2147483647) !== 0) || ((((_la - 321)) & ~0x1F) === 0 && ((1 << (_la - 321)) & 3221225407) !== 0) || ((((_la - 353)) & ~0x1F) === 0 && ((1 << (_la - 353)) & 4294705151) !== 0) || ((((_la - 385)) & ~0x1F) === 0 && ((1 << (_la - 385)) & 2080372479) !== 0) || ((((_la - 417)) & ~0x1F) === 0 && ((1 << (_la - 417)) & 4026433535) !== 0) || ((((_la - 449)) & ~0x1F) === 0 && ((1 << (_la - 449)) & 4261412863) !== 0) || ((((_la - 481)) & ~0x1F) === 0 && ((1 << (_la - 481)) & 4294967295) !== 0) || ((((_la - 513)) & ~0x1F) === 0 && ((1 << (_la - 513)) & 4294967295) !== 0) || ((((_la - 545)) & ~0x1F) === 0 && ((1 << (_la - 545)) & 3925868029) !== 0) || ((((_la - 577)) & ~0x1F) === 0 && ((1 << (_la - 577)) & 4278189823) !== 0) || ((((_la - 609)) & ~0x1F) === 0 && ((1 << (_la - 609)) & 4290772991) !== 0) || ((((_la - 641)) & ~0x1F) === 0 && ((1 << (_la - 641)) & 4026529791) !== 0) || ((((_la - 673)) & ~0x1F) === 0 && ((1 << (_la - 673)) & 4290478079) !== 0) || ((((_la - 705)) & ~0x1F) === 0 && ((1 << (_la - 705)) & 4294967295) !== 0) || ((((_la - 737)) & ~0x1F) === 0 && ((1 << (_la - 737)) & 4293918719) !== 0) || ((((_la - 769)) & ~0x1F) === 0 && ((1 << (_la - 769)) & 4294967167) !== 0) || ((((_la - 801)) & ~0x1F) === 0 && ((1 << (_la - 801)) & 4294967295) !== 0) || ((((_la - 833)) & ~0x1F) === 0 && ((1 << (_la - 833)) & 4160749055) !== 0) || ((((_la - 865)) & ~0x1F) === 0 && ((1 << (_la - 865)) & 4290772991) !== 0) || ((((_la - 897)) & ~0x1F) === 0 && ((1 << (_la - 897)) & 4294967295) !== 0) || ((((_la - 929)) & ~0x1F) === 0 && ((1 << (_la - 929)) & 4278190079) !== 0) || ((((_la - 961)) & ~0x1F) === 0 && ((1 << (_la - 961)) & 4294967295) !== 0) || ((((_la - 993)) & ~0x1F) === 0 && ((1 << (_la - 993)) & 4294967295) !== 0) || ((((_la - 1025)) & ~0x1F) === 0 && ((1 << (_la - 1025)) & 4294967295) !== 0) || ((((_la - 1057)) & ~0x1F) === 0 && ((1 << (_la - 1057)) & 2147418111) !== 0) || ((((_la - 1089)) & ~0x1F) === 0 && ((1 << (_la - 1089)) & 4227858175) !== 0) || ((((_la - 1121)) & ~0x1F) === 0 && ((1 << (_la - 1121)) & 4293918559) !== 0) || ((((_la - 1153)) & ~0x1F) === 0 && ((1 << (_la - 1153)) & 4294410239) !== 0) || ((((_la - 1185)) & ~0x1F) === 0 && ((1 << (_la - 1185)) & 4294965247) !== 0) || ((((_la - 1217)) & ~0x1F) === 0 && ((1 << (_la - 1217)) & 4279827455) !== 0) || ((((_la - 1249)) & ~0x1F) === 0 && ((1 << (_la - 1249)) & 4294967291) !== 0) || ((((_la - 1281)) & ~0x1F) === 0 && ((1 << (_la - 1281)) & 4227858431) !== 0) || ((((_la - 1313)) & ~0x1F) === 0 && ((1 << (_la - 1313)) & 4294965247) !== 0) || ((((_la - 1345)) & ~0x1F) === 0 && ((1 << (_la - 1345)) & 4294967295) !== 0) || ((((_la - 1377)) & ~0x1F) === 0 && ((1 << (_la - 1377)) & 4292870143) !== 0) || ((((_la - 1409)) & ~0x1F) === 0 && ((1 << (_la - 1409)) & 4261412799) !== 0) || ((((_la - 1441)) & ~0x1F) === 0 && ((1 << (_la - 1441)) & 4294967295) !== 0) || ((((_la - 1473)) & ~0x1F) === 0 && ((1 << (_la - 1473)) & 4261281791) !== 0) || ((((_la - 1505)) & ~0x1F) === 0 && ((1 << (_la - 1505)) & 3221221375) !== 0) || ((((_la - 1537)) & ~0x1F) === 0 && ((1 << (_la - 1537)) & 4294967295) !== 0) || ((((_la - 1570)) & ~0x1F) === 0 && ((1 << (_la - 1570)) & 4294967295) !== 0) || ((((_la - 1602)) & ~0x1F) === 0 && ((1 << (_la - 1602)) & 4261412863) !== 0) || ((((_la - 1634)) & ~0x1F) === 0 && ((1 << (_la - 1634)) & 4294967295) !== 0) || ((((_la - 1666)) & ~0x1F) === 0 && ((1 << (_la - 1666)) & 4294967295) !== 0) || ((((_la - 1698)) & ~0x1F) === 0 && ((1 << (_la - 1698)) & 4294967295) !== 0) || ((((_la - 1730)) & ~0x1F) === 0 && ((1 << (_la - 1730)) & 4294967295) !== 0) || ((((_la - 1762)) & ~0x1F) === 0 && ((1 << (_la - 1762)) & 4294967295) !== 0) || ((((_la - 1794)) & ~0x1F) === 0 && ((1 << (_la - 1794)) & 4294967295) !== 0) || ((((_la - 1826)) & ~0x1F) === 0 && ((1 << (_la - 1826)) & 4294967295) !== 0) || ((((_la - 1858)) & ~0x1F) === 0 && ((1 << (_la - 1858)) & 4294967295) !== 0) || ((((_la - 1890)) & ~0x1F) === 0 && ((1 << (_la - 1890)) & 4294967295) !== 0) || ((((_la - 1922)) & ~0x1F) === 0 && ((1 << (_la - 1922)) & 4294901759) !== 0) || ((((_la - 1954)) & ~0x1F) === 0 && ((1 << (_la - 1954)) & 4294966271) !== 0) || ((((_la - 1986)) & ~0x1F) === 0 && ((1 << (_la - 1986)) & 4294868991) !== 0) || ((((_la - 2018)) & ~0x1F) === 0 && ((1 << (_la - 2018)) & 4294967167) !== 0) || ((((_la - 2050)) & ~0x1F) === 0 && ((1 << (_la - 2050)) & 4286578687) !== 0) || ((((_la - 2082)) & ~0x1F) === 0 && ((1 << (_la - 2082)) & 4294836223) !== 0) || ((((_la - 2115)) & ~0x1F) === 0 && ((1 << (_la - 2115)) & 3758092223) !== 0) || ((((_la - 2147)) & ~0x1F) === 0 && ((1 << (_la - 2147)) & 4293918719) !== 0) || ((((_la - 2179)) & ~0x1F) === 0 && ((1 << (_la - 2179)) & 4294965247) !== 0) || ((((_la - 2211)) & ~0x1F) === 0 && ((1 << (_la - 2211)) & 803) !== 0) || _la===2246 || _la===2252) {
				{
				this.state = 9780;
				this.table_alias();
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public lock_table_statement(): Lock_table_statementContext {
		let localctx: Lock_table_statementContext = new Lock_table_statementContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1202, PlSqlParser.RULE_lock_table_statement);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 9783;
			this.match(PlSqlParser.LOCK);
			this.state = 9784;
			this.match(PlSqlParser.TABLE);
			this.state = 9785;
			this.lock_table_element();
			this.state = 9790;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			while (_la===2229) {
				{
				{
				this.state = 9786;
				this.match(PlSqlParser.COMMA);
				this.state = 9787;
				this.lock_table_element();
				}
				}
				this.state = 9792;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			}
			this.state = 9793;
			this.match(PlSqlParser.IN);
			this.state = 9794;
			this.lock_mode();
			this.state = 9795;
			this.match(PlSqlParser.MODE);
			this.state = 9797;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1316, this._ctx) ) {
			case 1:
				{
				this.state = 9796;
				this.wait_nowait_part();
				}
				break;
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public wait_nowait_part(): Wait_nowait_partContext {
		let localctx: Wait_nowait_partContext = new Wait_nowait_partContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1204, PlSqlParser.RULE_wait_nowait_part);
		try {
			this.state = 9802;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 2106:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 9799;
				this.match(PlSqlParser.WAIT);
				this.state = 9800;
				this.expression();
				}
				break;
			case 1088:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 9801;
				this.match(PlSqlParser.NOWAIT);
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public lock_table_element(): Lock_table_elementContext {
		let localctx: Lock_table_elementContext = new Lock_table_elementContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1206, PlSqlParser.RULE_lock_table_element);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 9804;
			this.tableview_name();
			this.state = 9806;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1207 || _la===1606) {
				{
				this.state = 9805;
				this.partition_extension_clause();
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public lock_mode(): Lock_modeContext {
		let localctx: Lock_modeContext = new Lock_modeContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1208, PlSqlParser.RULE_lock_mode);
		let _la: number;
		try {
			this.state = 9820;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1320, this._ctx) ) {
			case 1:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 9808;
				this.match(PlSqlParser.ROW);
				this.state = 9809;
				this.match(PlSqlParser.SHARE);
				}
				break;
			case 2:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 9810;
				this.match(PlSqlParser.ROW);
				this.state = 9811;
				this.match(PlSqlParser.EXCLUSIVE);
				}
				break;
			case 3:
				this.enterOuterAlt(localctx, 3);
				{
				this.state = 9812;
				this.match(PlSqlParser.SHARE);
				this.state = 9814;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===2025) {
					{
					this.state = 9813;
					this.match(PlSqlParser.UPDATE);
					}
				}

				}
				break;
			case 4:
				this.enterOuterAlt(localctx, 4);
				{
				this.state = 9816;
				this.match(PlSqlParser.SHARE);
				this.state = 9817;
				this.match(PlSqlParser.ROW);
				this.state = 9818;
				this.match(PlSqlParser.EXCLUSIVE);
				}
				break;
			case 5:
				this.enterOuterAlt(localctx, 5);
				{
				this.state = 9819;
				this.match(PlSqlParser.EXCLUSIVE);
				}
				break;
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public general_table_ref(): General_table_refContext {
		let localctx: General_table_refContext = new General_table_refContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1210, PlSqlParser.RULE_general_table_ref);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 9828;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1321, this._ctx) ) {
			case 1:
				{
				this.state = 9822;
				this.dml_table_expression_clause();
				}
				break;
			case 2:
				{
				this.state = 9823;
				this.match(PlSqlParser.ONLY);
				this.state = 9824;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 9825;
				this.dml_table_expression_clause();
				this.state = 9826;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
				break;
			}
			this.state = 9831;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1322, this._ctx) ) {
			case 1:
				{
				this.state = 9830;
				this.table_alias();
				}
				break;
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public static_returning_clause(): Static_returning_clauseContext {
		let localctx: Static_returning_clauseContext = new Static_returning_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1212, PlSqlParser.RULE_static_returning_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 9833;
			_la = this._input.LA(1);
			if(!(_la===1430 || _la===1431)) {
			this._errHandler.recoverInline(this);
			}
			else {
				this._errHandler.reportMatch(this);
			    this.consume();
			}
			this.state = 9834;
			this.expressions();
			this.state = 9835;
			this.into_clause();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public error_logging_clause(): Error_logging_clauseContext {
		let localctx: Error_logging_clauseContext = new Error_logging_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1214, PlSqlParser.RULE_error_logging_clause);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 9837;
			this.match(PlSqlParser.LOG);
			this.state = 9838;
			this.match(PlSqlParser.ERRORS);
			this.state = 9840;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1323, this._ctx) ) {
			case 1:
				{
				this.state = 9839;
				this.error_logging_into_part();
				}
				break;
			}
			this.state = 9843;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1324, this._ctx) ) {
			case 1:
				{
				this.state = 9842;
				this.expression();
				}
				break;
			}
			this.state = 9846;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1325, this._ctx) ) {
			case 1:
				{
				this.state = 9845;
				this.error_logging_reject_part();
				}
				break;
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public error_logging_into_part(): Error_logging_into_partContext {
		let localctx: Error_logging_into_partContext = new Error_logging_into_partContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1216, PlSqlParser.RULE_error_logging_into_part);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 9848;
			this.match(PlSqlParser.INTO);
			this.state = 9849;
			this.tableview_name();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public error_logging_reject_part(): Error_logging_reject_partContext {
		let localctx: Error_logging_reject_partContext = new Error_logging_reject_partContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1218, PlSqlParser.RULE_error_logging_reject_part);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 9851;
			this.match(PlSqlParser.REJECT);
			this.state = 9852;
			this.match(PlSqlParser.LIMIT);
			this.state = 9855;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1326, this._ctx) ) {
			case 1:
				{
				this.state = 9853;
				this.match(PlSqlParser.UNLIMITED);
				}
				break;
			case 2:
				{
				this.state = 9854;
				this.expression();
				}
				break;
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public dml_table_expression_clause(): Dml_table_expression_clauseContext {
		let localctx: Dml_table_expression_clauseContext = new Dml_table_expression_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1220, PlSqlParser.RULE_dml_table_expression_clause);
		let _la: number;
		try {
			this.state = 9869;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1329, this._ctx) ) {
			case 1:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 9857;
				this.table_collection_expression();
				}
				break;
			case 2:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 9858;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 9859;
				this.select_statement();
				this.state = 9861;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===2121) {
					{
					this.state = 9860;
					this.subquery_restriction_clause();
					}
				}

				this.state = 9863;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
				break;
			case 3:
				this.enterOuterAlt(localctx, 3);
				{
				this.state = 9865;
				this.tableview_name();
				this.state = 9867;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 1328, this._ctx) ) {
				case 1:
					{
					this.state = 9866;
					this.sample_clause();
					}
					break;
				}
				}
				break;
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public table_collection_expression(): Table_collection_expressionContext {
		let localctx: Table_collection_expressionContext = new Table_collection_expressionContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1222, PlSqlParser.RULE_table_collection_expression);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 9871;
			_la = this._input.LA(1);
			if(!(_la===1912 || _la===1926)) {
			this._errHandler.recoverInline(this);
			}
			else {
				this._errHandler.reportMatch(this);
			    this.consume();
			}
			this.state = 9882;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1331, this._ctx) ) {
			case 1:
				{
				this.state = 9872;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 9873;
				this.subquery();
				this.state = 9874;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
				break;
			case 2:
				{
				this.state = 9876;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 9877;
				this.expression();
				this.state = 9878;
				this.match(PlSqlParser.RIGHT_PAREN);
				this.state = 9880;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 1330, this._ctx) ) {
				case 1:
					{
					this.state = 9879;
					this.outer_join_sign();
					}
					break;
				}
				}
				break;
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public subquery_restriction_clause(): Subquery_restriction_clauseContext {
		let localctx: Subquery_restriction_clauseContext = new Subquery_restriction_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1224, PlSqlParser.RULE_subquery_restriction_clause);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 9884;
			this.match(PlSqlParser.WITH);
			this.state = 9893;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 1353:
				{
				this.state = 9885;
				this.match(PlSqlParser.READ);
				this.state = 9886;
				this.match(PlSqlParser.ONLY);
				}
				break;
			case 180:
				{
				this.state = 9887;
				this.match(PlSqlParser.CHECK);
				this.state = 9888;
				this.match(PlSqlParser.OPTION);
				this.state = 9891;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 1332, this._ctx) ) {
				case 1:
					{
					this.state = 9889;
					this.match(PlSqlParser.CONSTRAINT);
					this.state = 9890;
					this.constraint_name();
					}
					break;
				}
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public sample_clause(): Sample_clauseContext {
		let localctx: Sample_clauseContext = new Sample_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1226, PlSqlParser.RULE_sample_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 9895;
			this.match(PlSqlParser.SAMPLE);
			this.state = 9897;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===129) {
				{
				this.state = 9896;
				this.match(PlSqlParser.BLOCK);
				}
			}

			this.state = 9899;
			this.match(PlSqlParser.LEFT_PAREN);
			this.state = 9900;
			this.expression();
			this.state = 9903;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===2229) {
				{
				this.state = 9901;
				this.match(PlSqlParser.COMMA);
				this.state = 9902;
				this.expression();
				}
			}

			this.state = 9905;
			this.match(PlSqlParser.RIGHT_PAREN);
			this.state = 9907;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1336, this._ctx) ) {
			case 1:
				{
				this.state = 9906;
				this.seed_part();
				}
				break;
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public seed_part(): Seed_partContext {
		let localctx: Seed_partContext = new Seed_partContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1228, PlSqlParser.RULE_seed_part);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 9909;
			this.match(PlSqlParser.SEED);
			this.state = 9910;
			this.match(PlSqlParser.LEFT_PAREN);
			this.state = 9911;
			this.expression();
			this.state = 9912;
			this.match(PlSqlParser.RIGHT_PAREN);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public condition(): ConditionContext {
		let localctx: ConditionContext = new ConditionContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1230, PlSqlParser.RULE_condition);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 9914;
			this.expression();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public expressions(): ExpressionsContext {
		let localctx: ExpressionsContext = new ExpressionsContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1232, PlSqlParser.RULE_expressions);
		try {
			let _alt: number;
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 9916;
			this.expression();
			this.state = 9921;
			this._errHandler.sync(this);
			_alt = this._interp.adaptivePredict(this._input, 1337, this._ctx);
			while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) {
				if (_alt === 1) {
					{
					{
					this.state = 9917;
					this.match(PlSqlParser.COMMA);
					this.state = 9918;
					this.expression();
					}
					}
				}
				this.state = 9923;
				this._errHandler.sync(this);
				_alt = this._interp.adaptivePredict(this._input, 1337, this._ctx);
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public expression(): ExpressionContext {
		let localctx: ExpressionContext = new ExpressionContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1234, PlSqlParser.RULE_expression);
		try {
			this.state = 9926;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1338, this._ctx) ) {
			case 1:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 9924;
				this.cursor_expression();
				}
				break;
			case 2:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 9925;
				this.logical_expression(0);
				}
				break;
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public cursor_expression(): Cursor_expressionContext {
		let localctx: Cursor_expressionContext = new Cursor_expressionContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1236, PlSqlParser.RULE_cursor_expression);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 9928;
			this.match(PlSqlParser.CURSOR);
			this.state = 9929;
			this.match(PlSqlParser.LEFT_PAREN);
			this.state = 9930;
			this.subquery();
			this.state = 9931;
			this.match(PlSqlParser.RIGHT_PAREN);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}

	public logical_expression(): Logical_expressionContext;
	public logical_expression(_p: number): Logical_expressionContext;
	// @RuleVersion(0)
	public logical_expression(_p?: number): Logical_expressionContext {
		if (_p === undefined) {
			_p = 0;
		}

		let _parentctx: ParserRuleContext = this._ctx;
		let _parentState: number = this.state;
		let localctx: Logical_expressionContext = new Logical_expressionContext(this, this._ctx, _parentState);
		// @ts-ignore
		let _prevctx: Logical_expressionContext = localctx;
		let _startState: number = 1238;
		this.enterRecursionRule(localctx, 1238, PlSqlParser.RULE_logical_expression, _p);
		try {
			let _alt: number;
			this.enterOuterAlt(localctx, 1);
			{
			{
			this.state = 9934;
			this.unary_logical_expression();
			}
			this._ctx.stop = this._input.LT(-1);
			this.state = 9944;
			this._errHandler.sync(this);
			_alt = this._interp.adaptivePredict(this._input, 1340, this._ctx);
			while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) {
				if (_alt === 1) {
					if (this._parseListeners != null) {
						this.triggerExitRuleEvent();
					}
					_prevctx = localctx;
					{
					this.state = 9942;
					this._errHandler.sync(this);
					switch ( this._interp.adaptivePredict(this._input, 1339, this._ctx) ) {
					case 1:
						{
						localctx = new Logical_expressionContext(this, _parentctx, _parentState);
						this.pushNewRecursionContext(localctx, _startState, PlSqlParser.RULE_logical_expression);
						this.state = 9936;
						if (!(this.precpred(this._ctx, 2))) {
							throw this.createFailedPredicateException("this.precpred(this._ctx, 2)");
						}
						this.state = 9937;
						this.match(PlSqlParser.AND);
						this.state = 9938;
						this.logical_expression(3);
						}
						break;
					case 2:
						{
						localctx = new Logical_expressionContext(this, _parentctx, _parentState);
						this.pushNewRecursionContext(localctx, _startState, PlSqlParser.RULE_logical_expression);
						this.state = 9939;
						if (!(this.precpred(this._ctx, 1))) {
							throw this.createFailedPredicateException("this.precpred(this._ctx, 1)");
						}
						this.state = 9940;
						this.match(PlSqlParser.OR);
						this.state = 9941;
						this.logical_expression(2);
						}
						break;
					}
					}
				}
				this.state = 9946;
				this._errHandler.sync(this);
				_alt = this._interp.adaptivePredict(this._input, 1340, this._ctx);
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.unrollRecursionContexts(_parentctx);
		}
		return localctx;
	}
	// @RuleVersion(0)
	public unary_logical_expression(): Unary_logical_expressionContext {
		let localctx: Unary_logical_expressionContext = new Unary_logical_expressionContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1240, PlSqlParser.RULE_unary_logical_expression);
		let _la: number;
		try {
			let _alt: number;
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 9948;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1073) {
				{
				this.state = 9947;
				this.match(PlSqlParser.NOT);
				}
			}

			this.state = 9950;
			this.multiset_expression();
			this.state = 9958;
			this._errHandler.sync(this);
			_alt = this._interp.adaptivePredict(this._input, 1343, this._ctx);
			while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) {
				if (_alt === 1) {
					{
					{
					this.state = 9951;
					this.match(PlSqlParser.IS);
					this.state = 9953;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
					if (_la===1073) {
						{
						this.state = 9952;
						this.match(PlSqlParser.NOT);
						}
					}

					this.state = 9955;
					this.logical_operation();
					}
					}
				}
				this.state = 9960;
				this._errHandler.sync(this);
				_alt = this._interp.adaptivePredict(this._input, 1343, this._ctx);
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public logical_operation(): Logical_operationContext {
		let localctx: Logical_operationContext = new Logical_operationContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1242, PlSqlParser.RULE_logical_operation);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 9986;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 1097:
				{
				this.state = 9961;
				this.match(PlSqlParser.NULL_);
				}
				break;
			case 881:
				{
				this.state = 9962;
				this.match(PlSqlParser.NAN);
				}
				break;
			case 1297:
				{
				this.state = 9963;
				this.match(PlSqlParser.PRESENT);
				}
				break;
			case 649:
				{
				this.state = 9964;
				this.match(PlSqlParser.INFINITE);
				}
				break;
			case 33:
				{
				this.state = 9965;
				this.match(PlSqlParser.A_LETTER);
				this.state = 9966;
				this.match(PlSqlParser.SET);
				}
				break;
			case 437:
				{
				this.state = 9967;
				this.match(PlSqlParser.EMPTY);
				}
				break;
			case 1115:
				{
				this.state = 9968;
				this.match(PlSqlParser.OF);
				this.state = 9970;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===1987) {
					{
					this.state = 9969;
					this.match(PlSqlParser.TYPE);
					}
				}

				this.state = 9972;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 9974;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 1345, this._ctx) ) {
				case 1:
					{
					this.state = 9973;
					this.match(PlSqlParser.ONLY);
					}
					break;
				}
				this.state = 9976;
				this.type_spec();
				this.state = 9981;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===2229) {
					{
					{
					this.state = 9977;
					this.match(PlSqlParser.COMMA);
					this.state = 9978;
					this.type_spec();
					}
					}
					this.state = 9983;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				this.state = 9984;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public multiset_expression(): Multiset_expressionContext {
		let localctx: Multiset_expressionContext = new Multiset_expressionContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1244, PlSqlParser.RULE_multiset_expression);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 9988;
			this.relational_expression(0);
			this.state = 9994;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1349, this._ctx) ) {
			case 1:
				{
				this.state = 9989;
				localctx._multiset_type = this._input.LT(1);
				_la = this._input.LA(1);
				if(!(_la===826 || _la===1603)) {
				    localctx._multiset_type = this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				this.state = 9991;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===1115) {
					{
					this.state = 9990;
					this.match(PlSqlParser.OF);
					}
				}

				this.state = 9993;
				this.concatenation(0);
				}
				break;
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}

	public relational_expression(): Relational_expressionContext;
	public relational_expression(_p: number): Relational_expressionContext;
	// @RuleVersion(0)
	public relational_expression(_p?: number): Relational_expressionContext {
		if (_p === undefined) {
			_p = 0;
		}

		let _parentctx: ParserRuleContext = this._ctx;
		let _parentState: number = this.state;
		let localctx: Relational_expressionContext = new Relational_expressionContext(this, this._ctx, _parentState);
		// @ts-ignore
		let _prevctx: Relational_expressionContext = localctx;
		let _startState: number = 1246;
		this.enterRecursionRule(localctx, 1246, PlSqlParser.RULE_relational_expression, _p);
		try {
			let _alt: number;
			this.enterOuterAlt(localctx, 1);
			{
			{
			this.state = 9997;
			this.compound_expression();
			}
			this._ctx.stop = this._input.LT(-1);
			this.state = 10005;
			this._errHandler.sync(this);
			_alt = this._interp.adaptivePredict(this._input, 1350, this._ctx);
			while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) {
				if (_alt === 1) {
					if (this._parseListeners != null) {
						this.triggerExitRuleEvent();
					}
					_prevctx = localctx;
					{
					{
					localctx = new Relational_expressionContext(this, _parentctx, _parentState);
					this.pushNewRecursionContext(localctx, _startState, PlSqlParser.RULE_relational_expression);
					this.state = 9999;
					if (!(this.precpred(this._ctx, 2))) {
						throw this.createFailedPredicateException("this.precpred(this._ctx, 2)");
					}
					this.state = 10000;
					this.relational_operator();
					this.state = 10001;
					this.relational_expression(3);
					}
					}
				}
				this.state = 10007;
				this._errHandler.sync(this);
				_alt = this._interp.adaptivePredict(this._input, 1350, this._ctx);
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.unrollRecursionContexts(_parentctx);
		}
		return localctx;
	}
	// @RuleVersion(0)
	public compound_expression(): Compound_expressionContext {
		let localctx: Compound_expressionContext = new Compound_expressionContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1248, PlSqlParser.RULE_compound_expression);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 10008;
			this.concatenation(0);
			this.state = 10024;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1354, this._ctx) ) {
			case 1:
				{
				this.state = 10010;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===1073) {
					{
					this.state = 10009;
					this.match(PlSqlParser.NOT);
					}
				}

				this.state = 10022;
				this._errHandler.sync(this);
				switch (this._input.LA(1)) {
				case 652:
					{
					this.state = 10012;
					this.match(PlSqlParser.IN);
					this.state = 10013;
					this.in_elements();
					}
					break;
				case 107:
					{
					this.state = 10014;
					this.match(PlSqlParser.BETWEEN);
					this.state = 10015;
					this.between_elements();
					}
					break;
				case 753:
				case 754:
				case 755:
				case 757:
					{
					this.state = 10016;
					localctx._like_type = this._input.LT(1);
					_la = this._input.LA(1);
					if(!(((((_la - 753)) & ~0x1F) === 0 && ((1 << (_la - 753)) & 23) !== 0))) {
					    localctx._like_type = this._errHandler.recoverInline(this);
					}
					else {
						this._errHandler.reportMatch(this);
					    this.consume();
					}
					this.state = 10017;
					this.concatenation(0);
					this.state = 10020;
					this._errHandler.sync(this);
					switch ( this._interp.adaptivePredict(this._input, 1352, this._ctx) ) {
					case 1:
						{
						this.state = 10018;
						this.match(PlSqlParser.ESCAPE);
						this.state = 10019;
						this.concatenation(0);
						}
						break;
					}
					}
					break;
				default:
					throw new NoViableAltException(this);
				}
				}
				break;
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public relational_operator(): Relational_operatorContext {
		let localctx: Relational_operatorContext = new Relational_operatorContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1250, PlSqlParser.RULE_relational_operator);
		let _la: number;
		try {
			this.state = 10040;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1357, this._ctx) ) {
			case 1:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 10026;
				this.match(PlSqlParser.EQUALS_OP);
				}
				break;
			case 2:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 10034;
				this._errHandler.sync(this);
				switch (this._input.LA(1)) {
				case 2234:
					{
					this.state = 10027;
					this.match(PlSqlParser.NOT_EQUAL_OP);
					}
					break;
				case 2239:
					{
					this.state = 10028;
					this.match(PlSqlParser.LESS_THAN_OP);
					this.state = 10029;
					this.match(PlSqlParser.GREATER_THAN_OP);
					}
					break;
				case 2237:
					{
					this.state = 10030;
					this.match(PlSqlParser.EXCLAMATION_OPERATOR_PART);
					this.state = 10031;
					this.match(PlSqlParser.EQUALS_OP);
					}
					break;
				case 2235:
					{
					this.state = 10032;
					this.match(PlSqlParser.CARRET_OPERATOR_PART);
					this.state = 10033;
					this.match(PlSqlParser.EQUALS_OP);
					}
					break;
				default:
					throw new NoViableAltException(this);
				}
				}
				break;
			case 3:
				this.enterOuterAlt(localctx, 3);
				{
				this.state = 10036;
				_la = this._input.LA(1);
				if(!(_la===2238 || _la===2239)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				this.state = 10038;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===2243) {
					{
					this.state = 10037;
					this.match(PlSqlParser.EQUALS_OP);
					}
				}

				}
				break;
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public in_elements(): In_elementsContext {
		let localctx: In_elementsContext = new In_elementsContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1252, PlSqlParser.RULE_in_elements);
		let _la: number;
		try {
			this.state = 10060;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1359, this._ctx) ) {
			case 1:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 10042;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 10043;
				this.subquery();
				this.state = 10044;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
				break;
			case 2:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 10046;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 10047;
				this.concatenation(0);
				this.state = 10052;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===2229) {
					{
					{
					this.state = 10048;
					this.match(PlSqlParser.COMMA);
					this.state = 10049;
					this.concatenation(0);
					}
					}
					this.state = 10054;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				this.state = 10055;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
				break;
			case 3:
				this.enterOuterAlt(localctx, 3);
				{
				this.state = 10057;
				this.constant();
				}
				break;
			case 4:
				this.enterOuterAlt(localctx, 4);
				{
				this.state = 10058;
				this.bind_variable();
				}
				break;
			case 5:
				this.enterOuterAlt(localctx, 5);
				{
				this.state = 10059;
				this.general_element();
				}
				break;
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public between_elements(): Between_elementsContext {
		let localctx: Between_elementsContext = new Between_elementsContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1254, PlSqlParser.RULE_between_elements);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 10062;
			this.concatenation(0);
			this.state = 10063;
			this.match(PlSqlParser.AND);
			this.state = 10064;
			this.concatenation(0);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}

	public concatenation(): ConcatenationContext;
	public concatenation(_p: number): ConcatenationContext;
	// @RuleVersion(0)
	public concatenation(_p?: number): ConcatenationContext {
		if (_p === undefined) {
			_p = 0;
		}

		let _parentctx: ParserRuleContext = this._ctx;
		let _parentState: number = this.state;
		let localctx: ConcatenationContext = new ConcatenationContext(this, this._ctx, _parentState);
		// @ts-ignore
		let _prevctx: ConcatenationContext = localctx;
		let _startState: number = 1256;
		this.enterRecursionRule(localctx, 1256, PlSqlParser.RULE_concatenation, _p);
		let _la: number;
		try {
			let _alt: number;
			this.enterOuterAlt(localctx, 1);
			{
			{
			this.state = 10067;
			this.model_expression();
			this.state = 10076;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1361, this._ctx) ) {
			case 1:
				{
				this.state = 10068;
				this.match(PlSqlParser.AT);
				this.state = 10073;
				this._errHandler.sync(this);
				switch (this._input.LA(1)) {
				case 769:
					{
					this.state = 10069;
					this.match(PlSqlParser.LOCAL);
					}
					break;
				case 1937:
					{
					this.state = 10070;
					this.match(PlSqlParser.TIME);
					this.state = 10071;
					this.match(PlSqlParser.ZONE);
					this.state = 10072;
					this.concatenation(0);
					}
					break;
				default:
					throw new NoViableAltException(this);
				}
				}
				break;
			case 2:
				{
				this.state = 10075;
				this.interval_expression();
				}
				break;
			}
			}
			this._ctx.stop = this._input.LT(-1);
			this.state = 10090;
			this._errHandler.sync(this);
			_alt = this._interp.adaptivePredict(this._input, 1363, this._ctx);
			while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) {
				if (_alt === 1) {
					if (this._parseListeners != null) {
						this.triggerExitRuleEvent();
					}
					_prevctx = localctx;
					{
					this.state = 10088;
					this._errHandler.sync(this);
					switch ( this._interp.adaptivePredict(this._input, 1362, this._ctx) ) {
					case 1:
						{
						localctx = new ConcatenationContext(this, _parentctx, _parentState);
						this.pushNewRecursionContext(localctx, _startState, PlSqlParser.RULE_concatenation);
						this.state = 10078;
						if (!(this.precpred(this._ctx, 3))) {
							throw this.createFailedPredicateException("this.precpred(this._ctx, 3)");
						}
						this.state = 10079;
						localctx._op = this._input.LT(1);
						_la = this._input.LA(1);
						if(!(_la===2226 || _la===2230)) {
						    localctx._op = this._errHandler.recoverInline(this);
						}
						else {
							this._errHandler.reportMatch(this);
						    this.consume();
						}
						this.state = 10080;
						this.concatenation(4);
						}
						break;
					case 2:
						{
						localctx = new ConcatenationContext(this, _parentctx, _parentState);
						this.pushNewRecursionContext(localctx, _startState, PlSqlParser.RULE_concatenation);
						this.state = 10081;
						if (!(this.precpred(this._ctx, 2))) {
							throw this.createFailedPredicateException("this.precpred(this._ctx, 2)");
						}
						this.state = 10082;
						localctx._op = this._input.LT(1);
						_la = this._input.LA(1);
						if(!(_la===2227 || _la===2228)) {
						    localctx._op = this._errHandler.recoverInline(this);
						}
						else {
							this._errHandler.reportMatch(this);
						    this.consume();
						}
						this.state = 10083;
						this.concatenation(3);
						}
						break;
					case 3:
						{
						localctx = new ConcatenationContext(this, _parentctx, _parentState);
						this.pushNewRecursionContext(localctx, _startState, PlSqlParser.RULE_concatenation);
						this.state = 10084;
						if (!(this.precpred(this._ctx, 1))) {
							throw this.createFailedPredicateException("this.precpred(this._ctx, 1)");
						}
						this.state = 10085;
						this.match(PlSqlParser.BAR);
						this.state = 10086;
						this.match(PlSqlParser.BAR);
						this.state = 10087;
						this.concatenation(2);
						}
						break;
					}
					}
				}
				this.state = 10092;
				this._errHandler.sync(this);
				_alt = this._interp.adaptivePredict(this._input, 1363, this._ctx);
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.unrollRecursionContexts(_parentctx);
		}
		return localctx;
	}
	// @RuleVersion(0)
	public interval_expression(): Interval_expressionContext {
		let localctx: Interval_expressionContext = new Interval_expressionContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1258, PlSqlParser.RULE_interval_expression);
		let _la: number;
		try {
			this.state = 10117;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 329:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 10093;
				this.match(PlSqlParser.DAY);
				this.state = 10098;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===2223) {
					{
					this.state = 10094;
					this.match(PlSqlParser.LEFT_PAREN);
					this.state = 10095;
					this.concatenation(0);
					this.state = 10096;
					this.match(PlSqlParser.RIGHT_PAREN);
					}
				}

				this.state = 10100;
				this.match(PlSqlParser.TO);
				this.state = 10101;
				this.match(PlSqlParser.SECOND);
				this.state = 10106;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 1365, this._ctx) ) {
				case 1:
					{
					this.state = 10102;
					this.match(PlSqlParser.LEFT_PAREN);
					this.state = 10103;
					this.concatenation(0);
					this.state = 10104;
					this.match(PlSqlParser.RIGHT_PAREN);
					}
					break;
				}
				}
				break;
			case 2169:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 10108;
				this.match(PlSqlParser.YEAR);
				this.state = 10113;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===2223) {
					{
					this.state = 10109;
					this.match(PlSqlParser.LEFT_PAREN);
					this.state = 10110;
					this.concatenation(0);
					this.state = 10111;
					this.match(PlSqlParser.RIGHT_PAREN);
					}
				}

				this.state = 10115;
				this.match(PlSqlParser.TO);
				this.state = 10116;
				this.match(PlSqlParser.MONTH);
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public model_expression(): Model_expressionContext {
		let localctx: Model_expressionContext = new Model_expressionContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1260, PlSqlParser.RULE_model_expression);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 10119;
			this.unary_expression();
			this.state = 10124;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1368, this._ctx) ) {
			case 1:
				{
				this.state = 10120;
				this.match(PlSqlParser.LEFT_BRACKET);
				this.state = 10121;
				this.model_expression_element();
				this.state = 10122;
				this.match(PlSqlParser.RIGHT_BRACKET);
				}
				break;
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public model_expression_element(): Model_expression_elementContext {
		let localctx: Model_expression_elementContext = new Model_expression_elementContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1262, PlSqlParser.RULE_model_expression_element);
		let _la: number;
		try {
			this.state = 10149;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1373, this._ctx) ) {
			case 1:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 10128;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 1369, this._ctx) ) {
				case 1:
					{
					this.state = 10126;
					this.match(PlSqlParser.ANY);
					}
					break;
				case 2:
					{
					this.state = 10127;
					this.expression();
					}
					break;
				}
				this.state = 10137;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===2229) {
					{
					{
					this.state = 10130;
					this.match(PlSqlParser.COMMA);
					this.state = 10133;
					this._errHandler.sync(this);
					switch ( this._interp.adaptivePredict(this._input, 1370, this._ctx) ) {
					case 1:
						{
						this.state = 10131;
						this.match(PlSqlParser.ANY);
						}
						break;
					case 2:
						{
						this.state = 10132;
						this.expression();
						}
						break;
					}
					}
					}
					this.state = 10139;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				}
				break;
			case 2:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 10140;
				this.single_column_for_loop();
				this.state = 10145;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===2229) {
					{
					{
					this.state = 10141;
					this.match(PlSqlParser.COMMA);
					this.state = 10142;
					this.single_column_for_loop();
					}
					}
					this.state = 10147;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				}
				break;
			case 3:
				this.enterOuterAlt(localctx, 3);
				{
				this.state = 10148;
				this.multi_column_for_loop();
				}
				break;
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public single_column_for_loop(): Single_column_for_loopContext {
		let localctx: Single_column_for_loopContext = new Single_column_for_loopContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1264, PlSqlParser.RULE_single_column_for_loop);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 10151;
			this.match(PlSqlParser.FOR);
			this.state = 10152;
			this.column_name();
			this.state = 10170;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 652:
				{
				this.state = 10153;
				this.match(PlSqlParser.IN);
				this.state = 10154;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 10156;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & 2684352383) !== 0) || ((((_la - 64)) & ~0x1F) === 0 && ((1 << (_la - 64)) & 3220168703) !== 0) || ((((_la - 96)) & ~0x1F) === 0 && ((1 << (_la - 96)) & 4294965247) !== 0) || ((((_la - 128)) & ~0x1F) === 0 && ((1 << (_la - 128)) & 2147221503) !== 0) || ((((_la - 160)) & ~0x1F) === 0 && ((1 << (_la - 160)) & 4293910527) !== 0) || ((((_la - 192)) & ~0x1F) === 0 && ((1 << (_la - 192)) & 4294967295) !== 0) || ((((_la - 224)) & ~0x1F) === 0 && ((1 << (_la - 224)) & 4160749311) !== 0) || ((((_la - 256)) & ~0x1F) === 0 && ((1 << (_la - 256)) & 4294967295) !== 0) || ((((_la - 289)) & ~0x1F) === 0 && ((1 << (_la - 289)) & 2147483647) !== 0) || ((((_la - 321)) & ~0x1F) === 0 && ((1 << (_la - 321)) & 4294967295) !== 0) || ((((_la - 353)) & ~0x1F) === 0 && ((1 << (_la - 353)) & 4294705151) !== 0) || ((((_la - 385)) & ~0x1F) === 0 && ((1 << (_la - 385)) & 2080374527) !== 0) || ((((_la - 417)) & ~0x1F) === 0 && ((1 << (_la - 417)) & 4026433535) !== 0) || ((((_la - 449)) & ~0x1F) === 0 && ((1 << (_la - 449)) & 4261412863) !== 0) || ((((_la - 481)) & ~0x1F) === 0 && ((1 << (_la - 481)) & 4294967295) !== 0) || ((((_la - 513)) & ~0x1F) === 0 && ((1 << (_la - 513)) & 4294967295) !== 0) || ((((_la - 545)) & ~0x1F) === 0 && ((1 << (_la - 545)) & 3925868029) !== 0) || ((((_la - 577)) & ~0x1F) === 0 && ((1 << (_la - 577)) & 4278189823) !== 0) || ((((_la - 609)) & ~0x1F) === 0 && ((1 << (_la - 609)) & 4290772991) !== 0) || ((((_la - 641)) & ~0x1F) === 0 && ((1 << (_la - 641)) & 4026529791) !== 0) || ((((_la - 673)) & ~0x1F) === 0 && ((1 << (_la - 673)) & 4290478079) !== 0) || ((((_la - 705)) & ~0x1F) === 0 && ((1 << (_la - 705)) & 4294967295) !== 0) || ((((_la - 737)) & ~0x1F) === 0 && ((1 << (_la - 737)) & 4293918719) !== 0) || ((((_la - 769)) & ~0x1F) === 0 && ((1 << (_la - 769)) & 4294967167) !== 0) || ((((_la - 801)) & ~0x1F) === 0 && ((1 << (_la - 801)) & 4294967295) !== 0) || ((((_la - 833)) & ~0x1F) === 0 && ((1 << (_la - 833)) & 4160749055) !== 0) || ((((_la - 865)) & ~0x1F) === 0 && ((1 << (_la - 865)) & 4290772991) !== 0) || ((((_la - 897)) & ~0x1F) === 0 && ((1 << (_la - 897)) & 4294967295) !== 0) || ((((_la - 929)) & ~0x1F) === 0 && ((1 << (_la - 929)) & 4278190079) !== 0) || ((((_la - 961)) & ~0x1F) === 0 && ((1 << (_la - 961)) & 4294967295) !== 0) || ((((_la - 993)) & ~0x1F) === 0 && ((1 << (_la - 993)) & 4294967295) !== 0) || ((((_la - 1025)) & ~0x1F) === 0 && ((1 << (_la - 1025)) & 4294967295) !== 0) || ((((_la - 1057)) & ~0x1F) === 0 && ((1 << (_la - 1057)) & 2147483647) !== 0) || ((((_la - 1089)) & ~0x1F) === 0 && ((1 << (_la - 1089)) & 4227858431) !== 0) || ((((_la - 1121)) & ~0x1F) === 0 && ((1 << (_la - 1121)) & 4293918559) !== 0) || ((((_la - 1153)) & ~0x1F) === 0 && ((1 << (_la - 1153)) & 4294410239) !== 0) || ((((_la - 1185)) & ~0x1F) === 0 && ((1 << (_la - 1185)) & 4294965247) !== 0) || ((((_la - 1217)) & ~0x1F) === 0 && ((1 << (_la - 1217)) & 4279827455) !== 0) || ((((_la - 1249)) & ~0x1F) === 0 && ((1 << (_la - 1249)) & 4294967291) !== 0) || ((((_la - 1281)) & ~0x1F) === 0 && ((1 << (_la - 1281)) & 4294967295) !== 0) || ((((_la - 1313)) & ~0x1F) === 0 && ((1 << (_la - 1313)) & 4294965247) !== 0) || ((((_la - 1345)) & ~0x1F) === 0 && ((1 << (_la - 1345)) & 4294967295) !== 0) || ((((_la - 1377)) & ~0x1F) === 0 && ((1 << (_la - 1377)) & 4292870143) !== 0) || ((((_la - 1409)) & ~0x1F) === 0 && ((1 << (_la - 1409)) & 4261412799) !== 0) || ((((_la - 1441)) & ~0x1F) === 0 && ((1 << (_la - 1441)) & 4294967295) !== 0) || ((((_la - 1473)) & ~0x1F) === 0 && ((1 << (_la - 1473)) & 4261281791) !== 0) || ((((_la - 1505)) & ~0x1F) === 0 && ((1 << (_la - 1505)) & 3221221375) !== 0) || ((((_la - 1537)) & ~0x1F) === 0 && ((1 << (_la - 1537)) & 4294967295) !== 0) || ((((_la - 1570)) & ~0x1F) === 0 && ((1 << (_la - 1570)) & 4294967295) !== 0) || ((((_la - 1602)) & ~0x1F) === 0 && ((1 << (_la - 1602)) & 4261412863) !== 0) || ((((_la - 1634)) & ~0x1F) === 0 && ((1 << (_la - 1634)) & 4294967295) !== 0) || ((((_la - 1666)) & ~0x1F) === 0 && ((1 << (_la - 1666)) & 4294967295) !== 0) || ((((_la - 1698)) & ~0x1F) === 0 && ((1 << (_la - 1698)) & 4294967295) !== 0) || ((((_la - 1730)) & ~0x1F) === 0 && ((1 << (_la - 1730)) & 4294967295) !== 0) || ((((_la - 1762)) & ~0x1F) === 0 && ((1 << (_la - 1762)) & 4294967295) !== 0) || ((((_la - 1794)) & ~0x1F) === 0 && ((1 << (_la - 1794)) & 4294967295) !== 0) || ((((_la - 1826)) & ~0x1F) === 0 && ((1 << (_la - 1826)) & 4294967295) !== 0) || ((((_la - 1858)) & ~0x1F) === 0 && ((1 << (_la - 1858)) & 4294967295) !== 0) || ((((_la - 1890)) & ~0x1F) === 0 && ((1 << (_la - 1890)) & 4294967295) !== 0) || ((((_la - 1922)) & ~0x1F) === 0 && ((1 << (_la - 1922)) & 4294901759) !== 0) || ((((_la - 1954)) & ~0x1F) === 0 && ((1 << (_la - 1954)) & 4294966271) !== 0) || ((((_la - 1986)) & ~0x1F) === 0 && ((1 << (_la - 1986)) & 4294868991) !== 0) || ((((_la - 2018)) & ~0x1F) === 0 && ((1 << (_la - 2018)) & 4294967167) !== 0) || ((((_la - 2050)) & ~0x1F) === 0 && ((1 << (_la - 2050)) & 4286578687) !== 0) || ((((_la - 2082)) & ~0x1F) === 0 && ((1 << (_la - 2082)) & 4294836223) !== 0) || ((((_la - 2115)) & ~0x1F) === 0 && ((1 << (_la - 2115)) & 3758092223) !== 0) || ((((_la - 2147)) & ~0x1F) === 0 && ((1 << (_la - 2147)) & 4293918719) !== 0) || ((((_la - 2179)) & ~0x1F) === 0 && ((1 << (_la - 2179)) & 4294967295) !== 0) || ((((_la - 2211)) & ~0x1F) === 0 && ((1 << (_la - 2211)) & 541266915) !== 0) || _la===2246 || _la===2252) {
					{
					this.state = 10155;
					this.expressions();
					}
				}

				this.state = 10158;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
				break;
			case 554:
			case 757:
				{
				this.state = 10161;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===757) {
					{
					this.state = 10159;
					this.match(PlSqlParser.LIKE);
					this.state = 10160;
					this.expression();
					}
				}

				this.state = 10163;
				this.match(PlSqlParser.FROM);
				this.state = 10164;
				localctx._fromExpr = this.expression();
				this.state = 10165;
				this.match(PlSqlParser.TO);
				this.state = 10166;
				localctx._toExpr = this.expression();
				this.state = 10167;
				localctx._action_type = this._input.LT(1);
				_la = this._input.LA(1);
				if(!(_la===348 || _la===621)) {
				    localctx._action_type = this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				this.state = 10168;
				localctx._action_expr = this.expression();
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public multi_column_for_loop(): Multi_column_for_loopContext {
		let localctx: Multi_column_for_loopContext = new Multi_column_for_loopContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1266, PlSqlParser.RULE_multi_column_for_loop);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 10172;
			this.match(PlSqlParser.FOR);
			this.state = 10173;
			this.paren_column_list();
			this.state = 10174;
			this.match(PlSqlParser.IN);
			this.state = 10175;
			this.match(PlSqlParser.LEFT_PAREN);
			this.state = 10182;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1378, this._ctx) ) {
			case 1:
				{
				this.state = 10176;
				this.subquery();
				}
				break;
			case 2:
				{
				this.state = 10177;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 10179;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & 2684352383) !== 0) || ((((_la - 64)) & ~0x1F) === 0 && ((1 << (_la - 64)) & 3220168703) !== 0) || ((((_la - 96)) & ~0x1F) === 0 && ((1 << (_la - 96)) & 4294965247) !== 0) || ((((_la - 128)) & ~0x1F) === 0 && ((1 << (_la - 128)) & 2147221503) !== 0) || ((((_la - 160)) & ~0x1F) === 0 && ((1 << (_la - 160)) & 4293910527) !== 0) || ((((_la - 192)) & ~0x1F) === 0 && ((1 << (_la - 192)) & 4294967295) !== 0) || ((((_la - 224)) & ~0x1F) === 0 && ((1 << (_la - 224)) & 4160749311) !== 0) || ((((_la - 256)) & ~0x1F) === 0 && ((1 << (_la - 256)) & 4294967295) !== 0) || ((((_la - 289)) & ~0x1F) === 0 && ((1 << (_la - 289)) & 2147483647) !== 0) || ((((_la - 321)) & ~0x1F) === 0 && ((1 << (_la - 321)) & 4294967295) !== 0) || ((((_la - 353)) & ~0x1F) === 0 && ((1 << (_la - 353)) & 4294705151) !== 0) || ((((_la - 385)) & ~0x1F) === 0 && ((1 << (_la - 385)) & 2080374527) !== 0) || ((((_la - 417)) & ~0x1F) === 0 && ((1 << (_la - 417)) & 4026433535) !== 0) || ((((_la - 449)) & ~0x1F) === 0 && ((1 << (_la - 449)) & 4261412863) !== 0) || ((((_la - 481)) & ~0x1F) === 0 && ((1 << (_la - 481)) & 4294967295) !== 0) || ((((_la - 513)) & ~0x1F) === 0 && ((1 << (_la - 513)) & 4294967295) !== 0) || ((((_la - 545)) & ~0x1F) === 0 && ((1 << (_la - 545)) & 3925868029) !== 0) || ((((_la - 577)) & ~0x1F) === 0 && ((1 << (_la - 577)) & 4278189823) !== 0) || ((((_la - 609)) & ~0x1F) === 0 && ((1 << (_la - 609)) & 4290772991) !== 0) || ((((_la - 641)) & ~0x1F) === 0 && ((1 << (_la - 641)) & 4026529791) !== 0) || ((((_la - 673)) & ~0x1F) === 0 && ((1 << (_la - 673)) & 4290478079) !== 0) || ((((_la - 705)) & ~0x1F) === 0 && ((1 << (_la - 705)) & 4294967295) !== 0) || ((((_la - 737)) & ~0x1F) === 0 && ((1 << (_la - 737)) & 4293918719) !== 0) || ((((_la - 769)) & ~0x1F) === 0 && ((1 << (_la - 769)) & 4294967167) !== 0) || ((((_la - 801)) & ~0x1F) === 0 && ((1 << (_la - 801)) & 4294967295) !== 0) || ((((_la - 833)) & ~0x1F) === 0 && ((1 << (_la - 833)) & 4160749055) !== 0) || ((((_la - 865)) & ~0x1F) === 0 && ((1 << (_la - 865)) & 4290772991) !== 0) || ((((_la - 897)) & ~0x1F) === 0 && ((1 << (_la - 897)) & 4294967295) !== 0) || ((((_la - 929)) & ~0x1F) === 0 && ((1 << (_la - 929)) & 4278190079) !== 0) || ((((_la - 961)) & ~0x1F) === 0 && ((1 << (_la - 961)) & 4294967295) !== 0) || ((((_la - 993)) & ~0x1F) === 0 && ((1 << (_la - 993)) & 4294967295) !== 0) || ((((_la - 1025)) & ~0x1F) === 0 && ((1 << (_la - 1025)) & 4294967295) !== 0) || ((((_la - 1057)) & ~0x1F) === 0 && ((1 << (_la - 1057)) & 2147483647) !== 0) || ((((_la - 1089)) & ~0x1F) === 0 && ((1 << (_la - 1089)) & 4227858431) !== 0) || ((((_la - 1121)) & ~0x1F) === 0 && ((1 << (_la - 1121)) & 4293918559) !== 0) || ((((_la - 1153)) & ~0x1F) === 0 && ((1 << (_la - 1153)) & 4294410239) !== 0) || ((((_la - 1185)) & ~0x1F) === 0 && ((1 << (_la - 1185)) & 4294965247) !== 0) || ((((_la - 1217)) & ~0x1F) === 0 && ((1 << (_la - 1217)) & 4279827455) !== 0) || ((((_la - 1249)) & ~0x1F) === 0 && ((1 << (_la - 1249)) & 4294967291) !== 0) || ((((_la - 1281)) & ~0x1F) === 0 && ((1 << (_la - 1281)) & 4294967295) !== 0) || ((((_la - 1313)) & ~0x1F) === 0 && ((1 << (_la - 1313)) & 4294965247) !== 0) || ((((_la - 1345)) & ~0x1F) === 0 && ((1 << (_la - 1345)) & 4294967295) !== 0) || ((((_la - 1377)) & ~0x1F) === 0 && ((1 << (_la - 1377)) & 4292870143) !== 0) || ((((_la - 1409)) & ~0x1F) === 0 && ((1 << (_la - 1409)) & 4261412799) !== 0) || ((((_la - 1441)) & ~0x1F) === 0 && ((1 << (_la - 1441)) & 4294967295) !== 0) || ((((_la - 1473)) & ~0x1F) === 0 && ((1 << (_la - 1473)) & 4261281791) !== 0) || ((((_la - 1505)) & ~0x1F) === 0 && ((1 << (_la - 1505)) & 3221221375) !== 0) || ((((_la - 1537)) & ~0x1F) === 0 && ((1 << (_la - 1537)) & 4294967295) !== 0) || ((((_la - 1570)) & ~0x1F) === 0 && ((1 << (_la - 1570)) & 4294967295) !== 0) || ((((_la - 1602)) & ~0x1F) === 0 && ((1 << (_la - 1602)) & 4261412863) !== 0) || ((((_la - 1634)) & ~0x1F) === 0 && ((1 << (_la - 1634)) & 4294967295) !== 0) || ((((_la - 1666)) & ~0x1F) === 0 && ((1 << (_la - 1666)) & 4294967295) !== 0) || ((((_la - 1698)) & ~0x1F) === 0 && ((1 << (_la - 1698)) & 4294967295) !== 0) || ((((_la - 1730)) & ~0x1F) === 0 && ((1 << (_la - 1730)) & 4294967295) !== 0) || ((((_la - 1762)) & ~0x1F) === 0 && ((1 << (_la - 1762)) & 4294967295) !== 0) || ((((_la - 1794)) & ~0x1F) === 0 && ((1 << (_la - 1794)) & 4294967295) !== 0) || ((((_la - 1826)) & ~0x1F) === 0 && ((1 << (_la - 1826)) & 4294967295) !== 0) || ((((_la - 1858)) & ~0x1F) === 0 && ((1 << (_la - 1858)) & 4294967295) !== 0) || ((((_la - 1890)) & ~0x1F) === 0 && ((1 << (_la - 1890)) & 4294967295) !== 0) || ((((_la - 1922)) & ~0x1F) === 0 && ((1 << (_la - 1922)) & 4294901759) !== 0) || ((((_la - 1954)) & ~0x1F) === 0 && ((1 << (_la - 1954)) & 4294966271) !== 0) || ((((_la - 1986)) & ~0x1F) === 0 && ((1 << (_la - 1986)) & 4294868991) !== 0) || ((((_la - 2018)) & ~0x1F) === 0 && ((1 << (_la - 2018)) & 4294967167) !== 0) || ((((_la - 2050)) & ~0x1F) === 0 && ((1 << (_la - 2050)) & 4286578687) !== 0) || ((((_la - 2082)) & ~0x1F) === 0 && ((1 << (_la - 2082)) & 4294836223) !== 0) || ((((_la - 2115)) & ~0x1F) === 0 && ((1 << (_la - 2115)) & 3758092223) !== 0) || ((((_la - 2147)) & ~0x1F) === 0 && ((1 << (_la - 2147)) & 4293918719) !== 0) || ((((_la - 2179)) & ~0x1F) === 0 && ((1 << (_la - 2179)) & 4294967295) !== 0) || ((((_la - 2211)) & ~0x1F) === 0 && ((1 << (_la - 2211)) & 541266915) !== 0) || _la===2246 || _la===2252) {
					{
					this.state = 10178;
					this.expressions();
					}
				}

				this.state = 10181;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
				break;
			}
			this.state = 10184;
			this.match(PlSqlParser.RIGHT_PAREN);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public unary_expression(): Unary_expressionContext {
		let localctx: Unary_expressionContext = new Unary_expressionContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1268, PlSqlParser.RULE_unary_expression);
		let _la: number;
		try {
			this.state = 10202;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1379, this._ctx) ) {
			case 1:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 10186;
				_la = this._input.LA(1);
				if(!(_la===2227 || _la===2228)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				this.state = 10187;
				this.unary_expression();
				}
				break;
			case 2:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 10188;
				this.match(PlSqlParser.PRIOR);
				this.state = 10189;
				this.unary_expression();
				}
				break;
			case 3:
				this.enterOuterAlt(localctx, 3);
				{
				this.state = 10190;
				this.match(PlSqlParser.CONNECT_BY_ROOT);
				this.state = 10191;
				this.unary_expression();
				}
				break;
			case 4:
				this.enterOuterAlt(localctx, 4);
				{
				this.state = 10192;
				this.match(PlSqlParser.NEW);
				this.state = 10193;
				this.unary_expression();
				}
				break;
			case 5:
				this.enterOuterAlt(localctx, 5);
				{
				this.state = 10194;
				this.match(PlSqlParser.DISTINCT);
				this.state = 10195;
				this.unary_expression();
				}
				break;
			case 6:
				this.enterOuterAlt(localctx, 6);
				{
				this.state = 10196;
				this.match(PlSqlParser.ALL);
				this.state = 10197;
				this.unary_expression();
				}
				break;
			case 7:
				this.enterOuterAlt(localctx, 7);
				{
				this.state = 10198;
				this.case_statement();
				}
				break;
			case 8:
				this.enterOuterAlt(localctx, 8);
				{
				this.state = 10199;
				this.quantified_expression();
				}
				break;
			case 9:
				this.enterOuterAlt(localctx, 9);
				{
				this.state = 10200;
				this.standard_function();
				}
				break;
			case 10:
				this.enterOuterAlt(localctx, 10);
				{
				this.state = 10201;
				this.atom();
				}
				break;
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public case_statement(): Case_statementContext {
		let localctx: Case_statementContext = new Case_statementContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1270, PlSqlParser.RULE_case_statement);
		try {
			this.state = 10206;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1380, this._ctx) ) {
			case 1:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 10204;
				this.searched_case_statement();
				}
				break;
			case 2:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 10205;
				this.simple_case_statement();
				}
				break;
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public simple_case_statement(): Simple_case_statementContext {
		let localctx: Simple_case_statementContext = new Simple_case_statementContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1272, PlSqlParser.RULE_simple_case_statement);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 10209;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1381, this._ctx) ) {
			case 1:
				{
				this.state = 10208;
				this.label_name();
				}
				break;
			}
			this.state = 10211;
			localctx._ck1 = this.match(PlSqlParser.CASE);
			this.state = 10212;
			this.expression();
			this.state = 10214;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			do {
				{
				{
				this.state = 10213;
				this.simple_case_when_part();
				}
				}
				this.state = 10216;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			} while (_la===2113);
			this.state = 10219;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===432) {
				{
				this.state = 10218;
				this.case_else_part();
				}
			}

			this.state = 10221;
			this.match(PlSqlParser.END);
			this.state = 10223;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1384, this._ctx) ) {
			case 1:
				{
				this.state = 10222;
				this.match(PlSqlParser.CASE);
				}
				break;
			}
			this.state = 10226;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1385, this._ctx) ) {
			case 1:
				{
				this.state = 10225;
				this.label_name();
				}
				break;
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public simple_case_when_part(): Simple_case_when_partContext {
		let localctx: Simple_case_when_partContext = new Simple_case_when_partContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1274, PlSqlParser.RULE_simple_case_when_part);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 10228;
			this.match(PlSqlParser.WHEN);
			this.state = 10229;
			this.expression();
			this.state = 10230;
			this.match(PlSqlParser.THEN);
			this.state = 10233;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1386, this._ctx) ) {
			case 1:
				{
				this.state = 10231;
				this.seq_of_statements();
				}
				break;
			case 2:
				{
				this.state = 10232;
				this.expression();
				}
				break;
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public searched_case_statement(): Searched_case_statementContext {
		let localctx: Searched_case_statementContext = new Searched_case_statementContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1276, PlSqlParser.RULE_searched_case_statement);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 10236;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1387, this._ctx) ) {
			case 1:
				{
				this.state = 10235;
				this.label_name();
				}
				break;
			}
			this.state = 10238;
			localctx._ck1 = this.match(PlSqlParser.CASE);
			this.state = 10240;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			do {
				{
				{
				this.state = 10239;
				this.searched_case_when_part();
				}
				}
				this.state = 10242;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			} while (_la===2113);
			this.state = 10245;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===432) {
				{
				this.state = 10244;
				this.case_else_part();
				}
			}

			this.state = 10247;
			this.match(PlSqlParser.END);
			this.state = 10249;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1390, this._ctx) ) {
			case 1:
				{
				this.state = 10248;
				this.match(PlSqlParser.CASE);
				}
				break;
			}
			this.state = 10252;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1391, this._ctx) ) {
			case 1:
				{
				this.state = 10251;
				this.label_name();
				}
				break;
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public searched_case_when_part(): Searched_case_when_partContext {
		let localctx: Searched_case_when_partContext = new Searched_case_when_partContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1278, PlSqlParser.RULE_searched_case_when_part);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 10254;
			this.match(PlSqlParser.WHEN);
			this.state = 10255;
			this.expression();
			this.state = 10256;
			this.match(PlSqlParser.THEN);
			this.state = 10259;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1392, this._ctx) ) {
			case 1:
				{
				this.state = 10257;
				this.seq_of_statements();
				}
				break;
			case 2:
				{
				this.state = 10258;
				this.expression();
				}
				break;
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public case_else_part(): Case_else_partContext {
		let localctx: Case_else_partContext = new Case_else_partContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1280, PlSqlParser.RULE_case_else_part);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 10261;
			this.match(PlSqlParser.ELSE);
			this.state = 10264;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1393, this._ctx) ) {
			case 1:
				{
				this.state = 10262;
				this.seq_of_statements();
				}
				break;
			case 2:
				{
				this.state = 10263;
				this.expression();
				}
				break;
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public atom(): AtomContext {
		let localctx: AtomContext = new AtomContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1282, PlSqlParser.RULE_atom);
		try {
			let _alt: number;
			this.state = 10285;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1395, this._ctx) ) {
			case 1:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 10266;
				this.table_element();
				this.state = 10267;
				this.outer_join_sign();
				}
				break;
			case 2:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 10269;
				this.bind_variable();
				}
				break;
			case 3:
				this.enterOuterAlt(localctx, 3);
				{
				this.state = 10270;
				this.constant();
				}
				break;
			case 4:
				this.enterOuterAlt(localctx, 4);
				{
				this.state = 10271;
				this.general_element();
				}
				break;
			case 5:
				this.enterOuterAlt(localctx, 5);
				{
				this.state = 10272;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 10273;
				this.subquery();
				this.state = 10274;
				this.match(PlSqlParser.RIGHT_PAREN);
				this.state = 10278;
				this._errHandler.sync(this);
				_alt = this._interp.adaptivePredict(this._input, 1394, this._ctx);
				while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) {
					if (_alt === 1) {
						{
						{
						this.state = 10275;
						this.subquery_operation_part();
						}
						}
					}
					this.state = 10280;
					this._errHandler.sync(this);
					_alt = this._interp.adaptivePredict(this._input, 1394, this._ctx);
				}
				}
				break;
			case 6:
				this.enterOuterAlt(localctx, 6);
				{
				this.state = 10281;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 10282;
				this.expressions();
				this.state = 10283;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
				break;
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public quantified_expression(): Quantified_expressionContext {
		let localctx: Quantified_expressionContext = new Quantified_expressionContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1284, PlSqlParser.RULE_quantified_expression);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 10287;
			_la = this._input.LA(1);
			if(!(_la===35 || _la===48 || _la===478 || _la===1543)) {
			this._errHandler.recoverInline(this);
			}
			else {
				this._errHandler.reportMatch(this);
			    this.consume();
			}
			this.state = 10296;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1396, this._ctx) ) {
			case 1:
				{
				this.state = 10288;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 10289;
				this.subquery();
				this.state = 10290;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
				break;
			case 2:
				{
				this.state = 10292;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 10293;
				this.expression();
				this.state = 10294;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
				break;
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public string_function(): String_functionContext {
		let localctx: String_functionContext = new String_functionContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1286, PlSqlParser.RULE_string_function);
		let _la: number;
		try {
			this.state = 10368;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 2202:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 10298;
				this.match(PlSqlParser.SUBSTR);
				this.state = 10299;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 10300;
				this.expression();
				this.state = 10301;
				this.match(PlSqlParser.COMMA);
				this.state = 10302;
				this.expression();
				this.state = 10305;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===2229) {
					{
					this.state = 10303;
					this.match(PlSqlParser.COMMA);
					this.state = 10304;
					this.expression();
					}
				}

				this.state = 10307;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
				break;
			case 2203:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 10309;
				this.match(PlSqlParser.TO_CHAR);
				this.state = 10310;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 10314;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 1398, this._ctx) ) {
				case 1:
					{
					this.state = 10311;
					this.table_element();
					}
					break;
				case 2:
					{
					this.state = 10312;
					this.standard_function();
					}
					break;
				case 3:
					{
					this.state = 10313;
					this.expression();
					}
					break;
				}
				this.state = 10318;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 1399, this._ctx) ) {
				case 1:
					{
					this.state = 10316;
					this.match(PlSqlParser.COMMA);
					this.state = 10317;
					this.quoted_string();
					}
					break;
				}
				this.state = 10322;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===2229) {
					{
					this.state = 10320;
					this.match(PlSqlParser.COMMA);
					this.state = 10321;
					this.quoted_string();
					}
				}

				this.state = 10324;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
				break;
			case 2190:
				this.enterOuterAlt(localctx, 3);
				{
				this.state = 10326;
				this.match(PlSqlParser.DECODE);
				this.state = 10327;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 10328;
				this.expressions();
				this.state = 10329;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
				break;
			case 184:
				this.enterOuterAlt(localctx, 4);
				{
				this.state = 10331;
				this.match(PlSqlParser.CHR);
				this.state = 10332;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 10333;
				this.concatenation(0);
				this.state = 10334;
				this.match(PlSqlParser.USING);
				this.state = 10335;
				this.match(PlSqlParser.NCHAR_CS);
				this.state = 10336;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
				break;
			case 2197:
				this.enterOuterAlt(localctx, 5);
				{
				this.state = 10338;
				this.match(PlSqlParser.NVL);
				this.state = 10339;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 10340;
				this.expression();
				this.state = 10341;
				this.match(PlSqlParser.COMMA);
				this.state = 10342;
				this.expression();
				this.state = 10343;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
				break;
			case 2204:
				this.enterOuterAlt(localctx, 6);
				{
				this.state = 10345;
				this.match(PlSqlParser.TRIM);
				this.state = 10346;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 10354;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 1403, this._ctx) ) {
				case 1:
					{
					this.state = 10348;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
					if (_la===135 || _la===739 || _la===1969) {
						{
						this.state = 10347;
						_la = this._input.LA(1);
						if(!(_la===135 || _la===739 || _la===1969)) {
						this._errHandler.recoverInline(this);
						}
						else {
							this._errHandler.reportMatch(this);
						    this.consume();
						}
						}
					}

					this.state = 10351;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
					if (_la===2212 || _la===2219) {
						{
						this.state = 10350;
						this.quoted_string();
						}
					}

					this.state = 10353;
					this.match(PlSqlParser.FROM);
					}
					break;
				}
				this.state = 10356;
				this.concatenation(0);
				this.state = 10357;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
				break;
			case 2211:
				this.enterOuterAlt(localctx, 7);
				{
				this.state = 10359;
				this.match(PlSqlParser.TO_DATE);
				this.state = 10360;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 10361;
				this.expression();
				this.state = 10364;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===2229) {
					{
					this.state = 10362;
					this.match(PlSqlParser.COMMA);
					this.state = 10363;
					this.quoted_string();
					}
				}

				this.state = 10366;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public standard_function(): Standard_functionContext {
		let localctx: Standard_functionContext = new Standard_functionContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1288, PlSqlParser.RULE_standard_function);
		try {
			this.state = 10373;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1406, this._ctx) ) {
			case 1:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 10370;
				this.string_function();
				}
				break;
			case 2:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 10371;
				this.numeric_function_wrapper();
				}
				break;
			case 3:
				this.enterOuterAlt(localctx, 3);
				{
				this.state = 10372;
				this.other_function();
				}
				break;
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public literal(): LiteralContext {
		let localctx: LiteralContext = new LiteralContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1290, PlSqlParser.RULE_literal);
		try {
			this.state = 10379;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 2219:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 10375;
				this.match(PlSqlParser.CHAR_STRING);
				}
				break;
			case 184:
			case 2190:
			case 2197:
			case 2202:
			case 2203:
			case 2204:
			case 2211:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 10376;
				this.string_function();
				}
				break;
			case 2217:
			case 2218:
				this.enterOuterAlt(localctx, 3);
				{
				this.state = 10377;
				this.numeric();
				}
				break;
			case 822:
				this.enterOuterAlt(localctx, 4);
				{
				this.state = 10378;
				this.match(PlSqlParser.MAXVALUE);
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public numeric_function_wrapper(): Numeric_function_wrapperContext {
		let localctx: Numeric_function_wrapperContext = new Numeric_function_wrapperContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1292, PlSqlParser.RULE_numeric_function_wrapper);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 10381;
			this.numeric_function();
			this.state = 10384;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1408, this._ctx) ) {
			case 1:
				{
				this.state = 10382;
				this.single_column_for_loop();
				}
				break;
			case 2:
				{
				this.state = 10383;
				this.multi_column_for_loop();
				}
				break;
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public numeric_function(): Numeric_functionContext {
		let localctx: Numeric_functionContext = new Numeric_functionContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1294, PlSqlParser.RULE_numeric_function);
		let _la: number;
		try {
			this.state = 10444;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 2205:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 10386;
				this.match(PlSqlParser.SUM);
				this.state = 10387;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 10389;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 1409, this._ctx) ) {
				case 1:
					{
					this.state = 10388;
					_la = this._input.LA(1);
					if(!(_la===35 || _la===396)) {
					this._errHandler.recoverInline(this);
					}
					else {
						this._errHandler.reportMatch(this);
					    this.consume();
					}
					}
					break;
				}
				this.state = 10391;
				this.expression();
				this.state = 10392;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
				break;
			case 281:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 10394;
				this.match(PlSqlParser.COUNT);
				this.state = 10395;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 10403;
				this._errHandler.sync(this);
				switch (this._input.LA(1)) {
				case 2226:
					{
					this.state = 10396;
					this.match(PlSqlParser.ASTERISK);
					}
					break;
				case 1:
				case 2:
				case 3:
				case 4:
				case 5:
				case 6:
				case 7:
				case 8:
				case 9:
				case 10:
				case 11:
				case 12:
				case 13:
				case 14:
				case 15:
				case 16:
				case 17:
				case 18:
				case 19:
				case 20:
				case 21:
				case 22:
				case 23:
				case 24:
				case 25:
				case 26:
				case 27:
				case 28:
				case 29:
				case 30:
				case 31:
				case 32:
				case 33:
				case 34:
				case 35:
				case 36:
				case 37:
				case 38:
				case 40:
				case 41:
				case 42:
				case 44:
				case 45:
				case 46:
				case 47:
				case 48:
				case 49:
				case 50:
				case 51:
				case 52:
				case 53:
				case 54:
				case 55:
				case 56:
				case 57:
				case 58:
				case 59:
				case 60:
				case 63:
				case 64:
				case 65:
				case 66:
				case 67:
				case 68:
				case 69:
				case 70:
				case 71:
				case 72:
				case 73:
				case 74:
				case 75:
				case 76:
				case 78:
				case 79:
				case 80:
				case 81:
				case 82:
				case 83:
				case 85:
				case 86:
				case 87:
				case 88:
				case 89:
				case 90:
				case 91:
				case 92:
				case 93:
				case 95:
				case 96:
				case 97:
				case 98:
				case 99:
				case 100:
				case 101:
				case 102:
				case 103:
				case 104:
				case 105:
				case 106:
				case 108:
				case 109:
				case 110:
				case 111:
				case 112:
				case 113:
				case 114:
				case 115:
				case 116:
				case 117:
				case 118:
				case 119:
				case 120:
				case 121:
				case 122:
				case 123:
				case 124:
				case 125:
				case 126:
				case 127:
				case 128:
				case 129:
				case 130:
				case 131:
				case 132:
				case 133:
				case 134:
				case 135:
				case 136:
				case 137:
				case 138:
				case 139:
				case 140:
				case 141:
				case 142:
				case 143:
				case 144:
				case 145:
				case 147:
				case 148:
				case 149:
				case 150:
				case 151:
				case 152:
				case 153:
				case 154:
				case 155:
				case 156:
				case 157:
				case 158:
				case 160:
				case 161:
				case 162:
				case 163:
				case 164:
				case 165:
				case 166:
				case 167:
				case 168:
				case 169:
				case 170:
				case 171:
				case 172:
				case 174:
				case 175:
				case 176:
				case 177:
				case 178:
				case 179:
				case 181:
				case 182:
				case 183:
				case 184:
				case 185:
				case 186:
				case 187:
				case 188:
				case 189:
				case 190:
				case 191:
				case 192:
				case 193:
				case 194:
				case 195:
				case 196:
				case 197:
				case 198:
				case 199:
				case 200:
				case 201:
				case 202:
				case 203:
				case 204:
				case 205:
				case 206:
				case 207:
				case 208:
				case 209:
				case 210:
				case 211:
				case 212:
				case 213:
				case 214:
				case 215:
				case 216:
				case 217:
				case 218:
				case 219:
				case 220:
				case 221:
				case 222:
				case 223:
				case 224:
				case 225:
				case 226:
				case 227:
				case 228:
				case 229:
				case 230:
				case 231:
				case 233:
				case 234:
				case 235:
				case 236:
				case 237:
				case 238:
				case 239:
				case 240:
				case 241:
				case 242:
				case 243:
				case 244:
				case 245:
				case 246:
				case 247:
				case 248:
				case 249:
				case 250:
				case 252:
				case 253:
				case 254:
				case 255:
				case 256:
				case 257:
				case 258:
				case 259:
				case 260:
				case 261:
				case 262:
				case 263:
				case 264:
				case 265:
				case 266:
				case 267:
				case 268:
				case 269:
				case 270:
				case 271:
				case 272:
				case 273:
				case 274:
				case 275:
				case 276:
				case 277:
				case 278:
				case 279:
				case 280:
				case 281:
				case 282:
				case 283:
				case 284:
				case 285:
				case 286:
				case 287:
				case 289:
				case 290:
				case 291:
				case 292:
				case 293:
				case 294:
				case 295:
				case 296:
				case 297:
				case 298:
				case 299:
				case 300:
				case 301:
				case 302:
				case 303:
				case 304:
				case 305:
				case 306:
				case 307:
				case 308:
				case 309:
				case 310:
				case 311:
				case 312:
				case 313:
				case 314:
				case 315:
				case 316:
				case 317:
				case 318:
				case 319:
				case 321:
				case 322:
				case 323:
				case 324:
				case 325:
				case 326:
				case 327:
				case 328:
				case 329:
				case 330:
				case 331:
				case 332:
				case 333:
				case 334:
				case 335:
				case 336:
				case 337:
				case 338:
				case 339:
				case 340:
				case 341:
				case 342:
				case 343:
				case 344:
				case 345:
				case 346:
				case 347:
				case 348:
				case 349:
				case 350:
				case 351:
				case 352:
				case 353:
				case 354:
				case 355:
				case 356:
				case 357:
				case 358:
				case 359:
				case 360:
				case 361:
				case 362:
				case 363:
				case 364:
				case 365:
				case 366:
				case 367:
				case 368:
				case 369:
				case 370:
				case 372:
				case 373:
				case 374:
				case 375:
				case 376:
				case 377:
				case 378:
				case 379:
				case 380:
				case 381:
				case 382:
				case 383:
				case 384:
				case 385:
				case 386:
				case 387:
				case 388:
				case 389:
				case 390:
				case 391:
				case 392:
				case 394:
				case 395:
				case 396:
				case 397:
				case 398:
				case 399:
				case 400:
				case 401:
				case 402:
				case 403:
				case 404:
				case 405:
				case 406:
				case 407:
				case 408:
				case 409:
				case 410:
				case 412:
				case 413:
				case 414:
				case 415:
				case 417:
				case 418:
				case 419:
				case 420:
				case 421:
				case 422:
				case 423:
				case 424:
				case 425:
				case 426:
				case 427:
				case 428:
				case 429:
				case 430:
				case 431:
				case 434:
				case 435:
				case 436:
				case 437:
				case 438:
				case 439:
				case 440:
				case 441:
				case 442:
				case 443:
				case 444:
				case 446:
				case 447:
				case 448:
				case 449:
				case 450:
				case 451:
				case 452:
				case 453:
				case 454:
				case 455:
				case 456:
				case 457:
				case 458:
				case 459:
				case 460:
				case 461:
				case 462:
				case 463:
				case 464:
				case 465:
				case 466:
				case 467:
				case 468:
				case 469:
				case 470:
				case 471:
				case 472:
				case 473:
				case 475:
				case 476:
				case 477:
				case 478:
				case 479:
				case 480:
				case 481:
				case 482:
				case 483:
				case 484:
				case 485:
				case 486:
				case 487:
				case 488:
				case 489:
				case 490:
				case 491:
				case 492:
				case 493:
				case 494:
				case 495:
				case 496:
				case 497:
				case 498:
				case 499:
				case 500:
				case 501:
				case 502:
				case 503:
				case 504:
				case 505:
				case 506:
				case 507:
				case 508:
				case 509:
				case 510:
				case 511:
				case 512:
				case 513:
				case 514:
				case 515:
				case 516:
				case 517:
				case 518:
				case 519:
				case 520:
				case 521:
				case 522:
				case 523:
				case 524:
				case 525:
				case 526:
				case 527:
				case 528:
				case 529:
				case 530:
				case 531:
				case 532:
				case 533:
				case 534:
				case 535:
				case 536:
				case 537:
				case 538:
				case 539:
				case 540:
				case 541:
				case 542:
				case 543:
				case 544:
				case 545:
				case 547:
				case 548:
				case 549:
				case 550:
				case 551:
				case 552:
				case 553:
				case 555:
				case 556:
				case 557:
				case 558:
				case 559:
				case 560:
				case 561:
				case 562:
				case 563:
				case 564:
				case 565:
				case 566:
				case 567:
				case 568:
				case 569:
				case 572:
				case 574:
				case 575:
				case 576:
				case 577:
				case 578:
				case 579:
				case 580:
				case 581:
				case 582:
				case 583:
				case 584:
				case 586:
				case 587:
				case 588:
				case 589:
				case 590:
				case 591:
				case 592:
				case 593:
				case 594:
				case 595:
				case 596:
				case 597:
				case 598:
				case 599:
				case 600:
				case 602:
				case 603:
				case 604:
				case 605:
				case 606:
				case 607:
				case 608:
				case 609:
				case 610:
				case 611:
				case 612:
				case 613:
				case 614:
				case 615:
				case 616:
				case 617:
				case 618:
				case 619:
				case 620:
				case 621:
				case 622:
				case 623:
				case 624:
				case 625:
				case 626:
				case 627:
				case 628:
				case 629:
				case 630:
				case 632:
				case 633:
				case 634:
				case 635:
				case 636:
				case 637:
				case 638:
				case 639:
				case 640:
				case 641:
				case 642:
				case 643:
				case 644:
				case 645:
				case 646:
				case 647:
				case 648:
				case 649:
				case 650:
				case 651:
				case 653:
				case 654:
				case 655:
				case 656:
				case 657:
				case 658:
				case 659:
				case 660:
				case 661:
				case 662:
				case 663:
				case 664:
				case 665:
				case 666:
				case 667:
				case 668:
				case 670:
				case 671:
				case 672:
				case 673:
				case 674:
				case 675:
				case 676:
				case 677:
				case 678:
				case 679:
				case 680:
				case 681:
				case 682:
				case 683:
				case 684:
				case 685:
				case 686:
				case 687:
				case 689:
				case 690:
				case 692:
				case 693:
				case 694:
				case 696:
				case 697:
				case 698:
				case 699:
				case 700:
				case 701:
				case 702:
				case 703:
				case 704:
				case 705:
				case 706:
				case 707:
				case 708:
				case 709:
				case 710:
				case 711:
				case 712:
				case 713:
				case 714:
				case 715:
				case 716:
				case 717:
				case 718:
				case 719:
				case 720:
				case 721:
				case 722:
				case 723:
				case 724:
				case 725:
				case 726:
				case 727:
				case 728:
				case 729:
				case 730:
				case 731:
				case 732:
				case 733:
				case 734:
				case 735:
				case 736:
				case 737:
				case 738:
				case 739:
				case 740:
				case 741:
				case 742:
				case 743:
				case 744:
				case 745:
				case 746:
				case 747:
				case 748:
				case 749:
				case 750:
				case 751:
				case 752:
				case 753:
				case 754:
				case 755:
				case 756:
				case 758:
				case 759:
				case 760:
				case 761:
				case 762:
				case 763:
				case 764:
				case 765:
				case 766:
				case 767:
				case 768:
				case 769:
				case 770:
				case 771:
				case 772:
				case 773:
				case 774:
				case 775:
				case 777:
				case 778:
				case 779:
				case 780:
				case 781:
				case 782:
				case 783:
				case 784:
				case 785:
				case 786:
				case 787:
				case 788:
				case 789:
				case 790:
				case 791:
				case 792:
				case 793:
				case 794:
				case 795:
				case 796:
				case 797:
				case 798:
				case 799:
				case 800:
				case 801:
				case 802:
				case 803:
				case 804:
				case 805:
				case 806:
				case 807:
				case 808:
				case 809:
				case 810:
				case 811:
				case 812:
				case 813:
				case 814:
				case 815:
				case 816:
				case 817:
				case 818:
				case 819:
				case 820:
				case 821:
				case 822:
				case 823:
				case 824:
				case 825:
				case 826:
				case 827:
				case 828:
				case 829:
				case 830:
				case 831:
				case 832:
				case 833:
				case 834:
				case 835:
				case 836:
				case 837:
				case 838:
				case 839:
				case 840:
				case 841:
				case 843:
				case 844:
				case 845:
				case 846:
				case 847:
				case 848:
				case 849:
				case 850:
				case 851:
				case 852:
				case 853:
				case 854:
				case 855:
				case 856:
				case 857:
				case 858:
				case 859:
				case 861:
				case 862:
				case 863:
				case 864:
				case 865:
				case 866:
				case 867:
				case 868:
				case 869:
				case 870:
				case 871:
				case 872:
				case 873:
				case 874:
				case 875:
				case 876:
				case 877:
				case 878:
				case 879:
				case 880:
				case 881:
				case 882:
				case 883:
				case 884:
				case 885:
				case 886:
				case 888:
				case 889:
				case 890:
				case 891:
				case 892:
				case 893:
				case 894:
				case 895:
				case 896:
				case 897:
				case 898:
				case 899:
				case 900:
				case 901:
				case 902:
				case 903:
				case 904:
				case 905:
				case 906:
				case 907:
				case 908:
				case 909:
				case 910:
				case 911:
				case 912:
				case 913:
				case 914:
				case 915:
				case 916:
				case 917:
				case 918:
				case 919:
				case 920:
				case 921:
				case 922:
				case 923:
				case 924:
				case 925:
				case 926:
				case 927:
				case 928:
				case 929:
				case 930:
				case 931:
				case 932:
				case 933:
				case 934:
				case 935:
				case 936:
				case 937:
				case 938:
				case 939:
				case 940:
				case 941:
				case 942:
				case 943:
				case 944:
				case 945:
				case 946:
				case 947:
				case 948:
				case 949:
				case 950:
				case 951:
				case 952:
				case 954:
				case 955:
				case 956:
				case 957:
				case 958:
				case 959:
				case 960:
				case 961:
				case 962:
				case 963:
				case 964:
				case 965:
				case 966:
				case 967:
				case 968:
				case 969:
				case 970:
				case 971:
				case 972:
				case 973:
				case 974:
				case 975:
				case 976:
				case 977:
				case 978:
				case 979:
				case 980:
				case 981:
				case 982:
				case 983:
				case 984:
				case 985:
				case 986:
				case 987:
				case 988:
				case 989:
				case 990:
				case 991:
				case 992:
				case 993:
				case 994:
				case 995:
				case 996:
				case 997:
				case 998:
				case 999:
				case 1000:
				case 1001:
				case 1002:
				case 1003:
				case 1004:
				case 1005:
				case 1006:
				case 1007:
				case 1008:
				case 1009:
				case 1010:
				case 1011:
				case 1012:
				case 1013:
				case 1014:
				case 1015:
				case 1016:
				case 1017:
				case 1018:
				case 1019:
				case 1020:
				case 1021:
				case 1022:
				case 1023:
				case 1024:
				case 1025:
				case 1026:
				case 1027:
				case 1028:
				case 1029:
				case 1030:
				case 1031:
				case 1032:
				case 1033:
				case 1034:
				case 1035:
				case 1036:
				case 1037:
				case 1038:
				case 1039:
				case 1040:
				case 1041:
				case 1042:
				case 1043:
				case 1044:
				case 1045:
				case 1046:
				case 1047:
				case 1048:
				case 1049:
				case 1050:
				case 1051:
				case 1052:
				case 1053:
				case 1054:
				case 1055:
				case 1056:
				case 1057:
				case 1058:
				case 1059:
				case 1060:
				case 1061:
				case 1062:
				case 1063:
				case 1064:
				case 1065:
				case 1066:
				case 1067:
				case 1068:
				case 1069:
				case 1070:
				case 1071:
				case 1072:
				case 1074:
				case 1075:
				case 1076:
				case 1077:
				case 1078:
				case 1079:
				case 1080:
				case 1081:
				case 1082:
				case 1083:
				case 1084:
				case 1085:
				case 1086:
				case 1087:
				case 1089:
				case 1090:
				case 1091:
				case 1092:
				case 1093:
				case 1094:
				case 1095:
				case 1096:
				case 1097:
				case 1098:
				case 1099:
				case 1100:
				case 1101:
				case 1102:
				case 1103:
				case 1104:
				case 1105:
				case 1106:
				case 1107:
				case 1108:
				case 1109:
				case 1110:
				case 1111:
				case 1112:
				case 1113:
				case 1114:
				case 1116:
				case 1117:
				case 1118:
				case 1119:
				case 1120:
				case 1121:
				case 1122:
				case 1123:
				case 1124:
				case 1125:
				case 1127:
				case 1129:
				case 1130:
				case 1131:
				case 1132:
				case 1133:
				case 1134:
				case 1135:
				case 1136:
				case 1137:
				case 1138:
				case 1139:
				case 1140:
				case 1142:
				case 1143:
				case 1144:
				case 1145:
				case 1146:
				case 1147:
				case 1148:
				case 1149:
				case 1150:
				case 1151:
				case 1152:
				case 1153:
				case 1154:
				case 1155:
				case 1156:
				case 1157:
				case 1158:
				case 1159:
				case 1160:
				case 1161:
				case 1162:
				case 1163:
				case 1164:
				case 1165:
				case 1166:
				case 1167:
				case 1169:
				case 1170:
				case 1171:
				case 1173:
				case 1174:
				case 1175:
				case 1176:
				case 1177:
				case 1178:
				case 1179:
				case 1180:
				case 1181:
				case 1182:
				case 1183:
				case 1184:
				case 1185:
				case 1186:
				case 1187:
				case 1188:
				case 1189:
				case 1190:
				case 1191:
				case 1192:
				case 1193:
				case 1194:
				case 1195:
				case 1197:
				case 1198:
				case 1199:
				case 1200:
				case 1201:
				case 1202:
				case 1203:
				case 1204:
				case 1205:
				case 1206:
				case 1207:
				case 1208:
				case 1209:
				case 1210:
				case 1211:
				case 1212:
				case 1213:
				case 1214:
				case 1215:
				case 1216:
				case 1217:
				case 1218:
				case 1219:
				case 1220:
				case 1221:
				case 1222:
				case 1223:
				case 1224:
				case 1225:
				case 1226:
				case 1228:
				case 1229:
				case 1230:
				case 1231:
				case 1232:
				case 1236:
				case 1237:
				case 1241:
				case 1242:
				case 1243:
				case 1244:
				case 1245:
				case 1246:
				case 1247:
				case 1248:
				case 1249:
				case 1250:
				case 1252:
				case 1253:
				case 1254:
				case 1255:
				case 1256:
				case 1257:
				case 1258:
				case 1259:
				case 1260:
				case 1261:
				case 1262:
				case 1263:
				case 1264:
				case 1265:
				case 1266:
				case 1267:
				case 1268:
				case 1269:
				case 1270:
				case 1271:
				case 1272:
				case 1273:
				case 1274:
				case 1275:
				case 1276:
				case 1277:
				case 1278:
				case 1279:
				case 1280:
				case 1281:
				case 1282:
				case 1283:
				case 1284:
				case 1285:
				case 1286:
				case 1287:
				case 1288:
				case 1289:
				case 1290:
				case 1291:
				case 1292:
				case 1293:
				case 1294:
				case 1295:
				case 1296:
				case 1297:
				case 1298:
				case 1299:
				case 1300:
				case 1301:
				case 1302:
				case 1303:
				case 1304:
				case 1305:
				case 1306:
				case 1307:
				case 1308:
				case 1309:
				case 1310:
				case 1311:
				case 1312:
				case 1313:
				case 1314:
				case 1315:
				case 1316:
				case 1317:
				case 1318:
				case 1319:
				case 1320:
				case 1321:
				case 1322:
				case 1323:
				case 1325:
				case 1326:
				case 1327:
				case 1328:
				case 1329:
				case 1330:
				case 1331:
				case 1332:
				case 1333:
				case 1334:
				case 1335:
				case 1336:
				case 1337:
				case 1338:
				case 1339:
				case 1340:
				case 1341:
				case 1342:
				case 1343:
				case 1344:
				case 1345:
				case 1346:
				case 1347:
				case 1348:
				case 1349:
				case 1350:
				case 1351:
				case 1352:
				case 1353:
				case 1354:
				case 1355:
				case 1356:
				case 1357:
				case 1358:
				case 1359:
				case 1360:
				case 1361:
				case 1362:
				case 1363:
				case 1364:
				case 1365:
				case 1366:
				case 1367:
				case 1368:
				case 1369:
				case 1370:
				case 1371:
				case 1372:
				case 1373:
				case 1374:
				case 1375:
				case 1376:
				case 1377:
				case 1378:
				case 1379:
				case 1380:
				case 1381:
				case 1382:
				case 1383:
				case 1384:
				case 1385:
				case 1386:
				case 1387:
				case 1388:
				case 1389:
				case 1390:
				case 1391:
				case 1392:
				case 1393:
				case 1394:
				case 1395:
				case 1396:
				case 1397:
				case 1399:
				case 1400:
				case 1401:
				case 1402:
				case 1403:
				case 1404:
				case 1405:
				case 1406:
				case 1407:
				case 1408:
				case 1409:
				case 1410:
				case 1411:
				case 1412:
				case 1413:
				case 1414:
				case 1416:
				case 1417:
				case 1418:
				case 1419:
				case 1420:
				case 1421:
				case 1422:
				case 1423:
				case 1424:
				case 1425:
				case 1426:
				case 1427:
				case 1428:
				case 1429:
				case 1430:
				case 1431:
				case 1432:
				case 1433:
				case 1435:
				case 1436:
				case 1437:
				case 1438:
				case 1439:
				case 1440:
				case 1441:
				case 1442:
				case 1443:
				case 1444:
				case 1445:
				case 1446:
				case 1447:
				case 1448:
				case 1449:
				case 1450:
				case 1451:
				case 1452:
				case 1453:
				case 1454:
				case 1455:
				case 1456:
				case 1457:
				case 1458:
				case 1459:
				case 1460:
				case 1461:
				case 1462:
				case 1463:
				case 1464:
				case 1465:
				case 1466:
				case 1467:
				case 1468:
				case 1469:
				case 1470:
				case 1471:
				case 1472:
				case 1473:
				case 1474:
				case 1475:
				case 1476:
				case 1477:
				case 1478:
				case 1479:
				case 1480:
				case 1481:
				case 1482:
				case 1483:
				case 1484:
				case 1485:
				case 1486:
				case 1487:
				case 1488:
				case 1489:
				case 1491:
				case 1492:
				case 1493:
				case 1494:
				case 1495:
				case 1496:
				case 1497:
				case 1499:
				case 1500:
				case 1501:
				case 1502:
				case 1503:
				case 1504:
				case 1505:
				case 1506:
				case 1507:
				case 1508:
				case 1509:
				case 1510:
				case 1511:
				case 1512:
				case 1513:
				case 1514:
				case 1515:
				case 1516:
				case 1518:
				case 1519:
				case 1520:
				case 1521:
				case 1522:
				case 1523:
				case 1524:
				case 1525:
				case 1526:
				case 1527:
				case 1528:
				case 1529:
				case 1530:
				case 1531:
				case 1532:
				case 1533:
				case 1534:
				case 1536:
				case 1537:
				case 1538:
				case 1539:
				case 1540:
				case 1541:
				case 1542:
				case 1543:
				case 1544:
				case 1545:
				case 1546:
				case 1547:
				case 1548:
				case 1549:
				case 1550:
				case 1551:
				case 1552:
				case 1553:
				case 1554:
				case 1555:
				case 1556:
				case 1557:
				case 1558:
				case 1559:
				case 1560:
				case 1561:
				case 1562:
				case 1563:
				case 1564:
				case 1565:
				case 1566:
				case 1567:
				case 1568:
				case 1570:
				case 1571:
				case 1572:
				case 1573:
				case 1574:
				case 1575:
				case 1576:
				case 1577:
				case 1578:
				case 1579:
				case 1580:
				case 1581:
				case 1582:
				case 1583:
				case 1584:
				case 1585:
				case 1586:
				case 1587:
				case 1588:
				case 1589:
				case 1590:
				case 1591:
				case 1592:
				case 1593:
				case 1594:
				case 1595:
				case 1596:
				case 1597:
				case 1598:
				case 1599:
				case 1600:
				case 1601:
				case 1602:
				case 1603:
				case 1604:
				case 1605:
				case 1606:
				case 1607:
				case 1608:
				case 1609:
				case 1610:
				case 1611:
				case 1612:
				case 1613:
				case 1614:
				case 1615:
				case 1616:
				case 1617:
				case 1618:
				case 1619:
				case 1620:
				case 1621:
				case 1622:
				case 1623:
				case 1624:
				case 1625:
				case 1626:
				case 1628:
				case 1629:
				case 1630:
				case 1631:
				case 1632:
				case 1633:
				case 1634:
				case 1635:
				case 1636:
				case 1637:
				case 1638:
				case 1639:
				case 1640:
				case 1641:
				case 1642:
				case 1643:
				case 1644:
				case 1645:
				case 1646:
				case 1647:
				case 1648:
				case 1649:
				case 1650:
				case 1651:
				case 1652:
				case 1653:
				case 1654:
				case 1655:
				case 1656:
				case 1657:
				case 1658:
				case 1659:
				case 1660:
				case 1661:
				case 1662:
				case 1663:
				case 1664:
				case 1665:
				case 1666:
				case 1667:
				case 1668:
				case 1669:
				case 1670:
				case 1671:
				case 1672:
				case 1673:
				case 1674:
				case 1675:
				case 1676:
				case 1677:
				case 1678:
				case 1679:
				case 1680:
				case 1681:
				case 1682:
				case 1683:
				case 1684:
				case 1685:
				case 1686:
				case 1687:
				case 1688:
				case 1689:
				case 1690:
				case 1691:
				case 1692:
				case 1693:
				case 1694:
				case 1695:
				case 1696:
				case 1697:
				case 1698:
				case 1699:
				case 1700:
				case 1701:
				case 1702:
				case 1703:
				case 1704:
				case 1705:
				case 1706:
				case 1707:
				case 1708:
				case 1709:
				case 1710:
				case 1711:
				case 1712:
				case 1713:
				case 1714:
				case 1715:
				case 1716:
				case 1717:
				case 1718:
				case 1719:
				case 1720:
				case 1721:
				case 1722:
				case 1723:
				case 1724:
				case 1725:
				case 1726:
				case 1727:
				case 1728:
				case 1729:
				case 1730:
				case 1731:
				case 1732:
				case 1733:
				case 1734:
				case 1735:
				case 1736:
				case 1737:
				case 1738:
				case 1739:
				case 1740:
				case 1741:
				case 1742:
				case 1743:
				case 1744:
				case 1745:
				case 1746:
				case 1747:
				case 1748:
				case 1749:
				case 1750:
				case 1751:
				case 1752:
				case 1753:
				case 1754:
				case 1755:
				case 1756:
				case 1757:
				case 1758:
				case 1759:
				case 1760:
				case 1761:
				case 1762:
				case 1763:
				case 1764:
				case 1765:
				case 1766:
				case 1767:
				case 1768:
				case 1769:
				case 1770:
				case 1771:
				case 1772:
				case 1773:
				case 1774:
				case 1775:
				case 1776:
				case 1777:
				case 1778:
				case 1779:
				case 1780:
				case 1781:
				case 1782:
				case 1783:
				case 1784:
				case 1785:
				case 1786:
				case 1787:
				case 1788:
				case 1789:
				case 1790:
				case 1791:
				case 1792:
				case 1793:
				case 1794:
				case 1795:
				case 1796:
				case 1797:
				case 1798:
				case 1799:
				case 1800:
				case 1801:
				case 1802:
				case 1803:
				case 1804:
				case 1805:
				case 1806:
				case 1807:
				case 1808:
				case 1809:
				case 1810:
				case 1811:
				case 1812:
				case 1813:
				case 1814:
				case 1815:
				case 1816:
				case 1817:
				case 1818:
				case 1819:
				case 1820:
				case 1821:
				case 1822:
				case 1823:
				case 1824:
				case 1825:
				case 1826:
				case 1827:
				case 1828:
				case 1829:
				case 1830:
				case 1831:
				case 1832:
				case 1833:
				case 1834:
				case 1835:
				case 1836:
				case 1837:
				case 1838:
				case 1839:
				case 1840:
				case 1841:
				case 1842:
				case 1843:
				case 1844:
				case 1845:
				case 1846:
				case 1847:
				case 1848:
				case 1849:
				case 1850:
				case 1851:
				case 1852:
				case 1853:
				case 1854:
				case 1855:
				case 1856:
				case 1857:
				case 1858:
				case 1859:
				case 1860:
				case 1861:
				case 1862:
				case 1863:
				case 1864:
				case 1865:
				case 1866:
				case 1867:
				case 1868:
				case 1869:
				case 1870:
				case 1871:
				case 1872:
				case 1873:
				case 1874:
				case 1875:
				case 1876:
				case 1877:
				case 1878:
				case 1879:
				case 1880:
				case 1881:
				case 1882:
				case 1883:
				case 1884:
				case 1885:
				case 1886:
				case 1887:
				case 1888:
				case 1889:
				case 1890:
				case 1891:
				case 1892:
				case 1893:
				case 1894:
				case 1895:
				case 1896:
				case 1897:
				case 1898:
				case 1899:
				case 1900:
				case 1901:
				case 1902:
				case 1903:
				case 1904:
				case 1905:
				case 1906:
				case 1907:
				case 1908:
				case 1909:
				case 1910:
				case 1911:
				case 1912:
				case 1913:
				case 1914:
				case 1915:
				case 1916:
				case 1917:
				case 1918:
				case 1919:
				case 1920:
				case 1921:
				case 1922:
				case 1923:
				case 1924:
				case 1925:
				case 1926:
				case 1927:
				case 1928:
				case 1929:
				case 1930:
				case 1931:
				case 1932:
				case 1933:
				case 1934:
				case 1935:
				case 1936:
				case 1937:
				case 1939:
				case 1940:
				case 1941:
				case 1942:
				case 1943:
				case 1944:
				case 1945:
				case 1946:
				case 1947:
				case 1948:
				case 1949:
				case 1950:
				case 1951:
				case 1952:
				case 1953:
				case 1954:
				case 1955:
				case 1956:
				case 1957:
				case 1958:
				case 1959:
				case 1960:
				case 1961:
				case 1962:
				case 1963:
				case 1965:
				case 1966:
				case 1967:
				case 1968:
				case 1969:
				case 1970:
				case 1971:
				case 1972:
				case 1973:
				case 1974:
				case 1975:
				case 1976:
				case 1977:
				case 1978:
				case 1979:
				case 1980:
				case 1981:
				case 1982:
				case 1983:
				case 1984:
				case 1985:
				case 1986:
				case 1987:
				case 1988:
				case 1989:
				case 1990:
				case 1991:
				case 1992:
				case 1993:
				case 1994:
				case 1995:
				case 1996:
				case 1997:
				case 1998:
				case 1999:
				case 2000:
				case 2002:
				case 2003:
				case 2004:
				case 2005:
				case 2006:
				case 2007:
				case 2008:
				case 2009:
				case 2010:
				case 2011:
				case 2012:
				case 2013:
				case 2014:
				case 2015:
				case 2016:
				case 2017:
				case 2018:
				case 2019:
				case 2020:
				case 2021:
				case 2022:
				case 2023:
				case 2024:
				case 2026:
				case 2027:
				case 2028:
				case 2029:
				case 2030:
				case 2031:
				case 2032:
				case 2033:
				case 2034:
				case 2035:
				case 2036:
				case 2037:
				case 2038:
				case 2039:
				case 2040:
				case 2041:
				case 2042:
				case 2043:
				case 2044:
				case 2045:
				case 2046:
				case 2047:
				case 2048:
				case 2049:
				case 2050:
				case 2051:
				case 2052:
				case 2053:
				case 2054:
				case 2055:
				case 2056:
				case 2057:
				case 2058:
				case 2059:
				case 2060:
				case 2061:
				case 2062:
				case 2063:
				case 2064:
				case 2065:
				case 2066:
				case 2067:
				case 2068:
				case 2069:
				case 2070:
				case 2071:
				case 2072:
				case 2074:
				case 2075:
				case 2076:
				case 2077:
				case 2078:
				case 2079:
				case 2080:
				case 2081:
				case 2082:
				case 2083:
				case 2084:
				case 2085:
				case 2086:
				case 2087:
				case 2088:
				case 2089:
				case 2090:
				case 2091:
				case 2092:
				case 2093:
				case 2094:
				case 2095:
				case 2096:
				case 2097:
				case 2098:
				case 2100:
				case 2101:
				case 2102:
				case 2103:
				case 2104:
				case 2105:
				case 2106:
				case 2107:
				case 2108:
				case 2109:
				case 2110:
				case 2111:
				case 2112:
				case 2113:
				case 2115:
				case 2116:
				case 2117:
				case 2118:
				case 2119:
				case 2120:
				case 2122:
				case 2123:
				case 2124:
				case 2125:
				case 2126:
				case 2128:
				case 2129:
				case 2130:
				case 2131:
				case 2132:
				case 2133:
				case 2134:
				case 2135:
				case 2136:
				case 2137:
				case 2138:
				case 2139:
				case 2140:
				case 2141:
				case 2142:
				case 2143:
				case 2145:
				case 2146:
				case 2147:
				case 2148:
				case 2149:
				case 2150:
				case 2151:
				case 2152:
				case 2153:
				case 2154:
				case 2155:
				case 2156:
				case 2157:
				case 2158:
				case 2159:
				case 2160:
				case 2161:
				case 2162:
				case 2163:
				case 2164:
				case 2165:
				case 2166:
				case 2168:
				case 2169:
				case 2170:
				case 2171:
				case 2172:
				case 2173:
				case 2174:
				case 2175:
				case 2176:
				case 2177:
				case 2178:
				case 2179:
				case 2180:
				case 2181:
				case 2182:
				case 2183:
				case 2184:
				case 2185:
				case 2186:
				case 2187:
				case 2188:
				case 2189:
				case 2190:
				case 2191:
				case 2192:
				case 2193:
				case 2194:
				case 2195:
				case 2196:
				case 2197:
				case 2198:
				case 2199:
				case 2200:
				case 2201:
				case 2202:
				case 2203:
				case 2204:
				case 2205:
				case 2206:
				case 2207:
				case 2208:
				case 2209:
				case 2210:
				case 2211:
				case 2212:
				case 2216:
				case 2217:
				case 2218:
				case 2219:
				case 2220:
				case 2223:
				case 2224:
				case 2227:
				case 2228:
				case 2233:
				case 2240:
				case 2246:
				case 2252:
					{
					this.state = 10401;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
					if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & 2684352383) !== 0) || ((((_la - 64)) & ~0x1F) === 0 && ((1 << (_la - 64)) & 3220168703) !== 0) || ((((_la - 96)) & ~0x1F) === 0 && ((1 << (_la - 96)) & 4294965247) !== 0) || ((((_la - 128)) & ~0x1F) === 0 && ((1 << (_la - 128)) & 2147221503) !== 0) || ((((_la - 160)) & ~0x1F) === 0 && ((1 << (_la - 160)) & 4293910527) !== 0) || ((((_la - 192)) & ~0x1F) === 0 && ((1 << (_la - 192)) & 4294967295) !== 0) || ((((_la - 224)) & ~0x1F) === 0 && ((1 << (_la - 224)) & 4160749311) !== 0) || ((((_la - 256)) & ~0x1F) === 0 && ((1 << (_la - 256)) & 4294967295) !== 0) || ((((_la - 289)) & ~0x1F) === 0 && ((1 << (_la - 289)) & 2147483647) !== 0) || ((((_la - 321)) & ~0x1F) === 0 && ((1 << (_la - 321)) & 4294967295) !== 0) || ((((_la - 353)) & ~0x1F) === 0 && ((1 << (_la - 353)) & 4294705151) !== 0) || ((((_la - 385)) & ~0x1F) === 0 && ((1 << (_la - 385)) & 2080374527) !== 0) || ((((_la - 417)) & ~0x1F) === 0 && ((1 << (_la - 417)) & 4026433535) !== 0) || ((((_la - 449)) & ~0x1F) === 0 && ((1 << (_la - 449)) & 4261412863) !== 0) || ((((_la - 481)) & ~0x1F) === 0 && ((1 << (_la - 481)) & 4294967295) !== 0) || ((((_la - 513)) & ~0x1F) === 0 && ((1 << (_la - 513)) & 4294967295) !== 0) || ((((_la - 545)) & ~0x1F) === 0 && ((1 << (_la - 545)) & 3925868029) !== 0) || ((((_la - 577)) & ~0x1F) === 0 && ((1 << (_la - 577)) & 4278189823) !== 0) || ((((_la - 609)) & ~0x1F) === 0 && ((1 << (_la - 609)) & 4290772991) !== 0) || ((((_la - 641)) & ~0x1F) === 0 && ((1 << (_la - 641)) & 4026529791) !== 0) || ((((_la - 673)) & ~0x1F) === 0 && ((1 << (_la - 673)) & 4290478079) !== 0) || ((((_la - 705)) & ~0x1F) === 0 && ((1 << (_la - 705)) & 4294967295) !== 0) || ((((_la - 737)) & ~0x1F) === 0 && ((1 << (_la - 737)) & 4293918719) !== 0) || ((((_la - 769)) & ~0x1F) === 0 && ((1 << (_la - 769)) & 4294967167) !== 0) || ((((_la - 801)) & ~0x1F) === 0 && ((1 << (_la - 801)) & 4294967295) !== 0) || ((((_la - 833)) & ~0x1F) === 0 && ((1 << (_la - 833)) & 4160749055) !== 0) || ((((_la - 865)) & ~0x1F) === 0 && ((1 << (_la - 865)) & 4290772991) !== 0) || ((((_la - 897)) & ~0x1F) === 0 && ((1 << (_la - 897)) & 4294967295) !== 0) || ((((_la - 929)) & ~0x1F) === 0 && ((1 << (_la - 929)) & 4278190079) !== 0) || ((((_la - 961)) & ~0x1F) === 0 && ((1 << (_la - 961)) & 4294967295) !== 0) || ((((_la - 993)) & ~0x1F) === 0 && ((1 << (_la - 993)) & 4294967295) !== 0) || ((((_la - 1025)) & ~0x1F) === 0 && ((1 << (_la - 1025)) & 4294967295) !== 0) || ((((_la - 1057)) & ~0x1F) === 0 && ((1 << (_la - 1057)) & 2147418111) !== 0) || ((((_la - 1089)) & ~0x1F) === 0 && ((1 << (_la - 1089)) & 4227858431) !== 0) || ((((_la - 1121)) & ~0x1F) === 0 && ((1 << (_la - 1121)) & 4293918559) !== 0) || ((((_la - 1153)) & ~0x1F) === 0 && ((1 << (_la - 1153)) & 4294410239) !== 0) || ((((_la - 1185)) & ~0x1F) === 0 && ((1 << (_la - 1185)) & 4294965247) !== 0) || ((((_la - 1217)) & ~0x1F) === 0 && ((1 << (_la - 1217)) & 4279827455) !== 0) || ((((_la - 1249)) & ~0x1F) === 0 && ((1 << (_la - 1249)) & 4294967291) !== 0) || ((((_la - 1281)) & ~0x1F) === 0 && ((1 << (_la - 1281)) & 4294967295) !== 0) || ((((_la - 1313)) & ~0x1F) === 0 && ((1 << (_la - 1313)) & 4294965247) !== 0) || ((((_la - 1345)) & ~0x1F) === 0 && ((1 << (_la - 1345)) & 4294967295) !== 0) || ((((_la - 1377)) & ~0x1F) === 0 && ((1 << (_la - 1377)) & 4292870143) !== 0) || ((((_la - 1409)) & ~0x1F) === 0 && ((1 << (_la - 1409)) & 4261412799) !== 0) || ((((_la - 1441)) & ~0x1F) === 0 && ((1 << (_la - 1441)) & 4294967295) !== 0) || ((((_la - 1473)) & ~0x1F) === 0 && ((1 << (_la - 1473)) & 4261281791) !== 0) || ((((_la - 1505)) & ~0x1F) === 0 && ((1 << (_la - 1505)) & 3221221375) !== 0) || ((((_la - 1537)) & ~0x1F) === 0 && ((1 << (_la - 1537)) & 4294967295) !== 0) || ((((_la - 1570)) & ~0x1F) === 0 && ((1 << (_la - 1570)) & 4294967295) !== 0) || ((((_la - 1602)) & ~0x1F) === 0 && ((1 << (_la - 1602)) & 4261412863) !== 0) || ((((_la - 1634)) & ~0x1F) === 0 && ((1 << (_la - 1634)) & 4294967295) !== 0) || ((((_la - 1666)) & ~0x1F) === 0 && ((1 << (_la - 1666)) & 4294967295) !== 0) || ((((_la - 1698)) & ~0x1F) === 0 && ((1 << (_la - 1698)) & 4294967295) !== 0) || ((((_la - 1730)) & ~0x1F) === 0 && ((1 << (_la - 1730)) & 4294967295) !== 0) || ((((_la - 1762)) & ~0x1F) === 0 && ((1 << (_la - 1762)) & 4294967295) !== 0) || ((((_la - 1794)) & ~0x1F) === 0 && ((1 << (_la - 1794)) & 4294967295) !== 0) || ((((_la - 1826)) & ~0x1F) === 0 && ((1 << (_la - 1826)) & 4294967295) !== 0) || ((((_la - 1858)) & ~0x1F) === 0 && ((1 << (_la - 1858)) & 4294967295) !== 0) || ((((_la - 1890)) & ~0x1F) === 0 && ((1 << (_la - 1890)) & 4294967295) !== 0) || ((((_la - 1922)) & ~0x1F) === 0 && ((1 << (_la - 1922)) & 4294901759) !== 0) || ((((_la - 1954)) & ~0x1F) === 0 && ((1 << (_la - 1954)) & 4294966271) !== 0) || ((((_la - 1986)) & ~0x1F) === 0 && ((1 << (_la - 1986)) & 4294934527) !== 0) || ((((_la - 2018)) & ~0x1F) === 0 && ((1 << (_la - 2018)) & 4294967167) !== 0) || ((((_la - 2050)) & ~0x1F) === 0 && ((1 << (_la - 2050)) & 4286578687) !== 0) || ((((_la - 2082)) & ~0x1F) === 0 && ((1 << (_la - 2082)) & 4294836223) !== 0) || ((((_la - 2115)) & ~0x1F) === 0 && ((1 << (_la - 2115)) & 3758092223) !== 0) || ((((_la - 2147)) & ~0x1F) === 0 && ((1 << (_la - 2147)) & 4293918719) !== 0) || ((((_la - 2179)) & ~0x1F) === 0 && ((1 << (_la - 2179)) & 4294967295) !== 0) || ((((_la - 2211)) & ~0x1F) === 0 && ((1 << (_la - 2211)) & 541266915) !== 0) || _la===2246 || _la===2252) {
						{
						this.state = 10398;
						this._errHandler.sync(this);
						switch ( this._interp.adaptivePredict(this._input, 1410, this._ctx) ) {
						case 1:
							{
							this.state = 10397;
							_la = this._input.LA(1);
							if(!(_la===35 || _la===396 || _la===2002)) {
							this._errHandler.recoverInline(this);
							}
							else {
								this._errHandler.reportMatch(this);
							    this.consume();
							}
							}
							break;
						}
						this.state = 10400;
						this.concatenation(0);
						}
					}

					}
					break;
				default:
					throw new NoViableAltException(this);
				}
				this.state = 10405;
				this.match(PlSqlParser.RIGHT_PAREN);
				this.state = 10407;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 1413, this._ctx) ) {
				case 1:
					{
					this.state = 10406;
					this.over_clause();
					}
					break;
				}
				}
				break;
			case 2200:
				this.enterOuterAlt(localctx, 3);
				{
				this.state = 10409;
				this.match(PlSqlParser.ROUND);
				this.state = 10410;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 10411;
				this.expression();
				this.state = 10414;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===2229) {
					{
					this.state = 10412;
					this.match(PlSqlParser.COMMA);
					this.state = 10413;
					this.match(PlSqlParser.UNSIGNED_INTEGER);
					}
				}

				this.state = 10416;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
				break;
			case 2187:
				this.enterOuterAlt(localctx, 4);
				{
				this.state = 10418;
				this.match(PlSqlParser.AVG);
				this.state = 10419;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 10421;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 1415, this._ctx) ) {
				case 1:
					{
					this.state = 10420;
					_la = this._input.LA(1);
					if(!(_la===35 || _la===396)) {
					this._errHandler.recoverInline(this);
					}
					else {
						this._errHandler.reportMatch(this);
					    this.consume();
					}
					}
					break;
				}
				this.state = 10423;
				this.expression();
				this.state = 10424;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
				break;
			case 2193:
				this.enterOuterAlt(localctx, 5);
				{
				this.state = 10426;
				this.match(PlSqlParser.MAX);
				this.state = 10427;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 10429;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 1416, this._ctx) ) {
				case 1:
					{
					this.state = 10428;
					_la = this._input.LA(1);
					if(!(_la===35 || _la===396)) {
					this._errHandler.recoverInline(this);
					}
					else {
						this._errHandler.reportMatch(this);
					    this.consume();
					}
					}
					break;
				}
				this.state = 10431;
				this.expression();
				this.state = 10432;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
				break;
			case 2209:
				this.enterOuterAlt(localctx, 6);
				{
				this.state = 10434;
				this.match(PlSqlParser.LEAST);
				this.state = 10435;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 10436;
				this.expressions();
				this.state = 10437;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
				break;
			case 2210:
				this.enterOuterAlt(localctx, 7);
				{
				this.state = 10439;
				this.match(PlSqlParser.GREATEST);
				this.state = 10440;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 10441;
				this.expressions();
				this.state = 10442;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public other_function(): Other_functionContext {
		let localctx: Other_functionContext = new Other_functionContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1296, PlSqlParser.RULE_other_function);
		let _la: number;
		try {
			let _alt: number;
			this.state = 10741;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1467, this._ctx) ) {
			case 1:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 10446;
				this.over_clause_keyword();
				this.state = 10447;
				this.function_argument_analytic();
				this.state = 10449;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 1418, this._ctx) ) {
				case 1:
					{
					this.state = 10448;
					this.over_clause();
					}
					break;
				}
				}
				break;
			case 2:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 10451;
				this.regular_id();
				this.state = 10452;
				this.function_argument_modeling();
				this.state = 10454;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 1419, this._ctx) ) {
				case 1:
					{
					this.state = 10453;
					this.using_clause();
					}
					break;
				}
				}
				break;
			case 3:
				this.enterOuterAlt(localctx, 3);
				{
				this.state = 10456;
				this.match(PlSqlParser.COUNT);
				this.state = 10457;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 10463;
				this._errHandler.sync(this);
				switch (this._input.LA(1)) {
				case 2226:
					{
					this.state = 10458;
					this.match(PlSqlParser.ASTERISK);
					}
					break;
				case 1:
				case 2:
				case 3:
				case 4:
				case 5:
				case 6:
				case 7:
				case 8:
				case 9:
				case 10:
				case 11:
				case 12:
				case 13:
				case 14:
				case 15:
				case 16:
				case 17:
				case 18:
				case 19:
				case 20:
				case 21:
				case 22:
				case 23:
				case 24:
				case 25:
				case 26:
				case 27:
				case 28:
				case 29:
				case 30:
				case 31:
				case 32:
				case 33:
				case 34:
				case 35:
				case 36:
				case 37:
				case 38:
				case 40:
				case 41:
				case 42:
				case 44:
				case 45:
				case 46:
				case 47:
				case 48:
				case 49:
				case 50:
				case 51:
				case 52:
				case 53:
				case 54:
				case 55:
				case 56:
				case 57:
				case 58:
				case 59:
				case 60:
				case 63:
				case 64:
				case 65:
				case 66:
				case 67:
				case 68:
				case 69:
				case 70:
				case 71:
				case 72:
				case 73:
				case 74:
				case 75:
				case 76:
				case 78:
				case 79:
				case 80:
				case 81:
				case 82:
				case 83:
				case 85:
				case 86:
				case 87:
				case 88:
				case 89:
				case 90:
				case 91:
				case 92:
				case 93:
				case 95:
				case 96:
				case 97:
				case 98:
				case 99:
				case 100:
				case 101:
				case 102:
				case 103:
				case 104:
				case 105:
				case 106:
				case 108:
				case 109:
				case 110:
				case 111:
				case 112:
				case 113:
				case 114:
				case 115:
				case 116:
				case 117:
				case 118:
				case 119:
				case 120:
				case 121:
				case 122:
				case 123:
				case 124:
				case 125:
				case 126:
				case 127:
				case 128:
				case 129:
				case 130:
				case 131:
				case 132:
				case 133:
				case 134:
				case 135:
				case 136:
				case 137:
				case 138:
				case 139:
				case 140:
				case 141:
				case 142:
				case 143:
				case 144:
				case 145:
				case 147:
				case 148:
				case 149:
				case 150:
				case 151:
				case 152:
				case 153:
				case 154:
				case 155:
				case 156:
				case 157:
				case 158:
				case 160:
				case 161:
				case 162:
				case 163:
				case 164:
				case 165:
				case 166:
				case 167:
				case 168:
				case 169:
				case 170:
				case 171:
				case 172:
				case 174:
				case 175:
				case 176:
				case 177:
				case 178:
				case 179:
				case 181:
				case 182:
				case 183:
				case 184:
				case 185:
				case 186:
				case 187:
				case 188:
				case 189:
				case 190:
				case 191:
				case 192:
				case 193:
				case 194:
				case 195:
				case 196:
				case 197:
				case 198:
				case 199:
				case 200:
				case 201:
				case 202:
				case 203:
				case 204:
				case 205:
				case 206:
				case 207:
				case 208:
				case 209:
				case 210:
				case 211:
				case 212:
				case 213:
				case 214:
				case 215:
				case 216:
				case 217:
				case 218:
				case 219:
				case 220:
				case 221:
				case 222:
				case 223:
				case 224:
				case 225:
				case 226:
				case 227:
				case 228:
				case 229:
				case 230:
				case 231:
				case 233:
				case 234:
				case 235:
				case 236:
				case 237:
				case 238:
				case 239:
				case 240:
				case 241:
				case 242:
				case 243:
				case 244:
				case 245:
				case 246:
				case 247:
				case 248:
				case 249:
				case 250:
				case 252:
				case 253:
				case 254:
				case 255:
				case 256:
				case 257:
				case 258:
				case 259:
				case 260:
				case 261:
				case 262:
				case 263:
				case 264:
				case 265:
				case 266:
				case 267:
				case 268:
				case 269:
				case 270:
				case 271:
				case 272:
				case 273:
				case 274:
				case 275:
				case 276:
				case 277:
				case 278:
				case 279:
				case 280:
				case 281:
				case 282:
				case 283:
				case 284:
				case 285:
				case 286:
				case 287:
				case 289:
				case 290:
				case 291:
				case 292:
				case 293:
				case 294:
				case 295:
				case 296:
				case 297:
				case 298:
				case 299:
				case 300:
				case 301:
				case 302:
				case 303:
				case 304:
				case 305:
				case 306:
				case 307:
				case 308:
				case 309:
				case 310:
				case 311:
				case 312:
				case 313:
				case 314:
				case 315:
				case 316:
				case 317:
				case 318:
				case 319:
				case 321:
				case 322:
				case 323:
				case 324:
				case 325:
				case 326:
				case 327:
				case 328:
				case 329:
				case 330:
				case 331:
				case 332:
				case 333:
				case 334:
				case 335:
				case 336:
				case 337:
				case 338:
				case 339:
				case 340:
				case 341:
				case 342:
				case 343:
				case 344:
				case 345:
				case 346:
				case 347:
				case 348:
				case 349:
				case 350:
				case 351:
				case 352:
				case 353:
				case 354:
				case 355:
				case 356:
				case 357:
				case 358:
				case 359:
				case 360:
				case 361:
				case 362:
				case 363:
				case 364:
				case 365:
				case 366:
				case 367:
				case 368:
				case 369:
				case 370:
				case 372:
				case 373:
				case 374:
				case 375:
				case 376:
				case 377:
				case 378:
				case 379:
				case 380:
				case 381:
				case 382:
				case 383:
				case 384:
				case 385:
				case 386:
				case 387:
				case 388:
				case 389:
				case 390:
				case 391:
				case 392:
				case 394:
				case 395:
				case 396:
				case 397:
				case 398:
				case 399:
				case 400:
				case 401:
				case 402:
				case 403:
				case 404:
				case 405:
				case 406:
				case 407:
				case 408:
				case 409:
				case 410:
				case 412:
				case 413:
				case 414:
				case 415:
				case 417:
				case 418:
				case 419:
				case 420:
				case 421:
				case 422:
				case 423:
				case 424:
				case 425:
				case 426:
				case 427:
				case 428:
				case 429:
				case 430:
				case 431:
				case 434:
				case 435:
				case 436:
				case 437:
				case 438:
				case 439:
				case 440:
				case 441:
				case 442:
				case 443:
				case 444:
				case 446:
				case 447:
				case 448:
				case 449:
				case 450:
				case 451:
				case 452:
				case 453:
				case 454:
				case 455:
				case 456:
				case 457:
				case 458:
				case 459:
				case 460:
				case 461:
				case 462:
				case 463:
				case 464:
				case 465:
				case 466:
				case 467:
				case 468:
				case 469:
				case 470:
				case 471:
				case 472:
				case 473:
				case 475:
				case 476:
				case 477:
				case 478:
				case 479:
				case 480:
				case 481:
				case 482:
				case 483:
				case 484:
				case 485:
				case 486:
				case 487:
				case 488:
				case 489:
				case 490:
				case 491:
				case 492:
				case 493:
				case 494:
				case 495:
				case 496:
				case 497:
				case 498:
				case 499:
				case 500:
				case 501:
				case 502:
				case 503:
				case 504:
				case 505:
				case 506:
				case 507:
				case 508:
				case 509:
				case 510:
				case 511:
				case 512:
				case 513:
				case 514:
				case 515:
				case 516:
				case 517:
				case 518:
				case 519:
				case 520:
				case 521:
				case 522:
				case 523:
				case 524:
				case 525:
				case 526:
				case 527:
				case 528:
				case 529:
				case 530:
				case 531:
				case 532:
				case 533:
				case 534:
				case 535:
				case 536:
				case 537:
				case 538:
				case 539:
				case 540:
				case 541:
				case 542:
				case 543:
				case 544:
				case 545:
				case 547:
				case 548:
				case 549:
				case 550:
				case 551:
				case 552:
				case 553:
				case 555:
				case 556:
				case 557:
				case 558:
				case 559:
				case 560:
				case 561:
				case 562:
				case 563:
				case 564:
				case 565:
				case 566:
				case 567:
				case 568:
				case 569:
				case 572:
				case 574:
				case 575:
				case 576:
				case 577:
				case 578:
				case 579:
				case 580:
				case 581:
				case 582:
				case 583:
				case 584:
				case 586:
				case 587:
				case 588:
				case 589:
				case 590:
				case 591:
				case 592:
				case 593:
				case 594:
				case 595:
				case 596:
				case 597:
				case 598:
				case 599:
				case 600:
				case 602:
				case 603:
				case 604:
				case 605:
				case 606:
				case 607:
				case 608:
				case 609:
				case 610:
				case 611:
				case 612:
				case 613:
				case 614:
				case 615:
				case 616:
				case 617:
				case 618:
				case 619:
				case 620:
				case 621:
				case 622:
				case 623:
				case 624:
				case 625:
				case 626:
				case 627:
				case 628:
				case 629:
				case 630:
				case 632:
				case 633:
				case 634:
				case 635:
				case 636:
				case 637:
				case 638:
				case 639:
				case 640:
				case 641:
				case 642:
				case 643:
				case 644:
				case 645:
				case 646:
				case 647:
				case 648:
				case 649:
				case 650:
				case 651:
				case 653:
				case 654:
				case 655:
				case 656:
				case 657:
				case 658:
				case 659:
				case 660:
				case 661:
				case 662:
				case 663:
				case 664:
				case 665:
				case 666:
				case 667:
				case 668:
				case 670:
				case 671:
				case 672:
				case 673:
				case 674:
				case 675:
				case 676:
				case 677:
				case 678:
				case 679:
				case 680:
				case 681:
				case 682:
				case 683:
				case 684:
				case 685:
				case 686:
				case 687:
				case 689:
				case 690:
				case 692:
				case 693:
				case 694:
				case 696:
				case 697:
				case 698:
				case 699:
				case 700:
				case 701:
				case 702:
				case 703:
				case 704:
				case 705:
				case 706:
				case 707:
				case 708:
				case 709:
				case 710:
				case 711:
				case 712:
				case 713:
				case 714:
				case 715:
				case 716:
				case 717:
				case 718:
				case 719:
				case 720:
				case 721:
				case 722:
				case 723:
				case 724:
				case 725:
				case 726:
				case 727:
				case 728:
				case 729:
				case 730:
				case 731:
				case 732:
				case 733:
				case 734:
				case 735:
				case 736:
				case 737:
				case 738:
				case 739:
				case 740:
				case 741:
				case 742:
				case 743:
				case 744:
				case 745:
				case 746:
				case 747:
				case 748:
				case 749:
				case 750:
				case 751:
				case 752:
				case 753:
				case 754:
				case 755:
				case 756:
				case 758:
				case 759:
				case 760:
				case 761:
				case 762:
				case 763:
				case 764:
				case 765:
				case 766:
				case 767:
				case 768:
				case 769:
				case 770:
				case 771:
				case 772:
				case 773:
				case 774:
				case 775:
				case 777:
				case 778:
				case 779:
				case 780:
				case 781:
				case 782:
				case 783:
				case 784:
				case 785:
				case 786:
				case 787:
				case 788:
				case 789:
				case 790:
				case 791:
				case 792:
				case 793:
				case 794:
				case 795:
				case 796:
				case 797:
				case 798:
				case 799:
				case 800:
				case 801:
				case 802:
				case 803:
				case 804:
				case 805:
				case 806:
				case 807:
				case 808:
				case 809:
				case 810:
				case 811:
				case 812:
				case 813:
				case 814:
				case 815:
				case 816:
				case 817:
				case 818:
				case 819:
				case 820:
				case 821:
				case 822:
				case 823:
				case 824:
				case 825:
				case 826:
				case 827:
				case 828:
				case 829:
				case 830:
				case 831:
				case 832:
				case 833:
				case 834:
				case 835:
				case 836:
				case 837:
				case 838:
				case 839:
				case 840:
				case 841:
				case 843:
				case 844:
				case 845:
				case 846:
				case 847:
				case 848:
				case 849:
				case 850:
				case 851:
				case 852:
				case 853:
				case 854:
				case 855:
				case 856:
				case 857:
				case 858:
				case 859:
				case 861:
				case 862:
				case 863:
				case 864:
				case 865:
				case 866:
				case 867:
				case 868:
				case 869:
				case 870:
				case 871:
				case 872:
				case 873:
				case 874:
				case 875:
				case 876:
				case 877:
				case 878:
				case 879:
				case 880:
				case 881:
				case 882:
				case 883:
				case 884:
				case 885:
				case 886:
				case 888:
				case 889:
				case 890:
				case 891:
				case 892:
				case 893:
				case 894:
				case 895:
				case 896:
				case 897:
				case 898:
				case 899:
				case 900:
				case 901:
				case 902:
				case 903:
				case 904:
				case 905:
				case 906:
				case 907:
				case 908:
				case 909:
				case 910:
				case 911:
				case 912:
				case 913:
				case 914:
				case 915:
				case 916:
				case 917:
				case 918:
				case 919:
				case 920:
				case 921:
				case 922:
				case 923:
				case 924:
				case 925:
				case 926:
				case 927:
				case 928:
				case 929:
				case 930:
				case 931:
				case 932:
				case 933:
				case 934:
				case 935:
				case 936:
				case 937:
				case 938:
				case 939:
				case 940:
				case 941:
				case 942:
				case 943:
				case 944:
				case 945:
				case 946:
				case 947:
				case 948:
				case 949:
				case 950:
				case 951:
				case 952:
				case 954:
				case 955:
				case 956:
				case 957:
				case 958:
				case 959:
				case 960:
				case 961:
				case 962:
				case 963:
				case 964:
				case 965:
				case 966:
				case 967:
				case 968:
				case 969:
				case 970:
				case 971:
				case 972:
				case 973:
				case 974:
				case 975:
				case 976:
				case 977:
				case 978:
				case 979:
				case 980:
				case 981:
				case 982:
				case 983:
				case 984:
				case 985:
				case 986:
				case 987:
				case 988:
				case 989:
				case 990:
				case 991:
				case 992:
				case 993:
				case 994:
				case 995:
				case 996:
				case 997:
				case 998:
				case 999:
				case 1000:
				case 1001:
				case 1002:
				case 1003:
				case 1004:
				case 1005:
				case 1006:
				case 1007:
				case 1008:
				case 1009:
				case 1010:
				case 1011:
				case 1012:
				case 1013:
				case 1014:
				case 1015:
				case 1016:
				case 1017:
				case 1018:
				case 1019:
				case 1020:
				case 1021:
				case 1022:
				case 1023:
				case 1024:
				case 1025:
				case 1026:
				case 1027:
				case 1028:
				case 1029:
				case 1030:
				case 1031:
				case 1032:
				case 1033:
				case 1034:
				case 1035:
				case 1036:
				case 1037:
				case 1038:
				case 1039:
				case 1040:
				case 1041:
				case 1042:
				case 1043:
				case 1044:
				case 1045:
				case 1046:
				case 1047:
				case 1048:
				case 1049:
				case 1050:
				case 1051:
				case 1052:
				case 1053:
				case 1054:
				case 1055:
				case 1056:
				case 1057:
				case 1058:
				case 1059:
				case 1060:
				case 1061:
				case 1062:
				case 1063:
				case 1064:
				case 1065:
				case 1066:
				case 1067:
				case 1068:
				case 1069:
				case 1070:
				case 1071:
				case 1072:
				case 1074:
				case 1075:
				case 1076:
				case 1077:
				case 1078:
				case 1079:
				case 1080:
				case 1081:
				case 1082:
				case 1083:
				case 1084:
				case 1085:
				case 1086:
				case 1087:
				case 1089:
				case 1090:
				case 1091:
				case 1092:
				case 1093:
				case 1094:
				case 1095:
				case 1096:
				case 1097:
				case 1098:
				case 1099:
				case 1100:
				case 1101:
				case 1102:
				case 1103:
				case 1104:
				case 1105:
				case 1106:
				case 1107:
				case 1108:
				case 1109:
				case 1110:
				case 1111:
				case 1112:
				case 1113:
				case 1114:
				case 1116:
				case 1117:
				case 1118:
				case 1119:
				case 1120:
				case 1121:
				case 1122:
				case 1123:
				case 1124:
				case 1125:
				case 1127:
				case 1129:
				case 1130:
				case 1131:
				case 1132:
				case 1133:
				case 1134:
				case 1135:
				case 1136:
				case 1137:
				case 1138:
				case 1139:
				case 1140:
				case 1142:
				case 1143:
				case 1144:
				case 1145:
				case 1146:
				case 1147:
				case 1148:
				case 1149:
				case 1150:
				case 1151:
				case 1152:
				case 1153:
				case 1154:
				case 1155:
				case 1156:
				case 1157:
				case 1158:
				case 1159:
				case 1160:
				case 1161:
				case 1162:
				case 1163:
				case 1164:
				case 1165:
				case 1166:
				case 1167:
				case 1169:
				case 1170:
				case 1171:
				case 1173:
				case 1174:
				case 1175:
				case 1176:
				case 1177:
				case 1178:
				case 1179:
				case 1180:
				case 1181:
				case 1182:
				case 1183:
				case 1184:
				case 1185:
				case 1186:
				case 1187:
				case 1188:
				case 1189:
				case 1190:
				case 1191:
				case 1192:
				case 1193:
				case 1194:
				case 1195:
				case 1197:
				case 1198:
				case 1199:
				case 1200:
				case 1201:
				case 1202:
				case 1203:
				case 1204:
				case 1205:
				case 1206:
				case 1207:
				case 1208:
				case 1209:
				case 1210:
				case 1211:
				case 1212:
				case 1213:
				case 1214:
				case 1215:
				case 1216:
				case 1217:
				case 1218:
				case 1219:
				case 1220:
				case 1221:
				case 1222:
				case 1223:
				case 1224:
				case 1225:
				case 1226:
				case 1228:
				case 1229:
				case 1230:
				case 1231:
				case 1232:
				case 1236:
				case 1237:
				case 1241:
				case 1242:
				case 1243:
				case 1244:
				case 1245:
				case 1246:
				case 1247:
				case 1248:
				case 1249:
				case 1250:
				case 1252:
				case 1253:
				case 1254:
				case 1255:
				case 1256:
				case 1257:
				case 1258:
				case 1259:
				case 1260:
				case 1261:
				case 1262:
				case 1263:
				case 1264:
				case 1265:
				case 1266:
				case 1267:
				case 1268:
				case 1269:
				case 1270:
				case 1271:
				case 1272:
				case 1273:
				case 1274:
				case 1275:
				case 1276:
				case 1277:
				case 1278:
				case 1279:
				case 1280:
				case 1281:
				case 1282:
				case 1283:
				case 1284:
				case 1285:
				case 1286:
				case 1287:
				case 1288:
				case 1289:
				case 1290:
				case 1291:
				case 1292:
				case 1293:
				case 1294:
				case 1295:
				case 1296:
				case 1297:
				case 1298:
				case 1299:
				case 1300:
				case 1301:
				case 1302:
				case 1303:
				case 1304:
				case 1305:
				case 1306:
				case 1307:
				case 1308:
				case 1309:
				case 1310:
				case 1311:
				case 1312:
				case 1313:
				case 1314:
				case 1315:
				case 1316:
				case 1317:
				case 1318:
				case 1319:
				case 1320:
				case 1321:
				case 1322:
				case 1323:
				case 1325:
				case 1326:
				case 1327:
				case 1328:
				case 1329:
				case 1330:
				case 1331:
				case 1332:
				case 1333:
				case 1334:
				case 1335:
				case 1336:
				case 1337:
				case 1338:
				case 1339:
				case 1340:
				case 1341:
				case 1342:
				case 1343:
				case 1344:
				case 1345:
				case 1346:
				case 1347:
				case 1348:
				case 1349:
				case 1350:
				case 1351:
				case 1352:
				case 1353:
				case 1354:
				case 1355:
				case 1356:
				case 1357:
				case 1358:
				case 1359:
				case 1360:
				case 1361:
				case 1362:
				case 1363:
				case 1364:
				case 1365:
				case 1366:
				case 1367:
				case 1368:
				case 1369:
				case 1370:
				case 1371:
				case 1372:
				case 1373:
				case 1374:
				case 1375:
				case 1376:
				case 1377:
				case 1378:
				case 1379:
				case 1380:
				case 1381:
				case 1382:
				case 1383:
				case 1384:
				case 1385:
				case 1386:
				case 1387:
				case 1388:
				case 1389:
				case 1390:
				case 1391:
				case 1392:
				case 1393:
				case 1394:
				case 1395:
				case 1396:
				case 1397:
				case 1399:
				case 1400:
				case 1401:
				case 1402:
				case 1403:
				case 1404:
				case 1405:
				case 1406:
				case 1407:
				case 1408:
				case 1409:
				case 1410:
				case 1411:
				case 1412:
				case 1413:
				case 1414:
				case 1416:
				case 1417:
				case 1418:
				case 1419:
				case 1420:
				case 1421:
				case 1422:
				case 1423:
				case 1424:
				case 1425:
				case 1426:
				case 1427:
				case 1428:
				case 1429:
				case 1430:
				case 1431:
				case 1432:
				case 1433:
				case 1435:
				case 1436:
				case 1437:
				case 1438:
				case 1439:
				case 1440:
				case 1441:
				case 1442:
				case 1443:
				case 1444:
				case 1445:
				case 1446:
				case 1447:
				case 1448:
				case 1449:
				case 1450:
				case 1451:
				case 1452:
				case 1453:
				case 1454:
				case 1455:
				case 1456:
				case 1457:
				case 1458:
				case 1459:
				case 1460:
				case 1461:
				case 1462:
				case 1463:
				case 1464:
				case 1465:
				case 1466:
				case 1467:
				case 1468:
				case 1469:
				case 1470:
				case 1471:
				case 1472:
				case 1473:
				case 1474:
				case 1475:
				case 1476:
				case 1477:
				case 1478:
				case 1479:
				case 1480:
				case 1481:
				case 1482:
				case 1483:
				case 1484:
				case 1485:
				case 1486:
				case 1487:
				case 1488:
				case 1489:
				case 1491:
				case 1492:
				case 1493:
				case 1494:
				case 1495:
				case 1496:
				case 1497:
				case 1499:
				case 1500:
				case 1501:
				case 1502:
				case 1503:
				case 1504:
				case 1505:
				case 1506:
				case 1507:
				case 1508:
				case 1509:
				case 1510:
				case 1511:
				case 1512:
				case 1513:
				case 1514:
				case 1515:
				case 1516:
				case 1518:
				case 1519:
				case 1520:
				case 1521:
				case 1522:
				case 1523:
				case 1524:
				case 1525:
				case 1526:
				case 1527:
				case 1528:
				case 1529:
				case 1530:
				case 1531:
				case 1532:
				case 1533:
				case 1534:
				case 1536:
				case 1537:
				case 1538:
				case 1539:
				case 1540:
				case 1541:
				case 1542:
				case 1543:
				case 1544:
				case 1545:
				case 1546:
				case 1547:
				case 1548:
				case 1549:
				case 1550:
				case 1551:
				case 1552:
				case 1553:
				case 1554:
				case 1555:
				case 1556:
				case 1557:
				case 1558:
				case 1559:
				case 1560:
				case 1561:
				case 1562:
				case 1563:
				case 1564:
				case 1565:
				case 1566:
				case 1567:
				case 1568:
				case 1570:
				case 1571:
				case 1572:
				case 1573:
				case 1574:
				case 1575:
				case 1576:
				case 1577:
				case 1578:
				case 1579:
				case 1580:
				case 1581:
				case 1582:
				case 1583:
				case 1584:
				case 1585:
				case 1586:
				case 1587:
				case 1588:
				case 1589:
				case 1590:
				case 1591:
				case 1592:
				case 1593:
				case 1594:
				case 1595:
				case 1596:
				case 1597:
				case 1598:
				case 1599:
				case 1600:
				case 1601:
				case 1602:
				case 1603:
				case 1604:
				case 1605:
				case 1606:
				case 1607:
				case 1608:
				case 1609:
				case 1610:
				case 1611:
				case 1612:
				case 1613:
				case 1614:
				case 1615:
				case 1616:
				case 1617:
				case 1618:
				case 1619:
				case 1620:
				case 1621:
				case 1622:
				case 1623:
				case 1624:
				case 1625:
				case 1626:
				case 1628:
				case 1629:
				case 1630:
				case 1631:
				case 1632:
				case 1633:
				case 1634:
				case 1635:
				case 1636:
				case 1637:
				case 1638:
				case 1639:
				case 1640:
				case 1641:
				case 1642:
				case 1643:
				case 1644:
				case 1645:
				case 1646:
				case 1647:
				case 1648:
				case 1649:
				case 1650:
				case 1651:
				case 1652:
				case 1653:
				case 1654:
				case 1655:
				case 1656:
				case 1657:
				case 1658:
				case 1659:
				case 1660:
				case 1661:
				case 1662:
				case 1663:
				case 1664:
				case 1665:
				case 1666:
				case 1667:
				case 1668:
				case 1669:
				case 1670:
				case 1671:
				case 1672:
				case 1673:
				case 1674:
				case 1675:
				case 1676:
				case 1677:
				case 1678:
				case 1679:
				case 1680:
				case 1681:
				case 1682:
				case 1683:
				case 1684:
				case 1685:
				case 1686:
				case 1687:
				case 1688:
				case 1689:
				case 1690:
				case 1691:
				case 1692:
				case 1693:
				case 1694:
				case 1695:
				case 1696:
				case 1697:
				case 1698:
				case 1699:
				case 1700:
				case 1701:
				case 1702:
				case 1703:
				case 1704:
				case 1705:
				case 1706:
				case 1707:
				case 1708:
				case 1709:
				case 1710:
				case 1711:
				case 1712:
				case 1713:
				case 1714:
				case 1715:
				case 1716:
				case 1717:
				case 1718:
				case 1719:
				case 1720:
				case 1721:
				case 1722:
				case 1723:
				case 1724:
				case 1725:
				case 1726:
				case 1727:
				case 1728:
				case 1729:
				case 1730:
				case 1731:
				case 1732:
				case 1733:
				case 1734:
				case 1735:
				case 1736:
				case 1737:
				case 1738:
				case 1739:
				case 1740:
				case 1741:
				case 1742:
				case 1743:
				case 1744:
				case 1745:
				case 1746:
				case 1747:
				case 1748:
				case 1749:
				case 1750:
				case 1751:
				case 1752:
				case 1753:
				case 1754:
				case 1755:
				case 1756:
				case 1757:
				case 1758:
				case 1759:
				case 1760:
				case 1761:
				case 1762:
				case 1763:
				case 1764:
				case 1765:
				case 1766:
				case 1767:
				case 1768:
				case 1769:
				case 1770:
				case 1771:
				case 1772:
				case 1773:
				case 1774:
				case 1775:
				case 1776:
				case 1777:
				case 1778:
				case 1779:
				case 1780:
				case 1781:
				case 1782:
				case 1783:
				case 1784:
				case 1785:
				case 1786:
				case 1787:
				case 1788:
				case 1789:
				case 1790:
				case 1791:
				case 1792:
				case 1793:
				case 1794:
				case 1795:
				case 1796:
				case 1797:
				case 1798:
				case 1799:
				case 1800:
				case 1801:
				case 1802:
				case 1803:
				case 1804:
				case 1805:
				case 1806:
				case 1807:
				case 1808:
				case 1809:
				case 1810:
				case 1811:
				case 1812:
				case 1813:
				case 1814:
				case 1815:
				case 1816:
				case 1817:
				case 1818:
				case 1819:
				case 1820:
				case 1821:
				case 1822:
				case 1823:
				case 1824:
				case 1825:
				case 1826:
				case 1827:
				case 1828:
				case 1829:
				case 1830:
				case 1831:
				case 1832:
				case 1833:
				case 1834:
				case 1835:
				case 1836:
				case 1837:
				case 1838:
				case 1839:
				case 1840:
				case 1841:
				case 1842:
				case 1843:
				case 1844:
				case 1845:
				case 1846:
				case 1847:
				case 1848:
				case 1849:
				case 1850:
				case 1851:
				case 1852:
				case 1853:
				case 1854:
				case 1855:
				case 1856:
				case 1857:
				case 1858:
				case 1859:
				case 1860:
				case 1861:
				case 1862:
				case 1863:
				case 1864:
				case 1865:
				case 1866:
				case 1867:
				case 1868:
				case 1869:
				case 1870:
				case 1871:
				case 1872:
				case 1873:
				case 1874:
				case 1875:
				case 1876:
				case 1877:
				case 1878:
				case 1879:
				case 1880:
				case 1881:
				case 1882:
				case 1883:
				case 1884:
				case 1885:
				case 1886:
				case 1887:
				case 1888:
				case 1889:
				case 1890:
				case 1891:
				case 1892:
				case 1893:
				case 1894:
				case 1895:
				case 1896:
				case 1897:
				case 1898:
				case 1899:
				case 1900:
				case 1901:
				case 1902:
				case 1903:
				case 1904:
				case 1905:
				case 1906:
				case 1907:
				case 1908:
				case 1909:
				case 1910:
				case 1911:
				case 1912:
				case 1913:
				case 1914:
				case 1915:
				case 1916:
				case 1917:
				case 1918:
				case 1919:
				case 1920:
				case 1921:
				case 1922:
				case 1923:
				case 1924:
				case 1925:
				case 1926:
				case 1927:
				case 1928:
				case 1929:
				case 1930:
				case 1931:
				case 1932:
				case 1933:
				case 1934:
				case 1935:
				case 1936:
				case 1937:
				case 1939:
				case 1940:
				case 1941:
				case 1942:
				case 1943:
				case 1944:
				case 1945:
				case 1946:
				case 1947:
				case 1948:
				case 1949:
				case 1950:
				case 1951:
				case 1952:
				case 1953:
				case 1954:
				case 1955:
				case 1956:
				case 1957:
				case 1958:
				case 1959:
				case 1960:
				case 1961:
				case 1962:
				case 1963:
				case 1965:
				case 1966:
				case 1967:
				case 1968:
				case 1969:
				case 1970:
				case 1971:
				case 1972:
				case 1973:
				case 1974:
				case 1975:
				case 1976:
				case 1977:
				case 1978:
				case 1979:
				case 1980:
				case 1981:
				case 1982:
				case 1983:
				case 1984:
				case 1985:
				case 1986:
				case 1987:
				case 1988:
				case 1989:
				case 1990:
				case 1991:
				case 1992:
				case 1993:
				case 1994:
				case 1995:
				case 1996:
				case 1997:
				case 1998:
				case 1999:
				case 2000:
				case 2002:
				case 2003:
				case 2004:
				case 2005:
				case 2006:
				case 2007:
				case 2008:
				case 2009:
				case 2010:
				case 2011:
				case 2012:
				case 2013:
				case 2014:
				case 2015:
				case 2016:
				case 2017:
				case 2018:
				case 2019:
				case 2020:
				case 2021:
				case 2022:
				case 2023:
				case 2024:
				case 2026:
				case 2027:
				case 2028:
				case 2029:
				case 2030:
				case 2031:
				case 2032:
				case 2033:
				case 2034:
				case 2035:
				case 2036:
				case 2037:
				case 2038:
				case 2039:
				case 2040:
				case 2041:
				case 2042:
				case 2043:
				case 2044:
				case 2045:
				case 2046:
				case 2047:
				case 2048:
				case 2049:
				case 2050:
				case 2051:
				case 2052:
				case 2053:
				case 2054:
				case 2055:
				case 2056:
				case 2057:
				case 2058:
				case 2059:
				case 2060:
				case 2061:
				case 2062:
				case 2063:
				case 2064:
				case 2065:
				case 2066:
				case 2067:
				case 2068:
				case 2069:
				case 2070:
				case 2071:
				case 2072:
				case 2074:
				case 2075:
				case 2076:
				case 2077:
				case 2078:
				case 2079:
				case 2080:
				case 2081:
				case 2082:
				case 2083:
				case 2084:
				case 2085:
				case 2086:
				case 2087:
				case 2088:
				case 2089:
				case 2090:
				case 2091:
				case 2092:
				case 2093:
				case 2094:
				case 2095:
				case 2096:
				case 2097:
				case 2098:
				case 2100:
				case 2101:
				case 2102:
				case 2103:
				case 2104:
				case 2105:
				case 2106:
				case 2107:
				case 2108:
				case 2109:
				case 2110:
				case 2111:
				case 2112:
				case 2113:
				case 2115:
				case 2116:
				case 2117:
				case 2118:
				case 2119:
				case 2120:
				case 2122:
				case 2123:
				case 2124:
				case 2125:
				case 2126:
				case 2128:
				case 2129:
				case 2130:
				case 2131:
				case 2132:
				case 2133:
				case 2134:
				case 2135:
				case 2136:
				case 2137:
				case 2138:
				case 2139:
				case 2140:
				case 2141:
				case 2142:
				case 2143:
				case 2145:
				case 2146:
				case 2147:
				case 2148:
				case 2149:
				case 2150:
				case 2151:
				case 2152:
				case 2153:
				case 2154:
				case 2155:
				case 2156:
				case 2157:
				case 2158:
				case 2159:
				case 2160:
				case 2161:
				case 2162:
				case 2163:
				case 2164:
				case 2165:
				case 2166:
				case 2168:
				case 2169:
				case 2170:
				case 2171:
				case 2172:
				case 2173:
				case 2174:
				case 2175:
				case 2176:
				case 2177:
				case 2178:
				case 2179:
				case 2180:
				case 2181:
				case 2182:
				case 2183:
				case 2184:
				case 2185:
				case 2186:
				case 2187:
				case 2188:
				case 2189:
				case 2190:
				case 2191:
				case 2192:
				case 2193:
				case 2194:
				case 2195:
				case 2196:
				case 2197:
				case 2198:
				case 2199:
				case 2200:
				case 2201:
				case 2202:
				case 2203:
				case 2204:
				case 2205:
				case 2206:
				case 2207:
				case 2208:
				case 2209:
				case 2210:
				case 2211:
				case 2212:
				case 2216:
				case 2217:
				case 2218:
				case 2219:
				case 2220:
				case 2223:
				case 2227:
				case 2228:
				case 2233:
				case 2240:
				case 2246:
				case 2252:
					{
					this.state = 10460;
					this._errHandler.sync(this);
					switch ( this._interp.adaptivePredict(this._input, 1420, this._ctx) ) {
					case 1:
						{
						this.state = 10459;
						_la = this._input.LA(1);
						if(!(_la===35 || _la===396 || _la===2002)) {
						this._errHandler.recoverInline(this);
						}
						else {
							this._errHandler.reportMatch(this);
						    this.consume();
						}
						}
						break;
					}
					this.state = 10462;
					this.concatenation(0);
					}
					break;
				default:
					throw new NoViableAltException(this);
				}
				this.state = 10465;
				this.match(PlSqlParser.RIGHT_PAREN);
				this.state = 10467;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 1422, this._ctx) ) {
				case 1:
					{
					this.state = 10466;
					this.over_clause();
					}
					break;
				}
				}
				break;
			case 4:
				this.enterOuterAlt(localctx, 4);
				{
				this.state = 10469;
				_la = this._input.LA(1);
				if(!(_la===164 || _la===2133)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				this.state = 10470;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 10477;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 1423, this._ctx) ) {
				case 1:
					{
					this.state = 10471;
					this.match(PlSqlParser.MULTISET);
					this.state = 10472;
					this.match(PlSqlParser.LEFT_PAREN);
					this.state = 10473;
					this.subquery();
					this.state = 10474;
					this.match(PlSqlParser.RIGHT_PAREN);
					}
					break;
				case 2:
					{
					this.state = 10476;
					this.concatenation(0);
					}
					break;
				}
				this.state = 10479;
				this.match(PlSqlParser.AS);
				this.state = 10480;
				this.type_spec();
				this.state = 10481;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
				break;
			case 5:
				this.enterOuterAlt(localctx, 5);
				{
				this.state = 10483;
				this.match(PlSqlParser.COALESCE);
				this.state = 10484;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 10485;
				this.table_element();
				this.state = 10491;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===2229) {
					{
					this.state = 10486;
					this.match(PlSqlParser.COMMA);
					this.state = 10489;
					this._errHandler.sync(this);
					switch (this._input.LA(1)) {
					case 2217:
					case 2218:
						{
						this.state = 10487;
						this.numeric();
						}
						break;
					case 2212:
					case 2219:
						{
						this.state = 10488;
						this.quoted_string();
						}
						break;
					default:
						throw new NoViableAltException(this);
					}
					}
				}

				this.state = 10493;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
				break;
			case 6:
				this.enterOuterAlt(localctx, 6);
				{
				this.state = 10495;
				this.match(PlSqlParser.COLLECT);
				this.state = 10496;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 10498;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 1426, this._ctx) ) {
				case 1:
					{
					this.state = 10497;
					_la = this._input.LA(1);
					if(!(_la===396 || _la===2002)) {
					this._errHandler.recoverInline(this);
					}
					else {
						this._errHandler.reportMatch(this);
					    this.consume();
					}
					}
					break;
				}
				this.state = 10500;
				this.concatenation(0);
				this.state = 10502;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===1168) {
					{
					this.state = 10501;
					this.collect_order_by_part();
					}
				}

				this.state = 10504;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
				break;
			case 7:
				this.enterOuterAlt(localctx, 7);
				{
				this.state = 10506;
				this.within_or_over_clause_keyword();
				this.state = 10507;
				this.function_argument();
				this.state = 10509;
				this._errHandler.sync(this);
				_alt = 1;
				do {
					switch (_alt) {
					case 1:
						{
						{
						this.state = 10508;
						this.within_or_over_part();
						}
						}
						break;
					default:
						throw new NoViableAltException(this);
					}
					this.state = 10511;
					this._errHandler.sync(this);
					_alt = this._interp.adaptivePredict(this._input, 1428, this._ctx);
				} while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER);
				}
				break;
			case 8:
				this.enterOuterAlt(localctx, 8);
				{
				this.state = 10513;
				this.cursor_name();
				this.state = 10514;
				_la = this._input.LA(1);
				if(!(((((_la - 1233)) & ~0x1F) === 0 && ((1 << (_la - 1233)) & 39) !== 0))) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				}
				break;
			case 9:
				this.enterOuterAlt(localctx, 9);
				{
				this.state = 10516;
				this.match(PlSqlParser.DECOMPOSE);
				this.state = 10517;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 10518;
				this.concatenation(0);
				this.state = 10520;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===159 || _la===222) {
					{
					this.state = 10519;
					_la = this._input.LA(1);
					if(!(_la===159 || _la===222)) {
					this._errHandler.recoverInline(this);
					}
					else {
						this._errHandler.reportMatch(this);
					    this.consume();
					}
					}
				}

				this.state = 10522;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
				break;
			case 10:
				this.enterOuterAlt(localctx, 10);
				{
				this.state = 10524;
				this.match(PlSqlParser.EXTRACT);
				this.state = 10525;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 10526;
				this.regular_id();
				this.state = 10527;
				this.match(PlSqlParser.FROM);
				this.state = 10528;
				this.concatenation(0);
				this.state = 10529;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
				break;
			case 11:
				this.enterOuterAlt(localctx, 11);
				{
				this.state = 10531;
				_la = this._input.LA(1);
				if(!(_la===529 || _la===732)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				this.state = 10532;
				this.function_argument_analytic();
				this.state = 10534;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===608 || _la===1416) {
					{
					this.state = 10533;
					this.respect_or_ignore_nulls();
					}
				}

				this.state = 10536;
				this.over_clause();
				}
				break;
			case 12:
				this.enterOuterAlt(localctx, 12);
				{
				this.state = 10538;
				this.standard_prediction_function_keyword();
				this.state = 10539;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 10540;
				this.expressions();
				this.state = 10542;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===279) {
					{
					this.state = 10541;
					this.cost_matrix_clause();
					}
				}

				this.state = 10545;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===2063) {
					{
					this.state = 10544;
					this.using_clause();
					}
				}

				this.state = 10547;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
				break;
			case 13:
				this.enterOuterAlt(localctx, 13);
				{
				this.state = 10549;
				this.match(PlSqlParser.TRANSLATE);
				this.state = 10550;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 10551;
				this.expression();
				this.state = 10554;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===2063) {
					{
					this.state = 10552;
					this.match(PlSqlParser.USING);
					this.state = 10553;
					_la = this._input.LA(1);
					if(!(_la===177 || _la===889)) {
					this._errHandler.recoverInline(this);
					}
					else {
						this._errHandler.reportMatch(this);
					    this.consume();
					}
					}
				}

				this.state = 10560;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===2229) {
					{
					{
					this.state = 10556;
					this.match(PlSqlParser.COMMA);
					this.state = 10557;
					this.expression();
					}
					}
					this.state = 10562;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				this.state = 10563;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
				break;
			case 14:
				this.enterOuterAlt(localctx, 14);
				{
				this.state = 10565;
				this.match(PlSqlParser.TREAT);
				this.state = 10566;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 10567;
				this.expression();
				this.state = 10568;
				this.match(PlSqlParser.AS);
				this.state = 10570;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 1435, this._ctx) ) {
				case 1:
					{
					this.state = 10569;
					this.match(PlSqlParser.REF);
					}
					break;
				}
				this.state = 10572;
				this.type_spec();
				this.state = 10573;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
				break;
			case 15:
				this.enterOuterAlt(localctx, 15);
				{
				this.state = 10575;
				this.match(PlSqlParser.TRIM);
				this.state = 10576;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 10584;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 1438, this._ctx) ) {
				case 1:
					{
					this.state = 10578;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
					if (_la===135 || _la===739 || _la===1969) {
						{
						this.state = 10577;
						_la = this._input.LA(1);
						if(!(_la===135 || _la===739 || _la===1969)) {
						this._errHandler.recoverInline(this);
						}
						else {
							this._errHandler.reportMatch(this);
						    this.consume();
						}
						}
					}

					this.state = 10581;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
					if (_la===2212 || _la===2219) {
						{
						this.state = 10580;
						this.quoted_string();
						}
					}

					this.state = 10583;
					this.match(PlSqlParser.FROM);
					}
					break;
				}
				this.state = 10586;
				this.concatenation(0);
				this.state = 10587;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
				break;
			case 16:
				this.enterOuterAlt(localctx, 16);
				{
				this.state = 10589;
				this.match(PlSqlParser.XMLAGG);
				this.state = 10590;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 10591;
				this.expression();
				this.state = 10593;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===1168) {
					{
					this.state = 10592;
					this.order_by_clause();
					}
				}

				this.state = 10595;
				this.match(PlSqlParser.RIGHT_PAREN);
				this.state = 10598;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 1440, this._ctx) ) {
				case 1:
					{
					this.state = 10596;
					this.match(PlSqlParser.PERIOD);
					this.state = 10597;
					this.general_element_part();
					}
					break;
				}
				}
				break;
			case 17:
				this.enterOuterAlt(localctx, 17);
				{
				this.state = 10600;
				_la = this._input.LA(1);
				if(!(_la===2135 || _la===2143)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				this.state = 10601;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 10602;
				this.xml_multiuse_expression_element();
				this.state = 10607;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===2229) {
					{
					{
					this.state = 10603;
					this.match(PlSqlParser.COMMA);
					this.state = 10604;
					this.xml_multiuse_expression_element();
					}
					}
					this.state = 10609;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				this.state = 10610;
				this.match(PlSqlParser.RIGHT_PAREN);
				this.state = 10613;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 1442, this._ctx) ) {
				case 1:
					{
					this.state = 10611;
					this.match(PlSqlParser.PERIOD);
					this.state = 10612;
					this.general_element_part();
					}
					break;
				}
				}
				break;
			case 18:
				this.enterOuterAlt(localctx, 18);
				{
				this.state = 10615;
				this.match(PlSqlParser.XMLELEMENT);
				this.state = 10616;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 10618;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 1443, this._ctx) ) {
				case 1:
					{
					this.state = 10617;
					_la = this._input.LA(1);
					if(!(_la===451 || _la===973)) {
					this._errHandler.recoverInline(this);
					}
					else {
						this._errHandler.reportMatch(this);
					    this.consume();
					}
					}
					break;
				}
				this.state = 10621;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 1444, this._ctx) ) {
				case 1:
					{
					this.state = 10620;
					_la = this._input.LA(1);
					if(!(_la===462 || _la===879)) {
					this._errHandler.recoverInline(this);
					}
					else {
						this._errHandler.reportMatch(this);
					    this.consume();
					}
					}
					break;
				}
				this.state = 10623;
				this.expression();
				this.state = 10626;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 1445, this._ctx) ) {
				case 1:
					{
					this.state = 10624;
					this.match(PlSqlParser.COMMA);
					this.state = 10625;
					this.xml_attributes_clause();
					}
					break;
				}
				this.state = 10635;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===2229) {
					{
					{
					this.state = 10628;
					this.match(PlSqlParser.COMMA);
					this.state = 10629;
					this.expression();
					this.state = 10631;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
					if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & 3221157751) !== 0) || ((((_la - 64)) & ~0x1F) === 0 && ((1 << (_la - 64)) & 3220168703) !== 0) || ((((_la - 96)) & ~0x1F) === 0 && ((1 << (_la - 96)) & 4294965247) !== 0) || ((((_la - 128)) & ~0x1F) === 0 && ((1 << (_la - 128)) & 2147221503) !== 0) || ((((_la - 160)) & ~0x1F) === 0 && ((1 << (_la - 160)) & 4293910527) !== 0) || ((((_la - 192)) & ~0x1F) === 0 && ((1 << (_la - 192)) & 4294967295) !== 0) || ((((_la - 224)) & ~0x1F) === 0 && ((1 << (_la - 224)) & 4160749311) !== 0) || ((((_la - 256)) & ~0x1F) === 0 && ((1 << (_la - 256)) & 4294967295) !== 0) || ((((_la - 289)) & ~0x1F) === 0 && ((1 << (_la - 289)) & 2147483647) !== 0) || ((((_la - 321)) & ~0x1F) === 0 && ((1 << (_la - 321)) & 3221225407) !== 0) || ((((_la - 353)) & ~0x1F) === 0 && ((1 << (_la - 353)) & 4294705151) !== 0) || ((((_la - 385)) & ~0x1F) === 0 && ((1 << (_la - 385)) & 2080372479) !== 0) || ((((_la - 417)) & ~0x1F) === 0 && ((1 << (_la - 417)) & 4026433535) !== 0) || ((((_la - 449)) & ~0x1F) === 0 && ((1 << (_la - 449)) & 4261412863) !== 0) || ((((_la - 481)) & ~0x1F) === 0 && ((1 << (_la - 481)) & 4294967295) !== 0) || ((((_la - 513)) & ~0x1F) === 0 && ((1 << (_la - 513)) & 4294967295) !== 0) || ((((_la - 545)) & ~0x1F) === 0 && ((1 << (_la - 545)) & 3925868029) !== 0) || ((((_la - 577)) & ~0x1F) === 0 && ((1 << (_la - 577)) & 4278189823) !== 0) || ((((_la - 609)) & ~0x1F) === 0 && ((1 << (_la - 609)) & 4290772991) !== 0) || ((((_la - 641)) & ~0x1F) === 0 && ((1 << (_la - 641)) & 4026529791) !== 0) || ((((_la - 673)) & ~0x1F) === 0 && ((1 << (_la - 673)) & 4290478079) !== 0) || ((((_la - 705)) & ~0x1F) === 0 && ((1 << (_la - 705)) & 4294967295) !== 0) || ((((_la - 737)) & ~0x1F) === 0 && ((1 << (_la - 737)) & 4293918719) !== 0) || ((((_la - 769)) & ~0x1F) === 0 && ((1 << (_la - 769)) & 4294967167) !== 0) || ((((_la - 801)) & ~0x1F) === 0 && ((1 << (_la - 801)) & 4294967295) !== 0) || ((((_la - 833)) & ~0x1F) === 0 && ((1 << (_la - 833)) & 4160749055) !== 0) || ((((_la - 865)) & ~0x1F) === 0 && ((1 << (_la - 865)) & 4290772991) !== 0) || ((((_la - 897)) & ~0x1F) === 0 && ((1 << (_la - 897)) & 4294967295) !== 0) || ((((_la - 929)) & ~0x1F) === 0 && ((1 << (_la - 929)) & 4278190079) !== 0) || ((((_la - 961)) & ~0x1F) === 0 && ((1 << (_la - 961)) & 4294967295) !== 0) || ((((_la - 993)) & ~0x1F) === 0 && ((1 << (_la - 993)) & 4294967295) !== 0) || ((((_la - 1025)) & ~0x1F) === 0 && ((1 << (_la - 1025)) & 4294967295) !== 0) || ((((_la - 1057)) & ~0x1F) === 0 && ((1 << (_la - 1057)) & 2147418111) !== 0) || ((((_la - 1089)) & ~0x1F) === 0 && ((1 << (_la - 1089)) & 4227858175) !== 0) || ((((_la - 1121)) & ~0x1F) === 0 && ((1 << (_la - 1121)) & 4293918559) !== 0) || ((((_la - 1153)) & ~0x1F) === 0 && ((1 << (_la - 1153)) & 4294410239) !== 0) || ((((_la - 1185)) & ~0x1F) === 0 && ((1 << (_la - 1185)) & 4294965247) !== 0) || ((((_la - 1217)) & ~0x1F) === 0 && ((1 << (_la - 1217)) & 4279827455) !== 0) || ((((_la - 1249)) & ~0x1F) === 0 && ((1 << (_la - 1249)) & 4294967291) !== 0) || ((((_la - 1281)) & ~0x1F) === 0 && ((1 << (_la - 1281)) & 4227858431) !== 0) || ((((_la - 1313)) & ~0x1F) === 0 && ((1 << (_la - 1313)) & 4294965247) !== 0) || ((((_la - 1345)) & ~0x1F) === 0 && ((1 << (_la - 1345)) & 4294967295) !== 0) || ((((_la - 1377)) & ~0x1F) === 0 && ((1 << (_la - 1377)) & 4292870143) !== 0) || ((((_la - 1409)) & ~0x1F) === 0 && ((1 << (_la - 1409)) & 4261412799) !== 0) || ((((_la - 1441)) & ~0x1F) === 0 && ((1 << (_la - 1441)) & 4294967295) !== 0) || ((((_la - 1473)) & ~0x1F) === 0 && ((1 << (_la - 1473)) & 4261281791) !== 0) || ((((_la - 1505)) & ~0x1F) === 0 && ((1 << (_la - 1505)) & 3221221375) !== 0) || ((((_la - 1537)) & ~0x1F) === 0 && ((1 << (_la - 1537)) & 4294967295) !== 0) || ((((_la - 1570)) & ~0x1F) === 0 && ((1 << (_la - 1570)) & 4294967295) !== 0) || ((((_la - 1602)) & ~0x1F) === 0 && ((1 << (_la - 1602)) & 4261412863) !== 0) || ((((_la - 1634)) & ~0x1F) === 0 && ((1 << (_la - 1634)) & 4294967295) !== 0) || ((((_la - 1666)) & ~0x1F) === 0 && ((1 << (_la - 1666)) & 4294967295) !== 0) || ((((_la - 1698)) & ~0x1F) === 0 && ((1 << (_la - 1698)) & 4294967295) !== 0) || ((((_la - 1730)) & ~0x1F) === 0 && ((1 << (_la - 1730)) & 4294967295) !== 0) || ((((_la - 1762)) & ~0x1F) === 0 && ((1 << (_la - 1762)) & 4294967295) !== 0) || ((((_la - 1794)) & ~0x1F) === 0 && ((1 << (_la - 1794)) & 4294967295) !== 0) || ((((_la - 1826)) & ~0x1F) === 0 && ((1 << (_la - 1826)) & 4294967295) !== 0) || ((((_la - 1858)) & ~0x1F) === 0 && ((1 << (_la - 1858)) & 4294967295) !== 0) || ((((_la - 1890)) & ~0x1F) === 0 && ((1 << (_la - 1890)) & 4294967295) !== 0) || ((((_la - 1922)) & ~0x1F) === 0 && ((1 << (_la - 1922)) & 4294901759) !== 0) || ((((_la - 1954)) & ~0x1F) === 0 && ((1 << (_la - 1954)) & 4294966271) !== 0) || ((((_la - 1986)) & ~0x1F) === 0 && ((1 << (_la - 1986)) & 4294868991) !== 0) || ((((_la - 2018)) & ~0x1F) === 0 && ((1 << (_la - 2018)) & 4294967167) !== 0) || ((((_la - 2050)) & ~0x1F) === 0 && ((1 << (_la - 2050)) & 4286578687) !== 0) || ((((_la - 2082)) & ~0x1F) === 0 && ((1 << (_la - 2082)) & 4294836223) !== 0) || ((((_la - 2115)) & ~0x1F) === 0 && ((1 << (_la - 2115)) & 3758092223) !== 0) || ((((_la - 2147)) & ~0x1F) === 0 && ((1 << (_la - 2147)) & 4293918719) !== 0) || ((((_la - 2179)) & ~0x1F) === 0 && ((1 << (_la - 2179)) & 4294965247) !== 0) || ((((_la - 2211)) & ~0x1F) === 0 && ((1 << (_la - 2211)) & 803) !== 0) || _la===2246 || _la===2252) {
						{
						this.state = 10630;
						this.column_alias();
						}
					}

					}
					}
					this.state = 10637;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				this.state = 10638;
				this.match(PlSqlParser.RIGHT_PAREN);
				this.state = 10641;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 1448, this._ctx) ) {
				case 1:
					{
					this.state = 10639;
					this.match(PlSqlParser.PERIOD);
					this.state = 10640;
					this.general_element_part();
					}
					break;
				}
				}
				break;
			case 19:
				this.enterOuterAlt(localctx, 19);
				{
				this.state = 10643;
				this.match(PlSqlParser.XMLEXISTS);
				this.state = 10644;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 10645;
				this.expression();
				this.state = 10647;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===1211) {
					{
					this.state = 10646;
					this.xml_passing_clause();
					}
				}

				this.state = 10649;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
				break;
			case 20:
				this.enterOuterAlt(localctx, 20);
				{
				this.state = 10651;
				this.match(PlSqlParser.XMLPARSE);
				this.state = 10652;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 10653;
				_la = this._input.LA(1);
				if(!(_la===263 || _la===403)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				this.state = 10654;
				this.concatenation(0);
				this.state = 10656;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===2111) {
					{
					this.state = 10655;
					this.match(PlSqlParser.WELLFORMED);
					}
				}

				this.state = 10658;
				this.match(PlSqlParser.RIGHT_PAREN);
				this.state = 10661;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 1451, this._ctx) ) {
				case 1:
					{
					this.state = 10659;
					this.match(PlSqlParser.PERIOD);
					this.state = 10660;
					this.general_element_part();
					}
					break;
				}
				}
				break;
			case 21:
				this.enterOuterAlt(localctx, 21);
				{
				this.state = 10663;
				this.match(PlSqlParser.XMLPI);
				this.state = 10664;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 10669;
				this._errHandler.sync(this);
				switch (this._input.LA(1)) {
				case 879:
					{
					this.state = 10665;
					this.match(PlSqlParser.NAME);
					this.state = 10666;
					this.identifier();
					}
					break;
				case 462:
					{
					this.state = 10667;
					this.match(PlSqlParser.EVALNAME);
					this.state = 10668;
					this.concatenation(0);
					}
					break;
				default:
					throw new NoViableAltException(this);
				}
				this.state = 10673;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===2229) {
					{
					this.state = 10671;
					this.match(PlSqlParser.COMMA);
					this.state = 10672;
					this.concatenation(0);
					}
				}

				this.state = 10675;
				this.match(PlSqlParser.RIGHT_PAREN);
				this.state = 10678;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 1454, this._ctx) ) {
				case 1:
					{
					this.state = 10676;
					this.match(PlSqlParser.PERIOD);
					this.state = 10677;
					this.general_element_part();
					}
					break;
				}
				}
				break;
			case 22:
				this.enterOuterAlt(localctx, 22);
				{
				this.state = 10680;
				this.match(PlSqlParser.XMLQUERY);
				this.state = 10681;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 10682;
				this.concatenation(0);
				this.state = 10684;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===1211) {
					{
					this.state = 10683;
					this.xml_passing_clause();
					}
				}

				this.state = 10686;
				this.match(PlSqlParser.RETURNING);
				this.state = 10687;
				this.match(PlSqlParser.CONTENT);
				this.state = 10691;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===1097) {
					{
					this.state = 10688;
					this.match(PlSqlParser.NULL_);
					this.state = 10689;
					this.match(PlSqlParser.ON);
					this.state = 10690;
					this.match(PlSqlParser.EMPTY);
					}
				}

				this.state = 10693;
				this.match(PlSqlParser.RIGHT_PAREN);
				this.state = 10696;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 1457, this._ctx) ) {
				case 1:
					{
					this.state = 10694;
					this.match(PlSqlParser.PERIOD);
					this.state = 10695;
					this.general_element_part();
					}
					break;
				}
				}
				break;
			case 23:
				this.enterOuterAlt(localctx, 23);
				{
				this.state = 10698;
				this.match(PlSqlParser.XMLROOT);
				this.state = 10699;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 10700;
				this.concatenation(0);
				this.state = 10703;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 1458, this._ctx) ) {
				case 1:
					{
					this.state = 10701;
					this.match(PlSqlParser.COMMA);
					this.state = 10702;
					this.xmlroot_param_version_part();
					}
					break;
				}
				this.state = 10707;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===2229) {
					{
					this.state = 10705;
					this.match(PlSqlParser.COMMA);
					this.state = 10706;
					this.xmlroot_param_standalone_part();
					}
				}

				this.state = 10709;
				this.match(PlSqlParser.RIGHT_PAREN);
				this.state = 10712;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 1460, this._ctx) ) {
				case 1:
					{
					this.state = 10710;
					this.match(PlSqlParser.PERIOD);
					this.state = 10711;
					this.general_element_part();
					}
					break;
				}
				}
				break;
			case 24:
				this.enterOuterAlt(localctx, 24);
				{
				this.state = 10714;
				this.match(PlSqlParser.XMLSERIALIZE);
				this.state = 10715;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 10716;
				_la = this._input.LA(1);
				if(!(_la===263 || _la===403)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				this.state = 10717;
				this.concatenation(0);
				this.state = 10720;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===61) {
					{
					this.state = 10718;
					this.match(PlSqlParser.AS);
					this.state = 10719;
					this.type_spec();
					}
				}

				this.state = 10723;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===442) {
					{
					this.state = 10722;
					this.xmlserialize_param_enconding_part();
					}
				}

				this.state = 10726;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===2098) {
					{
					this.state = 10725;
					this.xmlserialize_param_version_part();
					}
				}

				this.state = 10729;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===623 || _la===1010) {
					{
					this.state = 10728;
					this.xmlserialize_param_ident_part();
					}
				}

				this.state = 10733;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===592 || _la===1520) {
					{
					this.state = 10731;
					_la = this._input.LA(1);
					if(!(_la===592 || _la===1520)) {
					this._errHandler.recoverInline(this);
					}
					else {
						this._errHandler.reportMatch(this);
					    this.consume();
					}
					this.state = 10732;
					this.match(PlSqlParser.DEFAULTS);
					}
				}

				this.state = 10735;
				this.match(PlSqlParser.RIGHT_PAREN);
				this.state = 10738;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 1466, this._ctx) ) {
				case 1:
					{
					this.state = 10736;
					this.match(PlSqlParser.PERIOD);
					this.state = 10737;
					this.general_element_part();
					}
					break;
				}
				}
				break;
			case 25:
				this.enterOuterAlt(localctx, 25);
				{
				this.state = 10740;
				this.xmltable();
				}
				break;
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public over_clause_keyword(): Over_clause_keywordContext {
		let localctx: Over_clause_keywordContext = new Over_clause_keywordContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1298, PlSqlParser.RULE_over_clause_keyword);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 10743;
			_la = this._input.LA(1);
			if(!(((((_la - 2187)) & ~0x1F) === 0 && ((1 << (_la - 2187)) & 3955703) !== 0))) {
			this._errHandler.recoverInline(this);
			}
			else {
				this._errHandler.reportMatch(this);
			    this.consume();
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public within_or_over_clause_keyword(): Within_or_over_clause_keywordContext {
		let localctx: Within_or_over_clause_keywordContext = new Within_or_over_clause_keywordContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1300, PlSqlParser.RULE_within_or_over_clause_keyword);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 10745;
			_la = this._input.LA(1);
			if(!(((((_la - 2180)) & ~0x1F) === 0 && ((1 << (_la - 2180)) & 127) !== 0))) {
			this._errHandler.recoverInline(this);
			}
			else {
				this._errHandler.reportMatch(this);
			    this.consume();
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public standard_prediction_function_keyword(): Standard_prediction_function_keywordContext {
		let localctx: Standard_prediction_function_keywordContext = new Standard_prediction_function_keywordContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1302, PlSqlParser.RULE_standard_prediction_function_keyword);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 10747;
			_la = this._input.LA(1);
			if(!(((((_la - 2174)) & ~0x1F) === 0 && ((1 << (_la - 2174)) & 63) !== 0))) {
			this._errHandler.recoverInline(this);
			}
			else {
				this._errHandler.reportMatch(this);
			    this.consume();
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public over_clause(): Over_clauseContext {
		let localctx: Over_clauseContext = new Over_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1304, PlSqlParser.RULE_over_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 10749;
			this.match(PlSqlParser.OVER);
			this.state = 10750;
			this.match(PlSqlParser.LEFT_PAREN);
			this.state = 10752;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1207) {
				{
				this.state = 10751;
				this.query_partition_clause();
				}
			}

			this.state = 10758;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1168) {
				{
				this.state = 10754;
				this.order_by_clause();
				this.state = 10756;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===1344 || _la===1452) {
					{
					this.state = 10755;
					this.windowing_clause();
					}
				}

				}
			}

			this.state = 10760;
			this.match(PlSqlParser.RIGHT_PAREN);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public windowing_clause(): Windowing_clauseContext {
		let localctx: Windowing_clauseContext = new Windowing_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1306, PlSqlParser.RULE_windowing_clause);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 10762;
			this.windowing_type();
			this.state = 10769;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 107:
				{
				this.state = 10763;
				this.match(PlSqlParser.BETWEEN);
				this.state = 10764;
				this.windowing_elements();
				this.state = 10765;
				this.match(PlSqlParser.AND);
				this.state = 10766;
				this.windowing_elements();
				}
				break;
			case 1:
			case 2:
			case 3:
			case 4:
			case 5:
			case 6:
			case 7:
			case 8:
			case 9:
			case 10:
			case 11:
			case 12:
			case 13:
			case 14:
			case 15:
			case 16:
			case 17:
			case 18:
			case 19:
			case 20:
			case 21:
			case 22:
			case 23:
			case 24:
			case 25:
			case 26:
			case 27:
			case 28:
			case 29:
			case 30:
			case 31:
			case 32:
			case 33:
			case 34:
			case 35:
			case 36:
			case 37:
			case 38:
			case 40:
			case 41:
			case 42:
			case 44:
			case 45:
			case 46:
			case 47:
			case 48:
			case 49:
			case 50:
			case 51:
			case 52:
			case 53:
			case 54:
			case 55:
			case 56:
			case 57:
			case 58:
			case 59:
			case 60:
			case 63:
			case 64:
			case 65:
			case 66:
			case 67:
			case 68:
			case 69:
			case 70:
			case 71:
			case 72:
			case 73:
			case 74:
			case 75:
			case 76:
			case 78:
			case 79:
			case 80:
			case 81:
			case 82:
			case 83:
			case 85:
			case 86:
			case 87:
			case 88:
			case 89:
			case 90:
			case 91:
			case 92:
			case 93:
			case 95:
			case 96:
			case 97:
			case 98:
			case 99:
			case 100:
			case 101:
			case 102:
			case 103:
			case 104:
			case 105:
			case 106:
			case 108:
			case 109:
			case 110:
			case 111:
			case 112:
			case 113:
			case 114:
			case 115:
			case 116:
			case 117:
			case 118:
			case 119:
			case 120:
			case 121:
			case 122:
			case 123:
			case 124:
			case 125:
			case 126:
			case 127:
			case 128:
			case 129:
			case 130:
			case 131:
			case 132:
			case 133:
			case 134:
			case 135:
			case 136:
			case 137:
			case 138:
			case 139:
			case 140:
			case 141:
			case 142:
			case 143:
			case 144:
			case 145:
			case 147:
			case 148:
			case 149:
			case 150:
			case 151:
			case 152:
			case 153:
			case 154:
			case 155:
			case 156:
			case 157:
			case 158:
			case 160:
			case 161:
			case 162:
			case 163:
			case 164:
			case 165:
			case 166:
			case 167:
			case 168:
			case 169:
			case 170:
			case 171:
			case 172:
			case 174:
			case 175:
			case 176:
			case 177:
			case 178:
			case 179:
			case 181:
			case 182:
			case 183:
			case 184:
			case 185:
			case 186:
			case 187:
			case 188:
			case 189:
			case 190:
			case 191:
			case 192:
			case 193:
			case 194:
			case 195:
			case 196:
			case 197:
			case 198:
			case 199:
			case 200:
			case 201:
			case 202:
			case 203:
			case 204:
			case 205:
			case 206:
			case 207:
			case 208:
			case 209:
			case 210:
			case 211:
			case 212:
			case 213:
			case 214:
			case 215:
			case 216:
			case 217:
			case 218:
			case 219:
			case 220:
			case 221:
			case 222:
			case 223:
			case 224:
			case 225:
			case 226:
			case 227:
			case 228:
			case 229:
			case 230:
			case 231:
			case 233:
			case 234:
			case 235:
			case 236:
			case 237:
			case 238:
			case 239:
			case 240:
			case 241:
			case 242:
			case 243:
			case 244:
			case 245:
			case 246:
			case 247:
			case 248:
			case 249:
			case 250:
			case 252:
			case 253:
			case 254:
			case 255:
			case 256:
			case 257:
			case 258:
			case 259:
			case 260:
			case 261:
			case 262:
			case 263:
			case 264:
			case 265:
			case 266:
			case 267:
			case 268:
			case 269:
			case 270:
			case 271:
			case 272:
			case 273:
			case 274:
			case 275:
			case 276:
			case 277:
			case 278:
			case 279:
			case 280:
			case 281:
			case 282:
			case 283:
			case 284:
			case 285:
			case 286:
			case 287:
			case 289:
			case 290:
			case 291:
			case 292:
			case 293:
			case 294:
			case 295:
			case 296:
			case 297:
			case 298:
			case 299:
			case 300:
			case 301:
			case 302:
			case 303:
			case 304:
			case 305:
			case 306:
			case 307:
			case 308:
			case 309:
			case 310:
			case 311:
			case 312:
			case 313:
			case 314:
			case 315:
			case 316:
			case 317:
			case 318:
			case 319:
			case 321:
			case 322:
			case 323:
			case 324:
			case 325:
			case 326:
			case 327:
			case 328:
			case 329:
			case 330:
			case 331:
			case 332:
			case 333:
			case 334:
			case 335:
			case 336:
			case 337:
			case 338:
			case 339:
			case 340:
			case 341:
			case 342:
			case 343:
			case 344:
			case 345:
			case 346:
			case 347:
			case 348:
			case 349:
			case 350:
			case 351:
			case 352:
			case 353:
			case 354:
			case 355:
			case 356:
			case 357:
			case 358:
			case 359:
			case 360:
			case 361:
			case 362:
			case 363:
			case 364:
			case 365:
			case 366:
			case 367:
			case 368:
			case 369:
			case 370:
			case 372:
			case 373:
			case 374:
			case 375:
			case 376:
			case 377:
			case 378:
			case 379:
			case 380:
			case 381:
			case 382:
			case 383:
			case 384:
			case 385:
			case 386:
			case 387:
			case 388:
			case 389:
			case 390:
			case 391:
			case 392:
			case 394:
			case 395:
			case 396:
			case 397:
			case 398:
			case 399:
			case 400:
			case 401:
			case 402:
			case 403:
			case 404:
			case 405:
			case 406:
			case 407:
			case 408:
			case 409:
			case 410:
			case 412:
			case 413:
			case 414:
			case 415:
			case 417:
			case 418:
			case 419:
			case 420:
			case 421:
			case 422:
			case 423:
			case 424:
			case 425:
			case 426:
			case 427:
			case 428:
			case 429:
			case 430:
			case 431:
			case 434:
			case 435:
			case 436:
			case 437:
			case 438:
			case 439:
			case 440:
			case 441:
			case 442:
			case 443:
			case 444:
			case 446:
			case 447:
			case 448:
			case 449:
			case 450:
			case 451:
			case 452:
			case 453:
			case 454:
			case 455:
			case 456:
			case 457:
			case 458:
			case 459:
			case 460:
			case 461:
			case 462:
			case 463:
			case 464:
			case 465:
			case 466:
			case 467:
			case 468:
			case 469:
			case 470:
			case 471:
			case 472:
			case 473:
			case 475:
			case 476:
			case 477:
			case 478:
			case 479:
			case 480:
			case 481:
			case 482:
			case 483:
			case 484:
			case 485:
			case 486:
			case 487:
			case 488:
			case 489:
			case 490:
			case 491:
			case 492:
			case 493:
			case 494:
			case 495:
			case 496:
			case 497:
			case 498:
			case 499:
			case 500:
			case 501:
			case 502:
			case 503:
			case 504:
			case 505:
			case 506:
			case 507:
			case 508:
			case 509:
			case 510:
			case 511:
			case 512:
			case 513:
			case 514:
			case 515:
			case 516:
			case 517:
			case 518:
			case 519:
			case 520:
			case 521:
			case 522:
			case 523:
			case 524:
			case 525:
			case 526:
			case 527:
			case 528:
			case 529:
			case 530:
			case 531:
			case 532:
			case 533:
			case 534:
			case 535:
			case 536:
			case 537:
			case 538:
			case 539:
			case 540:
			case 541:
			case 542:
			case 543:
			case 544:
			case 545:
			case 547:
			case 548:
			case 549:
			case 550:
			case 551:
			case 552:
			case 553:
			case 555:
			case 556:
			case 557:
			case 558:
			case 559:
			case 560:
			case 561:
			case 562:
			case 563:
			case 564:
			case 565:
			case 566:
			case 567:
			case 568:
			case 569:
			case 572:
			case 574:
			case 575:
			case 576:
			case 577:
			case 578:
			case 579:
			case 580:
			case 581:
			case 582:
			case 583:
			case 584:
			case 586:
			case 587:
			case 588:
			case 589:
			case 590:
			case 591:
			case 592:
			case 593:
			case 594:
			case 595:
			case 596:
			case 597:
			case 598:
			case 599:
			case 600:
			case 602:
			case 603:
			case 604:
			case 605:
			case 606:
			case 607:
			case 608:
			case 609:
			case 610:
			case 611:
			case 612:
			case 613:
			case 614:
			case 615:
			case 616:
			case 617:
			case 618:
			case 619:
			case 620:
			case 621:
			case 622:
			case 623:
			case 624:
			case 625:
			case 626:
			case 627:
			case 628:
			case 629:
			case 630:
			case 632:
			case 633:
			case 634:
			case 635:
			case 636:
			case 637:
			case 638:
			case 639:
			case 640:
			case 641:
			case 642:
			case 643:
			case 644:
			case 645:
			case 646:
			case 647:
			case 648:
			case 649:
			case 650:
			case 651:
			case 653:
			case 654:
			case 655:
			case 656:
			case 657:
			case 658:
			case 659:
			case 660:
			case 661:
			case 662:
			case 663:
			case 664:
			case 665:
			case 666:
			case 667:
			case 668:
			case 670:
			case 671:
			case 672:
			case 673:
			case 674:
			case 675:
			case 676:
			case 677:
			case 678:
			case 679:
			case 680:
			case 681:
			case 682:
			case 683:
			case 684:
			case 685:
			case 686:
			case 687:
			case 689:
			case 690:
			case 692:
			case 693:
			case 694:
			case 696:
			case 697:
			case 698:
			case 699:
			case 700:
			case 701:
			case 702:
			case 703:
			case 704:
			case 705:
			case 706:
			case 707:
			case 708:
			case 709:
			case 710:
			case 711:
			case 712:
			case 713:
			case 714:
			case 715:
			case 716:
			case 717:
			case 718:
			case 719:
			case 720:
			case 721:
			case 722:
			case 723:
			case 724:
			case 725:
			case 726:
			case 727:
			case 728:
			case 729:
			case 730:
			case 731:
			case 732:
			case 733:
			case 734:
			case 735:
			case 736:
			case 737:
			case 738:
			case 739:
			case 740:
			case 741:
			case 742:
			case 743:
			case 744:
			case 745:
			case 746:
			case 747:
			case 748:
			case 749:
			case 750:
			case 751:
			case 752:
			case 753:
			case 754:
			case 755:
			case 756:
			case 758:
			case 759:
			case 760:
			case 761:
			case 762:
			case 763:
			case 764:
			case 765:
			case 766:
			case 767:
			case 768:
			case 769:
			case 770:
			case 771:
			case 772:
			case 773:
			case 774:
			case 775:
			case 777:
			case 778:
			case 779:
			case 780:
			case 781:
			case 782:
			case 783:
			case 784:
			case 785:
			case 786:
			case 787:
			case 788:
			case 789:
			case 790:
			case 791:
			case 792:
			case 793:
			case 794:
			case 795:
			case 796:
			case 797:
			case 798:
			case 799:
			case 800:
			case 801:
			case 802:
			case 803:
			case 804:
			case 805:
			case 806:
			case 807:
			case 808:
			case 809:
			case 810:
			case 811:
			case 812:
			case 813:
			case 814:
			case 815:
			case 816:
			case 817:
			case 818:
			case 819:
			case 820:
			case 821:
			case 822:
			case 823:
			case 824:
			case 825:
			case 826:
			case 827:
			case 828:
			case 829:
			case 830:
			case 831:
			case 832:
			case 833:
			case 834:
			case 835:
			case 836:
			case 837:
			case 838:
			case 839:
			case 840:
			case 841:
			case 843:
			case 844:
			case 845:
			case 846:
			case 847:
			case 848:
			case 849:
			case 850:
			case 851:
			case 852:
			case 853:
			case 854:
			case 855:
			case 856:
			case 857:
			case 858:
			case 859:
			case 861:
			case 862:
			case 863:
			case 864:
			case 865:
			case 866:
			case 867:
			case 868:
			case 869:
			case 870:
			case 871:
			case 872:
			case 873:
			case 874:
			case 875:
			case 876:
			case 877:
			case 878:
			case 879:
			case 880:
			case 881:
			case 882:
			case 883:
			case 884:
			case 885:
			case 886:
			case 888:
			case 889:
			case 890:
			case 891:
			case 892:
			case 893:
			case 894:
			case 895:
			case 896:
			case 897:
			case 898:
			case 899:
			case 900:
			case 901:
			case 902:
			case 903:
			case 904:
			case 905:
			case 906:
			case 907:
			case 908:
			case 909:
			case 910:
			case 911:
			case 912:
			case 913:
			case 914:
			case 915:
			case 916:
			case 917:
			case 918:
			case 919:
			case 920:
			case 921:
			case 922:
			case 923:
			case 924:
			case 925:
			case 926:
			case 927:
			case 928:
			case 929:
			case 930:
			case 931:
			case 932:
			case 933:
			case 934:
			case 935:
			case 936:
			case 937:
			case 938:
			case 939:
			case 940:
			case 941:
			case 942:
			case 943:
			case 944:
			case 945:
			case 946:
			case 947:
			case 948:
			case 949:
			case 950:
			case 951:
			case 952:
			case 954:
			case 955:
			case 956:
			case 957:
			case 958:
			case 959:
			case 960:
			case 961:
			case 962:
			case 963:
			case 964:
			case 965:
			case 966:
			case 967:
			case 968:
			case 969:
			case 970:
			case 971:
			case 972:
			case 973:
			case 974:
			case 975:
			case 976:
			case 977:
			case 978:
			case 979:
			case 980:
			case 981:
			case 982:
			case 983:
			case 984:
			case 985:
			case 986:
			case 987:
			case 988:
			case 989:
			case 990:
			case 991:
			case 992:
			case 993:
			case 994:
			case 995:
			case 996:
			case 997:
			case 998:
			case 999:
			case 1000:
			case 1001:
			case 1002:
			case 1003:
			case 1004:
			case 1005:
			case 1006:
			case 1007:
			case 1008:
			case 1009:
			case 1010:
			case 1011:
			case 1012:
			case 1013:
			case 1014:
			case 1015:
			case 1016:
			case 1017:
			case 1018:
			case 1019:
			case 1020:
			case 1021:
			case 1022:
			case 1023:
			case 1024:
			case 1025:
			case 1026:
			case 1027:
			case 1028:
			case 1029:
			case 1030:
			case 1031:
			case 1032:
			case 1033:
			case 1034:
			case 1035:
			case 1036:
			case 1037:
			case 1038:
			case 1039:
			case 1040:
			case 1041:
			case 1042:
			case 1043:
			case 1044:
			case 1045:
			case 1046:
			case 1047:
			case 1048:
			case 1049:
			case 1050:
			case 1051:
			case 1052:
			case 1053:
			case 1054:
			case 1055:
			case 1056:
			case 1057:
			case 1058:
			case 1059:
			case 1060:
			case 1061:
			case 1062:
			case 1063:
			case 1064:
			case 1065:
			case 1066:
			case 1067:
			case 1068:
			case 1069:
			case 1070:
			case 1071:
			case 1072:
			case 1074:
			case 1075:
			case 1076:
			case 1077:
			case 1078:
			case 1079:
			case 1080:
			case 1081:
			case 1082:
			case 1083:
			case 1084:
			case 1085:
			case 1086:
			case 1087:
			case 1089:
			case 1090:
			case 1091:
			case 1092:
			case 1093:
			case 1094:
			case 1095:
			case 1096:
			case 1097:
			case 1098:
			case 1099:
			case 1100:
			case 1101:
			case 1102:
			case 1103:
			case 1104:
			case 1105:
			case 1106:
			case 1107:
			case 1108:
			case 1109:
			case 1110:
			case 1111:
			case 1112:
			case 1113:
			case 1114:
			case 1116:
			case 1117:
			case 1118:
			case 1119:
			case 1120:
			case 1121:
			case 1122:
			case 1123:
			case 1124:
			case 1125:
			case 1127:
			case 1129:
			case 1130:
			case 1131:
			case 1132:
			case 1133:
			case 1134:
			case 1135:
			case 1136:
			case 1137:
			case 1138:
			case 1139:
			case 1140:
			case 1142:
			case 1143:
			case 1144:
			case 1145:
			case 1146:
			case 1147:
			case 1148:
			case 1149:
			case 1150:
			case 1151:
			case 1152:
			case 1153:
			case 1154:
			case 1155:
			case 1156:
			case 1157:
			case 1158:
			case 1159:
			case 1160:
			case 1161:
			case 1162:
			case 1163:
			case 1164:
			case 1165:
			case 1166:
			case 1167:
			case 1169:
			case 1170:
			case 1171:
			case 1173:
			case 1174:
			case 1175:
			case 1176:
			case 1177:
			case 1178:
			case 1179:
			case 1180:
			case 1181:
			case 1182:
			case 1183:
			case 1184:
			case 1185:
			case 1186:
			case 1187:
			case 1188:
			case 1189:
			case 1190:
			case 1191:
			case 1192:
			case 1193:
			case 1194:
			case 1195:
			case 1197:
			case 1198:
			case 1199:
			case 1200:
			case 1201:
			case 1202:
			case 1203:
			case 1204:
			case 1205:
			case 1206:
			case 1207:
			case 1208:
			case 1209:
			case 1210:
			case 1211:
			case 1212:
			case 1213:
			case 1214:
			case 1215:
			case 1216:
			case 1217:
			case 1218:
			case 1219:
			case 1220:
			case 1221:
			case 1222:
			case 1223:
			case 1224:
			case 1225:
			case 1226:
			case 1228:
			case 1229:
			case 1230:
			case 1231:
			case 1232:
			case 1236:
			case 1237:
			case 1241:
			case 1242:
			case 1243:
			case 1244:
			case 1245:
			case 1246:
			case 1247:
			case 1248:
			case 1249:
			case 1250:
			case 1252:
			case 1253:
			case 1254:
			case 1255:
			case 1256:
			case 1257:
			case 1258:
			case 1259:
			case 1260:
			case 1261:
			case 1262:
			case 1263:
			case 1264:
			case 1265:
			case 1266:
			case 1267:
			case 1268:
			case 1269:
			case 1270:
			case 1271:
			case 1272:
			case 1273:
			case 1274:
			case 1275:
			case 1276:
			case 1277:
			case 1278:
			case 1279:
			case 1280:
			case 1281:
			case 1282:
			case 1283:
			case 1284:
			case 1285:
			case 1286:
			case 1287:
			case 1288:
			case 1289:
			case 1290:
			case 1291:
			case 1292:
			case 1293:
			case 1294:
			case 1295:
			case 1296:
			case 1297:
			case 1298:
			case 1299:
			case 1300:
			case 1301:
			case 1302:
			case 1303:
			case 1304:
			case 1305:
			case 1306:
			case 1307:
			case 1308:
			case 1309:
			case 1310:
			case 1311:
			case 1312:
			case 1313:
			case 1314:
			case 1315:
			case 1316:
			case 1317:
			case 1318:
			case 1319:
			case 1320:
			case 1321:
			case 1322:
			case 1323:
			case 1325:
			case 1326:
			case 1327:
			case 1328:
			case 1329:
			case 1330:
			case 1331:
			case 1332:
			case 1333:
			case 1334:
			case 1335:
			case 1336:
			case 1337:
			case 1338:
			case 1339:
			case 1340:
			case 1341:
			case 1342:
			case 1343:
			case 1344:
			case 1345:
			case 1346:
			case 1347:
			case 1348:
			case 1349:
			case 1350:
			case 1351:
			case 1352:
			case 1353:
			case 1354:
			case 1355:
			case 1356:
			case 1357:
			case 1358:
			case 1359:
			case 1360:
			case 1361:
			case 1362:
			case 1363:
			case 1364:
			case 1365:
			case 1366:
			case 1367:
			case 1368:
			case 1369:
			case 1370:
			case 1371:
			case 1372:
			case 1373:
			case 1374:
			case 1375:
			case 1376:
			case 1377:
			case 1378:
			case 1379:
			case 1380:
			case 1381:
			case 1382:
			case 1383:
			case 1384:
			case 1385:
			case 1386:
			case 1387:
			case 1388:
			case 1389:
			case 1390:
			case 1391:
			case 1392:
			case 1393:
			case 1394:
			case 1395:
			case 1396:
			case 1397:
			case 1399:
			case 1400:
			case 1401:
			case 1402:
			case 1403:
			case 1404:
			case 1405:
			case 1406:
			case 1407:
			case 1408:
			case 1409:
			case 1410:
			case 1411:
			case 1412:
			case 1413:
			case 1414:
			case 1416:
			case 1417:
			case 1418:
			case 1419:
			case 1420:
			case 1421:
			case 1422:
			case 1423:
			case 1424:
			case 1425:
			case 1426:
			case 1427:
			case 1428:
			case 1429:
			case 1430:
			case 1431:
			case 1432:
			case 1433:
			case 1435:
			case 1436:
			case 1437:
			case 1438:
			case 1439:
			case 1440:
			case 1441:
			case 1442:
			case 1443:
			case 1444:
			case 1445:
			case 1446:
			case 1447:
			case 1448:
			case 1449:
			case 1450:
			case 1451:
			case 1452:
			case 1453:
			case 1454:
			case 1455:
			case 1456:
			case 1457:
			case 1458:
			case 1459:
			case 1460:
			case 1461:
			case 1462:
			case 1463:
			case 1464:
			case 1465:
			case 1466:
			case 1467:
			case 1468:
			case 1469:
			case 1470:
			case 1471:
			case 1472:
			case 1473:
			case 1474:
			case 1475:
			case 1476:
			case 1477:
			case 1478:
			case 1479:
			case 1480:
			case 1481:
			case 1482:
			case 1483:
			case 1484:
			case 1485:
			case 1486:
			case 1487:
			case 1488:
			case 1489:
			case 1491:
			case 1492:
			case 1493:
			case 1494:
			case 1495:
			case 1496:
			case 1497:
			case 1499:
			case 1500:
			case 1501:
			case 1502:
			case 1503:
			case 1504:
			case 1505:
			case 1506:
			case 1507:
			case 1508:
			case 1509:
			case 1510:
			case 1511:
			case 1512:
			case 1513:
			case 1514:
			case 1515:
			case 1516:
			case 1518:
			case 1519:
			case 1520:
			case 1521:
			case 1522:
			case 1523:
			case 1524:
			case 1525:
			case 1526:
			case 1527:
			case 1528:
			case 1529:
			case 1530:
			case 1531:
			case 1532:
			case 1533:
			case 1534:
			case 1536:
			case 1537:
			case 1538:
			case 1539:
			case 1540:
			case 1541:
			case 1542:
			case 1543:
			case 1544:
			case 1545:
			case 1546:
			case 1547:
			case 1548:
			case 1549:
			case 1550:
			case 1551:
			case 1552:
			case 1553:
			case 1554:
			case 1555:
			case 1556:
			case 1557:
			case 1558:
			case 1559:
			case 1560:
			case 1561:
			case 1562:
			case 1563:
			case 1564:
			case 1565:
			case 1566:
			case 1567:
			case 1568:
			case 1570:
			case 1571:
			case 1572:
			case 1573:
			case 1574:
			case 1575:
			case 1576:
			case 1577:
			case 1578:
			case 1579:
			case 1580:
			case 1581:
			case 1582:
			case 1583:
			case 1584:
			case 1585:
			case 1586:
			case 1587:
			case 1588:
			case 1589:
			case 1590:
			case 1591:
			case 1592:
			case 1593:
			case 1594:
			case 1595:
			case 1596:
			case 1597:
			case 1598:
			case 1599:
			case 1600:
			case 1601:
			case 1602:
			case 1603:
			case 1604:
			case 1605:
			case 1606:
			case 1607:
			case 1608:
			case 1609:
			case 1610:
			case 1611:
			case 1612:
			case 1613:
			case 1614:
			case 1615:
			case 1616:
			case 1617:
			case 1618:
			case 1619:
			case 1620:
			case 1621:
			case 1622:
			case 1623:
			case 1624:
			case 1625:
			case 1626:
			case 1628:
			case 1629:
			case 1630:
			case 1631:
			case 1632:
			case 1633:
			case 1634:
			case 1635:
			case 1636:
			case 1637:
			case 1638:
			case 1639:
			case 1640:
			case 1641:
			case 1642:
			case 1643:
			case 1644:
			case 1645:
			case 1646:
			case 1647:
			case 1648:
			case 1649:
			case 1650:
			case 1651:
			case 1652:
			case 1653:
			case 1654:
			case 1655:
			case 1656:
			case 1657:
			case 1658:
			case 1659:
			case 1660:
			case 1661:
			case 1662:
			case 1663:
			case 1664:
			case 1665:
			case 1666:
			case 1667:
			case 1668:
			case 1669:
			case 1670:
			case 1671:
			case 1672:
			case 1673:
			case 1674:
			case 1675:
			case 1676:
			case 1677:
			case 1678:
			case 1679:
			case 1680:
			case 1681:
			case 1682:
			case 1683:
			case 1684:
			case 1685:
			case 1686:
			case 1687:
			case 1688:
			case 1689:
			case 1690:
			case 1691:
			case 1692:
			case 1693:
			case 1694:
			case 1695:
			case 1696:
			case 1697:
			case 1698:
			case 1699:
			case 1700:
			case 1701:
			case 1702:
			case 1703:
			case 1704:
			case 1705:
			case 1706:
			case 1707:
			case 1708:
			case 1709:
			case 1710:
			case 1711:
			case 1712:
			case 1713:
			case 1714:
			case 1715:
			case 1716:
			case 1717:
			case 1718:
			case 1719:
			case 1720:
			case 1721:
			case 1722:
			case 1723:
			case 1724:
			case 1725:
			case 1726:
			case 1727:
			case 1728:
			case 1729:
			case 1730:
			case 1731:
			case 1732:
			case 1733:
			case 1734:
			case 1735:
			case 1736:
			case 1737:
			case 1738:
			case 1739:
			case 1740:
			case 1741:
			case 1742:
			case 1743:
			case 1744:
			case 1745:
			case 1746:
			case 1747:
			case 1748:
			case 1749:
			case 1750:
			case 1751:
			case 1752:
			case 1753:
			case 1754:
			case 1755:
			case 1756:
			case 1757:
			case 1758:
			case 1759:
			case 1760:
			case 1761:
			case 1762:
			case 1763:
			case 1764:
			case 1765:
			case 1766:
			case 1767:
			case 1768:
			case 1769:
			case 1770:
			case 1771:
			case 1772:
			case 1773:
			case 1774:
			case 1775:
			case 1776:
			case 1777:
			case 1778:
			case 1779:
			case 1780:
			case 1781:
			case 1782:
			case 1783:
			case 1784:
			case 1785:
			case 1786:
			case 1787:
			case 1788:
			case 1789:
			case 1790:
			case 1791:
			case 1792:
			case 1793:
			case 1794:
			case 1795:
			case 1796:
			case 1797:
			case 1798:
			case 1799:
			case 1800:
			case 1801:
			case 1802:
			case 1803:
			case 1804:
			case 1805:
			case 1806:
			case 1807:
			case 1808:
			case 1809:
			case 1810:
			case 1811:
			case 1812:
			case 1813:
			case 1814:
			case 1815:
			case 1816:
			case 1817:
			case 1818:
			case 1819:
			case 1820:
			case 1821:
			case 1822:
			case 1823:
			case 1824:
			case 1825:
			case 1826:
			case 1827:
			case 1828:
			case 1829:
			case 1830:
			case 1831:
			case 1832:
			case 1833:
			case 1834:
			case 1835:
			case 1836:
			case 1837:
			case 1838:
			case 1839:
			case 1840:
			case 1841:
			case 1842:
			case 1843:
			case 1844:
			case 1845:
			case 1846:
			case 1847:
			case 1848:
			case 1849:
			case 1850:
			case 1851:
			case 1852:
			case 1853:
			case 1854:
			case 1855:
			case 1856:
			case 1857:
			case 1858:
			case 1859:
			case 1860:
			case 1861:
			case 1862:
			case 1863:
			case 1864:
			case 1865:
			case 1866:
			case 1867:
			case 1868:
			case 1869:
			case 1870:
			case 1871:
			case 1872:
			case 1873:
			case 1874:
			case 1875:
			case 1876:
			case 1877:
			case 1878:
			case 1879:
			case 1880:
			case 1881:
			case 1882:
			case 1883:
			case 1884:
			case 1885:
			case 1886:
			case 1887:
			case 1888:
			case 1889:
			case 1890:
			case 1891:
			case 1892:
			case 1893:
			case 1894:
			case 1895:
			case 1896:
			case 1897:
			case 1898:
			case 1899:
			case 1900:
			case 1901:
			case 1902:
			case 1903:
			case 1904:
			case 1905:
			case 1906:
			case 1907:
			case 1908:
			case 1909:
			case 1910:
			case 1911:
			case 1912:
			case 1913:
			case 1914:
			case 1915:
			case 1916:
			case 1917:
			case 1918:
			case 1919:
			case 1920:
			case 1921:
			case 1922:
			case 1923:
			case 1924:
			case 1925:
			case 1926:
			case 1927:
			case 1928:
			case 1929:
			case 1930:
			case 1931:
			case 1932:
			case 1933:
			case 1934:
			case 1935:
			case 1936:
			case 1937:
			case 1939:
			case 1940:
			case 1941:
			case 1942:
			case 1943:
			case 1944:
			case 1945:
			case 1946:
			case 1947:
			case 1948:
			case 1949:
			case 1950:
			case 1951:
			case 1952:
			case 1953:
			case 1954:
			case 1955:
			case 1956:
			case 1957:
			case 1958:
			case 1959:
			case 1960:
			case 1961:
			case 1962:
			case 1963:
			case 1965:
			case 1966:
			case 1967:
			case 1968:
			case 1969:
			case 1970:
			case 1971:
			case 1972:
			case 1973:
			case 1974:
			case 1975:
			case 1976:
			case 1977:
			case 1978:
			case 1979:
			case 1980:
			case 1981:
			case 1982:
			case 1983:
			case 1984:
			case 1985:
			case 1986:
			case 1987:
			case 1988:
			case 1989:
			case 1990:
			case 1991:
			case 1992:
			case 1993:
			case 1994:
			case 1995:
			case 1996:
			case 1997:
			case 1998:
			case 1999:
			case 2000:
			case 2003:
			case 2004:
			case 2005:
			case 2006:
			case 2007:
			case 2008:
			case 2009:
			case 2010:
			case 2011:
			case 2012:
			case 2013:
			case 2014:
			case 2015:
			case 2016:
			case 2017:
			case 2018:
			case 2019:
			case 2020:
			case 2021:
			case 2022:
			case 2023:
			case 2024:
			case 2026:
			case 2027:
			case 2028:
			case 2029:
			case 2030:
			case 2031:
			case 2032:
			case 2033:
			case 2034:
			case 2035:
			case 2036:
			case 2037:
			case 2038:
			case 2039:
			case 2040:
			case 2041:
			case 2042:
			case 2043:
			case 2044:
			case 2045:
			case 2046:
			case 2047:
			case 2048:
			case 2049:
			case 2050:
			case 2051:
			case 2052:
			case 2053:
			case 2054:
			case 2055:
			case 2056:
			case 2057:
			case 2058:
			case 2059:
			case 2060:
			case 2061:
			case 2062:
			case 2063:
			case 2064:
			case 2065:
			case 2066:
			case 2067:
			case 2068:
			case 2069:
			case 2070:
			case 2071:
			case 2072:
			case 2074:
			case 2075:
			case 2076:
			case 2077:
			case 2078:
			case 2079:
			case 2080:
			case 2081:
			case 2082:
			case 2083:
			case 2084:
			case 2085:
			case 2086:
			case 2087:
			case 2088:
			case 2089:
			case 2090:
			case 2091:
			case 2092:
			case 2093:
			case 2094:
			case 2095:
			case 2096:
			case 2097:
			case 2098:
			case 2100:
			case 2101:
			case 2102:
			case 2103:
			case 2104:
			case 2105:
			case 2106:
			case 2107:
			case 2108:
			case 2109:
			case 2110:
			case 2111:
			case 2112:
			case 2113:
			case 2115:
			case 2116:
			case 2117:
			case 2118:
			case 2119:
			case 2120:
			case 2122:
			case 2123:
			case 2124:
			case 2125:
			case 2126:
			case 2128:
			case 2129:
			case 2130:
			case 2131:
			case 2132:
			case 2133:
			case 2134:
			case 2135:
			case 2136:
			case 2137:
			case 2138:
			case 2139:
			case 2140:
			case 2141:
			case 2142:
			case 2143:
			case 2145:
			case 2146:
			case 2147:
			case 2148:
			case 2149:
			case 2150:
			case 2151:
			case 2152:
			case 2153:
			case 2154:
			case 2155:
			case 2156:
			case 2157:
			case 2158:
			case 2159:
			case 2160:
			case 2161:
			case 2162:
			case 2163:
			case 2164:
			case 2165:
			case 2166:
			case 2168:
			case 2169:
			case 2170:
			case 2171:
			case 2172:
			case 2173:
			case 2174:
			case 2175:
			case 2176:
			case 2177:
			case 2178:
			case 2179:
			case 2180:
			case 2181:
			case 2182:
			case 2183:
			case 2184:
			case 2185:
			case 2186:
			case 2187:
			case 2188:
			case 2189:
			case 2190:
			case 2191:
			case 2192:
			case 2193:
			case 2194:
			case 2195:
			case 2196:
			case 2197:
			case 2198:
			case 2199:
			case 2200:
			case 2201:
			case 2202:
			case 2203:
			case 2204:
			case 2205:
			case 2206:
			case 2207:
			case 2208:
			case 2209:
			case 2210:
			case 2211:
			case 2212:
			case 2216:
			case 2217:
			case 2218:
			case 2219:
			case 2220:
			case 2223:
			case 2227:
			case 2228:
			case 2233:
			case 2240:
			case 2246:
			case 2252:
				{
				this.state = 10768;
				this.windowing_elements();
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public windowing_type(): Windowing_typeContext {
		let localctx: Windowing_typeContext = new Windowing_typeContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1308, PlSqlParser.RULE_windowing_type);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 10771;
			_la = this._input.LA(1);
			if(!(_la===1344 || _la===1452)) {
			this._errHandler.recoverInline(this);
			}
			else {
				this._errHandler.reportMatch(this);
			    this.consume();
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public windowing_elements(): Windowing_elementsContext {
		let localctx: Windowing_elementsContext = new Windowing_elementsContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1310, PlSqlParser.RULE_windowing_elements);
		let _la: number;
		try {
			this.state = 10780;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1472, this._ctx) ) {
			case 1:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 10773;
				this.match(PlSqlParser.UNBOUNDED);
				this.state = 10774;
				this.match(PlSqlParser.PRECEDING);
				}
				break;
			case 2:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 10775;
				this.match(PlSqlParser.CURRENT);
				this.state = 10776;
				this.match(PlSqlParser.ROW);
				}
				break;
			case 3:
				this.enterOuterAlt(localctx, 3);
				{
				this.state = 10777;
				this.concatenation(0);
				this.state = 10778;
				_la = this._input.LA(1);
				if(!(_la===539 || _la===1290)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				}
				break;
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public using_clause(): Using_clauseContext {
		let localctx: Using_clauseContext = new Using_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1312, PlSqlParser.RULE_using_clause);
		try {
			let _alt: number;
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 10782;
			this.match(PlSqlParser.USING);
			this.state = 10792;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 2226:
				{
				this.state = 10783;
				this.match(PlSqlParser.ASTERISK);
				}
				break;
			case 1:
			case 2:
			case 3:
			case 4:
			case 5:
			case 6:
			case 7:
			case 8:
			case 9:
			case 10:
			case 11:
			case 12:
			case 13:
			case 14:
			case 15:
			case 16:
			case 17:
			case 18:
			case 19:
			case 20:
			case 21:
			case 22:
			case 23:
			case 24:
			case 25:
			case 26:
			case 27:
			case 28:
			case 29:
			case 30:
			case 31:
			case 32:
			case 33:
			case 34:
			case 35:
			case 36:
			case 37:
			case 38:
			case 40:
			case 41:
			case 42:
			case 44:
			case 45:
			case 46:
			case 47:
			case 48:
			case 49:
			case 50:
			case 51:
			case 52:
			case 53:
			case 54:
			case 55:
			case 56:
			case 57:
			case 58:
			case 59:
			case 60:
			case 63:
			case 64:
			case 65:
			case 66:
			case 67:
			case 68:
			case 69:
			case 70:
			case 71:
			case 72:
			case 73:
			case 74:
			case 75:
			case 76:
			case 78:
			case 79:
			case 80:
			case 81:
			case 82:
			case 83:
			case 85:
			case 86:
			case 87:
			case 88:
			case 89:
			case 90:
			case 91:
			case 92:
			case 93:
			case 95:
			case 96:
			case 97:
			case 98:
			case 99:
			case 100:
			case 101:
			case 102:
			case 103:
			case 104:
			case 105:
			case 106:
			case 108:
			case 109:
			case 110:
			case 111:
			case 112:
			case 113:
			case 114:
			case 115:
			case 116:
			case 117:
			case 118:
			case 119:
			case 120:
			case 121:
			case 122:
			case 123:
			case 124:
			case 125:
			case 126:
			case 127:
			case 128:
			case 129:
			case 130:
			case 131:
			case 132:
			case 133:
			case 134:
			case 135:
			case 136:
			case 137:
			case 138:
			case 139:
			case 140:
			case 141:
			case 142:
			case 143:
			case 144:
			case 145:
			case 147:
			case 148:
			case 149:
			case 150:
			case 151:
			case 152:
			case 153:
			case 154:
			case 155:
			case 156:
			case 157:
			case 158:
			case 160:
			case 161:
			case 162:
			case 163:
			case 164:
			case 165:
			case 166:
			case 167:
			case 168:
			case 169:
			case 170:
			case 171:
			case 172:
			case 174:
			case 175:
			case 176:
			case 177:
			case 178:
			case 179:
			case 181:
			case 182:
			case 183:
			case 184:
			case 185:
			case 186:
			case 187:
			case 188:
			case 189:
			case 190:
			case 191:
			case 192:
			case 193:
			case 194:
			case 195:
			case 196:
			case 197:
			case 198:
			case 199:
			case 200:
			case 201:
			case 202:
			case 203:
			case 204:
			case 205:
			case 206:
			case 207:
			case 208:
			case 209:
			case 210:
			case 211:
			case 212:
			case 213:
			case 214:
			case 215:
			case 216:
			case 217:
			case 218:
			case 219:
			case 220:
			case 221:
			case 222:
			case 223:
			case 224:
			case 225:
			case 226:
			case 227:
			case 228:
			case 229:
			case 230:
			case 231:
			case 233:
			case 234:
			case 235:
			case 236:
			case 237:
			case 238:
			case 239:
			case 240:
			case 241:
			case 242:
			case 243:
			case 244:
			case 245:
			case 246:
			case 247:
			case 248:
			case 249:
			case 250:
			case 252:
			case 253:
			case 254:
			case 255:
			case 256:
			case 257:
			case 258:
			case 259:
			case 260:
			case 261:
			case 262:
			case 263:
			case 264:
			case 265:
			case 266:
			case 267:
			case 268:
			case 269:
			case 270:
			case 271:
			case 272:
			case 273:
			case 274:
			case 275:
			case 276:
			case 277:
			case 278:
			case 279:
			case 280:
			case 281:
			case 282:
			case 283:
			case 284:
			case 285:
			case 286:
			case 287:
			case 289:
			case 290:
			case 291:
			case 292:
			case 293:
			case 294:
			case 295:
			case 296:
			case 297:
			case 298:
			case 299:
			case 300:
			case 301:
			case 302:
			case 303:
			case 304:
			case 305:
			case 306:
			case 307:
			case 308:
			case 309:
			case 310:
			case 311:
			case 312:
			case 313:
			case 314:
			case 315:
			case 316:
			case 317:
			case 318:
			case 319:
			case 321:
			case 322:
			case 323:
			case 324:
			case 325:
			case 326:
			case 327:
			case 328:
			case 329:
			case 330:
			case 331:
			case 332:
			case 333:
			case 334:
			case 335:
			case 336:
			case 337:
			case 338:
			case 339:
			case 340:
			case 341:
			case 342:
			case 343:
			case 344:
			case 345:
			case 346:
			case 347:
			case 348:
			case 349:
			case 350:
			case 351:
			case 352:
			case 353:
			case 354:
			case 355:
			case 356:
			case 357:
			case 358:
			case 359:
			case 360:
			case 361:
			case 362:
			case 363:
			case 364:
			case 365:
			case 366:
			case 367:
			case 368:
			case 369:
			case 370:
			case 372:
			case 373:
			case 374:
			case 375:
			case 376:
			case 377:
			case 378:
			case 379:
			case 380:
			case 381:
			case 382:
			case 383:
			case 384:
			case 385:
			case 386:
			case 387:
			case 388:
			case 389:
			case 390:
			case 391:
			case 392:
			case 394:
			case 395:
			case 396:
			case 397:
			case 398:
			case 399:
			case 400:
			case 401:
			case 402:
			case 403:
			case 404:
			case 405:
			case 406:
			case 407:
			case 408:
			case 409:
			case 410:
			case 412:
			case 413:
			case 414:
			case 415:
			case 417:
			case 418:
			case 419:
			case 420:
			case 421:
			case 422:
			case 423:
			case 424:
			case 425:
			case 426:
			case 427:
			case 428:
			case 429:
			case 430:
			case 431:
			case 434:
			case 435:
			case 436:
			case 437:
			case 438:
			case 439:
			case 440:
			case 441:
			case 442:
			case 443:
			case 444:
			case 446:
			case 447:
			case 448:
			case 449:
			case 450:
			case 451:
			case 452:
			case 453:
			case 454:
			case 455:
			case 456:
			case 457:
			case 458:
			case 459:
			case 460:
			case 461:
			case 462:
			case 463:
			case 464:
			case 465:
			case 466:
			case 467:
			case 468:
			case 469:
			case 470:
			case 471:
			case 472:
			case 473:
			case 475:
			case 476:
			case 477:
			case 478:
			case 479:
			case 480:
			case 481:
			case 482:
			case 483:
			case 484:
			case 485:
			case 486:
			case 487:
			case 488:
			case 489:
			case 490:
			case 491:
			case 492:
			case 493:
			case 494:
			case 495:
			case 496:
			case 497:
			case 498:
			case 499:
			case 500:
			case 501:
			case 502:
			case 503:
			case 504:
			case 505:
			case 506:
			case 507:
			case 508:
			case 509:
			case 510:
			case 511:
			case 512:
			case 513:
			case 514:
			case 515:
			case 516:
			case 517:
			case 518:
			case 519:
			case 520:
			case 521:
			case 522:
			case 523:
			case 524:
			case 525:
			case 526:
			case 527:
			case 528:
			case 529:
			case 530:
			case 531:
			case 532:
			case 533:
			case 534:
			case 535:
			case 536:
			case 537:
			case 538:
			case 539:
			case 540:
			case 541:
			case 542:
			case 543:
			case 544:
			case 545:
			case 547:
			case 548:
			case 549:
			case 550:
			case 551:
			case 552:
			case 553:
			case 555:
			case 556:
			case 557:
			case 558:
			case 559:
			case 560:
			case 561:
			case 562:
			case 563:
			case 564:
			case 565:
			case 566:
			case 567:
			case 568:
			case 569:
			case 572:
			case 574:
			case 575:
			case 576:
			case 577:
			case 578:
			case 579:
			case 580:
			case 581:
			case 582:
			case 583:
			case 584:
			case 586:
			case 587:
			case 588:
			case 589:
			case 590:
			case 591:
			case 592:
			case 593:
			case 594:
			case 595:
			case 596:
			case 597:
			case 598:
			case 599:
			case 600:
			case 602:
			case 603:
			case 604:
			case 605:
			case 606:
			case 607:
			case 608:
			case 609:
			case 610:
			case 611:
			case 612:
			case 613:
			case 614:
			case 615:
			case 616:
			case 617:
			case 618:
			case 619:
			case 620:
			case 621:
			case 622:
			case 623:
			case 624:
			case 625:
			case 626:
			case 627:
			case 628:
			case 629:
			case 630:
			case 632:
			case 633:
			case 634:
			case 635:
			case 636:
			case 637:
			case 638:
			case 639:
			case 640:
			case 641:
			case 642:
			case 643:
			case 644:
			case 645:
			case 646:
			case 647:
			case 648:
			case 649:
			case 650:
			case 651:
			case 652:
			case 653:
			case 654:
			case 655:
			case 656:
			case 657:
			case 658:
			case 659:
			case 660:
			case 661:
			case 662:
			case 663:
			case 664:
			case 665:
			case 666:
			case 667:
			case 668:
			case 670:
			case 671:
			case 672:
			case 673:
			case 674:
			case 675:
			case 676:
			case 677:
			case 678:
			case 679:
			case 680:
			case 681:
			case 682:
			case 683:
			case 684:
			case 685:
			case 686:
			case 687:
			case 689:
			case 690:
			case 692:
			case 693:
			case 694:
			case 696:
			case 697:
			case 698:
			case 699:
			case 700:
			case 701:
			case 702:
			case 703:
			case 704:
			case 705:
			case 706:
			case 707:
			case 708:
			case 709:
			case 710:
			case 711:
			case 712:
			case 713:
			case 714:
			case 715:
			case 716:
			case 717:
			case 718:
			case 719:
			case 720:
			case 721:
			case 722:
			case 723:
			case 724:
			case 725:
			case 726:
			case 727:
			case 728:
			case 729:
			case 730:
			case 731:
			case 732:
			case 733:
			case 734:
			case 735:
			case 736:
			case 737:
			case 738:
			case 739:
			case 740:
			case 741:
			case 742:
			case 743:
			case 744:
			case 745:
			case 746:
			case 747:
			case 748:
			case 749:
			case 750:
			case 751:
			case 752:
			case 753:
			case 754:
			case 755:
			case 756:
			case 758:
			case 759:
			case 760:
			case 761:
			case 762:
			case 763:
			case 764:
			case 765:
			case 766:
			case 767:
			case 768:
			case 769:
			case 770:
			case 771:
			case 772:
			case 773:
			case 774:
			case 775:
			case 777:
			case 778:
			case 779:
			case 780:
			case 781:
			case 782:
			case 783:
			case 784:
			case 785:
			case 786:
			case 787:
			case 788:
			case 789:
			case 790:
			case 791:
			case 792:
			case 793:
			case 794:
			case 795:
			case 796:
			case 797:
			case 798:
			case 799:
			case 800:
			case 801:
			case 802:
			case 803:
			case 804:
			case 805:
			case 806:
			case 807:
			case 808:
			case 809:
			case 810:
			case 811:
			case 812:
			case 813:
			case 814:
			case 815:
			case 816:
			case 817:
			case 818:
			case 819:
			case 820:
			case 821:
			case 822:
			case 823:
			case 824:
			case 825:
			case 826:
			case 827:
			case 828:
			case 829:
			case 830:
			case 831:
			case 832:
			case 833:
			case 834:
			case 835:
			case 836:
			case 837:
			case 838:
			case 839:
			case 840:
			case 841:
			case 843:
			case 844:
			case 845:
			case 846:
			case 847:
			case 848:
			case 849:
			case 850:
			case 851:
			case 852:
			case 853:
			case 854:
			case 855:
			case 856:
			case 857:
			case 858:
			case 859:
			case 861:
			case 862:
			case 863:
			case 864:
			case 865:
			case 866:
			case 867:
			case 868:
			case 869:
			case 870:
			case 871:
			case 872:
			case 873:
			case 874:
			case 875:
			case 876:
			case 877:
			case 878:
			case 879:
			case 880:
			case 881:
			case 882:
			case 883:
			case 884:
			case 885:
			case 886:
			case 888:
			case 889:
			case 890:
			case 891:
			case 892:
			case 893:
			case 894:
			case 895:
			case 896:
			case 897:
			case 898:
			case 899:
			case 900:
			case 901:
			case 902:
			case 903:
			case 904:
			case 905:
			case 906:
			case 907:
			case 908:
			case 909:
			case 910:
			case 911:
			case 912:
			case 913:
			case 914:
			case 915:
			case 916:
			case 917:
			case 918:
			case 919:
			case 920:
			case 921:
			case 922:
			case 923:
			case 924:
			case 925:
			case 926:
			case 927:
			case 928:
			case 929:
			case 930:
			case 931:
			case 932:
			case 933:
			case 934:
			case 935:
			case 936:
			case 937:
			case 938:
			case 939:
			case 940:
			case 941:
			case 942:
			case 943:
			case 944:
			case 945:
			case 946:
			case 947:
			case 948:
			case 949:
			case 950:
			case 951:
			case 952:
			case 954:
			case 955:
			case 956:
			case 957:
			case 958:
			case 959:
			case 960:
			case 961:
			case 962:
			case 963:
			case 964:
			case 965:
			case 966:
			case 967:
			case 968:
			case 969:
			case 970:
			case 971:
			case 972:
			case 973:
			case 974:
			case 975:
			case 976:
			case 977:
			case 978:
			case 979:
			case 980:
			case 981:
			case 982:
			case 983:
			case 984:
			case 985:
			case 986:
			case 987:
			case 988:
			case 989:
			case 990:
			case 991:
			case 992:
			case 993:
			case 994:
			case 995:
			case 996:
			case 997:
			case 998:
			case 999:
			case 1000:
			case 1001:
			case 1002:
			case 1003:
			case 1004:
			case 1005:
			case 1006:
			case 1007:
			case 1008:
			case 1009:
			case 1010:
			case 1011:
			case 1012:
			case 1013:
			case 1014:
			case 1015:
			case 1016:
			case 1017:
			case 1018:
			case 1019:
			case 1020:
			case 1021:
			case 1022:
			case 1023:
			case 1024:
			case 1025:
			case 1026:
			case 1027:
			case 1028:
			case 1029:
			case 1030:
			case 1031:
			case 1032:
			case 1033:
			case 1034:
			case 1035:
			case 1036:
			case 1037:
			case 1038:
			case 1039:
			case 1040:
			case 1041:
			case 1042:
			case 1043:
			case 1044:
			case 1045:
			case 1046:
			case 1047:
			case 1048:
			case 1049:
			case 1050:
			case 1051:
			case 1052:
			case 1053:
			case 1054:
			case 1055:
			case 1056:
			case 1057:
			case 1058:
			case 1059:
			case 1060:
			case 1061:
			case 1062:
			case 1063:
			case 1064:
			case 1065:
			case 1066:
			case 1067:
			case 1068:
			case 1069:
			case 1070:
			case 1071:
			case 1072:
			case 1073:
			case 1074:
			case 1075:
			case 1076:
			case 1077:
			case 1078:
			case 1079:
			case 1080:
			case 1081:
			case 1082:
			case 1083:
			case 1084:
			case 1085:
			case 1086:
			case 1087:
			case 1089:
			case 1090:
			case 1091:
			case 1092:
			case 1093:
			case 1094:
			case 1095:
			case 1096:
			case 1097:
			case 1098:
			case 1099:
			case 1100:
			case 1101:
			case 1102:
			case 1103:
			case 1104:
			case 1105:
			case 1106:
			case 1107:
			case 1108:
			case 1109:
			case 1110:
			case 1111:
			case 1112:
			case 1113:
			case 1114:
			case 1116:
			case 1117:
			case 1118:
			case 1119:
			case 1120:
			case 1121:
			case 1122:
			case 1123:
			case 1124:
			case 1125:
			case 1127:
			case 1129:
			case 1130:
			case 1131:
			case 1132:
			case 1133:
			case 1134:
			case 1135:
			case 1136:
			case 1137:
			case 1138:
			case 1139:
			case 1140:
			case 1142:
			case 1143:
			case 1144:
			case 1145:
			case 1146:
			case 1147:
			case 1148:
			case 1149:
			case 1150:
			case 1151:
			case 1152:
			case 1153:
			case 1154:
			case 1155:
			case 1156:
			case 1157:
			case 1158:
			case 1159:
			case 1160:
			case 1161:
			case 1162:
			case 1163:
			case 1164:
			case 1165:
			case 1166:
			case 1167:
			case 1169:
			case 1170:
			case 1171:
			case 1173:
			case 1174:
			case 1175:
			case 1176:
			case 1177:
			case 1178:
			case 1179:
			case 1180:
			case 1181:
			case 1182:
			case 1183:
			case 1184:
			case 1185:
			case 1186:
			case 1187:
			case 1188:
			case 1189:
			case 1190:
			case 1191:
			case 1192:
			case 1193:
			case 1194:
			case 1195:
			case 1197:
			case 1198:
			case 1199:
			case 1200:
			case 1201:
			case 1202:
			case 1203:
			case 1204:
			case 1205:
			case 1206:
			case 1207:
			case 1208:
			case 1209:
			case 1210:
			case 1211:
			case 1212:
			case 1213:
			case 1214:
			case 1215:
			case 1216:
			case 1217:
			case 1218:
			case 1219:
			case 1220:
			case 1221:
			case 1222:
			case 1223:
			case 1224:
			case 1225:
			case 1226:
			case 1228:
			case 1229:
			case 1230:
			case 1231:
			case 1232:
			case 1236:
			case 1237:
			case 1241:
			case 1242:
			case 1243:
			case 1244:
			case 1245:
			case 1246:
			case 1247:
			case 1248:
			case 1249:
			case 1250:
			case 1252:
			case 1253:
			case 1254:
			case 1255:
			case 1256:
			case 1257:
			case 1258:
			case 1259:
			case 1260:
			case 1261:
			case 1262:
			case 1263:
			case 1264:
			case 1265:
			case 1266:
			case 1267:
			case 1268:
			case 1269:
			case 1270:
			case 1271:
			case 1272:
			case 1273:
			case 1274:
			case 1275:
			case 1276:
			case 1277:
			case 1278:
			case 1279:
			case 1280:
			case 1281:
			case 1282:
			case 1283:
			case 1284:
			case 1285:
			case 1286:
			case 1287:
			case 1288:
			case 1289:
			case 1290:
			case 1291:
			case 1292:
			case 1293:
			case 1294:
			case 1295:
			case 1296:
			case 1297:
			case 1298:
			case 1299:
			case 1300:
			case 1301:
			case 1302:
			case 1303:
			case 1304:
			case 1305:
			case 1306:
			case 1307:
			case 1308:
			case 1309:
			case 1310:
			case 1311:
			case 1312:
			case 1313:
			case 1314:
			case 1315:
			case 1316:
			case 1317:
			case 1318:
			case 1319:
			case 1320:
			case 1321:
			case 1322:
			case 1323:
			case 1325:
			case 1326:
			case 1327:
			case 1328:
			case 1329:
			case 1330:
			case 1331:
			case 1332:
			case 1333:
			case 1334:
			case 1335:
			case 1336:
			case 1337:
			case 1338:
			case 1339:
			case 1340:
			case 1341:
			case 1342:
			case 1343:
			case 1344:
			case 1345:
			case 1346:
			case 1347:
			case 1348:
			case 1349:
			case 1350:
			case 1351:
			case 1352:
			case 1353:
			case 1354:
			case 1355:
			case 1356:
			case 1357:
			case 1358:
			case 1359:
			case 1360:
			case 1361:
			case 1362:
			case 1363:
			case 1364:
			case 1365:
			case 1366:
			case 1367:
			case 1368:
			case 1369:
			case 1370:
			case 1371:
			case 1372:
			case 1373:
			case 1374:
			case 1375:
			case 1376:
			case 1377:
			case 1378:
			case 1379:
			case 1380:
			case 1381:
			case 1382:
			case 1383:
			case 1384:
			case 1385:
			case 1386:
			case 1387:
			case 1388:
			case 1389:
			case 1390:
			case 1391:
			case 1392:
			case 1393:
			case 1394:
			case 1395:
			case 1396:
			case 1397:
			case 1399:
			case 1400:
			case 1401:
			case 1402:
			case 1403:
			case 1404:
			case 1405:
			case 1406:
			case 1407:
			case 1408:
			case 1409:
			case 1410:
			case 1411:
			case 1412:
			case 1413:
			case 1414:
			case 1416:
			case 1417:
			case 1418:
			case 1419:
			case 1420:
			case 1421:
			case 1422:
			case 1423:
			case 1424:
			case 1425:
			case 1426:
			case 1427:
			case 1428:
			case 1429:
			case 1430:
			case 1431:
			case 1432:
			case 1433:
			case 1435:
			case 1436:
			case 1437:
			case 1438:
			case 1439:
			case 1440:
			case 1441:
			case 1442:
			case 1443:
			case 1444:
			case 1445:
			case 1446:
			case 1447:
			case 1448:
			case 1449:
			case 1450:
			case 1451:
			case 1452:
			case 1453:
			case 1454:
			case 1455:
			case 1456:
			case 1457:
			case 1458:
			case 1459:
			case 1460:
			case 1461:
			case 1462:
			case 1463:
			case 1464:
			case 1465:
			case 1466:
			case 1467:
			case 1468:
			case 1469:
			case 1470:
			case 1471:
			case 1472:
			case 1473:
			case 1474:
			case 1475:
			case 1476:
			case 1477:
			case 1478:
			case 1479:
			case 1480:
			case 1481:
			case 1482:
			case 1483:
			case 1484:
			case 1485:
			case 1486:
			case 1487:
			case 1488:
			case 1489:
			case 1491:
			case 1492:
			case 1493:
			case 1494:
			case 1495:
			case 1496:
			case 1497:
			case 1499:
			case 1500:
			case 1501:
			case 1502:
			case 1503:
			case 1504:
			case 1505:
			case 1506:
			case 1507:
			case 1508:
			case 1509:
			case 1510:
			case 1511:
			case 1512:
			case 1513:
			case 1514:
			case 1515:
			case 1516:
			case 1518:
			case 1519:
			case 1520:
			case 1521:
			case 1522:
			case 1523:
			case 1524:
			case 1525:
			case 1526:
			case 1527:
			case 1528:
			case 1529:
			case 1530:
			case 1531:
			case 1532:
			case 1533:
			case 1534:
			case 1536:
			case 1537:
			case 1538:
			case 1539:
			case 1540:
			case 1541:
			case 1542:
			case 1543:
			case 1544:
			case 1545:
			case 1546:
			case 1547:
			case 1548:
			case 1549:
			case 1550:
			case 1551:
			case 1552:
			case 1553:
			case 1554:
			case 1555:
			case 1556:
			case 1557:
			case 1558:
			case 1559:
			case 1560:
			case 1561:
			case 1562:
			case 1563:
			case 1564:
			case 1565:
			case 1566:
			case 1567:
			case 1568:
			case 1570:
			case 1571:
			case 1572:
			case 1573:
			case 1574:
			case 1575:
			case 1576:
			case 1577:
			case 1578:
			case 1579:
			case 1580:
			case 1581:
			case 1582:
			case 1583:
			case 1584:
			case 1585:
			case 1586:
			case 1587:
			case 1588:
			case 1589:
			case 1590:
			case 1591:
			case 1592:
			case 1593:
			case 1594:
			case 1595:
			case 1596:
			case 1597:
			case 1598:
			case 1599:
			case 1600:
			case 1601:
			case 1602:
			case 1603:
			case 1604:
			case 1605:
			case 1606:
			case 1607:
			case 1608:
			case 1609:
			case 1610:
			case 1611:
			case 1612:
			case 1613:
			case 1614:
			case 1615:
			case 1616:
			case 1617:
			case 1618:
			case 1619:
			case 1620:
			case 1621:
			case 1622:
			case 1623:
			case 1624:
			case 1625:
			case 1626:
			case 1628:
			case 1629:
			case 1630:
			case 1631:
			case 1632:
			case 1633:
			case 1634:
			case 1635:
			case 1636:
			case 1637:
			case 1638:
			case 1639:
			case 1640:
			case 1641:
			case 1642:
			case 1643:
			case 1644:
			case 1645:
			case 1646:
			case 1647:
			case 1648:
			case 1649:
			case 1650:
			case 1651:
			case 1652:
			case 1653:
			case 1654:
			case 1655:
			case 1656:
			case 1657:
			case 1658:
			case 1659:
			case 1660:
			case 1661:
			case 1662:
			case 1663:
			case 1664:
			case 1665:
			case 1666:
			case 1667:
			case 1668:
			case 1669:
			case 1670:
			case 1671:
			case 1672:
			case 1673:
			case 1674:
			case 1675:
			case 1676:
			case 1677:
			case 1678:
			case 1679:
			case 1680:
			case 1681:
			case 1682:
			case 1683:
			case 1684:
			case 1685:
			case 1686:
			case 1687:
			case 1688:
			case 1689:
			case 1690:
			case 1691:
			case 1692:
			case 1693:
			case 1694:
			case 1695:
			case 1696:
			case 1697:
			case 1698:
			case 1699:
			case 1700:
			case 1701:
			case 1702:
			case 1703:
			case 1704:
			case 1705:
			case 1706:
			case 1707:
			case 1708:
			case 1709:
			case 1710:
			case 1711:
			case 1712:
			case 1713:
			case 1714:
			case 1715:
			case 1716:
			case 1717:
			case 1718:
			case 1719:
			case 1720:
			case 1721:
			case 1722:
			case 1723:
			case 1724:
			case 1725:
			case 1726:
			case 1727:
			case 1728:
			case 1729:
			case 1730:
			case 1731:
			case 1732:
			case 1733:
			case 1734:
			case 1735:
			case 1736:
			case 1737:
			case 1738:
			case 1739:
			case 1740:
			case 1741:
			case 1742:
			case 1743:
			case 1744:
			case 1745:
			case 1746:
			case 1747:
			case 1748:
			case 1749:
			case 1750:
			case 1751:
			case 1752:
			case 1753:
			case 1754:
			case 1755:
			case 1756:
			case 1757:
			case 1758:
			case 1759:
			case 1760:
			case 1761:
			case 1762:
			case 1763:
			case 1764:
			case 1765:
			case 1766:
			case 1767:
			case 1768:
			case 1769:
			case 1770:
			case 1771:
			case 1772:
			case 1773:
			case 1774:
			case 1775:
			case 1776:
			case 1777:
			case 1778:
			case 1779:
			case 1780:
			case 1781:
			case 1782:
			case 1783:
			case 1784:
			case 1785:
			case 1786:
			case 1787:
			case 1788:
			case 1789:
			case 1790:
			case 1791:
			case 1792:
			case 1793:
			case 1794:
			case 1795:
			case 1796:
			case 1797:
			case 1798:
			case 1799:
			case 1800:
			case 1801:
			case 1802:
			case 1803:
			case 1804:
			case 1805:
			case 1806:
			case 1807:
			case 1808:
			case 1809:
			case 1810:
			case 1811:
			case 1812:
			case 1813:
			case 1814:
			case 1815:
			case 1816:
			case 1817:
			case 1818:
			case 1819:
			case 1820:
			case 1821:
			case 1822:
			case 1823:
			case 1824:
			case 1825:
			case 1826:
			case 1827:
			case 1828:
			case 1829:
			case 1830:
			case 1831:
			case 1832:
			case 1833:
			case 1834:
			case 1835:
			case 1836:
			case 1837:
			case 1838:
			case 1839:
			case 1840:
			case 1841:
			case 1842:
			case 1843:
			case 1844:
			case 1845:
			case 1846:
			case 1847:
			case 1848:
			case 1849:
			case 1850:
			case 1851:
			case 1852:
			case 1853:
			case 1854:
			case 1855:
			case 1856:
			case 1857:
			case 1858:
			case 1859:
			case 1860:
			case 1861:
			case 1862:
			case 1863:
			case 1864:
			case 1865:
			case 1866:
			case 1867:
			case 1868:
			case 1869:
			case 1870:
			case 1871:
			case 1872:
			case 1873:
			case 1874:
			case 1875:
			case 1876:
			case 1877:
			case 1878:
			case 1879:
			case 1880:
			case 1881:
			case 1882:
			case 1883:
			case 1884:
			case 1885:
			case 1886:
			case 1887:
			case 1888:
			case 1889:
			case 1890:
			case 1891:
			case 1892:
			case 1893:
			case 1894:
			case 1895:
			case 1896:
			case 1897:
			case 1898:
			case 1899:
			case 1900:
			case 1901:
			case 1902:
			case 1903:
			case 1904:
			case 1905:
			case 1906:
			case 1907:
			case 1908:
			case 1909:
			case 1910:
			case 1911:
			case 1912:
			case 1913:
			case 1914:
			case 1915:
			case 1916:
			case 1917:
			case 1918:
			case 1919:
			case 1920:
			case 1921:
			case 1922:
			case 1923:
			case 1924:
			case 1925:
			case 1926:
			case 1927:
			case 1928:
			case 1929:
			case 1930:
			case 1931:
			case 1932:
			case 1933:
			case 1934:
			case 1935:
			case 1936:
			case 1937:
			case 1939:
			case 1940:
			case 1941:
			case 1942:
			case 1943:
			case 1944:
			case 1945:
			case 1946:
			case 1947:
			case 1948:
			case 1949:
			case 1950:
			case 1951:
			case 1952:
			case 1953:
			case 1954:
			case 1955:
			case 1956:
			case 1957:
			case 1958:
			case 1959:
			case 1960:
			case 1961:
			case 1962:
			case 1963:
			case 1965:
			case 1966:
			case 1967:
			case 1968:
			case 1969:
			case 1970:
			case 1971:
			case 1972:
			case 1973:
			case 1974:
			case 1975:
			case 1976:
			case 1977:
			case 1978:
			case 1979:
			case 1980:
			case 1981:
			case 1982:
			case 1983:
			case 1984:
			case 1985:
			case 1986:
			case 1987:
			case 1988:
			case 1989:
			case 1990:
			case 1991:
			case 1992:
			case 1993:
			case 1994:
			case 1995:
			case 1996:
			case 1997:
			case 1998:
			case 1999:
			case 2000:
			case 2003:
			case 2004:
			case 2005:
			case 2006:
			case 2007:
			case 2008:
			case 2009:
			case 2010:
			case 2011:
			case 2012:
			case 2013:
			case 2014:
			case 2015:
			case 2016:
			case 2017:
			case 2018:
			case 2019:
			case 2020:
			case 2021:
			case 2022:
			case 2023:
			case 2024:
			case 2026:
			case 2027:
			case 2028:
			case 2029:
			case 2030:
			case 2031:
			case 2032:
			case 2033:
			case 2034:
			case 2035:
			case 2036:
			case 2037:
			case 2038:
			case 2039:
			case 2040:
			case 2041:
			case 2042:
			case 2043:
			case 2044:
			case 2045:
			case 2046:
			case 2047:
			case 2048:
			case 2049:
			case 2050:
			case 2051:
			case 2052:
			case 2053:
			case 2054:
			case 2055:
			case 2056:
			case 2057:
			case 2058:
			case 2059:
			case 2060:
			case 2061:
			case 2062:
			case 2063:
			case 2064:
			case 2065:
			case 2066:
			case 2067:
			case 2068:
			case 2069:
			case 2070:
			case 2071:
			case 2072:
			case 2074:
			case 2075:
			case 2076:
			case 2077:
			case 2078:
			case 2079:
			case 2080:
			case 2081:
			case 2082:
			case 2083:
			case 2084:
			case 2085:
			case 2086:
			case 2087:
			case 2088:
			case 2089:
			case 2090:
			case 2091:
			case 2092:
			case 2093:
			case 2094:
			case 2095:
			case 2096:
			case 2097:
			case 2098:
			case 2100:
			case 2101:
			case 2102:
			case 2103:
			case 2104:
			case 2105:
			case 2106:
			case 2107:
			case 2108:
			case 2109:
			case 2110:
			case 2111:
			case 2112:
			case 2113:
			case 2115:
			case 2116:
			case 2117:
			case 2118:
			case 2119:
			case 2120:
			case 2122:
			case 2123:
			case 2124:
			case 2125:
			case 2126:
			case 2128:
			case 2129:
			case 2130:
			case 2131:
			case 2132:
			case 2133:
			case 2134:
			case 2135:
			case 2136:
			case 2137:
			case 2138:
			case 2139:
			case 2140:
			case 2141:
			case 2142:
			case 2143:
			case 2145:
			case 2146:
			case 2147:
			case 2148:
			case 2149:
			case 2150:
			case 2151:
			case 2152:
			case 2153:
			case 2154:
			case 2155:
			case 2156:
			case 2157:
			case 2158:
			case 2159:
			case 2160:
			case 2161:
			case 2162:
			case 2163:
			case 2164:
			case 2165:
			case 2166:
			case 2168:
			case 2169:
			case 2170:
			case 2171:
			case 2172:
			case 2173:
			case 2174:
			case 2175:
			case 2176:
			case 2177:
			case 2178:
			case 2179:
			case 2180:
			case 2181:
			case 2182:
			case 2183:
			case 2184:
			case 2185:
			case 2186:
			case 2187:
			case 2188:
			case 2189:
			case 2190:
			case 2191:
			case 2192:
			case 2193:
			case 2194:
			case 2195:
			case 2196:
			case 2197:
			case 2198:
			case 2199:
			case 2200:
			case 2201:
			case 2202:
			case 2203:
			case 2204:
			case 2205:
			case 2206:
			case 2207:
			case 2208:
			case 2209:
			case 2210:
			case 2211:
			case 2212:
			case 2216:
			case 2217:
			case 2218:
			case 2219:
			case 2220:
			case 2223:
			case 2227:
			case 2228:
			case 2233:
			case 2240:
			case 2246:
			case 2252:
				{
				this.state = 10784;
				this.using_element();
				this.state = 10789;
				this._errHandler.sync(this);
				_alt = this._interp.adaptivePredict(this._input, 1473, this._ctx);
				while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) {
					if (_alt === 1) {
						{
						{
						this.state = 10785;
						this.match(PlSqlParser.COMMA);
						this.state = 10786;
						this.using_element();
						}
						}
					}
					this.state = 10791;
					this._errHandler.sync(this);
					_alt = this._interp.adaptivePredict(this._input, 1473, this._ctx);
				}
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public using_element(): Using_elementContext {
		let localctx: Using_elementContext = new Using_elementContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1314, PlSqlParser.RULE_using_element);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 10799;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1476, this._ctx) ) {
			case 1:
				{
				this.state = 10794;
				this.match(PlSqlParser.IN);
				this.state = 10796;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 1475, this._ctx) ) {
				case 1:
					{
					this.state = 10795;
					this.match(PlSqlParser.OUT);
					}
					break;
				}
				}
				break;
			case 2:
				{
				this.state = 10798;
				this.match(PlSqlParser.OUT);
				}
				break;
			}
			this.state = 10801;
			this.select_list_elements();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public collect_order_by_part(): Collect_order_by_partContext {
		let localctx: Collect_order_by_partContext = new Collect_order_by_partContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1316, PlSqlParser.RULE_collect_order_by_part);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 10803;
			this.match(PlSqlParser.ORDER);
			this.state = 10804;
			this.match(PlSqlParser.BY);
			this.state = 10805;
			this.concatenation(0);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public within_or_over_part(): Within_or_over_partContext {
		let localctx: Within_or_over_partContext = new Within_or_over_partContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1318, PlSqlParser.RULE_within_or_over_part);
		try {
			this.state = 10814;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 2118:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 10807;
				this.match(PlSqlParser.WITHIN);
				this.state = 10808;
				this.match(PlSqlParser.GROUP);
				this.state = 10809;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 10810;
				this.order_by_clause();
				this.state = 10811;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
				break;
			case 1186:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 10813;
				this.over_clause();
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public cost_matrix_clause(): Cost_matrix_clauseContext {
		let localctx: Cost_matrix_clauseContext = new Cost_matrix_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1320, PlSqlParser.RULE_cost_matrix_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 10816;
			this.match(PlSqlParser.COST);
			this.state = 10838;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 854:
				{
				this.state = 10817;
				this.match(PlSqlParser.MODEL);
				this.state = 10819;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===83) {
					{
					this.state = 10818;
					this.match(PlSqlParser.AUTO);
					}
				}

				}
				break;
			case 2223:
				{
				this.state = 10821;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 10822;
				this.cost_class_name();
				this.state = 10827;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===2229) {
					{
					{
					this.state = 10823;
					this.match(PlSqlParser.COMMA);
					this.state = 10824;
					this.cost_class_name();
					}
					}
					this.state = 10829;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				this.state = 10830;
				this.match(PlSqlParser.RIGHT_PAREN);
				this.state = 10831;
				this.match(PlSqlParser.VALUES);
				this.state = 10832;
				this.match(PlSqlParser.LEFT_PAREN);
				this.state = 10834;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & 2684352383) !== 0) || ((((_la - 64)) & ~0x1F) === 0 && ((1 << (_la - 64)) & 3220168703) !== 0) || ((((_la - 96)) & ~0x1F) === 0 && ((1 << (_la - 96)) & 4294965247) !== 0) || ((((_la - 128)) & ~0x1F) === 0 && ((1 << (_la - 128)) & 2147221503) !== 0) || ((((_la - 160)) & ~0x1F) === 0 && ((1 << (_la - 160)) & 4293910527) !== 0) || ((((_la - 192)) & ~0x1F) === 0 && ((1 << (_la - 192)) & 4294967295) !== 0) || ((((_la - 224)) & ~0x1F) === 0 && ((1 << (_la - 224)) & 4160749311) !== 0) || ((((_la - 256)) & ~0x1F) === 0 && ((1 << (_la - 256)) & 4294967295) !== 0) || ((((_la - 289)) & ~0x1F) === 0 && ((1 << (_la - 289)) & 2147483647) !== 0) || ((((_la - 321)) & ~0x1F) === 0 && ((1 << (_la - 321)) & 4294967295) !== 0) || ((((_la - 353)) & ~0x1F) === 0 && ((1 << (_la - 353)) & 4294705151) !== 0) || ((((_la - 385)) & ~0x1F) === 0 && ((1 << (_la - 385)) & 2080374527) !== 0) || ((((_la - 417)) & ~0x1F) === 0 && ((1 << (_la - 417)) & 4026433535) !== 0) || ((((_la - 449)) & ~0x1F) === 0 && ((1 << (_la - 449)) & 4261412863) !== 0) || ((((_la - 481)) & ~0x1F) === 0 && ((1 << (_la - 481)) & 4294967295) !== 0) || ((((_la - 513)) & ~0x1F) === 0 && ((1 << (_la - 513)) & 4294967295) !== 0) || ((((_la - 545)) & ~0x1F) === 0 && ((1 << (_la - 545)) & 3925868029) !== 0) || ((((_la - 577)) & ~0x1F) === 0 && ((1 << (_la - 577)) & 4278189823) !== 0) || ((((_la - 609)) & ~0x1F) === 0 && ((1 << (_la - 609)) & 4290772991) !== 0) || ((((_la - 641)) & ~0x1F) === 0 && ((1 << (_la - 641)) & 4026529791) !== 0) || ((((_la - 673)) & ~0x1F) === 0 && ((1 << (_la - 673)) & 4290478079) !== 0) || ((((_la - 705)) & ~0x1F) === 0 && ((1 << (_la - 705)) & 4294967295) !== 0) || ((((_la - 737)) & ~0x1F) === 0 && ((1 << (_la - 737)) & 4293918719) !== 0) || ((((_la - 769)) & ~0x1F) === 0 && ((1 << (_la - 769)) & 4294967167) !== 0) || ((((_la - 801)) & ~0x1F) === 0 && ((1 << (_la - 801)) & 4294967295) !== 0) || ((((_la - 833)) & ~0x1F) === 0 && ((1 << (_la - 833)) & 4160749055) !== 0) || ((((_la - 865)) & ~0x1F) === 0 && ((1 << (_la - 865)) & 4290772991) !== 0) || ((((_la - 897)) & ~0x1F) === 0 && ((1 << (_la - 897)) & 4294967295) !== 0) || ((((_la - 929)) & ~0x1F) === 0 && ((1 << (_la - 929)) & 4278190079) !== 0) || ((((_la - 961)) & ~0x1F) === 0 && ((1 << (_la - 961)) & 4294967295) !== 0) || ((((_la - 993)) & ~0x1F) === 0 && ((1 << (_la - 993)) & 4294967295) !== 0) || ((((_la - 1025)) & ~0x1F) === 0 && ((1 << (_la - 1025)) & 4294967295) !== 0) || ((((_la - 1057)) & ~0x1F) === 0 && ((1 << (_la - 1057)) & 2147483647) !== 0) || ((((_la - 1089)) & ~0x1F) === 0 && ((1 << (_la - 1089)) & 4227858431) !== 0) || ((((_la - 1121)) & ~0x1F) === 0 && ((1 << (_la - 1121)) & 4293918559) !== 0) || ((((_la - 1153)) & ~0x1F) === 0 && ((1 << (_la - 1153)) & 4294410239) !== 0) || ((((_la - 1185)) & ~0x1F) === 0 && ((1 << (_la - 1185)) & 4294965247) !== 0) || ((((_la - 1217)) & ~0x1F) === 0 && ((1 << (_la - 1217)) & 4279827455) !== 0) || ((((_la - 1249)) & ~0x1F) === 0 && ((1 << (_la - 1249)) & 4294967291) !== 0) || ((((_la - 1281)) & ~0x1F) === 0 && ((1 << (_la - 1281)) & 4294967295) !== 0) || ((((_la - 1313)) & ~0x1F) === 0 && ((1 << (_la - 1313)) & 4294965247) !== 0) || ((((_la - 1345)) & ~0x1F) === 0 && ((1 << (_la - 1345)) & 4294967295) !== 0) || ((((_la - 1377)) & ~0x1F) === 0 && ((1 << (_la - 1377)) & 4292870143) !== 0) || ((((_la - 1409)) & ~0x1F) === 0 && ((1 << (_la - 1409)) & 4261412799) !== 0) || ((((_la - 1441)) & ~0x1F) === 0 && ((1 << (_la - 1441)) & 4294967295) !== 0) || ((((_la - 1473)) & ~0x1F) === 0 && ((1 << (_la - 1473)) & 4261281791) !== 0) || ((((_la - 1505)) & ~0x1F) === 0 && ((1 << (_la - 1505)) & 3221221375) !== 0) || ((((_la - 1537)) & ~0x1F) === 0 && ((1 << (_la - 1537)) & 4294967295) !== 0) || ((((_la - 1570)) & ~0x1F) === 0 && ((1 << (_la - 1570)) & 4294967295) !== 0) || ((((_la - 1602)) & ~0x1F) === 0 && ((1 << (_la - 1602)) & 4261412863) !== 0) || ((((_la - 1634)) & ~0x1F) === 0 && ((1 << (_la - 1634)) & 4294967295) !== 0) || ((((_la - 1666)) & ~0x1F) === 0 && ((1 << (_la - 1666)) & 4294967295) !== 0) || ((((_la - 1698)) & ~0x1F) === 0 && ((1 << (_la - 1698)) & 4294967295) !== 0) || ((((_la - 1730)) & ~0x1F) === 0 && ((1 << (_la - 1730)) & 4294967295) !== 0) || ((((_la - 1762)) & ~0x1F) === 0 && ((1 << (_la - 1762)) & 4294967295) !== 0) || ((((_la - 1794)) & ~0x1F) === 0 && ((1 << (_la - 1794)) & 4294967295) !== 0) || ((((_la - 1826)) & ~0x1F) === 0 && ((1 << (_la - 1826)) & 4294967295) !== 0) || ((((_la - 1858)) & ~0x1F) === 0 && ((1 << (_la - 1858)) & 4294967295) !== 0) || ((((_la - 1890)) & ~0x1F) === 0 && ((1 << (_la - 1890)) & 4294967295) !== 0) || ((((_la - 1922)) & ~0x1F) === 0 && ((1 << (_la - 1922)) & 4294901759) !== 0) || ((((_la - 1954)) & ~0x1F) === 0 && ((1 << (_la - 1954)) & 4294966271) !== 0) || ((((_la - 1986)) & ~0x1F) === 0 && ((1 << (_la - 1986)) & 4294868991) !== 0) || ((((_la - 2018)) & ~0x1F) === 0 && ((1 << (_la - 2018)) & 4294967167) !== 0) || ((((_la - 2050)) & ~0x1F) === 0 && ((1 << (_la - 2050)) & 4286578687) !== 0) || ((((_la - 2082)) & ~0x1F) === 0 && ((1 << (_la - 2082)) & 4294836223) !== 0) || ((((_la - 2115)) & ~0x1F) === 0 && ((1 << (_la - 2115)) & 3758092223) !== 0) || ((((_la - 2147)) & ~0x1F) === 0 && ((1 << (_la - 2147)) & 4293918719) !== 0) || ((((_la - 2179)) & ~0x1F) === 0 && ((1 << (_la - 2179)) & 4294967295) !== 0) || ((((_la - 2211)) & ~0x1F) === 0 && ((1 << (_la - 2211)) & 541266915) !== 0) || _la===2246 || _la===2252) {
					{
					this.state = 10833;
					this.expressions();
					}
				}

				this.state = 10836;
				this.match(PlSqlParser.RIGHT_PAREN);
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public xml_passing_clause(): Xml_passing_clauseContext {
		let localctx: Xml_passing_clauseContext = new Xml_passing_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1322, PlSqlParser.RULE_xml_passing_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 10840;
			this.match(PlSqlParser.PASSING);
			this.state = 10843;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===146) {
				{
				this.state = 10841;
				this.match(PlSqlParser.BY);
				this.state = 10842;
				this.match(PlSqlParser.VALUE);
				}
			}

			this.state = 10845;
			this.expression();
			this.state = 10847;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1483, this._ctx) ) {
			case 1:
				{
				this.state = 10846;
				this.column_alias();
				}
				break;
			}
			this.state = 10856;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			while (_la===2229) {
				{
				{
				this.state = 10849;
				this.match(PlSqlParser.COMMA);
				this.state = 10850;
				this.expression();
				this.state = 10852;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 1484, this._ctx) ) {
				case 1:
					{
					this.state = 10851;
					this.column_alias();
					}
					break;
				}
				}
				}
				this.state = 10858;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public xml_attributes_clause(): Xml_attributes_clauseContext {
		let localctx: Xml_attributes_clauseContext = new Xml_attributes_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1324, PlSqlParser.RULE_xml_attributes_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 10859;
			this.match(PlSqlParser.XMLATTRIBUTES);
			this.state = 10860;
			this.match(PlSqlParser.LEFT_PAREN);
			this.state = 10862;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1486, this._ctx) ) {
			case 1:
				{
				this.state = 10861;
				_la = this._input.LA(1);
				if(!(_la===451 || _la===973)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				}
				break;
			}
			this.state = 10865;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1487, this._ctx) ) {
			case 1:
				{
				this.state = 10864;
				_la = this._input.LA(1);
				if(!(_la===1053 || _la===1469)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				}
				break;
			}
			this.state = 10867;
			this.xml_multiuse_expression_element();
			this.state = 10872;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			while (_la===2229) {
				{
				{
				this.state = 10868;
				this.match(PlSqlParser.COMMA);
				this.state = 10869;
				this.xml_multiuse_expression_element();
				}
				}
				this.state = 10874;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			}
			this.state = 10875;
			this.match(PlSqlParser.RIGHT_PAREN);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public xml_namespaces_clause(): Xml_namespaces_clauseContext {
		let localctx: Xml_namespaces_clauseContext = new Xml_namespaces_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1326, PlSqlParser.RULE_xml_namespaces_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 10877;
			this.match(PlSqlParser.XMLNAMESPACES);
			this.state = 10878;
			this.match(PlSqlParser.LEFT_PAREN);
			this.state = 10882;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1489, this._ctx) ) {
			case 1:
				{
				this.state = 10879;
				this.concatenation(0);
				this.state = 10880;
				this.column_alias();
				}
				break;
			}
			this.state = 10890;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			while (_la===2229) {
				{
				{
				this.state = 10884;
				this.match(PlSqlParser.COMMA);
				this.state = 10885;
				this.concatenation(0);
				this.state = 10886;
				this.column_alias();
				}
				}
				this.state = 10892;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			}
			this.state = 10894;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===351) {
				{
				this.state = 10893;
				this.xml_general_default_part();
				}
			}

			this.state = 10896;
			this.match(PlSqlParser.RIGHT_PAREN);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public xml_table_column(): Xml_table_columnContext {
		let localctx: Xml_table_columnContext = new Xml_table_columnContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1328, PlSqlParser.RULE_xml_table_column);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 10898;
			this.xml_column_name();
			this.state = 10909;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 546:
				{
				this.state = 10899;
				this.match(PlSqlParser.FOR);
				this.state = 10900;
				this.match(PlSqlParser.ORDINALITY);
				}
				break;
			case 1:
			case 2:
			case 3:
			case 4:
			case 5:
			case 6:
			case 7:
			case 8:
			case 9:
			case 10:
			case 11:
			case 12:
			case 13:
			case 14:
			case 15:
			case 16:
			case 17:
			case 18:
			case 19:
			case 20:
			case 21:
			case 22:
			case 23:
			case 24:
			case 25:
			case 26:
			case 27:
			case 28:
			case 29:
			case 30:
			case 31:
			case 32:
			case 33:
			case 34:
			case 36:
			case 37:
			case 38:
			case 40:
			case 41:
			case 42:
			case 44:
			case 45:
			case 46:
			case 47:
			case 49:
			case 50:
			case 51:
			case 52:
			case 53:
			case 54:
			case 55:
			case 56:
			case 57:
			case 58:
			case 59:
			case 60:
			case 63:
			case 64:
			case 65:
			case 66:
			case 67:
			case 68:
			case 69:
			case 70:
			case 71:
			case 72:
			case 73:
			case 74:
			case 75:
			case 76:
			case 78:
			case 79:
			case 80:
			case 81:
			case 82:
			case 83:
			case 85:
			case 86:
			case 87:
			case 88:
			case 89:
			case 90:
			case 91:
			case 92:
			case 93:
			case 95:
			case 96:
			case 97:
			case 98:
			case 99:
			case 100:
			case 101:
			case 102:
			case 103:
			case 104:
			case 105:
			case 106:
			case 108:
			case 109:
			case 110:
			case 111:
			case 112:
			case 113:
			case 114:
			case 115:
			case 116:
			case 117:
			case 118:
			case 119:
			case 120:
			case 121:
			case 122:
			case 123:
			case 124:
			case 125:
			case 126:
			case 127:
			case 128:
			case 129:
			case 130:
			case 131:
			case 132:
			case 133:
			case 134:
			case 135:
			case 136:
			case 137:
			case 138:
			case 139:
			case 140:
			case 141:
			case 142:
			case 143:
			case 144:
			case 145:
			case 147:
			case 148:
			case 149:
			case 150:
			case 151:
			case 152:
			case 153:
			case 154:
			case 155:
			case 156:
			case 157:
			case 158:
			case 160:
			case 161:
			case 162:
			case 163:
			case 164:
			case 165:
			case 166:
			case 167:
			case 168:
			case 169:
			case 170:
			case 171:
			case 172:
			case 174:
			case 175:
			case 176:
			case 177:
			case 178:
			case 179:
			case 181:
			case 182:
			case 183:
			case 184:
			case 185:
			case 186:
			case 187:
			case 188:
			case 189:
			case 190:
			case 191:
			case 192:
			case 193:
			case 194:
			case 195:
			case 196:
			case 197:
			case 198:
			case 199:
			case 200:
			case 201:
			case 202:
			case 203:
			case 204:
			case 205:
			case 206:
			case 207:
			case 208:
			case 209:
			case 210:
			case 211:
			case 212:
			case 213:
			case 214:
			case 215:
			case 216:
			case 217:
			case 218:
			case 219:
			case 220:
			case 221:
			case 222:
			case 223:
			case 224:
			case 225:
			case 226:
			case 227:
			case 228:
			case 229:
			case 230:
			case 231:
			case 233:
			case 234:
			case 235:
			case 236:
			case 237:
			case 238:
			case 239:
			case 240:
			case 241:
			case 242:
			case 243:
			case 244:
			case 245:
			case 246:
			case 247:
			case 248:
			case 249:
			case 250:
			case 252:
			case 253:
			case 254:
			case 255:
			case 256:
			case 257:
			case 258:
			case 259:
			case 260:
			case 261:
			case 262:
			case 263:
			case 264:
			case 265:
			case 266:
			case 267:
			case 268:
			case 269:
			case 270:
			case 271:
			case 272:
			case 273:
			case 274:
			case 275:
			case 276:
			case 277:
			case 278:
			case 279:
			case 280:
			case 281:
			case 282:
			case 283:
			case 284:
			case 285:
			case 286:
			case 287:
			case 289:
			case 290:
			case 291:
			case 292:
			case 293:
			case 294:
			case 295:
			case 296:
			case 297:
			case 298:
			case 299:
			case 300:
			case 301:
			case 302:
			case 303:
			case 304:
			case 305:
			case 306:
			case 307:
			case 308:
			case 309:
			case 310:
			case 311:
			case 312:
			case 313:
			case 314:
			case 315:
			case 316:
			case 317:
			case 318:
			case 319:
			case 321:
			case 322:
			case 323:
			case 324:
			case 325:
			case 326:
			case 327:
			case 328:
			case 329:
			case 330:
			case 331:
			case 332:
			case 333:
			case 334:
			case 335:
			case 336:
			case 337:
			case 338:
			case 339:
			case 340:
			case 341:
			case 342:
			case 343:
			case 344:
			case 345:
			case 346:
			case 347:
			case 348:
			case 349:
			case 350:
			case 352:
			case 353:
			case 354:
			case 355:
			case 356:
			case 357:
			case 358:
			case 359:
			case 360:
			case 361:
			case 362:
			case 363:
			case 364:
			case 365:
			case 366:
			case 367:
			case 368:
			case 369:
			case 370:
			case 372:
			case 373:
			case 374:
			case 375:
			case 376:
			case 377:
			case 378:
			case 379:
			case 380:
			case 381:
			case 382:
			case 383:
			case 384:
			case 385:
			case 386:
			case 387:
			case 388:
			case 389:
			case 390:
			case 391:
			case 392:
			case 394:
			case 395:
			case 397:
			case 398:
			case 399:
			case 400:
			case 401:
			case 402:
			case 403:
			case 404:
			case 405:
			case 406:
			case 407:
			case 408:
			case 409:
			case 410:
			case 412:
			case 413:
			case 414:
			case 415:
			case 417:
			case 418:
			case 419:
			case 420:
			case 421:
			case 422:
			case 423:
			case 424:
			case 425:
			case 426:
			case 427:
			case 428:
			case 429:
			case 430:
			case 431:
			case 434:
			case 435:
			case 436:
			case 437:
			case 438:
			case 439:
			case 440:
			case 441:
			case 442:
			case 443:
			case 444:
			case 446:
			case 447:
			case 448:
			case 449:
			case 450:
			case 451:
			case 452:
			case 453:
			case 454:
			case 455:
			case 456:
			case 457:
			case 458:
			case 459:
			case 460:
			case 461:
			case 462:
			case 463:
			case 464:
			case 465:
			case 466:
			case 467:
			case 468:
			case 469:
			case 470:
			case 471:
			case 472:
			case 473:
			case 475:
			case 476:
			case 477:
			case 478:
			case 479:
			case 480:
			case 481:
			case 482:
			case 483:
			case 484:
			case 485:
			case 486:
			case 487:
			case 488:
			case 489:
			case 490:
			case 491:
			case 492:
			case 493:
			case 494:
			case 495:
			case 496:
			case 497:
			case 498:
			case 499:
			case 500:
			case 501:
			case 502:
			case 503:
			case 504:
			case 505:
			case 506:
			case 507:
			case 508:
			case 509:
			case 510:
			case 511:
			case 512:
			case 513:
			case 514:
			case 515:
			case 516:
			case 517:
			case 518:
			case 519:
			case 520:
			case 521:
			case 522:
			case 523:
			case 524:
			case 525:
			case 526:
			case 527:
			case 528:
			case 529:
			case 530:
			case 531:
			case 532:
			case 533:
			case 534:
			case 535:
			case 536:
			case 537:
			case 538:
			case 539:
			case 540:
			case 541:
			case 542:
			case 543:
			case 544:
			case 545:
			case 547:
			case 548:
			case 549:
			case 550:
			case 551:
			case 552:
			case 553:
			case 555:
			case 556:
			case 557:
			case 558:
			case 559:
			case 560:
			case 561:
			case 562:
			case 563:
			case 564:
			case 565:
			case 566:
			case 567:
			case 568:
			case 569:
			case 572:
			case 574:
			case 575:
			case 576:
			case 577:
			case 578:
			case 579:
			case 580:
			case 581:
			case 582:
			case 583:
			case 584:
			case 586:
			case 587:
			case 588:
			case 589:
			case 590:
			case 591:
			case 592:
			case 593:
			case 594:
			case 595:
			case 596:
			case 597:
			case 598:
			case 599:
			case 600:
			case 602:
			case 603:
			case 604:
			case 605:
			case 606:
			case 607:
			case 608:
			case 609:
			case 610:
			case 611:
			case 612:
			case 613:
			case 614:
			case 615:
			case 616:
			case 617:
			case 618:
			case 619:
			case 620:
			case 621:
			case 622:
			case 623:
			case 624:
			case 625:
			case 626:
			case 627:
			case 628:
			case 629:
			case 630:
			case 632:
			case 633:
			case 634:
			case 635:
			case 636:
			case 637:
			case 638:
			case 639:
			case 640:
			case 641:
			case 642:
			case 643:
			case 644:
			case 645:
			case 646:
			case 647:
			case 648:
			case 649:
			case 650:
			case 651:
			case 653:
			case 654:
			case 655:
			case 656:
			case 657:
			case 658:
			case 659:
			case 660:
			case 661:
			case 662:
			case 663:
			case 664:
			case 665:
			case 666:
			case 667:
			case 668:
			case 670:
			case 671:
			case 672:
			case 673:
			case 674:
			case 675:
			case 676:
			case 677:
			case 678:
			case 679:
			case 680:
			case 681:
			case 682:
			case 683:
			case 684:
			case 685:
			case 686:
			case 687:
			case 689:
			case 690:
			case 692:
			case 693:
			case 694:
			case 696:
			case 697:
			case 698:
			case 699:
			case 700:
			case 701:
			case 702:
			case 703:
			case 704:
			case 705:
			case 706:
			case 707:
			case 708:
			case 709:
			case 710:
			case 711:
			case 712:
			case 713:
			case 714:
			case 715:
			case 716:
			case 717:
			case 718:
			case 719:
			case 720:
			case 721:
			case 722:
			case 723:
			case 724:
			case 725:
			case 726:
			case 727:
			case 728:
			case 729:
			case 730:
			case 731:
			case 732:
			case 733:
			case 734:
			case 735:
			case 736:
			case 737:
			case 738:
			case 739:
			case 740:
			case 741:
			case 742:
			case 743:
			case 744:
			case 745:
			case 746:
			case 747:
			case 748:
			case 749:
			case 750:
			case 751:
			case 752:
			case 753:
			case 754:
			case 755:
			case 756:
			case 758:
			case 759:
			case 760:
			case 761:
			case 762:
			case 763:
			case 764:
			case 765:
			case 766:
			case 767:
			case 768:
			case 769:
			case 770:
			case 771:
			case 772:
			case 773:
			case 774:
			case 775:
			case 777:
			case 778:
			case 779:
			case 780:
			case 781:
			case 782:
			case 783:
			case 784:
			case 785:
			case 786:
			case 787:
			case 788:
			case 789:
			case 790:
			case 791:
			case 792:
			case 793:
			case 794:
			case 795:
			case 796:
			case 797:
			case 798:
			case 799:
			case 800:
			case 801:
			case 802:
			case 803:
			case 804:
			case 805:
			case 806:
			case 807:
			case 808:
			case 809:
			case 810:
			case 811:
			case 812:
			case 813:
			case 814:
			case 815:
			case 816:
			case 817:
			case 818:
			case 819:
			case 820:
			case 821:
			case 822:
			case 823:
			case 824:
			case 825:
			case 826:
			case 827:
			case 828:
			case 829:
			case 830:
			case 831:
			case 832:
			case 833:
			case 834:
			case 835:
			case 836:
			case 837:
			case 838:
			case 839:
			case 840:
			case 841:
			case 843:
			case 844:
			case 845:
			case 846:
			case 847:
			case 848:
			case 849:
			case 850:
			case 851:
			case 852:
			case 853:
			case 854:
			case 855:
			case 856:
			case 857:
			case 858:
			case 859:
			case 861:
			case 862:
			case 863:
			case 864:
			case 865:
			case 866:
			case 867:
			case 868:
			case 869:
			case 870:
			case 871:
			case 872:
			case 873:
			case 874:
			case 875:
			case 876:
			case 877:
			case 878:
			case 879:
			case 880:
			case 881:
			case 882:
			case 883:
			case 884:
			case 885:
			case 886:
			case 887:
			case 888:
			case 889:
			case 890:
			case 891:
			case 892:
			case 893:
			case 894:
			case 895:
			case 896:
			case 897:
			case 898:
			case 899:
			case 900:
			case 901:
			case 902:
			case 903:
			case 904:
			case 905:
			case 906:
			case 907:
			case 908:
			case 909:
			case 910:
			case 911:
			case 912:
			case 913:
			case 914:
			case 915:
			case 916:
			case 917:
			case 918:
			case 919:
			case 920:
			case 921:
			case 922:
			case 923:
			case 924:
			case 925:
			case 926:
			case 927:
			case 928:
			case 929:
			case 930:
			case 931:
			case 932:
			case 933:
			case 934:
			case 935:
			case 936:
			case 937:
			case 938:
			case 939:
			case 940:
			case 941:
			case 942:
			case 943:
			case 944:
			case 945:
			case 946:
			case 947:
			case 948:
			case 949:
			case 950:
			case 951:
			case 952:
			case 954:
			case 955:
			case 956:
			case 957:
			case 958:
			case 959:
			case 960:
			case 961:
			case 962:
			case 963:
			case 964:
			case 965:
			case 966:
			case 967:
			case 968:
			case 969:
			case 970:
			case 971:
			case 972:
			case 973:
			case 974:
			case 975:
			case 976:
			case 977:
			case 978:
			case 979:
			case 980:
			case 981:
			case 982:
			case 983:
			case 984:
			case 985:
			case 986:
			case 987:
			case 988:
			case 989:
			case 990:
			case 991:
			case 992:
			case 993:
			case 994:
			case 995:
			case 996:
			case 997:
			case 998:
			case 999:
			case 1000:
			case 1001:
			case 1002:
			case 1003:
			case 1004:
			case 1005:
			case 1006:
			case 1007:
			case 1008:
			case 1009:
			case 1010:
			case 1011:
			case 1012:
			case 1013:
			case 1014:
			case 1015:
			case 1016:
			case 1017:
			case 1018:
			case 1019:
			case 1020:
			case 1021:
			case 1022:
			case 1023:
			case 1024:
			case 1025:
			case 1026:
			case 1027:
			case 1028:
			case 1029:
			case 1030:
			case 1031:
			case 1032:
			case 1033:
			case 1034:
			case 1035:
			case 1036:
			case 1037:
			case 1038:
			case 1039:
			case 1040:
			case 1041:
			case 1042:
			case 1043:
			case 1044:
			case 1045:
			case 1046:
			case 1047:
			case 1048:
			case 1049:
			case 1050:
			case 1051:
			case 1052:
			case 1053:
			case 1054:
			case 1055:
			case 1056:
			case 1057:
			case 1058:
			case 1059:
			case 1060:
			case 1061:
			case 1062:
			case 1063:
			case 1064:
			case 1065:
			case 1066:
			case 1067:
			case 1068:
			case 1069:
			case 1070:
			case 1071:
			case 1072:
			case 1074:
			case 1075:
			case 1076:
			case 1077:
			case 1078:
			case 1079:
			case 1080:
			case 1081:
			case 1082:
			case 1083:
			case 1084:
			case 1085:
			case 1086:
			case 1087:
			case 1089:
			case 1090:
			case 1091:
			case 1092:
			case 1093:
			case 1094:
			case 1095:
			case 1096:
			case 1098:
			case 1099:
			case 1100:
			case 1101:
			case 1102:
			case 1103:
			case 1104:
			case 1105:
			case 1106:
			case 1107:
			case 1108:
			case 1109:
			case 1110:
			case 1111:
			case 1112:
			case 1113:
			case 1114:
			case 1116:
			case 1117:
			case 1118:
			case 1119:
			case 1120:
			case 1121:
			case 1122:
			case 1123:
			case 1124:
			case 1125:
			case 1127:
			case 1129:
			case 1130:
			case 1131:
			case 1132:
			case 1133:
			case 1134:
			case 1135:
			case 1136:
			case 1137:
			case 1138:
			case 1139:
			case 1140:
			case 1142:
			case 1143:
			case 1144:
			case 1145:
			case 1146:
			case 1147:
			case 1148:
			case 1149:
			case 1150:
			case 1151:
			case 1152:
			case 1153:
			case 1154:
			case 1155:
			case 1156:
			case 1157:
			case 1158:
			case 1159:
			case 1160:
			case 1161:
			case 1162:
			case 1163:
			case 1164:
			case 1165:
			case 1166:
			case 1167:
			case 1169:
			case 1170:
			case 1171:
			case 1173:
			case 1174:
			case 1175:
			case 1176:
			case 1177:
			case 1178:
			case 1179:
			case 1180:
			case 1181:
			case 1182:
			case 1183:
			case 1184:
			case 1185:
			case 1186:
			case 1187:
			case 1188:
			case 1189:
			case 1190:
			case 1191:
			case 1192:
			case 1193:
			case 1194:
			case 1195:
			case 1197:
			case 1198:
			case 1199:
			case 1200:
			case 1201:
			case 1202:
			case 1203:
			case 1204:
			case 1205:
			case 1206:
			case 1207:
			case 1208:
			case 1209:
			case 1210:
			case 1211:
			case 1212:
			case 1213:
			case 1214:
			case 1215:
			case 1216:
			case 1217:
			case 1218:
			case 1219:
			case 1220:
			case 1221:
			case 1222:
			case 1223:
			case 1224:
			case 1225:
			case 1226:
			case 1228:
			case 1229:
			case 1230:
			case 1231:
			case 1232:
			case 1236:
			case 1237:
			case 1241:
			case 1242:
			case 1243:
			case 1244:
			case 1245:
			case 1246:
			case 1247:
			case 1248:
			case 1249:
			case 1250:
			case 1252:
			case 1253:
			case 1254:
			case 1255:
			case 1256:
			case 1257:
			case 1258:
			case 1259:
			case 1260:
			case 1261:
			case 1262:
			case 1263:
			case 1264:
			case 1265:
			case 1266:
			case 1267:
			case 1268:
			case 1269:
			case 1270:
			case 1271:
			case 1272:
			case 1273:
			case 1274:
			case 1275:
			case 1276:
			case 1277:
			case 1278:
			case 1279:
			case 1280:
			case 1281:
			case 1282:
			case 1283:
			case 1284:
			case 1285:
			case 1286:
			case 1287:
			case 1288:
			case 1289:
			case 1290:
			case 1291:
			case 1292:
			case 1293:
			case 1294:
			case 1295:
			case 1296:
			case 1297:
			case 1298:
			case 1299:
			case 1300:
			case 1301:
			case 1302:
			case 1303:
			case 1304:
			case 1305:
			case 1306:
			case 1308:
			case 1309:
			case 1310:
			case 1311:
			case 1312:
			case 1313:
			case 1314:
			case 1315:
			case 1316:
			case 1317:
			case 1318:
			case 1319:
			case 1320:
			case 1321:
			case 1322:
			case 1323:
			case 1325:
			case 1326:
			case 1327:
			case 1328:
			case 1329:
			case 1330:
			case 1331:
			case 1332:
			case 1333:
			case 1334:
			case 1335:
			case 1336:
			case 1337:
			case 1338:
			case 1339:
			case 1340:
			case 1341:
			case 1342:
			case 1343:
			case 1344:
			case 1345:
			case 1346:
			case 1347:
			case 1348:
			case 1349:
			case 1350:
			case 1351:
			case 1352:
			case 1353:
			case 1354:
			case 1355:
			case 1356:
			case 1357:
			case 1358:
			case 1359:
			case 1360:
			case 1361:
			case 1362:
			case 1363:
			case 1364:
			case 1365:
			case 1366:
			case 1367:
			case 1368:
			case 1369:
			case 1370:
			case 1371:
			case 1372:
			case 1373:
			case 1374:
			case 1375:
			case 1376:
			case 1377:
			case 1378:
			case 1379:
			case 1380:
			case 1381:
			case 1382:
			case 1383:
			case 1384:
			case 1385:
			case 1386:
			case 1387:
			case 1388:
			case 1389:
			case 1390:
			case 1391:
			case 1392:
			case 1393:
			case 1394:
			case 1395:
			case 1396:
			case 1397:
			case 1399:
			case 1400:
			case 1401:
			case 1402:
			case 1403:
			case 1404:
			case 1405:
			case 1406:
			case 1407:
			case 1408:
			case 1409:
			case 1410:
			case 1411:
			case 1412:
			case 1413:
			case 1414:
			case 1416:
			case 1417:
			case 1418:
			case 1419:
			case 1420:
			case 1421:
			case 1422:
			case 1423:
			case 1424:
			case 1425:
			case 1426:
			case 1427:
			case 1428:
			case 1429:
			case 1430:
			case 1431:
			case 1432:
			case 1433:
			case 1435:
			case 1436:
			case 1437:
			case 1438:
			case 1439:
			case 1440:
			case 1441:
			case 1442:
			case 1443:
			case 1444:
			case 1445:
			case 1446:
			case 1447:
			case 1448:
			case 1449:
			case 1450:
			case 1451:
			case 1452:
			case 1453:
			case 1454:
			case 1455:
			case 1456:
			case 1457:
			case 1458:
			case 1459:
			case 1460:
			case 1461:
			case 1462:
			case 1463:
			case 1464:
			case 1465:
			case 1466:
			case 1467:
			case 1468:
			case 1469:
			case 1470:
			case 1471:
			case 1472:
			case 1473:
			case 1474:
			case 1475:
			case 1476:
			case 1477:
			case 1478:
			case 1479:
			case 1480:
			case 1481:
			case 1482:
			case 1483:
			case 1484:
			case 1485:
			case 1486:
			case 1487:
			case 1488:
			case 1489:
			case 1491:
			case 1492:
			case 1493:
			case 1494:
			case 1495:
			case 1496:
			case 1497:
			case 1499:
			case 1500:
			case 1501:
			case 1502:
			case 1503:
			case 1504:
			case 1505:
			case 1506:
			case 1507:
			case 1508:
			case 1509:
			case 1510:
			case 1511:
			case 1512:
			case 1513:
			case 1514:
			case 1515:
			case 1516:
			case 1518:
			case 1519:
			case 1520:
			case 1521:
			case 1522:
			case 1523:
			case 1524:
			case 1525:
			case 1526:
			case 1527:
			case 1528:
			case 1529:
			case 1530:
			case 1531:
			case 1532:
			case 1533:
			case 1534:
			case 1536:
			case 1537:
			case 1538:
			case 1539:
			case 1540:
			case 1541:
			case 1542:
			case 1543:
			case 1544:
			case 1545:
			case 1546:
			case 1547:
			case 1548:
			case 1549:
			case 1550:
			case 1551:
			case 1552:
			case 1553:
			case 1554:
			case 1555:
			case 1556:
			case 1557:
			case 1558:
			case 1559:
			case 1560:
			case 1561:
			case 1562:
			case 1563:
			case 1564:
			case 1565:
			case 1566:
			case 1567:
			case 1568:
			case 1570:
			case 1571:
			case 1572:
			case 1573:
			case 1574:
			case 1575:
			case 1576:
			case 1577:
			case 1578:
			case 1579:
			case 1580:
			case 1581:
			case 1582:
			case 1583:
			case 1584:
			case 1585:
			case 1586:
			case 1587:
			case 1588:
			case 1589:
			case 1590:
			case 1591:
			case 1592:
			case 1593:
			case 1594:
			case 1595:
			case 1596:
			case 1597:
			case 1598:
			case 1599:
			case 1600:
			case 1601:
			case 1602:
			case 1603:
			case 1604:
			case 1605:
			case 1606:
			case 1607:
			case 1608:
			case 1609:
			case 1610:
			case 1611:
			case 1612:
			case 1613:
			case 1614:
			case 1615:
			case 1616:
			case 1617:
			case 1618:
			case 1619:
			case 1620:
			case 1621:
			case 1622:
			case 1623:
			case 1624:
			case 1625:
			case 1626:
			case 1628:
			case 1629:
			case 1630:
			case 1631:
			case 1632:
			case 1633:
			case 1634:
			case 1635:
			case 1636:
			case 1637:
			case 1638:
			case 1639:
			case 1640:
			case 1641:
			case 1642:
			case 1643:
			case 1644:
			case 1645:
			case 1646:
			case 1647:
			case 1648:
			case 1649:
			case 1650:
			case 1651:
			case 1652:
			case 1653:
			case 1654:
			case 1655:
			case 1656:
			case 1657:
			case 1658:
			case 1659:
			case 1660:
			case 1661:
			case 1662:
			case 1663:
			case 1664:
			case 1665:
			case 1666:
			case 1667:
			case 1668:
			case 1669:
			case 1670:
			case 1671:
			case 1672:
			case 1673:
			case 1674:
			case 1675:
			case 1676:
			case 1677:
			case 1678:
			case 1679:
			case 1680:
			case 1681:
			case 1682:
			case 1683:
			case 1684:
			case 1685:
			case 1686:
			case 1687:
			case 1688:
			case 1689:
			case 1690:
			case 1691:
			case 1692:
			case 1693:
			case 1694:
			case 1695:
			case 1696:
			case 1697:
			case 1698:
			case 1699:
			case 1700:
			case 1701:
			case 1702:
			case 1703:
			case 1704:
			case 1705:
			case 1706:
			case 1707:
			case 1708:
			case 1709:
			case 1710:
			case 1711:
			case 1712:
			case 1713:
			case 1714:
			case 1715:
			case 1716:
			case 1717:
			case 1718:
			case 1719:
			case 1720:
			case 1721:
			case 1722:
			case 1723:
			case 1724:
			case 1725:
			case 1726:
			case 1727:
			case 1728:
			case 1729:
			case 1730:
			case 1731:
			case 1732:
			case 1733:
			case 1734:
			case 1735:
			case 1736:
			case 1737:
			case 1738:
			case 1739:
			case 1740:
			case 1741:
			case 1742:
			case 1743:
			case 1744:
			case 1745:
			case 1746:
			case 1747:
			case 1748:
			case 1749:
			case 1750:
			case 1751:
			case 1752:
			case 1753:
			case 1754:
			case 1755:
			case 1756:
			case 1757:
			case 1758:
			case 1759:
			case 1760:
			case 1761:
			case 1762:
			case 1763:
			case 1764:
			case 1765:
			case 1766:
			case 1767:
			case 1768:
			case 1769:
			case 1770:
			case 1771:
			case 1772:
			case 1773:
			case 1774:
			case 1775:
			case 1776:
			case 1777:
			case 1778:
			case 1779:
			case 1780:
			case 1781:
			case 1782:
			case 1783:
			case 1784:
			case 1785:
			case 1786:
			case 1787:
			case 1788:
			case 1789:
			case 1790:
			case 1791:
			case 1792:
			case 1793:
			case 1794:
			case 1795:
			case 1796:
			case 1797:
			case 1798:
			case 1799:
			case 1800:
			case 1801:
			case 1802:
			case 1803:
			case 1804:
			case 1805:
			case 1806:
			case 1807:
			case 1808:
			case 1809:
			case 1810:
			case 1811:
			case 1812:
			case 1813:
			case 1814:
			case 1815:
			case 1816:
			case 1817:
			case 1818:
			case 1819:
			case 1820:
			case 1821:
			case 1822:
			case 1823:
			case 1824:
			case 1825:
			case 1826:
			case 1827:
			case 1828:
			case 1829:
			case 1830:
			case 1831:
			case 1832:
			case 1833:
			case 1834:
			case 1835:
			case 1836:
			case 1837:
			case 1838:
			case 1839:
			case 1840:
			case 1841:
			case 1842:
			case 1843:
			case 1844:
			case 1845:
			case 1846:
			case 1847:
			case 1848:
			case 1849:
			case 1850:
			case 1851:
			case 1852:
			case 1853:
			case 1854:
			case 1855:
			case 1856:
			case 1857:
			case 1858:
			case 1859:
			case 1860:
			case 1861:
			case 1862:
			case 1863:
			case 1864:
			case 1865:
			case 1866:
			case 1867:
			case 1868:
			case 1869:
			case 1870:
			case 1871:
			case 1872:
			case 1873:
			case 1874:
			case 1875:
			case 1876:
			case 1877:
			case 1878:
			case 1879:
			case 1880:
			case 1881:
			case 1882:
			case 1883:
			case 1884:
			case 1885:
			case 1886:
			case 1887:
			case 1888:
			case 1889:
			case 1890:
			case 1891:
			case 1892:
			case 1893:
			case 1894:
			case 1895:
			case 1896:
			case 1897:
			case 1898:
			case 1899:
			case 1900:
			case 1901:
			case 1902:
			case 1903:
			case 1904:
			case 1905:
			case 1906:
			case 1907:
			case 1908:
			case 1909:
			case 1910:
			case 1911:
			case 1912:
			case 1913:
			case 1914:
			case 1915:
			case 1916:
			case 1917:
			case 1918:
			case 1919:
			case 1920:
			case 1921:
			case 1922:
			case 1923:
			case 1924:
			case 1925:
			case 1926:
			case 1927:
			case 1928:
			case 1929:
			case 1930:
			case 1931:
			case 1932:
			case 1933:
			case 1934:
			case 1935:
			case 1936:
			case 1937:
			case 1939:
			case 1940:
			case 1941:
			case 1942:
			case 1943:
			case 1944:
			case 1945:
			case 1946:
			case 1947:
			case 1948:
			case 1949:
			case 1950:
			case 1951:
			case 1952:
			case 1953:
			case 1954:
			case 1955:
			case 1956:
			case 1957:
			case 1958:
			case 1959:
			case 1960:
			case 1961:
			case 1962:
			case 1963:
			case 1965:
			case 1966:
			case 1967:
			case 1968:
			case 1969:
			case 1970:
			case 1971:
			case 1972:
			case 1973:
			case 1974:
			case 1975:
			case 1976:
			case 1977:
			case 1978:
			case 1979:
			case 1980:
			case 1981:
			case 1982:
			case 1983:
			case 1984:
			case 1985:
			case 1986:
			case 1987:
			case 1988:
			case 1989:
			case 1990:
			case 1991:
			case 1992:
			case 1993:
			case 1994:
			case 1995:
			case 1996:
			case 1997:
			case 1998:
			case 1999:
			case 2000:
			case 2003:
			case 2004:
			case 2005:
			case 2006:
			case 2007:
			case 2008:
			case 2009:
			case 2010:
			case 2011:
			case 2012:
			case 2013:
			case 2014:
			case 2015:
			case 2016:
			case 2017:
			case 2018:
			case 2019:
			case 2020:
			case 2021:
			case 2022:
			case 2023:
			case 2024:
			case 2026:
			case 2027:
			case 2028:
			case 2029:
			case 2030:
			case 2031:
			case 2032:
			case 2033:
			case 2034:
			case 2035:
			case 2036:
			case 2037:
			case 2038:
			case 2039:
			case 2040:
			case 2041:
			case 2042:
			case 2043:
			case 2044:
			case 2045:
			case 2046:
			case 2047:
			case 2048:
			case 2049:
			case 2050:
			case 2051:
			case 2052:
			case 2053:
			case 2054:
			case 2055:
			case 2056:
			case 2057:
			case 2058:
			case 2059:
			case 2060:
			case 2061:
			case 2062:
			case 2063:
			case 2064:
			case 2065:
			case 2066:
			case 2067:
			case 2068:
			case 2069:
			case 2070:
			case 2071:
			case 2072:
			case 2074:
			case 2075:
			case 2076:
			case 2077:
			case 2078:
			case 2079:
			case 2080:
			case 2081:
			case 2082:
			case 2083:
			case 2084:
			case 2085:
			case 2086:
			case 2087:
			case 2088:
			case 2089:
			case 2090:
			case 2091:
			case 2092:
			case 2093:
			case 2094:
			case 2095:
			case 2096:
			case 2097:
			case 2098:
			case 2100:
			case 2101:
			case 2102:
			case 2103:
			case 2104:
			case 2105:
			case 2106:
			case 2107:
			case 2108:
			case 2109:
			case 2110:
			case 2111:
			case 2112:
			case 2113:
			case 2115:
			case 2116:
			case 2117:
			case 2118:
			case 2119:
			case 2120:
			case 2122:
			case 2123:
			case 2124:
			case 2125:
			case 2126:
			case 2128:
			case 2129:
			case 2130:
			case 2131:
			case 2132:
			case 2133:
			case 2134:
			case 2135:
			case 2136:
			case 2137:
			case 2138:
			case 2139:
			case 2140:
			case 2141:
			case 2142:
			case 2143:
			case 2145:
			case 2146:
			case 2147:
			case 2148:
			case 2149:
			case 2150:
			case 2151:
			case 2152:
			case 2153:
			case 2154:
			case 2155:
			case 2156:
			case 2157:
			case 2158:
			case 2159:
			case 2160:
			case 2161:
			case 2162:
			case 2163:
			case 2164:
			case 2165:
			case 2166:
			case 2168:
			case 2169:
			case 2170:
			case 2171:
			case 2172:
			case 2173:
			case 2174:
			case 2175:
			case 2176:
			case 2177:
			case 2178:
			case 2179:
			case 2180:
			case 2181:
			case 2182:
			case 2183:
			case 2184:
			case 2185:
			case 2186:
			case 2187:
			case 2188:
			case 2189:
			case 2191:
			case 2192:
			case 2193:
			case 2194:
			case 2195:
			case 2196:
			case 2197:
			case 2198:
			case 2199:
			case 2200:
			case 2201:
			case 2202:
			case 2203:
			case 2204:
			case 2205:
			case 2206:
			case 2207:
			case 2208:
			case 2209:
			case 2210:
			case 2211:
			case 2216:
			case 2220:
			case 2252:
				{
				this.state = 10901;
				this.type_spec();
				this.state = 10904;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===1221) {
					{
					this.state = 10902;
					this.match(PlSqlParser.PATH);
					this.state = 10903;
					this.concatenation(0);
					}
				}

				this.state = 10907;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===351) {
					{
					this.state = 10906;
					this.xml_general_default_part();
					}
				}

				}
				break;
			default:
				throw new NoViableAltException(this);
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public xml_general_default_part(): Xml_general_default_partContext {
		let localctx: Xml_general_default_partContext = new Xml_general_default_partContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1330, PlSqlParser.RULE_xml_general_default_part);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 10911;
			this.match(PlSqlParser.DEFAULT);
			this.state = 10912;
			this.concatenation(0);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public xml_multiuse_expression_element(): Xml_multiuse_expression_elementContext {
		let localctx: Xml_multiuse_expression_elementContext = new Xml_multiuse_expression_elementContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1332, PlSqlParser.RULE_xml_multiuse_expression_element);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 10914;
			this.expression();
			this.state = 10921;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===61) {
				{
				this.state = 10915;
				this.match(PlSqlParser.AS);
				this.state = 10919;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 1495, this._ctx) ) {
				case 1:
					{
					this.state = 10916;
					this.id_expression();
					}
					break;
				case 2:
					{
					this.state = 10917;
					this.match(PlSqlParser.EVALNAME);
					this.state = 10918;
					this.concatenation(0);
					}
					break;
				}
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public xmlroot_param_version_part(): Xmlroot_param_version_partContext {
		let localctx: Xmlroot_param_version_partContext = new Xmlroot_param_version_partContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1334, PlSqlParser.RULE_xmlroot_param_version_part);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 10923;
			this.match(PlSqlParser.VERSION);
			this.state = 10927;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1497, this._ctx) ) {
			case 1:
				{
				this.state = 10924;
				this.match(PlSqlParser.NO);
				this.state = 10925;
				this.match(PlSqlParser.VALUE);
				}
				break;
			case 2:
				{
				this.state = 10926;
				this.expression();
				}
				break;
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public xmlroot_param_standalone_part(): Xmlroot_param_standalone_partContext {
		let localctx: Xmlroot_param_standalone_partContext = new Xmlroot_param_standalone_partContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1336, PlSqlParser.RULE_xmlroot_param_standalone_part);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 10929;
			this.match(PlSqlParser.STANDALONE);
			this.state = 10935;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 2170:
				{
				this.state = 10930;
				this.match(PlSqlParser.YES);
				}
				break;
			case 1010:
				{
				this.state = 10931;
				this.match(PlSqlParser.NO);
				this.state = 10933;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===2074) {
					{
					this.state = 10932;
					this.match(PlSqlParser.VALUE);
					}
				}

				}
				break;
			default:
				throw new NoViableAltException(this);
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public xmlserialize_param_enconding_part(): Xmlserialize_param_enconding_partContext {
		let localctx: Xmlserialize_param_enconding_partContext = new Xmlserialize_param_enconding_partContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1338, PlSqlParser.RULE_xmlserialize_param_enconding_part);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 10937;
			this.match(PlSqlParser.ENCODING);
			this.state = 10938;
			this.concatenation(0);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public xmlserialize_param_version_part(): Xmlserialize_param_version_partContext {
		let localctx: Xmlserialize_param_version_partContext = new Xmlserialize_param_version_partContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1340, PlSqlParser.RULE_xmlserialize_param_version_part);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 10940;
			this.match(PlSqlParser.VERSION);
			this.state = 10941;
			this.concatenation(0);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public xmlserialize_param_ident_part(): Xmlserialize_param_ident_partContext {
		let localctx: Xmlserialize_param_ident_partContext = new Xmlserialize_param_ident_partContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1342, PlSqlParser.RULE_xmlserialize_param_ident_part);
		let _la: number;
		try {
			this.state = 10951;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 1010:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 10943;
				this.match(PlSqlParser.NO);
				this.state = 10944;
				this.match(PlSqlParser.INDENT);
				}
				break;
			case 623:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 10945;
				this.match(PlSqlParser.INDENT);
				this.state = 10949;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===1535) {
					{
					this.state = 10946;
					this.match(PlSqlParser.SIZE);
					this.state = 10947;
					this.match(PlSqlParser.EQUALS_OP);
					this.state = 10948;
					this.concatenation(0);
					}
				}

				}
				break;
			default:
				throw new NoViableAltException(this);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public sql_plus_command(): Sql_plus_commandContext {
		let localctx: Sql_plus_commandContext = new Sql_plus_commandContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1344, PlSqlParser.RULE_sql_plus_command);
		let _la: number;
		try {
			this.state = 10961;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 2230:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 10953;
				this.match(PlSqlParser.SOLIDUS);
				}
				break;
			case 480:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 10954;
				this.match(PlSqlParser.EXIT);
				}
				break;
			case 2250:
				this.enterOuterAlt(localctx, 3);
				{
				this.state = 10955;
				this.match(PlSqlParser.PROMPT_MESSAGE);
				}
				break;
			case 1520:
				this.enterOuterAlt(localctx, 4);
				{
				this.state = 10956;
				this.match(PlSqlParser.SHOW);
				this.state = 10957;
				_la = this._input.LA(1);
				if(!(_la===454 || _la===458)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				}
				break;
			case 2251:
				this.enterOuterAlt(localctx, 5);
				{
				this.state = 10958;
				this.match(PlSqlParser.START_CMD);
				}
				break;
			case 2112:
				this.enterOuterAlt(localctx, 6);
				{
				this.state = 10959;
				this.whenever_command();
				}
				break;
			case 1510:
				this.enterOuterAlt(localctx, 7);
				{
				this.state = 10960;
				this.set_command();
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public whenever_command(): Whenever_commandContext {
		let localctx: Whenever_commandContext = new Whenever_commandContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1346, PlSqlParser.RULE_whenever_command);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 10963;
			this.match(PlSqlParser.WHENEVER);
			this.state = 10964;
			_la = this._input.LA(1);
			if(!(_la===1174 || _la===1555)) {
			this._errHandler.recoverInline(this);
			}
			else {
				this._errHandler.reportMatch(this);
			    this.consume();
			}
			this.state = 10975;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 480:
				{
				this.state = 10965;
				this.match(PlSqlParser.EXIT);
				this.state = 10970;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 1503, this._ctx) ) {
				case 1:
					{
					this.state = 10966;
					this.match(PlSqlParser.SUCCESS);
					}
					break;
				case 2:
					{
					this.state = 10967;
					this.match(PlSqlParser.FAILURE);
					}
					break;
				case 3:
					{
					this.state = 10968;
					this.match(PlSqlParser.WARNING);
					}
					break;
				case 4:
					{
					this.state = 10969;
					this.variable_name();
					}
					break;
				}
				this.state = 10972;
				_la = this._input.LA(1);
				if(!(_la===218 || _la===1441)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				}
				break;
			case 266:
				{
				this.state = 10973;
				this.match(PlSqlParser.CONTINUE);
				this.state = 10974;
				_la = this._input.LA(1);
				if(!(_la===218 || _la===1007 || _la===1441)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public set_command(): Set_commandContext {
		let localctx: Set_commandContext = new Set_commandContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1348, PlSqlParser.RULE_set_command);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 10977;
			this.match(PlSqlParser.SET);
			this.state = 10978;
			this.regular_id();
			this.state = 10984;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1505, this._ctx) ) {
			case 1:
				{
				this.state = 10979;
				this.match(PlSqlParser.CHAR_STRING);
				}
				break;
			case 2:
				{
				this.state = 10980;
				this.match(PlSqlParser.ON);
				}
				break;
			case 3:
				{
				this.state = 10981;
				this.match(PlSqlParser.OFF);
				}
				break;
			case 4:
				{
				this.state = 10982;
				this.numeric();
				}
				break;
			case 5:
				{
				this.state = 10983;
				this.regular_id();
				}
				break;
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public partition_extension_clause(): Partition_extension_clauseContext {
		let localctx: Partition_extension_clauseContext = new Partition_extension_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1350, PlSqlParser.RULE_partition_extension_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 10986;
			_la = this._input.LA(1);
			if(!(_la===1207 || _la===1606)) {
			this._errHandler.recoverInline(this);
			}
			else {
				this._errHandler.reportMatch(this);
			    this.consume();
			}
			this.state = 10988;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===546) {
				{
				this.state = 10987;
				this.match(PlSqlParser.FOR);
				}
			}

			this.state = 10990;
			this.match(PlSqlParser.LEFT_PAREN);
			this.state = 10992;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & 2684352383) !== 0) || ((((_la - 64)) & ~0x1F) === 0 && ((1 << (_la - 64)) & 3220168703) !== 0) || ((((_la - 96)) & ~0x1F) === 0 && ((1 << (_la - 96)) & 4294965247) !== 0) || ((((_la - 128)) & ~0x1F) === 0 && ((1 << (_la - 128)) & 2147221503) !== 0) || ((((_la - 160)) & ~0x1F) === 0 && ((1 << (_la - 160)) & 4293910527) !== 0) || ((((_la - 192)) & ~0x1F) === 0 && ((1 << (_la - 192)) & 4294967295) !== 0) || ((((_la - 224)) & ~0x1F) === 0 && ((1 << (_la - 224)) & 4160749311) !== 0) || ((((_la - 256)) & ~0x1F) === 0 && ((1 << (_la - 256)) & 4294967295) !== 0) || ((((_la - 289)) & ~0x1F) === 0 && ((1 << (_la - 289)) & 2147483647) !== 0) || ((((_la - 321)) & ~0x1F) === 0 && ((1 << (_la - 321)) & 4294967295) !== 0) || ((((_la - 353)) & ~0x1F) === 0 && ((1 << (_la - 353)) & 4294705151) !== 0) || ((((_la - 385)) & ~0x1F) === 0 && ((1 << (_la - 385)) & 2080374527) !== 0) || ((((_la - 417)) & ~0x1F) === 0 && ((1 << (_la - 417)) & 4026433535) !== 0) || ((((_la - 449)) & ~0x1F) === 0 && ((1 << (_la - 449)) & 4261412863) !== 0) || ((((_la - 481)) & ~0x1F) === 0 && ((1 << (_la - 481)) & 4294967295) !== 0) || ((((_la - 513)) & ~0x1F) === 0 && ((1 << (_la - 513)) & 4294967295) !== 0) || ((((_la - 545)) & ~0x1F) === 0 && ((1 << (_la - 545)) & 3925868029) !== 0) || ((((_la - 577)) & ~0x1F) === 0 && ((1 << (_la - 577)) & 4278189823) !== 0) || ((((_la - 609)) & ~0x1F) === 0 && ((1 << (_la - 609)) & 4290772991) !== 0) || ((((_la - 641)) & ~0x1F) === 0 && ((1 << (_la - 641)) & 4026529791) !== 0) || ((((_la - 673)) & ~0x1F) === 0 && ((1 << (_la - 673)) & 4290478079) !== 0) || ((((_la - 705)) & ~0x1F) === 0 && ((1 << (_la - 705)) & 4294967295) !== 0) || ((((_la - 737)) & ~0x1F) === 0 && ((1 << (_la - 737)) & 4293918719) !== 0) || ((((_la - 769)) & ~0x1F) === 0 && ((1 << (_la - 769)) & 4294967167) !== 0) || ((((_la - 801)) & ~0x1F) === 0 && ((1 << (_la - 801)) & 4294967295) !== 0) || ((((_la - 833)) & ~0x1F) === 0 && ((1 << (_la - 833)) & 4160749055) !== 0) || ((((_la - 865)) & ~0x1F) === 0 && ((1 << (_la - 865)) & 4290772991) !== 0) || ((((_la - 897)) & ~0x1F) === 0 && ((1 << (_la - 897)) & 4294967295) !== 0) || ((((_la - 929)) & ~0x1F) === 0 && ((1 << (_la - 929)) & 4278190079) !== 0) || ((((_la - 961)) & ~0x1F) === 0 && ((1 << (_la - 961)) & 4294967295) !== 0) || ((((_la - 993)) & ~0x1F) === 0 && ((1 << (_la - 993)) & 4294967295) !== 0) || ((((_la - 1025)) & ~0x1F) === 0 && ((1 << (_la - 1025)) & 4294967295) !== 0) || ((((_la - 1057)) & ~0x1F) === 0 && ((1 << (_la - 1057)) & 2147483647) !== 0) || ((((_la - 1089)) & ~0x1F) === 0 && ((1 << (_la - 1089)) & 4227858431) !== 0) || ((((_la - 1121)) & ~0x1F) === 0 && ((1 << (_la - 1121)) & 4293918559) !== 0) || ((((_la - 1153)) & ~0x1F) === 0 && ((1 << (_la - 1153)) & 4294410239) !== 0) || ((((_la - 1185)) & ~0x1F) === 0 && ((1 << (_la - 1185)) & 4294965247) !== 0) || ((((_la - 1217)) & ~0x1F) === 0 && ((1 << (_la - 1217)) & 4279827455) !== 0) || ((((_la - 1249)) & ~0x1F) === 0 && ((1 << (_la - 1249)) & 4294967291) !== 0) || ((((_la - 1281)) & ~0x1F) === 0 && ((1 << (_la - 1281)) & 4294967295) !== 0) || ((((_la - 1313)) & ~0x1F) === 0 && ((1 << (_la - 1313)) & 4294965247) !== 0) || ((((_la - 1345)) & ~0x1F) === 0 && ((1 << (_la - 1345)) & 4294967295) !== 0) || ((((_la - 1377)) & ~0x1F) === 0 && ((1 << (_la - 1377)) & 4292870143) !== 0) || ((((_la - 1409)) & ~0x1F) === 0 && ((1 << (_la - 1409)) & 4261412799) !== 0) || ((((_la - 1441)) & ~0x1F) === 0 && ((1 << (_la - 1441)) & 4294967295) !== 0) || ((((_la - 1473)) & ~0x1F) === 0 && ((1 << (_la - 1473)) & 4261281791) !== 0) || ((((_la - 1505)) & ~0x1F) === 0 && ((1 << (_la - 1505)) & 3221221375) !== 0) || ((((_la - 1537)) & ~0x1F) === 0 && ((1 << (_la - 1537)) & 4294967295) !== 0) || ((((_la - 1570)) & ~0x1F) === 0 && ((1 << (_la - 1570)) & 4294967295) !== 0) || ((((_la - 1602)) & ~0x1F) === 0 && ((1 << (_la - 1602)) & 4261412863) !== 0) || ((((_la - 1634)) & ~0x1F) === 0 && ((1 << (_la - 1634)) & 4294967295) !== 0) || ((((_la - 1666)) & ~0x1F) === 0 && ((1 << (_la - 1666)) & 4294967295) !== 0) || ((((_la - 1698)) & ~0x1F) === 0 && ((1 << (_la - 1698)) & 4294967295) !== 0) || ((((_la - 1730)) & ~0x1F) === 0 && ((1 << (_la - 1730)) & 4294967295) !== 0) || ((((_la - 1762)) & ~0x1F) === 0 && ((1 << (_la - 1762)) & 4294967295) !== 0) || ((((_la - 1794)) & ~0x1F) === 0 && ((1 << (_la - 1794)) & 4294967295) !== 0) || ((((_la - 1826)) & ~0x1F) === 0 && ((1 << (_la - 1826)) & 4294967295) !== 0) || ((((_la - 1858)) & ~0x1F) === 0 && ((1 << (_la - 1858)) & 4294967295) !== 0) || ((((_la - 1890)) & ~0x1F) === 0 && ((1 << (_la - 1890)) & 4294967295) !== 0) || ((((_la - 1922)) & ~0x1F) === 0 && ((1 << (_la - 1922)) & 4294901759) !== 0) || ((((_la - 1954)) & ~0x1F) === 0 && ((1 << (_la - 1954)) & 4294966271) !== 0) || ((((_la - 1986)) & ~0x1F) === 0 && ((1 << (_la - 1986)) & 4294868991) !== 0) || ((((_la - 2018)) & ~0x1F) === 0 && ((1 << (_la - 2018)) & 4294967167) !== 0) || ((((_la - 2050)) & ~0x1F) === 0 && ((1 << (_la - 2050)) & 4286578687) !== 0) || ((((_la - 2082)) & ~0x1F) === 0 && ((1 << (_la - 2082)) & 4294836223) !== 0) || ((((_la - 2115)) & ~0x1F) === 0 && ((1 << (_la - 2115)) & 3758092223) !== 0) || ((((_la - 2147)) & ~0x1F) === 0 && ((1 << (_la - 2147)) & 4293918719) !== 0) || ((((_la - 2179)) & ~0x1F) === 0 && ((1 << (_la - 2179)) & 4294967295) !== 0) || ((((_la - 2211)) & ~0x1F) === 0 && ((1 << (_la - 2211)) & 541266915) !== 0) || _la===2246 || _la===2252) {
				{
				this.state = 10991;
				this.expressions();
				}
			}

			this.state = 10994;
			this.match(PlSqlParser.RIGHT_PAREN);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public column_alias(): Column_aliasContext {
		let localctx: Column_aliasContext = new Column_aliasContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1352, PlSqlParser.RULE_column_alias);
		let _la: number;
		try {
			this.state = 11004;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1510, this._ctx) ) {
			case 1:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 10997;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===61) {
					{
					this.state = 10996;
					this.match(PlSqlParser.AS);
					}
				}

				this.state = 11001;
				this._errHandler.sync(this);
				switch (this._input.LA(1)) {
				case 1:
				case 2:
				case 3:
				case 4:
				case 5:
				case 6:
				case 7:
				case 8:
				case 9:
				case 10:
				case 11:
				case 12:
				case 13:
				case 14:
				case 15:
				case 16:
				case 17:
				case 18:
				case 19:
				case 20:
				case 21:
				case 22:
				case 23:
				case 24:
				case 25:
				case 26:
				case 27:
				case 28:
				case 29:
				case 30:
				case 31:
				case 32:
				case 33:
				case 34:
				case 36:
				case 37:
				case 38:
				case 40:
				case 41:
				case 42:
				case 44:
				case 45:
				case 46:
				case 47:
				case 49:
				case 50:
				case 51:
				case 52:
				case 53:
				case 54:
				case 55:
				case 56:
				case 57:
				case 58:
				case 59:
				case 60:
				case 63:
				case 64:
				case 65:
				case 66:
				case 67:
				case 68:
				case 69:
				case 70:
				case 71:
				case 72:
				case 73:
				case 74:
				case 75:
				case 76:
				case 78:
				case 79:
				case 80:
				case 81:
				case 82:
				case 83:
				case 85:
				case 86:
				case 87:
				case 88:
				case 89:
				case 90:
				case 91:
				case 92:
				case 93:
				case 95:
				case 96:
				case 97:
				case 98:
				case 99:
				case 100:
				case 101:
				case 102:
				case 103:
				case 104:
				case 105:
				case 106:
				case 108:
				case 109:
				case 110:
				case 111:
				case 112:
				case 113:
				case 114:
				case 115:
				case 116:
				case 117:
				case 118:
				case 119:
				case 120:
				case 121:
				case 122:
				case 123:
				case 124:
				case 125:
				case 126:
				case 127:
				case 128:
				case 129:
				case 130:
				case 131:
				case 132:
				case 133:
				case 134:
				case 135:
				case 136:
				case 137:
				case 138:
				case 139:
				case 140:
				case 141:
				case 142:
				case 143:
				case 144:
				case 145:
				case 147:
				case 148:
				case 149:
				case 150:
				case 151:
				case 152:
				case 153:
				case 154:
				case 155:
				case 156:
				case 157:
				case 158:
				case 160:
				case 161:
				case 162:
				case 163:
				case 164:
				case 165:
				case 166:
				case 167:
				case 168:
				case 169:
				case 170:
				case 171:
				case 172:
				case 174:
				case 175:
				case 176:
				case 177:
				case 178:
				case 179:
				case 181:
				case 182:
				case 183:
				case 184:
				case 185:
				case 186:
				case 187:
				case 188:
				case 189:
				case 190:
				case 191:
				case 192:
				case 193:
				case 194:
				case 195:
				case 196:
				case 197:
				case 198:
				case 199:
				case 200:
				case 201:
				case 202:
				case 203:
				case 204:
				case 205:
				case 206:
				case 207:
				case 208:
				case 209:
				case 210:
				case 211:
				case 212:
				case 213:
				case 214:
				case 215:
				case 216:
				case 217:
				case 218:
				case 219:
				case 220:
				case 221:
				case 222:
				case 223:
				case 224:
				case 225:
				case 226:
				case 227:
				case 228:
				case 229:
				case 230:
				case 231:
				case 233:
				case 234:
				case 235:
				case 236:
				case 237:
				case 238:
				case 239:
				case 240:
				case 241:
				case 242:
				case 243:
				case 244:
				case 245:
				case 246:
				case 247:
				case 248:
				case 249:
				case 250:
				case 252:
				case 253:
				case 254:
				case 255:
				case 256:
				case 257:
				case 258:
				case 259:
				case 260:
				case 261:
				case 262:
				case 263:
				case 264:
				case 265:
				case 266:
				case 267:
				case 268:
				case 269:
				case 270:
				case 271:
				case 272:
				case 273:
				case 274:
				case 275:
				case 276:
				case 277:
				case 278:
				case 279:
				case 280:
				case 281:
				case 282:
				case 283:
				case 284:
				case 285:
				case 286:
				case 287:
				case 289:
				case 290:
				case 291:
				case 292:
				case 293:
				case 294:
				case 295:
				case 296:
				case 297:
				case 298:
				case 299:
				case 300:
				case 301:
				case 302:
				case 303:
				case 304:
				case 305:
				case 306:
				case 307:
				case 308:
				case 309:
				case 310:
				case 311:
				case 312:
				case 313:
				case 314:
				case 315:
				case 316:
				case 317:
				case 318:
				case 319:
				case 321:
				case 322:
				case 323:
				case 324:
				case 325:
				case 326:
				case 328:
				case 329:
				case 330:
				case 331:
				case 332:
				case 333:
				case 334:
				case 335:
				case 336:
				case 337:
				case 338:
				case 339:
				case 340:
				case 341:
				case 342:
				case 343:
				case 344:
				case 345:
				case 346:
				case 347:
				case 348:
				case 349:
				case 350:
				case 352:
				case 353:
				case 354:
				case 355:
				case 356:
				case 357:
				case 358:
				case 359:
				case 360:
				case 361:
				case 362:
				case 363:
				case 364:
				case 365:
				case 366:
				case 367:
				case 368:
				case 369:
				case 370:
				case 372:
				case 373:
				case 374:
				case 375:
				case 376:
				case 377:
				case 378:
				case 379:
				case 380:
				case 381:
				case 382:
				case 383:
				case 384:
				case 385:
				case 386:
				case 387:
				case 388:
				case 389:
				case 390:
				case 391:
				case 392:
				case 394:
				case 395:
				case 397:
				case 398:
				case 399:
				case 400:
				case 401:
				case 402:
				case 403:
				case 404:
				case 405:
				case 406:
				case 407:
				case 408:
				case 409:
				case 410:
				case 412:
				case 413:
				case 414:
				case 415:
				case 417:
				case 418:
				case 419:
				case 420:
				case 421:
				case 422:
				case 423:
				case 424:
				case 425:
				case 426:
				case 427:
				case 428:
				case 429:
				case 430:
				case 431:
				case 434:
				case 435:
				case 436:
				case 437:
				case 438:
				case 439:
				case 440:
				case 441:
				case 442:
				case 443:
				case 444:
				case 446:
				case 447:
				case 448:
				case 449:
				case 450:
				case 451:
				case 452:
				case 453:
				case 454:
				case 455:
				case 456:
				case 457:
				case 458:
				case 459:
				case 460:
				case 461:
				case 462:
				case 463:
				case 464:
				case 465:
				case 466:
				case 467:
				case 468:
				case 469:
				case 470:
				case 471:
				case 472:
				case 473:
				case 475:
				case 476:
				case 477:
				case 478:
				case 479:
				case 480:
				case 481:
				case 482:
				case 483:
				case 484:
				case 485:
				case 486:
				case 487:
				case 488:
				case 489:
				case 490:
				case 491:
				case 492:
				case 493:
				case 494:
				case 495:
				case 496:
				case 497:
				case 498:
				case 499:
				case 500:
				case 501:
				case 502:
				case 503:
				case 504:
				case 505:
				case 506:
				case 507:
				case 508:
				case 509:
				case 510:
				case 511:
				case 512:
				case 513:
				case 514:
				case 515:
				case 516:
				case 517:
				case 518:
				case 519:
				case 520:
				case 521:
				case 522:
				case 523:
				case 524:
				case 525:
				case 526:
				case 527:
				case 528:
				case 529:
				case 530:
				case 531:
				case 532:
				case 533:
				case 534:
				case 535:
				case 536:
				case 537:
				case 538:
				case 539:
				case 540:
				case 541:
				case 542:
				case 543:
				case 544:
				case 545:
				case 547:
				case 548:
				case 549:
				case 550:
				case 551:
				case 552:
				case 553:
				case 555:
				case 556:
				case 557:
				case 558:
				case 559:
				case 560:
				case 561:
				case 562:
				case 563:
				case 564:
				case 565:
				case 566:
				case 567:
				case 568:
				case 569:
				case 572:
				case 574:
				case 575:
				case 576:
				case 577:
				case 578:
				case 579:
				case 580:
				case 581:
				case 582:
				case 583:
				case 584:
				case 586:
				case 587:
				case 588:
				case 589:
				case 590:
				case 591:
				case 592:
				case 593:
				case 594:
				case 595:
				case 596:
				case 597:
				case 598:
				case 599:
				case 600:
				case 602:
				case 603:
				case 604:
				case 605:
				case 606:
				case 607:
				case 608:
				case 609:
				case 610:
				case 611:
				case 612:
				case 613:
				case 614:
				case 615:
				case 616:
				case 617:
				case 618:
				case 619:
				case 620:
				case 621:
				case 622:
				case 623:
				case 624:
				case 625:
				case 626:
				case 627:
				case 628:
				case 629:
				case 630:
				case 632:
				case 633:
				case 634:
				case 635:
				case 636:
				case 637:
				case 638:
				case 639:
				case 640:
				case 641:
				case 642:
				case 643:
				case 644:
				case 645:
				case 646:
				case 647:
				case 648:
				case 649:
				case 650:
				case 651:
				case 653:
				case 654:
				case 655:
				case 656:
				case 657:
				case 658:
				case 659:
				case 660:
				case 661:
				case 662:
				case 663:
				case 664:
				case 665:
				case 666:
				case 667:
				case 668:
				case 670:
				case 671:
				case 672:
				case 673:
				case 674:
				case 675:
				case 676:
				case 677:
				case 678:
				case 679:
				case 680:
				case 681:
				case 682:
				case 683:
				case 684:
				case 685:
				case 686:
				case 687:
				case 689:
				case 690:
				case 692:
				case 693:
				case 694:
				case 696:
				case 697:
				case 698:
				case 699:
				case 700:
				case 701:
				case 702:
				case 703:
				case 704:
				case 705:
				case 706:
				case 707:
				case 708:
				case 709:
				case 710:
				case 711:
				case 712:
				case 713:
				case 714:
				case 715:
				case 716:
				case 717:
				case 718:
				case 719:
				case 720:
				case 721:
				case 722:
				case 723:
				case 724:
				case 725:
				case 726:
				case 727:
				case 728:
				case 729:
				case 730:
				case 731:
				case 732:
				case 733:
				case 734:
				case 735:
				case 736:
				case 737:
				case 738:
				case 739:
				case 740:
				case 741:
				case 742:
				case 743:
				case 744:
				case 745:
				case 746:
				case 747:
				case 748:
				case 749:
				case 750:
				case 751:
				case 752:
				case 753:
				case 754:
				case 755:
				case 756:
				case 758:
				case 759:
				case 760:
				case 761:
				case 762:
				case 763:
				case 764:
				case 765:
				case 766:
				case 767:
				case 768:
				case 769:
				case 770:
				case 771:
				case 772:
				case 773:
				case 774:
				case 775:
				case 777:
				case 778:
				case 779:
				case 780:
				case 781:
				case 782:
				case 783:
				case 784:
				case 785:
				case 786:
				case 787:
				case 788:
				case 789:
				case 790:
				case 791:
				case 792:
				case 793:
				case 794:
				case 795:
				case 796:
				case 797:
				case 798:
				case 799:
				case 800:
				case 801:
				case 802:
				case 803:
				case 804:
				case 805:
				case 806:
				case 807:
				case 808:
				case 809:
				case 810:
				case 811:
				case 812:
				case 813:
				case 814:
				case 815:
				case 816:
				case 817:
				case 818:
				case 819:
				case 820:
				case 821:
				case 822:
				case 823:
				case 824:
				case 825:
				case 826:
				case 827:
				case 828:
				case 829:
				case 830:
				case 831:
				case 832:
				case 833:
				case 834:
				case 835:
				case 836:
				case 837:
				case 838:
				case 839:
				case 840:
				case 841:
				case 843:
				case 844:
				case 845:
				case 846:
				case 847:
				case 848:
				case 849:
				case 850:
				case 851:
				case 852:
				case 853:
				case 854:
				case 855:
				case 856:
				case 857:
				case 858:
				case 859:
				case 861:
				case 862:
				case 863:
				case 864:
				case 865:
				case 866:
				case 867:
				case 868:
				case 869:
				case 870:
				case 871:
				case 872:
				case 873:
				case 874:
				case 875:
				case 876:
				case 877:
				case 878:
				case 879:
				case 880:
				case 881:
				case 882:
				case 883:
				case 884:
				case 885:
				case 886:
				case 888:
				case 889:
				case 890:
				case 891:
				case 892:
				case 893:
				case 894:
				case 895:
				case 896:
				case 897:
				case 898:
				case 899:
				case 900:
				case 901:
				case 902:
				case 903:
				case 904:
				case 905:
				case 906:
				case 907:
				case 908:
				case 909:
				case 910:
				case 911:
				case 912:
				case 913:
				case 914:
				case 915:
				case 916:
				case 917:
				case 918:
				case 919:
				case 920:
				case 921:
				case 922:
				case 923:
				case 924:
				case 925:
				case 926:
				case 927:
				case 928:
				case 929:
				case 930:
				case 931:
				case 932:
				case 933:
				case 934:
				case 935:
				case 936:
				case 937:
				case 938:
				case 939:
				case 940:
				case 941:
				case 942:
				case 943:
				case 944:
				case 945:
				case 946:
				case 947:
				case 948:
				case 949:
				case 950:
				case 951:
				case 952:
				case 954:
				case 955:
				case 956:
				case 957:
				case 958:
				case 959:
				case 960:
				case 961:
				case 962:
				case 963:
				case 964:
				case 965:
				case 966:
				case 967:
				case 968:
				case 969:
				case 970:
				case 971:
				case 972:
				case 973:
				case 974:
				case 975:
				case 976:
				case 977:
				case 978:
				case 979:
				case 980:
				case 981:
				case 982:
				case 983:
				case 984:
				case 985:
				case 986:
				case 987:
				case 988:
				case 989:
				case 990:
				case 991:
				case 992:
				case 993:
				case 994:
				case 995:
				case 996:
				case 997:
				case 998:
				case 999:
				case 1000:
				case 1001:
				case 1002:
				case 1003:
				case 1004:
				case 1005:
				case 1006:
				case 1007:
				case 1008:
				case 1009:
				case 1010:
				case 1011:
				case 1012:
				case 1013:
				case 1014:
				case 1015:
				case 1016:
				case 1017:
				case 1018:
				case 1019:
				case 1020:
				case 1021:
				case 1022:
				case 1023:
				case 1024:
				case 1025:
				case 1026:
				case 1027:
				case 1028:
				case 1029:
				case 1030:
				case 1031:
				case 1032:
				case 1033:
				case 1034:
				case 1035:
				case 1036:
				case 1037:
				case 1038:
				case 1039:
				case 1040:
				case 1041:
				case 1042:
				case 1043:
				case 1044:
				case 1045:
				case 1046:
				case 1047:
				case 1048:
				case 1049:
				case 1050:
				case 1051:
				case 1052:
				case 1053:
				case 1054:
				case 1055:
				case 1056:
				case 1057:
				case 1058:
				case 1059:
				case 1060:
				case 1061:
				case 1062:
				case 1063:
				case 1064:
				case 1065:
				case 1066:
				case 1067:
				case 1068:
				case 1069:
				case 1070:
				case 1071:
				case 1072:
				case 1074:
				case 1075:
				case 1076:
				case 1077:
				case 1078:
				case 1079:
				case 1080:
				case 1081:
				case 1082:
				case 1083:
				case 1084:
				case 1085:
				case 1086:
				case 1087:
				case 1089:
				case 1090:
				case 1091:
				case 1092:
				case 1093:
				case 1094:
				case 1095:
				case 1096:
				case 1098:
				case 1099:
				case 1100:
				case 1101:
				case 1102:
				case 1103:
				case 1104:
				case 1105:
				case 1106:
				case 1107:
				case 1108:
				case 1109:
				case 1110:
				case 1111:
				case 1112:
				case 1113:
				case 1114:
				case 1116:
				case 1117:
				case 1118:
				case 1119:
				case 1120:
				case 1121:
				case 1122:
				case 1123:
				case 1124:
				case 1125:
				case 1127:
				case 1129:
				case 1130:
				case 1131:
				case 1132:
				case 1133:
				case 1134:
				case 1135:
				case 1136:
				case 1137:
				case 1138:
				case 1139:
				case 1140:
				case 1142:
				case 1143:
				case 1144:
				case 1145:
				case 1146:
				case 1147:
				case 1148:
				case 1149:
				case 1150:
				case 1151:
				case 1152:
				case 1153:
				case 1154:
				case 1155:
				case 1156:
				case 1157:
				case 1158:
				case 1159:
				case 1160:
				case 1161:
				case 1162:
				case 1163:
				case 1164:
				case 1165:
				case 1166:
				case 1167:
				case 1169:
				case 1170:
				case 1171:
				case 1173:
				case 1174:
				case 1175:
				case 1176:
				case 1177:
				case 1178:
				case 1179:
				case 1180:
				case 1181:
				case 1182:
				case 1183:
				case 1184:
				case 1185:
				case 1186:
				case 1187:
				case 1188:
				case 1189:
				case 1190:
				case 1191:
				case 1192:
				case 1193:
				case 1194:
				case 1195:
				case 1197:
				case 1198:
				case 1199:
				case 1200:
				case 1201:
				case 1202:
				case 1203:
				case 1204:
				case 1205:
				case 1206:
				case 1207:
				case 1208:
				case 1209:
				case 1210:
				case 1211:
				case 1212:
				case 1213:
				case 1214:
				case 1215:
				case 1216:
				case 1217:
				case 1218:
				case 1219:
				case 1220:
				case 1221:
				case 1222:
				case 1223:
				case 1224:
				case 1225:
				case 1226:
				case 1228:
				case 1229:
				case 1230:
				case 1231:
				case 1232:
				case 1236:
				case 1237:
				case 1241:
				case 1242:
				case 1243:
				case 1244:
				case 1245:
				case 1246:
				case 1247:
				case 1248:
				case 1249:
				case 1250:
				case 1252:
				case 1253:
				case 1254:
				case 1255:
				case 1256:
				case 1257:
				case 1258:
				case 1259:
				case 1260:
				case 1261:
				case 1262:
				case 1263:
				case 1264:
				case 1265:
				case 1266:
				case 1267:
				case 1268:
				case 1269:
				case 1270:
				case 1271:
				case 1272:
				case 1273:
				case 1274:
				case 1275:
				case 1276:
				case 1277:
				case 1278:
				case 1279:
				case 1280:
				case 1281:
				case 1282:
				case 1283:
				case 1284:
				case 1285:
				case 1286:
				case 1287:
				case 1288:
				case 1289:
				case 1290:
				case 1291:
				case 1292:
				case 1293:
				case 1294:
				case 1295:
				case 1296:
				case 1297:
				case 1298:
				case 1299:
				case 1300:
				case 1301:
				case 1302:
				case 1303:
				case 1304:
				case 1305:
				case 1306:
				case 1308:
				case 1309:
				case 1310:
				case 1311:
				case 1312:
				case 1313:
				case 1314:
				case 1315:
				case 1316:
				case 1317:
				case 1318:
				case 1319:
				case 1320:
				case 1321:
				case 1322:
				case 1323:
				case 1325:
				case 1326:
				case 1327:
				case 1328:
				case 1329:
				case 1330:
				case 1331:
				case 1332:
				case 1333:
				case 1334:
				case 1335:
				case 1336:
				case 1337:
				case 1338:
				case 1339:
				case 1340:
				case 1341:
				case 1342:
				case 1343:
				case 1344:
				case 1345:
				case 1346:
				case 1347:
				case 1348:
				case 1349:
				case 1350:
				case 1351:
				case 1352:
				case 1353:
				case 1354:
				case 1355:
				case 1356:
				case 1357:
				case 1358:
				case 1359:
				case 1360:
				case 1361:
				case 1362:
				case 1363:
				case 1364:
				case 1365:
				case 1366:
				case 1367:
				case 1368:
				case 1369:
				case 1370:
				case 1371:
				case 1372:
				case 1373:
				case 1374:
				case 1375:
				case 1376:
				case 1377:
				case 1378:
				case 1379:
				case 1380:
				case 1381:
				case 1382:
				case 1383:
				case 1384:
				case 1385:
				case 1386:
				case 1387:
				case 1388:
				case 1389:
				case 1390:
				case 1391:
				case 1392:
				case 1393:
				case 1394:
				case 1395:
				case 1396:
				case 1397:
				case 1399:
				case 1400:
				case 1401:
				case 1402:
				case 1403:
				case 1404:
				case 1405:
				case 1406:
				case 1407:
				case 1408:
				case 1409:
				case 1410:
				case 1411:
				case 1412:
				case 1413:
				case 1414:
				case 1416:
				case 1417:
				case 1418:
				case 1419:
				case 1420:
				case 1421:
				case 1422:
				case 1423:
				case 1424:
				case 1425:
				case 1426:
				case 1427:
				case 1428:
				case 1429:
				case 1430:
				case 1431:
				case 1432:
				case 1433:
				case 1435:
				case 1436:
				case 1437:
				case 1438:
				case 1439:
				case 1440:
				case 1441:
				case 1442:
				case 1443:
				case 1444:
				case 1445:
				case 1446:
				case 1447:
				case 1448:
				case 1449:
				case 1450:
				case 1451:
				case 1452:
				case 1453:
				case 1454:
				case 1455:
				case 1456:
				case 1457:
				case 1458:
				case 1459:
				case 1460:
				case 1461:
				case 1462:
				case 1463:
				case 1464:
				case 1465:
				case 1466:
				case 1467:
				case 1468:
				case 1469:
				case 1470:
				case 1471:
				case 1472:
				case 1473:
				case 1474:
				case 1475:
				case 1476:
				case 1477:
				case 1478:
				case 1479:
				case 1480:
				case 1481:
				case 1482:
				case 1483:
				case 1484:
				case 1485:
				case 1486:
				case 1487:
				case 1488:
				case 1489:
				case 1491:
				case 1492:
				case 1493:
				case 1494:
				case 1495:
				case 1496:
				case 1497:
				case 1499:
				case 1500:
				case 1501:
				case 1502:
				case 1503:
				case 1504:
				case 1505:
				case 1506:
				case 1507:
				case 1508:
				case 1509:
				case 1510:
				case 1511:
				case 1512:
				case 1513:
				case 1514:
				case 1515:
				case 1516:
				case 1518:
				case 1519:
				case 1520:
				case 1521:
				case 1522:
				case 1523:
				case 1524:
				case 1525:
				case 1526:
				case 1527:
				case 1528:
				case 1529:
				case 1530:
				case 1531:
				case 1532:
				case 1533:
				case 1534:
				case 1536:
				case 1537:
				case 1538:
				case 1539:
				case 1540:
				case 1541:
				case 1542:
				case 1543:
				case 1544:
				case 1545:
				case 1546:
				case 1547:
				case 1548:
				case 1549:
				case 1550:
				case 1551:
				case 1552:
				case 1553:
				case 1554:
				case 1555:
				case 1556:
				case 1557:
				case 1558:
				case 1559:
				case 1560:
				case 1561:
				case 1562:
				case 1563:
				case 1564:
				case 1565:
				case 1566:
				case 1567:
				case 1568:
				case 1570:
				case 1571:
				case 1572:
				case 1573:
				case 1574:
				case 1575:
				case 1576:
				case 1577:
				case 1578:
				case 1579:
				case 1580:
				case 1581:
				case 1582:
				case 1583:
				case 1584:
				case 1585:
				case 1586:
				case 1587:
				case 1588:
				case 1589:
				case 1590:
				case 1591:
				case 1592:
				case 1593:
				case 1594:
				case 1595:
				case 1596:
				case 1597:
				case 1598:
				case 1599:
				case 1600:
				case 1601:
				case 1602:
				case 1603:
				case 1604:
				case 1605:
				case 1606:
				case 1607:
				case 1608:
				case 1609:
				case 1610:
				case 1611:
				case 1612:
				case 1613:
				case 1614:
				case 1615:
				case 1616:
				case 1617:
				case 1618:
				case 1619:
				case 1620:
				case 1621:
				case 1622:
				case 1623:
				case 1624:
				case 1625:
				case 1626:
				case 1628:
				case 1629:
				case 1630:
				case 1631:
				case 1632:
				case 1633:
				case 1634:
				case 1635:
				case 1636:
				case 1637:
				case 1638:
				case 1639:
				case 1640:
				case 1641:
				case 1642:
				case 1643:
				case 1644:
				case 1645:
				case 1646:
				case 1647:
				case 1648:
				case 1649:
				case 1650:
				case 1651:
				case 1652:
				case 1653:
				case 1654:
				case 1655:
				case 1656:
				case 1657:
				case 1658:
				case 1659:
				case 1660:
				case 1661:
				case 1662:
				case 1663:
				case 1664:
				case 1665:
				case 1666:
				case 1667:
				case 1668:
				case 1669:
				case 1670:
				case 1671:
				case 1672:
				case 1673:
				case 1674:
				case 1675:
				case 1676:
				case 1677:
				case 1678:
				case 1679:
				case 1680:
				case 1681:
				case 1682:
				case 1683:
				case 1684:
				case 1685:
				case 1686:
				case 1687:
				case 1688:
				case 1689:
				case 1690:
				case 1691:
				case 1692:
				case 1693:
				case 1694:
				case 1695:
				case 1696:
				case 1697:
				case 1698:
				case 1699:
				case 1700:
				case 1701:
				case 1702:
				case 1703:
				case 1704:
				case 1705:
				case 1706:
				case 1707:
				case 1708:
				case 1709:
				case 1710:
				case 1711:
				case 1712:
				case 1713:
				case 1714:
				case 1715:
				case 1716:
				case 1717:
				case 1718:
				case 1719:
				case 1720:
				case 1721:
				case 1722:
				case 1723:
				case 1724:
				case 1725:
				case 1726:
				case 1727:
				case 1728:
				case 1729:
				case 1730:
				case 1731:
				case 1732:
				case 1733:
				case 1734:
				case 1735:
				case 1736:
				case 1737:
				case 1738:
				case 1739:
				case 1740:
				case 1741:
				case 1742:
				case 1743:
				case 1744:
				case 1745:
				case 1746:
				case 1747:
				case 1748:
				case 1749:
				case 1750:
				case 1751:
				case 1752:
				case 1753:
				case 1754:
				case 1755:
				case 1756:
				case 1757:
				case 1758:
				case 1759:
				case 1760:
				case 1761:
				case 1762:
				case 1763:
				case 1764:
				case 1765:
				case 1766:
				case 1767:
				case 1768:
				case 1769:
				case 1770:
				case 1771:
				case 1772:
				case 1773:
				case 1774:
				case 1775:
				case 1776:
				case 1777:
				case 1778:
				case 1779:
				case 1780:
				case 1781:
				case 1782:
				case 1783:
				case 1784:
				case 1785:
				case 1786:
				case 1787:
				case 1788:
				case 1789:
				case 1790:
				case 1791:
				case 1792:
				case 1793:
				case 1794:
				case 1795:
				case 1796:
				case 1797:
				case 1798:
				case 1799:
				case 1800:
				case 1801:
				case 1802:
				case 1803:
				case 1804:
				case 1805:
				case 1806:
				case 1807:
				case 1808:
				case 1809:
				case 1810:
				case 1811:
				case 1812:
				case 1813:
				case 1814:
				case 1815:
				case 1816:
				case 1817:
				case 1818:
				case 1819:
				case 1820:
				case 1821:
				case 1822:
				case 1823:
				case 1824:
				case 1825:
				case 1826:
				case 1827:
				case 1828:
				case 1829:
				case 1830:
				case 1831:
				case 1832:
				case 1833:
				case 1834:
				case 1835:
				case 1836:
				case 1837:
				case 1838:
				case 1839:
				case 1840:
				case 1841:
				case 1842:
				case 1843:
				case 1844:
				case 1845:
				case 1846:
				case 1847:
				case 1848:
				case 1849:
				case 1850:
				case 1851:
				case 1852:
				case 1853:
				case 1854:
				case 1855:
				case 1856:
				case 1857:
				case 1858:
				case 1859:
				case 1860:
				case 1861:
				case 1862:
				case 1863:
				case 1864:
				case 1865:
				case 1866:
				case 1867:
				case 1868:
				case 1869:
				case 1870:
				case 1871:
				case 1872:
				case 1873:
				case 1874:
				case 1875:
				case 1876:
				case 1877:
				case 1878:
				case 1879:
				case 1880:
				case 1881:
				case 1882:
				case 1883:
				case 1884:
				case 1885:
				case 1886:
				case 1887:
				case 1888:
				case 1889:
				case 1890:
				case 1891:
				case 1892:
				case 1893:
				case 1894:
				case 1895:
				case 1896:
				case 1897:
				case 1898:
				case 1899:
				case 1900:
				case 1901:
				case 1902:
				case 1903:
				case 1904:
				case 1905:
				case 1906:
				case 1907:
				case 1908:
				case 1909:
				case 1910:
				case 1911:
				case 1912:
				case 1913:
				case 1914:
				case 1915:
				case 1916:
				case 1917:
				case 1918:
				case 1919:
				case 1920:
				case 1921:
				case 1922:
				case 1923:
				case 1924:
				case 1925:
				case 1926:
				case 1927:
				case 1928:
				case 1929:
				case 1930:
				case 1931:
				case 1932:
				case 1933:
				case 1934:
				case 1935:
				case 1936:
				case 1937:
				case 1939:
				case 1940:
				case 1941:
				case 1942:
				case 1943:
				case 1944:
				case 1945:
				case 1946:
				case 1947:
				case 1948:
				case 1949:
				case 1950:
				case 1951:
				case 1952:
				case 1953:
				case 1954:
				case 1955:
				case 1956:
				case 1957:
				case 1958:
				case 1959:
				case 1960:
				case 1961:
				case 1962:
				case 1963:
				case 1965:
				case 1966:
				case 1967:
				case 1968:
				case 1969:
				case 1970:
				case 1971:
				case 1972:
				case 1973:
				case 1974:
				case 1975:
				case 1976:
				case 1977:
				case 1978:
				case 1979:
				case 1980:
				case 1981:
				case 1982:
				case 1983:
				case 1984:
				case 1985:
				case 1986:
				case 1987:
				case 1988:
				case 1989:
				case 1990:
				case 1991:
				case 1992:
				case 1993:
				case 1994:
				case 1995:
				case 1996:
				case 1997:
				case 1998:
				case 1999:
				case 2000:
				case 2003:
				case 2004:
				case 2005:
				case 2006:
				case 2007:
				case 2008:
				case 2009:
				case 2010:
				case 2011:
				case 2012:
				case 2013:
				case 2014:
				case 2015:
				case 2016:
				case 2017:
				case 2018:
				case 2019:
				case 2020:
				case 2021:
				case 2022:
				case 2023:
				case 2024:
				case 2026:
				case 2027:
				case 2028:
				case 2029:
				case 2030:
				case 2031:
				case 2032:
				case 2033:
				case 2034:
				case 2035:
				case 2036:
				case 2037:
				case 2038:
				case 2039:
				case 2040:
				case 2041:
				case 2042:
				case 2043:
				case 2044:
				case 2045:
				case 2046:
				case 2047:
				case 2048:
				case 2049:
				case 2050:
				case 2051:
				case 2052:
				case 2053:
				case 2054:
				case 2055:
				case 2056:
				case 2057:
				case 2058:
				case 2059:
				case 2060:
				case 2061:
				case 2062:
				case 2063:
				case 2064:
				case 2065:
				case 2066:
				case 2067:
				case 2068:
				case 2069:
				case 2070:
				case 2071:
				case 2072:
				case 2074:
				case 2075:
				case 2076:
				case 2077:
				case 2078:
				case 2079:
				case 2080:
				case 2081:
				case 2082:
				case 2083:
				case 2084:
				case 2085:
				case 2086:
				case 2087:
				case 2088:
				case 2089:
				case 2090:
				case 2091:
				case 2092:
				case 2093:
				case 2094:
				case 2095:
				case 2096:
				case 2097:
				case 2098:
				case 2100:
				case 2101:
				case 2102:
				case 2103:
				case 2104:
				case 2105:
				case 2106:
				case 2107:
				case 2108:
				case 2109:
				case 2110:
				case 2111:
				case 2112:
				case 2113:
				case 2115:
				case 2116:
				case 2117:
				case 2118:
				case 2119:
				case 2120:
				case 2122:
				case 2123:
				case 2124:
				case 2125:
				case 2126:
				case 2128:
				case 2129:
				case 2130:
				case 2131:
				case 2132:
				case 2133:
				case 2134:
				case 2135:
				case 2136:
				case 2137:
				case 2138:
				case 2139:
				case 2140:
				case 2141:
				case 2142:
				case 2143:
				case 2145:
				case 2146:
				case 2147:
				case 2148:
				case 2149:
				case 2150:
				case 2151:
				case 2152:
				case 2153:
				case 2154:
				case 2155:
				case 2156:
				case 2157:
				case 2158:
				case 2159:
				case 2160:
				case 2161:
				case 2162:
				case 2163:
				case 2164:
				case 2165:
				case 2166:
				case 2168:
				case 2169:
				case 2170:
				case 2171:
				case 2172:
				case 2173:
				case 2174:
				case 2175:
				case 2176:
				case 2177:
				case 2178:
				case 2179:
				case 2180:
				case 2181:
				case 2182:
				case 2183:
				case 2184:
				case 2185:
				case 2186:
				case 2187:
				case 2188:
				case 2189:
				case 2191:
				case 2192:
				case 2193:
				case 2194:
				case 2195:
				case 2196:
				case 2197:
				case 2198:
				case 2199:
				case 2200:
				case 2201:
				case 2202:
				case 2203:
				case 2204:
				case 2205:
				case 2206:
				case 2207:
				case 2208:
				case 2209:
				case 2210:
				case 2211:
				case 2216:
				case 2220:
				case 2246:
				case 2252:
					{
					this.state = 10999;
					this.identifier();
					}
					break;
				case 2212:
				case 2219:
					{
					this.state = 11000;
					this.quoted_string();
					}
					break;
				default:
					throw new NoViableAltException(this);
				}
				}
				break;
			case 2:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 11003;
				this.match(PlSqlParser.AS);
				}
				break;
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public table_alias(): Table_aliasContext {
		let localctx: Table_aliasContext = new Table_aliasContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1354, PlSqlParser.RULE_table_alias);
		try {
			this.state = 11008;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 1:
			case 2:
			case 3:
			case 4:
			case 5:
			case 6:
			case 7:
			case 8:
			case 9:
			case 10:
			case 11:
			case 12:
			case 13:
			case 14:
			case 15:
			case 16:
			case 17:
			case 18:
			case 19:
			case 20:
			case 21:
			case 22:
			case 23:
			case 24:
			case 25:
			case 26:
			case 27:
			case 28:
			case 29:
			case 30:
			case 31:
			case 32:
			case 33:
			case 34:
			case 36:
			case 37:
			case 38:
			case 40:
			case 41:
			case 42:
			case 44:
			case 45:
			case 46:
			case 47:
			case 49:
			case 50:
			case 51:
			case 52:
			case 53:
			case 54:
			case 55:
			case 56:
			case 57:
			case 58:
			case 59:
			case 60:
			case 63:
			case 64:
			case 65:
			case 66:
			case 67:
			case 68:
			case 69:
			case 70:
			case 71:
			case 72:
			case 73:
			case 74:
			case 75:
			case 76:
			case 78:
			case 79:
			case 80:
			case 81:
			case 82:
			case 83:
			case 85:
			case 86:
			case 87:
			case 88:
			case 89:
			case 90:
			case 91:
			case 92:
			case 93:
			case 95:
			case 96:
			case 97:
			case 98:
			case 99:
			case 100:
			case 101:
			case 102:
			case 103:
			case 104:
			case 105:
			case 106:
			case 108:
			case 109:
			case 110:
			case 111:
			case 112:
			case 113:
			case 114:
			case 115:
			case 116:
			case 117:
			case 118:
			case 119:
			case 120:
			case 121:
			case 122:
			case 123:
			case 124:
			case 125:
			case 126:
			case 127:
			case 128:
			case 129:
			case 130:
			case 131:
			case 132:
			case 133:
			case 134:
			case 135:
			case 136:
			case 137:
			case 138:
			case 139:
			case 140:
			case 141:
			case 142:
			case 143:
			case 144:
			case 145:
			case 147:
			case 148:
			case 149:
			case 150:
			case 151:
			case 152:
			case 153:
			case 154:
			case 155:
			case 156:
			case 157:
			case 158:
			case 160:
			case 161:
			case 162:
			case 163:
			case 164:
			case 165:
			case 166:
			case 167:
			case 168:
			case 169:
			case 170:
			case 171:
			case 172:
			case 174:
			case 175:
			case 176:
			case 177:
			case 178:
			case 179:
			case 181:
			case 182:
			case 183:
			case 184:
			case 185:
			case 186:
			case 187:
			case 188:
			case 189:
			case 190:
			case 191:
			case 192:
			case 193:
			case 194:
			case 195:
			case 196:
			case 197:
			case 198:
			case 199:
			case 200:
			case 201:
			case 202:
			case 203:
			case 204:
			case 205:
			case 206:
			case 207:
			case 208:
			case 209:
			case 210:
			case 211:
			case 212:
			case 213:
			case 214:
			case 215:
			case 216:
			case 217:
			case 218:
			case 219:
			case 220:
			case 221:
			case 222:
			case 223:
			case 224:
			case 225:
			case 226:
			case 227:
			case 228:
			case 229:
			case 230:
			case 231:
			case 233:
			case 234:
			case 235:
			case 236:
			case 237:
			case 238:
			case 239:
			case 240:
			case 241:
			case 242:
			case 243:
			case 244:
			case 245:
			case 246:
			case 247:
			case 248:
			case 249:
			case 250:
			case 252:
			case 253:
			case 254:
			case 255:
			case 256:
			case 257:
			case 258:
			case 259:
			case 260:
			case 261:
			case 262:
			case 263:
			case 264:
			case 265:
			case 266:
			case 267:
			case 268:
			case 269:
			case 270:
			case 271:
			case 272:
			case 273:
			case 274:
			case 275:
			case 276:
			case 277:
			case 278:
			case 279:
			case 280:
			case 281:
			case 282:
			case 283:
			case 284:
			case 285:
			case 286:
			case 287:
			case 289:
			case 290:
			case 291:
			case 292:
			case 293:
			case 294:
			case 295:
			case 296:
			case 297:
			case 298:
			case 299:
			case 300:
			case 301:
			case 302:
			case 303:
			case 304:
			case 305:
			case 306:
			case 307:
			case 308:
			case 309:
			case 310:
			case 311:
			case 312:
			case 313:
			case 314:
			case 315:
			case 316:
			case 317:
			case 318:
			case 319:
			case 321:
			case 322:
			case 323:
			case 324:
			case 325:
			case 326:
			case 328:
			case 329:
			case 330:
			case 331:
			case 332:
			case 333:
			case 334:
			case 335:
			case 336:
			case 337:
			case 338:
			case 339:
			case 340:
			case 341:
			case 342:
			case 343:
			case 344:
			case 345:
			case 346:
			case 347:
			case 348:
			case 349:
			case 350:
			case 352:
			case 353:
			case 354:
			case 355:
			case 356:
			case 357:
			case 358:
			case 359:
			case 360:
			case 361:
			case 362:
			case 363:
			case 364:
			case 365:
			case 366:
			case 367:
			case 368:
			case 369:
			case 370:
			case 372:
			case 373:
			case 374:
			case 375:
			case 376:
			case 377:
			case 378:
			case 379:
			case 380:
			case 381:
			case 382:
			case 383:
			case 384:
			case 385:
			case 386:
			case 387:
			case 388:
			case 389:
			case 390:
			case 391:
			case 392:
			case 394:
			case 395:
			case 397:
			case 398:
			case 399:
			case 400:
			case 401:
			case 402:
			case 403:
			case 404:
			case 405:
			case 406:
			case 407:
			case 408:
			case 409:
			case 410:
			case 412:
			case 413:
			case 414:
			case 415:
			case 417:
			case 418:
			case 419:
			case 420:
			case 421:
			case 422:
			case 423:
			case 424:
			case 425:
			case 426:
			case 427:
			case 428:
			case 429:
			case 430:
			case 431:
			case 434:
			case 435:
			case 436:
			case 437:
			case 438:
			case 439:
			case 440:
			case 441:
			case 442:
			case 443:
			case 444:
			case 446:
			case 447:
			case 448:
			case 449:
			case 450:
			case 451:
			case 452:
			case 453:
			case 454:
			case 455:
			case 456:
			case 457:
			case 458:
			case 459:
			case 460:
			case 461:
			case 462:
			case 463:
			case 464:
			case 465:
			case 466:
			case 467:
			case 468:
			case 469:
			case 470:
			case 471:
			case 472:
			case 473:
			case 475:
			case 476:
			case 477:
			case 478:
			case 479:
			case 480:
			case 481:
			case 482:
			case 483:
			case 484:
			case 485:
			case 486:
			case 487:
			case 488:
			case 489:
			case 490:
			case 491:
			case 492:
			case 493:
			case 494:
			case 495:
			case 496:
			case 497:
			case 498:
			case 499:
			case 500:
			case 501:
			case 502:
			case 503:
			case 504:
			case 505:
			case 506:
			case 507:
			case 508:
			case 509:
			case 510:
			case 511:
			case 512:
			case 513:
			case 514:
			case 515:
			case 516:
			case 517:
			case 518:
			case 519:
			case 520:
			case 521:
			case 522:
			case 523:
			case 524:
			case 525:
			case 526:
			case 527:
			case 528:
			case 529:
			case 530:
			case 531:
			case 532:
			case 533:
			case 534:
			case 535:
			case 536:
			case 537:
			case 538:
			case 539:
			case 540:
			case 541:
			case 542:
			case 543:
			case 544:
			case 545:
			case 547:
			case 548:
			case 549:
			case 550:
			case 551:
			case 552:
			case 553:
			case 555:
			case 556:
			case 557:
			case 558:
			case 559:
			case 560:
			case 561:
			case 562:
			case 563:
			case 564:
			case 565:
			case 566:
			case 567:
			case 568:
			case 569:
			case 572:
			case 574:
			case 575:
			case 576:
			case 577:
			case 578:
			case 579:
			case 580:
			case 581:
			case 582:
			case 583:
			case 584:
			case 586:
			case 587:
			case 588:
			case 589:
			case 590:
			case 591:
			case 592:
			case 593:
			case 594:
			case 595:
			case 596:
			case 597:
			case 598:
			case 599:
			case 600:
			case 602:
			case 603:
			case 604:
			case 605:
			case 606:
			case 607:
			case 608:
			case 609:
			case 610:
			case 611:
			case 612:
			case 613:
			case 614:
			case 615:
			case 616:
			case 617:
			case 618:
			case 619:
			case 620:
			case 621:
			case 622:
			case 623:
			case 624:
			case 625:
			case 626:
			case 627:
			case 628:
			case 629:
			case 630:
			case 632:
			case 633:
			case 634:
			case 635:
			case 636:
			case 637:
			case 638:
			case 639:
			case 640:
			case 641:
			case 642:
			case 643:
			case 644:
			case 645:
			case 646:
			case 647:
			case 648:
			case 649:
			case 650:
			case 651:
			case 653:
			case 654:
			case 655:
			case 656:
			case 657:
			case 658:
			case 659:
			case 660:
			case 661:
			case 662:
			case 663:
			case 664:
			case 665:
			case 666:
			case 667:
			case 668:
			case 670:
			case 671:
			case 672:
			case 673:
			case 674:
			case 675:
			case 676:
			case 677:
			case 678:
			case 679:
			case 680:
			case 681:
			case 682:
			case 683:
			case 684:
			case 685:
			case 686:
			case 687:
			case 689:
			case 690:
			case 692:
			case 693:
			case 694:
			case 696:
			case 697:
			case 698:
			case 699:
			case 700:
			case 701:
			case 702:
			case 703:
			case 704:
			case 705:
			case 706:
			case 707:
			case 708:
			case 709:
			case 710:
			case 711:
			case 712:
			case 713:
			case 714:
			case 715:
			case 716:
			case 717:
			case 718:
			case 719:
			case 720:
			case 721:
			case 722:
			case 723:
			case 724:
			case 725:
			case 726:
			case 727:
			case 728:
			case 729:
			case 730:
			case 731:
			case 732:
			case 733:
			case 734:
			case 735:
			case 736:
			case 737:
			case 738:
			case 739:
			case 740:
			case 741:
			case 742:
			case 743:
			case 744:
			case 745:
			case 746:
			case 747:
			case 748:
			case 749:
			case 750:
			case 751:
			case 752:
			case 753:
			case 754:
			case 755:
			case 756:
			case 758:
			case 759:
			case 760:
			case 761:
			case 762:
			case 763:
			case 764:
			case 765:
			case 766:
			case 767:
			case 768:
			case 769:
			case 770:
			case 771:
			case 772:
			case 773:
			case 774:
			case 775:
			case 777:
			case 778:
			case 779:
			case 780:
			case 781:
			case 782:
			case 783:
			case 784:
			case 785:
			case 786:
			case 787:
			case 788:
			case 789:
			case 790:
			case 791:
			case 792:
			case 793:
			case 794:
			case 795:
			case 796:
			case 797:
			case 798:
			case 799:
			case 800:
			case 801:
			case 802:
			case 803:
			case 804:
			case 805:
			case 806:
			case 807:
			case 808:
			case 809:
			case 810:
			case 811:
			case 812:
			case 813:
			case 814:
			case 815:
			case 816:
			case 817:
			case 818:
			case 819:
			case 820:
			case 821:
			case 822:
			case 823:
			case 824:
			case 825:
			case 826:
			case 827:
			case 828:
			case 829:
			case 830:
			case 831:
			case 832:
			case 833:
			case 834:
			case 835:
			case 836:
			case 837:
			case 838:
			case 839:
			case 840:
			case 841:
			case 843:
			case 844:
			case 845:
			case 846:
			case 847:
			case 848:
			case 849:
			case 850:
			case 851:
			case 852:
			case 853:
			case 854:
			case 855:
			case 856:
			case 857:
			case 858:
			case 859:
			case 861:
			case 862:
			case 863:
			case 864:
			case 865:
			case 866:
			case 867:
			case 868:
			case 869:
			case 870:
			case 871:
			case 872:
			case 873:
			case 874:
			case 875:
			case 876:
			case 877:
			case 878:
			case 879:
			case 880:
			case 881:
			case 882:
			case 883:
			case 884:
			case 885:
			case 886:
			case 888:
			case 889:
			case 890:
			case 891:
			case 892:
			case 893:
			case 894:
			case 895:
			case 896:
			case 897:
			case 898:
			case 899:
			case 900:
			case 901:
			case 902:
			case 903:
			case 904:
			case 905:
			case 906:
			case 907:
			case 908:
			case 909:
			case 910:
			case 911:
			case 912:
			case 913:
			case 914:
			case 915:
			case 916:
			case 917:
			case 918:
			case 919:
			case 920:
			case 921:
			case 922:
			case 923:
			case 924:
			case 925:
			case 926:
			case 927:
			case 928:
			case 929:
			case 930:
			case 931:
			case 932:
			case 933:
			case 934:
			case 935:
			case 936:
			case 937:
			case 938:
			case 939:
			case 940:
			case 941:
			case 942:
			case 943:
			case 944:
			case 945:
			case 946:
			case 947:
			case 948:
			case 949:
			case 950:
			case 951:
			case 952:
			case 954:
			case 955:
			case 956:
			case 957:
			case 958:
			case 959:
			case 960:
			case 961:
			case 962:
			case 963:
			case 964:
			case 965:
			case 966:
			case 967:
			case 968:
			case 969:
			case 970:
			case 971:
			case 972:
			case 973:
			case 974:
			case 975:
			case 976:
			case 977:
			case 978:
			case 979:
			case 980:
			case 981:
			case 982:
			case 983:
			case 984:
			case 985:
			case 986:
			case 987:
			case 988:
			case 989:
			case 990:
			case 991:
			case 992:
			case 993:
			case 994:
			case 995:
			case 996:
			case 997:
			case 998:
			case 999:
			case 1000:
			case 1001:
			case 1002:
			case 1003:
			case 1004:
			case 1005:
			case 1006:
			case 1007:
			case 1008:
			case 1009:
			case 1010:
			case 1011:
			case 1012:
			case 1013:
			case 1014:
			case 1015:
			case 1016:
			case 1017:
			case 1018:
			case 1019:
			case 1020:
			case 1021:
			case 1022:
			case 1023:
			case 1024:
			case 1025:
			case 1026:
			case 1027:
			case 1028:
			case 1029:
			case 1030:
			case 1031:
			case 1032:
			case 1033:
			case 1034:
			case 1035:
			case 1036:
			case 1037:
			case 1038:
			case 1039:
			case 1040:
			case 1041:
			case 1042:
			case 1043:
			case 1044:
			case 1045:
			case 1046:
			case 1047:
			case 1048:
			case 1049:
			case 1050:
			case 1051:
			case 1052:
			case 1053:
			case 1054:
			case 1055:
			case 1056:
			case 1057:
			case 1058:
			case 1059:
			case 1060:
			case 1061:
			case 1062:
			case 1063:
			case 1064:
			case 1065:
			case 1066:
			case 1067:
			case 1068:
			case 1069:
			case 1070:
			case 1071:
			case 1072:
			case 1074:
			case 1075:
			case 1076:
			case 1077:
			case 1078:
			case 1079:
			case 1080:
			case 1081:
			case 1082:
			case 1083:
			case 1084:
			case 1085:
			case 1086:
			case 1087:
			case 1089:
			case 1090:
			case 1091:
			case 1092:
			case 1093:
			case 1094:
			case 1095:
			case 1096:
			case 1098:
			case 1099:
			case 1100:
			case 1101:
			case 1102:
			case 1103:
			case 1104:
			case 1105:
			case 1106:
			case 1107:
			case 1108:
			case 1109:
			case 1110:
			case 1111:
			case 1112:
			case 1113:
			case 1114:
			case 1116:
			case 1117:
			case 1118:
			case 1119:
			case 1120:
			case 1121:
			case 1122:
			case 1123:
			case 1124:
			case 1125:
			case 1127:
			case 1129:
			case 1130:
			case 1131:
			case 1132:
			case 1133:
			case 1134:
			case 1135:
			case 1136:
			case 1137:
			case 1138:
			case 1139:
			case 1140:
			case 1142:
			case 1143:
			case 1144:
			case 1145:
			case 1146:
			case 1147:
			case 1148:
			case 1149:
			case 1150:
			case 1151:
			case 1152:
			case 1153:
			case 1154:
			case 1155:
			case 1156:
			case 1157:
			case 1158:
			case 1159:
			case 1160:
			case 1161:
			case 1162:
			case 1163:
			case 1164:
			case 1165:
			case 1166:
			case 1167:
			case 1169:
			case 1170:
			case 1171:
			case 1173:
			case 1174:
			case 1175:
			case 1176:
			case 1177:
			case 1178:
			case 1179:
			case 1180:
			case 1181:
			case 1182:
			case 1183:
			case 1184:
			case 1185:
			case 1186:
			case 1187:
			case 1188:
			case 1189:
			case 1190:
			case 1191:
			case 1192:
			case 1193:
			case 1194:
			case 1195:
			case 1197:
			case 1198:
			case 1199:
			case 1200:
			case 1201:
			case 1202:
			case 1203:
			case 1204:
			case 1205:
			case 1206:
			case 1207:
			case 1208:
			case 1209:
			case 1210:
			case 1211:
			case 1212:
			case 1213:
			case 1214:
			case 1215:
			case 1216:
			case 1217:
			case 1218:
			case 1219:
			case 1220:
			case 1221:
			case 1222:
			case 1223:
			case 1224:
			case 1225:
			case 1226:
			case 1228:
			case 1229:
			case 1230:
			case 1231:
			case 1232:
			case 1236:
			case 1237:
			case 1241:
			case 1242:
			case 1243:
			case 1244:
			case 1245:
			case 1246:
			case 1247:
			case 1248:
			case 1249:
			case 1250:
			case 1252:
			case 1253:
			case 1254:
			case 1255:
			case 1256:
			case 1257:
			case 1258:
			case 1259:
			case 1260:
			case 1261:
			case 1262:
			case 1263:
			case 1264:
			case 1265:
			case 1266:
			case 1267:
			case 1268:
			case 1269:
			case 1270:
			case 1271:
			case 1272:
			case 1273:
			case 1274:
			case 1275:
			case 1276:
			case 1277:
			case 1278:
			case 1279:
			case 1280:
			case 1281:
			case 1282:
			case 1283:
			case 1284:
			case 1285:
			case 1286:
			case 1287:
			case 1288:
			case 1289:
			case 1290:
			case 1291:
			case 1292:
			case 1293:
			case 1294:
			case 1295:
			case 1296:
			case 1297:
			case 1298:
			case 1299:
			case 1300:
			case 1301:
			case 1302:
			case 1303:
			case 1304:
			case 1305:
			case 1306:
			case 1308:
			case 1309:
			case 1310:
			case 1311:
			case 1312:
			case 1313:
			case 1314:
			case 1315:
			case 1316:
			case 1317:
			case 1318:
			case 1319:
			case 1320:
			case 1321:
			case 1322:
			case 1323:
			case 1325:
			case 1326:
			case 1327:
			case 1328:
			case 1329:
			case 1330:
			case 1331:
			case 1332:
			case 1333:
			case 1334:
			case 1335:
			case 1336:
			case 1337:
			case 1338:
			case 1339:
			case 1340:
			case 1341:
			case 1342:
			case 1343:
			case 1344:
			case 1345:
			case 1346:
			case 1347:
			case 1348:
			case 1349:
			case 1350:
			case 1351:
			case 1352:
			case 1353:
			case 1354:
			case 1355:
			case 1356:
			case 1357:
			case 1358:
			case 1359:
			case 1360:
			case 1361:
			case 1362:
			case 1363:
			case 1364:
			case 1365:
			case 1366:
			case 1367:
			case 1368:
			case 1369:
			case 1370:
			case 1371:
			case 1372:
			case 1373:
			case 1374:
			case 1375:
			case 1376:
			case 1377:
			case 1378:
			case 1379:
			case 1380:
			case 1381:
			case 1382:
			case 1383:
			case 1384:
			case 1385:
			case 1386:
			case 1387:
			case 1388:
			case 1389:
			case 1390:
			case 1391:
			case 1392:
			case 1393:
			case 1394:
			case 1395:
			case 1396:
			case 1397:
			case 1399:
			case 1400:
			case 1401:
			case 1402:
			case 1403:
			case 1404:
			case 1405:
			case 1406:
			case 1407:
			case 1408:
			case 1409:
			case 1410:
			case 1411:
			case 1412:
			case 1413:
			case 1414:
			case 1416:
			case 1417:
			case 1418:
			case 1419:
			case 1420:
			case 1421:
			case 1422:
			case 1423:
			case 1424:
			case 1425:
			case 1426:
			case 1427:
			case 1428:
			case 1429:
			case 1430:
			case 1431:
			case 1432:
			case 1433:
			case 1435:
			case 1436:
			case 1437:
			case 1438:
			case 1439:
			case 1440:
			case 1441:
			case 1442:
			case 1443:
			case 1444:
			case 1445:
			case 1446:
			case 1447:
			case 1448:
			case 1449:
			case 1450:
			case 1451:
			case 1452:
			case 1453:
			case 1454:
			case 1455:
			case 1456:
			case 1457:
			case 1458:
			case 1459:
			case 1460:
			case 1461:
			case 1462:
			case 1463:
			case 1464:
			case 1465:
			case 1466:
			case 1467:
			case 1468:
			case 1469:
			case 1470:
			case 1471:
			case 1472:
			case 1473:
			case 1474:
			case 1475:
			case 1476:
			case 1477:
			case 1478:
			case 1479:
			case 1480:
			case 1481:
			case 1482:
			case 1483:
			case 1484:
			case 1485:
			case 1486:
			case 1487:
			case 1488:
			case 1489:
			case 1491:
			case 1492:
			case 1493:
			case 1494:
			case 1495:
			case 1496:
			case 1497:
			case 1499:
			case 1500:
			case 1501:
			case 1502:
			case 1503:
			case 1504:
			case 1505:
			case 1506:
			case 1507:
			case 1508:
			case 1509:
			case 1510:
			case 1511:
			case 1512:
			case 1513:
			case 1514:
			case 1515:
			case 1516:
			case 1518:
			case 1519:
			case 1520:
			case 1521:
			case 1522:
			case 1523:
			case 1524:
			case 1525:
			case 1526:
			case 1527:
			case 1528:
			case 1529:
			case 1530:
			case 1531:
			case 1532:
			case 1533:
			case 1534:
			case 1536:
			case 1537:
			case 1538:
			case 1539:
			case 1540:
			case 1541:
			case 1542:
			case 1543:
			case 1544:
			case 1545:
			case 1546:
			case 1547:
			case 1548:
			case 1549:
			case 1550:
			case 1551:
			case 1552:
			case 1553:
			case 1554:
			case 1555:
			case 1556:
			case 1557:
			case 1558:
			case 1559:
			case 1560:
			case 1561:
			case 1562:
			case 1563:
			case 1564:
			case 1565:
			case 1566:
			case 1567:
			case 1568:
			case 1570:
			case 1571:
			case 1572:
			case 1573:
			case 1574:
			case 1575:
			case 1576:
			case 1577:
			case 1578:
			case 1579:
			case 1580:
			case 1581:
			case 1582:
			case 1583:
			case 1584:
			case 1585:
			case 1586:
			case 1587:
			case 1588:
			case 1589:
			case 1590:
			case 1591:
			case 1592:
			case 1593:
			case 1594:
			case 1595:
			case 1596:
			case 1597:
			case 1598:
			case 1599:
			case 1600:
			case 1601:
			case 1602:
			case 1603:
			case 1604:
			case 1605:
			case 1606:
			case 1607:
			case 1608:
			case 1609:
			case 1610:
			case 1611:
			case 1612:
			case 1613:
			case 1614:
			case 1615:
			case 1616:
			case 1617:
			case 1618:
			case 1619:
			case 1620:
			case 1621:
			case 1622:
			case 1623:
			case 1624:
			case 1625:
			case 1626:
			case 1628:
			case 1629:
			case 1630:
			case 1631:
			case 1632:
			case 1633:
			case 1634:
			case 1635:
			case 1636:
			case 1637:
			case 1638:
			case 1639:
			case 1640:
			case 1641:
			case 1642:
			case 1643:
			case 1644:
			case 1645:
			case 1646:
			case 1647:
			case 1648:
			case 1649:
			case 1650:
			case 1651:
			case 1652:
			case 1653:
			case 1654:
			case 1655:
			case 1656:
			case 1657:
			case 1658:
			case 1659:
			case 1660:
			case 1661:
			case 1662:
			case 1663:
			case 1664:
			case 1665:
			case 1666:
			case 1667:
			case 1668:
			case 1669:
			case 1670:
			case 1671:
			case 1672:
			case 1673:
			case 1674:
			case 1675:
			case 1676:
			case 1677:
			case 1678:
			case 1679:
			case 1680:
			case 1681:
			case 1682:
			case 1683:
			case 1684:
			case 1685:
			case 1686:
			case 1687:
			case 1688:
			case 1689:
			case 1690:
			case 1691:
			case 1692:
			case 1693:
			case 1694:
			case 1695:
			case 1696:
			case 1697:
			case 1698:
			case 1699:
			case 1700:
			case 1701:
			case 1702:
			case 1703:
			case 1704:
			case 1705:
			case 1706:
			case 1707:
			case 1708:
			case 1709:
			case 1710:
			case 1711:
			case 1712:
			case 1713:
			case 1714:
			case 1715:
			case 1716:
			case 1717:
			case 1718:
			case 1719:
			case 1720:
			case 1721:
			case 1722:
			case 1723:
			case 1724:
			case 1725:
			case 1726:
			case 1727:
			case 1728:
			case 1729:
			case 1730:
			case 1731:
			case 1732:
			case 1733:
			case 1734:
			case 1735:
			case 1736:
			case 1737:
			case 1738:
			case 1739:
			case 1740:
			case 1741:
			case 1742:
			case 1743:
			case 1744:
			case 1745:
			case 1746:
			case 1747:
			case 1748:
			case 1749:
			case 1750:
			case 1751:
			case 1752:
			case 1753:
			case 1754:
			case 1755:
			case 1756:
			case 1757:
			case 1758:
			case 1759:
			case 1760:
			case 1761:
			case 1762:
			case 1763:
			case 1764:
			case 1765:
			case 1766:
			case 1767:
			case 1768:
			case 1769:
			case 1770:
			case 1771:
			case 1772:
			case 1773:
			case 1774:
			case 1775:
			case 1776:
			case 1777:
			case 1778:
			case 1779:
			case 1780:
			case 1781:
			case 1782:
			case 1783:
			case 1784:
			case 1785:
			case 1786:
			case 1787:
			case 1788:
			case 1789:
			case 1790:
			case 1791:
			case 1792:
			case 1793:
			case 1794:
			case 1795:
			case 1796:
			case 1797:
			case 1798:
			case 1799:
			case 1800:
			case 1801:
			case 1802:
			case 1803:
			case 1804:
			case 1805:
			case 1806:
			case 1807:
			case 1808:
			case 1809:
			case 1810:
			case 1811:
			case 1812:
			case 1813:
			case 1814:
			case 1815:
			case 1816:
			case 1817:
			case 1818:
			case 1819:
			case 1820:
			case 1821:
			case 1822:
			case 1823:
			case 1824:
			case 1825:
			case 1826:
			case 1827:
			case 1828:
			case 1829:
			case 1830:
			case 1831:
			case 1832:
			case 1833:
			case 1834:
			case 1835:
			case 1836:
			case 1837:
			case 1838:
			case 1839:
			case 1840:
			case 1841:
			case 1842:
			case 1843:
			case 1844:
			case 1845:
			case 1846:
			case 1847:
			case 1848:
			case 1849:
			case 1850:
			case 1851:
			case 1852:
			case 1853:
			case 1854:
			case 1855:
			case 1856:
			case 1857:
			case 1858:
			case 1859:
			case 1860:
			case 1861:
			case 1862:
			case 1863:
			case 1864:
			case 1865:
			case 1866:
			case 1867:
			case 1868:
			case 1869:
			case 1870:
			case 1871:
			case 1872:
			case 1873:
			case 1874:
			case 1875:
			case 1876:
			case 1877:
			case 1878:
			case 1879:
			case 1880:
			case 1881:
			case 1882:
			case 1883:
			case 1884:
			case 1885:
			case 1886:
			case 1887:
			case 1888:
			case 1889:
			case 1890:
			case 1891:
			case 1892:
			case 1893:
			case 1894:
			case 1895:
			case 1896:
			case 1897:
			case 1898:
			case 1899:
			case 1900:
			case 1901:
			case 1902:
			case 1903:
			case 1904:
			case 1905:
			case 1906:
			case 1907:
			case 1908:
			case 1909:
			case 1910:
			case 1911:
			case 1912:
			case 1913:
			case 1914:
			case 1915:
			case 1916:
			case 1917:
			case 1918:
			case 1919:
			case 1920:
			case 1921:
			case 1922:
			case 1923:
			case 1924:
			case 1925:
			case 1926:
			case 1927:
			case 1928:
			case 1929:
			case 1930:
			case 1931:
			case 1932:
			case 1933:
			case 1934:
			case 1935:
			case 1936:
			case 1937:
			case 1939:
			case 1940:
			case 1941:
			case 1942:
			case 1943:
			case 1944:
			case 1945:
			case 1946:
			case 1947:
			case 1948:
			case 1949:
			case 1950:
			case 1951:
			case 1952:
			case 1953:
			case 1954:
			case 1955:
			case 1956:
			case 1957:
			case 1958:
			case 1959:
			case 1960:
			case 1961:
			case 1962:
			case 1963:
			case 1965:
			case 1966:
			case 1967:
			case 1968:
			case 1969:
			case 1970:
			case 1971:
			case 1972:
			case 1973:
			case 1974:
			case 1975:
			case 1976:
			case 1977:
			case 1978:
			case 1979:
			case 1980:
			case 1981:
			case 1982:
			case 1983:
			case 1984:
			case 1985:
			case 1986:
			case 1987:
			case 1988:
			case 1989:
			case 1990:
			case 1991:
			case 1992:
			case 1993:
			case 1994:
			case 1995:
			case 1996:
			case 1997:
			case 1998:
			case 1999:
			case 2000:
			case 2003:
			case 2004:
			case 2005:
			case 2006:
			case 2007:
			case 2008:
			case 2009:
			case 2010:
			case 2011:
			case 2012:
			case 2013:
			case 2014:
			case 2015:
			case 2016:
			case 2017:
			case 2018:
			case 2019:
			case 2020:
			case 2021:
			case 2022:
			case 2023:
			case 2024:
			case 2026:
			case 2027:
			case 2028:
			case 2029:
			case 2030:
			case 2031:
			case 2032:
			case 2033:
			case 2034:
			case 2035:
			case 2036:
			case 2037:
			case 2038:
			case 2039:
			case 2040:
			case 2041:
			case 2042:
			case 2043:
			case 2044:
			case 2045:
			case 2046:
			case 2047:
			case 2048:
			case 2049:
			case 2050:
			case 2051:
			case 2052:
			case 2053:
			case 2054:
			case 2055:
			case 2056:
			case 2057:
			case 2058:
			case 2059:
			case 2060:
			case 2061:
			case 2062:
			case 2063:
			case 2064:
			case 2065:
			case 2066:
			case 2067:
			case 2068:
			case 2069:
			case 2070:
			case 2071:
			case 2072:
			case 2074:
			case 2075:
			case 2076:
			case 2077:
			case 2078:
			case 2079:
			case 2080:
			case 2081:
			case 2082:
			case 2083:
			case 2084:
			case 2085:
			case 2086:
			case 2087:
			case 2088:
			case 2089:
			case 2090:
			case 2091:
			case 2092:
			case 2093:
			case 2094:
			case 2095:
			case 2096:
			case 2097:
			case 2098:
			case 2100:
			case 2101:
			case 2102:
			case 2103:
			case 2104:
			case 2105:
			case 2106:
			case 2107:
			case 2108:
			case 2109:
			case 2110:
			case 2111:
			case 2112:
			case 2113:
			case 2115:
			case 2116:
			case 2117:
			case 2118:
			case 2119:
			case 2120:
			case 2122:
			case 2123:
			case 2124:
			case 2125:
			case 2126:
			case 2128:
			case 2129:
			case 2130:
			case 2131:
			case 2132:
			case 2133:
			case 2134:
			case 2135:
			case 2136:
			case 2137:
			case 2138:
			case 2139:
			case 2140:
			case 2141:
			case 2142:
			case 2143:
			case 2145:
			case 2146:
			case 2147:
			case 2148:
			case 2149:
			case 2150:
			case 2151:
			case 2152:
			case 2153:
			case 2154:
			case 2155:
			case 2156:
			case 2157:
			case 2158:
			case 2159:
			case 2160:
			case 2161:
			case 2162:
			case 2163:
			case 2164:
			case 2165:
			case 2166:
			case 2168:
			case 2169:
			case 2170:
			case 2171:
			case 2172:
			case 2173:
			case 2174:
			case 2175:
			case 2176:
			case 2177:
			case 2178:
			case 2179:
			case 2180:
			case 2181:
			case 2182:
			case 2183:
			case 2184:
			case 2185:
			case 2186:
			case 2187:
			case 2188:
			case 2189:
			case 2191:
			case 2192:
			case 2193:
			case 2194:
			case 2195:
			case 2196:
			case 2197:
			case 2198:
			case 2199:
			case 2200:
			case 2201:
			case 2202:
			case 2203:
			case 2204:
			case 2205:
			case 2206:
			case 2207:
			case 2208:
			case 2209:
			case 2210:
			case 2211:
			case 2216:
			case 2220:
			case 2246:
			case 2252:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 11006;
				this.identifier();
				}
				break;
			case 2212:
			case 2219:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 11007;
				this.quoted_string();
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public where_clause(): Where_clauseContext {
		let localctx: Where_clauseContext = new Where_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1356, PlSqlParser.RULE_where_clause);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 11010;
			this.match(PlSqlParser.WHERE);
			this.state = 11015;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1512, this._ctx) ) {
			case 1:
				{
				this.state = 11011;
				this.match(PlSqlParser.CURRENT);
				this.state = 11012;
				this.match(PlSqlParser.OF);
				this.state = 11013;
				this.cursor_name();
				}
				break;
			case 2:
				{
				this.state = 11014;
				this.expression();
				}
				break;
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public into_clause(): Into_clauseContext {
		let localctx: Into_clauseContext = new Into_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1358, PlSqlParser.RULE_into_clause);
		let _la: number;
		try {
			let _alt: number;
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 11019;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===145) {
				{
				this.state = 11017;
				this.match(PlSqlParser.BULK);
				this.state = 11018;
				this.match(PlSqlParser.COLLECT);
				}
			}

			this.state = 11021;
			this.match(PlSqlParser.INTO);
			this.state = 11022;
			this.variable_name();
			this.state = 11027;
			this._errHandler.sync(this);
			_alt = this._interp.adaptivePredict(this._input, 1514, this._ctx);
			while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) {
				if (_alt === 1) {
					{
					{
					this.state = 11023;
					this.match(PlSqlParser.COMMA);
					this.state = 11024;
					this.variable_name();
					}
					}
				}
				this.state = 11029;
				this._errHandler.sync(this);
				_alt = this._interp.adaptivePredict(this._input, 1514, this._ctx);
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public xml_column_name(): Xml_column_nameContext {
		let localctx: Xml_column_nameContext = new Xml_column_nameContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1360, PlSqlParser.RULE_xml_column_name);
		try {
			this.state = 11032;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 1:
			case 2:
			case 3:
			case 4:
			case 5:
			case 6:
			case 7:
			case 8:
			case 9:
			case 10:
			case 11:
			case 12:
			case 13:
			case 14:
			case 15:
			case 16:
			case 17:
			case 18:
			case 19:
			case 20:
			case 21:
			case 22:
			case 23:
			case 24:
			case 25:
			case 26:
			case 27:
			case 28:
			case 29:
			case 30:
			case 31:
			case 32:
			case 33:
			case 34:
			case 36:
			case 37:
			case 38:
			case 40:
			case 41:
			case 42:
			case 44:
			case 45:
			case 46:
			case 47:
			case 49:
			case 50:
			case 51:
			case 52:
			case 53:
			case 54:
			case 55:
			case 56:
			case 57:
			case 58:
			case 59:
			case 60:
			case 63:
			case 64:
			case 65:
			case 66:
			case 67:
			case 68:
			case 69:
			case 70:
			case 71:
			case 72:
			case 73:
			case 74:
			case 75:
			case 76:
			case 78:
			case 79:
			case 80:
			case 81:
			case 82:
			case 83:
			case 85:
			case 86:
			case 87:
			case 88:
			case 89:
			case 90:
			case 91:
			case 92:
			case 93:
			case 95:
			case 96:
			case 97:
			case 98:
			case 99:
			case 100:
			case 101:
			case 102:
			case 103:
			case 104:
			case 105:
			case 106:
			case 108:
			case 109:
			case 110:
			case 111:
			case 112:
			case 113:
			case 114:
			case 115:
			case 116:
			case 117:
			case 118:
			case 119:
			case 120:
			case 121:
			case 122:
			case 123:
			case 124:
			case 125:
			case 126:
			case 127:
			case 128:
			case 129:
			case 130:
			case 131:
			case 132:
			case 133:
			case 134:
			case 135:
			case 136:
			case 137:
			case 138:
			case 139:
			case 140:
			case 141:
			case 142:
			case 143:
			case 144:
			case 145:
			case 147:
			case 148:
			case 149:
			case 150:
			case 151:
			case 152:
			case 153:
			case 154:
			case 155:
			case 156:
			case 157:
			case 158:
			case 160:
			case 161:
			case 162:
			case 163:
			case 164:
			case 165:
			case 166:
			case 167:
			case 168:
			case 169:
			case 170:
			case 171:
			case 172:
			case 174:
			case 175:
			case 176:
			case 177:
			case 178:
			case 179:
			case 181:
			case 182:
			case 183:
			case 184:
			case 185:
			case 186:
			case 187:
			case 188:
			case 189:
			case 190:
			case 191:
			case 192:
			case 193:
			case 194:
			case 195:
			case 196:
			case 197:
			case 198:
			case 199:
			case 200:
			case 201:
			case 202:
			case 203:
			case 204:
			case 205:
			case 206:
			case 207:
			case 208:
			case 209:
			case 210:
			case 211:
			case 212:
			case 213:
			case 214:
			case 215:
			case 216:
			case 217:
			case 218:
			case 219:
			case 220:
			case 221:
			case 222:
			case 223:
			case 224:
			case 225:
			case 226:
			case 227:
			case 228:
			case 229:
			case 230:
			case 231:
			case 233:
			case 234:
			case 235:
			case 236:
			case 237:
			case 238:
			case 239:
			case 240:
			case 241:
			case 242:
			case 243:
			case 244:
			case 245:
			case 246:
			case 247:
			case 248:
			case 249:
			case 250:
			case 252:
			case 253:
			case 254:
			case 255:
			case 256:
			case 257:
			case 258:
			case 259:
			case 260:
			case 261:
			case 262:
			case 263:
			case 264:
			case 265:
			case 266:
			case 267:
			case 268:
			case 269:
			case 270:
			case 271:
			case 272:
			case 273:
			case 274:
			case 275:
			case 276:
			case 277:
			case 278:
			case 279:
			case 280:
			case 281:
			case 282:
			case 283:
			case 284:
			case 285:
			case 286:
			case 287:
			case 289:
			case 290:
			case 291:
			case 292:
			case 293:
			case 294:
			case 295:
			case 296:
			case 297:
			case 298:
			case 299:
			case 300:
			case 301:
			case 302:
			case 303:
			case 304:
			case 305:
			case 306:
			case 307:
			case 308:
			case 309:
			case 310:
			case 311:
			case 312:
			case 313:
			case 314:
			case 315:
			case 316:
			case 317:
			case 318:
			case 319:
			case 321:
			case 322:
			case 323:
			case 324:
			case 325:
			case 326:
			case 328:
			case 329:
			case 330:
			case 331:
			case 332:
			case 333:
			case 334:
			case 335:
			case 336:
			case 337:
			case 338:
			case 339:
			case 340:
			case 341:
			case 342:
			case 343:
			case 344:
			case 345:
			case 346:
			case 347:
			case 348:
			case 349:
			case 350:
			case 352:
			case 353:
			case 354:
			case 355:
			case 356:
			case 357:
			case 358:
			case 359:
			case 360:
			case 361:
			case 362:
			case 363:
			case 364:
			case 365:
			case 366:
			case 367:
			case 368:
			case 369:
			case 370:
			case 372:
			case 373:
			case 374:
			case 375:
			case 376:
			case 377:
			case 378:
			case 379:
			case 380:
			case 381:
			case 382:
			case 383:
			case 384:
			case 385:
			case 386:
			case 387:
			case 388:
			case 389:
			case 390:
			case 391:
			case 392:
			case 394:
			case 395:
			case 397:
			case 398:
			case 399:
			case 400:
			case 401:
			case 402:
			case 403:
			case 404:
			case 405:
			case 406:
			case 407:
			case 408:
			case 409:
			case 410:
			case 412:
			case 413:
			case 414:
			case 415:
			case 417:
			case 418:
			case 419:
			case 420:
			case 421:
			case 422:
			case 423:
			case 424:
			case 425:
			case 426:
			case 427:
			case 428:
			case 429:
			case 430:
			case 431:
			case 434:
			case 435:
			case 436:
			case 437:
			case 438:
			case 439:
			case 440:
			case 441:
			case 442:
			case 443:
			case 444:
			case 446:
			case 447:
			case 448:
			case 449:
			case 450:
			case 451:
			case 452:
			case 453:
			case 454:
			case 455:
			case 456:
			case 457:
			case 458:
			case 459:
			case 460:
			case 461:
			case 462:
			case 463:
			case 464:
			case 465:
			case 466:
			case 467:
			case 468:
			case 469:
			case 470:
			case 471:
			case 472:
			case 473:
			case 475:
			case 476:
			case 477:
			case 478:
			case 479:
			case 480:
			case 481:
			case 482:
			case 483:
			case 484:
			case 485:
			case 486:
			case 487:
			case 488:
			case 489:
			case 490:
			case 491:
			case 492:
			case 493:
			case 494:
			case 495:
			case 496:
			case 497:
			case 498:
			case 499:
			case 500:
			case 501:
			case 502:
			case 503:
			case 504:
			case 505:
			case 506:
			case 507:
			case 508:
			case 509:
			case 510:
			case 511:
			case 512:
			case 513:
			case 514:
			case 515:
			case 516:
			case 517:
			case 518:
			case 519:
			case 520:
			case 521:
			case 522:
			case 523:
			case 524:
			case 525:
			case 526:
			case 527:
			case 528:
			case 529:
			case 530:
			case 531:
			case 532:
			case 533:
			case 534:
			case 535:
			case 536:
			case 537:
			case 538:
			case 539:
			case 540:
			case 541:
			case 542:
			case 543:
			case 544:
			case 545:
			case 547:
			case 548:
			case 549:
			case 550:
			case 551:
			case 552:
			case 553:
			case 555:
			case 556:
			case 557:
			case 558:
			case 559:
			case 560:
			case 561:
			case 562:
			case 563:
			case 564:
			case 565:
			case 566:
			case 567:
			case 568:
			case 569:
			case 572:
			case 574:
			case 575:
			case 576:
			case 577:
			case 578:
			case 579:
			case 580:
			case 581:
			case 582:
			case 583:
			case 584:
			case 586:
			case 587:
			case 588:
			case 589:
			case 590:
			case 591:
			case 592:
			case 593:
			case 594:
			case 595:
			case 596:
			case 597:
			case 598:
			case 599:
			case 600:
			case 602:
			case 603:
			case 604:
			case 605:
			case 606:
			case 607:
			case 608:
			case 609:
			case 610:
			case 611:
			case 612:
			case 613:
			case 614:
			case 615:
			case 616:
			case 617:
			case 618:
			case 619:
			case 620:
			case 621:
			case 622:
			case 623:
			case 624:
			case 625:
			case 626:
			case 627:
			case 628:
			case 629:
			case 630:
			case 632:
			case 633:
			case 634:
			case 635:
			case 636:
			case 637:
			case 638:
			case 639:
			case 640:
			case 641:
			case 642:
			case 643:
			case 644:
			case 645:
			case 646:
			case 647:
			case 648:
			case 649:
			case 650:
			case 651:
			case 653:
			case 654:
			case 655:
			case 656:
			case 657:
			case 658:
			case 659:
			case 660:
			case 661:
			case 662:
			case 663:
			case 664:
			case 665:
			case 666:
			case 667:
			case 668:
			case 670:
			case 671:
			case 672:
			case 673:
			case 674:
			case 675:
			case 676:
			case 677:
			case 678:
			case 679:
			case 680:
			case 681:
			case 682:
			case 683:
			case 684:
			case 685:
			case 686:
			case 687:
			case 689:
			case 690:
			case 692:
			case 693:
			case 694:
			case 696:
			case 697:
			case 698:
			case 699:
			case 700:
			case 701:
			case 702:
			case 703:
			case 704:
			case 705:
			case 706:
			case 707:
			case 708:
			case 709:
			case 710:
			case 711:
			case 712:
			case 713:
			case 714:
			case 715:
			case 716:
			case 717:
			case 718:
			case 719:
			case 720:
			case 721:
			case 722:
			case 723:
			case 724:
			case 725:
			case 726:
			case 727:
			case 728:
			case 729:
			case 730:
			case 731:
			case 732:
			case 733:
			case 734:
			case 735:
			case 736:
			case 737:
			case 738:
			case 739:
			case 740:
			case 741:
			case 742:
			case 743:
			case 744:
			case 745:
			case 746:
			case 747:
			case 748:
			case 749:
			case 750:
			case 751:
			case 752:
			case 753:
			case 754:
			case 755:
			case 756:
			case 758:
			case 759:
			case 760:
			case 761:
			case 762:
			case 763:
			case 764:
			case 765:
			case 766:
			case 767:
			case 768:
			case 769:
			case 770:
			case 771:
			case 772:
			case 773:
			case 774:
			case 775:
			case 777:
			case 778:
			case 779:
			case 780:
			case 781:
			case 782:
			case 783:
			case 784:
			case 785:
			case 786:
			case 787:
			case 788:
			case 789:
			case 790:
			case 791:
			case 792:
			case 793:
			case 794:
			case 795:
			case 796:
			case 797:
			case 798:
			case 799:
			case 800:
			case 801:
			case 802:
			case 803:
			case 804:
			case 805:
			case 806:
			case 807:
			case 808:
			case 809:
			case 810:
			case 811:
			case 812:
			case 813:
			case 814:
			case 815:
			case 816:
			case 817:
			case 818:
			case 819:
			case 820:
			case 821:
			case 822:
			case 823:
			case 824:
			case 825:
			case 826:
			case 827:
			case 828:
			case 829:
			case 830:
			case 831:
			case 832:
			case 833:
			case 834:
			case 835:
			case 836:
			case 837:
			case 838:
			case 839:
			case 840:
			case 841:
			case 843:
			case 844:
			case 845:
			case 846:
			case 847:
			case 848:
			case 849:
			case 850:
			case 851:
			case 852:
			case 853:
			case 854:
			case 855:
			case 856:
			case 857:
			case 858:
			case 859:
			case 861:
			case 862:
			case 863:
			case 864:
			case 865:
			case 866:
			case 867:
			case 868:
			case 869:
			case 870:
			case 871:
			case 872:
			case 873:
			case 874:
			case 875:
			case 876:
			case 877:
			case 878:
			case 879:
			case 880:
			case 881:
			case 882:
			case 883:
			case 884:
			case 885:
			case 886:
			case 888:
			case 889:
			case 890:
			case 891:
			case 892:
			case 893:
			case 894:
			case 895:
			case 896:
			case 897:
			case 898:
			case 899:
			case 900:
			case 901:
			case 902:
			case 903:
			case 904:
			case 905:
			case 906:
			case 907:
			case 908:
			case 909:
			case 910:
			case 911:
			case 912:
			case 913:
			case 914:
			case 915:
			case 916:
			case 917:
			case 918:
			case 919:
			case 920:
			case 921:
			case 922:
			case 923:
			case 924:
			case 925:
			case 926:
			case 927:
			case 928:
			case 929:
			case 930:
			case 931:
			case 932:
			case 933:
			case 934:
			case 935:
			case 936:
			case 937:
			case 938:
			case 939:
			case 940:
			case 941:
			case 942:
			case 943:
			case 944:
			case 945:
			case 946:
			case 947:
			case 948:
			case 949:
			case 950:
			case 951:
			case 952:
			case 954:
			case 955:
			case 956:
			case 957:
			case 958:
			case 959:
			case 960:
			case 961:
			case 962:
			case 963:
			case 964:
			case 965:
			case 966:
			case 967:
			case 968:
			case 969:
			case 970:
			case 971:
			case 972:
			case 973:
			case 974:
			case 975:
			case 976:
			case 977:
			case 978:
			case 979:
			case 980:
			case 981:
			case 982:
			case 983:
			case 984:
			case 985:
			case 986:
			case 987:
			case 988:
			case 989:
			case 990:
			case 991:
			case 992:
			case 993:
			case 994:
			case 995:
			case 996:
			case 997:
			case 998:
			case 999:
			case 1000:
			case 1001:
			case 1002:
			case 1003:
			case 1004:
			case 1005:
			case 1006:
			case 1007:
			case 1008:
			case 1009:
			case 1010:
			case 1011:
			case 1012:
			case 1013:
			case 1014:
			case 1015:
			case 1016:
			case 1017:
			case 1018:
			case 1019:
			case 1020:
			case 1021:
			case 1022:
			case 1023:
			case 1024:
			case 1025:
			case 1026:
			case 1027:
			case 1028:
			case 1029:
			case 1030:
			case 1031:
			case 1032:
			case 1033:
			case 1034:
			case 1035:
			case 1036:
			case 1037:
			case 1038:
			case 1039:
			case 1040:
			case 1041:
			case 1042:
			case 1043:
			case 1044:
			case 1045:
			case 1046:
			case 1047:
			case 1048:
			case 1049:
			case 1050:
			case 1051:
			case 1052:
			case 1053:
			case 1054:
			case 1055:
			case 1056:
			case 1057:
			case 1058:
			case 1059:
			case 1060:
			case 1061:
			case 1062:
			case 1063:
			case 1064:
			case 1065:
			case 1066:
			case 1067:
			case 1068:
			case 1069:
			case 1070:
			case 1071:
			case 1072:
			case 1074:
			case 1075:
			case 1076:
			case 1077:
			case 1078:
			case 1079:
			case 1080:
			case 1081:
			case 1082:
			case 1083:
			case 1084:
			case 1085:
			case 1086:
			case 1087:
			case 1089:
			case 1090:
			case 1091:
			case 1092:
			case 1093:
			case 1094:
			case 1095:
			case 1096:
			case 1098:
			case 1099:
			case 1100:
			case 1101:
			case 1102:
			case 1103:
			case 1104:
			case 1105:
			case 1106:
			case 1107:
			case 1108:
			case 1109:
			case 1110:
			case 1111:
			case 1112:
			case 1113:
			case 1114:
			case 1116:
			case 1117:
			case 1118:
			case 1119:
			case 1120:
			case 1121:
			case 1122:
			case 1123:
			case 1124:
			case 1125:
			case 1127:
			case 1129:
			case 1130:
			case 1131:
			case 1132:
			case 1133:
			case 1134:
			case 1135:
			case 1136:
			case 1137:
			case 1138:
			case 1139:
			case 1140:
			case 1142:
			case 1143:
			case 1144:
			case 1145:
			case 1146:
			case 1147:
			case 1148:
			case 1149:
			case 1150:
			case 1151:
			case 1152:
			case 1153:
			case 1154:
			case 1155:
			case 1156:
			case 1157:
			case 1158:
			case 1159:
			case 1160:
			case 1161:
			case 1162:
			case 1163:
			case 1164:
			case 1165:
			case 1166:
			case 1167:
			case 1169:
			case 1170:
			case 1171:
			case 1173:
			case 1174:
			case 1175:
			case 1176:
			case 1177:
			case 1178:
			case 1179:
			case 1180:
			case 1181:
			case 1182:
			case 1183:
			case 1184:
			case 1185:
			case 1186:
			case 1187:
			case 1188:
			case 1189:
			case 1190:
			case 1191:
			case 1192:
			case 1193:
			case 1194:
			case 1195:
			case 1197:
			case 1198:
			case 1199:
			case 1200:
			case 1201:
			case 1202:
			case 1203:
			case 1204:
			case 1205:
			case 1206:
			case 1207:
			case 1208:
			case 1209:
			case 1210:
			case 1211:
			case 1212:
			case 1213:
			case 1214:
			case 1215:
			case 1216:
			case 1217:
			case 1218:
			case 1219:
			case 1220:
			case 1221:
			case 1222:
			case 1223:
			case 1224:
			case 1225:
			case 1226:
			case 1228:
			case 1229:
			case 1230:
			case 1231:
			case 1232:
			case 1236:
			case 1237:
			case 1241:
			case 1242:
			case 1243:
			case 1244:
			case 1245:
			case 1246:
			case 1247:
			case 1248:
			case 1249:
			case 1250:
			case 1252:
			case 1253:
			case 1254:
			case 1255:
			case 1256:
			case 1257:
			case 1258:
			case 1259:
			case 1260:
			case 1261:
			case 1262:
			case 1263:
			case 1264:
			case 1265:
			case 1266:
			case 1267:
			case 1268:
			case 1269:
			case 1270:
			case 1271:
			case 1272:
			case 1273:
			case 1274:
			case 1275:
			case 1276:
			case 1277:
			case 1278:
			case 1279:
			case 1280:
			case 1281:
			case 1282:
			case 1283:
			case 1284:
			case 1285:
			case 1286:
			case 1287:
			case 1288:
			case 1289:
			case 1290:
			case 1291:
			case 1292:
			case 1293:
			case 1294:
			case 1295:
			case 1296:
			case 1297:
			case 1298:
			case 1299:
			case 1300:
			case 1301:
			case 1302:
			case 1303:
			case 1304:
			case 1305:
			case 1306:
			case 1308:
			case 1309:
			case 1310:
			case 1311:
			case 1312:
			case 1313:
			case 1314:
			case 1315:
			case 1316:
			case 1317:
			case 1318:
			case 1319:
			case 1320:
			case 1321:
			case 1322:
			case 1323:
			case 1325:
			case 1326:
			case 1327:
			case 1328:
			case 1329:
			case 1330:
			case 1331:
			case 1332:
			case 1333:
			case 1334:
			case 1335:
			case 1336:
			case 1337:
			case 1338:
			case 1339:
			case 1340:
			case 1341:
			case 1342:
			case 1343:
			case 1344:
			case 1345:
			case 1346:
			case 1347:
			case 1348:
			case 1349:
			case 1350:
			case 1351:
			case 1352:
			case 1353:
			case 1354:
			case 1355:
			case 1356:
			case 1357:
			case 1358:
			case 1359:
			case 1360:
			case 1361:
			case 1362:
			case 1363:
			case 1364:
			case 1365:
			case 1366:
			case 1367:
			case 1368:
			case 1369:
			case 1370:
			case 1371:
			case 1372:
			case 1373:
			case 1374:
			case 1375:
			case 1376:
			case 1377:
			case 1378:
			case 1379:
			case 1380:
			case 1381:
			case 1382:
			case 1383:
			case 1384:
			case 1385:
			case 1386:
			case 1387:
			case 1388:
			case 1389:
			case 1390:
			case 1391:
			case 1392:
			case 1393:
			case 1394:
			case 1395:
			case 1396:
			case 1397:
			case 1399:
			case 1400:
			case 1401:
			case 1402:
			case 1403:
			case 1404:
			case 1405:
			case 1406:
			case 1407:
			case 1408:
			case 1409:
			case 1410:
			case 1411:
			case 1412:
			case 1413:
			case 1414:
			case 1416:
			case 1417:
			case 1418:
			case 1419:
			case 1420:
			case 1421:
			case 1422:
			case 1423:
			case 1424:
			case 1425:
			case 1426:
			case 1427:
			case 1428:
			case 1429:
			case 1430:
			case 1431:
			case 1432:
			case 1433:
			case 1435:
			case 1436:
			case 1437:
			case 1438:
			case 1439:
			case 1440:
			case 1441:
			case 1442:
			case 1443:
			case 1444:
			case 1445:
			case 1446:
			case 1447:
			case 1448:
			case 1449:
			case 1450:
			case 1451:
			case 1452:
			case 1453:
			case 1454:
			case 1455:
			case 1456:
			case 1457:
			case 1458:
			case 1459:
			case 1460:
			case 1461:
			case 1462:
			case 1463:
			case 1464:
			case 1465:
			case 1466:
			case 1467:
			case 1468:
			case 1469:
			case 1470:
			case 1471:
			case 1472:
			case 1473:
			case 1474:
			case 1475:
			case 1476:
			case 1477:
			case 1478:
			case 1479:
			case 1480:
			case 1481:
			case 1482:
			case 1483:
			case 1484:
			case 1485:
			case 1486:
			case 1487:
			case 1488:
			case 1489:
			case 1491:
			case 1492:
			case 1493:
			case 1494:
			case 1495:
			case 1496:
			case 1497:
			case 1499:
			case 1500:
			case 1501:
			case 1502:
			case 1503:
			case 1504:
			case 1505:
			case 1506:
			case 1507:
			case 1508:
			case 1509:
			case 1510:
			case 1511:
			case 1512:
			case 1513:
			case 1514:
			case 1515:
			case 1516:
			case 1518:
			case 1519:
			case 1520:
			case 1521:
			case 1522:
			case 1523:
			case 1524:
			case 1525:
			case 1526:
			case 1527:
			case 1528:
			case 1529:
			case 1530:
			case 1531:
			case 1532:
			case 1533:
			case 1534:
			case 1536:
			case 1537:
			case 1538:
			case 1539:
			case 1540:
			case 1541:
			case 1542:
			case 1543:
			case 1544:
			case 1545:
			case 1546:
			case 1547:
			case 1548:
			case 1549:
			case 1550:
			case 1551:
			case 1552:
			case 1553:
			case 1554:
			case 1555:
			case 1556:
			case 1557:
			case 1558:
			case 1559:
			case 1560:
			case 1561:
			case 1562:
			case 1563:
			case 1564:
			case 1565:
			case 1566:
			case 1567:
			case 1568:
			case 1570:
			case 1571:
			case 1572:
			case 1573:
			case 1574:
			case 1575:
			case 1576:
			case 1577:
			case 1578:
			case 1579:
			case 1580:
			case 1581:
			case 1582:
			case 1583:
			case 1584:
			case 1585:
			case 1586:
			case 1587:
			case 1588:
			case 1589:
			case 1590:
			case 1591:
			case 1592:
			case 1593:
			case 1594:
			case 1595:
			case 1596:
			case 1597:
			case 1598:
			case 1599:
			case 1600:
			case 1601:
			case 1602:
			case 1603:
			case 1604:
			case 1605:
			case 1606:
			case 1607:
			case 1608:
			case 1609:
			case 1610:
			case 1611:
			case 1612:
			case 1613:
			case 1614:
			case 1615:
			case 1616:
			case 1617:
			case 1618:
			case 1619:
			case 1620:
			case 1621:
			case 1622:
			case 1623:
			case 1624:
			case 1625:
			case 1626:
			case 1628:
			case 1629:
			case 1630:
			case 1631:
			case 1632:
			case 1633:
			case 1634:
			case 1635:
			case 1636:
			case 1637:
			case 1638:
			case 1639:
			case 1640:
			case 1641:
			case 1642:
			case 1643:
			case 1644:
			case 1645:
			case 1646:
			case 1647:
			case 1648:
			case 1649:
			case 1650:
			case 1651:
			case 1652:
			case 1653:
			case 1654:
			case 1655:
			case 1656:
			case 1657:
			case 1658:
			case 1659:
			case 1660:
			case 1661:
			case 1662:
			case 1663:
			case 1664:
			case 1665:
			case 1666:
			case 1667:
			case 1668:
			case 1669:
			case 1670:
			case 1671:
			case 1672:
			case 1673:
			case 1674:
			case 1675:
			case 1676:
			case 1677:
			case 1678:
			case 1679:
			case 1680:
			case 1681:
			case 1682:
			case 1683:
			case 1684:
			case 1685:
			case 1686:
			case 1687:
			case 1688:
			case 1689:
			case 1690:
			case 1691:
			case 1692:
			case 1693:
			case 1694:
			case 1695:
			case 1696:
			case 1697:
			case 1698:
			case 1699:
			case 1700:
			case 1701:
			case 1702:
			case 1703:
			case 1704:
			case 1705:
			case 1706:
			case 1707:
			case 1708:
			case 1709:
			case 1710:
			case 1711:
			case 1712:
			case 1713:
			case 1714:
			case 1715:
			case 1716:
			case 1717:
			case 1718:
			case 1719:
			case 1720:
			case 1721:
			case 1722:
			case 1723:
			case 1724:
			case 1725:
			case 1726:
			case 1727:
			case 1728:
			case 1729:
			case 1730:
			case 1731:
			case 1732:
			case 1733:
			case 1734:
			case 1735:
			case 1736:
			case 1737:
			case 1738:
			case 1739:
			case 1740:
			case 1741:
			case 1742:
			case 1743:
			case 1744:
			case 1745:
			case 1746:
			case 1747:
			case 1748:
			case 1749:
			case 1750:
			case 1751:
			case 1752:
			case 1753:
			case 1754:
			case 1755:
			case 1756:
			case 1757:
			case 1758:
			case 1759:
			case 1760:
			case 1761:
			case 1762:
			case 1763:
			case 1764:
			case 1765:
			case 1766:
			case 1767:
			case 1768:
			case 1769:
			case 1770:
			case 1771:
			case 1772:
			case 1773:
			case 1774:
			case 1775:
			case 1776:
			case 1777:
			case 1778:
			case 1779:
			case 1780:
			case 1781:
			case 1782:
			case 1783:
			case 1784:
			case 1785:
			case 1786:
			case 1787:
			case 1788:
			case 1789:
			case 1790:
			case 1791:
			case 1792:
			case 1793:
			case 1794:
			case 1795:
			case 1796:
			case 1797:
			case 1798:
			case 1799:
			case 1800:
			case 1801:
			case 1802:
			case 1803:
			case 1804:
			case 1805:
			case 1806:
			case 1807:
			case 1808:
			case 1809:
			case 1810:
			case 1811:
			case 1812:
			case 1813:
			case 1814:
			case 1815:
			case 1816:
			case 1817:
			case 1818:
			case 1819:
			case 1820:
			case 1821:
			case 1822:
			case 1823:
			case 1824:
			case 1825:
			case 1826:
			case 1827:
			case 1828:
			case 1829:
			case 1830:
			case 1831:
			case 1832:
			case 1833:
			case 1834:
			case 1835:
			case 1836:
			case 1837:
			case 1838:
			case 1839:
			case 1840:
			case 1841:
			case 1842:
			case 1843:
			case 1844:
			case 1845:
			case 1846:
			case 1847:
			case 1848:
			case 1849:
			case 1850:
			case 1851:
			case 1852:
			case 1853:
			case 1854:
			case 1855:
			case 1856:
			case 1857:
			case 1858:
			case 1859:
			case 1860:
			case 1861:
			case 1862:
			case 1863:
			case 1864:
			case 1865:
			case 1866:
			case 1867:
			case 1868:
			case 1869:
			case 1870:
			case 1871:
			case 1872:
			case 1873:
			case 1874:
			case 1875:
			case 1876:
			case 1877:
			case 1878:
			case 1879:
			case 1880:
			case 1881:
			case 1882:
			case 1883:
			case 1884:
			case 1885:
			case 1886:
			case 1887:
			case 1888:
			case 1889:
			case 1890:
			case 1891:
			case 1892:
			case 1893:
			case 1894:
			case 1895:
			case 1896:
			case 1897:
			case 1898:
			case 1899:
			case 1900:
			case 1901:
			case 1902:
			case 1903:
			case 1904:
			case 1905:
			case 1906:
			case 1907:
			case 1908:
			case 1909:
			case 1910:
			case 1911:
			case 1912:
			case 1913:
			case 1914:
			case 1915:
			case 1916:
			case 1917:
			case 1918:
			case 1919:
			case 1920:
			case 1921:
			case 1922:
			case 1923:
			case 1924:
			case 1925:
			case 1926:
			case 1927:
			case 1928:
			case 1929:
			case 1930:
			case 1931:
			case 1932:
			case 1933:
			case 1934:
			case 1935:
			case 1936:
			case 1937:
			case 1939:
			case 1940:
			case 1941:
			case 1942:
			case 1943:
			case 1944:
			case 1945:
			case 1946:
			case 1947:
			case 1948:
			case 1949:
			case 1950:
			case 1951:
			case 1952:
			case 1953:
			case 1954:
			case 1955:
			case 1956:
			case 1957:
			case 1958:
			case 1959:
			case 1960:
			case 1961:
			case 1962:
			case 1963:
			case 1965:
			case 1966:
			case 1967:
			case 1968:
			case 1969:
			case 1970:
			case 1971:
			case 1972:
			case 1973:
			case 1974:
			case 1975:
			case 1976:
			case 1977:
			case 1978:
			case 1979:
			case 1980:
			case 1981:
			case 1982:
			case 1983:
			case 1984:
			case 1985:
			case 1986:
			case 1987:
			case 1988:
			case 1989:
			case 1990:
			case 1991:
			case 1992:
			case 1993:
			case 1994:
			case 1995:
			case 1996:
			case 1997:
			case 1998:
			case 1999:
			case 2000:
			case 2003:
			case 2004:
			case 2005:
			case 2006:
			case 2007:
			case 2008:
			case 2009:
			case 2010:
			case 2011:
			case 2012:
			case 2013:
			case 2014:
			case 2015:
			case 2016:
			case 2017:
			case 2018:
			case 2019:
			case 2020:
			case 2021:
			case 2022:
			case 2023:
			case 2024:
			case 2026:
			case 2027:
			case 2028:
			case 2029:
			case 2030:
			case 2031:
			case 2032:
			case 2033:
			case 2034:
			case 2035:
			case 2036:
			case 2037:
			case 2038:
			case 2039:
			case 2040:
			case 2041:
			case 2042:
			case 2043:
			case 2044:
			case 2045:
			case 2046:
			case 2047:
			case 2048:
			case 2049:
			case 2050:
			case 2051:
			case 2052:
			case 2053:
			case 2054:
			case 2055:
			case 2056:
			case 2057:
			case 2058:
			case 2059:
			case 2060:
			case 2061:
			case 2062:
			case 2063:
			case 2064:
			case 2065:
			case 2066:
			case 2067:
			case 2068:
			case 2069:
			case 2070:
			case 2071:
			case 2072:
			case 2074:
			case 2075:
			case 2076:
			case 2077:
			case 2078:
			case 2079:
			case 2080:
			case 2081:
			case 2082:
			case 2083:
			case 2084:
			case 2085:
			case 2086:
			case 2087:
			case 2088:
			case 2089:
			case 2090:
			case 2091:
			case 2092:
			case 2093:
			case 2094:
			case 2095:
			case 2096:
			case 2097:
			case 2098:
			case 2100:
			case 2101:
			case 2102:
			case 2103:
			case 2104:
			case 2105:
			case 2106:
			case 2107:
			case 2108:
			case 2109:
			case 2110:
			case 2111:
			case 2112:
			case 2113:
			case 2115:
			case 2116:
			case 2117:
			case 2118:
			case 2119:
			case 2120:
			case 2122:
			case 2123:
			case 2124:
			case 2125:
			case 2126:
			case 2128:
			case 2129:
			case 2130:
			case 2131:
			case 2132:
			case 2133:
			case 2134:
			case 2135:
			case 2136:
			case 2137:
			case 2138:
			case 2139:
			case 2140:
			case 2141:
			case 2142:
			case 2143:
			case 2145:
			case 2146:
			case 2147:
			case 2148:
			case 2149:
			case 2150:
			case 2151:
			case 2152:
			case 2153:
			case 2154:
			case 2155:
			case 2156:
			case 2157:
			case 2158:
			case 2159:
			case 2160:
			case 2161:
			case 2162:
			case 2163:
			case 2164:
			case 2165:
			case 2166:
			case 2168:
			case 2169:
			case 2170:
			case 2171:
			case 2172:
			case 2173:
			case 2174:
			case 2175:
			case 2176:
			case 2177:
			case 2178:
			case 2179:
			case 2180:
			case 2181:
			case 2182:
			case 2183:
			case 2184:
			case 2185:
			case 2186:
			case 2187:
			case 2188:
			case 2189:
			case 2191:
			case 2192:
			case 2193:
			case 2194:
			case 2195:
			case 2196:
			case 2197:
			case 2198:
			case 2199:
			case 2200:
			case 2201:
			case 2202:
			case 2203:
			case 2204:
			case 2205:
			case 2206:
			case 2207:
			case 2208:
			case 2209:
			case 2210:
			case 2211:
			case 2216:
			case 2220:
			case 2246:
			case 2252:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 11030;
				this.identifier();
				}
				break;
			case 2212:
			case 2219:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 11031;
				this.quoted_string();
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public cost_class_name(): Cost_class_nameContext {
		let localctx: Cost_class_nameContext = new Cost_class_nameContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1362, PlSqlParser.RULE_cost_class_name);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 11034;
			this.identifier();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public attribute_name(): Attribute_nameContext {
		let localctx: Attribute_nameContext = new Attribute_nameContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1364, PlSqlParser.RULE_attribute_name);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 11036;
			this.identifier();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public savepoint_name(): Savepoint_nameContext {
		let localctx: Savepoint_nameContext = new Savepoint_nameContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1366, PlSqlParser.RULE_savepoint_name);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 11038;
			this.identifier();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public rollback_segment_name(): Rollback_segment_nameContext {
		let localctx: Rollback_segment_nameContext = new Rollback_segment_nameContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1368, PlSqlParser.RULE_rollback_segment_name);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 11040;
			this.identifier();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public table_var_name(): Table_var_nameContext {
		let localctx: Table_var_nameContext = new Table_var_nameContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1370, PlSqlParser.RULE_table_var_name);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 11042;
			this.identifier();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public schema_name(): Schema_nameContext {
		let localctx: Schema_nameContext = new Schema_nameContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1372, PlSqlParser.RULE_schema_name);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 11044;
			this.identifier();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public routine_name(): Routine_nameContext {
		let localctx: Routine_nameContext = new Routine_nameContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1374, PlSqlParser.RULE_routine_name);
		try {
			let _alt: number;
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 11046;
			this.identifier();
			this.state = 11051;
			this._errHandler.sync(this);
			_alt = this._interp.adaptivePredict(this._input, 1516, this._ctx);
			while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) {
				if (_alt === 1) {
					{
					{
					this.state = 11047;
					this.match(PlSqlParser.PERIOD);
					this.state = 11048;
					this.id_expression();
					}
					}
				}
				this.state = 11053;
				this._errHandler.sync(this);
				_alt = this._interp.adaptivePredict(this._input, 1516, this._ctx);
			}
			this.state = 11056;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1517, this._ctx) ) {
			case 1:
				{
				this.state = 11054;
				this.match(PlSqlParser.AT_SIGN);
				this.state = 11055;
				this.link_name();
				}
				break;
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public package_name(): Package_nameContext {
		let localctx: Package_nameContext = new Package_nameContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1376, PlSqlParser.RULE_package_name);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 11058;
			this.identifier();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public implementation_type_name(): Implementation_type_nameContext {
		let localctx: Implementation_type_nameContext = new Implementation_type_nameContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1378, PlSqlParser.RULE_implementation_type_name);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 11060;
			this.identifier();
			this.state = 11063;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===2216) {
				{
				this.state = 11061;
				this.match(PlSqlParser.PERIOD);
				this.state = 11062;
				this.id_expression();
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public parameter_name(): Parameter_nameContext {
		let localctx: Parameter_nameContext = new Parameter_nameContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1380, PlSqlParser.RULE_parameter_name);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 11065;
			this.identifier();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public reference_model_name(): Reference_model_nameContext {
		let localctx: Reference_model_nameContext = new Reference_model_nameContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1382, PlSqlParser.RULE_reference_model_name);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 11067;
			this.identifier();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public main_model_name(): Main_model_nameContext {
		let localctx: Main_model_nameContext = new Main_model_nameContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1384, PlSqlParser.RULE_main_model_name);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 11069;
			this.identifier();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public container_tableview_name(): Container_tableview_nameContext {
		let localctx: Container_tableview_nameContext = new Container_tableview_nameContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1386, PlSqlParser.RULE_container_tableview_name);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 11071;
			this.identifier();
			this.state = 11074;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===2216) {
				{
				this.state = 11072;
				this.match(PlSqlParser.PERIOD);
				this.state = 11073;
				this.id_expression();
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public aggregate_function_name(): Aggregate_function_nameContext {
		let localctx: Aggregate_function_nameContext = new Aggregate_function_nameContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1388, PlSqlParser.RULE_aggregate_function_name);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 11076;
			this.identifier();
			this.state = 11081;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			while (_la===2216) {
				{
				{
				this.state = 11077;
				this.match(PlSqlParser.PERIOD);
				this.state = 11078;
				this.id_expression();
				}
				}
				this.state = 11083;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public query_name(): Query_nameContext {
		let localctx: Query_nameContext = new Query_nameContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1390, PlSqlParser.RULE_query_name);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 11084;
			this.identifier();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public grantee_name(): Grantee_nameContext {
		let localctx: Grantee_nameContext = new Grantee_nameContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1392, PlSqlParser.RULE_grantee_name);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 11086;
			this.id_expression();
			this.state = 11088;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===601) {
				{
				this.state = 11087;
				this.identified_by();
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public role_name(): Role_nameContext {
		let localctx: Role_nameContext = new Role_nameContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1394, PlSqlParser.RULE_role_name);
		try {
			this.state = 11092;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 1:
			case 2:
			case 3:
			case 4:
			case 5:
			case 6:
			case 7:
			case 8:
			case 9:
			case 10:
			case 11:
			case 12:
			case 13:
			case 14:
			case 15:
			case 16:
			case 17:
			case 18:
			case 19:
			case 20:
			case 21:
			case 22:
			case 23:
			case 24:
			case 25:
			case 26:
			case 27:
			case 28:
			case 29:
			case 30:
			case 31:
			case 32:
			case 33:
			case 34:
			case 36:
			case 37:
			case 38:
			case 40:
			case 41:
			case 42:
			case 44:
			case 45:
			case 46:
			case 47:
			case 49:
			case 50:
			case 51:
			case 52:
			case 53:
			case 54:
			case 55:
			case 56:
			case 57:
			case 58:
			case 59:
			case 60:
			case 63:
			case 64:
			case 65:
			case 66:
			case 67:
			case 68:
			case 69:
			case 70:
			case 71:
			case 72:
			case 73:
			case 74:
			case 75:
			case 76:
			case 78:
			case 79:
			case 80:
			case 81:
			case 82:
			case 83:
			case 85:
			case 86:
			case 87:
			case 88:
			case 89:
			case 90:
			case 91:
			case 92:
			case 93:
			case 95:
			case 96:
			case 97:
			case 98:
			case 99:
			case 100:
			case 101:
			case 102:
			case 103:
			case 104:
			case 105:
			case 106:
			case 108:
			case 109:
			case 110:
			case 111:
			case 112:
			case 113:
			case 114:
			case 115:
			case 116:
			case 117:
			case 118:
			case 119:
			case 120:
			case 121:
			case 122:
			case 123:
			case 124:
			case 125:
			case 126:
			case 127:
			case 128:
			case 129:
			case 130:
			case 131:
			case 132:
			case 133:
			case 134:
			case 135:
			case 136:
			case 137:
			case 138:
			case 139:
			case 140:
			case 141:
			case 142:
			case 143:
			case 144:
			case 145:
			case 147:
			case 148:
			case 149:
			case 150:
			case 151:
			case 152:
			case 153:
			case 154:
			case 155:
			case 156:
			case 157:
			case 158:
			case 160:
			case 161:
			case 162:
			case 163:
			case 164:
			case 165:
			case 166:
			case 167:
			case 168:
			case 169:
			case 170:
			case 171:
			case 172:
			case 174:
			case 175:
			case 176:
			case 177:
			case 178:
			case 179:
			case 181:
			case 182:
			case 183:
			case 184:
			case 185:
			case 186:
			case 187:
			case 188:
			case 189:
			case 190:
			case 191:
			case 192:
			case 193:
			case 194:
			case 195:
			case 196:
			case 197:
			case 198:
			case 199:
			case 200:
			case 201:
			case 202:
			case 203:
			case 204:
			case 205:
			case 206:
			case 207:
			case 208:
			case 209:
			case 210:
			case 211:
			case 212:
			case 213:
			case 214:
			case 215:
			case 216:
			case 217:
			case 218:
			case 219:
			case 220:
			case 221:
			case 222:
			case 223:
			case 224:
			case 225:
			case 226:
			case 227:
			case 228:
			case 229:
			case 230:
			case 231:
			case 233:
			case 234:
			case 235:
			case 236:
			case 237:
			case 238:
			case 239:
			case 240:
			case 241:
			case 242:
			case 243:
			case 244:
			case 245:
			case 246:
			case 247:
			case 248:
			case 249:
			case 250:
			case 252:
			case 253:
			case 254:
			case 255:
			case 256:
			case 257:
			case 258:
			case 259:
			case 260:
			case 261:
			case 262:
			case 263:
			case 264:
			case 265:
			case 266:
			case 267:
			case 268:
			case 269:
			case 270:
			case 271:
			case 272:
			case 273:
			case 274:
			case 275:
			case 276:
			case 277:
			case 278:
			case 279:
			case 280:
			case 281:
			case 282:
			case 283:
			case 284:
			case 285:
			case 286:
			case 287:
			case 289:
			case 290:
			case 291:
			case 292:
			case 293:
			case 294:
			case 295:
			case 296:
			case 297:
			case 298:
			case 299:
			case 300:
			case 301:
			case 302:
			case 303:
			case 304:
			case 305:
			case 306:
			case 307:
			case 308:
			case 309:
			case 310:
			case 311:
			case 312:
			case 313:
			case 314:
			case 315:
			case 316:
			case 317:
			case 318:
			case 319:
			case 321:
			case 322:
			case 323:
			case 324:
			case 325:
			case 326:
			case 328:
			case 329:
			case 330:
			case 331:
			case 332:
			case 333:
			case 334:
			case 335:
			case 336:
			case 337:
			case 338:
			case 339:
			case 340:
			case 341:
			case 342:
			case 343:
			case 344:
			case 345:
			case 346:
			case 347:
			case 348:
			case 349:
			case 350:
			case 352:
			case 353:
			case 354:
			case 355:
			case 356:
			case 357:
			case 358:
			case 359:
			case 360:
			case 361:
			case 362:
			case 363:
			case 364:
			case 365:
			case 366:
			case 367:
			case 368:
			case 369:
			case 370:
			case 372:
			case 373:
			case 374:
			case 375:
			case 376:
			case 377:
			case 378:
			case 379:
			case 380:
			case 381:
			case 382:
			case 383:
			case 384:
			case 385:
			case 386:
			case 387:
			case 388:
			case 389:
			case 390:
			case 391:
			case 392:
			case 394:
			case 395:
			case 397:
			case 398:
			case 399:
			case 400:
			case 401:
			case 402:
			case 403:
			case 404:
			case 405:
			case 406:
			case 407:
			case 408:
			case 409:
			case 410:
			case 412:
			case 413:
			case 414:
			case 415:
			case 417:
			case 418:
			case 419:
			case 420:
			case 421:
			case 422:
			case 423:
			case 424:
			case 425:
			case 426:
			case 427:
			case 428:
			case 429:
			case 430:
			case 431:
			case 434:
			case 435:
			case 436:
			case 437:
			case 438:
			case 439:
			case 440:
			case 441:
			case 442:
			case 443:
			case 444:
			case 446:
			case 447:
			case 448:
			case 449:
			case 450:
			case 451:
			case 452:
			case 453:
			case 454:
			case 455:
			case 456:
			case 457:
			case 458:
			case 459:
			case 460:
			case 461:
			case 462:
			case 463:
			case 464:
			case 465:
			case 466:
			case 467:
			case 468:
			case 469:
			case 470:
			case 471:
			case 472:
			case 473:
			case 475:
			case 476:
			case 477:
			case 478:
			case 479:
			case 480:
			case 481:
			case 482:
			case 483:
			case 484:
			case 485:
			case 486:
			case 487:
			case 488:
			case 489:
			case 490:
			case 491:
			case 492:
			case 493:
			case 494:
			case 495:
			case 496:
			case 497:
			case 498:
			case 499:
			case 500:
			case 501:
			case 502:
			case 503:
			case 504:
			case 505:
			case 506:
			case 507:
			case 508:
			case 509:
			case 510:
			case 511:
			case 512:
			case 513:
			case 514:
			case 515:
			case 516:
			case 517:
			case 518:
			case 519:
			case 520:
			case 521:
			case 522:
			case 523:
			case 524:
			case 525:
			case 526:
			case 527:
			case 528:
			case 529:
			case 530:
			case 531:
			case 532:
			case 533:
			case 534:
			case 535:
			case 536:
			case 537:
			case 538:
			case 539:
			case 540:
			case 541:
			case 542:
			case 543:
			case 544:
			case 545:
			case 547:
			case 548:
			case 549:
			case 550:
			case 551:
			case 552:
			case 553:
			case 555:
			case 556:
			case 557:
			case 558:
			case 559:
			case 560:
			case 561:
			case 562:
			case 563:
			case 564:
			case 565:
			case 566:
			case 567:
			case 568:
			case 569:
			case 572:
			case 574:
			case 575:
			case 576:
			case 577:
			case 578:
			case 579:
			case 580:
			case 581:
			case 582:
			case 583:
			case 584:
			case 586:
			case 587:
			case 588:
			case 589:
			case 590:
			case 591:
			case 592:
			case 593:
			case 594:
			case 595:
			case 596:
			case 597:
			case 598:
			case 599:
			case 600:
			case 602:
			case 603:
			case 604:
			case 605:
			case 606:
			case 607:
			case 608:
			case 609:
			case 610:
			case 611:
			case 612:
			case 613:
			case 614:
			case 615:
			case 616:
			case 617:
			case 618:
			case 619:
			case 620:
			case 621:
			case 622:
			case 623:
			case 624:
			case 625:
			case 626:
			case 627:
			case 628:
			case 629:
			case 630:
			case 632:
			case 633:
			case 634:
			case 635:
			case 636:
			case 637:
			case 638:
			case 639:
			case 640:
			case 641:
			case 642:
			case 643:
			case 644:
			case 645:
			case 646:
			case 647:
			case 648:
			case 649:
			case 650:
			case 651:
			case 653:
			case 654:
			case 655:
			case 656:
			case 657:
			case 658:
			case 659:
			case 660:
			case 661:
			case 662:
			case 663:
			case 664:
			case 665:
			case 666:
			case 667:
			case 668:
			case 670:
			case 671:
			case 672:
			case 673:
			case 674:
			case 675:
			case 676:
			case 677:
			case 678:
			case 679:
			case 680:
			case 681:
			case 682:
			case 683:
			case 684:
			case 685:
			case 686:
			case 687:
			case 689:
			case 690:
			case 692:
			case 693:
			case 694:
			case 696:
			case 697:
			case 698:
			case 699:
			case 700:
			case 701:
			case 702:
			case 703:
			case 704:
			case 705:
			case 706:
			case 707:
			case 708:
			case 709:
			case 710:
			case 711:
			case 712:
			case 713:
			case 714:
			case 715:
			case 716:
			case 717:
			case 718:
			case 719:
			case 720:
			case 721:
			case 722:
			case 723:
			case 724:
			case 725:
			case 726:
			case 727:
			case 728:
			case 729:
			case 730:
			case 731:
			case 732:
			case 733:
			case 734:
			case 735:
			case 736:
			case 737:
			case 738:
			case 739:
			case 740:
			case 741:
			case 742:
			case 743:
			case 744:
			case 745:
			case 746:
			case 747:
			case 748:
			case 749:
			case 750:
			case 751:
			case 752:
			case 753:
			case 754:
			case 755:
			case 756:
			case 758:
			case 759:
			case 760:
			case 761:
			case 762:
			case 763:
			case 764:
			case 765:
			case 766:
			case 767:
			case 768:
			case 769:
			case 770:
			case 771:
			case 772:
			case 773:
			case 774:
			case 775:
			case 777:
			case 778:
			case 779:
			case 780:
			case 781:
			case 782:
			case 783:
			case 784:
			case 785:
			case 786:
			case 787:
			case 788:
			case 789:
			case 790:
			case 791:
			case 792:
			case 793:
			case 794:
			case 795:
			case 796:
			case 797:
			case 798:
			case 799:
			case 800:
			case 801:
			case 802:
			case 803:
			case 804:
			case 805:
			case 806:
			case 807:
			case 808:
			case 809:
			case 810:
			case 811:
			case 812:
			case 813:
			case 814:
			case 815:
			case 816:
			case 817:
			case 818:
			case 819:
			case 820:
			case 821:
			case 822:
			case 823:
			case 824:
			case 825:
			case 826:
			case 827:
			case 828:
			case 829:
			case 830:
			case 831:
			case 832:
			case 833:
			case 834:
			case 835:
			case 836:
			case 837:
			case 838:
			case 839:
			case 840:
			case 841:
			case 843:
			case 844:
			case 845:
			case 846:
			case 847:
			case 848:
			case 849:
			case 850:
			case 851:
			case 852:
			case 853:
			case 854:
			case 855:
			case 856:
			case 857:
			case 858:
			case 859:
			case 861:
			case 862:
			case 863:
			case 864:
			case 865:
			case 866:
			case 867:
			case 868:
			case 869:
			case 870:
			case 871:
			case 872:
			case 873:
			case 874:
			case 875:
			case 876:
			case 877:
			case 878:
			case 879:
			case 880:
			case 881:
			case 882:
			case 883:
			case 884:
			case 885:
			case 886:
			case 888:
			case 889:
			case 890:
			case 891:
			case 892:
			case 893:
			case 894:
			case 895:
			case 896:
			case 897:
			case 898:
			case 899:
			case 900:
			case 901:
			case 902:
			case 903:
			case 904:
			case 905:
			case 906:
			case 907:
			case 908:
			case 909:
			case 910:
			case 911:
			case 912:
			case 913:
			case 914:
			case 915:
			case 916:
			case 917:
			case 918:
			case 919:
			case 920:
			case 921:
			case 922:
			case 923:
			case 924:
			case 925:
			case 926:
			case 927:
			case 928:
			case 929:
			case 930:
			case 931:
			case 932:
			case 933:
			case 934:
			case 935:
			case 936:
			case 937:
			case 938:
			case 939:
			case 940:
			case 941:
			case 942:
			case 943:
			case 944:
			case 945:
			case 946:
			case 947:
			case 948:
			case 949:
			case 950:
			case 951:
			case 952:
			case 954:
			case 955:
			case 956:
			case 957:
			case 958:
			case 959:
			case 960:
			case 961:
			case 962:
			case 963:
			case 964:
			case 965:
			case 966:
			case 967:
			case 968:
			case 969:
			case 970:
			case 971:
			case 972:
			case 973:
			case 974:
			case 975:
			case 976:
			case 977:
			case 978:
			case 979:
			case 980:
			case 981:
			case 982:
			case 983:
			case 984:
			case 985:
			case 986:
			case 987:
			case 988:
			case 989:
			case 990:
			case 991:
			case 992:
			case 993:
			case 994:
			case 995:
			case 996:
			case 997:
			case 998:
			case 999:
			case 1000:
			case 1001:
			case 1002:
			case 1003:
			case 1004:
			case 1005:
			case 1006:
			case 1007:
			case 1008:
			case 1009:
			case 1010:
			case 1011:
			case 1012:
			case 1013:
			case 1014:
			case 1015:
			case 1016:
			case 1017:
			case 1018:
			case 1019:
			case 1020:
			case 1021:
			case 1022:
			case 1023:
			case 1024:
			case 1025:
			case 1026:
			case 1027:
			case 1028:
			case 1029:
			case 1030:
			case 1031:
			case 1032:
			case 1033:
			case 1034:
			case 1035:
			case 1036:
			case 1037:
			case 1038:
			case 1039:
			case 1040:
			case 1041:
			case 1042:
			case 1043:
			case 1044:
			case 1045:
			case 1046:
			case 1047:
			case 1048:
			case 1049:
			case 1050:
			case 1051:
			case 1052:
			case 1053:
			case 1054:
			case 1055:
			case 1056:
			case 1057:
			case 1058:
			case 1059:
			case 1060:
			case 1061:
			case 1062:
			case 1063:
			case 1064:
			case 1065:
			case 1066:
			case 1067:
			case 1068:
			case 1069:
			case 1070:
			case 1071:
			case 1072:
			case 1074:
			case 1075:
			case 1076:
			case 1077:
			case 1078:
			case 1079:
			case 1080:
			case 1081:
			case 1082:
			case 1083:
			case 1084:
			case 1085:
			case 1086:
			case 1087:
			case 1089:
			case 1090:
			case 1091:
			case 1092:
			case 1093:
			case 1094:
			case 1095:
			case 1096:
			case 1098:
			case 1099:
			case 1100:
			case 1101:
			case 1102:
			case 1103:
			case 1104:
			case 1105:
			case 1106:
			case 1107:
			case 1108:
			case 1109:
			case 1110:
			case 1111:
			case 1112:
			case 1113:
			case 1114:
			case 1116:
			case 1117:
			case 1118:
			case 1119:
			case 1120:
			case 1121:
			case 1122:
			case 1123:
			case 1124:
			case 1125:
			case 1127:
			case 1129:
			case 1130:
			case 1131:
			case 1132:
			case 1133:
			case 1134:
			case 1135:
			case 1136:
			case 1137:
			case 1138:
			case 1139:
			case 1140:
			case 1142:
			case 1143:
			case 1144:
			case 1145:
			case 1146:
			case 1147:
			case 1148:
			case 1149:
			case 1150:
			case 1151:
			case 1152:
			case 1153:
			case 1154:
			case 1155:
			case 1156:
			case 1157:
			case 1158:
			case 1159:
			case 1160:
			case 1161:
			case 1162:
			case 1163:
			case 1164:
			case 1165:
			case 1166:
			case 1167:
			case 1169:
			case 1170:
			case 1171:
			case 1173:
			case 1174:
			case 1175:
			case 1176:
			case 1177:
			case 1178:
			case 1179:
			case 1180:
			case 1181:
			case 1182:
			case 1183:
			case 1184:
			case 1185:
			case 1186:
			case 1187:
			case 1188:
			case 1189:
			case 1190:
			case 1191:
			case 1192:
			case 1193:
			case 1194:
			case 1195:
			case 1197:
			case 1198:
			case 1199:
			case 1200:
			case 1201:
			case 1202:
			case 1203:
			case 1204:
			case 1205:
			case 1206:
			case 1207:
			case 1208:
			case 1209:
			case 1210:
			case 1211:
			case 1212:
			case 1213:
			case 1214:
			case 1215:
			case 1216:
			case 1217:
			case 1218:
			case 1219:
			case 1220:
			case 1221:
			case 1222:
			case 1223:
			case 1224:
			case 1225:
			case 1226:
			case 1228:
			case 1229:
			case 1230:
			case 1231:
			case 1232:
			case 1236:
			case 1237:
			case 1241:
			case 1242:
			case 1243:
			case 1244:
			case 1245:
			case 1246:
			case 1247:
			case 1248:
			case 1249:
			case 1250:
			case 1252:
			case 1253:
			case 1254:
			case 1255:
			case 1256:
			case 1257:
			case 1258:
			case 1259:
			case 1260:
			case 1261:
			case 1262:
			case 1263:
			case 1264:
			case 1265:
			case 1266:
			case 1267:
			case 1268:
			case 1269:
			case 1270:
			case 1271:
			case 1272:
			case 1273:
			case 1274:
			case 1275:
			case 1276:
			case 1277:
			case 1278:
			case 1279:
			case 1280:
			case 1281:
			case 1282:
			case 1283:
			case 1284:
			case 1285:
			case 1286:
			case 1287:
			case 1288:
			case 1289:
			case 1290:
			case 1291:
			case 1292:
			case 1293:
			case 1294:
			case 1295:
			case 1296:
			case 1297:
			case 1298:
			case 1299:
			case 1300:
			case 1301:
			case 1302:
			case 1303:
			case 1304:
			case 1305:
			case 1306:
			case 1308:
			case 1309:
			case 1310:
			case 1311:
			case 1312:
			case 1313:
			case 1314:
			case 1315:
			case 1316:
			case 1317:
			case 1318:
			case 1319:
			case 1320:
			case 1321:
			case 1322:
			case 1323:
			case 1325:
			case 1326:
			case 1327:
			case 1328:
			case 1329:
			case 1330:
			case 1331:
			case 1332:
			case 1333:
			case 1334:
			case 1335:
			case 1336:
			case 1337:
			case 1338:
			case 1339:
			case 1340:
			case 1341:
			case 1342:
			case 1343:
			case 1344:
			case 1345:
			case 1346:
			case 1347:
			case 1348:
			case 1349:
			case 1350:
			case 1351:
			case 1352:
			case 1353:
			case 1354:
			case 1355:
			case 1356:
			case 1357:
			case 1358:
			case 1359:
			case 1360:
			case 1361:
			case 1362:
			case 1363:
			case 1364:
			case 1365:
			case 1366:
			case 1367:
			case 1368:
			case 1369:
			case 1370:
			case 1371:
			case 1372:
			case 1373:
			case 1374:
			case 1375:
			case 1376:
			case 1377:
			case 1378:
			case 1379:
			case 1380:
			case 1381:
			case 1382:
			case 1383:
			case 1384:
			case 1385:
			case 1386:
			case 1387:
			case 1388:
			case 1389:
			case 1390:
			case 1391:
			case 1392:
			case 1393:
			case 1394:
			case 1395:
			case 1396:
			case 1397:
			case 1399:
			case 1400:
			case 1401:
			case 1402:
			case 1403:
			case 1404:
			case 1405:
			case 1406:
			case 1407:
			case 1408:
			case 1409:
			case 1410:
			case 1411:
			case 1412:
			case 1413:
			case 1414:
			case 1416:
			case 1417:
			case 1418:
			case 1419:
			case 1420:
			case 1421:
			case 1422:
			case 1423:
			case 1424:
			case 1425:
			case 1426:
			case 1427:
			case 1428:
			case 1429:
			case 1430:
			case 1431:
			case 1432:
			case 1433:
			case 1435:
			case 1436:
			case 1437:
			case 1438:
			case 1439:
			case 1440:
			case 1441:
			case 1442:
			case 1443:
			case 1444:
			case 1445:
			case 1446:
			case 1447:
			case 1448:
			case 1449:
			case 1450:
			case 1451:
			case 1452:
			case 1453:
			case 1454:
			case 1455:
			case 1456:
			case 1457:
			case 1458:
			case 1459:
			case 1460:
			case 1461:
			case 1462:
			case 1463:
			case 1464:
			case 1465:
			case 1466:
			case 1467:
			case 1468:
			case 1469:
			case 1470:
			case 1471:
			case 1472:
			case 1473:
			case 1474:
			case 1475:
			case 1476:
			case 1477:
			case 1478:
			case 1479:
			case 1480:
			case 1481:
			case 1482:
			case 1483:
			case 1484:
			case 1485:
			case 1486:
			case 1487:
			case 1488:
			case 1489:
			case 1491:
			case 1492:
			case 1493:
			case 1494:
			case 1495:
			case 1496:
			case 1497:
			case 1499:
			case 1500:
			case 1501:
			case 1502:
			case 1503:
			case 1504:
			case 1505:
			case 1506:
			case 1507:
			case 1508:
			case 1509:
			case 1510:
			case 1511:
			case 1512:
			case 1513:
			case 1514:
			case 1515:
			case 1516:
			case 1518:
			case 1519:
			case 1520:
			case 1521:
			case 1522:
			case 1523:
			case 1524:
			case 1525:
			case 1526:
			case 1527:
			case 1528:
			case 1529:
			case 1530:
			case 1531:
			case 1532:
			case 1533:
			case 1534:
			case 1536:
			case 1537:
			case 1538:
			case 1539:
			case 1540:
			case 1541:
			case 1542:
			case 1543:
			case 1544:
			case 1545:
			case 1546:
			case 1547:
			case 1548:
			case 1549:
			case 1550:
			case 1551:
			case 1552:
			case 1553:
			case 1554:
			case 1555:
			case 1556:
			case 1557:
			case 1558:
			case 1559:
			case 1560:
			case 1561:
			case 1562:
			case 1563:
			case 1564:
			case 1565:
			case 1566:
			case 1567:
			case 1568:
			case 1570:
			case 1571:
			case 1572:
			case 1573:
			case 1574:
			case 1575:
			case 1576:
			case 1577:
			case 1578:
			case 1579:
			case 1580:
			case 1581:
			case 1582:
			case 1583:
			case 1584:
			case 1585:
			case 1586:
			case 1587:
			case 1588:
			case 1589:
			case 1590:
			case 1591:
			case 1592:
			case 1593:
			case 1594:
			case 1595:
			case 1596:
			case 1597:
			case 1598:
			case 1599:
			case 1600:
			case 1601:
			case 1602:
			case 1603:
			case 1604:
			case 1605:
			case 1606:
			case 1607:
			case 1608:
			case 1609:
			case 1610:
			case 1611:
			case 1612:
			case 1613:
			case 1614:
			case 1615:
			case 1616:
			case 1617:
			case 1618:
			case 1619:
			case 1620:
			case 1621:
			case 1622:
			case 1623:
			case 1624:
			case 1625:
			case 1626:
			case 1628:
			case 1629:
			case 1630:
			case 1631:
			case 1632:
			case 1633:
			case 1634:
			case 1635:
			case 1636:
			case 1637:
			case 1638:
			case 1639:
			case 1640:
			case 1641:
			case 1642:
			case 1643:
			case 1644:
			case 1645:
			case 1646:
			case 1647:
			case 1648:
			case 1649:
			case 1650:
			case 1651:
			case 1652:
			case 1653:
			case 1654:
			case 1655:
			case 1656:
			case 1657:
			case 1658:
			case 1659:
			case 1660:
			case 1661:
			case 1662:
			case 1663:
			case 1664:
			case 1665:
			case 1666:
			case 1667:
			case 1668:
			case 1669:
			case 1670:
			case 1671:
			case 1672:
			case 1673:
			case 1674:
			case 1675:
			case 1676:
			case 1677:
			case 1678:
			case 1679:
			case 1680:
			case 1681:
			case 1682:
			case 1683:
			case 1684:
			case 1685:
			case 1686:
			case 1687:
			case 1688:
			case 1689:
			case 1690:
			case 1691:
			case 1692:
			case 1693:
			case 1694:
			case 1695:
			case 1696:
			case 1697:
			case 1698:
			case 1699:
			case 1700:
			case 1701:
			case 1702:
			case 1703:
			case 1704:
			case 1705:
			case 1706:
			case 1707:
			case 1708:
			case 1709:
			case 1710:
			case 1711:
			case 1712:
			case 1713:
			case 1714:
			case 1715:
			case 1716:
			case 1717:
			case 1718:
			case 1719:
			case 1720:
			case 1721:
			case 1722:
			case 1723:
			case 1724:
			case 1725:
			case 1726:
			case 1727:
			case 1728:
			case 1729:
			case 1730:
			case 1731:
			case 1732:
			case 1733:
			case 1734:
			case 1735:
			case 1736:
			case 1737:
			case 1738:
			case 1739:
			case 1740:
			case 1741:
			case 1742:
			case 1743:
			case 1744:
			case 1745:
			case 1746:
			case 1747:
			case 1748:
			case 1749:
			case 1750:
			case 1751:
			case 1752:
			case 1753:
			case 1754:
			case 1755:
			case 1756:
			case 1757:
			case 1758:
			case 1759:
			case 1760:
			case 1761:
			case 1762:
			case 1763:
			case 1764:
			case 1765:
			case 1766:
			case 1767:
			case 1768:
			case 1769:
			case 1770:
			case 1771:
			case 1772:
			case 1773:
			case 1774:
			case 1775:
			case 1776:
			case 1777:
			case 1778:
			case 1779:
			case 1780:
			case 1781:
			case 1782:
			case 1783:
			case 1784:
			case 1785:
			case 1786:
			case 1787:
			case 1788:
			case 1789:
			case 1790:
			case 1791:
			case 1792:
			case 1793:
			case 1794:
			case 1795:
			case 1796:
			case 1797:
			case 1798:
			case 1799:
			case 1800:
			case 1801:
			case 1802:
			case 1803:
			case 1804:
			case 1805:
			case 1806:
			case 1807:
			case 1808:
			case 1809:
			case 1810:
			case 1811:
			case 1812:
			case 1813:
			case 1814:
			case 1815:
			case 1816:
			case 1817:
			case 1818:
			case 1819:
			case 1820:
			case 1821:
			case 1822:
			case 1823:
			case 1824:
			case 1825:
			case 1826:
			case 1827:
			case 1828:
			case 1829:
			case 1830:
			case 1831:
			case 1832:
			case 1833:
			case 1834:
			case 1835:
			case 1836:
			case 1837:
			case 1838:
			case 1839:
			case 1840:
			case 1841:
			case 1842:
			case 1843:
			case 1844:
			case 1845:
			case 1846:
			case 1847:
			case 1848:
			case 1849:
			case 1850:
			case 1851:
			case 1852:
			case 1853:
			case 1854:
			case 1855:
			case 1856:
			case 1857:
			case 1858:
			case 1859:
			case 1860:
			case 1861:
			case 1862:
			case 1863:
			case 1864:
			case 1865:
			case 1866:
			case 1867:
			case 1868:
			case 1869:
			case 1870:
			case 1871:
			case 1872:
			case 1873:
			case 1874:
			case 1875:
			case 1876:
			case 1877:
			case 1878:
			case 1879:
			case 1880:
			case 1881:
			case 1882:
			case 1883:
			case 1884:
			case 1885:
			case 1886:
			case 1887:
			case 1888:
			case 1889:
			case 1890:
			case 1891:
			case 1892:
			case 1893:
			case 1894:
			case 1895:
			case 1896:
			case 1897:
			case 1898:
			case 1899:
			case 1900:
			case 1901:
			case 1902:
			case 1903:
			case 1904:
			case 1905:
			case 1906:
			case 1907:
			case 1908:
			case 1909:
			case 1910:
			case 1911:
			case 1912:
			case 1913:
			case 1914:
			case 1915:
			case 1916:
			case 1917:
			case 1918:
			case 1919:
			case 1920:
			case 1921:
			case 1922:
			case 1923:
			case 1924:
			case 1925:
			case 1926:
			case 1927:
			case 1928:
			case 1929:
			case 1930:
			case 1931:
			case 1932:
			case 1933:
			case 1934:
			case 1935:
			case 1936:
			case 1937:
			case 1939:
			case 1940:
			case 1941:
			case 1942:
			case 1943:
			case 1944:
			case 1945:
			case 1946:
			case 1947:
			case 1948:
			case 1949:
			case 1950:
			case 1951:
			case 1952:
			case 1953:
			case 1954:
			case 1955:
			case 1956:
			case 1957:
			case 1958:
			case 1959:
			case 1960:
			case 1961:
			case 1962:
			case 1963:
			case 1965:
			case 1966:
			case 1967:
			case 1968:
			case 1969:
			case 1970:
			case 1971:
			case 1972:
			case 1973:
			case 1974:
			case 1975:
			case 1976:
			case 1977:
			case 1978:
			case 1979:
			case 1980:
			case 1981:
			case 1982:
			case 1983:
			case 1984:
			case 1985:
			case 1986:
			case 1987:
			case 1988:
			case 1989:
			case 1990:
			case 1991:
			case 1992:
			case 1993:
			case 1994:
			case 1995:
			case 1996:
			case 1997:
			case 1998:
			case 1999:
			case 2000:
			case 2003:
			case 2004:
			case 2005:
			case 2006:
			case 2007:
			case 2008:
			case 2009:
			case 2010:
			case 2011:
			case 2012:
			case 2013:
			case 2014:
			case 2015:
			case 2016:
			case 2017:
			case 2018:
			case 2019:
			case 2020:
			case 2021:
			case 2022:
			case 2023:
			case 2024:
			case 2026:
			case 2027:
			case 2028:
			case 2029:
			case 2030:
			case 2031:
			case 2032:
			case 2033:
			case 2034:
			case 2035:
			case 2036:
			case 2037:
			case 2038:
			case 2039:
			case 2040:
			case 2041:
			case 2042:
			case 2043:
			case 2044:
			case 2045:
			case 2046:
			case 2047:
			case 2048:
			case 2049:
			case 2050:
			case 2051:
			case 2052:
			case 2053:
			case 2054:
			case 2055:
			case 2056:
			case 2057:
			case 2058:
			case 2059:
			case 2060:
			case 2061:
			case 2062:
			case 2063:
			case 2064:
			case 2065:
			case 2066:
			case 2067:
			case 2068:
			case 2069:
			case 2070:
			case 2071:
			case 2072:
			case 2074:
			case 2075:
			case 2076:
			case 2077:
			case 2078:
			case 2079:
			case 2080:
			case 2081:
			case 2082:
			case 2083:
			case 2084:
			case 2085:
			case 2086:
			case 2087:
			case 2088:
			case 2089:
			case 2090:
			case 2091:
			case 2092:
			case 2093:
			case 2094:
			case 2095:
			case 2096:
			case 2097:
			case 2098:
			case 2100:
			case 2101:
			case 2102:
			case 2103:
			case 2104:
			case 2105:
			case 2106:
			case 2107:
			case 2108:
			case 2109:
			case 2110:
			case 2111:
			case 2112:
			case 2113:
			case 2115:
			case 2116:
			case 2117:
			case 2118:
			case 2119:
			case 2120:
			case 2122:
			case 2123:
			case 2124:
			case 2125:
			case 2126:
			case 2128:
			case 2129:
			case 2130:
			case 2131:
			case 2132:
			case 2133:
			case 2134:
			case 2135:
			case 2136:
			case 2137:
			case 2138:
			case 2139:
			case 2140:
			case 2141:
			case 2142:
			case 2143:
			case 2145:
			case 2146:
			case 2147:
			case 2148:
			case 2149:
			case 2150:
			case 2151:
			case 2152:
			case 2153:
			case 2154:
			case 2155:
			case 2156:
			case 2157:
			case 2158:
			case 2159:
			case 2160:
			case 2161:
			case 2162:
			case 2163:
			case 2164:
			case 2165:
			case 2166:
			case 2168:
			case 2169:
			case 2170:
			case 2171:
			case 2172:
			case 2173:
			case 2174:
			case 2175:
			case 2176:
			case 2177:
			case 2178:
			case 2179:
			case 2180:
			case 2181:
			case 2182:
			case 2183:
			case 2184:
			case 2185:
			case 2186:
			case 2187:
			case 2188:
			case 2189:
			case 2191:
			case 2192:
			case 2193:
			case 2194:
			case 2195:
			case 2196:
			case 2197:
			case 2198:
			case 2199:
			case 2200:
			case 2201:
			case 2202:
			case 2203:
			case 2204:
			case 2205:
			case 2206:
			case 2207:
			case 2208:
			case 2209:
			case 2210:
			case 2211:
			case 2216:
			case 2220:
			case 2252:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 11090;
				this.id_expression();
				}
				break;
			case 251:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 11091;
				this.match(PlSqlParser.CONNECT);
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public constraint_name(): Constraint_nameContext {
		let localctx: Constraint_nameContext = new Constraint_nameContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1396, PlSqlParser.RULE_constraint_name);
		try {
			let _alt: number;
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 11094;
			this.identifier();
			this.state = 11099;
			this._errHandler.sync(this);
			_alt = this._interp.adaptivePredict(this._input, 1523, this._ctx);
			while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) {
				if (_alt === 1) {
					{
					{
					this.state = 11095;
					this.match(PlSqlParser.PERIOD);
					this.state = 11096;
					this.id_expression();
					}
					}
				}
				this.state = 11101;
				this._errHandler.sync(this);
				_alt = this._interp.adaptivePredict(this._input, 1523, this._ctx);
			}
			this.state = 11104;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1524, this._ctx) ) {
			case 1:
				{
				this.state = 11102;
				this.match(PlSqlParser.AT_SIGN);
				this.state = 11103;
				this.link_name();
				}
				break;
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public label_name(): Label_nameContext {
		let localctx: Label_nameContext = new Label_nameContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1398, PlSqlParser.RULE_label_name);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 11106;
			this.id_expression();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public type_name(): Type_nameContext {
		let localctx: Type_nameContext = new Type_nameContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1400, PlSqlParser.RULE_type_name);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 11108;
			this.id_expression();
			this.state = 11113;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			while (_la===2216) {
				{
				{
				this.state = 11109;
				this.match(PlSqlParser.PERIOD);
				this.state = 11110;
				this.id_expression();
				}
				}
				this.state = 11115;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public sequence_name(): Sequence_nameContext {
		let localctx: Sequence_nameContext = new Sequence_nameContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1402, PlSqlParser.RULE_sequence_name);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 11116;
			this.id_expression();
			this.state = 11121;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			while (_la===2216) {
				{
				{
				this.state = 11117;
				this.match(PlSqlParser.PERIOD);
				this.state = 11118;
				this.id_expression();
				}
				}
				this.state = 11123;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public exception_name(): Exception_nameContext {
		let localctx: Exception_nameContext = new Exception_nameContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1404, PlSqlParser.RULE_exception_name);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 11124;
			this.identifier();
			this.state = 11129;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			while (_la===2216) {
				{
				{
				this.state = 11125;
				this.match(PlSqlParser.PERIOD);
				this.state = 11126;
				this.id_expression();
				}
				}
				this.state = 11131;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public function_name(): Function_nameContext {
		let localctx: Function_nameContext = new Function_nameContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1406, PlSqlParser.RULE_function_name);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 11132;
			this.identifier();
			this.state = 11135;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===2216) {
				{
				this.state = 11133;
				this.match(PlSqlParser.PERIOD);
				this.state = 11134;
				this.id_expression();
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public procedure_name(): Procedure_nameContext {
		let localctx: Procedure_nameContext = new Procedure_nameContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1408, PlSqlParser.RULE_procedure_name);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 11137;
			this.identifier();
			this.state = 11140;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===2216) {
				{
				this.state = 11138;
				this.match(PlSqlParser.PERIOD);
				this.state = 11139;
				this.id_expression();
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public trigger_name(): Trigger_nameContext {
		let localctx: Trigger_nameContext = new Trigger_nameContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1410, PlSqlParser.RULE_trigger_name);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 11142;
			this.identifier();
			this.state = 11145;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1530, this._ctx) ) {
			case 1:
				{
				this.state = 11143;
				this.match(PlSqlParser.PERIOD);
				this.state = 11144;
				this.id_expression();
				}
				break;
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public variable_name(): Variable_nameContext {
		let localctx: Variable_nameContext = new Variable_nameContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1412, PlSqlParser.RULE_variable_name);
		let _la: number;
		try {
			this.state = 11157;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 1:
			case 2:
			case 3:
			case 4:
			case 5:
			case 6:
			case 7:
			case 8:
			case 9:
			case 10:
			case 11:
			case 12:
			case 13:
			case 14:
			case 15:
			case 16:
			case 17:
			case 18:
			case 19:
			case 20:
			case 21:
			case 22:
			case 23:
			case 24:
			case 25:
			case 26:
			case 27:
			case 28:
			case 29:
			case 30:
			case 31:
			case 32:
			case 33:
			case 34:
			case 36:
			case 37:
			case 38:
			case 40:
			case 41:
			case 42:
			case 44:
			case 45:
			case 46:
			case 47:
			case 49:
			case 50:
			case 51:
			case 52:
			case 53:
			case 54:
			case 55:
			case 56:
			case 57:
			case 58:
			case 59:
			case 60:
			case 63:
			case 64:
			case 65:
			case 66:
			case 67:
			case 68:
			case 69:
			case 70:
			case 71:
			case 72:
			case 73:
			case 74:
			case 75:
			case 76:
			case 78:
			case 79:
			case 80:
			case 81:
			case 82:
			case 83:
			case 85:
			case 86:
			case 87:
			case 88:
			case 89:
			case 90:
			case 91:
			case 92:
			case 93:
			case 95:
			case 96:
			case 97:
			case 98:
			case 99:
			case 100:
			case 101:
			case 102:
			case 103:
			case 104:
			case 105:
			case 106:
			case 108:
			case 109:
			case 110:
			case 111:
			case 112:
			case 113:
			case 114:
			case 115:
			case 116:
			case 117:
			case 118:
			case 119:
			case 120:
			case 121:
			case 122:
			case 123:
			case 124:
			case 125:
			case 126:
			case 127:
			case 128:
			case 129:
			case 130:
			case 131:
			case 132:
			case 133:
			case 134:
			case 135:
			case 136:
			case 137:
			case 138:
			case 139:
			case 140:
			case 141:
			case 142:
			case 143:
			case 144:
			case 145:
			case 147:
			case 148:
			case 149:
			case 150:
			case 151:
			case 152:
			case 153:
			case 154:
			case 155:
			case 156:
			case 157:
			case 158:
			case 160:
			case 161:
			case 162:
			case 163:
			case 164:
			case 165:
			case 166:
			case 167:
			case 168:
			case 169:
			case 170:
			case 171:
			case 172:
			case 174:
			case 175:
			case 176:
			case 177:
			case 178:
			case 179:
			case 181:
			case 182:
			case 183:
			case 184:
			case 185:
			case 186:
			case 187:
			case 188:
			case 189:
			case 190:
			case 191:
			case 192:
			case 193:
			case 194:
			case 195:
			case 196:
			case 197:
			case 198:
			case 199:
			case 200:
			case 201:
			case 202:
			case 203:
			case 204:
			case 205:
			case 206:
			case 207:
			case 208:
			case 209:
			case 210:
			case 211:
			case 212:
			case 213:
			case 214:
			case 215:
			case 216:
			case 217:
			case 218:
			case 219:
			case 220:
			case 221:
			case 222:
			case 223:
			case 224:
			case 225:
			case 226:
			case 227:
			case 228:
			case 229:
			case 230:
			case 231:
			case 233:
			case 234:
			case 235:
			case 236:
			case 237:
			case 238:
			case 239:
			case 240:
			case 241:
			case 242:
			case 243:
			case 244:
			case 245:
			case 246:
			case 247:
			case 248:
			case 249:
			case 250:
			case 252:
			case 253:
			case 254:
			case 255:
			case 256:
			case 257:
			case 258:
			case 259:
			case 260:
			case 261:
			case 262:
			case 263:
			case 264:
			case 265:
			case 266:
			case 267:
			case 268:
			case 269:
			case 270:
			case 271:
			case 272:
			case 273:
			case 274:
			case 275:
			case 276:
			case 277:
			case 278:
			case 279:
			case 280:
			case 281:
			case 282:
			case 283:
			case 284:
			case 285:
			case 286:
			case 287:
			case 289:
			case 290:
			case 291:
			case 292:
			case 293:
			case 294:
			case 295:
			case 296:
			case 297:
			case 298:
			case 299:
			case 300:
			case 301:
			case 302:
			case 303:
			case 304:
			case 305:
			case 306:
			case 307:
			case 308:
			case 309:
			case 310:
			case 311:
			case 312:
			case 313:
			case 314:
			case 315:
			case 316:
			case 317:
			case 318:
			case 319:
			case 321:
			case 322:
			case 323:
			case 324:
			case 325:
			case 326:
			case 328:
			case 329:
			case 330:
			case 331:
			case 332:
			case 333:
			case 334:
			case 335:
			case 336:
			case 337:
			case 338:
			case 339:
			case 340:
			case 341:
			case 342:
			case 343:
			case 344:
			case 345:
			case 346:
			case 347:
			case 348:
			case 349:
			case 350:
			case 352:
			case 353:
			case 354:
			case 355:
			case 356:
			case 357:
			case 358:
			case 359:
			case 360:
			case 361:
			case 362:
			case 363:
			case 364:
			case 365:
			case 366:
			case 367:
			case 368:
			case 369:
			case 370:
			case 372:
			case 373:
			case 374:
			case 375:
			case 376:
			case 377:
			case 378:
			case 379:
			case 380:
			case 381:
			case 382:
			case 383:
			case 384:
			case 385:
			case 386:
			case 387:
			case 388:
			case 389:
			case 390:
			case 391:
			case 392:
			case 394:
			case 395:
			case 397:
			case 398:
			case 399:
			case 400:
			case 401:
			case 402:
			case 403:
			case 404:
			case 405:
			case 406:
			case 407:
			case 408:
			case 409:
			case 410:
			case 412:
			case 413:
			case 414:
			case 415:
			case 417:
			case 418:
			case 419:
			case 420:
			case 421:
			case 422:
			case 423:
			case 424:
			case 425:
			case 426:
			case 427:
			case 428:
			case 429:
			case 430:
			case 431:
			case 434:
			case 435:
			case 436:
			case 437:
			case 438:
			case 439:
			case 440:
			case 441:
			case 442:
			case 443:
			case 444:
			case 446:
			case 447:
			case 448:
			case 449:
			case 450:
			case 451:
			case 452:
			case 453:
			case 454:
			case 455:
			case 456:
			case 457:
			case 458:
			case 459:
			case 460:
			case 461:
			case 462:
			case 463:
			case 464:
			case 465:
			case 466:
			case 467:
			case 468:
			case 469:
			case 470:
			case 471:
			case 472:
			case 473:
			case 475:
			case 476:
			case 477:
			case 478:
			case 479:
			case 480:
			case 481:
			case 482:
			case 483:
			case 484:
			case 485:
			case 486:
			case 487:
			case 488:
			case 489:
			case 490:
			case 491:
			case 492:
			case 493:
			case 494:
			case 495:
			case 496:
			case 497:
			case 498:
			case 499:
			case 500:
			case 501:
			case 502:
			case 503:
			case 504:
			case 505:
			case 506:
			case 507:
			case 508:
			case 509:
			case 510:
			case 511:
			case 512:
			case 513:
			case 514:
			case 515:
			case 516:
			case 517:
			case 518:
			case 519:
			case 520:
			case 521:
			case 522:
			case 523:
			case 524:
			case 525:
			case 526:
			case 527:
			case 528:
			case 529:
			case 530:
			case 531:
			case 532:
			case 533:
			case 534:
			case 535:
			case 536:
			case 537:
			case 538:
			case 539:
			case 540:
			case 541:
			case 542:
			case 543:
			case 544:
			case 545:
			case 547:
			case 548:
			case 549:
			case 550:
			case 551:
			case 552:
			case 553:
			case 555:
			case 556:
			case 557:
			case 558:
			case 559:
			case 560:
			case 561:
			case 562:
			case 563:
			case 564:
			case 565:
			case 566:
			case 567:
			case 568:
			case 569:
			case 572:
			case 574:
			case 575:
			case 576:
			case 577:
			case 578:
			case 579:
			case 580:
			case 581:
			case 582:
			case 583:
			case 584:
			case 586:
			case 587:
			case 588:
			case 589:
			case 590:
			case 591:
			case 592:
			case 593:
			case 594:
			case 595:
			case 596:
			case 597:
			case 598:
			case 599:
			case 600:
			case 602:
			case 603:
			case 604:
			case 605:
			case 606:
			case 607:
			case 608:
			case 609:
			case 610:
			case 611:
			case 612:
			case 613:
			case 614:
			case 615:
			case 616:
			case 617:
			case 618:
			case 619:
			case 620:
			case 621:
			case 622:
			case 623:
			case 624:
			case 625:
			case 626:
			case 627:
			case 628:
			case 629:
			case 630:
			case 632:
			case 633:
			case 634:
			case 635:
			case 636:
			case 637:
			case 638:
			case 639:
			case 640:
			case 641:
			case 642:
			case 643:
			case 644:
			case 645:
			case 646:
			case 647:
			case 648:
			case 649:
			case 650:
			case 651:
			case 653:
			case 654:
			case 655:
			case 656:
			case 657:
			case 658:
			case 659:
			case 660:
			case 661:
			case 662:
			case 663:
			case 664:
			case 665:
			case 666:
			case 667:
			case 668:
			case 670:
			case 671:
			case 672:
			case 673:
			case 674:
			case 675:
			case 676:
			case 677:
			case 678:
			case 679:
			case 680:
			case 681:
			case 682:
			case 683:
			case 684:
			case 685:
			case 686:
			case 687:
			case 689:
			case 690:
			case 692:
			case 693:
			case 694:
			case 696:
			case 697:
			case 698:
			case 699:
			case 700:
			case 701:
			case 702:
			case 703:
			case 704:
			case 705:
			case 706:
			case 707:
			case 708:
			case 709:
			case 710:
			case 711:
			case 712:
			case 713:
			case 714:
			case 715:
			case 716:
			case 717:
			case 718:
			case 719:
			case 720:
			case 721:
			case 722:
			case 723:
			case 724:
			case 725:
			case 726:
			case 727:
			case 728:
			case 729:
			case 730:
			case 731:
			case 732:
			case 733:
			case 734:
			case 735:
			case 736:
			case 737:
			case 738:
			case 739:
			case 740:
			case 741:
			case 742:
			case 743:
			case 744:
			case 745:
			case 746:
			case 747:
			case 748:
			case 749:
			case 750:
			case 751:
			case 752:
			case 753:
			case 754:
			case 755:
			case 756:
			case 758:
			case 759:
			case 760:
			case 761:
			case 762:
			case 763:
			case 764:
			case 765:
			case 766:
			case 767:
			case 768:
			case 769:
			case 770:
			case 771:
			case 772:
			case 773:
			case 774:
			case 775:
			case 777:
			case 778:
			case 779:
			case 780:
			case 781:
			case 782:
			case 783:
			case 784:
			case 785:
			case 786:
			case 787:
			case 788:
			case 789:
			case 790:
			case 791:
			case 792:
			case 793:
			case 794:
			case 795:
			case 796:
			case 797:
			case 798:
			case 799:
			case 800:
			case 801:
			case 802:
			case 803:
			case 804:
			case 805:
			case 806:
			case 807:
			case 808:
			case 809:
			case 810:
			case 811:
			case 812:
			case 813:
			case 814:
			case 815:
			case 816:
			case 817:
			case 818:
			case 819:
			case 820:
			case 821:
			case 822:
			case 823:
			case 824:
			case 825:
			case 826:
			case 827:
			case 828:
			case 829:
			case 830:
			case 831:
			case 832:
			case 833:
			case 834:
			case 835:
			case 836:
			case 837:
			case 838:
			case 839:
			case 840:
			case 841:
			case 843:
			case 844:
			case 845:
			case 846:
			case 847:
			case 848:
			case 849:
			case 850:
			case 851:
			case 852:
			case 853:
			case 854:
			case 855:
			case 856:
			case 857:
			case 858:
			case 859:
			case 861:
			case 862:
			case 863:
			case 864:
			case 865:
			case 866:
			case 867:
			case 868:
			case 869:
			case 870:
			case 871:
			case 872:
			case 873:
			case 874:
			case 875:
			case 876:
			case 877:
			case 878:
			case 879:
			case 880:
			case 881:
			case 882:
			case 883:
			case 884:
			case 885:
			case 886:
			case 888:
			case 889:
			case 890:
			case 891:
			case 892:
			case 893:
			case 894:
			case 895:
			case 896:
			case 897:
			case 898:
			case 899:
			case 900:
			case 901:
			case 902:
			case 903:
			case 904:
			case 905:
			case 906:
			case 907:
			case 908:
			case 909:
			case 910:
			case 911:
			case 912:
			case 913:
			case 914:
			case 915:
			case 916:
			case 917:
			case 918:
			case 919:
			case 920:
			case 921:
			case 922:
			case 923:
			case 924:
			case 925:
			case 926:
			case 927:
			case 928:
			case 929:
			case 930:
			case 931:
			case 932:
			case 933:
			case 934:
			case 935:
			case 936:
			case 937:
			case 938:
			case 939:
			case 940:
			case 941:
			case 942:
			case 943:
			case 944:
			case 945:
			case 946:
			case 947:
			case 948:
			case 949:
			case 950:
			case 951:
			case 952:
			case 954:
			case 955:
			case 956:
			case 957:
			case 958:
			case 959:
			case 960:
			case 961:
			case 962:
			case 963:
			case 964:
			case 965:
			case 966:
			case 967:
			case 968:
			case 969:
			case 970:
			case 971:
			case 972:
			case 973:
			case 974:
			case 975:
			case 976:
			case 977:
			case 978:
			case 979:
			case 980:
			case 981:
			case 982:
			case 983:
			case 984:
			case 985:
			case 986:
			case 987:
			case 988:
			case 989:
			case 990:
			case 991:
			case 992:
			case 993:
			case 994:
			case 995:
			case 996:
			case 997:
			case 998:
			case 999:
			case 1000:
			case 1001:
			case 1002:
			case 1003:
			case 1004:
			case 1005:
			case 1006:
			case 1007:
			case 1008:
			case 1009:
			case 1010:
			case 1011:
			case 1012:
			case 1013:
			case 1014:
			case 1015:
			case 1016:
			case 1017:
			case 1018:
			case 1019:
			case 1020:
			case 1021:
			case 1022:
			case 1023:
			case 1024:
			case 1025:
			case 1026:
			case 1027:
			case 1028:
			case 1029:
			case 1030:
			case 1031:
			case 1032:
			case 1033:
			case 1034:
			case 1035:
			case 1036:
			case 1037:
			case 1038:
			case 1039:
			case 1040:
			case 1041:
			case 1042:
			case 1043:
			case 1044:
			case 1045:
			case 1046:
			case 1047:
			case 1048:
			case 1049:
			case 1050:
			case 1051:
			case 1052:
			case 1053:
			case 1054:
			case 1055:
			case 1056:
			case 1057:
			case 1058:
			case 1059:
			case 1060:
			case 1061:
			case 1062:
			case 1063:
			case 1064:
			case 1065:
			case 1066:
			case 1067:
			case 1068:
			case 1069:
			case 1070:
			case 1071:
			case 1072:
			case 1074:
			case 1075:
			case 1076:
			case 1077:
			case 1078:
			case 1079:
			case 1080:
			case 1081:
			case 1082:
			case 1083:
			case 1084:
			case 1085:
			case 1086:
			case 1087:
			case 1089:
			case 1090:
			case 1091:
			case 1092:
			case 1093:
			case 1094:
			case 1095:
			case 1096:
			case 1098:
			case 1099:
			case 1100:
			case 1101:
			case 1102:
			case 1103:
			case 1104:
			case 1105:
			case 1106:
			case 1107:
			case 1108:
			case 1109:
			case 1110:
			case 1111:
			case 1112:
			case 1113:
			case 1114:
			case 1116:
			case 1117:
			case 1118:
			case 1119:
			case 1120:
			case 1121:
			case 1122:
			case 1123:
			case 1124:
			case 1125:
			case 1127:
			case 1129:
			case 1130:
			case 1131:
			case 1132:
			case 1133:
			case 1134:
			case 1135:
			case 1136:
			case 1137:
			case 1138:
			case 1139:
			case 1140:
			case 1142:
			case 1143:
			case 1144:
			case 1145:
			case 1146:
			case 1147:
			case 1148:
			case 1149:
			case 1150:
			case 1151:
			case 1152:
			case 1153:
			case 1154:
			case 1155:
			case 1156:
			case 1157:
			case 1158:
			case 1159:
			case 1160:
			case 1161:
			case 1162:
			case 1163:
			case 1164:
			case 1165:
			case 1166:
			case 1167:
			case 1169:
			case 1170:
			case 1171:
			case 1173:
			case 1174:
			case 1175:
			case 1176:
			case 1177:
			case 1178:
			case 1179:
			case 1180:
			case 1181:
			case 1182:
			case 1183:
			case 1184:
			case 1185:
			case 1186:
			case 1187:
			case 1188:
			case 1189:
			case 1190:
			case 1191:
			case 1192:
			case 1193:
			case 1194:
			case 1195:
			case 1197:
			case 1198:
			case 1199:
			case 1200:
			case 1201:
			case 1202:
			case 1203:
			case 1204:
			case 1205:
			case 1206:
			case 1207:
			case 1208:
			case 1209:
			case 1210:
			case 1211:
			case 1212:
			case 1213:
			case 1214:
			case 1215:
			case 1216:
			case 1217:
			case 1218:
			case 1219:
			case 1220:
			case 1221:
			case 1222:
			case 1223:
			case 1224:
			case 1225:
			case 1226:
			case 1228:
			case 1229:
			case 1230:
			case 1231:
			case 1232:
			case 1236:
			case 1237:
			case 1241:
			case 1242:
			case 1243:
			case 1244:
			case 1245:
			case 1246:
			case 1247:
			case 1248:
			case 1249:
			case 1250:
			case 1252:
			case 1253:
			case 1254:
			case 1255:
			case 1256:
			case 1257:
			case 1258:
			case 1259:
			case 1260:
			case 1261:
			case 1262:
			case 1263:
			case 1264:
			case 1265:
			case 1266:
			case 1267:
			case 1268:
			case 1269:
			case 1270:
			case 1271:
			case 1272:
			case 1273:
			case 1274:
			case 1275:
			case 1276:
			case 1277:
			case 1278:
			case 1279:
			case 1280:
			case 1281:
			case 1282:
			case 1283:
			case 1284:
			case 1285:
			case 1286:
			case 1287:
			case 1288:
			case 1289:
			case 1290:
			case 1291:
			case 1292:
			case 1293:
			case 1294:
			case 1295:
			case 1296:
			case 1297:
			case 1298:
			case 1299:
			case 1300:
			case 1301:
			case 1302:
			case 1303:
			case 1304:
			case 1305:
			case 1306:
			case 1308:
			case 1309:
			case 1310:
			case 1311:
			case 1312:
			case 1313:
			case 1314:
			case 1315:
			case 1316:
			case 1317:
			case 1318:
			case 1319:
			case 1320:
			case 1321:
			case 1322:
			case 1323:
			case 1325:
			case 1326:
			case 1327:
			case 1328:
			case 1329:
			case 1330:
			case 1331:
			case 1332:
			case 1333:
			case 1334:
			case 1335:
			case 1336:
			case 1337:
			case 1338:
			case 1339:
			case 1340:
			case 1341:
			case 1342:
			case 1343:
			case 1344:
			case 1345:
			case 1346:
			case 1347:
			case 1348:
			case 1349:
			case 1350:
			case 1351:
			case 1352:
			case 1353:
			case 1354:
			case 1355:
			case 1356:
			case 1357:
			case 1358:
			case 1359:
			case 1360:
			case 1361:
			case 1362:
			case 1363:
			case 1364:
			case 1365:
			case 1366:
			case 1367:
			case 1368:
			case 1369:
			case 1370:
			case 1371:
			case 1372:
			case 1373:
			case 1374:
			case 1375:
			case 1376:
			case 1377:
			case 1378:
			case 1379:
			case 1380:
			case 1381:
			case 1382:
			case 1383:
			case 1384:
			case 1385:
			case 1386:
			case 1387:
			case 1388:
			case 1389:
			case 1390:
			case 1391:
			case 1392:
			case 1393:
			case 1394:
			case 1395:
			case 1396:
			case 1397:
			case 1399:
			case 1400:
			case 1401:
			case 1402:
			case 1403:
			case 1404:
			case 1405:
			case 1406:
			case 1407:
			case 1408:
			case 1409:
			case 1410:
			case 1411:
			case 1412:
			case 1413:
			case 1414:
			case 1416:
			case 1417:
			case 1418:
			case 1419:
			case 1420:
			case 1421:
			case 1422:
			case 1423:
			case 1424:
			case 1425:
			case 1426:
			case 1427:
			case 1428:
			case 1429:
			case 1430:
			case 1431:
			case 1432:
			case 1433:
			case 1435:
			case 1436:
			case 1437:
			case 1438:
			case 1439:
			case 1440:
			case 1441:
			case 1442:
			case 1443:
			case 1444:
			case 1445:
			case 1446:
			case 1447:
			case 1448:
			case 1449:
			case 1450:
			case 1451:
			case 1452:
			case 1453:
			case 1454:
			case 1455:
			case 1456:
			case 1457:
			case 1458:
			case 1459:
			case 1460:
			case 1461:
			case 1462:
			case 1463:
			case 1464:
			case 1465:
			case 1466:
			case 1467:
			case 1468:
			case 1469:
			case 1470:
			case 1471:
			case 1472:
			case 1473:
			case 1474:
			case 1475:
			case 1476:
			case 1477:
			case 1478:
			case 1479:
			case 1480:
			case 1481:
			case 1482:
			case 1483:
			case 1484:
			case 1485:
			case 1486:
			case 1487:
			case 1488:
			case 1489:
			case 1491:
			case 1492:
			case 1493:
			case 1494:
			case 1495:
			case 1496:
			case 1497:
			case 1499:
			case 1500:
			case 1501:
			case 1502:
			case 1503:
			case 1504:
			case 1505:
			case 1506:
			case 1507:
			case 1508:
			case 1509:
			case 1510:
			case 1511:
			case 1512:
			case 1513:
			case 1514:
			case 1515:
			case 1516:
			case 1518:
			case 1519:
			case 1520:
			case 1521:
			case 1522:
			case 1523:
			case 1524:
			case 1525:
			case 1526:
			case 1527:
			case 1528:
			case 1529:
			case 1530:
			case 1531:
			case 1532:
			case 1533:
			case 1534:
			case 1536:
			case 1537:
			case 1538:
			case 1539:
			case 1540:
			case 1541:
			case 1542:
			case 1543:
			case 1544:
			case 1545:
			case 1546:
			case 1547:
			case 1548:
			case 1549:
			case 1550:
			case 1551:
			case 1552:
			case 1553:
			case 1554:
			case 1555:
			case 1556:
			case 1557:
			case 1558:
			case 1559:
			case 1560:
			case 1561:
			case 1562:
			case 1563:
			case 1564:
			case 1565:
			case 1566:
			case 1567:
			case 1568:
			case 1570:
			case 1571:
			case 1572:
			case 1573:
			case 1574:
			case 1575:
			case 1576:
			case 1577:
			case 1578:
			case 1579:
			case 1580:
			case 1581:
			case 1582:
			case 1583:
			case 1584:
			case 1585:
			case 1586:
			case 1587:
			case 1588:
			case 1589:
			case 1590:
			case 1591:
			case 1592:
			case 1593:
			case 1594:
			case 1595:
			case 1596:
			case 1597:
			case 1598:
			case 1599:
			case 1600:
			case 1601:
			case 1602:
			case 1603:
			case 1604:
			case 1605:
			case 1606:
			case 1607:
			case 1608:
			case 1609:
			case 1610:
			case 1611:
			case 1612:
			case 1613:
			case 1614:
			case 1615:
			case 1616:
			case 1617:
			case 1618:
			case 1619:
			case 1620:
			case 1621:
			case 1622:
			case 1623:
			case 1624:
			case 1625:
			case 1626:
			case 1628:
			case 1629:
			case 1630:
			case 1631:
			case 1632:
			case 1633:
			case 1634:
			case 1635:
			case 1636:
			case 1637:
			case 1638:
			case 1639:
			case 1640:
			case 1641:
			case 1642:
			case 1643:
			case 1644:
			case 1645:
			case 1646:
			case 1647:
			case 1648:
			case 1649:
			case 1650:
			case 1651:
			case 1652:
			case 1653:
			case 1654:
			case 1655:
			case 1656:
			case 1657:
			case 1658:
			case 1659:
			case 1660:
			case 1661:
			case 1662:
			case 1663:
			case 1664:
			case 1665:
			case 1666:
			case 1667:
			case 1668:
			case 1669:
			case 1670:
			case 1671:
			case 1672:
			case 1673:
			case 1674:
			case 1675:
			case 1676:
			case 1677:
			case 1678:
			case 1679:
			case 1680:
			case 1681:
			case 1682:
			case 1683:
			case 1684:
			case 1685:
			case 1686:
			case 1687:
			case 1688:
			case 1689:
			case 1690:
			case 1691:
			case 1692:
			case 1693:
			case 1694:
			case 1695:
			case 1696:
			case 1697:
			case 1698:
			case 1699:
			case 1700:
			case 1701:
			case 1702:
			case 1703:
			case 1704:
			case 1705:
			case 1706:
			case 1707:
			case 1708:
			case 1709:
			case 1710:
			case 1711:
			case 1712:
			case 1713:
			case 1714:
			case 1715:
			case 1716:
			case 1717:
			case 1718:
			case 1719:
			case 1720:
			case 1721:
			case 1722:
			case 1723:
			case 1724:
			case 1725:
			case 1726:
			case 1727:
			case 1728:
			case 1729:
			case 1730:
			case 1731:
			case 1732:
			case 1733:
			case 1734:
			case 1735:
			case 1736:
			case 1737:
			case 1738:
			case 1739:
			case 1740:
			case 1741:
			case 1742:
			case 1743:
			case 1744:
			case 1745:
			case 1746:
			case 1747:
			case 1748:
			case 1749:
			case 1750:
			case 1751:
			case 1752:
			case 1753:
			case 1754:
			case 1755:
			case 1756:
			case 1757:
			case 1758:
			case 1759:
			case 1760:
			case 1761:
			case 1762:
			case 1763:
			case 1764:
			case 1765:
			case 1766:
			case 1767:
			case 1768:
			case 1769:
			case 1770:
			case 1771:
			case 1772:
			case 1773:
			case 1774:
			case 1775:
			case 1776:
			case 1777:
			case 1778:
			case 1779:
			case 1780:
			case 1781:
			case 1782:
			case 1783:
			case 1784:
			case 1785:
			case 1786:
			case 1787:
			case 1788:
			case 1789:
			case 1790:
			case 1791:
			case 1792:
			case 1793:
			case 1794:
			case 1795:
			case 1796:
			case 1797:
			case 1798:
			case 1799:
			case 1800:
			case 1801:
			case 1802:
			case 1803:
			case 1804:
			case 1805:
			case 1806:
			case 1807:
			case 1808:
			case 1809:
			case 1810:
			case 1811:
			case 1812:
			case 1813:
			case 1814:
			case 1815:
			case 1816:
			case 1817:
			case 1818:
			case 1819:
			case 1820:
			case 1821:
			case 1822:
			case 1823:
			case 1824:
			case 1825:
			case 1826:
			case 1827:
			case 1828:
			case 1829:
			case 1830:
			case 1831:
			case 1832:
			case 1833:
			case 1834:
			case 1835:
			case 1836:
			case 1837:
			case 1838:
			case 1839:
			case 1840:
			case 1841:
			case 1842:
			case 1843:
			case 1844:
			case 1845:
			case 1846:
			case 1847:
			case 1848:
			case 1849:
			case 1850:
			case 1851:
			case 1852:
			case 1853:
			case 1854:
			case 1855:
			case 1856:
			case 1857:
			case 1858:
			case 1859:
			case 1860:
			case 1861:
			case 1862:
			case 1863:
			case 1864:
			case 1865:
			case 1866:
			case 1867:
			case 1868:
			case 1869:
			case 1870:
			case 1871:
			case 1872:
			case 1873:
			case 1874:
			case 1875:
			case 1876:
			case 1877:
			case 1878:
			case 1879:
			case 1880:
			case 1881:
			case 1882:
			case 1883:
			case 1884:
			case 1885:
			case 1886:
			case 1887:
			case 1888:
			case 1889:
			case 1890:
			case 1891:
			case 1892:
			case 1893:
			case 1894:
			case 1895:
			case 1896:
			case 1897:
			case 1898:
			case 1899:
			case 1900:
			case 1901:
			case 1902:
			case 1903:
			case 1904:
			case 1905:
			case 1906:
			case 1907:
			case 1908:
			case 1909:
			case 1910:
			case 1911:
			case 1912:
			case 1913:
			case 1914:
			case 1915:
			case 1916:
			case 1917:
			case 1918:
			case 1919:
			case 1920:
			case 1921:
			case 1922:
			case 1923:
			case 1924:
			case 1925:
			case 1926:
			case 1927:
			case 1928:
			case 1929:
			case 1930:
			case 1931:
			case 1932:
			case 1933:
			case 1934:
			case 1935:
			case 1936:
			case 1937:
			case 1939:
			case 1940:
			case 1941:
			case 1942:
			case 1943:
			case 1944:
			case 1945:
			case 1946:
			case 1947:
			case 1948:
			case 1949:
			case 1950:
			case 1951:
			case 1952:
			case 1953:
			case 1954:
			case 1955:
			case 1956:
			case 1957:
			case 1958:
			case 1959:
			case 1960:
			case 1961:
			case 1962:
			case 1963:
			case 1965:
			case 1966:
			case 1967:
			case 1968:
			case 1969:
			case 1970:
			case 1971:
			case 1972:
			case 1973:
			case 1974:
			case 1975:
			case 1976:
			case 1977:
			case 1978:
			case 1979:
			case 1980:
			case 1981:
			case 1982:
			case 1983:
			case 1984:
			case 1985:
			case 1986:
			case 1987:
			case 1988:
			case 1989:
			case 1990:
			case 1991:
			case 1992:
			case 1993:
			case 1994:
			case 1995:
			case 1996:
			case 1997:
			case 1998:
			case 1999:
			case 2000:
			case 2003:
			case 2004:
			case 2005:
			case 2006:
			case 2007:
			case 2008:
			case 2009:
			case 2010:
			case 2011:
			case 2012:
			case 2013:
			case 2014:
			case 2015:
			case 2016:
			case 2017:
			case 2018:
			case 2019:
			case 2020:
			case 2021:
			case 2022:
			case 2023:
			case 2024:
			case 2026:
			case 2027:
			case 2028:
			case 2029:
			case 2030:
			case 2031:
			case 2032:
			case 2033:
			case 2034:
			case 2035:
			case 2036:
			case 2037:
			case 2038:
			case 2039:
			case 2040:
			case 2041:
			case 2042:
			case 2043:
			case 2044:
			case 2045:
			case 2046:
			case 2047:
			case 2048:
			case 2049:
			case 2050:
			case 2051:
			case 2052:
			case 2053:
			case 2054:
			case 2055:
			case 2056:
			case 2057:
			case 2058:
			case 2059:
			case 2060:
			case 2061:
			case 2062:
			case 2063:
			case 2064:
			case 2065:
			case 2066:
			case 2067:
			case 2068:
			case 2069:
			case 2070:
			case 2071:
			case 2072:
			case 2074:
			case 2075:
			case 2076:
			case 2077:
			case 2078:
			case 2079:
			case 2080:
			case 2081:
			case 2082:
			case 2083:
			case 2084:
			case 2085:
			case 2086:
			case 2087:
			case 2088:
			case 2089:
			case 2090:
			case 2091:
			case 2092:
			case 2093:
			case 2094:
			case 2095:
			case 2096:
			case 2097:
			case 2098:
			case 2100:
			case 2101:
			case 2102:
			case 2103:
			case 2104:
			case 2105:
			case 2106:
			case 2107:
			case 2108:
			case 2109:
			case 2110:
			case 2111:
			case 2112:
			case 2113:
			case 2115:
			case 2116:
			case 2117:
			case 2118:
			case 2119:
			case 2120:
			case 2122:
			case 2123:
			case 2124:
			case 2125:
			case 2126:
			case 2128:
			case 2129:
			case 2130:
			case 2131:
			case 2132:
			case 2133:
			case 2134:
			case 2135:
			case 2136:
			case 2137:
			case 2138:
			case 2139:
			case 2140:
			case 2141:
			case 2142:
			case 2143:
			case 2145:
			case 2146:
			case 2147:
			case 2148:
			case 2149:
			case 2150:
			case 2151:
			case 2152:
			case 2153:
			case 2154:
			case 2155:
			case 2156:
			case 2157:
			case 2158:
			case 2159:
			case 2160:
			case 2161:
			case 2162:
			case 2163:
			case 2164:
			case 2165:
			case 2166:
			case 2168:
			case 2169:
			case 2170:
			case 2171:
			case 2172:
			case 2173:
			case 2174:
			case 2175:
			case 2176:
			case 2177:
			case 2178:
			case 2179:
			case 2180:
			case 2181:
			case 2182:
			case 2183:
			case 2184:
			case 2185:
			case 2186:
			case 2187:
			case 2188:
			case 2189:
			case 2191:
			case 2192:
			case 2193:
			case 2194:
			case 2195:
			case 2196:
			case 2197:
			case 2198:
			case 2199:
			case 2200:
			case 2201:
			case 2202:
			case 2203:
			case 2204:
			case 2205:
			case 2206:
			case 2207:
			case 2208:
			case 2209:
			case 2210:
			case 2211:
			case 2216:
			case 2220:
			case 2246:
			case 2252:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 11149;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===2246) {
					{
					this.state = 11147;
					this.match(PlSqlParser.INTRODUCER);
					this.state = 11148;
					this.char_set_name();
					}
				}

				this.state = 11151;
				this.id_expression();
				this.state = 11154;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 1532, this._ctx) ) {
				case 1:
					{
					this.state = 11152;
					this.match(PlSqlParser.PERIOD);
					this.state = 11153;
					this.id_expression();
					}
					break;
				}
				}
				break;
			case 2233:
			case 2240:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 11156;
				this.bind_variable();
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public index_name(): Index_nameContext {
		let localctx: Index_nameContext = new Index_nameContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1414, PlSqlParser.RULE_index_name);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 11159;
			this.identifier();
			this.state = 11162;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1534, this._ctx) ) {
			case 1:
				{
				this.state = 11160;
				this.match(PlSqlParser.PERIOD);
				this.state = 11161;
				this.id_expression();
				}
				break;
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public cursor_name(): Cursor_nameContext {
		let localctx: Cursor_nameContext = new Cursor_nameContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1416, PlSqlParser.RULE_cursor_name);
		try {
			this.state = 11166;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 1:
			case 2:
			case 3:
			case 4:
			case 5:
			case 6:
			case 7:
			case 8:
			case 9:
			case 10:
			case 11:
			case 12:
			case 13:
			case 14:
			case 15:
			case 16:
			case 17:
			case 18:
			case 19:
			case 20:
			case 21:
			case 22:
			case 23:
			case 24:
			case 25:
			case 26:
			case 27:
			case 28:
			case 29:
			case 30:
			case 31:
			case 32:
			case 33:
			case 34:
			case 36:
			case 37:
			case 38:
			case 40:
			case 41:
			case 42:
			case 44:
			case 45:
			case 46:
			case 47:
			case 49:
			case 50:
			case 51:
			case 52:
			case 53:
			case 54:
			case 55:
			case 56:
			case 57:
			case 58:
			case 59:
			case 60:
			case 63:
			case 64:
			case 65:
			case 66:
			case 67:
			case 68:
			case 69:
			case 70:
			case 71:
			case 72:
			case 73:
			case 74:
			case 75:
			case 76:
			case 78:
			case 79:
			case 80:
			case 81:
			case 82:
			case 83:
			case 85:
			case 86:
			case 87:
			case 88:
			case 89:
			case 90:
			case 91:
			case 92:
			case 93:
			case 95:
			case 96:
			case 97:
			case 98:
			case 99:
			case 100:
			case 101:
			case 102:
			case 103:
			case 104:
			case 105:
			case 106:
			case 108:
			case 109:
			case 110:
			case 111:
			case 112:
			case 113:
			case 114:
			case 115:
			case 116:
			case 117:
			case 118:
			case 119:
			case 120:
			case 121:
			case 122:
			case 123:
			case 124:
			case 125:
			case 126:
			case 127:
			case 128:
			case 129:
			case 130:
			case 131:
			case 132:
			case 133:
			case 134:
			case 135:
			case 136:
			case 137:
			case 138:
			case 139:
			case 140:
			case 141:
			case 142:
			case 143:
			case 144:
			case 145:
			case 147:
			case 148:
			case 149:
			case 150:
			case 151:
			case 152:
			case 153:
			case 154:
			case 155:
			case 156:
			case 157:
			case 158:
			case 160:
			case 161:
			case 162:
			case 163:
			case 164:
			case 165:
			case 166:
			case 167:
			case 168:
			case 169:
			case 170:
			case 171:
			case 172:
			case 174:
			case 175:
			case 176:
			case 177:
			case 178:
			case 179:
			case 181:
			case 182:
			case 183:
			case 184:
			case 185:
			case 186:
			case 187:
			case 188:
			case 189:
			case 190:
			case 191:
			case 192:
			case 193:
			case 194:
			case 195:
			case 196:
			case 197:
			case 198:
			case 199:
			case 200:
			case 201:
			case 202:
			case 203:
			case 204:
			case 205:
			case 206:
			case 207:
			case 208:
			case 209:
			case 210:
			case 211:
			case 212:
			case 213:
			case 214:
			case 215:
			case 216:
			case 217:
			case 218:
			case 219:
			case 220:
			case 221:
			case 222:
			case 223:
			case 224:
			case 225:
			case 226:
			case 227:
			case 228:
			case 229:
			case 230:
			case 231:
			case 233:
			case 234:
			case 235:
			case 236:
			case 237:
			case 238:
			case 239:
			case 240:
			case 241:
			case 242:
			case 243:
			case 244:
			case 245:
			case 246:
			case 247:
			case 248:
			case 249:
			case 250:
			case 252:
			case 253:
			case 254:
			case 255:
			case 256:
			case 257:
			case 258:
			case 259:
			case 260:
			case 261:
			case 262:
			case 263:
			case 264:
			case 265:
			case 266:
			case 267:
			case 268:
			case 269:
			case 270:
			case 271:
			case 272:
			case 273:
			case 274:
			case 275:
			case 276:
			case 277:
			case 278:
			case 279:
			case 280:
			case 281:
			case 282:
			case 283:
			case 284:
			case 285:
			case 286:
			case 287:
			case 289:
			case 290:
			case 291:
			case 292:
			case 293:
			case 294:
			case 295:
			case 296:
			case 297:
			case 298:
			case 299:
			case 300:
			case 301:
			case 302:
			case 303:
			case 304:
			case 305:
			case 306:
			case 307:
			case 308:
			case 309:
			case 310:
			case 311:
			case 312:
			case 313:
			case 314:
			case 315:
			case 316:
			case 317:
			case 318:
			case 319:
			case 321:
			case 322:
			case 323:
			case 324:
			case 325:
			case 326:
			case 328:
			case 329:
			case 330:
			case 331:
			case 332:
			case 333:
			case 334:
			case 335:
			case 336:
			case 337:
			case 338:
			case 339:
			case 340:
			case 341:
			case 342:
			case 343:
			case 344:
			case 345:
			case 346:
			case 347:
			case 348:
			case 349:
			case 350:
			case 352:
			case 353:
			case 354:
			case 355:
			case 356:
			case 357:
			case 358:
			case 359:
			case 360:
			case 361:
			case 362:
			case 363:
			case 364:
			case 365:
			case 366:
			case 367:
			case 368:
			case 369:
			case 370:
			case 372:
			case 373:
			case 374:
			case 375:
			case 376:
			case 377:
			case 378:
			case 379:
			case 380:
			case 381:
			case 382:
			case 383:
			case 384:
			case 385:
			case 386:
			case 387:
			case 388:
			case 389:
			case 390:
			case 391:
			case 392:
			case 394:
			case 395:
			case 397:
			case 398:
			case 399:
			case 400:
			case 401:
			case 402:
			case 403:
			case 404:
			case 405:
			case 406:
			case 407:
			case 408:
			case 409:
			case 410:
			case 412:
			case 413:
			case 414:
			case 415:
			case 417:
			case 418:
			case 419:
			case 420:
			case 421:
			case 422:
			case 423:
			case 424:
			case 425:
			case 426:
			case 427:
			case 428:
			case 429:
			case 430:
			case 431:
			case 434:
			case 435:
			case 436:
			case 437:
			case 438:
			case 439:
			case 440:
			case 441:
			case 442:
			case 443:
			case 444:
			case 446:
			case 447:
			case 448:
			case 449:
			case 450:
			case 451:
			case 452:
			case 453:
			case 454:
			case 455:
			case 456:
			case 457:
			case 458:
			case 459:
			case 460:
			case 461:
			case 462:
			case 463:
			case 464:
			case 465:
			case 466:
			case 467:
			case 468:
			case 469:
			case 470:
			case 471:
			case 472:
			case 473:
			case 475:
			case 476:
			case 477:
			case 478:
			case 479:
			case 480:
			case 481:
			case 482:
			case 483:
			case 484:
			case 485:
			case 486:
			case 487:
			case 488:
			case 489:
			case 490:
			case 491:
			case 492:
			case 493:
			case 494:
			case 495:
			case 496:
			case 497:
			case 498:
			case 499:
			case 500:
			case 501:
			case 502:
			case 503:
			case 504:
			case 505:
			case 506:
			case 507:
			case 508:
			case 509:
			case 510:
			case 511:
			case 512:
			case 513:
			case 514:
			case 515:
			case 516:
			case 517:
			case 518:
			case 519:
			case 520:
			case 521:
			case 522:
			case 523:
			case 524:
			case 525:
			case 526:
			case 527:
			case 528:
			case 529:
			case 530:
			case 531:
			case 532:
			case 533:
			case 534:
			case 535:
			case 536:
			case 537:
			case 538:
			case 539:
			case 540:
			case 541:
			case 542:
			case 543:
			case 544:
			case 545:
			case 547:
			case 548:
			case 549:
			case 550:
			case 551:
			case 552:
			case 553:
			case 555:
			case 556:
			case 557:
			case 558:
			case 559:
			case 560:
			case 561:
			case 562:
			case 563:
			case 564:
			case 565:
			case 566:
			case 567:
			case 568:
			case 569:
			case 572:
			case 574:
			case 575:
			case 576:
			case 577:
			case 578:
			case 579:
			case 580:
			case 581:
			case 582:
			case 583:
			case 584:
			case 586:
			case 587:
			case 588:
			case 589:
			case 590:
			case 591:
			case 592:
			case 593:
			case 594:
			case 595:
			case 596:
			case 597:
			case 598:
			case 599:
			case 600:
			case 602:
			case 603:
			case 604:
			case 605:
			case 606:
			case 607:
			case 608:
			case 609:
			case 610:
			case 611:
			case 612:
			case 613:
			case 614:
			case 615:
			case 616:
			case 617:
			case 618:
			case 619:
			case 620:
			case 621:
			case 622:
			case 623:
			case 624:
			case 625:
			case 626:
			case 627:
			case 628:
			case 629:
			case 630:
			case 632:
			case 633:
			case 634:
			case 635:
			case 636:
			case 637:
			case 638:
			case 639:
			case 640:
			case 641:
			case 642:
			case 643:
			case 644:
			case 645:
			case 646:
			case 647:
			case 648:
			case 649:
			case 650:
			case 651:
			case 653:
			case 654:
			case 655:
			case 656:
			case 657:
			case 658:
			case 659:
			case 660:
			case 661:
			case 662:
			case 663:
			case 664:
			case 665:
			case 666:
			case 667:
			case 668:
			case 670:
			case 671:
			case 672:
			case 673:
			case 674:
			case 675:
			case 676:
			case 677:
			case 678:
			case 679:
			case 680:
			case 681:
			case 682:
			case 683:
			case 684:
			case 685:
			case 686:
			case 687:
			case 689:
			case 690:
			case 692:
			case 693:
			case 694:
			case 696:
			case 697:
			case 698:
			case 699:
			case 700:
			case 701:
			case 702:
			case 703:
			case 704:
			case 705:
			case 706:
			case 707:
			case 708:
			case 709:
			case 710:
			case 711:
			case 712:
			case 713:
			case 714:
			case 715:
			case 716:
			case 717:
			case 718:
			case 719:
			case 720:
			case 721:
			case 722:
			case 723:
			case 724:
			case 725:
			case 726:
			case 727:
			case 728:
			case 729:
			case 730:
			case 731:
			case 732:
			case 733:
			case 734:
			case 735:
			case 736:
			case 737:
			case 738:
			case 739:
			case 740:
			case 741:
			case 742:
			case 743:
			case 744:
			case 745:
			case 746:
			case 747:
			case 748:
			case 749:
			case 750:
			case 751:
			case 752:
			case 753:
			case 754:
			case 755:
			case 756:
			case 758:
			case 759:
			case 760:
			case 761:
			case 762:
			case 763:
			case 764:
			case 765:
			case 766:
			case 767:
			case 768:
			case 769:
			case 770:
			case 771:
			case 772:
			case 773:
			case 774:
			case 775:
			case 777:
			case 778:
			case 779:
			case 780:
			case 781:
			case 782:
			case 783:
			case 784:
			case 785:
			case 786:
			case 787:
			case 788:
			case 789:
			case 790:
			case 791:
			case 792:
			case 793:
			case 794:
			case 795:
			case 796:
			case 797:
			case 798:
			case 799:
			case 800:
			case 801:
			case 802:
			case 803:
			case 804:
			case 805:
			case 806:
			case 807:
			case 808:
			case 809:
			case 810:
			case 811:
			case 812:
			case 813:
			case 814:
			case 815:
			case 816:
			case 817:
			case 818:
			case 819:
			case 820:
			case 821:
			case 822:
			case 823:
			case 824:
			case 825:
			case 826:
			case 827:
			case 828:
			case 829:
			case 830:
			case 831:
			case 832:
			case 833:
			case 834:
			case 835:
			case 836:
			case 837:
			case 838:
			case 839:
			case 840:
			case 841:
			case 843:
			case 844:
			case 845:
			case 846:
			case 847:
			case 848:
			case 849:
			case 850:
			case 851:
			case 852:
			case 853:
			case 854:
			case 855:
			case 856:
			case 857:
			case 858:
			case 859:
			case 861:
			case 862:
			case 863:
			case 864:
			case 865:
			case 866:
			case 867:
			case 868:
			case 869:
			case 870:
			case 871:
			case 872:
			case 873:
			case 874:
			case 875:
			case 876:
			case 877:
			case 878:
			case 879:
			case 880:
			case 881:
			case 882:
			case 883:
			case 884:
			case 885:
			case 886:
			case 888:
			case 889:
			case 890:
			case 891:
			case 892:
			case 893:
			case 894:
			case 895:
			case 896:
			case 897:
			case 898:
			case 899:
			case 900:
			case 901:
			case 902:
			case 903:
			case 904:
			case 905:
			case 906:
			case 907:
			case 908:
			case 909:
			case 910:
			case 911:
			case 912:
			case 913:
			case 914:
			case 915:
			case 916:
			case 917:
			case 918:
			case 919:
			case 920:
			case 921:
			case 922:
			case 923:
			case 924:
			case 925:
			case 926:
			case 927:
			case 928:
			case 929:
			case 930:
			case 931:
			case 932:
			case 933:
			case 934:
			case 935:
			case 936:
			case 937:
			case 938:
			case 939:
			case 940:
			case 941:
			case 942:
			case 943:
			case 944:
			case 945:
			case 946:
			case 947:
			case 948:
			case 949:
			case 950:
			case 951:
			case 952:
			case 954:
			case 955:
			case 956:
			case 957:
			case 958:
			case 959:
			case 960:
			case 961:
			case 962:
			case 963:
			case 964:
			case 965:
			case 966:
			case 967:
			case 968:
			case 969:
			case 970:
			case 971:
			case 972:
			case 973:
			case 974:
			case 975:
			case 976:
			case 977:
			case 978:
			case 979:
			case 980:
			case 981:
			case 982:
			case 983:
			case 984:
			case 985:
			case 986:
			case 987:
			case 988:
			case 989:
			case 990:
			case 991:
			case 992:
			case 993:
			case 994:
			case 995:
			case 996:
			case 997:
			case 998:
			case 999:
			case 1000:
			case 1001:
			case 1002:
			case 1003:
			case 1004:
			case 1005:
			case 1006:
			case 1007:
			case 1008:
			case 1009:
			case 1010:
			case 1011:
			case 1012:
			case 1013:
			case 1014:
			case 1015:
			case 1016:
			case 1017:
			case 1018:
			case 1019:
			case 1020:
			case 1021:
			case 1022:
			case 1023:
			case 1024:
			case 1025:
			case 1026:
			case 1027:
			case 1028:
			case 1029:
			case 1030:
			case 1031:
			case 1032:
			case 1033:
			case 1034:
			case 1035:
			case 1036:
			case 1037:
			case 1038:
			case 1039:
			case 1040:
			case 1041:
			case 1042:
			case 1043:
			case 1044:
			case 1045:
			case 1046:
			case 1047:
			case 1048:
			case 1049:
			case 1050:
			case 1051:
			case 1052:
			case 1053:
			case 1054:
			case 1055:
			case 1056:
			case 1057:
			case 1058:
			case 1059:
			case 1060:
			case 1061:
			case 1062:
			case 1063:
			case 1064:
			case 1065:
			case 1066:
			case 1067:
			case 1068:
			case 1069:
			case 1070:
			case 1071:
			case 1072:
			case 1074:
			case 1075:
			case 1076:
			case 1077:
			case 1078:
			case 1079:
			case 1080:
			case 1081:
			case 1082:
			case 1083:
			case 1084:
			case 1085:
			case 1086:
			case 1087:
			case 1089:
			case 1090:
			case 1091:
			case 1092:
			case 1093:
			case 1094:
			case 1095:
			case 1096:
			case 1098:
			case 1099:
			case 1100:
			case 1101:
			case 1102:
			case 1103:
			case 1104:
			case 1105:
			case 1106:
			case 1107:
			case 1108:
			case 1109:
			case 1110:
			case 1111:
			case 1112:
			case 1113:
			case 1114:
			case 1116:
			case 1117:
			case 1118:
			case 1119:
			case 1120:
			case 1121:
			case 1122:
			case 1123:
			case 1124:
			case 1125:
			case 1127:
			case 1129:
			case 1130:
			case 1131:
			case 1132:
			case 1133:
			case 1134:
			case 1135:
			case 1136:
			case 1137:
			case 1138:
			case 1139:
			case 1140:
			case 1142:
			case 1143:
			case 1144:
			case 1145:
			case 1146:
			case 1147:
			case 1148:
			case 1149:
			case 1150:
			case 1151:
			case 1152:
			case 1153:
			case 1154:
			case 1155:
			case 1156:
			case 1157:
			case 1158:
			case 1159:
			case 1160:
			case 1161:
			case 1162:
			case 1163:
			case 1164:
			case 1165:
			case 1166:
			case 1167:
			case 1169:
			case 1170:
			case 1171:
			case 1173:
			case 1174:
			case 1175:
			case 1176:
			case 1177:
			case 1178:
			case 1179:
			case 1180:
			case 1181:
			case 1182:
			case 1183:
			case 1184:
			case 1185:
			case 1186:
			case 1187:
			case 1188:
			case 1189:
			case 1190:
			case 1191:
			case 1192:
			case 1193:
			case 1194:
			case 1195:
			case 1197:
			case 1198:
			case 1199:
			case 1200:
			case 1201:
			case 1202:
			case 1203:
			case 1204:
			case 1205:
			case 1206:
			case 1207:
			case 1208:
			case 1209:
			case 1210:
			case 1211:
			case 1212:
			case 1213:
			case 1214:
			case 1215:
			case 1216:
			case 1217:
			case 1218:
			case 1219:
			case 1220:
			case 1221:
			case 1222:
			case 1223:
			case 1224:
			case 1225:
			case 1226:
			case 1228:
			case 1229:
			case 1230:
			case 1231:
			case 1232:
			case 1236:
			case 1237:
			case 1241:
			case 1242:
			case 1243:
			case 1244:
			case 1245:
			case 1246:
			case 1247:
			case 1248:
			case 1249:
			case 1250:
			case 1252:
			case 1253:
			case 1254:
			case 1255:
			case 1256:
			case 1257:
			case 1258:
			case 1259:
			case 1260:
			case 1261:
			case 1262:
			case 1263:
			case 1264:
			case 1265:
			case 1266:
			case 1267:
			case 1268:
			case 1269:
			case 1270:
			case 1271:
			case 1272:
			case 1273:
			case 1274:
			case 1275:
			case 1276:
			case 1277:
			case 1278:
			case 1279:
			case 1280:
			case 1281:
			case 1282:
			case 1283:
			case 1284:
			case 1285:
			case 1286:
			case 1287:
			case 1288:
			case 1289:
			case 1290:
			case 1291:
			case 1292:
			case 1293:
			case 1294:
			case 1295:
			case 1296:
			case 1297:
			case 1298:
			case 1299:
			case 1300:
			case 1301:
			case 1302:
			case 1303:
			case 1304:
			case 1305:
			case 1306:
			case 1308:
			case 1309:
			case 1310:
			case 1311:
			case 1312:
			case 1313:
			case 1314:
			case 1315:
			case 1316:
			case 1317:
			case 1318:
			case 1319:
			case 1320:
			case 1321:
			case 1322:
			case 1323:
			case 1325:
			case 1326:
			case 1327:
			case 1328:
			case 1329:
			case 1330:
			case 1331:
			case 1332:
			case 1333:
			case 1334:
			case 1335:
			case 1336:
			case 1337:
			case 1338:
			case 1339:
			case 1340:
			case 1341:
			case 1342:
			case 1343:
			case 1344:
			case 1345:
			case 1346:
			case 1347:
			case 1348:
			case 1349:
			case 1350:
			case 1351:
			case 1352:
			case 1353:
			case 1354:
			case 1355:
			case 1356:
			case 1357:
			case 1358:
			case 1359:
			case 1360:
			case 1361:
			case 1362:
			case 1363:
			case 1364:
			case 1365:
			case 1366:
			case 1367:
			case 1368:
			case 1369:
			case 1370:
			case 1371:
			case 1372:
			case 1373:
			case 1374:
			case 1375:
			case 1376:
			case 1377:
			case 1378:
			case 1379:
			case 1380:
			case 1381:
			case 1382:
			case 1383:
			case 1384:
			case 1385:
			case 1386:
			case 1387:
			case 1388:
			case 1389:
			case 1390:
			case 1391:
			case 1392:
			case 1393:
			case 1394:
			case 1395:
			case 1396:
			case 1397:
			case 1399:
			case 1400:
			case 1401:
			case 1402:
			case 1403:
			case 1404:
			case 1405:
			case 1406:
			case 1407:
			case 1408:
			case 1409:
			case 1410:
			case 1411:
			case 1412:
			case 1413:
			case 1414:
			case 1416:
			case 1417:
			case 1418:
			case 1419:
			case 1420:
			case 1421:
			case 1422:
			case 1423:
			case 1424:
			case 1425:
			case 1426:
			case 1427:
			case 1428:
			case 1429:
			case 1430:
			case 1431:
			case 1432:
			case 1433:
			case 1435:
			case 1436:
			case 1437:
			case 1438:
			case 1439:
			case 1440:
			case 1441:
			case 1442:
			case 1443:
			case 1444:
			case 1445:
			case 1446:
			case 1447:
			case 1448:
			case 1449:
			case 1450:
			case 1451:
			case 1452:
			case 1453:
			case 1454:
			case 1455:
			case 1456:
			case 1457:
			case 1458:
			case 1459:
			case 1460:
			case 1461:
			case 1462:
			case 1463:
			case 1464:
			case 1465:
			case 1466:
			case 1467:
			case 1468:
			case 1469:
			case 1470:
			case 1471:
			case 1472:
			case 1473:
			case 1474:
			case 1475:
			case 1476:
			case 1477:
			case 1478:
			case 1479:
			case 1480:
			case 1481:
			case 1482:
			case 1483:
			case 1484:
			case 1485:
			case 1486:
			case 1487:
			case 1488:
			case 1489:
			case 1491:
			case 1492:
			case 1493:
			case 1494:
			case 1495:
			case 1496:
			case 1497:
			case 1499:
			case 1500:
			case 1501:
			case 1502:
			case 1503:
			case 1504:
			case 1505:
			case 1506:
			case 1507:
			case 1508:
			case 1509:
			case 1510:
			case 1511:
			case 1512:
			case 1513:
			case 1514:
			case 1515:
			case 1516:
			case 1518:
			case 1519:
			case 1520:
			case 1521:
			case 1522:
			case 1523:
			case 1524:
			case 1525:
			case 1526:
			case 1527:
			case 1528:
			case 1529:
			case 1530:
			case 1531:
			case 1532:
			case 1533:
			case 1534:
			case 1536:
			case 1537:
			case 1538:
			case 1539:
			case 1540:
			case 1541:
			case 1542:
			case 1543:
			case 1544:
			case 1545:
			case 1546:
			case 1547:
			case 1548:
			case 1549:
			case 1550:
			case 1551:
			case 1552:
			case 1553:
			case 1554:
			case 1555:
			case 1556:
			case 1557:
			case 1558:
			case 1559:
			case 1560:
			case 1561:
			case 1562:
			case 1563:
			case 1564:
			case 1565:
			case 1566:
			case 1567:
			case 1568:
			case 1570:
			case 1571:
			case 1572:
			case 1573:
			case 1574:
			case 1575:
			case 1576:
			case 1577:
			case 1578:
			case 1579:
			case 1580:
			case 1581:
			case 1582:
			case 1583:
			case 1584:
			case 1585:
			case 1586:
			case 1587:
			case 1588:
			case 1589:
			case 1590:
			case 1591:
			case 1592:
			case 1593:
			case 1594:
			case 1595:
			case 1596:
			case 1597:
			case 1598:
			case 1599:
			case 1600:
			case 1601:
			case 1602:
			case 1603:
			case 1604:
			case 1605:
			case 1606:
			case 1607:
			case 1608:
			case 1609:
			case 1610:
			case 1611:
			case 1612:
			case 1613:
			case 1614:
			case 1615:
			case 1616:
			case 1617:
			case 1618:
			case 1619:
			case 1620:
			case 1621:
			case 1622:
			case 1623:
			case 1624:
			case 1625:
			case 1626:
			case 1628:
			case 1629:
			case 1630:
			case 1631:
			case 1632:
			case 1633:
			case 1634:
			case 1635:
			case 1636:
			case 1637:
			case 1638:
			case 1639:
			case 1640:
			case 1641:
			case 1642:
			case 1643:
			case 1644:
			case 1645:
			case 1646:
			case 1647:
			case 1648:
			case 1649:
			case 1650:
			case 1651:
			case 1652:
			case 1653:
			case 1654:
			case 1655:
			case 1656:
			case 1657:
			case 1658:
			case 1659:
			case 1660:
			case 1661:
			case 1662:
			case 1663:
			case 1664:
			case 1665:
			case 1666:
			case 1667:
			case 1668:
			case 1669:
			case 1670:
			case 1671:
			case 1672:
			case 1673:
			case 1674:
			case 1675:
			case 1676:
			case 1677:
			case 1678:
			case 1679:
			case 1680:
			case 1681:
			case 1682:
			case 1683:
			case 1684:
			case 1685:
			case 1686:
			case 1687:
			case 1688:
			case 1689:
			case 1690:
			case 1691:
			case 1692:
			case 1693:
			case 1694:
			case 1695:
			case 1696:
			case 1697:
			case 1698:
			case 1699:
			case 1700:
			case 1701:
			case 1702:
			case 1703:
			case 1704:
			case 1705:
			case 1706:
			case 1707:
			case 1708:
			case 1709:
			case 1710:
			case 1711:
			case 1712:
			case 1713:
			case 1714:
			case 1715:
			case 1716:
			case 1717:
			case 1718:
			case 1719:
			case 1720:
			case 1721:
			case 1722:
			case 1723:
			case 1724:
			case 1725:
			case 1726:
			case 1727:
			case 1728:
			case 1729:
			case 1730:
			case 1731:
			case 1732:
			case 1733:
			case 1734:
			case 1735:
			case 1736:
			case 1737:
			case 1738:
			case 1739:
			case 1740:
			case 1741:
			case 1742:
			case 1743:
			case 1744:
			case 1745:
			case 1746:
			case 1747:
			case 1748:
			case 1749:
			case 1750:
			case 1751:
			case 1752:
			case 1753:
			case 1754:
			case 1755:
			case 1756:
			case 1757:
			case 1758:
			case 1759:
			case 1760:
			case 1761:
			case 1762:
			case 1763:
			case 1764:
			case 1765:
			case 1766:
			case 1767:
			case 1768:
			case 1769:
			case 1770:
			case 1771:
			case 1772:
			case 1773:
			case 1774:
			case 1775:
			case 1776:
			case 1777:
			case 1778:
			case 1779:
			case 1780:
			case 1781:
			case 1782:
			case 1783:
			case 1784:
			case 1785:
			case 1786:
			case 1787:
			case 1788:
			case 1789:
			case 1790:
			case 1791:
			case 1792:
			case 1793:
			case 1794:
			case 1795:
			case 1796:
			case 1797:
			case 1798:
			case 1799:
			case 1800:
			case 1801:
			case 1802:
			case 1803:
			case 1804:
			case 1805:
			case 1806:
			case 1807:
			case 1808:
			case 1809:
			case 1810:
			case 1811:
			case 1812:
			case 1813:
			case 1814:
			case 1815:
			case 1816:
			case 1817:
			case 1818:
			case 1819:
			case 1820:
			case 1821:
			case 1822:
			case 1823:
			case 1824:
			case 1825:
			case 1826:
			case 1827:
			case 1828:
			case 1829:
			case 1830:
			case 1831:
			case 1832:
			case 1833:
			case 1834:
			case 1835:
			case 1836:
			case 1837:
			case 1838:
			case 1839:
			case 1840:
			case 1841:
			case 1842:
			case 1843:
			case 1844:
			case 1845:
			case 1846:
			case 1847:
			case 1848:
			case 1849:
			case 1850:
			case 1851:
			case 1852:
			case 1853:
			case 1854:
			case 1855:
			case 1856:
			case 1857:
			case 1858:
			case 1859:
			case 1860:
			case 1861:
			case 1862:
			case 1863:
			case 1864:
			case 1865:
			case 1866:
			case 1867:
			case 1868:
			case 1869:
			case 1870:
			case 1871:
			case 1872:
			case 1873:
			case 1874:
			case 1875:
			case 1876:
			case 1877:
			case 1878:
			case 1879:
			case 1880:
			case 1881:
			case 1882:
			case 1883:
			case 1884:
			case 1885:
			case 1886:
			case 1887:
			case 1888:
			case 1889:
			case 1890:
			case 1891:
			case 1892:
			case 1893:
			case 1894:
			case 1895:
			case 1896:
			case 1897:
			case 1898:
			case 1899:
			case 1900:
			case 1901:
			case 1902:
			case 1903:
			case 1904:
			case 1905:
			case 1906:
			case 1907:
			case 1908:
			case 1909:
			case 1910:
			case 1911:
			case 1912:
			case 1913:
			case 1914:
			case 1915:
			case 1916:
			case 1917:
			case 1918:
			case 1919:
			case 1920:
			case 1921:
			case 1922:
			case 1923:
			case 1924:
			case 1925:
			case 1926:
			case 1927:
			case 1928:
			case 1929:
			case 1930:
			case 1931:
			case 1932:
			case 1933:
			case 1934:
			case 1935:
			case 1936:
			case 1937:
			case 1939:
			case 1940:
			case 1941:
			case 1942:
			case 1943:
			case 1944:
			case 1945:
			case 1946:
			case 1947:
			case 1948:
			case 1949:
			case 1950:
			case 1951:
			case 1952:
			case 1953:
			case 1954:
			case 1955:
			case 1956:
			case 1957:
			case 1958:
			case 1959:
			case 1960:
			case 1961:
			case 1962:
			case 1963:
			case 1965:
			case 1966:
			case 1967:
			case 1968:
			case 1969:
			case 1970:
			case 1971:
			case 1972:
			case 1973:
			case 1974:
			case 1975:
			case 1976:
			case 1977:
			case 1978:
			case 1979:
			case 1980:
			case 1981:
			case 1982:
			case 1983:
			case 1984:
			case 1985:
			case 1986:
			case 1987:
			case 1988:
			case 1989:
			case 1990:
			case 1991:
			case 1992:
			case 1993:
			case 1994:
			case 1995:
			case 1996:
			case 1997:
			case 1998:
			case 1999:
			case 2000:
			case 2003:
			case 2004:
			case 2005:
			case 2006:
			case 2007:
			case 2008:
			case 2009:
			case 2010:
			case 2011:
			case 2012:
			case 2013:
			case 2014:
			case 2015:
			case 2016:
			case 2017:
			case 2018:
			case 2019:
			case 2020:
			case 2021:
			case 2022:
			case 2023:
			case 2024:
			case 2026:
			case 2027:
			case 2028:
			case 2029:
			case 2030:
			case 2031:
			case 2032:
			case 2033:
			case 2034:
			case 2035:
			case 2036:
			case 2037:
			case 2038:
			case 2039:
			case 2040:
			case 2041:
			case 2042:
			case 2043:
			case 2044:
			case 2045:
			case 2046:
			case 2047:
			case 2048:
			case 2049:
			case 2050:
			case 2051:
			case 2052:
			case 2053:
			case 2054:
			case 2055:
			case 2056:
			case 2057:
			case 2058:
			case 2059:
			case 2060:
			case 2061:
			case 2062:
			case 2063:
			case 2064:
			case 2065:
			case 2066:
			case 2067:
			case 2068:
			case 2069:
			case 2070:
			case 2071:
			case 2072:
			case 2074:
			case 2075:
			case 2076:
			case 2077:
			case 2078:
			case 2079:
			case 2080:
			case 2081:
			case 2082:
			case 2083:
			case 2084:
			case 2085:
			case 2086:
			case 2087:
			case 2088:
			case 2089:
			case 2090:
			case 2091:
			case 2092:
			case 2093:
			case 2094:
			case 2095:
			case 2096:
			case 2097:
			case 2098:
			case 2100:
			case 2101:
			case 2102:
			case 2103:
			case 2104:
			case 2105:
			case 2106:
			case 2107:
			case 2108:
			case 2109:
			case 2110:
			case 2111:
			case 2112:
			case 2113:
			case 2115:
			case 2116:
			case 2117:
			case 2118:
			case 2119:
			case 2120:
			case 2122:
			case 2123:
			case 2124:
			case 2125:
			case 2126:
			case 2128:
			case 2129:
			case 2130:
			case 2131:
			case 2132:
			case 2133:
			case 2134:
			case 2135:
			case 2136:
			case 2137:
			case 2138:
			case 2139:
			case 2140:
			case 2141:
			case 2142:
			case 2143:
			case 2145:
			case 2146:
			case 2147:
			case 2148:
			case 2149:
			case 2150:
			case 2151:
			case 2152:
			case 2153:
			case 2154:
			case 2155:
			case 2156:
			case 2157:
			case 2158:
			case 2159:
			case 2160:
			case 2161:
			case 2162:
			case 2163:
			case 2164:
			case 2165:
			case 2166:
			case 2168:
			case 2169:
			case 2170:
			case 2171:
			case 2172:
			case 2173:
			case 2174:
			case 2175:
			case 2176:
			case 2177:
			case 2178:
			case 2179:
			case 2180:
			case 2181:
			case 2182:
			case 2183:
			case 2184:
			case 2185:
			case 2186:
			case 2187:
			case 2188:
			case 2189:
			case 2191:
			case 2192:
			case 2193:
			case 2194:
			case 2195:
			case 2196:
			case 2197:
			case 2198:
			case 2199:
			case 2200:
			case 2201:
			case 2202:
			case 2203:
			case 2204:
			case 2205:
			case 2206:
			case 2207:
			case 2208:
			case 2209:
			case 2210:
			case 2211:
			case 2216:
			case 2220:
			case 2246:
			case 2252:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 11164;
				this.general_element();
				}
				break;
			case 2233:
			case 2240:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 11165;
				this.bind_variable();
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public record_name(): Record_nameContext {
		let localctx: Record_nameContext = new Record_nameContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1418, PlSqlParser.RULE_record_name);
		try {
			this.state = 11170;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 1:
			case 2:
			case 3:
			case 4:
			case 5:
			case 6:
			case 7:
			case 8:
			case 9:
			case 10:
			case 11:
			case 12:
			case 13:
			case 14:
			case 15:
			case 16:
			case 17:
			case 18:
			case 19:
			case 20:
			case 21:
			case 22:
			case 23:
			case 24:
			case 25:
			case 26:
			case 27:
			case 28:
			case 29:
			case 30:
			case 31:
			case 32:
			case 33:
			case 34:
			case 36:
			case 37:
			case 38:
			case 40:
			case 41:
			case 42:
			case 44:
			case 45:
			case 46:
			case 47:
			case 49:
			case 50:
			case 51:
			case 52:
			case 53:
			case 54:
			case 55:
			case 56:
			case 57:
			case 58:
			case 59:
			case 60:
			case 63:
			case 64:
			case 65:
			case 66:
			case 67:
			case 68:
			case 69:
			case 70:
			case 71:
			case 72:
			case 73:
			case 74:
			case 75:
			case 76:
			case 78:
			case 79:
			case 80:
			case 81:
			case 82:
			case 83:
			case 85:
			case 86:
			case 87:
			case 88:
			case 89:
			case 90:
			case 91:
			case 92:
			case 93:
			case 95:
			case 96:
			case 97:
			case 98:
			case 99:
			case 100:
			case 101:
			case 102:
			case 103:
			case 104:
			case 105:
			case 106:
			case 108:
			case 109:
			case 110:
			case 111:
			case 112:
			case 113:
			case 114:
			case 115:
			case 116:
			case 117:
			case 118:
			case 119:
			case 120:
			case 121:
			case 122:
			case 123:
			case 124:
			case 125:
			case 126:
			case 127:
			case 128:
			case 129:
			case 130:
			case 131:
			case 132:
			case 133:
			case 134:
			case 135:
			case 136:
			case 137:
			case 138:
			case 139:
			case 140:
			case 141:
			case 142:
			case 143:
			case 144:
			case 145:
			case 147:
			case 148:
			case 149:
			case 150:
			case 151:
			case 152:
			case 153:
			case 154:
			case 155:
			case 156:
			case 157:
			case 158:
			case 160:
			case 161:
			case 162:
			case 163:
			case 164:
			case 165:
			case 166:
			case 167:
			case 168:
			case 169:
			case 170:
			case 171:
			case 172:
			case 174:
			case 175:
			case 176:
			case 177:
			case 178:
			case 179:
			case 181:
			case 182:
			case 183:
			case 184:
			case 185:
			case 186:
			case 187:
			case 188:
			case 189:
			case 190:
			case 191:
			case 192:
			case 193:
			case 194:
			case 195:
			case 196:
			case 197:
			case 198:
			case 199:
			case 200:
			case 201:
			case 202:
			case 203:
			case 204:
			case 205:
			case 206:
			case 207:
			case 208:
			case 209:
			case 210:
			case 211:
			case 212:
			case 213:
			case 214:
			case 215:
			case 216:
			case 217:
			case 218:
			case 219:
			case 220:
			case 221:
			case 222:
			case 223:
			case 224:
			case 225:
			case 226:
			case 227:
			case 228:
			case 229:
			case 230:
			case 231:
			case 233:
			case 234:
			case 235:
			case 236:
			case 237:
			case 238:
			case 239:
			case 240:
			case 241:
			case 242:
			case 243:
			case 244:
			case 245:
			case 246:
			case 247:
			case 248:
			case 249:
			case 250:
			case 252:
			case 253:
			case 254:
			case 255:
			case 256:
			case 257:
			case 258:
			case 259:
			case 260:
			case 261:
			case 262:
			case 263:
			case 264:
			case 265:
			case 266:
			case 267:
			case 268:
			case 269:
			case 270:
			case 271:
			case 272:
			case 273:
			case 274:
			case 275:
			case 276:
			case 277:
			case 278:
			case 279:
			case 280:
			case 281:
			case 282:
			case 283:
			case 284:
			case 285:
			case 286:
			case 287:
			case 289:
			case 290:
			case 291:
			case 292:
			case 293:
			case 294:
			case 295:
			case 296:
			case 297:
			case 298:
			case 299:
			case 300:
			case 301:
			case 302:
			case 303:
			case 304:
			case 305:
			case 306:
			case 307:
			case 308:
			case 309:
			case 310:
			case 311:
			case 312:
			case 313:
			case 314:
			case 315:
			case 316:
			case 317:
			case 318:
			case 319:
			case 321:
			case 322:
			case 323:
			case 324:
			case 325:
			case 326:
			case 328:
			case 329:
			case 330:
			case 331:
			case 332:
			case 333:
			case 334:
			case 335:
			case 336:
			case 337:
			case 338:
			case 339:
			case 340:
			case 341:
			case 342:
			case 343:
			case 344:
			case 345:
			case 346:
			case 347:
			case 348:
			case 349:
			case 350:
			case 352:
			case 353:
			case 354:
			case 355:
			case 356:
			case 357:
			case 358:
			case 359:
			case 360:
			case 361:
			case 362:
			case 363:
			case 364:
			case 365:
			case 366:
			case 367:
			case 368:
			case 369:
			case 370:
			case 372:
			case 373:
			case 374:
			case 375:
			case 376:
			case 377:
			case 378:
			case 379:
			case 380:
			case 381:
			case 382:
			case 383:
			case 384:
			case 385:
			case 386:
			case 387:
			case 388:
			case 389:
			case 390:
			case 391:
			case 392:
			case 394:
			case 395:
			case 397:
			case 398:
			case 399:
			case 400:
			case 401:
			case 402:
			case 403:
			case 404:
			case 405:
			case 406:
			case 407:
			case 408:
			case 409:
			case 410:
			case 412:
			case 413:
			case 414:
			case 415:
			case 417:
			case 418:
			case 419:
			case 420:
			case 421:
			case 422:
			case 423:
			case 424:
			case 425:
			case 426:
			case 427:
			case 428:
			case 429:
			case 430:
			case 431:
			case 434:
			case 435:
			case 436:
			case 437:
			case 438:
			case 439:
			case 440:
			case 441:
			case 442:
			case 443:
			case 444:
			case 446:
			case 447:
			case 448:
			case 449:
			case 450:
			case 451:
			case 452:
			case 453:
			case 454:
			case 455:
			case 456:
			case 457:
			case 458:
			case 459:
			case 460:
			case 461:
			case 462:
			case 463:
			case 464:
			case 465:
			case 466:
			case 467:
			case 468:
			case 469:
			case 470:
			case 471:
			case 472:
			case 473:
			case 475:
			case 476:
			case 477:
			case 478:
			case 479:
			case 480:
			case 481:
			case 482:
			case 483:
			case 484:
			case 485:
			case 486:
			case 487:
			case 488:
			case 489:
			case 490:
			case 491:
			case 492:
			case 493:
			case 494:
			case 495:
			case 496:
			case 497:
			case 498:
			case 499:
			case 500:
			case 501:
			case 502:
			case 503:
			case 504:
			case 505:
			case 506:
			case 507:
			case 508:
			case 509:
			case 510:
			case 511:
			case 512:
			case 513:
			case 514:
			case 515:
			case 516:
			case 517:
			case 518:
			case 519:
			case 520:
			case 521:
			case 522:
			case 523:
			case 524:
			case 525:
			case 526:
			case 527:
			case 528:
			case 529:
			case 530:
			case 531:
			case 532:
			case 533:
			case 534:
			case 535:
			case 536:
			case 537:
			case 538:
			case 539:
			case 540:
			case 541:
			case 542:
			case 543:
			case 544:
			case 545:
			case 547:
			case 548:
			case 549:
			case 550:
			case 551:
			case 552:
			case 553:
			case 555:
			case 556:
			case 557:
			case 558:
			case 559:
			case 560:
			case 561:
			case 562:
			case 563:
			case 564:
			case 565:
			case 566:
			case 567:
			case 568:
			case 569:
			case 572:
			case 574:
			case 575:
			case 576:
			case 577:
			case 578:
			case 579:
			case 580:
			case 581:
			case 582:
			case 583:
			case 584:
			case 586:
			case 587:
			case 588:
			case 589:
			case 590:
			case 591:
			case 592:
			case 593:
			case 594:
			case 595:
			case 596:
			case 597:
			case 598:
			case 599:
			case 600:
			case 602:
			case 603:
			case 604:
			case 605:
			case 606:
			case 607:
			case 608:
			case 609:
			case 610:
			case 611:
			case 612:
			case 613:
			case 614:
			case 615:
			case 616:
			case 617:
			case 618:
			case 619:
			case 620:
			case 621:
			case 622:
			case 623:
			case 624:
			case 625:
			case 626:
			case 627:
			case 628:
			case 629:
			case 630:
			case 632:
			case 633:
			case 634:
			case 635:
			case 636:
			case 637:
			case 638:
			case 639:
			case 640:
			case 641:
			case 642:
			case 643:
			case 644:
			case 645:
			case 646:
			case 647:
			case 648:
			case 649:
			case 650:
			case 651:
			case 653:
			case 654:
			case 655:
			case 656:
			case 657:
			case 658:
			case 659:
			case 660:
			case 661:
			case 662:
			case 663:
			case 664:
			case 665:
			case 666:
			case 667:
			case 668:
			case 670:
			case 671:
			case 672:
			case 673:
			case 674:
			case 675:
			case 676:
			case 677:
			case 678:
			case 679:
			case 680:
			case 681:
			case 682:
			case 683:
			case 684:
			case 685:
			case 686:
			case 687:
			case 689:
			case 690:
			case 692:
			case 693:
			case 694:
			case 696:
			case 697:
			case 698:
			case 699:
			case 700:
			case 701:
			case 702:
			case 703:
			case 704:
			case 705:
			case 706:
			case 707:
			case 708:
			case 709:
			case 710:
			case 711:
			case 712:
			case 713:
			case 714:
			case 715:
			case 716:
			case 717:
			case 718:
			case 719:
			case 720:
			case 721:
			case 722:
			case 723:
			case 724:
			case 725:
			case 726:
			case 727:
			case 728:
			case 729:
			case 730:
			case 731:
			case 732:
			case 733:
			case 734:
			case 735:
			case 736:
			case 737:
			case 738:
			case 739:
			case 740:
			case 741:
			case 742:
			case 743:
			case 744:
			case 745:
			case 746:
			case 747:
			case 748:
			case 749:
			case 750:
			case 751:
			case 752:
			case 753:
			case 754:
			case 755:
			case 756:
			case 758:
			case 759:
			case 760:
			case 761:
			case 762:
			case 763:
			case 764:
			case 765:
			case 766:
			case 767:
			case 768:
			case 769:
			case 770:
			case 771:
			case 772:
			case 773:
			case 774:
			case 775:
			case 777:
			case 778:
			case 779:
			case 780:
			case 781:
			case 782:
			case 783:
			case 784:
			case 785:
			case 786:
			case 787:
			case 788:
			case 789:
			case 790:
			case 791:
			case 792:
			case 793:
			case 794:
			case 795:
			case 796:
			case 797:
			case 798:
			case 799:
			case 800:
			case 801:
			case 802:
			case 803:
			case 804:
			case 805:
			case 806:
			case 807:
			case 808:
			case 809:
			case 810:
			case 811:
			case 812:
			case 813:
			case 814:
			case 815:
			case 816:
			case 817:
			case 818:
			case 819:
			case 820:
			case 821:
			case 822:
			case 823:
			case 824:
			case 825:
			case 826:
			case 827:
			case 828:
			case 829:
			case 830:
			case 831:
			case 832:
			case 833:
			case 834:
			case 835:
			case 836:
			case 837:
			case 838:
			case 839:
			case 840:
			case 841:
			case 843:
			case 844:
			case 845:
			case 846:
			case 847:
			case 848:
			case 849:
			case 850:
			case 851:
			case 852:
			case 853:
			case 854:
			case 855:
			case 856:
			case 857:
			case 858:
			case 859:
			case 861:
			case 862:
			case 863:
			case 864:
			case 865:
			case 866:
			case 867:
			case 868:
			case 869:
			case 870:
			case 871:
			case 872:
			case 873:
			case 874:
			case 875:
			case 876:
			case 877:
			case 878:
			case 879:
			case 880:
			case 881:
			case 882:
			case 883:
			case 884:
			case 885:
			case 886:
			case 888:
			case 889:
			case 890:
			case 891:
			case 892:
			case 893:
			case 894:
			case 895:
			case 896:
			case 897:
			case 898:
			case 899:
			case 900:
			case 901:
			case 902:
			case 903:
			case 904:
			case 905:
			case 906:
			case 907:
			case 908:
			case 909:
			case 910:
			case 911:
			case 912:
			case 913:
			case 914:
			case 915:
			case 916:
			case 917:
			case 918:
			case 919:
			case 920:
			case 921:
			case 922:
			case 923:
			case 924:
			case 925:
			case 926:
			case 927:
			case 928:
			case 929:
			case 930:
			case 931:
			case 932:
			case 933:
			case 934:
			case 935:
			case 936:
			case 937:
			case 938:
			case 939:
			case 940:
			case 941:
			case 942:
			case 943:
			case 944:
			case 945:
			case 946:
			case 947:
			case 948:
			case 949:
			case 950:
			case 951:
			case 952:
			case 954:
			case 955:
			case 956:
			case 957:
			case 958:
			case 959:
			case 960:
			case 961:
			case 962:
			case 963:
			case 964:
			case 965:
			case 966:
			case 967:
			case 968:
			case 969:
			case 970:
			case 971:
			case 972:
			case 973:
			case 974:
			case 975:
			case 976:
			case 977:
			case 978:
			case 979:
			case 980:
			case 981:
			case 982:
			case 983:
			case 984:
			case 985:
			case 986:
			case 987:
			case 988:
			case 989:
			case 990:
			case 991:
			case 992:
			case 993:
			case 994:
			case 995:
			case 996:
			case 997:
			case 998:
			case 999:
			case 1000:
			case 1001:
			case 1002:
			case 1003:
			case 1004:
			case 1005:
			case 1006:
			case 1007:
			case 1008:
			case 1009:
			case 1010:
			case 1011:
			case 1012:
			case 1013:
			case 1014:
			case 1015:
			case 1016:
			case 1017:
			case 1018:
			case 1019:
			case 1020:
			case 1021:
			case 1022:
			case 1023:
			case 1024:
			case 1025:
			case 1026:
			case 1027:
			case 1028:
			case 1029:
			case 1030:
			case 1031:
			case 1032:
			case 1033:
			case 1034:
			case 1035:
			case 1036:
			case 1037:
			case 1038:
			case 1039:
			case 1040:
			case 1041:
			case 1042:
			case 1043:
			case 1044:
			case 1045:
			case 1046:
			case 1047:
			case 1048:
			case 1049:
			case 1050:
			case 1051:
			case 1052:
			case 1053:
			case 1054:
			case 1055:
			case 1056:
			case 1057:
			case 1058:
			case 1059:
			case 1060:
			case 1061:
			case 1062:
			case 1063:
			case 1064:
			case 1065:
			case 1066:
			case 1067:
			case 1068:
			case 1069:
			case 1070:
			case 1071:
			case 1072:
			case 1074:
			case 1075:
			case 1076:
			case 1077:
			case 1078:
			case 1079:
			case 1080:
			case 1081:
			case 1082:
			case 1083:
			case 1084:
			case 1085:
			case 1086:
			case 1087:
			case 1089:
			case 1090:
			case 1091:
			case 1092:
			case 1093:
			case 1094:
			case 1095:
			case 1096:
			case 1098:
			case 1099:
			case 1100:
			case 1101:
			case 1102:
			case 1103:
			case 1104:
			case 1105:
			case 1106:
			case 1107:
			case 1108:
			case 1109:
			case 1110:
			case 1111:
			case 1112:
			case 1113:
			case 1114:
			case 1116:
			case 1117:
			case 1118:
			case 1119:
			case 1120:
			case 1121:
			case 1122:
			case 1123:
			case 1124:
			case 1125:
			case 1127:
			case 1129:
			case 1130:
			case 1131:
			case 1132:
			case 1133:
			case 1134:
			case 1135:
			case 1136:
			case 1137:
			case 1138:
			case 1139:
			case 1140:
			case 1142:
			case 1143:
			case 1144:
			case 1145:
			case 1146:
			case 1147:
			case 1148:
			case 1149:
			case 1150:
			case 1151:
			case 1152:
			case 1153:
			case 1154:
			case 1155:
			case 1156:
			case 1157:
			case 1158:
			case 1159:
			case 1160:
			case 1161:
			case 1162:
			case 1163:
			case 1164:
			case 1165:
			case 1166:
			case 1167:
			case 1169:
			case 1170:
			case 1171:
			case 1173:
			case 1174:
			case 1175:
			case 1176:
			case 1177:
			case 1178:
			case 1179:
			case 1180:
			case 1181:
			case 1182:
			case 1183:
			case 1184:
			case 1185:
			case 1186:
			case 1187:
			case 1188:
			case 1189:
			case 1190:
			case 1191:
			case 1192:
			case 1193:
			case 1194:
			case 1195:
			case 1197:
			case 1198:
			case 1199:
			case 1200:
			case 1201:
			case 1202:
			case 1203:
			case 1204:
			case 1205:
			case 1206:
			case 1207:
			case 1208:
			case 1209:
			case 1210:
			case 1211:
			case 1212:
			case 1213:
			case 1214:
			case 1215:
			case 1216:
			case 1217:
			case 1218:
			case 1219:
			case 1220:
			case 1221:
			case 1222:
			case 1223:
			case 1224:
			case 1225:
			case 1226:
			case 1228:
			case 1229:
			case 1230:
			case 1231:
			case 1232:
			case 1236:
			case 1237:
			case 1241:
			case 1242:
			case 1243:
			case 1244:
			case 1245:
			case 1246:
			case 1247:
			case 1248:
			case 1249:
			case 1250:
			case 1252:
			case 1253:
			case 1254:
			case 1255:
			case 1256:
			case 1257:
			case 1258:
			case 1259:
			case 1260:
			case 1261:
			case 1262:
			case 1263:
			case 1264:
			case 1265:
			case 1266:
			case 1267:
			case 1268:
			case 1269:
			case 1270:
			case 1271:
			case 1272:
			case 1273:
			case 1274:
			case 1275:
			case 1276:
			case 1277:
			case 1278:
			case 1279:
			case 1280:
			case 1281:
			case 1282:
			case 1283:
			case 1284:
			case 1285:
			case 1286:
			case 1287:
			case 1288:
			case 1289:
			case 1290:
			case 1291:
			case 1292:
			case 1293:
			case 1294:
			case 1295:
			case 1296:
			case 1297:
			case 1298:
			case 1299:
			case 1300:
			case 1301:
			case 1302:
			case 1303:
			case 1304:
			case 1305:
			case 1306:
			case 1308:
			case 1309:
			case 1310:
			case 1311:
			case 1312:
			case 1313:
			case 1314:
			case 1315:
			case 1316:
			case 1317:
			case 1318:
			case 1319:
			case 1320:
			case 1321:
			case 1322:
			case 1323:
			case 1325:
			case 1326:
			case 1327:
			case 1328:
			case 1329:
			case 1330:
			case 1331:
			case 1332:
			case 1333:
			case 1334:
			case 1335:
			case 1336:
			case 1337:
			case 1338:
			case 1339:
			case 1340:
			case 1341:
			case 1342:
			case 1343:
			case 1344:
			case 1345:
			case 1346:
			case 1347:
			case 1348:
			case 1349:
			case 1350:
			case 1351:
			case 1352:
			case 1353:
			case 1354:
			case 1355:
			case 1356:
			case 1357:
			case 1358:
			case 1359:
			case 1360:
			case 1361:
			case 1362:
			case 1363:
			case 1364:
			case 1365:
			case 1366:
			case 1367:
			case 1368:
			case 1369:
			case 1370:
			case 1371:
			case 1372:
			case 1373:
			case 1374:
			case 1375:
			case 1376:
			case 1377:
			case 1378:
			case 1379:
			case 1380:
			case 1381:
			case 1382:
			case 1383:
			case 1384:
			case 1385:
			case 1386:
			case 1387:
			case 1388:
			case 1389:
			case 1390:
			case 1391:
			case 1392:
			case 1393:
			case 1394:
			case 1395:
			case 1396:
			case 1397:
			case 1399:
			case 1400:
			case 1401:
			case 1402:
			case 1403:
			case 1404:
			case 1405:
			case 1406:
			case 1407:
			case 1408:
			case 1409:
			case 1410:
			case 1411:
			case 1412:
			case 1413:
			case 1414:
			case 1416:
			case 1417:
			case 1418:
			case 1419:
			case 1420:
			case 1421:
			case 1422:
			case 1423:
			case 1424:
			case 1425:
			case 1426:
			case 1427:
			case 1428:
			case 1429:
			case 1430:
			case 1431:
			case 1432:
			case 1433:
			case 1435:
			case 1436:
			case 1437:
			case 1438:
			case 1439:
			case 1440:
			case 1441:
			case 1442:
			case 1443:
			case 1444:
			case 1445:
			case 1446:
			case 1447:
			case 1448:
			case 1449:
			case 1450:
			case 1451:
			case 1452:
			case 1453:
			case 1454:
			case 1455:
			case 1456:
			case 1457:
			case 1458:
			case 1459:
			case 1460:
			case 1461:
			case 1462:
			case 1463:
			case 1464:
			case 1465:
			case 1466:
			case 1467:
			case 1468:
			case 1469:
			case 1470:
			case 1471:
			case 1472:
			case 1473:
			case 1474:
			case 1475:
			case 1476:
			case 1477:
			case 1478:
			case 1479:
			case 1480:
			case 1481:
			case 1482:
			case 1483:
			case 1484:
			case 1485:
			case 1486:
			case 1487:
			case 1488:
			case 1489:
			case 1491:
			case 1492:
			case 1493:
			case 1494:
			case 1495:
			case 1496:
			case 1497:
			case 1499:
			case 1500:
			case 1501:
			case 1502:
			case 1503:
			case 1504:
			case 1505:
			case 1506:
			case 1507:
			case 1508:
			case 1509:
			case 1510:
			case 1511:
			case 1512:
			case 1513:
			case 1514:
			case 1515:
			case 1516:
			case 1518:
			case 1519:
			case 1520:
			case 1521:
			case 1522:
			case 1523:
			case 1524:
			case 1525:
			case 1526:
			case 1527:
			case 1528:
			case 1529:
			case 1530:
			case 1531:
			case 1532:
			case 1533:
			case 1534:
			case 1536:
			case 1537:
			case 1538:
			case 1539:
			case 1540:
			case 1541:
			case 1542:
			case 1543:
			case 1544:
			case 1545:
			case 1546:
			case 1547:
			case 1548:
			case 1549:
			case 1550:
			case 1551:
			case 1552:
			case 1553:
			case 1554:
			case 1555:
			case 1556:
			case 1557:
			case 1558:
			case 1559:
			case 1560:
			case 1561:
			case 1562:
			case 1563:
			case 1564:
			case 1565:
			case 1566:
			case 1567:
			case 1568:
			case 1570:
			case 1571:
			case 1572:
			case 1573:
			case 1574:
			case 1575:
			case 1576:
			case 1577:
			case 1578:
			case 1579:
			case 1580:
			case 1581:
			case 1582:
			case 1583:
			case 1584:
			case 1585:
			case 1586:
			case 1587:
			case 1588:
			case 1589:
			case 1590:
			case 1591:
			case 1592:
			case 1593:
			case 1594:
			case 1595:
			case 1596:
			case 1597:
			case 1598:
			case 1599:
			case 1600:
			case 1601:
			case 1602:
			case 1603:
			case 1604:
			case 1605:
			case 1606:
			case 1607:
			case 1608:
			case 1609:
			case 1610:
			case 1611:
			case 1612:
			case 1613:
			case 1614:
			case 1615:
			case 1616:
			case 1617:
			case 1618:
			case 1619:
			case 1620:
			case 1621:
			case 1622:
			case 1623:
			case 1624:
			case 1625:
			case 1626:
			case 1628:
			case 1629:
			case 1630:
			case 1631:
			case 1632:
			case 1633:
			case 1634:
			case 1635:
			case 1636:
			case 1637:
			case 1638:
			case 1639:
			case 1640:
			case 1641:
			case 1642:
			case 1643:
			case 1644:
			case 1645:
			case 1646:
			case 1647:
			case 1648:
			case 1649:
			case 1650:
			case 1651:
			case 1652:
			case 1653:
			case 1654:
			case 1655:
			case 1656:
			case 1657:
			case 1658:
			case 1659:
			case 1660:
			case 1661:
			case 1662:
			case 1663:
			case 1664:
			case 1665:
			case 1666:
			case 1667:
			case 1668:
			case 1669:
			case 1670:
			case 1671:
			case 1672:
			case 1673:
			case 1674:
			case 1675:
			case 1676:
			case 1677:
			case 1678:
			case 1679:
			case 1680:
			case 1681:
			case 1682:
			case 1683:
			case 1684:
			case 1685:
			case 1686:
			case 1687:
			case 1688:
			case 1689:
			case 1690:
			case 1691:
			case 1692:
			case 1693:
			case 1694:
			case 1695:
			case 1696:
			case 1697:
			case 1698:
			case 1699:
			case 1700:
			case 1701:
			case 1702:
			case 1703:
			case 1704:
			case 1705:
			case 1706:
			case 1707:
			case 1708:
			case 1709:
			case 1710:
			case 1711:
			case 1712:
			case 1713:
			case 1714:
			case 1715:
			case 1716:
			case 1717:
			case 1718:
			case 1719:
			case 1720:
			case 1721:
			case 1722:
			case 1723:
			case 1724:
			case 1725:
			case 1726:
			case 1727:
			case 1728:
			case 1729:
			case 1730:
			case 1731:
			case 1732:
			case 1733:
			case 1734:
			case 1735:
			case 1736:
			case 1737:
			case 1738:
			case 1739:
			case 1740:
			case 1741:
			case 1742:
			case 1743:
			case 1744:
			case 1745:
			case 1746:
			case 1747:
			case 1748:
			case 1749:
			case 1750:
			case 1751:
			case 1752:
			case 1753:
			case 1754:
			case 1755:
			case 1756:
			case 1757:
			case 1758:
			case 1759:
			case 1760:
			case 1761:
			case 1762:
			case 1763:
			case 1764:
			case 1765:
			case 1766:
			case 1767:
			case 1768:
			case 1769:
			case 1770:
			case 1771:
			case 1772:
			case 1773:
			case 1774:
			case 1775:
			case 1776:
			case 1777:
			case 1778:
			case 1779:
			case 1780:
			case 1781:
			case 1782:
			case 1783:
			case 1784:
			case 1785:
			case 1786:
			case 1787:
			case 1788:
			case 1789:
			case 1790:
			case 1791:
			case 1792:
			case 1793:
			case 1794:
			case 1795:
			case 1796:
			case 1797:
			case 1798:
			case 1799:
			case 1800:
			case 1801:
			case 1802:
			case 1803:
			case 1804:
			case 1805:
			case 1806:
			case 1807:
			case 1808:
			case 1809:
			case 1810:
			case 1811:
			case 1812:
			case 1813:
			case 1814:
			case 1815:
			case 1816:
			case 1817:
			case 1818:
			case 1819:
			case 1820:
			case 1821:
			case 1822:
			case 1823:
			case 1824:
			case 1825:
			case 1826:
			case 1827:
			case 1828:
			case 1829:
			case 1830:
			case 1831:
			case 1832:
			case 1833:
			case 1834:
			case 1835:
			case 1836:
			case 1837:
			case 1838:
			case 1839:
			case 1840:
			case 1841:
			case 1842:
			case 1843:
			case 1844:
			case 1845:
			case 1846:
			case 1847:
			case 1848:
			case 1849:
			case 1850:
			case 1851:
			case 1852:
			case 1853:
			case 1854:
			case 1855:
			case 1856:
			case 1857:
			case 1858:
			case 1859:
			case 1860:
			case 1861:
			case 1862:
			case 1863:
			case 1864:
			case 1865:
			case 1866:
			case 1867:
			case 1868:
			case 1869:
			case 1870:
			case 1871:
			case 1872:
			case 1873:
			case 1874:
			case 1875:
			case 1876:
			case 1877:
			case 1878:
			case 1879:
			case 1880:
			case 1881:
			case 1882:
			case 1883:
			case 1884:
			case 1885:
			case 1886:
			case 1887:
			case 1888:
			case 1889:
			case 1890:
			case 1891:
			case 1892:
			case 1893:
			case 1894:
			case 1895:
			case 1896:
			case 1897:
			case 1898:
			case 1899:
			case 1900:
			case 1901:
			case 1902:
			case 1903:
			case 1904:
			case 1905:
			case 1906:
			case 1907:
			case 1908:
			case 1909:
			case 1910:
			case 1911:
			case 1912:
			case 1913:
			case 1914:
			case 1915:
			case 1916:
			case 1917:
			case 1918:
			case 1919:
			case 1920:
			case 1921:
			case 1922:
			case 1923:
			case 1924:
			case 1925:
			case 1926:
			case 1927:
			case 1928:
			case 1929:
			case 1930:
			case 1931:
			case 1932:
			case 1933:
			case 1934:
			case 1935:
			case 1936:
			case 1937:
			case 1939:
			case 1940:
			case 1941:
			case 1942:
			case 1943:
			case 1944:
			case 1945:
			case 1946:
			case 1947:
			case 1948:
			case 1949:
			case 1950:
			case 1951:
			case 1952:
			case 1953:
			case 1954:
			case 1955:
			case 1956:
			case 1957:
			case 1958:
			case 1959:
			case 1960:
			case 1961:
			case 1962:
			case 1963:
			case 1965:
			case 1966:
			case 1967:
			case 1968:
			case 1969:
			case 1970:
			case 1971:
			case 1972:
			case 1973:
			case 1974:
			case 1975:
			case 1976:
			case 1977:
			case 1978:
			case 1979:
			case 1980:
			case 1981:
			case 1982:
			case 1983:
			case 1984:
			case 1985:
			case 1986:
			case 1987:
			case 1988:
			case 1989:
			case 1990:
			case 1991:
			case 1992:
			case 1993:
			case 1994:
			case 1995:
			case 1996:
			case 1997:
			case 1998:
			case 1999:
			case 2000:
			case 2003:
			case 2004:
			case 2005:
			case 2006:
			case 2007:
			case 2008:
			case 2009:
			case 2010:
			case 2011:
			case 2012:
			case 2013:
			case 2014:
			case 2015:
			case 2016:
			case 2017:
			case 2018:
			case 2019:
			case 2020:
			case 2021:
			case 2022:
			case 2023:
			case 2024:
			case 2026:
			case 2027:
			case 2028:
			case 2029:
			case 2030:
			case 2031:
			case 2032:
			case 2033:
			case 2034:
			case 2035:
			case 2036:
			case 2037:
			case 2038:
			case 2039:
			case 2040:
			case 2041:
			case 2042:
			case 2043:
			case 2044:
			case 2045:
			case 2046:
			case 2047:
			case 2048:
			case 2049:
			case 2050:
			case 2051:
			case 2052:
			case 2053:
			case 2054:
			case 2055:
			case 2056:
			case 2057:
			case 2058:
			case 2059:
			case 2060:
			case 2061:
			case 2062:
			case 2063:
			case 2064:
			case 2065:
			case 2066:
			case 2067:
			case 2068:
			case 2069:
			case 2070:
			case 2071:
			case 2072:
			case 2074:
			case 2075:
			case 2076:
			case 2077:
			case 2078:
			case 2079:
			case 2080:
			case 2081:
			case 2082:
			case 2083:
			case 2084:
			case 2085:
			case 2086:
			case 2087:
			case 2088:
			case 2089:
			case 2090:
			case 2091:
			case 2092:
			case 2093:
			case 2094:
			case 2095:
			case 2096:
			case 2097:
			case 2098:
			case 2100:
			case 2101:
			case 2102:
			case 2103:
			case 2104:
			case 2105:
			case 2106:
			case 2107:
			case 2108:
			case 2109:
			case 2110:
			case 2111:
			case 2112:
			case 2113:
			case 2115:
			case 2116:
			case 2117:
			case 2118:
			case 2119:
			case 2120:
			case 2122:
			case 2123:
			case 2124:
			case 2125:
			case 2126:
			case 2128:
			case 2129:
			case 2130:
			case 2131:
			case 2132:
			case 2133:
			case 2134:
			case 2135:
			case 2136:
			case 2137:
			case 2138:
			case 2139:
			case 2140:
			case 2141:
			case 2142:
			case 2143:
			case 2145:
			case 2146:
			case 2147:
			case 2148:
			case 2149:
			case 2150:
			case 2151:
			case 2152:
			case 2153:
			case 2154:
			case 2155:
			case 2156:
			case 2157:
			case 2158:
			case 2159:
			case 2160:
			case 2161:
			case 2162:
			case 2163:
			case 2164:
			case 2165:
			case 2166:
			case 2168:
			case 2169:
			case 2170:
			case 2171:
			case 2172:
			case 2173:
			case 2174:
			case 2175:
			case 2176:
			case 2177:
			case 2178:
			case 2179:
			case 2180:
			case 2181:
			case 2182:
			case 2183:
			case 2184:
			case 2185:
			case 2186:
			case 2187:
			case 2188:
			case 2189:
			case 2191:
			case 2192:
			case 2193:
			case 2194:
			case 2195:
			case 2196:
			case 2197:
			case 2198:
			case 2199:
			case 2200:
			case 2201:
			case 2202:
			case 2203:
			case 2204:
			case 2205:
			case 2206:
			case 2207:
			case 2208:
			case 2209:
			case 2210:
			case 2211:
			case 2216:
			case 2220:
			case 2246:
			case 2252:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 11168;
				this.identifier();
				}
				break;
			case 2233:
			case 2240:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 11169;
				this.bind_variable();
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public collection_name(): Collection_nameContext {
		let localctx: Collection_nameContext = new Collection_nameContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1420, PlSqlParser.RULE_collection_name);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 11172;
			this.identifier();
			this.state = 11175;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===2216) {
				{
				this.state = 11173;
				this.match(PlSqlParser.PERIOD);
				this.state = 11174;
				this.id_expression();
				}
			}

			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public link_name(): Link_nameContext {
		let localctx: Link_nameContext = new Link_nameContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1422, PlSqlParser.RULE_link_name);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 11177;
			this.identifier();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public column_name(): Column_nameContext {
		let localctx: Column_nameContext = new Column_nameContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1424, PlSqlParser.RULE_column_name);
		try {
			let _alt: number;
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 11179;
			this.identifier();
			this.state = 11184;
			this._errHandler.sync(this);
			_alt = this._interp.adaptivePredict(this._input, 1538, this._ctx);
			while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) {
				if (_alt === 1) {
					{
					{
					this.state = 11180;
					this.match(PlSqlParser.PERIOD);
					this.state = 11181;
					this.id_expression();
					}
					}
				}
				this.state = 11186;
				this._errHandler.sync(this);
				_alt = this._interp.adaptivePredict(this._input, 1538, this._ctx);
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public tableview_name(): Tableview_nameContext {
		let localctx: Tableview_nameContext = new Tableview_nameContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1426, PlSqlParser.RULE_tableview_name);
		try {
			this.state = 11201;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1542, this._ctx) ) {
			case 1:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 11187;
				this.identifier();
				this.state = 11190;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 1539, this._ctx) ) {
				case 1:
					{
					this.state = 11188;
					this.match(PlSqlParser.PERIOD);
					this.state = 11189;
					this.id_expression();
					}
					break;
				}
				this.state = 11195;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 1540, this._ctx) ) {
				case 1:
					{
					this.state = 11192;
					this.match(PlSqlParser.AT_SIGN);
					this.state = 11193;
					this.link_name();
					}
					break;
				case 2:
					{
					this.state = 11194;
					this.partition_extension_clause();
					}
					break;
				}
				}
				break;
			case 2:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 11197;
				this.xmltable();
				this.state = 11199;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 1541, this._ctx) ) {
				case 1:
					{
					this.state = 11198;
					this.outer_join_sign();
					}
					break;
				}
				}
				break;
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public xmltable(): XmltableContext {
		let localctx: XmltableContext = new XmltableContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1428, PlSqlParser.RULE_xmltable);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 11203;
			this.match(PlSqlParser.XMLTABLE);
			this.state = 11204;
			this.match(PlSqlParser.LEFT_PAREN);
			this.state = 11208;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1543, this._ctx) ) {
			case 1:
				{
				this.state = 11205;
				this.xml_namespaces_clause();
				this.state = 11206;
				this.match(PlSqlParser.COMMA);
				}
				break;
			}
			this.state = 11210;
			this.concatenation(0);
			this.state = 11212;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===1211) {
				{
				this.state = 11211;
				this.xml_passing_clause();
				}
			}

			this.state = 11223;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===214) {
				{
				this.state = 11214;
				this.match(PlSqlParser.COLUMNS);
				this.state = 11215;
				this.xml_table_column();
				this.state = 11220;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===2229) {
					{
					{
					this.state = 11216;
					this.match(PlSqlParser.COMMA);
					this.state = 11217;
					this.xml_table_column();
					}
					}
					this.state = 11222;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				}
			}

			this.state = 11225;
			this.match(PlSqlParser.RIGHT_PAREN);
			this.state = 11228;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1547, this._ctx) ) {
			case 1:
				{
				this.state = 11226;
				this.match(PlSqlParser.PERIOD);
				this.state = 11227;
				this.general_element_part();
				}
				break;
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public char_set_name(): Char_set_nameContext {
		let localctx: Char_set_nameContext = new Char_set_nameContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1430, PlSqlParser.RULE_char_set_name);
		try {
			let _alt: number;
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 11230;
			this.id_expression();
			this.state = 11235;
			this._errHandler.sync(this);
			_alt = this._interp.adaptivePredict(this._input, 1548, this._ctx);
			while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) {
				if (_alt === 1) {
					{
					{
					this.state = 11231;
					this.match(PlSqlParser.PERIOD);
					this.state = 11232;
					this.id_expression();
					}
					}
				}
				this.state = 11237;
				this._errHandler.sync(this);
				_alt = this._interp.adaptivePredict(this._input, 1548, this._ctx);
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public synonym_name(): Synonym_nameContext {
		let localctx: Synonym_nameContext = new Synonym_nameContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1432, PlSqlParser.RULE_synonym_name);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 11238;
			this.identifier();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public schema_object_name(): Schema_object_nameContext {
		let localctx: Schema_object_nameContext = new Schema_object_nameContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1434, PlSqlParser.RULE_schema_object_name);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 11240;
			this.id_expression();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public dir_object_name(): Dir_object_nameContext {
		let localctx: Dir_object_nameContext = new Dir_object_nameContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1436, PlSqlParser.RULE_dir_object_name);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 11242;
			this.id_expression();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public user_object_name(): User_object_nameContext {
		let localctx: User_object_nameContext = new User_object_nameContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1438, PlSqlParser.RULE_user_object_name);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 11244;
			this.id_expression();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public grant_object_name(): Grant_object_nameContext {
		let localctx: Grant_object_nameContext = new Grant_object_nameContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1440, PlSqlParser.RULE_grant_object_name);
		let _la: number;
		try {
			this.state = 11270;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1550, this._ctx) ) {
			case 1:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 11246;
				this.tableview_name();
				}
				break;
			case 2:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 11247;
				this.match(PlSqlParser.USER);
				this.state = 11248;
				this.user_object_name();
				this.state = 11253;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===2229) {
					{
					{
					this.state = 11249;
					this.match(PlSqlParser.COMMA);
					this.state = 11250;
					this.user_object_name();
					}
					}
					this.state = 11255;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				}
				break;
			case 3:
				this.enterOuterAlt(localctx, 3);
				{
				this.state = 11256;
				this.match(PlSqlParser.DIRECTORY);
				this.state = 11257;
				this.dir_object_name();
				}
				break;
			case 4:
				this.enterOuterAlt(localctx, 4);
				{
				this.state = 11258;
				this.match(PlSqlParser.EDITION);
				this.state = 11259;
				this.schema_object_name();
				}
				break;
			case 5:
				this.enterOuterAlt(localctx, 5);
				{
				this.state = 11260;
				this.match(PlSqlParser.MINING);
				this.state = 11261;
				this.match(PlSqlParser.MODEL);
				this.state = 11262;
				this.schema_object_name();
				}
				break;
			case 6:
				this.enterOuterAlt(localctx, 6);
				{
				this.state = 11263;
				this.match(PlSqlParser.JAVA);
				this.state = 11264;
				_la = this._input.LA(1);
				if(!(_la===1415 || _la===1548)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				this.state = 11265;
				this.schema_object_name();
				}
				break;
			case 7:
				this.enterOuterAlt(localctx, 7);
				{
				this.state = 11266;
				this.match(PlSqlParser.SQL);
				this.state = 11267;
				this.match(PlSqlParser.TRANSLATION);
				this.state = 11268;
				this.match(PlSqlParser.PROFILE);
				this.state = 11269;
				this.schema_object_name();
				}
				break;
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public column_list(): Column_listContext {
		let localctx: Column_listContext = new Column_listContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1442, PlSqlParser.RULE_column_list);
		try {
			let _alt: number;
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 11272;
			this.column_name();
			this.state = 11277;
			this._errHandler.sync(this);
			_alt = this._interp.adaptivePredict(this._input, 1551, this._ctx);
			while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) {
				if (_alt === 1) {
					{
					{
					this.state = 11273;
					this.match(PlSqlParser.COMMA);
					this.state = 11274;
					this.column_name();
					}
					}
				}
				this.state = 11279;
				this._errHandler.sync(this);
				_alt = this._interp.adaptivePredict(this._input, 1551, this._ctx);
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public paren_column_list(): Paren_column_listContext {
		let localctx: Paren_column_listContext = new Paren_column_listContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1444, PlSqlParser.RULE_paren_column_list);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 11280;
			this.match(PlSqlParser.LEFT_PAREN);
			this.state = 11281;
			this.column_list();
			this.state = 11282;
			this.match(PlSqlParser.RIGHT_PAREN);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public keep_clause(): Keep_clauseContext {
		let localctx: Keep_clauseContext = new Keep_clauseContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1446, PlSqlParser.RULE_keep_clause);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 11284;
			this.match(PlSqlParser.KEEP);
			this.state = 11285;
			this.match(PlSqlParser.LEFT_PAREN);
			this.state = 11286;
			this.match(PlSqlParser.DENSE_RANK);
			this.state = 11287;
			_la = this._input.LA(1);
			if(!(_la===526 || _la===731)) {
			this._errHandler.recoverInline(this);
			}
			else {
				this._errHandler.reportMatch(this);
			    this.consume();
			}
			this.state = 11288;
			this.order_by_clause();
			this.state = 11289;
			this.match(PlSqlParser.RIGHT_PAREN);
			this.state = 11291;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1552, this._ctx) ) {
			case 1:
				{
				this.state = 11290;
				this.over_clause();
				}
				break;
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public function_argument(): Function_argumentContext {
		let localctx: Function_argumentContext = new Function_argumentContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1448, PlSqlParser.RULE_function_argument);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 11293;
			this.match(PlSqlParser.LEFT_PAREN);
			this.state = 11302;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & 2684352383) !== 0) || ((((_la - 64)) & ~0x1F) === 0 && ((1 << (_la - 64)) & 3220168703) !== 0) || ((((_la - 96)) & ~0x1F) === 0 && ((1 << (_la - 96)) & 4294965247) !== 0) || ((((_la - 128)) & ~0x1F) === 0 && ((1 << (_la - 128)) & 2147221503) !== 0) || ((((_la - 160)) & ~0x1F) === 0 && ((1 << (_la - 160)) & 4293910527) !== 0) || ((((_la - 192)) & ~0x1F) === 0 && ((1 << (_la - 192)) & 4294967295) !== 0) || ((((_la - 224)) & ~0x1F) === 0 && ((1 << (_la - 224)) & 4160749311) !== 0) || ((((_la - 256)) & ~0x1F) === 0 && ((1 << (_la - 256)) & 4294967295) !== 0) || ((((_la - 289)) & ~0x1F) === 0 && ((1 << (_la - 289)) & 2147483647) !== 0) || ((((_la - 321)) & ~0x1F) === 0 && ((1 << (_la - 321)) & 4294967295) !== 0) || ((((_la - 353)) & ~0x1F) === 0 && ((1 << (_la - 353)) & 4294705151) !== 0) || ((((_la - 385)) & ~0x1F) === 0 && ((1 << (_la - 385)) & 2080374527) !== 0) || ((((_la - 417)) & ~0x1F) === 0 && ((1 << (_la - 417)) & 4026433535) !== 0) || ((((_la - 449)) & ~0x1F) === 0 && ((1 << (_la - 449)) & 4261412863) !== 0) || ((((_la - 481)) & ~0x1F) === 0 && ((1 << (_la - 481)) & 4294967295) !== 0) || ((((_la - 513)) & ~0x1F) === 0 && ((1 << (_la - 513)) & 4294967295) !== 0) || ((((_la - 545)) & ~0x1F) === 0 && ((1 << (_la - 545)) & 3925868029) !== 0) || ((((_la - 577)) & ~0x1F) === 0 && ((1 << (_la - 577)) & 4278189823) !== 0) || ((((_la - 609)) & ~0x1F) === 0 && ((1 << (_la - 609)) & 4290772991) !== 0) || ((((_la - 641)) & ~0x1F) === 0 && ((1 << (_la - 641)) & 4026529791) !== 0) || ((((_la - 673)) & ~0x1F) === 0 && ((1 << (_la - 673)) & 4290478079) !== 0) || ((((_la - 705)) & ~0x1F) === 0 && ((1 << (_la - 705)) & 4294967295) !== 0) || ((((_la - 737)) & ~0x1F) === 0 && ((1 << (_la - 737)) & 4293918719) !== 0) || ((((_la - 769)) & ~0x1F) === 0 && ((1 << (_la - 769)) & 4294967167) !== 0) || ((((_la - 801)) & ~0x1F) === 0 && ((1 << (_la - 801)) & 4294967295) !== 0) || ((((_la - 833)) & ~0x1F) === 0 && ((1 << (_la - 833)) & 4160749055) !== 0) || ((((_la - 865)) & ~0x1F) === 0 && ((1 << (_la - 865)) & 4290772991) !== 0) || ((((_la - 897)) & ~0x1F) === 0 && ((1 << (_la - 897)) & 4294967295) !== 0) || ((((_la - 929)) & ~0x1F) === 0 && ((1 << (_la - 929)) & 4278190079) !== 0) || ((((_la - 961)) & ~0x1F) === 0 && ((1 << (_la - 961)) & 4294967295) !== 0) || ((((_la - 993)) & ~0x1F) === 0 && ((1 << (_la - 993)) & 4294967295) !== 0) || ((((_la - 1025)) & ~0x1F) === 0 && ((1 << (_la - 1025)) & 4294967295) !== 0) || ((((_la - 1057)) & ~0x1F) === 0 && ((1 << (_la - 1057)) & 2147483647) !== 0) || ((((_la - 1089)) & ~0x1F) === 0 && ((1 << (_la - 1089)) & 4227858431) !== 0) || ((((_la - 1121)) & ~0x1F) === 0 && ((1 << (_la - 1121)) & 4293918559) !== 0) || ((((_la - 1153)) & ~0x1F) === 0 && ((1 << (_la - 1153)) & 4294410239) !== 0) || ((((_la - 1185)) & ~0x1F) === 0 && ((1 << (_la - 1185)) & 4294965247) !== 0) || ((((_la - 1217)) & ~0x1F) === 0 && ((1 << (_la - 1217)) & 4279827455) !== 0) || ((((_la - 1249)) & ~0x1F) === 0 && ((1 << (_la - 1249)) & 4294967291) !== 0) || ((((_la - 1281)) & ~0x1F) === 0 && ((1 << (_la - 1281)) & 4294967295) !== 0) || ((((_la - 1313)) & ~0x1F) === 0 && ((1 << (_la - 1313)) & 4294965247) !== 0) || ((((_la - 1345)) & ~0x1F) === 0 && ((1 << (_la - 1345)) & 4294967295) !== 0) || ((((_la - 1377)) & ~0x1F) === 0 && ((1 << (_la - 1377)) & 4292870143) !== 0) || ((((_la - 1409)) & ~0x1F) === 0 && ((1 << (_la - 1409)) & 4261412799) !== 0) || ((((_la - 1441)) & ~0x1F) === 0 && ((1 << (_la - 1441)) & 4294967295) !== 0) || ((((_la - 1473)) & ~0x1F) === 0 && ((1 << (_la - 1473)) & 4261281791) !== 0) || ((((_la - 1505)) & ~0x1F) === 0 && ((1 << (_la - 1505)) & 3221221375) !== 0) || ((((_la - 1537)) & ~0x1F) === 0 && ((1 << (_la - 1537)) & 4294967295) !== 0) || ((((_la - 1570)) & ~0x1F) === 0 && ((1 << (_la - 1570)) & 4294967295) !== 0) || ((((_la - 1602)) & ~0x1F) === 0 && ((1 << (_la - 1602)) & 4261412863) !== 0) || ((((_la - 1634)) & ~0x1F) === 0 && ((1 << (_la - 1634)) & 4294967295) !== 0) || ((((_la - 1666)) & ~0x1F) === 0 && ((1 << (_la - 1666)) & 4294967295) !== 0) || ((((_la - 1698)) & ~0x1F) === 0 && ((1 << (_la - 1698)) & 4294967295) !== 0) || ((((_la - 1730)) & ~0x1F) === 0 && ((1 << (_la - 1730)) & 4294967295) !== 0) || ((((_la - 1762)) & ~0x1F) === 0 && ((1 << (_la - 1762)) & 4294967295) !== 0) || ((((_la - 1794)) & ~0x1F) === 0 && ((1 << (_la - 1794)) & 4294967295) !== 0) || ((((_la - 1826)) & ~0x1F) === 0 && ((1 << (_la - 1826)) & 4294967295) !== 0) || ((((_la - 1858)) & ~0x1F) === 0 && ((1 << (_la - 1858)) & 4294967295) !== 0) || ((((_la - 1890)) & ~0x1F) === 0 && ((1 << (_la - 1890)) & 4294967295) !== 0) || ((((_la - 1922)) & ~0x1F) === 0 && ((1 << (_la - 1922)) & 4294901759) !== 0) || ((((_la - 1954)) & ~0x1F) === 0 && ((1 << (_la - 1954)) & 4294966271) !== 0) || ((((_la - 1986)) & ~0x1F) === 0 && ((1 << (_la - 1986)) & 4294868991) !== 0) || ((((_la - 2018)) & ~0x1F) === 0 && ((1 << (_la - 2018)) & 4294967167) !== 0) || ((((_la - 2050)) & ~0x1F) === 0 && ((1 << (_la - 2050)) & 4286578687) !== 0) || ((((_la - 2082)) & ~0x1F) === 0 && ((1 << (_la - 2082)) & 4294836223) !== 0) || ((((_la - 2115)) & ~0x1F) === 0 && ((1 << (_la - 2115)) & 3758092223) !== 0) || ((((_la - 2147)) & ~0x1F) === 0 && ((1 << (_la - 2147)) & 4293918719) !== 0) || ((((_la - 2179)) & ~0x1F) === 0 && ((1 << (_la - 2179)) & 4294967295) !== 0) || ((((_la - 2211)) & ~0x1F) === 0 && ((1 << (_la - 2211)) & 541266915) !== 0) || _la===2246 || _la===2252) {
				{
				this.state = 11294;
				this.argument();
				this.state = 11299;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===2229) {
					{
					{
					this.state = 11295;
					this.match(PlSqlParser.COMMA);
					this.state = 11296;
					this.argument();
					}
					}
					this.state = 11301;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				}
			}

			this.state = 11304;
			this.match(PlSqlParser.RIGHT_PAREN);
			this.state = 11306;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1555, this._ctx) ) {
			case 1:
				{
				this.state = 11305;
				this.keep_clause();
				}
				break;
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public function_argument_analytic(): Function_argument_analyticContext {
		let localctx: Function_argument_analyticContext = new Function_argument_analyticContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1450, PlSqlParser.RULE_function_argument_analytic);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 11308;
			this.match(PlSqlParser.LEFT_PAREN);
			this.state = 11323;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & 2684352383) !== 0) || ((((_la - 64)) & ~0x1F) === 0 && ((1 << (_la - 64)) & 3220168703) !== 0) || ((((_la - 96)) & ~0x1F) === 0 && ((1 << (_la - 96)) & 4294965247) !== 0) || ((((_la - 128)) & ~0x1F) === 0 && ((1 << (_la - 128)) & 2147221503) !== 0) || ((((_la - 160)) & ~0x1F) === 0 && ((1 << (_la - 160)) & 4293910527) !== 0) || ((((_la - 192)) & ~0x1F) === 0 && ((1 << (_la - 192)) & 4294967295) !== 0) || ((((_la - 224)) & ~0x1F) === 0 && ((1 << (_la - 224)) & 4160749311) !== 0) || ((((_la - 256)) & ~0x1F) === 0 && ((1 << (_la - 256)) & 4294967295) !== 0) || ((((_la - 289)) & ~0x1F) === 0 && ((1 << (_la - 289)) & 2147483647) !== 0) || ((((_la - 321)) & ~0x1F) === 0 && ((1 << (_la - 321)) & 4294967295) !== 0) || ((((_la - 353)) & ~0x1F) === 0 && ((1 << (_la - 353)) & 4294705151) !== 0) || ((((_la - 385)) & ~0x1F) === 0 && ((1 << (_la - 385)) & 2080374527) !== 0) || ((((_la - 417)) & ~0x1F) === 0 && ((1 << (_la - 417)) & 4026433535) !== 0) || ((((_la - 449)) & ~0x1F) === 0 && ((1 << (_la - 449)) & 4261412863) !== 0) || ((((_la - 481)) & ~0x1F) === 0 && ((1 << (_la - 481)) & 4294967295) !== 0) || ((((_la - 513)) & ~0x1F) === 0 && ((1 << (_la - 513)) & 4294967295) !== 0) || ((((_la - 545)) & ~0x1F) === 0 && ((1 << (_la - 545)) & 3925868029) !== 0) || ((((_la - 577)) & ~0x1F) === 0 && ((1 << (_la - 577)) & 4278189823) !== 0) || ((((_la - 609)) & ~0x1F) === 0 && ((1 << (_la - 609)) & 4290772991) !== 0) || ((((_la - 641)) & ~0x1F) === 0 && ((1 << (_la - 641)) & 4026529791) !== 0) || ((((_la - 673)) & ~0x1F) === 0 && ((1 << (_la - 673)) & 4290478079) !== 0) || ((((_la - 705)) & ~0x1F) === 0 && ((1 << (_la - 705)) & 4294967295) !== 0) || ((((_la - 737)) & ~0x1F) === 0 && ((1 << (_la - 737)) & 4293918719) !== 0) || ((((_la - 769)) & ~0x1F) === 0 && ((1 << (_la - 769)) & 4294967167) !== 0) || ((((_la - 801)) & ~0x1F) === 0 && ((1 << (_la - 801)) & 4294967295) !== 0) || ((((_la - 833)) & ~0x1F) === 0 && ((1 << (_la - 833)) & 4160749055) !== 0) || ((((_la - 865)) & ~0x1F) === 0 && ((1 << (_la - 865)) & 4290772991) !== 0) || ((((_la - 897)) & ~0x1F) === 0 && ((1 << (_la - 897)) & 4294967295) !== 0) || ((((_la - 929)) & ~0x1F) === 0 && ((1 << (_la - 929)) & 4278190079) !== 0) || ((((_la - 961)) & ~0x1F) === 0 && ((1 << (_la - 961)) & 4294967295) !== 0) || ((((_la - 993)) & ~0x1F) === 0 && ((1 << (_la - 993)) & 4294967295) !== 0) || ((((_la - 1025)) & ~0x1F) === 0 && ((1 << (_la - 1025)) & 4294967295) !== 0) || ((((_la - 1057)) & ~0x1F) === 0 && ((1 << (_la - 1057)) & 2147483647) !== 0) || ((((_la - 1089)) & ~0x1F) === 0 && ((1 << (_la - 1089)) & 4227858431) !== 0) || ((((_la - 1121)) & ~0x1F) === 0 && ((1 << (_la - 1121)) & 4293918559) !== 0) || ((((_la - 1153)) & ~0x1F) === 0 && ((1 << (_la - 1153)) & 4294410239) !== 0) || ((((_la - 1185)) & ~0x1F) === 0 && ((1 << (_la - 1185)) & 4294965247) !== 0) || ((((_la - 1217)) & ~0x1F) === 0 && ((1 << (_la - 1217)) & 4279827455) !== 0) || ((((_la - 1249)) & ~0x1F) === 0 && ((1 << (_la - 1249)) & 4294967291) !== 0) || ((((_la - 1281)) & ~0x1F) === 0 && ((1 << (_la - 1281)) & 4294967295) !== 0) || ((((_la - 1313)) & ~0x1F) === 0 && ((1 << (_la - 1313)) & 4294965247) !== 0) || ((((_la - 1345)) & ~0x1F) === 0 && ((1 << (_la - 1345)) & 4294967295) !== 0) || ((((_la - 1377)) & ~0x1F) === 0 && ((1 << (_la - 1377)) & 4292870143) !== 0) || ((((_la - 1409)) & ~0x1F) === 0 && ((1 << (_la - 1409)) & 4261412799) !== 0) || ((((_la - 1441)) & ~0x1F) === 0 && ((1 << (_la - 1441)) & 4294967295) !== 0) || ((((_la - 1473)) & ~0x1F) === 0 && ((1 << (_la - 1473)) & 4261281791) !== 0) || ((((_la - 1505)) & ~0x1F) === 0 && ((1 << (_la - 1505)) & 3221221375) !== 0) || ((((_la - 1537)) & ~0x1F) === 0 && ((1 << (_la - 1537)) & 4294967295) !== 0) || ((((_la - 1570)) & ~0x1F) === 0 && ((1 << (_la - 1570)) & 4294967295) !== 0) || ((((_la - 1602)) & ~0x1F) === 0 && ((1 << (_la - 1602)) & 4261412863) !== 0) || ((((_la - 1634)) & ~0x1F) === 0 && ((1 << (_la - 1634)) & 4294967295) !== 0) || ((((_la - 1666)) & ~0x1F) === 0 && ((1 << (_la - 1666)) & 4294967295) !== 0) || ((((_la - 1698)) & ~0x1F) === 0 && ((1 << (_la - 1698)) & 4294967295) !== 0) || ((((_la - 1730)) & ~0x1F) === 0 && ((1 << (_la - 1730)) & 4294967295) !== 0) || ((((_la - 1762)) & ~0x1F) === 0 && ((1 << (_la - 1762)) & 4294967295) !== 0) || ((((_la - 1794)) & ~0x1F) === 0 && ((1 << (_la - 1794)) & 4294967295) !== 0) || ((((_la - 1826)) & ~0x1F) === 0 && ((1 << (_la - 1826)) & 4294967295) !== 0) || ((((_la - 1858)) & ~0x1F) === 0 && ((1 << (_la - 1858)) & 4294967295) !== 0) || ((((_la - 1890)) & ~0x1F) === 0 && ((1 << (_la - 1890)) & 4294967295) !== 0) || ((((_la - 1922)) & ~0x1F) === 0 && ((1 << (_la - 1922)) & 4294901759) !== 0) || ((((_la - 1954)) & ~0x1F) === 0 && ((1 << (_la - 1954)) & 4294966271) !== 0) || ((((_la - 1986)) & ~0x1F) === 0 && ((1 << (_la - 1986)) & 4294868991) !== 0) || ((((_la - 2018)) & ~0x1F) === 0 && ((1 << (_la - 2018)) & 4294967167) !== 0) || ((((_la - 2050)) & ~0x1F) === 0 && ((1 << (_la - 2050)) & 4286578687) !== 0) || ((((_la - 2082)) & ~0x1F) === 0 && ((1 << (_la - 2082)) & 4294836223) !== 0) || ((((_la - 2115)) & ~0x1F) === 0 && ((1 << (_la - 2115)) & 3758092223) !== 0) || ((((_la - 2147)) & ~0x1F) === 0 && ((1 << (_la - 2147)) & 4293918719) !== 0) || ((((_la - 2179)) & ~0x1F) === 0 && ((1 << (_la - 2179)) & 4294967295) !== 0) || ((((_la - 2211)) & ~0x1F) === 0 && ((1 << (_la - 2211)) & 541266915) !== 0) || _la===2246 || _la===2252) {
				{
				this.state = 11309;
				this.argument();
				this.state = 11311;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===608 || _la===1416) {
					{
					this.state = 11310;
					this.respect_or_ignore_nulls();
					}
				}

				this.state = 11320;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===2229) {
					{
					{
					this.state = 11313;
					this.match(PlSqlParser.COMMA);
					this.state = 11314;
					this.argument();
					this.state = 11316;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
					if (_la===608 || _la===1416) {
						{
						this.state = 11315;
						this.respect_or_ignore_nulls();
						}
					}

					}
					}
					this.state = 11322;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				}
			}

			this.state = 11325;
			this.match(PlSqlParser.RIGHT_PAREN);
			this.state = 11327;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1560, this._ctx) ) {
			case 1:
				{
				this.state = 11326;
				this.keep_clause();
				}
				break;
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public function_argument_modeling(): Function_argument_modelingContext {
		let localctx: Function_argument_modelingContext = new Function_argument_modelingContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1452, PlSqlParser.RULE_function_argument_modeling);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 11329;
			this.match(PlSqlParser.LEFT_PAREN);
			this.state = 11330;
			this.column_name();
			this.state = 11343;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===2229) {
				{
				this.state = 11331;
				this.match(PlSqlParser.COMMA);
				this.state = 11334;
				this._errHandler.sync(this);
				switch (this._input.LA(1)) {
				case 2217:
				case 2218:
					{
					this.state = 11332;
					this.numeric();
					}
					break;
				case 1097:
					{
					this.state = 11333;
					this.match(PlSqlParser.NULL_);
					}
					break;
				default:
					throw new NoViableAltException(this);
				}
				this.state = 11341;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===2229) {
					{
					this.state = 11336;
					this.match(PlSqlParser.COMMA);
					this.state = 11339;
					this._errHandler.sync(this);
					switch (this._input.LA(1)) {
					case 2217:
					case 2218:
						{
						this.state = 11337;
						this.numeric();
						}
						break;
					case 1097:
						{
						this.state = 11338;
						this.match(PlSqlParser.NULL_);
						}
						break;
					default:
						throw new NoViableAltException(this);
					}
					}
				}

				}
			}

			this.state = 11345;
			this.match(PlSqlParser.USING);
			this.state = 11365;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1568, this._ctx) ) {
			case 1:
				{
				this.state = 11346;
				this.tableview_name();
				this.state = 11347;
				this.match(PlSqlParser.PERIOD);
				this.state = 11348;
				this.match(PlSqlParser.ASTERISK);
				}
				break;
			case 2:
				{
				this.state = 11350;
				this.match(PlSqlParser.ASTERISK);
				}
				break;
			case 3:
				{
				this.state = 11351;
				this.expression();
				this.state = 11353;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & 3221157751) !== 0) || ((((_la - 64)) & ~0x1F) === 0 && ((1 << (_la - 64)) & 3220168703) !== 0) || ((((_la - 96)) & ~0x1F) === 0 && ((1 << (_la - 96)) & 4294965247) !== 0) || ((((_la - 128)) & ~0x1F) === 0 && ((1 << (_la - 128)) & 2147221503) !== 0) || ((((_la - 160)) & ~0x1F) === 0 && ((1 << (_la - 160)) & 4293910527) !== 0) || ((((_la - 192)) & ~0x1F) === 0 && ((1 << (_la - 192)) & 4294967295) !== 0) || ((((_la - 224)) & ~0x1F) === 0 && ((1 << (_la - 224)) & 4160749311) !== 0) || ((((_la - 256)) & ~0x1F) === 0 && ((1 << (_la - 256)) & 4294967295) !== 0) || ((((_la - 289)) & ~0x1F) === 0 && ((1 << (_la - 289)) & 2147483647) !== 0) || ((((_la - 321)) & ~0x1F) === 0 && ((1 << (_la - 321)) & 3221225407) !== 0) || ((((_la - 353)) & ~0x1F) === 0 && ((1 << (_la - 353)) & 4294705151) !== 0) || ((((_la - 385)) & ~0x1F) === 0 && ((1 << (_la - 385)) & 2080372479) !== 0) || ((((_la - 417)) & ~0x1F) === 0 && ((1 << (_la - 417)) & 4026433535) !== 0) || ((((_la - 449)) & ~0x1F) === 0 && ((1 << (_la - 449)) & 4261412863) !== 0) || ((((_la - 481)) & ~0x1F) === 0 && ((1 << (_la - 481)) & 4294967295) !== 0) || ((((_la - 513)) & ~0x1F) === 0 && ((1 << (_la - 513)) & 4294967295) !== 0) || ((((_la - 545)) & ~0x1F) === 0 && ((1 << (_la - 545)) & 3925868029) !== 0) || ((((_la - 577)) & ~0x1F) === 0 && ((1 << (_la - 577)) & 4278189823) !== 0) || ((((_la - 609)) & ~0x1F) === 0 && ((1 << (_la - 609)) & 4290772991) !== 0) || ((((_la - 641)) & ~0x1F) === 0 && ((1 << (_la - 641)) & 4026529791) !== 0) || ((((_la - 673)) & ~0x1F) === 0 && ((1 << (_la - 673)) & 4290478079) !== 0) || ((((_la - 705)) & ~0x1F) === 0 && ((1 << (_la - 705)) & 4294967295) !== 0) || ((((_la - 737)) & ~0x1F) === 0 && ((1 << (_la - 737)) & 4293918719) !== 0) || ((((_la - 769)) & ~0x1F) === 0 && ((1 << (_la - 769)) & 4294967167) !== 0) || ((((_la - 801)) & ~0x1F) === 0 && ((1 << (_la - 801)) & 4294967295) !== 0) || ((((_la - 833)) & ~0x1F) === 0 && ((1 << (_la - 833)) & 4160749055) !== 0) || ((((_la - 865)) & ~0x1F) === 0 && ((1 << (_la - 865)) & 4290772991) !== 0) || ((((_la - 897)) & ~0x1F) === 0 && ((1 << (_la - 897)) & 4294967295) !== 0) || ((((_la - 929)) & ~0x1F) === 0 && ((1 << (_la - 929)) & 4278190079) !== 0) || ((((_la - 961)) & ~0x1F) === 0 && ((1 << (_la - 961)) & 4294967295) !== 0) || ((((_la - 993)) & ~0x1F) === 0 && ((1 << (_la - 993)) & 4294967295) !== 0) || ((((_la - 1025)) & ~0x1F) === 0 && ((1 << (_la - 1025)) & 4294967295) !== 0) || ((((_la - 1057)) & ~0x1F) === 0 && ((1 << (_la - 1057)) & 2147418111) !== 0) || ((((_la - 1089)) & ~0x1F) === 0 && ((1 << (_la - 1089)) & 4227858175) !== 0) || ((((_la - 1121)) & ~0x1F) === 0 && ((1 << (_la - 1121)) & 4293918559) !== 0) || ((((_la - 1153)) & ~0x1F) === 0 && ((1 << (_la - 1153)) & 4294410239) !== 0) || ((((_la - 1185)) & ~0x1F) === 0 && ((1 << (_la - 1185)) & 4294965247) !== 0) || ((((_la - 1217)) & ~0x1F) === 0 && ((1 << (_la - 1217)) & 4279827455) !== 0) || ((((_la - 1249)) & ~0x1F) === 0 && ((1 << (_la - 1249)) & 4294967291) !== 0) || ((((_la - 1281)) & ~0x1F) === 0 && ((1 << (_la - 1281)) & 4227858431) !== 0) || ((((_la - 1313)) & ~0x1F) === 0 && ((1 << (_la - 1313)) & 4294965247) !== 0) || ((((_la - 1345)) & ~0x1F) === 0 && ((1 << (_la - 1345)) & 4294967295) !== 0) || ((((_la - 1377)) & ~0x1F) === 0 && ((1 << (_la - 1377)) & 4292870143) !== 0) || ((((_la - 1409)) & ~0x1F) === 0 && ((1 << (_la - 1409)) & 4261412799) !== 0) || ((((_la - 1441)) & ~0x1F) === 0 && ((1 << (_la - 1441)) & 4294967295) !== 0) || ((((_la - 1473)) & ~0x1F) === 0 && ((1 << (_la - 1473)) & 4261281791) !== 0) || ((((_la - 1505)) & ~0x1F) === 0 && ((1 << (_la - 1505)) & 3221221375) !== 0) || ((((_la - 1537)) & ~0x1F) === 0 && ((1 << (_la - 1537)) & 4294967295) !== 0) || ((((_la - 1570)) & ~0x1F) === 0 && ((1 << (_la - 1570)) & 4294967295) !== 0) || ((((_la - 1602)) & ~0x1F) === 0 && ((1 << (_la - 1602)) & 4261412863) !== 0) || ((((_la - 1634)) & ~0x1F) === 0 && ((1 << (_la - 1634)) & 4294967295) !== 0) || ((((_la - 1666)) & ~0x1F) === 0 && ((1 << (_la - 1666)) & 4294967295) !== 0) || ((((_la - 1698)) & ~0x1F) === 0 && ((1 << (_la - 1698)) & 4294967295) !== 0) || ((((_la - 1730)) & ~0x1F) === 0 && ((1 << (_la - 1730)) & 4294967295) !== 0) || ((((_la - 1762)) & ~0x1F) === 0 && ((1 << (_la - 1762)) & 4294967295) !== 0) || ((((_la - 1794)) & ~0x1F) === 0 && ((1 << (_la - 1794)) & 4294967295) !== 0) || ((((_la - 1826)) & ~0x1F) === 0 && ((1 << (_la - 1826)) & 4294967295) !== 0) || ((((_la - 1858)) & ~0x1F) === 0 && ((1 << (_la - 1858)) & 4294967295) !== 0) || ((((_la - 1890)) & ~0x1F) === 0 && ((1 << (_la - 1890)) & 4294967295) !== 0) || ((((_la - 1922)) & ~0x1F) === 0 && ((1 << (_la - 1922)) & 4294901759) !== 0) || ((((_la - 1954)) & ~0x1F) === 0 && ((1 << (_la - 1954)) & 4294966271) !== 0) || ((((_la - 1986)) & ~0x1F) === 0 && ((1 << (_la - 1986)) & 4294868991) !== 0) || ((((_la - 2018)) & ~0x1F) === 0 && ((1 << (_la - 2018)) & 4294967167) !== 0) || ((((_la - 2050)) & ~0x1F) === 0 && ((1 << (_la - 2050)) & 4286578687) !== 0) || ((((_la - 2082)) & ~0x1F) === 0 && ((1 << (_la - 2082)) & 4294836223) !== 0) || ((((_la - 2115)) & ~0x1F) === 0 && ((1 << (_la - 2115)) & 3758092223) !== 0) || ((((_la - 2147)) & ~0x1F) === 0 && ((1 << (_la - 2147)) & 4293918719) !== 0) || ((((_la - 2179)) & ~0x1F) === 0 && ((1 << (_la - 2179)) & 4294965247) !== 0) || ((((_la - 2211)) & ~0x1F) === 0 && ((1 << (_la - 2211)) & 803) !== 0) || _la===2246 || _la===2252) {
					{
					this.state = 11352;
					this.column_alias();
					}
				}

				this.state = 11362;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				while (_la===2229) {
					{
					{
					this.state = 11355;
					this.match(PlSqlParser.COMMA);
					this.state = 11356;
					this.expression();
					this.state = 11358;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
					if ((((_la) & ~0x1F) === 0 && ((1 << _la) & 4294967294) !== 0) || ((((_la - 32)) & ~0x1F) === 0 && ((1 << (_la - 32)) & 3221157751) !== 0) || ((((_la - 64)) & ~0x1F) === 0 && ((1 << (_la - 64)) & 3220168703) !== 0) || ((((_la - 96)) & ~0x1F) === 0 && ((1 << (_la - 96)) & 4294965247) !== 0) || ((((_la - 128)) & ~0x1F) === 0 && ((1 << (_la - 128)) & 2147221503) !== 0) || ((((_la - 160)) & ~0x1F) === 0 && ((1 << (_la - 160)) & 4293910527) !== 0) || ((((_la - 192)) & ~0x1F) === 0 && ((1 << (_la - 192)) & 4294967295) !== 0) || ((((_la - 224)) & ~0x1F) === 0 && ((1 << (_la - 224)) & 4160749311) !== 0) || ((((_la - 256)) & ~0x1F) === 0 && ((1 << (_la - 256)) & 4294967295) !== 0) || ((((_la - 289)) & ~0x1F) === 0 && ((1 << (_la - 289)) & 2147483647) !== 0) || ((((_la - 321)) & ~0x1F) === 0 && ((1 << (_la - 321)) & 3221225407) !== 0) || ((((_la - 353)) & ~0x1F) === 0 && ((1 << (_la - 353)) & 4294705151) !== 0) || ((((_la - 385)) & ~0x1F) === 0 && ((1 << (_la - 385)) & 2080372479) !== 0) || ((((_la - 417)) & ~0x1F) === 0 && ((1 << (_la - 417)) & 4026433535) !== 0) || ((((_la - 449)) & ~0x1F) === 0 && ((1 << (_la - 449)) & 4261412863) !== 0) || ((((_la - 481)) & ~0x1F) === 0 && ((1 << (_la - 481)) & 4294967295) !== 0) || ((((_la - 513)) & ~0x1F) === 0 && ((1 << (_la - 513)) & 4294967295) !== 0) || ((((_la - 545)) & ~0x1F) === 0 && ((1 << (_la - 545)) & 3925868029) !== 0) || ((((_la - 577)) & ~0x1F) === 0 && ((1 << (_la - 577)) & 4278189823) !== 0) || ((((_la - 609)) & ~0x1F) === 0 && ((1 << (_la - 609)) & 4290772991) !== 0) || ((((_la - 641)) & ~0x1F) === 0 && ((1 << (_la - 641)) & 4026529791) !== 0) || ((((_la - 673)) & ~0x1F) === 0 && ((1 << (_la - 673)) & 4290478079) !== 0) || ((((_la - 705)) & ~0x1F) === 0 && ((1 << (_la - 705)) & 4294967295) !== 0) || ((((_la - 737)) & ~0x1F) === 0 && ((1 << (_la - 737)) & 4293918719) !== 0) || ((((_la - 769)) & ~0x1F) === 0 && ((1 << (_la - 769)) & 4294967167) !== 0) || ((((_la - 801)) & ~0x1F) === 0 && ((1 << (_la - 801)) & 4294967295) !== 0) || ((((_la - 833)) & ~0x1F) === 0 && ((1 << (_la - 833)) & 4160749055) !== 0) || ((((_la - 865)) & ~0x1F) === 0 && ((1 << (_la - 865)) & 4290772991) !== 0) || ((((_la - 897)) & ~0x1F) === 0 && ((1 << (_la - 897)) & 4294967295) !== 0) || ((((_la - 929)) & ~0x1F) === 0 && ((1 << (_la - 929)) & 4278190079) !== 0) || ((((_la - 961)) & ~0x1F) === 0 && ((1 << (_la - 961)) & 4294967295) !== 0) || ((((_la - 993)) & ~0x1F) === 0 && ((1 << (_la - 993)) & 4294967295) !== 0) || ((((_la - 1025)) & ~0x1F) === 0 && ((1 << (_la - 1025)) & 4294967295) !== 0) || ((((_la - 1057)) & ~0x1F) === 0 && ((1 << (_la - 1057)) & 2147418111) !== 0) || ((((_la - 1089)) & ~0x1F) === 0 && ((1 << (_la - 1089)) & 4227858175) !== 0) || ((((_la - 1121)) & ~0x1F) === 0 && ((1 << (_la - 1121)) & 4293918559) !== 0) || ((((_la - 1153)) & ~0x1F) === 0 && ((1 << (_la - 1153)) & 4294410239) !== 0) || ((((_la - 1185)) & ~0x1F) === 0 && ((1 << (_la - 1185)) & 4294965247) !== 0) || ((((_la - 1217)) & ~0x1F) === 0 && ((1 << (_la - 1217)) & 4279827455) !== 0) || ((((_la - 1249)) & ~0x1F) === 0 && ((1 << (_la - 1249)) & 4294967291) !== 0) || ((((_la - 1281)) & ~0x1F) === 0 && ((1 << (_la - 1281)) & 4227858431) !== 0) || ((((_la - 1313)) & ~0x1F) === 0 && ((1 << (_la - 1313)) & 4294965247) !== 0) || ((((_la - 1345)) & ~0x1F) === 0 && ((1 << (_la - 1345)) & 4294967295) !== 0) || ((((_la - 1377)) & ~0x1F) === 0 && ((1 << (_la - 1377)) & 4292870143) !== 0) || ((((_la - 1409)) & ~0x1F) === 0 && ((1 << (_la - 1409)) & 4261412799) !== 0) || ((((_la - 1441)) & ~0x1F) === 0 && ((1 << (_la - 1441)) & 4294967295) !== 0) || ((((_la - 1473)) & ~0x1F) === 0 && ((1 << (_la - 1473)) & 4261281791) !== 0) || ((((_la - 1505)) & ~0x1F) === 0 && ((1 << (_la - 1505)) & 3221221375) !== 0) || ((((_la - 1537)) & ~0x1F) === 0 && ((1 << (_la - 1537)) & 4294967295) !== 0) || ((((_la - 1570)) & ~0x1F) === 0 && ((1 << (_la - 1570)) & 4294967295) !== 0) || ((((_la - 1602)) & ~0x1F) === 0 && ((1 << (_la - 1602)) & 4261412863) !== 0) || ((((_la - 1634)) & ~0x1F) === 0 && ((1 << (_la - 1634)) & 4294967295) !== 0) || ((((_la - 1666)) & ~0x1F) === 0 && ((1 << (_la - 1666)) & 4294967295) !== 0) || ((((_la - 1698)) & ~0x1F) === 0 && ((1 << (_la - 1698)) & 4294967295) !== 0) || ((((_la - 1730)) & ~0x1F) === 0 && ((1 << (_la - 1730)) & 4294967295) !== 0) || ((((_la - 1762)) & ~0x1F) === 0 && ((1 << (_la - 1762)) & 4294967295) !== 0) || ((((_la - 1794)) & ~0x1F) === 0 && ((1 << (_la - 1794)) & 4294967295) !== 0) || ((((_la - 1826)) & ~0x1F) === 0 && ((1 << (_la - 1826)) & 4294967295) !== 0) || ((((_la - 1858)) & ~0x1F) === 0 && ((1 << (_la - 1858)) & 4294967295) !== 0) || ((((_la - 1890)) & ~0x1F) === 0 && ((1 << (_la - 1890)) & 4294967295) !== 0) || ((((_la - 1922)) & ~0x1F) === 0 && ((1 << (_la - 1922)) & 4294901759) !== 0) || ((((_la - 1954)) & ~0x1F) === 0 && ((1 << (_la - 1954)) & 4294966271) !== 0) || ((((_la - 1986)) & ~0x1F) === 0 && ((1 << (_la - 1986)) & 4294868991) !== 0) || ((((_la - 2018)) & ~0x1F) === 0 && ((1 << (_la - 2018)) & 4294967167) !== 0) || ((((_la - 2050)) & ~0x1F) === 0 && ((1 << (_la - 2050)) & 4286578687) !== 0) || ((((_la - 2082)) & ~0x1F) === 0 && ((1 << (_la - 2082)) & 4294836223) !== 0) || ((((_la - 2115)) & ~0x1F) === 0 && ((1 << (_la - 2115)) & 3758092223) !== 0) || ((((_la - 2147)) & ~0x1F) === 0 && ((1 << (_la - 2147)) & 4293918719) !== 0) || ((((_la - 2179)) & ~0x1F) === 0 && ((1 << (_la - 2179)) & 4294965247) !== 0) || ((((_la - 2211)) & ~0x1F) === 0 && ((1 << (_la - 2211)) & 803) !== 0) || _la===2246 || _la===2252) {
						{
						this.state = 11357;
						this.column_alias();
						}
					}

					}
					}
					this.state = 11364;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
				}
				}
				break;
			}
			this.state = 11367;
			this.match(PlSqlParser.RIGHT_PAREN);
			this.state = 11369;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1569, this._ctx) ) {
			case 1:
				{
				this.state = 11368;
				this.keep_clause();
				}
				break;
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public respect_or_ignore_nulls(): Respect_or_ignore_nullsContext {
		let localctx: Respect_or_ignore_nullsContext = new Respect_or_ignore_nullsContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1454, PlSqlParser.RULE_respect_or_ignore_nulls);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 11371;
			_la = this._input.LA(1);
			if(!(_la===608 || _la===1416)) {
			this._errHandler.recoverInline(this);
			}
			else {
				this._errHandler.reportMatch(this);
			    this.consume();
			}
			this.state = 11372;
			this.match(PlSqlParser.NULLS);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public argument(): ArgumentContext {
		let localctx: ArgumentContext = new ArgumentContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1456, PlSqlParser.RULE_argument);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 11378;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1570, this._ctx) ) {
			case 1:
				{
				this.state = 11374;
				this.identifier();
				this.state = 11375;
				this.match(PlSqlParser.EQUALS_OP);
				this.state = 11376;
				this.match(PlSqlParser.GREATER_THAN_OP);
				}
				break;
			}
			this.state = 11380;
			this.expression();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public type_spec(): Type_specContext {
		let localctx: Type_specContext = new Type_specContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1458, PlSqlParser.RULE_type_spec);
		let _la: number;
		try {
			this.state = 11390;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1573, this._ctx) ) {
			case 1:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 11382;
				this.datatype();
				}
				break;
			case 2:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 11384;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 1571, this._ctx) ) {
				case 1:
					{
					this.state = 11383;
					this.match(PlSqlParser.REF);
					}
					break;
				}
				this.state = 11386;
				this.type_name();
				this.state = 11388;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===1239 || _la===1240) {
					{
					this.state = 11387;
					_la = this._input.LA(1);
					if(!(_la===1239 || _la===1240)) {
					this._errHandler.recoverInline(this);
					}
					else {
						this._errHandler.reportMatch(this);
					    this.consume();
					}
					}
				}

				}
				break;
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public datatype(): DatatypeContext {
		let localctx: DatatypeContext = new DatatypeContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1460, PlSqlParser.RULE_datatype);
		let _la: number;
		try {
			this.state = 11423;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 108:
			case 112:
			case 115:
			case 118:
			case 128:
			case 134:
			case 175:
			case 176:
			case 192:
			case 327:
			case 329:
			case 342:
			case 343:
			case 407:
			case 413:
			case 534:
			case 598:
			case 682:
			case 690:
			case 788:
			case 844:
			case 849:
			case 868:
			case 886:
			case 887:
			case 890:
			case 892:
			case 1099:
			case 1100:
			case 1104:
			case 1259:
			case 1273:
			case 1274:
			case 1347:
			case 1356:
			case 1446:
			case 1480:
			case 1528:
			case 1529:
			case 1541:
			case 1598:
			case 1932:
			case 1933:
			case 1934:
			case 1935:
			case 1939:
			case 1940:
			case 1941:
			case 1943:
			case 2032:
			case 2075:
			case 2076:
			case 2169:
			case 2171:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 11392;
				this.native_datatype_element();
				this.state = 11394;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 1574, this._ctx) ) {
				case 1:
					{
					this.state = 11393;
					this.precision_part();
					}
					break;
				}
				this.state = 11405;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 1576, this._ctx) ) {
				case 1:
					{
					this.state = 11396;
					this.match(PlSqlParser.WITH);
					this.state = 11398;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
					if (_la===769) {
						{
						this.state = 11397;
						this.match(PlSqlParser.LOCAL);
						}
					}

					this.state = 11400;
					this.match(PlSqlParser.TIME);
					this.state = 11401;
					this.match(PlSqlParser.ZONE);
					}
					break;
				case 2:
					{
					this.state = 11402;
					this.match(PlSqlParser.CHARACTER);
					this.state = 11403;
					this.match(PlSqlParser.SET);
					this.state = 11404;
					this.char_set_name();
					}
					break;
				}
				}
				break;
			case 689:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 11407;
				this.match(PlSqlParser.INTERVAL);
				this.state = 11408;
				_la = this._input.LA(1);
				if(!(_la===329 || _la===2169)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				this.state = 11413;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===2223) {
					{
					this.state = 11409;
					this.match(PlSqlParser.LEFT_PAREN);
					this.state = 11410;
					this.expression();
					this.state = 11411;
					this.match(PlSqlParser.RIGHT_PAREN);
					}
				}

				this.state = 11415;
				this.match(PlSqlParser.TO);
				this.state = 11416;
				_la = this._input.LA(1);
				if(!(_la===868 || _la===1480)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				this.state = 11421;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 1578, this._ctx) ) {
				case 1:
					{
					this.state = 11417;
					this.match(PlSqlParser.LEFT_PAREN);
					this.state = 11418;
					this.expression();
					this.state = 11419;
					this.match(PlSqlParser.RIGHT_PAREN);
					}
					break;
				}
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public precision_part(): Precision_partContext {
		let localctx: Precision_partContext = new Precision_partContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1462, PlSqlParser.RULE_precision_part);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 11425;
			this.match(PlSqlParser.LEFT_PAREN);
			this.state = 11428;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 2217:
			case 2218:
				{
				this.state = 11426;
				this.numeric();
				}
				break;
			case 2226:
				{
				this.state = 11427;
				this.match(PlSqlParser.ASTERISK);
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
			this.state = 11432;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===2229) {
				{
				this.state = 11430;
				this.match(PlSqlParser.COMMA);
				this.state = 11431;
				this.numeric();
				}
			}

			this.state = 11435;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===149 || _la===176) {
				{
				this.state = 11434;
				_la = this._input.LA(1);
				if(!(_la===149 || _la===176)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				}
			}

			this.state = 11437;
			this.match(PlSqlParser.RIGHT_PAREN);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public native_datatype_element(): Native_datatype_elementContext {
		let localctx: Native_datatype_elementContext = new Native_datatype_elementContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1464, PlSqlParser.RULE_native_datatype_element);
		let _la: number;
		try {
			this.state = 11499;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 118:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 11439;
				this.match(PlSqlParser.BINARY_INTEGER);
				}
				break;
			case 1259:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 11440;
				this.match(PlSqlParser.PLS_INTEGER);
				}
				break;
			case 886:
				this.enterOuterAlt(localctx, 3);
				{
				this.state = 11441;
				this.match(PlSqlParser.NATURAL);
				}
				break;
			case 115:
				this.enterOuterAlt(localctx, 4);
				{
				this.state = 11442;
				this.match(PlSqlParser.BINARY_FLOAT);
				}
				break;
			case 112:
				this.enterOuterAlt(localctx, 5);
				{
				this.state = 11443;
				this.match(PlSqlParser.BINARY_DOUBLE);
				}
				break;
			case 887:
				this.enterOuterAlt(localctx, 6);
				{
				this.state = 11444;
				this.match(PlSqlParser.NATURALN);
				}
				break;
			case 1274:
				this.enterOuterAlt(localctx, 7);
				{
				this.state = 11445;
				this.match(PlSqlParser.POSITIVE);
				}
				break;
			case 1273:
				this.enterOuterAlt(localctx, 8);
				{
				this.state = 11446;
				this.match(PlSqlParser.POSITIVEN);
				}
				break;
			case 1528:
				this.enterOuterAlt(localctx, 9);
				{
				this.state = 11447;
				this.match(PlSqlParser.SIGNTYPE);
				}
				break;
			case 1529:
				this.enterOuterAlt(localctx, 10);
				{
				this.state = 11448;
				this.match(PlSqlParser.SIMPLE_INTEGER);
				}
				break;
			case 1104:
				this.enterOuterAlt(localctx, 11);
				{
				this.state = 11449;
				this.match(PlSqlParser.NVARCHAR2);
				}
				break;
			case 342:
				this.enterOuterAlt(localctx, 12);
				{
				this.state = 11450;
				this.match(PlSqlParser.DEC);
				}
				break;
			case 682:
				this.enterOuterAlt(localctx, 13);
				{
				this.state = 11451;
				this.match(PlSqlParser.INTEGER);
				}
				break;
			case 690:
				this.enterOuterAlt(localctx, 14);
				{
				this.state = 11452;
				this.match(PlSqlParser.INT);
				}
				break;
			case 1100:
				this.enterOuterAlt(localctx, 15);
				{
				this.state = 11453;
				this.match(PlSqlParser.NUMERIC);
				}
				break;
			case 1541:
				this.enterOuterAlt(localctx, 16);
				{
				this.state = 11454;
				this.match(PlSqlParser.SMALLINT);
				}
				break;
			case 1099:
				this.enterOuterAlt(localctx, 17);
				{
				this.state = 11455;
				this.match(PlSqlParser.NUMBER);
				}
				break;
			case 343:
				this.enterOuterAlt(localctx, 18);
				{
				this.state = 11456;
				this.match(PlSqlParser.DECIMAL);
				}
				break;
			case 407:
				this.enterOuterAlt(localctx, 19);
				{
				this.state = 11457;
				this.match(PlSqlParser.DOUBLE);
				this.state = 11459;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===1291) {
					{
					this.state = 11458;
					this.match(PlSqlParser.PRECISION);
					}
				}

				}
				break;
			case 534:
				this.enterOuterAlt(localctx, 20);
				{
				this.state = 11461;
				this.match(PlSqlParser.FLOAT);
				}
				break;
			case 1356:
				this.enterOuterAlt(localctx, 21);
				{
				this.state = 11462;
				this.match(PlSqlParser.REAL);
				}
				break;
			case 890:
				this.enterOuterAlt(localctx, 22);
				{
				this.state = 11463;
				this.match(PlSqlParser.NCHAR);
				}
				break;
			case 788:
				this.enterOuterAlt(localctx, 23);
				{
				this.state = 11464;
				this.match(PlSqlParser.LONG);
				this.state = 11466;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===1347) {
					{
					this.state = 11465;
					this.match(PlSqlParser.RAW);
					}
				}

				}
				break;
			case 176:
				this.enterOuterAlt(localctx, 24);
				{
				this.state = 11468;
				this.match(PlSqlParser.CHAR);
				}
				break;
			case 175:
				this.enterOuterAlt(localctx, 25);
				{
				this.state = 11469;
				this.match(PlSqlParser.CHARACTER);
				}
				break;
			case 2075:
				this.enterOuterAlt(localctx, 26);
				{
				this.state = 11470;
				this.match(PlSqlParser.VARCHAR2);
				}
				break;
			case 2076:
				this.enterOuterAlt(localctx, 27);
				{
				this.state = 11471;
				this.match(PlSqlParser.VARCHAR);
				}
				break;
			case 1598:
				this.enterOuterAlt(localctx, 28);
				{
				this.state = 11472;
				this.match(PlSqlParser.STRING);
				}
				break;
			case 1347:
				this.enterOuterAlt(localctx, 29);
				{
				this.state = 11473;
				this.match(PlSqlParser.RAW);
				}
				break;
			case 134:
				this.enterOuterAlt(localctx, 30);
				{
				this.state = 11474;
				this.match(PlSqlParser.BOOLEAN);
				}
				break;
			case 327:
				this.enterOuterAlt(localctx, 31);
				{
				this.state = 11475;
				this.match(PlSqlParser.DATE);
				}
				break;
			case 1446:
				this.enterOuterAlt(localctx, 32);
				{
				this.state = 11476;
				this.match(PlSqlParser.ROWID);
				}
				break;
			case 2032:
				this.enterOuterAlt(localctx, 33);
				{
				this.state = 11477;
				this.match(PlSqlParser.UROWID);
				}
				break;
			case 2169:
				this.enterOuterAlt(localctx, 34);
				{
				this.state = 11478;
				this.match(PlSqlParser.YEAR);
				}
				break;
			case 868:
				this.enterOuterAlt(localctx, 35);
				{
				this.state = 11479;
				this.match(PlSqlParser.MONTH);
				}
				break;
			case 329:
				this.enterOuterAlt(localctx, 36);
				{
				this.state = 11480;
				this.match(PlSqlParser.DAY);
				}
				break;
			case 598:
				this.enterOuterAlt(localctx, 37);
				{
				this.state = 11481;
				this.match(PlSqlParser.HOUR);
				}
				break;
			case 844:
				this.enterOuterAlt(localctx, 38);
				{
				this.state = 11482;
				this.match(PlSqlParser.MINUTE);
				}
				break;
			case 1480:
				this.enterOuterAlt(localctx, 39);
				{
				this.state = 11483;
				this.match(PlSqlParser.SECOND);
				}
				break;
			case 1940:
				this.enterOuterAlt(localctx, 40);
				{
				this.state = 11484;
				this.match(PlSqlParser.TIMEZONE_HOUR);
				}
				break;
			case 1941:
				this.enterOuterAlt(localctx, 41);
				{
				this.state = 11485;
				this.match(PlSqlParser.TIMEZONE_MINUTE);
				}
				break;
			case 1943:
				this.enterOuterAlt(localctx, 42);
				{
				this.state = 11486;
				this.match(PlSqlParser.TIMEZONE_REGION);
				}
				break;
			case 1939:
				this.enterOuterAlt(localctx, 43);
				{
				this.state = 11487;
				this.match(PlSqlParser.TIMEZONE_ABBR);
				}
				break;
			case 1933:
				this.enterOuterAlt(localctx, 44);
				{
				this.state = 11488;
				this.match(PlSqlParser.TIMESTAMP);
				}
				break;
			case 1935:
				this.enterOuterAlt(localctx, 45);
				{
				this.state = 11489;
				this.match(PlSqlParser.TIMESTAMP_UNCONSTRAINED);
				}
				break;
			case 1934:
				this.enterOuterAlt(localctx, 46);
				{
				this.state = 11490;
				this.match(PlSqlParser.TIMESTAMP_TZ_UNCONSTRAINED);
				}
				break;
			case 1932:
				this.enterOuterAlt(localctx, 47);
				{
				this.state = 11491;
				this.match(PlSqlParser.TIMESTAMP_LTZ_UNCONSTRAINED);
				}
				break;
			case 2171:
				this.enterOuterAlt(localctx, 48);
				{
				this.state = 11492;
				this.match(PlSqlParser.YMINTERVAL_UNCONSTRAINED);
				}
				break;
			case 413:
				this.enterOuterAlt(localctx, 49);
				{
				this.state = 11493;
				this.match(PlSqlParser.DSINTERVAL_UNCONSTRAINED);
				}
				break;
			case 108:
				this.enterOuterAlt(localctx, 50);
				{
				this.state = 11494;
				this.match(PlSqlParser.BFILE);
				}
				break;
			case 128:
				this.enterOuterAlt(localctx, 51);
				{
				this.state = 11495;
				this.match(PlSqlParser.BLOB);
				}
				break;
			case 192:
				this.enterOuterAlt(localctx, 52);
				{
				this.state = 11496;
				this.match(PlSqlParser.CLOB);
				}
				break;
			case 892:
				this.enterOuterAlt(localctx, 53);
				{
				this.state = 11497;
				this.match(PlSqlParser.NCLOB);
				}
				break;
			case 849:
				this.enterOuterAlt(localctx, 54);
				{
				this.state = 11498;
				this.match(PlSqlParser.MLSLABEL);
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public bind_variable(): Bind_variableContext {
		let localctx: Bind_variableContext = new Bind_variableContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1466, PlSqlParser.RULE_bind_variable);
		let _la: number;
		try {
			let _alt: number;
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 11504;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 2233:
				{
				this.state = 11501;
				this.match(PlSqlParser.BINDVAR);
				}
				break;
			case 2240:
				{
				this.state = 11502;
				this.match(PlSqlParser.COLON);
				this.state = 11503;
				this.match(PlSqlParser.UNSIGNED_INTEGER);
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
			this.state = 11514;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1589, this._ctx) ) {
			case 1:
				{
				this.state = 11507;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===647) {
					{
					this.state = 11506;
					this.match(PlSqlParser.INDICATOR);
					}
				}

				this.state = 11512;
				this._errHandler.sync(this);
				switch (this._input.LA(1)) {
				case 2233:
					{
					this.state = 11509;
					this.match(PlSqlParser.BINDVAR);
					}
					break;
				case 2240:
					{
					this.state = 11510;
					this.match(PlSqlParser.COLON);
					this.state = 11511;
					this.match(PlSqlParser.UNSIGNED_INTEGER);
					}
					break;
				default:
					throw new NoViableAltException(this);
				}
				}
				break;
			}
			this.state = 11520;
			this._errHandler.sync(this);
			_alt = this._interp.adaptivePredict(this._input, 1590, this._ctx);
			while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) {
				if (_alt === 1) {
					{
					{
					this.state = 11516;
					this.match(PlSqlParser.PERIOD);
					this.state = 11517;
					this.general_element_part();
					}
					}
				}
				this.state = 11522;
				this._errHandler.sync(this);
				_alt = this._interp.adaptivePredict(this._input, 1590, this._ctx);
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public general_element(): General_elementContext {
		let localctx: General_elementContext = new General_elementContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1468, PlSqlParser.RULE_general_element);
		try {
			let _alt: number;
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 11523;
			this.general_element_part();
			this.state = 11528;
			this._errHandler.sync(this);
			_alt = this._interp.adaptivePredict(this._input, 1591, this._ctx);
			while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) {
				if (_alt === 1) {
					{
					{
					this.state = 11524;
					this.match(PlSqlParser.PERIOD);
					this.state = 11525;
					this.general_element_part();
					}
					}
				}
				this.state = 11530;
				this._errHandler.sync(this);
				_alt = this._interp.adaptivePredict(this._input, 1591, this._ctx);
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public general_element_part(): General_element_partContext {
		let localctx: General_element_partContext = new General_element_partContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1470, PlSqlParser.RULE_general_element_part);
		let _la: number;
		try {
			let _alt: number;
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 11533;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===2246) {
				{
				this.state = 11531;
				this.match(PlSqlParser.INTRODUCER);
				this.state = 11532;
				this.char_set_name();
				}
			}

			this.state = 11535;
			this.id_expression();
			this.state = 11540;
			this._errHandler.sync(this);
			_alt = this._interp.adaptivePredict(this._input, 1593, this._ctx);
			while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) {
				if (_alt === 1) {
					{
					{
					this.state = 11536;
					this.match(PlSqlParser.PERIOD);
					this.state = 11537;
					this.id_expression();
					}
					}
				}
				this.state = 11542;
				this._errHandler.sync(this);
				_alt = this._interp.adaptivePredict(this._input, 1593, this._ctx);
			}
			this.state = 11545;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1594, this._ctx) ) {
			case 1:
				{
				this.state = 11543;
				this.match(PlSqlParser.AT_SIGN);
				this.state = 11544;
				this.link_name();
				}
				break;
			}
			this.state = 11548;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1595, this._ctx) ) {
			case 1:
				{
				this.state = 11547;
				this.function_argument();
				}
				break;
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public table_element(): Table_elementContext {
		let localctx: Table_elementContext = new Table_elementContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1472, PlSqlParser.RULE_table_element);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 11552;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===2246) {
				{
				this.state = 11550;
				this.match(PlSqlParser.INTRODUCER);
				this.state = 11551;
				this.char_set_name();
				}
			}

			this.state = 11554;
			this.id_expression();
			this.state = 11559;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			while (_la===2216) {
				{
				{
				this.state = 11555;
				this.match(PlSqlParser.PERIOD);
				this.state = 11556;
				this.id_expression();
				}
				}
				this.state = 11561;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public object_privilege(): Object_privilegeContext {
		let localctx: Object_privilegeContext = new Object_privilegeContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1474, PlSqlParser.RULE_object_privilege);
		try {
			this.state = 11594;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 35:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 11562;
				this.match(PlSqlParser.ALL);
				this.state = 11564;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 1598, this._ctx) ) {
				case 1:
					{
					this.state = 11563;
					this.match(PlSqlParser.PRIVILEGES);
					}
					break;
				}
				}
				break;
			case 39:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 11566;
				this.match(PlSqlParser.ALTER);
				}
				break;
			case 340:
				this.enterOuterAlt(localctx, 3);
				{
				this.state = 11567;
				this.match(PlSqlParser.DEBUG);
				}
				break;
			case 362:
				this.enterOuterAlt(localctx, 4);
				{
				this.state = 11568;
				this.match(PlSqlParser.DELETE);
				}
				break;
			case 475:
				this.enterOuterAlt(localctx, 5);
				{
				this.state = 11569;
				this.match(PlSqlParser.EXECUTE);
				}
				break;
			case 532:
				this.enterOuterAlt(localctx, 6);
				{
				this.state = 11570;
				this.match(PlSqlParser.FLASHBACK);
				this.state = 11571;
				this.match(PlSqlParser.ARCHIVE);
				}
				break;
			case 631:
				this.enterOuterAlt(localctx, 7);
				{
				this.state = 11572;
				this.match(PlSqlParser.INDEX);
				}
				break;
			case 651:
				this.enterOuterAlt(localctx, 8);
				{
				this.state = 11573;
				this.match(PlSqlParser.INHERIT);
				this.state = 11574;
				this.match(PlSqlParser.PRIVILEGES);
				}
				break;
			case 669:
				this.enterOuterAlt(localctx, 9);
				{
				this.state = 11575;
				this.match(PlSqlParser.INSERT);
				}
				break;
			case 720:
				this.enterOuterAlt(localctx, 10);
				{
				this.state = 11576;
				this.match(PlSqlParser.KEEP);
				this.state = 11577;
				this.match(PlSqlParser.SEQUENCE);
				}
				break;
			case 832:
				this.enterOuterAlt(localctx, 11);
				{
				this.state = 11578;
				this.match(PlSqlParser.MERGE);
				this.state = 11579;
				this.match(PlSqlParser.VIEW);
				}
				break;
			case 1128:
				this.enterOuterAlt(localctx, 12);
				{
				this.state = 11580;
				this.match(PlSqlParser.ON);
				this.state = 11581;
				this.match(PlSqlParser.COMMIT);
				this.state = 11582;
				this.match(PlSqlParser.REFRESH);
				}
				break;
			case 1334:
				this.enterOuterAlt(localctx, 13);
				{
				this.state = 11583;
				this.match(PlSqlParser.QUERY);
				this.state = 11584;
				this.match(PlSqlParser.REWRITE);
				}
				break;
			case 1353:
				this.enterOuterAlt(localctx, 14);
				{
				this.state = 11585;
				this.match(PlSqlParser.READ);
				}
				break;
			case 1374:
				this.enterOuterAlt(localctx, 15);
				{
				this.state = 11586;
				this.match(PlSqlParser.REFERENCES);
				}
				break;
			case 1490:
				this.enterOuterAlt(localctx, 16);
				{
				this.state = 11587;
				this.match(PlSqlParser.SELECT);
				}
				break;
			case 1974:
				this.enterOuterAlt(localctx, 17);
				{
				this.state = 11588;
				this.match(PlSqlParser.TRANSLATE);
				this.state = 11589;
				this.match(PlSqlParser.SQL);
				}
				break;
			case 1997:
				this.enterOuterAlt(localctx, 18);
				{
				this.state = 11590;
				this.match(PlSqlParser.UNDER);
				}
				break;
			case 2025:
				this.enterOuterAlt(localctx, 19);
				{
				this.state = 11591;
				this.match(PlSqlParser.UPDATE);
				}
				break;
			case 2059:
				this.enterOuterAlt(localctx, 20);
				{
				this.state = 11592;
				this.match(PlSqlParser.USE);
				}
				break;
			case 2125:
				this.enterOuterAlt(localctx, 21);
				{
				this.state = 11593;
				this.match(PlSqlParser.WRITE);
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public system_privilege(): System_privilegeContext {
		let localctx: System_privilegeContext = new System_privilegeContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1476, PlSqlParser.RULE_system_privilege);
		let _la: number;
		try {
			this.state = 11922;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1626, this._ctx) ) {
			case 1:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 11596;
				this.match(PlSqlParser.ALL);
				this.state = 11597;
				this.match(PlSqlParser.PRIVILEGES);
				}
				break;
			case 2:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 11598;
				this.match(PlSqlParser.ADVISOR);
				}
				break;
			case 3:
				this.enterOuterAlt(localctx, 3);
				{
				this.state = 11599;
				this.match(PlSqlParser.ADMINISTER);
				this.state = 11601;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===48) {
					{
					this.state = 11600;
					this.match(PlSqlParser.ANY);
					}
				}

				this.state = 11603;
				this.match(PlSqlParser.SQL);
				this.state = 11604;
				this.match(PlSqlParser.TUNING);
				this.state = 11605;
				this.match(PlSqlParser.SET);
				}
				break;
			case 4:
				this.enterOuterAlt(localctx, 4);
				{
				this.state = 11606;
				_la = this._input.LA(1);
				if(!(_la===39 || _la===288 || _la===411)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				this.state = 11607;
				this.match(PlSqlParser.ANY);
				this.state = 11608;
				this.match(PlSqlParser.SQL);
				this.state = 11609;
				this.match(PlSqlParser.PROFILE);
				}
				break;
			case 5:
				this.enterOuterAlt(localctx, 5);
				{
				this.state = 11610;
				this.match(PlSqlParser.ADMINISTER);
				this.state = 11611;
				this.match(PlSqlParser.SQL);
				this.state = 11612;
				this.match(PlSqlParser.MANAGEMENT);
				this.state = 11613;
				this.match(PlSqlParser.OBJECT);
				}
				break;
			case 6:
				this.enterOuterAlt(localctx, 6);
				{
				this.state = 11614;
				this.match(PlSqlParser.CREATE);
				this.state = 11616;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===48) {
					{
					this.state = 11615;
					this.match(PlSqlParser.ANY);
					}
				}

				this.state = 11618;
				this.match(PlSqlParser.CLUSTER);
				}
				break;
			case 7:
				this.enterOuterAlt(localctx, 7);
				{
				this.state = 11619;
				_la = this._input.LA(1);
				if(!(_la===39 || _la===411)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				this.state = 11620;
				this.match(PlSqlParser.ANY);
				this.state = 11621;
				this.match(PlSqlParser.CLUSTER);
				}
				break;
			case 8:
				this.enterOuterAlt(localctx, 8);
				{
				this.state = 11622;
				_la = this._input.LA(1);
				if(!(_la===288 || _la===411)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				this.state = 11623;
				this.match(PlSqlParser.ANY);
				this.state = 11624;
				this.match(PlSqlParser.CONTEXT);
				}
				break;
			case 9:
				this.enterOuterAlt(localctx, 9);
				{
				this.state = 11625;
				this.match(PlSqlParser.EXEMPT);
				this.state = 11626;
				this.match(PlSqlParser.REDACTION);
				this.state = 11627;
				this.match(PlSqlParser.POLICY);
				}
				break;
			case 10:
				this.enterOuterAlt(localctx, 10);
				{
				this.state = 11628;
				this.match(PlSqlParser.ALTER);
				this.state = 11629;
				this.match(PlSqlParser.DATABASE);
				}
				break;
			case 11:
				this.enterOuterAlt(localctx, 11);
				{
				this.state = 11630;
				_la = this._input.LA(1);
				if(!(_la===39 || _la===288)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				this.state = 11632;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===1324) {
					{
					this.state = 11631;
					this.match(PlSqlParser.PUBLIC);
					}
				}

				this.state = 11634;
				this.match(PlSqlParser.DATABASE);
				this.state = 11635;
				this.match(PlSqlParser.LINK);
				}
				break;
			case 12:
				this.enterOuterAlt(localctx, 12);
				{
				this.state = 11636;
				this.match(PlSqlParser.DROP);
				this.state = 11637;
				this.match(PlSqlParser.PUBLIC);
				this.state = 11638;
				this.match(PlSqlParser.DATABASE);
				this.state = 11639;
				this.match(PlSqlParser.LINK);
				}
				break;
			case 13:
				this.enterOuterAlt(localctx, 13);
				{
				this.state = 11640;
				this.match(PlSqlParser.DEBUG);
				this.state = 11641;
				this.match(PlSqlParser.CONNECT);
				this.state = 11642;
				this.match(PlSqlParser.SESSION);
				}
				break;
			case 14:
				this.enterOuterAlt(localctx, 14);
				{
				this.state = 11643;
				this.match(PlSqlParser.DEBUG);
				this.state = 11644;
				this.match(PlSqlParser.ANY);
				this.state = 11645;
				this.match(PlSqlParser.PROCEDURE);
				}
				break;
			case 15:
				this.enterOuterAlt(localctx, 15);
				{
				this.state = 11646;
				this.match(PlSqlParser.ANALYZE);
				this.state = 11647;
				this.match(PlSqlParser.ANY);
				this.state = 11648;
				this.match(PlSqlParser.DICTIONARY);
				}
				break;
			case 16:
				this.enterOuterAlt(localctx, 16);
				{
				this.state = 11649;
				this.match(PlSqlParser.CREATE);
				this.state = 11651;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===48) {
					{
					this.state = 11650;
					this.match(PlSqlParser.ANY);
					}
				}

				this.state = 11653;
				this.match(PlSqlParser.DIMENSION);
				}
				break;
			case 17:
				this.enterOuterAlt(localctx, 17);
				{
				this.state = 11654;
				_la = this._input.LA(1);
				if(!(_la===39 || _la===411)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				this.state = 11655;
				this.match(PlSqlParser.ANY);
				this.state = 11656;
				this.match(PlSqlParser.DIMENSION);
				}
				break;
			case 18:
				this.enterOuterAlt(localctx, 18);
				{
				this.state = 11657;
				_la = this._input.LA(1);
				if(!(_la===288 || _la===411)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				this.state = 11658;
				this.match(PlSqlParser.ANY);
				this.state = 11659;
				this.match(PlSqlParser.DIRECTORY);
				}
				break;
			case 19:
				this.enterOuterAlt(localctx, 19);
				{
				this.state = 11660;
				_la = this._input.LA(1);
				if(!(_la===288 || _la===411)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				this.state = 11661;
				this.match(PlSqlParser.ANY);
				this.state = 11662;
				this.match(PlSqlParser.EDITION);
				}
				break;
			case 20:
				this.enterOuterAlt(localctx, 20);
				{
				this.state = 11663;
				this.match(PlSqlParser.FLASHBACK);
				this.state = 11668;
				this._errHandler.sync(this);
				switch (this._input.LA(1)) {
				case 57:
					{
					this.state = 11664;
					this.match(PlSqlParser.ARCHIVE);
					this.state = 11665;
					this.match(PlSqlParser.ADMINISTER);
					}
					break;
				case 48:
					{
					this.state = 11666;
					this.match(PlSqlParser.ANY);
					this.state = 11667;
					this.match(PlSqlParser.TABLE);
					}
					break;
				default:
					throw new NoViableAltException(this);
				}
				}
				break;
			case 21:
				this.enterOuterAlt(localctx, 21);
				{
				this.state = 11670;
				_la = this._input.LA(1);
				if(!(_la===39 || _la===288 || _la===411)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				this.state = 11671;
				this.match(PlSqlParser.ANY);
				this.state = 11672;
				this.match(PlSqlParser.INDEX);
				}
				break;
			case 22:
				this.enterOuterAlt(localctx, 22);
				{
				this.state = 11673;
				this.match(PlSqlParser.CREATE);
				this.state = 11675;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===48) {
					{
					this.state = 11674;
					this.match(PlSqlParser.ANY);
					}
				}

				this.state = 11677;
				this.match(PlSqlParser.INDEXTYPE);
				}
				break;
			case 23:
				this.enterOuterAlt(localctx, 23);
				{
				this.state = 11678;
				_la = this._input.LA(1);
				if(!(_la===39 || _la===411 || _la===475)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				this.state = 11679;
				this.match(PlSqlParser.ANY);
				this.state = 11680;
				this.match(PlSqlParser.INDEXTYPE);
				}
				break;
			case 24:
				this.enterOuterAlt(localctx, 24);
				{
				this.state = 11681;
				this.match(PlSqlParser.CREATE);
				this.state = 11683;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===48 || _la===493) {
					{
					this.state = 11682;
					_la = this._input.LA(1);
					if(!(_la===48 || _la===493)) {
					this._errHandler.recoverInline(this);
					}
					else {
						this._errHandler.reportMatch(this);
					    this.consume();
					}
					}
				}

				this.state = 11685;
				this.match(PlSqlParser.JOB);
				}
				break;
			case 25:
				this.enterOuterAlt(localctx, 25);
				{
				this.state = 11686;
				this.match(PlSqlParser.EXECUTE);
				this.state = 11687;
				this.match(PlSqlParser.ANY);
				this.state = 11688;
				_la = this._input.LA(1);
				if(!(_la===186 || _la===1317)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				}
				break;
			case 26:
				this.enterOuterAlt(localctx, 26);
				{
				this.state = 11689;
				this.match(PlSqlParser.MANAGE);
				this.state = 11690;
				this.match(PlSqlParser.SCHEDULER);
				}
				break;
			case 27:
				this.enterOuterAlt(localctx, 27);
				{
				this.state = 11691;
				this.match(PlSqlParser.ADMINISTER);
				this.state = 11692;
				this.match(PlSqlParser.KEY);
				this.state = 11693;
				this.match(PlSqlParser.MANAGEMENT);
				}
				break;
			case 28:
				this.enterOuterAlt(localctx, 28);
				{
				this.state = 11694;
				this.match(PlSqlParser.CREATE);
				this.state = 11696;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===48) {
					{
					this.state = 11695;
					this.match(PlSqlParser.ANY);
					}
				}

				this.state = 11698;
				this.match(PlSqlParser.LIBRARY);
				}
				break;
			case 29:
				this.enterOuterAlt(localctx, 29);
				{
				this.state = 11699;
				_la = this._input.LA(1);
				if(!(_la===39 || _la===411 || _la===475)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				this.state = 11700;
				this.match(PlSqlParser.ANY);
				this.state = 11701;
				this.match(PlSqlParser.LIBRARY);
				}
				break;
			case 30:
				this.enterOuterAlt(localctx, 30);
				{
				this.state = 11702;
				this.match(PlSqlParser.LOGMINING);
				}
				break;
			case 31:
				this.enterOuterAlt(localctx, 31);
				{
				this.state = 11703;
				this.match(PlSqlParser.CREATE);
				this.state = 11705;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===48) {
					{
					this.state = 11704;
					this.match(PlSqlParser.ANY);
					}
				}

				this.state = 11707;
				this.match(PlSqlParser.MATERIALIZED);
				this.state = 11708;
				this.match(PlSqlParser.VIEW);
				}
				break;
			case 32:
				this.enterOuterAlt(localctx, 32);
				{
				this.state = 11709;
				_la = this._input.LA(1);
				if(!(_la===39 || _la===411)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				this.state = 11710;
				this.match(PlSqlParser.ANY);
				this.state = 11711;
				this.match(PlSqlParser.MATERIALIZED);
				this.state = 11712;
				this.match(PlSqlParser.VIEW);
				}
				break;
			case 33:
				this.enterOuterAlt(localctx, 33);
				{
				this.state = 11714;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===566) {
					{
					this.state = 11713;
					this.match(PlSqlParser.GLOBAL);
					}
				}

				this.state = 11716;
				this.match(PlSqlParser.QUERY);
				this.state = 11717;
				this.match(PlSqlParser.REWRITE);
				}
				break;
			case 34:
				this.enterOuterAlt(localctx, 34);
				{
				this.state = 11718;
				this.match(PlSqlParser.ON);
				this.state = 11719;
				this.match(PlSqlParser.COMMIT);
				this.state = 11720;
				this.match(PlSqlParser.REFRESH);
				}
				break;
			case 35:
				this.enterOuterAlt(localctx, 35);
				{
				this.state = 11721;
				this.match(PlSqlParser.CREATE);
				this.state = 11723;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===48) {
					{
					this.state = 11722;
					this.match(PlSqlParser.ANY);
					}
				}

				this.state = 11725;
				this.match(PlSqlParser.MINING);
				this.state = 11726;
				this.match(PlSqlParser.MODEL);
				}
				break;
			case 36:
				this.enterOuterAlt(localctx, 36);
				{
				this.state = 11727;
				_la = this._input.LA(1);
				if(!(_la===39 || _la===217 || _la===411 || _la===1490)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				this.state = 11728;
				this.match(PlSqlParser.ANY);
				this.state = 11729;
				this.match(PlSqlParser.MINING);
				this.state = 11730;
				this.match(PlSqlParser.MODEL);
				}
				break;
			case 37:
				this.enterOuterAlt(localctx, 37);
				{
				this.state = 11731;
				this.match(PlSqlParser.CREATE);
				this.state = 11733;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===48) {
					{
					this.state = 11732;
					this.match(PlSqlParser.ANY);
					}
				}

				this.state = 11735;
				this.match(PlSqlParser.CUBE);
				}
				break;
			case 38:
				this.enterOuterAlt(localctx, 38);
				{
				this.state = 11736;
				_la = this._input.LA(1);
				if(!(_la===39 || _la===411 || _la===1490 || _la===2025)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				this.state = 11737;
				this.match(PlSqlParser.ANY);
				this.state = 11738;
				this.match(PlSqlParser.CUBE);
				}
				break;
			case 39:
				this.enterOuterAlt(localctx, 39);
				{
				this.state = 11739;
				this.match(PlSqlParser.CREATE);
				this.state = 11741;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===48) {
					{
					this.state = 11740;
					this.match(PlSqlParser.ANY);
					}
				}

				this.state = 11743;
				this.match(PlSqlParser.MEASURE);
				this.state = 11744;
				this.match(PlSqlParser.FOLDER);
				}
				break;
			case 40:
				this.enterOuterAlt(localctx, 40);
				{
				this.state = 11745;
				_la = this._input.LA(1);
				if(!(_la===362 || _la===411 || _la===669)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				this.state = 11746;
				this.match(PlSqlParser.ANY);
				this.state = 11747;
				this.match(PlSqlParser.MEASURE);
				this.state = 11748;
				this.match(PlSqlParser.FOLDER);
				}
				break;
			case 41:
				this.enterOuterAlt(localctx, 41);
				{
				this.state = 11749;
				this.match(PlSqlParser.CREATE);
				this.state = 11751;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===48) {
					{
					this.state = 11750;
					this.match(PlSqlParser.ANY);
					}
				}

				this.state = 11753;
				this.match(PlSqlParser.CUBE);
				this.state = 11754;
				this.match(PlSqlParser.DIMENSION);
				}
				break;
			case 42:
				this.enterOuterAlt(localctx, 42);
				{
				this.state = 11755;
				_la = this._input.LA(1);
				if(!(_la===39 || _la===362 || _la===411 || _la===669 || _la===1490 || _la===2025)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				this.state = 11756;
				this.match(PlSqlParser.ANY);
				this.state = 11757;
				this.match(PlSqlParser.CUBE);
				this.state = 11758;
				this.match(PlSqlParser.DIMENSION);
				}
				break;
			case 43:
				this.enterOuterAlt(localctx, 43);
				{
				this.state = 11759;
				this.match(PlSqlParser.CREATE);
				this.state = 11761;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===48) {
					{
					this.state = 11760;
					this.match(PlSqlParser.ANY);
					}
				}

				this.state = 11763;
				this.match(PlSqlParser.CUBE);
				this.state = 11764;
				this.match(PlSqlParser.BUILD);
				this.state = 11765;
				this.match(PlSqlParser.PROCESS);
				}
				break;
			case 44:
				this.enterOuterAlt(localctx, 44);
				{
				this.state = 11766;
				_la = this._input.LA(1);
				if(!(_la===411 || _la===2025)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				this.state = 11767;
				this.match(PlSqlParser.ANY);
				this.state = 11768;
				this.match(PlSqlParser.CUBE);
				this.state = 11769;
				this.match(PlSqlParser.BUILD);
				this.state = 11770;
				this.match(PlSqlParser.PROCESS);
				}
				break;
			case 45:
				this.enterOuterAlt(localctx, 45);
				{
				this.state = 11771;
				this.match(PlSqlParser.CREATE);
				this.state = 11773;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===48) {
					{
					this.state = 11772;
					this.match(PlSqlParser.ANY);
					}
				}

				this.state = 11775;
				this.match(PlSqlParser.OPERATOR);
				}
				break;
			case 46:
				this.enterOuterAlt(localctx, 46);
				{
				this.state = 11776;
				_la = this._input.LA(1);
				if(!(_la===39 || _la===411 || _la===475)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				this.state = 11777;
				this.match(PlSqlParser.ANY);
				this.state = 11778;
				this.match(PlSqlParser.OPERATOR);
				}
				break;
			case 47:
				this.enterOuterAlt(localctx, 47);
				{
				this.state = 11779;
				_la = this._input.LA(1);
				if(!(_la===39 || _la===288 || _la===411)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				this.state = 11780;
				this.match(PlSqlParser.ANY);
				this.state = 11781;
				this.match(PlSqlParser.OUTLINE);
				}
				break;
			case 48:
				this.enterOuterAlt(localctx, 48);
				{
				this.state = 11782;
				this.match(PlSqlParser.CREATE);
				this.state = 11783;
				this.match(PlSqlParser.PLUGGABLE);
				this.state = 11784;
				this.match(PlSqlParser.DATABASE);
				}
				break;
			case 49:
				this.enterOuterAlt(localctx, 49);
				{
				this.state = 11785;
				this.match(PlSqlParser.SET);
				this.state = 11786;
				this.match(PlSqlParser.CONTAINER);
				}
				break;
			case 50:
				this.enterOuterAlt(localctx, 50);
				{
				this.state = 11787;
				this.match(PlSqlParser.CREATE);
				this.state = 11789;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===48) {
					{
					this.state = 11788;
					this.match(PlSqlParser.ANY);
					}
				}

				this.state = 11791;
				this.match(PlSqlParser.PROCEDURE);
				}
				break;
			case 51:
				this.enterOuterAlt(localctx, 51);
				{
				this.state = 11792;
				_la = this._input.LA(1);
				if(!(_la===39 || _la===411 || _la===475)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				this.state = 11793;
				this.match(PlSqlParser.ANY);
				this.state = 11794;
				this.match(PlSqlParser.PROCEDURE);
				}
				break;
			case 52:
				this.enterOuterAlt(localctx, 52);
				{
				this.state = 11795;
				_la = this._input.LA(1);
				if(!(_la===39 || _la===288 || _la===411)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				this.state = 11796;
				this.match(PlSqlParser.PROFILE);
				}
				break;
			case 53:
				this.enterOuterAlt(localctx, 53);
				{
				this.state = 11797;
				this.match(PlSqlParser.CREATE);
				this.state = 11798;
				this.match(PlSqlParser.ROLE);
				}
				break;
			case 54:
				this.enterOuterAlt(localctx, 54);
				{
				this.state = 11799;
				_la = this._input.LA(1);
				if(!(_la===39 || _la===411 || _la===571)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				this.state = 11800;
				this.match(PlSqlParser.ANY);
				this.state = 11801;
				this.match(PlSqlParser.ROLE);
				}
				break;
			case 55:
				this.enterOuterAlt(localctx, 55);
				{
				this.state = 11802;
				_la = this._input.LA(1);
				if(!(_la===39 || _la===288 || _la===411)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				this.state = 11803;
				this.match(PlSqlParser.ROLLBACK);
				this.state = 11804;
				this.match(PlSqlParser.SEGMENT);
				}
				break;
			case 56:
				this.enterOuterAlt(localctx, 56);
				{
				this.state = 11805;
				this.match(PlSqlParser.CREATE);
				this.state = 11807;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===48) {
					{
					this.state = 11806;
					this.match(PlSqlParser.ANY);
					}
				}

				this.state = 11809;
				this.match(PlSqlParser.SEQUENCE);
				}
				break;
			case 57:
				this.enterOuterAlt(localctx, 57);
				{
				this.state = 11810;
				_la = this._input.LA(1);
				if(!(_la===39 || _la===411 || _la===1490)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				this.state = 11811;
				this.match(PlSqlParser.ANY);
				this.state = 11812;
				this.match(PlSqlParser.SEQUENCE);
				}
				break;
			case 58:
				this.enterOuterAlt(localctx, 58);
				{
				this.state = 11813;
				_la = this._input.LA(1);
				if(!(_la===39 || _la===288 || _la===1421)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				this.state = 11814;
				this.match(PlSqlParser.SESSION);
				}
				break;
			case 59:
				this.enterOuterAlt(localctx, 59);
				{
				this.state = 11815;
				this.match(PlSqlParser.ALTER);
				this.state = 11816;
				this.match(PlSqlParser.RESOURCE);
				this.state = 11817;
				this.match(PlSqlParser.COST);
				}
				break;
			case 60:
				this.enterOuterAlt(localctx, 60);
				{
				this.state = 11818;
				this.match(PlSqlParser.CREATE);
				this.state = 11820;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===48) {
					{
					this.state = 11819;
					this.match(PlSqlParser.ANY);
					}
				}

				this.state = 11822;
				this.match(PlSqlParser.SQL);
				this.state = 11823;
				this.match(PlSqlParser.TRANSLATION);
				this.state = 11824;
				this.match(PlSqlParser.PROFILE);
				}
				break;
			case 61:
				this.enterOuterAlt(localctx, 61);
				{
				this.state = 11825;
				_la = this._input.LA(1);
				if(!(_la===39 || _la===411 || _la===2059)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				this.state = 11826;
				this.match(PlSqlParser.ANY);
				this.state = 11827;
				this.match(PlSqlParser.SQL);
				this.state = 11828;
				this.match(PlSqlParser.TRANSLATION);
				this.state = 11829;
				this.match(PlSqlParser.PROFILE);
				}
				break;
			case 62:
				this.enterOuterAlt(localctx, 62);
				{
				this.state = 11830;
				this.match(PlSqlParser.TRANSLATE);
				this.state = 11831;
				this.match(PlSqlParser.ANY);
				this.state = 11832;
				this.match(PlSqlParser.SQL);
				}
				break;
			case 63:
				this.enterOuterAlt(localctx, 63);
				{
				this.state = 11833;
				this.match(PlSqlParser.CREATE);
				this.state = 11835;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===48) {
					{
					this.state = 11834;
					this.match(PlSqlParser.ANY);
					}
				}

				this.state = 11837;
				this.match(PlSqlParser.SYNONYM);
				}
				break;
			case 64:
				this.enterOuterAlt(localctx, 64);
				{
				this.state = 11838;
				this.match(PlSqlParser.DROP);
				this.state = 11839;
				this.match(PlSqlParser.ANY);
				this.state = 11840;
				this.match(PlSqlParser.SYNONYM);
				}
				break;
			case 65:
				this.enterOuterAlt(localctx, 65);
				{
				this.state = 11841;
				_la = this._input.LA(1);
				if(!(_la===288 || _la===411)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				this.state = 11842;
				this.match(PlSqlParser.PUBLIC);
				this.state = 11843;
				this.match(PlSqlParser.SYNONYM);
				}
				break;
			case 66:
				this.enterOuterAlt(localctx, 66);
				{
				this.state = 11844;
				this.match(PlSqlParser.CREATE);
				this.state = 11846;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===48) {
					{
					this.state = 11845;
					this.match(PlSqlParser.ANY);
					}
				}

				this.state = 11848;
				this.match(PlSqlParser.TABLE);
				}
				break;
			case 67:
				this.enterOuterAlt(localctx, 67);
				{
				this.state = 11849;
				_la = this._input.LA(1);
				if(!(_la===39 || _la===93 || _la===217 || _la===362 || _la===411 || _la===669 || _la===776 || _la===1353 || _la===1490 || _la===2025)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				this.state = 11850;
				this.match(PlSqlParser.ANY);
				this.state = 11851;
				this.match(PlSqlParser.TABLE);
				}
				break;
			case 68:
				this.enterOuterAlt(localctx, 68);
				{
				this.state = 11852;
				_la = this._input.LA(1);
				if(!(_la===39 || _la===288 || _la===411 || _la===797 || _la===2004)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				this.state = 11853;
				this.match(PlSqlParser.TABLESPACE);
				}
				break;
			case 69:
				this.enterOuterAlt(localctx, 69);
				{
				this.state = 11854;
				this.match(PlSqlParser.CREATE);
				this.state = 11856;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===48) {
					{
					this.state = 11855;
					this.match(PlSqlParser.ANY);
					}
				}

				this.state = 11858;
				this.match(PlSqlParser.TRIGGER);
				}
				break;
			case 70:
				this.enterOuterAlt(localctx, 70);
				{
				this.state = 11859;
				_la = this._input.LA(1);
				if(!(_la===39 || _la===411)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				this.state = 11860;
				this.match(PlSqlParser.ANY);
				this.state = 11861;
				this.match(PlSqlParser.TRIGGER);
				}
				break;
			case 71:
				this.enterOuterAlt(localctx, 71);
				{
				this.state = 11862;
				this.match(PlSqlParser.ADMINISTER);
				this.state = 11863;
				this.match(PlSqlParser.DATABASE);
				this.state = 11864;
				this.match(PlSqlParser.TRIGGER);
				}
				break;
			case 72:
				this.enterOuterAlt(localctx, 72);
				{
				this.state = 11865;
				this.match(PlSqlParser.CREATE);
				this.state = 11867;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===48) {
					{
					this.state = 11866;
					this.match(PlSqlParser.ANY);
					}
				}

				this.state = 11869;
				this.match(PlSqlParser.TYPE);
				}
				break;
			case 73:
				this.enterOuterAlt(localctx, 73);
				{
				this.state = 11870;
				_la = this._input.LA(1);
				if(!(_la===39 || _la===411 || _la===475 || _la===1997)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				this.state = 11871;
				this.match(PlSqlParser.ANY);
				this.state = 11872;
				this.match(PlSqlParser.TYPE);
				}
				break;
			case 74:
				this.enterOuterAlt(localctx, 74);
				{
				this.state = 11873;
				_la = this._input.LA(1);
				if(!(_la===39 || _la===288 || _la===411)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				this.state = 11874;
				this.match(PlSqlParser.USER);
				}
				break;
			case 75:
				this.enterOuterAlt(localctx, 75);
				{
				this.state = 11875;
				this.match(PlSqlParser.CREATE);
				this.state = 11877;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===48) {
					{
					this.state = 11876;
					this.match(PlSqlParser.ANY);
					}
				}

				this.state = 11879;
				this.match(PlSqlParser.VIEW);
				}
				break;
			case 76:
				this.enterOuterAlt(localctx, 76);
				{
				this.state = 11880;
				_la = this._input.LA(1);
				if(!(_la===411 || _la===832 || _la===1997)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				this.state = 11881;
				this.match(PlSqlParser.ANY);
				this.state = 11882;
				this.match(PlSqlParser.VIEW);
				}
				break;
			case 77:
				this.enterOuterAlt(localctx, 77);
				{
				this.state = 11883;
				_la = this._input.LA(1);
				if(!(_la===41 || _la===77)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				this.state = 11884;
				this.match(PlSqlParser.ANY);
				}
				break;
			case 78:
				this.enterOuterAlt(localctx, 78);
				{
				this.state = 11885;
				this.match(PlSqlParser.BECOME);
				this.state = 11886;
				this.match(PlSqlParser.USER);
				}
				break;
			case 79:
				this.enterOuterAlt(localctx, 79);
				{
				this.state = 11887;
				this.match(PlSqlParser.CHANGE);
				this.state = 11888;
				this.match(PlSqlParser.NOTIFICATION);
				}
				break;
			case 80:
				this.enterOuterAlt(localctx, 80);
				{
				this.state = 11889;
				this.match(PlSqlParser.EXEMPT);
				this.state = 11890;
				this.match(PlSqlParser.ACCESS);
				this.state = 11891;
				this.match(PlSqlParser.POLICY);
				}
				break;
			case 81:
				this.enterOuterAlt(localctx, 81);
				{
				this.state = 11892;
				this.match(PlSqlParser.FORCE);
				this.state = 11894;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===48) {
					{
					this.state = 11893;
					this.match(PlSqlParser.ANY);
					}
				}

				this.state = 11896;
				this.match(PlSqlParser.TRANSACTION);
				}
				break;
			case 82:
				this.enterOuterAlt(localctx, 82);
				{
				this.state = 11897;
				this.match(PlSqlParser.GRANT);
				this.state = 11898;
				this.match(PlSqlParser.ANY);
				this.state = 11900;
				this._errHandler.sync(this);
				_la = this._input.LA(1);
				if (_la===1107) {
					{
					this.state = 11899;
					this.match(PlSqlParser.OBJECT);
					}
				}

				this.state = 11902;
				this.match(PlSqlParser.PRIVILEGE);
				}
				break;
			case 83:
				this.enterOuterAlt(localctx, 83);
				{
				this.state = 11903;
				this.match(PlSqlParser.INHERIT);
				this.state = 11904;
				this.match(PlSqlParser.ANY);
				this.state = 11905;
				this.match(PlSqlParser.PRIVILEGES);
				}
				break;
			case 84:
				this.enterOuterAlt(localctx, 84);
				{
				this.state = 11906;
				this.match(PlSqlParser.KEEP);
				this.state = 11907;
				this.match(PlSqlParser.DATE);
				this.state = 11908;
				this.match(PlSqlParser.TIME);
				}
				break;
			case 85:
				this.enterOuterAlt(localctx, 85);
				{
				this.state = 11909;
				this.match(PlSqlParser.KEEP);
				this.state = 11910;
				this.match(PlSqlParser.SYSGUID);
				}
				break;
			case 86:
				this.enterOuterAlt(localctx, 86);
				{
				this.state = 11911;
				this.match(PlSqlParser.PURGE);
				this.state = 11912;
				this.match(PlSqlParser.DBA_RECYCLEBIN);
				}
				break;
			case 87:
				this.enterOuterAlt(localctx, 87);
				{
				this.state = 11913;
				this.match(PlSqlParser.RESUMABLE);
				}
				break;
			case 88:
				this.enterOuterAlt(localctx, 88);
				{
				this.state = 11914;
				this.match(PlSqlParser.SELECT);
				this.state = 11915;
				this.match(PlSqlParser.ANY);
				this.state = 11916;
				_la = this._input.LA(1);
				if(!(_la===376 || _la===1970)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				}
				break;
			case 89:
				this.enterOuterAlt(localctx, 89);
				{
				this.state = 11917;
				this.match(PlSqlParser.SYSBACKUP);
				}
				break;
			case 90:
				this.enterOuterAlt(localctx, 90);
				{
				this.state = 11918;
				this.match(PlSqlParser.SYSDBA);
				}
				break;
			case 91:
				this.enterOuterAlt(localctx, 91);
				{
				this.state = 11919;
				this.match(PlSqlParser.SYSDG);
				}
				break;
			case 92:
				this.enterOuterAlt(localctx, 92);
				{
				this.state = 11920;
				this.match(PlSqlParser.SYSKM);
				}
				break;
			case 93:
				this.enterOuterAlt(localctx, 93);
				{
				this.state = 11921;
				this.match(PlSqlParser.SYSOPER);
				}
				break;
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public constant(): ConstantContext {
		let localctx: ConstantContext = new ConstantContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1478, PlSqlParser.RULE_constant);
		let _la: number;
		try {
			this.state = 11986;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 1933:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 11924;
				this.match(PlSqlParser.TIMESTAMP);
				this.state = 11927;
				this._errHandler.sync(this);
				switch (this._input.LA(1)) {
				case 2212:
				case 2219:
					{
					this.state = 11925;
					this.quoted_string();
					}
					break;
				case 2233:
				case 2240:
					{
					this.state = 11926;
					this.bind_variable();
					}
					break;
				default:
					throw new NoViableAltException(this);
				}
				this.state = 11933;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 1628, this._ctx) ) {
				case 1:
					{
					this.state = 11929;
					this.match(PlSqlParser.AT);
					this.state = 11930;
					this.match(PlSqlParser.TIME);
					this.state = 11931;
					this.match(PlSqlParser.ZONE);
					this.state = 11932;
					this.quoted_string();
					}
					break;
				}
				}
				break;
			case 689:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 11935;
				this.match(PlSqlParser.INTERVAL);
				this.state = 11939;
				this._errHandler.sync(this);
				switch (this._input.LA(1)) {
				case 2212:
				case 2219:
					{
					this.state = 11936;
					this.quoted_string();
					}
					break;
				case 2233:
				case 2240:
					{
					this.state = 11937;
					this.bind_variable();
					}
					break;
				case 1:
				case 2:
				case 3:
				case 4:
				case 5:
				case 6:
				case 7:
				case 8:
				case 9:
				case 10:
				case 11:
				case 12:
				case 13:
				case 14:
				case 15:
				case 16:
				case 17:
				case 18:
				case 19:
				case 20:
				case 21:
				case 22:
				case 23:
				case 24:
				case 25:
				case 26:
				case 27:
				case 28:
				case 29:
				case 30:
				case 31:
				case 32:
				case 33:
				case 34:
				case 36:
				case 37:
				case 38:
				case 40:
				case 41:
				case 42:
				case 44:
				case 45:
				case 46:
				case 47:
				case 49:
				case 50:
				case 51:
				case 52:
				case 53:
				case 54:
				case 55:
				case 56:
				case 57:
				case 58:
				case 59:
				case 60:
				case 63:
				case 64:
				case 65:
				case 66:
				case 67:
				case 68:
				case 69:
				case 70:
				case 71:
				case 72:
				case 73:
				case 74:
				case 75:
				case 76:
				case 78:
				case 79:
				case 80:
				case 81:
				case 82:
				case 83:
				case 85:
				case 86:
				case 87:
				case 88:
				case 89:
				case 90:
				case 91:
				case 92:
				case 93:
				case 95:
				case 96:
				case 97:
				case 98:
				case 99:
				case 100:
				case 101:
				case 102:
				case 103:
				case 104:
				case 105:
				case 106:
				case 108:
				case 109:
				case 110:
				case 111:
				case 112:
				case 113:
				case 114:
				case 115:
				case 116:
				case 117:
				case 118:
				case 119:
				case 120:
				case 121:
				case 122:
				case 123:
				case 124:
				case 125:
				case 126:
				case 127:
				case 128:
				case 129:
				case 130:
				case 131:
				case 132:
				case 133:
				case 134:
				case 135:
				case 136:
				case 137:
				case 138:
				case 139:
				case 140:
				case 141:
				case 142:
				case 143:
				case 144:
				case 145:
				case 147:
				case 148:
				case 149:
				case 150:
				case 151:
				case 152:
				case 153:
				case 154:
				case 155:
				case 156:
				case 157:
				case 158:
				case 160:
				case 161:
				case 162:
				case 163:
				case 164:
				case 165:
				case 166:
				case 167:
				case 168:
				case 169:
				case 170:
				case 171:
				case 172:
				case 174:
				case 175:
				case 176:
				case 177:
				case 178:
				case 179:
				case 181:
				case 182:
				case 183:
				case 184:
				case 185:
				case 186:
				case 187:
				case 188:
				case 189:
				case 190:
				case 191:
				case 192:
				case 193:
				case 194:
				case 195:
				case 196:
				case 197:
				case 198:
				case 199:
				case 200:
				case 201:
				case 202:
				case 203:
				case 204:
				case 205:
				case 206:
				case 207:
				case 208:
				case 209:
				case 210:
				case 211:
				case 212:
				case 213:
				case 214:
				case 215:
				case 216:
				case 217:
				case 218:
				case 219:
				case 220:
				case 221:
				case 222:
				case 223:
				case 224:
				case 225:
				case 226:
				case 227:
				case 228:
				case 229:
				case 230:
				case 231:
				case 233:
				case 234:
				case 235:
				case 236:
				case 237:
				case 238:
				case 239:
				case 240:
				case 241:
				case 242:
				case 243:
				case 244:
				case 245:
				case 246:
				case 247:
				case 248:
				case 249:
				case 250:
				case 252:
				case 253:
				case 254:
				case 255:
				case 256:
				case 257:
				case 258:
				case 259:
				case 260:
				case 261:
				case 262:
				case 263:
				case 264:
				case 265:
				case 266:
				case 267:
				case 268:
				case 269:
				case 270:
				case 271:
				case 272:
				case 273:
				case 274:
				case 275:
				case 276:
				case 277:
				case 278:
				case 279:
				case 280:
				case 281:
				case 282:
				case 283:
				case 284:
				case 285:
				case 286:
				case 287:
				case 289:
				case 290:
				case 291:
				case 292:
				case 293:
				case 294:
				case 295:
				case 296:
				case 297:
				case 298:
				case 299:
				case 300:
				case 301:
				case 302:
				case 303:
				case 304:
				case 305:
				case 306:
				case 307:
				case 308:
				case 309:
				case 310:
				case 311:
				case 312:
				case 313:
				case 314:
				case 315:
				case 316:
				case 317:
				case 318:
				case 319:
				case 321:
				case 322:
				case 323:
				case 324:
				case 325:
				case 326:
				case 328:
				case 329:
				case 330:
				case 331:
				case 332:
				case 333:
				case 334:
				case 335:
				case 336:
				case 337:
				case 338:
				case 339:
				case 340:
				case 341:
				case 342:
				case 343:
				case 344:
				case 345:
				case 346:
				case 347:
				case 348:
				case 349:
				case 350:
				case 352:
				case 353:
				case 354:
				case 355:
				case 356:
				case 357:
				case 358:
				case 359:
				case 360:
				case 361:
				case 362:
				case 363:
				case 364:
				case 365:
				case 366:
				case 367:
				case 368:
				case 369:
				case 370:
				case 372:
				case 373:
				case 374:
				case 375:
				case 376:
				case 377:
				case 378:
				case 379:
				case 380:
				case 381:
				case 382:
				case 383:
				case 384:
				case 385:
				case 386:
				case 387:
				case 388:
				case 389:
				case 390:
				case 391:
				case 392:
				case 394:
				case 395:
				case 397:
				case 398:
				case 399:
				case 400:
				case 401:
				case 402:
				case 403:
				case 404:
				case 405:
				case 406:
				case 407:
				case 408:
				case 409:
				case 410:
				case 412:
				case 413:
				case 414:
				case 415:
				case 417:
				case 418:
				case 419:
				case 420:
				case 421:
				case 422:
				case 423:
				case 424:
				case 425:
				case 426:
				case 427:
				case 428:
				case 429:
				case 430:
				case 431:
				case 434:
				case 435:
				case 436:
				case 437:
				case 438:
				case 439:
				case 440:
				case 441:
				case 442:
				case 443:
				case 444:
				case 446:
				case 447:
				case 448:
				case 449:
				case 450:
				case 451:
				case 452:
				case 453:
				case 454:
				case 455:
				case 456:
				case 457:
				case 458:
				case 459:
				case 460:
				case 461:
				case 462:
				case 463:
				case 464:
				case 465:
				case 466:
				case 467:
				case 468:
				case 469:
				case 470:
				case 471:
				case 472:
				case 473:
				case 475:
				case 476:
				case 477:
				case 478:
				case 479:
				case 480:
				case 481:
				case 482:
				case 483:
				case 484:
				case 485:
				case 486:
				case 487:
				case 488:
				case 489:
				case 490:
				case 491:
				case 492:
				case 493:
				case 494:
				case 495:
				case 496:
				case 497:
				case 498:
				case 499:
				case 500:
				case 501:
				case 502:
				case 503:
				case 504:
				case 505:
				case 506:
				case 507:
				case 508:
				case 509:
				case 510:
				case 511:
				case 512:
				case 513:
				case 514:
				case 515:
				case 516:
				case 517:
				case 518:
				case 519:
				case 520:
				case 521:
				case 522:
				case 523:
				case 524:
				case 525:
				case 526:
				case 527:
				case 528:
				case 529:
				case 530:
				case 531:
				case 532:
				case 533:
				case 534:
				case 535:
				case 536:
				case 537:
				case 538:
				case 539:
				case 540:
				case 541:
				case 542:
				case 543:
				case 544:
				case 545:
				case 547:
				case 548:
				case 549:
				case 550:
				case 551:
				case 552:
				case 553:
				case 555:
				case 556:
				case 557:
				case 558:
				case 559:
				case 560:
				case 561:
				case 562:
				case 563:
				case 564:
				case 565:
				case 566:
				case 567:
				case 568:
				case 569:
				case 572:
				case 574:
				case 575:
				case 576:
				case 577:
				case 578:
				case 579:
				case 580:
				case 581:
				case 582:
				case 583:
				case 584:
				case 586:
				case 587:
				case 588:
				case 589:
				case 590:
				case 591:
				case 592:
				case 593:
				case 594:
				case 595:
				case 596:
				case 597:
				case 598:
				case 599:
				case 600:
				case 602:
				case 603:
				case 604:
				case 605:
				case 606:
				case 607:
				case 608:
				case 609:
				case 610:
				case 611:
				case 612:
				case 613:
				case 614:
				case 615:
				case 616:
				case 617:
				case 618:
				case 619:
				case 620:
				case 621:
				case 622:
				case 623:
				case 624:
				case 625:
				case 626:
				case 627:
				case 628:
				case 629:
				case 630:
				case 632:
				case 633:
				case 634:
				case 635:
				case 636:
				case 637:
				case 638:
				case 639:
				case 640:
				case 641:
				case 642:
				case 643:
				case 644:
				case 645:
				case 646:
				case 647:
				case 648:
				case 649:
				case 650:
				case 651:
				case 653:
				case 654:
				case 655:
				case 656:
				case 657:
				case 658:
				case 659:
				case 660:
				case 661:
				case 662:
				case 663:
				case 664:
				case 665:
				case 666:
				case 667:
				case 668:
				case 670:
				case 671:
				case 672:
				case 673:
				case 674:
				case 675:
				case 676:
				case 677:
				case 678:
				case 679:
				case 680:
				case 681:
				case 682:
				case 683:
				case 684:
				case 685:
				case 686:
				case 687:
				case 689:
				case 690:
				case 692:
				case 693:
				case 694:
				case 696:
				case 697:
				case 698:
				case 699:
				case 700:
				case 701:
				case 702:
				case 703:
				case 704:
				case 705:
				case 706:
				case 707:
				case 708:
				case 709:
				case 710:
				case 711:
				case 712:
				case 713:
				case 714:
				case 715:
				case 716:
				case 717:
				case 718:
				case 719:
				case 720:
				case 721:
				case 722:
				case 723:
				case 724:
				case 725:
				case 726:
				case 727:
				case 728:
				case 729:
				case 730:
				case 731:
				case 732:
				case 733:
				case 734:
				case 735:
				case 736:
				case 737:
				case 738:
				case 739:
				case 740:
				case 741:
				case 742:
				case 743:
				case 744:
				case 745:
				case 746:
				case 747:
				case 748:
				case 749:
				case 750:
				case 751:
				case 752:
				case 753:
				case 754:
				case 755:
				case 756:
				case 758:
				case 759:
				case 760:
				case 761:
				case 762:
				case 763:
				case 764:
				case 765:
				case 766:
				case 767:
				case 768:
				case 769:
				case 770:
				case 771:
				case 772:
				case 773:
				case 774:
				case 775:
				case 777:
				case 778:
				case 779:
				case 780:
				case 781:
				case 782:
				case 783:
				case 784:
				case 785:
				case 786:
				case 787:
				case 788:
				case 789:
				case 790:
				case 791:
				case 792:
				case 793:
				case 794:
				case 795:
				case 796:
				case 797:
				case 798:
				case 799:
				case 800:
				case 801:
				case 802:
				case 803:
				case 804:
				case 805:
				case 806:
				case 807:
				case 808:
				case 809:
				case 810:
				case 811:
				case 812:
				case 813:
				case 814:
				case 815:
				case 816:
				case 817:
				case 818:
				case 819:
				case 820:
				case 821:
				case 822:
				case 823:
				case 824:
				case 825:
				case 826:
				case 827:
				case 828:
				case 829:
				case 830:
				case 831:
				case 832:
				case 833:
				case 834:
				case 835:
				case 836:
				case 837:
				case 838:
				case 839:
				case 840:
				case 841:
				case 843:
				case 844:
				case 845:
				case 846:
				case 847:
				case 848:
				case 849:
				case 850:
				case 851:
				case 852:
				case 853:
				case 854:
				case 855:
				case 856:
				case 857:
				case 858:
				case 859:
				case 861:
				case 862:
				case 863:
				case 864:
				case 865:
				case 866:
				case 867:
				case 868:
				case 869:
				case 870:
				case 871:
				case 872:
				case 873:
				case 874:
				case 875:
				case 876:
				case 877:
				case 878:
				case 879:
				case 880:
				case 881:
				case 882:
				case 883:
				case 884:
				case 885:
				case 886:
				case 888:
				case 889:
				case 890:
				case 891:
				case 892:
				case 893:
				case 894:
				case 895:
				case 896:
				case 897:
				case 898:
				case 899:
				case 900:
				case 901:
				case 902:
				case 903:
				case 904:
				case 905:
				case 906:
				case 907:
				case 908:
				case 909:
				case 910:
				case 911:
				case 912:
				case 913:
				case 914:
				case 915:
				case 916:
				case 917:
				case 918:
				case 919:
				case 920:
				case 921:
				case 922:
				case 923:
				case 924:
				case 925:
				case 926:
				case 927:
				case 928:
				case 929:
				case 930:
				case 931:
				case 932:
				case 933:
				case 934:
				case 935:
				case 936:
				case 937:
				case 938:
				case 939:
				case 940:
				case 941:
				case 942:
				case 943:
				case 944:
				case 945:
				case 946:
				case 947:
				case 948:
				case 949:
				case 950:
				case 951:
				case 952:
				case 954:
				case 955:
				case 956:
				case 957:
				case 958:
				case 959:
				case 960:
				case 961:
				case 962:
				case 963:
				case 964:
				case 965:
				case 966:
				case 967:
				case 968:
				case 969:
				case 970:
				case 971:
				case 972:
				case 973:
				case 974:
				case 975:
				case 976:
				case 977:
				case 978:
				case 979:
				case 980:
				case 981:
				case 982:
				case 983:
				case 984:
				case 985:
				case 986:
				case 987:
				case 988:
				case 989:
				case 990:
				case 991:
				case 992:
				case 993:
				case 994:
				case 995:
				case 996:
				case 997:
				case 998:
				case 999:
				case 1000:
				case 1001:
				case 1002:
				case 1003:
				case 1004:
				case 1005:
				case 1006:
				case 1007:
				case 1008:
				case 1009:
				case 1010:
				case 1011:
				case 1012:
				case 1013:
				case 1014:
				case 1015:
				case 1016:
				case 1017:
				case 1018:
				case 1019:
				case 1020:
				case 1021:
				case 1022:
				case 1023:
				case 1024:
				case 1025:
				case 1026:
				case 1027:
				case 1028:
				case 1029:
				case 1030:
				case 1031:
				case 1032:
				case 1033:
				case 1034:
				case 1035:
				case 1036:
				case 1037:
				case 1038:
				case 1039:
				case 1040:
				case 1041:
				case 1042:
				case 1043:
				case 1044:
				case 1045:
				case 1046:
				case 1047:
				case 1048:
				case 1049:
				case 1050:
				case 1051:
				case 1052:
				case 1053:
				case 1054:
				case 1055:
				case 1056:
				case 1057:
				case 1058:
				case 1059:
				case 1060:
				case 1061:
				case 1062:
				case 1063:
				case 1064:
				case 1065:
				case 1066:
				case 1067:
				case 1068:
				case 1069:
				case 1070:
				case 1071:
				case 1072:
				case 1074:
				case 1075:
				case 1076:
				case 1077:
				case 1078:
				case 1079:
				case 1080:
				case 1081:
				case 1082:
				case 1083:
				case 1084:
				case 1085:
				case 1086:
				case 1087:
				case 1089:
				case 1090:
				case 1091:
				case 1092:
				case 1093:
				case 1094:
				case 1095:
				case 1096:
				case 1098:
				case 1099:
				case 1100:
				case 1101:
				case 1102:
				case 1103:
				case 1104:
				case 1105:
				case 1106:
				case 1107:
				case 1108:
				case 1109:
				case 1110:
				case 1111:
				case 1112:
				case 1113:
				case 1114:
				case 1116:
				case 1117:
				case 1118:
				case 1119:
				case 1120:
				case 1121:
				case 1122:
				case 1123:
				case 1124:
				case 1125:
				case 1127:
				case 1129:
				case 1130:
				case 1131:
				case 1132:
				case 1133:
				case 1134:
				case 1135:
				case 1136:
				case 1137:
				case 1138:
				case 1139:
				case 1140:
				case 1142:
				case 1143:
				case 1144:
				case 1145:
				case 1146:
				case 1147:
				case 1148:
				case 1149:
				case 1150:
				case 1151:
				case 1152:
				case 1153:
				case 1154:
				case 1155:
				case 1156:
				case 1157:
				case 1158:
				case 1159:
				case 1160:
				case 1161:
				case 1162:
				case 1163:
				case 1164:
				case 1165:
				case 1166:
				case 1167:
				case 1169:
				case 1170:
				case 1171:
				case 1173:
				case 1174:
				case 1175:
				case 1176:
				case 1177:
				case 1178:
				case 1179:
				case 1180:
				case 1181:
				case 1182:
				case 1183:
				case 1184:
				case 1185:
				case 1186:
				case 1187:
				case 1188:
				case 1189:
				case 1190:
				case 1191:
				case 1192:
				case 1193:
				case 1194:
				case 1195:
				case 1197:
				case 1198:
				case 1199:
				case 1200:
				case 1201:
				case 1202:
				case 1203:
				case 1204:
				case 1205:
				case 1206:
				case 1207:
				case 1208:
				case 1209:
				case 1210:
				case 1211:
				case 1212:
				case 1213:
				case 1214:
				case 1215:
				case 1216:
				case 1217:
				case 1218:
				case 1219:
				case 1220:
				case 1221:
				case 1222:
				case 1223:
				case 1224:
				case 1225:
				case 1226:
				case 1228:
				case 1229:
				case 1230:
				case 1231:
				case 1232:
				case 1236:
				case 1237:
				case 1241:
				case 1242:
				case 1243:
				case 1244:
				case 1245:
				case 1246:
				case 1247:
				case 1248:
				case 1249:
				case 1250:
				case 1252:
				case 1253:
				case 1254:
				case 1255:
				case 1256:
				case 1257:
				case 1258:
				case 1259:
				case 1260:
				case 1261:
				case 1262:
				case 1263:
				case 1264:
				case 1265:
				case 1266:
				case 1267:
				case 1268:
				case 1269:
				case 1270:
				case 1271:
				case 1272:
				case 1273:
				case 1274:
				case 1275:
				case 1276:
				case 1277:
				case 1278:
				case 1279:
				case 1280:
				case 1281:
				case 1282:
				case 1283:
				case 1284:
				case 1285:
				case 1286:
				case 1287:
				case 1288:
				case 1289:
				case 1290:
				case 1291:
				case 1292:
				case 1293:
				case 1294:
				case 1295:
				case 1296:
				case 1297:
				case 1298:
				case 1299:
				case 1300:
				case 1301:
				case 1302:
				case 1303:
				case 1304:
				case 1305:
				case 1306:
				case 1308:
				case 1309:
				case 1310:
				case 1311:
				case 1312:
				case 1313:
				case 1314:
				case 1315:
				case 1316:
				case 1317:
				case 1318:
				case 1319:
				case 1320:
				case 1321:
				case 1322:
				case 1323:
				case 1325:
				case 1326:
				case 1327:
				case 1328:
				case 1329:
				case 1330:
				case 1331:
				case 1332:
				case 1333:
				case 1334:
				case 1335:
				case 1336:
				case 1337:
				case 1338:
				case 1339:
				case 1340:
				case 1341:
				case 1342:
				case 1343:
				case 1344:
				case 1345:
				case 1346:
				case 1347:
				case 1348:
				case 1349:
				case 1350:
				case 1351:
				case 1352:
				case 1353:
				case 1354:
				case 1355:
				case 1356:
				case 1357:
				case 1358:
				case 1359:
				case 1360:
				case 1361:
				case 1362:
				case 1363:
				case 1364:
				case 1365:
				case 1366:
				case 1367:
				case 1368:
				case 1369:
				case 1370:
				case 1371:
				case 1372:
				case 1373:
				case 1374:
				case 1375:
				case 1376:
				case 1377:
				case 1378:
				case 1379:
				case 1380:
				case 1381:
				case 1382:
				case 1383:
				case 1384:
				case 1385:
				case 1386:
				case 1387:
				case 1388:
				case 1389:
				case 1390:
				case 1391:
				case 1392:
				case 1393:
				case 1394:
				case 1395:
				case 1396:
				case 1397:
				case 1399:
				case 1400:
				case 1401:
				case 1402:
				case 1403:
				case 1404:
				case 1405:
				case 1406:
				case 1407:
				case 1408:
				case 1409:
				case 1410:
				case 1411:
				case 1412:
				case 1413:
				case 1414:
				case 1416:
				case 1417:
				case 1418:
				case 1419:
				case 1420:
				case 1421:
				case 1422:
				case 1423:
				case 1424:
				case 1425:
				case 1426:
				case 1427:
				case 1428:
				case 1429:
				case 1430:
				case 1431:
				case 1432:
				case 1433:
				case 1435:
				case 1436:
				case 1437:
				case 1438:
				case 1439:
				case 1440:
				case 1441:
				case 1442:
				case 1443:
				case 1444:
				case 1445:
				case 1446:
				case 1447:
				case 1448:
				case 1449:
				case 1450:
				case 1451:
				case 1452:
				case 1453:
				case 1454:
				case 1455:
				case 1456:
				case 1457:
				case 1458:
				case 1459:
				case 1460:
				case 1461:
				case 1462:
				case 1463:
				case 1464:
				case 1465:
				case 1466:
				case 1467:
				case 1468:
				case 1469:
				case 1470:
				case 1471:
				case 1472:
				case 1473:
				case 1474:
				case 1475:
				case 1476:
				case 1477:
				case 1478:
				case 1479:
				case 1480:
				case 1481:
				case 1482:
				case 1483:
				case 1484:
				case 1485:
				case 1486:
				case 1487:
				case 1488:
				case 1489:
				case 1491:
				case 1492:
				case 1493:
				case 1494:
				case 1495:
				case 1496:
				case 1497:
				case 1499:
				case 1500:
				case 1501:
				case 1502:
				case 1503:
				case 1504:
				case 1505:
				case 1506:
				case 1507:
				case 1508:
				case 1509:
				case 1510:
				case 1511:
				case 1512:
				case 1513:
				case 1514:
				case 1515:
				case 1516:
				case 1518:
				case 1519:
				case 1520:
				case 1521:
				case 1522:
				case 1523:
				case 1524:
				case 1525:
				case 1526:
				case 1527:
				case 1528:
				case 1529:
				case 1530:
				case 1531:
				case 1532:
				case 1533:
				case 1534:
				case 1536:
				case 1537:
				case 1538:
				case 1539:
				case 1540:
				case 1541:
				case 1542:
				case 1543:
				case 1544:
				case 1545:
				case 1546:
				case 1547:
				case 1548:
				case 1549:
				case 1550:
				case 1551:
				case 1552:
				case 1553:
				case 1554:
				case 1555:
				case 1556:
				case 1557:
				case 1558:
				case 1559:
				case 1560:
				case 1561:
				case 1562:
				case 1563:
				case 1564:
				case 1565:
				case 1566:
				case 1567:
				case 1568:
				case 1570:
				case 1571:
				case 1572:
				case 1573:
				case 1574:
				case 1575:
				case 1576:
				case 1577:
				case 1578:
				case 1579:
				case 1580:
				case 1581:
				case 1582:
				case 1583:
				case 1584:
				case 1585:
				case 1586:
				case 1587:
				case 1588:
				case 1589:
				case 1590:
				case 1591:
				case 1592:
				case 1593:
				case 1594:
				case 1595:
				case 1596:
				case 1597:
				case 1598:
				case 1599:
				case 1600:
				case 1601:
				case 1602:
				case 1603:
				case 1604:
				case 1605:
				case 1606:
				case 1607:
				case 1608:
				case 1609:
				case 1610:
				case 1611:
				case 1612:
				case 1613:
				case 1614:
				case 1615:
				case 1616:
				case 1617:
				case 1618:
				case 1619:
				case 1620:
				case 1621:
				case 1622:
				case 1623:
				case 1624:
				case 1625:
				case 1626:
				case 1628:
				case 1629:
				case 1630:
				case 1631:
				case 1632:
				case 1633:
				case 1634:
				case 1635:
				case 1636:
				case 1637:
				case 1638:
				case 1639:
				case 1640:
				case 1641:
				case 1642:
				case 1643:
				case 1644:
				case 1645:
				case 1646:
				case 1647:
				case 1648:
				case 1649:
				case 1650:
				case 1651:
				case 1652:
				case 1653:
				case 1654:
				case 1655:
				case 1656:
				case 1657:
				case 1658:
				case 1659:
				case 1660:
				case 1661:
				case 1662:
				case 1663:
				case 1664:
				case 1665:
				case 1666:
				case 1667:
				case 1668:
				case 1669:
				case 1670:
				case 1671:
				case 1672:
				case 1673:
				case 1674:
				case 1675:
				case 1676:
				case 1677:
				case 1678:
				case 1679:
				case 1680:
				case 1681:
				case 1682:
				case 1683:
				case 1684:
				case 1685:
				case 1686:
				case 1687:
				case 1688:
				case 1689:
				case 1690:
				case 1691:
				case 1692:
				case 1693:
				case 1694:
				case 1695:
				case 1696:
				case 1697:
				case 1698:
				case 1699:
				case 1700:
				case 1701:
				case 1702:
				case 1703:
				case 1704:
				case 1705:
				case 1706:
				case 1707:
				case 1708:
				case 1709:
				case 1710:
				case 1711:
				case 1712:
				case 1713:
				case 1714:
				case 1715:
				case 1716:
				case 1717:
				case 1718:
				case 1719:
				case 1720:
				case 1721:
				case 1722:
				case 1723:
				case 1724:
				case 1725:
				case 1726:
				case 1727:
				case 1728:
				case 1729:
				case 1730:
				case 1731:
				case 1732:
				case 1733:
				case 1734:
				case 1735:
				case 1736:
				case 1737:
				case 1738:
				case 1739:
				case 1740:
				case 1741:
				case 1742:
				case 1743:
				case 1744:
				case 1745:
				case 1746:
				case 1747:
				case 1748:
				case 1749:
				case 1750:
				case 1751:
				case 1752:
				case 1753:
				case 1754:
				case 1755:
				case 1756:
				case 1757:
				case 1758:
				case 1759:
				case 1760:
				case 1761:
				case 1762:
				case 1763:
				case 1764:
				case 1765:
				case 1766:
				case 1767:
				case 1768:
				case 1769:
				case 1770:
				case 1771:
				case 1772:
				case 1773:
				case 1774:
				case 1775:
				case 1776:
				case 1777:
				case 1778:
				case 1779:
				case 1780:
				case 1781:
				case 1782:
				case 1783:
				case 1784:
				case 1785:
				case 1786:
				case 1787:
				case 1788:
				case 1789:
				case 1790:
				case 1791:
				case 1792:
				case 1793:
				case 1794:
				case 1795:
				case 1796:
				case 1797:
				case 1798:
				case 1799:
				case 1800:
				case 1801:
				case 1802:
				case 1803:
				case 1804:
				case 1805:
				case 1806:
				case 1807:
				case 1808:
				case 1809:
				case 1810:
				case 1811:
				case 1812:
				case 1813:
				case 1814:
				case 1815:
				case 1816:
				case 1817:
				case 1818:
				case 1819:
				case 1820:
				case 1821:
				case 1822:
				case 1823:
				case 1824:
				case 1825:
				case 1826:
				case 1827:
				case 1828:
				case 1829:
				case 1830:
				case 1831:
				case 1832:
				case 1833:
				case 1834:
				case 1835:
				case 1836:
				case 1837:
				case 1838:
				case 1839:
				case 1840:
				case 1841:
				case 1842:
				case 1843:
				case 1844:
				case 1845:
				case 1846:
				case 1847:
				case 1848:
				case 1849:
				case 1850:
				case 1851:
				case 1852:
				case 1853:
				case 1854:
				case 1855:
				case 1856:
				case 1857:
				case 1858:
				case 1859:
				case 1860:
				case 1861:
				case 1862:
				case 1863:
				case 1864:
				case 1865:
				case 1866:
				case 1867:
				case 1868:
				case 1869:
				case 1870:
				case 1871:
				case 1872:
				case 1873:
				case 1874:
				case 1875:
				case 1876:
				case 1877:
				case 1878:
				case 1879:
				case 1880:
				case 1881:
				case 1882:
				case 1883:
				case 1884:
				case 1885:
				case 1886:
				case 1887:
				case 1888:
				case 1889:
				case 1890:
				case 1891:
				case 1892:
				case 1893:
				case 1894:
				case 1895:
				case 1896:
				case 1897:
				case 1898:
				case 1899:
				case 1900:
				case 1901:
				case 1902:
				case 1903:
				case 1904:
				case 1905:
				case 1906:
				case 1907:
				case 1908:
				case 1909:
				case 1910:
				case 1911:
				case 1912:
				case 1913:
				case 1914:
				case 1915:
				case 1916:
				case 1917:
				case 1918:
				case 1919:
				case 1920:
				case 1921:
				case 1922:
				case 1923:
				case 1924:
				case 1925:
				case 1926:
				case 1927:
				case 1928:
				case 1929:
				case 1930:
				case 1931:
				case 1932:
				case 1933:
				case 1934:
				case 1935:
				case 1936:
				case 1937:
				case 1939:
				case 1940:
				case 1941:
				case 1942:
				case 1943:
				case 1944:
				case 1945:
				case 1946:
				case 1947:
				case 1948:
				case 1949:
				case 1950:
				case 1951:
				case 1952:
				case 1953:
				case 1954:
				case 1955:
				case 1956:
				case 1957:
				case 1958:
				case 1959:
				case 1960:
				case 1961:
				case 1962:
				case 1963:
				case 1965:
				case 1966:
				case 1967:
				case 1968:
				case 1969:
				case 1970:
				case 1971:
				case 1972:
				case 1973:
				case 1974:
				case 1975:
				case 1976:
				case 1977:
				case 1978:
				case 1979:
				case 1980:
				case 1981:
				case 1982:
				case 1983:
				case 1984:
				case 1985:
				case 1986:
				case 1987:
				case 1988:
				case 1989:
				case 1990:
				case 1991:
				case 1992:
				case 1993:
				case 1994:
				case 1995:
				case 1996:
				case 1997:
				case 1998:
				case 1999:
				case 2000:
				case 2003:
				case 2004:
				case 2005:
				case 2006:
				case 2007:
				case 2008:
				case 2009:
				case 2010:
				case 2011:
				case 2012:
				case 2013:
				case 2014:
				case 2015:
				case 2016:
				case 2017:
				case 2018:
				case 2019:
				case 2020:
				case 2021:
				case 2022:
				case 2023:
				case 2024:
				case 2026:
				case 2027:
				case 2028:
				case 2029:
				case 2030:
				case 2031:
				case 2032:
				case 2033:
				case 2034:
				case 2035:
				case 2036:
				case 2037:
				case 2038:
				case 2039:
				case 2040:
				case 2041:
				case 2042:
				case 2043:
				case 2044:
				case 2045:
				case 2046:
				case 2047:
				case 2048:
				case 2049:
				case 2050:
				case 2051:
				case 2052:
				case 2053:
				case 2054:
				case 2055:
				case 2056:
				case 2057:
				case 2058:
				case 2059:
				case 2060:
				case 2061:
				case 2062:
				case 2063:
				case 2064:
				case 2065:
				case 2066:
				case 2067:
				case 2068:
				case 2069:
				case 2070:
				case 2071:
				case 2072:
				case 2074:
				case 2075:
				case 2076:
				case 2077:
				case 2078:
				case 2079:
				case 2080:
				case 2081:
				case 2082:
				case 2083:
				case 2084:
				case 2085:
				case 2086:
				case 2087:
				case 2088:
				case 2089:
				case 2090:
				case 2091:
				case 2092:
				case 2093:
				case 2094:
				case 2095:
				case 2096:
				case 2097:
				case 2098:
				case 2100:
				case 2101:
				case 2102:
				case 2103:
				case 2104:
				case 2105:
				case 2106:
				case 2107:
				case 2108:
				case 2109:
				case 2110:
				case 2111:
				case 2112:
				case 2113:
				case 2115:
				case 2116:
				case 2117:
				case 2118:
				case 2119:
				case 2120:
				case 2122:
				case 2123:
				case 2124:
				case 2125:
				case 2126:
				case 2128:
				case 2129:
				case 2130:
				case 2131:
				case 2132:
				case 2133:
				case 2134:
				case 2135:
				case 2136:
				case 2137:
				case 2138:
				case 2139:
				case 2140:
				case 2141:
				case 2142:
				case 2143:
				case 2145:
				case 2146:
				case 2147:
				case 2148:
				case 2149:
				case 2150:
				case 2151:
				case 2152:
				case 2153:
				case 2154:
				case 2155:
				case 2156:
				case 2157:
				case 2158:
				case 2159:
				case 2160:
				case 2161:
				case 2162:
				case 2163:
				case 2164:
				case 2165:
				case 2166:
				case 2168:
				case 2169:
				case 2170:
				case 2171:
				case 2172:
				case 2173:
				case 2174:
				case 2175:
				case 2176:
				case 2177:
				case 2178:
				case 2179:
				case 2180:
				case 2181:
				case 2182:
				case 2183:
				case 2184:
				case 2185:
				case 2186:
				case 2187:
				case 2188:
				case 2189:
				case 2191:
				case 2192:
				case 2193:
				case 2194:
				case 2195:
				case 2196:
				case 2197:
				case 2198:
				case 2199:
				case 2200:
				case 2201:
				case 2202:
				case 2203:
				case 2204:
				case 2205:
				case 2206:
				case 2207:
				case 2208:
				case 2209:
				case 2210:
				case 2211:
				case 2216:
				case 2220:
				case 2246:
				case 2252:
					{
					this.state = 11938;
					this.general_element_part();
					}
					break;
				default:
					throw new NoViableAltException(this);
				}
				this.state = 11941;
				_la = this._input.LA(1);
				if(!(_la===329 || _la===598 || _la===844 || _la===868 || _la===1480 || _la===2169)) {
				this._errHandler.recoverInline(this);
				}
				else {
					this._errHandler.reportMatch(this);
				    this.consume();
				}
				this.state = 11955;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 1633, this._ctx) ) {
				case 1:
					{
					this.state = 11942;
					this.match(PlSqlParser.LEFT_PAREN);
					this.state = 11945;
					this._errHandler.sync(this);
					switch (this._input.LA(1)) {
					case 2217:
						{
						this.state = 11943;
						this.match(PlSqlParser.UNSIGNED_INTEGER);
						}
						break;
					case 2233:
					case 2240:
						{
						this.state = 11944;
						this.bind_variable();
						}
						break;
					default:
						throw new NoViableAltException(this);
					}
					this.state = 11952;
					this._errHandler.sync(this);
					_la = this._input.LA(1);
					if (_la===2229) {
						{
						this.state = 11947;
						this.match(PlSqlParser.COMMA);
						this.state = 11950;
						this._errHandler.sync(this);
						switch (this._input.LA(1)) {
						case 2217:
							{
							this.state = 11948;
							this.match(PlSqlParser.UNSIGNED_INTEGER);
							}
							break;
						case 2233:
						case 2240:
							{
							this.state = 11949;
							this.bind_variable();
							}
							break;
						default:
							throw new NoViableAltException(this);
						}
						}
					}

					this.state = 11954;
					this.match(PlSqlParser.RIGHT_PAREN);
					}
					break;
				}
				this.state = 11972;
				this._errHandler.sync(this);
				switch ( this._interp.adaptivePredict(this._input, 1637, this._ctx) ) {
				case 1:
					{
					this.state = 11957;
					this.match(PlSqlParser.TO);
					this.state = 11970;
					this._errHandler.sync(this);
					switch (this._input.LA(1)) {
					case 329:
						{
						this.state = 11958;
						this.match(PlSqlParser.DAY);
						}
						break;
					case 598:
						{
						this.state = 11959;
						this.match(PlSqlParser.HOUR);
						}
						break;
					case 844:
						{
						this.state = 11960;
						this.match(PlSqlParser.MINUTE);
						}
						break;
					case 1480:
						{
						this.state = 11961;
						this.match(PlSqlParser.SECOND);
						this.state = 11968;
						this._errHandler.sync(this);
						switch ( this._interp.adaptivePredict(this._input, 1635, this._ctx) ) {
						case 1:
							{
							this.state = 11962;
							this.match(PlSqlParser.LEFT_PAREN);
							this.state = 11965;
							this._errHandler.sync(this);
							switch (this._input.LA(1)) {
							case 2217:
								{
								this.state = 11963;
								this.match(PlSqlParser.UNSIGNED_INTEGER);
								}
								break;
							case 2233:
							case 2240:
								{
								this.state = 11964;
								this.bind_variable();
								}
								break;
							default:
								throw new NoViableAltException(this);
							}
							this.state = 11967;
							this.match(PlSqlParser.RIGHT_PAREN);
							}
							break;
						}
						}
						break;
					default:
						throw new NoViableAltException(this);
					}
					}
					break;
				}
				}
				break;
			case 2217:
			case 2218:
				this.enterOuterAlt(localctx, 3);
				{
				this.state = 11974;
				this.numeric();
				}
				break;
			case 327:
				this.enterOuterAlt(localctx, 4);
				{
				this.state = 11975;
				this.match(PlSqlParser.DATE);
				this.state = 11976;
				this.quoted_string();
				}
				break;
			case 2212:
			case 2219:
				this.enterOuterAlt(localctx, 5);
				{
				this.state = 11977;
				this.quoted_string();
				}
				break;
			case 1097:
				this.enterOuterAlt(localctx, 6);
				{
				this.state = 11978;
				this.match(PlSqlParser.NULL_);
				}
				break;
			case 1979:
				this.enterOuterAlt(localctx, 7);
				{
				this.state = 11979;
				this.match(PlSqlParser.TRUE);
				}
				break;
			case 508:
				this.enterOuterAlt(localctx, 8);
				{
				this.state = 11980;
				this.match(PlSqlParser.FALSE);
				}
				break;
			case 335:
				this.enterOuterAlt(localctx, 9);
				{
				this.state = 11981;
				this.match(PlSqlParser.DBTIMEZONE);
				}
				break;
			case 1508:
				this.enterOuterAlt(localctx, 10);
				{
				this.state = 11982;
				this.match(PlSqlParser.SESSIONTIMEZONE);
				}
				break;
			case 845:
				this.enterOuterAlt(localctx, 11);
				{
				this.state = 11983;
				this.match(PlSqlParser.MINVALUE);
				}
				break;
			case 822:
				this.enterOuterAlt(localctx, 12);
				{
				this.state = 11984;
				this.match(PlSqlParser.MAXVALUE);
				}
				break;
			case 351:
				this.enterOuterAlt(localctx, 13);
				{
				this.state = 11985;
				this.match(PlSqlParser.DEFAULT);
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public numeric(): NumericContext {
		let localctx: NumericContext = new NumericContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1480, PlSqlParser.RULE_numeric);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 11988;
			_la = this._input.LA(1);
			if(!(_la===2217 || _la===2218)) {
			this._errHandler.recoverInline(this);
			}
			else {
				this._errHandler.reportMatch(this);
			    this.consume();
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public numeric_negative(): Numeric_negativeContext {
		let localctx: Numeric_negativeContext = new Numeric_negativeContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1482, PlSqlParser.RULE_numeric_negative);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 11990;
			this.match(PlSqlParser.MINUS_SIGN);
			this.state = 11991;
			this.numeric();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public quoted_string(): Quoted_stringContext {
		let localctx: Quoted_stringContext = new Quoted_stringContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1484, PlSqlParser.RULE_quoted_string);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 11993;
			_la = this._input.LA(1);
			if(!(_la===2212 || _la===2219)) {
			this._errHandler.recoverInline(this);
			}
			else {
				this._errHandler.reportMatch(this);
			    this.consume();
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public identifier(): IdentifierContext {
		let localctx: IdentifierContext = new IdentifierContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1486, PlSqlParser.RULE_identifier);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 11997;
			this._errHandler.sync(this);
			_la = this._input.LA(1);
			if (_la===2246) {
				{
				this.state = 11995;
				this.match(PlSqlParser.INTRODUCER);
				this.state = 11996;
				this.char_set_name();
				}
			}

			this.state = 11999;
			this.id_expression();
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public id_expression(): Id_expressionContext {
		let localctx: Id_expressionContext = new Id_expressionContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1488, PlSqlParser.RULE_id_expression);
		try {
			this.state = 12003;
			this._errHandler.sync(this);
			switch (this._input.LA(1)) {
			case 1:
			case 2:
			case 3:
			case 4:
			case 5:
			case 6:
			case 7:
			case 8:
			case 9:
			case 10:
			case 11:
			case 12:
			case 13:
			case 14:
			case 15:
			case 16:
			case 17:
			case 18:
			case 19:
			case 20:
			case 21:
			case 22:
			case 23:
			case 24:
			case 25:
			case 26:
			case 27:
			case 28:
			case 29:
			case 30:
			case 31:
			case 32:
			case 33:
			case 34:
			case 36:
			case 37:
			case 38:
			case 40:
			case 41:
			case 42:
			case 44:
			case 45:
			case 46:
			case 47:
			case 49:
			case 50:
			case 51:
			case 52:
			case 53:
			case 54:
			case 55:
			case 56:
			case 57:
			case 58:
			case 59:
			case 60:
			case 63:
			case 64:
			case 65:
			case 66:
			case 67:
			case 68:
			case 69:
			case 70:
			case 71:
			case 72:
			case 73:
			case 74:
			case 75:
			case 76:
			case 78:
			case 79:
			case 80:
			case 81:
			case 82:
			case 83:
			case 85:
			case 86:
			case 87:
			case 88:
			case 89:
			case 90:
			case 91:
			case 92:
			case 93:
			case 95:
			case 96:
			case 97:
			case 98:
			case 99:
			case 100:
			case 101:
			case 102:
			case 103:
			case 104:
			case 105:
			case 106:
			case 108:
			case 109:
			case 110:
			case 111:
			case 112:
			case 113:
			case 114:
			case 115:
			case 116:
			case 117:
			case 118:
			case 119:
			case 120:
			case 121:
			case 122:
			case 123:
			case 124:
			case 125:
			case 126:
			case 127:
			case 128:
			case 129:
			case 130:
			case 131:
			case 132:
			case 133:
			case 134:
			case 135:
			case 136:
			case 137:
			case 138:
			case 139:
			case 140:
			case 141:
			case 142:
			case 143:
			case 144:
			case 145:
			case 147:
			case 148:
			case 149:
			case 150:
			case 151:
			case 152:
			case 153:
			case 154:
			case 155:
			case 156:
			case 157:
			case 158:
			case 160:
			case 161:
			case 162:
			case 163:
			case 164:
			case 165:
			case 166:
			case 167:
			case 168:
			case 169:
			case 170:
			case 171:
			case 172:
			case 174:
			case 175:
			case 176:
			case 177:
			case 178:
			case 179:
			case 181:
			case 182:
			case 183:
			case 184:
			case 185:
			case 186:
			case 187:
			case 188:
			case 189:
			case 190:
			case 191:
			case 192:
			case 193:
			case 194:
			case 195:
			case 196:
			case 197:
			case 198:
			case 199:
			case 200:
			case 201:
			case 202:
			case 203:
			case 204:
			case 205:
			case 206:
			case 207:
			case 208:
			case 209:
			case 210:
			case 211:
			case 212:
			case 213:
			case 214:
			case 215:
			case 216:
			case 217:
			case 218:
			case 219:
			case 220:
			case 221:
			case 222:
			case 223:
			case 224:
			case 225:
			case 226:
			case 227:
			case 228:
			case 229:
			case 230:
			case 231:
			case 233:
			case 234:
			case 235:
			case 236:
			case 237:
			case 238:
			case 239:
			case 240:
			case 241:
			case 242:
			case 243:
			case 244:
			case 245:
			case 246:
			case 247:
			case 248:
			case 249:
			case 250:
			case 252:
			case 253:
			case 254:
			case 255:
			case 256:
			case 257:
			case 258:
			case 259:
			case 260:
			case 261:
			case 262:
			case 263:
			case 264:
			case 265:
			case 266:
			case 267:
			case 268:
			case 269:
			case 270:
			case 271:
			case 272:
			case 273:
			case 274:
			case 275:
			case 276:
			case 277:
			case 278:
			case 279:
			case 280:
			case 281:
			case 282:
			case 283:
			case 284:
			case 285:
			case 286:
			case 287:
			case 289:
			case 290:
			case 291:
			case 292:
			case 293:
			case 294:
			case 295:
			case 296:
			case 297:
			case 298:
			case 299:
			case 300:
			case 301:
			case 302:
			case 303:
			case 304:
			case 305:
			case 306:
			case 307:
			case 308:
			case 309:
			case 310:
			case 311:
			case 312:
			case 313:
			case 314:
			case 315:
			case 316:
			case 317:
			case 318:
			case 319:
			case 321:
			case 322:
			case 323:
			case 324:
			case 325:
			case 326:
			case 328:
			case 329:
			case 330:
			case 331:
			case 332:
			case 333:
			case 334:
			case 335:
			case 336:
			case 337:
			case 338:
			case 339:
			case 340:
			case 341:
			case 342:
			case 343:
			case 344:
			case 345:
			case 346:
			case 347:
			case 348:
			case 349:
			case 350:
			case 352:
			case 353:
			case 354:
			case 355:
			case 356:
			case 357:
			case 358:
			case 359:
			case 360:
			case 361:
			case 362:
			case 363:
			case 364:
			case 365:
			case 366:
			case 367:
			case 368:
			case 369:
			case 370:
			case 372:
			case 373:
			case 374:
			case 375:
			case 376:
			case 377:
			case 378:
			case 379:
			case 380:
			case 381:
			case 382:
			case 383:
			case 384:
			case 385:
			case 386:
			case 387:
			case 388:
			case 389:
			case 390:
			case 391:
			case 392:
			case 394:
			case 395:
			case 397:
			case 398:
			case 399:
			case 400:
			case 401:
			case 402:
			case 403:
			case 404:
			case 405:
			case 406:
			case 407:
			case 408:
			case 409:
			case 410:
			case 412:
			case 413:
			case 414:
			case 415:
			case 417:
			case 418:
			case 419:
			case 420:
			case 421:
			case 422:
			case 423:
			case 424:
			case 425:
			case 426:
			case 427:
			case 428:
			case 429:
			case 430:
			case 431:
			case 434:
			case 435:
			case 436:
			case 437:
			case 438:
			case 439:
			case 440:
			case 441:
			case 442:
			case 443:
			case 444:
			case 446:
			case 447:
			case 448:
			case 449:
			case 450:
			case 451:
			case 452:
			case 453:
			case 454:
			case 455:
			case 456:
			case 457:
			case 458:
			case 459:
			case 460:
			case 461:
			case 462:
			case 463:
			case 464:
			case 465:
			case 466:
			case 467:
			case 468:
			case 469:
			case 470:
			case 471:
			case 472:
			case 473:
			case 475:
			case 476:
			case 477:
			case 478:
			case 479:
			case 480:
			case 481:
			case 482:
			case 483:
			case 484:
			case 485:
			case 486:
			case 487:
			case 488:
			case 489:
			case 490:
			case 491:
			case 492:
			case 493:
			case 494:
			case 495:
			case 496:
			case 497:
			case 498:
			case 499:
			case 500:
			case 501:
			case 502:
			case 503:
			case 504:
			case 505:
			case 506:
			case 507:
			case 508:
			case 509:
			case 510:
			case 511:
			case 512:
			case 513:
			case 514:
			case 515:
			case 516:
			case 517:
			case 518:
			case 519:
			case 520:
			case 521:
			case 522:
			case 523:
			case 524:
			case 525:
			case 526:
			case 527:
			case 528:
			case 529:
			case 530:
			case 531:
			case 532:
			case 533:
			case 534:
			case 535:
			case 536:
			case 537:
			case 538:
			case 539:
			case 540:
			case 541:
			case 542:
			case 543:
			case 544:
			case 545:
			case 547:
			case 548:
			case 549:
			case 550:
			case 551:
			case 552:
			case 553:
			case 555:
			case 556:
			case 557:
			case 558:
			case 559:
			case 560:
			case 561:
			case 562:
			case 563:
			case 564:
			case 565:
			case 566:
			case 567:
			case 568:
			case 569:
			case 572:
			case 574:
			case 575:
			case 576:
			case 577:
			case 578:
			case 579:
			case 580:
			case 581:
			case 582:
			case 583:
			case 584:
			case 586:
			case 587:
			case 588:
			case 589:
			case 590:
			case 591:
			case 592:
			case 593:
			case 594:
			case 595:
			case 596:
			case 597:
			case 598:
			case 599:
			case 600:
			case 602:
			case 603:
			case 604:
			case 605:
			case 606:
			case 607:
			case 608:
			case 609:
			case 610:
			case 611:
			case 612:
			case 613:
			case 614:
			case 615:
			case 616:
			case 617:
			case 618:
			case 619:
			case 620:
			case 621:
			case 622:
			case 623:
			case 624:
			case 625:
			case 626:
			case 627:
			case 628:
			case 629:
			case 630:
			case 632:
			case 633:
			case 634:
			case 635:
			case 636:
			case 637:
			case 638:
			case 639:
			case 640:
			case 641:
			case 642:
			case 643:
			case 644:
			case 645:
			case 646:
			case 647:
			case 648:
			case 649:
			case 650:
			case 651:
			case 653:
			case 654:
			case 655:
			case 656:
			case 657:
			case 658:
			case 659:
			case 660:
			case 661:
			case 662:
			case 663:
			case 664:
			case 665:
			case 666:
			case 667:
			case 668:
			case 670:
			case 671:
			case 672:
			case 673:
			case 674:
			case 675:
			case 676:
			case 677:
			case 678:
			case 679:
			case 680:
			case 681:
			case 682:
			case 683:
			case 684:
			case 685:
			case 686:
			case 687:
			case 689:
			case 690:
			case 692:
			case 693:
			case 694:
			case 696:
			case 697:
			case 698:
			case 699:
			case 700:
			case 701:
			case 702:
			case 703:
			case 704:
			case 705:
			case 706:
			case 707:
			case 708:
			case 709:
			case 710:
			case 711:
			case 712:
			case 713:
			case 714:
			case 715:
			case 716:
			case 717:
			case 718:
			case 719:
			case 720:
			case 721:
			case 722:
			case 723:
			case 724:
			case 725:
			case 726:
			case 727:
			case 728:
			case 729:
			case 730:
			case 731:
			case 732:
			case 733:
			case 734:
			case 735:
			case 736:
			case 737:
			case 738:
			case 739:
			case 740:
			case 741:
			case 742:
			case 743:
			case 744:
			case 745:
			case 746:
			case 747:
			case 748:
			case 749:
			case 750:
			case 751:
			case 752:
			case 753:
			case 754:
			case 755:
			case 756:
			case 758:
			case 759:
			case 760:
			case 761:
			case 762:
			case 763:
			case 764:
			case 765:
			case 766:
			case 767:
			case 768:
			case 769:
			case 770:
			case 771:
			case 772:
			case 773:
			case 774:
			case 775:
			case 777:
			case 778:
			case 779:
			case 780:
			case 781:
			case 782:
			case 783:
			case 784:
			case 785:
			case 786:
			case 787:
			case 788:
			case 789:
			case 790:
			case 791:
			case 792:
			case 793:
			case 794:
			case 795:
			case 796:
			case 797:
			case 798:
			case 799:
			case 800:
			case 801:
			case 802:
			case 803:
			case 804:
			case 805:
			case 806:
			case 807:
			case 808:
			case 809:
			case 810:
			case 811:
			case 812:
			case 813:
			case 814:
			case 815:
			case 816:
			case 817:
			case 818:
			case 819:
			case 820:
			case 821:
			case 822:
			case 823:
			case 824:
			case 825:
			case 826:
			case 827:
			case 828:
			case 829:
			case 830:
			case 831:
			case 832:
			case 833:
			case 834:
			case 835:
			case 836:
			case 837:
			case 838:
			case 839:
			case 840:
			case 841:
			case 843:
			case 844:
			case 845:
			case 846:
			case 847:
			case 848:
			case 849:
			case 850:
			case 851:
			case 852:
			case 853:
			case 854:
			case 855:
			case 856:
			case 857:
			case 858:
			case 859:
			case 861:
			case 862:
			case 863:
			case 864:
			case 865:
			case 866:
			case 867:
			case 868:
			case 869:
			case 870:
			case 871:
			case 872:
			case 873:
			case 874:
			case 875:
			case 876:
			case 877:
			case 878:
			case 879:
			case 880:
			case 881:
			case 882:
			case 883:
			case 884:
			case 885:
			case 886:
			case 888:
			case 889:
			case 890:
			case 891:
			case 892:
			case 893:
			case 894:
			case 895:
			case 896:
			case 897:
			case 898:
			case 899:
			case 900:
			case 901:
			case 902:
			case 903:
			case 904:
			case 905:
			case 906:
			case 907:
			case 908:
			case 909:
			case 910:
			case 911:
			case 912:
			case 913:
			case 914:
			case 915:
			case 916:
			case 917:
			case 918:
			case 919:
			case 920:
			case 921:
			case 922:
			case 923:
			case 924:
			case 925:
			case 926:
			case 927:
			case 928:
			case 929:
			case 930:
			case 931:
			case 932:
			case 933:
			case 934:
			case 935:
			case 936:
			case 937:
			case 938:
			case 939:
			case 940:
			case 941:
			case 942:
			case 943:
			case 944:
			case 945:
			case 946:
			case 947:
			case 948:
			case 949:
			case 950:
			case 951:
			case 952:
			case 954:
			case 955:
			case 956:
			case 957:
			case 958:
			case 959:
			case 960:
			case 961:
			case 962:
			case 963:
			case 964:
			case 965:
			case 966:
			case 967:
			case 968:
			case 969:
			case 970:
			case 971:
			case 972:
			case 973:
			case 974:
			case 975:
			case 976:
			case 977:
			case 978:
			case 979:
			case 980:
			case 981:
			case 982:
			case 983:
			case 984:
			case 985:
			case 986:
			case 987:
			case 988:
			case 989:
			case 990:
			case 991:
			case 992:
			case 993:
			case 994:
			case 995:
			case 996:
			case 997:
			case 998:
			case 999:
			case 1000:
			case 1001:
			case 1002:
			case 1003:
			case 1004:
			case 1005:
			case 1006:
			case 1007:
			case 1008:
			case 1009:
			case 1010:
			case 1011:
			case 1012:
			case 1013:
			case 1014:
			case 1015:
			case 1016:
			case 1017:
			case 1018:
			case 1019:
			case 1020:
			case 1021:
			case 1022:
			case 1023:
			case 1024:
			case 1025:
			case 1026:
			case 1027:
			case 1028:
			case 1029:
			case 1030:
			case 1031:
			case 1032:
			case 1033:
			case 1034:
			case 1035:
			case 1036:
			case 1037:
			case 1038:
			case 1039:
			case 1040:
			case 1041:
			case 1042:
			case 1043:
			case 1044:
			case 1045:
			case 1046:
			case 1047:
			case 1048:
			case 1049:
			case 1050:
			case 1051:
			case 1052:
			case 1053:
			case 1054:
			case 1055:
			case 1056:
			case 1057:
			case 1058:
			case 1059:
			case 1060:
			case 1061:
			case 1062:
			case 1063:
			case 1064:
			case 1065:
			case 1066:
			case 1067:
			case 1068:
			case 1069:
			case 1070:
			case 1071:
			case 1072:
			case 1074:
			case 1075:
			case 1076:
			case 1077:
			case 1078:
			case 1079:
			case 1080:
			case 1081:
			case 1082:
			case 1083:
			case 1084:
			case 1085:
			case 1086:
			case 1087:
			case 1089:
			case 1090:
			case 1091:
			case 1092:
			case 1093:
			case 1094:
			case 1095:
			case 1096:
			case 1098:
			case 1099:
			case 1100:
			case 1101:
			case 1102:
			case 1103:
			case 1104:
			case 1105:
			case 1106:
			case 1107:
			case 1108:
			case 1109:
			case 1110:
			case 1111:
			case 1112:
			case 1113:
			case 1114:
			case 1116:
			case 1117:
			case 1118:
			case 1119:
			case 1120:
			case 1121:
			case 1122:
			case 1123:
			case 1124:
			case 1125:
			case 1127:
			case 1129:
			case 1130:
			case 1131:
			case 1132:
			case 1133:
			case 1134:
			case 1135:
			case 1136:
			case 1137:
			case 1138:
			case 1139:
			case 1140:
			case 1142:
			case 1143:
			case 1144:
			case 1145:
			case 1146:
			case 1147:
			case 1148:
			case 1149:
			case 1150:
			case 1151:
			case 1152:
			case 1153:
			case 1154:
			case 1155:
			case 1156:
			case 1157:
			case 1158:
			case 1159:
			case 1160:
			case 1161:
			case 1162:
			case 1163:
			case 1164:
			case 1165:
			case 1166:
			case 1167:
			case 1169:
			case 1170:
			case 1171:
			case 1173:
			case 1174:
			case 1175:
			case 1176:
			case 1177:
			case 1178:
			case 1179:
			case 1180:
			case 1181:
			case 1182:
			case 1183:
			case 1184:
			case 1185:
			case 1186:
			case 1187:
			case 1188:
			case 1189:
			case 1190:
			case 1191:
			case 1192:
			case 1193:
			case 1194:
			case 1195:
			case 1197:
			case 1198:
			case 1199:
			case 1200:
			case 1201:
			case 1202:
			case 1203:
			case 1204:
			case 1205:
			case 1206:
			case 1207:
			case 1208:
			case 1209:
			case 1210:
			case 1211:
			case 1212:
			case 1213:
			case 1214:
			case 1215:
			case 1216:
			case 1217:
			case 1218:
			case 1219:
			case 1220:
			case 1221:
			case 1222:
			case 1223:
			case 1224:
			case 1225:
			case 1226:
			case 1228:
			case 1229:
			case 1230:
			case 1231:
			case 1232:
			case 1236:
			case 1237:
			case 1241:
			case 1242:
			case 1243:
			case 1244:
			case 1245:
			case 1246:
			case 1247:
			case 1248:
			case 1249:
			case 1250:
			case 1252:
			case 1253:
			case 1254:
			case 1255:
			case 1256:
			case 1257:
			case 1258:
			case 1259:
			case 1260:
			case 1261:
			case 1262:
			case 1263:
			case 1264:
			case 1265:
			case 1266:
			case 1267:
			case 1268:
			case 1269:
			case 1270:
			case 1271:
			case 1272:
			case 1273:
			case 1274:
			case 1275:
			case 1276:
			case 1277:
			case 1278:
			case 1279:
			case 1280:
			case 1281:
			case 1282:
			case 1283:
			case 1284:
			case 1285:
			case 1286:
			case 1287:
			case 1288:
			case 1289:
			case 1290:
			case 1291:
			case 1292:
			case 1293:
			case 1294:
			case 1295:
			case 1296:
			case 1297:
			case 1298:
			case 1299:
			case 1300:
			case 1301:
			case 1302:
			case 1303:
			case 1304:
			case 1305:
			case 1306:
			case 1308:
			case 1309:
			case 1310:
			case 1311:
			case 1312:
			case 1313:
			case 1314:
			case 1315:
			case 1316:
			case 1317:
			case 1318:
			case 1319:
			case 1320:
			case 1321:
			case 1322:
			case 1323:
			case 1325:
			case 1326:
			case 1327:
			case 1328:
			case 1329:
			case 1330:
			case 1331:
			case 1332:
			case 1333:
			case 1334:
			case 1335:
			case 1336:
			case 1337:
			case 1338:
			case 1339:
			case 1340:
			case 1341:
			case 1342:
			case 1343:
			case 1344:
			case 1345:
			case 1346:
			case 1347:
			case 1348:
			case 1349:
			case 1350:
			case 1351:
			case 1352:
			case 1353:
			case 1354:
			case 1355:
			case 1356:
			case 1357:
			case 1358:
			case 1359:
			case 1360:
			case 1361:
			case 1362:
			case 1363:
			case 1364:
			case 1365:
			case 1366:
			case 1367:
			case 1368:
			case 1369:
			case 1370:
			case 1371:
			case 1372:
			case 1373:
			case 1374:
			case 1375:
			case 1376:
			case 1377:
			case 1378:
			case 1379:
			case 1380:
			case 1381:
			case 1382:
			case 1383:
			case 1384:
			case 1385:
			case 1386:
			case 1387:
			case 1388:
			case 1389:
			case 1390:
			case 1391:
			case 1392:
			case 1393:
			case 1394:
			case 1395:
			case 1396:
			case 1397:
			case 1399:
			case 1400:
			case 1401:
			case 1402:
			case 1403:
			case 1404:
			case 1405:
			case 1406:
			case 1407:
			case 1408:
			case 1409:
			case 1410:
			case 1411:
			case 1412:
			case 1413:
			case 1414:
			case 1416:
			case 1417:
			case 1418:
			case 1419:
			case 1420:
			case 1421:
			case 1422:
			case 1423:
			case 1424:
			case 1425:
			case 1426:
			case 1427:
			case 1428:
			case 1429:
			case 1430:
			case 1431:
			case 1432:
			case 1433:
			case 1435:
			case 1436:
			case 1437:
			case 1438:
			case 1439:
			case 1440:
			case 1441:
			case 1442:
			case 1443:
			case 1444:
			case 1445:
			case 1446:
			case 1447:
			case 1448:
			case 1449:
			case 1450:
			case 1451:
			case 1452:
			case 1453:
			case 1454:
			case 1455:
			case 1456:
			case 1457:
			case 1458:
			case 1459:
			case 1460:
			case 1461:
			case 1462:
			case 1463:
			case 1464:
			case 1465:
			case 1466:
			case 1467:
			case 1468:
			case 1469:
			case 1470:
			case 1471:
			case 1472:
			case 1473:
			case 1474:
			case 1475:
			case 1476:
			case 1477:
			case 1478:
			case 1479:
			case 1480:
			case 1481:
			case 1482:
			case 1483:
			case 1484:
			case 1485:
			case 1486:
			case 1487:
			case 1488:
			case 1489:
			case 1491:
			case 1492:
			case 1493:
			case 1494:
			case 1495:
			case 1496:
			case 1497:
			case 1499:
			case 1500:
			case 1501:
			case 1502:
			case 1503:
			case 1504:
			case 1505:
			case 1506:
			case 1507:
			case 1508:
			case 1509:
			case 1510:
			case 1511:
			case 1512:
			case 1513:
			case 1514:
			case 1515:
			case 1516:
			case 1518:
			case 1519:
			case 1520:
			case 1521:
			case 1522:
			case 1523:
			case 1524:
			case 1525:
			case 1526:
			case 1527:
			case 1528:
			case 1529:
			case 1530:
			case 1531:
			case 1532:
			case 1533:
			case 1534:
			case 1536:
			case 1537:
			case 1538:
			case 1539:
			case 1540:
			case 1541:
			case 1542:
			case 1543:
			case 1544:
			case 1545:
			case 1546:
			case 1547:
			case 1548:
			case 1549:
			case 1550:
			case 1551:
			case 1552:
			case 1553:
			case 1554:
			case 1555:
			case 1556:
			case 1557:
			case 1558:
			case 1559:
			case 1560:
			case 1561:
			case 1562:
			case 1563:
			case 1564:
			case 1565:
			case 1566:
			case 1567:
			case 1568:
			case 1570:
			case 1571:
			case 1572:
			case 1573:
			case 1574:
			case 1575:
			case 1576:
			case 1577:
			case 1578:
			case 1579:
			case 1580:
			case 1581:
			case 1582:
			case 1583:
			case 1584:
			case 1585:
			case 1586:
			case 1587:
			case 1588:
			case 1589:
			case 1590:
			case 1591:
			case 1592:
			case 1593:
			case 1594:
			case 1595:
			case 1596:
			case 1597:
			case 1598:
			case 1599:
			case 1600:
			case 1601:
			case 1602:
			case 1603:
			case 1604:
			case 1605:
			case 1606:
			case 1607:
			case 1608:
			case 1609:
			case 1610:
			case 1611:
			case 1612:
			case 1613:
			case 1614:
			case 1615:
			case 1616:
			case 1617:
			case 1618:
			case 1619:
			case 1620:
			case 1621:
			case 1622:
			case 1623:
			case 1624:
			case 1625:
			case 1626:
			case 1628:
			case 1629:
			case 1630:
			case 1631:
			case 1632:
			case 1633:
			case 1634:
			case 1635:
			case 1636:
			case 1637:
			case 1638:
			case 1639:
			case 1640:
			case 1641:
			case 1642:
			case 1643:
			case 1644:
			case 1645:
			case 1646:
			case 1647:
			case 1648:
			case 1649:
			case 1650:
			case 1651:
			case 1652:
			case 1653:
			case 1654:
			case 1655:
			case 1656:
			case 1657:
			case 1658:
			case 1659:
			case 1660:
			case 1661:
			case 1662:
			case 1663:
			case 1664:
			case 1665:
			case 1666:
			case 1667:
			case 1668:
			case 1669:
			case 1670:
			case 1671:
			case 1672:
			case 1673:
			case 1674:
			case 1675:
			case 1676:
			case 1677:
			case 1678:
			case 1679:
			case 1680:
			case 1681:
			case 1682:
			case 1683:
			case 1684:
			case 1685:
			case 1686:
			case 1687:
			case 1688:
			case 1689:
			case 1690:
			case 1691:
			case 1692:
			case 1693:
			case 1694:
			case 1695:
			case 1696:
			case 1697:
			case 1698:
			case 1699:
			case 1700:
			case 1701:
			case 1702:
			case 1703:
			case 1704:
			case 1705:
			case 1706:
			case 1707:
			case 1708:
			case 1709:
			case 1710:
			case 1711:
			case 1712:
			case 1713:
			case 1714:
			case 1715:
			case 1716:
			case 1717:
			case 1718:
			case 1719:
			case 1720:
			case 1721:
			case 1722:
			case 1723:
			case 1724:
			case 1725:
			case 1726:
			case 1727:
			case 1728:
			case 1729:
			case 1730:
			case 1731:
			case 1732:
			case 1733:
			case 1734:
			case 1735:
			case 1736:
			case 1737:
			case 1738:
			case 1739:
			case 1740:
			case 1741:
			case 1742:
			case 1743:
			case 1744:
			case 1745:
			case 1746:
			case 1747:
			case 1748:
			case 1749:
			case 1750:
			case 1751:
			case 1752:
			case 1753:
			case 1754:
			case 1755:
			case 1756:
			case 1757:
			case 1758:
			case 1759:
			case 1760:
			case 1761:
			case 1762:
			case 1763:
			case 1764:
			case 1765:
			case 1766:
			case 1767:
			case 1768:
			case 1769:
			case 1770:
			case 1771:
			case 1772:
			case 1773:
			case 1774:
			case 1775:
			case 1776:
			case 1777:
			case 1778:
			case 1779:
			case 1780:
			case 1781:
			case 1782:
			case 1783:
			case 1784:
			case 1785:
			case 1786:
			case 1787:
			case 1788:
			case 1789:
			case 1790:
			case 1791:
			case 1792:
			case 1793:
			case 1794:
			case 1795:
			case 1796:
			case 1797:
			case 1798:
			case 1799:
			case 1800:
			case 1801:
			case 1802:
			case 1803:
			case 1804:
			case 1805:
			case 1806:
			case 1807:
			case 1808:
			case 1809:
			case 1810:
			case 1811:
			case 1812:
			case 1813:
			case 1814:
			case 1815:
			case 1816:
			case 1817:
			case 1818:
			case 1819:
			case 1820:
			case 1821:
			case 1822:
			case 1823:
			case 1824:
			case 1825:
			case 1826:
			case 1827:
			case 1828:
			case 1829:
			case 1830:
			case 1831:
			case 1832:
			case 1833:
			case 1834:
			case 1835:
			case 1836:
			case 1837:
			case 1838:
			case 1839:
			case 1840:
			case 1841:
			case 1842:
			case 1843:
			case 1844:
			case 1845:
			case 1846:
			case 1847:
			case 1848:
			case 1849:
			case 1850:
			case 1851:
			case 1852:
			case 1853:
			case 1854:
			case 1855:
			case 1856:
			case 1857:
			case 1858:
			case 1859:
			case 1860:
			case 1861:
			case 1862:
			case 1863:
			case 1864:
			case 1865:
			case 1866:
			case 1867:
			case 1868:
			case 1869:
			case 1870:
			case 1871:
			case 1872:
			case 1873:
			case 1874:
			case 1875:
			case 1876:
			case 1877:
			case 1878:
			case 1879:
			case 1880:
			case 1881:
			case 1882:
			case 1883:
			case 1884:
			case 1885:
			case 1886:
			case 1887:
			case 1888:
			case 1889:
			case 1890:
			case 1891:
			case 1892:
			case 1893:
			case 1894:
			case 1895:
			case 1896:
			case 1897:
			case 1898:
			case 1899:
			case 1900:
			case 1901:
			case 1902:
			case 1903:
			case 1904:
			case 1905:
			case 1906:
			case 1907:
			case 1908:
			case 1909:
			case 1910:
			case 1911:
			case 1912:
			case 1913:
			case 1914:
			case 1915:
			case 1916:
			case 1917:
			case 1918:
			case 1919:
			case 1920:
			case 1921:
			case 1922:
			case 1923:
			case 1924:
			case 1925:
			case 1926:
			case 1927:
			case 1928:
			case 1929:
			case 1930:
			case 1931:
			case 1932:
			case 1933:
			case 1934:
			case 1935:
			case 1936:
			case 1937:
			case 1939:
			case 1940:
			case 1941:
			case 1942:
			case 1943:
			case 1944:
			case 1945:
			case 1946:
			case 1947:
			case 1948:
			case 1949:
			case 1950:
			case 1951:
			case 1952:
			case 1953:
			case 1954:
			case 1955:
			case 1956:
			case 1957:
			case 1958:
			case 1959:
			case 1960:
			case 1961:
			case 1962:
			case 1963:
			case 1965:
			case 1966:
			case 1967:
			case 1968:
			case 1969:
			case 1970:
			case 1971:
			case 1972:
			case 1973:
			case 1974:
			case 1975:
			case 1976:
			case 1977:
			case 1978:
			case 1979:
			case 1980:
			case 1981:
			case 1982:
			case 1983:
			case 1984:
			case 1985:
			case 1986:
			case 1987:
			case 1988:
			case 1989:
			case 1990:
			case 1991:
			case 1992:
			case 1993:
			case 1994:
			case 1995:
			case 1996:
			case 1997:
			case 1998:
			case 1999:
			case 2000:
			case 2003:
			case 2004:
			case 2005:
			case 2006:
			case 2007:
			case 2008:
			case 2009:
			case 2010:
			case 2011:
			case 2012:
			case 2013:
			case 2014:
			case 2015:
			case 2016:
			case 2017:
			case 2018:
			case 2019:
			case 2020:
			case 2021:
			case 2022:
			case 2023:
			case 2024:
			case 2026:
			case 2027:
			case 2028:
			case 2029:
			case 2030:
			case 2031:
			case 2032:
			case 2033:
			case 2034:
			case 2035:
			case 2036:
			case 2037:
			case 2038:
			case 2039:
			case 2040:
			case 2041:
			case 2042:
			case 2043:
			case 2044:
			case 2045:
			case 2046:
			case 2047:
			case 2048:
			case 2049:
			case 2050:
			case 2051:
			case 2052:
			case 2053:
			case 2054:
			case 2055:
			case 2056:
			case 2057:
			case 2058:
			case 2059:
			case 2060:
			case 2061:
			case 2062:
			case 2063:
			case 2064:
			case 2065:
			case 2066:
			case 2067:
			case 2068:
			case 2069:
			case 2070:
			case 2071:
			case 2072:
			case 2074:
			case 2075:
			case 2076:
			case 2077:
			case 2078:
			case 2079:
			case 2080:
			case 2081:
			case 2082:
			case 2083:
			case 2084:
			case 2085:
			case 2086:
			case 2087:
			case 2088:
			case 2089:
			case 2090:
			case 2091:
			case 2092:
			case 2093:
			case 2094:
			case 2095:
			case 2096:
			case 2097:
			case 2098:
			case 2100:
			case 2101:
			case 2102:
			case 2103:
			case 2104:
			case 2105:
			case 2106:
			case 2107:
			case 2108:
			case 2109:
			case 2110:
			case 2111:
			case 2112:
			case 2113:
			case 2115:
			case 2116:
			case 2117:
			case 2118:
			case 2119:
			case 2120:
			case 2122:
			case 2123:
			case 2124:
			case 2125:
			case 2126:
			case 2128:
			case 2129:
			case 2130:
			case 2131:
			case 2132:
			case 2133:
			case 2134:
			case 2135:
			case 2136:
			case 2137:
			case 2138:
			case 2139:
			case 2140:
			case 2141:
			case 2142:
			case 2143:
			case 2145:
			case 2146:
			case 2147:
			case 2148:
			case 2149:
			case 2150:
			case 2151:
			case 2152:
			case 2153:
			case 2154:
			case 2155:
			case 2156:
			case 2157:
			case 2158:
			case 2159:
			case 2160:
			case 2161:
			case 2162:
			case 2163:
			case 2164:
			case 2165:
			case 2166:
			case 2168:
			case 2169:
			case 2170:
			case 2171:
			case 2172:
			case 2173:
			case 2174:
			case 2175:
			case 2176:
			case 2177:
			case 2178:
			case 2179:
			case 2180:
			case 2181:
			case 2182:
			case 2183:
			case 2184:
			case 2185:
			case 2186:
			case 2187:
			case 2188:
			case 2189:
			case 2191:
			case 2192:
			case 2193:
			case 2194:
			case 2195:
			case 2196:
			case 2197:
			case 2198:
			case 2199:
			case 2200:
			case 2201:
			case 2202:
			case 2203:
			case 2204:
			case 2205:
			case 2206:
			case 2207:
			case 2208:
			case 2209:
			case 2210:
			case 2211:
			case 2216:
			case 2252:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 12001;
				this.regular_id();
				}
				break;
			case 2220:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 12002;
				this.match(PlSqlParser.DELIMITED_ID);
				}
				break;
			default:
				throw new NoViableAltException(this);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public outer_join_sign(): Outer_join_signContext {
		let localctx: Outer_join_signContext = new Outer_join_signContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1490, PlSqlParser.RULE_outer_join_sign);
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 12005;
			this.match(PlSqlParser.LEFT_PAREN);
			this.state = 12006;
			this.match(PlSqlParser.PLUS_SIGN);
			this.state = 12007;
			this.match(PlSqlParser.RIGHT_PAREN);
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public regular_id(): Regular_idContext {
		let localctx: Regular_idContext = new Regular_idContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1492, PlSqlParser.RULE_regular_id);
		try {
			this.state = 12084;
			this._errHandler.sync(this);
			switch ( this._interp.adaptivePredict(this._input, 1641, this._ctx) ) {
			case 1:
				this.enterOuterAlt(localctx, 1);
				{
				this.state = 12009;
				this.non_reserved_keywords_pre12c();
				}
				break;
			case 2:
				this.enterOuterAlt(localctx, 2);
				{
				this.state = 12010;
				this.non_reserved_keywords_in_12c();
				}
				break;
			case 3:
				this.enterOuterAlt(localctx, 3);
				{
				this.state = 12011;
				this.match(PlSqlParser.REGULAR_ID);
				}
				break;
			case 4:
				this.enterOuterAlt(localctx, 4);
				{
				this.state = 12012;
				this.match(PlSqlParser.A_LETTER);
				}
				break;
			case 5:
				this.enterOuterAlt(localctx, 5);
				{
				this.state = 12013;
				this.match(PlSqlParser.AGENT);
				}
				break;
			case 6:
				this.enterOuterAlt(localctx, 6);
				{
				this.state = 12014;
				this.match(PlSqlParser.AGGREGATE);
				}
				break;
			case 7:
				this.enterOuterAlt(localctx, 7);
				{
				this.state = 12015;
				this.match(PlSqlParser.ANALYZE);
				}
				break;
			case 8:
				this.enterOuterAlt(localctx, 8);
				{
				this.state = 12016;
				this.match(PlSqlParser.AUTONOMOUS_TRANSACTION);
				}
				break;
			case 9:
				this.enterOuterAlt(localctx, 9);
				{
				this.state = 12017;
				this.match(PlSqlParser.BATCH);
				}
				break;
			case 10:
				this.enterOuterAlt(localctx, 10);
				{
				this.state = 12018;
				this.match(PlSqlParser.BINARY_INTEGER);
				}
				break;
			case 11:
				this.enterOuterAlt(localctx, 11);
				{
				this.state = 12019;
				this.match(PlSqlParser.BOOLEAN);
				}
				break;
			case 12:
				this.enterOuterAlt(localctx, 12);
				{
				this.state = 12020;
				this.match(PlSqlParser.C_LETTER);
				}
				break;
			case 13:
				this.enterOuterAlt(localctx, 13);
				{
				this.state = 12021;
				this.match(PlSqlParser.CHAR);
				}
				break;
			case 14:
				this.enterOuterAlt(localctx, 14);
				{
				this.state = 12022;
				this.match(PlSqlParser.CLUSTER);
				}
				break;
			case 15:
				this.enterOuterAlt(localctx, 15);
				{
				this.state = 12023;
				this.match(PlSqlParser.CONSTRUCTOR);
				}
				break;
			case 16:
				this.enterOuterAlt(localctx, 16);
				{
				this.state = 12024;
				this.match(PlSqlParser.CUSTOMDATUM);
				}
				break;
			case 17:
				this.enterOuterAlt(localctx, 17);
				{
				this.state = 12025;
				this.match(PlSqlParser.DECIMAL);
				}
				break;
			case 18:
				this.enterOuterAlt(localctx, 18);
				{
				this.state = 12026;
				this.match(PlSqlParser.DELETE);
				}
				break;
			case 19:
				this.enterOuterAlt(localctx, 19);
				{
				this.state = 12027;
				this.match(PlSqlParser.DETERMINISTIC);
				}
				break;
			case 20:
				this.enterOuterAlt(localctx, 20);
				{
				this.state = 12028;
				this.match(PlSqlParser.DSINTERVAL_UNCONSTRAINED);
				}
				break;
			case 21:
				this.enterOuterAlt(localctx, 21);
				{
				this.state = 12029;
				this.match(PlSqlParser.ERR);
				}
				break;
			case 22:
				this.enterOuterAlt(localctx, 22);
				{
				this.state = 12030;
				this.match(PlSqlParser.EXCEPTION);
				}
				break;
			case 23:
				this.enterOuterAlt(localctx, 23);
				{
				this.state = 12031;
				this.match(PlSqlParser.EXCEPTION_INIT);
				}
				break;
			case 24:
				this.enterOuterAlt(localctx, 24);
				{
				this.state = 12032;
				this.match(PlSqlParser.EXCEPTIONS);
				}
				break;
			case 25:
				this.enterOuterAlt(localctx, 25);
				{
				this.state = 12033;
				this.match(PlSqlParser.EXISTS);
				}
				break;
			case 26:
				this.enterOuterAlt(localctx, 26);
				{
				this.state = 12034;
				this.match(PlSqlParser.EXIT);
				}
				break;
			case 27:
				this.enterOuterAlt(localctx, 27);
				{
				this.state = 12035;
				this.match(PlSqlParser.FLOAT);
				}
				break;
			case 28:
				this.enterOuterAlt(localctx, 28);
				{
				this.state = 12036;
				this.match(PlSqlParser.FORALL);
				}
				break;
			case 29:
				this.enterOuterAlt(localctx, 29);
				{
				this.state = 12037;
				this.match(PlSqlParser.INDICES);
				}
				break;
			case 30:
				this.enterOuterAlt(localctx, 30);
				{
				this.state = 12038;
				this.match(PlSqlParser.INOUT);
				}
				break;
			case 31:
				this.enterOuterAlt(localctx, 31);
				{
				this.state = 12039;
				this.match(PlSqlParser.INTEGER);
				}
				break;
			case 32:
				this.enterOuterAlt(localctx, 32);
				{
				this.state = 12040;
				this.match(PlSqlParser.LANGUAGE);
				}
				break;
			case 33:
				this.enterOuterAlt(localctx, 33);
				{
				this.state = 12041;
				this.match(PlSqlParser.LONG);
				}
				break;
			case 34:
				this.enterOuterAlt(localctx, 34);
				{
				this.state = 12042;
				this.match(PlSqlParser.LOOP);
				}
				break;
			case 35:
				this.enterOuterAlt(localctx, 35);
				{
				this.state = 12043;
				this.match(PlSqlParser.NUMBER);
				}
				break;
			case 36:
				this.enterOuterAlt(localctx, 36);
				{
				this.state = 12044;
				this.match(PlSqlParser.ORADATA);
				}
				break;
			case 37:
				this.enterOuterAlt(localctx, 37);
				{
				this.state = 12045;
				this.match(PlSqlParser.OSERROR);
				}
				break;
			case 38:
				this.enterOuterAlt(localctx, 38);
				{
				this.state = 12046;
				this.match(PlSqlParser.OUT);
				}
				break;
			case 39:
				this.enterOuterAlt(localctx, 39);
				{
				this.state = 12047;
				this.match(PlSqlParser.OVERRIDING);
				}
				break;
			case 40:
				this.enterOuterAlt(localctx, 40);
				{
				this.state = 12048;
				this.match(PlSqlParser.PARALLEL_ENABLE);
				}
				break;
			case 41:
				this.enterOuterAlt(localctx, 41);
				{
				this.state = 12049;
				this.match(PlSqlParser.PIPELINED);
				}
				break;
			case 42:
				this.enterOuterAlt(localctx, 42);
				{
				this.state = 12050;
				this.match(PlSqlParser.PLS_INTEGER);
				}
				break;
			case 43:
				this.enterOuterAlt(localctx, 43);
				{
				this.state = 12051;
				this.match(PlSqlParser.POSITIVE);
				}
				break;
			case 44:
				this.enterOuterAlt(localctx, 44);
				{
				this.state = 12052;
				this.match(PlSqlParser.POSITIVEN);
				}
				break;
			case 45:
				this.enterOuterAlt(localctx, 45);
				{
				this.state = 12053;
				this.match(PlSqlParser.PRAGMA);
				}
				break;
			case 46:
				this.enterOuterAlt(localctx, 46);
				{
				this.state = 12054;
				this.match(PlSqlParser.RAISE);
				}
				break;
			case 47:
				this.enterOuterAlt(localctx, 47);
				{
				this.state = 12055;
				this.match(PlSqlParser.RAW);
				}
				break;
			case 48:
				this.enterOuterAlt(localctx, 48);
				{
				this.state = 12056;
				this.match(PlSqlParser.RECORD);
				}
				break;
			case 49:
				this.enterOuterAlt(localctx, 49);
				{
				this.state = 12057;
				this.match(PlSqlParser.REF);
				}
				break;
			case 50:
				this.enterOuterAlt(localctx, 50);
				{
				this.state = 12058;
				this.match(PlSqlParser.RENAME);
				}
				break;
			case 51:
				this.enterOuterAlt(localctx, 51);
				{
				this.state = 12059;
				this.match(PlSqlParser.RESTRICT_REFERENCES);
				}
				break;
			case 52:
				this.enterOuterAlt(localctx, 52);
				{
				this.state = 12060;
				this.match(PlSqlParser.RESULT);
				}
				break;
			case 53:
				this.enterOuterAlt(localctx, 53);
				{
				this.state = 12061;
				this.match(PlSqlParser.SELF);
				}
				break;
			case 54:
				this.enterOuterAlt(localctx, 54);
				{
				this.state = 12062;
				this.match(PlSqlParser.SERIALLY_REUSABLE);
				}
				break;
			case 55:
				this.enterOuterAlt(localctx, 55);
				{
				this.state = 12063;
				this.match(PlSqlParser.SET);
				}
				break;
			case 56:
				this.enterOuterAlt(localctx, 56);
				{
				this.state = 12064;
				this.match(PlSqlParser.SIGNTYPE);
				}
				break;
			case 57:
				this.enterOuterAlt(localctx, 57);
				{
				this.state = 12065;
				this.match(PlSqlParser.SIMPLE_INTEGER);
				}
				break;
			case 58:
				this.enterOuterAlt(localctx, 58);
				{
				this.state = 12066;
				this.match(PlSqlParser.SMALLINT);
				}
				break;
			case 59:
				this.enterOuterAlt(localctx, 59);
				{
				this.state = 12067;
				this.match(PlSqlParser.SQLDATA);
				}
				break;
			case 60:
				this.enterOuterAlt(localctx, 60);
				{
				this.state = 12068;
				this.match(PlSqlParser.SQLERROR);
				}
				break;
			case 61:
				this.enterOuterAlt(localctx, 61);
				{
				this.state = 12069;
				this.match(PlSqlParser.SUBTYPE);
				}
				break;
			case 62:
				this.enterOuterAlt(localctx, 62);
				{
				this.state = 12070;
				this.match(PlSqlParser.TIMESTAMP_LTZ_UNCONSTRAINED);
				}
				break;
			case 63:
				this.enterOuterAlt(localctx, 63);
				{
				this.state = 12071;
				this.match(PlSqlParser.TIMESTAMP_TZ_UNCONSTRAINED);
				}
				break;
			case 64:
				this.enterOuterAlt(localctx, 64);
				{
				this.state = 12072;
				this.match(PlSqlParser.TIMESTAMP_UNCONSTRAINED);
				}
				break;
			case 65:
				this.enterOuterAlt(localctx, 65);
				{
				this.state = 12073;
				this.match(PlSqlParser.TRIGGER);
				}
				break;
			case 66:
				this.enterOuterAlt(localctx, 66);
				{
				this.state = 12074;
				this.match(PlSqlParser.VARCHAR);
				}
				break;
			case 67:
				this.enterOuterAlt(localctx, 67);
				{
				this.state = 12075;
				this.match(PlSqlParser.VARCHAR2);
				}
				break;
			case 68:
				this.enterOuterAlt(localctx, 68);
				{
				this.state = 12076;
				this.match(PlSqlParser.VARIABLE);
				}
				break;
			case 69:
				this.enterOuterAlt(localctx, 69);
				{
				this.state = 12077;
				this.match(PlSqlParser.WARNING);
				}
				break;
			case 70:
				this.enterOuterAlt(localctx, 70);
				{
				this.state = 12078;
				this.match(PlSqlParser.WHILE);
				}
				break;
			case 71:
				this.enterOuterAlt(localctx, 71);
				{
				this.state = 12079;
				this.match(PlSqlParser.XMLAGG);
				}
				break;
			case 72:
				this.enterOuterAlt(localctx, 72);
				{
				this.state = 12080;
				this.match(PlSqlParser.YMINTERVAL_UNCONSTRAINED);
				}
				break;
			case 73:
				this.enterOuterAlt(localctx, 73);
				{
				this.state = 12081;
				this.match(PlSqlParser.REGR_);
				}
				break;
			case 74:
				this.enterOuterAlt(localctx, 74);
				{
				this.state = 12082;
				this.match(PlSqlParser.VAR_);
				}
				break;
			case 75:
				this.enterOuterAlt(localctx, 75);
				{
				this.state = 12083;
				this.match(PlSqlParser.COVAR_);
				}
				break;
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public non_reserved_keywords_in_12c(): Non_reserved_keywords_in_12cContext {
		let localctx: Non_reserved_keywords_in_12cContext = new Non_reserved_keywords_in_12cContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1494, PlSqlParser.RULE_non_reserved_keywords_in_12c);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 12086;
			_la = this._input.LA(1);
			if(!((((_la) & ~0x1F) === 0 && ((1 << _la) & 604187456) !== 0) || ((((_la - 45)) & ~0x1F) === 0 && ((1 << (_la - 45)) & 10497283) !== 0) || ((((_la - 86)) & ~0x1F) === 0 && ((1 << (_la - 86)) & 1192041) !== 0) || ((((_la - 123)) & ~0x1F) === 0 && ((1 << (_la - 123)) & 2147614721) !== 0) || ((((_la - 155)) & ~0x1F) === 0 && ((1 << (_la - 155)) & 2083) !== 0) || ((((_la - 187)) & ~0x1F) === 0 && ((1 << (_la - 187)) & 22547) !== 0) || ((((_la - 220)) & ~0x1F) === 0 && ((1 << (_la - 220)) & 7569601) !== 0) || ((((_la - 261)) & ~0x1F) === 0 && ((1 << (_la - 261)) & 2415920771) !== 0) || ((((_la - 293)) & ~0x1F) === 0 && ((1 << (_la - 293)) & 1342177425) !== 0) || ((((_la - 325)) & ~0x1F) === 0 && ((1 << (_la - 325)) & 2149582883) !== 0) || ((((_la - 360)) & ~0x1F) === 0 && ((1 << (_la - 360)) & 558108675) !== 0) || ((((_la - 399)) & ~0x1F) === 0 && ((1 << (_la - 399)) & 554434561) !== 0) || ((((_la - 434)) & ~0x1F) === 0 && ((1 << (_la - 434)) & 671613009) !== 0) || ((((_la - 477)) & ~0x1F) === 0 && ((1 << (_la - 477)) & 1627656193) !== 0) || ((((_la - 509)) & ~0x1F) === 0 && ((1 << (_la - 509)) & 2099755) !== 0) || ((((_la - 547)) & ~0x1F) === 0 && ((1 << (_la - 547)) & 270337) !== 0) || ((((_la - 612)) & ~0x1F) === 0 && ((1 << (_la - 612)) & 1048593) !== 0) || ((((_la - 651)) & ~0x1F) === 0 && ((1 << (_la - 651)) & 18945) !== 0) || ((((_la - 683)) & ~0x1F) === 0 && ((1 << (_la - 683)) & 4293918721) !== 0) || ((((_la - 715)) & ~0x1F) === 0 && ((1 << (_la - 715)) & 534543) !== 0) || ((((_la - 750)) & ~0x1F) === 0 && ((1 << (_la - 750)) & 33554945) !== 0) || ((((_la - 784)) & ~0x1F) === 0 && ((1 << (_la - 784)) & 31588353) !== 0) || ((((_la - 819)) & ~0x1F) === 0 && ((1 << (_la - 819)) & 33025) !== 0) || ((((_la - 855)) & ~0x1F) === 0 && ((1 << (_la - 855)) & 1082449) !== 0) || _la===894 || ((((_la - 936)) & ~0x1F) === 0 && ((1 << (_la - 936)) & 813777059) !== 0) || ((((_la - 969)) & ~0x1F) === 0 && ((1 << (_la - 969)) & 3678209) !== 0) || ((((_la - 1006)) & ~0x1F) === 0 && ((1 << (_la - 1006)) & 1129185345) !== 0) || ((((_la - 1041)) & ~0x1F) === 0 && ((1 << (_la - 1041)) & 263177) !== 0) || ((((_la - 1076)) & ~0x1F) === 0 && ((1 << (_la - 1076)) & 265857) !== 0) || ((((_la - 1108)) & ~0x1F) === 0 && ((1 << (_la - 1108)) & 106561) !== 0) || ((((_la - 1144)) & ~0x1F) === 0 && ((1 << (_la - 1144)) & 2226183) !== 0) || ((((_la - 1201)) & ~0x1F) === 0 && ((1 << (_la - 1201)) & 11272205) !== 0) || ((((_la - 1242)) & ~0x1F) === 0 && ((1 << (_la - 1242)) & 2088763417) !== 0) || ((((_la - 1279)) & ~0x1F) === 0 && ((1 << (_la - 1279)) & 2369814733) !== 0) || ((((_la - 1322)) & ~0x1F) === 0 && ((1 << (_la - 1322)) & 131) !== 0) || _la===1355 || _la===1367 || _la===1399 || _la===1417 || ((((_la - 1439)) & ~0x1F) === 0 && ((1 << (_la - 1439)) & 8650817) !== 0) || ((((_la - 1474)) & ~0x1F) === 0 && ((1 << (_la - 1474)) & 1744830601) !== 0) || ((((_la - 1518)) & ~0x1F) === 0 && ((1 << (_la - 1518)) & 805306371) !== 0) || ((((_la - 1559)) & ~0x1F) === 0 && ((1 << (_la - 1559)) & 98385) !== 0) || ((((_la - 1596)) & ~0x1F) === 0 && ((1 << (_la - 1596)) & 4218881) !== 0) || ((((_la - 1631)) & ~0x1F) === 0 && ((1 << (_la - 1631)) & 2214592773) !== 0) || ((((_la - 1663)) & ~0x1F) === 0 && ((1 << (_la - 1663)) & 134217777) !== 0) || ((((_la - 1702)) & ~0x1F) === 0 && ((1 << (_la - 1702)) & 249) !== 0) || _la===1734 || _la===1762 || _la===1773 || ((((_la - 1904)) & ~0x1F) === 0 && ((1 << (_la - 1904)) & 101188615) !== 0) || _la===1947 || _la===1975 || ((((_la - 1983)) & ~0x1F) === 0 && ((1 << (_la - 1983)) & 2164269313) !== 0) || ((((_la - 2019)) & ~0x1F) === 0 && ((1 << (_la - 2019)) & 541343745) !== 0) || ((((_la - 2054)) & ~0x1F) === 0 && ((1 << (_la - 2054)) & 2147810625) !== 0) || ((((_la - 2086)) & ~0x1F) === 0 && ((1 << (_la - 2086)) & 25247751) !== 0) || _la===2120 || _la===2124 || ((((_la - 2166)) & ~0x1F) === 0 && ((1 << (_la - 2166)) & 69) !== 0) || _la===2216)) {
			this._errHandler.recoverInline(this);
			}
			else {
				this._errHandler.reportMatch(this);
			    this.consume();
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public non_reserved_keywords_pre12c(): Non_reserved_keywords_pre12cContext {
		let localctx: Non_reserved_keywords_pre12cContext = new Non_reserved_keywords_pre12cContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1496, PlSqlParser.RULE_non_reserved_keywords_pre12c);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 12088;
			_la = this._input.LA(1);
			if(!((((_la) & ~0x1F) === 0 && ((1 << _la) & 1543296190) !== 0) || ((((_la - 34)) & ~0x1F) === 0 && ((1 << (_la - 34)) & 3868698077) !== 0) || ((((_la - 67)) & ~0x1F) === 0 && ((1 << (_la - 67)) & 1955986429) !== 0) || ((((_la - 100)) & ~0x1F) === 0 && ((1 << (_la - 100)) & 4286316343) !== 0) || ((((_la - 132)) & ~0x1F) === 0 && ((1 << (_la - 132)) & 3862937339) !== 0) || ((((_la - 164)) & ~0x1F) === 0 && ((1 << (_la - 164)) & 4068404731) !== 0) || ((((_la - 196)) & ~0x1F) === 0 && ((1 << (_la - 196)) & 1056964561) !== 0) || ((((_la - 228)) & ~0x1F) === 0 && ((1 << (_la - 228)) & 2139065455) !== 0) || ((((_la - 260)) & ~0x1F) === 0 && ((1 << (_la - 260)) & 3489657593) !== 0) || ((((_la - 294)) & ~0x1F) === 0 && ((1 << (_la - 294)) & 1409023927) !== 0) || ((((_la - 328)) & ~0x1F) === 0 && ((1 << (_la - 328)) & 4017848059) !== 0) || ((((_la - 363)) & ~0x1F) === 0 && ((1 << (_la - 363)) & 3151457535) !== 0) || ((((_la - 395)) & ~0x1F) === 0 && ((1 << (_la - 395)) & 4011524077) !== 0) || ((((_la - 427)) & ~0x1F) === 0 && ((1 << (_la - 427)) & 4093368093) !== 0) || ((((_la - 459)) & ~0x1F) === 0 && ((1 << (_la - 459)) & 3218307563) !== 0) || ((((_la - 491)) & ~0x1F) === 0 && ((1 << (_la - 491)) & 3612507119) !== 0) || ((((_la - 523)) & ~0x1F) === 0 && ((1 << (_la - 523)) & 2122053503) !== 0) || ((((_la - 555)) & ~0x1F) === 0 && ((1 << (_la - 555)) & 3220863967) !== 0) || ((((_la - 587)) & ~0x1F) === 0 && ((1 << (_la - 587)) & 3724525567) !== 0) || ((((_la - 619)) & ~0x1F) === 0 && ((1 << (_la - 619)) & 3758084095) !== 0) || ((((_la - 653)) & ~0x1F) === 0 && ((1 << (_la - 653)) & 2684282239) !== 0) || ((((_la - 685)) & ~0x1F) === 0 && ((1 << (_la - 685)) & 261047) !== 0) || ((((_la - 719)) & ~0x1F) === 0 && ((1 << (_la - 719)) & 2147449215) !== 0) || ((((_la - 751)) & ~0x1F) === 0 && ((1 << (_la - 751)) & 4244635327) !== 0) || ((((_la - 783)) & ~0x1F) === 0 && ((1 << (_la - 783)) & 4231790493) !== 0) || ((((_la - 815)) & ~0x1F) === 0 && ((1 << (_la - 815)) & 4160221167) !== 0) || ((((_la - 847)) & ~0x1F) === 0 && ((1 << (_la - 847)) & 4017852159) !== 0) || ((((_la - 879)) & ~0x1F) === 0 && ((1 << (_la - 879)) & 4294934271) !== 0) || ((((_la - 911)) & ~0x1F) === 0 && ((1 << (_la - 911)) & 3120562175) !== 0) || ((((_la - 944)) & ~0x1F) === 0 && ((1 << (_la - 944)) & 4258233535) !== 0) || ((((_la - 976)) & ~0x1F) === 0 && ((1 << (_la - 976)) & 3221196735) !== 0) || ((((_la - 1008)) & ~0x1F) === 0 && ((1 << (_la - 1008)) & 4012670959) !== 0) || ((((_la - 1040)) & ~0x1F) === 0 && ((1 << (_la - 1040)) & 4294440941) !== 0) || ((((_la - 1072)) & ~0x1F) === 0 && ((1 << (_la - 1072)) & 4122875885) !== 0) || ((((_la - 1104)) & ~0x1F) === 0 && ((1 << (_la - 1104)) & 4272288751) !== 0) || ((((_la - 1136)) & ~0x1F) === 0 && ((1 << (_la - 1136)) & 3725062367) !== 0) || ((((_la - 1169)) & ~0x1F) === 0 && ((1 << (_la - 1169)) & 4143701975) !== 0) || ((((_la - 1202)) & ~0x1F) === 0 && ((1 << (_la - 1202)) & 2108293113) !== 0) || ((((_la - 1236)) & ~0x1F) === 0 && ((1 << (_la - 1236)) & 3749656995) !== 0) || ((((_la - 1275)) & ~0x1F) === 0 && ((1 << (_la - 1275)) & 737665839) !== 0) || ((((_la - 1308)) & ~0x1F) === 0 && ((1 << (_la - 1308)) & 4292755451) !== 0) || ((((_la - 1340)) & ~0x1F) === 0 && ((1 << (_la - 1340)) & 4160192381) !== 0) || ((((_la - 1372)) & ~0x1F) === 0 && ((1 << (_la - 1372)) & 4093640703) !== 0) || ((((_la - 1405)) & ~0x1F) === 0 && ((1 << (_la - 1405)) & 3756911615) !== 0) || ((((_la - 1437)) & ~0x1F) === 0 && ((1 << (_la - 1437)) & 4260364027) !== 0) || ((((_la - 1469)) & ~0x1F) === 0 && ((1 << (_la - 1469)) & 1604316895) !== 0) || ((((_la - 1502)) & ~0x1F) === 0 && ((1 << (_la - 1502)) & 4093411065) !== 0) || ((((_la - 1534)) & ~0x1F) === 0 && ((1 << (_la - 1534)) & 1573900157) !== 0) || ((((_la - 1566)) & ~0x1F) === 0 && ((1 << (_la - 1566)) & 3221224695) !== 0) || ((((_la - 1598)) & ~0x1F) === 0 && ((1 << (_la - 1598)) & 3756779519) !== 0) || ((((_la - 1630)) & ~0x1F) === 0 && ((1 << (_la - 1630)) & 4160749045) !== 0) || ((((_la - 1664)) & ~0x1F) === 0 && ((1 << (_la - 1664)) & 4227858407) !== 0) || ((((_la - 1696)) & ~0x1F) === 0 && ((1 << (_la - 1696)) & 4294951359) !== 0) || ((((_la - 1728)) & ~0x1F) === 0 && ((1 << (_la - 1728)) & 4294967231) !== 0) || ((((_la - 1760)) & ~0x1F) === 0 && ((1 << (_la - 1760)) & 4294959099) !== 0) || ((((_la - 1792)) & ~0x1F) === 0 && ((1 << (_la - 1792)) & 4294967295) !== 0) || ((((_la - 1824)) & ~0x1F) === 0 && ((1 << (_la - 1824)) & 4294967295) !== 0) || ((((_la - 1856)) & ~0x1F) === 0 && ((1 << (_la - 1856)) & 4294967295) !== 0) || ((((_la - 1888)) & ~0x1F) === 0 && ((1 << (_la - 1888)) & 4227399679) !== 0) || ((((_la - 1920)) & ~0x1F) === 0 && ((1 << (_la - 1920)) & 4160432631) !== 0) || ((((_la - 1952)) & ~0x1F) === 0 && ((1 << (_la - 1952)) & 2071982079) !== 0) || ((((_la - 1984)) & ~0x1F) === 0 && ((1 << (_la - 1984)) & 3212439423) !== 0) || ((((_la - 2016)) & ~0x1F) === 0 && ((1 << (_la - 2016)) & 4259184119) !== 0) || ((((_la - 2049)) & ~0x1F) === 0 && ((1 << (_la - 2049)) & 3797964767) !== 0) || ((((_la - 2081)) & ~0x1F) === 0 && ((1 << (_la - 2081)) & 3352559375) !== 0) || ((((_la - 2113)) & ~0x1F) === 0 && ((1 << (_la - 2113)) & 2147202681) !== 0) || ((((_la - 2145)) & ~0x1F) === 0 && ((1 << (_la - 2145)) & 4078960639) !== 0) || ((((_la - 2177)) & ~0x1F) === 0 && ((1 << (_la - 2177)) & 3217018879) !== 0) || ((((_la - 2209)) & ~0x1F) === 0 && ((1 << (_la - 2209)) & 7) !== 0))) {
			this._errHandler.recoverInline(this);
			}
			else {
				this._errHandler.reportMatch(this);
			    this.consume();
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public string_function_name(): String_function_nameContext {
		let localctx: String_function_nameContext = new String_function_nameContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1498, PlSqlParser.RULE_string_function_name);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 12090;
			_la = this._input.LA(1);
			if(!(_la===184 || ((((_la - 2190)) & ~0x1F) === 0 && ((1 << (_la - 2190)) & 28673) !== 0))) {
			this._errHandler.recoverInline(this);
			}
			else {
				this._errHandler.reportMatch(this);
			    this.consume();
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}
	// @RuleVersion(0)
	public numeric_function_name(): Numeric_function_nameContext {
		let localctx: Numeric_function_nameContext = new Numeric_function_nameContext(this, this._ctx, this.state);
		this.enterRule(localctx, 1500, PlSqlParser.RULE_numeric_function_name);
		let _la: number;
		try {
			this.enterOuterAlt(localctx, 1);
			{
			this.state = 12092;
			_la = this._input.LA(1);
			if(!(_la===281 || ((((_la - 2187)) & ~0x1F) === 0 && ((1 << (_la - 2187)) & 271361) !== 0))) {
			this._errHandler.recoverInline(this);
			}
			else {
				this._errHandler.reportMatch(this);
			    this.consume();
			}
			}
		}
		catch (re) {
			if (re instanceof RecognitionException) {
				localctx.exception = re;
				this._errHandler.reportError(this, re);
				this._errHandler.recover(this, re);
			} else {
				throw re;
			}
		}
		finally {
			this.exitRule();
		}
		return localctx;
	}

	public sempred(localctx: RuleContext, ruleIndex: number, predIndex: number): boolean {
		switch (ruleIndex) {
		case 174:
			return this.unified_auditing_sempred(localctx as Unified_auditingContext, predIndex);
		case 177:
			return this.audit_direct_path_sempred(localctx as Audit_direct_pathContext, predIndex);
		case 178:
			return this.audit_container_clause_sempred(localctx as Audit_container_clauseContext, predIndex);
		case 184:
			return this.auditing_on_clause_sempred(localctx as Auditing_on_clauseContext, predIndex);
		case 188:
			return this.sql_statement_shortcut_sempred(localctx as Sql_statement_shortcutContext, predIndex);
		case 197:
			return this.library_editionable_sempred(localctx as Library_editionableContext, predIndex);
		case 198:
			return this.library_debug_sempred(localctx as Library_debugContext, predIndex);
		case 203:
			return this.alter_view_editionable_sempred(localctx as Alter_view_editionableContext, predIndex);
		case 340:
			return this.partial_database_recovery_10g_sempred(localctx as Partial_database_recovery_10gContext, predIndex);
		case 421:
			return this.period_definition_sempred(localctx as Period_definitionContext, predIndex);
		case 619:
			return this.logical_expression_sempred(localctx as Logical_expressionContext, predIndex);
		case 623:
			return this.relational_expression_sempred(localctx as Relational_expressionContext, predIndex);
		case 628:
			return this.concatenation_sempred(localctx as ConcatenationContext, predIndex);
		}
		return true;
	}
	private unified_auditing_sempred(localctx: Unified_auditingContext, predIndex: number): boolean {
		switch (predIndex) {
		case 0:
			return this.isVersion12();
		}
		return true;
	}
	private audit_direct_path_sempred(localctx: Audit_direct_pathContext, predIndex: number): boolean {
		switch (predIndex) {
		case 1:
			return this.isVersion12();
		}
		return true;
	}
	private audit_container_clause_sempred(localctx: Audit_container_clauseContext, predIndex: number): boolean {
		switch (predIndex) {
		case 2:
			return this.isVersion12();
		}
		return true;
	}
	private auditing_on_clause_sempred(localctx: Auditing_on_clauseContext, predIndex: number): boolean {
		switch (predIndex) {
		case 3:
			return this.isVersion12();
		}
		return true;
	}
	private sql_statement_shortcut_sempred(localctx: Sql_statement_shortcutContext, predIndex: number): boolean {
		switch (predIndex) {
		case 4:
			return this.isVersion12();
		}
		return true;
	}
	private library_editionable_sempred(localctx: Library_editionableContext, predIndex: number): boolean {
		switch (predIndex) {
		case 5:
			return this.isVersion12();
		}
		return true;
	}
	private library_debug_sempred(localctx: Library_debugContext, predIndex: number): boolean {
		switch (predIndex) {
		case 6:
			return this.isVersion12();
		}
		return true;
	}
	private alter_view_editionable_sempred(localctx: Alter_view_editionableContext, predIndex: number): boolean {
		switch (predIndex) {
		case 7:
			return this.isVersion12();
		}
		return true;
	}
	private partial_database_recovery_10g_sempred(localctx: Partial_database_recovery_10gContext, predIndex: number): boolean {
		switch (predIndex) {
		case 8:
			return this.isVersion10();
		}
		return true;
	}
	private period_definition_sempred(localctx: Period_definitionContext, predIndex: number): boolean {
		switch (predIndex) {
		case 9:
			return this.isVersion12();
		}
		return true;
	}
	private logical_expression_sempred(localctx: Logical_expressionContext, predIndex: number): boolean {
		switch (predIndex) {
		case 10:
			return this.precpred(this._ctx, 2);
		case 11:
			return this.precpred(this._ctx, 1);
		}
		return true;
	}
	private relational_expression_sempred(localctx: Relational_expressionContext, predIndex: number): boolean {
		switch (predIndex) {
		case 12:
			return this.precpred(this._ctx, 2);
		}
		return true;
	}
	private concatenation_sempred(localctx: ConcatenationContext, predIndex: number): boolean {
		switch (predIndex) {
		case 13:
			return this.precpred(this._ctx, 3);
		case 14:
			return this.precpred(this._ctx, 2);
		case 15:
			return this.precpred(this._ctx, 1);
		}
		return true;
	}

	public static readonly _serializedATN: number[] = [4,1,2253,12095,2,0,7,
	0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,2,6,7,6,2,7,7,7,2,8,7,8,2,9,7,
	9,2,10,7,10,2,11,7,11,2,12,7,12,2,13,7,13,2,14,7,14,2,15,7,15,2,16,7,16,
	2,17,7,17,2,18,7,18,2,19,7,19,2,20,7,20,2,21,7,21,2,22,7,22,2,23,7,23,2,
	24,7,24,2,25,7,25,2,26,7,26,2,27,7,27,2,28,7,28,2,29,7,29,2,30,7,30,2,31,
	7,31,2,32,7,32,2,33,7,33,2,34,7,34,2,35,7,35,2,36,7,36,2,37,7,37,2,38,7,
	38,2,39,7,39,2,40,7,40,2,41,7,41,2,42,7,42,2,43,7,43,2,44,7,44,2,45,7,45,
	2,46,7,46,2,47,7,47,2,48,7,48,2,49,7,49,2,50,7,50,2,51,7,51,2,52,7,52,2,
	53,7,53,2,54,7,54,2,55,7,55,2,56,7,56,2,57,7,57,2,58,7,58,2,59,7,59,2,60,
	7,60,2,61,7,61,2,62,7,62,2,63,7,63,2,64,7,64,2,65,7,65,2,66,7,66,2,67,7,
	67,2,68,7,68,2,69,7,69,2,70,7,70,2,71,7,71,2,72,7,72,2,73,7,73,2,74,7,74,
	2,75,7,75,2,76,7,76,2,77,7,77,2,78,7,78,2,79,7,79,2,80,7,80,2,81,7,81,2,
	82,7,82,2,83,7,83,2,84,7,84,2,85,7,85,2,86,7,86,2,87,7,87,2,88,7,88,2,89,
	7,89,2,90,7,90,2,91,7,91,2,92,7,92,2,93,7,93,2,94,7,94,2,95,7,95,2,96,7,
	96,2,97,7,97,2,98,7,98,2,99,7,99,2,100,7,100,2,101,7,101,2,102,7,102,2,
	103,7,103,2,104,7,104,2,105,7,105,2,106,7,106,2,107,7,107,2,108,7,108,2,
	109,7,109,2,110,7,110,2,111,7,111,2,112,7,112,2,113,7,113,2,114,7,114,2,
	115,7,115,2,116,7,116,2,117,7,117,2,118,7,118,2,119,7,119,2,120,7,120,2,
	121,7,121,2,122,7,122,2,123,7,123,2,124,7,124,2,125,7,125,2,126,7,126,2,
	127,7,127,2,128,7,128,2,129,7,129,2,130,7,130,2,131,7,131,2,132,7,132,2,
	133,7,133,2,134,7,134,2,135,7,135,2,136,7,136,2,137,7,137,2,138,7,138,2,
	139,7,139,2,140,7,140,2,141,7,141,2,142,7,142,2,143,7,143,2,144,7,144,2,
	145,7,145,2,146,7,146,2,147,7,147,2,148,7,148,2,149,7,149,2,150,7,150,2,
	151,7,151,2,152,7,152,2,153,7,153,2,154,7,154,2,155,7,155,2,156,7,156,2,
	157,7,157,2,158,7,158,2,159,7,159,2,160,7,160,2,161,7,161,2,162,7,162,2,
	163,7,163,2,164,7,164,2,165,7,165,2,166,7,166,2,167,7,167,2,168,7,168,2,
	169,7,169,2,170,7,170,2,171,7,171,2,172,7,172,2,173,7,173,2,174,7,174,2,
	175,7,175,2,176,7,176,2,177,7,177,2,178,7,178,2,179,7,179,2,180,7,180,2,
	181,7,181,2,182,7,182,2,183,7,183,2,184,7,184,2,185,7,185,2,186,7,186,2,
	187,7,187,2,188,7,188,2,189,7,189,2,190,7,190,2,191,7,191,2,192,7,192,2,
	193,7,193,2,194,7,194,2,195,7,195,2,196,7,196,2,197,7,197,2,198,7,198,2,
	199,7,199,2,200,7,200,2,201,7,201,2,202,7,202,2,203,7,203,2,204,7,204,2,
	205,7,205,2,206,7,206,2,207,7,207,2,208,7,208,2,209,7,209,2,210,7,210,2,
	211,7,211,2,212,7,212,2,213,7,213,2,214,7,214,2,215,7,215,2,216,7,216,2,
	217,7,217,2,218,7,218,2,219,7,219,2,220,7,220,2,221,7,221,2,222,7,222,2,
	223,7,223,2,224,7,224,2,225,7,225,2,226,7,226,2,227,7,227,2,228,7,228,2,
	229,7,229,2,230,7,230,2,231,7,231,2,232,7,232,2,233,7,233,2,234,7,234,2,
	235,7,235,2,236,7,236,2,237,7,237,2,238,7,238,2,239,7,239,2,240,7,240,2,
	241,7,241,2,242,7,242,2,243,7,243,2,244,7,244,2,245,7,245,2,246,7,246,2,
	247,7,247,2,248,7,248,2,249,7,249,2,250,7,250,2,251,7,251,2,252,7,252,2,
	253,7,253,2,254,7,254,2,255,7,255,2,256,7,256,2,257,7,257,2,258,7,258,2,
	259,7,259,2,260,7,260,2,261,7,261,2,262,7,262,2,263,7,263,2,264,7,264,2,
	265,7,265,2,266,7,266,2,267,7,267,2,268,7,268,2,269,7,269,2,270,7,270,2,
	271,7,271,2,272,7,272,2,273,7,273,2,274,7,274,2,275,7,275,2,276,7,276,2,
	277,7,277,2,278,7,278,2,279,7,279,2,280,7,280,2,281,7,281,2,282,7,282,2,
	283,7,283,2,284,7,284,2,285,7,285,2,286,7,286,2,287,7,287,2,288,7,288,2,
	289,7,289,2,290,7,290,2,291,7,291,2,292,7,292,2,293,7,293,2,294,7,294,2,
	295,7,295,2,296,7,296,2,297,7,297,2,298,7,298,2,299,7,299,2,300,7,300,2,
	301,7,301,2,302,7,302,2,303,7,303,2,304,7,304,2,305,7,305,2,306,7,306,2,
	307,7,307,2,308,7,308,2,309,7,309,2,310,7,310,2,311,7,311,2,312,7,312,2,
	313,7,313,2,314,7,314,2,315,7,315,2,316,7,316,2,317,7,317,2,318,7,318,2,
	319,7,319,2,320,7,320,2,321,7,321,2,322,7,322,2,323,7,323,2,324,7,324,2,
	325,7,325,2,326,7,326,2,327,7,327,2,328,7,328,2,329,7,329,2,330,7,330,2,
	331,7,331,2,332,7,332,2,333,7,333,2,334,7,334,2,335,7,335,2,336,7,336,2,
	337,7,337,2,338,7,338,2,339,7,339,2,340,7,340,2,341,7,341,2,342,7,342,2,
	343,7,343,2,344,7,344,2,345,7,345,2,346,7,346,2,347,7,347,2,348,7,348,2,
	349,7,349,2,350,7,350,2,351,7,351,2,352,7,352,2,353,7,353,2,354,7,354,2,
	355,7,355,2,356,7,356,2,357,7,357,2,358,7,358,2,359,7,359,2,360,7,360,2,
	361,7,361,2,362,7,362,2,363,7,363,2,364,7,364,2,365,7,365,2,366,7,366,2,
	367,7,367,2,368,7,368,2,369,7,369,2,370,7,370,2,371,7,371,2,372,7,372,2,
	373,7,373,2,374,7,374,2,375,7,375,2,376,7,376,2,377,7,377,2,378,7,378,2,
	379,7,379,2,380,7,380,2,381,7,381,2,382,7,382,2,383,7,383,2,384,7,384,2,
	385,7,385,2,386,7,386,2,387,7,387,2,388,7,388,2,389,7,389,2,390,7,390,2,
	391,7,391,2,392,7,392,2,393,7,393,2,394,7,394,2,395,7,395,2,396,7,396,2,
	397,7,397,2,398,7,398,2,399,7,399,2,400,7,400,2,401,7,401,2,402,7,402,2,
	403,7,403,2,404,7,404,2,405,7,405,2,406,7,406,2,407,7,407,2,408,7,408,2,
	409,7,409,2,410,7,410,2,411,7,411,2,412,7,412,2,413,7,413,2,414,7,414,2,
	415,7,415,2,416,7,416,2,417,7,417,2,418,7,418,2,419,7,419,2,420,7,420,2,
	421,7,421,2,422,7,422,2,423,7,423,2,424,7,424,2,425,7,425,2,426,7,426,2,
	427,7,427,2,428,7,428,2,429,7,429,2,430,7,430,2,431,7,431,2,432,7,432,2,
	433,7,433,2,434,7,434,2,435,7,435,2,436,7,436,2,437,7,437,2,438,7,438,2,
	439,7,439,2,440,7,440,2,441,7,441,2,442,7,442,2,443,7,443,2,444,7,444,2,
	445,7,445,2,446,7,446,2,447,7,447,2,448,7,448,2,449,7,449,2,450,7,450,2,
	451,7,451,2,452,7,452,2,453,7,453,2,454,7,454,2,455,7,455,2,456,7,456,2,
	457,7,457,2,458,7,458,2,459,7,459,2,460,7,460,2,461,7,461,2,462,7,462,2,
	463,7,463,2,464,7,464,2,465,7,465,2,466,7,466,2,467,7,467,2,468,7,468,2,
	469,7,469,2,470,7,470,2,471,7,471,2,472,7,472,2,473,7,473,2,474,7,474,2,
	475,7,475,2,476,7,476,2,477,7,477,2,478,7,478,2,479,7,479,2,480,7,480,2,
	481,7,481,2,482,7,482,2,483,7,483,2,484,7,484,2,485,7,485,2,486,7,486,2,
	487,7,487,2,488,7,488,2,489,7,489,2,490,7,490,2,491,7,491,2,492,7,492,2,
	493,7,493,2,494,7,494,2,495,7,495,2,496,7,496,2,497,7,497,2,498,7,498,2,
	499,7,499,2,500,7,500,2,501,7,501,2,502,7,502,2,503,7,503,2,504,7,504,2,
	505,7,505,2,506,7,506,2,507,7,507,2,508,7,508,2,509,7,509,2,510,7,510,2,
	511,7,511,2,512,7,512,2,513,7,513,2,514,7,514,2,515,7,515,2,516,7,516,2,
	517,7,517,2,518,7,518,2,519,7,519,2,520,7,520,2,521,7,521,2,522,7,522,2,
	523,7,523,2,524,7,524,2,525,7,525,2,526,7,526,2,527,7,527,2,528,7,528,2,
	529,7,529,2,530,7,530,2,531,7,531,2,532,7,532,2,533,7,533,2,534,7,534,2,
	535,7,535,2,536,7,536,2,537,7,537,2,538,7,538,2,539,7,539,2,540,7,540,2,
	541,7,541,2,542,7,542,2,543,7,543,2,544,7,544,2,545,7,545,2,546,7,546,2,
	547,7,547,2,548,7,548,2,549,7,549,2,550,7,550,2,551,7,551,2,552,7,552,2,
	553,7,553,2,554,7,554,2,555,7,555,2,556,7,556,2,557,7,557,2,558,7,558,2,
	559,7,559,2,560,7,560,2,561,7,561,2,562,7,562,2,563,7,563,2,564,7,564,2,
	565,7,565,2,566,7,566,2,567,7,567,2,568,7,568,2,569,7,569,2,570,7,570,2,
	571,7,571,2,572,7,572,2,573,7,573,2,574,7,574,2,575,7,575,2,576,7,576,2,
	577,7,577,2,578,7,578,2,579,7,579,2,580,7,580,2,581,7,581,2,582,7,582,2,
	583,7,583,2,584,7,584,2,585,7,585,2,586,7,586,2,587,7,587,2,588,7,588,2,
	589,7,589,2,590,7,590,2,591,7,591,2,592,7,592,2,593,7,593,2,594,7,594,2,
	595,7,595,2,596,7,596,2,597,7,597,2,598,7,598,2,599,7,599,2,600,7,600,2,
	601,7,601,2,602,7,602,2,603,7,603,2,604,7,604,2,605,7,605,2,606,7,606,2,
	607,7,607,2,608,7,608,2,609,7,609,2,610,7,610,2,611,7,611,2,612,7,612,2,
	613,7,613,2,614,7,614,2,615,7,615,2,616,7,616,2,617,7,617,2,618,7,618,2,
	619,7,619,2,620,7,620,2,621,7,621,2,622,7,622,2,623,7,623,2,624,7,624,2,
	625,7,625,2,626,7,626,2,627,7,627,2,628,7,628,2,629,7,629,2,630,7,630,2,
	631,7,631,2,632,7,632,2,633,7,633,2,634,7,634,2,635,7,635,2,636,7,636,2,
	637,7,637,2,638,7,638,2,639,7,639,2,640,7,640,2,641,7,641,2,642,7,642,2,
	643,7,643,2,644,7,644,2,645,7,645,2,646,7,646,2,647,7,647,2,648,7,648,2,
	649,7,649,2,650,7,650,2,651,7,651,2,652,7,652,2,653,7,653,2,654,7,654,2,
	655,7,655,2,656,7,656,2,657,7,657,2,658,7,658,2,659,7,659,2,660,7,660,2,
	661,7,661,2,662,7,662,2,663,7,663,2,664,7,664,2,665,7,665,2,666,7,666,2,
	667,7,667,2,668,7,668,2,669,7,669,2,670,7,670,2,671,7,671,2,672,7,672,2,
	673,7,673,2,674,7,674,2,675,7,675,2,676,7,676,2,677,7,677,2,678,7,678,2,
	679,7,679,2,680,7,680,2,681,7,681,2,682,7,682,2,683,7,683,2,684,7,684,2,
	685,7,685,2,686,7,686,2,687,7,687,2,688,7,688,2,689,7,689,2,690,7,690,2,
	691,7,691,2,692,7,692,2,693,7,693,2,694,7,694,2,695,7,695,2,696,7,696,2,
	697,7,697,2,698,7,698,2,699,7,699,2,700,7,700,2,701,7,701,2,702,7,702,2,
	703,7,703,2,704,7,704,2,705,7,705,2,706,7,706,2,707,7,707,2,708,7,708,2,
	709,7,709,2,710,7,710,2,711,7,711,2,712,7,712,2,713,7,713,2,714,7,714,2,
	715,7,715,2,716,7,716,2,717,7,717,2,718,7,718,2,719,7,719,2,720,7,720,2,
	721,7,721,2,722,7,722,2,723,7,723,2,724,7,724,2,725,7,725,2,726,7,726,2,
	727,7,727,2,728,7,728,2,729,7,729,2,730,7,730,2,731,7,731,2,732,7,732,2,
	733,7,733,2,734,7,734,2,735,7,735,2,736,7,736,2,737,7,737,2,738,7,738,2,
	739,7,739,2,740,7,740,2,741,7,741,2,742,7,742,2,743,7,743,2,744,7,744,2,
	745,7,745,2,746,7,746,2,747,7,747,2,748,7,748,2,749,7,749,2,750,7,750,1,
	0,1,0,1,0,1,1,1,1,3,1,1508,8,1,1,1,3,1,1511,8,1,5,1,1513,8,1,10,1,12,1,
	1516,9,1,1,1,1,1,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,
	2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,
	2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,
	2,1,2,1,2,1,2,1,2,1,2,1,2,3,2,1576,8,2,1,3,1,3,1,3,1,3,1,3,1,4,1,4,1,4,
	1,4,1,4,3,4,1588,8,4,1,4,5,4,1591,8,4,10,4,12,4,1594,9,4,1,4,1,4,3,4,1598,
	8,4,1,4,1,4,1,5,1,5,1,5,3,5,1605,8,5,1,5,1,5,1,5,1,5,1,5,1,5,5,5,1613,8,
	5,10,5,12,5,1616,9,5,1,5,1,5,3,5,1620,8,5,1,5,1,5,1,5,1,5,1,5,1,5,5,5,1628,
	8,5,10,5,12,5,1631,9,5,1,5,3,5,1634,8,5,1,5,1,5,3,5,1638,8,5,1,5,3,5,1641,
	8,5,1,5,1,5,3,5,1645,8,5,1,5,1,5,1,5,3,5,1650,8,5,1,5,1,5,1,6,1,6,3,6,1656,
	8,6,1,7,1,7,1,7,1,7,1,7,1,7,1,7,3,7,1665,8,7,1,7,3,7,1668,8,7,1,7,1,7,1,
	8,1,8,3,8,1674,8,8,1,9,1,9,1,9,1,9,1,9,5,9,1681,8,9,10,9,12,9,1684,9,9,
	1,9,1,9,1,10,1,10,1,10,1,10,1,10,1,11,1,11,1,11,3,11,1696,8,11,1,11,1,11,
	1,11,3,11,1701,8,11,1,11,1,11,1,11,1,12,1,12,1,12,1,12,1,12,3,12,1711,8,
	12,1,12,3,12,1714,8,12,1,12,5,12,1717,8,12,10,12,12,12,1720,9,12,1,12,1,
	12,3,12,1724,8,12,1,12,1,12,1,13,1,13,1,13,3,13,1731,8,13,1,13,1,13,1,13,
	1,13,3,13,1737,8,13,1,13,1,13,3,13,1741,8,13,1,13,1,13,5,13,1745,8,13,10,
	13,12,13,1748,9,13,1,13,1,13,3,13,1752,8,13,1,13,1,13,1,14,1,14,1,14,3,
	14,1759,8,14,1,14,1,14,1,14,1,14,1,14,3,14,1766,8,14,1,14,1,14,1,14,5,14,
	1771,8,14,10,14,12,14,1774,9,14,1,14,1,14,3,14,1778,8,14,1,14,1,14,3,14,
	1782,8,14,1,14,1,14,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,3,15,1794,8,
	15,1,16,1,16,1,16,1,16,1,16,1,16,5,16,1802,8,16,10,16,12,16,1805,9,16,1,
	16,1,16,3,16,1809,8,16,1,16,1,16,1,17,1,17,1,17,1,17,1,17,1,17,5,17,1819,
	8,17,10,17,12,17,1822,9,17,1,17,1,17,3,17,1826,8,17,1,17,1,17,1,17,3,17,
	1831,8,17,1,17,3,17,1834,8,17,1,17,3,17,1837,8,17,1,17,1,17,1,18,1,18,1,
	18,1,18,1,18,1,18,1,18,1,18,1,18,3,18,1850,8,18,1,19,1,19,1,19,1,19,1,19,
	1,20,1,20,1,20,1,20,1,20,3,20,1862,8,20,1,20,5,20,1865,8,20,10,20,12,20,
	1868,9,20,1,20,1,20,3,20,1872,8,20,1,20,1,20,1,21,1,21,1,21,1,21,1,21,1,
	21,5,21,1882,8,21,10,21,12,21,1885,9,21,1,21,1,21,3,21,1889,8,21,1,21,1,
	21,1,21,1,21,1,21,1,21,5,21,1897,8,21,10,21,12,21,1900,9,21,1,21,3,21,1903,
	8,21,1,21,3,21,1906,8,21,1,21,1,21,3,21,1910,8,21,1,21,3,21,1913,8,21,1,
	21,1,21,3,21,1917,8,21,1,21,1,21,1,21,3,21,1922,8,21,1,21,1,21,1,22,1,22,
	1,22,1,22,1,22,1,22,5,22,1932,8,22,10,22,12,22,1935,9,22,1,22,1,22,3,22,
	1939,8,22,1,22,1,22,3,22,1943,8,22,1,22,3,22,1946,8,22,1,22,1,22,1,22,3,
	22,1951,8,22,1,22,1,22,1,23,1,23,1,23,3,23,1958,8,23,1,23,1,23,1,23,1,23,
	1,23,1,23,5,23,1966,8,23,10,23,12,23,1969,9,23,1,23,1,23,3,23,1973,8,23,
	1,23,3,23,1976,8,23,1,23,1,23,3,23,1980,8,23,1,23,3,23,1983,8,23,1,23,1,
	23,1,23,3,23,1988,8,23,1,23,1,23,1,24,1,24,1,24,1,24,1,24,1,25,1,25,1,25,
	1,25,1,25,1,25,1,25,1,25,1,25,3,25,2006,8,25,1,25,5,25,2009,8,25,10,25,
	12,25,2012,9,25,1,25,1,25,3,25,2016,8,25,3,25,2018,8,25,1,25,1,25,1,26,
	1,26,1,26,3,26,2025,8,26,1,26,1,26,1,26,1,26,1,26,3,26,2032,8,26,1,26,3,
	26,2035,8,26,1,26,3,26,2038,8,26,1,26,3,26,2041,8,26,1,26,1,26,1,26,1,27,
	1,27,1,27,1,27,5,27,2050,8,27,10,27,12,27,2053,9,27,1,28,1,28,1,28,1,28,
	1,28,1,29,1,29,1,29,1,29,3,29,2064,8,29,1,29,1,29,3,29,2068,8,29,1,29,3,
	29,2071,8,29,1,30,1,30,1,30,1,30,1,31,1,31,1,31,3,31,2080,8,31,1,32,1,32,
	1,32,1,32,5,32,2086,8,32,10,32,12,32,2089,9,32,1,32,1,32,1,32,1,32,1,32,
	3,32,2096,8,32,1,32,3,32,2099,8,32,1,33,1,33,1,33,1,33,1,33,3,33,2106,8,
	33,1,34,1,34,3,34,2110,8,34,1,35,1,35,1,35,3,35,2115,8,35,1,35,4,35,2118,
	8,35,11,35,12,35,2119,1,35,1,35,1,35,1,36,1,36,1,36,1,36,1,36,1,36,1,36,
	1,36,1,36,1,36,1,36,1,36,1,36,1,36,1,36,1,36,1,36,1,36,1,36,1,36,1,36,1,
	36,1,36,1,36,1,36,1,36,1,36,1,36,1,36,1,36,1,36,1,36,1,36,1,36,1,36,1,36,
	3,36,2161,8,36,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,
	37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,
	3,37,2189,8,37,1,38,1,38,1,38,5,38,2194,8,38,10,38,12,38,2197,9,38,1,38,
	1,38,3,38,2201,8,38,1,38,1,38,1,39,1,39,1,39,3,39,2208,8,39,1,40,1,40,1,
	40,1,40,1,40,1,41,1,41,4,41,2217,8,41,11,41,12,41,2218,1,42,1,42,1,42,1,
	43,1,43,1,43,3,43,2227,8,43,1,43,1,43,3,43,2231,8,43,1,43,1,43,1,44,1,44,
	1,44,1,44,1,44,1,44,1,44,1,44,1,44,3,44,2244,8,44,1,44,3,44,2247,8,44,1,
	44,1,44,1,45,1,45,3,45,2253,8,45,1,45,3,45,2256,8,45,1,45,5,45,2259,8,45,
	10,45,12,45,2262,9,45,1,45,1,45,3,45,2266,8,45,1,46,1,46,3,46,2270,8,46,
	1,46,1,46,1,46,1,46,1,46,1,46,5,46,2278,8,46,10,46,12,46,2281,9,46,1,46,
	1,46,1,47,1,47,1,47,5,47,2288,8,47,10,47,12,47,2291,9,47,1,48,1,48,1,48,
	3,48,2296,8,48,1,49,1,49,1,49,1,49,1,49,1,49,1,49,5,49,2305,8,49,10,49,
	12,49,2308,9,49,1,49,1,49,3,49,2312,8,49,1,50,1,50,3,50,2316,8,50,1,51,
	1,51,1,51,1,51,1,51,1,51,3,51,2324,8,51,1,52,1,52,1,52,1,52,1,52,1,52,3,
	52,2332,8,52,1,52,1,52,1,52,3,52,2337,8,52,1,52,3,52,2340,8,52,3,52,2342,
	8,52,1,53,3,53,2345,8,53,1,53,1,53,1,53,1,53,1,54,1,54,1,54,3,54,2354,8,
	54,1,54,1,54,1,54,3,54,2359,8,54,1,54,1,54,1,55,1,55,1,55,3,55,2366,8,55,
	1,55,3,55,2369,8,55,1,56,3,56,2372,8,56,1,56,1,56,3,56,2376,8,56,1,56,3,
	56,2379,8,56,1,56,1,56,1,56,1,56,5,56,2385,8,56,10,56,12,56,2388,9,56,1,
	56,1,56,3,56,2392,8,56,1,56,5,56,2395,8,56,10,56,12,56,2398,9,56,1,57,1,
	57,1,57,1,57,3,57,2404,8,57,1,58,1,58,1,58,1,59,1,59,1,59,1,59,1,59,3,59,
	2414,8,59,1,60,1,60,1,60,1,60,1,60,1,60,1,60,1,60,1,61,1,61,1,61,1,61,4,
	61,2428,8,61,11,61,12,61,2429,1,61,1,61,1,62,1,62,1,62,3,62,2437,8,62,1,
	63,1,63,1,63,1,63,1,64,1,64,1,64,1,64,3,64,2447,8,64,1,65,1,65,1,65,1,65,
	1,65,1,65,5,65,2455,8,65,10,65,12,65,2458,9,65,1,65,1,65,1,65,1,65,3,65,
	2464,8,65,1,65,3,65,2467,8,65,1,65,1,65,1,65,3,65,2472,8,65,1,66,1,66,1,
	66,1,66,1,66,1,66,5,66,2480,8,66,10,66,12,66,2483,9,66,1,66,1,66,3,66,2487,
	8,66,1,66,1,66,1,66,1,66,1,66,3,66,2494,8,66,1,66,3,66,2497,8,66,1,66,1,
	66,1,66,3,66,2502,8,66,1,67,3,67,2505,8,67,1,67,3,67,2508,8,67,1,67,1,67,
	1,67,1,67,1,67,1,67,1,67,1,67,1,67,1,67,1,67,1,67,1,67,5,67,2523,8,67,10,
	67,12,67,2526,9,67,1,67,1,67,3,67,2530,8,67,1,67,1,67,1,67,1,67,1,67,1,
	67,1,67,3,67,2539,8,67,1,67,3,67,2542,8,67,1,67,1,67,1,67,3,67,2547,8,67,
	1,68,3,68,2550,8,68,1,68,1,68,1,69,1,69,1,69,3,69,2557,8,69,1,69,3,69,2560,
	8,69,1,70,1,70,1,70,1,70,1,71,3,71,2567,8,71,1,71,4,71,2570,8,71,11,71,
	12,71,2571,1,71,1,71,3,71,2576,8,71,1,72,1,72,1,72,3,72,2581,8,72,1,73,
	1,73,1,73,3,73,2586,8,73,1,74,1,74,1,74,1,74,1,75,1,75,1,75,1,75,1,75,1,
	75,5,75,2598,8,75,10,75,12,75,2601,9,75,1,75,1,75,3,75,2605,8,75,1,75,1,
	75,1,75,1,75,1,75,3,75,2612,8,75,1,75,3,75,2615,8,75,1,75,1,75,3,75,2619,
	8,75,1,75,3,75,2622,8,75,1,75,3,75,2625,8,75,1,75,3,75,2628,8,75,1,76,1,
	76,1,76,1,76,1,76,1,76,5,76,2636,8,76,10,76,12,76,2639,9,76,1,76,1,76,1,
	76,3,76,2644,8,76,1,77,1,77,1,77,1,77,1,77,1,77,5,77,2652,8,77,10,77,12,
	77,2655,9,77,1,77,1,77,3,77,2659,8,77,1,77,1,77,1,77,1,77,1,77,3,77,2666,
	8,77,1,77,1,77,1,77,1,77,3,77,2672,8,77,1,77,1,77,3,77,2676,8,77,1,78,3,
	78,2679,8,78,1,78,3,78,2682,8,78,1,78,1,78,1,78,1,78,1,78,1,78,1,78,1,78,
	1,78,1,78,1,78,1,78,1,78,5,78,2697,8,78,10,78,12,78,2700,9,78,1,78,1,78,
	3,78,2704,8,78,1,78,1,78,1,78,1,78,1,78,1,78,3,78,2712,8,78,1,79,1,79,1,
	79,1,79,1,80,1,80,1,80,1,80,1,80,1,80,5,80,2724,8,80,10,80,12,80,2727,9,
	80,1,80,1,80,1,81,1,81,3,81,2733,8,81,1,82,1,82,1,82,1,83,1,83,1,83,1,83,
	1,83,1,84,1,84,1,84,1,84,4,84,2747,8,84,11,84,12,84,2748,1,84,1,84,1,85,
	1,85,1,85,1,85,1,85,1,85,1,85,1,85,1,85,1,85,1,85,1,85,1,85,1,85,1,85,1,
	85,1,85,1,85,3,85,2771,8,85,1,85,1,85,1,85,1,85,1,85,3,85,2778,8,85,3,85,
	2780,8,85,1,85,1,85,3,85,2784,8,85,1,86,1,86,1,86,1,86,1,87,1,87,1,87,1,
	87,1,87,5,87,2795,8,87,10,87,12,87,2798,9,87,1,87,1,87,1,88,1,88,1,88,1,
	88,1,88,1,88,1,88,1,88,1,88,1,88,1,88,1,88,1,88,1,88,1,88,1,88,3,88,2818,
	8,88,1,89,1,89,1,89,1,89,1,90,1,90,3,90,2826,8,90,1,90,1,90,1,90,1,90,1,
	90,1,90,3,90,2834,8,90,1,90,3,90,2837,8,90,1,90,1,90,1,91,1,91,1,91,3,91,
	2844,8,91,1,92,1,92,1,92,3,92,2849,8,92,1,92,1,92,1,93,1,93,3,93,2855,8,
	93,1,93,1,93,1,93,3,93,2860,8,93,1,93,1,93,1,93,3,93,2865,8,93,5,93,2867,
	8,93,10,93,12,93,2870,9,93,1,93,1,93,3,93,2874,8,93,1,94,1,94,1,94,1,94,
	3,94,2880,8,94,1,94,1,94,3,94,2884,8,94,1,94,1,94,1,94,3,94,2889,8,94,1,
	94,1,94,3,94,2893,8,94,5,94,2895,8,94,10,94,12,94,2898,9,94,1,94,1,94,1,
	94,1,94,1,94,1,94,1,94,1,94,5,94,2908,8,94,10,94,12,94,2911,9,94,1,94,1,
	94,3,94,2915,8,94,1,94,3,94,2918,8,94,1,95,1,95,3,95,2922,8,95,1,96,1,96,
	1,96,4,96,2927,8,96,11,96,12,96,2928,1,96,1,96,1,96,1,96,3,96,2935,8,96,
	3,96,2937,8,96,1,97,1,97,3,97,2941,8,97,1,97,3,97,2944,8,97,1,97,1,97,1,
	97,1,97,1,97,3,97,2951,8,97,1,98,1,98,1,98,1,98,1,98,1,98,1,98,1,98,1,98,
	3,98,2962,8,98,1,98,1,98,1,98,1,98,1,98,1,98,1,98,1,98,3,98,2972,8,98,5,
	98,2974,8,98,10,98,12,98,2977,9,98,1,98,1,98,3,98,2981,8,98,1,99,1,99,3,
	99,2985,8,99,1,99,1,99,3,99,2989,8,99,1,99,3,99,2992,8,99,1,100,1,100,1,
	100,1,100,1,100,1,100,1,100,5,100,3001,8,100,10,100,12,100,3004,9,100,1,
	100,1,100,3,100,3008,8,100,1,101,1,101,1,101,1,101,1,101,1,101,1,101,1,
	101,5,101,3018,8,101,10,101,12,101,3021,9,101,1,101,1,101,1,101,1,101,1,
	101,1,101,1,101,1,101,1,101,1,101,5,101,3033,8,101,10,101,12,101,3036,9,
	101,1,101,1,101,1,101,3,101,3041,8,101,3,101,3043,8,101,1,102,1,102,3,102,
	3047,8,102,1,102,1,102,1,102,1,102,1,102,1,102,1,102,5,102,3056,8,102,10,
	102,12,102,3059,9,102,1,102,1,102,3,102,3063,8,102,1,103,1,103,1,103,1,
	103,1,103,3,103,3070,8,103,1,104,1,104,1,104,1,104,5,104,3076,8,104,10,
	104,12,104,3079,9,104,1,104,1,104,1,105,1,105,1,105,1,105,5,105,3087,8,
	105,10,105,12,105,3090,9,105,1,105,1,105,1,106,1,106,3,106,3096,8,106,1,
	106,1,106,5,106,3100,8,106,10,106,12,106,3103,9,106,1,106,3,106,3106,8,
	106,1,107,1,107,1,107,1,107,1,107,1,107,5,107,3114,8,107,10,107,12,107,
	3117,9,107,1,107,1,107,1,107,1,107,1,107,1,107,5,107,3125,8,107,10,107,
	12,107,3128,9,107,1,107,1,107,3,107,3132,8,107,1,108,1,108,3,108,3136,8,
	108,1,108,1,108,3,108,3140,8,108,1,108,3,108,3143,8,108,1,108,3,108,3146,
	8,108,1,109,1,109,1,109,1,109,1,109,1,109,5,109,3154,8,109,10,109,12,109,
	3157,9,109,1,109,1,109,3,109,3161,8,109,1,109,1,109,1,109,1,109,5,109,3167,
	8,109,10,109,12,109,3170,9,109,1,109,1,109,1,110,1,110,3,110,3176,8,110,
	1,110,1,110,5,110,3180,8,110,10,110,12,110,3183,9,110,1,110,1,110,3,110,
	3187,8,110,1,111,1,111,1,111,1,111,1,111,1,111,5,111,3195,8,111,10,111,
	12,111,3198,9,111,1,111,1,111,1,111,1,111,1,111,1,111,5,111,3206,8,111,
	10,111,12,111,3209,9,111,1,111,1,111,3,111,3213,8,111,1,112,1,112,3,112,
	3217,8,112,1,112,1,112,3,112,3221,8,112,1,112,3,112,3224,8,112,1,112,3,
	112,3227,8,112,1,113,1,113,1,114,1,114,1,114,3,114,3234,8,114,1,114,1,114,
	1,115,1,115,1,115,1,115,1,115,3,115,3243,8,115,1,115,1,115,1,116,1,116,
	1,116,1,116,1,116,1,116,4,116,3253,8,116,11,116,12,116,3254,1,117,1,117,
	1,117,1,117,1,117,1,117,1,117,1,117,1,117,1,117,1,117,1,117,1,117,1,117,
	1,117,1,117,1,117,1,117,1,117,1,117,1,117,3,117,3278,8,117,1,118,1,118,
	1,119,1,119,1,120,1,120,1,120,1,120,1,120,1,120,1,120,3,120,3291,8,120,
	1,120,1,120,1,120,1,120,1,120,1,120,1,120,1,120,1,120,1,120,1,120,1,120,
	5,120,3305,8,120,10,120,12,120,3308,9,120,1,121,1,121,1,121,1,121,1,121,
	1,121,1,121,1,121,3,121,3318,8,121,1,122,1,122,1,122,1,122,1,122,1,122,
	3,122,3326,8,122,1,122,1,122,1,122,1,122,3,122,3332,8,122,1,122,3,122,3335,
	8,122,1,123,1,123,1,123,3,123,3340,8,123,1,123,1,123,3,123,3344,8,123,1,
	123,3,123,3347,8,123,1,123,3,123,3350,8,123,1,124,1,124,1,124,3,124,3355,
	8,124,1,125,1,125,1,125,1,125,4,125,3361,8,125,11,125,12,125,3362,1,125,
	1,125,1,125,1,125,1,125,1,125,1,125,1,125,1,125,1,125,3,125,3375,8,125,
	1,126,1,126,1,126,1,126,1,126,3,126,3382,8,126,1,127,1,127,1,127,1,127,
	1,127,3,127,3389,8,127,1,127,1,127,1,127,1,128,1,128,1,128,1,128,1,129,
	1,129,1,129,1,129,1,129,1,129,1,129,1,129,5,129,3406,8,129,10,129,12,129,
	3409,9,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,3,129,3419,8,
	129,1,129,3,129,3422,8,129,1,130,1,130,1,130,1,130,4,130,3428,8,130,11,
	130,12,130,3429,1,130,1,130,1,130,1,130,1,130,3,130,3437,8,130,1,130,3,
	130,3440,8,130,3,130,3442,8,130,1,131,1,131,1,131,1,131,1,131,1,131,3,131,
	3450,8,131,1,132,1,132,1,133,1,133,1,134,1,134,1,135,1,135,1,135,1,135,
	1,135,1,135,1,135,1,135,1,135,1,135,1,135,1,135,4,135,3470,8,135,11,135,
	12,135,3471,1,135,1,135,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,
	1,136,1,136,1,136,1,136,1,136,1,136,4,136,3490,8,136,11,136,12,136,3491,
	1,136,1,136,1,136,1,136,1,136,5,136,3499,8,136,10,136,12,136,3502,9,136,
	1,136,1,136,1,136,3,136,3507,8,136,1,137,1,137,1,137,3,137,3512,8,137,1,
	138,1,138,1,138,1,138,1,139,1,139,1,139,1,139,3,139,3522,8,139,1,140,1,
	140,1,140,1,140,1,141,1,141,1,141,3,141,3531,8,141,1,141,1,141,1,141,1,
	142,1,142,1,142,1,143,1,143,1,143,5,143,3542,8,143,10,143,12,143,3545,9,
	143,1,143,1,143,1,143,1,143,1,143,5,143,3552,8,143,10,143,12,143,3555,9,
	143,5,143,3557,8,143,10,143,12,143,3560,9,143,3,143,3562,8,143,1,144,1,
	144,1,144,1,144,3,144,3568,8,144,1,145,1,145,1,145,1,146,1,146,1,146,1,
	147,1,147,1,147,1,148,1,148,1,148,1,148,1,148,5,148,3584,8,148,10,148,12,
	148,3587,9,148,3,148,3589,8,148,1,148,3,148,3592,8,148,1,149,1,149,1,149,
	1,149,1,149,1,149,3,149,3600,8,149,1,149,1,149,1,149,1,149,1,149,1,149,
	1,149,1,149,1,149,1,149,1,149,3,149,3613,8,149,3,149,3615,8,149,1,149,1,
	149,3,149,3619,8,149,1,149,1,149,1,149,1,149,1,149,1,149,3,149,3627,8,149,
	3,149,3629,8,149,3,149,3631,8,149,3,149,3633,8,149,1,150,1,150,1,150,1,
	150,5,150,3639,8,150,10,150,12,150,3642,9,150,1,150,1,150,1,151,1,151,1,
	151,1,151,1,151,1,151,3,151,3652,8,151,1,152,1,152,1,152,1,152,1,152,1,
	153,1,153,1,153,1,153,3,153,3663,8,153,3,153,3665,8,153,1,154,1,154,1,154,
	1,154,1,154,3,154,3672,8,154,1,154,3,154,3675,8,154,1,154,1,154,1,154,3,
	154,3680,8,154,1,154,1,154,1,154,1,154,1,154,3,154,3687,8,154,1,154,1,154,
	3,154,3691,8,154,1,154,3,154,3694,8,154,1,154,1,154,1,155,1,155,1,155,1,
	155,1,155,1,155,1,155,1,155,1,155,1,155,5,155,3708,8,155,10,155,12,155,
	3711,9,155,1,155,1,155,3,155,3715,8,155,1,155,1,155,1,155,1,155,1,155,1,
	155,1,155,1,155,1,155,1,155,5,155,3727,8,155,10,155,12,155,3730,9,155,1,
	155,1,155,3,155,3734,8,155,3,155,3736,8,155,1,156,1,156,1,156,1,156,1,156,
	1,156,1,156,3,156,3745,8,156,1,156,1,156,1,156,1,156,1,156,1,156,3,156,
	3753,8,156,1,156,3,156,3756,8,156,1,156,3,156,3759,8,156,1,156,3,156,3762,
	8,156,1,156,3,156,3765,8,156,3,156,3767,8,156,1,157,1,157,1,158,1,158,3,
	158,3773,8,158,1,159,1,159,1,160,1,160,1,161,1,161,1,161,1,161,1,161,3,
	161,3784,8,161,1,161,3,161,3787,8,161,1,161,1,161,1,162,1,162,1,162,1,162,
	1,162,1,162,1,162,1,162,1,162,5,162,3800,8,162,10,162,12,162,3803,9,162,
	1,162,1,162,1,163,1,163,1,163,1,163,5,163,3811,8,163,10,163,12,163,3814,
	9,163,1,163,1,163,1,163,1,163,5,163,3820,8,163,10,163,12,163,3823,9,163,
	1,163,1,163,1,163,1,163,5,163,3829,8,163,10,163,12,163,3832,9,163,1,163,
	1,163,1,163,1,163,5,163,3838,8,163,10,163,12,163,3841,9,163,1,163,1,163,
	1,163,1,163,5,163,3847,8,163,10,163,12,163,3850,9,163,3,163,3852,8,163,
	1,163,1,163,1,163,1,163,3,163,3858,8,163,1,163,1,163,1,163,3,163,3863,8,
	163,3,163,3865,8,163,1,164,1,164,1,165,1,165,1,165,3,165,3872,8,165,1,166,
	1,166,1,167,1,167,1,167,1,167,1,167,1,167,1,167,1,167,1,167,1,167,1,168,
	1,168,1,169,1,169,1,170,1,170,1,171,1,171,1,171,1,171,1,172,1,172,1,173,
	1,173,1,173,1,173,1,173,1,173,1,174,1,174,1,174,1,174,1,174,1,174,1,174,
	1,174,5,174,3912,8,174,10,174,12,174,3915,9,174,3,174,3917,8,174,1,174,
	1,174,3,174,3921,8,174,1,174,3,174,3924,8,174,1,174,1,174,1,174,1,174,1,
	174,1,174,1,174,5,174,3933,8,174,10,174,12,174,3936,9,174,1,174,1,174,1,
	174,1,174,5,174,3942,8,174,10,174,12,174,3945,9,174,3,174,3947,8,174,3,
	174,3949,8,174,1,174,1,174,1,175,1,175,1,176,1,176,1,176,1,176,1,176,1,
	176,3,176,3961,8,176,1,176,1,176,1,176,3,176,3966,8,176,1,176,1,176,3,176,
	3970,8,176,1,176,1,176,3,176,3974,8,176,1,176,3,176,3977,8,176,1,176,3,
	176,3980,8,176,1,176,1,176,1,177,1,177,1,177,1,177,1,178,1,178,1,178,1,
	178,1,178,1,179,1,179,1,179,3,179,3996,8,179,3,179,3998,8,179,1,179,1,179,
	1,179,1,179,3,179,4004,8,179,3,179,4006,8,179,5,179,4008,8,179,10,179,12,
	179,4011,9,179,1,179,1,179,1,179,3,179,4016,8,179,1,179,1,179,1,179,1,179,
	3,179,4022,8,179,5,179,4024,8,179,10,179,12,179,4027,9,179,3,179,4029,8,
	179,1,180,1,180,1,180,1,180,5,180,4035,8,180,10,180,12,180,4038,9,180,1,
	181,1,181,1,182,1,182,1,182,5,182,4045,8,182,10,182,12,182,4048,9,182,1,
	182,3,182,4051,8,182,1,182,1,182,1,183,1,183,1,184,1,184,1,184,1,184,1,
	184,1,184,1,184,1,184,1,184,1,184,1,184,1,184,1,184,3,184,4070,8,184,1,
	185,1,185,1,185,3,185,4075,8,185,1,185,1,185,1,186,1,186,1,186,3,186,4082,
	8,186,1,186,1,186,1,187,1,187,1,187,3,187,4089,8,187,1,187,1,187,1,188,
	1,188,1,188,1,188,1,188,1,188,1,188,1,188,1,188,1,188,1,188,1,188,1,188,
	1,188,1,188,1,188,1,188,1,188,1,188,1,188,1,188,1,188,1,188,1,188,1,188,
	1,188,1,188,1,188,1,188,1,188,1,188,1,188,1,188,1,188,1,188,1,188,1,188,
	1,188,1,188,1,188,1,188,1,188,1,188,1,188,1,188,1,188,1,188,1,188,1,188,
	1,188,1,188,1,188,1,188,1,188,1,188,1,188,1,188,1,188,1,188,1,188,1,188,
	1,188,1,188,1,188,1,188,1,188,1,188,1,188,1,188,1,188,3,188,4163,8,188,
	1,189,1,189,1,189,1,189,1,189,1,190,1,190,1,190,1,190,1,190,1,190,1,191,
	1,191,3,191,4178,8,191,1,191,1,191,1,191,1,191,3,191,4184,8,191,3,191,4186,
	8,191,4,191,4188,8,191,11,191,12,191,4189,1,191,1,191,3,191,4194,8,191,
	1,191,1,191,1,191,3,191,4199,8,191,1,191,1,191,1,191,3,191,4204,8,191,5,
	191,4206,8,191,10,191,12,191,4209,9,191,1,191,1,191,1,191,3,191,4214,8,
	191,1,191,1,191,1,191,3,191,4219,8,191,1,191,1,191,1,191,3,191,4224,8,191,
	1,191,3,191,4227,8,191,1,191,1,191,1,192,1,192,1,192,1,192,1,193,1,193,
	1,193,3,193,4238,8,193,1,193,1,193,1,193,1,193,1,193,1,193,1,194,1,194,
	1,195,1,195,1,196,1,196,1,196,1,196,1,196,3,196,4255,8,196,1,196,5,196,
	4258,8,196,10,196,12,196,4261,9,196,1,196,1,196,3,196,4265,8,196,1,196,
	3,196,4268,8,196,1,196,1,196,1,197,1,197,1,197,1,198,1,198,1,198,1,199,
	1,199,1,199,1,199,1,200,1,200,1,201,1,201,1,201,3,201,4287,8,201,1,201,
	1,201,1,202,1,202,1,202,1,202,1,202,1,202,1,202,1,202,1,202,1,202,1,202,
	1,202,1,202,1,202,1,202,1,202,1,202,1,202,1,202,1,202,5,202,4311,8,202,
	10,202,12,202,4314,9,202,1,202,1,202,3,202,4318,8,202,1,202,1,202,1,202,
	1,202,3,202,4324,8,202,3,202,4326,8,202,1,202,1,202,1,203,1,203,1,203,1,
	204,1,204,1,204,3,204,4336,8,204,1,204,3,204,4339,8,204,1,204,3,204,4342,
	8,204,1,204,3,204,4345,8,204,1,204,3,204,4348,8,204,1,204,1,204,1,204,3,
	204,4353,8,204,1,204,1,204,1,204,3,204,4358,8,204,1,205,1,205,3,205,4362,
	8,205,1,206,1,206,3,206,4366,8,206,1,206,1,206,5,206,4370,8,206,10,206,
	12,206,4373,9,206,1,206,3,206,4376,8,206,4,206,4378,8,206,11,206,12,206,
	4379,1,206,1,206,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,1,207,
	1,207,5,207,4394,8,207,10,207,12,207,4397,9,207,1,207,3,207,4400,8,207,
	1,207,1,207,3,207,4404,8,207,1,207,1,207,3,207,4408,8,207,1,207,1,207,1,
	207,3,207,4413,8,207,4,207,4415,8,207,11,207,12,207,4416,1,207,1,207,5,
	207,4421,8,207,10,207,12,207,4424,9,207,1,208,1,208,3,208,4428,8,208,1,
	208,3,208,4431,8,208,1,208,1,208,1,208,1,208,1,208,1,208,3,208,4439,8,208,
	1,208,3,208,4442,8,208,1,209,1,209,1,209,1,209,1,209,1,209,1,209,3,209,
	4451,8,209,1,209,1,209,3,209,4455,8,209,3,209,4457,8,209,1,210,1,210,1,
	210,1,210,1,210,1,210,1,210,1,210,1,210,1,210,1,210,1,210,1,210,1,210,1,
	210,1,210,1,210,3,210,4476,8,210,1,210,1,210,1,210,1,210,3,210,4482,8,210,
	1,210,4,210,4485,8,210,11,210,12,210,4486,1,210,1,210,1,210,3,210,4492,
	8,210,3,210,4494,8,210,1,211,1,211,3,211,4498,8,211,1,211,1,211,1,211,1,
	211,1,211,5,211,4505,8,211,10,211,12,211,4508,9,211,1,211,1,211,1,211,1,
	211,1,211,1,211,1,211,1,211,5,211,4518,8,211,10,211,12,211,4521,9,211,1,
	211,1,211,1,211,1,211,1,211,1,211,1,211,1,211,3,211,4531,8,211,1,211,3,
	211,4534,8,211,1,212,3,212,4537,8,212,1,212,1,212,1,212,1,212,1,212,1,212,
	1,212,4,212,4546,8,212,11,212,12,212,4547,1,213,1,213,1,213,1,213,1,213,
	3,213,4555,8,213,1,213,3,213,4558,8,213,1,213,1,213,1,213,1,213,1,213,1,
	213,1,213,1,213,1,213,1,213,3,213,4570,8,213,1,213,1,213,1,213,1,213,1,
	213,1,213,1,213,1,213,1,213,1,213,1,213,1,213,1,213,3,213,4585,8,213,1,
	213,1,213,1,214,1,214,1,214,3,214,4592,8,214,1,214,1,214,1,214,1,214,3,
	214,4598,8,214,1,214,1,214,3,214,4602,8,214,1,214,1,214,1,214,1,214,3,214,
	4608,8,214,1,214,1,214,3,214,4612,8,214,1,214,1,214,1,214,1,214,1,214,5,
	214,4619,8,214,10,214,12,214,4622,9,214,1,214,1,214,1,214,1,214,5,214,4628,
	8,214,10,214,12,214,4631,9,214,1,214,1,214,3,214,4635,8,214,1,215,1,215,
	3,215,4639,8,215,1,215,1,215,3,215,4643,8,215,1,216,1,216,1,216,1,216,3,
	216,4649,8,216,1,217,1,217,1,218,1,218,1,218,3,218,4656,8,218,1,218,1,218,
	1,218,1,218,3,218,4662,8,218,1,219,1,219,1,219,1,220,1,220,1,221,1,221,
	3,221,4671,8,221,1,221,1,221,1,221,3,221,4676,8,221,1,221,1,221,1,222,1,
	222,1,222,3,222,4683,8,222,1,222,1,222,1,222,1,222,1,222,1,222,1,222,1,
	222,1,222,1,222,1,222,1,222,1,222,1,222,1,222,5,222,4700,8,222,10,222,12,
	222,4703,9,222,1,223,1,223,1,223,1,224,1,224,1,225,1,225,1,225,1,225,1,
	225,1,225,1,225,3,225,4717,8,225,3,225,4719,8,225,1,226,1,226,1,226,1,226,
	1,226,1,227,1,227,1,227,1,227,3,227,4730,8,227,1,227,3,227,4733,8,227,1,
	227,3,227,4736,8,227,1,228,1,228,1,228,1,228,3,228,4742,8,228,1,228,3,228,
	4745,8,228,1,228,3,228,4748,8,228,1,229,1,229,1,229,1,230,1,230,3,230,4755,
	8,230,1,230,1,230,1,231,1,231,3,231,4761,8,231,1,231,1,231,1,232,3,232,
	4766,8,232,1,232,1,232,3,232,4770,8,232,1,232,3,232,4773,8,232,1,232,3,
	232,4776,8,232,1,233,1,233,1,233,1,233,3,233,4782,8,233,1,233,4,233,4785,
	8,233,11,233,12,233,4786,1,233,3,233,4790,8,233,1,233,1,233,3,233,4794,
	8,233,1,233,1,233,3,233,4798,8,233,1,233,3,233,4801,8,233,1,234,1,234,1,
	234,1,234,1,234,3,234,4808,8,234,1,234,3,234,4811,8,234,3,234,4813,8,234,
	1,235,1,235,1,235,3,235,4818,8,235,1,236,1,236,1,236,1,237,1,237,1,237,
	3,237,4826,8,237,3,237,4828,8,237,1,238,1,238,1,238,1,238,1,238,1,238,1,
	238,1,238,1,238,1,238,5,238,4840,8,238,10,238,12,238,4843,9,238,1,238,1,
	238,1,238,5,238,4848,8,238,10,238,12,238,4851,9,238,1,238,1,238,1,238,1,
	238,1,238,1,238,3,238,4859,8,238,1,238,3,238,4862,8,238,1,238,1,238,1,238,
	3,238,4867,8,238,1,238,3,238,4870,8,238,1,238,1,238,1,238,1,238,1,238,1,
	238,1,238,3,238,4879,8,238,1,238,1,238,1,239,1,239,1,240,1,240,1,240,1,
	240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,
	240,3,240,4901,8,240,1,240,1,240,1,240,1,240,3,240,4907,8,240,1,240,1,240,
	1,240,4,240,4912,8,240,11,240,12,240,4913,1,241,1,241,1,242,1,242,1,242,
	1,242,1,242,1,242,3,242,4924,8,242,1,242,1,242,1,243,1,243,1,243,1,243,
	1,243,3,243,4933,8,243,1,243,1,243,1,243,1,243,1,243,1,243,1,243,1,243,
	1,243,1,243,3,243,4945,8,243,1,243,3,243,4948,8,243,1,243,3,243,4951,8,
	243,1,243,1,243,1,244,1,244,1,244,1,244,1,244,1,245,1,245,1,245,3,245,4963,
	8,245,1,246,1,246,1,246,1,246,1,246,1,246,1,246,3,246,4972,8,246,1,246,
	1,246,1,246,1,246,5,246,4978,8,246,10,246,12,246,4981,9,246,1,246,1,246,
	3,246,4985,8,246,1,246,1,246,1,246,1,246,5,246,4991,8,246,10,246,12,246,
	4994,9,246,1,246,1,246,3,246,4998,8,246,1,246,3,246,5001,8,246,1,247,1,
	247,1,248,1,248,1,249,1,249,1,250,1,250,1,251,1,251,1,251,1,251,1,251,1,
	251,1,251,1,251,1,251,1,251,1,251,4,251,5022,8,251,11,251,12,251,5023,3,
	251,5026,8,251,1,251,3,251,5029,8,251,1,251,1,251,3,251,5033,8,251,1,251,
	1,251,1,251,1,251,1,251,1,251,1,251,1,251,3,251,5043,8,251,5,251,5045,8,
	251,10,251,12,251,5048,9,251,1,251,1,251,3,251,5052,8,251,1,251,4,251,5055,
	8,251,11,251,12,251,5056,1,251,1,251,3,251,5061,8,251,3,251,5063,8,251,
	1,251,3,251,5066,8,251,5,251,5068,8,251,10,251,12,251,5071,9,251,1,252,
	1,252,1,252,1,252,1,253,1,253,1,253,3,253,5080,8,253,1,254,1,254,1,254,
	1,254,1,254,1,254,3,254,5088,8,254,1,254,1,254,1,254,1,254,1,254,1,254,
	3,254,5096,8,254,1,254,3,254,5099,8,254,1,254,3,254,5102,8,254,1,254,3,
	254,5105,8,254,1,254,3,254,5108,8,254,3,254,5110,8,254,1,254,1,254,1,254,
	1,254,1,254,4,254,5117,8,254,11,254,12,254,5118,5,254,5121,8,254,10,254,
	12,254,5124,9,254,1,254,1,254,1,254,3,254,5129,8,254,1,254,3,254,5132,8,
	254,1,254,1,254,3,254,5136,8,254,1,254,1,254,1,254,3,254,5141,8,254,1,254,
	1,254,1,254,1,254,1,255,1,255,1,255,1,255,1,255,1,255,1,255,1,255,1,255,
	3,255,5156,8,255,1,255,1,255,1,255,1,255,3,255,5162,8,255,1,255,1,255,1,
	255,3,255,5167,8,255,1,255,1,255,1,255,3,255,5172,8,255,1,255,1,255,1,255,
	3,255,5177,8,255,1,255,1,255,1,255,4,255,5182,8,255,11,255,12,255,5183,
	3,255,5186,8,255,1,256,1,256,1,256,3,256,5191,8,256,1,256,1,256,1,256,1,
	256,1,256,1,256,3,256,5199,8,256,1,256,1,256,1,256,1,256,1,256,3,256,5206,
	8,256,1,256,1,256,1,257,1,257,1,258,1,258,1,258,1,258,1,258,1,258,1,258,
	3,258,5219,8,258,1,258,1,258,1,258,1,258,3,258,5225,8,258,5,258,5227,8,
	258,10,258,12,258,5230,9,258,1,258,1,258,1,258,1,258,1,258,1,258,1,258,
	1,258,1,258,3,258,5241,8,258,1,258,1,258,1,258,1,258,1,258,3,258,5248,8,
	258,5,258,5250,8,258,10,258,12,258,5253,9,258,1,258,3,258,5256,8,258,1,
	258,3,258,5259,8,258,1,258,3,258,5262,8,258,1,258,1,258,1,259,1,259,1,259,
	3,259,5269,8,259,1,259,1,259,1,259,1,259,1,259,3,259,5276,8,259,1,259,1,
	259,3,259,5280,8,259,1,259,1,259,1,260,1,260,1,260,1,260,1,260,1,260,3,
	260,5290,8,260,1,260,1,260,3,260,5294,8,260,1,260,3,260,5297,8,260,1,260,
	3,260,5300,8,260,1,260,1,260,1,260,1,260,3,260,5306,8,260,1,260,3,260,5309,
	8,260,1,260,3,260,5312,8,260,1,260,3,260,5315,8,260,1,260,3,260,5318,8,
	260,1,260,3,260,5321,8,260,1,260,3,260,5324,8,260,1,260,1,260,1,260,1,260,
	1,260,3,260,5331,8,260,1,260,3,260,5334,8,260,1,260,3,260,5337,8,260,1,
	260,4,260,5340,8,260,11,260,12,260,5341,3,260,5344,8,260,1,260,3,260,5347,
	8,260,1,260,3,260,5350,8,260,1,261,1,261,1,261,1,261,1,261,1,261,1,261,
	1,261,1,261,1,261,1,261,1,261,1,261,1,261,1,261,5,261,5367,8,261,10,261,
	12,261,5370,9,261,1,261,1,261,1,262,1,262,3,262,5376,8,262,1,262,1,262,
	3,262,5380,8,262,1,262,3,262,5383,8,262,1,263,1,263,1,263,1,263,1,263,3,
	263,5390,8,263,1,263,1,263,1,263,3,263,5395,8,263,1,263,1,263,1,263,1,263,
	1,263,3,263,5402,8,263,1,263,1,263,1,263,1,263,3,263,5408,8,263,3,263,5410,
	8,263,1,263,1,263,1,263,1,263,3,263,5416,8,263,1,264,1,264,3,264,5420,8,
	264,1,264,1,264,1,264,1,264,1,264,3,264,5427,8,264,1,264,1,264,1,264,3,
	264,5432,8,264,1,265,1,265,1,265,3,265,5437,8,265,1,265,1,265,1,265,1,265,
	5,265,5443,8,265,10,265,12,265,5446,9,265,1,265,1,265,3,265,5450,8,265,
	1,265,1,265,1,265,1,265,3,265,5456,8,265,1,265,3,265,5459,8,265,1,265,3,
	265,5462,8,265,1,265,3,265,5465,8,265,1,265,3,265,5468,8,265,1,265,3,265,
	5471,8,265,1,265,3,265,5474,8,265,1,265,1,265,1,265,1,265,1,265,3,265,5481,
	8,265,1,265,3,265,5484,8,265,1,265,3,265,5487,8,265,1,265,4,265,5490,8,
	265,11,265,12,265,5491,3,265,5494,8,265,1,265,3,265,5497,8,265,1,265,3,
	265,5500,8,265,1,266,1,266,3,266,5504,8,266,1,266,1,266,1,266,1,266,4,266,
	5510,8,266,11,266,12,266,5511,1,266,1,266,1,267,1,267,1,267,1,267,1,267,
	1,267,1,267,3,267,5523,8,267,1,268,1,268,3,268,5527,8,268,1,268,1,268,3,
	268,5531,8,268,1,268,1,268,1,268,5,268,5536,8,268,10,268,12,268,5539,9,
	268,1,268,3,268,5542,8,268,1,268,1,268,1,268,3,268,5547,8,268,1,269,3,269,
	5550,8,269,1,269,1,269,1,269,1,269,1,269,1,270,1,270,1,270,1,270,5,270,
	5561,8,270,10,270,12,270,5564,9,270,1,270,1,270,3,270,5568,8,270,1,270,
	1,270,1,270,1,270,3,270,5574,8,270,1,270,3,270,5577,8,270,1,270,3,270,5580,
	8,270,1,270,3,270,5583,8,270,1,270,3,270,5586,8,270,1,270,1,270,1,270,1,
	270,1,270,3,270,5593,8,270,1,270,3,270,5596,8,270,1,270,3,270,5599,8,270,
	1,270,4,270,5602,8,270,11,270,12,270,5603,3,270,5606,8,270,1,270,3,270,
	5609,8,270,1,270,3,270,5612,8,270,1,271,1,271,1,271,1,271,1,271,3,271,5619,
	8,271,1,272,1,272,1,272,1,272,1,272,1,272,1,272,1,272,3,272,5629,8,272,
	1,273,1,273,1,273,1,273,1,273,1,273,1,273,5,273,5638,8,273,10,273,12,273,
	5641,9,273,1,273,1,273,1,273,1,273,1,273,1,273,1,273,1,273,1,273,1,273,
	1,273,5,273,5654,8,273,10,273,12,273,5657,9,273,1,273,1,273,3,273,5661,
	8,273,3,273,5663,8,273,1,273,1,273,1,273,3,273,5668,8,273,1,273,1,273,1,
	273,1,273,1,273,3,273,5675,8,273,1,273,1,273,1,273,5,273,5680,8,273,10,
	273,12,273,5683,9,273,1,273,1,273,1,274,1,274,1,274,1,274,1,274,1,274,1,
	274,1,274,1,274,3,274,5696,8,274,1,274,1,274,1,274,1,274,1,274,3,274,5703,
	8,274,1,274,1,274,1,274,5,274,5708,8,274,10,274,12,274,5711,9,274,1,274,
	1,274,1,275,1,275,1,275,1,275,1,275,1,275,1,275,5,275,5722,8,275,10,275,
	12,275,5725,9,275,1,275,1,275,1,275,3,275,5730,8,275,1,276,1,276,1,276,
	3,276,5735,8,276,1,276,3,276,5738,8,276,1,276,1,276,1,276,3,276,5743,8,
	276,1,276,3,276,5746,8,276,5,276,5748,8,276,10,276,12,276,5751,9,276,1,
	276,1,276,1,277,1,277,1,277,1,277,1,277,1,277,1,277,1,277,5,277,5763,8,
	277,10,277,12,277,5766,9,277,1,277,1,277,3,277,5770,8,277,1,277,1,277,3,
	277,5774,8,277,1,277,1,277,1,277,1,277,1,277,1,277,1,277,5,277,5783,8,277,
	10,277,12,277,5786,9,277,1,277,1,277,3,277,5790,8,277,1,278,1,278,1,279,
	1,279,1,279,1,279,1,279,1,279,1,279,5,279,5801,8,279,10,279,12,279,5804,
	9,279,1,279,1,279,1,279,1,279,1,279,1,279,1,279,1,279,1,279,1,279,1,279,
	5,279,5817,8,279,10,279,12,279,5820,9,279,1,279,1,279,3,279,5824,8,279,
	3,279,5826,8,279,1,279,1,279,1,279,3,279,5831,8,279,1,279,1,279,1,279,1,
	279,5,279,5837,8,279,10,279,12,279,5840,9,279,1,279,1,279,1,280,1,280,1,
	280,1,280,1,280,1,280,1,280,1,280,1,280,3,280,5853,8,280,1,280,1,280,1,
	280,1,280,5,280,5859,8,280,10,280,12,280,5862,9,280,1,280,1,280,1,281,1,
	281,1,281,1,281,1,281,1,281,4,281,5872,8,281,11,281,12,281,5873,1,281,1,
	281,1,281,1,281,3,281,5880,8,281,1,281,1,281,3,281,5884,8,281,1,282,1,282,
	1,282,1,282,1,282,1,282,1,282,1,282,1,282,1,282,5,282,5896,8,282,10,282,
	12,282,5899,9,282,1,282,1,282,3,282,5903,8,282,1,283,1,283,3,283,5907,8,
	283,1,283,1,283,1,284,1,284,1,284,1,284,1,284,1,284,1,284,1,284,5,284,5919,
	8,284,10,284,12,284,5922,9,284,3,284,5924,8,284,1,285,1,285,3,285,5928,
	8,285,1,285,1,285,1,285,1,285,1,285,1,285,5,285,5936,8,285,10,285,12,285,
	5939,9,285,1,285,1,285,1,285,5,285,5944,8,285,10,285,12,285,5947,9,285,
	1,285,1,285,1,285,5,285,5952,8,285,10,285,12,285,5955,9,285,3,285,5957,
	8,285,1,285,1,285,1,285,3,285,5962,8,285,3,285,5964,8,285,1,286,1,286,3,
	286,5968,8,286,1,286,1,286,1,286,1,286,1,286,1,286,5,286,5976,8,286,10,
	286,12,286,5979,9,286,1,286,1,286,1,286,5,286,5984,8,286,10,286,12,286,
	5987,9,286,1,286,1,286,1,286,5,286,5992,8,286,10,286,12,286,5995,9,286,
	3,286,5997,8,286,1,286,1,286,1,286,3,286,6002,8,286,3,286,6004,8,286,1,
	287,1,287,1,287,1,287,1,287,1,287,5,287,6012,8,287,10,287,12,287,6015,9,
	287,1,287,1,287,1,287,5,287,6020,8,287,10,287,12,287,6023,9,287,1,287,1,
	287,1,287,5,287,6028,8,287,10,287,12,287,6031,9,287,3,287,6033,8,287,1,
	287,1,287,1,287,3,287,6038,8,287,1,288,1,288,1,289,1,289,1,289,1,289,1,
	289,1,289,1,289,5,289,6049,8,289,10,289,12,289,6052,9,289,1,289,1,289,3,
	289,6056,8,289,1,290,1,290,1,290,1,290,1,290,1,290,1,290,3,290,6065,8,290,
	1,291,1,291,1,291,1,291,1,291,1,291,1,291,5,291,6074,8,291,10,291,12,291,
	6077,9,291,1,291,1,291,1,291,1,291,1,291,1,291,1,291,1,291,1,291,5,291,
	6088,8,291,10,291,12,291,6091,9,291,1,291,1,291,3,291,6095,8,291,1,291,
	3,291,6098,8,291,1,292,1,292,1,293,1,293,3,293,6104,8,293,1,293,1,293,3,
	293,6108,8,293,1,294,1,294,3,294,6112,8,294,1,294,1,294,3,294,6116,8,294,
	1,295,1,295,3,295,6120,8,295,1,295,3,295,6123,8,295,1,296,1,296,1,296,1,
	296,1,296,1,296,1,296,1,296,5,296,6133,8,296,10,296,12,296,6136,9,296,1,
	296,1,296,3,296,6140,8,296,1,297,1,297,1,297,1,297,1,297,1,297,1,297,5,
	297,6149,8,297,10,297,12,297,6152,9,297,1,297,1,297,1,298,1,298,1,298,1,
	298,1,298,5,298,6161,8,298,10,298,12,298,6164,9,298,1,298,3,298,6167,8,
	298,1,298,1,298,1,299,3,299,6172,8,299,1,299,3,299,6175,8,299,1,299,1,299,
	3,299,6179,8,299,1,299,1,299,3,299,6183,8,299,3,299,6185,8,299,1,299,1,
	299,1,299,3,299,6190,8,299,1,300,1,300,1,300,1,300,1,300,3,300,6197,8,300,
	1,300,1,300,1,300,1,300,1,300,1,300,1,300,1,300,3,300,6207,8,300,1,300,
	1,300,1,300,4,300,6212,8,300,11,300,12,300,6213,1,301,1,301,1,301,1,301,
	1,301,1,301,1,301,3,301,6223,8,301,1,301,1,301,1,301,1,301,1,301,1,301,
	3,301,6231,8,301,1,301,1,301,1,301,1,301,1,301,3,301,6238,8,301,1,302,1,
	302,1,302,3,302,6243,8,302,1,302,1,302,3,302,6247,8,302,1,302,1,302,1,302,
	3,302,6252,8,302,1,302,1,302,1,302,3,302,6257,8,302,1,302,3,302,6260,8,
	302,1,302,3,302,6263,8,302,1,302,3,302,6266,8,302,3,302,6268,8,302,1,302,
	1,302,3,302,6272,8,302,1,302,3,302,6275,8,302,1,303,1,303,3,303,6279,8,
	303,1,304,1,304,1,304,1,304,1,304,1,304,3,304,6287,8,304,3,304,6289,8,304,
	3,304,6291,8,304,1,304,3,304,6294,8,304,1,305,1,305,1,305,1,305,1,305,1,
	305,1,305,4,305,6303,8,305,11,305,12,305,6304,1,306,1,306,1,306,1,306,1,
	306,1,306,1,306,1,306,1,306,1,306,1,306,1,306,1,306,1,306,1,306,1,306,1,
	306,1,306,1,306,1,306,3,306,6327,8,306,1,306,1,306,1,306,1,306,1,306,4,
	306,6334,8,306,11,306,12,306,6335,1,306,1,306,1,307,1,307,1,307,1,307,1,
	308,1,308,1,308,1,308,4,308,6348,8,308,11,308,12,308,6349,1,309,3,309,6353,
	8,309,1,309,1,309,3,309,6357,8,309,1,310,3,310,6360,8,310,1,310,1,310,1,
	310,1,311,1,311,1,311,1,311,1,311,1,311,3,311,6371,8,311,1,312,1,312,1,
	313,1,313,1,313,1,313,1,313,3,313,6380,8,313,1,313,1,313,1,313,1,313,1,
	313,3,313,6387,8,313,5,313,6389,8,313,10,313,12,313,6392,9,313,1,313,1,
	313,1,313,1,313,1,313,1,313,3,313,6400,8,313,1,313,1,313,1,313,1,313,1,
	313,1,313,3,313,6408,8,313,5,313,6410,8,313,10,313,12,313,6413,9,313,3,
	313,6415,8,313,1,314,1,314,1,314,1,314,1,314,1,314,3,314,6423,8,314,1,314,
	1,314,1,314,1,314,3,314,6429,8,314,5,314,6431,8,314,10,314,12,314,6434,
	9,314,1,314,1,314,3,314,6438,8,314,1,315,1,315,1,315,3,315,6443,8,315,1,
	315,1,315,1,315,1,315,1,315,1,315,3,315,6451,8,315,4,315,6453,8,315,11,
	315,12,315,6454,1,315,1,315,1,315,1,316,1,316,1,316,1,316,1,316,1,316,1,
	316,1,316,1,316,4,316,6469,8,316,11,316,12,316,6470,1,316,3,316,6474,8,
	316,1,317,1,317,1,317,1,317,3,317,6480,8,317,1,318,1,318,1,318,3,318,6485,
	8,318,1,318,3,318,6488,8,318,1,319,3,319,6491,8,319,1,319,1,319,1,320,1,
	320,3,320,6497,8,320,1,320,1,320,1,320,1,320,1,320,1,321,1,321,1,321,1,
	321,3,321,6508,8,321,1,321,1,321,1,322,1,322,1,322,1,322,1,322,3,322,6517,
	8,322,1,322,1,322,1,323,1,323,1,323,1,323,1,323,1,323,1,323,1,324,1,324,
	1,325,1,325,1,326,1,326,1,326,3,326,6535,8,326,1,326,1,326,1,326,1,326,
	1,326,1,326,1,326,3,326,6544,8,326,1,326,1,326,1,326,3,326,6549,8,326,1,
	326,1,326,1,326,3,326,6554,8,326,1,326,1,326,1,326,1,326,3,326,6560,8,326,
	1,326,1,326,1,326,1,326,1,326,3,326,6567,8,326,1,326,1,326,1,326,3,326,
	6572,8,326,3,326,6574,8,326,1,327,1,327,1,327,1,327,1,327,1,327,1,327,1,
	328,1,328,1,328,1,328,1,328,1,328,1,328,1,328,1,328,4,328,6592,8,328,11,
	328,12,328,6593,1,328,3,328,6597,8,328,1,328,1,328,1,329,1,329,1,330,1,
	330,1,331,1,331,1,331,3,331,6608,8,331,1,331,1,331,1,331,1,331,1,331,1,
	331,1,331,1,331,1,331,3,331,6619,8,331,1,331,1,331,1,332,1,332,1,332,3,
	332,6626,8,332,1,332,1,332,1,332,3,332,6631,8,332,1,332,3,332,6634,8,332,
	1,332,3,332,6637,8,332,1,332,1,332,1,332,3,332,6642,8,332,1,333,1,333,1,
	334,1,334,1,335,1,335,1,335,1,335,1,335,3,335,6653,8,335,1,336,1,336,1,
	337,1,337,3,337,6659,8,337,1,337,1,337,3,337,6663,8,337,1,337,1,337,1,337,
	1,337,3,337,6669,8,337,1,337,1,337,1,337,1,337,1,337,4,337,6676,8,337,11,
	337,12,337,6677,3,337,6680,8,337,1,337,1,337,3,337,6684,8,337,1,337,3,337,
	6687,8,337,1,338,3,338,6690,8,338,1,338,1,338,1,338,1,338,1,338,1,338,1,
	338,1,338,3,338,6700,8,338,1,338,1,338,1,338,4,338,6705,8,338,11,338,12,
	338,6706,3,338,6709,8,338,1,339,1,339,1,339,1,339,5,339,6715,8,339,10,339,
	12,339,6718,9,339,1,339,1,339,1,339,1,339,1,339,1,339,5,339,6726,8,339,
	10,339,12,339,6729,9,339,1,339,3,339,6732,8,339,1,340,1,340,1,340,1,340,
	1,340,1,340,5,340,6740,8,340,10,340,12,340,6743,9,340,1,340,1,340,1,340,
	1,340,1,340,1,340,5,340,6751,8,340,10,340,12,340,6754,9,340,3,340,6756,
	8,340,1,340,1,340,1,340,3,340,6761,8,340,1,340,1,340,1,341,1,341,1,341,
	1,341,1,341,1,341,1,341,1,341,1,341,1,341,3,341,6775,8,341,1,341,1,341,
	1,341,1,341,1,341,1,341,1,341,4,341,6784,8,341,11,341,12,341,6785,1,341,
	1,341,3,341,6790,8,341,1,341,1,341,1,341,1,341,1,341,1,341,3,341,6798,8,
	341,3,341,6800,8,341,1,342,1,342,1,343,1,343,1,343,1,343,1,343,5,343,6809,
	8,343,10,343,12,343,6812,9,343,1,343,1,343,1,343,1,343,1,343,1,343,3,343,
	6820,8,343,1,344,1,344,1,344,1,344,3,344,6826,8,344,1,344,1,344,1,344,3,
	344,6831,8,344,5,344,6833,8,344,10,344,12,344,6836,9,344,1,344,1,344,3,
	344,6840,8,344,1,345,1,345,1,345,3,345,6845,8,345,1,345,1,345,1,345,3,345,
	6850,8,345,5,345,6852,8,345,10,345,12,345,6855,9,345,1,345,1,345,1,345,
	1,345,3,345,6861,8,345,1,345,1,345,1,345,1,345,1,345,3,345,6868,8,345,1,
	346,1,346,1,346,3,346,6873,8,346,1,346,1,346,1,346,3,346,6878,8,346,5,346,
	6880,8,346,10,346,12,346,6883,9,346,1,346,1,346,1,346,1,346,1,346,1,346,
	1,346,1,346,3,346,6893,8,346,1,347,1,347,3,347,6897,8,347,1,347,3,347,6900,
	8,347,1,347,3,347,6903,8,347,1,347,1,347,1,347,1,347,1,347,1,347,1,347,
	5,347,6912,8,347,10,347,12,347,6915,9,347,1,347,1,347,1,347,1,347,1,347,
	3,347,6922,8,347,1,347,1,347,1,347,1,347,5,347,6928,8,347,10,347,12,347,
	6931,9,347,1,347,1,347,3,347,6935,8,347,1,347,1,347,1,347,1,347,3,347,6941,
	8,347,1,348,1,348,3,348,6945,8,348,1,348,1,348,1,348,1,348,4,348,6951,8,
	348,11,348,12,348,6952,1,348,1,348,1,348,3,348,6958,8,348,1,348,1,348,1,
	348,3,348,6963,8,348,5,348,6965,8,348,10,348,12,348,6968,9,348,1,348,1,
	348,1,348,1,348,5,348,6974,8,348,10,348,12,348,6977,9,348,3,348,6979,8,
	348,1,349,3,349,6982,8,349,1,349,1,349,3,349,6986,8,349,1,349,1,349,1,349,
	1,350,1,350,3,350,6993,8,350,1,350,1,350,1,350,1,350,5,350,6999,8,350,10,
	350,12,350,7002,9,350,1,350,1,350,1,350,1,350,5,350,7008,8,350,10,350,12,
	350,7011,9,350,3,350,7013,8,350,1,351,1,351,1,351,1,351,1,351,1,351,1,351,
	1,352,1,352,1,352,1,352,1,352,1,352,3,352,7028,8,352,1,353,1,353,1,354,
	1,354,1,354,1,354,1,354,1,355,1,355,1,355,1,355,1,355,1,355,5,355,7043,
	8,355,10,355,12,355,7046,9,355,1,355,1,355,1,355,3,355,7051,8,355,1,356,
	1,356,3,356,7055,8,356,1,356,1,356,1,356,1,356,1,356,3,356,7062,8,356,1,
	356,1,356,1,356,1,356,1,356,3,356,7069,8,356,1,356,3,356,7072,8,356,3,356,
	7074,8,356,1,357,1,357,1,357,1,357,3,357,7080,8,357,3,357,7082,8,357,1,
	357,3,357,7085,8,357,1,358,1,358,1,358,1,358,1,358,1,358,1,358,3,358,7094,
	8,358,1,358,3,358,7097,8,358,1,359,1,359,3,359,7101,8,359,1,359,1,359,1,
	359,1,359,3,359,7107,8,359,1,360,1,360,1,360,1,360,1,360,1,360,1,360,1,
	361,1,361,1,361,3,361,7119,8,361,1,361,1,361,1,361,1,362,1,362,1,362,1,
	362,1,362,3,362,7129,8,362,1,362,1,362,3,362,7133,8,362,1,362,3,362,7136,
	8,362,1,362,3,362,7139,8,362,1,362,1,362,1,362,3,362,7144,8,362,1,362,1,
	362,3,362,7148,8,362,1,362,1,362,3,362,7152,8,362,1,362,3,362,7155,8,362,
	1,363,1,363,1,363,1,363,1,363,3,363,7162,8,363,1,363,3,363,7165,8,363,1,
	363,1,363,1,363,1,363,1,363,3,363,7172,8,363,1,363,1,363,1,363,1,363,3,
	363,7178,8,363,1,364,1,364,1,364,1,364,1,364,1,365,1,365,1,365,1,365,1,
	365,1,366,1,366,1,366,1,366,1,366,1,366,1,366,1,366,1,366,1,366,1,366,1,
	366,1,366,1,366,1,366,1,366,3,366,7206,8,366,1,366,1,366,1,366,1,366,1,
	366,1,366,4,366,7214,8,366,11,366,12,366,7215,1,366,1,366,1,366,1,366,1,
	366,1,366,1,366,1,366,3,366,7226,8,366,3,366,7228,8,366,1,366,1,366,1,366,
	1,366,1,366,1,366,3,366,7236,8,366,1,367,1,367,1,367,1,367,1,367,1,368,
	1,368,1,368,1,368,1,369,1,369,1,369,1,370,1,370,1,371,1,371,1,372,1,372,
	1,373,1,373,1,374,1,374,1,375,1,375,1,375,1,375,1,375,1,375,1,375,1,375,
	3,375,7268,8,375,1,375,1,375,1,375,1,375,1,375,1,375,3,375,7276,8,375,4,
	375,7278,8,375,11,375,12,375,7279,3,375,7282,8,375,1,375,1,375,1,376,1,
	376,1,376,1,376,1,376,1,376,1,376,1,376,1,376,1,376,1,376,3,376,7297,8,
	376,1,377,1,377,1,377,1,377,1,377,1,377,1,377,1,377,1,377,1,377,1,377,1,
	377,1,377,1,377,1,377,1,377,1,377,4,377,7316,8,377,11,377,12,377,7317,1,
	377,3,377,7321,8,377,1,378,1,378,1,378,1,378,3,378,7327,8,378,1,379,1,379,
	1,379,1,379,3,379,7333,8,379,1,380,1,380,1,380,1,380,1,380,1,380,4,380,
	7341,8,380,11,380,12,380,7342,3,380,7345,8,380,1,381,1,381,1,381,3,381,
	7350,8,381,1,381,1,381,1,381,3,381,7355,8,381,1,381,1,381,1,381,3,381,7360,
	8,381,5,381,7362,8,381,10,381,12,381,7365,9,381,1,381,3,381,7368,8,381,
	1,382,1,382,3,382,7372,8,382,1,382,1,382,1,382,1,382,1,382,5,382,7379,8,
	382,10,382,12,382,7382,9,382,1,382,1,382,1,382,1,382,1,382,1,382,3,382,
	7390,8,382,1,382,3,382,7393,8,382,1,382,3,382,7396,8,382,1,382,3,382,7399,
	8,382,1,382,1,382,3,382,7403,8,382,1,383,1,383,1,383,1,383,1,383,1,383,
	1,383,1,383,3,383,7413,8,383,1,384,1,384,1,384,1,384,1,384,3,384,7420,8,
	384,1,384,1,384,1,384,1,384,1,384,4,384,7427,8,384,11,384,12,384,7428,1,
	385,1,385,1,386,1,386,1,386,1,386,1,387,1,387,3,387,7439,8,387,1,387,3,
	387,7442,8,387,1,387,3,387,7445,8,387,1,387,3,387,7448,8,387,1,387,1,387,
	4,387,7452,8,387,11,387,12,387,7453,3,387,7456,8,387,1,387,3,387,7459,8,
	387,1,388,1,388,1,388,1,388,3,388,7465,8,388,1,388,3,388,7468,8,388,1,389,
	1,389,1,389,3,389,7473,8,389,1,390,1,390,1,390,3,390,7478,8,390,1,391,1,
	391,3,391,7482,8,391,1,391,1,391,3,391,7486,8,391,1,392,1,392,1,392,1,392,
	3,392,7492,8,392,1,393,1,393,1,393,1,393,1,393,1,393,1,393,1,393,1,394,
	1,394,1,395,1,395,1,395,1,395,1,395,1,395,1,396,1,396,1,397,1,397,1,398,
	1,398,1,398,4,398,7517,8,398,11,398,12,398,7518,1,399,1,399,1,399,1,399,
	1,399,1,399,1,399,1,399,5,399,7529,8,399,10,399,12,399,7532,9,399,1,399,
	1,399,3,399,7536,8,399,1,399,1,399,1,399,5,399,7541,8,399,10,399,12,399,
	7544,9,399,1,399,1,399,1,399,1,399,1,399,1,399,1,399,5,399,7553,8,399,10,
	399,12,399,7556,9,399,1,399,1,399,3,399,7560,8,399,1,399,1,399,1,399,5,
	399,7565,8,399,10,399,12,399,7568,9,399,1,399,1,399,3,399,7572,8,399,1,
	399,1,399,1,399,1,399,1,399,3,399,7579,8,399,1,399,1,399,3,399,7583,8,399,
	1,400,1,400,1,400,1,400,1,400,5,400,7590,8,400,10,400,12,400,7593,9,400,
	1,400,1,400,1,400,1,400,3,400,7599,8,400,1,401,1,401,3,401,7603,8,401,1,
	401,1,401,3,401,7607,8,401,1,401,1,401,1,401,3,401,7612,8,401,1,401,5,401,
	7615,8,401,10,401,12,401,7618,9,401,1,401,3,401,7621,8,401,1,402,1,402,
	1,402,3,402,7626,8,402,1,402,1,402,1,402,1,402,1,402,3,402,7633,8,402,1,
	403,1,403,1,403,1,403,3,403,7639,8,403,1,403,1,403,1,403,3,403,7644,8,403,
	5,403,7646,8,403,10,403,12,403,7649,9,403,1,403,1,403,1,403,1,403,3,403,
	7655,8,403,3,403,7657,8,403,1,403,3,403,7660,8,403,1,404,1,404,1,404,1,
	404,1,404,1,404,1,404,1,405,1,405,1,405,3,405,7672,8,405,1,405,1,405,3,
	405,7676,8,405,1,406,1,406,1,406,3,406,7681,8,406,1,406,1,406,3,406,7685,
	8,406,1,406,1,406,1,406,1,406,1,406,3,406,7692,8,406,1,407,1,407,1,408,
	1,408,1,409,1,409,1,409,1,409,3,409,7702,8,409,1,409,3,409,7705,8,409,1,
	410,1,410,1,410,1,410,1,410,5,410,7712,8,410,10,410,12,410,7715,9,410,1,
	410,1,410,1,410,1,410,1,410,1,410,1,410,1,410,4,410,7725,8,410,11,410,12,
	410,7726,1,410,1,410,1,410,1,410,1,410,1,410,1,410,1,410,1,410,1,410,1,
	410,4,410,7740,8,410,11,410,12,410,7741,3,410,7744,8,410,1,411,1,411,1,
	411,1,411,1,411,1,411,1,411,1,411,1,411,1,412,1,412,1,412,1,412,1,412,1,
	412,1,412,1,412,1,412,1,412,1,412,1,412,1,412,1,412,1,412,1,412,3,412,7771,
	8,412,1,412,3,412,7774,8,412,1,412,1,412,1,412,4,412,7779,8,412,11,412,
	12,412,7780,1,413,1,413,1,413,1,413,1,413,1,413,1,413,1,413,1,413,1,413,
	1,413,1,413,1,413,1,413,1,413,1,413,1,413,1,413,1,413,1,413,3,413,7803,
	8,413,1,413,3,413,7806,8,413,4,413,7808,8,413,11,413,12,413,7809,1,414,
	1,414,1,415,1,415,1,415,3,415,7817,8,415,3,415,7819,8,415,1,416,1,416,1,
	416,1,416,1,416,1,416,3,416,7827,8,416,1,417,1,417,3,417,7831,8,417,1,417,
	1,417,1,417,3,417,7836,8,417,1,417,3,417,7839,8,417,1,417,3,417,7842,8,
	417,1,417,3,417,7845,8,417,1,418,1,418,1,419,1,419,1,419,3,419,7852,8,419,
	1,419,1,419,1,419,3,419,7857,8,419,1,419,1,419,1,420,1,420,1,420,1,420,
	3,420,7865,8,420,1,420,3,420,7868,8,420,1,421,1,421,1,421,1,421,1,421,1,
	421,1,421,1,421,1,421,1,421,3,421,7880,8,421,1,422,1,422,1,423,1,423,1,
	424,1,424,1,424,3,424,7889,8,424,1,424,3,424,7892,8,424,1,424,1,424,3,424,
	7896,8,424,1,424,1,424,1,424,3,424,7901,8,424,1,424,1,424,1,424,3,424,7906,
	8,424,1,424,3,424,7909,8,424,1,424,3,424,7912,8,424,1,424,3,424,7915,8,
	424,3,424,7917,8,424,1,424,5,424,7920,8,424,10,424,12,424,7923,9,424,1,
	424,3,424,7926,8,424,1,425,1,425,3,425,7930,8,425,1,425,3,425,7933,8,425,
	1,425,3,425,7936,8,425,1,425,5,425,7939,8,425,10,425,12,425,7942,9,425,
	1,426,1,426,1,426,1,426,1,426,1,426,3,426,7950,8,426,3,426,7952,8,426,1,
	426,1,426,1,426,1,427,1,427,1,427,1,428,1,428,1,428,1,428,3,428,7964,8,
	428,1,428,3,428,7967,8,428,1,428,3,428,7970,8,428,1,428,1,428,1,428,1,428,
	1,428,1,428,1,428,1,428,1,428,1,428,4,428,7982,8,428,11,428,12,428,7983,
	1,428,1,428,3,428,7988,8,428,1,428,1,428,3,428,7992,8,428,1,428,3,428,7995,
	8,428,1,429,1,429,1,430,3,430,8000,8,430,1,430,1,430,1,430,3,430,8005,8,
	430,1,430,1,430,1,430,1,430,1,430,3,430,8012,8,430,1,430,1,430,1,430,1,
	430,3,430,8018,8,430,1,431,1,431,1,432,1,432,1,432,1,432,3,432,8026,8,432,
	1,433,1,433,1,434,1,434,1,434,1,434,1,435,1,435,1,435,5,435,8037,8,435,
	10,435,12,435,8040,9,435,1,435,3,435,8043,8,435,1,435,1,435,1,435,5,435,
	8048,8,435,10,435,12,435,8051,9,435,1,435,3,435,8054,8,435,1,435,1,435,
	1,435,1,435,1,435,1,435,1,435,1,435,1,435,1,435,5,435,8066,8,435,10,435,
	12,435,8069,9,435,1,435,1,435,3,435,8073,8,435,1,435,1,435,3,435,8077,8,
	435,1,435,1,435,1,435,1,435,1,435,1,435,1,435,4,435,8086,8,435,11,435,12,
	435,8087,3,435,8090,8,435,1,436,1,436,1,437,1,437,1,438,1,438,1,438,1,439,
	1,439,1,439,1,439,1,439,1,439,1,439,5,439,8106,8,439,10,439,12,439,8109,
	9,439,1,439,1,439,3,439,8113,8,439,1,439,3,439,8116,8,439,1,439,3,439,8119,
	8,439,1,439,1,439,1,439,3,439,8124,8,439,3,439,8126,8,439,1,440,1,440,1,
	440,3,440,8131,8,440,1,440,1,440,1,440,1,440,3,440,8137,8,440,1,440,4,440,
	8140,8,440,11,440,12,440,8141,1,441,1,441,1,441,1,441,3,441,8148,8,441,
	1,442,1,442,1,442,1,442,1,442,3,442,8155,8,442,1,443,1,443,1,443,1,443,
	1,444,1,444,1,444,1,444,1,445,1,445,1,445,1,445,1,446,1,446,1,446,1,446,
	1,446,3,446,8174,8,446,1,447,1,447,1,447,1,447,1,448,1,448,1,448,1,448,
	1,448,3,448,8185,8,448,1,449,1,449,1,449,3,449,8190,8,449,1,450,1,450,1,
	450,1,450,3,450,8196,8,450,1,451,1,451,3,451,8200,8,451,1,451,1,451,1,451,
	1,451,4,451,8206,8,451,11,451,12,451,8207,3,451,8210,8,451,1,451,1,451,
	1,451,1,452,1,452,1,452,1,453,1,453,1,453,3,453,8221,8,453,1,454,1,454,
	1,454,1,454,1,455,1,455,1,455,3,455,8230,8,455,1,455,1,455,1,455,3,455,
	8235,8,455,1,455,1,455,3,455,8239,8,455,1,455,3,455,8242,8,455,1,456,1,
	456,1,456,1,456,1,456,1,456,1,457,1,457,1,457,1,457,1,457,1,457,3,457,8256,
	8,457,1,457,1,457,1,458,1,458,5,458,8262,8,458,10,458,12,458,8265,9,458,
	1,458,3,458,8268,8,458,1,458,3,458,8271,8,458,1,459,1,459,1,459,1,460,4,
	460,8277,8,460,11,460,12,460,8278,1,461,1,461,1,461,1,461,1,461,1,461,1,
	461,1,461,1,461,1,461,3,461,8291,8,461,1,462,1,462,3,462,8295,8,462,1,462,
	1,462,1,462,3,462,8300,8,462,1,462,3,462,8303,8,462,1,462,1,462,1,463,1,
	463,1,463,1,463,1,463,1,463,1,463,1,463,1,463,3,463,8316,8,463,1,463,1,
	463,3,463,8320,8,463,1,463,1,463,1,464,1,464,1,464,1,464,1,464,1,464,5,
	464,8330,8,464,10,464,12,464,8333,9,464,1,464,1,464,3,464,8337,8,464,1,
	464,1,464,3,464,8341,8,464,1,464,1,464,3,464,8345,8,464,1,464,1,464,1,465,
	1,465,3,465,8351,8,465,1,465,3,465,8354,8,465,1,465,3,465,8357,8,465,1,
	466,1,466,1,466,1,466,1,467,1,467,1,467,1,467,1,467,1,467,1,467,1,467,1,
	467,1,467,1,467,1,467,1,467,1,467,1,467,1,467,1,467,1,467,1,467,1,467,1,
	467,3,467,8384,8,467,1,467,1,467,4,467,8388,8,467,11,467,12,467,8389,1,
	467,1,467,3,467,8394,8,467,1,467,1,467,1,468,1,468,1,468,1,468,1,468,5,
	468,8403,8,468,10,468,12,468,8406,9,468,1,468,1,468,1,469,1,469,3,469,8412,
	8,469,1,469,1,469,3,469,8416,8,469,1,469,3,469,8419,8,469,1,470,1,470,1,
	470,1,470,3,470,8425,8,470,1,471,1,471,1,471,1,471,1,471,1,471,1,471,3,
	471,8434,8,471,1,471,1,471,1,472,1,472,1,472,1,472,3,472,8442,8,472,1,472,
	1,472,3,472,8446,8,472,1,473,1,473,3,473,8450,8,473,1,473,1,473,1,473,1,
	474,1,474,1,474,3,474,8458,8,474,1,474,1,474,1,474,1,474,1,474,1,474,1,
	474,3,474,8467,8,474,1,475,1,475,1,475,1,475,4,475,8473,8,475,11,475,12,
	475,8474,1,476,1,476,1,476,1,476,1,476,1,476,1,477,1,477,1,477,1,477,1,
	477,1,477,1,477,1,477,1,477,1,477,1,477,1,477,1,477,1,477,1,477,1,477,1,
	477,3,477,8500,8,477,1,478,4,478,8503,8,478,11,478,12,478,8504,1,479,1,
	479,3,479,8509,8,479,1,479,1,479,1,479,1,480,1,480,3,480,8516,8,480,1,480,
	1,480,3,480,8520,8,480,1,481,1,481,3,481,8524,8,481,1,481,1,481,3,481,8528,
	8,481,1,482,1,482,1,482,1,483,1,483,1,483,1,483,1,483,5,483,8538,8,483,
	10,483,12,483,8541,9,483,1,483,3,483,8544,8,483,1,483,1,483,1,483,1,484,
	1,484,1,484,1,484,1,484,1,485,1,485,1,485,1,486,3,486,8558,8,486,1,486,
	1,486,1,486,1,486,3,486,8564,8,486,1,486,1,486,1,486,1,486,1,486,3,486,
	8571,8,486,1,487,1,487,1,487,3,487,8576,8,487,1,487,1,487,1,487,1,487,1,
	487,1,487,1,487,1,487,1,487,3,487,8587,8,487,1,487,3,487,8590,8,487,1,487,
	1,487,1,487,1,487,3,487,8596,8,487,3,487,8598,8,487,1,488,1,488,1,488,1,
	488,1,488,1,488,1,488,3,488,8607,8,488,1,489,1,489,1,489,1,489,1,489,1,
	489,1,489,1,489,3,489,8617,8,489,1,489,1,489,1,489,3,489,8622,8,489,1,490,
	1,490,1,490,1,490,1,490,1,491,1,491,1,492,1,492,1,493,1,493,1,494,1,494,
	3,494,8637,8,494,1,495,1,495,3,495,8641,8,495,1,496,3,496,8644,8,496,1,
	496,1,496,3,496,8648,8,496,1,497,1,497,3,497,8652,8,497,1,498,1,498,1,498,
	1,498,1,498,1,498,1,499,1,499,1,499,1,499,4,499,8664,8,499,11,499,12,499,
	8665,3,499,8668,8,499,1,499,1,499,3,499,8672,8,499,1,500,1,500,1,500,1,
	500,5,500,8678,8,500,10,500,12,500,8681,9,500,1,500,1,500,1,500,1,501,3,
	501,8687,8,501,1,501,4,501,8690,8,501,11,501,12,501,8691,3,501,8694,8,501,
	1,501,1,501,1,502,3,502,8699,8,502,1,502,4,502,8702,8,502,11,502,12,502,
	8703,1,502,1,502,1,503,1,503,1,503,1,503,3,503,8712,8,503,1,504,1,504,1,
	504,1,504,1,504,3,504,8719,8,504,1,504,1,504,3,504,8723,8,504,1,504,3,504,
	8726,8,504,1,505,1,505,1,505,1,506,1,506,1,506,1,506,1,506,1,506,1,506,
	3,506,8738,8,506,1,507,1,507,1,507,1,507,3,507,8744,8,507,1,508,1,508,1,
	508,1,509,1,509,1,509,1,509,3,509,8753,8,509,1,509,3,509,8756,8,509,1,510,
	1,510,1,510,1,510,1,510,1,510,5,510,8764,8,510,10,510,12,510,8767,9,510,
	1,510,1,510,1,510,1,510,1,510,1,510,5,510,8775,8,510,10,510,12,510,8778,
	9,510,3,510,8780,8,510,1,511,1,511,1,511,1,511,1,511,3,511,8787,8,511,1,
	511,3,511,8790,8,511,1,512,1,512,1,512,1,512,1,512,3,512,8797,8,512,1,513,
	1,513,1,513,1,513,1,513,1,513,1,513,1,513,1,513,3,513,8808,8,513,1,513,
	1,513,1,513,1,513,3,513,8814,8,513,1,513,1,513,3,513,8818,8,513,1,514,1,
	514,1,514,1,514,1,514,1,514,5,514,8826,8,514,10,514,12,514,8829,9,514,3,
	514,8831,8,514,1,514,1,514,1,515,1,515,3,515,8837,8,515,1,515,1,515,1,515,
	1,515,1,515,1,515,1,515,1,515,1,515,3,515,8848,8,515,3,515,8850,8,515,3,
	515,8852,8,515,1,515,3,515,8855,8,515,1,516,1,516,3,516,8859,8,516,1,516,
	3,516,8862,8,516,1,517,1,517,3,517,8866,8,517,1,517,1,517,3,517,8870,8,
	517,1,517,1,517,1,517,3,517,8875,8,517,1,518,1,518,1,518,1,519,1,519,1,
	519,1,519,1,519,1,519,3,519,8886,8,519,1,519,1,519,3,519,8890,8,519,1,519,
	1,519,1,519,1,519,1,519,1,519,3,519,8898,8,519,1,520,3,520,8901,8,520,1,
	520,1,520,1,521,1,521,1,521,1,521,1,521,5,521,8910,8,521,10,521,12,521,
	8913,9,521,1,522,1,522,1,522,1,522,5,522,8919,8,522,10,522,12,522,8922,
	9,522,1,523,1,523,3,523,8926,8,523,1,523,1,523,1,523,1,523,3,523,8932,8,
	523,1,523,1,523,3,523,8936,8,523,1,523,3,523,8939,8,523,1,524,1,524,1,524,
	1,524,1,524,1,524,3,524,8947,8,524,1,524,3,524,8950,8,524,1,524,1,524,3,
	524,8954,8,524,1,524,1,524,3,524,8958,8,524,1,524,1,524,1,524,3,524,8963,
	8,524,1,524,3,524,8966,8,524,1,524,1,524,3,524,8970,8,524,1,524,1,524,3,
	524,8974,8,524,5,524,8976,8,524,10,524,12,524,8979,9,524,1,524,1,524,1,
	524,1,525,1,525,1,525,1,525,1,525,1,525,1,525,1,525,1,525,1,526,1,526,5,
	526,8995,8,526,10,526,12,526,8998,9,526,1,527,1,527,1,527,1,527,1,527,3,
	527,9005,8,527,1,528,1,528,3,528,9009,8,528,1,528,1,528,3,528,9013,8,528,
	1,528,1,528,1,529,1,529,3,529,9019,8,529,1,529,1,529,3,529,9023,8,529,1,
	529,1,529,3,529,9027,8,529,1,529,3,529,9030,8,529,1,529,3,529,9033,8,529,
	1,529,3,529,9036,8,529,1,529,3,529,9039,8,529,1,530,1,530,1,530,1,530,5,
	530,9045,8,530,10,530,12,530,9048,9,530,3,530,9050,8,530,1,531,1,531,1,
	531,1,532,1,532,1,532,1,532,1,532,1,532,3,532,9061,8,532,3,532,9063,8,532,
	1,533,1,533,1,533,5,533,9068,8,533,10,533,12,533,9071,9,533,1,534,1,534,
	5,534,9075,8,534,10,534,12,534,9078,9,534,1,534,1,534,3,534,9082,8,534,
	1,535,1,535,5,535,9086,8,535,10,535,12,535,9089,9,535,1,535,3,535,9092,
	8,535,1,536,1,536,1,536,3,536,9097,8,536,1,536,1,536,1,536,5,536,9102,8,
	536,10,536,12,536,9105,9,536,1,536,1,536,1,536,3,536,9110,8,536,1,536,1,
	536,1,536,1,536,1,536,3,536,9117,8,536,1,537,3,537,9120,8,537,1,537,3,537,
	9123,8,537,1,537,1,537,3,537,9127,8,537,1,537,1,537,1,537,3,537,9132,8,
	537,1,537,1,537,5,537,9136,8,537,10,537,12,537,9139,9,537,1,538,1,538,1,
	538,1,539,1,539,1,539,1,540,1,540,3,540,9149,8,540,1,541,1,541,1,541,1,
	541,1,541,3,541,9156,8,541,1,541,1,541,3,541,9160,8,541,1,542,1,542,1,542,
	1,542,1,542,1,542,1,542,1,542,3,542,9170,8,542,1,543,1,543,3,543,9174,8,
	543,1,543,1,543,1,543,1,543,5,543,9180,8,543,10,543,12,543,9183,9,543,1,
	543,1,543,1,543,1,543,1,544,1,544,1,544,1,544,1,544,3,544,9194,8,544,1,
	545,1,545,1,545,3,545,9199,8,545,1,546,1,546,1,546,1,546,1,546,1,546,5,
	546,9207,8,546,10,546,12,546,9210,9,546,1,546,1,546,1,546,5,546,9215,8,
	546,10,546,12,546,9218,9,546,3,546,9220,8,546,1,546,1,546,1,547,1,547,3,
	547,9226,8,547,1,548,1,548,1,548,3,548,9231,8,548,1,548,3,548,9234,8,548,
	1,549,1,549,1,549,3,549,9239,8,549,1,549,1,549,1,549,3,549,9244,8,549,1,
	549,1,549,1,549,1,549,1,550,1,550,1,550,1,550,1,550,5,550,9255,8,550,10,
	550,12,550,9258,9,550,1,550,1,550,1,551,1,551,3,551,9264,8,551,1,551,1,
	551,1,551,1,551,1,551,1,551,5,551,9272,8,551,10,551,12,551,9275,9,551,1,
	551,1,551,3,551,9279,8,551,3,551,9281,8,551,1,552,1,552,1,552,3,552,9286,
	8,552,1,552,1,552,3,552,9290,8,552,1,552,1,552,1,552,1,552,3,552,9296,8,
	552,1,552,1,552,3,552,9300,8,552,1,553,1,553,1,553,1,553,1,554,1,554,1,
	554,1,554,1,554,5,554,9311,8,554,10,554,12,554,9314,9,554,1,554,3,554,9317,
	8,554,1,554,1,554,1,554,1,554,1,554,1,554,5,554,9325,8,554,10,554,12,554,
	9328,9,554,3,554,9330,8,554,3,554,9332,8,554,1,555,1,555,1,555,3,555,9337,
	8,555,1,556,1,556,1,556,1,556,1,556,5,556,9344,8,556,10,556,12,556,9347,
	9,556,1,556,1,556,1,557,1,557,1,557,1,557,1,557,1,557,5,557,9357,8,557,
	10,557,12,557,9360,9,557,1,557,1,557,1,558,1,558,1,558,3,558,9367,8,558,
	1,558,1,558,3,558,9371,8,558,1,559,1,559,1,559,1,560,1,560,5,560,9378,8,
	560,10,560,12,560,9381,9,560,1,560,3,560,9384,8,560,1,560,5,560,9387,8,
	560,10,560,12,560,9390,9,560,1,560,1,560,1,561,1,561,1,561,1,561,1,561,
	1,561,3,561,9400,8,561,3,561,9402,8,561,1,562,1,562,1,562,1,562,1,563,1,
	563,1,563,1,563,1,563,1,563,1,563,1,563,5,563,9416,8,563,10,563,12,563,
	9419,9,563,1,564,1,564,3,564,9423,8,564,1,564,1,564,5,564,9427,8,564,10,
	564,12,564,9430,9,564,1,564,1,564,1,565,3,565,9435,8,565,1,565,1,565,1,
	565,1,565,1,565,1,565,1,566,1,566,1,566,1,566,1,567,1,567,1,567,1,567,5,
	567,9451,8,567,10,567,12,567,9454,9,567,1,567,1,567,1,568,1,568,3,568,9460,
	8,568,1,568,3,568,9463,8,568,1,569,3,569,9466,8,569,1,569,1,569,1,569,1,
	569,5,569,9472,8,569,10,569,12,569,9475,9,569,3,569,9477,8,569,1,569,1,
	569,1,570,1,570,1,570,1,570,3,570,9485,8,570,3,570,9487,8,570,1,570,1,570,
	3,570,9491,8,570,1,570,3,570,9494,8,570,1,571,1,571,1,571,3,571,9499,8,
	571,3,571,9501,8,571,1,571,1,571,3,571,9505,8,571,1,571,1,571,1,571,1,572,
	1,572,1,573,1,573,1,573,1,573,1,573,3,573,9517,8,573,1,574,1,574,1,574,
	1,574,1,574,1,575,1,575,3,575,9526,8,575,1,575,1,575,1,575,1,575,5,575,
	9532,8,575,10,575,12,575,9535,9,575,1,576,1,576,3,576,9539,8,576,1,576,
	1,576,3,576,9543,8,576,1,577,1,577,1,577,1,577,1,578,1,578,1,578,1,578,
	3,578,9553,8,578,3,578,9555,8,578,1,578,1,578,1,578,1,578,3,578,9561,8,
	578,1,579,1,579,1,579,3,579,9566,8,579,1,579,3,579,9569,8,579,1,580,1,580,
	1,580,1,581,1,581,1,581,1,581,1,581,3,581,9579,8,581,1,582,1,582,1,582,
	1,582,3,582,9585,8,582,1,582,3,582,9588,8,582,1,582,3,582,9591,8,582,1,
	583,1,583,1,583,1,583,5,583,9597,8,583,10,583,12,583,9600,9,583,1,583,1,
	583,1,583,1,583,1,583,1,583,1,583,3,583,9609,8,583,1,584,1,584,1,584,1,
	584,1,584,1,584,1,584,1,584,3,584,9619,8,584,1,585,1,585,3,585,9623,8,585,
	1,585,1,585,3,585,9627,8,585,1,585,3,585,9630,8,585,1,585,3,585,9633,8,
	585,1,586,1,586,1,586,3,586,9638,8,586,1,587,1,587,1,587,3,587,9643,8,587,
	1,587,3,587,9646,8,587,1,587,3,587,9649,8,587,1,588,1,588,4,588,9653,8,
	588,11,588,12,588,9654,1,588,3,588,9658,8,588,1,588,1,588,1,589,1,589,3,
	589,9664,8,589,1,589,3,589,9667,8,589,1,590,3,590,9670,8,590,1,590,4,590,
	9673,8,590,11,590,12,590,9674,1,590,3,590,9678,8,590,1,591,1,591,1,591,
	1,591,4,591,9684,8,591,11,591,12,591,9685,1,592,1,592,4,592,9690,8,592,
	11,592,12,592,9691,1,593,1,593,1,593,3,593,9697,8,593,1,594,1,594,1,594,
	3,594,9702,8,594,1,594,1,594,1,595,1,595,1,595,1,595,3,595,9710,8,595,1,
	595,1,595,1,595,1,595,1,595,1,595,1,595,1,595,3,595,9720,8,595,1,595,1,
	595,3,595,9724,8,595,3,595,9726,8,595,1,595,3,595,9729,8,595,1,596,1,596,
	1,596,1,596,1,596,1,596,1,596,1,596,5,596,9739,8,596,10,596,12,596,9742,
	9,596,1,596,3,596,9745,8,596,1,596,3,596,9748,8,596,1,597,1,597,1,597,1,
	597,1,598,1,598,1,598,1,599,1,599,1,599,1,599,1,599,1,599,3,599,9763,8,
	599,1,599,1,599,1,599,3,599,9768,8,599,1,599,1,599,3,599,9772,8,599,1,600,
	1,600,1,600,1,600,1,600,3,600,9779,8,600,1,600,3,600,9782,8,600,1,601,1,
	601,1,601,1,601,1,601,5,601,9789,8,601,10,601,12,601,9792,9,601,1,601,1,
	601,1,601,1,601,3,601,9798,8,601,1,602,1,602,1,602,3,602,9803,8,602,1,603,
	1,603,3,603,9807,8,603,1,604,1,604,1,604,1,604,1,604,1,604,3,604,9815,8,
	604,1,604,1,604,1,604,1,604,3,604,9821,8,604,1,605,1,605,1,605,1,605,1,
	605,1,605,3,605,9829,8,605,1,605,3,605,9832,8,605,1,606,1,606,1,606,1,606,
	1,607,1,607,1,607,3,607,9841,8,607,1,607,3,607,9844,8,607,1,607,3,607,9847,
	8,607,1,608,1,608,1,608,1,609,1,609,1,609,1,609,3,609,9856,8,609,1,610,
	1,610,1,610,1,610,3,610,9862,8,610,1,610,1,610,1,610,1,610,3,610,9868,8,
	610,3,610,9870,8,610,1,611,1,611,1,611,1,611,1,611,1,611,1,611,1,611,1,
	611,3,611,9881,8,611,3,611,9883,8,611,1,612,1,612,1,612,1,612,1,612,1,612,
	1,612,3,612,9892,8,612,3,612,9894,8,612,1,613,1,613,3,613,9898,8,613,1,
	613,1,613,1,613,1,613,3,613,9904,8,613,1,613,1,613,3,613,9908,8,613,1,614,
	1,614,1,614,1,614,1,614,1,615,1,615,1,616,1,616,1,616,5,616,9920,8,616,
	10,616,12,616,9923,9,616,1,617,1,617,3,617,9927,8,617,1,618,1,618,1,618,
	1,618,1,618,1,619,1,619,1,619,1,619,1,619,1,619,1,619,1,619,1,619,5,619,
	9943,8,619,10,619,12,619,9946,9,619,1,620,3,620,9949,8,620,1,620,1,620,
	1,620,3,620,9954,8,620,1,620,5,620,9957,8,620,10,620,12,620,9960,9,620,
	1,621,1,621,1,621,1,621,1,621,1,621,1,621,1,621,1,621,3,621,9971,8,621,
	1,621,1,621,3,621,9975,8,621,1,621,1,621,1,621,5,621,9980,8,621,10,621,
	12,621,9983,9,621,1,621,1,621,3,621,9987,8,621,1,622,1,622,1,622,3,622,
	9992,8,622,1,622,3,622,9995,8,622,1,623,1,623,1,623,1,623,1,623,1,623,1,
	623,5,623,10004,8,623,10,623,12,623,10007,9,623,1,624,1,624,3,624,10011,
	8,624,1,624,1,624,1,624,1,624,1,624,1,624,1,624,1,624,3,624,10021,8,624,
	3,624,10023,8,624,3,624,10025,8,624,1,625,1,625,1,625,1,625,1,625,1,625,
	1,625,1,625,3,625,10035,8,625,1,625,1,625,3,625,10039,8,625,3,625,10041,
	8,625,1,626,1,626,1,626,1,626,1,626,1,626,1,626,1,626,5,626,10051,8,626,
	10,626,12,626,10054,9,626,1,626,1,626,1,626,1,626,1,626,3,626,10061,8,626,
	1,627,1,627,1,627,1,627,1,628,1,628,1,628,1,628,1,628,1,628,1,628,3,628,
	10074,8,628,1,628,3,628,10077,8,628,1,628,1,628,1,628,1,628,1,628,1,628,
	1,628,1,628,1,628,1,628,5,628,10089,8,628,10,628,12,628,10092,9,628,1,629,
	1,629,1,629,1,629,1,629,3,629,10099,8,629,1,629,1,629,1,629,1,629,1,629,
	1,629,3,629,10107,8,629,1,629,1,629,1,629,1,629,1,629,3,629,10114,8,629,
	1,629,1,629,3,629,10118,8,629,1,630,1,630,1,630,1,630,1,630,3,630,10125,
	8,630,1,631,1,631,3,631,10129,8,631,1,631,1,631,1,631,3,631,10134,8,631,
	5,631,10136,8,631,10,631,12,631,10139,9,631,1,631,1,631,1,631,5,631,10144,
	8,631,10,631,12,631,10147,9,631,1,631,3,631,10150,8,631,1,632,1,632,1,632,
	1,632,1,632,3,632,10157,8,632,1,632,1,632,1,632,3,632,10162,8,632,1,632,
	1,632,1,632,1,632,1,632,1,632,1,632,3,632,10171,8,632,1,633,1,633,1,633,
	1,633,1,633,1,633,1,633,3,633,10180,8,633,1,633,3,633,10183,8,633,1,633,
	1,633,1,634,1,634,1,634,1,634,1,634,1,634,1,634,1,634,1,634,1,634,1,634,
	1,634,1,634,1,634,1,634,1,634,3,634,10203,8,634,1,635,1,635,3,635,10207,
	8,635,1,636,3,636,10210,8,636,1,636,1,636,1,636,4,636,10215,8,636,11,636,
	12,636,10216,1,636,3,636,10220,8,636,1,636,1,636,3,636,10224,8,636,1,636,
	3,636,10227,8,636,1,637,1,637,1,637,1,637,1,637,3,637,10234,8,637,1,638,
	3,638,10237,8,638,1,638,1,638,4,638,10241,8,638,11,638,12,638,10242,1,638,
	3,638,10246,8,638,1,638,1,638,3,638,10250,8,638,1,638,3,638,10253,8,638,
	1,639,1,639,1,639,1,639,1,639,3,639,10260,8,639,1,640,1,640,1,640,3,640,
	10265,8,640,1,641,1,641,1,641,1,641,1,641,1,641,1,641,1,641,1,641,1,641,
	5,641,10277,8,641,10,641,12,641,10280,9,641,1,641,1,641,1,641,1,641,3,641,
	10286,8,641,1,642,1,642,1,642,1,642,1,642,1,642,1,642,1,642,1,642,3,642,
	10297,8,642,1,643,1,643,1,643,1,643,1,643,1,643,1,643,3,643,10306,8,643,
	1,643,1,643,1,643,1,643,1,643,1,643,1,643,3,643,10315,8,643,1,643,1,643,
	3,643,10319,8,643,1,643,1,643,3,643,10323,8,643,1,643,1,643,1,643,1,643,
	1,643,1,643,1,643,1,643,1,643,1,643,1,643,1,643,1,643,1,643,1,643,1,643,
	1,643,1,643,1,643,1,643,1,643,1,643,1,643,1,643,3,643,10349,8,643,1,643,
	3,643,10352,8,643,1,643,3,643,10355,8,643,1,643,1,643,1,643,1,643,1,643,
	1,643,1,643,1,643,3,643,10365,8,643,1,643,1,643,3,643,10369,8,643,1,644,
	1,644,1,644,3,644,10374,8,644,1,645,1,645,1,645,1,645,3,645,10380,8,645,
	1,646,1,646,1,646,3,646,10385,8,646,1,647,1,647,1,647,3,647,10390,8,647,
	1,647,1,647,1,647,1,647,1,647,1,647,1,647,3,647,10399,8,647,1,647,3,647,
	10402,8,647,3,647,10404,8,647,1,647,1,647,3,647,10408,8,647,1,647,1,647,
	1,647,1,647,1,647,3,647,10415,8,647,1,647,1,647,1,647,1,647,1,647,3,647,
	10422,8,647,1,647,1,647,1,647,1,647,1,647,1,647,3,647,10430,8,647,1,647,
	1,647,1,647,1,647,1,647,1,647,1,647,1,647,1,647,1,647,1,647,1,647,1,647,
	3,647,10445,8,647,1,648,1,648,1,648,3,648,10450,8,648,1,648,1,648,1,648,
	3,648,10455,8,648,1,648,1,648,1,648,1,648,3,648,10461,8,648,1,648,3,648,
	10464,8,648,1,648,1,648,3,648,10468,8,648,1,648,1,648,1,648,1,648,1,648,
	1,648,1,648,1,648,3,648,10478,8,648,1,648,1,648,1,648,1,648,1,648,1,648,
	1,648,1,648,1,648,1,648,3,648,10490,8,648,3,648,10492,8,648,1,648,1,648,
	1,648,1,648,1,648,3,648,10499,8,648,1,648,1,648,3,648,10503,8,648,1,648,
	1,648,1,648,1,648,1,648,4,648,10510,8,648,11,648,12,648,10511,1,648,1,648,
	1,648,1,648,1,648,1,648,1,648,3,648,10521,8,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,3,648,10535,8,648,1,648,
	1,648,1,648,1,648,1,648,1,648,3,648,10543,8,648,1,648,3,648,10546,8,648,
	1,648,1,648,1,648,1,648,1,648,1,648,1,648,3,648,10555,8,648,1,648,1,648,
	5,648,10559,8,648,10,648,12,648,10562,9,648,1,648,1,648,1,648,1,648,1,648,
	1,648,1,648,3,648,10571,8,648,1,648,1,648,1,648,1,648,1,648,1,648,3,648,
	10579,8,648,1,648,3,648,10582,8,648,1,648,3,648,10585,8,648,1,648,1,648,
	1,648,1,648,1,648,1,648,1,648,3,648,10594,8,648,1,648,1,648,1,648,3,648,
	10599,8,648,1,648,1,648,1,648,1,648,1,648,5,648,10606,8,648,10,648,12,648,
	10609,9,648,1,648,1,648,1,648,3,648,10614,8,648,1,648,1,648,1,648,3,648,
	10619,8,648,1,648,3,648,10622,8,648,1,648,1,648,1,648,3,648,10627,8,648,
	1,648,1,648,1,648,3,648,10632,8,648,5,648,10634,8,648,10,648,12,648,10637,
	9,648,1,648,1,648,1,648,3,648,10642,8,648,1,648,1,648,1,648,1,648,3,648,
	10648,8,648,1,648,1,648,1,648,1,648,1,648,1,648,1,648,3,648,10657,8,648,
	1,648,1,648,1,648,3,648,10662,8,648,1,648,1,648,1,648,1,648,1,648,1,648,
	3,648,10670,8,648,1,648,1,648,3,648,10674,8,648,1,648,1,648,1,648,3,648,
	10679,8,648,1,648,1,648,1,648,1,648,3,648,10685,8,648,1,648,1,648,1,648,
	1,648,1,648,3,648,10692,8,648,1,648,1,648,1,648,3,648,10697,8,648,1,648,
	1,648,1,648,1,648,1,648,3,648,10704,8,648,1,648,1,648,3,648,10708,8,648,
	1,648,1,648,1,648,3,648,10713,8,648,1,648,1,648,1,648,1,648,1,648,1,648,
	3,648,10721,8,648,1,648,3,648,10724,8,648,1,648,3,648,10727,8,648,1,648,
	3,648,10730,8,648,1,648,1,648,3,648,10734,8,648,1,648,1,648,1,648,3,648,
	10739,8,648,1,648,3,648,10742,8,648,1,649,1,649,1,650,1,650,1,651,1,651,
	1,652,1,652,1,652,3,652,10753,8,652,1,652,1,652,3,652,10757,8,652,3,652,
	10759,8,652,1,652,1,652,1,653,1,653,1,653,1,653,1,653,1,653,1,653,3,653,
	10770,8,653,1,654,1,654,1,655,1,655,1,655,1,655,1,655,1,655,1,655,3,655,
	10781,8,655,1,656,1,656,1,656,1,656,1,656,5,656,10788,8,656,10,656,12,656,
	10791,9,656,3,656,10793,8,656,1,657,1,657,3,657,10797,8,657,1,657,3,657,
	10800,8,657,1,657,1,657,1,658,1,658,1,658,1,658,1,659,1,659,1,659,1,659,
	1,659,1,659,1,659,3,659,10815,8,659,1,660,1,660,1,660,3,660,10820,8,660,
	1,660,1,660,1,660,1,660,5,660,10826,8,660,10,660,12,660,10829,9,660,1,660,
	1,660,1,660,1,660,3,660,10835,8,660,1,660,1,660,3,660,10839,8,660,1,661,
	1,661,1,661,3,661,10844,8,661,1,661,1,661,3,661,10848,8,661,1,661,1,661,
	1,661,3,661,10853,8,661,5,661,10855,8,661,10,661,12,661,10858,9,661,1,662,
	1,662,1,662,3,662,10863,8,662,1,662,3,662,10866,8,662,1,662,1,662,1,662,
	5,662,10871,8,662,10,662,12,662,10874,9,662,1,662,1,662,1,663,1,663,1,663,
	1,663,1,663,3,663,10883,8,663,1,663,1,663,1,663,1,663,5,663,10889,8,663,
	10,663,12,663,10892,9,663,1,663,3,663,10895,8,663,1,663,1,663,1,664,1,664,
	1,664,1,664,1,664,1,664,3,664,10905,8,664,1,664,3,664,10908,8,664,3,664,
	10910,8,664,1,665,1,665,1,665,1,666,1,666,1,666,1,666,1,666,3,666,10920,
	8,666,3,666,10922,8,666,1,667,1,667,1,667,1,667,3,667,10928,8,667,1,668,
	1,668,1,668,1,668,3,668,10934,8,668,3,668,10936,8,668,1,669,1,669,1,669,
	1,670,1,670,1,670,1,671,1,671,1,671,1,671,1,671,1,671,3,671,10950,8,671,
	3,671,10952,8,671,1,672,1,672,1,672,1,672,1,672,1,672,1,672,1,672,3,672,
	10962,8,672,1,673,1,673,1,673,1,673,1,673,1,673,1,673,3,673,10971,8,673,
	1,673,1,673,1,673,3,673,10976,8,673,1,674,1,674,1,674,1,674,1,674,1,674,
	1,674,3,674,10985,8,674,1,675,1,675,3,675,10989,8,675,1,675,1,675,3,675,
	10993,8,675,1,675,1,675,1,676,3,676,10998,8,676,1,676,1,676,3,676,11002,
	8,676,1,676,3,676,11005,8,676,1,677,1,677,3,677,11009,8,677,1,678,1,678,
	1,678,1,678,1,678,3,678,11016,8,678,1,679,1,679,3,679,11020,8,679,1,679,
	1,679,1,679,1,679,5,679,11026,8,679,10,679,12,679,11029,9,679,1,680,1,680,
	3,680,11033,8,680,1,681,1,681,1,682,1,682,1,683,1,683,1,684,1,684,1,685,
	1,685,1,686,1,686,1,687,1,687,1,687,5,687,11050,8,687,10,687,12,687,11053,
	9,687,1,687,1,687,3,687,11057,8,687,1,688,1,688,1,689,1,689,1,689,3,689,
	11064,8,689,1,690,1,690,1,691,1,691,1,692,1,692,1,693,1,693,1,693,3,693,
	11075,8,693,1,694,1,694,1,694,5,694,11080,8,694,10,694,12,694,11083,9,694,
	1,695,1,695,1,696,1,696,3,696,11089,8,696,1,697,1,697,3,697,11093,8,697,
	1,698,1,698,1,698,5,698,11098,8,698,10,698,12,698,11101,9,698,1,698,1,698,
	3,698,11105,8,698,1,699,1,699,1,700,1,700,1,700,5,700,11112,8,700,10,700,
	12,700,11115,9,700,1,701,1,701,1,701,5,701,11120,8,701,10,701,12,701,11123,
	9,701,1,702,1,702,1,702,5,702,11128,8,702,10,702,12,702,11131,9,702,1,703,
	1,703,1,703,3,703,11136,8,703,1,704,1,704,1,704,3,704,11141,8,704,1,705,
	1,705,1,705,3,705,11146,8,705,1,706,1,706,3,706,11150,8,706,1,706,1,706,
	1,706,3,706,11155,8,706,1,706,3,706,11158,8,706,1,707,1,707,1,707,3,707,
	11163,8,707,1,708,1,708,3,708,11167,8,708,1,709,1,709,3,709,11171,8,709,
	1,710,1,710,1,710,3,710,11176,8,710,1,711,1,711,1,712,1,712,1,712,5,712,
	11183,8,712,10,712,12,712,11186,9,712,1,713,1,713,1,713,3,713,11191,8,713,
	1,713,1,713,1,713,3,713,11196,8,713,1,713,1,713,3,713,11200,8,713,3,713,
	11202,8,713,1,714,1,714,1,714,1,714,1,714,3,714,11209,8,714,1,714,1,714,
	3,714,11213,8,714,1,714,1,714,1,714,1,714,5,714,11219,8,714,10,714,12,714,
	11222,9,714,3,714,11224,8,714,1,714,1,714,1,714,3,714,11229,8,714,1,715,
	1,715,1,715,5,715,11234,8,715,10,715,12,715,11237,9,715,1,716,1,716,1,717,
	1,717,1,718,1,718,1,719,1,719,1,720,1,720,1,720,1,720,1,720,5,720,11252,
	8,720,10,720,12,720,11255,9,720,1,720,1,720,1,720,1,720,1,720,1,720,1,720,
	1,720,1,720,1,720,1,720,1,720,1,720,1,720,3,720,11271,8,720,1,721,1,721,
	1,721,5,721,11276,8,721,10,721,12,721,11279,9,721,1,722,1,722,1,722,1,722,
	1,723,1,723,1,723,1,723,1,723,1,723,1,723,3,723,11292,8,723,1,724,1,724,
	1,724,1,724,5,724,11298,8,724,10,724,12,724,11301,9,724,3,724,11303,8,724,
	1,724,1,724,3,724,11307,8,724,1,725,1,725,1,725,3,725,11312,8,725,1,725,
	1,725,1,725,3,725,11317,8,725,5,725,11319,8,725,10,725,12,725,11322,9,725,
	3,725,11324,8,725,1,725,1,725,3,725,11328,8,725,1,726,1,726,1,726,1,726,
	1,726,3,726,11335,8,726,1,726,1,726,1,726,3,726,11340,8,726,3,726,11342,
	8,726,3,726,11344,8,726,1,726,1,726,1,726,1,726,1,726,1,726,1,726,1,726,
	3,726,11354,8,726,1,726,1,726,1,726,3,726,11359,8,726,5,726,11361,8,726,
	10,726,12,726,11364,9,726,3,726,11366,8,726,1,726,1,726,3,726,11370,8,726,
	1,727,1,727,1,727,1,728,1,728,1,728,1,728,3,728,11379,8,728,1,728,1,728,
	1,729,1,729,3,729,11385,8,729,1,729,1,729,3,729,11389,8,729,3,729,11391,
	8,729,1,730,1,730,3,730,11395,8,730,1,730,1,730,3,730,11399,8,730,1,730,
	1,730,1,730,1,730,1,730,3,730,11406,8,730,1,730,1,730,1,730,1,730,1,730,
	1,730,3,730,11414,8,730,1,730,1,730,1,730,1,730,1,730,1,730,3,730,11422,
	8,730,3,730,11424,8,730,1,731,1,731,1,731,3,731,11429,8,731,1,731,1,731,
	3,731,11433,8,731,1,731,3,731,11436,8,731,1,731,1,731,1,732,1,732,1,732,
	1,732,1,732,1,732,1,732,1,732,1,732,1,732,1,732,1,732,1,732,1,732,1,732,
	1,732,1,732,1,732,1,732,1,732,3,732,11460,8,732,1,732,1,732,1,732,1,732,
	1,732,3,732,11467,8,732,1,732,1,732,1,732,1,732,1,732,1,732,1,732,1,732,
	1,732,1,732,1,732,1,732,1,732,1,732,1,732,1,732,1,732,1,732,1,732,1,732,
	1,732,1,732,1,732,1,732,1,732,1,732,1,732,1,732,1,732,1,732,1,732,3,732,
	11500,8,732,1,733,1,733,1,733,3,733,11505,8,733,1,733,3,733,11508,8,733,
	1,733,1,733,1,733,3,733,11513,8,733,3,733,11515,8,733,1,733,1,733,5,733,
	11519,8,733,10,733,12,733,11522,9,733,1,734,1,734,1,734,5,734,11527,8,734,
	10,734,12,734,11530,9,734,1,735,1,735,3,735,11534,8,735,1,735,1,735,1,735,
	5,735,11539,8,735,10,735,12,735,11542,9,735,1,735,1,735,3,735,11546,8,735,
	1,735,3,735,11549,8,735,1,736,1,736,3,736,11553,8,736,1,736,1,736,1,736,
	5,736,11558,8,736,10,736,12,736,11561,9,736,1,737,1,737,3,737,11565,8,737,
	1,737,1,737,1,737,1,737,1,737,1,737,1,737,1,737,1,737,1,737,1,737,1,737,
	1,737,1,737,1,737,1,737,1,737,1,737,1,737,1,737,1,737,1,737,1,737,1,737,
	1,737,1,737,1,737,1,737,3,737,11595,8,737,1,738,1,738,1,738,1,738,1,738,
	3,738,11602,8,738,1,738,1,738,1,738,1,738,1,738,1,738,1,738,1,738,1,738,
	1,738,1,738,1,738,1,738,3,738,11617,8,738,1,738,1,738,1,738,1,738,1,738,
	1,738,1,738,1,738,1,738,1,738,1,738,1,738,1,738,1,738,3,738,11633,8,738,
	1,738,1,738,1,738,1,738,1,738,1,738,1,738,1,738,1,738,1,738,1,738,1,738,
	1,738,1,738,1,738,1,738,1,738,3,738,11652,8,738,1,738,1,738,1,738,1,738,
	1,738,1,738,1,738,1,738,1,738,1,738,1,738,1,738,1,738,1,738,1,738,3,738,
	11669,8,738,1,738,1,738,1,738,1,738,1,738,3,738,11676,8,738,1,738,1,738,
	1,738,1,738,1,738,1,738,3,738,11684,8,738,1,738,1,738,1,738,1,738,1,738,
	1,738,1,738,1,738,1,738,1,738,1,738,3,738,11697,8,738,1,738,1,738,1,738,
	1,738,1,738,1,738,1,738,3,738,11706,8,738,1,738,1,738,1,738,1,738,1,738,
	1,738,1,738,3,738,11715,8,738,1,738,1,738,1,738,1,738,1,738,1,738,1,738,
	3,738,11724,8,738,1,738,1,738,1,738,1,738,1,738,1,738,1,738,1,738,3,738,
	11734,8,738,1,738,1,738,1,738,1,738,1,738,1,738,3,738,11742,8,738,1,738,
	1,738,1,738,1,738,1,738,1,738,1,738,1,738,3,738,11752,8,738,1,738,1,738,
	1,738,1,738,1,738,1,738,1,738,1,738,3,738,11762,8,738,1,738,1,738,1,738,
	1,738,1,738,1,738,1,738,1,738,1,738,1,738,3,738,11774,8,738,1,738,1,738,
	1,738,1,738,1,738,1,738,1,738,1,738,1,738,1,738,1,738,1,738,1,738,1,738,
	3,738,11790,8,738,1,738,1,738,1,738,1,738,1,738,1,738,1,738,1,738,1,738,
	1,738,1,738,1,738,1,738,1,738,1,738,1,738,3,738,11808,8,738,1,738,1,738,
	1,738,1,738,1,738,1,738,1,738,1,738,1,738,1,738,1,738,3,738,11821,8,738,
	1,738,1,738,1,738,1,738,1,738,1,738,1,738,1,738,1,738,1,738,1,738,1,738,
	1,738,3,738,11836,8,738,1,738,1,738,1,738,1,738,1,738,1,738,1,738,1,738,
	1,738,3,738,11847,8,738,1,738,1,738,1,738,1,738,1,738,1,738,1,738,1,738,
	3,738,11857,8,738,1,738,1,738,1,738,1,738,1,738,1,738,1,738,1,738,1,738,
	3,738,11868,8,738,1,738,1,738,1,738,1,738,1,738,1,738,1,738,1,738,3,738,
	11878,8,738,1,738,1,738,1,738,1,738,1,738,1,738,1,738,1,738,1,738,1,738,
	1,738,1,738,1,738,1,738,1,738,3,738,11895,8,738,1,738,1,738,1,738,1,738,
	3,738,11901,8,738,1,738,1,738,1,738,1,738,1,738,1,738,1,738,1,738,1,738,
	1,738,1,738,1,738,1,738,1,738,1,738,1,738,1,738,1,738,1,738,1,738,3,738,
	11923,8,738,1,739,1,739,1,739,3,739,11928,8,739,1,739,1,739,1,739,1,739,
	3,739,11934,8,739,1,739,1,739,1,739,1,739,3,739,11940,8,739,1,739,1,739,
	1,739,1,739,3,739,11946,8,739,1,739,1,739,1,739,3,739,11951,8,739,3,739,
	11953,8,739,1,739,3,739,11956,8,739,1,739,1,739,1,739,1,739,1,739,1,739,
	1,739,1,739,3,739,11966,8,739,1,739,3,739,11969,8,739,3,739,11971,8,739,
	3,739,11973,8,739,1,739,1,739,1,739,1,739,1,739,1,739,1,739,1,739,1,739,
	1,739,1,739,1,739,3,739,11987,8,739,1,740,1,740,1,741,1,741,1,741,1,742,
	1,742,1,743,1,743,3,743,11998,8,743,1,743,1,743,1,744,1,744,3,744,12004,
	8,744,1,745,1,745,1,745,1,745,1,746,1,746,1,746,1,746,1,746,1,746,1,746,
	1,746,1,746,1,746,1,746,1,746,1,746,1,746,1,746,1,746,1,746,1,746,1,746,
	1,746,1,746,1,746,1,746,1,746,1,746,1,746,1,746,1,746,1,746,1,746,1,746,
	1,746,1,746,1,746,1,746,1,746,1,746,1,746,1,746,1,746,1,746,1,746,1,746,
	1,746,1,746,1,746,1,746,1,746,1,746,1,746,1,746,1,746,1,746,1,746,1,746,
	1,746,1,746,1,746,1,746,1,746,1,746,1,746,1,746,1,746,1,746,1,746,1,746,
	1,746,1,746,1,746,1,746,1,746,1,746,1,746,1,746,3,746,12085,8,746,1,747,
	1,747,1,748,1,748,1,749,1,749,1,750,1,750,1,750,0,3,1238,1246,1256,751,
	0,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,976,978,980,982,984,986,988,990,992,994,996,998,
	1000,1002,1004,1006,1008,1010,1012,1014,1016,1018,1020,1022,1024,1026,1028,
	1030,1032,1034,1036,1038,1040,1042,1044,1046,1048,1050,1052,1054,1056,1058,
	1060,1062,1064,1066,1068,1070,1072,1074,1076,1078,1080,1082,1084,1086,1088,
	1090,1092,1094,1096,1098,1100,1102,1104,1106,1108,1110,1112,1114,1116,1118,
	1120,1122,1124,1126,1128,1130,1132,1134,1136,1138,1140,1142,1144,1146,1148,
	1150,1152,1154,1156,1158,1160,1162,1164,1166,1168,1170,1172,1174,1176,1178,
	1180,1182,1184,1186,1188,1190,1192,1194,1196,1198,1200,1202,1204,1206,1208,
	1210,1212,1214,1216,1218,1220,1222,1224,1226,1228,1230,1232,1234,1236,1238,
	1240,1242,1244,1246,1248,1250,1252,1254,1256,1258,1260,1262,1264,1266,1268,
	1270,1272,1274,1276,1278,1280,1282,1284,1286,1288,1290,1292,1294,1296,1298,
	1300,1302,1304,1306,1308,1310,1312,1314,1316,1318,1320,1322,1324,1326,1328,
	1330,1332,1334,1336,1338,1340,1342,1344,1346,1348,1350,1352,1354,1356,1358,
	1360,1362,1364,1366,1368,1370,1372,1374,1376,1378,1380,1382,1384,1386,1388,
	1390,1392,1394,1396,1398,1400,1402,1404,1406,1408,1410,1412,1414,1416,1418,
	1420,1422,1424,1426,1428,1430,1432,1434,1436,1438,1440,1442,1444,1446,1448,
	1450,1452,1454,1456,1458,1460,1462,1464,1466,1468,1470,1472,1474,1476,1478,
	1480,1482,1484,1486,1488,1490,1492,1494,1496,1498,1500,0,175,2,0,61,61,
	695,695,2,0,32,32,1250,1250,3,0,582,582,761,761,1344,1344,2,0,197,197,1168,
	1168,3,0,133,133,1191,1191,1550,1550,2,0,383,383,439,439,2,0,30,30,101,
	101,3,0,362,362,669,669,2025,2025,3,0,903,903,1119,1119,1199,1199,2,0,542,
	542,2070,2070,2,0,133,133,1550,1550,2,0,18,18,411,411,3,0,18,18,411,411,
	863,863,3,0,312,312,1147,1147,1554,1554,2,0,801,801,1168,1168,2,0,826,826,
	1576,1576,3,0,523,523,674,674,1187,1187,3,0,218,218,1071,1071,1441,1441,
	3,0,338,338,400,400,1334,1334,2,0,124,124,2002,2002,2,0,62,62,371,371,2,
	0,693,693,2103,2103,2,0,866,866,1001,1001,2,0,494,494,567,567,2,0,351,351,
	1920,1920,2,0,776,776,2006,2006,2,0,18,18,1403,1403,2,0,1112,1112,1125,
	1125,2,0,1779,1779,2055,2055,2,0,146,146,467,467,2,0,3,3,1506,1506,2,0,
	35,35,302,302,14,0,39,39,77,77,217,217,362,362,475,475,532,532,571,571,
	631,631,669,669,776,776,1353,1353,1404,1404,1490,1490,2025,2025,2,0,23,
	23,360,360,2,0,423,423,1006,1006,2,0,1042,1042,1400,1400,2,0,1127,1127,
	2125,2125,3,0,602,602,605,605,1117,1117,2,0,354,354,613,613,2,0,1084,1084,
	2070,2070,2,0,318,318,1918,1918,3,0,613,613,1050,1050,1920,1920,2,0,1113,
	1113,1128,1128,2,0,110,110,1540,1540,3,0,521,521,779,779,993,993,2,0,83,
	83,800,800,2,0,579,579,984,984,2,0,218,218,364,364,2,0,447,447,1982,1982,
	2,0,71,71,1625,1625,2,0,473,473,619,619,2,0,150,150,946,946,2,0,2119,2119,
	2121,2121,3,0,224,224,511,511,542,542,2,0,769,769,803,803,2,0,1052,1052,
	1444,1444,2,0,362,362,1300,1300,2,0,351,351,542,542,2,0,96,96,1483,1483,
	2,0,767,767,1910,1910,2,0,57,57,1334,1334,2,0,594,594,791,791,2,0,2004,
	2004,2217,2217,3,0,351,351,720,720,1365,1365,3,0,351,351,720,720,1007,1007,
	2,0,839,839,997,997,2,0,37,37,387,387,2,0,193,193,1566,1566,2,0,1045,1045,
	1410,1410,2,0,408,408,2029,2029,2,0,102,102,445,445,2,0,780,780,1248,1248,
	3,0,90,90,1241,1241,1321,1321,2,0,218,218,1295,1295,2,0,1088,1088,2106,
	2106,2,0,1,1,1592,1592,2,0,1248,1248,1542,1542,3,0,35,35,1007,1007,1566,
	1566,2,0,411,411,720,720,2,0,1058,1058,1544,1544,2,0,773,773,2074,2074,
	2,0,552,552,1231,1231,2,0,350,350,719,719,3,0,594,594,791,791,825,825,2,
	0,566,566,769,769,2,0,307,307,357,357,4,0,652,652,664,664,959,959,1182,
	1182,2,0,351,351,2232,2232,1,1,2241,2241,1,0,2241,2241,1,0,1430,1431,1,
	0,257,258,2,0,97,97,613,613,2,0,138,138,367,367,3,0,35,35,396,396,2002,
	2002,2,0,294,294,886,886,3,0,556,556,740,740,1437,1437,2,0,1472,1472,1933,
	1933,3,0,1472,1472,1542,1542,1933,1933,2,0,472,472,617,617,2,0,298,298,
	1443,1443,2,0,608,608,720,720,2,0,35,35,2024,2024,2,0,87,87,1497,1497,2,
	0,526,526,731,731,1,0,1451,1452,2,0,526,526,906,906,2,0,35,35,526,526,2,
	0,1912,1912,1926,1926,2,0,826,826,1603,1603,2,0,753,755,757,757,1,0,2238,
	2239,2,0,2226,2226,2230,2230,1,0,2227,2228,2,0,348,348,621,621,4,0,35,35,
	48,48,478,478,1543,1543,3,0,135,135,739,739,1969,1969,2,0,35,35,396,396,
	2,0,164,164,2133,2133,2,0,396,396,2002,2002,2,0,1233,1235,1238,1238,2,0,
	159,159,222,222,2,0,529,529,732,732,2,0,177,177,889,889,2,0,2135,2135,2143,
	2143,2,0,451,451,973,973,2,0,462,462,879,879,2,0,263,263,403,403,2,0,592,
	592,1520,1520,5,0,2187,2189,2191,2196,2198,2199,2201,2201,2205,2208,1,0,
	2180,2186,1,0,2174,2179,2,0,1344,1344,1452,1452,2,0,539,539,1290,1290,2,
	0,1053,1053,1469,1469,2,0,454,454,458,458,2,0,1174,1174,1555,1555,2,0,218,
	218,1441,1441,3,0,218,218,1007,1007,1441,1441,2,0,1207,1207,1606,1606,2,
	0,1415,1415,1548,1548,2,0,608,608,1416,1416,1,0,1239,1240,2,0,329,329,2169,
	2169,2,0,868,868,1480,1480,2,0,149,149,176,176,3,0,39,39,288,288,411,411,
	2,0,39,39,411,411,2,0,288,288,411,411,2,0,39,39,288,288,3,0,39,39,411,411,
	475,475,2,0,48,48,493,493,2,0,186,186,1317,1317,4,0,39,39,217,217,411,411,
	1490,1490,4,0,39,39,411,411,1490,1490,2025,2025,3,0,362,362,411,411,669,
	669,6,0,39,39,362,362,411,411,669,669,1490,1490,2025,2025,2,0,411,411,2025,
	2025,3,0,39,39,411,411,571,571,3,0,39,39,411,411,1490,1490,3,0,39,39,288,
	288,1421,1421,3,0,39,39,411,411,2059,2059,10,0,39,39,93,93,217,217,362,
	362,411,411,669,669,776,776,1353,1353,1490,1490,2025,2025,5,0,39,39,288,
	288,411,411,797,797,2004,2004,4,0,39,39,411,411,475,475,1997,1997,3,0,411,
	411,832,832,1997,1997,2,0,41,41,77,77,2,0,376,376,1970,1970,6,0,329,329,
	598,598,844,844,868,868,1480,1480,2169,2169,1,0,2217,2218,2,0,2212,2212,
	2219,2219,219,0,6,6,8,9,11,11,13,13,16,17,26,26,29,29,45,46,53,53,55,56,
	58,58,66,66,68,68,86,86,89,89,91,92,98,99,103,103,106,106,123,123,140,140,
	154,156,160,160,166,166,187,188,191,191,198,199,201,201,220,220,226,227,
	235,237,240,242,261,262,268,268,270,271,289,289,292,293,297,297,300,300,
	321,321,323,323,325,326,330,330,336,336,346,346,356,356,360,361,372,372,
	378,378,382,382,384,384,389,389,399,399,417,418,423,423,428,428,434,434,
	438,438,440,440,453,453,461,461,463,463,477,477,489,489,495,495,501,501,
	506,507,509,510,512,512,514,514,518,518,520,520,530,530,547,547,560,560,
	565,565,612,612,616,616,632,632,651,651,660,660,662,662,665,665,683,683,
	703,718,726,726,728,728,734,734,750,750,759,759,775,775,784,784,801,801,
	805,808,819,819,827,827,834,834,855,855,859,859,861,861,865,865,870,870,
	875,875,894,894,936,937,941,941,943,943,950,950,952,952,959,959,964,965,
	969,969,982,982,988,990,1006,1006,1012,1012,1023,1025,1028,1028,1030,1031,
	1036,1036,1041,1041,1044,1044,1051,1051,1059,1059,1076,1076,1083,1083,1085,
	1087,1094,1094,1108,1108,1114,1114,1121,1121,1123,1124,1144,1146,1155,1160,
	1165,1165,1201,1201,1203,1204,1219,1220,1222,1222,1224,1224,1242,1242,1245,
	1246,1265,1265,1268,1272,1279,1279,1281,1282,1285,1286,1294,1294,1301,1301,
	1303,1303,1305,1306,1310,1310,1322,1323,1329,1329,1355,1355,1367,1367,1399,
	1399,1417,1417,1439,1439,1445,1445,1457,1457,1462,1462,1474,1474,1477,1477,
	1481,1481,1501,1501,1503,1504,1518,1519,1546,1547,1559,1559,1563,1563,1565,
	1565,1574,1575,1596,1596,1609,1610,1618,1618,1631,1631,1633,1633,1639,1639,
	1657,1657,1662,1663,1667,1668,1690,1690,1702,1702,1705,1709,1734,1734,1762,
	1762,1773,1773,1904,1906,1914,1914,1923,1923,1929,1930,1947,1947,1975,1975,
	1983,1983,1991,1991,1996,1996,2007,2007,2014,2014,2019,2019,2033,2033,2037,
	2037,2041,2041,2048,2048,2054,2054,2060,2060,2062,2062,2064,2069,2072,2072,
	2085,2088,2100,2100,2102,2102,2109,2110,2120,2120,2124,2124,2166,2166,2168,
	2168,2172,2172,2216,2216,314,0,1,5,7,7,10,10,12,12,14,15,18,25,27,28,30,
	30,34,34,36,38,40,42,44,44,47,47,49,52,54,54,57,57,59,60,63,65,67,67,69,
	76,78,83,85,85,87,87,90,90,93,93,95,97,100,102,104,105,108,117,119,122,
	124,133,135,139,141,145,147,153,157,158,161,165,167,172,174,175,177,179,
	181,186,189,189,192,196,200,200,202,219,221,225,228,231,233,234,238,239,
	243,250,252,258,260,260,263,267,269,269,272,287,290,291,294,296,298,299,
	301,311,313,319,322,322,324,324,328,329,331,335,337,342,344,345,347,350,
	352,355,357,359,363,370,373,374,376,377,379,381,383,383,385,388,390,392,
	394,395,397,398,400,410,412,412,414,415,419,422,424,427,429,431,435,437,
	439,439,441,444,446,452,455,460,462,462,464,467,470,473,475,476,479,479,
	481,488,490,494,496,500,502,505,508,508,511,511,513,513,515,517,519,519,
	521,529,531,533,535,540,542,545,548,553,555,559,561,564,566,569,572,572,
	574,584,586,600,602,611,613,615,617,630,633,647,649,650,653,659,661,661,
	663,663,666,668,670,681,684,687,689,690,692,694,696,702,719,725,727,727,
	730,733,735,749,751,756,758,758,760,774,777,783,785,787,790,800,802,804,
	809,818,820,826,828,833,835,841,843,854,856,858,862,864,866,869,871,874,
	876,886,888,893,895,935,938,940,942,942,944,949,951,951,954,958,960,963,
	966,968,970,981,983,987,991,1005,1007,1011,1013,1022,1026,1027,1029,1029,
	1032,1035,1037,1040,1042,1043,1045,1050,1052,1058,1060,1072,1074,1075,1077,
	1082,1084,1084,1089,1093,1095,1096,1098,1098,1100,1107,1109,1113,1116,1120,
	1122,1122,1125,1125,1127,1127,1129,1140,1142,1143,1148,1154,1161,1164,1166,
	1167,1169,1171,1173,1173,1175,1181,1183,1186,1188,1192,1194,1195,1197,1200,
	1202,1202,1205,1218,1221,1221,1223,1223,1225,1226,1228,1232,1236,1237,1241,
	1241,1243,1244,1247,1249,1252,1258,1260,1264,1266,1267,1275,1278,1280,1280,
	1283,1284,1288,1293,1295,1300,1302,1302,1304,1304,1308,1309,1311,1321,1325,
	1328,1330,1340,1342,1346,1348,1354,1356,1358,1360,1366,1368,1397,1400,1403,
	1405,1414,1416,1416,1418,1421,1423,1424,1426,1433,1435,1438,1440,1444,1446,
	1456,1458,1461,1463,1473,1475,1476,1478,1480,1482,1489,1492,1497,1499,1499,
	1502,1502,1505,1509,1511,1516,1520,1527,1530,1534,1536,1540,1542,1545,1548,
	1553,1556,1558,1560,1562,1564,1564,1566,1568,1570,1573,1576,1595,1597,1608,
	1611,1615,1617,1617,1619,1626,1628,1630,1632,1632,1634,1638,1640,1656,1658,
	1661,1664,1666,1669,1689,1691,1701,1703,1704,1710,1733,1735,1761,1763,1772,
	1774,1903,1907,1913,1915,1922,1924,1928,1931,1931,1933,1933,1936,1937,1939,
	1946,1948,1963,1965,1974,1976,1977,1979,1982,1984,1990,1992,1995,1997,2000,
	2003,2006,2008,2013,2015,2018,2020,2024,2026,2032,2034,2036,2038,2040,2042,
	2047,2049,2053,2055,2059,2061,2061,2063,2063,2070,2071,2074,2074,2078,2084,
	2089,2098,2101,2101,2103,2107,2111,2113,2116,2119,2122,2123,2125,2126,2128,
	2130,2132,2143,2145,2165,2169,2170,2173,2188,2191,2198,2200,2206,2208,2211,
	3,0,184,184,2190,2190,2202,2204,5,0,281,281,2187,2187,2197,2197,2200,2200,
	2205,2205,13897,0,1502,1,0,0,0,2,1514,1,0,0,0,4,1575,1,0,0,0,6,1577,1,0,
	0,0,8,1582,1,0,0,0,10,1601,1,0,0,0,12,1653,1,0,0,0,14,1657,1,0,0,0,16,1671,
	1,0,0,0,18,1675,1,0,0,0,20,1687,1,0,0,0,22,1692,1,0,0,0,24,1705,1,0,0,0,
	26,1727,1,0,0,0,28,1755,1,0,0,0,30,1793,1,0,0,0,32,1795,1,0,0,0,34,1812,
	1,0,0,0,36,1849,1,0,0,0,38,1851,1,0,0,0,40,1856,1,0,0,0,42,1875,1,0,0,0,
	44,1925,1,0,0,0,46,1954,1,0,0,0,48,1991,1,0,0,0,50,1996,1,0,0,0,52,2021,
	1,0,0,0,54,2045,1,0,0,0,56,2054,1,0,0,0,58,2063,1,0,0,0,60,2072,1,0,0,0,
	62,2076,1,0,0,0,64,2081,1,0,0,0,66,2105,1,0,0,0,68,2107,1,0,0,0,70,2111,
	1,0,0,0,72,2160,1,0,0,0,74,2188,1,0,0,0,76,2190,1,0,0,0,78,2204,1,0,0,0,
	80,2209,1,0,0,0,82,2214,1,0,0,0,84,2220,1,0,0,0,86,2223,1,0,0,0,88,2234,
	1,0,0,0,90,2250,1,0,0,0,92,2267,1,0,0,0,94,2284,1,0,0,0,96,2292,1,0,0,0,
	98,2297,1,0,0,0,100,2313,1,0,0,0,102,2317,1,0,0,0,104,2341,1,0,0,0,106,
	2344,1,0,0,0,108,2350,1,0,0,0,110,2362,1,0,0,0,112,2371,1,0,0,0,114,2399,
	1,0,0,0,116,2405,1,0,0,0,118,2408,1,0,0,0,120,2415,1,0,0,0,122,2423,1,0,
	0,0,124,2436,1,0,0,0,126,2438,1,0,0,0,128,2442,1,0,0,0,130,2448,1,0,0,0,
	132,2473,1,0,0,0,134,2504,1,0,0,0,136,2549,1,0,0,0,138,2559,1,0,0,0,140,
	2561,1,0,0,0,142,2566,1,0,0,0,144,2580,1,0,0,0,146,2582,1,0,0,0,148,2587,
	1,0,0,0,150,2591,1,0,0,0,152,2629,1,0,0,0,154,2645,1,0,0,0,156,2678,1,0,
	0,0,158,2713,1,0,0,0,160,2717,1,0,0,0,162,2732,1,0,0,0,164,2734,1,0,0,0,
	166,2737,1,0,0,0,168,2742,1,0,0,0,170,2752,1,0,0,0,172,2785,1,0,0,0,174,
	2789,1,0,0,0,176,2817,1,0,0,0,178,2819,1,0,0,0,180,2823,1,0,0,0,182,2840,
	1,0,0,0,184,2848,1,0,0,0,186,2852,1,0,0,0,188,2875,1,0,0,0,190,2921,1,0,
	0,0,192,2936,1,0,0,0,194,2938,1,0,0,0,196,2952,1,0,0,0,198,2984,1,0,0,0,
	200,2993,1,0,0,0,202,3009,1,0,0,0,204,3044,1,0,0,0,206,3064,1,0,0,0,208,
	3071,1,0,0,0,210,3082,1,0,0,0,212,3093,1,0,0,0,214,3131,1,0,0,0,216,3133,
	1,0,0,0,218,3160,1,0,0,0,220,3173,1,0,0,0,222,3212,1,0,0,0,224,3214,1,0,
	0,0,226,3228,1,0,0,0,228,3233,1,0,0,0,230,3237,1,0,0,0,232,3252,1,0,0,0,
	234,3277,1,0,0,0,236,3279,1,0,0,0,238,3281,1,0,0,0,240,3283,1,0,0,0,242,
	3317,1,0,0,0,244,3319,1,0,0,0,246,3336,1,0,0,0,248,3351,1,0,0,0,250,3356,
	1,0,0,0,252,3381,1,0,0,0,254,3383,1,0,0,0,256,3393,1,0,0,0,258,3397,1,0,
	0,0,260,3423,1,0,0,0,262,3443,1,0,0,0,264,3451,1,0,0,0,266,3453,1,0,0,0,
	268,3455,1,0,0,0,270,3457,1,0,0,0,272,3506,1,0,0,0,274,3508,1,0,0,0,276,
	3513,1,0,0,0,278,3517,1,0,0,0,280,3523,1,0,0,0,282,3527,1,0,0,0,284,3535,
	1,0,0,0,286,3561,1,0,0,0,288,3563,1,0,0,0,290,3569,1,0,0,0,292,3572,1,0,
	0,0,294,3575,1,0,0,0,296,3578,1,0,0,0,298,3632,1,0,0,0,300,3634,1,0,0,0,
	302,3645,1,0,0,0,304,3653,1,0,0,0,306,3664,1,0,0,0,308,3679,1,0,0,0,310,
	3735,1,0,0,0,312,3766,1,0,0,0,314,3768,1,0,0,0,316,3770,1,0,0,0,318,3774,
	1,0,0,0,320,3776,1,0,0,0,322,3778,1,0,0,0,324,3790,1,0,0,0,326,3851,1,0,
	0,0,328,3866,1,0,0,0,330,3868,1,0,0,0,332,3873,1,0,0,0,334,3875,1,0,0,0,
	336,3885,1,0,0,0,338,3887,1,0,0,0,340,3889,1,0,0,0,342,3891,1,0,0,0,344,
	3895,1,0,0,0,346,3897,1,0,0,0,348,3903,1,0,0,0,350,3952,1,0,0,0,352,3954,
	1,0,0,0,354,3983,1,0,0,0,356,3987,1,0,0,0,358,4028,1,0,0,0,360,4030,1,0,
	0,0,362,4039,1,0,0,0,364,4050,1,0,0,0,366,4054,1,0,0,0,368,4056,1,0,0,0,
	370,4074,1,0,0,0,372,4081,1,0,0,0,374,4088,1,0,0,0,376,4162,1,0,0,0,378,
	4164,1,0,0,0,380,4169,1,0,0,0,382,4175,1,0,0,0,384,4230,1,0,0,0,386,4234,
	1,0,0,0,388,4245,1,0,0,0,390,4247,1,0,0,0,392,4249,1,0,0,0,394,4271,1,0,
	0,0,396,4274,1,0,0,0,398,4277,1,0,0,0,400,4281,1,0,0,0,402,4286,1,0,0,0,
	404,4290,1,0,0,0,406,4329,1,0,0,0,408,4332,1,0,0,0,410,4361,1,0,0,0,412,
	4363,1,0,0,0,414,4383,1,0,0,0,416,4427,1,0,0,0,418,4456,1,0,0,0,420,4493,
	1,0,0,0,422,4497,1,0,0,0,424,4545,1,0,0,0,426,4549,1,0,0,0,428,4634,1,0,
	0,0,430,4642,1,0,0,0,432,4644,1,0,0,0,434,4650,1,0,0,0,436,4661,1,0,0,0,
	438,4663,1,0,0,0,440,4666,1,0,0,0,442,4668,1,0,0,0,444,4679,1,0,0,0,446,
	4704,1,0,0,0,448,4707,1,0,0,0,450,4709,1,0,0,0,452,4720,1,0,0,0,454,4725,
	1,0,0,0,456,4737,1,0,0,0,458,4749,1,0,0,0,460,4752,1,0,0,0,462,4758,1,0,
	0,0,464,4765,1,0,0,0,466,4789,1,0,0,0,468,4802,1,0,0,0,470,4814,1,0,0,0,
	472,4819,1,0,0,0,474,4827,1,0,0,0,476,4829,1,0,0,0,478,4882,1,0,0,0,480,
	4884,1,0,0,0,482,4915,1,0,0,0,484,4917,1,0,0,0,486,4927,1,0,0,0,488,4954,
	1,0,0,0,490,4959,1,0,0,0,492,4964,1,0,0,0,494,5002,1,0,0,0,496,5004,1,0,
	0,0,498,5006,1,0,0,0,500,5008,1,0,0,0,502,5010,1,0,0,0,504,5072,1,0,0,0,
	506,5076,1,0,0,0,508,5081,1,0,0,0,510,5185,1,0,0,0,512,5187,1,0,0,0,514,
	5209,1,0,0,0,516,5211,1,0,0,0,518,5265,1,0,0,0,520,5283,1,0,0,0,522,5351,
	1,0,0,0,524,5373,1,0,0,0,526,5415,1,0,0,0,528,5419,1,0,0,0,530,5433,1,0,
	0,0,532,5501,1,0,0,0,534,5515,1,0,0,0,536,5546,1,0,0,0,538,5549,1,0,0,0,
	540,5567,1,0,0,0,542,5618,1,0,0,0,544,5628,1,0,0,0,546,5630,1,0,0,0,548,
	5686,1,0,0,0,550,5714,1,0,0,0,552,5731,1,0,0,0,554,5754,1,0,0,0,556,5791,
	1,0,0,0,558,5793,1,0,0,0,560,5843,1,0,0,0,562,5865,1,0,0,0,564,5885,1,0,
	0,0,566,5904,1,0,0,0,568,5910,1,0,0,0,570,5925,1,0,0,0,572,5965,1,0,0,0,
	574,6005,1,0,0,0,576,6039,1,0,0,0,578,6041,1,0,0,0,580,6057,1,0,0,0,582,
	6066,1,0,0,0,584,6099,1,0,0,0,586,6101,1,0,0,0,588,6109,1,0,0,0,590,6117,
	1,0,0,0,592,6124,1,0,0,0,594,6141,1,0,0,0,596,6155,1,0,0,0,598,6171,1,0,
	0,0,600,6211,1,0,0,0,602,6215,1,0,0,0,604,6239,1,0,0,0,606,6276,1,0,0,0,
	608,6293,1,0,0,0,610,6302,1,0,0,0,612,6306,1,0,0,0,614,6339,1,0,0,0,616,
	6347,1,0,0,0,618,6352,1,0,0,0,620,6359,1,0,0,0,622,6370,1,0,0,0,624,6372,
	1,0,0,0,626,6414,1,0,0,0,628,6416,1,0,0,0,630,6439,1,0,0,0,632,6459,1,0,
	0,0,634,6475,1,0,0,0,636,6481,1,0,0,0,638,6490,1,0,0,0,640,6494,1,0,0,0,
	642,6503,1,0,0,0,644,6511,1,0,0,0,646,6520,1,0,0,0,648,6527,1,0,0,0,650,
	6529,1,0,0,0,652,6573,1,0,0,0,654,6575,1,0,0,0,656,6582,1,0,0,0,658,6600,
	1,0,0,0,660,6602,1,0,0,0,662,6604,1,0,0,0,664,6641,1,0,0,0,666,6643,1,0,
	0,0,668,6645,1,0,0,0,670,6652,1,0,0,0,672,6654,1,0,0,0,674,6656,1,0,0,0,
	676,6689,1,0,0,0,678,6731,1,0,0,0,680,6733,1,0,0,0,682,6764,1,0,0,0,684,
	6801,1,0,0,0,686,6819,1,0,0,0,688,6821,1,0,0,0,690,6841,1,0,0,0,692,6869,
	1,0,0,0,694,6940,1,0,0,0,696,6942,1,0,0,0,698,6981,1,0,0,0,700,6990,1,0,
	0,0,702,7014,1,0,0,0,704,7021,1,0,0,0,706,7029,1,0,0,0,708,7031,1,0,0,0,
	710,7050,1,0,0,0,712,7073,1,0,0,0,714,7075,1,0,0,0,716,7093,1,0,0,0,718,
	7098,1,0,0,0,720,7108,1,0,0,0,722,7115,1,0,0,0,724,7123,1,0,0,0,726,7156,
	1,0,0,0,728,7179,1,0,0,0,730,7184,1,0,0,0,732,7235,1,0,0,0,734,7237,1,0,
	0,0,736,7242,1,0,0,0,738,7246,1,0,0,0,740,7249,1,0,0,0,742,7251,1,0,0,0,
	744,7253,1,0,0,0,746,7255,1,0,0,0,748,7257,1,0,0,0,750,7259,1,0,0,0,752,
	7296,1,0,0,0,754,7315,1,0,0,0,756,7326,1,0,0,0,758,7328,1,0,0,0,760,7344,
	1,0,0,0,762,7346,1,0,0,0,764,7369,1,0,0,0,766,7404,1,0,0,0,768,7426,1,0,
	0,0,770,7430,1,0,0,0,772,7432,1,0,0,0,774,7436,1,0,0,0,776,7464,1,0,0,0,
	778,7472,1,0,0,0,780,7477,1,0,0,0,782,7481,1,0,0,0,784,7491,1,0,0,0,786,
	7493,1,0,0,0,788,7501,1,0,0,0,790,7503,1,0,0,0,792,7509,1,0,0,0,794,7511,
	1,0,0,0,796,7516,1,0,0,0,798,7582,1,0,0,0,800,7584,1,0,0,0,802,7600,1,0,
	0,0,804,7622,1,0,0,0,806,7634,1,0,0,0,808,7661,1,0,0,0,810,7668,1,0,0,0,
	812,7677,1,0,0,0,814,7693,1,0,0,0,816,7695,1,0,0,0,818,7704,1,0,0,0,820,
	7706,1,0,0,0,822,7745,1,0,0,0,824,7778,1,0,0,0,826,7807,1,0,0,0,828,7811,
	1,0,0,0,830,7818,1,0,0,0,832,7820,1,0,0,0,834,7830,1,0,0,0,836,7846,1,0,
	0,0,838,7851,1,0,0,0,840,7867,1,0,0,0,842,7869,1,0,0,0,844,7881,1,0,0,0,
	846,7883,1,0,0,0,848,7885,1,0,0,0,850,7927,1,0,0,0,852,7943,1,0,0,0,854,
	7956,1,0,0,0,856,7959,1,0,0,0,858,7996,1,0,0,0,860,8017,1,0,0,0,862,8019,
	1,0,0,0,864,8021,1,0,0,0,866,8027,1,0,0,0,868,8029,1,0,0,0,870,8089,1,0,
	0,0,872,8091,1,0,0,0,874,8093,1,0,0,0,876,8095,1,0,0,0,878,8125,1,0,0,0,
	880,8127,1,0,0,0,882,8147,1,0,0,0,884,8149,1,0,0,0,886,8156,1,0,0,0,888,
	8160,1,0,0,0,890,8164,1,0,0,0,892,8168,1,0,0,0,894,8175,1,0,0,0,896,8179,
	1,0,0,0,898,8186,1,0,0,0,900,8191,1,0,0,0,902,8199,1,0,0,0,904,8214,1,0,
	0,0,906,8217,1,0,0,0,908,8222,1,0,0,0,910,8226,1,0,0,0,912,8243,1,0,0,0,
	914,8249,1,0,0,0,916,8259,1,0,0,0,918,8272,1,0,0,0,920,8276,1,0,0,0,922,
	8290,1,0,0,0,924,8292,1,0,0,0,926,8306,1,0,0,0,928,8323,1,0,0,0,930,8348,
	1,0,0,0,932,8358,1,0,0,0,934,8362,1,0,0,0,936,8397,1,0,0,0,938,8409,1,0,
	0,0,940,8420,1,0,0,0,942,8426,1,0,0,0,944,8437,1,0,0,0,946,8449,1,0,0,0,
	948,8457,1,0,0,0,950,8472,1,0,0,0,952,8476,1,0,0,0,954,8499,1,0,0,0,956,
	8502,1,0,0,0,958,8508,1,0,0,0,960,8513,1,0,0,0,962,8521,1,0,0,0,964,8529,
	1,0,0,0,966,8532,1,0,0,0,968,8548,1,0,0,0,970,8553,1,0,0,0,972,8557,1,0,
	0,0,974,8597,1,0,0,0,976,8599,1,0,0,0,978,8621,1,0,0,0,980,8623,1,0,0,0,
	982,8628,1,0,0,0,984,8630,1,0,0,0,986,8632,1,0,0,0,988,8634,1,0,0,0,990,
	8638,1,0,0,0,992,8643,1,0,0,0,994,8649,1,0,0,0,996,8653,1,0,0,0,998,8659,
	1,0,0,0,1000,8673,1,0,0,0,1002,8693,1,0,0,0,1004,8698,1,0,0,0,1006,8711,
	1,0,0,0,1008,8713,1,0,0,0,1010,8727,1,0,0,0,1012,8737,1,0,0,0,1014,8743,
	1,0,0,0,1016,8745,1,0,0,0,1018,8748,1,0,0,0,1020,8757,1,0,0,0,1022,8781,
	1,0,0,0,1024,8796,1,0,0,0,1026,8798,1,0,0,0,1028,8819,1,0,0,0,1030,8834,
	1,0,0,0,1032,8856,1,0,0,0,1034,8863,1,0,0,0,1036,8876,1,0,0,0,1038,8879,
	1,0,0,0,1040,8900,1,0,0,0,1042,8904,1,0,0,0,1044,8914,1,0,0,0,1046,8923,
	1,0,0,0,1048,8940,1,0,0,0,1050,8983,1,0,0,0,1052,8992,1,0,0,0,1054,9004,
	1,0,0,0,1056,9012,1,0,0,0,1058,9016,1,0,0,0,1060,9049,1,0,0,0,1062,9051,
	1,0,0,0,1064,9062,1,0,0,0,1066,9064,1,0,0,0,1068,9072,1,0,0,0,1070,9083,
	1,0,0,0,1072,9116,1,0,0,0,1074,9119,1,0,0,0,1076,9140,1,0,0,0,1078,9143,
	1,0,0,0,1080,9146,1,0,0,0,1082,9150,1,0,0,0,1084,9169,1,0,0,0,1086,9171,
	1,0,0,0,1088,9188,1,0,0,0,1090,9195,1,0,0,0,1092,9200,1,0,0,0,1094,9223,
	1,0,0,0,1096,9233,1,0,0,0,1098,9235,1,0,0,0,1100,9249,1,0,0,0,1102,9263,
	1,0,0,0,1104,9299,1,0,0,0,1106,9301,1,0,0,0,1108,9331,1,0,0,0,1110,9336,
	1,0,0,0,1112,9338,1,0,0,0,1114,9350,1,0,0,0,1116,9370,1,0,0,0,1118,9372,
	1,0,0,0,1120,9375,1,0,0,0,1122,9401,1,0,0,0,1124,9403,1,0,0,0,1126,9407,
	1,0,0,0,1128,9422,1,0,0,0,1130,9434,1,0,0,0,1132,9442,1,0,0,0,1134,9446,
	1,0,0,0,1136,9459,1,0,0,0,1138,9465,1,0,0,0,1140,9480,1,0,0,0,1142,9500,
	1,0,0,0,1144,9509,1,0,0,0,1146,9511,1,0,0,0,1148,9518,1,0,0,0,1150,9523,
	1,0,0,0,1152,9536,1,0,0,0,1154,9544,1,0,0,0,1156,9548,1,0,0,0,1158,9562,
	1,0,0,0,1160,9570,1,0,0,0,1162,9578,1,0,0,0,1164,9580,1,0,0,0,1166,9592,
	1,0,0,0,1168,9618,1,0,0,0,1170,9620,1,0,0,0,1172,9634,1,0,0,0,1174,9639,
	1,0,0,0,1176,9657,1,0,0,0,1178,9661,1,0,0,0,1180,9669,1,0,0,0,1182,9679,
	1,0,0,0,1184,9687,1,0,0,0,1186,9693,1,0,0,0,1188,9698,1,0,0,0,1190,9705,
	1,0,0,0,1192,9730,1,0,0,0,1194,9749,1,0,0,0,1196,9753,1,0,0,0,1198,9756,
	1,0,0,0,1200,9778,1,0,0,0,1202,9783,1,0,0,0,1204,9802,1,0,0,0,1206,9804,
	1,0,0,0,1208,9820,1,0,0,0,1210,9828,1,0,0,0,1212,9833,1,0,0,0,1214,9837,
	1,0,0,0,1216,9848,1,0,0,0,1218,9851,1,0,0,0,1220,9869,1,0,0,0,1222,9871,
	1,0,0,0,1224,9884,1,0,0,0,1226,9895,1,0,0,0,1228,9909,1,0,0,0,1230,9914,
	1,0,0,0,1232,9916,1,0,0,0,1234,9926,1,0,0,0,1236,9928,1,0,0,0,1238,9933,
	1,0,0,0,1240,9948,1,0,0,0,1242,9986,1,0,0,0,1244,9988,1,0,0,0,1246,9996,
	1,0,0,0,1248,10008,1,0,0,0,1250,10040,1,0,0,0,1252,10060,1,0,0,0,1254,10062,
	1,0,0,0,1256,10066,1,0,0,0,1258,10117,1,0,0,0,1260,10119,1,0,0,0,1262,10149,
	1,0,0,0,1264,10151,1,0,0,0,1266,10172,1,0,0,0,1268,10202,1,0,0,0,1270,10206,
	1,0,0,0,1272,10209,1,0,0,0,1274,10228,1,0,0,0,1276,10236,1,0,0,0,1278,10254,
	1,0,0,0,1280,10261,1,0,0,0,1282,10285,1,0,0,0,1284,10287,1,0,0,0,1286,10368,
	1,0,0,0,1288,10373,1,0,0,0,1290,10379,1,0,0,0,1292,10381,1,0,0,0,1294,10444,
	1,0,0,0,1296,10741,1,0,0,0,1298,10743,1,0,0,0,1300,10745,1,0,0,0,1302,10747,
	1,0,0,0,1304,10749,1,0,0,0,1306,10762,1,0,0,0,1308,10771,1,0,0,0,1310,10780,
	1,0,0,0,1312,10782,1,0,0,0,1314,10799,1,0,0,0,1316,10803,1,0,0,0,1318,10814,
	1,0,0,0,1320,10816,1,0,0,0,1322,10840,1,0,0,0,1324,10859,1,0,0,0,1326,10877,
	1,0,0,0,1328,10898,1,0,0,0,1330,10911,1,0,0,0,1332,10914,1,0,0,0,1334,10923,
	1,0,0,0,1336,10929,1,0,0,0,1338,10937,1,0,0,0,1340,10940,1,0,0,0,1342,10951,
	1,0,0,0,1344,10961,1,0,0,0,1346,10963,1,0,0,0,1348,10977,1,0,0,0,1350,10986,
	1,0,0,0,1352,11004,1,0,0,0,1354,11008,1,0,0,0,1356,11010,1,0,0,0,1358,11019,
	1,0,0,0,1360,11032,1,0,0,0,1362,11034,1,0,0,0,1364,11036,1,0,0,0,1366,11038,
	1,0,0,0,1368,11040,1,0,0,0,1370,11042,1,0,0,0,1372,11044,1,0,0,0,1374,11046,
	1,0,0,0,1376,11058,1,0,0,0,1378,11060,1,0,0,0,1380,11065,1,0,0,0,1382,11067,
	1,0,0,0,1384,11069,1,0,0,0,1386,11071,1,0,0,0,1388,11076,1,0,0,0,1390,11084,
	1,0,0,0,1392,11086,1,0,0,0,1394,11092,1,0,0,0,1396,11094,1,0,0,0,1398,11106,
	1,0,0,0,1400,11108,1,0,0,0,1402,11116,1,0,0,0,1404,11124,1,0,0,0,1406,11132,
	1,0,0,0,1408,11137,1,0,0,0,1410,11142,1,0,0,0,1412,11157,1,0,0,0,1414,11159,
	1,0,0,0,1416,11166,1,0,0,0,1418,11170,1,0,0,0,1420,11172,1,0,0,0,1422,11177,
	1,0,0,0,1424,11179,1,0,0,0,1426,11201,1,0,0,0,1428,11203,1,0,0,0,1430,11230,
	1,0,0,0,1432,11238,1,0,0,0,1434,11240,1,0,0,0,1436,11242,1,0,0,0,1438,11244,
	1,0,0,0,1440,11270,1,0,0,0,1442,11272,1,0,0,0,1444,11280,1,0,0,0,1446,11284,
	1,0,0,0,1448,11293,1,0,0,0,1450,11308,1,0,0,0,1452,11329,1,0,0,0,1454,11371,
	1,0,0,0,1456,11378,1,0,0,0,1458,11390,1,0,0,0,1460,11423,1,0,0,0,1462,11425,
	1,0,0,0,1464,11499,1,0,0,0,1466,11504,1,0,0,0,1468,11523,1,0,0,0,1470,11533,
	1,0,0,0,1472,11552,1,0,0,0,1474,11594,1,0,0,0,1476,11922,1,0,0,0,1478,11986,
	1,0,0,0,1480,11988,1,0,0,0,1482,11990,1,0,0,0,1484,11993,1,0,0,0,1486,11997,
	1,0,0,0,1488,12003,1,0,0,0,1490,12005,1,0,0,0,1492,12084,1,0,0,0,1494,12086,
	1,0,0,0,1496,12088,1,0,0,0,1498,12090,1,0,0,0,1500,12092,1,0,0,0,1502,1503,
	3,2,1,0,1503,1504,5,0,0,1,1504,1,1,0,0,0,1505,1508,3,4,2,0,1506,1508,3,
	1344,672,0,1507,1505,1,0,0,0,1507,1506,1,0,0,0,1508,1510,1,0,0,0,1509,1511,
	5,2241,0,0,1510,1509,1,0,0,0,1510,1511,1,0,0,0,1511,1513,1,0,0,0,1512,1507,
	1,0,0,0,1513,1516,1,0,0,0,1514,1512,1,0,0,0,1514,1515,1,0,0,0,1515,1517,
	1,0,0,0,1516,1514,1,0,0,0,1517,1518,5,0,0,1,1518,3,1,0,0,0,1519,1576,3,
	1024,512,0,1520,1576,3,656,328,0,1521,1576,3,662,331,0,1522,1576,3,8,4,
	0,1523,1576,3,24,12,0,1524,1576,3,40,20,0,1525,1576,3,168,84,0,1526,1576,
	3,170,85,0,1527,1576,3,50,25,0,1528,1576,3,88,44,0,1529,1576,3,750,375,
	0,1530,1576,3,426,213,0,1531,1576,3,230,115,0,1532,1576,3,392,196,0,1533,
	1576,3,476,238,0,1534,1576,3,486,243,0,1535,1576,3,272,136,0,1536,1576,
	3,404,202,0,1537,1576,3,308,154,0,1538,1576,3,322,161,0,1539,1576,3,352,
	176,0,1540,1576,3,348,174,0,1541,1576,3,10,5,0,1542,1576,3,46,23,0,1543,
	1576,3,26,13,0,1544,1576,3,28,14,0,1545,1576,3,180,90,0,1546,1576,3,518,
	259,0,1547,1576,3,442,221,0,1548,1576,3,516,258,0,1549,1576,3,512,256,0,
	1550,1576,3,408,204,0,1551,1576,3,386,193,0,1552,1576,3,508,254,0,1553,
	1576,3,502,251,0,1554,1576,3,270,135,0,1555,1576,3,174,87,0,1556,1576,3,
	52,26,0,1557,1576,3,108,54,0,1558,1576,3,652,326,0,1559,1576,3,6,3,0,1560,
	1576,3,22,11,0,1561,1576,3,38,19,0,1562,1576,3,166,83,0,1563,1576,3,48,
	24,0,1564,1576,3,86,43,0,1565,1576,3,1012,506,0,1566,1576,3,642,321,0,1567,
	1576,3,644,322,0,1568,1576,3,378,189,0,1569,1576,3,380,190,0,1570,1576,
	3,646,323,0,1571,1576,3,654,327,0,1572,1576,3,902,451,0,1573,1576,3,382,
	191,0,1574,1576,3,994,497,0,1575,1519,1,0,0,0,1575,1520,1,0,0,0,1575,1521,
	1,0,0,0,1575,1522,1,0,0,0,1575,1523,1,0,0,0,1575,1524,1,0,0,0,1575,1525,
	1,0,0,0,1575,1526,1,0,0,0,1575,1527,1,0,0,0,1575,1528,1,0,0,0,1575,1529,
	1,0,0,0,1575,1530,1,0,0,0,1575,1531,1,0,0,0,1575,1532,1,0,0,0,1575,1533,
	1,0,0,0,1575,1534,1,0,0,0,1575,1535,1,0,0,0,1575,1536,1,0,0,0,1575,1537,
	1,0,0,0,1575,1538,1,0,0,0,1575,1539,1,0,0,0,1575,1540,1,0,0,0,1575,1541,
	1,0,0,0,1575,1542,1,0,0,0,1575,1543,1,0,0,0,1575,1544,1,0,0,0,1575,1545,
	1,0,0,0,1575,1546,1,0,0,0,1575,1547,1,0,0,0,1575,1548,1,0,0,0,1575,1549,
	1,0,0,0,1575,1550,1,0,0,0,1575,1551,1,0,0,0,1575,1552,1,0,0,0,1575,1553,
	1,0,0,0,1575,1554,1,0,0,0,1575,1555,1,0,0,0,1575,1556,1,0,0,0,1575,1557,
	1,0,0,0,1575,1558,1,0,0,0,1575,1559,1,0,0,0,1575,1560,1,0,0,0,1575,1561,
	1,0,0,0,1575,1562,1,0,0,0,1575,1563,1,0,0,0,1575,1564,1,0,0,0,1575,1565,
	1,0,0,0,1575,1566,1,0,0,0,1575,1567,1,0,0,0,1575,1568,1,0,0,0,1575,1569,
	1,0,0,0,1575,1570,1,0,0,0,1575,1571,1,0,0,0,1575,1572,1,0,0,0,1575,1573,
	1,0,0,0,1575,1574,1,0,0,0,1576,5,1,0,0,0,1577,1578,5,411,0,0,1578,1579,
	5,558,0,0,1579,1580,3,1406,703,0,1580,1581,5,2241,0,0,1581,7,1,0,0,0,1582,
	1583,5,39,0,0,1583,1584,5,558,0,0,1584,1585,3,1406,703,0,1585,1587,5,223,
	0,0,1586,1588,5,340,0,0,1587,1586,1,0,0,0,1587,1588,1,0,0,0,1588,1592,1,
	0,0,0,1589,1591,3,398,199,0,1590,1589,1,0,0,0,1591,1594,1,0,0,0,1592,1590,
	1,0,0,0,1592,1593,1,0,0,0,1593,1597,1,0,0,0,1594,1592,1,0,0,0,1595,1596,
	5,1432,0,0,1596,1598,5,1512,0,0,1597,1595,1,0,0,0,1597,1598,1,0,0,0,1598,
	1599,1,0,0,0,1599,1600,5,2241,0,0,1600,9,1,0,0,0,1601,1604,5,288,0,0,1602,
	1603,5,1172,0,0,1603,1605,5,1407,0,0,1604,1602,1,0,0,0,1604,1605,1,0,0,
	0,1605,1606,1,0,0,0,1606,1607,5,558,0,0,1607,1619,3,1406,703,0,1608,1609,
	5,2223,0,0,1609,1614,3,916,458,0,1610,1611,5,2229,0,0,1611,1613,3,916,458,
	0,1612,1610,1,0,0,0,1613,1616,1,0,0,0,1614,1612,1,0,0,0,1614,1615,1,0,0,
	0,1615,1617,1,0,0,0,1616,1614,1,0,0,0,1617,1618,5,2224,0,0,1618,1620,1,
	0,0,0,1619,1608,1,0,0,0,1619,1620,1,0,0,0,1620,1621,1,0,0,0,1621,1622,5,
	1431,0,0,1622,1629,3,1458,729,0,1623,1628,3,904,452,0,1624,1628,3,12,6,
	0,1625,1628,3,16,8,0,1626,1628,5,375,0,0,1627,1623,1,0,0,0,1627,1624,1,
	0,0,0,1627,1625,1,0,0,0,1627,1626,1,0,0,0,1628,1631,1,0,0,0,1629,1627,1,
	0,0,0,1629,1630,1,0,0,0,1630,1649,1,0,0,0,1631,1629,1,0,0,0,1632,1634,5,
	1250,0,0,1633,1632,1,0,0,0,1633,1634,1,0,0,0,1634,1635,1,0,0,0,1635,1644,
	7,0,0,0,1636,1638,5,344,0,0,1637,1636,1,0,0,0,1637,1638,1,0,0,0,1638,1640,
	1,0,0,0,1639,1641,3,920,460,0,1640,1639,1,0,0,0,1640,1641,1,0,0,0,1641,
	1642,1,0,0,0,1642,1645,3,998,499,0,1643,1645,3,906,453,0,1644,1637,1,0,
	0,0,1644,1643,1,0,0,0,1645,1650,1,0,0,0,1646,1647,7,1,0,0,1647,1648,5,2063,
	0,0,1648,1650,3,1378,689,0,1649,1633,1,0,0,0,1649,1646,1,0,0,0,1650,1651,
	1,0,0,0,1651,1652,5,2241,0,0,1652,11,1,0,0,0,1653,1655,5,1193,0,0,1654,
	1656,3,14,7,0,1655,1654,1,0,0,0,1655,1656,1,0,0,0,1656,13,1,0,0,0,1657,
	1658,5,2223,0,0,1658,1659,5,1207,0,0,1659,1660,3,1234,617,0,1660,1664,5,
	146,0,0,1661,1665,5,48,0,0,1662,1663,7,2,0,0,1663,1665,3,1444,722,0,1664,
	1661,1,0,0,0,1664,1662,1,0,0,0,1665,1667,1,0,0,0,1666,1668,3,20,10,0,1667,
	1666,1,0,0,0,1667,1668,1,0,0,0,1668,1669,1,0,0,0,1669,1670,5,2224,0,0,1670,
	15,1,0,0,0,1671,1673,5,1424,0,0,1672,1674,3,18,9,0,1673,1672,1,0,0,0,1673,
	1674,1,0,0,0,1674,17,1,0,0,0,1675,1676,5,1398,0,0,1676,1677,5,2223,0,0,
	1677,1682,3,1426,713,0,1678,1679,5,2229,0,0,1679,1681,3,1426,713,0,1680,
	1678,1,0,0,0,1681,1684,1,0,0,0,1682,1680,1,0,0,0,1682,1683,1,0,0,0,1683,
	1685,1,0,0,0,1684,1682,1,0,0,0,1685,1686,5,2224,0,0,1686,19,1,0,0,0,1687,
	1688,7,3,0,0,1688,1689,3,1234,617,0,1689,1690,5,146,0,0,1690,1691,3,1444,
	722,0,1691,21,1,0,0,0,1692,1693,5,411,0,0,1693,1695,5,1191,0,0,1694,1696,
	5,133,0,0,1695,1694,1,0,0,0,1695,1696,1,0,0,0,1696,1700,1,0,0,0,1697,1698,
	3,1434,717,0,1698,1699,5,2216,0,0,1699,1701,1,0,0,0,1700,1697,1,0,0,0,1700,
	1701,1,0,0,0,1701,1702,1,0,0,0,1702,1703,3,1376,688,0,1703,1704,5,2241,
	0,0,1704,23,1,0,0,0,1705,1706,5,39,0,0,1706,1707,5,1191,0,0,1707,1708,3,
	1376,688,0,1708,1710,5,223,0,0,1709,1711,5,340,0,0,1710,1709,1,0,0,0,1710,
	1711,1,0,0,0,1711,1713,1,0,0,0,1712,1714,7,4,0,0,1713,1712,1,0,0,0,1713,
	1714,1,0,0,0,1714,1718,1,0,0,0,1715,1717,3,398,199,0,1716,1715,1,0,0,0,
	1717,1720,1,0,0,0,1718,1716,1,0,0,0,1718,1719,1,0,0,0,1719,1723,1,0,0,0,
	1720,1718,1,0,0,0,1721,1722,5,1432,0,0,1722,1724,5,1512,0,0,1723,1721,1,
	0,0,0,1723,1724,1,0,0,0,1724,1725,1,0,0,0,1725,1726,5,2241,0,0,1726,25,
	1,0,0,0,1727,1730,5,288,0,0,1728,1729,5,1172,0,0,1729,1731,5,1407,0,0,1730,
	1728,1,0,0,0,1730,1731,1,0,0,0,1731,1732,1,0,0,0,1732,1736,5,1191,0,0,1733,
	1734,3,1434,717,0,1734,1735,5,2216,0,0,1735,1737,1,0,0,0,1736,1733,1,0,
	0,0,1736,1737,1,0,0,0,1737,1738,1,0,0,0,1738,1740,3,1376,688,0,1739,1741,
	3,904,452,0,1740,1739,1,0,0,0,1740,1741,1,0,0,0,1741,1742,1,0,0,0,1742,
	1746,7,0,0,0,1743,1745,3,30,15,0,1744,1743,1,0,0,0,1745,1748,1,0,0,0,1746,
	1744,1,0,0,0,1746,1747,1,0,0,0,1747,1749,1,0,0,0,1748,1746,1,0,0,0,1749,
	1751,5,445,0,0,1750,1752,3,1376,688,0,1751,1750,1,0,0,0,1751,1752,1,0,0,
	0,1752,1753,1,0,0,0,1753,1754,5,2241,0,0,1754,27,1,0,0,0,1755,1758,5,288,
	0,0,1756,1757,5,1172,0,0,1757,1759,5,1407,0,0,1758,1756,1,0,0,0,1758,1759,
	1,0,0,0,1759,1760,1,0,0,0,1760,1761,5,1191,0,0,1761,1765,5,133,0,0,1762,
	1763,3,1434,717,0,1763,1764,5,2216,0,0,1764,1766,1,0,0,0,1765,1762,1,0,
	0,0,1765,1766,1,0,0,0,1766,1767,1,0,0,0,1767,1768,3,1376,688,0,1768,1772,
	7,0,0,0,1769,1771,3,36,18,0,1770,1769,1,0,0,0,1771,1774,1,0,0,0,1772,1770,
	1,0,0,0,1772,1773,1,0,0,0,1773,1777,1,0,0,0,1774,1772,1,0,0,0,1775,1776,
	5,102,0,0,1776,1778,3,950,475,0,1777,1775,1,0,0,0,1777,1778,1,0,0,0,1778,
	1779,1,0,0,0,1779,1781,5,445,0,0,1780,1782,3,1376,688,0,1781,1780,1,0,0,
	0,1781,1782,1,0,0,0,1782,1783,1,0,0,0,1783,1784,5,2241,0,0,1784,29,1,0,
	0,0,1785,1794,3,934,467,0,1786,1794,3,924,462,0,1787,1794,3,926,463,0,1788,
	1794,3,928,464,0,1789,1794,3,932,466,0,1790,1794,3,942,471,0,1791,1794,
	3,32,16,0,1792,1794,3,34,17,0,1793,1785,1,0,0,0,1793,1786,1,0,0,0,1793,
	1787,1,0,0,0,1793,1788,1,0,0,0,1793,1789,1,0,0,0,1793,1790,1,0,0,0,1793,
	1791,1,0,0,0,1793,1792,1,0,0,0,1794,31,1,0,0,0,1795,1796,5,1314,0,0,1796,
	1808,3,1486,743,0,1797,1798,5,2223,0,0,1798,1803,3,916,458,0,1799,1800,
	5,2229,0,0,1800,1802,3,916,458,0,1801,1799,1,0,0,0,1802,1805,1,0,0,0,1803,
	1801,1,0,0,0,1803,1804,1,0,0,0,1804,1806,1,0,0,0,1805,1803,1,0,0,0,1806,
	1807,5,2224,0,0,1807,1809,1,0,0,0,1808,1797,1,0,0,0,1808,1809,1,0,0,0,1809,
	1810,1,0,0,0,1810,1811,5,2241,0,0,1811,33,1,0,0,0,1812,1813,5,558,0,0,1813,
	1825,3,1486,743,0,1814,1815,5,2223,0,0,1815,1820,3,916,458,0,1816,1817,
	5,2229,0,0,1817,1819,3,916,458,0,1818,1816,1,0,0,0,1819,1822,1,0,0,0,1820,
	1818,1,0,0,0,1820,1821,1,0,0,0,1821,1823,1,0,0,0,1822,1820,1,0,0,0,1823,
	1824,5,2224,0,0,1824,1826,1,0,0,0,1825,1814,1,0,0,0,1825,1826,1,0,0,0,1826,
	1827,1,0,0,0,1827,1828,5,1431,0,0,1828,1830,3,1458,729,0,1829,1831,5,1250,
	0,0,1830,1829,1,0,0,0,1830,1831,1,0,0,0,1831,1833,1,0,0,0,1832,1834,5,375,
	0,0,1833,1832,1,0,0,0,1833,1834,1,0,0,0,1834,1836,1,0,0,0,1835,1837,5,1424,
	0,0,1836,1835,1,0,0,0,1836,1837,1,0,0,0,1837,1838,1,0,0,0,1838,1839,5,2241,
	0,0,1839,35,1,0,0,0,1840,1850,3,924,462,0,1841,1850,3,926,463,0,1842,1850,
	3,928,464,0,1843,1850,3,932,466,0,1844,1850,3,942,471,0,1845,1850,3,44,
	22,0,1846,1850,3,42,21,0,1847,1850,3,32,16,0,1848,1850,3,34,17,0,1849,1840,
	1,0,0,0,1849,1841,1,0,0,0,1849,1842,1,0,0,0,1849,1843,1,0,0,0,1849,1844,
	1,0,0,0,1849,1845,1,0,0,0,1849,1846,1,0,0,0,1849,1847,1,0,0,0,1849,1848,
	1,0,0,0,1850,37,1,0,0,0,1851,1852,5,411,0,0,1852,1853,5,1314,0,0,1853,1854,
	3,1408,704,0,1854,1855,5,2241,0,0,1855,39,1,0,0,0,1856,1857,5,39,0,0,1857,
	1858,5,1314,0,0,1858,1859,3,1408,704,0,1859,1861,5,223,0,0,1860,1862,5,
	340,0,0,1861,1860,1,0,0,0,1861,1862,1,0,0,0,1862,1866,1,0,0,0,1863,1865,
	3,398,199,0,1864,1863,1,0,0,0,1865,1868,1,0,0,0,1866,1864,1,0,0,0,1866,
	1867,1,0,0,0,1867,1871,1,0,0,0,1868,1866,1,0,0,0,1869,1870,5,1432,0,0,1870,
	1872,5,1512,0,0,1871,1869,1,0,0,0,1871,1872,1,0,0,0,1872,1873,1,0,0,0,1873,
	1874,5,2241,0,0,1874,41,1,0,0,0,1875,1876,5,558,0,0,1876,1888,3,1486,743,
	0,1877,1878,5,2223,0,0,1878,1883,3,916,458,0,1879,1880,5,2229,0,0,1880,
	1882,3,916,458,0,1881,1879,1,0,0,0,1882,1885,1,0,0,0,1883,1881,1,0,0,0,
	1883,1884,1,0,0,0,1884,1886,1,0,0,0,1885,1883,1,0,0,0,1886,1887,5,2224,
	0,0,1887,1889,1,0,0,0,1888,1877,1,0,0,0,1888,1889,1,0,0,0,1889,1890,1,0,
	0,0,1890,1891,5,1431,0,0,1891,1898,3,1458,729,0,1892,1897,3,904,452,0,1893,
	1897,3,12,6,0,1894,1897,3,16,8,0,1895,1897,5,375,0,0,1896,1892,1,0,0,0,
	1896,1893,1,0,0,0,1896,1894,1,0,0,0,1896,1895,1,0,0,0,1897,1900,1,0,0,0,
	1898,1896,1,0,0,0,1898,1899,1,0,0,0,1899,1921,1,0,0,0,1900,1898,1,0,0,0,
	1901,1903,5,1250,0,0,1902,1901,1,0,0,0,1902,1903,1,0,0,0,1903,1905,1,0,
	0,0,1904,1906,5,375,0,0,1905,1904,1,0,0,0,1905,1906,1,0,0,0,1906,1907,1,
	0,0,0,1907,1916,7,0,0,0,1908,1910,5,344,0,0,1909,1908,1,0,0,0,1909,1910,
	1,0,0,0,1910,1912,1,0,0,0,1911,1913,3,920,460,0,1912,1911,1,0,0,0,1912,
	1913,1,0,0,0,1913,1914,1,0,0,0,1914,1917,3,998,499,0,1915,1917,3,906,453,
	0,1916,1909,1,0,0,0,1916,1915,1,0,0,0,1917,1922,1,0,0,0,1918,1919,7,1,0,
	0,1919,1920,5,2063,0,0,1920,1922,3,1378,689,0,1921,1902,1,0,0,0,1921,1918,
	1,0,0,0,1922,1923,1,0,0,0,1923,1924,5,2241,0,0,1924,43,1,0,0,0,1925,1926,
	5,1314,0,0,1926,1938,3,1486,743,0,1927,1928,5,2223,0,0,1928,1933,3,916,
	458,0,1929,1930,5,2229,0,0,1930,1932,3,916,458,0,1931,1929,1,0,0,0,1932,
	1935,1,0,0,0,1933,1931,1,0,0,0,1933,1934,1,0,0,0,1934,1936,1,0,0,0,1935,
	1933,1,0,0,0,1936,1937,5,2224,0,0,1937,1939,1,0,0,0,1938,1927,1,0,0,0,1938,
	1939,1,0,0,0,1939,1940,1,0,0,0,1940,1950,7,0,0,0,1941,1943,5,344,0,0,1942,
	1941,1,0,0,0,1942,1943,1,0,0,0,1943,1945,1,0,0,0,1944,1946,3,920,460,0,
	1945,1944,1,0,0,0,1945,1946,1,0,0,0,1946,1947,1,0,0,0,1947,1951,3,998,499,
	0,1948,1951,3,906,453,0,1949,1951,5,493,0,0,1950,1942,1,0,0,0,1950,1948,
	1,0,0,0,1950,1949,1,0,0,0,1951,1952,1,0,0,0,1952,1953,5,2241,0,0,1953,45,
	1,0,0,0,1954,1957,5,288,0,0,1955,1956,5,1172,0,0,1956,1958,5,1407,0,0,1957,
	1955,1,0,0,0,1957,1958,1,0,0,0,1958,1959,1,0,0,0,1959,1960,5,1314,0,0,1960,
	1972,3,1408,704,0,1961,1962,5,2223,0,0,1962,1967,3,916,458,0,1963,1964,
	5,2229,0,0,1964,1966,3,916,458,0,1965,1963,1,0,0,0,1966,1969,1,0,0,0,1967,
	1965,1,0,0,0,1967,1968,1,0,0,0,1968,1970,1,0,0,0,1969,1967,1,0,0,0,1970,
	1971,5,2224,0,0,1971,1973,1,0,0,0,1972,1961,1,0,0,0,1972,1973,1,0,0,0,1973,
	1975,1,0,0,0,1974,1976,3,904,452,0,1975,1974,1,0,0,0,1975,1976,1,0,0,0,
	1976,1977,1,0,0,0,1977,1987,7,0,0,0,1978,1980,5,344,0,0,1979,1978,1,0,0,
	0,1979,1980,1,0,0,0,1980,1982,1,0,0,0,1981,1983,3,920,460,0,1982,1981,1,
	0,0,0,1982,1983,1,0,0,0,1983,1984,1,0,0,0,1984,1988,3,998,499,0,1985,1988,
	3,906,453,0,1986,1988,5,493,0,0,1987,1979,1,0,0,0,1987,1985,1,0,0,0,1987,
	1986,1,0,0,0,1988,1989,1,0,0,0,1989,1990,5,2241,0,0,1990,47,1,0,0,0,1991,
	1992,5,411,0,0,1992,1993,5,1978,0,0,1993,1994,3,1410,705,0,1994,1995,5,
	2241,0,0,1995,49,1,0,0,0,1996,1997,5,39,0,0,1997,1998,5,1978,0,0,1998,2017,
	3,1410,705,0,1999,2018,7,5,0,0,2000,2001,5,1404,0,0,2001,2002,5,1964,0,
	0,2002,2018,3,1410,705,0,2003,2005,5,223,0,0,2004,2006,5,340,0,0,2005,2004,
	1,0,0,0,2005,2006,1,0,0,0,2006,2010,1,0,0,0,2007,2009,3,398,199,0,2008,
	2007,1,0,0,0,2009,2012,1,0,0,0,2010,2008,1,0,0,0,2010,2011,1,0,0,0,2011,
	2015,1,0,0,0,2012,2010,1,0,0,0,2013,2014,5,1432,0,0,2014,2016,5,1512,0,
	0,2015,2013,1,0,0,0,2015,2016,1,0,0,0,2016,2018,1,0,0,0,2017,1999,1,0,0,
	0,2017,2000,1,0,0,0,2017,2003,1,0,0,0,2018,2019,1,0,0,0,2019,2020,5,2241,
	0,0,2020,51,1,0,0,0,2021,2024,5,288,0,0,2022,2023,5,1172,0,0,2023,2025,
	5,1407,0,0,2024,2022,1,0,0,0,2024,2025,1,0,0,0,2025,2026,1,0,0,0,2026,2027,
	5,1978,0,0,2027,2031,3,1410,705,0,2028,2032,3,58,29,0,2029,2032,3,62,31,
	0,2030,2032,3,64,32,0,2031,2028,1,0,0,0,2031,2029,1,0,0,0,2031,2030,1,0,
	0,0,2032,2034,1,0,0,0,2033,2035,3,54,27,0,2034,2033,1,0,0,0,2034,2035,1,
	0,0,0,2035,2037,1,0,0,0,2036,2038,7,5,0,0,2037,2036,1,0,0,0,2037,2038,1,
	0,0,0,2038,2040,1,0,0,0,2039,2041,3,56,28,0,2040,2039,1,0,0,0,2040,2041,
	1,0,0,0,2041,2042,1,0,0,0,2042,2043,3,66,33,0,2043,2044,5,2241,0,0,2044,
	53,1,0,0,0,2045,2046,5,540,0,0,2046,2051,3,1410,705,0,2047,2048,5,2229,
	0,0,2048,2050,3,1410,705,0,2049,2047,1,0,0,0,2050,2053,1,0,0,0,2051,2049,
	1,0,0,0,2051,2052,1,0,0,0,2052,55,1,0,0,0,2053,2051,1,0,0,0,2054,2055,5,
	2113,0,0,2055,2056,5,2223,0,0,2056,2057,3,1230,615,0,2057,2058,5,2224,0,
	0,2058,57,1,0,0,0,2059,2064,5,101,0,0,2060,2064,5,30,0,0,2061,2062,5,676,
	0,0,2062,2064,5,1115,0,0,2063,2059,1,0,0,0,2063,2060,1,0,0,0,2063,2061,
	1,0,0,0,2064,2065,1,0,0,0,2065,2067,3,76,38,0,2066,2068,3,82,41,0,2067,
	2066,1,0,0,0,2067,2068,1,0,0,0,2068,2070,1,0,0,0,2069,2071,3,60,30,0,2070,
	2069,1,0,0,0,2070,2071,1,0,0,0,2071,59,1,0,0,0,2072,2073,5,546,0,0,2073,
	2074,5,422,0,0,2074,2075,5,1451,0,0,2075,61,1,0,0,0,2076,2077,5,546,0,0,
	2077,2079,3,76,38,0,2078,2080,3,82,41,0,2079,2078,1,0,0,0,2079,2080,1,0,
	0,0,2080,63,1,0,0,0,2081,2082,7,6,0,0,2082,2087,3,74,37,0,2083,2084,5,1172,
	0,0,2084,2086,3,74,37,0,2085,2083,1,0,0,0,2086,2089,1,0,0,0,2087,2085,1,
	0,0,0,2087,2088,1,0,0,0,2088,2090,1,0,0,0,2089,2087,1,0,0,0,2090,2098,5,
	1128,0,0,2091,2099,5,316,0,0,2092,2093,3,1372,686,0,2093,2094,5,2216,0,
	0,2094,2096,1,0,0,0,2095,2092,1,0,0,0,2095,2096,1,0,0,0,2096,2097,1,0,0,
	0,2097,2099,5,1470,0,0,2098,2091,1,0,0,0,2098,2095,1,0,0,0,2099,65,1,0,
	0,0,2100,2101,5,231,0,0,2101,2106,5,1978,0,0,2102,2103,5,157,0,0,2103,2106,
	3,1486,743,0,2104,2106,3,1002,501,0,2105,2100,1,0,0,0,2105,2102,1,0,0,0,
	2105,2104,1,0,0,0,2106,67,1,0,0,0,2107,2109,3,1374,687,0,2108,2110,3,1448,
	724,0,2109,2108,1,0,0,0,2109,2110,1,0,0,0,2110,69,1,0,0,0,2111,2112,5,231,
	0,0,2112,2114,5,1978,0,0,2113,2115,3,920,460,0,2114,2113,1,0,0,0,2114,2115,
	1,0,0,0,2115,2117,1,0,0,0,2116,2118,3,72,36,0,2117,2116,1,0,0,0,2118,2119,
	1,0,0,0,2119,2117,1,0,0,0,2119,2120,1,0,0,0,2120,2121,1,0,0,0,2121,2122,
	5,445,0,0,2122,2123,3,1410,705,0,2123,71,1,0,0,0,2124,2125,5,101,0,0,2125,
	2126,5,1574,0,0,2126,2127,5,695,0,0,2127,2128,3,1002,501,0,2128,2129,5,
	101,0,0,2129,2130,5,1574,0,0,2130,2131,5,2241,0,0,2131,2161,1,0,0,0,2132,
	2133,5,101,0,0,2133,2134,5,422,0,0,2134,2135,5,1451,0,0,2135,2136,5,695,
	0,0,2136,2137,3,1002,501,0,2137,2138,5,101,0,0,2138,2139,5,422,0,0,2139,
	2140,5,1451,0,0,2140,2141,5,2241,0,0,2141,2161,1,0,0,0,2142,2143,5,30,0,
	0,2143,2144,5,1574,0,0,2144,2145,5,695,0,0,2145,2146,3,1002,501,0,2146,
	2147,5,30,0,0,2147,2148,5,1574,0,0,2148,2149,5,2241,0,0,2149,2161,1,0,0,
	0,2150,2151,5,30,0,0,2151,2152,5,422,0,0,2152,2153,5,1451,0,0,2153,2154,
	5,695,0,0,2154,2155,3,1002,501,0,2155,2156,5,30,0,0,2156,2157,5,422,0,0,
	2157,2158,5,1451,0,0,2158,2159,5,2241,0,0,2159,2161,1,0,0,0,2160,2124,1,
	0,0,0,2160,2132,1,0,0,0,2160,2142,1,0,0,0,2160,2150,1,0,0,0,2161,73,1,0,
	0,0,2162,2189,5,39,0,0,2163,2189,5,41,0,0,2164,2165,5,69,0,0,2165,2189,
	5,1577,0,0,2166,2189,5,77,0,0,2167,2189,5,217,0,0,2168,2189,5,288,0,0,2169,
	2170,5,388,0,0,2170,2189,5,1577,0,0,2171,2189,5,411,0,0,2172,2189,5,571,
	0,0,2173,2189,5,940,0,0,2174,2189,5,1404,0,0,2175,2189,5,1434,0,0,2176,
	2189,5,1980,0,0,2177,2189,5,338,0,0,2178,2189,5,1570,0,0,2179,2189,5,1522,
	0,0,2180,2189,5,334,0,0,2181,2189,5,786,0,0,2182,2189,5,785,0,0,2183,2189,
	5,1502,0,0,2184,2189,5,1621,0,0,2185,2189,5,316,0,0,2186,2189,5,1470,0,
	0,2187,2189,5,540,0,0,2188,2162,1,0,0,0,2188,2163,1,0,0,0,2188,2164,1,0,
	0,0,2188,2166,1,0,0,0,2188,2167,1,0,0,0,2188,2168,1,0,0,0,2188,2169,1,0,
	0,0,2188,2171,1,0,0,0,2188,2172,1,0,0,0,2188,2173,1,0,0,0,2188,2174,1,0,
	0,0,2188,2175,1,0,0,0,2188,2176,1,0,0,0,2188,2177,1,0,0,0,2188,2178,1,0,
	0,0,2188,2179,1,0,0,0,2188,2180,1,0,0,0,2188,2181,1,0,0,0,2188,2182,1,0,
	0,0,2188,2183,1,0,0,0,2188,2184,1,0,0,0,2188,2185,1,0,0,0,2188,2186,1,0,
	0,0,2188,2187,1,0,0,0,2189,75,1,0,0,0,2190,2195,3,78,39,0,2191,2192,5,1172,
	0,0,2192,2194,3,78,39,0,2193,2191,1,0,0,0,2194,2197,1,0,0,0,2195,2193,1,
	0,0,0,2195,2196,1,0,0,0,2196,2198,1,0,0,0,2197,2195,1,0,0,0,2198,2200,5,
	1128,0,0,2199,2201,3,80,40,0,2200,2199,1,0,0,0,2200,2201,1,0,0,0,2201,2202,
	1,0,0,0,2202,2203,3,1426,713,0,2203,77,1,0,0,0,2204,2207,7,7,0,0,2205,2206,
	5,1115,0,0,2206,2208,3,1442,721,0,2207,2205,1,0,0,0,2207,2208,1,0,0,0,2208,
	79,1,0,0,0,2209,2210,5,895,0,0,2210,2211,5,1912,0,0,2211,2212,3,1426,713,
	0,2212,2213,5,1115,0,0,2213,81,1,0,0,0,2214,2216,5,1375,0,0,2215,2217,3,
	84,42,0,2216,2215,1,0,0,0,2217,2218,1,0,0,0,2218,2216,1,0,0,0,2218,2219,
	1,0,0,0,2219,83,1,0,0,0,2220,2221,7,8,0,0,2221,2222,3,1352,676,0,2222,85,
	1,0,0,0,2223,2224,5,411,0,0,2224,2226,5,1987,0,0,2225,2227,5,133,0,0,2226,
	2225,1,0,0,0,2226,2227,1,0,0,0,2227,2228,1,0,0,0,2228,2230,3,1400,700,0,
	2229,2231,7,9,0,0,2230,2229,1,0,0,0,2230,2231,1,0,0,0,2231,2232,1,0,0,0,
	2232,2233,5,2241,0,0,2233,87,1,0,0,0,2234,2235,5,39,0,0,2235,2236,5,1987,
	0,0,2236,2243,3,1400,700,0,2237,2244,3,90,45,0,2238,2244,3,92,46,0,2239,
	2244,3,94,47,0,2240,2244,3,102,51,0,2241,2244,3,136,68,0,2242,2244,3,148,
	74,0,2243,2237,1,0,0,0,2243,2238,1,0,0,0,2243,2239,1,0,0,0,2243,2240,1,
	0,0,0,2243,2241,1,0,0,0,2243,2242,1,0,0,0,2244,2246,1,0,0,0,2245,2247,3,
	104,52,0,2246,2245,1,0,0,0,2246,2247,1,0,0,0,2247,2248,1,0,0,0,2248,2249,
	5,2241,0,0,2249,89,1,0,0,0,2250,2252,5,223,0,0,2251,2253,5,340,0,0,2252,
	2251,1,0,0,0,2252,2253,1,0,0,0,2253,2255,1,0,0,0,2254,2256,7,10,0,0,2255,
	2254,1,0,0,0,2255,2256,1,0,0,0,2256,2260,1,0,0,0,2257,2259,3,398,199,0,
	2258,2257,1,0,0,0,2259,2262,1,0,0,0,2260,2258,1,0,0,0,2260,2261,1,0,0,0,
	2261,2265,1,0,0,0,2262,2260,1,0,0,0,2263,2264,5,1432,0,0,2264,2266,5,1512,
	0,0,2265,2263,1,0,0,0,2265,2266,1,0,0,0,2266,91,1,0,0,0,2267,2269,5,1407,
	0,0,2268,2270,3,904,452,0,2269,2268,1,0,0,0,2269,2270,1,0,0,0,2270,2271,
	1,0,0,0,2271,2272,5,61,0,0,2272,2273,5,1107,0,0,2273,2274,5,2223,0,0,2274,
	2279,3,138,69,0,2275,2276,5,2229,0,0,2276,2278,3,138,69,0,2277,2275,1,0,
	0,0,2278,2281,1,0,0,0,2279,2277,1,0,0,0,2279,2280,1,0,0,0,2280,2282,1,0,
	0,0,2281,2279,1,0,0,0,2282,2283,5,2224,0,0,2283,93,1,0,0,0,2284,2289,3,
	96,48,0,2285,2286,5,2229,0,0,2286,2288,3,96,48,0,2287,2285,1,0,0,0,2288,
	2291,1,0,0,0,2289,2287,1,0,0,0,2289,2290,1,0,0,0,2290,95,1,0,0,0,2291,2289,
	1,0,0,0,2292,2295,7,11,0,0,2293,2296,3,158,79,0,2294,2296,3,146,73,0,2295,
	2293,1,0,0,0,2295,2294,1,0,0,0,2296,97,1,0,0,0,2297,2298,7,12,0,0,2298,
	2311,5,75,0,0,2299,2312,3,100,50,0,2300,2301,5,2223,0,0,2301,2306,3,100,
	50,0,2302,2303,5,2229,0,0,2303,2305,3,100,50,0,2304,2302,1,0,0,0,2305,2308,
	1,0,0,0,2306,2304,1,0,0,0,2306,2307,1,0,0,0,2307,2309,1,0,0,0,2308,2306,
	1,0,0,0,2309,2310,5,2224,0,0,2310,2312,1,0,0,0,2311,2299,1,0,0,0,2311,2300,
	1,0,0,0,2312,99,1,0,0,0,2313,2315,3,1364,682,0,2314,2316,3,1458,729,0,2315,
	2314,1,0,0,0,2315,2316,1,0,0,0,2316,101,1,0,0,0,2317,2323,5,863,0,0,2318,
	2319,5,758,0,0,2319,2324,3,1234,617,0,2320,2321,5,427,0,0,2321,2322,5,1987,
	0,0,2322,2324,3,1458,729,0,2323,2318,1,0,0,0,2323,2320,1,0,0,0,2324,103,
	1,0,0,0,2325,2342,5,692,0,0,2326,2336,5,162,0,0,2327,2328,5,269,0,0,2328,
	2329,5,1964,0,0,2329,2337,5,1611,0,0,2330,2332,5,1073,0,0,2331,2330,1,0,
	0,0,2331,2332,1,0,0,0,2332,2333,1,0,0,0,2333,2334,5,619,0,0,2334,2335,5,
	1912,0,0,2335,2337,5,317,0,0,2336,2327,1,0,0,0,2336,2331,1,0,0,0,2336,2337,
	1,0,0,0,2337,2339,1,0,0,0,2338,2340,3,106,53,0,2339,2338,1,0,0,0,2339,2340,
	1,0,0,0,2340,2342,1,0,0,0,2341,2325,1,0,0,0,2341,2326,1,0,0,0,2342,105,
	1,0,0,0,2343,2345,5,542,0,0,2344,2343,1,0,0,0,2344,2345,1,0,0,0,2345,2346,
	1,0,0,0,2346,2347,5,470,0,0,2347,2348,5,691,0,0,2348,2349,3,1426,713,0,
	2349,107,1,0,0,0,2350,2353,5,288,0,0,2351,2352,5,1172,0,0,2352,2354,5,1407,
	0,0,2353,2351,1,0,0,0,2353,2354,1,0,0,0,2354,2355,1,0,0,0,2355,2358,5,1987,
	0,0,2356,2359,3,110,55,0,2357,2359,3,122,61,0,2358,2356,1,0,0,0,2358,2357,
	1,0,0,0,2359,2360,1,0,0,0,2360,2361,5,2241,0,0,2361,109,1,0,0,0,2362,2365,
	3,1400,700,0,2363,2364,5,1117,0,0,2364,2366,5,2219,0,0,2365,2363,1,0,0,
	0,2365,2366,1,0,0,0,2366,2368,1,0,0,0,2367,2369,3,112,56,0,2368,2367,1,
	0,0,0,2368,2369,1,0,0,0,2369,111,1,0,0,0,2370,2372,3,904,452,0,2371,2370,
	1,0,0,0,2371,2372,1,0,0,0,2372,2375,1,0,0,0,2373,2376,3,114,57,0,2374,2376,
	3,116,58,0,2375,2373,1,0,0,0,2375,2374,1,0,0,0,2376,2378,1,0,0,0,2377,2379,
	3,120,60,0,2378,2377,1,0,0,0,2378,2379,1,0,0,0,2379,2391,1,0,0,0,2380,2381,
	5,2223,0,0,2381,2386,3,138,69,0,2382,2383,5,2229,0,0,2383,2385,3,138,69,
	0,2384,2382,1,0,0,0,2385,2388,1,0,0,0,2386,2384,1,0,0,0,2386,2387,1,0,0,
	0,2387,2389,1,0,0,0,2388,2386,1,0,0,0,2389,2390,5,2224,0,0,2390,2392,1,
	0,0,0,2391,2380,1,0,0,0,2391,2392,1,0,0,0,2392,2396,1,0,0,0,2393,2395,3,
	136,68,0,2394,2393,1,0,0,0,2395,2398,1,0,0,0,2396,2394,1,0,0,0,2396,2397,
	1,0,0,0,2397,113,1,0,0,0,2398,2396,1,0,0,0,2399,2403,7,0,0,0,2400,2404,
	5,1107,0,0,2401,2404,3,948,474,0,2402,2404,3,118,59,0,2403,2400,1,0,0,0,
	2403,2401,1,0,0,0,2403,2402,1,0,0,0,2404,115,1,0,0,0,2405,2406,5,1997,0,
	0,2406,2407,3,1458,729,0,2407,117,1,0,0,0,2408,2409,5,1912,0,0,2409,2410,
	5,1115,0,0,2410,2413,3,1458,729,0,2411,2412,5,1073,0,0,2412,2414,5,1097,
	0,0,2413,2411,1,0,0,0,2413,2414,1,0,0,0,2414,119,1,0,0,0,2415,2416,5,493,
	0,0,2416,2417,5,879,0,0,2417,2418,3,1234,617,0,2418,2419,5,729,0,0,2419,
	2420,5,700,0,0,2420,2421,5,2063,0,0,2421,2422,7,13,0,0,2422,121,1,0,0,0,
	2423,2424,5,133,0,0,2424,2425,3,1400,700,0,2425,2427,7,0,0,0,2426,2428,
	3,124,62,0,2427,2426,1,0,0,0,2428,2429,1,0,0,0,2429,2427,1,0,0,0,2429,2430,
	1,0,0,0,2430,2431,1,0,0,0,2431,2432,5,445,0,0,2432,123,1,0,0,0,2433,2437,
	3,126,63,0,2434,2437,3,128,64,0,2435,2437,3,148,74,0,2436,2433,1,0,0,0,
	2436,2434,1,0,0,0,2436,2435,1,0,0,0,2437,125,1,0,0,0,2438,2439,7,14,0,0,
	2439,2440,5,826,0,0,2440,2441,3,132,66,0,2441,127,1,0,0,0,2442,2446,7,15,
	0,0,2443,2447,3,130,65,0,2444,2447,3,132,66,0,2445,2447,3,134,67,0,2446,
	2443,1,0,0,0,2446,2444,1,0,0,0,2446,2445,1,0,0,0,2447,129,1,0,0,0,2448,
	2449,5,1314,0,0,2449,2450,3,1408,704,0,2450,2451,5,2223,0,0,2451,2456,3,
	164,82,0,2452,2453,5,2229,0,0,2453,2455,3,164,82,0,2454,2452,1,0,0,0,2455,
	2458,1,0,0,0,2456,2454,1,0,0,0,2456,2457,1,0,0,0,2457,2459,1,0,0,0,2458,
	2456,1,0,0,0,2459,2460,5,2224,0,0,2460,2471,7,0,0,0,2461,2472,3,906,453,
	0,2462,2464,5,344,0,0,2463,2462,1,0,0,0,2463,2464,1,0,0,0,2464,2466,1,0,
	0,0,2465,2467,3,920,460,0,2466,2465,1,0,0,0,2466,2467,1,0,0,0,2467,2468,
	1,0,0,0,2468,2469,3,998,499,0,2469,2470,5,2241,0,0,2470,2472,1,0,0,0,2471,
	2461,1,0,0,0,2471,2463,1,0,0,0,2472,131,1,0,0,0,2473,2474,5,558,0,0,2474,
	2486,3,1406,703,0,2475,2476,5,2223,0,0,2476,2481,3,164,82,0,2477,2478,5,
	2229,0,0,2478,2480,3,164,82,0,2479,2477,1,0,0,0,2480,2483,1,0,0,0,2481,
	2479,1,0,0,0,2481,2482,1,0,0,0,2482,2484,1,0,0,0,2483,2481,1,0,0,0,2484,
	2485,5,2224,0,0,2485,2487,1,0,0,0,2486,2475,1,0,0,0,2486,2487,1,0,0,0,2487,
	2488,1,0,0,0,2488,2489,5,1431,0,0,2489,2490,3,1458,729,0,2490,2501,7,0,
	0,0,2491,2502,3,906,453,0,2492,2494,5,344,0,0,2493,2492,1,0,0,0,2493,2494,
	1,0,0,0,2494,2496,1,0,0,0,2495,2497,3,920,460,0,2496,2495,1,0,0,0,2496,
	2497,1,0,0,0,2497,2498,1,0,0,0,2498,2499,3,998,499,0,2499,2500,5,2241,0,
	0,2500,2502,1,0,0,0,2501,2491,1,0,0,0,2501,2493,1,0,0,0,2502,133,1,0,0,
	0,2503,2505,5,523,0,0,2504,2503,1,0,0,0,2504,2505,1,0,0,0,2505,2507,1,0,
	0,0,2506,2508,5,674,0,0,2507,2506,1,0,0,0,2507,2508,1,0,0,0,2508,2509,1,
	0,0,0,2509,2510,5,259,0,0,2510,2511,5,558,0,0,2511,2529,3,1458,729,0,2512,
	2513,5,2223,0,0,2513,2514,5,1491,0,0,2514,2515,5,652,0,0,2515,2516,5,1182,
	0,0,2516,2517,3,1458,729,0,2517,2518,5,2229,0,0,2518,2519,1,0,0,0,2519,
	2524,3,164,82,0,2520,2521,5,2229,0,0,2521,2523,3,164,82,0,2522,2520,1,0,
	0,0,2523,2526,1,0,0,0,2524,2522,1,0,0,0,2524,2525,1,0,0,0,2525,2527,1,0,
	0,0,2526,2524,1,0,0,0,2527,2528,5,2224,0,0,2528,2530,1,0,0,0,2529,2512,
	1,0,0,0,2529,2530,1,0,0,0,2530,2531,1,0,0,0,2531,2532,5,1431,0,0,2532,2533,
	5,1491,0,0,2533,2534,5,61,0,0,2534,2535,5,1425,0,0,2535,2546,7,0,0,0,2536,
	2547,3,906,453,0,2537,2539,5,344,0,0,2538,2537,1,0,0,0,2538,2539,1,0,0,
	0,2539,2541,1,0,0,0,2540,2542,3,920,460,0,2541,2540,1,0,0,0,2541,2542,1,
	0,0,0,2542,2543,1,0,0,0,2543,2544,3,998,499,0,2544,2545,5,2241,0,0,2545,
	2547,1,0,0,0,2546,2536,1,0,0,0,2546,2538,1,0,0,0,2547,135,1,0,0,0,2548,
	2550,5,1073,0,0,2549,2548,1,0,0,0,2549,2550,1,0,0,0,2550,2551,1,0,0,0,2551,
	2552,7,16,0,0,2552,137,1,0,0,0,2553,2554,3,1486,743,0,2554,2556,3,1458,
	729,0,2555,2557,3,140,70,0,2556,2555,1,0,0,0,2556,2557,1,0,0,0,2557,2560,
	1,0,0,0,2558,2560,3,142,71,0,2559,2553,1,0,0,0,2559,2558,1,0,0,0,2560,139,
	1,0,0,0,2561,2562,5,493,0,0,2562,2563,5,879,0,0,2563,2564,3,1234,617,0,
	2564,141,1,0,0,0,2565,2567,3,136,68,0,2566,2565,1,0,0,0,2566,2567,1,0,0,
	0,2567,2569,1,0,0,0,2568,2570,3,144,72,0,2569,2568,1,0,0,0,2570,2571,1,
	0,0,0,2571,2569,1,0,0,0,2571,2572,1,0,0,0,2572,2575,1,0,0,0,2573,2574,5,
	2229,0,0,2574,2576,3,160,80,0,2575,2573,1,0,0,0,2575,2576,1,0,0,0,2576,
	143,1,0,0,0,2577,2581,3,146,73,0,2578,2581,3,156,78,0,2579,2581,3,158,79,
	0,2580,2577,1,0,0,0,2580,2578,1,0,0,0,2580,2579,1,0,0,0,2581,145,1,0,0,
	0,2582,2585,7,15,0,0,2583,2586,3,152,76,0,2584,2586,3,154,77,0,2585,2583,
	1,0,0,0,2585,2584,1,0,0,0,2586,147,1,0,0,0,2587,2588,5,1187,0,0,2588,2589,
	5,826,0,0,2589,2590,3,150,75,0,2590,149,1,0,0,0,2591,2592,5,558,0,0,2592,
	2604,3,1406,703,0,2593,2594,5,2223,0,0,2594,2599,3,164,82,0,2595,2596,5,
	2229,0,0,2596,2598,3,164,82,0,2597,2595,1,0,0,0,2598,2601,1,0,0,0,2599,
	2597,1,0,0,0,2599,2600,1,0,0,0,2600,2602,1,0,0,0,2601,2599,1,0,0,0,2602,
	2603,5,2224,0,0,2603,2605,1,0,0,0,2604,2593,1,0,0,0,2604,2605,1,0,0,0,2605,
	2606,1,0,0,0,2606,2611,5,1431,0,0,2607,2612,3,1458,729,0,2608,2609,5,1491,
	0,0,2609,2610,5,61,0,0,2610,2612,5,1425,0,0,2611,2607,1,0,0,0,2611,2608,
	1,0,0,0,2612,2624,1,0,0,0,2613,2615,5,1250,0,0,2614,2613,1,0,0,0,2614,2615,
	1,0,0,0,2615,2616,1,0,0,0,2616,2618,7,0,0,0,2617,2619,5,344,0,0,2618,2617,
	1,0,0,0,2618,2619,1,0,0,0,2619,2621,1,0,0,0,2620,2622,3,920,460,0,2621,
	2620,1,0,0,0,2621,2622,1,0,0,0,2622,2623,1,0,0,0,2623,2625,3,998,499,0,
	2624,2614,1,0,0,0,2624,2625,1,0,0,0,2625,2627,1,0,0,0,2626,2628,5,2241,
	0,0,2627,2626,1,0,0,0,2627,2628,1,0,0,0,2628,151,1,0,0,0,2629,2630,5,1314,
	0,0,2630,2631,3,1408,704,0,2631,2632,5,2223,0,0,2632,2637,3,164,82,0,2633,
	2634,5,2229,0,0,2634,2636,3,164,82,0,2635,2633,1,0,0,0,2636,2639,1,0,0,
	0,2637,2635,1,0,0,0,2637,2638,1,0,0,0,2638,2640,1,0,0,0,2639,2637,1,0,0,
	0,2640,2643,5,2224,0,0,2641,2642,7,0,0,0,2642,2644,3,906,453,0,2643,2641,
	1,0,0,0,2643,2644,1,0,0,0,2644,153,1,0,0,0,2645,2646,5,558,0,0,2646,2658,
	3,1406,703,0,2647,2648,5,2223,0,0,2648,2653,3,164,82,0,2649,2650,5,2229,
	0,0,2650,2652,3,164,82,0,2651,2649,1,0,0,0,2652,2655,1,0,0,0,2653,2651,
	1,0,0,0,2653,2654,1,0,0,0,2654,2656,1,0,0,0,2655,2653,1,0,0,0,2656,2657,
	5,2224,0,0,2657,2659,1,0,0,0,2658,2647,1,0,0,0,2658,2659,1,0,0,0,2659,2660,
	1,0,0,0,2660,2665,5,1431,0,0,2661,2666,3,1458,729,0,2662,2663,5,1491,0,
	0,2663,2664,5,61,0,0,2664,2666,5,1425,0,0,2665,2661,1,0,0,0,2665,2662,1,
	0,0,0,2666,2675,1,0,0,0,2667,2668,7,0,0,0,2668,2676,3,906,453,0,2669,2671,
	5,493,0,0,2670,2672,5,2077,0,0,2671,2670,1,0,0,0,2671,2672,1,0,0,0,2672,
	2673,1,0,0,0,2673,2674,5,879,0,0,2674,2676,3,1234,617,0,2675,2667,1,0,0,
	0,2675,2669,1,0,0,0,2675,2676,1,0,0,0,2676,155,1,0,0,0,2677,2679,5,523,
	0,0,2678,2677,1,0,0,0,2678,2679,1,0,0,0,2679,2681,1,0,0,0,2680,2682,5,674,
	0,0,2681,2680,1,0,0,0,2681,2682,1,0,0,0,2682,2683,1,0,0,0,2683,2684,5,259,
	0,0,2684,2685,5,558,0,0,2685,2703,3,1458,729,0,2686,2687,5,2223,0,0,2687,
	2688,5,1491,0,0,2688,2689,5,652,0,0,2689,2690,5,1182,0,0,2690,2691,3,1458,
	729,0,2691,2692,5,2229,0,0,2692,2693,1,0,0,0,2693,2698,3,164,82,0,2694,
	2695,5,2229,0,0,2695,2697,3,164,82,0,2696,2694,1,0,0,0,2697,2700,1,0,0,
	0,2698,2696,1,0,0,0,2698,2699,1,0,0,0,2699,2701,1,0,0,0,2700,2698,1,0,0,
	0,2701,2702,5,2224,0,0,2702,2704,1,0,0,0,2703,2686,1,0,0,0,2703,2704,1,
	0,0,0,2704,2705,1,0,0,0,2705,2706,5,1431,0,0,2706,2707,5,1491,0,0,2707,
	2708,5,61,0,0,2708,2711,5,1425,0,0,2709,2710,7,0,0,0,2710,2712,3,906,453,
	0,2711,2709,1,0,0,0,2711,2712,1,0,0,0,2712,157,1,0,0,0,2713,2714,7,14,0,
	0,2714,2715,5,826,0,0,2715,2716,3,154,77,0,2716,159,1,0,0,0,2717,2718,5,
	1287,0,0,2718,2719,5,1422,0,0,2719,2720,5,2223,0,0,2720,2725,3,162,81,0,
	2721,2722,5,2229,0,0,2722,2724,3,162,81,0,2723,2721,1,0,0,0,2724,2727,1,
	0,0,0,2725,2723,1,0,0,0,2725,2726,1,0,0,0,2726,2728,1,0,0,0,2727,2725,1,
	0,0,0,2728,2729,5,2224,0,0,2729,161,1,0,0,0,2730,2733,3,1486,743,0,2731,
	2733,5,351,0,0,2732,2730,1,0,0,0,2732,2731,1,0,0,0,2733,163,1,0,0,0,2734,
	2735,3,1380,690,0,2735,2736,3,1458,729,0,2736,165,1,0,0,0,2737,2738,5,411,
	0,0,2738,2739,5,1496,0,0,2739,2740,3,1402,701,0,2740,2741,5,2241,0,0,2741,
	167,1,0,0,0,2742,2743,5,39,0,0,2743,2744,5,1496,0,0,2744,2746,3,1402,701,
	0,2745,2747,3,176,88,0,2746,2745,1,0,0,0,2747,2748,1,0,0,0,2748,2746,1,
	0,0,0,2748,2749,1,0,0,0,2749,2750,1,0,0,0,2750,2751,5,2241,0,0,2751,169,
	1,0,0,0,2752,2753,5,39,0,0,2753,2783,5,1506,0,0,2754,2755,5,27,0,0,2755,
	2784,7,17,0,0,2756,2757,5,195,0,0,2757,2758,5,316,0,0,2758,2759,5,760,0,
	0,2759,2784,3,1380,690,0,2760,2761,3,648,324,0,2761,2762,5,218,0,0,2762,
	2763,5,652,0,0,2763,2764,5,1314,0,0,2764,2784,1,0,0,0,2765,2766,3,648,324,
	0,2766,2767,5,580,0,0,2767,2784,1,0,0,0,2768,2771,3,648,324,0,2769,2771,
	5,542,0,0,2770,2768,1,0,0,0,2770,2769,1,0,0,0,2771,2772,1,0,0,0,2772,2773,
	5,1195,0,0,2773,2779,7,18,0,0,2774,2777,5,1195,0,0,2775,2778,3,1290,645,
	0,2776,2778,3,1380,690,0,2777,2775,1,0,0,0,2777,2776,1,0,0,0,2778,2780,
	1,0,0,0,2779,2774,1,0,0,0,2779,2780,1,0,0,0,2780,2784,1,0,0,0,2781,2782,
	5,1510,0,0,2782,2784,3,172,86,0,2783,2754,1,0,0,0,2783,2756,1,0,0,0,2783,
	2760,1,0,0,0,2783,2765,1,0,0,0,2783,2770,1,0,0,0,2783,2781,1,0,0,0,2784,
	171,1,0,0,0,2785,2786,3,1380,690,0,2786,2787,5,2243,0,0,2787,2788,3,400,
	200,0,2788,173,1,0,0,0,2789,2790,5,288,0,0,2790,2791,5,1496,0,0,2791,2796,
	3,1402,701,0,2792,2795,3,178,89,0,2793,2795,3,176,88,0,2794,2792,1,0,0,
	0,2794,2793,1,0,0,0,2795,2798,1,0,0,0,2796,2794,1,0,0,0,2796,2797,1,0,0,
	0,2797,2799,1,0,0,0,2798,2796,1,0,0,0,2799,2800,5,2241,0,0,2800,175,1,0,
	0,0,2801,2802,5,621,0,0,2802,2803,5,146,0,0,2803,2818,5,2217,0,0,2804,2805,
	5,822,0,0,2805,2818,5,2217,0,0,2806,2818,5,995,0,0,2807,2808,5,845,0,0,
	2808,2818,5,2217,0,0,2809,2818,5,998,0,0,2810,2818,5,314,0,0,2811,2818,
	5,963,0,0,2812,2813,5,150,0,0,2813,2818,5,2217,0,0,2814,2818,5,946,0,0,
	2815,2818,5,1168,0,0,2816,2818,5,1013,0,0,2817,2801,1,0,0,0,2817,2804,1,
	0,0,0,2817,2806,1,0,0,0,2817,2807,1,0,0,0,2817,2809,1,0,0,0,2817,2810,1,
	0,0,0,2817,2811,1,0,0,0,2817,2812,1,0,0,0,2817,2814,1,0,0,0,2817,2815,1,
	0,0,0,2817,2816,1,0,0,0,2818,177,1,0,0,0,2819,2820,5,1569,0,0,2820,2821,
	5,2121,0,0,2821,2822,5,2217,0,0,2822,179,1,0,0,0,2823,2825,5,288,0,0,2824,
	2826,7,19,0,0,2825,2824,1,0,0,0,2825,2826,1,0,0,0,2826,2827,1,0,0,0,2827,
	2828,5,631,0,0,2828,2829,3,1414,707,0,2829,2833,5,1128,0,0,2830,2834,3,
	182,91,0,2831,2834,3,186,93,0,2832,2834,3,188,94,0,2833,2830,1,0,0,0,2833,
	2831,1,0,0,0,2833,2832,1,0,0,0,2834,2836,1,0,0,0,2835,2837,5,2021,0,0,2836,
	2835,1,0,0,0,2836,2837,1,0,0,0,2837,2838,1,0,0,0,2838,2839,5,2241,0,0,2839,
	181,1,0,0,0,2840,2841,5,197,0,0,2841,2843,3,184,92,0,2842,2844,3,768,384,
	0,2843,2842,1,0,0,0,2843,2844,1,0,0,0,2844,183,1,0,0,0,2845,2846,3,1488,
	744,0,2846,2847,5,2216,0,0,2847,2849,1,0,0,0,2848,2845,1,0,0,0,2848,2849,
	1,0,0,0,2849,2850,1,0,0,0,2850,2851,3,1488,744,0,2851,185,1,0,0,0,2852,
	2854,3,1426,713,0,2853,2855,3,1354,677,0,2854,2853,1,0,0,0,2854,2855,1,
	0,0,0,2855,2856,1,0,0,0,2856,2857,5,2223,0,0,2857,2859,3,190,95,0,2858,
	2860,7,20,0,0,2859,2858,1,0,0,0,2859,2860,1,0,0,0,2860,2868,1,0,0,0,2861,
	2862,5,2229,0,0,2862,2864,3,190,95,0,2863,2865,7,20,0,0,2864,2863,1,0,0,
	0,2864,2865,1,0,0,0,2865,2867,1,0,0,0,2866,2861,1,0,0,0,2867,2870,1,0,0,
	0,2868,2866,1,0,0,0,2868,2869,1,0,0,0,2869,2871,1,0,0,0,2870,2868,1,0,0,
	0,2871,2873,5,2224,0,0,2872,2874,3,192,96,0,2873,2872,1,0,0,0,2873,2874,
	1,0,0,0,2874,187,1,0,0,0,2875,2876,3,1426,713,0,2876,2879,5,2223,0,0,2877,
	2880,3,1426,713,0,2878,2880,3,1354,677,0,2879,2877,1,0,0,0,2879,2878,1,
	0,0,0,2879,2880,1,0,0,0,2880,2881,1,0,0,0,2881,2883,3,1424,712,0,2882,2884,
	7,20,0,0,2883,2882,1,0,0,0,2883,2884,1,0,0,0,2884,2896,1,0,0,0,2885,2888,
	5,2229,0,0,2886,2889,3,1426,713,0,2887,2889,3,1354,677,0,2888,2886,1,0,
	0,0,2888,2887,1,0,0,0,2888,2889,1,0,0,0,2889,2890,1,0,0,0,2890,2892,3,1424,
	712,0,2891,2893,7,20,0,0,2892,2891,1,0,0,0,2892,2893,1,0,0,0,2893,2895,
	1,0,0,0,2894,2885,1,0,0,0,2895,2898,1,0,0,0,2896,2894,1,0,0,0,2896,2897,
	1,0,0,0,2897,2899,1,0,0,0,2898,2896,1,0,0,0,2899,2900,5,2224,0,0,2900,2901,
	5,554,0,0,2901,2902,3,1426,713,0,2902,2909,3,1354,677,0,2903,2904,5,2229,
	0,0,2904,2905,3,1426,713,0,2905,2906,3,1354,677,0,2906,2908,1,0,0,0,2907,
	2903,1,0,0,0,2908,2911,1,0,0,0,2909,2907,1,0,0,0,2909,2910,1,0,0,0,2910,
	2912,1,0,0,0,2911,2909,1,0,0,0,2912,2914,3,1356,678,0,2913,2915,3,206,103,
	0,2914,2913,1,0,0,0,2914,2915,1,0,0,0,2915,2917,1,0,0,0,2916,2918,3,768,
	384,0,2917,2916,1,0,0,0,2917,2918,1,0,0,0,2918,189,1,0,0,0,2919,2922,3,
	1424,712,0,2920,2922,3,1234,617,0,2921,2919,1,0,0,0,2921,2920,1,0,0,0,2922,
	191,1,0,0,0,2923,2927,3,202,101,0,2924,2927,3,206,103,0,2925,2927,3,768,
	384,0,2926,2923,1,0,0,0,2926,2924,1,0,0,0,2926,2925,1,0,0,0,2927,2928,1,
	0,0,0,2928,2926,1,0,0,0,2928,2929,1,0,0,0,2929,2937,1,0,0,0,2930,2931,5,
	645,0,0,2931,2934,5,695,0,0,2932,2935,3,194,97,0,2933,2935,3,198,99,0,2934,
	2932,1,0,0,0,2934,2933,1,0,0,0,2935,2937,1,0,0,0,2936,2926,1,0,0,0,2936,
	2930,1,0,0,0,2937,193,1,0,0,0,2938,2940,3,228,114,0,2939,2941,3,196,98,
	0,2940,2939,1,0,0,0,2940,2941,1,0,0,0,2941,2943,1,0,0,0,2942,2944,3,474,
	237,0,2943,2942,1,0,0,0,2943,2944,1,0,0,0,2944,2950,1,0,0,0,2945,2946,5,
	1197,0,0,2946,2947,5,2223,0,0,2947,2948,3,226,113,0,2948,2949,5,2224,0,
	0,2949,2951,1,0,0,0,2950,2945,1,0,0,0,2950,2951,1,0,0,0,2951,195,1,0,0,
	0,2952,2980,5,769,0,0,2953,2954,5,2223,0,0,2954,2955,5,1207,0,0,2955,2961,
	3,862,431,0,2956,2957,5,1197,0,0,2957,2958,5,2223,0,0,2958,2959,3,226,113,
	0,2959,2960,5,2224,0,0,2960,2962,1,0,0,0,2961,2956,1,0,0,0,2961,2962,1,
	0,0,0,2962,2975,1,0,0,0,2963,2964,5,2229,0,0,2964,2965,5,1207,0,0,2965,
	2971,3,862,431,0,2966,2967,5,1197,0,0,2967,2968,5,2223,0,0,2968,2969,3,
	226,113,0,2969,2970,5,2224,0,0,2970,2972,1,0,0,0,2971,2966,1,0,0,0,2971,
	2972,1,0,0,0,2972,2974,1,0,0,0,2973,2963,1,0,0,0,2974,2977,1,0,0,0,2975,
	2973,1,0,0,0,2975,2976,1,0,0,0,2976,2978,1,0,0,0,2977,2975,1,0,0,0,2978,
	2979,5,2224,0,0,2979,2981,1,0,0,0,2980,2953,1,0,0,0,2980,2981,1,0,0,0,2981,
	197,1,0,0,0,2982,2983,5,2127,0,0,2983,2985,5,2216,0,0,2984,2982,1,0,0,0,
	2984,2985,1,0,0,0,2985,2986,1,0,0,0,2986,2988,5,2144,0,0,2987,2989,3,200,
	100,0,2988,2987,1,0,0,0,2988,2989,1,0,0,0,2989,2991,1,0,0,0,2990,2992,3,
	474,237,0,2991,2990,1,0,0,0,2991,2992,1,0,0,0,2992,199,1,0,0,0,2993,3007,
	5,769,0,0,2994,2995,5,2223,0,0,2995,2996,5,1207,0,0,2996,3002,3,862,431,
	0,2997,2998,5,2229,0,0,2998,2999,5,1207,0,0,2999,3001,3,862,431,0,3000,
	2997,1,0,0,0,3001,3004,1,0,0,0,3002,3000,1,0,0,0,3002,3003,1,0,0,0,3003,
	3005,1,0,0,0,3004,3002,1,0,0,0,3005,3006,5,2224,0,0,3006,3008,1,0,0,0,3007,
	2994,1,0,0,0,3007,3008,1,0,0,0,3008,201,1,0,0,0,3009,3010,5,566,0,0,3010,
	3011,5,1207,0,0,3011,3042,5,146,0,0,3012,3013,5,1344,0,0,3013,3014,5,2223,
	0,0,3014,3019,3,1424,712,0,3015,3016,5,2229,0,0,3016,3018,3,1424,712,0,
	3017,3015,1,0,0,0,3018,3021,1,0,0,0,3019,3017,1,0,0,0,3019,3020,1,0,0,0,
	3020,3022,1,0,0,0,3021,3019,1,0,0,0,3022,3023,5,2224,0,0,3023,3024,5,2223,
	0,0,3024,3025,3,204,102,0,3025,3026,5,2224,0,0,3026,3043,1,0,0,0,3027,3028,
	5,582,0,0,3028,3029,5,2223,0,0,3029,3034,3,1424,712,0,3030,3031,5,2229,
	0,0,3031,3033,3,1424,712,0,3032,3030,1,0,0,0,3033,3036,1,0,0,0,3034,3032,
	1,0,0,0,3034,3035,1,0,0,0,3035,3037,1,0,0,0,3036,3034,1,0,0,0,3037,3040,
	5,2224,0,0,3038,3041,3,552,276,0,3039,3041,3,554,277,0,3040,3038,1,0,0,
	0,3040,3039,1,0,0,0,3041,3043,1,0,0,0,3042,3012,1,0,0,0,3042,3027,1,0,0,
	0,3043,203,1,0,0,0,3044,3046,5,1207,0,0,3045,3047,3,862,431,0,3046,3045,
	1,0,0,0,3046,3047,1,0,0,0,3047,3048,1,0,0,0,3048,3049,5,2073,0,0,3049,3050,
	5,746,0,0,3050,3051,5,1924,0,0,3051,3052,5,2223,0,0,3052,3057,3,1290,645,
	0,3053,3054,5,2229,0,0,3054,3056,3,1290,645,0,3055,3053,1,0,0,0,3056,3059,
	1,0,0,0,3057,3055,1,0,0,0,3057,3058,1,0,0,0,3058,3060,1,0,0,0,3059,3057,
	1,0,0,0,3060,3062,5,2224,0,0,3061,3063,3,616,308,0,3062,3061,1,0,0,0,3062,
	3063,1,0,0,0,3063,205,1,0,0,0,3064,3069,5,769,0,0,3065,3070,3,208,104,0,
	3066,3070,3,210,105,0,3067,3070,3,214,107,0,3068,3070,3,218,109,0,3069,
	3065,1,0,0,0,3069,3066,1,0,0,0,3069,3067,1,0,0,0,3069,3068,1,0,0,0,3069,
	3070,1,0,0,0,3070,207,1,0,0,0,3071,3072,5,2223,0,0,3072,3077,3,212,106,
	0,3073,3074,5,2229,0,0,3074,3076,3,212,106,0,3075,3073,1,0,0,0,3076,3079,
	1,0,0,0,3077,3075,1,0,0,0,3077,3078,1,0,0,0,3078,3080,1,0,0,0,3079,3077,
	1,0,0,0,3080,3081,5,2224,0,0,3081,209,1,0,0,0,3082,3083,5,2223,0,0,3083,
	3088,3,212,106,0,3084,3085,5,2229,0,0,3085,3087,3,212,106,0,3086,3084,1,
	0,0,0,3087,3090,1,0,0,0,3088,3086,1,0,0,0,3088,3089,1,0,0,0,3089,3091,1,
	0,0,0,3090,3088,1,0,0,0,3091,3092,5,2224,0,0,3092,211,1,0,0,0,3093,3095,
	5,1207,0,0,3094,3096,3,862,431,0,3095,3094,1,0,0,0,3095,3096,1,0,0,0,3096,
	3101,1,0,0,0,3097,3100,3,616,308,0,3098,3100,3,780,390,0,3099,3097,1,0,
	0,0,3099,3098,1,0,0,0,3100,3103,1,0,0,0,3101,3099,1,0,0,0,3101,3102,1,0,
	0,0,3102,3105,1,0,0,0,3103,3101,1,0,0,0,3104,3106,5,2021,0,0,3105,3104,
	1,0,0,0,3105,3106,1,0,0,0,3106,213,1,0,0,0,3107,3108,5,1594,0,0,3108,3109,
	5,652,0,0,3109,3110,5,2223,0,0,3110,3115,3,836,418,0,3111,3112,5,2229,0,
	0,3112,3114,3,836,418,0,3113,3111,1,0,0,0,3114,3117,1,0,0,0,3115,3113,1,
	0,0,0,3115,3116,1,0,0,0,3116,3118,1,0,0,0,3117,3115,1,0,0,0,3118,3119,5,
	2224,0,0,3119,3132,1,0,0,0,3120,3121,5,2223,0,0,3121,3126,3,216,108,0,3122,
	3123,5,2229,0,0,3123,3125,3,216,108,0,3124,3122,1,0,0,0,3125,3128,1,0,0,
	0,3126,3124,1,0,0,0,3126,3127,1,0,0,0,3127,3129,1,0,0,0,3128,3126,1,0,0,
	0,3129,3130,5,2224,0,0,3130,3132,1,0,0,0,3131,3107,1,0,0,0,3131,3120,1,
	0,0,0,3132,215,1,0,0,0,3133,3135,5,1207,0,0,3134,3136,3,862,431,0,3135,
	3134,1,0,0,0,3135,3136,1,0,0,0,3136,3139,1,0,0,0,3137,3138,5,1909,0,0,3138,
	3140,3,836,418,0,3139,3137,1,0,0,0,3139,3140,1,0,0,0,3140,3142,1,0,0,0,
	3141,3143,3,780,390,0,3142,3141,1,0,0,0,3142,3143,1,0,0,0,3143,3145,1,0,
	0,0,3144,3146,5,2021,0,0,3145,3144,1,0,0,0,3145,3146,1,0,0,0,3146,217,1,
	0,0,0,3147,3148,5,1594,0,0,3148,3149,5,652,0,0,3149,3150,5,2223,0,0,3150,
	3155,3,836,418,0,3151,3152,5,2229,0,0,3152,3154,3,836,418,0,3153,3151,1,
	0,0,0,3154,3157,1,0,0,0,3155,3153,1,0,0,0,3155,3156,1,0,0,0,3156,3158,1,
	0,0,0,3157,3155,1,0,0,0,3158,3159,5,2224,0,0,3159,3161,1,0,0,0,3160,3147,
	1,0,0,0,3160,3161,1,0,0,0,3161,3162,1,0,0,0,3162,3163,5,2223,0,0,3163,3168,
	3,220,110,0,3164,3165,5,2229,0,0,3165,3167,3,220,110,0,3166,3164,1,0,0,
	0,3167,3170,1,0,0,0,3168,3166,1,0,0,0,3168,3169,1,0,0,0,3169,3171,1,0,0,
	0,3170,3168,1,0,0,0,3171,3172,5,2224,0,0,3172,219,1,0,0,0,3173,3175,5,1207,
	0,0,3174,3176,3,862,431,0,3175,3174,1,0,0,0,3175,3176,1,0,0,0,3176,3181,
	1,0,0,0,3177,3180,3,616,308,0,3178,3180,3,780,390,0,3179,3177,1,0,0,0,3179,
	3178,1,0,0,0,3180,3183,1,0,0,0,3181,3179,1,0,0,0,3181,3182,1,0,0,0,3182,
	3184,1,0,0,0,3183,3181,1,0,0,0,3184,3186,5,2021,0,0,3185,3187,3,222,111,
	0,3186,3185,1,0,0,0,3186,3187,1,0,0,0,3187,221,1,0,0,0,3188,3189,5,1594,
	0,0,3189,3190,5,652,0,0,3190,3191,5,2223,0,0,3191,3196,3,836,418,0,3192,
	3193,5,2229,0,0,3193,3195,3,836,418,0,3194,3192,1,0,0,0,3195,3198,1,0,0,
	0,3196,3194,1,0,0,0,3196,3197,1,0,0,0,3197,3199,1,0,0,0,3198,3196,1,0,0,
	0,3199,3200,5,2224,0,0,3200,3213,1,0,0,0,3201,3202,5,2223,0,0,3202,3207,
	3,224,112,0,3203,3204,5,2229,0,0,3204,3206,3,224,112,0,3205,3203,1,0,0,
	0,3206,3209,1,0,0,0,3207,3205,1,0,0,0,3207,3208,1,0,0,0,3208,3210,1,0,0,
	0,3209,3207,1,0,0,0,3210,3211,5,2224,0,0,3211,3213,1,0,0,0,3212,3188,1,
	0,0,0,3212,3201,1,0,0,0,3213,223,1,0,0,0,3214,3216,5,1606,0,0,3215,3217,
	3,584,292,0,3216,3215,1,0,0,0,3216,3217,1,0,0,0,3217,3220,1,0,0,0,3218,
	3219,5,1909,0,0,3219,3221,3,836,418,0,3220,3218,1,0,0,0,3220,3221,1,0,0,
	0,3221,3223,1,0,0,0,3222,3224,3,780,390,0,3223,3222,1,0,0,0,3223,3224,1,
	0,0,0,3224,3226,1,0,0,0,3225,3227,5,2021,0,0,3226,3225,1,0,0,0,3226,3227,
	1,0,0,0,3227,225,1,0,0,0,3228,3229,5,2219,0,0,3229,227,1,0,0,0,3230,3231,
	3,1488,744,0,3231,3232,5,2216,0,0,3232,3234,1,0,0,0,3233,3230,1,0,0,0,3233,
	3234,1,0,0,0,3234,3235,1,0,0,0,3235,3236,3,1488,744,0,3236,229,1,0,0,0,
	3237,3238,5,39,0,0,3238,3239,5,631,0,0,3239,3242,3,1414,707,0,3240,3243,
	3,232,116,0,3241,3243,3,234,117,0,3242,3240,1,0,0,0,3242,3241,1,0,0,0,3243,
	3244,1,0,0,0,3244,3245,5,2241,0,0,3245,231,1,0,0,0,3246,3253,3,634,317,
	0,3247,3253,3,632,316,0,3248,3253,3,636,318,0,3249,3253,3,474,237,0,3250,
	3253,3,610,305,0,3251,3253,3,448,224,0,3252,3246,1,0,0,0,3252,3247,1,0,
	0,0,3252,3248,1,0,0,0,3252,3249,1,0,0,0,3252,3250,1,0,0,0,3252,3251,1,0,
	0,0,3253,3254,1,0,0,0,3254,3252,1,0,0,0,3254,3255,1,0,0,0,3255,233,1,0,
	0,0,3256,3278,3,240,120,0,3257,3258,5,1197,0,0,3258,3259,5,2223,0,0,3259,
	3260,3,226,113,0,3260,3261,5,2224,0,0,3261,3278,1,0,0,0,3262,3278,5,223,
	0,0,3263,3278,3,648,324,0,3264,3278,5,2021,0,0,3265,3278,3,236,118,0,3266,
	3267,5,1404,0,0,3267,3268,5,1964,0,0,3268,3278,3,268,134,0,3269,3278,5,
	205,0,0,3270,3271,3,238,119,0,3271,3272,5,2034,0,0,3272,3278,1,0,0,0,3273,
	3274,5,2025,0,0,3274,3275,5,129,0,0,3275,3278,5,1374,0,0,3276,3278,3,242,
	121,0,3277,3256,1,0,0,0,3277,3257,1,0,0,0,3277,3262,1,0,0,0,3277,3263,1,
	0,0,0,3277,3264,1,0,0,0,3277,3265,1,0,0,0,3277,3266,1,0,0,0,3277,3269,1,
	0,0,0,3277,3270,1,0,0,0,3277,3273,1,0,0,0,3277,3276,1,0,0,0,3278,235,1,
	0,0,0,3279,3280,7,21,0,0,3280,237,1,0,0,0,3281,3282,7,22,0,0,3282,239,1,
	0,0,0,3283,3290,5,1358,0,0,3284,3285,5,1207,0,0,3285,3291,3,862,431,0,3286,
	3287,5,1606,0,0,3287,3291,3,584,292,0,3288,3291,5,1433,0,0,3289,3291,5,
	1047,0,0,3290,3284,1,0,0,0,3290,3286,1,0,0,0,3290,3288,1,0,0,0,3290,3289,
	1,0,0,0,3290,3291,1,0,0,0,3291,3306,1,0,0,0,3292,3305,3,474,237,0,3293,
	3294,5,1909,0,0,3294,3305,3,836,418,0,3295,3296,5,1197,0,0,3296,3297,5,
	2223,0,0,3297,3298,3,226,113,0,3298,3299,5,2224,0,0,3299,3305,1,0,0,0,3300,
	3305,5,1125,0,0,3301,3305,3,610,305,0,3302,3305,3,780,390,0,3303,3305,3,
	448,224,0,3304,3292,1,0,0,0,3304,3293,1,0,0,0,3304,3295,1,0,0,0,3304,3300,
	1,0,0,0,3304,3301,1,0,0,0,3304,3302,1,0,0,0,3304,3303,1,0,0,0,3305,3308,
	1,0,0,0,3306,3304,1,0,0,0,3306,3307,1,0,0,0,3307,241,1,0,0,0,3308,3306,
	1,0,0,0,3309,3318,3,244,122,0,3310,3318,3,246,123,0,3311,3318,3,250,125,
	0,3312,3318,3,254,127,0,3313,3318,3,256,128,0,3314,3318,3,258,129,0,3315,
	3318,3,248,124,0,3316,3318,3,262,131,0,3317,3309,1,0,0,0,3317,3310,1,0,
	0,0,3317,3311,1,0,0,0,3317,3312,1,0,0,0,3317,3313,1,0,0,0,3317,3314,1,0,
	0,0,3317,3315,1,0,0,0,3317,3316,1,0,0,0,3318,243,1,0,0,0,3319,3320,5,863,
	0,0,3320,3321,5,351,0,0,3321,3325,5,76,0,0,3322,3323,5,546,0,0,3323,3324,
	5,1207,0,0,3324,3326,3,862,431,0,3325,3322,1,0,0,0,3325,3326,1,0,0,0,3326,
	3334,1,0,0,0,3327,3335,3,610,305,0,3328,3331,5,1909,0,0,3329,3332,3,836,
	418,0,3330,3332,5,351,0,0,3331,3329,1,0,0,0,3331,3330,1,0,0,0,3332,3335,
	1,0,0,0,3333,3335,3,448,224,0,3334,3327,1,0,0,0,3334,3328,1,0,0,0,3334,
	3333,1,0,0,0,3335,245,1,0,0,0,3336,3337,5,18,0,0,3337,3339,5,1207,0,0,3338,
	3340,3,862,431,0,3339,3338,1,0,0,0,3339,3340,1,0,0,0,3340,3343,1,0,0,0,
	3341,3342,5,1909,0,0,3342,3344,3,836,418,0,3343,3341,1,0,0,0,3343,3344,
	1,0,0,0,3344,3346,1,0,0,0,3345,3347,3,780,390,0,3346,3345,1,0,0,0,3346,
	3347,1,0,0,0,3347,3349,1,0,0,0,3348,3350,3,474,237,0,3349,3348,1,0,0,0,
	3349,3350,1,0,0,0,3350,247,1,0,0,0,3351,3352,5,205,0,0,3352,3354,5,1207,
	0,0,3353,3355,3,474,237,0,3354,3353,1,0,0,0,3354,3355,1,0,0,0,3355,249,
	1,0,0,0,3356,3357,5,863,0,0,3357,3358,5,1207,0,0,3358,3374,3,862,431,0,
	3359,3361,3,252,126,0,3360,3359,1,0,0,0,3361,3362,1,0,0,0,3362,3360,1,0,
	0,0,3362,3363,1,0,0,0,3363,3375,1,0,0,0,3364,3365,5,1197,0,0,3365,3366,
	5,2223,0,0,3366,3367,3,226,113,0,3367,3368,5,2224,0,0,3368,3375,1,0,0,0,
	3369,3375,5,205,0,0,3370,3371,5,2025,0,0,3371,3372,5,129,0,0,3372,3375,
	5,1374,0,0,3373,3375,5,2021,0,0,3374,3360,1,0,0,0,3374,3364,1,0,0,0,3374,
	3369,1,0,0,0,3374,3370,1,0,0,0,3374,3373,1,0,0,0,3375,251,1,0,0,0,3376,
	3382,3,634,317,0,3377,3382,3,632,316,0,3378,3382,3,610,305,0,3379,3382,
	3,448,224,0,3380,3382,3,780,390,0,3381,3376,1,0,0,0,3381,3377,1,0,0,0,3381,
	3378,1,0,0,0,3381,3379,1,0,0,0,3381,3380,1,0,0,0,3382,253,1,0,0,0,3383,
	3388,5,1404,0,0,3384,3385,5,1207,0,0,3385,3389,3,862,431,0,3386,3387,5,
	1606,0,0,3387,3389,3,584,292,0,3388,3384,1,0,0,0,3388,3386,1,0,0,0,3389,
	3390,1,0,0,0,3390,3391,5,1964,0,0,3391,3392,3,266,133,0,3392,255,1,0,0,
	0,3393,3394,5,411,0,0,3394,3395,5,1207,0,0,3395,3396,3,862,431,0,3396,257,
	1,0,0,0,3397,3398,5,1552,0,0,3398,3399,5,1207,0,0,3399,3400,3,264,132,0,
	3400,3401,5,74,0,0,3401,3402,5,2223,0,0,3402,3407,3,1290,645,0,3403,3404,
	5,2229,0,0,3404,3406,3,1290,645,0,3405,3403,1,0,0,0,3406,3409,1,0,0,0,3407,
	3405,1,0,0,0,3407,3408,1,0,0,0,3408,3410,1,0,0,0,3409,3407,1,0,0,0,3410,
	3418,5,2224,0,0,3411,3412,5,691,0,0,3412,3413,5,2223,0,0,3413,3414,3,260,
	130,0,3414,3415,5,2229,0,0,3415,3416,3,260,130,0,3416,3417,5,2224,0,0,3417,
	3419,1,0,0,0,3418,3411,1,0,0,0,3418,3419,1,0,0,0,3419,3421,1,0,0,0,3420,
	3422,3,474,237,0,3421,3420,1,0,0,0,3421,3422,1,0,0,0,3422,259,1,0,0,0,3423,
	3441,5,1207,0,0,3424,3436,3,862,431,0,3425,3428,3,616,308,0,3426,3428,3,
	780,390,0,3427,3425,1,0,0,0,3427,3426,1,0,0,0,3428,3429,1,0,0,0,3429,3427,
	1,0,0,0,3429,3430,1,0,0,0,3430,3437,1,0,0,0,3431,3432,5,1197,0,0,3432,3433,
	5,2223,0,0,3433,3434,3,226,113,0,3434,3435,5,2224,0,0,3435,3437,1,0,0,0,
	3436,3427,1,0,0,0,3436,3431,1,0,0,0,3437,3439,1,0,0,0,3438,3440,5,2021,
	0,0,3439,3438,1,0,0,0,3439,3440,1,0,0,0,3440,3442,1,0,0,0,3441,3424,1,0,
	0,0,3441,3442,1,0,0,0,3442,261,1,0,0,0,3443,3444,5,863,0,0,3444,3445,5,
	1606,0,0,3445,3449,3,584,292,0,3446,3450,5,2021,0,0,3447,3450,3,632,316,
	0,3448,3450,3,634,317,0,3449,3446,1,0,0,0,3449,3447,1,0,0,0,3449,3448,1,
	0,0,0,3450,263,1,0,0,0,3451,3452,3,862,431,0,3452,265,1,0,0,0,3453,3454,
	3,862,431,0,3454,267,1,0,0,0,3455,3456,3,1414,707,0,3456,269,1,0,0,0,3457,
	3458,5,288,0,0,3458,3459,5,2055,0,0,3459,3469,3,1438,719,0,3460,3470,3,
	276,138,0,3461,3470,3,278,139,0,3462,3470,3,280,140,0,3463,3470,3,282,141,
	0,3464,3470,3,284,142,0,3465,3470,3,290,145,0,3466,3470,3,292,146,0,3467,
	3470,3,294,147,0,3468,3470,3,384,192,0,3469,3460,1,0,0,0,3469,3461,1,0,
	0,0,3469,3462,1,0,0,0,3469,3463,1,0,0,0,3469,3464,1,0,0,0,3469,3465,1,0,
	0,0,3469,3466,1,0,0,0,3469,3467,1,0,0,0,3469,3468,1,0,0,0,3470,3471,1,0,
	0,0,3471,3469,1,0,0,0,3471,3472,1,0,0,0,3472,3473,1,0,0,0,3473,3474,5,2241,
	0,0,3474,271,1,0,0,0,3475,3476,5,39,0,0,3476,3477,5,2055,0,0,3477,3489,
	3,1438,719,0,3478,3490,3,274,137,0,3479,3490,3,278,139,0,3480,3490,3,280,
	140,0,3481,3490,3,282,141,0,3482,3490,3,284,142,0,3483,3490,3,288,144,0,
	3484,3490,3,290,145,0,3485,3490,3,292,146,0,3486,3490,3,296,148,0,3487,
	3490,3,384,192,0,3488,3490,3,306,153,0,3489,3478,1,0,0,0,3489,3479,1,0,
	0,0,3489,3480,1,0,0,0,3489,3481,1,0,0,0,3489,3482,1,0,0,0,3489,3483,1,0,
	0,0,3489,3484,1,0,0,0,3489,3485,1,0,0,0,3489,3486,1,0,0,0,3489,3487,1,0,
	0,0,3489,3488,1,0,0,0,3490,3491,1,0,0,0,3491,3489,1,0,0,0,3491,3492,1,0,
	0,0,3492,3493,1,0,0,0,3493,3494,5,2241,0,0,3494,3507,1,0,0,0,3495,3500,
	3,1438,719,0,3496,3497,5,2229,0,0,3497,3499,3,1438,719,0,3498,3496,1,0,
	0,0,3499,3502,1,0,0,0,3500,3498,1,0,0,0,3500,3501,1,0,0,0,3501,3503,1,0,
	0,0,3502,3500,1,0,0,0,3503,3504,3,298,149,0,3504,3505,5,2241,0,0,3505,3507,
	1,0,0,0,3506,3475,1,0,0,0,3506,3495,1,0,0,0,3507,273,1,0,0,0,3508,3511,
	3,276,138,0,3509,3510,5,1407,0,0,3510,3512,3,1488,744,0,3511,3509,1,0,0,
	0,3511,3512,1,0,0,0,3512,275,1,0,0,0,3513,3514,5,601,0,0,3514,3515,5,146,
	0,0,3515,3516,3,1488,744,0,3516,277,1,0,0,0,3517,3518,5,601,0,0,3518,3521,
	7,23,0,0,3519,3520,5,61,0,0,3520,3522,3,1484,742,0,3521,3519,1,0,0,0,3521,
	3522,1,0,0,0,3522,279,1,0,0,0,3523,3524,7,24,0,0,3524,3525,5,1909,0,0,3525,
	3526,3,1488,744,0,3526,281,1,0,0,0,3527,3530,5,1340,0,0,3528,3531,3,606,
	303,0,3529,3531,5,2004,0,0,3530,3528,1,0,0,0,3530,3529,1,0,0,0,3531,3532,
	1,0,0,0,3532,3533,5,1128,0,0,3533,3534,3,1488,744,0,3534,283,1,0,0,0,3535,
	3536,5,1316,0,0,3536,3537,3,1488,744,0,3537,285,1,0,0,0,3538,3543,3,1394,
	697,0,3539,3540,5,2229,0,0,3540,3542,3,1394,697,0,3541,3539,1,0,0,0,3542,
	3545,1,0,0,0,3543,3541,1,0,0,0,3543,3544,1,0,0,0,3544,3562,1,0,0,0,3545,
	3543,1,0,0,0,3546,3558,5,35,0,0,3547,3548,5,467,0,0,3548,3553,3,1394,697,
	0,3549,3550,5,2229,0,0,3550,3552,3,1394,697,0,3551,3549,1,0,0,0,3552,3555,
	1,0,0,0,3553,3551,1,0,0,0,3553,3554,1,0,0,0,3554,3557,1,0,0,0,3555,3553,
	1,0,0,0,3556,3547,1,0,0,0,3557,3560,1,0,0,0,3558,3556,1,0,0,0,3558,3559,
	1,0,0,0,3559,3562,1,0,0,0,3560,3558,1,0,0,0,3561,3538,1,0,0,0,3561,3546,
	1,0,0,0,3562,287,1,0,0,0,3563,3564,5,351,0,0,3564,3567,5,1438,0,0,3565,
	3568,5,1007,0,0,3566,3568,3,286,143,0,3567,3565,1,0,0,0,3567,3566,1,0,0,
	0,3568,289,1,0,0,0,3569,3570,5,1215,0,0,3570,3571,5,484,0,0,3571,291,1,
	0,0,0,3572,3573,5,5,0,0,3573,3574,7,25,0,0,3574,293,1,0,0,0,3575,3576,5,
	439,0,0,3576,3577,5,426,0,0,3577,295,1,0,0,0,3578,3588,3,294,147,0,3579,
	3580,5,546,0,0,3580,3585,3,1492,746,0,3581,3582,5,2229,0,0,3582,3584,3,
	1492,746,0,3583,3581,1,0,0,0,3584,3587,1,0,0,0,3585,3583,1,0,0,0,3585,3586,
	1,0,0,0,3586,3589,1,0,0,0,3587,3585,1,0,0,0,3588,3579,1,0,0,0,3588,3589,
	1,0,0,0,3589,3591,1,0,0,0,3590,3592,5,542,0,0,3591,3590,1,0,0,0,3591,3592,
	1,0,0,0,3592,297,1,0,0,0,3593,3594,5,1434,0,0,3594,3595,5,251,0,0,3595,
	3599,5,1928,0,0,3596,3597,5,450,0,0,3597,3600,5,2053,0,0,3598,3600,3,1438,
	719,0,3599,3596,1,0,0,0,3599,3598,1,0,0,0,3600,3633,1,0,0,0,3601,3602,5,
	571,0,0,3602,3603,5,251,0,0,3603,3630,5,1928,0,0,3604,3605,5,450,0,0,3605,
	3631,5,2053,0,0,3606,3614,3,1438,719,0,3607,3612,5,2121,0,0,3608,3609,5,
	1010,0,0,3609,3613,5,1440,0,0,3610,3611,5,1438,0,0,3611,3613,3,286,143,
	0,3612,3608,1,0,0,0,3612,3610,1,0,0,0,3613,3615,1,0,0,0,3614,3607,1,0,0,
	0,3614,3615,1,0,0,0,3615,3618,1,0,0,0,3616,3617,5,79,0,0,3617,3619,5,1409,
	0,0,3618,3616,1,0,0,0,3618,3619,1,0,0,0,3619,3628,1,0,0,0,3620,3621,5,78,
	0,0,3621,3626,5,2063,0,0,3622,3627,5,1215,0,0,3623,3627,5,169,0,0,3624,
	3625,5,397,0,0,3625,3627,5,879,0,0,3626,3622,1,0,0,0,3626,3623,1,0,0,0,
	3626,3624,1,0,0,0,3627,3629,1,0,0,0,3628,3620,1,0,0,0,3628,3629,1,0,0,0,
	3629,3631,1,0,0,0,3630,3604,1,0,0,0,3630,3606,1,0,0,0,3631,3633,1,0,0,0,
	3632,3593,1,0,0,0,3632,3601,1,0,0,0,3633,299,1,0,0,0,3634,3635,5,2223,0,
	0,3635,3640,3,1488,744,0,3636,3637,5,2229,0,0,3637,3639,3,1488,744,0,3638,
	3636,1,0,0,0,3639,3642,1,0,0,0,3640,3638,1,0,0,0,3640,3641,1,0,0,0,3641,
	3643,1,0,0,0,3642,3640,1,0,0,0,3643,3644,5,2224,0,0,3644,301,1,0,0,0,3645,
	3646,5,1510,0,0,3646,3647,5,261,0,0,3647,3651,5,2243,0,0,3648,3652,5,35,
	0,0,3649,3652,5,351,0,0,3650,3652,3,300,150,0,3651,3648,1,0,0,0,3651,3649,
	1,0,0,0,3651,3650,1,0,0,0,3652,303,1,0,0,0,3653,3654,7,26,0,0,3654,3655,
	5,261,0,0,3655,3656,5,2243,0,0,3656,3657,3,300,150,0,3657,305,1,0,0,0,3658,
	3665,3,302,151,0,3659,3662,3,304,152,0,3660,3661,5,546,0,0,3661,3663,3,
	1386,693,0,3662,3660,1,0,0,0,3662,3663,1,0,0,0,3663,3665,1,0,0,0,3664,3658,
	1,0,0,0,3664,3659,1,0,0,0,3665,307,1,0,0,0,3666,3671,5,41,0,0,3667,3668,
	5,1912,0,0,3668,3672,3,1426,713,0,3669,3670,5,631,0,0,3670,3672,3,1414,
	707,0,3671,3667,1,0,0,0,3671,3669,1,0,0,0,3672,3674,1,0,0,0,3673,3675,3,
	310,155,0,3674,3673,1,0,0,0,3674,3675,1,0,0,0,3675,3680,1,0,0,0,3676,3677,
	5,41,0,0,3677,3678,5,197,0,0,3678,3680,3,184,92,0,3679,3666,1,0,0,0,3679,
	3676,1,0,0,0,3680,3693,1,0,0,0,3681,3694,3,312,156,0,3682,3683,5,761,0,
	0,3683,3684,5,171,0,0,3684,3686,5,1452,0,0,3685,3687,3,316,158,0,3686,3685,
	1,0,0,0,3686,3687,1,0,0,0,3687,3694,1,0,0,0,3688,3690,5,362,0,0,3689,3691,
	5,1779,0,0,3690,3689,1,0,0,0,3690,3691,1,0,0,0,3691,3692,1,0,0,0,3692,3694,
	5,1577,0,0,3693,3681,1,0,0,0,3693,3682,1,0,0,0,3693,3688,1,0,0,0,3694,3695,
	1,0,0,0,3695,3696,5,2241,0,0,3696,309,1,0,0,0,3697,3714,5,1207,0,0,3698,
	3699,5,2223,0,0,3699,3700,3,862,431,0,3700,3701,5,2224,0,0,3701,3715,1,
	0,0,0,3702,3703,5,546,0,0,3703,3704,5,2223,0,0,3704,3709,3,318,159,0,3705,
	3706,5,2229,0,0,3706,3708,3,318,159,0,3707,3705,1,0,0,0,3708,3711,1,0,0,
	0,3709,3707,1,0,0,0,3709,3710,1,0,0,0,3710,3712,1,0,0,0,3711,3709,1,0,0,
	0,3712,3713,5,2224,0,0,3713,3715,1,0,0,0,3714,3698,1,0,0,0,3714,3702,1,
	0,0,0,3715,3736,1,0,0,0,3716,3733,5,1606,0,0,3717,3718,5,2223,0,0,3718,
	3719,3,584,292,0,3719,3720,5,2224,0,0,3720,3734,1,0,0,0,3721,3722,5,546,
	0,0,3722,3723,5,2223,0,0,3723,3728,3,320,160,0,3724,3725,5,2229,0,0,3725,
	3727,3,320,160,0,3726,3724,1,0,0,0,3727,3730,1,0,0,0,3728,3726,1,0,0,0,
	3728,3729,1,0,0,0,3729,3731,1,0,0,0,3730,3728,1,0,0,0,3731,3732,5,2224,
	0,0,3732,3734,1,0,0,0,3733,3717,1,0,0,0,3733,3721,1,0,0,0,3734,3736,1,0,
	0,0,3735,3697,1,0,0,0,3735,3716,1,0,0,0,3736,311,1,0,0,0,3737,3738,5,2070,
	0,0,3738,3739,5,1376,0,0,3739,3744,5,2025,0,0,3740,3741,5,1510,0,0,3741,
	3742,5,315,0,0,3742,3743,5,1964,0,0,3743,3745,5,1097,0,0,3744,3740,1,0,
	0,0,3744,3745,1,0,0,0,3745,3767,1,0,0,0,3746,3747,5,2070,0,0,3747,3758,
	5,1602,0,0,3748,3749,5,162,0,0,3749,3759,5,511,0,0,3750,3752,5,162,0,0,
	3751,3753,3,314,157,0,3752,3751,1,0,0,0,3752,3753,1,0,0,0,3753,3755,1,0,
	0,0,3754,3756,3,1358,679,0,3755,3754,1,0,0,0,3755,3756,1,0,0,0,3756,3759,
	1,0,0,0,3757,3759,5,162,0,0,3758,3748,1,0,0,0,3758,3750,1,0,0,0,3758,3757,
	1,0,0,0,3758,3759,1,0,0,0,3759,3761,1,0,0,0,3760,3762,3,314,157,0,3761,
	3760,1,0,0,0,3761,3762,1,0,0,0,3762,3764,1,0,0,0,3763,3765,3,1358,679,0,
	3764,3763,1,0,0,0,3764,3765,1,0,0,0,3765,3767,1,0,0,0,3766,3737,1,0,0,0,
	3766,3746,1,0,0,0,3767,313,1,0,0,0,3768,3769,7,27,0,0,3769,315,1,0,0,0,
	3770,3772,5,691,0,0,3771,3773,3,1426,713,0,3772,3771,1,0,0,0,3772,3773,
	1,0,0,0,3773,317,1,0,0,0,3774,3775,3,1290,645,0,3775,319,1,0,0,0,3776,3777,
	3,1290,645,0,3777,321,1,0,0,0,3778,3779,5,69,0,0,3779,3780,5,1577,0,0,3780,
	3783,5,2121,0,0,3781,3784,3,324,162,0,3782,3784,3,326,163,0,3783,3781,1,
	0,0,0,3783,3782,1,0,0,0,3784,3786,1,0,0,0,3785,3787,3,346,173,0,3786,3785,
	1,0,0,0,3786,3787,1,0,0,0,3787,3788,1,0,0,0,3788,3789,5,2241,0,0,3789,323,
	1,0,0,0,3790,3791,5,214,0,0,3791,3792,3,1426,713,0,3792,3793,5,2216,0,0,
	3793,3801,3,1424,712,0,3794,3795,5,2229,0,0,3795,3796,3,1426,713,0,3796,
	3797,5,2216,0,0,3797,3798,3,1424,712,0,3798,3800,1,0,0,0,3799,3794,1,0,
	0,0,3800,3803,1,0,0,0,3801,3799,1,0,0,0,3801,3802,1,0,0,0,3802,3804,1,0,
	0,0,3803,3801,1,0,0,0,3804,3805,3,330,165,0,3805,325,1,0,0,0,3806,3807,
	5,559,0,0,3807,3812,3,1406,703,0,3808,3809,5,2229,0,0,3809,3811,3,1406,
	703,0,3810,3808,1,0,0,0,3811,3814,1,0,0,0,3812,3810,1,0,0,0,3812,3813,1,
	0,0,0,3813,3852,1,0,0,0,3814,3812,1,0,0,0,3815,3816,5,1192,0,0,3816,3821,
	3,1376,688,0,3817,3818,5,2229,0,0,3818,3820,3,1376,688,0,3819,3817,1,0,
	0,0,3820,3823,1,0,0,0,3821,3819,1,0,0,0,3821,3822,1,0,0,0,3822,3852,1,0,
	0,0,3823,3821,1,0,0,0,3824,3825,5,1986,0,0,3825,3830,3,1400,700,0,3826,
	3827,5,2229,0,0,3827,3829,3,1400,700,0,3828,3826,1,0,0,0,3829,3832,1,0,
	0,0,3830,3828,1,0,0,0,3830,3831,1,0,0,0,3831,3852,1,0,0,0,3832,3830,1,0,
	0,0,3833,3834,5,628,0,0,3834,3839,3,1414,707,0,3835,3836,5,2229,0,0,3836,
	3838,3,1414,707,0,3837,3835,1,0,0,0,3838,3841,1,0,0,0,3839,3837,1,0,0,0,
	3839,3840,1,0,0,0,3840,3852,1,0,0,0,3841,3839,1,0,0,0,3842,3843,5,646,0,
	0,3843,3848,3,328,164,0,3844,3845,5,2229,0,0,3845,3847,3,328,164,0,3846,
	3844,1,0,0,0,3847,3850,1,0,0,0,3848,3846,1,0,0,0,3848,3849,1,0,0,0,3849,
	3852,1,0,0,0,3850,3848,1,0,0,0,3851,3806,1,0,0,0,3851,3815,1,0,0,0,3851,
	3824,1,0,0,0,3851,3833,1,0,0,0,3851,3842,1,0,0,0,3852,3864,1,0,0,0,3853,
	3865,3,330,165,0,3854,3857,3,334,167,0,3855,3856,5,2229,0,0,3856,3858,3,
	342,171,0,3857,3855,1,0,0,0,3857,3858,1,0,0,0,3858,3865,1,0,0,0,3859,3862,
	3,342,171,0,3860,3861,5,2229,0,0,3861,3863,3,334,167,0,3862,3860,1,0,0,
	0,3862,3863,1,0,0,0,3863,3865,1,0,0,0,3864,3853,1,0,0,0,3864,3854,1,0,0,
	0,3864,3859,1,0,0,0,3865,327,1,0,0,0,3866,3867,3,1488,744,0,3867,329,1,
	0,0,0,3868,3871,5,2063,0,0,3869,3872,3,332,166,0,3870,3872,5,1097,0,0,3871,
	3869,1,0,0,0,3871,3870,1,0,0,0,3872,331,1,0,0,0,3873,3874,3,1492,746,0,
	3874,333,1,0,0,0,3875,3876,5,351,0,0,3876,3877,5,279,0,0,3877,3878,5,2223,
	0,0,3878,3879,3,336,168,0,3879,3880,5,2229,0,0,3880,3881,3,338,169,0,3881,
	3882,5,2229,0,0,3882,3883,3,340,170,0,3883,3884,5,2224,0,0,3884,335,1,0,
	0,0,3885,3886,5,2217,0,0,3886,337,1,0,0,0,3887,3888,5,2217,0,0,3888,339,
	1,0,0,0,3889,3890,5,2217,0,0,3890,341,1,0,0,0,3891,3892,5,351,0,0,3892,
	3893,5,1489,0,0,3893,3894,3,344,172,0,3894,343,1,0,0,0,3895,3896,5,2217,
	0,0,3896,345,1,0,0,0,3897,3898,5,2121,0,0,3898,3899,7,28,0,0,3899,3900,
	5,796,0,0,3900,3901,5,1593,0,0,3901,3902,5,1910,0,0,3902,347,1,0,0,0,3903,
	3904,4,174,0,0,3904,3948,5,77,0,0,3905,3906,5,1267,0,0,3906,3916,3,350,
	175,0,3907,3908,7,29,0,0,3908,3913,3,362,181,0,3909,3910,5,2229,0,0,3910,
	3912,3,362,181,0,3911,3909,1,0,0,0,3912,3915,1,0,0,0,3913,3911,1,0,0,0,
	3913,3914,1,0,0,0,3914,3917,1,0,0,0,3915,3913,1,0,0,0,3916,3907,1,0,0,0,
	3916,3917,1,0,0,0,3917,3923,1,0,0,0,3918,3920,5,2112,0,0,3919,3921,5,1073,
	0,0,3920,3919,1,0,0,0,3920,3921,1,0,0,0,3921,3922,1,0,0,0,3922,3924,5,1617,
	0,0,3923,3918,1,0,0,0,3923,3924,1,0,0,0,3924,3949,1,0,0,0,3925,3926,5,265,
	0,0,3926,3927,5,880,0,0,3927,3928,3,514,257,0,3928,3929,5,76,0,0,3929,3934,
	3,1364,682,0,3930,3931,5,2229,0,0,3931,3933,3,1364,682,0,3932,3930,1,0,
	0,0,3933,3936,1,0,0,0,3934,3932,1,0,0,0,3934,3935,1,0,0,0,3935,3946,1,0,
	0,0,3936,3934,1,0,0,0,3937,3938,5,146,0,0,3938,3943,3,362,181,0,3939,3940,
	5,2229,0,0,3940,3942,3,362,181,0,3941,3939,1,0,0,0,3942,3945,1,0,0,0,3943,
	3941,1,0,0,0,3943,3944,1,0,0,0,3944,3947,1,0,0,0,3945,3943,1,0,0,0,3946,
	3937,1,0,0,0,3946,3947,1,0,0,0,3947,3949,1,0,0,0,3948,3905,1,0,0,0,3948,
	3925,1,0,0,0,3949,3950,1,0,0,0,3950,3951,5,2241,0,0,3951,349,1,0,0,0,3952,
	3953,3,1486,743,0,3953,351,1,0,0,0,3954,3965,5,77,0,0,3955,3960,3,358,179,
	0,3956,3961,3,360,180,0,3957,3958,5,652,0,0,3958,3959,5,1506,0,0,3959,3961,
	5,302,0,0,3960,3956,1,0,0,0,3960,3957,1,0,0,0,3960,3961,1,0,0,0,3961,3966,
	1,0,0,0,3962,3966,3,364,182,0,3963,3966,5,901,0,0,3964,3966,3,354,177,0,
	3965,3955,1,0,0,0,3965,3962,1,0,0,0,3965,3963,1,0,0,0,3965,3964,1,0,0,0,
	3966,3969,1,0,0,0,3967,3968,5,146,0,0,3968,3970,7,30,0,0,3969,3967,1,0,
	0,0,3969,3970,1,0,0,0,3970,3976,1,0,0,0,3971,3973,5,2112,0,0,3972,3974,
	5,1073,0,0,3973,3972,1,0,0,0,3973,3974,1,0,0,0,3974,3975,1,0,0,0,3975,3977,
	5,1617,0,0,3976,3971,1,0,0,0,3976,3977,1,0,0,0,3977,3979,1,0,0,0,3978,3980,
	3,356,178,0,3979,3978,1,0,0,0,3979,3980,1,0,0,0,3980,3981,1,0,0,0,3981,
	3982,5,2241,0,0,3982,353,1,0,0,0,3983,3984,4,177,1,0,3984,3985,5,381,0,
	0,3985,3986,3,360,180,0,3986,355,1,0,0,0,3987,3988,4,178,2,0,3988,3989,
	5,260,0,0,3989,3990,5,2243,0,0,3990,3991,7,31,0,0,3991,357,1,0,0,0,3992,
	3998,3,376,188,0,3993,3995,5,35,0,0,3994,3996,5,1573,0,0,3995,3994,1,0,
	0,0,3995,3996,1,0,0,0,3996,3998,1,0,0,0,3997,3992,1,0,0,0,3997,3993,1,0,
	0,0,3998,4009,1,0,0,0,3999,4005,5,2229,0,0,4000,4006,3,376,188,0,4001,4003,
	5,35,0,0,4002,4004,5,1573,0,0,4003,4002,1,0,0,0,4003,4004,1,0,0,0,4004,
	4006,1,0,0,0,4005,4000,1,0,0,0,4005,4001,1,0,0,0,4006,4008,1,0,0,0,4007,
	3999,1,0,0,0,4008,4011,1,0,0,0,4009,4007,1,0,0,0,4009,4010,1,0,0,0,4010,
	4029,1,0,0,0,4011,4009,1,0,0,0,4012,4016,3,1476,738,0,4013,4014,5,35,0,
	0,4014,4016,5,1312,0,0,4015,4012,1,0,0,0,4015,4013,1,0,0,0,4016,4025,1,
	0,0,0,4017,4021,5,2229,0,0,4018,4022,3,1476,738,0,4019,4020,5,35,0,0,4020,
	4022,5,1312,0,0,4021,4018,1,0,0,0,4021,4019,1,0,0,0,4022,4024,1,0,0,0,4023,
	4017,1,0,0,0,4024,4027,1,0,0,0,4025,4023,1,0,0,0,4025,4026,1,0,0,0,4026,
	4029,1,0,0,0,4027,4025,1,0,0,0,4028,3997,1,0,0,0,4028,4015,1,0,0,0,4029,
	359,1,0,0,0,4030,4031,5,146,0,0,4031,4036,3,362,181,0,4032,4033,5,2229,
	0,0,4033,4035,3,362,181,0,4034,4032,1,0,0,0,4035,4038,1,0,0,0,4036,4034,
	1,0,0,0,4036,4037,1,0,0,0,4037,361,1,0,0,0,4038,4036,1,0,0,0,4039,4040,
	3,1492,746,0,4040,363,1,0,0,0,4041,4046,3,366,183,0,4042,4043,5,2229,0,
	0,4043,4045,3,366,183,0,4044,4042,1,0,0,0,4045,4048,1,0,0,0,4046,4044,1,
	0,0,0,4046,4047,1,0,0,0,4047,4051,1,0,0,0,4048,4046,1,0,0,0,4049,4051,5,
	35,0,0,4050,4041,1,0,0,0,4050,4049,1,0,0,0,4051,4052,1,0,0,0,4052,4053,
	3,368,184,0,4053,365,1,0,0,0,4054,4055,7,32,0,0,4055,367,1,0,0,0,4056,4069,
	5,1128,0,0,4057,4070,3,372,186,0,4058,4059,5,380,0,0,4059,4070,3,1492,746,
	0,4060,4061,5,841,0,0,4061,4062,5,854,0,0,4062,4070,3,370,185,0,4063,4064,
	4,184,3,0,4064,4065,5,1557,0,0,4065,4066,5,1975,0,0,4066,4067,5,1316,0,
	0,4067,4070,3,374,187,0,4068,4070,5,351,0,0,4069,4057,1,0,0,0,4069,4058,
	1,0,0,0,4069,4060,1,0,0,0,4069,4063,1,0,0,0,4069,4068,1,0,0,0,4070,369,
	1,0,0,0,4071,4072,3,1488,744,0,4072,4073,5,2216,0,0,4073,4075,1,0,0,0,4074,
	4071,1,0,0,0,4074,4075,1,0,0,0,4075,4076,1,0,0,0,4076,4077,3,1488,744,0,
	4077,371,1,0,0,0,4078,4079,3,1488,744,0,4079,4080,5,2216,0,0,4080,4082,
	1,0,0,0,4081,4078,1,0,0,0,4081,4082,1,0,0,0,4082,4083,1,0,0,0,4083,4084,
	3,1488,744,0,4084,373,1,0,0,0,4085,4086,3,1488,744,0,4086,4087,5,2216,0,
	0,4087,4089,1,0,0,0,4088,4085,1,0,0,0,4088,4089,1,0,0,0,4089,4090,1,0,0,
	0,4090,4091,3,1488,744,0,4091,375,1,0,0,0,4092,4093,5,39,0,0,4093,4163,
	5,1779,0,0,4094,4163,5,197,0,0,4095,4163,5,265,0,0,4096,4097,5,316,0,0,
	4097,4163,5,760,0,0,4098,4163,5,377,0,0,4099,4163,5,380,0,0,4100,4163,5,
	631,0,0,4101,4102,5,809,0,0,4102,4163,5,2099,0,0,4103,4104,5,1073,0,0,4104,
	4163,5,478,0,0,4105,4163,5,1180,0,0,4106,4107,4,188,4,0,4107,4108,5,1265,
	0,0,4108,4163,5,316,0,0,4109,4163,5,1314,0,0,4110,4163,5,1316,0,0,4111,
	4112,5,1324,0,0,4112,4113,5,316,0,0,4113,4163,5,760,0,0,4114,4115,5,1324,
	0,0,4115,4163,5,1627,0,0,4116,4163,5,1438,0,0,4117,4118,5,1441,0,0,4118,
	4163,5,1488,0,0,4119,4163,5,1496,0,0,4120,4163,5,1506,0,0,4121,4163,5,1627,
	0,0,4122,4123,5,1779,0,0,4123,4163,5,77,0,0,4124,4125,5,1779,0,0,4125,4163,
	5,571,0,0,4126,4163,5,1912,0,0,4127,4163,5,1909,0,0,4128,4163,5,1978,0,
	0,4129,4163,5,1987,0,0,4130,4163,5,2055,0,0,4131,4163,5,2099,0,0,4132,4133,
	5,39,0,0,4133,4163,5,1496,0,0,4134,4135,5,39,0,0,4135,4163,5,1912,0,0,4136,
	4137,5,217,0,0,4137,4163,5,1912,0,0,4138,4139,5,362,0,0,4139,4163,5,1912,
	0,0,4140,4141,5,475,0,0,4141,4163,5,1314,0,0,4142,4143,5,571,0,0,4143,4163,
	5,380,0,0,4144,4145,5,571,0,0,4145,4163,5,1314,0,0,4146,4147,5,571,0,0,
	4147,4163,5,1496,0,0,4148,4149,5,571,0,0,4149,4163,5,1912,0,0,4150,4151,
	5,571,0,0,4151,4163,5,1987,0,0,4152,4153,5,669,0,0,4153,4163,5,1912,0,0,
	4154,4155,5,776,0,0,4155,4163,5,1912,0,0,4156,4157,5,1490,0,0,4157,4163,
	5,1496,0,0,4158,4159,5,1490,0,0,4159,4163,5,1912,0,0,4160,4161,5,2025,0,
	0,4161,4163,5,1912,0,0,4162,4092,1,0,0,0,4162,4094,1,0,0,0,4162,4095,1,
	0,0,0,4162,4096,1,0,0,0,4162,4098,1,0,0,0,4162,4099,1,0,0,0,4162,4100,1,
	0,0,0,4162,4101,1,0,0,0,4162,4103,1,0,0,0,4162,4105,1,0,0,0,4162,4106,1,
	0,0,0,4162,4109,1,0,0,0,4162,4110,1,0,0,0,4162,4111,1,0,0,0,4162,4114,1,
	0,0,0,4162,4116,1,0,0,0,4162,4117,1,0,0,0,4162,4119,1,0,0,0,4162,4120,1,
	0,0,0,4162,4121,1,0,0,0,4162,4122,1,0,0,0,4162,4124,1,0,0,0,4162,4126,1,
	0,0,0,4162,4127,1,0,0,0,4162,4128,1,0,0,0,4162,4129,1,0,0,0,4162,4130,1,
	0,0,0,4162,4131,1,0,0,0,4162,4132,1,0,0,0,4162,4134,1,0,0,0,4162,4136,1,
	0,0,0,4162,4138,1,0,0,0,4162,4140,1,0,0,0,4162,4142,1,0,0,0,4162,4144,1,
	0,0,0,4162,4146,1,0,0,0,4162,4148,1,0,0,0,4162,4150,1,0,0,0,4162,4152,1,
	0,0,0,4162,4154,1,0,0,0,4162,4156,1,0,0,0,4162,4158,1,0,0,0,4162,4160,1,
	0,0,0,4163,377,1,0,0,0,4164,4165,5,411,0,0,4165,4166,5,631,0,0,4166,4167,
	3,1414,707,0,4167,4168,5,2241,0,0,4168,379,1,0,0,0,4169,4170,5,1404,0,0,
	4170,4171,3,372,186,0,4171,4172,5,1964,0,0,4172,4173,3,372,186,0,4173,4174,
	5,2241,0,0,4174,381,1,0,0,0,4175,4187,5,571,0,0,4176,4178,5,2229,0,0,4177,
	4176,1,0,0,0,4177,4178,1,0,0,0,4178,4185,1,0,0,0,4179,4186,3,1394,697,0,
	4180,4186,3,1476,738,0,4181,4183,3,1474,737,0,4182,4184,3,1444,722,0,4183,
	4182,1,0,0,0,4183,4184,1,0,0,0,4184,4186,1,0,0,0,4185,4179,1,0,0,0,4185,
	4180,1,0,0,0,4185,4181,1,0,0,0,4186,4188,1,0,0,0,4187,4177,1,0,0,0,4188,
	4189,1,0,0,0,4189,4187,1,0,0,0,4189,4190,1,0,0,0,4190,4193,1,0,0,0,4191,
	4192,5,1128,0,0,4192,4194,3,1440,720,0,4193,4191,1,0,0,0,4193,4194,1,0,
	0,0,4194,4195,1,0,0,0,4195,4198,5,1964,0,0,4196,4199,3,1392,696,0,4197,
	4199,5,1324,0,0,4198,4196,1,0,0,0,4198,4197,1,0,0,0,4199,4207,1,0,0,0,4200,
	4203,5,2229,0,0,4201,4204,3,1392,696,0,4202,4204,5,1324,0,0,4203,4201,1,
	0,0,0,4203,4202,1,0,0,0,4204,4206,1,0,0,0,4205,4200,1,0,0,0,4206,4209,1,
	0,0,0,4207,4205,1,0,0,0,4207,4208,1,0,0,0,4208,4213,1,0,0,0,4209,4207,1,
	0,0,0,4210,4211,5,2121,0,0,4211,4212,7,33,0,0,4212,4214,5,1141,0,0,4213,
	4210,1,0,0,0,4213,4214,1,0,0,0,4214,4218,1,0,0,0,4215,4216,5,2121,0,0,4216,
	4217,5,593,0,0,4217,4219,5,1141,0,0,4218,4215,1,0,0,0,4218,4219,1,0,0,0,
	4219,4223,1,0,0,0,4220,4221,5,2121,0,0,4221,4222,5,571,0,0,4222,4224,5,
	1141,0,0,4223,4220,1,0,0,0,4223,4224,1,0,0,0,4224,4226,1,0,0,0,4225,4227,
	3,384,192,0,4226,4225,1,0,0,0,4226,4227,1,0,0,0,4227,4228,1,0,0,0,4228,
	4229,5,2241,0,0,4229,383,1,0,0,0,4230,4231,5,260,0,0,4231,4232,5,2243,0,
	0,4232,4233,7,31,0,0,4233,385,1,0,0,0,4234,4237,5,288,0,0,4235,4236,5,1172,
	0,0,4236,4238,5,1407,0,0,4237,4235,1,0,0,0,4237,4238,1,0,0,0,4238,4239,
	1,0,0,0,4239,4240,5,380,0,0,4240,4241,3,388,194,0,4241,4242,5,61,0,0,4242,
	4243,3,390,195,0,4243,4244,5,2241,0,0,4244,387,1,0,0,0,4245,4246,3,1492,
	746,0,4246,389,1,0,0,0,4247,4248,5,2219,0,0,4248,391,1,0,0,0,4249,4250,
	5,39,0,0,4250,4251,5,749,0,0,4251,4267,3,402,201,0,4252,4254,5,223,0,0,
	4253,4255,3,396,198,0,4254,4253,1,0,0,0,4254,4255,1,0,0,0,4255,4259,1,0,
	0,0,4256,4258,3,398,199,0,4257,4256,1,0,0,0,4258,4261,1,0,0,0,4259,4257,
	1,0,0,0,4259,4260,1,0,0,0,4260,4264,1,0,0,0,4261,4259,1,0,0,0,4262,4263,
	5,1432,0,0,4263,4265,5,1512,0,0,4264,4262,1,0,0,0,4264,4265,1,0,0,0,4265,
	4268,1,0,0,0,4266,4268,3,394,197,0,4267,4252,1,0,0,0,4267,4266,1,0,0,0,
	4268,4269,1,0,0,0,4269,4270,5,2241,0,0,4270,393,1,0,0,0,4271,4272,4,197,
	5,0,4272,4273,7,34,0,0,4273,395,1,0,0,0,4274,4275,4,198,6,0,4275,4276,5,
	340,0,0,4276,397,1,0,0,0,4277,4278,3,1380,690,0,4278,4279,5,2243,0,0,4279,
	4280,3,400,200,0,4280,399,1,0,0,0,4281,4282,3,1492,746,0,4282,401,1,0,0,
	0,4283,4284,3,1492,746,0,4284,4285,5,2216,0,0,4285,4287,1,0,0,0,4286,4283,
	1,0,0,0,4286,4287,1,0,0,0,4287,4288,1,0,0,0,4288,4289,3,1492,746,0,4289,
	403,1,0,0,0,4290,4291,5,39,0,0,4291,4292,5,2099,0,0,4292,4325,3,1426,713,
	0,4293,4294,5,18,0,0,4294,4326,3,422,211,0,4295,4296,5,863,0,0,4296,4297,
	5,257,0,0,4297,4298,3,1396,698,0,4298,4299,7,35,0,0,4299,4326,1,0,0,0,4300,
	4317,5,411,0,0,4301,4302,5,257,0,0,4302,4318,3,1396,698,0,4303,4304,5,1304,
	0,0,4304,4318,5,722,0,0,4305,4306,5,2002,0,0,4306,4307,5,2223,0,0,4307,
	4312,3,1424,712,0,4308,4309,5,2229,0,0,4309,4311,3,1424,712,0,4310,4308,
	1,0,0,0,4311,4314,1,0,0,0,4312,4310,1,0,0,0,4312,4313,1,0,0,0,4313,4315,
	1,0,0,0,4314,4312,1,0,0,0,4315,4316,5,2224,0,0,4316,4318,1,0,0,0,4317,4301,
	1,0,0,0,4317,4303,1,0,0,0,4317,4305,1,0,0,0,4318,4326,1,0,0,0,4319,4326,
	5,223,0,0,4320,4321,5,1353,0,0,4321,4326,7,36,0,0,4322,4324,3,406,203,0,
	4323,4322,1,0,0,0,4323,4324,1,0,0,0,4324,4326,1,0,0,0,4325,4293,1,0,0,0,
	4325,4295,1,0,0,0,4325,4300,1,0,0,0,4325,4319,1,0,0,0,4325,4320,1,0,0,0,
	4325,4323,1,0,0,0,4326,4327,1,0,0,0,4327,4328,5,2241,0,0,4328,405,1,0,0,
	0,4329,4330,4,203,7,0,4330,4331,7,34,0,0,4331,407,1,0,0,0,4332,4335,5,288,
	0,0,4333,4334,5,1172,0,0,4334,4336,5,1407,0,0,4335,4333,1,0,0,0,4335,4336,
	1,0,0,0,4336,4341,1,0,0,0,4337,4339,5,1172,0,0,4338,4337,1,0,0,0,4338,4339,
	1,0,0,0,4339,4340,1,0,0,0,4340,4342,5,542,0,0,4341,4338,1,0,0,0,4341,4342,
	1,0,0,0,4342,4344,1,0,0,0,4343,4345,5,423,0,0,4344,4343,1,0,0,0,4344,4345,
	1,0,0,0,4345,4347,1,0,0,0,4346,4348,5,425,0,0,4347,4346,1,0,0,0,4347,4348,
	1,0,0,0,4348,4349,1,0,0,0,4349,4350,5,2099,0,0,4350,4352,3,1426,713,0,4351,
	4353,3,410,205,0,4352,4351,1,0,0,0,4352,4353,1,0,0,0,4353,4354,1,0,0,0,
	4354,4355,5,61,0,0,4355,4357,3,1040,520,0,4356,4358,3,1224,612,0,4357,4356,
	1,0,0,0,4357,4358,1,0,0,0,4358,409,1,0,0,0,4359,4362,3,412,206,0,4360,4362,
	3,414,207,0,4361,4359,1,0,0,0,4361,4360,1,0,0,0,4362,411,1,0,0,0,4363,4377,
	5,2223,0,0,4364,4366,5,2229,0,0,4365,4364,1,0,0,0,4365,4366,1,0,0,0,4366,
	4375,1,0,0,0,4367,4371,3,1354,677,0,4368,4370,3,416,208,0,4369,4368,1,0,
	0,0,4370,4373,1,0,0,0,4371,4369,1,0,0,0,4371,4372,1,0,0,0,4372,4376,1,0,
	0,0,4373,4371,1,0,0,0,4374,4376,3,422,211,0,4375,4367,1,0,0,0,4375,4374,
	1,0,0,0,4376,4378,1,0,0,0,4377,4365,1,0,0,0,4378,4379,1,0,0,0,4379,4377,
	1,0,0,0,4379,4380,1,0,0,0,4380,4381,1,0,0,0,4381,4382,5,2224,0,0,4382,413,
	1,0,0,0,4383,4384,5,1115,0,0,4384,4403,3,1400,700,0,4385,4386,5,2121,0,
	0,4386,4387,5,1107,0,0,4387,4399,7,37,0,0,4388,4400,5,351,0,0,4389,4390,
	5,2223,0,0,4390,4395,5,2252,0,0,4391,4392,5,2229,0,0,4392,4394,5,2252,0,
	0,4393,4391,1,0,0,0,4394,4397,1,0,0,0,4395,4393,1,0,0,0,4395,4396,1,0,0,
	0,4396,4398,1,0,0,0,4397,4395,1,0,0,0,4398,4400,5,2224,0,0,4399,4388,1,
	0,0,0,4399,4389,1,0,0,0,4400,4404,1,0,0,0,4401,4402,5,1997,0,0,4402,4404,
	3,1426,713,0,4403,4385,1,0,0,0,4403,4401,1,0,0,0,4404,4422,1,0,0,0,4405,
	4414,5,2223,0,0,4406,4408,5,2229,0,0,4407,4406,1,0,0,0,4407,4408,1,0,0,
	0,4408,4412,1,0,0,0,4409,4413,3,422,211,0,4410,4411,5,2252,0,0,4411,4413,
	3,416,208,0,4412,4409,1,0,0,0,4412,4410,1,0,0,0,4413,4415,1,0,0,0,4414,
	4407,1,0,0,0,4415,4416,1,0,0,0,4416,4414,1,0,0,0,4416,4417,1,0,0,0,4417,
	4418,1,0,0,0,4418,4419,5,2224,0,0,4419,4421,1,0,0,0,4420,4405,1,0,0,0,4421,
	4424,1,0,0,0,4422,4420,1,0,0,0,4422,4423,1,0,0,0,4423,415,1,0,0,0,4424,
	4422,1,0,0,0,4425,4426,5,257,0,0,4426,4428,3,1396,698,0,4427,4425,1,0,0,
	0,4427,4428,1,0,0,0,4428,4438,1,0,0,0,4429,4431,5,1073,0,0,4430,4429,1,
	0,0,0,4430,4431,1,0,0,0,4431,4432,1,0,0,0,4432,4439,5,1097,0,0,4433,4439,
	5,2002,0,0,4434,4435,5,1304,0,0,4435,4439,5,722,0,0,4436,4439,3,894,447,
	0,4437,4439,3,884,442,0,4438,4430,1,0,0,0,4438,4433,1,0,0,0,4438,4434,1,
	0,0,0,4438,4436,1,0,0,0,4438,4437,1,0,0,0,4439,4441,1,0,0,0,4440,4442,3,
	424,212,0,4441,4440,1,0,0,0,4441,4442,1,0,0,0,4442,417,1,0,0,0,4443,4444,
	5,1473,0,0,4444,4445,5,695,0,0,4445,4457,3,1426,713,0,4446,4447,5,2121,
	0,0,4447,4457,5,1446,0,0,4448,4449,5,257,0,0,4449,4451,3,1396,698,0,4450,
	4448,1,0,0,0,4450,4451,1,0,0,0,4451,4452,1,0,0,0,4452,4454,3,894,447,0,
	4453,4455,3,424,212,0,4454,4453,1,0,0,0,4454,4455,1,0,0,0,4455,4457,1,0,
	0,0,4456,4443,1,0,0,0,4456,4446,1,0,0,0,4456,4450,1,0,0,0,4457,419,1,0,
	0,0,4458,4459,5,1473,0,0,4459,4460,5,546,0,0,4460,4461,5,2223,0,0,4461,
	4462,3,1492,746,0,4462,4463,5,2224,0,0,4463,4464,5,695,0,0,4464,4465,3,
	1426,713,0,4465,4494,1,0,0,0,4466,4467,5,1376,0,0,4467,4468,5,2223,0,0,
	4468,4469,3,1492,746,0,4469,4470,5,2224,0,0,4470,4471,5,2121,0,0,4471,4472,
	5,1446,0,0,4472,4494,1,0,0,0,4473,4474,5,257,0,0,4474,4476,3,1396,698,0,
	4475,4473,1,0,0,0,4475,4476,1,0,0,0,4476,4477,1,0,0,0,4477,4478,5,544,0,
	0,4478,4479,5,722,0,0,4479,4484,5,2223,0,0,4480,4482,5,2229,0,0,4481,4480,
	1,0,0,0,4481,4482,1,0,0,0,4482,4483,1,0,0,0,4483,4485,3,1492,746,0,4484,
	4481,1,0,0,0,4485,4486,1,0,0,0,4486,4484,1,0,0,0,4486,4487,1,0,0,0,4487,
	4488,1,0,0,0,4488,4489,5,2224,0,0,4489,4491,3,894,447,0,4490,4492,3,424,
	212,0,4491,4490,1,0,0,0,4491,4492,1,0,0,0,4492,4494,1,0,0,0,4493,4458,1,
	0,0,0,4493,4466,1,0,0,0,4493,4475,1,0,0,0,4494,421,1,0,0,0,4495,4496,5,
	257,0,0,4496,4498,3,1396,698,0,4497,4495,1,0,0,0,4497,4498,1,0,0,0,4498,
	4530,1,0,0,0,4499,4500,5,2002,0,0,4500,4501,5,2223,0,0,4501,4506,3,1424,
	712,0,4502,4503,5,2229,0,0,4503,4505,3,1424,712,0,4504,4502,1,0,0,0,4505,
	4508,1,0,0,0,4506,4504,1,0,0,0,4506,4507,1,0,0,0,4507,4509,1,0,0,0,4508,
	4506,1,0,0,0,4509,4510,5,2224,0,0,4510,4531,1,0,0,0,4511,4512,5,1304,0,
	0,4512,4513,5,722,0,0,4513,4514,5,2223,0,0,4514,4519,3,1424,712,0,4515,
	4516,5,2229,0,0,4516,4518,3,1424,712,0,4517,4515,1,0,0,0,4518,4521,1,0,
	0,0,4519,4517,1,0,0,0,4519,4520,1,0,0,0,4520,4522,1,0,0,0,4521,4519,1,0,
	0,0,4522,4523,5,2224,0,0,4523,4531,1,0,0,0,4524,4531,3,892,446,0,4525,4526,
	5,180,0,0,4526,4527,5,2223,0,0,4527,4528,3,1234,617,0,4528,4529,5,2224,
	0,0,4529,4531,1,0,0,0,4530,4499,1,0,0,0,4530,4511,1,0,0,0,4530,4524,1,0,
	0,0,4530,4525,1,0,0,0,4531,4533,1,0,0,0,4532,4534,3,424,212,0,4533,4532,
	1,0,0,0,4533,4534,1,0,0,0,4534,423,1,0,0,0,4535,4537,5,1073,0,0,4536,4535,
	1,0,0,0,4536,4537,1,0,0,0,4537,4538,1,0,0,0,4538,4546,5,353,0,0,4539,4540,
	5,656,0,0,4540,4546,7,38,0,0,4541,4546,7,35,0,0,4542,4546,7,5,0,0,4543,
	4546,7,39,0,0,4544,4546,3,766,383,0,4545,4536,1,0,0,0,4545,4539,1,0,0,0,
	4545,4541,1,0,0,0,4545,4542,1,0,0,0,4545,4543,1,0,0,0,4545,4544,1,0,0,0,
	4546,4547,1,0,0,0,4547,4545,1,0,0,0,4547,4548,1,0,0,0,4548,425,1,0,0,0,
	4549,4550,5,39,0,0,4550,4551,5,1909,0,0,4551,4584,3,836,418,0,4552,4554,
	5,351,0,0,4553,4555,3,608,304,0,4554,4553,1,0,0,0,4554,4555,1,0,0,0,4555,
	4557,1,0,0,0,4556,4558,3,612,306,0,4557,4556,1,0,0,0,4557,4558,1,0,0,0,
	4558,4585,1,0,0,0,4559,4560,5,840,0,0,4560,4561,5,491,0,0,4561,4585,3,606,
	303,0,4562,4563,5,1412,0,0,4563,4585,3,606,303,0,4564,4585,5,205,0,0,4565,
	4566,5,1521,0,0,4566,4569,5,1549,0,0,4567,4568,5,720,0,0,4568,4570,3,606,
	303,0,4569,4567,1,0,0,0,4569,4570,1,0,0,0,4570,4585,1,0,0,0,4571,4572,5,
	1404,0,0,4572,4573,5,1964,0,0,4573,4585,3,440,220,0,4574,4575,3,672,336,
	0,4575,4576,5,93,0,0,4576,4585,1,0,0,0,4577,4585,3,428,214,0,4578,4585,
	3,430,215,0,4579,4585,3,432,216,0,4580,4585,3,436,218,0,4581,4585,3,468,
	234,0,4582,4585,3,438,219,0,4583,4585,3,458,229,0,4584,4552,1,0,0,0,4584,
	4559,1,0,0,0,4584,4562,1,0,0,0,4584,4564,1,0,0,0,4584,4565,1,0,0,0,4584,
	4571,1,0,0,0,4584,4574,1,0,0,0,4584,4577,1,0,0,0,4584,4578,1,0,0,0,4584,
	4579,1,0,0,0,4584,4580,1,0,0,0,4584,4581,1,0,0,0,4584,4582,1,0,0,0,4584,
	4583,1,0,0,0,4585,4586,1,0,0,0,4586,4587,5,2241,0,0,4587,427,1,0,0,0,4588,
	4591,5,18,0,0,4589,4592,3,460,230,0,4590,4592,3,462,231,0,4591,4589,1,0,
	0,0,4591,4590,1,0,0,0,4592,4635,1,0,0,0,4593,4594,5,411,0,0,4594,4597,7,
	40,0,0,4595,4598,3,748,374,0,4596,4598,5,2217,0,0,4597,4595,1,0,0,0,4597,
	4596,1,0,0,0,4598,4601,1,0,0,0,4599,4600,5,720,0,0,4600,4602,3,606,303,
	0,4601,4599,1,0,0,0,4601,4602,1,0,0,0,4602,4635,1,0,0,0,4603,4604,5,1521,
	0,0,4604,4607,5,1918,0,0,4605,4608,3,748,374,0,4606,4608,5,2217,0,0,4607,
	4605,1,0,0,0,4607,4606,1,0,0,0,4608,4611,1,0,0,0,4609,4610,5,720,0,0,4610,
	4612,3,606,303,0,4611,4609,1,0,0,0,4611,4612,1,0,0,0,4612,4635,1,0,0,0,
	4613,4614,5,1404,0,0,4614,4615,5,318,0,0,4615,4620,3,748,374,0,4616,4617,
	5,2229,0,0,4617,4619,3,748,374,0,4618,4616,1,0,0,0,4619,4622,1,0,0,0,4620,
	4618,1,0,0,0,4620,4621,1,0,0,0,4621,4623,1,0,0,0,4622,4620,1,0,0,0,4623,
	4624,5,1964,0,0,4624,4629,3,748,374,0,4625,4626,5,2229,0,0,4626,4628,3,
	748,374,0,4627,4625,1,0,0,0,4628,4631,1,0,0,0,4629,4627,1,0,0,0,4629,4630,
	1,0,0,0,4630,4635,1,0,0,0,4631,4629,1,0,0,0,4632,4633,7,40,0,0,4633,4635,
	3,314,157,0,4634,4588,1,0,0,0,4634,4593,1,0,0,0,4634,4603,1,0,0,0,4634,
	4613,1,0,0,0,4634,4632,1,0,0,0,4635,429,1,0,0,0,4636,4643,3,448,224,0,4637,
	4639,5,1010,0,0,4638,4637,1,0,0,0,4638,4639,1,0,0,0,4639,4640,1,0,0,0,4640,
	4641,5,542,0,0,4641,4643,5,779,0,0,4642,4636,1,0,0,0,4642,4638,1,0,0,0,
	4643,431,1,0,0,0,4644,4645,5,1909,0,0,4645,4648,5,573,0,0,4646,4649,3,434,
	217,0,4647,4649,5,2219,0,0,4648,4646,1,0,0,0,4648,4647,1,0,0,0,4649,433,
	1,0,0,0,4650,4651,3,1492,746,0,4651,435,1,0,0,0,4652,4662,5,1125,0,0,4653,
	4655,5,1112,0,0,4654,4656,7,41,0,0,4655,4654,1,0,0,0,4655,4656,1,0,0,0,
	4656,4662,1,0,0,0,4657,4658,5,1353,0,0,4658,4662,7,36,0,0,4659,4662,5,1243,
	0,0,4660,4662,5,1920,0,0,4661,4652,1,0,0,0,4661,4653,1,0,0,0,4661,4657,
	1,0,0,0,4661,4659,1,0,0,0,4661,4660,1,0,0,0,4662,437,1,0,0,0,4663,4664,
	5,532,0,0,4664,4665,7,42,0,0,4665,439,1,0,0,0,4666,4667,3,836,418,0,4667,
	441,1,0,0,0,4668,4670,5,288,0,0,4669,4671,7,43,0,0,4670,4669,1,0,0,0,4670,
	4671,1,0,0,0,4671,4675,1,0,0,0,4672,4676,3,444,222,0,4673,4676,3,454,227,
	0,4674,4676,3,456,228,0,4675,4672,1,0,0,0,4675,4673,1,0,0,0,4675,4674,1,
	0,0,0,4676,4677,1,0,0,0,4677,4678,5,2241,0,0,4678,443,1,0,0,0,4679,4680,
	5,1909,0,0,4680,4682,3,1488,744,0,4681,4683,3,460,230,0,4682,4681,1,0,0,
	0,4682,4683,1,0,0,0,4683,4701,1,0,0,0,4684,4685,5,840,0,0,4685,4686,5,491,
	0,0,4686,4700,3,606,303,0,4687,4688,5,132,0,0,4688,4700,3,606,303,0,4689,
	4700,3,448,224,0,4690,4691,5,542,0,0,4691,4700,5,779,0,0,4692,4700,7,27,
	0,0,4693,4694,5,444,0,0,4694,4700,3,446,223,0,4695,4700,5,351,0,0,4696,
	4700,3,450,225,0,4697,4700,3,452,226,0,4698,4700,3,438,219,0,4699,4684,
	1,0,0,0,4699,4687,1,0,0,0,4699,4689,1,0,0,0,4699,4690,1,0,0,0,4699,4692,
	1,0,0,0,4699,4693,1,0,0,0,4699,4695,1,0,0,0,4699,4696,1,0,0,0,4699,4697,
	1,0,0,0,4699,4698,1,0,0,0,4700,4703,1,0,0,0,4701,4699,1,0,0,0,4701,4702,
	1,0,0,0,4702,445,1,0,0,0,4703,4701,1,0,0,0,4704,4705,5,2063,0,0,4705,4706,
	5,2219,0,0,4706,447,1,0,0,0,4707,4708,7,44,0,0,4708,449,1,0,0,0,4709,4710,
	5,491,0,0,4710,4711,5,798,0,0,4711,4718,5,769,0,0,4712,4719,5,82,0,0,4713,
	4716,5,2000,0,0,4714,4715,5,1535,0,0,4715,4717,3,606,303,0,4716,4714,1,
	0,0,0,4716,4717,1,0,0,0,4717,4719,1,0,0,0,4718,4712,1,0,0,0,4718,4713,1,
	0,0,0,4718,4719,1,0,0,0,4719,451,1,0,0,0,4720,4721,5,1488,0,0,4721,4722,
	5,1549,0,0,4722,4723,5,798,0,0,4723,4724,7,45,0,0,4724,453,1,0,0,0,4725,
	4726,5,1920,0,0,4726,4727,5,1909,0,0,4727,4729,3,1488,744,0,4728,4730,3,
	462,231,0,4729,4728,1,0,0,0,4729,4730,1,0,0,0,4730,4732,1,0,0,0,4731,4733,
	3,432,216,0,4732,4731,1,0,0,0,4732,4733,1,0,0,0,4733,4735,1,0,0,0,4734,
	4736,3,450,225,0,4735,4734,1,0,0,0,4735,4736,1,0,0,0,4736,455,1,0,0,0,4737,
	4738,5,1998,0,0,4738,4739,5,1909,0,0,4739,4741,3,1488,744,0,4740,4742,3,
	460,230,0,4741,4740,1,0,0,0,4741,4742,1,0,0,0,4742,4744,1,0,0,0,4743,4745,
	3,450,225,0,4744,4743,1,0,0,0,4744,4745,1,0,0,0,4745,4747,1,0,0,0,4746,
	4748,3,458,229,0,4747,4746,1,0,0,0,4747,4748,1,0,0,0,4748,457,1,0,0,0,4749,
	4750,5,1428,0,0,4750,4751,7,46,0,0,4751,459,1,0,0,0,4752,4754,5,318,0,0,
	4753,4755,5,2229,0,0,4754,4753,1,0,0,0,4754,4755,1,0,0,0,4755,4756,1,0,
	0,0,4756,4757,3,464,232,0,4757,461,1,0,0,0,4758,4760,5,1918,0,0,4759,4761,
	5,2229,0,0,4760,4759,1,0,0,0,4760,4761,1,0,0,0,4761,4762,1,0,0,0,4762,4763,
	3,464,232,0,4763,463,1,0,0,0,4764,4766,5,2219,0,0,4765,4764,1,0,0,0,4765,
	4766,1,0,0,0,4766,4769,1,0,0,0,4767,4768,5,1535,0,0,4768,4770,3,606,303,
	0,4769,4767,1,0,0,0,4769,4770,1,0,0,0,4770,4772,1,0,0,0,4771,4773,5,1432,
	0,0,4772,4771,1,0,0,0,4772,4773,1,0,0,0,4773,4775,1,0,0,0,4774,4776,3,468,
	234,0,4775,4774,1,0,0,0,4775,4776,1,0,0,0,4776,465,1,0,0,0,4777,4778,5,
	318,0,0,4778,4790,5,2219,0,0,4779,4784,5,2223,0,0,4780,4782,5,2229,0,0,
	4781,4780,1,0,0,0,4781,4782,1,0,0,0,4782,4783,1,0,0,0,4783,4785,5,2219,
	0,0,4784,4781,1,0,0,0,4785,4786,1,0,0,0,4786,4784,1,0,0,0,4786,4787,1,0,
	0,0,4787,4788,1,0,0,0,4788,4790,5,2224,0,0,4789,4777,1,0,0,0,4789,4779,
	1,0,0,0,4789,4790,1,0,0,0,4790,4793,1,0,0,0,4791,4792,5,1535,0,0,4792,4794,
	3,606,303,0,4793,4791,1,0,0,0,4793,4794,1,0,0,0,4794,4797,1,0,0,0,4795,
	4796,5,132,0,0,4796,4798,3,606,303,0,4797,4795,1,0,0,0,4797,4798,1,0,0,
	0,4798,4800,1,0,0,0,4799,4801,5,1432,0,0,4800,4799,1,0,0,0,4800,4801,1,
	0,0,0,4801,467,1,0,0,0,4802,4812,5,85,0,0,4803,4813,5,1113,0,0,4804,4807,
	5,1128,0,0,4805,4806,5,906,0,0,4806,4808,3,606,303,0,4807,4805,1,0,0,0,
	4807,4808,1,0,0,0,4808,4810,1,0,0,0,4809,4811,3,470,235,0,4810,4809,1,0,
	0,0,4810,4811,1,0,0,0,4811,4813,1,0,0,0,4812,4803,1,0,0,0,4812,4804,1,0,
	0,0,4813,469,1,0,0,0,4814,4817,5,820,0,0,4815,4818,5,2004,0,0,4816,4818,
	3,606,303,0,4817,4815,1,0,0,0,4817,4816,1,0,0,0,4818,471,1,0,0,0,4819,4820,
	5,144,0,0,4820,4821,7,38,0,0,4821,473,1,0,0,0,4822,4828,5,1021,0,0,4823,
	4825,5,1195,0,0,4824,4826,5,2217,0,0,4825,4824,1,0,0,0,4825,4826,1,0,0,
	0,4826,4828,1,0,0,0,4827,4822,1,0,0,0,4827,4823,1,0,0,0,4828,475,1,0,0,
	0,4829,4830,5,39,0,0,4830,4831,5,809,0,0,4831,4832,5,2099,0,0,4832,4858,
	3,1426,713,0,4833,4859,3,610,305,0,4834,4859,3,484,242,0,4835,4859,3,608,
	304,0,4836,4841,3,820,410,0,4837,4838,5,2229,0,0,4838,4840,3,820,410,0,
	4839,4837,1,0,0,0,4840,4843,1,0,0,0,4841,4839,1,0,0,0,4841,4842,1,0,0,0,
	4842,4859,1,0,0,0,4843,4841,1,0,0,0,4844,4849,3,822,411,0,4845,4846,5,2229,
	0,0,4846,4848,3,822,411,0,4847,4845,1,0,0,0,4848,4851,1,0,0,0,4849,4847,
	1,0,0,0,4849,4850,1,0,0,0,4850,4859,1,0,0,0,4851,4849,1,0,0,0,4852,4859,
	3,474,237,0,4853,4859,3,448,224,0,4854,4859,3,632,316,0,4855,4859,3,634,
	317,0,4856,4859,3,636,318,0,4857,4859,3,658,329,0,4858,4833,1,0,0,0,4858,
	4834,1,0,0,0,4858,4835,1,0,0,0,4858,4836,1,0,0,0,4858,4844,1,0,0,0,4858,
	4852,1,0,0,0,4858,4853,1,0,0,0,4858,4854,1,0,0,0,4858,4855,1,0,0,0,4858,
	4856,1,0,0,0,4858,4857,1,0,0,0,4858,4859,1,0,0,0,4859,4861,1,0,0,0,4860,
	4862,3,756,378,0,4861,4860,1,0,0,0,4861,4862,1,0,0,0,4862,4866,1,0,0,0,
	4863,4864,5,2063,0,0,4864,4865,5,631,0,0,4865,4867,3,610,305,0,4866,4863,
	1,0,0,0,4866,4867,1,0,0,0,4867,4869,1,0,0,0,4868,4870,3,478,239,0,4869,
	4868,1,0,0,0,4869,4870,1,0,0,0,4870,4878,1,0,0,0,4871,4872,3,648,324,0,
	4872,4873,5,1334,0,0,4873,4874,5,1436,0,0,4874,4879,1,0,0,0,4875,4879,5,
	223,0,0,4876,4877,5,253,0,0,4877,4879,5,553,0,0,4878,4871,1,0,0,0,4878,
	4875,1,0,0,0,4878,4876,1,0,0,0,4878,4879,1,0,0,0,4879,4880,1,0,0,0,4880,
	4881,5,2241,0,0,4881,477,1,0,0,0,4882,4883,3,480,240,0,4883,479,1,0,0,0,
	4884,4911,5,1377,0,0,4885,4912,5,511,0,0,4886,4912,5,224,0,0,4887,4912,
	5,542,0,0,4888,4889,5,1128,0,0,4889,4912,7,47,0,0,4890,4891,5,1569,0,0,
	4891,4892,5,2121,0,0,4892,4912,3,1234,617,0,4893,4894,5,906,0,0,4894,4912,
	3,1234,617,0,4895,4896,5,2121,0,0,4896,4897,5,1304,0,0,4897,4912,5,722,
	0,0,4898,4900,5,2063,0,0,4899,4901,5,351,0,0,4900,4899,1,0,0,0,4900,4901,
	1,0,0,0,4901,4902,1,0,0,0,4902,4903,5,803,0,0,4903,4904,5,1441,0,0,4904,
	4906,5,1488,0,0,4905,4907,3,482,241,0,4906,4905,1,0,0,0,4906,4907,1,0,0,
	0,4907,4912,1,0,0,0,4908,4909,5,2063,0,0,4909,4910,7,48,0,0,4910,4912,5,
	258,0,0,4911,4885,1,0,0,0,4911,4886,1,0,0,0,4911,4887,1,0,0,0,4911,4888,
	1,0,0,0,4911,4890,1,0,0,0,4911,4893,1,0,0,0,4911,4895,1,0,0,0,4911,4898,
	1,0,0,0,4911,4908,1,0,0,0,4912,4913,1,0,0,0,4913,4911,1,0,0,0,4913,4914,
	1,0,0,0,4914,481,1,0,0,0,4915,4916,3,1492,746,0,4916,483,1,0,0,0,4917,4918,
	5,863,0,0,4918,4919,5,2223,0,0,4919,4923,3,1424,712,0,4920,4921,5,443,0,
	0,4921,4924,3,834,417,0,4922,4924,5,349,0,0,4923,4920,1,0,0,0,4923,4922,
	1,0,0,0,4923,4924,1,0,0,0,4924,4925,1,0,0,0,4925,4926,5,2224,0,0,4926,485,
	1,0,0,0,4927,4928,5,39,0,0,4928,4929,5,809,0,0,4929,4930,5,2099,0,0,4930,
	4932,5,783,0,0,4931,4933,5,542,0,0,4932,4931,1,0,0,0,4932,4933,1,0,0,0,
	4933,4934,1,0,0,0,4934,4935,5,1128,0,0,4935,4944,3,1426,713,0,4936,4945,
	3,610,305,0,4937,4945,3,488,244,0,4938,4945,3,474,237,0,4939,4945,3,448,
	224,0,4940,4945,3,632,316,0,4941,4945,3,636,318,0,4942,4945,3,490,245,0,
	4943,4945,3,658,329,0,4944,4936,1,0,0,0,4944,4937,1,0,0,0,4944,4938,1,0,
	0,0,4944,4939,1,0,0,0,4944,4940,1,0,0,0,4944,4941,1,0,0,0,4944,4942,1,0,
	0,0,4944,4943,1,0,0,0,4944,4945,1,0,0,0,4945,4947,1,0,0,0,4946,4948,3,492,
	246,0,4947,4946,1,0,0,0,4947,4948,1,0,0,0,4948,4950,1,0,0,0,4949,4951,3,
	506,253,0,4950,4949,1,0,0,0,4950,4951,1,0,0,0,4951,4952,1,0,0,0,4952,4953,
	5,2241,0,0,4953,487,1,0,0,0,4954,4955,5,18,0,0,4955,4956,5,2223,0,0,4956,
	4957,3,1424,712,0,4957,4958,5,2224,0,0,4958,489,1,0,0,0,4959,4960,5,874,
	0,0,4960,4962,3,616,308,0,4961,4963,3,474,237,0,4962,4961,1,0,0,0,4962,
	4963,1,0,0,0,4963,491,1,0,0,0,4964,4997,5,18,0,0,4965,4966,5,1107,0,0,4966,
	4972,5,605,0,0,4967,4968,5,1304,0,0,4968,4972,5,722,0,0,4969,4972,5,1446,
	0,0,4970,4972,5,1496,0,0,4971,4965,1,0,0,0,4971,4967,1,0,0,0,4971,4969,
	1,0,0,0,4971,4970,1,0,0,0,4972,4984,1,0,0,0,4973,4974,5,2223,0,0,4974,4979,
	3,1424,712,0,4975,4976,5,2229,0,0,4976,4978,3,1424,712,0,4977,4975,1,0,
	0,0,4978,4981,1,0,0,0,4979,4977,1,0,0,0,4979,4980,1,0,0,0,4980,4982,1,0,
	0,0,4981,4979,1,0,0,0,4982,4983,5,2224,0,0,4983,4985,1,0,0,0,4984,4973,
	1,0,0,0,4984,4985,1,0,0,0,4985,4998,1,0,0,0,4986,4987,5,2223,0,0,4987,4992,
	3,1424,712,0,4988,4989,5,2229,0,0,4989,4991,3,1424,712,0,4990,4988,1,0,
	0,0,4991,4994,1,0,0,0,4992,4990,1,0,0,0,4992,4993,1,0,0,0,4993,4995,1,0,
	0,0,4994,4992,1,0,0,0,4995,4996,5,2224,0,0,4996,4998,1,0,0,0,4997,4971,
	1,0,0,0,4997,4986,1,0,0,0,4998,5000,1,0,0,0,4999,5001,3,504,252,0,5000,
	4999,1,0,0,0,5000,5001,1,0,0,0,5001,493,1,0,0,0,5002,5003,3,1234,617,0,
	5003,495,1,0,0,0,5004,5005,3,1234,617,0,5005,497,1,0,0,0,5006,5007,7,49,
	0,0,5007,499,1,0,0,0,5008,5009,7,50,0,0,5009,501,1,0,0,0,5010,5011,5,288,
	0,0,5011,5012,5,809,0,0,5012,5013,5,2099,0,0,5013,5014,5,783,0,0,5014,5015,
	5,1128,0,0,5015,5025,3,1426,713,0,5016,5022,3,610,305,0,5017,5018,5,1909,
	0,0,5018,5022,3,1488,744,0,5019,5022,3,448,224,0,5020,5022,7,51,0,0,5021,
	5016,1,0,0,0,5021,5017,1,0,0,0,5021,5019,1,0,0,0,5021,5020,1,0,0,0,5022,
	5023,1,0,0,0,5023,5021,1,0,0,0,5023,5024,1,0,0,0,5024,5026,1,0,0,0,5025,
	5021,1,0,0,0,5025,5026,1,0,0,0,5026,5028,1,0,0,0,5027,5029,3,474,237,0,
	5028,5027,1,0,0,0,5028,5029,1,0,0,0,5029,5069,1,0,0,0,5030,5046,5,2121,
	0,0,5031,5033,5,2229,0,0,5032,5031,1,0,0,0,5032,5033,1,0,0,0,5033,5042,
	1,0,0,0,5034,5035,5,1107,0,0,5035,5043,5,605,0,0,5036,5037,5,1304,0,0,5037,
	5043,5,722,0,0,5038,5043,5,1446,0,0,5039,5043,5,1496,0,0,5040,5041,5,218,
	0,0,5041,5043,5,1472,0,0,5042,5034,1,0,0,0,5042,5036,1,0,0,0,5042,5038,
	1,0,0,0,5042,5039,1,0,0,0,5042,5040,1,0,0,0,5043,5045,1,0,0,0,5044,5032,
	1,0,0,0,5045,5048,1,0,0,0,5046,5044,1,0,0,0,5046,5047,1,0,0,0,5047,5062,
	1,0,0,0,5048,5046,1,0,0,0,5049,5054,5,2223,0,0,5050,5052,5,2229,0,0,5051,
	5050,1,0,0,0,5051,5052,1,0,0,0,5052,5053,1,0,0,0,5053,5055,3,1492,746,0,
	5054,5051,1,0,0,0,5055,5056,1,0,0,0,5056,5054,1,0,0,0,5056,5057,1,0,0,0,
	5057,5058,1,0,0,0,5058,5060,5,2224,0,0,5059,5061,3,504,252,0,5060,5059,
	1,0,0,0,5060,5061,1,0,0,0,5061,5063,1,0,0,0,5062,5049,1,0,0,0,5062,5063,
	1,0,0,0,5063,5065,1,0,0,0,5064,5066,3,506,253,0,5065,5064,1,0,0,0,5065,
	5066,1,0,0,0,5066,5068,1,0,0,0,5067,5030,1,0,0,0,5068,5071,1,0,0,0,5069,
	5067,1,0,0,0,5069,5070,1,0,0,0,5070,503,1,0,0,0,5071,5069,1,0,0,0,5072,
	5073,7,50,0,0,5073,5074,5,903,0,0,5074,5075,5,2073,0,0,5075,505,1,0,0,0,
	5076,5077,5,1326,0,0,5077,5079,5,613,0,0,5078,5080,7,49,0,0,5079,5078,1,
	0,0,0,5079,5080,1,0,0,0,5080,507,1,0,0,0,5081,5082,5,288,0,0,5082,5083,
	5,809,0,0,5083,5084,5,2099,0,0,5084,5087,3,1426,713,0,5085,5086,5,1115,
	0,0,5086,5088,3,1400,700,0,5087,5085,1,0,0,0,5087,5088,1,0,0,0,5088,5109,
	1,0,0,0,5089,5090,5,1128,0,0,5090,5091,5,1288,0,0,5091,5095,5,1912,0,0,
	5092,5093,7,52,0,0,5093,5094,5,1369,0,0,5094,5096,5,1291,0,0,5095,5092,
	1,0,0,0,5095,5096,1,0,0,0,5096,5110,1,0,0,0,5097,5099,3,618,309,0,5098,
	5097,1,0,0,0,5098,5099,1,0,0,0,5099,5101,1,0,0,0,5100,5102,7,51,0,0,5101,
	5100,1,0,0,0,5101,5102,1,0,0,0,5102,5104,1,0,0,0,5103,5105,3,474,237,0,
	5104,5103,1,0,0,0,5104,5105,1,0,0,0,5105,5107,1,0,0,0,5106,5108,3,472,236,
	0,5107,5106,1,0,0,0,5107,5108,1,0,0,0,5108,5110,1,0,0,0,5109,5089,1,0,0,
	0,5109,5098,1,0,0,0,5110,5128,1,0,0,0,5111,5112,5,2063,0,0,5112,5122,5,
	631,0,0,5113,5117,3,610,305,0,5114,5115,5,1909,0,0,5115,5117,3,1488,744,
	0,5116,5113,1,0,0,0,5116,5114,1,0,0,0,5117,5118,1,0,0,0,5118,5116,1,0,0,
	0,5118,5119,1,0,0,0,5119,5121,1,0,0,0,5120,5116,1,0,0,0,5121,5124,1,0,0,
	0,5122,5120,1,0,0,0,5122,5123,1,0,0,0,5123,5129,1,0,0,0,5124,5122,1,0,0,
	0,5125,5126,5,2063,0,0,5126,5127,5,1010,0,0,5127,5129,5,631,0,0,5128,5111,
	1,0,0,0,5128,5125,1,0,0,0,5128,5129,1,0,0,0,5129,5131,1,0,0,0,5130,5132,
	3,510,255,0,5131,5130,1,0,0,0,5131,5132,1,0,0,0,5132,5135,1,0,0,0,5133,
	5134,5,546,0,0,5134,5136,5,2025,0,0,5135,5133,1,0,0,0,5135,5136,1,0,0,0,
	5136,5140,1,0,0,0,5137,5138,7,5,0,0,5138,5139,5,1334,0,0,5139,5141,5,1436,
	0,0,5140,5137,1,0,0,0,5140,5141,1,0,0,0,5141,5142,1,0,0,0,5142,5143,5,61,
	0,0,5143,5144,3,1040,520,0,5144,5145,5,2241,0,0,5145,509,1,0,0,0,5146,5147,
	5,902,0,0,5147,5186,5,1377,0,0,5148,5181,5,1377,0,0,5149,5182,7,53,0,0,
	5150,5151,5,1128,0,0,5151,5182,7,47,0,0,5152,5153,5,1569,0,0,5153,5156,
	5,2121,0,0,5154,5156,5,906,0,0,5155,5152,1,0,0,0,5155,5154,1,0,0,0,5156,
	5182,1,0,0,0,5157,5161,5,2121,0,0,5158,5159,5,1304,0,0,5159,5162,5,722,
	0,0,5160,5162,5,1446,0,0,5161,5158,1,0,0,0,5161,5160,1,0,0,0,5162,5182,
	1,0,0,0,5163,5176,5,2063,0,0,5164,5166,5,351,0,0,5165,5167,7,54,0,0,5166,
	5165,1,0,0,0,5166,5167,1,0,0,0,5167,5168,1,0,0,0,5168,5169,5,1441,0,0,5169,
	5177,5,1488,0,0,5170,5172,7,54,0,0,5171,5170,1,0,0,0,5171,5172,1,0,0,0,
	5172,5173,1,0,0,0,5173,5174,5,1441,0,0,5174,5175,5,1488,0,0,5175,5177,5,
	2252,0,0,5176,5164,1,0,0,0,5176,5171,1,0,0,0,5177,5182,1,0,0,0,5178,5179,
	5,2063,0,0,5179,5180,7,48,0,0,5180,5182,5,258,0,0,5181,5149,1,0,0,0,5181,
	5150,1,0,0,0,5181,5155,1,0,0,0,5181,5157,1,0,0,0,5181,5163,1,0,0,0,5181,
	5178,1,0,0,0,5182,5183,1,0,0,0,5183,5181,1,0,0,0,5183,5184,1,0,0,0,5184,
	5186,1,0,0,0,5185,5146,1,0,0,0,5185,5148,1,0,0,0,5186,511,1,0,0,0,5187,
	5190,5,288,0,0,5188,5189,5,1172,0,0,5189,5191,5,1407,0,0,5190,5188,1,0,
	0,0,5190,5191,1,0,0,0,5191,5192,1,0,0,0,5192,5193,5,265,0,0,5193,5194,3,
	514,257,0,5194,5198,5,2063,0,0,5195,5196,3,1434,717,0,5196,5197,5,2216,
	0,0,5197,5199,1,0,0,0,5198,5195,1,0,0,0,5198,5199,1,0,0,0,5199,5200,1,0,
	0,0,5200,5205,3,1376,688,0,5201,5202,5,655,0,0,5202,5206,7,23,0,0,5203,
	5204,5,4,0,0,5204,5206,5,567,0,0,5205,5201,1,0,0,0,5205,5203,1,0,0,0,5205,
	5206,1,0,0,0,5206,5207,1,0,0,0,5207,5208,5,2241,0,0,5208,513,1,0,0,0,5209,
	5210,3,1488,744,0,5210,515,1,0,0,0,5211,5212,5,288,0,0,5212,5213,5,197,
	0,0,5213,5214,3,184,92,0,5214,5215,5,2223,0,0,5215,5216,3,1424,712,0,5216,
	5218,3,1460,730,0,5217,5219,5,1544,0,0,5218,5217,1,0,0,0,5218,5219,1,0,
	0,0,5219,5228,1,0,0,0,5220,5221,5,2229,0,0,5221,5222,3,1424,712,0,5222,
	5224,3,1460,730,0,5223,5225,5,1544,0,0,5224,5223,1,0,0,0,5224,5225,1,0,
	0,0,5225,5227,1,0,0,0,5226,5220,1,0,0,0,5227,5230,1,0,0,0,5228,5226,1,0,
	0,0,5228,5229,1,0,0,0,5229,5231,1,0,0,0,5230,5228,1,0,0,0,5231,5251,5,2224,
	0,0,5232,5250,3,610,305,0,5233,5234,5,1535,0,0,5234,5250,3,606,303,0,5235,
	5236,5,1909,0,0,5236,5250,3,836,418,0,5237,5250,5,631,0,0,5238,5239,5,1531,
	0,0,5239,5241,5,1912,0,0,5240,5238,1,0,0,0,5240,5241,1,0,0,0,5241,5242,
	1,0,0,0,5242,5243,5,583,0,0,5243,5247,5,2217,0,0,5244,5245,5,582,0,0,5245,
	5246,5,695,0,0,5246,5248,3,1234,617,0,5247,5244,1,0,0,0,5247,5248,1,0,0,
	0,5248,5250,1,0,0,0,5249,5232,1,0,0,0,5249,5233,1,0,0,0,5249,5235,1,0,0,
	0,5249,5237,1,0,0,0,5249,5240,1,0,0,0,5250,5253,1,0,0,0,5251,5249,1,0,0,
	0,5251,5252,1,0,0,0,5252,5255,1,0,0,0,5253,5251,1,0,0,0,5254,5256,3,474,
	237,0,5255,5254,1,0,0,0,5255,5256,1,0,0,0,5256,5258,1,0,0,0,5257,5259,7,
	55,0,0,5258,5257,1,0,0,0,5258,5259,1,0,0,0,5259,5261,1,0,0,0,5260,5262,
	7,51,0,0,5261,5260,1,0,0,0,5261,5262,1,0,0,0,5262,5263,1,0,0,0,5263,5264,
	5,2241,0,0,5264,517,1,0,0,0,5265,5268,5,288,0,0,5266,5267,5,566,0,0,5267,
	5269,5,1920,0,0,5268,5266,1,0,0,0,5268,5269,1,0,0,0,5269,5270,1,0,0,0,5270,
	5271,5,1912,0,0,5271,5275,3,1426,713,0,5272,5276,3,540,270,0,5273,5276,
	3,530,265,0,5274,5276,3,520,260,0,5275,5272,1,0,0,0,5275,5273,1,0,0,0,5275,
	5274,1,0,0,0,5276,5279,1,0,0,0,5277,5278,5,61,0,0,5278,5280,3,1040,520,
	0,5279,5277,1,0,0,0,5279,5280,1,0,0,0,5280,5281,1,0,0,0,5281,5282,5,2241,
	0,0,5282,519,1,0,0,0,5283,5284,5,1115,0,0,5284,5289,5,2162,0,0,5285,5286,
	5,2223,0,0,5286,5287,3,536,268,0,5287,5288,5,2224,0,0,5288,5290,1,0,0,0,
	5289,5285,1,0,0,0,5289,5290,1,0,0,0,5290,5293,1,0,0,0,5291,5292,5,2162,
	0,0,5292,5294,3,526,263,0,5293,5291,1,0,0,0,5293,5294,1,0,0,0,5294,5296,
	1,0,0,0,5295,5297,3,528,264,0,5296,5295,1,0,0,0,5296,5297,1,0,0,0,5297,
	5299,1,0,0,0,5298,5300,3,522,261,0,5299,5298,1,0,0,0,5299,5300,1,0,0,0,
	5300,5305,1,0,0,0,5301,5302,5,1128,0,0,5302,5303,5,218,0,0,5303,5304,7,
	56,0,0,5304,5306,5,1452,0,0,5305,5301,1,0,0,0,5305,5306,1,0,0,0,5306,5308,
	1,0,0,0,5307,5309,3,534,267,0,5308,5307,1,0,0,0,5308,5309,1,0,0,0,5309,
	5311,1,0,0,0,5310,5312,3,532,266,0,5311,5310,1,0,0,0,5311,5312,1,0,0,0,
	5312,5314,1,0,0,0,5313,5315,3,618,309,0,5314,5313,1,0,0,0,5314,5315,1,0,
	0,0,5315,5317,1,0,0,0,5316,5318,3,840,420,0,5317,5316,1,0,0,0,5317,5318,
	1,0,0,0,5318,5320,1,0,0,0,5319,5321,3,544,272,0,5320,5319,1,0,0,0,5320,
	5321,1,0,0,0,5321,5323,1,0,0,0,5322,5324,7,51,0,0,5323,5322,1,0,0,0,5323,
	5324,1,0,0,0,5324,5330,1,0,0,0,5325,5326,5,1424,0,0,5326,5327,5,2223,0,
	0,5327,5328,5,860,0,0,5328,5329,7,57,0,0,5329,5331,5,2224,0,0,5330,5325,
	1,0,0,0,5330,5331,1,0,0,0,5331,5333,1,0,0,0,5332,5334,3,474,237,0,5333,
	5332,1,0,0,0,5333,5334,1,0,0,0,5334,5336,1,0,0,0,5335,5337,7,55,0,0,5336,
	5335,1,0,0,0,5336,5337,1,0,0,0,5337,5343,1,0,0,0,5338,5340,3,764,382,0,
	5339,5338,1,0,0,0,5340,5341,1,0,0,0,5341,5339,1,0,0,0,5341,5342,1,0,0,0,
	5342,5344,1,0,0,0,5343,5339,1,0,0,0,5343,5344,1,0,0,0,5344,5346,1,0,0,0,
	5345,5347,3,620,310,0,5346,5345,1,0,0,0,5346,5347,1,0,0,0,5347,5349,1,0,
	0,0,5348,5350,3,622,311,0,5349,5348,1,0,0,0,5349,5350,1,0,0,0,5350,521,
	1,0,0,0,5351,5352,5,2101,0,0,5352,5353,5,214,0,0,5353,5354,5,2223,0,0,5354,
	5355,3,1424,712,0,5355,5356,5,61,0,0,5356,5357,5,2223,0,0,5357,5358,3,1234,
	617,0,5358,5368,5,2224,0,0,5359,5360,5,2229,0,0,5360,5361,3,1424,712,0,
	5361,5362,5,61,0,0,5362,5363,5,2223,0,0,5363,5364,3,1234,617,0,5364,5365,
	5,2224,0,0,5365,5367,1,0,0,0,5366,5359,1,0,0,0,5367,5370,1,0,0,0,5368,5366,
	1,0,0,0,5368,5369,1,0,0,0,5369,5371,1,0,0,0,5370,5368,1,0,0,0,5371,5372,
	5,2224,0,0,5372,523,1,0,0,0,5373,5375,5,2162,0,0,5374,5376,5,213,0,0,5375,
	5374,1,0,0,0,5375,5376,1,0,0,0,5376,5377,1,0,0,0,5377,5379,3,1424,712,0,
	5378,5380,3,526,263,0,5379,5378,1,0,0,0,5379,5380,1,0,0,0,5380,5382,1,0,
	0,0,5381,5383,3,528,264,0,5382,5381,1,0,0,0,5382,5383,1,0,0,0,5383,525,
	1,0,0,0,5384,5385,5,1594,0,0,5385,5409,5,61,0,0,5386,5387,5,1107,0,0,5387,
	5410,5,1397,0,0,5388,5390,7,58,0,0,5389,5388,1,0,0,0,5389,5390,1,0,0,0,
	5390,5394,1,0,0,0,5391,5395,5,192,0,0,5392,5393,5,111,0,0,5393,5395,5,2163,
	0,0,5394,5391,1,0,0,0,5394,5392,1,0,0,0,5395,5407,1,0,0,0,5396,5401,3,814,
	407,0,5397,5398,5,2223,0,0,5398,5399,3,826,413,0,5399,5400,5,2224,0,0,5400,
	5402,1,0,0,0,5401,5397,1,0,0,0,5401,5402,1,0,0,0,5402,5408,1,0,0,0,5403,
	5404,5,2223,0,0,5404,5405,3,826,413,0,5405,5406,5,2224,0,0,5406,5408,1,
	0,0,0,5407,5396,1,0,0,0,5407,5403,1,0,0,0,5407,5408,1,0,0,0,5408,5410,1,
	0,0,0,5409,5386,1,0,0,0,5409,5389,1,0,0,0,5410,5416,1,0,0,0,5411,5412,5,
	1594,0,0,5412,5413,5,2079,0,0,5413,5414,5,61,0,0,5414,5416,7,59,0,0,5415,
	5384,1,0,0,0,5415,5411,1,0,0,0,5416,527,1,0,0,0,5417,5418,5,2157,0,0,5418,
	5420,5,2220,0,0,5419,5417,1,0,0,0,5419,5420,1,0,0,0,5420,5421,1,0,0,0,5421,
	5422,5,427,0,0,5422,5426,5,2220,0,0,5423,5424,3,650,325,0,5424,5425,5,1011,
	0,0,5425,5427,1,0,0,0,5426,5423,1,0,0,0,5426,5427,1,0,0,0,5427,5431,1,0,
	0,0,5428,5429,3,650,325,0,5429,5430,5,49,0,0,5430,5432,1,0,0,0,5431,5428,
	1,0,0,0,5431,5432,1,0,0,0,5432,529,1,0,0,0,5433,5434,5,1115,0,0,5434,5436,
	3,1400,700,0,5435,5437,3,538,269,0,5436,5435,1,0,0,0,5436,5437,1,0,0,0,
	5437,5449,1,0,0,0,5438,5439,5,2223,0,0,5439,5444,3,536,268,0,5440,5441,
	5,2229,0,0,5441,5443,3,536,268,0,5442,5440,1,0,0,0,5443,5446,1,0,0,0,5444,
	5442,1,0,0,0,5444,5445,1,0,0,0,5445,5447,1,0,0,0,5446,5444,1,0,0,0,5447,
	5448,5,2224,0,0,5448,5450,1,0,0,0,5449,5438,1,0,0,0,5449,5450,1,0,0,0,5450,
	5455,1,0,0,0,5451,5452,5,1128,0,0,5452,5453,5,218,0,0,5453,5454,7,56,0,
	0,5454,5456,5,1452,0,0,5455,5451,1,0,0,0,5455,5456,1,0,0,0,5456,5458,1,
	0,0,0,5457,5459,3,534,267,0,5458,5457,1,0,0,0,5458,5459,1,0,0,0,5459,5461,
	1,0,0,0,5460,5462,3,532,266,0,5461,5460,1,0,0,0,5461,5462,1,0,0,0,5462,
	5464,1,0,0,0,5463,5465,3,618,309,0,5464,5463,1,0,0,0,5464,5465,1,0,0,0,
	5465,5467,1,0,0,0,5466,5468,3,840,420,0,5467,5466,1,0,0,0,5467,5468,1,0,
	0,0,5468,5470,1,0,0,0,5469,5471,3,544,272,0,5470,5469,1,0,0,0,5470,5471,
	1,0,0,0,5471,5473,1,0,0,0,5472,5474,7,51,0,0,5473,5472,1,0,0,0,5473,5474,
	1,0,0,0,5474,5480,1,0,0,0,5475,5476,5,1424,0,0,5476,5477,5,2223,0,0,5477,
	5478,5,860,0,0,5478,5479,7,57,0,0,5479,5481,5,2224,0,0,5480,5475,1,0,0,
	0,5480,5481,1,0,0,0,5481,5483,1,0,0,0,5482,5484,3,474,237,0,5483,5482,1,
	0,0,0,5483,5484,1,0,0,0,5484,5486,1,0,0,0,5485,5487,7,55,0,0,5486,5485,
	1,0,0,0,5486,5487,1,0,0,0,5487,5493,1,0,0,0,5488,5490,3,764,382,0,5489,
	5488,1,0,0,0,5490,5491,1,0,0,0,5491,5489,1,0,0,0,5491,5492,1,0,0,0,5492,
	5494,1,0,0,0,5493,5489,1,0,0,0,5493,5494,1,0,0,0,5494,5496,1,0,0,0,5495,
	5497,3,620,310,0,5496,5495,1,0,0,0,5496,5497,1,0,0,0,5497,5499,1,0,0,0,
	5498,5500,3,622,311,0,5499,5498,1,0,0,0,5499,5500,1,0,0,0,5500,531,1,0,
	0,0,5501,5503,5,1116,0,0,5502,5504,3,1414,707,0,5503,5502,1,0,0,0,5503,
	5504,1,0,0,0,5504,5505,1,0,0,0,5505,5509,5,2223,0,0,5506,5510,3,610,305,
	0,5507,5508,5,1909,0,0,5508,5510,3,836,418,0,5509,5506,1,0,0,0,5509,5507,
	1,0,0,0,5510,5511,1,0,0,0,5511,5509,1,0,0,0,5511,5512,1,0,0,0,5512,5513,
	1,0,0,0,5513,5514,5,2224,0,0,5514,533,1,0,0,0,5515,5516,5,1107,0,0,5516,
	5517,5,602,0,0,5517,5522,5,695,0,0,5518,5519,5,1779,0,0,5519,5523,5,564,
	0,0,5520,5521,5,1304,0,0,5521,5523,5,722,0,0,5522,5518,1,0,0,0,5522,5520,
	1,0,0,0,5523,535,1,0,0,0,5524,5527,3,1424,712,0,5525,5527,3,1364,682,0,
	5526,5524,1,0,0,0,5526,5525,1,0,0,0,5527,5530,1,0,0,0,5528,5529,5,351,0,
	0,5529,5531,3,1234,617,0,5530,5528,1,0,0,0,5530,5531,1,0,0,0,5531,5541,
	1,0,0,0,5532,5537,3,416,208,0,5533,5534,5,2229,0,0,5534,5536,3,416,208,
	0,5535,5533,1,0,0,0,5536,5539,1,0,0,0,5537,5535,1,0,0,0,5537,5538,1,0,0,
	0,5538,5542,1,0,0,0,5539,5537,1,0,0,0,5540,5542,3,418,209,0,5541,5532,1,
	0,0,0,5541,5540,1,0,0,0,5541,5542,1,0,0,0,5542,5547,1,0,0,0,5543,5547,3,
	422,211,0,5544,5547,3,420,210,0,5545,5547,3,864,432,0,5546,5526,1,0,0,0,
	5546,5543,1,0,0,0,5546,5544,1,0,0,0,5546,5545,1,0,0,0,5547,537,1,0,0,0,
	5548,5550,5,1073,0,0,5549,5548,1,0,0,0,5549,5550,1,0,0,0,5550,5551,1,0,
	0,0,5551,5552,5,1611,0,0,5552,5553,5,74,0,0,5553,5554,5,35,0,0,5554,5555,
	5,748,0,0,5555,539,1,0,0,0,5556,5557,5,2223,0,0,5557,5562,3,542,271,0,5558,
	5559,5,2229,0,0,5559,5561,3,542,271,0,5560,5558,1,0,0,0,5561,5564,1,0,0,
	0,5562,5560,1,0,0,0,5562,5563,1,0,0,0,5563,5565,1,0,0,0,5564,5562,1,0,0,
	0,5565,5566,5,2224,0,0,5566,5568,1,0,0,0,5567,5556,1,0,0,0,5567,5568,1,
	0,0,0,5568,5573,1,0,0,0,5569,5570,5,1128,0,0,5570,5571,5,218,0,0,5571,5572,
	7,56,0,0,5572,5574,5,1452,0,0,5573,5569,1,0,0,0,5573,5574,1,0,0,0,5574,
	5576,1,0,0,0,5575,5577,3,618,309,0,5576,5575,1,0,0,0,5576,5577,1,0,0,0,
	5577,5579,1,0,0,0,5578,5580,3,840,420,0,5579,5578,1,0,0,0,5579,5580,1,0,
	0,0,5580,5582,1,0,0,0,5581,5583,3,544,272,0,5582,5581,1,0,0,0,5582,5583,
	1,0,0,0,5583,5585,1,0,0,0,5584,5586,7,51,0,0,5585,5584,1,0,0,0,5585,5586,
	1,0,0,0,5586,5592,1,0,0,0,5587,5588,5,1424,0,0,5588,5589,5,2223,0,0,5589,
	5590,5,860,0,0,5590,5591,7,57,0,0,5591,5593,5,2224,0,0,5592,5587,1,0,0,
	0,5592,5593,1,0,0,0,5593,5595,1,0,0,0,5594,5596,3,474,237,0,5595,5594,1,
	0,0,0,5595,5596,1,0,0,0,5596,5598,1,0,0,0,5597,5599,7,55,0,0,5598,5597,
	1,0,0,0,5598,5599,1,0,0,0,5599,5605,1,0,0,0,5600,5602,3,764,382,0,5601,
	5600,1,0,0,0,5602,5603,1,0,0,0,5603,5601,1,0,0,0,5603,5604,1,0,0,0,5604,
	5606,1,0,0,0,5605,5601,1,0,0,0,5605,5606,1,0,0,0,5606,5608,1,0,0,0,5607,
	5609,3,620,310,0,5608,5607,1,0,0,0,5608,5609,1,0,0,0,5609,5611,1,0,0,0,
	5610,5612,3,622,311,0,5611,5610,1,0,0,0,5611,5612,1,0,0,0,5612,541,1,0,
	0,0,5613,5619,3,848,424,0,5614,5619,3,850,425,0,5615,5619,3,422,211,0,5616,
	5619,3,420,210,0,5617,5619,3,864,432,0,5618,5613,1,0,0,0,5618,5614,1,0,
	0,0,5618,5615,1,0,0,0,5618,5616,1,0,0,0,5618,5617,1,0,0,0,5619,543,1,0,
	0,0,5620,5629,3,546,273,0,5621,5629,3,548,274,0,5622,5629,3,550,275,0,5623,
	5629,3,558,279,0,5624,5629,3,560,280,0,5625,5629,3,562,281,0,5626,5629,
	3,564,282,0,5627,5629,3,568,284,0,5628,5620,1,0,0,0,5628,5621,1,0,0,0,5628,
	5622,1,0,0,0,5628,5623,1,0,0,0,5628,5624,1,0,0,0,5628,5625,1,0,0,0,5628,
	5626,1,0,0,0,5628,5627,1,0,0,0,5629,545,1,0,0,0,5630,5631,5,1207,0,0,5631,
	5632,5,146,0,0,5632,5633,5,1344,0,0,5633,5634,5,2223,0,0,5634,5639,3,1424,
	712,0,5635,5636,5,2229,0,0,5636,5638,3,1424,712,0,5637,5635,1,0,0,0,5638,
	5641,1,0,0,0,5639,5637,1,0,0,0,5639,5640,1,0,0,0,5640,5642,1,0,0,0,5641,
	5639,1,0,0,0,5642,5662,5,2224,0,0,5643,5644,5,689,0,0,5644,5645,5,2223,
	0,0,5645,5646,3,1234,617,0,5646,5660,5,2224,0,0,5647,5648,5,1594,0,0,5648,
	5649,5,652,0,0,5649,5650,5,2223,0,0,5650,5655,3,836,418,0,5651,5652,5,2229,
	0,0,5652,5654,3,836,418,0,5653,5651,1,0,0,0,5654,5657,1,0,0,0,5655,5653,
	1,0,0,0,5655,5656,1,0,0,0,5656,5658,1,0,0,0,5657,5655,1,0,0,0,5658,5659,
	5,2224,0,0,5659,5661,1,0,0,0,5660,5647,1,0,0,0,5660,5661,1,0,0,0,5661,5663,
	1,0,0,0,5662,5643,1,0,0,0,5662,5663,1,0,0,0,5663,5664,1,0,0,0,5664,5665,
	5,2223,0,0,5665,5667,5,1207,0,0,5666,5668,3,862,431,0,5667,5666,1,0,0,0,
	5667,5668,1,0,0,0,5668,5669,1,0,0,0,5669,5670,3,594,297,0,5670,5681,3,598,
	299,0,5671,5672,5,2229,0,0,5672,5674,5,1207,0,0,5673,5675,3,862,431,0,5674,
	5673,1,0,0,0,5674,5675,1,0,0,0,5675,5676,1,0,0,0,5676,5677,3,594,297,0,
	5677,5678,3,598,299,0,5678,5680,1,0,0,0,5679,5671,1,0,0,0,5680,5683,1,0,
	0,0,5681,5679,1,0,0,0,5681,5682,1,0,0,0,5682,5684,1,0,0,0,5683,5681,1,0,
	0,0,5684,5685,5,2224,0,0,5685,547,1,0,0,0,5686,5687,5,1207,0,0,5687,5688,
	5,146,0,0,5688,5689,5,761,0,0,5689,5690,5,2223,0,0,5690,5691,3,1424,712,
	0,5691,5692,5,2224,0,0,5692,5693,5,2223,0,0,5693,5695,5,1207,0,0,5694,5696,
	3,862,431,0,5695,5694,1,0,0,0,5695,5696,1,0,0,0,5696,5697,1,0,0,0,5697,
	5698,3,596,298,0,5698,5709,3,598,299,0,5699,5700,5,2229,0,0,5700,5702,5,
	1207,0,0,5701,5703,3,862,431,0,5702,5701,1,0,0,0,5702,5703,1,0,0,0,5703,
	5704,1,0,0,0,5704,5705,3,596,298,0,5705,5706,3,598,299,0,5706,5708,1,0,
	0,0,5707,5699,1,0,0,0,5708,5711,1,0,0,0,5709,5707,1,0,0,0,5709,5710,1,0,
	0,0,5710,5712,1,0,0,0,5711,5709,1,0,0,0,5712,5713,5,2224,0,0,5713,549,1,
	0,0,0,5714,5715,5,1207,0,0,5715,5716,5,146,0,0,5716,5717,5,582,0,0,5717,
	5718,5,2223,0,0,5718,5723,3,1424,712,0,5719,5720,5,2229,0,0,5720,5722,3,
	1424,712,0,5721,5719,1,0,0,0,5722,5725,1,0,0,0,5723,5721,1,0,0,0,5723,5724,
	1,0,0,0,5724,5726,1,0,0,0,5725,5723,1,0,0,0,5726,5729,5,2224,0,0,5727,5730,
	3,552,276,0,5728,5730,3,554,277,0,5729,5727,1,0,0,0,5729,5728,1,0,0,0,5730,
	551,1,0,0,0,5731,5732,5,2223,0,0,5732,5734,5,1207,0,0,5733,5735,3,862,431,
	0,5734,5733,1,0,0,0,5734,5735,1,0,0,0,5735,5737,1,0,0,0,5736,5738,3,600,
	300,0,5737,5736,1,0,0,0,5737,5738,1,0,0,0,5738,5749,1,0,0,0,5739,5740,5,
	2229,0,0,5740,5742,5,1207,0,0,5741,5743,3,862,431,0,5742,5741,1,0,0,0,5742,
	5743,1,0,0,0,5743,5745,1,0,0,0,5744,5746,3,600,300,0,5745,5744,1,0,0,0,
	5745,5746,1,0,0,0,5746,5748,1,0,0,0,5747,5739,1,0,0,0,5748,5751,1,0,0,0,
	5749,5747,1,0,0,0,5749,5750,1,0,0,0,5750,5752,1,0,0,0,5751,5749,1,0,0,0,
	5752,5753,5,2224,0,0,5753,553,1,0,0,0,5754,5755,5,1209,0,0,5755,5769,3,
	556,278,0,5756,5757,5,1594,0,0,5757,5758,5,652,0,0,5758,5759,5,2223,0,0,
	5759,5764,3,836,418,0,5760,5761,5,2229,0,0,5761,5763,3,836,418,0,5762,5760,
	1,0,0,0,5763,5766,1,0,0,0,5764,5762,1,0,0,0,5764,5765,1,0,0,0,5765,5767,
	1,0,0,0,5766,5764,1,0,0,0,5767,5768,5,2224,0,0,5768,5770,1,0,0,0,5769,5756,
	1,0,0,0,5769,5770,1,0,0,0,5770,5773,1,0,0,0,5771,5774,3,608,304,0,5772,
	5774,3,780,390,0,5773,5771,1,0,0,0,5773,5772,1,0,0,0,5773,5774,1,0,0,0,
	5774,5789,1,0,0,0,5775,5776,5,1184,0,0,5776,5777,5,1594,0,0,5777,5778,5,
	652,0,0,5778,5779,5,2223,0,0,5779,5784,3,836,418,0,5780,5781,5,2229,0,0,
	5781,5783,3,836,418,0,5782,5780,1,0,0,0,5783,5786,1,0,0,0,5784,5782,1,0,
	0,0,5784,5785,1,0,0,0,5785,5787,1,0,0,0,5786,5784,1,0,0,0,5787,5788,5,2224,
	0,0,5788,5790,1,0,0,0,5789,5775,1,0,0,0,5789,5790,1,0,0,0,5790,555,1,0,
	0,0,5791,5792,5,2217,0,0,5792,557,1,0,0,0,5793,5794,5,1207,0,0,5794,5795,
	5,146,0,0,5795,5796,5,1344,0,0,5796,5797,5,2223,0,0,5797,5802,3,1424,712,
	0,5798,5799,5,2229,0,0,5799,5801,3,1424,712,0,5800,5798,1,0,0,0,5801,5804,
	1,0,0,0,5802,5800,1,0,0,0,5802,5803,1,0,0,0,5803,5805,1,0,0,0,5804,5802,
	1,0,0,0,5805,5825,5,2224,0,0,5806,5807,5,689,0,0,5807,5808,5,2223,0,0,5808,
	5809,3,1234,617,0,5809,5823,5,2224,0,0,5810,5811,5,1594,0,0,5811,5812,5,
	652,0,0,5812,5813,5,2223,0,0,5813,5818,3,836,418,0,5814,5815,5,2229,0,0,
	5815,5817,3,836,418,0,5816,5814,1,0,0,0,5817,5820,1,0,0,0,5818,5816,1,0,
	0,0,5818,5819,1,0,0,0,5819,5821,1,0,0,0,5820,5818,1,0,0,0,5821,5822,5,2224,
	0,0,5822,5824,1,0,0,0,5823,5810,1,0,0,0,5823,5824,1,0,0,0,5824,5826,1,0,
	0,0,5825,5806,1,0,0,0,5825,5826,1,0,0,0,5826,5830,1,0,0,0,5827,5831,3,578,
	289,0,5828,5831,3,580,290,0,5829,5831,3,582,291,0,5830,5827,1,0,0,0,5830,
	5828,1,0,0,0,5830,5829,1,0,0,0,5831,5832,1,0,0,0,5832,5833,5,2223,0,0,5833,
	5838,3,570,285,0,5834,5835,5,2229,0,0,5835,5837,3,570,285,0,5836,5834,1,
	0,0,0,5837,5840,1,0,0,0,5838,5836,1,0,0,0,5838,5839,1,0,0,0,5839,5841,1,
	0,0,0,5840,5838,1,0,0,0,5841,5842,5,2224,0,0,5842,559,1,0,0,0,5843,5844,
	5,1207,0,0,5844,5845,5,146,0,0,5845,5846,5,761,0,0,5846,5847,5,2223,0,0,
	5847,5848,3,1424,712,0,5848,5852,5,2224,0,0,5849,5853,3,578,289,0,5850,
	5853,3,580,290,0,5851,5853,3,582,291,0,5852,5849,1,0,0,0,5852,5850,1,0,
	0,0,5852,5851,1,0,0,0,5853,5854,1,0,0,0,5854,5855,5,2223,0,0,5855,5860,
	3,572,286,0,5856,5857,5,2229,0,0,5857,5859,3,572,286,0,5858,5856,1,0,0,
	0,5859,5862,1,0,0,0,5860,5858,1,0,0,0,5860,5861,1,0,0,0,5861,5863,1,0,0,
	0,5862,5860,1,0,0,0,5863,5864,5,2224,0,0,5864,561,1,0,0,0,5865,5866,5,1207,
	0,0,5866,5867,5,146,0,0,5867,5868,5,582,0,0,5868,5871,5,2223,0,0,5869,5870,
	5,2229,0,0,5870,5872,3,1424,712,0,5871,5869,1,0,0,0,5872,5873,1,0,0,0,5873,
	5871,1,0,0,0,5873,5874,1,0,0,0,5874,5875,1,0,0,0,5875,5879,5,2224,0,0,5876,
	5880,3,578,289,0,5877,5880,3,580,290,0,5878,5880,3,582,291,0,5879,5876,
	1,0,0,0,5879,5877,1,0,0,0,5879,5878,1,0,0,0,5880,5883,1,0,0,0,5881,5884,
	3,552,276,0,5882,5884,3,554,277,0,5883,5881,1,0,0,0,5883,5882,1,0,0,0,5884,
	563,1,0,0,0,5885,5886,5,1207,0,0,5886,5887,5,146,0,0,5887,5888,5,1373,0,
	0,5888,5889,5,2223,0,0,5889,5890,3,1492,746,0,5890,5902,5,2224,0,0,5891,
	5892,5,2223,0,0,5892,5897,3,566,283,0,5893,5894,5,2229,0,0,5894,5896,3,
	566,283,0,5895,5893,1,0,0,0,5896,5899,1,0,0,0,5897,5895,1,0,0,0,5897,5898,
	1,0,0,0,5898,5900,1,0,0,0,5899,5897,1,0,0,0,5900,5901,5,2224,0,0,5901,5903,
	1,0,0,0,5902,5891,1,0,0,0,5902,5903,1,0,0,0,5903,565,1,0,0,0,5904,5906,
	5,1207,0,0,5905,5907,3,862,431,0,5906,5905,1,0,0,0,5906,5907,1,0,0,0,5907,
	5908,1,0,0,0,5908,5909,3,598,299,0,5909,567,1,0,0,0,5910,5911,5,1207,0,
	0,5911,5912,5,146,0,0,5912,5923,5,1779,0,0,5913,5914,5,1209,0,0,5914,5924,
	5,2217,0,0,5915,5920,3,566,283,0,5916,5917,5,2229,0,0,5917,5919,3,566,283,
	0,5918,5916,1,0,0,0,5919,5922,1,0,0,0,5920,5918,1,0,0,0,5920,5921,1,0,0,
	0,5921,5924,1,0,0,0,5922,5920,1,0,0,0,5923,5913,1,0,0,0,5923,5915,1,0,0,
	0,5923,5924,1,0,0,0,5924,569,1,0,0,0,5925,5927,5,1207,0,0,5926,5928,3,862,
	431,0,5927,5926,1,0,0,0,5927,5928,1,0,0,0,5928,5929,1,0,0,0,5929,5930,3,
	594,297,0,5930,5963,3,598,299,0,5931,5956,5,2223,0,0,5932,5937,3,586,293,
	0,5933,5934,5,2229,0,0,5934,5936,3,586,293,0,5935,5933,1,0,0,0,5936,5939,
	1,0,0,0,5937,5935,1,0,0,0,5937,5938,1,0,0,0,5938,5957,1,0,0,0,5939,5937,
	1,0,0,0,5940,5945,3,588,294,0,5941,5942,5,2229,0,0,5942,5944,3,588,294,
	0,5943,5941,1,0,0,0,5944,5947,1,0,0,0,5945,5943,1,0,0,0,5945,5946,1,0,0,
	0,5946,5957,1,0,0,0,5947,5945,1,0,0,0,5948,5953,3,590,295,0,5949,5950,5,
	2229,0,0,5950,5952,3,590,295,0,5951,5949,1,0,0,0,5952,5955,1,0,0,0,5953,
	5951,1,0,0,0,5953,5954,1,0,0,0,5954,5957,1,0,0,0,5955,5953,1,0,0,0,5956,
	5932,1,0,0,0,5956,5940,1,0,0,0,5956,5948,1,0,0,0,5957,5958,1,0,0,0,5958,
	5959,5,2224,0,0,5959,5962,1,0,0,0,5960,5962,3,592,296,0,5961,5931,1,0,0,
	0,5961,5960,1,0,0,0,5962,5964,1,0,0,0,5963,5961,1,0,0,0,5963,5964,1,0,0,
	0,5964,571,1,0,0,0,5965,5967,5,1207,0,0,5966,5968,3,862,431,0,5967,5966,
	1,0,0,0,5967,5968,1,0,0,0,5968,5969,1,0,0,0,5969,5970,3,596,298,0,5970,
	6003,3,598,299,0,5971,5996,5,2223,0,0,5972,5977,3,586,293,0,5973,5974,5,
	2229,0,0,5974,5976,3,586,293,0,5975,5973,1,0,0,0,5976,5979,1,0,0,0,5977,
	5975,1,0,0,0,5977,5978,1,0,0,0,5978,5997,1,0,0,0,5979,5977,1,0,0,0,5980,
	5985,3,588,294,0,5981,5982,5,2229,0,0,5982,5984,3,588,294,0,5983,5981,1,
	0,0,0,5984,5987,1,0,0,0,5985,5983,1,0,0,0,5985,5986,1,0,0,0,5986,5997,1,
	0,0,0,5987,5985,1,0,0,0,5988,5993,3,590,295,0,5989,5990,5,2229,0,0,5990,
	5992,3,590,295,0,5991,5989,1,0,0,0,5992,5995,1,0,0,0,5993,5991,1,0,0,0,
	5993,5994,1,0,0,0,5994,5997,1,0,0,0,5995,5993,1,0,0,0,5996,5972,1,0,0,0,
	5996,5980,1,0,0,0,5996,5988,1,0,0,0,5997,5998,1,0,0,0,5998,5999,5,2224,
	0,0,5999,6002,1,0,0,0,6000,6002,3,592,296,0,6001,5971,1,0,0,0,6001,6000,
	1,0,0,0,6002,6004,1,0,0,0,6003,6001,1,0,0,0,6003,6004,1,0,0,0,6004,573,
	1,0,0,0,6005,6006,5,1606,0,0,6006,6037,5,1919,0,0,6007,6032,5,2223,0,0,
	6008,6013,3,586,293,0,6009,6010,5,2229,0,0,6010,6012,3,586,293,0,6011,6009,
	1,0,0,0,6012,6015,1,0,0,0,6013,6011,1,0,0,0,6013,6014,1,0,0,0,6014,6033,
	1,0,0,0,6015,6013,1,0,0,0,6016,6021,3,588,294,0,6017,6018,5,2229,0,0,6018,
	6020,3,588,294,0,6019,6017,1,0,0,0,6020,6023,1,0,0,0,6021,6019,1,0,0,0,
	6021,6022,1,0,0,0,6022,6033,1,0,0,0,6023,6021,1,0,0,0,6024,6029,3,590,295,
	0,6025,6026,5,2229,0,0,6026,6028,3,590,295,0,6027,6025,1,0,0,0,6028,6031,
	1,0,0,0,6029,6027,1,0,0,0,6029,6030,1,0,0,0,6030,6033,1,0,0,0,6031,6029,
	1,0,0,0,6032,6008,1,0,0,0,6032,6016,1,0,0,0,6032,6024,1,0,0,0,6033,6034,
	1,0,0,0,6034,6035,5,2224,0,0,6035,6038,1,0,0,0,6036,6038,3,576,288,0,6037,
	6007,1,0,0,0,6037,6036,1,0,0,0,6038,575,1,0,0,0,6039,6040,5,2217,0,0,6040,
	577,1,0,0,0,6041,6042,5,1606,0,0,6042,6043,5,146,0,0,6043,6044,5,1344,0,
	0,6044,6045,5,2223,0,0,6045,6050,3,1424,712,0,6046,6047,5,2229,0,0,6047,
	6049,3,1424,712,0,6048,6046,1,0,0,0,6049,6052,1,0,0,0,6050,6048,1,0,0,0,
	6050,6051,1,0,0,0,6051,6053,1,0,0,0,6052,6050,1,0,0,0,6053,6055,5,2224,
	0,0,6054,6056,3,574,287,0,6055,6054,1,0,0,0,6055,6056,1,0,0,0,6056,579,
	1,0,0,0,6057,6058,5,1606,0,0,6058,6059,5,146,0,0,6059,6060,5,761,0,0,6060,
	6061,5,2223,0,0,6061,6062,3,1424,712,0,6062,6064,5,2224,0,0,6063,6065,3,
	574,287,0,6064,6063,1,0,0,0,6064,6065,1,0,0,0,6065,581,1,0,0,0,6066,6067,
	5,1606,0,0,6067,6068,5,146,0,0,6068,6069,5,582,0,0,6069,6070,5,2223,0,0,
	6070,6075,3,1424,712,0,6071,6072,5,2229,0,0,6072,6074,3,1424,712,0,6073,
	6071,1,0,0,0,6074,6077,1,0,0,0,6075,6073,1,0,0,0,6075,6076,1,0,0,0,6076,
	6078,1,0,0,0,6077,6075,1,0,0,0,6078,6097,5,2224,0,0,6079,6080,5,1605,0,
	0,6080,6094,5,2217,0,0,6081,6082,5,1594,0,0,6082,6083,5,652,0,0,6083,6084,
	5,2223,0,0,6084,6089,3,836,418,0,6085,6086,5,2229,0,0,6086,6088,3,836,418,
	0,6087,6085,1,0,0,0,6088,6091,1,0,0,0,6089,6087,1,0,0,0,6089,6090,1,0,0,
	0,6090,6092,1,0,0,0,6091,6089,1,0,0,0,6092,6093,5,2224,0,0,6093,6095,1,
	0,0,0,6094,6081,1,0,0,0,6094,6095,1,0,0,0,6095,6098,1,0,0,0,6096,6098,3,
	574,287,0,6097,6079,1,0,0,0,6097,6096,1,0,0,0,6097,6098,1,0,0,0,6098,583,
	1,0,0,0,6099,6100,3,862,431,0,6100,585,1,0,0,0,6101,6103,5,1606,0,0,6102,
	6104,3,584,292,0,6103,6102,1,0,0,0,6103,6104,1,0,0,0,6104,6105,1,0,0,0,
	6105,6107,3,594,297,0,6106,6108,3,600,300,0,6107,6106,1,0,0,0,6107,6108,
	1,0,0,0,6108,587,1,0,0,0,6109,6111,5,1606,0,0,6110,6112,3,584,292,0,6111,
	6110,1,0,0,0,6111,6112,1,0,0,0,6112,6113,1,0,0,0,6113,6115,3,596,298,0,
	6114,6116,3,600,300,0,6115,6114,1,0,0,0,6115,6116,1,0,0,0,6116,589,1,0,
	0,0,6117,6119,5,1606,0,0,6118,6120,3,584,292,0,6119,6118,1,0,0,0,6119,6120,
	1,0,0,0,6120,6122,1,0,0,0,6121,6123,3,600,300,0,6122,6121,1,0,0,0,6122,
	6123,1,0,0,0,6123,591,1,0,0,0,6124,6125,5,1605,0,0,6125,6139,5,2217,0,0,
	6126,6127,5,1594,0,0,6127,6128,5,652,0,0,6128,6129,5,2223,0,0,6129,6134,
	3,836,418,0,6130,6131,5,2229,0,0,6131,6133,3,836,418,0,6132,6130,1,0,0,
	0,6133,6136,1,0,0,0,6134,6132,1,0,0,0,6134,6135,1,0,0,0,6135,6137,1,0,0,
	0,6136,6134,1,0,0,0,6137,6138,5,2224,0,0,6138,6140,1,0,0,0,6139,6126,1,
	0,0,0,6139,6140,1,0,0,0,6140,593,1,0,0,0,6141,6142,5,2073,0,0,6142,6143,
	5,746,0,0,6143,6144,5,1924,0,0,6144,6145,5,2223,0,0,6145,6150,3,1290,645,
	0,6146,6147,5,2229,0,0,6147,6149,3,1290,645,0,6148,6146,1,0,0,0,6149,6152,
	1,0,0,0,6150,6148,1,0,0,0,6150,6151,1,0,0,0,6151,6153,1,0,0,0,6152,6150,
	1,0,0,0,6153,6154,5,2224,0,0,6154,595,1,0,0,0,6155,6156,5,2073,0,0,6156,
	6166,5,2223,0,0,6157,6162,3,1290,645,0,6158,6159,5,2229,0,0,6159,6161,3,
	1290,645,0,6160,6158,1,0,0,0,6161,6164,1,0,0,0,6162,6160,1,0,0,0,6162,6163,
	1,0,0,0,6163,6167,1,0,0,0,6164,6162,1,0,0,0,6165,6167,5,351,0,0,6166,6157,
	1,0,0,0,6166,6165,1,0,0,0,6167,6168,1,0,0,0,6168,6169,5,2224,0,0,6169,597,
	1,0,0,0,6170,6172,3,614,307,0,6171,6170,1,0,0,0,6171,6172,1,0,0,0,6172,
	6174,1,0,0,0,6173,6175,3,616,308,0,6174,6173,1,0,0,0,6174,6175,1,0,0,0,
	6175,6178,1,0,0,0,6176,6179,3,608,304,0,6177,6179,3,780,390,0,6178,6176,
	1,0,0,0,6178,6177,1,0,0,0,6178,6179,1,0,0,0,6179,6184,1,0,0,0,6180,6182,
	5,1184,0,0,6181,6183,3,616,308,0,6182,6181,1,0,0,0,6182,6183,1,0,0,0,6183,
	6185,1,0,0,0,6184,6180,1,0,0,0,6184,6185,1,0,0,0,6185,6189,1,0,0,0,6186,
	6190,3,820,410,0,6187,6190,3,810,405,0,6188,6190,3,856,428,0,6189,6186,
	1,0,0,0,6189,6187,1,0,0,0,6189,6188,1,0,0,0,6189,6190,1,0,0,0,6190,599,
	1,0,0,0,6191,6192,5,1909,0,0,6192,6212,3,836,418,0,6193,6196,5,1184,0,0,
	6194,6195,5,1909,0,0,6195,6197,3,836,418,0,6196,6194,1,0,0,0,6196,6197,
	1,0,0,0,6197,6212,1,0,0,0,6198,6212,3,608,304,0,6199,6212,3,780,390,0,6200,
	6212,3,602,301,0,6201,6202,5,2080,0,0,6202,6203,3,838,419,0,6203,6204,5,
	1594,0,0,6204,6206,5,61,0,0,6205,6207,7,58,0,0,6206,6205,1,0,0,0,6206,6207,
	1,0,0,0,6207,6208,1,0,0,0,6208,6209,5,765,0,0,6209,6210,3,814,407,0,6210,
	6212,1,0,0,0,6211,6191,1,0,0,0,6211,6193,1,0,0,0,6211,6198,1,0,0,0,6211,
	6199,1,0,0,0,6211,6200,1,0,0,0,6211,6201,1,0,0,0,6212,6213,1,0,0,0,6213,
	6211,1,0,0,0,6213,6214,1,0,0,0,6214,601,1,0,0,0,6215,6216,5,765,0,0,6216,
	6217,5,2223,0,0,6217,6218,3,816,408,0,6218,6219,5,2224,0,0,6219,6220,5,
	1594,0,0,6220,6222,5,61,0,0,6221,6223,7,58,0,0,6222,6221,1,0,0,0,6222,6223,
	1,0,0,0,6223,6237,1,0,0,0,6224,6230,3,814,407,0,6225,6226,5,2223,0,0,6226,
	6227,5,1909,0,0,6227,6228,3,836,418,0,6228,6229,5,2224,0,0,6229,6231,1,
	0,0,0,6230,6225,1,0,0,0,6230,6231,1,0,0,0,6231,6238,1,0,0,0,6232,6233,5,
	2223,0,0,6233,6234,5,1909,0,0,6234,6235,3,836,418,0,6235,6236,5,2224,0,
	0,6236,6238,1,0,0,0,6237,6224,1,0,0,0,6237,6232,1,0,0,0,6238,603,1,0,0,
	0,6239,6240,3,1424,712,0,6240,6242,3,1460,730,0,6241,6243,5,1544,0,0,6242,
	6241,1,0,0,0,6242,6243,1,0,0,0,6243,6246,1,0,0,0,6244,6245,5,351,0,0,6245,
	6247,3,1234,617,0,6246,6244,1,0,0,0,6246,6247,1,0,0,0,6247,6267,1,0,0,0,
	6248,6251,5,443,0,0,6249,6250,5,2063,0,0,6250,6252,5,2219,0,0,6251,6249,
	1,0,0,0,6251,6252,1,0,0,0,6252,6256,1,0,0,0,6253,6254,5,601,0,0,6254,6255,
	5,146,0,0,6255,6257,5,2252,0,0,6256,6253,1,0,0,0,6256,6257,1,0,0,0,6257,
	6259,1,0,0,0,6258,6260,5,2219,0,0,6259,6258,1,0,0,0,6259,6260,1,0,0,0,6260,
	6265,1,0,0,0,6261,6263,5,1010,0,0,6262,6261,1,0,0,0,6262,6263,1,0,0,0,6263,
	6264,1,0,0,0,6264,6266,5,1458,0,0,6265,6262,1,0,0,0,6265,6266,1,0,0,0,6266,
	6268,1,0,0,0,6267,6248,1,0,0,0,6267,6268,1,0,0,0,6268,6271,1,0,0,0,6269,
	6270,5,1073,0,0,6270,6272,5,1097,0,0,6271,6269,1,0,0,0,6271,6272,1,0,0,
	0,6272,6274,1,0,0,0,6273,6275,7,5,0,0,6274,6273,1,0,0,0,6274,6275,1,0,0,
	0,6275,605,1,0,0,0,6276,6278,5,2217,0,0,6277,6279,5,2252,0,0,6278,6277,
	1,0,0,0,6278,6279,1,0,0,0,6279,607,1,0,0,0,6280,6290,5,232,0,0,6281,6291,
	5,95,0,0,6282,6288,5,546,0,0,6283,6289,5,1122,0,0,6284,6286,7,60,0,0,6285,
	6287,7,61,0,0,6286,6285,1,0,0,0,6286,6287,1,0,0,0,6287,6289,1,0,0,0,6288,
	6283,1,0,0,0,6288,6284,1,0,0,0,6289,6291,1,0,0,0,6290,6281,1,0,0,0,6290,
	6282,1,0,0,0,6290,6291,1,0,0,0,6291,6294,1,0,0,0,6292,6294,5,953,0,0,6293,
	6280,1,0,0,0,6293,6292,1,0,0,0,6294,609,1,0,0,0,6295,6296,5,1227,0,0,6296,
	6303,5,2217,0,0,6297,6298,5,1230,0,0,6298,6303,5,2217,0,0,6299,6300,5,657,
	0,0,6300,6303,5,2217,0,0,6301,6303,3,612,306,0,6302,6295,1,0,0,0,6302,6297,
	1,0,0,0,6302,6299,1,0,0,0,6302,6301,1,0,0,0,6303,6304,1,0,0,0,6304,6302,
	1,0,0,0,6304,6305,1,0,0,0,6305,611,1,0,0,0,6306,6307,5,1593,0,0,6307,6333,
	5,2223,0,0,6308,6309,5,654,0,0,6309,6334,3,606,303,0,6310,6311,5,906,0,
	0,6311,6334,3,606,303,0,6312,6313,5,838,0,0,6313,6334,7,62,0,0,6314,6315,
	5,813,0,0,6315,6334,7,62,0,0,6316,6317,5,1228,0,0,6317,6334,5,2217,0,0,
	6318,6319,5,551,0,0,6319,6334,5,2217,0,0,6320,6321,5,550,0,0,6321,6322,
	5,577,0,0,6322,6334,5,2217,0,0,6323,6326,5,1137,0,0,6324,6327,3,606,303,
	0,6325,6327,5,1097,0,0,6326,6324,1,0,0,0,6326,6325,1,0,0,0,6327,6334,1,
	0,0,0,6328,6329,5,143,0,0,6329,6334,7,63,0,0,6330,6331,5,533,0,0,6331,6334,
	7,64,0,0,6332,6334,5,443,0,0,6333,6308,1,0,0,0,6333,6310,1,0,0,0,6333,6312,
	1,0,0,0,6333,6314,1,0,0,0,6333,6316,1,0,0,0,6333,6318,1,0,0,0,6333,6320,
	1,0,0,0,6333,6323,1,0,0,0,6333,6328,1,0,0,0,6333,6330,1,0,0,0,6333,6332,
	1,0,0,0,6334,6335,1,0,0,0,6335,6333,1,0,0,0,6335,6336,1,0,0,0,6336,6337,
	1,0,0,0,6337,6338,5,2224,0,0,6338,613,1,0,0,0,6339,6340,5,1488,0,0,6340,
	6341,5,291,0,0,6341,6342,7,38,0,0,6342,615,1,0,0,0,6343,6348,3,610,305,
	0,6344,6345,5,1909,0,0,6345,6348,3,1488,744,0,6346,6348,3,448,224,0,6347,
	6343,1,0,0,0,6347,6344,1,0,0,0,6347,6346,1,0,0,0,6348,6349,1,0,0,0,6349,
	6347,1,0,0,0,6349,6350,1,0,0,0,6350,617,1,0,0,0,6351,6353,3,614,307,0,6352,
	6351,1,0,0,0,6352,6353,1,0,0,0,6353,6354,1,0,0,0,6354,6356,3,616,308,0,
	6355,6357,3,608,304,0,6356,6355,1,0,0,0,6356,6357,1,0,0,0,6357,619,1,0,
	0,0,6358,6360,7,5,0,0,6359,6358,1,0,0,0,6359,6360,1,0,0,0,6360,6361,1,0,
	0,0,6361,6362,5,1451,0,0,6362,6363,5,873,0,0,6363,621,1,0,0,0,6364,6365,
	5,532,0,0,6365,6366,5,57,0,0,6366,6371,5,2252,0,0,6367,6368,5,1010,0,0,
	6368,6369,5,532,0,0,6369,6371,5,57,0,0,6370,6364,1,0,0,0,6370,6367,1,0,
	0,0,6371,623,1,0,0,0,6372,6373,5,2217,0,0,6373,625,1,0,0,0,6374,6375,5,
	18,0,0,6375,6376,5,1620,0,0,6376,6379,5,783,0,0,6377,6380,3,628,314,0,6378,
	6380,3,630,315,0,6379,6377,1,0,0,0,6379,6378,1,0,0,0,6380,6390,1,0,0,0,
	6381,6382,5,2229,0,0,6382,6383,5,1620,0,0,6383,6386,5,783,0,0,6384,6387,
	3,628,314,0,6385,6387,3,630,315,0,6386,6384,1,0,0,0,6386,6385,1,0,0,0,6387,
	6389,1,0,0,0,6388,6381,1,0,0,0,6389,6392,1,0,0,0,6390,6388,1,0,0,0,6390,
	6391,1,0,0,0,6391,6415,1,0,0,0,6392,6390,1,0,0,0,6393,6394,5,411,0,0,6394,
	6395,5,1620,0,0,6395,6399,5,783,0,0,6396,6400,3,630,315,0,6397,6398,5,573,
	0,0,6398,6400,3,624,312,0,6399,6396,1,0,0,0,6399,6397,1,0,0,0,6400,6411,
	1,0,0,0,6401,6402,5,2229,0,0,6402,6403,5,1620,0,0,6403,6407,5,783,0,0,6404,
	6408,3,630,315,0,6405,6406,5,573,0,0,6406,6408,3,624,312,0,6407,6404,1,
	0,0,0,6407,6405,1,0,0,0,6408,6410,1,0,0,0,6409,6401,1,0,0,0,6410,6413,1,
	0,0,0,6411,6409,1,0,0,0,6411,6412,1,0,0,0,6412,6415,1,0,0,0,6413,6411,1,
	0,0,0,6414,6374,1,0,0,0,6414,6393,1,0,0,0,6415,627,1,0,0,0,6416,6417,5,
	573,0,0,6417,6418,3,624,312,0,6418,6419,5,2223,0,0,6419,6422,3,1492,746,
	0,6420,6421,5,1010,0,0,6421,6423,5,783,0,0,6422,6420,1,0,0,0,6422,6423,
	1,0,0,0,6423,6432,1,0,0,0,6424,6425,5,2229,0,0,6425,6428,3,1492,746,0,6426,
	6427,5,1010,0,0,6427,6429,5,783,0,0,6428,6426,1,0,0,0,6428,6429,1,0,0,0,
	6429,6431,1,0,0,0,6430,6424,1,0,0,0,6431,6434,1,0,0,0,6432,6430,1,0,0,0,
	6432,6433,1,0,0,0,6433,6435,1,0,0,0,6434,6432,1,0,0,0,6435,6437,5,2224,
	0,0,6436,6438,5,40,0,0,6437,6436,1,0,0,0,6437,6438,1,0,0,0,6438,629,1,0,
	0,0,6439,6440,5,317,0,0,6440,6452,5,2223,0,0,6441,6443,5,2229,0,0,6442,
	6441,1,0,0,0,6442,6443,1,0,0,0,6443,6450,1,0,0,0,6444,6451,5,35,0,0,6445,
	6446,5,1304,0,0,6446,6451,5,722,0,0,6447,6451,5,2002,0,0,6448,6449,5,544,
	0,0,6449,6451,5,722,0,0,6450,6444,1,0,0,0,6450,6445,1,0,0,0,6450,6447,1,
	0,0,0,6450,6448,1,0,0,0,6451,6453,1,0,0,0,6452,6442,1,0,0,0,6453,6454,1,
	0,0,0,6454,6452,1,0,0,0,6454,6455,1,0,0,0,6455,6456,1,0,0,0,6456,6457,5,
	2224,0,0,6457,6458,5,214,0,0,6458,631,1,0,0,0,6459,6460,5,36,0,0,6460,6473,
	5,491,0,0,6461,6468,5,2223,0,0,6462,6463,5,1535,0,0,6463,6469,3,606,303,
	0,6464,6465,5,318,0,0,6465,6469,5,2219,0,0,6466,6467,5,672,0,0,6467,6469,
	5,2217,0,0,6468,6462,1,0,0,0,6468,6464,1,0,0,0,6468,6466,1,0,0,0,6469,6470,
	1,0,0,0,6470,6468,1,0,0,0,6470,6471,1,0,0,0,6471,6472,1,0,0,0,6472,6474,
	5,2224,0,0,6473,6461,1,0,0,0,6473,6474,1,0,0,0,6474,633,1,0,0,0,6475,6476,
	5,339,0,0,6476,6479,5,2022,0,0,6477,6478,5,720,0,0,6478,6480,3,606,303,
	0,6479,6477,1,0,0,0,6479,6480,1,0,0,0,6480,635,1,0,0,0,6481,6482,5,1521,
	0,0,6482,6484,5,1549,0,0,6483,6485,5,221,0,0,6484,6483,1,0,0,0,6484,6485,
	1,0,0,0,6485,6487,1,0,0,0,6486,6488,5,162,0,0,6487,6486,1,0,0,0,6487,6488,
	1,0,0,0,6488,637,1,0,0,0,6489,6491,7,65,0,0,6490,6489,1,0,0,0,6490,6491,
	1,0,0,0,6491,6492,1,0,0,0,6492,6493,5,1360,0,0,6493,639,1,0,0,0,6494,6496,
	5,2029,0,0,6495,6497,5,1073,0,0,6496,6495,1,0,0,0,6496,6497,1,0,0,0,6497,
	6498,1,0,0,0,6498,6499,5,619,0,0,6499,6500,5,317,0,0,6500,6501,1,0,0,0,
	6501,6502,3,840,420,0,6502,641,1,0,0,0,6503,6504,5,411,0,0,6504,6505,5,
	1912,0,0,6505,6507,3,1426,713,0,6506,6508,5,1326,0,0,6507,6506,1,0,0,0,
	6507,6508,1,0,0,0,6508,6509,1,0,0,0,6509,6510,5,2241,0,0,6510,643,1,0,0,
	0,6511,6512,5,411,0,0,6512,6513,5,2099,0,0,6513,6516,3,1426,713,0,6514,
	6515,5,162,0,0,6515,6517,5,257,0,0,6516,6514,1,0,0,0,6516,6517,1,0,0,0,
	6517,6518,1,0,0,0,6518,6519,5,2241,0,0,6519,645,1,0,0,0,6520,6521,5,217,
	0,0,6521,6522,5,1128,0,0,6522,6523,5,213,0,0,6523,6524,3,1424,712,0,6524,
	6525,5,695,0,0,6525,6526,3,1484,742,0,6526,647,1,0,0,0,6527,6528,7,5,0,
	0,6528,649,1,0,0,0,6529,6530,7,66,0,0,6530,651,1,0,0,0,6531,6534,5,288,
	0,0,6532,6533,5,1172,0,0,6533,6535,5,1407,0,0,6534,6532,1,0,0,0,6534,6535,
	1,0,0,0,6535,6536,1,0,0,0,6536,6537,5,1324,0,0,6537,6538,5,1627,0,0,6538,
	6539,3,1432,716,0,6539,6543,5,546,0,0,6540,6541,3,1372,686,0,6541,6542,
	5,2216,0,0,6542,6544,1,0,0,0,6543,6540,1,0,0,0,6543,6544,1,0,0,0,6544,6545,
	1,0,0,0,6545,6548,3,1434,717,0,6546,6547,5,2231,0,0,6547,6549,3,1422,711,
	0,6548,6546,1,0,0,0,6548,6549,1,0,0,0,6549,6574,1,0,0,0,6550,6553,5,288,
	0,0,6551,6552,5,1172,0,0,6552,6554,5,1407,0,0,6553,6551,1,0,0,0,6553,6554,
	1,0,0,0,6554,6555,1,0,0,0,6555,6559,5,1627,0,0,6556,6557,3,1372,686,0,6557,
	6558,5,2216,0,0,6558,6560,1,0,0,0,6559,6556,1,0,0,0,6559,6560,1,0,0,0,6560,
	6561,1,0,0,0,6561,6562,3,1432,716,0,6562,6566,5,546,0,0,6563,6564,3,1372,
	686,0,6564,6565,5,2216,0,0,6565,6567,1,0,0,0,6566,6563,1,0,0,0,6566,6567,
	1,0,0,0,6567,6568,1,0,0,0,6568,6571,3,1434,717,0,6569,6570,5,2231,0,0,6570,
	6572,3,1422,711,0,6571,6569,1,0,0,0,6571,6572,1,0,0,0,6572,6574,1,0,0,0,
	6573,6531,1,0,0,0,6573,6550,1,0,0,0,6574,653,1,0,0,0,6575,6576,5,217,0,
	0,6576,6577,5,1128,0,0,6577,6578,5,1912,0,0,6578,6579,3,1426,713,0,6579,
	6580,5,695,0,0,6580,6581,3,1484,742,0,6581,655,1,0,0,0,6582,6583,5,39,0,
	0,6583,6584,5,197,0,0,6584,6591,3,184,92,0,6585,6592,3,610,305,0,6586,6587,
	5,1535,0,0,6587,6592,3,606,303,0,6588,6592,3,632,316,0,6589,6592,3,634,
	317,0,6590,6592,3,658,329,0,6591,6585,1,0,0,0,6591,6586,1,0,0,0,6591,6588,
	1,0,0,0,6591,6589,1,0,0,0,6591,6590,1,0,0,0,6592,6593,1,0,0,0,6593,6591,
	1,0,0,0,6593,6594,1,0,0,0,6594,6596,1,0,0,0,6595,6597,3,474,237,0,6596,
	6595,1,0,0,0,6596,6597,1,0,0,0,6597,6598,1,0,0,0,6598,6599,5,2241,0,0,6599,
	657,1,0,0,0,6600,6601,7,51,0,0,6601,659,1,0,0,0,6602,6603,3,1492,746,0,
	6603,661,1,0,0,0,6604,6605,5,39,0,0,6605,6607,5,316,0,0,6606,6608,3,660,
	330,0,6607,6606,1,0,0,0,6607,6608,1,0,0,0,6608,6618,1,0,0,0,6609,6619,3,
	664,332,0,6610,6619,3,670,335,0,6611,6619,3,686,343,0,6612,6619,3,694,347,
	0,6613,6619,3,712,356,0,6614,6619,3,716,358,0,6615,6619,3,732,366,0,6616,
	6619,3,736,368,0,6617,6619,3,738,369,0,6618,6609,1,0,0,0,6618,6610,1,0,
	0,0,6618,6611,1,0,0,0,6618,6612,1,0,0,0,6618,6613,1,0,0,0,6618,6614,1,0,
	0,0,6618,6615,1,0,0,0,6618,6616,1,0,0,0,6618,6617,1,0,0,0,6619,6620,1,0,
	0,0,6620,6621,5,2241,0,0,6621,663,1,0,0,0,6622,6625,5,871,0,0,6623,6624,
	7,67,0,0,6624,6626,5,316,0,0,6625,6623,1,0,0,0,6625,6626,1,0,0,0,6626,6642,
	1,0,0,0,6627,6630,5,1133,0,0,6628,6629,5,1353,0,0,6629,6631,5,2125,0,0,
	6630,6628,1,0,0,0,6630,6631,1,0,0,0,6631,6633,1,0,0,0,6632,6634,3,666,333,
	0,6633,6632,1,0,0,0,6633,6634,1,0,0,0,6634,6636,1,0,0,0,6635,6637,3,668,
	334,0,6636,6635,1,0,0,0,6636,6637,1,0,0,0,6637,6642,1,0,0,0,6638,6639,5,
	1133,0,0,6639,6640,5,1353,0,0,6640,6642,5,1127,0,0,6641,6622,1,0,0,0,6641,
	6627,1,0,0,0,6641,6638,1,0,0,0,6642,665,1,0,0,0,6643,6644,7,68,0,0,6644,
	667,1,0,0,0,6645,6646,7,69,0,0,6646,669,1,0,0,0,6647,6653,3,674,337,0,6648,
	6653,3,682,341,0,6649,6650,3,672,336,0,6650,6651,5,93,0,0,6651,6653,1,0,
	0,0,6652,6647,1,0,0,0,6652,6648,1,0,0,0,6652,6649,1,0,0,0,6653,671,1,0,
	0,0,6654,6655,7,70,0,0,6655,673,1,0,0,0,6656,6658,5,1362,0,0,6657,6659,
	5,87,0,0,6658,6657,1,0,0,0,6658,6659,1,0,0,0,6659,6662,1,0,0,0,6660,6661,
	5,554,0,0,6661,6663,5,2219,0,0,6662,6660,1,0,0,0,6662,6663,1,0,0,0,6663,
	6686,1,0,0,0,6664,6669,3,676,338,0,6665,6669,3,678,339,0,6666,6667,5,777,
	0,0,6667,6669,5,2219,0,0,6668,6664,1,0,0,0,6668,6665,1,0,0,0,6668,6666,
	1,0,0,0,6668,6669,1,0,0,0,6669,6679,1,0,0,0,6670,6676,5,1922,0,0,6671,6672,
	5,37,0,0,6672,6673,5,2217,0,0,6673,6676,5,274,0,0,6674,6676,3,474,237,0,
	6675,6670,1,0,0,0,6675,6671,1,0,0,0,6675,6674,1,0,0,0,6676,6677,1,0,0,0,
	6677,6675,1,0,0,0,6677,6678,1,0,0,0,6678,6680,1,0,0,0,6679,6675,1,0,0,0,
	6679,6680,1,0,0,0,6680,6687,1,0,0,0,6681,6683,5,266,0,0,6682,6684,5,351,
	0,0,6683,6682,1,0,0,0,6683,6684,1,0,0,0,6684,6687,1,0,0,0,6685,6687,5,158,
	0,0,6686,6668,1,0,0,0,6686,6681,1,0,0,0,6686,6685,1,0,0,0,6687,675,1,0,
	0,0,6688,6690,5,1566,0,0,6689,6688,1,0,0,0,6689,6690,1,0,0,0,6690,6691,
	1,0,0,0,6691,6708,5,316,0,0,6692,6699,5,2020,0,0,6693,6700,5,158,0,0,6694,
	6695,5,1937,0,0,6695,6700,5,2219,0,0,6696,6697,5,172,0,0,6697,6700,5,2217,
	0,0,6698,6700,5,254,0,0,6699,6693,1,0,0,0,6699,6694,1,0,0,0,6699,6696,1,
	0,0,0,6699,6698,1,0,0,0,6700,6705,1,0,0,0,6701,6702,5,2063,0,0,6702,6703,
	5,93,0,0,6703,6705,5,267,0,0,6704,6692,1,0,0,0,6704,6701,1,0,0,0,6705,6706,
	1,0,0,0,6706,6704,1,0,0,0,6706,6707,1,0,0,0,6707,6709,1,0,0,0,6708,6704,
	1,0,0,0,6708,6709,1,0,0,0,6709,677,1,0,0,0,6710,6711,5,1909,0,0,6711,6716,
	3,836,418,0,6712,6713,5,2229,0,0,6713,6715,3,836,418,0,6714,6712,1,0,0,
	0,6715,6718,1,0,0,0,6716,6714,1,0,0,0,6716,6717,1,0,0,0,6717,6732,1,0,0,
	0,6718,6716,1,0,0,0,6719,6720,5,318,0,0,6720,6732,5,2219,0,0,6721,6727,
	3,746,373,0,6722,6723,5,2229,0,0,6723,6726,5,2219,0,0,6724,6726,3,746,373,
	0,6725,6722,1,0,0,0,6725,6724,1,0,0,0,6726,6729,1,0,0,0,6727,6725,1,0,0,
	0,6727,6728,1,0,0,0,6728,6732,1,0,0,0,6729,6727,1,0,0,0,6730,6732,3,680,
	340,0,6731,6710,1,0,0,0,6731,6719,1,0,0,0,6731,6721,1,0,0,0,6731,6730,1,
	0,0,0,6732,679,1,0,0,0,6733,6734,4,340,8,0,6734,6755,5,1566,0,0,6735,6736,
	5,1909,0,0,6736,6741,3,836,418,0,6737,6738,5,2229,0,0,6738,6740,3,836,418,
	0,6739,6737,1,0,0,0,6740,6743,1,0,0,0,6741,6739,1,0,0,0,6741,6742,1,0,0,
	0,6742,6756,1,0,0,0,6743,6741,1,0,0,0,6744,6745,5,318,0,0,6745,6756,5,2219,
	0,0,6746,6752,3,746,373,0,6747,6748,5,2229,0,0,6748,6751,5,2219,0,0,6749,
	6751,3,746,373,0,6750,6747,1,0,0,0,6750,6749,1,0,0,0,6751,6754,1,0,0,0,
	6752,6750,1,0,0,0,6752,6753,1,0,0,0,6753,6756,1,0,0,0,6754,6752,1,0,0,0,
	6755,6735,1,0,0,0,6755,6744,1,0,0,0,6755,6746,1,0,0,0,6756,6757,1,0,0,0,
	6757,6760,5,2020,0,0,6758,6759,5,254,0,0,6759,6761,5,2121,0,0,6760,6758,
	1,0,0,0,6760,6761,1,0,0,0,6761,6762,1,0,0,0,6762,6763,5,267,0,0,6763,681,
	1,0,0,0,6764,6799,5,1362,0,0,6765,6766,5,796,0,0,6766,6767,5,1566,0,0,6767,
	6789,5,316,0,0,6768,6769,5,2063,0,0,6769,6770,5,302,0,0,6770,6784,5,777,
	0,0,6771,6774,5,390,0,0,6772,6773,5,554,0,0,6773,6775,5,1506,0,0,6774,6772,
	1,0,0,0,6774,6775,1,0,0,0,6775,6784,1,0,0,0,6776,6784,5,966,0,0,6777,6778,
	5,2020,0,0,6778,6779,5,172,0,0,6779,6784,5,2217,0,0,6780,6781,5,2020,0,
	0,6781,6784,5,254,0,0,6782,6784,3,474,237,0,6783,6768,1,0,0,0,6783,6771,
	1,0,0,0,6783,6776,1,0,0,0,6783,6777,1,0,0,0,6783,6780,1,0,0,0,6783,6782,
	1,0,0,0,6784,6785,1,0,0,0,6785,6783,1,0,0,0,6785,6786,1,0,0,0,6786,6790,
	1,0,0,0,6787,6790,5,525,0,0,6788,6790,5,158,0,0,6789,6783,1,0,0,0,6789,
	6787,1,0,0,0,6789,6788,1,0,0,0,6789,6790,1,0,0,0,6790,6800,1,0,0,0,6791,
	6792,5,1964,0,0,6792,6793,5,780,0,0,6793,6797,5,1566,0,0,6794,6798,3,684,
	342,0,6795,6796,5,720,0,0,6796,6798,5,603,0,0,6797,6794,1,0,0,0,6797,6795,
	1,0,0,0,6798,6800,1,0,0,0,6799,6765,1,0,0,0,6799,6791,1,0,0,0,6800,683,
	1,0,0,0,6801,6802,3,1492,746,0,6802,685,1,0,0,0,6803,6804,5,1404,0,0,6804,
	6805,5,519,0,0,6805,6810,3,748,374,0,6806,6807,5,2229,0,0,6807,6809,3,748,
	374,0,6808,6806,1,0,0,0,6809,6812,1,0,0,0,6810,6808,1,0,0,0,6810,6811,1,
	0,0,0,6811,6813,1,0,0,0,6812,6810,1,0,0,0,6813,6814,5,1964,0,0,6814,6815,
	3,748,374,0,6815,6820,1,0,0,0,6816,6820,3,688,344,0,6817,6820,3,690,345,
	0,6818,6820,3,692,346,0,6819,6803,1,0,0,0,6819,6816,1,0,0,0,6819,6817,1,
	0,0,0,6819,6818,1,0,0,0,6820,687,1,0,0,0,6821,6822,5,288,0,0,6822,6825,
	5,318,0,0,6823,6826,3,748,374,0,6824,6826,3,746,373,0,6825,6823,1,0,0,0,
	6825,6824,1,0,0,0,6826,6834,1,0,0,0,6827,6830,5,2229,0,0,6828,6831,3,748,
	374,0,6829,6831,3,746,373,0,6830,6828,1,0,0,0,6830,6829,1,0,0,0,6831,6833,
	1,0,0,0,6832,6827,1,0,0,0,6833,6836,1,0,0,0,6834,6832,1,0,0,0,6834,6835,
	1,0,0,0,6835,6839,1,0,0,0,6836,6834,1,0,0,0,6837,6838,5,61,0,0,6838,6840,
	5,903,0,0,6839,6837,1,0,0,0,6839,6840,1,0,0,0,6840,689,1,0,0,0,6841,6844,
	5,318,0,0,6842,6845,3,748,374,0,6843,6845,3,746,373,0,6844,6842,1,0,0,0,
	6844,6843,1,0,0,0,6845,6853,1,0,0,0,6846,6849,5,2229,0,0,6847,6850,3,748,
	374,0,6848,6850,3,746,373,0,6849,6847,1,0,0,0,6849,6848,1,0,0,0,6850,6852,
	1,0,0,0,6851,6846,1,0,0,0,6852,6855,1,0,0,0,6853,6851,1,0,0,0,6853,6854,
	1,0,0,0,6854,6867,1,0,0,0,6855,6853,1,0,0,0,6856,6868,5,1125,0,0,6857,6860,
	5,1112,0,0,6858,6859,5,546,0,0,6859,6861,5,411,0,0,6860,6858,1,0,0,0,6860,
	6861,1,0,0,0,6861,6868,1,0,0,0,6862,6863,5,1412,0,0,6863,6868,3,606,303,
	0,6864,6868,3,468,234,0,6865,6866,5,445,0,0,6866,6868,5,93,0,0,6867,6856,
	1,0,0,0,6867,6857,1,0,0,0,6867,6862,1,0,0,0,6867,6864,1,0,0,0,6867,6865,
	1,0,0,0,6868,691,1,0,0,0,6869,6872,5,1918,0,0,6870,6873,3,748,374,0,6871,
	6873,3,746,373,0,6872,6870,1,0,0,0,6872,6871,1,0,0,0,6873,6881,1,0,0,0,
	6874,6877,5,2229,0,0,6875,6878,3,748,374,0,6876,6878,3,746,373,0,6877,6875,
	1,0,0,0,6877,6876,1,0,0,0,6878,6880,1,0,0,0,6879,6874,1,0,0,0,6880,6883,
	1,0,0,0,6881,6879,1,0,0,0,6881,6882,1,0,0,0,6882,6892,1,0,0,0,6883,6881,
	1,0,0,0,6884,6885,5,1412,0,0,6885,6893,3,606,303,0,6886,6893,3,468,234,
	0,6887,6888,5,411,0,0,6888,6889,5,619,0,0,6889,6893,5,319,0,0,6890,6893,
	5,1125,0,0,6891,6893,5,1112,0,0,6892,6884,1,0,0,0,6892,6886,1,0,0,0,6892,
	6887,1,0,0,0,6892,6890,1,0,0,0,6892,6891,1,0,0,0,6893,693,1,0,0,0,6894,
	6896,5,59,0,0,6895,6897,5,800,0,0,6896,6895,1,0,0,0,6896,6897,1,0,0,0,6897,
	6900,1,0,0,0,6898,6900,5,939,0,0,6899,6894,1,0,0,0,6899,6898,1,0,0,0,6900,
	6941,1,0,0,0,6901,6903,5,1010,0,0,6902,6901,1,0,0,0,6902,6903,1,0,0,0,6903,
	6904,1,0,0,0,6904,6905,5,542,0,0,6905,6941,5,779,0,0,6906,6907,5,1404,0,
	0,6907,6908,5,519,0,0,6908,6913,3,748,374,0,6909,6910,5,2229,0,0,6910,6912,
	3,748,374,0,6911,6909,1,0,0,0,6912,6915,1,0,0,0,6913,6911,1,0,0,0,6913,
	6914,1,0,0,0,6914,6916,1,0,0,0,6915,6913,1,0,0,0,6916,6917,5,1964,0,0,6917,
	6918,3,748,374,0,6918,6941,1,0,0,0,6919,6921,5,189,0,0,6920,6922,5,1993,
	0,0,6921,6920,1,0,0,0,6921,6922,1,0,0,0,6922,6923,1,0,0,0,6923,6924,5,777,
	0,0,6924,6929,3,710,355,0,6925,6926,5,2229,0,0,6926,6928,3,710,355,0,6927,
	6925,1,0,0,0,6928,6931,1,0,0,0,6929,6927,1,0,0,0,6929,6930,1,0,0,0,6930,
	6934,1,0,0,0,6931,6929,1,0,0,0,6932,6933,5,2017,0,0,6933,6935,5,318,0,0,
	6934,6932,1,0,0,0,6934,6935,1,0,0,0,6935,6941,1,0,0,0,6936,6941,3,696,348,
	0,6937,6941,3,700,350,0,6938,6941,3,702,351,0,6939,6941,3,704,352,0,6940,
	6899,1,0,0,0,6940,6902,1,0,0,0,6940,6906,1,0,0,0,6940,6919,1,0,0,0,6940,
	6936,1,0,0,0,6940,6937,1,0,0,0,6940,6938,1,0,0,0,6940,6939,1,0,0,0,6941,
	695,1,0,0,0,6942,6944,5,18,0,0,6943,6945,5,1566,0,0,6944,6943,1,0,0,0,6944,
	6945,1,0,0,0,6945,6946,1,0,0,0,6946,6978,5,777,0,0,6947,6948,3,698,349,
	0,6948,6949,3,466,233,0,6949,6951,1,0,0,0,6950,6947,1,0,0,0,6951,6952,1,
	0,0,0,6952,6950,1,0,0,0,6952,6953,1,0,0,0,6953,6979,1,0,0,0,6954,6955,5,
	826,0,0,6955,6957,3,748,374,0,6956,6958,5,1432,0,0,6957,6956,1,0,0,0,6957,
	6958,1,0,0,0,6958,6966,1,0,0,0,6959,6960,5,2229,0,0,6960,6962,3,748,374,
	0,6961,6963,5,1432,0,0,6962,6961,1,0,0,0,6962,6963,1,0,0,0,6963,6965,1,
	0,0,0,6964,6959,1,0,0,0,6965,6968,1,0,0,0,6966,6964,1,0,0,0,6966,6967,1,
	0,0,0,6967,6969,1,0,0,0,6968,6966,1,0,0,0,6969,6970,5,1964,0,0,6970,6975,
	3,710,355,0,6971,6972,5,2229,0,0,6972,6974,3,710,355,0,6973,6971,1,0,0,
	0,6974,6977,1,0,0,0,6975,6973,1,0,0,0,6975,6976,1,0,0,0,6976,6979,1,0,0,
	0,6977,6975,1,0,0,0,6978,6950,1,0,0,0,6978,6954,1,0,0,0,6979,697,1,0,0,
	0,6980,6982,5,2229,0,0,6981,6980,1,0,0,0,6981,6982,1,0,0,0,6982,6985,1,
	0,0,0,6983,6984,5,1927,0,0,6984,6986,5,2217,0,0,6985,6983,1,0,0,0,6985,
	6986,1,0,0,0,6986,6987,1,0,0,0,6987,6988,5,573,0,0,6988,6989,5,2217,0,0,
	6989,699,1,0,0,0,6990,6992,5,411,0,0,6991,6993,5,1566,0,0,6992,6991,1,0,
	0,0,6992,6993,1,0,0,0,6993,6994,1,0,0,0,6994,7012,5,777,0,0,6995,7000,3,
	710,355,0,6996,6997,5,2229,0,0,6997,6999,3,710,355,0,6998,6996,1,0,0,0,
	6999,7002,1,0,0,0,7000,6998,1,0,0,0,7000,7001,1,0,0,0,7001,7013,1,0,0,0,
	7002,7000,1,0,0,0,7003,7004,5,826,0,0,7004,7009,3,748,374,0,7005,7006,5,
	2229,0,0,7006,7008,3,748,374,0,7007,7005,1,0,0,0,7008,7011,1,0,0,0,7009,
	7007,1,0,0,0,7009,7010,1,0,0,0,7010,7013,1,0,0,0,7011,7009,1,0,0,0,7012,
	6995,1,0,0,0,7012,7003,1,0,0,0,7013,701,1,0,0,0,7014,7015,5,1624,0,0,7015,
	7016,5,35,0,0,7016,7017,5,778,0,0,7017,7018,5,1964,0,0,7018,7019,5,132,
	0,0,7019,7020,5,2217,0,0,7020,703,1,0,0,0,7021,7022,3,706,353,0,7022,7023,
	5,1620,0,0,7023,7027,5,783,0,0,7024,7028,5,317,0,0,7025,7028,3,630,315,
	0,7026,7028,3,708,354,0,7027,7024,1,0,0,0,7027,7025,1,0,0,0,7027,7026,1,
	0,0,0,7028,705,1,0,0,0,7029,7030,7,11,0,0,7030,707,1,0,0,0,7031,7032,5,
	317,0,0,7032,7033,5,546,0,0,7033,7034,5,1313,0,0,7034,7035,5,1408,0,0,7035,
	709,1,0,0,0,7036,7037,5,573,0,0,7037,7051,5,2217,0,0,7038,7039,5,2223,0,
	0,7039,7044,3,748,374,0,7040,7041,5,2229,0,0,7041,7043,3,748,374,0,7042,
	7040,1,0,0,0,7043,7046,1,0,0,0,7044,7042,1,0,0,0,7044,7045,1,0,0,0,7045,
	7047,1,0,0,0,7046,7044,1,0,0,0,7047,7048,5,2224,0,0,7048,7051,1,0,0,0,7049,
	7051,3,748,374,0,7050,7036,1,0,0,0,7050,7038,1,0,0,0,7050,7049,1,0,0,0,
	7051,711,1,0,0,0,7052,7054,5,288,0,0,7053,7055,7,71,0,0,7054,7053,1,0,0,
	0,7054,7055,1,0,0,0,7055,7056,1,0,0,0,7056,7057,5,1566,0,0,7057,7058,5,
	267,0,0,7058,7059,5,61,0,0,7059,7061,3,748,374,0,7060,7062,5,1432,0,0,7061,
	7060,1,0,0,0,7061,7062,1,0,0,0,7062,7074,1,0,0,0,7063,7064,5,93,0,0,7064,
	7065,5,267,0,0,7065,7071,5,1964,0,0,7066,7068,3,748,374,0,7067,7069,5,1432,
	0,0,7068,7067,1,0,0,0,7068,7069,1,0,0,0,7069,7072,1,0,0,0,7070,7072,3,714,
	357,0,7071,7066,1,0,0,0,7071,7070,1,0,0,0,7072,7074,1,0,0,0,7073,7052,1,
	0,0,0,7073,7063,1,0,0,0,7074,713,1,0,0,0,7075,7081,5,1966,0,0,7076,7077,
	5,61,0,0,7077,7079,3,748,374,0,7078,7080,5,1432,0,0,7079,7078,1,0,0,0,7079,
	7080,1,0,0,0,7080,7082,1,0,0,0,7081,7076,1,0,0,0,7081,7082,1,0,0,0,7082,
	7084,1,0,0,0,7083,7085,7,68,0,0,7084,7083,1,0,0,0,7084,7085,1,0,0,0,7085,
	715,1,0,0,0,7086,7094,3,718,359,0,7087,7094,3,720,360,0,7088,7094,3,722,
	361,0,7089,7094,3,724,362,0,7090,7094,3,726,363,0,7091,7094,3,728,364,0,
	7092,7094,3,730,365,0,7093,7086,1,0,0,0,7093,7087,1,0,0,0,7093,7088,1,0,
	0,0,7093,7089,1,0,0,0,7093,7090,1,0,0,0,7093,7091,1,0,0,0,7093,7092,1,0,
	0,0,7094,7096,1,0,0,0,7095,7097,3,474,237,0,7096,7095,1,0,0,0,7096,7097,
	1,0,0,0,7097,717,1,0,0,0,7098,7100,5,10,0,0,7099,7101,7,71,0,0,7100,7099,
	1,0,0,0,7100,7101,1,0,0,0,7101,7102,1,0,0,0,7102,7103,5,1566,0,0,7103,7106,
	5,316,0,0,7104,7105,5,525,0,0,7105,7107,5,54,0,0,7106,7104,1,0,0,0,7106,
	7107,1,0,0,0,7107,719,1,0,0,0,7108,7109,5,1510,0,0,7109,7110,5,1566,0,0,
	7110,7111,5,316,0,0,7111,7112,5,1964,0,0,7112,7113,5,814,0,0,7113,7114,
	7,72,0,0,7114,721,1,0,0,0,7115,7118,5,1384,0,0,7116,7117,5,1172,0,0,7117,
	7119,5,1407,0,0,7118,7116,1,0,0,0,7118,7119,1,0,0,0,7119,7120,1,0,0,0,7120,
	7121,7,71,0,0,7121,7122,5,777,0,0,7122,723,1,0,0,0,7123,7124,7,73,0,0,7124,
	7125,5,1964,0,0,7125,7154,5,1623,0,0,7126,7147,5,1964,0,0,7127,7129,7,71,
	0,0,7128,7127,1,0,0,0,7128,7129,1,0,0,0,7129,7130,1,0,0,0,7130,7136,5,1304,
	0,0,7131,7133,5,1248,0,0,7132,7131,1,0,0,0,7132,7133,1,0,0,0,7133,7134,
	1,0,0,0,7134,7136,5,1566,0,0,7135,7128,1,0,0,0,7135,7132,1,0,0,0,7136,7143,
	1,0,0,0,7137,7139,7,52,0,0,7138,7137,1,0,0,0,7138,7139,1,0,0,0,7139,7140,
	1,0,0,0,7140,7141,5,1506,0,0,7141,7142,5,1522,0,0,7142,7144,7,74,0,0,7143,
	7138,1,0,0,0,7143,7144,1,0,0,0,7144,7148,1,0,0,0,7145,7146,5,780,0,0,7146,
	7148,5,1566,0,0,7147,7135,1,0,0,0,7147,7145,1,0,0,0,7148,7152,1,0,0,0,7149,
	7150,5,780,0,0,7150,7152,5,1566,0,0,7151,7126,1,0,0,0,7151,7149,1,0,0,0,
	7152,7155,1,0,0,0,7153,7155,5,158,0,0,7154,7151,1,0,0,0,7154,7153,1,0,0,
	0,7154,7155,1,0,0,0,7155,725,1,0,0,0,7156,7157,5,1569,0,0,7157,7158,5,780,
	0,0,7158,7159,5,1566,0,0,7159,7161,5,54,0,0,7160,7162,5,613,0,0,7161,7160,
	1,0,0,0,7161,7162,1,0,0,0,7162,7164,1,0,0,0,7163,7165,5,966,0,0,7164,7163,
	1,0,0,0,7164,7165,1,0,0,0,7165,7177,1,0,0,0,7166,7167,5,903,0,0,7167,7168,
	5,1304,0,0,7168,7178,3,1492,746,0,7169,7171,5,654,0,0,7170,7172,5,2217,
	0,0,7171,7170,1,0,0,0,7171,7172,1,0,0,0,7172,7178,1,0,0,0,7173,7174,5,1537,
	0,0,7174,7175,5,503,0,0,7175,7178,5,1970,0,0,7176,7178,5,525,0,0,7177,7166,
	1,0,0,0,7177,7169,1,0,0,0,7177,7173,1,0,0,0,7177,7176,1,0,0,0,7177,7178,
	1,0,0,0,7178,727,1,0,0,0,7179,7180,7,75,0,0,7180,7181,5,780,0,0,7181,7182,
	5,1566,0,0,7182,7183,5,54,0,0,7183,729,1,0,0,0,7184,7185,5,269,0,0,7185,
	7186,5,1964,0,0,7186,7187,7,76,0,0,7187,7188,5,1566,0,0,7188,731,1,0,0,
	0,7189,7190,5,351,0,0,7190,7191,5,424,0,0,7191,7192,5,2243,0,0,7192,7236,
	3,744,372,0,7193,7194,5,1510,0,0,7194,7195,5,351,0,0,7195,7196,7,43,0,0,
	7196,7236,5,1909,0,0,7197,7198,5,351,0,0,7198,7199,5,1909,0,0,7199,7236,
	3,836,418,0,7200,7201,5,351,0,0,7201,7202,5,1920,0,0,7202,7205,5,1909,0,
	0,7203,7206,3,836,418,0,7204,7206,3,434,217,0,7205,7203,1,0,0,0,7205,7204,
	1,0,0,0,7206,7236,1,0,0,0,7207,7208,5,1404,0,0,7208,7209,5,568,0,0,7209,
	7210,5,1964,0,0,7210,7213,3,742,371,0,7211,7212,5,2216,0,0,7212,7214,3,
	740,370,0,7213,7211,1,0,0,0,7214,7215,1,0,0,0,7215,7213,1,0,0,0,7215,7216,
	1,0,0,0,7216,7236,1,0,0,0,7217,7218,5,439,0,0,7218,7219,5,129,0,0,7219,
	7220,5,172,0,0,7220,7227,5,1968,0,0,7221,7222,5,2063,0,0,7222,7223,5,519,
	0,0,7223,7225,3,748,374,0,7224,7226,5,1432,0,0,7225,7224,1,0,0,0,7225,7226,
	1,0,0,0,7226,7228,1,0,0,0,7227,7221,1,0,0,0,7227,7228,1,0,0,0,7228,7236,
	1,0,0,0,7229,7230,5,383,0,0,7230,7231,5,129,0,0,7231,7232,5,172,0,0,7232,
	7236,5,1968,0,0,7233,7236,3,438,219,0,7234,7236,3,734,367,0,7235,7189,1,
	0,0,0,7235,7193,1,0,0,0,7235,7197,1,0,0,0,7235,7200,1,0,0,0,7235,7207,1,
	0,0,0,7235,7217,1,0,0,0,7235,7229,1,0,0,0,7235,7233,1,0,0,0,7235,7234,1,
	0,0,0,7236,733,1,0,0,0,7237,7238,5,1510,0,0,7238,7239,5,1938,0,0,7239,7240,
	5,2243,0,0,7240,7241,5,2219,0,0,7241,735,1,0,0,0,7242,7243,3,648,324,0,
	7243,7244,5,672,0,0,7244,7245,5,2219,0,0,7245,737,1,0,0,0,7246,7247,5,580,
	0,0,7247,7248,7,77,0,0,7248,739,1,0,0,0,7249,7250,3,1492,746,0,7250,741,
	1,0,0,0,7251,7252,3,1492,746,0,7252,743,1,0,0,0,7253,7254,3,1492,746,0,
	7254,745,1,0,0,0,7255,7256,5,2217,0,0,7256,747,1,0,0,0,7257,7258,5,2219,
	0,0,7258,749,1,0,0,0,7259,7260,5,39,0,0,7260,7261,5,1912,0,0,7261,7267,
	3,1426,713,0,7262,7268,1,0,0,0,7263,7268,3,752,376,0,7264,7268,3,870,435,
	0,7265,7268,3,784,392,0,7266,7268,3,774,387,0,7267,7262,1,0,0,0,7267,7263,
	1,0,0,0,7267,7264,1,0,0,0,7267,7265,1,0,0,0,7267,7266,1,0,0,0,7268,7281,
	1,0,0,0,7269,7278,3,764,382,0,7270,7275,3,648,324,0,7271,7272,5,1912,0,
	0,7272,7276,5,776,0,0,7273,7274,5,35,0,0,7274,7276,5,1977,0,0,7275,7271,
	1,0,0,0,7275,7273,1,0,0,0,7276,7278,1,0,0,0,7277,7269,1,0,0,0,7277,7270,
	1,0,0,0,7278,7279,1,0,0,0,7279,7277,1,0,0,0,7279,7280,1,0,0,0,7280,7282,
	1,0,0,0,7281,7277,1,0,0,0,7281,7282,1,0,0,0,7282,7283,1,0,0,0,7283,7284,
	5,2241,0,0,7284,751,1,0,0,0,7285,7297,3,754,377,0,7286,7287,5,1404,0,0,
	7287,7288,5,1964,0,0,7288,7297,3,1426,713,0,7289,7297,3,636,318,0,7290,
	7291,5,1353,0,0,7291,7297,5,1127,0,0,7292,7293,5,1353,0,0,7293,7297,5,2125,
	0,0,7294,7295,5,1396,0,0,7295,7297,5,2219,0,0,7296,7285,1,0,0,0,7296,7286,
	1,0,0,0,7296,7289,1,0,0,0,7296,7290,1,0,0,0,7296,7292,1,0,0,0,7296,7294,
	1,0,0,0,7297,753,1,0,0,0,7298,7316,3,610,305,0,7299,7316,3,448,224,0,7300,
	7316,3,608,304,0,7301,7316,3,626,313,0,7302,7316,3,632,316,0,7303,7316,
	3,634,317,0,7304,7316,7,51,0,0,7305,7306,5,1424,0,0,7306,7307,5,2223,0,
	0,7307,7308,5,860,0,0,7308,7309,7,57,0,0,7309,7316,5,2224,0,0,7310,7316,
	3,640,320,0,7311,7316,3,638,319,0,7312,7316,3,474,237,0,7313,7316,3,620,
	310,0,7314,7316,3,622,311,0,7315,7298,1,0,0,0,7315,7299,1,0,0,0,7315,7300,
	1,0,0,0,7315,7301,1,0,0,0,7315,7302,1,0,0,0,7315,7303,1,0,0,0,7315,7304,
	1,0,0,0,7315,7305,1,0,0,0,7315,7310,1,0,0,0,7315,7311,1,0,0,0,7315,7312,
	1,0,0,0,7315,7313,1,0,0,0,7315,7314,1,0,0,0,7316,7317,1,0,0,0,7317,7315,
	1,0,0,0,7317,7318,1,0,0,0,7318,7320,1,0,0,0,7319,7321,3,756,378,0,7320,
	7319,1,0,0,0,7320,7321,1,0,0,0,7321,755,1,0,0,0,7322,7327,3,776,388,0,7323,
	7327,3,760,380,0,7324,7327,3,758,379,0,7325,7327,5,205,0,0,7326,7322,1,
	0,0,0,7326,7323,1,0,0,0,7326,7324,1,0,0,0,7326,7325,1,0,0,0,7327,757,1,
	0,0,0,7328,7329,5,802,0,0,7329,7332,5,1912,0,0,7330,7333,3,632,316,0,7331,
	7333,3,634,317,0,7332,7330,1,0,0,0,7332,7331,1,0,0,0,7333,759,1,0,0,0,7334,
	7345,3,762,381,0,7335,7340,5,1184,0,0,7336,7341,3,616,308,0,7337,7341,3,
	632,316,0,7338,7341,3,636,318,0,7339,7341,3,634,317,0,7340,7336,1,0,0,0,
	7340,7337,1,0,0,0,7340,7338,1,0,0,0,7340,7339,1,0,0,0,7341,7342,1,0,0,0,
	7342,7340,1,0,0,0,7342,7343,1,0,0,0,7343,7345,1,0,0,0,7344,7334,1,0,0,0,
	7344,7335,1,0,0,0,7345,761,1,0,0,0,7346,7347,5,18,0,0,7347,7349,5,1184,
	0,0,7348,7350,3,616,308,0,7349,7348,1,0,0,0,7349,7350,1,0,0,0,7350,7367,
	1,0,0,0,7351,7352,5,2223,0,0,7352,7354,5,1207,0,0,7353,7355,3,616,308,0,
	7354,7353,1,0,0,0,7354,7355,1,0,0,0,7355,7363,1,0,0,0,7356,7357,5,2229,
	0,0,7357,7359,5,1207,0,0,7358,7360,3,616,308,0,7359,7358,1,0,0,0,7359,7360,
	1,0,0,0,7360,7362,1,0,0,0,7361,7356,1,0,0,0,7362,7365,1,0,0,0,7363,7361,
	1,0,0,0,7363,7364,1,0,0,0,7364,7366,1,0,0,0,7365,7363,1,0,0,0,7366,7368,
	5,2224,0,0,7367,7351,1,0,0,0,7367,7368,1,0,0,0,7368,763,1,0,0,0,7369,7371,
	7,5,0,0,7370,7372,7,39,0,0,7371,7370,1,0,0,0,7371,7372,1,0,0,0,7372,7389,
	1,0,0,0,7373,7374,5,2002,0,0,7374,7375,5,2223,0,0,7375,7380,3,1424,712,
	0,7376,7377,5,2229,0,0,7377,7379,3,1424,712,0,7378,7376,1,0,0,0,7379,7382,
	1,0,0,0,7380,7378,1,0,0,0,7380,7381,1,0,0,0,7381,7383,1,0,0,0,7382,7380,
	1,0,0,0,7383,7384,5,2224,0,0,7384,7390,1,0,0,0,7385,7386,5,1304,0,0,7386,
	7390,5,722,0,0,7387,7388,5,257,0,0,7388,7390,3,1396,698,0,7389,7373,1,0,
	0,0,7389,7385,1,0,0,0,7389,7387,1,0,0,0,7390,7392,1,0,0,0,7391,7393,3,766,
	383,0,7392,7391,1,0,0,0,7392,7393,1,0,0,0,7393,7395,1,0,0,0,7394,7396,3,
	772,386,0,7395,7394,1,0,0,0,7395,7396,1,0,0,0,7396,7398,1,0,0,0,7397,7399,
	5,162,0,0,7398,7397,1,0,0,0,7398,7399,1,0,0,0,7399,7402,1,0,0,0,7400,7401,
	7,78,0,0,7401,7403,5,631,0,0,7402,7400,1,0,0,0,7402,7403,1,0,0,0,7403,765,
	1,0,0,0,7404,7405,5,2063,0,0,7405,7412,5,631,0,0,7406,7413,3,1414,707,0,
	7407,7408,5,2223,0,0,7408,7409,3,180,90,0,7409,7410,5,2224,0,0,7410,7413,
	1,0,0,0,7411,7413,3,768,384,0,7412,7406,1,0,0,0,7412,7407,1,0,0,0,7412,
	7411,1,0,0,0,7412,7413,1,0,0,0,7413,767,1,0,0,0,7414,7427,3,610,305,0,7415,
	7427,3,448,224,0,7416,7419,5,1909,0,0,7417,7420,3,836,418,0,7418,7420,5,
	351,0,0,7419,7417,1,0,0,0,7419,7418,1,0,0,0,7420,7427,1,0,0,0,7421,7427,
	3,780,390,0,7422,7427,3,770,385,0,7423,7427,5,1433,0,0,7424,7427,3,236,
	118,0,7425,7427,3,474,237,0,7426,7414,1,0,0,0,7426,7415,1,0,0,0,7426,7416,
	1,0,0,0,7426,7421,1,0,0,0,7426,7422,1,0,0,0,7426,7423,1,0,0,0,7426,7424,
	1,0,0,0,7426,7425,1,0,0,0,7427,7428,1,0,0,0,7428,7426,1,0,0,0,7428,7429,
	1,0,0,0,7429,769,1,0,0,0,7430,7431,7,79,0,0,7431,771,1,0,0,0,7432,7433,
	5,470,0,0,7433,7434,5,691,0,0,7434,7435,3,1426,713,0,7435,773,1,0,0,0,7436,
	7438,5,874,0,0,7437,7439,5,1125,0,0,7438,7437,1,0,0,0,7438,7439,1,0,0,0,
	7439,7441,1,0,0,0,7440,7442,3,616,308,0,7441,7440,1,0,0,0,7441,7442,1,0,
	0,0,7442,7444,1,0,0,0,7443,7445,3,608,304,0,7444,7443,1,0,0,0,7444,7445,
	1,0,0,0,7445,7447,1,0,0,0,7446,7448,3,776,388,0,7447,7446,1,0,0,0,7447,
	7448,1,0,0,0,7448,7455,1,0,0,0,7449,7452,3,820,410,0,7450,7452,3,810,405,
	0,7451,7449,1,0,0,0,7451,7450,1,0,0,0,7452,7453,1,0,0,0,7453,7451,1,0,0,
	0,7453,7454,1,0,0,0,7454,7456,1,0,0,0,7455,7451,1,0,0,0,7455,7456,1,0,0,
	0,7456,7458,1,0,0,0,7457,7459,3,474,237,0,7458,7457,1,0,0,0,7458,7459,1,
	0,0,0,7459,775,1,0,0,0,7460,7465,3,778,389,0,7461,7462,5,1229,0,0,7462,
	7465,5,2217,0,0,7463,7465,3,780,390,0,7464,7460,1,0,0,0,7464,7461,1,0,0,
	0,7464,7463,1,0,0,0,7465,7467,1,0,0,0,7466,7468,3,782,391,0,7467,7466,1,
	0,0,0,7467,7468,1,0,0,0,7468,777,1,0,0,0,7469,7470,5,802,0,0,7470,7473,
	5,1912,0,0,7471,7473,5,994,0,0,7472,7469,1,0,0,0,7472,7471,1,0,0,0,7473,
	779,1,0,0,0,7474,7478,5,953,0,0,7475,7476,5,232,0,0,7476,7478,5,2217,0,
	0,7477,7474,1,0,0,0,7477,7475,1,0,0,0,7478,781,1,0,0,0,7479,7480,5,619,
	0,0,7480,7482,3,1424,712,0,7481,7479,1,0,0,0,7481,7482,1,0,0,0,7482,7483,
	1,0,0,0,7483,7485,5,1184,0,0,7484,7486,3,616,308,0,7485,7484,1,0,0,0,7485,
	7486,1,0,0,0,7486,783,1,0,0,0,7487,7492,3,796,398,0,7488,7492,3,790,395,
	0,7489,7492,3,786,393,0,7490,7492,3,822,411,0,7491,7487,1,0,0,0,7491,7488,
	1,0,0,0,7491,7489,1,0,0,0,7491,7490,1,0,0,0,7492,785,1,0,0,0,7493,7494,
	5,863,0,0,7494,7495,5,895,0,0,7495,7496,5,1912,0,0,7496,7497,3,788,394,
	0,7497,7498,5,1431,0,0,7498,7499,5,61,0,0,7499,7500,7,80,0,0,7500,787,1,
	0,0,0,7501,7502,3,1426,713,0,7502,789,1,0,0,0,7503,7504,5,1404,0,0,7504,
	7505,5,213,0,0,7505,7506,3,792,396,0,7506,7507,5,1964,0,0,7507,7508,3,794,
	397,0,7508,791,1,0,0,0,7509,7510,3,1424,712,0,7510,793,1,0,0,0,7511,7512,
	3,1424,712,0,7512,795,1,0,0,0,7513,7517,3,806,403,0,7514,7517,3,800,400,
	0,7515,7517,3,798,399,0,7516,7513,1,0,0,0,7516,7514,1,0,0,0,7516,7515,1,
	0,0,0,7517,7518,1,0,0,0,7518,7516,1,0,0,0,7518,7519,1,0,0,0,7519,797,1,
	0,0,0,7520,7521,5,1510,0,0,7521,7535,5,2022,0,0,7522,7523,5,213,0,0,7523,
	7536,3,1424,712,0,7524,7525,5,2223,0,0,7525,7530,3,1424,712,0,7526,7527,
	5,2229,0,0,7527,7529,3,1424,712,0,7528,7526,1,0,0,0,7529,7532,1,0,0,0,7530,
	7528,1,0,0,0,7530,7531,1,0,0,0,7531,7533,1,0,0,0,7532,7530,1,0,0,0,7533,
	7534,5,2224,0,0,7534,7536,1,0,0,0,7535,7522,1,0,0,0,7535,7524,1,0,0,0,7536,
	7542,1,0,0,0,7537,7538,5,162,0,0,7538,7541,5,258,0,0,7539,7541,5,692,0,
	0,7540,7537,1,0,0,0,7540,7539,1,0,0,0,7541,7544,1,0,0,0,7542,7540,1,0,0,
	0,7542,7543,1,0,0,0,7543,7583,1,0,0,0,7544,7542,1,0,0,0,7545,7559,5,411,
	0,0,7546,7547,5,213,0,0,7547,7560,3,1424,712,0,7548,7549,5,2223,0,0,7549,
	7554,3,1424,712,0,7550,7551,5,2229,0,0,7551,7553,3,1424,712,0,7552,7550,
	1,0,0,0,7553,7556,1,0,0,0,7554,7552,1,0,0,0,7554,7555,1,0,0,0,7555,7557,
	1,0,0,0,7556,7554,1,0,0,0,7557,7558,5,2224,0,0,7558,7560,1,0,0,0,7559,7546,
	1,0,0,0,7559,7548,1,0,0,0,7560,7566,1,0,0,0,7561,7562,5,162,0,0,7562,7565,
	5,258,0,0,7563,7565,5,692,0,0,7564,7561,1,0,0,0,7564,7563,1,0,0,0,7565,
	7568,1,0,0,0,7566,7564,1,0,0,0,7566,7567,1,0,0,0,7567,7571,1,0,0,0,7568,
	7566,1,0,0,0,7569,7570,5,181,0,0,7570,7572,5,2217,0,0,7571,7569,1,0,0,0,
	7571,7572,1,0,0,0,7572,7583,1,0,0,0,7573,7578,5,411,0,0,7574,7575,5,2022,
	0,0,7575,7579,5,214,0,0,7576,7577,5,214,0,0,7577,7579,5,266,0,0,7578,7574,
	1,0,0,0,7578,7576,1,0,0,0,7579,7580,1,0,0,0,7580,7581,5,181,0,0,7581,7583,
	5,2217,0,0,7582,7520,1,0,0,0,7582,7545,1,0,0,0,7582,7573,1,0,0,0,7583,799,
	1,0,0,0,7584,7598,5,863,0,0,7585,7586,5,2223,0,0,7586,7591,3,802,401,0,
	7587,7588,5,2229,0,0,7588,7590,3,802,401,0,7589,7587,1,0,0,0,7590,7593,
	1,0,0,0,7591,7589,1,0,0,0,7591,7592,1,0,0,0,7592,7594,1,0,0,0,7593,7591,
	1,0,0,0,7594,7595,5,2224,0,0,7595,7599,1,0,0,0,7596,7599,3,802,401,0,7597,
	7599,3,804,402,0,7598,7585,1,0,0,0,7598,7596,1,0,0,0,7598,7597,1,0,0,0,
	7599,801,1,0,0,0,7600,7602,3,1424,712,0,7601,7603,3,1460,730,0,7602,7601,
	1,0,0,0,7602,7603,1,0,0,0,7603,7606,1,0,0,0,7604,7605,5,351,0,0,7605,7607,
	3,1234,617,0,7606,7604,1,0,0,0,7606,7607,1,0,0,0,7607,7611,1,0,0,0,7608,
	7609,5,443,0,0,7609,7612,3,834,417,0,7610,7612,5,349,0,0,7611,7608,1,0,
	0,0,7611,7610,1,0,0,0,7611,7612,1,0,0,0,7612,7616,1,0,0,0,7613,7615,3,416,
	208,0,7614,7613,1,0,0,0,7615,7618,1,0,0,0,7616,7614,1,0,0,0,7616,7617,1,
	0,0,0,7617,7620,1,0,0,0,7618,7616,1,0,0,0,7619,7621,3,820,410,0,7620,7619,
	1,0,0,0,7620,7621,1,0,0,0,7621,803,1,0,0,0,7622,7623,5,213,0,0,7623,7625,
	3,1424,712,0,7624,7626,5,1073,0,0,7625,7624,1,0,0,0,7625,7626,1,0,0,0,7626,
	7627,1,0,0,0,7627,7628,5,1611,0,0,7628,7629,5,74,0,0,7629,7630,5,35,0,0,
	7630,7632,5,748,0,0,7631,7633,5,542,0,0,7632,7631,1,0,0,0,7632,7633,1,0,
	0,0,7633,805,1,0,0,0,7634,7656,5,18,0,0,7635,7638,5,2223,0,0,7636,7639,
	3,848,424,0,7637,7639,3,850,425,0,7638,7636,1,0,0,0,7638,7637,1,0,0,0,7639,
	7647,1,0,0,0,7640,7643,5,2229,0,0,7641,7644,3,848,424,0,7642,7644,3,850,
	425,0,7643,7641,1,0,0,0,7643,7642,1,0,0,0,7644,7646,1,0,0,0,7645,7640,1,
	0,0,0,7646,7649,1,0,0,0,7647,7645,1,0,0,0,7647,7648,1,0,0,0,7648,7650,1,
	0,0,0,7649,7647,1,0,0,0,7650,7651,5,2224,0,0,7651,7657,1,0,0,0,7652,7655,
	3,848,424,0,7653,7655,3,850,425,0,7654,7652,1,0,0,0,7654,7653,1,0,0,0,7655,
	7657,1,0,0,0,7656,7635,1,0,0,0,7656,7654,1,0,0,0,7657,7659,1,0,0,0,7658,
	7660,3,840,420,0,7659,7658,1,0,0,0,7659,7660,1,0,0,0,7660,807,1,0,0,0,7661,
	7662,5,863,0,0,7662,7663,5,2080,0,0,7663,7664,3,838,419,0,7664,7665,5,2223,
	0,0,7665,7666,3,824,412,0,7666,7667,5,2224,0,0,7667,809,1,0,0,0,7668,7669,
	5,2080,0,0,7669,7675,3,838,419,0,7670,7672,3,860,430,0,7671,7670,1,0,0,
	0,7671,7672,1,0,0,0,7672,7673,1,0,0,0,7673,7676,3,812,406,0,7674,7676,3,
	860,430,0,7675,7671,1,0,0,0,7675,7674,1,0,0,0,7676,811,1,0,0,0,7677,7678,
	5,1594,0,0,7678,7680,5,61,0,0,7679,7681,7,58,0,0,7680,7679,1,0,0,0,7680,
	7681,1,0,0,0,7681,7682,1,0,0,0,7682,7691,5,765,0,0,7683,7685,3,814,407,
	0,7684,7683,1,0,0,0,7684,7685,1,0,0,0,7685,7686,1,0,0,0,7686,7687,5,2223,
	0,0,7687,7688,3,818,409,0,7688,7689,5,2224,0,0,7689,7692,1,0,0,0,7690,7692,
	3,814,407,0,7691,7684,1,0,0,0,7691,7690,1,0,0,0,7692,813,1,0,0,0,7693,7694,
	3,1492,746,0,7694,815,1,0,0,0,7695,7696,3,1492,746,0,7696,817,1,0,0,0,7697,
	7698,5,1909,0,0,7698,7705,3,836,418,0,7699,7701,3,826,413,0,7700,7702,3,
	612,306,0,7701,7700,1,0,0,0,7701,7702,1,0,0,0,7702,7705,1,0,0,0,7703,7705,
	3,612,306,0,7704,7697,1,0,0,0,7704,7699,1,0,0,0,7704,7703,1,0,0,0,7705,
	819,1,0,0,0,7706,7743,5,765,0,0,7707,7708,5,2223,0,0,7708,7713,3,816,408,
	0,7709,7710,5,2229,0,0,7710,7712,3,816,408,0,7711,7709,1,0,0,0,7712,7715,
	1,0,0,0,7713,7711,1,0,0,0,7713,7714,1,0,0,0,7714,7716,1,0,0,0,7715,7713,
	1,0,0,0,7716,7717,5,2224,0,0,7717,7718,5,1594,0,0,7718,7724,5,61,0,0,7719,
	7725,7,58,0,0,7720,7721,5,2223,0,0,7721,7722,3,818,409,0,7722,7723,5,2224,
	0,0,7723,7725,1,0,0,0,7724,7719,1,0,0,0,7724,7720,1,0,0,0,7725,7726,1,0,
	0,0,7726,7724,1,0,0,0,7726,7727,1,0,0,0,7727,7744,1,0,0,0,7728,7729,5,2223,
	0,0,7729,7730,3,816,408,0,7730,7731,5,2224,0,0,7731,7732,5,1594,0,0,7732,
	7739,5,61,0,0,7733,7740,7,58,0,0,7734,7740,3,814,407,0,7735,7736,5,2223,
	0,0,7736,7737,3,818,409,0,7737,7738,5,2224,0,0,7738,7740,1,0,0,0,7739,7733,
	1,0,0,0,7739,7734,1,0,0,0,7739,7735,1,0,0,0,7740,7741,1,0,0,0,7741,7739,
	1,0,0,0,7741,7742,1,0,0,0,7742,7744,1,0,0,0,7743,7707,1,0,0,0,7743,7728,
	1,0,0,0,7744,821,1,0,0,0,7745,7746,5,863,0,0,7746,7747,5,765,0,0,7747,7748,
	5,2223,0,0,7748,7749,3,816,408,0,7749,7750,5,2224,0,0,7750,7751,5,2223,
	0,0,7751,7752,3,824,412,0,7752,7753,5,2224,0,0,7753,823,1,0,0,0,7754,7779,
	3,612,306,0,7755,7756,7,81,0,0,7756,7779,5,2217,0,0,7757,7758,5,1358,0,
	0,7758,7779,5,552,0,0,7759,7779,3,832,416,0,7760,7779,3,828,414,0,7761,
	7779,3,830,415,0,7762,7763,5,443,0,0,7763,7779,3,834,417,0,7764,7779,5,
	349,0,0,7765,7779,5,150,0,0,7766,7771,5,150,0,0,7767,7771,5,946,0,0,7768,
	7769,5,150,0,0,7769,7771,5,1354,0,0,7770,7766,1,0,0,0,7770,7767,1,0,0,0,
	7770,7768,1,0,0,0,7771,7773,1,0,0,0,7772,7774,3,448,224,0,7773,7772,1,0,
	0,0,7773,7774,1,0,0,0,7774,7779,1,0,0,0,7775,7779,3,632,316,0,7776,7779,
	3,636,318,0,7777,7779,3,634,317,0,7778,7754,1,0,0,0,7778,7755,1,0,0,0,7778,
	7757,1,0,0,0,7778,7759,1,0,0,0,7778,7760,1,0,0,0,7778,7761,1,0,0,0,7778,
	7762,1,0,0,0,7778,7764,1,0,0,0,7778,7765,1,0,0,0,7778,7770,1,0,0,0,7778,
	7775,1,0,0,0,7778,7776,1,0,0,0,7778,7777,1,0,0,0,7779,7780,1,0,0,0,7780,
	7778,1,0,0,0,7780,7781,1,0,0,0,7781,825,1,0,0,0,7782,7783,7,5,0,0,7783,
	7784,5,1593,0,0,7784,7785,5,652,0,0,7785,7808,5,1451,0,0,7786,7787,5,185,
	0,0,7787,7808,5,2217,0,0,7788,7789,5,1231,0,0,7789,7808,5,2217,0,0,7790,
	7791,5,552,0,0,7791,7808,5,2217,0,0,7792,7808,3,832,416,0,7793,7808,3,828,
	414,0,7794,7808,3,830,415,0,7795,7796,5,443,0,0,7796,7808,3,834,417,0,7797,
	7808,5,349,0,0,7798,7803,5,150,0,0,7799,7803,5,946,0,0,7800,7801,5,150,
	0,0,7801,7803,5,1354,0,0,7802,7798,1,0,0,0,7802,7799,1,0,0,0,7802,7800,
	1,0,0,0,7803,7805,1,0,0,0,7804,7806,3,448,224,0,7805,7804,1,0,0,0,7805,
	7806,1,0,0,0,7806,7808,1,0,0,0,7807,7782,1,0,0,0,7807,7786,1,0,0,0,7807,
	7788,1,0,0,0,7807,7790,1,0,0,0,7807,7792,1,0,0,0,7807,7793,1,0,0,0,7807,
	7794,1,0,0,0,7807,7795,1,0,0,0,7807,7797,1,0,0,0,7807,7802,1,0,0,0,7808,
	7809,1,0,0,0,7809,7807,1,0,0,0,7809,7810,1,0,0,0,7810,827,1,0,0,0,7811,
	7812,7,82,0,0,7812,829,1,0,0,0,7813,7819,5,953,0,0,7814,7816,5,232,0,0,
	7815,7817,7,83,0,0,7816,7815,1,0,0,0,7816,7817,1,0,0,0,7817,7819,1,0,0,
	0,7818,7813,1,0,0,0,7818,7814,1,0,0,0,7819,831,1,0,0,0,7820,7826,5,1428,
	0,0,7821,7827,5,2193,0,0,7822,7823,5,2195,0,0,7823,7827,5,2217,0,0,7824,
	7827,5,83,0,0,7825,7827,5,1007,0,0,7826,7821,1,0,0,0,7826,7822,1,0,0,0,
	7826,7824,1,0,0,0,7826,7825,1,0,0,0,7826,7827,1,0,0,0,7827,833,1,0,0,0,
	7828,7829,5,2063,0,0,7829,7831,5,2219,0,0,7830,7828,1,0,0,0,7830,7831,1,
	0,0,0,7831,7835,1,0,0,0,7832,7833,5,601,0,0,7833,7834,5,146,0,0,7834,7836,
	5,2252,0,0,7835,7832,1,0,0,0,7835,7836,1,0,0,0,7836,7838,1,0,0,0,7837,7839,
	5,2219,0,0,7838,7837,1,0,0,0,7838,7839,1,0,0,0,7839,7844,1,0,0,0,7840,7842,
	5,1010,0,0,7841,7840,1,0,0,0,7841,7842,1,0,0,0,7842,7843,1,0,0,0,7843,7845,
	5,1458,0,0,7844,7841,1,0,0,0,7844,7845,1,0,0,0,7845,835,1,0,0,0,7846,7847,
	3,1492,746,0,7847,837,1,0,0,0,7848,7849,3,1488,744,0,7849,7850,5,2216,0,
	0,7850,7852,1,0,0,0,7851,7848,1,0,0,0,7851,7852,1,0,0,0,7852,7856,1,0,0,
	0,7853,7854,3,1488,744,0,7854,7855,5,2216,0,0,7855,7857,1,0,0,0,7856,7853,
	1,0,0,0,7856,7857,1,0,0,0,7857,7858,1,0,0,0,7858,7859,3,1488,744,0,7859,
	839,1,0,0,0,7860,7868,3,868,434,0,7861,7868,3,856,428,0,7862,7865,3,810,
	405,0,7863,7865,3,820,410,0,7864,7862,1,0,0,0,7864,7863,1,0,0,0,7865,7868,
	1,0,0,0,7866,7868,3,524,262,0,7867,7860,1,0,0,0,7867,7861,1,0,0,0,7867,
	7864,1,0,0,0,7867,7866,1,0,0,0,7868,841,1,0,0,0,7869,7870,4,421,9,0,7870,
	7871,5,2216,0,0,7871,7872,5,546,0,0,7872,7879,3,1424,712,0,7873,7874,5,
	2223,0,0,7874,7875,3,844,422,0,7875,7876,5,2229,0,0,7876,7877,3,846,423,
	0,7877,7878,5,2224,0,0,7878,7880,1,0,0,0,7879,7873,1,0,0,0,7879,7880,1,
	0,0,0,7880,843,1,0,0,0,7881,7882,3,1424,712,0,7882,845,1,0,0,0,7883,7884,
	3,1424,712,0,7884,847,1,0,0,0,7885,7888,3,1424,712,0,7886,7889,3,1460,730,
	0,7887,7889,3,1400,700,0,7888,7886,1,0,0,0,7888,7887,1,0,0,0,7889,7891,
	1,0,0,0,7890,7892,5,1544,0,0,7891,7890,1,0,0,0,7891,7892,1,0,0,0,7892,7895,
	1,0,0,0,7893,7894,5,351,0,0,7894,7896,3,1234,617,0,7895,7893,1,0,0,0,7895,
	7896,1,0,0,0,7896,7916,1,0,0,0,7897,7900,5,443,0,0,7898,7899,5,2063,0,0,
	7899,7901,5,2219,0,0,7900,7898,1,0,0,0,7900,7901,1,0,0,0,7901,7905,1,0,
	0,0,7902,7903,5,601,0,0,7903,7904,5,146,0,0,7904,7906,3,1492,746,0,7905,
	7902,1,0,0,0,7905,7906,1,0,0,0,7906,7908,1,0,0,0,7907,7909,5,2219,0,0,7908,
	7907,1,0,0,0,7908,7909,1,0,0,0,7909,7914,1,0,0,0,7910,7912,5,1010,0,0,7911,
	7910,1,0,0,0,7911,7912,1,0,0,0,7912,7913,1,0,0,0,7913,7915,5,1458,0,0,7914,
	7911,1,0,0,0,7914,7915,1,0,0,0,7915,7917,1,0,0,0,7916,7897,1,0,0,0,7916,
	7917,1,0,0,0,7917,7925,1,0,0,0,7918,7920,3,416,208,0,7919,7918,1,0,0,0,
	7920,7923,1,0,0,0,7921,7919,1,0,0,0,7921,7922,1,0,0,0,7922,7926,1,0,0,0,
	7923,7921,1,0,0,0,7924,7926,3,418,209,0,7925,7921,1,0,0,0,7925,7924,1,0,
	0,0,7926,849,1,0,0,0,7927,7929,3,1424,712,0,7928,7930,3,1460,730,0,7929,
	7928,1,0,0,0,7929,7930,1,0,0,0,7930,7932,1,0,0,0,7931,7933,3,852,426,0,
	7932,7931,1,0,0,0,7932,7933,1,0,0,0,7933,7935,1,0,0,0,7934,7936,5,2101,
	0,0,7935,7934,1,0,0,0,7935,7936,1,0,0,0,7936,7940,1,0,0,0,7937,7939,3,416,
	208,0,7938,7937,1,0,0,0,7939,7942,1,0,0,0,7940,7938,1,0,0,0,7940,7941,1,
	0,0,0,7941,851,1,0,0,0,7942,7940,1,0,0,0,7943,7951,5,564,0,0,7944,7952,
	5,40,0,0,7945,7946,5,146,0,0,7946,7949,5,351,0,0,7947,7948,5,1128,0,0,7948,
	7950,5,1097,0,0,7949,7947,1,0,0,0,7949,7950,1,0,0,0,7950,7952,1,0,0,0,7951,
	7944,1,0,0,0,7951,7945,1,0,0,0,7951,7952,1,0,0,0,7952,7953,1,0,0,0,7953,
	7954,5,61,0,0,7954,7955,5,603,0,0,7955,853,1,0,0,0,7956,7957,5,1207,0,0,
	7957,7958,3,862,431,0,7958,855,1,0,0,0,7959,7960,5,895,0,0,7960,7963,5,
	1912,0,0,7961,7964,3,858,429,0,7962,7964,5,216,0,0,7963,7961,1,0,0,0,7963,
	7962,1,0,0,0,7964,7966,1,0,0,0,7965,7967,3,860,430,0,7966,7965,1,0,0,0,
	7966,7967,1,0,0,0,7967,7969,1,0,0,0,7968,7970,7,84,0,0,7969,7968,1,0,0,
	0,7969,7970,1,0,0,0,7970,7971,1,0,0,0,7971,7972,5,1594,0,0,7972,7973,5,
	61,0,0,7973,7987,3,1426,713,0,7974,7981,5,2223,0,0,7975,7976,5,2223,0,0,
	7976,7977,3,536,268,0,7977,7978,5,2224,0,0,7978,7982,1,0,0,0,7979,7982,
	3,618,309,0,7980,7982,3,840,420,0,7981,7975,1,0,0,0,7981,7979,1,0,0,0,7981,
	7980,1,0,0,0,7982,7983,1,0,0,0,7983,7981,1,0,0,0,7983,7984,1,0,0,0,7984,
	7985,1,0,0,0,7985,7986,5,2224,0,0,7986,7988,1,0,0,0,7987,7974,1,0,0,0,7987,
	7988,1,0,0,0,7988,7994,1,0,0,0,7989,7991,5,1431,0,0,7990,7992,5,61,0,0,
	7991,7990,1,0,0,0,7991,7992,1,0,0,0,7992,7993,1,0,0,0,7993,7995,7,80,0,
	0,7994,7989,1,0,0,0,7994,7995,1,0,0,0,7995,857,1,0,0,0,7996,7997,3,1492,
	746,0,7997,859,1,0,0,0,7998,8000,5,427,0,0,7999,7998,1,0,0,0,7999,8000,
	1,0,0,0,8000,8001,1,0,0,0,8001,8002,5,695,0,0,8002,8004,5,1115,0,0,8003,
	8005,5,1987,0,0,8004,8003,1,0,0,0,8004,8005,1,0,0,0,8005,8006,1,0,0,0,8006,
	8007,5,2223,0,0,8007,8008,3,1400,700,0,8008,8009,5,2224,0,0,8009,8018,1,
	0,0,0,8010,8012,5,1073,0,0,8011,8010,1,0,0,0,8011,8012,1,0,0,0,8012,8013,
	1,0,0,0,8013,8014,5,1611,0,0,8014,8015,5,74,0,0,8015,8016,5,35,0,0,8016,
	8018,5,748,0,0,8017,7999,1,0,0,0,8017,8011,1,0,0,0,8018,861,1,0,0,0,8019,
	8020,3,1492,746,0,8020,863,1,0,0,0,8021,8022,5,1620,0,0,8022,8025,5,783,
	0,0,8023,8026,3,628,314,0,8024,8026,3,630,315,0,8025,8023,1,0,0,0,8025,
	8024,1,0,0,0,8026,865,1,0,0,0,8027,8028,3,1492,746,0,8028,867,1,0,0,0,8029,
	8030,5,213,0,0,8030,8031,3,1492,746,0,8031,8032,3,860,430,0,8032,869,1,
	0,0,0,8033,8034,5,18,0,0,8034,8042,5,2223,0,0,8035,8037,3,422,211,0,8036,
	8035,1,0,0,0,8037,8040,1,0,0,0,8038,8036,1,0,0,0,8038,8039,1,0,0,0,8039,
	8043,1,0,0,0,8040,8038,1,0,0,0,8041,8043,3,420,210,0,8042,8038,1,0,0,0,
	8042,8041,1,0,0,0,8043,8044,1,0,0,0,8044,8090,5,2224,0,0,8045,8053,5,18,
	0,0,8046,8048,3,422,211,0,8047,8046,1,0,0,0,8048,8051,1,0,0,0,8049,8047,
	1,0,0,0,8049,8050,1,0,0,0,8050,8054,1,0,0,0,8051,8049,1,0,0,0,8052,8054,
	3,420,210,0,8053,8049,1,0,0,0,8053,8052,1,0,0,0,8054,8090,1,0,0,0,8055,
	8072,5,863,0,0,8056,8057,5,257,0,0,8057,8073,3,1396,698,0,8058,8059,5,1304,
	0,0,8059,8073,5,722,0,0,8060,8061,5,2002,0,0,8061,8062,5,2223,0,0,8062,
	8067,3,1424,712,0,8063,8064,5,2229,0,0,8064,8066,3,1424,712,0,8065,8063,
	1,0,0,0,8066,8069,1,0,0,0,8067,8065,1,0,0,0,8067,8068,1,0,0,0,8068,8070,
	1,0,0,0,8069,8067,1,0,0,0,8070,8071,5,2224,0,0,8071,8073,1,0,0,0,8072,8056,
	1,0,0,0,8072,8058,1,0,0,0,8072,8060,1,0,0,0,8073,8074,1,0,0,0,8074,8076,
	3,424,212,0,8075,8077,5,162,0,0,8076,8075,1,0,0,0,8076,8077,1,0,0,0,8077,
	8090,1,0,0,0,8078,8079,5,1404,0,0,8079,8080,5,257,0,0,8080,8081,3,872,436,
	0,8081,8082,5,1964,0,0,8082,8083,3,874,437,0,8083,8090,1,0,0,0,8084,8086,
	3,876,438,0,8085,8084,1,0,0,0,8086,8087,1,0,0,0,8087,8085,1,0,0,0,8087,
	8088,1,0,0,0,8088,8090,1,0,0,0,8089,8033,1,0,0,0,8089,8045,1,0,0,0,8089,
	8055,1,0,0,0,8089,8078,1,0,0,0,8089,8085,1,0,0,0,8090,871,1,0,0,0,8091,
	8092,3,1396,698,0,8092,873,1,0,0,0,8093,8094,3,1396,698,0,8094,875,1,0,
	0,0,8095,8096,5,411,0,0,8096,8097,3,878,439,0,8097,877,1,0,0,0,8098,8099,
	5,1304,0,0,8099,8113,5,722,0,0,8100,8101,5,2002,0,0,8101,8102,5,2223,0,
	0,8102,8107,3,1424,712,0,8103,8104,5,2229,0,0,8104,8106,3,1424,712,0,8105,
	8103,1,0,0,0,8106,8109,1,0,0,0,8107,8105,1,0,0,0,8107,8108,1,0,0,0,8108,
	8110,1,0,0,0,8109,8107,1,0,0,0,8110,8111,5,2224,0,0,8111,8113,1,0,0,0,8112,
	8098,1,0,0,0,8112,8100,1,0,0,0,8113,8115,1,0,0,0,8114,8116,5,162,0,0,8115,
	8114,1,0,0,0,8115,8116,1,0,0,0,8116,8118,1,0,0,0,8117,8119,7,78,0,0,8118,
	8117,1,0,0,0,8118,8119,1,0,0,0,8119,8126,1,0,0,0,8120,8121,5,257,0,0,8121,
	8123,3,1396,698,0,8122,8124,5,162,0,0,8123,8122,1,0,0,0,8123,8124,1,0,0,
	0,8124,8126,1,0,0,0,8125,8112,1,0,0,0,8125,8120,1,0,0,0,8126,879,1,0,0,
	0,8127,8130,5,18,0,0,8128,8129,5,257,0,0,8129,8131,3,1396,698,0,8130,8128,
	1,0,0,0,8130,8131,1,0,0,0,8131,8132,1,0,0,0,8132,8139,3,882,441,0,8133,
	8136,5,2229,0,0,8134,8135,5,257,0,0,8135,8137,3,1396,698,0,8136,8134,1,
	0,0,0,8136,8137,1,0,0,0,8137,8138,1,0,0,0,8138,8140,3,882,441,0,8139,8133,
	1,0,0,0,8140,8141,1,0,0,0,8141,8139,1,0,0,0,8141,8142,1,0,0,0,8142,881,
	1,0,0,0,8143,8148,3,900,450,0,8144,8148,3,892,446,0,8145,8148,3,898,449,
	0,8146,8148,3,884,442,0,8147,8143,1,0,0,0,8147,8144,1,0,0,0,8147,8145,1,
	0,0,0,8147,8146,1,0,0,0,8148,883,1,0,0,0,8149,8150,5,180,0,0,8150,8151,
	5,2223,0,0,8151,8152,3,1230,615,0,8152,8154,5,2224,0,0,8153,8155,5,383,
	0,0,8154,8153,1,0,0,0,8154,8155,1,0,0,0,8155,885,1,0,0,0,8156,8157,5,411,
	0,0,8157,8158,5,257,0,0,8158,8159,3,1396,698,0,8159,887,1,0,0,0,8160,8161,
	5,439,0,0,8161,8162,5,257,0,0,8162,8163,3,1396,698,0,8163,889,1,0,0,0,8164,
	8165,5,383,0,0,8165,8166,5,257,0,0,8166,8167,3,1396,698,0,8167,891,1,0,
	0,0,8168,8169,5,544,0,0,8169,8170,5,722,0,0,8170,8171,3,1444,722,0,8171,
	8173,3,894,447,0,8172,8174,3,896,448,0,8173,8172,1,0,0,0,8173,8174,1,0,
	0,0,8174,893,1,0,0,0,8175,8176,5,1374,0,0,8176,8177,3,1426,713,0,8177,8178,
	3,1444,722,0,8178,895,1,0,0,0,8179,8180,5,1128,0,0,8180,8184,5,362,0,0,
	8181,8185,5,162,0,0,8182,8183,5,1510,0,0,8183,8185,5,1097,0,0,8184,8181,
	1,0,0,0,8184,8182,1,0,0,0,8185,897,1,0,0,0,8186,8187,5,2002,0,0,8187,8189,
	3,1444,722,0,8188,8190,3,766,383,0,8189,8188,1,0,0,0,8189,8190,1,0,0,0,
	8190,899,1,0,0,0,8191,8192,5,1304,0,0,8192,8193,5,722,0,0,8193,8195,3,1444,
	722,0,8194,8196,3,766,383,0,8195,8194,1,0,0,0,8195,8196,1,0,0,0,8196,901,
	1,0,0,0,8197,8198,5,344,0,0,8198,8200,3,920,460,0,8199,8197,1,0,0,0,8199,
	8200,1,0,0,0,8200,8201,1,0,0,0,8201,8202,5,102,0,0,8202,8209,3,950,475,
	0,8203,8205,5,468,0,0,8204,8206,3,1000,500,0,8205,8204,1,0,0,0,8206,8207,
	1,0,0,0,8207,8205,1,0,0,0,8207,8208,1,0,0,0,8208,8210,1,0,0,0,8209,8203,
	1,0,0,0,8209,8210,1,0,0,0,8210,8211,1,0,0,0,8211,8212,5,445,0,0,8212,8213,
	5,2241,0,0,8213,903,1,0,0,0,8214,8215,5,80,0,0,8215,8216,7,85,0,0,8216,
	905,1,0,0,0,8217,8220,5,729,0,0,8218,8221,3,908,454,0,8219,8221,3,910,455,
	0,8220,8218,1,0,0,0,8220,8219,1,0,0,0,8221,907,1,0,0,0,8222,8223,5,700,
	0,0,8223,8224,5,879,0,0,8224,8225,5,2219,0,0,8225,909,1,0,0,0,8226,8229,
	5,190,0,0,8227,8228,5,879,0,0,8228,8230,5,2219,0,0,8229,8227,1,0,0,0,8229,
	8230,1,0,0,0,8230,8231,1,0,0,0,8231,8232,5,749,0,0,8232,8234,3,1486,743,
	0,8233,8235,3,912,456,0,8234,8233,1,0,0,0,8234,8235,1,0,0,0,8235,8238,1,
	0,0,0,8236,8237,5,2121,0,0,8237,8239,5,265,0,0,8238,8236,1,0,0,0,8238,8239,
	1,0,0,0,8239,8241,1,0,0,0,8240,8242,3,914,457,0,8241,8240,1,0,0,0,8241,
	8242,1,0,0,0,8242,911,1,0,0,0,8243,8244,5,31,0,0,8244,8245,5,652,0,0,8245,
	8246,5,2223,0,0,8246,8247,3,1232,616,0,8247,8248,5,2224,0,0,8248,913,1,
	0,0,0,8249,8250,5,1197,0,0,8250,8255,5,2223,0,0,8251,8256,3,1232,616,0,
	8252,8253,5,2216,0,0,8253,8254,5,2216,0,0,8254,8256,5,2216,0,0,8255,8251,
	1,0,0,0,8255,8252,1,0,0,0,8256,8257,1,0,0,0,8257,8258,5,2224,0,0,8258,915,
	1,0,0,0,8259,8263,3,1380,690,0,8260,8262,7,86,0,0,8261,8260,1,0,0,0,8262,
	8265,1,0,0,0,8263,8261,1,0,0,0,8263,8264,1,0,0,0,8264,8267,1,0,0,0,8265,
	8263,1,0,0,0,8266,8268,3,1458,729,0,8267,8266,1,0,0,0,8267,8268,1,0,0,0,
	8268,8270,1,0,0,0,8269,8271,3,918,459,0,8270,8269,1,0,0,0,8270,8271,1,0,
	0,0,8271,917,1,0,0,0,8272,8273,7,87,0,0,8273,8274,3,1234,617,0,8274,919,
	1,0,0,0,8275,8277,3,922,461,0,8276,8275,1,0,0,0,8277,8278,1,0,0,0,8278,
	8276,1,0,0,0,8278,8279,1,0,0,0,8279,921,1,0,0,0,8280,8291,3,934,467,0,8281,
	8291,3,924,462,0,8282,8291,3,926,463,0,8283,8291,3,928,464,0,8284,8291,
	3,932,466,0,8285,8291,3,942,471,0,8286,8291,3,32,16,0,8287,8291,3,34,17,
	0,8288,8291,3,44,22,0,8289,8291,3,42,21,0,8290,8280,1,0,0,0,8290,8281,1,
	0,0,0,8290,8282,1,0,0,0,8290,8283,1,0,0,0,8290,8284,1,0,0,0,8290,8285,1,
	0,0,0,8290,8286,1,0,0,0,8290,8287,1,0,0,0,8290,8288,1,0,0,0,8290,8289,1,
	0,0,0,8291,923,1,0,0,0,8292,8294,3,1486,743,0,8293,8295,5,255,0,0,8294,
	8293,1,0,0,0,8294,8295,1,0,0,0,8295,8296,1,0,0,0,8296,8299,3,1458,729,0,
	8297,8298,5,1073,0,0,8298,8300,5,1097,0,0,8299,8297,1,0,0,0,8299,8300,1,
	0,0,0,8300,8302,1,0,0,0,8301,8303,3,918,459,0,8302,8301,1,0,0,0,8302,8303,
	1,0,0,0,8303,8304,1,0,0,0,8304,8305,5,2241,0,0,8305,925,1,0,0,0,8306,8307,
	5,1616,0,0,8307,8308,3,1486,743,0,8308,8309,5,695,0,0,8309,8315,3,1458,
	729,0,8310,8311,5,1344,0,0,8311,8312,3,1234,617,0,8312,8313,5,2215,0,0,
	8313,8314,3,1234,617,0,8314,8316,1,0,0,0,8315,8310,1,0,0,0,8315,8316,1,
	0,0,0,8316,8319,1,0,0,0,8317,8318,5,1073,0,0,8318,8320,5,1097,0,0,8319,
	8317,1,0,0,0,8319,8320,1,0,0,0,8320,8321,1,0,0,0,8321,8322,5,2241,0,0,8322,
	927,1,0,0,0,8323,8324,5,309,0,0,8324,8336,3,1486,743,0,8325,8326,5,2223,
	0,0,8326,8331,3,930,465,0,8327,8328,5,2229,0,0,8328,8330,3,930,465,0,8329,
	8327,1,0,0,0,8330,8333,1,0,0,0,8331,8329,1,0,0,0,8331,8332,1,0,0,0,8332,
	8334,1,0,0,0,8333,8331,1,0,0,0,8334,8335,5,2224,0,0,8335,8337,1,0,0,0,8336,
	8325,1,0,0,0,8336,8337,1,0,0,0,8337,8340,1,0,0,0,8338,8339,5,1431,0,0,8339,
	8341,3,1458,729,0,8340,8338,1,0,0,0,8340,8341,1,0,0,0,8341,8344,1,0,0,0,
	8342,8343,5,695,0,0,8343,8345,3,1042,521,0,8344,8342,1,0,0,0,8344,8345,
	1,0,0,0,8345,8346,1,0,0,0,8346,8347,5,2241,0,0,8347,929,1,0,0,0,8348,8353,
	3,1380,690,0,8349,8351,5,652,0,0,8350,8349,1,0,0,0,8350,8351,1,0,0,0,8351,
	8352,1,0,0,0,8352,8354,3,1458,729,0,8353,8350,1,0,0,0,8353,8354,1,0,0,0,
	8354,8356,1,0,0,0,8355,8357,3,918,459,0,8356,8355,1,0,0,0,8356,8357,1,0,
	0,0,8357,931,1,0,0,0,8358,8359,3,1486,743,0,8359,8360,5,468,0,0,8360,8361,
	5,2241,0,0,8361,933,1,0,0,0,8362,8393,5,1287,0,0,8363,8394,5,1500,0,0,8364,
	8394,5,88,0,0,8365,8366,5,469,0,0,8366,8367,5,2223,0,0,8367,8368,3,1404,
	702,0,8368,8369,5,2229,0,0,8369,8370,3,1482,741,0,8370,8371,5,2224,0,0,
	8371,8394,1,0,0,0,8372,8373,5,658,0,0,8373,8374,5,2223,0,0,8374,8375,3,
	1486,743,0,8375,8376,5,2229,0,0,8376,8377,3,1234,617,0,8377,8378,5,2224,
	0,0,8378,8394,1,0,0,0,8379,8380,5,1422,0,0,8380,8383,5,2223,0,0,8381,8384,
	3,1486,743,0,8382,8384,5,351,0,0,8383,8381,1,0,0,0,8383,8382,1,0,0,0,8384,
	8387,1,0,0,0,8385,8386,5,2229,0,0,8386,8388,3,1486,743,0,8387,8385,1,0,
	0,0,8388,8389,1,0,0,0,8389,8387,1,0,0,0,8389,8390,1,0,0,0,8390,8391,1,0,
	0,0,8391,8392,5,2224,0,0,8392,8394,1,0,0,0,8393,8363,1,0,0,0,8393,8364,
	1,0,0,0,8393,8365,1,0,0,0,8393,8372,1,0,0,0,8393,8379,1,0,0,0,8394,8395,
	1,0,0,0,8395,8396,5,2241,0,0,8396,935,1,0,0,0,8397,8398,5,1359,0,0,8398,
	8399,5,2223,0,0,8399,8404,3,938,469,0,8400,8401,5,2229,0,0,8401,8403,3,
	938,469,0,8402,8400,1,0,0,0,8403,8406,1,0,0,0,8404,8402,1,0,0,0,8404,8405,
	1,0,0,0,8405,8407,1,0,0,0,8406,8404,1,0,0,0,8407,8408,5,2224,0,0,8408,937,
	1,0,0,0,8409,8411,3,1424,712,0,8410,8412,3,1458,729,0,8411,8410,1,0,0,0,
	8411,8412,1,0,0,0,8412,8415,1,0,0,0,8413,8414,5,1073,0,0,8414,8416,5,1097,
	0,0,8415,8413,1,0,0,0,8415,8416,1,0,0,0,8416,8418,1,0,0,0,8417,8419,3,918,
	459,0,8418,8417,1,0,0,0,8418,8419,1,0,0,0,8419,939,1,0,0,0,8420,8421,5,
	1376,0,0,8421,8424,5,309,0,0,8422,8423,5,1431,0,0,8423,8425,3,1458,729,
	0,8424,8422,1,0,0,0,8424,8425,1,0,0,0,8425,941,1,0,0,0,8426,8427,5,1987,
	0,0,8427,8428,3,1486,743,0,8428,8433,5,695,0,0,8429,8434,3,944,472,0,8430,
	8434,3,948,474,0,8431,8434,3,936,468,0,8432,8434,3,940,470,0,8433,8429,
	1,0,0,0,8433,8430,1,0,0,0,8433,8431,1,0,0,0,8433,8432,1,0,0,0,8434,8435,
	1,0,0,0,8435,8436,5,2241,0,0,8436,943,1,0,0,0,8437,8438,5,1912,0,0,8438,
	8439,5,1115,0,0,8439,8441,3,1458,729,0,8440,8442,3,946,473,0,8441,8440,
	1,0,0,0,8441,8442,1,0,0,0,8442,8445,1,0,0,0,8443,8444,5,1073,0,0,8444,8446,
	5,1097,0,0,8445,8443,1,0,0,0,8445,8446,1,0,0,0,8446,945,1,0,0,0,8447,8450,
	5,627,0,0,8448,8450,5,631,0,0,8449,8447,1,0,0,0,8449,8448,1,0,0,0,8450,
	8451,1,0,0,0,8451,8452,5,146,0,0,8452,8453,3,1458,729,0,8453,947,1,0,0,
	0,8454,8458,5,2080,0,0,8455,8456,5,2082,0,0,8456,8458,5,60,0,0,8457,8454,
	1,0,0,0,8457,8455,1,0,0,0,8458,8459,1,0,0,0,8459,8460,5,2223,0,0,8460,8461,
	3,1234,617,0,8461,8462,5,2224,0,0,8462,8463,5,1115,0,0,8463,8466,3,1458,
	729,0,8464,8465,5,1073,0,0,8465,8467,5,1097,0,0,8466,8464,1,0,0,0,8466,
	8467,1,0,0,0,8467,949,1,0,0,0,8468,8469,3,954,477,0,8469,8470,7,88,0,0,
	8470,8473,1,0,0,0,8471,8473,3,952,476,0,8472,8468,1,0,0,0,8472,8471,1,0,
	0,0,8473,8474,1,0,0,0,8474,8472,1,0,0,0,8474,8475,1,0,0,0,8475,951,1,0,
	0,0,8476,8477,5,2239,0,0,8477,8478,5,2239,0,0,8478,8479,3,1398,699,0,8479,
	8480,5,2238,0,0,8480,8481,5,2238,0,0,8481,953,1,0,0,0,8482,8500,3,998,499,
	0,8483,8500,3,1004,502,0,8484,8500,3,958,479,0,8485,8500,3,960,480,0,8486,
	8500,3,962,481,0,8487,8500,3,964,482,0,8488,8500,3,966,483,0,8489,8500,
	3,972,486,0,8490,8500,3,976,488,0,8491,8500,3,986,493,0,8492,8500,3,988,
	494,0,8493,8500,3,990,495,0,8494,8500,3,1270,635,0,8495,8500,3,1006,503,
	0,8496,8500,3,992,496,0,8497,8500,3,996,498,0,8498,8500,3,994,497,0,8499,
	8482,1,0,0,0,8499,8483,1,0,0,0,8499,8484,1,0,0,0,8499,8485,1,0,0,0,8499,
	8486,1,0,0,0,8499,8487,1,0,0,0,8499,8488,1,0,0,0,8499,8489,1,0,0,0,8499,
	8490,1,0,0,0,8499,8491,1,0,0,0,8499,8492,1,0,0,0,8499,8493,1,0,0,0,8499,
	8494,1,0,0,0,8499,8495,1,0,0,0,8499,8496,1,0,0,0,8499,8497,1,0,0,0,8499,
	8498,1,0,0,0,8500,955,1,0,0,0,8501,8503,8,89,0,0,8502,8501,1,0,0,0,8503,
	8504,1,0,0,0,8504,8502,1,0,0,0,8504,8505,1,0,0,0,8505,957,1,0,0,0,8506,
	8509,3,1468,734,0,8507,8509,3,1466,733,0,8508,8506,1,0,0,0,8508,8507,1,
	0,0,0,8509,8510,1,0,0,0,8510,8511,5,2232,0,0,8511,8512,3,1234,617,0,8512,
	959,1,0,0,0,8513,8515,5,266,0,0,8514,8516,3,1398,699,0,8515,8514,1,0,0,
	0,8515,8516,1,0,0,0,8516,8519,1,0,0,0,8517,8518,5,2113,0,0,8518,8520,3,
	1230,615,0,8519,8517,1,0,0,0,8519,8520,1,0,0,0,8520,961,1,0,0,0,8521,8523,
	5,480,0,0,8522,8524,3,1398,699,0,8523,8522,1,0,0,0,8523,8524,1,0,0,0,8524,
	8527,1,0,0,0,8525,8526,5,2113,0,0,8526,8528,3,1230,615,0,8527,8525,1,0,
	0,0,8527,8528,1,0,0,0,8528,963,1,0,0,0,8529,8530,5,570,0,0,8530,8531,3,
	1398,699,0,8531,965,1,0,0,0,8532,8533,5,607,0,0,8533,8534,3,1230,615,0,
	8534,8535,5,1925,0,0,8535,8539,3,950,475,0,8536,8538,3,968,484,0,8537,8536,
	1,0,0,0,8538,8541,1,0,0,0,8539,8537,1,0,0,0,8539,8540,1,0,0,0,8540,8543,
	1,0,0,0,8541,8539,1,0,0,0,8542,8544,3,970,485,0,8543,8542,1,0,0,0,8543,
	8544,1,0,0,0,8544,8545,1,0,0,0,8545,8546,5,445,0,0,8546,8547,5,607,0,0,
	8547,967,1,0,0,0,8548,8549,5,433,0,0,8549,8550,3,1230,615,0,8550,8551,5,
	1925,0,0,8551,8552,3,950,475,0,8552,969,1,0,0,0,8553,8554,5,432,0,0,8554,
	8555,3,950,475,0,8555,971,1,0,0,0,8556,8558,3,952,476,0,8557,8556,1,0,0,
	0,8557,8558,1,0,0,0,8558,8563,1,0,0,0,8559,8560,5,2115,0,0,8560,8564,3,
	1230,615,0,8561,8562,5,546,0,0,8562,8564,3,974,487,0,8563,8559,1,0,0,0,
	8563,8561,1,0,0,0,8563,8564,1,0,0,0,8564,8565,1,0,0,0,8565,8566,5,789,0,
	0,8566,8567,3,950,475,0,8567,8568,5,445,0,0,8568,8570,5,789,0,0,8569,8571,
	3,1398,699,0,8570,8569,1,0,0,0,8570,8571,1,0,0,0,8571,973,1,0,0,0,8572,
	8573,3,1414,707,0,8573,8575,5,652,0,0,8574,8576,5,1433,0,0,8575,8574,1,
	0,0,0,8575,8576,1,0,0,0,8576,8577,1,0,0,0,8577,8578,3,982,491,0,8578,8579,
	5,2215,0,0,8579,8580,3,984,492,0,8580,8598,1,0,0,0,8581,8582,3,1418,709,
	0,8582,8595,5,652,0,0,8583,8589,3,1416,708,0,8584,8586,5,2223,0,0,8585,
	8587,3,1232,616,0,8586,8585,1,0,0,0,8586,8587,1,0,0,0,8587,8588,1,0,0,0,
	8588,8590,5,2224,0,0,8589,8584,1,0,0,0,8589,8590,1,0,0,0,8590,8596,1,0,
	0,0,8591,8592,5,2223,0,0,8592,8593,3,1042,521,0,8593,8594,5,2224,0,0,8594,
	8596,1,0,0,0,8595,8583,1,0,0,0,8595,8591,1,0,0,0,8596,8598,1,0,0,0,8597,
	8572,1,0,0,0,8597,8581,1,0,0,0,8598,975,1,0,0,0,8599,8600,5,541,0,0,8600,
	8601,3,1414,707,0,8601,8602,5,652,0,0,8602,8603,3,978,489,0,8603,8606,3,
	1006,503,0,8604,8605,5,1462,0,0,8605,8607,5,470,0,0,8606,8604,1,0,0,0,8606,
	8607,1,0,0,0,8607,977,1,0,0,0,8608,8609,3,982,491,0,8609,8610,5,2215,0,
	0,8610,8611,3,984,492,0,8611,8622,1,0,0,0,8612,8613,5,648,0,0,8613,8614,
	5,1115,0,0,8614,8616,3,1420,710,0,8615,8617,3,980,490,0,8616,8615,1,0,0,
	0,8616,8617,1,0,0,0,8617,8622,1,0,0,0,8618,8619,5,2073,0,0,8619,8620,5,
	1115,0,0,8620,8622,3,1414,707,0,8621,8608,1,0,0,0,8621,8612,1,0,0,0,8621,
	8618,1,0,0,0,8622,979,1,0,0,0,8623,8624,5,107,0,0,8624,8625,3,982,491,0,
	8625,8626,5,43,0,0,8626,8627,3,984,492,0,8627,981,1,0,0,0,8628,8629,3,1256,
	628,0,8629,983,1,0,0,0,8630,8631,3,1256,628,0,8631,985,1,0,0,0,8632,8633,
	5,1097,0,0,8633,987,1,0,0,0,8634,8636,5,1341,0,0,8635,8637,3,1404,702,0,
	8636,8635,1,0,0,0,8636,8637,1,0,0,0,8637,989,1,0,0,0,8638,8640,5,1431,0,
	0,8639,8641,3,1234,617,0,8640,8639,1,0,0,0,8640,8641,1,0,0,0,8641,991,1,
	0,0,0,8642,8644,5,157,0,0,8643,8642,1,0,0,0,8643,8644,1,0,0,0,8644,8645,
	1,0,0,0,8645,8647,3,1374,687,0,8646,8648,3,1448,724,0,8647,8646,1,0,0,0,
	8647,8648,1,0,0,0,8648,993,1,0,0,0,8649,8651,3,1374,687,0,8650,8652,3,1448,
	724,0,8651,8650,1,0,0,0,8651,8652,1,0,0,0,8652,995,1,0,0,0,8653,8654,5,
	1251,0,0,8654,8655,5,1451,0,0,8655,8656,5,2223,0,0,8656,8657,3,1234,617,
	0,8657,8658,5,2224,0,0,8658,997,1,0,0,0,8659,8660,5,102,0,0,8660,8667,3,
	950,475,0,8661,8663,5,468,0,0,8662,8664,3,1000,500,0,8663,8662,1,0,0,0,
	8664,8665,1,0,0,0,8665,8663,1,0,0,0,8665,8666,1,0,0,0,8666,8668,1,0,0,0,
	8667,8661,1,0,0,0,8667,8668,1,0,0,0,8668,8669,1,0,0,0,8669,8671,5,445,0,
	0,8670,8672,3,1398,699,0,8671,8670,1,0,0,0,8671,8672,1,0,0,0,8672,999,1,
	0,0,0,8673,8674,5,2113,0,0,8674,8679,3,1404,702,0,8675,8676,5,1172,0,0,
	8676,8678,3,1404,702,0,8677,8675,1,0,0,0,8678,8681,1,0,0,0,8679,8677,1,
	0,0,0,8679,8680,1,0,0,0,8680,8682,1,0,0,0,8681,8679,1,0,0,0,8682,8683,5,
	1925,0,0,8683,8684,3,950,475,0,8684,1001,1,0,0,0,8685,8687,5,344,0,0,8686,
	8685,1,0,0,0,8686,8687,1,0,0,0,8687,8689,1,0,0,0,8688,8690,3,922,461,0,
	8689,8688,1,0,0,0,8690,8691,1,0,0,0,8691,8689,1,0,0,0,8691,8692,1,0,0,0,
	8692,8694,1,0,0,0,8693,8686,1,0,0,0,8693,8694,1,0,0,0,8694,8695,1,0,0,0,
	8695,8696,3,998,499,0,8696,1003,1,0,0,0,8697,8699,5,344,0,0,8698,8697,1,
	0,0,0,8698,8699,1,0,0,0,8699,8701,1,0,0,0,8700,8702,3,922,461,0,8701,8700,
	1,0,0,0,8702,8703,1,0,0,0,8703,8701,1,0,0,0,8703,8704,1,0,0,0,8704,8705,
	1,0,0,0,8705,8706,3,998,499,0,8706,1005,1,0,0,0,8707,8712,3,1008,504,0,
	8708,8712,3,1012,506,0,8709,8712,3,1014,507,0,8710,8712,3,1024,512,0,8711,
	8707,1,0,0,0,8711,8708,1,0,0,0,8711,8709,1,0,0,0,8711,8710,1,0,0,0,8712,
	1007,1,0,0,0,8713,8714,5,475,0,0,8714,8715,5,613,0,0,8715,8725,3,1234,617,
	0,8716,8718,3,1358,679,0,8717,8719,3,1312,656,0,8718,8717,1,0,0,0,8718,
	8719,1,0,0,0,8719,8726,1,0,0,0,8720,8722,3,1312,656,0,8721,8723,3,1010,
	505,0,8722,8721,1,0,0,0,8722,8723,1,0,0,0,8723,8726,1,0,0,0,8724,8726,3,
	1010,505,0,8725,8716,1,0,0,0,8725,8720,1,0,0,0,8725,8724,1,0,0,0,8725,8726,
	1,0,0,0,8726,1009,1,0,0,0,8727,8728,7,90,0,0,8728,8729,3,1358,679,0,8729,
	1011,1,0,0,0,8730,8738,3,1190,595,0,8731,8738,3,1202,601,0,8732,8738,3,
	1042,521,0,8733,8738,3,1164,582,0,8734,8738,3,1170,585,0,8735,8738,3,1172,
	586,0,8736,8738,3,1038,519,0,8737,8730,1,0,0,0,8737,8731,1,0,0,0,8737,8732,
	1,0,0,0,8737,8733,1,0,0,0,8737,8734,1,0,0,0,8737,8735,1,0,0,0,8737,8736,
	1,0,0,0,8738,1013,1,0,0,0,8739,8744,3,1016,508,0,8740,8744,3,1018,509,0,
	8741,8744,3,1020,510,0,8742,8744,3,1022,511,0,8743,8739,1,0,0,0,8743,8740,
	1,0,0,0,8743,8741,1,0,0,0,8743,8742,1,0,0,0,8744,1015,1,0,0,0,8745,8746,
	5,195,0,0,8746,8747,3,1416,708,0,8747,1017,1,0,0,0,8748,8749,5,1133,0,0,
	8749,8755,3,1416,708,0,8750,8752,5,2223,0,0,8751,8753,3,1232,616,0,8752,
	8751,1,0,0,0,8752,8753,1,0,0,0,8753,8754,1,0,0,0,8754,8756,5,2224,0,0,8755,
	8750,1,0,0,0,8755,8756,1,0,0,0,8756,1019,1,0,0,0,8757,8758,5,518,0,0,8758,
	8779,3,1416,708,0,8759,8760,5,691,0,0,8760,8765,3,1412,706,0,8761,8762,
	5,2229,0,0,8762,8764,3,1412,706,0,8763,8761,1,0,0,0,8764,8767,1,0,0,0,8765,
	8763,1,0,0,0,8765,8766,1,0,0,0,8766,8780,1,0,0,0,8767,8765,1,0,0,0,8768,
	8769,5,145,0,0,8769,8770,5,210,0,0,8770,8771,5,691,0,0,8771,8776,3,1412,
	706,0,8772,8773,5,2229,0,0,8773,8775,3,1412,706,0,8774,8772,1,0,0,0,8775,
	8778,1,0,0,0,8776,8774,1,0,0,0,8776,8777,1,0,0,0,8777,8780,1,0,0,0,8778,
	8776,1,0,0,0,8779,8759,1,0,0,0,8779,8768,1,0,0,0,8780,1021,1,0,0,0,8781,
	8782,5,1133,0,0,8782,8783,3,1412,706,0,8783,8786,5,546,0,0,8784,8787,3,
	1042,521,0,8785,8787,3,1234,617,0,8786,8784,1,0,0,0,8786,8785,1,0,0,0,8787,
	8789,1,0,0,0,8788,8790,3,1312,656,0,8789,8788,1,0,0,0,8789,8790,1,0,0,0,
	8790,1023,1,0,0,0,8791,8797,3,1026,513,0,8792,8797,3,1028,514,0,8793,8797,
	3,1030,515,0,8794,8797,3,1034,517,0,8795,8797,3,1036,518,0,8796,8791,1,
	0,0,0,8796,8792,1,0,0,0,8796,8793,1,0,0,0,8796,8794,1,0,0,0,8796,8795,1,
	0,0,0,8797,1025,1,0,0,0,8798,8799,5,1510,0,0,8799,8813,5,1970,0,0,8800,
	8801,5,1353,0,0,8801,8814,7,36,0,0,8802,8803,5,696,0,0,8803,8807,5,747,
	0,0,8804,8808,5,1499,0,0,8805,8806,5,1353,0,0,8806,8808,5,219,0,0,8807,
	8804,1,0,0,0,8807,8805,1,0,0,0,8808,8814,1,0,0,0,8809,8810,5,2059,0,0,8810,
	8811,5,1441,0,0,8811,8812,5,1488,0,0,8812,8814,3,1368,684,0,8813,8800,1,
	0,0,0,8813,8802,1,0,0,0,8813,8809,1,0,0,0,8813,8814,1,0,0,0,8814,8817,1,
	0,0,0,8815,8816,5,879,0,0,8816,8818,3,1484,742,0,8817,8815,1,0,0,0,8817,
	8818,1,0,0,0,8818,1027,1,0,0,0,8819,8820,5,1510,0,0,8820,8830,7,91,0,0,
	8821,8831,5,35,0,0,8822,8827,3,1396,698,0,8823,8824,5,2229,0,0,8824,8826,
	3,1396,698,0,8825,8823,1,0,0,0,8826,8829,1,0,0,0,8827,8825,1,0,0,0,8827,
	8828,1,0,0,0,8828,8831,1,0,0,0,8829,8827,1,0,0,0,8830,8821,1,0,0,0,8830,
	8822,1,0,0,0,8831,8832,1,0,0,0,8832,8833,7,38,0,0,8833,1029,1,0,0,0,8834,
	8836,5,218,0,0,8835,8837,5,2122,0,0,8836,8835,1,0,0,0,8836,8837,1,0,0,0,
	8837,8851,1,0,0,0,8838,8839,5,217,0,0,8839,8852,3,1234,617,0,8840,8849,
	5,542,0,0,8841,8842,5,276,0,0,8842,8850,3,1234,617,0,8843,8850,5,275,0,
	0,8844,8847,3,1234,617,0,8845,8846,5,2229,0,0,8846,8848,3,1234,617,0,8847,
	8845,1,0,0,0,8847,8848,1,0,0,0,8848,8850,1,0,0,0,8849,8841,1,0,0,0,8849,
	8843,1,0,0,0,8849,8844,1,0,0,0,8850,8852,1,0,0,0,8851,8838,1,0,0,0,8851,
	8840,1,0,0,0,8851,8852,1,0,0,0,8852,8854,1,0,0,0,8853,8855,3,1032,516,0,
	8854,8853,1,0,0,0,8854,8855,1,0,0,0,8855,1031,1,0,0,0,8856,8858,5,2125,
	0,0,8857,8859,7,74,0,0,8858,8857,1,0,0,0,8858,8859,1,0,0,0,8859,8861,1,
	0,0,0,8860,8862,7,92,0,0,8861,8860,1,0,0,0,8861,8862,1,0,0,0,8862,1033,
	1,0,0,0,8863,8865,5,1441,0,0,8864,8866,5,2122,0,0,8865,8864,1,0,0,0,8865,
	8866,1,0,0,0,8866,8874,1,0,0,0,8867,8869,5,1964,0,0,8868,8870,5,1461,0,
	0,8869,8868,1,0,0,0,8869,8870,1,0,0,0,8870,8871,1,0,0,0,8871,8875,3,1366,
	683,0,8872,8873,5,542,0,0,8873,8875,3,1484,742,0,8874,8867,1,0,0,0,8874,
	8872,1,0,0,0,8874,8875,1,0,0,0,8875,1035,1,0,0,0,8876,8877,5,1461,0,0,8877,
	8878,3,1366,683,0,8878,1037,1,0,0,0,8879,8880,5,485,0,0,8880,8885,5,1257,
	0,0,8881,8882,5,1510,0,0,8882,8883,5,1571,0,0,8883,8884,5,2243,0,0,8884,
	8886,3,1484,742,0,8885,8881,1,0,0,0,8885,8886,1,0,0,0,8886,8889,1,0,0,0,
	8887,8888,5,691,0,0,8888,8890,3,1426,713,0,8889,8887,1,0,0,0,8889,8890,
	1,0,0,0,8890,8891,1,0,0,0,8891,8897,5,546,0,0,8892,8898,3,1042,521,0,8893,
	8898,3,1164,582,0,8894,8898,3,1170,585,0,8895,8898,3,1172,586,0,8896,8898,
	3,1190,595,0,8897,8892,1,0,0,0,8897,8893,1,0,0,0,8897,8894,1,0,0,0,8897,
	8895,1,0,0,0,8897,8896,1,0,0,0,8898,1039,1,0,0,0,8899,8901,3,1044,522,0,
	8900,8899,1,0,0,0,8900,8901,1,0,0,0,8901,8902,1,0,0,0,8902,8903,3,1052,
	526,0,8903,1041,1,0,0,0,8904,8911,3,1040,520,0,8905,8910,3,1158,579,0,8906,
	8910,3,1150,575,0,8907,8910,3,1154,577,0,8908,8910,3,1156,578,0,8909,8905,
	1,0,0,0,8909,8906,1,0,0,0,8909,8907,1,0,0,0,8909,8908,1,0,0,0,8910,8913,
	1,0,0,0,8911,8909,1,0,0,0,8911,8912,1,0,0,0,8912,1043,1,0,0,0,8913,8911,
	1,0,0,0,8914,8915,5,2121,0,0,8915,8920,3,1046,523,0,8916,8917,5,2229,0,
	0,8917,8919,3,1046,523,0,8918,8916,1,0,0,0,8919,8922,1,0,0,0,8920,8918,
	1,0,0,0,8920,8921,1,0,0,0,8921,1045,1,0,0,0,8922,8920,1,0,0,0,8923,8925,
	3,1390,695,0,8924,8926,3,1444,722,0,8925,8924,1,0,0,0,8925,8926,1,0,0,0,
	8926,8927,1,0,0,0,8927,8928,5,61,0,0,8928,8929,5,2223,0,0,8929,8931,3,1052,
	526,0,8930,8932,3,1150,575,0,8931,8930,1,0,0,0,8931,8932,1,0,0,0,8932,8933,
	1,0,0,0,8933,8935,5,2224,0,0,8934,8936,3,1048,524,0,8935,8934,1,0,0,0,8935,
	8936,1,0,0,0,8936,8938,1,0,0,0,8937,8939,3,1050,525,0,8938,8937,1,0,0,0,
	8938,8939,1,0,0,0,8939,1047,1,0,0,0,8940,8941,5,1479,0,0,8941,8942,7,93,
	0,0,8942,8943,5,526,0,0,8943,8944,5,146,0,0,8944,8946,3,1424,712,0,8945,
	8947,5,62,0,0,8946,8945,1,0,0,0,8946,8947,1,0,0,0,8947,8949,1,0,0,0,8948,
	8950,5,371,0,0,8949,8948,1,0,0,0,8949,8950,1,0,0,0,8950,8953,1,0,0,0,8951,
	8952,5,1098,0,0,8952,8954,5,526,0,0,8953,8951,1,0,0,0,8953,8954,1,0,0,0,
	8954,8957,1,0,0,0,8955,8956,5,1098,0,0,8956,8958,5,731,0,0,8957,8955,1,
	0,0,0,8957,8958,1,0,0,0,8958,8977,1,0,0,0,8959,8960,5,2229,0,0,8960,8962,
	3,1424,712,0,8961,8963,5,62,0,0,8962,8961,1,0,0,0,8962,8963,1,0,0,0,8963,
	8965,1,0,0,0,8964,8966,5,371,0,0,8965,8964,1,0,0,0,8965,8966,1,0,0,0,8966,
	8969,1,0,0,0,8967,8968,5,1098,0,0,8968,8970,5,526,0,0,8969,8967,1,0,0,0,
	8969,8970,1,0,0,0,8970,8973,1,0,0,0,8971,8972,5,1098,0,0,8972,8974,5,731,
	0,0,8973,8971,1,0,0,0,8973,8974,1,0,0,0,8974,8976,1,0,0,0,8975,8959,1,0,
	0,0,8976,8979,1,0,0,0,8977,8975,1,0,0,0,8977,8978,1,0,0,0,8978,8980,1,0,
	0,0,8979,8977,1,0,0,0,8980,8981,5,1510,0,0,8981,8982,3,1424,712,0,8982,
	1049,1,0,0,0,8983,8984,5,314,0,0,8984,8985,3,1442,721,0,8985,8986,5,1510,
	0,0,8986,8987,3,1424,712,0,8987,8988,5,1964,0,0,8988,8989,3,1234,617,0,
	8989,8990,5,351,0,0,8990,8991,3,1234,617,0,8991,1051,1,0,0,0,8992,8996,
	3,1054,527,0,8993,8995,3,1056,528,0,8994,8993,1,0,0,0,8995,8998,1,0,0,0,
	8996,8994,1,0,0,0,8996,8997,1,0,0,0,8997,1053,1,0,0,0,8998,8996,1,0,0,0,
	8999,9005,3,1058,529,0,9000,9001,5,2223,0,0,9001,9002,3,1052,526,0,9002,
	9003,5,2224,0,0,9003,9005,1,0,0,0,9004,8999,1,0,0,0,9004,9000,1,0,0,0,9005,
	1055,1,0,0,0,9006,9008,5,2001,0,0,9007,9009,5,35,0,0,9008,9007,1,0,0,0,
	9008,9009,1,0,0,0,9009,9013,1,0,0,0,9010,9013,5,688,0,0,9011,9013,5,842,
	0,0,9012,9006,1,0,0,0,9012,9010,1,0,0,0,9012,9011,1,0,0,0,9013,9014,1,0,
	0,0,9014,9015,3,1054,527,0,9015,1057,1,0,0,0,9016,9018,5,1490,0,0,9017,
	9019,7,94,0,0,9018,9017,1,0,0,0,9018,9019,1,0,0,0,9019,9020,1,0,0,0,9020,
	9022,3,1060,530,0,9021,9023,3,1358,679,0,9022,9021,1,0,0,0,9022,9023,1,
	0,0,0,9023,9024,1,0,0,0,9024,9026,3,1062,531,0,9025,9027,3,1356,678,0,9026,
	9025,1,0,0,0,9026,9027,1,0,0,0,9027,9029,1,0,0,0,9028,9030,3,1104,552,0,
	9029,9028,1,0,0,0,9029,9030,1,0,0,0,9030,9032,1,0,0,0,9031,9033,3,1108,
	554,0,9032,9031,1,0,0,0,9032,9033,1,0,0,0,9033,9035,1,0,0,0,9034,9036,3,
	1120,560,0,9035,9034,1,0,0,0,9035,9036,1,0,0,0,9036,9038,1,0,0,0,9037,9039,
	3,1150,575,0,9038,9037,1,0,0,0,9038,9039,1,0,0,0,9039,1059,1,0,0,0,9040,
	9050,5,2226,0,0,9041,9046,3,1064,532,0,9042,9043,5,2229,0,0,9043,9045,3,
	1064,532,0,9044,9042,1,0,0,0,9045,9048,1,0,0,0,9046,9044,1,0,0,0,9046,9047,
	1,0,0,0,9047,9050,1,0,0,0,9048,9046,1,0,0,0,9049,9040,1,0,0,0,9049,9041,
	1,0,0,0,9050,1061,1,0,0,0,9051,9052,5,554,0,0,9052,9053,3,1066,533,0,9053,
	1063,1,0,0,0,9054,9055,3,1426,713,0,9055,9056,5,2216,0,0,9056,9057,5,2226,
	0,0,9057,9063,1,0,0,0,9058,9060,3,1234,617,0,9059,9061,3,1352,676,0,9060,
	9059,1,0,0,0,9060,9061,1,0,0,0,9061,9063,1,0,0,0,9062,9054,1,0,0,0,9062,
	9058,1,0,0,0,9063,1065,1,0,0,0,9064,9069,3,1068,534,0,9065,9066,5,2229,
	0,0,9066,9068,3,1068,534,0,9067,9065,1,0,0,0,9068,9071,1,0,0,0,9069,9067,
	1,0,0,0,9069,9070,1,0,0,0,9070,1067,1,0,0,0,9071,9069,1,0,0,0,9072,9076,
	3,1070,535,0,9073,9075,3,1074,537,0,9074,9073,1,0,0,0,9075,9078,1,0,0,0,
	9076,9074,1,0,0,0,9076,9077,1,0,0,0,9077,9081,1,0,0,0,9078,9076,1,0,0,0,
	9079,9082,3,1086,543,0,9080,9082,3,1098,549,0,9081,9079,1,0,0,0,9081,9080,
	1,0,0,0,9081,9082,1,0,0,0,9082,1069,1,0,0,0,9083,9087,3,1072,536,0,9084,
	9086,3,1084,542,0,9085,9084,1,0,0,0,9086,9089,1,0,0,0,9087,9085,1,0,0,0,
	9087,9088,1,0,0,0,9088,9091,1,0,0,0,9089,9087,1,0,0,0,9090,9092,3,1354,
	677,0,9091,9090,1,0,0,0,9091,9092,1,0,0,0,9092,1071,1,0,0,0,9093,9096,3,
	1220,610,0,9094,9097,3,1086,543,0,9095,9097,3,1098,549,0,9096,9094,1,0,
	0,0,9096,9095,1,0,0,0,9096,9097,1,0,0,0,9097,9117,1,0,0,0,9098,9099,5,2223,
	0,0,9099,9103,3,1068,534,0,9100,9102,3,1056,528,0,9101,9100,1,0,0,0,9102,
	9105,1,0,0,0,9103,9101,1,0,0,0,9103,9104,1,0,0,0,9104,9106,1,0,0,0,9105,
	9103,1,0,0,0,9106,9109,5,2224,0,0,9107,9110,3,1086,543,0,9108,9110,3,1098,
	549,0,9109,9107,1,0,0,0,9109,9108,1,0,0,0,9109,9110,1,0,0,0,9110,9117,1,
	0,0,0,9111,9112,5,1127,0,0,9112,9113,5,2223,0,0,9113,9114,3,1220,610,0,
	9114,9115,5,2224,0,0,9115,9117,1,0,0,0,9116,9093,1,0,0,0,9116,9098,1,0,
	0,0,9116,9111,1,0,0,0,9117,1073,1,0,0,0,9118,9120,3,1082,541,0,9119,9118,
	1,0,0,0,9119,9120,1,0,0,0,9120,9122,1,0,0,0,9121,9123,7,95,0,0,9122,9121,
	1,0,0,0,9122,9123,1,0,0,0,9123,9126,1,0,0,0,9124,9127,5,663,0,0,9125,9127,
	3,1080,540,0,9126,9124,1,0,0,0,9126,9125,1,0,0,0,9126,9127,1,0,0,0,9127,
	9128,1,0,0,0,9128,9129,5,702,0,0,9129,9131,3,1070,535,0,9130,9132,3,1082,
	541,0,9131,9130,1,0,0,0,9131,9132,1,0,0,0,9132,9137,1,0,0,0,9133,9136,3,
	1076,538,0,9134,9136,3,1078,539,0,9135,9133,1,0,0,0,9135,9134,1,0,0,0,9136,
	9139,1,0,0,0,9137,9135,1,0,0,0,9137,9138,1,0,0,0,9138,1075,1,0,0,0,9139,
	9137,1,0,0,0,9140,9141,5,1128,0,0,9141,9142,3,1230,615,0,9142,1077,1,0,
	0,0,9143,9144,5,2063,0,0,9144,9145,3,1444,722,0,9145,1079,1,0,0,0,9146,
	9148,7,96,0,0,9147,9149,5,1178,0,0,9148,9147,1,0,0,0,9148,9149,1,0,0,0,
	9149,1081,1,0,0,0,9150,9151,5,1207,0,0,9151,9159,5,146,0,0,9152,9155,5,
	2223,0,0,9153,9156,3,1052,526,0,9154,9156,3,1232,616,0,9155,9153,1,0,0,
	0,9155,9154,1,0,0,0,9155,9156,1,0,0,0,9156,9157,1,0,0,0,9157,9160,5,2224,
	0,0,9158,9160,3,1232,616,0,9159,9152,1,0,0,0,9159,9158,1,0,0,0,9160,1083,
	1,0,0,0,9161,9162,5,2096,0,0,9162,9163,5,107,0,0,9163,9164,7,97,0,0,9164,
	9170,3,1234,617,0,9165,9166,5,61,0,0,9166,9167,5,1115,0,0,9167,9168,7,98,
	0,0,9168,9170,3,1234,617,0,9169,9161,1,0,0,0,9169,9165,1,0,0,0,9170,1085,
	1,0,0,0,9171,9173,5,1253,0,0,9172,9174,5,2163,0,0,9173,9172,1,0,0,0,9173,
	9174,1,0,0,0,9174,9175,1,0,0,0,9175,9176,5,2223,0,0,9176,9181,3,1088,544,
	0,9177,9178,5,2229,0,0,9178,9180,3,1088,544,0,9179,9177,1,0,0,0,9180,9183,
	1,0,0,0,9181,9179,1,0,0,0,9181,9182,1,0,0,0,9182,9184,1,0,0,0,9183,9181,
	1,0,0,0,9184,9185,3,1090,545,0,9185,9186,3,1092,546,0,9186,9187,5,2224,
	0,0,9187,1087,1,0,0,0,9188,9189,3,1388,694,0,9189,9190,5,2223,0,0,9190,
	9191,3,1234,617,0,9191,9193,5,2224,0,0,9192,9194,3,1352,676,0,9193,9192,
	1,0,0,0,9193,9194,1,0,0,0,9194,1089,1,0,0,0,9195,9198,5,546,0,0,9196,9199,
	3,1424,712,0,9197,9199,3,1444,722,0,9198,9196,1,0,0,0,9198,9197,1,0,0,0,
	9199,1091,1,0,0,0,9200,9201,5,652,0,0,9201,9219,5,2223,0,0,9202,9220,3,
	1052,526,0,9203,9208,5,48,0,0,9204,9205,5,2229,0,0,9205,9207,5,48,0,0,9206,
	9204,1,0,0,0,9207,9210,1,0,0,0,9208,9206,1,0,0,0,9208,9209,1,0,0,0,9209,
	9220,1,0,0,0,9210,9208,1,0,0,0,9211,9216,3,1094,547,0,9212,9213,5,2229,
	0,0,9213,9215,3,1094,547,0,9214,9212,1,0,0,0,9215,9218,1,0,0,0,9216,9214,
	1,0,0,0,9216,9217,1,0,0,0,9217,9220,1,0,0,0,9218,9216,1,0,0,0,9219,9202,
	1,0,0,0,9219,9203,1,0,0,0,9219,9211,1,0,0,0,9220,9221,1,0,0,0,9221,9222,
	5,2224,0,0,9222,1093,1,0,0,0,9223,9225,3,1096,548,0,9224,9226,3,1352,676,
	0,9225,9224,1,0,0,0,9225,9226,1,0,0,0,9226,1095,1,0,0,0,9227,9234,3,1234,
	617,0,9228,9230,5,2223,0,0,9229,9231,3,1232,616,0,9230,9229,1,0,0,0,9230,
	9231,1,0,0,0,9231,9232,1,0,0,0,9232,9234,5,2224,0,0,9233,9227,1,0,0,0,9233,
	9228,1,0,0,0,9234,1097,1,0,0,0,9235,9238,5,2013,0,0,9236,9237,7,99,0,0,
	9237,9239,5,1098,0,0,9238,9236,1,0,0,0,9238,9239,1,0,0,0,9239,9240,1,0,
	0,0,9240,9243,5,2223,0,0,9241,9244,3,1424,712,0,9242,9244,3,1444,722,0,
	9243,9241,1,0,0,0,9243,9242,1,0,0,0,9244,9245,1,0,0,0,9245,9246,3,1090,
	545,0,9246,9247,3,1100,550,0,9247,9248,5,2224,0,0,9248,1099,1,0,0,0,9249,
	9250,5,652,0,0,9250,9251,5,2223,0,0,9251,9256,3,1102,551,0,9252,9253,5,
	2229,0,0,9253,9255,3,1102,551,0,9254,9252,1,0,0,0,9255,9258,1,0,0,0,9256,
	9254,1,0,0,0,9256,9257,1,0,0,0,9257,9259,1,0,0,0,9258,9256,1,0,0,0,9259,
	9260,5,2224,0,0,9260,1101,1,0,0,0,9261,9264,3,1424,712,0,9262,9264,3,1444,
	722,0,9263,9261,1,0,0,0,9263,9262,1,0,0,0,9264,9280,1,0,0,0,9265,9278,5,
	61,0,0,9266,9279,3,1478,739,0,9267,9268,5,2223,0,0,9268,9273,3,1478,739,
	0,9269,9270,5,2229,0,0,9270,9272,3,1478,739,0,9271,9269,1,0,0,0,9272,9275,
	1,0,0,0,9273,9271,1,0,0,0,9273,9274,1,0,0,0,9274,9276,1,0,0,0,9275,9273,
	1,0,0,0,9276,9277,5,2224,0,0,9277,9279,1,0,0,0,9278,9266,1,0,0,0,9278,9267,
	1,0,0,0,9279,9281,1,0,0,0,9280,9265,1,0,0,0,9280,9281,1,0,0,0,9281,1103,
	1,0,0,0,9282,9283,5,251,0,0,9283,9285,5,146,0,0,9284,9286,5,963,0,0,9285,
	9284,1,0,0,0,9285,9286,1,0,0,0,9286,9287,1,0,0,0,9287,9289,3,1230,615,0,
	9288,9290,3,1106,553,0,9289,9288,1,0,0,0,9289,9290,1,0,0,0,9290,9300,1,
	0,0,0,9291,9292,3,1106,553,0,9292,9293,5,251,0,0,9293,9295,5,146,0,0,9294,
	9296,5,963,0,0,9295,9294,1,0,0,0,9295,9296,1,0,0,0,9296,9297,1,0,0,0,9297,
	9298,3,1230,615,0,9298,9300,1,0,0,0,9299,9282,1,0,0,0,9299,9291,1,0,0,0,
	9300,1105,1,0,0,0,9301,9302,5,1569,0,0,9302,9303,5,2121,0,0,9303,9304,3,
	1230,615,0,9304,1107,1,0,0,0,9305,9306,5,573,0,0,9306,9307,5,146,0,0,9307,
	9312,3,1110,555,0,9308,9309,5,2229,0,0,9309,9311,3,1110,555,0,9310,9308,
	1,0,0,0,9311,9314,1,0,0,0,9312,9310,1,0,0,0,9312,9313,1,0,0,0,9313,9316,
	1,0,0,0,9314,9312,1,0,0,0,9315,9317,3,1118,559,0,9316,9315,1,0,0,0,9316,
	9317,1,0,0,0,9317,9332,1,0,0,0,9318,9329,3,1118,559,0,9319,9320,5,573,0,
	0,9320,9321,5,146,0,0,9321,9326,3,1110,555,0,9322,9323,5,2229,0,0,9323,
	9325,3,1110,555,0,9324,9322,1,0,0,0,9325,9328,1,0,0,0,9326,9324,1,0,0,0,
	9326,9327,1,0,0,0,9327,9330,1,0,0,0,9328,9326,1,0,0,0,9329,9319,1,0,0,0,
	9329,9330,1,0,0,0,9330,9332,1,0,0,0,9331,9305,1,0,0,0,9331,9318,1,0,0,0,
	9332,1109,1,0,0,0,9333,9337,3,1114,557,0,9334,9337,3,1112,556,0,9335,9337,
	3,1234,617,0,9336,9333,1,0,0,0,9336,9334,1,0,0,0,9336,9335,1,0,0,0,9337,
	1111,1,0,0,0,9338,9339,7,100,0,0,9339,9340,5,2223,0,0,9340,9345,3,1116,
	558,0,9341,9342,5,2229,0,0,9342,9344,3,1116,558,0,9343,9341,1,0,0,0,9344,
	9347,1,0,0,0,9345,9343,1,0,0,0,9345,9346,1,0,0,0,9346,9348,1,0,0,0,9347,
	9345,1,0,0,0,9348,9349,5,2224,0,0,9349,1113,1,0,0,0,9350,9351,5,575,0,0,
	9351,9352,5,1511,0,0,9352,9353,5,2223,0,0,9353,9358,3,1116,558,0,9354,9355,
	5,2229,0,0,9355,9357,3,1116,558,0,9356,9354,1,0,0,0,9357,9360,1,0,0,0,9358,
	9356,1,0,0,0,9358,9359,1,0,0,0,9359,9361,1,0,0,0,9360,9358,1,0,0,0,9361,
	9362,5,2224,0,0,9362,1115,1,0,0,0,9363,9371,3,1112,556,0,9364,9366,5,2223,
	0,0,9365,9367,3,1232,616,0,9366,9365,1,0,0,0,9366,9367,1,0,0,0,9367,9368,
	1,0,0,0,9368,9371,5,2224,0,0,9369,9371,3,1234,617,0,9370,9363,1,0,0,0,9370,
	9364,1,0,0,0,9370,9369,1,0,0,0,9371,1117,1,0,0,0,9372,9373,5,585,0,0,9373,
	9374,3,1230,615,0,9374,1119,1,0,0,0,9375,9379,5,854,0,0,9376,9378,3,1122,
	561,0,9377,9376,1,0,0,0,9378,9381,1,0,0,0,9379,9377,1,0,0,0,9379,9380,1,
	0,0,0,9380,9383,1,0,0,0,9381,9379,1,0,0,0,9382,9384,3,1124,562,0,9383,9382,
	1,0,0,0,9383,9384,1,0,0,0,9384,9388,1,0,0,0,9385,9387,3,1126,563,0,9386,
	9385,1,0,0,0,9387,9390,1,0,0,0,9388,9386,1,0,0,0,9388,9389,1,0,0,0,9389,
	9391,1,0,0,0,9390,9388,1,0,0,0,9391,9392,3,1128,564,0,9392,1121,1,0,0,0,
	9393,9394,7,101,0,0,9394,9402,5,888,0,0,9395,9399,5,2002,0,0,9396,9400,
	5,377,0,0,9397,9398,5,1531,0,0,9398,9400,5,1373,0,0,9399,9396,1,0,0,0,9399,
	9397,1,0,0,0,9400,9402,1,0,0,0,9401,9393,1,0,0,0,9401,9395,1,0,0,0,9402,
	1123,1,0,0,0,9403,9404,5,1431,0,0,9404,9405,7,102,0,0,9405,9406,5,1452,
	0,0,9406,1125,1,0,0,0,9407,9408,5,1373,0,0,9408,9409,3,1382,691,0,9409,
	9410,5,1128,0,0,9410,9411,5,2223,0,0,9411,9412,3,1052,526,0,9412,9413,5,
	2224,0,0,9413,9417,3,1130,565,0,9414,9416,3,1122,561,0,9415,9414,1,0,0,
	0,9416,9419,1,0,0,0,9417,9415,1,0,0,0,9417,9418,1,0,0,0,9418,1127,1,0,0,
	0,9419,9417,1,0,0,0,9420,9421,5,794,0,0,9421,9423,3,1384,692,0,9422,9420,
	1,0,0,0,9422,9423,1,0,0,0,9423,9424,1,0,0,0,9424,9428,3,1130,565,0,9425,
	9427,3,1122,561,0,9426,9425,1,0,0,0,9427,9430,1,0,0,0,9428,9426,1,0,0,0,
	9428,9429,1,0,0,0,9429,9431,1,0,0,0,9430,9428,1,0,0,0,9431,9432,3,1138,
	569,0,9432,1129,1,0,0,0,9433,9435,3,1132,566,0,9434,9433,1,0,0,0,9434,9435,
	1,0,0,0,9435,9436,1,0,0,0,9436,9437,5,377,0,0,9437,9438,5,146,0,0,9438,
	9439,3,1134,567,0,9439,9440,5,824,0,0,9440,9441,3,1134,567,0,9441,1131,
	1,0,0,0,9442,9443,5,1207,0,0,9443,9444,5,146,0,0,9444,9445,3,1134,567,0,
	9445,1133,1,0,0,0,9446,9447,5,2223,0,0,9447,9452,3,1136,568,0,9448,9449,
	5,2229,0,0,9449,9451,3,1136,568,0,9450,9448,1,0,0,0,9451,9454,1,0,0,0,9452,
	9450,1,0,0,0,9452,9453,1,0,0,0,9453,9455,1,0,0,0,9454,9452,1,0,0,0,9455,
	9456,5,2224,0,0,9456,1135,1,0,0,0,9457,9460,3,1234,617,0,9458,9460,3,1058,
	529,0,9459,9457,1,0,0,0,9459,9458,1,0,0,0,9460,9462,1,0,0,0,9461,9463,3,
	1352,676,0,9462,9461,1,0,0,0,9462,9463,1,0,0,0,9463,1137,1,0,0,0,9464,9466,
	3,1140,570,0,9465,9464,1,0,0,0,9465,9466,1,0,0,0,9466,9467,1,0,0,0,9467,
	9476,5,2223,0,0,9468,9473,3,1142,571,0,9469,9470,5,2229,0,0,9470,9472,3,
	1142,571,0,9471,9469,1,0,0,0,9472,9475,1,0,0,0,9473,9471,1,0,0,0,9473,9474,
	1,0,0,0,9474,9477,1,0,0,0,9475,9473,1,0,0,0,9476,9468,1,0,0,0,9476,9477,
	1,0,0,0,9477,9478,1,0,0,0,9478,9479,5,2224,0,0,9479,1139,1,0,0,0,9480,9486,
	5,1456,0,0,9481,9487,5,2025,0,0,9482,9484,5,2031,0,0,9483,9485,5,35,0,0,
	9484,9483,1,0,0,0,9484,9485,1,0,0,0,9485,9487,1,0,0,0,9486,9481,1,0,0,0,
	9486,9482,1,0,0,0,9486,9487,1,0,0,0,9487,9490,1,0,0,0,9488,9489,7,103,0,
	0,9489,9491,5,1168,0,0,9490,9488,1,0,0,0,9490,9491,1,0,0,0,9491,9493,1,
	0,0,0,9492,9494,3,1146,573,0,9493,9492,1,0,0,0,9493,9494,1,0,0,0,9494,1141,
	1,0,0,0,9495,9501,5,2025,0,0,9496,9498,5,2031,0,0,9497,9499,5,35,0,0,9498,
	9497,1,0,0,0,9498,9499,1,0,0,0,9499,9501,1,0,0,0,9500,9495,1,0,0,0,9500,
	9496,1,0,0,0,9500,9501,1,0,0,0,9501,9502,1,0,0,0,9502,9504,3,1144,572,0,
	9503,9505,3,1150,575,0,9504,9503,1,0,0,0,9504,9505,1,0,0,0,9505,9506,1,
	0,0,0,9506,9507,5,2243,0,0,9507,9508,3,1234,617,0,9508,1143,1,0,0,0,9509,
	9510,3,1260,630,0,9510,1145,1,0,0,0,9511,9512,5,698,0,0,9512,9513,5,2223,
	0,0,9513,9514,3,1234,617,0,9514,9516,5,2224,0,0,9515,9517,3,1148,574,0,
	9516,9515,1,0,0,0,9516,9517,1,0,0,0,9517,1147,1,0,0,0,9518,9519,5,2020,
	0,0,9519,9520,5,2223,0,0,9520,9521,3,1230,615,0,9521,9522,5,2224,0,0,9522,
	1149,1,0,0,0,9523,9525,5,1168,0,0,9524,9526,5,1523,0,0,9525,9524,1,0,0,
	0,9525,9526,1,0,0,0,9526,9527,1,0,0,0,9527,9528,5,146,0,0,9528,9533,3,1152,
	576,0,9529,9530,5,2229,0,0,9530,9532,3,1152,576,0,9531,9529,1,0,0,0,9532,
	9535,1,0,0,0,9533,9531,1,0,0,0,9533,9534,1,0,0,0,9534,1151,1,0,0,0,9535,
	9533,1,0,0,0,9536,9538,3,1234,617,0,9537,9539,7,20,0,0,9538,9537,1,0,0,
	0,9538,9539,1,0,0,0,9539,9542,1,0,0,0,9540,9541,5,1098,0,0,9541,9543,7,
	104,0,0,9542,9540,1,0,0,0,9542,9543,1,0,0,0,9543,1153,1,0,0,0,9544,9545,
	5,1114,0,0,9545,9546,3,1234,617,0,9546,9547,7,105,0,0,9547,1155,1,0,0,0,
	9548,9549,5,518,0,0,9549,9554,7,106,0,0,9550,9552,3,1234,617,0,9551,9553,
	5,1236,0,0,9552,9551,1,0,0,0,9552,9553,1,0,0,0,9553,9555,1,0,0,0,9554,9550,
	1,0,0,0,9554,9555,1,0,0,0,9555,9556,1,0,0,0,9556,9560,7,105,0,0,9557,9561,
	5,1127,0,0,9558,9559,5,2121,0,0,9559,9561,5,1930,0,0,9560,9557,1,0,0,0,
	9560,9558,1,0,0,0,9561,1157,1,0,0,0,9562,9563,5,546,0,0,9563,9565,5,2025,
	0,0,9564,9566,3,1160,580,0,9565,9564,1,0,0,0,9565,9566,1,0,0,0,9566,9568,
	1,0,0,0,9567,9569,3,1162,581,0,9568,9567,1,0,0,0,9568,9569,1,0,0,0,9569,
	1159,1,0,0,0,9570,9571,5,1115,0,0,9571,9572,3,1442,721,0,9572,1161,1,0,
	0,0,9573,9574,5,1537,0,0,9574,9579,5,774,0,0,9575,9579,5,1088,0,0,9576,
	9577,5,2106,0,0,9577,9579,3,1234,617,0,9578,9573,1,0,0,0,9578,9575,1,0,
	0,0,9578,9576,1,0,0,0,9579,1163,1,0,0,0,9580,9581,5,2025,0,0,9581,9582,
	3,1210,605,0,9582,9584,3,1166,583,0,9583,9585,3,1356,678,0,9584,9583,1,
	0,0,0,9584,9585,1,0,0,0,9585,9587,1,0,0,0,9586,9588,3,1212,606,0,9587,9586,
	1,0,0,0,9587,9588,1,0,0,0,9588,9590,1,0,0,0,9589,9591,3,1214,607,0,9590,
	9589,1,0,0,0,9590,9591,1,0,0,0,9591,1165,1,0,0,0,9592,9608,5,1510,0,0,9593,
	9598,3,1168,584,0,9594,9595,5,2229,0,0,9595,9597,3,1168,584,0,9596,9594,
	1,0,0,0,9597,9600,1,0,0,0,9598,9596,1,0,0,0,9598,9599,1,0,0,0,9599,9609,
	1,0,0,0,9600,9598,1,0,0,0,9601,9602,5,2074,0,0,9602,9603,5,2223,0,0,9603,
	9604,3,1486,743,0,9604,9605,5,2224,0,0,9605,9606,5,2243,0,0,9606,9607,3,
	1234,617,0,9607,9609,1,0,0,0,9608,9593,1,0,0,0,9608,9601,1,0,0,0,9609,1167,
	1,0,0,0,9610,9611,3,1424,712,0,9611,9612,5,2243,0,0,9612,9613,3,1234,617,
	0,9613,9619,1,0,0,0,9614,9615,3,1444,722,0,9615,9616,5,2243,0,0,9616,9617,
	3,1052,526,0,9617,9619,1,0,0,0,9618,9610,1,0,0,0,9618,9614,1,0,0,0,9619,
	1169,1,0,0,0,9620,9622,5,362,0,0,9621,9623,5,554,0,0,9622,9621,1,0,0,0,
	9622,9623,1,0,0,0,9623,9624,1,0,0,0,9624,9626,3,1210,605,0,9625,9627,3,
	1356,678,0,9626,9625,1,0,0,0,9626,9627,1,0,0,0,9627,9629,1,0,0,0,9628,9630,
	3,1212,606,0,9629,9628,1,0,0,0,9629,9630,1,0,0,0,9630,9632,1,0,0,0,9631,
	9633,3,1214,607,0,9632,9631,1,0,0,0,9632,9633,1,0,0,0,9633,1171,1,0,0,0,
	9634,9637,5,669,0,0,9635,9638,3,1174,587,0,9636,9638,3,1176,588,0,9637,
	9635,1,0,0,0,9637,9636,1,0,0,0,9638,1173,1,0,0,0,9639,9645,3,1186,593,0,
	9640,9642,3,1188,594,0,9641,9643,3,1212,606,0,9642,9641,1,0,0,0,9642,9643,
	1,0,0,0,9643,9646,1,0,0,0,9644,9646,3,1042,521,0,9645,9640,1,0,0,0,9645,
	9644,1,0,0,0,9646,9648,1,0,0,0,9647,9649,3,1214,607,0,9648,9647,1,0,0,0,
	9648,9649,1,0,0,0,9649,1175,1,0,0,0,9650,9652,5,35,0,0,9651,9653,3,1178,
	589,0,9652,9651,1,0,0,0,9653,9654,1,0,0,0,9654,9652,1,0,0,0,9654,9655,1,
	0,0,0,9655,9658,1,0,0,0,9656,9658,3,1180,590,0,9657,9650,1,0,0,0,9657,9656,
	1,0,0,0,9658,9659,1,0,0,0,9659,9660,3,1042,521,0,9660,1177,1,0,0,0,9661,
	9663,3,1186,593,0,9662,9664,3,1188,594,0,9663,9662,1,0,0,0,9663,9664,1,
	0,0,0,9664,9666,1,0,0,0,9665,9667,3,1214,607,0,9666,9665,1,0,0,0,9666,9667,
	1,0,0,0,9667,1179,1,0,0,0,9668,9670,7,107,0,0,9669,9668,1,0,0,0,9669,9670,
	1,0,0,0,9670,9672,1,0,0,0,9671,9673,3,1182,591,0,9672,9671,1,0,0,0,9673,
	9674,1,0,0,0,9674,9672,1,0,0,0,9674,9675,1,0,0,0,9675,9677,1,0,0,0,9676,
	9678,3,1184,592,0,9677,9676,1,0,0,0,9677,9678,1,0,0,0,9678,1181,1,0,0,0,
	9679,9680,5,2113,0,0,9680,9681,3,1230,615,0,9681,9683,5,1925,0,0,9682,9684,
	3,1178,589,0,9683,9682,1,0,0,0,9684,9685,1,0,0,0,9685,9683,1,0,0,0,9685,
	9686,1,0,0,0,9686,1183,1,0,0,0,9687,9689,5,432,0,0,9688,9690,3,1178,589,
	0,9689,9688,1,0,0,0,9690,9691,1,0,0,0,9691,9689,1,0,0,0,9691,9692,1,0,0,
	0,9692,1185,1,0,0,0,9693,9694,5,691,0,0,9694,9696,3,1210,605,0,9695,9697,
	3,1444,722,0,9696,9695,1,0,0,0,9696,9697,1,0,0,0,9697,1187,1,0,0,0,9698,
	9699,5,2073,0,0,9699,9701,5,2223,0,0,9700,9702,3,1232,616,0,9701,9700,1,
	0,0,0,9701,9702,1,0,0,0,9702,9703,1,0,0,0,9703,9704,5,2224,0,0,9704,1189,
	1,0,0,0,9705,9706,5,832,0,0,9706,9707,5,691,0,0,9707,9709,3,1426,713,0,
	9708,9710,3,1354,677,0,9709,9708,1,0,0,0,9709,9710,1,0,0,0,9710,9711,1,
	0,0,0,9711,9712,5,2063,0,0,9712,9713,3,1200,600,0,9713,9714,5,1128,0,0,
	9714,9715,5,2223,0,0,9715,9716,3,1230,615,0,9716,9725,5,2224,0,0,9717,9719,
	3,1192,596,0,9718,9720,3,1198,599,0,9719,9718,1,0,0,0,9719,9720,1,0,0,0,
	9720,9726,1,0,0,0,9721,9723,3,1198,599,0,9722,9724,3,1192,596,0,9723,9722,
	1,0,0,0,9723,9724,1,0,0,0,9724,9726,1,0,0,0,9725,9717,1,0,0,0,9725,9721,
	1,0,0,0,9725,9726,1,0,0,0,9726,9728,1,0,0,0,9727,9729,3,1214,607,0,9728,
	9727,1,0,0,0,9728,9729,1,0,0,0,9729,1191,1,0,0,0,9730,9731,5,2113,0,0,9731,
	9732,5,804,0,0,9732,9733,5,1925,0,0,9733,9734,5,2025,0,0,9734,9735,5,1510,
	0,0,9735,9740,3,1194,597,0,9736,9737,5,2229,0,0,9737,9739,3,1194,597,0,
	9738,9736,1,0,0,0,9739,9742,1,0,0,0,9740,9738,1,0,0,0,9740,9741,1,0,0,0,
	9741,9744,1,0,0,0,9742,9740,1,0,0,0,9743,9745,3,1356,678,0,9744,9743,1,
	0,0,0,9744,9745,1,0,0,0,9745,9747,1,0,0,0,9746,9748,3,1196,598,0,9747,9746,
	1,0,0,0,9747,9748,1,0,0,0,9748,1193,1,0,0,0,9749,9750,3,1424,712,0,9750,
	9751,5,2243,0,0,9751,9752,3,1234,617,0,9752,1195,1,0,0,0,9753,9754,5,362,
	0,0,9754,9755,3,1356,678,0,9755,1197,1,0,0,0,9756,9757,5,2113,0,0,9757,
	9758,5,1073,0,0,9758,9759,5,804,0,0,9759,9760,5,1925,0,0,9760,9762,5,669,
	0,0,9761,9763,3,1444,722,0,9762,9761,1,0,0,0,9762,9763,1,0,0,0,9763,9764,
	1,0,0,0,9764,9765,5,2073,0,0,9765,9767,5,2223,0,0,9766,9768,3,1232,616,
	0,9767,9766,1,0,0,0,9767,9768,1,0,0,0,9768,9769,1,0,0,0,9769,9771,5,2224,
	0,0,9770,9772,3,1356,678,0,9771,9770,1,0,0,0,9771,9772,1,0,0,0,9772,1199,
	1,0,0,0,9773,9779,3,1426,713,0,9774,9775,5,2223,0,0,9775,9776,3,1042,521,
	0,9776,9777,5,2224,0,0,9777,9779,1,0,0,0,9778,9773,1,0,0,0,9778,9774,1,
	0,0,0,9779,9781,1,0,0,0,9780,9782,3,1354,677,0,9781,9780,1,0,0,0,9781,9782,
	1,0,0,0,9782,1201,1,0,0,0,9783,9784,5,776,0,0,9784,9785,5,1912,0,0,9785,
	9790,3,1206,603,0,9786,9787,5,2229,0,0,9787,9789,3,1206,603,0,9788,9786,
	1,0,0,0,9789,9792,1,0,0,0,9790,9788,1,0,0,0,9790,9791,1,0,0,0,9791,9793,
	1,0,0,0,9792,9790,1,0,0,0,9793,9794,5,652,0,0,9794,9795,3,1208,604,0,9795,
	9797,5,860,0,0,9796,9798,3,1204,602,0,9797,9796,1,0,0,0,9797,9798,1,0,0,
	0,9798,1203,1,0,0,0,9799,9800,5,2106,0,0,9800,9803,3,1234,617,0,9801,9803,
	5,1088,0,0,9802,9799,1,0,0,0,9802,9801,1,0,0,0,9803,1205,1,0,0,0,9804,9806,
	3,1426,713,0,9805,9807,3,1350,675,0,9806,9805,1,0,0,0,9806,9807,1,0,0,0,
	9807,1207,1,0,0,0,9808,9809,5,1451,0,0,9809,9821,5,1517,0,0,9810,9811,5,
	1451,0,0,9811,9821,5,474,0,0,9812,9814,5,1517,0,0,9813,9815,5,2025,0,0,
	9814,9813,1,0,0,0,9814,9815,1,0,0,0,9815,9821,1,0,0,0,9816,9817,5,1517,
	0,0,9817,9818,5,1451,0,0,9818,9821,5,474,0,0,9819,9821,5,474,0,0,9820,9808,
	1,0,0,0,9820,9810,1,0,0,0,9820,9812,1,0,0,0,9820,9816,1,0,0,0,9820,9819,
	1,0,0,0,9821,1209,1,0,0,0,9822,9829,3,1220,610,0,9823,9824,5,1127,0,0,9824,
	9825,5,2223,0,0,9825,9826,3,1220,610,0,9826,9827,5,2224,0,0,9827,9829,1,
	0,0,0,9828,9822,1,0,0,0,9828,9823,1,0,0,0,9829,9831,1,0,0,0,9830,9832,3,
	1354,677,0,9831,9830,1,0,0,0,9831,9832,1,0,0,0,9832,1211,1,0,0,0,9833,9834,
	7,90,0,0,9834,9835,3,1232,616,0,9835,9836,3,1358,679,0,9836,1213,1,0,0,
	0,9837,9838,5,783,0,0,9838,9840,5,458,0,0,9839,9841,3,1216,608,0,9840,9839,
	1,0,0,0,9840,9841,1,0,0,0,9841,9843,1,0,0,0,9842,9844,3,1234,617,0,9843,
	9842,1,0,0,0,9843,9844,1,0,0,0,9844,9846,1,0,0,0,9845,9847,3,1218,609,0,
	9846,9845,1,0,0,0,9846,9847,1,0,0,0,9847,1215,1,0,0,0,9848,9849,5,691,0,
	0,9849,9850,3,1426,713,0,9850,1217,1,0,0,0,9851,9852,5,1395,0,0,9852,9855,
	5,758,0,0,9853,9856,5,2004,0,0,9854,9856,3,1234,617,0,9855,9853,1,0,0,0,
	9855,9854,1,0,0,0,9856,1219,1,0,0,0,9857,9870,3,1222,611,0,9858,9859,5,
	2223,0,0,9859,9861,3,1042,521,0,9860,9862,3,1224,612,0,9861,9860,1,0,0,
	0,9861,9862,1,0,0,0,9862,9863,1,0,0,0,9863,9864,5,2224,0,0,9864,9870,1,
	0,0,0,9865,9867,3,1426,713,0,9866,9868,3,1226,613,0,9867,9866,1,0,0,0,9867,
	9868,1,0,0,0,9868,9870,1,0,0,0,9869,9857,1,0,0,0,9869,9858,1,0,0,0,9869,
	9865,1,0,0,0,9870,1221,1,0,0,0,9871,9882,7,108,0,0,9872,9873,5,2223,0,0,
	9873,9874,3,1052,526,0,9874,9875,5,2224,0,0,9875,9883,1,0,0,0,9876,9877,
	5,2223,0,0,9877,9878,3,1234,617,0,9878,9880,5,2224,0,0,9879,9881,3,1490,
	745,0,9880,9879,1,0,0,0,9880,9881,1,0,0,0,9881,9883,1,0,0,0,9882,9872,1,
	0,0,0,9882,9876,1,0,0,0,9883,1223,1,0,0,0,9884,9893,5,2121,0,0,9885,9886,
	5,1353,0,0,9886,9894,5,1127,0,0,9887,9888,5,180,0,0,9888,9891,5,1141,0,
	0,9889,9890,5,257,0,0,9890,9892,3,1396,698,0,9891,9889,1,0,0,0,9891,9892,
	1,0,0,0,9892,9894,1,0,0,0,9893,9885,1,0,0,0,9893,9887,1,0,0,0,9894,1225,
	1,0,0,0,9895,9897,5,1459,0,0,9896,9898,5,129,0,0,9897,9896,1,0,0,0,9897,
	9898,1,0,0,0,9898,9899,1,0,0,0,9899,9900,5,2223,0,0,9900,9903,3,1234,617,
	0,9901,9902,5,2229,0,0,9902,9904,3,1234,617,0,9903,9901,1,0,0,0,9903,9904,
	1,0,0,0,9904,9905,1,0,0,0,9905,9907,5,2224,0,0,9906,9908,3,1228,614,0,9907,
	9906,1,0,0,0,9907,9908,1,0,0,0,9908,1227,1,0,0,0,9909,9910,5,1485,0,0,9910,
	9911,5,2223,0,0,9911,9912,3,1234,617,0,9912,9913,5,2224,0,0,9913,1229,1,
	0,0,0,9914,9915,3,1234,617,0,9915,1231,1,0,0,0,9916,9921,3,1234,617,0,9917,
	9918,5,2229,0,0,9918,9920,3,1234,617,0,9919,9917,1,0,0,0,9920,9923,1,0,
	0,0,9921,9919,1,0,0,0,9921,9922,1,0,0,0,9922,1233,1,0,0,0,9923,9921,1,0,
	0,0,9924,9927,3,1236,618,0,9925,9927,3,1238,619,0,9926,9924,1,0,0,0,9926,
	9925,1,0,0,0,9927,1235,1,0,0,0,9928,9929,5,309,0,0,9929,9930,5,2223,0,0,
	9930,9931,3,1052,526,0,9931,9932,5,2224,0,0,9932,1237,1,0,0,0,9933,9934,
	6,619,-1,0,9934,9935,3,1240,620,0,9935,9944,1,0,0,0,9936,9937,10,2,0,0,
	9937,9938,5,43,0,0,9938,9943,3,1238,619,3,9939,9940,10,1,0,0,9940,9941,
	5,1172,0,0,9941,9943,3,1238,619,2,9942,9936,1,0,0,0,9942,9939,1,0,0,0,9943,
	9946,1,0,0,0,9944,9942,1,0,0,0,9944,9945,1,0,0,0,9945,1239,1,0,0,0,9946,
	9944,1,0,0,0,9947,9949,5,1073,0,0,9948,9947,1,0,0,0,9948,9949,1,0,0,0,9949,
	9950,1,0,0,0,9950,9958,3,1244,622,0,9951,9953,5,695,0,0,9952,9954,5,1073,
	0,0,9953,9952,1,0,0,0,9953,9954,1,0,0,0,9954,9955,1,0,0,0,9955,9957,3,1242,
	621,0,9956,9951,1,0,0,0,9957,9960,1,0,0,0,9958,9956,1,0,0,0,9958,9959,1,
	0,0,0,9959,1241,1,0,0,0,9960,9958,1,0,0,0,9961,9987,5,1097,0,0,9962,9987,
	5,881,0,0,9963,9987,5,1297,0,0,9964,9987,5,649,0,0,9965,9966,5,33,0,0,9966,
	9987,5,1510,0,0,9967,9987,5,437,0,0,9968,9970,5,1115,0,0,9969,9971,5,1987,
	0,0,9970,9969,1,0,0,0,9970,9971,1,0,0,0,9971,9972,1,0,0,0,9972,9974,5,2223,
	0,0,9973,9975,5,1127,0,0,9974,9973,1,0,0,0,9974,9975,1,0,0,0,9975,9976,
	1,0,0,0,9976,9981,3,1458,729,0,9977,9978,5,2229,0,0,9978,9980,3,1458,729,
	0,9979,9977,1,0,0,0,9980,9983,1,0,0,0,9981,9979,1,0,0,0,9981,9982,1,0,0,
	0,9982,9984,1,0,0,0,9983,9981,1,0,0,0,9984,9985,5,2224,0,0,9985,9987,1,
	0,0,0,9986,9961,1,0,0,0,9986,9962,1,0,0,0,9986,9963,1,0,0,0,9986,9964,1,
	0,0,0,9986,9965,1,0,0,0,9986,9967,1,0,0,0,9986,9968,1,0,0,0,9987,1243,1,
	0,0,0,9988,9994,3,1246,623,0,9989,9991,7,109,0,0,9990,9992,5,1115,0,0,9991,
	9990,1,0,0,0,9991,9992,1,0,0,0,9992,9993,1,0,0,0,9993,9995,3,1256,628,0,
	9994,9989,1,0,0,0,9994,9995,1,0,0,0,9995,1245,1,0,0,0,9996,9997,6,623,-1,
	0,9997,9998,3,1248,624,0,9998,10005,1,0,0,0,9999,10000,10,2,0,0,10000,10001,
	3,1250,625,0,10001,10002,3,1246,623,3,10002,10004,1,0,0,0,10003,9999,1,
	0,0,0,10004,10007,1,0,0,0,10005,10003,1,0,0,0,10005,10006,1,0,0,0,10006,
	1247,1,0,0,0,10007,10005,1,0,0,0,10008,10024,3,1256,628,0,10009,10011,5,
	1073,0,0,10010,10009,1,0,0,0,10010,10011,1,0,0,0,10011,10022,1,0,0,0,10012,
	10013,5,652,0,0,10013,10023,3,1252,626,0,10014,10015,5,107,0,0,10015,10023,
	3,1254,627,0,10016,10017,7,110,0,0,10017,10020,3,1256,628,0,10018,10019,
	5,459,0,0,10019,10021,3,1256,628,0,10020,10018,1,0,0,0,10020,10021,1,0,
	0,0,10021,10023,1,0,0,0,10022,10012,1,0,0,0,10022,10014,1,0,0,0,10022,10016,
	1,0,0,0,10023,10025,1,0,0,0,10024,10010,1,0,0,0,10024,10025,1,0,0,0,10025,
	1249,1,0,0,0,10026,10041,5,2243,0,0,10027,10035,5,2234,0,0,10028,10029,
	5,2239,0,0,10029,10035,5,2238,0,0,10030,10031,5,2237,0,0,10031,10035,5,
	2243,0,0,10032,10033,5,2235,0,0,10033,10035,5,2243,0,0,10034,10027,1,0,
	0,0,10034,10028,1,0,0,0,10034,10030,1,0,0,0,10034,10032,1,0,0,0,10035,10041,
	1,0,0,0,10036,10038,7,111,0,0,10037,10039,5,2243,0,0,10038,10037,1,0,0,
	0,10038,10039,1,0,0,0,10039,10041,1,0,0,0,10040,10026,1,0,0,0,10040,10034,
	1,0,0,0,10040,10036,1,0,0,0,10041,1251,1,0,0,0,10042,10043,5,2223,0,0,10043,
	10044,3,1052,526,0,10044,10045,5,2224,0,0,10045,10061,1,0,0,0,10046,10047,
	5,2223,0,0,10047,10052,3,1256,628,0,10048,10049,5,2229,0,0,10049,10051,
	3,1256,628,0,10050,10048,1,0,0,0,10051,10054,1,0,0,0,10052,10050,1,0,0,
	0,10052,10053,1,0,0,0,10053,10055,1,0,0,0,10054,10052,1,0,0,0,10055,10056,
	5,2224,0,0,10056,10061,1,0,0,0,10057,10061,3,1478,739,0,10058,10061,3,1466,
	733,0,10059,10061,3,1468,734,0,10060,10042,1,0,0,0,10060,10046,1,0,0,0,
	10060,10057,1,0,0,0,10060,10058,1,0,0,0,10060,10059,1,0,0,0,10061,1253,
	1,0,0,0,10062,10063,3,1256,628,0,10063,10064,5,43,0,0,10064,10065,3,1256,
	628,0,10065,1255,1,0,0,0,10066,10067,6,628,-1,0,10067,10076,3,1260,630,
	0,10068,10073,5,74,0,0,10069,10074,5,769,0,0,10070,10071,5,1937,0,0,10071,
	10072,5,2173,0,0,10072,10074,3,1256,628,0,10073,10069,1,0,0,0,10073,10070,
	1,0,0,0,10074,10077,1,0,0,0,10075,10077,3,1258,629,0,10076,10068,1,0,0,
	0,10076,10075,1,0,0,0,10076,10077,1,0,0,0,10077,10090,1,0,0,0,10078,10079,
	10,3,0,0,10079,10080,7,112,0,0,10080,10089,3,1256,628,4,10081,10082,10,
	2,0,0,10082,10083,7,113,0,0,10083,10089,3,1256,628,3,10084,10085,10,1,0,
	0,10085,10086,5,2242,0,0,10086,10087,5,2242,0,0,10087,10089,3,1256,628,
	2,10088,10078,1,0,0,0,10088,10081,1,0,0,0,10088,10084,1,0,0,0,10089,10092,
	1,0,0,0,10090,10088,1,0,0,0,10090,10091,1,0,0,0,10091,1257,1,0,0,0,10092,
	10090,1,0,0,0,10093,10098,5,329,0,0,10094,10095,5,2223,0,0,10095,10096,
	3,1256,628,0,10096,10097,5,2224,0,0,10097,10099,1,0,0,0,10098,10094,1,0,
	0,0,10098,10099,1,0,0,0,10099,10100,1,0,0,0,10100,10101,5,1964,0,0,10101,
	10106,5,1480,0,0,10102,10103,5,2223,0,0,10103,10104,3,1256,628,0,10104,
	10105,5,2224,0,0,10105,10107,1,0,0,0,10106,10102,1,0,0,0,10106,10107,1,
	0,0,0,10107,10118,1,0,0,0,10108,10113,5,2169,0,0,10109,10110,5,2223,0,0,
	10110,10111,3,1256,628,0,10111,10112,5,2224,0,0,10112,10114,1,0,0,0,10113,
	10109,1,0,0,0,10113,10114,1,0,0,0,10114,10115,1,0,0,0,10115,10116,5,1964,
	0,0,10116,10118,5,868,0,0,10117,10093,1,0,0,0,10117,10108,1,0,0,0,10118,
	1259,1,0,0,0,10119,10124,3,1268,634,0,10120,10121,5,2244,0,0,10121,10122,
	3,1262,631,0,10122,10123,5,2245,0,0,10123,10125,1,0,0,0,10124,10120,1,0,
	0,0,10124,10125,1,0,0,0,10125,1261,1,0,0,0,10126,10129,5,48,0,0,10127,10129,
	3,1234,617,0,10128,10126,1,0,0,0,10128,10127,1,0,0,0,10129,10137,1,0,0,
	0,10130,10133,5,2229,0,0,10131,10134,5,48,0,0,10132,10134,3,1234,617,0,
	10133,10131,1,0,0,0,10133,10132,1,0,0,0,10134,10136,1,0,0,0,10135,10130,
	1,0,0,0,10136,10139,1,0,0,0,10137,10135,1,0,0,0,10137,10138,1,0,0,0,10138,
	10150,1,0,0,0,10139,10137,1,0,0,0,10140,10145,3,1264,632,0,10141,10142,
	5,2229,0,0,10142,10144,3,1264,632,0,10143,10141,1,0,0,0,10144,10147,1,0,
	0,0,10145,10143,1,0,0,0,10145,10146,1,0,0,0,10146,10150,1,0,0,0,10147,10145,
	1,0,0,0,10148,10150,3,1266,633,0,10149,10128,1,0,0,0,10149,10140,1,0,0,
	0,10149,10148,1,0,0,0,10150,1263,1,0,0,0,10151,10152,5,546,0,0,10152,10170,
	3,1424,712,0,10153,10154,5,652,0,0,10154,10156,5,2223,0,0,10155,10157,3,
	1232,616,0,10156,10155,1,0,0,0,10156,10157,1,0,0,0,10157,10158,1,0,0,0,
	10158,10171,5,2224,0,0,10159,10160,5,757,0,0,10160,10162,3,1234,617,0,10161,
	10159,1,0,0,0,10161,10162,1,0,0,0,10162,10163,1,0,0,0,10163,10164,5,554,
	0,0,10164,10165,3,1234,617,0,10165,10166,5,1964,0,0,10166,10167,3,1234,
	617,0,10167,10168,7,114,0,0,10168,10169,3,1234,617,0,10169,10171,1,0,0,
	0,10170,10153,1,0,0,0,10170,10161,1,0,0,0,10171,1265,1,0,0,0,10172,10173,
	5,546,0,0,10173,10174,3,1444,722,0,10174,10175,5,652,0,0,10175,10182,5,
	2223,0,0,10176,10183,3,1052,526,0,10177,10179,5,2223,0,0,10178,10180,3,
	1232,616,0,10179,10178,1,0,0,0,10179,10180,1,0,0,0,10180,10181,1,0,0,0,
	10181,10183,5,2224,0,0,10182,10176,1,0,0,0,10182,10177,1,0,0,0,10183,10184,
	1,0,0,0,10184,10185,5,2224,0,0,10185,1267,1,0,0,0,10186,10187,7,113,0,0,
	10187,10203,3,1268,634,0,10188,10189,5,1307,0,0,10189,10203,3,1268,634,
	0,10190,10191,5,250,0,0,10191,10203,3,1268,634,0,10192,10193,5,903,0,0,
	10193,10203,3,1268,634,0,10194,10195,5,396,0,0,10195,10203,3,1268,634,0,
	10196,10197,5,35,0,0,10197,10203,3,1268,634,0,10198,10203,3,1270,635,0,
	10199,10203,3,1284,642,0,10200,10203,3,1288,644,0,10201,10203,3,1282,641,
	0,10202,10186,1,0,0,0,10202,10188,1,0,0,0,10202,10190,1,0,0,0,10202,10192,
	1,0,0,0,10202,10194,1,0,0,0,10202,10196,1,0,0,0,10202,10198,1,0,0,0,10202,
	10199,1,0,0,0,10202,10200,1,0,0,0,10202,10201,1,0,0,0,10203,1269,1,0,0,
	0,10204,10207,3,1276,638,0,10205,10207,3,1272,636,0,10206,10204,1,0,0,0,
	10206,10205,1,0,0,0,10207,1271,1,0,0,0,10208,10210,3,1398,699,0,10209,10208,
	1,0,0,0,10209,10210,1,0,0,0,10210,10211,1,0,0,0,10211,10212,5,163,0,0,10212,
	10214,3,1234,617,0,10213,10215,3,1274,637,0,10214,10213,1,0,0,0,10215,10216,
	1,0,0,0,10216,10214,1,0,0,0,10216,10217,1,0,0,0,10217,10219,1,0,0,0,10218,
	10220,3,1280,640,0,10219,10218,1,0,0,0,10219,10220,1,0,0,0,10220,10221,
	1,0,0,0,10221,10223,5,445,0,0,10222,10224,5,163,0,0,10223,10222,1,0,0,0,
	10223,10224,1,0,0,0,10224,10226,1,0,0,0,10225,10227,3,1398,699,0,10226,
	10225,1,0,0,0,10226,10227,1,0,0,0,10227,1273,1,0,0,0,10228,10229,5,2113,
	0,0,10229,10230,3,1234,617,0,10230,10233,5,1925,0,0,10231,10234,3,950,475,
	0,10232,10234,3,1234,617,0,10233,10231,1,0,0,0,10233,10232,1,0,0,0,10234,
	1275,1,0,0,0,10235,10237,3,1398,699,0,10236,10235,1,0,0,0,10236,10237,1,
	0,0,0,10237,10238,1,0,0,0,10238,10240,5,163,0,0,10239,10241,3,1278,639,
	0,10240,10239,1,0,0,0,10241,10242,1,0,0,0,10242,10240,1,0,0,0,10242,10243,
	1,0,0,0,10243,10245,1,0,0,0,10244,10246,3,1280,640,0,10245,10244,1,0,0,
	0,10245,10246,1,0,0,0,10246,10247,1,0,0,0,10247,10249,5,445,0,0,10248,10250,
	5,163,0,0,10249,10248,1,0,0,0,10249,10250,1,0,0,0,10250,10252,1,0,0,0,10251,
	10253,3,1398,699,0,10252,10251,1,0,0,0,10252,10253,1,0,0,0,10253,1277,1,
	0,0,0,10254,10255,5,2113,0,0,10255,10256,3,1234,617,0,10256,10259,5,1925,
	0,0,10257,10260,3,950,475,0,10258,10260,3,1234,617,0,10259,10257,1,0,0,
	0,10259,10258,1,0,0,0,10260,1279,1,0,0,0,10261,10264,5,432,0,0,10262,10265,
	3,950,475,0,10263,10265,3,1234,617,0,10264,10262,1,0,0,0,10264,10263,1,
	0,0,0,10265,1281,1,0,0,0,10266,10267,3,1472,736,0,10267,10268,3,1490,745,
	0,10268,10286,1,0,0,0,10269,10286,3,1466,733,0,10270,10286,3,1478,739,0,
	10271,10286,3,1468,734,0,10272,10273,5,2223,0,0,10273,10274,3,1052,526,
	0,10274,10278,5,2224,0,0,10275,10277,3,1056,528,0,10276,10275,1,0,0,0,10277,
	10280,1,0,0,0,10278,10276,1,0,0,0,10278,10279,1,0,0,0,10279,10286,1,0,0,
	0,10280,10278,1,0,0,0,10281,10282,5,2223,0,0,10282,10283,3,1232,616,0,10283,
	10284,5,2224,0,0,10284,10286,1,0,0,0,10285,10266,1,0,0,0,10285,10269,1,
	0,0,0,10285,10270,1,0,0,0,10285,10271,1,0,0,0,10285,10272,1,0,0,0,10285,
	10281,1,0,0,0,10286,1283,1,0,0,0,10287,10296,7,115,0,0,10288,10289,5,2223,
	0,0,10289,10290,3,1052,526,0,10290,10291,5,2224,0,0,10291,10297,1,0,0,0,
	10292,10293,5,2223,0,0,10293,10294,3,1234,617,0,10294,10295,5,2224,0,0,
	10295,10297,1,0,0,0,10296,10288,1,0,0,0,10296,10292,1,0,0,0,10297,1285,
	1,0,0,0,10298,10299,5,2202,0,0,10299,10300,5,2223,0,0,10300,10301,3,1234,
	617,0,10301,10302,5,2229,0,0,10302,10305,3,1234,617,0,10303,10304,5,2229,
	0,0,10304,10306,3,1234,617,0,10305,10303,1,0,0,0,10305,10306,1,0,0,0,10306,
	10307,1,0,0,0,10307,10308,5,2224,0,0,10308,10369,1,0,0,0,10309,10310,5,
	2203,0,0,10310,10314,5,2223,0,0,10311,10315,3,1472,736,0,10312,10315,3,
	1288,644,0,10313,10315,3,1234,617,0,10314,10311,1,0,0,0,10314,10312,1,0,
	0,0,10314,10313,1,0,0,0,10315,10318,1,0,0,0,10316,10317,5,2229,0,0,10317,
	10319,3,1484,742,0,10318,10316,1,0,0,0,10318,10319,1,0,0,0,10319,10322,
	1,0,0,0,10320,10321,5,2229,0,0,10321,10323,3,1484,742,0,10322,10320,1,0,
	0,0,10322,10323,1,0,0,0,10323,10324,1,0,0,0,10324,10325,5,2224,0,0,10325,
	10369,1,0,0,0,10326,10327,5,2190,0,0,10327,10328,5,2223,0,0,10328,10329,
	3,1232,616,0,10329,10330,5,2224,0,0,10330,10369,1,0,0,0,10331,10332,5,184,
	0,0,10332,10333,5,2223,0,0,10333,10334,3,1256,628,0,10334,10335,5,2063,
	0,0,10335,10336,5,889,0,0,10336,10337,5,2224,0,0,10337,10369,1,0,0,0,10338,
	10339,5,2197,0,0,10339,10340,5,2223,0,0,10340,10341,3,1234,617,0,10341,
	10342,5,2229,0,0,10342,10343,3,1234,617,0,10343,10344,5,2224,0,0,10344,
	10369,1,0,0,0,10345,10346,5,2204,0,0,10346,10354,5,2223,0,0,10347,10349,
	7,116,0,0,10348,10347,1,0,0,0,10348,10349,1,0,0,0,10349,10351,1,0,0,0,10350,
	10352,3,1484,742,0,10351,10350,1,0,0,0,10351,10352,1,0,0,0,10352,10353,
	1,0,0,0,10353,10355,5,554,0,0,10354,10348,1,0,0,0,10354,10355,1,0,0,0,10355,
	10356,1,0,0,0,10356,10357,3,1256,628,0,10357,10358,5,2224,0,0,10358,10369,
	1,0,0,0,10359,10360,5,2211,0,0,10360,10361,5,2223,0,0,10361,10364,3,1234,
	617,0,10362,10363,5,2229,0,0,10363,10365,3,1484,742,0,10364,10362,1,0,0,
	0,10364,10365,1,0,0,0,10365,10366,1,0,0,0,10366,10367,5,2224,0,0,10367,
	10369,1,0,0,0,10368,10298,1,0,0,0,10368,10309,1,0,0,0,10368,10326,1,0,0,
	0,10368,10331,1,0,0,0,10368,10338,1,0,0,0,10368,10345,1,0,0,0,10368,10359,
	1,0,0,0,10369,1287,1,0,0,0,10370,10374,3,1286,643,0,10371,10374,3,1292,
	646,0,10372,10374,3,1296,648,0,10373,10370,1,0,0,0,10373,10371,1,0,0,0,
	10373,10372,1,0,0,0,10374,1289,1,0,0,0,10375,10380,5,2219,0,0,10376,10380,
	3,1286,643,0,10377,10380,3,1480,740,0,10378,10380,5,822,0,0,10379,10375,
	1,0,0,0,10379,10376,1,0,0,0,10379,10377,1,0,0,0,10379,10378,1,0,0,0,10380,
	1291,1,0,0,0,10381,10384,3,1294,647,0,10382,10385,3,1264,632,0,10383,10385,
	3,1266,633,0,10384,10382,1,0,0,0,10384,10383,1,0,0,0,10384,10385,1,0,0,
	0,10385,1293,1,0,0,0,10386,10387,5,2205,0,0,10387,10389,5,2223,0,0,10388,
	10390,7,117,0,0,10389,10388,1,0,0,0,10389,10390,1,0,0,0,10390,10391,1,0,
	0,0,10391,10392,3,1234,617,0,10392,10393,5,2224,0,0,10393,10445,1,0,0,0,
	10394,10395,5,281,0,0,10395,10403,5,2223,0,0,10396,10404,5,2226,0,0,10397,
	10399,7,94,0,0,10398,10397,1,0,0,0,10398,10399,1,0,0,0,10399,10400,1,0,
	0,0,10400,10402,3,1256,628,0,10401,10398,1,0,0,0,10401,10402,1,0,0,0,10402,
	10404,1,0,0,0,10403,10396,1,0,0,0,10403,10401,1,0,0,0,10404,10405,1,0,0,
	0,10405,10407,5,2224,0,0,10406,10408,3,1304,652,0,10407,10406,1,0,0,0,10407,
	10408,1,0,0,0,10408,10445,1,0,0,0,10409,10410,5,2200,0,0,10410,10411,5,
	2223,0,0,10411,10414,3,1234,617,0,10412,10413,5,2229,0,0,10413,10415,5,
	2217,0,0,10414,10412,1,0,0,0,10414,10415,1,0,0,0,10415,10416,1,0,0,0,10416,
	10417,5,2224,0,0,10417,10445,1,0,0,0,10418,10419,5,2187,0,0,10419,10421,
	5,2223,0,0,10420,10422,7,117,0,0,10421,10420,1,0,0,0,10421,10422,1,0,0,
	0,10422,10423,1,0,0,0,10423,10424,3,1234,617,0,10424,10425,5,2224,0,0,10425,
	10445,1,0,0,0,10426,10427,5,2193,0,0,10427,10429,5,2223,0,0,10428,10430,
	7,117,0,0,10429,10428,1,0,0,0,10429,10430,1,0,0,0,10430,10431,1,0,0,0,10431,
	10432,3,1234,617,0,10432,10433,5,2224,0,0,10433,10445,1,0,0,0,10434,10435,
	5,2209,0,0,10435,10436,5,2223,0,0,10436,10437,3,1232,616,0,10437,10438,
	5,2224,0,0,10438,10445,1,0,0,0,10439,10440,5,2210,0,0,10440,10441,5,2223,
	0,0,10441,10442,3,1232,616,0,10442,10443,5,2224,0,0,10443,10445,1,0,0,0,
	10444,10386,1,0,0,0,10444,10394,1,0,0,0,10444,10409,1,0,0,0,10444,10418,
	1,0,0,0,10444,10426,1,0,0,0,10444,10434,1,0,0,0,10444,10439,1,0,0,0,10445,
	1295,1,0,0,0,10446,10447,3,1298,649,0,10447,10449,3,1450,725,0,10448,10450,
	3,1304,652,0,10449,10448,1,0,0,0,10449,10450,1,0,0,0,10450,10742,1,0,0,
	0,10451,10452,3,1492,746,0,10452,10454,3,1452,726,0,10453,10455,3,1312,
	656,0,10454,10453,1,0,0,0,10454,10455,1,0,0,0,10455,10742,1,0,0,0,10456,
	10457,5,281,0,0,10457,10463,5,2223,0,0,10458,10464,5,2226,0,0,10459,10461,
	7,94,0,0,10460,10459,1,0,0,0,10460,10461,1,0,0,0,10461,10462,1,0,0,0,10462,
	10464,3,1256,628,0,10463,10458,1,0,0,0,10463,10460,1,0,0,0,10464,10465,
	1,0,0,0,10465,10467,5,2224,0,0,10466,10468,3,1304,652,0,10467,10466,1,0,
	0,0,10467,10468,1,0,0,0,10468,10742,1,0,0,0,10469,10470,7,118,0,0,10470,
	10477,5,2223,0,0,10471,10472,5,876,0,0,10472,10473,5,2223,0,0,10473,10474,
	3,1052,526,0,10474,10475,5,2224,0,0,10475,10478,1,0,0,0,10476,10478,3,1256,
	628,0,10477,10471,1,0,0,0,10477,10476,1,0,0,0,10478,10479,1,0,0,0,10479,
	10480,5,61,0,0,10480,10481,3,1458,729,0,10481,10482,5,2224,0,0,10482,10742,
	1,0,0,0,10483,10484,5,205,0,0,10484,10485,5,2223,0,0,10485,10491,3,1472,
	736,0,10486,10489,5,2229,0,0,10487,10490,3,1480,740,0,10488,10490,3,1484,
	742,0,10489,10487,1,0,0,0,10489,10488,1,0,0,0,10490,10492,1,0,0,0,10491,
	10486,1,0,0,0,10491,10492,1,0,0,0,10492,10493,1,0,0,0,10493,10494,5,2224,
	0,0,10494,10742,1,0,0,0,10495,10496,5,210,0,0,10496,10498,5,2223,0,0,10497,
	10499,7,119,0,0,10498,10497,1,0,0,0,10498,10499,1,0,0,0,10499,10500,1,0,
	0,0,10500,10502,3,1256,628,0,10501,10503,3,1316,658,0,10502,10501,1,0,0,
	0,10502,10503,1,0,0,0,10503,10504,1,0,0,0,10504,10505,5,2224,0,0,10505,
	10742,1,0,0,0,10506,10507,3,1300,650,0,10507,10509,3,1448,724,0,10508,10510,
	3,1318,659,0,10509,10508,1,0,0,0,10510,10511,1,0,0,0,10511,10509,1,0,0,
	0,10511,10512,1,0,0,0,10512,10742,1,0,0,0,10513,10514,3,1416,708,0,10514,
	10515,7,120,0,0,10515,10742,1,0,0,0,10516,10517,5,345,0,0,10517,10518,5,
	2223,0,0,10518,10520,3,1256,628,0,10519,10521,7,121,0,0,10520,10519,1,0,
	0,0,10520,10521,1,0,0,0,10521,10522,1,0,0,0,10522,10523,5,2224,0,0,10523,
	10742,1,0,0,0,10524,10525,5,496,0,0,10525,10526,5,2223,0,0,10526,10527,
	3,1492,746,0,10527,10528,5,554,0,0,10528,10529,3,1256,628,0,10529,10530,
	5,2224,0,0,10530,10742,1,0,0,0,10531,10532,7,122,0,0,10532,10534,3,1450,
	725,0,10533,10535,3,1454,727,0,10534,10533,1,0,0,0,10534,10535,1,0,0,0,
	10535,10536,1,0,0,0,10536,10537,3,1304,652,0,10537,10742,1,0,0,0,10538,
	10539,3,1302,651,0,10539,10540,5,2223,0,0,10540,10542,3,1232,616,0,10541,
	10543,3,1320,660,0,10542,10541,1,0,0,0,10542,10543,1,0,0,0,10543,10545,
	1,0,0,0,10544,10546,3,1312,656,0,10545,10544,1,0,0,0,10545,10546,1,0,0,
	0,10546,10547,1,0,0,0,10547,10548,5,2224,0,0,10548,10742,1,0,0,0,10549,
	10550,5,1974,0,0,10550,10551,5,2223,0,0,10551,10554,3,1234,617,0,10552,
	10553,5,2063,0,0,10553,10555,7,123,0,0,10554,10552,1,0,0,0,10554,10555,
	1,0,0,0,10555,10560,1,0,0,0,10556,10557,5,2229,0,0,10557,10559,3,1234,617,
	0,10558,10556,1,0,0,0,10559,10562,1,0,0,0,10560,10558,1,0,0,0,10560,10561,
	1,0,0,0,10561,10563,1,0,0,0,10562,10560,1,0,0,0,10563,10564,5,2224,0,0,
	10564,10742,1,0,0,0,10565,10566,5,1976,0,0,10566,10567,5,2223,0,0,10567,
	10568,3,1234,617,0,10568,10570,5,61,0,0,10569,10571,5,1376,0,0,10570,10569,
	1,0,0,0,10570,10571,1,0,0,0,10571,10572,1,0,0,0,10572,10573,3,1458,729,
	0,10573,10574,5,2224,0,0,10574,10742,1,0,0,0,10575,10576,5,2204,0,0,10576,
	10584,5,2223,0,0,10577,10579,7,116,0,0,10578,10577,1,0,0,0,10578,10579,
	1,0,0,0,10579,10581,1,0,0,0,10580,10582,3,1484,742,0,10581,10580,1,0,0,
	0,10581,10582,1,0,0,0,10582,10583,1,0,0,0,10583,10585,5,554,0,0,10584,10578,
	1,0,0,0,10584,10585,1,0,0,0,10585,10586,1,0,0,0,10586,10587,3,1256,628,
	0,10587,10588,5,2224,0,0,10588,10742,1,0,0,0,10589,10590,5,2131,0,0,10590,
	10591,5,2223,0,0,10591,10593,3,1234,617,0,10592,10594,3,1150,575,0,10593,
	10592,1,0,0,0,10593,10594,1,0,0,0,10594,10595,1,0,0,0,10595,10598,5,2224,
	0,0,10596,10597,5,2216,0,0,10597,10599,3,1470,735,0,10598,10596,1,0,0,0,
	10598,10599,1,0,0,0,10599,10742,1,0,0,0,10600,10601,7,124,0,0,10601,10602,
	5,2223,0,0,10602,10607,3,1332,666,0,10603,10604,5,2229,0,0,10604,10606,
	3,1332,666,0,10605,10603,1,0,0,0,10606,10609,1,0,0,0,10607,10605,1,0,0,
	0,10607,10608,1,0,0,0,10608,10610,1,0,0,0,10609,10607,1,0,0,0,10610,10613,
	5,2224,0,0,10611,10612,5,2216,0,0,10612,10614,3,1470,735,0,10613,10611,
	1,0,0,0,10613,10614,1,0,0,0,10614,10742,1,0,0,0,10615,10616,5,2140,0,0,
	10616,10618,5,2223,0,0,10617,10619,7,125,0,0,10618,10617,1,0,0,0,10618,
	10619,1,0,0,0,10619,10621,1,0,0,0,10620,10622,7,126,0,0,10621,10620,1,0,
	0,0,10621,10622,1,0,0,0,10622,10623,1,0,0,0,10623,10626,3,1234,617,0,10624,
	10625,5,2229,0,0,10625,10627,3,1324,662,0,10626,10624,1,0,0,0,10626,10627,
	1,0,0,0,10627,10635,1,0,0,0,10628,10629,5,2229,0,0,10629,10631,3,1234,617,
	0,10630,10632,3,1352,676,0,10631,10630,1,0,0,0,10631,10632,1,0,0,0,10632,
	10634,1,0,0,0,10633,10628,1,0,0,0,10634,10637,1,0,0,0,10635,10633,1,0,0,
	0,10635,10636,1,0,0,0,10636,10638,1,0,0,0,10637,10635,1,0,0,0,10638,10641,
	5,2224,0,0,10639,10640,5,2216,0,0,10640,10642,3,1470,735,0,10641,10639,
	1,0,0,0,10641,10642,1,0,0,0,10642,10742,1,0,0,0,10643,10644,5,2142,0,0,
	10644,10645,5,2223,0,0,10645,10647,3,1234,617,0,10646,10648,3,1322,661,
	0,10647,10646,1,0,0,0,10647,10648,1,0,0,0,10648,10649,1,0,0,0,10649,10650,
	5,2224,0,0,10650,10742,1,0,0,0,10651,10652,5,2151,0,0,10652,10653,5,2223,
	0,0,10653,10654,7,127,0,0,10654,10656,3,1256,628,0,10655,10657,5,2111,0,
	0,10656,10655,1,0,0,0,10656,10657,1,0,0,0,10657,10658,1,0,0,0,10658,10661,
	5,2224,0,0,10659,10660,5,2216,0,0,10660,10662,3,1470,735,0,10661,10659,
	1,0,0,0,10661,10662,1,0,0,0,10662,10742,1,0,0,0,10663,10664,5,2153,0,0,
	10664,10669,5,2223,0,0,10665,10666,5,879,0,0,10666,10670,3,1486,743,0,10667,
	10668,5,462,0,0,10668,10670,3,1256,628,0,10669,10665,1,0,0,0,10669,10667,
	1,0,0,0,10670,10673,1,0,0,0,10671,10672,5,2229,0,0,10672,10674,3,1256,628,
	0,10673,10671,1,0,0,0,10673,10674,1,0,0,0,10674,10675,1,0,0,0,10675,10678,
	5,2224,0,0,10676,10677,5,2216,0,0,10677,10679,3,1470,735,0,10678,10676,
	1,0,0,0,10678,10679,1,0,0,0,10679,10742,1,0,0,0,10680,10681,5,2155,0,0,
	10681,10682,5,2223,0,0,10682,10684,3,1256,628,0,10683,10685,3,1322,661,
	0,10684,10683,1,0,0,0,10684,10685,1,0,0,0,10685,10686,1,0,0,0,10686,10687,
	5,1430,0,0,10687,10691,5,263,0,0,10688,10689,5,1097,0,0,10689,10690,5,1128,
	0,0,10690,10692,5,437,0,0,10691,10688,1,0,0,0,10691,10692,1,0,0,0,10692,
	10693,1,0,0,0,10693,10696,5,2224,0,0,10694,10695,5,2216,0,0,10695,10697,
	3,1470,735,0,10696,10694,1,0,0,0,10696,10697,1,0,0,0,10697,10742,1,0,0,
	0,10698,10699,5,2156,0,0,10699,10700,5,2223,0,0,10700,10703,3,1256,628,
	0,10701,10702,5,2229,0,0,10702,10704,3,1334,667,0,10703,10701,1,0,0,0,10703,
	10704,1,0,0,0,10704,10707,1,0,0,0,10705,10706,5,2229,0,0,10706,10708,3,
	1336,668,0,10707,10705,1,0,0,0,10707,10708,1,0,0,0,10708,10709,1,0,0,0,
	10709,10712,5,2224,0,0,10710,10711,5,2216,0,0,10711,10713,3,1470,735,0,
	10712,10710,1,0,0,0,10712,10713,1,0,0,0,10713,10742,1,0,0,0,10714,10715,
	5,2158,0,0,10715,10716,5,2223,0,0,10716,10717,7,127,0,0,10717,10720,3,1256,
	628,0,10718,10719,5,61,0,0,10719,10721,3,1458,729,0,10720,10718,1,0,0,0,
	10720,10721,1,0,0,0,10721,10723,1,0,0,0,10722,10724,3,1338,669,0,10723,
	10722,1,0,0,0,10723,10724,1,0,0,0,10724,10726,1,0,0,0,10725,10727,3,1340,
	670,0,10726,10725,1,0,0,0,10726,10727,1,0,0,0,10727,10729,1,0,0,0,10728,
	10730,3,1342,671,0,10729,10728,1,0,0,0,10729,10730,1,0,0,0,10730,10733,
	1,0,0,0,10731,10732,7,128,0,0,10732,10734,5,352,0,0,10733,10731,1,0,0,0,
	10733,10734,1,0,0,0,10734,10735,1,0,0,0,10735,10738,5,2224,0,0,10736,10737,
	5,2216,0,0,10737,10739,3,1470,735,0,10738,10736,1,0,0,0,10738,10739,1,0,
	0,0,10739,10742,1,0,0,0,10740,10742,3,1428,714,0,10741,10446,1,0,0,0,10741,
	10451,1,0,0,0,10741,10456,1,0,0,0,10741,10469,1,0,0,0,10741,10483,1,0,0,
	0,10741,10495,1,0,0,0,10741,10506,1,0,0,0,10741,10513,1,0,0,0,10741,10516,
	1,0,0,0,10741,10524,1,0,0,0,10741,10531,1,0,0,0,10741,10538,1,0,0,0,10741,
	10549,1,0,0,0,10741,10565,1,0,0,0,10741,10575,1,0,0,0,10741,10589,1,0,0,
	0,10741,10600,1,0,0,0,10741,10615,1,0,0,0,10741,10643,1,0,0,0,10741,10651,
	1,0,0,0,10741,10663,1,0,0,0,10741,10680,1,0,0,0,10741,10698,1,0,0,0,10741,
	10714,1,0,0,0,10741,10740,1,0,0,0,10742,1297,1,0,0,0,10743,10744,7,129,
	0,0,10744,1299,1,0,0,0,10745,10746,7,130,0,0,10746,1301,1,0,0,0,10747,10748,
	7,131,0,0,10748,1303,1,0,0,0,10749,10750,5,1186,0,0,10750,10752,5,2223,
	0,0,10751,10753,3,1082,541,0,10752,10751,1,0,0,0,10752,10753,1,0,0,0,10753,
	10758,1,0,0,0,10754,10756,3,1150,575,0,10755,10757,3,1306,653,0,10756,10755,
	1,0,0,0,10756,10757,1,0,0,0,10757,10759,1,0,0,0,10758,10754,1,0,0,0,10758,
	10759,1,0,0,0,10759,10760,1,0,0,0,10760,10761,5,2224,0,0,10761,1305,1,0,
	0,0,10762,10769,3,1308,654,0,10763,10764,5,107,0,0,10764,10765,3,1310,655,
	0,10765,10766,5,43,0,0,10766,10767,3,1310,655,0,10767,10770,1,0,0,0,10768,
	10770,3,1310,655,0,10769,10763,1,0,0,0,10769,10768,1,0,0,0,10770,1307,1,
	0,0,0,10771,10772,7,132,0,0,10772,1309,1,0,0,0,10773,10774,5,1994,0,0,10774,
	10781,5,1290,0,0,10775,10776,5,302,0,0,10776,10781,5,1451,0,0,10777,10778,
	3,1256,628,0,10778,10779,7,133,0,0,10779,10781,1,0,0,0,10780,10773,1,0,
	0,0,10780,10775,1,0,0,0,10780,10777,1,0,0,0,10781,1311,1,0,0,0,10782,10792,
	5,2063,0,0,10783,10793,5,2226,0,0,10784,10789,3,1314,657,0,10785,10786,
	5,2229,0,0,10786,10788,3,1314,657,0,10787,10785,1,0,0,0,10788,10791,1,0,
	0,0,10789,10787,1,0,0,0,10789,10790,1,0,0,0,10790,10793,1,0,0,0,10791,10789,
	1,0,0,0,10792,10783,1,0,0,0,10792,10784,1,0,0,0,10793,1313,1,0,0,0,10794,
	10796,5,652,0,0,10795,10797,5,1182,0,0,10796,10795,1,0,0,0,10796,10797,
	1,0,0,0,10797,10800,1,0,0,0,10798,10800,5,1182,0,0,10799,10794,1,0,0,0,
	10799,10798,1,0,0,0,10799,10800,1,0,0,0,10800,10801,1,0,0,0,10801,10802,
	3,1064,532,0,10802,1315,1,0,0,0,10803,10804,5,1168,0,0,10804,10805,5,146,
	0,0,10805,10806,3,1256,628,0,10806,1317,1,0,0,0,10807,10808,5,2118,0,0,
	10808,10809,5,573,0,0,10809,10810,5,2223,0,0,10810,10811,3,1150,575,0,10811,
	10812,5,2224,0,0,10812,10815,1,0,0,0,10813,10815,3,1304,652,0,10814,10807,
	1,0,0,0,10814,10813,1,0,0,0,10815,1319,1,0,0,0,10816,10838,5,279,0,0,10817,
	10819,5,854,0,0,10818,10820,5,83,0,0,10819,10818,1,0,0,0,10819,10820,1,
	0,0,0,10820,10839,1,0,0,0,10821,10822,5,2223,0,0,10822,10827,3,1362,681,
	0,10823,10824,5,2229,0,0,10824,10826,3,1362,681,0,10825,10823,1,0,0,0,10826,
	10829,1,0,0,0,10827,10825,1,0,0,0,10827,10828,1,0,0,0,10828,10830,1,0,0,
	0,10829,10827,1,0,0,0,10830,10831,5,2224,0,0,10831,10832,5,2073,0,0,10832,
	10834,5,2223,0,0,10833,10835,3,1232,616,0,10834,10833,1,0,0,0,10834,10835,
	1,0,0,0,10835,10836,1,0,0,0,10836,10837,5,2224,0,0,10837,10839,1,0,0,0,
	10838,10817,1,0,0,0,10838,10821,1,0,0,0,10839,1321,1,0,0,0,10840,10843,
	5,1211,0,0,10841,10842,5,146,0,0,10842,10844,5,2074,0,0,10843,10841,1,0,
	0,0,10843,10844,1,0,0,0,10844,10845,1,0,0,0,10845,10847,3,1234,617,0,10846,
	10848,3,1352,676,0,10847,10846,1,0,0,0,10847,10848,1,0,0,0,10848,10856,
	1,0,0,0,10849,10850,5,2229,0,0,10850,10852,3,1234,617,0,10851,10853,3,1352,
	676,0,10852,10851,1,0,0,0,10852,10853,1,0,0,0,10853,10855,1,0,0,0,10854,
	10849,1,0,0,0,10855,10858,1,0,0,0,10856,10854,1,0,0,0,10856,10857,1,0,0,
	0,10857,1323,1,0,0,0,10858,10856,1,0,0,0,10859,10860,5,2132,0,0,10860,10862,
	5,2223,0,0,10861,10863,7,125,0,0,10862,10861,1,0,0,0,10862,10863,1,0,0,
	0,10863,10865,1,0,0,0,10864,10866,7,134,0,0,10865,10864,1,0,0,0,10865,10866,
	1,0,0,0,10866,10867,1,0,0,0,10867,10872,3,1332,666,0,10868,10869,5,2229,
	0,0,10869,10871,3,1332,666,0,10870,10868,1,0,0,0,10871,10874,1,0,0,0,10872,
	10870,1,0,0,0,10872,10873,1,0,0,0,10873,10875,1,0,0,0,10874,10872,1,0,0,
	0,10875,10876,5,2224,0,0,10876,1325,1,0,0,0,10877,10878,5,2150,0,0,10878,
	10882,5,2223,0,0,10879,10880,3,1256,628,0,10880,10881,3,1352,676,0,10881,
	10883,1,0,0,0,10882,10879,1,0,0,0,10882,10883,1,0,0,0,10883,10890,1,0,0,
	0,10884,10885,5,2229,0,0,10885,10886,3,1256,628,0,10886,10887,3,1352,676,
	0,10887,10889,1,0,0,0,10888,10884,1,0,0,0,10889,10892,1,0,0,0,10890,10888,
	1,0,0,0,10890,10891,1,0,0,0,10891,10894,1,0,0,0,10892,10890,1,0,0,0,10893,
	10895,3,1330,665,0,10894,10893,1,0,0,0,10894,10895,1,0,0,0,10895,10896,
	1,0,0,0,10896,10897,5,2224,0,0,10897,1327,1,0,0,0,10898,10909,3,1360,680,
	0,10899,10900,5,546,0,0,10900,10910,5,1169,0,0,10901,10904,3,1458,729,0,
	10902,10903,5,1221,0,0,10903,10905,3,1256,628,0,10904,10902,1,0,0,0,10904,
	10905,1,0,0,0,10905,10907,1,0,0,0,10906,10908,3,1330,665,0,10907,10906,
	1,0,0,0,10907,10908,1,0,0,0,10908,10910,1,0,0,0,10909,10899,1,0,0,0,10909,
	10901,1,0,0,0,10910,1329,1,0,0,0,10911,10912,5,351,0,0,10912,10913,3,1256,
	628,0,10913,1331,1,0,0,0,10914,10921,3,1234,617,0,10915,10919,5,61,0,0,
	10916,10920,3,1488,744,0,10917,10918,5,462,0,0,10918,10920,3,1256,628,0,
	10919,10916,1,0,0,0,10919,10917,1,0,0,0,10920,10922,1,0,0,0,10921,10915,
	1,0,0,0,10921,10922,1,0,0,0,10922,1333,1,0,0,0,10923,10927,5,2098,0,0,10924,
	10925,5,1010,0,0,10925,10928,5,2074,0,0,10926,10928,3,1234,617,0,10927,
	10924,1,0,0,0,10927,10926,1,0,0,0,10928,1335,1,0,0,0,10929,10935,5,1562,
	0,0,10930,10936,5,2170,0,0,10931,10933,5,1010,0,0,10932,10934,5,2074,0,
	0,10933,10932,1,0,0,0,10933,10934,1,0,0,0,10934,10936,1,0,0,0,10935,10930,
	1,0,0,0,10935,10931,1,0,0,0,10936,1337,1,0,0,0,10937,10938,5,442,0,0,10938,
	10939,3,1256,628,0,10939,1339,1,0,0,0,10940,10941,5,2098,0,0,10941,10942,
	3,1256,628,0,10942,1341,1,0,0,0,10943,10944,5,1010,0,0,10944,10952,5,623,
	0,0,10945,10949,5,623,0,0,10946,10947,5,1535,0,0,10947,10948,5,2243,0,0,
	10948,10950,3,1256,628,0,10949,10946,1,0,0,0,10949,10950,1,0,0,0,10950,
	10952,1,0,0,0,10951,10943,1,0,0,0,10951,10945,1,0,0,0,10952,1343,1,0,0,
	0,10953,10962,5,2230,0,0,10954,10962,5,480,0,0,10955,10962,5,2250,0,0,10956,
	10957,5,1520,0,0,10957,10962,7,135,0,0,10958,10962,5,2251,0,0,10959,10962,
	3,1346,673,0,10960,10962,3,1348,674,0,10961,10953,1,0,0,0,10961,10954,1,
	0,0,0,10961,10955,1,0,0,0,10961,10956,1,0,0,0,10961,10958,1,0,0,0,10961,
	10959,1,0,0,0,10961,10960,1,0,0,0,10962,1345,1,0,0,0,10963,10964,5,2112,
	0,0,10964,10975,7,136,0,0,10965,10970,5,480,0,0,10966,10971,5,1618,0,0,
	10967,10971,5,507,0,0,10968,10971,5,2108,0,0,10969,10971,3,1412,706,0,10970,
	10966,1,0,0,0,10970,10967,1,0,0,0,10970,10968,1,0,0,0,10970,10969,1,0,0,
	0,10971,10972,1,0,0,0,10972,10976,7,137,0,0,10973,10974,5,266,0,0,10974,
	10976,7,138,0,0,10975,10965,1,0,0,0,10975,10973,1,0,0,0,10976,1347,1,0,
	0,0,10977,10978,5,1510,0,0,10978,10984,3,1492,746,0,10979,10985,5,2219,
	0,0,10980,10985,5,1128,0,0,10981,10985,5,1113,0,0,10982,10985,3,1480,740,
	0,10983,10985,3,1492,746,0,10984,10979,1,0,0,0,10984,10980,1,0,0,0,10984,
	10981,1,0,0,0,10984,10982,1,0,0,0,10984,10983,1,0,0,0,10985,1349,1,0,0,
	0,10986,10988,7,139,0,0,10987,10989,5,546,0,0,10988,10987,1,0,0,0,10988,
	10989,1,0,0,0,10989,10990,1,0,0,0,10990,10992,5,2223,0,0,10991,10993,3,
	1232,616,0,10992,10991,1,0,0,0,10992,10993,1,0,0,0,10993,10994,1,0,0,0,
	10994,10995,5,2224,0,0,10995,1351,1,0,0,0,10996,10998,5,61,0,0,10997,10996,
	1,0,0,0,10997,10998,1,0,0,0,10998,11001,1,0,0,0,10999,11002,3,1486,743,
	0,11000,11002,3,1484,742,0,11001,10999,1,0,0,0,11001,11000,1,0,0,0,11002,
	11005,1,0,0,0,11003,11005,5,61,0,0,11004,10997,1,0,0,0,11004,11003,1,0,
	0,0,11005,1353,1,0,0,0,11006,11009,3,1486,743,0,11007,11009,3,1484,742,
	0,11008,11006,1,0,0,0,11008,11007,1,0,0,0,11009,1355,1,0,0,0,11010,11015,
	5,2114,0,0,11011,11012,5,302,0,0,11012,11013,5,1115,0,0,11013,11016,3,1416,
	708,0,11014,11016,3,1234,617,0,11015,11011,1,0,0,0,11015,11014,1,0,0,0,
	11016,1357,1,0,0,0,11017,11018,5,145,0,0,11018,11020,5,210,0,0,11019,11017,
	1,0,0,0,11019,11020,1,0,0,0,11020,11021,1,0,0,0,11021,11022,5,691,0,0,11022,
	11027,3,1412,706,0,11023,11024,5,2229,0,0,11024,11026,3,1412,706,0,11025,
	11023,1,0,0,0,11026,11029,1,0,0,0,11027,11025,1,0,0,0,11027,11028,1,0,0,
	0,11028,1359,1,0,0,0,11029,11027,1,0,0,0,11030,11033,3,1486,743,0,11031,
	11033,3,1484,742,0,11032,11030,1,0,0,0,11032,11031,1,0,0,0,11033,1361,1,
	0,0,0,11034,11035,3,1486,743,0,11035,1363,1,0,0,0,11036,11037,3,1486,743,
	0,11037,1365,1,0,0,0,11038,11039,3,1486,743,0,11039,1367,1,0,0,0,11040,
	11041,3,1486,743,0,11041,1369,1,0,0,0,11042,11043,3,1486,743,0,11043,1371,
	1,0,0,0,11044,11045,3,1486,743,0,11045,1373,1,0,0,0,11046,11051,3,1486,
	743,0,11047,11048,5,2216,0,0,11048,11050,3,1488,744,0,11049,11047,1,0,0,
	0,11050,11053,1,0,0,0,11051,11049,1,0,0,0,11051,11052,1,0,0,0,11052,11056,
	1,0,0,0,11053,11051,1,0,0,0,11054,11055,5,2231,0,0,11055,11057,3,1422,711,
	0,11056,11054,1,0,0,0,11056,11057,1,0,0,0,11057,1375,1,0,0,0,11058,11059,
	3,1486,743,0,11059,1377,1,0,0,0,11060,11063,3,1486,743,0,11061,11062,5,
	2216,0,0,11062,11064,3,1488,744,0,11063,11061,1,0,0,0,11063,11064,1,0,0,
	0,11064,1379,1,0,0,0,11065,11066,3,1486,743,0,11066,1381,1,0,0,0,11067,
	11068,3,1486,743,0,11068,1383,1,0,0,0,11069,11070,3,1486,743,0,11070,1385,
	1,0,0,0,11071,11074,3,1486,743,0,11072,11073,5,2216,0,0,11073,11075,3,1488,
	744,0,11074,11072,1,0,0,0,11074,11075,1,0,0,0,11075,1387,1,0,0,0,11076,
	11081,3,1486,743,0,11077,11078,5,2216,0,0,11078,11080,3,1488,744,0,11079,
	11077,1,0,0,0,11080,11083,1,0,0,0,11081,11079,1,0,0,0,11081,11082,1,0,0,
	0,11082,1389,1,0,0,0,11083,11081,1,0,0,0,11084,11085,3,1486,743,0,11085,
	1391,1,0,0,0,11086,11088,3,1488,744,0,11087,11089,3,276,138,0,11088,11087,
	1,0,0,0,11088,11089,1,0,0,0,11089,1393,1,0,0,0,11090,11093,3,1488,744,0,
	11091,11093,5,251,0,0,11092,11090,1,0,0,0,11092,11091,1,0,0,0,11093,1395,
	1,0,0,0,11094,11099,3,1486,743,0,11095,11096,5,2216,0,0,11096,11098,3,1488,
	744,0,11097,11095,1,0,0,0,11098,11101,1,0,0,0,11099,11097,1,0,0,0,11099,
	11100,1,0,0,0,11100,11104,1,0,0,0,11101,11099,1,0,0,0,11102,11103,5,2231,
	0,0,11103,11105,3,1422,711,0,11104,11102,1,0,0,0,11104,11105,1,0,0,0,11105,
	1397,1,0,0,0,11106,11107,3,1488,744,0,11107,1399,1,0,0,0,11108,11113,3,
	1488,744,0,11109,11110,5,2216,0,0,11110,11112,3,1488,744,0,11111,11109,
	1,0,0,0,11112,11115,1,0,0,0,11113,11111,1,0,0,0,11113,11114,1,0,0,0,11114,
	1401,1,0,0,0,11115,11113,1,0,0,0,11116,11121,3,1488,744,0,11117,11118,5,
	2216,0,0,11118,11120,3,1488,744,0,11119,11117,1,0,0,0,11120,11123,1,0,0,
	0,11121,11119,1,0,0,0,11121,11122,1,0,0,0,11122,1403,1,0,0,0,11123,11121,
	1,0,0,0,11124,11129,3,1486,743,0,11125,11126,5,2216,0,0,11126,11128,3,1488,
	744,0,11127,11125,1,0,0,0,11128,11131,1,0,0,0,11129,11127,1,0,0,0,11129,
	11130,1,0,0,0,11130,1405,1,0,0,0,11131,11129,1,0,0,0,11132,11135,3,1486,
	743,0,11133,11134,5,2216,0,0,11134,11136,3,1488,744,0,11135,11133,1,0,0,
	0,11135,11136,1,0,0,0,11136,1407,1,0,0,0,11137,11140,3,1486,743,0,11138,
	11139,5,2216,0,0,11139,11141,3,1488,744,0,11140,11138,1,0,0,0,11140,11141,
	1,0,0,0,11141,1409,1,0,0,0,11142,11145,3,1486,743,0,11143,11144,5,2216,
	0,0,11144,11146,3,1488,744,0,11145,11143,1,0,0,0,11145,11146,1,0,0,0,11146,
	1411,1,0,0,0,11147,11148,5,2246,0,0,11148,11150,3,1430,715,0,11149,11147,
	1,0,0,0,11149,11150,1,0,0,0,11150,11151,1,0,0,0,11151,11154,3,1488,744,
	0,11152,11153,5,2216,0,0,11153,11155,3,1488,744,0,11154,11152,1,0,0,0,11154,
	11155,1,0,0,0,11155,11158,1,0,0,0,11156,11158,3,1466,733,0,11157,11149,
	1,0,0,0,11157,11156,1,0,0,0,11158,1413,1,0,0,0,11159,11162,3,1486,743,0,
	11160,11161,5,2216,0,0,11161,11163,3,1488,744,0,11162,11160,1,0,0,0,11162,
	11163,1,0,0,0,11163,1415,1,0,0,0,11164,11167,3,1468,734,0,11165,11167,3,
	1466,733,0,11166,11164,1,0,0,0,11166,11165,1,0,0,0,11167,1417,1,0,0,0,11168,
	11171,3,1486,743,0,11169,11171,3,1466,733,0,11170,11168,1,0,0,0,11170,11169,
	1,0,0,0,11171,1419,1,0,0,0,11172,11175,3,1486,743,0,11173,11174,5,2216,
	0,0,11174,11176,3,1488,744,0,11175,11173,1,0,0,0,11175,11176,1,0,0,0,11176,
	1421,1,0,0,0,11177,11178,3,1486,743,0,11178,1423,1,0,0,0,11179,11184,3,
	1486,743,0,11180,11181,5,2216,0,0,11181,11183,3,1488,744,0,11182,11180,
	1,0,0,0,11183,11186,1,0,0,0,11184,11182,1,0,0,0,11184,11185,1,0,0,0,11185,
	1425,1,0,0,0,11186,11184,1,0,0,0,11187,11190,3,1486,743,0,11188,11189,5,
	2216,0,0,11189,11191,3,1488,744,0,11190,11188,1,0,0,0,11190,11191,1,0,0,
	0,11191,11195,1,0,0,0,11192,11193,5,2231,0,0,11193,11196,3,1422,711,0,11194,
	11196,3,1350,675,0,11195,11192,1,0,0,0,11195,11194,1,0,0,0,11195,11196,
	1,0,0,0,11196,11202,1,0,0,0,11197,11199,3,1428,714,0,11198,11200,3,1490,
	745,0,11199,11198,1,0,0,0,11199,11200,1,0,0,0,11200,11202,1,0,0,0,11201,
	11187,1,0,0,0,11201,11197,1,0,0,0,11202,1427,1,0,0,0,11203,11204,5,2159,
	0,0,11204,11208,5,2223,0,0,11205,11206,3,1326,663,0,11206,11207,5,2229,
	0,0,11207,11209,1,0,0,0,11208,11205,1,0,0,0,11208,11209,1,0,0,0,11209,11210,
	1,0,0,0,11210,11212,3,1256,628,0,11211,11213,3,1322,661,0,11212,11211,1,
	0,0,0,11212,11213,1,0,0,0,11213,11223,1,0,0,0,11214,11215,5,214,0,0,11215,
	11220,3,1328,664,0,11216,11217,5,2229,0,0,11217,11219,3,1328,664,0,11218,
	11216,1,0,0,0,11219,11222,1,0,0,0,11220,11218,1,0,0,0,11220,11221,1,0,0,
	0,11221,11224,1,0,0,0,11222,11220,1,0,0,0,11223,11214,1,0,0,0,11223,11224,
	1,0,0,0,11224,11225,1,0,0,0,11225,11228,5,2224,0,0,11226,11227,5,2216,0,
	0,11227,11229,3,1470,735,0,11228,11226,1,0,0,0,11228,11229,1,0,0,0,11229,
	1429,1,0,0,0,11230,11235,3,1488,744,0,11231,11232,5,2216,0,0,11232,11234,
	3,1488,744,0,11233,11231,1,0,0,0,11234,11237,1,0,0,0,11235,11233,1,0,0,
	0,11235,11236,1,0,0,0,11236,1431,1,0,0,0,11237,11235,1,0,0,0,11238,11239,
	3,1486,743,0,11239,1433,1,0,0,0,11240,11241,3,1488,744,0,11241,1435,1,0,
	0,0,11242,11243,3,1488,744,0,11243,1437,1,0,0,0,11244,11245,3,1488,744,
	0,11245,1439,1,0,0,0,11246,11271,3,1426,713,0,11247,11248,5,2055,0,0,11248,
	11253,3,1438,719,0,11249,11250,5,2229,0,0,11250,11252,3,1438,719,0,11251,
	11249,1,0,0,0,11252,11255,1,0,0,0,11253,11251,1,0,0,0,11253,11254,1,0,0,
	0,11254,11271,1,0,0,0,11255,11253,1,0,0,0,11256,11257,5,380,0,0,11257,11271,
	3,1436,718,0,11258,11259,5,424,0,0,11259,11271,3,1434,717,0,11260,11261,
	5,841,0,0,11261,11262,5,854,0,0,11262,11271,3,1434,717,0,11263,11264,5,
	700,0,0,11264,11265,7,140,0,0,11265,11271,3,1434,717,0,11266,11267,5,1557,
	0,0,11267,11268,5,1975,0,0,11268,11269,5,1316,0,0,11269,11271,3,1434,717,
	0,11270,11246,1,0,0,0,11270,11247,1,0,0,0,11270,11256,1,0,0,0,11270,11258,
	1,0,0,0,11270,11260,1,0,0,0,11270,11263,1,0,0,0,11270,11266,1,0,0,0,11271,
	1441,1,0,0,0,11272,11277,3,1424,712,0,11273,11274,5,2229,0,0,11274,11276,
	3,1424,712,0,11275,11273,1,0,0,0,11276,11279,1,0,0,0,11277,11275,1,0,0,
	0,11277,11278,1,0,0,0,11278,1443,1,0,0,0,11279,11277,1,0,0,0,11280,11281,
	5,2223,0,0,11281,11282,3,1442,721,0,11282,11283,5,2224,0,0,11283,1445,1,
	0,0,0,11284,11285,5,720,0,0,11285,11286,5,2223,0,0,11286,11287,5,2181,0,
	0,11287,11288,7,104,0,0,11288,11289,3,1150,575,0,11289,11291,5,2224,0,0,
	11290,11292,3,1304,652,0,11291,11290,1,0,0,0,11291,11292,1,0,0,0,11292,
	1447,1,0,0,0,11293,11302,5,2223,0,0,11294,11299,3,1456,728,0,11295,11296,
	5,2229,0,0,11296,11298,3,1456,728,0,11297,11295,1,0,0,0,11298,11301,1,0,
	0,0,11299,11297,1,0,0,0,11299,11300,1,0,0,0,11300,11303,1,0,0,0,11301,11299,
	1,0,0,0,11302,11294,1,0,0,0,11302,11303,1,0,0,0,11303,11304,1,0,0,0,11304,
	11306,5,2224,0,0,11305,11307,3,1446,723,0,11306,11305,1,0,0,0,11306,11307,
	1,0,0,0,11307,1449,1,0,0,0,11308,11323,5,2223,0,0,11309,11311,3,1456,728,
	0,11310,11312,3,1454,727,0,11311,11310,1,0,0,0,11311,11312,1,0,0,0,11312,
	11320,1,0,0,0,11313,11314,5,2229,0,0,11314,11316,3,1456,728,0,11315,11317,
	3,1454,727,0,11316,11315,1,0,0,0,11316,11317,1,0,0,0,11317,11319,1,0,0,
	0,11318,11313,1,0,0,0,11319,11322,1,0,0,0,11320,11318,1,0,0,0,11320,11321,
	1,0,0,0,11321,11324,1,0,0,0,11322,11320,1,0,0,0,11323,11309,1,0,0,0,11323,
	11324,1,0,0,0,11324,11325,1,0,0,0,11325,11327,5,2224,0,0,11326,11328,3,
	1446,723,0,11327,11326,1,0,0,0,11327,11328,1,0,0,0,11328,1451,1,0,0,0,11329,
	11330,5,2223,0,0,11330,11343,3,1424,712,0,11331,11334,5,2229,0,0,11332,
	11335,3,1480,740,0,11333,11335,5,1097,0,0,11334,11332,1,0,0,0,11334,11333,
	1,0,0,0,11335,11341,1,0,0,0,11336,11339,5,2229,0,0,11337,11340,3,1480,740,
	0,11338,11340,5,1097,0,0,11339,11337,1,0,0,0,11339,11338,1,0,0,0,11340,
	11342,1,0,0,0,11341,11336,1,0,0,0,11341,11342,1,0,0,0,11342,11344,1,0,0,
	0,11343,11331,1,0,0,0,11343,11344,1,0,0,0,11344,11345,1,0,0,0,11345,11365,
	5,2063,0,0,11346,11347,3,1426,713,0,11347,11348,5,2216,0,0,11348,11349,
	5,2226,0,0,11349,11366,1,0,0,0,11350,11366,5,2226,0,0,11351,11353,3,1234,
	617,0,11352,11354,3,1352,676,0,11353,11352,1,0,0,0,11353,11354,1,0,0,0,
	11354,11362,1,0,0,0,11355,11356,5,2229,0,0,11356,11358,3,1234,617,0,11357,
	11359,3,1352,676,0,11358,11357,1,0,0,0,11358,11359,1,0,0,0,11359,11361,
	1,0,0,0,11360,11355,1,0,0,0,11361,11364,1,0,0,0,11362,11360,1,0,0,0,11362,
	11363,1,0,0,0,11363,11366,1,0,0,0,11364,11362,1,0,0,0,11365,11346,1,0,0,
	0,11365,11350,1,0,0,0,11365,11351,1,0,0,0,11366,11367,1,0,0,0,11367,11369,
	5,2224,0,0,11368,11370,3,1446,723,0,11369,11368,1,0,0,0,11369,11370,1,0,
	0,0,11370,1453,1,0,0,0,11371,11372,7,141,0,0,11372,11373,5,1098,0,0,11373,
	1455,1,0,0,0,11374,11375,3,1486,743,0,11375,11376,5,2243,0,0,11376,11377,
	5,2238,0,0,11377,11379,1,0,0,0,11378,11374,1,0,0,0,11378,11379,1,0,0,0,
	11379,11380,1,0,0,0,11380,11381,3,1234,617,0,11381,1457,1,0,0,0,11382,11391,
	3,1460,730,0,11383,11385,5,1376,0,0,11384,11383,1,0,0,0,11384,11385,1,0,
	0,0,11385,11386,1,0,0,0,11386,11388,3,1400,700,0,11387,11389,7,142,0,0,
	11388,11387,1,0,0,0,11388,11389,1,0,0,0,11389,11391,1,0,0,0,11390,11382,
	1,0,0,0,11390,11384,1,0,0,0,11391,1459,1,0,0,0,11392,11394,3,1464,732,0,
	11393,11395,3,1462,731,0,11394,11393,1,0,0,0,11394,11395,1,0,0,0,11395,
	11405,1,0,0,0,11396,11398,5,2121,0,0,11397,11399,5,769,0,0,11398,11397,
	1,0,0,0,11398,11399,1,0,0,0,11399,11400,1,0,0,0,11400,11401,5,1937,0,0,
	11401,11406,5,2173,0,0,11402,11403,5,175,0,0,11403,11404,5,1510,0,0,11404,
	11406,3,1430,715,0,11405,11396,1,0,0,0,11405,11402,1,0,0,0,11405,11406,
	1,0,0,0,11406,11424,1,0,0,0,11407,11408,5,689,0,0,11408,11413,7,143,0,0,
	11409,11410,5,2223,0,0,11410,11411,3,1234,617,0,11411,11412,5,2224,0,0,
	11412,11414,1,0,0,0,11413,11409,1,0,0,0,11413,11414,1,0,0,0,11414,11415,
	1,0,0,0,11415,11416,5,1964,0,0,11416,11421,7,144,0,0,11417,11418,5,2223,
	0,0,11418,11419,3,1234,617,0,11419,11420,5,2224,0,0,11420,11422,1,0,0,0,
	11421,11417,1,0,0,0,11421,11422,1,0,0,0,11422,11424,1,0,0,0,11423,11392,
	1,0,0,0,11423,11407,1,0,0,0,11424,1461,1,0,0,0,11425,11428,5,2223,0,0,11426,
	11429,3,1480,740,0,11427,11429,5,2226,0,0,11428,11426,1,0,0,0,11428,11427,
	1,0,0,0,11429,11432,1,0,0,0,11430,11431,5,2229,0,0,11431,11433,3,1480,740,
	0,11432,11430,1,0,0,0,11432,11433,1,0,0,0,11433,11435,1,0,0,0,11434,11436,
	7,145,0,0,11435,11434,1,0,0,0,11435,11436,1,0,0,0,11436,11437,1,0,0,0,11437,
	11438,5,2224,0,0,11438,1463,1,0,0,0,11439,11500,5,118,0,0,11440,11500,5,
	1259,0,0,11441,11500,5,886,0,0,11442,11500,5,115,0,0,11443,11500,5,112,
	0,0,11444,11500,5,887,0,0,11445,11500,5,1274,0,0,11446,11500,5,1273,0,0,
	11447,11500,5,1528,0,0,11448,11500,5,1529,0,0,11449,11500,5,1104,0,0,11450,
	11500,5,342,0,0,11451,11500,5,682,0,0,11452,11500,5,690,0,0,11453,11500,
	5,1100,0,0,11454,11500,5,1541,0,0,11455,11500,5,1099,0,0,11456,11500,5,
	343,0,0,11457,11459,5,407,0,0,11458,11460,5,1291,0,0,11459,11458,1,0,0,
	0,11459,11460,1,0,0,0,11460,11500,1,0,0,0,11461,11500,5,534,0,0,11462,11500,
	5,1356,0,0,11463,11500,5,890,0,0,11464,11466,5,788,0,0,11465,11467,5,1347,
	0,0,11466,11465,1,0,0,0,11466,11467,1,0,0,0,11467,11500,1,0,0,0,11468,11500,
	5,176,0,0,11469,11500,5,175,0,0,11470,11500,5,2075,0,0,11471,11500,5,2076,
	0,0,11472,11500,5,1598,0,0,11473,11500,5,1347,0,0,11474,11500,5,134,0,0,
	11475,11500,5,327,0,0,11476,11500,5,1446,0,0,11477,11500,5,2032,0,0,11478,
	11500,5,2169,0,0,11479,11500,5,868,0,0,11480,11500,5,329,0,0,11481,11500,
	5,598,0,0,11482,11500,5,844,0,0,11483,11500,5,1480,0,0,11484,11500,5,1940,
	0,0,11485,11500,5,1941,0,0,11486,11500,5,1943,0,0,11487,11500,5,1939,0,
	0,11488,11500,5,1933,0,0,11489,11500,5,1935,0,0,11490,11500,5,1934,0,0,
	11491,11500,5,1932,0,0,11492,11500,5,2171,0,0,11493,11500,5,413,0,0,11494,
	11500,5,108,0,0,11495,11500,5,128,0,0,11496,11500,5,192,0,0,11497,11500,
	5,892,0,0,11498,11500,5,849,0,0,11499,11439,1,0,0,0,11499,11440,1,0,0,0,
	11499,11441,1,0,0,0,11499,11442,1,0,0,0,11499,11443,1,0,0,0,11499,11444,
	1,0,0,0,11499,11445,1,0,0,0,11499,11446,1,0,0,0,11499,11447,1,0,0,0,11499,
	11448,1,0,0,0,11499,11449,1,0,0,0,11499,11450,1,0,0,0,11499,11451,1,0,0,
	0,11499,11452,1,0,0,0,11499,11453,1,0,0,0,11499,11454,1,0,0,0,11499,11455,
	1,0,0,0,11499,11456,1,0,0,0,11499,11457,1,0,0,0,11499,11461,1,0,0,0,11499,
	11462,1,0,0,0,11499,11463,1,0,0,0,11499,11464,1,0,0,0,11499,11468,1,0,0,
	0,11499,11469,1,0,0,0,11499,11470,1,0,0,0,11499,11471,1,0,0,0,11499,11472,
	1,0,0,0,11499,11473,1,0,0,0,11499,11474,1,0,0,0,11499,11475,1,0,0,0,11499,
	11476,1,0,0,0,11499,11477,1,0,0,0,11499,11478,1,0,0,0,11499,11479,1,0,0,
	0,11499,11480,1,0,0,0,11499,11481,1,0,0,0,11499,11482,1,0,0,0,11499,11483,
	1,0,0,0,11499,11484,1,0,0,0,11499,11485,1,0,0,0,11499,11486,1,0,0,0,11499,
	11487,1,0,0,0,11499,11488,1,0,0,0,11499,11489,1,0,0,0,11499,11490,1,0,0,
	0,11499,11491,1,0,0,0,11499,11492,1,0,0,0,11499,11493,1,0,0,0,11499,11494,
	1,0,0,0,11499,11495,1,0,0,0,11499,11496,1,0,0,0,11499,11497,1,0,0,0,11499,
	11498,1,0,0,0,11500,1465,1,0,0,0,11501,11505,5,2233,0,0,11502,11503,5,2240,
	0,0,11503,11505,5,2217,0,0,11504,11501,1,0,0,0,11504,11502,1,0,0,0,11505,
	11514,1,0,0,0,11506,11508,5,647,0,0,11507,11506,1,0,0,0,11507,11508,1,0,
	0,0,11508,11512,1,0,0,0,11509,11513,5,2233,0,0,11510,11511,5,2240,0,0,11511,
	11513,5,2217,0,0,11512,11509,1,0,0,0,11512,11510,1,0,0,0,11513,11515,1,
	0,0,0,11514,11507,1,0,0,0,11514,11515,1,0,0,0,11515,11520,1,0,0,0,11516,
	11517,5,2216,0,0,11517,11519,3,1470,735,0,11518,11516,1,0,0,0,11519,11522,
	1,0,0,0,11520,11518,1,0,0,0,11520,11521,1,0,0,0,11521,1467,1,0,0,0,11522,
	11520,1,0,0,0,11523,11528,3,1470,735,0,11524,11525,5,2216,0,0,11525,11527,
	3,1470,735,0,11526,11524,1,0,0,0,11527,11530,1,0,0,0,11528,11526,1,0,0,
	0,11528,11529,1,0,0,0,11529,1469,1,0,0,0,11530,11528,1,0,0,0,11531,11532,
	5,2246,0,0,11532,11534,3,1430,715,0,11533,11531,1,0,0,0,11533,11534,1,0,
	0,0,11534,11535,1,0,0,0,11535,11540,3,1488,744,0,11536,11537,5,2216,0,0,
	11537,11539,3,1488,744,0,11538,11536,1,0,0,0,11539,11542,1,0,0,0,11540,
	11538,1,0,0,0,11540,11541,1,0,0,0,11541,11545,1,0,0,0,11542,11540,1,0,0,
	0,11543,11544,5,2231,0,0,11544,11546,3,1422,711,0,11545,11543,1,0,0,0,11545,
	11546,1,0,0,0,11546,11548,1,0,0,0,11547,11549,3,1448,724,0,11548,11547,
	1,0,0,0,11548,11549,1,0,0,0,11549,1471,1,0,0,0,11550,11551,5,2246,0,0,11551,
	11553,3,1430,715,0,11552,11550,1,0,0,0,11552,11553,1,0,0,0,11553,11554,
	1,0,0,0,11554,11559,3,1488,744,0,11555,11556,5,2216,0,0,11556,11558,3,1488,
	744,0,11557,11555,1,0,0,0,11558,11561,1,0,0,0,11559,11557,1,0,0,0,11559,
	11560,1,0,0,0,11560,1473,1,0,0,0,11561,11559,1,0,0,0,11562,11564,5,35,0,
	0,11563,11565,5,1312,0,0,11564,11563,1,0,0,0,11564,11565,1,0,0,0,11565,
	11595,1,0,0,0,11566,11595,5,39,0,0,11567,11595,5,340,0,0,11568,11595,5,
	362,0,0,11569,11595,5,475,0,0,11570,11571,5,532,0,0,11571,11595,5,57,0,
	0,11572,11595,5,631,0,0,11573,11574,5,651,0,0,11574,11595,5,1312,0,0,11575,
	11595,5,669,0,0,11576,11577,5,720,0,0,11577,11595,5,1496,0,0,11578,11579,
	5,832,0,0,11579,11595,5,2099,0,0,11580,11581,5,1128,0,0,11581,11582,5,218,
	0,0,11582,11595,5,1377,0,0,11583,11584,5,1334,0,0,11584,11595,5,1436,0,
	0,11585,11595,5,1353,0,0,11586,11595,5,1374,0,0,11587,11595,5,1490,0,0,
	11588,11589,5,1974,0,0,11589,11595,5,1557,0,0,11590,11595,5,1997,0,0,11591,
	11595,5,2025,0,0,11592,11595,5,2059,0,0,11593,11595,5,2125,0,0,11594,11562,
	1,0,0,0,11594,11566,1,0,0,0,11594,11567,1,0,0,0,11594,11568,1,0,0,0,11594,
	11569,1,0,0,0,11594,11570,1,0,0,0,11594,11572,1,0,0,0,11594,11573,1,0,0,
	0,11594,11575,1,0,0,0,11594,11576,1,0,0,0,11594,11578,1,0,0,0,11594,11580,
	1,0,0,0,11594,11583,1,0,0,0,11594,11585,1,0,0,0,11594,11586,1,0,0,0,11594,
	11587,1,0,0,0,11594,11588,1,0,0,0,11594,11590,1,0,0,0,11594,11591,1,0,0,
	0,11594,11592,1,0,0,0,11594,11593,1,0,0,0,11595,1475,1,0,0,0,11596,11597,
	5,35,0,0,11597,11923,5,1312,0,0,11598,11923,5,28,0,0,11599,11601,5,24,0,
	0,11600,11602,5,48,0,0,11601,11600,1,0,0,0,11601,11602,1,0,0,0,11602,11603,
	1,0,0,0,11603,11604,5,1557,0,0,11604,11605,5,1984,0,0,11605,11923,5,1510,
	0,0,11606,11607,7,146,0,0,11607,11608,5,48,0,0,11608,11609,5,1557,0,0,11609,
	11923,5,1316,0,0,11610,11611,5,24,0,0,11611,11612,5,1557,0,0,11612,11613,
	5,798,0,0,11613,11923,5,1107,0,0,11614,11616,5,288,0,0,11615,11617,5,48,
	0,0,11616,11615,1,0,0,0,11616,11617,1,0,0,0,11617,11618,1,0,0,0,11618,11923,
	5,197,0,0,11619,11620,7,147,0,0,11620,11621,5,48,0,0,11621,11923,5,197,
	0,0,11622,11623,7,148,0,0,11623,11624,5,48,0,0,11624,11923,5,265,0,0,11625,
	11626,5,476,0,0,11626,11627,5,1366,0,0,11627,11923,5,1267,0,0,11628,11629,
	5,39,0,0,11629,11923,5,316,0,0,11630,11632,7,149,0,0,11631,11633,5,1324,
	0,0,11632,11631,1,0,0,0,11632,11633,1,0,0,0,11633,11634,1,0,0,0,11634,11635,
	5,316,0,0,11635,11923,5,760,0,0,11636,11637,5,411,0,0,11637,11638,5,1324,
	0,0,11638,11639,5,316,0,0,11639,11923,5,760,0,0,11640,11641,5,340,0,0,11641,
	11642,5,251,0,0,11642,11923,5,1506,0,0,11643,11644,5,340,0,0,11644,11645,
	5,48,0,0,11645,11923,5,1314,0,0,11646,11647,5,41,0,0,11647,11648,5,48,0,
	0,11648,11923,5,376,0,0,11649,11651,5,288,0,0,11650,11652,5,48,0,0,11651,
	11650,1,0,0,0,11651,11652,1,0,0,0,11652,11653,1,0,0,0,11653,11923,5,377,
	0,0,11654,11655,7,147,0,0,11655,11656,5,48,0,0,11656,11923,5,377,0,0,11657,
	11658,7,148,0,0,11658,11659,5,48,0,0,11659,11923,5,380,0,0,11660,11661,
	7,148,0,0,11661,11662,5,48,0,0,11662,11923,5,424,0,0,11663,11668,5,532,
	0,0,11664,11665,5,57,0,0,11665,11669,5,24,0,0,11666,11667,5,48,0,0,11667,
	11669,5,1912,0,0,11668,11664,1,0,0,0,11668,11666,1,0,0,0,11669,11923,1,
	0,0,0,11670,11671,7,146,0,0,11671,11672,5,48,0,0,11672,11923,5,631,0,0,
	11673,11675,5,288,0,0,11674,11676,5,48,0,0,11675,11674,1,0,0,0,11675,11676,
	1,0,0,0,11676,11677,1,0,0,0,11677,11923,5,645,0,0,11678,11679,7,150,0,0,
	11679,11680,5,48,0,0,11680,11923,5,645,0,0,11681,11683,5,288,0,0,11682,
	11684,7,151,0,0,11683,11682,1,0,0,0,11683,11684,1,0,0,0,11684,11685,1,0,
	0,0,11685,11923,5,701,0,0,11686,11687,5,475,0,0,11687,11688,5,48,0,0,11688,
	11923,7,152,0,0,11689,11690,5,797,0,0,11690,11923,5,1468,0,0,11691,11692,
	5,24,0,0,11692,11693,5,722,0,0,11693,11923,5,798,0,0,11694,11696,5,288,
	0,0,11695,11697,5,48,0,0,11696,11695,1,0,0,0,11696,11697,1,0,0,0,11697,
	11698,1,0,0,0,11698,11923,5,749,0,0,11699,11700,7,150,0,0,11700,11701,5,
	48,0,0,11701,11923,5,749,0,0,11702,11923,5,784,0,0,11703,11705,5,288,0,
	0,11704,11706,5,48,0,0,11705,11704,1,0,0,0,11705,11706,1,0,0,0,11706,11707,
	1,0,0,0,11707,11708,5,809,0,0,11708,11923,5,2099,0,0,11709,11710,7,147,
	0,0,11710,11711,5,48,0,0,11711,11712,5,809,0,0,11712,11923,5,2099,0,0,11713,
	11715,5,566,0,0,11714,11713,1,0,0,0,11714,11715,1,0,0,0,11715,11716,1,0,
	0,0,11716,11717,5,1334,0,0,11717,11923,5,1436,0,0,11718,11719,5,1128,0,
	0,11719,11720,5,218,0,0,11720,11923,5,1377,0,0,11721,11723,5,288,0,0,11722,
	11724,5,48,0,0,11723,11722,1,0,0,0,11723,11724,1,0,0,0,11724,11725,1,0,
	0,0,11725,11726,5,841,0,0,11726,11923,5,854,0,0,11727,11728,7,153,0,0,11728,
	11729,5,48,0,0,11729,11730,5,841,0,0,11730,11923,5,854,0,0,11731,11733,
	5,288,0,0,11732,11734,5,48,0,0,11733,11732,1,0,0,0,11733,11734,1,0,0,0,
	11734,11735,1,0,0,0,11735,11923,5,298,0,0,11736,11737,7,154,0,0,11737,11738,
	5,48,0,0,11738,11923,5,298,0,0,11739,11741,5,288,0,0,11740,11742,5,48,0,
	0,11741,11740,1,0,0,0,11741,11742,1,0,0,0,11742,11743,1,0,0,0,11743,11744,
	5,823,0,0,11744,11923,5,538,0,0,11745,11746,7,155,0,0,11746,11747,5,48,
	0,0,11747,11748,5,823,0,0,11748,11923,5,538,0,0,11749,11751,5,288,0,0,11750,
	11752,5,48,0,0,11751,11750,1,0,0,0,11751,11752,1,0,0,0,11752,11753,1,0,
	0,0,11753,11754,5,298,0,0,11754,11923,5,377,0,0,11755,11756,7,156,0,0,11756,
	11757,5,48,0,0,11757,11758,5,298,0,0,11758,11923,5,377,0,0,11759,11761,
	5,288,0,0,11760,11762,5,48,0,0,11761,11760,1,0,0,0,11761,11762,1,0,0,0,
	11762,11763,1,0,0,0,11763,11764,5,298,0,0,11764,11765,5,144,0,0,11765,11923,
	5,1315,0,0,11766,11767,7,157,0,0,11767,11768,5,48,0,0,11768,11769,5,298,
	0,0,11769,11770,5,144,0,0,11770,11923,5,1315,0,0,11771,11773,5,288,0,0,
	11772,11774,5,48,0,0,11773,11772,1,0,0,0,11773,11774,1,0,0,0,11774,11775,
	1,0,0,0,11775,11923,5,1135,0,0,11776,11777,7,150,0,0,11777,11778,5,48,0,
	0,11778,11923,5,1135,0,0,11779,11780,7,146,0,0,11780,11781,5,48,0,0,11781,
	11923,5,1180,0,0,11782,11783,5,288,0,0,11783,11784,5,1265,0,0,11784,11923,
	5,316,0,0,11785,11786,5,1510,0,0,11786,11923,5,260,0,0,11787,11789,5,288,
	0,0,11788,11790,5,48,0,0,11789,11788,1,0,0,0,11789,11790,1,0,0,0,11790,
	11791,1,0,0,0,11791,11923,5,1314,0,0,11792,11793,7,150,0,0,11793,11794,
	5,48,0,0,11794,11923,5,1314,0,0,11795,11796,7,146,0,0,11796,11923,5,1316,
	0,0,11797,11798,5,288,0,0,11798,11923,5,1438,0,0,11799,11800,7,158,0,0,
	11800,11801,5,48,0,0,11801,11923,5,1438,0,0,11802,11803,7,146,0,0,11803,
	11804,5,1441,0,0,11804,11923,5,1488,0,0,11805,11807,5,288,0,0,11806,11808,
	5,48,0,0,11807,11806,1,0,0,0,11807,11808,1,0,0,0,11808,11809,1,0,0,0,11809,
	11923,5,1496,0,0,11810,11811,7,159,0,0,11811,11812,5,48,0,0,11812,11923,
	5,1496,0,0,11813,11814,7,160,0,0,11814,11923,5,1506,0,0,11815,11816,5,39,
	0,0,11816,11817,5,1415,0,0,11817,11923,5,279,0,0,11818,11820,5,288,0,0,
	11819,11821,5,48,0,0,11820,11819,1,0,0,0,11820,11821,1,0,0,0,11821,11822,
	1,0,0,0,11822,11823,5,1557,0,0,11823,11824,5,1975,0,0,11824,11923,5,1316,
	0,0,11825,11826,7,161,0,0,11826,11827,5,48,0,0,11827,11828,5,1557,0,0,11828,
	11829,5,1975,0,0,11829,11923,5,1316,0,0,11830,11831,5,1974,0,0,11831,11832,
	5,48,0,0,11832,11923,5,1557,0,0,11833,11835,5,288,0,0,11834,11836,5,48,
	0,0,11835,11834,1,0,0,0,11835,11836,1,0,0,0,11836,11837,1,0,0,0,11837,11923,
	5,1627,0,0,11838,11839,5,411,0,0,11839,11840,5,48,0,0,11840,11923,5,1627,
	0,0,11841,11842,7,148,0,0,11842,11843,5,1324,0,0,11843,11923,5,1627,0,0,
	11844,11846,5,288,0,0,11845,11847,5,48,0,0,11846,11845,1,0,0,0,11846,11847,
	1,0,0,0,11847,11848,1,0,0,0,11848,11923,5,1912,0,0,11849,11850,7,162,0,
	0,11850,11851,5,48,0,0,11851,11923,5,1912,0,0,11852,11853,7,163,0,0,11853,
	11923,5,1909,0,0,11854,11856,5,288,0,0,11855,11857,5,48,0,0,11856,11855,
	1,0,0,0,11856,11857,1,0,0,0,11857,11858,1,0,0,0,11858,11923,5,1978,0,0,
	11859,11860,7,147,0,0,11860,11861,5,48,0,0,11861,11923,5,1978,0,0,11862,
	11863,5,24,0,0,11863,11864,5,316,0,0,11864,11923,5,1978,0,0,11865,11867,
	5,288,0,0,11866,11868,5,48,0,0,11867,11866,1,0,0,0,11867,11868,1,0,0,0,
	11868,11869,1,0,0,0,11869,11923,5,1987,0,0,11870,11871,7,164,0,0,11871,
	11872,5,48,0,0,11872,11923,5,1987,0,0,11873,11874,7,146,0,0,11874,11923,
	5,2055,0,0,11875,11877,5,288,0,0,11876,11878,5,48,0,0,11877,11876,1,0,0,
	0,11877,11878,1,0,0,0,11878,11879,1,0,0,0,11879,11923,5,2099,0,0,11880,
	11881,7,165,0,0,11881,11882,5,48,0,0,11882,11923,5,2099,0,0,11883,11884,
	7,166,0,0,11884,11923,5,48,0,0,11885,11886,5,100,0,0,11886,11923,5,2055,
	0,0,11887,11888,5,172,0,0,11888,11923,5,1072,0,0,11889,11890,5,476,0,0,
	11890,11891,5,3,0,0,11891,11923,5,1267,0,0,11892,11894,5,542,0,0,11893,
	11895,5,48,0,0,11894,11893,1,0,0,0,11894,11895,1,0,0,0,11895,11896,1,0,
	0,0,11896,11923,5,1970,0,0,11897,11898,5,571,0,0,11898,11900,5,48,0,0,11899,
	11901,5,1107,0,0,11900,11899,1,0,0,0,11900,11901,1,0,0,0,11901,11902,1,
	0,0,0,11902,11923,5,1311,0,0,11903,11904,5,651,0,0,11904,11905,5,48,0,0,
	11905,11923,5,1312,0,0,11906,11907,5,720,0,0,11907,11908,5,327,0,0,11908,
	11923,5,1937,0,0,11909,11910,5,720,0,0,11910,11923,5,1662,0,0,11911,11912,
	5,1326,0,0,11912,11923,5,332,0,0,11913,11923,5,1426,0,0,11914,11915,5,1490,
	0,0,11915,11916,5,48,0,0,11916,11923,7,167,0,0,11917,11923,5,1631,0,0,11918,
	11923,5,1637,0,0,11919,11923,5,1639,0,0,11920,11923,5,1663,0,0,11921,11923,
	5,1698,0,0,11922,11596,1,0,0,0,11922,11598,1,0,0,0,11922,11599,1,0,0,0,
	11922,11606,1,0,0,0,11922,11610,1,0,0,0,11922,11614,1,0,0,0,11922,11619,
	1,0,0,0,11922,11622,1,0,0,0,11922,11625,1,0,0,0,11922,11628,1,0,0,0,11922,
	11630,1,0,0,0,11922,11636,1,0,0,0,11922,11640,1,0,0,0,11922,11643,1,0,0,
	0,11922,11646,1,0,0,0,11922,11649,1,0,0,0,11922,11654,1,0,0,0,11922,11657,
	1,0,0,0,11922,11660,1,0,0,0,11922,11663,1,0,0,0,11922,11670,1,0,0,0,11922,
	11673,1,0,0,0,11922,11678,1,0,0,0,11922,11681,1,0,0,0,11922,11686,1,0,0,
	0,11922,11689,1,0,0,0,11922,11691,1,0,0,0,11922,11694,1,0,0,0,11922,11699,
	1,0,0,0,11922,11702,1,0,0,0,11922,11703,1,0,0,0,11922,11709,1,0,0,0,11922,
	11714,1,0,0,0,11922,11718,1,0,0,0,11922,11721,1,0,0,0,11922,11727,1,0,0,
	0,11922,11731,1,0,0,0,11922,11736,1,0,0,0,11922,11739,1,0,0,0,11922,11745,
	1,0,0,0,11922,11749,1,0,0,0,11922,11755,1,0,0,0,11922,11759,1,0,0,0,11922,
	11766,1,0,0,0,11922,11771,1,0,0,0,11922,11776,1,0,0,0,11922,11779,1,0,0,
	0,11922,11782,1,0,0,0,11922,11785,1,0,0,0,11922,11787,1,0,0,0,11922,11792,
	1,0,0,0,11922,11795,1,0,0,0,11922,11797,1,0,0,0,11922,11799,1,0,0,0,11922,
	11802,1,0,0,0,11922,11805,1,0,0,0,11922,11810,1,0,0,0,11922,11813,1,0,0,
	0,11922,11815,1,0,0,0,11922,11818,1,0,0,0,11922,11825,1,0,0,0,11922,11830,
	1,0,0,0,11922,11833,1,0,0,0,11922,11838,1,0,0,0,11922,11841,1,0,0,0,11922,
	11844,1,0,0,0,11922,11849,1,0,0,0,11922,11852,1,0,0,0,11922,11854,1,0,0,
	0,11922,11859,1,0,0,0,11922,11862,1,0,0,0,11922,11865,1,0,0,0,11922,11870,
	1,0,0,0,11922,11873,1,0,0,0,11922,11875,1,0,0,0,11922,11880,1,0,0,0,11922,
	11883,1,0,0,0,11922,11885,1,0,0,0,11922,11887,1,0,0,0,11922,11889,1,0,0,
	0,11922,11892,1,0,0,0,11922,11897,1,0,0,0,11922,11903,1,0,0,0,11922,11906,
	1,0,0,0,11922,11909,1,0,0,0,11922,11911,1,0,0,0,11922,11913,1,0,0,0,11922,
	11914,1,0,0,0,11922,11917,1,0,0,0,11922,11918,1,0,0,0,11922,11919,1,0,0,
	0,11922,11920,1,0,0,0,11922,11921,1,0,0,0,11923,1477,1,0,0,0,11924,11927,
	5,1933,0,0,11925,11928,3,1484,742,0,11926,11928,3,1466,733,0,11927,11925,
	1,0,0,0,11927,11926,1,0,0,0,11928,11933,1,0,0,0,11929,11930,5,74,0,0,11930,
	11931,5,1937,0,0,11931,11932,5,2173,0,0,11932,11934,3,1484,742,0,11933,
	11929,1,0,0,0,11933,11934,1,0,0,0,11934,11987,1,0,0,0,11935,11939,5,689,
	0,0,11936,11940,3,1484,742,0,11937,11940,3,1466,733,0,11938,11940,3,1470,
	735,0,11939,11936,1,0,0,0,11939,11937,1,0,0,0,11939,11938,1,0,0,0,11940,
	11941,1,0,0,0,11941,11955,7,168,0,0,11942,11945,5,2223,0,0,11943,11946,
	5,2217,0,0,11944,11946,3,1466,733,0,11945,11943,1,0,0,0,11945,11944,1,0,
	0,0,11946,11952,1,0,0,0,11947,11950,5,2229,0,0,11948,11951,5,2217,0,0,11949,
	11951,3,1466,733,0,11950,11948,1,0,0,0,11950,11949,1,0,0,0,11951,11953,
	1,0,0,0,11952,11947,1,0,0,0,11952,11953,1,0,0,0,11953,11954,1,0,0,0,11954,
	11956,5,2224,0,0,11955,11942,1,0,0,0,11955,11956,1,0,0,0,11956,11972,1,
	0,0,0,11957,11970,5,1964,0,0,11958,11971,5,329,0,0,11959,11971,5,598,0,
	0,11960,11971,5,844,0,0,11961,11968,5,1480,0,0,11962,11965,5,2223,0,0,11963,
	11966,5,2217,0,0,11964,11966,3,1466,733,0,11965,11963,1,0,0,0,11965,11964,
	1,0,0,0,11966,11967,1,0,0,0,11967,11969,5,2224,0,0,11968,11962,1,0,0,0,
	11968,11969,1,0,0,0,11969,11971,1,0,0,0,11970,11958,1,0,0,0,11970,11959,
	1,0,0,0,11970,11960,1,0,0,0,11970,11961,1,0,0,0,11971,11973,1,0,0,0,11972,
	11957,1,0,0,0,11972,11973,1,0,0,0,11973,11987,1,0,0,0,11974,11987,3,1480,
	740,0,11975,11976,5,327,0,0,11976,11987,3,1484,742,0,11977,11987,3,1484,
	742,0,11978,11987,5,1097,0,0,11979,11987,5,1979,0,0,11980,11987,5,508,0,
	0,11981,11987,5,335,0,0,11982,11987,5,1508,0,0,11983,11987,5,845,0,0,11984,
	11987,5,822,0,0,11985,11987,5,351,0,0,11986,11924,1,0,0,0,11986,11935,1,
	0,0,0,11986,11974,1,0,0,0,11986,11975,1,0,0,0,11986,11977,1,0,0,0,11986,
	11978,1,0,0,0,11986,11979,1,0,0,0,11986,11980,1,0,0,0,11986,11981,1,0,0,
	0,11986,11982,1,0,0,0,11986,11983,1,0,0,0,11986,11984,1,0,0,0,11986,11985,
	1,0,0,0,11987,1479,1,0,0,0,11988,11989,7,169,0,0,11989,1481,1,0,0,0,11990,
	11991,5,2228,0,0,11991,11992,3,1480,740,0,11992,1483,1,0,0,0,11993,11994,
	7,170,0,0,11994,1485,1,0,0,0,11995,11996,5,2246,0,0,11996,11998,3,1430,
	715,0,11997,11995,1,0,0,0,11997,11998,1,0,0,0,11998,11999,1,0,0,0,11999,
	12000,3,1488,744,0,12000,1487,1,0,0,0,12001,12004,3,1492,746,0,12002,12004,
	5,2220,0,0,12003,12001,1,0,0,0,12003,12002,1,0,0,0,12004,1489,1,0,0,0,12005,
	12006,5,2223,0,0,12006,12007,5,2227,0,0,12007,12008,5,2224,0,0,12008,1491,
	1,0,0,0,12009,12085,3,1496,748,0,12010,12085,3,1494,747,0,12011,12085,5,
	2252,0,0,12012,12085,5,33,0,0,12013,12085,5,31,0,0,12014,12085,5,32,0,0,
	12015,12085,5,41,0,0,12016,12085,5,88,0,0,12017,12085,5,97,0,0,12018,12085,
	5,118,0,0,12019,12085,5,134,0,0,12020,12085,5,190,0,0,12021,12085,5,176,
	0,0,12022,12085,5,197,0,0,12023,12085,5,259,0,0,12024,12085,5,312,0,0,12025,
	12085,5,343,0,0,12026,12085,5,362,0,0,12027,12085,5,375,0,0,12028,12085,
	5,413,0,0,12029,12085,5,454,0,0,12030,12085,5,468,0,0,12031,12085,5,469,
	0,0,12032,12085,5,470,0,0,12033,12085,5,478,0,0,12034,12085,5,480,0,0,12035,
	12085,5,534,0,0,12036,12085,5,541,0,0,12037,12085,5,648,0,0,12038,12085,
	5,664,0,0,12039,12085,5,682,0,0,12040,12085,5,729,0,0,12041,12085,5,788,
	0,0,12042,12085,5,789,0,0,12043,12085,5,1099,0,0,12044,12085,5,1147,0,0,
	12045,12085,5,1174,0,0,12046,12085,5,1182,0,0,12047,12085,5,1187,0,0,12048,
	12085,5,1193,0,0,12049,12085,5,1250,0,0,12050,12085,5,1259,0,0,12051,12085,
	5,1274,0,0,12052,12085,5,1273,0,0,12053,12085,5,1287,0,0,12054,12085,5,
	1341,0,0,12055,12085,5,1347,0,0,12056,12085,5,1359,0,0,12057,12085,5,1376,
	0,0,12058,12085,5,1404,0,0,12059,12085,5,1422,0,0,12060,12085,5,1425,0,
	0,12061,12085,5,1491,0,0,12062,12085,5,1500,0,0,12063,12085,5,1510,0,0,
	12064,12085,5,1528,0,0,12065,12085,5,1529,0,0,12066,12085,5,1541,0,0,12067,
	12085,5,1554,0,0,12068,12085,5,1555,0,0,12069,12085,5,1616,0,0,12070,12085,
	5,1932,0,0,12071,12085,5,1934,0,0,12072,12085,5,1935,0,0,12073,12085,5,
	1978,0,0,12074,12085,5,2076,0,0,12075,12085,5,2075,0,0,12076,12085,5,2077,
	0,0,12077,12085,5,2108,0,0,12078,12085,5,2115,0,0,12079,12085,5,2131,0,
	0,12080,12085,5,2171,0,0,12081,12085,5,2199,0,0,12082,12085,5,2207,0,0,
	12083,12085,5,2189,0,0,12084,12009,1,0,0,0,12084,12010,1,0,0,0,12084,12011,
	1,0,0,0,12084,12012,1,0,0,0,12084,12013,1,0,0,0,12084,12014,1,0,0,0,12084,
	12015,1,0,0,0,12084,12016,1,0,0,0,12084,12017,1,0,0,0,12084,12018,1,0,0,
	0,12084,12019,1,0,0,0,12084,12020,1,0,0,0,12084,12021,1,0,0,0,12084,12022,
	1,0,0,0,12084,12023,1,0,0,0,12084,12024,1,0,0,0,12084,12025,1,0,0,0,12084,
	12026,1,0,0,0,12084,12027,1,0,0,0,12084,12028,1,0,0,0,12084,12029,1,0,0,
	0,12084,12030,1,0,0,0,12084,12031,1,0,0,0,12084,12032,1,0,0,0,12084,12033,
	1,0,0,0,12084,12034,1,0,0,0,12084,12035,1,0,0,0,12084,12036,1,0,0,0,12084,
	12037,1,0,0,0,12084,12038,1,0,0,0,12084,12039,1,0,0,0,12084,12040,1,0,0,
	0,12084,12041,1,0,0,0,12084,12042,1,0,0,0,12084,12043,1,0,0,0,12084,12044,
	1,0,0,0,12084,12045,1,0,0,0,12084,12046,1,0,0,0,12084,12047,1,0,0,0,12084,
	12048,1,0,0,0,12084,12049,1,0,0,0,12084,12050,1,0,0,0,12084,12051,1,0,0,
	0,12084,12052,1,0,0,0,12084,12053,1,0,0,0,12084,12054,1,0,0,0,12084,12055,
	1,0,0,0,12084,12056,1,0,0,0,12084,12057,1,0,0,0,12084,12058,1,0,0,0,12084,
	12059,1,0,0,0,12084,12060,1,0,0,0,12084,12061,1,0,0,0,12084,12062,1,0,0,
	0,12084,12063,1,0,0,0,12084,12064,1,0,0,0,12084,12065,1,0,0,0,12084,12066,
	1,0,0,0,12084,12067,1,0,0,0,12084,12068,1,0,0,0,12084,12069,1,0,0,0,12084,
	12070,1,0,0,0,12084,12071,1,0,0,0,12084,12072,1,0,0,0,12084,12073,1,0,0,
	0,12084,12074,1,0,0,0,12084,12075,1,0,0,0,12084,12076,1,0,0,0,12084,12077,
	1,0,0,0,12084,12078,1,0,0,0,12084,12079,1,0,0,0,12084,12080,1,0,0,0,12084,
	12081,1,0,0,0,12084,12082,1,0,0,0,12084,12083,1,0,0,0,12085,1493,1,0,0,
	0,12086,12087,7,171,0,0,12087,1495,1,0,0,0,12088,12089,7,172,0,0,12089,
	1497,1,0,0,0,12090,12091,7,173,0,0,12091,1499,1,0,0,0,12092,12093,7,174,
	0,0,12093,1501,1,0,0,0,1642,1507,1510,1514,1575,1587,1592,1597,1604,1614,
	1619,1627,1629,1633,1637,1640,1644,1649,1655,1664,1667,1673,1682,1695,1700,
	1710,1713,1718,1723,1730,1736,1740,1746,1751,1758,1765,1772,1777,1781,1793,
	1803,1808,1820,1825,1830,1833,1836,1849,1861,1866,1871,1883,1888,1896,1898,
	1902,1905,1909,1912,1916,1921,1933,1938,1942,1945,1950,1957,1967,1972,1975,
	1979,1982,1987,2005,2010,2015,2017,2024,2031,2034,2037,2040,2051,2063,2067,
	2070,2079,2087,2095,2098,2105,2109,2114,2119,2160,2188,2195,2200,2207,2218,
	2226,2230,2243,2246,2252,2255,2260,2265,2269,2279,2289,2295,2306,2311,2315,
	2323,2331,2336,2339,2341,2344,2353,2358,2365,2368,2371,2375,2378,2386,2391,
	2396,2403,2413,2429,2436,2446,2456,2463,2466,2471,2481,2486,2493,2496,2501,
	2504,2507,2524,2529,2538,2541,2546,2549,2556,2559,2566,2571,2575,2580,2585,
	2599,2604,2611,2614,2618,2621,2624,2627,2637,2643,2653,2658,2665,2671,2675,
	2678,2681,2698,2703,2711,2725,2732,2748,2770,2777,2779,2783,2794,2796,2817,
	2825,2833,2836,2843,2848,2854,2859,2864,2868,2873,2879,2883,2888,2892,2896,
	2909,2914,2917,2921,2926,2928,2934,2936,2940,2943,2950,2961,2971,2975,2980,
	2984,2988,2991,3002,3007,3019,3034,3040,3042,3046,3057,3062,3069,3077,3088,
	3095,3099,3101,3105,3115,3126,3131,3135,3139,3142,3145,3155,3160,3168,3175,
	3179,3181,3186,3196,3207,3212,3216,3220,3223,3226,3233,3242,3252,3254,3277,
	3290,3304,3306,3317,3325,3331,3334,3339,3343,3346,3349,3354,3362,3374,3381,
	3388,3407,3418,3421,3427,3429,3436,3439,3441,3449,3469,3471,3489,3491,3500,
	3506,3511,3521,3530,3543,3553,3558,3561,3567,3585,3588,3591,3599,3612,3614,
	3618,3626,3628,3630,3632,3640,3651,3662,3664,3671,3674,3679,3686,3690,3693,
	3709,3714,3728,3733,3735,3744,3752,3755,3758,3761,3764,3766,3772,3783,3786,
	3801,3812,3821,3830,3839,3848,3851,3857,3862,3864,3871,3913,3916,3920,3923,
	3934,3943,3946,3948,3960,3965,3969,3973,3976,3979,3995,3997,4003,4005,4009,
	4015,4021,4025,4028,4036,4046,4050,4069,4074,4081,4088,4162,4177,4183,4185,
	4189,4193,4198,4203,4207,4213,4218,4223,4226,4237,4254,4259,4264,4267,4286,
	4312,4317,4323,4325,4335,4338,4341,4344,4347,4352,4357,4361,4365,4371,4375,
	4379,4395,4399,4403,4407,4412,4416,4422,4427,4430,4438,4441,4450,4454,4456,
	4475,4481,4486,4491,4493,4497,4506,4519,4530,4533,4536,4545,4547,4554,4557,
	4569,4584,4591,4597,4601,4607,4611,4620,4629,4634,4638,4642,4648,4655,4661,
	4670,4675,4682,4699,4701,4716,4718,4729,4732,4735,4741,4744,4747,4754,4760,
	4765,4769,4772,4775,4781,4786,4789,4793,4797,4800,4807,4810,4812,4817,4825,
	4827,4841,4849,4858,4861,4866,4869,4878,4900,4906,4911,4913,4923,4932,4944,
	4947,4950,4962,4971,4979,4984,4992,4997,5000,5021,5023,5025,5028,5032,5042,
	5046,5051,5056,5060,5062,5065,5069,5079,5087,5095,5098,5101,5104,5107,5109,
	5116,5118,5122,5128,5131,5135,5140,5155,5161,5166,5171,5176,5181,5183,5185,
	5190,5198,5205,5218,5224,5228,5240,5247,5249,5251,5255,5258,5261,5268,5275,
	5279,5289,5293,5296,5299,5305,5308,5311,5314,5317,5320,5323,5330,5333,5336,
	5341,5343,5346,5349,5368,5375,5379,5382,5389,5394,5401,5407,5409,5415,5419,
	5426,5431,5436,5444,5449,5455,5458,5461,5464,5467,5470,5473,5480,5483,5486,
	5491,5493,5496,5499,5503,5509,5511,5522,5526,5530,5537,5541,5546,5549,5562,
	5567,5573,5576,5579,5582,5585,5592,5595,5598,5603,5605,5608,5611,5618,5628,
	5639,5655,5660,5662,5667,5674,5681,5695,5702,5709,5723,5729,5734,5737,5742,
	5745,5749,5764,5769,5773,5784,5789,5802,5818,5823,5825,5830,5838,5852,5860,
	5873,5879,5883,5897,5902,5906,5920,5923,5927,5937,5945,5953,5956,5961,5963,
	5967,5977,5985,5993,5996,6001,6003,6013,6021,6029,6032,6037,6050,6055,6064,
	6075,6089,6094,6097,6103,6107,6111,6115,6119,6122,6134,6139,6150,6162,6166,
	6171,6174,6178,6182,6184,6189,6196,6206,6211,6213,6222,6230,6237,6242,6246,
	6251,6256,6259,6262,6265,6267,6271,6274,6278,6286,6288,6290,6293,6302,6304,
	6326,6333,6335,6347,6349,6352,6356,6359,6370,6379,6386,6390,6399,6407,6411,
	6414,6422,6428,6432,6437,6442,6450,6454,6468,6470,6473,6479,6484,6487,6490,
	6496,6507,6516,6534,6543,6548,6553,6559,6566,6571,6573,6591,6593,6596,6607,
	6618,6625,6630,6633,6636,6641,6652,6658,6662,6668,6675,6677,6679,6683,6686,
	6689,6699,6704,6706,6708,6716,6725,6727,6731,6741,6750,6752,6755,6760,6774,
	6783,6785,6789,6797,6799,6810,6819,6825,6830,6834,6839,6844,6849,6853,6860,
	6867,6872,6877,6881,6892,6896,6899,6902,6913,6921,6929,6934,6940,6944,6952,
	6957,6962,6966,6975,6978,6981,6985,6992,7000,7009,7012,7027,7044,7050,7054,
	7061,7068,7071,7073,7079,7081,7084,7093,7096,7100,7106,7118,7128,7132,7135,
	7138,7143,7147,7151,7154,7161,7164,7171,7177,7205,7215,7225,7227,7235,7267,
	7275,7277,7279,7281,7296,7315,7317,7320,7326,7332,7340,7342,7344,7349,7354,
	7359,7363,7367,7371,7380,7389,7392,7395,7398,7402,7412,7419,7426,7428,7438,
	7441,7444,7447,7451,7453,7455,7458,7464,7467,7472,7477,7481,7485,7491,7516,
	7518,7530,7535,7540,7542,7554,7559,7564,7566,7571,7578,7582,7591,7598,7602,
	7606,7611,7616,7620,7625,7632,7638,7643,7647,7654,7656,7659,7671,7675,7680,
	7684,7691,7701,7704,7713,7724,7726,7739,7741,7743,7770,7773,7778,7780,7802,
	7805,7807,7809,7816,7818,7826,7830,7835,7838,7841,7844,7851,7856,7864,7867,
	7879,7888,7891,7895,7900,7905,7908,7911,7914,7916,7921,7925,7929,7932,7935,
	7940,7949,7951,7963,7966,7969,7981,7983,7987,7991,7994,7999,8004,8011,8017,
	8025,8038,8042,8049,8053,8067,8072,8076,8087,8089,8107,8112,8115,8118,8123,
	8125,8130,8136,8141,8147,8154,8173,8184,8189,8195,8199,8207,8209,8220,8229,
	8234,8238,8241,8255,8263,8267,8270,8278,8290,8294,8299,8302,8315,8319,8331,
	8336,8340,8344,8350,8353,8356,8383,8389,8393,8404,8411,8415,8418,8424,8433,
	8441,8445,8449,8457,8466,8472,8474,8499,8504,8508,8515,8519,8523,8527,8539,
	8543,8557,8563,8570,8575,8586,8589,8595,8597,8606,8616,8621,8636,8640,8643,
	8647,8651,8665,8667,8671,8679,8686,8691,8693,8698,8703,8711,8718,8722,8725,
	8737,8743,8752,8755,8765,8776,8779,8786,8789,8796,8807,8813,8817,8827,8830,
	8836,8847,8849,8851,8854,8858,8861,8865,8869,8874,8885,8889,8897,8900,8909,
	8911,8920,8925,8931,8935,8938,8946,8949,8953,8957,8962,8965,8969,8973,8977,
	8996,9004,9008,9012,9018,9022,9026,9029,9032,9035,9038,9046,9049,9060,9062,
	9069,9076,9081,9087,9091,9096,9103,9109,9116,9119,9122,9126,9131,9135,9137,
	9148,9155,9159,9169,9173,9181,9193,9198,9208,9216,9219,9225,9230,9233,9238,
	9243,9256,9263,9273,9278,9280,9285,9289,9295,9299,9312,9316,9326,9329,9331,
	9336,9345,9358,9366,9370,9379,9383,9388,9399,9401,9417,9422,9428,9434,9452,
	9459,9462,9465,9473,9476,9484,9486,9490,9493,9498,9500,9504,9516,9525,9533,
	9538,9542,9552,9554,9560,9565,9568,9578,9584,9587,9590,9598,9608,9618,9622,
	9626,9629,9632,9637,9642,9645,9648,9654,9657,9663,9666,9669,9674,9677,9685,
	9691,9696,9701,9709,9719,9723,9725,9728,9740,9744,9747,9762,9767,9771,9778,
	9781,9790,9797,9802,9806,9814,9820,9828,9831,9840,9843,9846,9855,9861,9867,
	9869,9880,9882,9891,9893,9897,9903,9907,9921,9926,9942,9944,9948,9953,9958,
	9970,9974,9981,9986,9991,9994,10005,10010,10020,10022,10024,10034,10038,
	10040,10052,10060,10073,10076,10088,10090,10098,10106,10113,10117,10124,
	10128,10133,10137,10145,10149,10156,10161,10170,10179,10182,10202,10206,
	10209,10216,10219,10223,10226,10233,10236,10242,10245,10249,10252,10259,
	10264,10278,10285,10296,10305,10314,10318,10322,10348,10351,10354,10364,
	10368,10373,10379,10384,10389,10398,10401,10403,10407,10414,10421,10429,
	10444,10449,10454,10460,10463,10467,10477,10489,10491,10498,10502,10511,
	10520,10534,10542,10545,10554,10560,10570,10578,10581,10584,10593,10598,
	10607,10613,10618,10621,10626,10631,10635,10641,10647,10656,10661,10669,
	10673,10678,10684,10691,10696,10703,10707,10712,10720,10723,10726,10729,
	10733,10738,10741,10752,10756,10758,10769,10780,10789,10792,10796,10799,
	10814,10819,10827,10834,10838,10843,10847,10852,10856,10862,10865,10872,
	10882,10890,10894,10904,10907,10909,10919,10921,10927,10933,10935,10949,
	10951,10961,10970,10975,10984,10988,10992,10997,11001,11004,11008,11015,
	11019,11027,11032,11051,11056,11063,11074,11081,11088,11092,11099,11104,
	11113,11121,11129,11135,11140,11145,11149,11154,11157,11162,11166,11170,
	11175,11184,11190,11195,11199,11201,11208,11212,11220,11223,11228,11235,
	11253,11270,11277,11291,11299,11302,11306,11311,11316,11320,11323,11327,
	11334,11339,11341,11343,11353,11358,11362,11365,11369,11378,11384,11388,
	11390,11394,11398,11405,11413,11421,11423,11428,11432,11435,11459,11466,
	11499,11504,11507,11512,11514,11520,11528,11533,11540,11545,11548,11552,
	11559,11564,11594,11601,11616,11632,11651,11668,11675,11683,11696,11705,
	11714,11723,11733,11741,11751,11761,11773,11789,11807,11820,11835,11846,
	11856,11867,11877,11894,11900,11922,11927,11933,11939,11945,11950,11952,
	11955,11965,11968,11970,11972,11986,11997,12003,12084];

	private static __ATN: ATN;
	public static get _ATN(): ATN {
		if (!PlSqlParser.__ATN) {
			PlSqlParser.__ATN = new ATNDeserializer().deserialize(PlSqlParser._serializedATN);
		}

		return PlSqlParser.__ATN;
	}


	static DecisionsToDFA = PlSqlParser._ATN.decisionToState.map( (ds: DecisionState, index: number) => new DFA(ds, index) );

}

export class ProgramContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public sql_script(): Sql_scriptContext {
		return this.getTypedRuleContext(Sql_scriptContext, 0) as Sql_scriptContext;
	}
	public EOF(): TerminalNode {
		return this.getToken(PlSqlParser.EOF, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_program;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterProgram) {
	 		listener.enterProgram(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitProgram) {
	 		listener.exitProgram(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitProgram) {
			return visitor.visitProgram(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Sql_scriptContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public EOF(): TerminalNode {
		return this.getToken(PlSqlParser.EOF, 0);
	}
	public unit_statement_list(): Unit_statementContext[] {
		return this.getTypedRuleContexts(Unit_statementContext) as Unit_statementContext[];
	}
	public unit_statement(i: number): Unit_statementContext {
		return this.getTypedRuleContext(Unit_statementContext, i) as Unit_statementContext;
	}
	public sql_plus_command_list(): Sql_plus_commandContext[] {
		return this.getTypedRuleContexts(Sql_plus_commandContext) as Sql_plus_commandContext[];
	}
	public sql_plus_command(i: number): Sql_plus_commandContext {
		return this.getTypedRuleContext(Sql_plus_commandContext, i) as Sql_plus_commandContext;
	}
	public SEMICOLON_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.SEMICOLON);
	}
	public SEMICOLON(i: number): TerminalNode {
		return this.getToken(PlSqlParser.SEMICOLON, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_sql_script;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterSql_script) {
	 		listener.enterSql_script(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitSql_script) {
	 		listener.exitSql_script(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitSql_script) {
			return visitor.visitSql_script(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Unit_statementContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public transaction_control_statements(): Transaction_control_statementsContext {
		return this.getTypedRuleContext(Transaction_control_statementsContext, 0) as Transaction_control_statementsContext;
	}
	public alter_cluster(): Alter_clusterContext {
		return this.getTypedRuleContext(Alter_clusterContext, 0) as Alter_clusterContext;
	}
	public alter_database(): Alter_databaseContext {
		return this.getTypedRuleContext(Alter_databaseContext, 0) as Alter_databaseContext;
	}
	public alter_function(): Alter_functionContext {
		return this.getTypedRuleContext(Alter_functionContext, 0) as Alter_functionContext;
	}
	public alter_package(): Alter_packageContext {
		return this.getTypedRuleContext(Alter_packageContext, 0) as Alter_packageContext;
	}
	public alter_procedure(): Alter_procedureContext {
		return this.getTypedRuleContext(Alter_procedureContext, 0) as Alter_procedureContext;
	}
	public alter_sequence(): Alter_sequenceContext {
		return this.getTypedRuleContext(Alter_sequenceContext, 0) as Alter_sequenceContext;
	}
	public alter_session(): Alter_sessionContext {
		return this.getTypedRuleContext(Alter_sessionContext, 0) as Alter_sessionContext;
	}
	public alter_trigger(): Alter_triggerContext {
		return this.getTypedRuleContext(Alter_triggerContext, 0) as Alter_triggerContext;
	}
	public alter_type(): Alter_typeContext {
		return this.getTypedRuleContext(Alter_typeContext, 0) as Alter_typeContext;
	}
	public alter_table(): Alter_tableContext {
		return this.getTypedRuleContext(Alter_tableContext, 0) as Alter_tableContext;
	}
	public alter_tablespace(): Alter_tablespaceContext {
		return this.getTypedRuleContext(Alter_tablespaceContext, 0) as Alter_tablespaceContext;
	}
	public alter_index(): Alter_indexContext {
		return this.getTypedRuleContext(Alter_indexContext, 0) as Alter_indexContext;
	}
	public alter_library(): Alter_libraryContext {
		return this.getTypedRuleContext(Alter_libraryContext, 0) as Alter_libraryContext;
	}
	public alter_materialized_view(): Alter_materialized_viewContext {
		return this.getTypedRuleContext(Alter_materialized_viewContext, 0) as Alter_materialized_viewContext;
	}
	public alter_materialized_view_log(): Alter_materialized_view_logContext {
		return this.getTypedRuleContext(Alter_materialized_view_logContext, 0) as Alter_materialized_view_logContext;
	}
	public alter_user(): Alter_userContext {
		return this.getTypedRuleContext(Alter_userContext, 0) as Alter_userContext;
	}
	public alter_view(): Alter_viewContext {
		return this.getTypedRuleContext(Alter_viewContext, 0) as Alter_viewContext;
	}
	public analyze(): AnalyzeContext {
		return this.getTypedRuleContext(AnalyzeContext, 0) as AnalyzeContext;
	}
	public associate_statistics(): Associate_statisticsContext {
		return this.getTypedRuleContext(Associate_statisticsContext, 0) as Associate_statisticsContext;
	}
	public audit_traditional(): Audit_traditionalContext {
		return this.getTypedRuleContext(Audit_traditionalContext, 0) as Audit_traditionalContext;
	}
	public unified_auditing(): Unified_auditingContext {
		return this.getTypedRuleContext(Unified_auditingContext, 0) as Unified_auditingContext;
	}
	public create_function_body(): Create_function_bodyContext {
		return this.getTypedRuleContext(Create_function_bodyContext, 0) as Create_function_bodyContext;
	}
	public create_procedure_body(): Create_procedure_bodyContext {
		return this.getTypedRuleContext(Create_procedure_bodyContext, 0) as Create_procedure_bodyContext;
	}
	public create_package(): Create_packageContext {
		return this.getTypedRuleContext(Create_packageContext, 0) as Create_packageContext;
	}
	public create_package_body(): Create_package_bodyContext {
		return this.getTypedRuleContext(Create_package_bodyContext, 0) as Create_package_bodyContext;
	}
	public create_index(): Create_indexContext {
		return this.getTypedRuleContext(Create_indexContext, 0) as Create_indexContext;
	}
	public create_table(): Create_tableContext {
		return this.getTypedRuleContext(Create_tableContext, 0) as Create_tableContext;
	}
	public create_tablespace(): Create_tablespaceContext {
		return this.getTypedRuleContext(Create_tablespaceContext, 0) as Create_tablespaceContext;
	}
	public create_cluster(): Create_clusterContext {
		return this.getTypedRuleContext(Create_clusterContext, 0) as Create_clusterContext;
	}
	public create_context(): Create_contextContext {
		return this.getTypedRuleContext(Create_contextContext, 0) as Create_contextContext;
	}
	public create_view(): Create_viewContext {
		return this.getTypedRuleContext(Create_viewContext, 0) as Create_viewContext;
	}
	public create_directory(): Create_directoryContext {
		return this.getTypedRuleContext(Create_directoryContext, 0) as Create_directoryContext;
	}
	public create_materialized_view(): Create_materialized_viewContext {
		return this.getTypedRuleContext(Create_materialized_viewContext, 0) as Create_materialized_viewContext;
	}
	public create_materialized_view_log(): Create_materialized_view_logContext {
		return this.getTypedRuleContext(Create_materialized_view_logContext, 0) as Create_materialized_view_logContext;
	}
	public create_user(): Create_userContext {
		return this.getTypedRuleContext(Create_userContext, 0) as Create_userContext;
	}
	public create_sequence(): Create_sequenceContext {
		return this.getTypedRuleContext(Create_sequenceContext, 0) as Create_sequenceContext;
	}
	public create_trigger(): Create_triggerContext {
		return this.getTypedRuleContext(Create_triggerContext, 0) as Create_triggerContext;
	}
	public create_type(): Create_typeContext {
		return this.getTypedRuleContext(Create_typeContext, 0) as Create_typeContext;
	}
	public create_synonym(): Create_synonymContext {
		return this.getTypedRuleContext(Create_synonymContext, 0) as Create_synonymContext;
	}
	public drop_function(): Drop_functionContext {
		return this.getTypedRuleContext(Drop_functionContext, 0) as Drop_functionContext;
	}
	public drop_package(): Drop_packageContext {
		return this.getTypedRuleContext(Drop_packageContext, 0) as Drop_packageContext;
	}
	public drop_procedure(): Drop_procedureContext {
		return this.getTypedRuleContext(Drop_procedureContext, 0) as Drop_procedureContext;
	}
	public drop_sequence(): Drop_sequenceContext {
		return this.getTypedRuleContext(Drop_sequenceContext, 0) as Drop_sequenceContext;
	}
	public drop_trigger(): Drop_triggerContext {
		return this.getTypedRuleContext(Drop_triggerContext, 0) as Drop_triggerContext;
	}
	public drop_type(): Drop_typeContext {
		return this.getTypedRuleContext(Drop_typeContext, 0) as Drop_typeContext;
	}
	public data_manipulation_language_statements(): Data_manipulation_language_statementsContext {
		return this.getTypedRuleContext(Data_manipulation_language_statementsContext, 0) as Data_manipulation_language_statementsContext;
	}
	public drop_table(): Drop_tableContext {
		return this.getTypedRuleContext(Drop_tableContext, 0) as Drop_tableContext;
	}
	public drop_view(): Drop_viewContext {
		return this.getTypedRuleContext(Drop_viewContext, 0) as Drop_viewContext;
	}
	public drop_index(): Drop_indexContext {
		return this.getTypedRuleContext(Drop_indexContext, 0) as Drop_indexContext;
	}
	public rename_object(): Rename_objectContext {
		return this.getTypedRuleContext(Rename_objectContext, 0) as Rename_objectContext;
	}
	public comment_on_column(): Comment_on_columnContext {
		return this.getTypedRuleContext(Comment_on_columnContext, 0) as Comment_on_columnContext;
	}
	public comment_on_table(): Comment_on_tableContext {
		return this.getTypedRuleContext(Comment_on_tableContext, 0) as Comment_on_tableContext;
	}
	public anonymous_block(): Anonymous_blockContext {
		return this.getTypedRuleContext(Anonymous_blockContext, 0) as Anonymous_blockContext;
	}
	public grant_statement(): Grant_statementContext {
		return this.getTypedRuleContext(Grant_statementContext, 0) as Grant_statementContext;
	}
	public procedure_call(): Procedure_callContext {
		return this.getTypedRuleContext(Procedure_callContext, 0) as Procedure_callContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_unit_statement;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterUnit_statement) {
	 		listener.enterUnit_statement(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitUnit_statement) {
	 		listener.exitUnit_statement(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitUnit_statement) {
			return visitor.visitUnit_statement(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Drop_functionContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public DROP(): TerminalNode {
		return this.getToken(PlSqlParser.DROP, 0);
	}
	public FUNCTION(): TerminalNode {
		return this.getToken(PlSqlParser.FUNCTION, 0);
	}
	public function_name(): Function_nameContext {
		return this.getTypedRuleContext(Function_nameContext, 0) as Function_nameContext;
	}
	public SEMICOLON(): TerminalNode {
		return this.getToken(PlSqlParser.SEMICOLON, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_drop_function;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterDrop_function) {
	 		listener.enterDrop_function(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitDrop_function) {
	 		listener.exitDrop_function(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitDrop_function) {
			return visitor.visitDrop_function(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Alter_functionContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public ALTER(): TerminalNode {
		return this.getToken(PlSqlParser.ALTER, 0);
	}
	public FUNCTION(): TerminalNode {
		return this.getToken(PlSqlParser.FUNCTION, 0);
	}
	public function_name(): Function_nameContext {
		return this.getTypedRuleContext(Function_nameContext, 0) as Function_nameContext;
	}
	public COMPILE(): TerminalNode {
		return this.getToken(PlSqlParser.COMPILE, 0);
	}
	public SEMICOLON(): TerminalNode {
		return this.getToken(PlSqlParser.SEMICOLON, 0);
	}
	public DEBUG(): TerminalNode {
		return this.getToken(PlSqlParser.DEBUG, 0);
	}
	public compiler_parameters_clause_list(): Compiler_parameters_clauseContext[] {
		return this.getTypedRuleContexts(Compiler_parameters_clauseContext) as Compiler_parameters_clauseContext[];
	}
	public compiler_parameters_clause(i: number): Compiler_parameters_clauseContext {
		return this.getTypedRuleContext(Compiler_parameters_clauseContext, i) as Compiler_parameters_clauseContext;
	}
	public REUSE(): TerminalNode {
		return this.getToken(PlSqlParser.REUSE, 0);
	}
	public SETTINGS(): TerminalNode {
		return this.getToken(PlSqlParser.SETTINGS, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_alter_function;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterAlter_function) {
	 		listener.enterAlter_function(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitAlter_function) {
	 		listener.exitAlter_function(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitAlter_function) {
			return visitor.visitAlter_function(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Create_function_bodyContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public CREATE(): TerminalNode {
		return this.getToken(PlSqlParser.CREATE, 0);
	}
	public FUNCTION(): TerminalNode {
		return this.getToken(PlSqlParser.FUNCTION, 0);
	}
	public function_name(): Function_nameContext {
		return this.getTypedRuleContext(Function_nameContext, 0) as Function_nameContext;
	}
	public RETURN(): TerminalNode {
		return this.getToken(PlSqlParser.RETURN, 0);
	}
	public type_spec(): Type_specContext {
		return this.getTypedRuleContext(Type_specContext, 0) as Type_specContext;
	}
	public SEMICOLON(): TerminalNode {
		return this.getToken(PlSqlParser.SEMICOLON, 0);
	}
	public USING(): TerminalNode {
		return this.getToken(PlSqlParser.USING, 0);
	}
	public implementation_type_name(): Implementation_type_nameContext {
		return this.getTypedRuleContext(Implementation_type_nameContext, 0) as Implementation_type_nameContext;
	}
	public OR(): TerminalNode {
		return this.getToken(PlSqlParser.OR, 0);
	}
	public REPLACE(): TerminalNode {
		return this.getToken(PlSqlParser.REPLACE, 0);
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public parameter_list(): ParameterContext[] {
		return this.getTypedRuleContexts(ParameterContext) as ParameterContext[];
	}
	public parameter(i: number): ParameterContext {
		return this.getTypedRuleContext(ParameterContext, i) as ParameterContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public invoker_rights_clause_list(): Invoker_rights_clauseContext[] {
		return this.getTypedRuleContexts(Invoker_rights_clauseContext) as Invoker_rights_clauseContext[];
	}
	public invoker_rights_clause(i: number): Invoker_rights_clauseContext {
		return this.getTypedRuleContext(Invoker_rights_clauseContext, i) as Invoker_rights_clauseContext;
	}
	public parallel_enable_clause_list(): Parallel_enable_clauseContext[] {
		return this.getTypedRuleContexts(Parallel_enable_clauseContext) as Parallel_enable_clauseContext[];
	}
	public parallel_enable_clause(i: number): Parallel_enable_clauseContext {
		return this.getTypedRuleContext(Parallel_enable_clauseContext, i) as Parallel_enable_clauseContext;
	}
	public result_cache_clause_list(): Result_cache_clauseContext[] {
		return this.getTypedRuleContexts(Result_cache_clauseContext) as Result_cache_clauseContext[];
	}
	public result_cache_clause(i: number): Result_cache_clauseContext {
		return this.getTypedRuleContext(Result_cache_clauseContext, i) as Result_cache_clauseContext;
	}
	public DETERMINISTIC_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.DETERMINISTIC);
	}
	public DETERMINISTIC(i: number): TerminalNode {
		return this.getToken(PlSqlParser.DETERMINISTIC, i);
	}
	public PIPELINED(): TerminalNode {
		return this.getToken(PlSqlParser.PIPELINED, 0);
	}
	public AGGREGATE(): TerminalNode {
		return this.getToken(PlSqlParser.AGGREGATE, 0);
	}
	public IS(): TerminalNode {
		return this.getToken(PlSqlParser.IS, 0);
	}
	public AS(): TerminalNode {
		return this.getToken(PlSqlParser.AS, 0);
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
	public body(): BodyContext {
		return this.getTypedRuleContext(BodyContext, 0) as BodyContext;
	}
	public call_spec(): Call_specContext {
		return this.getTypedRuleContext(Call_specContext, 0) as Call_specContext;
	}
	public DECLARE(): TerminalNode {
		return this.getToken(PlSqlParser.DECLARE, 0);
	}
	public seq_of_declare_specs(): Seq_of_declare_specsContext {
		return this.getTypedRuleContext(Seq_of_declare_specsContext, 0) as Seq_of_declare_specsContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_create_function_body;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterCreate_function_body) {
	 		listener.enterCreate_function_body(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitCreate_function_body) {
	 		listener.exitCreate_function_body(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitCreate_function_body) {
			return visitor.visitCreate_function_body(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Parallel_enable_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public PARALLEL_ENABLE(): TerminalNode {
		return this.getToken(PlSqlParser.PARALLEL_ENABLE, 0);
	}
	public partition_by_clause(): Partition_by_clauseContext {
		return this.getTypedRuleContext(Partition_by_clauseContext, 0) as Partition_by_clauseContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_parallel_enable_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterParallel_enable_clause) {
	 		listener.enterParallel_enable_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitParallel_enable_clause) {
	 		listener.exitParallel_enable_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitParallel_enable_clause) {
			return visitor.visitParallel_enable_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Partition_by_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public PARTITION(): TerminalNode {
		return this.getToken(PlSqlParser.PARTITION, 0);
	}
	public expression(): ExpressionContext {
		return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext;
	}
	public BY(): TerminalNode {
		return this.getToken(PlSqlParser.BY, 0);
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public ANY(): TerminalNode {
		return this.getToken(PlSqlParser.ANY, 0);
	}
	public paren_column_list(): Paren_column_listContext {
		return this.getTypedRuleContext(Paren_column_listContext, 0) as Paren_column_listContext;
	}
	public HASH(): TerminalNode {
		return this.getToken(PlSqlParser.HASH, 0);
	}
	public RANGE(): TerminalNode {
		return this.getToken(PlSqlParser.RANGE, 0);
	}
	public LIST(): TerminalNode {
		return this.getToken(PlSqlParser.LIST, 0);
	}
	public streaming_clause(): Streaming_clauseContext {
		return this.getTypedRuleContext(Streaming_clauseContext, 0) as Streaming_clauseContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_partition_by_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterPartition_by_clause) {
	 		listener.enterPartition_by_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitPartition_by_clause) {
	 		listener.exitPartition_by_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitPartition_by_clause) {
			return visitor.visitPartition_by_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Result_cache_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public RESULT_CACHE(): TerminalNode {
		return this.getToken(PlSqlParser.RESULT_CACHE, 0);
	}
	public relies_on_part(): Relies_on_partContext {
		return this.getTypedRuleContext(Relies_on_partContext, 0) as Relies_on_partContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_result_cache_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterResult_cache_clause) {
	 		listener.enterResult_cache_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitResult_cache_clause) {
	 		listener.exitResult_cache_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitResult_cache_clause) {
			return visitor.visitResult_cache_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Relies_on_partContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public RELIES_ON(): TerminalNode {
		return this.getToken(PlSqlParser.RELIES_ON, 0);
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public tableview_name_list(): Tableview_nameContext[] {
		return this.getTypedRuleContexts(Tableview_nameContext) as Tableview_nameContext[];
	}
	public tableview_name(i: number): Tableview_nameContext {
		return this.getTypedRuleContext(Tableview_nameContext, i) as Tableview_nameContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_relies_on_part;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterRelies_on_part) {
	 		listener.enterRelies_on_part(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitRelies_on_part) {
	 		listener.exitRelies_on_part(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitRelies_on_part) {
			return visitor.visitRelies_on_part(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Streaming_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public expression(): ExpressionContext {
		return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext;
	}
	public BY(): TerminalNode {
		return this.getToken(PlSqlParser.BY, 0);
	}
	public paren_column_list(): Paren_column_listContext {
		return this.getTypedRuleContext(Paren_column_listContext, 0) as Paren_column_listContext;
	}
	public ORDER(): TerminalNode {
		return this.getToken(PlSqlParser.ORDER, 0);
	}
	public CLUSTER(): TerminalNode {
		return this.getToken(PlSqlParser.CLUSTER, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_streaming_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterStreaming_clause) {
	 		listener.enterStreaming_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitStreaming_clause) {
	 		listener.exitStreaming_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitStreaming_clause) {
			return visitor.visitStreaming_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Drop_packageContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public DROP(): TerminalNode {
		return this.getToken(PlSqlParser.DROP, 0);
	}
	public PACKAGE(): TerminalNode {
		return this.getToken(PlSqlParser.PACKAGE, 0);
	}
	public package_name(): Package_nameContext {
		return this.getTypedRuleContext(Package_nameContext, 0) as Package_nameContext;
	}
	public SEMICOLON(): TerminalNode {
		return this.getToken(PlSqlParser.SEMICOLON, 0);
	}
	public BODY(): TerminalNode {
		return this.getToken(PlSqlParser.BODY, 0);
	}
	public schema_object_name(): Schema_object_nameContext {
		return this.getTypedRuleContext(Schema_object_nameContext, 0) as Schema_object_nameContext;
	}
	public PERIOD(): TerminalNode {
		return this.getToken(PlSqlParser.PERIOD, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_drop_package;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterDrop_package) {
	 		listener.enterDrop_package(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitDrop_package) {
	 		listener.exitDrop_package(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitDrop_package) {
			return visitor.visitDrop_package(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Alter_packageContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public ALTER(): TerminalNode {
		return this.getToken(PlSqlParser.ALTER, 0);
	}
	public PACKAGE_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.PACKAGE);
	}
	public PACKAGE(i: number): TerminalNode {
		return this.getToken(PlSqlParser.PACKAGE, i);
	}
	public package_name(): Package_nameContext {
		return this.getTypedRuleContext(Package_nameContext, 0) as Package_nameContext;
	}
	public COMPILE(): TerminalNode {
		return this.getToken(PlSqlParser.COMPILE, 0);
	}
	public SEMICOLON(): TerminalNode {
		return this.getToken(PlSqlParser.SEMICOLON, 0);
	}
	public DEBUG(): TerminalNode {
		return this.getToken(PlSqlParser.DEBUG, 0);
	}
	public compiler_parameters_clause_list(): Compiler_parameters_clauseContext[] {
		return this.getTypedRuleContexts(Compiler_parameters_clauseContext) as Compiler_parameters_clauseContext[];
	}
	public compiler_parameters_clause(i: number): Compiler_parameters_clauseContext {
		return this.getTypedRuleContext(Compiler_parameters_clauseContext, i) as Compiler_parameters_clauseContext;
	}
	public REUSE(): TerminalNode {
		return this.getToken(PlSqlParser.REUSE, 0);
	}
	public SETTINGS(): TerminalNode {
		return this.getToken(PlSqlParser.SETTINGS, 0);
	}
	public BODY(): TerminalNode {
		return this.getToken(PlSqlParser.BODY, 0);
	}
	public SPECIFICATION(): TerminalNode {
		return this.getToken(PlSqlParser.SPECIFICATION, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_alter_package;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterAlter_package) {
	 		listener.enterAlter_package(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitAlter_package) {
	 		listener.exitAlter_package(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitAlter_package) {
			return visitor.visitAlter_package(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Create_packageContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public CREATE(): TerminalNode {
		return this.getToken(PlSqlParser.CREATE, 0);
	}
	public PACKAGE(): TerminalNode {
		return this.getToken(PlSqlParser.PACKAGE, 0);
	}
	public package_name_list(): Package_nameContext[] {
		return this.getTypedRuleContexts(Package_nameContext) as Package_nameContext[];
	}
	public package_name(i: number): Package_nameContext {
		return this.getTypedRuleContext(Package_nameContext, i) as Package_nameContext;
	}
	public END(): TerminalNode {
		return this.getToken(PlSqlParser.END, 0);
	}
	public SEMICOLON(): TerminalNode {
		return this.getToken(PlSqlParser.SEMICOLON, 0);
	}
	public IS(): TerminalNode {
		return this.getToken(PlSqlParser.IS, 0);
	}
	public AS(): TerminalNode {
		return this.getToken(PlSqlParser.AS, 0);
	}
	public OR(): TerminalNode {
		return this.getToken(PlSqlParser.OR, 0);
	}
	public REPLACE(): TerminalNode {
		return this.getToken(PlSqlParser.REPLACE, 0);
	}
	public schema_object_name(): Schema_object_nameContext {
		return this.getTypedRuleContext(Schema_object_nameContext, 0) as Schema_object_nameContext;
	}
	public PERIOD(): TerminalNode {
		return this.getToken(PlSqlParser.PERIOD, 0);
	}
	public invoker_rights_clause(): Invoker_rights_clauseContext {
		return this.getTypedRuleContext(Invoker_rights_clauseContext, 0) as Invoker_rights_clauseContext;
	}
	public package_obj_spec_list(): Package_obj_specContext[] {
		return this.getTypedRuleContexts(Package_obj_specContext) as Package_obj_specContext[];
	}
	public package_obj_spec(i: number): Package_obj_specContext {
		return this.getTypedRuleContext(Package_obj_specContext, i) as Package_obj_specContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_create_package;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterCreate_package) {
	 		listener.enterCreate_package(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitCreate_package) {
	 		listener.exitCreate_package(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitCreate_package) {
			return visitor.visitCreate_package(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Create_package_bodyContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public CREATE(): TerminalNode {
		return this.getToken(PlSqlParser.CREATE, 0);
	}
	public PACKAGE(): TerminalNode {
		return this.getToken(PlSqlParser.PACKAGE, 0);
	}
	public BODY(): TerminalNode {
		return this.getToken(PlSqlParser.BODY, 0);
	}
	public package_name_list(): Package_nameContext[] {
		return this.getTypedRuleContexts(Package_nameContext) as Package_nameContext[];
	}
	public package_name(i: number): Package_nameContext {
		return this.getTypedRuleContext(Package_nameContext, i) as Package_nameContext;
	}
	public END(): TerminalNode {
		return this.getToken(PlSqlParser.END, 0);
	}
	public SEMICOLON(): TerminalNode {
		return this.getToken(PlSqlParser.SEMICOLON, 0);
	}
	public IS(): TerminalNode {
		return this.getToken(PlSqlParser.IS, 0);
	}
	public AS(): TerminalNode {
		return this.getToken(PlSqlParser.AS, 0);
	}
	public OR(): TerminalNode {
		return this.getToken(PlSqlParser.OR, 0);
	}
	public REPLACE(): TerminalNode {
		return this.getToken(PlSqlParser.REPLACE, 0);
	}
	public schema_object_name(): Schema_object_nameContext {
		return this.getTypedRuleContext(Schema_object_nameContext, 0) as Schema_object_nameContext;
	}
	public PERIOD(): TerminalNode {
		return this.getToken(PlSqlParser.PERIOD, 0);
	}
	public package_obj_body_list(): Package_obj_bodyContext[] {
		return this.getTypedRuleContexts(Package_obj_bodyContext) as Package_obj_bodyContext[];
	}
	public package_obj_body(i: number): Package_obj_bodyContext {
		return this.getTypedRuleContext(Package_obj_bodyContext, i) as Package_obj_bodyContext;
	}
	public BEGIN(): TerminalNode {
		return this.getToken(PlSqlParser.BEGIN, 0);
	}
	public seq_of_statements(): Seq_of_statementsContext {
		return this.getTypedRuleContext(Seq_of_statementsContext, 0) as Seq_of_statementsContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_create_package_body;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterCreate_package_body) {
	 		listener.enterCreate_package_body(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitCreate_package_body) {
	 		listener.exitCreate_package_body(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitCreate_package_body) {
			return visitor.visitCreate_package_body(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Package_obj_specContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public pragma_declaration(): Pragma_declarationContext {
		return this.getTypedRuleContext(Pragma_declarationContext, 0) as Pragma_declarationContext;
	}
	public variable_declaration(): Variable_declarationContext {
		return this.getTypedRuleContext(Variable_declarationContext, 0) as Variable_declarationContext;
	}
	public subtype_declaration(): Subtype_declarationContext {
		return this.getTypedRuleContext(Subtype_declarationContext, 0) as Subtype_declarationContext;
	}
	public cursor_declaration(): Cursor_declarationContext {
		return this.getTypedRuleContext(Cursor_declarationContext, 0) as Cursor_declarationContext;
	}
	public exception_declaration(): Exception_declarationContext {
		return this.getTypedRuleContext(Exception_declarationContext, 0) as Exception_declarationContext;
	}
	public type_declaration(): Type_declarationContext {
		return this.getTypedRuleContext(Type_declarationContext, 0) as Type_declarationContext;
	}
	public procedure_spec(): Procedure_specContext {
		return this.getTypedRuleContext(Procedure_specContext, 0) as Procedure_specContext;
	}
	public function_spec(): Function_specContext {
		return this.getTypedRuleContext(Function_specContext, 0) as Function_specContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_package_obj_spec;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterPackage_obj_spec) {
	 		listener.enterPackage_obj_spec(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitPackage_obj_spec) {
	 		listener.exitPackage_obj_spec(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitPackage_obj_spec) {
			return visitor.visitPackage_obj_spec(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Procedure_specContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public PROCEDURE(): TerminalNode {
		return this.getToken(PlSqlParser.PROCEDURE, 0);
	}
	public identifier(): IdentifierContext {
		return this.getTypedRuleContext(IdentifierContext, 0) as IdentifierContext;
	}
	public SEMICOLON(): TerminalNode {
		return this.getToken(PlSqlParser.SEMICOLON, 0);
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public parameter_list(): ParameterContext[] {
		return this.getTypedRuleContexts(ParameterContext) as ParameterContext[];
	}
	public parameter(i: number): ParameterContext {
		return this.getTypedRuleContext(ParameterContext, i) as ParameterContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_procedure_spec;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterProcedure_spec) {
	 		listener.enterProcedure_spec(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitProcedure_spec) {
	 		listener.exitProcedure_spec(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitProcedure_spec) {
			return visitor.visitProcedure_spec(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Function_specContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public FUNCTION(): TerminalNode {
		return this.getToken(PlSqlParser.FUNCTION, 0);
	}
	public identifier(): IdentifierContext {
		return this.getTypedRuleContext(IdentifierContext, 0) as IdentifierContext;
	}
	public RETURN(): TerminalNode {
		return this.getToken(PlSqlParser.RETURN, 0);
	}
	public type_spec(): Type_specContext {
		return this.getTypedRuleContext(Type_specContext, 0) as Type_specContext;
	}
	public SEMICOLON(): TerminalNode {
		return this.getToken(PlSqlParser.SEMICOLON, 0);
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public parameter_list(): ParameterContext[] {
		return this.getTypedRuleContexts(ParameterContext) as ParameterContext[];
	}
	public parameter(i: number): ParameterContext {
		return this.getTypedRuleContext(ParameterContext, i) as ParameterContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public PIPELINED(): TerminalNode {
		return this.getToken(PlSqlParser.PIPELINED, 0);
	}
	public DETERMINISTIC(): TerminalNode {
		return this.getToken(PlSqlParser.DETERMINISTIC, 0);
	}
	public RESULT_CACHE(): TerminalNode {
		return this.getToken(PlSqlParser.RESULT_CACHE, 0);
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_function_spec;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterFunction_spec) {
	 		listener.enterFunction_spec(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitFunction_spec) {
	 		listener.exitFunction_spec(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitFunction_spec) {
			return visitor.visitFunction_spec(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Package_obj_bodyContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public variable_declaration(): Variable_declarationContext {
		return this.getTypedRuleContext(Variable_declarationContext, 0) as Variable_declarationContext;
	}
	public subtype_declaration(): Subtype_declarationContext {
		return this.getTypedRuleContext(Subtype_declarationContext, 0) as Subtype_declarationContext;
	}
	public cursor_declaration(): Cursor_declarationContext {
		return this.getTypedRuleContext(Cursor_declarationContext, 0) as Cursor_declarationContext;
	}
	public exception_declaration(): Exception_declarationContext {
		return this.getTypedRuleContext(Exception_declarationContext, 0) as Exception_declarationContext;
	}
	public type_declaration(): Type_declarationContext {
		return this.getTypedRuleContext(Type_declarationContext, 0) as Type_declarationContext;
	}
	public procedure_body(): Procedure_bodyContext {
		return this.getTypedRuleContext(Procedure_bodyContext, 0) as Procedure_bodyContext;
	}
	public function_body(): Function_bodyContext {
		return this.getTypedRuleContext(Function_bodyContext, 0) as Function_bodyContext;
	}
	public procedure_spec(): Procedure_specContext {
		return this.getTypedRuleContext(Procedure_specContext, 0) as Procedure_specContext;
	}
	public function_spec(): Function_specContext {
		return this.getTypedRuleContext(Function_specContext, 0) as Function_specContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_package_obj_body;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterPackage_obj_body) {
	 		listener.enterPackage_obj_body(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitPackage_obj_body) {
	 		listener.exitPackage_obj_body(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitPackage_obj_body) {
			return visitor.visitPackage_obj_body(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Drop_procedureContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public DROP(): TerminalNode {
		return this.getToken(PlSqlParser.DROP, 0);
	}
	public PROCEDURE(): TerminalNode {
		return this.getToken(PlSqlParser.PROCEDURE, 0);
	}
	public procedure_name(): Procedure_nameContext {
		return this.getTypedRuleContext(Procedure_nameContext, 0) as Procedure_nameContext;
	}
	public SEMICOLON(): TerminalNode {
		return this.getToken(PlSqlParser.SEMICOLON, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_drop_procedure;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterDrop_procedure) {
	 		listener.enterDrop_procedure(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitDrop_procedure) {
	 		listener.exitDrop_procedure(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitDrop_procedure) {
			return visitor.visitDrop_procedure(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Alter_procedureContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public ALTER(): TerminalNode {
		return this.getToken(PlSqlParser.ALTER, 0);
	}
	public PROCEDURE(): TerminalNode {
		return this.getToken(PlSqlParser.PROCEDURE, 0);
	}
	public procedure_name(): Procedure_nameContext {
		return this.getTypedRuleContext(Procedure_nameContext, 0) as Procedure_nameContext;
	}
	public COMPILE(): TerminalNode {
		return this.getToken(PlSqlParser.COMPILE, 0);
	}
	public SEMICOLON(): TerminalNode {
		return this.getToken(PlSqlParser.SEMICOLON, 0);
	}
	public DEBUG(): TerminalNode {
		return this.getToken(PlSqlParser.DEBUG, 0);
	}
	public compiler_parameters_clause_list(): Compiler_parameters_clauseContext[] {
		return this.getTypedRuleContexts(Compiler_parameters_clauseContext) as Compiler_parameters_clauseContext[];
	}
	public compiler_parameters_clause(i: number): Compiler_parameters_clauseContext {
		return this.getTypedRuleContext(Compiler_parameters_clauseContext, i) as Compiler_parameters_clauseContext;
	}
	public REUSE(): TerminalNode {
		return this.getToken(PlSqlParser.REUSE, 0);
	}
	public SETTINGS(): TerminalNode {
		return this.getToken(PlSqlParser.SETTINGS, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_alter_procedure;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterAlter_procedure) {
	 		listener.enterAlter_procedure(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitAlter_procedure) {
	 		listener.exitAlter_procedure(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitAlter_procedure) {
			return visitor.visitAlter_procedure(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Function_bodyContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public FUNCTION(): TerminalNode {
		return this.getToken(PlSqlParser.FUNCTION, 0);
	}
	public identifier(): IdentifierContext {
		return this.getTypedRuleContext(IdentifierContext, 0) as IdentifierContext;
	}
	public RETURN(): TerminalNode {
		return this.getToken(PlSqlParser.RETURN, 0);
	}
	public type_spec(): Type_specContext {
		return this.getTypedRuleContext(Type_specContext, 0) as Type_specContext;
	}
	public SEMICOLON(): TerminalNode {
		return this.getToken(PlSqlParser.SEMICOLON, 0);
	}
	public USING(): TerminalNode {
		return this.getToken(PlSqlParser.USING, 0);
	}
	public implementation_type_name(): Implementation_type_nameContext {
		return this.getTypedRuleContext(Implementation_type_nameContext, 0) as Implementation_type_nameContext;
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public parameter_list(): ParameterContext[] {
		return this.getTypedRuleContexts(ParameterContext) as ParameterContext[];
	}
	public parameter(i: number): ParameterContext {
		return this.getTypedRuleContext(ParameterContext, i) as ParameterContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public invoker_rights_clause_list(): Invoker_rights_clauseContext[] {
		return this.getTypedRuleContexts(Invoker_rights_clauseContext) as Invoker_rights_clauseContext[];
	}
	public invoker_rights_clause(i: number): Invoker_rights_clauseContext {
		return this.getTypedRuleContext(Invoker_rights_clauseContext, i) as Invoker_rights_clauseContext;
	}
	public parallel_enable_clause_list(): Parallel_enable_clauseContext[] {
		return this.getTypedRuleContexts(Parallel_enable_clauseContext) as Parallel_enable_clauseContext[];
	}
	public parallel_enable_clause(i: number): Parallel_enable_clauseContext {
		return this.getTypedRuleContext(Parallel_enable_clauseContext, i) as Parallel_enable_clauseContext;
	}
	public result_cache_clause_list(): Result_cache_clauseContext[] {
		return this.getTypedRuleContexts(Result_cache_clauseContext) as Result_cache_clauseContext[];
	}
	public result_cache_clause(i: number): Result_cache_clauseContext {
		return this.getTypedRuleContext(Result_cache_clauseContext, i) as Result_cache_clauseContext;
	}
	public DETERMINISTIC_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.DETERMINISTIC);
	}
	public DETERMINISTIC(i: number): TerminalNode {
		return this.getToken(PlSqlParser.DETERMINISTIC, i);
	}
	public PIPELINED(): TerminalNode {
		return this.getToken(PlSqlParser.PIPELINED, 0);
	}
	public AGGREGATE(): TerminalNode {
		return this.getToken(PlSqlParser.AGGREGATE, 0);
	}
	public IS(): TerminalNode {
		return this.getToken(PlSqlParser.IS, 0);
	}
	public AS(): TerminalNode {
		return this.getToken(PlSqlParser.AS, 0);
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
	public body(): BodyContext {
		return this.getTypedRuleContext(BodyContext, 0) as BodyContext;
	}
	public call_spec(): Call_specContext {
		return this.getTypedRuleContext(Call_specContext, 0) as Call_specContext;
	}
	public DECLARE(): TerminalNode {
		return this.getToken(PlSqlParser.DECLARE, 0);
	}
	public seq_of_declare_specs(): Seq_of_declare_specsContext {
		return this.getTypedRuleContext(Seq_of_declare_specsContext, 0) as Seq_of_declare_specsContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_function_body;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterFunction_body) {
	 		listener.enterFunction_body(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitFunction_body) {
	 		listener.exitFunction_body(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitFunction_body) {
			return visitor.visitFunction_body(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Procedure_bodyContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public PROCEDURE(): TerminalNode {
		return this.getToken(PlSqlParser.PROCEDURE, 0);
	}
	public identifier(): IdentifierContext {
		return this.getTypedRuleContext(IdentifierContext, 0) as IdentifierContext;
	}
	public SEMICOLON(): TerminalNode {
		return this.getToken(PlSqlParser.SEMICOLON, 0);
	}
	public IS(): TerminalNode {
		return this.getToken(PlSqlParser.IS, 0);
	}
	public AS(): TerminalNode {
		return this.getToken(PlSqlParser.AS, 0);
	}
	public body(): BodyContext {
		return this.getTypedRuleContext(BodyContext, 0) as BodyContext;
	}
	public call_spec(): Call_specContext {
		return this.getTypedRuleContext(Call_specContext, 0) as Call_specContext;
	}
	public EXTERNAL(): TerminalNode {
		return this.getToken(PlSqlParser.EXTERNAL, 0);
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public parameter_list(): ParameterContext[] {
		return this.getTypedRuleContexts(ParameterContext) as ParameterContext[];
	}
	public parameter(i: number): ParameterContext {
		return this.getTypedRuleContext(ParameterContext, i) as ParameterContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public DECLARE(): TerminalNode {
		return this.getToken(PlSqlParser.DECLARE, 0);
	}
	public seq_of_declare_specs(): Seq_of_declare_specsContext {
		return this.getTypedRuleContext(Seq_of_declare_specsContext, 0) as Seq_of_declare_specsContext;
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_procedure_body;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterProcedure_body) {
	 		listener.enterProcedure_body(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitProcedure_body) {
	 		listener.exitProcedure_body(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitProcedure_body) {
			return visitor.visitProcedure_body(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Create_procedure_bodyContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public CREATE(): TerminalNode {
		return this.getToken(PlSqlParser.CREATE, 0);
	}
	public PROCEDURE(): TerminalNode {
		return this.getToken(PlSqlParser.PROCEDURE, 0);
	}
	public procedure_name(): Procedure_nameContext {
		return this.getTypedRuleContext(Procedure_nameContext, 0) as Procedure_nameContext;
	}
	public SEMICOLON(): TerminalNode {
		return this.getToken(PlSqlParser.SEMICOLON, 0);
	}
	public IS(): TerminalNode {
		return this.getToken(PlSqlParser.IS, 0);
	}
	public AS(): TerminalNode {
		return this.getToken(PlSqlParser.AS, 0);
	}
	public body(): BodyContext {
		return this.getTypedRuleContext(BodyContext, 0) as BodyContext;
	}
	public call_spec(): Call_specContext {
		return this.getTypedRuleContext(Call_specContext, 0) as Call_specContext;
	}
	public EXTERNAL(): TerminalNode {
		return this.getToken(PlSqlParser.EXTERNAL, 0);
	}
	public OR(): TerminalNode {
		return this.getToken(PlSqlParser.OR, 0);
	}
	public REPLACE(): TerminalNode {
		return this.getToken(PlSqlParser.REPLACE, 0);
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public parameter_list(): ParameterContext[] {
		return this.getTypedRuleContexts(ParameterContext) as ParameterContext[];
	}
	public parameter(i: number): ParameterContext {
		return this.getTypedRuleContext(ParameterContext, i) as ParameterContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public invoker_rights_clause(): Invoker_rights_clauseContext {
		return this.getTypedRuleContext(Invoker_rights_clauseContext, 0) as Invoker_rights_clauseContext;
	}
	public DECLARE(): TerminalNode {
		return this.getToken(PlSqlParser.DECLARE, 0);
	}
	public seq_of_declare_specs(): Seq_of_declare_specsContext {
		return this.getTypedRuleContext(Seq_of_declare_specsContext, 0) as Seq_of_declare_specsContext;
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_create_procedure_body;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterCreate_procedure_body) {
	 		listener.enterCreate_procedure_body(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitCreate_procedure_body) {
	 		listener.exitCreate_procedure_body(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitCreate_procedure_body) {
			return visitor.visitCreate_procedure_body(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Drop_triggerContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public DROP(): TerminalNode {
		return this.getToken(PlSqlParser.DROP, 0);
	}
	public TRIGGER(): TerminalNode {
		return this.getToken(PlSqlParser.TRIGGER, 0);
	}
	public trigger_name(): Trigger_nameContext {
		return this.getTypedRuleContext(Trigger_nameContext, 0) as Trigger_nameContext;
	}
	public SEMICOLON(): TerminalNode {
		return this.getToken(PlSqlParser.SEMICOLON, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_drop_trigger;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterDrop_trigger) {
	 		listener.enterDrop_trigger(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitDrop_trigger) {
	 		listener.exitDrop_trigger(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitDrop_trigger) {
			return visitor.visitDrop_trigger(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Alter_triggerContext extends ParserRuleContext {
	public _alter_trigger_name!: Trigger_nameContext;
	public _rename_trigger_name!: Trigger_nameContext;
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public ALTER(): TerminalNode {
		return this.getToken(PlSqlParser.ALTER, 0);
	}
	public TRIGGER(): TerminalNode {
		return this.getToken(PlSqlParser.TRIGGER, 0);
	}
	public SEMICOLON(): TerminalNode {
		return this.getToken(PlSqlParser.SEMICOLON, 0);
	}
	public trigger_name_list(): Trigger_nameContext[] {
		return this.getTypedRuleContexts(Trigger_nameContext) as Trigger_nameContext[];
	}
	public trigger_name(i: number): Trigger_nameContext {
		return this.getTypedRuleContext(Trigger_nameContext, i) as Trigger_nameContext;
	}
	public RENAME(): TerminalNode {
		return this.getToken(PlSqlParser.RENAME, 0);
	}
	public TO(): TerminalNode {
		return this.getToken(PlSqlParser.TO, 0);
	}
	public COMPILE(): TerminalNode {
		return this.getToken(PlSqlParser.COMPILE, 0);
	}
	public ENABLE(): TerminalNode {
		return this.getToken(PlSqlParser.ENABLE, 0);
	}
	public DISABLE(): TerminalNode {
		return this.getToken(PlSqlParser.DISABLE, 0);
	}
	public DEBUG(): TerminalNode {
		return this.getToken(PlSqlParser.DEBUG, 0);
	}
	public compiler_parameters_clause_list(): Compiler_parameters_clauseContext[] {
		return this.getTypedRuleContexts(Compiler_parameters_clauseContext) as Compiler_parameters_clauseContext[];
	}
	public compiler_parameters_clause(i: number): Compiler_parameters_clauseContext {
		return this.getTypedRuleContext(Compiler_parameters_clauseContext, i) as Compiler_parameters_clauseContext;
	}
	public REUSE(): TerminalNode {
		return this.getToken(PlSqlParser.REUSE, 0);
	}
	public SETTINGS(): TerminalNode {
		return this.getToken(PlSqlParser.SETTINGS, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_alter_trigger;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterAlter_trigger) {
	 		listener.enterAlter_trigger(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitAlter_trigger) {
	 		listener.exitAlter_trigger(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitAlter_trigger) {
			return visitor.visitAlter_trigger(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Create_triggerContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public CREATE(): TerminalNode {
		return this.getToken(PlSqlParser.CREATE, 0);
	}
	public TRIGGER(): TerminalNode {
		return this.getToken(PlSqlParser.TRIGGER, 0);
	}
	public trigger_name(): Trigger_nameContext {
		return this.getTypedRuleContext(Trigger_nameContext, 0) as Trigger_nameContext;
	}
	public trigger_body(): Trigger_bodyContext {
		return this.getTypedRuleContext(Trigger_bodyContext, 0) as Trigger_bodyContext;
	}
	public SEMICOLON(): TerminalNode {
		return this.getToken(PlSqlParser.SEMICOLON, 0);
	}
	public simple_dml_trigger(): Simple_dml_triggerContext {
		return this.getTypedRuleContext(Simple_dml_triggerContext, 0) as Simple_dml_triggerContext;
	}
	public compound_dml_trigger(): Compound_dml_triggerContext {
		return this.getTypedRuleContext(Compound_dml_triggerContext, 0) as Compound_dml_triggerContext;
	}
	public non_dml_trigger(): Non_dml_triggerContext {
		return this.getTypedRuleContext(Non_dml_triggerContext, 0) as Non_dml_triggerContext;
	}
	public OR(): TerminalNode {
		return this.getToken(PlSqlParser.OR, 0);
	}
	public REPLACE(): TerminalNode {
		return this.getToken(PlSqlParser.REPLACE, 0);
	}
	public trigger_follows_clause(): Trigger_follows_clauseContext {
		return this.getTypedRuleContext(Trigger_follows_clauseContext, 0) as Trigger_follows_clauseContext;
	}
	public trigger_when_clause(): Trigger_when_clauseContext {
		return this.getTypedRuleContext(Trigger_when_clauseContext, 0) as Trigger_when_clauseContext;
	}
	public ENABLE(): TerminalNode {
		return this.getToken(PlSqlParser.ENABLE, 0);
	}
	public DISABLE(): TerminalNode {
		return this.getToken(PlSqlParser.DISABLE, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_create_trigger;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterCreate_trigger) {
	 		listener.enterCreate_trigger(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitCreate_trigger) {
	 		listener.exitCreate_trigger(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitCreate_trigger) {
			return visitor.visitCreate_trigger(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Trigger_follows_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public FOLLOWS(): TerminalNode {
		return this.getToken(PlSqlParser.FOLLOWS, 0);
	}
	public trigger_name_list(): Trigger_nameContext[] {
		return this.getTypedRuleContexts(Trigger_nameContext) as Trigger_nameContext[];
	}
	public trigger_name(i: number): Trigger_nameContext {
		return this.getTypedRuleContext(Trigger_nameContext, i) as Trigger_nameContext;
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_trigger_follows_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterTrigger_follows_clause) {
	 		listener.enterTrigger_follows_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitTrigger_follows_clause) {
	 		listener.exitTrigger_follows_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitTrigger_follows_clause) {
			return visitor.visitTrigger_follows_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Trigger_when_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public WHEN(): TerminalNode {
		return this.getToken(PlSqlParser.WHEN, 0);
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public condition(): ConditionContext {
		return this.getTypedRuleContext(ConditionContext, 0) as ConditionContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_trigger_when_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterTrigger_when_clause) {
	 		listener.enterTrigger_when_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitTrigger_when_clause) {
	 		listener.exitTrigger_when_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitTrigger_when_clause) {
			return visitor.visitTrigger_when_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Simple_dml_triggerContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public dml_event_clause(): Dml_event_clauseContext {
		return this.getTypedRuleContext(Dml_event_clauseContext, 0) as Dml_event_clauseContext;
	}
	public BEFORE(): TerminalNode {
		return this.getToken(PlSqlParser.BEFORE, 0);
	}
	public AFTER(): TerminalNode {
		return this.getToken(PlSqlParser.AFTER, 0);
	}
	public INSTEAD(): TerminalNode {
		return this.getToken(PlSqlParser.INSTEAD, 0);
	}
	public OF(): TerminalNode {
		return this.getToken(PlSqlParser.OF, 0);
	}
	public referencing_clause(): Referencing_clauseContext {
		return this.getTypedRuleContext(Referencing_clauseContext, 0) as Referencing_clauseContext;
	}
	public for_each_row(): For_each_rowContext {
		return this.getTypedRuleContext(For_each_rowContext, 0) as For_each_rowContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_simple_dml_trigger;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterSimple_dml_trigger) {
	 		listener.enterSimple_dml_trigger(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitSimple_dml_trigger) {
	 		listener.exitSimple_dml_trigger(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitSimple_dml_trigger) {
			return visitor.visitSimple_dml_trigger(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class For_each_rowContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public FOR(): TerminalNode {
		return this.getToken(PlSqlParser.FOR, 0);
	}
	public EACH(): TerminalNode {
		return this.getToken(PlSqlParser.EACH, 0);
	}
	public ROW(): TerminalNode {
		return this.getToken(PlSqlParser.ROW, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_for_each_row;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterFor_each_row) {
	 		listener.enterFor_each_row(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitFor_each_row) {
	 		listener.exitFor_each_row(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitFor_each_row) {
			return visitor.visitFor_each_row(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Compound_dml_triggerContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public FOR(): TerminalNode {
		return this.getToken(PlSqlParser.FOR, 0);
	}
	public dml_event_clause(): Dml_event_clauseContext {
		return this.getTypedRuleContext(Dml_event_clauseContext, 0) as Dml_event_clauseContext;
	}
	public referencing_clause(): Referencing_clauseContext {
		return this.getTypedRuleContext(Referencing_clauseContext, 0) as Referencing_clauseContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_compound_dml_trigger;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterCompound_dml_trigger) {
	 		listener.enterCompound_dml_trigger(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitCompound_dml_trigger) {
	 		listener.exitCompound_dml_trigger(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitCompound_dml_trigger) {
			return visitor.visitCompound_dml_trigger(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Non_dml_triggerContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public non_dml_event_list(): Non_dml_eventContext[] {
		return this.getTypedRuleContexts(Non_dml_eventContext) as Non_dml_eventContext[];
	}
	public non_dml_event(i: number): Non_dml_eventContext {
		return this.getTypedRuleContext(Non_dml_eventContext, i) as Non_dml_eventContext;
	}
	public ON(): TerminalNode {
		return this.getToken(PlSqlParser.ON, 0);
	}
	public BEFORE(): TerminalNode {
		return this.getToken(PlSqlParser.BEFORE, 0);
	}
	public AFTER(): TerminalNode {
		return this.getToken(PlSqlParser.AFTER, 0);
	}
	public DATABASE(): TerminalNode {
		return this.getToken(PlSqlParser.DATABASE, 0);
	}
	public SCHEMA(): TerminalNode {
		return this.getToken(PlSqlParser.SCHEMA, 0);
	}
	public OR_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.OR);
	}
	public OR(i: number): TerminalNode {
		return this.getToken(PlSqlParser.OR, i);
	}
	public schema_name(): Schema_nameContext {
		return this.getTypedRuleContext(Schema_nameContext, 0) as Schema_nameContext;
	}
	public PERIOD(): TerminalNode {
		return this.getToken(PlSqlParser.PERIOD, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_non_dml_trigger;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterNon_dml_trigger) {
	 		listener.enterNon_dml_trigger(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitNon_dml_trigger) {
	 		listener.exitNon_dml_trigger(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitNon_dml_trigger) {
			return visitor.visitNon_dml_trigger(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Trigger_bodyContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public COMPOUND(): TerminalNode {
		return this.getToken(PlSqlParser.COMPOUND, 0);
	}
	public TRIGGER(): TerminalNode {
		return this.getToken(PlSqlParser.TRIGGER, 0);
	}
	public CALL(): TerminalNode {
		return this.getToken(PlSqlParser.CALL, 0);
	}
	public identifier(): IdentifierContext {
		return this.getTypedRuleContext(IdentifierContext, 0) as IdentifierContext;
	}
	public trigger_block(): Trigger_blockContext {
		return this.getTypedRuleContext(Trigger_blockContext, 0) as Trigger_blockContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_trigger_body;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterTrigger_body) {
	 		listener.enterTrigger_body(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitTrigger_body) {
	 		listener.exitTrigger_body(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitTrigger_body) {
			return visitor.visitTrigger_body(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Routine_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public routine_name(): Routine_nameContext {
		return this.getTypedRuleContext(Routine_nameContext, 0) as Routine_nameContext;
	}
	public function_argument(): Function_argumentContext {
		return this.getTypedRuleContext(Function_argumentContext, 0) as Function_argumentContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_routine_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterRoutine_clause) {
	 		listener.enterRoutine_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitRoutine_clause) {
	 		listener.exitRoutine_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitRoutine_clause) {
			return visitor.visitRoutine_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Compound_trigger_blockContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public COMPOUND(): TerminalNode {
		return this.getToken(PlSqlParser.COMPOUND, 0);
	}
	public TRIGGER(): TerminalNode {
		return this.getToken(PlSqlParser.TRIGGER, 0);
	}
	public END(): TerminalNode {
		return this.getToken(PlSqlParser.END, 0);
	}
	public trigger_name(): Trigger_nameContext {
		return this.getTypedRuleContext(Trigger_nameContext, 0) as Trigger_nameContext;
	}
	public seq_of_declare_specs(): Seq_of_declare_specsContext {
		return this.getTypedRuleContext(Seq_of_declare_specsContext, 0) as Seq_of_declare_specsContext;
	}
	public timing_point_section_list(): Timing_point_sectionContext[] {
		return this.getTypedRuleContexts(Timing_point_sectionContext) as Timing_point_sectionContext[];
	}
	public timing_point_section(i: number): Timing_point_sectionContext {
		return this.getTypedRuleContext(Timing_point_sectionContext, i) as Timing_point_sectionContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_compound_trigger_block;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterCompound_trigger_block) {
	 		listener.enterCompound_trigger_block(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitCompound_trigger_block) {
	 		listener.exitCompound_trigger_block(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitCompound_trigger_block) {
			return visitor.visitCompound_trigger_block(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Timing_point_sectionContext extends ParserRuleContext {
	public _bk!: Token;
	public _ak!: Token;
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public STATEMENT_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.STATEMENT);
	}
	public STATEMENT(i: number): TerminalNode {
		return this.getToken(PlSqlParser.STATEMENT, i);
	}
	public IS(): TerminalNode {
		return this.getToken(PlSqlParser.IS, 0);
	}
	public trigger_block(): Trigger_blockContext {
		return this.getTypedRuleContext(Trigger_blockContext, 0) as Trigger_blockContext;
	}
	public BEFORE_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.BEFORE);
	}
	public BEFORE(i: number): TerminalNode {
		return this.getToken(PlSqlParser.BEFORE, i);
	}
	public SEMICOLON(): TerminalNode {
		return this.getToken(PlSqlParser.SEMICOLON, 0);
	}
	public EACH_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.EACH);
	}
	public EACH(i: number): TerminalNode {
		return this.getToken(PlSqlParser.EACH, i);
	}
	public ROW_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.ROW);
	}
	public ROW(i: number): TerminalNode {
		return this.getToken(PlSqlParser.ROW, i);
	}
	public AFTER_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.AFTER);
	}
	public AFTER(i: number): TerminalNode {
		return this.getToken(PlSqlParser.AFTER, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_timing_point_section;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterTiming_point_section) {
	 		listener.enterTiming_point_section(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitTiming_point_section) {
	 		listener.exitTiming_point_section(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitTiming_point_section) {
			return visitor.visitTiming_point_section(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Non_dml_eventContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public ALTER(): TerminalNode {
		return this.getToken(PlSqlParser.ALTER, 0);
	}
	public ANALYZE(): TerminalNode {
		return this.getToken(PlSqlParser.ANALYZE, 0);
	}
	public ASSOCIATE(): TerminalNode {
		return this.getToken(PlSqlParser.ASSOCIATE, 0);
	}
	public STATISTICS(): TerminalNode {
		return this.getToken(PlSqlParser.STATISTICS, 0);
	}
	public AUDIT(): TerminalNode {
		return this.getToken(PlSqlParser.AUDIT, 0);
	}
	public COMMENT(): TerminalNode {
		return this.getToken(PlSqlParser.COMMENT, 0);
	}
	public CREATE(): TerminalNode {
		return this.getToken(PlSqlParser.CREATE, 0);
	}
	public DISASSOCIATE(): TerminalNode {
		return this.getToken(PlSqlParser.DISASSOCIATE, 0);
	}
	public DROP(): TerminalNode {
		return this.getToken(PlSqlParser.DROP, 0);
	}
	public GRANT(): TerminalNode {
		return this.getToken(PlSqlParser.GRANT, 0);
	}
	public NOAUDIT(): TerminalNode {
		return this.getToken(PlSqlParser.NOAUDIT, 0);
	}
	public RENAME(): TerminalNode {
		return this.getToken(PlSqlParser.RENAME, 0);
	}
	public REVOKE(): TerminalNode {
		return this.getToken(PlSqlParser.REVOKE, 0);
	}
	public TRUNCATE(): TerminalNode {
		return this.getToken(PlSqlParser.TRUNCATE, 0);
	}
	public DDL(): TerminalNode {
		return this.getToken(PlSqlParser.DDL, 0);
	}
	public STARTUP(): TerminalNode {
		return this.getToken(PlSqlParser.STARTUP, 0);
	}
	public SHUTDOWN(): TerminalNode {
		return this.getToken(PlSqlParser.SHUTDOWN, 0);
	}
	public DB_ROLE_CHANGE(): TerminalNode {
		return this.getToken(PlSqlParser.DB_ROLE_CHANGE, 0);
	}
	public LOGON(): TerminalNode {
		return this.getToken(PlSqlParser.LOGON, 0);
	}
	public LOGOFF(): TerminalNode {
		return this.getToken(PlSqlParser.LOGOFF, 0);
	}
	public SERVERERROR(): TerminalNode {
		return this.getToken(PlSqlParser.SERVERERROR, 0);
	}
	public SUSPEND(): TerminalNode {
		return this.getToken(PlSqlParser.SUSPEND, 0);
	}
	public DATABASE(): TerminalNode {
		return this.getToken(PlSqlParser.DATABASE, 0);
	}
	public SCHEMA(): TerminalNode {
		return this.getToken(PlSqlParser.SCHEMA, 0);
	}
	public FOLLOWS(): TerminalNode {
		return this.getToken(PlSqlParser.FOLLOWS, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_non_dml_event;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterNon_dml_event) {
	 		listener.enterNon_dml_event(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitNon_dml_event) {
	 		listener.exitNon_dml_event(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitNon_dml_event) {
			return visitor.visitNon_dml_event(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Dml_event_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public dml_event_element_list(): Dml_event_elementContext[] {
		return this.getTypedRuleContexts(Dml_event_elementContext) as Dml_event_elementContext[];
	}
	public dml_event_element(i: number): Dml_event_elementContext {
		return this.getTypedRuleContext(Dml_event_elementContext, i) as Dml_event_elementContext;
	}
	public ON(): TerminalNode {
		return this.getToken(PlSqlParser.ON, 0);
	}
	public tableview_name(): Tableview_nameContext {
		return this.getTypedRuleContext(Tableview_nameContext, 0) as Tableview_nameContext;
	}
	public OR_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.OR);
	}
	public OR(i: number): TerminalNode {
		return this.getToken(PlSqlParser.OR, i);
	}
	public dml_event_nested_clause(): Dml_event_nested_clauseContext {
		return this.getTypedRuleContext(Dml_event_nested_clauseContext, 0) as Dml_event_nested_clauseContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_dml_event_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterDml_event_clause) {
	 		listener.enterDml_event_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitDml_event_clause) {
	 		listener.exitDml_event_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitDml_event_clause) {
			return visitor.visitDml_event_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Dml_event_elementContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public DELETE(): TerminalNode {
		return this.getToken(PlSqlParser.DELETE, 0);
	}
	public INSERT(): TerminalNode {
		return this.getToken(PlSqlParser.INSERT, 0);
	}
	public UPDATE(): TerminalNode {
		return this.getToken(PlSqlParser.UPDATE, 0);
	}
	public OF(): TerminalNode {
		return this.getToken(PlSqlParser.OF, 0);
	}
	public column_list(): Column_listContext {
		return this.getTypedRuleContext(Column_listContext, 0) as Column_listContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_dml_event_element;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterDml_event_element) {
	 		listener.enterDml_event_element(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitDml_event_element) {
	 		listener.exitDml_event_element(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitDml_event_element) {
			return visitor.visitDml_event_element(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Dml_event_nested_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public NESTED(): TerminalNode {
		return this.getToken(PlSqlParser.NESTED, 0);
	}
	public TABLE(): TerminalNode {
		return this.getToken(PlSqlParser.TABLE, 0);
	}
	public tableview_name(): Tableview_nameContext {
		return this.getTypedRuleContext(Tableview_nameContext, 0) as Tableview_nameContext;
	}
	public OF(): TerminalNode {
		return this.getToken(PlSqlParser.OF, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_dml_event_nested_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterDml_event_nested_clause) {
	 		listener.enterDml_event_nested_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitDml_event_nested_clause) {
	 		listener.exitDml_event_nested_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitDml_event_nested_clause) {
			return visitor.visitDml_event_nested_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Referencing_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public REFERENCING(): TerminalNode {
		return this.getToken(PlSqlParser.REFERENCING, 0);
	}
	public referencing_element_list(): Referencing_elementContext[] {
		return this.getTypedRuleContexts(Referencing_elementContext) as Referencing_elementContext[];
	}
	public referencing_element(i: number): Referencing_elementContext {
		return this.getTypedRuleContext(Referencing_elementContext, i) as Referencing_elementContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_referencing_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterReferencing_clause) {
	 		listener.enterReferencing_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitReferencing_clause) {
	 		listener.exitReferencing_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitReferencing_clause) {
			return visitor.visitReferencing_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Referencing_elementContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public column_alias(): Column_aliasContext {
		return this.getTypedRuleContext(Column_aliasContext, 0) as Column_aliasContext;
	}
	public NEW(): TerminalNode {
		return this.getToken(PlSqlParser.NEW, 0);
	}
	public OLD(): TerminalNode {
		return this.getToken(PlSqlParser.OLD, 0);
	}
	public PARENT(): TerminalNode {
		return this.getToken(PlSqlParser.PARENT, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_referencing_element;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterReferencing_element) {
	 		listener.enterReferencing_element(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitReferencing_element) {
	 		listener.exitReferencing_element(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitReferencing_element) {
			return visitor.visitReferencing_element(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Drop_typeContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public DROP(): TerminalNode {
		return this.getToken(PlSqlParser.DROP, 0);
	}
	public TYPE(): TerminalNode {
		return this.getToken(PlSqlParser.TYPE, 0);
	}
	public type_name(): Type_nameContext {
		return this.getTypedRuleContext(Type_nameContext, 0) as Type_nameContext;
	}
	public SEMICOLON(): TerminalNode {
		return this.getToken(PlSqlParser.SEMICOLON, 0);
	}
	public BODY(): TerminalNode {
		return this.getToken(PlSqlParser.BODY, 0);
	}
	public FORCE(): TerminalNode {
		return this.getToken(PlSqlParser.FORCE, 0);
	}
	public VALIDATE(): TerminalNode {
		return this.getToken(PlSqlParser.VALIDATE, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_drop_type;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterDrop_type) {
	 		listener.enterDrop_type(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitDrop_type) {
	 		listener.exitDrop_type(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitDrop_type) {
			return visitor.visitDrop_type(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Alter_typeContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public ALTER(): TerminalNode {
		return this.getToken(PlSqlParser.ALTER, 0);
	}
	public TYPE(): TerminalNode {
		return this.getToken(PlSqlParser.TYPE, 0);
	}
	public type_name(): Type_nameContext {
		return this.getTypedRuleContext(Type_nameContext, 0) as Type_nameContext;
	}
	public SEMICOLON(): TerminalNode {
		return this.getToken(PlSqlParser.SEMICOLON, 0);
	}
	public compile_type_clause(): Compile_type_clauseContext {
		return this.getTypedRuleContext(Compile_type_clauseContext, 0) as Compile_type_clauseContext;
	}
	public replace_type_clause(): Replace_type_clauseContext {
		return this.getTypedRuleContext(Replace_type_clauseContext, 0) as Replace_type_clauseContext;
	}
	public alter_method_spec(): Alter_method_specContext {
		return this.getTypedRuleContext(Alter_method_specContext, 0) as Alter_method_specContext;
	}
	public alter_collection_clauses(): Alter_collection_clausesContext {
		return this.getTypedRuleContext(Alter_collection_clausesContext, 0) as Alter_collection_clausesContext;
	}
	public modifier_clause(): Modifier_clauseContext {
		return this.getTypedRuleContext(Modifier_clauseContext, 0) as Modifier_clauseContext;
	}
	public overriding_subprogram_spec(): Overriding_subprogram_specContext {
		return this.getTypedRuleContext(Overriding_subprogram_specContext, 0) as Overriding_subprogram_specContext;
	}
	public dependent_handling_clause(): Dependent_handling_clauseContext {
		return this.getTypedRuleContext(Dependent_handling_clauseContext, 0) as Dependent_handling_clauseContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_alter_type;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterAlter_type) {
	 		listener.enterAlter_type(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitAlter_type) {
	 		listener.exitAlter_type(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitAlter_type) {
			return visitor.visitAlter_type(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Compile_type_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public COMPILE(): TerminalNode {
		return this.getToken(PlSqlParser.COMPILE, 0);
	}
	public DEBUG(): TerminalNode {
		return this.getToken(PlSqlParser.DEBUG, 0);
	}
	public compiler_parameters_clause_list(): Compiler_parameters_clauseContext[] {
		return this.getTypedRuleContexts(Compiler_parameters_clauseContext) as Compiler_parameters_clauseContext[];
	}
	public compiler_parameters_clause(i: number): Compiler_parameters_clauseContext {
		return this.getTypedRuleContext(Compiler_parameters_clauseContext, i) as Compiler_parameters_clauseContext;
	}
	public REUSE(): TerminalNode {
		return this.getToken(PlSqlParser.REUSE, 0);
	}
	public SETTINGS(): TerminalNode {
		return this.getToken(PlSqlParser.SETTINGS, 0);
	}
	public SPECIFICATION(): TerminalNode {
		return this.getToken(PlSqlParser.SPECIFICATION, 0);
	}
	public BODY(): TerminalNode {
		return this.getToken(PlSqlParser.BODY, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_compile_type_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterCompile_type_clause) {
	 		listener.enterCompile_type_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitCompile_type_clause) {
	 		listener.exitCompile_type_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitCompile_type_clause) {
			return visitor.visitCompile_type_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Replace_type_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public REPLACE(): TerminalNode {
		return this.getToken(PlSqlParser.REPLACE, 0);
	}
	public AS(): TerminalNode {
		return this.getToken(PlSqlParser.AS, 0);
	}
	public OBJECT(): TerminalNode {
		return this.getToken(PlSqlParser.OBJECT, 0);
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public object_member_spec_list(): Object_member_specContext[] {
		return this.getTypedRuleContexts(Object_member_specContext) as Object_member_specContext[];
	}
	public object_member_spec(i: number): Object_member_specContext {
		return this.getTypedRuleContext(Object_member_specContext, i) as Object_member_specContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public invoker_rights_clause(): Invoker_rights_clauseContext {
		return this.getTypedRuleContext(Invoker_rights_clauseContext, 0) as Invoker_rights_clauseContext;
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_replace_type_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterReplace_type_clause) {
	 		listener.enterReplace_type_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitReplace_type_clause) {
	 		listener.exitReplace_type_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitReplace_type_clause) {
			return visitor.visitReplace_type_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Alter_method_specContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public alter_method_element_list(): Alter_method_elementContext[] {
		return this.getTypedRuleContexts(Alter_method_elementContext) as Alter_method_elementContext[];
	}
	public alter_method_element(i: number): Alter_method_elementContext {
		return this.getTypedRuleContext(Alter_method_elementContext, i) as Alter_method_elementContext;
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_alter_method_spec;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterAlter_method_spec) {
	 		listener.enterAlter_method_spec(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitAlter_method_spec) {
	 		listener.exitAlter_method_spec(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitAlter_method_spec) {
			return visitor.visitAlter_method_spec(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Alter_method_elementContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public ADD(): TerminalNode {
		return this.getToken(PlSqlParser.ADD, 0);
	}
	public DROP(): TerminalNode {
		return this.getToken(PlSqlParser.DROP, 0);
	}
	public map_order_function_spec(): Map_order_function_specContext {
		return this.getTypedRuleContext(Map_order_function_specContext, 0) as Map_order_function_specContext;
	}
	public subprogram_spec(): Subprogram_specContext {
		return this.getTypedRuleContext(Subprogram_specContext, 0) as Subprogram_specContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_alter_method_element;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterAlter_method_element) {
	 		listener.enterAlter_method_element(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitAlter_method_element) {
	 		listener.exitAlter_method_element(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitAlter_method_element) {
			return visitor.visitAlter_method_element(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Alter_attribute_definitionContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public ATTRIBUTE(): TerminalNode {
		return this.getToken(PlSqlParser.ATTRIBUTE, 0);
	}
	public ADD(): TerminalNode {
		return this.getToken(PlSqlParser.ADD, 0);
	}
	public MODIFY(): TerminalNode {
		return this.getToken(PlSqlParser.MODIFY, 0);
	}
	public DROP(): TerminalNode {
		return this.getToken(PlSqlParser.DROP, 0);
	}
	public attribute_definition_list(): Attribute_definitionContext[] {
		return this.getTypedRuleContexts(Attribute_definitionContext) as Attribute_definitionContext[];
	}
	public attribute_definition(i: number): Attribute_definitionContext {
		return this.getTypedRuleContext(Attribute_definitionContext, i) as Attribute_definitionContext;
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_alter_attribute_definition;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterAlter_attribute_definition) {
	 		listener.enterAlter_attribute_definition(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitAlter_attribute_definition) {
	 		listener.exitAlter_attribute_definition(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitAlter_attribute_definition) {
			return visitor.visitAlter_attribute_definition(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Attribute_definitionContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public attribute_name(): Attribute_nameContext {
		return this.getTypedRuleContext(Attribute_nameContext, 0) as Attribute_nameContext;
	}
	public type_spec(): Type_specContext {
		return this.getTypedRuleContext(Type_specContext, 0) as Type_specContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_attribute_definition;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterAttribute_definition) {
	 		listener.enterAttribute_definition(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitAttribute_definition) {
	 		listener.exitAttribute_definition(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitAttribute_definition) {
			return visitor.visitAttribute_definition(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Alter_collection_clausesContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public MODIFY(): TerminalNode {
		return this.getToken(PlSqlParser.MODIFY, 0);
	}
	public LIMIT(): TerminalNode {
		return this.getToken(PlSqlParser.LIMIT, 0);
	}
	public expression(): ExpressionContext {
		return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext;
	}
	public ELEMENT(): TerminalNode {
		return this.getToken(PlSqlParser.ELEMENT, 0);
	}
	public TYPE(): TerminalNode {
		return this.getToken(PlSqlParser.TYPE, 0);
	}
	public type_spec(): Type_specContext {
		return this.getTypedRuleContext(Type_specContext, 0) as Type_specContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_alter_collection_clauses;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterAlter_collection_clauses) {
	 		listener.enterAlter_collection_clauses(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitAlter_collection_clauses) {
	 		listener.exitAlter_collection_clauses(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitAlter_collection_clauses) {
			return visitor.visitAlter_collection_clauses(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Dependent_handling_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public INVALIDATE(): TerminalNode {
		return this.getToken(PlSqlParser.INVALIDATE, 0);
	}
	public CASCADE(): TerminalNode {
		return this.getToken(PlSqlParser.CASCADE, 0);
	}
	public CONVERT(): TerminalNode {
		return this.getToken(PlSqlParser.CONVERT, 0);
	}
	public TO(): TerminalNode {
		return this.getToken(PlSqlParser.TO, 0);
	}
	public SUBSTITUTABLE(): TerminalNode {
		return this.getToken(PlSqlParser.SUBSTITUTABLE, 0);
	}
	public INCLUDING(): TerminalNode {
		return this.getToken(PlSqlParser.INCLUDING, 0);
	}
	public TABLE(): TerminalNode {
		return this.getToken(PlSqlParser.TABLE, 0);
	}
	public DATA(): TerminalNode {
		return this.getToken(PlSqlParser.DATA, 0);
	}
	public dependent_exceptions_part(): Dependent_exceptions_partContext {
		return this.getTypedRuleContext(Dependent_exceptions_partContext, 0) as Dependent_exceptions_partContext;
	}
	public NOT(): TerminalNode {
		return this.getToken(PlSqlParser.NOT, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_dependent_handling_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterDependent_handling_clause) {
	 		listener.enterDependent_handling_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitDependent_handling_clause) {
	 		listener.exitDependent_handling_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitDependent_handling_clause) {
			return visitor.visitDependent_handling_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Dependent_exceptions_partContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public EXCEPTIONS(): TerminalNode {
		return this.getToken(PlSqlParser.EXCEPTIONS, 0);
	}
	public INTO(): TerminalNode {
		return this.getToken(PlSqlParser.INTO, 0);
	}
	public tableview_name(): Tableview_nameContext {
		return this.getTypedRuleContext(Tableview_nameContext, 0) as Tableview_nameContext;
	}
	public FORCE(): TerminalNode {
		return this.getToken(PlSqlParser.FORCE, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_dependent_exceptions_part;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterDependent_exceptions_part) {
	 		listener.enterDependent_exceptions_part(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitDependent_exceptions_part) {
	 		listener.exitDependent_exceptions_part(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitDependent_exceptions_part) {
			return visitor.visitDependent_exceptions_part(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Create_typeContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public CREATE(): TerminalNode {
		return this.getToken(PlSqlParser.CREATE, 0);
	}
	public TYPE(): TerminalNode {
		return this.getToken(PlSqlParser.TYPE, 0);
	}
	public SEMICOLON(): TerminalNode {
		return this.getToken(PlSqlParser.SEMICOLON, 0);
	}
	public type_definition(): Type_definitionContext {
		return this.getTypedRuleContext(Type_definitionContext, 0) as Type_definitionContext;
	}
	public type_body(): Type_bodyContext {
		return this.getTypedRuleContext(Type_bodyContext, 0) as Type_bodyContext;
	}
	public OR(): TerminalNode {
		return this.getToken(PlSqlParser.OR, 0);
	}
	public REPLACE(): TerminalNode {
		return this.getToken(PlSqlParser.REPLACE, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_create_type;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterCreate_type) {
	 		listener.enterCreate_type(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitCreate_type) {
	 		listener.exitCreate_type(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitCreate_type) {
			return visitor.visitCreate_type(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Type_definitionContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public type_name(): Type_nameContext {
		return this.getTypedRuleContext(Type_nameContext, 0) as Type_nameContext;
	}
	public OID(): TerminalNode {
		return this.getToken(PlSqlParser.OID, 0);
	}
	public CHAR_STRING(): TerminalNode {
		return this.getToken(PlSqlParser.CHAR_STRING, 0);
	}
	public object_type_def(): Object_type_defContext {
		return this.getTypedRuleContext(Object_type_defContext, 0) as Object_type_defContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_type_definition;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterType_definition) {
	 		listener.enterType_definition(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitType_definition) {
	 		listener.exitType_definition(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitType_definition) {
			return visitor.visitType_definition(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Object_type_defContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public object_as_part(): Object_as_partContext {
		return this.getTypedRuleContext(Object_as_partContext, 0) as Object_as_partContext;
	}
	public object_under_part(): Object_under_partContext {
		return this.getTypedRuleContext(Object_under_partContext, 0) as Object_under_partContext;
	}
	public invoker_rights_clause(): Invoker_rights_clauseContext {
		return this.getTypedRuleContext(Invoker_rights_clauseContext, 0) as Invoker_rights_clauseContext;
	}
	public sqlj_object_type(): Sqlj_object_typeContext {
		return this.getTypedRuleContext(Sqlj_object_typeContext, 0) as Sqlj_object_typeContext;
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public object_member_spec_list(): Object_member_specContext[] {
		return this.getTypedRuleContexts(Object_member_specContext) as Object_member_specContext[];
	}
	public object_member_spec(i: number): Object_member_specContext {
		return this.getTypedRuleContext(Object_member_specContext, i) as Object_member_specContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public modifier_clause_list(): Modifier_clauseContext[] {
		return this.getTypedRuleContexts(Modifier_clauseContext) as Modifier_clauseContext[];
	}
	public modifier_clause(i: number): Modifier_clauseContext {
		return this.getTypedRuleContext(Modifier_clauseContext, i) as Modifier_clauseContext;
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_object_type_def;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterObject_type_def) {
	 		listener.enterObject_type_def(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitObject_type_def) {
	 		listener.exitObject_type_def(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitObject_type_def) {
			return visitor.visitObject_type_def(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Object_as_partContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public IS(): TerminalNode {
		return this.getToken(PlSqlParser.IS, 0);
	}
	public AS(): TerminalNode {
		return this.getToken(PlSqlParser.AS, 0);
	}
	public OBJECT(): TerminalNode {
		return this.getToken(PlSqlParser.OBJECT, 0);
	}
	public varray_type_def(): Varray_type_defContext {
		return this.getTypedRuleContext(Varray_type_defContext, 0) as Varray_type_defContext;
	}
	public nested_table_type_def(): Nested_table_type_defContext {
		return this.getTypedRuleContext(Nested_table_type_defContext, 0) as Nested_table_type_defContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_object_as_part;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterObject_as_part) {
	 		listener.enterObject_as_part(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitObject_as_part) {
	 		listener.exitObject_as_part(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitObject_as_part) {
			return visitor.visitObject_as_part(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Object_under_partContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public UNDER(): TerminalNode {
		return this.getToken(PlSqlParser.UNDER, 0);
	}
	public type_spec(): Type_specContext {
		return this.getTypedRuleContext(Type_specContext, 0) as Type_specContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_object_under_part;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterObject_under_part) {
	 		listener.enterObject_under_part(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitObject_under_part) {
	 		listener.exitObject_under_part(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitObject_under_part) {
			return visitor.visitObject_under_part(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Nested_table_type_defContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public TABLE(): TerminalNode {
		return this.getToken(PlSqlParser.TABLE, 0);
	}
	public OF(): TerminalNode {
		return this.getToken(PlSqlParser.OF, 0);
	}
	public type_spec(): Type_specContext {
		return this.getTypedRuleContext(Type_specContext, 0) as Type_specContext;
	}
	public NOT(): TerminalNode {
		return this.getToken(PlSqlParser.NOT, 0);
	}
	public NULL_(): TerminalNode {
		return this.getToken(PlSqlParser.NULL_, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_nested_table_type_def;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterNested_table_type_def) {
	 		listener.enterNested_table_type_def(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitNested_table_type_def) {
	 		listener.exitNested_table_type_def(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitNested_table_type_def) {
			return visitor.visitNested_table_type_def(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Sqlj_object_typeContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public EXTERNAL(): TerminalNode {
		return this.getToken(PlSqlParser.EXTERNAL, 0);
	}
	public NAME(): TerminalNode {
		return this.getToken(PlSqlParser.NAME, 0);
	}
	public expression(): ExpressionContext {
		return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext;
	}
	public LANGUAGE(): TerminalNode {
		return this.getToken(PlSqlParser.LANGUAGE, 0);
	}
	public JAVA(): TerminalNode {
		return this.getToken(PlSqlParser.JAVA, 0);
	}
	public USING(): TerminalNode {
		return this.getToken(PlSqlParser.USING, 0);
	}
	public SQLDATA(): TerminalNode {
		return this.getToken(PlSqlParser.SQLDATA, 0);
	}
	public CUSTOMDATUM(): TerminalNode {
		return this.getToken(PlSqlParser.CUSTOMDATUM, 0);
	}
	public ORADATA(): TerminalNode {
		return this.getToken(PlSqlParser.ORADATA, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_sqlj_object_type;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterSqlj_object_type) {
	 		listener.enterSqlj_object_type(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitSqlj_object_type) {
	 		listener.exitSqlj_object_type(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitSqlj_object_type) {
			return visitor.visitSqlj_object_type(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Type_bodyContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public BODY(): TerminalNode {
		return this.getToken(PlSqlParser.BODY, 0);
	}
	public type_name(): Type_nameContext {
		return this.getTypedRuleContext(Type_nameContext, 0) as Type_nameContext;
	}
	public END(): TerminalNode {
		return this.getToken(PlSqlParser.END, 0);
	}
	public IS(): TerminalNode {
		return this.getToken(PlSqlParser.IS, 0);
	}
	public AS(): TerminalNode {
		return this.getToken(PlSqlParser.AS, 0);
	}
	public type_body_elements_list(): Type_body_elementsContext[] {
		return this.getTypedRuleContexts(Type_body_elementsContext) as Type_body_elementsContext[];
	}
	public type_body_elements(i: number): Type_body_elementsContext {
		return this.getTypedRuleContext(Type_body_elementsContext, i) as Type_body_elementsContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_type_body;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterType_body) {
	 		listener.enterType_body(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitType_body) {
	 		listener.exitType_body(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitType_body) {
			return visitor.visitType_body(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Type_body_elementsContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public map_order_func_declaration(): Map_order_func_declarationContext {
		return this.getTypedRuleContext(Map_order_func_declarationContext, 0) as Map_order_func_declarationContext;
	}
	public subprog_decl_in_type(): Subprog_decl_in_typeContext {
		return this.getTypedRuleContext(Subprog_decl_in_typeContext, 0) as Subprog_decl_in_typeContext;
	}
	public overriding_subprogram_spec(): Overriding_subprogram_specContext {
		return this.getTypedRuleContext(Overriding_subprogram_specContext, 0) as Overriding_subprogram_specContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_type_body_elements;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterType_body_elements) {
	 		listener.enterType_body_elements(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitType_body_elements) {
	 		listener.exitType_body_elements(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitType_body_elements) {
			return visitor.visitType_body_elements(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Map_order_func_declarationContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public MEMBER(): TerminalNode {
		return this.getToken(PlSqlParser.MEMBER, 0);
	}
	public func_decl_in_type(): Func_decl_in_typeContext {
		return this.getTypedRuleContext(Func_decl_in_typeContext, 0) as Func_decl_in_typeContext;
	}
	public MAP(): TerminalNode {
		return this.getToken(PlSqlParser.MAP, 0);
	}
	public ORDER(): TerminalNode {
		return this.getToken(PlSqlParser.ORDER, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_map_order_func_declaration;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterMap_order_func_declaration) {
	 		listener.enterMap_order_func_declaration(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitMap_order_func_declaration) {
	 		listener.exitMap_order_func_declaration(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitMap_order_func_declaration) {
			return visitor.visitMap_order_func_declaration(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Subprog_decl_in_typeContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public MEMBER(): TerminalNode {
		return this.getToken(PlSqlParser.MEMBER, 0);
	}
	public STATIC(): TerminalNode {
		return this.getToken(PlSqlParser.STATIC, 0);
	}
	public proc_decl_in_type(): Proc_decl_in_typeContext {
		return this.getTypedRuleContext(Proc_decl_in_typeContext, 0) as Proc_decl_in_typeContext;
	}
	public func_decl_in_type(): Func_decl_in_typeContext {
		return this.getTypedRuleContext(Func_decl_in_typeContext, 0) as Func_decl_in_typeContext;
	}
	public constructor_declaration(): Constructor_declarationContext {
		return this.getTypedRuleContext(Constructor_declarationContext, 0) as Constructor_declarationContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_subprog_decl_in_type;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterSubprog_decl_in_type) {
	 		listener.enterSubprog_decl_in_type(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitSubprog_decl_in_type) {
	 		listener.exitSubprog_decl_in_type(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitSubprog_decl_in_type) {
			return visitor.visitSubprog_decl_in_type(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Proc_decl_in_typeContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public PROCEDURE(): TerminalNode {
		return this.getToken(PlSqlParser.PROCEDURE, 0);
	}
	public procedure_name(): Procedure_nameContext {
		return this.getTypedRuleContext(Procedure_nameContext, 0) as Procedure_nameContext;
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public type_elements_parameter_list(): Type_elements_parameterContext[] {
		return this.getTypedRuleContexts(Type_elements_parameterContext) as Type_elements_parameterContext[];
	}
	public type_elements_parameter(i: number): Type_elements_parameterContext {
		return this.getTypedRuleContext(Type_elements_parameterContext, i) as Type_elements_parameterContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public IS(): TerminalNode {
		return this.getToken(PlSqlParser.IS, 0);
	}
	public AS(): TerminalNode {
		return this.getToken(PlSqlParser.AS, 0);
	}
	public call_spec(): Call_specContext {
		return this.getTypedRuleContext(Call_specContext, 0) as Call_specContext;
	}
	public body(): BodyContext {
		return this.getTypedRuleContext(BodyContext, 0) as BodyContext;
	}
	public SEMICOLON(): TerminalNode {
		return this.getToken(PlSqlParser.SEMICOLON, 0);
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
	public DECLARE(): TerminalNode {
		return this.getToken(PlSqlParser.DECLARE, 0);
	}
	public seq_of_declare_specs(): Seq_of_declare_specsContext {
		return this.getTypedRuleContext(Seq_of_declare_specsContext, 0) as Seq_of_declare_specsContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_proc_decl_in_type;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterProc_decl_in_type) {
	 		listener.enterProc_decl_in_type(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitProc_decl_in_type) {
	 		listener.exitProc_decl_in_type(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitProc_decl_in_type) {
			return visitor.visitProc_decl_in_type(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Func_decl_in_typeContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public FUNCTION(): TerminalNode {
		return this.getToken(PlSqlParser.FUNCTION, 0);
	}
	public function_name(): Function_nameContext {
		return this.getTypedRuleContext(Function_nameContext, 0) as Function_nameContext;
	}
	public RETURN(): TerminalNode {
		return this.getToken(PlSqlParser.RETURN, 0);
	}
	public type_spec(): Type_specContext {
		return this.getTypedRuleContext(Type_specContext, 0) as Type_specContext;
	}
	public IS(): TerminalNode {
		return this.getToken(PlSqlParser.IS, 0);
	}
	public AS(): TerminalNode {
		return this.getToken(PlSqlParser.AS, 0);
	}
	public call_spec(): Call_specContext {
		return this.getTypedRuleContext(Call_specContext, 0) as Call_specContext;
	}
	public body(): BodyContext {
		return this.getTypedRuleContext(BodyContext, 0) as BodyContext;
	}
	public SEMICOLON(): TerminalNode {
		return this.getToken(PlSqlParser.SEMICOLON, 0);
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public type_elements_parameter_list(): Type_elements_parameterContext[] {
		return this.getTypedRuleContexts(Type_elements_parameterContext) as Type_elements_parameterContext[];
	}
	public type_elements_parameter(i: number): Type_elements_parameterContext {
		return this.getTypedRuleContext(Type_elements_parameterContext, i) as Type_elements_parameterContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public DECLARE(): TerminalNode {
		return this.getToken(PlSqlParser.DECLARE, 0);
	}
	public seq_of_declare_specs(): Seq_of_declare_specsContext {
		return this.getTypedRuleContext(Seq_of_declare_specsContext, 0) as Seq_of_declare_specsContext;
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_func_decl_in_type;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterFunc_decl_in_type) {
	 		listener.enterFunc_decl_in_type(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitFunc_decl_in_type) {
	 		listener.exitFunc_decl_in_type(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitFunc_decl_in_type) {
			return visitor.visitFunc_decl_in_type(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Constructor_declarationContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public CONSTRUCTOR(): TerminalNode {
		return this.getToken(PlSqlParser.CONSTRUCTOR, 0);
	}
	public FUNCTION(): TerminalNode {
		return this.getToken(PlSqlParser.FUNCTION, 0);
	}
	public type_spec_list(): Type_specContext[] {
		return this.getTypedRuleContexts(Type_specContext) as Type_specContext[];
	}
	public type_spec(i: number): Type_specContext {
		return this.getTypedRuleContext(Type_specContext, i) as Type_specContext;
	}
	public RETURN(): TerminalNode {
		return this.getToken(PlSqlParser.RETURN, 0);
	}
	public SELF_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.SELF);
	}
	public SELF(i: number): TerminalNode {
		return this.getToken(PlSqlParser.SELF, i);
	}
	public AS_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.AS);
	}
	public AS(i: number): TerminalNode {
		return this.getToken(PlSqlParser.AS, i);
	}
	public RESULT(): TerminalNode {
		return this.getToken(PlSqlParser.RESULT, 0);
	}
	public IS(): TerminalNode {
		return this.getToken(PlSqlParser.IS, 0);
	}
	public call_spec(): Call_specContext {
		return this.getTypedRuleContext(Call_specContext, 0) as Call_specContext;
	}
	public body(): BodyContext {
		return this.getTypedRuleContext(BodyContext, 0) as BodyContext;
	}
	public SEMICOLON(): TerminalNode {
		return this.getToken(PlSqlParser.SEMICOLON, 0);
	}
	public FINAL(): TerminalNode {
		return this.getToken(PlSqlParser.FINAL, 0);
	}
	public INSTANTIABLE(): TerminalNode {
		return this.getToken(PlSqlParser.INSTANTIABLE, 0);
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public type_elements_parameter_list(): Type_elements_parameterContext[] {
		return this.getTypedRuleContexts(Type_elements_parameterContext) as Type_elements_parameterContext[];
	}
	public type_elements_parameter(i: number): Type_elements_parameterContext {
		return this.getTypedRuleContext(Type_elements_parameterContext, i) as Type_elements_parameterContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public IN(): TerminalNode {
		return this.getToken(PlSqlParser.IN, 0);
	}
	public OUT(): TerminalNode {
		return this.getToken(PlSqlParser.OUT, 0);
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
	public DECLARE(): TerminalNode {
		return this.getToken(PlSqlParser.DECLARE, 0);
	}
	public seq_of_declare_specs(): Seq_of_declare_specsContext {
		return this.getTypedRuleContext(Seq_of_declare_specsContext, 0) as Seq_of_declare_specsContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_constructor_declaration;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterConstructor_declaration) {
	 		listener.enterConstructor_declaration(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitConstructor_declaration) {
	 		listener.exitConstructor_declaration(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitConstructor_declaration) {
			return visitor.visitConstructor_declaration(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Modifier_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public INSTANTIABLE(): TerminalNode {
		return this.getToken(PlSqlParser.INSTANTIABLE, 0);
	}
	public FINAL(): TerminalNode {
		return this.getToken(PlSqlParser.FINAL, 0);
	}
	public OVERRIDING(): TerminalNode {
		return this.getToken(PlSqlParser.OVERRIDING, 0);
	}
	public NOT(): TerminalNode {
		return this.getToken(PlSqlParser.NOT, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_modifier_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterModifier_clause) {
	 		listener.enterModifier_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitModifier_clause) {
	 		listener.exitModifier_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitModifier_clause) {
			return visitor.visitModifier_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Object_member_specContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public identifier(): IdentifierContext {
		return this.getTypedRuleContext(IdentifierContext, 0) as IdentifierContext;
	}
	public type_spec(): Type_specContext {
		return this.getTypedRuleContext(Type_specContext, 0) as Type_specContext;
	}
	public sqlj_object_type_attr(): Sqlj_object_type_attrContext {
		return this.getTypedRuleContext(Sqlj_object_type_attrContext, 0) as Sqlj_object_type_attrContext;
	}
	public element_spec(): Element_specContext {
		return this.getTypedRuleContext(Element_specContext, 0) as Element_specContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_object_member_spec;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterObject_member_spec) {
	 		listener.enterObject_member_spec(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitObject_member_spec) {
	 		listener.exitObject_member_spec(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitObject_member_spec) {
			return visitor.visitObject_member_spec(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Sqlj_object_type_attrContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public EXTERNAL(): TerminalNode {
		return this.getToken(PlSqlParser.EXTERNAL, 0);
	}
	public NAME(): TerminalNode {
		return this.getToken(PlSqlParser.NAME, 0);
	}
	public expression(): ExpressionContext {
		return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_sqlj_object_type_attr;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterSqlj_object_type_attr) {
	 		listener.enterSqlj_object_type_attr(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitSqlj_object_type_attr) {
	 		listener.exitSqlj_object_type_attr(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitSqlj_object_type_attr) {
			return visitor.visitSqlj_object_type_attr(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Element_specContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public modifier_clause(): Modifier_clauseContext {
		return this.getTypedRuleContext(Modifier_clauseContext, 0) as Modifier_clauseContext;
	}
	public element_spec_options_list(): Element_spec_optionsContext[] {
		return this.getTypedRuleContexts(Element_spec_optionsContext) as Element_spec_optionsContext[];
	}
	public element_spec_options(i: number): Element_spec_optionsContext {
		return this.getTypedRuleContext(Element_spec_optionsContext, i) as Element_spec_optionsContext;
	}
	public COMMA(): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, 0);
	}
	public pragma_clause(): Pragma_clauseContext {
		return this.getTypedRuleContext(Pragma_clauseContext, 0) as Pragma_clauseContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_element_spec;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterElement_spec) {
	 		listener.enterElement_spec(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitElement_spec) {
	 		listener.exitElement_spec(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitElement_spec) {
			return visitor.visitElement_spec(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Element_spec_optionsContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public subprogram_spec(): Subprogram_specContext {
		return this.getTypedRuleContext(Subprogram_specContext, 0) as Subprogram_specContext;
	}
	public constructor_spec(): Constructor_specContext {
		return this.getTypedRuleContext(Constructor_specContext, 0) as Constructor_specContext;
	}
	public map_order_function_spec(): Map_order_function_specContext {
		return this.getTypedRuleContext(Map_order_function_specContext, 0) as Map_order_function_specContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_element_spec_options;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterElement_spec_options) {
	 		listener.enterElement_spec_options(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitElement_spec_options) {
	 		listener.exitElement_spec_options(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitElement_spec_options) {
			return visitor.visitElement_spec_options(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Subprogram_specContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public MEMBER(): TerminalNode {
		return this.getToken(PlSqlParser.MEMBER, 0);
	}
	public STATIC(): TerminalNode {
		return this.getToken(PlSqlParser.STATIC, 0);
	}
	public type_procedure_spec(): Type_procedure_specContext {
		return this.getTypedRuleContext(Type_procedure_specContext, 0) as Type_procedure_specContext;
	}
	public type_function_spec(): Type_function_specContext {
		return this.getTypedRuleContext(Type_function_specContext, 0) as Type_function_specContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_subprogram_spec;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterSubprogram_spec) {
	 		listener.enterSubprogram_spec(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitSubprogram_spec) {
	 		listener.exitSubprogram_spec(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitSubprogram_spec) {
			return visitor.visitSubprogram_spec(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Overriding_subprogram_specContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public OVERRIDING(): TerminalNode {
		return this.getToken(PlSqlParser.OVERRIDING, 0);
	}
	public MEMBER(): TerminalNode {
		return this.getToken(PlSqlParser.MEMBER, 0);
	}
	public overriding_function_spec(): Overriding_function_specContext {
		return this.getTypedRuleContext(Overriding_function_specContext, 0) as Overriding_function_specContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_overriding_subprogram_spec;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterOverriding_subprogram_spec) {
	 		listener.enterOverriding_subprogram_spec(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitOverriding_subprogram_spec) {
	 		listener.exitOverriding_subprogram_spec(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitOverriding_subprogram_spec) {
			return visitor.visitOverriding_subprogram_spec(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Overriding_function_specContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public FUNCTION(): TerminalNode {
		return this.getToken(PlSqlParser.FUNCTION, 0);
	}
	public function_name(): Function_nameContext {
		return this.getTypedRuleContext(Function_nameContext, 0) as Function_nameContext;
	}
	public RETURN(): TerminalNode {
		return this.getToken(PlSqlParser.RETURN, 0);
	}
	public type_spec(): Type_specContext {
		return this.getTypedRuleContext(Type_specContext, 0) as Type_specContext;
	}
	public SELF(): TerminalNode {
		return this.getToken(PlSqlParser.SELF, 0);
	}
	public AS_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.AS);
	}
	public AS(i: number): TerminalNode {
		return this.getToken(PlSqlParser.AS, i);
	}
	public RESULT(): TerminalNode {
		return this.getToken(PlSqlParser.RESULT, 0);
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public type_elements_parameter_list(): Type_elements_parameterContext[] {
		return this.getTypedRuleContexts(Type_elements_parameterContext) as Type_elements_parameterContext[];
	}
	public type_elements_parameter(i: number): Type_elements_parameterContext {
		return this.getTypedRuleContext(Type_elements_parameterContext, i) as Type_elements_parameterContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public SEMICOLON(): TerminalNode {
		return this.getToken(PlSqlParser.SEMICOLON, 0);
	}
	public IS(): TerminalNode {
		return this.getToken(PlSqlParser.IS, 0);
	}
	public body(): BodyContext {
		return this.getTypedRuleContext(BodyContext, 0) as BodyContext;
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
	public PIPELINED(): TerminalNode {
		return this.getToken(PlSqlParser.PIPELINED, 0);
	}
	public DECLARE(): TerminalNode {
		return this.getToken(PlSqlParser.DECLARE, 0);
	}
	public seq_of_declare_specs(): Seq_of_declare_specsContext {
		return this.getTypedRuleContext(Seq_of_declare_specsContext, 0) as Seq_of_declare_specsContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_overriding_function_spec;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterOverriding_function_spec) {
	 		listener.enterOverriding_function_spec(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitOverriding_function_spec) {
	 		listener.exitOverriding_function_spec(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitOverriding_function_spec) {
			return visitor.visitOverriding_function_spec(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Type_procedure_specContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public PROCEDURE(): TerminalNode {
		return this.getToken(PlSqlParser.PROCEDURE, 0);
	}
	public procedure_name(): Procedure_nameContext {
		return this.getTypedRuleContext(Procedure_nameContext, 0) as Procedure_nameContext;
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public type_elements_parameter_list(): Type_elements_parameterContext[] {
		return this.getTypedRuleContexts(Type_elements_parameterContext) as Type_elements_parameterContext[];
	}
	public type_elements_parameter(i: number): Type_elements_parameterContext {
		return this.getTypedRuleContext(Type_elements_parameterContext, i) as Type_elements_parameterContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
	public call_spec(): Call_specContext {
		return this.getTypedRuleContext(Call_specContext, 0) as Call_specContext;
	}
	public IS(): TerminalNode {
		return this.getToken(PlSqlParser.IS, 0);
	}
	public AS(): TerminalNode {
		return this.getToken(PlSqlParser.AS, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_type_procedure_spec;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterType_procedure_spec) {
	 		listener.enterType_procedure_spec(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitType_procedure_spec) {
	 		listener.exitType_procedure_spec(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitType_procedure_spec) {
			return visitor.visitType_procedure_spec(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Type_function_specContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public FUNCTION(): TerminalNode {
		return this.getToken(PlSqlParser.FUNCTION, 0);
	}
	public function_name(): Function_nameContext {
		return this.getTypedRuleContext(Function_nameContext, 0) as Function_nameContext;
	}
	public RETURN(): TerminalNode {
		return this.getToken(PlSqlParser.RETURN, 0);
	}
	public type_spec(): Type_specContext {
		return this.getTypedRuleContext(Type_specContext, 0) as Type_specContext;
	}
	public SELF(): TerminalNode {
		return this.getToken(PlSqlParser.SELF, 0);
	}
	public AS_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.AS);
	}
	public AS(i: number): TerminalNode {
		return this.getToken(PlSqlParser.AS, i);
	}
	public RESULT(): TerminalNode {
		return this.getToken(PlSqlParser.RESULT, 0);
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public type_elements_parameter_list(): Type_elements_parameterContext[] {
		return this.getTypedRuleContexts(Type_elements_parameterContext) as Type_elements_parameterContext[];
	}
	public type_elements_parameter(i: number): Type_elements_parameterContext {
		return this.getTypedRuleContext(Type_elements_parameterContext, i) as Type_elements_parameterContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public call_spec(): Call_specContext {
		return this.getTypedRuleContext(Call_specContext, 0) as Call_specContext;
	}
	public EXTERNAL(): TerminalNode {
		return this.getToken(PlSqlParser.EXTERNAL, 0);
	}
	public NAME(): TerminalNode {
		return this.getToken(PlSqlParser.NAME, 0);
	}
	public expression(): ExpressionContext {
		return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext;
	}
	public IS(): TerminalNode {
		return this.getToken(PlSqlParser.IS, 0);
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
	public VARIABLE(): TerminalNode {
		return this.getToken(PlSqlParser.VARIABLE, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_type_function_spec;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterType_function_spec) {
	 		listener.enterType_function_spec(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitType_function_spec) {
	 		listener.exitType_function_spec(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitType_function_spec) {
			return visitor.visitType_function_spec(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Constructor_specContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public CONSTRUCTOR(): TerminalNode {
		return this.getToken(PlSqlParser.CONSTRUCTOR, 0);
	}
	public FUNCTION(): TerminalNode {
		return this.getToken(PlSqlParser.FUNCTION, 0);
	}
	public type_spec_list(): Type_specContext[] {
		return this.getTypedRuleContexts(Type_specContext) as Type_specContext[];
	}
	public type_spec(i: number): Type_specContext {
		return this.getTypedRuleContext(Type_specContext, i) as Type_specContext;
	}
	public RETURN(): TerminalNode {
		return this.getToken(PlSqlParser.RETURN, 0);
	}
	public SELF_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.SELF);
	}
	public SELF(i: number): TerminalNode {
		return this.getToken(PlSqlParser.SELF, i);
	}
	public AS_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.AS);
	}
	public AS(i: number): TerminalNode {
		return this.getToken(PlSqlParser.AS, i);
	}
	public RESULT(): TerminalNode {
		return this.getToken(PlSqlParser.RESULT, 0);
	}
	public FINAL(): TerminalNode {
		return this.getToken(PlSqlParser.FINAL, 0);
	}
	public INSTANTIABLE(): TerminalNode {
		return this.getToken(PlSqlParser.INSTANTIABLE, 0);
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public type_elements_parameter_list(): Type_elements_parameterContext[] {
		return this.getTypedRuleContexts(Type_elements_parameterContext) as Type_elements_parameterContext[];
	}
	public type_elements_parameter(i: number): Type_elements_parameterContext {
		return this.getTypedRuleContext(Type_elements_parameterContext, i) as Type_elements_parameterContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public call_spec(): Call_specContext {
		return this.getTypedRuleContext(Call_specContext, 0) as Call_specContext;
	}
	public IS(): TerminalNode {
		return this.getToken(PlSqlParser.IS, 0);
	}
	public IN(): TerminalNode {
		return this.getToken(PlSqlParser.IN, 0);
	}
	public OUT(): TerminalNode {
		return this.getToken(PlSqlParser.OUT, 0);
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_constructor_spec;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterConstructor_spec) {
	 		listener.enterConstructor_spec(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitConstructor_spec) {
	 		listener.exitConstructor_spec(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitConstructor_spec) {
			return visitor.visitConstructor_spec(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Map_order_function_specContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public MEMBER(): TerminalNode {
		return this.getToken(PlSqlParser.MEMBER, 0);
	}
	public type_function_spec(): Type_function_specContext {
		return this.getTypedRuleContext(Type_function_specContext, 0) as Type_function_specContext;
	}
	public MAP(): TerminalNode {
		return this.getToken(PlSqlParser.MAP, 0);
	}
	public ORDER(): TerminalNode {
		return this.getToken(PlSqlParser.ORDER, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_map_order_function_spec;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterMap_order_function_spec) {
	 		listener.enterMap_order_function_spec(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitMap_order_function_spec) {
	 		listener.exitMap_order_function_spec(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitMap_order_function_spec) {
			return visitor.visitMap_order_function_spec(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Pragma_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public PRAGMA(): TerminalNode {
		return this.getToken(PlSqlParser.PRAGMA, 0);
	}
	public RESTRICT_REFERENCES(): TerminalNode {
		return this.getToken(PlSqlParser.RESTRICT_REFERENCES, 0);
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public pragma_elements_list(): Pragma_elementsContext[] {
		return this.getTypedRuleContexts(Pragma_elementsContext) as Pragma_elementsContext[];
	}
	public pragma_elements(i: number): Pragma_elementsContext {
		return this.getTypedRuleContext(Pragma_elementsContext, i) as Pragma_elementsContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_pragma_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterPragma_clause) {
	 		listener.enterPragma_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitPragma_clause) {
	 		listener.exitPragma_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitPragma_clause) {
			return visitor.visitPragma_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Pragma_elementsContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public identifier(): IdentifierContext {
		return this.getTypedRuleContext(IdentifierContext, 0) as IdentifierContext;
	}
	public DEFAULT(): TerminalNode {
		return this.getToken(PlSqlParser.DEFAULT, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_pragma_elements;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterPragma_elements) {
	 		listener.enterPragma_elements(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitPragma_elements) {
	 		listener.exitPragma_elements(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitPragma_elements) {
			return visitor.visitPragma_elements(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Type_elements_parameterContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public parameter_name(): Parameter_nameContext {
		return this.getTypedRuleContext(Parameter_nameContext, 0) as Parameter_nameContext;
	}
	public type_spec(): Type_specContext {
		return this.getTypedRuleContext(Type_specContext, 0) as Type_specContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_type_elements_parameter;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterType_elements_parameter) {
	 		listener.enterType_elements_parameter(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitType_elements_parameter) {
	 		listener.exitType_elements_parameter(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitType_elements_parameter) {
			return visitor.visitType_elements_parameter(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Drop_sequenceContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public DROP(): TerminalNode {
		return this.getToken(PlSqlParser.DROP, 0);
	}
	public SEQUENCE(): TerminalNode {
		return this.getToken(PlSqlParser.SEQUENCE, 0);
	}
	public sequence_name(): Sequence_nameContext {
		return this.getTypedRuleContext(Sequence_nameContext, 0) as Sequence_nameContext;
	}
	public SEMICOLON(): TerminalNode {
		return this.getToken(PlSqlParser.SEMICOLON, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_drop_sequence;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterDrop_sequence) {
	 		listener.enterDrop_sequence(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitDrop_sequence) {
	 		listener.exitDrop_sequence(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitDrop_sequence) {
			return visitor.visitDrop_sequence(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Alter_sequenceContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public ALTER(): TerminalNode {
		return this.getToken(PlSqlParser.ALTER, 0);
	}
	public SEQUENCE(): TerminalNode {
		return this.getToken(PlSqlParser.SEQUENCE, 0);
	}
	public sequence_name(): Sequence_nameContext {
		return this.getTypedRuleContext(Sequence_nameContext, 0) as Sequence_nameContext;
	}
	public SEMICOLON(): TerminalNode {
		return this.getToken(PlSqlParser.SEMICOLON, 0);
	}
	public sequence_spec_list(): Sequence_specContext[] {
		return this.getTypedRuleContexts(Sequence_specContext) as Sequence_specContext[];
	}
	public sequence_spec(i: number): Sequence_specContext {
		return this.getTypedRuleContext(Sequence_specContext, i) as Sequence_specContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_alter_sequence;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterAlter_sequence) {
	 		listener.enterAlter_sequence(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitAlter_sequence) {
	 		listener.exitAlter_sequence(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitAlter_sequence) {
			return visitor.visitAlter_sequence(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Alter_sessionContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public ALTER(): TerminalNode {
		return this.getToken(PlSqlParser.ALTER, 0);
	}
	public SESSION(): TerminalNode {
		return this.getToken(PlSqlParser.SESSION, 0);
	}
	public ADVISE(): TerminalNode {
		return this.getToken(PlSqlParser.ADVISE, 0);
	}
	public CLOSE(): TerminalNode {
		return this.getToken(PlSqlParser.CLOSE, 0);
	}
	public DATABASE(): TerminalNode {
		return this.getToken(PlSqlParser.DATABASE, 0);
	}
	public LINK(): TerminalNode {
		return this.getToken(PlSqlParser.LINK, 0);
	}
	public parameter_name(): Parameter_nameContext {
		return this.getTypedRuleContext(Parameter_nameContext, 0) as Parameter_nameContext;
	}
	public enable_or_disable(): Enable_or_disableContext {
		return this.getTypedRuleContext(Enable_or_disableContext, 0) as Enable_or_disableContext;
	}
	public COMMIT(): TerminalNode {
		return this.getToken(PlSqlParser.COMMIT, 0);
	}
	public IN(): TerminalNode {
		return this.getToken(PlSqlParser.IN, 0);
	}
	public PROCEDURE(): TerminalNode {
		return this.getToken(PlSqlParser.PROCEDURE, 0);
	}
	public GUARD(): TerminalNode {
		return this.getToken(PlSqlParser.GUARD, 0);
	}
	public PARALLEL_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.PARALLEL);
	}
	public PARALLEL(i: number): TerminalNode {
		return this.getToken(PlSqlParser.PARALLEL, i);
	}
	public SET(): TerminalNode {
		return this.getToken(PlSqlParser.SET, 0);
	}
	public alter_session_set_clause(): Alter_session_set_clauseContext {
		return this.getTypedRuleContext(Alter_session_set_clauseContext, 0) as Alter_session_set_clauseContext;
	}
	public ROLLBACK(): TerminalNode {
		return this.getToken(PlSqlParser.ROLLBACK, 0);
	}
	public NOTHING(): TerminalNode {
		return this.getToken(PlSqlParser.NOTHING, 0);
	}
	public DML(): TerminalNode {
		return this.getToken(PlSqlParser.DML, 0);
	}
	public DDL(): TerminalNode {
		return this.getToken(PlSqlParser.DDL, 0);
	}
	public QUERY(): TerminalNode {
		return this.getToken(PlSqlParser.QUERY, 0);
	}
	public FORCE(): TerminalNode {
		return this.getToken(PlSqlParser.FORCE, 0);
	}
	public literal(): LiteralContext {
		return this.getTypedRuleContext(LiteralContext, 0) as LiteralContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_alter_session;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterAlter_session) {
	 		listener.enterAlter_session(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitAlter_session) {
	 		listener.exitAlter_session(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitAlter_session) {
			return visitor.visitAlter_session(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Alter_session_set_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public parameter_name(): Parameter_nameContext {
		return this.getTypedRuleContext(Parameter_nameContext, 0) as Parameter_nameContext;
	}
	public EQUALS_OP(): TerminalNode {
		return this.getToken(PlSqlParser.EQUALS_OP, 0);
	}
	public parameter_value(): Parameter_valueContext {
		return this.getTypedRuleContext(Parameter_valueContext, 0) as Parameter_valueContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_alter_session_set_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterAlter_session_set_clause) {
	 		listener.enterAlter_session_set_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitAlter_session_set_clause) {
	 		listener.exitAlter_session_set_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitAlter_session_set_clause) {
			return visitor.visitAlter_session_set_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Create_sequenceContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public CREATE(): TerminalNode {
		return this.getToken(PlSqlParser.CREATE, 0);
	}
	public SEQUENCE(): TerminalNode {
		return this.getToken(PlSqlParser.SEQUENCE, 0);
	}
	public sequence_name(): Sequence_nameContext {
		return this.getTypedRuleContext(Sequence_nameContext, 0) as Sequence_nameContext;
	}
	public SEMICOLON(): TerminalNode {
		return this.getToken(PlSqlParser.SEMICOLON, 0);
	}
	public sequence_start_clause_list(): Sequence_start_clauseContext[] {
		return this.getTypedRuleContexts(Sequence_start_clauseContext) as Sequence_start_clauseContext[];
	}
	public sequence_start_clause(i: number): Sequence_start_clauseContext {
		return this.getTypedRuleContext(Sequence_start_clauseContext, i) as Sequence_start_clauseContext;
	}
	public sequence_spec_list(): Sequence_specContext[] {
		return this.getTypedRuleContexts(Sequence_specContext) as Sequence_specContext[];
	}
	public sequence_spec(i: number): Sequence_specContext {
		return this.getTypedRuleContext(Sequence_specContext, i) as Sequence_specContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_create_sequence;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterCreate_sequence) {
	 		listener.enterCreate_sequence(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitCreate_sequence) {
	 		listener.exitCreate_sequence(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitCreate_sequence) {
			return visitor.visitCreate_sequence(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Sequence_specContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public INCREMENT(): TerminalNode {
		return this.getToken(PlSqlParser.INCREMENT, 0);
	}
	public BY(): TerminalNode {
		return this.getToken(PlSqlParser.BY, 0);
	}
	public UNSIGNED_INTEGER(): TerminalNode {
		return this.getToken(PlSqlParser.UNSIGNED_INTEGER, 0);
	}
	public MAXVALUE(): TerminalNode {
		return this.getToken(PlSqlParser.MAXVALUE, 0);
	}
	public NOMAXVALUE(): TerminalNode {
		return this.getToken(PlSqlParser.NOMAXVALUE, 0);
	}
	public MINVALUE(): TerminalNode {
		return this.getToken(PlSqlParser.MINVALUE, 0);
	}
	public NOMINVALUE(): TerminalNode {
		return this.getToken(PlSqlParser.NOMINVALUE, 0);
	}
	public CYCLE(): TerminalNode {
		return this.getToken(PlSqlParser.CYCLE, 0);
	}
	public NOCYCLE(): TerminalNode {
		return this.getToken(PlSqlParser.NOCYCLE, 0);
	}
	public CACHE(): TerminalNode {
		return this.getToken(PlSqlParser.CACHE, 0);
	}
	public NOCACHE(): TerminalNode {
		return this.getToken(PlSqlParser.NOCACHE, 0);
	}
	public ORDER(): TerminalNode {
		return this.getToken(PlSqlParser.ORDER, 0);
	}
	public NOORDER(): TerminalNode {
		return this.getToken(PlSqlParser.NOORDER, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_sequence_spec;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterSequence_spec) {
	 		listener.enterSequence_spec(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitSequence_spec) {
	 		listener.exitSequence_spec(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitSequence_spec) {
			return visitor.visitSequence_spec(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Sequence_start_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public START(): TerminalNode {
		return this.getToken(PlSqlParser.START, 0);
	}
	public WITH(): TerminalNode {
		return this.getToken(PlSqlParser.WITH, 0);
	}
	public UNSIGNED_INTEGER(): TerminalNode {
		return this.getToken(PlSqlParser.UNSIGNED_INTEGER, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_sequence_start_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterSequence_start_clause) {
	 		listener.enterSequence_start_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitSequence_start_clause) {
	 		listener.exitSequence_start_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitSequence_start_clause) {
			return visitor.visitSequence_start_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Create_indexContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public CREATE(): TerminalNode {
		return this.getToken(PlSqlParser.CREATE, 0);
	}
	public INDEX(): TerminalNode {
		return this.getToken(PlSqlParser.INDEX, 0);
	}
	public index_name(): Index_nameContext {
		return this.getTypedRuleContext(Index_nameContext, 0) as Index_nameContext;
	}
	public ON(): TerminalNode {
		return this.getToken(PlSqlParser.ON, 0);
	}
	public SEMICOLON(): TerminalNode {
		return this.getToken(PlSqlParser.SEMICOLON, 0);
	}
	public cluster_index_clause(): Cluster_index_clauseContext {
		return this.getTypedRuleContext(Cluster_index_clauseContext, 0) as Cluster_index_clauseContext;
	}
	public table_index_clause(): Table_index_clauseContext {
		return this.getTypedRuleContext(Table_index_clauseContext, 0) as Table_index_clauseContext;
	}
	public bitmap_join_index_clause(): Bitmap_join_index_clauseContext {
		return this.getTypedRuleContext(Bitmap_join_index_clauseContext, 0) as Bitmap_join_index_clauseContext;
	}
	public UNUSABLE(): TerminalNode {
		return this.getToken(PlSqlParser.UNUSABLE, 0);
	}
	public UNIQUE(): TerminalNode {
		return this.getToken(PlSqlParser.UNIQUE, 0);
	}
	public BITMAP(): TerminalNode {
		return this.getToken(PlSqlParser.BITMAP, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_create_index;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterCreate_index) {
	 		listener.enterCreate_index(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitCreate_index) {
	 		listener.exitCreate_index(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitCreate_index) {
			return visitor.visitCreate_index(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Cluster_index_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public CLUSTER(): TerminalNode {
		return this.getToken(PlSqlParser.CLUSTER, 0);
	}
	public cluster_name(): Cluster_nameContext {
		return this.getTypedRuleContext(Cluster_nameContext, 0) as Cluster_nameContext;
	}
	public index_attributes(): Index_attributesContext {
		return this.getTypedRuleContext(Index_attributesContext, 0) as Index_attributesContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_cluster_index_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterCluster_index_clause) {
	 		listener.enterCluster_index_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitCluster_index_clause) {
	 		listener.exitCluster_index_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitCluster_index_clause) {
			return visitor.visitCluster_index_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Cluster_nameContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public id_expression_list(): Id_expressionContext[] {
		return this.getTypedRuleContexts(Id_expressionContext) as Id_expressionContext[];
	}
	public id_expression(i: number): Id_expressionContext {
		return this.getTypedRuleContext(Id_expressionContext, i) as Id_expressionContext;
	}
	public PERIOD(): TerminalNode {
		return this.getToken(PlSqlParser.PERIOD, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_cluster_name;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterCluster_name) {
	 		listener.enterCluster_name(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitCluster_name) {
	 		listener.exitCluster_name(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitCluster_name) {
			return visitor.visitCluster_name(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Table_index_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public tableview_name(): Tableview_nameContext {
		return this.getTypedRuleContext(Tableview_nameContext, 0) as Tableview_nameContext;
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public index_expr_list(): Index_exprContext[] {
		return this.getTypedRuleContexts(Index_exprContext) as Index_exprContext[];
	}
	public index_expr(i: number): Index_exprContext {
		return this.getTypedRuleContext(Index_exprContext, i) as Index_exprContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public table_alias(): Table_aliasContext {
		return this.getTypedRuleContext(Table_aliasContext, 0) as Table_aliasContext;
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
	public index_properties(): Index_propertiesContext {
		return this.getTypedRuleContext(Index_propertiesContext, 0) as Index_propertiesContext;
	}
	public ASC_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.ASC);
	}
	public ASC(i: number): TerminalNode {
		return this.getToken(PlSqlParser.ASC, i);
	}
	public DESC_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.DESC);
	}
	public DESC(i: number): TerminalNode {
		return this.getToken(PlSqlParser.DESC, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_table_index_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterTable_index_clause) {
	 		listener.enterTable_index_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitTable_index_clause) {
	 		listener.exitTable_index_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitTable_index_clause) {
			return visitor.visitTable_index_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Bitmap_join_index_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public tableview_name_list(): Tableview_nameContext[] {
		return this.getTypedRuleContexts(Tableview_nameContext) as Tableview_nameContext[];
	}
	public tableview_name(i: number): Tableview_nameContext {
		return this.getTypedRuleContext(Tableview_nameContext, i) as Tableview_nameContext;
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public column_name_list(): Column_nameContext[] {
		return this.getTypedRuleContexts(Column_nameContext) as Column_nameContext[];
	}
	public column_name(i: number): Column_nameContext {
		return this.getTypedRuleContext(Column_nameContext, i) as Column_nameContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public FROM(): TerminalNode {
		return this.getToken(PlSqlParser.FROM, 0);
	}
	public table_alias_list(): Table_aliasContext[] {
		return this.getTypedRuleContexts(Table_aliasContext) as Table_aliasContext[];
	}
	public table_alias(i: number): Table_aliasContext {
		return this.getTypedRuleContext(Table_aliasContext, i) as Table_aliasContext;
	}
	public where_clause(): Where_clauseContext {
		return this.getTypedRuleContext(Where_clauseContext, 0) as Where_clauseContext;
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
	public local_partitioned_index(): Local_partitioned_indexContext {
		return this.getTypedRuleContext(Local_partitioned_indexContext, 0) as Local_partitioned_indexContext;
	}
	public index_attributes(): Index_attributesContext {
		return this.getTypedRuleContext(Index_attributesContext, 0) as Index_attributesContext;
	}
	public ASC_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.ASC);
	}
	public ASC(i: number): TerminalNode {
		return this.getToken(PlSqlParser.ASC, i);
	}
	public DESC_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.DESC);
	}
	public DESC(i: number): TerminalNode {
		return this.getToken(PlSqlParser.DESC, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_bitmap_join_index_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterBitmap_join_index_clause) {
	 		listener.enterBitmap_join_index_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitBitmap_join_index_clause) {
	 		listener.exitBitmap_join_index_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitBitmap_join_index_clause) {
			return visitor.visitBitmap_join_index_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Index_exprContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public column_name(): Column_nameContext {
		return this.getTypedRuleContext(Column_nameContext, 0) as Column_nameContext;
	}
	public expression(): ExpressionContext {
		return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_index_expr;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterIndex_expr) {
	 		listener.enterIndex_expr(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitIndex_expr) {
	 		listener.exitIndex_expr(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitIndex_expr) {
			return visitor.visitIndex_expr(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Index_propertiesContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public global_partitioned_index_list(): Global_partitioned_indexContext[] {
		return this.getTypedRuleContexts(Global_partitioned_indexContext) as Global_partitioned_indexContext[];
	}
	public global_partitioned_index(i: number): Global_partitioned_indexContext {
		return this.getTypedRuleContext(Global_partitioned_indexContext, i) as Global_partitioned_indexContext;
	}
	public local_partitioned_index_list(): Local_partitioned_indexContext[] {
		return this.getTypedRuleContexts(Local_partitioned_indexContext) as Local_partitioned_indexContext[];
	}
	public local_partitioned_index(i: number): Local_partitioned_indexContext {
		return this.getTypedRuleContext(Local_partitioned_indexContext, i) as Local_partitioned_indexContext;
	}
	public index_attributes_list(): Index_attributesContext[] {
		return this.getTypedRuleContexts(Index_attributesContext) as Index_attributesContext[];
	}
	public index_attributes(i: number): Index_attributesContext {
		return this.getTypedRuleContext(Index_attributesContext, i) as Index_attributesContext;
	}
	public INDEXTYPE(): TerminalNode {
		return this.getToken(PlSqlParser.INDEXTYPE, 0);
	}
	public IS(): TerminalNode {
		return this.getToken(PlSqlParser.IS, 0);
	}
	public domain_index_clause(): Domain_index_clauseContext {
		return this.getTypedRuleContext(Domain_index_clauseContext, 0) as Domain_index_clauseContext;
	}
	public xmlindex_clause(): Xmlindex_clauseContext {
		return this.getTypedRuleContext(Xmlindex_clauseContext, 0) as Xmlindex_clauseContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_index_properties;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterIndex_properties) {
	 		listener.enterIndex_properties(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitIndex_properties) {
	 		listener.exitIndex_properties(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitIndex_properties) {
			return visitor.visitIndex_properties(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Domain_index_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public indextype(): IndextypeContext {
		return this.getTypedRuleContext(IndextypeContext, 0) as IndextypeContext;
	}
	public local_domain_index_clause(): Local_domain_index_clauseContext {
		return this.getTypedRuleContext(Local_domain_index_clauseContext, 0) as Local_domain_index_clauseContext;
	}
	public parallel_clause(): Parallel_clauseContext {
		return this.getTypedRuleContext(Parallel_clauseContext, 0) as Parallel_clauseContext;
	}
	public PARAMETERS(): TerminalNode {
		return this.getToken(PlSqlParser.PARAMETERS, 0);
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public odci_parameters(): Odci_parametersContext {
		return this.getTypedRuleContext(Odci_parametersContext, 0) as Odci_parametersContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_domain_index_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterDomain_index_clause) {
	 		listener.enterDomain_index_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitDomain_index_clause) {
	 		listener.exitDomain_index_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitDomain_index_clause) {
			return visitor.visitDomain_index_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Local_domain_index_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public LOCAL(): TerminalNode {
		return this.getToken(PlSqlParser.LOCAL, 0);
	}
	public LEFT_PAREN_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.LEFT_PAREN);
	}
	public LEFT_PAREN(i: number): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, i);
	}
	public PARTITION_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.PARTITION);
	}
	public PARTITION(i: number): TerminalNode {
		return this.getToken(PlSqlParser.PARTITION, i);
	}
	public partition_name_list(): Partition_nameContext[] {
		return this.getTypedRuleContexts(Partition_nameContext) as Partition_nameContext[];
	}
	public partition_name(i: number): Partition_nameContext {
		return this.getTypedRuleContext(Partition_nameContext, i) as Partition_nameContext;
	}
	public RIGHT_PAREN_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.RIGHT_PAREN);
	}
	public RIGHT_PAREN(i: number): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, i);
	}
	public PARAMETERS_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.PARAMETERS);
	}
	public PARAMETERS(i: number): TerminalNode {
		return this.getToken(PlSqlParser.PARAMETERS, i);
	}
	public odci_parameters_list(): Odci_parametersContext[] {
		return this.getTypedRuleContexts(Odci_parametersContext) as Odci_parametersContext[];
	}
	public odci_parameters(i: number): Odci_parametersContext {
		return this.getTypedRuleContext(Odci_parametersContext, i) as Odci_parametersContext;
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_local_domain_index_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterLocal_domain_index_clause) {
	 		listener.enterLocal_domain_index_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitLocal_domain_index_clause) {
	 		listener.exitLocal_domain_index_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitLocal_domain_index_clause) {
			return visitor.visitLocal_domain_index_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Xmlindex_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public XMLINDEX(): TerminalNode {
		return this.getToken(PlSqlParser.XMLINDEX, 0);
	}
	public XDB(): TerminalNode {
		return this.getToken(PlSqlParser.XDB, 0);
	}
	public PERIOD(): TerminalNode {
		return this.getToken(PlSqlParser.PERIOD, 0);
	}
	public local_xmlindex_clause(): Local_xmlindex_clauseContext {
		return this.getTypedRuleContext(Local_xmlindex_clauseContext, 0) as Local_xmlindex_clauseContext;
	}
	public parallel_clause(): Parallel_clauseContext {
		return this.getTypedRuleContext(Parallel_clauseContext, 0) as Parallel_clauseContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_xmlindex_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterXmlindex_clause) {
	 		listener.enterXmlindex_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitXmlindex_clause) {
	 		listener.exitXmlindex_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitXmlindex_clause) {
			return visitor.visitXmlindex_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Local_xmlindex_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public LOCAL(): TerminalNode {
		return this.getToken(PlSqlParser.LOCAL, 0);
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public PARTITION_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.PARTITION);
	}
	public PARTITION(i: number): TerminalNode {
		return this.getToken(PlSqlParser.PARTITION, i);
	}
	public partition_name_list(): Partition_nameContext[] {
		return this.getTypedRuleContexts(Partition_nameContext) as Partition_nameContext[];
	}
	public partition_name(i: number): Partition_nameContext {
		return this.getTypedRuleContext(Partition_nameContext, i) as Partition_nameContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_local_xmlindex_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterLocal_xmlindex_clause) {
	 		listener.enterLocal_xmlindex_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitLocal_xmlindex_clause) {
	 		listener.exitLocal_xmlindex_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitLocal_xmlindex_clause) {
			return visitor.visitLocal_xmlindex_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Global_partitioned_indexContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public GLOBAL(): TerminalNode {
		return this.getToken(PlSqlParser.GLOBAL, 0);
	}
	public PARTITION(): TerminalNode {
		return this.getToken(PlSqlParser.PARTITION, 0);
	}
	public BY(): TerminalNode {
		return this.getToken(PlSqlParser.BY, 0);
	}
	public RANGE(): TerminalNode {
		return this.getToken(PlSqlParser.RANGE, 0);
	}
	public LEFT_PAREN_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.LEFT_PAREN);
	}
	public LEFT_PAREN(i: number): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, i);
	}
	public column_name_list(): Column_nameContext[] {
		return this.getTypedRuleContexts(Column_nameContext) as Column_nameContext[];
	}
	public column_name(i: number): Column_nameContext {
		return this.getTypedRuleContext(Column_nameContext, i) as Column_nameContext;
	}
	public RIGHT_PAREN_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.RIGHT_PAREN);
	}
	public RIGHT_PAREN(i: number): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, i);
	}
	public index_partitioning_clause(): Index_partitioning_clauseContext {
		return this.getTypedRuleContext(Index_partitioning_clauseContext, 0) as Index_partitioning_clauseContext;
	}
	public HASH(): TerminalNode {
		return this.getToken(PlSqlParser.HASH, 0);
	}
	public individual_hash_partitions(): Individual_hash_partitionsContext {
		return this.getTypedRuleContext(Individual_hash_partitionsContext, 0) as Individual_hash_partitionsContext;
	}
	public hash_partitions_by_quantity(): Hash_partitions_by_quantityContext {
		return this.getTypedRuleContext(Hash_partitions_by_quantityContext, 0) as Hash_partitions_by_quantityContext;
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_global_partitioned_index;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterGlobal_partitioned_index) {
	 		listener.enterGlobal_partitioned_index(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitGlobal_partitioned_index) {
	 		listener.exitGlobal_partitioned_index(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitGlobal_partitioned_index) {
			return visitor.visitGlobal_partitioned_index(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Index_partitioning_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public PARTITION(): TerminalNode {
		return this.getToken(PlSqlParser.PARTITION, 0);
	}
	public VALUES(): TerminalNode {
		return this.getToken(PlSqlParser.VALUES, 0);
	}
	public LESS(): TerminalNode {
		return this.getToken(PlSqlParser.LESS, 0);
	}
	public THAN(): TerminalNode {
		return this.getToken(PlSqlParser.THAN, 0);
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public literal_list(): LiteralContext[] {
		return this.getTypedRuleContexts(LiteralContext) as LiteralContext[];
	}
	public literal(i: number): LiteralContext {
		return this.getTypedRuleContext(LiteralContext, i) as LiteralContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public partition_name(): Partition_nameContext {
		return this.getTypedRuleContext(Partition_nameContext, 0) as Partition_nameContext;
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
	public segment_attributes_clause(): Segment_attributes_clauseContext {
		return this.getTypedRuleContext(Segment_attributes_clauseContext, 0) as Segment_attributes_clauseContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_index_partitioning_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterIndex_partitioning_clause) {
	 		listener.enterIndex_partitioning_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitIndex_partitioning_clause) {
	 		listener.exitIndex_partitioning_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitIndex_partitioning_clause) {
			return visitor.visitIndex_partitioning_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Local_partitioned_indexContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public LOCAL(): TerminalNode {
		return this.getToken(PlSqlParser.LOCAL, 0);
	}
	public on_range_partitioned_table(): On_range_partitioned_tableContext {
		return this.getTypedRuleContext(On_range_partitioned_tableContext, 0) as On_range_partitioned_tableContext;
	}
	public on_list_partitioned_table(): On_list_partitioned_tableContext {
		return this.getTypedRuleContext(On_list_partitioned_tableContext, 0) as On_list_partitioned_tableContext;
	}
	public on_hash_partitioned_table(): On_hash_partitioned_tableContext {
		return this.getTypedRuleContext(On_hash_partitioned_tableContext, 0) as On_hash_partitioned_tableContext;
	}
	public on_comp_partitioned_table(): On_comp_partitioned_tableContext {
		return this.getTypedRuleContext(On_comp_partitioned_tableContext, 0) as On_comp_partitioned_tableContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_local_partitioned_index;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterLocal_partitioned_index) {
	 		listener.enterLocal_partitioned_index(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitLocal_partitioned_index) {
	 		listener.exitLocal_partitioned_index(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitLocal_partitioned_index) {
			return visitor.visitLocal_partitioned_index(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class On_range_partitioned_tableContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public partitioned_table_list(): Partitioned_tableContext[] {
		return this.getTypedRuleContexts(Partitioned_tableContext) as Partitioned_tableContext[];
	}
	public partitioned_table(i: number): Partitioned_tableContext {
		return this.getTypedRuleContext(Partitioned_tableContext, i) as Partitioned_tableContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_on_range_partitioned_table;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterOn_range_partitioned_table) {
	 		listener.enterOn_range_partitioned_table(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitOn_range_partitioned_table) {
	 		listener.exitOn_range_partitioned_table(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitOn_range_partitioned_table) {
			return visitor.visitOn_range_partitioned_table(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class On_list_partitioned_tableContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public partitioned_table_list(): Partitioned_tableContext[] {
		return this.getTypedRuleContexts(Partitioned_tableContext) as Partitioned_tableContext[];
	}
	public partitioned_table(i: number): Partitioned_tableContext {
		return this.getTypedRuleContext(Partitioned_tableContext, i) as Partitioned_tableContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_on_list_partitioned_table;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterOn_list_partitioned_table) {
	 		listener.enterOn_list_partitioned_table(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitOn_list_partitioned_table) {
	 		listener.exitOn_list_partitioned_table(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitOn_list_partitioned_table) {
			return visitor.visitOn_list_partitioned_table(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Partitioned_tableContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public PARTITION(): TerminalNode {
		return this.getToken(PlSqlParser.PARTITION, 0);
	}
	public partition_name(): Partition_nameContext {
		return this.getTypedRuleContext(Partition_nameContext, 0) as Partition_nameContext;
	}
	public segment_attributes_clause_list(): Segment_attributes_clauseContext[] {
		return this.getTypedRuleContexts(Segment_attributes_clauseContext) as Segment_attributes_clauseContext[];
	}
	public segment_attributes_clause(i: number): Segment_attributes_clauseContext {
		return this.getTypedRuleContext(Segment_attributes_clauseContext, i) as Segment_attributes_clauseContext;
	}
	public key_compression_list(): Key_compressionContext[] {
		return this.getTypedRuleContexts(Key_compressionContext) as Key_compressionContext[];
	}
	public key_compression(i: number): Key_compressionContext {
		return this.getTypedRuleContext(Key_compressionContext, i) as Key_compressionContext;
	}
	public UNUSABLE(): TerminalNode {
		return this.getToken(PlSqlParser.UNUSABLE, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_partitioned_table;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterPartitioned_table) {
	 		listener.enterPartitioned_table(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitPartitioned_table) {
	 		listener.exitPartitioned_table(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitPartitioned_table) {
			return visitor.visitPartitioned_table(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class On_hash_partitioned_tableContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public STORE(): TerminalNode {
		return this.getToken(PlSqlParser.STORE, 0);
	}
	public IN(): TerminalNode {
		return this.getToken(PlSqlParser.IN, 0);
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public tablespace_list(): TablespaceContext[] {
		return this.getTypedRuleContexts(TablespaceContext) as TablespaceContext[];
	}
	public tablespace(i: number): TablespaceContext {
		return this.getTypedRuleContext(TablespaceContext, i) as TablespaceContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
	public on_hash_partitioned_clause_list(): On_hash_partitioned_clauseContext[] {
		return this.getTypedRuleContexts(On_hash_partitioned_clauseContext) as On_hash_partitioned_clauseContext[];
	}
	public on_hash_partitioned_clause(i: number): On_hash_partitioned_clauseContext {
		return this.getTypedRuleContext(On_hash_partitioned_clauseContext, i) as On_hash_partitioned_clauseContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_on_hash_partitioned_table;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterOn_hash_partitioned_table) {
	 		listener.enterOn_hash_partitioned_table(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitOn_hash_partitioned_table) {
	 		listener.exitOn_hash_partitioned_table(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitOn_hash_partitioned_table) {
			return visitor.visitOn_hash_partitioned_table(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class On_hash_partitioned_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public PARTITION(): TerminalNode {
		return this.getToken(PlSqlParser.PARTITION, 0);
	}
	public partition_name(): Partition_nameContext {
		return this.getTypedRuleContext(Partition_nameContext, 0) as Partition_nameContext;
	}
	public TABLESPACE(): TerminalNode {
		return this.getToken(PlSqlParser.TABLESPACE, 0);
	}
	public tablespace(): TablespaceContext {
		return this.getTypedRuleContext(TablespaceContext, 0) as TablespaceContext;
	}
	public key_compression(): Key_compressionContext {
		return this.getTypedRuleContext(Key_compressionContext, 0) as Key_compressionContext;
	}
	public UNUSABLE(): TerminalNode {
		return this.getToken(PlSqlParser.UNUSABLE, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_on_hash_partitioned_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterOn_hash_partitioned_clause) {
	 		listener.enterOn_hash_partitioned_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitOn_hash_partitioned_clause) {
	 		listener.exitOn_hash_partitioned_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitOn_hash_partitioned_clause) {
			return visitor.visitOn_hash_partitioned_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class On_comp_partitioned_tableContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public LEFT_PAREN_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.LEFT_PAREN);
	}
	public LEFT_PAREN(i: number): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, i);
	}
	public on_comp_partitioned_clause_list(): On_comp_partitioned_clauseContext[] {
		return this.getTypedRuleContexts(On_comp_partitioned_clauseContext) as On_comp_partitioned_clauseContext[];
	}
	public on_comp_partitioned_clause(i: number): On_comp_partitioned_clauseContext {
		return this.getTypedRuleContext(On_comp_partitioned_clauseContext, i) as On_comp_partitioned_clauseContext;
	}
	public RIGHT_PAREN_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.RIGHT_PAREN);
	}
	public RIGHT_PAREN(i: number): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, i);
	}
	public STORE(): TerminalNode {
		return this.getToken(PlSqlParser.STORE, 0);
	}
	public IN(): TerminalNode {
		return this.getToken(PlSqlParser.IN, 0);
	}
	public tablespace_list(): TablespaceContext[] {
		return this.getTypedRuleContexts(TablespaceContext) as TablespaceContext[];
	}
	public tablespace(i: number): TablespaceContext {
		return this.getTypedRuleContext(TablespaceContext, i) as TablespaceContext;
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_on_comp_partitioned_table;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterOn_comp_partitioned_table) {
	 		listener.enterOn_comp_partitioned_table(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitOn_comp_partitioned_table) {
	 		listener.exitOn_comp_partitioned_table(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitOn_comp_partitioned_table) {
			return visitor.visitOn_comp_partitioned_table(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class On_comp_partitioned_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public PARTITION(): TerminalNode {
		return this.getToken(PlSqlParser.PARTITION, 0);
	}
	public UNUSABLE(): TerminalNode {
		return this.getToken(PlSqlParser.UNUSABLE, 0);
	}
	public partition_name(): Partition_nameContext {
		return this.getTypedRuleContext(Partition_nameContext, 0) as Partition_nameContext;
	}
	public segment_attributes_clause_list(): Segment_attributes_clauseContext[] {
		return this.getTypedRuleContexts(Segment_attributes_clauseContext) as Segment_attributes_clauseContext[];
	}
	public segment_attributes_clause(i: number): Segment_attributes_clauseContext {
		return this.getTypedRuleContext(Segment_attributes_clauseContext, i) as Segment_attributes_clauseContext;
	}
	public key_compression_list(): Key_compressionContext[] {
		return this.getTypedRuleContexts(Key_compressionContext) as Key_compressionContext[];
	}
	public key_compression(i: number): Key_compressionContext {
		return this.getTypedRuleContext(Key_compressionContext, i) as Key_compressionContext;
	}
	public index_subpartition_clause(): Index_subpartition_clauseContext {
		return this.getTypedRuleContext(Index_subpartition_clauseContext, 0) as Index_subpartition_clauseContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_on_comp_partitioned_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterOn_comp_partitioned_clause) {
	 		listener.enterOn_comp_partitioned_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitOn_comp_partitioned_clause) {
	 		listener.exitOn_comp_partitioned_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitOn_comp_partitioned_clause) {
			return visitor.visitOn_comp_partitioned_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Index_subpartition_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public STORE(): TerminalNode {
		return this.getToken(PlSqlParser.STORE, 0);
	}
	public IN(): TerminalNode {
		return this.getToken(PlSqlParser.IN, 0);
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public tablespace_list(): TablespaceContext[] {
		return this.getTypedRuleContexts(TablespaceContext) as TablespaceContext[];
	}
	public tablespace(i: number): TablespaceContext {
		return this.getTypedRuleContext(TablespaceContext, i) as TablespaceContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
	public index_subpartition_subclause_list(): Index_subpartition_subclauseContext[] {
		return this.getTypedRuleContexts(Index_subpartition_subclauseContext) as Index_subpartition_subclauseContext[];
	}
	public index_subpartition_subclause(i: number): Index_subpartition_subclauseContext {
		return this.getTypedRuleContext(Index_subpartition_subclauseContext, i) as Index_subpartition_subclauseContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_index_subpartition_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterIndex_subpartition_clause) {
	 		listener.enterIndex_subpartition_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitIndex_subpartition_clause) {
	 		listener.exitIndex_subpartition_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitIndex_subpartition_clause) {
			return visitor.visitIndex_subpartition_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Index_subpartition_subclauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public SUBPARTITION(): TerminalNode {
		return this.getToken(PlSqlParser.SUBPARTITION, 0);
	}
	public subpartition_name(): Subpartition_nameContext {
		return this.getTypedRuleContext(Subpartition_nameContext, 0) as Subpartition_nameContext;
	}
	public TABLESPACE(): TerminalNode {
		return this.getToken(PlSqlParser.TABLESPACE, 0);
	}
	public tablespace(): TablespaceContext {
		return this.getTypedRuleContext(TablespaceContext, 0) as TablespaceContext;
	}
	public key_compression(): Key_compressionContext {
		return this.getTypedRuleContext(Key_compressionContext, 0) as Key_compressionContext;
	}
	public UNUSABLE(): TerminalNode {
		return this.getToken(PlSqlParser.UNUSABLE, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_index_subpartition_subclause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterIndex_subpartition_subclause) {
	 		listener.enterIndex_subpartition_subclause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitIndex_subpartition_subclause) {
	 		listener.exitIndex_subpartition_subclause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitIndex_subpartition_subclause) {
			return visitor.visitIndex_subpartition_subclause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Odci_parametersContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public CHAR_STRING(): TerminalNode {
		return this.getToken(PlSqlParser.CHAR_STRING, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_odci_parameters;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterOdci_parameters) {
	 		listener.enterOdci_parameters(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitOdci_parameters) {
	 		listener.exitOdci_parameters(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitOdci_parameters) {
			return visitor.visitOdci_parameters(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class IndextypeContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public id_expression_list(): Id_expressionContext[] {
		return this.getTypedRuleContexts(Id_expressionContext) as Id_expressionContext[];
	}
	public id_expression(i: number): Id_expressionContext {
		return this.getTypedRuleContext(Id_expressionContext, i) as Id_expressionContext;
	}
	public PERIOD(): TerminalNode {
		return this.getToken(PlSqlParser.PERIOD, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_indextype;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterIndextype) {
	 		listener.enterIndextype(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitIndextype) {
	 		listener.exitIndextype(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitIndextype) {
			return visitor.visitIndextype(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Alter_indexContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public ALTER(): TerminalNode {
		return this.getToken(PlSqlParser.ALTER, 0);
	}
	public INDEX(): TerminalNode {
		return this.getToken(PlSqlParser.INDEX, 0);
	}
	public index_name(): Index_nameContext {
		return this.getTypedRuleContext(Index_nameContext, 0) as Index_nameContext;
	}
	public SEMICOLON(): TerminalNode {
		return this.getToken(PlSqlParser.SEMICOLON, 0);
	}
	public alter_index_ops_set1(): Alter_index_ops_set1Context {
		return this.getTypedRuleContext(Alter_index_ops_set1Context, 0) as Alter_index_ops_set1Context;
	}
	public alter_index_ops_set2(): Alter_index_ops_set2Context {
		return this.getTypedRuleContext(Alter_index_ops_set2Context, 0) as Alter_index_ops_set2Context;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_alter_index;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterAlter_index) {
	 		listener.enterAlter_index(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitAlter_index) {
	 		listener.exitAlter_index(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitAlter_index) {
			return visitor.visitAlter_index(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Alter_index_ops_set1Context extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public deallocate_unused_clause_list(): Deallocate_unused_clauseContext[] {
		return this.getTypedRuleContexts(Deallocate_unused_clauseContext) as Deallocate_unused_clauseContext[];
	}
	public deallocate_unused_clause(i: number): Deallocate_unused_clauseContext {
		return this.getTypedRuleContext(Deallocate_unused_clauseContext, i) as Deallocate_unused_clauseContext;
	}
	public allocate_extent_clause_list(): Allocate_extent_clauseContext[] {
		return this.getTypedRuleContexts(Allocate_extent_clauseContext) as Allocate_extent_clauseContext[];
	}
	public allocate_extent_clause(i: number): Allocate_extent_clauseContext {
		return this.getTypedRuleContext(Allocate_extent_clauseContext, i) as Allocate_extent_clauseContext;
	}
	public shrink_clause_list(): Shrink_clauseContext[] {
		return this.getTypedRuleContexts(Shrink_clauseContext) as Shrink_clauseContext[];
	}
	public shrink_clause(i: number): Shrink_clauseContext {
		return this.getTypedRuleContext(Shrink_clauseContext, i) as Shrink_clauseContext;
	}
	public parallel_clause_list(): Parallel_clauseContext[] {
		return this.getTypedRuleContexts(Parallel_clauseContext) as Parallel_clauseContext[];
	}
	public parallel_clause(i: number): Parallel_clauseContext {
		return this.getTypedRuleContext(Parallel_clauseContext, i) as Parallel_clauseContext;
	}
	public physical_attributes_clause_list(): Physical_attributes_clauseContext[] {
		return this.getTypedRuleContexts(Physical_attributes_clauseContext) as Physical_attributes_clauseContext[];
	}
	public physical_attributes_clause(i: number): Physical_attributes_clauseContext {
		return this.getTypedRuleContext(Physical_attributes_clauseContext, i) as Physical_attributes_clauseContext;
	}
	public logging_clause_list(): Logging_clauseContext[] {
		return this.getTypedRuleContexts(Logging_clauseContext) as Logging_clauseContext[];
	}
	public logging_clause(i: number): Logging_clauseContext {
		return this.getTypedRuleContext(Logging_clauseContext, i) as Logging_clauseContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_alter_index_ops_set1;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterAlter_index_ops_set1) {
	 		listener.enterAlter_index_ops_set1(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitAlter_index_ops_set1) {
	 		listener.exitAlter_index_ops_set1(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitAlter_index_ops_set1) {
			return visitor.visitAlter_index_ops_set1(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Alter_index_ops_set2Context extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public rebuild_clause(): Rebuild_clauseContext {
		return this.getTypedRuleContext(Rebuild_clauseContext, 0) as Rebuild_clauseContext;
	}
	public PARAMETERS(): TerminalNode {
		return this.getToken(PlSqlParser.PARAMETERS, 0);
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public odci_parameters(): Odci_parametersContext {
		return this.getTypedRuleContext(Odci_parametersContext, 0) as Odci_parametersContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public COMPILE(): TerminalNode {
		return this.getToken(PlSqlParser.COMPILE, 0);
	}
	public enable_or_disable(): Enable_or_disableContext {
		return this.getTypedRuleContext(Enable_or_disableContext, 0) as Enable_or_disableContext;
	}
	public UNUSABLE(): TerminalNode {
		return this.getToken(PlSqlParser.UNUSABLE, 0);
	}
	public visible_or_invisible(): Visible_or_invisibleContext {
		return this.getTypedRuleContext(Visible_or_invisibleContext, 0) as Visible_or_invisibleContext;
	}
	public RENAME(): TerminalNode {
		return this.getToken(PlSqlParser.RENAME, 0);
	}
	public TO(): TerminalNode {
		return this.getToken(PlSqlParser.TO, 0);
	}
	public new_index_name(): New_index_nameContext {
		return this.getTypedRuleContext(New_index_nameContext, 0) as New_index_nameContext;
	}
	public COALESCE(): TerminalNode {
		return this.getToken(PlSqlParser.COALESCE, 0);
	}
	public monitoring_nomonitoring(): Monitoring_nomonitoringContext {
		return this.getTypedRuleContext(Monitoring_nomonitoringContext, 0) as Monitoring_nomonitoringContext;
	}
	public USAGE(): TerminalNode {
		return this.getToken(PlSqlParser.USAGE, 0);
	}
	public UPDATE(): TerminalNode {
		return this.getToken(PlSqlParser.UPDATE, 0);
	}
	public BLOCK(): TerminalNode {
		return this.getToken(PlSqlParser.BLOCK, 0);
	}
	public REFERENCES(): TerminalNode {
		return this.getToken(PlSqlParser.REFERENCES, 0);
	}
	public alter_index_partitioning(): Alter_index_partitioningContext {
		return this.getTypedRuleContext(Alter_index_partitioningContext, 0) as Alter_index_partitioningContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_alter_index_ops_set2;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterAlter_index_ops_set2) {
	 		listener.enterAlter_index_ops_set2(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitAlter_index_ops_set2) {
	 		listener.exitAlter_index_ops_set2(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitAlter_index_ops_set2) {
			return visitor.visitAlter_index_ops_set2(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Visible_or_invisibleContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public VISIBLE(): TerminalNode {
		return this.getToken(PlSqlParser.VISIBLE, 0);
	}
	public INVISIBLE(): TerminalNode {
		return this.getToken(PlSqlParser.INVISIBLE, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_visible_or_invisible;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterVisible_or_invisible) {
	 		listener.enterVisible_or_invisible(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitVisible_or_invisible) {
	 		listener.exitVisible_or_invisible(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitVisible_or_invisible) {
			return visitor.visitVisible_or_invisible(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Monitoring_nomonitoringContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public MONITORING(): TerminalNode {
		return this.getToken(PlSqlParser.MONITORING, 0);
	}
	public NOMONITORING(): TerminalNode {
		return this.getToken(PlSqlParser.NOMONITORING, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_monitoring_nomonitoring;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterMonitoring_nomonitoring) {
	 		listener.enterMonitoring_nomonitoring(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitMonitoring_nomonitoring) {
	 		listener.exitMonitoring_nomonitoring(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitMonitoring_nomonitoring) {
			return visitor.visitMonitoring_nomonitoring(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Rebuild_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public REBUILD(): TerminalNode {
		return this.getToken(PlSqlParser.REBUILD, 0);
	}
	public PARTITION(): TerminalNode {
		return this.getToken(PlSqlParser.PARTITION, 0);
	}
	public partition_name(): Partition_nameContext {
		return this.getTypedRuleContext(Partition_nameContext, 0) as Partition_nameContext;
	}
	public SUBPARTITION(): TerminalNode {
		return this.getToken(PlSqlParser.SUBPARTITION, 0);
	}
	public subpartition_name(): Subpartition_nameContext {
		return this.getTypedRuleContext(Subpartition_nameContext, 0) as Subpartition_nameContext;
	}
	public REVERSE(): TerminalNode {
		return this.getToken(PlSqlParser.REVERSE, 0);
	}
	public NOREVERSE(): TerminalNode {
		return this.getToken(PlSqlParser.NOREVERSE, 0);
	}
	public parallel_clause_list(): Parallel_clauseContext[] {
		return this.getTypedRuleContexts(Parallel_clauseContext) as Parallel_clauseContext[];
	}
	public parallel_clause(i: number): Parallel_clauseContext {
		return this.getTypedRuleContext(Parallel_clauseContext, i) as Parallel_clauseContext;
	}
	public TABLESPACE_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.TABLESPACE);
	}
	public TABLESPACE(i: number): TerminalNode {
		return this.getToken(PlSqlParser.TABLESPACE, i);
	}
	public tablespace_list(): TablespaceContext[] {
		return this.getTypedRuleContexts(TablespaceContext) as TablespaceContext[];
	}
	public tablespace(i: number): TablespaceContext {
		return this.getTypedRuleContext(TablespaceContext, i) as TablespaceContext;
	}
	public PARAMETERS_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.PARAMETERS);
	}
	public PARAMETERS(i: number): TerminalNode {
		return this.getToken(PlSqlParser.PARAMETERS, i);
	}
	public LEFT_PAREN_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.LEFT_PAREN);
	}
	public LEFT_PAREN(i: number): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, i);
	}
	public odci_parameters_list(): Odci_parametersContext[] {
		return this.getTypedRuleContexts(Odci_parametersContext) as Odci_parametersContext[];
	}
	public odci_parameters(i: number): Odci_parametersContext {
		return this.getTypedRuleContext(Odci_parametersContext, i) as Odci_parametersContext;
	}
	public RIGHT_PAREN_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.RIGHT_PAREN);
	}
	public RIGHT_PAREN(i: number): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, i);
	}
	public ONLINE_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.ONLINE);
	}
	public ONLINE(i: number): TerminalNode {
		return this.getToken(PlSqlParser.ONLINE, i);
	}
	public physical_attributes_clause_list(): Physical_attributes_clauseContext[] {
		return this.getTypedRuleContexts(Physical_attributes_clauseContext) as Physical_attributes_clauseContext[];
	}
	public physical_attributes_clause(i: number): Physical_attributes_clauseContext {
		return this.getTypedRuleContext(Physical_attributes_clauseContext, i) as Physical_attributes_clauseContext;
	}
	public key_compression_list(): Key_compressionContext[] {
		return this.getTypedRuleContexts(Key_compressionContext) as Key_compressionContext[];
	}
	public key_compression(i: number): Key_compressionContext {
		return this.getTypedRuleContext(Key_compressionContext, i) as Key_compressionContext;
	}
	public logging_clause_list(): Logging_clauseContext[] {
		return this.getTypedRuleContexts(Logging_clauseContext) as Logging_clauseContext[];
	}
	public logging_clause(i: number): Logging_clauseContext {
		return this.getTypedRuleContext(Logging_clauseContext, i) as Logging_clauseContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_rebuild_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterRebuild_clause) {
	 		listener.enterRebuild_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitRebuild_clause) {
	 		listener.exitRebuild_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitRebuild_clause) {
			return visitor.visitRebuild_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Alter_index_partitioningContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public modify_index_default_attrs(): Modify_index_default_attrsContext {
		return this.getTypedRuleContext(Modify_index_default_attrsContext, 0) as Modify_index_default_attrsContext;
	}
	public add_hash_index_partition(): Add_hash_index_partitionContext {
		return this.getTypedRuleContext(Add_hash_index_partitionContext, 0) as Add_hash_index_partitionContext;
	}
	public modify_index_partition(): Modify_index_partitionContext {
		return this.getTypedRuleContext(Modify_index_partitionContext, 0) as Modify_index_partitionContext;
	}
	public rename_index_partition(): Rename_index_partitionContext {
		return this.getTypedRuleContext(Rename_index_partitionContext, 0) as Rename_index_partitionContext;
	}
	public drop_index_partition(): Drop_index_partitionContext {
		return this.getTypedRuleContext(Drop_index_partitionContext, 0) as Drop_index_partitionContext;
	}
	public split_index_partition(): Split_index_partitionContext {
		return this.getTypedRuleContext(Split_index_partitionContext, 0) as Split_index_partitionContext;
	}
	public coalesce_index_partition(): Coalesce_index_partitionContext {
		return this.getTypedRuleContext(Coalesce_index_partitionContext, 0) as Coalesce_index_partitionContext;
	}
	public modify_index_subpartition(): Modify_index_subpartitionContext {
		return this.getTypedRuleContext(Modify_index_subpartitionContext, 0) as Modify_index_subpartitionContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_alter_index_partitioning;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterAlter_index_partitioning) {
	 		listener.enterAlter_index_partitioning(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitAlter_index_partitioning) {
	 		listener.exitAlter_index_partitioning(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitAlter_index_partitioning) {
			return visitor.visitAlter_index_partitioning(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Modify_index_default_attrsContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public MODIFY(): TerminalNode {
		return this.getToken(PlSqlParser.MODIFY, 0);
	}
	public DEFAULT_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.DEFAULT);
	}
	public DEFAULT(i: number): TerminalNode {
		return this.getToken(PlSqlParser.DEFAULT, i);
	}
	public ATTRIBUTES(): TerminalNode {
		return this.getToken(PlSqlParser.ATTRIBUTES, 0);
	}
	public physical_attributes_clause(): Physical_attributes_clauseContext {
		return this.getTypedRuleContext(Physical_attributes_clauseContext, 0) as Physical_attributes_clauseContext;
	}
	public TABLESPACE(): TerminalNode {
		return this.getToken(PlSqlParser.TABLESPACE, 0);
	}
	public logging_clause(): Logging_clauseContext {
		return this.getTypedRuleContext(Logging_clauseContext, 0) as Logging_clauseContext;
	}
	public FOR(): TerminalNode {
		return this.getToken(PlSqlParser.FOR, 0);
	}
	public PARTITION(): TerminalNode {
		return this.getToken(PlSqlParser.PARTITION, 0);
	}
	public partition_name(): Partition_nameContext {
		return this.getTypedRuleContext(Partition_nameContext, 0) as Partition_nameContext;
	}
	public tablespace(): TablespaceContext {
		return this.getTypedRuleContext(TablespaceContext, 0) as TablespaceContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_modify_index_default_attrs;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterModify_index_default_attrs) {
	 		listener.enterModify_index_default_attrs(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitModify_index_default_attrs) {
	 		listener.exitModify_index_default_attrs(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitModify_index_default_attrs) {
			return visitor.visitModify_index_default_attrs(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Add_hash_index_partitionContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public ADD(): TerminalNode {
		return this.getToken(PlSqlParser.ADD, 0);
	}
	public PARTITION(): TerminalNode {
		return this.getToken(PlSqlParser.PARTITION, 0);
	}
	public partition_name(): Partition_nameContext {
		return this.getTypedRuleContext(Partition_nameContext, 0) as Partition_nameContext;
	}
	public TABLESPACE(): TerminalNode {
		return this.getToken(PlSqlParser.TABLESPACE, 0);
	}
	public tablespace(): TablespaceContext {
		return this.getTypedRuleContext(TablespaceContext, 0) as TablespaceContext;
	}
	public key_compression(): Key_compressionContext {
		return this.getTypedRuleContext(Key_compressionContext, 0) as Key_compressionContext;
	}
	public parallel_clause(): Parallel_clauseContext {
		return this.getTypedRuleContext(Parallel_clauseContext, 0) as Parallel_clauseContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_add_hash_index_partition;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterAdd_hash_index_partition) {
	 		listener.enterAdd_hash_index_partition(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitAdd_hash_index_partition) {
	 		listener.exitAdd_hash_index_partition(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitAdd_hash_index_partition) {
			return visitor.visitAdd_hash_index_partition(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Coalesce_index_partitionContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public COALESCE(): TerminalNode {
		return this.getToken(PlSqlParser.COALESCE, 0);
	}
	public PARTITION(): TerminalNode {
		return this.getToken(PlSqlParser.PARTITION, 0);
	}
	public parallel_clause(): Parallel_clauseContext {
		return this.getTypedRuleContext(Parallel_clauseContext, 0) as Parallel_clauseContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_coalesce_index_partition;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterCoalesce_index_partition) {
	 		listener.enterCoalesce_index_partition(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitCoalesce_index_partition) {
	 		listener.exitCoalesce_index_partition(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitCoalesce_index_partition) {
			return visitor.visitCoalesce_index_partition(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Modify_index_partitionContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public MODIFY(): TerminalNode {
		return this.getToken(PlSqlParser.MODIFY, 0);
	}
	public PARTITION(): TerminalNode {
		return this.getToken(PlSqlParser.PARTITION, 0);
	}
	public partition_name(): Partition_nameContext {
		return this.getTypedRuleContext(Partition_nameContext, 0) as Partition_nameContext;
	}
	public PARAMETERS(): TerminalNode {
		return this.getToken(PlSqlParser.PARAMETERS, 0);
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public odci_parameters(): Odci_parametersContext {
		return this.getTypedRuleContext(Odci_parametersContext, 0) as Odci_parametersContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public COALESCE(): TerminalNode {
		return this.getToken(PlSqlParser.COALESCE, 0);
	}
	public UPDATE(): TerminalNode {
		return this.getToken(PlSqlParser.UPDATE, 0);
	}
	public BLOCK(): TerminalNode {
		return this.getToken(PlSqlParser.BLOCK, 0);
	}
	public REFERENCES(): TerminalNode {
		return this.getToken(PlSqlParser.REFERENCES, 0);
	}
	public UNUSABLE(): TerminalNode {
		return this.getToken(PlSqlParser.UNUSABLE, 0);
	}
	public modify_index_partitions_ops_list(): Modify_index_partitions_opsContext[] {
		return this.getTypedRuleContexts(Modify_index_partitions_opsContext) as Modify_index_partitions_opsContext[];
	}
	public modify_index_partitions_ops(i: number): Modify_index_partitions_opsContext {
		return this.getTypedRuleContext(Modify_index_partitions_opsContext, i) as Modify_index_partitions_opsContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_modify_index_partition;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterModify_index_partition) {
	 		listener.enterModify_index_partition(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitModify_index_partition) {
	 		listener.exitModify_index_partition(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitModify_index_partition) {
			return visitor.visitModify_index_partition(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Modify_index_partitions_opsContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public deallocate_unused_clause(): Deallocate_unused_clauseContext {
		return this.getTypedRuleContext(Deallocate_unused_clauseContext, 0) as Deallocate_unused_clauseContext;
	}
	public allocate_extent_clause(): Allocate_extent_clauseContext {
		return this.getTypedRuleContext(Allocate_extent_clauseContext, 0) as Allocate_extent_clauseContext;
	}
	public physical_attributes_clause(): Physical_attributes_clauseContext {
		return this.getTypedRuleContext(Physical_attributes_clauseContext, 0) as Physical_attributes_clauseContext;
	}
	public logging_clause(): Logging_clauseContext {
		return this.getTypedRuleContext(Logging_clauseContext, 0) as Logging_clauseContext;
	}
	public key_compression(): Key_compressionContext {
		return this.getTypedRuleContext(Key_compressionContext, 0) as Key_compressionContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_modify_index_partitions_ops;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterModify_index_partitions_ops) {
	 		listener.enterModify_index_partitions_ops(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitModify_index_partitions_ops) {
	 		listener.exitModify_index_partitions_ops(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitModify_index_partitions_ops) {
			return visitor.visitModify_index_partitions_ops(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Rename_index_partitionContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public RENAME(): TerminalNode {
		return this.getToken(PlSqlParser.RENAME, 0);
	}
	public TO(): TerminalNode {
		return this.getToken(PlSqlParser.TO, 0);
	}
	public new_partition_name(): New_partition_nameContext {
		return this.getTypedRuleContext(New_partition_nameContext, 0) as New_partition_nameContext;
	}
	public PARTITION(): TerminalNode {
		return this.getToken(PlSqlParser.PARTITION, 0);
	}
	public partition_name(): Partition_nameContext {
		return this.getTypedRuleContext(Partition_nameContext, 0) as Partition_nameContext;
	}
	public SUBPARTITION(): TerminalNode {
		return this.getToken(PlSqlParser.SUBPARTITION, 0);
	}
	public subpartition_name(): Subpartition_nameContext {
		return this.getTypedRuleContext(Subpartition_nameContext, 0) as Subpartition_nameContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_rename_index_partition;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterRename_index_partition) {
	 		listener.enterRename_index_partition(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitRename_index_partition) {
	 		listener.exitRename_index_partition(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitRename_index_partition) {
			return visitor.visitRename_index_partition(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Drop_index_partitionContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public DROP(): TerminalNode {
		return this.getToken(PlSqlParser.DROP, 0);
	}
	public PARTITION(): TerminalNode {
		return this.getToken(PlSqlParser.PARTITION, 0);
	}
	public partition_name(): Partition_nameContext {
		return this.getTypedRuleContext(Partition_nameContext, 0) as Partition_nameContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_drop_index_partition;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterDrop_index_partition) {
	 		listener.enterDrop_index_partition(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitDrop_index_partition) {
	 		listener.exitDrop_index_partition(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitDrop_index_partition) {
			return visitor.visitDrop_index_partition(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Split_index_partitionContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public SPLIT(): TerminalNode {
		return this.getToken(PlSqlParser.SPLIT, 0);
	}
	public PARTITION(): TerminalNode {
		return this.getToken(PlSqlParser.PARTITION, 0);
	}
	public partition_name_old(): Partition_name_oldContext {
		return this.getTypedRuleContext(Partition_name_oldContext, 0) as Partition_name_oldContext;
	}
	public AT(): TerminalNode {
		return this.getToken(PlSqlParser.AT, 0);
	}
	public LEFT_PAREN_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.LEFT_PAREN);
	}
	public LEFT_PAREN(i: number): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, i);
	}
	public literal_list(): LiteralContext[] {
		return this.getTypedRuleContexts(LiteralContext) as LiteralContext[];
	}
	public literal(i: number): LiteralContext {
		return this.getTypedRuleContext(LiteralContext, i) as LiteralContext;
	}
	public RIGHT_PAREN_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.RIGHT_PAREN);
	}
	public RIGHT_PAREN(i: number): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, i);
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
	public INTO(): TerminalNode {
		return this.getToken(PlSqlParser.INTO, 0);
	}
	public index_partition_description_list(): Index_partition_descriptionContext[] {
		return this.getTypedRuleContexts(Index_partition_descriptionContext) as Index_partition_descriptionContext[];
	}
	public index_partition_description(i: number): Index_partition_descriptionContext {
		return this.getTypedRuleContext(Index_partition_descriptionContext, i) as Index_partition_descriptionContext;
	}
	public parallel_clause(): Parallel_clauseContext {
		return this.getTypedRuleContext(Parallel_clauseContext, 0) as Parallel_clauseContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_split_index_partition;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterSplit_index_partition) {
	 		listener.enterSplit_index_partition(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitSplit_index_partition) {
	 		listener.exitSplit_index_partition(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitSplit_index_partition) {
			return visitor.visitSplit_index_partition(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Index_partition_descriptionContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public PARTITION(): TerminalNode {
		return this.getToken(PlSqlParser.PARTITION, 0);
	}
	public partition_name(): Partition_nameContext {
		return this.getTypedRuleContext(Partition_nameContext, 0) as Partition_nameContext;
	}
	public PARAMETERS(): TerminalNode {
		return this.getToken(PlSqlParser.PARAMETERS, 0);
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public odci_parameters(): Odci_parametersContext {
		return this.getTypedRuleContext(Odci_parametersContext, 0) as Odci_parametersContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public UNUSABLE(): TerminalNode {
		return this.getToken(PlSqlParser.UNUSABLE, 0);
	}
	public segment_attributes_clause_list(): Segment_attributes_clauseContext[] {
		return this.getTypedRuleContexts(Segment_attributes_clauseContext) as Segment_attributes_clauseContext[];
	}
	public segment_attributes_clause(i: number): Segment_attributes_clauseContext {
		return this.getTypedRuleContext(Segment_attributes_clauseContext, i) as Segment_attributes_clauseContext;
	}
	public key_compression_list(): Key_compressionContext[] {
		return this.getTypedRuleContexts(Key_compressionContext) as Key_compressionContext[];
	}
	public key_compression(i: number): Key_compressionContext {
		return this.getTypedRuleContext(Key_compressionContext, i) as Key_compressionContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_index_partition_description;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterIndex_partition_description) {
	 		listener.enterIndex_partition_description(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitIndex_partition_description) {
	 		listener.exitIndex_partition_description(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitIndex_partition_description) {
			return visitor.visitIndex_partition_description(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Modify_index_subpartitionContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public MODIFY(): TerminalNode {
		return this.getToken(PlSqlParser.MODIFY, 0);
	}
	public SUBPARTITION(): TerminalNode {
		return this.getToken(PlSqlParser.SUBPARTITION, 0);
	}
	public subpartition_name(): Subpartition_nameContext {
		return this.getTypedRuleContext(Subpartition_nameContext, 0) as Subpartition_nameContext;
	}
	public UNUSABLE(): TerminalNode {
		return this.getToken(PlSqlParser.UNUSABLE, 0);
	}
	public allocate_extent_clause(): Allocate_extent_clauseContext {
		return this.getTypedRuleContext(Allocate_extent_clauseContext, 0) as Allocate_extent_clauseContext;
	}
	public deallocate_unused_clause(): Deallocate_unused_clauseContext {
		return this.getTypedRuleContext(Deallocate_unused_clauseContext, 0) as Deallocate_unused_clauseContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_modify_index_subpartition;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterModify_index_subpartition) {
	 		listener.enterModify_index_subpartition(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitModify_index_subpartition) {
	 		listener.exitModify_index_subpartition(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitModify_index_subpartition) {
			return visitor.visitModify_index_subpartition(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Partition_name_oldContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public partition_name(): Partition_nameContext {
		return this.getTypedRuleContext(Partition_nameContext, 0) as Partition_nameContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_partition_name_old;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterPartition_name_old) {
	 		listener.enterPartition_name_old(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitPartition_name_old) {
	 		listener.exitPartition_name_old(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitPartition_name_old) {
			return visitor.visitPartition_name_old(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class New_partition_nameContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public partition_name(): Partition_nameContext {
		return this.getTypedRuleContext(Partition_nameContext, 0) as Partition_nameContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_new_partition_name;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterNew_partition_name) {
	 		listener.enterNew_partition_name(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitNew_partition_name) {
	 		listener.exitNew_partition_name(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitNew_partition_name) {
			return visitor.visitNew_partition_name(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class New_index_nameContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public index_name(): Index_nameContext {
		return this.getTypedRuleContext(Index_nameContext, 0) as Index_nameContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_new_index_name;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterNew_index_name) {
	 		listener.enterNew_index_name(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitNew_index_name) {
	 		listener.exitNew_index_name(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitNew_index_name) {
			return visitor.visitNew_index_name(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Create_userContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public CREATE(): TerminalNode {
		return this.getToken(PlSqlParser.CREATE, 0);
	}
	public USER(): TerminalNode {
		return this.getToken(PlSqlParser.USER, 0);
	}
	public user_object_name(): User_object_nameContext {
		return this.getTypedRuleContext(User_object_nameContext, 0) as User_object_nameContext;
	}
	public SEMICOLON(): TerminalNode {
		return this.getToken(PlSqlParser.SEMICOLON, 0);
	}
	public identified_by_list(): Identified_byContext[] {
		return this.getTypedRuleContexts(Identified_byContext) as Identified_byContext[];
	}
	public identified_by(i: number): Identified_byContext {
		return this.getTypedRuleContext(Identified_byContext, i) as Identified_byContext;
	}
	public identified_other_clause_list(): Identified_other_clauseContext[] {
		return this.getTypedRuleContexts(Identified_other_clauseContext) as Identified_other_clauseContext[];
	}
	public identified_other_clause(i: number): Identified_other_clauseContext {
		return this.getTypedRuleContext(Identified_other_clauseContext, i) as Identified_other_clauseContext;
	}
	public user_tablespace_clause_list(): User_tablespace_clauseContext[] {
		return this.getTypedRuleContexts(User_tablespace_clauseContext) as User_tablespace_clauseContext[];
	}
	public user_tablespace_clause(i: number): User_tablespace_clauseContext {
		return this.getTypedRuleContext(User_tablespace_clauseContext, i) as User_tablespace_clauseContext;
	}
	public quota_clause_list(): Quota_clauseContext[] {
		return this.getTypedRuleContexts(Quota_clauseContext) as Quota_clauseContext[];
	}
	public quota_clause(i: number): Quota_clauseContext {
		return this.getTypedRuleContext(Quota_clauseContext, i) as Quota_clauseContext;
	}
	public profile_clause_list(): Profile_clauseContext[] {
		return this.getTypedRuleContexts(Profile_clauseContext) as Profile_clauseContext[];
	}
	public profile_clause(i: number): Profile_clauseContext {
		return this.getTypedRuleContext(Profile_clauseContext, i) as Profile_clauseContext;
	}
	public password_expire_clause_list(): Password_expire_clauseContext[] {
		return this.getTypedRuleContexts(Password_expire_clauseContext) as Password_expire_clauseContext[];
	}
	public password_expire_clause(i: number): Password_expire_clauseContext {
		return this.getTypedRuleContext(Password_expire_clauseContext, i) as Password_expire_clauseContext;
	}
	public user_lock_clause_list(): User_lock_clauseContext[] {
		return this.getTypedRuleContexts(User_lock_clauseContext) as User_lock_clauseContext[];
	}
	public user_lock_clause(i: number): User_lock_clauseContext {
		return this.getTypedRuleContext(User_lock_clauseContext, i) as User_lock_clauseContext;
	}
	public user_editions_clause_list(): User_editions_clauseContext[] {
		return this.getTypedRuleContexts(User_editions_clauseContext) as User_editions_clauseContext[];
	}
	public user_editions_clause(i: number): User_editions_clauseContext {
		return this.getTypedRuleContext(User_editions_clauseContext, i) as User_editions_clauseContext;
	}
	public container_clause_list(): Container_clauseContext[] {
		return this.getTypedRuleContexts(Container_clauseContext) as Container_clauseContext[];
	}
	public container_clause(i: number): Container_clauseContext {
		return this.getTypedRuleContext(Container_clauseContext, i) as Container_clauseContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_create_user;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterCreate_user) {
	 		listener.enterCreate_user(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitCreate_user) {
	 		listener.exitCreate_user(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitCreate_user) {
			return visitor.visitCreate_user(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Alter_userContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public ALTER(): TerminalNode {
		return this.getToken(PlSqlParser.ALTER, 0);
	}
	public USER(): TerminalNode {
		return this.getToken(PlSqlParser.USER, 0);
	}
	public user_object_name_list(): User_object_nameContext[] {
		return this.getTypedRuleContexts(User_object_nameContext) as User_object_nameContext[];
	}
	public user_object_name(i: number): User_object_nameContext {
		return this.getTypedRuleContext(User_object_nameContext, i) as User_object_nameContext;
	}
	public SEMICOLON(): TerminalNode {
		return this.getToken(PlSqlParser.SEMICOLON, 0);
	}
	public alter_identified_by_list(): Alter_identified_byContext[] {
		return this.getTypedRuleContexts(Alter_identified_byContext) as Alter_identified_byContext[];
	}
	public alter_identified_by(i: number): Alter_identified_byContext {
		return this.getTypedRuleContext(Alter_identified_byContext, i) as Alter_identified_byContext;
	}
	public identified_other_clause_list(): Identified_other_clauseContext[] {
		return this.getTypedRuleContexts(Identified_other_clauseContext) as Identified_other_clauseContext[];
	}
	public identified_other_clause(i: number): Identified_other_clauseContext {
		return this.getTypedRuleContext(Identified_other_clauseContext, i) as Identified_other_clauseContext;
	}
	public user_tablespace_clause_list(): User_tablespace_clauseContext[] {
		return this.getTypedRuleContexts(User_tablespace_clauseContext) as User_tablespace_clauseContext[];
	}
	public user_tablespace_clause(i: number): User_tablespace_clauseContext {
		return this.getTypedRuleContext(User_tablespace_clauseContext, i) as User_tablespace_clauseContext;
	}
	public quota_clause_list(): Quota_clauseContext[] {
		return this.getTypedRuleContexts(Quota_clauseContext) as Quota_clauseContext[];
	}
	public quota_clause(i: number): Quota_clauseContext {
		return this.getTypedRuleContext(Quota_clauseContext, i) as Quota_clauseContext;
	}
	public profile_clause_list(): Profile_clauseContext[] {
		return this.getTypedRuleContexts(Profile_clauseContext) as Profile_clauseContext[];
	}
	public profile_clause(i: number): Profile_clauseContext {
		return this.getTypedRuleContext(Profile_clauseContext, i) as Profile_clauseContext;
	}
	public user_default_role_clause_list(): User_default_role_clauseContext[] {
		return this.getTypedRuleContexts(User_default_role_clauseContext) as User_default_role_clauseContext[];
	}
	public user_default_role_clause(i: number): User_default_role_clauseContext {
		return this.getTypedRuleContext(User_default_role_clauseContext, i) as User_default_role_clauseContext;
	}
	public password_expire_clause_list(): Password_expire_clauseContext[] {
		return this.getTypedRuleContexts(Password_expire_clauseContext) as Password_expire_clauseContext[];
	}
	public password_expire_clause(i: number): Password_expire_clauseContext {
		return this.getTypedRuleContext(Password_expire_clauseContext, i) as Password_expire_clauseContext;
	}
	public user_lock_clause_list(): User_lock_clauseContext[] {
		return this.getTypedRuleContexts(User_lock_clauseContext) as User_lock_clauseContext[];
	}
	public user_lock_clause(i: number): User_lock_clauseContext {
		return this.getTypedRuleContext(User_lock_clauseContext, i) as User_lock_clauseContext;
	}
	public alter_user_editions_clause_list(): Alter_user_editions_clauseContext[] {
		return this.getTypedRuleContexts(Alter_user_editions_clauseContext) as Alter_user_editions_clauseContext[];
	}
	public alter_user_editions_clause(i: number): Alter_user_editions_clauseContext {
		return this.getTypedRuleContext(Alter_user_editions_clauseContext, i) as Alter_user_editions_clauseContext;
	}
	public container_clause_list(): Container_clauseContext[] {
		return this.getTypedRuleContexts(Container_clauseContext) as Container_clauseContext[];
	}
	public container_clause(i: number): Container_clauseContext {
		return this.getTypedRuleContext(Container_clauseContext, i) as Container_clauseContext;
	}
	public container_data_clause_list(): Container_data_clauseContext[] {
		return this.getTypedRuleContexts(Container_data_clauseContext) as Container_data_clauseContext[];
	}
	public container_data_clause(i: number): Container_data_clauseContext {
		return this.getTypedRuleContext(Container_data_clauseContext, i) as Container_data_clauseContext;
	}
	public proxy_clause(): Proxy_clauseContext {
		return this.getTypedRuleContext(Proxy_clauseContext, 0) as Proxy_clauseContext;
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_alter_user;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterAlter_user) {
	 		listener.enterAlter_user(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitAlter_user) {
	 		listener.exitAlter_user(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitAlter_user) {
			return visitor.visitAlter_user(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Alter_identified_byContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public identified_by(): Identified_byContext {
		return this.getTypedRuleContext(Identified_byContext, 0) as Identified_byContext;
	}
	public REPLACE(): TerminalNode {
		return this.getToken(PlSqlParser.REPLACE, 0);
	}
	public id_expression(): Id_expressionContext {
		return this.getTypedRuleContext(Id_expressionContext, 0) as Id_expressionContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_alter_identified_by;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterAlter_identified_by) {
	 		listener.enterAlter_identified_by(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitAlter_identified_by) {
	 		listener.exitAlter_identified_by(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitAlter_identified_by) {
			return visitor.visitAlter_identified_by(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Identified_byContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public IDENTIFIED(): TerminalNode {
		return this.getToken(PlSqlParser.IDENTIFIED, 0);
	}
	public BY(): TerminalNode {
		return this.getToken(PlSqlParser.BY, 0);
	}
	public id_expression(): Id_expressionContext {
		return this.getTypedRuleContext(Id_expressionContext, 0) as Id_expressionContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_identified_by;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterIdentified_by) {
	 		listener.enterIdentified_by(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitIdentified_by) {
	 		listener.exitIdentified_by(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitIdentified_by) {
			return visitor.visitIdentified_by(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Identified_other_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public IDENTIFIED(): TerminalNode {
		return this.getToken(PlSqlParser.IDENTIFIED, 0);
	}
	public EXTERNALLY(): TerminalNode {
		return this.getToken(PlSqlParser.EXTERNALLY, 0);
	}
	public GLOBALLY(): TerminalNode {
		return this.getToken(PlSqlParser.GLOBALLY, 0);
	}
	public AS(): TerminalNode {
		return this.getToken(PlSqlParser.AS, 0);
	}
	public quoted_string(): Quoted_stringContext {
		return this.getTypedRuleContext(Quoted_stringContext, 0) as Quoted_stringContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_identified_other_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterIdentified_other_clause) {
	 		listener.enterIdentified_other_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitIdentified_other_clause) {
	 		listener.exitIdentified_other_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitIdentified_other_clause) {
			return visitor.visitIdentified_other_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class User_tablespace_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public TABLESPACE(): TerminalNode {
		return this.getToken(PlSqlParser.TABLESPACE, 0);
	}
	public id_expression(): Id_expressionContext {
		return this.getTypedRuleContext(Id_expressionContext, 0) as Id_expressionContext;
	}
	public DEFAULT(): TerminalNode {
		return this.getToken(PlSqlParser.DEFAULT, 0);
	}
	public TEMPORARY(): TerminalNode {
		return this.getToken(PlSqlParser.TEMPORARY, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_user_tablespace_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterUser_tablespace_clause) {
	 		listener.enterUser_tablespace_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitUser_tablespace_clause) {
	 		listener.exitUser_tablespace_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitUser_tablespace_clause) {
			return visitor.visitUser_tablespace_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Quota_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public QUOTA(): TerminalNode {
		return this.getToken(PlSqlParser.QUOTA, 0);
	}
	public ON(): TerminalNode {
		return this.getToken(PlSqlParser.ON, 0);
	}
	public id_expression(): Id_expressionContext {
		return this.getTypedRuleContext(Id_expressionContext, 0) as Id_expressionContext;
	}
	public size_clause(): Size_clauseContext {
		return this.getTypedRuleContext(Size_clauseContext, 0) as Size_clauseContext;
	}
	public UNLIMITED(): TerminalNode {
		return this.getToken(PlSqlParser.UNLIMITED, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_quota_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterQuota_clause) {
	 		listener.enterQuota_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitQuota_clause) {
	 		listener.exitQuota_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitQuota_clause) {
			return visitor.visitQuota_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Profile_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public PROFILE(): TerminalNode {
		return this.getToken(PlSqlParser.PROFILE, 0);
	}
	public id_expression(): Id_expressionContext {
		return this.getTypedRuleContext(Id_expressionContext, 0) as Id_expressionContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_profile_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterProfile_clause) {
	 		listener.enterProfile_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitProfile_clause) {
	 		listener.exitProfile_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitProfile_clause) {
			return visitor.visitProfile_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Role_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public role_name_list(): Role_nameContext[] {
		return this.getTypedRuleContexts(Role_nameContext) as Role_nameContext[];
	}
	public role_name(i: number): Role_nameContext {
		return this.getTypedRuleContext(Role_nameContext, i) as Role_nameContext;
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
	public ALL(): TerminalNode {
		return this.getToken(PlSqlParser.ALL, 0);
	}
	public EXCEPT_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.EXCEPT);
	}
	public EXCEPT(i: number): TerminalNode {
		return this.getToken(PlSqlParser.EXCEPT, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_role_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterRole_clause) {
	 		listener.enterRole_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitRole_clause) {
	 		listener.exitRole_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitRole_clause) {
			return visitor.visitRole_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class User_default_role_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public DEFAULT(): TerminalNode {
		return this.getToken(PlSqlParser.DEFAULT, 0);
	}
	public ROLE(): TerminalNode {
		return this.getToken(PlSqlParser.ROLE, 0);
	}
	public NONE(): TerminalNode {
		return this.getToken(PlSqlParser.NONE, 0);
	}
	public role_clause(): Role_clauseContext {
		return this.getTypedRuleContext(Role_clauseContext, 0) as Role_clauseContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_user_default_role_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterUser_default_role_clause) {
	 		listener.enterUser_default_role_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitUser_default_role_clause) {
	 		listener.exitUser_default_role_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitUser_default_role_clause) {
			return visitor.visitUser_default_role_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Password_expire_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public PASSWORD(): TerminalNode {
		return this.getToken(PlSqlParser.PASSWORD, 0);
	}
	public EXPIRE(): TerminalNode {
		return this.getToken(PlSqlParser.EXPIRE, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_password_expire_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterPassword_expire_clause) {
	 		listener.enterPassword_expire_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitPassword_expire_clause) {
	 		listener.exitPassword_expire_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitPassword_expire_clause) {
			return visitor.visitPassword_expire_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class User_lock_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public ACCOUNT(): TerminalNode {
		return this.getToken(PlSqlParser.ACCOUNT, 0);
	}
	public LOCK(): TerminalNode {
		return this.getToken(PlSqlParser.LOCK, 0);
	}
	public UNLOCK(): TerminalNode {
		return this.getToken(PlSqlParser.UNLOCK, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_user_lock_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterUser_lock_clause) {
	 		listener.enterUser_lock_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitUser_lock_clause) {
	 		listener.exitUser_lock_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitUser_lock_clause) {
			return visitor.visitUser_lock_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class User_editions_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public ENABLE(): TerminalNode {
		return this.getToken(PlSqlParser.ENABLE, 0);
	}
	public EDITIONS(): TerminalNode {
		return this.getToken(PlSqlParser.EDITIONS, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_user_editions_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterUser_editions_clause) {
	 		listener.enterUser_editions_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitUser_editions_clause) {
	 		listener.exitUser_editions_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitUser_editions_clause) {
			return visitor.visitUser_editions_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Alter_user_editions_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public user_editions_clause(): User_editions_clauseContext {
		return this.getTypedRuleContext(User_editions_clauseContext, 0) as User_editions_clauseContext;
	}
	public FOR(): TerminalNode {
		return this.getToken(PlSqlParser.FOR, 0);
	}
	public regular_id_list(): Regular_idContext[] {
		return this.getTypedRuleContexts(Regular_idContext) as Regular_idContext[];
	}
	public regular_id(i: number): Regular_idContext {
		return this.getTypedRuleContext(Regular_idContext, i) as Regular_idContext;
	}
	public FORCE(): TerminalNode {
		return this.getToken(PlSqlParser.FORCE, 0);
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_alter_user_editions_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterAlter_user_editions_clause) {
	 		listener.enterAlter_user_editions_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitAlter_user_editions_clause) {
	 		listener.exitAlter_user_editions_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitAlter_user_editions_clause) {
			return visitor.visitAlter_user_editions_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Proxy_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public REVOKE(): TerminalNode {
		return this.getToken(PlSqlParser.REVOKE, 0);
	}
	public CONNECT(): TerminalNode {
		return this.getToken(PlSqlParser.CONNECT, 0);
	}
	public THROUGH(): TerminalNode {
		return this.getToken(PlSqlParser.THROUGH, 0);
	}
	public ENTERPRISE(): TerminalNode {
		return this.getToken(PlSqlParser.ENTERPRISE, 0);
	}
	public USERS(): TerminalNode {
		return this.getToken(PlSqlParser.USERS, 0);
	}
	public user_object_name(): User_object_nameContext {
		return this.getTypedRuleContext(User_object_nameContext, 0) as User_object_nameContext;
	}
	public GRANT(): TerminalNode {
		return this.getToken(PlSqlParser.GRANT, 0);
	}
	public WITH(): TerminalNode {
		return this.getToken(PlSqlParser.WITH, 0);
	}
	public AUTHENTICATION(): TerminalNode {
		return this.getToken(PlSqlParser.AUTHENTICATION, 0);
	}
	public REQUIRED(): TerminalNode {
		return this.getToken(PlSqlParser.REQUIRED, 0);
	}
	public AUTHENTICATED(): TerminalNode {
		return this.getToken(PlSqlParser.AUTHENTICATED, 0);
	}
	public USING(): TerminalNode {
		return this.getToken(PlSqlParser.USING, 0);
	}
	public NO(): TerminalNode {
		return this.getToken(PlSqlParser.NO, 0);
	}
	public ROLES(): TerminalNode {
		return this.getToken(PlSqlParser.ROLES, 0);
	}
	public ROLE(): TerminalNode {
		return this.getToken(PlSqlParser.ROLE, 0);
	}
	public role_clause(): Role_clauseContext {
		return this.getTypedRuleContext(Role_clauseContext, 0) as Role_clauseContext;
	}
	public PASSWORD(): TerminalNode {
		return this.getToken(PlSqlParser.PASSWORD, 0);
	}
	public CERTIFICATE(): TerminalNode {
		return this.getToken(PlSqlParser.CERTIFICATE, 0);
	}
	public DISTINGUISHED(): TerminalNode {
		return this.getToken(PlSqlParser.DISTINGUISHED, 0);
	}
	public NAME(): TerminalNode {
		return this.getToken(PlSqlParser.NAME, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_proxy_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterProxy_clause) {
	 		listener.enterProxy_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitProxy_clause) {
	 		listener.exitProxy_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitProxy_clause) {
			return visitor.visitProxy_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Container_namesContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public id_expression_list(): Id_expressionContext[] {
		return this.getTypedRuleContexts(Id_expressionContext) as Id_expressionContext[];
	}
	public id_expression(i: number): Id_expressionContext {
		return this.getTypedRuleContext(Id_expressionContext, i) as Id_expressionContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_container_names;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterContainer_names) {
	 		listener.enterContainer_names(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitContainer_names) {
	 		listener.exitContainer_names(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitContainer_names) {
			return visitor.visitContainer_names(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Set_container_dataContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public SET(): TerminalNode {
		return this.getToken(PlSqlParser.SET, 0);
	}
	public CONTAINER_DATA(): TerminalNode {
		return this.getToken(PlSqlParser.CONTAINER_DATA, 0);
	}
	public EQUALS_OP(): TerminalNode {
		return this.getToken(PlSqlParser.EQUALS_OP, 0);
	}
	public ALL(): TerminalNode {
		return this.getToken(PlSqlParser.ALL, 0);
	}
	public DEFAULT(): TerminalNode {
		return this.getToken(PlSqlParser.DEFAULT, 0);
	}
	public container_names(): Container_namesContext {
		return this.getTypedRuleContext(Container_namesContext, 0) as Container_namesContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_set_container_data;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterSet_container_data) {
	 		listener.enterSet_container_data(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitSet_container_data) {
	 		listener.exitSet_container_data(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitSet_container_data) {
			return visitor.visitSet_container_data(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Add_rem_container_dataContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public CONTAINER_DATA(): TerminalNode {
		return this.getToken(PlSqlParser.CONTAINER_DATA, 0);
	}
	public EQUALS_OP(): TerminalNode {
		return this.getToken(PlSqlParser.EQUALS_OP, 0);
	}
	public container_names(): Container_namesContext {
		return this.getTypedRuleContext(Container_namesContext, 0) as Container_namesContext;
	}
	public ADD(): TerminalNode {
		return this.getToken(PlSqlParser.ADD, 0);
	}
	public REMOVE(): TerminalNode {
		return this.getToken(PlSqlParser.REMOVE, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_add_rem_container_data;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterAdd_rem_container_data) {
	 		listener.enterAdd_rem_container_data(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitAdd_rem_container_data) {
	 		listener.exitAdd_rem_container_data(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitAdd_rem_container_data) {
			return visitor.visitAdd_rem_container_data(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Container_data_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public set_container_data(): Set_container_dataContext {
		return this.getTypedRuleContext(Set_container_dataContext, 0) as Set_container_dataContext;
	}
	public add_rem_container_data(): Add_rem_container_dataContext {
		return this.getTypedRuleContext(Add_rem_container_dataContext, 0) as Add_rem_container_dataContext;
	}
	public FOR(): TerminalNode {
		return this.getToken(PlSqlParser.FOR, 0);
	}
	public container_tableview_name(): Container_tableview_nameContext {
		return this.getTypedRuleContext(Container_tableview_nameContext, 0) as Container_tableview_nameContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_container_data_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterContainer_data_clause) {
	 		listener.enterContainer_data_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitContainer_data_clause) {
	 		listener.exitContainer_data_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitContainer_data_clause) {
			return visitor.visitContainer_data_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class AnalyzeContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public SEMICOLON(): TerminalNode {
		return this.getToken(PlSqlParser.SEMICOLON, 0);
	}
	public ANALYZE(): TerminalNode {
		return this.getToken(PlSqlParser.ANALYZE, 0);
	}
	public CLUSTER(): TerminalNode {
		return this.getToken(PlSqlParser.CLUSTER, 0);
	}
	public cluster_name(): Cluster_nameContext {
		return this.getTypedRuleContext(Cluster_nameContext, 0) as Cluster_nameContext;
	}
	public validation_clauses(): Validation_clausesContext {
		return this.getTypedRuleContext(Validation_clausesContext, 0) as Validation_clausesContext;
	}
	public LIST(): TerminalNode {
		return this.getToken(PlSqlParser.LIST, 0);
	}
	public CHAINED(): TerminalNode {
		return this.getToken(PlSqlParser.CHAINED, 0);
	}
	public ROWS(): TerminalNode {
		return this.getToken(PlSqlParser.ROWS, 0);
	}
	public DELETE(): TerminalNode {
		return this.getToken(PlSqlParser.DELETE, 0);
	}
	public STATISTICS(): TerminalNode {
		return this.getToken(PlSqlParser.STATISTICS, 0);
	}
	public TABLE(): TerminalNode {
		return this.getToken(PlSqlParser.TABLE, 0);
	}
	public tableview_name(): Tableview_nameContext {
		return this.getTypedRuleContext(Tableview_nameContext, 0) as Tableview_nameContext;
	}
	public INDEX(): TerminalNode {
		return this.getToken(PlSqlParser.INDEX, 0);
	}
	public index_name(): Index_nameContext {
		return this.getTypedRuleContext(Index_nameContext, 0) as Index_nameContext;
	}
	public partition_extention_clause(): Partition_extention_clauseContext {
		return this.getTypedRuleContext(Partition_extention_clauseContext, 0) as Partition_extention_clauseContext;
	}
	public into_clause1(): Into_clause1Context {
		return this.getTypedRuleContext(Into_clause1Context, 0) as Into_clause1Context;
	}
	public SYSTEM(): TerminalNode {
		return this.getToken(PlSqlParser.SYSTEM, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_analyze;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterAnalyze) {
	 		listener.enterAnalyze(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitAnalyze) {
	 		listener.exitAnalyze(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitAnalyze) {
			return visitor.visitAnalyze(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Partition_extention_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public PARTITION(): TerminalNode {
		return this.getToken(PlSqlParser.PARTITION, 0);
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public partition_name(): Partition_nameContext {
		return this.getTypedRuleContext(Partition_nameContext, 0) as Partition_nameContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public FOR(): TerminalNode {
		return this.getToken(PlSqlParser.FOR, 0);
	}
	public partition_key_value_list(): Partition_key_valueContext[] {
		return this.getTypedRuleContexts(Partition_key_valueContext) as Partition_key_valueContext[];
	}
	public partition_key_value(i: number): Partition_key_valueContext {
		return this.getTypedRuleContext(Partition_key_valueContext, i) as Partition_key_valueContext;
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
	public SUBPARTITION(): TerminalNode {
		return this.getToken(PlSqlParser.SUBPARTITION, 0);
	}
	public subpartition_name(): Subpartition_nameContext {
		return this.getTypedRuleContext(Subpartition_nameContext, 0) as Subpartition_nameContext;
	}
	public subpartition_key_value_list(): Subpartition_key_valueContext[] {
		return this.getTypedRuleContexts(Subpartition_key_valueContext) as Subpartition_key_valueContext[];
	}
	public subpartition_key_value(i: number): Subpartition_key_valueContext {
		return this.getTypedRuleContext(Subpartition_key_valueContext, i) as Subpartition_key_valueContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_partition_extention_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterPartition_extention_clause) {
	 		listener.enterPartition_extention_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitPartition_extention_clause) {
	 		listener.exitPartition_extention_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitPartition_extention_clause) {
			return visitor.visitPartition_extention_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Validation_clausesContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public VALIDATE(): TerminalNode {
		return this.getToken(PlSqlParser.VALIDATE, 0);
	}
	public REF(): TerminalNode {
		return this.getToken(PlSqlParser.REF, 0);
	}
	public UPDATE(): TerminalNode {
		return this.getToken(PlSqlParser.UPDATE, 0);
	}
	public SET(): TerminalNode {
		return this.getToken(PlSqlParser.SET, 0);
	}
	public DANGLING(): TerminalNode {
		return this.getToken(PlSqlParser.DANGLING, 0);
	}
	public TO(): TerminalNode {
		return this.getToken(PlSqlParser.TO, 0);
	}
	public NULL_(): TerminalNode {
		return this.getToken(PlSqlParser.NULL_, 0);
	}
	public STRUCTURE(): TerminalNode {
		return this.getToken(PlSqlParser.STRUCTURE, 0);
	}
	public CASCADE(): TerminalNode {
		return this.getToken(PlSqlParser.CASCADE, 0);
	}
	public FAST(): TerminalNode {
		return this.getToken(PlSqlParser.FAST, 0);
	}
	public online_or_offline_list(): Online_or_offlineContext[] {
		return this.getTypedRuleContexts(Online_or_offlineContext) as Online_or_offlineContext[];
	}
	public online_or_offline(i: number): Online_or_offlineContext {
		return this.getTypedRuleContext(Online_or_offlineContext, i) as Online_or_offlineContext;
	}
	public into_clause_list(): Into_clauseContext[] {
		return this.getTypedRuleContexts(Into_clauseContext) as Into_clauseContext[];
	}
	public into_clause(i: number): Into_clauseContext {
		return this.getTypedRuleContext(Into_clauseContext, i) as Into_clauseContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_validation_clauses;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterValidation_clauses) {
	 		listener.enterValidation_clauses(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitValidation_clauses) {
	 		listener.exitValidation_clauses(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitValidation_clauses) {
			return visitor.visitValidation_clauses(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Online_or_offlineContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public OFFLINE(): TerminalNode {
		return this.getToken(PlSqlParser.OFFLINE, 0);
	}
	public ONLINE(): TerminalNode {
		return this.getToken(PlSqlParser.ONLINE, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_online_or_offline;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterOnline_or_offline) {
	 		listener.enterOnline_or_offline(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitOnline_or_offline) {
	 		listener.exitOnline_or_offline(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitOnline_or_offline) {
			return visitor.visitOnline_or_offline(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Into_clause1Context extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public INTO(): TerminalNode {
		return this.getToken(PlSqlParser.INTO, 0);
	}
	public tableview_name(): Tableview_nameContext {
		return this.getTypedRuleContext(Tableview_nameContext, 0) as Tableview_nameContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_into_clause1;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterInto_clause1) {
	 		listener.enterInto_clause1(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitInto_clause1) {
	 		listener.exitInto_clause1(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitInto_clause1) {
			return visitor.visitInto_clause1(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Partition_key_valueContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public literal(): LiteralContext {
		return this.getTypedRuleContext(LiteralContext, 0) as LiteralContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_partition_key_value;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterPartition_key_value) {
	 		listener.enterPartition_key_value(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitPartition_key_value) {
	 		listener.exitPartition_key_value(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitPartition_key_value) {
			return visitor.visitPartition_key_value(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Subpartition_key_valueContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public literal(): LiteralContext {
		return this.getTypedRuleContext(LiteralContext, 0) as LiteralContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_subpartition_key_value;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterSubpartition_key_value) {
	 		listener.enterSubpartition_key_value(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitSubpartition_key_value) {
	 		listener.exitSubpartition_key_value(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitSubpartition_key_value) {
			return visitor.visitSubpartition_key_value(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Associate_statisticsContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public ASSOCIATE(): TerminalNode {
		return this.getToken(PlSqlParser.ASSOCIATE, 0);
	}
	public STATISTICS(): TerminalNode {
		return this.getToken(PlSqlParser.STATISTICS, 0);
	}
	public WITH(): TerminalNode {
		return this.getToken(PlSqlParser.WITH, 0);
	}
	public SEMICOLON(): TerminalNode {
		return this.getToken(PlSqlParser.SEMICOLON, 0);
	}
	public column_association(): Column_associationContext {
		return this.getTypedRuleContext(Column_associationContext, 0) as Column_associationContext;
	}
	public function_association(): Function_associationContext {
		return this.getTypedRuleContext(Function_associationContext, 0) as Function_associationContext;
	}
	public storage_table_clause(): Storage_table_clauseContext {
		return this.getTypedRuleContext(Storage_table_clauseContext, 0) as Storage_table_clauseContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_associate_statistics;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterAssociate_statistics) {
	 		listener.enterAssociate_statistics(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitAssociate_statistics) {
	 		listener.exitAssociate_statistics(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitAssociate_statistics) {
			return visitor.visitAssociate_statistics(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Column_associationContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public COLUMNS(): TerminalNode {
		return this.getToken(PlSqlParser.COLUMNS, 0);
	}
	public tableview_name_list(): Tableview_nameContext[] {
		return this.getTypedRuleContexts(Tableview_nameContext) as Tableview_nameContext[];
	}
	public tableview_name(i: number): Tableview_nameContext {
		return this.getTypedRuleContext(Tableview_nameContext, i) as Tableview_nameContext;
	}
	public PERIOD_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.PERIOD);
	}
	public PERIOD(i: number): TerminalNode {
		return this.getToken(PlSqlParser.PERIOD, i);
	}
	public column_name_list(): Column_nameContext[] {
		return this.getTypedRuleContexts(Column_nameContext) as Column_nameContext[];
	}
	public column_name(i: number): Column_nameContext {
		return this.getTypedRuleContext(Column_nameContext, i) as Column_nameContext;
	}
	public using_statistics_type(): Using_statistics_typeContext {
		return this.getTypedRuleContext(Using_statistics_typeContext, 0) as Using_statistics_typeContext;
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_column_association;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterColumn_association) {
	 		listener.enterColumn_association(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitColumn_association) {
	 		listener.exitColumn_association(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitColumn_association) {
			return visitor.visitColumn_association(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Function_associationContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public FUNCTIONS(): TerminalNode {
		return this.getToken(PlSqlParser.FUNCTIONS, 0);
	}
	public function_name_list(): Function_nameContext[] {
		return this.getTypedRuleContexts(Function_nameContext) as Function_nameContext[];
	}
	public function_name(i: number): Function_nameContext {
		return this.getTypedRuleContext(Function_nameContext, i) as Function_nameContext;
	}
	public PACKAGES(): TerminalNode {
		return this.getToken(PlSqlParser.PACKAGES, 0);
	}
	public package_name_list(): Package_nameContext[] {
		return this.getTypedRuleContexts(Package_nameContext) as Package_nameContext[];
	}
	public package_name(i: number): Package_nameContext {
		return this.getTypedRuleContext(Package_nameContext, i) as Package_nameContext;
	}
	public TYPES(): TerminalNode {
		return this.getToken(PlSqlParser.TYPES, 0);
	}
	public type_name_list(): Type_nameContext[] {
		return this.getTypedRuleContexts(Type_nameContext) as Type_nameContext[];
	}
	public type_name(i: number): Type_nameContext {
		return this.getTypedRuleContext(Type_nameContext, i) as Type_nameContext;
	}
	public INDEXES(): TerminalNode {
		return this.getToken(PlSqlParser.INDEXES, 0);
	}
	public index_name_list(): Index_nameContext[] {
		return this.getTypedRuleContexts(Index_nameContext) as Index_nameContext[];
	}
	public index_name(i: number): Index_nameContext {
		return this.getTypedRuleContext(Index_nameContext, i) as Index_nameContext;
	}
	public INDEXTYPES(): TerminalNode {
		return this.getToken(PlSqlParser.INDEXTYPES, 0);
	}
	public indextype_name_list(): Indextype_nameContext[] {
		return this.getTypedRuleContexts(Indextype_nameContext) as Indextype_nameContext[];
	}
	public indextype_name(i: number): Indextype_nameContext {
		return this.getTypedRuleContext(Indextype_nameContext, i) as Indextype_nameContext;
	}
	public using_statistics_type(): Using_statistics_typeContext {
		return this.getTypedRuleContext(Using_statistics_typeContext, 0) as Using_statistics_typeContext;
	}
	public default_cost_clause(): Default_cost_clauseContext {
		return this.getTypedRuleContext(Default_cost_clauseContext, 0) as Default_cost_clauseContext;
	}
	public default_selectivity_clause(): Default_selectivity_clauseContext {
		return this.getTypedRuleContext(Default_selectivity_clauseContext, 0) as Default_selectivity_clauseContext;
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_function_association;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterFunction_association) {
	 		listener.enterFunction_association(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitFunction_association) {
	 		listener.exitFunction_association(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitFunction_association) {
			return visitor.visitFunction_association(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Indextype_nameContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public id_expression(): Id_expressionContext {
		return this.getTypedRuleContext(Id_expressionContext, 0) as Id_expressionContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_indextype_name;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterIndextype_name) {
	 		listener.enterIndextype_name(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitIndextype_name) {
	 		listener.exitIndextype_name(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitIndextype_name) {
			return visitor.visitIndextype_name(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Using_statistics_typeContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public USING(): TerminalNode {
		return this.getToken(PlSqlParser.USING, 0);
	}
	public statistics_type_name(): Statistics_type_nameContext {
		return this.getTypedRuleContext(Statistics_type_nameContext, 0) as Statistics_type_nameContext;
	}
	public NULL_(): TerminalNode {
		return this.getToken(PlSqlParser.NULL_, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_using_statistics_type;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterUsing_statistics_type) {
	 		listener.enterUsing_statistics_type(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitUsing_statistics_type) {
	 		listener.exitUsing_statistics_type(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitUsing_statistics_type) {
			return visitor.visitUsing_statistics_type(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Statistics_type_nameContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public regular_id(): Regular_idContext {
		return this.getTypedRuleContext(Regular_idContext, 0) as Regular_idContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_statistics_type_name;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterStatistics_type_name) {
	 		listener.enterStatistics_type_name(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitStatistics_type_name) {
	 		listener.exitStatistics_type_name(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitStatistics_type_name) {
			return visitor.visitStatistics_type_name(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Default_cost_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public DEFAULT(): TerminalNode {
		return this.getToken(PlSqlParser.DEFAULT, 0);
	}
	public COST(): TerminalNode {
		return this.getToken(PlSqlParser.COST, 0);
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public cpu_cost(): Cpu_costContext {
		return this.getTypedRuleContext(Cpu_costContext, 0) as Cpu_costContext;
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
	public io_cost(): Io_costContext {
		return this.getTypedRuleContext(Io_costContext, 0) as Io_costContext;
	}
	public network_cost(): Network_costContext {
		return this.getTypedRuleContext(Network_costContext, 0) as Network_costContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_default_cost_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterDefault_cost_clause) {
	 		listener.enterDefault_cost_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitDefault_cost_clause) {
	 		listener.exitDefault_cost_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitDefault_cost_clause) {
			return visitor.visitDefault_cost_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Cpu_costContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public UNSIGNED_INTEGER(): TerminalNode {
		return this.getToken(PlSqlParser.UNSIGNED_INTEGER, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_cpu_cost;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterCpu_cost) {
	 		listener.enterCpu_cost(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitCpu_cost) {
	 		listener.exitCpu_cost(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitCpu_cost) {
			return visitor.visitCpu_cost(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Io_costContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public UNSIGNED_INTEGER(): TerminalNode {
		return this.getToken(PlSqlParser.UNSIGNED_INTEGER, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_io_cost;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterIo_cost) {
	 		listener.enterIo_cost(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitIo_cost) {
	 		listener.exitIo_cost(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitIo_cost) {
			return visitor.visitIo_cost(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Network_costContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public UNSIGNED_INTEGER(): TerminalNode {
		return this.getToken(PlSqlParser.UNSIGNED_INTEGER, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_network_cost;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterNetwork_cost) {
	 		listener.enterNetwork_cost(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitNetwork_cost) {
	 		listener.exitNetwork_cost(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitNetwork_cost) {
			return visitor.visitNetwork_cost(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Default_selectivity_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public DEFAULT(): TerminalNode {
		return this.getToken(PlSqlParser.DEFAULT, 0);
	}
	public SELECTIVITY(): TerminalNode {
		return this.getToken(PlSqlParser.SELECTIVITY, 0);
	}
	public default_selectivity(): Default_selectivityContext {
		return this.getTypedRuleContext(Default_selectivityContext, 0) as Default_selectivityContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_default_selectivity_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterDefault_selectivity_clause) {
	 		listener.enterDefault_selectivity_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitDefault_selectivity_clause) {
	 		listener.exitDefault_selectivity_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitDefault_selectivity_clause) {
			return visitor.visitDefault_selectivity_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Default_selectivityContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public UNSIGNED_INTEGER(): TerminalNode {
		return this.getToken(PlSqlParser.UNSIGNED_INTEGER, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_default_selectivity;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterDefault_selectivity) {
	 		listener.enterDefault_selectivity(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitDefault_selectivity) {
	 		listener.exitDefault_selectivity(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitDefault_selectivity) {
			return visitor.visitDefault_selectivity(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Storage_table_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public WITH(): TerminalNode {
		return this.getToken(PlSqlParser.WITH, 0);
	}
	public MANAGED(): TerminalNode {
		return this.getToken(PlSqlParser.MANAGED, 0);
	}
	public STORAGE(): TerminalNode {
		return this.getToken(PlSqlParser.STORAGE, 0);
	}
	public TABLES(): TerminalNode {
		return this.getToken(PlSqlParser.TABLES, 0);
	}
	public SYSTEM(): TerminalNode {
		return this.getToken(PlSqlParser.SYSTEM, 0);
	}
	public USER(): TerminalNode {
		return this.getToken(PlSqlParser.USER, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_storage_table_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterStorage_table_clause) {
	 		listener.enterStorage_table_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitStorage_table_clause) {
	 		listener.exitStorage_table_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitStorage_table_clause) {
			return visitor.visitStorage_table_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Unified_auditingContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public AUDIT(): TerminalNode {
		return this.getToken(PlSqlParser.AUDIT, 0);
	}
	public SEMICOLON(): TerminalNode {
		return this.getToken(PlSqlParser.SEMICOLON, 0);
	}
	public POLICY(): TerminalNode {
		return this.getToken(PlSqlParser.POLICY, 0);
	}
	public policy_name(): Policy_nameContext {
		return this.getTypedRuleContext(Policy_nameContext, 0) as Policy_nameContext;
	}
	public CONTEXT(): TerminalNode {
		return this.getToken(PlSqlParser.CONTEXT, 0);
	}
	public NAMESPACE(): TerminalNode {
		return this.getToken(PlSqlParser.NAMESPACE, 0);
	}
	public oracle_namespace(): Oracle_namespaceContext {
		return this.getTypedRuleContext(Oracle_namespaceContext, 0) as Oracle_namespaceContext;
	}
	public ATTRIBUTES(): TerminalNode {
		return this.getToken(PlSqlParser.ATTRIBUTES, 0);
	}
	public attribute_name_list(): Attribute_nameContext[] {
		return this.getTypedRuleContexts(Attribute_nameContext) as Attribute_nameContext[];
	}
	public attribute_name(i: number): Attribute_nameContext {
		return this.getTypedRuleContext(Attribute_nameContext, i) as Attribute_nameContext;
	}
	public audit_user_list(): Audit_userContext[] {
		return this.getTypedRuleContexts(Audit_userContext) as Audit_userContext[];
	}
	public audit_user(i: number): Audit_userContext {
		return this.getTypedRuleContext(Audit_userContext, i) as Audit_userContext;
	}
	public WHENEVER(): TerminalNode {
		return this.getToken(PlSqlParser.WHENEVER, 0);
	}
	public SUCCESSFUL(): TerminalNode {
		return this.getToken(PlSqlParser.SUCCESSFUL, 0);
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
	public BY(): TerminalNode {
		return this.getToken(PlSqlParser.BY, 0);
	}
	public EXCEPT(): TerminalNode {
		return this.getToken(PlSqlParser.EXCEPT, 0);
	}
	public NOT(): TerminalNode {
		return this.getToken(PlSqlParser.NOT, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_unified_auditing;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterUnified_auditing) {
	 		listener.enterUnified_auditing(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitUnified_auditing) {
	 		listener.exitUnified_auditing(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitUnified_auditing) {
			return visitor.visitUnified_auditing(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Policy_nameContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public identifier(): IdentifierContext {
		return this.getTypedRuleContext(IdentifierContext, 0) as IdentifierContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_policy_name;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterPolicy_name) {
	 		listener.enterPolicy_name(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitPolicy_name) {
	 		listener.exitPolicy_name(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitPolicy_name) {
			return visitor.visitPolicy_name(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Audit_traditionalContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public AUDIT(): TerminalNode {
		return this.getToken(PlSqlParser.AUDIT, 0);
	}
	public SEMICOLON(): TerminalNode {
		return this.getToken(PlSqlParser.SEMICOLON, 0);
	}
	public audit_operation_clause(): Audit_operation_clauseContext {
		return this.getTypedRuleContext(Audit_operation_clauseContext, 0) as Audit_operation_clauseContext;
	}
	public audit_schema_object_clause(): Audit_schema_object_clauseContext {
		return this.getTypedRuleContext(Audit_schema_object_clauseContext, 0) as Audit_schema_object_clauseContext;
	}
	public NETWORK(): TerminalNode {
		return this.getToken(PlSqlParser.NETWORK, 0);
	}
	public audit_direct_path(): Audit_direct_pathContext {
		return this.getTypedRuleContext(Audit_direct_pathContext, 0) as Audit_direct_pathContext;
	}
	public BY(): TerminalNode {
		return this.getToken(PlSqlParser.BY, 0);
	}
	public WHENEVER(): TerminalNode {
		return this.getToken(PlSqlParser.WHENEVER, 0);
	}
	public SUCCESSFUL(): TerminalNode {
		return this.getToken(PlSqlParser.SUCCESSFUL, 0);
	}
	public audit_container_clause(): Audit_container_clauseContext {
		return this.getTypedRuleContext(Audit_container_clauseContext, 0) as Audit_container_clauseContext;
	}
	public SESSION_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.SESSION);
	}
	public SESSION(i: number): TerminalNode {
		return this.getToken(PlSqlParser.SESSION, i);
	}
	public ACCESS(): TerminalNode {
		return this.getToken(PlSqlParser.ACCESS, 0);
	}
	public auditing_by_clause(): Auditing_by_clauseContext {
		return this.getTypedRuleContext(Auditing_by_clauseContext, 0) as Auditing_by_clauseContext;
	}
	public IN(): TerminalNode {
		return this.getToken(PlSqlParser.IN, 0);
	}
	public CURRENT(): TerminalNode {
		return this.getToken(PlSqlParser.CURRENT, 0);
	}
	public NOT(): TerminalNode {
		return this.getToken(PlSqlParser.NOT, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_audit_traditional;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterAudit_traditional) {
	 		listener.enterAudit_traditional(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitAudit_traditional) {
	 		listener.exitAudit_traditional(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitAudit_traditional) {
			return visitor.visitAudit_traditional(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Audit_direct_pathContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public DIRECT_PATH(): TerminalNode {
		return this.getToken(PlSqlParser.DIRECT_PATH, 0);
	}
	public auditing_by_clause(): Auditing_by_clauseContext {
		return this.getTypedRuleContext(Auditing_by_clauseContext, 0) as Auditing_by_clauseContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_audit_direct_path;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterAudit_direct_path) {
	 		listener.enterAudit_direct_path(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitAudit_direct_path) {
	 		listener.exitAudit_direct_path(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitAudit_direct_path) {
			return visitor.visitAudit_direct_path(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Audit_container_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public CONTAINER(): TerminalNode {
		return this.getToken(PlSqlParser.CONTAINER, 0);
	}
	public EQUALS_OP(): TerminalNode {
		return this.getToken(PlSqlParser.EQUALS_OP, 0);
	}
	public CURRENT(): TerminalNode {
		return this.getToken(PlSqlParser.CURRENT, 0);
	}
	public ALL(): TerminalNode {
		return this.getToken(PlSqlParser.ALL, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_audit_container_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterAudit_container_clause) {
	 		listener.enterAudit_container_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitAudit_container_clause) {
	 		listener.exitAudit_container_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitAudit_container_clause) {
			return visitor.visitAudit_container_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Audit_operation_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public sql_statement_shortcut_list(): Sql_statement_shortcutContext[] {
		return this.getTypedRuleContexts(Sql_statement_shortcutContext) as Sql_statement_shortcutContext[];
	}
	public sql_statement_shortcut(i: number): Sql_statement_shortcutContext {
		return this.getTypedRuleContext(Sql_statement_shortcutContext, i) as Sql_statement_shortcutContext;
	}
	public ALL_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.ALL);
	}
	public ALL(i: number): TerminalNode {
		return this.getToken(PlSqlParser.ALL, i);
	}
	public system_privilege_list(): System_privilegeContext[] {
		return this.getTypedRuleContexts(System_privilegeContext) as System_privilegeContext[];
	}
	public system_privilege(i: number): System_privilegeContext {
		return this.getTypedRuleContext(System_privilegeContext, i) as System_privilegeContext;
	}
	public PRIVILEGES_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.PRIVILEGES);
	}
	public PRIVILEGES(i: number): TerminalNode {
		return this.getToken(PlSqlParser.PRIVILEGES, i);
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
	public STATEMENTS_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.STATEMENTS);
	}
	public STATEMENTS(i: number): TerminalNode {
		return this.getToken(PlSqlParser.STATEMENTS, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_audit_operation_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterAudit_operation_clause) {
	 		listener.enterAudit_operation_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitAudit_operation_clause) {
	 		listener.exitAudit_operation_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitAudit_operation_clause) {
			return visitor.visitAudit_operation_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Auditing_by_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public BY(): TerminalNode {
		return this.getToken(PlSqlParser.BY, 0);
	}
	public audit_user_list(): Audit_userContext[] {
		return this.getTypedRuleContexts(Audit_userContext) as Audit_userContext[];
	}
	public audit_user(i: number): Audit_userContext {
		return this.getTypedRuleContext(Audit_userContext, i) as Audit_userContext;
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_auditing_by_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterAuditing_by_clause) {
	 		listener.enterAuditing_by_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitAuditing_by_clause) {
	 		listener.exitAuditing_by_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitAuditing_by_clause) {
			return visitor.visitAuditing_by_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Audit_userContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public regular_id(): Regular_idContext {
		return this.getTypedRuleContext(Regular_idContext, 0) as Regular_idContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_audit_user;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterAudit_user) {
	 		listener.enterAudit_user(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitAudit_user) {
	 		listener.exitAudit_user(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitAudit_user) {
			return visitor.visitAudit_user(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Audit_schema_object_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public auditing_on_clause(): Auditing_on_clauseContext {
		return this.getTypedRuleContext(Auditing_on_clauseContext, 0) as Auditing_on_clauseContext;
	}
	public sql_operation_list(): Sql_operationContext[] {
		return this.getTypedRuleContexts(Sql_operationContext) as Sql_operationContext[];
	}
	public sql_operation(i: number): Sql_operationContext {
		return this.getTypedRuleContext(Sql_operationContext, i) as Sql_operationContext;
	}
	public ALL(): TerminalNode {
		return this.getToken(PlSqlParser.ALL, 0);
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_audit_schema_object_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterAudit_schema_object_clause) {
	 		listener.enterAudit_schema_object_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitAudit_schema_object_clause) {
	 		listener.exitAudit_schema_object_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitAudit_schema_object_clause) {
			return visitor.visitAudit_schema_object_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Sql_operationContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public ALTER(): TerminalNode {
		return this.getToken(PlSqlParser.ALTER, 0);
	}
	public AUDIT(): TerminalNode {
		return this.getToken(PlSqlParser.AUDIT, 0);
	}
	public COMMENT(): TerminalNode {
		return this.getToken(PlSqlParser.COMMENT, 0);
	}
	public DELETE(): TerminalNode {
		return this.getToken(PlSqlParser.DELETE, 0);
	}
	public EXECUTE(): TerminalNode {
		return this.getToken(PlSqlParser.EXECUTE, 0);
	}
	public FLASHBACK(): TerminalNode {
		return this.getToken(PlSqlParser.FLASHBACK, 0);
	}
	public GRANT(): TerminalNode {
		return this.getToken(PlSqlParser.GRANT, 0);
	}
	public INDEX(): TerminalNode {
		return this.getToken(PlSqlParser.INDEX, 0);
	}
	public INSERT(): TerminalNode {
		return this.getToken(PlSqlParser.INSERT, 0);
	}
	public LOCK(): TerminalNode {
		return this.getToken(PlSqlParser.LOCK, 0);
	}
	public READ(): TerminalNode {
		return this.getToken(PlSqlParser.READ, 0);
	}
	public RENAME(): TerminalNode {
		return this.getToken(PlSqlParser.RENAME, 0);
	}
	public SELECT(): TerminalNode {
		return this.getToken(PlSqlParser.SELECT, 0);
	}
	public UPDATE(): TerminalNode {
		return this.getToken(PlSqlParser.UPDATE, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_sql_operation;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterSql_operation) {
	 		listener.enterSql_operation(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitSql_operation) {
	 		listener.exitSql_operation(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitSql_operation) {
			return visitor.visitSql_operation(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Auditing_on_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public ON(): TerminalNode {
		return this.getToken(PlSqlParser.ON, 0);
	}
	public object_name(): Object_nameContext {
		return this.getTypedRuleContext(Object_nameContext, 0) as Object_nameContext;
	}
	public DIRECTORY(): TerminalNode {
		return this.getToken(PlSqlParser.DIRECTORY, 0);
	}
	public regular_id(): Regular_idContext {
		return this.getTypedRuleContext(Regular_idContext, 0) as Regular_idContext;
	}
	public MINING(): TerminalNode {
		return this.getToken(PlSqlParser.MINING, 0);
	}
	public MODEL(): TerminalNode {
		return this.getToken(PlSqlParser.MODEL, 0);
	}
	public model_name(): Model_nameContext {
		return this.getTypedRuleContext(Model_nameContext, 0) as Model_nameContext;
	}
	public SQL(): TerminalNode {
		return this.getToken(PlSqlParser.SQL, 0);
	}
	public TRANSLATION(): TerminalNode {
		return this.getToken(PlSqlParser.TRANSLATION, 0);
	}
	public PROFILE(): TerminalNode {
		return this.getToken(PlSqlParser.PROFILE, 0);
	}
	public profile_name(): Profile_nameContext {
		return this.getTypedRuleContext(Profile_nameContext, 0) as Profile_nameContext;
	}
	public DEFAULT(): TerminalNode {
		return this.getToken(PlSqlParser.DEFAULT, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_auditing_on_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterAuditing_on_clause) {
	 		listener.enterAuditing_on_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitAuditing_on_clause) {
	 		listener.exitAuditing_on_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitAuditing_on_clause) {
			return visitor.visitAuditing_on_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Model_nameContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public id_expression_list(): Id_expressionContext[] {
		return this.getTypedRuleContexts(Id_expressionContext) as Id_expressionContext[];
	}
	public id_expression(i: number): Id_expressionContext {
		return this.getTypedRuleContext(Id_expressionContext, i) as Id_expressionContext;
	}
	public PERIOD(): TerminalNode {
		return this.getToken(PlSqlParser.PERIOD, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_model_name;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterModel_name) {
	 		listener.enterModel_name(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitModel_name) {
	 		listener.exitModel_name(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitModel_name) {
			return visitor.visitModel_name(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Object_nameContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public id_expression_list(): Id_expressionContext[] {
		return this.getTypedRuleContexts(Id_expressionContext) as Id_expressionContext[];
	}
	public id_expression(i: number): Id_expressionContext {
		return this.getTypedRuleContext(Id_expressionContext, i) as Id_expressionContext;
	}
	public PERIOD(): TerminalNode {
		return this.getToken(PlSqlParser.PERIOD, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_object_name;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterObject_name) {
	 		listener.enterObject_name(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitObject_name) {
	 		listener.exitObject_name(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitObject_name) {
			return visitor.visitObject_name(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Profile_nameContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public id_expression_list(): Id_expressionContext[] {
		return this.getTypedRuleContexts(Id_expressionContext) as Id_expressionContext[];
	}
	public id_expression(i: number): Id_expressionContext {
		return this.getTypedRuleContext(Id_expressionContext, i) as Id_expressionContext;
	}
	public PERIOD(): TerminalNode {
		return this.getToken(PlSqlParser.PERIOD, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_profile_name;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterProfile_name) {
	 		listener.enterProfile_name(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitProfile_name) {
	 		listener.exitProfile_name(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitProfile_name) {
			return visitor.visitProfile_name(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Sql_statement_shortcutContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public ALTER(): TerminalNode {
		return this.getToken(PlSqlParser.ALTER, 0);
	}
	public SYSTEM(): TerminalNode {
		return this.getToken(PlSqlParser.SYSTEM, 0);
	}
	public CLUSTER(): TerminalNode {
		return this.getToken(PlSqlParser.CLUSTER, 0);
	}
	public CONTEXT(): TerminalNode {
		return this.getToken(PlSqlParser.CONTEXT, 0);
	}
	public DATABASE(): TerminalNode {
		return this.getToken(PlSqlParser.DATABASE, 0);
	}
	public LINK(): TerminalNode {
		return this.getToken(PlSqlParser.LINK, 0);
	}
	public DIMENSION(): TerminalNode {
		return this.getToken(PlSqlParser.DIMENSION, 0);
	}
	public DIRECTORY(): TerminalNode {
		return this.getToken(PlSqlParser.DIRECTORY, 0);
	}
	public INDEX(): TerminalNode {
		return this.getToken(PlSqlParser.INDEX, 0);
	}
	public MATERIALIZED(): TerminalNode {
		return this.getToken(PlSqlParser.MATERIALIZED, 0);
	}
	public VIEW(): TerminalNode {
		return this.getToken(PlSqlParser.VIEW, 0);
	}
	public NOT(): TerminalNode {
		return this.getToken(PlSqlParser.NOT, 0);
	}
	public EXISTS(): TerminalNode {
		return this.getToken(PlSqlParser.EXISTS, 0);
	}
	public OUTLINE(): TerminalNode {
		return this.getToken(PlSqlParser.OUTLINE, 0);
	}
	public PLUGGABLE(): TerminalNode {
		return this.getToken(PlSqlParser.PLUGGABLE, 0);
	}
	public PROCEDURE(): TerminalNode {
		return this.getToken(PlSqlParser.PROCEDURE, 0);
	}
	public PROFILE(): TerminalNode {
		return this.getToken(PlSqlParser.PROFILE, 0);
	}
	public PUBLIC(): TerminalNode {
		return this.getToken(PlSqlParser.PUBLIC, 0);
	}
	public SYNONYM(): TerminalNode {
		return this.getToken(PlSqlParser.SYNONYM, 0);
	}
	public ROLE(): TerminalNode {
		return this.getToken(PlSqlParser.ROLE, 0);
	}
	public ROLLBACK(): TerminalNode {
		return this.getToken(PlSqlParser.ROLLBACK, 0);
	}
	public SEGMENT(): TerminalNode {
		return this.getToken(PlSqlParser.SEGMENT, 0);
	}
	public SEQUENCE(): TerminalNode {
		return this.getToken(PlSqlParser.SEQUENCE, 0);
	}
	public SESSION(): TerminalNode {
		return this.getToken(PlSqlParser.SESSION, 0);
	}
	public AUDIT(): TerminalNode {
		return this.getToken(PlSqlParser.AUDIT, 0);
	}
	public GRANT(): TerminalNode {
		return this.getToken(PlSqlParser.GRANT, 0);
	}
	public TABLE(): TerminalNode {
		return this.getToken(PlSqlParser.TABLE, 0);
	}
	public TABLESPACE(): TerminalNode {
		return this.getToken(PlSqlParser.TABLESPACE, 0);
	}
	public TRIGGER(): TerminalNode {
		return this.getToken(PlSqlParser.TRIGGER, 0);
	}
	public TYPE(): TerminalNode {
		return this.getToken(PlSqlParser.TYPE, 0);
	}
	public USER(): TerminalNode {
		return this.getToken(PlSqlParser.USER, 0);
	}
	public COMMENT(): TerminalNode {
		return this.getToken(PlSqlParser.COMMENT, 0);
	}
	public DELETE(): TerminalNode {
		return this.getToken(PlSqlParser.DELETE, 0);
	}
	public EXECUTE(): TerminalNode {
		return this.getToken(PlSqlParser.EXECUTE, 0);
	}
	public INSERT(): TerminalNode {
		return this.getToken(PlSqlParser.INSERT, 0);
	}
	public LOCK(): TerminalNode {
		return this.getToken(PlSqlParser.LOCK, 0);
	}
	public SELECT(): TerminalNode {
		return this.getToken(PlSqlParser.SELECT, 0);
	}
	public UPDATE(): TerminalNode {
		return this.getToken(PlSqlParser.UPDATE, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_sql_statement_shortcut;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterSql_statement_shortcut) {
	 		listener.enterSql_statement_shortcut(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitSql_statement_shortcut) {
	 		listener.exitSql_statement_shortcut(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitSql_statement_shortcut) {
			return visitor.visitSql_statement_shortcut(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Drop_indexContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public DROP(): TerminalNode {
		return this.getToken(PlSqlParser.DROP, 0);
	}
	public INDEX(): TerminalNode {
		return this.getToken(PlSqlParser.INDEX, 0);
	}
	public index_name(): Index_nameContext {
		return this.getTypedRuleContext(Index_nameContext, 0) as Index_nameContext;
	}
	public SEMICOLON(): TerminalNode {
		return this.getToken(PlSqlParser.SEMICOLON, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_drop_index;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterDrop_index) {
	 		listener.enterDrop_index(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitDrop_index) {
	 		listener.exitDrop_index(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitDrop_index) {
			return visitor.visitDrop_index(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Rename_objectContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public RENAME(): TerminalNode {
		return this.getToken(PlSqlParser.RENAME, 0);
	}
	public object_name_list(): Object_nameContext[] {
		return this.getTypedRuleContexts(Object_nameContext) as Object_nameContext[];
	}
	public object_name(i: number): Object_nameContext {
		return this.getTypedRuleContext(Object_nameContext, i) as Object_nameContext;
	}
	public TO(): TerminalNode {
		return this.getToken(PlSqlParser.TO, 0);
	}
	public SEMICOLON(): TerminalNode {
		return this.getToken(PlSqlParser.SEMICOLON, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_rename_object;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterRename_object) {
	 		listener.enterRename_object(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitRename_object) {
	 		listener.exitRename_object(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitRename_object) {
			return visitor.visitRename_object(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Grant_statementContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public GRANT_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.GRANT);
	}
	public GRANT(i: number): TerminalNode {
		return this.getToken(PlSqlParser.GRANT, i);
	}
	public TO(): TerminalNode {
		return this.getToken(PlSqlParser.TO, 0);
	}
	public SEMICOLON(): TerminalNode {
		return this.getToken(PlSqlParser.SEMICOLON, 0);
	}
	public grantee_name_list(): Grantee_nameContext[] {
		return this.getTypedRuleContexts(Grantee_nameContext) as Grantee_nameContext[];
	}
	public grantee_name(i: number): Grantee_nameContext {
		return this.getTypedRuleContext(Grantee_nameContext, i) as Grantee_nameContext;
	}
	public PUBLIC_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.PUBLIC);
	}
	public PUBLIC(i: number): TerminalNode {
		return this.getToken(PlSqlParser.PUBLIC, i);
	}
	public ON(): TerminalNode {
		return this.getToken(PlSqlParser.ON, 0);
	}
	public grant_object_name(): Grant_object_nameContext {
		return this.getTypedRuleContext(Grant_object_nameContext, 0) as Grant_object_nameContext;
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
	public WITH_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.WITH);
	}
	public WITH(i: number): TerminalNode {
		return this.getToken(PlSqlParser.WITH, i);
	}
	public OPTION_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.OPTION);
	}
	public OPTION(i: number): TerminalNode {
		return this.getToken(PlSqlParser.OPTION, i);
	}
	public HIERARCHY(): TerminalNode {
		return this.getToken(PlSqlParser.HIERARCHY, 0);
	}
	public container_clause(): Container_clauseContext {
		return this.getTypedRuleContext(Container_clauseContext, 0) as Container_clauseContext;
	}
	public ADMIN(): TerminalNode {
		return this.getToken(PlSqlParser.ADMIN, 0);
	}
	public DELEGATE(): TerminalNode {
		return this.getToken(PlSqlParser.DELEGATE, 0);
	}
	public role_name_list(): Role_nameContext[] {
		return this.getTypedRuleContexts(Role_nameContext) as Role_nameContext[];
	}
	public role_name(i: number): Role_nameContext {
		return this.getTypedRuleContext(Role_nameContext, i) as Role_nameContext;
	}
	public system_privilege_list(): System_privilegeContext[] {
		return this.getTypedRuleContexts(System_privilegeContext) as System_privilegeContext[];
	}
	public system_privilege(i: number): System_privilegeContext {
		return this.getTypedRuleContext(System_privilegeContext, i) as System_privilegeContext;
	}
	public object_privilege_list(): Object_privilegeContext[] {
		return this.getTypedRuleContexts(Object_privilegeContext) as Object_privilegeContext[];
	}
	public object_privilege(i: number): Object_privilegeContext {
		return this.getTypedRuleContext(Object_privilegeContext, i) as Object_privilegeContext;
	}
	public paren_column_list_list(): Paren_column_listContext[] {
		return this.getTypedRuleContexts(Paren_column_listContext) as Paren_column_listContext[];
	}
	public paren_column_list(i: number): Paren_column_listContext {
		return this.getTypedRuleContext(Paren_column_listContext, i) as Paren_column_listContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_grant_statement;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterGrant_statement) {
	 		listener.enterGrant_statement(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitGrant_statement) {
	 		listener.exitGrant_statement(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitGrant_statement) {
			return visitor.visitGrant_statement(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Container_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public CONTAINER(): TerminalNode {
		return this.getToken(PlSqlParser.CONTAINER, 0);
	}
	public EQUALS_OP(): TerminalNode {
		return this.getToken(PlSqlParser.EQUALS_OP, 0);
	}
	public CURRENT(): TerminalNode {
		return this.getToken(PlSqlParser.CURRENT, 0);
	}
	public ALL(): TerminalNode {
		return this.getToken(PlSqlParser.ALL, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_container_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterContainer_clause) {
	 		listener.enterContainer_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitContainer_clause) {
	 		listener.exitContainer_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitContainer_clause) {
			return visitor.visitContainer_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Create_directoryContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public CREATE(): TerminalNode {
		return this.getToken(PlSqlParser.CREATE, 0);
	}
	public DIRECTORY(): TerminalNode {
		return this.getToken(PlSqlParser.DIRECTORY, 0);
	}
	public directory_name(): Directory_nameContext {
		return this.getTypedRuleContext(Directory_nameContext, 0) as Directory_nameContext;
	}
	public AS(): TerminalNode {
		return this.getToken(PlSqlParser.AS, 0);
	}
	public directory_path(): Directory_pathContext {
		return this.getTypedRuleContext(Directory_pathContext, 0) as Directory_pathContext;
	}
	public SEMICOLON(): TerminalNode {
		return this.getToken(PlSqlParser.SEMICOLON, 0);
	}
	public OR(): TerminalNode {
		return this.getToken(PlSqlParser.OR, 0);
	}
	public REPLACE(): TerminalNode {
		return this.getToken(PlSqlParser.REPLACE, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_create_directory;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterCreate_directory) {
	 		listener.enterCreate_directory(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitCreate_directory) {
	 		listener.exitCreate_directory(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitCreate_directory) {
			return visitor.visitCreate_directory(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Directory_nameContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public regular_id(): Regular_idContext {
		return this.getTypedRuleContext(Regular_idContext, 0) as Regular_idContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_directory_name;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterDirectory_name) {
	 		listener.enterDirectory_name(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitDirectory_name) {
	 		listener.exitDirectory_name(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitDirectory_name) {
			return visitor.visitDirectory_name(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Directory_pathContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public CHAR_STRING(): TerminalNode {
		return this.getToken(PlSqlParser.CHAR_STRING, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_directory_path;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterDirectory_path) {
	 		listener.enterDirectory_path(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitDirectory_path) {
	 		listener.exitDirectory_path(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitDirectory_path) {
			return visitor.visitDirectory_path(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Alter_libraryContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public ALTER(): TerminalNode {
		return this.getToken(PlSqlParser.ALTER, 0);
	}
	public LIBRARY(): TerminalNode {
		return this.getToken(PlSqlParser.LIBRARY, 0);
	}
	public library_name(): Library_nameContext {
		return this.getTypedRuleContext(Library_nameContext, 0) as Library_nameContext;
	}
	public SEMICOLON(): TerminalNode {
		return this.getToken(PlSqlParser.SEMICOLON, 0);
	}
	public COMPILE(): TerminalNode {
		return this.getToken(PlSqlParser.COMPILE, 0);
	}
	public library_editionable(): Library_editionableContext {
		return this.getTypedRuleContext(Library_editionableContext, 0) as Library_editionableContext;
	}
	public library_debug(): Library_debugContext {
		return this.getTypedRuleContext(Library_debugContext, 0) as Library_debugContext;
	}
	public compiler_parameters_clause_list(): Compiler_parameters_clauseContext[] {
		return this.getTypedRuleContexts(Compiler_parameters_clauseContext) as Compiler_parameters_clauseContext[];
	}
	public compiler_parameters_clause(i: number): Compiler_parameters_clauseContext {
		return this.getTypedRuleContext(Compiler_parameters_clauseContext, i) as Compiler_parameters_clauseContext;
	}
	public REUSE(): TerminalNode {
		return this.getToken(PlSqlParser.REUSE, 0);
	}
	public SETTINGS(): TerminalNode {
		return this.getToken(PlSqlParser.SETTINGS, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_alter_library;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterAlter_library) {
	 		listener.enterAlter_library(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitAlter_library) {
	 		listener.exitAlter_library(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitAlter_library) {
			return visitor.visitAlter_library(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Library_editionableContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public EDITIONABLE(): TerminalNode {
		return this.getToken(PlSqlParser.EDITIONABLE, 0);
	}
	public NONEDITIONABLE(): TerminalNode {
		return this.getToken(PlSqlParser.NONEDITIONABLE, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_library_editionable;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterLibrary_editionable) {
	 		listener.enterLibrary_editionable(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitLibrary_editionable) {
	 		listener.exitLibrary_editionable(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitLibrary_editionable) {
			return visitor.visitLibrary_editionable(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Library_debugContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public DEBUG(): TerminalNode {
		return this.getToken(PlSqlParser.DEBUG, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_library_debug;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterLibrary_debug) {
	 		listener.enterLibrary_debug(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitLibrary_debug) {
	 		listener.exitLibrary_debug(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitLibrary_debug) {
			return visitor.visitLibrary_debug(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Compiler_parameters_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public parameter_name(): Parameter_nameContext {
		return this.getTypedRuleContext(Parameter_nameContext, 0) as Parameter_nameContext;
	}
	public EQUALS_OP(): TerminalNode {
		return this.getToken(PlSqlParser.EQUALS_OP, 0);
	}
	public parameter_value(): Parameter_valueContext {
		return this.getTypedRuleContext(Parameter_valueContext, 0) as Parameter_valueContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_compiler_parameters_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterCompiler_parameters_clause) {
	 		listener.enterCompiler_parameters_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitCompiler_parameters_clause) {
	 		listener.exitCompiler_parameters_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitCompiler_parameters_clause) {
			return visitor.visitCompiler_parameters_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Parameter_valueContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public regular_id(): Regular_idContext {
		return this.getTypedRuleContext(Regular_idContext, 0) as Regular_idContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_parameter_value;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterParameter_value) {
	 		listener.enterParameter_value(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitParameter_value) {
	 		listener.exitParameter_value(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitParameter_value) {
			return visitor.visitParameter_value(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Library_nameContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public regular_id_list(): Regular_idContext[] {
		return this.getTypedRuleContexts(Regular_idContext) as Regular_idContext[];
	}
	public regular_id(i: number): Regular_idContext {
		return this.getTypedRuleContext(Regular_idContext, i) as Regular_idContext;
	}
	public PERIOD(): TerminalNode {
		return this.getToken(PlSqlParser.PERIOD, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_library_name;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterLibrary_name) {
	 		listener.enterLibrary_name(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitLibrary_name) {
	 		listener.exitLibrary_name(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitLibrary_name) {
			return visitor.visitLibrary_name(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Alter_viewContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public ALTER(): TerminalNode {
		return this.getToken(PlSqlParser.ALTER, 0);
	}
	public VIEW(): TerminalNode {
		return this.getToken(PlSqlParser.VIEW, 0);
	}
	public tableview_name(): Tableview_nameContext {
		return this.getTypedRuleContext(Tableview_nameContext, 0) as Tableview_nameContext;
	}
	public SEMICOLON(): TerminalNode {
		return this.getToken(PlSqlParser.SEMICOLON, 0);
	}
	public ADD(): TerminalNode {
		return this.getToken(PlSqlParser.ADD, 0);
	}
	public out_of_line_constraint(): Out_of_line_constraintContext {
		return this.getTypedRuleContext(Out_of_line_constraintContext, 0) as Out_of_line_constraintContext;
	}
	public MODIFY(): TerminalNode {
		return this.getToken(PlSqlParser.MODIFY, 0);
	}
	public CONSTRAINT(): TerminalNode {
		return this.getToken(PlSqlParser.CONSTRAINT, 0);
	}
	public constraint_name(): Constraint_nameContext {
		return this.getTypedRuleContext(Constraint_nameContext, 0) as Constraint_nameContext;
	}
	public DROP(): TerminalNode {
		return this.getToken(PlSqlParser.DROP, 0);
	}
	public COMPILE(): TerminalNode {
		return this.getToken(PlSqlParser.COMPILE, 0);
	}
	public READ(): TerminalNode {
		return this.getToken(PlSqlParser.READ, 0);
	}
	public RELY(): TerminalNode {
		return this.getToken(PlSqlParser.RELY, 0);
	}
	public NORELY(): TerminalNode {
		return this.getToken(PlSqlParser.NORELY, 0);
	}
	public ONLY(): TerminalNode {
		return this.getToken(PlSqlParser.ONLY, 0);
	}
	public WRITE(): TerminalNode {
		return this.getToken(PlSqlParser.WRITE, 0);
	}
	public PRIMARY(): TerminalNode {
		return this.getToken(PlSqlParser.PRIMARY, 0);
	}
	public KEY(): TerminalNode {
		return this.getToken(PlSqlParser.KEY, 0);
	}
	public UNIQUE(): TerminalNode {
		return this.getToken(PlSqlParser.UNIQUE, 0);
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public column_name_list(): Column_nameContext[] {
		return this.getTypedRuleContexts(Column_nameContext) as Column_nameContext[];
	}
	public column_name(i: number): Column_nameContext {
		return this.getTypedRuleContext(Column_nameContext, i) as Column_nameContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public alter_view_editionable(): Alter_view_editionableContext {
		return this.getTypedRuleContext(Alter_view_editionableContext, 0) as Alter_view_editionableContext;
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_alter_view;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterAlter_view) {
	 		listener.enterAlter_view(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitAlter_view) {
	 		listener.exitAlter_view(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitAlter_view) {
			return visitor.visitAlter_view(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Alter_view_editionableContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public EDITIONABLE(): TerminalNode {
		return this.getToken(PlSqlParser.EDITIONABLE, 0);
	}
	public NONEDITIONABLE(): TerminalNode {
		return this.getToken(PlSqlParser.NONEDITIONABLE, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_alter_view_editionable;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterAlter_view_editionable) {
	 		listener.enterAlter_view_editionable(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitAlter_view_editionable) {
	 		listener.exitAlter_view_editionable(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitAlter_view_editionable) {
			return visitor.visitAlter_view_editionable(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Create_viewContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public CREATE(): TerminalNode {
		return this.getToken(PlSqlParser.CREATE, 0);
	}
	public VIEW(): TerminalNode {
		return this.getToken(PlSqlParser.VIEW, 0);
	}
	public tableview_name(): Tableview_nameContext {
		return this.getTypedRuleContext(Tableview_nameContext, 0) as Tableview_nameContext;
	}
	public AS(): TerminalNode {
		return this.getToken(PlSqlParser.AS, 0);
	}
	public select_only_statement(): Select_only_statementContext {
		return this.getTypedRuleContext(Select_only_statementContext, 0) as Select_only_statementContext;
	}
	public OR_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.OR);
	}
	public OR(i: number): TerminalNode {
		return this.getToken(PlSqlParser.OR, i);
	}
	public REPLACE(): TerminalNode {
		return this.getToken(PlSqlParser.REPLACE, 0);
	}
	public FORCE(): TerminalNode {
		return this.getToken(PlSqlParser.FORCE, 0);
	}
	public EDITIONABLE(): TerminalNode {
		return this.getToken(PlSqlParser.EDITIONABLE, 0);
	}
	public EDITIONING(): TerminalNode {
		return this.getToken(PlSqlParser.EDITIONING, 0);
	}
	public view_options(): View_optionsContext {
		return this.getTypedRuleContext(View_optionsContext, 0) as View_optionsContext;
	}
	public subquery_restriction_clause(): Subquery_restriction_clauseContext {
		return this.getTypedRuleContext(Subquery_restriction_clauseContext, 0) as Subquery_restriction_clauseContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_create_view;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterCreate_view) {
	 		listener.enterCreate_view(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitCreate_view) {
	 		listener.exitCreate_view(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitCreate_view) {
			return visitor.visitCreate_view(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class View_optionsContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public view_alias_constraint(): View_alias_constraintContext {
		return this.getTypedRuleContext(View_alias_constraintContext, 0) as View_alias_constraintContext;
	}
	public object_view_clause(): Object_view_clauseContext {
		return this.getTypedRuleContext(Object_view_clauseContext, 0) as Object_view_clauseContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_view_options;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterView_options) {
	 		listener.enterView_options(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitView_options) {
	 		listener.exitView_options(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitView_options) {
			return visitor.visitView_options(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class View_alias_constraintContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public table_alias_list(): Table_aliasContext[] {
		return this.getTypedRuleContexts(Table_aliasContext) as Table_aliasContext[];
	}
	public table_alias(i: number): Table_aliasContext {
		return this.getTypedRuleContext(Table_aliasContext, i) as Table_aliasContext;
	}
	public out_of_line_constraint_list(): Out_of_line_constraintContext[] {
		return this.getTypedRuleContexts(Out_of_line_constraintContext) as Out_of_line_constraintContext[];
	}
	public out_of_line_constraint(i: number): Out_of_line_constraintContext {
		return this.getTypedRuleContext(Out_of_line_constraintContext, i) as Out_of_line_constraintContext;
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
	public inline_constraint_list(): Inline_constraintContext[] {
		return this.getTypedRuleContexts(Inline_constraintContext) as Inline_constraintContext[];
	}
	public inline_constraint(i: number): Inline_constraintContext {
		return this.getTypedRuleContext(Inline_constraintContext, i) as Inline_constraintContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_view_alias_constraint;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterView_alias_constraint) {
	 		listener.enterView_alias_constraint(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitView_alias_constraint) {
	 		listener.exitView_alias_constraint(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitView_alias_constraint) {
			return visitor.visitView_alias_constraint(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Object_view_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public OF(): TerminalNode {
		return this.getToken(PlSqlParser.OF, 0);
	}
	public type_name(): Type_nameContext {
		return this.getTypedRuleContext(Type_nameContext, 0) as Type_nameContext;
	}
	public WITH(): TerminalNode {
		return this.getToken(PlSqlParser.WITH, 0);
	}
	public OBJECT(): TerminalNode {
		return this.getToken(PlSqlParser.OBJECT, 0);
	}
	public UNDER(): TerminalNode {
		return this.getToken(PlSqlParser.UNDER, 0);
	}
	public tableview_name(): Tableview_nameContext {
		return this.getTypedRuleContext(Tableview_nameContext, 0) as Tableview_nameContext;
	}
	public IDENTIFIER(): TerminalNode {
		return this.getToken(PlSqlParser.IDENTIFIER, 0);
	}
	public ID(): TerminalNode {
		return this.getToken(PlSqlParser.ID, 0);
	}
	public OID(): TerminalNode {
		return this.getToken(PlSqlParser.OID, 0);
	}
	public LEFT_PAREN_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.LEFT_PAREN);
	}
	public LEFT_PAREN(i: number): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, i);
	}
	public RIGHT_PAREN_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.RIGHT_PAREN);
	}
	public RIGHT_PAREN(i: number): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, i);
	}
	public DEFAULT(): TerminalNode {
		return this.getToken(PlSqlParser.DEFAULT, 0);
	}
	public REGULAR_ID_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.REGULAR_ID);
	}
	public REGULAR_ID(i: number): TerminalNode {
		return this.getToken(PlSqlParser.REGULAR_ID, i);
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
	public out_of_line_constraint_list(): Out_of_line_constraintContext[] {
		return this.getTypedRuleContexts(Out_of_line_constraintContext) as Out_of_line_constraintContext[];
	}
	public out_of_line_constraint(i: number): Out_of_line_constraintContext {
		return this.getTypedRuleContext(Out_of_line_constraintContext, i) as Out_of_line_constraintContext;
	}
	public inline_constraint_list(): Inline_constraintContext[] {
		return this.getTypedRuleContexts(Inline_constraintContext) as Inline_constraintContext[];
	}
	public inline_constraint(i: number): Inline_constraintContext {
		return this.getTypedRuleContext(Inline_constraintContext, i) as Inline_constraintContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_object_view_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterObject_view_clause) {
	 		listener.enterObject_view_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitObject_view_clause) {
	 		listener.exitObject_view_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitObject_view_clause) {
			return visitor.visitObject_view_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Inline_constraintContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public NULL_(): TerminalNode {
		return this.getToken(PlSqlParser.NULL_, 0);
	}
	public UNIQUE(): TerminalNode {
		return this.getToken(PlSqlParser.UNIQUE, 0);
	}
	public PRIMARY(): TerminalNode {
		return this.getToken(PlSqlParser.PRIMARY, 0);
	}
	public KEY(): TerminalNode {
		return this.getToken(PlSqlParser.KEY, 0);
	}
	public references_clause(): References_clauseContext {
		return this.getTypedRuleContext(References_clauseContext, 0) as References_clauseContext;
	}
	public check_constraint(): Check_constraintContext {
		return this.getTypedRuleContext(Check_constraintContext, 0) as Check_constraintContext;
	}
	public CONSTRAINT(): TerminalNode {
		return this.getToken(PlSqlParser.CONSTRAINT, 0);
	}
	public constraint_name(): Constraint_nameContext {
		return this.getTypedRuleContext(Constraint_nameContext, 0) as Constraint_nameContext;
	}
	public constraint_state(): Constraint_stateContext {
		return this.getTypedRuleContext(Constraint_stateContext, 0) as Constraint_stateContext;
	}
	public NOT(): TerminalNode {
		return this.getToken(PlSqlParser.NOT, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_inline_constraint;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterInline_constraint) {
	 		listener.enterInline_constraint(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitInline_constraint) {
	 		listener.exitInline_constraint(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitInline_constraint) {
			return visitor.visitInline_constraint(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Inline_ref_constraintContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public SCOPE(): TerminalNode {
		return this.getToken(PlSqlParser.SCOPE, 0);
	}
	public IS(): TerminalNode {
		return this.getToken(PlSqlParser.IS, 0);
	}
	public tableview_name(): Tableview_nameContext {
		return this.getTypedRuleContext(Tableview_nameContext, 0) as Tableview_nameContext;
	}
	public WITH(): TerminalNode {
		return this.getToken(PlSqlParser.WITH, 0);
	}
	public ROWID(): TerminalNode {
		return this.getToken(PlSqlParser.ROWID, 0);
	}
	public references_clause(): References_clauseContext {
		return this.getTypedRuleContext(References_clauseContext, 0) as References_clauseContext;
	}
	public CONSTRAINT(): TerminalNode {
		return this.getToken(PlSqlParser.CONSTRAINT, 0);
	}
	public constraint_name(): Constraint_nameContext {
		return this.getTypedRuleContext(Constraint_nameContext, 0) as Constraint_nameContext;
	}
	public constraint_state(): Constraint_stateContext {
		return this.getTypedRuleContext(Constraint_stateContext, 0) as Constraint_stateContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_inline_ref_constraint;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterInline_ref_constraint) {
	 		listener.enterInline_ref_constraint(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitInline_ref_constraint) {
	 		listener.exitInline_ref_constraint(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitInline_ref_constraint) {
			return visitor.visitInline_ref_constraint(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Out_of_line_ref_constraintContext extends ParserRuleContext {
	public _ref_col_or_attr!: Regular_idContext;
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public SCOPE(): TerminalNode {
		return this.getToken(PlSqlParser.SCOPE, 0);
	}
	public FOR(): TerminalNode {
		return this.getToken(PlSqlParser.FOR, 0);
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public IS(): TerminalNode {
		return this.getToken(PlSqlParser.IS, 0);
	}
	public tableview_name(): Tableview_nameContext {
		return this.getTypedRuleContext(Tableview_nameContext, 0) as Tableview_nameContext;
	}
	public regular_id_list(): Regular_idContext[] {
		return this.getTypedRuleContexts(Regular_idContext) as Regular_idContext[];
	}
	public regular_id(i: number): Regular_idContext {
		return this.getTypedRuleContext(Regular_idContext, i) as Regular_idContext;
	}
	public REF(): TerminalNode {
		return this.getToken(PlSqlParser.REF, 0);
	}
	public WITH(): TerminalNode {
		return this.getToken(PlSqlParser.WITH, 0);
	}
	public ROWID(): TerminalNode {
		return this.getToken(PlSqlParser.ROWID, 0);
	}
	public FOREIGN(): TerminalNode {
		return this.getToken(PlSqlParser.FOREIGN, 0);
	}
	public KEY(): TerminalNode {
		return this.getToken(PlSqlParser.KEY, 0);
	}
	public references_clause(): References_clauseContext {
		return this.getTypedRuleContext(References_clauseContext, 0) as References_clauseContext;
	}
	public CONSTRAINT(): TerminalNode {
		return this.getToken(PlSqlParser.CONSTRAINT, 0);
	}
	public constraint_name(): Constraint_nameContext {
		return this.getTypedRuleContext(Constraint_nameContext, 0) as Constraint_nameContext;
	}
	public constraint_state(): Constraint_stateContext {
		return this.getTypedRuleContext(Constraint_stateContext, 0) as Constraint_stateContext;
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_out_of_line_ref_constraint;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterOut_of_line_ref_constraint) {
	 		listener.enterOut_of_line_ref_constraint(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitOut_of_line_ref_constraint) {
	 		listener.exitOut_of_line_ref_constraint(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitOut_of_line_ref_constraint) {
			return visitor.visitOut_of_line_ref_constraint(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Out_of_line_constraintContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public constraint_state(): Constraint_stateContext {
		return this.getTypedRuleContext(Constraint_stateContext, 0) as Constraint_stateContext;
	}
	public UNIQUE(): TerminalNode {
		return this.getToken(PlSqlParser.UNIQUE, 0);
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public column_name_list(): Column_nameContext[] {
		return this.getTypedRuleContexts(Column_nameContext) as Column_nameContext[];
	}
	public column_name(i: number): Column_nameContext {
		return this.getTypedRuleContext(Column_nameContext, i) as Column_nameContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public PRIMARY(): TerminalNode {
		return this.getToken(PlSqlParser.PRIMARY, 0);
	}
	public KEY(): TerminalNode {
		return this.getToken(PlSqlParser.KEY, 0);
	}
	public foreign_key_clause(): Foreign_key_clauseContext {
		return this.getTypedRuleContext(Foreign_key_clauseContext, 0) as Foreign_key_clauseContext;
	}
	public CHECK(): TerminalNode {
		return this.getToken(PlSqlParser.CHECK, 0);
	}
	public expression(): ExpressionContext {
		return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext;
	}
	public CONSTRAINT(): TerminalNode {
		return this.getToken(PlSqlParser.CONSTRAINT, 0);
	}
	public constraint_name(): Constraint_nameContext {
		return this.getTypedRuleContext(Constraint_nameContext, 0) as Constraint_nameContext;
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_out_of_line_constraint;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterOut_of_line_constraint) {
	 		listener.enterOut_of_line_constraint(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitOut_of_line_constraint) {
	 		listener.exitOut_of_line_constraint(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitOut_of_line_constraint) {
			return visitor.visitOut_of_line_constraint(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Constraint_stateContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public DEFERRABLE_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.DEFERRABLE);
	}
	public DEFERRABLE(i: number): TerminalNode {
		return this.getToken(PlSqlParser.DEFERRABLE, i);
	}
	public INITIALLY_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.INITIALLY);
	}
	public INITIALLY(i: number): TerminalNode {
		return this.getToken(PlSqlParser.INITIALLY, i);
	}
	public using_index_clause_list(): Using_index_clauseContext[] {
		return this.getTypedRuleContexts(Using_index_clauseContext) as Using_index_clauseContext[];
	}
	public using_index_clause(i: number): Using_index_clauseContext {
		return this.getTypedRuleContext(Using_index_clauseContext, i) as Using_index_clauseContext;
	}
	public IMMEDIATE_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.IMMEDIATE);
	}
	public IMMEDIATE(i: number): TerminalNode {
		return this.getToken(PlSqlParser.IMMEDIATE, i);
	}
	public DEFERRED_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.DEFERRED);
	}
	public DEFERRED(i: number): TerminalNode {
		return this.getToken(PlSqlParser.DEFERRED, i);
	}
	public RELY_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.RELY);
	}
	public RELY(i: number): TerminalNode {
		return this.getToken(PlSqlParser.RELY, i);
	}
	public NORELY_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.NORELY);
	}
	public NORELY(i: number): TerminalNode {
		return this.getToken(PlSqlParser.NORELY, i);
	}
	public ENABLE_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.ENABLE);
	}
	public ENABLE(i: number): TerminalNode {
		return this.getToken(PlSqlParser.ENABLE, i);
	}
	public DISABLE_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.DISABLE);
	}
	public DISABLE(i: number): TerminalNode {
		return this.getToken(PlSqlParser.DISABLE, i);
	}
	public VALIDATE_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.VALIDATE);
	}
	public VALIDATE(i: number): TerminalNode {
		return this.getToken(PlSqlParser.VALIDATE, i);
	}
	public NOVALIDATE_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.NOVALIDATE);
	}
	public NOVALIDATE(i: number): TerminalNode {
		return this.getToken(PlSqlParser.NOVALIDATE, i);
	}
	public NOT_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.NOT);
	}
	public NOT(i: number): TerminalNode {
		return this.getToken(PlSqlParser.NOT, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_constraint_state;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterConstraint_state) {
	 		listener.enterConstraint_state(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitConstraint_state) {
	 		listener.exitConstraint_state(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitConstraint_state) {
			return visitor.visitConstraint_state(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Alter_tablespaceContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public ALTER(): TerminalNode {
		return this.getToken(PlSqlParser.ALTER, 0);
	}
	public TABLESPACE(): TerminalNode {
		return this.getToken(PlSqlParser.TABLESPACE, 0);
	}
	public tablespace(): TablespaceContext {
		return this.getTypedRuleContext(TablespaceContext, 0) as TablespaceContext;
	}
	public SEMICOLON(): TerminalNode {
		return this.getToken(PlSqlParser.SEMICOLON, 0);
	}
	public DEFAULT(): TerminalNode {
		return this.getToken(PlSqlParser.DEFAULT, 0);
	}
	public MINIMUM(): TerminalNode {
		return this.getToken(PlSqlParser.MINIMUM, 0);
	}
	public EXTENT(): TerminalNode {
		return this.getToken(PlSqlParser.EXTENT, 0);
	}
	public size_clause(): Size_clauseContext {
		return this.getTypedRuleContext(Size_clauseContext, 0) as Size_clauseContext;
	}
	public RESIZE(): TerminalNode {
		return this.getToken(PlSqlParser.RESIZE, 0);
	}
	public COALESCE(): TerminalNode {
		return this.getToken(PlSqlParser.COALESCE, 0);
	}
	public SHRINK(): TerminalNode {
		return this.getToken(PlSqlParser.SHRINK, 0);
	}
	public SPACE_KEYWORD(): TerminalNode {
		return this.getToken(PlSqlParser.SPACE_KEYWORD, 0);
	}
	public RENAME(): TerminalNode {
		return this.getToken(PlSqlParser.RENAME, 0);
	}
	public TO(): TerminalNode {
		return this.getToken(PlSqlParser.TO, 0);
	}
	public new_tablespace_name(): New_tablespace_nameContext {
		return this.getTypedRuleContext(New_tablespace_nameContext, 0) as New_tablespace_nameContext;
	}
	public begin_or_end(): Begin_or_endContext {
		return this.getTypedRuleContext(Begin_or_endContext, 0) as Begin_or_endContext;
	}
	public BACKUP(): TerminalNode {
		return this.getToken(PlSqlParser.BACKUP, 0);
	}
	public datafile_tempfile_clauses(): Datafile_tempfile_clausesContext {
		return this.getTypedRuleContext(Datafile_tempfile_clausesContext, 0) as Datafile_tempfile_clausesContext;
	}
	public tablespace_logging_clauses(): Tablespace_logging_clausesContext {
		return this.getTypedRuleContext(Tablespace_logging_clausesContext, 0) as Tablespace_logging_clausesContext;
	}
	public tablespace_group_clause(): Tablespace_group_clauseContext {
		return this.getTypedRuleContext(Tablespace_group_clauseContext, 0) as Tablespace_group_clauseContext;
	}
	public tablespace_state_clauses(): Tablespace_state_clausesContext {
		return this.getTypedRuleContext(Tablespace_state_clausesContext, 0) as Tablespace_state_clausesContext;
	}
	public autoextend_clause(): Autoextend_clauseContext {
		return this.getTypedRuleContext(Autoextend_clauseContext, 0) as Autoextend_clauseContext;
	}
	public flashback_mode_clause(): Flashback_mode_clauseContext {
		return this.getTypedRuleContext(Flashback_mode_clauseContext, 0) as Flashback_mode_clauseContext;
	}
	public tablespace_retention_clause(): Tablespace_retention_clauseContext {
		return this.getTypedRuleContext(Tablespace_retention_clauseContext, 0) as Tablespace_retention_clauseContext;
	}
	public table_compression(): Table_compressionContext {
		return this.getTypedRuleContext(Table_compressionContext, 0) as Table_compressionContext;
	}
	public storage_clause(): Storage_clauseContext {
		return this.getTypedRuleContext(Storage_clauseContext, 0) as Storage_clauseContext;
	}
	public KEEP(): TerminalNode {
		return this.getToken(PlSqlParser.KEEP, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_alter_tablespace;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterAlter_tablespace) {
	 		listener.enterAlter_tablespace(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitAlter_tablespace) {
	 		listener.exitAlter_tablespace(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitAlter_tablespace) {
			return visitor.visitAlter_tablespace(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Datafile_tempfile_clausesContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public ADD(): TerminalNode {
		return this.getToken(PlSqlParser.ADD, 0);
	}
	public datafile_specification(): Datafile_specificationContext {
		return this.getTypedRuleContext(Datafile_specificationContext, 0) as Datafile_specificationContext;
	}
	public tempfile_specification(): Tempfile_specificationContext {
		return this.getTypedRuleContext(Tempfile_specificationContext, 0) as Tempfile_specificationContext;
	}
	public DROP(): TerminalNode {
		return this.getToken(PlSqlParser.DROP, 0);
	}
	public DATAFILE(): TerminalNode {
		return this.getToken(PlSqlParser.DATAFILE, 0);
	}
	public TEMPFILE(): TerminalNode {
		return this.getToken(PlSqlParser.TEMPFILE, 0);
	}
	public filename_list(): FilenameContext[] {
		return this.getTypedRuleContexts(FilenameContext) as FilenameContext[];
	}
	public filename(i: number): FilenameContext {
		return this.getTypedRuleContext(FilenameContext, i) as FilenameContext;
	}
	public UNSIGNED_INTEGER(): TerminalNode {
		return this.getToken(PlSqlParser.UNSIGNED_INTEGER, 0);
	}
	public KEEP(): TerminalNode {
		return this.getToken(PlSqlParser.KEEP, 0);
	}
	public size_clause(): Size_clauseContext {
		return this.getTypedRuleContext(Size_clauseContext, 0) as Size_clauseContext;
	}
	public SHRINK(): TerminalNode {
		return this.getToken(PlSqlParser.SHRINK, 0);
	}
	public RENAME(): TerminalNode {
		return this.getToken(PlSqlParser.RENAME, 0);
	}
	public TO(): TerminalNode {
		return this.getToken(PlSqlParser.TO, 0);
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
	public online_or_offline(): Online_or_offlineContext {
		return this.getTypedRuleContext(Online_or_offlineContext, 0) as Online_or_offlineContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_datafile_tempfile_clauses;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterDatafile_tempfile_clauses) {
	 		listener.enterDatafile_tempfile_clauses(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitDatafile_tempfile_clauses) {
	 		listener.exitDatafile_tempfile_clauses(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitDatafile_tempfile_clauses) {
			return visitor.visitDatafile_tempfile_clauses(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Tablespace_logging_clausesContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public logging_clause(): Logging_clauseContext {
		return this.getTypedRuleContext(Logging_clauseContext, 0) as Logging_clauseContext;
	}
	public FORCE(): TerminalNode {
		return this.getToken(PlSqlParser.FORCE, 0);
	}
	public LOGGING(): TerminalNode {
		return this.getToken(PlSqlParser.LOGGING, 0);
	}
	public NO(): TerminalNode {
		return this.getToken(PlSqlParser.NO, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_tablespace_logging_clauses;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterTablespace_logging_clauses) {
	 		listener.enterTablespace_logging_clauses(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitTablespace_logging_clauses) {
	 		listener.exitTablespace_logging_clauses(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitTablespace_logging_clauses) {
			return visitor.visitTablespace_logging_clauses(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Tablespace_group_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public TABLESPACE(): TerminalNode {
		return this.getToken(PlSqlParser.TABLESPACE, 0);
	}
	public GROUP(): TerminalNode {
		return this.getToken(PlSqlParser.GROUP, 0);
	}
	public tablespace_group_name(): Tablespace_group_nameContext {
		return this.getTypedRuleContext(Tablespace_group_nameContext, 0) as Tablespace_group_nameContext;
	}
	public CHAR_STRING(): TerminalNode {
		return this.getToken(PlSqlParser.CHAR_STRING, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_tablespace_group_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterTablespace_group_clause) {
	 		listener.enterTablespace_group_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitTablespace_group_clause) {
	 		listener.exitTablespace_group_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitTablespace_group_clause) {
			return visitor.visitTablespace_group_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Tablespace_group_nameContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public regular_id(): Regular_idContext {
		return this.getTypedRuleContext(Regular_idContext, 0) as Regular_idContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_tablespace_group_name;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterTablespace_group_name) {
	 		listener.enterTablespace_group_name(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitTablespace_group_name) {
	 		listener.exitTablespace_group_name(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitTablespace_group_name) {
			return visitor.visitTablespace_group_name(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Tablespace_state_clausesContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public ONLINE(): TerminalNode {
		return this.getToken(PlSqlParser.ONLINE, 0);
	}
	public OFFLINE(): TerminalNode {
		return this.getToken(PlSqlParser.OFFLINE, 0);
	}
	public NORMAL(): TerminalNode {
		return this.getToken(PlSqlParser.NORMAL, 0);
	}
	public TEMPORARY(): TerminalNode {
		return this.getToken(PlSqlParser.TEMPORARY, 0);
	}
	public IMMEDIATE(): TerminalNode {
		return this.getToken(PlSqlParser.IMMEDIATE, 0);
	}
	public READ(): TerminalNode {
		return this.getToken(PlSqlParser.READ, 0);
	}
	public ONLY(): TerminalNode {
		return this.getToken(PlSqlParser.ONLY, 0);
	}
	public WRITE(): TerminalNode {
		return this.getToken(PlSqlParser.WRITE, 0);
	}
	public PERMANENT(): TerminalNode {
		return this.getToken(PlSqlParser.PERMANENT, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_tablespace_state_clauses;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterTablespace_state_clauses) {
	 		listener.enterTablespace_state_clauses(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitTablespace_state_clauses) {
	 		listener.exitTablespace_state_clauses(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitTablespace_state_clauses) {
			return visitor.visitTablespace_state_clauses(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Flashback_mode_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public FLASHBACK(): TerminalNode {
		return this.getToken(PlSqlParser.FLASHBACK, 0);
	}
	public ON(): TerminalNode {
		return this.getToken(PlSqlParser.ON, 0);
	}
	public OFF(): TerminalNode {
		return this.getToken(PlSqlParser.OFF, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_flashback_mode_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterFlashback_mode_clause) {
	 		listener.enterFlashback_mode_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitFlashback_mode_clause) {
	 		listener.exitFlashback_mode_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitFlashback_mode_clause) {
			return visitor.visitFlashback_mode_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class New_tablespace_nameContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public tablespace(): TablespaceContext {
		return this.getTypedRuleContext(TablespaceContext, 0) as TablespaceContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_new_tablespace_name;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterNew_tablespace_name) {
	 		listener.enterNew_tablespace_name(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitNew_tablespace_name) {
	 		listener.exitNew_tablespace_name(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitNew_tablespace_name) {
			return visitor.visitNew_tablespace_name(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Create_tablespaceContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public CREATE(): TerminalNode {
		return this.getToken(PlSqlParser.CREATE, 0);
	}
	public SEMICOLON(): TerminalNode {
		return this.getToken(PlSqlParser.SEMICOLON, 0);
	}
	public permanent_tablespace_clause(): Permanent_tablespace_clauseContext {
		return this.getTypedRuleContext(Permanent_tablespace_clauseContext, 0) as Permanent_tablespace_clauseContext;
	}
	public temporary_tablespace_clause(): Temporary_tablespace_clauseContext {
		return this.getTypedRuleContext(Temporary_tablespace_clauseContext, 0) as Temporary_tablespace_clauseContext;
	}
	public undo_tablespace_clause(): Undo_tablespace_clauseContext {
		return this.getTypedRuleContext(Undo_tablespace_clauseContext, 0) as Undo_tablespace_clauseContext;
	}
	public BIGFILE(): TerminalNode {
		return this.getToken(PlSqlParser.BIGFILE, 0);
	}
	public SMALLFILE(): TerminalNode {
		return this.getToken(PlSqlParser.SMALLFILE, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_create_tablespace;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterCreate_tablespace) {
	 		listener.enterCreate_tablespace(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitCreate_tablespace) {
	 		listener.exitCreate_tablespace(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitCreate_tablespace) {
			return visitor.visitCreate_tablespace(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Permanent_tablespace_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public TABLESPACE(): TerminalNode {
		return this.getToken(PlSqlParser.TABLESPACE, 0);
	}
	public id_expression(): Id_expressionContext {
		return this.getTypedRuleContext(Id_expressionContext, 0) as Id_expressionContext;
	}
	public datafile_specification(): Datafile_specificationContext {
		return this.getTypedRuleContext(Datafile_specificationContext, 0) as Datafile_specificationContext;
	}
	public MINIMUM_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.MINIMUM);
	}
	public MINIMUM(i: number): TerminalNode {
		return this.getToken(PlSqlParser.MINIMUM, i);
	}
	public EXTENT_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.EXTENT);
	}
	public EXTENT(i: number): TerminalNode {
		return this.getToken(PlSqlParser.EXTENT, i);
	}
	public size_clause_list(): Size_clauseContext[] {
		return this.getTypedRuleContexts(Size_clauseContext) as Size_clauseContext[];
	}
	public size_clause(i: number): Size_clauseContext {
		return this.getTypedRuleContext(Size_clauseContext, i) as Size_clauseContext;
	}
	public BLOCKSIZE_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.BLOCKSIZE);
	}
	public BLOCKSIZE(i: number): TerminalNode {
		return this.getToken(PlSqlParser.BLOCKSIZE, i);
	}
	public logging_clause_list(): Logging_clauseContext[] {
		return this.getTypedRuleContexts(Logging_clauseContext) as Logging_clauseContext[];
	}
	public logging_clause(i: number): Logging_clauseContext {
		return this.getTypedRuleContext(Logging_clauseContext, i) as Logging_clauseContext;
	}
	public FORCE_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.FORCE);
	}
	public FORCE(i: number): TerminalNode {
		return this.getToken(PlSqlParser.FORCE, i);
	}
	public LOGGING_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.LOGGING);
	}
	public LOGGING(i: number): TerminalNode {
		return this.getToken(PlSqlParser.LOGGING, i);
	}
	public ENCRYPTION_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.ENCRYPTION);
	}
	public ENCRYPTION(i: number): TerminalNode {
		return this.getToken(PlSqlParser.ENCRYPTION, i);
	}
	public tablespace_encryption_spec_list(): Tablespace_encryption_specContext[] {
		return this.getTypedRuleContexts(Tablespace_encryption_specContext) as Tablespace_encryption_specContext[];
	}
	public tablespace_encryption_spec(i: number): Tablespace_encryption_specContext {
		return this.getTypedRuleContext(Tablespace_encryption_specContext, i) as Tablespace_encryption_specContext;
	}
	public DEFAULT_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.DEFAULT);
	}
	public DEFAULT(i: number): TerminalNode {
		return this.getToken(PlSqlParser.DEFAULT, i);
	}
	public extent_management_clause_list(): Extent_management_clauseContext[] {
		return this.getTypedRuleContexts(Extent_management_clauseContext) as Extent_management_clauseContext[];
	}
	public extent_management_clause(i: number): Extent_management_clauseContext {
		return this.getTypedRuleContext(Extent_management_clauseContext, i) as Extent_management_clauseContext;
	}
	public segment_management_clause_list(): Segment_management_clauseContext[] {
		return this.getTypedRuleContexts(Segment_management_clauseContext) as Segment_management_clauseContext[];
	}
	public segment_management_clause(i: number): Segment_management_clauseContext {
		return this.getTypedRuleContext(Segment_management_clauseContext, i) as Segment_management_clauseContext;
	}
	public flashback_mode_clause_list(): Flashback_mode_clauseContext[] {
		return this.getTypedRuleContexts(Flashback_mode_clauseContext) as Flashback_mode_clauseContext[];
	}
	public flashback_mode_clause(i: number): Flashback_mode_clauseContext {
		return this.getTypedRuleContext(Flashback_mode_clauseContext, i) as Flashback_mode_clauseContext;
	}
	public ONLINE_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.ONLINE);
	}
	public ONLINE(i: number): TerminalNode {
		return this.getToken(PlSqlParser.ONLINE, i);
	}
	public OFFLINE_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.OFFLINE);
	}
	public OFFLINE(i: number): TerminalNode {
		return this.getToken(PlSqlParser.OFFLINE, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_permanent_tablespace_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterPermanent_tablespace_clause) {
	 		listener.enterPermanent_tablespace_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitPermanent_tablespace_clause) {
	 		listener.exitPermanent_tablespace_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitPermanent_tablespace_clause) {
			return visitor.visitPermanent_tablespace_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Tablespace_encryption_specContext extends ParserRuleContext {
	public _encrypt_algorithm!: Token;
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public USING(): TerminalNode {
		return this.getToken(PlSqlParser.USING, 0);
	}
	public CHAR_STRING(): TerminalNode {
		return this.getToken(PlSqlParser.CHAR_STRING, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_tablespace_encryption_spec;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterTablespace_encryption_spec) {
	 		listener.enterTablespace_encryption_spec(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitTablespace_encryption_spec) {
	 		listener.exitTablespace_encryption_spec(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitTablespace_encryption_spec) {
			return visitor.visitTablespace_encryption_spec(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Logging_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public LOGGING(): TerminalNode {
		return this.getToken(PlSqlParser.LOGGING, 0);
	}
	public NOLOGGING(): TerminalNode {
		return this.getToken(PlSqlParser.NOLOGGING, 0);
	}
	public FILESYSTEM_LIKE_LOGGING(): TerminalNode {
		return this.getToken(PlSqlParser.FILESYSTEM_LIKE_LOGGING, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_logging_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterLogging_clause) {
	 		listener.enterLogging_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitLogging_clause) {
	 		listener.exitLogging_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitLogging_clause) {
			return visitor.visitLogging_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Extent_management_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public EXTENT(): TerminalNode {
		return this.getToken(PlSqlParser.EXTENT, 0);
	}
	public MANAGEMENT(): TerminalNode {
		return this.getToken(PlSqlParser.MANAGEMENT, 0);
	}
	public LOCAL(): TerminalNode {
		return this.getToken(PlSqlParser.LOCAL, 0);
	}
	public AUTOALLOCATE(): TerminalNode {
		return this.getToken(PlSqlParser.AUTOALLOCATE, 0);
	}
	public UNIFORM(): TerminalNode {
		return this.getToken(PlSqlParser.UNIFORM, 0);
	}
	public SIZE(): TerminalNode {
		return this.getToken(PlSqlParser.SIZE, 0);
	}
	public size_clause(): Size_clauseContext {
		return this.getTypedRuleContext(Size_clauseContext, 0) as Size_clauseContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_extent_management_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterExtent_management_clause) {
	 		listener.enterExtent_management_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitExtent_management_clause) {
	 		listener.exitExtent_management_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitExtent_management_clause) {
			return visitor.visitExtent_management_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Segment_management_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public SEGMENT(): TerminalNode {
		return this.getToken(PlSqlParser.SEGMENT, 0);
	}
	public SPACE_KEYWORD(): TerminalNode {
		return this.getToken(PlSqlParser.SPACE_KEYWORD, 0);
	}
	public MANAGEMENT(): TerminalNode {
		return this.getToken(PlSqlParser.MANAGEMENT, 0);
	}
	public AUTO(): TerminalNode {
		return this.getToken(PlSqlParser.AUTO, 0);
	}
	public MANUAL(): TerminalNode {
		return this.getToken(PlSqlParser.MANUAL, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_segment_management_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterSegment_management_clause) {
	 		listener.enterSegment_management_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitSegment_management_clause) {
	 		listener.exitSegment_management_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitSegment_management_clause) {
			return visitor.visitSegment_management_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Temporary_tablespace_clauseContext extends ParserRuleContext {
	public _tablespace_name!: Id_expressionContext;
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public TEMPORARY(): TerminalNode {
		return this.getToken(PlSqlParser.TEMPORARY, 0);
	}
	public TABLESPACE(): TerminalNode {
		return this.getToken(PlSqlParser.TABLESPACE, 0);
	}
	public id_expression(): Id_expressionContext {
		return this.getTypedRuleContext(Id_expressionContext, 0) as Id_expressionContext;
	}
	public tempfile_specification(): Tempfile_specificationContext {
		return this.getTypedRuleContext(Tempfile_specificationContext, 0) as Tempfile_specificationContext;
	}
	public tablespace_group_clause(): Tablespace_group_clauseContext {
		return this.getTypedRuleContext(Tablespace_group_clauseContext, 0) as Tablespace_group_clauseContext;
	}
	public extent_management_clause(): Extent_management_clauseContext {
		return this.getTypedRuleContext(Extent_management_clauseContext, 0) as Extent_management_clauseContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_temporary_tablespace_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterTemporary_tablespace_clause) {
	 		listener.enterTemporary_tablespace_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitTemporary_tablespace_clause) {
	 		listener.exitTemporary_tablespace_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitTemporary_tablespace_clause) {
			return visitor.visitTemporary_tablespace_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Undo_tablespace_clauseContext extends ParserRuleContext {
	public _tablespace_name!: Id_expressionContext;
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public UNDO(): TerminalNode {
		return this.getToken(PlSqlParser.UNDO, 0);
	}
	public TABLESPACE(): TerminalNode {
		return this.getToken(PlSqlParser.TABLESPACE, 0);
	}
	public id_expression(): Id_expressionContext {
		return this.getTypedRuleContext(Id_expressionContext, 0) as Id_expressionContext;
	}
	public datafile_specification(): Datafile_specificationContext {
		return this.getTypedRuleContext(Datafile_specificationContext, 0) as Datafile_specificationContext;
	}
	public extent_management_clause(): Extent_management_clauseContext {
		return this.getTypedRuleContext(Extent_management_clauseContext, 0) as Extent_management_clauseContext;
	}
	public tablespace_retention_clause(): Tablespace_retention_clauseContext {
		return this.getTypedRuleContext(Tablespace_retention_clauseContext, 0) as Tablespace_retention_clauseContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_undo_tablespace_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterUndo_tablespace_clause) {
	 		listener.enterUndo_tablespace_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitUndo_tablespace_clause) {
	 		listener.exitUndo_tablespace_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitUndo_tablespace_clause) {
			return visitor.visitUndo_tablespace_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Tablespace_retention_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public RETENTION(): TerminalNode {
		return this.getToken(PlSqlParser.RETENTION, 0);
	}
	public GUARANTEE(): TerminalNode {
		return this.getToken(PlSqlParser.GUARANTEE, 0);
	}
	public NOGUARANTEE(): TerminalNode {
		return this.getToken(PlSqlParser.NOGUARANTEE, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_tablespace_retention_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterTablespace_retention_clause) {
	 		listener.enterTablespace_retention_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitTablespace_retention_clause) {
	 		listener.exitTablespace_retention_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitTablespace_retention_clause) {
			return visitor.visitTablespace_retention_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Datafile_specificationContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public DATAFILE(): TerminalNode {
		return this.getToken(PlSqlParser.DATAFILE, 0);
	}
	public datafile_tempfile_spec(): Datafile_tempfile_specContext {
		return this.getTypedRuleContext(Datafile_tempfile_specContext, 0) as Datafile_tempfile_specContext;
	}
	public COMMA(): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_datafile_specification;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterDatafile_specification) {
	 		listener.enterDatafile_specification(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitDatafile_specification) {
	 		listener.exitDatafile_specification(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitDatafile_specification) {
			return visitor.visitDatafile_specification(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Tempfile_specificationContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public TEMPFILE(): TerminalNode {
		return this.getToken(PlSqlParser.TEMPFILE, 0);
	}
	public datafile_tempfile_spec(): Datafile_tempfile_specContext {
		return this.getTypedRuleContext(Datafile_tempfile_specContext, 0) as Datafile_tempfile_specContext;
	}
	public COMMA(): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_tempfile_specification;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterTempfile_specification) {
	 		listener.enterTempfile_specification(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitTempfile_specification) {
	 		listener.exitTempfile_specification(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitTempfile_specification) {
			return visitor.visitTempfile_specification(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Datafile_tempfile_specContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public CHAR_STRING(): TerminalNode {
		return this.getToken(PlSqlParser.CHAR_STRING, 0);
	}
	public SIZE(): TerminalNode {
		return this.getToken(PlSqlParser.SIZE, 0);
	}
	public size_clause(): Size_clauseContext {
		return this.getTypedRuleContext(Size_clauseContext, 0) as Size_clauseContext;
	}
	public REUSE(): TerminalNode {
		return this.getToken(PlSqlParser.REUSE, 0);
	}
	public autoextend_clause(): Autoextend_clauseContext {
		return this.getTypedRuleContext(Autoextend_clauseContext, 0) as Autoextend_clauseContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_datafile_tempfile_spec;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterDatafile_tempfile_spec) {
	 		listener.enterDatafile_tempfile_spec(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitDatafile_tempfile_spec) {
	 		listener.exitDatafile_tempfile_spec(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitDatafile_tempfile_spec) {
			return visitor.visitDatafile_tempfile_spec(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Redo_log_file_specContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public DATAFILE(): TerminalNode {
		return this.getToken(PlSqlParser.DATAFILE, 0);
	}
	public CHAR_STRING_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.CHAR_STRING);
	}
	public CHAR_STRING(i: number): TerminalNode {
		return this.getToken(PlSqlParser.CHAR_STRING, i);
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public SIZE(): TerminalNode {
		return this.getToken(PlSqlParser.SIZE, 0);
	}
	public size_clause_list(): Size_clauseContext[] {
		return this.getTypedRuleContexts(Size_clauseContext) as Size_clauseContext[];
	}
	public size_clause(i: number): Size_clauseContext {
		return this.getTypedRuleContext(Size_clauseContext, i) as Size_clauseContext;
	}
	public BLOCKSIZE(): TerminalNode {
		return this.getToken(PlSqlParser.BLOCKSIZE, 0);
	}
	public REUSE(): TerminalNode {
		return this.getToken(PlSqlParser.REUSE, 0);
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_redo_log_file_spec;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterRedo_log_file_spec) {
	 		listener.enterRedo_log_file_spec(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitRedo_log_file_spec) {
	 		listener.exitRedo_log_file_spec(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitRedo_log_file_spec) {
			return visitor.visitRedo_log_file_spec(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Autoextend_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public AUTOEXTEND(): TerminalNode {
		return this.getToken(PlSqlParser.AUTOEXTEND, 0);
	}
	public OFF(): TerminalNode {
		return this.getToken(PlSqlParser.OFF, 0);
	}
	public ON(): TerminalNode {
		return this.getToken(PlSqlParser.ON, 0);
	}
	public NEXT(): TerminalNode {
		return this.getToken(PlSqlParser.NEXT, 0);
	}
	public size_clause(): Size_clauseContext {
		return this.getTypedRuleContext(Size_clauseContext, 0) as Size_clauseContext;
	}
	public maxsize_clause(): Maxsize_clauseContext {
		return this.getTypedRuleContext(Maxsize_clauseContext, 0) as Maxsize_clauseContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_autoextend_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterAutoextend_clause) {
	 		listener.enterAutoextend_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitAutoextend_clause) {
	 		listener.exitAutoextend_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitAutoextend_clause) {
			return visitor.visitAutoextend_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Maxsize_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public MAXSIZE(): TerminalNode {
		return this.getToken(PlSqlParser.MAXSIZE, 0);
	}
	public UNLIMITED(): TerminalNode {
		return this.getToken(PlSqlParser.UNLIMITED, 0);
	}
	public size_clause(): Size_clauseContext {
		return this.getTypedRuleContext(Size_clauseContext, 0) as Size_clauseContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_maxsize_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterMaxsize_clause) {
	 		listener.enterMaxsize_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitMaxsize_clause) {
	 		listener.exitMaxsize_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitMaxsize_clause) {
			return visitor.visitMaxsize_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Build_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public BUILD(): TerminalNode {
		return this.getToken(PlSqlParser.BUILD, 0);
	}
	public IMMEDIATE(): TerminalNode {
		return this.getToken(PlSqlParser.IMMEDIATE, 0);
	}
	public DEFERRED(): TerminalNode {
		return this.getToken(PlSqlParser.DEFERRED, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_build_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterBuild_clause) {
	 		listener.enterBuild_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitBuild_clause) {
	 		listener.exitBuild_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitBuild_clause) {
			return visitor.visitBuild_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Parallel_clauseContext extends ParserRuleContext {
	public _parallel_count!: Token;
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public NOPARALLEL(): TerminalNode {
		return this.getToken(PlSqlParser.NOPARALLEL, 0);
	}
	public PARALLEL(): TerminalNode {
		return this.getToken(PlSqlParser.PARALLEL, 0);
	}
	public UNSIGNED_INTEGER(): TerminalNode {
		return this.getToken(PlSqlParser.UNSIGNED_INTEGER, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_parallel_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterParallel_clause) {
	 		listener.enterParallel_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitParallel_clause) {
	 		listener.exitParallel_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitParallel_clause) {
			return visitor.visitParallel_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Alter_materialized_viewContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public ALTER(): TerminalNode {
		return this.getToken(PlSqlParser.ALTER, 0);
	}
	public MATERIALIZED(): TerminalNode {
		return this.getToken(PlSqlParser.MATERIALIZED, 0);
	}
	public VIEW(): TerminalNode {
		return this.getToken(PlSqlParser.VIEW, 0);
	}
	public tableview_name(): Tableview_nameContext {
		return this.getTypedRuleContext(Tableview_nameContext, 0) as Tableview_nameContext;
	}
	public SEMICOLON(): TerminalNode {
		return this.getToken(PlSqlParser.SEMICOLON, 0);
	}
	public physical_attributes_clause_list(): Physical_attributes_clauseContext[] {
		return this.getTypedRuleContexts(Physical_attributes_clauseContext) as Physical_attributes_clauseContext[];
	}
	public physical_attributes_clause(i: number): Physical_attributes_clauseContext {
		return this.getTypedRuleContext(Physical_attributes_clauseContext, i) as Physical_attributes_clauseContext;
	}
	public modify_mv_column_clause(): Modify_mv_column_clauseContext {
		return this.getTypedRuleContext(Modify_mv_column_clauseContext, 0) as Modify_mv_column_clauseContext;
	}
	public table_compression(): Table_compressionContext {
		return this.getTypedRuleContext(Table_compressionContext, 0) as Table_compressionContext;
	}
	public lob_storage_clause_list(): Lob_storage_clauseContext[] {
		return this.getTypedRuleContexts(Lob_storage_clauseContext) as Lob_storage_clauseContext[];
	}
	public lob_storage_clause(i: number): Lob_storage_clauseContext {
		return this.getTypedRuleContext(Lob_storage_clauseContext, i) as Lob_storage_clauseContext;
	}
	public modify_lob_storage_clause_list(): Modify_lob_storage_clauseContext[] {
		return this.getTypedRuleContexts(Modify_lob_storage_clauseContext) as Modify_lob_storage_clauseContext[];
	}
	public modify_lob_storage_clause(i: number): Modify_lob_storage_clauseContext {
		return this.getTypedRuleContext(Modify_lob_storage_clauseContext, i) as Modify_lob_storage_clauseContext;
	}
	public parallel_clause(): Parallel_clauseContext {
		return this.getTypedRuleContext(Parallel_clauseContext, 0) as Parallel_clauseContext;
	}
	public logging_clause(): Logging_clauseContext {
		return this.getTypedRuleContext(Logging_clauseContext, 0) as Logging_clauseContext;
	}
	public allocate_extent_clause(): Allocate_extent_clauseContext {
		return this.getTypedRuleContext(Allocate_extent_clauseContext, 0) as Allocate_extent_clauseContext;
	}
	public deallocate_unused_clause(): Deallocate_unused_clauseContext {
		return this.getTypedRuleContext(Deallocate_unused_clauseContext, 0) as Deallocate_unused_clauseContext;
	}
	public shrink_clause(): Shrink_clauseContext {
		return this.getTypedRuleContext(Shrink_clauseContext, 0) as Shrink_clauseContext;
	}
	public alter_iot_clauses(): Alter_iot_clausesContext {
		return this.getTypedRuleContext(Alter_iot_clausesContext, 0) as Alter_iot_clausesContext;
	}
	public USING(): TerminalNode {
		return this.getToken(PlSqlParser.USING, 0);
	}
	public INDEX(): TerminalNode {
		return this.getToken(PlSqlParser.INDEX, 0);
	}
	public alter_mv_option1(): Alter_mv_option1Context {
		return this.getTypedRuleContext(Alter_mv_option1Context, 0) as Alter_mv_option1Context;
	}
	public enable_or_disable(): Enable_or_disableContext {
		return this.getTypedRuleContext(Enable_or_disableContext, 0) as Enable_or_disableContext;
	}
	public QUERY(): TerminalNode {
		return this.getToken(PlSqlParser.QUERY, 0);
	}
	public REWRITE(): TerminalNode {
		return this.getToken(PlSqlParser.REWRITE, 0);
	}
	public COMPILE(): TerminalNode {
		return this.getToken(PlSqlParser.COMPILE, 0);
	}
	public CONSIDER(): TerminalNode {
		return this.getToken(PlSqlParser.CONSIDER, 0);
	}
	public FRESH(): TerminalNode {
		return this.getToken(PlSqlParser.FRESH, 0);
	}
	public cache_or_nocache(): Cache_or_nocacheContext {
		return this.getTypedRuleContext(Cache_or_nocacheContext, 0) as Cache_or_nocacheContext;
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_alter_materialized_view;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterAlter_materialized_view) {
	 		listener.enterAlter_materialized_view(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitAlter_materialized_view) {
	 		listener.exitAlter_materialized_view(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitAlter_materialized_view) {
			return visitor.visitAlter_materialized_view(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Alter_mv_option1Context extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public alter_mv_refresh(): Alter_mv_refreshContext {
		return this.getTypedRuleContext(Alter_mv_refreshContext, 0) as Alter_mv_refreshContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_alter_mv_option1;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterAlter_mv_option1) {
	 		listener.enterAlter_mv_option1(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitAlter_mv_option1) {
	 		listener.exitAlter_mv_option1(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitAlter_mv_option1) {
			return visitor.visitAlter_mv_option1(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Alter_mv_refreshContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public REFRESH(): TerminalNode {
		return this.getToken(PlSqlParser.REFRESH, 0);
	}
	public FAST_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.FAST);
	}
	public FAST(i: number): TerminalNode {
		return this.getToken(PlSqlParser.FAST, i);
	}
	public COMPLETE_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMPLETE);
	}
	public COMPLETE(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMPLETE, i);
	}
	public FORCE_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.FORCE);
	}
	public FORCE(i: number): TerminalNode {
		return this.getToken(PlSqlParser.FORCE, i);
	}
	public ON_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.ON);
	}
	public ON(i: number): TerminalNode {
		return this.getToken(PlSqlParser.ON, i);
	}
	public START_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.START);
	}
	public START(i: number): TerminalNode {
		return this.getToken(PlSqlParser.START, i);
	}
	public WITH_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.WITH);
	}
	public WITH(i: number): TerminalNode {
		return this.getToken(PlSqlParser.WITH, i);
	}
	public expression_list(): ExpressionContext[] {
		return this.getTypedRuleContexts(ExpressionContext) as ExpressionContext[];
	}
	public expression(i: number): ExpressionContext {
		return this.getTypedRuleContext(ExpressionContext, i) as ExpressionContext;
	}
	public NEXT_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.NEXT);
	}
	public NEXT(i: number): TerminalNode {
		return this.getToken(PlSqlParser.NEXT, i);
	}
	public PRIMARY_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.PRIMARY);
	}
	public PRIMARY(i: number): TerminalNode {
		return this.getToken(PlSqlParser.PRIMARY, i);
	}
	public KEY_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.KEY);
	}
	public KEY(i: number): TerminalNode {
		return this.getToken(PlSqlParser.KEY, i);
	}
	public USING_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.USING);
	}
	public USING(i: number): TerminalNode {
		return this.getToken(PlSqlParser.USING, i);
	}
	public MASTER_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.MASTER);
	}
	public MASTER(i: number): TerminalNode {
		return this.getToken(PlSqlParser.MASTER, i);
	}
	public ROLLBACK_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.ROLLBACK);
	}
	public ROLLBACK(i: number): TerminalNode {
		return this.getToken(PlSqlParser.ROLLBACK, i);
	}
	public SEGMENT_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.SEGMENT);
	}
	public SEGMENT(i: number): TerminalNode {
		return this.getToken(PlSqlParser.SEGMENT, i);
	}
	public CONSTRAINTS_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.CONSTRAINTS);
	}
	public CONSTRAINTS(i: number): TerminalNode {
		return this.getToken(PlSqlParser.CONSTRAINTS, i);
	}
	public DEMAND_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.DEMAND);
	}
	public DEMAND(i: number): TerminalNode {
		return this.getToken(PlSqlParser.DEMAND, i);
	}
	public COMMIT_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMIT);
	}
	public COMMIT(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMIT, i);
	}
	public ENFORCED_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.ENFORCED);
	}
	public ENFORCED(i: number): TerminalNode {
		return this.getToken(PlSqlParser.ENFORCED, i);
	}
	public TRUSTED_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.TRUSTED);
	}
	public TRUSTED(i: number): TerminalNode {
		return this.getToken(PlSqlParser.TRUSTED, i);
	}
	public DEFAULT_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.DEFAULT);
	}
	public DEFAULT(i: number): TerminalNode {
		return this.getToken(PlSqlParser.DEFAULT, i);
	}
	public rollback_segment_list(): Rollback_segmentContext[] {
		return this.getTypedRuleContexts(Rollback_segmentContext) as Rollback_segmentContext[];
	}
	public rollback_segment(i: number): Rollback_segmentContext {
		return this.getTypedRuleContext(Rollback_segmentContext, i) as Rollback_segmentContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_alter_mv_refresh;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterAlter_mv_refresh) {
	 		listener.enterAlter_mv_refresh(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitAlter_mv_refresh) {
	 		listener.exitAlter_mv_refresh(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitAlter_mv_refresh) {
			return visitor.visitAlter_mv_refresh(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Rollback_segmentContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public regular_id(): Regular_idContext {
		return this.getTypedRuleContext(Regular_idContext, 0) as Regular_idContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_rollback_segment;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterRollback_segment) {
	 		listener.enterRollback_segment(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitRollback_segment) {
	 		listener.exitRollback_segment(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitRollback_segment) {
			return visitor.visitRollback_segment(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Modify_mv_column_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public MODIFY(): TerminalNode {
		return this.getToken(PlSqlParser.MODIFY, 0);
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public column_name(): Column_nameContext {
		return this.getTypedRuleContext(Column_nameContext, 0) as Column_nameContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public ENCRYPT(): TerminalNode {
		return this.getToken(PlSqlParser.ENCRYPT, 0);
	}
	public encryption_spec(): Encryption_specContext {
		return this.getTypedRuleContext(Encryption_specContext, 0) as Encryption_specContext;
	}
	public DECRYPT(): TerminalNode {
		return this.getToken(PlSqlParser.DECRYPT, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_modify_mv_column_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterModify_mv_column_clause) {
	 		listener.enterModify_mv_column_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitModify_mv_column_clause) {
	 		listener.exitModify_mv_column_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitModify_mv_column_clause) {
			return visitor.visitModify_mv_column_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Alter_materialized_view_logContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public ALTER(): TerminalNode {
		return this.getToken(PlSqlParser.ALTER, 0);
	}
	public MATERIALIZED(): TerminalNode {
		return this.getToken(PlSqlParser.MATERIALIZED, 0);
	}
	public VIEW(): TerminalNode {
		return this.getToken(PlSqlParser.VIEW, 0);
	}
	public LOG(): TerminalNode {
		return this.getToken(PlSqlParser.LOG, 0);
	}
	public ON(): TerminalNode {
		return this.getToken(PlSqlParser.ON, 0);
	}
	public tableview_name(): Tableview_nameContext {
		return this.getTypedRuleContext(Tableview_nameContext, 0) as Tableview_nameContext;
	}
	public SEMICOLON(): TerminalNode {
		return this.getToken(PlSqlParser.SEMICOLON, 0);
	}
	public FORCE(): TerminalNode {
		return this.getToken(PlSqlParser.FORCE, 0);
	}
	public physical_attributes_clause(): Physical_attributes_clauseContext {
		return this.getTypedRuleContext(Physical_attributes_clauseContext, 0) as Physical_attributes_clauseContext;
	}
	public add_mv_log_column_clause(): Add_mv_log_column_clauseContext {
		return this.getTypedRuleContext(Add_mv_log_column_clauseContext, 0) as Add_mv_log_column_clauseContext;
	}
	public parallel_clause(): Parallel_clauseContext {
		return this.getTypedRuleContext(Parallel_clauseContext, 0) as Parallel_clauseContext;
	}
	public logging_clause(): Logging_clauseContext {
		return this.getTypedRuleContext(Logging_clauseContext, 0) as Logging_clauseContext;
	}
	public allocate_extent_clause(): Allocate_extent_clauseContext {
		return this.getTypedRuleContext(Allocate_extent_clauseContext, 0) as Allocate_extent_clauseContext;
	}
	public shrink_clause(): Shrink_clauseContext {
		return this.getTypedRuleContext(Shrink_clauseContext, 0) as Shrink_clauseContext;
	}
	public move_mv_log_clause(): Move_mv_log_clauseContext {
		return this.getTypedRuleContext(Move_mv_log_clauseContext, 0) as Move_mv_log_clauseContext;
	}
	public cache_or_nocache(): Cache_or_nocacheContext {
		return this.getTypedRuleContext(Cache_or_nocacheContext, 0) as Cache_or_nocacheContext;
	}
	public mv_log_augmentation(): Mv_log_augmentationContext {
		return this.getTypedRuleContext(Mv_log_augmentationContext, 0) as Mv_log_augmentationContext;
	}
	public mv_log_purge_clause(): Mv_log_purge_clauseContext {
		return this.getTypedRuleContext(Mv_log_purge_clauseContext, 0) as Mv_log_purge_clauseContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_alter_materialized_view_log;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterAlter_materialized_view_log) {
	 		listener.enterAlter_materialized_view_log(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitAlter_materialized_view_log) {
	 		listener.exitAlter_materialized_view_log(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitAlter_materialized_view_log) {
			return visitor.visitAlter_materialized_view_log(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Add_mv_log_column_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public ADD(): TerminalNode {
		return this.getToken(PlSqlParser.ADD, 0);
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public column_name(): Column_nameContext {
		return this.getTypedRuleContext(Column_nameContext, 0) as Column_nameContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_add_mv_log_column_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterAdd_mv_log_column_clause) {
	 		listener.enterAdd_mv_log_column_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitAdd_mv_log_column_clause) {
	 		listener.exitAdd_mv_log_column_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitAdd_mv_log_column_clause) {
			return visitor.visitAdd_mv_log_column_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Move_mv_log_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public MOVE(): TerminalNode {
		return this.getToken(PlSqlParser.MOVE, 0);
	}
	public segment_attributes_clause(): Segment_attributes_clauseContext {
		return this.getTypedRuleContext(Segment_attributes_clauseContext, 0) as Segment_attributes_clauseContext;
	}
	public parallel_clause(): Parallel_clauseContext {
		return this.getTypedRuleContext(Parallel_clauseContext, 0) as Parallel_clauseContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_move_mv_log_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterMove_mv_log_clause) {
	 		listener.enterMove_mv_log_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitMove_mv_log_clause) {
	 		listener.exitMove_mv_log_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitMove_mv_log_clause) {
			return visitor.visitMove_mv_log_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Mv_log_augmentationContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public ADD(): TerminalNode {
		return this.getToken(PlSqlParser.ADD, 0);
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public column_name_list(): Column_nameContext[] {
		return this.getTypedRuleContexts(Column_nameContext) as Column_nameContext[];
	}
	public column_name(i: number): Column_nameContext {
		return this.getTypedRuleContext(Column_nameContext, i) as Column_nameContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public new_values_clause(): New_values_clauseContext {
		return this.getTypedRuleContext(New_values_clauseContext, 0) as New_values_clauseContext;
	}
	public OBJECT(): TerminalNode {
		return this.getToken(PlSqlParser.OBJECT, 0);
	}
	public ID(): TerminalNode {
		return this.getToken(PlSqlParser.ID, 0);
	}
	public PRIMARY(): TerminalNode {
		return this.getToken(PlSqlParser.PRIMARY, 0);
	}
	public KEY(): TerminalNode {
		return this.getToken(PlSqlParser.KEY, 0);
	}
	public ROWID(): TerminalNode {
		return this.getToken(PlSqlParser.ROWID, 0);
	}
	public SEQUENCE(): TerminalNode {
		return this.getToken(PlSqlParser.SEQUENCE, 0);
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_mv_log_augmentation;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterMv_log_augmentation) {
	 		listener.enterMv_log_augmentation(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitMv_log_augmentation) {
	 		listener.exitMv_log_augmentation(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitMv_log_augmentation) {
			return visitor.visitMv_log_augmentation(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Datetime_exprContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public expression(): ExpressionContext {
		return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_datetime_expr;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterDatetime_expr) {
	 		listener.enterDatetime_expr(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitDatetime_expr) {
	 		listener.exitDatetime_expr(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitDatetime_expr) {
			return visitor.visitDatetime_expr(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Interval_exprContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public expression(): ExpressionContext {
		return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_interval_expr;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterInterval_expr) {
	 		listener.enterInterval_expr(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitInterval_expr) {
	 		listener.exitInterval_expr(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitInterval_expr) {
			return visitor.visitInterval_expr(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Synchronous_or_asynchronousContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public SYNCHRONOUS(): TerminalNode {
		return this.getToken(PlSqlParser.SYNCHRONOUS, 0);
	}
	public ASYNCHRONOUS(): TerminalNode {
		return this.getToken(PlSqlParser.ASYNCHRONOUS, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_synchronous_or_asynchronous;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterSynchronous_or_asynchronous) {
	 		listener.enterSynchronous_or_asynchronous(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitSynchronous_or_asynchronous) {
	 		listener.exitSynchronous_or_asynchronous(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitSynchronous_or_asynchronous) {
			return visitor.visitSynchronous_or_asynchronous(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Including_or_excludingContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public INCLUDING(): TerminalNode {
		return this.getToken(PlSqlParser.INCLUDING, 0);
	}
	public EXCLUDING(): TerminalNode {
		return this.getToken(PlSqlParser.EXCLUDING, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_including_or_excluding;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterIncluding_or_excluding) {
	 		listener.enterIncluding_or_excluding(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitIncluding_or_excluding) {
	 		listener.exitIncluding_or_excluding(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitIncluding_or_excluding) {
			return visitor.visitIncluding_or_excluding(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Create_materialized_view_logContext extends ParserRuleContext {
	public _tablespace_name!: Id_expressionContext;
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public CREATE(): TerminalNode {
		return this.getToken(PlSqlParser.CREATE, 0);
	}
	public MATERIALIZED(): TerminalNode {
		return this.getToken(PlSqlParser.MATERIALIZED, 0);
	}
	public VIEW(): TerminalNode {
		return this.getToken(PlSqlParser.VIEW, 0);
	}
	public LOG(): TerminalNode {
		return this.getToken(PlSqlParser.LOG, 0);
	}
	public ON(): TerminalNode {
		return this.getToken(PlSqlParser.ON, 0);
	}
	public tableview_name(): Tableview_nameContext {
		return this.getTypedRuleContext(Tableview_nameContext, 0) as Tableview_nameContext;
	}
	public parallel_clause(): Parallel_clauseContext {
		return this.getTypedRuleContext(Parallel_clauseContext, 0) as Parallel_clauseContext;
	}
	public WITH_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.WITH);
	}
	public WITH(i: number): TerminalNode {
		return this.getToken(PlSqlParser.WITH, i);
	}
	public physical_attributes_clause_list(): Physical_attributes_clauseContext[] {
		return this.getTypedRuleContexts(Physical_attributes_clauseContext) as Physical_attributes_clauseContext[];
	}
	public physical_attributes_clause(i: number): Physical_attributes_clauseContext {
		return this.getTypedRuleContext(Physical_attributes_clauseContext, i) as Physical_attributes_clauseContext;
	}
	public TABLESPACE_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.TABLESPACE);
	}
	public TABLESPACE(i: number): TerminalNode {
		return this.getToken(PlSqlParser.TABLESPACE, i);
	}
	public logging_clause_list(): Logging_clauseContext[] {
		return this.getTypedRuleContexts(Logging_clauseContext) as Logging_clauseContext[];
	}
	public logging_clause(i: number): Logging_clauseContext {
		return this.getTypedRuleContext(Logging_clauseContext, i) as Logging_clauseContext;
	}
	public LEFT_PAREN_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.LEFT_PAREN);
	}
	public LEFT_PAREN(i: number): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, i);
	}
	public RIGHT_PAREN_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.RIGHT_PAREN);
	}
	public RIGHT_PAREN(i: number): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, i);
	}
	public mv_log_purge_clause_list(): Mv_log_purge_clauseContext[] {
		return this.getTypedRuleContexts(Mv_log_purge_clauseContext) as Mv_log_purge_clauseContext[];
	}
	public mv_log_purge_clause(i: number): Mv_log_purge_clauseContext {
		return this.getTypedRuleContext(Mv_log_purge_clauseContext, i) as Mv_log_purge_clauseContext;
	}
	public id_expression_list(): Id_expressionContext[] {
		return this.getTypedRuleContexts(Id_expressionContext) as Id_expressionContext[];
	}
	public id_expression(i: number): Id_expressionContext {
		return this.getTypedRuleContext(Id_expressionContext, i) as Id_expressionContext;
	}
	public CACHE_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.CACHE);
	}
	public CACHE(i: number): TerminalNode {
		return this.getToken(PlSqlParser.CACHE, i);
	}
	public NOCACHE_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.NOCACHE);
	}
	public NOCACHE(i: number): TerminalNode {
		return this.getToken(PlSqlParser.NOCACHE, i);
	}
	public OBJECT_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.OBJECT);
	}
	public OBJECT(i: number): TerminalNode {
		return this.getToken(PlSqlParser.OBJECT, i);
	}
	public ID_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.ID);
	}
	public ID(i: number): TerminalNode {
		return this.getToken(PlSqlParser.ID, i);
	}
	public PRIMARY_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.PRIMARY);
	}
	public PRIMARY(i: number): TerminalNode {
		return this.getToken(PlSqlParser.PRIMARY, i);
	}
	public KEY_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.KEY);
	}
	public KEY(i: number): TerminalNode {
		return this.getToken(PlSqlParser.KEY, i);
	}
	public ROWID_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.ROWID);
	}
	public ROWID(i: number): TerminalNode {
		return this.getToken(PlSqlParser.ROWID, i);
	}
	public SEQUENCE_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.SEQUENCE);
	}
	public SEQUENCE(i: number): TerminalNode {
		return this.getToken(PlSqlParser.SEQUENCE, i);
	}
	public COMMIT_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMIT);
	}
	public COMMIT(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMIT, i);
	}
	public SCN_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.SCN);
	}
	public SCN(i: number): TerminalNode {
		return this.getToken(PlSqlParser.SCN, i);
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
	public regular_id_list(): Regular_idContext[] {
		return this.getTypedRuleContexts(Regular_idContext) as Regular_idContext[];
	}
	public regular_id(i: number): Regular_idContext {
		return this.getTypedRuleContext(Regular_idContext, i) as Regular_idContext;
	}
	public new_values_clause_list(): New_values_clauseContext[] {
		return this.getTypedRuleContexts(New_values_clauseContext) as New_values_clauseContext[];
	}
	public new_values_clause(i: number): New_values_clauseContext {
		return this.getTypedRuleContext(New_values_clauseContext, i) as New_values_clauseContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_create_materialized_view_log;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterCreate_materialized_view_log) {
	 		listener.enterCreate_materialized_view_log(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitCreate_materialized_view_log) {
	 		listener.exitCreate_materialized_view_log(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitCreate_materialized_view_log) {
			return visitor.visitCreate_materialized_view_log(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class New_values_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public NEW(): TerminalNode {
		return this.getToken(PlSqlParser.NEW, 0);
	}
	public VALUES(): TerminalNode {
		return this.getToken(PlSqlParser.VALUES, 0);
	}
	public INCLUDING(): TerminalNode {
		return this.getToken(PlSqlParser.INCLUDING, 0);
	}
	public EXCLUDING(): TerminalNode {
		return this.getToken(PlSqlParser.EXCLUDING, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_new_values_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterNew_values_clause) {
	 		listener.enterNew_values_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitNew_values_clause) {
	 		listener.exitNew_values_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitNew_values_clause) {
			return visitor.visitNew_values_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Mv_log_purge_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public PURGE(): TerminalNode {
		return this.getToken(PlSqlParser.PURGE, 0);
	}
	public IMMEDIATE(): TerminalNode {
		return this.getToken(PlSqlParser.IMMEDIATE, 0);
	}
	public SYNCHRONOUS(): TerminalNode {
		return this.getToken(PlSqlParser.SYNCHRONOUS, 0);
	}
	public ASYNCHRONOUS(): TerminalNode {
		return this.getToken(PlSqlParser.ASYNCHRONOUS, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_mv_log_purge_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterMv_log_purge_clause) {
	 		listener.enterMv_log_purge_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitMv_log_purge_clause) {
	 		listener.exitMv_log_purge_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitMv_log_purge_clause) {
			return visitor.visitMv_log_purge_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Create_materialized_viewContext extends ParserRuleContext {
	public _mv_tablespace!: Id_expressionContext;
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public CREATE(): TerminalNode {
		return this.getToken(PlSqlParser.CREATE, 0);
	}
	public MATERIALIZED(): TerminalNode {
		return this.getToken(PlSqlParser.MATERIALIZED, 0);
	}
	public VIEW(): TerminalNode {
		return this.getToken(PlSqlParser.VIEW, 0);
	}
	public tableview_name(): Tableview_nameContext {
		return this.getTypedRuleContext(Tableview_nameContext, 0) as Tableview_nameContext;
	}
	public AS(): TerminalNode {
		return this.getToken(PlSqlParser.AS, 0);
	}
	public select_only_statement(): Select_only_statementContext {
		return this.getTypedRuleContext(Select_only_statementContext, 0) as Select_only_statementContext;
	}
	public SEMICOLON(): TerminalNode {
		return this.getToken(PlSqlParser.SEMICOLON, 0);
	}
	public ON(): TerminalNode {
		return this.getToken(PlSqlParser.ON, 0);
	}
	public PREBUILT(): TerminalNode {
		return this.getToken(PlSqlParser.PREBUILT, 0);
	}
	public TABLE(): TerminalNode {
		return this.getToken(PlSqlParser.TABLE, 0);
	}
	public OF(): TerminalNode {
		return this.getToken(PlSqlParser.OF, 0);
	}
	public type_name(): Type_nameContext {
		return this.getTypedRuleContext(Type_nameContext, 0) as Type_nameContext;
	}
	public USING(): TerminalNode {
		return this.getToken(PlSqlParser.USING, 0);
	}
	public INDEX(): TerminalNode {
		return this.getToken(PlSqlParser.INDEX, 0);
	}
	public NO(): TerminalNode {
		return this.getToken(PlSqlParser.NO, 0);
	}
	public create_mv_refresh(): Create_mv_refreshContext {
		return this.getTypedRuleContext(Create_mv_refreshContext, 0) as Create_mv_refreshContext;
	}
	public FOR(): TerminalNode {
		return this.getToken(PlSqlParser.FOR, 0);
	}
	public UPDATE(): TerminalNode {
		return this.getToken(PlSqlParser.UPDATE, 0);
	}
	public QUERY(): TerminalNode {
		return this.getToken(PlSqlParser.QUERY, 0);
	}
	public REWRITE(): TerminalNode {
		return this.getToken(PlSqlParser.REWRITE, 0);
	}
	public DISABLE(): TerminalNode {
		return this.getToken(PlSqlParser.DISABLE, 0);
	}
	public ENABLE(): TerminalNode {
		return this.getToken(PlSqlParser.ENABLE, 0);
	}
	public REDUCED(): TerminalNode {
		return this.getToken(PlSqlParser.REDUCED, 0);
	}
	public PRECISION(): TerminalNode {
		return this.getToken(PlSqlParser.PRECISION, 0);
	}
	public physical_properties(): Physical_propertiesContext {
		return this.getTypedRuleContext(Physical_propertiesContext, 0) as Physical_propertiesContext;
	}
	public parallel_clause(): Parallel_clauseContext {
		return this.getTypedRuleContext(Parallel_clauseContext, 0) as Parallel_clauseContext;
	}
	public build_clause(): Build_clauseContext {
		return this.getTypedRuleContext(Build_clauseContext, 0) as Build_clauseContext;
	}
	public WITH(): TerminalNode {
		return this.getToken(PlSqlParser.WITH, 0);
	}
	public WITHOUT(): TerminalNode {
		return this.getToken(PlSqlParser.WITHOUT, 0);
	}
	public CACHE(): TerminalNode {
		return this.getToken(PlSqlParser.CACHE, 0);
	}
	public NOCACHE(): TerminalNode {
		return this.getToken(PlSqlParser.NOCACHE, 0);
	}
	public physical_attributes_clause_list(): Physical_attributes_clauseContext[] {
		return this.getTypedRuleContexts(Physical_attributes_clauseContext) as Physical_attributes_clauseContext[];
	}
	public physical_attributes_clause(i: number): Physical_attributes_clauseContext {
		return this.getTypedRuleContext(Physical_attributes_clauseContext, i) as Physical_attributes_clauseContext;
	}
	public TABLESPACE_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.TABLESPACE);
	}
	public TABLESPACE(i: number): TerminalNode {
		return this.getToken(PlSqlParser.TABLESPACE, i);
	}
	public id_expression_list(): Id_expressionContext[] {
		return this.getTypedRuleContexts(Id_expressionContext) as Id_expressionContext[];
	}
	public id_expression(i: number): Id_expressionContext {
		return this.getTypedRuleContext(Id_expressionContext, i) as Id_expressionContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_create_materialized_view;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterCreate_materialized_view) {
	 		listener.enterCreate_materialized_view(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitCreate_materialized_view) {
	 		listener.exitCreate_materialized_view(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitCreate_materialized_view) {
			return visitor.visitCreate_materialized_view(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Create_mv_refreshContext extends ParserRuleContext {
	public _rb_segment!: Token;
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public NEVER(): TerminalNode {
		return this.getToken(PlSqlParser.NEVER, 0);
	}
	public REFRESH(): TerminalNode {
		return this.getToken(PlSqlParser.REFRESH, 0);
	}
	public ON_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.ON);
	}
	public ON(i: number): TerminalNode {
		return this.getToken(PlSqlParser.ON, i);
	}
	public WITH_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.WITH);
	}
	public WITH(i: number): TerminalNode {
		return this.getToken(PlSqlParser.WITH, i);
	}
	public USING_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.USING);
	}
	public USING(i: number): TerminalNode {
		return this.getToken(PlSqlParser.USING, i);
	}
	public CONSTRAINTS_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.CONSTRAINTS);
	}
	public CONSTRAINTS(i: number): TerminalNode {
		return this.getToken(PlSqlParser.CONSTRAINTS, i);
	}
	public FAST_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.FAST);
	}
	public FAST(i: number): TerminalNode {
		return this.getToken(PlSqlParser.FAST, i);
	}
	public COMPLETE_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMPLETE);
	}
	public COMPLETE(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMPLETE, i);
	}
	public FORCE_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.FORCE);
	}
	public FORCE(i: number): TerminalNode {
		return this.getToken(PlSqlParser.FORCE, i);
	}
	public DEMAND_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.DEMAND);
	}
	public DEMAND(i: number): TerminalNode {
		return this.getToken(PlSqlParser.DEMAND, i);
	}
	public COMMIT_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMIT);
	}
	public COMMIT(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMIT, i);
	}
	public ENFORCED_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.ENFORCED);
	}
	public ENFORCED(i: number): TerminalNode {
		return this.getToken(PlSqlParser.ENFORCED, i);
	}
	public TRUSTED_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.TRUSTED);
	}
	public TRUSTED(i: number): TerminalNode {
		return this.getToken(PlSqlParser.TRUSTED, i);
	}
	public START_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.START);
	}
	public START(i: number): TerminalNode {
		return this.getToken(PlSqlParser.START, i);
	}
	public NEXT_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.NEXT);
	}
	public NEXT(i: number): TerminalNode {
		return this.getToken(PlSqlParser.NEXT, i);
	}
	public PRIMARY_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.PRIMARY);
	}
	public PRIMARY(i: number): TerminalNode {
		return this.getToken(PlSqlParser.PRIMARY, i);
	}
	public KEY_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.KEY);
	}
	public KEY(i: number): TerminalNode {
		return this.getToken(PlSqlParser.KEY, i);
	}
	public ROWID_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.ROWID);
	}
	public ROWID(i: number): TerminalNode {
		return this.getToken(PlSqlParser.ROWID, i);
	}
	public DEFAULT_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.DEFAULT);
	}
	public DEFAULT(i: number): TerminalNode {
		return this.getToken(PlSqlParser.DEFAULT, i);
	}
	public ROLLBACK_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.ROLLBACK);
	}
	public ROLLBACK(i: number): TerminalNode {
		return this.getToken(PlSqlParser.ROLLBACK, i);
	}
	public SEGMENT_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.SEGMENT);
	}
	public SEGMENT(i: number): TerminalNode {
		return this.getToken(PlSqlParser.SEGMENT, i);
	}
	public REGULAR_ID_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.REGULAR_ID);
	}
	public REGULAR_ID(i: number): TerminalNode {
		return this.getToken(PlSqlParser.REGULAR_ID, i);
	}
	public MASTER_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.MASTER);
	}
	public MASTER(i: number): TerminalNode {
		return this.getToken(PlSqlParser.MASTER, i);
	}
	public LOCAL_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.LOCAL);
	}
	public LOCAL(i: number): TerminalNode {
		return this.getToken(PlSqlParser.LOCAL, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_create_mv_refresh;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterCreate_mv_refresh) {
	 		listener.enterCreate_mv_refresh(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitCreate_mv_refresh) {
	 		listener.exitCreate_mv_refresh(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitCreate_mv_refresh) {
			return visitor.visitCreate_mv_refresh(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Create_contextContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public CREATE(): TerminalNode {
		return this.getToken(PlSqlParser.CREATE, 0);
	}
	public CONTEXT(): TerminalNode {
		return this.getToken(PlSqlParser.CONTEXT, 0);
	}
	public oracle_namespace(): Oracle_namespaceContext {
		return this.getTypedRuleContext(Oracle_namespaceContext, 0) as Oracle_namespaceContext;
	}
	public USING(): TerminalNode {
		return this.getToken(PlSqlParser.USING, 0);
	}
	public package_name(): Package_nameContext {
		return this.getTypedRuleContext(Package_nameContext, 0) as Package_nameContext;
	}
	public SEMICOLON(): TerminalNode {
		return this.getToken(PlSqlParser.SEMICOLON, 0);
	}
	public OR(): TerminalNode {
		return this.getToken(PlSqlParser.OR, 0);
	}
	public REPLACE(): TerminalNode {
		return this.getToken(PlSqlParser.REPLACE, 0);
	}
	public schema_object_name(): Schema_object_nameContext {
		return this.getTypedRuleContext(Schema_object_nameContext, 0) as Schema_object_nameContext;
	}
	public PERIOD(): TerminalNode {
		return this.getToken(PlSqlParser.PERIOD, 0);
	}
	public INITIALIZED(): TerminalNode {
		return this.getToken(PlSqlParser.INITIALIZED, 0);
	}
	public ACCESSED(): TerminalNode {
		return this.getToken(PlSqlParser.ACCESSED, 0);
	}
	public GLOBALLY(): TerminalNode {
		return this.getToken(PlSqlParser.GLOBALLY, 0);
	}
	public EXTERNALLY(): TerminalNode {
		return this.getToken(PlSqlParser.EXTERNALLY, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_create_context;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterCreate_context) {
	 		listener.enterCreate_context(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitCreate_context) {
	 		listener.exitCreate_context(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitCreate_context) {
			return visitor.visitCreate_context(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Oracle_namespaceContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public id_expression(): Id_expressionContext {
		return this.getTypedRuleContext(Id_expressionContext, 0) as Id_expressionContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_oracle_namespace;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterOracle_namespace) {
	 		listener.enterOracle_namespace(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitOracle_namespace) {
	 		listener.exitOracle_namespace(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitOracle_namespace) {
			return visitor.visitOracle_namespace(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Create_clusterContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public CREATE(): TerminalNode {
		return this.getToken(PlSqlParser.CREATE, 0);
	}
	public CLUSTER(): TerminalNode {
		return this.getToken(PlSqlParser.CLUSTER, 0);
	}
	public cluster_name(): Cluster_nameContext {
		return this.getTypedRuleContext(Cluster_nameContext, 0) as Cluster_nameContext;
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public column_name_list(): Column_nameContext[] {
		return this.getTypedRuleContexts(Column_nameContext) as Column_nameContext[];
	}
	public column_name(i: number): Column_nameContext {
		return this.getTypedRuleContext(Column_nameContext, i) as Column_nameContext;
	}
	public datatype_list(): DatatypeContext[] {
		return this.getTypedRuleContexts(DatatypeContext) as DatatypeContext[];
	}
	public datatype(i: number): DatatypeContext {
		return this.getTypedRuleContext(DatatypeContext, i) as DatatypeContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public SEMICOLON(): TerminalNode {
		return this.getToken(PlSqlParser.SEMICOLON, 0);
	}
	public SORT_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.SORT);
	}
	public SORT(i: number): TerminalNode {
		return this.getToken(PlSqlParser.SORT, i);
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
	public physical_attributes_clause_list(): Physical_attributes_clauseContext[] {
		return this.getTypedRuleContexts(Physical_attributes_clauseContext) as Physical_attributes_clauseContext[];
	}
	public physical_attributes_clause(i: number): Physical_attributes_clauseContext {
		return this.getTypedRuleContext(Physical_attributes_clauseContext, i) as Physical_attributes_clauseContext;
	}
	public SIZE_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.SIZE);
	}
	public SIZE(i: number): TerminalNode {
		return this.getToken(PlSqlParser.SIZE, i);
	}
	public size_clause_list(): Size_clauseContext[] {
		return this.getTypedRuleContexts(Size_clauseContext) as Size_clauseContext[];
	}
	public size_clause(i: number): Size_clauseContext {
		return this.getTypedRuleContext(Size_clauseContext, i) as Size_clauseContext;
	}
	public TABLESPACE_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.TABLESPACE);
	}
	public TABLESPACE(i: number): TerminalNode {
		return this.getToken(PlSqlParser.TABLESPACE, i);
	}
	public tablespace_list(): TablespaceContext[] {
		return this.getTypedRuleContexts(TablespaceContext) as TablespaceContext[];
	}
	public tablespace(i: number): TablespaceContext {
		return this.getTypedRuleContext(TablespaceContext, i) as TablespaceContext;
	}
	public INDEX_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.INDEX);
	}
	public INDEX(i: number): TerminalNode {
		return this.getToken(PlSqlParser.INDEX, i);
	}
	public HASHKEYS_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.HASHKEYS);
	}
	public HASHKEYS(i: number): TerminalNode {
		return this.getToken(PlSqlParser.HASHKEYS, i);
	}
	public UNSIGNED_INTEGER_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.UNSIGNED_INTEGER);
	}
	public UNSIGNED_INTEGER(i: number): TerminalNode {
		return this.getToken(PlSqlParser.UNSIGNED_INTEGER, i);
	}
	public parallel_clause(): Parallel_clauseContext {
		return this.getTypedRuleContext(Parallel_clauseContext, 0) as Parallel_clauseContext;
	}
	public ROWDEPENDENCIES(): TerminalNode {
		return this.getToken(PlSqlParser.ROWDEPENDENCIES, 0);
	}
	public NOROWDEPENDENCIES(): TerminalNode {
		return this.getToken(PlSqlParser.NOROWDEPENDENCIES, 0);
	}
	public CACHE(): TerminalNode {
		return this.getToken(PlSqlParser.CACHE, 0);
	}
	public NOCACHE(): TerminalNode {
		return this.getToken(PlSqlParser.NOCACHE, 0);
	}
	public SINGLE_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.SINGLE);
	}
	public SINGLE(i: number): TerminalNode {
		return this.getToken(PlSqlParser.SINGLE, i);
	}
	public TABLE_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.TABLE);
	}
	public TABLE(i: number): TerminalNode {
		return this.getToken(PlSqlParser.TABLE, i);
	}
	public HASH_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.HASH);
	}
	public HASH(i: number): TerminalNode {
		return this.getToken(PlSqlParser.HASH, i);
	}
	public IS_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.IS);
	}
	public IS(i: number): TerminalNode {
		return this.getToken(PlSqlParser.IS, i);
	}
	public expression_list(): ExpressionContext[] {
		return this.getTypedRuleContexts(ExpressionContext) as ExpressionContext[];
	}
	public expression(i: number): ExpressionContext {
		return this.getTypedRuleContext(ExpressionContext, i) as ExpressionContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_create_cluster;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterCreate_cluster) {
	 		listener.enterCreate_cluster(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitCreate_cluster) {
	 		listener.exitCreate_cluster(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitCreate_cluster) {
			return visitor.visitCreate_cluster(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Create_tableContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public CREATE(): TerminalNode {
		return this.getToken(PlSqlParser.CREATE, 0);
	}
	public TABLE(): TerminalNode {
		return this.getToken(PlSqlParser.TABLE, 0);
	}
	public tableview_name(): Tableview_nameContext {
		return this.getTypedRuleContext(Tableview_nameContext, 0) as Tableview_nameContext;
	}
	public SEMICOLON(): TerminalNode {
		return this.getToken(PlSqlParser.SEMICOLON, 0);
	}
	public relational_table(): Relational_tableContext {
		return this.getTypedRuleContext(Relational_tableContext, 0) as Relational_tableContext;
	}
	public object_table(): Object_tableContext {
		return this.getTypedRuleContext(Object_tableContext, 0) as Object_tableContext;
	}
	public xmltype_table(): Xmltype_tableContext {
		return this.getTypedRuleContext(Xmltype_tableContext, 0) as Xmltype_tableContext;
	}
	public GLOBAL(): TerminalNode {
		return this.getToken(PlSqlParser.GLOBAL, 0);
	}
	public TEMPORARY(): TerminalNode {
		return this.getToken(PlSqlParser.TEMPORARY, 0);
	}
	public AS(): TerminalNode {
		return this.getToken(PlSqlParser.AS, 0);
	}
	public select_only_statement(): Select_only_statementContext {
		return this.getTypedRuleContext(Select_only_statementContext, 0) as Select_only_statementContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_create_table;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterCreate_table) {
	 		listener.enterCreate_table(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitCreate_table) {
	 		listener.exitCreate_table(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitCreate_table) {
			return visitor.visitCreate_table(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Xmltype_tableContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public OF(): TerminalNode {
		return this.getToken(PlSqlParser.OF, 0);
	}
	public XMLTYPE_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.XMLTYPE);
	}
	public XMLTYPE(i: number): TerminalNode {
		return this.getToken(PlSqlParser.XMLTYPE, i);
	}
	public LEFT_PAREN_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.LEFT_PAREN);
	}
	public LEFT_PAREN(i: number): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, i);
	}
	public object_properties(): Object_propertiesContext {
		return this.getTypedRuleContext(Object_propertiesContext, 0) as Object_propertiesContext;
	}
	public RIGHT_PAREN_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.RIGHT_PAREN);
	}
	public RIGHT_PAREN(i: number): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, i);
	}
	public xmltype_storage(): Xmltype_storageContext {
		return this.getTypedRuleContext(Xmltype_storageContext, 0) as Xmltype_storageContext;
	}
	public xmlschema_spec(): Xmlschema_specContext {
		return this.getTypedRuleContext(Xmlschema_specContext, 0) as Xmlschema_specContext;
	}
	public xmltype_virtual_columns(): Xmltype_virtual_columnsContext {
		return this.getTypedRuleContext(Xmltype_virtual_columnsContext, 0) as Xmltype_virtual_columnsContext;
	}
	public ON(): TerminalNode {
		return this.getToken(PlSqlParser.ON, 0);
	}
	public COMMIT(): TerminalNode {
		return this.getToken(PlSqlParser.COMMIT, 0);
	}
	public ROWS(): TerminalNode {
		return this.getToken(PlSqlParser.ROWS, 0);
	}
	public oid_clause(): Oid_clauseContext {
		return this.getTypedRuleContext(Oid_clauseContext, 0) as Oid_clauseContext;
	}
	public oid_index_clause(): Oid_index_clauseContext {
		return this.getTypedRuleContext(Oid_index_clauseContext, 0) as Oid_index_clauseContext;
	}
	public physical_properties(): Physical_propertiesContext {
		return this.getTypedRuleContext(Physical_propertiesContext, 0) as Physical_propertiesContext;
	}
	public column_properties(): Column_propertiesContext {
		return this.getTypedRuleContext(Column_propertiesContext, 0) as Column_propertiesContext;
	}
	public table_partitioning_clauses(): Table_partitioning_clausesContext {
		return this.getTypedRuleContext(Table_partitioning_clausesContext, 0) as Table_partitioning_clausesContext;
	}
	public RESULT_CACHE(): TerminalNode {
		return this.getToken(PlSqlParser.RESULT_CACHE, 0);
	}
	public MODE(): TerminalNode {
		return this.getToken(PlSqlParser.MODE, 0);
	}
	public parallel_clause(): Parallel_clauseContext {
		return this.getTypedRuleContext(Parallel_clauseContext, 0) as Parallel_clauseContext;
	}
	public row_movement_clause(): Row_movement_clauseContext {
		return this.getTypedRuleContext(Row_movement_clauseContext, 0) as Row_movement_clauseContext;
	}
	public flashback_archive_clause(): Flashback_archive_clauseContext {
		return this.getTypedRuleContext(Flashback_archive_clauseContext, 0) as Flashback_archive_clauseContext;
	}
	public DELETE(): TerminalNode {
		return this.getToken(PlSqlParser.DELETE, 0);
	}
	public PRESERVE(): TerminalNode {
		return this.getToken(PlSqlParser.PRESERVE, 0);
	}
	public CACHE(): TerminalNode {
		return this.getToken(PlSqlParser.CACHE, 0);
	}
	public NOCACHE(): TerminalNode {
		return this.getToken(PlSqlParser.NOCACHE, 0);
	}
	public DEFAULT(): TerminalNode {
		return this.getToken(PlSqlParser.DEFAULT, 0);
	}
	public FORCE(): TerminalNode {
		return this.getToken(PlSqlParser.FORCE, 0);
	}
	public ROWDEPENDENCIES(): TerminalNode {
		return this.getToken(PlSqlParser.ROWDEPENDENCIES, 0);
	}
	public NOROWDEPENDENCIES(): TerminalNode {
		return this.getToken(PlSqlParser.NOROWDEPENDENCIES, 0);
	}
	public enable_disable_clause_list(): Enable_disable_clauseContext[] {
		return this.getTypedRuleContexts(Enable_disable_clauseContext) as Enable_disable_clauseContext[];
	}
	public enable_disable_clause(i: number): Enable_disable_clauseContext {
		return this.getTypedRuleContext(Enable_disable_clauseContext, i) as Enable_disable_clauseContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_xmltype_table;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterXmltype_table) {
	 		listener.enterXmltype_table(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitXmltype_table) {
	 		listener.exitXmltype_table(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitXmltype_table) {
			return visitor.visitXmltype_table(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Xmltype_virtual_columnsContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public VIRTUAL(): TerminalNode {
		return this.getToken(PlSqlParser.VIRTUAL, 0);
	}
	public COLUMNS(): TerminalNode {
		return this.getToken(PlSqlParser.COLUMNS, 0);
	}
	public LEFT_PAREN_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.LEFT_PAREN);
	}
	public LEFT_PAREN(i: number): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, i);
	}
	public column_name_list(): Column_nameContext[] {
		return this.getTypedRuleContexts(Column_nameContext) as Column_nameContext[];
	}
	public column_name(i: number): Column_nameContext {
		return this.getTypedRuleContext(Column_nameContext, i) as Column_nameContext;
	}
	public AS_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.AS);
	}
	public AS(i: number): TerminalNode {
		return this.getToken(PlSqlParser.AS, i);
	}
	public expression_list(): ExpressionContext[] {
		return this.getTypedRuleContexts(ExpressionContext) as ExpressionContext[];
	}
	public expression(i: number): ExpressionContext {
		return this.getTypedRuleContext(ExpressionContext, i) as ExpressionContext;
	}
	public RIGHT_PAREN_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.RIGHT_PAREN);
	}
	public RIGHT_PAREN(i: number): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, i);
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_xmltype_virtual_columns;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterXmltype_virtual_columns) {
	 		listener.enterXmltype_virtual_columns(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitXmltype_virtual_columns) {
	 		listener.exitXmltype_virtual_columns(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitXmltype_virtual_columns) {
			return visitor.visitXmltype_virtual_columns(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Xmltype_column_propertiesContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public XMLTYPE(): TerminalNode {
		return this.getToken(PlSqlParser.XMLTYPE, 0);
	}
	public column_name(): Column_nameContext {
		return this.getTypedRuleContext(Column_nameContext, 0) as Column_nameContext;
	}
	public COLUMN(): TerminalNode {
		return this.getToken(PlSqlParser.COLUMN, 0);
	}
	public xmltype_storage(): Xmltype_storageContext {
		return this.getTypedRuleContext(Xmltype_storageContext, 0) as Xmltype_storageContext;
	}
	public xmlschema_spec(): Xmlschema_specContext {
		return this.getTypedRuleContext(Xmlschema_specContext, 0) as Xmlschema_specContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_xmltype_column_properties;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterXmltype_column_properties) {
	 		listener.enterXmltype_column_properties(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitXmltype_column_properties) {
	 		listener.exitXmltype_column_properties(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitXmltype_column_properties) {
			return visitor.visitXmltype_column_properties(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Xmltype_storageContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public STORE(): TerminalNode {
		return this.getToken(PlSqlParser.STORE, 0);
	}
	public AS(): TerminalNode {
		return this.getToken(PlSqlParser.AS, 0);
	}
	public OBJECT(): TerminalNode {
		return this.getToken(PlSqlParser.OBJECT, 0);
	}
	public RELATIONAL(): TerminalNode {
		return this.getToken(PlSqlParser.RELATIONAL, 0);
	}
	public CLOB(): TerminalNode {
		return this.getToken(PlSqlParser.CLOB, 0);
	}
	public BINARY(): TerminalNode {
		return this.getToken(PlSqlParser.BINARY, 0);
	}
	public XML(): TerminalNode {
		return this.getToken(PlSqlParser.XML, 0);
	}
	public lob_segname(): Lob_segnameContext {
		return this.getTypedRuleContext(Lob_segnameContext, 0) as Lob_segnameContext;
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public lob_parameters(): Lob_parametersContext {
		return this.getTypedRuleContext(Lob_parametersContext, 0) as Lob_parametersContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public SECUREFILE(): TerminalNode {
		return this.getToken(PlSqlParser.SECUREFILE, 0);
	}
	public BASICFILE(): TerminalNode {
		return this.getToken(PlSqlParser.BASICFILE, 0);
	}
	public VARRAYS(): TerminalNode {
		return this.getToken(PlSqlParser.VARRAYS, 0);
	}
	public LOBS(): TerminalNode {
		return this.getToken(PlSqlParser.LOBS, 0);
	}
	public TABLES(): TerminalNode {
		return this.getToken(PlSqlParser.TABLES, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_xmltype_storage;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterXmltype_storage) {
	 		listener.enterXmltype_storage(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitXmltype_storage) {
	 		listener.exitXmltype_storage(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitXmltype_storage) {
			return visitor.visitXmltype_storage(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Xmlschema_specContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public ELEMENT(): TerminalNode {
		return this.getToken(PlSqlParser.ELEMENT, 0);
	}
	public DELIMITED_ID_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.DELIMITED_ID);
	}
	public DELIMITED_ID(i: number): TerminalNode {
		return this.getToken(PlSqlParser.DELIMITED_ID, i);
	}
	public XMLSCHEMA(): TerminalNode {
		return this.getToken(PlSqlParser.XMLSCHEMA, 0);
	}
	public allow_or_disallow_list(): Allow_or_disallowContext[] {
		return this.getTypedRuleContexts(Allow_or_disallowContext) as Allow_or_disallowContext[];
	}
	public allow_or_disallow(i: number): Allow_or_disallowContext {
		return this.getTypedRuleContext(Allow_or_disallowContext, i) as Allow_or_disallowContext;
	}
	public NONSCHEMA(): TerminalNode {
		return this.getToken(PlSqlParser.NONSCHEMA, 0);
	}
	public ANYSCHEMA(): TerminalNode {
		return this.getToken(PlSqlParser.ANYSCHEMA, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_xmlschema_spec;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterXmlschema_spec) {
	 		listener.enterXmlschema_spec(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitXmlschema_spec) {
	 		listener.exitXmlschema_spec(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitXmlschema_spec) {
			return visitor.visitXmlschema_spec(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Object_tableContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public OF(): TerminalNode {
		return this.getToken(PlSqlParser.OF, 0);
	}
	public type_name(): Type_nameContext {
		return this.getTypedRuleContext(Type_nameContext, 0) as Type_nameContext;
	}
	public object_table_substitution(): Object_table_substitutionContext {
		return this.getTypedRuleContext(Object_table_substitutionContext, 0) as Object_table_substitutionContext;
	}
	public LEFT_PAREN_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.LEFT_PAREN);
	}
	public LEFT_PAREN(i: number): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, i);
	}
	public object_properties_list(): Object_propertiesContext[] {
		return this.getTypedRuleContexts(Object_propertiesContext) as Object_propertiesContext[];
	}
	public object_properties(i: number): Object_propertiesContext {
		return this.getTypedRuleContext(Object_propertiesContext, i) as Object_propertiesContext;
	}
	public RIGHT_PAREN_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.RIGHT_PAREN);
	}
	public RIGHT_PAREN(i: number): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, i);
	}
	public ON(): TerminalNode {
		return this.getToken(PlSqlParser.ON, 0);
	}
	public COMMIT(): TerminalNode {
		return this.getToken(PlSqlParser.COMMIT, 0);
	}
	public ROWS(): TerminalNode {
		return this.getToken(PlSqlParser.ROWS, 0);
	}
	public oid_clause(): Oid_clauseContext {
		return this.getTypedRuleContext(Oid_clauseContext, 0) as Oid_clauseContext;
	}
	public oid_index_clause(): Oid_index_clauseContext {
		return this.getTypedRuleContext(Oid_index_clauseContext, 0) as Oid_index_clauseContext;
	}
	public physical_properties(): Physical_propertiesContext {
		return this.getTypedRuleContext(Physical_propertiesContext, 0) as Physical_propertiesContext;
	}
	public column_properties(): Column_propertiesContext {
		return this.getTypedRuleContext(Column_propertiesContext, 0) as Column_propertiesContext;
	}
	public table_partitioning_clauses(): Table_partitioning_clausesContext {
		return this.getTypedRuleContext(Table_partitioning_clausesContext, 0) as Table_partitioning_clausesContext;
	}
	public RESULT_CACHE(): TerminalNode {
		return this.getToken(PlSqlParser.RESULT_CACHE, 0);
	}
	public MODE(): TerminalNode {
		return this.getToken(PlSqlParser.MODE, 0);
	}
	public parallel_clause(): Parallel_clauseContext {
		return this.getTypedRuleContext(Parallel_clauseContext, 0) as Parallel_clauseContext;
	}
	public row_movement_clause(): Row_movement_clauseContext {
		return this.getTypedRuleContext(Row_movement_clauseContext, 0) as Row_movement_clauseContext;
	}
	public flashback_archive_clause(): Flashback_archive_clauseContext {
		return this.getTypedRuleContext(Flashback_archive_clauseContext, 0) as Flashback_archive_clauseContext;
	}
	public DELETE(): TerminalNode {
		return this.getToken(PlSqlParser.DELETE, 0);
	}
	public PRESERVE(): TerminalNode {
		return this.getToken(PlSqlParser.PRESERVE, 0);
	}
	public CACHE(): TerminalNode {
		return this.getToken(PlSqlParser.CACHE, 0);
	}
	public NOCACHE(): TerminalNode {
		return this.getToken(PlSqlParser.NOCACHE, 0);
	}
	public DEFAULT(): TerminalNode {
		return this.getToken(PlSqlParser.DEFAULT, 0);
	}
	public FORCE(): TerminalNode {
		return this.getToken(PlSqlParser.FORCE, 0);
	}
	public ROWDEPENDENCIES(): TerminalNode {
		return this.getToken(PlSqlParser.ROWDEPENDENCIES, 0);
	}
	public NOROWDEPENDENCIES(): TerminalNode {
		return this.getToken(PlSqlParser.NOROWDEPENDENCIES, 0);
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
	public enable_disable_clause_list(): Enable_disable_clauseContext[] {
		return this.getTypedRuleContexts(Enable_disable_clauseContext) as Enable_disable_clauseContext[];
	}
	public enable_disable_clause(i: number): Enable_disable_clauseContext {
		return this.getTypedRuleContext(Enable_disable_clauseContext, i) as Enable_disable_clauseContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_object_table;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterObject_table) {
	 		listener.enterObject_table(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitObject_table) {
	 		listener.exitObject_table(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitObject_table) {
			return visitor.visitObject_table(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Oid_index_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public OIDINDEX(): TerminalNode {
		return this.getToken(PlSqlParser.OIDINDEX, 0);
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public index_name(): Index_nameContext {
		return this.getTypedRuleContext(Index_nameContext, 0) as Index_nameContext;
	}
	public physical_attributes_clause_list(): Physical_attributes_clauseContext[] {
		return this.getTypedRuleContexts(Physical_attributes_clauseContext) as Physical_attributes_clauseContext[];
	}
	public physical_attributes_clause(i: number): Physical_attributes_clauseContext {
		return this.getTypedRuleContext(Physical_attributes_clauseContext, i) as Physical_attributes_clauseContext;
	}
	public TABLESPACE_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.TABLESPACE);
	}
	public TABLESPACE(i: number): TerminalNode {
		return this.getToken(PlSqlParser.TABLESPACE, i);
	}
	public tablespace_list(): TablespaceContext[] {
		return this.getTypedRuleContexts(TablespaceContext) as TablespaceContext[];
	}
	public tablespace(i: number): TablespaceContext {
		return this.getTypedRuleContext(TablespaceContext, i) as TablespaceContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_oid_index_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterOid_index_clause) {
	 		listener.enterOid_index_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitOid_index_clause) {
	 		listener.exitOid_index_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitOid_index_clause) {
			return visitor.visitOid_index_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Oid_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public OBJECT(): TerminalNode {
		return this.getToken(PlSqlParser.OBJECT, 0);
	}
	public IDENTIFIER(): TerminalNode {
		return this.getToken(PlSqlParser.IDENTIFIER, 0);
	}
	public IS(): TerminalNode {
		return this.getToken(PlSqlParser.IS, 0);
	}
	public SYSTEM(): TerminalNode {
		return this.getToken(PlSqlParser.SYSTEM, 0);
	}
	public GENERATED(): TerminalNode {
		return this.getToken(PlSqlParser.GENERATED, 0);
	}
	public PRIMARY(): TerminalNode {
		return this.getToken(PlSqlParser.PRIMARY, 0);
	}
	public KEY(): TerminalNode {
		return this.getToken(PlSqlParser.KEY, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_oid_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterOid_clause) {
	 		listener.enterOid_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitOid_clause) {
	 		listener.exitOid_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitOid_clause) {
			return visitor.visitOid_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Object_propertiesContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public column_name(): Column_nameContext {
		return this.getTypedRuleContext(Column_nameContext, 0) as Column_nameContext;
	}
	public attribute_name(): Attribute_nameContext {
		return this.getTypedRuleContext(Attribute_nameContext, 0) as Attribute_nameContext;
	}
	public DEFAULT(): TerminalNode {
		return this.getToken(PlSqlParser.DEFAULT, 0);
	}
	public expression(): ExpressionContext {
		return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext;
	}
	public inline_constraint_list(): Inline_constraintContext[] {
		return this.getTypedRuleContexts(Inline_constraintContext) as Inline_constraintContext[];
	}
	public inline_constraint(i: number): Inline_constraintContext {
		return this.getTypedRuleContext(Inline_constraintContext, i) as Inline_constraintContext;
	}
	public inline_ref_constraint(): Inline_ref_constraintContext {
		return this.getTypedRuleContext(Inline_ref_constraintContext, 0) as Inline_ref_constraintContext;
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
	public out_of_line_constraint(): Out_of_line_constraintContext {
		return this.getTypedRuleContext(Out_of_line_constraintContext, 0) as Out_of_line_constraintContext;
	}
	public out_of_line_ref_constraint(): Out_of_line_ref_constraintContext {
		return this.getTypedRuleContext(Out_of_line_ref_constraintContext, 0) as Out_of_line_ref_constraintContext;
	}
	public supplemental_logging_props(): Supplemental_logging_propsContext {
		return this.getTypedRuleContext(Supplemental_logging_propsContext, 0) as Supplemental_logging_propsContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_object_properties;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterObject_properties) {
	 		listener.enterObject_properties(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitObject_properties) {
	 		listener.exitObject_properties(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitObject_properties) {
			return visitor.visitObject_properties(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Object_table_substitutionContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public SUBSTITUTABLE(): TerminalNode {
		return this.getToken(PlSqlParser.SUBSTITUTABLE, 0);
	}
	public AT(): TerminalNode {
		return this.getToken(PlSqlParser.AT, 0);
	}
	public ALL(): TerminalNode {
		return this.getToken(PlSqlParser.ALL, 0);
	}
	public LEVELS(): TerminalNode {
		return this.getToken(PlSqlParser.LEVELS, 0);
	}
	public NOT(): TerminalNode {
		return this.getToken(PlSqlParser.NOT, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_object_table_substitution;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterObject_table_substitution) {
	 		listener.enterObject_table_substitution(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitObject_table_substitution) {
	 		listener.exitObject_table_substitution(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitObject_table_substitution) {
			return visitor.visitObject_table_substitution(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Relational_tableContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public LEFT_PAREN_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.LEFT_PAREN);
	}
	public LEFT_PAREN(i: number): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, i);
	}
	public relational_property_list(): Relational_propertyContext[] {
		return this.getTypedRuleContexts(Relational_propertyContext) as Relational_propertyContext[];
	}
	public relational_property(i: number): Relational_propertyContext {
		return this.getTypedRuleContext(Relational_propertyContext, i) as Relational_propertyContext;
	}
	public RIGHT_PAREN_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.RIGHT_PAREN);
	}
	public RIGHT_PAREN(i: number): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, i);
	}
	public ON(): TerminalNode {
		return this.getToken(PlSqlParser.ON, 0);
	}
	public COMMIT(): TerminalNode {
		return this.getToken(PlSqlParser.COMMIT, 0);
	}
	public ROWS(): TerminalNode {
		return this.getToken(PlSqlParser.ROWS, 0);
	}
	public physical_properties(): Physical_propertiesContext {
		return this.getTypedRuleContext(Physical_propertiesContext, 0) as Physical_propertiesContext;
	}
	public column_properties(): Column_propertiesContext {
		return this.getTypedRuleContext(Column_propertiesContext, 0) as Column_propertiesContext;
	}
	public table_partitioning_clauses(): Table_partitioning_clausesContext {
		return this.getTypedRuleContext(Table_partitioning_clausesContext, 0) as Table_partitioning_clausesContext;
	}
	public RESULT_CACHE(): TerminalNode {
		return this.getToken(PlSqlParser.RESULT_CACHE, 0);
	}
	public MODE(): TerminalNode {
		return this.getToken(PlSqlParser.MODE, 0);
	}
	public parallel_clause(): Parallel_clauseContext {
		return this.getTypedRuleContext(Parallel_clauseContext, 0) as Parallel_clauseContext;
	}
	public row_movement_clause(): Row_movement_clauseContext {
		return this.getTypedRuleContext(Row_movement_clauseContext, 0) as Row_movement_clauseContext;
	}
	public flashback_archive_clause(): Flashback_archive_clauseContext {
		return this.getTypedRuleContext(Flashback_archive_clauseContext, 0) as Flashback_archive_clauseContext;
	}
	public DELETE(): TerminalNode {
		return this.getToken(PlSqlParser.DELETE, 0);
	}
	public PRESERVE(): TerminalNode {
		return this.getToken(PlSqlParser.PRESERVE, 0);
	}
	public CACHE(): TerminalNode {
		return this.getToken(PlSqlParser.CACHE, 0);
	}
	public NOCACHE(): TerminalNode {
		return this.getToken(PlSqlParser.NOCACHE, 0);
	}
	public DEFAULT(): TerminalNode {
		return this.getToken(PlSqlParser.DEFAULT, 0);
	}
	public FORCE(): TerminalNode {
		return this.getToken(PlSqlParser.FORCE, 0);
	}
	public ROWDEPENDENCIES(): TerminalNode {
		return this.getToken(PlSqlParser.ROWDEPENDENCIES, 0);
	}
	public NOROWDEPENDENCIES(): TerminalNode {
		return this.getToken(PlSqlParser.NOROWDEPENDENCIES, 0);
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
	public enable_disable_clause_list(): Enable_disable_clauseContext[] {
		return this.getTypedRuleContexts(Enable_disable_clauseContext) as Enable_disable_clauseContext[];
	}
	public enable_disable_clause(i: number): Enable_disable_clauseContext {
		return this.getTypedRuleContext(Enable_disable_clauseContext, i) as Enable_disable_clauseContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_relational_table;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterRelational_table) {
	 		listener.enterRelational_table(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitRelational_table) {
	 		listener.exitRelational_table(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitRelational_table) {
			return visitor.visitRelational_table(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Relational_propertyContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public column_definition(): Column_definitionContext {
		return this.getTypedRuleContext(Column_definitionContext, 0) as Column_definitionContext;
	}
	public virtual_column_definition(): Virtual_column_definitionContext {
		return this.getTypedRuleContext(Virtual_column_definitionContext, 0) as Virtual_column_definitionContext;
	}
	public out_of_line_constraint(): Out_of_line_constraintContext {
		return this.getTypedRuleContext(Out_of_line_constraintContext, 0) as Out_of_line_constraintContext;
	}
	public out_of_line_ref_constraint(): Out_of_line_ref_constraintContext {
		return this.getTypedRuleContext(Out_of_line_ref_constraintContext, 0) as Out_of_line_ref_constraintContext;
	}
	public supplemental_logging_props(): Supplemental_logging_propsContext {
		return this.getTypedRuleContext(Supplemental_logging_propsContext, 0) as Supplemental_logging_propsContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_relational_property;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterRelational_property) {
	 		listener.enterRelational_property(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitRelational_property) {
	 		listener.exitRelational_property(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitRelational_property) {
			return visitor.visitRelational_property(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Table_partitioning_clausesContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public range_partitions(): Range_partitionsContext {
		return this.getTypedRuleContext(Range_partitionsContext, 0) as Range_partitionsContext;
	}
	public list_partitions(): List_partitionsContext {
		return this.getTypedRuleContext(List_partitionsContext, 0) as List_partitionsContext;
	}
	public hash_partitions(): Hash_partitionsContext {
		return this.getTypedRuleContext(Hash_partitionsContext, 0) as Hash_partitionsContext;
	}
	public composite_range_partitions(): Composite_range_partitionsContext {
		return this.getTypedRuleContext(Composite_range_partitionsContext, 0) as Composite_range_partitionsContext;
	}
	public composite_list_partitions(): Composite_list_partitionsContext {
		return this.getTypedRuleContext(Composite_list_partitionsContext, 0) as Composite_list_partitionsContext;
	}
	public composite_hash_partitions(): Composite_hash_partitionsContext {
		return this.getTypedRuleContext(Composite_hash_partitionsContext, 0) as Composite_hash_partitionsContext;
	}
	public reference_partitioning(): Reference_partitioningContext {
		return this.getTypedRuleContext(Reference_partitioningContext, 0) as Reference_partitioningContext;
	}
	public system_partitioning(): System_partitioningContext {
		return this.getTypedRuleContext(System_partitioningContext, 0) as System_partitioningContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_table_partitioning_clauses;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterTable_partitioning_clauses) {
	 		listener.enterTable_partitioning_clauses(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitTable_partitioning_clauses) {
	 		listener.exitTable_partitioning_clauses(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitTable_partitioning_clauses) {
			return visitor.visitTable_partitioning_clauses(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Range_partitionsContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public PARTITION_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.PARTITION);
	}
	public PARTITION(i: number): TerminalNode {
		return this.getToken(PlSqlParser.PARTITION, i);
	}
	public BY(): TerminalNode {
		return this.getToken(PlSqlParser.BY, 0);
	}
	public RANGE(): TerminalNode {
		return this.getToken(PlSqlParser.RANGE, 0);
	}
	public LEFT_PAREN_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.LEFT_PAREN);
	}
	public LEFT_PAREN(i: number): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, i);
	}
	public column_name_list(): Column_nameContext[] {
		return this.getTypedRuleContexts(Column_nameContext) as Column_nameContext[];
	}
	public column_name(i: number): Column_nameContext {
		return this.getTypedRuleContext(Column_nameContext, i) as Column_nameContext;
	}
	public RIGHT_PAREN_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.RIGHT_PAREN);
	}
	public RIGHT_PAREN(i: number): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, i);
	}
	public range_values_clause_list(): Range_values_clauseContext[] {
		return this.getTypedRuleContexts(Range_values_clauseContext) as Range_values_clauseContext[];
	}
	public range_values_clause(i: number): Range_values_clauseContext {
		return this.getTypedRuleContext(Range_values_clauseContext, i) as Range_values_clauseContext;
	}
	public table_partition_description_list(): Table_partition_descriptionContext[] {
		return this.getTypedRuleContexts(Table_partition_descriptionContext) as Table_partition_descriptionContext[];
	}
	public table_partition_description(i: number): Table_partition_descriptionContext {
		return this.getTypedRuleContext(Table_partition_descriptionContext, i) as Table_partition_descriptionContext;
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
	public INTERVAL(): TerminalNode {
		return this.getToken(PlSqlParser.INTERVAL, 0);
	}
	public expression(): ExpressionContext {
		return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext;
	}
	public partition_name_list(): Partition_nameContext[] {
		return this.getTypedRuleContexts(Partition_nameContext) as Partition_nameContext[];
	}
	public partition_name(i: number): Partition_nameContext {
		return this.getTypedRuleContext(Partition_nameContext, i) as Partition_nameContext;
	}
	public STORE(): TerminalNode {
		return this.getToken(PlSqlParser.STORE, 0);
	}
	public IN(): TerminalNode {
		return this.getToken(PlSqlParser.IN, 0);
	}
	public tablespace_list(): TablespaceContext[] {
		return this.getTypedRuleContexts(TablespaceContext) as TablespaceContext[];
	}
	public tablespace(i: number): TablespaceContext {
		return this.getTypedRuleContext(TablespaceContext, i) as TablespaceContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_range_partitions;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterRange_partitions) {
	 		listener.enterRange_partitions(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitRange_partitions) {
	 		listener.exitRange_partitions(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitRange_partitions) {
			return visitor.visitRange_partitions(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class List_partitionsContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public PARTITION_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.PARTITION);
	}
	public PARTITION(i: number): TerminalNode {
		return this.getToken(PlSqlParser.PARTITION, i);
	}
	public BY(): TerminalNode {
		return this.getToken(PlSqlParser.BY, 0);
	}
	public LIST(): TerminalNode {
		return this.getToken(PlSqlParser.LIST, 0);
	}
	public LEFT_PAREN_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.LEFT_PAREN);
	}
	public LEFT_PAREN(i: number): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, i);
	}
	public column_name(): Column_nameContext {
		return this.getTypedRuleContext(Column_nameContext, 0) as Column_nameContext;
	}
	public RIGHT_PAREN_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.RIGHT_PAREN);
	}
	public RIGHT_PAREN(i: number): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, i);
	}
	public list_values_clause_list(): List_values_clauseContext[] {
		return this.getTypedRuleContexts(List_values_clauseContext) as List_values_clauseContext[];
	}
	public list_values_clause(i: number): List_values_clauseContext {
		return this.getTypedRuleContext(List_values_clauseContext, i) as List_values_clauseContext;
	}
	public table_partition_description_list(): Table_partition_descriptionContext[] {
		return this.getTypedRuleContexts(Table_partition_descriptionContext) as Table_partition_descriptionContext[];
	}
	public table_partition_description(i: number): Table_partition_descriptionContext {
		return this.getTypedRuleContext(Table_partition_descriptionContext, i) as Table_partition_descriptionContext;
	}
	public partition_name_list(): Partition_nameContext[] {
		return this.getTypedRuleContexts(Partition_nameContext) as Partition_nameContext[];
	}
	public partition_name(i: number): Partition_nameContext {
		return this.getTypedRuleContext(Partition_nameContext, i) as Partition_nameContext;
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_list_partitions;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterList_partitions) {
	 		listener.enterList_partitions(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitList_partitions) {
	 		listener.exitList_partitions(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitList_partitions) {
			return visitor.visitList_partitions(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Hash_partitionsContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public PARTITION(): TerminalNode {
		return this.getToken(PlSqlParser.PARTITION, 0);
	}
	public BY(): TerminalNode {
		return this.getToken(PlSqlParser.BY, 0);
	}
	public HASH(): TerminalNode {
		return this.getToken(PlSqlParser.HASH, 0);
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public column_name_list(): Column_nameContext[] {
		return this.getTypedRuleContexts(Column_nameContext) as Column_nameContext[];
	}
	public column_name(i: number): Column_nameContext {
		return this.getTypedRuleContext(Column_nameContext, i) as Column_nameContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public individual_hash_partitions(): Individual_hash_partitionsContext {
		return this.getTypedRuleContext(Individual_hash_partitionsContext, 0) as Individual_hash_partitionsContext;
	}
	public hash_partitions_by_quantity(): Hash_partitions_by_quantityContext {
		return this.getTypedRuleContext(Hash_partitions_by_quantityContext, 0) as Hash_partitions_by_quantityContext;
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_hash_partitions;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterHash_partitions) {
	 		listener.enterHash_partitions(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitHash_partitions) {
	 		listener.exitHash_partitions(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitHash_partitions) {
			return visitor.visitHash_partitions(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Individual_hash_partitionsContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public PARTITION_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.PARTITION);
	}
	public PARTITION(i: number): TerminalNode {
		return this.getToken(PlSqlParser.PARTITION, i);
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public partition_name_list(): Partition_nameContext[] {
		return this.getTypedRuleContexts(Partition_nameContext) as Partition_nameContext[];
	}
	public partition_name(i: number): Partition_nameContext {
		return this.getTypedRuleContext(Partition_nameContext, i) as Partition_nameContext;
	}
	public partitioning_storage_clause_list(): Partitioning_storage_clauseContext[] {
		return this.getTypedRuleContexts(Partitioning_storage_clauseContext) as Partitioning_storage_clauseContext[];
	}
	public partitioning_storage_clause(i: number): Partitioning_storage_clauseContext {
		return this.getTypedRuleContext(Partitioning_storage_clauseContext, i) as Partitioning_storage_clauseContext;
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_individual_hash_partitions;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterIndividual_hash_partitions) {
	 		listener.enterIndividual_hash_partitions(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitIndividual_hash_partitions) {
	 		listener.exitIndividual_hash_partitions(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitIndividual_hash_partitions) {
			return visitor.visitIndividual_hash_partitions(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Hash_partitions_by_quantityContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public PARTITIONS(): TerminalNode {
		return this.getToken(PlSqlParser.PARTITIONS, 0);
	}
	public hash_partition_quantity(): Hash_partition_quantityContext {
		return this.getTypedRuleContext(Hash_partition_quantityContext, 0) as Hash_partition_quantityContext;
	}
	public STORE_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.STORE);
	}
	public STORE(i: number): TerminalNode {
		return this.getToken(PlSqlParser.STORE, i);
	}
	public IN_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.IN);
	}
	public IN(i: number): TerminalNode {
		return this.getToken(PlSqlParser.IN, i);
	}
	public LEFT_PAREN_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.LEFT_PAREN);
	}
	public LEFT_PAREN(i: number): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, i);
	}
	public tablespace_list(): TablespaceContext[] {
		return this.getTypedRuleContexts(TablespaceContext) as TablespaceContext[];
	}
	public tablespace(i: number): TablespaceContext {
		return this.getTypedRuleContext(TablespaceContext, i) as TablespaceContext;
	}
	public RIGHT_PAREN_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.RIGHT_PAREN);
	}
	public RIGHT_PAREN(i: number): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, i);
	}
	public table_compression(): Table_compressionContext {
		return this.getTypedRuleContext(Table_compressionContext, 0) as Table_compressionContext;
	}
	public key_compression(): Key_compressionContext {
		return this.getTypedRuleContext(Key_compressionContext, 0) as Key_compressionContext;
	}
	public OVERFLOW(): TerminalNode {
		return this.getToken(PlSqlParser.OVERFLOW, 0);
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_hash_partitions_by_quantity;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterHash_partitions_by_quantity) {
	 		listener.enterHash_partitions_by_quantity(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitHash_partitions_by_quantity) {
	 		listener.exitHash_partitions_by_quantity(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitHash_partitions_by_quantity) {
			return visitor.visitHash_partitions_by_quantity(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Hash_partition_quantityContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public UNSIGNED_INTEGER(): TerminalNode {
		return this.getToken(PlSqlParser.UNSIGNED_INTEGER, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_hash_partition_quantity;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterHash_partition_quantity) {
	 		listener.enterHash_partition_quantity(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitHash_partition_quantity) {
	 		listener.exitHash_partition_quantity(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitHash_partition_quantity) {
			return visitor.visitHash_partition_quantity(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Composite_range_partitionsContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public PARTITION(): TerminalNode {
		return this.getToken(PlSqlParser.PARTITION, 0);
	}
	public BY(): TerminalNode {
		return this.getToken(PlSqlParser.BY, 0);
	}
	public RANGE(): TerminalNode {
		return this.getToken(PlSqlParser.RANGE, 0);
	}
	public LEFT_PAREN_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.LEFT_PAREN);
	}
	public LEFT_PAREN(i: number): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, i);
	}
	public column_name_list(): Column_nameContext[] {
		return this.getTypedRuleContexts(Column_nameContext) as Column_nameContext[];
	}
	public column_name(i: number): Column_nameContext {
		return this.getTypedRuleContext(Column_nameContext, i) as Column_nameContext;
	}
	public RIGHT_PAREN_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.RIGHT_PAREN);
	}
	public RIGHT_PAREN(i: number): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, i);
	}
	public range_partition_desc_list(): Range_partition_descContext[] {
		return this.getTypedRuleContexts(Range_partition_descContext) as Range_partition_descContext[];
	}
	public range_partition_desc(i: number): Range_partition_descContext {
		return this.getTypedRuleContext(Range_partition_descContext, i) as Range_partition_descContext;
	}
	public subpartition_by_range(): Subpartition_by_rangeContext {
		return this.getTypedRuleContext(Subpartition_by_rangeContext, 0) as Subpartition_by_rangeContext;
	}
	public subpartition_by_list(): Subpartition_by_listContext {
		return this.getTypedRuleContext(Subpartition_by_listContext, 0) as Subpartition_by_listContext;
	}
	public subpartition_by_hash(): Subpartition_by_hashContext {
		return this.getTypedRuleContext(Subpartition_by_hashContext, 0) as Subpartition_by_hashContext;
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
	public INTERVAL(): TerminalNode {
		return this.getToken(PlSqlParser.INTERVAL, 0);
	}
	public expression(): ExpressionContext {
		return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext;
	}
	public STORE(): TerminalNode {
		return this.getToken(PlSqlParser.STORE, 0);
	}
	public IN(): TerminalNode {
		return this.getToken(PlSqlParser.IN, 0);
	}
	public tablespace_list(): TablespaceContext[] {
		return this.getTypedRuleContexts(TablespaceContext) as TablespaceContext[];
	}
	public tablespace(i: number): TablespaceContext {
		return this.getTypedRuleContext(TablespaceContext, i) as TablespaceContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_composite_range_partitions;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterComposite_range_partitions) {
	 		listener.enterComposite_range_partitions(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitComposite_range_partitions) {
	 		listener.exitComposite_range_partitions(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitComposite_range_partitions) {
			return visitor.visitComposite_range_partitions(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Composite_list_partitionsContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public PARTITION(): TerminalNode {
		return this.getToken(PlSqlParser.PARTITION, 0);
	}
	public BY(): TerminalNode {
		return this.getToken(PlSqlParser.BY, 0);
	}
	public LIST(): TerminalNode {
		return this.getToken(PlSqlParser.LIST, 0);
	}
	public LEFT_PAREN_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.LEFT_PAREN);
	}
	public LEFT_PAREN(i: number): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, i);
	}
	public column_name(): Column_nameContext {
		return this.getTypedRuleContext(Column_nameContext, 0) as Column_nameContext;
	}
	public RIGHT_PAREN_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.RIGHT_PAREN);
	}
	public RIGHT_PAREN(i: number): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, i);
	}
	public list_partition_desc_list(): List_partition_descContext[] {
		return this.getTypedRuleContexts(List_partition_descContext) as List_partition_descContext[];
	}
	public list_partition_desc(i: number): List_partition_descContext {
		return this.getTypedRuleContext(List_partition_descContext, i) as List_partition_descContext;
	}
	public subpartition_by_range(): Subpartition_by_rangeContext {
		return this.getTypedRuleContext(Subpartition_by_rangeContext, 0) as Subpartition_by_rangeContext;
	}
	public subpartition_by_list(): Subpartition_by_listContext {
		return this.getTypedRuleContext(Subpartition_by_listContext, 0) as Subpartition_by_listContext;
	}
	public subpartition_by_hash(): Subpartition_by_hashContext {
		return this.getTypedRuleContext(Subpartition_by_hashContext, 0) as Subpartition_by_hashContext;
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_composite_list_partitions;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterComposite_list_partitions) {
	 		listener.enterComposite_list_partitions(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitComposite_list_partitions) {
	 		listener.exitComposite_list_partitions(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitComposite_list_partitions) {
			return visitor.visitComposite_list_partitions(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Composite_hash_partitionsContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public PARTITION(): TerminalNode {
		return this.getToken(PlSqlParser.PARTITION, 0);
	}
	public BY(): TerminalNode {
		return this.getToken(PlSqlParser.BY, 0);
	}
	public HASH(): TerminalNode {
		return this.getToken(PlSqlParser.HASH, 0);
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public subpartition_by_range(): Subpartition_by_rangeContext {
		return this.getTypedRuleContext(Subpartition_by_rangeContext, 0) as Subpartition_by_rangeContext;
	}
	public subpartition_by_list(): Subpartition_by_listContext {
		return this.getTypedRuleContext(Subpartition_by_listContext, 0) as Subpartition_by_listContext;
	}
	public subpartition_by_hash(): Subpartition_by_hashContext {
		return this.getTypedRuleContext(Subpartition_by_hashContext, 0) as Subpartition_by_hashContext;
	}
	public individual_hash_partitions(): Individual_hash_partitionsContext {
		return this.getTypedRuleContext(Individual_hash_partitionsContext, 0) as Individual_hash_partitionsContext;
	}
	public hash_partitions_by_quantity(): Hash_partitions_by_quantityContext {
		return this.getTypedRuleContext(Hash_partitions_by_quantityContext, 0) as Hash_partitions_by_quantityContext;
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
	public column_name_list(): Column_nameContext[] {
		return this.getTypedRuleContexts(Column_nameContext) as Column_nameContext[];
	}
	public column_name(i: number): Column_nameContext {
		return this.getTypedRuleContext(Column_nameContext, i) as Column_nameContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_composite_hash_partitions;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterComposite_hash_partitions) {
	 		listener.enterComposite_hash_partitions(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitComposite_hash_partitions) {
	 		listener.exitComposite_hash_partitions(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitComposite_hash_partitions) {
			return visitor.visitComposite_hash_partitions(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Reference_partitioningContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public PARTITION(): TerminalNode {
		return this.getToken(PlSqlParser.PARTITION, 0);
	}
	public BY(): TerminalNode {
		return this.getToken(PlSqlParser.BY, 0);
	}
	public REFERENCE(): TerminalNode {
		return this.getToken(PlSqlParser.REFERENCE, 0);
	}
	public LEFT_PAREN_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.LEFT_PAREN);
	}
	public LEFT_PAREN(i: number): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, i);
	}
	public regular_id(): Regular_idContext {
		return this.getTypedRuleContext(Regular_idContext, 0) as Regular_idContext;
	}
	public RIGHT_PAREN_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.RIGHT_PAREN);
	}
	public RIGHT_PAREN(i: number): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, i);
	}
	public reference_partition_desc_list(): Reference_partition_descContext[] {
		return this.getTypedRuleContexts(Reference_partition_descContext) as Reference_partition_descContext[];
	}
	public reference_partition_desc(i: number): Reference_partition_descContext {
		return this.getTypedRuleContext(Reference_partition_descContext, i) as Reference_partition_descContext;
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_reference_partitioning;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterReference_partitioning) {
	 		listener.enterReference_partitioning(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitReference_partitioning) {
	 		listener.exitReference_partitioning(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitReference_partitioning) {
			return visitor.visitReference_partitioning(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Reference_partition_descContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public PARTITION(): TerminalNode {
		return this.getToken(PlSqlParser.PARTITION, 0);
	}
	public table_partition_description(): Table_partition_descriptionContext {
		return this.getTypedRuleContext(Table_partition_descriptionContext, 0) as Table_partition_descriptionContext;
	}
	public partition_name(): Partition_nameContext {
		return this.getTypedRuleContext(Partition_nameContext, 0) as Partition_nameContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_reference_partition_desc;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterReference_partition_desc) {
	 		listener.enterReference_partition_desc(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitReference_partition_desc) {
	 		listener.exitReference_partition_desc(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitReference_partition_desc) {
			return visitor.visitReference_partition_desc(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class System_partitioningContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public PARTITION(): TerminalNode {
		return this.getToken(PlSqlParser.PARTITION, 0);
	}
	public BY(): TerminalNode {
		return this.getToken(PlSqlParser.BY, 0);
	}
	public SYSTEM(): TerminalNode {
		return this.getToken(PlSqlParser.SYSTEM, 0);
	}
	public PARTITIONS(): TerminalNode {
		return this.getToken(PlSqlParser.PARTITIONS, 0);
	}
	public UNSIGNED_INTEGER(): TerminalNode {
		return this.getToken(PlSqlParser.UNSIGNED_INTEGER, 0);
	}
	public reference_partition_desc_list(): Reference_partition_descContext[] {
		return this.getTypedRuleContexts(Reference_partition_descContext) as Reference_partition_descContext[];
	}
	public reference_partition_desc(i: number): Reference_partition_descContext {
		return this.getTypedRuleContext(Reference_partition_descContext, i) as Reference_partition_descContext;
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_system_partitioning;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterSystem_partitioning) {
	 		listener.enterSystem_partitioning(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitSystem_partitioning) {
	 		listener.exitSystem_partitioning(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitSystem_partitioning) {
			return visitor.visitSystem_partitioning(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Range_partition_descContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public PARTITION(): TerminalNode {
		return this.getToken(PlSqlParser.PARTITION, 0);
	}
	public range_values_clause(): Range_values_clauseContext {
		return this.getTypedRuleContext(Range_values_clauseContext, 0) as Range_values_clauseContext;
	}
	public table_partition_description(): Table_partition_descriptionContext {
		return this.getTypedRuleContext(Table_partition_descriptionContext, 0) as Table_partition_descriptionContext;
	}
	public partition_name(): Partition_nameContext {
		return this.getTypedRuleContext(Partition_nameContext, 0) as Partition_nameContext;
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public hash_subparts_by_quantity(): Hash_subparts_by_quantityContext {
		return this.getTypedRuleContext(Hash_subparts_by_quantityContext, 0) as Hash_subparts_by_quantityContext;
	}
	public range_subpartition_desc_list(): Range_subpartition_descContext[] {
		return this.getTypedRuleContexts(Range_subpartition_descContext) as Range_subpartition_descContext[];
	}
	public range_subpartition_desc(i: number): Range_subpartition_descContext {
		return this.getTypedRuleContext(Range_subpartition_descContext, i) as Range_subpartition_descContext;
	}
	public list_subpartition_desc_list(): List_subpartition_descContext[] {
		return this.getTypedRuleContexts(List_subpartition_descContext) as List_subpartition_descContext[];
	}
	public list_subpartition_desc(i: number): List_subpartition_descContext {
		return this.getTypedRuleContext(List_subpartition_descContext, i) as List_subpartition_descContext;
	}
	public individual_hash_subparts_list(): Individual_hash_subpartsContext[] {
		return this.getTypedRuleContexts(Individual_hash_subpartsContext) as Individual_hash_subpartsContext[];
	}
	public individual_hash_subparts(i: number): Individual_hash_subpartsContext {
		return this.getTypedRuleContext(Individual_hash_subpartsContext, i) as Individual_hash_subpartsContext;
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_range_partition_desc;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterRange_partition_desc) {
	 		listener.enterRange_partition_desc(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitRange_partition_desc) {
	 		listener.exitRange_partition_desc(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitRange_partition_desc) {
			return visitor.visitRange_partition_desc(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class List_partition_descContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public PARTITION(): TerminalNode {
		return this.getToken(PlSqlParser.PARTITION, 0);
	}
	public list_values_clause(): List_values_clauseContext {
		return this.getTypedRuleContext(List_values_clauseContext, 0) as List_values_clauseContext;
	}
	public table_partition_description(): Table_partition_descriptionContext {
		return this.getTypedRuleContext(Table_partition_descriptionContext, 0) as Table_partition_descriptionContext;
	}
	public partition_name(): Partition_nameContext {
		return this.getTypedRuleContext(Partition_nameContext, 0) as Partition_nameContext;
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public hash_subparts_by_quantity(): Hash_subparts_by_quantityContext {
		return this.getTypedRuleContext(Hash_subparts_by_quantityContext, 0) as Hash_subparts_by_quantityContext;
	}
	public range_subpartition_desc_list(): Range_subpartition_descContext[] {
		return this.getTypedRuleContexts(Range_subpartition_descContext) as Range_subpartition_descContext[];
	}
	public range_subpartition_desc(i: number): Range_subpartition_descContext {
		return this.getTypedRuleContext(Range_subpartition_descContext, i) as Range_subpartition_descContext;
	}
	public list_subpartition_desc_list(): List_subpartition_descContext[] {
		return this.getTypedRuleContexts(List_subpartition_descContext) as List_subpartition_descContext[];
	}
	public list_subpartition_desc(i: number): List_subpartition_descContext {
		return this.getTypedRuleContext(List_subpartition_descContext, i) as List_subpartition_descContext;
	}
	public individual_hash_subparts_list(): Individual_hash_subpartsContext[] {
		return this.getTypedRuleContexts(Individual_hash_subpartsContext) as Individual_hash_subpartsContext[];
	}
	public individual_hash_subparts(i: number): Individual_hash_subpartsContext {
		return this.getTypedRuleContext(Individual_hash_subpartsContext, i) as Individual_hash_subpartsContext;
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_list_partition_desc;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterList_partition_desc) {
	 		listener.enterList_partition_desc(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitList_partition_desc) {
	 		listener.exitList_partition_desc(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitList_partition_desc) {
			return visitor.visitList_partition_desc(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Subpartition_templateContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public SUBPARTITION(): TerminalNode {
		return this.getToken(PlSqlParser.SUBPARTITION, 0);
	}
	public TEMPLATE(): TerminalNode {
		return this.getToken(PlSqlParser.TEMPLATE, 0);
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public hash_subpartition_quantity(): Hash_subpartition_quantityContext {
		return this.getTypedRuleContext(Hash_subpartition_quantityContext, 0) as Hash_subpartition_quantityContext;
	}
	public range_subpartition_desc_list(): Range_subpartition_descContext[] {
		return this.getTypedRuleContexts(Range_subpartition_descContext) as Range_subpartition_descContext[];
	}
	public range_subpartition_desc(i: number): Range_subpartition_descContext {
		return this.getTypedRuleContext(Range_subpartition_descContext, i) as Range_subpartition_descContext;
	}
	public list_subpartition_desc_list(): List_subpartition_descContext[] {
		return this.getTypedRuleContexts(List_subpartition_descContext) as List_subpartition_descContext[];
	}
	public list_subpartition_desc(i: number): List_subpartition_descContext {
		return this.getTypedRuleContext(List_subpartition_descContext, i) as List_subpartition_descContext;
	}
	public individual_hash_subparts_list(): Individual_hash_subpartsContext[] {
		return this.getTypedRuleContexts(Individual_hash_subpartsContext) as Individual_hash_subpartsContext[];
	}
	public individual_hash_subparts(i: number): Individual_hash_subpartsContext {
		return this.getTypedRuleContext(Individual_hash_subpartsContext, i) as Individual_hash_subpartsContext;
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_subpartition_template;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterSubpartition_template) {
	 		listener.enterSubpartition_template(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitSubpartition_template) {
	 		listener.exitSubpartition_template(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitSubpartition_template) {
			return visitor.visitSubpartition_template(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Hash_subpartition_quantityContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public UNSIGNED_INTEGER(): TerminalNode {
		return this.getToken(PlSqlParser.UNSIGNED_INTEGER, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_hash_subpartition_quantity;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterHash_subpartition_quantity) {
	 		listener.enterHash_subpartition_quantity(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitHash_subpartition_quantity) {
	 		listener.exitHash_subpartition_quantity(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitHash_subpartition_quantity) {
			return visitor.visitHash_subpartition_quantity(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Subpartition_by_rangeContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public SUBPARTITION(): TerminalNode {
		return this.getToken(PlSqlParser.SUBPARTITION, 0);
	}
	public BY(): TerminalNode {
		return this.getToken(PlSqlParser.BY, 0);
	}
	public RANGE(): TerminalNode {
		return this.getToken(PlSqlParser.RANGE, 0);
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public column_name_list(): Column_nameContext[] {
		return this.getTypedRuleContexts(Column_nameContext) as Column_nameContext[];
	}
	public column_name(i: number): Column_nameContext {
		return this.getTypedRuleContext(Column_nameContext, i) as Column_nameContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
	public subpartition_template(): Subpartition_templateContext {
		return this.getTypedRuleContext(Subpartition_templateContext, 0) as Subpartition_templateContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_subpartition_by_range;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterSubpartition_by_range) {
	 		listener.enterSubpartition_by_range(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitSubpartition_by_range) {
	 		listener.exitSubpartition_by_range(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitSubpartition_by_range) {
			return visitor.visitSubpartition_by_range(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Subpartition_by_listContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public SUBPARTITION(): TerminalNode {
		return this.getToken(PlSqlParser.SUBPARTITION, 0);
	}
	public BY(): TerminalNode {
		return this.getToken(PlSqlParser.BY, 0);
	}
	public LIST(): TerminalNode {
		return this.getToken(PlSqlParser.LIST, 0);
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public column_name(): Column_nameContext {
		return this.getTypedRuleContext(Column_nameContext, 0) as Column_nameContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public subpartition_template(): Subpartition_templateContext {
		return this.getTypedRuleContext(Subpartition_templateContext, 0) as Subpartition_templateContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_subpartition_by_list;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterSubpartition_by_list) {
	 		listener.enterSubpartition_by_list(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitSubpartition_by_list) {
	 		listener.exitSubpartition_by_list(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitSubpartition_by_list) {
			return visitor.visitSubpartition_by_list(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Subpartition_by_hashContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public SUBPARTITION(): TerminalNode {
		return this.getToken(PlSqlParser.SUBPARTITION, 0);
	}
	public BY(): TerminalNode {
		return this.getToken(PlSqlParser.BY, 0);
	}
	public HASH(): TerminalNode {
		return this.getToken(PlSqlParser.HASH, 0);
	}
	public LEFT_PAREN_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.LEFT_PAREN);
	}
	public LEFT_PAREN(i: number): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, i);
	}
	public column_name_list(): Column_nameContext[] {
		return this.getTypedRuleContexts(Column_nameContext) as Column_nameContext[];
	}
	public column_name(i: number): Column_nameContext {
		return this.getTypedRuleContext(Column_nameContext, i) as Column_nameContext;
	}
	public RIGHT_PAREN_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.RIGHT_PAREN);
	}
	public RIGHT_PAREN(i: number): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, i);
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
	public SUBPARTITIONS(): TerminalNode {
		return this.getToken(PlSqlParser.SUBPARTITIONS, 0);
	}
	public UNSIGNED_INTEGER(): TerminalNode {
		return this.getToken(PlSqlParser.UNSIGNED_INTEGER, 0);
	}
	public subpartition_template(): Subpartition_templateContext {
		return this.getTypedRuleContext(Subpartition_templateContext, 0) as Subpartition_templateContext;
	}
	public STORE(): TerminalNode {
		return this.getToken(PlSqlParser.STORE, 0);
	}
	public IN(): TerminalNode {
		return this.getToken(PlSqlParser.IN, 0);
	}
	public tablespace_list(): TablespaceContext[] {
		return this.getTypedRuleContexts(TablespaceContext) as TablespaceContext[];
	}
	public tablespace(i: number): TablespaceContext {
		return this.getTypedRuleContext(TablespaceContext, i) as TablespaceContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_subpartition_by_hash;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterSubpartition_by_hash) {
	 		listener.enterSubpartition_by_hash(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitSubpartition_by_hash) {
	 		listener.exitSubpartition_by_hash(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitSubpartition_by_hash) {
			return visitor.visitSubpartition_by_hash(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Subpartition_nameContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public partition_name(): Partition_nameContext {
		return this.getTypedRuleContext(Partition_nameContext, 0) as Partition_nameContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_subpartition_name;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterSubpartition_name) {
	 		listener.enterSubpartition_name(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitSubpartition_name) {
	 		listener.exitSubpartition_name(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitSubpartition_name) {
			return visitor.visitSubpartition_name(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Range_subpartition_descContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public SUBPARTITION(): TerminalNode {
		return this.getToken(PlSqlParser.SUBPARTITION, 0);
	}
	public range_values_clause(): Range_values_clauseContext {
		return this.getTypedRuleContext(Range_values_clauseContext, 0) as Range_values_clauseContext;
	}
	public subpartition_name(): Subpartition_nameContext {
		return this.getTypedRuleContext(Subpartition_nameContext, 0) as Subpartition_nameContext;
	}
	public partitioning_storage_clause(): Partitioning_storage_clauseContext {
		return this.getTypedRuleContext(Partitioning_storage_clauseContext, 0) as Partitioning_storage_clauseContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_range_subpartition_desc;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterRange_subpartition_desc) {
	 		listener.enterRange_subpartition_desc(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitRange_subpartition_desc) {
	 		listener.exitRange_subpartition_desc(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitRange_subpartition_desc) {
			return visitor.visitRange_subpartition_desc(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class List_subpartition_descContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public SUBPARTITION(): TerminalNode {
		return this.getToken(PlSqlParser.SUBPARTITION, 0);
	}
	public list_values_clause(): List_values_clauseContext {
		return this.getTypedRuleContext(List_values_clauseContext, 0) as List_values_clauseContext;
	}
	public subpartition_name(): Subpartition_nameContext {
		return this.getTypedRuleContext(Subpartition_nameContext, 0) as Subpartition_nameContext;
	}
	public partitioning_storage_clause(): Partitioning_storage_clauseContext {
		return this.getTypedRuleContext(Partitioning_storage_clauseContext, 0) as Partitioning_storage_clauseContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_list_subpartition_desc;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterList_subpartition_desc) {
	 		listener.enterList_subpartition_desc(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitList_subpartition_desc) {
	 		listener.exitList_subpartition_desc(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitList_subpartition_desc) {
			return visitor.visitList_subpartition_desc(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Individual_hash_subpartsContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public SUBPARTITION(): TerminalNode {
		return this.getToken(PlSqlParser.SUBPARTITION, 0);
	}
	public subpartition_name(): Subpartition_nameContext {
		return this.getTypedRuleContext(Subpartition_nameContext, 0) as Subpartition_nameContext;
	}
	public partitioning_storage_clause(): Partitioning_storage_clauseContext {
		return this.getTypedRuleContext(Partitioning_storage_clauseContext, 0) as Partitioning_storage_clauseContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_individual_hash_subparts;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterIndividual_hash_subparts) {
	 		listener.enterIndividual_hash_subparts(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitIndividual_hash_subparts) {
	 		listener.exitIndividual_hash_subparts(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitIndividual_hash_subparts) {
			return visitor.visitIndividual_hash_subparts(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Hash_subparts_by_quantityContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public SUBPARTITIONS(): TerminalNode {
		return this.getToken(PlSqlParser.SUBPARTITIONS, 0);
	}
	public UNSIGNED_INTEGER(): TerminalNode {
		return this.getToken(PlSqlParser.UNSIGNED_INTEGER, 0);
	}
	public STORE(): TerminalNode {
		return this.getToken(PlSqlParser.STORE, 0);
	}
	public IN(): TerminalNode {
		return this.getToken(PlSqlParser.IN, 0);
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public tablespace_list(): TablespaceContext[] {
		return this.getTypedRuleContexts(TablespaceContext) as TablespaceContext[];
	}
	public tablespace(i: number): TablespaceContext {
		return this.getTypedRuleContext(TablespaceContext, i) as TablespaceContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_hash_subparts_by_quantity;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterHash_subparts_by_quantity) {
	 		listener.enterHash_subparts_by_quantity(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitHash_subparts_by_quantity) {
	 		listener.exitHash_subparts_by_quantity(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitHash_subparts_by_quantity) {
			return visitor.visitHash_subparts_by_quantity(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Range_values_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public VALUES(): TerminalNode {
		return this.getToken(PlSqlParser.VALUES, 0);
	}
	public LESS(): TerminalNode {
		return this.getToken(PlSqlParser.LESS, 0);
	}
	public THAN(): TerminalNode {
		return this.getToken(PlSqlParser.THAN, 0);
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public literal_list(): LiteralContext[] {
		return this.getTypedRuleContexts(LiteralContext) as LiteralContext[];
	}
	public literal(i: number): LiteralContext {
		return this.getTypedRuleContext(LiteralContext, i) as LiteralContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_range_values_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterRange_values_clause) {
	 		listener.enterRange_values_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitRange_values_clause) {
	 		listener.exitRange_values_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitRange_values_clause) {
			return visitor.visitRange_values_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class List_values_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public VALUES(): TerminalNode {
		return this.getToken(PlSqlParser.VALUES, 0);
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public literal_list(): LiteralContext[] {
		return this.getTypedRuleContexts(LiteralContext) as LiteralContext[];
	}
	public literal(i: number): LiteralContext {
		return this.getTypedRuleContext(LiteralContext, i) as LiteralContext;
	}
	public DEFAULT(): TerminalNode {
		return this.getToken(PlSqlParser.DEFAULT, 0);
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_list_values_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterList_values_clause) {
	 		listener.enterList_values_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitList_values_clause) {
	 		listener.exitList_values_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitList_values_clause) {
			return visitor.visitList_values_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Table_partition_descriptionContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public deferred_segment_creation(): Deferred_segment_creationContext {
		return this.getTypedRuleContext(Deferred_segment_creationContext, 0) as Deferred_segment_creationContext;
	}
	public segment_attributes_clause_list(): Segment_attributes_clauseContext[] {
		return this.getTypedRuleContexts(Segment_attributes_clauseContext) as Segment_attributes_clauseContext[];
	}
	public segment_attributes_clause(i: number): Segment_attributes_clauseContext {
		return this.getTypedRuleContext(Segment_attributes_clauseContext, i) as Segment_attributes_clauseContext;
	}
	public table_compression(): Table_compressionContext {
		return this.getTypedRuleContext(Table_compressionContext, 0) as Table_compressionContext;
	}
	public key_compression(): Key_compressionContext {
		return this.getTypedRuleContext(Key_compressionContext, 0) as Key_compressionContext;
	}
	public OVERFLOW(): TerminalNode {
		return this.getToken(PlSqlParser.OVERFLOW, 0);
	}
	public lob_storage_clause(): Lob_storage_clauseContext {
		return this.getTypedRuleContext(Lob_storage_clauseContext, 0) as Lob_storage_clauseContext;
	}
	public varray_col_properties(): Varray_col_propertiesContext {
		return this.getTypedRuleContext(Varray_col_propertiesContext, 0) as Varray_col_propertiesContext;
	}
	public nested_table_col_properties(): Nested_table_col_propertiesContext {
		return this.getTypedRuleContext(Nested_table_col_propertiesContext, 0) as Nested_table_col_propertiesContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_table_partition_description;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterTable_partition_description) {
	 		listener.enterTable_partition_description(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitTable_partition_description) {
	 		listener.exitTable_partition_description(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitTable_partition_description) {
			return visitor.visitTable_partition_description(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Partitioning_storage_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public TABLESPACE_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.TABLESPACE);
	}
	public TABLESPACE(i: number): TerminalNode {
		return this.getToken(PlSqlParser.TABLESPACE, i);
	}
	public tablespace_list(): TablespaceContext[] {
		return this.getTypedRuleContexts(TablespaceContext) as TablespaceContext[];
	}
	public tablespace(i: number): TablespaceContext {
		return this.getTypedRuleContext(TablespaceContext, i) as TablespaceContext;
	}
	public OVERFLOW_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.OVERFLOW);
	}
	public OVERFLOW(i: number): TerminalNode {
		return this.getToken(PlSqlParser.OVERFLOW, i);
	}
	public table_compression_list(): Table_compressionContext[] {
		return this.getTypedRuleContexts(Table_compressionContext) as Table_compressionContext[];
	}
	public table_compression(i: number): Table_compressionContext {
		return this.getTypedRuleContext(Table_compressionContext, i) as Table_compressionContext;
	}
	public key_compression_list(): Key_compressionContext[] {
		return this.getTypedRuleContexts(Key_compressionContext) as Key_compressionContext[];
	}
	public key_compression(i: number): Key_compressionContext {
		return this.getTypedRuleContext(Key_compressionContext, i) as Key_compressionContext;
	}
	public lob_partitioning_storage_list(): Lob_partitioning_storageContext[] {
		return this.getTypedRuleContexts(Lob_partitioning_storageContext) as Lob_partitioning_storageContext[];
	}
	public lob_partitioning_storage(i: number): Lob_partitioning_storageContext {
		return this.getTypedRuleContext(Lob_partitioning_storageContext, i) as Lob_partitioning_storageContext;
	}
	public VARRAY_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.VARRAY);
	}
	public VARRAY(i: number): TerminalNode {
		return this.getToken(PlSqlParser.VARRAY, i);
	}
	public varray_item_list(): Varray_itemContext[] {
		return this.getTypedRuleContexts(Varray_itemContext) as Varray_itemContext[];
	}
	public varray_item(i: number): Varray_itemContext {
		return this.getTypedRuleContext(Varray_itemContext, i) as Varray_itemContext;
	}
	public STORE_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.STORE);
	}
	public STORE(i: number): TerminalNode {
		return this.getToken(PlSqlParser.STORE, i);
	}
	public AS_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.AS);
	}
	public AS(i: number): TerminalNode {
		return this.getToken(PlSqlParser.AS, i);
	}
	public LOB_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.LOB);
	}
	public LOB(i: number): TerminalNode {
		return this.getToken(PlSqlParser.LOB, i);
	}
	public lob_segname_list(): Lob_segnameContext[] {
		return this.getTypedRuleContexts(Lob_segnameContext) as Lob_segnameContext[];
	}
	public lob_segname(i: number): Lob_segnameContext {
		return this.getTypedRuleContext(Lob_segnameContext, i) as Lob_segnameContext;
	}
	public BASICFILE_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.BASICFILE);
	}
	public BASICFILE(i: number): TerminalNode {
		return this.getToken(PlSqlParser.BASICFILE, i);
	}
	public SECUREFILE_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.SECUREFILE);
	}
	public SECUREFILE(i: number): TerminalNode {
		return this.getToken(PlSqlParser.SECUREFILE, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_partitioning_storage_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterPartitioning_storage_clause) {
	 		listener.enterPartitioning_storage_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitPartitioning_storage_clause) {
	 		listener.exitPartitioning_storage_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitPartitioning_storage_clause) {
			return visitor.visitPartitioning_storage_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Lob_partitioning_storageContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public LOB(): TerminalNode {
		return this.getToken(PlSqlParser.LOB, 0);
	}
	public LEFT_PAREN_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.LEFT_PAREN);
	}
	public LEFT_PAREN(i: number): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, i);
	}
	public lob_item(): Lob_itemContext {
		return this.getTypedRuleContext(Lob_itemContext, 0) as Lob_itemContext;
	}
	public RIGHT_PAREN_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.RIGHT_PAREN);
	}
	public RIGHT_PAREN(i: number): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, i);
	}
	public STORE(): TerminalNode {
		return this.getToken(PlSqlParser.STORE, 0);
	}
	public AS(): TerminalNode {
		return this.getToken(PlSqlParser.AS, 0);
	}
	public lob_segname(): Lob_segnameContext {
		return this.getTypedRuleContext(Lob_segnameContext, 0) as Lob_segnameContext;
	}
	public TABLESPACE(): TerminalNode {
		return this.getToken(PlSqlParser.TABLESPACE, 0);
	}
	public tablespace(): TablespaceContext {
		return this.getTypedRuleContext(TablespaceContext, 0) as TablespaceContext;
	}
	public BASICFILE(): TerminalNode {
		return this.getToken(PlSqlParser.BASICFILE, 0);
	}
	public SECUREFILE(): TerminalNode {
		return this.getToken(PlSqlParser.SECUREFILE, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_lob_partitioning_storage;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterLob_partitioning_storage) {
	 		listener.enterLob_partitioning_storage(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitLob_partitioning_storage) {
	 		listener.exitLob_partitioning_storage(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitLob_partitioning_storage) {
			return visitor.visitLob_partitioning_storage(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Datatype_null_enableContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public column_name(): Column_nameContext {
		return this.getTypedRuleContext(Column_nameContext, 0) as Column_nameContext;
	}
	public datatype(): DatatypeContext {
		return this.getTypedRuleContext(DatatypeContext, 0) as DatatypeContext;
	}
	public SORT(): TerminalNode {
		return this.getToken(PlSqlParser.SORT, 0);
	}
	public DEFAULT(): TerminalNode {
		return this.getToken(PlSqlParser.DEFAULT, 0);
	}
	public expression(): ExpressionContext {
		return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext;
	}
	public ENCRYPT(): TerminalNode {
		return this.getToken(PlSqlParser.ENCRYPT, 0);
	}
	public NOT(): TerminalNode {
		return this.getToken(PlSqlParser.NOT, 0);
	}
	public NULL_(): TerminalNode {
		return this.getToken(PlSqlParser.NULL_, 0);
	}
	public ENABLE(): TerminalNode {
		return this.getToken(PlSqlParser.ENABLE, 0);
	}
	public DISABLE(): TerminalNode {
		return this.getToken(PlSqlParser.DISABLE, 0);
	}
	public USING(): TerminalNode {
		return this.getToken(PlSqlParser.USING, 0);
	}
	public CHAR_STRING_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.CHAR_STRING);
	}
	public CHAR_STRING(i: number): TerminalNode {
		return this.getToken(PlSqlParser.CHAR_STRING, i);
	}
	public IDENTIFIED(): TerminalNode {
		return this.getToken(PlSqlParser.IDENTIFIED, 0);
	}
	public BY(): TerminalNode {
		return this.getToken(PlSqlParser.BY, 0);
	}
	public REGULAR_ID(): TerminalNode {
		return this.getToken(PlSqlParser.REGULAR_ID, 0);
	}
	public SALT(): TerminalNode {
		return this.getToken(PlSqlParser.SALT, 0);
	}
	public NO(): TerminalNode {
		return this.getToken(PlSqlParser.NO, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_datatype_null_enable;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterDatatype_null_enable) {
	 		listener.enterDatatype_null_enable(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitDatatype_null_enable) {
	 		listener.exitDatatype_null_enable(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitDatatype_null_enable) {
			return visitor.visitDatatype_null_enable(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Size_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public UNSIGNED_INTEGER(): TerminalNode {
		return this.getToken(PlSqlParser.UNSIGNED_INTEGER, 0);
	}
	public REGULAR_ID(): TerminalNode {
		return this.getToken(PlSqlParser.REGULAR_ID, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_size_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterSize_clause) {
	 		listener.enterSize_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitSize_clause) {
	 		listener.exitSize_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitSize_clause) {
			return visitor.visitSize_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Table_compressionContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public COMPRESS(): TerminalNode {
		return this.getToken(PlSqlParser.COMPRESS, 0);
	}
	public BASIC(): TerminalNode {
		return this.getToken(PlSqlParser.BASIC, 0);
	}
	public FOR(): TerminalNode {
		return this.getToken(PlSqlParser.FOR, 0);
	}
	public OLTP(): TerminalNode {
		return this.getToken(PlSqlParser.OLTP, 0);
	}
	public QUERY(): TerminalNode {
		return this.getToken(PlSqlParser.QUERY, 0);
	}
	public ARCHIVE(): TerminalNode {
		return this.getToken(PlSqlParser.ARCHIVE, 0);
	}
	public LOW(): TerminalNode {
		return this.getToken(PlSqlParser.LOW, 0);
	}
	public HIGH(): TerminalNode {
		return this.getToken(PlSqlParser.HIGH, 0);
	}
	public NOCOMPRESS(): TerminalNode {
		return this.getToken(PlSqlParser.NOCOMPRESS, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_table_compression;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterTable_compression) {
	 		listener.enterTable_compression(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitTable_compression) {
	 		listener.exitTable_compression(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitTable_compression) {
			return visitor.visitTable_compression(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Physical_attributes_clauseContext extends ParserRuleContext {
	public _pctfree!: Token;
	public _pctused!: Token;
	public _inittrans!: Token;
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public PCTFREE_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.PCTFREE);
	}
	public PCTFREE(i: number): TerminalNode {
		return this.getToken(PlSqlParser.PCTFREE, i);
	}
	public PCTUSED_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.PCTUSED);
	}
	public PCTUSED(i: number): TerminalNode {
		return this.getToken(PlSqlParser.PCTUSED, i);
	}
	public INITRANS_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.INITRANS);
	}
	public INITRANS(i: number): TerminalNode {
		return this.getToken(PlSqlParser.INITRANS, i);
	}
	public storage_clause_list(): Storage_clauseContext[] {
		return this.getTypedRuleContexts(Storage_clauseContext) as Storage_clauseContext[];
	}
	public storage_clause(i: number): Storage_clauseContext {
		return this.getTypedRuleContext(Storage_clauseContext, i) as Storage_clauseContext;
	}
	public UNSIGNED_INTEGER_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.UNSIGNED_INTEGER);
	}
	public UNSIGNED_INTEGER(i: number): TerminalNode {
		return this.getToken(PlSqlParser.UNSIGNED_INTEGER, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_physical_attributes_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterPhysical_attributes_clause) {
	 		listener.enterPhysical_attributes_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitPhysical_attributes_clause) {
	 		listener.exitPhysical_attributes_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitPhysical_attributes_clause) {
			return visitor.visitPhysical_attributes_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Storage_clauseContext extends ParserRuleContext {
	public _initial_size!: Size_clauseContext;
	public _next_size!: Size_clauseContext;
	public _minextents!: Token;
	public _pctincrease!: Token;
	public _freelists!: Token;
	public _freelist_groups!: Token;
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public STORAGE(): TerminalNode {
		return this.getToken(PlSqlParser.STORAGE, 0);
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public INITIAL_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.INITIAL);
	}
	public INITIAL(i: number): TerminalNode {
		return this.getToken(PlSqlParser.INITIAL, i);
	}
	public NEXT_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.NEXT);
	}
	public NEXT(i: number): TerminalNode {
		return this.getToken(PlSqlParser.NEXT, i);
	}
	public MINEXTENTS_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.MINEXTENTS);
	}
	public MINEXTENTS(i: number): TerminalNode {
		return this.getToken(PlSqlParser.MINEXTENTS, i);
	}
	public MAXEXTENTS_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.MAXEXTENTS);
	}
	public MAXEXTENTS(i: number): TerminalNode {
		return this.getToken(PlSqlParser.MAXEXTENTS, i);
	}
	public PCTINCREASE_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.PCTINCREASE);
	}
	public PCTINCREASE(i: number): TerminalNode {
		return this.getToken(PlSqlParser.PCTINCREASE, i);
	}
	public FREELISTS_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.FREELISTS);
	}
	public FREELISTS(i: number): TerminalNode {
		return this.getToken(PlSqlParser.FREELISTS, i);
	}
	public FREELIST_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.FREELIST);
	}
	public FREELIST(i: number): TerminalNode {
		return this.getToken(PlSqlParser.FREELIST, i);
	}
	public GROUPS_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.GROUPS);
	}
	public GROUPS(i: number): TerminalNode {
		return this.getToken(PlSqlParser.GROUPS, i);
	}
	public OPTIMAL_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.OPTIMAL);
	}
	public OPTIMAL(i: number): TerminalNode {
		return this.getToken(PlSqlParser.OPTIMAL, i);
	}
	public BUFFER_POOL_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.BUFFER_POOL);
	}
	public BUFFER_POOL(i: number): TerminalNode {
		return this.getToken(PlSqlParser.BUFFER_POOL, i);
	}
	public FLASH_CACHE_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.FLASH_CACHE);
	}
	public FLASH_CACHE(i: number): TerminalNode {
		return this.getToken(PlSqlParser.FLASH_CACHE, i);
	}
	public ENCRYPT_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.ENCRYPT);
	}
	public ENCRYPT(i: number): TerminalNode {
		return this.getToken(PlSqlParser.ENCRYPT, i);
	}
	public size_clause_list(): Size_clauseContext[] {
		return this.getTypedRuleContexts(Size_clauseContext) as Size_clauseContext[];
	}
	public size_clause(i: number): Size_clauseContext {
		return this.getTypedRuleContext(Size_clauseContext, i) as Size_clauseContext;
	}
	public UNSIGNED_INTEGER_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.UNSIGNED_INTEGER);
	}
	public UNSIGNED_INTEGER(i: number): TerminalNode {
		return this.getToken(PlSqlParser.UNSIGNED_INTEGER, i);
	}
	public KEEP_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.KEEP);
	}
	public KEEP(i: number): TerminalNode {
		return this.getToken(PlSqlParser.KEEP, i);
	}
	public RECYCLE_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.RECYCLE);
	}
	public RECYCLE(i: number): TerminalNode {
		return this.getToken(PlSqlParser.RECYCLE, i);
	}
	public DEFAULT_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.DEFAULT);
	}
	public DEFAULT(i: number): TerminalNode {
		return this.getToken(PlSqlParser.DEFAULT, i);
	}
	public NONE_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.NONE);
	}
	public NONE(i: number): TerminalNode {
		return this.getToken(PlSqlParser.NONE, i);
	}
	public UNLIMITED_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.UNLIMITED);
	}
	public UNLIMITED(i: number): TerminalNode {
		return this.getToken(PlSqlParser.UNLIMITED, i);
	}
	public NULL__list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.NULL_);
	}
	public NULL_(i: number): TerminalNode {
		return this.getToken(PlSqlParser.NULL_, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_storage_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterStorage_clause) {
	 		listener.enterStorage_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitStorage_clause) {
	 		listener.exitStorage_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitStorage_clause) {
			return visitor.visitStorage_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Deferred_segment_creationContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public SEGMENT(): TerminalNode {
		return this.getToken(PlSqlParser.SEGMENT, 0);
	}
	public CREATION(): TerminalNode {
		return this.getToken(PlSqlParser.CREATION, 0);
	}
	public IMMEDIATE(): TerminalNode {
		return this.getToken(PlSqlParser.IMMEDIATE, 0);
	}
	public DEFERRED(): TerminalNode {
		return this.getToken(PlSqlParser.DEFERRED, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_deferred_segment_creation;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterDeferred_segment_creation) {
	 		listener.enterDeferred_segment_creation(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitDeferred_segment_creation) {
	 		listener.exitDeferred_segment_creation(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitDeferred_segment_creation) {
			return visitor.visitDeferred_segment_creation(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Segment_attributes_clauseContext extends ParserRuleContext {
	public _tablespace_name!: Id_expressionContext;
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public physical_attributes_clause_list(): Physical_attributes_clauseContext[] {
		return this.getTypedRuleContexts(Physical_attributes_clauseContext) as Physical_attributes_clauseContext[];
	}
	public physical_attributes_clause(i: number): Physical_attributes_clauseContext {
		return this.getTypedRuleContext(Physical_attributes_clauseContext, i) as Physical_attributes_clauseContext;
	}
	public TABLESPACE_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.TABLESPACE);
	}
	public TABLESPACE(i: number): TerminalNode {
		return this.getToken(PlSqlParser.TABLESPACE, i);
	}
	public logging_clause_list(): Logging_clauseContext[] {
		return this.getTypedRuleContexts(Logging_clauseContext) as Logging_clauseContext[];
	}
	public logging_clause(i: number): Logging_clauseContext {
		return this.getTypedRuleContext(Logging_clauseContext, i) as Logging_clauseContext;
	}
	public id_expression_list(): Id_expressionContext[] {
		return this.getTypedRuleContexts(Id_expressionContext) as Id_expressionContext[];
	}
	public id_expression(i: number): Id_expressionContext {
		return this.getTypedRuleContext(Id_expressionContext, i) as Id_expressionContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_segment_attributes_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterSegment_attributes_clause) {
	 		listener.enterSegment_attributes_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitSegment_attributes_clause) {
	 		listener.exitSegment_attributes_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitSegment_attributes_clause) {
			return visitor.visitSegment_attributes_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Physical_propertiesContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public segment_attributes_clause(): Segment_attributes_clauseContext {
		return this.getTypedRuleContext(Segment_attributes_clauseContext, 0) as Segment_attributes_clauseContext;
	}
	public deferred_segment_creation(): Deferred_segment_creationContext {
		return this.getTypedRuleContext(Deferred_segment_creationContext, 0) as Deferred_segment_creationContext;
	}
	public table_compression(): Table_compressionContext {
		return this.getTypedRuleContext(Table_compressionContext, 0) as Table_compressionContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_physical_properties;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterPhysical_properties) {
	 		listener.enterPhysical_properties(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitPhysical_properties) {
	 		listener.exitPhysical_properties(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitPhysical_properties) {
			return visitor.visitPhysical_properties(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Row_movement_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public ROW(): TerminalNode {
		return this.getToken(PlSqlParser.ROW, 0);
	}
	public MOVEMENT(): TerminalNode {
		return this.getToken(PlSqlParser.MOVEMENT, 0);
	}
	public ENABLE(): TerminalNode {
		return this.getToken(PlSqlParser.ENABLE, 0);
	}
	public DISABLE(): TerminalNode {
		return this.getToken(PlSqlParser.DISABLE, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_row_movement_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterRow_movement_clause) {
	 		listener.enterRow_movement_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitRow_movement_clause) {
	 		listener.exitRow_movement_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitRow_movement_clause) {
			return visitor.visitRow_movement_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Flashback_archive_clauseContext extends ParserRuleContext {
	public _flashback_archive!: Token;
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public FLASHBACK(): TerminalNode {
		return this.getToken(PlSqlParser.FLASHBACK, 0);
	}
	public ARCHIVE(): TerminalNode {
		return this.getToken(PlSqlParser.ARCHIVE, 0);
	}
	public REGULAR_ID(): TerminalNode {
		return this.getToken(PlSqlParser.REGULAR_ID, 0);
	}
	public NO(): TerminalNode {
		return this.getToken(PlSqlParser.NO, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_flashback_archive_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterFlashback_archive_clause) {
	 		listener.enterFlashback_archive_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitFlashback_archive_clause) {
	 		listener.exitFlashback_archive_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitFlashback_archive_clause) {
			return visitor.visitFlashback_archive_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Log_grpContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public UNSIGNED_INTEGER(): TerminalNode {
		return this.getToken(PlSqlParser.UNSIGNED_INTEGER, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_log_grp;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterLog_grp) {
	 		listener.enterLog_grp(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitLog_grp) {
	 		listener.exitLog_grp(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitLog_grp) {
			return visitor.visitLog_grp(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Supplemental_table_loggingContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public ADD(): TerminalNode {
		return this.getToken(PlSqlParser.ADD, 0);
	}
	public SUPPLEMENTAL_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.SUPPLEMENTAL);
	}
	public SUPPLEMENTAL(i: number): TerminalNode {
		return this.getToken(PlSqlParser.SUPPLEMENTAL, i);
	}
	public LOG_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.LOG);
	}
	public LOG(i: number): TerminalNode {
		return this.getToken(PlSqlParser.LOG, i);
	}
	public supplemental_log_grp_clause_list(): Supplemental_log_grp_clauseContext[] {
		return this.getTypedRuleContexts(Supplemental_log_grp_clauseContext) as Supplemental_log_grp_clauseContext[];
	}
	public supplemental_log_grp_clause(i: number): Supplemental_log_grp_clauseContext {
		return this.getTypedRuleContext(Supplemental_log_grp_clauseContext, i) as Supplemental_log_grp_clauseContext;
	}
	public supplemental_id_key_clause_list(): Supplemental_id_key_clauseContext[] {
		return this.getTypedRuleContexts(Supplemental_id_key_clauseContext) as Supplemental_id_key_clauseContext[];
	}
	public supplemental_id_key_clause(i: number): Supplemental_id_key_clauseContext {
		return this.getTypedRuleContext(Supplemental_id_key_clauseContext, i) as Supplemental_id_key_clauseContext;
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
	public DROP(): TerminalNode {
		return this.getToken(PlSqlParser.DROP, 0);
	}
	public GROUP_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.GROUP);
	}
	public GROUP(i: number): TerminalNode {
		return this.getToken(PlSqlParser.GROUP, i);
	}
	public log_grp_list(): Log_grpContext[] {
		return this.getTypedRuleContexts(Log_grpContext) as Log_grpContext[];
	}
	public log_grp(i: number): Log_grpContext {
		return this.getTypedRuleContext(Log_grpContext, i) as Log_grpContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_supplemental_table_logging;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterSupplemental_table_logging) {
	 		listener.enterSupplemental_table_logging(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitSupplemental_table_logging) {
	 		listener.exitSupplemental_table_logging(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitSupplemental_table_logging) {
			return visitor.visitSupplemental_table_logging(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Supplemental_log_grp_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public GROUP(): TerminalNode {
		return this.getToken(PlSqlParser.GROUP, 0);
	}
	public log_grp(): Log_grpContext {
		return this.getTypedRuleContext(Log_grpContext, 0) as Log_grpContext;
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public regular_id_list(): Regular_idContext[] {
		return this.getTypedRuleContexts(Regular_idContext) as Regular_idContext[];
	}
	public regular_id(i: number): Regular_idContext {
		return this.getTypedRuleContext(Regular_idContext, i) as Regular_idContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public NO_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.NO);
	}
	public NO(i: number): TerminalNode {
		return this.getToken(PlSqlParser.NO, i);
	}
	public LOG_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.LOG);
	}
	public LOG(i: number): TerminalNode {
		return this.getToken(PlSqlParser.LOG, i);
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
	public ALWAYS(): TerminalNode {
		return this.getToken(PlSqlParser.ALWAYS, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_supplemental_log_grp_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterSupplemental_log_grp_clause) {
	 		listener.enterSupplemental_log_grp_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitSupplemental_log_grp_clause) {
	 		listener.exitSupplemental_log_grp_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitSupplemental_log_grp_clause) {
			return visitor.visitSupplemental_log_grp_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Supplemental_id_key_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public DATA(): TerminalNode {
		return this.getToken(PlSqlParser.DATA, 0);
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public COLUMNS(): TerminalNode {
		return this.getToken(PlSqlParser.COLUMNS, 0);
	}
	public ALL_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.ALL);
	}
	public ALL(i: number): TerminalNode {
		return this.getToken(PlSqlParser.ALL, i);
	}
	public PRIMARY_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.PRIMARY);
	}
	public PRIMARY(i: number): TerminalNode {
		return this.getToken(PlSqlParser.PRIMARY, i);
	}
	public KEY_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.KEY);
	}
	public KEY(i: number): TerminalNode {
		return this.getToken(PlSqlParser.KEY, i);
	}
	public UNIQUE_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.UNIQUE);
	}
	public UNIQUE(i: number): TerminalNode {
		return this.getToken(PlSqlParser.UNIQUE, i);
	}
	public FOREIGN_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.FOREIGN);
	}
	public FOREIGN(i: number): TerminalNode {
		return this.getToken(PlSqlParser.FOREIGN, i);
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_supplemental_id_key_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterSupplemental_id_key_clause) {
	 		listener.enterSupplemental_id_key_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitSupplemental_id_key_clause) {
	 		listener.exitSupplemental_id_key_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitSupplemental_id_key_clause) {
			return visitor.visitSupplemental_id_key_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Allocate_extent_clauseContext extends ParserRuleContext {
	public _datafile!: Token;
	public _inst_num!: Token;
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public ALLOCATE(): TerminalNode {
		return this.getToken(PlSqlParser.ALLOCATE, 0);
	}
	public EXTENT(): TerminalNode {
		return this.getToken(PlSqlParser.EXTENT, 0);
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public SIZE_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.SIZE);
	}
	public SIZE(i: number): TerminalNode {
		return this.getToken(PlSqlParser.SIZE, i);
	}
	public size_clause_list(): Size_clauseContext[] {
		return this.getTypedRuleContexts(Size_clauseContext) as Size_clauseContext[];
	}
	public size_clause(i: number): Size_clauseContext {
		return this.getTypedRuleContext(Size_clauseContext, i) as Size_clauseContext;
	}
	public DATAFILE_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.DATAFILE);
	}
	public DATAFILE(i: number): TerminalNode {
		return this.getToken(PlSqlParser.DATAFILE, i);
	}
	public INSTANCE_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.INSTANCE);
	}
	public INSTANCE(i: number): TerminalNode {
		return this.getToken(PlSqlParser.INSTANCE, i);
	}
	public CHAR_STRING_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.CHAR_STRING);
	}
	public CHAR_STRING(i: number): TerminalNode {
		return this.getToken(PlSqlParser.CHAR_STRING, i);
	}
	public UNSIGNED_INTEGER_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.UNSIGNED_INTEGER);
	}
	public UNSIGNED_INTEGER(i: number): TerminalNode {
		return this.getToken(PlSqlParser.UNSIGNED_INTEGER, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_allocate_extent_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterAllocate_extent_clause) {
	 		listener.enterAllocate_extent_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitAllocate_extent_clause) {
	 		listener.exitAllocate_extent_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitAllocate_extent_clause) {
			return visitor.visitAllocate_extent_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Deallocate_unused_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public DEALLOCATE(): TerminalNode {
		return this.getToken(PlSqlParser.DEALLOCATE, 0);
	}
	public UNUSED(): TerminalNode {
		return this.getToken(PlSqlParser.UNUSED, 0);
	}
	public KEEP(): TerminalNode {
		return this.getToken(PlSqlParser.KEEP, 0);
	}
	public size_clause(): Size_clauseContext {
		return this.getTypedRuleContext(Size_clauseContext, 0) as Size_clauseContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_deallocate_unused_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterDeallocate_unused_clause) {
	 		listener.enterDeallocate_unused_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitDeallocate_unused_clause) {
	 		listener.exitDeallocate_unused_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitDeallocate_unused_clause) {
			return visitor.visitDeallocate_unused_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Shrink_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public SHRINK(): TerminalNode {
		return this.getToken(PlSqlParser.SHRINK, 0);
	}
	public SPACE_KEYWORD(): TerminalNode {
		return this.getToken(PlSqlParser.SPACE_KEYWORD, 0);
	}
	public COMPACT(): TerminalNode {
		return this.getToken(PlSqlParser.COMPACT, 0);
	}
	public CASCADE(): TerminalNode {
		return this.getToken(PlSqlParser.CASCADE, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_shrink_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterShrink_clause) {
	 		listener.enterShrink_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitShrink_clause) {
	 		listener.exitShrink_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitShrink_clause) {
			return visitor.visitShrink_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Records_per_block_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public RECORDS_PER_BLOCK(): TerminalNode {
		return this.getToken(PlSqlParser.RECORDS_PER_BLOCK, 0);
	}
	public MINIMIZE(): TerminalNode {
		return this.getToken(PlSqlParser.MINIMIZE, 0);
	}
	public NOMINIMIZE(): TerminalNode {
		return this.getToken(PlSqlParser.NOMINIMIZE, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_records_per_block_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterRecords_per_block_clause) {
	 		listener.enterRecords_per_block_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitRecords_per_block_clause) {
	 		listener.exitRecords_per_block_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitRecords_per_block_clause) {
			return visitor.visitRecords_per_block_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Upgrade_table_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public UPGRADE(): TerminalNode {
		return this.getToken(PlSqlParser.UPGRADE, 0);
	}
	public column_properties(): Column_propertiesContext {
		return this.getTypedRuleContext(Column_propertiesContext, 0) as Column_propertiesContext;
	}
	public INCLUDING(): TerminalNode {
		return this.getToken(PlSqlParser.INCLUDING, 0);
	}
	public DATA(): TerminalNode {
		return this.getToken(PlSqlParser.DATA, 0);
	}
	public NOT(): TerminalNode {
		return this.getToken(PlSqlParser.NOT, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_upgrade_table_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterUpgrade_table_clause) {
	 		listener.enterUpgrade_table_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitUpgrade_table_clause) {
	 		listener.exitUpgrade_table_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitUpgrade_table_clause) {
			return visitor.visitUpgrade_table_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Drop_tableContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public DROP(): TerminalNode {
		return this.getToken(PlSqlParser.DROP, 0);
	}
	public TABLE(): TerminalNode {
		return this.getToken(PlSqlParser.TABLE, 0);
	}
	public tableview_name(): Tableview_nameContext {
		return this.getTypedRuleContext(Tableview_nameContext, 0) as Tableview_nameContext;
	}
	public SEMICOLON(): TerminalNode {
		return this.getToken(PlSqlParser.SEMICOLON, 0);
	}
	public PURGE(): TerminalNode {
		return this.getToken(PlSqlParser.PURGE, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_drop_table;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterDrop_table) {
	 		listener.enterDrop_table(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitDrop_table) {
	 		listener.exitDrop_table(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitDrop_table) {
			return visitor.visitDrop_table(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Drop_viewContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public DROP(): TerminalNode {
		return this.getToken(PlSqlParser.DROP, 0);
	}
	public VIEW(): TerminalNode {
		return this.getToken(PlSqlParser.VIEW, 0);
	}
	public tableview_name(): Tableview_nameContext {
		return this.getTypedRuleContext(Tableview_nameContext, 0) as Tableview_nameContext;
	}
	public SEMICOLON(): TerminalNode {
		return this.getToken(PlSqlParser.SEMICOLON, 0);
	}
	public CASCADE(): TerminalNode {
		return this.getToken(PlSqlParser.CASCADE, 0);
	}
	public CONSTRAINT(): TerminalNode {
		return this.getToken(PlSqlParser.CONSTRAINT, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_drop_view;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterDrop_view) {
	 		listener.enterDrop_view(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitDrop_view) {
	 		listener.exitDrop_view(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitDrop_view) {
			return visitor.visitDrop_view(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Comment_on_columnContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public COMMENT(): TerminalNode {
		return this.getToken(PlSqlParser.COMMENT, 0);
	}
	public ON(): TerminalNode {
		return this.getToken(PlSqlParser.ON, 0);
	}
	public COLUMN(): TerminalNode {
		return this.getToken(PlSqlParser.COLUMN, 0);
	}
	public column_name(): Column_nameContext {
		return this.getTypedRuleContext(Column_nameContext, 0) as Column_nameContext;
	}
	public IS(): TerminalNode {
		return this.getToken(PlSqlParser.IS, 0);
	}
	public quoted_string(): Quoted_stringContext {
		return this.getTypedRuleContext(Quoted_stringContext, 0) as Quoted_stringContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_comment_on_column;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterComment_on_column) {
	 		listener.enterComment_on_column(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitComment_on_column) {
	 		listener.exitComment_on_column(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitComment_on_column) {
			return visitor.visitComment_on_column(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Enable_or_disableContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public ENABLE(): TerminalNode {
		return this.getToken(PlSqlParser.ENABLE, 0);
	}
	public DISABLE(): TerminalNode {
		return this.getToken(PlSqlParser.DISABLE, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_enable_or_disable;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterEnable_or_disable) {
	 		listener.enterEnable_or_disable(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitEnable_or_disable) {
	 		listener.exitEnable_or_disable(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitEnable_or_disable) {
			return visitor.visitEnable_or_disable(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Allow_or_disallowContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public ALLOW(): TerminalNode {
		return this.getToken(PlSqlParser.ALLOW, 0);
	}
	public DISALLOW(): TerminalNode {
		return this.getToken(PlSqlParser.DISALLOW, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_allow_or_disallow;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterAllow_or_disallow) {
	 		listener.enterAllow_or_disallow(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitAllow_or_disallow) {
	 		listener.exitAllow_or_disallow(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitAllow_or_disallow) {
			return visitor.visitAllow_or_disallow(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Create_synonymContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public CREATE(): TerminalNode {
		return this.getToken(PlSqlParser.CREATE, 0);
	}
	public PUBLIC(): TerminalNode {
		return this.getToken(PlSqlParser.PUBLIC, 0);
	}
	public SYNONYM(): TerminalNode {
		return this.getToken(PlSqlParser.SYNONYM, 0);
	}
	public synonym_name(): Synonym_nameContext {
		return this.getTypedRuleContext(Synonym_nameContext, 0) as Synonym_nameContext;
	}
	public FOR(): TerminalNode {
		return this.getToken(PlSqlParser.FOR, 0);
	}
	public schema_object_name(): Schema_object_nameContext {
		return this.getTypedRuleContext(Schema_object_nameContext, 0) as Schema_object_nameContext;
	}
	public OR(): TerminalNode {
		return this.getToken(PlSqlParser.OR, 0);
	}
	public REPLACE(): TerminalNode {
		return this.getToken(PlSqlParser.REPLACE, 0);
	}
	public schema_name_list(): Schema_nameContext[] {
		return this.getTypedRuleContexts(Schema_nameContext) as Schema_nameContext[];
	}
	public schema_name(i: number): Schema_nameContext {
		return this.getTypedRuleContext(Schema_nameContext, i) as Schema_nameContext;
	}
	public PERIOD_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.PERIOD);
	}
	public PERIOD(i: number): TerminalNode {
		return this.getToken(PlSqlParser.PERIOD, i);
	}
	public AT_SIGN(): TerminalNode {
		return this.getToken(PlSqlParser.AT_SIGN, 0);
	}
	public link_name(): Link_nameContext {
		return this.getTypedRuleContext(Link_nameContext, 0) as Link_nameContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_create_synonym;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterCreate_synonym) {
	 		listener.enterCreate_synonym(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitCreate_synonym) {
	 		listener.exitCreate_synonym(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitCreate_synonym) {
			return visitor.visitCreate_synonym(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Comment_on_tableContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public COMMENT(): TerminalNode {
		return this.getToken(PlSqlParser.COMMENT, 0);
	}
	public ON(): TerminalNode {
		return this.getToken(PlSqlParser.ON, 0);
	}
	public TABLE(): TerminalNode {
		return this.getToken(PlSqlParser.TABLE, 0);
	}
	public tableview_name(): Tableview_nameContext {
		return this.getTypedRuleContext(Tableview_nameContext, 0) as Tableview_nameContext;
	}
	public IS(): TerminalNode {
		return this.getToken(PlSqlParser.IS, 0);
	}
	public quoted_string(): Quoted_stringContext {
		return this.getTypedRuleContext(Quoted_stringContext, 0) as Quoted_stringContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_comment_on_table;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterComment_on_table) {
	 		listener.enterComment_on_table(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitComment_on_table) {
	 		listener.exitComment_on_table(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitComment_on_table) {
			return visitor.visitComment_on_table(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Alter_clusterContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public ALTER(): TerminalNode {
		return this.getToken(PlSqlParser.ALTER, 0);
	}
	public CLUSTER(): TerminalNode {
		return this.getToken(PlSqlParser.CLUSTER, 0);
	}
	public cluster_name(): Cluster_nameContext {
		return this.getTypedRuleContext(Cluster_nameContext, 0) as Cluster_nameContext;
	}
	public SEMICOLON(): TerminalNode {
		return this.getToken(PlSqlParser.SEMICOLON, 0);
	}
	public physical_attributes_clause_list(): Physical_attributes_clauseContext[] {
		return this.getTypedRuleContexts(Physical_attributes_clauseContext) as Physical_attributes_clauseContext[];
	}
	public physical_attributes_clause(i: number): Physical_attributes_clauseContext {
		return this.getTypedRuleContext(Physical_attributes_clauseContext, i) as Physical_attributes_clauseContext;
	}
	public SIZE_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.SIZE);
	}
	public SIZE(i: number): TerminalNode {
		return this.getToken(PlSqlParser.SIZE, i);
	}
	public size_clause_list(): Size_clauseContext[] {
		return this.getTypedRuleContexts(Size_clauseContext) as Size_clauseContext[];
	}
	public size_clause(i: number): Size_clauseContext {
		return this.getTypedRuleContext(Size_clauseContext, i) as Size_clauseContext;
	}
	public allocate_extent_clause_list(): Allocate_extent_clauseContext[] {
		return this.getTypedRuleContexts(Allocate_extent_clauseContext) as Allocate_extent_clauseContext[];
	}
	public allocate_extent_clause(i: number): Allocate_extent_clauseContext {
		return this.getTypedRuleContext(Allocate_extent_clauseContext, i) as Allocate_extent_clauseContext;
	}
	public deallocate_unused_clause_list(): Deallocate_unused_clauseContext[] {
		return this.getTypedRuleContexts(Deallocate_unused_clauseContext) as Deallocate_unused_clauseContext[];
	}
	public deallocate_unused_clause(i: number): Deallocate_unused_clauseContext {
		return this.getTypedRuleContext(Deallocate_unused_clauseContext, i) as Deallocate_unused_clauseContext;
	}
	public cache_or_nocache_list(): Cache_or_nocacheContext[] {
		return this.getTypedRuleContexts(Cache_or_nocacheContext) as Cache_or_nocacheContext[];
	}
	public cache_or_nocache(i: number): Cache_or_nocacheContext {
		return this.getTypedRuleContext(Cache_or_nocacheContext, i) as Cache_or_nocacheContext;
	}
	public parallel_clause(): Parallel_clauseContext {
		return this.getTypedRuleContext(Parallel_clauseContext, 0) as Parallel_clauseContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_alter_cluster;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterAlter_cluster) {
	 		listener.enterAlter_cluster(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitAlter_cluster) {
	 		listener.exitAlter_cluster(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitAlter_cluster) {
			return visitor.visitAlter_cluster(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Cache_or_nocacheContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public CACHE(): TerminalNode {
		return this.getToken(PlSqlParser.CACHE, 0);
	}
	public NOCACHE(): TerminalNode {
		return this.getToken(PlSqlParser.NOCACHE, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_cache_or_nocache;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterCache_or_nocache) {
	 		listener.enterCache_or_nocache(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitCache_or_nocache) {
	 		listener.exitCache_or_nocache(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitCache_or_nocache) {
			return visitor.visitCache_or_nocache(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Database_nameContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public regular_id(): Regular_idContext {
		return this.getTypedRuleContext(Regular_idContext, 0) as Regular_idContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_database_name;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterDatabase_name) {
	 		listener.enterDatabase_name(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitDatabase_name) {
	 		listener.exitDatabase_name(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitDatabase_name) {
			return visitor.visitDatabase_name(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Alter_databaseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public ALTER(): TerminalNode {
		return this.getToken(PlSqlParser.ALTER, 0);
	}
	public DATABASE(): TerminalNode {
		return this.getToken(PlSqlParser.DATABASE, 0);
	}
	public SEMICOLON(): TerminalNode {
		return this.getToken(PlSqlParser.SEMICOLON, 0);
	}
	public startup_clauses(): Startup_clausesContext {
		return this.getTypedRuleContext(Startup_clausesContext, 0) as Startup_clausesContext;
	}
	public recovery_clauses(): Recovery_clausesContext {
		return this.getTypedRuleContext(Recovery_clausesContext, 0) as Recovery_clausesContext;
	}
	public database_file_clauses(): Database_file_clausesContext {
		return this.getTypedRuleContext(Database_file_clausesContext, 0) as Database_file_clausesContext;
	}
	public logfile_clauses(): Logfile_clausesContext {
		return this.getTypedRuleContext(Logfile_clausesContext, 0) as Logfile_clausesContext;
	}
	public controlfile_clauses(): Controlfile_clausesContext {
		return this.getTypedRuleContext(Controlfile_clausesContext, 0) as Controlfile_clausesContext;
	}
	public standby_database_clauses(): Standby_database_clausesContext {
		return this.getTypedRuleContext(Standby_database_clausesContext, 0) as Standby_database_clausesContext;
	}
	public default_settings_clause(): Default_settings_clauseContext {
		return this.getTypedRuleContext(Default_settings_clauseContext, 0) as Default_settings_clauseContext;
	}
	public instance_clauses(): Instance_clausesContext {
		return this.getTypedRuleContext(Instance_clausesContext, 0) as Instance_clausesContext;
	}
	public security_clause(): Security_clauseContext {
		return this.getTypedRuleContext(Security_clauseContext, 0) as Security_clauseContext;
	}
	public database_name(): Database_nameContext {
		return this.getTypedRuleContext(Database_nameContext, 0) as Database_nameContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_alter_database;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterAlter_database) {
	 		listener.enterAlter_database(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitAlter_database) {
	 		listener.exitAlter_database(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitAlter_database) {
			return visitor.visitAlter_database(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Startup_clausesContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public MOUNT(): TerminalNode {
		return this.getToken(PlSqlParser.MOUNT, 0);
	}
	public DATABASE(): TerminalNode {
		return this.getToken(PlSqlParser.DATABASE, 0);
	}
	public STANDBY(): TerminalNode {
		return this.getToken(PlSqlParser.STANDBY, 0);
	}
	public CLONE(): TerminalNode {
		return this.getToken(PlSqlParser.CLONE, 0);
	}
	public OPEN(): TerminalNode {
		return this.getToken(PlSqlParser.OPEN, 0);
	}
	public READ(): TerminalNode {
		return this.getToken(PlSqlParser.READ, 0);
	}
	public WRITE(): TerminalNode {
		return this.getToken(PlSqlParser.WRITE, 0);
	}
	public resetlogs_or_noresetlogs(): Resetlogs_or_noresetlogsContext {
		return this.getTypedRuleContext(Resetlogs_or_noresetlogsContext, 0) as Resetlogs_or_noresetlogsContext;
	}
	public upgrade_or_downgrade(): Upgrade_or_downgradeContext {
		return this.getTypedRuleContext(Upgrade_or_downgradeContext, 0) as Upgrade_or_downgradeContext;
	}
	public ONLY(): TerminalNode {
		return this.getToken(PlSqlParser.ONLY, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_startup_clauses;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterStartup_clauses) {
	 		listener.enterStartup_clauses(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitStartup_clauses) {
	 		listener.exitStartup_clauses(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitStartup_clauses) {
			return visitor.visitStartup_clauses(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Resetlogs_or_noresetlogsContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public RESETLOGS(): TerminalNode {
		return this.getToken(PlSqlParser.RESETLOGS, 0);
	}
	public NORESETLOGS(): TerminalNode {
		return this.getToken(PlSqlParser.NORESETLOGS, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_resetlogs_or_noresetlogs;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterResetlogs_or_noresetlogs) {
	 		listener.enterResetlogs_or_noresetlogs(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitResetlogs_or_noresetlogs) {
	 		listener.exitResetlogs_or_noresetlogs(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitResetlogs_or_noresetlogs) {
			return visitor.visitResetlogs_or_noresetlogs(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Upgrade_or_downgradeContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public UPGRADE(): TerminalNode {
		return this.getToken(PlSqlParser.UPGRADE, 0);
	}
	public DOWNGRADE(): TerminalNode {
		return this.getToken(PlSqlParser.DOWNGRADE, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_upgrade_or_downgrade;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterUpgrade_or_downgrade) {
	 		listener.enterUpgrade_or_downgrade(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitUpgrade_or_downgrade) {
	 		listener.exitUpgrade_or_downgrade(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitUpgrade_or_downgrade) {
			return visitor.visitUpgrade_or_downgrade(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Recovery_clausesContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public general_recovery(): General_recoveryContext {
		return this.getTypedRuleContext(General_recoveryContext, 0) as General_recoveryContext;
	}
	public managed_standby_recovery(): Managed_standby_recoveryContext {
		return this.getTypedRuleContext(Managed_standby_recoveryContext, 0) as Managed_standby_recoveryContext;
	}
	public begin_or_end(): Begin_or_endContext {
		return this.getTypedRuleContext(Begin_or_endContext, 0) as Begin_or_endContext;
	}
	public BACKUP(): TerminalNode {
		return this.getToken(PlSqlParser.BACKUP, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_recovery_clauses;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterRecovery_clauses) {
	 		listener.enterRecovery_clauses(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitRecovery_clauses) {
	 		listener.exitRecovery_clauses(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitRecovery_clauses) {
			return visitor.visitRecovery_clauses(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Begin_or_endContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public BEGIN(): TerminalNode {
		return this.getToken(PlSqlParser.BEGIN, 0);
	}
	public END(): TerminalNode {
		return this.getToken(PlSqlParser.END, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_begin_or_end;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterBegin_or_end) {
	 		listener.enterBegin_or_end(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitBegin_or_end) {
	 		listener.exitBegin_or_end(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitBegin_or_end) {
			return visitor.visitBegin_or_end(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class General_recoveryContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public RECOVER(): TerminalNode {
		return this.getToken(PlSqlParser.RECOVER, 0);
	}
	public CONTINUE(): TerminalNode {
		return this.getToken(PlSqlParser.CONTINUE, 0);
	}
	public CANCEL(): TerminalNode {
		return this.getToken(PlSqlParser.CANCEL, 0);
	}
	public AUTOMATIC(): TerminalNode {
		return this.getToken(PlSqlParser.AUTOMATIC, 0);
	}
	public FROM(): TerminalNode {
		return this.getToken(PlSqlParser.FROM, 0);
	}
	public CHAR_STRING_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.CHAR_STRING);
	}
	public CHAR_STRING(i: number): TerminalNode {
		return this.getToken(PlSqlParser.CHAR_STRING, i);
	}
	public full_database_recovery(): Full_database_recoveryContext {
		return this.getTypedRuleContext(Full_database_recoveryContext, 0) as Full_database_recoveryContext;
	}
	public partial_database_recovery(): Partial_database_recoveryContext {
		return this.getTypedRuleContext(Partial_database_recoveryContext, 0) as Partial_database_recoveryContext;
	}
	public LOGFILE(): TerminalNode {
		return this.getToken(PlSqlParser.LOGFILE, 0);
	}
	public DEFAULT(): TerminalNode {
		return this.getToken(PlSqlParser.DEFAULT, 0);
	}
	public TEST_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.TEST);
	}
	public TEST(i: number): TerminalNode {
		return this.getToken(PlSqlParser.TEST, i);
	}
	public ALLOW_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.ALLOW);
	}
	public ALLOW(i: number): TerminalNode {
		return this.getToken(PlSqlParser.ALLOW, i);
	}
	public UNSIGNED_INTEGER_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.UNSIGNED_INTEGER);
	}
	public UNSIGNED_INTEGER(i: number): TerminalNode {
		return this.getToken(PlSqlParser.UNSIGNED_INTEGER, i);
	}
	public CORRUPTION_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.CORRUPTION);
	}
	public CORRUPTION(i: number): TerminalNode {
		return this.getToken(PlSqlParser.CORRUPTION, i);
	}
	public parallel_clause_list(): Parallel_clauseContext[] {
		return this.getTypedRuleContexts(Parallel_clauseContext) as Parallel_clauseContext[];
	}
	public parallel_clause(i: number): Parallel_clauseContext {
		return this.getTypedRuleContext(Parallel_clauseContext, i) as Parallel_clauseContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_general_recovery;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterGeneral_recovery) {
	 		listener.enterGeneral_recovery(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitGeneral_recovery) {
	 		listener.exitGeneral_recovery(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitGeneral_recovery) {
			return visitor.visitGeneral_recovery(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Full_database_recoveryContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public DATABASE(): TerminalNode {
		return this.getToken(PlSqlParser.DATABASE, 0);
	}
	public STANDBY(): TerminalNode {
		return this.getToken(PlSqlParser.STANDBY, 0);
	}
	public UNTIL_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.UNTIL);
	}
	public UNTIL(i: number): TerminalNode {
		return this.getToken(PlSqlParser.UNTIL, i);
	}
	public USING_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.USING);
	}
	public USING(i: number): TerminalNode {
		return this.getToken(PlSqlParser.USING, i);
	}
	public BACKUP_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.BACKUP);
	}
	public BACKUP(i: number): TerminalNode {
		return this.getToken(PlSqlParser.BACKUP, i);
	}
	public CONTROLFILE_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.CONTROLFILE);
	}
	public CONTROLFILE(i: number): TerminalNode {
		return this.getToken(PlSqlParser.CONTROLFILE, i);
	}
	public CANCEL_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.CANCEL);
	}
	public CANCEL(i: number): TerminalNode {
		return this.getToken(PlSqlParser.CANCEL, i);
	}
	public TIME_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.TIME);
	}
	public TIME(i: number): TerminalNode {
		return this.getToken(PlSqlParser.TIME, i);
	}
	public CHAR_STRING_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.CHAR_STRING);
	}
	public CHAR_STRING(i: number): TerminalNode {
		return this.getToken(PlSqlParser.CHAR_STRING, i);
	}
	public CHANGE_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.CHANGE);
	}
	public CHANGE(i: number): TerminalNode {
		return this.getToken(PlSqlParser.CHANGE, i);
	}
	public UNSIGNED_INTEGER_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.UNSIGNED_INTEGER);
	}
	public UNSIGNED_INTEGER(i: number): TerminalNode {
		return this.getToken(PlSqlParser.UNSIGNED_INTEGER, i);
	}
	public CONSISTENT_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.CONSISTENT);
	}
	public CONSISTENT(i: number): TerminalNode {
		return this.getToken(PlSqlParser.CONSISTENT, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_full_database_recovery;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterFull_database_recovery) {
	 		listener.enterFull_database_recovery(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitFull_database_recovery) {
	 		listener.exitFull_database_recovery(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitFull_database_recovery) {
			return visitor.visitFull_database_recovery(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Partial_database_recoveryContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public TABLESPACE(): TerminalNode {
		return this.getToken(PlSqlParser.TABLESPACE, 0);
	}
	public tablespace_list(): TablespaceContext[] {
		return this.getTypedRuleContexts(TablespaceContext) as TablespaceContext[];
	}
	public tablespace(i: number): TablespaceContext {
		return this.getTypedRuleContext(TablespaceContext, i) as TablespaceContext;
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
	public DATAFILE(): TerminalNode {
		return this.getToken(PlSqlParser.DATAFILE, 0);
	}
	public CHAR_STRING_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.CHAR_STRING);
	}
	public CHAR_STRING(i: number): TerminalNode {
		return this.getToken(PlSqlParser.CHAR_STRING, i);
	}
	public filenumber_list(): FilenumberContext[] {
		return this.getTypedRuleContexts(FilenumberContext) as FilenumberContext[];
	}
	public filenumber(i: number): FilenumberContext {
		return this.getTypedRuleContext(FilenumberContext, i) as FilenumberContext;
	}
	public partial_database_recovery_10g(): Partial_database_recovery_10gContext {
		return this.getTypedRuleContext(Partial_database_recovery_10gContext, 0) as Partial_database_recovery_10gContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_partial_database_recovery;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterPartial_database_recovery) {
	 		listener.enterPartial_database_recovery(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitPartial_database_recovery) {
	 		listener.exitPartial_database_recovery(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitPartial_database_recovery) {
			return visitor.visitPartial_database_recovery(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Partial_database_recovery_10gContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public STANDBY(): TerminalNode {
		return this.getToken(PlSqlParser.STANDBY, 0);
	}
	public UNTIL(): TerminalNode {
		return this.getToken(PlSqlParser.UNTIL, 0);
	}
	public CONTROLFILE(): TerminalNode {
		return this.getToken(PlSqlParser.CONTROLFILE, 0);
	}
	public TABLESPACE(): TerminalNode {
		return this.getToken(PlSqlParser.TABLESPACE, 0);
	}
	public tablespace_list(): TablespaceContext[] {
		return this.getTypedRuleContexts(TablespaceContext) as TablespaceContext[];
	}
	public tablespace(i: number): TablespaceContext {
		return this.getTypedRuleContext(TablespaceContext, i) as TablespaceContext;
	}
	public DATAFILE(): TerminalNode {
		return this.getToken(PlSqlParser.DATAFILE, 0);
	}
	public CHAR_STRING_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.CHAR_STRING);
	}
	public CHAR_STRING(i: number): TerminalNode {
		return this.getToken(PlSqlParser.CHAR_STRING, i);
	}
	public filenumber_list(): FilenumberContext[] {
		return this.getTypedRuleContexts(FilenumberContext) as FilenumberContext[];
	}
	public filenumber(i: number): FilenumberContext {
		return this.getTypedRuleContext(FilenumberContext, i) as FilenumberContext;
	}
	public CONSISTENT(): TerminalNode {
		return this.getToken(PlSqlParser.CONSISTENT, 0);
	}
	public WITH(): TerminalNode {
		return this.getToken(PlSqlParser.WITH, 0);
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_partial_database_recovery_10g;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterPartial_database_recovery_10g) {
	 		listener.enterPartial_database_recovery_10g(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitPartial_database_recovery_10g) {
	 		listener.exitPartial_database_recovery_10g(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitPartial_database_recovery_10g) {
			return visitor.visitPartial_database_recovery_10g(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Managed_standby_recoveryContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public RECOVER(): TerminalNode {
		return this.getToken(PlSqlParser.RECOVER, 0);
	}
	public MANAGED(): TerminalNode {
		return this.getToken(PlSqlParser.MANAGED, 0);
	}
	public STANDBY(): TerminalNode {
		return this.getToken(PlSqlParser.STANDBY, 0);
	}
	public DATABASE(): TerminalNode {
		return this.getToken(PlSqlParser.DATABASE, 0);
	}
	public TO(): TerminalNode {
		return this.getToken(PlSqlParser.TO, 0);
	}
	public LOGICAL(): TerminalNode {
		return this.getToken(PlSqlParser.LOGICAL, 0);
	}
	public db_name(): Db_nameContext {
		return this.getTypedRuleContext(Db_nameContext, 0) as Db_nameContext;
	}
	public KEEP(): TerminalNode {
		return this.getToken(PlSqlParser.KEEP, 0);
	}
	public IDENTITY(): TerminalNode {
		return this.getToken(PlSqlParser.IDENTITY, 0);
	}
	public FINISH(): TerminalNode {
		return this.getToken(PlSqlParser.FINISH, 0);
	}
	public CANCEL(): TerminalNode {
		return this.getToken(PlSqlParser.CANCEL, 0);
	}
	public USING_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.USING);
	}
	public USING(i: number): TerminalNode {
		return this.getToken(PlSqlParser.USING, i);
	}
	public CURRENT_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.CURRENT);
	}
	public CURRENT(i: number): TerminalNode {
		return this.getToken(PlSqlParser.CURRENT, i);
	}
	public LOGFILE_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.LOGFILE);
	}
	public LOGFILE(i: number): TerminalNode {
		return this.getToken(PlSqlParser.LOGFILE, i);
	}
	public DISCONNECT_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.DISCONNECT);
	}
	public DISCONNECT(i: number): TerminalNode {
		return this.getToken(PlSqlParser.DISCONNECT, i);
	}
	public NODELAY_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.NODELAY);
	}
	public NODELAY(i: number): TerminalNode {
		return this.getToken(PlSqlParser.NODELAY, i);
	}
	public UNTIL_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.UNTIL);
	}
	public UNTIL(i: number): TerminalNode {
		return this.getToken(PlSqlParser.UNTIL, i);
	}
	public CHANGE_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.CHANGE);
	}
	public CHANGE(i: number): TerminalNode {
		return this.getToken(PlSqlParser.CHANGE, i);
	}
	public UNSIGNED_INTEGER_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.UNSIGNED_INTEGER);
	}
	public UNSIGNED_INTEGER(i: number): TerminalNode {
		return this.getToken(PlSqlParser.UNSIGNED_INTEGER, i);
	}
	public CONSISTENT_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.CONSISTENT);
	}
	public CONSISTENT(i: number): TerminalNode {
		return this.getToken(PlSqlParser.CONSISTENT, i);
	}
	public parallel_clause_list(): Parallel_clauseContext[] {
		return this.getTypedRuleContexts(Parallel_clauseContext) as Parallel_clauseContext[];
	}
	public parallel_clause(i: number): Parallel_clauseContext {
		return this.getTypedRuleContext(Parallel_clauseContext, i) as Parallel_clauseContext;
	}
	public FROM_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.FROM);
	}
	public FROM(i: number): TerminalNode {
		return this.getToken(PlSqlParser.FROM, i);
	}
	public SESSION_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.SESSION);
	}
	public SESSION(i: number): TerminalNode {
		return this.getToken(PlSqlParser.SESSION, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_managed_standby_recovery;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterManaged_standby_recovery) {
	 		listener.enterManaged_standby_recovery(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitManaged_standby_recovery) {
	 		listener.exitManaged_standby_recovery(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitManaged_standby_recovery) {
			return visitor.visitManaged_standby_recovery(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Db_nameContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public regular_id(): Regular_idContext {
		return this.getTypedRuleContext(Regular_idContext, 0) as Regular_idContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_db_name;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterDb_name) {
	 		listener.enterDb_name(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitDb_name) {
	 		listener.exitDb_name(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitDb_name) {
			return visitor.visitDb_name(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Database_file_clausesContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public RENAME(): TerminalNode {
		return this.getToken(PlSqlParser.RENAME, 0);
	}
	public FILE(): TerminalNode {
		return this.getToken(PlSqlParser.FILE, 0);
	}
	public filename_list(): FilenameContext[] {
		return this.getTypedRuleContexts(FilenameContext) as FilenameContext[];
	}
	public filename(i: number): FilenameContext {
		return this.getTypedRuleContext(FilenameContext, i) as FilenameContext;
	}
	public TO(): TerminalNode {
		return this.getToken(PlSqlParser.TO, 0);
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
	public create_datafile_clause(): Create_datafile_clauseContext {
		return this.getTypedRuleContext(Create_datafile_clauseContext, 0) as Create_datafile_clauseContext;
	}
	public alter_datafile_clause(): Alter_datafile_clauseContext {
		return this.getTypedRuleContext(Alter_datafile_clauseContext, 0) as Alter_datafile_clauseContext;
	}
	public alter_tempfile_clause(): Alter_tempfile_clauseContext {
		return this.getTypedRuleContext(Alter_tempfile_clauseContext, 0) as Alter_tempfile_clauseContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_database_file_clauses;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterDatabase_file_clauses) {
	 		listener.enterDatabase_file_clauses(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitDatabase_file_clauses) {
	 		listener.exitDatabase_file_clauses(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitDatabase_file_clauses) {
			return visitor.visitDatabase_file_clauses(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Create_datafile_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public CREATE(): TerminalNode {
		return this.getToken(PlSqlParser.CREATE, 0);
	}
	public DATAFILE(): TerminalNode {
		return this.getToken(PlSqlParser.DATAFILE, 0);
	}
	public filename_list(): FilenameContext[] {
		return this.getTypedRuleContexts(FilenameContext) as FilenameContext[];
	}
	public filename(i: number): FilenameContext {
		return this.getTypedRuleContext(FilenameContext, i) as FilenameContext;
	}
	public filenumber_list(): FilenumberContext[] {
		return this.getTypedRuleContexts(FilenumberContext) as FilenumberContext[];
	}
	public filenumber(i: number): FilenumberContext {
		return this.getTypedRuleContext(FilenumberContext, i) as FilenumberContext;
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
	public AS(): TerminalNode {
		return this.getToken(PlSqlParser.AS, 0);
	}
	public NEW(): TerminalNode {
		return this.getToken(PlSqlParser.NEW, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_create_datafile_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterCreate_datafile_clause) {
	 		listener.enterCreate_datafile_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitCreate_datafile_clause) {
	 		listener.exitCreate_datafile_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitCreate_datafile_clause) {
			return visitor.visitCreate_datafile_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Alter_datafile_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public DATAFILE(): TerminalNode {
		return this.getToken(PlSqlParser.DATAFILE, 0);
	}
	public filename_list(): FilenameContext[] {
		return this.getTypedRuleContexts(FilenameContext) as FilenameContext[];
	}
	public filename(i: number): FilenameContext {
		return this.getTypedRuleContext(FilenameContext, i) as FilenameContext;
	}
	public filenumber_list(): FilenumberContext[] {
		return this.getTypedRuleContexts(FilenumberContext) as FilenumberContext[];
	}
	public filenumber(i: number): FilenumberContext {
		return this.getTypedRuleContext(FilenumberContext, i) as FilenumberContext;
	}
	public ONLINE(): TerminalNode {
		return this.getToken(PlSqlParser.ONLINE, 0);
	}
	public OFFLINE(): TerminalNode {
		return this.getToken(PlSqlParser.OFFLINE, 0);
	}
	public RESIZE(): TerminalNode {
		return this.getToken(PlSqlParser.RESIZE, 0);
	}
	public size_clause(): Size_clauseContext {
		return this.getTypedRuleContext(Size_clauseContext, 0) as Size_clauseContext;
	}
	public autoextend_clause(): Autoextend_clauseContext {
		return this.getTypedRuleContext(Autoextend_clauseContext, 0) as Autoextend_clauseContext;
	}
	public END(): TerminalNode {
		return this.getToken(PlSqlParser.END, 0);
	}
	public BACKUP(): TerminalNode {
		return this.getToken(PlSqlParser.BACKUP, 0);
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
	public FOR(): TerminalNode {
		return this.getToken(PlSqlParser.FOR, 0);
	}
	public DROP(): TerminalNode {
		return this.getToken(PlSqlParser.DROP, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_alter_datafile_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterAlter_datafile_clause) {
	 		listener.enterAlter_datafile_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitAlter_datafile_clause) {
	 		listener.exitAlter_datafile_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitAlter_datafile_clause) {
			return visitor.visitAlter_datafile_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Alter_tempfile_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public TEMPFILE(): TerminalNode {
		return this.getToken(PlSqlParser.TEMPFILE, 0);
	}
	public filename_list(): FilenameContext[] {
		return this.getTypedRuleContexts(FilenameContext) as FilenameContext[];
	}
	public filename(i: number): FilenameContext {
		return this.getTypedRuleContext(FilenameContext, i) as FilenameContext;
	}
	public filenumber_list(): FilenumberContext[] {
		return this.getTypedRuleContexts(FilenumberContext) as FilenumberContext[];
	}
	public filenumber(i: number): FilenumberContext {
		return this.getTypedRuleContext(FilenumberContext, i) as FilenumberContext;
	}
	public RESIZE(): TerminalNode {
		return this.getToken(PlSqlParser.RESIZE, 0);
	}
	public size_clause(): Size_clauseContext {
		return this.getTypedRuleContext(Size_clauseContext, 0) as Size_clauseContext;
	}
	public autoextend_clause(): Autoextend_clauseContext {
		return this.getTypedRuleContext(Autoextend_clauseContext, 0) as Autoextend_clauseContext;
	}
	public DROP(): TerminalNode {
		return this.getToken(PlSqlParser.DROP, 0);
	}
	public ONLINE(): TerminalNode {
		return this.getToken(PlSqlParser.ONLINE, 0);
	}
	public OFFLINE(): TerminalNode {
		return this.getToken(PlSqlParser.OFFLINE, 0);
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
	public INCLUDING(): TerminalNode {
		return this.getToken(PlSqlParser.INCLUDING, 0);
	}
	public DATAFILES(): TerminalNode {
		return this.getToken(PlSqlParser.DATAFILES, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_alter_tempfile_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterAlter_tempfile_clause) {
	 		listener.enterAlter_tempfile_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitAlter_tempfile_clause) {
	 		listener.exitAlter_tempfile_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitAlter_tempfile_clause) {
			return visitor.visitAlter_tempfile_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Logfile_clausesContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public ARCHIVELOG(): TerminalNode {
		return this.getToken(PlSqlParser.ARCHIVELOG, 0);
	}
	public NOARCHIVELOG(): TerminalNode {
		return this.getToken(PlSqlParser.NOARCHIVELOG, 0);
	}
	public MANUAL(): TerminalNode {
		return this.getToken(PlSqlParser.MANUAL, 0);
	}
	public FORCE(): TerminalNode {
		return this.getToken(PlSqlParser.FORCE, 0);
	}
	public LOGGING(): TerminalNode {
		return this.getToken(PlSqlParser.LOGGING, 0);
	}
	public NO(): TerminalNode {
		return this.getToken(PlSqlParser.NO, 0);
	}
	public RENAME(): TerminalNode {
		return this.getToken(PlSqlParser.RENAME, 0);
	}
	public FILE(): TerminalNode {
		return this.getToken(PlSqlParser.FILE, 0);
	}
	public filename_list(): FilenameContext[] {
		return this.getTypedRuleContexts(FilenameContext) as FilenameContext[];
	}
	public filename(i: number): FilenameContext {
		return this.getTypedRuleContext(FilenameContext, i) as FilenameContext;
	}
	public TO(): TerminalNode {
		return this.getToken(PlSqlParser.TO, 0);
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
	public CLEAR(): TerminalNode {
		return this.getToken(PlSqlParser.CLEAR, 0);
	}
	public LOGFILE(): TerminalNode {
		return this.getToken(PlSqlParser.LOGFILE, 0);
	}
	public logfile_descriptor_list(): Logfile_descriptorContext[] {
		return this.getTypedRuleContexts(Logfile_descriptorContext) as Logfile_descriptorContext[];
	}
	public logfile_descriptor(i: number): Logfile_descriptorContext {
		return this.getTypedRuleContext(Logfile_descriptorContext, i) as Logfile_descriptorContext;
	}
	public UNARCHIVED(): TerminalNode {
		return this.getToken(PlSqlParser.UNARCHIVED, 0);
	}
	public UNRECOVERABLE(): TerminalNode {
		return this.getToken(PlSqlParser.UNRECOVERABLE, 0);
	}
	public DATAFILE(): TerminalNode {
		return this.getToken(PlSqlParser.DATAFILE, 0);
	}
	public add_logfile_clauses(): Add_logfile_clausesContext {
		return this.getTypedRuleContext(Add_logfile_clausesContext, 0) as Add_logfile_clausesContext;
	}
	public drop_logfile_clauses(): Drop_logfile_clausesContext {
		return this.getTypedRuleContext(Drop_logfile_clausesContext, 0) as Drop_logfile_clausesContext;
	}
	public switch_logfile_clause(): Switch_logfile_clauseContext {
		return this.getTypedRuleContext(Switch_logfile_clauseContext, 0) as Switch_logfile_clauseContext;
	}
	public supplemental_db_logging(): Supplemental_db_loggingContext {
		return this.getTypedRuleContext(Supplemental_db_loggingContext, 0) as Supplemental_db_loggingContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_logfile_clauses;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterLogfile_clauses) {
	 		listener.enterLogfile_clauses(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitLogfile_clauses) {
	 		listener.exitLogfile_clauses(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitLogfile_clauses) {
			return visitor.visitLogfile_clauses(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Add_logfile_clausesContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public ADD(): TerminalNode {
		return this.getToken(PlSqlParser.ADD, 0);
	}
	public LOGFILE(): TerminalNode {
		return this.getToken(PlSqlParser.LOGFILE, 0);
	}
	public MEMBER(): TerminalNode {
		return this.getToken(PlSqlParser.MEMBER, 0);
	}
	public filename_list(): FilenameContext[] {
		return this.getTypedRuleContexts(FilenameContext) as FilenameContext[];
	}
	public filename(i: number): FilenameContext {
		return this.getTypedRuleContext(FilenameContext, i) as FilenameContext;
	}
	public TO(): TerminalNode {
		return this.getToken(PlSqlParser.TO, 0);
	}
	public logfile_descriptor_list(): Logfile_descriptorContext[] {
		return this.getTypedRuleContexts(Logfile_descriptorContext) as Logfile_descriptorContext[];
	}
	public logfile_descriptor(i: number): Logfile_descriptorContext {
		return this.getTypedRuleContext(Logfile_descriptorContext, i) as Logfile_descriptorContext;
	}
	public STANDBY(): TerminalNode {
		return this.getToken(PlSqlParser.STANDBY, 0);
	}
	public log_file_group_list(): Log_file_groupContext[] {
		return this.getTypedRuleContexts(Log_file_groupContext) as Log_file_groupContext[];
	}
	public log_file_group(i: number): Log_file_groupContext {
		return this.getTypedRuleContext(Log_file_groupContext, i) as Log_file_groupContext;
	}
	public redo_log_file_spec_list(): Redo_log_file_specContext[] {
		return this.getTypedRuleContexts(Redo_log_file_specContext) as Redo_log_file_specContext[];
	}
	public redo_log_file_spec(i: number): Redo_log_file_specContext {
		return this.getTypedRuleContext(Redo_log_file_specContext, i) as Redo_log_file_specContext;
	}
	public REUSE_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.REUSE);
	}
	public REUSE(i: number): TerminalNode {
		return this.getToken(PlSqlParser.REUSE, i);
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_add_logfile_clauses;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterAdd_logfile_clauses) {
	 		listener.enterAdd_logfile_clauses(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitAdd_logfile_clauses) {
	 		listener.exitAdd_logfile_clauses(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitAdd_logfile_clauses) {
			return visitor.visitAdd_logfile_clauses(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Log_file_groupContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public GROUP(): TerminalNode {
		return this.getToken(PlSqlParser.GROUP, 0);
	}
	public UNSIGNED_INTEGER_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.UNSIGNED_INTEGER);
	}
	public UNSIGNED_INTEGER(i: number): TerminalNode {
		return this.getToken(PlSqlParser.UNSIGNED_INTEGER, i);
	}
	public COMMA(): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, 0);
	}
	public THREAD(): TerminalNode {
		return this.getToken(PlSqlParser.THREAD, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_log_file_group;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterLog_file_group) {
	 		listener.enterLog_file_group(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitLog_file_group) {
	 		listener.exitLog_file_group(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitLog_file_group) {
			return visitor.visitLog_file_group(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Drop_logfile_clausesContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public DROP(): TerminalNode {
		return this.getToken(PlSqlParser.DROP, 0);
	}
	public LOGFILE(): TerminalNode {
		return this.getToken(PlSqlParser.LOGFILE, 0);
	}
	public logfile_descriptor_list(): Logfile_descriptorContext[] {
		return this.getTypedRuleContexts(Logfile_descriptorContext) as Logfile_descriptorContext[];
	}
	public logfile_descriptor(i: number): Logfile_descriptorContext {
		return this.getTypedRuleContext(Logfile_descriptorContext, i) as Logfile_descriptorContext;
	}
	public MEMBER(): TerminalNode {
		return this.getToken(PlSqlParser.MEMBER, 0);
	}
	public filename_list(): FilenameContext[] {
		return this.getTypedRuleContexts(FilenameContext) as FilenameContext[];
	}
	public filename(i: number): FilenameContext {
		return this.getTypedRuleContext(FilenameContext, i) as FilenameContext;
	}
	public STANDBY(): TerminalNode {
		return this.getToken(PlSqlParser.STANDBY, 0);
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_drop_logfile_clauses;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterDrop_logfile_clauses) {
	 		listener.enterDrop_logfile_clauses(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitDrop_logfile_clauses) {
	 		listener.exitDrop_logfile_clauses(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitDrop_logfile_clauses) {
			return visitor.visitDrop_logfile_clauses(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Switch_logfile_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public SWITCH(): TerminalNode {
		return this.getToken(PlSqlParser.SWITCH, 0);
	}
	public ALL(): TerminalNode {
		return this.getToken(PlSqlParser.ALL, 0);
	}
	public LOGFILES(): TerminalNode {
		return this.getToken(PlSqlParser.LOGFILES, 0);
	}
	public TO(): TerminalNode {
		return this.getToken(PlSqlParser.TO, 0);
	}
	public BLOCKSIZE(): TerminalNode {
		return this.getToken(PlSqlParser.BLOCKSIZE, 0);
	}
	public UNSIGNED_INTEGER(): TerminalNode {
		return this.getToken(PlSqlParser.UNSIGNED_INTEGER, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_switch_logfile_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterSwitch_logfile_clause) {
	 		listener.enterSwitch_logfile_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitSwitch_logfile_clause) {
	 		listener.exitSwitch_logfile_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitSwitch_logfile_clause) {
			return visitor.visitSwitch_logfile_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Supplemental_db_loggingContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public add_or_drop(): Add_or_dropContext {
		return this.getTypedRuleContext(Add_or_dropContext, 0) as Add_or_dropContext;
	}
	public SUPPLEMENTAL(): TerminalNode {
		return this.getToken(PlSqlParser.SUPPLEMENTAL, 0);
	}
	public LOG(): TerminalNode {
		return this.getToken(PlSqlParser.LOG, 0);
	}
	public DATA(): TerminalNode {
		return this.getToken(PlSqlParser.DATA, 0);
	}
	public supplemental_id_key_clause(): Supplemental_id_key_clauseContext {
		return this.getTypedRuleContext(Supplemental_id_key_clauseContext, 0) as Supplemental_id_key_clauseContext;
	}
	public supplemental_plsql_clause(): Supplemental_plsql_clauseContext {
		return this.getTypedRuleContext(Supplemental_plsql_clauseContext, 0) as Supplemental_plsql_clauseContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_supplemental_db_logging;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterSupplemental_db_logging) {
	 		listener.enterSupplemental_db_logging(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitSupplemental_db_logging) {
	 		listener.exitSupplemental_db_logging(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitSupplemental_db_logging) {
			return visitor.visitSupplemental_db_logging(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Add_or_dropContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public ADD(): TerminalNode {
		return this.getToken(PlSqlParser.ADD, 0);
	}
	public DROP(): TerminalNode {
		return this.getToken(PlSqlParser.DROP, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_add_or_drop;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterAdd_or_drop) {
	 		listener.enterAdd_or_drop(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitAdd_or_drop) {
	 		listener.exitAdd_or_drop(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitAdd_or_drop) {
			return visitor.visitAdd_or_drop(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Supplemental_plsql_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public DATA(): TerminalNode {
		return this.getToken(PlSqlParser.DATA, 0);
	}
	public FOR(): TerminalNode {
		return this.getToken(PlSqlParser.FOR, 0);
	}
	public PROCEDURAL(): TerminalNode {
		return this.getToken(PlSqlParser.PROCEDURAL, 0);
	}
	public REPLICATION(): TerminalNode {
		return this.getToken(PlSqlParser.REPLICATION, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_supplemental_plsql_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterSupplemental_plsql_clause) {
	 		listener.enterSupplemental_plsql_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitSupplemental_plsql_clause) {
	 		listener.exitSupplemental_plsql_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitSupplemental_plsql_clause) {
			return visitor.visitSupplemental_plsql_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Logfile_descriptorContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public GROUP(): TerminalNode {
		return this.getToken(PlSqlParser.GROUP, 0);
	}
	public UNSIGNED_INTEGER(): TerminalNode {
		return this.getToken(PlSqlParser.UNSIGNED_INTEGER, 0);
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public filename_list(): FilenameContext[] {
		return this.getTypedRuleContexts(FilenameContext) as FilenameContext[];
	}
	public filename(i: number): FilenameContext {
		return this.getTypedRuleContext(FilenameContext, i) as FilenameContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_logfile_descriptor;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterLogfile_descriptor) {
	 		listener.enterLogfile_descriptor(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitLogfile_descriptor) {
	 		listener.exitLogfile_descriptor(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitLogfile_descriptor) {
			return visitor.visitLogfile_descriptor(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Controlfile_clausesContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public CREATE(): TerminalNode {
		return this.getToken(PlSqlParser.CREATE, 0);
	}
	public STANDBY(): TerminalNode {
		return this.getToken(PlSqlParser.STANDBY, 0);
	}
	public CONTROLFILE(): TerminalNode {
		return this.getToken(PlSqlParser.CONTROLFILE, 0);
	}
	public AS(): TerminalNode {
		return this.getToken(PlSqlParser.AS, 0);
	}
	public filename(): FilenameContext {
		return this.getTypedRuleContext(FilenameContext, 0) as FilenameContext;
	}
	public REUSE(): TerminalNode {
		return this.getToken(PlSqlParser.REUSE, 0);
	}
	public LOGICAL(): TerminalNode {
		return this.getToken(PlSqlParser.LOGICAL, 0);
	}
	public PHYSICAL(): TerminalNode {
		return this.getToken(PlSqlParser.PHYSICAL, 0);
	}
	public BACKUP(): TerminalNode {
		return this.getToken(PlSqlParser.BACKUP, 0);
	}
	public TO(): TerminalNode {
		return this.getToken(PlSqlParser.TO, 0);
	}
	public trace_file_clause(): Trace_file_clauseContext {
		return this.getTypedRuleContext(Trace_file_clauseContext, 0) as Trace_file_clauseContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_controlfile_clauses;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterControlfile_clauses) {
	 		listener.enterControlfile_clauses(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitControlfile_clauses) {
	 		listener.exitControlfile_clauses(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitControlfile_clauses) {
			return visitor.visitControlfile_clauses(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Trace_file_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public TRACE(): TerminalNode {
		return this.getToken(PlSqlParser.TRACE, 0);
	}
	public AS(): TerminalNode {
		return this.getToken(PlSqlParser.AS, 0);
	}
	public filename(): FilenameContext {
		return this.getTypedRuleContext(FilenameContext, 0) as FilenameContext;
	}
	public RESETLOGS(): TerminalNode {
		return this.getToken(PlSqlParser.RESETLOGS, 0);
	}
	public NORESETLOGS(): TerminalNode {
		return this.getToken(PlSqlParser.NORESETLOGS, 0);
	}
	public REUSE(): TerminalNode {
		return this.getToken(PlSqlParser.REUSE, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_trace_file_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterTrace_file_clause) {
	 		listener.enterTrace_file_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitTrace_file_clause) {
	 		listener.exitTrace_file_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitTrace_file_clause) {
			return visitor.visitTrace_file_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Standby_database_clausesContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public activate_standby_db_clause(): Activate_standby_db_clauseContext {
		return this.getTypedRuleContext(Activate_standby_db_clauseContext, 0) as Activate_standby_db_clauseContext;
	}
	public maximize_standby_db_clause(): Maximize_standby_db_clauseContext {
		return this.getTypedRuleContext(Maximize_standby_db_clauseContext, 0) as Maximize_standby_db_clauseContext;
	}
	public register_logfile_clause(): Register_logfile_clauseContext {
		return this.getTypedRuleContext(Register_logfile_clauseContext, 0) as Register_logfile_clauseContext;
	}
	public commit_switchover_clause(): Commit_switchover_clauseContext {
		return this.getTypedRuleContext(Commit_switchover_clauseContext, 0) as Commit_switchover_clauseContext;
	}
	public start_standby_clause(): Start_standby_clauseContext {
		return this.getTypedRuleContext(Start_standby_clauseContext, 0) as Start_standby_clauseContext;
	}
	public stop_standby_clause(): Stop_standby_clauseContext {
		return this.getTypedRuleContext(Stop_standby_clauseContext, 0) as Stop_standby_clauseContext;
	}
	public convert_database_clause(): Convert_database_clauseContext {
		return this.getTypedRuleContext(Convert_database_clauseContext, 0) as Convert_database_clauseContext;
	}
	public parallel_clause(): Parallel_clauseContext {
		return this.getTypedRuleContext(Parallel_clauseContext, 0) as Parallel_clauseContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_standby_database_clauses;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterStandby_database_clauses) {
	 		listener.enterStandby_database_clauses(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitStandby_database_clauses) {
	 		listener.exitStandby_database_clauses(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitStandby_database_clauses) {
			return visitor.visitStandby_database_clauses(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Activate_standby_db_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public ACTIVATE(): TerminalNode {
		return this.getToken(PlSqlParser.ACTIVATE, 0);
	}
	public STANDBY(): TerminalNode {
		return this.getToken(PlSqlParser.STANDBY, 0);
	}
	public DATABASE(): TerminalNode {
		return this.getToken(PlSqlParser.DATABASE, 0);
	}
	public FINISH(): TerminalNode {
		return this.getToken(PlSqlParser.FINISH, 0);
	}
	public APPLY(): TerminalNode {
		return this.getToken(PlSqlParser.APPLY, 0);
	}
	public PHYSICAL(): TerminalNode {
		return this.getToken(PlSqlParser.PHYSICAL, 0);
	}
	public LOGICAL(): TerminalNode {
		return this.getToken(PlSqlParser.LOGICAL, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_activate_standby_db_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterActivate_standby_db_clause) {
	 		listener.enterActivate_standby_db_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitActivate_standby_db_clause) {
	 		listener.exitActivate_standby_db_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitActivate_standby_db_clause) {
			return visitor.visitActivate_standby_db_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Maximize_standby_db_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public SET(): TerminalNode {
		return this.getToken(PlSqlParser.SET, 0);
	}
	public STANDBY(): TerminalNode {
		return this.getToken(PlSqlParser.STANDBY, 0);
	}
	public DATABASE(): TerminalNode {
		return this.getToken(PlSqlParser.DATABASE, 0);
	}
	public TO(): TerminalNode {
		return this.getToken(PlSqlParser.TO, 0);
	}
	public MAXIMIZE(): TerminalNode {
		return this.getToken(PlSqlParser.MAXIMIZE, 0);
	}
	public PROTECTION(): TerminalNode {
		return this.getToken(PlSqlParser.PROTECTION, 0);
	}
	public AVAILABILITY(): TerminalNode {
		return this.getToken(PlSqlParser.AVAILABILITY, 0);
	}
	public PERFORMANCE(): TerminalNode {
		return this.getToken(PlSqlParser.PERFORMANCE, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_maximize_standby_db_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterMaximize_standby_db_clause) {
	 		listener.enterMaximize_standby_db_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitMaximize_standby_db_clause) {
	 		listener.exitMaximize_standby_db_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitMaximize_standby_db_clause) {
			return visitor.visitMaximize_standby_db_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Register_logfile_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public REGISTER(): TerminalNode {
		return this.getToken(PlSqlParser.REGISTER, 0);
	}
	public LOGFILE(): TerminalNode {
		return this.getToken(PlSqlParser.LOGFILE, 0);
	}
	public PHYSICAL(): TerminalNode {
		return this.getToken(PlSqlParser.PHYSICAL, 0);
	}
	public LOGICAL(): TerminalNode {
		return this.getToken(PlSqlParser.LOGICAL, 0);
	}
	public OR(): TerminalNode {
		return this.getToken(PlSqlParser.OR, 0);
	}
	public REPLACE(): TerminalNode {
		return this.getToken(PlSqlParser.REPLACE, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_register_logfile_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterRegister_logfile_clause) {
	 		listener.enterRegister_logfile_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitRegister_logfile_clause) {
	 		listener.exitRegister_logfile_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitRegister_logfile_clause) {
			return visitor.visitRegister_logfile_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Commit_switchover_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public TO_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.TO);
	}
	public TO(i: number): TerminalNode {
		return this.getToken(PlSqlParser.TO, i);
	}
	public SWITCHOVER(): TerminalNode {
		return this.getToken(PlSqlParser.SWITCHOVER, 0);
	}
	public PREPARE(): TerminalNode {
		return this.getToken(PlSqlParser.PREPARE, 0);
	}
	public COMMIT(): TerminalNode {
		return this.getToken(PlSqlParser.COMMIT, 0);
	}
	public CANCEL(): TerminalNode {
		return this.getToken(PlSqlParser.CANCEL, 0);
	}
	public LOGICAL(): TerminalNode {
		return this.getToken(PlSqlParser.LOGICAL, 0);
	}
	public STANDBY(): TerminalNode {
		return this.getToken(PlSqlParser.STANDBY, 0);
	}
	public PRIMARY(): TerminalNode {
		return this.getToken(PlSqlParser.PRIMARY, 0);
	}
	public SESSION(): TerminalNode {
		return this.getToken(PlSqlParser.SESSION, 0);
	}
	public SHUTDOWN(): TerminalNode {
		return this.getToken(PlSqlParser.SHUTDOWN, 0);
	}
	public WAIT(): TerminalNode {
		return this.getToken(PlSqlParser.WAIT, 0);
	}
	public NOWAIT(): TerminalNode {
		return this.getToken(PlSqlParser.NOWAIT, 0);
	}
	public PHYSICAL(): TerminalNode {
		return this.getToken(PlSqlParser.PHYSICAL, 0);
	}
	public WITH(): TerminalNode {
		return this.getToken(PlSqlParser.WITH, 0);
	}
	public WITHOUT(): TerminalNode {
		return this.getToken(PlSqlParser.WITHOUT, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_commit_switchover_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterCommit_switchover_clause) {
	 		listener.enterCommit_switchover_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitCommit_switchover_clause) {
	 		listener.exitCommit_switchover_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitCommit_switchover_clause) {
			return visitor.visitCommit_switchover_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Start_standby_clauseContext extends ParserRuleContext {
	public _scn_value!: Token;
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public START(): TerminalNode {
		return this.getToken(PlSqlParser.START, 0);
	}
	public LOGICAL(): TerminalNode {
		return this.getToken(PlSqlParser.LOGICAL, 0);
	}
	public STANDBY(): TerminalNode {
		return this.getToken(PlSqlParser.STANDBY, 0);
	}
	public APPLY(): TerminalNode {
		return this.getToken(PlSqlParser.APPLY, 0);
	}
	public IMMEDIATE(): TerminalNode {
		return this.getToken(PlSqlParser.IMMEDIATE, 0);
	}
	public NODELAY(): TerminalNode {
		return this.getToken(PlSqlParser.NODELAY, 0);
	}
	public NEW(): TerminalNode {
		return this.getToken(PlSqlParser.NEW, 0);
	}
	public PRIMARY(): TerminalNode {
		return this.getToken(PlSqlParser.PRIMARY, 0);
	}
	public regular_id(): Regular_idContext {
		return this.getTypedRuleContext(Regular_idContext, 0) as Regular_idContext;
	}
	public INITIAL(): TerminalNode {
		return this.getToken(PlSqlParser.INITIAL, 0);
	}
	public SKIP_(): TerminalNode {
		return this.getToken(PlSqlParser.SKIP_, 0);
	}
	public FAILED(): TerminalNode {
		return this.getToken(PlSqlParser.FAILED, 0);
	}
	public TRANSACTION(): TerminalNode {
		return this.getToken(PlSqlParser.TRANSACTION, 0);
	}
	public FINISH(): TerminalNode {
		return this.getToken(PlSqlParser.FINISH, 0);
	}
	public UNSIGNED_INTEGER(): TerminalNode {
		return this.getToken(PlSqlParser.UNSIGNED_INTEGER, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_start_standby_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterStart_standby_clause) {
	 		listener.enterStart_standby_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitStart_standby_clause) {
	 		listener.exitStart_standby_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitStart_standby_clause) {
			return visitor.visitStart_standby_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Stop_standby_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public LOGICAL(): TerminalNode {
		return this.getToken(PlSqlParser.LOGICAL, 0);
	}
	public STANDBY(): TerminalNode {
		return this.getToken(PlSqlParser.STANDBY, 0);
	}
	public APPLY(): TerminalNode {
		return this.getToken(PlSqlParser.APPLY, 0);
	}
	public STOP(): TerminalNode {
		return this.getToken(PlSqlParser.STOP, 0);
	}
	public ABORT(): TerminalNode {
		return this.getToken(PlSqlParser.ABORT, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_stop_standby_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterStop_standby_clause) {
	 		listener.enterStop_standby_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitStop_standby_clause) {
	 		listener.exitStop_standby_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitStop_standby_clause) {
			return visitor.visitStop_standby_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Convert_database_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public CONVERT(): TerminalNode {
		return this.getToken(PlSqlParser.CONVERT, 0);
	}
	public TO(): TerminalNode {
		return this.getToken(PlSqlParser.TO, 0);
	}
	public STANDBY(): TerminalNode {
		return this.getToken(PlSqlParser.STANDBY, 0);
	}
	public PHYSICAL(): TerminalNode {
		return this.getToken(PlSqlParser.PHYSICAL, 0);
	}
	public SNAPSHOT(): TerminalNode {
		return this.getToken(PlSqlParser.SNAPSHOT, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_convert_database_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterConvert_database_clause) {
	 		listener.enterConvert_database_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitConvert_database_clause) {
	 		listener.exitConvert_database_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitConvert_database_clause) {
			return visitor.visitConvert_database_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Default_settings_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public DEFAULT(): TerminalNode {
		return this.getToken(PlSqlParser.DEFAULT, 0);
	}
	public EDITION(): TerminalNode {
		return this.getToken(PlSqlParser.EDITION, 0);
	}
	public EQUALS_OP(): TerminalNode {
		return this.getToken(PlSqlParser.EQUALS_OP, 0);
	}
	public edition_name(): Edition_nameContext {
		return this.getTypedRuleContext(Edition_nameContext, 0) as Edition_nameContext;
	}
	public SET(): TerminalNode {
		return this.getToken(PlSqlParser.SET, 0);
	}
	public TABLESPACE(): TerminalNode {
		return this.getToken(PlSqlParser.TABLESPACE, 0);
	}
	public BIGFILE(): TerminalNode {
		return this.getToken(PlSqlParser.BIGFILE, 0);
	}
	public SMALLFILE(): TerminalNode {
		return this.getToken(PlSqlParser.SMALLFILE, 0);
	}
	public tablespace(): TablespaceContext {
		return this.getTypedRuleContext(TablespaceContext, 0) as TablespaceContext;
	}
	public TEMPORARY(): TerminalNode {
		return this.getToken(PlSqlParser.TEMPORARY, 0);
	}
	public tablespace_group_name(): Tablespace_group_nameContext {
		return this.getTypedRuleContext(Tablespace_group_nameContext, 0) as Tablespace_group_nameContext;
	}
	public RENAME(): TerminalNode {
		return this.getToken(PlSqlParser.RENAME, 0);
	}
	public GLOBAL_NAME(): TerminalNode {
		return this.getToken(PlSqlParser.GLOBAL_NAME, 0);
	}
	public TO(): TerminalNode {
		return this.getToken(PlSqlParser.TO, 0);
	}
	public database(): DatabaseContext {
		return this.getTypedRuleContext(DatabaseContext, 0) as DatabaseContext;
	}
	public PERIOD_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.PERIOD);
	}
	public PERIOD(i: number): TerminalNode {
		return this.getToken(PlSqlParser.PERIOD, i);
	}
	public domain_list(): DomainContext[] {
		return this.getTypedRuleContexts(DomainContext) as DomainContext[];
	}
	public domain(i: number): DomainContext {
		return this.getTypedRuleContext(DomainContext, i) as DomainContext;
	}
	public ENABLE(): TerminalNode {
		return this.getToken(PlSqlParser.ENABLE, 0);
	}
	public BLOCK(): TerminalNode {
		return this.getToken(PlSqlParser.BLOCK, 0);
	}
	public CHANGE(): TerminalNode {
		return this.getToken(PlSqlParser.CHANGE, 0);
	}
	public TRACKING(): TerminalNode {
		return this.getToken(PlSqlParser.TRACKING, 0);
	}
	public USING(): TerminalNode {
		return this.getToken(PlSqlParser.USING, 0);
	}
	public FILE(): TerminalNode {
		return this.getToken(PlSqlParser.FILE, 0);
	}
	public filename(): FilenameContext {
		return this.getTypedRuleContext(FilenameContext, 0) as FilenameContext;
	}
	public REUSE(): TerminalNode {
		return this.getToken(PlSqlParser.REUSE, 0);
	}
	public DISABLE(): TerminalNode {
		return this.getToken(PlSqlParser.DISABLE, 0);
	}
	public flashback_mode_clause(): Flashback_mode_clauseContext {
		return this.getTypedRuleContext(Flashback_mode_clauseContext, 0) as Flashback_mode_clauseContext;
	}
	public set_time_zone_clause(): Set_time_zone_clauseContext {
		return this.getTypedRuleContext(Set_time_zone_clauseContext, 0) as Set_time_zone_clauseContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_default_settings_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterDefault_settings_clause) {
	 		listener.enterDefault_settings_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitDefault_settings_clause) {
	 		listener.exitDefault_settings_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitDefault_settings_clause) {
			return visitor.visitDefault_settings_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Set_time_zone_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public SET(): TerminalNode {
		return this.getToken(PlSqlParser.SET, 0);
	}
	public TIMEZONE(): TerminalNode {
		return this.getToken(PlSqlParser.TIMEZONE, 0);
	}
	public EQUALS_OP(): TerminalNode {
		return this.getToken(PlSqlParser.EQUALS_OP, 0);
	}
	public CHAR_STRING(): TerminalNode {
		return this.getToken(PlSqlParser.CHAR_STRING, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_set_time_zone_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterSet_time_zone_clause) {
	 		listener.enterSet_time_zone_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitSet_time_zone_clause) {
	 		listener.exitSet_time_zone_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitSet_time_zone_clause) {
			return visitor.visitSet_time_zone_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Instance_clausesContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public enable_or_disable(): Enable_or_disableContext {
		return this.getTypedRuleContext(Enable_or_disableContext, 0) as Enable_or_disableContext;
	}
	public INSTANCE(): TerminalNode {
		return this.getToken(PlSqlParser.INSTANCE, 0);
	}
	public CHAR_STRING(): TerminalNode {
		return this.getToken(PlSqlParser.CHAR_STRING, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_instance_clauses;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterInstance_clauses) {
	 		listener.enterInstance_clauses(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitInstance_clauses) {
	 		listener.exitInstance_clauses(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitInstance_clauses) {
			return visitor.visitInstance_clauses(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Security_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public GUARD(): TerminalNode {
		return this.getToken(PlSqlParser.GUARD, 0);
	}
	public ALL(): TerminalNode {
		return this.getToken(PlSqlParser.ALL, 0);
	}
	public STANDBY(): TerminalNode {
		return this.getToken(PlSqlParser.STANDBY, 0);
	}
	public NONE(): TerminalNode {
		return this.getToken(PlSqlParser.NONE, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_security_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterSecurity_clause) {
	 		listener.enterSecurity_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitSecurity_clause) {
	 		listener.exitSecurity_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitSecurity_clause) {
			return visitor.visitSecurity_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class DomainContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public regular_id(): Regular_idContext {
		return this.getTypedRuleContext(Regular_idContext, 0) as Regular_idContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_domain;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterDomain) {
	 		listener.enterDomain(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitDomain) {
	 		listener.exitDomain(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitDomain) {
			return visitor.visitDomain(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class DatabaseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public regular_id(): Regular_idContext {
		return this.getTypedRuleContext(Regular_idContext, 0) as Regular_idContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_database;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterDatabase) {
	 		listener.enterDatabase(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitDatabase) {
	 		listener.exitDatabase(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitDatabase) {
			return visitor.visitDatabase(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Edition_nameContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public regular_id(): Regular_idContext {
		return this.getTypedRuleContext(Regular_idContext, 0) as Regular_idContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_edition_name;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterEdition_name) {
	 		listener.enterEdition_name(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitEdition_name) {
	 		listener.exitEdition_name(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitEdition_name) {
			return visitor.visitEdition_name(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class FilenumberContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public UNSIGNED_INTEGER(): TerminalNode {
		return this.getToken(PlSqlParser.UNSIGNED_INTEGER, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_filenumber;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterFilenumber) {
	 		listener.enterFilenumber(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitFilenumber) {
	 		listener.exitFilenumber(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitFilenumber) {
			return visitor.visitFilenumber(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class FilenameContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public CHAR_STRING(): TerminalNode {
		return this.getToken(PlSqlParser.CHAR_STRING, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_filename;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterFilename) {
	 		listener.enterFilename(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitFilename) {
	 		listener.exitFilename(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitFilename) {
			return visitor.visitFilename(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Alter_tableContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public ALTER(): TerminalNode {
		return this.getToken(PlSqlParser.ALTER, 0);
	}
	public TABLE_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.TABLE);
	}
	public TABLE(i: number): TerminalNode {
		return this.getToken(PlSqlParser.TABLE, i);
	}
	public tableview_name(): Tableview_nameContext {
		return this.getTypedRuleContext(Tableview_nameContext, 0) as Tableview_nameContext;
	}
	public SEMICOLON(): TerminalNode {
		return this.getToken(PlSqlParser.SEMICOLON, 0);
	}
	public alter_table_properties(): Alter_table_propertiesContext {
		return this.getTypedRuleContext(Alter_table_propertiesContext, 0) as Alter_table_propertiesContext;
	}
	public constraint_clauses(): Constraint_clausesContext {
		return this.getTypedRuleContext(Constraint_clausesContext, 0) as Constraint_clausesContext;
	}
	public column_clauses(): Column_clausesContext {
		return this.getTypedRuleContext(Column_clausesContext, 0) as Column_clausesContext;
	}
	public move_table_clause(): Move_table_clauseContext {
		return this.getTypedRuleContext(Move_table_clauseContext, 0) as Move_table_clauseContext;
	}
	public enable_disable_clause_list(): Enable_disable_clauseContext[] {
		return this.getTypedRuleContexts(Enable_disable_clauseContext) as Enable_disable_clauseContext[];
	}
	public enable_disable_clause(i: number): Enable_disable_clauseContext {
		return this.getTypedRuleContext(Enable_disable_clauseContext, i) as Enable_disable_clauseContext;
	}
	public enable_or_disable_list(): Enable_or_disableContext[] {
		return this.getTypedRuleContexts(Enable_or_disableContext) as Enable_or_disableContext[];
	}
	public enable_or_disable(i: number): Enable_or_disableContext {
		return this.getTypedRuleContext(Enable_or_disableContext, i) as Enable_or_disableContext;
	}
	public LOCK_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.LOCK);
	}
	public LOCK(i: number): TerminalNode {
		return this.getToken(PlSqlParser.LOCK, i);
	}
	public ALL_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.ALL);
	}
	public ALL(i: number): TerminalNode {
		return this.getToken(PlSqlParser.ALL, i);
	}
	public TRIGGERS_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.TRIGGERS);
	}
	public TRIGGERS(i: number): TerminalNode {
		return this.getToken(PlSqlParser.TRIGGERS, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_alter_table;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterAlter_table) {
	 		listener.enterAlter_table(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitAlter_table) {
	 		listener.exitAlter_table(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitAlter_table) {
			return visitor.visitAlter_table(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Alter_table_propertiesContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public alter_table_properties_1(): Alter_table_properties_1Context {
		return this.getTypedRuleContext(Alter_table_properties_1Context, 0) as Alter_table_properties_1Context;
	}
	public RENAME(): TerminalNode {
		return this.getToken(PlSqlParser.RENAME, 0);
	}
	public TO(): TerminalNode {
		return this.getToken(PlSqlParser.TO, 0);
	}
	public tableview_name(): Tableview_nameContext {
		return this.getTypedRuleContext(Tableview_nameContext, 0) as Tableview_nameContext;
	}
	public shrink_clause(): Shrink_clauseContext {
		return this.getTypedRuleContext(Shrink_clauseContext, 0) as Shrink_clauseContext;
	}
	public READ(): TerminalNode {
		return this.getToken(PlSqlParser.READ, 0);
	}
	public ONLY(): TerminalNode {
		return this.getToken(PlSqlParser.ONLY, 0);
	}
	public WRITE(): TerminalNode {
		return this.getToken(PlSqlParser.WRITE, 0);
	}
	public REKEY(): TerminalNode {
		return this.getToken(PlSqlParser.REKEY, 0);
	}
	public CHAR_STRING(): TerminalNode {
		return this.getToken(PlSqlParser.CHAR_STRING, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_alter_table_properties;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterAlter_table_properties) {
	 		listener.enterAlter_table_properties(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitAlter_table_properties) {
	 		listener.exitAlter_table_properties(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitAlter_table_properties) {
			return visitor.visitAlter_table_properties(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Alter_table_properties_1Context extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public physical_attributes_clause_list(): Physical_attributes_clauseContext[] {
		return this.getTypedRuleContexts(Physical_attributes_clauseContext) as Physical_attributes_clauseContext[];
	}
	public physical_attributes_clause(i: number): Physical_attributes_clauseContext {
		return this.getTypedRuleContext(Physical_attributes_clauseContext, i) as Physical_attributes_clauseContext;
	}
	public logging_clause_list(): Logging_clauseContext[] {
		return this.getTypedRuleContexts(Logging_clauseContext) as Logging_clauseContext[];
	}
	public logging_clause(i: number): Logging_clauseContext {
		return this.getTypedRuleContext(Logging_clauseContext, i) as Logging_clauseContext;
	}
	public table_compression_list(): Table_compressionContext[] {
		return this.getTypedRuleContexts(Table_compressionContext) as Table_compressionContext[];
	}
	public table_compression(i: number): Table_compressionContext {
		return this.getTypedRuleContext(Table_compressionContext, i) as Table_compressionContext;
	}
	public supplemental_table_logging_list(): Supplemental_table_loggingContext[] {
		return this.getTypedRuleContexts(Supplemental_table_loggingContext) as Supplemental_table_loggingContext[];
	}
	public supplemental_table_logging(i: number): Supplemental_table_loggingContext {
		return this.getTypedRuleContext(Supplemental_table_loggingContext, i) as Supplemental_table_loggingContext;
	}
	public allocate_extent_clause_list(): Allocate_extent_clauseContext[] {
		return this.getTypedRuleContexts(Allocate_extent_clauseContext) as Allocate_extent_clauseContext[];
	}
	public allocate_extent_clause(i: number): Allocate_extent_clauseContext {
		return this.getTypedRuleContext(Allocate_extent_clauseContext, i) as Allocate_extent_clauseContext;
	}
	public deallocate_unused_clause_list(): Deallocate_unused_clauseContext[] {
		return this.getTypedRuleContexts(Deallocate_unused_clauseContext) as Deallocate_unused_clauseContext[];
	}
	public deallocate_unused_clause(i: number): Deallocate_unused_clauseContext {
		return this.getTypedRuleContext(Deallocate_unused_clauseContext, i) as Deallocate_unused_clauseContext;
	}
	public RESULT_CACHE_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.RESULT_CACHE);
	}
	public RESULT_CACHE(i: number): TerminalNode {
		return this.getToken(PlSqlParser.RESULT_CACHE, i);
	}
	public LEFT_PAREN_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.LEFT_PAREN);
	}
	public LEFT_PAREN(i: number): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, i);
	}
	public MODE_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.MODE);
	}
	public MODE(i: number): TerminalNode {
		return this.getToken(PlSqlParser.MODE, i);
	}
	public RIGHT_PAREN_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.RIGHT_PAREN);
	}
	public RIGHT_PAREN(i: number): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, i);
	}
	public upgrade_table_clause_list(): Upgrade_table_clauseContext[] {
		return this.getTypedRuleContexts(Upgrade_table_clauseContext) as Upgrade_table_clauseContext[];
	}
	public upgrade_table_clause(i: number): Upgrade_table_clauseContext {
		return this.getTypedRuleContext(Upgrade_table_clauseContext, i) as Upgrade_table_clauseContext;
	}
	public records_per_block_clause_list(): Records_per_block_clauseContext[] {
		return this.getTypedRuleContexts(Records_per_block_clauseContext) as Records_per_block_clauseContext[];
	}
	public records_per_block_clause(i: number): Records_per_block_clauseContext {
		return this.getTypedRuleContext(Records_per_block_clauseContext, i) as Records_per_block_clauseContext;
	}
	public parallel_clause_list(): Parallel_clauseContext[] {
		return this.getTypedRuleContexts(Parallel_clauseContext) as Parallel_clauseContext[];
	}
	public parallel_clause(i: number): Parallel_clauseContext {
		return this.getTypedRuleContext(Parallel_clauseContext, i) as Parallel_clauseContext;
	}
	public row_movement_clause_list(): Row_movement_clauseContext[] {
		return this.getTypedRuleContexts(Row_movement_clauseContext) as Row_movement_clauseContext[];
	}
	public row_movement_clause(i: number): Row_movement_clauseContext {
		return this.getTypedRuleContext(Row_movement_clauseContext, i) as Row_movement_clauseContext;
	}
	public flashback_archive_clause_list(): Flashback_archive_clauseContext[] {
		return this.getTypedRuleContexts(Flashback_archive_clauseContext) as Flashback_archive_clauseContext[];
	}
	public flashback_archive_clause(i: number): Flashback_archive_clauseContext {
		return this.getTypedRuleContext(Flashback_archive_clauseContext, i) as Flashback_archive_clauseContext;
	}
	public alter_iot_clauses(): Alter_iot_clausesContext {
		return this.getTypedRuleContext(Alter_iot_clausesContext, 0) as Alter_iot_clausesContext;
	}
	public CACHE_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.CACHE);
	}
	public CACHE(i: number): TerminalNode {
		return this.getToken(PlSqlParser.CACHE, i);
	}
	public NOCACHE_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.NOCACHE);
	}
	public NOCACHE(i: number): TerminalNode {
		return this.getToken(PlSqlParser.NOCACHE, i);
	}
	public DEFAULT_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.DEFAULT);
	}
	public DEFAULT(i: number): TerminalNode {
		return this.getToken(PlSqlParser.DEFAULT, i);
	}
	public FORCE_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.FORCE);
	}
	public FORCE(i: number): TerminalNode {
		return this.getToken(PlSqlParser.FORCE, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_alter_table_properties_1;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterAlter_table_properties_1) {
	 		listener.enterAlter_table_properties_1(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitAlter_table_properties_1) {
	 		listener.exitAlter_table_properties_1(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitAlter_table_properties_1) {
			return visitor.visitAlter_table_properties_1(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Alter_iot_clausesContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public index_org_table_clause(): Index_org_table_clauseContext {
		return this.getTypedRuleContext(Index_org_table_clauseContext, 0) as Index_org_table_clauseContext;
	}
	public alter_overflow_clause(): Alter_overflow_clauseContext {
		return this.getTypedRuleContext(Alter_overflow_clauseContext, 0) as Alter_overflow_clauseContext;
	}
	public alter_mapping_table_clause(): Alter_mapping_table_clauseContext {
		return this.getTypedRuleContext(Alter_mapping_table_clauseContext, 0) as Alter_mapping_table_clauseContext;
	}
	public COALESCE(): TerminalNode {
		return this.getToken(PlSqlParser.COALESCE, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_alter_iot_clauses;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterAlter_iot_clauses) {
	 		listener.enterAlter_iot_clauses(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitAlter_iot_clauses) {
	 		listener.exitAlter_iot_clauses(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitAlter_iot_clauses) {
			return visitor.visitAlter_iot_clauses(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Alter_mapping_table_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public MAPPING(): TerminalNode {
		return this.getToken(PlSqlParser.MAPPING, 0);
	}
	public TABLE(): TerminalNode {
		return this.getToken(PlSqlParser.TABLE, 0);
	}
	public allocate_extent_clause(): Allocate_extent_clauseContext {
		return this.getTypedRuleContext(Allocate_extent_clauseContext, 0) as Allocate_extent_clauseContext;
	}
	public deallocate_unused_clause(): Deallocate_unused_clauseContext {
		return this.getTypedRuleContext(Deallocate_unused_clauseContext, 0) as Deallocate_unused_clauseContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_alter_mapping_table_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterAlter_mapping_table_clause) {
	 		listener.enterAlter_mapping_table_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitAlter_mapping_table_clause) {
	 		listener.exitAlter_mapping_table_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitAlter_mapping_table_clause) {
			return visitor.visitAlter_mapping_table_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Alter_overflow_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public add_overflow_clause(): Add_overflow_clauseContext {
		return this.getTypedRuleContext(Add_overflow_clauseContext, 0) as Add_overflow_clauseContext;
	}
	public OVERFLOW(): TerminalNode {
		return this.getToken(PlSqlParser.OVERFLOW, 0);
	}
	public segment_attributes_clause_list(): Segment_attributes_clauseContext[] {
		return this.getTypedRuleContexts(Segment_attributes_clauseContext) as Segment_attributes_clauseContext[];
	}
	public segment_attributes_clause(i: number): Segment_attributes_clauseContext {
		return this.getTypedRuleContext(Segment_attributes_clauseContext, i) as Segment_attributes_clauseContext;
	}
	public allocate_extent_clause_list(): Allocate_extent_clauseContext[] {
		return this.getTypedRuleContexts(Allocate_extent_clauseContext) as Allocate_extent_clauseContext[];
	}
	public allocate_extent_clause(i: number): Allocate_extent_clauseContext {
		return this.getTypedRuleContext(Allocate_extent_clauseContext, i) as Allocate_extent_clauseContext;
	}
	public shrink_clause_list(): Shrink_clauseContext[] {
		return this.getTypedRuleContexts(Shrink_clauseContext) as Shrink_clauseContext[];
	}
	public shrink_clause(i: number): Shrink_clauseContext {
		return this.getTypedRuleContext(Shrink_clauseContext, i) as Shrink_clauseContext;
	}
	public deallocate_unused_clause_list(): Deallocate_unused_clauseContext[] {
		return this.getTypedRuleContexts(Deallocate_unused_clauseContext) as Deallocate_unused_clauseContext[];
	}
	public deallocate_unused_clause(i: number): Deallocate_unused_clauseContext {
		return this.getTypedRuleContext(Deallocate_unused_clauseContext, i) as Deallocate_unused_clauseContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_alter_overflow_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterAlter_overflow_clause) {
	 		listener.enterAlter_overflow_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitAlter_overflow_clause) {
	 		listener.exitAlter_overflow_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitAlter_overflow_clause) {
			return visitor.visitAlter_overflow_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Add_overflow_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public ADD(): TerminalNode {
		return this.getToken(PlSqlParser.ADD, 0);
	}
	public OVERFLOW(): TerminalNode {
		return this.getToken(PlSqlParser.OVERFLOW, 0);
	}
	public segment_attributes_clause_list(): Segment_attributes_clauseContext[] {
		return this.getTypedRuleContexts(Segment_attributes_clauseContext) as Segment_attributes_clauseContext[];
	}
	public segment_attributes_clause(i: number): Segment_attributes_clauseContext {
		return this.getTypedRuleContext(Segment_attributes_clauseContext, i) as Segment_attributes_clauseContext;
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public PARTITION_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.PARTITION);
	}
	public PARTITION(i: number): TerminalNode {
		return this.getToken(PlSqlParser.PARTITION, i);
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_add_overflow_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterAdd_overflow_clause) {
	 		listener.enterAdd_overflow_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitAdd_overflow_clause) {
	 		listener.exitAdd_overflow_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitAdd_overflow_clause) {
			return visitor.visitAdd_overflow_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Enable_disable_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public ENABLE(): TerminalNode {
		return this.getToken(PlSqlParser.ENABLE, 0);
	}
	public DISABLE(): TerminalNode {
		return this.getToken(PlSqlParser.DISABLE, 0);
	}
	public UNIQUE(): TerminalNode {
		return this.getToken(PlSqlParser.UNIQUE, 0);
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public column_name_list(): Column_nameContext[] {
		return this.getTypedRuleContexts(Column_nameContext) as Column_nameContext[];
	}
	public column_name(i: number): Column_nameContext {
		return this.getTypedRuleContext(Column_nameContext, i) as Column_nameContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public PRIMARY(): TerminalNode {
		return this.getToken(PlSqlParser.PRIMARY, 0);
	}
	public KEY(): TerminalNode {
		return this.getToken(PlSqlParser.KEY, 0);
	}
	public CONSTRAINT(): TerminalNode {
		return this.getToken(PlSqlParser.CONSTRAINT, 0);
	}
	public constraint_name(): Constraint_nameContext {
		return this.getTypedRuleContext(Constraint_nameContext, 0) as Constraint_nameContext;
	}
	public using_index_clause(): Using_index_clauseContext {
		return this.getTypedRuleContext(Using_index_clauseContext, 0) as Using_index_clauseContext;
	}
	public exceptions_clause(): Exceptions_clauseContext {
		return this.getTypedRuleContext(Exceptions_clauseContext, 0) as Exceptions_clauseContext;
	}
	public CASCADE(): TerminalNode {
		return this.getToken(PlSqlParser.CASCADE, 0);
	}
	public INDEX(): TerminalNode {
		return this.getToken(PlSqlParser.INDEX, 0);
	}
	public VALIDATE(): TerminalNode {
		return this.getToken(PlSqlParser.VALIDATE, 0);
	}
	public NOVALIDATE(): TerminalNode {
		return this.getToken(PlSqlParser.NOVALIDATE, 0);
	}
	public KEEP(): TerminalNode {
		return this.getToken(PlSqlParser.KEEP, 0);
	}
	public DROP(): TerminalNode {
		return this.getToken(PlSqlParser.DROP, 0);
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_enable_disable_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterEnable_disable_clause) {
	 		listener.enterEnable_disable_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitEnable_disable_clause) {
	 		listener.exitEnable_disable_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitEnable_disable_clause) {
			return visitor.visitEnable_disable_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Using_index_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public USING(): TerminalNode {
		return this.getToken(PlSqlParser.USING, 0);
	}
	public INDEX(): TerminalNode {
		return this.getToken(PlSqlParser.INDEX, 0);
	}
	public index_name(): Index_nameContext {
		return this.getTypedRuleContext(Index_nameContext, 0) as Index_nameContext;
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public create_index(): Create_indexContext {
		return this.getTypedRuleContext(Create_indexContext, 0) as Create_indexContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public index_attributes(): Index_attributesContext {
		return this.getTypedRuleContext(Index_attributesContext, 0) as Index_attributesContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_using_index_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterUsing_index_clause) {
	 		listener.enterUsing_index_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitUsing_index_clause) {
	 		listener.exitUsing_index_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitUsing_index_clause) {
			return visitor.visitUsing_index_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Index_attributesContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public physical_attributes_clause_list(): Physical_attributes_clauseContext[] {
		return this.getTypedRuleContexts(Physical_attributes_clauseContext) as Physical_attributes_clauseContext[];
	}
	public physical_attributes_clause(i: number): Physical_attributes_clauseContext {
		return this.getTypedRuleContext(Physical_attributes_clauseContext, i) as Physical_attributes_clauseContext;
	}
	public logging_clause_list(): Logging_clauseContext[] {
		return this.getTypedRuleContexts(Logging_clauseContext) as Logging_clauseContext[];
	}
	public logging_clause(i: number): Logging_clauseContext {
		return this.getTypedRuleContext(Logging_clauseContext, i) as Logging_clauseContext;
	}
	public TABLESPACE_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.TABLESPACE);
	}
	public TABLESPACE(i: number): TerminalNode {
		return this.getToken(PlSqlParser.TABLESPACE, i);
	}
	public key_compression_list(): Key_compressionContext[] {
		return this.getTypedRuleContexts(Key_compressionContext) as Key_compressionContext[];
	}
	public key_compression(i: number): Key_compressionContext {
		return this.getTypedRuleContext(Key_compressionContext, i) as Key_compressionContext;
	}
	public sort_or_nosort_list(): Sort_or_nosortContext[] {
		return this.getTypedRuleContexts(Sort_or_nosortContext) as Sort_or_nosortContext[];
	}
	public sort_or_nosort(i: number): Sort_or_nosortContext {
		return this.getTypedRuleContext(Sort_or_nosortContext, i) as Sort_or_nosortContext;
	}
	public REVERSE_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.REVERSE);
	}
	public REVERSE(i: number): TerminalNode {
		return this.getToken(PlSqlParser.REVERSE, i);
	}
	public visible_or_invisible_list(): Visible_or_invisibleContext[] {
		return this.getTypedRuleContexts(Visible_or_invisibleContext) as Visible_or_invisibleContext[];
	}
	public visible_or_invisible(i: number): Visible_or_invisibleContext {
		return this.getTypedRuleContext(Visible_or_invisibleContext, i) as Visible_or_invisibleContext;
	}
	public parallel_clause_list(): Parallel_clauseContext[] {
		return this.getTypedRuleContexts(Parallel_clauseContext) as Parallel_clauseContext[];
	}
	public parallel_clause(i: number): Parallel_clauseContext {
		return this.getTypedRuleContext(Parallel_clauseContext, i) as Parallel_clauseContext;
	}
	public tablespace_list(): TablespaceContext[] {
		return this.getTypedRuleContexts(TablespaceContext) as TablespaceContext[];
	}
	public tablespace(i: number): TablespaceContext {
		return this.getTypedRuleContext(TablespaceContext, i) as TablespaceContext;
	}
	public DEFAULT_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.DEFAULT);
	}
	public DEFAULT(i: number): TerminalNode {
		return this.getToken(PlSqlParser.DEFAULT, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_index_attributes;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterIndex_attributes) {
	 		listener.enterIndex_attributes(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitIndex_attributes) {
	 		listener.exitIndex_attributes(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitIndex_attributes) {
			return visitor.visitIndex_attributes(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Sort_or_nosortContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public SORT(): TerminalNode {
		return this.getToken(PlSqlParser.SORT, 0);
	}
	public NOSORT(): TerminalNode {
		return this.getToken(PlSqlParser.NOSORT, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_sort_or_nosort;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterSort_or_nosort) {
	 		listener.enterSort_or_nosort(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitSort_or_nosort) {
	 		listener.exitSort_or_nosort(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitSort_or_nosort) {
			return visitor.visitSort_or_nosort(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Exceptions_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public EXCEPTIONS(): TerminalNode {
		return this.getToken(PlSqlParser.EXCEPTIONS, 0);
	}
	public INTO(): TerminalNode {
		return this.getToken(PlSqlParser.INTO, 0);
	}
	public tableview_name(): Tableview_nameContext {
		return this.getTypedRuleContext(Tableview_nameContext, 0) as Tableview_nameContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_exceptions_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterExceptions_clause) {
	 		listener.enterExceptions_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitExceptions_clause) {
	 		listener.exitExceptions_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitExceptions_clause) {
			return visitor.visitExceptions_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Move_table_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public MOVE(): TerminalNode {
		return this.getToken(PlSqlParser.MOVE, 0);
	}
	public ONLINE(): TerminalNode {
		return this.getToken(PlSqlParser.ONLINE, 0);
	}
	public segment_attributes_clause(): Segment_attributes_clauseContext {
		return this.getTypedRuleContext(Segment_attributes_clauseContext, 0) as Segment_attributes_clauseContext;
	}
	public table_compression(): Table_compressionContext {
		return this.getTypedRuleContext(Table_compressionContext, 0) as Table_compressionContext;
	}
	public index_org_table_clause(): Index_org_table_clauseContext {
		return this.getTypedRuleContext(Index_org_table_clauseContext, 0) as Index_org_table_clauseContext;
	}
	public parallel_clause(): Parallel_clauseContext {
		return this.getTypedRuleContext(Parallel_clauseContext, 0) as Parallel_clauseContext;
	}
	public lob_storage_clause_list(): Lob_storage_clauseContext[] {
		return this.getTypedRuleContexts(Lob_storage_clauseContext) as Lob_storage_clauseContext[];
	}
	public lob_storage_clause(i: number): Lob_storage_clauseContext {
		return this.getTypedRuleContext(Lob_storage_clauseContext, i) as Lob_storage_clauseContext;
	}
	public varray_col_properties_list(): Varray_col_propertiesContext[] {
		return this.getTypedRuleContexts(Varray_col_propertiesContext) as Varray_col_propertiesContext[];
	}
	public varray_col_properties(i: number): Varray_col_propertiesContext {
		return this.getTypedRuleContext(Varray_col_propertiesContext, i) as Varray_col_propertiesContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_move_table_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterMove_table_clause) {
	 		listener.enterMove_table_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitMove_table_clause) {
	 		listener.exitMove_table_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitMove_table_clause) {
			return visitor.visitMove_table_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Index_org_table_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public mapping_table_clause(): Mapping_table_clauseContext {
		return this.getTypedRuleContext(Mapping_table_clauseContext, 0) as Mapping_table_clauseContext;
	}
	public PCTTHRESHOLD(): TerminalNode {
		return this.getToken(PlSqlParser.PCTTHRESHOLD, 0);
	}
	public UNSIGNED_INTEGER(): TerminalNode {
		return this.getToken(PlSqlParser.UNSIGNED_INTEGER, 0);
	}
	public key_compression(): Key_compressionContext {
		return this.getTypedRuleContext(Key_compressionContext, 0) as Key_compressionContext;
	}
	public index_org_overflow_clause(): Index_org_overflow_clauseContext {
		return this.getTypedRuleContext(Index_org_overflow_clauseContext, 0) as Index_org_overflow_clauseContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_index_org_table_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterIndex_org_table_clause) {
	 		listener.enterIndex_org_table_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitIndex_org_table_clause) {
	 		listener.exitIndex_org_table_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitIndex_org_table_clause) {
			return visitor.visitIndex_org_table_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Mapping_table_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public MAPPING(): TerminalNode {
		return this.getToken(PlSqlParser.MAPPING, 0);
	}
	public TABLE(): TerminalNode {
		return this.getToken(PlSqlParser.TABLE, 0);
	}
	public NOMAPPING(): TerminalNode {
		return this.getToken(PlSqlParser.NOMAPPING, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_mapping_table_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterMapping_table_clause) {
	 		listener.enterMapping_table_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitMapping_table_clause) {
	 		listener.exitMapping_table_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitMapping_table_clause) {
			return visitor.visitMapping_table_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Key_compressionContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public NOCOMPRESS(): TerminalNode {
		return this.getToken(PlSqlParser.NOCOMPRESS, 0);
	}
	public COMPRESS(): TerminalNode {
		return this.getToken(PlSqlParser.COMPRESS, 0);
	}
	public UNSIGNED_INTEGER(): TerminalNode {
		return this.getToken(PlSqlParser.UNSIGNED_INTEGER, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_key_compression;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterKey_compression) {
	 		listener.enterKey_compression(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitKey_compression) {
	 		listener.exitKey_compression(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitKey_compression) {
			return visitor.visitKey_compression(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Index_org_overflow_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public OVERFLOW(): TerminalNode {
		return this.getToken(PlSqlParser.OVERFLOW, 0);
	}
	public INCLUDING(): TerminalNode {
		return this.getToken(PlSqlParser.INCLUDING, 0);
	}
	public column_name(): Column_nameContext {
		return this.getTypedRuleContext(Column_nameContext, 0) as Column_nameContext;
	}
	public segment_attributes_clause(): Segment_attributes_clauseContext {
		return this.getTypedRuleContext(Segment_attributes_clauseContext, 0) as Segment_attributes_clauseContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_index_org_overflow_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterIndex_org_overflow_clause) {
	 		listener.enterIndex_org_overflow_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitIndex_org_overflow_clause) {
	 		listener.exitIndex_org_overflow_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitIndex_org_overflow_clause) {
			return visitor.visitIndex_org_overflow_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Column_clausesContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public add_modify_drop_column_clauses(): Add_modify_drop_column_clausesContext {
		return this.getTypedRuleContext(Add_modify_drop_column_clausesContext, 0) as Add_modify_drop_column_clausesContext;
	}
	public rename_column_clause(): Rename_column_clauseContext {
		return this.getTypedRuleContext(Rename_column_clauseContext, 0) as Rename_column_clauseContext;
	}
	public modify_collection_retrieval(): Modify_collection_retrievalContext {
		return this.getTypedRuleContext(Modify_collection_retrievalContext, 0) as Modify_collection_retrievalContext;
	}
	public modify_lob_storage_clause(): Modify_lob_storage_clauseContext {
		return this.getTypedRuleContext(Modify_lob_storage_clauseContext, 0) as Modify_lob_storage_clauseContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_column_clauses;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterColumn_clauses) {
	 		listener.enterColumn_clauses(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitColumn_clauses) {
	 		listener.exitColumn_clauses(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitColumn_clauses) {
			return visitor.visitColumn_clauses(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Modify_collection_retrievalContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public MODIFY(): TerminalNode {
		return this.getToken(PlSqlParser.MODIFY, 0);
	}
	public NESTED(): TerminalNode {
		return this.getToken(PlSqlParser.NESTED, 0);
	}
	public TABLE(): TerminalNode {
		return this.getToken(PlSqlParser.TABLE, 0);
	}
	public collection_item(): Collection_itemContext {
		return this.getTypedRuleContext(Collection_itemContext, 0) as Collection_itemContext;
	}
	public RETURN(): TerminalNode {
		return this.getToken(PlSqlParser.RETURN, 0);
	}
	public AS(): TerminalNode {
		return this.getToken(PlSqlParser.AS, 0);
	}
	public LOCATOR(): TerminalNode {
		return this.getToken(PlSqlParser.LOCATOR, 0);
	}
	public VALUE(): TerminalNode {
		return this.getToken(PlSqlParser.VALUE, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_modify_collection_retrieval;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterModify_collection_retrieval) {
	 		listener.enterModify_collection_retrieval(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitModify_collection_retrieval) {
	 		listener.exitModify_collection_retrieval(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitModify_collection_retrieval) {
			return visitor.visitModify_collection_retrieval(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Collection_itemContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public tableview_name(): Tableview_nameContext {
		return this.getTypedRuleContext(Tableview_nameContext, 0) as Tableview_nameContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_collection_item;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterCollection_item) {
	 		listener.enterCollection_item(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitCollection_item) {
	 		listener.exitCollection_item(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitCollection_item) {
			return visitor.visitCollection_item(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Rename_column_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public RENAME(): TerminalNode {
		return this.getToken(PlSqlParser.RENAME, 0);
	}
	public COLUMN(): TerminalNode {
		return this.getToken(PlSqlParser.COLUMN, 0);
	}
	public old_column_name(): Old_column_nameContext {
		return this.getTypedRuleContext(Old_column_nameContext, 0) as Old_column_nameContext;
	}
	public TO(): TerminalNode {
		return this.getToken(PlSqlParser.TO, 0);
	}
	public new_column_name(): New_column_nameContext {
		return this.getTypedRuleContext(New_column_nameContext, 0) as New_column_nameContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_rename_column_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterRename_column_clause) {
	 		listener.enterRename_column_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitRename_column_clause) {
	 		listener.exitRename_column_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitRename_column_clause) {
			return visitor.visitRename_column_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Old_column_nameContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public column_name(): Column_nameContext {
		return this.getTypedRuleContext(Column_nameContext, 0) as Column_nameContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_old_column_name;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterOld_column_name) {
	 		listener.enterOld_column_name(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitOld_column_name) {
	 		listener.exitOld_column_name(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitOld_column_name) {
			return visitor.visitOld_column_name(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class New_column_nameContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public column_name(): Column_nameContext {
		return this.getTypedRuleContext(Column_nameContext, 0) as Column_nameContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_new_column_name;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterNew_column_name) {
	 		listener.enterNew_column_name(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitNew_column_name) {
	 		listener.exitNew_column_name(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitNew_column_name) {
			return visitor.visitNew_column_name(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Add_modify_drop_column_clausesContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public add_column_clause_list(): Add_column_clauseContext[] {
		return this.getTypedRuleContexts(Add_column_clauseContext) as Add_column_clauseContext[];
	}
	public add_column_clause(i: number): Add_column_clauseContext {
		return this.getTypedRuleContext(Add_column_clauseContext, i) as Add_column_clauseContext;
	}
	public modify_column_clauses_list(): Modify_column_clausesContext[] {
		return this.getTypedRuleContexts(Modify_column_clausesContext) as Modify_column_clausesContext[];
	}
	public modify_column_clauses(i: number): Modify_column_clausesContext {
		return this.getTypedRuleContext(Modify_column_clausesContext, i) as Modify_column_clausesContext;
	}
	public drop_column_clause_list(): Drop_column_clauseContext[] {
		return this.getTypedRuleContexts(Drop_column_clauseContext) as Drop_column_clauseContext[];
	}
	public drop_column_clause(i: number): Drop_column_clauseContext {
		return this.getTypedRuleContext(Drop_column_clauseContext, i) as Drop_column_clauseContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_add_modify_drop_column_clauses;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterAdd_modify_drop_column_clauses) {
	 		listener.enterAdd_modify_drop_column_clauses(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitAdd_modify_drop_column_clauses) {
	 		listener.exitAdd_modify_drop_column_clauses(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitAdd_modify_drop_column_clauses) {
			return visitor.visitAdd_modify_drop_column_clauses(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Drop_column_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public SET(): TerminalNode {
		return this.getToken(PlSqlParser.SET, 0);
	}
	public UNUSED(): TerminalNode {
		return this.getToken(PlSqlParser.UNUSED, 0);
	}
	public COLUMN(): TerminalNode {
		return this.getToken(PlSqlParser.COLUMN, 0);
	}
	public column_name_list(): Column_nameContext[] {
		return this.getTypedRuleContexts(Column_nameContext) as Column_nameContext[];
	}
	public column_name(i: number): Column_nameContext {
		return this.getTypedRuleContext(Column_nameContext, i) as Column_nameContext;
	}
	public CASCADE_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.CASCADE);
	}
	public CASCADE(i: number): TerminalNode {
		return this.getToken(PlSqlParser.CASCADE, i);
	}
	public CONSTRAINTS_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.CONSTRAINTS);
	}
	public CONSTRAINTS(i: number): TerminalNode {
		return this.getToken(PlSqlParser.CONSTRAINTS, i);
	}
	public INVALIDATE_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.INVALIDATE);
	}
	public INVALIDATE(i: number): TerminalNode {
		return this.getToken(PlSqlParser.INVALIDATE, i);
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
	public DROP(): TerminalNode {
		return this.getToken(PlSqlParser.DROP, 0);
	}
	public CHECKPOINT(): TerminalNode {
		return this.getToken(PlSqlParser.CHECKPOINT, 0);
	}
	public UNSIGNED_INTEGER(): TerminalNode {
		return this.getToken(PlSqlParser.UNSIGNED_INTEGER, 0);
	}
	public COLUMNS(): TerminalNode {
		return this.getToken(PlSqlParser.COLUMNS, 0);
	}
	public CONTINUE(): TerminalNode {
		return this.getToken(PlSqlParser.CONTINUE, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_drop_column_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterDrop_column_clause) {
	 		listener.enterDrop_column_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitDrop_column_clause) {
	 		listener.exitDrop_column_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitDrop_column_clause) {
			return visitor.visitDrop_column_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Modify_column_clausesContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public MODIFY(): TerminalNode {
		return this.getToken(PlSqlParser.MODIFY, 0);
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public modify_col_properties_list(): Modify_col_propertiesContext[] {
		return this.getTypedRuleContexts(Modify_col_propertiesContext) as Modify_col_propertiesContext[];
	}
	public modify_col_properties(i: number): Modify_col_propertiesContext {
		return this.getTypedRuleContext(Modify_col_propertiesContext, i) as Modify_col_propertiesContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public modify_col_substitutable(): Modify_col_substitutableContext {
		return this.getTypedRuleContext(Modify_col_substitutableContext, 0) as Modify_col_substitutableContext;
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_modify_column_clauses;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterModify_column_clauses) {
	 		listener.enterModify_column_clauses(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitModify_column_clauses) {
	 		listener.exitModify_column_clauses(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitModify_column_clauses) {
			return visitor.visitModify_column_clauses(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Modify_col_propertiesContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public column_name(): Column_nameContext {
		return this.getTypedRuleContext(Column_nameContext, 0) as Column_nameContext;
	}
	public datatype(): DatatypeContext {
		return this.getTypedRuleContext(DatatypeContext, 0) as DatatypeContext;
	}
	public DEFAULT(): TerminalNode {
		return this.getToken(PlSqlParser.DEFAULT, 0);
	}
	public expression(): ExpressionContext {
		return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext;
	}
	public ENCRYPT(): TerminalNode {
		return this.getToken(PlSqlParser.ENCRYPT, 0);
	}
	public encryption_spec(): Encryption_specContext {
		return this.getTypedRuleContext(Encryption_specContext, 0) as Encryption_specContext;
	}
	public DECRYPT(): TerminalNode {
		return this.getToken(PlSqlParser.DECRYPT, 0);
	}
	public inline_constraint_list(): Inline_constraintContext[] {
		return this.getTypedRuleContexts(Inline_constraintContext) as Inline_constraintContext[];
	}
	public inline_constraint(i: number): Inline_constraintContext {
		return this.getTypedRuleContext(Inline_constraintContext, i) as Inline_constraintContext;
	}
	public lob_storage_clause(): Lob_storage_clauseContext {
		return this.getTypedRuleContext(Lob_storage_clauseContext, 0) as Lob_storage_clauseContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_modify_col_properties;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterModify_col_properties) {
	 		listener.enterModify_col_properties(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitModify_col_properties) {
	 		listener.exitModify_col_properties(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitModify_col_properties) {
			return visitor.visitModify_col_properties(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Modify_col_substitutableContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public COLUMN(): TerminalNode {
		return this.getToken(PlSqlParser.COLUMN, 0);
	}
	public column_name(): Column_nameContext {
		return this.getTypedRuleContext(Column_nameContext, 0) as Column_nameContext;
	}
	public SUBSTITUTABLE(): TerminalNode {
		return this.getToken(PlSqlParser.SUBSTITUTABLE, 0);
	}
	public AT(): TerminalNode {
		return this.getToken(PlSqlParser.AT, 0);
	}
	public ALL(): TerminalNode {
		return this.getToken(PlSqlParser.ALL, 0);
	}
	public LEVELS(): TerminalNode {
		return this.getToken(PlSqlParser.LEVELS, 0);
	}
	public NOT(): TerminalNode {
		return this.getToken(PlSqlParser.NOT, 0);
	}
	public FORCE(): TerminalNode {
		return this.getToken(PlSqlParser.FORCE, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_modify_col_substitutable;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterModify_col_substitutable) {
	 		listener.enterModify_col_substitutable(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitModify_col_substitutable) {
	 		listener.exitModify_col_substitutable(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitModify_col_substitutable) {
			return visitor.visitModify_col_substitutable(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Add_column_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public ADD(): TerminalNode {
		return this.getToken(PlSqlParser.ADD, 0);
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public column_properties(): Column_propertiesContext {
		return this.getTypedRuleContext(Column_propertiesContext, 0) as Column_propertiesContext;
	}
	public column_definition_list(): Column_definitionContext[] {
		return this.getTypedRuleContexts(Column_definitionContext) as Column_definitionContext[];
	}
	public column_definition(i: number): Column_definitionContext {
		return this.getTypedRuleContext(Column_definitionContext, i) as Column_definitionContext;
	}
	public virtual_column_definition_list(): Virtual_column_definitionContext[] {
		return this.getTypedRuleContexts(Virtual_column_definitionContext) as Virtual_column_definitionContext[];
	}
	public virtual_column_definition(i: number): Virtual_column_definitionContext {
		return this.getTypedRuleContext(Virtual_column_definitionContext, i) as Virtual_column_definitionContext;
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_add_column_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterAdd_column_clause) {
	 		listener.enterAdd_column_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitAdd_column_clause) {
	 		listener.exitAdd_column_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitAdd_column_clause) {
			return visitor.visitAdd_column_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Alter_varray_col_propertiesContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public MODIFY(): TerminalNode {
		return this.getToken(PlSqlParser.MODIFY, 0);
	}
	public VARRAY(): TerminalNode {
		return this.getToken(PlSqlParser.VARRAY, 0);
	}
	public varray_item(): Varray_itemContext {
		return this.getTypedRuleContext(Varray_itemContext, 0) as Varray_itemContext;
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public modify_lob_parameters(): Modify_lob_parametersContext {
		return this.getTypedRuleContext(Modify_lob_parametersContext, 0) as Modify_lob_parametersContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_alter_varray_col_properties;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterAlter_varray_col_properties) {
	 		listener.enterAlter_varray_col_properties(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitAlter_varray_col_properties) {
	 		listener.exitAlter_varray_col_properties(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitAlter_varray_col_properties) {
			return visitor.visitAlter_varray_col_properties(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Varray_col_propertiesContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public VARRAY(): TerminalNode {
		return this.getToken(PlSqlParser.VARRAY, 0);
	}
	public varray_item(): Varray_itemContext {
		return this.getTypedRuleContext(Varray_itemContext, 0) as Varray_itemContext;
	}
	public varray_storage_clause(): Varray_storage_clauseContext {
		return this.getTypedRuleContext(Varray_storage_clauseContext, 0) as Varray_storage_clauseContext;
	}
	public substitutable_column_clause(): Substitutable_column_clauseContext {
		return this.getTypedRuleContext(Substitutable_column_clauseContext, 0) as Substitutable_column_clauseContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_varray_col_properties;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterVarray_col_properties) {
	 		listener.enterVarray_col_properties(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitVarray_col_properties) {
	 		listener.exitVarray_col_properties(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitVarray_col_properties) {
			return visitor.visitVarray_col_properties(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Varray_storage_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public STORE(): TerminalNode {
		return this.getToken(PlSqlParser.STORE, 0);
	}
	public AS(): TerminalNode {
		return this.getToken(PlSqlParser.AS, 0);
	}
	public LOB(): TerminalNode {
		return this.getToken(PlSqlParser.LOB, 0);
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public lob_storage_parameters(): Lob_storage_parametersContext {
		return this.getTypedRuleContext(Lob_storage_parametersContext, 0) as Lob_storage_parametersContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public lob_segname(): Lob_segnameContext {
		return this.getTypedRuleContext(Lob_segnameContext, 0) as Lob_segnameContext;
	}
	public SECUREFILE(): TerminalNode {
		return this.getToken(PlSqlParser.SECUREFILE, 0);
	}
	public BASICFILE(): TerminalNode {
		return this.getToken(PlSqlParser.BASICFILE, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_varray_storage_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterVarray_storage_clause) {
	 		listener.enterVarray_storage_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitVarray_storage_clause) {
	 		listener.exitVarray_storage_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitVarray_storage_clause) {
			return visitor.visitVarray_storage_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Lob_segnameContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public regular_id(): Regular_idContext {
		return this.getTypedRuleContext(Regular_idContext, 0) as Regular_idContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_lob_segname;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterLob_segname) {
	 		listener.enterLob_segname(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitLob_segname) {
	 		listener.exitLob_segname(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitLob_segname) {
			return visitor.visitLob_segname(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Lob_itemContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public regular_id(): Regular_idContext {
		return this.getTypedRuleContext(Regular_idContext, 0) as Regular_idContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_lob_item;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterLob_item) {
	 		listener.enterLob_item(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitLob_item) {
	 		listener.exitLob_item(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitLob_item) {
			return visitor.visitLob_item(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Lob_storage_parametersContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public TABLESPACE(): TerminalNode {
		return this.getToken(PlSqlParser.TABLESPACE, 0);
	}
	public tablespace(): TablespaceContext {
		return this.getTypedRuleContext(TablespaceContext, 0) as TablespaceContext;
	}
	public lob_parameters(): Lob_parametersContext {
		return this.getTypedRuleContext(Lob_parametersContext, 0) as Lob_parametersContext;
	}
	public storage_clause(): Storage_clauseContext {
		return this.getTypedRuleContext(Storage_clauseContext, 0) as Storage_clauseContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_lob_storage_parameters;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterLob_storage_parameters) {
	 		listener.enterLob_storage_parameters(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitLob_storage_parameters) {
	 		listener.exitLob_storage_parameters(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitLob_storage_parameters) {
			return visitor.visitLob_storage_parameters(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Lob_storage_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public LOB(): TerminalNode {
		return this.getToken(PlSqlParser.LOB, 0);
	}
	public LEFT_PAREN_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.LEFT_PAREN);
	}
	public LEFT_PAREN(i: number): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, i);
	}
	public lob_item_list(): Lob_itemContext[] {
		return this.getTypedRuleContexts(Lob_itemContext) as Lob_itemContext[];
	}
	public lob_item(i: number): Lob_itemContext {
		return this.getTypedRuleContext(Lob_itemContext, i) as Lob_itemContext;
	}
	public RIGHT_PAREN_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.RIGHT_PAREN);
	}
	public RIGHT_PAREN(i: number): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, i);
	}
	public STORE(): TerminalNode {
		return this.getToken(PlSqlParser.STORE, 0);
	}
	public AS(): TerminalNode {
		return this.getToken(PlSqlParser.AS, 0);
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
	public lob_storage_parameters_list(): Lob_storage_parametersContext[] {
		return this.getTypedRuleContexts(Lob_storage_parametersContext) as Lob_storage_parametersContext[];
	}
	public lob_storage_parameters(i: number): Lob_storage_parametersContext {
		return this.getTypedRuleContext(Lob_storage_parametersContext, i) as Lob_storage_parametersContext;
	}
	public lob_segname_list(): Lob_segnameContext[] {
		return this.getTypedRuleContexts(Lob_segnameContext) as Lob_segnameContext[];
	}
	public lob_segname(i: number): Lob_segnameContext {
		return this.getTypedRuleContext(Lob_segnameContext, i) as Lob_segnameContext;
	}
	public SECUREFILE_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.SECUREFILE);
	}
	public SECUREFILE(i: number): TerminalNode {
		return this.getToken(PlSqlParser.SECUREFILE, i);
	}
	public BASICFILE_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.BASICFILE);
	}
	public BASICFILE(i: number): TerminalNode {
		return this.getToken(PlSqlParser.BASICFILE, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_lob_storage_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterLob_storage_clause) {
	 		listener.enterLob_storage_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitLob_storage_clause) {
	 		listener.exitLob_storage_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitLob_storage_clause) {
			return visitor.visitLob_storage_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Modify_lob_storage_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public MODIFY(): TerminalNode {
		return this.getToken(PlSqlParser.MODIFY, 0);
	}
	public LOB(): TerminalNode {
		return this.getToken(PlSqlParser.LOB, 0);
	}
	public LEFT_PAREN_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.LEFT_PAREN);
	}
	public LEFT_PAREN(i: number): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, i);
	}
	public lob_item(): Lob_itemContext {
		return this.getTypedRuleContext(Lob_itemContext, 0) as Lob_itemContext;
	}
	public RIGHT_PAREN_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.RIGHT_PAREN);
	}
	public RIGHT_PAREN(i: number): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, i);
	}
	public modify_lob_parameters(): Modify_lob_parametersContext {
		return this.getTypedRuleContext(Modify_lob_parametersContext, 0) as Modify_lob_parametersContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_modify_lob_storage_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterModify_lob_storage_clause) {
	 		listener.enterModify_lob_storage_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitModify_lob_storage_clause) {
	 		listener.exitModify_lob_storage_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitModify_lob_storage_clause) {
			return visitor.visitModify_lob_storage_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Modify_lob_parametersContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public storage_clause_list(): Storage_clauseContext[] {
		return this.getTypedRuleContexts(Storage_clauseContext) as Storage_clauseContext[];
	}
	public storage_clause(i: number): Storage_clauseContext {
		return this.getTypedRuleContext(Storage_clauseContext, i) as Storage_clauseContext;
	}
	public UNSIGNED_INTEGER_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.UNSIGNED_INTEGER);
	}
	public UNSIGNED_INTEGER(i: number): TerminalNode {
		return this.getToken(PlSqlParser.UNSIGNED_INTEGER, i);
	}
	public REBUILD_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.REBUILD);
	}
	public REBUILD(i: number): TerminalNode {
		return this.getToken(PlSqlParser.REBUILD, i);
	}
	public FREEPOOLS_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.FREEPOOLS);
	}
	public FREEPOOLS(i: number): TerminalNode {
		return this.getToken(PlSqlParser.FREEPOOLS, i);
	}
	public lob_retention_clause_list(): Lob_retention_clauseContext[] {
		return this.getTypedRuleContexts(Lob_retention_clauseContext) as Lob_retention_clauseContext[];
	}
	public lob_retention_clause(i: number): Lob_retention_clauseContext {
		return this.getTypedRuleContext(Lob_retention_clauseContext, i) as Lob_retention_clauseContext;
	}
	public lob_deduplicate_clause_list(): Lob_deduplicate_clauseContext[] {
		return this.getTypedRuleContexts(Lob_deduplicate_clauseContext) as Lob_deduplicate_clauseContext[];
	}
	public lob_deduplicate_clause(i: number): Lob_deduplicate_clauseContext {
		return this.getTypedRuleContext(Lob_deduplicate_clauseContext, i) as Lob_deduplicate_clauseContext;
	}
	public lob_compression_clause_list(): Lob_compression_clauseContext[] {
		return this.getTypedRuleContexts(Lob_compression_clauseContext) as Lob_compression_clauseContext[];
	}
	public lob_compression_clause(i: number): Lob_compression_clauseContext {
		return this.getTypedRuleContext(Lob_compression_clauseContext, i) as Lob_compression_clauseContext;
	}
	public ENCRYPT_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.ENCRYPT);
	}
	public ENCRYPT(i: number): TerminalNode {
		return this.getToken(PlSqlParser.ENCRYPT, i);
	}
	public encryption_spec_list(): Encryption_specContext[] {
		return this.getTypedRuleContexts(Encryption_specContext) as Encryption_specContext[];
	}
	public encryption_spec(i: number): Encryption_specContext {
		return this.getTypedRuleContext(Encryption_specContext, i) as Encryption_specContext;
	}
	public DECRYPT_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.DECRYPT);
	}
	public DECRYPT(i: number): TerminalNode {
		return this.getToken(PlSqlParser.DECRYPT, i);
	}
	public CACHE_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.CACHE);
	}
	public CACHE(i: number): TerminalNode {
		return this.getToken(PlSqlParser.CACHE, i);
	}
	public allocate_extent_clause_list(): Allocate_extent_clauseContext[] {
		return this.getTypedRuleContexts(Allocate_extent_clauseContext) as Allocate_extent_clauseContext[];
	}
	public allocate_extent_clause(i: number): Allocate_extent_clauseContext {
		return this.getTypedRuleContext(Allocate_extent_clauseContext, i) as Allocate_extent_clauseContext;
	}
	public shrink_clause_list(): Shrink_clauseContext[] {
		return this.getTypedRuleContexts(Shrink_clauseContext) as Shrink_clauseContext[];
	}
	public shrink_clause(i: number): Shrink_clauseContext {
		return this.getTypedRuleContext(Shrink_clauseContext, i) as Shrink_clauseContext;
	}
	public deallocate_unused_clause_list(): Deallocate_unused_clauseContext[] {
		return this.getTypedRuleContexts(Deallocate_unused_clauseContext) as Deallocate_unused_clauseContext[];
	}
	public deallocate_unused_clause(i: number): Deallocate_unused_clauseContext {
		return this.getTypedRuleContext(Deallocate_unused_clauseContext, i) as Deallocate_unused_clauseContext;
	}
	public PCTVERSION_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.PCTVERSION);
	}
	public PCTVERSION(i: number): TerminalNode {
		return this.getToken(PlSqlParser.PCTVERSION, i);
	}
	public NOCACHE_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.NOCACHE);
	}
	public NOCACHE(i: number): TerminalNode {
		return this.getToken(PlSqlParser.NOCACHE, i);
	}
	public READS_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.READS);
	}
	public READS(i: number): TerminalNode {
		return this.getToken(PlSqlParser.READS, i);
	}
	public logging_clause_list(): Logging_clauseContext[] {
		return this.getTypedRuleContexts(Logging_clauseContext) as Logging_clauseContext[];
	}
	public logging_clause(i: number): Logging_clauseContext {
		return this.getTypedRuleContext(Logging_clauseContext, i) as Logging_clauseContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_modify_lob_parameters;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterModify_lob_parameters) {
	 		listener.enterModify_lob_parameters(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitModify_lob_parameters) {
	 		listener.exitModify_lob_parameters(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitModify_lob_parameters) {
			return visitor.visitModify_lob_parameters(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Lob_parametersContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public STORAGE_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.STORAGE);
	}
	public STORAGE(i: number): TerminalNode {
		return this.getToken(PlSqlParser.STORAGE, i);
	}
	public IN_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.IN);
	}
	public IN(i: number): TerminalNode {
		return this.getToken(PlSqlParser.IN, i);
	}
	public ROW_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.ROW);
	}
	public ROW(i: number): TerminalNode {
		return this.getToken(PlSqlParser.ROW, i);
	}
	public CHUNK_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.CHUNK);
	}
	public CHUNK(i: number): TerminalNode {
		return this.getToken(PlSqlParser.CHUNK, i);
	}
	public UNSIGNED_INTEGER_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.UNSIGNED_INTEGER);
	}
	public UNSIGNED_INTEGER(i: number): TerminalNode {
		return this.getToken(PlSqlParser.UNSIGNED_INTEGER, i);
	}
	public PCTVERSION_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.PCTVERSION);
	}
	public PCTVERSION(i: number): TerminalNode {
		return this.getToken(PlSqlParser.PCTVERSION, i);
	}
	public FREEPOOLS_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.FREEPOOLS);
	}
	public FREEPOOLS(i: number): TerminalNode {
		return this.getToken(PlSqlParser.FREEPOOLS, i);
	}
	public lob_retention_clause_list(): Lob_retention_clauseContext[] {
		return this.getTypedRuleContexts(Lob_retention_clauseContext) as Lob_retention_clauseContext[];
	}
	public lob_retention_clause(i: number): Lob_retention_clauseContext {
		return this.getTypedRuleContext(Lob_retention_clauseContext, i) as Lob_retention_clauseContext;
	}
	public lob_deduplicate_clause_list(): Lob_deduplicate_clauseContext[] {
		return this.getTypedRuleContexts(Lob_deduplicate_clauseContext) as Lob_deduplicate_clauseContext[];
	}
	public lob_deduplicate_clause(i: number): Lob_deduplicate_clauseContext {
		return this.getTypedRuleContext(Lob_deduplicate_clauseContext, i) as Lob_deduplicate_clauseContext;
	}
	public lob_compression_clause_list(): Lob_compression_clauseContext[] {
		return this.getTypedRuleContexts(Lob_compression_clauseContext) as Lob_compression_clauseContext[];
	}
	public lob_compression_clause(i: number): Lob_compression_clauseContext {
		return this.getTypedRuleContext(Lob_compression_clauseContext, i) as Lob_compression_clauseContext;
	}
	public ENCRYPT_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.ENCRYPT);
	}
	public ENCRYPT(i: number): TerminalNode {
		return this.getToken(PlSqlParser.ENCRYPT, i);
	}
	public encryption_spec_list(): Encryption_specContext[] {
		return this.getTypedRuleContexts(Encryption_specContext) as Encryption_specContext[];
	}
	public encryption_spec(i: number): Encryption_specContext {
		return this.getTypedRuleContext(Encryption_specContext, i) as Encryption_specContext;
	}
	public DECRYPT_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.DECRYPT);
	}
	public DECRYPT(i: number): TerminalNode {
		return this.getToken(PlSqlParser.DECRYPT, i);
	}
	public ENABLE_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.ENABLE);
	}
	public ENABLE(i: number): TerminalNode {
		return this.getToken(PlSqlParser.ENABLE, i);
	}
	public DISABLE_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.DISABLE);
	}
	public DISABLE(i: number): TerminalNode {
		return this.getToken(PlSqlParser.DISABLE, i);
	}
	public CACHE_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.CACHE);
	}
	public CACHE(i: number): TerminalNode {
		return this.getToken(PlSqlParser.CACHE, i);
	}
	public NOCACHE_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.NOCACHE);
	}
	public NOCACHE(i: number): TerminalNode {
		return this.getToken(PlSqlParser.NOCACHE, i);
	}
	public READS_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.READS);
	}
	public READS(i: number): TerminalNode {
		return this.getToken(PlSqlParser.READS, i);
	}
	public logging_clause_list(): Logging_clauseContext[] {
		return this.getTypedRuleContexts(Logging_clauseContext) as Logging_clauseContext[];
	}
	public logging_clause(i: number): Logging_clauseContext {
		return this.getTypedRuleContext(Logging_clauseContext, i) as Logging_clauseContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_lob_parameters;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterLob_parameters) {
	 		listener.enterLob_parameters(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitLob_parameters) {
	 		listener.exitLob_parameters(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitLob_parameters) {
			return visitor.visitLob_parameters(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Lob_deduplicate_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public DEDUPLICATE(): TerminalNode {
		return this.getToken(PlSqlParser.DEDUPLICATE, 0);
	}
	public KEEP_DUPLICATES(): TerminalNode {
		return this.getToken(PlSqlParser.KEEP_DUPLICATES, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_lob_deduplicate_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterLob_deduplicate_clause) {
	 		listener.enterLob_deduplicate_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitLob_deduplicate_clause) {
	 		listener.exitLob_deduplicate_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitLob_deduplicate_clause) {
			return visitor.visitLob_deduplicate_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Lob_compression_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public NOCOMPRESS(): TerminalNode {
		return this.getToken(PlSqlParser.NOCOMPRESS, 0);
	}
	public COMPRESS(): TerminalNode {
		return this.getToken(PlSqlParser.COMPRESS, 0);
	}
	public HIGH(): TerminalNode {
		return this.getToken(PlSqlParser.HIGH, 0);
	}
	public MEDIUM(): TerminalNode {
		return this.getToken(PlSqlParser.MEDIUM, 0);
	}
	public LOW(): TerminalNode {
		return this.getToken(PlSqlParser.LOW, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_lob_compression_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterLob_compression_clause) {
	 		listener.enterLob_compression_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitLob_compression_clause) {
	 		listener.exitLob_compression_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitLob_compression_clause) {
			return visitor.visitLob_compression_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Lob_retention_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public RETENTION(): TerminalNode {
		return this.getToken(PlSqlParser.RETENTION, 0);
	}
	public MAX(): TerminalNode {
		return this.getToken(PlSqlParser.MAX, 0);
	}
	public MIN(): TerminalNode {
		return this.getToken(PlSqlParser.MIN, 0);
	}
	public UNSIGNED_INTEGER(): TerminalNode {
		return this.getToken(PlSqlParser.UNSIGNED_INTEGER, 0);
	}
	public AUTO(): TerminalNode {
		return this.getToken(PlSqlParser.AUTO, 0);
	}
	public NONE(): TerminalNode {
		return this.getToken(PlSqlParser.NONE, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_lob_retention_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterLob_retention_clause) {
	 		listener.enterLob_retention_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitLob_retention_clause) {
	 		listener.exitLob_retention_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitLob_retention_clause) {
			return visitor.visitLob_retention_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Encryption_specContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public USING(): TerminalNode {
		return this.getToken(PlSqlParser.USING, 0);
	}
	public CHAR_STRING_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.CHAR_STRING);
	}
	public CHAR_STRING(i: number): TerminalNode {
		return this.getToken(PlSqlParser.CHAR_STRING, i);
	}
	public IDENTIFIED(): TerminalNode {
		return this.getToken(PlSqlParser.IDENTIFIED, 0);
	}
	public BY(): TerminalNode {
		return this.getToken(PlSqlParser.BY, 0);
	}
	public REGULAR_ID(): TerminalNode {
		return this.getToken(PlSqlParser.REGULAR_ID, 0);
	}
	public SALT(): TerminalNode {
		return this.getToken(PlSqlParser.SALT, 0);
	}
	public NO(): TerminalNode {
		return this.getToken(PlSqlParser.NO, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_encryption_spec;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterEncryption_spec) {
	 		listener.enterEncryption_spec(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitEncryption_spec) {
	 		listener.exitEncryption_spec(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitEncryption_spec) {
			return visitor.visitEncryption_spec(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class TablespaceContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public regular_id(): Regular_idContext {
		return this.getTypedRuleContext(Regular_idContext, 0) as Regular_idContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_tablespace;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterTablespace) {
	 		listener.enterTablespace(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitTablespace) {
	 		listener.exitTablespace(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitTablespace) {
			return visitor.visitTablespace(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Varray_itemContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public id_expression_list(): Id_expressionContext[] {
		return this.getTypedRuleContexts(Id_expressionContext) as Id_expressionContext[];
	}
	public id_expression(i: number): Id_expressionContext {
		return this.getTypedRuleContext(Id_expressionContext, i) as Id_expressionContext;
	}
	public PERIOD_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.PERIOD);
	}
	public PERIOD(i: number): TerminalNode {
		return this.getToken(PlSqlParser.PERIOD, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_varray_item;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterVarray_item) {
	 		listener.enterVarray_item(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitVarray_item) {
	 		listener.exitVarray_item(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitVarray_item) {
			return visitor.visitVarray_item(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Column_propertiesContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public object_type_col_properties(): Object_type_col_propertiesContext {
		return this.getTypedRuleContext(Object_type_col_propertiesContext, 0) as Object_type_col_propertiesContext;
	}
	public nested_table_col_properties(): Nested_table_col_propertiesContext {
		return this.getTypedRuleContext(Nested_table_col_propertiesContext, 0) as Nested_table_col_propertiesContext;
	}
	public varray_col_properties(): Varray_col_propertiesContext {
		return this.getTypedRuleContext(Varray_col_propertiesContext, 0) as Varray_col_propertiesContext;
	}
	public lob_storage_clause(): Lob_storage_clauseContext {
		return this.getTypedRuleContext(Lob_storage_clauseContext, 0) as Lob_storage_clauseContext;
	}
	public xmltype_column_properties(): Xmltype_column_propertiesContext {
		return this.getTypedRuleContext(Xmltype_column_propertiesContext, 0) as Xmltype_column_propertiesContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_column_properties;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterColumn_properties) {
	 		listener.enterColumn_properties(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitColumn_properties) {
	 		listener.exitColumn_properties(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitColumn_properties) {
			return visitor.visitColumn_properties(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Period_definitionContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public PERIOD(): TerminalNode {
		return this.getToken(PlSqlParser.PERIOD, 0);
	}
	public FOR(): TerminalNode {
		return this.getToken(PlSqlParser.FOR, 0);
	}
	public column_name(): Column_nameContext {
		return this.getTypedRuleContext(Column_nameContext, 0) as Column_nameContext;
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public start_time_column(): Start_time_columnContext {
		return this.getTypedRuleContext(Start_time_columnContext, 0) as Start_time_columnContext;
	}
	public COMMA(): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, 0);
	}
	public end_time_column(): End_time_columnContext {
		return this.getTypedRuleContext(End_time_columnContext, 0) as End_time_columnContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_period_definition;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterPeriod_definition) {
	 		listener.enterPeriod_definition(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitPeriod_definition) {
	 		listener.exitPeriod_definition(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitPeriod_definition) {
			return visitor.visitPeriod_definition(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Start_time_columnContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public column_name(): Column_nameContext {
		return this.getTypedRuleContext(Column_nameContext, 0) as Column_nameContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_start_time_column;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterStart_time_column) {
	 		listener.enterStart_time_column(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitStart_time_column) {
	 		listener.exitStart_time_column(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitStart_time_column) {
			return visitor.visitStart_time_column(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class End_time_columnContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public column_name(): Column_nameContext {
		return this.getTypedRuleContext(Column_nameContext, 0) as Column_nameContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_end_time_column;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterEnd_time_column) {
	 		listener.enterEnd_time_column(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitEnd_time_column) {
	 		listener.exitEnd_time_column(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitEnd_time_column) {
			return visitor.visitEnd_time_column(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Column_definitionContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public column_name(): Column_nameContext {
		return this.getTypedRuleContext(Column_nameContext, 0) as Column_nameContext;
	}
	public datatype(): DatatypeContext {
		return this.getTypedRuleContext(DatatypeContext, 0) as DatatypeContext;
	}
	public type_name(): Type_nameContext {
		return this.getTypedRuleContext(Type_nameContext, 0) as Type_nameContext;
	}
	public inline_ref_constraint(): Inline_ref_constraintContext {
		return this.getTypedRuleContext(Inline_ref_constraintContext, 0) as Inline_ref_constraintContext;
	}
	public SORT(): TerminalNode {
		return this.getToken(PlSqlParser.SORT, 0);
	}
	public DEFAULT(): TerminalNode {
		return this.getToken(PlSqlParser.DEFAULT, 0);
	}
	public expression(): ExpressionContext {
		return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext;
	}
	public ENCRYPT(): TerminalNode {
		return this.getToken(PlSqlParser.ENCRYPT, 0);
	}
	public inline_constraint_list(): Inline_constraintContext[] {
		return this.getTypedRuleContexts(Inline_constraintContext) as Inline_constraintContext[];
	}
	public inline_constraint(i: number): Inline_constraintContext {
		return this.getTypedRuleContext(Inline_constraintContext, i) as Inline_constraintContext;
	}
	public USING(): TerminalNode {
		return this.getToken(PlSqlParser.USING, 0);
	}
	public CHAR_STRING_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.CHAR_STRING);
	}
	public CHAR_STRING(i: number): TerminalNode {
		return this.getToken(PlSqlParser.CHAR_STRING, i);
	}
	public IDENTIFIED(): TerminalNode {
		return this.getToken(PlSqlParser.IDENTIFIED, 0);
	}
	public BY(): TerminalNode {
		return this.getToken(PlSqlParser.BY, 0);
	}
	public regular_id(): Regular_idContext {
		return this.getTypedRuleContext(Regular_idContext, 0) as Regular_idContext;
	}
	public SALT(): TerminalNode {
		return this.getToken(PlSqlParser.SALT, 0);
	}
	public NO(): TerminalNode {
		return this.getToken(PlSqlParser.NO, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_column_definition;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterColumn_definition) {
	 		listener.enterColumn_definition(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitColumn_definition) {
	 		listener.exitColumn_definition(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitColumn_definition) {
			return visitor.visitColumn_definition(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Virtual_column_definitionContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public column_name(): Column_nameContext {
		return this.getTypedRuleContext(Column_nameContext, 0) as Column_nameContext;
	}
	public datatype(): DatatypeContext {
		return this.getTypedRuleContext(DatatypeContext, 0) as DatatypeContext;
	}
	public autogenerated_sequence_definition(): Autogenerated_sequence_definitionContext {
		return this.getTypedRuleContext(Autogenerated_sequence_definitionContext, 0) as Autogenerated_sequence_definitionContext;
	}
	public VIRTUAL(): TerminalNode {
		return this.getToken(PlSqlParser.VIRTUAL, 0);
	}
	public inline_constraint_list(): Inline_constraintContext[] {
		return this.getTypedRuleContexts(Inline_constraintContext) as Inline_constraintContext[];
	}
	public inline_constraint(i: number): Inline_constraintContext {
		return this.getTypedRuleContext(Inline_constraintContext, i) as Inline_constraintContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_virtual_column_definition;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterVirtual_column_definition) {
	 		listener.enterVirtual_column_definition(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitVirtual_column_definition) {
	 		listener.exitVirtual_column_definition(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitVirtual_column_definition) {
			return visitor.visitVirtual_column_definition(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Autogenerated_sequence_definitionContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public GENERATED(): TerminalNode {
		return this.getToken(PlSqlParser.GENERATED, 0);
	}
	public AS(): TerminalNode {
		return this.getToken(PlSqlParser.AS, 0);
	}
	public IDENTITY(): TerminalNode {
		return this.getToken(PlSqlParser.IDENTITY, 0);
	}
	public ALWAYS(): TerminalNode {
		return this.getToken(PlSqlParser.ALWAYS, 0);
	}
	public BY(): TerminalNode {
		return this.getToken(PlSqlParser.BY, 0);
	}
	public DEFAULT(): TerminalNode {
		return this.getToken(PlSqlParser.DEFAULT, 0);
	}
	public ON(): TerminalNode {
		return this.getToken(PlSqlParser.ON, 0);
	}
	public NULL_(): TerminalNode {
		return this.getToken(PlSqlParser.NULL_, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_autogenerated_sequence_definition;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterAutogenerated_sequence_definition) {
	 		listener.enterAutogenerated_sequence_definition(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitAutogenerated_sequence_definition) {
	 		listener.exitAutogenerated_sequence_definition(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitAutogenerated_sequence_definition) {
			return visitor.visitAutogenerated_sequence_definition(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Out_of_line_part_storageContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public PARTITION(): TerminalNode {
		return this.getToken(PlSqlParser.PARTITION, 0);
	}
	public partition_name(): Partition_nameContext {
		return this.getTypedRuleContext(Partition_nameContext, 0) as Partition_nameContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_out_of_line_part_storage;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterOut_of_line_part_storage) {
	 		listener.enterOut_of_line_part_storage(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitOut_of_line_part_storage) {
	 		listener.exitOut_of_line_part_storage(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitOut_of_line_part_storage) {
			return visitor.visitOut_of_line_part_storage(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Nested_table_col_propertiesContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public NESTED(): TerminalNode {
		return this.getToken(PlSqlParser.NESTED, 0);
	}
	public TABLE(): TerminalNode {
		return this.getToken(PlSqlParser.TABLE, 0);
	}
	public STORE(): TerminalNode {
		return this.getToken(PlSqlParser.STORE, 0);
	}
	public AS_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.AS);
	}
	public AS(i: number): TerminalNode {
		return this.getToken(PlSqlParser.AS, i);
	}
	public tableview_name(): Tableview_nameContext {
		return this.getTypedRuleContext(Tableview_nameContext, 0) as Tableview_nameContext;
	}
	public nested_item(): Nested_itemContext {
		return this.getTypedRuleContext(Nested_itemContext, 0) as Nested_itemContext;
	}
	public COLUMN_VALUE(): TerminalNode {
		return this.getToken(PlSqlParser.COLUMN_VALUE, 0);
	}
	public substitutable_column_clause(): Substitutable_column_clauseContext {
		return this.getTypedRuleContext(Substitutable_column_clauseContext, 0) as Substitutable_column_clauseContext;
	}
	public LEFT_PAREN_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.LEFT_PAREN);
	}
	public LEFT_PAREN(i: number): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, i);
	}
	public RIGHT_PAREN_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.RIGHT_PAREN);
	}
	public RIGHT_PAREN(i: number): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, i);
	}
	public RETURN(): TerminalNode {
		return this.getToken(PlSqlParser.RETURN, 0);
	}
	public LOCAL(): TerminalNode {
		return this.getToken(PlSqlParser.LOCAL, 0);
	}
	public GLOBAL(): TerminalNode {
		return this.getToken(PlSqlParser.GLOBAL, 0);
	}
	public LOCATOR(): TerminalNode {
		return this.getToken(PlSqlParser.LOCATOR, 0);
	}
	public VALUE(): TerminalNode {
		return this.getToken(PlSqlParser.VALUE, 0);
	}
	public object_properties_list(): Object_propertiesContext[] {
		return this.getTypedRuleContexts(Object_propertiesContext) as Object_propertiesContext[];
	}
	public object_properties(i: number): Object_propertiesContext {
		return this.getTypedRuleContext(Object_propertiesContext, i) as Object_propertiesContext;
	}
	public physical_properties_list(): Physical_propertiesContext[] {
		return this.getTypedRuleContexts(Physical_propertiesContext) as Physical_propertiesContext[];
	}
	public physical_properties(i: number): Physical_propertiesContext {
		return this.getTypedRuleContext(Physical_propertiesContext, i) as Physical_propertiesContext;
	}
	public column_properties_list(): Column_propertiesContext[] {
		return this.getTypedRuleContexts(Column_propertiesContext) as Column_propertiesContext[];
	}
	public column_properties(i: number): Column_propertiesContext {
		return this.getTypedRuleContext(Column_propertiesContext, i) as Column_propertiesContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_nested_table_col_properties;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterNested_table_col_properties) {
	 		listener.enterNested_table_col_properties(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitNested_table_col_properties) {
	 		listener.exitNested_table_col_properties(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitNested_table_col_properties) {
			return visitor.visitNested_table_col_properties(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Nested_itemContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public regular_id(): Regular_idContext {
		return this.getTypedRuleContext(Regular_idContext, 0) as Regular_idContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_nested_item;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterNested_item) {
	 		listener.enterNested_item(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitNested_item) {
	 		listener.exitNested_item(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitNested_item) {
			return visitor.visitNested_item(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Substitutable_column_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public IS(): TerminalNode {
		return this.getToken(PlSqlParser.IS, 0);
	}
	public OF(): TerminalNode {
		return this.getToken(PlSqlParser.OF, 0);
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public type_name(): Type_nameContext {
		return this.getTypedRuleContext(Type_nameContext, 0) as Type_nameContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public ELEMENT(): TerminalNode {
		return this.getToken(PlSqlParser.ELEMENT, 0);
	}
	public TYPE(): TerminalNode {
		return this.getToken(PlSqlParser.TYPE, 0);
	}
	public SUBSTITUTABLE(): TerminalNode {
		return this.getToken(PlSqlParser.SUBSTITUTABLE, 0);
	}
	public AT(): TerminalNode {
		return this.getToken(PlSqlParser.AT, 0);
	}
	public ALL(): TerminalNode {
		return this.getToken(PlSqlParser.ALL, 0);
	}
	public LEVELS(): TerminalNode {
		return this.getToken(PlSqlParser.LEVELS, 0);
	}
	public NOT(): TerminalNode {
		return this.getToken(PlSqlParser.NOT, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_substitutable_column_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterSubstitutable_column_clause) {
	 		listener.enterSubstitutable_column_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitSubstitutable_column_clause) {
	 		listener.exitSubstitutable_column_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitSubstitutable_column_clause) {
			return visitor.visitSubstitutable_column_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Partition_nameContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public regular_id(): Regular_idContext {
		return this.getTypedRuleContext(Regular_idContext, 0) as Regular_idContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_partition_name;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterPartition_name) {
	 		listener.enterPartition_name(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitPartition_name) {
	 		listener.exitPartition_name(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitPartition_name) {
			return visitor.visitPartition_name(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Supplemental_logging_propsContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public SUPPLEMENTAL(): TerminalNode {
		return this.getToken(PlSqlParser.SUPPLEMENTAL, 0);
	}
	public LOG(): TerminalNode {
		return this.getToken(PlSqlParser.LOG, 0);
	}
	public supplemental_log_grp_clause(): Supplemental_log_grp_clauseContext {
		return this.getTypedRuleContext(Supplemental_log_grp_clauseContext, 0) as Supplemental_log_grp_clauseContext;
	}
	public supplemental_id_key_clause(): Supplemental_id_key_clauseContext {
		return this.getTypedRuleContext(Supplemental_id_key_clauseContext, 0) as Supplemental_id_key_clauseContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_supplemental_logging_props;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterSupplemental_logging_props) {
	 		listener.enterSupplemental_logging_props(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitSupplemental_logging_props) {
	 		listener.exitSupplemental_logging_props(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitSupplemental_logging_props) {
			return visitor.visitSupplemental_logging_props(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Column_or_attributeContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public regular_id(): Regular_idContext {
		return this.getTypedRuleContext(Regular_idContext, 0) as Regular_idContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_column_or_attribute;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterColumn_or_attribute) {
	 		listener.enterColumn_or_attribute(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitColumn_or_attribute) {
	 		listener.exitColumn_or_attribute(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitColumn_or_attribute) {
			return visitor.visitColumn_or_attribute(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Object_type_col_propertiesContext extends ParserRuleContext {
	public _column!: Regular_idContext;
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public COLUMN(): TerminalNode {
		return this.getToken(PlSqlParser.COLUMN, 0);
	}
	public substitutable_column_clause(): Substitutable_column_clauseContext {
		return this.getTypedRuleContext(Substitutable_column_clauseContext, 0) as Substitutable_column_clauseContext;
	}
	public regular_id(): Regular_idContext {
		return this.getTypedRuleContext(Regular_idContext, 0) as Regular_idContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_object_type_col_properties;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterObject_type_col_properties) {
	 		listener.enterObject_type_col_properties(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitObject_type_col_properties) {
	 		listener.exitObject_type_col_properties(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitObject_type_col_properties) {
			return visitor.visitObject_type_col_properties(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Constraint_clausesContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public ADD(): TerminalNode {
		return this.getToken(PlSqlParser.ADD, 0);
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public out_of_line_ref_constraint(): Out_of_line_ref_constraintContext {
		return this.getTypedRuleContext(Out_of_line_ref_constraintContext, 0) as Out_of_line_ref_constraintContext;
	}
	public out_of_line_constraint_list(): Out_of_line_constraintContext[] {
		return this.getTypedRuleContexts(Out_of_line_constraintContext) as Out_of_line_constraintContext[];
	}
	public out_of_line_constraint(i: number): Out_of_line_constraintContext {
		return this.getTypedRuleContext(Out_of_line_constraintContext, i) as Out_of_line_constraintContext;
	}
	public MODIFY(): TerminalNode {
		return this.getToken(PlSqlParser.MODIFY, 0);
	}
	public constraint_state(): Constraint_stateContext {
		return this.getTypedRuleContext(Constraint_stateContext, 0) as Constraint_stateContext;
	}
	public CONSTRAINT(): TerminalNode {
		return this.getToken(PlSqlParser.CONSTRAINT, 0);
	}
	public constraint_name(): Constraint_nameContext {
		return this.getTypedRuleContext(Constraint_nameContext, 0) as Constraint_nameContext;
	}
	public PRIMARY(): TerminalNode {
		return this.getToken(PlSqlParser.PRIMARY, 0);
	}
	public KEY(): TerminalNode {
		return this.getToken(PlSqlParser.KEY, 0);
	}
	public UNIQUE(): TerminalNode {
		return this.getToken(PlSqlParser.UNIQUE, 0);
	}
	public column_name_list(): Column_nameContext[] {
		return this.getTypedRuleContexts(Column_nameContext) as Column_nameContext[];
	}
	public column_name(i: number): Column_nameContext {
		return this.getTypedRuleContext(Column_nameContext, i) as Column_nameContext;
	}
	public CASCADE(): TerminalNode {
		return this.getToken(PlSqlParser.CASCADE, 0);
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
	public RENAME(): TerminalNode {
		return this.getToken(PlSqlParser.RENAME, 0);
	}
	public old_constraint_name(): Old_constraint_nameContext {
		return this.getTypedRuleContext(Old_constraint_nameContext, 0) as Old_constraint_nameContext;
	}
	public TO(): TerminalNode {
		return this.getToken(PlSqlParser.TO, 0);
	}
	public new_constraint_name(): New_constraint_nameContext {
		return this.getTypedRuleContext(New_constraint_nameContext, 0) as New_constraint_nameContext;
	}
	public drop_constraint_clause_list(): Drop_constraint_clauseContext[] {
		return this.getTypedRuleContexts(Drop_constraint_clauseContext) as Drop_constraint_clauseContext[];
	}
	public drop_constraint_clause(i: number): Drop_constraint_clauseContext {
		return this.getTypedRuleContext(Drop_constraint_clauseContext, i) as Drop_constraint_clauseContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_constraint_clauses;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterConstraint_clauses) {
	 		listener.enterConstraint_clauses(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitConstraint_clauses) {
	 		listener.exitConstraint_clauses(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitConstraint_clauses) {
			return visitor.visitConstraint_clauses(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Old_constraint_nameContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public constraint_name(): Constraint_nameContext {
		return this.getTypedRuleContext(Constraint_nameContext, 0) as Constraint_nameContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_old_constraint_name;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterOld_constraint_name) {
	 		listener.enterOld_constraint_name(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitOld_constraint_name) {
	 		listener.exitOld_constraint_name(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitOld_constraint_name) {
			return visitor.visitOld_constraint_name(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class New_constraint_nameContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public constraint_name(): Constraint_nameContext {
		return this.getTypedRuleContext(Constraint_nameContext, 0) as Constraint_nameContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_new_constraint_name;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterNew_constraint_name) {
	 		listener.enterNew_constraint_name(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitNew_constraint_name) {
	 		listener.exitNew_constraint_name(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitNew_constraint_name) {
			return visitor.visitNew_constraint_name(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Drop_constraint_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public DROP(): TerminalNode {
		return this.getToken(PlSqlParser.DROP, 0);
	}
	public drop_primary_key_or_unique_or_generic_clause(): Drop_primary_key_or_unique_or_generic_clauseContext {
		return this.getTypedRuleContext(Drop_primary_key_or_unique_or_generic_clauseContext, 0) as Drop_primary_key_or_unique_or_generic_clauseContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_drop_constraint_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterDrop_constraint_clause) {
	 		listener.enterDrop_constraint_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitDrop_constraint_clause) {
	 		listener.exitDrop_constraint_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitDrop_constraint_clause) {
			return visitor.visitDrop_constraint_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Drop_primary_key_or_unique_or_generic_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public PRIMARY(): TerminalNode {
		return this.getToken(PlSqlParser.PRIMARY, 0);
	}
	public KEY(): TerminalNode {
		return this.getToken(PlSqlParser.KEY, 0);
	}
	public UNIQUE(): TerminalNode {
		return this.getToken(PlSqlParser.UNIQUE, 0);
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public column_name_list(): Column_nameContext[] {
		return this.getTypedRuleContexts(Column_nameContext) as Column_nameContext[];
	}
	public column_name(i: number): Column_nameContext {
		return this.getTypedRuleContext(Column_nameContext, i) as Column_nameContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public CASCADE(): TerminalNode {
		return this.getToken(PlSqlParser.CASCADE, 0);
	}
	public KEEP(): TerminalNode {
		return this.getToken(PlSqlParser.KEEP, 0);
	}
	public DROP(): TerminalNode {
		return this.getToken(PlSqlParser.DROP, 0);
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
	public CONSTRAINT(): TerminalNode {
		return this.getToken(PlSqlParser.CONSTRAINT, 0);
	}
	public constraint_name(): Constraint_nameContext {
		return this.getTypedRuleContext(Constraint_nameContext, 0) as Constraint_nameContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_drop_primary_key_or_unique_or_generic_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterDrop_primary_key_or_unique_or_generic_clause) {
	 		listener.enterDrop_primary_key_or_unique_or_generic_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitDrop_primary_key_or_unique_or_generic_clause) {
	 		listener.exitDrop_primary_key_or_unique_or_generic_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitDrop_primary_key_or_unique_or_generic_clause) {
			return visitor.visitDrop_primary_key_or_unique_or_generic_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Add_constraintContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public ADD(): TerminalNode {
		return this.getToken(PlSqlParser.ADD, 0);
	}
	public add_constraint_clause_list(): Add_constraint_clauseContext[] {
		return this.getTypedRuleContexts(Add_constraint_clauseContext) as Add_constraint_clauseContext[];
	}
	public add_constraint_clause(i: number): Add_constraint_clauseContext {
		return this.getTypedRuleContext(Add_constraint_clauseContext, i) as Add_constraint_clauseContext;
	}
	public CONSTRAINT_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.CONSTRAINT);
	}
	public CONSTRAINT(i: number): TerminalNode {
		return this.getToken(PlSqlParser.CONSTRAINT, i);
	}
	public constraint_name_list(): Constraint_nameContext[] {
		return this.getTypedRuleContexts(Constraint_nameContext) as Constraint_nameContext[];
	}
	public constraint_name(i: number): Constraint_nameContext {
		return this.getTypedRuleContext(Constraint_nameContext, i) as Constraint_nameContext;
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_add_constraint;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterAdd_constraint) {
	 		listener.enterAdd_constraint(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitAdd_constraint) {
	 		listener.exitAdd_constraint(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitAdd_constraint) {
			return visitor.visitAdd_constraint(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Add_constraint_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public primary_key_clause(): Primary_key_clauseContext {
		return this.getTypedRuleContext(Primary_key_clauseContext, 0) as Primary_key_clauseContext;
	}
	public foreign_key_clause(): Foreign_key_clauseContext {
		return this.getTypedRuleContext(Foreign_key_clauseContext, 0) as Foreign_key_clauseContext;
	}
	public unique_key_clause(): Unique_key_clauseContext {
		return this.getTypedRuleContext(Unique_key_clauseContext, 0) as Unique_key_clauseContext;
	}
	public check_constraint(): Check_constraintContext {
		return this.getTypedRuleContext(Check_constraintContext, 0) as Check_constraintContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_add_constraint_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterAdd_constraint_clause) {
	 		listener.enterAdd_constraint_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitAdd_constraint_clause) {
	 		listener.exitAdd_constraint_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitAdd_constraint_clause) {
			return visitor.visitAdd_constraint_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Check_constraintContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public CHECK(): TerminalNode {
		return this.getToken(PlSqlParser.CHECK, 0);
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public condition(): ConditionContext {
		return this.getTypedRuleContext(ConditionContext, 0) as ConditionContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public DISABLE(): TerminalNode {
		return this.getToken(PlSqlParser.DISABLE, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_check_constraint;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterCheck_constraint) {
	 		listener.enterCheck_constraint(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitCheck_constraint) {
	 		listener.exitCheck_constraint(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitCheck_constraint) {
			return visitor.visitCheck_constraint(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Drop_constraintContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public DROP(): TerminalNode {
		return this.getToken(PlSqlParser.DROP, 0);
	}
	public CONSTRAINT(): TerminalNode {
		return this.getToken(PlSqlParser.CONSTRAINT, 0);
	}
	public constraint_name(): Constraint_nameContext {
		return this.getTypedRuleContext(Constraint_nameContext, 0) as Constraint_nameContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_drop_constraint;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterDrop_constraint) {
	 		listener.enterDrop_constraint(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitDrop_constraint) {
	 		listener.exitDrop_constraint(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitDrop_constraint) {
			return visitor.visitDrop_constraint(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Enable_constraintContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public ENABLE(): TerminalNode {
		return this.getToken(PlSqlParser.ENABLE, 0);
	}
	public CONSTRAINT(): TerminalNode {
		return this.getToken(PlSqlParser.CONSTRAINT, 0);
	}
	public constraint_name(): Constraint_nameContext {
		return this.getTypedRuleContext(Constraint_nameContext, 0) as Constraint_nameContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_enable_constraint;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterEnable_constraint) {
	 		listener.enterEnable_constraint(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitEnable_constraint) {
	 		listener.exitEnable_constraint(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitEnable_constraint) {
			return visitor.visitEnable_constraint(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Disable_constraintContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public DISABLE(): TerminalNode {
		return this.getToken(PlSqlParser.DISABLE, 0);
	}
	public CONSTRAINT(): TerminalNode {
		return this.getToken(PlSqlParser.CONSTRAINT, 0);
	}
	public constraint_name(): Constraint_nameContext {
		return this.getTypedRuleContext(Constraint_nameContext, 0) as Constraint_nameContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_disable_constraint;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterDisable_constraint) {
	 		listener.enterDisable_constraint(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitDisable_constraint) {
	 		listener.exitDisable_constraint(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitDisable_constraint) {
			return visitor.visitDisable_constraint(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Foreign_key_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public FOREIGN(): TerminalNode {
		return this.getToken(PlSqlParser.FOREIGN, 0);
	}
	public KEY(): TerminalNode {
		return this.getToken(PlSqlParser.KEY, 0);
	}
	public paren_column_list(): Paren_column_listContext {
		return this.getTypedRuleContext(Paren_column_listContext, 0) as Paren_column_listContext;
	}
	public references_clause(): References_clauseContext {
		return this.getTypedRuleContext(References_clauseContext, 0) as References_clauseContext;
	}
	public on_delete_clause(): On_delete_clauseContext {
		return this.getTypedRuleContext(On_delete_clauseContext, 0) as On_delete_clauseContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_foreign_key_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterForeign_key_clause) {
	 		listener.enterForeign_key_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitForeign_key_clause) {
	 		listener.exitForeign_key_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitForeign_key_clause) {
			return visitor.visitForeign_key_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class References_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public REFERENCES(): TerminalNode {
		return this.getToken(PlSqlParser.REFERENCES, 0);
	}
	public tableview_name(): Tableview_nameContext {
		return this.getTypedRuleContext(Tableview_nameContext, 0) as Tableview_nameContext;
	}
	public paren_column_list(): Paren_column_listContext {
		return this.getTypedRuleContext(Paren_column_listContext, 0) as Paren_column_listContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_references_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterReferences_clause) {
	 		listener.enterReferences_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitReferences_clause) {
	 		listener.exitReferences_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitReferences_clause) {
			return visitor.visitReferences_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class On_delete_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public ON(): TerminalNode {
		return this.getToken(PlSqlParser.ON, 0);
	}
	public DELETE(): TerminalNode {
		return this.getToken(PlSqlParser.DELETE, 0);
	}
	public CASCADE(): TerminalNode {
		return this.getToken(PlSqlParser.CASCADE, 0);
	}
	public SET(): TerminalNode {
		return this.getToken(PlSqlParser.SET, 0);
	}
	public NULL_(): TerminalNode {
		return this.getToken(PlSqlParser.NULL_, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_on_delete_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterOn_delete_clause) {
	 		listener.enterOn_delete_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitOn_delete_clause) {
	 		listener.exitOn_delete_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitOn_delete_clause) {
			return visitor.visitOn_delete_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Unique_key_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public UNIQUE(): TerminalNode {
		return this.getToken(PlSqlParser.UNIQUE, 0);
	}
	public paren_column_list(): Paren_column_listContext {
		return this.getTypedRuleContext(Paren_column_listContext, 0) as Paren_column_listContext;
	}
	public using_index_clause(): Using_index_clauseContext {
		return this.getTypedRuleContext(Using_index_clauseContext, 0) as Using_index_clauseContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_unique_key_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterUnique_key_clause) {
	 		listener.enterUnique_key_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitUnique_key_clause) {
	 		listener.exitUnique_key_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitUnique_key_clause) {
			return visitor.visitUnique_key_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Primary_key_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public PRIMARY(): TerminalNode {
		return this.getToken(PlSqlParser.PRIMARY, 0);
	}
	public KEY(): TerminalNode {
		return this.getToken(PlSqlParser.KEY, 0);
	}
	public paren_column_list(): Paren_column_listContext {
		return this.getTypedRuleContext(Paren_column_listContext, 0) as Paren_column_listContext;
	}
	public using_index_clause(): Using_index_clauseContext {
		return this.getTypedRuleContext(Using_index_clauseContext, 0) as Using_index_clauseContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_primary_key_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterPrimary_key_clause) {
	 		listener.enterPrimary_key_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitPrimary_key_clause) {
	 		listener.exitPrimary_key_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitPrimary_key_clause) {
			return visitor.visitPrimary_key_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Anonymous_blockContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public BEGIN(): TerminalNode {
		return this.getToken(PlSqlParser.BEGIN, 0);
	}
	public seq_of_statements(): Seq_of_statementsContext {
		return this.getTypedRuleContext(Seq_of_statementsContext, 0) as Seq_of_statementsContext;
	}
	public END(): TerminalNode {
		return this.getToken(PlSqlParser.END, 0);
	}
	public SEMICOLON(): TerminalNode {
		return this.getToken(PlSqlParser.SEMICOLON, 0);
	}
	public DECLARE(): TerminalNode {
		return this.getToken(PlSqlParser.DECLARE, 0);
	}
	public seq_of_declare_specs(): Seq_of_declare_specsContext {
		return this.getTypedRuleContext(Seq_of_declare_specsContext, 0) as Seq_of_declare_specsContext;
	}
	public EXCEPTION(): TerminalNode {
		return this.getToken(PlSqlParser.EXCEPTION, 0);
	}
	public exception_handler_list(): Exception_handlerContext[] {
		return this.getTypedRuleContexts(Exception_handlerContext) as Exception_handlerContext[];
	}
	public exception_handler(i: number): Exception_handlerContext {
		return this.getTypedRuleContext(Exception_handlerContext, i) as Exception_handlerContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_anonymous_block;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterAnonymous_block) {
	 		listener.enterAnonymous_block(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitAnonymous_block) {
	 		listener.exitAnonymous_block(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitAnonymous_block) {
			return visitor.visitAnonymous_block(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Invoker_rights_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public AUTHID(): TerminalNode {
		return this.getToken(PlSqlParser.AUTHID, 0);
	}
	public CURRENT_USER(): TerminalNode {
		return this.getToken(PlSqlParser.CURRENT_USER, 0);
	}
	public DEFINER(): TerminalNode {
		return this.getToken(PlSqlParser.DEFINER, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_invoker_rights_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterInvoker_rights_clause) {
	 		listener.enterInvoker_rights_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitInvoker_rights_clause) {
	 		listener.exitInvoker_rights_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitInvoker_rights_clause) {
			return visitor.visitInvoker_rights_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Call_specContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public LANGUAGE(): TerminalNode {
		return this.getToken(PlSqlParser.LANGUAGE, 0);
	}
	public java_spec(): Java_specContext {
		return this.getTypedRuleContext(Java_specContext, 0) as Java_specContext;
	}
	public c_spec(): C_specContext {
		return this.getTypedRuleContext(C_specContext, 0) as C_specContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_call_spec;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterCall_spec) {
	 		listener.enterCall_spec(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitCall_spec) {
	 		listener.exitCall_spec(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitCall_spec) {
			return visitor.visitCall_spec(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Java_specContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public JAVA(): TerminalNode {
		return this.getToken(PlSqlParser.JAVA, 0);
	}
	public NAME(): TerminalNode {
		return this.getToken(PlSqlParser.NAME, 0);
	}
	public CHAR_STRING(): TerminalNode {
		return this.getToken(PlSqlParser.CHAR_STRING, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_java_spec;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterJava_spec) {
	 		listener.enterJava_spec(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitJava_spec) {
	 		listener.exitJava_spec(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitJava_spec) {
			return visitor.visitJava_spec(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class C_specContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public C_LETTER(): TerminalNode {
		return this.getToken(PlSqlParser.C_LETTER, 0);
	}
	public LIBRARY(): TerminalNode {
		return this.getToken(PlSqlParser.LIBRARY, 0);
	}
	public identifier(): IdentifierContext {
		return this.getTypedRuleContext(IdentifierContext, 0) as IdentifierContext;
	}
	public NAME(): TerminalNode {
		return this.getToken(PlSqlParser.NAME, 0);
	}
	public CHAR_STRING(): TerminalNode {
		return this.getToken(PlSqlParser.CHAR_STRING, 0);
	}
	public c_agent_in_clause(): C_agent_in_clauseContext {
		return this.getTypedRuleContext(C_agent_in_clauseContext, 0) as C_agent_in_clauseContext;
	}
	public WITH(): TerminalNode {
		return this.getToken(PlSqlParser.WITH, 0);
	}
	public CONTEXT(): TerminalNode {
		return this.getToken(PlSqlParser.CONTEXT, 0);
	}
	public c_parameters_clause(): C_parameters_clauseContext {
		return this.getTypedRuleContext(C_parameters_clauseContext, 0) as C_parameters_clauseContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_c_spec;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterC_spec) {
	 		listener.enterC_spec(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitC_spec) {
	 		listener.exitC_spec(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitC_spec) {
			return visitor.visitC_spec(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class C_agent_in_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public AGENT(): TerminalNode {
		return this.getToken(PlSqlParser.AGENT, 0);
	}
	public IN(): TerminalNode {
		return this.getToken(PlSqlParser.IN, 0);
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public expressions(): ExpressionsContext {
		return this.getTypedRuleContext(ExpressionsContext, 0) as ExpressionsContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_c_agent_in_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterC_agent_in_clause) {
	 		listener.enterC_agent_in_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitC_agent_in_clause) {
	 		listener.exitC_agent_in_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitC_agent_in_clause) {
			return visitor.visitC_agent_in_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class C_parameters_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public PARAMETERS(): TerminalNode {
		return this.getToken(PlSqlParser.PARAMETERS, 0);
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public expressions(): ExpressionsContext {
		return this.getTypedRuleContext(ExpressionsContext, 0) as ExpressionsContext;
	}
	public PERIOD_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.PERIOD);
	}
	public PERIOD(i: number): TerminalNode {
		return this.getToken(PlSqlParser.PERIOD, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_c_parameters_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterC_parameters_clause) {
	 		listener.enterC_parameters_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitC_parameters_clause) {
	 		listener.exitC_parameters_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitC_parameters_clause) {
			return visitor.visitC_parameters_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class ParameterContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public parameter_name(): Parameter_nameContext {
		return this.getTypedRuleContext(Parameter_nameContext, 0) as Parameter_nameContext;
	}
	public type_spec(): Type_specContext {
		return this.getTypedRuleContext(Type_specContext, 0) as Type_specContext;
	}
	public default_value_part(): Default_value_partContext {
		return this.getTypedRuleContext(Default_value_partContext, 0) as Default_value_partContext;
	}
	public IN_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.IN);
	}
	public IN(i: number): TerminalNode {
		return this.getToken(PlSqlParser.IN, i);
	}
	public OUT_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.OUT);
	}
	public OUT(i: number): TerminalNode {
		return this.getToken(PlSqlParser.OUT, i);
	}
	public INOUT_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.INOUT);
	}
	public INOUT(i: number): TerminalNode {
		return this.getToken(PlSqlParser.INOUT, i);
	}
	public NOCOPY_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.NOCOPY);
	}
	public NOCOPY(i: number): TerminalNode {
		return this.getToken(PlSqlParser.NOCOPY, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_parameter;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterParameter) {
	 		listener.enterParameter(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitParameter) {
	 		listener.exitParameter(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitParameter) {
			return visitor.visitParameter(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Default_value_partContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public expression(): ExpressionContext {
		return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext;
	}
	public ASSIGN_OP(): TerminalNode {
		return this.getToken(PlSqlParser.ASSIGN_OP, 0);
	}
	public DEFAULT(): TerminalNode {
		return this.getToken(PlSqlParser.DEFAULT, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_default_value_part;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterDefault_value_part) {
	 		listener.enterDefault_value_part(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitDefault_value_part) {
	 		listener.exitDefault_value_part(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitDefault_value_part) {
			return visitor.visitDefault_value_part(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Seq_of_declare_specsContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public declare_spec_list(): Declare_specContext[] {
		return this.getTypedRuleContexts(Declare_specContext) as Declare_specContext[];
	}
	public declare_spec(i: number): Declare_specContext {
		return this.getTypedRuleContext(Declare_specContext, i) as Declare_specContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_seq_of_declare_specs;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterSeq_of_declare_specs) {
	 		listener.enterSeq_of_declare_specs(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitSeq_of_declare_specs) {
	 		listener.exitSeq_of_declare_specs(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitSeq_of_declare_specs) {
			return visitor.visitSeq_of_declare_specs(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Declare_specContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public pragma_declaration(): Pragma_declarationContext {
		return this.getTypedRuleContext(Pragma_declarationContext, 0) as Pragma_declarationContext;
	}
	public variable_declaration(): Variable_declarationContext {
		return this.getTypedRuleContext(Variable_declarationContext, 0) as Variable_declarationContext;
	}
	public subtype_declaration(): Subtype_declarationContext {
		return this.getTypedRuleContext(Subtype_declarationContext, 0) as Subtype_declarationContext;
	}
	public cursor_declaration(): Cursor_declarationContext {
		return this.getTypedRuleContext(Cursor_declarationContext, 0) as Cursor_declarationContext;
	}
	public exception_declaration(): Exception_declarationContext {
		return this.getTypedRuleContext(Exception_declarationContext, 0) as Exception_declarationContext;
	}
	public type_declaration(): Type_declarationContext {
		return this.getTypedRuleContext(Type_declarationContext, 0) as Type_declarationContext;
	}
	public procedure_spec(): Procedure_specContext {
		return this.getTypedRuleContext(Procedure_specContext, 0) as Procedure_specContext;
	}
	public function_spec(): Function_specContext {
		return this.getTypedRuleContext(Function_specContext, 0) as Function_specContext;
	}
	public procedure_body(): Procedure_bodyContext {
		return this.getTypedRuleContext(Procedure_bodyContext, 0) as Procedure_bodyContext;
	}
	public function_body(): Function_bodyContext {
		return this.getTypedRuleContext(Function_bodyContext, 0) as Function_bodyContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_declare_spec;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterDeclare_spec) {
	 		listener.enterDeclare_spec(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitDeclare_spec) {
	 		listener.exitDeclare_spec(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitDeclare_spec) {
			return visitor.visitDeclare_spec(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Variable_declarationContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public identifier(): IdentifierContext {
		return this.getTypedRuleContext(IdentifierContext, 0) as IdentifierContext;
	}
	public type_spec(): Type_specContext {
		return this.getTypedRuleContext(Type_specContext, 0) as Type_specContext;
	}
	public SEMICOLON(): TerminalNode {
		return this.getToken(PlSqlParser.SEMICOLON, 0);
	}
	public CONSTANT(): TerminalNode {
		return this.getToken(PlSqlParser.CONSTANT, 0);
	}
	public NOT(): TerminalNode {
		return this.getToken(PlSqlParser.NOT, 0);
	}
	public NULL_(): TerminalNode {
		return this.getToken(PlSqlParser.NULL_, 0);
	}
	public default_value_part(): Default_value_partContext {
		return this.getTypedRuleContext(Default_value_partContext, 0) as Default_value_partContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_variable_declaration;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterVariable_declaration) {
	 		listener.enterVariable_declaration(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitVariable_declaration) {
	 		listener.exitVariable_declaration(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitVariable_declaration) {
			return visitor.visitVariable_declaration(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Subtype_declarationContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public SUBTYPE(): TerminalNode {
		return this.getToken(PlSqlParser.SUBTYPE, 0);
	}
	public identifier(): IdentifierContext {
		return this.getTypedRuleContext(IdentifierContext, 0) as IdentifierContext;
	}
	public IS(): TerminalNode {
		return this.getToken(PlSqlParser.IS, 0);
	}
	public type_spec(): Type_specContext {
		return this.getTypedRuleContext(Type_specContext, 0) as Type_specContext;
	}
	public SEMICOLON(): TerminalNode {
		return this.getToken(PlSqlParser.SEMICOLON, 0);
	}
	public RANGE(): TerminalNode {
		return this.getToken(PlSqlParser.RANGE, 0);
	}
	public expression_list(): ExpressionContext[] {
		return this.getTypedRuleContexts(ExpressionContext) as ExpressionContext[];
	}
	public expression(i: number): ExpressionContext {
		return this.getTypedRuleContext(ExpressionContext, i) as ExpressionContext;
	}
	public DOUBLE_PERIOD(): TerminalNode {
		return this.getToken(PlSqlParser.DOUBLE_PERIOD, 0);
	}
	public NOT(): TerminalNode {
		return this.getToken(PlSqlParser.NOT, 0);
	}
	public NULL_(): TerminalNode {
		return this.getToken(PlSqlParser.NULL_, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_subtype_declaration;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterSubtype_declaration) {
	 		listener.enterSubtype_declaration(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitSubtype_declaration) {
	 		listener.exitSubtype_declaration(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitSubtype_declaration) {
			return visitor.visitSubtype_declaration(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Cursor_declarationContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public CURSOR(): TerminalNode {
		return this.getToken(PlSqlParser.CURSOR, 0);
	}
	public identifier(): IdentifierContext {
		return this.getTypedRuleContext(IdentifierContext, 0) as IdentifierContext;
	}
	public SEMICOLON(): TerminalNode {
		return this.getToken(PlSqlParser.SEMICOLON, 0);
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public parameter_spec_list(): Parameter_specContext[] {
		return this.getTypedRuleContexts(Parameter_specContext) as Parameter_specContext[];
	}
	public parameter_spec(i: number): Parameter_specContext {
		return this.getTypedRuleContext(Parameter_specContext, i) as Parameter_specContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public RETURN(): TerminalNode {
		return this.getToken(PlSqlParser.RETURN, 0);
	}
	public type_spec(): Type_specContext {
		return this.getTypedRuleContext(Type_specContext, 0) as Type_specContext;
	}
	public IS(): TerminalNode {
		return this.getToken(PlSqlParser.IS, 0);
	}
	public select_statement(): Select_statementContext {
		return this.getTypedRuleContext(Select_statementContext, 0) as Select_statementContext;
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_cursor_declaration;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterCursor_declaration) {
	 		listener.enterCursor_declaration(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitCursor_declaration) {
	 		listener.exitCursor_declaration(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitCursor_declaration) {
			return visitor.visitCursor_declaration(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Parameter_specContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public parameter_name(): Parameter_nameContext {
		return this.getTypedRuleContext(Parameter_nameContext, 0) as Parameter_nameContext;
	}
	public type_spec(): Type_specContext {
		return this.getTypedRuleContext(Type_specContext, 0) as Type_specContext;
	}
	public default_value_part(): Default_value_partContext {
		return this.getTypedRuleContext(Default_value_partContext, 0) as Default_value_partContext;
	}
	public IN(): TerminalNode {
		return this.getToken(PlSqlParser.IN, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_parameter_spec;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterParameter_spec) {
	 		listener.enterParameter_spec(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitParameter_spec) {
	 		listener.exitParameter_spec(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitParameter_spec) {
			return visitor.visitParameter_spec(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Exception_declarationContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public identifier(): IdentifierContext {
		return this.getTypedRuleContext(IdentifierContext, 0) as IdentifierContext;
	}
	public EXCEPTION(): TerminalNode {
		return this.getToken(PlSqlParser.EXCEPTION, 0);
	}
	public SEMICOLON(): TerminalNode {
		return this.getToken(PlSqlParser.SEMICOLON, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_exception_declaration;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterException_declaration) {
	 		listener.enterException_declaration(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitException_declaration) {
	 		listener.exitException_declaration(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitException_declaration) {
			return visitor.visitException_declaration(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Pragma_declarationContext extends ParserRuleContext {
	public _id1!: IdentifierContext;
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public PRAGMA(): TerminalNode {
		return this.getToken(PlSqlParser.PRAGMA, 0);
	}
	public SEMICOLON(): TerminalNode {
		return this.getToken(PlSqlParser.SEMICOLON, 0);
	}
	public SERIALLY_REUSABLE(): TerminalNode {
		return this.getToken(PlSqlParser.SERIALLY_REUSABLE, 0);
	}
	public AUTONOMOUS_TRANSACTION(): TerminalNode {
		return this.getToken(PlSqlParser.AUTONOMOUS_TRANSACTION, 0);
	}
	public EXCEPTION_INIT(): TerminalNode {
		return this.getToken(PlSqlParser.EXCEPTION_INIT, 0);
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public exception_name(): Exception_nameContext {
		return this.getTypedRuleContext(Exception_nameContext, 0) as Exception_nameContext;
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
	public numeric_negative(): Numeric_negativeContext {
		return this.getTypedRuleContext(Numeric_negativeContext, 0) as Numeric_negativeContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public INLINE(): TerminalNode {
		return this.getToken(PlSqlParser.INLINE, 0);
	}
	public expression(): ExpressionContext {
		return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext;
	}
	public RESTRICT_REFERENCES(): TerminalNode {
		return this.getToken(PlSqlParser.RESTRICT_REFERENCES, 0);
	}
	public identifier_list(): IdentifierContext[] {
		return this.getTypedRuleContexts(IdentifierContext) as IdentifierContext[];
	}
	public identifier(i: number): IdentifierContext {
		return this.getTypedRuleContext(IdentifierContext, i) as IdentifierContext;
	}
	public DEFAULT(): TerminalNode {
		return this.getToken(PlSqlParser.DEFAULT, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_pragma_declaration;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterPragma_declaration) {
	 		listener.enterPragma_declaration(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitPragma_declaration) {
	 		listener.exitPragma_declaration(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitPragma_declaration) {
			return visitor.visitPragma_declaration(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Record_type_defContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public RECORD(): TerminalNode {
		return this.getToken(PlSqlParser.RECORD, 0);
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public field_spec_list(): Field_specContext[] {
		return this.getTypedRuleContexts(Field_specContext) as Field_specContext[];
	}
	public field_spec(i: number): Field_specContext {
		return this.getTypedRuleContext(Field_specContext, i) as Field_specContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_record_type_def;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterRecord_type_def) {
	 		listener.enterRecord_type_def(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitRecord_type_def) {
	 		listener.exitRecord_type_def(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitRecord_type_def) {
			return visitor.visitRecord_type_def(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Field_specContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public column_name(): Column_nameContext {
		return this.getTypedRuleContext(Column_nameContext, 0) as Column_nameContext;
	}
	public type_spec(): Type_specContext {
		return this.getTypedRuleContext(Type_specContext, 0) as Type_specContext;
	}
	public NOT(): TerminalNode {
		return this.getToken(PlSqlParser.NOT, 0);
	}
	public NULL_(): TerminalNode {
		return this.getToken(PlSqlParser.NULL_, 0);
	}
	public default_value_part(): Default_value_partContext {
		return this.getTypedRuleContext(Default_value_partContext, 0) as Default_value_partContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_field_spec;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterField_spec) {
	 		listener.enterField_spec(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitField_spec) {
	 		listener.exitField_spec(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitField_spec) {
			return visitor.visitField_spec(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Ref_cursor_type_defContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public REF(): TerminalNode {
		return this.getToken(PlSqlParser.REF, 0);
	}
	public CURSOR(): TerminalNode {
		return this.getToken(PlSqlParser.CURSOR, 0);
	}
	public RETURN(): TerminalNode {
		return this.getToken(PlSqlParser.RETURN, 0);
	}
	public type_spec(): Type_specContext {
		return this.getTypedRuleContext(Type_specContext, 0) as Type_specContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_ref_cursor_type_def;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterRef_cursor_type_def) {
	 		listener.enterRef_cursor_type_def(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitRef_cursor_type_def) {
	 		listener.exitRef_cursor_type_def(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitRef_cursor_type_def) {
			return visitor.visitRef_cursor_type_def(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Type_declarationContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public TYPE(): TerminalNode {
		return this.getToken(PlSqlParser.TYPE, 0);
	}
	public identifier(): IdentifierContext {
		return this.getTypedRuleContext(IdentifierContext, 0) as IdentifierContext;
	}
	public IS(): TerminalNode {
		return this.getToken(PlSqlParser.IS, 0);
	}
	public SEMICOLON(): TerminalNode {
		return this.getToken(PlSqlParser.SEMICOLON, 0);
	}
	public table_type_def(): Table_type_defContext {
		return this.getTypedRuleContext(Table_type_defContext, 0) as Table_type_defContext;
	}
	public varray_type_def(): Varray_type_defContext {
		return this.getTypedRuleContext(Varray_type_defContext, 0) as Varray_type_defContext;
	}
	public record_type_def(): Record_type_defContext {
		return this.getTypedRuleContext(Record_type_defContext, 0) as Record_type_defContext;
	}
	public ref_cursor_type_def(): Ref_cursor_type_defContext {
		return this.getTypedRuleContext(Ref_cursor_type_defContext, 0) as Ref_cursor_type_defContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_type_declaration;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterType_declaration) {
	 		listener.enterType_declaration(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitType_declaration) {
	 		listener.exitType_declaration(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitType_declaration) {
			return visitor.visitType_declaration(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Table_type_defContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public TABLE(): TerminalNode {
		return this.getToken(PlSqlParser.TABLE, 0);
	}
	public OF(): TerminalNode {
		return this.getToken(PlSqlParser.OF, 0);
	}
	public type_spec(): Type_specContext {
		return this.getTypedRuleContext(Type_specContext, 0) as Type_specContext;
	}
	public table_indexed_by_part(): Table_indexed_by_partContext {
		return this.getTypedRuleContext(Table_indexed_by_partContext, 0) as Table_indexed_by_partContext;
	}
	public NOT(): TerminalNode {
		return this.getToken(PlSqlParser.NOT, 0);
	}
	public NULL_(): TerminalNode {
		return this.getToken(PlSqlParser.NULL_, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_table_type_def;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterTable_type_def) {
	 		listener.enterTable_type_def(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitTable_type_def) {
	 		listener.exitTable_type_def(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitTable_type_def) {
			return visitor.visitTable_type_def(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Table_indexed_by_partContext extends ParserRuleContext {
	public _idx1!: Token;
	public _idx2!: Token;
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public BY(): TerminalNode {
		return this.getToken(PlSqlParser.BY, 0);
	}
	public type_spec(): Type_specContext {
		return this.getTypedRuleContext(Type_specContext, 0) as Type_specContext;
	}
	public INDEXED(): TerminalNode {
		return this.getToken(PlSqlParser.INDEXED, 0);
	}
	public INDEX(): TerminalNode {
		return this.getToken(PlSqlParser.INDEX, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_table_indexed_by_part;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterTable_indexed_by_part) {
	 		listener.enterTable_indexed_by_part(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitTable_indexed_by_part) {
	 		listener.exitTable_indexed_by_part(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitTable_indexed_by_part) {
			return visitor.visitTable_indexed_by_part(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Varray_type_defContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public expression(): ExpressionContext {
		return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public OF(): TerminalNode {
		return this.getToken(PlSqlParser.OF, 0);
	}
	public type_spec(): Type_specContext {
		return this.getTypedRuleContext(Type_specContext, 0) as Type_specContext;
	}
	public VARRAY(): TerminalNode {
		return this.getToken(PlSqlParser.VARRAY, 0);
	}
	public VARYING(): TerminalNode {
		return this.getToken(PlSqlParser.VARYING, 0);
	}
	public ARRAY(): TerminalNode {
		return this.getToken(PlSqlParser.ARRAY, 0);
	}
	public NOT(): TerminalNode {
		return this.getToken(PlSqlParser.NOT, 0);
	}
	public NULL_(): TerminalNode {
		return this.getToken(PlSqlParser.NULL_, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_varray_type_def;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterVarray_type_def) {
	 		listener.enterVarray_type_def(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitVarray_type_def) {
	 		listener.exitVarray_type_def(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitVarray_type_def) {
			return visitor.visitVarray_type_def(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Seq_of_statementsContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public statement_list(): StatementContext[] {
		return this.getTypedRuleContexts(StatementContext) as StatementContext[];
	}
	public statement(i: number): StatementContext {
		return this.getTypedRuleContext(StatementContext, i) as StatementContext;
	}
	public label_declaration_list(): Label_declarationContext[] {
		return this.getTypedRuleContexts(Label_declarationContext) as Label_declarationContext[];
	}
	public label_declaration(i: number): Label_declarationContext {
		return this.getTypedRuleContext(Label_declarationContext, i) as Label_declarationContext;
	}
	public SEMICOLON_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.SEMICOLON);
	}
	public SEMICOLON(i: number): TerminalNode {
		return this.getToken(PlSqlParser.SEMICOLON, i);
	}
	public EOF_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.EOF);
	}
	public EOF(i: number): TerminalNode {
		return this.getToken(PlSqlParser.EOF, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_seq_of_statements;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterSeq_of_statements) {
	 		listener.enterSeq_of_statements(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitSeq_of_statements) {
	 		listener.exitSeq_of_statements(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitSeq_of_statements) {
			return visitor.visitSeq_of_statements(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Label_declarationContext extends ParserRuleContext {
	public _ltp1!: Token;
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public LESS_THAN_OP_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.LESS_THAN_OP);
	}
	public LESS_THAN_OP(i: number): TerminalNode {
		return this.getToken(PlSqlParser.LESS_THAN_OP, i);
	}
	public label_name(): Label_nameContext {
		return this.getTypedRuleContext(Label_nameContext, 0) as Label_nameContext;
	}
	public GREATER_THAN_OP_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.GREATER_THAN_OP);
	}
	public GREATER_THAN_OP(i: number): TerminalNode {
		return this.getToken(PlSqlParser.GREATER_THAN_OP, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_label_declaration;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterLabel_declaration) {
	 		listener.enterLabel_declaration(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitLabel_declaration) {
	 		listener.exitLabel_declaration(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitLabel_declaration) {
			return visitor.visitLabel_declaration(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class StatementContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public body(): BodyContext {
		return this.getTypedRuleContext(BodyContext, 0) as BodyContext;
	}
	public block(): BlockContext {
		return this.getTypedRuleContext(BlockContext, 0) as BlockContext;
	}
	public assignment_statement(): Assignment_statementContext {
		return this.getTypedRuleContext(Assignment_statementContext, 0) as Assignment_statementContext;
	}
	public continue_statement(): Continue_statementContext {
		return this.getTypedRuleContext(Continue_statementContext, 0) as Continue_statementContext;
	}
	public exit_statement(): Exit_statementContext {
		return this.getTypedRuleContext(Exit_statementContext, 0) as Exit_statementContext;
	}
	public goto_statement(): Goto_statementContext {
		return this.getTypedRuleContext(Goto_statementContext, 0) as Goto_statementContext;
	}
	public if_statement(): If_statementContext {
		return this.getTypedRuleContext(If_statementContext, 0) as If_statementContext;
	}
	public loop_statement(): Loop_statementContext {
		return this.getTypedRuleContext(Loop_statementContext, 0) as Loop_statementContext;
	}
	public forall_statement(): Forall_statementContext {
		return this.getTypedRuleContext(Forall_statementContext, 0) as Forall_statementContext;
	}
	public null_statement(): Null_statementContext {
		return this.getTypedRuleContext(Null_statementContext, 0) as Null_statementContext;
	}
	public raise_statement(): Raise_statementContext {
		return this.getTypedRuleContext(Raise_statementContext, 0) as Raise_statementContext;
	}
	public return_statement(): Return_statementContext {
		return this.getTypedRuleContext(Return_statementContext, 0) as Return_statementContext;
	}
	public case_statement(): Case_statementContext {
		return this.getTypedRuleContext(Case_statementContext, 0) as Case_statementContext;
	}
	public sql_statement(): Sql_statementContext {
		return this.getTypedRuleContext(Sql_statementContext, 0) as Sql_statementContext;
	}
	public function_call(): Function_callContext {
		return this.getTypedRuleContext(Function_callContext, 0) as Function_callContext;
	}
	public pipe_row_statement(): Pipe_row_statementContext {
		return this.getTypedRuleContext(Pipe_row_statementContext, 0) as Pipe_row_statementContext;
	}
	public procedure_call(): Procedure_callContext {
		return this.getTypedRuleContext(Procedure_callContext, 0) as Procedure_callContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_statement;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterStatement) {
	 		listener.enterStatement(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitStatement) {
	 		listener.exitStatement(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitStatement) {
			return visitor.visitStatement(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Swallow_to_semiContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public SEMICOLON_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.SEMICOLON);
	}
	public SEMICOLON(i: number): TerminalNode {
		return this.getToken(PlSqlParser.SEMICOLON, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_swallow_to_semi;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterSwallow_to_semi) {
	 		listener.enterSwallow_to_semi(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitSwallow_to_semi) {
	 		listener.exitSwallow_to_semi(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitSwallow_to_semi) {
			return visitor.visitSwallow_to_semi(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Assignment_statementContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public ASSIGN_OP(): TerminalNode {
		return this.getToken(PlSqlParser.ASSIGN_OP, 0);
	}
	public expression(): ExpressionContext {
		return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext;
	}
	public general_element(): General_elementContext {
		return this.getTypedRuleContext(General_elementContext, 0) as General_elementContext;
	}
	public bind_variable(): Bind_variableContext {
		return this.getTypedRuleContext(Bind_variableContext, 0) as Bind_variableContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_assignment_statement;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterAssignment_statement) {
	 		listener.enterAssignment_statement(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitAssignment_statement) {
	 		listener.exitAssignment_statement(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitAssignment_statement) {
			return visitor.visitAssignment_statement(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Continue_statementContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public CONTINUE(): TerminalNode {
		return this.getToken(PlSqlParser.CONTINUE, 0);
	}
	public label_name(): Label_nameContext {
		return this.getTypedRuleContext(Label_nameContext, 0) as Label_nameContext;
	}
	public WHEN(): TerminalNode {
		return this.getToken(PlSqlParser.WHEN, 0);
	}
	public condition(): ConditionContext {
		return this.getTypedRuleContext(ConditionContext, 0) as ConditionContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_continue_statement;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterContinue_statement) {
	 		listener.enterContinue_statement(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitContinue_statement) {
	 		listener.exitContinue_statement(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitContinue_statement) {
			return visitor.visitContinue_statement(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Exit_statementContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public EXIT(): TerminalNode {
		return this.getToken(PlSqlParser.EXIT, 0);
	}
	public label_name(): Label_nameContext {
		return this.getTypedRuleContext(Label_nameContext, 0) as Label_nameContext;
	}
	public WHEN(): TerminalNode {
		return this.getToken(PlSqlParser.WHEN, 0);
	}
	public condition(): ConditionContext {
		return this.getTypedRuleContext(ConditionContext, 0) as ConditionContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_exit_statement;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterExit_statement) {
	 		listener.enterExit_statement(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitExit_statement) {
	 		listener.exitExit_statement(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitExit_statement) {
			return visitor.visitExit_statement(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Goto_statementContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public GOTO(): TerminalNode {
		return this.getToken(PlSqlParser.GOTO, 0);
	}
	public label_name(): Label_nameContext {
		return this.getTypedRuleContext(Label_nameContext, 0) as Label_nameContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_goto_statement;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterGoto_statement) {
	 		listener.enterGoto_statement(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitGoto_statement) {
	 		listener.exitGoto_statement(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitGoto_statement) {
			return visitor.visitGoto_statement(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class If_statementContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public IF_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.IF);
	}
	public IF(i: number): TerminalNode {
		return this.getToken(PlSqlParser.IF, i);
	}
	public condition(): ConditionContext {
		return this.getTypedRuleContext(ConditionContext, 0) as ConditionContext;
	}
	public THEN(): TerminalNode {
		return this.getToken(PlSqlParser.THEN, 0);
	}
	public seq_of_statements(): Seq_of_statementsContext {
		return this.getTypedRuleContext(Seq_of_statementsContext, 0) as Seq_of_statementsContext;
	}
	public END(): TerminalNode {
		return this.getToken(PlSqlParser.END, 0);
	}
	public elsif_part_list(): Elsif_partContext[] {
		return this.getTypedRuleContexts(Elsif_partContext) as Elsif_partContext[];
	}
	public elsif_part(i: number): Elsif_partContext {
		return this.getTypedRuleContext(Elsif_partContext, i) as Elsif_partContext;
	}
	public else_part(): Else_partContext {
		return this.getTypedRuleContext(Else_partContext, 0) as Else_partContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_if_statement;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterIf_statement) {
	 		listener.enterIf_statement(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitIf_statement) {
	 		listener.exitIf_statement(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitIf_statement) {
			return visitor.visitIf_statement(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Elsif_partContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public ELSIF(): TerminalNode {
		return this.getToken(PlSqlParser.ELSIF, 0);
	}
	public condition(): ConditionContext {
		return this.getTypedRuleContext(ConditionContext, 0) as ConditionContext;
	}
	public THEN(): TerminalNode {
		return this.getToken(PlSqlParser.THEN, 0);
	}
	public seq_of_statements(): Seq_of_statementsContext {
		return this.getTypedRuleContext(Seq_of_statementsContext, 0) as Seq_of_statementsContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_elsif_part;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterElsif_part) {
	 		listener.enterElsif_part(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitElsif_part) {
	 		listener.exitElsif_part(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitElsif_part) {
			return visitor.visitElsif_part(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Else_partContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public ELSE(): TerminalNode {
		return this.getToken(PlSqlParser.ELSE, 0);
	}
	public seq_of_statements(): Seq_of_statementsContext {
		return this.getTypedRuleContext(Seq_of_statementsContext, 0) as Seq_of_statementsContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_else_part;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterElse_part) {
	 		listener.enterElse_part(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitElse_part) {
	 		listener.exitElse_part(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitElse_part) {
			return visitor.visitElse_part(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Loop_statementContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public LOOP_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.LOOP);
	}
	public LOOP(i: number): TerminalNode {
		return this.getToken(PlSqlParser.LOOP, i);
	}
	public seq_of_statements(): Seq_of_statementsContext {
		return this.getTypedRuleContext(Seq_of_statementsContext, 0) as Seq_of_statementsContext;
	}
	public END(): TerminalNode {
		return this.getToken(PlSqlParser.END, 0);
	}
	public label_declaration(): Label_declarationContext {
		return this.getTypedRuleContext(Label_declarationContext, 0) as Label_declarationContext;
	}
	public WHILE(): TerminalNode {
		return this.getToken(PlSqlParser.WHILE, 0);
	}
	public condition(): ConditionContext {
		return this.getTypedRuleContext(ConditionContext, 0) as ConditionContext;
	}
	public FOR(): TerminalNode {
		return this.getToken(PlSqlParser.FOR, 0);
	}
	public cursor_loop_param(): Cursor_loop_paramContext {
		return this.getTypedRuleContext(Cursor_loop_paramContext, 0) as Cursor_loop_paramContext;
	}
	public label_name(): Label_nameContext {
		return this.getTypedRuleContext(Label_nameContext, 0) as Label_nameContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_loop_statement;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterLoop_statement) {
	 		listener.enterLoop_statement(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitLoop_statement) {
	 		listener.exitLoop_statement(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitLoop_statement) {
			return visitor.visitLoop_statement(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Cursor_loop_paramContext extends ParserRuleContext {
	public _range_separator!: Token;
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public index_name(): Index_nameContext {
		return this.getTypedRuleContext(Index_nameContext, 0) as Index_nameContext;
	}
	public IN(): TerminalNode {
		return this.getToken(PlSqlParser.IN, 0);
	}
	public lower_bound(): Lower_boundContext {
		return this.getTypedRuleContext(Lower_boundContext, 0) as Lower_boundContext;
	}
	public upper_bound(): Upper_boundContext {
		return this.getTypedRuleContext(Upper_boundContext, 0) as Upper_boundContext;
	}
	public DOUBLE_PERIOD(): TerminalNode {
		return this.getToken(PlSqlParser.DOUBLE_PERIOD, 0);
	}
	public REVERSE(): TerminalNode {
		return this.getToken(PlSqlParser.REVERSE, 0);
	}
	public record_name(): Record_nameContext {
		return this.getTypedRuleContext(Record_nameContext, 0) as Record_nameContext;
	}
	public cursor_name(): Cursor_nameContext {
		return this.getTypedRuleContext(Cursor_nameContext, 0) as Cursor_nameContext;
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public select_statement(): Select_statementContext {
		return this.getTypedRuleContext(Select_statementContext, 0) as Select_statementContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public expressions(): ExpressionsContext {
		return this.getTypedRuleContext(ExpressionsContext, 0) as ExpressionsContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_cursor_loop_param;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterCursor_loop_param) {
	 		listener.enterCursor_loop_param(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitCursor_loop_param) {
	 		listener.exitCursor_loop_param(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitCursor_loop_param) {
			return visitor.visitCursor_loop_param(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Forall_statementContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public FORALL(): TerminalNode {
		return this.getToken(PlSqlParser.FORALL, 0);
	}
	public index_name(): Index_nameContext {
		return this.getTypedRuleContext(Index_nameContext, 0) as Index_nameContext;
	}
	public IN(): TerminalNode {
		return this.getToken(PlSqlParser.IN, 0);
	}
	public bounds_clause(): Bounds_clauseContext {
		return this.getTypedRuleContext(Bounds_clauseContext, 0) as Bounds_clauseContext;
	}
	public sql_statement(): Sql_statementContext {
		return this.getTypedRuleContext(Sql_statementContext, 0) as Sql_statementContext;
	}
	public SAVE(): TerminalNode {
		return this.getToken(PlSqlParser.SAVE, 0);
	}
	public EXCEPTIONS(): TerminalNode {
		return this.getToken(PlSqlParser.EXCEPTIONS, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_forall_statement;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterForall_statement) {
	 		listener.enterForall_statement(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitForall_statement) {
	 		listener.exitForall_statement(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitForall_statement) {
			return visitor.visitForall_statement(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Bounds_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public lower_bound(): Lower_boundContext {
		return this.getTypedRuleContext(Lower_boundContext, 0) as Lower_boundContext;
	}
	public DOUBLE_PERIOD(): TerminalNode {
		return this.getToken(PlSqlParser.DOUBLE_PERIOD, 0);
	}
	public upper_bound(): Upper_boundContext {
		return this.getTypedRuleContext(Upper_boundContext, 0) as Upper_boundContext;
	}
	public INDICES(): TerminalNode {
		return this.getToken(PlSqlParser.INDICES, 0);
	}
	public OF(): TerminalNode {
		return this.getToken(PlSqlParser.OF, 0);
	}
	public collection_name(): Collection_nameContext {
		return this.getTypedRuleContext(Collection_nameContext, 0) as Collection_nameContext;
	}
	public between_bound(): Between_boundContext {
		return this.getTypedRuleContext(Between_boundContext, 0) as Between_boundContext;
	}
	public VALUES(): TerminalNode {
		return this.getToken(PlSqlParser.VALUES, 0);
	}
	public index_name(): Index_nameContext {
		return this.getTypedRuleContext(Index_nameContext, 0) as Index_nameContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_bounds_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterBounds_clause) {
	 		listener.enterBounds_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitBounds_clause) {
	 		listener.exitBounds_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitBounds_clause) {
			return visitor.visitBounds_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Between_boundContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public BETWEEN(): TerminalNode {
		return this.getToken(PlSqlParser.BETWEEN, 0);
	}
	public lower_bound(): Lower_boundContext {
		return this.getTypedRuleContext(Lower_boundContext, 0) as Lower_boundContext;
	}
	public AND(): TerminalNode {
		return this.getToken(PlSqlParser.AND, 0);
	}
	public upper_bound(): Upper_boundContext {
		return this.getTypedRuleContext(Upper_boundContext, 0) as Upper_boundContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_between_bound;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterBetween_bound) {
	 		listener.enterBetween_bound(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitBetween_bound) {
	 		listener.exitBetween_bound(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitBetween_bound) {
			return visitor.visitBetween_bound(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Lower_boundContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public concatenation(): ConcatenationContext {
		return this.getTypedRuleContext(ConcatenationContext, 0) as ConcatenationContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_lower_bound;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterLower_bound) {
	 		listener.enterLower_bound(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitLower_bound) {
	 		listener.exitLower_bound(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitLower_bound) {
			return visitor.visitLower_bound(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Upper_boundContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public concatenation(): ConcatenationContext {
		return this.getTypedRuleContext(ConcatenationContext, 0) as ConcatenationContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_upper_bound;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterUpper_bound) {
	 		listener.enterUpper_bound(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitUpper_bound) {
	 		listener.exitUpper_bound(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitUpper_bound) {
			return visitor.visitUpper_bound(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Null_statementContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public NULL_(): TerminalNode {
		return this.getToken(PlSqlParser.NULL_, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_null_statement;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterNull_statement) {
	 		listener.enterNull_statement(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitNull_statement) {
	 		listener.exitNull_statement(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitNull_statement) {
			return visitor.visitNull_statement(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Raise_statementContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public RAISE(): TerminalNode {
		return this.getToken(PlSqlParser.RAISE, 0);
	}
	public exception_name(): Exception_nameContext {
		return this.getTypedRuleContext(Exception_nameContext, 0) as Exception_nameContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_raise_statement;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterRaise_statement) {
	 		listener.enterRaise_statement(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitRaise_statement) {
	 		listener.exitRaise_statement(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitRaise_statement) {
			return visitor.visitRaise_statement(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Return_statementContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public RETURN(): TerminalNode {
		return this.getToken(PlSqlParser.RETURN, 0);
	}
	public expression(): ExpressionContext {
		return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_return_statement;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterReturn_statement) {
	 		listener.enterReturn_statement(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitReturn_statement) {
	 		listener.exitReturn_statement(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitReturn_statement) {
			return visitor.visitReturn_statement(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Function_callContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public routine_name(): Routine_nameContext {
		return this.getTypedRuleContext(Routine_nameContext, 0) as Routine_nameContext;
	}
	public CALL(): TerminalNode {
		return this.getToken(PlSqlParser.CALL, 0);
	}
	public function_argument(): Function_argumentContext {
		return this.getTypedRuleContext(Function_argumentContext, 0) as Function_argumentContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_function_call;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterFunction_call) {
	 		listener.enterFunction_call(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitFunction_call) {
	 		listener.exitFunction_call(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitFunction_call) {
			return visitor.visitFunction_call(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Procedure_callContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public routine_name(): Routine_nameContext {
		return this.getTypedRuleContext(Routine_nameContext, 0) as Routine_nameContext;
	}
	public function_argument(): Function_argumentContext {
		return this.getTypedRuleContext(Function_argumentContext, 0) as Function_argumentContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_procedure_call;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterProcedure_call) {
	 		listener.enterProcedure_call(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitProcedure_call) {
	 		listener.exitProcedure_call(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitProcedure_call) {
			return visitor.visitProcedure_call(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Pipe_row_statementContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public PIPE(): TerminalNode {
		return this.getToken(PlSqlParser.PIPE, 0);
	}
	public ROW(): TerminalNode {
		return this.getToken(PlSqlParser.ROW, 0);
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public expression(): ExpressionContext {
		return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_pipe_row_statement;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterPipe_row_statement) {
	 		listener.enterPipe_row_statement(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitPipe_row_statement) {
	 		listener.exitPipe_row_statement(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitPipe_row_statement) {
			return visitor.visitPipe_row_statement(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class BodyContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public BEGIN(): TerminalNode {
		return this.getToken(PlSqlParser.BEGIN, 0);
	}
	public seq_of_statements(): Seq_of_statementsContext {
		return this.getTypedRuleContext(Seq_of_statementsContext, 0) as Seq_of_statementsContext;
	}
	public END(): TerminalNode {
		return this.getToken(PlSqlParser.END, 0);
	}
	public EXCEPTION(): TerminalNode {
		return this.getToken(PlSqlParser.EXCEPTION, 0);
	}
	public label_name(): Label_nameContext {
		return this.getTypedRuleContext(Label_nameContext, 0) as Label_nameContext;
	}
	public exception_handler_list(): Exception_handlerContext[] {
		return this.getTypedRuleContexts(Exception_handlerContext) as Exception_handlerContext[];
	}
	public exception_handler(i: number): Exception_handlerContext {
		return this.getTypedRuleContext(Exception_handlerContext, i) as Exception_handlerContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_body;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterBody) {
	 		listener.enterBody(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitBody) {
	 		listener.exitBody(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitBody) {
			return visitor.visitBody(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Exception_handlerContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public WHEN(): TerminalNode {
		return this.getToken(PlSqlParser.WHEN, 0);
	}
	public exception_name_list(): Exception_nameContext[] {
		return this.getTypedRuleContexts(Exception_nameContext) as Exception_nameContext[];
	}
	public exception_name(i: number): Exception_nameContext {
		return this.getTypedRuleContext(Exception_nameContext, i) as Exception_nameContext;
	}
	public THEN(): TerminalNode {
		return this.getToken(PlSqlParser.THEN, 0);
	}
	public seq_of_statements(): Seq_of_statementsContext {
		return this.getTypedRuleContext(Seq_of_statementsContext, 0) as Seq_of_statementsContext;
	}
	public OR_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.OR);
	}
	public OR(i: number): TerminalNode {
		return this.getToken(PlSqlParser.OR, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_exception_handler;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterException_handler) {
	 		listener.enterException_handler(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitException_handler) {
	 		listener.exitException_handler(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitException_handler) {
			return visitor.visitException_handler(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Trigger_blockContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public body(): BodyContext {
		return this.getTypedRuleContext(BodyContext, 0) as BodyContext;
	}
	public DECLARE(): TerminalNode {
		return this.getToken(PlSqlParser.DECLARE, 0);
	}
	public declare_spec_list(): Declare_specContext[] {
		return this.getTypedRuleContexts(Declare_specContext) as Declare_specContext[];
	}
	public declare_spec(i: number): Declare_specContext {
		return this.getTypedRuleContext(Declare_specContext, i) as Declare_specContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_trigger_block;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterTrigger_block) {
	 		listener.enterTrigger_block(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitTrigger_block) {
	 		listener.exitTrigger_block(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitTrigger_block) {
			return visitor.visitTrigger_block(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class BlockContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public body(): BodyContext {
		return this.getTypedRuleContext(BodyContext, 0) as BodyContext;
	}
	public DECLARE(): TerminalNode {
		return this.getToken(PlSqlParser.DECLARE, 0);
	}
	public declare_spec_list(): Declare_specContext[] {
		return this.getTypedRuleContexts(Declare_specContext) as Declare_specContext[];
	}
	public declare_spec(i: number): Declare_specContext {
		return this.getTypedRuleContext(Declare_specContext, i) as Declare_specContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_block;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterBlock) {
	 		listener.enterBlock(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitBlock) {
	 		listener.exitBlock(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitBlock) {
			return visitor.visitBlock(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Sql_statementContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public execute_immediate(): Execute_immediateContext {
		return this.getTypedRuleContext(Execute_immediateContext, 0) as Execute_immediateContext;
	}
	public data_manipulation_language_statements(): Data_manipulation_language_statementsContext {
		return this.getTypedRuleContext(Data_manipulation_language_statementsContext, 0) as Data_manipulation_language_statementsContext;
	}
	public cursor_manipulation_statements(): Cursor_manipulation_statementsContext {
		return this.getTypedRuleContext(Cursor_manipulation_statementsContext, 0) as Cursor_manipulation_statementsContext;
	}
	public transaction_control_statements(): Transaction_control_statementsContext {
		return this.getTypedRuleContext(Transaction_control_statementsContext, 0) as Transaction_control_statementsContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_sql_statement;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterSql_statement) {
	 		listener.enterSql_statement(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitSql_statement) {
	 		listener.exitSql_statement(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitSql_statement) {
			return visitor.visitSql_statement(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Execute_immediateContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public EXECUTE(): TerminalNode {
		return this.getToken(PlSqlParser.EXECUTE, 0);
	}
	public IMMEDIATE(): TerminalNode {
		return this.getToken(PlSqlParser.IMMEDIATE, 0);
	}
	public expression(): ExpressionContext {
		return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext;
	}
	public into_clause(): Into_clauseContext {
		return this.getTypedRuleContext(Into_clauseContext, 0) as Into_clauseContext;
	}
	public using_clause(): Using_clauseContext {
		return this.getTypedRuleContext(Using_clauseContext, 0) as Using_clauseContext;
	}
	public dynamic_returning_clause(): Dynamic_returning_clauseContext {
		return this.getTypedRuleContext(Dynamic_returning_clauseContext, 0) as Dynamic_returning_clauseContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_execute_immediate;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterExecute_immediate) {
	 		listener.enterExecute_immediate(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitExecute_immediate) {
	 		listener.exitExecute_immediate(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitExecute_immediate) {
			return visitor.visitExecute_immediate(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Dynamic_returning_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public into_clause(): Into_clauseContext {
		return this.getTypedRuleContext(Into_clauseContext, 0) as Into_clauseContext;
	}
	public RETURNING(): TerminalNode {
		return this.getToken(PlSqlParser.RETURNING, 0);
	}
	public RETURN(): TerminalNode {
		return this.getToken(PlSqlParser.RETURN, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_dynamic_returning_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterDynamic_returning_clause) {
	 		listener.enterDynamic_returning_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitDynamic_returning_clause) {
	 		listener.exitDynamic_returning_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitDynamic_returning_clause) {
			return visitor.visitDynamic_returning_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Data_manipulation_language_statementsContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public merge_statement(): Merge_statementContext {
		return this.getTypedRuleContext(Merge_statementContext, 0) as Merge_statementContext;
	}
	public lock_table_statement(): Lock_table_statementContext {
		return this.getTypedRuleContext(Lock_table_statementContext, 0) as Lock_table_statementContext;
	}
	public select_statement(): Select_statementContext {
		return this.getTypedRuleContext(Select_statementContext, 0) as Select_statementContext;
	}
	public update_statement(): Update_statementContext {
		return this.getTypedRuleContext(Update_statementContext, 0) as Update_statementContext;
	}
	public delete_statement(): Delete_statementContext {
		return this.getTypedRuleContext(Delete_statementContext, 0) as Delete_statementContext;
	}
	public insert_statement(): Insert_statementContext {
		return this.getTypedRuleContext(Insert_statementContext, 0) as Insert_statementContext;
	}
	public explain_statement(): Explain_statementContext {
		return this.getTypedRuleContext(Explain_statementContext, 0) as Explain_statementContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_data_manipulation_language_statements;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterData_manipulation_language_statements) {
	 		listener.enterData_manipulation_language_statements(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitData_manipulation_language_statements) {
	 		listener.exitData_manipulation_language_statements(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitData_manipulation_language_statements) {
			return visitor.visitData_manipulation_language_statements(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Cursor_manipulation_statementsContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public close_statement(): Close_statementContext {
		return this.getTypedRuleContext(Close_statementContext, 0) as Close_statementContext;
	}
	public open_statement(): Open_statementContext {
		return this.getTypedRuleContext(Open_statementContext, 0) as Open_statementContext;
	}
	public fetch_statement(): Fetch_statementContext {
		return this.getTypedRuleContext(Fetch_statementContext, 0) as Fetch_statementContext;
	}
	public open_for_statement(): Open_for_statementContext {
		return this.getTypedRuleContext(Open_for_statementContext, 0) as Open_for_statementContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_cursor_manipulation_statements;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterCursor_manipulation_statements) {
	 		listener.enterCursor_manipulation_statements(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitCursor_manipulation_statements) {
	 		listener.exitCursor_manipulation_statements(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitCursor_manipulation_statements) {
			return visitor.visitCursor_manipulation_statements(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Close_statementContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public CLOSE(): TerminalNode {
		return this.getToken(PlSqlParser.CLOSE, 0);
	}
	public cursor_name(): Cursor_nameContext {
		return this.getTypedRuleContext(Cursor_nameContext, 0) as Cursor_nameContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_close_statement;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterClose_statement) {
	 		listener.enterClose_statement(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitClose_statement) {
	 		listener.exitClose_statement(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitClose_statement) {
			return visitor.visitClose_statement(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Open_statementContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public OPEN(): TerminalNode {
		return this.getToken(PlSqlParser.OPEN, 0);
	}
	public cursor_name(): Cursor_nameContext {
		return this.getTypedRuleContext(Cursor_nameContext, 0) as Cursor_nameContext;
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public expressions(): ExpressionsContext {
		return this.getTypedRuleContext(ExpressionsContext, 0) as ExpressionsContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_open_statement;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterOpen_statement) {
	 		listener.enterOpen_statement(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitOpen_statement) {
	 		listener.exitOpen_statement(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitOpen_statement) {
			return visitor.visitOpen_statement(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Fetch_statementContext extends ParserRuleContext {
	public _it1!: Token;
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public FETCH(): TerminalNode {
		return this.getToken(PlSqlParser.FETCH, 0);
	}
	public cursor_name(): Cursor_nameContext {
		return this.getTypedRuleContext(Cursor_nameContext, 0) as Cursor_nameContext;
	}
	public variable_name_list(): Variable_nameContext[] {
		return this.getTypedRuleContexts(Variable_nameContext) as Variable_nameContext[];
	}
	public variable_name(i: number): Variable_nameContext {
		return this.getTypedRuleContext(Variable_nameContext, i) as Variable_nameContext;
	}
	public BULK(): TerminalNode {
		return this.getToken(PlSqlParser.BULK, 0);
	}
	public COLLECT(): TerminalNode {
		return this.getToken(PlSqlParser.COLLECT, 0);
	}
	public INTO(): TerminalNode {
		return this.getToken(PlSqlParser.INTO, 0);
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_fetch_statement;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterFetch_statement) {
	 		listener.enterFetch_statement(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitFetch_statement) {
	 		listener.exitFetch_statement(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitFetch_statement) {
			return visitor.visitFetch_statement(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Open_for_statementContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public OPEN(): TerminalNode {
		return this.getToken(PlSqlParser.OPEN, 0);
	}
	public variable_name(): Variable_nameContext {
		return this.getTypedRuleContext(Variable_nameContext, 0) as Variable_nameContext;
	}
	public FOR(): TerminalNode {
		return this.getToken(PlSqlParser.FOR, 0);
	}
	public select_statement(): Select_statementContext {
		return this.getTypedRuleContext(Select_statementContext, 0) as Select_statementContext;
	}
	public expression(): ExpressionContext {
		return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext;
	}
	public using_clause(): Using_clauseContext {
		return this.getTypedRuleContext(Using_clauseContext, 0) as Using_clauseContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_open_for_statement;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterOpen_for_statement) {
	 		listener.enterOpen_for_statement(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitOpen_for_statement) {
	 		listener.exitOpen_for_statement(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitOpen_for_statement) {
			return visitor.visitOpen_for_statement(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Transaction_control_statementsContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public set_transaction_command(): Set_transaction_commandContext {
		return this.getTypedRuleContext(Set_transaction_commandContext, 0) as Set_transaction_commandContext;
	}
	public set_constraint_command(): Set_constraint_commandContext {
		return this.getTypedRuleContext(Set_constraint_commandContext, 0) as Set_constraint_commandContext;
	}
	public commit_statement(): Commit_statementContext {
		return this.getTypedRuleContext(Commit_statementContext, 0) as Commit_statementContext;
	}
	public rollback_statement(): Rollback_statementContext {
		return this.getTypedRuleContext(Rollback_statementContext, 0) as Rollback_statementContext;
	}
	public savepoint_statement(): Savepoint_statementContext {
		return this.getTypedRuleContext(Savepoint_statementContext, 0) as Savepoint_statementContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_transaction_control_statements;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterTransaction_control_statements) {
	 		listener.enterTransaction_control_statements(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitTransaction_control_statements) {
	 		listener.exitTransaction_control_statements(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitTransaction_control_statements) {
			return visitor.visitTransaction_control_statements(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Set_transaction_commandContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public SET(): TerminalNode {
		return this.getToken(PlSqlParser.SET, 0);
	}
	public TRANSACTION(): TerminalNode {
		return this.getToken(PlSqlParser.TRANSACTION, 0);
	}
	public READ(): TerminalNode {
		return this.getToken(PlSqlParser.READ, 0);
	}
	public ISOLATION(): TerminalNode {
		return this.getToken(PlSqlParser.ISOLATION, 0);
	}
	public LEVEL(): TerminalNode {
		return this.getToken(PlSqlParser.LEVEL, 0);
	}
	public USE(): TerminalNode {
		return this.getToken(PlSqlParser.USE, 0);
	}
	public ROLLBACK(): TerminalNode {
		return this.getToken(PlSqlParser.ROLLBACK, 0);
	}
	public SEGMENT(): TerminalNode {
		return this.getToken(PlSqlParser.SEGMENT, 0);
	}
	public rollback_segment_name(): Rollback_segment_nameContext {
		return this.getTypedRuleContext(Rollback_segment_nameContext, 0) as Rollback_segment_nameContext;
	}
	public NAME(): TerminalNode {
		return this.getToken(PlSqlParser.NAME, 0);
	}
	public quoted_string(): Quoted_stringContext {
		return this.getTypedRuleContext(Quoted_stringContext, 0) as Quoted_stringContext;
	}
	public ONLY(): TerminalNode {
		return this.getToken(PlSqlParser.ONLY, 0);
	}
	public WRITE(): TerminalNode {
		return this.getToken(PlSqlParser.WRITE, 0);
	}
	public SERIALIZABLE(): TerminalNode {
		return this.getToken(PlSqlParser.SERIALIZABLE, 0);
	}
	public COMMITTED(): TerminalNode {
		return this.getToken(PlSqlParser.COMMITTED, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_set_transaction_command;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterSet_transaction_command) {
	 		listener.enterSet_transaction_command(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitSet_transaction_command) {
	 		listener.exitSet_transaction_command(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitSet_transaction_command) {
			return visitor.visitSet_transaction_command(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Set_constraint_commandContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public SET(): TerminalNode {
		return this.getToken(PlSqlParser.SET, 0);
	}
	public CONSTRAINT(): TerminalNode {
		return this.getToken(PlSqlParser.CONSTRAINT, 0);
	}
	public CONSTRAINTS(): TerminalNode {
		return this.getToken(PlSqlParser.CONSTRAINTS, 0);
	}
	public IMMEDIATE(): TerminalNode {
		return this.getToken(PlSqlParser.IMMEDIATE, 0);
	}
	public DEFERRED(): TerminalNode {
		return this.getToken(PlSqlParser.DEFERRED, 0);
	}
	public ALL(): TerminalNode {
		return this.getToken(PlSqlParser.ALL, 0);
	}
	public constraint_name_list(): Constraint_nameContext[] {
		return this.getTypedRuleContexts(Constraint_nameContext) as Constraint_nameContext[];
	}
	public constraint_name(i: number): Constraint_nameContext {
		return this.getTypedRuleContext(Constraint_nameContext, i) as Constraint_nameContext;
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_set_constraint_command;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterSet_constraint_command) {
	 		listener.enterSet_constraint_command(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitSet_constraint_command) {
	 		listener.exitSet_constraint_command(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitSet_constraint_command) {
			return visitor.visitSet_constraint_command(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Commit_statementContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public COMMIT(): TerminalNode {
		return this.getToken(PlSqlParser.COMMIT, 0);
	}
	public WORK(): TerminalNode {
		return this.getToken(PlSqlParser.WORK, 0);
	}
	public COMMENT(): TerminalNode {
		return this.getToken(PlSqlParser.COMMENT, 0);
	}
	public expression_list(): ExpressionContext[] {
		return this.getTypedRuleContexts(ExpressionContext) as ExpressionContext[];
	}
	public expression(i: number): ExpressionContext {
		return this.getTypedRuleContext(ExpressionContext, i) as ExpressionContext;
	}
	public FORCE(): TerminalNode {
		return this.getToken(PlSqlParser.FORCE, 0);
	}
	public write_clause(): Write_clauseContext {
		return this.getTypedRuleContext(Write_clauseContext, 0) as Write_clauseContext;
	}
	public CORRUPT_XID(): TerminalNode {
		return this.getToken(PlSqlParser.CORRUPT_XID, 0);
	}
	public CORRUPT_XID_ALL(): TerminalNode {
		return this.getToken(PlSqlParser.CORRUPT_XID_ALL, 0);
	}
	public COMMA(): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_commit_statement;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterCommit_statement) {
	 		listener.enterCommit_statement(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitCommit_statement) {
	 		listener.exitCommit_statement(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitCommit_statement) {
			return visitor.visitCommit_statement(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Write_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public WRITE(): TerminalNode {
		return this.getToken(PlSqlParser.WRITE, 0);
	}
	public WAIT(): TerminalNode {
		return this.getToken(PlSqlParser.WAIT, 0);
	}
	public NOWAIT(): TerminalNode {
		return this.getToken(PlSqlParser.NOWAIT, 0);
	}
	public IMMEDIATE(): TerminalNode {
		return this.getToken(PlSqlParser.IMMEDIATE, 0);
	}
	public BATCH(): TerminalNode {
		return this.getToken(PlSqlParser.BATCH, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_write_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterWrite_clause) {
	 		listener.enterWrite_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitWrite_clause) {
	 		listener.exitWrite_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitWrite_clause) {
			return visitor.visitWrite_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Rollback_statementContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public ROLLBACK(): TerminalNode {
		return this.getToken(PlSqlParser.ROLLBACK, 0);
	}
	public WORK(): TerminalNode {
		return this.getToken(PlSqlParser.WORK, 0);
	}
	public TO(): TerminalNode {
		return this.getToken(PlSqlParser.TO, 0);
	}
	public savepoint_name(): Savepoint_nameContext {
		return this.getTypedRuleContext(Savepoint_nameContext, 0) as Savepoint_nameContext;
	}
	public FORCE(): TerminalNode {
		return this.getToken(PlSqlParser.FORCE, 0);
	}
	public quoted_string(): Quoted_stringContext {
		return this.getTypedRuleContext(Quoted_stringContext, 0) as Quoted_stringContext;
	}
	public SAVEPOINT(): TerminalNode {
		return this.getToken(PlSqlParser.SAVEPOINT, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_rollback_statement;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterRollback_statement) {
	 		listener.enterRollback_statement(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitRollback_statement) {
	 		listener.exitRollback_statement(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitRollback_statement) {
			return visitor.visitRollback_statement(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Savepoint_statementContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public SAVEPOINT(): TerminalNode {
		return this.getToken(PlSqlParser.SAVEPOINT, 0);
	}
	public savepoint_name(): Savepoint_nameContext {
		return this.getTypedRuleContext(Savepoint_nameContext, 0) as Savepoint_nameContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_savepoint_statement;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterSavepoint_statement) {
	 		listener.enterSavepoint_statement(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitSavepoint_statement) {
	 		listener.exitSavepoint_statement(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitSavepoint_statement) {
			return visitor.visitSavepoint_statement(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Explain_statementContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public EXPLAIN(): TerminalNode {
		return this.getToken(PlSqlParser.EXPLAIN, 0);
	}
	public PLAN(): TerminalNode {
		return this.getToken(PlSqlParser.PLAN, 0);
	}
	public FOR(): TerminalNode {
		return this.getToken(PlSqlParser.FOR, 0);
	}
	public select_statement(): Select_statementContext {
		return this.getTypedRuleContext(Select_statementContext, 0) as Select_statementContext;
	}
	public update_statement(): Update_statementContext {
		return this.getTypedRuleContext(Update_statementContext, 0) as Update_statementContext;
	}
	public delete_statement(): Delete_statementContext {
		return this.getTypedRuleContext(Delete_statementContext, 0) as Delete_statementContext;
	}
	public insert_statement(): Insert_statementContext {
		return this.getTypedRuleContext(Insert_statementContext, 0) as Insert_statementContext;
	}
	public merge_statement(): Merge_statementContext {
		return this.getTypedRuleContext(Merge_statementContext, 0) as Merge_statementContext;
	}
	public SET(): TerminalNode {
		return this.getToken(PlSqlParser.SET, 0);
	}
	public STATEMENT_ID(): TerminalNode {
		return this.getToken(PlSqlParser.STATEMENT_ID, 0);
	}
	public EQUALS_OP(): TerminalNode {
		return this.getToken(PlSqlParser.EQUALS_OP, 0);
	}
	public quoted_string(): Quoted_stringContext {
		return this.getTypedRuleContext(Quoted_stringContext, 0) as Quoted_stringContext;
	}
	public INTO(): TerminalNode {
		return this.getToken(PlSqlParser.INTO, 0);
	}
	public tableview_name(): Tableview_nameContext {
		return this.getTypedRuleContext(Tableview_nameContext, 0) as Tableview_nameContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_explain_statement;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterExplain_statement) {
	 		listener.enterExplain_statement(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitExplain_statement) {
	 		listener.exitExplain_statement(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitExplain_statement) {
			return visitor.visitExplain_statement(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Select_only_statementContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public subquery(): SubqueryContext {
		return this.getTypedRuleContext(SubqueryContext, 0) as SubqueryContext;
	}
	public subquery_factoring_clause(): Subquery_factoring_clauseContext {
		return this.getTypedRuleContext(Subquery_factoring_clauseContext, 0) as Subquery_factoring_clauseContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_select_only_statement;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterSelect_only_statement) {
	 		listener.enterSelect_only_statement(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitSelect_only_statement) {
	 		listener.exitSelect_only_statement(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitSelect_only_statement) {
			return visitor.visitSelect_only_statement(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Select_statementContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public select_only_statement(): Select_only_statementContext {
		return this.getTypedRuleContext(Select_only_statementContext, 0) as Select_only_statementContext;
	}
	public for_update_clause_list(): For_update_clauseContext[] {
		return this.getTypedRuleContexts(For_update_clauseContext) as For_update_clauseContext[];
	}
	public for_update_clause(i: number): For_update_clauseContext {
		return this.getTypedRuleContext(For_update_clauseContext, i) as For_update_clauseContext;
	}
	public order_by_clause_list(): Order_by_clauseContext[] {
		return this.getTypedRuleContexts(Order_by_clauseContext) as Order_by_clauseContext[];
	}
	public order_by_clause(i: number): Order_by_clauseContext {
		return this.getTypedRuleContext(Order_by_clauseContext, i) as Order_by_clauseContext;
	}
	public offset_clause_list(): Offset_clauseContext[] {
		return this.getTypedRuleContexts(Offset_clauseContext) as Offset_clauseContext[];
	}
	public offset_clause(i: number): Offset_clauseContext {
		return this.getTypedRuleContext(Offset_clauseContext, i) as Offset_clauseContext;
	}
	public fetch_clause_list(): Fetch_clauseContext[] {
		return this.getTypedRuleContexts(Fetch_clauseContext) as Fetch_clauseContext[];
	}
	public fetch_clause(i: number): Fetch_clauseContext {
		return this.getTypedRuleContext(Fetch_clauseContext, i) as Fetch_clauseContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_select_statement;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterSelect_statement) {
	 		listener.enterSelect_statement(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitSelect_statement) {
	 		listener.exitSelect_statement(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitSelect_statement) {
			return visitor.visitSelect_statement(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Subquery_factoring_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public WITH(): TerminalNode {
		return this.getToken(PlSqlParser.WITH, 0);
	}
	public factoring_element_list(): Factoring_elementContext[] {
		return this.getTypedRuleContexts(Factoring_elementContext) as Factoring_elementContext[];
	}
	public factoring_element(i: number): Factoring_elementContext {
		return this.getTypedRuleContext(Factoring_elementContext, i) as Factoring_elementContext;
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_subquery_factoring_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterSubquery_factoring_clause) {
	 		listener.enterSubquery_factoring_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitSubquery_factoring_clause) {
	 		listener.exitSubquery_factoring_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitSubquery_factoring_clause) {
			return visitor.visitSubquery_factoring_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Factoring_elementContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public query_name(): Query_nameContext {
		return this.getTypedRuleContext(Query_nameContext, 0) as Query_nameContext;
	}
	public AS(): TerminalNode {
		return this.getToken(PlSqlParser.AS, 0);
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public subquery(): SubqueryContext {
		return this.getTypedRuleContext(SubqueryContext, 0) as SubqueryContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public paren_column_list(): Paren_column_listContext {
		return this.getTypedRuleContext(Paren_column_listContext, 0) as Paren_column_listContext;
	}
	public order_by_clause(): Order_by_clauseContext {
		return this.getTypedRuleContext(Order_by_clauseContext, 0) as Order_by_clauseContext;
	}
	public search_clause(): Search_clauseContext {
		return this.getTypedRuleContext(Search_clauseContext, 0) as Search_clauseContext;
	}
	public cycle_clause(): Cycle_clauseContext {
		return this.getTypedRuleContext(Cycle_clauseContext, 0) as Cycle_clauseContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_factoring_element;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterFactoring_element) {
	 		listener.enterFactoring_element(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitFactoring_element) {
	 		listener.exitFactoring_element(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitFactoring_element) {
			return visitor.visitFactoring_element(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Search_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public SEARCH(): TerminalNode {
		return this.getToken(PlSqlParser.SEARCH, 0);
	}
	public FIRST_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.FIRST);
	}
	public FIRST(i: number): TerminalNode {
		return this.getToken(PlSqlParser.FIRST, i);
	}
	public BY(): TerminalNode {
		return this.getToken(PlSqlParser.BY, 0);
	}
	public column_name_list(): Column_nameContext[] {
		return this.getTypedRuleContexts(Column_nameContext) as Column_nameContext[];
	}
	public column_name(i: number): Column_nameContext {
		return this.getTypedRuleContext(Column_nameContext, i) as Column_nameContext;
	}
	public SET(): TerminalNode {
		return this.getToken(PlSqlParser.SET, 0);
	}
	public DEPTH(): TerminalNode {
		return this.getToken(PlSqlParser.DEPTH, 0);
	}
	public BREADTH(): TerminalNode {
		return this.getToken(PlSqlParser.BREADTH, 0);
	}
	public ASC_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.ASC);
	}
	public ASC(i: number): TerminalNode {
		return this.getToken(PlSqlParser.ASC, i);
	}
	public DESC_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.DESC);
	}
	public DESC(i: number): TerminalNode {
		return this.getToken(PlSqlParser.DESC, i);
	}
	public NULLS_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.NULLS);
	}
	public NULLS(i: number): TerminalNode {
		return this.getToken(PlSqlParser.NULLS, i);
	}
	public LAST_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.LAST);
	}
	public LAST(i: number): TerminalNode {
		return this.getToken(PlSqlParser.LAST, i);
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_search_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterSearch_clause) {
	 		listener.enterSearch_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitSearch_clause) {
	 		listener.exitSearch_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitSearch_clause) {
			return visitor.visitSearch_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Cycle_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public CYCLE(): TerminalNode {
		return this.getToken(PlSqlParser.CYCLE, 0);
	}
	public column_list(): Column_listContext {
		return this.getTypedRuleContext(Column_listContext, 0) as Column_listContext;
	}
	public SET(): TerminalNode {
		return this.getToken(PlSqlParser.SET, 0);
	}
	public column_name(): Column_nameContext {
		return this.getTypedRuleContext(Column_nameContext, 0) as Column_nameContext;
	}
	public TO(): TerminalNode {
		return this.getToken(PlSqlParser.TO, 0);
	}
	public expression_list(): ExpressionContext[] {
		return this.getTypedRuleContexts(ExpressionContext) as ExpressionContext[];
	}
	public expression(i: number): ExpressionContext {
		return this.getTypedRuleContext(ExpressionContext, i) as ExpressionContext;
	}
	public DEFAULT(): TerminalNode {
		return this.getToken(PlSqlParser.DEFAULT, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_cycle_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterCycle_clause) {
	 		listener.enterCycle_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitCycle_clause) {
	 		listener.exitCycle_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitCycle_clause) {
			return visitor.visitCycle_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class SubqueryContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public subquery_basic_elements(): Subquery_basic_elementsContext {
		return this.getTypedRuleContext(Subquery_basic_elementsContext, 0) as Subquery_basic_elementsContext;
	}
	public subquery_operation_part_list(): Subquery_operation_partContext[] {
		return this.getTypedRuleContexts(Subquery_operation_partContext) as Subquery_operation_partContext[];
	}
	public subquery_operation_part(i: number): Subquery_operation_partContext {
		return this.getTypedRuleContext(Subquery_operation_partContext, i) as Subquery_operation_partContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_subquery;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterSubquery) {
	 		listener.enterSubquery(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitSubquery) {
	 		listener.exitSubquery(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitSubquery) {
			return visitor.visitSubquery(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Subquery_basic_elementsContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public query_block(): Query_blockContext {
		return this.getTypedRuleContext(Query_blockContext, 0) as Query_blockContext;
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public subquery(): SubqueryContext {
		return this.getTypedRuleContext(SubqueryContext, 0) as SubqueryContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_subquery_basic_elements;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterSubquery_basic_elements) {
	 		listener.enterSubquery_basic_elements(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitSubquery_basic_elements) {
	 		listener.exitSubquery_basic_elements(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitSubquery_basic_elements) {
			return visitor.visitSubquery_basic_elements(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Subquery_operation_partContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public subquery_basic_elements(): Subquery_basic_elementsContext {
		return this.getTypedRuleContext(Subquery_basic_elementsContext, 0) as Subquery_basic_elementsContext;
	}
	public UNION(): TerminalNode {
		return this.getToken(PlSqlParser.UNION, 0);
	}
	public INTERSECT(): TerminalNode {
		return this.getToken(PlSqlParser.INTERSECT, 0);
	}
	public MINUS(): TerminalNode {
		return this.getToken(PlSqlParser.MINUS, 0);
	}
	public ALL(): TerminalNode {
		return this.getToken(PlSqlParser.ALL, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_subquery_operation_part;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterSubquery_operation_part) {
	 		listener.enterSubquery_operation_part(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitSubquery_operation_part) {
	 		listener.exitSubquery_operation_part(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitSubquery_operation_part) {
			return visitor.visitSubquery_operation_part(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Query_blockContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public SELECT(): TerminalNode {
		return this.getToken(PlSqlParser.SELECT, 0);
	}
	public selected_list(): Selected_listContext {
		return this.getTypedRuleContext(Selected_listContext, 0) as Selected_listContext;
	}
	public from_clause(): From_clauseContext {
		return this.getTypedRuleContext(From_clauseContext, 0) as From_clauseContext;
	}
	public into_clause(): Into_clauseContext {
		return this.getTypedRuleContext(Into_clauseContext, 0) as Into_clauseContext;
	}
	public where_clause(): Where_clauseContext {
		return this.getTypedRuleContext(Where_clauseContext, 0) as Where_clauseContext;
	}
	public hierarchical_query_clause(): Hierarchical_query_clauseContext {
		return this.getTypedRuleContext(Hierarchical_query_clauseContext, 0) as Hierarchical_query_clauseContext;
	}
	public group_by_clause(): Group_by_clauseContext {
		return this.getTypedRuleContext(Group_by_clauseContext, 0) as Group_by_clauseContext;
	}
	public model_clause(): Model_clauseContext {
		return this.getTypedRuleContext(Model_clauseContext, 0) as Model_clauseContext;
	}
	public order_by_clause(): Order_by_clauseContext {
		return this.getTypedRuleContext(Order_by_clauseContext, 0) as Order_by_clauseContext;
	}
	public DISTINCT(): TerminalNode {
		return this.getToken(PlSqlParser.DISTINCT, 0);
	}
	public UNIQUE(): TerminalNode {
		return this.getToken(PlSqlParser.UNIQUE, 0);
	}
	public ALL(): TerminalNode {
		return this.getToken(PlSqlParser.ALL, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_query_block;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterQuery_block) {
	 		listener.enterQuery_block(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitQuery_block) {
	 		listener.exitQuery_block(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitQuery_block) {
			return visitor.visitQuery_block(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Selected_listContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public ASTERISK(): TerminalNode {
		return this.getToken(PlSqlParser.ASTERISK, 0);
	}
	public select_list_elements_list(): Select_list_elementsContext[] {
		return this.getTypedRuleContexts(Select_list_elementsContext) as Select_list_elementsContext[];
	}
	public select_list_elements(i: number): Select_list_elementsContext {
		return this.getTypedRuleContext(Select_list_elementsContext, i) as Select_list_elementsContext;
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_selected_list;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterSelected_list) {
	 		listener.enterSelected_list(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitSelected_list) {
	 		listener.exitSelected_list(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitSelected_list) {
			return visitor.visitSelected_list(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class From_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public FROM(): TerminalNode {
		return this.getToken(PlSqlParser.FROM, 0);
	}
	public table_ref_list(): Table_ref_listContext {
		return this.getTypedRuleContext(Table_ref_listContext, 0) as Table_ref_listContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_from_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterFrom_clause) {
	 		listener.enterFrom_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitFrom_clause) {
	 		listener.exitFrom_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitFrom_clause) {
			return visitor.visitFrom_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Select_list_elementsContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public tableview_name(): Tableview_nameContext {
		return this.getTypedRuleContext(Tableview_nameContext, 0) as Tableview_nameContext;
	}
	public PERIOD(): TerminalNode {
		return this.getToken(PlSqlParser.PERIOD, 0);
	}
	public ASTERISK(): TerminalNode {
		return this.getToken(PlSqlParser.ASTERISK, 0);
	}
	public expression(): ExpressionContext {
		return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext;
	}
	public column_alias(): Column_aliasContext {
		return this.getTypedRuleContext(Column_aliasContext, 0) as Column_aliasContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_select_list_elements;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterSelect_list_elements) {
	 		listener.enterSelect_list_elements(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitSelect_list_elements) {
	 		listener.exitSelect_list_elements(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitSelect_list_elements) {
			return visitor.visitSelect_list_elements(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Table_ref_listContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public table_ref_list(): Table_refContext[] {
		return this.getTypedRuleContexts(Table_refContext) as Table_refContext[];
	}
	public table_ref(i: number): Table_refContext {
		return this.getTypedRuleContext(Table_refContext, i) as Table_refContext;
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_table_ref_list;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterTable_ref_list) {
	 		listener.enterTable_ref_list(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitTable_ref_list) {
	 		listener.exitTable_ref_list(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitTable_ref_list) {
			return visitor.visitTable_ref_list(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Table_refContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public table_ref_aux(): Table_ref_auxContext {
		return this.getTypedRuleContext(Table_ref_auxContext, 0) as Table_ref_auxContext;
	}
	public join_clause_list(): Join_clauseContext[] {
		return this.getTypedRuleContexts(Join_clauseContext) as Join_clauseContext[];
	}
	public join_clause(i: number): Join_clauseContext {
		return this.getTypedRuleContext(Join_clauseContext, i) as Join_clauseContext;
	}
	public pivot_clause(): Pivot_clauseContext {
		return this.getTypedRuleContext(Pivot_clauseContext, 0) as Pivot_clauseContext;
	}
	public unpivot_clause(): Unpivot_clauseContext {
		return this.getTypedRuleContext(Unpivot_clauseContext, 0) as Unpivot_clauseContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_table_ref;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterTable_ref) {
	 		listener.enterTable_ref(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitTable_ref) {
	 		listener.exitTable_ref(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitTable_ref) {
			return visitor.visitTable_ref(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Table_ref_auxContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public table_ref_aux_internal(): Table_ref_aux_internalContext {
		return this.getTypedRuleContext(Table_ref_aux_internalContext, 0) as Table_ref_aux_internalContext;
	}
	public flashback_query_clause_list(): Flashback_query_clauseContext[] {
		return this.getTypedRuleContexts(Flashback_query_clauseContext) as Flashback_query_clauseContext[];
	}
	public flashback_query_clause(i: number): Flashback_query_clauseContext {
		return this.getTypedRuleContext(Flashback_query_clauseContext, i) as Flashback_query_clauseContext;
	}
	public table_alias(): Table_aliasContext {
		return this.getTypedRuleContext(Table_aliasContext, 0) as Table_aliasContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_table_ref_aux;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterTable_ref_aux) {
	 		listener.enterTable_ref_aux(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitTable_ref_aux) {
	 		listener.exitTable_ref_aux(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitTable_ref_aux) {
			return visitor.visitTable_ref_aux(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Table_ref_aux_internalContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_table_ref_aux_internal;
	}
	public copyFrom(ctx: Table_ref_aux_internalContext): void {
		super.copyFrom(ctx);
	}
}
export class Table_ref_aux_internal_threeContext extends Table_ref_aux_internalContext {
	constructor(parser: PlSqlParser, ctx: Table_ref_aux_internalContext) {
		super(parser, ctx.parentCtx, ctx.invokingState);
		super.copyFrom(ctx);
	}
	public ONLY(): TerminalNode {
		return this.getToken(PlSqlParser.ONLY, 0);
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public dml_table_expression_clause(): Dml_table_expression_clauseContext {
		return this.getTypedRuleContext(Dml_table_expression_clauseContext, 0) as Dml_table_expression_clauseContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterTable_ref_aux_internal_three) {
	 		listener.enterTable_ref_aux_internal_three(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitTable_ref_aux_internal_three) {
	 		listener.exitTable_ref_aux_internal_three(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitTable_ref_aux_internal_three) {
			return visitor.visitTable_ref_aux_internal_three(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}
export class Table_ref_aux_internal_oneContext extends Table_ref_aux_internalContext {
	constructor(parser: PlSqlParser, ctx: Table_ref_aux_internalContext) {
		super(parser, ctx.parentCtx, ctx.invokingState);
		super.copyFrom(ctx);
	}
	public dml_table_expression_clause(): Dml_table_expression_clauseContext {
		return this.getTypedRuleContext(Dml_table_expression_clauseContext, 0) as Dml_table_expression_clauseContext;
	}
	public pivot_clause(): Pivot_clauseContext {
		return this.getTypedRuleContext(Pivot_clauseContext, 0) as Pivot_clauseContext;
	}
	public unpivot_clause(): Unpivot_clauseContext {
		return this.getTypedRuleContext(Unpivot_clauseContext, 0) as Unpivot_clauseContext;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterTable_ref_aux_internal_one) {
	 		listener.enterTable_ref_aux_internal_one(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitTable_ref_aux_internal_one) {
	 		listener.exitTable_ref_aux_internal_one(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitTable_ref_aux_internal_one) {
			return visitor.visitTable_ref_aux_internal_one(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}
export class Table_ref_aux_internal_twoContext extends Table_ref_aux_internalContext {
	constructor(parser: PlSqlParser, ctx: Table_ref_aux_internalContext) {
		super(parser, ctx.parentCtx, ctx.invokingState);
		super.copyFrom(ctx);
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public table_ref(): Table_refContext {
		return this.getTypedRuleContext(Table_refContext, 0) as Table_refContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public subquery_operation_part_list(): Subquery_operation_partContext[] {
		return this.getTypedRuleContexts(Subquery_operation_partContext) as Subquery_operation_partContext[];
	}
	public subquery_operation_part(i: number): Subquery_operation_partContext {
		return this.getTypedRuleContext(Subquery_operation_partContext, i) as Subquery_operation_partContext;
	}
	public pivot_clause(): Pivot_clauseContext {
		return this.getTypedRuleContext(Pivot_clauseContext, 0) as Pivot_clauseContext;
	}
	public unpivot_clause(): Unpivot_clauseContext {
		return this.getTypedRuleContext(Unpivot_clauseContext, 0) as Unpivot_clauseContext;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterTable_ref_aux_internal_two) {
	 		listener.enterTable_ref_aux_internal_two(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitTable_ref_aux_internal_two) {
	 		listener.exitTable_ref_aux_internal_two(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitTable_ref_aux_internal_two) {
			return visitor.visitTable_ref_aux_internal_two(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Join_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public JOIN(): TerminalNode {
		return this.getToken(PlSqlParser.JOIN, 0);
	}
	public table_ref_aux(): Table_ref_auxContext {
		return this.getTypedRuleContext(Table_ref_auxContext, 0) as Table_ref_auxContext;
	}
	public query_partition_clause_list(): Query_partition_clauseContext[] {
		return this.getTypedRuleContexts(Query_partition_clauseContext) as Query_partition_clauseContext[];
	}
	public query_partition_clause(i: number): Query_partition_clauseContext {
		return this.getTypedRuleContext(Query_partition_clauseContext, i) as Query_partition_clauseContext;
	}
	public INNER(): TerminalNode {
		return this.getToken(PlSqlParser.INNER, 0);
	}
	public outer_join_type(): Outer_join_typeContext {
		return this.getTypedRuleContext(Outer_join_typeContext, 0) as Outer_join_typeContext;
	}
	public join_on_part_list(): Join_on_partContext[] {
		return this.getTypedRuleContexts(Join_on_partContext) as Join_on_partContext[];
	}
	public join_on_part(i: number): Join_on_partContext {
		return this.getTypedRuleContext(Join_on_partContext, i) as Join_on_partContext;
	}
	public join_using_part_list(): Join_using_partContext[] {
		return this.getTypedRuleContexts(Join_using_partContext) as Join_using_partContext[];
	}
	public join_using_part(i: number): Join_using_partContext {
		return this.getTypedRuleContext(Join_using_partContext, i) as Join_using_partContext;
	}
	public CROSS(): TerminalNode {
		return this.getToken(PlSqlParser.CROSS, 0);
	}
	public NATURAL(): TerminalNode {
		return this.getToken(PlSqlParser.NATURAL, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_join_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterJoin_clause) {
	 		listener.enterJoin_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitJoin_clause) {
	 		listener.exitJoin_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitJoin_clause) {
			return visitor.visitJoin_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Join_on_partContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public ON(): TerminalNode {
		return this.getToken(PlSqlParser.ON, 0);
	}
	public condition(): ConditionContext {
		return this.getTypedRuleContext(ConditionContext, 0) as ConditionContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_join_on_part;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterJoin_on_part) {
	 		listener.enterJoin_on_part(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitJoin_on_part) {
	 		listener.exitJoin_on_part(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitJoin_on_part) {
			return visitor.visitJoin_on_part(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Join_using_partContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public USING(): TerminalNode {
		return this.getToken(PlSqlParser.USING, 0);
	}
	public paren_column_list(): Paren_column_listContext {
		return this.getTypedRuleContext(Paren_column_listContext, 0) as Paren_column_listContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_join_using_part;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterJoin_using_part) {
	 		listener.enterJoin_using_part(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitJoin_using_part) {
	 		listener.exitJoin_using_part(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitJoin_using_part) {
			return visitor.visitJoin_using_part(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Outer_join_typeContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public FULL(): TerminalNode {
		return this.getToken(PlSqlParser.FULL, 0);
	}
	public LEFT(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT, 0);
	}
	public RIGHT(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT, 0);
	}
	public OUTER(): TerminalNode {
		return this.getToken(PlSqlParser.OUTER, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_outer_join_type;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterOuter_join_type) {
	 		listener.enterOuter_join_type(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitOuter_join_type) {
	 		listener.exitOuter_join_type(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitOuter_join_type) {
			return visitor.visitOuter_join_type(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Query_partition_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public PARTITION(): TerminalNode {
		return this.getToken(PlSqlParser.PARTITION, 0);
	}
	public BY(): TerminalNode {
		return this.getToken(PlSqlParser.BY, 0);
	}
	public expressions(): ExpressionsContext {
		return this.getTypedRuleContext(ExpressionsContext, 0) as ExpressionsContext;
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public subquery(): SubqueryContext {
		return this.getTypedRuleContext(SubqueryContext, 0) as SubqueryContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_query_partition_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterQuery_partition_clause) {
	 		listener.enterQuery_partition_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitQuery_partition_clause) {
	 		listener.exitQuery_partition_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitQuery_partition_clause) {
			return visitor.visitQuery_partition_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Flashback_query_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public VERSIONS(): TerminalNode {
		return this.getToken(PlSqlParser.VERSIONS, 0);
	}
	public BETWEEN(): TerminalNode {
		return this.getToken(PlSqlParser.BETWEEN, 0);
	}
	public expression(): ExpressionContext {
		return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext;
	}
	public SCN(): TerminalNode {
		return this.getToken(PlSqlParser.SCN, 0);
	}
	public TIMESTAMP(): TerminalNode {
		return this.getToken(PlSqlParser.TIMESTAMP, 0);
	}
	public AS(): TerminalNode {
		return this.getToken(PlSqlParser.AS, 0);
	}
	public OF(): TerminalNode {
		return this.getToken(PlSqlParser.OF, 0);
	}
	public SNAPSHOT(): TerminalNode {
		return this.getToken(PlSqlParser.SNAPSHOT, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_flashback_query_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterFlashback_query_clause) {
	 		listener.enterFlashback_query_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitFlashback_query_clause) {
	 		listener.exitFlashback_query_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitFlashback_query_clause) {
			return visitor.visitFlashback_query_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Pivot_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public PIVOT(): TerminalNode {
		return this.getToken(PlSqlParser.PIVOT, 0);
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public pivot_element_list(): Pivot_elementContext[] {
		return this.getTypedRuleContexts(Pivot_elementContext) as Pivot_elementContext[];
	}
	public pivot_element(i: number): Pivot_elementContext {
		return this.getTypedRuleContext(Pivot_elementContext, i) as Pivot_elementContext;
	}
	public pivot_for_clause(): Pivot_for_clauseContext {
		return this.getTypedRuleContext(Pivot_for_clauseContext, 0) as Pivot_for_clauseContext;
	}
	public pivot_in_clause(): Pivot_in_clauseContext {
		return this.getTypedRuleContext(Pivot_in_clauseContext, 0) as Pivot_in_clauseContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public XML(): TerminalNode {
		return this.getToken(PlSqlParser.XML, 0);
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_pivot_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterPivot_clause) {
	 		listener.enterPivot_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitPivot_clause) {
	 		listener.exitPivot_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitPivot_clause) {
			return visitor.visitPivot_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Pivot_elementContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public aggregate_function_name(): Aggregate_function_nameContext {
		return this.getTypedRuleContext(Aggregate_function_nameContext, 0) as Aggregate_function_nameContext;
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public expression(): ExpressionContext {
		return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public column_alias(): Column_aliasContext {
		return this.getTypedRuleContext(Column_aliasContext, 0) as Column_aliasContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_pivot_element;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterPivot_element) {
	 		listener.enterPivot_element(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitPivot_element) {
	 		listener.exitPivot_element(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitPivot_element) {
			return visitor.visitPivot_element(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Pivot_for_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public FOR(): TerminalNode {
		return this.getToken(PlSqlParser.FOR, 0);
	}
	public column_name(): Column_nameContext {
		return this.getTypedRuleContext(Column_nameContext, 0) as Column_nameContext;
	}
	public paren_column_list(): Paren_column_listContext {
		return this.getTypedRuleContext(Paren_column_listContext, 0) as Paren_column_listContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_pivot_for_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterPivot_for_clause) {
	 		listener.enterPivot_for_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitPivot_for_clause) {
	 		listener.exitPivot_for_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitPivot_for_clause) {
			return visitor.visitPivot_for_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Pivot_in_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public IN(): TerminalNode {
		return this.getToken(PlSqlParser.IN, 0);
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public subquery(): SubqueryContext {
		return this.getTypedRuleContext(SubqueryContext, 0) as SubqueryContext;
	}
	public ANY_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.ANY);
	}
	public ANY(i: number): TerminalNode {
		return this.getToken(PlSqlParser.ANY, i);
	}
	public pivot_in_clause_element_list(): Pivot_in_clause_elementContext[] {
		return this.getTypedRuleContexts(Pivot_in_clause_elementContext) as Pivot_in_clause_elementContext[];
	}
	public pivot_in_clause_element(i: number): Pivot_in_clause_elementContext {
		return this.getTypedRuleContext(Pivot_in_clause_elementContext, i) as Pivot_in_clause_elementContext;
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_pivot_in_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterPivot_in_clause) {
	 		listener.enterPivot_in_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitPivot_in_clause) {
	 		listener.exitPivot_in_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitPivot_in_clause) {
			return visitor.visitPivot_in_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Pivot_in_clause_elementContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public pivot_in_clause_elements(): Pivot_in_clause_elementsContext {
		return this.getTypedRuleContext(Pivot_in_clause_elementsContext, 0) as Pivot_in_clause_elementsContext;
	}
	public column_alias(): Column_aliasContext {
		return this.getTypedRuleContext(Column_aliasContext, 0) as Column_aliasContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_pivot_in_clause_element;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterPivot_in_clause_element) {
	 		listener.enterPivot_in_clause_element(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitPivot_in_clause_element) {
	 		listener.exitPivot_in_clause_element(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitPivot_in_clause_element) {
			return visitor.visitPivot_in_clause_element(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Pivot_in_clause_elementsContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public expression(): ExpressionContext {
		return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext;
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public expressions(): ExpressionsContext {
		return this.getTypedRuleContext(ExpressionsContext, 0) as ExpressionsContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_pivot_in_clause_elements;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterPivot_in_clause_elements) {
	 		listener.enterPivot_in_clause_elements(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitPivot_in_clause_elements) {
	 		listener.exitPivot_in_clause_elements(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitPivot_in_clause_elements) {
			return visitor.visitPivot_in_clause_elements(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Unpivot_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public UNPIVOT(): TerminalNode {
		return this.getToken(PlSqlParser.UNPIVOT, 0);
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public pivot_for_clause(): Pivot_for_clauseContext {
		return this.getTypedRuleContext(Pivot_for_clauseContext, 0) as Pivot_for_clauseContext;
	}
	public unpivot_in_clause(): Unpivot_in_clauseContext {
		return this.getTypedRuleContext(Unpivot_in_clauseContext, 0) as Unpivot_in_clauseContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public column_name(): Column_nameContext {
		return this.getTypedRuleContext(Column_nameContext, 0) as Column_nameContext;
	}
	public paren_column_list(): Paren_column_listContext {
		return this.getTypedRuleContext(Paren_column_listContext, 0) as Paren_column_listContext;
	}
	public NULLS(): TerminalNode {
		return this.getToken(PlSqlParser.NULLS, 0);
	}
	public INCLUDE(): TerminalNode {
		return this.getToken(PlSqlParser.INCLUDE, 0);
	}
	public EXCLUDE(): TerminalNode {
		return this.getToken(PlSqlParser.EXCLUDE, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_unpivot_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterUnpivot_clause) {
	 		listener.enterUnpivot_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitUnpivot_clause) {
	 		listener.exitUnpivot_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitUnpivot_clause) {
			return visitor.visitUnpivot_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Unpivot_in_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public IN(): TerminalNode {
		return this.getToken(PlSqlParser.IN, 0);
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public unpivot_in_elements_list(): Unpivot_in_elementsContext[] {
		return this.getTypedRuleContexts(Unpivot_in_elementsContext) as Unpivot_in_elementsContext[];
	}
	public unpivot_in_elements(i: number): Unpivot_in_elementsContext {
		return this.getTypedRuleContext(Unpivot_in_elementsContext, i) as Unpivot_in_elementsContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_unpivot_in_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterUnpivot_in_clause) {
	 		listener.enterUnpivot_in_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitUnpivot_in_clause) {
	 		listener.exitUnpivot_in_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitUnpivot_in_clause) {
			return visitor.visitUnpivot_in_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Unpivot_in_elementsContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public column_name(): Column_nameContext {
		return this.getTypedRuleContext(Column_nameContext, 0) as Column_nameContext;
	}
	public paren_column_list(): Paren_column_listContext {
		return this.getTypedRuleContext(Paren_column_listContext, 0) as Paren_column_listContext;
	}
	public AS(): TerminalNode {
		return this.getToken(PlSqlParser.AS, 0);
	}
	public constant_list(): ConstantContext[] {
		return this.getTypedRuleContexts(ConstantContext) as ConstantContext[];
	}
	public constant(i: number): ConstantContext {
		return this.getTypedRuleContext(ConstantContext, i) as ConstantContext;
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_unpivot_in_elements;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterUnpivot_in_elements) {
	 		listener.enterUnpivot_in_elements(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitUnpivot_in_elements) {
	 		listener.exitUnpivot_in_elements(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitUnpivot_in_elements) {
			return visitor.visitUnpivot_in_elements(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Hierarchical_query_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public CONNECT(): TerminalNode {
		return this.getToken(PlSqlParser.CONNECT, 0);
	}
	public BY(): TerminalNode {
		return this.getToken(PlSqlParser.BY, 0);
	}
	public condition(): ConditionContext {
		return this.getTypedRuleContext(ConditionContext, 0) as ConditionContext;
	}
	public NOCYCLE(): TerminalNode {
		return this.getToken(PlSqlParser.NOCYCLE, 0);
	}
	public start_part(): Start_partContext {
		return this.getTypedRuleContext(Start_partContext, 0) as Start_partContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_hierarchical_query_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterHierarchical_query_clause) {
	 		listener.enterHierarchical_query_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitHierarchical_query_clause) {
	 		listener.exitHierarchical_query_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitHierarchical_query_clause) {
			return visitor.visitHierarchical_query_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Start_partContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public START(): TerminalNode {
		return this.getToken(PlSqlParser.START, 0);
	}
	public WITH(): TerminalNode {
		return this.getToken(PlSqlParser.WITH, 0);
	}
	public condition(): ConditionContext {
		return this.getTypedRuleContext(ConditionContext, 0) as ConditionContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_start_part;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterStart_part) {
	 		listener.enterStart_part(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitStart_part) {
	 		listener.exitStart_part(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitStart_part) {
			return visitor.visitStart_part(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Group_by_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public GROUP(): TerminalNode {
		return this.getToken(PlSqlParser.GROUP, 0);
	}
	public BY(): TerminalNode {
		return this.getToken(PlSqlParser.BY, 0);
	}
	public group_by_elements_list(): Group_by_elementsContext[] {
		return this.getTypedRuleContexts(Group_by_elementsContext) as Group_by_elementsContext[];
	}
	public group_by_elements(i: number): Group_by_elementsContext {
		return this.getTypedRuleContext(Group_by_elementsContext, i) as Group_by_elementsContext;
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
	public having_clause(): Having_clauseContext {
		return this.getTypedRuleContext(Having_clauseContext, 0) as Having_clauseContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_group_by_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterGroup_by_clause) {
	 		listener.enterGroup_by_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitGroup_by_clause) {
	 		listener.exitGroup_by_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitGroup_by_clause) {
			return visitor.visitGroup_by_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Group_by_elementsContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public grouping_sets_clause(): Grouping_sets_clauseContext {
		return this.getTypedRuleContext(Grouping_sets_clauseContext, 0) as Grouping_sets_clauseContext;
	}
	public rollup_cube_clause(): Rollup_cube_clauseContext {
		return this.getTypedRuleContext(Rollup_cube_clauseContext, 0) as Rollup_cube_clauseContext;
	}
	public expression(): ExpressionContext {
		return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_group_by_elements;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterGroup_by_elements) {
	 		listener.enterGroup_by_elements(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitGroup_by_elements) {
	 		listener.exitGroup_by_elements(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitGroup_by_elements) {
			return visitor.visitGroup_by_elements(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Rollup_cube_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public grouping_sets_elements_list(): Grouping_sets_elementsContext[] {
		return this.getTypedRuleContexts(Grouping_sets_elementsContext) as Grouping_sets_elementsContext[];
	}
	public grouping_sets_elements(i: number): Grouping_sets_elementsContext {
		return this.getTypedRuleContext(Grouping_sets_elementsContext, i) as Grouping_sets_elementsContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public ROLLUP(): TerminalNode {
		return this.getToken(PlSqlParser.ROLLUP, 0);
	}
	public CUBE(): TerminalNode {
		return this.getToken(PlSqlParser.CUBE, 0);
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_rollup_cube_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterRollup_cube_clause) {
	 		listener.enterRollup_cube_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitRollup_cube_clause) {
	 		listener.exitRollup_cube_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitRollup_cube_clause) {
			return visitor.visitRollup_cube_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Grouping_sets_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public GROUPING(): TerminalNode {
		return this.getToken(PlSqlParser.GROUPING, 0);
	}
	public SETS(): TerminalNode {
		return this.getToken(PlSqlParser.SETS, 0);
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public grouping_sets_elements_list(): Grouping_sets_elementsContext[] {
		return this.getTypedRuleContexts(Grouping_sets_elementsContext) as Grouping_sets_elementsContext[];
	}
	public grouping_sets_elements(i: number): Grouping_sets_elementsContext {
		return this.getTypedRuleContext(Grouping_sets_elementsContext, i) as Grouping_sets_elementsContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_grouping_sets_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterGrouping_sets_clause) {
	 		listener.enterGrouping_sets_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitGrouping_sets_clause) {
	 		listener.exitGrouping_sets_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitGrouping_sets_clause) {
			return visitor.visitGrouping_sets_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Grouping_sets_elementsContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public rollup_cube_clause(): Rollup_cube_clauseContext {
		return this.getTypedRuleContext(Rollup_cube_clauseContext, 0) as Rollup_cube_clauseContext;
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public expressions(): ExpressionsContext {
		return this.getTypedRuleContext(ExpressionsContext, 0) as ExpressionsContext;
	}
	public expression(): ExpressionContext {
		return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_grouping_sets_elements;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterGrouping_sets_elements) {
	 		listener.enterGrouping_sets_elements(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitGrouping_sets_elements) {
	 		listener.exitGrouping_sets_elements(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitGrouping_sets_elements) {
			return visitor.visitGrouping_sets_elements(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Having_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public HAVING(): TerminalNode {
		return this.getToken(PlSqlParser.HAVING, 0);
	}
	public condition(): ConditionContext {
		return this.getTypedRuleContext(ConditionContext, 0) as ConditionContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_having_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterHaving_clause) {
	 		listener.enterHaving_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitHaving_clause) {
	 		listener.exitHaving_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitHaving_clause) {
			return visitor.visitHaving_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Model_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public MODEL(): TerminalNode {
		return this.getToken(PlSqlParser.MODEL, 0);
	}
	public main_model(): Main_modelContext {
		return this.getTypedRuleContext(Main_modelContext, 0) as Main_modelContext;
	}
	public cell_reference_options_list(): Cell_reference_optionsContext[] {
		return this.getTypedRuleContexts(Cell_reference_optionsContext) as Cell_reference_optionsContext[];
	}
	public cell_reference_options(i: number): Cell_reference_optionsContext {
		return this.getTypedRuleContext(Cell_reference_optionsContext, i) as Cell_reference_optionsContext;
	}
	public return_rows_clause(): Return_rows_clauseContext {
		return this.getTypedRuleContext(Return_rows_clauseContext, 0) as Return_rows_clauseContext;
	}
	public reference_model_list(): Reference_modelContext[] {
		return this.getTypedRuleContexts(Reference_modelContext) as Reference_modelContext[];
	}
	public reference_model(i: number): Reference_modelContext {
		return this.getTypedRuleContext(Reference_modelContext, i) as Reference_modelContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_model_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterModel_clause) {
	 		listener.enterModel_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitModel_clause) {
	 		listener.exitModel_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitModel_clause) {
			return visitor.visitModel_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Cell_reference_optionsContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public NAV(): TerminalNode {
		return this.getToken(PlSqlParser.NAV, 0);
	}
	public IGNORE(): TerminalNode {
		return this.getToken(PlSqlParser.IGNORE, 0);
	}
	public KEEP(): TerminalNode {
		return this.getToken(PlSqlParser.KEEP, 0);
	}
	public UNIQUE(): TerminalNode {
		return this.getToken(PlSqlParser.UNIQUE, 0);
	}
	public DIMENSION(): TerminalNode {
		return this.getToken(PlSqlParser.DIMENSION, 0);
	}
	public SINGLE(): TerminalNode {
		return this.getToken(PlSqlParser.SINGLE, 0);
	}
	public REFERENCE(): TerminalNode {
		return this.getToken(PlSqlParser.REFERENCE, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_cell_reference_options;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterCell_reference_options) {
	 		listener.enterCell_reference_options(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitCell_reference_options) {
	 		listener.exitCell_reference_options(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitCell_reference_options) {
			return visitor.visitCell_reference_options(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Return_rows_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public RETURN(): TerminalNode {
		return this.getToken(PlSqlParser.RETURN, 0);
	}
	public ROWS(): TerminalNode {
		return this.getToken(PlSqlParser.ROWS, 0);
	}
	public UPDATED(): TerminalNode {
		return this.getToken(PlSqlParser.UPDATED, 0);
	}
	public ALL(): TerminalNode {
		return this.getToken(PlSqlParser.ALL, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_return_rows_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterReturn_rows_clause) {
	 		listener.enterReturn_rows_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitReturn_rows_clause) {
	 		listener.exitReturn_rows_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitReturn_rows_clause) {
			return visitor.visitReturn_rows_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Reference_modelContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public REFERENCE(): TerminalNode {
		return this.getToken(PlSqlParser.REFERENCE, 0);
	}
	public reference_model_name(): Reference_model_nameContext {
		return this.getTypedRuleContext(Reference_model_nameContext, 0) as Reference_model_nameContext;
	}
	public ON(): TerminalNode {
		return this.getToken(PlSqlParser.ON, 0);
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public subquery(): SubqueryContext {
		return this.getTypedRuleContext(SubqueryContext, 0) as SubqueryContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public model_column_clauses(): Model_column_clausesContext {
		return this.getTypedRuleContext(Model_column_clausesContext, 0) as Model_column_clausesContext;
	}
	public cell_reference_options_list(): Cell_reference_optionsContext[] {
		return this.getTypedRuleContexts(Cell_reference_optionsContext) as Cell_reference_optionsContext[];
	}
	public cell_reference_options(i: number): Cell_reference_optionsContext {
		return this.getTypedRuleContext(Cell_reference_optionsContext, i) as Cell_reference_optionsContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_reference_model;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterReference_model) {
	 		listener.enterReference_model(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitReference_model) {
	 		listener.exitReference_model(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitReference_model) {
			return visitor.visitReference_model(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Main_modelContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public model_column_clauses(): Model_column_clausesContext {
		return this.getTypedRuleContext(Model_column_clausesContext, 0) as Model_column_clausesContext;
	}
	public model_rules_clause(): Model_rules_clauseContext {
		return this.getTypedRuleContext(Model_rules_clauseContext, 0) as Model_rules_clauseContext;
	}
	public MAIN(): TerminalNode {
		return this.getToken(PlSqlParser.MAIN, 0);
	}
	public main_model_name(): Main_model_nameContext {
		return this.getTypedRuleContext(Main_model_nameContext, 0) as Main_model_nameContext;
	}
	public cell_reference_options_list(): Cell_reference_optionsContext[] {
		return this.getTypedRuleContexts(Cell_reference_optionsContext) as Cell_reference_optionsContext[];
	}
	public cell_reference_options(i: number): Cell_reference_optionsContext {
		return this.getTypedRuleContext(Cell_reference_optionsContext, i) as Cell_reference_optionsContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_main_model;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterMain_model) {
	 		listener.enterMain_model(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitMain_model) {
	 		listener.exitMain_model(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitMain_model) {
			return visitor.visitMain_model(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Model_column_clausesContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public DIMENSION(): TerminalNode {
		return this.getToken(PlSqlParser.DIMENSION, 0);
	}
	public BY(): TerminalNode {
		return this.getToken(PlSqlParser.BY, 0);
	}
	public model_column_list_list(): Model_column_listContext[] {
		return this.getTypedRuleContexts(Model_column_listContext) as Model_column_listContext[];
	}
	public model_column_list(i: number): Model_column_listContext {
		return this.getTypedRuleContext(Model_column_listContext, i) as Model_column_listContext;
	}
	public MEASURES(): TerminalNode {
		return this.getToken(PlSqlParser.MEASURES, 0);
	}
	public model_column_partition_part(): Model_column_partition_partContext {
		return this.getTypedRuleContext(Model_column_partition_partContext, 0) as Model_column_partition_partContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_model_column_clauses;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterModel_column_clauses) {
	 		listener.enterModel_column_clauses(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitModel_column_clauses) {
	 		listener.exitModel_column_clauses(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitModel_column_clauses) {
			return visitor.visitModel_column_clauses(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Model_column_partition_partContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public PARTITION(): TerminalNode {
		return this.getToken(PlSqlParser.PARTITION, 0);
	}
	public BY(): TerminalNode {
		return this.getToken(PlSqlParser.BY, 0);
	}
	public model_column_list(): Model_column_listContext {
		return this.getTypedRuleContext(Model_column_listContext, 0) as Model_column_listContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_model_column_partition_part;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterModel_column_partition_part) {
	 		listener.enterModel_column_partition_part(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitModel_column_partition_part) {
	 		listener.exitModel_column_partition_part(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitModel_column_partition_part) {
			return visitor.visitModel_column_partition_part(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Model_column_listContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public model_column_list(): Model_columnContext[] {
		return this.getTypedRuleContexts(Model_columnContext) as Model_columnContext[];
	}
	public model_column(i: number): Model_columnContext {
		return this.getTypedRuleContext(Model_columnContext, i) as Model_columnContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_model_column_list;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterModel_column_list) {
	 		listener.enterModel_column_list(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitModel_column_list) {
	 		listener.exitModel_column_list(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitModel_column_list) {
			return visitor.visitModel_column_list(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Model_columnContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public expression(): ExpressionContext {
		return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext;
	}
	public query_block(): Query_blockContext {
		return this.getTypedRuleContext(Query_blockContext, 0) as Query_blockContext;
	}
	public column_alias(): Column_aliasContext {
		return this.getTypedRuleContext(Column_aliasContext, 0) as Column_aliasContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_model_column;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterModel_column) {
	 		listener.enterModel_column(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitModel_column) {
	 		listener.exitModel_column(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitModel_column) {
			return visitor.visitModel_column(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Model_rules_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public model_rules_part(): Model_rules_partContext {
		return this.getTypedRuleContext(Model_rules_partContext, 0) as Model_rules_partContext;
	}
	public model_rules_element_list(): Model_rules_elementContext[] {
		return this.getTypedRuleContexts(Model_rules_elementContext) as Model_rules_elementContext[];
	}
	public model_rules_element(i: number): Model_rules_elementContext {
		return this.getTypedRuleContext(Model_rules_elementContext, i) as Model_rules_elementContext;
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_model_rules_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterModel_rules_clause) {
	 		listener.enterModel_rules_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitModel_rules_clause) {
	 		listener.exitModel_rules_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitModel_rules_clause) {
			return visitor.visitModel_rules_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Model_rules_partContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public RULES(): TerminalNode {
		return this.getToken(PlSqlParser.RULES, 0);
	}
	public UPDATE(): TerminalNode {
		return this.getToken(PlSqlParser.UPDATE, 0);
	}
	public UPSERT(): TerminalNode {
		return this.getToken(PlSqlParser.UPSERT, 0);
	}
	public ORDER(): TerminalNode {
		return this.getToken(PlSqlParser.ORDER, 0);
	}
	public model_iterate_clause(): Model_iterate_clauseContext {
		return this.getTypedRuleContext(Model_iterate_clauseContext, 0) as Model_iterate_clauseContext;
	}
	public AUTOMATIC(): TerminalNode {
		return this.getToken(PlSqlParser.AUTOMATIC, 0);
	}
	public SEQUENTIAL(): TerminalNode {
		return this.getToken(PlSqlParser.SEQUENTIAL, 0);
	}
	public ALL(): TerminalNode {
		return this.getToken(PlSqlParser.ALL, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_model_rules_part;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterModel_rules_part) {
	 		listener.enterModel_rules_part(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitModel_rules_part) {
	 		listener.exitModel_rules_part(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitModel_rules_part) {
			return visitor.visitModel_rules_part(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Model_rules_elementContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public cell_assignment(): Cell_assignmentContext {
		return this.getTypedRuleContext(Cell_assignmentContext, 0) as Cell_assignmentContext;
	}
	public EQUALS_OP(): TerminalNode {
		return this.getToken(PlSqlParser.EQUALS_OP, 0);
	}
	public expression(): ExpressionContext {
		return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext;
	}
	public UPDATE(): TerminalNode {
		return this.getToken(PlSqlParser.UPDATE, 0);
	}
	public UPSERT(): TerminalNode {
		return this.getToken(PlSqlParser.UPSERT, 0);
	}
	public order_by_clause(): Order_by_clauseContext {
		return this.getTypedRuleContext(Order_by_clauseContext, 0) as Order_by_clauseContext;
	}
	public ALL(): TerminalNode {
		return this.getToken(PlSqlParser.ALL, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_model_rules_element;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterModel_rules_element) {
	 		listener.enterModel_rules_element(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitModel_rules_element) {
	 		listener.exitModel_rules_element(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitModel_rules_element) {
			return visitor.visitModel_rules_element(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Cell_assignmentContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public model_expression(): Model_expressionContext {
		return this.getTypedRuleContext(Model_expressionContext, 0) as Model_expressionContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_cell_assignment;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterCell_assignment) {
	 		listener.enterCell_assignment(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitCell_assignment) {
	 		listener.exitCell_assignment(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitCell_assignment) {
			return visitor.visitCell_assignment(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Model_iterate_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public ITERATE(): TerminalNode {
		return this.getToken(PlSqlParser.ITERATE, 0);
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public expression(): ExpressionContext {
		return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public until_part(): Until_partContext {
		return this.getTypedRuleContext(Until_partContext, 0) as Until_partContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_model_iterate_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterModel_iterate_clause) {
	 		listener.enterModel_iterate_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitModel_iterate_clause) {
	 		listener.exitModel_iterate_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitModel_iterate_clause) {
			return visitor.visitModel_iterate_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Until_partContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public UNTIL(): TerminalNode {
		return this.getToken(PlSqlParser.UNTIL, 0);
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public condition(): ConditionContext {
		return this.getTypedRuleContext(ConditionContext, 0) as ConditionContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_until_part;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterUntil_part) {
	 		listener.enterUntil_part(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitUntil_part) {
	 		listener.exitUntil_part(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitUntil_part) {
			return visitor.visitUntil_part(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Order_by_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public ORDER(): TerminalNode {
		return this.getToken(PlSqlParser.ORDER, 0);
	}
	public BY(): TerminalNode {
		return this.getToken(PlSqlParser.BY, 0);
	}
	public order_by_elements_list(): Order_by_elementsContext[] {
		return this.getTypedRuleContexts(Order_by_elementsContext) as Order_by_elementsContext[];
	}
	public order_by_elements(i: number): Order_by_elementsContext {
		return this.getTypedRuleContext(Order_by_elementsContext, i) as Order_by_elementsContext;
	}
	public SIBLINGS(): TerminalNode {
		return this.getToken(PlSqlParser.SIBLINGS, 0);
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_order_by_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterOrder_by_clause) {
	 		listener.enterOrder_by_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitOrder_by_clause) {
	 		listener.exitOrder_by_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitOrder_by_clause) {
			return visitor.visitOrder_by_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Order_by_elementsContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public expression(): ExpressionContext {
		return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext;
	}
	public NULLS(): TerminalNode {
		return this.getToken(PlSqlParser.NULLS, 0);
	}
	public ASC(): TerminalNode {
		return this.getToken(PlSqlParser.ASC, 0);
	}
	public DESC(): TerminalNode {
		return this.getToken(PlSqlParser.DESC, 0);
	}
	public FIRST(): TerminalNode {
		return this.getToken(PlSqlParser.FIRST, 0);
	}
	public LAST(): TerminalNode {
		return this.getToken(PlSqlParser.LAST, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_order_by_elements;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterOrder_by_elements) {
	 		listener.enterOrder_by_elements(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitOrder_by_elements) {
	 		listener.exitOrder_by_elements(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitOrder_by_elements) {
			return visitor.visitOrder_by_elements(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Offset_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public OFFSET(): TerminalNode {
		return this.getToken(PlSqlParser.OFFSET, 0);
	}
	public expression(): ExpressionContext {
		return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext;
	}
	public ROW(): TerminalNode {
		return this.getToken(PlSqlParser.ROW, 0);
	}
	public ROWS(): TerminalNode {
		return this.getToken(PlSqlParser.ROWS, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_offset_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterOffset_clause) {
	 		listener.enterOffset_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitOffset_clause) {
	 		listener.exitOffset_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitOffset_clause) {
			return visitor.visitOffset_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Fetch_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public FETCH(): TerminalNode {
		return this.getToken(PlSqlParser.FETCH, 0);
	}
	public FIRST(): TerminalNode {
		return this.getToken(PlSqlParser.FIRST, 0);
	}
	public NEXT(): TerminalNode {
		return this.getToken(PlSqlParser.NEXT, 0);
	}
	public ROW(): TerminalNode {
		return this.getToken(PlSqlParser.ROW, 0);
	}
	public ROWS(): TerminalNode {
		return this.getToken(PlSqlParser.ROWS, 0);
	}
	public ONLY(): TerminalNode {
		return this.getToken(PlSqlParser.ONLY, 0);
	}
	public WITH(): TerminalNode {
		return this.getToken(PlSqlParser.WITH, 0);
	}
	public TIES(): TerminalNode {
		return this.getToken(PlSqlParser.TIES, 0);
	}
	public expression(): ExpressionContext {
		return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext;
	}
	public PERCENT_KEYWORD(): TerminalNode {
		return this.getToken(PlSqlParser.PERCENT_KEYWORD, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_fetch_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterFetch_clause) {
	 		listener.enterFetch_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitFetch_clause) {
	 		listener.exitFetch_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitFetch_clause) {
			return visitor.visitFetch_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class For_update_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public FOR(): TerminalNode {
		return this.getToken(PlSqlParser.FOR, 0);
	}
	public UPDATE(): TerminalNode {
		return this.getToken(PlSqlParser.UPDATE, 0);
	}
	public for_update_of_part(): For_update_of_partContext {
		return this.getTypedRuleContext(For_update_of_partContext, 0) as For_update_of_partContext;
	}
	public for_update_options(): For_update_optionsContext {
		return this.getTypedRuleContext(For_update_optionsContext, 0) as For_update_optionsContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_for_update_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterFor_update_clause) {
	 		listener.enterFor_update_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitFor_update_clause) {
	 		listener.exitFor_update_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitFor_update_clause) {
			return visitor.visitFor_update_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class For_update_of_partContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public OF(): TerminalNode {
		return this.getToken(PlSqlParser.OF, 0);
	}
	public column_list(): Column_listContext {
		return this.getTypedRuleContext(Column_listContext, 0) as Column_listContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_for_update_of_part;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterFor_update_of_part) {
	 		listener.enterFor_update_of_part(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitFor_update_of_part) {
	 		listener.exitFor_update_of_part(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitFor_update_of_part) {
			return visitor.visitFor_update_of_part(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class For_update_optionsContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public SKIP_(): TerminalNode {
		return this.getToken(PlSqlParser.SKIP_, 0);
	}
	public LOCKED(): TerminalNode {
		return this.getToken(PlSqlParser.LOCKED, 0);
	}
	public NOWAIT(): TerminalNode {
		return this.getToken(PlSqlParser.NOWAIT, 0);
	}
	public WAIT(): TerminalNode {
		return this.getToken(PlSqlParser.WAIT, 0);
	}
	public expression(): ExpressionContext {
		return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_for_update_options;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterFor_update_options) {
	 		listener.enterFor_update_options(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitFor_update_options) {
	 		listener.exitFor_update_options(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitFor_update_options) {
			return visitor.visitFor_update_options(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Update_statementContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public UPDATE(): TerminalNode {
		return this.getToken(PlSqlParser.UPDATE, 0);
	}
	public general_table_ref(): General_table_refContext {
		return this.getTypedRuleContext(General_table_refContext, 0) as General_table_refContext;
	}
	public update_set_clause(): Update_set_clauseContext {
		return this.getTypedRuleContext(Update_set_clauseContext, 0) as Update_set_clauseContext;
	}
	public where_clause(): Where_clauseContext {
		return this.getTypedRuleContext(Where_clauseContext, 0) as Where_clauseContext;
	}
	public static_returning_clause(): Static_returning_clauseContext {
		return this.getTypedRuleContext(Static_returning_clauseContext, 0) as Static_returning_clauseContext;
	}
	public error_logging_clause(): Error_logging_clauseContext {
		return this.getTypedRuleContext(Error_logging_clauseContext, 0) as Error_logging_clauseContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_update_statement;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterUpdate_statement) {
	 		listener.enterUpdate_statement(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitUpdate_statement) {
	 		listener.exitUpdate_statement(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitUpdate_statement) {
			return visitor.visitUpdate_statement(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Update_set_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public SET(): TerminalNode {
		return this.getToken(PlSqlParser.SET, 0);
	}
	public column_based_update_set_clause_list(): Column_based_update_set_clauseContext[] {
		return this.getTypedRuleContexts(Column_based_update_set_clauseContext) as Column_based_update_set_clauseContext[];
	}
	public column_based_update_set_clause(i: number): Column_based_update_set_clauseContext {
		return this.getTypedRuleContext(Column_based_update_set_clauseContext, i) as Column_based_update_set_clauseContext;
	}
	public VALUE(): TerminalNode {
		return this.getToken(PlSqlParser.VALUE, 0);
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public identifier(): IdentifierContext {
		return this.getTypedRuleContext(IdentifierContext, 0) as IdentifierContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public EQUALS_OP(): TerminalNode {
		return this.getToken(PlSqlParser.EQUALS_OP, 0);
	}
	public expression(): ExpressionContext {
		return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext;
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_update_set_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterUpdate_set_clause) {
	 		listener.enterUpdate_set_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitUpdate_set_clause) {
	 		listener.exitUpdate_set_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitUpdate_set_clause) {
			return visitor.visitUpdate_set_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Column_based_update_set_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public column_name(): Column_nameContext {
		return this.getTypedRuleContext(Column_nameContext, 0) as Column_nameContext;
	}
	public EQUALS_OP(): TerminalNode {
		return this.getToken(PlSqlParser.EQUALS_OP, 0);
	}
	public expression(): ExpressionContext {
		return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext;
	}
	public paren_column_list(): Paren_column_listContext {
		return this.getTypedRuleContext(Paren_column_listContext, 0) as Paren_column_listContext;
	}
	public subquery(): SubqueryContext {
		return this.getTypedRuleContext(SubqueryContext, 0) as SubqueryContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_column_based_update_set_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterColumn_based_update_set_clause) {
	 		listener.enterColumn_based_update_set_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitColumn_based_update_set_clause) {
	 		listener.exitColumn_based_update_set_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitColumn_based_update_set_clause) {
			return visitor.visitColumn_based_update_set_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Delete_statementContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public DELETE(): TerminalNode {
		return this.getToken(PlSqlParser.DELETE, 0);
	}
	public general_table_ref(): General_table_refContext {
		return this.getTypedRuleContext(General_table_refContext, 0) as General_table_refContext;
	}
	public FROM(): TerminalNode {
		return this.getToken(PlSqlParser.FROM, 0);
	}
	public where_clause(): Where_clauseContext {
		return this.getTypedRuleContext(Where_clauseContext, 0) as Where_clauseContext;
	}
	public static_returning_clause(): Static_returning_clauseContext {
		return this.getTypedRuleContext(Static_returning_clauseContext, 0) as Static_returning_clauseContext;
	}
	public error_logging_clause(): Error_logging_clauseContext {
		return this.getTypedRuleContext(Error_logging_clauseContext, 0) as Error_logging_clauseContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_delete_statement;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterDelete_statement) {
	 		listener.enterDelete_statement(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitDelete_statement) {
	 		listener.exitDelete_statement(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitDelete_statement) {
			return visitor.visitDelete_statement(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Insert_statementContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public INSERT(): TerminalNode {
		return this.getToken(PlSqlParser.INSERT, 0);
	}
	public single_table_insert(): Single_table_insertContext {
		return this.getTypedRuleContext(Single_table_insertContext, 0) as Single_table_insertContext;
	}
	public multi_table_insert(): Multi_table_insertContext {
		return this.getTypedRuleContext(Multi_table_insertContext, 0) as Multi_table_insertContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_insert_statement;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterInsert_statement) {
	 		listener.enterInsert_statement(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitInsert_statement) {
	 		listener.exitInsert_statement(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitInsert_statement) {
			return visitor.visitInsert_statement(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Single_table_insertContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public insert_into_clause(): Insert_into_clauseContext {
		return this.getTypedRuleContext(Insert_into_clauseContext, 0) as Insert_into_clauseContext;
	}
	public values_clause(): Values_clauseContext {
		return this.getTypedRuleContext(Values_clauseContext, 0) as Values_clauseContext;
	}
	public select_statement(): Select_statementContext {
		return this.getTypedRuleContext(Select_statementContext, 0) as Select_statementContext;
	}
	public error_logging_clause(): Error_logging_clauseContext {
		return this.getTypedRuleContext(Error_logging_clauseContext, 0) as Error_logging_clauseContext;
	}
	public static_returning_clause(): Static_returning_clauseContext {
		return this.getTypedRuleContext(Static_returning_clauseContext, 0) as Static_returning_clauseContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_single_table_insert;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterSingle_table_insert) {
	 		listener.enterSingle_table_insert(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitSingle_table_insert) {
	 		listener.exitSingle_table_insert(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitSingle_table_insert) {
			return visitor.visitSingle_table_insert(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Multi_table_insertContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public select_statement(): Select_statementContext {
		return this.getTypedRuleContext(Select_statementContext, 0) as Select_statementContext;
	}
	public ALL(): TerminalNode {
		return this.getToken(PlSqlParser.ALL, 0);
	}
	public conditional_insert_clause(): Conditional_insert_clauseContext {
		return this.getTypedRuleContext(Conditional_insert_clauseContext, 0) as Conditional_insert_clauseContext;
	}
	public multi_table_element_list(): Multi_table_elementContext[] {
		return this.getTypedRuleContexts(Multi_table_elementContext) as Multi_table_elementContext[];
	}
	public multi_table_element(i: number): Multi_table_elementContext {
		return this.getTypedRuleContext(Multi_table_elementContext, i) as Multi_table_elementContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_multi_table_insert;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterMulti_table_insert) {
	 		listener.enterMulti_table_insert(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitMulti_table_insert) {
	 		listener.exitMulti_table_insert(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitMulti_table_insert) {
			return visitor.visitMulti_table_insert(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Multi_table_elementContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public insert_into_clause(): Insert_into_clauseContext {
		return this.getTypedRuleContext(Insert_into_clauseContext, 0) as Insert_into_clauseContext;
	}
	public values_clause(): Values_clauseContext {
		return this.getTypedRuleContext(Values_clauseContext, 0) as Values_clauseContext;
	}
	public error_logging_clause(): Error_logging_clauseContext {
		return this.getTypedRuleContext(Error_logging_clauseContext, 0) as Error_logging_clauseContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_multi_table_element;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterMulti_table_element) {
	 		listener.enterMulti_table_element(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitMulti_table_element) {
	 		listener.exitMulti_table_element(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitMulti_table_element) {
			return visitor.visitMulti_table_element(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Conditional_insert_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public conditional_insert_when_part_list(): Conditional_insert_when_partContext[] {
		return this.getTypedRuleContexts(Conditional_insert_when_partContext) as Conditional_insert_when_partContext[];
	}
	public conditional_insert_when_part(i: number): Conditional_insert_when_partContext {
		return this.getTypedRuleContext(Conditional_insert_when_partContext, i) as Conditional_insert_when_partContext;
	}
	public conditional_insert_else_part(): Conditional_insert_else_partContext {
		return this.getTypedRuleContext(Conditional_insert_else_partContext, 0) as Conditional_insert_else_partContext;
	}
	public ALL(): TerminalNode {
		return this.getToken(PlSqlParser.ALL, 0);
	}
	public FIRST(): TerminalNode {
		return this.getToken(PlSqlParser.FIRST, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_conditional_insert_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterConditional_insert_clause) {
	 		listener.enterConditional_insert_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitConditional_insert_clause) {
	 		listener.exitConditional_insert_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitConditional_insert_clause) {
			return visitor.visitConditional_insert_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Conditional_insert_when_partContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public WHEN(): TerminalNode {
		return this.getToken(PlSqlParser.WHEN, 0);
	}
	public condition(): ConditionContext {
		return this.getTypedRuleContext(ConditionContext, 0) as ConditionContext;
	}
	public THEN(): TerminalNode {
		return this.getToken(PlSqlParser.THEN, 0);
	}
	public multi_table_element_list(): Multi_table_elementContext[] {
		return this.getTypedRuleContexts(Multi_table_elementContext) as Multi_table_elementContext[];
	}
	public multi_table_element(i: number): Multi_table_elementContext {
		return this.getTypedRuleContext(Multi_table_elementContext, i) as Multi_table_elementContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_conditional_insert_when_part;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterConditional_insert_when_part) {
	 		listener.enterConditional_insert_when_part(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitConditional_insert_when_part) {
	 		listener.exitConditional_insert_when_part(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitConditional_insert_when_part) {
			return visitor.visitConditional_insert_when_part(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Conditional_insert_else_partContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public ELSE(): TerminalNode {
		return this.getToken(PlSqlParser.ELSE, 0);
	}
	public multi_table_element_list(): Multi_table_elementContext[] {
		return this.getTypedRuleContexts(Multi_table_elementContext) as Multi_table_elementContext[];
	}
	public multi_table_element(i: number): Multi_table_elementContext {
		return this.getTypedRuleContext(Multi_table_elementContext, i) as Multi_table_elementContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_conditional_insert_else_part;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterConditional_insert_else_part) {
	 		listener.enterConditional_insert_else_part(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitConditional_insert_else_part) {
	 		listener.exitConditional_insert_else_part(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitConditional_insert_else_part) {
			return visitor.visitConditional_insert_else_part(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Insert_into_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public INTO(): TerminalNode {
		return this.getToken(PlSqlParser.INTO, 0);
	}
	public general_table_ref(): General_table_refContext {
		return this.getTypedRuleContext(General_table_refContext, 0) as General_table_refContext;
	}
	public paren_column_list(): Paren_column_listContext {
		return this.getTypedRuleContext(Paren_column_listContext, 0) as Paren_column_listContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_insert_into_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterInsert_into_clause) {
	 		listener.enterInsert_into_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitInsert_into_clause) {
	 		listener.exitInsert_into_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitInsert_into_clause) {
			return visitor.visitInsert_into_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Values_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public VALUES(): TerminalNode {
		return this.getToken(PlSqlParser.VALUES, 0);
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public expressions(): ExpressionsContext {
		return this.getTypedRuleContext(ExpressionsContext, 0) as ExpressionsContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_values_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterValues_clause) {
	 		listener.enterValues_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitValues_clause) {
	 		listener.exitValues_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitValues_clause) {
			return visitor.visitValues_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Merge_statementContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public MERGE(): TerminalNode {
		return this.getToken(PlSqlParser.MERGE, 0);
	}
	public INTO(): TerminalNode {
		return this.getToken(PlSqlParser.INTO, 0);
	}
	public tableview_name(): Tableview_nameContext {
		return this.getTypedRuleContext(Tableview_nameContext, 0) as Tableview_nameContext;
	}
	public USING(): TerminalNode {
		return this.getToken(PlSqlParser.USING, 0);
	}
	public selected_tableview(): Selected_tableviewContext {
		return this.getTypedRuleContext(Selected_tableviewContext, 0) as Selected_tableviewContext;
	}
	public ON(): TerminalNode {
		return this.getToken(PlSqlParser.ON, 0);
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public condition(): ConditionContext {
		return this.getTypedRuleContext(ConditionContext, 0) as ConditionContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public table_alias(): Table_aliasContext {
		return this.getTypedRuleContext(Table_aliasContext, 0) as Table_aliasContext;
	}
	public merge_update_clause(): Merge_update_clauseContext {
		return this.getTypedRuleContext(Merge_update_clauseContext, 0) as Merge_update_clauseContext;
	}
	public merge_insert_clause(): Merge_insert_clauseContext {
		return this.getTypedRuleContext(Merge_insert_clauseContext, 0) as Merge_insert_clauseContext;
	}
	public error_logging_clause(): Error_logging_clauseContext {
		return this.getTypedRuleContext(Error_logging_clauseContext, 0) as Error_logging_clauseContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_merge_statement;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterMerge_statement) {
	 		listener.enterMerge_statement(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitMerge_statement) {
	 		listener.exitMerge_statement(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitMerge_statement) {
			return visitor.visitMerge_statement(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Merge_update_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public WHEN(): TerminalNode {
		return this.getToken(PlSqlParser.WHEN, 0);
	}
	public MATCHED(): TerminalNode {
		return this.getToken(PlSqlParser.MATCHED, 0);
	}
	public THEN(): TerminalNode {
		return this.getToken(PlSqlParser.THEN, 0);
	}
	public UPDATE(): TerminalNode {
		return this.getToken(PlSqlParser.UPDATE, 0);
	}
	public SET(): TerminalNode {
		return this.getToken(PlSqlParser.SET, 0);
	}
	public merge_element_list(): Merge_elementContext[] {
		return this.getTypedRuleContexts(Merge_elementContext) as Merge_elementContext[];
	}
	public merge_element(i: number): Merge_elementContext {
		return this.getTypedRuleContext(Merge_elementContext, i) as Merge_elementContext;
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
	public where_clause(): Where_clauseContext {
		return this.getTypedRuleContext(Where_clauseContext, 0) as Where_clauseContext;
	}
	public merge_update_delete_part(): Merge_update_delete_partContext {
		return this.getTypedRuleContext(Merge_update_delete_partContext, 0) as Merge_update_delete_partContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_merge_update_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterMerge_update_clause) {
	 		listener.enterMerge_update_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitMerge_update_clause) {
	 		listener.exitMerge_update_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitMerge_update_clause) {
			return visitor.visitMerge_update_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Merge_elementContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public column_name(): Column_nameContext {
		return this.getTypedRuleContext(Column_nameContext, 0) as Column_nameContext;
	}
	public EQUALS_OP(): TerminalNode {
		return this.getToken(PlSqlParser.EQUALS_OP, 0);
	}
	public expression(): ExpressionContext {
		return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_merge_element;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterMerge_element) {
	 		listener.enterMerge_element(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitMerge_element) {
	 		listener.exitMerge_element(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitMerge_element) {
			return visitor.visitMerge_element(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Merge_update_delete_partContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public DELETE(): TerminalNode {
		return this.getToken(PlSqlParser.DELETE, 0);
	}
	public where_clause(): Where_clauseContext {
		return this.getTypedRuleContext(Where_clauseContext, 0) as Where_clauseContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_merge_update_delete_part;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterMerge_update_delete_part) {
	 		listener.enterMerge_update_delete_part(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitMerge_update_delete_part) {
	 		listener.exitMerge_update_delete_part(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitMerge_update_delete_part) {
			return visitor.visitMerge_update_delete_part(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Merge_insert_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public WHEN(): TerminalNode {
		return this.getToken(PlSqlParser.WHEN, 0);
	}
	public NOT(): TerminalNode {
		return this.getToken(PlSqlParser.NOT, 0);
	}
	public MATCHED(): TerminalNode {
		return this.getToken(PlSqlParser.MATCHED, 0);
	}
	public THEN(): TerminalNode {
		return this.getToken(PlSqlParser.THEN, 0);
	}
	public INSERT(): TerminalNode {
		return this.getToken(PlSqlParser.INSERT, 0);
	}
	public VALUES(): TerminalNode {
		return this.getToken(PlSqlParser.VALUES, 0);
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public paren_column_list(): Paren_column_listContext {
		return this.getTypedRuleContext(Paren_column_listContext, 0) as Paren_column_listContext;
	}
	public expressions(): ExpressionsContext {
		return this.getTypedRuleContext(ExpressionsContext, 0) as ExpressionsContext;
	}
	public where_clause(): Where_clauseContext {
		return this.getTypedRuleContext(Where_clauseContext, 0) as Where_clauseContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_merge_insert_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterMerge_insert_clause) {
	 		listener.enterMerge_insert_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitMerge_insert_clause) {
	 		listener.exitMerge_insert_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitMerge_insert_clause) {
			return visitor.visitMerge_insert_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Selected_tableviewContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public tableview_name(): Tableview_nameContext {
		return this.getTypedRuleContext(Tableview_nameContext, 0) as Tableview_nameContext;
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public select_statement(): Select_statementContext {
		return this.getTypedRuleContext(Select_statementContext, 0) as Select_statementContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public table_alias(): Table_aliasContext {
		return this.getTypedRuleContext(Table_aliasContext, 0) as Table_aliasContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_selected_tableview;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterSelected_tableview) {
	 		listener.enterSelected_tableview(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitSelected_tableview) {
	 		listener.exitSelected_tableview(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitSelected_tableview) {
			return visitor.visitSelected_tableview(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Lock_table_statementContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public LOCK(): TerminalNode {
		return this.getToken(PlSqlParser.LOCK, 0);
	}
	public TABLE(): TerminalNode {
		return this.getToken(PlSqlParser.TABLE, 0);
	}
	public lock_table_element_list(): Lock_table_elementContext[] {
		return this.getTypedRuleContexts(Lock_table_elementContext) as Lock_table_elementContext[];
	}
	public lock_table_element(i: number): Lock_table_elementContext {
		return this.getTypedRuleContext(Lock_table_elementContext, i) as Lock_table_elementContext;
	}
	public IN(): TerminalNode {
		return this.getToken(PlSqlParser.IN, 0);
	}
	public lock_mode(): Lock_modeContext {
		return this.getTypedRuleContext(Lock_modeContext, 0) as Lock_modeContext;
	}
	public MODE(): TerminalNode {
		return this.getToken(PlSqlParser.MODE, 0);
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
	public wait_nowait_part(): Wait_nowait_partContext {
		return this.getTypedRuleContext(Wait_nowait_partContext, 0) as Wait_nowait_partContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_lock_table_statement;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterLock_table_statement) {
	 		listener.enterLock_table_statement(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitLock_table_statement) {
	 		listener.exitLock_table_statement(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitLock_table_statement) {
			return visitor.visitLock_table_statement(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Wait_nowait_partContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public WAIT(): TerminalNode {
		return this.getToken(PlSqlParser.WAIT, 0);
	}
	public expression(): ExpressionContext {
		return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext;
	}
	public NOWAIT(): TerminalNode {
		return this.getToken(PlSqlParser.NOWAIT, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_wait_nowait_part;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterWait_nowait_part) {
	 		listener.enterWait_nowait_part(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitWait_nowait_part) {
	 		listener.exitWait_nowait_part(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitWait_nowait_part) {
			return visitor.visitWait_nowait_part(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Lock_table_elementContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public tableview_name(): Tableview_nameContext {
		return this.getTypedRuleContext(Tableview_nameContext, 0) as Tableview_nameContext;
	}
	public partition_extension_clause(): Partition_extension_clauseContext {
		return this.getTypedRuleContext(Partition_extension_clauseContext, 0) as Partition_extension_clauseContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_lock_table_element;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterLock_table_element) {
	 		listener.enterLock_table_element(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitLock_table_element) {
	 		listener.exitLock_table_element(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitLock_table_element) {
			return visitor.visitLock_table_element(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Lock_modeContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public ROW(): TerminalNode {
		return this.getToken(PlSqlParser.ROW, 0);
	}
	public SHARE(): TerminalNode {
		return this.getToken(PlSqlParser.SHARE, 0);
	}
	public EXCLUSIVE(): TerminalNode {
		return this.getToken(PlSqlParser.EXCLUSIVE, 0);
	}
	public UPDATE(): TerminalNode {
		return this.getToken(PlSqlParser.UPDATE, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_lock_mode;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterLock_mode) {
	 		listener.enterLock_mode(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitLock_mode) {
	 		listener.exitLock_mode(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitLock_mode) {
			return visitor.visitLock_mode(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class General_table_refContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public dml_table_expression_clause(): Dml_table_expression_clauseContext {
		return this.getTypedRuleContext(Dml_table_expression_clauseContext, 0) as Dml_table_expression_clauseContext;
	}
	public ONLY(): TerminalNode {
		return this.getToken(PlSqlParser.ONLY, 0);
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public table_alias(): Table_aliasContext {
		return this.getTypedRuleContext(Table_aliasContext, 0) as Table_aliasContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_general_table_ref;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterGeneral_table_ref) {
	 		listener.enterGeneral_table_ref(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitGeneral_table_ref) {
	 		listener.exitGeneral_table_ref(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitGeneral_table_ref) {
			return visitor.visitGeneral_table_ref(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Static_returning_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public expressions(): ExpressionsContext {
		return this.getTypedRuleContext(ExpressionsContext, 0) as ExpressionsContext;
	}
	public into_clause(): Into_clauseContext {
		return this.getTypedRuleContext(Into_clauseContext, 0) as Into_clauseContext;
	}
	public RETURNING(): TerminalNode {
		return this.getToken(PlSqlParser.RETURNING, 0);
	}
	public RETURN(): TerminalNode {
		return this.getToken(PlSqlParser.RETURN, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_static_returning_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterStatic_returning_clause) {
	 		listener.enterStatic_returning_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitStatic_returning_clause) {
	 		listener.exitStatic_returning_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitStatic_returning_clause) {
			return visitor.visitStatic_returning_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Error_logging_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public LOG(): TerminalNode {
		return this.getToken(PlSqlParser.LOG, 0);
	}
	public ERRORS(): TerminalNode {
		return this.getToken(PlSqlParser.ERRORS, 0);
	}
	public error_logging_into_part(): Error_logging_into_partContext {
		return this.getTypedRuleContext(Error_logging_into_partContext, 0) as Error_logging_into_partContext;
	}
	public expression(): ExpressionContext {
		return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext;
	}
	public error_logging_reject_part(): Error_logging_reject_partContext {
		return this.getTypedRuleContext(Error_logging_reject_partContext, 0) as Error_logging_reject_partContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_error_logging_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterError_logging_clause) {
	 		listener.enterError_logging_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitError_logging_clause) {
	 		listener.exitError_logging_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitError_logging_clause) {
			return visitor.visitError_logging_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Error_logging_into_partContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public INTO(): TerminalNode {
		return this.getToken(PlSqlParser.INTO, 0);
	}
	public tableview_name(): Tableview_nameContext {
		return this.getTypedRuleContext(Tableview_nameContext, 0) as Tableview_nameContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_error_logging_into_part;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterError_logging_into_part) {
	 		listener.enterError_logging_into_part(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitError_logging_into_part) {
	 		listener.exitError_logging_into_part(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitError_logging_into_part) {
			return visitor.visitError_logging_into_part(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Error_logging_reject_partContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public REJECT(): TerminalNode {
		return this.getToken(PlSqlParser.REJECT, 0);
	}
	public LIMIT(): TerminalNode {
		return this.getToken(PlSqlParser.LIMIT, 0);
	}
	public UNLIMITED(): TerminalNode {
		return this.getToken(PlSqlParser.UNLIMITED, 0);
	}
	public expression(): ExpressionContext {
		return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_error_logging_reject_part;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterError_logging_reject_part) {
	 		listener.enterError_logging_reject_part(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitError_logging_reject_part) {
	 		listener.exitError_logging_reject_part(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitError_logging_reject_part) {
			return visitor.visitError_logging_reject_part(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Dml_table_expression_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public table_collection_expression(): Table_collection_expressionContext {
		return this.getTypedRuleContext(Table_collection_expressionContext, 0) as Table_collection_expressionContext;
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public select_statement(): Select_statementContext {
		return this.getTypedRuleContext(Select_statementContext, 0) as Select_statementContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public subquery_restriction_clause(): Subquery_restriction_clauseContext {
		return this.getTypedRuleContext(Subquery_restriction_clauseContext, 0) as Subquery_restriction_clauseContext;
	}
	public tableview_name(): Tableview_nameContext {
		return this.getTypedRuleContext(Tableview_nameContext, 0) as Tableview_nameContext;
	}
	public sample_clause(): Sample_clauseContext {
		return this.getTypedRuleContext(Sample_clauseContext, 0) as Sample_clauseContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_dml_table_expression_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterDml_table_expression_clause) {
	 		listener.enterDml_table_expression_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitDml_table_expression_clause) {
	 		listener.exitDml_table_expression_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitDml_table_expression_clause) {
			return visitor.visitDml_table_expression_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Table_collection_expressionContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public TABLE(): TerminalNode {
		return this.getToken(PlSqlParser.TABLE, 0);
	}
	public THE(): TerminalNode {
		return this.getToken(PlSqlParser.THE, 0);
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public subquery(): SubqueryContext {
		return this.getTypedRuleContext(SubqueryContext, 0) as SubqueryContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public expression(): ExpressionContext {
		return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext;
	}
	public outer_join_sign(): Outer_join_signContext {
		return this.getTypedRuleContext(Outer_join_signContext, 0) as Outer_join_signContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_table_collection_expression;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterTable_collection_expression) {
	 		listener.enterTable_collection_expression(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitTable_collection_expression) {
	 		listener.exitTable_collection_expression(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitTable_collection_expression) {
			return visitor.visitTable_collection_expression(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Subquery_restriction_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public WITH(): TerminalNode {
		return this.getToken(PlSqlParser.WITH, 0);
	}
	public READ(): TerminalNode {
		return this.getToken(PlSqlParser.READ, 0);
	}
	public ONLY(): TerminalNode {
		return this.getToken(PlSqlParser.ONLY, 0);
	}
	public CHECK(): TerminalNode {
		return this.getToken(PlSqlParser.CHECK, 0);
	}
	public OPTION(): TerminalNode {
		return this.getToken(PlSqlParser.OPTION, 0);
	}
	public CONSTRAINT(): TerminalNode {
		return this.getToken(PlSqlParser.CONSTRAINT, 0);
	}
	public constraint_name(): Constraint_nameContext {
		return this.getTypedRuleContext(Constraint_nameContext, 0) as Constraint_nameContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_subquery_restriction_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterSubquery_restriction_clause) {
	 		listener.enterSubquery_restriction_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitSubquery_restriction_clause) {
	 		listener.exitSubquery_restriction_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitSubquery_restriction_clause) {
			return visitor.visitSubquery_restriction_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Sample_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public SAMPLE(): TerminalNode {
		return this.getToken(PlSqlParser.SAMPLE, 0);
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public expression_list(): ExpressionContext[] {
		return this.getTypedRuleContexts(ExpressionContext) as ExpressionContext[];
	}
	public expression(i: number): ExpressionContext {
		return this.getTypedRuleContext(ExpressionContext, i) as ExpressionContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public BLOCK(): TerminalNode {
		return this.getToken(PlSqlParser.BLOCK, 0);
	}
	public COMMA(): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, 0);
	}
	public seed_part(): Seed_partContext {
		return this.getTypedRuleContext(Seed_partContext, 0) as Seed_partContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_sample_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterSample_clause) {
	 		listener.enterSample_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitSample_clause) {
	 		listener.exitSample_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitSample_clause) {
			return visitor.visitSample_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Seed_partContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public SEED(): TerminalNode {
		return this.getToken(PlSqlParser.SEED, 0);
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public expression(): ExpressionContext {
		return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_seed_part;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterSeed_part) {
	 		listener.enterSeed_part(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitSeed_part) {
	 		listener.exitSeed_part(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitSeed_part) {
			return visitor.visitSeed_part(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class ConditionContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public expression(): ExpressionContext {
		return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_condition;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterCondition) {
	 		listener.enterCondition(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitCondition) {
	 		listener.exitCondition(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitCondition) {
			return visitor.visitCondition(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class ExpressionsContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public expression_list(): ExpressionContext[] {
		return this.getTypedRuleContexts(ExpressionContext) as ExpressionContext[];
	}
	public expression(i: number): ExpressionContext {
		return this.getTypedRuleContext(ExpressionContext, i) as ExpressionContext;
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_expressions;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterExpressions) {
	 		listener.enterExpressions(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitExpressions) {
	 		listener.exitExpressions(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitExpressions) {
			return visitor.visitExpressions(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class ExpressionContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public cursor_expression(): Cursor_expressionContext {
		return this.getTypedRuleContext(Cursor_expressionContext, 0) as Cursor_expressionContext;
	}
	public logical_expression(): Logical_expressionContext {
		return this.getTypedRuleContext(Logical_expressionContext, 0) as Logical_expressionContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_expression;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterExpression) {
	 		listener.enterExpression(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitExpression) {
	 		listener.exitExpression(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitExpression) {
			return visitor.visitExpression(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Cursor_expressionContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public CURSOR(): TerminalNode {
		return this.getToken(PlSqlParser.CURSOR, 0);
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public subquery(): SubqueryContext {
		return this.getTypedRuleContext(SubqueryContext, 0) as SubqueryContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_cursor_expression;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterCursor_expression) {
	 		listener.enterCursor_expression(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitCursor_expression) {
	 		listener.exitCursor_expression(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitCursor_expression) {
			return visitor.visitCursor_expression(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Logical_expressionContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public unary_logical_expression(): Unary_logical_expressionContext {
		return this.getTypedRuleContext(Unary_logical_expressionContext, 0) as Unary_logical_expressionContext;
	}
	public logical_expression_list(): Logical_expressionContext[] {
		return this.getTypedRuleContexts(Logical_expressionContext) as Logical_expressionContext[];
	}
	public logical_expression(i: number): Logical_expressionContext {
		return this.getTypedRuleContext(Logical_expressionContext, i) as Logical_expressionContext;
	}
	public AND(): TerminalNode {
		return this.getToken(PlSqlParser.AND, 0);
	}
	public OR(): TerminalNode {
		return this.getToken(PlSqlParser.OR, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_logical_expression;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterLogical_expression) {
	 		listener.enterLogical_expression(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitLogical_expression) {
	 		listener.exitLogical_expression(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitLogical_expression) {
			return visitor.visitLogical_expression(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Unary_logical_expressionContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public multiset_expression(): Multiset_expressionContext {
		return this.getTypedRuleContext(Multiset_expressionContext, 0) as Multiset_expressionContext;
	}
	public NOT_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.NOT);
	}
	public NOT(i: number): TerminalNode {
		return this.getToken(PlSqlParser.NOT, i);
	}
	public IS_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.IS);
	}
	public IS(i: number): TerminalNode {
		return this.getToken(PlSqlParser.IS, i);
	}
	public logical_operation_list(): Logical_operationContext[] {
		return this.getTypedRuleContexts(Logical_operationContext) as Logical_operationContext[];
	}
	public logical_operation(i: number): Logical_operationContext {
		return this.getTypedRuleContext(Logical_operationContext, i) as Logical_operationContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_unary_logical_expression;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterUnary_logical_expression) {
	 		listener.enterUnary_logical_expression(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitUnary_logical_expression) {
	 		listener.exitUnary_logical_expression(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitUnary_logical_expression) {
			return visitor.visitUnary_logical_expression(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Logical_operationContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public NULL_(): TerminalNode {
		return this.getToken(PlSqlParser.NULL_, 0);
	}
	public NAN(): TerminalNode {
		return this.getToken(PlSqlParser.NAN, 0);
	}
	public PRESENT(): TerminalNode {
		return this.getToken(PlSqlParser.PRESENT, 0);
	}
	public INFINITE(): TerminalNode {
		return this.getToken(PlSqlParser.INFINITE, 0);
	}
	public A_LETTER(): TerminalNode {
		return this.getToken(PlSqlParser.A_LETTER, 0);
	}
	public SET(): TerminalNode {
		return this.getToken(PlSqlParser.SET, 0);
	}
	public EMPTY(): TerminalNode {
		return this.getToken(PlSqlParser.EMPTY, 0);
	}
	public OF(): TerminalNode {
		return this.getToken(PlSqlParser.OF, 0);
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public type_spec_list(): Type_specContext[] {
		return this.getTypedRuleContexts(Type_specContext) as Type_specContext[];
	}
	public type_spec(i: number): Type_specContext {
		return this.getTypedRuleContext(Type_specContext, i) as Type_specContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public TYPE(): TerminalNode {
		return this.getToken(PlSqlParser.TYPE, 0);
	}
	public ONLY(): TerminalNode {
		return this.getToken(PlSqlParser.ONLY, 0);
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_logical_operation;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterLogical_operation) {
	 		listener.enterLogical_operation(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitLogical_operation) {
	 		listener.exitLogical_operation(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitLogical_operation) {
			return visitor.visitLogical_operation(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Multiset_expressionContext extends ParserRuleContext {
	public _multiset_type!: Token;
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public relational_expression(): Relational_expressionContext {
		return this.getTypedRuleContext(Relational_expressionContext, 0) as Relational_expressionContext;
	}
	public concatenation(): ConcatenationContext {
		return this.getTypedRuleContext(ConcatenationContext, 0) as ConcatenationContext;
	}
	public MEMBER(): TerminalNode {
		return this.getToken(PlSqlParser.MEMBER, 0);
	}
	public SUBMULTISET(): TerminalNode {
		return this.getToken(PlSqlParser.SUBMULTISET, 0);
	}
	public OF(): TerminalNode {
		return this.getToken(PlSqlParser.OF, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_multiset_expression;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterMultiset_expression) {
	 		listener.enterMultiset_expression(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitMultiset_expression) {
	 		listener.exitMultiset_expression(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitMultiset_expression) {
			return visitor.visitMultiset_expression(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Relational_expressionContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public compound_expression(): Compound_expressionContext {
		return this.getTypedRuleContext(Compound_expressionContext, 0) as Compound_expressionContext;
	}
	public relational_expression_list(): Relational_expressionContext[] {
		return this.getTypedRuleContexts(Relational_expressionContext) as Relational_expressionContext[];
	}
	public relational_expression(i: number): Relational_expressionContext {
		return this.getTypedRuleContext(Relational_expressionContext, i) as Relational_expressionContext;
	}
	public relational_operator(): Relational_operatorContext {
		return this.getTypedRuleContext(Relational_operatorContext, 0) as Relational_operatorContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_relational_expression;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterRelational_expression) {
	 		listener.enterRelational_expression(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitRelational_expression) {
	 		listener.exitRelational_expression(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitRelational_expression) {
			return visitor.visitRelational_expression(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Compound_expressionContext extends ParserRuleContext {
	public _like_type!: Token;
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public concatenation_list(): ConcatenationContext[] {
		return this.getTypedRuleContexts(ConcatenationContext) as ConcatenationContext[];
	}
	public concatenation(i: number): ConcatenationContext {
		return this.getTypedRuleContext(ConcatenationContext, i) as ConcatenationContext;
	}
	public IN(): TerminalNode {
		return this.getToken(PlSqlParser.IN, 0);
	}
	public in_elements(): In_elementsContext {
		return this.getTypedRuleContext(In_elementsContext, 0) as In_elementsContext;
	}
	public BETWEEN(): TerminalNode {
		return this.getToken(PlSqlParser.BETWEEN, 0);
	}
	public between_elements(): Between_elementsContext {
		return this.getTypedRuleContext(Between_elementsContext, 0) as Between_elementsContext;
	}
	public NOT(): TerminalNode {
		return this.getToken(PlSqlParser.NOT, 0);
	}
	public LIKE(): TerminalNode {
		return this.getToken(PlSqlParser.LIKE, 0);
	}
	public LIKEC(): TerminalNode {
		return this.getToken(PlSqlParser.LIKEC, 0);
	}
	public LIKE2(): TerminalNode {
		return this.getToken(PlSqlParser.LIKE2, 0);
	}
	public LIKE4(): TerminalNode {
		return this.getToken(PlSqlParser.LIKE4, 0);
	}
	public ESCAPE(): TerminalNode {
		return this.getToken(PlSqlParser.ESCAPE, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_compound_expression;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterCompound_expression) {
	 		listener.enterCompound_expression(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitCompound_expression) {
	 		listener.exitCompound_expression(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitCompound_expression) {
			return visitor.visitCompound_expression(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Relational_operatorContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public EQUALS_OP(): TerminalNode {
		return this.getToken(PlSqlParser.EQUALS_OP, 0);
	}
	public NOT_EQUAL_OP(): TerminalNode {
		return this.getToken(PlSqlParser.NOT_EQUAL_OP, 0);
	}
	public LESS_THAN_OP(): TerminalNode {
		return this.getToken(PlSqlParser.LESS_THAN_OP, 0);
	}
	public GREATER_THAN_OP(): TerminalNode {
		return this.getToken(PlSqlParser.GREATER_THAN_OP, 0);
	}
	public EXCLAMATION_OPERATOR_PART(): TerminalNode {
		return this.getToken(PlSqlParser.EXCLAMATION_OPERATOR_PART, 0);
	}
	public CARRET_OPERATOR_PART(): TerminalNode {
		return this.getToken(PlSqlParser.CARRET_OPERATOR_PART, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_relational_operator;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterRelational_operator) {
	 		listener.enterRelational_operator(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitRelational_operator) {
	 		listener.exitRelational_operator(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitRelational_operator) {
			return visitor.visitRelational_operator(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class In_elementsContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public subquery(): SubqueryContext {
		return this.getTypedRuleContext(SubqueryContext, 0) as SubqueryContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public concatenation_list(): ConcatenationContext[] {
		return this.getTypedRuleContexts(ConcatenationContext) as ConcatenationContext[];
	}
	public concatenation(i: number): ConcatenationContext {
		return this.getTypedRuleContext(ConcatenationContext, i) as ConcatenationContext;
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
	public constant(): ConstantContext {
		return this.getTypedRuleContext(ConstantContext, 0) as ConstantContext;
	}
	public bind_variable(): Bind_variableContext {
		return this.getTypedRuleContext(Bind_variableContext, 0) as Bind_variableContext;
	}
	public general_element(): General_elementContext {
		return this.getTypedRuleContext(General_elementContext, 0) as General_elementContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_in_elements;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterIn_elements) {
	 		listener.enterIn_elements(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitIn_elements) {
	 		listener.exitIn_elements(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitIn_elements) {
			return visitor.visitIn_elements(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Between_elementsContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public concatenation_list(): ConcatenationContext[] {
		return this.getTypedRuleContexts(ConcatenationContext) as ConcatenationContext[];
	}
	public concatenation(i: number): ConcatenationContext {
		return this.getTypedRuleContext(ConcatenationContext, i) as ConcatenationContext;
	}
	public AND(): TerminalNode {
		return this.getToken(PlSqlParser.AND, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_between_elements;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterBetween_elements) {
	 		listener.enterBetween_elements(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitBetween_elements) {
	 		listener.exitBetween_elements(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitBetween_elements) {
			return visitor.visitBetween_elements(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class ConcatenationContext extends ParserRuleContext {
	public _op!: Token;
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public model_expression(): Model_expressionContext {
		return this.getTypedRuleContext(Model_expressionContext, 0) as Model_expressionContext;
	}
	public AT(): TerminalNode {
		return this.getToken(PlSqlParser.AT, 0);
	}
	public interval_expression(): Interval_expressionContext {
		return this.getTypedRuleContext(Interval_expressionContext, 0) as Interval_expressionContext;
	}
	public LOCAL(): TerminalNode {
		return this.getToken(PlSqlParser.LOCAL, 0);
	}
	public TIME(): TerminalNode {
		return this.getToken(PlSqlParser.TIME, 0);
	}
	public ZONE(): TerminalNode {
		return this.getToken(PlSqlParser.ZONE, 0);
	}
	public concatenation_list(): ConcatenationContext[] {
		return this.getTypedRuleContexts(ConcatenationContext) as ConcatenationContext[];
	}
	public concatenation(i: number): ConcatenationContext {
		return this.getTypedRuleContext(ConcatenationContext, i) as ConcatenationContext;
	}
	public ASTERISK(): TerminalNode {
		return this.getToken(PlSqlParser.ASTERISK, 0);
	}
	public SOLIDUS(): TerminalNode {
		return this.getToken(PlSqlParser.SOLIDUS, 0);
	}
	public PLUS_SIGN(): TerminalNode {
		return this.getToken(PlSqlParser.PLUS_SIGN, 0);
	}
	public MINUS_SIGN(): TerminalNode {
		return this.getToken(PlSqlParser.MINUS_SIGN, 0);
	}
	public BAR_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.BAR);
	}
	public BAR(i: number): TerminalNode {
		return this.getToken(PlSqlParser.BAR, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_concatenation;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterConcatenation) {
	 		listener.enterConcatenation(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitConcatenation) {
	 		listener.exitConcatenation(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitConcatenation) {
			return visitor.visitConcatenation(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Interval_expressionContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public DAY(): TerminalNode {
		return this.getToken(PlSqlParser.DAY, 0);
	}
	public TO(): TerminalNode {
		return this.getToken(PlSqlParser.TO, 0);
	}
	public SECOND(): TerminalNode {
		return this.getToken(PlSqlParser.SECOND, 0);
	}
	public LEFT_PAREN_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.LEFT_PAREN);
	}
	public LEFT_PAREN(i: number): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, i);
	}
	public concatenation_list(): ConcatenationContext[] {
		return this.getTypedRuleContexts(ConcatenationContext) as ConcatenationContext[];
	}
	public concatenation(i: number): ConcatenationContext {
		return this.getTypedRuleContext(ConcatenationContext, i) as ConcatenationContext;
	}
	public RIGHT_PAREN_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.RIGHT_PAREN);
	}
	public RIGHT_PAREN(i: number): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, i);
	}
	public YEAR(): TerminalNode {
		return this.getToken(PlSqlParser.YEAR, 0);
	}
	public MONTH(): TerminalNode {
		return this.getToken(PlSqlParser.MONTH, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_interval_expression;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterInterval_expression) {
	 		listener.enterInterval_expression(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitInterval_expression) {
	 		listener.exitInterval_expression(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitInterval_expression) {
			return visitor.visitInterval_expression(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Model_expressionContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public unary_expression(): Unary_expressionContext {
		return this.getTypedRuleContext(Unary_expressionContext, 0) as Unary_expressionContext;
	}
	public LEFT_BRACKET(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_BRACKET, 0);
	}
	public model_expression_element(): Model_expression_elementContext {
		return this.getTypedRuleContext(Model_expression_elementContext, 0) as Model_expression_elementContext;
	}
	public RIGHT_BRACKET(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_BRACKET, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_model_expression;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterModel_expression) {
	 		listener.enterModel_expression(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitModel_expression) {
	 		listener.exitModel_expression(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitModel_expression) {
			return visitor.visitModel_expression(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Model_expression_elementContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public ANY_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.ANY);
	}
	public ANY(i: number): TerminalNode {
		return this.getToken(PlSqlParser.ANY, i);
	}
	public expression_list(): ExpressionContext[] {
		return this.getTypedRuleContexts(ExpressionContext) as ExpressionContext[];
	}
	public expression(i: number): ExpressionContext {
		return this.getTypedRuleContext(ExpressionContext, i) as ExpressionContext;
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
	public single_column_for_loop_list(): Single_column_for_loopContext[] {
		return this.getTypedRuleContexts(Single_column_for_loopContext) as Single_column_for_loopContext[];
	}
	public single_column_for_loop(i: number): Single_column_for_loopContext {
		return this.getTypedRuleContext(Single_column_for_loopContext, i) as Single_column_for_loopContext;
	}
	public multi_column_for_loop(): Multi_column_for_loopContext {
		return this.getTypedRuleContext(Multi_column_for_loopContext, 0) as Multi_column_for_loopContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_model_expression_element;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterModel_expression_element) {
	 		listener.enterModel_expression_element(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitModel_expression_element) {
	 		listener.exitModel_expression_element(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitModel_expression_element) {
			return visitor.visitModel_expression_element(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Single_column_for_loopContext extends ParserRuleContext {
	public _fromExpr!: ExpressionContext;
	public _toExpr!: ExpressionContext;
	public _action_type!: Token;
	public _action_expr!: ExpressionContext;
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public FOR(): TerminalNode {
		return this.getToken(PlSqlParser.FOR, 0);
	}
	public column_name(): Column_nameContext {
		return this.getTypedRuleContext(Column_nameContext, 0) as Column_nameContext;
	}
	public IN(): TerminalNode {
		return this.getToken(PlSqlParser.IN, 0);
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public FROM(): TerminalNode {
		return this.getToken(PlSqlParser.FROM, 0);
	}
	public TO(): TerminalNode {
		return this.getToken(PlSqlParser.TO, 0);
	}
	public expression_list(): ExpressionContext[] {
		return this.getTypedRuleContexts(ExpressionContext) as ExpressionContext[];
	}
	public expression(i: number): ExpressionContext {
		return this.getTypedRuleContext(ExpressionContext, i) as ExpressionContext;
	}
	public INCREMENT(): TerminalNode {
		return this.getToken(PlSqlParser.INCREMENT, 0);
	}
	public DECREMENT(): TerminalNode {
		return this.getToken(PlSqlParser.DECREMENT, 0);
	}
	public expressions(): ExpressionsContext {
		return this.getTypedRuleContext(ExpressionsContext, 0) as ExpressionsContext;
	}
	public LIKE(): TerminalNode {
		return this.getToken(PlSqlParser.LIKE, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_single_column_for_loop;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterSingle_column_for_loop) {
	 		listener.enterSingle_column_for_loop(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitSingle_column_for_loop) {
	 		listener.exitSingle_column_for_loop(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitSingle_column_for_loop) {
			return visitor.visitSingle_column_for_loop(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Multi_column_for_loopContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public FOR(): TerminalNode {
		return this.getToken(PlSqlParser.FOR, 0);
	}
	public paren_column_list(): Paren_column_listContext {
		return this.getTypedRuleContext(Paren_column_listContext, 0) as Paren_column_listContext;
	}
	public IN(): TerminalNode {
		return this.getToken(PlSqlParser.IN, 0);
	}
	public LEFT_PAREN_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.LEFT_PAREN);
	}
	public LEFT_PAREN(i: number): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, i);
	}
	public RIGHT_PAREN_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.RIGHT_PAREN);
	}
	public RIGHT_PAREN(i: number): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, i);
	}
	public subquery(): SubqueryContext {
		return this.getTypedRuleContext(SubqueryContext, 0) as SubqueryContext;
	}
	public expressions(): ExpressionsContext {
		return this.getTypedRuleContext(ExpressionsContext, 0) as ExpressionsContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_multi_column_for_loop;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterMulti_column_for_loop) {
	 		listener.enterMulti_column_for_loop(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitMulti_column_for_loop) {
	 		listener.exitMulti_column_for_loop(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitMulti_column_for_loop) {
			return visitor.visitMulti_column_for_loop(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Unary_expressionContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public unary_expression(): Unary_expressionContext {
		return this.getTypedRuleContext(Unary_expressionContext, 0) as Unary_expressionContext;
	}
	public MINUS_SIGN(): TerminalNode {
		return this.getToken(PlSqlParser.MINUS_SIGN, 0);
	}
	public PLUS_SIGN(): TerminalNode {
		return this.getToken(PlSqlParser.PLUS_SIGN, 0);
	}
	public PRIOR(): TerminalNode {
		return this.getToken(PlSqlParser.PRIOR, 0);
	}
	public CONNECT_BY_ROOT(): TerminalNode {
		return this.getToken(PlSqlParser.CONNECT_BY_ROOT, 0);
	}
	public NEW(): TerminalNode {
		return this.getToken(PlSqlParser.NEW, 0);
	}
	public DISTINCT(): TerminalNode {
		return this.getToken(PlSqlParser.DISTINCT, 0);
	}
	public ALL(): TerminalNode {
		return this.getToken(PlSqlParser.ALL, 0);
	}
	public case_statement(): Case_statementContext {
		return this.getTypedRuleContext(Case_statementContext, 0) as Case_statementContext;
	}
	public quantified_expression(): Quantified_expressionContext {
		return this.getTypedRuleContext(Quantified_expressionContext, 0) as Quantified_expressionContext;
	}
	public standard_function(): Standard_functionContext {
		return this.getTypedRuleContext(Standard_functionContext, 0) as Standard_functionContext;
	}
	public atom(): AtomContext {
		return this.getTypedRuleContext(AtomContext, 0) as AtomContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_unary_expression;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterUnary_expression) {
	 		listener.enterUnary_expression(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitUnary_expression) {
	 		listener.exitUnary_expression(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitUnary_expression) {
			return visitor.visitUnary_expression(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Case_statementContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public searched_case_statement(): Searched_case_statementContext {
		return this.getTypedRuleContext(Searched_case_statementContext, 0) as Searched_case_statementContext;
	}
	public simple_case_statement(): Simple_case_statementContext {
		return this.getTypedRuleContext(Simple_case_statementContext, 0) as Simple_case_statementContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_case_statement;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterCase_statement) {
	 		listener.enterCase_statement(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitCase_statement) {
	 		listener.exitCase_statement(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitCase_statement) {
			return visitor.visitCase_statement(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Simple_case_statementContext extends ParserRuleContext {
	public _ck1!: Token;
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public expression(): ExpressionContext {
		return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext;
	}
	public END(): TerminalNode {
		return this.getToken(PlSqlParser.END, 0);
	}
	public CASE_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.CASE);
	}
	public CASE(i: number): TerminalNode {
		return this.getToken(PlSqlParser.CASE, i);
	}
	public label_name_list(): Label_nameContext[] {
		return this.getTypedRuleContexts(Label_nameContext) as Label_nameContext[];
	}
	public label_name(i: number): Label_nameContext {
		return this.getTypedRuleContext(Label_nameContext, i) as Label_nameContext;
	}
	public simple_case_when_part_list(): Simple_case_when_partContext[] {
		return this.getTypedRuleContexts(Simple_case_when_partContext) as Simple_case_when_partContext[];
	}
	public simple_case_when_part(i: number): Simple_case_when_partContext {
		return this.getTypedRuleContext(Simple_case_when_partContext, i) as Simple_case_when_partContext;
	}
	public case_else_part(): Case_else_partContext {
		return this.getTypedRuleContext(Case_else_partContext, 0) as Case_else_partContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_simple_case_statement;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterSimple_case_statement) {
	 		listener.enterSimple_case_statement(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitSimple_case_statement) {
	 		listener.exitSimple_case_statement(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitSimple_case_statement) {
			return visitor.visitSimple_case_statement(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Simple_case_when_partContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public WHEN(): TerminalNode {
		return this.getToken(PlSqlParser.WHEN, 0);
	}
	public expression_list(): ExpressionContext[] {
		return this.getTypedRuleContexts(ExpressionContext) as ExpressionContext[];
	}
	public expression(i: number): ExpressionContext {
		return this.getTypedRuleContext(ExpressionContext, i) as ExpressionContext;
	}
	public THEN(): TerminalNode {
		return this.getToken(PlSqlParser.THEN, 0);
	}
	public seq_of_statements(): Seq_of_statementsContext {
		return this.getTypedRuleContext(Seq_of_statementsContext, 0) as Seq_of_statementsContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_simple_case_when_part;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterSimple_case_when_part) {
	 		listener.enterSimple_case_when_part(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitSimple_case_when_part) {
	 		listener.exitSimple_case_when_part(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitSimple_case_when_part) {
			return visitor.visitSimple_case_when_part(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Searched_case_statementContext extends ParserRuleContext {
	public _ck1!: Token;
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public END(): TerminalNode {
		return this.getToken(PlSqlParser.END, 0);
	}
	public CASE_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.CASE);
	}
	public CASE(i: number): TerminalNode {
		return this.getToken(PlSqlParser.CASE, i);
	}
	public label_name_list(): Label_nameContext[] {
		return this.getTypedRuleContexts(Label_nameContext) as Label_nameContext[];
	}
	public label_name(i: number): Label_nameContext {
		return this.getTypedRuleContext(Label_nameContext, i) as Label_nameContext;
	}
	public searched_case_when_part_list(): Searched_case_when_partContext[] {
		return this.getTypedRuleContexts(Searched_case_when_partContext) as Searched_case_when_partContext[];
	}
	public searched_case_when_part(i: number): Searched_case_when_partContext {
		return this.getTypedRuleContext(Searched_case_when_partContext, i) as Searched_case_when_partContext;
	}
	public case_else_part(): Case_else_partContext {
		return this.getTypedRuleContext(Case_else_partContext, 0) as Case_else_partContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_searched_case_statement;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterSearched_case_statement) {
	 		listener.enterSearched_case_statement(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitSearched_case_statement) {
	 		listener.exitSearched_case_statement(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitSearched_case_statement) {
			return visitor.visitSearched_case_statement(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Searched_case_when_partContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public WHEN(): TerminalNode {
		return this.getToken(PlSqlParser.WHEN, 0);
	}
	public expression_list(): ExpressionContext[] {
		return this.getTypedRuleContexts(ExpressionContext) as ExpressionContext[];
	}
	public expression(i: number): ExpressionContext {
		return this.getTypedRuleContext(ExpressionContext, i) as ExpressionContext;
	}
	public THEN(): TerminalNode {
		return this.getToken(PlSqlParser.THEN, 0);
	}
	public seq_of_statements(): Seq_of_statementsContext {
		return this.getTypedRuleContext(Seq_of_statementsContext, 0) as Seq_of_statementsContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_searched_case_when_part;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterSearched_case_when_part) {
	 		listener.enterSearched_case_when_part(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitSearched_case_when_part) {
	 		listener.exitSearched_case_when_part(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitSearched_case_when_part) {
			return visitor.visitSearched_case_when_part(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Case_else_partContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public ELSE(): TerminalNode {
		return this.getToken(PlSqlParser.ELSE, 0);
	}
	public seq_of_statements(): Seq_of_statementsContext {
		return this.getTypedRuleContext(Seq_of_statementsContext, 0) as Seq_of_statementsContext;
	}
	public expression(): ExpressionContext {
		return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_case_else_part;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterCase_else_part) {
	 		listener.enterCase_else_part(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitCase_else_part) {
	 		listener.exitCase_else_part(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitCase_else_part) {
			return visitor.visitCase_else_part(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class AtomContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public table_element(): Table_elementContext {
		return this.getTypedRuleContext(Table_elementContext, 0) as Table_elementContext;
	}
	public outer_join_sign(): Outer_join_signContext {
		return this.getTypedRuleContext(Outer_join_signContext, 0) as Outer_join_signContext;
	}
	public bind_variable(): Bind_variableContext {
		return this.getTypedRuleContext(Bind_variableContext, 0) as Bind_variableContext;
	}
	public constant(): ConstantContext {
		return this.getTypedRuleContext(ConstantContext, 0) as ConstantContext;
	}
	public general_element(): General_elementContext {
		return this.getTypedRuleContext(General_elementContext, 0) as General_elementContext;
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public subquery(): SubqueryContext {
		return this.getTypedRuleContext(SubqueryContext, 0) as SubqueryContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public subquery_operation_part_list(): Subquery_operation_partContext[] {
		return this.getTypedRuleContexts(Subquery_operation_partContext) as Subquery_operation_partContext[];
	}
	public subquery_operation_part(i: number): Subquery_operation_partContext {
		return this.getTypedRuleContext(Subquery_operation_partContext, i) as Subquery_operation_partContext;
	}
	public expressions(): ExpressionsContext {
		return this.getTypedRuleContext(ExpressionsContext, 0) as ExpressionsContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_atom;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterAtom) {
	 		listener.enterAtom(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitAtom) {
	 		listener.exitAtom(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitAtom) {
			return visitor.visitAtom(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Quantified_expressionContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public SOME(): TerminalNode {
		return this.getToken(PlSqlParser.SOME, 0);
	}
	public EXISTS(): TerminalNode {
		return this.getToken(PlSqlParser.EXISTS, 0);
	}
	public ALL(): TerminalNode {
		return this.getToken(PlSqlParser.ALL, 0);
	}
	public ANY(): TerminalNode {
		return this.getToken(PlSqlParser.ANY, 0);
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public subquery(): SubqueryContext {
		return this.getTypedRuleContext(SubqueryContext, 0) as SubqueryContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public expression(): ExpressionContext {
		return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_quantified_expression;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterQuantified_expression) {
	 		listener.enterQuantified_expression(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitQuantified_expression) {
	 		listener.exitQuantified_expression(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitQuantified_expression) {
			return visitor.visitQuantified_expression(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class String_functionContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public SUBSTR(): TerminalNode {
		return this.getToken(PlSqlParser.SUBSTR, 0);
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public expression_list(): ExpressionContext[] {
		return this.getTypedRuleContexts(ExpressionContext) as ExpressionContext[];
	}
	public expression(i: number): ExpressionContext {
		return this.getTypedRuleContext(ExpressionContext, i) as ExpressionContext;
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public TO_CHAR(): TerminalNode {
		return this.getToken(PlSqlParser.TO_CHAR, 0);
	}
	public table_element(): Table_elementContext {
		return this.getTypedRuleContext(Table_elementContext, 0) as Table_elementContext;
	}
	public standard_function(): Standard_functionContext {
		return this.getTypedRuleContext(Standard_functionContext, 0) as Standard_functionContext;
	}
	public quoted_string_list(): Quoted_stringContext[] {
		return this.getTypedRuleContexts(Quoted_stringContext) as Quoted_stringContext[];
	}
	public quoted_string(i: number): Quoted_stringContext {
		return this.getTypedRuleContext(Quoted_stringContext, i) as Quoted_stringContext;
	}
	public DECODE(): TerminalNode {
		return this.getToken(PlSqlParser.DECODE, 0);
	}
	public expressions(): ExpressionsContext {
		return this.getTypedRuleContext(ExpressionsContext, 0) as ExpressionsContext;
	}
	public CHR(): TerminalNode {
		return this.getToken(PlSqlParser.CHR, 0);
	}
	public concatenation(): ConcatenationContext {
		return this.getTypedRuleContext(ConcatenationContext, 0) as ConcatenationContext;
	}
	public USING(): TerminalNode {
		return this.getToken(PlSqlParser.USING, 0);
	}
	public NCHAR_CS(): TerminalNode {
		return this.getToken(PlSqlParser.NCHAR_CS, 0);
	}
	public NVL(): TerminalNode {
		return this.getToken(PlSqlParser.NVL, 0);
	}
	public TRIM(): TerminalNode {
		return this.getToken(PlSqlParser.TRIM, 0);
	}
	public FROM(): TerminalNode {
		return this.getToken(PlSqlParser.FROM, 0);
	}
	public LEADING(): TerminalNode {
		return this.getToken(PlSqlParser.LEADING, 0);
	}
	public TRAILING(): TerminalNode {
		return this.getToken(PlSqlParser.TRAILING, 0);
	}
	public BOTH(): TerminalNode {
		return this.getToken(PlSqlParser.BOTH, 0);
	}
	public TO_DATE(): TerminalNode {
		return this.getToken(PlSqlParser.TO_DATE, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_string_function;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterString_function) {
	 		listener.enterString_function(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitString_function) {
	 		listener.exitString_function(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitString_function) {
			return visitor.visitString_function(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Standard_functionContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public string_function(): String_functionContext {
		return this.getTypedRuleContext(String_functionContext, 0) as String_functionContext;
	}
	public numeric_function_wrapper(): Numeric_function_wrapperContext {
		return this.getTypedRuleContext(Numeric_function_wrapperContext, 0) as Numeric_function_wrapperContext;
	}
	public other_function(): Other_functionContext {
		return this.getTypedRuleContext(Other_functionContext, 0) as Other_functionContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_standard_function;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterStandard_function) {
	 		listener.enterStandard_function(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitStandard_function) {
	 		listener.exitStandard_function(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitStandard_function) {
			return visitor.visitStandard_function(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class LiteralContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public CHAR_STRING(): TerminalNode {
		return this.getToken(PlSqlParser.CHAR_STRING, 0);
	}
	public string_function(): String_functionContext {
		return this.getTypedRuleContext(String_functionContext, 0) as String_functionContext;
	}
	public numeric(): NumericContext {
		return this.getTypedRuleContext(NumericContext, 0) as NumericContext;
	}
	public MAXVALUE(): TerminalNode {
		return this.getToken(PlSqlParser.MAXVALUE, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_literal;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterLiteral) {
	 		listener.enterLiteral(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitLiteral) {
	 		listener.exitLiteral(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitLiteral) {
			return visitor.visitLiteral(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Numeric_function_wrapperContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public numeric_function(): Numeric_functionContext {
		return this.getTypedRuleContext(Numeric_functionContext, 0) as Numeric_functionContext;
	}
	public single_column_for_loop(): Single_column_for_loopContext {
		return this.getTypedRuleContext(Single_column_for_loopContext, 0) as Single_column_for_loopContext;
	}
	public multi_column_for_loop(): Multi_column_for_loopContext {
		return this.getTypedRuleContext(Multi_column_for_loopContext, 0) as Multi_column_for_loopContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_numeric_function_wrapper;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterNumeric_function_wrapper) {
	 		listener.enterNumeric_function_wrapper(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitNumeric_function_wrapper) {
	 		listener.exitNumeric_function_wrapper(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitNumeric_function_wrapper) {
			return visitor.visitNumeric_function_wrapper(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Numeric_functionContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public SUM(): TerminalNode {
		return this.getToken(PlSqlParser.SUM, 0);
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public expression(): ExpressionContext {
		return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public DISTINCT(): TerminalNode {
		return this.getToken(PlSqlParser.DISTINCT, 0);
	}
	public ALL(): TerminalNode {
		return this.getToken(PlSqlParser.ALL, 0);
	}
	public COUNT(): TerminalNode {
		return this.getToken(PlSqlParser.COUNT, 0);
	}
	public ASTERISK(): TerminalNode {
		return this.getToken(PlSqlParser.ASTERISK, 0);
	}
	public over_clause(): Over_clauseContext {
		return this.getTypedRuleContext(Over_clauseContext, 0) as Over_clauseContext;
	}
	public concatenation(): ConcatenationContext {
		return this.getTypedRuleContext(ConcatenationContext, 0) as ConcatenationContext;
	}
	public UNIQUE(): TerminalNode {
		return this.getToken(PlSqlParser.UNIQUE, 0);
	}
	public ROUND(): TerminalNode {
		return this.getToken(PlSqlParser.ROUND, 0);
	}
	public COMMA(): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, 0);
	}
	public UNSIGNED_INTEGER(): TerminalNode {
		return this.getToken(PlSqlParser.UNSIGNED_INTEGER, 0);
	}
	public AVG(): TerminalNode {
		return this.getToken(PlSqlParser.AVG, 0);
	}
	public MAX(): TerminalNode {
		return this.getToken(PlSqlParser.MAX, 0);
	}
	public LEAST(): TerminalNode {
		return this.getToken(PlSqlParser.LEAST, 0);
	}
	public expressions(): ExpressionsContext {
		return this.getTypedRuleContext(ExpressionsContext, 0) as ExpressionsContext;
	}
	public GREATEST(): TerminalNode {
		return this.getToken(PlSqlParser.GREATEST, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_numeric_function;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterNumeric_function) {
	 		listener.enterNumeric_function(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitNumeric_function) {
	 		listener.exitNumeric_function(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitNumeric_function) {
			return visitor.visitNumeric_function(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Other_functionContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public over_clause_keyword(): Over_clause_keywordContext {
		return this.getTypedRuleContext(Over_clause_keywordContext, 0) as Over_clause_keywordContext;
	}
	public function_argument_analytic(): Function_argument_analyticContext {
		return this.getTypedRuleContext(Function_argument_analyticContext, 0) as Function_argument_analyticContext;
	}
	public over_clause(): Over_clauseContext {
		return this.getTypedRuleContext(Over_clauseContext, 0) as Over_clauseContext;
	}
	public regular_id(): Regular_idContext {
		return this.getTypedRuleContext(Regular_idContext, 0) as Regular_idContext;
	}
	public function_argument_modeling(): Function_argument_modelingContext {
		return this.getTypedRuleContext(Function_argument_modelingContext, 0) as Function_argument_modelingContext;
	}
	public using_clause(): Using_clauseContext {
		return this.getTypedRuleContext(Using_clauseContext, 0) as Using_clauseContext;
	}
	public COUNT(): TerminalNode {
		return this.getToken(PlSqlParser.COUNT, 0);
	}
	public LEFT_PAREN_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.LEFT_PAREN);
	}
	public LEFT_PAREN(i: number): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, i);
	}
	public RIGHT_PAREN_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.RIGHT_PAREN);
	}
	public RIGHT_PAREN(i: number): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, i);
	}
	public ASTERISK(): TerminalNode {
		return this.getToken(PlSqlParser.ASTERISK, 0);
	}
	public concatenation_list(): ConcatenationContext[] {
		return this.getTypedRuleContexts(ConcatenationContext) as ConcatenationContext[];
	}
	public concatenation(i: number): ConcatenationContext {
		return this.getTypedRuleContext(ConcatenationContext, i) as ConcatenationContext;
	}
	public DISTINCT(): TerminalNode {
		return this.getToken(PlSqlParser.DISTINCT, 0);
	}
	public UNIQUE(): TerminalNode {
		return this.getToken(PlSqlParser.UNIQUE, 0);
	}
	public ALL(): TerminalNode {
		return this.getToken(PlSqlParser.ALL, 0);
	}
	public AS(): TerminalNode {
		return this.getToken(PlSqlParser.AS, 0);
	}
	public type_spec(): Type_specContext {
		return this.getTypedRuleContext(Type_specContext, 0) as Type_specContext;
	}
	public CAST(): TerminalNode {
		return this.getToken(PlSqlParser.CAST, 0);
	}
	public XMLCAST(): TerminalNode {
		return this.getToken(PlSqlParser.XMLCAST, 0);
	}
	public MULTISET(): TerminalNode {
		return this.getToken(PlSqlParser.MULTISET, 0);
	}
	public subquery(): SubqueryContext {
		return this.getTypedRuleContext(SubqueryContext, 0) as SubqueryContext;
	}
	public COALESCE(): TerminalNode {
		return this.getToken(PlSqlParser.COALESCE, 0);
	}
	public table_element(): Table_elementContext {
		return this.getTypedRuleContext(Table_elementContext, 0) as Table_elementContext;
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
	public numeric(): NumericContext {
		return this.getTypedRuleContext(NumericContext, 0) as NumericContext;
	}
	public quoted_string(): Quoted_stringContext {
		return this.getTypedRuleContext(Quoted_stringContext, 0) as Quoted_stringContext;
	}
	public COLLECT(): TerminalNode {
		return this.getToken(PlSqlParser.COLLECT, 0);
	}
	public collect_order_by_part(): Collect_order_by_partContext {
		return this.getTypedRuleContext(Collect_order_by_partContext, 0) as Collect_order_by_partContext;
	}
	public within_or_over_clause_keyword(): Within_or_over_clause_keywordContext {
		return this.getTypedRuleContext(Within_or_over_clause_keywordContext, 0) as Within_or_over_clause_keywordContext;
	}
	public function_argument(): Function_argumentContext {
		return this.getTypedRuleContext(Function_argumentContext, 0) as Function_argumentContext;
	}
	public within_or_over_part_list(): Within_or_over_partContext[] {
		return this.getTypedRuleContexts(Within_or_over_partContext) as Within_or_over_partContext[];
	}
	public within_or_over_part(i: number): Within_or_over_partContext {
		return this.getTypedRuleContext(Within_or_over_partContext, i) as Within_or_over_partContext;
	}
	public cursor_name(): Cursor_nameContext {
		return this.getTypedRuleContext(Cursor_nameContext, 0) as Cursor_nameContext;
	}
	public PERCENT_ISOPEN(): TerminalNode {
		return this.getToken(PlSqlParser.PERCENT_ISOPEN, 0);
	}
	public PERCENT_FOUND(): TerminalNode {
		return this.getToken(PlSqlParser.PERCENT_FOUND, 0);
	}
	public PERCENT_NOTFOUND(): TerminalNode {
		return this.getToken(PlSqlParser.PERCENT_NOTFOUND, 0);
	}
	public PERCENT_ROWCOUNT(): TerminalNode {
		return this.getToken(PlSqlParser.PERCENT_ROWCOUNT, 0);
	}
	public DECOMPOSE(): TerminalNode {
		return this.getToken(PlSqlParser.DECOMPOSE, 0);
	}
	public CANONICAL(): TerminalNode {
		return this.getToken(PlSqlParser.CANONICAL, 0);
	}
	public COMPATIBILITY(): TerminalNode {
		return this.getToken(PlSqlParser.COMPATIBILITY, 0);
	}
	public EXTRACT(): TerminalNode {
		return this.getToken(PlSqlParser.EXTRACT, 0);
	}
	public FROM(): TerminalNode {
		return this.getToken(PlSqlParser.FROM, 0);
	}
	public FIRST_VALUE(): TerminalNode {
		return this.getToken(PlSqlParser.FIRST_VALUE, 0);
	}
	public LAST_VALUE(): TerminalNode {
		return this.getToken(PlSqlParser.LAST_VALUE, 0);
	}
	public respect_or_ignore_nulls(): Respect_or_ignore_nullsContext {
		return this.getTypedRuleContext(Respect_or_ignore_nullsContext, 0) as Respect_or_ignore_nullsContext;
	}
	public standard_prediction_function_keyword(): Standard_prediction_function_keywordContext {
		return this.getTypedRuleContext(Standard_prediction_function_keywordContext, 0) as Standard_prediction_function_keywordContext;
	}
	public expressions(): ExpressionsContext {
		return this.getTypedRuleContext(ExpressionsContext, 0) as ExpressionsContext;
	}
	public cost_matrix_clause(): Cost_matrix_clauseContext {
		return this.getTypedRuleContext(Cost_matrix_clauseContext, 0) as Cost_matrix_clauseContext;
	}
	public TRANSLATE(): TerminalNode {
		return this.getToken(PlSqlParser.TRANSLATE, 0);
	}
	public expression_list(): ExpressionContext[] {
		return this.getTypedRuleContexts(ExpressionContext) as ExpressionContext[];
	}
	public expression(i: number): ExpressionContext {
		return this.getTypedRuleContext(ExpressionContext, i) as ExpressionContext;
	}
	public USING(): TerminalNode {
		return this.getToken(PlSqlParser.USING, 0);
	}
	public CHAR_CS(): TerminalNode {
		return this.getToken(PlSqlParser.CHAR_CS, 0);
	}
	public NCHAR_CS(): TerminalNode {
		return this.getToken(PlSqlParser.NCHAR_CS, 0);
	}
	public TREAT(): TerminalNode {
		return this.getToken(PlSqlParser.TREAT, 0);
	}
	public REF(): TerminalNode {
		return this.getToken(PlSqlParser.REF, 0);
	}
	public TRIM(): TerminalNode {
		return this.getToken(PlSqlParser.TRIM, 0);
	}
	public LEADING(): TerminalNode {
		return this.getToken(PlSqlParser.LEADING, 0);
	}
	public TRAILING(): TerminalNode {
		return this.getToken(PlSqlParser.TRAILING, 0);
	}
	public BOTH(): TerminalNode {
		return this.getToken(PlSqlParser.BOTH, 0);
	}
	public XMLAGG(): TerminalNode {
		return this.getToken(PlSqlParser.XMLAGG, 0);
	}
	public order_by_clause(): Order_by_clauseContext {
		return this.getTypedRuleContext(Order_by_clauseContext, 0) as Order_by_clauseContext;
	}
	public PERIOD(): TerminalNode {
		return this.getToken(PlSqlParser.PERIOD, 0);
	}
	public general_element_part(): General_element_partContext {
		return this.getTypedRuleContext(General_element_partContext, 0) as General_element_partContext;
	}
	public xml_multiuse_expression_element_list(): Xml_multiuse_expression_elementContext[] {
		return this.getTypedRuleContexts(Xml_multiuse_expression_elementContext) as Xml_multiuse_expression_elementContext[];
	}
	public xml_multiuse_expression_element(i: number): Xml_multiuse_expression_elementContext {
		return this.getTypedRuleContext(Xml_multiuse_expression_elementContext, i) as Xml_multiuse_expression_elementContext;
	}
	public XMLCOLATTVAL(): TerminalNode {
		return this.getToken(PlSqlParser.XMLCOLATTVAL, 0);
	}
	public XMLFOREST(): TerminalNode {
		return this.getToken(PlSqlParser.XMLFOREST, 0);
	}
	public XMLELEMENT(): TerminalNode {
		return this.getToken(PlSqlParser.XMLELEMENT, 0);
	}
	public xml_attributes_clause(): Xml_attributes_clauseContext {
		return this.getTypedRuleContext(Xml_attributes_clauseContext, 0) as Xml_attributes_clauseContext;
	}
	public ENTITYESCAPING(): TerminalNode {
		return this.getToken(PlSqlParser.ENTITYESCAPING, 0);
	}
	public NOENTITYESCAPING(): TerminalNode {
		return this.getToken(PlSqlParser.NOENTITYESCAPING, 0);
	}
	public NAME(): TerminalNode {
		return this.getToken(PlSqlParser.NAME, 0);
	}
	public EVALNAME(): TerminalNode {
		return this.getToken(PlSqlParser.EVALNAME, 0);
	}
	public column_alias_list(): Column_aliasContext[] {
		return this.getTypedRuleContexts(Column_aliasContext) as Column_aliasContext[];
	}
	public column_alias(i: number): Column_aliasContext {
		return this.getTypedRuleContext(Column_aliasContext, i) as Column_aliasContext;
	}
	public XMLEXISTS(): TerminalNode {
		return this.getToken(PlSqlParser.XMLEXISTS, 0);
	}
	public xml_passing_clause(): Xml_passing_clauseContext {
		return this.getTypedRuleContext(Xml_passing_clauseContext, 0) as Xml_passing_clauseContext;
	}
	public XMLPARSE(): TerminalNode {
		return this.getToken(PlSqlParser.XMLPARSE, 0);
	}
	public DOCUMENT(): TerminalNode {
		return this.getToken(PlSqlParser.DOCUMENT, 0);
	}
	public CONTENT(): TerminalNode {
		return this.getToken(PlSqlParser.CONTENT, 0);
	}
	public WELLFORMED(): TerminalNode {
		return this.getToken(PlSqlParser.WELLFORMED, 0);
	}
	public XMLPI(): TerminalNode {
		return this.getToken(PlSqlParser.XMLPI, 0);
	}
	public identifier(): IdentifierContext {
		return this.getTypedRuleContext(IdentifierContext, 0) as IdentifierContext;
	}
	public XMLQUERY(): TerminalNode {
		return this.getToken(PlSqlParser.XMLQUERY, 0);
	}
	public RETURNING(): TerminalNode {
		return this.getToken(PlSqlParser.RETURNING, 0);
	}
	public NULL_(): TerminalNode {
		return this.getToken(PlSqlParser.NULL_, 0);
	}
	public ON(): TerminalNode {
		return this.getToken(PlSqlParser.ON, 0);
	}
	public EMPTY(): TerminalNode {
		return this.getToken(PlSqlParser.EMPTY, 0);
	}
	public XMLROOT(): TerminalNode {
		return this.getToken(PlSqlParser.XMLROOT, 0);
	}
	public xmlroot_param_version_part(): Xmlroot_param_version_partContext {
		return this.getTypedRuleContext(Xmlroot_param_version_partContext, 0) as Xmlroot_param_version_partContext;
	}
	public xmlroot_param_standalone_part(): Xmlroot_param_standalone_partContext {
		return this.getTypedRuleContext(Xmlroot_param_standalone_partContext, 0) as Xmlroot_param_standalone_partContext;
	}
	public XMLSERIALIZE(): TerminalNode {
		return this.getToken(PlSqlParser.XMLSERIALIZE, 0);
	}
	public xmlserialize_param_enconding_part(): Xmlserialize_param_enconding_partContext {
		return this.getTypedRuleContext(Xmlserialize_param_enconding_partContext, 0) as Xmlserialize_param_enconding_partContext;
	}
	public xmlserialize_param_version_part(): Xmlserialize_param_version_partContext {
		return this.getTypedRuleContext(Xmlserialize_param_version_partContext, 0) as Xmlserialize_param_version_partContext;
	}
	public xmlserialize_param_ident_part(): Xmlserialize_param_ident_partContext {
		return this.getTypedRuleContext(Xmlserialize_param_ident_partContext, 0) as Xmlserialize_param_ident_partContext;
	}
	public DEFAULTS(): TerminalNode {
		return this.getToken(PlSqlParser.DEFAULTS, 0);
	}
	public HIDE(): TerminalNode {
		return this.getToken(PlSqlParser.HIDE, 0);
	}
	public SHOW(): TerminalNode {
		return this.getToken(PlSqlParser.SHOW, 0);
	}
	public xmltable(): XmltableContext {
		return this.getTypedRuleContext(XmltableContext, 0) as XmltableContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_other_function;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterOther_function) {
	 		listener.enterOther_function(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitOther_function) {
	 		listener.exitOther_function(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitOther_function) {
			return visitor.visitOther_function(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Over_clause_keywordContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public AVG(): TerminalNode {
		return this.getToken(PlSqlParser.AVG, 0);
	}
	public CORR(): TerminalNode {
		return this.getToken(PlSqlParser.CORR, 0);
	}
	public LAG(): TerminalNode {
		return this.getToken(PlSqlParser.LAG, 0);
	}
	public LEAD(): TerminalNode {
		return this.getToken(PlSqlParser.LEAD, 0);
	}
	public MAX(): TerminalNode {
		return this.getToken(PlSqlParser.MAX, 0);
	}
	public MEDIAN(): TerminalNode {
		return this.getToken(PlSqlParser.MEDIAN, 0);
	}
	public MIN(): TerminalNode {
		return this.getToken(PlSqlParser.MIN, 0);
	}
	public NTILE(): TerminalNode {
		return this.getToken(PlSqlParser.NTILE, 0);
	}
	public RATIO_TO_REPORT(): TerminalNode {
		return this.getToken(PlSqlParser.RATIO_TO_REPORT, 0);
	}
	public ROW_NUMBER(): TerminalNode {
		return this.getToken(PlSqlParser.ROW_NUMBER, 0);
	}
	public SUM(): TerminalNode {
		return this.getToken(PlSqlParser.SUM, 0);
	}
	public VARIANCE(): TerminalNode {
		return this.getToken(PlSqlParser.VARIANCE, 0);
	}
	public REGR_(): TerminalNode {
		return this.getToken(PlSqlParser.REGR_, 0);
	}
	public STDDEV(): TerminalNode {
		return this.getToken(PlSqlParser.STDDEV, 0);
	}
	public VAR_(): TerminalNode {
		return this.getToken(PlSqlParser.VAR_, 0);
	}
	public COVAR_(): TerminalNode {
		return this.getToken(PlSqlParser.COVAR_, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_over_clause_keyword;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterOver_clause_keyword) {
	 		listener.enterOver_clause_keyword(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitOver_clause_keyword) {
	 		listener.exitOver_clause_keyword(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitOver_clause_keyword) {
			return visitor.visitOver_clause_keyword(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Within_or_over_clause_keywordContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public CUME_DIST(): TerminalNode {
		return this.getToken(PlSqlParser.CUME_DIST, 0);
	}
	public DENSE_RANK(): TerminalNode {
		return this.getToken(PlSqlParser.DENSE_RANK, 0);
	}
	public LISTAGG(): TerminalNode {
		return this.getToken(PlSqlParser.LISTAGG, 0);
	}
	public PERCENT_RANK(): TerminalNode {
		return this.getToken(PlSqlParser.PERCENT_RANK, 0);
	}
	public PERCENTILE_CONT(): TerminalNode {
		return this.getToken(PlSqlParser.PERCENTILE_CONT, 0);
	}
	public PERCENTILE_DISC(): TerminalNode {
		return this.getToken(PlSqlParser.PERCENTILE_DISC, 0);
	}
	public RANK(): TerminalNode {
		return this.getToken(PlSqlParser.RANK, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_within_or_over_clause_keyword;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterWithin_or_over_clause_keyword) {
	 		listener.enterWithin_or_over_clause_keyword(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitWithin_or_over_clause_keyword) {
	 		listener.exitWithin_or_over_clause_keyword(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitWithin_or_over_clause_keyword) {
			return visitor.visitWithin_or_over_clause_keyword(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Standard_prediction_function_keywordContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public PREDICTION(): TerminalNode {
		return this.getToken(PlSqlParser.PREDICTION, 0);
	}
	public PREDICTION_BOUNDS(): TerminalNode {
		return this.getToken(PlSqlParser.PREDICTION_BOUNDS, 0);
	}
	public PREDICTION_COST(): TerminalNode {
		return this.getToken(PlSqlParser.PREDICTION_COST, 0);
	}
	public PREDICTION_DETAILS(): TerminalNode {
		return this.getToken(PlSqlParser.PREDICTION_DETAILS, 0);
	}
	public PREDICTION_PROBABILITY(): TerminalNode {
		return this.getToken(PlSqlParser.PREDICTION_PROBABILITY, 0);
	}
	public PREDICTION_SET(): TerminalNode {
		return this.getToken(PlSqlParser.PREDICTION_SET, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_standard_prediction_function_keyword;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterStandard_prediction_function_keyword) {
	 		listener.enterStandard_prediction_function_keyword(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitStandard_prediction_function_keyword) {
	 		listener.exitStandard_prediction_function_keyword(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitStandard_prediction_function_keyword) {
			return visitor.visitStandard_prediction_function_keyword(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Over_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public OVER(): TerminalNode {
		return this.getToken(PlSqlParser.OVER, 0);
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public query_partition_clause(): Query_partition_clauseContext {
		return this.getTypedRuleContext(Query_partition_clauseContext, 0) as Query_partition_clauseContext;
	}
	public order_by_clause(): Order_by_clauseContext {
		return this.getTypedRuleContext(Order_by_clauseContext, 0) as Order_by_clauseContext;
	}
	public windowing_clause(): Windowing_clauseContext {
		return this.getTypedRuleContext(Windowing_clauseContext, 0) as Windowing_clauseContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_over_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterOver_clause) {
	 		listener.enterOver_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitOver_clause) {
	 		listener.exitOver_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitOver_clause) {
			return visitor.visitOver_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Windowing_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public windowing_type(): Windowing_typeContext {
		return this.getTypedRuleContext(Windowing_typeContext, 0) as Windowing_typeContext;
	}
	public BETWEEN(): TerminalNode {
		return this.getToken(PlSqlParser.BETWEEN, 0);
	}
	public windowing_elements_list(): Windowing_elementsContext[] {
		return this.getTypedRuleContexts(Windowing_elementsContext) as Windowing_elementsContext[];
	}
	public windowing_elements(i: number): Windowing_elementsContext {
		return this.getTypedRuleContext(Windowing_elementsContext, i) as Windowing_elementsContext;
	}
	public AND(): TerminalNode {
		return this.getToken(PlSqlParser.AND, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_windowing_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterWindowing_clause) {
	 		listener.enterWindowing_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitWindowing_clause) {
	 		listener.exitWindowing_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitWindowing_clause) {
			return visitor.visitWindowing_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Windowing_typeContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public ROWS(): TerminalNode {
		return this.getToken(PlSqlParser.ROWS, 0);
	}
	public RANGE(): TerminalNode {
		return this.getToken(PlSqlParser.RANGE, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_windowing_type;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterWindowing_type) {
	 		listener.enterWindowing_type(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitWindowing_type) {
	 		listener.exitWindowing_type(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitWindowing_type) {
			return visitor.visitWindowing_type(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Windowing_elementsContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public UNBOUNDED(): TerminalNode {
		return this.getToken(PlSqlParser.UNBOUNDED, 0);
	}
	public PRECEDING(): TerminalNode {
		return this.getToken(PlSqlParser.PRECEDING, 0);
	}
	public CURRENT(): TerminalNode {
		return this.getToken(PlSqlParser.CURRENT, 0);
	}
	public ROW(): TerminalNode {
		return this.getToken(PlSqlParser.ROW, 0);
	}
	public concatenation(): ConcatenationContext {
		return this.getTypedRuleContext(ConcatenationContext, 0) as ConcatenationContext;
	}
	public FOLLOWING(): TerminalNode {
		return this.getToken(PlSqlParser.FOLLOWING, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_windowing_elements;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterWindowing_elements) {
	 		listener.enterWindowing_elements(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitWindowing_elements) {
	 		listener.exitWindowing_elements(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitWindowing_elements) {
			return visitor.visitWindowing_elements(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Using_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public USING(): TerminalNode {
		return this.getToken(PlSqlParser.USING, 0);
	}
	public ASTERISK(): TerminalNode {
		return this.getToken(PlSqlParser.ASTERISK, 0);
	}
	public using_element_list(): Using_elementContext[] {
		return this.getTypedRuleContexts(Using_elementContext) as Using_elementContext[];
	}
	public using_element(i: number): Using_elementContext {
		return this.getTypedRuleContext(Using_elementContext, i) as Using_elementContext;
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_using_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterUsing_clause) {
	 		listener.enterUsing_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitUsing_clause) {
	 		listener.exitUsing_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitUsing_clause) {
			return visitor.visitUsing_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Using_elementContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public select_list_elements(): Select_list_elementsContext {
		return this.getTypedRuleContext(Select_list_elementsContext, 0) as Select_list_elementsContext;
	}
	public IN(): TerminalNode {
		return this.getToken(PlSqlParser.IN, 0);
	}
	public OUT(): TerminalNode {
		return this.getToken(PlSqlParser.OUT, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_using_element;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterUsing_element) {
	 		listener.enterUsing_element(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitUsing_element) {
	 		listener.exitUsing_element(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitUsing_element) {
			return visitor.visitUsing_element(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Collect_order_by_partContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public ORDER(): TerminalNode {
		return this.getToken(PlSqlParser.ORDER, 0);
	}
	public BY(): TerminalNode {
		return this.getToken(PlSqlParser.BY, 0);
	}
	public concatenation(): ConcatenationContext {
		return this.getTypedRuleContext(ConcatenationContext, 0) as ConcatenationContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_collect_order_by_part;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterCollect_order_by_part) {
	 		listener.enterCollect_order_by_part(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitCollect_order_by_part) {
	 		listener.exitCollect_order_by_part(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitCollect_order_by_part) {
			return visitor.visitCollect_order_by_part(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Within_or_over_partContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public WITHIN(): TerminalNode {
		return this.getToken(PlSqlParser.WITHIN, 0);
	}
	public GROUP(): TerminalNode {
		return this.getToken(PlSqlParser.GROUP, 0);
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public order_by_clause(): Order_by_clauseContext {
		return this.getTypedRuleContext(Order_by_clauseContext, 0) as Order_by_clauseContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public over_clause(): Over_clauseContext {
		return this.getTypedRuleContext(Over_clauseContext, 0) as Over_clauseContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_within_or_over_part;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterWithin_or_over_part) {
	 		listener.enterWithin_or_over_part(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitWithin_or_over_part) {
	 		listener.exitWithin_or_over_part(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitWithin_or_over_part) {
			return visitor.visitWithin_or_over_part(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Cost_matrix_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public COST(): TerminalNode {
		return this.getToken(PlSqlParser.COST, 0);
	}
	public MODEL(): TerminalNode {
		return this.getToken(PlSqlParser.MODEL, 0);
	}
	public LEFT_PAREN_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.LEFT_PAREN);
	}
	public LEFT_PAREN(i: number): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, i);
	}
	public cost_class_name_list(): Cost_class_nameContext[] {
		return this.getTypedRuleContexts(Cost_class_nameContext) as Cost_class_nameContext[];
	}
	public cost_class_name(i: number): Cost_class_nameContext {
		return this.getTypedRuleContext(Cost_class_nameContext, i) as Cost_class_nameContext;
	}
	public RIGHT_PAREN_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.RIGHT_PAREN);
	}
	public RIGHT_PAREN(i: number): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, i);
	}
	public VALUES(): TerminalNode {
		return this.getToken(PlSqlParser.VALUES, 0);
	}
	public AUTO(): TerminalNode {
		return this.getToken(PlSqlParser.AUTO, 0);
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
	public expressions(): ExpressionsContext {
		return this.getTypedRuleContext(ExpressionsContext, 0) as ExpressionsContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_cost_matrix_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterCost_matrix_clause) {
	 		listener.enterCost_matrix_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitCost_matrix_clause) {
	 		listener.exitCost_matrix_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitCost_matrix_clause) {
			return visitor.visitCost_matrix_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Xml_passing_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public PASSING(): TerminalNode {
		return this.getToken(PlSqlParser.PASSING, 0);
	}
	public expression_list(): ExpressionContext[] {
		return this.getTypedRuleContexts(ExpressionContext) as ExpressionContext[];
	}
	public expression(i: number): ExpressionContext {
		return this.getTypedRuleContext(ExpressionContext, i) as ExpressionContext;
	}
	public BY(): TerminalNode {
		return this.getToken(PlSqlParser.BY, 0);
	}
	public VALUE(): TerminalNode {
		return this.getToken(PlSqlParser.VALUE, 0);
	}
	public column_alias_list(): Column_aliasContext[] {
		return this.getTypedRuleContexts(Column_aliasContext) as Column_aliasContext[];
	}
	public column_alias(i: number): Column_aliasContext {
		return this.getTypedRuleContext(Column_aliasContext, i) as Column_aliasContext;
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_xml_passing_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterXml_passing_clause) {
	 		listener.enterXml_passing_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitXml_passing_clause) {
	 		listener.exitXml_passing_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitXml_passing_clause) {
			return visitor.visitXml_passing_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Xml_attributes_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public XMLATTRIBUTES(): TerminalNode {
		return this.getToken(PlSqlParser.XMLATTRIBUTES, 0);
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public xml_multiuse_expression_element_list(): Xml_multiuse_expression_elementContext[] {
		return this.getTypedRuleContexts(Xml_multiuse_expression_elementContext) as Xml_multiuse_expression_elementContext[];
	}
	public xml_multiuse_expression_element(i: number): Xml_multiuse_expression_elementContext {
		return this.getTypedRuleContext(Xml_multiuse_expression_elementContext, i) as Xml_multiuse_expression_elementContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
	public ENTITYESCAPING(): TerminalNode {
		return this.getToken(PlSqlParser.ENTITYESCAPING, 0);
	}
	public NOENTITYESCAPING(): TerminalNode {
		return this.getToken(PlSqlParser.NOENTITYESCAPING, 0);
	}
	public SCHEMACHECK(): TerminalNode {
		return this.getToken(PlSqlParser.SCHEMACHECK, 0);
	}
	public NOSCHEMACHECK(): TerminalNode {
		return this.getToken(PlSqlParser.NOSCHEMACHECK, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_xml_attributes_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterXml_attributes_clause) {
	 		listener.enterXml_attributes_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitXml_attributes_clause) {
	 		listener.exitXml_attributes_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitXml_attributes_clause) {
			return visitor.visitXml_attributes_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Xml_namespaces_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public XMLNAMESPACES(): TerminalNode {
		return this.getToken(PlSqlParser.XMLNAMESPACES, 0);
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public concatenation_list(): ConcatenationContext[] {
		return this.getTypedRuleContexts(ConcatenationContext) as ConcatenationContext[];
	}
	public concatenation(i: number): ConcatenationContext {
		return this.getTypedRuleContext(ConcatenationContext, i) as ConcatenationContext;
	}
	public column_alias_list(): Column_aliasContext[] {
		return this.getTypedRuleContexts(Column_aliasContext) as Column_aliasContext[];
	}
	public column_alias(i: number): Column_aliasContext {
		return this.getTypedRuleContext(Column_aliasContext, i) as Column_aliasContext;
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
	public xml_general_default_part(): Xml_general_default_partContext {
		return this.getTypedRuleContext(Xml_general_default_partContext, 0) as Xml_general_default_partContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_xml_namespaces_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterXml_namespaces_clause) {
	 		listener.enterXml_namespaces_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitXml_namespaces_clause) {
	 		listener.exitXml_namespaces_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitXml_namespaces_clause) {
			return visitor.visitXml_namespaces_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Xml_table_columnContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public xml_column_name(): Xml_column_nameContext {
		return this.getTypedRuleContext(Xml_column_nameContext, 0) as Xml_column_nameContext;
	}
	public FOR(): TerminalNode {
		return this.getToken(PlSqlParser.FOR, 0);
	}
	public ORDINALITY(): TerminalNode {
		return this.getToken(PlSqlParser.ORDINALITY, 0);
	}
	public type_spec(): Type_specContext {
		return this.getTypedRuleContext(Type_specContext, 0) as Type_specContext;
	}
	public PATH(): TerminalNode {
		return this.getToken(PlSqlParser.PATH, 0);
	}
	public concatenation(): ConcatenationContext {
		return this.getTypedRuleContext(ConcatenationContext, 0) as ConcatenationContext;
	}
	public xml_general_default_part(): Xml_general_default_partContext {
		return this.getTypedRuleContext(Xml_general_default_partContext, 0) as Xml_general_default_partContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_xml_table_column;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterXml_table_column) {
	 		listener.enterXml_table_column(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitXml_table_column) {
	 		listener.exitXml_table_column(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitXml_table_column) {
			return visitor.visitXml_table_column(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Xml_general_default_partContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public DEFAULT(): TerminalNode {
		return this.getToken(PlSqlParser.DEFAULT, 0);
	}
	public concatenation(): ConcatenationContext {
		return this.getTypedRuleContext(ConcatenationContext, 0) as ConcatenationContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_xml_general_default_part;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterXml_general_default_part) {
	 		listener.enterXml_general_default_part(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitXml_general_default_part) {
	 		listener.exitXml_general_default_part(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitXml_general_default_part) {
			return visitor.visitXml_general_default_part(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Xml_multiuse_expression_elementContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public expression(): ExpressionContext {
		return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext;
	}
	public AS(): TerminalNode {
		return this.getToken(PlSqlParser.AS, 0);
	}
	public id_expression(): Id_expressionContext {
		return this.getTypedRuleContext(Id_expressionContext, 0) as Id_expressionContext;
	}
	public EVALNAME(): TerminalNode {
		return this.getToken(PlSqlParser.EVALNAME, 0);
	}
	public concatenation(): ConcatenationContext {
		return this.getTypedRuleContext(ConcatenationContext, 0) as ConcatenationContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_xml_multiuse_expression_element;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterXml_multiuse_expression_element) {
	 		listener.enterXml_multiuse_expression_element(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitXml_multiuse_expression_element) {
	 		listener.exitXml_multiuse_expression_element(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitXml_multiuse_expression_element) {
			return visitor.visitXml_multiuse_expression_element(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Xmlroot_param_version_partContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public VERSION(): TerminalNode {
		return this.getToken(PlSqlParser.VERSION, 0);
	}
	public NO(): TerminalNode {
		return this.getToken(PlSqlParser.NO, 0);
	}
	public VALUE(): TerminalNode {
		return this.getToken(PlSqlParser.VALUE, 0);
	}
	public expression(): ExpressionContext {
		return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_xmlroot_param_version_part;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterXmlroot_param_version_part) {
	 		listener.enterXmlroot_param_version_part(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitXmlroot_param_version_part) {
	 		listener.exitXmlroot_param_version_part(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitXmlroot_param_version_part) {
			return visitor.visitXmlroot_param_version_part(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Xmlroot_param_standalone_partContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public STANDALONE(): TerminalNode {
		return this.getToken(PlSqlParser.STANDALONE, 0);
	}
	public YES(): TerminalNode {
		return this.getToken(PlSqlParser.YES, 0);
	}
	public NO(): TerminalNode {
		return this.getToken(PlSqlParser.NO, 0);
	}
	public VALUE(): TerminalNode {
		return this.getToken(PlSqlParser.VALUE, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_xmlroot_param_standalone_part;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterXmlroot_param_standalone_part) {
	 		listener.enterXmlroot_param_standalone_part(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitXmlroot_param_standalone_part) {
	 		listener.exitXmlroot_param_standalone_part(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitXmlroot_param_standalone_part) {
			return visitor.visitXmlroot_param_standalone_part(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Xmlserialize_param_enconding_partContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public ENCODING(): TerminalNode {
		return this.getToken(PlSqlParser.ENCODING, 0);
	}
	public concatenation(): ConcatenationContext {
		return this.getTypedRuleContext(ConcatenationContext, 0) as ConcatenationContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_xmlserialize_param_enconding_part;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterXmlserialize_param_enconding_part) {
	 		listener.enterXmlserialize_param_enconding_part(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitXmlserialize_param_enconding_part) {
	 		listener.exitXmlserialize_param_enconding_part(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitXmlserialize_param_enconding_part) {
			return visitor.visitXmlserialize_param_enconding_part(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Xmlserialize_param_version_partContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public VERSION(): TerminalNode {
		return this.getToken(PlSqlParser.VERSION, 0);
	}
	public concatenation(): ConcatenationContext {
		return this.getTypedRuleContext(ConcatenationContext, 0) as ConcatenationContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_xmlserialize_param_version_part;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterXmlserialize_param_version_part) {
	 		listener.enterXmlserialize_param_version_part(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitXmlserialize_param_version_part) {
	 		listener.exitXmlserialize_param_version_part(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitXmlserialize_param_version_part) {
			return visitor.visitXmlserialize_param_version_part(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Xmlserialize_param_ident_partContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public NO(): TerminalNode {
		return this.getToken(PlSqlParser.NO, 0);
	}
	public INDENT(): TerminalNode {
		return this.getToken(PlSqlParser.INDENT, 0);
	}
	public SIZE(): TerminalNode {
		return this.getToken(PlSqlParser.SIZE, 0);
	}
	public EQUALS_OP(): TerminalNode {
		return this.getToken(PlSqlParser.EQUALS_OP, 0);
	}
	public concatenation(): ConcatenationContext {
		return this.getTypedRuleContext(ConcatenationContext, 0) as ConcatenationContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_xmlserialize_param_ident_part;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterXmlserialize_param_ident_part) {
	 		listener.enterXmlserialize_param_ident_part(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitXmlserialize_param_ident_part) {
	 		listener.exitXmlserialize_param_ident_part(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitXmlserialize_param_ident_part) {
			return visitor.visitXmlserialize_param_ident_part(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Sql_plus_commandContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public SOLIDUS(): TerminalNode {
		return this.getToken(PlSqlParser.SOLIDUS, 0);
	}
	public EXIT(): TerminalNode {
		return this.getToken(PlSqlParser.EXIT, 0);
	}
	public PROMPT_MESSAGE(): TerminalNode {
		return this.getToken(PlSqlParser.PROMPT_MESSAGE, 0);
	}
	public SHOW(): TerminalNode {
		return this.getToken(PlSqlParser.SHOW, 0);
	}
	public ERR(): TerminalNode {
		return this.getToken(PlSqlParser.ERR, 0);
	}
	public ERRORS(): TerminalNode {
		return this.getToken(PlSqlParser.ERRORS, 0);
	}
	public START_CMD(): TerminalNode {
		return this.getToken(PlSqlParser.START_CMD, 0);
	}
	public whenever_command(): Whenever_commandContext {
		return this.getTypedRuleContext(Whenever_commandContext, 0) as Whenever_commandContext;
	}
	public set_command(): Set_commandContext {
		return this.getTypedRuleContext(Set_commandContext, 0) as Set_commandContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_sql_plus_command;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterSql_plus_command) {
	 		listener.enterSql_plus_command(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitSql_plus_command) {
	 		listener.exitSql_plus_command(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitSql_plus_command) {
			return visitor.visitSql_plus_command(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Whenever_commandContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public WHENEVER(): TerminalNode {
		return this.getToken(PlSqlParser.WHENEVER, 0);
	}
	public SQLERROR(): TerminalNode {
		return this.getToken(PlSqlParser.SQLERROR, 0);
	}
	public OSERROR(): TerminalNode {
		return this.getToken(PlSqlParser.OSERROR, 0);
	}
	public EXIT(): TerminalNode {
		return this.getToken(PlSqlParser.EXIT, 0);
	}
	public CONTINUE(): TerminalNode {
		return this.getToken(PlSqlParser.CONTINUE, 0);
	}
	public COMMIT(): TerminalNode {
		return this.getToken(PlSqlParser.COMMIT, 0);
	}
	public ROLLBACK(): TerminalNode {
		return this.getToken(PlSqlParser.ROLLBACK, 0);
	}
	public NONE(): TerminalNode {
		return this.getToken(PlSqlParser.NONE, 0);
	}
	public SUCCESS(): TerminalNode {
		return this.getToken(PlSqlParser.SUCCESS, 0);
	}
	public FAILURE(): TerminalNode {
		return this.getToken(PlSqlParser.FAILURE, 0);
	}
	public WARNING(): TerminalNode {
		return this.getToken(PlSqlParser.WARNING, 0);
	}
	public variable_name(): Variable_nameContext {
		return this.getTypedRuleContext(Variable_nameContext, 0) as Variable_nameContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_whenever_command;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterWhenever_command) {
	 		listener.enterWhenever_command(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitWhenever_command) {
	 		listener.exitWhenever_command(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitWhenever_command) {
			return visitor.visitWhenever_command(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Set_commandContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public SET(): TerminalNode {
		return this.getToken(PlSqlParser.SET, 0);
	}
	public regular_id_list(): Regular_idContext[] {
		return this.getTypedRuleContexts(Regular_idContext) as Regular_idContext[];
	}
	public regular_id(i: number): Regular_idContext {
		return this.getTypedRuleContext(Regular_idContext, i) as Regular_idContext;
	}
	public CHAR_STRING(): TerminalNode {
		return this.getToken(PlSqlParser.CHAR_STRING, 0);
	}
	public ON(): TerminalNode {
		return this.getToken(PlSqlParser.ON, 0);
	}
	public OFF(): TerminalNode {
		return this.getToken(PlSqlParser.OFF, 0);
	}
	public numeric(): NumericContext {
		return this.getTypedRuleContext(NumericContext, 0) as NumericContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_set_command;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterSet_command) {
	 		listener.enterSet_command(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitSet_command) {
	 		listener.exitSet_command(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitSet_command) {
			return visitor.visitSet_command(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Partition_extension_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public SUBPARTITION(): TerminalNode {
		return this.getToken(PlSqlParser.SUBPARTITION, 0);
	}
	public PARTITION(): TerminalNode {
		return this.getToken(PlSqlParser.PARTITION, 0);
	}
	public FOR(): TerminalNode {
		return this.getToken(PlSqlParser.FOR, 0);
	}
	public expressions(): ExpressionsContext {
		return this.getTypedRuleContext(ExpressionsContext, 0) as ExpressionsContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_partition_extension_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterPartition_extension_clause) {
	 		listener.enterPartition_extension_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitPartition_extension_clause) {
	 		listener.exitPartition_extension_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitPartition_extension_clause) {
			return visitor.visitPartition_extension_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Column_aliasContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public identifier(): IdentifierContext {
		return this.getTypedRuleContext(IdentifierContext, 0) as IdentifierContext;
	}
	public quoted_string(): Quoted_stringContext {
		return this.getTypedRuleContext(Quoted_stringContext, 0) as Quoted_stringContext;
	}
	public AS(): TerminalNode {
		return this.getToken(PlSqlParser.AS, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_column_alias;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterColumn_alias) {
	 		listener.enterColumn_alias(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitColumn_alias) {
	 		listener.exitColumn_alias(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitColumn_alias) {
			return visitor.visitColumn_alias(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Table_aliasContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public identifier(): IdentifierContext {
		return this.getTypedRuleContext(IdentifierContext, 0) as IdentifierContext;
	}
	public quoted_string(): Quoted_stringContext {
		return this.getTypedRuleContext(Quoted_stringContext, 0) as Quoted_stringContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_table_alias;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterTable_alias) {
	 		listener.enterTable_alias(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitTable_alias) {
	 		listener.exitTable_alias(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitTable_alias) {
			return visitor.visitTable_alias(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Where_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public WHERE(): TerminalNode {
		return this.getToken(PlSqlParser.WHERE, 0);
	}
	public CURRENT(): TerminalNode {
		return this.getToken(PlSqlParser.CURRENT, 0);
	}
	public OF(): TerminalNode {
		return this.getToken(PlSqlParser.OF, 0);
	}
	public cursor_name(): Cursor_nameContext {
		return this.getTypedRuleContext(Cursor_nameContext, 0) as Cursor_nameContext;
	}
	public expression(): ExpressionContext {
		return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_where_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterWhere_clause) {
	 		listener.enterWhere_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitWhere_clause) {
	 		listener.exitWhere_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitWhere_clause) {
			return visitor.visitWhere_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Into_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public INTO(): TerminalNode {
		return this.getToken(PlSqlParser.INTO, 0);
	}
	public variable_name_list(): Variable_nameContext[] {
		return this.getTypedRuleContexts(Variable_nameContext) as Variable_nameContext[];
	}
	public variable_name(i: number): Variable_nameContext {
		return this.getTypedRuleContext(Variable_nameContext, i) as Variable_nameContext;
	}
	public BULK(): TerminalNode {
		return this.getToken(PlSqlParser.BULK, 0);
	}
	public COLLECT(): TerminalNode {
		return this.getToken(PlSqlParser.COLLECT, 0);
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_into_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterInto_clause) {
	 		listener.enterInto_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitInto_clause) {
	 		listener.exitInto_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitInto_clause) {
			return visitor.visitInto_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Xml_column_nameContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public identifier(): IdentifierContext {
		return this.getTypedRuleContext(IdentifierContext, 0) as IdentifierContext;
	}
	public quoted_string(): Quoted_stringContext {
		return this.getTypedRuleContext(Quoted_stringContext, 0) as Quoted_stringContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_xml_column_name;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterXml_column_name) {
	 		listener.enterXml_column_name(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitXml_column_name) {
	 		listener.exitXml_column_name(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitXml_column_name) {
			return visitor.visitXml_column_name(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Cost_class_nameContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public identifier(): IdentifierContext {
		return this.getTypedRuleContext(IdentifierContext, 0) as IdentifierContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_cost_class_name;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterCost_class_name) {
	 		listener.enterCost_class_name(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitCost_class_name) {
	 		listener.exitCost_class_name(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitCost_class_name) {
			return visitor.visitCost_class_name(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Attribute_nameContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public identifier(): IdentifierContext {
		return this.getTypedRuleContext(IdentifierContext, 0) as IdentifierContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_attribute_name;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterAttribute_name) {
	 		listener.enterAttribute_name(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitAttribute_name) {
	 		listener.exitAttribute_name(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitAttribute_name) {
			return visitor.visitAttribute_name(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Savepoint_nameContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public identifier(): IdentifierContext {
		return this.getTypedRuleContext(IdentifierContext, 0) as IdentifierContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_savepoint_name;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterSavepoint_name) {
	 		listener.enterSavepoint_name(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitSavepoint_name) {
	 		listener.exitSavepoint_name(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitSavepoint_name) {
			return visitor.visitSavepoint_name(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Rollback_segment_nameContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public identifier(): IdentifierContext {
		return this.getTypedRuleContext(IdentifierContext, 0) as IdentifierContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_rollback_segment_name;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterRollback_segment_name) {
	 		listener.enterRollback_segment_name(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitRollback_segment_name) {
	 		listener.exitRollback_segment_name(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitRollback_segment_name) {
			return visitor.visitRollback_segment_name(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Table_var_nameContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public identifier(): IdentifierContext {
		return this.getTypedRuleContext(IdentifierContext, 0) as IdentifierContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_table_var_name;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterTable_var_name) {
	 		listener.enterTable_var_name(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitTable_var_name) {
	 		listener.exitTable_var_name(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitTable_var_name) {
			return visitor.visitTable_var_name(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Schema_nameContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public identifier(): IdentifierContext {
		return this.getTypedRuleContext(IdentifierContext, 0) as IdentifierContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_schema_name;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterSchema_name) {
	 		listener.enterSchema_name(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitSchema_name) {
	 		listener.exitSchema_name(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitSchema_name) {
			return visitor.visitSchema_name(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Routine_nameContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public identifier(): IdentifierContext {
		return this.getTypedRuleContext(IdentifierContext, 0) as IdentifierContext;
	}
	public PERIOD_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.PERIOD);
	}
	public PERIOD(i: number): TerminalNode {
		return this.getToken(PlSqlParser.PERIOD, i);
	}
	public id_expression_list(): Id_expressionContext[] {
		return this.getTypedRuleContexts(Id_expressionContext) as Id_expressionContext[];
	}
	public id_expression(i: number): Id_expressionContext {
		return this.getTypedRuleContext(Id_expressionContext, i) as Id_expressionContext;
	}
	public AT_SIGN(): TerminalNode {
		return this.getToken(PlSqlParser.AT_SIGN, 0);
	}
	public link_name(): Link_nameContext {
		return this.getTypedRuleContext(Link_nameContext, 0) as Link_nameContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_routine_name;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterRoutine_name) {
	 		listener.enterRoutine_name(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitRoutine_name) {
	 		listener.exitRoutine_name(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitRoutine_name) {
			return visitor.visitRoutine_name(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Package_nameContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public identifier(): IdentifierContext {
		return this.getTypedRuleContext(IdentifierContext, 0) as IdentifierContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_package_name;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterPackage_name) {
	 		listener.enterPackage_name(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitPackage_name) {
	 		listener.exitPackage_name(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitPackage_name) {
			return visitor.visitPackage_name(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Implementation_type_nameContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public identifier(): IdentifierContext {
		return this.getTypedRuleContext(IdentifierContext, 0) as IdentifierContext;
	}
	public PERIOD(): TerminalNode {
		return this.getToken(PlSqlParser.PERIOD, 0);
	}
	public id_expression(): Id_expressionContext {
		return this.getTypedRuleContext(Id_expressionContext, 0) as Id_expressionContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_implementation_type_name;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterImplementation_type_name) {
	 		listener.enterImplementation_type_name(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitImplementation_type_name) {
	 		listener.exitImplementation_type_name(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitImplementation_type_name) {
			return visitor.visitImplementation_type_name(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Parameter_nameContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public identifier(): IdentifierContext {
		return this.getTypedRuleContext(IdentifierContext, 0) as IdentifierContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_parameter_name;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterParameter_name) {
	 		listener.enterParameter_name(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitParameter_name) {
	 		listener.exitParameter_name(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitParameter_name) {
			return visitor.visitParameter_name(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Reference_model_nameContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public identifier(): IdentifierContext {
		return this.getTypedRuleContext(IdentifierContext, 0) as IdentifierContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_reference_model_name;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterReference_model_name) {
	 		listener.enterReference_model_name(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitReference_model_name) {
	 		listener.exitReference_model_name(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitReference_model_name) {
			return visitor.visitReference_model_name(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Main_model_nameContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public identifier(): IdentifierContext {
		return this.getTypedRuleContext(IdentifierContext, 0) as IdentifierContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_main_model_name;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterMain_model_name) {
	 		listener.enterMain_model_name(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitMain_model_name) {
	 		listener.exitMain_model_name(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitMain_model_name) {
			return visitor.visitMain_model_name(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Container_tableview_nameContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public identifier(): IdentifierContext {
		return this.getTypedRuleContext(IdentifierContext, 0) as IdentifierContext;
	}
	public PERIOD(): TerminalNode {
		return this.getToken(PlSqlParser.PERIOD, 0);
	}
	public id_expression(): Id_expressionContext {
		return this.getTypedRuleContext(Id_expressionContext, 0) as Id_expressionContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_container_tableview_name;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterContainer_tableview_name) {
	 		listener.enterContainer_tableview_name(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitContainer_tableview_name) {
	 		listener.exitContainer_tableview_name(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitContainer_tableview_name) {
			return visitor.visitContainer_tableview_name(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Aggregate_function_nameContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public identifier(): IdentifierContext {
		return this.getTypedRuleContext(IdentifierContext, 0) as IdentifierContext;
	}
	public PERIOD_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.PERIOD);
	}
	public PERIOD(i: number): TerminalNode {
		return this.getToken(PlSqlParser.PERIOD, i);
	}
	public id_expression_list(): Id_expressionContext[] {
		return this.getTypedRuleContexts(Id_expressionContext) as Id_expressionContext[];
	}
	public id_expression(i: number): Id_expressionContext {
		return this.getTypedRuleContext(Id_expressionContext, i) as Id_expressionContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_aggregate_function_name;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterAggregate_function_name) {
	 		listener.enterAggregate_function_name(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitAggregate_function_name) {
	 		listener.exitAggregate_function_name(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitAggregate_function_name) {
			return visitor.visitAggregate_function_name(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Query_nameContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public identifier(): IdentifierContext {
		return this.getTypedRuleContext(IdentifierContext, 0) as IdentifierContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_query_name;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterQuery_name) {
	 		listener.enterQuery_name(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitQuery_name) {
	 		listener.exitQuery_name(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitQuery_name) {
			return visitor.visitQuery_name(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Grantee_nameContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public id_expression(): Id_expressionContext {
		return this.getTypedRuleContext(Id_expressionContext, 0) as Id_expressionContext;
	}
	public identified_by(): Identified_byContext {
		return this.getTypedRuleContext(Identified_byContext, 0) as Identified_byContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_grantee_name;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterGrantee_name) {
	 		listener.enterGrantee_name(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitGrantee_name) {
	 		listener.exitGrantee_name(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitGrantee_name) {
			return visitor.visitGrantee_name(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Role_nameContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public id_expression(): Id_expressionContext {
		return this.getTypedRuleContext(Id_expressionContext, 0) as Id_expressionContext;
	}
	public CONNECT(): TerminalNode {
		return this.getToken(PlSqlParser.CONNECT, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_role_name;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterRole_name) {
	 		listener.enterRole_name(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitRole_name) {
	 		listener.exitRole_name(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitRole_name) {
			return visitor.visitRole_name(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Constraint_nameContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public identifier(): IdentifierContext {
		return this.getTypedRuleContext(IdentifierContext, 0) as IdentifierContext;
	}
	public PERIOD_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.PERIOD);
	}
	public PERIOD(i: number): TerminalNode {
		return this.getToken(PlSqlParser.PERIOD, i);
	}
	public id_expression_list(): Id_expressionContext[] {
		return this.getTypedRuleContexts(Id_expressionContext) as Id_expressionContext[];
	}
	public id_expression(i: number): Id_expressionContext {
		return this.getTypedRuleContext(Id_expressionContext, i) as Id_expressionContext;
	}
	public AT_SIGN(): TerminalNode {
		return this.getToken(PlSqlParser.AT_SIGN, 0);
	}
	public link_name(): Link_nameContext {
		return this.getTypedRuleContext(Link_nameContext, 0) as Link_nameContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_constraint_name;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterConstraint_name) {
	 		listener.enterConstraint_name(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitConstraint_name) {
	 		listener.exitConstraint_name(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitConstraint_name) {
			return visitor.visitConstraint_name(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Label_nameContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public id_expression(): Id_expressionContext {
		return this.getTypedRuleContext(Id_expressionContext, 0) as Id_expressionContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_label_name;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterLabel_name) {
	 		listener.enterLabel_name(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitLabel_name) {
	 		listener.exitLabel_name(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitLabel_name) {
			return visitor.visitLabel_name(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Type_nameContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public id_expression_list(): Id_expressionContext[] {
		return this.getTypedRuleContexts(Id_expressionContext) as Id_expressionContext[];
	}
	public id_expression(i: number): Id_expressionContext {
		return this.getTypedRuleContext(Id_expressionContext, i) as Id_expressionContext;
	}
	public PERIOD_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.PERIOD);
	}
	public PERIOD(i: number): TerminalNode {
		return this.getToken(PlSqlParser.PERIOD, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_type_name;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterType_name) {
	 		listener.enterType_name(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitType_name) {
	 		listener.exitType_name(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitType_name) {
			return visitor.visitType_name(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Sequence_nameContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public id_expression_list(): Id_expressionContext[] {
		return this.getTypedRuleContexts(Id_expressionContext) as Id_expressionContext[];
	}
	public id_expression(i: number): Id_expressionContext {
		return this.getTypedRuleContext(Id_expressionContext, i) as Id_expressionContext;
	}
	public PERIOD_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.PERIOD);
	}
	public PERIOD(i: number): TerminalNode {
		return this.getToken(PlSqlParser.PERIOD, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_sequence_name;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterSequence_name) {
	 		listener.enterSequence_name(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitSequence_name) {
	 		listener.exitSequence_name(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitSequence_name) {
			return visitor.visitSequence_name(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Exception_nameContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public identifier(): IdentifierContext {
		return this.getTypedRuleContext(IdentifierContext, 0) as IdentifierContext;
	}
	public PERIOD_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.PERIOD);
	}
	public PERIOD(i: number): TerminalNode {
		return this.getToken(PlSqlParser.PERIOD, i);
	}
	public id_expression_list(): Id_expressionContext[] {
		return this.getTypedRuleContexts(Id_expressionContext) as Id_expressionContext[];
	}
	public id_expression(i: number): Id_expressionContext {
		return this.getTypedRuleContext(Id_expressionContext, i) as Id_expressionContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_exception_name;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterException_name) {
	 		listener.enterException_name(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitException_name) {
	 		listener.exitException_name(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitException_name) {
			return visitor.visitException_name(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Function_nameContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public identifier(): IdentifierContext {
		return this.getTypedRuleContext(IdentifierContext, 0) as IdentifierContext;
	}
	public PERIOD(): TerminalNode {
		return this.getToken(PlSqlParser.PERIOD, 0);
	}
	public id_expression(): Id_expressionContext {
		return this.getTypedRuleContext(Id_expressionContext, 0) as Id_expressionContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_function_name;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterFunction_name) {
	 		listener.enterFunction_name(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitFunction_name) {
	 		listener.exitFunction_name(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitFunction_name) {
			return visitor.visitFunction_name(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Procedure_nameContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public identifier(): IdentifierContext {
		return this.getTypedRuleContext(IdentifierContext, 0) as IdentifierContext;
	}
	public PERIOD(): TerminalNode {
		return this.getToken(PlSqlParser.PERIOD, 0);
	}
	public id_expression(): Id_expressionContext {
		return this.getTypedRuleContext(Id_expressionContext, 0) as Id_expressionContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_procedure_name;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterProcedure_name) {
	 		listener.enterProcedure_name(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitProcedure_name) {
	 		listener.exitProcedure_name(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitProcedure_name) {
			return visitor.visitProcedure_name(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Trigger_nameContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public identifier(): IdentifierContext {
		return this.getTypedRuleContext(IdentifierContext, 0) as IdentifierContext;
	}
	public PERIOD(): TerminalNode {
		return this.getToken(PlSqlParser.PERIOD, 0);
	}
	public id_expression(): Id_expressionContext {
		return this.getTypedRuleContext(Id_expressionContext, 0) as Id_expressionContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_trigger_name;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterTrigger_name) {
	 		listener.enterTrigger_name(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitTrigger_name) {
	 		listener.exitTrigger_name(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitTrigger_name) {
			return visitor.visitTrigger_name(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Variable_nameContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public id_expression_list(): Id_expressionContext[] {
		return this.getTypedRuleContexts(Id_expressionContext) as Id_expressionContext[];
	}
	public id_expression(i: number): Id_expressionContext {
		return this.getTypedRuleContext(Id_expressionContext, i) as Id_expressionContext;
	}
	public INTRODUCER(): TerminalNode {
		return this.getToken(PlSqlParser.INTRODUCER, 0);
	}
	public char_set_name(): Char_set_nameContext {
		return this.getTypedRuleContext(Char_set_nameContext, 0) as Char_set_nameContext;
	}
	public PERIOD(): TerminalNode {
		return this.getToken(PlSqlParser.PERIOD, 0);
	}
	public bind_variable(): Bind_variableContext {
		return this.getTypedRuleContext(Bind_variableContext, 0) as Bind_variableContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_variable_name;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterVariable_name) {
	 		listener.enterVariable_name(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitVariable_name) {
	 		listener.exitVariable_name(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitVariable_name) {
			return visitor.visitVariable_name(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Index_nameContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public identifier(): IdentifierContext {
		return this.getTypedRuleContext(IdentifierContext, 0) as IdentifierContext;
	}
	public PERIOD(): TerminalNode {
		return this.getToken(PlSqlParser.PERIOD, 0);
	}
	public id_expression(): Id_expressionContext {
		return this.getTypedRuleContext(Id_expressionContext, 0) as Id_expressionContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_index_name;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterIndex_name) {
	 		listener.enterIndex_name(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitIndex_name) {
	 		listener.exitIndex_name(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitIndex_name) {
			return visitor.visitIndex_name(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Cursor_nameContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public general_element(): General_elementContext {
		return this.getTypedRuleContext(General_elementContext, 0) as General_elementContext;
	}
	public bind_variable(): Bind_variableContext {
		return this.getTypedRuleContext(Bind_variableContext, 0) as Bind_variableContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_cursor_name;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterCursor_name) {
	 		listener.enterCursor_name(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitCursor_name) {
	 		listener.exitCursor_name(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitCursor_name) {
			return visitor.visitCursor_name(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Record_nameContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public identifier(): IdentifierContext {
		return this.getTypedRuleContext(IdentifierContext, 0) as IdentifierContext;
	}
	public bind_variable(): Bind_variableContext {
		return this.getTypedRuleContext(Bind_variableContext, 0) as Bind_variableContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_record_name;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterRecord_name) {
	 		listener.enterRecord_name(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitRecord_name) {
	 		listener.exitRecord_name(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitRecord_name) {
			return visitor.visitRecord_name(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Collection_nameContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public identifier(): IdentifierContext {
		return this.getTypedRuleContext(IdentifierContext, 0) as IdentifierContext;
	}
	public PERIOD(): TerminalNode {
		return this.getToken(PlSqlParser.PERIOD, 0);
	}
	public id_expression(): Id_expressionContext {
		return this.getTypedRuleContext(Id_expressionContext, 0) as Id_expressionContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_collection_name;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterCollection_name) {
	 		listener.enterCollection_name(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitCollection_name) {
	 		listener.exitCollection_name(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitCollection_name) {
			return visitor.visitCollection_name(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Link_nameContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public identifier(): IdentifierContext {
		return this.getTypedRuleContext(IdentifierContext, 0) as IdentifierContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_link_name;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterLink_name) {
	 		listener.enterLink_name(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitLink_name) {
	 		listener.exitLink_name(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitLink_name) {
			return visitor.visitLink_name(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Column_nameContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public identifier(): IdentifierContext {
		return this.getTypedRuleContext(IdentifierContext, 0) as IdentifierContext;
	}
	public PERIOD_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.PERIOD);
	}
	public PERIOD(i: number): TerminalNode {
		return this.getToken(PlSqlParser.PERIOD, i);
	}
	public id_expression_list(): Id_expressionContext[] {
		return this.getTypedRuleContexts(Id_expressionContext) as Id_expressionContext[];
	}
	public id_expression(i: number): Id_expressionContext {
		return this.getTypedRuleContext(Id_expressionContext, i) as Id_expressionContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_column_name;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterColumn_name) {
	 		listener.enterColumn_name(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitColumn_name) {
	 		listener.exitColumn_name(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitColumn_name) {
			return visitor.visitColumn_name(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Tableview_nameContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public identifier(): IdentifierContext {
		return this.getTypedRuleContext(IdentifierContext, 0) as IdentifierContext;
	}
	public PERIOD(): TerminalNode {
		return this.getToken(PlSqlParser.PERIOD, 0);
	}
	public id_expression(): Id_expressionContext {
		return this.getTypedRuleContext(Id_expressionContext, 0) as Id_expressionContext;
	}
	public AT_SIGN(): TerminalNode {
		return this.getToken(PlSqlParser.AT_SIGN, 0);
	}
	public link_name(): Link_nameContext {
		return this.getTypedRuleContext(Link_nameContext, 0) as Link_nameContext;
	}
	public partition_extension_clause(): Partition_extension_clauseContext {
		return this.getTypedRuleContext(Partition_extension_clauseContext, 0) as Partition_extension_clauseContext;
	}
	public xmltable(): XmltableContext {
		return this.getTypedRuleContext(XmltableContext, 0) as XmltableContext;
	}
	public outer_join_sign(): Outer_join_signContext {
		return this.getTypedRuleContext(Outer_join_signContext, 0) as Outer_join_signContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_tableview_name;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterTableview_name) {
	 		listener.enterTableview_name(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitTableview_name) {
	 		listener.exitTableview_name(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitTableview_name) {
			return visitor.visitTableview_name(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class XmltableContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public XMLTABLE(): TerminalNode {
		return this.getToken(PlSqlParser.XMLTABLE, 0);
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public concatenation(): ConcatenationContext {
		return this.getTypedRuleContext(ConcatenationContext, 0) as ConcatenationContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public xml_namespaces_clause(): Xml_namespaces_clauseContext {
		return this.getTypedRuleContext(Xml_namespaces_clauseContext, 0) as Xml_namespaces_clauseContext;
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
	public xml_passing_clause(): Xml_passing_clauseContext {
		return this.getTypedRuleContext(Xml_passing_clauseContext, 0) as Xml_passing_clauseContext;
	}
	public COLUMNS(): TerminalNode {
		return this.getToken(PlSqlParser.COLUMNS, 0);
	}
	public xml_table_column_list(): Xml_table_columnContext[] {
		return this.getTypedRuleContexts(Xml_table_columnContext) as Xml_table_columnContext[];
	}
	public xml_table_column(i: number): Xml_table_columnContext {
		return this.getTypedRuleContext(Xml_table_columnContext, i) as Xml_table_columnContext;
	}
	public PERIOD(): TerminalNode {
		return this.getToken(PlSqlParser.PERIOD, 0);
	}
	public general_element_part(): General_element_partContext {
		return this.getTypedRuleContext(General_element_partContext, 0) as General_element_partContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_xmltable;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterXmltable) {
	 		listener.enterXmltable(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitXmltable) {
	 		listener.exitXmltable(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitXmltable) {
			return visitor.visitXmltable(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Char_set_nameContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public id_expression_list(): Id_expressionContext[] {
		return this.getTypedRuleContexts(Id_expressionContext) as Id_expressionContext[];
	}
	public id_expression(i: number): Id_expressionContext {
		return this.getTypedRuleContext(Id_expressionContext, i) as Id_expressionContext;
	}
	public PERIOD_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.PERIOD);
	}
	public PERIOD(i: number): TerminalNode {
		return this.getToken(PlSqlParser.PERIOD, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_char_set_name;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterChar_set_name) {
	 		listener.enterChar_set_name(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitChar_set_name) {
	 		listener.exitChar_set_name(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitChar_set_name) {
			return visitor.visitChar_set_name(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Synonym_nameContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public identifier(): IdentifierContext {
		return this.getTypedRuleContext(IdentifierContext, 0) as IdentifierContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_synonym_name;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterSynonym_name) {
	 		listener.enterSynonym_name(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitSynonym_name) {
	 		listener.exitSynonym_name(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitSynonym_name) {
			return visitor.visitSynonym_name(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Schema_object_nameContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public id_expression(): Id_expressionContext {
		return this.getTypedRuleContext(Id_expressionContext, 0) as Id_expressionContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_schema_object_name;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterSchema_object_name) {
	 		listener.enterSchema_object_name(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitSchema_object_name) {
	 		listener.exitSchema_object_name(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitSchema_object_name) {
			return visitor.visitSchema_object_name(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Dir_object_nameContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public id_expression(): Id_expressionContext {
		return this.getTypedRuleContext(Id_expressionContext, 0) as Id_expressionContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_dir_object_name;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterDir_object_name) {
	 		listener.enterDir_object_name(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitDir_object_name) {
	 		listener.exitDir_object_name(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitDir_object_name) {
			return visitor.visitDir_object_name(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class User_object_nameContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public id_expression(): Id_expressionContext {
		return this.getTypedRuleContext(Id_expressionContext, 0) as Id_expressionContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_user_object_name;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterUser_object_name) {
	 		listener.enterUser_object_name(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitUser_object_name) {
	 		listener.exitUser_object_name(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitUser_object_name) {
			return visitor.visitUser_object_name(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Grant_object_nameContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public tableview_name(): Tableview_nameContext {
		return this.getTypedRuleContext(Tableview_nameContext, 0) as Tableview_nameContext;
	}
	public USER(): TerminalNode {
		return this.getToken(PlSqlParser.USER, 0);
	}
	public user_object_name_list(): User_object_nameContext[] {
		return this.getTypedRuleContexts(User_object_nameContext) as User_object_nameContext[];
	}
	public user_object_name(i: number): User_object_nameContext {
		return this.getTypedRuleContext(User_object_nameContext, i) as User_object_nameContext;
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
	public DIRECTORY(): TerminalNode {
		return this.getToken(PlSqlParser.DIRECTORY, 0);
	}
	public dir_object_name(): Dir_object_nameContext {
		return this.getTypedRuleContext(Dir_object_nameContext, 0) as Dir_object_nameContext;
	}
	public EDITION(): TerminalNode {
		return this.getToken(PlSqlParser.EDITION, 0);
	}
	public schema_object_name(): Schema_object_nameContext {
		return this.getTypedRuleContext(Schema_object_nameContext, 0) as Schema_object_nameContext;
	}
	public MINING(): TerminalNode {
		return this.getToken(PlSqlParser.MINING, 0);
	}
	public MODEL(): TerminalNode {
		return this.getToken(PlSqlParser.MODEL, 0);
	}
	public JAVA(): TerminalNode {
		return this.getToken(PlSqlParser.JAVA, 0);
	}
	public SOURCE(): TerminalNode {
		return this.getToken(PlSqlParser.SOURCE, 0);
	}
	public RESOURCE(): TerminalNode {
		return this.getToken(PlSqlParser.RESOURCE, 0);
	}
	public SQL(): TerminalNode {
		return this.getToken(PlSqlParser.SQL, 0);
	}
	public TRANSLATION(): TerminalNode {
		return this.getToken(PlSqlParser.TRANSLATION, 0);
	}
	public PROFILE(): TerminalNode {
		return this.getToken(PlSqlParser.PROFILE, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_grant_object_name;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterGrant_object_name) {
	 		listener.enterGrant_object_name(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitGrant_object_name) {
	 		listener.exitGrant_object_name(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitGrant_object_name) {
			return visitor.visitGrant_object_name(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Column_listContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public column_name_list(): Column_nameContext[] {
		return this.getTypedRuleContexts(Column_nameContext) as Column_nameContext[];
	}
	public column_name(i: number): Column_nameContext {
		return this.getTypedRuleContext(Column_nameContext, i) as Column_nameContext;
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_column_list;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterColumn_list) {
	 		listener.enterColumn_list(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitColumn_list) {
	 		listener.exitColumn_list(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitColumn_list) {
			return visitor.visitColumn_list(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Paren_column_listContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public column_list(): Column_listContext {
		return this.getTypedRuleContext(Column_listContext, 0) as Column_listContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_paren_column_list;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterParen_column_list) {
	 		listener.enterParen_column_list(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitParen_column_list) {
	 		listener.exitParen_column_list(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitParen_column_list) {
			return visitor.visitParen_column_list(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Keep_clauseContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public KEEP(): TerminalNode {
		return this.getToken(PlSqlParser.KEEP, 0);
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public DENSE_RANK(): TerminalNode {
		return this.getToken(PlSqlParser.DENSE_RANK, 0);
	}
	public order_by_clause(): Order_by_clauseContext {
		return this.getTypedRuleContext(Order_by_clauseContext, 0) as Order_by_clauseContext;
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public FIRST(): TerminalNode {
		return this.getToken(PlSqlParser.FIRST, 0);
	}
	public LAST(): TerminalNode {
		return this.getToken(PlSqlParser.LAST, 0);
	}
	public over_clause(): Over_clauseContext {
		return this.getTypedRuleContext(Over_clauseContext, 0) as Over_clauseContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_keep_clause;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterKeep_clause) {
	 		listener.enterKeep_clause(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitKeep_clause) {
	 		listener.exitKeep_clause(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitKeep_clause) {
			return visitor.visitKeep_clause(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Function_argumentContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public argument_list(): ArgumentContext[] {
		return this.getTypedRuleContexts(ArgumentContext) as ArgumentContext[];
	}
	public argument(i: number): ArgumentContext {
		return this.getTypedRuleContext(ArgumentContext, i) as ArgumentContext;
	}
	public keep_clause(): Keep_clauseContext {
		return this.getTypedRuleContext(Keep_clauseContext, 0) as Keep_clauseContext;
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_function_argument;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterFunction_argument) {
	 		listener.enterFunction_argument(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitFunction_argument) {
	 		listener.exitFunction_argument(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitFunction_argument) {
			return visitor.visitFunction_argument(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Function_argument_analyticContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public argument_list(): ArgumentContext[] {
		return this.getTypedRuleContexts(ArgumentContext) as ArgumentContext[];
	}
	public argument(i: number): ArgumentContext {
		return this.getTypedRuleContext(ArgumentContext, i) as ArgumentContext;
	}
	public keep_clause(): Keep_clauseContext {
		return this.getTypedRuleContext(Keep_clauseContext, 0) as Keep_clauseContext;
	}
	public respect_or_ignore_nulls_list(): Respect_or_ignore_nullsContext[] {
		return this.getTypedRuleContexts(Respect_or_ignore_nullsContext) as Respect_or_ignore_nullsContext[];
	}
	public respect_or_ignore_nulls(i: number): Respect_or_ignore_nullsContext {
		return this.getTypedRuleContext(Respect_or_ignore_nullsContext, i) as Respect_or_ignore_nullsContext;
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_function_argument_analytic;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterFunction_argument_analytic) {
	 		listener.enterFunction_argument_analytic(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitFunction_argument_analytic) {
	 		listener.exitFunction_argument_analytic(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitFunction_argument_analytic) {
			return visitor.visitFunction_argument_analytic(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Function_argument_modelingContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public column_name(): Column_nameContext {
		return this.getTypedRuleContext(Column_nameContext, 0) as Column_nameContext;
	}
	public USING(): TerminalNode {
		return this.getToken(PlSqlParser.USING, 0);
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public tableview_name(): Tableview_nameContext {
		return this.getTypedRuleContext(Tableview_nameContext, 0) as Tableview_nameContext;
	}
	public PERIOD(): TerminalNode {
		return this.getToken(PlSqlParser.PERIOD, 0);
	}
	public ASTERISK(): TerminalNode {
		return this.getToken(PlSqlParser.ASTERISK, 0);
	}
	public expression_list(): ExpressionContext[] {
		return this.getTypedRuleContexts(ExpressionContext) as ExpressionContext[];
	}
	public expression(i: number): ExpressionContext {
		return this.getTypedRuleContext(ExpressionContext, i) as ExpressionContext;
	}
	public COMMA_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COMMA);
	}
	public COMMA(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, i);
	}
	public keep_clause(): Keep_clauseContext {
		return this.getTypedRuleContext(Keep_clauseContext, 0) as Keep_clauseContext;
	}
	public numeric_list(): NumericContext[] {
		return this.getTypedRuleContexts(NumericContext) as NumericContext[];
	}
	public numeric(i: number): NumericContext {
		return this.getTypedRuleContext(NumericContext, i) as NumericContext;
	}
	public NULL__list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.NULL_);
	}
	public NULL_(i: number): TerminalNode {
		return this.getToken(PlSqlParser.NULL_, i);
	}
	public column_alias_list(): Column_aliasContext[] {
		return this.getTypedRuleContexts(Column_aliasContext) as Column_aliasContext[];
	}
	public column_alias(i: number): Column_aliasContext {
		return this.getTypedRuleContext(Column_aliasContext, i) as Column_aliasContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_function_argument_modeling;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterFunction_argument_modeling) {
	 		listener.enterFunction_argument_modeling(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitFunction_argument_modeling) {
	 		listener.exitFunction_argument_modeling(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitFunction_argument_modeling) {
			return visitor.visitFunction_argument_modeling(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Respect_or_ignore_nullsContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public NULLS(): TerminalNode {
		return this.getToken(PlSqlParser.NULLS, 0);
	}
	public RESPECT(): TerminalNode {
		return this.getToken(PlSqlParser.RESPECT, 0);
	}
	public IGNORE(): TerminalNode {
		return this.getToken(PlSqlParser.IGNORE, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_respect_or_ignore_nulls;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterRespect_or_ignore_nulls) {
	 		listener.enterRespect_or_ignore_nulls(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitRespect_or_ignore_nulls) {
	 		listener.exitRespect_or_ignore_nulls(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitRespect_or_ignore_nulls) {
			return visitor.visitRespect_or_ignore_nulls(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class ArgumentContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public expression(): ExpressionContext {
		return this.getTypedRuleContext(ExpressionContext, 0) as ExpressionContext;
	}
	public identifier(): IdentifierContext {
		return this.getTypedRuleContext(IdentifierContext, 0) as IdentifierContext;
	}
	public EQUALS_OP(): TerminalNode {
		return this.getToken(PlSqlParser.EQUALS_OP, 0);
	}
	public GREATER_THAN_OP(): TerminalNode {
		return this.getToken(PlSqlParser.GREATER_THAN_OP, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_argument;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterArgument) {
	 		listener.enterArgument(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitArgument) {
	 		listener.exitArgument(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitArgument) {
			return visitor.visitArgument(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Type_specContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public datatype(): DatatypeContext {
		return this.getTypedRuleContext(DatatypeContext, 0) as DatatypeContext;
	}
	public type_name(): Type_nameContext {
		return this.getTypedRuleContext(Type_nameContext, 0) as Type_nameContext;
	}
	public REF(): TerminalNode {
		return this.getToken(PlSqlParser.REF, 0);
	}
	public PERCENT_ROWTYPE(): TerminalNode {
		return this.getToken(PlSqlParser.PERCENT_ROWTYPE, 0);
	}
	public PERCENT_TYPE(): TerminalNode {
		return this.getToken(PlSqlParser.PERCENT_TYPE, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_type_spec;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterType_spec) {
	 		listener.enterType_spec(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitType_spec) {
	 		listener.exitType_spec(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitType_spec) {
			return visitor.visitType_spec(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class DatatypeContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public native_datatype_element(): Native_datatype_elementContext {
		return this.getTypedRuleContext(Native_datatype_elementContext, 0) as Native_datatype_elementContext;
	}
	public precision_part(): Precision_partContext {
		return this.getTypedRuleContext(Precision_partContext, 0) as Precision_partContext;
	}
	public WITH(): TerminalNode {
		return this.getToken(PlSqlParser.WITH, 0);
	}
	public TIME(): TerminalNode {
		return this.getToken(PlSqlParser.TIME, 0);
	}
	public ZONE(): TerminalNode {
		return this.getToken(PlSqlParser.ZONE, 0);
	}
	public CHARACTER(): TerminalNode {
		return this.getToken(PlSqlParser.CHARACTER, 0);
	}
	public SET(): TerminalNode {
		return this.getToken(PlSqlParser.SET, 0);
	}
	public char_set_name(): Char_set_nameContext {
		return this.getTypedRuleContext(Char_set_nameContext, 0) as Char_set_nameContext;
	}
	public LOCAL(): TerminalNode {
		return this.getToken(PlSqlParser.LOCAL, 0);
	}
	public INTERVAL(): TerminalNode {
		return this.getToken(PlSqlParser.INTERVAL, 0);
	}
	public TO(): TerminalNode {
		return this.getToken(PlSqlParser.TO, 0);
	}
	public YEAR(): TerminalNode {
		return this.getToken(PlSqlParser.YEAR, 0);
	}
	public DAY(): TerminalNode {
		return this.getToken(PlSqlParser.DAY, 0);
	}
	public MONTH(): TerminalNode {
		return this.getToken(PlSqlParser.MONTH, 0);
	}
	public SECOND(): TerminalNode {
		return this.getToken(PlSqlParser.SECOND, 0);
	}
	public LEFT_PAREN_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.LEFT_PAREN);
	}
	public LEFT_PAREN(i: number): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, i);
	}
	public expression_list(): ExpressionContext[] {
		return this.getTypedRuleContexts(ExpressionContext) as ExpressionContext[];
	}
	public expression(i: number): ExpressionContext {
		return this.getTypedRuleContext(ExpressionContext, i) as ExpressionContext;
	}
	public RIGHT_PAREN_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.RIGHT_PAREN);
	}
	public RIGHT_PAREN(i: number): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_datatype;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterDatatype) {
	 		listener.enterDatatype(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitDatatype) {
	 		listener.exitDatatype(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitDatatype) {
			return visitor.visitDatatype(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Precision_partContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
	public numeric_list(): NumericContext[] {
		return this.getTypedRuleContexts(NumericContext) as NumericContext[];
	}
	public numeric(i: number): NumericContext {
		return this.getTypedRuleContext(NumericContext, i) as NumericContext;
	}
	public ASTERISK(): TerminalNode {
		return this.getToken(PlSqlParser.ASTERISK, 0);
	}
	public COMMA(): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, 0);
	}
	public CHAR(): TerminalNode {
		return this.getToken(PlSqlParser.CHAR, 0);
	}
	public BYTE(): TerminalNode {
		return this.getToken(PlSqlParser.BYTE, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_precision_part;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterPrecision_part) {
	 		listener.enterPrecision_part(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitPrecision_part) {
	 		listener.exitPrecision_part(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitPrecision_part) {
			return visitor.visitPrecision_part(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Native_datatype_elementContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public BINARY_INTEGER(): TerminalNode {
		return this.getToken(PlSqlParser.BINARY_INTEGER, 0);
	}
	public PLS_INTEGER(): TerminalNode {
		return this.getToken(PlSqlParser.PLS_INTEGER, 0);
	}
	public NATURAL(): TerminalNode {
		return this.getToken(PlSqlParser.NATURAL, 0);
	}
	public BINARY_FLOAT(): TerminalNode {
		return this.getToken(PlSqlParser.BINARY_FLOAT, 0);
	}
	public BINARY_DOUBLE(): TerminalNode {
		return this.getToken(PlSqlParser.BINARY_DOUBLE, 0);
	}
	public NATURALN(): TerminalNode {
		return this.getToken(PlSqlParser.NATURALN, 0);
	}
	public POSITIVE(): TerminalNode {
		return this.getToken(PlSqlParser.POSITIVE, 0);
	}
	public POSITIVEN(): TerminalNode {
		return this.getToken(PlSqlParser.POSITIVEN, 0);
	}
	public SIGNTYPE(): TerminalNode {
		return this.getToken(PlSqlParser.SIGNTYPE, 0);
	}
	public SIMPLE_INTEGER(): TerminalNode {
		return this.getToken(PlSqlParser.SIMPLE_INTEGER, 0);
	}
	public NVARCHAR2(): TerminalNode {
		return this.getToken(PlSqlParser.NVARCHAR2, 0);
	}
	public DEC(): TerminalNode {
		return this.getToken(PlSqlParser.DEC, 0);
	}
	public INTEGER(): TerminalNode {
		return this.getToken(PlSqlParser.INTEGER, 0);
	}
	public INT(): TerminalNode {
		return this.getToken(PlSqlParser.INT, 0);
	}
	public NUMERIC(): TerminalNode {
		return this.getToken(PlSqlParser.NUMERIC, 0);
	}
	public SMALLINT(): TerminalNode {
		return this.getToken(PlSqlParser.SMALLINT, 0);
	}
	public NUMBER(): TerminalNode {
		return this.getToken(PlSqlParser.NUMBER, 0);
	}
	public DECIMAL(): TerminalNode {
		return this.getToken(PlSqlParser.DECIMAL, 0);
	}
	public DOUBLE(): TerminalNode {
		return this.getToken(PlSqlParser.DOUBLE, 0);
	}
	public PRECISION(): TerminalNode {
		return this.getToken(PlSqlParser.PRECISION, 0);
	}
	public FLOAT(): TerminalNode {
		return this.getToken(PlSqlParser.FLOAT, 0);
	}
	public REAL(): TerminalNode {
		return this.getToken(PlSqlParser.REAL, 0);
	}
	public NCHAR(): TerminalNode {
		return this.getToken(PlSqlParser.NCHAR, 0);
	}
	public LONG(): TerminalNode {
		return this.getToken(PlSqlParser.LONG, 0);
	}
	public RAW(): TerminalNode {
		return this.getToken(PlSqlParser.RAW, 0);
	}
	public CHAR(): TerminalNode {
		return this.getToken(PlSqlParser.CHAR, 0);
	}
	public CHARACTER(): TerminalNode {
		return this.getToken(PlSqlParser.CHARACTER, 0);
	}
	public VARCHAR2(): TerminalNode {
		return this.getToken(PlSqlParser.VARCHAR2, 0);
	}
	public VARCHAR(): TerminalNode {
		return this.getToken(PlSqlParser.VARCHAR, 0);
	}
	public STRING(): TerminalNode {
		return this.getToken(PlSqlParser.STRING, 0);
	}
	public BOOLEAN(): TerminalNode {
		return this.getToken(PlSqlParser.BOOLEAN, 0);
	}
	public DATE(): TerminalNode {
		return this.getToken(PlSqlParser.DATE, 0);
	}
	public ROWID(): TerminalNode {
		return this.getToken(PlSqlParser.ROWID, 0);
	}
	public UROWID(): TerminalNode {
		return this.getToken(PlSqlParser.UROWID, 0);
	}
	public YEAR(): TerminalNode {
		return this.getToken(PlSqlParser.YEAR, 0);
	}
	public MONTH(): TerminalNode {
		return this.getToken(PlSqlParser.MONTH, 0);
	}
	public DAY(): TerminalNode {
		return this.getToken(PlSqlParser.DAY, 0);
	}
	public HOUR(): TerminalNode {
		return this.getToken(PlSqlParser.HOUR, 0);
	}
	public MINUTE(): TerminalNode {
		return this.getToken(PlSqlParser.MINUTE, 0);
	}
	public SECOND(): TerminalNode {
		return this.getToken(PlSqlParser.SECOND, 0);
	}
	public TIMEZONE_HOUR(): TerminalNode {
		return this.getToken(PlSqlParser.TIMEZONE_HOUR, 0);
	}
	public TIMEZONE_MINUTE(): TerminalNode {
		return this.getToken(PlSqlParser.TIMEZONE_MINUTE, 0);
	}
	public TIMEZONE_REGION(): TerminalNode {
		return this.getToken(PlSqlParser.TIMEZONE_REGION, 0);
	}
	public TIMEZONE_ABBR(): TerminalNode {
		return this.getToken(PlSqlParser.TIMEZONE_ABBR, 0);
	}
	public TIMESTAMP(): TerminalNode {
		return this.getToken(PlSqlParser.TIMESTAMP, 0);
	}
	public TIMESTAMP_UNCONSTRAINED(): TerminalNode {
		return this.getToken(PlSqlParser.TIMESTAMP_UNCONSTRAINED, 0);
	}
	public TIMESTAMP_TZ_UNCONSTRAINED(): TerminalNode {
		return this.getToken(PlSqlParser.TIMESTAMP_TZ_UNCONSTRAINED, 0);
	}
	public TIMESTAMP_LTZ_UNCONSTRAINED(): TerminalNode {
		return this.getToken(PlSqlParser.TIMESTAMP_LTZ_UNCONSTRAINED, 0);
	}
	public YMINTERVAL_UNCONSTRAINED(): TerminalNode {
		return this.getToken(PlSqlParser.YMINTERVAL_UNCONSTRAINED, 0);
	}
	public DSINTERVAL_UNCONSTRAINED(): TerminalNode {
		return this.getToken(PlSqlParser.DSINTERVAL_UNCONSTRAINED, 0);
	}
	public BFILE(): TerminalNode {
		return this.getToken(PlSqlParser.BFILE, 0);
	}
	public BLOB(): TerminalNode {
		return this.getToken(PlSqlParser.BLOB, 0);
	}
	public CLOB(): TerminalNode {
		return this.getToken(PlSqlParser.CLOB, 0);
	}
	public NCLOB(): TerminalNode {
		return this.getToken(PlSqlParser.NCLOB, 0);
	}
	public MLSLABEL(): TerminalNode {
		return this.getToken(PlSqlParser.MLSLABEL, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_native_datatype_element;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterNative_datatype_element) {
	 		listener.enterNative_datatype_element(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitNative_datatype_element) {
	 		listener.exitNative_datatype_element(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitNative_datatype_element) {
			return visitor.visitNative_datatype_element(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Bind_variableContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public BINDVAR_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.BINDVAR);
	}
	public BINDVAR(i: number): TerminalNode {
		return this.getToken(PlSqlParser.BINDVAR, i);
	}
	public COLON_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.COLON);
	}
	public COLON(i: number): TerminalNode {
		return this.getToken(PlSqlParser.COLON, i);
	}
	public UNSIGNED_INTEGER_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.UNSIGNED_INTEGER);
	}
	public UNSIGNED_INTEGER(i: number): TerminalNode {
		return this.getToken(PlSqlParser.UNSIGNED_INTEGER, i);
	}
	public PERIOD_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.PERIOD);
	}
	public PERIOD(i: number): TerminalNode {
		return this.getToken(PlSqlParser.PERIOD, i);
	}
	public general_element_part_list(): General_element_partContext[] {
		return this.getTypedRuleContexts(General_element_partContext) as General_element_partContext[];
	}
	public general_element_part(i: number): General_element_partContext {
		return this.getTypedRuleContext(General_element_partContext, i) as General_element_partContext;
	}
	public INDICATOR(): TerminalNode {
		return this.getToken(PlSqlParser.INDICATOR, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_bind_variable;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterBind_variable) {
	 		listener.enterBind_variable(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitBind_variable) {
	 		listener.exitBind_variable(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitBind_variable) {
			return visitor.visitBind_variable(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class General_elementContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public general_element_part_list(): General_element_partContext[] {
		return this.getTypedRuleContexts(General_element_partContext) as General_element_partContext[];
	}
	public general_element_part(i: number): General_element_partContext {
		return this.getTypedRuleContext(General_element_partContext, i) as General_element_partContext;
	}
	public PERIOD_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.PERIOD);
	}
	public PERIOD(i: number): TerminalNode {
		return this.getToken(PlSqlParser.PERIOD, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_general_element;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterGeneral_element) {
	 		listener.enterGeneral_element(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitGeneral_element) {
	 		listener.exitGeneral_element(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitGeneral_element) {
			return visitor.visitGeneral_element(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class General_element_partContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public id_expression_list(): Id_expressionContext[] {
		return this.getTypedRuleContexts(Id_expressionContext) as Id_expressionContext[];
	}
	public id_expression(i: number): Id_expressionContext {
		return this.getTypedRuleContext(Id_expressionContext, i) as Id_expressionContext;
	}
	public INTRODUCER(): TerminalNode {
		return this.getToken(PlSqlParser.INTRODUCER, 0);
	}
	public char_set_name(): Char_set_nameContext {
		return this.getTypedRuleContext(Char_set_nameContext, 0) as Char_set_nameContext;
	}
	public PERIOD_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.PERIOD);
	}
	public PERIOD(i: number): TerminalNode {
		return this.getToken(PlSqlParser.PERIOD, i);
	}
	public AT_SIGN(): TerminalNode {
		return this.getToken(PlSqlParser.AT_SIGN, 0);
	}
	public link_name(): Link_nameContext {
		return this.getTypedRuleContext(Link_nameContext, 0) as Link_nameContext;
	}
	public function_argument(): Function_argumentContext {
		return this.getTypedRuleContext(Function_argumentContext, 0) as Function_argumentContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_general_element_part;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterGeneral_element_part) {
	 		listener.enterGeneral_element_part(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitGeneral_element_part) {
	 		listener.exitGeneral_element_part(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitGeneral_element_part) {
			return visitor.visitGeneral_element_part(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Table_elementContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public id_expression_list(): Id_expressionContext[] {
		return this.getTypedRuleContexts(Id_expressionContext) as Id_expressionContext[];
	}
	public id_expression(i: number): Id_expressionContext {
		return this.getTypedRuleContext(Id_expressionContext, i) as Id_expressionContext;
	}
	public INTRODUCER(): TerminalNode {
		return this.getToken(PlSqlParser.INTRODUCER, 0);
	}
	public char_set_name(): Char_set_nameContext {
		return this.getTypedRuleContext(Char_set_nameContext, 0) as Char_set_nameContext;
	}
	public PERIOD_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.PERIOD);
	}
	public PERIOD(i: number): TerminalNode {
		return this.getToken(PlSqlParser.PERIOD, i);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_table_element;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterTable_element) {
	 		listener.enterTable_element(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitTable_element) {
	 		listener.exitTable_element(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitTable_element) {
			return visitor.visitTable_element(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Object_privilegeContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public ALL(): TerminalNode {
		return this.getToken(PlSqlParser.ALL, 0);
	}
	public PRIVILEGES(): TerminalNode {
		return this.getToken(PlSqlParser.PRIVILEGES, 0);
	}
	public ALTER(): TerminalNode {
		return this.getToken(PlSqlParser.ALTER, 0);
	}
	public DEBUG(): TerminalNode {
		return this.getToken(PlSqlParser.DEBUG, 0);
	}
	public DELETE(): TerminalNode {
		return this.getToken(PlSqlParser.DELETE, 0);
	}
	public EXECUTE(): TerminalNode {
		return this.getToken(PlSqlParser.EXECUTE, 0);
	}
	public FLASHBACK(): TerminalNode {
		return this.getToken(PlSqlParser.FLASHBACK, 0);
	}
	public ARCHIVE(): TerminalNode {
		return this.getToken(PlSqlParser.ARCHIVE, 0);
	}
	public INDEX(): TerminalNode {
		return this.getToken(PlSqlParser.INDEX, 0);
	}
	public INHERIT(): TerminalNode {
		return this.getToken(PlSqlParser.INHERIT, 0);
	}
	public INSERT(): TerminalNode {
		return this.getToken(PlSqlParser.INSERT, 0);
	}
	public KEEP(): TerminalNode {
		return this.getToken(PlSqlParser.KEEP, 0);
	}
	public SEQUENCE(): TerminalNode {
		return this.getToken(PlSqlParser.SEQUENCE, 0);
	}
	public MERGE(): TerminalNode {
		return this.getToken(PlSqlParser.MERGE, 0);
	}
	public VIEW(): TerminalNode {
		return this.getToken(PlSqlParser.VIEW, 0);
	}
	public ON(): TerminalNode {
		return this.getToken(PlSqlParser.ON, 0);
	}
	public COMMIT(): TerminalNode {
		return this.getToken(PlSqlParser.COMMIT, 0);
	}
	public REFRESH(): TerminalNode {
		return this.getToken(PlSqlParser.REFRESH, 0);
	}
	public QUERY(): TerminalNode {
		return this.getToken(PlSqlParser.QUERY, 0);
	}
	public REWRITE(): TerminalNode {
		return this.getToken(PlSqlParser.REWRITE, 0);
	}
	public READ(): TerminalNode {
		return this.getToken(PlSqlParser.READ, 0);
	}
	public REFERENCES(): TerminalNode {
		return this.getToken(PlSqlParser.REFERENCES, 0);
	}
	public SELECT(): TerminalNode {
		return this.getToken(PlSqlParser.SELECT, 0);
	}
	public TRANSLATE(): TerminalNode {
		return this.getToken(PlSqlParser.TRANSLATE, 0);
	}
	public SQL(): TerminalNode {
		return this.getToken(PlSqlParser.SQL, 0);
	}
	public UNDER(): TerminalNode {
		return this.getToken(PlSqlParser.UNDER, 0);
	}
	public UPDATE(): TerminalNode {
		return this.getToken(PlSqlParser.UPDATE, 0);
	}
	public USE(): TerminalNode {
		return this.getToken(PlSqlParser.USE, 0);
	}
	public WRITE(): TerminalNode {
		return this.getToken(PlSqlParser.WRITE, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_object_privilege;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterObject_privilege) {
	 		listener.enterObject_privilege(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitObject_privilege) {
	 		listener.exitObject_privilege(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitObject_privilege) {
			return visitor.visitObject_privilege(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class System_privilegeContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public ALL(): TerminalNode {
		return this.getToken(PlSqlParser.ALL, 0);
	}
	public PRIVILEGES(): TerminalNode {
		return this.getToken(PlSqlParser.PRIVILEGES, 0);
	}
	public ADVISOR(): TerminalNode {
		return this.getToken(PlSqlParser.ADVISOR, 0);
	}
	public ADMINISTER(): TerminalNode {
		return this.getToken(PlSqlParser.ADMINISTER, 0);
	}
	public SQL(): TerminalNode {
		return this.getToken(PlSqlParser.SQL, 0);
	}
	public TUNING(): TerminalNode {
		return this.getToken(PlSqlParser.TUNING, 0);
	}
	public SET(): TerminalNode {
		return this.getToken(PlSqlParser.SET, 0);
	}
	public ANY(): TerminalNode {
		return this.getToken(PlSqlParser.ANY, 0);
	}
	public PROFILE(): TerminalNode {
		return this.getToken(PlSqlParser.PROFILE, 0);
	}
	public ALTER(): TerminalNode {
		return this.getToken(PlSqlParser.ALTER, 0);
	}
	public CREATE(): TerminalNode {
		return this.getToken(PlSqlParser.CREATE, 0);
	}
	public DROP(): TerminalNode {
		return this.getToken(PlSqlParser.DROP, 0);
	}
	public MANAGEMENT(): TerminalNode {
		return this.getToken(PlSqlParser.MANAGEMENT, 0);
	}
	public OBJECT(): TerminalNode {
		return this.getToken(PlSqlParser.OBJECT, 0);
	}
	public CLUSTER(): TerminalNode {
		return this.getToken(PlSqlParser.CLUSTER, 0);
	}
	public CONTEXT(): TerminalNode {
		return this.getToken(PlSqlParser.CONTEXT, 0);
	}
	public EXEMPT(): TerminalNode {
		return this.getToken(PlSqlParser.EXEMPT, 0);
	}
	public REDACTION(): TerminalNode {
		return this.getToken(PlSqlParser.REDACTION, 0);
	}
	public POLICY(): TerminalNode {
		return this.getToken(PlSqlParser.POLICY, 0);
	}
	public DATABASE(): TerminalNode {
		return this.getToken(PlSqlParser.DATABASE, 0);
	}
	public LINK(): TerminalNode {
		return this.getToken(PlSqlParser.LINK, 0);
	}
	public PUBLIC(): TerminalNode {
		return this.getToken(PlSqlParser.PUBLIC, 0);
	}
	public DEBUG(): TerminalNode {
		return this.getToken(PlSqlParser.DEBUG, 0);
	}
	public CONNECT(): TerminalNode {
		return this.getToken(PlSqlParser.CONNECT, 0);
	}
	public SESSION(): TerminalNode {
		return this.getToken(PlSqlParser.SESSION, 0);
	}
	public PROCEDURE(): TerminalNode {
		return this.getToken(PlSqlParser.PROCEDURE, 0);
	}
	public ANALYZE(): TerminalNode {
		return this.getToken(PlSqlParser.ANALYZE, 0);
	}
	public DICTIONARY(): TerminalNode {
		return this.getToken(PlSqlParser.DICTIONARY, 0);
	}
	public DIMENSION(): TerminalNode {
		return this.getToken(PlSqlParser.DIMENSION, 0);
	}
	public DIRECTORY(): TerminalNode {
		return this.getToken(PlSqlParser.DIRECTORY, 0);
	}
	public EDITION(): TerminalNode {
		return this.getToken(PlSqlParser.EDITION, 0);
	}
	public FLASHBACK(): TerminalNode {
		return this.getToken(PlSqlParser.FLASHBACK, 0);
	}
	public ARCHIVE(): TerminalNode {
		return this.getToken(PlSqlParser.ARCHIVE, 0);
	}
	public TABLE(): TerminalNode {
		return this.getToken(PlSqlParser.TABLE, 0);
	}
	public INDEX(): TerminalNode {
		return this.getToken(PlSqlParser.INDEX, 0);
	}
	public INDEXTYPE(): TerminalNode {
		return this.getToken(PlSqlParser.INDEXTYPE, 0);
	}
	public EXECUTE(): TerminalNode {
		return this.getToken(PlSqlParser.EXECUTE, 0);
	}
	public JOB(): TerminalNode {
		return this.getToken(PlSqlParser.JOB, 0);
	}
	public EXTERNAL(): TerminalNode {
		return this.getToken(PlSqlParser.EXTERNAL, 0);
	}
	public CLASS(): TerminalNode {
		return this.getToken(PlSqlParser.CLASS, 0);
	}
	public PROGRAM(): TerminalNode {
		return this.getToken(PlSqlParser.PROGRAM, 0);
	}
	public MANAGE(): TerminalNode {
		return this.getToken(PlSqlParser.MANAGE, 0);
	}
	public SCHEDULER(): TerminalNode {
		return this.getToken(PlSqlParser.SCHEDULER, 0);
	}
	public KEY(): TerminalNode {
		return this.getToken(PlSqlParser.KEY, 0);
	}
	public LIBRARY(): TerminalNode {
		return this.getToken(PlSqlParser.LIBRARY, 0);
	}
	public LOGMINING(): TerminalNode {
		return this.getToken(PlSqlParser.LOGMINING, 0);
	}
	public MATERIALIZED(): TerminalNode {
		return this.getToken(PlSqlParser.MATERIALIZED, 0);
	}
	public VIEW(): TerminalNode {
		return this.getToken(PlSqlParser.VIEW, 0);
	}
	public QUERY(): TerminalNode {
		return this.getToken(PlSqlParser.QUERY, 0);
	}
	public REWRITE(): TerminalNode {
		return this.getToken(PlSqlParser.REWRITE, 0);
	}
	public GLOBAL(): TerminalNode {
		return this.getToken(PlSqlParser.GLOBAL, 0);
	}
	public ON(): TerminalNode {
		return this.getToken(PlSqlParser.ON, 0);
	}
	public COMMIT(): TerminalNode {
		return this.getToken(PlSqlParser.COMMIT, 0);
	}
	public REFRESH(): TerminalNode {
		return this.getToken(PlSqlParser.REFRESH, 0);
	}
	public MINING(): TerminalNode {
		return this.getToken(PlSqlParser.MINING, 0);
	}
	public MODEL(): TerminalNode {
		return this.getToken(PlSqlParser.MODEL, 0);
	}
	public SELECT(): TerminalNode {
		return this.getToken(PlSqlParser.SELECT, 0);
	}
	public COMMENT(): TerminalNode {
		return this.getToken(PlSqlParser.COMMENT, 0);
	}
	public CUBE(): TerminalNode {
		return this.getToken(PlSqlParser.CUBE, 0);
	}
	public UPDATE(): TerminalNode {
		return this.getToken(PlSqlParser.UPDATE, 0);
	}
	public MEASURE(): TerminalNode {
		return this.getToken(PlSqlParser.MEASURE, 0);
	}
	public FOLDER(): TerminalNode {
		return this.getToken(PlSqlParser.FOLDER, 0);
	}
	public DELETE(): TerminalNode {
		return this.getToken(PlSqlParser.DELETE, 0);
	}
	public INSERT(): TerminalNode {
		return this.getToken(PlSqlParser.INSERT, 0);
	}
	public BUILD(): TerminalNode {
		return this.getToken(PlSqlParser.BUILD, 0);
	}
	public PROCESS(): TerminalNode {
		return this.getToken(PlSqlParser.PROCESS, 0);
	}
	public OPERATOR(): TerminalNode {
		return this.getToken(PlSqlParser.OPERATOR, 0);
	}
	public OUTLINE(): TerminalNode {
		return this.getToken(PlSqlParser.OUTLINE, 0);
	}
	public PLUGGABLE(): TerminalNode {
		return this.getToken(PlSqlParser.PLUGGABLE, 0);
	}
	public CONTAINER(): TerminalNode {
		return this.getToken(PlSqlParser.CONTAINER, 0);
	}
	public ROLE(): TerminalNode {
		return this.getToken(PlSqlParser.ROLE, 0);
	}
	public GRANT(): TerminalNode {
		return this.getToken(PlSqlParser.GRANT, 0);
	}
	public ROLLBACK(): TerminalNode {
		return this.getToken(PlSqlParser.ROLLBACK, 0);
	}
	public SEGMENT(): TerminalNode {
		return this.getToken(PlSqlParser.SEGMENT, 0);
	}
	public SEQUENCE(): TerminalNode {
		return this.getToken(PlSqlParser.SEQUENCE, 0);
	}
	public RESTRICTED(): TerminalNode {
		return this.getToken(PlSqlParser.RESTRICTED, 0);
	}
	public RESOURCE(): TerminalNode {
		return this.getToken(PlSqlParser.RESOURCE, 0);
	}
	public COST(): TerminalNode {
		return this.getToken(PlSqlParser.COST, 0);
	}
	public TRANSLATION(): TerminalNode {
		return this.getToken(PlSqlParser.TRANSLATION, 0);
	}
	public USE(): TerminalNode {
		return this.getToken(PlSqlParser.USE, 0);
	}
	public TRANSLATE(): TerminalNode {
		return this.getToken(PlSqlParser.TRANSLATE, 0);
	}
	public SYNONYM(): TerminalNode {
		return this.getToken(PlSqlParser.SYNONYM, 0);
	}
	public BACKUP(): TerminalNode {
		return this.getToken(PlSqlParser.BACKUP, 0);
	}
	public LOCK(): TerminalNode {
		return this.getToken(PlSqlParser.LOCK, 0);
	}
	public READ(): TerminalNode {
		return this.getToken(PlSqlParser.READ, 0);
	}
	public TABLESPACE(): TerminalNode {
		return this.getToken(PlSqlParser.TABLESPACE, 0);
	}
	public UNLIMITED(): TerminalNode {
		return this.getToken(PlSqlParser.UNLIMITED, 0);
	}
	public TRIGGER(): TerminalNode {
		return this.getToken(PlSqlParser.TRIGGER, 0);
	}
	public TYPE(): TerminalNode {
		return this.getToken(PlSqlParser.TYPE, 0);
	}
	public UNDER(): TerminalNode {
		return this.getToken(PlSqlParser.UNDER, 0);
	}
	public USER(): TerminalNode {
		return this.getToken(PlSqlParser.USER, 0);
	}
	public MERGE(): TerminalNode {
		return this.getToken(PlSqlParser.MERGE, 0);
	}
	public AUDIT(): TerminalNode {
		return this.getToken(PlSqlParser.AUDIT, 0);
	}
	public BECOME(): TerminalNode {
		return this.getToken(PlSqlParser.BECOME, 0);
	}
	public CHANGE(): TerminalNode {
		return this.getToken(PlSqlParser.CHANGE, 0);
	}
	public NOTIFICATION(): TerminalNode {
		return this.getToken(PlSqlParser.NOTIFICATION, 0);
	}
	public ACCESS(): TerminalNode {
		return this.getToken(PlSqlParser.ACCESS, 0);
	}
	public FORCE(): TerminalNode {
		return this.getToken(PlSqlParser.FORCE, 0);
	}
	public TRANSACTION(): TerminalNode {
		return this.getToken(PlSqlParser.TRANSACTION, 0);
	}
	public PRIVILEGE(): TerminalNode {
		return this.getToken(PlSqlParser.PRIVILEGE, 0);
	}
	public INHERIT(): TerminalNode {
		return this.getToken(PlSqlParser.INHERIT, 0);
	}
	public KEEP(): TerminalNode {
		return this.getToken(PlSqlParser.KEEP, 0);
	}
	public DATE(): TerminalNode {
		return this.getToken(PlSqlParser.DATE, 0);
	}
	public TIME(): TerminalNode {
		return this.getToken(PlSqlParser.TIME, 0);
	}
	public SYSGUID(): TerminalNode {
		return this.getToken(PlSqlParser.SYSGUID, 0);
	}
	public PURGE(): TerminalNode {
		return this.getToken(PlSqlParser.PURGE, 0);
	}
	public DBA_RECYCLEBIN(): TerminalNode {
		return this.getToken(PlSqlParser.DBA_RECYCLEBIN, 0);
	}
	public RESUMABLE(): TerminalNode {
		return this.getToken(PlSqlParser.RESUMABLE, 0);
	}
	public SYSBACKUP(): TerminalNode {
		return this.getToken(PlSqlParser.SYSBACKUP, 0);
	}
	public SYSDBA(): TerminalNode {
		return this.getToken(PlSqlParser.SYSDBA, 0);
	}
	public SYSDG(): TerminalNode {
		return this.getToken(PlSqlParser.SYSDG, 0);
	}
	public SYSKM(): TerminalNode {
		return this.getToken(PlSqlParser.SYSKM, 0);
	}
	public SYSOPER(): TerminalNode {
		return this.getToken(PlSqlParser.SYSOPER, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_system_privilege;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterSystem_privilege) {
	 		listener.enterSystem_privilege(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitSystem_privilege) {
	 		listener.exitSystem_privilege(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitSystem_privilege) {
			return visitor.visitSystem_privilege(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class ConstantContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public TIMESTAMP(): TerminalNode {
		return this.getToken(PlSqlParser.TIMESTAMP, 0);
	}
	public quoted_string_list(): Quoted_stringContext[] {
		return this.getTypedRuleContexts(Quoted_stringContext) as Quoted_stringContext[];
	}
	public quoted_string(i: number): Quoted_stringContext {
		return this.getTypedRuleContext(Quoted_stringContext, i) as Quoted_stringContext;
	}
	public bind_variable_list(): Bind_variableContext[] {
		return this.getTypedRuleContexts(Bind_variableContext) as Bind_variableContext[];
	}
	public bind_variable(i: number): Bind_variableContext {
		return this.getTypedRuleContext(Bind_variableContext, i) as Bind_variableContext;
	}
	public AT(): TerminalNode {
		return this.getToken(PlSqlParser.AT, 0);
	}
	public TIME(): TerminalNode {
		return this.getToken(PlSqlParser.TIME, 0);
	}
	public ZONE(): TerminalNode {
		return this.getToken(PlSqlParser.ZONE, 0);
	}
	public INTERVAL(): TerminalNode {
		return this.getToken(PlSqlParser.INTERVAL, 0);
	}
	public YEAR(): TerminalNode {
		return this.getToken(PlSqlParser.YEAR, 0);
	}
	public MONTH(): TerminalNode {
		return this.getToken(PlSqlParser.MONTH, 0);
	}
	public DAY_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.DAY);
	}
	public DAY(i: number): TerminalNode {
		return this.getToken(PlSqlParser.DAY, i);
	}
	public HOUR_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.HOUR);
	}
	public HOUR(i: number): TerminalNode {
		return this.getToken(PlSqlParser.HOUR, i);
	}
	public MINUTE_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.MINUTE);
	}
	public MINUTE(i: number): TerminalNode {
		return this.getToken(PlSqlParser.MINUTE, i);
	}
	public SECOND_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.SECOND);
	}
	public SECOND(i: number): TerminalNode {
		return this.getToken(PlSqlParser.SECOND, i);
	}
	public general_element_part(): General_element_partContext {
		return this.getTypedRuleContext(General_element_partContext, 0) as General_element_partContext;
	}
	public LEFT_PAREN_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.LEFT_PAREN);
	}
	public LEFT_PAREN(i: number): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, i);
	}
	public RIGHT_PAREN_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.RIGHT_PAREN);
	}
	public RIGHT_PAREN(i: number): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, i);
	}
	public TO(): TerminalNode {
		return this.getToken(PlSqlParser.TO, 0);
	}
	public UNSIGNED_INTEGER_list(): TerminalNode[] {
	    	return this.getTokens(PlSqlParser.UNSIGNED_INTEGER);
	}
	public UNSIGNED_INTEGER(i: number): TerminalNode {
		return this.getToken(PlSqlParser.UNSIGNED_INTEGER, i);
	}
	public COMMA(): TerminalNode {
		return this.getToken(PlSqlParser.COMMA, 0);
	}
	public numeric(): NumericContext {
		return this.getTypedRuleContext(NumericContext, 0) as NumericContext;
	}
	public DATE(): TerminalNode {
		return this.getToken(PlSqlParser.DATE, 0);
	}
	public NULL_(): TerminalNode {
		return this.getToken(PlSqlParser.NULL_, 0);
	}
	public TRUE(): TerminalNode {
		return this.getToken(PlSqlParser.TRUE, 0);
	}
	public FALSE(): TerminalNode {
		return this.getToken(PlSqlParser.FALSE, 0);
	}
	public DBTIMEZONE(): TerminalNode {
		return this.getToken(PlSqlParser.DBTIMEZONE, 0);
	}
	public SESSIONTIMEZONE(): TerminalNode {
		return this.getToken(PlSqlParser.SESSIONTIMEZONE, 0);
	}
	public MINVALUE(): TerminalNode {
		return this.getToken(PlSqlParser.MINVALUE, 0);
	}
	public MAXVALUE(): TerminalNode {
		return this.getToken(PlSqlParser.MAXVALUE, 0);
	}
	public DEFAULT(): TerminalNode {
		return this.getToken(PlSqlParser.DEFAULT, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_constant;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterConstant) {
	 		listener.enterConstant(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitConstant) {
	 		listener.exitConstant(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitConstant) {
			return visitor.visitConstant(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class NumericContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public UNSIGNED_INTEGER(): TerminalNode {
		return this.getToken(PlSqlParser.UNSIGNED_INTEGER, 0);
	}
	public APPROXIMATE_NUM_LIT(): TerminalNode {
		return this.getToken(PlSqlParser.APPROXIMATE_NUM_LIT, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_numeric;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterNumeric) {
	 		listener.enterNumeric(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitNumeric) {
	 		listener.exitNumeric(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitNumeric) {
			return visitor.visitNumeric(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Numeric_negativeContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public MINUS_SIGN(): TerminalNode {
		return this.getToken(PlSqlParser.MINUS_SIGN, 0);
	}
	public numeric(): NumericContext {
		return this.getTypedRuleContext(NumericContext, 0) as NumericContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_numeric_negative;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterNumeric_negative) {
	 		listener.enterNumeric_negative(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitNumeric_negative) {
	 		listener.exitNumeric_negative(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitNumeric_negative) {
			return visitor.visitNumeric_negative(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Quoted_stringContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public CHAR_STRING(): TerminalNode {
		return this.getToken(PlSqlParser.CHAR_STRING, 0);
	}
	public NATIONAL_CHAR_STRING_LIT(): TerminalNode {
		return this.getToken(PlSqlParser.NATIONAL_CHAR_STRING_LIT, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_quoted_string;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterQuoted_string) {
	 		listener.enterQuoted_string(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitQuoted_string) {
	 		listener.exitQuoted_string(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitQuoted_string) {
			return visitor.visitQuoted_string(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class IdentifierContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public id_expression(): Id_expressionContext {
		return this.getTypedRuleContext(Id_expressionContext, 0) as Id_expressionContext;
	}
	public INTRODUCER(): TerminalNode {
		return this.getToken(PlSqlParser.INTRODUCER, 0);
	}
	public char_set_name(): Char_set_nameContext {
		return this.getTypedRuleContext(Char_set_nameContext, 0) as Char_set_nameContext;
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_identifier;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterIdentifier) {
	 		listener.enterIdentifier(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitIdentifier) {
	 		listener.exitIdentifier(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitIdentifier) {
			return visitor.visitIdentifier(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Id_expressionContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public regular_id(): Regular_idContext {
		return this.getTypedRuleContext(Regular_idContext, 0) as Regular_idContext;
	}
	public DELIMITED_ID(): TerminalNode {
		return this.getToken(PlSqlParser.DELIMITED_ID, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_id_expression;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterId_expression) {
	 		listener.enterId_expression(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitId_expression) {
	 		listener.exitId_expression(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitId_expression) {
			return visitor.visitId_expression(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Outer_join_signContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public LEFT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT_PAREN, 0);
	}
	public PLUS_SIGN(): TerminalNode {
		return this.getToken(PlSqlParser.PLUS_SIGN, 0);
	}
	public RIGHT_PAREN(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT_PAREN, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_outer_join_sign;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterOuter_join_sign) {
	 		listener.enterOuter_join_sign(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitOuter_join_sign) {
	 		listener.exitOuter_join_sign(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitOuter_join_sign) {
			return visitor.visitOuter_join_sign(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Regular_idContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public non_reserved_keywords_pre12c(): Non_reserved_keywords_pre12cContext {
		return this.getTypedRuleContext(Non_reserved_keywords_pre12cContext, 0) as Non_reserved_keywords_pre12cContext;
	}
	public non_reserved_keywords_in_12c(): Non_reserved_keywords_in_12cContext {
		return this.getTypedRuleContext(Non_reserved_keywords_in_12cContext, 0) as Non_reserved_keywords_in_12cContext;
	}
	public REGULAR_ID(): TerminalNode {
		return this.getToken(PlSqlParser.REGULAR_ID, 0);
	}
	public A_LETTER(): TerminalNode {
		return this.getToken(PlSqlParser.A_LETTER, 0);
	}
	public AGENT(): TerminalNode {
		return this.getToken(PlSqlParser.AGENT, 0);
	}
	public AGGREGATE(): TerminalNode {
		return this.getToken(PlSqlParser.AGGREGATE, 0);
	}
	public ANALYZE(): TerminalNode {
		return this.getToken(PlSqlParser.ANALYZE, 0);
	}
	public AUTONOMOUS_TRANSACTION(): TerminalNode {
		return this.getToken(PlSqlParser.AUTONOMOUS_TRANSACTION, 0);
	}
	public BATCH(): TerminalNode {
		return this.getToken(PlSqlParser.BATCH, 0);
	}
	public BINARY_INTEGER(): TerminalNode {
		return this.getToken(PlSqlParser.BINARY_INTEGER, 0);
	}
	public BOOLEAN(): TerminalNode {
		return this.getToken(PlSqlParser.BOOLEAN, 0);
	}
	public C_LETTER(): TerminalNode {
		return this.getToken(PlSqlParser.C_LETTER, 0);
	}
	public CHAR(): TerminalNode {
		return this.getToken(PlSqlParser.CHAR, 0);
	}
	public CLUSTER(): TerminalNode {
		return this.getToken(PlSqlParser.CLUSTER, 0);
	}
	public CONSTRUCTOR(): TerminalNode {
		return this.getToken(PlSqlParser.CONSTRUCTOR, 0);
	}
	public CUSTOMDATUM(): TerminalNode {
		return this.getToken(PlSqlParser.CUSTOMDATUM, 0);
	}
	public DECIMAL(): TerminalNode {
		return this.getToken(PlSqlParser.DECIMAL, 0);
	}
	public DELETE(): TerminalNode {
		return this.getToken(PlSqlParser.DELETE, 0);
	}
	public DETERMINISTIC(): TerminalNode {
		return this.getToken(PlSqlParser.DETERMINISTIC, 0);
	}
	public DSINTERVAL_UNCONSTRAINED(): TerminalNode {
		return this.getToken(PlSqlParser.DSINTERVAL_UNCONSTRAINED, 0);
	}
	public ERR(): TerminalNode {
		return this.getToken(PlSqlParser.ERR, 0);
	}
	public EXCEPTION(): TerminalNode {
		return this.getToken(PlSqlParser.EXCEPTION, 0);
	}
	public EXCEPTION_INIT(): TerminalNode {
		return this.getToken(PlSqlParser.EXCEPTION_INIT, 0);
	}
	public EXCEPTIONS(): TerminalNode {
		return this.getToken(PlSqlParser.EXCEPTIONS, 0);
	}
	public EXISTS(): TerminalNode {
		return this.getToken(PlSqlParser.EXISTS, 0);
	}
	public EXIT(): TerminalNode {
		return this.getToken(PlSqlParser.EXIT, 0);
	}
	public FLOAT(): TerminalNode {
		return this.getToken(PlSqlParser.FLOAT, 0);
	}
	public FORALL(): TerminalNode {
		return this.getToken(PlSqlParser.FORALL, 0);
	}
	public INDICES(): TerminalNode {
		return this.getToken(PlSqlParser.INDICES, 0);
	}
	public INOUT(): TerminalNode {
		return this.getToken(PlSqlParser.INOUT, 0);
	}
	public INTEGER(): TerminalNode {
		return this.getToken(PlSqlParser.INTEGER, 0);
	}
	public LANGUAGE(): TerminalNode {
		return this.getToken(PlSqlParser.LANGUAGE, 0);
	}
	public LONG(): TerminalNode {
		return this.getToken(PlSqlParser.LONG, 0);
	}
	public LOOP(): TerminalNode {
		return this.getToken(PlSqlParser.LOOP, 0);
	}
	public NUMBER(): TerminalNode {
		return this.getToken(PlSqlParser.NUMBER, 0);
	}
	public ORADATA(): TerminalNode {
		return this.getToken(PlSqlParser.ORADATA, 0);
	}
	public OSERROR(): TerminalNode {
		return this.getToken(PlSqlParser.OSERROR, 0);
	}
	public OUT(): TerminalNode {
		return this.getToken(PlSqlParser.OUT, 0);
	}
	public OVERRIDING(): TerminalNode {
		return this.getToken(PlSqlParser.OVERRIDING, 0);
	}
	public PARALLEL_ENABLE(): TerminalNode {
		return this.getToken(PlSqlParser.PARALLEL_ENABLE, 0);
	}
	public PIPELINED(): TerminalNode {
		return this.getToken(PlSqlParser.PIPELINED, 0);
	}
	public PLS_INTEGER(): TerminalNode {
		return this.getToken(PlSqlParser.PLS_INTEGER, 0);
	}
	public POSITIVE(): TerminalNode {
		return this.getToken(PlSqlParser.POSITIVE, 0);
	}
	public POSITIVEN(): TerminalNode {
		return this.getToken(PlSqlParser.POSITIVEN, 0);
	}
	public PRAGMA(): TerminalNode {
		return this.getToken(PlSqlParser.PRAGMA, 0);
	}
	public RAISE(): TerminalNode {
		return this.getToken(PlSqlParser.RAISE, 0);
	}
	public RAW(): TerminalNode {
		return this.getToken(PlSqlParser.RAW, 0);
	}
	public RECORD(): TerminalNode {
		return this.getToken(PlSqlParser.RECORD, 0);
	}
	public REF(): TerminalNode {
		return this.getToken(PlSqlParser.REF, 0);
	}
	public RENAME(): TerminalNode {
		return this.getToken(PlSqlParser.RENAME, 0);
	}
	public RESTRICT_REFERENCES(): TerminalNode {
		return this.getToken(PlSqlParser.RESTRICT_REFERENCES, 0);
	}
	public RESULT(): TerminalNode {
		return this.getToken(PlSqlParser.RESULT, 0);
	}
	public SELF(): TerminalNode {
		return this.getToken(PlSqlParser.SELF, 0);
	}
	public SERIALLY_REUSABLE(): TerminalNode {
		return this.getToken(PlSqlParser.SERIALLY_REUSABLE, 0);
	}
	public SET(): TerminalNode {
		return this.getToken(PlSqlParser.SET, 0);
	}
	public SIGNTYPE(): TerminalNode {
		return this.getToken(PlSqlParser.SIGNTYPE, 0);
	}
	public SIMPLE_INTEGER(): TerminalNode {
		return this.getToken(PlSqlParser.SIMPLE_INTEGER, 0);
	}
	public SMALLINT(): TerminalNode {
		return this.getToken(PlSqlParser.SMALLINT, 0);
	}
	public SQLDATA(): TerminalNode {
		return this.getToken(PlSqlParser.SQLDATA, 0);
	}
	public SQLERROR(): TerminalNode {
		return this.getToken(PlSqlParser.SQLERROR, 0);
	}
	public SUBTYPE(): TerminalNode {
		return this.getToken(PlSqlParser.SUBTYPE, 0);
	}
	public TIMESTAMP_LTZ_UNCONSTRAINED(): TerminalNode {
		return this.getToken(PlSqlParser.TIMESTAMP_LTZ_UNCONSTRAINED, 0);
	}
	public TIMESTAMP_TZ_UNCONSTRAINED(): TerminalNode {
		return this.getToken(PlSqlParser.TIMESTAMP_TZ_UNCONSTRAINED, 0);
	}
	public TIMESTAMP_UNCONSTRAINED(): TerminalNode {
		return this.getToken(PlSqlParser.TIMESTAMP_UNCONSTRAINED, 0);
	}
	public TRIGGER(): TerminalNode {
		return this.getToken(PlSqlParser.TRIGGER, 0);
	}
	public VARCHAR(): TerminalNode {
		return this.getToken(PlSqlParser.VARCHAR, 0);
	}
	public VARCHAR2(): TerminalNode {
		return this.getToken(PlSqlParser.VARCHAR2, 0);
	}
	public VARIABLE(): TerminalNode {
		return this.getToken(PlSqlParser.VARIABLE, 0);
	}
	public WARNING(): TerminalNode {
		return this.getToken(PlSqlParser.WARNING, 0);
	}
	public WHILE(): TerminalNode {
		return this.getToken(PlSqlParser.WHILE, 0);
	}
	public XMLAGG(): TerminalNode {
		return this.getToken(PlSqlParser.XMLAGG, 0);
	}
	public YMINTERVAL_UNCONSTRAINED(): TerminalNode {
		return this.getToken(PlSqlParser.YMINTERVAL_UNCONSTRAINED, 0);
	}
	public REGR_(): TerminalNode {
		return this.getToken(PlSqlParser.REGR_, 0);
	}
	public VAR_(): TerminalNode {
		return this.getToken(PlSqlParser.VAR_, 0);
	}
	public COVAR_(): TerminalNode {
		return this.getToken(PlSqlParser.COVAR_, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_regular_id;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterRegular_id) {
	 		listener.enterRegular_id(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitRegular_id) {
	 		listener.exitRegular_id(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitRegular_id) {
			return visitor.visitRegular_id(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Non_reserved_keywords_in_12cContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public ACL(): TerminalNode {
		return this.getToken(PlSqlParser.ACL, 0);
	}
	public ACTION(): TerminalNode {
		return this.getToken(PlSqlParser.ACTION, 0);
	}
	public ACTIONS(): TerminalNode {
		return this.getToken(PlSqlParser.ACTIONS, 0);
	}
	public ACTIVE(): TerminalNode {
		return this.getToken(PlSqlParser.ACTIVE, 0);
	}
	public ACTIVE_DATA(): TerminalNode {
		return this.getToken(PlSqlParser.ACTIVE_DATA, 0);
	}
	public ACTIVITY(): TerminalNode {
		return this.getToken(PlSqlParser.ACTIVITY, 0);
	}
	public ADAPTIVE_PLAN(): TerminalNode {
		return this.getToken(PlSqlParser.ADAPTIVE_PLAN, 0);
	}
	public ADVANCED(): TerminalNode {
		return this.getToken(PlSqlParser.ADVANCED, 0);
	}
	public AFD_DISKSTRING(): TerminalNode {
		return this.getToken(PlSqlParser.AFD_DISKSTRING, 0);
	}
	public ANOMALY(): TerminalNode {
		return this.getToken(PlSqlParser.ANOMALY, 0);
	}
	public ANSI_REARCH(): TerminalNode {
		return this.getToken(PlSqlParser.ANSI_REARCH, 0);
	}
	public APPLICATION(): TerminalNode {
		return this.getToken(PlSqlParser.APPLICATION, 0);
	}
	public APPROX_COUNT_DISTINCT(): TerminalNode {
		return this.getToken(PlSqlParser.APPROX_COUNT_DISTINCT, 0);
	}
	public ARCHIVAL(): TerminalNode {
		return this.getToken(PlSqlParser.ARCHIVAL, 0);
	}
	public ARCHIVED(): TerminalNode {
		return this.getToken(PlSqlParser.ARCHIVED, 0);
	}
	public ASIS(): TerminalNode {
		return this.getToken(PlSqlParser.ASIS, 0);
	}
	public ASSIGN(): TerminalNode {
		return this.getToken(PlSqlParser.ASSIGN, 0);
	}
	public AUTO_LOGIN(): TerminalNode {
		return this.getToken(PlSqlParser.AUTO_LOGIN, 0);
	}
	public AUTO_REOPTIMIZE(): TerminalNode {
		return this.getToken(PlSqlParser.AUTO_REOPTIMIZE, 0);
	}
	public AVRO(): TerminalNode {
		return this.getToken(PlSqlParser.AVRO, 0);
	}
	public BACKGROUND(): TerminalNode {
		return this.getToken(PlSqlParser.BACKGROUND, 0);
	}
	public BATCHSIZE(): TerminalNode {
		return this.getToken(PlSqlParser.BATCHSIZE, 0);
	}
	public BATCH_TABLE_ACCESS_BY_ROWID(): TerminalNode {
		return this.getToken(PlSqlParser.BATCH_TABLE_ACCESS_BY_ROWID, 0);
	}
	public BEGINNING(): TerminalNode {
		return this.getToken(PlSqlParser.BEGINNING, 0);
	}
	public BEQUEATH(): TerminalNode {
		return this.getToken(PlSqlParser.BEQUEATH, 0);
	}
	public BITMAP_AND(): TerminalNode {
		return this.getToken(PlSqlParser.BITMAP_AND, 0);
	}
	public BSON(): TerminalNode {
		return this.getToken(PlSqlParser.BSON, 0);
	}
	public CACHING(): TerminalNode {
		return this.getToken(PlSqlParser.CACHING, 0);
	}
	public CALCULATED(): TerminalNode {
		return this.getToken(PlSqlParser.CALCULATED, 0);
	}
	public CALLBACK(): TerminalNode {
		return this.getToken(PlSqlParser.CALLBACK, 0);
	}
	public CAPACITY(): TerminalNode {
		return this.getToken(PlSqlParser.CAPACITY, 0);
	}
	public CDBDEFAULT(): TerminalNode {
		return this.getToken(PlSqlParser.CDBDEFAULT, 0);
	}
	public CLASSIFIER(): TerminalNode {
		return this.getToken(PlSqlParser.CLASSIFIER, 0);
	}
	public CLEANUP(): TerminalNode {
		return this.getToken(PlSqlParser.CLEANUP, 0);
	}
	public CLIENT(): TerminalNode {
		return this.getToken(PlSqlParser.CLIENT, 0);
	}
	public CLUSTER_DETAILS(): TerminalNode {
		return this.getToken(PlSqlParser.CLUSTER_DETAILS, 0);
	}
	public CLUSTER_DISTANCE(): TerminalNode {
		return this.getToken(PlSqlParser.CLUSTER_DISTANCE, 0);
	}
	public CLUSTERING(): TerminalNode {
		return this.getToken(PlSqlParser.CLUSTERING, 0);
	}
	public COMMON_DATA(): TerminalNode {
		return this.getToken(PlSqlParser.COMMON_DATA, 0);
	}
	public COMPONENT(): TerminalNode {
		return this.getToken(PlSqlParser.COMPONENT, 0);
	}
	public COMPONENTS(): TerminalNode {
		return this.getToken(PlSqlParser.COMPONENTS, 0);
	}
	public CON_DBID_TO_ID(): TerminalNode {
		return this.getToken(PlSqlParser.CON_DBID_TO_ID, 0);
	}
	public CONDITION(): TerminalNode {
		return this.getToken(PlSqlParser.CONDITION, 0);
	}
	public CONDITIONAL(): TerminalNode {
		return this.getToken(PlSqlParser.CONDITIONAL, 0);
	}
	public CON_GUID_TO_ID(): TerminalNode {
		return this.getToken(PlSqlParser.CON_GUID_TO_ID, 0);
	}
	public CON_ID(): TerminalNode {
		return this.getToken(PlSqlParser.CON_ID, 0);
	}
	public CON_NAME_TO_ID(): TerminalNode {
		return this.getToken(PlSqlParser.CON_NAME_TO_ID, 0);
	}
	public CONTAINER_DATA(): TerminalNode {
		return this.getToken(PlSqlParser.CONTAINER_DATA, 0);
	}
	public CONTAINERS(): TerminalNode {
		return this.getToken(PlSqlParser.CONTAINERS, 0);
	}
	public CON_UID_TO_ID(): TerminalNode {
		return this.getToken(PlSqlParser.CON_UID_TO_ID, 0);
	}
	public COOKIE(): TerminalNode {
		return this.getToken(PlSqlParser.COOKIE, 0);
	}
	public COPY(): TerminalNode {
		return this.getToken(PlSqlParser.COPY, 0);
	}
	public CREATE_FILE_DEST(): TerminalNode {
		return this.getToken(PlSqlParser.CREATE_FILE_DEST, 0);
	}
	public CREDENTIAL(): TerminalNode {
		return this.getToken(PlSqlParser.CREDENTIAL, 0);
	}
	public CRITICAL(): TerminalNode {
		return this.getToken(PlSqlParser.CRITICAL, 0);
	}
	public CUBE_AJ(): TerminalNode {
		return this.getToken(PlSqlParser.CUBE_AJ, 0);
	}
	public CUBE_SJ(): TerminalNode {
		return this.getToken(PlSqlParser.CUBE_SJ, 0);
	}
	public DATAMOVEMENT(): TerminalNode {
		return this.getToken(PlSqlParser.DATAMOVEMENT, 0);
	}
	public DATAOBJ_TO_MAT_PARTITION(): TerminalNode {
		return this.getToken(PlSqlParser.DATAOBJ_TO_MAT_PARTITION, 0);
	}
	public DATAPUMP(): TerminalNode {
		return this.getToken(PlSqlParser.DATAPUMP, 0);
	}
	public DATA_SECURITY_REWRITE_LIMIT(): TerminalNode {
		return this.getToken(PlSqlParser.DATA_SECURITY_REWRITE_LIMIT, 0);
	}
	public DAYS(): TerminalNode {
		return this.getToken(PlSqlParser.DAYS, 0);
	}
	public DB_UNIQUE_NAME(): TerminalNode {
		return this.getToken(PlSqlParser.DB_UNIQUE_NAME, 0);
	}
	public DECORRELATE(): TerminalNode {
		return this.getToken(PlSqlParser.DECORRELATE, 0);
	}
	public DEFINE(): TerminalNode {
		return this.getToken(PlSqlParser.DEFINE, 0);
	}
	public DELEGATE(): TerminalNode {
		return this.getToken(PlSqlParser.DELEGATE, 0);
	}
	public DELETE_ALL(): TerminalNode {
		return this.getToken(PlSqlParser.DELETE_ALL, 0);
	}
	public DESTROY(): TerminalNode {
		return this.getToken(PlSqlParser.DESTROY, 0);
	}
	public DIMENSIONS(): TerminalNode {
		return this.getToken(PlSqlParser.DIMENSIONS, 0);
	}
	public DISABLE_ALL(): TerminalNode {
		return this.getToken(PlSqlParser.DISABLE_ALL, 0);
	}
	public DISABLE_PARALLEL_DML(): TerminalNode {
		return this.getToken(PlSqlParser.DISABLE_PARALLEL_DML, 0);
	}
	public DISCARD(): TerminalNode {
		return this.getToken(PlSqlParser.DISCARD, 0);
	}
	public DISTRIBUTE(): TerminalNode {
		return this.getToken(PlSqlParser.DISTRIBUTE, 0);
	}
	public DUPLICATE(): TerminalNode {
		return this.getToken(PlSqlParser.DUPLICATE, 0);
	}
	public DV(): TerminalNode {
		return this.getToken(PlSqlParser.DV, 0);
	}
	public EDITIONABLE(): TerminalNode {
		return this.getToken(PlSqlParser.EDITIONABLE, 0);
	}
	public ELIM_GROUPBY(): TerminalNode {
		return this.getToken(PlSqlParser.ELIM_GROUPBY, 0);
	}
	public EM(): TerminalNode {
		return this.getToken(PlSqlParser.EM, 0);
	}
	public ENABLE_ALL(): TerminalNode {
		return this.getToken(PlSqlParser.ENABLE_ALL, 0);
	}
	public ENABLE_PARALLEL_DML(): TerminalNode {
		return this.getToken(PlSqlParser.ENABLE_PARALLEL_DML, 0);
	}
	public EQUIPART(): TerminalNode {
		return this.getToken(PlSqlParser.EQUIPART, 0);
	}
	public EVAL(): TerminalNode {
		return this.getToken(PlSqlParser.EVAL, 0);
	}
	public EVALUATE(): TerminalNode {
		return this.getToken(PlSqlParser.EVALUATE, 0);
	}
	public EXISTING(): TerminalNode {
		return this.getToken(PlSqlParser.EXISTING, 0);
	}
	public EXPRESS(): TerminalNode {
		return this.getToken(PlSqlParser.EXPRESS, 0);
	}
	public EXTRACTCLOBXML(): TerminalNode {
		return this.getToken(PlSqlParser.EXTRACTCLOBXML, 0);
	}
	public FACTOR(): TerminalNode {
		return this.getToken(PlSqlParser.FACTOR, 0);
	}
	public FAILOVER(): TerminalNode {
		return this.getToken(PlSqlParser.FAILOVER, 0);
	}
	public FAILURE(): TerminalNode {
		return this.getToken(PlSqlParser.FAILURE, 0);
	}
	public FAMILY(): TerminalNode {
		return this.getToken(PlSqlParser.FAMILY, 0);
	}
	public FAR(): TerminalNode {
		return this.getToken(PlSqlParser.FAR, 0);
	}
	public FASTSTART(): TerminalNode {
		return this.getToken(PlSqlParser.FASTSTART, 0);
	}
	public FEATURE_DETAILS(): TerminalNode {
		return this.getToken(PlSqlParser.FEATURE_DETAILS, 0);
	}
	public FETCH(): TerminalNode {
		return this.getToken(PlSqlParser.FETCH, 0);
	}
	public FILE_NAME_CONVERT(): TerminalNode {
		return this.getToken(PlSqlParser.FILE_NAME_CONVERT, 0);
	}
	public FIXED_VIEW_DATA(): TerminalNode {
		return this.getToken(PlSqlParser.FIXED_VIEW_DATA, 0);
	}
	public FORMAT(): TerminalNode {
		return this.getToken(PlSqlParser.FORMAT, 0);
	}
	public GATHER_OPTIMIZER_STATISTICS(): TerminalNode {
		return this.getToken(PlSqlParser.GATHER_OPTIMIZER_STATISTICS, 0);
	}
	public GET(): TerminalNode {
		return this.getToken(PlSqlParser.GET, 0);
	}
	public ILM(): TerminalNode {
		return this.getToken(PlSqlParser.ILM, 0);
	}
	public INACTIVE(): TerminalNode {
		return this.getToken(PlSqlParser.INACTIVE, 0);
	}
	public INDEXING(): TerminalNode {
		return this.getToken(PlSqlParser.INDEXING, 0);
	}
	public INHERIT(): TerminalNode {
		return this.getToken(PlSqlParser.INHERIT, 0);
	}
	public INMEMORY(): TerminalNode {
		return this.getToken(PlSqlParser.INMEMORY, 0);
	}
	public INMEMORY_PRUNING(): TerminalNode {
		return this.getToken(PlSqlParser.INMEMORY_PRUNING, 0);
	}
	public INPLACE(): TerminalNode {
		return this.getToken(PlSqlParser.INPLACE, 0);
	}
	public INTERLEAVED(): TerminalNode {
		return this.getToken(PlSqlParser.INTERLEAVED, 0);
	}
	public JSON(): TerminalNode {
		return this.getToken(PlSqlParser.JSON, 0);
	}
	public JSON_ARRAY(): TerminalNode {
		return this.getToken(PlSqlParser.JSON_ARRAY, 0);
	}
	public JSON_ARRAYAGG(): TerminalNode {
		return this.getToken(PlSqlParser.JSON_ARRAYAGG, 0);
	}
	public JSON_EQUAL(): TerminalNode {
		return this.getToken(PlSqlParser.JSON_EQUAL, 0);
	}
	public JSON_EXISTS(): TerminalNode {
		return this.getToken(PlSqlParser.JSON_EXISTS, 0);
	}
	public JSON_EXISTS2(): TerminalNode {
		return this.getToken(PlSqlParser.JSON_EXISTS2, 0);
	}
	public JSONGET(): TerminalNode {
		return this.getToken(PlSqlParser.JSONGET, 0);
	}
	public JSON_OBJECT(): TerminalNode {
		return this.getToken(PlSqlParser.JSON_OBJECT, 0);
	}
	public JSON_OBJECTAGG(): TerminalNode {
		return this.getToken(PlSqlParser.JSON_OBJECTAGG, 0);
	}
	public JSONPARSE(): TerminalNode {
		return this.getToken(PlSqlParser.JSONPARSE, 0);
	}
	public JSON_QUERY(): TerminalNode {
		return this.getToken(PlSqlParser.JSON_QUERY, 0);
	}
	public JSON_SERIALIZE(): TerminalNode {
		return this.getToken(PlSqlParser.JSON_SERIALIZE, 0);
	}
	public JSON_TABLE(): TerminalNode {
		return this.getToken(PlSqlParser.JSON_TABLE, 0);
	}
	public JSON_TEXTCONTAINS(): TerminalNode {
		return this.getToken(PlSqlParser.JSON_TEXTCONTAINS, 0);
	}
	public JSON_TEXTCONTAINS2(): TerminalNode {
		return this.getToken(PlSqlParser.JSON_TEXTCONTAINS2, 0);
	}
	public JSON_VALUE(): TerminalNode {
		return this.getToken(PlSqlParser.JSON_VALUE, 0);
	}
	public KEYSTORE(): TerminalNode {
		return this.getToken(PlSqlParser.KEYSTORE, 0);
	}
	public LABEL(): TerminalNode {
		return this.getToken(PlSqlParser.LABEL, 0);
	}
	public LAX(): TerminalNode {
		return this.getToken(PlSqlParser.LAX, 0);
	}
	public LIFECYCLE(): TerminalNode {
		return this.getToken(PlSqlParser.LIFECYCLE, 0);
	}
	public LINEAR(): TerminalNode {
		return this.getToken(PlSqlParser.LINEAR, 0);
	}
	public LOCKING(): TerminalNode {
		return this.getToken(PlSqlParser.LOCKING, 0);
	}
	public LOGMINING(): TerminalNode {
		return this.getToken(PlSqlParser.LOGMINING, 0);
	}
	public MAP(): TerminalNode {
		return this.getToken(PlSqlParser.MAP, 0);
	}
	public MATCH(): TerminalNode {
		return this.getToken(PlSqlParser.MATCH, 0);
	}
	public MATCHES(): TerminalNode {
		return this.getToken(PlSqlParser.MATCHES, 0);
	}
	public MATCH_NUMBER(): TerminalNode {
		return this.getToken(PlSqlParser.MATCH_NUMBER, 0);
	}
	public MATCH_RECOGNIZE(): TerminalNode {
		return this.getToken(PlSqlParser.MATCH_RECOGNIZE, 0);
	}
	public MAX_SHARED_TEMP_SIZE(): TerminalNode {
		return this.getToken(PlSqlParser.MAX_SHARED_TEMP_SIZE, 0);
	}
	public MEMCOMPRESS(): TerminalNode {
		return this.getToken(PlSqlParser.MEMCOMPRESS, 0);
	}
	public METADATA(): TerminalNode {
		return this.getToken(PlSqlParser.METADATA, 0);
	}
	public MODEL_NB(): TerminalNode {
		return this.getToken(PlSqlParser.MODEL_NB, 0);
	}
	public MODEL_SV(): TerminalNode {
		return this.getToken(PlSqlParser.MODEL_SV, 0);
	}
	public MODIFICATION(): TerminalNode {
		return this.getToken(PlSqlParser.MODIFICATION, 0);
	}
	public MODULE(): TerminalNode {
		return this.getToken(PlSqlParser.MODULE, 0);
	}
	public MONTHS(): TerminalNode {
		return this.getToken(PlSqlParser.MONTHS, 0);
	}
	public MULTIDIMENSIONAL(): TerminalNode {
		return this.getToken(PlSqlParser.MULTIDIMENSIONAL, 0);
	}
	public NEG(): TerminalNode {
		return this.getToken(PlSqlParser.NEG, 0);
	}
	public NO_ADAPTIVE_PLAN(): TerminalNode {
		return this.getToken(PlSqlParser.NO_ADAPTIVE_PLAN, 0);
	}
	public NO_ANSI_REARCH(): TerminalNode {
		return this.getToken(PlSqlParser.NO_ANSI_REARCH, 0);
	}
	public NO_AUTO_REOPTIMIZE(): TerminalNode {
		return this.getToken(PlSqlParser.NO_AUTO_REOPTIMIZE, 0);
	}
	public NO_BATCH_TABLE_ACCESS_BY_ROWID(): TerminalNode {
		return this.getToken(PlSqlParser.NO_BATCH_TABLE_ACCESS_BY_ROWID, 0);
	}
	public NO_CLUSTERING(): TerminalNode {
		return this.getToken(PlSqlParser.NO_CLUSTERING, 0);
	}
	public NO_COMMON_DATA(): TerminalNode {
		return this.getToken(PlSqlParser.NO_COMMON_DATA, 0);
	}
	public NOCOPY(): TerminalNode {
		return this.getToken(PlSqlParser.NOCOPY, 0);
	}
	public NO_DATA_SECURITY_REWRITE(): TerminalNode {
		return this.getToken(PlSqlParser.NO_DATA_SECURITY_REWRITE, 0);
	}
	public NO_DECORRELATE(): TerminalNode {
		return this.getToken(PlSqlParser.NO_DECORRELATE, 0);
	}
	public NO_ELIM_GROUPBY(): TerminalNode {
		return this.getToken(PlSqlParser.NO_ELIM_GROUPBY, 0);
	}
	public NO_GATHER_OPTIMIZER_STATISTICS(): TerminalNode {
		return this.getToken(PlSqlParser.NO_GATHER_OPTIMIZER_STATISTICS, 0);
	}
	public NO_INMEMORY(): TerminalNode {
		return this.getToken(PlSqlParser.NO_INMEMORY, 0);
	}
	public NO_INMEMORY_PRUNING(): TerminalNode {
		return this.getToken(PlSqlParser.NO_INMEMORY_PRUNING, 0);
	}
	public NOKEEP(): TerminalNode {
		return this.getToken(PlSqlParser.NOKEEP, 0);
	}
	public NONEDITIONABLE(): TerminalNode {
		return this.getToken(PlSqlParser.NONEDITIONABLE, 0);
	}
	public NO_OBJECT_LINK(): TerminalNode {
		return this.getToken(PlSqlParser.NO_OBJECT_LINK, 0);
	}
	public NO_PARTIAL_JOIN(): TerminalNode {
		return this.getToken(PlSqlParser.NO_PARTIAL_JOIN, 0);
	}
	public NO_PARTIAL_ROLLUP_PUSHDOWN(): TerminalNode {
		return this.getToken(PlSqlParser.NO_PARTIAL_ROLLUP_PUSHDOWN, 0);
	}
	public NOPARTITION(): TerminalNode {
		return this.getToken(PlSqlParser.NOPARTITION, 0);
	}
	public NO_PQ_CONCURRENT_UNION(): TerminalNode {
		return this.getToken(PlSqlParser.NO_PQ_CONCURRENT_UNION, 0);
	}
	public NO_PQ_REPLICATE(): TerminalNode {
		return this.getToken(PlSqlParser.NO_PQ_REPLICATE, 0);
	}
	public NO_PQ_SKEW(): TerminalNode {
		return this.getToken(PlSqlParser.NO_PQ_SKEW, 0);
	}
	public NO_PX_FAULT_TOLERANCE(): TerminalNode {
		return this.getToken(PlSqlParser.NO_PX_FAULT_TOLERANCE, 0);
	}
	public NORELOCATE(): TerminalNode {
		return this.getToken(PlSqlParser.NORELOCATE, 0);
	}
	public NOREPLAY(): TerminalNode {
		return this.getToken(PlSqlParser.NOREPLAY, 0);
	}
	public NO_ROOT_SW_FOR_LOCAL(): TerminalNode {
		return this.getToken(PlSqlParser.NO_ROOT_SW_FOR_LOCAL, 0);
	}
	public NO_SQL_TRANSLATION(): TerminalNode {
		return this.getToken(PlSqlParser.NO_SQL_TRANSLATION, 0);
	}
	public NO_USE_CUBE(): TerminalNode {
		return this.getToken(PlSqlParser.NO_USE_CUBE, 0);
	}
	public NO_USE_VECTOR_AGGREGATION(): TerminalNode {
		return this.getToken(PlSqlParser.NO_USE_VECTOR_AGGREGATION, 0);
	}
	public NO_VECTOR_TRANSFORM(): TerminalNode {
		return this.getToken(PlSqlParser.NO_VECTOR_TRANSFORM, 0);
	}
	public NO_VECTOR_TRANSFORM_DIMS(): TerminalNode {
		return this.getToken(PlSqlParser.NO_VECTOR_TRANSFORM_DIMS, 0);
	}
	public NO_VECTOR_TRANSFORM_FACT(): TerminalNode {
		return this.getToken(PlSqlParser.NO_VECTOR_TRANSFORM_FACT, 0);
	}
	public NO_ZONEMAP(): TerminalNode {
		return this.getToken(PlSqlParser.NO_ZONEMAP, 0);
	}
	public OBJ_ID(): TerminalNode {
		return this.getToken(PlSqlParser.OBJ_ID, 0);
	}
	public OFFSET(): TerminalNode {
		return this.getToken(PlSqlParser.OFFSET, 0);
	}
	public OLS(): TerminalNode {
		return this.getToken(PlSqlParser.OLS, 0);
	}
	public OMIT(): TerminalNode {
		return this.getToken(PlSqlParser.OMIT, 0);
	}
	public ONE(): TerminalNode {
		return this.getToken(PlSqlParser.ONE, 0);
	}
	public ORA_CHECK_ACL(): TerminalNode {
		return this.getToken(PlSqlParser.ORA_CHECK_ACL, 0);
	}
	public ORA_CHECK_PRIVILEGE(): TerminalNode {
		return this.getToken(PlSqlParser.ORA_CHECK_PRIVILEGE, 0);
	}
	public ORA_CLUSTERING(): TerminalNode {
		return this.getToken(PlSqlParser.ORA_CLUSTERING, 0);
	}
	public ORA_INVOKING_USER(): TerminalNode {
		return this.getToken(PlSqlParser.ORA_INVOKING_USER, 0);
	}
	public ORA_INVOKING_USERID(): TerminalNode {
		return this.getToken(PlSqlParser.ORA_INVOKING_USERID, 0);
	}
	public ORA_INVOKING_XS_USER(): TerminalNode {
		return this.getToken(PlSqlParser.ORA_INVOKING_XS_USER, 0);
	}
	public ORA_INVOKING_XS_USER_GUID(): TerminalNode {
		return this.getToken(PlSqlParser.ORA_INVOKING_XS_USER_GUID, 0);
	}
	public ORA_RAWCOMPARE(): TerminalNode {
		return this.getToken(PlSqlParser.ORA_RAWCOMPARE, 0);
	}
	public ORA_RAWCONCAT(): TerminalNode {
		return this.getToken(PlSqlParser.ORA_RAWCONCAT, 0);
	}
	public ORA_WRITE_TIME(): TerminalNode {
		return this.getToken(PlSqlParser.ORA_WRITE_TIME, 0);
	}
	public PARTIAL(): TerminalNode {
		return this.getToken(PlSqlParser.PARTIAL, 0);
	}
	public PARTIAL_JOIN(): TerminalNode {
		return this.getToken(PlSqlParser.PARTIAL_JOIN, 0);
	}
	public PARTIAL_ROLLUP_PUSHDOWN(): TerminalNode {
		return this.getToken(PlSqlParser.PARTIAL_ROLLUP_PUSHDOWN, 0);
	}
	public PAST(): TerminalNode {
		return this.getToken(PlSqlParser.PAST, 0);
	}
	public PATCH(): TerminalNode {
		return this.getToken(PlSqlParser.PATCH, 0);
	}
	public PATH_PREFIX(): TerminalNode {
		return this.getToken(PlSqlParser.PATH_PREFIX, 0);
	}
	public PATTERN(): TerminalNode {
		return this.getToken(PlSqlParser.PATTERN, 0);
	}
	public PER(): TerminalNode {
		return this.getToken(PlSqlParser.PER, 0);
	}
	public PERIOD(): TerminalNode {
		return this.getToken(PlSqlParser.PERIOD, 0);
	}
	public PERIOD_KEYWORD(): TerminalNode {
		return this.getToken(PlSqlParser.PERIOD_KEYWORD, 0);
	}
	public PERMUTE(): TerminalNode {
		return this.getToken(PlSqlParser.PERMUTE, 0);
	}
	public PLUGGABLE(): TerminalNode {
		return this.getToken(PlSqlParser.PLUGGABLE, 0);
	}
	public POOL_16K(): TerminalNode {
		return this.getToken(PlSqlParser.POOL_16K, 0);
	}
	public POOL_2K(): TerminalNode {
		return this.getToken(PlSqlParser.POOL_2K, 0);
	}
	public POOL_32K(): TerminalNode {
		return this.getToken(PlSqlParser.POOL_32K, 0);
	}
	public POOL_4K(): TerminalNode {
		return this.getToken(PlSqlParser.POOL_4K, 0);
	}
	public POOL_8K(): TerminalNode {
		return this.getToken(PlSqlParser.POOL_8K, 0);
	}
	public PQ_CONCURRENT_UNION(): TerminalNode {
		return this.getToken(PlSqlParser.PQ_CONCURRENT_UNION, 0);
	}
	public PQ_DISTRIBUTE_WINDOW(): TerminalNode {
		return this.getToken(PlSqlParser.PQ_DISTRIBUTE_WINDOW, 0);
	}
	public PQ_FILTER(): TerminalNode {
		return this.getToken(PlSqlParser.PQ_FILTER, 0);
	}
	public PQ_REPLICATE(): TerminalNode {
		return this.getToken(PlSqlParser.PQ_REPLICATE, 0);
	}
	public PQ_SKEW(): TerminalNode {
		return this.getToken(PlSqlParser.PQ_SKEW, 0);
	}
	public PRELOAD(): TerminalNode {
		return this.getToken(PlSqlParser.PRELOAD, 0);
	}
	public PRETTY(): TerminalNode {
		return this.getToken(PlSqlParser.PRETTY, 0);
	}
	public PREV(): TerminalNode {
		return this.getToken(PlSqlParser.PREV, 0);
	}
	public PRINTBLOBTOCLOB(): TerminalNode {
		return this.getToken(PlSqlParser.PRINTBLOBTOCLOB, 0);
	}
	public PRIORITY(): TerminalNode {
		return this.getToken(PlSqlParser.PRIORITY, 0);
	}
	public PRIVILEGED(): TerminalNode {
		return this.getToken(PlSqlParser.PRIVILEGED, 0);
	}
	public PROXY(): TerminalNode {
		return this.getToken(PlSqlParser.PROXY, 0);
	}
	public PRUNING(): TerminalNode {
		return this.getToken(PlSqlParser.PRUNING, 0);
	}
	public PX_FAULT_TOLERANCE(): TerminalNode {
		return this.getToken(PlSqlParser.PX_FAULT_TOLERANCE, 0);
	}
	public REALM(): TerminalNode {
		return this.getToken(PlSqlParser.REALM, 0);
	}
	public REDEFINE(): TerminalNode {
		return this.getToken(PlSqlParser.REDEFINE, 0);
	}
	public RELOCATE(): TerminalNode {
		return this.getToken(PlSqlParser.RELOCATE, 0);
	}
	public RESTART(): TerminalNode {
		return this.getToken(PlSqlParser.RESTART, 0);
	}
	public ROLESET(): TerminalNode {
		return this.getToken(PlSqlParser.ROLESET, 0);
	}
	public ROWID_MAPPING_TABLE(): TerminalNode {
		return this.getToken(PlSqlParser.ROWID_MAPPING_TABLE, 0);
	}
	public RUNNING(): TerminalNode {
		return this.getToken(PlSqlParser.RUNNING, 0);
	}
	public SAVE(): TerminalNode {
		return this.getToken(PlSqlParser.SAVE, 0);
	}
	public SCRUB(): TerminalNode {
		return this.getToken(PlSqlParser.SCRUB, 0);
	}
	public SDO_GEOM_MBR(): TerminalNode {
		return this.getToken(PlSqlParser.SDO_GEOM_MBR, 0);
	}
	public SECRET(): TerminalNode {
		return this.getToken(PlSqlParser.SECRET, 0);
	}
	public SERIAL(): TerminalNode {
		return this.getToken(PlSqlParser.SERIAL, 0);
	}
	public SERVICE_NAME_CONVERT(): TerminalNode {
		return this.getToken(PlSqlParser.SERVICE_NAME_CONVERT, 0);
	}
	public SERVICES(): TerminalNode {
		return this.getToken(PlSqlParser.SERVICES, 0);
	}
	public SHARING(): TerminalNode {
		return this.getToken(PlSqlParser.SHARING, 0);
	}
	public SHELFLIFE(): TerminalNode {
		return this.getToken(PlSqlParser.SHELFLIFE, 0);
	}
	public SOURCE_FILE_DIRECTORY(): TerminalNode {
		return this.getToken(PlSqlParser.SOURCE_FILE_DIRECTORY, 0);
	}
	public SOURCE_FILE_NAME_CONVERT(): TerminalNode {
		return this.getToken(PlSqlParser.SOURCE_FILE_NAME_CONVERT, 0);
	}
	public SQL_TRANSLATION_PROFILE(): TerminalNode {
		return this.getToken(PlSqlParser.SQL_TRANSLATION_PROFILE, 0);
	}
	public STANDARD_HASH(): TerminalNode {
		return this.getToken(PlSqlParser.STANDARD_HASH, 0);
	}
	public STANDBYS(): TerminalNode {
		return this.getToken(PlSqlParser.STANDBYS, 0);
	}
	public STATE(): TerminalNode {
		return this.getToken(PlSqlParser.STATE, 0);
	}
	public STATEMENT(): TerminalNode {
		return this.getToken(PlSqlParser.STATEMENT, 0);
	}
	public STREAM(): TerminalNode {
		return this.getToken(PlSqlParser.STREAM, 0);
	}
	public SUBSCRIBE(): TerminalNode {
		return this.getToken(PlSqlParser.SUBSCRIBE, 0);
	}
	public SUBSET(): TerminalNode {
		return this.getToken(PlSqlParser.SUBSET, 0);
	}
	public SUCCESS(): TerminalNode {
		return this.getToken(PlSqlParser.SUCCESS, 0);
	}
	public SYSBACKUP(): TerminalNode {
		return this.getToken(PlSqlParser.SYSBACKUP, 0);
	}
	public SYS_CHECK_PRIVILEGE(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_CHECK_PRIVILEGE, 0);
	}
	public SYSDG(): TerminalNode {
		return this.getToken(PlSqlParser.SYSDG, 0);
	}
	public SYS_GET_COL_ACLIDS(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_GET_COL_ACLIDS, 0);
	}
	public SYSGUID(): TerminalNode {
		return this.getToken(PlSqlParser.SYSGUID, 0);
	}
	public SYSKM(): TerminalNode {
		return this.getToken(PlSqlParser.SYSKM, 0);
	}
	public SYS_MKXTI(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_MKXTI, 0);
	}
	public SYSOBJ(): TerminalNode {
		return this.getToken(PlSqlParser.SYSOBJ, 0);
	}
	public SYS_OP_CYCLED_SEQ(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OP_CYCLED_SEQ, 0);
	}
	public SYS_OP_HASH(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OP_HASH, 0);
	}
	public SYS_OP_KEY_VECTOR_CREATE(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OP_KEY_VECTOR_CREATE, 0);
	}
	public SYS_OP_KEY_VECTOR_FILTER(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OP_KEY_VECTOR_FILTER, 0);
	}
	public SYS_OP_KEY_VECTOR_FILTER_LIST(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OP_KEY_VECTOR_FILTER_LIST, 0);
	}
	public SYS_OP_KEY_VECTOR_SUCCEEDED(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OP_KEY_VECTOR_SUCCEEDED, 0);
	}
	public SYS_OP_KEY_VECTOR_USE(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OP_KEY_VECTOR_USE, 0);
	}
	public SYS_OP_PART_ID(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OP_PART_ID, 0);
	}
	public SYS_OP_ZONE_ID(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OP_ZONE_ID, 0);
	}
	public SYS_RAW_TO_XSID(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_RAW_TO_XSID, 0);
	}
	public SYS_XSID_TO_RAW(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XSID_TO_RAW, 0);
	}
	public SYS_ZMAP_FILTER(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_ZMAP_FILTER, 0);
	}
	public SYS_ZMAP_REFRESH(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_ZMAP_REFRESH, 0);
	}
	public TAG(): TerminalNode {
		return this.getToken(PlSqlParser.TAG, 0);
	}
	public TEXT(): TerminalNode {
		return this.getToken(PlSqlParser.TEXT, 0);
	}
	public TIER(): TerminalNode {
		return this.getToken(PlSqlParser.TIER, 0);
	}
	public TIES(): TerminalNode {
		return this.getToken(PlSqlParser.TIES, 0);
	}
	public TO_ACLID(): TerminalNode {
		return this.getToken(PlSqlParser.TO_ACLID, 0);
	}
	public TRANSLATION(): TerminalNode {
		return this.getToken(PlSqlParser.TRANSLATION, 0);
	}
	public TRUST(): TerminalNode {
		return this.getToken(PlSqlParser.TRUST, 0);
	}
	public UCS2(): TerminalNode {
		return this.getToken(PlSqlParser.UCS2, 0);
	}
	public UNCONDITIONAL(): TerminalNode {
		return this.getToken(PlSqlParser.UNCONDITIONAL, 0);
	}
	public UNMATCHED(): TerminalNode {
		return this.getToken(PlSqlParser.UNMATCHED, 0);
	}
	public UNPLUG(): TerminalNode {
		return this.getToken(PlSqlParser.UNPLUG, 0);
	}
	public UNSUBSCRIBE(): TerminalNode {
		return this.getToken(PlSqlParser.UNSUBSCRIBE, 0);
	}
	public USABLE(): TerminalNode {
		return this.getToken(PlSqlParser.USABLE, 0);
	}
	public USE_CUBE(): TerminalNode {
		return this.getToken(PlSqlParser.USE_CUBE, 0);
	}
	public USE_HIDDEN_PARTITIONS(): TerminalNode {
		return this.getToken(PlSqlParser.USE_HIDDEN_PARTITIONS, 0);
	}
	public USER_DATA(): TerminalNode {
		return this.getToken(PlSqlParser.USER_DATA, 0);
	}
	public USER_TABLESPACES(): TerminalNode {
		return this.getToken(PlSqlParser.USER_TABLESPACES, 0);
	}
	public USE_VECTOR_AGGREGATION(): TerminalNode {
		return this.getToken(PlSqlParser.USE_VECTOR_AGGREGATION, 0);
	}
	public USING_NO_EXPAND(): TerminalNode {
		return this.getToken(PlSqlParser.USING_NO_EXPAND, 0);
	}
	public UTF16BE(): TerminalNode {
		return this.getToken(PlSqlParser.UTF16BE, 0);
	}
	public UTF16LE(): TerminalNode {
		return this.getToken(PlSqlParser.UTF16LE, 0);
	}
	public UTF32(): TerminalNode {
		return this.getToken(PlSqlParser.UTF32, 0);
	}
	public UTF8(): TerminalNode {
		return this.getToken(PlSqlParser.UTF8, 0);
	}
	public V1(): TerminalNode {
		return this.getToken(PlSqlParser.V1, 0);
	}
	public V2(): TerminalNode {
		return this.getToken(PlSqlParser.V2, 0);
	}
	public VALID_TIME_END(): TerminalNode {
		return this.getToken(PlSqlParser.VALID_TIME_END, 0);
	}
	public VECTOR_TRANSFORM(): TerminalNode {
		return this.getToken(PlSqlParser.VECTOR_TRANSFORM, 0);
	}
	public VECTOR_TRANSFORM_DIMS(): TerminalNode {
		return this.getToken(PlSqlParser.VECTOR_TRANSFORM_DIMS, 0);
	}
	public VECTOR_TRANSFORM_FACT(): TerminalNode {
		return this.getToken(PlSqlParser.VECTOR_TRANSFORM_FACT, 0);
	}
	public VERIFIER(): TerminalNode {
		return this.getToken(PlSqlParser.VERIFIER, 0);
	}
	public VIOLATION(): TerminalNode {
		return this.getToken(PlSqlParser.VIOLATION, 0);
	}
	public VISIBILITY(): TerminalNode {
		return this.getToken(PlSqlParser.VISIBILITY, 0);
	}
	public WEEK(): TerminalNode {
		return this.getToken(PlSqlParser.WEEK, 0);
	}
	public WEEKS(): TerminalNode {
		return this.getToken(PlSqlParser.WEEKS, 0);
	}
	public WITH_PLSQL(): TerminalNode {
		return this.getToken(PlSqlParser.WITH_PLSQL, 0);
	}
	public WRAPPER(): TerminalNode {
		return this.getToken(PlSqlParser.WRAPPER, 0);
	}
	public XS(): TerminalNode {
		return this.getToken(PlSqlParser.XS, 0);
	}
	public YEARS(): TerminalNode {
		return this.getToken(PlSqlParser.YEARS, 0);
	}
	public ZONEMAP(): TerminalNode {
		return this.getToken(PlSqlParser.ZONEMAP, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_non_reserved_keywords_in_12c;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterNon_reserved_keywords_in_12c) {
	 		listener.enterNon_reserved_keywords_in_12c(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitNon_reserved_keywords_in_12c) {
	 		listener.exitNon_reserved_keywords_in_12c(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitNon_reserved_keywords_in_12c) {
			return visitor.visitNon_reserved_keywords_in_12c(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Non_reserved_keywords_pre12cContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public ABORT(): TerminalNode {
		return this.getToken(PlSqlParser.ABORT, 0);
	}
	public ABS(): TerminalNode {
		return this.getToken(PlSqlParser.ABS, 0);
	}
	public ACCESSED(): TerminalNode {
		return this.getToken(PlSqlParser.ACCESSED, 0);
	}
	public ACCESS(): TerminalNode {
		return this.getToken(PlSqlParser.ACCESS, 0);
	}
	public ACCOUNT(): TerminalNode {
		return this.getToken(PlSqlParser.ACCOUNT, 0);
	}
	public ACOS(): TerminalNode {
		return this.getToken(PlSqlParser.ACOS, 0);
	}
	public ACTIVATE(): TerminalNode {
		return this.getToken(PlSqlParser.ACTIVATE, 0);
	}
	public ACTIVE_COMPONENT(): TerminalNode {
		return this.getToken(PlSqlParser.ACTIVE_COMPONENT, 0);
	}
	public ACTIVE_FUNCTION(): TerminalNode {
		return this.getToken(PlSqlParser.ACTIVE_FUNCTION, 0);
	}
	public ACTIVE_TAG(): TerminalNode {
		return this.getToken(PlSqlParser.ACTIVE_TAG, 0);
	}
	public ADD_COLUMN(): TerminalNode {
		return this.getToken(PlSqlParser.ADD_COLUMN, 0);
	}
	public ADD_GROUP(): TerminalNode {
		return this.getToken(PlSqlParser.ADD_GROUP, 0);
	}
	public ADD_MONTHS(): TerminalNode {
		return this.getToken(PlSqlParser.ADD_MONTHS, 0);
	}
	public ADD(): TerminalNode {
		return this.getToken(PlSqlParser.ADD, 0);
	}
	public ADJ_DATE(): TerminalNode {
		return this.getToken(PlSqlParser.ADJ_DATE, 0);
	}
	public ADMINISTER(): TerminalNode {
		return this.getToken(PlSqlParser.ADMINISTER, 0);
	}
	public ADMINISTRATOR(): TerminalNode {
		return this.getToken(PlSqlParser.ADMINISTRATOR, 0);
	}
	public ADMIN(): TerminalNode {
		return this.getToken(PlSqlParser.ADMIN, 0);
	}
	public ADVISE(): TerminalNode {
		return this.getToken(PlSqlParser.ADVISE, 0);
	}
	public ADVISOR(): TerminalNode {
		return this.getToken(PlSqlParser.ADVISOR, 0);
	}
	public AFTER(): TerminalNode {
		return this.getToken(PlSqlParser.AFTER, 0);
	}
	public ALIAS(): TerminalNode {
		return this.getToken(PlSqlParser.ALIAS, 0);
	}
	public ALLOCATE(): TerminalNode {
		return this.getToken(PlSqlParser.ALLOCATE, 0);
	}
	public ALLOW(): TerminalNode {
		return this.getToken(PlSqlParser.ALLOW, 0);
	}
	public ALL_ROWS(): TerminalNode {
		return this.getToken(PlSqlParser.ALL_ROWS, 0);
	}
	public ALWAYS(): TerminalNode {
		return this.getToken(PlSqlParser.ALWAYS, 0);
	}
	public ANALYZE(): TerminalNode {
		return this.getToken(PlSqlParser.ANALYZE, 0);
	}
	public ANCILLARY(): TerminalNode {
		return this.getToken(PlSqlParser.ANCILLARY, 0);
	}
	public AND_EQUAL(): TerminalNode {
		return this.getToken(PlSqlParser.AND_EQUAL, 0);
	}
	public ANTIJOIN(): TerminalNode {
		return this.getToken(PlSqlParser.ANTIJOIN, 0);
	}
	public ANYSCHEMA(): TerminalNode {
		return this.getToken(PlSqlParser.ANYSCHEMA, 0);
	}
	public APPENDCHILDXML(): TerminalNode {
		return this.getToken(PlSqlParser.APPENDCHILDXML, 0);
	}
	public APPEND(): TerminalNode {
		return this.getToken(PlSqlParser.APPEND, 0);
	}
	public APPEND_VALUES(): TerminalNode {
		return this.getToken(PlSqlParser.APPEND_VALUES, 0);
	}
	public APPLY(): TerminalNode {
		return this.getToken(PlSqlParser.APPLY, 0);
	}
	public ARCHIVELOG(): TerminalNode {
		return this.getToken(PlSqlParser.ARCHIVELOG, 0);
	}
	public ARCHIVE(): TerminalNode {
		return this.getToken(PlSqlParser.ARCHIVE, 0);
	}
	public ARRAY(): TerminalNode {
		return this.getToken(PlSqlParser.ARRAY, 0);
	}
	public ASCII(): TerminalNode {
		return this.getToken(PlSqlParser.ASCII, 0);
	}
	public ASCIISTR(): TerminalNode {
		return this.getToken(PlSqlParser.ASCIISTR, 0);
	}
	public ASIN(): TerminalNode {
		return this.getToken(PlSqlParser.ASIN, 0);
	}
	public ASSEMBLY(): TerminalNode {
		return this.getToken(PlSqlParser.ASSEMBLY, 0);
	}
	public ASSOCIATE(): TerminalNode {
		return this.getToken(PlSqlParser.ASSOCIATE, 0);
	}
	public ASYNCHRONOUS(): TerminalNode {
		return this.getToken(PlSqlParser.ASYNCHRONOUS, 0);
	}
	public ASYNC(): TerminalNode {
		return this.getToken(PlSqlParser.ASYNC, 0);
	}
	public ATAN2(): TerminalNode {
		return this.getToken(PlSqlParser.ATAN2, 0);
	}
	public ATAN(): TerminalNode {
		return this.getToken(PlSqlParser.ATAN, 0);
	}
	public AT(): TerminalNode {
		return this.getToken(PlSqlParser.AT, 0);
	}
	public ATTRIBUTE(): TerminalNode {
		return this.getToken(PlSqlParser.ATTRIBUTE, 0);
	}
	public ATTRIBUTES(): TerminalNode {
		return this.getToken(PlSqlParser.ATTRIBUTES, 0);
	}
	public AUTHENTICATED(): TerminalNode {
		return this.getToken(PlSqlParser.AUTHENTICATED, 0);
	}
	public AUTHENTICATION(): TerminalNode {
		return this.getToken(PlSqlParser.AUTHENTICATION, 0);
	}
	public AUTHID(): TerminalNode {
		return this.getToken(PlSqlParser.AUTHID, 0);
	}
	public AUTHORIZATION(): TerminalNode {
		return this.getToken(PlSqlParser.AUTHORIZATION, 0);
	}
	public AUTOALLOCATE(): TerminalNode {
		return this.getToken(PlSqlParser.AUTOALLOCATE, 0);
	}
	public AUTOEXTEND(): TerminalNode {
		return this.getToken(PlSqlParser.AUTOEXTEND, 0);
	}
	public AUTOMATIC(): TerminalNode {
		return this.getToken(PlSqlParser.AUTOMATIC, 0);
	}
	public AUTO(): TerminalNode {
		return this.getToken(PlSqlParser.AUTO, 0);
	}
	public AVAILABILITY(): TerminalNode {
		return this.getToken(PlSqlParser.AVAILABILITY, 0);
	}
	public AVG(): TerminalNode {
		return this.getToken(PlSqlParser.AVG, 0);
	}
	public BACKUP(): TerminalNode {
		return this.getToken(PlSqlParser.BACKUP, 0);
	}
	public BASICFILE(): TerminalNode {
		return this.getToken(PlSqlParser.BASICFILE, 0);
	}
	public BASIC(): TerminalNode {
		return this.getToken(PlSqlParser.BASIC, 0);
	}
	public BATCH(): TerminalNode {
		return this.getToken(PlSqlParser.BATCH, 0);
	}
	public BECOME(): TerminalNode {
		return this.getToken(PlSqlParser.BECOME, 0);
	}
	public BEFORE(): TerminalNode {
		return this.getToken(PlSqlParser.BEFORE, 0);
	}
	public BEGIN(): TerminalNode {
		return this.getToken(PlSqlParser.BEGIN, 0);
	}
	public BEGIN_OUTLINE_DATA(): TerminalNode {
		return this.getToken(PlSqlParser.BEGIN_OUTLINE_DATA, 0);
	}
	public BEHALF(): TerminalNode {
		return this.getToken(PlSqlParser.BEHALF, 0);
	}
	public BFILE(): TerminalNode {
		return this.getToken(PlSqlParser.BFILE, 0);
	}
	public BFILENAME(): TerminalNode {
		return this.getToken(PlSqlParser.BFILENAME, 0);
	}
	public BIGFILE(): TerminalNode {
		return this.getToken(PlSqlParser.BIGFILE, 0);
	}
	public BINARY_DOUBLE_INFINITY(): TerminalNode {
		return this.getToken(PlSqlParser.BINARY_DOUBLE_INFINITY, 0);
	}
	public BINARY_DOUBLE(): TerminalNode {
		return this.getToken(PlSqlParser.BINARY_DOUBLE, 0);
	}
	public BINARY_DOUBLE_NAN(): TerminalNode {
		return this.getToken(PlSqlParser.BINARY_DOUBLE_NAN, 0);
	}
	public BINARY_FLOAT_INFINITY(): TerminalNode {
		return this.getToken(PlSqlParser.BINARY_FLOAT_INFINITY, 0);
	}
	public BINARY_FLOAT(): TerminalNode {
		return this.getToken(PlSqlParser.BINARY_FLOAT, 0);
	}
	public BINARY_FLOAT_NAN(): TerminalNode {
		return this.getToken(PlSqlParser.BINARY_FLOAT_NAN, 0);
	}
	public BINARY(): TerminalNode {
		return this.getToken(PlSqlParser.BINARY, 0);
	}
	public BIND_AWARE(): TerminalNode {
		return this.getToken(PlSqlParser.BIND_AWARE, 0);
	}
	public BINDING(): TerminalNode {
		return this.getToken(PlSqlParser.BINDING, 0);
	}
	public BIN_TO_NUM(): TerminalNode {
		return this.getToken(PlSqlParser.BIN_TO_NUM, 0);
	}
	public BITAND(): TerminalNode {
		return this.getToken(PlSqlParser.BITAND, 0);
	}
	public BITMAP(): TerminalNode {
		return this.getToken(PlSqlParser.BITMAP, 0);
	}
	public BITMAPS(): TerminalNode {
		return this.getToken(PlSqlParser.BITMAPS, 0);
	}
	public BITMAP_TREE(): TerminalNode {
		return this.getToken(PlSqlParser.BITMAP_TREE, 0);
	}
	public BITS(): TerminalNode {
		return this.getToken(PlSqlParser.BITS, 0);
	}
	public BLOB(): TerminalNode {
		return this.getToken(PlSqlParser.BLOB, 0);
	}
	public BLOCK(): TerminalNode {
		return this.getToken(PlSqlParser.BLOCK, 0);
	}
	public BLOCK_RANGE(): TerminalNode {
		return this.getToken(PlSqlParser.BLOCK_RANGE, 0);
	}
	public BLOCKSIZE(): TerminalNode {
		return this.getToken(PlSqlParser.BLOCKSIZE, 0);
	}
	public BLOCKS(): TerminalNode {
		return this.getToken(PlSqlParser.BLOCKS, 0);
	}
	public BODY(): TerminalNode {
		return this.getToken(PlSqlParser.BODY, 0);
	}
	public BOTH(): TerminalNode {
		return this.getToken(PlSqlParser.BOTH, 0);
	}
	public BOUND(): TerminalNode {
		return this.getToken(PlSqlParser.BOUND, 0);
	}
	public BRANCH(): TerminalNode {
		return this.getToken(PlSqlParser.BRANCH, 0);
	}
	public BREADTH(): TerminalNode {
		return this.getToken(PlSqlParser.BREADTH, 0);
	}
	public BROADCAST(): TerminalNode {
		return this.getToken(PlSqlParser.BROADCAST, 0);
	}
	public BUFFER_CACHE(): TerminalNode {
		return this.getToken(PlSqlParser.BUFFER_CACHE, 0);
	}
	public BUFFER(): TerminalNode {
		return this.getToken(PlSqlParser.BUFFER, 0);
	}
	public BUFFER_POOL(): TerminalNode {
		return this.getToken(PlSqlParser.BUFFER_POOL, 0);
	}
	public BUILD(): TerminalNode {
		return this.getToken(PlSqlParser.BUILD, 0);
	}
	public BULK(): TerminalNode {
		return this.getToken(PlSqlParser.BULK, 0);
	}
	public BYPASS_RECURSIVE_CHECK(): TerminalNode {
		return this.getToken(PlSqlParser.BYPASS_RECURSIVE_CHECK, 0);
	}
	public BYPASS_UJVC(): TerminalNode {
		return this.getToken(PlSqlParser.BYPASS_UJVC, 0);
	}
	public BYTE(): TerminalNode {
		return this.getToken(PlSqlParser.BYTE, 0);
	}
	public CACHE_CB(): TerminalNode {
		return this.getToken(PlSqlParser.CACHE_CB, 0);
	}
	public CACHE_INSTANCES(): TerminalNode {
		return this.getToken(PlSqlParser.CACHE_INSTANCES, 0);
	}
	public CACHE(): TerminalNode {
		return this.getToken(PlSqlParser.CACHE, 0);
	}
	public CACHE_TEMP_TABLE(): TerminalNode {
		return this.getToken(PlSqlParser.CACHE_TEMP_TABLE, 0);
	}
	public CALL(): TerminalNode {
		return this.getToken(PlSqlParser.CALL, 0);
	}
	public CANCEL(): TerminalNode {
		return this.getToken(PlSqlParser.CANCEL, 0);
	}
	public CARDINALITY(): TerminalNode {
		return this.getToken(PlSqlParser.CARDINALITY, 0);
	}
	public CASCADE(): TerminalNode {
		return this.getToken(PlSqlParser.CASCADE, 0);
	}
	public CASE(): TerminalNode {
		return this.getToken(PlSqlParser.CASE, 0);
	}
	public CAST(): TerminalNode {
		return this.getToken(PlSqlParser.CAST, 0);
	}
	public CATEGORY(): TerminalNode {
		return this.getToken(PlSqlParser.CATEGORY, 0);
	}
	public CEIL(): TerminalNode {
		return this.getToken(PlSqlParser.CEIL, 0);
	}
	public CELL_FLASH_CACHE(): TerminalNode {
		return this.getToken(PlSqlParser.CELL_FLASH_CACHE, 0);
	}
	public CERTIFICATE(): TerminalNode {
		return this.getToken(PlSqlParser.CERTIFICATE, 0);
	}
	public CFILE(): TerminalNode {
		return this.getToken(PlSqlParser.CFILE, 0);
	}
	public CHAINED(): TerminalNode {
		return this.getToken(PlSqlParser.CHAINED, 0);
	}
	public CHANGE_DUPKEY_ERROR_INDEX(): TerminalNode {
		return this.getToken(PlSqlParser.CHANGE_DUPKEY_ERROR_INDEX, 0);
	}
	public CHANGE(): TerminalNode {
		return this.getToken(PlSqlParser.CHANGE, 0);
	}
	public CHARACTER(): TerminalNode {
		return this.getToken(PlSqlParser.CHARACTER, 0);
	}
	public CHAR_CS(): TerminalNode {
		return this.getToken(PlSqlParser.CHAR_CS, 0);
	}
	public CHARTOROWID(): TerminalNode {
		return this.getToken(PlSqlParser.CHARTOROWID, 0);
	}
	public CHECK_ACL_REWRITE(): TerminalNode {
		return this.getToken(PlSqlParser.CHECK_ACL_REWRITE, 0);
	}
	public CHECKPOINT(): TerminalNode {
		return this.getToken(PlSqlParser.CHECKPOINT, 0);
	}
	public CHILD(): TerminalNode {
		return this.getToken(PlSqlParser.CHILD, 0);
	}
	public CHOOSE(): TerminalNode {
		return this.getToken(PlSqlParser.CHOOSE, 0);
	}
	public CHR(): TerminalNode {
		return this.getToken(PlSqlParser.CHR, 0);
	}
	public CHUNK(): TerminalNode {
		return this.getToken(PlSqlParser.CHUNK, 0);
	}
	public CLASS(): TerminalNode {
		return this.getToken(PlSqlParser.CLASS, 0);
	}
	public CLEAR(): TerminalNode {
		return this.getToken(PlSqlParser.CLEAR, 0);
	}
	public CLOB(): TerminalNode {
		return this.getToken(PlSqlParser.CLOB, 0);
	}
	public CLONE(): TerminalNode {
		return this.getToken(PlSqlParser.CLONE, 0);
	}
	public CLOSE_CACHED_OPEN_CURSORS(): TerminalNode {
		return this.getToken(PlSqlParser.CLOSE_CACHED_OPEN_CURSORS, 0);
	}
	public CLOSE(): TerminalNode {
		return this.getToken(PlSqlParser.CLOSE, 0);
	}
	public CLUSTER_BY_ROWID(): TerminalNode {
		return this.getToken(PlSqlParser.CLUSTER_BY_ROWID, 0);
	}
	public CLUSTER_ID(): TerminalNode {
		return this.getToken(PlSqlParser.CLUSTER_ID, 0);
	}
	public CLUSTERING_FACTOR(): TerminalNode {
		return this.getToken(PlSqlParser.CLUSTERING_FACTOR, 0);
	}
	public CLUSTER_PROBABILITY(): TerminalNode {
		return this.getToken(PlSqlParser.CLUSTER_PROBABILITY, 0);
	}
	public CLUSTER_SET(): TerminalNode {
		return this.getToken(PlSqlParser.CLUSTER_SET, 0);
	}
	public COALESCE(): TerminalNode {
		return this.getToken(PlSqlParser.COALESCE, 0);
	}
	public COALESCE_SQ(): TerminalNode {
		return this.getToken(PlSqlParser.COALESCE_SQ, 0);
	}
	public COARSE(): TerminalNode {
		return this.getToken(PlSqlParser.COARSE, 0);
	}
	public CO_AUTH_IND(): TerminalNode {
		return this.getToken(PlSqlParser.CO_AUTH_IND, 0);
	}
	public COLD(): TerminalNode {
		return this.getToken(PlSqlParser.COLD, 0);
	}
	public COLLECT(): TerminalNode {
		return this.getToken(PlSqlParser.COLLECT, 0);
	}
	public COLUMNAR(): TerminalNode {
		return this.getToken(PlSqlParser.COLUMNAR, 0);
	}
	public COLUMN_AUTH_INDICATOR(): TerminalNode {
		return this.getToken(PlSqlParser.COLUMN_AUTH_INDICATOR, 0);
	}
	public COLUMN(): TerminalNode {
		return this.getToken(PlSqlParser.COLUMN, 0);
	}
	public COLUMNS(): TerminalNode {
		return this.getToken(PlSqlParser.COLUMNS, 0);
	}
	public COLUMN_STATS(): TerminalNode {
		return this.getToken(PlSqlParser.COLUMN_STATS, 0);
	}
	public COLUMN_VALUE(): TerminalNode {
		return this.getToken(PlSqlParser.COLUMN_VALUE, 0);
	}
	public COMMENT(): TerminalNode {
		return this.getToken(PlSqlParser.COMMENT, 0);
	}
	public COMMIT(): TerminalNode {
		return this.getToken(PlSqlParser.COMMIT, 0);
	}
	public COMMITTED(): TerminalNode {
		return this.getToken(PlSqlParser.COMMITTED, 0);
	}
	public COMPACT(): TerminalNode {
		return this.getToken(PlSqlParser.COMPACT, 0);
	}
	public COMPATIBILITY(): TerminalNode {
		return this.getToken(PlSqlParser.COMPATIBILITY, 0);
	}
	public COMPILE(): TerminalNode {
		return this.getToken(PlSqlParser.COMPILE, 0);
	}
	public COMPLETE(): TerminalNode {
		return this.getToken(PlSqlParser.COMPLETE, 0);
	}
	public COMPLIANCE(): TerminalNode {
		return this.getToken(PlSqlParser.COMPLIANCE, 0);
	}
	public COMPOSE(): TerminalNode {
		return this.getToken(PlSqlParser.COMPOSE, 0);
	}
	public COMPOSITE_LIMIT(): TerminalNode {
		return this.getToken(PlSqlParser.COMPOSITE_LIMIT, 0);
	}
	public COMPOSITE(): TerminalNode {
		return this.getToken(PlSqlParser.COMPOSITE, 0);
	}
	public COMPOUND(): TerminalNode {
		return this.getToken(PlSqlParser.COMPOUND, 0);
	}
	public COMPUTE(): TerminalNode {
		return this.getToken(PlSqlParser.COMPUTE, 0);
	}
	public CONCAT(): TerminalNode {
		return this.getToken(PlSqlParser.CONCAT, 0);
	}
	public CONFIRM(): TerminalNode {
		return this.getToken(PlSqlParser.CONFIRM, 0);
	}
	public CONFORMING(): TerminalNode {
		return this.getToken(PlSqlParser.CONFORMING, 0);
	}
	public CONNECT_BY_CB_WHR_ONLY(): TerminalNode {
		return this.getToken(PlSqlParser.CONNECT_BY_CB_WHR_ONLY, 0);
	}
	public CONNECT_BY_COMBINE_SW(): TerminalNode {
		return this.getToken(PlSqlParser.CONNECT_BY_COMBINE_SW, 0);
	}
	public CONNECT_BY_COST_BASED(): TerminalNode {
		return this.getToken(PlSqlParser.CONNECT_BY_COST_BASED, 0);
	}
	public CONNECT_BY_ELIM_DUPS(): TerminalNode {
		return this.getToken(PlSqlParser.CONNECT_BY_ELIM_DUPS, 0);
	}
	public CONNECT_BY_FILTERING(): TerminalNode {
		return this.getToken(PlSqlParser.CONNECT_BY_FILTERING, 0);
	}
	public CONNECT_BY_ISCYCLE(): TerminalNode {
		return this.getToken(PlSqlParser.CONNECT_BY_ISCYCLE, 0);
	}
	public CONNECT_BY_ISLEAF(): TerminalNode {
		return this.getToken(PlSqlParser.CONNECT_BY_ISLEAF, 0);
	}
	public CONNECT_BY_ROOT(): TerminalNode {
		return this.getToken(PlSqlParser.CONNECT_BY_ROOT, 0);
	}
	public CONNECT_TIME(): TerminalNode {
		return this.getToken(PlSqlParser.CONNECT_TIME, 0);
	}
	public CONSIDER(): TerminalNode {
		return this.getToken(PlSqlParser.CONSIDER, 0);
	}
	public CONSISTENT(): TerminalNode {
		return this.getToken(PlSqlParser.CONSISTENT, 0);
	}
	public CONSTANT(): TerminalNode {
		return this.getToken(PlSqlParser.CONSTANT, 0);
	}
	public CONST(): TerminalNode {
		return this.getToken(PlSqlParser.CONST, 0);
	}
	public CONSTRAINT(): TerminalNode {
		return this.getToken(PlSqlParser.CONSTRAINT, 0);
	}
	public CONSTRAINTS(): TerminalNode {
		return this.getToken(PlSqlParser.CONSTRAINTS, 0);
	}
	public CONTAINER(): TerminalNode {
		return this.getToken(PlSqlParser.CONTAINER, 0);
	}
	public CONTENT(): TerminalNode {
		return this.getToken(PlSqlParser.CONTENT, 0);
	}
	public CONTENTS(): TerminalNode {
		return this.getToken(PlSqlParser.CONTENTS, 0);
	}
	public CONTEXT(): TerminalNode {
		return this.getToken(PlSqlParser.CONTEXT, 0);
	}
	public CONTINUE(): TerminalNode {
		return this.getToken(PlSqlParser.CONTINUE, 0);
	}
	public CONTROLFILE(): TerminalNode {
		return this.getToken(PlSqlParser.CONTROLFILE, 0);
	}
	public CONVERT(): TerminalNode {
		return this.getToken(PlSqlParser.CONVERT, 0);
	}
	public CORR_K(): TerminalNode {
		return this.getToken(PlSqlParser.CORR_K, 0);
	}
	public CORR(): TerminalNode {
		return this.getToken(PlSqlParser.CORR, 0);
	}
	public CORR_S(): TerminalNode {
		return this.getToken(PlSqlParser.CORR_S, 0);
	}
	public CORRUPTION(): TerminalNode {
		return this.getToken(PlSqlParser.CORRUPTION, 0);
	}
	public CORRUPT_XID_ALL(): TerminalNode {
		return this.getToken(PlSqlParser.CORRUPT_XID_ALL, 0);
	}
	public CORRUPT_XID(): TerminalNode {
		return this.getToken(PlSqlParser.CORRUPT_XID, 0);
	}
	public COSH(): TerminalNode {
		return this.getToken(PlSqlParser.COSH, 0);
	}
	public COS(): TerminalNode {
		return this.getToken(PlSqlParser.COS, 0);
	}
	public COST(): TerminalNode {
		return this.getToken(PlSqlParser.COST, 0);
	}
	public COST_XML_QUERY_REWRITE(): TerminalNode {
		return this.getToken(PlSqlParser.COST_XML_QUERY_REWRITE, 0);
	}
	public COUNT(): TerminalNode {
		return this.getToken(PlSqlParser.COUNT, 0);
	}
	public COVAR_POP(): TerminalNode {
		return this.getToken(PlSqlParser.COVAR_POP, 0);
	}
	public COVAR_SAMP(): TerminalNode {
		return this.getToken(PlSqlParser.COVAR_SAMP, 0);
	}
	public CPU_COSTING(): TerminalNode {
		return this.getToken(PlSqlParser.CPU_COSTING, 0);
	}
	public CPU_PER_CALL(): TerminalNode {
		return this.getToken(PlSqlParser.CPU_PER_CALL, 0);
	}
	public CPU_PER_SESSION(): TerminalNode {
		return this.getToken(PlSqlParser.CPU_PER_SESSION, 0);
	}
	public CRASH(): TerminalNode {
		return this.getToken(PlSqlParser.CRASH, 0);
	}
	public CREATE_STORED_OUTLINES(): TerminalNode {
		return this.getToken(PlSqlParser.CREATE_STORED_OUTLINES, 0);
	}
	public CREATION(): TerminalNode {
		return this.getToken(PlSqlParser.CREATION, 0);
	}
	public CROSSEDITION(): TerminalNode {
		return this.getToken(PlSqlParser.CROSSEDITION, 0);
	}
	public CROSS(): TerminalNode {
		return this.getToken(PlSqlParser.CROSS, 0);
	}
	public CSCONVERT(): TerminalNode {
		return this.getToken(PlSqlParser.CSCONVERT, 0);
	}
	public CUBE_GB(): TerminalNode {
		return this.getToken(PlSqlParser.CUBE_GB, 0);
	}
	public CUBE(): TerminalNode {
		return this.getToken(PlSqlParser.CUBE, 0);
	}
	public CUME_DISTM(): TerminalNode {
		return this.getToken(PlSqlParser.CUME_DISTM, 0);
	}
	public CUME_DIST(): TerminalNode {
		return this.getToken(PlSqlParser.CUME_DIST, 0);
	}
	public CURRENT_DATE(): TerminalNode {
		return this.getToken(PlSqlParser.CURRENT_DATE, 0);
	}
	public CURRENT(): TerminalNode {
		return this.getToken(PlSqlParser.CURRENT, 0);
	}
	public CURRENT_SCHEMA(): TerminalNode {
		return this.getToken(PlSqlParser.CURRENT_SCHEMA, 0);
	}
	public CURRENT_TIME(): TerminalNode {
		return this.getToken(PlSqlParser.CURRENT_TIME, 0);
	}
	public CURRENT_TIMESTAMP(): TerminalNode {
		return this.getToken(PlSqlParser.CURRENT_TIMESTAMP, 0);
	}
	public CURRENT_USER(): TerminalNode {
		return this.getToken(PlSqlParser.CURRENT_USER, 0);
	}
	public CURRENTV(): TerminalNode {
		return this.getToken(PlSqlParser.CURRENTV, 0);
	}
	public CURSOR(): TerminalNode {
		return this.getToken(PlSqlParser.CURSOR, 0);
	}
	public CURSOR_SHARING_EXACT(): TerminalNode {
		return this.getToken(PlSqlParser.CURSOR_SHARING_EXACT, 0);
	}
	public CURSOR_SPECIFIC_SEGMENT(): TerminalNode {
		return this.getToken(PlSqlParser.CURSOR_SPECIFIC_SEGMENT, 0);
	}
	public CV(): TerminalNode {
		return this.getToken(PlSqlParser.CV, 0);
	}
	public CYCLE(): TerminalNode {
		return this.getToken(PlSqlParser.CYCLE, 0);
	}
	public DANGLING(): TerminalNode {
		return this.getToken(PlSqlParser.DANGLING, 0);
	}
	public DATABASE(): TerminalNode {
		return this.getToken(PlSqlParser.DATABASE, 0);
	}
	public DATAFILE(): TerminalNode {
		return this.getToken(PlSqlParser.DATAFILE, 0);
	}
	public DATAFILES(): TerminalNode {
		return this.getToken(PlSqlParser.DATAFILES, 0);
	}
	public DATA(): TerminalNode {
		return this.getToken(PlSqlParser.DATA, 0);
	}
	public DATAOBJNO(): TerminalNode {
		return this.getToken(PlSqlParser.DATAOBJNO, 0);
	}
	public DATAOBJ_TO_PARTITION(): TerminalNode {
		return this.getToken(PlSqlParser.DATAOBJ_TO_PARTITION, 0);
	}
	public DATE_MODE(): TerminalNode {
		return this.getToken(PlSqlParser.DATE_MODE, 0);
	}
	public DAY(): TerminalNode {
		return this.getToken(PlSqlParser.DAY, 0);
	}
	public DBA(): TerminalNode {
		return this.getToken(PlSqlParser.DBA, 0);
	}
	public DBA_RECYCLEBIN(): TerminalNode {
		return this.getToken(PlSqlParser.DBA_RECYCLEBIN, 0);
	}
	public DBMS_STATS(): TerminalNode {
		return this.getToken(PlSqlParser.DBMS_STATS, 0);
	}
	public DB_ROLE_CHANGE(): TerminalNode {
		return this.getToken(PlSqlParser.DB_ROLE_CHANGE, 0);
	}
	public DBTIMEZONE(): TerminalNode {
		return this.getToken(PlSqlParser.DBTIMEZONE, 0);
	}
	public DB_VERSION(): TerminalNode {
		return this.getToken(PlSqlParser.DB_VERSION, 0);
	}
	public DDL(): TerminalNode {
		return this.getToken(PlSqlParser.DDL, 0);
	}
	public DEALLOCATE(): TerminalNode {
		return this.getToken(PlSqlParser.DEALLOCATE, 0);
	}
	public DEBUGGER(): TerminalNode {
		return this.getToken(PlSqlParser.DEBUGGER, 0);
	}
	public DEBUG(): TerminalNode {
		return this.getToken(PlSqlParser.DEBUG, 0);
	}
	public DECLARE(): TerminalNode {
		return this.getToken(PlSqlParser.DECLARE, 0);
	}
	public DEC(): TerminalNode {
		return this.getToken(PlSqlParser.DEC, 0);
	}
	public DECOMPOSE(): TerminalNode {
		return this.getToken(PlSqlParser.DECOMPOSE, 0);
	}
	public DECREMENT(): TerminalNode {
		return this.getToken(PlSqlParser.DECREMENT, 0);
	}
	public DECR(): TerminalNode {
		return this.getToken(PlSqlParser.DECR, 0);
	}
	public DECRYPT(): TerminalNode {
		return this.getToken(PlSqlParser.DECRYPT, 0);
	}
	public DEDUPLICATE(): TerminalNode {
		return this.getToken(PlSqlParser.DEDUPLICATE, 0);
	}
	public DEFAULTS(): TerminalNode {
		return this.getToken(PlSqlParser.DEFAULTS, 0);
	}
	public DEFERRABLE(): TerminalNode {
		return this.getToken(PlSqlParser.DEFERRABLE, 0);
	}
	public DEFERRED(): TerminalNode {
		return this.getToken(PlSqlParser.DEFERRED, 0);
	}
	public DEFINED(): TerminalNode {
		return this.getToken(PlSqlParser.DEFINED, 0);
	}
	public DEFINER(): TerminalNode {
		return this.getToken(PlSqlParser.DEFINER, 0);
	}
	public DEGREE(): TerminalNode {
		return this.getToken(PlSqlParser.DEGREE, 0);
	}
	public DELAY(): TerminalNode {
		return this.getToken(PlSqlParser.DELAY, 0);
	}
	public DELETEXML(): TerminalNode {
		return this.getToken(PlSqlParser.DELETEXML, 0);
	}
	public DEMAND(): TerminalNode {
		return this.getToken(PlSqlParser.DEMAND, 0);
	}
	public DENSE_RANKM(): TerminalNode {
		return this.getToken(PlSqlParser.DENSE_RANKM, 0);
	}
	public DENSE_RANK(): TerminalNode {
		return this.getToken(PlSqlParser.DENSE_RANK, 0);
	}
	public DEPENDENT(): TerminalNode {
		return this.getToken(PlSqlParser.DEPENDENT, 0);
	}
	public DEPTH(): TerminalNode {
		return this.getToken(PlSqlParser.DEPTH, 0);
	}
	public DEQUEUE(): TerminalNode {
		return this.getToken(PlSqlParser.DEQUEUE, 0);
	}
	public DEREF(): TerminalNode {
		return this.getToken(PlSqlParser.DEREF, 0);
	}
	public DEREF_NO_REWRITE(): TerminalNode {
		return this.getToken(PlSqlParser.DEREF_NO_REWRITE, 0);
	}
	public DETACHED(): TerminalNode {
		return this.getToken(PlSqlParser.DETACHED, 0);
	}
	public DETERMINES(): TerminalNode {
		return this.getToken(PlSqlParser.DETERMINES, 0);
	}
	public DICTIONARY(): TerminalNode {
		return this.getToken(PlSqlParser.DICTIONARY, 0);
	}
	public DIMENSION(): TerminalNode {
		return this.getToken(PlSqlParser.DIMENSION, 0);
	}
	public DIRECT_LOAD(): TerminalNode {
		return this.getToken(PlSqlParser.DIRECT_LOAD, 0);
	}
	public DIRECTORY(): TerminalNode {
		return this.getToken(PlSqlParser.DIRECTORY, 0);
	}
	public DIRECT_PATH(): TerminalNode {
		return this.getToken(PlSqlParser.DIRECT_PATH, 0);
	}
	public DISABLE(): TerminalNode {
		return this.getToken(PlSqlParser.DISABLE, 0);
	}
	public DISABLE_PRESET(): TerminalNode {
		return this.getToken(PlSqlParser.DISABLE_PRESET, 0);
	}
	public DISABLE_RPKE(): TerminalNode {
		return this.getToken(PlSqlParser.DISABLE_RPKE, 0);
	}
	public DISALLOW(): TerminalNode {
		return this.getToken(PlSqlParser.DISALLOW, 0);
	}
	public DISASSOCIATE(): TerminalNode {
		return this.getToken(PlSqlParser.DISASSOCIATE, 0);
	}
	public DISCONNECT(): TerminalNode {
		return this.getToken(PlSqlParser.DISCONNECT, 0);
	}
	public DISKGROUP(): TerminalNode {
		return this.getToken(PlSqlParser.DISKGROUP, 0);
	}
	public DISK(): TerminalNode {
		return this.getToken(PlSqlParser.DISK, 0);
	}
	public DISKS(): TerminalNode {
		return this.getToken(PlSqlParser.DISKS, 0);
	}
	public DISMOUNT(): TerminalNode {
		return this.getToken(PlSqlParser.DISMOUNT, 0);
	}
	public DISTINGUISHED(): TerminalNode {
		return this.getToken(PlSqlParser.DISTINGUISHED, 0);
	}
	public DISTRIBUTED(): TerminalNode {
		return this.getToken(PlSqlParser.DISTRIBUTED, 0);
	}
	public DML(): TerminalNode {
		return this.getToken(PlSqlParser.DML, 0);
	}
	public DML_UPDATE(): TerminalNode {
		return this.getToken(PlSqlParser.DML_UPDATE, 0);
	}
	public DOCFIDELITY(): TerminalNode {
		return this.getToken(PlSqlParser.DOCFIDELITY, 0);
	}
	public DOCUMENT(): TerminalNode {
		return this.getToken(PlSqlParser.DOCUMENT, 0);
	}
	public DOMAIN_INDEX_FILTER(): TerminalNode {
		return this.getToken(PlSqlParser.DOMAIN_INDEX_FILTER, 0);
	}
	public DOMAIN_INDEX_NO_SORT(): TerminalNode {
		return this.getToken(PlSqlParser.DOMAIN_INDEX_NO_SORT, 0);
	}
	public DOMAIN_INDEX_SORT(): TerminalNode {
		return this.getToken(PlSqlParser.DOMAIN_INDEX_SORT, 0);
	}
	public DOUBLE(): TerminalNode {
		return this.getToken(PlSqlParser.DOUBLE, 0);
	}
	public DOWNGRADE(): TerminalNode {
		return this.getToken(PlSqlParser.DOWNGRADE, 0);
	}
	public DRIVING_SITE(): TerminalNode {
		return this.getToken(PlSqlParser.DRIVING_SITE, 0);
	}
	public DROP_COLUMN(): TerminalNode {
		return this.getToken(PlSqlParser.DROP_COLUMN, 0);
	}
	public DROP_GROUP(): TerminalNode {
		return this.getToken(PlSqlParser.DROP_GROUP, 0);
	}
	public DST_UPGRADE_INSERT_CONV(): TerminalNode {
		return this.getToken(PlSqlParser.DST_UPGRADE_INSERT_CONV, 0);
	}
	public DUMP(): TerminalNode {
		return this.getToken(PlSqlParser.DUMP, 0);
	}
	public DYNAMIC(): TerminalNode {
		return this.getToken(PlSqlParser.DYNAMIC, 0);
	}
	public DYNAMIC_SAMPLING_EST_CDN(): TerminalNode {
		return this.getToken(PlSqlParser.DYNAMIC_SAMPLING_EST_CDN, 0);
	}
	public DYNAMIC_SAMPLING(): TerminalNode {
		return this.getToken(PlSqlParser.DYNAMIC_SAMPLING, 0);
	}
	public EACH(): TerminalNode {
		return this.getToken(PlSqlParser.EACH, 0);
	}
	public EDITIONING(): TerminalNode {
		return this.getToken(PlSqlParser.EDITIONING, 0);
	}
	public EDITION(): TerminalNode {
		return this.getToken(PlSqlParser.EDITION, 0);
	}
	public EDITIONS(): TerminalNode {
		return this.getToken(PlSqlParser.EDITIONS, 0);
	}
	public ELEMENT(): TerminalNode {
		return this.getToken(PlSqlParser.ELEMENT, 0);
	}
	public ELIMINATE_JOIN(): TerminalNode {
		return this.getToken(PlSqlParser.ELIMINATE_JOIN, 0);
	}
	public ELIMINATE_OBY(): TerminalNode {
		return this.getToken(PlSqlParser.ELIMINATE_OBY, 0);
	}
	public ELIMINATE_OUTER_JOIN(): TerminalNode {
		return this.getToken(PlSqlParser.ELIMINATE_OUTER_JOIN, 0);
	}
	public EMPTY_BLOB(): TerminalNode {
		return this.getToken(PlSqlParser.EMPTY_BLOB, 0);
	}
	public EMPTY_CLOB(): TerminalNode {
		return this.getToken(PlSqlParser.EMPTY_CLOB, 0);
	}
	public EMPTY(): TerminalNode {
		return this.getToken(PlSqlParser.EMPTY, 0);
	}
	public ENABLE(): TerminalNode {
		return this.getToken(PlSqlParser.ENABLE, 0);
	}
	public ENABLE_PRESET(): TerminalNode {
		return this.getToken(PlSqlParser.ENABLE_PRESET, 0);
	}
	public ENCODING(): TerminalNode {
		return this.getToken(PlSqlParser.ENCODING, 0);
	}
	public ENCRYPTION(): TerminalNode {
		return this.getToken(PlSqlParser.ENCRYPTION, 0);
	}
	public ENCRYPT(): TerminalNode {
		return this.getToken(PlSqlParser.ENCRYPT, 0);
	}
	public END_OUTLINE_DATA(): TerminalNode {
		return this.getToken(PlSqlParser.END_OUTLINE_DATA, 0);
	}
	public ENFORCED(): TerminalNode {
		return this.getToken(PlSqlParser.ENFORCED, 0);
	}
	public ENFORCE(): TerminalNode {
		return this.getToken(PlSqlParser.ENFORCE, 0);
	}
	public ENQUEUE(): TerminalNode {
		return this.getToken(PlSqlParser.ENQUEUE, 0);
	}
	public ENTERPRISE(): TerminalNode {
		return this.getToken(PlSqlParser.ENTERPRISE, 0);
	}
	public ENTITYESCAPING(): TerminalNode {
		return this.getToken(PlSqlParser.ENTITYESCAPING, 0);
	}
	public ENTRY(): TerminalNode {
		return this.getToken(PlSqlParser.ENTRY, 0);
	}
	public ERROR_ARGUMENT(): TerminalNode {
		return this.getToken(PlSqlParser.ERROR_ARGUMENT, 0);
	}
	public ERROR(): TerminalNode {
		return this.getToken(PlSqlParser.ERROR, 0);
	}
	public ERROR_ON_OVERLAP_TIME(): TerminalNode {
		return this.getToken(PlSqlParser.ERROR_ON_OVERLAP_TIME, 0);
	}
	public ERRORS(): TerminalNode {
		return this.getToken(PlSqlParser.ERRORS, 0);
	}
	public ESCAPE(): TerminalNode {
		return this.getToken(PlSqlParser.ESCAPE, 0);
	}
	public ESTIMATE(): TerminalNode {
		return this.getToken(PlSqlParser.ESTIMATE, 0);
	}
	public EVALNAME(): TerminalNode {
		return this.getToken(PlSqlParser.EVALNAME, 0);
	}
	public EVALUATION(): TerminalNode {
		return this.getToken(PlSqlParser.EVALUATION, 0);
	}
	public EVENTS(): TerminalNode {
		return this.getToken(PlSqlParser.EVENTS, 0);
	}
	public EVERY(): TerminalNode {
		return this.getToken(PlSqlParser.EVERY, 0);
	}
	public EXCEPTIONS(): TerminalNode {
		return this.getToken(PlSqlParser.EXCEPTIONS, 0);
	}
	public EXCEPT(): TerminalNode {
		return this.getToken(PlSqlParser.EXCEPT, 0);
	}
	public EXCHANGE(): TerminalNode {
		return this.getToken(PlSqlParser.EXCHANGE, 0);
	}
	public EXCLUDE(): TerminalNode {
		return this.getToken(PlSqlParser.EXCLUDE, 0);
	}
	public EXCLUDING(): TerminalNode {
		return this.getToken(PlSqlParser.EXCLUDING, 0);
	}
	public EXECUTE(): TerminalNode {
		return this.getToken(PlSqlParser.EXECUTE, 0);
	}
	public EXEMPT(): TerminalNode {
		return this.getToken(PlSqlParser.EXEMPT, 0);
	}
	public EXISTSNODE(): TerminalNode {
		return this.getToken(PlSqlParser.EXISTSNODE, 0);
	}
	public EXPAND_GSET_TO_UNION(): TerminalNode {
		return this.getToken(PlSqlParser.EXPAND_GSET_TO_UNION, 0);
	}
	public EXPAND_TABLE(): TerminalNode {
		return this.getToken(PlSqlParser.EXPAND_TABLE, 0);
	}
	public EXPIRE(): TerminalNode {
		return this.getToken(PlSqlParser.EXPIRE, 0);
	}
	public EXPLAIN(): TerminalNode {
		return this.getToken(PlSqlParser.EXPLAIN, 0);
	}
	public EXPLOSION(): TerminalNode {
		return this.getToken(PlSqlParser.EXPLOSION, 0);
	}
	public EXP(): TerminalNode {
		return this.getToken(PlSqlParser.EXP, 0);
	}
	public EXPORT(): TerminalNode {
		return this.getToken(PlSqlParser.EXPORT, 0);
	}
	public EXPR_CORR_CHECK(): TerminalNode {
		return this.getToken(PlSqlParser.EXPR_CORR_CHECK, 0);
	}
	public EXTENDS(): TerminalNode {
		return this.getToken(PlSqlParser.EXTENDS, 0);
	}
	public EXTENT(): TerminalNode {
		return this.getToken(PlSqlParser.EXTENT, 0);
	}
	public EXTENTS(): TerminalNode {
		return this.getToken(PlSqlParser.EXTENTS, 0);
	}
	public EXTERNALLY(): TerminalNode {
		return this.getToken(PlSqlParser.EXTERNALLY, 0);
	}
	public EXTERNAL(): TerminalNode {
		return this.getToken(PlSqlParser.EXTERNAL, 0);
	}
	public EXTRACT(): TerminalNode {
		return this.getToken(PlSqlParser.EXTRACT, 0);
	}
	public EXTRACTVALUE(): TerminalNode {
		return this.getToken(PlSqlParser.EXTRACTVALUE, 0);
	}
	public EXTRA(): TerminalNode {
		return this.getToken(PlSqlParser.EXTRA, 0);
	}
	public FACILITY(): TerminalNode {
		return this.getToken(PlSqlParser.FACILITY, 0);
	}
	public FACT(): TerminalNode {
		return this.getToken(PlSqlParser.FACT, 0);
	}
	public FACTORIZE_JOIN(): TerminalNode {
		return this.getToken(PlSqlParser.FACTORIZE_JOIN, 0);
	}
	public FAILED_LOGIN_ATTEMPTS(): TerminalNode {
		return this.getToken(PlSqlParser.FAILED_LOGIN_ATTEMPTS, 0);
	}
	public FAILED(): TerminalNode {
		return this.getToken(PlSqlParser.FAILED, 0);
	}
	public FAILGROUP(): TerminalNode {
		return this.getToken(PlSqlParser.FAILGROUP, 0);
	}
	public FALSE(): TerminalNode {
		return this.getToken(PlSqlParser.FALSE, 0);
	}
	public FAST(): TerminalNode {
		return this.getToken(PlSqlParser.FAST, 0);
	}
	public FBTSCAN(): TerminalNode {
		return this.getToken(PlSqlParser.FBTSCAN, 0);
	}
	public FEATURE_ID(): TerminalNode {
		return this.getToken(PlSqlParser.FEATURE_ID, 0);
	}
	public FEATURE_SET(): TerminalNode {
		return this.getToken(PlSqlParser.FEATURE_SET, 0);
	}
	public FEATURE_VALUE(): TerminalNode {
		return this.getToken(PlSqlParser.FEATURE_VALUE, 0);
	}
	public FILE(): TerminalNode {
		return this.getToken(PlSqlParser.FILE, 0);
	}
	public FILESYSTEM_LIKE_LOGGING(): TerminalNode {
		return this.getToken(PlSqlParser.FILESYSTEM_LIKE_LOGGING, 0);
	}
	public FILTER(): TerminalNode {
		return this.getToken(PlSqlParser.FILTER, 0);
	}
	public FINAL(): TerminalNode {
		return this.getToken(PlSqlParser.FINAL, 0);
	}
	public FINE(): TerminalNode {
		return this.getToken(PlSqlParser.FINE, 0);
	}
	public FINISH(): TerminalNode {
		return this.getToken(PlSqlParser.FINISH, 0);
	}
	public FIRSTM(): TerminalNode {
		return this.getToken(PlSqlParser.FIRSTM, 0);
	}
	public FIRST(): TerminalNode {
		return this.getToken(PlSqlParser.FIRST, 0);
	}
	public FIRST_ROWS(): TerminalNode {
		return this.getToken(PlSqlParser.FIRST_ROWS, 0);
	}
	public FIRST_VALUE(): TerminalNode {
		return this.getToken(PlSqlParser.FIRST_VALUE, 0);
	}
	public FLAGGER(): TerminalNode {
		return this.getToken(PlSqlParser.FLAGGER, 0);
	}
	public FLASHBACK(): TerminalNode {
		return this.getToken(PlSqlParser.FLASHBACK, 0);
	}
	public FLASH_CACHE(): TerminalNode {
		return this.getToken(PlSqlParser.FLASH_CACHE, 0);
	}
	public FLOB(): TerminalNode {
		return this.getToken(PlSqlParser.FLOB, 0);
	}
	public FLOOR(): TerminalNode {
		return this.getToken(PlSqlParser.FLOOR, 0);
	}
	public FLUSH(): TerminalNode {
		return this.getToken(PlSqlParser.FLUSH, 0);
	}
	public FOLDER(): TerminalNode {
		return this.getToken(PlSqlParser.FOLDER, 0);
	}
	public FOLLOWING(): TerminalNode {
		return this.getToken(PlSqlParser.FOLLOWING, 0);
	}
	public FOLLOWS(): TerminalNode {
		return this.getToken(PlSqlParser.FOLLOWS, 0);
	}
	public FORCE(): TerminalNode {
		return this.getToken(PlSqlParser.FORCE, 0);
	}
	public FORCE_XML_QUERY_REWRITE(): TerminalNode {
		return this.getToken(PlSqlParser.FORCE_XML_QUERY_REWRITE, 0);
	}
	public FOREIGN(): TerminalNode {
		return this.getToken(PlSqlParser.FOREIGN, 0);
	}
	public FOREVER(): TerminalNode {
		return this.getToken(PlSqlParser.FOREVER, 0);
	}
	public FORWARD(): TerminalNode {
		return this.getToken(PlSqlParser.FORWARD, 0);
	}
	public FRAGMENT_NUMBER(): TerminalNode {
		return this.getToken(PlSqlParser.FRAGMENT_NUMBER, 0);
	}
	public FREELIST(): TerminalNode {
		return this.getToken(PlSqlParser.FREELIST, 0);
	}
	public FREELISTS(): TerminalNode {
		return this.getToken(PlSqlParser.FREELISTS, 0);
	}
	public FREEPOOLS(): TerminalNode {
		return this.getToken(PlSqlParser.FREEPOOLS, 0);
	}
	public FRESH(): TerminalNode {
		return this.getToken(PlSqlParser.FRESH, 0);
	}
	public FROM_TZ(): TerminalNode {
		return this.getToken(PlSqlParser.FROM_TZ, 0);
	}
	public FULL(): TerminalNode {
		return this.getToken(PlSqlParser.FULL, 0);
	}
	public FULL_OUTER_JOIN_TO_OUTER(): TerminalNode {
		return this.getToken(PlSqlParser.FULL_OUTER_JOIN_TO_OUTER, 0);
	}
	public FUNCTION(): TerminalNode {
		return this.getToken(PlSqlParser.FUNCTION, 0);
	}
	public FUNCTIONS(): TerminalNode {
		return this.getToken(PlSqlParser.FUNCTIONS, 0);
	}
	public GATHER_PLAN_STATISTICS(): TerminalNode {
		return this.getToken(PlSqlParser.GATHER_PLAN_STATISTICS, 0);
	}
	public GBY_CONC_ROLLUP(): TerminalNode {
		return this.getToken(PlSqlParser.GBY_CONC_ROLLUP, 0);
	}
	public GBY_PUSHDOWN(): TerminalNode {
		return this.getToken(PlSqlParser.GBY_PUSHDOWN, 0);
	}
	public GENERATED(): TerminalNode {
		return this.getToken(PlSqlParser.GENERATED, 0);
	}
	public GLOBALLY(): TerminalNode {
		return this.getToken(PlSqlParser.GLOBALLY, 0);
	}
	public GLOBAL(): TerminalNode {
		return this.getToken(PlSqlParser.GLOBAL, 0);
	}
	public GLOBAL_NAME(): TerminalNode {
		return this.getToken(PlSqlParser.GLOBAL_NAME, 0);
	}
	public GLOBAL_TOPIC_ENABLED(): TerminalNode {
		return this.getToken(PlSqlParser.GLOBAL_TOPIC_ENABLED, 0);
	}
	public GREATEST(): TerminalNode {
		return this.getToken(PlSqlParser.GREATEST, 0);
	}
	public GROUP_BY(): TerminalNode {
		return this.getToken(PlSqlParser.GROUP_BY, 0);
	}
	public GROUP_ID(): TerminalNode {
		return this.getToken(PlSqlParser.GROUP_ID, 0);
	}
	public GROUPING_ID(): TerminalNode {
		return this.getToken(PlSqlParser.GROUPING_ID, 0);
	}
	public GROUPING(): TerminalNode {
		return this.getToken(PlSqlParser.GROUPING, 0);
	}
	public GROUPS(): TerminalNode {
		return this.getToken(PlSqlParser.GROUPS, 0);
	}
	public GUARANTEED(): TerminalNode {
		return this.getToken(PlSqlParser.GUARANTEED, 0);
	}
	public GUARANTEE(): TerminalNode {
		return this.getToken(PlSqlParser.GUARANTEE, 0);
	}
	public GUARD(): TerminalNode {
		return this.getToken(PlSqlParser.GUARD, 0);
	}
	public HASH_AJ(): TerminalNode {
		return this.getToken(PlSqlParser.HASH_AJ, 0);
	}
	public HASHKEYS(): TerminalNode {
		return this.getToken(PlSqlParser.HASHKEYS, 0);
	}
	public HASH(): TerminalNode {
		return this.getToken(PlSqlParser.HASH, 0);
	}
	public HASH_SJ(): TerminalNode {
		return this.getToken(PlSqlParser.HASH_SJ, 0);
	}
	public HEADER(): TerminalNode {
		return this.getToken(PlSqlParser.HEADER, 0);
	}
	public HEAP(): TerminalNode {
		return this.getToken(PlSqlParser.HEAP, 0);
	}
	public HELP(): TerminalNode {
		return this.getToken(PlSqlParser.HELP, 0);
	}
	public HEXTORAW(): TerminalNode {
		return this.getToken(PlSqlParser.HEXTORAW, 0);
	}
	public HEXTOREF(): TerminalNode {
		return this.getToken(PlSqlParser.HEXTOREF, 0);
	}
	public HIDDEN_KEYWORD(): TerminalNode {
		return this.getToken(PlSqlParser.HIDDEN_KEYWORD, 0);
	}
	public HIDE(): TerminalNode {
		return this.getToken(PlSqlParser.HIDE, 0);
	}
	public HIERARCHY(): TerminalNode {
		return this.getToken(PlSqlParser.HIERARCHY, 0);
	}
	public HIGH(): TerminalNode {
		return this.getToken(PlSqlParser.HIGH, 0);
	}
	public HINTSET_BEGIN(): TerminalNode {
		return this.getToken(PlSqlParser.HINTSET_BEGIN, 0);
	}
	public HINTSET_END(): TerminalNode {
		return this.getToken(PlSqlParser.HINTSET_END, 0);
	}
	public HOT(): TerminalNode {
		return this.getToken(PlSqlParser.HOT, 0);
	}
	public HOUR(): TerminalNode {
		return this.getToken(PlSqlParser.HOUR, 0);
	}
	public HWM_BROKERED(): TerminalNode {
		return this.getToken(PlSqlParser.HWM_BROKERED, 0);
	}
	public HYBRID(): TerminalNode {
		return this.getToken(PlSqlParser.HYBRID, 0);
	}
	public IDENTIFIER(): TerminalNode {
		return this.getToken(PlSqlParser.IDENTIFIER, 0);
	}
	public IDENTITY(): TerminalNode {
		return this.getToken(PlSqlParser.IDENTITY, 0);
	}
	public IDGENERATORS(): TerminalNode {
		return this.getToken(PlSqlParser.IDGENERATORS, 0);
	}
	public IDLE_TIME(): TerminalNode {
		return this.getToken(PlSqlParser.IDLE_TIME, 0);
	}
	public ID(): TerminalNode {
		return this.getToken(PlSqlParser.ID, 0);
	}
	public IF(): TerminalNode {
		return this.getToken(PlSqlParser.IF, 0);
	}
	public IGNORE(): TerminalNode {
		return this.getToken(PlSqlParser.IGNORE, 0);
	}
	public IGNORE_OPTIM_EMBEDDED_HINTS(): TerminalNode {
		return this.getToken(PlSqlParser.IGNORE_OPTIM_EMBEDDED_HINTS, 0);
	}
	public IGNORE_ROW_ON_DUPKEY_INDEX(): TerminalNode {
		return this.getToken(PlSqlParser.IGNORE_ROW_ON_DUPKEY_INDEX, 0);
	}
	public IGNORE_WHERE_CLAUSE(): TerminalNode {
		return this.getToken(PlSqlParser.IGNORE_WHERE_CLAUSE, 0);
	}
	public IMMEDIATE(): TerminalNode {
		return this.getToken(PlSqlParser.IMMEDIATE, 0);
	}
	public IMPACT(): TerminalNode {
		return this.getToken(PlSqlParser.IMPACT, 0);
	}
	public IMPORT(): TerminalNode {
		return this.getToken(PlSqlParser.IMPORT, 0);
	}
	public INCLUDE(): TerminalNode {
		return this.getToken(PlSqlParser.INCLUDE, 0);
	}
	public INCLUDE_VERSION(): TerminalNode {
		return this.getToken(PlSqlParser.INCLUDE_VERSION, 0);
	}
	public INCLUDING(): TerminalNode {
		return this.getToken(PlSqlParser.INCLUDING, 0);
	}
	public INCREMENTAL(): TerminalNode {
		return this.getToken(PlSqlParser.INCREMENTAL, 0);
	}
	public INCREMENT(): TerminalNode {
		return this.getToken(PlSqlParser.INCREMENT, 0);
	}
	public INCR(): TerminalNode {
		return this.getToken(PlSqlParser.INCR, 0);
	}
	public INDENT(): TerminalNode {
		return this.getToken(PlSqlParser.INDENT, 0);
	}
	public INDEX_ASC(): TerminalNode {
		return this.getToken(PlSqlParser.INDEX_ASC, 0);
	}
	public INDEX_COMBINE(): TerminalNode {
		return this.getToken(PlSqlParser.INDEX_COMBINE, 0);
	}
	public INDEX_DESC(): TerminalNode {
		return this.getToken(PlSqlParser.INDEX_DESC, 0);
	}
	public INDEXED(): TerminalNode {
		return this.getToken(PlSqlParser.INDEXED, 0);
	}
	public INDEXES(): TerminalNode {
		return this.getToken(PlSqlParser.INDEXES, 0);
	}
	public INDEX_FFS(): TerminalNode {
		return this.getToken(PlSqlParser.INDEX_FFS, 0);
	}
	public INDEX_FILTER(): TerminalNode {
		return this.getToken(PlSqlParser.INDEX_FILTER, 0);
	}
	public INDEX_JOIN(): TerminalNode {
		return this.getToken(PlSqlParser.INDEX_JOIN, 0);
	}
	public INDEX_ROWS(): TerminalNode {
		return this.getToken(PlSqlParser.INDEX_ROWS, 0);
	}
	public INDEX_RRS(): TerminalNode {
		return this.getToken(PlSqlParser.INDEX_RRS, 0);
	}
	public INDEX_RS_ASC(): TerminalNode {
		return this.getToken(PlSqlParser.INDEX_RS_ASC, 0);
	}
	public INDEX_RS_DESC(): TerminalNode {
		return this.getToken(PlSqlParser.INDEX_RS_DESC, 0);
	}
	public INDEX_RS(): TerminalNode {
		return this.getToken(PlSqlParser.INDEX_RS, 0);
	}
	public INDEX_SCAN(): TerminalNode {
		return this.getToken(PlSqlParser.INDEX_SCAN, 0);
	}
	public INDEX_SKIP_SCAN(): TerminalNode {
		return this.getToken(PlSqlParser.INDEX_SKIP_SCAN, 0);
	}
	public INDEX_SS_ASC(): TerminalNode {
		return this.getToken(PlSqlParser.INDEX_SS_ASC, 0);
	}
	public INDEX_SS_DESC(): TerminalNode {
		return this.getToken(PlSqlParser.INDEX_SS_DESC, 0);
	}
	public INDEX_SS(): TerminalNode {
		return this.getToken(PlSqlParser.INDEX_SS, 0);
	}
	public INDEX_STATS(): TerminalNode {
		return this.getToken(PlSqlParser.INDEX_STATS, 0);
	}
	public INDEXTYPE(): TerminalNode {
		return this.getToken(PlSqlParser.INDEXTYPE, 0);
	}
	public INDEXTYPES(): TerminalNode {
		return this.getToken(PlSqlParser.INDEXTYPES, 0);
	}
	public INDICATOR(): TerminalNode {
		return this.getToken(PlSqlParser.INDICATOR, 0);
	}
	public INFINITE(): TerminalNode {
		return this.getToken(PlSqlParser.INFINITE, 0);
	}
	public INFORMATIONAL(): TerminalNode {
		return this.getToken(PlSqlParser.INFORMATIONAL, 0);
	}
	public INITCAP(): TerminalNode {
		return this.getToken(PlSqlParser.INITCAP, 0);
	}
	public INITIALIZED(): TerminalNode {
		return this.getToken(PlSqlParser.INITIALIZED, 0);
	}
	public INITIALLY(): TerminalNode {
		return this.getToken(PlSqlParser.INITIALLY, 0);
	}
	public INITIAL(): TerminalNode {
		return this.getToken(PlSqlParser.INITIAL, 0);
	}
	public INITRANS(): TerminalNode {
		return this.getToken(PlSqlParser.INITRANS, 0);
	}
	public INLINE(): TerminalNode {
		return this.getToken(PlSqlParser.INLINE, 0);
	}
	public INLINE_XMLTYPE_NT(): TerminalNode {
		return this.getToken(PlSqlParser.INLINE_XMLTYPE_NT, 0);
	}
	public IN_MEMORY_METADATA(): TerminalNode {
		return this.getToken(PlSqlParser.IN_MEMORY_METADATA, 0);
	}
	public INNER(): TerminalNode {
		return this.getToken(PlSqlParser.INNER, 0);
	}
	public INSERTCHILDXMLAFTER(): TerminalNode {
		return this.getToken(PlSqlParser.INSERTCHILDXMLAFTER, 0);
	}
	public INSERTCHILDXMLBEFORE(): TerminalNode {
		return this.getToken(PlSqlParser.INSERTCHILDXMLBEFORE, 0);
	}
	public INSERTCHILDXML(): TerminalNode {
		return this.getToken(PlSqlParser.INSERTCHILDXML, 0);
	}
	public INSERTXMLAFTER(): TerminalNode {
		return this.getToken(PlSqlParser.INSERTXMLAFTER, 0);
	}
	public INSERTXMLBEFORE(): TerminalNode {
		return this.getToken(PlSqlParser.INSERTXMLBEFORE, 0);
	}
	public INSTANCE(): TerminalNode {
		return this.getToken(PlSqlParser.INSTANCE, 0);
	}
	public INSTANCES(): TerminalNode {
		return this.getToken(PlSqlParser.INSTANCES, 0);
	}
	public INSTANTIABLE(): TerminalNode {
		return this.getToken(PlSqlParser.INSTANTIABLE, 0);
	}
	public INSTANTLY(): TerminalNode {
		return this.getToken(PlSqlParser.INSTANTLY, 0);
	}
	public INSTEAD(): TerminalNode {
		return this.getToken(PlSqlParser.INSTEAD, 0);
	}
	public INSTR2(): TerminalNode {
		return this.getToken(PlSqlParser.INSTR2, 0);
	}
	public INSTR4(): TerminalNode {
		return this.getToken(PlSqlParser.INSTR4, 0);
	}
	public INSTRB(): TerminalNode {
		return this.getToken(PlSqlParser.INSTRB, 0);
	}
	public INSTRC(): TerminalNode {
		return this.getToken(PlSqlParser.INSTRC, 0);
	}
	public INSTR(): TerminalNode {
		return this.getToken(PlSqlParser.INSTR, 0);
	}
	public INTERMEDIATE(): TerminalNode {
		return this.getToken(PlSqlParser.INTERMEDIATE, 0);
	}
	public INTERNAL_CONVERT(): TerminalNode {
		return this.getToken(PlSqlParser.INTERNAL_CONVERT, 0);
	}
	public INTERNAL_USE(): TerminalNode {
		return this.getToken(PlSqlParser.INTERNAL_USE, 0);
	}
	public INTERPRETED(): TerminalNode {
		return this.getToken(PlSqlParser.INTERPRETED, 0);
	}
	public INTERVAL(): TerminalNode {
		return this.getToken(PlSqlParser.INTERVAL, 0);
	}
	public INT(): TerminalNode {
		return this.getToken(PlSqlParser.INT, 0);
	}
	public INVALIDATE(): TerminalNode {
		return this.getToken(PlSqlParser.INVALIDATE, 0);
	}
	public INVISIBLE(): TerminalNode {
		return this.getToken(PlSqlParser.INVISIBLE, 0);
	}
	public IN_XQUERY(): TerminalNode {
		return this.getToken(PlSqlParser.IN_XQUERY, 0);
	}
	public ISOLATION_LEVEL(): TerminalNode {
		return this.getToken(PlSqlParser.ISOLATION_LEVEL, 0);
	}
	public ISOLATION(): TerminalNode {
		return this.getToken(PlSqlParser.ISOLATION, 0);
	}
	public ITERATE(): TerminalNode {
		return this.getToken(PlSqlParser.ITERATE, 0);
	}
	public ITERATION_NUMBER(): TerminalNode {
		return this.getToken(PlSqlParser.ITERATION_NUMBER, 0);
	}
	public JAVA(): TerminalNode {
		return this.getToken(PlSqlParser.JAVA, 0);
	}
	public JOB(): TerminalNode {
		return this.getToken(PlSqlParser.JOB, 0);
	}
	public JOIN(): TerminalNode {
		return this.getToken(PlSqlParser.JOIN, 0);
	}
	public KEEP_DUPLICATES(): TerminalNode {
		return this.getToken(PlSqlParser.KEEP_DUPLICATES, 0);
	}
	public KEEP(): TerminalNode {
		return this.getToken(PlSqlParser.KEEP, 0);
	}
	public KERBEROS(): TerminalNode {
		return this.getToken(PlSqlParser.KERBEROS, 0);
	}
	public KEY_LENGTH(): TerminalNode {
		return this.getToken(PlSqlParser.KEY_LENGTH, 0);
	}
	public KEY(): TerminalNode {
		return this.getToken(PlSqlParser.KEY, 0);
	}
	public KEYSIZE(): TerminalNode {
		return this.getToken(PlSqlParser.KEYSIZE, 0);
	}
	public KEYS(): TerminalNode {
		return this.getToken(PlSqlParser.KEYS, 0);
	}
	public KILL(): TerminalNode {
		return this.getToken(PlSqlParser.KILL, 0);
	}
	public LAG(): TerminalNode {
		return this.getToken(PlSqlParser.LAG, 0);
	}
	public LAST_DAY(): TerminalNode {
		return this.getToken(PlSqlParser.LAST_DAY, 0);
	}
	public LAST(): TerminalNode {
		return this.getToken(PlSqlParser.LAST, 0);
	}
	public LAST_VALUE(): TerminalNode {
		return this.getToken(PlSqlParser.LAST_VALUE, 0);
	}
	public LATERAL(): TerminalNode {
		return this.getToken(PlSqlParser.LATERAL, 0);
	}
	public LAYER(): TerminalNode {
		return this.getToken(PlSqlParser.LAYER, 0);
	}
	public LDAP_REGISTRATION_ENABLED(): TerminalNode {
		return this.getToken(PlSqlParser.LDAP_REGISTRATION_ENABLED, 0);
	}
	public LDAP_REGISTRATION(): TerminalNode {
		return this.getToken(PlSqlParser.LDAP_REGISTRATION, 0);
	}
	public LDAP_REG_SYNC_INTERVAL(): TerminalNode {
		return this.getToken(PlSqlParser.LDAP_REG_SYNC_INTERVAL, 0);
	}
	public LEADING(): TerminalNode {
		return this.getToken(PlSqlParser.LEADING, 0);
	}
	public LEAD(): TerminalNode {
		return this.getToken(PlSqlParser.LEAD, 0);
	}
	public LEAST(): TerminalNode {
		return this.getToken(PlSqlParser.LEAST, 0);
	}
	public LEFT(): TerminalNode {
		return this.getToken(PlSqlParser.LEFT, 0);
	}
	public LENGTH2(): TerminalNode {
		return this.getToken(PlSqlParser.LENGTH2, 0);
	}
	public LENGTH4(): TerminalNode {
		return this.getToken(PlSqlParser.LENGTH4, 0);
	}
	public LENGTHB(): TerminalNode {
		return this.getToken(PlSqlParser.LENGTHB, 0);
	}
	public LENGTHC(): TerminalNode {
		return this.getToken(PlSqlParser.LENGTHC, 0);
	}
	public LENGTH(): TerminalNode {
		return this.getToken(PlSqlParser.LENGTH, 0);
	}
	public LESS(): TerminalNode {
		return this.getToken(PlSqlParser.LESS, 0);
	}
	public LEVEL(): TerminalNode {
		return this.getToken(PlSqlParser.LEVEL, 0);
	}
	public LEVELS(): TerminalNode {
		return this.getToken(PlSqlParser.LEVELS, 0);
	}
	public LIBRARY(): TerminalNode {
		return this.getToken(PlSqlParser.LIBRARY, 0);
	}
	public LIFE(): TerminalNode {
		return this.getToken(PlSqlParser.LIFE, 0);
	}
	public LIFETIME(): TerminalNode {
		return this.getToken(PlSqlParser.LIFETIME, 0);
	}
	public LIKE2(): TerminalNode {
		return this.getToken(PlSqlParser.LIKE2, 0);
	}
	public LIKE4(): TerminalNode {
		return this.getToken(PlSqlParser.LIKE4, 0);
	}
	public LIKEC(): TerminalNode {
		return this.getToken(PlSqlParser.LIKEC, 0);
	}
	public LIKE_EXPAND(): TerminalNode {
		return this.getToken(PlSqlParser.LIKE_EXPAND, 0);
	}
	public LIMIT(): TerminalNode {
		return this.getToken(PlSqlParser.LIMIT, 0);
	}
	public LINK(): TerminalNode {
		return this.getToken(PlSqlParser.LINK, 0);
	}
	public LISTAGG(): TerminalNode {
		return this.getToken(PlSqlParser.LISTAGG, 0);
	}
	public LIST(): TerminalNode {
		return this.getToken(PlSqlParser.LIST, 0);
	}
	public LN(): TerminalNode {
		return this.getToken(PlSqlParser.LN, 0);
	}
	public LNNVL(): TerminalNode {
		return this.getToken(PlSqlParser.LNNVL, 0);
	}
	public LOAD(): TerminalNode {
		return this.getToken(PlSqlParser.LOAD, 0);
	}
	public LOB(): TerminalNode {
		return this.getToken(PlSqlParser.LOB, 0);
	}
	public LOBNVL(): TerminalNode {
		return this.getToken(PlSqlParser.LOBNVL, 0);
	}
	public LOBS(): TerminalNode {
		return this.getToken(PlSqlParser.LOBS, 0);
	}
	public LOCAL_INDEXES(): TerminalNode {
		return this.getToken(PlSqlParser.LOCAL_INDEXES, 0);
	}
	public LOCAL(): TerminalNode {
		return this.getToken(PlSqlParser.LOCAL, 0);
	}
	public LOCALTIME(): TerminalNode {
		return this.getToken(PlSqlParser.LOCALTIME, 0);
	}
	public LOCALTIMESTAMP(): TerminalNode {
		return this.getToken(PlSqlParser.LOCALTIMESTAMP, 0);
	}
	public LOCATION(): TerminalNode {
		return this.getToken(PlSqlParser.LOCATION, 0);
	}
	public LOCATOR(): TerminalNode {
		return this.getToken(PlSqlParser.LOCATOR, 0);
	}
	public LOCKED(): TerminalNode {
		return this.getToken(PlSqlParser.LOCKED, 0);
	}
	public LOGFILE(): TerminalNode {
		return this.getToken(PlSqlParser.LOGFILE, 0);
	}
	public LOGFILES(): TerminalNode {
		return this.getToken(PlSqlParser.LOGFILES, 0);
	}
	public LOGGING(): TerminalNode {
		return this.getToken(PlSqlParser.LOGGING, 0);
	}
	public LOGICAL(): TerminalNode {
		return this.getToken(PlSqlParser.LOGICAL, 0);
	}
	public LOGICAL_READS_PER_CALL(): TerminalNode {
		return this.getToken(PlSqlParser.LOGICAL_READS_PER_CALL, 0);
	}
	public LOGICAL_READS_PER_SESSION(): TerminalNode {
		return this.getToken(PlSqlParser.LOGICAL_READS_PER_SESSION, 0);
	}
	public LOG(): TerminalNode {
		return this.getToken(PlSqlParser.LOG, 0);
	}
	public LOGOFF(): TerminalNode {
		return this.getToken(PlSqlParser.LOGOFF, 0);
	}
	public LOGON(): TerminalNode {
		return this.getToken(PlSqlParser.LOGON, 0);
	}
	public LOG_READ_ONLY_VIOLATIONS(): TerminalNode {
		return this.getToken(PlSqlParser.LOG_READ_ONLY_VIOLATIONS, 0);
	}
	public LOWER(): TerminalNode {
		return this.getToken(PlSqlParser.LOWER, 0);
	}
	public LOW(): TerminalNode {
		return this.getToken(PlSqlParser.LOW, 0);
	}
	public LPAD(): TerminalNode {
		return this.getToken(PlSqlParser.LPAD, 0);
	}
	public LTRIM(): TerminalNode {
		return this.getToken(PlSqlParser.LTRIM, 0);
	}
	public MAIN(): TerminalNode {
		return this.getToken(PlSqlParser.MAIN, 0);
	}
	public MAKE_REF(): TerminalNode {
		return this.getToken(PlSqlParser.MAKE_REF, 0);
	}
	public MANAGED(): TerminalNode {
		return this.getToken(PlSqlParser.MANAGED, 0);
	}
	public MANAGEMENT(): TerminalNode {
		return this.getToken(PlSqlParser.MANAGEMENT, 0);
	}
	public MANAGE(): TerminalNode {
		return this.getToken(PlSqlParser.MANAGE, 0);
	}
	public MANAGER(): TerminalNode {
		return this.getToken(PlSqlParser.MANAGER, 0);
	}
	public MANUAL(): TerminalNode {
		return this.getToken(PlSqlParser.MANUAL, 0);
	}
	public MAPPING(): TerminalNode {
		return this.getToken(PlSqlParser.MAPPING, 0);
	}
	public MASTER(): TerminalNode {
		return this.getToken(PlSqlParser.MASTER, 0);
	}
	public MATCHED(): TerminalNode {
		return this.getToken(PlSqlParser.MATCHED, 0);
	}
	public MATERIALIZED(): TerminalNode {
		return this.getToken(PlSqlParser.MATERIALIZED, 0);
	}
	public MATERIALIZE(): TerminalNode {
		return this.getToken(PlSqlParser.MATERIALIZE, 0);
	}
	public MAXARCHLOGS(): TerminalNode {
		return this.getToken(PlSqlParser.MAXARCHLOGS, 0);
	}
	public MAXDATAFILES(): TerminalNode {
		return this.getToken(PlSqlParser.MAXDATAFILES, 0);
	}
	public MAXEXTENTS(): TerminalNode {
		return this.getToken(PlSqlParser.MAXEXTENTS, 0);
	}
	public MAXIMIZE(): TerminalNode {
		return this.getToken(PlSqlParser.MAXIMIZE, 0);
	}
	public MAXINSTANCES(): TerminalNode {
		return this.getToken(PlSqlParser.MAXINSTANCES, 0);
	}
	public MAXLOGFILES(): TerminalNode {
		return this.getToken(PlSqlParser.MAXLOGFILES, 0);
	}
	public MAXLOGHISTORY(): TerminalNode {
		return this.getToken(PlSqlParser.MAXLOGHISTORY, 0);
	}
	public MAXLOGMEMBERS(): TerminalNode {
		return this.getToken(PlSqlParser.MAXLOGMEMBERS, 0);
	}
	public MAX(): TerminalNode {
		return this.getToken(PlSqlParser.MAX, 0);
	}
	public MAXSIZE(): TerminalNode {
		return this.getToken(PlSqlParser.MAXSIZE, 0);
	}
	public MAXTRANS(): TerminalNode {
		return this.getToken(PlSqlParser.MAXTRANS, 0);
	}
	public MAXVALUE(): TerminalNode {
		return this.getToken(PlSqlParser.MAXVALUE, 0);
	}
	public MEASURE(): TerminalNode {
		return this.getToken(PlSqlParser.MEASURE, 0);
	}
	public MEASURES(): TerminalNode {
		return this.getToken(PlSqlParser.MEASURES, 0);
	}
	public MEDIAN(): TerminalNode {
		return this.getToken(PlSqlParser.MEDIAN, 0);
	}
	public MEDIUM(): TerminalNode {
		return this.getToken(PlSqlParser.MEDIUM, 0);
	}
	public MEMBER(): TerminalNode {
		return this.getToken(PlSqlParser.MEMBER, 0);
	}
	public MEMORY(): TerminalNode {
		return this.getToken(PlSqlParser.MEMORY, 0);
	}
	public MERGEACTIONS(): TerminalNode {
		return this.getToken(PlSqlParser.MERGEACTIONS, 0);
	}
	public MERGE_AJ(): TerminalNode {
		return this.getToken(PlSqlParser.MERGE_AJ, 0);
	}
	public MERGE_CONST_ON(): TerminalNode {
		return this.getToken(PlSqlParser.MERGE_CONST_ON, 0);
	}
	public MERGE(): TerminalNode {
		return this.getToken(PlSqlParser.MERGE, 0);
	}
	public MERGE_SJ(): TerminalNode {
		return this.getToken(PlSqlParser.MERGE_SJ, 0);
	}
	public METHOD(): TerminalNode {
		return this.getToken(PlSqlParser.METHOD, 0);
	}
	public MIGRATE(): TerminalNode {
		return this.getToken(PlSqlParser.MIGRATE, 0);
	}
	public MIGRATION(): TerminalNode {
		return this.getToken(PlSqlParser.MIGRATION, 0);
	}
	public MINEXTENTS(): TerminalNode {
		return this.getToken(PlSqlParser.MINEXTENTS, 0);
	}
	public MINIMIZE(): TerminalNode {
		return this.getToken(PlSqlParser.MINIMIZE, 0);
	}
	public MINIMUM(): TerminalNode {
		return this.getToken(PlSqlParser.MINIMUM, 0);
	}
	public MINING(): TerminalNode {
		return this.getToken(PlSqlParser.MINING, 0);
	}
	public MIN(): TerminalNode {
		return this.getToken(PlSqlParser.MIN, 0);
	}
	public MINUS_NULL(): TerminalNode {
		return this.getToken(PlSqlParser.MINUS_NULL, 0);
	}
	public MINUTE(): TerminalNode {
		return this.getToken(PlSqlParser.MINUTE, 0);
	}
	public MINVALUE(): TerminalNode {
		return this.getToken(PlSqlParser.MINVALUE, 0);
	}
	public MIRRORCOLD(): TerminalNode {
		return this.getToken(PlSqlParser.MIRRORCOLD, 0);
	}
	public MIRRORHOT(): TerminalNode {
		return this.getToken(PlSqlParser.MIRRORHOT, 0);
	}
	public MIRROR(): TerminalNode {
		return this.getToken(PlSqlParser.MIRROR, 0);
	}
	public MLSLABEL(): TerminalNode {
		return this.getToken(PlSqlParser.MLSLABEL, 0);
	}
	public MODEL_COMPILE_SUBQUERY(): TerminalNode {
		return this.getToken(PlSqlParser.MODEL_COMPILE_SUBQUERY, 0);
	}
	public MODEL_DONTVERIFY_UNIQUENESS(): TerminalNode {
		return this.getToken(PlSqlParser.MODEL_DONTVERIFY_UNIQUENESS, 0);
	}
	public MODEL_DYNAMIC_SUBQUERY(): TerminalNode {
		return this.getToken(PlSqlParser.MODEL_DYNAMIC_SUBQUERY, 0);
	}
	public MODEL_MIN_ANALYSIS(): TerminalNode {
		return this.getToken(PlSqlParser.MODEL_MIN_ANALYSIS, 0);
	}
	public MODEL(): TerminalNode {
		return this.getToken(PlSqlParser.MODEL, 0);
	}
	public MODEL_NO_ANALYSIS(): TerminalNode {
		return this.getToken(PlSqlParser.MODEL_NO_ANALYSIS, 0);
	}
	public MODEL_PBY(): TerminalNode {
		return this.getToken(PlSqlParser.MODEL_PBY, 0);
	}
	public MODEL_PUSH_REF(): TerminalNode {
		return this.getToken(PlSqlParser.MODEL_PUSH_REF, 0);
	}
	public MODIFY_COLUMN_TYPE(): TerminalNode {
		return this.getToken(PlSqlParser.MODIFY_COLUMN_TYPE, 0);
	}
	public MODIFY(): TerminalNode {
		return this.getToken(PlSqlParser.MODIFY, 0);
	}
	public MOD(): TerminalNode {
		return this.getToken(PlSqlParser.MOD, 0);
	}
	public MONITORING(): TerminalNode {
		return this.getToken(PlSqlParser.MONITORING, 0);
	}
	public MONITOR(): TerminalNode {
		return this.getToken(PlSqlParser.MONITOR, 0);
	}
	public MONTH(): TerminalNode {
		return this.getToken(PlSqlParser.MONTH, 0);
	}
	public MONTHS_BETWEEN(): TerminalNode {
		return this.getToken(PlSqlParser.MONTHS_BETWEEN, 0);
	}
	public MOUNT(): TerminalNode {
		return this.getToken(PlSqlParser.MOUNT, 0);
	}
	public MOUNTPATH(): TerminalNode {
		return this.getToken(PlSqlParser.MOUNTPATH, 0);
	}
	public MOVEMENT(): TerminalNode {
		return this.getToken(PlSqlParser.MOVEMENT, 0);
	}
	public MOVE(): TerminalNode {
		return this.getToken(PlSqlParser.MOVE, 0);
	}
	public MULTISET(): TerminalNode {
		return this.getToken(PlSqlParser.MULTISET, 0);
	}
	public MV_MERGE(): TerminalNode {
		return this.getToken(PlSqlParser.MV_MERGE, 0);
	}
	public NAMED(): TerminalNode {
		return this.getToken(PlSqlParser.NAMED, 0);
	}
	public NAME(): TerminalNode {
		return this.getToken(PlSqlParser.NAME, 0);
	}
	public NAMESPACE(): TerminalNode {
		return this.getToken(PlSqlParser.NAMESPACE, 0);
	}
	public NAN(): TerminalNode {
		return this.getToken(PlSqlParser.NAN, 0);
	}
	public NANVL(): TerminalNode {
		return this.getToken(PlSqlParser.NANVL, 0);
	}
	public NATIONAL(): TerminalNode {
		return this.getToken(PlSqlParser.NATIONAL, 0);
	}
	public NATIVE_FULL_OUTER_JOIN(): TerminalNode {
		return this.getToken(PlSqlParser.NATIVE_FULL_OUTER_JOIN, 0);
	}
	public NATIVE(): TerminalNode {
		return this.getToken(PlSqlParser.NATIVE, 0);
	}
	public NATURAL(): TerminalNode {
		return this.getToken(PlSqlParser.NATURAL, 0);
	}
	public NAV(): TerminalNode {
		return this.getToken(PlSqlParser.NAV, 0);
	}
	public NCHAR_CS(): TerminalNode {
		return this.getToken(PlSqlParser.NCHAR_CS, 0);
	}
	public NCHAR(): TerminalNode {
		return this.getToken(PlSqlParser.NCHAR, 0);
	}
	public NCHR(): TerminalNode {
		return this.getToken(PlSqlParser.NCHR, 0);
	}
	public NCLOB(): TerminalNode {
		return this.getToken(PlSqlParser.NCLOB, 0);
	}
	public NEEDED(): TerminalNode {
		return this.getToken(PlSqlParser.NEEDED, 0);
	}
	public NESTED(): TerminalNode {
		return this.getToken(PlSqlParser.NESTED, 0);
	}
	public NESTED_TABLE_FAST_INSERT(): TerminalNode {
		return this.getToken(PlSqlParser.NESTED_TABLE_FAST_INSERT, 0);
	}
	public NESTED_TABLE_GET_REFS(): TerminalNode {
		return this.getToken(PlSqlParser.NESTED_TABLE_GET_REFS, 0);
	}
	public NESTED_TABLE_ID(): TerminalNode {
		return this.getToken(PlSqlParser.NESTED_TABLE_ID, 0);
	}
	public NESTED_TABLE_SET_REFS(): TerminalNode {
		return this.getToken(PlSqlParser.NESTED_TABLE_SET_REFS, 0);
	}
	public NESTED_TABLE_SET_SETID(): TerminalNode {
		return this.getToken(PlSqlParser.NESTED_TABLE_SET_SETID, 0);
	}
	public NETWORK(): TerminalNode {
		return this.getToken(PlSqlParser.NETWORK, 0);
	}
	public NEVER(): TerminalNode {
		return this.getToken(PlSqlParser.NEVER, 0);
	}
	public NEW(): TerminalNode {
		return this.getToken(PlSqlParser.NEW, 0);
	}
	public NEW_TIME(): TerminalNode {
		return this.getToken(PlSqlParser.NEW_TIME, 0);
	}
	public NEXT_DAY(): TerminalNode {
		return this.getToken(PlSqlParser.NEXT_DAY, 0);
	}
	public NEXT(): TerminalNode {
		return this.getToken(PlSqlParser.NEXT, 0);
	}
	public NL_AJ(): TerminalNode {
		return this.getToken(PlSqlParser.NL_AJ, 0);
	}
	public NLJ_BATCHING(): TerminalNode {
		return this.getToken(PlSqlParser.NLJ_BATCHING, 0);
	}
	public NLJ_INDEX_FILTER(): TerminalNode {
		return this.getToken(PlSqlParser.NLJ_INDEX_FILTER, 0);
	}
	public NLJ_INDEX_SCAN(): TerminalNode {
		return this.getToken(PlSqlParser.NLJ_INDEX_SCAN, 0);
	}
	public NLJ_PREFETCH(): TerminalNode {
		return this.getToken(PlSqlParser.NLJ_PREFETCH, 0);
	}
	public NLS_CALENDAR(): TerminalNode {
		return this.getToken(PlSqlParser.NLS_CALENDAR, 0);
	}
	public NLS_CHARACTERSET(): TerminalNode {
		return this.getToken(PlSqlParser.NLS_CHARACTERSET, 0);
	}
	public NLS_CHARSET_DECL_LEN(): TerminalNode {
		return this.getToken(PlSqlParser.NLS_CHARSET_DECL_LEN, 0);
	}
	public NLS_CHARSET_ID(): TerminalNode {
		return this.getToken(PlSqlParser.NLS_CHARSET_ID, 0);
	}
	public NLS_CHARSET_NAME(): TerminalNode {
		return this.getToken(PlSqlParser.NLS_CHARSET_NAME, 0);
	}
	public NLS_COMP(): TerminalNode {
		return this.getToken(PlSqlParser.NLS_COMP, 0);
	}
	public NLS_CURRENCY(): TerminalNode {
		return this.getToken(PlSqlParser.NLS_CURRENCY, 0);
	}
	public NLS_DATE_FORMAT(): TerminalNode {
		return this.getToken(PlSqlParser.NLS_DATE_FORMAT, 0);
	}
	public NLS_DATE_LANGUAGE(): TerminalNode {
		return this.getToken(PlSqlParser.NLS_DATE_LANGUAGE, 0);
	}
	public NLS_INITCAP(): TerminalNode {
		return this.getToken(PlSqlParser.NLS_INITCAP, 0);
	}
	public NLS_ISO_CURRENCY(): TerminalNode {
		return this.getToken(PlSqlParser.NLS_ISO_CURRENCY, 0);
	}
	public NL_SJ(): TerminalNode {
		return this.getToken(PlSqlParser.NL_SJ, 0);
	}
	public NLS_LANG(): TerminalNode {
		return this.getToken(PlSqlParser.NLS_LANG, 0);
	}
	public NLS_LANGUAGE(): TerminalNode {
		return this.getToken(PlSqlParser.NLS_LANGUAGE, 0);
	}
	public NLS_LENGTH_SEMANTICS(): TerminalNode {
		return this.getToken(PlSqlParser.NLS_LENGTH_SEMANTICS, 0);
	}
	public NLS_LOWER(): TerminalNode {
		return this.getToken(PlSqlParser.NLS_LOWER, 0);
	}
	public NLS_NCHAR_CONV_EXCP(): TerminalNode {
		return this.getToken(PlSqlParser.NLS_NCHAR_CONV_EXCP, 0);
	}
	public NLS_NUMERIC_CHARACTERS(): TerminalNode {
		return this.getToken(PlSqlParser.NLS_NUMERIC_CHARACTERS, 0);
	}
	public NLS_SORT(): TerminalNode {
		return this.getToken(PlSqlParser.NLS_SORT, 0);
	}
	public NLSSORT(): TerminalNode {
		return this.getToken(PlSqlParser.NLSSORT, 0);
	}
	public NLS_SPECIAL_CHARS(): TerminalNode {
		return this.getToken(PlSqlParser.NLS_SPECIAL_CHARS, 0);
	}
	public NLS_TERRITORY(): TerminalNode {
		return this.getToken(PlSqlParser.NLS_TERRITORY, 0);
	}
	public NLS_UPPER(): TerminalNode {
		return this.getToken(PlSqlParser.NLS_UPPER, 0);
	}
	public NO_ACCESS(): TerminalNode {
		return this.getToken(PlSqlParser.NO_ACCESS, 0);
	}
	public NOAPPEND(): TerminalNode {
		return this.getToken(PlSqlParser.NOAPPEND, 0);
	}
	public NOARCHIVELOG(): TerminalNode {
		return this.getToken(PlSqlParser.NOARCHIVELOG, 0);
	}
	public NOAUDIT(): TerminalNode {
		return this.getToken(PlSqlParser.NOAUDIT, 0);
	}
	public NO_BASETABLE_MULTIMV_REWRITE(): TerminalNode {
		return this.getToken(PlSqlParser.NO_BASETABLE_MULTIMV_REWRITE, 0);
	}
	public NO_BIND_AWARE(): TerminalNode {
		return this.getToken(PlSqlParser.NO_BIND_AWARE, 0);
	}
	public NO_BUFFER(): TerminalNode {
		return this.getToken(PlSqlParser.NO_BUFFER, 0);
	}
	public NOCACHE(): TerminalNode {
		return this.getToken(PlSqlParser.NOCACHE, 0);
	}
	public NO_CARTESIAN(): TerminalNode {
		return this.getToken(PlSqlParser.NO_CARTESIAN, 0);
	}
	public NO_CHECK_ACL_REWRITE(): TerminalNode {
		return this.getToken(PlSqlParser.NO_CHECK_ACL_REWRITE, 0);
	}
	public NO_CLUSTER_BY_ROWID(): TerminalNode {
		return this.getToken(PlSqlParser.NO_CLUSTER_BY_ROWID, 0);
	}
	public NO_COALESCE_SQ(): TerminalNode {
		return this.getToken(PlSqlParser.NO_COALESCE_SQ, 0);
	}
	public NO_CONNECT_BY_CB_WHR_ONLY(): TerminalNode {
		return this.getToken(PlSqlParser.NO_CONNECT_BY_CB_WHR_ONLY, 0);
	}
	public NO_CONNECT_BY_COMBINE_SW(): TerminalNode {
		return this.getToken(PlSqlParser.NO_CONNECT_BY_COMBINE_SW, 0);
	}
	public NO_CONNECT_BY_COST_BASED(): TerminalNode {
		return this.getToken(PlSqlParser.NO_CONNECT_BY_COST_BASED, 0);
	}
	public NO_CONNECT_BY_ELIM_DUPS(): TerminalNode {
		return this.getToken(PlSqlParser.NO_CONNECT_BY_ELIM_DUPS, 0);
	}
	public NO_CONNECT_BY_FILTERING(): TerminalNode {
		return this.getToken(PlSqlParser.NO_CONNECT_BY_FILTERING, 0);
	}
	public NO_COST_XML_QUERY_REWRITE(): TerminalNode {
		return this.getToken(PlSqlParser.NO_COST_XML_QUERY_REWRITE, 0);
	}
	public NO_CPU_COSTING(): TerminalNode {
		return this.getToken(PlSqlParser.NO_CPU_COSTING, 0);
	}
	public NOCPU_COSTING(): TerminalNode {
		return this.getToken(PlSqlParser.NOCPU_COSTING, 0);
	}
	public NOCYCLE(): TerminalNode {
		return this.getToken(PlSqlParser.NOCYCLE, 0);
	}
	public NODELAY(): TerminalNode {
		return this.getToken(PlSqlParser.NODELAY, 0);
	}
	public NO_DOMAIN_INDEX_FILTER(): TerminalNode {
		return this.getToken(PlSqlParser.NO_DOMAIN_INDEX_FILTER, 0);
	}
	public NO_DST_UPGRADE_INSERT_CONV(): TerminalNode {
		return this.getToken(PlSqlParser.NO_DST_UPGRADE_INSERT_CONV, 0);
	}
	public NO_ELIMINATE_JOIN(): TerminalNode {
		return this.getToken(PlSqlParser.NO_ELIMINATE_JOIN, 0);
	}
	public NO_ELIMINATE_OBY(): TerminalNode {
		return this.getToken(PlSqlParser.NO_ELIMINATE_OBY, 0);
	}
	public NO_ELIMINATE_OUTER_JOIN(): TerminalNode {
		return this.getToken(PlSqlParser.NO_ELIMINATE_OUTER_JOIN, 0);
	}
	public NOENTITYESCAPING(): TerminalNode {
		return this.getToken(PlSqlParser.NOENTITYESCAPING, 0);
	}
	public NO_EXPAND_GSET_TO_UNION(): TerminalNode {
		return this.getToken(PlSqlParser.NO_EXPAND_GSET_TO_UNION, 0);
	}
	public NO_EXPAND(): TerminalNode {
		return this.getToken(PlSqlParser.NO_EXPAND, 0);
	}
	public NO_EXPAND_TABLE(): TerminalNode {
		return this.getToken(PlSqlParser.NO_EXPAND_TABLE, 0);
	}
	public NO_FACT(): TerminalNode {
		return this.getToken(PlSqlParser.NO_FACT, 0);
	}
	public NO_FACTORIZE_JOIN(): TerminalNode {
		return this.getToken(PlSqlParser.NO_FACTORIZE_JOIN, 0);
	}
	public NO_FILTERING(): TerminalNode {
		return this.getToken(PlSqlParser.NO_FILTERING, 0);
	}
	public NOFORCE(): TerminalNode {
		return this.getToken(PlSqlParser.NOFORCE, 0);
	}
	public NO_FULL_OUTER_JOIN_TO_OUTER(): TerminalNode {
		return this.getToken(PlSqlParser.NO_FULL_OUTER_JOIN_TO_OUTER, 0);
	}
	public NO_GBY_PUSHDOWN(): TerminalNode {
		return this.getToken(PlSqlParser.NO_GBY_PUSHDOWN, 0);
	}
	public NOGUARANTEE(): TerminalNode {
		return this.getToken(PlSqlParser.NOGUARANTEE, 0);
	}
	public NO_INDEX_FFS(): TerminalNode {
		return this.getToken(PlSqlParser.NO_INDEX_FFS, 0);
	}
	public NO_INDEX(): TerminalNode {
		return this.getToken(PlSqlParser.NO_INDEX, 0);
	}
	public NO_INDEX_SS(): TerminalNode {
		return this.getToken(PlSqlParser.NO_INDEX_SS, 0);
	}
	public NO_LOAD(): TerminalNode {
		return this.getToken(PlSqlParser.NO_LOAD, 0);
	}
	public NOLOCAL(): TerminalNode {
		return this.getToken(PlSqlParser.NOLOCAL, 0);
	}
	public NOLOGGING(): TerminalNode {
		return this.getToken(PlSqlParser.NOLOGGING, 0);
	}
	public NOMAPPING(): TerminalNode {
		return this.getToken(PlSqlParser.NOMAPPING, 0);
	}
	public NOMAXVALUE(): TerminalNode {
		return this.getToken(PlSqlParser.NOMAXVALUE, 0);
	}
	public NO_MERGE(): TerminalNode {
		return this.getToken(PlSqlParser.NO_MERGE, 0);
	}
	public NOMINIMIZE(): TerminalNode {
		return this.getToken(PlSqlParser.NOMINIMIZE, 0);
	}
	public NOMINVALUE(): TerminalNode {
		return this.getToken(PlSqlParser.NOMINVALUE, 0);
	}
	public NO_MODEL_PUSH_REF(): TerminalNode {
		return this.getToken(PlSqlParser.NO_MODEL_PUSH_REF, 0);
	}
	public NO_MONITORING(): TerminalNode {
		return this.getToken(PlSqlParser.NO_MONITORING, 0);
	}
	public NOMONITORING(): TerminalNode {
		return this.getToken(PlSqlParser.NOMONITORING, 0);
	}
	public NO_MONITOR(): TerminalNode {
		return this.getToken(PlSqlParser.NO_MONITOR, 0);
	}
	public NO_MULTIMV_REWRITE(): TerminalNode {
		return this.getToken(PlSqlParser.NO_MULTIMV_REWRITE, 0);
	}
	public NO(): TerminalNode {
		return this.getToken(PlSqlParser.NO, 0);
	}
	public NO_NATIVE_FULL_OUTER_JOIN(): TerminalNode {
		return this.getToken(PlSqlParser.NO_NATIVE_FULL_OUTER_JOIN, 0);
	}
	public NONBLOCKING(): TerminalNode {
		return this.getToken(PlSqlParser.NONBLOCKING, 0);
	}
	public NONE(): TerminalNode {
		return this.getToken(PlSqlParser.NONE, 0);
	}
	public NO_NLJ_BATCHING(): TerminalNode {
		return this.getToken(PlSqlParser.NO_NLJ_BATCHING, 0);
	}
	public NO_NLJ_PREFETCH(): TerminalNode {
		return this.getToken(PlSqlParser.NO_NLJ_PREFETCH, 0);
	}
	public NONSCHEMA(): TerminalNode {
		return this.getToken(PlSqlParser.NONSCHEMA, 0);
	}
	public NOORDER(): TerminalNode {
		return this.getToken(PlSqlParser.NOORDER, 0);
	}
	public NO_ORDER_ROLLUPS(): TerminalNode {
		return this.getToken(PlSqlParser.NO_ORDER_ROLLUPS, 0);
	}
	public NO_OUTER_JOIN_TO_ANTI(): TerminalNode {
		return this.getToken(PlSqlParser.NO_OUTER_JOIN_TO_ANTI, 0);
	}
	public NO_OUTER_JOIN_TO_INNER(): TerminalNode {
		return this.getToken(PlSqlParser.NO_OUTER_JOIN_TO_INNER, 0);
	}
	public NOOVERRIDE(): TerminalNode {
		return this.getToken(PlSqlParser.NOOVERRIDE, 0);
	}
	public NO_PARALLEL_INDEX(): TerminalNode {
		return this.getToken(PlSqlParser.NO_PARALLEL_INDEX, 0);
	}
	public NOPARALLEL_INDEX(): TerminalNode {
		return this.getToken(PlSqlParser.NOPARALLEL_INDEX, 0);
	}
	public NO_PARALLEL(): TerminalNode {
		return this.getToken(PlSqlParser.NO_PARALLEL, 0);
	}
	public NOPARALLEL(): TerminalNode {
		return this.getToken(PlSqlParser.NOPARALLEL, 0);
	}
	public NO_PARTIAL_COMMIT(): TerminalNode {
		return this.getToken(PlSqlParser.NO_PARTIAL_COMMIT, 0);
	}
	public NO_PLACE_DISTINCT(): TerminalNode {
		return this.getToken(PlSqlParser.NO_PLACE_DISTINCT, 0);
	}
	public NO_PLACE_GROUP_BY(): TerminalNode {
		return this.getToken(PlSqlParser.NO_PLACE_GROUP_BY, 0);
	}
	public NO_PQ_MAP(): TerminalNode {
		return this.getToken(PlSqlParser.NO_PQ_MAP, 0);
	}
	public NO_PRUNE_GSETS(): TerminalNode {
		return this.getToken(PlSqlParser.NO_PRUNE_GSETS, 0);
	}
	public NO_PULL_PRED(): TerminalNode {
		return this.getToken(PlSqlParser.NO_PULL_PRED, 0);
	}
	public NO_PUSH_PRED(): TerminalNode {
		return this.getToken(PlSqlParser.NO_PUSH_PRED, 0);
	}
	public NO_PUSH_SUBQ(): TerminalNode {
		return this.getToken(PlSqlParser.NO_PUSH_SUBQ, 0);
	}
	public NO_PX_JOIN_FILTER(): TerminalNode {
		return this.getToken(PlSqlParser.NO_PX_JOIN_FILTER, 0);
	}
	public NO_QKN_BUFF(): TerminalNode {
		return this.getToken(PlSqlParser.NO_QKN_BUFF, 0);
	}
	public NO_QUERY_TRANSFORMATION(): TerminalNode {
		return this.getToken(PlSqlParser.NO_QUERY_TRANSFORMATION, 0);
	}
	public NO_REF_CASCADE(): TerminalNode {
		return this.getToken(PlSqlParser.NO_REF_CASCADE, 0);
	}
	public NORELY(): TerminalNode {
		return this.getToken(PlSqlParser.NORELY, 0);
	}
	public NOREPAIR(): TerminalNode {
		return this.getToken(PlSqlParser.NOREPAIR, 0);
	}
	public NORESETLOGS(): TerminalNode {
		return this.getToken(PlSqlParser.NORESETLOGS, 0);
	}
	public NO_RESULT_CACHE(): TerminalNode {
		return this.getToken(PlSqlParser.NO_RESULT_CACHE, 0);
	}
	public NOREVERSE(): TerminalNode {
		return this.getToken(PlSqlParser.NOREVERSE, 0);
	}
	public NO_REWRITE(): TerminalNode {
		return this.getToken(PlSqlParser.NO_REWRITE, 0);
	}
	public NOREWRITE(): TerminalNode {
		return this.getToken(PlSqlParser.NOREWRITE, 0);
	}
	public NORMAL(): TerminalNode {
		return this.getToken(PlSqlParser.NORMAL, 0);
	}
	public NOROWDEPENDENCIES(): TerminalNode {
		return this.getToken(PlSqlParser.NOROWDEPENDENCIES, 0);
	}
	public NOSCHEMACHECK(): TerminalNode {
		return this.getToken(PlSqlParser.NOSCHEMACHECK, 0);
	}
	public NOSEGMENT(): TerminalNode {
		return this.getToken(PlSqlParser.NOSEGMENT, 0);
	}
	public NO_SEMIJOIN(): TerminalNode {
		return this.getToken(PlSqlParser.NO_SEMIJOIN, 0);
	}
	public NO_SEMI_TO_INNER(): TerminalNode {
		return this.getToken(PlSqlParser.NO_SEMI_TO_INNER, 0);
	}
	public NO_SET_TO_JOIN(): TerminalNode {
		return this.getToken(PlSqlParser.NO_SET_TO_JOIN, 0);
	}
	public NOSORT(): TerminalNode {
		return this.getToken(PlSqlParser.NOSORT, 0);
	}
	public NO_SQL_TUNE(): TerminalNode {
		return this.getToken(PlSqlParser.NO_SQL_TUNE, 0);
	}
	public NO_STAR_TRANSFORMATION(): TerminalNode {
		return this.getToken(PlSqlParser.NO_STAR_TRANSFORMATION, 0);
	}
	public NO_STATEMENT_QUEUING(): TerminalNode {
		return this.getToken(PlSqlParser.NO_STATEMENT_QUEUING, 0);
	}
	public NO_STATS_GSETS(): TerminalNode {
		return this.getToken(PlSqlParser.NO_STATS_GSETS, 0);
	}
	public NOSTRICT(): TerminalNode {
		return this.getToken(PlSqlParser.NOSTRICT, 0);
	}
	public NO_SUBQUERY_PRUNING(): TerminalNode {
		return this.getToken(PlSqlParser.NO_SUBQUERY_PRUNING, 0);
	}
	public NO_SUBSTRB_PAD(): TerminalNode {
		return this.getToken(PlSqlParser.NO_SUBSTRB_PAD, 0);
	}
	public NO_SWAP_JOIN_INPUTS(): TerminalNode {
		return this.getToken(PlSqlParser.NO_SWAP_JOIN_INPUTS, 0);
	}
	public NOSWITCH(): TerminalNode {
		return this.getToken(PlSqlParser.NOSWITCH, 0);
	}
	public NO_TABLE_LOOKUP_BY_NL(): TerminalNode {
		return this.getToken(PlSqlParser.NO_TABLE_LOOKUP_BY_NL, 0);
	}
	public NO_TEMP_TABLE(): TerminalNode {
		return this.getToken(PlSqlParser.NO_TEMP_TABLE, 0);
	}
	public NOTHING(): TerminalNode {
		return this.getToken(PlSqlParser.NOTHING, 0);
	}
	public NOTIFICATION(): TerminalNode {
		return this.getToken(PlSqlParser.NOTIFICATION, 0);
	}
	public NO_TRANSFORM_DISTINCT_AGG(): TerminalNode {
		return this.getToken(PlSqlParser.NO_TRANSFORM_DISTINCT_AGG, 0);
	}
	public NO_UNNEST(): TerminalNode {
		return this.getToken(PlSqlParser.NO_UNNEST, 0);
	}
	public NO_USE_HASH_AGGREGATION(): TerminalNode {
		return this.getToken(PlSqlParser.NO_USE_HASH_AGGREGATION, 0);
	}
	public NO_USE_HASH_GBY_FOR_PUSHDOWN(): TerminalNode {
		return this.getToken(PlSqlParser.NO_USE_HASH_GBY_FOR_PUSHDOWN, 0);
	}
	public NO_USE_HASH(): TerminalNode {
		return this.getToken(PlSqlParser.NO_USE_HASH, 0);
	}
	public NO_USE_INVISIBLE_INDEXES(): TerminalNode {
		return this.getToken(PlSqlParser.NO_USE_INVISIBLE_INDEXES, 0);
	}
	public NO_USE_MERGE(): TerminalNode {
		return this.getToken(PlSqlParser.NO_USE_MERGE, 0);
	}
	public NO_USE_NL(): TerminalNode {
		return this.getToken(PlSqlParser.NO_USE_NL, 0);
	}
	public NOVALIDATE(): TerminalNode {
		return this.getToken(PlSqlParser.NOVALIDATE, 0);
	}
	public NO_XDB_FASTPATH_INSERT(): TerminalNode {
		return this.getToken(PlSqlParser.NO_XDB_FASTPATH_INSERT, 0);
	}
	public NO_XML_DML_REWRITE(): TerminalNode {
		return this.getToken(PlSqlParser.NO_XML_DML_REWRITE, 0);
	}
	public NO_XMLINDEX_REWRITE_IN_SELECT(): TerminalNode {
		return this.getToken(PlSqlParser.NO_XMLINDEX_REWRITE_IN_SELECT, 0);
	}
	public NO_XMLINDEX_REWRITE(): TerminalNode {
		return this.getToken(PlSqlParser.NO_XMLINDEX_REWRITE, 0);
	}
	public NO_XML_QUERY_REWRITE(): TerminalNode {
		return this.getToken(PlSqlParser.NO_XML_QUERY_REWRITE, 0);
	}
	public NTH_VALUE(): TerminalNode {
		return this.getToken(PlSqlParser.NTH_VALUE, 0);
	}
	public NTILE(): TerminalNode {
		return this.getToken(PlSqlParser.NTILE, 0);
	}
	public NULLIF(): TerminalNode {
		return this.getToken(PlSqlParser.NULLIF, 0);
	}
	public NULLS(): TerminalNode {
		return this.getToken(PlSqlParser.NULLS, 0);
	}
	public NUMERIC(): TerminalNode {
		return this.getToken(PlSqlParser.NUMERIC, 0);
	}
	public NUM_INDEX_KEYS(): TerminalNode {
		return this.getToken(PlSqlParser.NUM_INDEX_KEYS, 0);
	}
	public NUMTODSINTERVAL(): TerminalNode {
		return this.getToken(PlSqlParser.NUMTODSINTERVAL, 0);
	}
	public NUMTOYMINTERVAL(): TerminalNode {
		return this.getToken(PlSqlParser.NUMTOYMINTERVAL, 0);
	}
	public NVARCHAR2(): TerminalNode {
		return this.getToken(PlSqlParser.NVARCHAR2, 0);
	}
	public NVL2(): TerminalNode {
		return this.getToken(PlSqlParser.NVL2, 0);
	}
	public NVL(): TerminalNode {
		return this.getToken(PlSqlParser.NVL, 0);
	}
	public OBJECT2XML(): TerminalNode {
		return this.getToken(PlSqlParser.OBJECT2XML, 0);
	}
	public OBJECT(): TerminalNode {
		return this.getToken(PlSqlParser.OBJECT, 0);
	}
	public OBJNO(): TerminalNode {
		return this.getToken(PlSqlParser.OBJNO, 0);
	}
	public OBJNO_REUSE(): TerminalNode {
		return this.getToken(PlSqlParser.OBJNO_REUSE, 0);
	}
	public OCCURENCES(): TerminalNode {
		return this.getToken(PlSqlParser.OCCURENCES, 0);
	}
	public OFFLINE(): TerminalNode {
		return this.getToken(PlSqlParser.OFFLINE, 0);
	}
	public OFF(): TerminalNode {
		return this.getToken(PlSqlParser.OFF, 0);
	}
	public OIDINDEX(): TerminalNode {
		return this.getToken(PlSqlParser.OIDINDEX, 0);
	}
	public OID(): TerminalNode {
		return this.getToken(PlSqlParser.OID, 0);
	}
	public OLAP(): TerminalNode {
		return this.getToken(PlSqlParser.OLAP, 0);
	}
	public OLD(): TerminalNode {
		return this.getToken(PlSqlParser.OLD, 0);
	}
	public OLD_PUSH_PRED(): TerminalNode {
		return this.getToken(PlSqlParser.OLD_PUSH_PRED, 0);
	}
	public OLTP(): TerminalNode {
		return this.getToken(PlSqlParser.OLTP, 0);
	}
	public ONLINE(): TerminalNode {
		return this.getToken(PlSqlParser.ONLINE, 0);
	}
	public ONLY(): TerminalNode {
		return this.getToken(PlSqlParser.ONLY, 0);
	}
	public OPAQUE(): TerminalNode {
		return this.getToken(PlSqlParser.OPAQUE, 0);
	}
	public OPAQUE_TRANSFORM(): TerminalNode {
		return this.getToken(PlSqlParser.OPAQUE_TRANSFORM, 0);
	}
	public OPAQUE_XCANONICAL(): TerminalNode {
		return this.getToken(PlSqlParser.OPAQUE_XCANONICAL, 0);
	}
	public OPCODE(): TerminalNode {
		return this.getToken(PlSqlParser.OPCODE, 0);
	}
	public OPEN(): TerminalNode {
		return this.getToken(PlSqlParser.OPEN, 0);
	}
	public OPERATIONS(): TerminalNode {
		return this.getToken(PlSqlParser.OPERATIONS, 0);
	}
	public OPERATOR(): TerminalNode {
		return this.getToken(PlSqlParser.OPERATOR, 0);
	}
	public OPT_ESTIMATE(): TerminalNode {
		return this.getToken(PlSqlParser.OPT_ESTIMATE, 0);
	}
	public OPTIMAL(): TerminalNode {
		return this.getToken(PlSqlParser.OPTIMAL, 0);
	}
	public OPTIMIZE(): TerminalNode {
		return this.getToken(PlSqlParser.OPTIMIZE, 0);
	}
	public OPTIMIZER_FEATURES_ENABLE(): TerminalNode {
		return this.getToken(PlSqlParser.OPTIMIZER_FEATURES_ENABLE, 0);
	}
	public OPTIMIZER_GOAL(): TerminalNode {
		return this.getToken(PlSqlParser.OPTIMIZER_GOAL, 0);
	}
	public OPT_PARAM(): TerminalNode {
		return this.getToken(PlSqlParser.OPT_PARAM, 0);
	}
	public ORA_BRANCH(): TerminalNode {
		return this.getToken(PlSqlParser.ORA_BRANCH, 0);
	}
	public ORADEBUG(): TerminalNode {
		return this.getToken(PlSqlParser.ORADEBUG, 0);
	}
	public ORA_DST_AFFECTED(): TerminalNode {
		return this.getToken(PlSqlParser.ORA_DST_AFFECTED, 0);
	}
	public ORA_DST_CONVERT(): TerminalNode {
		return this.getToken(PlSqlParser.ORA_DST_CONVERT, 0);
	}
	public ORA_DST_ERROR(): TerminalNode {
		return this.getToken(PlSqlParser.ORA_DST_ERROR, 0);
	}
	public ORA_GET_ACLIDS(): TerminalNode {
		return this.getToken(PlSqlParser.ORA_GET_ACLIDS, 0);
	}
	public ORA_GET_PRIVILEGES(): TerminalNode {
		return this.getToken(PlSqlParser.ORA_GET_PRIVILEGES, 0);
	}
	public ORA_HASH(): TerminalNode {
		return this.getToken(PlSqlParser.ORA_HASH, 0);
	}
	public ORA_ROWSCN(): TerminalNode {
		return this.getToken(PlSqlParser.ORA_ROWSCN, 0);
	}
	public ORA_ROWSCN_RAW(): TerminalNode {
		return this.getToken(PlSqlParser.ORA_ROWSCN_RAW, 0);
	}
	public ORA_ROWVERSION(): TerminalNode {
		return this.getToken(PlSqlParser.ORA_ROWVERSION, 0);
	}
	public ORA_TABVERSION(): TerminalNode {
		return this.getToken(PlSqlParser.ORA_TABVERSION, 0);
	}
	public ORDERED(): TerminalNode {
		return this.getToken(PlSqlParser.ORDERED, 0);
	}
	public ORDERED_PREDICATES(): TerminalNode {
		return this.getToken(PlSqlParser.ORDERED_PREDICATES, 0);
	}
	public ORDINALITY(): TerminalNode {
		return this.getToken(PlSqlParser.ORDINALITY, 0);
	}
	public OR_EXPAND(): TerminalNode {
		return this.getToken(PlSqlParser.OR_EXPAND, 0);
	}
	public ORGANIZATION(): TerminalNode {
		return this.getToken(PlSqlParser.ORGANIZATION, 0);
	}
	public OR_PREDICATES(): TerminalNode {
		return this.getToken(PlSqlParser.OR_PREDICATES, 0);
	}
	public OTHER(): TerminalNode {
		return this.getToken(PlSqlParser.OTHER, 0);
	}
	public OUTER_JOIN_TO_ANTI(): TerminalNode {
		return this.getToken(PlSqlParser.OUTER_JOIN_TO_ANTI, 0);
	}
	public OUTER_JOIN_TO_INNER(): TerminalNode {
		return this.getToken(PlSqlParser.OUTER_JOIN_TO_INNER, 0);
	}
	public OUTER(): TerminalNode {
		return this.getToken(PlSqlParser.OUTER, 0);
	}
	public OUTLINE_LEAF(): TerminalNode {
		return this.getToken(PlSqlParser.OUTLINE_LEAF, 0);
	}
	public OUTLINE(): TerminalNode {
		return this.getToken(PlSqlParser.OUTLINE, 0);
	}
	public OUT_OF_LINE(): TerminalNode {
		return this.getToken(PlSqlParser.OUT_OF_LINE, 0);
	}
	public OVERFLOW(): TerminalNode {
		return this.getToken(PlSqlParser.OVERFLOW, 0);
	}
	public OVERFLOW_NOMOVE(): TerminalNode {
		return this.getToken(PlSqlParser.OVERFLOW_NOMOVE, 0);
	}
	public OVERLAPS(): TerminalNode {
		return this.getToken(PlSqlParser.OVERLAPS, 0);
	}
	public OVER(): TerminalNode {
		return this.getToken(PlSqlParser.OVER, 0);
	}
	public OWNER(): TerminalNode {
		return this.getToken(PlSqlParser.OWNER, 0);
	}
	public OWNERSHIP(): TerminalNode {
		return this.getToken(PlSqlParser.OWNERSHIP, 0);
	}
	public OWN(): TerminalNode {
		return this.getToken(PlSqlParser.OWN, 0);
	}
	public PACKAGE(): TerminalNode {
		return this.getToken(PlSqlParser.PACKAGE, 0);
	}
	public PACKAGES(): TerminalNode {
		return this.getToken(PlSqlParser.PACKAGES, 0);
	}
	public PARALLEL_INDEX(): TerminalNode {
		return this.getToken(PlSqlParser.PARALLEL_INDEX, 0);
	}
	public PARALLEL(): TerminalNode {
		return this.getToken(PlSqlParser.PARALLEL, 0);
	}
	public PARAMETERS(): TerminalNode {
		return this.getToken(PlSqlParser.PARAMETERS, 0);
	}
	public PARAM(): TerminalNode {
		return this.getToken(PlSqlParser.PARAM, 0);
	}
	public PARENT(): TerminalNode {
		return this.getToken(PlSqlParser.PARENT, 0);
	}
	public PARITY(): TerminalNode {
		return this.getToken(PlSqlParser.PARITY, 0);
	}
	public PARTIALLY(): TerminalNode {
		return this.getToken(PlSqlParser.PARTIALLY, 0);
	}
	public PARTITION_HASH(): TerminalNode {
		return this.getToken(PlSqlParser.PARTITION_HASH, 0);
	}
	public PARTITION_LIST(): TerminalNode {
		return this.getToken(PlSqlParser.PARTITION_LIST, 0);
	}
	public PARTITION(): TerminalNode {
		return this.getToken(PlSqlParser.PARTITION, 0);
	}
	public PARTITION_RANGE(): TerminalNode {
		return this.getToken(PlSqlParser.PARTITION_RANGE, 0);
	}
	public PARTITIONS(): TerminalNode {
		return this.getToken(PlSqlParser.PARTITIONS, 0);
	}
	public PARTNUMINST(): TerminalNode {
		return this.getToken(PlSqlParser.PARTNUMINST, 0);
	}
	public PASSING(): TerminalNode {
		return this.getToken(PlSqlParser.PASSING, 0);
	}
	public PASSWORD_GRACE_TIME(): TerminalNode {
		return this.getToken(PlSqlParser.PASSWORD_GRACE_TIME, 0);
	}
	public PASSWORD_LIFE_TIME(): TerminalNode {
		return this.getToken(PlSqlParser.PASSWORD_LIFE_TIME, 0);
	}
	public PASSWORD_LOCK_TIME(): TerminalNode {
		return this.getToken(PlSqlParser.PASSWORD_LOCK_TIME, 0);
	}
	public PASSWORD(): TerminalNode {
		return this.getToken(PlSqlParser.PASSWORD, 0);
	}
	public PASSWORD_REUSE_MAX(): TerminalNode {
		return this.getToken(PlSqlParser.PASSWORD_REUSE_MAX, 0);
	}
	public PASSWORD_REUSE_TIME(): TerminalNode {
		return this.getToken(PlSqlParser.PASSWORD_REUSE_TIME, 0);
	}
	public PASSWORD_VERIFY_FUNCTION(): TerminalNode {
		return this.getToken(PlSqlParser.PASSWORD_VERIFY_FUNCTION, 0);
	}
	public PATH(): TerminalNode {
		return this.getToken(PlSqlParser.PATH, 0);
	}
	public PATHS(): TerminalNode {
		return this.getToken(PlSqlParser.PATHS, 0);
	}
	public PBL_HS_BEGIN(): TerminalNode {
		return this.getToken(PlSqlParser.PBL_HS_BEGIN, 0);
	}
	public PBL_HS_END(): TerminalNode {
		return this.getToken(PlSqlParser.PBL_HS_END, 0);
	}
	public PCTINCREASE(): TerminalNode {
		return this.getToken(PlSqlParser.PCTINCREASE, 0);
	}
	public PCTTHRESHOLD(): TerminalNode {
		return this.getToken(PlSqlParser.PCTTHRESHOLD, 0);
	}
	public PCTUSED(): TerminalNode {
		return this.getToken(PlSqlParser.PCTUSED, 0);
	}
	public PCTVERSION(): TerminalNode {
		return this.getToken(PlSqlParser.PCTVERSION, 0);
	}
	public PENDING(): TerminalNode {
		return this.getToken(PlSqlParser.PENDING, 0);
	}
	public PERCENTILE_CONT(): TerminalNode {
		return this.getToken(PlSqlParser.PERCENTILE_CONT, 0);
	}
	public PERCENTILE_DISC(): TerminalNode {
		return this.getToken(PlSqlParser.PERCENTILE_DISC, 0);
	}
	public PERCENT_KEYWORD(): TerminalNode {
		return this.getToken(PlSqlParser.PERCENT_KEYWORD, 0);
	}
	public PERCENT_RANKM(): TerminalNode {
		return this.getToken(PlSqlParser.PERCENT_RANKM, 0);
	}
	public PERCENT_RANK(): TerminalNode {
		return this.getToken(PlSqlParser.PERCENT_RANK, 0);
	}
	public PERFORMANCE(): TerminalNode {
		return this.getToken(PlSqlParser.PERFORMANCE, 0);
	}
	public PERMANENT(): TerminalNode {
		return this.getToken(PlSqlParser.PERMANENT, 0);
	}
	public PERMISSION(): TerminalNode {
		return this.getToken(PlSqlParser.PERMISSION, 0);
	}
	public PFILE(): TerminalNode {
		return this.getToken(PlSqlParser.PFILE, 0);
	}
	public PHYSICAL(): TerminalNode {
		return this.getToken(PlSqlParser.PHYSICAL, 0);
	}
	public PIKEY(): TerminalNode {
		return this.getToken(PlSqlParser.PIKEY, 0);
	}
	public PIV_GB(): TerminalNode {
		return this.getToken(PlSqlParser.PIV_GB, 0);
	}
	public PIVOT(): TerminalNode {
		return this.getToken(PlSqlParser.PIVOT, 0);
	}
	public PIV_SSF(): TerminalNode {
		return this.getToken(PlSqlParser.PIV_SSF, 0);
	}
	public PLACE_DISTINCT(): TerminalNode {
		return this.getToken(PlSqlParser.PLACE_DISTINCT, 0);
	}
	public PLACE_GROUP_BY(): TerminalNode {
		return this.getToken(PlSqlParser.PLACE_GROUP_BY, 0);
	}
	public PLAN(): TerminalNode {
		return this.getToken(PlSqlParser.PLAN, 0);
	}
	public PLSCOPE_SETTINGS(): TerminalNode {
		return this.getToken(PlSqlParser.PLSCOPE_SETTINGS, 0);
	}
	public PLSQL_CCFLAGS(): TerminalNode {
		return this.getToken(PlSqlParser.PLSQL_CCFLAGS, 0);
	}
	public PLSQL_CODE_TYPE(): TerminalNode {
		return this.getToken(PlSqlParser.PLSQL_CODE_TYPE, 0);
	}
	public PLSQL_DEBUG(): TerminalNode {
		return this.getToken(PlSqlParser.PLSQL_DEBUG, 0);
	}
	public PLSQL_OPTIMIZE_LEVEL(): TerminalNode {
		return this.getToken(PlSqlParser.PLSQL_OPTIMIZE_LEVEL, 0);
	}
	public PLSQL_WARNINGS(): TerminalNode {
		return this.getToken(PlSqlParser.PLSQL_WARNINGS, 0);
	}
	public POINT(): TerminalNode {
		return this.getToken(PlSqlParser.POINT, 0);
	}
	public POLICY(): TerminalNode {
		return this.getToken(PlSqlParser.POLICY, 0);
	}
	public POST_TRANSACTION(): TerminalNode {
		return this.getToken(PlSqlParser.POST_TRANSACTION, 0);
	}
	public POWERMULTISET_BY_CARDINALITY(): TerminalNode {
		return this.getToken(PlSqlParser.POWERMULTISET_BY_CARDINALITY, 0);
	}
	public POWERMULTISET(): TerminalNode {
		return this.getToken(PlSqlParser.POWERMULTISET, 0);
	}
	public POWER(): TerminalNode {
		return this.getToken(PlSqlParser.POWER, 0);
	}
	public PQ_DISTRIBUTE(): TerminalNode {
		return this.getToken(PlSqlParser.PQ_DISTRIBUTE, 0);
	}
	public PQ_MAP(): TerminalNode {
		return this.getToken(PlSqlParser.PQ_MAP, 0);
	}
	public PQ_NOMAP(): TerminalNode {
		return this.getToken(PlSqlParser.PQ_NOMAP, 0);
	}
	public PREBUILT(): TerminalNode {
		return this.getToken(PlSqlParser.PREBUILT, 0);
	}
	public PRECEDES(): TerminalNode {
		return this.getToken(PlSqlParser.PRECEDES, 0);
	}
	public PRECEDING(): TerminalNode {
		return this.getToken(PlSqlParser.PRECEDING, 0);
	}
	public PRECISION(): TerminalNode {
		return this.getToken(PlSqlParser.PRECISION, 0);
	}
	public PRECOMPUTE_SUBQUERY(): TerminalNode {
		return this.getToken(PlSqlParser.PRECOMPUTE_SUBQUERY, 0);
	}
	public PREDICATE_REORDERS(): TerminalNode {
		return this.getToken(PlSqlParser.PREDICATE_REORDERS, 0);
	}
	public PREDICTION_BOUNDS(): TerminalNode {
		return this.getToken(PlSqlParser.PREDICTION_BOUNDS, 0);
	}
	public PREDICTION_COST(): TerminalNode {
		return this.getToken(PlSqlParser.PREDICTION_COST, 0);
	}
	public PREDICTION_DETAILS(): TerminalNode {
		return this.getToken(PlSqlParser.PREDICTION_DETAILS, 0);
	}
	public PREDICTION(): TerminalNode {
		return this.getToken(PlSqlParser.PREDICTION, 0);
	}
	public PREDICTION_PROBABILITY(): TerminalNode {
		return this.getToken(PlSqlParser.PREDICTION_PROBABILITY, 0);
	}
	public PREDICTION_SET(): TerminalNode {
		return this.getToken(PlSqlParser.PREDICTION_SET, 0);
	}
	public PREPARE(): TerminalNode {
		return this.getToken(PlSqlParser.PREPARE, 0);
	}
	public PRESENT(): TerminalNode {
		return this.getToken(PlSqlParser.PRESENT, 0);
	}
	public PRESENTNNV(): TerminalNode {
		return this.getToken(PlSqlParser.PRESENTNNV, 0);
	}
	public PRESENTV(): TerminalNode {
		return this.getToken(PlSqlParser.PRESENTV, 0);
	}
	public PRESERVE(): TerminalNode {
		return this.getToken(PlSqlParser.PRESERVE, 0);
	}
	public PRESERVE_OID(): TerminalNode {
		return this.getToken(PlSqlParser.PRESERVE_OID, 0);
	}
	public PREVIOUS(): TerminalNode {
		return this.getToken(PlSqlParser.PREVIOUS, 0);
	}
	public PRIMARY(): TerminalNode {
		return this.getToken(PlSqlParser.PRIMARY, 0);
	}
	public PRIVATE(): TerminalNode {
		return this.getToken(PlSqlParser.PRIVATE, 0);
	}
	public PRIVATE_SGA(): TerminalNode {
		return this.getToken(PlSqlParser.PRIVATE_SGA, 0);
	}
	public PRIVILEGE(): TerminalNode {
		return this.getToken(PlSqlParser.PRIVILEGE, 0);
	}
	public PRIVILEGES(): TerminalNode {
		return this.getToken(PlSqlParser.PRIVILEGES, 0);
	}
	public PROCEDURAL(): TerminalNode {
		return this.getToken(PlSqlParser.PROCEDURAL, 0);
	}
	public PROCEDURE(): TerminalNode {
		return this.getToken(PlSqlParser.PROCEDURE, 0);
	}
	public PROCESS(): TerminalNode {
		return this.getToken(PlSqlParser.PROCESS, 0);
	}
	public PROFILE(): TerminalNode {
		return this.getToken(PlSqlParser.PROFILE, 0);
	}
	public PROGRAM(): TerminalNode {
		return this.getToken(PlSqlParser.PROGRAM, 0);
	}
	public PROJECT(): TerminalNode {
		return this.getToken(PlSqlParser.PROJECT, 0);
	}
	public PROPAGATE(): TerminalNode {
		return this.getToken(PlSqlParser.PROPAGATE, 0);
	}
	public PROTECTED(): TerminalNode {
		return this.getToken(PlSqlParser.PROTECTED, 0);
	}
	public PROTECTION(): TerminalNode {
		return this.getToken(PlSqlParser.PROTECTION, 0);
	}
	public PULL_PRED(): TerminalNode {
		return this.getToken(PlSqlParser.PULL_PRED, 0);
	}
	public PURGE(): TerminalNode {
		return this.getToken(PlSqlParser.PURGE, 0);
	}
	public PUSH_PRED(): TerminalNode {
		return this.getToken(PlSqlParser.PUSH_PRED, 0);
	}
	public PUSH_SUBQ(): TerminalNode {
		return this.getToken(PlSqlParser.PUSH_SUBQ, 0);
	}
	public PX_GRANULE(): TerminalNode {
		return this.getToken(PlSqlParser.PX_GRANULE, 0);
	}
	public PX_JOIN_FILTER(): TerminalNode {
		return this.getToken(PlSqlParser.PX_JOIN_FILTER, 0);
	}
	public QB_NAME(): TerminalNode {
		return this.getToken(PlSqlParser.QB_NAME, 0);
	}
	public QUERY_BLOCK(): TerminalNode {
		return this.getToken(PlSqlParser.QUERY_BLOCK, 0);
	}
	public QUERY(): TerminalNode {
		return this.getToken(PlSqlParser.QUERY, 0);
	}
	public QUEUE_CURR(): TerminalNode {
		return this.getToken(PlSqlParser.QUEUE_CURR, 0);
	}
	public QUEUE(): TerminalNode {
		return this.getToken(PlSqlParser.QUEUE, 0);
	}
	public QUEUE_ROWP(): TerminalNode {
		return this.getToken(PlSqlParser.QUEUE_ROWP, 0);
	}
	public QUIESCE(): TerminalNode {
		return this.getToken(PlSqlParser.QUIESCE, 0);
	}
	public QUORUM(): TerminalNode {
		return this.getToken(PlSqlParser.QUORUM, 0);
	}
	public QUOTA(): TerminalNode {
		return this.getToken(PlSqlParser.QUOTA, 0);
	}
	public RANDOM_LOCAL(): TerminalNode {
		return this.getToken(PlSqlParser.RANDOM_LOCAL, 0);
	}
	public RANDOM(): TerminalNode {
		return this.getToken(PlSqlParser.RANDOM, 0);
	}
	public RANGE(): TerminalNode {
		return this.getToken(PlSqlParser.RANGE, 0);
	}
	public RANKM(): TerminalNode {
		return this.getToken(PlSqlParser.RANKM, 0);
	}
	public RANK(): TerminalNode {
		return this.getToken(PlSqlParser.RANK, 0);
	}
	public RAPIDLY(): TerminalNode {
		return this.getToken(PlSqlParser.RAPIDLY, 0);
	}
	public RATIO_TO_REPORT(): TerminalNode {
		return this.getToken(PlSqlParser.RATIO_TO_REPORT, 0);
	}
	public RAWTOHEX(): TerminalNode {
		return this.getToken(PlSqlParser.RAWTOHEX, 0);
	}
	public RAWTONHEX(): TerminalNode {
		return this.getToken(PlSqlParser.RAWTONHEX, 0);
	}
	public RBA(): TerminalNode {
		return this.getToken(PlSqlParser.RBA, 0);
	}
	public RBO_OUTLINE(): TerminalNode {
		return this.getToken(PlSqlParser.RBO_OUTLINE, 0);
	}
	public RDBA(): TerminalNode {
		return this.getToken(PlSqlParser.RDBA, 0);
	}
	public READ(): TerminalNode {
		return this.getToken(PlSqlParser.READ, 0);
	}
	public READS(): TerminalNode {
		return this.getToken(PlSqlParser.READS, 0);
	}
	public REAL(): TerminalNode {
		return this.getToken(PlSqlParser.REAL, 0);
	}
	public REBALANCE(): TerminalNode {
		return this.getToken(PlSqlParser.REBALANCE, 0);
	}
	public REBUILD(): TerminalNode {
		return this.getToken(PlSqlParser.REBUILD, 0);
	}
	public RECORDS_PER_BLOCK(): TerminalNode {
		return this.getToken(PlSqlParser.RECORDS_PER_BLOCK, 0);
	}
	public RECOVERABLE(): TerminalNode {
		return this.getToken(PlSqlParser.RECOVERABLE, 0);
	}
	public RECOVER(): TerminalNode {
		return this.getToken(PlSqlParser.RECOVER, 0);
	}
	public RECOVERY(): TerminalNode {
		return this.getToken(PlSqlParser.RECOVERY, 0);
	}
	public RECYCLEBIN(): TerminalNode {
		return this.getToken(PlSqlParser.RECYCLEBIN, 0);
	}
	public RECYCLE(): TerminalNode {
		return this.getToken(PlSqlParser.RECYCLE, 0);
	}
	public REDACTION(): TerminalNode {
		return this.getToken(PlSqlParser.REDACTION, 0);
	}
	public REDO(): TerminalNode {
		return this.getToken(PlSqlParser.REDO, 0);
	}
	public REDUCED(): TerminalNode {
		return this.getToken(PlSqlParser.REDUCED, 0);
	}
	public REDUNDANCY(): TerminalNode {
		return this.getToken(PlSqlParser.REDUNDANCY, 0);
	}
	public REF_CASCADE_CURSOR(): TerminalNode {
		return this.getToken(PlSqlParser.REF_CASCADE_CURSOR, 0);
	}
	public REFERENCED(): TerminalNode {
		return this.getToken(PlSqlParser.REFERENCED, 0);
	}
	public REFERENCE(): TerminalNode {
		return this.getToken(PlSqlParser.REFERENCE, 0);
	}
	public REFERENCES(): TerminalNode {
		return this.getToken(PlSqlParser.REFERENCES, 0);
	}
	public REFERENCING(): TerminalNode {
		return this.getToken(PlSqlParser.REFERENCING, 0);
	}
	public REF(): TerminalNode {
		return this.getToken(PlSqlParser.REF, 0);
	}
	public REFRESH(): TerminalNode {
		return this.getToken(PlSqlParser.REFRESH, 0);
	}
	public REFTOHEX(): TerminalNode {
		return this.getToken(PlSqlParser.REFTOHEX, 0);
	}
	public REGEXP_COUNT(): TerminalNode {
		return this.getToken(PlSqlParser.REGEXP_COUNT, 0);
	}
	public REGEXP_INSTR(): TerminalNode {
		return this.getToken(PlSqlParser.REGEXP_INSTR, 0);
	}
	public REGEXP_LIKE(): TerminalNode {
		return this.getToken(PlSqlParser.REGEXP_LIKE, 0);
	}
	public REGEXP_REPLACE(): TerminalNode {
		return this.getToken(PlSqlParser.REGEXP_REPLACE, 0);
	}
	public REGEXP_SUBSTR(): TerminalNode {
		return this.getToken(PlSqlParser.REGEXP_SUBSTR, 0);
	}
	public REGISTER(): TerminalNode {
		return this.getToken(PlSqlParser.REGISTER, 0);
	}
	public REGR_AVGX(): TerminalNode {
		return this.getToken(PlSqlParser.REGR_AVGX, 0);
	}
	public REGR_AVGY(): TerminalNode {
		return this.getToken(PlSqlParser.REGR_AVGY, 0);
	}
	public REGR_COUNT(): TerminalNode {
		return this.getToken(PlSqlParser.REGR_COUNT, 0);
	}
	public REGR_INTERCEPT(): TerminalNode {
		return this.getToken(PlSqlParser.REGR_INTERCEPT, 0);
	}
	public REGR_R2(): TerminalNode {
		return this.getToken(PlSqlParser.REGR_R2, 0);
	}
	public REGR_SLOPE(): TerminalNode {
		return this.getToken(PlSqlParser.REGR_SLOPE, 0);
	}
	public REGR_SXX(): TerminalNode {
		return this.getToken(PlSqlParser.REGR_SXX, 0);
	}
	public REGR_SXY(): TerminalNode {
		return this.getToken(PlSqlParser.REGR_SXY, 0);
	}
	public REGR_SYY(): TerminalNode {
		return this.getToken(PlSqlParser.REGR_SYY, 0);
	}
	public REGULAR(): TerminalNode {
		return this.getToken(PlSqlParser.REGULAR, 0);
	}
	public REJECT(): TerminalNode {
		return this.getToken(PlSqlParser.REJECT, 0);
	}
	public REKEY(): TerminalNode {
		return this.getToken(PlSqlParser.REKEY, 0);
	}
	public RELATIONAL(): TerminalNode {
		return this.getToken(PlSqlParser.RELATIONAL, 0);
	}
	public RELY(): TerminalNode {
		return this.getToken(PlSqlParser.RELY, 0);
	}
	public REMAINDER(): TerminalNode {
		return this.getToken(PlSqlParser.REMAINDER, 0);
	}
	public REMOTE_MAPPED(): TerminalNode {
		return this.getToken(PlSqlParser.REMOTE_MAPPED, 0);
	}
	public REMOVE(): TerminalNode {
		return this.getToken(PlSqlParser.REMOVE, 0);
	}
	public REPAIR(): TerminalNode {
		return this.getToken(PlSqlParser.REPAIR, 0);
	}
	public REPEAT(): TerminalNode {
		return this.getToken(PlSqlParser.REPEAT, 0);
	}
	public REPLACE(): TerminalNode {
		return this.getToken(PlSqlParser.REPLACE, 0);
	}
	public REPLICATION(): TerminalNode {
		return this.getToken(PlSqlParser.REPLICATION, 0);
	}
	public REQUIRED(): TerminalNode {
		return this.getToken(PlSqlParser.REQUIRED, 0);
	}
	public RESETLOGS(): TerminalNode {
		return this.getToken(PlSqlParser.RESETLOGS, 0);
	}
	public RESET(): TerminalNode {
		return this.getToken(PlSqlParser.RESET, 0);
	}
	public RESIZE(): TerminalNode {
		return this.getToken(PlSqlParser.RESIZE, 0);
	}
	public RESOLVE(): TerminalNode {
		return this.getToken(PlSqlParser.RESOLVE, 0);
	}
	public RESOLVER(): TerminalNode {
		return this.getToken(PlSqlParser.RESOLVER, 0);
	}
	public RESPECT(): TerminalNode {
		return this.getToken(PlSqlParser.RESPECT, 0);
	}
	public RESTORE_AS_INTERVALS(): TerminalNode {
		return this.getToken(PlSqlParser.RESTORE_AS_INTERVALS, 0);
	}
	public RESTORE(): TerminalNode {
		return this.getToken(PlSqlParser.RESTORE, 0);
	}
	public RESTRICT_ALL_REF_CONS(): TerminalNode {
		return this.getToken(PlSqlParser.RESTRICT_ALL_REF_CONS, 0);
	}
	public RESTRICTED(): TerminalNode {
		return this.getToken(PlSqlParser.RESTRICTED, 0);
	}
	public RESTRICT(): TerminalNode {
		return this.getToken(PlSqlParser.RESTRICT, 0);
	}
	public RESULT_CACHE(): TerminalNode {
		return this.getToken(PlSqlParser.RESULT_CACHE, 0);
	}
	public RESUMABLE(): TerminalNode {
		return this.getToken(PlSqlParser.RESUMABLE, 0);
	}
	public RESUME(): TerminalNode {
		return this.getToken(PlSqlParser.RESUME, 0);
	}
	public RETENTION(): TerminalNode {
		return this.getToken(PlSqlParser.RETENTION, 0);
	}
	public RETRY_ON_ROW_CHANGE(): TerminalNode {
		return this.getToken(PlSqlParser.RETRY_ON_ROW_CHANGE, 0);
	}
	public RETURNING(): TerminalNode {
		return this.getToken(PlSqlParser.RETURNING, 0);
	}
	public RETURN(): TerminalNode {
		return this.getToken(PlSqlParser.RETURN, 0);
	}
	public REUSE(): TerminalNode {
		return this.getToken(PlSqlParser.REUSE, 0);
	}
	public REVERSE(): TerminalNode {
		return this.getToken(PlSqlParser.REVERSE, 0);
	}
	public REWRITE(): TerminalNode {
		return this.getToken(PlSqlParser.REWRITE, 0);
	}
	public REWRITE_OR_ERROR(): TerminalNode {
		return this.getToken(PlSqlParser.REWRITE_OR_ERROR, 0);
	}
	public RIGHT(): TerminalNode {
		return this.getToken(PlSqlParser.RIGHT, 0);
	}
	public ROLE(): TerminalNode {
		return this.getToken(PlSqlParser.ROLE, 0);
	}
	public ROLES(): TerminalNode {
		return this.getToken(PlSqlParser.ROLES, 0);
	}
	public ROLLBACK(): TerminalNode {
		return this.getToken(PlSqlParser.ROLLBACK, 0);
	}
	public ROLLING(): TerminalNode {
		return this.getToken(PlSqlParser.ROLLING, 0);
	}
	public ROLLUP(): TerminalNode {
		return this.getToken(PlSqlParser.ROLLUP, 0);
	}
	public ROUND(): TerminalNode {
		return this.getToken(PlSqlParser.ROUND, 0);
	}
	public ROWDEPENDENCIES(): TerminalNode {
		return this.getToken(PlSqlParser.ROWDEPENDENCIES, 0);
	}
	public ROWID(): TerminalNode {
		return this.getToken(PlSqlParser.ROWID, 0);
	}
	public ROWIDTOCHAR(): TerminalNode {
		return this.getToken(PlSqlParser.ROWIDTOCHAR, 0);
	}
	public ROWIDTONCHAR(): TerminalNode {
		return this.getToken(PlSqlParser.ROWIDTONCHAR, 0);
	}
	public ROW_LENGTH(): TerminalNode {
		return this.getToken(PlSqlParser.ROW_LENGTH, 0);
	}
	public ROW(): TerminalNode {
		return this.getToken(PlSqlParser.ROW, 0);
	}
	public ROW_NUMBER(): TerminalNode {
		return this.getToken(PlSqlParser.ROW_NUMBER, 0);
	}
	public ROWNUM(): TerminalNode {
		return this.getToken(PlSqlParser.ROWNUM, 0);
	}
	public ROWS(): TerminalNode {
		return this.getToken(PlSqlParser.ROWS, 0);
	}
	public RPAD(): TerminalNode {
		return this.getToken(PlSqlParser.RPAD, 0);
	}
	public RTRIM(): TerminalNode {
		return this.getToken(PlSqlParser.RTRIM, 0);
	}
	public RULE(): TerminalNode {
		return this.getToken(PlSqlParser.RULE, 0);
	}
	public RULES(): TerminalNode {
		return this.getToken(PlSqlParser.RULES, 0);
	}
	public SALT(): TerminalNode {
		return this.getToken(PlSqlParser.SALT, 0);
	}
	public SAMPLE(): TerminalNode {
		return this.getToken(PlSqlParser.SAMPLE, 0);
	}
	public SAVE_AS_INTERVALS(): TerminalNode {
		return this.getToken(PlSqlParser.SAVE_AS_INTERVALS, 0);
	}
	public SAVEPOINT(): TerminalNode {
		return this.getToken(PlSqlParser.SAVEPOINT, 0);
	}
	public SB4(): TerminalNode {
		return this.getToken(PlSqlParser.SB4, 0);
	}
	public SCALE(): TerminalNode {
		return this.getToken(PlSqlParser.SCALE, 0);
	}
	public SCALE_ROWS(): TerminalNode {
		return this.getToken(PlSqlParser.SCALE_ROWS, 0);
	}
	public SCAN_INSTANCES(): TerminalNode {
		return this.getToken(PlSqlParser.SCAN_INSTANCES, 0);
	}
	public SCAN(): TerminalNode {
		return this.getToken(PlSqlParser.SCAN, 0);
	}
	public SCHEDULER(): TerminalNode {
		return this.getToken(PlSqlParser.SCHEDULER, 0);
	}
	public SCHEMACHECK(): TerminalNode {
		return this.getToken(PlSqlParser.SCHEMACHECK, 0);
	}
	public SCHEMA(): TerminalNode {
		return this.getToken(PlSqlParser.SCHEMA, 0);
	}
	public SCN_ASCENDING(): TerminalNode {
		return this.getToken(PlSqlParser.SCN_ASCENDING, 0);
	}
	public SCN(): TerminalNode {
		return this.getToken(PlSqlParser.SCN, 0);
	}
	public SCOPE(): TerminalNode {
		return this.getToken(PlSqlParser.SCOPE, 0);
	}
	public SD_ALL(): TerminalNode {
		return this.getToken(PlSqlParser.SD_ALL, 0);
	}
	public SD_INHIBIT(): TerminalNode {
		return this.getToken(PlSqlParser.SD_INHIBIT, 0);
	}
	public SD_SHOW(): TerminalNode {
		return this.getToken(PlSqlParser.SD_SHOW, 0);
	}
	public SEARCH(): TerminalNode {
		return this.getToken(PlSqlParser.SEARCH, 0);
	}
	public SECOND(): TerminalNode {
		return this.getToken(PlSqlParser.SECOND, 0);
	}
	public SECUREFILE_DBA(): TerminalNode {
		return this.getToken(PlSqlParser.SECUREFILE_DBA, 0);
	}
	public SECUREFILE(): TerminalNode {
		return this.getToken(PlSqlParser.SECUREFILE, 0);
	}
	public SECURITY(): TerminalNode {
		return this.getToken(PlSqlParser.SECURITY, 0);
	}
	public SEED(): TerminalNode {
		return this.getToken(PlSqlParser.SEED, 0);
	}
	public SEG_BLOCK(): TerminalNode {
		return this.getToken(PlSqlParser.SEG_BLOCK, 0);
	}
	public SEG_FILE(): TerminalNode {
		return this.getToken(PlSqlParser.SEG_FILE, 0);
	}
	public SEGMENT(): TerminalNode {
		return this.getToken(PlSqlParser.SEGMENT, 0);
	}
	public SELECTIVITY(): TerminalNode {
		return this.getToken(PlSqlParser.SELECTIVITY, 0);
	}
	public SEMIJOIN_DRIVER(): TerminalNode {
		return this.getToken(PlSqlParser.SEMIJOIN_DRIVER, 0);
	}
	public SEMIJOIN(): TerminalNode {
		return this.getToken(PlSqlParser.SEMIJOIN, 0);
	}
	public SEMI_TO_INNER(): TerminalNode {
		return this.getToken(PlSqlParser.SEMI_TO_INNER, 0);
	}
	public SEQUENCED(): TerminalNode {
		return this.getToken(PlSqlParser.SEQUENCED, 0);
	}
	public SEQUENCE(): TerminalNode {
		return this.getToken(PlSqlParser.SEQUENCE, 0);
	}
	public SEQUENTIAL(): TerminalNode {
		return this.getToken(PlSqlParser.SEQUENTIAL, 0);
	}
	public SERIALIZABLE(): TerminalNode {
		return this.getToken(PlSqlParser.SERIALIZABLE, 0);
	}
	public SERVERERROR(): TerminalNode {
		return this.getToken(PlSqlParser.SERVERERROR, 0);
	}
	public SESSION_CACHED_CURSORS(): TerminalNode {
		return this.getToken(PlSqlParser.SESSION_CACHED_CURSORS, 0);
	}
	public SESSION(): TerminalNode {
		return this.getToken(PlSqlParser.SESSION, 0);
	}
	public SESSIONS_PER_USER(): TerminalNode {
		return this.getToken(PlSqlParser.SESSIONS_PER_USER, 0);
	}
	public SESSIONTIMEZONE(): TerminalNode {
		return this.getToken(PlSqlParser.SESSIONTIMEZONE, 0);
	}
	public SESSIONTZNAME(): TerminalNode {
		return this.getToken(PlSqlParser.SESSIONTZNAME, 0);
	}
	public SETS(): TerminalNode {
		return this.getToken(PlSqlParser.SETS, 0);
	}
	public SETTINGS(): TerminalNode {
		return this.getToken(PlSqlParser.SETTINGS, 0);
	}
	public SET_TO_JOIN(): TerminalNode {
		return this.getToken(PlSqlParser.SET_TO_JOIN, 0);
	}
	public SEVERE(): TerminalNode {
		return this.getToken(PlSqlParser.SEVERE, 0);
	}
	public SHARED(): TerminalNode {
		return this.getToken(PlSqlParser.SHARED, 0);
	}
	public SHARED_POOL(): TerminalNode {
		return this.getToken(PlSqlParser.SHARED_POOL, 0);
	}
	public SHOW(): TerminalNode {
		return this.getToken(PlSqlParser.SHOW, 0);
	}
	public SHRINK(): TerminalNode {
		return this.getToken(PlSqlParser.SHRINK, 0);
	}
	public SHUTDOWN(): TerminalNode {
		return this.getToken(PlSqlParser.SHUTDOWN, 0);
	}
	public SIBLINGS(): TerminalNode {
		return this.getToken(PlSqlParser.SIBLINGS, 0);
	}
	public SID(): TerminalNode {
		return this.getToken(PlSqlParser.SID, 0);
	}
	public SIGNAL_COMPONENT(): TerminalNode {
		return this.getToken(PlSqlParser.SIGNAL_COMPONENT, 0);
	}
	public SIGNAL_FUNCTION(): TerminalNode {
		return this.getToken(PlSqlParser.SIGNAL_FUNCTION, 0);
	}
	public SIGN(): TerminalNode {
		return this.getToken(PlSqlParser.SIGN, 0);
	}
	public SIMPLE(): TerminalNode {
		return this.getToken(PlSqlParser.SIMPLE, 0);
	}
	public SINGLE(): TerminalNode {
		return this.getToken(PlSqlParser.SINGLE, 0);
	}
	public SINGLETASK(): TerminalNode {
		return this.getToken(PlSqlParser.SINGLETASK, 0);
	}
	public SINH(): TerminalNode {
		return this.getToken(PlSqlParser.SINH, 0);
	}
	public SIN(): TerminalNode {
		return this.getToken(PlSqlParser.SIN, 0);
	}
	public SKIP_EXT_OPTIMIZER(): TerminalNode {
		return this.getToken(PlSqlParser.SKIP_EXT_OPTIMIZER, 0);
	}
	public SKIP_(): TerminalNode {
		return this.getToken(PlSqlParser.SKIP_, 0);
	}
	public SKIP_UNQ_UNUSABLE_IDX(): TerminalNode {
		return this.getToken(PlSqlParser.SKIP_UNQ_UNUSABLE_IDX, 0);
	}
	public SKIP_UNUSABLE_INDEXES(): TerminalNode {
		return this.getToken(PlSqlParser.SKIP_UNUSABLE_INDEXES, 0);
	}
	public SMALLFILE(): TerminalNode {
		return this.getToken(PlSqlParser.SMALLFILE, 0);
	}
	public SNAPSHOT(): TerminalNode {
		return this.getToken(PlSqlParser.SNAPSHOT, 0);
	}
	public SOME(): TerminalNode {
		return this.getToken(PlSqlParser.SOME, 0);
	}
	public SORT(): TerminalNode {
		return this.getToken(PlSqlParser.SORT, 0);
	}
	public SOUNDEX(): TerminalNode {
		return this.getToken(PlSqlParser.SOUNDEX, 0);
	}
	public SOURCE(): TerminalNode {
		return this.getToken(PlSqlParser.SOURCE, 0);
	}
	public SPACE_KEYWORD(): TerminalNode {
		return this.getToken(PlSqlParser.SPACE_KEYWORD, 0);
	}
	public SPECIFICATION(): TerminalNode {
		return this.getToken(PlSqlParser.SPECIFICATION, 0);
	}
	public SPFILE(): TerminalNode {
		return this.getToken(PlSqlParser.SPFILE, 0);
	}
	public SPLIT(): TerminalNode {
		return this.getToken(PlSqlParser.SPLIT, 0);
	}
	public SPREADSHEET(): TerminalNode {
		return this.getToken(PlSqlParser.SPREADSHEET, 0);
	}
	public SQLLDR(): TerminalNode {
		return this.getToken(PlSqlParser.SQLLDR, 0);
	}
	public SQL(): TerminalNode {
		return this.getToken(PlSqlParser.SQL, 0);
	}
	public SQL_TRACE(): TerminalNode {
		return this.getToken(PlSqlParser.SQL_TRACE, 0);
	}
	public SQRT(): TerminalNode {
		return this.getToken(PlSqlParser.SQRT, 0);
	}
	public STALE(): TerminalNode {
		return this.getToken(PlSqlParser.STALE, 0);
	}
	public STANDALONE(): TerminalNode {
		return this.getToken(PlSqlParser.STANDALONE, 0);
	}
	public STANDBY_MAX_DATA_DELAY(): TerminalNode {
		return this.getToken(PlSqlParser.STANDBY_MAX_DATA_DELAY, 0);
	}
	public STANDBY(): TerminalNode {
		return this.getToken(PlSqlParser.STANDBY, 0);
	}
	public STAR(): TerminalNode {
		return this.getToken(PlSqlParser.STAR, 0);
	}
	public STAR_TRANSFORMATION(): TerminalNode {
		return this.getToken(PlSqlParser.STAR_TRANSFORMATION, 0);
	}
	public STARTUP(): TerminalNode {
		return this.getToken(PlSqlParser.STARTUP, 0);
	}
	public STATEMENT_ID(): TerminalNode {
		return this.getToken(PlSqlParser.STATEMENT_ID, 0);
	}
	public STATEMENT_QUEUING(): TerminalNode {
		return this.getToken(PlSqlParser.STATEMENT_QUEUING, 0);
	}
	public STATEMENTS(): TerminalNode {
		return this.getToken(PlSqlParser.STATEMENTS, 0);
	}
	public STATIC(): TerminalNode {
		return this.getToken(PlSqlParser.STATIC, 0);
	}
	public STATISTICS(): TerminalNode {
		return this.getToken(PlSqlParser.STATISTICS, 0);
	}
	public STATS_BINOMIAL_TEST(): TerminalNode {
		return this.getToken(PlSqlParser.STATS_BINOMIAL_TEST, 0);
	}
	public STATS_CROSSTAB(): TerminalNode {
		return this.getToken(PlSqlParser.STATS_CROSSTAB, 0);
	}
	public STATS_F_TEST(): TerminalNode {
		return this.getToken(PlSqlParser.STATS_F_TEST, 0);
	}
	public STATS_KS_TEST(): TerminalNode {
		return this.getToken(PlSqlParser.STATS_KS_TEST, 0);
	}
	public STATS_MODE(): TerminalNode {
		return this.getToken(PlSqlParser.STATS_MODE, 0);
	}
	public STATS_MW_TEST(): TerminalNode {
		return this.getToken(PlSqlParser.STATS_MW_TEST, 0);
	}
	public STATS_ONE_WAY_ANOVA(): TerminalNode {
		return this.getToken(PlSqlParser.STATS_ONE_WAY_ANOVA, 0);
	}
	public STATS_T_TEST_INDEP(): TerminalNode {
		return this.getToken(PlSqlParser.STATS_T_TEST_INDEP, 0);
	}
	public STATS_T_TEST_INDEPU(): TerminalNode {
		return this.getToken(PlSqlParser.STATS_T_TEST_INDEPU, 0);
	}
	public STATS_T_TEST_ONE(): TerminalNode {
		return this.getToken(PlSqlParser.STATS_T_TEST_ONE, 0);
	}
	public STATS_T_TEST_PAIRED(): TerminalNode {
		return this.getToken(PlSqlParser.STATS_T_TEST_PAIRED, 0);
	}
	public STATS_WSR_TEST(): TerminalNode {
		return this.getToken(PlSqlParser.STATS_WSR_TEST, 0);
	}
	public STDDEV(): TerminalNode {
		return this.getToken(PlSqlParser.STDDEV, 0);
	}
	public STDDEV_POP(): TerminalNode {
		return this.getToken(PlSqlParser.STDDEV_POP, 0);
	}
	public STDDEV_SAMP(): TerminalNode {
		return this.getToken(PlSqlParser.STDDEV_SAMP, 0);
	}
	public STOP(): TerminalNode {
		return this.getToken(PlSqlParser.STOP, 0);
	}
	public STORAGE(): TerminalNode {
		return this.getToken(PlSqlParser.STORAGE, 0);
	}
	public STORE(): TerminalNode {
		return this.getToken(PlSqlParser.STORE, 0);
	}
	public STREAMS(): TerminalNode {
		return this.getToken(PlSqlParser.STREAMS, 0);
	}
	public STRICT(): TerminalNode {
		return this.getToken(PlSqlParser.STRICT, 0);
	}
	public STRING(): TerminalNode {
		return this.getToken(PlSqlParser.STRING, 0);
	}
	public STRIPE_COLUMNS(): TerminalNode {
		return this.getToken(PlSqlParser.STRIPE_COLUMNS, 0);
	}
	public STRIPE_WIDTH(): TerminalNode {
		return this.getToken(PlSqlParser.STRIPE_WIDTH, 0);
	}
	public STRIP(): TerminalNode {
		return this.getToken(PlSqlParser.STRIP, 0);
	}
	public STRUCTURE(): TerminalNode {
		return this.getToken(PlSqlParser.STRUCTURE, 0);
	}
	public SUBMULTISET(): TerminalNode {
		return this.getToken(PlSqlParser.SUBMULTISET, 0);
	}
	public SUBPARTITION(): TerminalNode {
		return this.getToken(PlSqlParser.SUBPARTITION, 0);
	}
	public SUBPARTITION_REL(): TerminalNode {
		return this.getToken(PlSqlParser.SUBPARTITION_REL, 0);
	}
	public SUBPARTITIONS(): TerminalNode {
		return this.getToken(PlSqlParser.SUBPARTITIONS, 0);
	}
	public SUBQUERIES(): TerminalNode {
		return this.getToken(PlSqlParser.SUBQUERIES, 0);
	}
	public SUBQUERY_PRUNING(): TerminalNode {
		return this.getToken(PlSqlParser.SUBQUERY_PRUNING, 0);
	}
	public SUBSTITUTABLE(): TerminalNode {
		return this.getToken(PlSqlParser.SUBSTITUTABLE, 0);
	}
	public SUBSTR2(): TerminalNode {
		return this.getToken(PlSqlParser.SUBSTR2, 0);
	}
	public SUBSTR4(): TerminalNode {
		return this.getToken(PlSqlParser.SUBSTR4, 0);
	}
	public SUBSTRB(): TerminalNode {
		return this.getToken(PlSqlParser.SUBSTRB, 0);
	}
	public SUBSTRC(): TerminalNode {
		return this.getToken(PlSqlParser.SUBSTRC, 0);
	}
	public SUBSTR(): TerminalNode {
		return this.getToken(PlSqlParser.SUBSTR, 0);
	}
	public SUCCESSFUL(): TerminalNode {
		return this.getToken(PlSqlParser.SUCCESSFUL, 0);
	}
	public SUMMARY(): TerminalNode {
		return this.getToken(PlSqlParser.SUMMARY, 0);
	}
	public SUM(): TerminalNode {
		return this.getToken(PlSqlParser.SUM, 0);
	}
	public SUPPLEMENTAL(): TerminalNode {
		return this.getToken(PlSqlParser.SUPPLEMENTAL, 0);
	}
	public SUSPEND(): TerminalNode {
		return this.getToken(PlSqlParser.SUSPEND, 0);
	}
	public SWAP_JOIN_INPUTS(): TerminalNode {
		return this.getToken(PlSqlParser.SWAP_JOIN_INPUTS, 0);
	}
	public SWITCH(): TerminalNode {
		return this.getToken(PlSqlParser.SWITCH, 0);
	}
	public SWITCHOVER(): TerminalNode {
		return this.getToken(PlSqlParser.SWITCHOVER, 0);
	}
	public SYNCHRONOUS(): TerminalNode {
		return this.getToken(PlSqlParser.SYNCHRONOUS, 0);
	}
	public SYNC(): TerminalNode {
		return this.getToken(PlSqlParser.SYNC, 0);
	}
	public SYSASM(): TerminalNode {
		return this.getToken(PlSqlParser.SYSASM, 0);
	}
	public SYS_AUDIT(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_AUDIT, 0);
	}
	public SYSAUX(): TerminalNode {
		return this.getToken(PlSqlParser.SYSAUX, 0);
	}
	public SYS_CHECKACL(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_CHECKACL, 0);
	}
	public SYS_CONNECT_BY_PATH(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_CONNECT_BY_PATH, 0);
	}
	public SYS_CONTEXT(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_CONTEXT, 0);
	}
	public SYSDATE(): TerminalNode {
		return this.getToken(PlSqlParser.SYSDATE, 0);
	}
	public SYSDBA(): TerminalNode {
		return this.getToken(PlSqlParser.SYSDBA, 0);
	}
	public SYS_DBURIGEN(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_DBURIGEN, 0);
	}
	public SYS_DL_CURSOR(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_DL_CURSOR, 0);
	}
	public SYS_DM_RXFORM_CHR(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_DM_RXFORM_CHR, 0);
	}
	public SYS_DM_RXFORM_NUM(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_DM_RXFORM_NUM, 0);
	}
	public SYS_DOM_COMPARE(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_DOM_COMPARE, 0);
	}
	public SYS_DST_PRIM2SEC(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_DST_PRIM2SEC, 0);
	}
	public SYS_DST_SEC2PRIM(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_DST_SEC2PRIM, 0);
	}
	public SYS_ET_BFILE_TO_RAW(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_ET_BFILE_TO_RAW, 0);
	}
	public SYS_ET_BLOB_TO_IMAGE(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_ET_BLOB_TO_IMAGE, 0);
	}
	public SYS_ET_IMAGE_TO_BLOB(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_ET_IMAGE_TO_BLOB, 0);
	}
	public SYS_ET_RAW_TO_BFILE(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_ET_RAW_TO_BFILE, 0);
	}
	public SYS_EXTPDTXT(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_EXTPDTXT, 0);
	}
	public SYS_EXTRACT_UTC(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_EXTRACT_UTC, 0);
	}
	public SYS_FBT_INSDEL(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_FBT_INSDEL, 0);
	}
	public SYS_FILTER_ACLS(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_FILTER_ACLS, 0);
	}
	public SYS_FNMATCHES(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_FNMATCHES, 0);
	}
	public SYS_FNREPLACE(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_FNREPLACE, 0);
	}
	public SYS_GET_ACLIDS(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_GET_ACLIDS, 0);
	}
	public SYS_GET_PRIVILEGES(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_GET_PRIVILEGES, 0);
	}
	public SYS_GETTOKENID(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_GETTOKENID, 0);
	}
	public SYS_GETXTIVAL(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_GETXTIVAL, 0);
	}
	public SYS_GUID(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_GUID, 0);
	}
	public SYS_MAKEXML(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_MAKEXML, 0);
	}
	public SYS_MAKE_XMLNODEID(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_MAKE_XMLNODEID, 0);
	}
	public SYS_MKXMLATTR(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_MKXMLATTR, 0);
	}
	public SYS_OP_ADT2BIN(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OP_ADT2BIN, 0);
	}
	public SYS_OP_ADTCONS(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OP_ADTCONS, 0);
	}
	public SYS_OP_ALSCRVAL(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OP_ALSCRVAL, 0);
	}
	public SYS_OP_ATG(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OP_ATG, 0);
	}
	public SYS_OP_BIN2ADT(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OP_BIN2ADT, 0);
	}
	public SYS_OP_BITVEC(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OP_BITVEC, 0);
	}
	public SYS_OP_BL2R(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OP_BL2R, 0);
	}
	public SYS_OP_BLOOM_FILTER_LIST(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OP_BLOOM_FILTER_LIST, 0);
	}
	public SYS_OP_BLOOM_FILTER(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OP_BLOOM_FILTER, 0);
	}
	public SYS_OP_C2C(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OP_C2C, 0);
	}
	public SYS_OP_CAST(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OP_CAST, 0);
	}
	public SYS_OP_CEG(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OP_CEG, 0);
	}
	public SYS_OP_CL2C(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OP_CL2C, 0);
	}
	public SYS_OP_COMBINED_HASH(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OP_COMBINED_HASH, 0);
	}
	public SYS_OP_COMP(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OP_COMP, 0);
	}
	public SYS_OP_CONVERT(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OP_CONVERT, 0);
	}
	public SYS_OP_COUNTCHG(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OP_COUNTCHG, 0);
	}
	public SYS_OP_CSCONV(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OP_CSCONV, 0);
	}
	public SYS_OP_CSCONVTEST(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OP_CSCONVTEST, 0);
	}
	public SYS_OP_CSR(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OP_CSR, 0);
	}
	public SYS_OP_CSX_PATCH(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OP_CSX_PATCH, 0);
	}
	public SYS_OP_DECOMP(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OP_DECOMP, 0);
	}
	public SYS_OP_DESCEND(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OP_DESCEND, 0);
	}
	public SYS_OP_DISTINCT(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OP_DISTINCT, 0);
	}
	public SYS_OP_DRA(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OP_DRA, 0);
	}
	public SYS_OP_DUMP(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OP_DUMP, 0);
	}
	public SYS_OP_DV_CHECK(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OP_DV_CHECK, 0);
	}
	public SYS_OP_ENFORCE_NOT_NULL(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OP_ENFORCE_NOT_NULL, 0);
	}
	public SYSOPER(): TerminalNode {
		return this.getToken(PlSqlParser.SYSOPER, 0);
	}
	public SYS_OP_EXTRACT(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OP_EXTRACT, 0);
	}
	public SYS_OP_GROUPING(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OP_GROUPING, 0);
	}
	public SYS_OP_GUID(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OP_GUID, 0);
	}
	public SYS_OP_IIX(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OP_IIX, 0);
	}
	public SYS_OP_ITR(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OP_ITR, 0);
	}
	public SYS_OP_LBID(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OP_LBID, 0);
	}
	public SYS_OP_LOBLOC2BLOB(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OP_LOBLOC2BLOB, 0);
	}
	public SYS_OP_LOBLOC2CLOB(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OP_LOBLOC2CLOB, 0);
	}
	public SYS_OP_LOBLOC2ID(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OP_LOBLOC2ID, 0);
	}
	public SYS_OP_LOBLOC2NCLOB(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OP_LOBLOC2NCLOB, 0);
	}
	public SYS_OP_LOBLOC2TYP(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OP_LOBLOC2TYP, 0);
	}
	public SYS_OP_LSVI(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OP_LSVI, 0);
	}
	public SYS_OP_LVL(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OP_LVL, 0);
	}
	public SYS_OP_MAKEOID(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OP_MAKEOID, 0);
	}
	public SYS_OP_MAP_NONNULL(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OP_MAP_NONNULL, 0);
	}
	public SYS_OP_MSR(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OP_MSR, 0);
	}
	public SYS_OP_NICOMBINE(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OP_NICOMBINE, 0);
	}
	public SYS_OP_NIEXTRACT(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OP_NIEXTRACT, 0);
	}
	public SYS_OP_NII(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OP_NII, 0);
	}
	public SYS_OP_NIX(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OP_NIX, 0);
	}
	public SYS_OP_NOEXPAND(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OP_NOEXPAND, 0);
	}
	public SYS_OP_NTCIMG(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OP_NTCIMG, 0);
	}
	public SYS_OP_NUMTORAW(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OP_NUMTORAW, 0);
	}
	public SYS_OP_OIDVALUE(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OP_OIDVALUE, 0);
	}
	public SYS_OP_OPNSIZE(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OP_OPNSIZE, 0);
	}
	public SYS_OP_PAR_1(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OP_PAR_1, 0);
	}
	public SYS_OP_PARGID_1(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OP_PARGID_1, 0);
	}
	public SYS_OP_PARGID(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OP_PARGID, 0);
	}
	public SYS_OP_PAR(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OP_PAR, 0);
	}
	public SYS_OP_PIVOT(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OP_PIVOT, 0);
	}
	public SYS_OP_R2O(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OP_R2O, 0);
	}
	public SYS_OP_RAWTONUM(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OP_RAWTONUM, 0);
	}
	public SYS_OP_RDTM(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OP_RDTM, 0);
	}
	public SYS_OP_REF(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OP_REF, 0);
	}
	public SYS_OP_RMTD(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OP_RMTD, 0);
	}
	public SYS_OP_ROWIDTOOBJ(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OP_ROWIDTOOBJ, 0);
	}
	public SYS_OP_RPB(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OP_RPB, 0);
	}
	public SYS_OPTLOBPRBSC(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OPTLOBPRBSC, 0);
	}
	public SYS_OP_TOSETID(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OP_TOSETID, 0);
	}
	public SYS_OP_TPR(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OP_TPR, 0);
	}
	public SYS_OP_TRTB(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OP_TRTB, 0);
	}
	public SYS_OPTXICMP(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OPTXICMP, 0);
	}
	public SYS_OPTXQCASTASNQ(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OPTXQCASTASNQ, 0);
	}
	public SYS_OP_UNDESCEND(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OP_UNDESCEND, 0);
	}
	public SYS_OP_VECAND(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OP_VECAND, 0);
	}
	public SYS_OP_VECBIT(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OP_VECBIT, 0);
	}
	public SYS_OP_VECOR(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OP_VECOR, 0);
	}
	public SYS_OP_VECXOR(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OP_VECXOR, 0);
	}
	public SYS_OP_VERSION(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OP_VERSION, 0);
	}
	public SYS_OP_VREF(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OP_VREF, 0);
	}
	public SYS_OP_VVD(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OP_VVD, 0);
	}
	public SYS_OP_XMLCONS_FOR_CSX(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OP_XMLCONS_FOR_CSX, 0);
	}
	public SYS_OP_XPTHATG(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OP_XPTHATG, 0);
	}
	public SYS_OP_XPTHIDX(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OP_XPTHIDX, 0);
	}
	public SYS_OP_XPTHOP(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OP_XPTHOP, 0);
	}
	public SYS_OP_XTXT2SQLT(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_OP_XTXT2SQLT, 0);
	}
	public SYS_ORDERKEY_DEPTH(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_ORDERKEY_DEPTH, 0);
	}
	public SYS_ORDERKEY_MAXCHILD(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_ORDERKEY_MAXCHILD, 0);
	}
	public SYS_ORDERKEY_PARENT(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_ORDERKEY_PARENT, 0);
	}
	public SYS_PARALLEL_TXN(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_PARALLEL_TXN, 0);
	}
	public SYS_PATHID_IS_ATTR(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_PATHID_IS_ATTR, 0);
	}
	public SYS_PATHID_IS_NMSPC(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_PATHID_IS_NMSPC, 0);
	}
	public SYS_PATHID_LASTNAME(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_PATHID_LASTNAME, 0);
	}
	public SYS_PATHID_LASTNMSPC(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_PATHID_LASTNMSPC, 0);
	}
	public SYS_PATH_REVERSE(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_PATH_REVERSE, 0);
	}
	public SYS_PXQEXTRACT(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_PXQEXTRACT, 0);
	}
	public SYS_RID_ORDER(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_RID_ORDER, 0);
	}
	public SYS_ROW_DELTA(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_ROW_DELTA, 0);
	}
	public SYS_SC_2_XMLT(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_SC_2_XMLT, 0);
	}
	public SYS_SYNRCIREDO(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_SYNRCIREDO, 0);
	}
	public SYSTEM_DEFINED(): TerminalNode {
		return this.getToken(PlSqlParser.SYSTEM_DEFINED, 0);
	}
	public SYSTEM(): TerminalNode {
		return this.getToken(PlSqlParser.SYSTEM, 0);
	}
	public SYSTIMESTAMP(): TerminalNode {
		return this.getToken(PlSqlParser.SYSTIMESTAMP, 0);
	}
	public SYS_TYPEID(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_TYPEID, 0);
	}
	public SYS_UMAKEXML(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_UMAKEXML, 0);
	}
	public SYS_XMLANALYZE(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XMLANALYZE, 0);
	}
	public SYS_XMLCONTAINS(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XMLCONTAINS, 0);
	}
	public SYS_XMLCONV(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XMLCONV, 0);
	}
	public SYS_XMLEXNSURI(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XMLEXNSURI, 0);
	}
	public SYS_XMLGEN(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XMLGEN, 0);
	}
	public SYS_XMLI_LOC_ISNODE(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XMLI_LOC_ISNODE, 0);
	}
	public SYS_XMLI_LOC_ISTEXT(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XMLI_LOC_ISTEXT, 0);
	}
	public SYS_XMLINSTR(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XMLINSTR, 0);
	}
	public SYS_XMLLOCATOR_GETSVAL(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XMLLOCATOR_GETSVAL, 0);
	}
	public SYS_XMLNODEID_GETCID(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XMLNODEID_GETCID, 0);
	}
	public SYS_XMLNODEID_GETLOCATOR(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XMLNODEID_GETLOCATOR, 0);
	}
	public SYS_XMLNODEID_GETOKEY(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XMLNODEID_GETOKEY, 0);
	}
	public SYS_XMLNODEID_GETPATHID(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XMLNODEID_GETPATHID, 0);
	}
	public SYS_XMLNODEID_GETPTRID(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XMLNODEID_GETPTRID, 0);
	}
	public SYS_XMLNODEID_GETRID(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XMLNODEID_GETRID, 0);
	}
	public SYS_XMLNODEID_GETSVAL(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XMLNODEID_GETSVAL, 0);
	}
	public SYS_XMLNODEID_GETTID(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XMLNODEID_GETTID, 0);
	}
	public SYS_XMLNODEID(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XMLNODEID, 0);
	}
	public SYS_XMLT_2_SC(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XMLT_2_SC, 0);
	}
	public SYS_XMLTRANSLATE(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XMLTRANSLATE, 0);
	}
	public SYS_XMLTYPE2SQL(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XMLTYPE2SQL, 0);
	}
	public SYS_XQ_ASQLCNV(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQ_ASQLCNV, 0);
	}
	public SYS_XQ_ATOMCNVCHK(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQ_ATOMCNVCHK, 0);
	}
	public SYS_XQBASEURI(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQBASEURI, 0);
	}
	public SYS_XQCASTABLEERRH(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQCASTABLEERRH, 0);
	}
	public SYS_XQCODEP2STR(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQCODEP2STR, 0);
	}
	public SYS_XQCODEPEQ(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQCODEPEQ, 0);
	}
	public SYS_XQCON2SEQ(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQCON2SEQ, 0);
	}
	public SYS_XQCONCAT(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQCONCAT, 0);
	}
	public SYS_XQDELETE(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQDELETE, 0);
	}
	public SYS_XQDFLTCOLATION(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQDFLTCOLATION, 0);
	}
	public SYS_XQDOC(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQDOC, 0);
	}
	public SYS_XQDOCURI(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQDOCURI, 0);
	}
	public SYS_XQDURDIV(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQDURDIV, 0);
	}
	public SYS_XQED4URI(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQED4URI, 0);
	}
	public SYS_XQENDSWITH(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQENDSWITH, 0);
	}
	public SYS_XQERRH(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQERRH, 0);
	}
	public SYS_XQERR(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQERR, 0);
	}
	public SYS_XQESHTMLURI(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQESHTMLURI, 0);
	}
	public SYS_XQEXLOBVAL(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQEXLOBVAL, 0);
	}
	public SYS_XQEXSTWRP(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQEXSTWRP, 0);
	}
	public SYS_XQEXTRACT(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQEXTRACT, 0);
	}
	public SYS_XQEXTRREF(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQEXTRREF, 0);
	}
	public SYS_XQEXVAL(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQEXVAL, 0);
	}
	public SYS_XQFB2STR(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQFB2STR, 0);
	}
	public SYS_XQFNBOOL(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQFNBOOL, 0);
	}
	public SYS_XQFNCMP(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQFNCMP, 0);
	}
	public SYS_XQFNDATIM(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQFNDATIM, 0);
	}
	public SYS_XQFNLNAME(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQFNLNAME, 0);
	}
	public SYS_XQFNNM(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQFNNM, 0);
	}
	public SYS_XQFNNSURI(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQFNNSURI, 0);
	}
	public SYS_XQFNPREDTRUTH(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQFNPREDTRUTH, 0);
	}
	public SYS_XQFNQNM(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQFNQNM, 0);
	}
	public SYS_XQFNROOT(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQFNROOT, 0);
	}
	public SYS_XQFORMATNUM(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQFORMATNUM, 0);
	}
	public SYS_XQFTCONTAIN(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQFTCONTAIN, 0);
	}
	public SYS_XQFUNCR(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQFUNCR, 0);
	}
	public SYS_XQGETCONTENT(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQGETCONTENT, 0);
	}
	public SYS_XQINDXOF(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQINDXOF, 0);
	}
	public SYS_XQINSERT(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQINSERT, 0);
	}
	public SYS_XQINSPFX(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQINSPFX, 0);
	}
	public SYS_XQIRI2URI(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQIRI2URI, 0);
	}
	public SYS_XQLANG(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQLANG, 0);
	}
	public SYS_XQLLNMFRMQNM(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQLLNMFRMQNM, 0);
	}
	public SYS_XQMKNODEREF(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQMKNODEREF, 0);
	}
	public SYS_XQNILLED(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQNILLED, 0);
	}
	public SYS_XQNODENAME(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQNODENAME, 0);
	}
	public SYS_XQNORMSPACE(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQNORMSPACE, 0);
	}
	public SYS_XQNORMUCODE(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQNORMUCODE, 0);
	}
	public SYS_XQ_NRNG(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQ_NRNG, 0);
	}
	public SYS_XQNSP4PFX(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQNSP4PFX, 0);
	}
	public SYS_XQNSPFRMQNM(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQNSPFRMQNM, 0);
	}
	public SYS_XQPFXFRMQNM(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQPFXFRMQNM, 0);
	}
	public SYS_XQ_PKSQL2XML(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQ_PKSQL2XML, 0);
	}
	public SYS_XQPOLYABS(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQPOLYABS, 0);
	}
	public SYS_XQPOLYADD(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQPOLYADD, 0);
	}
	public SYS_XQPOLYCEL(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQPOLYCEL, 0);
	}
	public SYS_XQPOLYCSTBL(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQPOLYCSTBL, 0);
	}
	public SYS_XQPOLYCST(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQPOLYCST, 0);
	}
	public SYS_XQPOLYDIV(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQPOLYDIV, 0);
	}
	public SYS_XQPOLYFLR(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQPOLYFLR, 0);
	}
	public SYS_XQPOLYMOD(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQPOLYMOD, 0);
	}
	public SYS_XQPOLYMUL(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQPOLYMUL, 0);
	}
	public SYS_XQPOLYRND(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQPOLYRND, 0);
	}
	public SYS_XQPOLYSQRT(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQPOLYSQRT, 0);
	}
	public SYS_XQPOLYSUB(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQPOLYSUB, 0);
	}
	public SYS_XQPOLYUMUS(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQPOLYUMUS, 0);
	}
	public SYS_XQPOLYUPLS(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQPOLYUPLS, 0);
	}
	public SYS_XQPOLYVEQ(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQPOLYVEQ, 0);
	}
	public SYS_XQPOLYVGE(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQPOLYVGE, 0);
	}
	public SYS_XQPOLYVGT(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQPOLYVGT, 0);
	}
	public SYS_XQPOLYVLE(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQPOLYVLE, 0);
	}
	public SYS_XQPOLYVLT(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQPOLYVLT, 0);
	}
	public SYS_XQPOLYVNE(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQPOLYVNE, 0);
	}
	public SYS_XQREF2VAL(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQREF2VAL, 0);
	}
	public SYS_XQRENAME(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQRENAME, 0);
	}
	public SYS_XQREPLACE(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQREPLACE, 0);
	}
	public SYS_XQRESVURI(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQRESVURI, 0);
	}
	public SYS_XQRNDHALF2EVN(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQRNDHALF2EVN, 0);
	}
	public SYS_XQRSLVQNM(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQRSLVQNM, 0);
	}
	public SYS_XQRYENVPGET(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQRYENVPGET, 0);
	}
	public SYS_XQRYVARGET(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQRYVARGET, 0);
	}
	public SYS_XQRYWRP(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQRYWRP, 0);
	}
	public SYS_XQSEQ2CON4XC(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQSEQ2CON4XC, 0);
	}
	public SYS_XQSEQ2CON(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQSEQ2CON, 0);
	}
	public SYS_XQSEQDEEPEQ(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQSEQDEEPEQ, 0);
	}
	public SYS_XQSEQINSB(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQSEQINSB, 0);
	}
	public SYS_XQSEQRM(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQSEQRM, 0);
	}
	public SYS_XQSEQRVS(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQSEQRVS, 0);
	}
	public SYS_XQSEQSUB(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQSEQSUB, 0);
	}
	public SYS_XQSEQTYPMATCH(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQSEQTYPMATCH, 0);
	}
	public SYS_XQSTARTSWITH(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQSTARTSWITH, 0);
	}
	public SYS_XQSTATBURI(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQSTATBURI, 0);
	}
	public SYS_XQSTR2CODEP(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQSTR2CODEP, 0);
	}
	public SYS_XQSTRJOIN(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQSTRJOIN, 0);
	}
	public SYS_XQSUBSTRAFT(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQSUBSTRAFT, 0);
	}
	public SYS_XQSUBSTRBEF(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQSUBSTRBEF, 0);
	}
	public SYS_XQTOKENIZE(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQTOKENIZE, 0);
	}
	public SYS_XQTREATAS(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQTREATAS, 0);
	}
	public SYS_XQ_UPKXML2SQL(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQ_UPKXML2SQL, 0);
	}
	public SYS_XQXFORM(): TerminalNode {
		return this.getToken(PlSqlParser.SYS_XQXFORM, 0);
	}
	public TABLE(): TerminalNode {
		return this.getToken(PlSqlParser.TABLE, 0);
	}
	public TABLE_LOOKUP_BY_NL(): TerminalNode {
		return this.getToken(PlSqlParser.TABLE_LOOKUP_BY_NL, 0);
	}
	public TABLES(): TerminalNode {
		return this.getToken(PlSqlParser.TABLES, 0);
	}
	public TABLESPACE(): TerminalNode {
		return this.getToken(PlSqlParser.TABLESPACE, 0);
	}
	public TABLESPACE_NO(): TerminalNode {
		return this.getToken(PlSqlParser.TABLESPACE_NO, 0);
	}
	public TABLE_STATS(): TerminalNode {
		return this.getToken(PlSqlParser.TABLE_STATS, 0);
	}
	public TABNO(): TerminalNode {
		return this.getToken(PlSqlParser.TABNO, 0);
	}
	public TANH(): TerminalNode {
		return this.getToken(PlSqlParser.TANH, 0);
	}
	public TAN(): TerminalNode {
		return this.getToken(PlSqlParser.TAN, 0);
	}
	public TBLORIDXPARTNUM(): TerminalNode {
		return this.getToken(PlSqlParser.TBLORIDXPARTNUM, 0);
	}
	public TEMPFILE(): TerminalNode {
		return this.getToken(PlSqlParser.TEMPFILE, 0);
	}
	public TEMPLATE(): TerminalNode {
		return this.getToken(PlSqlParser.TEMPLATE, 0);
	}
	public TEMPORARY(): TerminalNode {
		return this.getToken(PlSqlParser.TEMPORARY, 0);
	}
	public TEMP_TABLE(): TerminalNode {
		return this.getToken(PlSqlParser.TEMP_TABLE, 0);
	}
	public TEST(): TerminalNode {
		return this.getToken(PlSqlParser.TEST, 0);
	}
	public THAN(): TerminalNode {
		return this.getToken(PlSqlParser.THAN, 0);
	}
	public THE(): TerminalNode {
		return this.getToken(PlSqlParser.THE, 0);
	}
	public THEN(): TerminalNode {
		return this.getToken(PlSqlParser.THEN, 0);
	}
	public THREAD(): TerminalNode {
		return this.getToken(PlSqlParser.THREAD, 0);
	}
	public THROUGH(): TerminalNode {
		return this.getToken(PlSqlParser.THROUGH, 0);
	}
	public TIME(): TerminalNode {
		return this.getToken(PlSqlParser.TIME, 0);
	}
	public TIMEOUT(): TerminalNode {
		return this.getToken(PlSqlParser.TIMEOUT, 0);
	}
	public TIMES(): TerminalNode {
		return this.getToken(PlSqlParser.TIMES, 0);
	}
	public TIMESTAMP(): TerminalNode {
		return this.getToken(PlSqlParser.TIMESTAMP, 0);
	}
	public TIMEZONE_ABBR(): TerminalNode {
		return this.getToken(PlSqlParser.TIMEZONE_ABBR, 0);
	}
	public TIMEZONE_HOUR(): TerminalNode {
		return this.getToken(PlSqlParser.TIMEZONE_HOUR, 0);
	}
	public TIMEZONE_MINUTE(): TerminalNode {
		return this.getToken(PlSqlParser.TIMEZONE_MINUTE, 0);
	}
	public TIME_ZONE(): TerminalNode {
		return this.getToken(PlSqlParser.TIME_ZONE, 0);
	}
	public TIMEZONE_OFFSET(): TerminalNode {
		return this.getToken(PlSqlParser.TIMEZONE_OFFSET, 0);
	}
	public TIMEZONE_REGION(): TerminalNode {
		return this.getToken(PlSqlParser.TIMEZONE_REGION, 0);
	}
	public TIV_GB(): TerminalNode {
		return this.getToken(PlSqlParser.TIV_GB, 0);
	}
	public TIV_SSF(): TerminalNode {
		return this.getToken(PlSqlParser.TIV_SSF, 0);
	}
	public TO_BINARY_DOUBLE(): TerminalNode {
		return this.getToken(PlSqlParser.TO_BINARY_DOUBLE, 0);
	}
	public TO_BINARY_FLOAT(): TerminalNode {
		return this.getToken(PlSqlParser.TO_BINARY_FLOAT, 0);
	}
	public TO_BLOB(): TerminalNode {
		return this.getToken(PlSqlParser.TO_BLOB, 0);
	}
	public TO_CHAR(): TerminalNode {
		return this.getToken(PlSqlParser.TO_CHAR, 0);
	}
	public TO_CLOB(): TerminalNode {
		return this.getToken(PlSqlParser.TO_CLOB, 0);
	}
	public TO_DATE(): TerminalNode {
		return this.getToken(PlSqlParser.TO_DATE, 0);
	}
	public TO_DSINTERVAL(): TerminalNode {
		return this.getToken(PlSqlParser.TO_DSINTERVAL, 0);
	}
	public TO_LOB(): TerminalNode {
		return this.getToken(PlSqlParser.TO_LOB, 0);
	}
	public TO_MULTI_BYTE(): TerminalNode {
		return this.getToken(PlSqlParser.TO_MULTI_BYTE, 0);
	}
	public TO_NCHAR(): TerminalNode {
		return this.getToken(PlSqlParser.TO_NCHAR, 0);
	}
	public TO_NCLOB(): TerminalNode {
		return this.getToken(PlSqlParser.TO_NCLOB, 0);
	}
	public TO_NUMBER(): TerminalNode {
		return this.getToken(PlSqlParser.TO_NUMBER, 0);
	}
	public TOPLEVEL(): TerminalNode {
		return this.getToken(PlSqlParser.TOPLEVEL, 0);
	}
	public TO_SINGLE_BYTE(): TerminalNode {
		return this.getToken(PlSqlParser.TO_SINGLE_BYTE, 0);
	}
	public TO_TIME(): TerminalNode {
		return this.getToken(PlSqlParser.TO_TIME, 0);
	}
	public TO_TIMESTAMP(): TerminalNode {
		return this.getToken(PlSqlParser.TO_TIMESTAMP, 0);
	}
	public TO_TIMESTAMP_TZ(): TerminalNode {
		return this.getToken(PlSqlParser.TO_TIMESTAMP_TZ, 0);
	}
	public TO_TIME_TZ(): TerminalNode {
		return this.getToken(PlSqlParser.TO_TIME_TZ, 0);
	}
	public TO_YMINTERVAL(): TerminalNode {
		return this.getToken(PlSqlParser.TO_YMINTERVAL, 0);
	}
	public TRACE(): TerminalNode {
		return this.getToken(PlSqlParser.TRACE, 0);
	}
	public TRACING(): TerminalNode {
		return this.getToken(PlSqlParser.TRACING, 0);
	}
	public TRACKING(): TerminalNode {
		return this.getToken(PlSqlParser.TRACKING, 0);
	}
	public TRAILING(): TerminalNode {
		return this.getToken(PlSqlParser.TRAILING, 0);
	}
	public TRANSACTION(): TerminalNode {
		return this.getToken(PlSqlParser.TRANSACTION, 0);
	}
	public TRANSFORM_DISTINCT_AGG(): TerminalNode {
		return this.getToken(PlSqlParser.TRANSFORM_DISTINCT_AGG, 0);
	}
	public TRANSITIONAL(): TerminalNode {
		return this.getToken(PlSqlParser.TRANSITIONAL, 0);
	}
	public TRANSITION(): TerminalNode {
		return this.getToken(PlSqlParser.TRANSITION, 0);
	}
	public TRANSLATE(): TerminalNode {
		return this.getToken(PlSqlParser.TRANSLATE, 0);
	}
	public TREAT(): TerminalNode {
		return this.getToken(PlSqlParser.TREAT, 0);
	}
	public TRIGGERS(): TerminalNode {
		return this.getToken(PlSqlParser.TRIGGERS, 0);
	}
	public TRIM(): TerminalNode {
		return this.getToken(PlSqlParser.TRIM, 0);
	}
	public TRUE(): TerminalNode {
		return this.getToken(PlSqlParser.TRUE, 0);
	}
	public TRUNCATE(): TerminalNode {
		return this.getToken(PlSqlParser.TRUNCATE, 0);
	}
	public TRUNC(): TerminalNode {
		return this.getToken(PlSqlParser.TRUNC, 0);
	}
	public TRUSTED(): TerminalNode {
		return this.getToken(PlSqlParser.TRUSTED, 0);
	}
	public TUNING(): TerminalNode {
		return this.getToken(PlSqlParser.TUNING, 0);
	}
	public TX(): TerminalNode {
		return this.getToken(PlSqlParser.TX, 0);
	}
	public TYPE(): TerminalNode {
		return this.getToken(PlSqlParser.TYPE, 0);
	}
	public TYPES(): TerminalNode {
		return this.getToken(PlSqlParser.TYPES, 0);
	}
	public TZ_OFFSET(): TerminalNode {
		return this.getToken(PlSqlParser.TZ_OFFSET, 0);
	}
	public UB2(): TerminalNode {
		return this.getToken(PlSqlParser.UB2, 0);
	}
	public UBA(): TerminalNode {
		return this.getToken(PlSqlParser.UBA, 0);
	}
	public UID(): TerminalNode {
		return this.getToken(PlSqlParser.UID, 0);
	}
	public UNARCHIVED(): TerminalNode {
		return this.getToken(PlSqlParser.UNARCHIVED, 0);
	}
	public UNBOUNDED(): TerminalNode {
		return this.getToken(PlSqlParser.UNBOUNDED, 0);
	}
	public UNBOUND(): TerminalNode {
		return this.getToken(PlSqlParser.UNBOUND, 0);
	}
	public UNDER(): TerminalNode {
		return this.getToken(PlSqlParser.UNDER, 0);
	}
	public UNDO(): TerminalNode {
		return this.getToken(PlSqlParser.UNDO, 0);
	}
	public UNDROP(): TerminalNode {
		return this.getToken(PlSqlParser.UNDROP, 0);
	}
	public UNIFORM(): TerminalNode {
		return this.getToken(PlSqlParser.UNIFORM, 0);
	}
	public UNISTR(): TerminalNode {
		return this.getToken(PlSqlParser.UNISTR, 0);
	}
	public UNLIMITED(): TerminalNode {
		return this.getToken(PlSqlParser.UNLIMITED, 0);
	}
	public UNLOAD(): TerminalNode {
		return this.getToken(PlSqlParser.UNLOAD, 0);
	}
	public UNLOCK(): TerminalNode {
		return this.getToken(PlSqlParser.UNLOCK, 0);
	}
	public UNNEST_INNERJ_DISTINCT_VIEW(): TerminalNode {
		return this.getToken(PlSqlParser.UNNEST_INNERJ_DISTINCT_VIEW, 0);
	}
	public UNNEST(): TerminalNode {
		return this.getToken(PlSqlParser.UNNEST, 0);
	}
	public UNNEST_NOSEMIJ_NODISTINCTVIEW(): TerminalNode {
		return this.getToken(PlSqlParser.UNNEST_NOSEMIJ_NODISTINCTVIEW, 0);
	}
	public UNNEST_SEMIJ_VIEW(): TerminalNode {
		return this.getToken(PlSqlParser.UNNEST_SEMIJ_VIEW, 0);
	}
	public UNPACKED(): TerminalNode {
		return this.getToken(PlSqlParser.UNPACKED, 0);
	}
	public UNPIVOT(): TerminalNode {
		return this.getToken(PlSqlParser.UNPIVOT, 0);
	}
	public UNPROTECTED(): TerminalNode {
		return this.getToken(PlSqlParser.UNPROTECTED, 0);
	}
	public UNQUIESCE(): TerminalNode {
		return this.getToken(PlSqlParser.UNQUIESCE, 0);
	}
	public UNRECOVERABLE(): TerminalNode {
		return this.getToken(PlSqlParser.UNRECOVERABLE, 0);
	}
	public UNRESTRICTED(): TerminalNode {
		return this.getToken(PlSqlParser.UNRESTRICTED, 0);
	}
	public UNTIL(): TerminalNode {
		return this.getToken(PlSqlParser.UNTIL, 0);
	}
	public UNUSABLE(): TerminalNode {
		return this.getToken(PlSqlParser.UNUSABLE, 0);
	}
	public UNUSED(): TerminalNode {
		return this.getToken(PlSqlParser.UNUSED, 0);
	}
	public UPDATABLE(): TerminalNode {
		return this.getToken(PlSqlParser.UPDATABLE, 0);
	}
	public UPDATED(): TerminalNode {
		return this.getToken(PlSqlParser.UPDATED, 0);
	}
	public UPDATEXML(): TerminalNode {
		return this.getToken(PlSqlParser.UPDATEXML, 0);
	}
	public UPD_INDEXES(): TerminalNode {
		return this.getToken(PlSqlParser.UPD_INDEXES, 0);
	}
	public UPD_JOININDEX(): TerminalNode {
		return this.getToken(PlSqlParser.UPD_JOININDEX, 0);
	}
	public UPGRADE(): TerminalNode {
		return this.getToken(PlSqlParser.UPGRADE, 0);
	}
	public UPPER(): TerminalNode {
		return this.getToken(PlSqlParser.UPPER, 0);
	}
	public UPSERT(): TerminalNode {
		return this.getToken(PlSqlParser.UPSERT, 0);
	}
	public UROWID(): TerminalNode {
		return this.getToken(PlSqlParser.UROWID, 0);
	}
	public USAGE(): TerminalNode {
		return this.getToken(PlSqlParser.USAGE, 0);
	}
	public USE_ANTI(): TerminalNode {
		return this.getToken(PlSqlParser.USE_ANTI, 0);
	}
	public USE_CONCAT(): TerminalNode {
		return this.getToken(PlSqlParser.USE_CONCAT, 0);
	}
	public USE_HASH_AGGREGATION(): TerminalNode {
		return this.getToken(PlSqlParser.USE_HASH_AGGREGATION, 0);
	}
	public USE_HASH_GBY_FOR_PUSHDOWN(): TerminalNode {
		return this.getToken(PlSqlParser.USE_HASH_GBY_FOR_PUSHDOWN, 0);
	}
	public USE_HASH(): TerminalNode {
		return this.getToken(PlSqlParser.USE_HASH, 0);
	}
	public USE_INVISIBLE_INDEXES(): TerminalNode {
		return this.getToken(PlSqlParser.USE_INVISIBLE_INDEXES, 0);
	}
	public USE_MERGE_CARTESIAN(): TerminalNode {
		return this.getToken(PlSqlParser.USE_MERGE_CARTESIAN, 0);
	}
	public USE_MERGE(): TerminalNode {
		return this.getToken(PlSqlParser.USE_MERGE, 0);
	}
	public USE(): TerminalNode {
		return this.getToken(PlSqlParser.USE, 0);
	}
	public USE_NL(): TerminalNode {
		return this.getToken(PlSqlParser.USE_NL, 0);
	}
	public USE_NL_WITH_INDEX(): TerminalNode {
		return this.getToken(PlSqlParser.USE_NL_WITH_INDEX, 0);
	}
	public USE_PRIVATE_OUTLINES(): TerminalNode {
		return this.getToken(PlSqlParser.USE_PRIVATE_OUTLINES, 0);
	}
	public USER_DEFINED(): TerminalNode {
		return this.getToken(PlSqlParser.USER_DEFINED, 0);
	}
	public USERENV(): TerminalNode {
		return this.getToken(PlSqlParser.USERENV, 0);
	}
	public USERGROUP(): TerminalNode {
		return this.getToken(PlSqlParser.USERGROUP, 0);
	}
	public USER(): TerminalNode {
		return this.getToken(PlSqlParser.USER, 0);
	}
	public USER_RECYCLEBIN(): TerminalNode {
		return this.getToken(PlSqlParser.USER_RECYCLEBIN, 0);
	}
	public USERS(): TerminalNode {
		return this.getToken(PlSqlParser.USERS, 0);
	}
	public USE_SEMI(): TerminalNode {
		return this.getToken(PlSqlParser.USE_SEMI, 0);
	}
	public USE_STORED_OUTLINES(): TerminalNode {
		return this.getToken(PlSqlParser.USE_STORED_OUTLINES, 0);
	}
	public USE_TTT_FOR_GSETS(): TerminalNode {
		return this.getToken(PlSqlParser.USE_TTT_FOR_GSETS, 0);
	}
	public USE_WEAK_NAME_RESL(): TerminalNode {
		return this.getToken(PlSqlParser.USE_WEAK_NAME_RESL, 0);
	}
	public USING(): TerminalNode {
		return this.getToken(PlSqlParser.USING, 0);
	}
	public VALIDATE(): TerminalNode {
		return this.getToken(PlSqlParser.VALIDATE, 0);
	}
	public VALIDATION(): TerminalNode {
		return this.getToken(PlSqlParser.VALIDATION, 0);
	}
	public VALUE(): TerminalNode {
		return this.getToken(PlSqlParser.VALUE, 0);
	}
	public VARIANCE(): TerminalNode {
		return this.getToken(PlSqlParser.VARIANCE, 0);
	}
	public VAR_POP(): TerminalNode {
		return this.getToken(PlSqlParser.VAR_POP, 0);
	}
	public VARRAY(): TerminalNode {
		return this.getToken(PlSqlParser.VARRAY, 0);
	}
	public VARRAYS(): TerminalNode {
		return this.getToken(PlSqlParser.VARRAYS, 0);
	}
	public VAR_SAMP(): TerminalNode {
		return this.getToken(PlSqlParser.VAR_SAMP, 0);
	}
	public VARYING(): TerminalNode {
		return this.getToken(PlSqlParser.VARYING, 0);
	}
	public VECTOR_READ(): TerminalNode {
		return this.getToken(PlSqlParser.VECTOR_READ, 0);
	}
	public VECTOR_READ_TRACE(): TerminalNode {
		return this.getToken(PlSqlParser.VECTOR_READ_TRACE, 0);
	}
	public VERIFY(): TerminalNode {
		return this.getToken(PlSqlParser.VERIFY, 0);
	}
	public VERSIONING(): TerminalNode {
		return this.getToken(PlSqlParser.VERSIONING, 0);
	}
	public VERSION(): TerminalNode {
		return this.getToken(PlSqlParser.VERSION, 0);
	}
	public VERSIONS_ENDSCN(): TerminalNode {
		return this.getToken(PlSqlParser.VERSIONS_ENDSCN, 0);
	}
	public VERSIONS_ENDTIME(): TerminalNode {
		return this.getToken(PlSqlParser.VERSIONS_ENDTIME, 0);
	}
	public VERSIONS(): TerminalNode {
		return this.getToken(PlSqlParser.VERSIONS, 0);
	}
	public VERSIONS_OPERATION(): TerminalNode {
		return this.getToken(PlSqlParser.VERSIONS_OPERATION, 0);
	}
	public VERSIONS_STARTSCN(): TerminalNode {
		return this.getToken(PlSqlParser.VERSIONS_STARTSCN, 0);
	}
	public VERSIONS_STARTTIME(): TerminalNode {
		return this.getToken(PlSqlParser.VERSIONS_STARTTIME, 0);
	}
	public VERSIONS_XID(): TerminalNode {
		return this.getToken(PlSqlParser.VERSIONS_XID, 0);
	}
	public VIRTUAL(): TerminalNode {
		return this.getToken(PlSqlParser.VIRTUAL, 0);
	}
	public VISIBLE(): TerminalNode {
		return this.getToken(PlSqlParser.VISIBLE, 0);
	}
	public VOLUME(): TerminalNode {
		return this.getToken(PlSqlParser.VOLUME, 0);
	}
	public VSIZE(): TerminalNode {
		return this.getToken(PlSqlParser.VSIZE, 0);
	}
	public WAIT(): TerminalNode {
		return this.getToken(PlSqlParser.WAIT, 0);
	}
	public WALLET(): TerminalNode {
		return this.getToken(PlSqlParser.WALLET, 0);
	}
	public WELLFORMED(): TerminalNode {
		return this.getToken(PlSqlParser.WELLFORMED, 0);
	}
	public WHENEVER(): TerminalNode {
		return this.getToken(PlSqlParser.WHENEVER, 0);
	}
	public WHEN(): TerminalNode {
		return this.getToken(PlSqlParser.WHEN, 0);
	}
	public WHITESPACE(): TerminalNode {
		return this.getToken(PlSqlParser.WHITESPACE, 0);
	}
	public WIDTH_BUCKET(): TerminalNode {
		return this.getToken(PlSqlParser.WIDTH_BUCKET, 0);
	}
	public WITHIN(): TerminalNode {
		return this.getToken(PlSqlParser.WITHIN, 0);
	}
	public WITHOUT(): TerminalNode {
		return this.getToken(PlSqlParser.WITHOUT, 0);
	}
	public WORK(): TerminalNode {
		return this.getToken(PlSqlParser.WORK, 0);
	}
	public WRAPPED(): TerminalNode {
		return this.getToken(PlSqlParser.WRAPPED, 0);
	}
	public WRITE(): TerminalNode {
		return this.getToken(PlSqlParser.WRITE, 0);
	}
	public XDB_FASTPATH_INSERT(): TerminalNode {
		return this.getToken(PlSqlParser.XDB_FASTPATH_INSERT, 0);
	}
	public X_DYN_PRUNE(): TerminalNode {
		return this.getToken(PlSqlParser.X_DYN_PRUNE, 0);
	}
	public XID(): TerminalNode {
		return this.getToken(PlSqlParser.XID, 0);
	}
	public XML2OBJECT(): TerminalNode {
		return this.getToken(PlSqlParser.XML2OBJECT, 0);
	}
	public XMLATTRIBUTES(): TerminalNode {
		return this.getToken(PlSqlParser.XMLATTRIBUTES, 0);
	}
	public XMLCAST(): TerminalNode {
		return this.getToken(PlSqlParser.XMLCAST, 0);
	}
	public XMLCDATA(): TerminalNode {
		return this.getToken(PlSqlParser.XMLCDATA, 0);
	}
	public XMLCOLATTVAL(): TerminalNode {
		return this.getToken(PlSqlParser.XMLCOLATTVAL, 0);
	}
	public XMLCOMMENT(): TerminalNode {
		return this.getToken(PlSqlParser.XMLCOMMENT, 0);
	}
	public XMLCONCAT(): TerminalNode {
		return this.getToken(PlSqlParser.XMLCONCAT, 0);
	}
	public XMLDIFF(): TerminalNode {
		return this.getToken(PlSqlParser.XMLDIFF, 0);
	}
	public XML_DML_RWT_STMT(): TerminalNode {
		return this.getToken(PlSqlParser.XML_DML_RWT_STMT, 0);
	}
	public XMLELEMENT(): TerminalNode {
		return this.getToken(PlSqlParser.XMLELEMENT, 0);
	}
	public XMLEXISTS2(): TerminalNode {
		return this.getToken(PlSqlParser.XMLEXISTS2, 0);
	}
	public XMLEXISTS(): TerminalNode {
		return this.getToken(PlSqlParser.XMLEXISTS, 0);
	}
	public XMLFOREST(): TerminalNode {
		return this.getToken(PlSqlParser.XMLFOREST, 0);
	}
	public XMLINDEX_REWRITE_IN_SELECT(): TerminalNode {
		return this.getToken(PlSqlParser.XMLINDEX_REWRITE_IN_SELECT, 0);
	}
	public XMLINDEX_REWRITE(): TerminalNode {
		return this.getToken(PlSqlParser.XMLINDEX_REWRITE, 0);
	}
	public XMLINDEX_SEL_IDX_TBL(): TerminalNode {
		return this.getToken(PlSqlParser.XMLINDEX_SEL_IDX_TBL, 0);
	}
	public XMLISNODE(): TerminalNode {
		return this.getToken(PlSqlParser.XMLISNODE, 0);
	}
	public XMLISVALID(): TerminalNode {
		return this.getToken(PlSqlParser.XMLISVALID, 0);
	}
	public XML(): TerminalNode {
		return this.getToken(PlSqlParser.XML, 0);
	}
	public XMLNAMESPACES(): TerminalNode {
		return this.getToken(PlSqlParser.XMLNAMESPACES, 0);
	}
	public XMLPARSE(): TerminalNode {
		return this.getToken(PlSqlParser.XMLPARSE, 0);
	}
	public XMLPATCH(): TerminalNode {
		return this.getToken(PlSqlParser.XMLPATCH, 0);
	}
	public XMLPI(): TerminalNode {
		return this.getToken(PlSqlParser.XMLPI, 0);
	}
	public XMLQUERY(): TerminalNode {
		return this.getToken(PlSqlParser.XMLQUERY, 0);
	}
	public XMLQUERYVAL(): TerminalNode {
		return this.getToken(PlSqlParser.XMLQUERYVAL, 0);
	}
	public XMLROOT(): TerminalNode {
		return this.getToken(PlSqlParser.XMLROOT, 0);
	}
	public XMLSCHEMA(): TerminalNode {
		return this.getToken(PlSqlParser.XMLSCHEMA, 0);
	}
	public XMLSERIALIZE(): TerminalNode {
		return this.getToken(PlSqlParser.XMLSERIALIZE, 0);
	}
	public XMLTABLE(): TerminalNode {
		return this.getToken(PlSqlParser.XMLTABLE, 0);
	}
	public XMLTRANSFORMBLOB(): TerminalNode {
		return this.getToken(PlSqlParser.XMLTRANSFORMBLOB, 0);
	}
	public XMLTRANSFORM(): TerminalNode {
		return this.getToken(PlSqlParser.XMLTRANSFORM, 0);
	}
	public XMLTYPE(): TerminalNode {
		return this.getToken(PlSqlParser.XMLTYPE, 0);
	}
	public XPATHTABLE(): TerminalNode {
		return this.getToken(PlSqlParser.XPATHTABLE, 0);
	}
	public XS_SYS_CONTEXT(): TerminalNode {
		return this.getToken(PlSqlParser.XS_SYS_CONTEXT, 0);
	}
	public YEAR(): TerminalNode {
		return this.getToken(PlSqlParser.YEAR, 0);
	}
	public YES(): TerminalNode {
		return this.getToken(PlSqlParser.YES, 0);
	}
	public ZONE(): TerminalNode {
		return this.getToken(PlSqlParser.ZONE, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_non_reserved_keywords_pre12c;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterNon_reserved_keywords_pre12c) {
	 		listener.enterNon_reserved_keywords_pre12c(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitNon_reserved_keywords_pre12c) {
	 		listener.exitNon_reserved_keywords_pre12c(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitNon_reserved_keywords_pre12c) {
			return visitor.visitNon_reserved_keywords_pre12c(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class String_function_nameContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public CHR(): TerminalNode {
		return this.getToken(PlSqlParser.CHR, 0);
	}
	public DECODE(): TerminalNode {
		return this.getToken(PlSqlParser.DECODE, 0);
	}
	public SUBSTR(): TerminalNode {
		return this.getToken(PlSqlParser.SUBSTR, 0);
	}
	public TO_CHAR(): TerminalNode {
		return this.getToken(PlSqlParser.TO_CHAR, 0);
	}
	public TRIM(): TerminalNode {
		return this.getToken(PlSqlParser.TRIM, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_string_function_name;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterString_function_name) {
	 		listener.enterString_function_name(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitString_function_name) {
	 		listener.exitString_function_name(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitString_function_name) {
			return visitor.visitString_function_name(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}


export class Numeric_function_nameContext extends ParserRuleContext {
	constructor(parser?: PlSqlParser, parent?: ParserRuleContext, invokingState?: number) {
		super(parent, invokingState);
    	this.parser = parser;
	}
	public AVG(): TerminalNode {
		return this.getToken(PlSqlParser.AVG, 0);
	}
	public COUNT(): TerminalNode {
		return this.getToken(PlSqlParser.COUNT, 0);
	}
	public NVL(): TerminalNode {
		return this.getToken(PlSqlParser.NVL, 0);
	}
	public ROUND(): TerminalNode {
		return this.getToken(PlSqlParser.ROUND, 0);
	}
	public SUM(): TerminalNode {
		return this.getToken(PlSqlParser.SUM, 0);
	}
    public get ruleIndex(): number {
    	return PlSqlParser.RULE_numeric_function_name;
	}
	public enterRule(listener: PlSqlParserListener): void {
	    if(listener.enterNumeric_function_name) {
	 		listener.enterNumeric_function_name(this);
		}
	}
	public exitRule(listener: PlSqlParserListener): void {
	    if(listener.exitNumeric_function_name) {
	 		listener.exitNumeric_function_name(this);
		}
	}
	// @Override
	public accept<Result>(visitor: PlSqlParserVisitor<Result>): Result {
		if (visitor.visitNumeric_function_name) {
			return visitor.visitNumeric_function_name(this);
		} else {
			return visitor.visitChildren(this);
		}
	}
}
