diff --git a/cql/CqlLexer.g4 b/cql/CqlLexer.g4 index 377fdbf..9bf49a6 100644 --- a/cql/CqlLexer.g4 +++ b/cql/CqlLexer.g4 @@ -174,8 +174,25 @@ K_TIMEUUID : 'TIMEUUID'; K_TIME : 'TIME'; K_TINYINT : 'TINYINT'; K_TUPLE : 'TUPLE'; +K_VECTOR : 'VECTOR'; +K_DURATION : 'DURATION'; +K_DEFAULT : 'DEFAULT'; +K_UNSET : 'UNSET'; +K_SAI : 'SAI'; +K_STORAGEATTACHEDINDEX : 'STORAGEATTACHEDINDEX'; +K_ANN : 'ANN'; K_VARCHAR : 'VARCHAR'; K_VARINT : 'VARINT'; +K_NOW : 'NOW'; +K_FROMJSON : 'FROMJSON'; +K_TOJSON : 'TOJSON'; +K_MINTIMEUUID : 'MINTIMEUUID'; +K_MAXTIMEUUID : 'MAXTIMEUUID'; +K_DATETIMENOW : 'DATETIMENOW'; +K_CURRENTTIMESTAMP : 'CURRENTTIMESTAMP'; +K_CURRENTDATE : 'CURRENTDATE'; +K_CURRENTTIME : 'CURRENTTIME'; +K_CURRENTTIMEUUID : 'CURRENTTIMEUUID'; // Literals diff --git a/cql/CqlParser.g4 b/cql/CqlParser.g4 index 66c8110..ca74d0b 100644 --- a/cql/CqlParser.g4 +++ b/cql/CqlParser.g4 @@ -110,7 +110,7 @@ priviledge : (kwAll | kwAllPermissions) | kwAlter | kwAuthorize - | kwDescibe + | kwDescribe | kwExecute | kwCreate | kwDrop @@ -528,7 +528,17 @@ truncate ; createIndex - : kwCreate kwIndex ifNotExist? indexName? kwOn (keyspace DOT)? table syntaxBracketLr indexColumnSpec syntaxBracketRr + : kwCreate kwCustom? kwIndex ifNotExist? indexName? kwOn (keyspace DOT)? table syntaxBracketLr indexColumnSpec syntaxBracketRr (kwUsing indexClass)? (kwWith indexOptions)? + ; + +indexClass + : stringLiteral + | K_SAI + | K_STORAGEATTACHEDINDEX + ; + +indexOptions + : optionHash // Use optionHash for index options ; indexName @@ -538,19 +548,9 @@ indexName indexColumnSpec : column - | indexKeysSpec - | indexEntriesSSpec | indexFullSpec ; -indexKeysSpec - : kwKeys syntaxBracketLr OBJECT_NAME syntaxBracketRr - ; - -indexEntriesSSpec - : kwEntries syntaxBracketLr OBJECT_NAME syntaxBracketRr - ; - indexFullSpec : kwFull syntaxBracketLr OBJECT_NAME syntaxBracketRr ; @@ -655,7 +655,11 @@ ifExist insertValuesSpec : kwValues '(' expressionList ')' - | kwJson constant + | kwJson constant jsonDefaultUnset? + ; + +jsonDefaultUnset + : kwDefault kwUnset ; insertColumnSpec @@ -706,6 +710,15 @@ orderSpec orderSpecElement : OBJECT_NAME (kwAsc | kwDesc)? + | OBJECT_NAME kwAnn kwOf vectorLiteral (kwLimit DECIMAL_LITERAL)? + ; + +vectorLiteral + : '[' constantList ']' + ; + +constantList + : constant (syntaxComma constant)* ; whereSpec @@ -768,6 +781,16 @@ functionCall : OBJECT_NAME '(' STAR ')' | OBJECT_NAME '(' functionArgs? ')' | K_UUID '(' ')' + | K_NOW '(' ')' + | K_FROMJSON '(' functionArgs ')' + | K_TOJSON '(' functionArgs ')' + | K_MINTIMEUUID '(' functionArgs ')' + | K_MAXTIMEUUID '(' functionArgs ')' + | K_DATETIMENOW '(' ')' + | K_CURRENTTIMESTAMP '(' ')' + | K_CURRENTDATE '(' ')' + | K_CURRENTTIME '(' ')' + | K_CURRENTTIMEUUID '(' ')' ; functionArgs @@ -854,10 +877,13 @@ dataTypeName | K_VARINT | K_TIMESTAMP | K_UUID + | K_VECTOR + | K_DURATION ; dataTypeDefinition : syntaxBracketLa dataTypeName (syntaxComma dataTypeName)* syntaxBracketRa + | syntaxBracketLa dataTypeName syntaxComma DECIMAL_LITERAL syntaxBracketRa // For VECTOR ; orderDirection @@ -994,6 +1020,22 @@ kwCreate : K_CREATE ; +kwCustom + : K_CUSTOM + ; + +kwDefault + : K_DEFAULT + ; + +kwUnset + : K_UNSET + ; + +kwAnn + : K_ANN + ; + kwDelete : K_DELETE ; @@ -1002,7 +1044,7 @@ kwDesc : K_DESC ; -kwDescibe +kwDescribe : K_DESCRIBE ; diff --git a/cql/cql_lexer.go b/cql/cql_lexer.go index ede8dcf..67bf734 100644 --- a/cql/cql_lexer.go +++ b/cql/cql_lexer.go @@ -67,7 +67,11 @@ func cqllexerLexerInit() { "'WITH'", "'WRITETIME'", "'ASCII'", "'BIGINT'", "'BLOB'", "'BOOLEAN'", "'COUNTER'", "'DATE'", "'DECIMAL'", "'DOUBLE'", "'FLOAT'", "'FROZEN'", "'INET'", "'INT'", "'LIST'", "'MAP'", "'SMALLINT'", "'TEXT'", "'TIMEUUID'", - "'TIME'", "'TINYINT'", "'TUPLE'", "'VARCHAR'", "'VARINT'", + "'TIME'", "'TINYINT'", "'TUPLE'", "'VECTOR'", "'DURATION'", "'DEFAULT'", + "'UNSET'", "'SAI'", "'STORAGEATTACHEDINDEX'", "'ANN'", "'VARCHAR'", + "'VARINT'", "'NOW'", "'FROMJSON'", "'TOJSON'", "'MINTIMEUUID'", "'MAXTIMEUUID'", + "'DATETIMENOW'", "'CURRENTTIMESTAMP'", "'CURRENTDATE'", "'CURRENTTIME'", + "'CURRENTTIMEUUID'", } staticData.SymbolicNames = []string{ "", "LR_BRACKET", "RR_BRACKET", "LC_BRACKET", "RC_BRACKET", "LS_BRACKET", @@ -95,10 +99,14 @@ func cqllexerLexerInit() { "K_VIEW", "K_WHERE", "K_WITH", "K_WRITETIME", "K_ASCII", "K_BIGINT", "K_BLOB", "K_BOOLEAN", "K_COUNTER", "K_DATE", "K_DECIMAL", "K_DOUBLE", "K_FLOAT", "K_FROZEN", "K_INET", "K_INT", "K_LIST", "K_MAP", "K_SMALLINT", - "K_TEXT", "K_TIMEUUID", "K_TIME", "K_TINYINT", "K_TUPLE", "K_VARCHAR", - "K_VARINT", "CODE_BLOCK", "STRING_LITERAL", "DECIMAL_LITERAL", "FLOAT_LITERAL", - "HEXADECIMAL_LITERAL", "REAL_LITERAL", "OBJECT_NAME", "UUID", "SPACE", - "SPEC_MYSQL_COMMENT", "COMMENT_INPUT", "LINE_COMMENT", + "K_TEXT", "K_TIMEUUID", "K_TIME", "K_TINYINT", "K_TUPLE", "K_VECTOR", + "K_DURATION", "K_DEFAULT", "K_UNSET", "K_SAI", "K_STORAGEATTACHEDINDEX", + "K_ANN", "K_VARCHAR", "K_VARINT", "K_NOW", "K_FROMJSON", "K_TOJSON", + "K_MINTIMEUUID", "K_MAXTIMEUUID", "K_DATETIMENOW", "K_CURRENTTIMESTAMP", + "K_CURRENTDATE", "K_CURRENTTIME", "K_CURRENTTIMEUUID", "CODE_BLOCK", + "STRING_LITERAL", "DECIMAL_LITERAL", "FLOAT_LITERAL", "HEXADECIMAL_LITERAL", + "REAL_LITERAL", "OBJECT_NAME", "UUID", "SPACE", "SPEC_MYSQL_COMMENT", + "COMMENT_INPUT", "LINE_COMMENT", } staticData.RuleNames = []string{ "LR_BRACKET", "RR_BRACKET", "LC_BRACKET", "RC_BRACKET", "LS_BRACKET", @@ -126,15 +134,19 @@ func cqllexerLexerInit() { "K_VIEW", "K_WHERE", "K_WITH", "K_WRITETIME", "K_ASCII", "K_BIGINT", "K_BLOB", "K_BOOLEAN", "K_COUNTER", "K_DATE", "K_DECIMAL", "K_DOUBLE", "K_FLOAT", "K_FROZEN", "K_INET", "K_INT", "K_LIST", "K_MAP", "K_SMALLINT", - "K_TEXT", "K_TIMEUUID", "K_TIME", "K_TINYINT", "K_TUPLE", "K_VARCHAR", - "K_VARINT", "CODE_BLOCK", "STRING_LITERAL", "DECIMAL_LITERAL", "FLOAT_LITERAL", - "HEXADECIMAL_LITERAL", "REAL_LITERAL", "OBJECT_NAME", "UUID", "SPACE", - "SPEC_MYSQL_COMMENT", "COMMENT_INPUT", "LINE_COMMENT", "HEX_4DIGIT", - "HEX_DIGIT", "DEC_DIGIT", "EXPONENT_NUM_PART", + "K_TEXT", "K_TIMEUUID", "K_TIME", "K_TINYINT", "K_TUPLE", "K_VECTOR", + "K_DURATION", "K_DEFAULT", "K_UNSET", "K_SAI", "K_STORAGEATTACHEDINDEX", + "K_ANN", "K_VARCHAR", "K_VARINT", "K_NOW", "K_FROMJSON", "K_TOJSON", + "K_MINTIMEUUID", "K_MAXTIMEUUID", "K_DATETIMENOW", "K_CURRENTTIMESTAMP", + "K_CURRENTDATE", "K_CURRENTTIME", "K_CURRENTTIMEUUID", "CODE_BLOCK", + "STRING_LITERAL", "DECIMAL_LITERAL", "FLOAT_LITERAL", "HEXADECIMAL_LITERAL", + "REAL_LITERAL", "OBJECT_NAME", "UUID", "SPACE", "SPEC_MYSQL_COMMENT", + "COMMENT_INPUT", "LINE_COMMENT", "HEX_4DIGIT", "HEX_DIGIT", "DEC_DIGIT", + "EXPONENT_NUM_PART", } staticData.PredictionContextCache = antlr.NewPredictionContextCache() staticData.serializedATN = []int32{ - 4, 0, 175, 1588, 6, -1, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, + 4, 0, 192, 1794, 6, -1, 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, @@ -170,684 +182,777 @@ func cqllexerLexerInit() { 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, 1, 0, 1, 0, 1, 1, 1, 1, - 1, 2, 1, 2, 1, 3, 1, 3, 1, 4, 1, 4, 1, 5, 1, 5, 1, 6, 1, 6, 1, 7, 1, 7, - 1, 8, 1, 8, 1, 9, 1, 9, 1, 10, 1, 10, 1, 11, 1, 11, 1, 12, 1, 12, 1, 13, - 1, 13, 1, 14, 1, 14, 1, 14, 1, 15, 1, 15, 1, 16, 1, 16, 1, 17, 1, 17, 1, - 18, 1, 18, 1, 19, 1, 19, 1, 20, 1, 20, 1, 21, 1, 21, 1, 21, 1, 22, 1, 22, - 1, 22, 1, 23, 1, 23, 1, 23, 1, 23, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, - 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 25, 1, 25, 1, 25, 1, 25, 1, 26, 1, 26, - 1, 26, 1, 26, 1, 26, 1, 26, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, - 28, 1, 28, 1, 28, 1, 28, 1, 29, 1, 29, 1, 29, 1, 29, 1, 30, 1, 30, 1, 30, - 1, 30, 1, 30, 1, 30, 1, 31, 1, 31, 1, 31, 1, 32, 1, 32, 1, 32, 1, 32, 1, - 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 34, - 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, - 35, 1, 36, 1, 36, 1, 36, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, - 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, - 38, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, - 1, 39, 1, 39, 1, 39, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, - 40, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, - 1, 41, 1, 41, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, - 42, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 44, 1, 44, 1, 44, - 1, 44, 1, 44, 1, 44, 1, 44, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, - 45, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, - 1, 47, 1, 47, 1, 47, 1, 47, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, - 48, 1, 48, 1, 48, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 50, 1, 50, 1, 50, + 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, 1, 0, 1, 0, 1, 1, 1, 1, 1, 2, 1, 2, 1, + 3, 1, 3, 1, 4, 1, 4, 1, 5, 1, 5, 1, 6, 1, 6, 1, 7, 1, 7, 1, 8, 1, 8, 1, + 9, 1, 9, 1, 10, 1, 10, 1, 11, 1, 11, 1, 12, 1, 12, 1, 13, 1, 13, 1, 14, + 1, 14, 1, 14, 1, 15, 1, 15, 1, 16, 1, 16, 1, 17, 1, 17, 1, 18, 1, 18, 1, + 19, 1, 19, 1, 20, 1, 20, 1, 21, 1, 21, 1, 21, 1, 22, 1, 22, 1, 22, 1, 23, + 1, 23, 1, 23, 1, 23, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, + 24, 1, 24, 1, 24, 1, 25, 1, 25, 1, 25, 1, 25, 1, 26, 1, 26, 1, 26, 1, 26, + 1, 26, 1, 26, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 28, 1, 28, 1, + 28, 1, 28, 1, 29, 1, 29, 1, 29, 1, 29, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, + 1, 30, 1, 31, 1, 31, 1, 31, 1, 32, 1, 32, 1, 32, 1, 32, 1, 33, 1, 33, 1, + 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 34, 1, 34, 1, 34, + 1, 34, 1, 34, 1, 34, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 35, 1, 36, 1, + 36, 1, 36, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 38, 1, 38, + 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 39, 1, + 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, + 1, 39, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 41, 1, + 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, + 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 43, 1, + 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, + 1, 44, 1, 44, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 46, 1, + 46, 1, 46, 1, 46, 1, 46, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, + 1, 47, 1, 47, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, + 48, 1, 49, 1, 49, 1, 49, 1, 49, 1, 49, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, - 50, 1, 50, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, - 1, 51, 1, 51, 1, 51, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, - 52, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 54, 1, 54, - 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, - 55, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, - 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, - 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 60, - 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 61, 1, 61, 1, - 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 62, 1, 62, 1, 62, - 1, 62, 1, 62, 1, 62, 1, 63, 1, 63, 1, 63, 1, 64, 1, 64, 1, 64, 1, 65, 1, - 65, 1, 65, 1, 65, 1, 65, 1, 65, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, - 1, 66, 1, 66, 1, 66, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, - 67, 1, 67, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 1, 69, 1, 69, 1, 69, - 1, 69, 1, 69, 1, 69, 1, 69, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 71, 1, - 71, 1, 71, 1, 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 73, 1, 73, 1, 73, 1, 73, - 1, 74, 1, 74, 1, 74, 1, 74, 1, 74, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, - 75, 1, 75, 1, 75, 1, 75, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, - 1, 76, 1, 76, 1, 76, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, - 77, 1, 77, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 79, 1, 79, 1, 79, - 1, 79, 1, 79, 1, 79, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, - 80, 1, 80, 1, 80, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, - 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, - 82, 1, 82, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 84, 1, 84, 1, 84, - 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, - 85, 1, 85, 1, 85, 1, 85, 1, 85, 1, 85, 1, 85, 1, 86, 1, 86, 1, 86, 1, 86, + 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, + 1, 51, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 53, 1, + 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 1, 54, 1, 54, 1, 54, 1, 54, + 1, 54, 1, 54, 1, 54, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 56, 1, + 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 56, 1, 57, 1, 57, + 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 58, 1, 58, 1, + 58, 1, 58, 1, 58, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 60, 1, 60, 1, 60, + 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 61, 1, 61, 1, 61, 1, 61, 1, + 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, + 1, 62, 1, 63, 1, 63, 1, 63, 1, 64, 1, 64, 1, 64, 1, 65, 1, 65, 1, 65, 1, + 65, 1, 65, 1, 65, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, + 1, 66, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, + 68, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, + 1, 69, 1, 69, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 71, 1, 71, 1, 71, 1, + 72, 1, 72, 1, 72, 1, 72, 1, 72, 1, 73, 1, 73, 1, 73, 1, 73, 1, 74, 1, 74, + 1, 74, 1, 74, 1, 74, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, 75, 1, + 75, 1, 75, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, 1, 76, + 1, 76, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, 77, 1, + 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 78, 1, 79, 1, 79, 1, 79, 1, 79, 1, 79, + 1, 79, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, + 80, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, 1, 81, + 1, 81, 1, 81, 1, 81, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, 82, 1, + 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 83, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, + 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 85, 1, 85, 1, + 85, 1, 85, 1, 85, 1, 85, 1, 85, 1, 86, 1, 86, 1, 86, 1, 86, 1, 87, 1, 87, 1, 87, 1, 87, 1, 87, 1, 87, 1, 87, 1, 87, 1, 87, 1, 87, 1, 87, 1, 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, 89, 1, 89, 1, 89, 1, 89, 1, 90, 1, 90, 1, 90, 1, - 90, 1, 90, 1, 91, 1, 91, 1, 91, 1, 92, 1, 92, 1, 92, 1, 93, 1, 93, 1, 93, - 1, 93, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 95, 1, - 95, 1, 95, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 97, 1, 97, 1, 97, - 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 98, 1, 98, 1, 98, 1, - 98, 1, 98, 1, 98, 1, 98, 1, 98, 1, 98, 1, 99, 1, 99, 1, 99, 1, 99, 1, 100, - 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, - 1, 100, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, - 1, 101, 1, 101, 1, 101, 1, 101, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, - 1, 102, 1, 102, 1, 102, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, - 1, 103, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 105, - 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 106, 1, 106, - 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, - 1, 106, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, - 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 109, 1, 109, - 1, 109, 1, 109, 1, 109, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, - 1, 111, 1, 111, 1, 111, 1, 111, 1, 111, 1, 111, 1, 111, 1, 112, 1, 112, - 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 113, 1, 113, 1, 113, 1, 113, - 1, 114, 1, 114, 1, 114, 1, 114, 1, 114, 1, 114, 1, 115, 1, 115, 1, 115, - 1, 115, 1, 115, 1, 115, 1, 115, 1, 116, 1, 116, 1, 116, 1, 116, 1, 116, - 1, 116, 1, 116, 1, 116, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, - 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, - 1, 118, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 120, 1, 120, - 1, 120, 1, 120, 1, 120, 1, 120, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, - 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 122, 1, 122, 1, 122, 1, 123, - 1, 123, 1, 123, 1, 123, 1, 123, 1, 123, 1, 124, 1, 124, 1, 124, 1, 124, - 1, 124, 1, 124, 1, 124, 1, 124, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, - 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, - 1, 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, 130, 1, 130, 1, 130, 1, 130, 1, 130, - 1, 130, 1, 130, 1, 130, 1, 130, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, - 1, 131, 1, 131, 1, 132, 1, 132, 1, 132, 1, 132, 1, 133, 1, 133, 1, 133, - 1, 133, 1, 133, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 135, - 1, 135, 1, 135, 1, 135, 1, 135, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, - 1, 136, 1, 136, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 138, 1, 138, - 1, 138, 1, 138, 1, 138, 1, 138, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, - 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, - 1, 140, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 142, 1, 142, - 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 143, 1, 143, 1, 143, 1, 143, - 1, 143, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, - 1, 145, 1, 145, 1, 145, 1, 145, 1, 145, 1, 145, 1, 145, 1, 145, 1, 146, - 1, 146, 1, 146, 1, 146, 1, 146, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, - 1, 147, 1, 147, 1, 147, 1, 148, 1, 148, 1, 148, 1, 148, 1, 148, 1, 148, - 1, 148, 1, 149, 1, 149, 1, 149, 1, 149, 1, 149, 1, 149, 1, 150, 1, 150, - 1, 150, 1, 150, 1, 150, 1, 150, 1, 150, 1, 151, 1, 151, 1, 151, 1, 151, - 1, 151, 1, 152, 1, 152, 1, 152, 1, 152, 1, 153, 1, 153, 1, 153, 1, 153, - 1, 153, 1, 154, 1, 154, 1, 154, 1, 154, 1, 155, 1, 155, 1, 155, 1, 155, - 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, 156, 1, 156, 1, 156, 1, 156, - 1, 156, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, - 1, 157, 1, 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 159, 1, 159, 1, 159, - 1, 159, 1, 159, 1, 159, 1, 159, 1, 159, 1, 160, 1, 160, 1, 160, 1, 160, - 1, 160, 1, 160, 1, 161, 1, 161, 1, 161, 1, 161, 1, 161, 1, 161, 1, 161, - 1, 161, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 163, - 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 5, 163, 1382, 8, 163, 10, 163, - 12, 163, 1385, 9, 163, 1, 163, 1, 163, 1, 163, 1, 164, 1, 164, 1, 164, - 1, 164, 1, 164, 1, 164, 5, 164, 1396, 8, 164, 10, 164, 12, 164, 1399, 9, - 164, 1, 164, 1, 164, 1, 165, 4, 165, 1404, 8, 165, 11, 165, 12, 165, 1405, - 1, 166, 3, 166, 1409, 8, 166, 1, 166, 4, 166, 1412, 8, 166, 11, 166, 12, - 166, 1413, 1, 166, 1, 166, 4, 166, 1418, 8, 166, 11, 166, 12, 166, 1419, - 3, 166, 1422, 8, 166, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, 4, 167, 1429, - 8, 167, 11, 167, 12, 167, 1430, 1, 167, 1, 167, 1, 167, 1, 167, 1, 167, - 1, 167, 4, 167, 1439, 8, 167, 11, 167, 12, 167, 1440, 3, 167, 1443, 8, - 167, 1, 168, 4, 168, 1446, 8, 168, 11, 168, 12, 168, 1447, 1, 168, 3, 168, - 1451, 8, 168, 1, 168, 1, 168, 1, 168, 5, 168, 1456, 8, 168, 10, 168, 12, - 168, 1459, 9, 168, 1, 168, 1, 168, 4, 168, 1463, 8, 168, 11, 168, 12, 168, - 1464, 1, 168, 3, 168, 1468, 8, 168, 3, 168, 1470, 8, 168, 1, 169, 1, 169, - 5, 169, 1474, 8, 169, 10, 169, 12, 169, 1477, 9, 169, 1, 169, 1, 169, 4, - 169, 1481, 8, 169, 11, 169, 12, 169, 1482, 1, 169, 3, 169, 1486, 8, 169, - 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, 1, 170, - 1, 170, 1, 170, 1, 170, 1, 170, 1, 171, 4, 171, 1502, 8, 171, 11, 171, - 12, 171, 1503, 1, 171, 1, 171, 1, 172, 1, 172, 1, 172, 1, 172, 1, 172, - 4, 172, 1513, 8, 172, 11, 172, 12, 172, 1514, 1, 172, 1, 172, 1, 172, 1, - 172, 1, 172, 1, 173, 1, 173, 1, 173, 1, 173, 5, 173, 1526, 8, 173, 10, - 173, 12, 173, 1529, 9, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, 173, 1, - 174, 1, 174, 1, 174, 1, 174, 1, 174, 1, 174, 3, 174, 1542, 8, 174, 1, 174, - 5, 174, 1545, 8, 174, 10, 174, 12, 174, 1548, 9, 174, 1, 174, 3, 174, 1551, - 8, 174, 1, 174, 1, 174, 3, 174, 1555, 8, 174, 1, 174, 1, 174, 1, 174, 1, - 174, 3, 174, 1561, 8, 174, 1, 174, 1, 174, 3, 174, 1565, 8, 174, 3, 174, - 1567, 8, 174, 1, 174, 1, 174, 1, 175, 1, 175, 1, 175, 1, 175, 1, 175, 1, - 176, 1, 176, 1, 177, 1, 177, 1, 178, 1, 178, 3, 178, 1582, 8, 178, 1, 178, - 4, 178, 1585, 8, 178, 11, 178, 12, 178, 1586, 2, 1514, 1527, 0, 179, 1, - 1, 3, 2, 5, 3, 7, 4, 9, 5, 11, 6, 13, 7, 15, 8, 17, 9, 19, 10, 21, 11, - 23, 12, 25, 13, 27, 14, 29, 15, 31, 16, 33, 17, 35, 18, 37, 19, 39, 20, - 41, 21, 43, 22, 45, 23, 47, 24, 49, 25, 51, 26, 53, 27, 55, 28, 57, 29, - 59, 30, 61, 31, 63, 32, 65, 33, 67, 34, 69, 35, 71, 36, 73, 37, 75, 38, - 77, 39, 79, 40, 81, 41, 83, 42, 85, 43, 87, 44, 89, 45, 91, 46, 93, 47, - 95, 48, 97, 49, 99, 50, 101, 51, 103, 52, 105, 53, 107, 54, 109, 55, 111, - 56, 113, 57, 115, 58, 117, 59, 119, 60, 121, 61, 123, 62, 125, 63, 127, - 64, 129, 65, 131, 66, 133, 67, 135, 68, 137, 69, 139, 70, 141, 71, 143, - 72, 145, 73, 147, 74, 149, 75, 151, 76, 153, 77, 155, 78, 157, 79, 159, - 80, 161, 81, 163, 82, 165, 83, 167, 84, 169, 85, 171, 86, 173, 87, 175, - 88, 177, 89, 179, 90, 181, 91, 183, 92, 185, 93, 187, 94, 189, 95, 191, - 96, 193, 97, 195, 98, 197, 99, 199, 100, 201, 101, 203, 102, 205, 103, - 207, 104, 209, 105, 211, 106, 213, 107, 215, 108, 217, 109, 219, 110, 221, - 111, 223, 112, 225, 113, 227, 114, 229, 115, 231, 116, 233, 117, 235, 118, - 237, 119, 239, 120, 241, 121, 243, 122, 245, 123, 247, 124, 249, 125, 251, - 126, 253, 127, 255, 128, 257, 129, 259, 130, 261, 131, 263, 132, 265, 133, - 267, 134, 269, 135, 271, 136, 273, 137, 275, 138, 277, 139, 279, 140, 281, - 141, 283, 142, 285, 143, 287, 144, 289, 145, 291, 146, 293, 147, 295, 148, - 297, 149, 299, 150, 301, 151, 303, 152, 305, 153, 307, 154, 309, 155, 311, - 156, 313, 157, 315, 158, 317, 159, 319, 160, 321, 161, 323, 162, 325, 163, - 327, 164, 329, 165, 331, 166, 333, 167, 335, 168, 337, 169, 339, 170, 341, - 171, 343, 172, 345, 173, 347, 174, 349, 175, 351, 0, 353, 0, 355, 0, 357, - 0, 1, 0, 35, 2, 0, 65, 65, 97, 97, 2, 0, 68, 68, 100, 100, 2, 0, 71, 71, - 103, 103, 2, 0, 82, 82, 114, 114, 2, 0, 69, 69, 101, 101, 2, 0, 84, 84, - 116, 116, 2, 0, 76, 76, 108, 108, 2, 0, 79, 79, 111, 111, 2, 0, 87, 87, - 119, 119, 2, 0, 78, 78, 110, 110, 2, 0, 89, 89, 121, 121, 2, 0, 80, 80, - 112, 112, 2, 0, 83, 83, 115, 115, 2, 0, 67, 67, 99, 99, 2, 0, 85, 85, 117, - 117, 2, 0, 72, 72, 104, 104, 2, 0, 73, 73, 105, 105, 2, 0, 90, 90, 122, - 122, 2, 0, 66, 66, 98, 98, 2, 0, 77, 77, 109, 109, 2, 0, 70, 70, 102, 102, - 2, 0, 81, 81, 113, 113, 2, 0, 88, 88, 120, 120, 2, 0, 74, 74, 106, 106, - 2, 0, 75, 75, 107, 107, 2, 0, 86, 86, 118, 118, 1, 0, 36, 36, 2, 0, 39, - 39, 92, 92, 1, 0, 48, 57, 2, 0, 65, 90, 97, 122, 5, 0, 36, 36, 48, 57, - 65, 90, 95, 95, 97, 122, 1, 0, 34, 34, 3, 0, 9, 10, 13, 13, 32, 32, 2, - 0, 10, 10, 13, 13, 3, 0, 48, 57, 65, 70, 97, 102, 1618, 0, 1, 1, 0, 0, - 0, 0, 3, 1, 0, 0, 0, 0, 5, 1, 0, 0, 0, 0, 7, 1, 0, 0, 0, 0, 9, 1, 0, 0, - 0, 0, 11, 1, 0, 0, 0, 0, 13, 1, 0, 0, 0, 0, 15, 1, 0, 0, 0, 0, 17, 1, 0, - 0, 0, 0, 19, 1, 0, 0, 0, 0, 21, 1, 0, 0, 0, 0, 23, 1, 0, 0, 0, 0, 25, 1, - 0, 0, 0, 0, 27, 1, 0, 0, 0, 0, 29, 1, 0, 0, 0, 0, 31, 1, 0, 0, 0, 0, 33, - 1, 0, 0, 0, 0, 35, 1, 0, 0, 0, 0, 37, 1, 0, 0, 0, 0, 39, 1, 0, 0, 0, 0, - 41, 1, 0, 0, 0, 0, 43, 1, 0, 0, 0, 0, 45, 1, 0, 0, 0, 0, 47, 1, 0, 0, 0, - 0, 49, 1, 0, 0, 0, 0, 51, 1, 0, 0, 0, 0, 53, 1, 0, 0, 0, 0, 55, 1, 0, 0, - 0, 0, 57, 1, 0, 0, 0, 0, 59, 1, 0, 0, 0, 0, 61, 1, 0, 0, 0, 0, 63, 1, 0, - 0, 0, 0, 65, 1, 0, 0, 0, 0, 67, 1, 0, 0, 0, 0, 69, 1, 0, 0, 0, 0, 71, 1, - 0, 0, 0, 0, 73, 1, 0, 0, 0, 0, 75, 1, 0, 0, 0, 0, 77, 1, 0, 0, 0, 0, 79, - 1, 0, 0, 0, 0, 81, 1, 0, 0, 0, 0, 83, 1, 0, 0, 0, 0, 85, 1, 0, 0, 0, 0, - 87, 1, 0, 0, 0, 0, 89, 1, 0, 0, 0, 0, 91, 1, 0, 0, 0, 0, 93, 1, 0, 0, 0, - 0, 95, 1, 0, 0, 0, 0, 97, 1, 0, 0, 0, 0, 99, 1, 0, 0, 0, 0, 101, 1, 0, - 0, 0, 0, 103, 1, 0, 0, 0, 0, 105, 1, 0, 0, 0, 0, 107, 1, 0, 0, 0, 0, 109, - 1, 0, 0, 0, 0, 111, 1, 0, 0, 0, 0, 113, 1, 0, 0, 0, 0, 115, 1, 0, 0, 0, - 0, 117, 1, 0, 0, 0, 0, 119, 1, 0, 0, 0, 0, 121, 1, 0, 0, 0, 0, 123, 1, - 0, 0, 0, 0, 125, 1, 0, 0, 0, 0, 127, 1, 0, 0, 0, 0, 129, 1, 0, 0, 0, 0, - 131, 1, 0, 0, 0, 0, 133, 1, 0, 0, 0, 0, 135, 1, 0, 0, 0, 0, 137, 1, 0, - 0, 0, 0, 139, 1, 0, 0, 0, 0, 141, 1, 0, 0, 0, 0, 143, 1, 0, 0, 0, 0, 145, - 1, 0, 0, 0, 0, 147, 1, 0, 0, 0, 0, 149, 1, 0, 0, 0, 0, 151, 1, 0, 0, 0, - 0, 153, 1, 0, 0, 0, 0, 155, 1, 0, 0, 0, 0, 157, 1, 0, 0, 0, 0, 159, 1, - 0, 0, 0, 0, 161, 1, 0, 0, 0, 0, 163, 1, 0, 0, 0, 0, 165, 1, 0, 0, 0, 0, - 167, 1, 0, 0, 0, 0, 169, 1, 0, 0, 0, 0, 171, 1, 0, 0, 0, 0, 173, 1, 0, - 0, 0, 0, 175, 1, 0, 0, 0, 0, 177, 1, 0, 0, 0, 0, 179, 1, 0, 0, 0, 0, 181, - 1, 0, 0, 0, 0, 183, 1, 0, 0, 0, 0, 185, 1, 0, 0, 0, 0, 187, 1, 0, 0, 0, - 0, 189, 1, 0, 0, 0, 0, 191, 1, 0, 0, 0, 0, 193, 1, 0, 0, 0, 0, 195, 1, - 0, 0, 0, 0, 197, 1, 0, 0, 0, 0, 199, 1, 0, 0, 0, 0, 201, 1, 0, 0, 0, 0, - 203, 1, 0, 0, 0, 0, 205, 1, 0, 0, 0, 0, 207, 1, 0, 0, 0, 0, 209, 1, 0, - 0, 0, 0, 211, 1, 0, 0, 0, 0, 213, 1, 0, 0, 0, 0, 215, 1, 0, 0, 0, 0, 217, - 1, 0, 0, 0, 0, 219, 1, 0, 0, 0, 0, 221, 1, 0, 0, 0, 0, 223, 1, 0, 0, 0, - 0, 225, 1, 0, 0, 0, 0, 227, 1, 0, 0, 0, 0, 229, 1, 0, 0, 0, 0, 231, 1, - 0, 0, 0, 0, 233, 1, 0, 0, 0, 0, 235, 1, 0, 0, 0, 0, 237, 1, 0, 0, 0, 0, - 239, 1, 0, 0, 0, 0, 241, 1, 0, 0, 0, 0, 243, 1, 0, 0, 0, 0, 245, 1, 0, - 0, 0, 0, 247, 1, 0, 0, 0, 0, 249, 1, 0, 0, 0, 0, 251, 1, 0, 0, 0, 0, 253, - 1, 0, 0, 0, 0, 255, 1, 0, 0, 0, 0, 257, 1, 0, 0, 0, 0, 259, 1, 0, 0, 0, - 0, 261, 1, 0, 0, 0, 0, 263, 1, 0, 0, 0, 0, 265, 1, 0, 0, 0, 0, 267, 1, - 0, 0, 0, 0, 269, 1, 0, 0, 0, 0, 271, 1, 0, 0, 0, 0, 273, 1, 0, 0, 0, 0, - 275, 1, 0, 0, 0, 0, 277, 1, 0, 0, 0, 0, 279, 1, 0, 0, 0, 0, 281, 1, 0, - 0, 0, 0, 283, 1, 0, 0, 0, 0, 285, 1, 0, 0, 0, 0, 287, 1, 0, 0, 0, 0, 289, - 1, 0, 0, 0, 0, 291, 1, 0, 0, 0, 0, 293, 1, 0, 0, 0, 0, 295, 1, 0, 0, 0, - 0, 297, 1, 0, 0, 0, 0, 299, 1, 0, 0, 0, 0, 301, 1, 0, 0, 0, 0, 303, 1, - 0, 0, 0, 0, 305, 1, 0, 0, 0, 0, 307, 1, 0, 0, 0, 0, 309, 1, 0, 0, 0, 0, - 311, 1, 0, 0, 0, 0, 313, 1, 0, 0, 0, 0, 315, 1, 0, 0, 0, 0, 317, 1, 0, - 0, 0, 0, 319, 1, 0, 0, 0, 0, 321, 1, 0, 0, 0, 0, 323, 1, 0, 0, 0, 0, 325, - 1, 0, 0, 0, 0, 327, 1, 0, 0, 0, 0, 329, 1, 0, 0, 0, 0, 331, 1, 0, 0, 0, - 0, 333, 1, 0, 0, 0, 0, 335, 1, 0, 0, 0, 0, 337, 1, 0, 0, 0, 0, 339, 1, - 0, 0, 0, 0, 341, 1, 0, 0, 0, 0, 343, 1, 0, 0, 0, 0, 345, 1, 0, 0, 0, 0, - 347, 1, 0, 0, 0, 0, 349, 1, 0, 0, 0, 1, 359, 1, 0, 0, 0, 3, 361, 1, 0, - 0, 0, 5, 363, 1, 0, 0, 0, 7, 365, 1, 0, 0, 0, 9, 367, 1, 0, 0, 0, 11, 369, - 1, 0, 0, 0, 13, 371, 1, 0, 0, 0, 15, 373, 1, 0, 0, 0, 17, 375, 1, 0, 0, - 0, 19, 377, 1, 0, 0, 0, 21, 379, 1, 0, 0, 0, 23, 381, 1, 0, 0, 0, 25, 383, - 1, 0, 0, 0, 27, 385, 1, 0, 0, 0, 29, 387, 1, 0, 0, 0, 31, 390, 1, 0, 0, - 0, 33, 392, 1, 0, 0, 0, 35, 394, 1, 0, 0, 0, 37, 396, 1, 0, 0, 0, 39, 398, - 1, 0, 0, 0, 41, 400, 1, 0, 0, 0, 43, 402, 1, 0, 0, 0, 45, 405, 1, 0, 0, - 0, 47, 408, 1, 0, 0, 0, 49, 412, 1, 0, 0, 0, 51, 422, 1, 0, 0, 0, 53, 426, - 1, 0, 0, 0, 55, 432, 1, 0, 0, 0, 57, 438, 1, 0, 0, 0, 59, 442, 1, 0, 0, - 0, 61, 446, 1, 0, 0, 0, 63, 452, 1, 0, 0, 0, 65, 455, 1, 0, 0, 0, 67, 459, - 1, 0, 0, 0, 69, 469, 1, 0, 0, 0, 71, 475, 1, 0, 0, 0, 73, 481, 1, 0, 0, - 0, 75, 484, 1, 0, 0, 0, 77, 491, 1, 0, 0, 0, 79, 502, 1, 0, 0, 0, 81, 515, - 1, 0, 0, 0, 83, 523, 1, 0, 0, 0, 85, 535, 1, 0, 0, 0, 87, 544, 1, 0, 0, - 0, 89, 551, 1, 0, 0, 0, 91, 558, 1, 0, 0, 0, 93, 565, 1, 0, 0, 0, 95, 570, - 1, 0, 0, 0, 97, 579, 1, 0, 0, 0, 99, 588, 1, 0, 0, 0, 101, 593, 1, 0, 0, - 0, 103, 608, 1, 0, 0, 0, 105, 620, 1, 0, 0, 0, 107, 628, 1, 0, 0, 0, 109, - 636, 1, 0, 0, 0, 111, 643, 1, 0, 0, 0, 113, 649, 1, 0, 0, 0, 115, 659, - 1, 0, 0, 0, 117, 669, 1, 0, 0, 0, 119, 674, 1, 0, 0, 0, 121, 679, 1, 0, - 0, 0, 123, 688, 1, 0, 0, 0, 125, 698, 1, 0, 0, 0, 127, 704, 1, 0, 0, 0, - 129, 707, 1, 0, 0, 0, 131, 710, 1, 0, 0, 0, 133, 716, 1, 0, 0, 0, 135, - 725, 1, 0, 0, 0, 137, 734, 1, 0, 0, 0, 139, 740, 1, 0, 0, 0, 141, 747, - 1, 0, 0, 0, 143, 752, 1, 0, 0, 0, 145, 755, 1, 0, 0, 0, 147, 760, 1, 0, - 0, 0, 149, 764, 1, 0, 0, 0, 151, 769, 1, 0, 0, 0, 153, 778, 1, 0, 0, 0, - 155, 788, 1, 0, 0, 0, 157, 797, 1, 0, 0, 0, 159, 803, 1, 0, 0, 0, 161, - 809, 1, 0, 0, 0, 163, 819, 1, 0, 0, 0, 165, 832, 1, 0, 0, 0, 167, 839, - 1, 0, 0, 0, 169, 845, 1, 0, 0, 0, 171, 858, 1, 0, 0, 0, 173, 865, 1, 0, - 0, 0, 175, 869, 1, 0, 0, 0, 177, 881, 1, 0, 0, 0, 179, 893, 1, 0, 0, 0, - 181, 897, 1, 0, 0, 0, 183, 902, 1, 0, 0, 0, 185, 905, 1, 0, 0, 0, 187, - 908, 1, 0, 0, 0, 189, 912, 1, 0, 0, 0, 191, 920, 1, 0, 0, 0, 193, 923, - 1, 0, 0, 0, 195, 929, 1, 0, 0, 0, 197, 939, 1, 0, 0, 0, 199, 948, 1, 0, - 0, 0, 201, 952, 1, 0, 0, 0, 203, 963, 1, 0, 0, 0, 205, 975, 1, 0, 0, 0, - 207, 983, 1, 0, 0, 0, 209, 990, 1, 0, 0, 0, 211, 997, 1, 0, 0, 0, 213, - 1005, 1, 0, 0, 0, 215, 1017, 1, 0, 0, 0, 217, 1025, 1, 0, 0, 0, 219, 1032, - 1, 0, 0, 0, 221, 1037, 1, 0, 0, 0, 223, 1043, 1, 0, 0, 0, 225, 1050, 1, - 0, 0, 0, 227, 1057, 1, 0, 0, 0, 229, 1061, 1, 0, 0, 0, 231, 1067, 1, 0, - 0, 0, 233, 1074, 1, 0, 0, 0, 235, 1082, 1, 0, 0, 0, 237, 1088, 1, 0, 0, - 0, 239, 1098, 1, 0, 0, 0, 241, 1104, 1, 0, 0, 0, 243, 1110, 1, 0, 0, 0, - 245, 1120, 1, 0, 0, 0, 247, 1123, 1, 0, 0, 0, 249, 1129, 1, 0, 0, 0, 251, - 1137, 1, 0, 0, 0, 253, 1142, 1, 0, 0, 0, 255, 1151, 1, 0, 0, 0, 257, 1155, - 1, 0, 0, 0, 259, 1159, 1, 0, 0, 0, 261, 1164, 1, 0, 0, 0, 263, 1173, 1, - 0, 0, 0, 265, 1180, 1, 0, 0, 0, 267, 1184, 1, 0, 0, 0, 269, 1189, 1, 0, - 0, 0, 271, 1195, 1, 0, 0, 0, 273, 1200, 1, 0, 0, 0, 275, 1207, 1, 0, 0, - 0, 277, 1212, 1, 0, 0, 0, 279, 1218, 1, 0, 0, 0, 281, 1223, 1, 0, 0, 0, - 283, 1233, 1, 0, 0, 0, 285, 1239, 1, 0, 0, 0, 287, 1246, 1, 0, 0, 0, 289, - 1251, 1, 0, 0, 0, 291, 1259, 1, 0, 0, 0, 293, 1267, 1, 0, 0, 0, 295, 1272, - 1, 0, 0, 0, 297, 1280, 1, 0, 0, 0, 299, 1287, 1, 0, 0, 0, 301, 1293, 1, - 0, 0, 0, 303, 1300, 1, 0, 0, 0, 305, 1305, 1, 0, 0, 0, 307, 1309, 1, 0, - 0, 0, 309, 1314, 1, 0, 0, 0, 311, 1318, 1, 0, 0, 0, 313, 1327, 1, 0, 0, - 0, 315, 1332, 1, 0, 0, 0, 317, 1341, 1, 0, 0, 0, 319, 1346, 1, 0, 0, 0, - 321, 1354, 1, 0, 0, 0, 323, 1360, 1, 0, 0, 0, 325, 1368, 1, 0, 0, 0, 327, - 1375, 1, 0, 0, 0, 329, 1389, 1, 0, 0, 0, 331, 1403, 1, 0, 0, 0, 333, 1408, - 1, 0, 0, 0, 335, 1442, 1, 0, 0, 0, 337, 1469, 1, 0, 0, 0, 339, 1485, 1, - 0, 0, 0, 341, 1487, 1, 0, 0, 0, 343, 1501, 1, 0, 0, 0, 345, 1507, 1, 0, - 0, 0, 347, 1521, 1, 0, 0, 0, 349, 1566, 1, 0, 0, 0, 351, 1570, 1, 0, 0, - 0, 353, 1575, 1, 0, 0, 0, 355, 1577, 1, 0, 0, 0, 357, 1579, 1, 0, 0, 0, - 359, 360, 5, 40, 0, 0, 360, 2, 1, 0, 0, 0, 361, 362, 5, 41, 0, 0, 362, - 4, 1, 0, 0, 0, 363, 364, 5, 123, 0, 0, 364, 6, 1, 0, 0, 0, 365, 366, 5, - 125, 0, 0, 366, 8, 1, 0, 0, 0, 367, 368, 5, 91, 0, 0, 368, 10, 1, 0, 0, - 0, 369, 370, 5, 93, 0, 0, 370, 12, 1, 0, 0, 0, 371, 372, 5, 44, 0, 0, 372, - 14, 1, 0, 0, 0, 373, 374, 5, 59, 0, 0, 374, 16, 1, 0, 0, 0, 375, 376, 5, - 58, 0, 0, 376, 18, 1, 0, 0, 0, 377, 378, 5, 46, 0, 0, 378, 20, 1, 0, 0, - 0, 379, 380, 5, 42, 0, 0, 380, 22, 1, 0, 0, 0, 381, 382, 5, 47, 0, 0, 382, - 24, 1, 0, 0, 0, 383, 384, 5, 37, 0, 0, 384, 26, 1, 0, 0, 0, 385, 386, 5, - 43, 0, 0, 386, 28, 1, 0, 0, 0, 387, 388, 5, 45, 0, 0, 388, 389, 5, 45, - 0, 0, 389, 30, 1, 0, 0, 0, 390, 391, 5, 45, 0, 0, 391, 32, 1, 0, 0, 0, - 392, 393, 5, 34, 0, 0, 393, 34, 1, 0, 0, 0, 394, 395, 5, 39, 0, 0, 395, - 36, 1, 0, 0, 0, 396, 397, 5, 61, 0, 0, 397, 38, 1, 0, 0, 0, 398, 399, 5, - 60, 0, 0, 399, 40, 1, 0, 0, 0, 400, 401, 5, 62, 0, 0, 401, 42, 1, 0, 0, - 0, 402, 403, 5, 60, 0, 0, 403, 404, 5, 61, 0, 0, 404, 44, 1, 0, 0, 0, 405, - 406, 5, 62, 0, 0, 406, 407, 5, 61, 0, 0, 407, 46, 1, 0, 0, 0, 408, 409, - 7, 0, 0, 0, 409, 410, 7, 1, 0, 0, 410, 411, 7, 1, 0, 0, 411, 48, 1, 0, - 0, 0, 412, 413, 7, 0, 0, 0, 413, 414, 7, 2, 0, 0, 414, 415, 7, 2, 0, 0, - 415, 416, 7, 3, 0, 0, 416, 417, 7, 4, 0, 0, 417, 418, 7, 2, 0, 0, 418, - 419, 7, 0, 0, 0, 419, 420, 7, 5, 0, 0, 420, 421, 7, 4, 0, 0, 421, 50, 1, - 0, 0, 0, 422, 423, 7, 0, 0, 0, 423, 424, 7, 6, 0, 0, 424, 425, 7, 6, 0, - 0, 425, 52, 1, 0, 0, 0, 426, 427, 7, 0, 0, 0, 427, 428, 7, 6, 0, 0, 428, - 429, 7, 6, 0, 0, 429, 430, 7, 7, 0, 0, 430, 431, 7, 8, 0, 0, 431, 54, 1, - 0, 0, 0, 432, 433, 7, 0, 0, 0, 433, 434, 7, 6, 0, 0, 434, 435, 7, 5, 0, - 0, 435, 436, 7, 4, 0, 0, 436, 437, 7, 3, 0, 0, 437, 56, 1, 0, 0, 0, 438, - 439, 7, 0, 0, 0, 439, 440, 7, 9, 0, 0, 440, 441, 7, 1, 0, 0, 441, 58, 1, - 0, 0, 0, 442, 443, 7, 0, 0, 0, 443, 444, 7, 9, 0, 0, 444, 445, 7, 10, 0, - 0, 445, 60, 1, 0, 0, 0, 446, 447, 7, 0, 0, 0, 447, 448, 7, 11, 0, 0, 448, - 449, 7, 11, 0, 0, 449, 450, 7, 6, 0, 0, 450, 451, 7, 10, 0, 0, 451, 62, - 1, 0, 0, 0, 452, 453, 7, 0, 0, 0, 453, 454, 7, 12, 0, 0, 454, 64, 1, 0, - 0, 0, 455, 456, 7, 0, 0, 0, 456, 457, 7, 12, 0, 0, 457, 458, 7, 13, 0, - 0, 458, 66, 1, 0, 0, 0, 459, 460, 7, 0, 0, 0, 460, 461, 7, 14, 0, 0, 461, - 462, 7, 5, 0, 0, 462, 463, 7, 15, 0, 0, 463, 464, 7, 7, 0, 0, 464, 465, - 7, 3, 0, 0, 465, 466, 7, 16, 0, 0, 466, 467, 7, 17, 0, 0, 467, 468, 7, - 4, 0, 0, 468, 68, 1, 0, 0, 0, 469, 470, 7, 18, 0, 0, 470, 471, 7, 0, 0, - 0, 471, 472, 7, 5, 0, 0, 472, 473, 7, 13, 0, 0, 473, 474, 7, 15, 0, 0, - 474, 70, 1, 0, 0, 0, 475, 476, 7, 18, 0, 0, 476, 477, 7, 4, 0, 0, 477, - 478, 7, 2, 0, 0, 478, 479, 7, 16, 0, 0, 479, 480, 7, 9, 0, 0, 480, 72, - 1, 0, 0, 0, 481, 482, 7, 18, 0, 0, 482, 483, 7, 10, 0, 0, 483, 74, 1, 0, - 0, 0, 484, 485, 7, 13, 0, 0, 485, 486, 7, 0, 0, 0, 486, 487, 7, 6, 0, 0, - 487, 488, 7, 6, 0, 0, 488, 489, 7, 4, 0, 0, 489, 490, 7, 1, 0, 0, 490, - 76, 1, 0, 0, 0, 491, 492, 7, 13, 0, 0, 492, 493, 7, 6, 0, 0, 493, 494, - 7, 14, 0, 0, 494, 495, 7, 12, 0, 0, 495, 496, 7, 5, 0, 0, 496, 497, 7, - 4, 0, 0, 497, 498, 7, 3, 0, 0, 498, 499, 7, 16, 0, 0, 499, 500, 7, 9, 0, - 0, 500, 501, 7, 2, 0, 0, 501, 78, 1, 0, 0, 0, 502, 503, 7, 13, 0, 0, 503, - 504, 7, 7, 0, 0, 504, 505, 7, 6, 0, 0, 505, 506, 7, 14, 0, 0, 506, 507, - 7, 19, 0, 0, 507, 508, 7, 9, 0, 0, 508, 509, 7, 20, 0, 0, 509, 510, 7, - 0, 0, 0, 510, 511, 7, 19, 0, 0, 511, 512, 7, 16, 0, 0, 512, 513, 7, 6, - 0, 0, 513, 514, 7, 10, 0, 0, 514, 80, 1, 0, 0, 0, 515, 516, 7, 13, 0, 0, - 516, 517, 7, 7, 0, 0, 517, 518, 7, 19, 0, 0, 518, 519, 7, 11, 0, 0, 519, - 520, 7, 0, 0, 0, 520, 521, 7, 13, 0, 0, 521, 522, 7, 5, 0, 0, 522, 82, - 1, 0, 0, 0, 523, 524, 7, 13, 0, 0, 524, 525, 7, 7, 0, 0, 525, 526, 7, 9, - 0, 0, 526, 527, 7, 12, 0, 0, 527, 528, 7, 16, 0, 0, 528, 529, 7, 12, 0, - 0, 529, 530, 7, 5, 0, 0, 530, 531, 7, 4, 0, 0, 531, 532, 7, 9, 0, 0, 532, - 533, 7, 13, 0, 0, 533, 534, 7, 10, 0, 0, 534, 84, 1, 0, 0, 0, 535, 536, - 7, 13, 0, 0, 536, 537, 7, 7, 0, 0, 537, 538, 7, 9, 0, 0, 538, 539, 7, 5, - 0, 0, 539, 540, 7, 0, 0, 0, 540, 541, 7, 16, 0, 0, 541, 542, 7, 9, 0, 0, - 542, 543, 7, 12, 0, 0, 543, 86, 1, 0, 0, 0, 544, 545, 7, 13, 0, 0, 545, - 546, 7, 3, 0, 0, 546, 547, 7, 4, 0, 0, 547, 548, 7, 0, 0, 0, 548, 549, - 7, 5, 0, 0, 549, 550, 7, 4, 0, 0, 550, 88, 1, 0, 0, 0, 551, 552, 7, 13, - 0, 0, 552, 553, 7, 14, 0, 0, 553, 554, 7, 12, 0, 0, 554, 555, 7, 5, 0, - 0, 555, 556, 7, 7, 0, 0, 556, 557, 7, 19, 0, 0, 557, 90, 1, 0, 0, 0, 558, - 559, 7, 1, 0, 0, 559, 560, 7, 4, 0, 0, 560, 561, 7, 6, 0, 0, 561, 562, - 7, 4, 0, 0, 562, 563, 7, 5, 0, 0, 563, 564, 7, 4, 0, 0, 564, 92, 1, 0, - 0, 0, 565, 566, 7, 1, 0, 0, 566, 567, 7, 4, 0, 0, 567, 568, 7, 12, 0, 0, - 568, 569, 7, 13, 0, 0, 569, 94, 1, 0, 0, 0, 570, 571, 7, 1, 0, 0, 571, - 572, 7, 4, 0, 0, 572, 573, 7, 12, 0, 0, 573, 574, 7, 13, 0, 0, 574, 575, - 7, 3, 0, 0, 575, 576, 7, 16, 0, 0, 576, 577, 7, 18, 0, 0, 577, 578, 7, - 4, 0, 0, 578, 96, 1, 0, 0, 0, 579, 580, 7, 1, 0, 0, 580, 581, 7, 16, 0, - 0, 581, 582, 7, 12, 0, 0, 582, 583, 7, 5, 0, 0, 583, 584, 7, 16, 0, 0, - 584, 585, 7, 9, 0, 0, 585, 586, 7, 13, 0, 0, 586, 587, 7, 5, 0, 0, 587, - 98, 1, 0, 0, 0, 588, 589, 7, 1, 0, 0, 589, 590, 7, 3, 0, 0, 590, 591, 7, - 7, 0, 0, 591, 592, 7, 11, 0, 0, 592, 100, 1, 0, 0, 0, 593, 594, 7, 1, 0, - 0, 594, 595, 7, 14, 0, 0, 595, 596, 7, 3, 0, 0, 596, 597, 7, 0, 0, 0, 597, - 598, 7, 18, 0, 0, 598, 599, 7, 6, 0, 0, 599, 600, 7, 4, 0, 0, 600, 601, - 5, 95, 0, 0, 601, 602, 7, 8, 0, 0, 602, 603, 7, 3, 0, 0, 603, 604, 7, 16, - 0, 0, 604, 605, 7, 5, 0, 0, 605, 606, 7, 4, 0, 0, 606, 607, 7, 12, 0, 0, - 607, 102, 1, 0, 0, 0, 608, 609, 7, 4, 0, 0, 609, 610, 7, 0, 0, 0, 610, - 611, 7, 13, 0, 0, 611, 612, 7, 15, 0, 0, 612, 613, 5, 95, 0, 0, 613, 614, - 7, 21, 0, 0, 614, 615, 7, 14, 0, 0, 615, 616, 7, 7, 0, 0, 616, 617, 7, - 3, 0, 0, 617, 618, 7, 14, 0, 0, 618, 619, 7, 19, 0, 0, 619, 104, 1, 0, - 0, 0, 620, 621, 7, 4, 0, 0, 621, 622, 7, 9, 0, 0, 622, 623, 7, 5, 0, 0, - 623, 624, 7, 3, 0, 0, 624, 625, 7, 16, 0, 0, 625, 626, 7, 4, 0, 0, 626, - 627, 7, 12, 0, 0, 627, 106, 1, 0, 0, 0, 628, 629, 7, 4, 0, 0, 629, 630, - 7, 22, 0, 0, 630, 631, 7, 4, 0, 0, 631, 632, 7, 13, 0, 0, 632, 633, 7, - 14, 0, 0, 633, 634, 7, 5, 0, 0, 634, 635, 7, 4, 0, 0, 635, 108, 1, 0, 0, - 0, 636, 637, 7, 4, 0, 0, 637, 638, 7, 22, 0, 0, 638, 639, 7, 16, 0, 0, - 639, 640, 7, 12, 0, 0, 640, 641, 7, 5, 0, 0, 641, 642, 7, 12, 0, 0, 642, - 110, 1, 0, 0, 0, 643, 644, 7, 20, 0, 0, 644, 645, 7, 0, 0, 0, 645, 646, - 7, 6, 0, 0, 646, 647, 7, 12, 0, 0, 647, 648, 7, 4, 0, 0, 648, 112, 1, 0, - 0, 0, 649, 650, 7, 20, 0, 0, 650, 651, 7, 16, 0, 0, 651, 652, 7, 6, 0, - 0, 652, 653, 7, 5, 0, 0, 653, 654, 7, 4, 0, 0, 654, 655, 7, 3, 0, 0, 655, - 656, 7, 16, 0, 0, 656, 657, 7, 9, 0, 0, 657, 658, 7, 2, 0, 0, 658, 114, - 1, 0, 0, 0, 659, 660, 7, 20, 0, 0, 660, 661, 7, 16, 0, 0, 661, 662, 7, - 9, 0, 0, 662, 663, 7, 0, 0, 0, 663, 664, 7, 6, 0, 0, 664, 665, 7, 20, 0, - 0, 665, 666, 7, 14, 0, 0, 666, 667, 7, 9, 0, 0, 667, 668, 7, 13, 0, 0, - 668, 116, 1, 0, 0, 0, 669, 670, 7, 20, 0, 0, 670, 671, 7, 3, 0, 0, 671, - 672, 7, 7, 0, 0, 672, 673, 7, 19, 0, 0, 673, 118, 1, 0, 0, 0, 674, 675, - 7, 20, 0, 0, 675, 676, 7, 14, 0, 0, 676, 677, 7, 6, 0, 0, 677, 678, 7, - 6, 0, 0, 678, 120, 1, 0, 0, 0, 679, 680, 7, 20, 0, 0, 680, 681, 7, 14, - 0, 0, 681, 682, 7, 9, 0, 0, 682, 683, 7, 13, 0, 0, 683, 684, 7, 5, 0, 0, - 684, 685, 7, 16, 0, 0, 685, 686, 7, 7, 0, 0, 686, 687, 7, 9, 0, 0, 687, - 122, 1, 0, 0, 0, 688, 689, 7, 20, 0, 0, 689, 690, 7, 14, 0, 0, 690, 691, - 7, 9, 0, 0, 691, 692, 7, 13, 0, 0, 692, 693, 7, 5, 0, 0, 693, 694, 7, 16, - 0, 0, 694, 695, 7, 7, 0, 0, 695, 696, 7, 9, 0, 0, 696, 697, 7, 12, 0, 0, - 697, 124, 1, 0, 0, 0, 698, 699, 7, 2, 0, 0, 699, 700, 7, 3, 0, 0, 700, - 701, 7, 0, 0, 0, 701, 702, 7, 9, 0, 0, 702, 703, 7, 5, 0, 0, 703, 126, - 1, 0, 0, 0, 704, 705, 7, 16, 0, 0, 705, 706, 7, 20, 0, 0, 706, 128, 1, - 0, 0, 0, 707, 708, 7, 16, 0, 0, 708, 709, 7, 9, 0, 0, 709, 130, 1, 0, 0, - 0, 710, 711, 7, 16, 0, 0, 711, 712, 7, 9, 0, 0, 712, 713, 7, 1, 0, 0, 713, - 714, 7, 4, 0, 0, 714, 715, 7, 22, 0, 0, 715, 132, 1, 0, 0, 0, 716, 717, - 7, 16, 0, 0, 717, 718, 7, 9, 0, 0, 718, 719, 7, 20, 0, 0, 719, 720, 7, - 16, 0, 0, 720, 721, 7, 9, 0, 0, 721, 722, 7, 16, 0, 0, 722, 723, 7, 5, - 0, 0, 723, 724, 7, 10, 0, 0, 724, 134, 1, 0, 0, 0, 725, 726, 7, 16, 0, - 0, 726, 727, 7, 9, 0, 0, 727, 728, 7, 16, 0, 0, 728, 729, 7, 5, 0, 0, 729, - 730, 7, 13, 0, 0, 730, 731, 7, 7, 0, 0, 731, 732, 7, 9, 0, 0, 732, 733, - 7, 1, 0, 0, 733, 136, 1, 0, 0, 0, 734, 735, 7, 16, 0, 0, 735, 736, 7, 9, - 0, 0, 736, 737, 7, 11, 0, 0, 737, 738, 7, 14, 0, 0, 738, 739, 7, 5, 0, - 0, 739, 138, 1, 0, 0, 0, 740, 741, 7, 16, 0, 0, 741, 742, 7, 9, 0, 0, 742, - 743, 7, 12, 0, 0, 743, 744, 7, 4, 0, 0, 744, 745, 7, 3, 0, 0, 745, 746, - 7, 5, 0, 0, 746, 140, 1, 0, 0, 0, 747, 748, 7, 16, 0, 0, 748, 749, 7, 9, - 0, 0, 749, 750, 7, 5, 0, 0, 750, 751, 7, 7, 0, 0, 751, 142, 1, 0, 0, 0, - 752, 753, 7, 16, 0, 0, 753, 754, 7, 12, 0, 0, 754, 144, 1, 0, 0, 0, 755, - 756, 7, 23, 0, 0, 756, 757, 7, 12, 0, 0, 757, 758, 7, 7, 0, 0, 758, 759, - 7, 9, 0, 0, 759, 146, 1, 0, 0, 0, 760, 761, 7, 24, 0, 0, 761, 762, 7, 4, - 0, 0, 762, 763, 7, 10, 0, 0, 763, 148, 1, 0, 0, 0, 764, 765, 7, 24, 0, - 0, 765, 766, 7, 4, 0, 0, 766, 767, 7, 10, 0, 0, 767, 768, 7, 12, 0, 0, - 768, 150, 1, 0, 0, 0, 769, 770, 7, 24, 0, 0, 770, 771, 7, 4, 0, 0, 771, - 772, 7, 10, 0, 0, 772, 773, 7, 12, 0, 0, 773, 774, 7, 11, 0, 0, 774, 775, - 7, 0, 0, 0, 775, 776, 7, 13, 0, 0, 776, 777, 7, 4, 0, 0, 777, 152, 1, 0, - 0, 0, 778, 779, 7, 24, 0, 0, 779, 780, 7, 4, 0, 0, 780, 781, 7, 10, 0, - 0, 781, 782, 7, 12, 0, 0, 782, 783, 7, 11, 0, 0, 783, 784, 7, 0, 0, 0, - 784, 785, 7, 13, 0, 0, 785, 786, 7, 4, 0, 0, 786, 787, 7, 12, 0, 0, 787, - 154, 1, 0, 0, 0, 788, 789, 7, 6, 0, 0, 789, 790, 7, 0, 0, 0, 790, 791, - 7, 9, 0, 0, 791, 792, 7, 2, 0, 0, 792, 793, 7, 14, 0, 0, 793, 794, 7, 0, - 0, 0, 794, 795, 7, 2, 0, 0, 795, 796, 7, 4, 0, 0, 796, 156, 1, 0, 0, 0, - 797, 798, 7, 6, 0, 0, 798, 799, 7, 4, 0, 0, 799, 800, 7, 25, 0, 0, 800, - 801, 7, 4, 0, 0, 801, 802, 7, 6, 0, 0, 802, 158, 1, 0, 0, 0, 803, 804, - 7, 6, 0, 0, 804, 805, 7, 16, 0, 0, 805, 806, 7, 19, 0, 0, 806, 807, 7, - 16, 0, 0, 807, 808, 7, 5, 0, 0, 808, 160, 1, 0, 0, 0, 809, 810, 7, 6, 0, - 0, 810, 811, 7, 7, 0, 0, 811, 812, 7, 13, 0, 0, 812, 813, 7, 0, 0, 0, 813, - 814, 7, 6, 0, 0, 814, 815, 5, 95, 0, 0, 815, 816, 7, 7, 0, 0, 816, 817, - 7, 9, 0, 0, 817, 818, 7, 4, 0, 0, 818, 162, 1, 0, 0, 0, 819, 820, 7, 6, - 0, 0, 820, 821, 7, 7, 0, 0, 821, 822, 7, 13, 0, 0, 822, 823, 7, 0, 0, 0, - 823, 824, 7, 6, 0, 0, 824, 825, 5, 95, 0, 0, 825, 826, 7, 21, 0, 0, 826, - 827, 7, 14, 0, 0, 827, 828, 7, 7, 0, 0, 828, 829, 7, 3, 0, 0, 829, 830, - 7, 14, 0, 0, 830, 831, 7, 19, 0, 0, 831, 164, 1, 0, 0, 0, 832, 833, 7, - 6, 0, 0, 833, 834, 7, 7, 0, 0, 834, 835, 7, 2, 0, 0, 835, 836, 7, 2, 0, - 0, 836, 837, 7, 4, 0, 0, 837, 838, 7, 1, 0, 0, 838, 166, 1, 0, 0, 0, 839, - 840, 7, 6, 0, 0, 840, 841, 7, 7, 0, 0, 841, 842, 7, 2, 0, 0, 842, 843, - 7, 16, 0, 0, 843, 844, 7, 9, 0, 0, 844, 168, 1, 0, 0, 0, 845, 846, 7, 19, - 0, 0, 846, 847, 7, 0, 0, 0, 847, 848, 7, 5, 0, 0, 848, 849, 7, 4, 0, 0, - 849, 850, 7, 3, 0, 0, 850, 851, 7, 16, 0, 0, 851, 852, 7, 0, 0, 0, 852, - 853, 7, 6, 0, 0, 853, 854, 7, 16, 0, 0, 854, 855, 7, 17, 0, 0, 855, 856, - 7, 4, 0, 0, 856, 857, 7, 1, 0, 0, 857, 170, 1, 0, 0, 0, 858, 859, 7, 19, - 0, 0, 859, 860, 7, 7, 0, 0, 860, 861, 7, 1, 0, 0, 861, 862, 7, 16, 0, 0, - 862, 863, 7, 20, 0, 0, 863, 864, 7, 10, 0, 0, 864, 172, 1, 0, 0, 0, 865, - 866, 7, 9, 0, 0, 866, 867, 7, 0, 0, 0, 867, 868, 7, 9, 0, 0, 868, 174, - 1, 0, 0, 0, 869, 870, 7, 9, 0, 0, 870, 871, 7, 7, 0, 0, 871, 872, 7, 3, - 0, 0, 872, 873, 7, 4, 0, 0, 873, 874, 7, 13, 0, 0, 874, 875, 7, 14, 0, - 0, 875, 876, 7, 3, 0, 0, 876, 877, 7, 12, 0, 0, 877, 878, 7, 16, 0, 0, - 878, 879, 7, 25, 0, 0, 879, 880, 7, 4, 0, 0, 880, 176, 1, 0, 0, 0, 881, - 882, 7, 9, 0, 0, 882, 883, 7, 7, 0, 0, 883, 884, 7, 12, 0, 0, 884, 885, - 7, 14, 0, 0, 885, 886, 7, 11, 0, 0, 886, 887, 7, 4, 0, 0, 887, 888, 7, - 3, 0, 0, 888, 889, 7, 14, 0, 0, 889, 890, 7, 12, 0, 0, 890, 891, 7, 4, - 0, 0, 891, 892, 7, 3, 0, 0, 892, 178, 1, 0, 0, 0, 893, 894, 7, 9, 0, 0, - 894, 895, 7, 7, 0, 0, 895, 896, 7, 5, 0, 0, 896, 180, 1, 0, 0, 0, 897, - 898, 7, 9, 0, 0, 898, 899, 7, 14, 0, 0, 899, 900, 7, 6, 0, 0, 900, 901, - 7, 6, 0, 0, 901, 182, 1, 0, 0, 0, 902, 903, 7, 7, 0, 0, 903, 904, 7, 20, - 0, 0, 904, 184, 1, 0, 0, 0, 905, 906, 7, 7, 0, 0, 906, 907, 7, 9, 0, 0, - 907, 186, 1, 0, 0, 0, 908, 909, 7, 7, 0, 0, 909, 910, 7, 9, 0, 0, 910, - 911, 7, 4, 0, 0, 911, 188, 1, 0, 0, 0, 912, 913, 7, 7, 0, 0, 913, 914, - 7, 11, 0, 0, 914, 915, 7, 5, 0, 0, 915, 916, 7, 16, 0, 0, 916, 917, 7, - 7, 0, 0, 917, 918, 7, 9, 0, 0, 918, 919, 7, 12, 0, 0, 919, 190, 1, 0, 0, - 0, 920, 921, 7, 7, 0, 0, 921, 922, 7, 3, 0, 0, 922, 192, 1, 0, 0, 0, 923, - 924, 7, 7, 0, 0, 924, 925, 7, 3, 0, 0, 925, 926, 7, 1, 0, 0, 926, 927, - 7, 4, 0, 0, 927, 928, 7, 3, 0, 0, 928, 194, 1, 0, 0, 0, 929, 930, 7, 11, - 0, 0, 930, 931, 7, 0, 0, 0, 931, 932, 7, 3, 0, 0, 932, 933, 7, 5, 0, 0, - 933, 934, 7, 16, 0, 0, 934, 935, 7, 5, 0, 0, 935, 936, 7, 16, 0, 0, 936, - 937, 7, 7, 0, 0, 937, 938, 7, 9, 0, 0, 938, 196, 1, 0, 0, 0, 939, 940, - 7, 11, 0, 0, 940, 941, 7, 0, 0, 0, 941, 942, 7, 12, 0, 0, 942, 943, 7, - 12, 0, 0, 943, 944, 7, 8, 0, 0, 944, 945, 7, 7, 0, 0, 945, 946, 7, 3, 0, - 0, 946, 947, 7, 1, 0, 0, 947, 198, 1, 0, 0, 0, 948, 949, 7, 11, 0, 0, 949, - 950, 7, 4, 0, 0, 950, 951, 7, 3, 0, 0, 951, 200, 1, 0, 0, 0, 952, 953, - 7, 11, 0, 0, 953, 954, 7, 4, 0, 0, 954, 955, 7, 3, 0, 0, 955, 956, 7, 19, - 0, 0, 956, 957, 7, 16, 0, 0, 957, 958, 7, 12, 0, 0, 958, 959, 7, 12, 0, - 0, 959, 960, 7, 16, 0, 0, 960, 961, 7, 7, 0, 0, 961, 962, 7, 9, 0, 0, 962, - 202, 1, 0, 0, 0, 963, 964, 7, 11, 0, 0, 964, 965, 7, 4, 0, 0, 965, 966, - 7, 3, 0, 0, 966, 967, 7, 19, 0, 0, 967, 968, 7, 16, 0, 0, 968, 969, 7, - 12, 0, 0, 969, 970, 7, 12, 0, 0, 970, 971, 7, 16, 0, 0, 971, 972, 7, 7, - 0, 0, 972, 973, 7, 9, 0, 0, 973, 974, 7, 12, 0, 0, 974, 204, 1, 0, 0, 0, - 975, 976, 7, 11, 0, 0, 976, 977, 7, 3, 0, 0, 977, 978, 7, 16, 0, 0, 978, - 979, 7, 19, 0, 0, 979, 980, 7, 0, 0, 0, 980, 981, 7, 3, 0, 0, 981, 982, - 7, 10, 0, 0, 982, 206, 1, 0, 0, 0, 983, 984, 7, 21, 0, 0, 984, 985, 7, - 14, 0, 0, 985, 986, 7, 7, 0, 0, 986, 987, 7, 3, 0, 0, 987, 988, 7, 14, - 0, 0, 988, 989, 7, 19, 0, 0, 989, 208, 1, 0, 0, 0, 990, 991, 7, 3, 0, 0, - 991, 992, 7, 4, 0, 0, 992, 993, 7, 9, 0, 0, 993, 994, 7, 0, 0, 0, 994, - 995, 7, 19, 0, 0, 995, 996, 7, 4, 0, 0, 996, 210, 1, 0, 0, 0, 997, 998, - 7, 3, 0, 0, 998, 999, 7, 4, 0, 0, 999, 1000, 7, 11, 0, 0, 1000, 1001, 7, - 6, 0, 0, 1001, 1002, 7, 0, 0, 0, 1002, 1003, 7, 13, 0, 0, 1003, 1004, 7, - 4, 0, 0, 1004, 212, 1, 0, 0, 0, 1005, 1006, 7, 3, 0, 0, 1006, 1007, 7, - 4, 0, 0, 1007, 1008, 7, 11, 0, 0, 1008, 1009, 7, 6, 0, 0, 1009, 1010, 7, - 16, 0, 0, 1010, 1011, 7, 13, 0, 0, 1011, 1012, 7, 0, 0, 0, 1012, 1013, - 7, 5, 0, 0, 1013, 1014, 7, 16, 0, 0, 1014, 1015, 7, 7, 0, 0, 1015, 1016, - 7, 9, 0, 0, 1016, 214, 1, 0, 0, 0, 1017, 1018, 7, 3, 0, 0, 1018, 1019, - 7, 4, 0, 0, 1019, 1020, 7, 5, 0, 0, 1020, 1021, 7, 14, 0, 0, 1021, 1022, - 7, 3, 0, 0, 1022, 1023, 7, 9, 0, 0, 1023, 1024, 7, 12, 0, 0, 1024, 216, - 1, 0, 0, 0, 1025, 1026, 7, 3, 0, 0, 1026, 1027, 7, 4, 0, 0, 1027, 1028, - 7, 25, 0, 0, 1028, 1029, 7, 7, 0, 0, 1029, 1030, 7, 24, 0, 0, 1030, 1031, - 7, 4, 0, 0, 1031, 218, 1, 0, 0, 0, 1032, 1033, 7, 3, 0, 0, 1033, 1034, - 7, 7, 0, 0, 1034, 1035, 7, 6, 0, 0, 1035, 1036, 7, 4, 0, 0, 1036, 220, - 1, 0, 0, 0, 1037, 1038, 7, 3, 0, 0, 1038, 1039, 7, 7, 0, 0, 1039, 1040, - 7, 6, 0, 0, 1040, 1041, 7, 4, 0, 0, 1041, 1042, 7, 12, 0, 0, 1042, 222, - 1, 0, 0, 0, 1043, 1044, 7, 12, 0, 0, 1044, 1045, 7, 13, 0, 0, 1045, 1046, - 7, 15, 0, 0, 1046, 1047, 7, 4, 0, 0, 1047, 1048, 7, 19, 0, 0, 1048, 1049, - 7, 0, 0, 0, 1049, 224, 1, 0, 0, 0, 1050, 1051, 7, 12, 0, 0, 1051, 1052, - 7, 4, 0, 0, 1052, 1053, 7, 6, 0, 0, 1053, 1054, 7, 4, 0, 0, 1054, 1055, - 7, 13, 0, 0, 1055, 1056, 7, 5, 0, 0, 1056, 226, 1, 0, 0, 0, 1057, 1058, - 7, 12, 0, 0, 1058, 1059, 7, 4, 0, 0, 1059, 1060, 7, 5, 0, 0, 1060, 228, - 1, 0, 0, 0, 1061, 1062, 7, 12, 0, 0, 1062, 1063, 7, 20, 0, 0, 1063, 1064, - 7, 14, 0, 0, 1064, 1065, 7, 9, 0, 0, 1065, 1066, 7, 13, 0, 0, 1066, 230, - 1, 0, 0, 0, 1067, 1068, 7, 12, 0, 0, 1068, 1069, 7, 5, 0, 0, 1069, 1070, - 7, 0, 0, 0, 1070, 1071, 7, 5, 0, 0, 1071, 1072, 7, 16, 0, 0, 1072, 1073, - 7, 13, 0, 0, 1073, 232, 1, 0, 0, 0, 1074, 1075, 7, 12, 0, 0, 1075, 1076, - 7, 5, 0, 0, 1076, 1077, 7, 7, 0, 0, 1077, 1078, 7, 3, 0, 0, 1078, 1079, - 7, 0, 0, 0, 1079, 1080, 7, 2, 0, 0, 1080, 1081, 7, 4, 0, 0, 1081, 234, - 1, 0, 0, 0, 1082, 1083, 7, 12, 0, 0, 1083, 1084, 7, 5, 0, 0, 1084, 1085, - 7, 10, 0, 0, 1085, 1086, 7, 11, 0, 0, 1086, 1087, 7, 4, 0, 0, 1087, 236, - 1, 0, 0, 0, 1088, 1089, 7, 12, 0, 0, 1089, 1090, 7, 14, 0, 0, 1090, 1091, - 7, 11, 0, 0, 1091, 1092, 7, 4, 0, 0, 1092, 1093, 7, 3, 0, 0, 1093, 1094, - 7, 14, 0, 0, 1094, 1095, 7, 12, 0, 0, 1095, 1096, 7, 4, 0, 0, 1096, 1097, - 7, 3, 0, 0, 1097, 238, 1, 0, 0, 0, 1098, 1099, 7, 5, 0, 0, 1099, 1100, - 7, 0, 0, 0, 1100, 1101, 7, 18, 0, 0, 1101, 1102, 7, 6, 0, 0, 1102, 1103, - 7, 4, 0, 0, 1103, 240, 1, 0, 0, 0, 1104, 1105, 7, 5, 0, 0, 1105, 1106, - 7, 15, 0, 0, 1106, 1107, 7, 3, 0, 0, 1107, 1108, 7, 4, 0, 0, 1108, 1109, - 7, 4, 0, 0, 1109, 242, 1, 0, 0, 0, 1110, 1111, 7, 5, 0, 0, 1111, 1112, - 7, 16, 0, 0, 1112, 1113, 7, 19, 0, 0, 1113, 1114, 7, 4, 0, 0, 1114, 1115, - 7, 12, 0, 0, 1115, 1116, 7, 5, 0, 0, 1116, 1117, 7, 0, 0, 0, 1117, 1118, - 7, 19, 0, 0, 1118, 1119, 7, 11, 0, 0, 1119, 244, 1, 0, 0, 0, 1120, 1121, - 7, 5, 0, 0, 1121, 1122, 7, 7, 0, 0, 1122, 246, 1, 0, 0, 0, 1123, 1124, - 7, 5, 0, 0, 1124, 1125, 7, 7, 0, 0, 1125, 1126, 7, 24, 0, 0, 1126, 1127, - 7, 4, 0, 0, 1127, 1128, 7, 9, 0, 0, 1128, 248, 1, 0, 0, 0, 1129, 1130, - 7, 5, 0, 0, 1130, 1131, 7, 3, 0, 0, 1131, 1132, 7, 16, 0, 0, 1132, 1133, - 7, 2, 0, 0, 1133, 1134, 7, 2, 0, 0, 1134, 1135, 7, 4, 0, 0, 1135, 1136, - 7, 3, 0, 0, 1136, 250, 1, 0, 0, 0, 1137, 1138, 7, 5, 0, 0, 1138, 1139, - 7, 3, 0, 0, 1139, 1140, 7, 14, 0, 0, 1140, 1141, 7, 4, 0, 0, 1141, 252, - 1, 0, 0, 0, 1142, 1143, 7, 5, 0, 0, 1143, 1144, 7, 3, 0, 0, 1144, 1145, - 7, 14, 0, 0, 1145, 1146, 7, 9, 0, 0, 1146, 1147, 7, 13, 0, 0, 1147, 1148, - 7, 0, 0, 0, 1148, 1149, 7, 5, 0, 0, 1149, 1150, 7, 4, 0, 0, 1150, 254, - 1, 0, 0, 0, 1151, 1152, 7, 5, 0, 0, 1152, 1153, 7, 5, 0, 0, 1153, 1154, - 7, 6, 0, 0, 1154, 256, 1, 0, 0, 0, 1155, 1156, 7, 5, 0, 0, 1156, 1157, - 7, 8, 0, 0, 1157, 1158, 7, 7, 0, 0, 1158, 258, 1, 0, 0, 0, 1159, 1160, - 7, 5, 0, 0, 1160, 1161, 7, 10, 0, 0, 1161, 1162, 7, 11, 0, 0, 1162, 1163, - 7, 4, 0, 0, 1163, 260, 1, 0, 0, 0, 1164, 1165, 7, 14, 0, 0, 1165, 1166, - 7, 9, 0, 0, 1166, 1167, 7, 6, 0, 0, 1167, 1168, 7, 7, 0, 0, 1168, 1169, - 7, 2, 0, 0, 1169, 1170, 7, 2, 0, 0, 1170, 1171, 7, 4, 0, 0, 1171, 1172, - 7, 1, 0, 0, 1172, 262, 1, 0, 0, 0, 1173, 1174, 7, 14, 0, 0, 1174, 1175, - 7, 11, 0, 0, 1175, 1176, 7, 1, 0, 0, 1176, 1177, 7, 0, 0, 0, 1177, 1178, - 7, 5, 0, 0, 1178, 1179, 7, 4, 0, 0, 1179, 264, 1, 0, 0, 0, 1180, 1181, - 7, 14, 0, 0, 1181, 1182, 7, 12, 0, 0, 1182, 1183, 7, 4, 0, 0, 1183, 266, - 1, 0, 0, 0, 1184, 1185, 7, 14, 0, 0, 1185, 1186, 7, 12, 0, 0, 1186, 1187, - 7, 4, 0, 0, 1187, 1188, 7, 3, 0, 0, 1188, 268, 1, 0, 0, 0, 1189, 1190, - 7, 14, 0, 0, 1190, 1191, 7, 12, 0, 0, 1191, 1192, 7, 16, 0, 0, 1192, 1193, - 7, 9, 0, 0, 1193, 1194, 7, 2, 0, 0, 1194, 270, 1, 0, 0, 0, 1195, 1196, - 7, 14, 0, 0, 1196, 1197, 7, 14, 0, 0, 1197, 1198, 7, 16, 0, 0, 1198, 1199, - 7, 1, 0, 0, 1199, 272, 1, 0, 0, 0, 1200, 1201, 7, 25, 0, 0, 1201, 1202, - 7, 0, 0, 0, 1202, 1203, 7, 6, 0, 0, 1203, 1204, 7, 14, 0, 0, 1204, 1205, - 7, 4, 0, 0, 1205, 1206, 7, 12, 0, 0, 1206, 274, 1, 0, 0, 0, 1207, 1208, - 7, 25, 0, 0, 1208, 1209, 7, 16, 0, 0, 1209, 1210, 7, 4, 0, 0, 1210, 1211, - 7, 8, 0, 0, 1211, 276, 1, 0, 0, 0, 1212, 1213, 7, 8, 0, 0, 1213, 1214, - 7, 15, 0, 0, 1214, 1215, 7, 4, 0, 0, 1215, 1216, 7, 3, 0, 0, 1216, 1217, - 7, 4, 0, 0, 1217, 278, 1, 0, 0, 0, 1218, 1219, 7, 8, 0, 0, 1219, 1220, - 7, 16, 0, 0, 1220, 1221, 7, 5, 0, 0, 1221, 1222, 7, 15, 0, 0, 1222, 280, - 1, 0, 0, 0, 1223, 1224, 7, 8, 0, 0, 1224, 1225, 7, 3, 0, 0, 1225, 1226, - 7, 16, 0, 0, 1226, 1227, 7, 5, 0, 0, 1227, 1228, 7, 4, 0, 0, 1228, 1229, - 7, 5, 0, 0, 1229, 1230, 7, 16, 0, 0, 1230, 1231, 7, 19, 0, 0, 1231, 1232, - 7, 4, 0, 0, 1232, 282, 1, 0, 0, 0, 1233, 1234, 7, 0, 0, 0, 1234, 1235, - 7, 12, 0, 0, 1235, 1236, 7, 13, 0, 0, 1236, 1237, 7, 16, 0, 0, 1237, 1238, - 7, 16, 0, 0, 1238, 284, 1, 0, 0, 0, 1239, 1240, 7, 18, 0, 0, 1240, 1241, - 7, 16, 0, 0, 1241, 1242, 7, 2, 0, 0, 1242, 1243, 7, 16, 0, 0, 1243, 1244, - 7, 9, 0, 0, 1244, 1245, 7, 5, 0, 0, 1245, 286, 1, 0, 0, 0, 1246, 1247, - 7, 18, 0, 0, 1247, 1248, 7, 6, 0, 0, 1248, 1249, 7, 7, 0, 0, 1249, 1250, - 7, 18, 0, 0, 1250, 288, 1, 0, 0, 0, 1251, 1252, 7, 18, 0, 0, 1252, 1253, - 7, 7, 0, 0, 1253, 1254, 7, 7, 0, 0, 1254, 1255, 7, 6, 0, 0, 1255, 1256, - 7, 4, 0, 0, 1256, 1257, 7, 0, 0, 0, 1257, 1258, 7, 9, 0, 0, 1258, 290, - 1, 0, 0, 0, 1259, 1260, 7, 13, 0, 0, 1260, 1261, 7, 7, 0, 0, 1261, 1262, - 7, 14, 0, 0, 1262, 1263, 7, 9, 0, 0, 1263, 1264, 7, 5, 0, 0, 1264, 1265, - 7, 4, 0, 0, 1265, 1266, 7, 3, 0, 0, 1266, 292, 1, 0, 0, 0, 1267, 1268, - 7, 1, 0, 0, 1268, 1269, 7, 0, 0, 0, 1269, 1270, 7, 5, 0, 0, 1270, 1271, - 7, 4, 0, 0, 1271, 294, 1, 0, 0, 0, 1272, 1273, 7, 1, 0, 0, 1273, 1274, - 7, 4, 0, 0, 1274, 1275, 7, 13, 0, 0, 1275, 1276, 7, 16, 0, 0, 1276, 1277, - 7, 19, 0, 0, 1277, 1278, 7, 0, 0, 0, 1278, 1279, 7, 6, 0, 0, 1279, 296, - 1, 0, 0, 0, 1280, 1281, 7, 1, 0, 0, 1281, 1282, 7, 7, 0, 0, 1282, 1283, - 7, 14, 0, 0, 1283, 1284, 7, 18, 0, 0, 1284, 1285, 7, 6, 0, 0, 1285, 1286, - 7, 4, 0, 0, 1286, 298, 1, 0, 0, 0, 1287, 1288, 7, 20, 0, 0, 1288, 1289, - 7, 6, 0, 0, 1289, 1290, 7, 7, 0, 0, 1290, 1291, 7, 0, 0, 0, 1291, 1292, - 7, 5, 0, 0, 1292, 300, 1, 0, 0, 0, 1293, 1294, 7, 20, 0, 0, 1294, 1295, - 7, 3, 0, 0, 1295, 1296, 7, 7, 0, 0, 1296, 1297, 7, 17, 0, 0, 1297, 1298, - 7, 4, 0, 0, 1298, 1299, 7, 9, 0, 0, 1299, 302, 1, 0, 0, 0, 1300, 1301, - 7, 16, 0, 0, 1301, 1302, 7, 9, 0, 0, 1302, 1303, 7, 4, 0, 0, 1303, 1304, - 7, 5, 0, 0, 1304, 304, 1, 0, 0, 0, 1305, 1306, 7, 16, 0, 0, 1306, 1307, - 7, 9, 0, 0, 1307, 1308, 7, 5, 0, 0, 1308, 306, 1, 0, 0, 0, 1309, 1310, - 7, 6, 0, 0, 1310, 1311, 7, 16, 0, 0, 1311, 1312, 7, 12, 0, 0, 1312, 1313, - 7, 5, 0, 0, 1313, 308, 1, 0, 0, 0, 1314, 1315, 7, 19, 0, 0, 1315, 1316, - 7, 0, 0, 0, 1316, 1317, 7, 11, 0, 0, 1317, 310, 1, 0, 0, 0, 1318, 1319, - 7, 12, 0, 0, 1319, 1320, 7, 19, 0, 0, 1320, 1321, 7, 0, 0, 0, 1321, 1322, - 7, 6, 0, 0, 1322, 1323, 7, 6, 0, 0, 1323, 1324, 7, 16, 0, 0, 1324, 1325, - 7, 9, 0, 0, 1325, 1326, 7, 5, 0, 0, 1326, 312, 1, 0, 0, 0, 1327, 1328, - 7, 5, 0, 0, 1328, 1329, 7, 4, 0, 0, 1329, 1330, 7, 22, 0, 0, 1330, 1331, - 7, 5, 0, 0, 1331, 314, 1, 0, 0, 0, 1332, 1333, 7, 5, 0, 0, 1333, 1334, - 7, 16, 0, 0, 1334, 1335, 7, 19, 0, 0, 1335, 1336, 7, 4, 0, 0, 1336, 1337, - 7, 14, 0, 0, 1337, 1338, 7, 14, 0, 0, 1338, 1339, 7, 16, 0, 0, 1339, 1340, - 7, 1, 0, 0, 1340, 316, 1, 0, 0, 0, 1341, 1342, 7, 5, 0, 0, 1342, 1343, - 7, 16, 0, 0, 1343, 1344, 7, 19, 0, 0, 1344, 1345, 7, 4, 0, 0, 1345, 318, - 1, 0, 0, 0, 1346, 1347, 7, 5, 0, 0, 1347, 1348, 7, 16, 0, 0, 1348, 1349, - 7, 9, 0, 0, 1349, 1350, 7, 10, 0, 0, 1350, 1351, 7, 16, 0, 0, 1351, 1352, - 7, 9, 0, 0, 1352, 1353, 7, 5, 0, 0, 1353, 320, 1, 0, 0, 0, 1354, 1355, - 7, 5, 0, 0, 1355, 1356, 7, 14, 0, 0, 1356, 1357, 7, 11, 0, 0, 1357, 1358, - 7, 6, 0, 0, 1358, 1359, 7, 4, 0, 0, 1359, 322, 1, 0, 0, 0, 1360, 1361, - 7, 25, 0, 0, 1361, 1362, 7, 0, 0, 0, 1362, 1363, 7, 3, 0, 0, 1363, 1364, - 7, 13, 0, 0, 1364, 1365, 7, 15, 0, 0, 1365, 1366, 7, 0, 0, 0, 1366, 1367, - 7, 3, 0, 0, 1367, 324, 1, 0, 0, 0, 1368, 1369, 7, 25, 0, 0, 1369, 1370, - 7, 0, 0, 0, 1370, 1371, 7, 3, 0, 0, 1371, 1372, 7, 16, 0, 0, 1372, 1373, - 7, 9, 0, 0, 1373, 1374, 7, 5, 0, 0, 1374, 326, 1, 0, 0, 0, 1375, 1376, - 5, 36, 0, 0, 1376, 1377, 5, 36, 0, 0, 1377, 1383, 1, 0, 0, 0, 1378, 1382, - 8, 26, 0, 0, 1379, 1380, 5, 36, 0, 0, 1380, 1382, 8, 26, 0, 0, 1381, 1378, - 1, 0, 0, 0, 1381, 1379, 1, 0, 0, 0, 1382, 1385, 1, 0, 0, 0, 1383, 1381, - 1, 0, 0, 0, 1383, 1384, 1, 0, 0, 0, 1384, 1386, 1, 0, 0, 0, 1385, 1383, - 1, 0, 0, 0, 1386, 1387, 5, 36, 0, 0, 1387, 1388, 5, 36, 0, 0, 1388, 328, - 1, 0, 0, 0, 1389, 1397, 5, 39, 0, 0, 1390, 1391, 5, 92, 0, 0, 1391, 1396, - 9, 0, 0, 0, 1392, 1393, 5, 39, 0, 0, 1393, 1396, 5, 39, 0, 0, 1394, 1396, - 8, 27, 0, 0, 1395, 1390, 1, 0, 0, 0, 1395, 1392, 1, 0, 0, 0, 1395, 1394, - 1, 0, 0, 0, 1396, 1399, 1, 0, 0, 0, 1397, 1395, 1, 0, 0, 0, 1397, 1398, - 1, 0, 0, 0, 1398, 1400, 1, 0, 0, 0, 1399, 1397, 1, 0, 0, 0, 1400, 1401, - 5, 39, 0, 0, 1401, 330, 1, 0, 0, 0, 1402, 1404, 3, 355, 177, 0, 1403, 1402, - 1, 0, 0, 0, 1404, 1405, 1, 0, 0, 0, 1405, 1403, 1, 0, 0, 0, 1405, 1406, - 1, 0, 0, 0, 1406, 332, 1, 0, 0, 0, 1407, 1409, 3, 31, 15, 0, 1408, 1407, - 1, 0, 0, 0, 1408, 1409, 1, 0, 0, 0, 1409, 1411, 1, 0, 0, 0, 1410, 1412, - 7, 28, 0, 0, 1411, 1410, 1, 0, 0, 0, 1412, 1413, 1, 0, 0, 0, 1413, 1411, - 1, 0, 0, 0, 1413, 1414, 1, 0, 0, 0, 1414, 1421, 1, 0, 0, 0, 1415, 1417, - 3, 19, 9, 0, 1416, 1418, 7, 28, 0, 0, 1417, 1416, 1, 0, 0, 0, 1418, 1419, - 1, 0, 0, 0, 1419, 1417, 1, 0, 0, 0, 1419, 1420, 1, 0, 0, 0, 1420, 1422, - 1, 0, 0, 0, 1421, 1415, 1, 0, 0, 0, 1421, 1422, 1, 0, 0, 0, 1422, 334, - 1, 0, 0, 0, 1423, 1424, 7, 22, 0, 0, 1424, 1428, 5, 39, 0, 0, 1425, 1426, - 3, 353, 176, 0, 1426, 1427, 3, 353, 176, 0, 1427, 1429, 1, 0, 0, 0, 1428, - 1425, 1, 0, 0, 0, 1429, 1430, 1, 0, 0, 0, 1430, 1428, 1, 0, 0, 0, 1430, - 1431, 1, 0, 0, 0, 1431, 1432, 1, 0, 0, 0, 1432, 1433, 5, 39, 0, 0, 1433, - 1443, 1, 0, 0, 0, 1434, 1435, 5, 48, 0, 0, 1435, 1436, 7, 22, 0, 0, 1436, - 1438, 1, 0, 0, 0, 1437, 1439, 3, 353, 176, 0, 1438, 1437, 1, 0, 0, 0, 1439, - 1440, 1, 0, 0, 0, 1440, 1438, 1, 0, 0, 0, 1440, 1441, 1, 0, 0, 0, 1441, - 1443, 1, 0, 0, 0, 1442, 1423, 1, 0, 0, 0, 1442, 1434, 1, 0, 0, 0, 1443, - 336, 1, 0, 0, 0, 1444, 1446, 3, 355, 177, 0, 1445, 1444, 1, 0, 0, 0, 1446, - 1447, 1, 0, 0, 0, 1447, 1445, 1, 0, 0, 0, 1447, 1448, 1, 0, 0, 0, 1448, - 1450, 1, 0, 0, 0, 1449, 1451, 5, 46, 0, 0, 1450, 1449, 1, 0, 0, 0, 1450, - 1451, 1, 0, 0, 0, 1451, 1452, 1, 0, 0, 0, 1452, 1453, 3, 357, 178, 0, 1453, - 1470, 1, 0, 0, 0, 1454, 1456, 3, 355, 177, 0, 1455, 1454, 1, 0, 0, 0, 1456, - 1459, 1, 0, 0, 0, 1457, 1455, 1, 0, 0, 0, 1457, 1458, 1, 0, 0, 0, 1458, - 1460, 1, 0, 0, 0, 1459, 1457, 1, 0, 0, 0, 1460, 1462, 5, 46, 0, 0, 1461, - 1463, 3, 355, 177, 0, 1462, 1461, 1, 0, 0, 0, 1463, 1464, 1, 0, 0, 0, 1464, - 1462, 1, 0, 0, 0, 1464, 1465, 1, 0, 0, 0, 1465, 1467, 1, 0, 0, 0, 1466, - 1468, 3, 357, 178, 0, 1467, 1466, 1, 0, 0, 0, 1467, 1468, 1, 0, 0, 0, 1468, - 1470, 1, 0, 0, 0, 1469, 1445, 1, 0, 0, 0, 1469, 1457, 1, 0, 0, 0, 1470, - 338, 1, 0, 0, 0, 1471, 1475, 7, 29, 0, 0, 1472, 1474, 7, 30, 0, 0, 1473, - 1472, 1, 0, 0, 0, 1474, 1477, 1, 0, 0, 0, 1475, 1473, 1, 0, 0, 0, 1475, - 1476, 1, 0, 0, 0, 1476, 1486, 1, 0, 0, 0, 1477, 1475, 1, 0, 0, 0, 1478, - 1480, 5, 34, 0, 0, 1479, 1481, 8, 31, 0, 0, 1480, 1479, 1, 0, 0, 0, 1481, - 1482, 1, 0, 0, 0, 1482, 1480, 1, 0, 0, 0, 1482, 1483, 1, 0, 0, 0, 1483, - 1484, 1, 0, 0, 0, 1484, 1486, 5, 34, 0, 0, 1485, 1471, 1, 0, 0, 0, 1485, - 1478, 1, 0, 0, 0, 1486, 340, 1, 0, 0, 0, 1487, 1488, 3, 351, 175, 0, 1488, - 1489, 3, 351, 175, 0, 1489, 1490, 5, 45, 0, 0, 1490, 1491, 3, 351, 175, - 0, 1491, 1492, 5, 45, 0, 0, 1492, 1493, 3, 351, 175, 0, 1493, 1494, 5, - 45, 0, 0, 1494, 1495, 3, 351, 175, 0, 1495, 1496, 5, 45, 0, 0, 1496, 1497, - 3, 351, 175, 0, 1497, 1498, 3, 351, 175, 0, 1498, 1499, 3, 351, 175, 0, - 1499, 342, 1, 0, 0, 0, 1500, 1502, 7, 32, 0, 0, 1501, 1500, 1, 0, 0, 0, - 1502, 1503, 1, 0, 0, 0, 1503, 1501, 1, 0, 0, 0, 1503, 1504, 1, 0, 0, 0, - 1504, 1505, 1, 0, 0, 0, 1505, 1506, 6, 171, 0, 0, 1506, 344, 1, 0, 0, 0, - 1507, 1508, 5, 47, 0, 0, 1508, 1509, 5, 42, 0, 0, 1509, 1510, 5, 33, 0, - 0, 1510, 1512, 1, 0, 0, 0, 1511, 1513, 9, 0, 0, 0, 1512, 1511, 1, 0, 0, - 0, 1513, 1514, 1, 0, 0, 0, 1514, 1515, 1, 0, 0, 0, 1514, 1512, 1, 0, 0, - 0, 1515, 1516, 1, 0, 0, 0, 1516, 1517, 5, 42, 0, 0, 1517, 1518, 5, 47, - 0, 0, 1518, 1519, 1, 0, 0, 0, 1519, 1520, 6, 172, 0, 0, 1520, 346, 1, 0, - 0, 0, 1521, 1522, 5, 47, 0, 0, 1522, 1523, 5, 42, 0, 0, 1523, 1527, 1, - 0, 0, 0, 1524, 1526, 9, 0, 0, 0, 1525, 1524, 1, 0, 0, 0, 1526, 1529, 1, - 0, 0, 0, 1527, 1528, 1, 0, 0, 0, 1527, 1525, 1, 0, 0, 0, 1528, 1530, 1, - 0, 0, 0, 1529, 1527, 1, 0, 0, 0, 1530, 1531, 5, 42, 0, 0, 1531, 1532, 5, - 47, 0, 0, 1532, 1533, 1, 0, 0, 0, 1533, 1534, 6, 173, 0, 0, 1534, 348, - 1, 0, 0, 0, 1535, 1536, 5, 45, 0, 0, 1536, 1537, 5, 45, 0, 0, 1537, 1542, - 5, 32, 0, 0, 1538, 1542, 5, 35, 0, 0, 1539, 1540, 5, 47, 0, 0, 1540, 1542, - 5, 47, 0, 0, 1541, 1535, 1, 0, 0, 0, 1541, 1538, 1, 0, 0, 0, 1541, 1539, - 1, 0, 0, 0, 1542, 1546, 1, 0, 0, 0, 1543, 1545, 8, 33, 0, 0, 1544, 1543, - 1, 0, 0, 0, 1545, 1548, 1, 0, 0, 0, 1546, 1544, 1, 0, 0, 0, 1546, 1547, - 1, 0, 0, 0, 1547, 1554, 1, 0, 0, 0, 1548, 1546, 1, 0, 0, 0, 1549, 1551, - 5, 13, 0, 0, 1550, 1549, 1, 0, 0, 0, 1550, 1551, 1, 0, 0, 0, 1551, 1552, - 1, 0, 0, 0, 1552, 1555, 5, 10, 0, 0, 1553, 1555, 5, 0, 0, 1, 1554, 1550, - 1, 0, 0, 0, 1554, 1553, 1, 0, 0, 0, 1555, 1567, 1, 0, 0, 0, 1556, 1557, - 5, 45, 0, 0, 1557, 1558, 5, 45, 0, 0, 1558, 1564, 1, 0, 0, 0, 1559, 1561, - 5, 13, 0, 0, 1560, 1559, 1, 0, 0, 0, 1560, 1561, 1, 0, 0, 0, 1561, 1562, - 1, 0, 0, 0, 1562, 1565, 5, 10, 0, 0, 1563, 1565, 5, 0, 0, 1, 1564, 1560, - 1, 0, 0, 0, 1564, 1563, 1, 0, 0, 0, 1565, 1567, 1, 0, 0, 0, 1566, 1541, - 1, 0, 0, 0, 1566, 1556, 1, 0, 0, 0, 1567, 1568, 1, 0, 0, 0, 1568, 1569, - 6, 174, 0, 0, 1569, 350, 1, 0, 0, 0, 1570, 1571, 7, 34, 0, 0, 1571, 1572, - 7, 34, 0, 0, 1572, 1573, 7, 34, 0, 0, 1573, 1574, 7, 34, 0, 0, 1574, 352, - 1, 0, 0, 0, 1575, 1576, 7, 34, 0, 0, 1576, 354, 1, 0, 0, 0, 1577, 1578, - 7, 28, 0, 0, 1578, 356, 1, 0, 0, 0, 1579, 1581, 7, 4, 0, 0, 1580, 1582, - 5, 45, 0, 0, 1581, 1580, 1, 0, 0, 0, 1581, 1582, 1, 0, 0, 0, 1582, 1584, - 1, 0, 0, 0, 1583, 1585, 3, 355, 177, 0, 1584, 1583, 1, 0, 0, 0, 1585, 1586, - 1, 0, 0, 0, 1586, 1584, 1, 0, 0, 0, 1586, 1587, 1, 0, 0, 0, 1587, 358, - 1, 0, 0, 0, 34, 0, 1381, 1383, 1395, 1397, 1405, 1408, 1413, 1419, 1421, - 1430, 1440, 1442, 1447, 1450, 1457, 1464, 1467, 1469, 1475, 1482, 1485, - 1503, 1514, 1527, 1541, 1546, 1550, 1554, 1560, 1564, 1566, 1581, 1586, - 1, 0, 1, 0, + 88, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, 1, 88, + 1, 88, 1, 89, 1, 89, 1, 89, 1, 89, 1, 90, 1, 90, 1, 90, 1, 90, 1, 90, 1, + 91, 1, 91, 1, 91, 1, 92, 1, 92, 1, 92, 1, 93, 1, 93, 1, 93, 1, 93, 1, 94, + 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 95, 1, 95, 1, 95, 1, + 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 96, 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, + 1, 97, 1, 97, 1, 97, 1, 97, 1, 97, 1, 98, 1, 98, 1, 98, 1, 98, 1, 98, 1, + 98, 1, 98, 1, 98, 1, 98, 1, 99, 1, 99, 1, 99, 1, 99, 1, 100, 1, 100, 1, + 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, 100, 1, + 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, 101, 1, + 101, 1, 101, 1, 101, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, + 102, 1, 102, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, + 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 104, 1, 105, 1, 105, 1, + 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 105, 1, 106, 1, 106, 1, 106, 1, + 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 1, + 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 108, 1, + 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 108, 1, 109, 1, 109, 1, 109, 1, + 109, 1, 109, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 110, 1, 111, 1, + 111, 1, 111, 1, 111, 1, 111, 1, 111, 1, 111, 1, 112, 1, 112, 1, 112, 1, + 112, 1, 112, 1, 112, 1, 112, 1, 113, 1, 113, 1, 113, 1, 113, 1, 114, 1, + 114, 1, 114, 1, 114, 1, 114, 1, 114, 1, 115, 1, 115, 1, 115, 1, 115, 1, + 115, 1, 115, 1, 115, 1, 116, 1, 116, 1, 116, 1, 116, 1, 116, 1, 116, 1, + 116, 1, 116, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 1, 118, 1, + 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, + 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 119, 1, 120, 1, 120, 1, 120, 1, + 120, 1, 120, 1, 120, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, 121, 1, + 121, 1, 121, 1, 121, 1, 121, 1, 122, 1, 122, 1, 122, 1, 123, 1, 123, 1, + 123, 1, 123, 1, 123, 1, 123, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, + 124, 1, 124, 1, 124, 1, 125, 1, 125, 1, 125, 1, 125, 1, 125, 1, 126, 1, + 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 126, 1, 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, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, 130, 1, + 130, 1, 130, 1, 130, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, 131, 1, + 131, 1, 132, 1, 132, 1, 132, 1, 132, 1, 133, 1, 133, 1, 133, 1, 133, 1, + 133, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 134, 1, 135, 1, 135, 1, + 135, 1, 135, 1, 135, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, + 136, 1, 137, 1, 137, 1, 137, 1, 137, 1, 137, 1, 138, 1, 138, 1, 138, 1, + 138, 1, 138, 1, 138, 1, 139, 1, 139, 1, 139, 1, 139, 1, 139, 1, 140, 1, + 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, 140, 1, + 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 142, 1, 142, 1, 142, 1, + 142, 1, 142, 1, 142, 1, 142, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, + 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 145, 1, + 145, 1, 145, 1, 145, 1, 145, 1, 145, 1, 145, 1, 145, 1, 146, 1, 146, 1, + 146, 1, 146, 1, 146, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, + 147, 1, 147, 1, 148, 1, 148, 1, 148, 1, 148, 1, 148, 1, 148, 1, 148, 1, + 149, 1, 149, 1, 149, 1, 149, 1, 149, 1, 149, 1, 150, 1, 150, 1, 150, 1, + 150, 1, 150, 1, 150, 1, 150, 1, 151, 1, 151, 1, 151, 1, 151, 1, 151, 1, + 152, 1, 152, 1, 152, 1, 152, 1, 153, 1, 153, 1, 153, 1, 153, 1, 153, 1, + 154, 1, 154, 1, 154, 1, 154, 1, 155, 1, 155, 1, 155, 1, 155, 1, 155, 1, + 155, 1, 155, 1, 155, 1, 155, 1, 156, 1, 156, 1, 156, 1, 156, 1, 156, 1, + 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 1, + 158, 1, 158, 1, 158, 1, 158, 1, 158, 1, 159, 1, 159, 1, 159, 1, 159, 1, + 159, 1, 159, 1, 159, 1, 159, 1, 160, 1, 160, 1, 160, 1, 160, 1, 160, 1, + 160, 1, 161, 1, 161, 1, 161, 1, 161, 1, 161, 1, 161, 1, 161, 1, 162, 1, + 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 162, 1, 163, 1, + 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 163, 1, 164, 1, 164, 1, + 164, 1, 164, 1, 164, 1, 164, 1, 165, 1, 165, 1, 165, 1, 165, 1, 166, 1, + 166, 1, 166, 1, 166, 1, 166, 1, 166, 1, 166, 1, 166, 1, 166, 1, 166, 1, + 166, 1, 166, 1, 166, 1, 166, 1, 166, 1, 166, 1, 166, 1, 166, 1, 166, 1, + 166, 1, 166, 1, 167, 1, 167, 1, 167, 1, 167, 1, 168, 1, 168, 1, 168, 1, + 168, 1, 168, 1, 168, 1, 168, 1, 168, 1, 169, 1, 169, 1, 169, 1, 169, 1, + 169, 1, 169, 1, 169, 1, 170, 1, 170, 1, 170, 1, 170, 1, 171, 1, 171, 1, + 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 171, 1, 172, 1, 172, 1, + 172, 1, 172, 1, 172, 1, 172, 1, 172, 1, 173, 1, 173, 1, 173, 1, 173, 1, + 173, 1, 173, 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, 1, 174, 1, 174, 1, + 174, 1, 174, 1, 175, 1, 175, 1, 175, 1, 175, 1, 175, 1, 175, 1, 175, 1, + 175, 1, 175, 1, 175, 1, 175, 1, 175, 1, 176, 1, 176, 1, 176, 1, 176, 1, + 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, 176, 1, + 176, 1, 176, 1, 176, 1, 176, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, + 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 177, 1, 178, 1, 178, 1, + 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, 178, 1, + 178, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, + 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 179, 1, 180, 1, + 180, 1, 180, 1, 180, 1, 180, 1, 180, 5, 180, 1588, 8, 180, 10, 180, 12, + 180, 1591, 9, 180, 1, 180, 1, 180, 1, 180, 1, 181, 1, 181, 1, 181, 1, 181, + 1, 181, 1, 181, 5, 181, 1602, 8, 181, 10, 181, 12, 181, 1605, 9, 181, 1, + 181, 1, 181, 1, 182, 4, 182, 1610, 8, 182, 11, 182, 12, 182, 1611, 1, 183, + 3, 183, 1615, 8, 183, 1, 183, 4, 183, 1618, 8, 183, 11, 183, 12, 183, 1619, + 1, 183, 1, 183, 4, 183, 1624, 8, 183, 11, 183, 12, 183, 1625, 3, 183, 1628, + 8, 183, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 4, 184, 1635, 8, 184, 11, + 184, 12, 184, 1636, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 1, 184, 4, + 184, 1645, 8, 184, 11, 184, 12, 184, 1646, 3, 184, 1649, 8, 184, 1, 185, + 4, 185, 1652, 8, 185, 11, 185, 12, 185, 1653, 1, 185, 3, 185, 1657, 8, + 185, 1, 185, 1, 185, 1, 185, 5, 185, 1662, 8, 185, 10, 185, 12, 185, 1665, + 9, 185, 1, 185, 1, 185, 4, 185, 1669, 8, 185, 11, 185, 12, 185, 1670, 1, + 185, 3, 185, 1674, 8, 185, 3, 185, 1676, 8, 185, 1, 186, 1, 186, 5, 186, + 1680, 8, 186, 10, 186, 12, 186, 1683, 9, 186, 1, 186, 1, 186, 4, 186, 1687, + 8, 186, 11, 186, 12, 186, 1688, 1, 186, 3, 186, 1692, 8, 186, 1, 187, 1, + 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, 187, 1, + 187, 1, 187, 1, 187, 1, 188, 4, 188, 1708, 8, 188, 11, 188, 12, 188, 1709, + 1, 188, 1, 188, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 4, 189, 1719, 8, + 189, 11, 189, 12, 189, 1720, 1, 189, 1, 189, 1, 189, 1, 189, 1, 189, 1, + 190, 1, 190, 1, 190, 1, 190, 5, 190, 1732, 8, 190, 10, 190, 12, 190, 1735, + 9, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 190, 1, 191, 1, 191, 1, 191, + 1, 191, 1, 191, 1, 191, 3, 191, 1748, 8, 191, 1, 191, 5, 191, 1751, 8, + 191, 10, 191, 12, 191, 1754, 9, 191, 1, 191, 3, 191, 1757, 8, 191, 1, 191, + 1, 191, 3, 191, 1761, 8, 191, 1, 191, 1, 191, 1, 191, 1, 191, 3, 191, 1767, + 8, 191, 1, 191, 1, 191, 3, 191, 1771, 8, 191, 3, 191, 1773, 8, 191, 1, + 191, 1, 191, 1, 192, 1, 192, 1, 192, 1, 192, 1, 192, 1, 193, 1, 193, 1, + 194, 1, 194, 1, 195, 1, 195, 3, 195, 1788, 8, 195, 1, 195, 4, 195, 1791, + 8, 195, 11, 195, 12, 195, 1792, 2, 1720, 1733, 0, 196, 1, 1, 3, 2, 5, 3, + 7, 4, 9, 5, 11, 6, 13, 7, 15, 8, 17, 9, 19, 10, 21, 11, 23, 12, 25, 13, + 27, 14, 29, 15, 31, 16, 33, 17, 35, 18, 37, 19, 39, 20, 41, 21, 43, 22, + 45, 23, 47, 24, 49, 25, 51, 26, 53, 27, 55, 28, 57, 29, 59, 30, 61, 31, + 63, 32, 65, 33, 67, 34, 69, 35, 71, 36, 73, 37, 75, 38, 77, 39, 79, 40, + 81, 41, 83, 42, 85, 43, 87, 44, 89, 45, 91, 46, 93, 47, 95, 48, 97, 49, + 99, 50, 101, 51, 103, 52, 105, 53, 107, 54, 109, 55, 111, 56, 113, 57, + 115, 58, 117, 59, 119, 60, 121, 61, 123, 62, 125, 63, 127, 64, 129, 65, + 131, 66, 133, 67, 135, 68, 137, 69, 139, 70, 141, 71, 143, 72, 145, 73, + 147, 74, 149, 75, 151, 76, 153, 77, 155, 78, 157, 79, 159, 80, 161, 81, + 163, 82, 165, 83, 167, 84, 169, 85, 171, 86, 173, 87, 175, 88, 177, 89, + 179, 90, 181, 91, 183, 92, 185, 93, 187, 94, 189, 95, 191, 96, 193, 97, + 195, 98, 197, 99, 199, 100, 201, 101, 203, 102, 205, 103, 207, 104, 209, + 105, 211, 106, 213, 107, 215, 108, 217, 109, 219, 110, 221, 111, 223, 112, + 225, 113, 227, 114, 229, 115, 231, 116, 233, 117, 235, 118, 237, 119, 239, + 120, 241, 121, 243, 122, 245, 123, 247, 124, 249, 125, 251, 126, 253, 127, + 255, 128, 257, 129, 259, 130, 261, 131, 263, 132, 265, 133, 267, 134, 269, + 135, 271, 136, 273, 137, 275, 138, 277, 139, 279, 140, 281, 141, 283, 142, + 285, 143, 287, 144, 289, 145, 291, 146, 293, 147, 295, 148, 297, 149, 299, + 150, 301, 151, 303, 152, 305, 153, 307, 154, 309, 155, 311, 156, 313, 157, + 315, 158, 317, 159, 319, 160, 321, 161, 323, 162, 325, 163, 327, 164, 329, + 165, 331, 166, 333, 167, 335, 168, 337, 169, 339, 170, 341, 171, 343, 172, + 345, 173, 347, 174, 349, 175, 351, 176, 353, 177, 355, 178, 357, 179, 359, + 180, 361, 181, 363, 182, 365, 183, 367, 184, 369, 185, 371, 186, 373, 187, + 375, 188, 377, 189, 379, 190, 381, 191, 383, 192, 385, 0, 387, 0, 389, + 0, 391, 0, 1, 0, 35, 2, 0, 65, 65, 97, 97, 2, 0, 68, 68, 100, 100, 2, 0, + 71, 71, 103, 103, 2, 0, 82, 82, 114, 114, 2, 0, 69, 69, 101, 101, 2, 0, + 84, 84, 116, 116, 2, 0, 76, 76, 108, 108, 2, 0, 79, 79, 111, 111, 2, 0, + 87, 87, 119, 119, 2, 0, 78, 78, 110, 110, 2, 0, 89, 89, 121, 121, 2, 0, + 80, 80, 112, 112, 2, 0, 83, 83, 115, 115, 2, 0, 67, 67, 99, 99, 2, 0, 85, + 85, 117, 117, 2, 0, 72, 72, 104, 104, 2, 0, 73, 73, 105, 105, 2, 0, 90, + 90, 122, 122, 2, 0, 66, 66, 98, 98, 2, 0, 77, 77, 109, 109, 2, 0, 70, 70, + 102, 102, 2, 0, 81, 81, 113, 113, 2, 0, 88, 88, 120, 120, 2, 0, 74, 74, + 106, 106, 2, 0, 75, 75, 107, 107, 2, 0, 86, 86, 118, 118, 1, 0, 36, 36, + 2, 0, 39, 39, 92, 92, 1, 0, 48, 57, 2, 0, 65, 90, 97, 122, 5, 0, 36, 36, + 48, 57, 65, 90, 95, 95, 97, 122, 1, 0, 34, 34, 3, 0, 9, 10, 13, 13, 32, + 32, 2, 0, 10, 10, 13, 13, 3, 0, 48, 57, 65, 70, 97, 102, 1824, 0, 1, 1, + 0, 0, 0, 0, 3, 1, 0, 0, 0, 0, 5, 1, 0, 0, 0, 0, 7, 1, 0, 0, 0, 0, 9, 1, + 0, 0, 0, 0, 11, 1, 0, 0, 0, 0, 13, 1, 0, 0, 0, 0, 15, 1, 0, 0, 0, 0, 17, + 1, 0, 0, 0, 0, 19, 1, 0, 0, 0, 0, 21, 1, 0, 0, 0, 0, 23, 1, 0, 0, 0, 0, + 25, 1, 0, 0, 0, 0, 27, 1, 0, 0, 0, 0, 29, 1, 0, 0, 0, 0, 31, 1, 0, 0, 0, + 0, 33, 1, 0, 0, 0, 0, 35, 1, 0, 0, 0, 0, 37, 1, 0, 0, 0, 0, 39, 1, 0, 0, + 0, 0, 41, 1, 0, 0, 0, 0, 43, 1, 0, 0, 0, 0, 45, 1, 0, 0, 0, 0, 47, 1, 0, + 0, 0, 0, 49, 1, 0, 0, 0, 0, 51, 1, 0, 0, 0, 0, 53, 1, 0, 0, 0, 0, 55, 1, + 0, 0, 0, 0, 57, 1, 0, 0, 0, 0, 59, 1, 0, 0, 0, 0, 61, 1, 0, 0, 0, 0, 63, + 1, 0, 0, 0, 0, 65, 1, 0, 0, 0, 0, 67, 1, 0, 0, 0, 0, 69, 1, 0, 0, 0, 0, + 71, 1, 0, 0, 0, 0, 73, 1, 0, 0, 0, 0, 75, 1, 0, 0, 0, 0, 77, 1, 0, 0, 0, + 0, 79, 1, 0, 0, 0, 0, 81, 1, 0, 0, 0, 0, 83, 1, 0, 0, 0, 0, 85, 1, 0, 0, + 0, 0, 87, 1, 0, 0, 0, 0, 89, 1, 0, 0, 0, 0, 91, 1, 0, 0, 0, 0, 93, 1, 0, + 0, 0, 0, 95, 1, 0, 0, 0, 0, 97, 1, 0, 0, 0, 0, 99, 1, 0, 0, 0, 0, 101, + 1, 0, 0, 0, 0, 103, 1, 0, 0, 0, 0, 105, 1, 0, 0, 0, 0, 107, 1, 0, 0, 0, + 0, 109, 1, 0, 0, 0, 0, 111, 1, 0, 0, 0, 0, 113, 1, 0, 0, 0, 0, 115, 1, + 0, 0, 0, 0, 117, 1, 0, 0, 0, 0, 119, 1, 0, 0, 0, 0, 121, 1, 0, 0, 0, 0, + 123, 1, 0, 0, 0, 0, 125, 1, 0, 0, 0, 0, 127, 1, 0, 0, 0, 0, 129, 1, 0, + 0, 0, 0, 131, 1, 0, 0, 0, 0, 133, 1, 0, 0, 0, 0, 135, 1, 0, 0, 0, 0, 137, + 1, 0, 0, 0, 0, 139, 1, 0, 0, 0, 0, 141, 1, 0, 0, 0, 0, 143, 1, 0, 0, 0, + 0, 145, 1, 0, 0, 0, 0, 147, 1, 0, 0, 0, 0, 149, 1, 0, 0, 0, 0, 151, 1, + 0, 0, 0, 0, 153, 1, 0, 0, 0, 0, 155, 1, 0, 0, 0, 0, 157, 1, 0, 0, 0, 0, + 159, 1, 0, 0, 0, 0, 161, 1, 0, 0, 0, 0, 163, 1, 0, 0, 0, 0, 165, 1, 0, + 0, 0, 0, 167, 1, 0, 0, 0, 0, 169, 1, 0, 0, 0, 0, 171, 1, 0, 0, 0, 0, 173, + 1, 0, 0, 0, 0, 175, 1, 0, 0, 0, 0, 177, 1, 0, 0, 0, 0, 179, 1, 0, 0, 0, + 0, 181, 1, 0, 0, 0, 0, 183, 1, 0, 0, 0, 0, 185, 1, 0, 0, 0, 0, 187, 1, + 0, 0, 0, 0, 189, 1, 0, 0, 0, 0, 191, 1, 0, 0, 0, 0, 193, 1, 0, 0, 0, 0, + 195, 1, 0, 0, 0, 0, 197, 1, 0, 0, 0, 0, 199, 1, 0, 0, 0, 0, 201, 1, 0, + 0, 0, 0, 203, 1, 0, 0, 0, 0, 205, 1, 0, 0, 0, 0, 207, 1, 0, 0, 0, 0, 209, + 1, 0, 0, 0, 0, 211, 1, 0, 0, 0, 0, 213, 1, 0, 0, 0, 0, 215, 1, 0, 0, 0, + 0, 217, 1, 0, 0, 0, 0, 219, 1, 0, 0, 0, 0, 221, 1, 0, 0, 0, 0, 223, 1, + 0, 0, 0, 0, 225, 1, 0, 0, 0, 0, 227, 1, 0, 0, 0, 0, 229, 1, 0, 0, 0, 0, + 231, 1, 0, 0, 0, 0, 233, 1, 0, 0, 0, 0, 235, 1, 0, 0, 0, 0, 237, 1, 0, + 0, 0, 0, 239, 1, 0, 0, 0, 0, 241, 1, 0, 0, 0, 0, 243, 1, 0, 0, 0, 0, 245, + 1, 0, 0, 0, 0, 247, 1, 0, 0, 0, 0, 249, 1, 0, 0, 0, 0, 251, 1, 0, 0, 0, + 0, 253, 1, 0, 0, 0, 0, 255, 1, 0, 0, 0, 0, 257, 1, 0, 0, 0, 0, 259, 1, + 0, 0, 0, 0, 261, 1, 0, 0, 0, 0, 263, 1, 0, 0, 0, 0, 265, 1, 0, 0, 0, 0, + 267, 1, 0, 0, 0, 0, 269, 1, 0, 0, 0, 0, 271, 1, 0, 0, 0, 0, 273, 1, 0, + 0, 0, 0, 275, 1, 0, 0, 0, 0, 277, 1, 0, 0, 0, 0, 279, 1, 0, 0, 0, 0, 281, + 1, 0, 0, 0, 0, 283, 1, 0, 0, 0, 0, 285, 1, 0, 0, 0, 0, 287, 1, 0, 0, 0, + 0, 289, 1, 0, 0, 0, 0, 291, 1, 0, 0, 0, 0, 293, 1, 0, 0, 0, 0, 295, 1, + 0, 0, 0, 0, 297, 1, 0, 0, 0, 0, 299, 1, 0, 0, 0, 0, 301, 1, 0, 0, 0, 0, + 303, 1, 0, 0, 0, 0, 305, 1, 0, 0, 0, 0, 307, 1, 0, 0, 0, 0, 309, 1, 0, + 0, 0, 0, 311, 1, 0, 0, 0, 0, 313, 1, 0, 0, 0, 0, 315, 1, 0, 0, 0, 0, 317, + 1, 0, 0, 0, 0, 319, 1, 0, 0, 0, 0, 321, 1, 0, 0, 0, 0, 323, 1, 0, 0, 0, + 0, 325, 1, 0, 0, 0, 0, 327, 1, 0, 0, 0, 0, 329, 1, 0, 0, 0, 0, 331, 1, + 0, 0, 0, 0, 333, 1, 0, 0, 0, 0, 335, 1, 0, 0, 0, 0, 337, 1, 0, 0, 0, 0, + 339, 1, 0, 0, 0, 0, 341, 1, 0, 0, 0, 0, 343, 1, 0, 0, 0, 0, 345, 1, 0, + 0, 0, 0, 347, 1, 0, 0, 0, 0, 349, 1, 0, 0, 0, 0, 351, 1, 0, 0, 0, 0, 353, + 1, 0, 0, 0, 0, 355, 1, 0, 0, 0, 0, 357, 1, 0, 0, 0, 0, 359, 1, 0, 0, 0, + 0, 361, 1, 0, 0, 0, 0, 363, 1, 0, 0, 0, 0, 365, 1, 0, 0, 0, 0, 367, 1, + 0, 0, 0, 0, 369, 1, 0, 0, 0, 0, 371, 1, 0, 0, 0, 0, 373, 1, 0, 0, 0, 0, + 375, 1, 0, 0, 0, 0, 377, 1, 0, 0, 0, 0, 379, 1, 0, 0, 0, 0, 381, 1, 0, + 0, 0, 0, 383, 1, 0, 0, 0, 1, 393, 1, 0, 0, 0, 3, 395, 1, 0, 0, 0, 5, 397, + 1, 0, 0, 0, 7, 399, 1, 0, 0, 0, 9, 401, 1, 0, 0, 0, 11, 403, 1, 0, 0, 0, + 13, 405, 1, 0, 0, 0, 15, 407, 1, 0, 0, 0, 17, 409, 1, 0, 0, 0, 19, 411, + 1, 0, 0, 0, 21, 413, 1, 0, 0, 0, 23, 415, 1, 0, 0, 0, 25, 417, 1, 0, 0, + 0, 27, 419, 1, 0, 0, 0, 29, 421, 1, 0, 0, 0, 31, 424, 1, 0, 0, 0, 33, 426, + 1, 0, 0, 0, 35, 428, 1, 0, 0, 0, 37, 430, 1, 0, 0, 0, 39, 432, 1, 0, 0, + 0, 41, 434, 1, 0, 0, 0, 43, 436, 1, 0, 0, 0, 45, 439, 1, 0, 0, 0, 47, 442, + 1, 0, 0, 0, 49, 446, 1, 0, 0, 0, 51, 456, 1, 0, 0, 0, 53, 460, 1, 0, 0, + 0, 55, 466, 1, 0, 0, 0, 57, 472, 1, 0, 0, 0, 59, 476, 1, 0, 0, 0, 61, 480, + 1, 0, 0, 0, 63, 486, 1, 0, 0, 0, 65, 489, 1, 0, 0, 0, 67, 493, 1, 0, 0, + 0, 69, 503, 1, 0, 0, 0, 71, 509, 1, 0, 0, 0, 73, 515, 1, 0, 0, 0, 75, 518, + 1, 0, 0, 0, 77, 525, 1, 0, 0, 0, 79, 536, 1, 0, 0, 0, 81, 549, 1, 0, 0, + 0, 83, 557, 1, 0, 0, 0, 85, 569, 1, 0, 0, 0, 87, 578, 1, 0, 0, 0, 89, 585, + 1, 0, 0, 0, 91, 592, 1, 0, 0, 0, 93, 599, 1, 0, 0, 0, 95, 604, 1, 0, 0, + 0, 97, 613, 1, 0, 0, 0, 99, 622, 1, 0, 0, 0, 101, 627, 1, 0, 0, 0, 103, + 642, 1, 0, 0, 0, 105, 654, 1, 0, 0, 0, 107, 662, 1, 0, 0, 0, 109, 670, + 1, 0, 0, 0, 111, 677, 1, 0, 0, 0, 113, 683, 1, 0, 0, 0, 115, 693, 1, 0, + 0, 0, 117, 703, 1, 0, 0, 0, 119, 708, 1, 0, 0, 0, 121, 713, 1, 0, 0, 0, + 123, 722, 1, 0, 0, 0, 125, 732, 1, 0, 0, 0, 127, 738, 1, 0, 0, 0, 129, + 741, 1, 0, 0, 0, 131, 744, 1, 0, 0, 0, 133, 750, 1, 0, 0, 0, 135, 759, + 1, 0, 0, 0, 137, 768, 1, 0, 0, 0, 139, 774, 1, 0, 0, 0, 141, 781, 1, 0, + 0, 0, 143, 786, 1, 0, 0, 0, 145, 789, 1, 0, 0, 0, 147, 794, 1, 0, 0, 0, + 149, 798, 1, 0, 0, 0, 151, 803, 1, 0, 0, 0, 153, 812, 1, 0, 0, 0, 155, + 822, 1, 0, 0, 0, 157, 831, 1, 0, 0, 0, 159, 837, 1, 0, 0, 0, 161, 843, + 1, 0, 0, 0, 163, 853, 1, 0, 0, 0, 165, 866, 1, 0, 0, 0, 167, 873, 1, 0, + 0, 0, 169, 879, 1, 0, 0, 0, 171, 892, 1, 0, 0, 0, 173, 899, 1, 0, 0, 0, + 175, 903, 1, 0, 0, 0, 177, 915, 1, 0, 0, 0, 179, 927, 1, 0, 0, 0, 181, + 931, 1, 0, 0, 0, 183, 936, 1, 0, 0, 0, 185, 939, 1, 0, 0, 0, 187, 942, + 1, 0, 0, 0, 189, 946, 1, 0, 0, 0, 191, 954, 1, 0, 0, 0, 193, 957, 1, 0, + 0, 0, 195, 963, 1, 0, 0, 0, 197, 973, 1, 0, 0, 0, 199, 982, 1, 0, 0, 0, + 201, 986, 1, 0, 0, 0, 203, 997, 1, 0, 0, 0, 205, 1009, 1, 0, 0, 0, 207, + 1017, 1, 0, 0, 0, 209, 1024, 1, 0, 0, 0, 211, 1031, 1, 0, 0, 0, 213, 1039, + 1, 0, 0, 0, 215, 1051, 1, 0, 0, 0, 217, 1059, 1, 0, 0, 0, 219, 1066, 1, + 0, 0, 0, 221, 1071, 1, 0, 0, 0, 223, 1077, 1, 0, 0, 0, 225, 1084, 1, 0, + 0, 0, 227, 1091, 1, 0, 0, 0, 229, 1095, 1, 0, 0, 0, 231, 1101, 1, 0, 0, + 0, 233, 1108, 1, 0, 0, 0, 235, 1116, 1, 0, 0, 0, 237, 1122, 1, 0, 0, 0, + 239, 1132, 1, 0, 0, 0, 241, 1138, 1, 0, 0, 0, 243, 1144, 1, 0, 0, 0, 245, + 1154, 1, 0, 0, 0, 247, 1157, 1, 0, 0, 0, 249, 1163, 1, 0, 0, 0, 251, 1171, + 1, 0, 0, 0, 253, 1176, 1, 0, 0, 0, 255, 1185, 1, 0, 0, 0, 257, 1189, 1, + 0, 0, 0, 259, 1193, 1, 0, 0, 0, 261, 1198, 1, 0, 0, 0, 263, 1207, 1, 0, + 0, 0, 265, 1214, 1, 0, 0, 0, 267, 1218, 1, 0, 0, 0, 269, 1223, 1, 0, 0, + 0, 271, 1229, 1, 0, 0, 0, 273, 1234, 1, 0, 0, 0, 275, 1241, 1, 0, 0, 0, + 277, 1246, 1, 0, 0, 0, 279, 1252, 1, 0, 0, 0, 281, 1257, 1, 0, 0, 0, 283, + 1267, 1, 0, 0, 0, 285, 1273, 1, 0, 0, 0, 287, 1280, 1, 0, 0, 0, 289, 1285, + 1, 0, 0, 0, 291, 1293, 1, 0, 0, 0, 293, 1301, 1, 0, 0, 0, 295, 1306, 1, + 0, 0, 0, 297, 1314, 1, 0, 0, 0, 299, 1321, 1, 0, 0, 0, 301, 1327, 1, 0, + 0, 0, 303, 1334, 1, 0, 0, 0, 305, 1339, 1, 0, 0, 0, 307, 1343, 1, 0, 0, + 0, 309, 1348, 1, 0, 0, 0, 311, 1352, 1, 0, 0, 0, 313, 1361, 1, 0, 0, 0, + 315, 1366, 1, 0, 0, 0, 317, 1375, 1, 0, 0, 0, 319, 1380, 1, 0, 0, 0, 321, + 1388, 1, 0, 0, 0, 323, 1394, 1, 0, 0, 0, 325, 1401, 1, 0, 0, 0, 327, 1410, + 1, 0, 0, 0, 329, 1418, 1, 0, 0, 0, 331, 1424, 1, 0, 0, 0, 333, 1428, 1, + 0, 0, 0, 335, 1449, 1, 0, 0, 0, 337, 1453, 1, 0, 0, 0, 339, 1461, 1, 0, + 0, 0, 341, 1468, 1, 0, 0, 0, 343, 1472, 1, 0, 0, 0, 345, 1481, 1, 0, 0, + 0, 347, 1488, 1, 0, 0, 0, 349, 1500, 1, 0, 0, 0, 351, 1512, 1, 0, 0, 0, + 353, 1524, 1, 0, 0, 0, 355, 1541, 1, 0, 0, 0, 357, 1553, 1, 0, 0, 0, 359, + 1565, 1, 0, 0, 0, 361, 1581, 1, 0, 0, 0, 363, 1595, 1, 0, 0, 0, 365, 1609, + 1, 0, 0, 0, 367, 1614, 1, 0, 0, 0, 369, 1648, 1, 0, 0, 0, 371, 1675, 1, + 0, 0, 0, 373, 1691, 1, 0, 0, 0, 375, 1693, 1, 0, 0, 0, 377, 1707, 1, 0, + 0, 0, 379, 1713, 1, 0, 0, 0, 381, 1727, 1, 0, 0, 0, 383, 1772, 1, 0, 0, + 0, 385, 1776, 1, 0, 0, 0, 387, 1781, 1, 0, 0, 0, 389, 1783, 1, 0, 0, 0, + 391, 1785, 1, 0, 0, 0, 393, 394, 5, 40, 0, 0, 394, 2, 1, 0, 0, 0, 395, + 396, 5, 41, 0, 0, 396, 4, 1, 0, 0, 0, 397, 398, 5, 123, 0, 0, 398, 6, 1, + 0, 0, 0, 399, 400, 5, 125, 0, 0, 400, 8, 1, 0, 0, 0, 401, 402, 5, 91, 0, + 0, 402, 10, 1, 0, 0, 0, 403, 404, 5, 93, 0, 0, 404, 12, 1, 0, 0, 0, 405, + 406, 5, 44, 0, 0, 406, 14, 1, 0, 0, 0, 407, 408, 5, 59, 0, 0, 408, 16, + 1, 0, 0, 0, 409, 410, 5, 58, 0, 0, 410, 18, 1, 0, 0, 0, 411, 412, 5, 46, + 0, 0, 412, 20, 1, 0, 0, 0, 413, 414, 5, 42, 0, 0, 414, 22, 1, 0, 0, 0, + 415, 416, 5, 47, 0, 0, 416, 24, 1, 0, 0, 0, 417, 418, 5, 37, 0, 0, 418, + 26, 1, 0, 0, 0, 419, 420, 5, 43, 0, 0, 420, 28, 1, 0, 0, 0, 421, 422, 5, + 45, 0, 0, 422, 423, 5, 45, 0, 0, 423, 30, 1, 0, 0, 0, 424, 425, 5, 45, + 0, 0, 425, 32, 1, 0, 0, 0, 426, 427, 5, 34, 0, 0, 427, 34, 1, 0, 0, 0, + 428, 429, 5, 39, 0, 0, 429, 36, 1, 0, 0, 0, 430, 431, 5, 61, 0, 0, 431, + 38, 1, 0, 0, 0, 432, 433, 5, 60, 0, 0, 433, 40, 1, 0, 0, 0, 434, 435, 5, + 62, 0, 0, 435, 42, 1, 0, 0, 0, 436, 437, 5, 60, 0, 0, 437, 438, 5, 61, + 0, 0, 438, 44, 1, 0, 0, 0, 439, 440, 5, 62, 0, 0, 440, 441, 5, 61, 0, 0, + 441, 46, 1, 0, 0, 0, 442, 443, 7, 0, 0, 0, 443, 444, 7, 1, 0, 0, 444, 445, + 7, 1, 0, 0, 445, 48, 1, 0, 0, 0, 446, 447, 7, 0, 0, 0, 447, 448, 7, 2, + 0, 0, 448, 449, 7, 2, 0, 0, 449, 450, 7, 3, 0, 0, 450, 451, 7, 4, 0, 0, + 451, 452, 7, 2, 0, 0, 452, 453, 7, 0, 0, 0, 453, 454, 7, 5, 0, 0, 454, + 455, 7, 4, 0, 0, 455, 50, 1, 0, 0, 0, 456, 457, 7, 0, 0, 0, 457, 458, 7, + 6, 0, 0, 458, 459, 7, 6, 0, 0, 459, 52, 1, 0, 0, 0, 460, 461, 7, 0, 0, + 0, 461, 462, 7, 6, 0, 0, 462, 463, 7, 6, 0, 0, 463, 464, 7, 7, 0, 0, 464, + 465, 7, 8, 0, 0, 465, 54, 1, 0, 0, 0, 466, 467, 7, 0, 0, 0, 467, 468, 7, + 6, 0, 0, 468, 469, 7, 5, 0, 0, 469, 470, 7, 4, 0, 0, 470, 471, 7, 3, 0, + 0, 471, 56, 1, 0, 0, 0, 472, 473, 7, 0, 0, 0, 473, 474, 7, 9, 0, 0, 474, + 475, 7, 1, 0, 0, 475, 58, 1, 0, 0, 0, 476, 477, 7, 0, 0, 0, 477, 478, 7, + 9, 0, 0, 478, 479, 7, 10, 0, 0, 479, 60, 1, 0, 0, 0, 480, 481, 7, 0, 0, + 0, 481, 482, 7, 11, 0, 0, 482, 483, 7, 11, 0, 0, 483, 484, 7, 6, 0, 0, + 484, 485, 7, 10, 0, 0, 485, 62, 1, 0, 0, 0, 486, 487, 7, 0, 0, 0, 487, + 488, 7, 12, 0, 0, 488, 64, 1, 0, 0, 0, 489, 490, 7, 0, 0, 0, 490, 491, + 7, 12, 0, 0, 491, 492, 7, 13, 0, 0, 492, 66, 1, 0, 0, 0, 493, 494, 7, 0, + 0, 0, 494, 495, 7, 14, 0, 0, 495, 496, 7, 5, 0, 0, 496, 497, 7, 15, 0, + 0, 497, 498, 7, 7, 0, 0, 498, 499, 7, 3, 0, 0, 499, 500, 7, 16, 0, 0, 500, + 501, 7, 17, 0, 0, 501, 502, 7, 4, 0, 0, 502, 68, 1, 0, 0, 0, 503, 504, + 7, 18, 0, 0, 504, 505, 7, 0, 0, 0, 505, 506, 7, 5, 0, 0, 506, 507, 7, 13, + 0, 0, 507, 508, 7, 15, 0, 0, 508, 70, 1, 0, 0, 0, 509, 510, 7, 18, 0, 0, + 510, 511, 7, 4, 0, 0, 511, 512, 7, 2, 0, 0, 512, 513, 7, 16, 0, 0, 513, + 514, 7, 9, 0, 0, 514, 72, 1, 0, 0, 0, 515, 516, 7, 18, 0, 0, 516, 517, + 7, 10, 0, 0, 517, 74, 1, 0, 0, 0, 518, 519, 7, 13, 0, 0, 519, 520, 7, 0, + 0, 0, 520, 521, 7, 6, 0, 0, 521, 522, 7, 6, 0, 0, 522, 523, 7, 4, 0, 0, + 523, 524, 7, 1, 0, 0, 524, 76, 1, 0, 0, 0, 525, 526, 7, 13, 0, 0, 526, + 527, 7, 6, 0, 0, 527, 528, 7, 14, 0, 0, 528, 529, 7, 12, 0, 0, 529, 530, + 7, 5, 0, 0, 530, 531, 7, 4, 0, 0, 531, 532, 7, 3, 0, 0, 532, 533, 7, 16, + 0, 0, 533, 534, 7, 9, 0, 0, 534, 535, 7, 2, 0, 0, 535, 78, 1, 0, 0, 0, + 536, 537, 7, 13, 0, 0, 537, 538, 7, 7, 0, 0, 538, 539, 7, 6, 0, 0, 539, + 540, 7, 14, 0, 0, 540, 541, 7, 19, 0, 0, 541, 542, 7, 9, 0, 0, 542, 543, + 7, 20, 0, 0, 543, 544, 7, 0, 0, 0, 544, 545, 7, 19, 0, 0, 545, 546, 7, + 16, 0, 0, 546, 547, 7, 6, 0, 0, 547, 548, 7, 10, 0, 0, 548, 80, 1, 0, 0, + 0, 549, 550, 7, 13, 0, 0, 550, 551, 7, 7, 0, 0, 551, 552, 7, 19, 0, 0, + 552, 553, 7, 11, 0, 0, 553, 554, 7, 0, 0, 0, 554, 555, 7, 13, 0, 0, 555, + 556, 7, 5, 0, 0, 556, 82, 1, 0, 0, 0, 557, 558, 7, 13, 0, 0, 558, 559, + 7, 7, 0, 0, 559, 560, 7, 9, 0, 0, 560, 561, 7, 12, 0, 0, 561, 562, 7, 16, + 0, 0, 562, 563, 7, 12, 0, 0, 563, 564, 7, 5, 0, 0, 564, 565, 7, 4, 0, 0, + 565, 566, 7, 9, 0, 0, 566, 567, 7, 13, 0, 0, 567, 568, 7, 10, 0, 0, 568, + 84, 1, 0, 0, 0, 569, 570, 7, 13, 0, 0, 570, 571, 7, 7, 0, 0, 571, 572, + 7, 9, 0, 0, 572, 573, 7, 5, 0, 0, 573, 574, 7, 0, 0, 0, 574, 575, 7, 16, + 0, 0, 575, 576, 7, 9, 0, 0, 576, 577, 7, 12, 0, 0, 577, 86, 1, 0, 0, 0, + 578, 579, 7, 13, 0, 0, 579, 580, 7, 3, 0, 0, 580, 581, 7, 4, 0, 0, 581, + 582, 7, 0, 0, 0, 582, 583, 7, 5, 0, 0, 583, 584, 7, 4, 0, 0, 584, 88, 1, + 0, 0, 0, 585, 586, 7, 13, 0, 0, 586, 587, 7, 14, 0, 0, 587, 588, 7, 12, + 0, 0, 588, 589, 7, 5, 0, 0, 589, 590, 7, 7, 0, 0, 590, 591, 7, 19, 0, 0, + 591, 90, 1, 0, 0, 0, 592, 593, 7, 1, 0, 0, 593, 594, 7, 4, 0, 0, 594, 595, + 7, 6, 0, 0, 595, 596, 7, 4, 0, 0, 596, 597, 7, 5, 0, 0, 597, 598, 7, 4, + 0, 0, 598, 92, 1, 0, 0, 0, 599, 600, 7, 1, 0, 0, 600, 601, 7, 4, 0, 0, + 601, 602, 7, 12, 0, 0, 602, 603, 7, 13, 0, 0, 603, 94, 1, 0, 0, 0, 604, + 605, 7, 1, 0, 0, 605, 606, 7, 4, 0, 0, 606, 607, 7, 12, 0, 0, 607, 608, + 7, 13, 0, 0, 608, 609, 7, 3, 0, 0, 609, 610, 7, 16, 0, 0, 610, 611, 7, + 18, 0, 0, 611, 612, 7, 4, 0, 0, 612, 96, 1, 0, 0, 0, 613, 614, 7, 1, 0, + 0, 614, 615, 7, 16, 0, 0, 615, 616, 7, 12, 0, 0, 616, 617, 7, 5, 0, 0, + 617, 618, 7, 16, 0, 0, 618, 619, 7, 9, 0, 0, 619, 620, 7, 13, 0, 0, 620, + 621, 7, 5, 0, 0, 621, 98, 1, 0, 0, 0, 622, 623, 7, 1, 0, 0, 623, 624, 7, + 3, 0, 0, 624, 625, 7, 7, 0, 0, 625, 626, 7, 11, 0, 0, 626, 100, 1, 0, 0, + 0, 627, 628, 7, 1, 0, 0, 628, 629, 7, 14, 0, 0, 629, 630, 7, 3, 0, 0, 630, + 631, 7, 0, 0, 0, 631, 632, 7, 18, 0, 0, 632, 633, 7, 6, 0, 0, 633, 634, + 7, 4, 0, 0, 634, 635, 5, 95, 0, 0, 635, 636, 7, 8, 0, 0, 636, 637, 7, 3, + 0, 0, 637, 638, 7, 16, 0, 0, 638, 639, 7, 5, 0, 0, 639, 640, 7, 4, 0, 0, + 640, 641, 7, 12, 0, 0, 641, 102, 1, 0, 0, 0, 642, 643, 7, 4, 0, 0, 643, + 644, 7, 0, 0, 0, 644, 645, 7, 13, 0, 0, 645, 646, 7, 15, 0, 0, 646, 647, + 5, 95, 0, 0, 647, 648, 7, 21, 0, 0, 648, 649, 7, 14, 0, 0, 649, 650, 7, + 7, 0, 0, 650, 651, 7, 3, 0, 0, 651, 652, 7, 14, 0, 0, 652, 653, 7, 19, + 0, 0, 653, 104, 1, 0, 0, 0, 654, 655, 7, 4, 0, 0, 655, 656, 7, 9, 0, 0, + 656, 657, 7, 5, 0, 0, 657, 658, 7, 3, 0, 0, 658, 659, 7, 16, 0, 0, 659, + 660, 7, 4, 0, 0, 660, 661, 7, 12, 0, 0, 661, 106, 1, 0, 0, 0, 662, 663, + 7, 4, 0, 0, 663, 664, 7, 22, 0, 0, 664, 665, 7, 4, 0, 0, 665, 666, 7, 13, + 0, 0, 666, 667, 7, 14, 0, 0, 667, 668, 7, 5, 0, 0, 668, 669, 7, 4, 0, 0, + 669, 108, 1, 0, 0, 0, 670, 671, 7, 4, 0, 0, 671, 672, 7, 22, 0, 0, 672, + 673, 7, 16, 0, 0, 673, 674, 7, 12, 0, 0, 674, 675, 7, 5, 0, 0, 675, 676, + 7, 12, 0, 0, 676, 110, 1, 0, 0, 0, 677, 678, 7, 20, 0, 0, 678, 679, 7, + 0, 0, 0, 679, 680, 7, 6, 0, 0, 680, 681, 7, 12, 0, 0, 681, 682, 7, 4, 0, + 0, 682, 112, 1, 0, 0, 0, 683, 684, 7, 20, 0, 0, 684, 685, 7, 16, 0, 0, + 685, 686, 7, 6, 0, 0, 686, 687, 7, 5, 0, 0, 687, 688, 7, 4, 0, 0, 688, + 689, 7, 3, 0, 0, 689, 690, 7, 16, 0, 0, 690, 691, 7, 9, 0, 0, 691, 692, + 7, 2, 0, 0, 692, 114, 1, 0, 0, 0, 693, 694, 7, 20, 0, 0, 694, 695, 7, 16, + 0, 0, 695, 696, 7, 9, 0, 0, 696, 697, 7, 0, 0, 0, 697, 698, 7, 6, 0, 0, + 698, 699, 7, 20, 0, 0, 699, 700, 7, 14, 0, 0, 700, 701, 7, 9, 0, 0, 701, + 702, 7, 13, 0, 0, 702, 116, 1, 0, 0, 0, 703, 704, 7, 20, 0, 0, 704, 705, + 7, 3, 0, 0, 705, 706, 7, 7, 0, 0, 706, 707, 7, 19, 0, 0, 707, 118, 1, 0, + 0, 0, 708, 709, 7, 20, 0, 0, 709, 710, 7, 14, 0, 0, 710, 711, 7, 6, 0, + 0, 711, 712, 7, 6, 0, 0, 712, 120, 1, 0, 0, 0, 713, 714, 7, 20, 0, 0, 714, + 715, 7, 14, 0, 0, 715, 716, 7, 9, 0, 0, 716, 717, 7, 13, 0, 0, 717, 718, + 7, 5, 0, 0, 718, 719, 7, 16, 0, 0, 719, 720, 7, 7, 0, 0, 720, 721, 7, 9, + 0, 0, 721, 122, 1, 0, 0, 0, 722, 723, 7, 20, 0, 0, 723, 724, 7, 14, 0, + 0, 724, 725, 7, 9, 0, 0, 725, 726, 7, 13, 0, 0, 726, 727, 7, 5, 0, 0, 727, + 728, 7, 16, 0, 0, 728, 729, 7, 7, 0, 0, 729, 730, 7, 9, 0, 0, 730, 731, + 7, 12, 0, 0, 731, 124, 1, 0, 0, 0, 732, 733, 7, 2, 0, 0, 733, 734, 7, 3, + 0, 0, 734, 735, 7, 0, 0, 0, 735, 736, 7, 9, 0, 0, 736, 737, 7, 5, 0, 0, + 737, 126, 1, 0, 0, 0, 738, 739, 7, 16, 0, 0, 739, 740, 7, 20, 0, 0, 740, + 128, 1, 0, 0, 0, 741, 742, 7, 16, 0, 0, 742, 743, 7, 9, 0, 0, 743, 130, + 1, 0, 0, 0, 744, 745, 7, 16, 0, 0, 745, 746, 7, 9, 0, 0, 746, 747, 7, 1, + 0, 0, 747, 748, 7, 4, 0, 0, 748, 749, 7, 22, 0, 0, 749, 132, 1, 0, 0, 0, + 750, 751, 7, 16, 0, 0, 751, 752, 7, 9, 0, 0, 752, 753, 7, 20, 0, 0, 753, + 754, 7, 16, 0, 0, 754, 755, 7, 9, 0, 0, 755, 756, 7, 16, 0, 0, 756, 757, + 7, 5, 0, 0, 757, 758, 7, 10, 0, 0, 758, 134, 1, 0, 0, 0, 759, 760, 7, 16, + 0, 0, 760, 761, 7, 9, 0, 0, 761, 762, 7, 16, 0, 0, 762, 763, 7, 5, 0, 0, + 763, 764, 7, 13, 0, 0, 764, 765, 7, 7, 0, 0, 765, 766, 7, 9, 0, 0, 766, + 767, 7, 1, 0, 0, 767, 136, 1, 0, 0, 0, 768, 769, 7, 16, 0, 0, 769, 770, + 7, 9, 0, 0, 770, 771, 7, 11, 0, 0, 771, 772, 7, 14, 0, 0, 772, 773, 7, + 5, 0, 0, 773, 138, 1, 0, 0, 0, 774, 775, 7, 16, 0, 0, 775, 776, 7, 9, 0, + 0, 776, 777, 7, 12, 0, 0, 777, 778, 7, 4, 0, 0, 778, 779, 7, 3, 0, 0, 779, + 780, 7, 5, 0, 0, 780, 140, 1, 0, 0, 0, 781, 782, 7, 16, 0, 0, 782, 783, + 7, 9, 0, 0, 783, 784, 7, 5, 0, 0, 784, 785, 7, 7, 0, 0, 785, 142, 1, 0, + 0, 0, 786, 787, 7, 16, 0, 0, 787, 788, 7, 12, 0, 0, 788, 144, 1, 0, 0, + 0, 789, 790, 7, 23, 0, 0, 790, 791, 7, 12, 0, 0, 791, 792, 7, 7, 0, 0, + 792, 793, 7, 9, 0, 0, 793, 146, 1, 0, 0, 0, 794, 795, 7, 24, 0, 0, 795, + 796, 7, 4, 0, 0, 796, 797, 7, 10, 0, 0, 797, 148, 1, 0, 0, 0, 798, 799, + 7, 24, 0, 0, 799, 800, 7, 4, 0, 0, 800, 801, 7, 10, 0, 0, 801, 802, 7, + 12, 0, 0, 802, 150, 1, 0, 0, 0, 803, 804, 7, 24, 0, 0, 804, 805, 7, 4, + 0, 0, 805, 806, 7, 10, 0, 0, 806, 807, 7, 12, 0, 0, 807, 808, 7, 11, 0, + 0, 808, 809, 7, 0, 0, 0, 809, 810, 7, 13, 0, 0, 810, 811, 7, 4, 0, 0, 811, + 152, 1, 0, 0, 0, 812, 813, 7, 24, 0, 0, 813, 814, 7, 4, 0, 0, 814, 815, + 7, 10, 0, 0, 815, 816, 7, 12, 0, 0, 816, 817, 7, 11, 0, 0, 817, 818, 7, + 0, 0, 0, 818, 819, 7, 13, 0, 0, 819, 820, 7, 4, 0, 0, 820, 821, 7, 12, + 0, 0, 821, 154, 1, 0, 0, 0, 822, 823, 7, 6, 0, 0, 823, 824, 7, 0, 0, 0, + 824, 825, 7, 9, 0, 0, 825, 826, 7, 2, 0, 0, 826, 827, 7, 14, 0, 0, 827, + 828, 7, 0, 0, 0, 828, 829, 7, 2, 0, 0, 829, 830, 7, 4, 0, 0, 830, 156, + 1, 0, 0, 0, 831, 832, 7, 6, 0, 0, 832, 833, 7, 4, 0, 0, 833, 834, 7, 25, + 0, 0, 834, 835, 7, 4, 0, 0, 835, 836, 7, 6, 0, 0, 836, 158, 1, 0, 0, 0, + 837, 838, 7, 6, 0, 0, 838, 839, 7, 16, 0, 0, 839, 840, 7, 19, 0, 0, 840, + 841, 7, 16, 0, 0, 841, 842, 7, 5, 0, 0, 842, 160, 1, 0, 0, 0, 843, 844, + 7, 6, 0, 0, 844, 845, 7, 7, 0, 0, 845, 846, 7, 13, 0, 0, 846, 847, 7, 0, + 0, 0, 847, 848, 7, 6, 0, 0, 848, 849, 5, 95, 0, 0, 849, 850, 7, 7, 0, 0, + 850, 851, 7, 9, 0, 0, 851, 852, 7, 4, 0, 0, 852, 162, 1, 0, 0, 0, 853, + 854, 7, 6, 0, 0, 854, 855, 7, 7, 0, 0, 855, 856, 7, 13, 0, 0, 856, 857, + 7, 0, 0, 0, 857, 858, 7, 6, 0, 0, 858, 859, 5, 95, 0, 0, 859, 860, 7, 21, + 0, 0, 860, 861, 7, 14, 0, 0, 861, 862, 7, 7, 0, 0, 862, 863, 7, 3, 0, 0, + 863, 864, 7, 14, 0, 0, 864, 865, 7, 19, 0, 0, 865, 164, 1, 0, 0, 0, 866, + 867, 7, 6, 0, 0, 867, 868, 7, 7, 0, 0, 868, 869, 7, 2, 0, 0, 869, 870, + 7, 2, 0, 0, 870, 871, 7, 4, 0, 0, 871, 872, 7, 1, 0, 0, 872, 166, 1, 0, + 0, 0, 873, 874, 7, 6, 0, 0, 874, 875, 7, 7, 0, 0, 875, 876, 7, 2, 0, 0, + 876, 877, 7, 16, 0, 0, 877, 878, 7, 9, 0, 0, 878, 168, 1, 0, 0, 0, 879, + 880, 7, 19, 0, 0, 880, 881, 7, 0, 0, 0, 881, 882, 7, 5, 0, 0, 882, 883, + 7, 4, 0, 0, 883, 884, 7, 3, 0, 0, 884, 885, 7, 16, 0, 0, 885, 886, 7, 0, + 0, 0, 886, 887, 7, 6, 0, 0, 887, 888, 7, 16, 0, 0, 888, 889, 7, 17, 0, + 0, 889, 890, 7, 4, 0, 0, 890, 891, 7, 1, 0, 0, 891, 170, 1, 0, 0, 0, 892, + 893, 7, 19, 0, 0, 893, 894, 7, 7, 0, 0, 894, 895, 7, 1, 0, 0, 895, 896, + 7, 16, 0, 0, 896, 897, 7, 20, 0, 0, 897, 898, 7, 10, 0, 0, 898, 172, 1, + 0, 0, 0, 899, 900, 7, 9, 0, 0, 900, 901, 7, 0, 0, 0, 901, 902, 7, 9, 0, + 0, 902, 174, 1, 0, 0, 0, 903, 904, 7, 9, 0, 0, 904, 905, 7, 7, 0, 0, 905, + 906, 7, 3, 0, 0, 906, 907, 7, 4, 0, 0, 907, 908, 7, 13, 0, 0, 908, 909, + 7, 14, 0, 0, 909, 910, 7, 3, 0, 0, 910, 911, 7, 12, 0, 0, 911, 912, 7, + 16, 0, 0, 912, 913, 7, 25, 0, 0, 913, 914, 7, 4, 0, 0, 914, 176, 1, 0, + 0, 0, 915, 916, 7, 9, 0, 0, 916, 917, 7, 7, 0, 0, 917, 918, 7, 12, 0, 0, + 918, 919, 7, 14, 0, 0, 919, 920, 7, 11, 0, 0, 920, 921, 7, 4, 0, 0, 921, + 922, 7, 3, 0, 0, 922, 923, 7, 14, 0, 0, 923, 924, 7, 12, 0, 0, 924, 925, + 7, 4, 0, 0, 925, 926, 7, 3, 0, 0, 926, 178, 1, 0, 0, 0, 927, 928, 7, 9, + 0, 0, 928, 929, 7, 7, 0, 0, 929, 930, 7, 5, 0, 0, 930, 180, 1, 0, 0, 0, + 931, 932, 7, 9, 0, 0, 932, 933, 7, 14, 0, 0, 933, 934, 7, 6, 0, 0, 934, + 935, 7, 6, 0, 0, 935, 182, 1, 0, 0, 0, 936, 937, 7, 7, 0, 0, 937, 938, + 7, 20, 0, 0, 938, 184, 1, 0, 0, 0, 939, 940, 7, 7, 0, 0, 940, 941, 7, 9, + 0, 0, 941, 186, 1, 0, 0, 0, 942, 943, 7, 7, 0, 0, 943, 944, 7, 9, 0, 0, + 944, 945, 7, 4, 0, 0, 945, 188, 1, 0, 0, 0, 946, 947, 7, 7, 0, 0, 947, + 948, 7, 11, 0, 0, 948, 949, 7, 5, 0, 0, 949, 950, 7, 16, 0, 0, 950, 951, + 7, 7, 0, 0, 951, 952, 7, 9, 0, 0, 952, 953, 7, 12, 0, 0, 953, 190, 1, 0, + 0, 0, 954, 955, 7, 7, 0, 0, 955, 956, 7, 3, 0, 0, 956, 192, 1, 0, 0, 0, + 957, 958, 7, 7, 0, 0, 958, 959, 7, 3, 0, 0, 959, 960, 7, 1, 0, 0, 960, + 961, 7, 4, 0, 0, 961, 962, 7, 3, 0, 0, 962, 194, 1, 0, 0, 0, 963, 964, + 7, 11, 0, 0, 964, 965, 7, 0, 0, 0, 965, 966, 7, 3, 0, 0, 966, 967, 7, 5, + 0, 0, 967, 968, 7, 16, 0, 0, 968, 969, 7, 5, 0, 0, 969, 970, 7, 16, 0, + 0, 970, 971, 7, 7, 0, 0, 971, 972, 7, 9, 0, 0, 972, 196, 1, 0, 0, 0, 973, + 974, 7, 11, 0, 0, 974, 975, 7, 0, 0, 0, 975, 976, 7, 12, 0, 0, 976, 977, + 7, 12, 0, 0, 977, 978, 7, 8, 0, 0, 978, 979, 7, 7, 0, 0, 979, 980, 7, 3, + 0, 0, 980, 981, 7, 1, 0, 0, 981, 198, 1, 0, 0, 0, 982, 983, 7, 11, 0, 0, + 983, 984, 7, 4, 0, 0, 984, 985, 7, 3, 0, 0, 985, 200, 1, 0, 0, 0, 986, + 987, 7, 11, 0, 0, 987, 988, 7, 4, 0, 0, 988, 989, 7, 3, 0, 0, 989, 990, + 7, 19, 0, 0, 990, 991, 7, 16, 0, 0, 991, 992, 7, 12, 0, 0, 992, 993, 7, + 12, 0, 0, 993, 994, 7, 16, 0, 0, 994, 995, 7, 7, 0, 0, 995, 996, 7, 9, + 0, 0, 996, 202, 1, 0, 0, 0, 997, 998, 7, 11, 0, 0, 998, 999, 7, 4, 0, 0, + 999, 1000, 7, 3, 0, 0, 1000, 1001, 7, 19, 0, 0, 1001, 1002, 7, 16, 0, 0, + 1002, 1003, 7, 12, 0, 0, 1003, 1004, 7, 12, 0, 0, 1004, 1005, 7, 16, 0, + 0, 1005, 1006, 7, 7, 0, 0, 1006, 1007, 7, 9, 0, 0, 1007, 1008, 7, 12, 0, + 0, 1008, 204, 1, 0, 0, 0, 1009, 1010, 7, 11, 0, 0, 1010, 1011, 7, 3, 0, + 0, 1011, 1012, 7, 16, 0, 0, 1012, 1013, 7, 19, 0, 0, 1013, 1014, 7, 0, + 0, 0, 1014, 1015, 7, 3, 0, 0, 1015, 1016, 7, 10, 0, 0, 1016, 206, 1, 0, + 0, 0, 1017, 1018, 7, 21, 0, 0, 1018, 1019, 7, 14, 0, 0, 1019, 1020, 7, + 7, 0, 0, 1020, 1021, 7, 3, 0, 0, 1021, 1022, 7, 14, 0, 0, 1022, 1023, 7, + 19, 0, 0, 1023, 208, 1, 0, 0, 0, 1024, 1025, 7, 3, 0, 0, 1025, 1026, 7, + 4, 0, 0, 1026, 1027, 7, 9, 0, 0, 1027, 1028, 7, 0, 0, 0, 1028, 1029, 7, + 19, 0, 0, 1029, 1030, 7, 4, 0, 0, 1030, 210, 1, 0, 0, 0, 1031, 1032, 7, + 3, 0, 0, 1032, 1033, 7, 4, 0, 0, 1033, 1034, 7, 11, 0, 0, 1034, 1035, 7, + 6, 0, 0, 1035, 1036, 7, 0, 0, 0, 1036, 1037, 7, 13, 0, 0, 1037, 1038, 7, + 4, 0, 0, 1038, 212, 1, 0, 0, 0, 1039, 1040, 7, 3, 0, 0, 1040, 1041, 7, + 4, 0, 0, 1041, 1042, 7, 11, 0, 0, 1042, 1043, 7, 6, 0, 0, 1043, 1044, 7, + 16, 0, 0, 1044, 1045, 7, 13, 0, 0, 1045, 1046, 7, 0, 0, 0, 1046, 1047, + 7, 5, 0, 0, 1047, 1048, 7, 16, 0, 0, 1048, 1049, 7, 7, 0, 0, 1049, 1050, + 7, 9, 0, 0, 1050, 214, 1, 0, 0, 0, 1051, 1052, 7, 3, 0, 0, 1052, 1053, + 7, 4, 0, 0, 1053, 1054, 7, 5, 0, 0, 1054, 1055, 7, 14, 0, 0, 1055, 1056, + 7, 3, 0, 0, 1056, 1057, 7, 9, 0, 0, 1057, 1058, 7, 12, 0, 0, 1058, 216, + 1, 0, 0, 0, 1059, 1060, 7, 3, 0, 0, 1060, 1061, 7, 4, 0, 0, 1061, 1062, + 7, 25, 0, 0, 1062, 1063, 7, 7, 0, 0, 1063, 1064, 7, 24, 0, 0, 1064, 1065, + 7, 4, 0, 0, 1065, 218, 1, 0, 0, 0, 1066, 1067, 7, 3, 0, 0, 1067, 1068, + 7, 7, 0, 0, 1068, 1069, 7, 6, 0, 0, 1069, 1070, 7, 4, 0, 0, 1070, 220, + 1, 0, 0, 0, 1071, 1072, 7, 3, 0, 0, 1072, 1073, 7, 7, 0, 0, 1073, 1074, + 7, 6, 0, 0, 1074, 1075, 7, 4, 0, 0, 1075, 1076, 7, 12, 0, 0, 1076, 222, + 1, 0, 0, 0, 1077, 1078, 7, 12, 0, 0, 1078, 1079, 7, 13, 0, 0, 1079, 1080, + 7, 15, 0, 0, 1080, 1081, 7, 4, 0, 0, 1081, 1082, 7, 19, 0, 0, 1082, 1083, + 7, 0, 0, 0, 1083, 224, 1, 0, 0, 0, 1084, 1085, 7, 12, 0, 0, 1085, 1086, + 7, 4, 0, 0, 1086, 1087, 7, 6, 0, 0, 1087, 1088, 7, 4, 0, 0, 1088, 1089, + 7, 13, 0, 0, 1089, 1090, 7, 5, 0, 0, 1090, 226, 1, 0, 0, 0, 1091, 1092, + 7, 12, 0, 0, 1092, 1093, 7, 4, 0, 0, 1093, 1094, 7, 5, 0, 0, 1094, 228, + 1, 0, 0, 0, 1095, 1096, 7, 12, 0, 0, 1096, 1097, 7, 20, 0, 0, 1097, 1098, + 7, 14, 0, 0, 1098, 1099, 7, 9, 0, 0, 1099, 1100, 7, 13, 0, 0, 1100, 230, + 1, 0, 0, 0, 1101, 1102, 7, 12, 0, 0, 1102, 1103, 7, 5, 0, 0, 1103, 1104, + 7, 0, 0, 0, 1104, 1105, 7, 5, 0, 0, 1105, 1106, 7, 16, 0, 0, 1106, 1107, + 7, 13, 0, 0, 1107, 232, 1, 0, 0, 0, 1108, 1109, 7, 12, 0, 0, 1109, 1110, + 7, 5, 0, 0, 1110, 1111, 7, 7, 0, 0, 1111, 1112, 7, 3, 0, 0, 1112, 1113, + 7, 0, 0, 0, 1113, 1114, 7, 2, 0, 0, 1114, 1115, 7, 4, 0, 0, 1115, 234, + 1, 0, 0, 0, 1116, 1117, 7, 12, 0, 0, 1117, 1118, 7, 5, 0, 0, 1118, 1119, + 7, 10, 0, 0, 1119, 1120, 7, 11, 0, 0, 1120, 1121, 7, 4, 0, 0, 1121, 236, + 1, 0, 0, 0, 1122, 1123, 7, 12, 0, 0, 1123, 1124, 7, 14, 0, 0, 1124, 1125, + 7, 11, 0, 0, 1125, 1126, 7, 4, 0, 0, 1126, 1127, 7, 3, 0, 0, 1127, 1128, + 7, 14, 0, 0, 1128, 1129, 7, 12, 0, 0, 1129, 1130, 7, 4, 0, 0, 1130, 1131, + 7, 3, 0, 0, 1131, 238, 1, 0, 0, 0, 1132, 1133, 7, 5, 0, 0, 1133, 1134, + 7, 0, 0, 0, 1134, 1135, 7, 18, 0, 0, 1135, 1136, 7, 6, 0, 0, 1136, 1137, + 7, 4, 0, 0, 1137, 240, 1, 0, 0, 0, 1138, 1139, 7, 5, 0, 0, 1139, 1140, + 7, 15, 0, 0, 1140, 1141, 7, 3, 0, 0, 1141, 1142, 7, 4, 0, 0, 1142, 1143, + 7, 4, 0, 0, 1143, 242, 1, 0, 0, 0, 1144, 1145, 7, 5, 0, 0, 1145, 1146, + 7, 16, 0, 0, 1146, 1147, 7, 19, 0, 0, 1147, 1148, 7, 4, 0, 0, 1148, 1149, + 7, 12, 0, 0, 1149, 1150, 7, 5, 0, 0, 1150, 1151, 7, 0, 0, 0, 1151, 1152, + 7, 19, 0, 0, 1152, 1153, 7, 11, 0, 0, 1153, 244, 1, 0, 0, 0, 1154, 1155, + 7, 5, 0, 0, 1155, 1156, 7, 7, 0, 0, 1156, 246, 1, 0, 0, 0, 1157, 1158, + 7, 5, 0, 0, 1158, 1159, 7, 7, 0, 0, 1159, 1160, 7, 24, 0, 0, 1160, 1161, + 7, 4, 0, 0, 1161, 1162, 7, 9, 0, 0, 1162, 248, 1, 0, 0, 0, 1163, 1164, + 7, 5, 0, 0, 1164, 1165, 7, 3, 0, 0, 1165, 1166, 7, 16, 0, 0, 1166, 1167, + 7, 2, 0, 0, 1167, 1168, 7, 2, 0, 0, 1168, 1169, 7, 4, 0, 0, 1169, 1170, + 7, 3, 0, 0, 1170, 250, 1, 0, 0, 0, 1171, 1172, 7, 5, 0, 0, 1172, 1173, + 7, 3, 0, 0, 1173, 1174, 7, 14, 0, 0, 1174, 1175, 7, 4, 0, 0, 1175, 252, + 1, 0, 0, 0, 1176, 1177, 7, 5, 0, 0, 1177, 1178, 7, 3, 0, 0, 1178, 1179, + 7, 14, 0, 0, 1179, 1180, 7, 9, 0, 0, 1180, 1181, 7, 13, 0, 0, 1181, 1182, + 7, 0, 0, 0, 1182, 1183, 7, 5, 0, 0, 1183, 1184, 7, 4, 0, 0, 1184, 254, + 1, 0, 0, 0, 1185, 1186, 7, 5, 0, 0, 1186, 1187, 7, 5, 0, 0, 1187, 1188, + 7, 6, 0, 0, 1188, 256, 1, 0, 0, 0, 1189, 1190, 7, 5, 0, 0, 1190, 1191, + 7, 8, 0, 0, 1191, 1192, 7, 7, 0, 0, 1192, 258, 1, 0, 0, 0, 1193, 1194, + 7, 5, 0, 0, 1194, 1195, 7, 10, 0, 0, 1195, 1196, 7, 11, 0, 0, 1196, 1197, + 7, 4, 0, 0, 1197, 260, 1, 0, 0, 0, 1198, 1199, 7, 14, 0, 0, 1199, 1200, + 7, 9, 0, 0, 1200, 1201, 7, 6, 0, 0, 1201, 1202, 7, 7, 0, 0, 1202, 1203, + 7, 2, 0, 0, 1203, 1204, 7, 2, 0, 0, 1204, 1205, 7, 4, 0, 0, 1205, 1206, + 7, 1, 0, 0, 1206, 262, 1, 0, 0, 0, 1207, 1208, 7, 14, 0, 0, 1208, 1209, + 7, 11, 0, 0, 1209, 1210, 7, 1, 0, 0, 1210, 1211, 7, 0, 0, 0, 1211, 1212, + 7, 5, 0, 0, 1212, 1213, 7, 4, 0, 0, 1213, 264, 1, 0, 0, 0, 1214, 1215, + 7, 14, 0, 0, 1215, 1216, 7, 12, 0, 0, 1216, 1217, 7, 4, 0, 0, 1217, 266, + 1, 0, 0, 0, 1218, 1219, 7, 14, 0, 0, 1219, 1220, 7, 12, 0, 0, 1220, 1221, + 7, 4, 0, 0, 1221, 1222, 7, 3, 0, 0, 1222, 268, 1, 0, 0, 0, 1223, 1224, + 7, 14, 0, 0, 1224, 1225, 7, 12, 0, 0, 1225, 1226, 7, 16, 0, 0, 1226, 1227, + 7, 9, 0, 0, 1227, 1228, 7, 2, 0, 0, 1228, 270, 1, 0, 0, 0, 1229, 1230, + 7, 14, 0, 0, 1230, 1231, 7, 14, 0, 0, 1231, 1232, 7, 16, 0, 0, 1232, 1233, + 7, 1, 0, 0, 1233, 272, 1, 0, 0, 0, 1234, 1235, 7, 25, 0, 0, 1235, 1236, + 7, 0, 0, 0, 1236, 1237, 7, 6, 0, 0, 1237, 1238, 7, 14, 0, 0, 1238, 1239, + 7, 4, 0, 0, 1239, 1240, 7, 12, 0, 0, 1240, 274, 1, 0, 0, 0, 1241, 1242, + 7, 25, 0, 0, 1242, 1243, 7, 16, 0, 0, 1243, 1244, 7, 4, 0, 0, 1244, 1245, + 7, 8, 0, 0, 1245, 276, 1, 0, 0, 0, 1246, 1247, 7, 8, 0, 0, 1247, 1248, + 7, 15, 0, 0, 1248, 1249, 7, 4, 0, 0, 1249, 1250, 7, 3, 0, 0, 1250, 1251, + 7, 4, 0, 0, 1251, 278, 1, 0, 0, 0, 1252, 1253, 7, 8, 0, 0, 1253, 1254, + 7, 16, 0, 0, 1254, 1255, 7, 5, 0, 0, 1255, 1256, 7, 15, 0, 0, 1256, 280, + 1, 0, 0, 0, 1257, 1258, 7, 8, 0, 0, 1258, 1259, 7, 3, 0, 0, 1259, 1260, + 7, 16, 0, 0, 1260, 1261, 7, 5, 0, 0, 1261, 1262, 7, 4, 0, 0, 1262, 1263, + 7, 5, 0, 0, 1263, 1264, 7, 16, 0, 0, 1264, 1265, 7, 19, 0, 0, 1265, 1266, + 7, 4, 0, 0, 1266, 282, 1, 0, 0, 0, 1267, 1268, 7, 0, 0, 0, 1268, 1269, + 7, 12, 0, 0, 1269, 1270, 7, 13, 0, 0, 1270, 1271, 7, 16, 0, 0, 1271, 1272, + 7, 16, 0, 0, 1272, 284, 1, 0, 0, 0, 1273, 1274, 7, 18, 0, 0, 1274, 1275, + 7, 16, 0, 0, 1275, 1276, 7, 2, 0, 0, 1276, 1277, 7, 16, 0, 0, 1277, 1278, + 7, 9, 0, 0, 1278, 1279, 7, 5, 0, 0, 1279, 286, 1, 0, 0, 0, 1280, 1281, + 7, 18, 0, 0, 1281, 1282, 7, 6, 0, 0, 1282, 1283, 7, 7, 0, 0, 1283, 1284, + 7, 18, 0, 0, 1284, 288, 1, 0, 0, 0, 1285, 1286, 7, 18, 0, 0, 1286, 1287, + 7, 7, 0, 0, 1287, 1288, 7, 7, 0, 0, 1288, 1289, 7, 6, 0, 0, 1289, 1290, + 7, 4, 0, 0, 1290, 1291, 7, 0, 0, 0, 1291, 1292, 7, 9, 0, 0, 1292, 290, + 1, 0, 0, 0, 1293, 1294, 7, 13, 0, 0, 1294, 1295, 7, 7, 0, 0, 1295, 1296, + 7, 14, 0, 0, 1296, 1297, 7, 9, 0, 0, 1297, 1298, 7, 5, 0, 0, 1298, 1299, + 7, 4, 0, 0, 1299, 1300, 7, 3, 0, 0, 1300, 292, 1, 0, 0, 0, 1301, 1302, + 7, 1, 0, 0, 1302, 1303, 7, 0, 0, 0, 1303, 1304, 7, 5, 0, 0, 1304, 1305, + 7, 4, 0, 0, 1305, 294, 1, 0, 0, 0, 1306, 1307, 7, 1, 0, 0, 1307, 1308, + 7, 4, 0, 0, 1308, 1309, 7, 13, 0, 0, 1309, 1310, 7, 16, 0, 0, 1310, 1311, + 7, 19, 0, 0, 1311, 1312, 7, 0, 0, 0, 1312, 1313, 7, 6, 0, 0, 1313, 296, + 1, 0, 0, 0, 1314, 1315, 7, 1, 0, 0, 1315, 1316, 7, 7, 0, 0, 1316, 1317, + 7, 14, 0, 0, 1317, 1318, 7, 18, 0, 0, 1318, 1319, 7, 6, 0, 0, 1319, 1320, + 7, 4, 0, 0, 1320, 298, 1, 0, 0, 0, 1321, 1322, 7, 20, 0, 0, 1322, 1323, + 7, 6, 0, 0, 1323, 1324, 7, 7, 0, 0, 1324, 1325, 7, 0, 0, 0, 1325, 1326, + 7, 5, 0, 0, 1326, 300, 1, 0, 0, 0, 1327, 1328, 7, 20, 0, 0, 1328, 1329, + 7, 3, 0, 0, 1329, 1330, 7, 7, 0, 0, 1330, 1331, 7, 17, 0, 0, 1331, 1332, + 7, 4, 0, 0, 1332, 1333, 7, 9, 0, 0, 1333, 302, 1, 0, 0, 0, 1334, 1335, + 7, 16, 0, 0, 1335, 1336, 7, 9, 0, 0, 1336, 1337, 7, 4, 0, 0, 1337, 1338, + 7, 5, 0, 0, 1338, 304, 1, 0, 0, 0, 1339, 1340, 7, 16, 0, 0, 1340, 1341, + 7, 9, 0, 0, 1341, 1342, 7, 5, 0, 0, 1342, 306, 1, 0, 0, 0, 1343, 1344, + 7, 6, 0, 0, 1344, 1345, 7, 16, 0, 0, 1345, 1346, 7, 12, 0, 0, 1346, 1347, + 7, 5, 0, 0, 1347, 308, 1, 0, 0, 0, 1348, 1349, 7, 19, 0, 0, 1349, 1350, + 7, 0, 0, 0, 1350, 1351, 7, 11, 0, 0, 1351, 310, 1, 0, 0, 0, 1352, 1353, + 7, 12, 0, 0, 1353, 1354, 7, 19, 0, 0, 1354, 1355, 7, 0, 0, 0, 1355, 1356, + 7, 6, 0, 0, 1356, 1357, 7, 6, 0, 0, 1357, 1358, 7, 16, 0, 0, 1358, 1359, + 7, 9, 0, 0, 1359, 1360, 7, 5, 0, 0, 1360, 312, 1, 0, 0, 0, 1361, 1362, + 7, 5, 0, 0, 1362, 1363, 7, 4, 0, 0, 1363, 1364, 7, 22, 0, 0, 1364, 1365, + 7, 5, 0, 0, 1365, 314, 1, 0, 0, 0, 1366, 1367, 7, 5, 0, 0, 1367, 1368, + 7, 16, 0, 0, 1368, 1369, 7, 19, 0, 0, 1369, 1370, 7, 4, 0, 0, 1370, 1371, + 7, 14, 0, 0, 1371, 1372, 7, 14, 0, 0, 1372, 1373, 7, 16, 0, 0, 1373, 1374, + 7, 1, 0, 0, 1374, 316, 1, 0, 0, 0, 1375, 1376, 7, 5, 0, 0, 1376, 1377, + 7, 16, 0, 0, 1377, 1378, 7, 19, 0, 0, 1378, 1379, 7, 4, 0, 0, 1379, 318, + 1, 0, 0, 0, 1380, 1381, 7, 5, 0, 0, 1381, 1382, 7, 16, 0, 0, 1382, 1383, + 7, 9, 0, 0, 1383, 1384, 7, 10, 0, 0, 1384, 1385, 7, 16, 0, 0, 1385, 1386, + 7, 9, 0, 0, 1386, 1387, 7, 5, 0, 0, 1387, 320, 1, 0, 0, 0, 1388, 1389, + 7, 5, 0, 0, 1389, 1390, 7, 14, 0, 0, 1390, 1391, 7, 11, 0, 0, 1391, 1392, + 7, 6, 0, 0, 1392, 1393, 7, 4, 0, 0, 1393, 322, 1, 0, 0, 0, 1394, 1395, + 7, 25, 0, 0, 1395, 1396, 7, 4, 0, 0, 1396, 1397, 7, 13, 0, 0, 1397, 1398, + 7, 5, 0, 0, 1398, 1399, 7, 7, 0, 0, 1399, 1400, 7, 3, 0, 0, 1400, 324, + 1, 0, 0, 0, 1401, 1402, 7, 1, 0, 0, 1402, 1403, 7, 14, 0, 0, 1403, 1404, + 7, 3, 0, 0, 1404, 1405, 7, 0, 0, 0, 1405, 1406, 7, 5, 0, 0, 1406, 1407, + 7, 16, 0, 0, 1407, 1408, 7, 7, 0, 0, 1408, 1409, 7, 9, 0, 0, 1409, 326, + 1, 0, 0, 0, 1410, 1411, 7, 1, 0, 0, 1411, 1412, 7, 4, 0, 0, 1412, 1413, + 7, 20, 0, 0, 1413, 1414, 7, 0, 0, 0, 1414, 1415, 7, 14, 0, 0, 1415, 1416, + 7, 6, 0, 0, 1416, 1417, 7, 5, 0, 0, 1417, 328, 1, 0, 0, 0, 1418, 1419, + 7, 14, 0, 0, 1419, 1420, 7, 9, 0, 0, 1420, 1421, 7, 12, 0, 0, 1421, 1422, + 7, 4, 0, 0, 1422, 1423, 7, 5, 0, 0, 1423, 330, 1, 0, 0, 0, 1424, 1425, + 7, 12, 0, 0, 1425, 1426, 7, 0, 0, 0, 1426, 1427, 7, 16, 0, 0, 1427, 332, + 1, 0, 0, 0, 1428, 1429, 7, 12, 0, 0, 1429, 1430, 7, 5, 0, 0, 1430, 1431, + 7, 7, 0, 0, 1431, 1432, 7, 3, 0, 0, 1432, 1433, 7, 0, 0, 0, 1433, 1434, + 7, 2, 0, 0, 1434, 1435, 7, 4, 0, 0, 1435, 1436, 7, 0, 0, 0, 1436, 1437, + 7, 5, 0, 0, 1437, 1438, 7, 5, 0, 0, 1438, 1439, 7, 0, 0, 0, 1439, 1440, + 7, 13, 0, 0, 1440, 1441, 7, 15, 0, 0, 1441, 1442, 7, 4, 0, 0, 1442, 1443, + 7, 1, 0, 0, 1443, 1444, 7, 16, 0, 0, 1444, 1445, 7, 9, 0, 0, 1445, 1446, + 7, 1, 0, 0, 1446, 1447, 7, 4, 0, 0, 1447, 1448, 7, 22, 0, 0, 1448, 334, + 1, 0, 0, 0, 1449, 1450, 7, 0, 0, 0, 1450, 1451, 7, 9, 0, 0, 1451, 1452, + 7, 9, 0, 0, 1452, 336, 1, 0, 0, 0, 1453, 1454, 7, 25, 0, 0, 1454, 1455, + 7, 0, 0, 0, 1455, 1456, 7, 3, 0, 0, 1456, 1457, 7, 13, 0, 0, 1457, 1458, + 7, 15, 0, 0, 1458, 1459, 7, 0, 0, 0, 1459, 1460, 7, 3, 0, 0, 1460, 338, + 1, 0, 0, 0, 1461, 1462, 7, 25, 0, 0, 1462, 1463, 7, 0, 0, 0, 1463, 1464, + 7, 3, 0, 0, 1464, 1465, 7, 16, 0, 0, 1465, 1466, 7, 9, 0, 0, 1466, 1467, + 7, 5, 0, 0, 1467, 340, 1, 0, 0, 0, 1468, 1469, 7, 9, 0, 0, 1469, 1470, + 7, 7, 0, 0, 1470, 1471, 7, 8, 0, 0, 1471, 342, 1, 0, 0, 0, 1472, 1473, + 7, 20, 0, 0, 1473, 1474, 7, 3, 0, 0, 1474, 1475, 7, 7, 0, 0, 1475, 1476, + 7, 19, 0, 0, 1476, 1477, 7, 23, 0, 0, 1477, 1478, 7, 12, 0, 0, 1478, 1479, + 7, 7, 0, 0, 1479, 1480, 7, 9, 0, 0, 1480, 344, 1, 0, 0, 0, 1481, 1482, + 7, 5, 0, 0, 1482, 1483, 7, 7, 0, 0, 1483, 1484, 7, 23, 0, 0, 1484, 1485, + 7, 12, 0, 0, 1485, 1486, 7, 7, 0, 0, 1486, 1487, 7, 9, 0, 0, 1487, 346, + 1, 0, 0, 0, 1488, 1489, 7, 19, 0, 0, 1489, 1490, 7, 16, 0, 0, 1490, 1491, + 7, 9, 0, 0, 1491, 1492, 7, 5, 0, 0, 1492, 1493, 7, 16, 0, 0, 1493, 1494, + 7, 19, 0, 0, 1494, 1495, 7, 4, 0, 0, 1495, 1496, 7, 14, 0, 0, 1496, 1497, + 7, 14, 0, 0, 1497, 1498, 7, 16, 0, 0, 1498, 1499, 7, 1, 0, 0, 1499, 348, + 1, 0, 0, 0, 1500, 1501, 7, 19, 0, 0, 1501, 1502, 7, 0, 0, 0, 1502, 1503, + 7, 22, 0, 0, 1503, 1504, 7, 5, 0, 0, 1504, 1505, 7, 16, 0, 0, 1505, 1506, + 7, 19, 0, 0, 1506, 1507, 7, 4, 0, 0, 1507, 1508, 7, 14, 0, 0, 1508, 1509, + 7, 14, 0, 0, 1509, 1510, 7, 16, 0, 0, 1510, 1511, 7, 1, 0, 0, 1511, 350, + 1, 0, 0, 0, 1512, 1513, 7, 1, 0, 0, 1513, 1514, 7, 0, 0, 0, 1514, 1515, + 7, 5, 0, 0, 1515, 1516, 7, 4, 0, 0, 1516, 1517, 7, 5, 0, 0, 1517, 1518, + 7, 16, 0, 0, 1518, 1519, 7, 19, 0, 0, 1519, 1520, 7, 4, 0, 0, 1520, 1521, + 7, 9, 0, 0, 1521, 1522, 7, 7, 0, 0, 1522, 1523, 7, 8, 0, 0, 1523, 352, + 1, 0, 0, 0, 1524, 1525, 7, 13, 0, 0, 1525, 1526, 7, 14, 0, 0, 1526, 1527, + 7, 3, 0, 0, 1527, 1528, 7, 3, 0, 0, 1528, 1529, 7, 4, 0, 0, 1529, 1530, + 7, 9, 0, 0, 1530, 1531, 7, 5, 0, 0, 1531, 1532, 7, 5, 0, 0, 1532, 1533, + 7, 16, 0, 0, 1533, 1534, 7, 19, 0, 0, 1534, 1535, 7, 4, 0, 0, 1535, 1536, + 7, 12, 0, 0, 1536, 1537, 7, 5, 0, 0, 1537, 1538, 7, 0, 0, 0, 1538, 1539, + 7, 19, 0, 0, 1539, 1540, 7, 11, 0, 0, 1540, 354, 1, 0, 0, 0, 1541, 1542, + 7, 13, 0, 0, 1542, 1543, 7, 14, 0, 0, 1543, 1544, 7, 3, 0, 0, 1544, 1545, + 7, 3, 0, 0, 1545, 1546, 7, 4, 0, 0, 1546, 1547, 7, 9, 0, 0, 1547, 1548, + 7, 5, 0, 0, 1548, 1549, 7, 1, 0, 0, 1549, 1550, 7, 0, 0, 0, 1550, 1551, + 7, 5, 0, 0, 1551, 1552, 7, 4, 0, 0, 1552, 356, 1, 0, 0, 0, 1553, 1554, + 7, 13, 0, 0, 1554, 1555, 7, 14, 0, 0, 1555, 1556, 7, 3, 0, 0, 1556, 1557, + 7, 3, 0, 0, 1557, 1558, 7, 4, 0, 0, 1558, 1559, 7, 9, 0, 0, 1559, 1560, + 7, 5, 0, 0, 1560, 1561, 7, 5, 0, 0, 1561, 1562, 7, 16, 0, 0, 1562, 1563, + 7, 19, 0, 0, 1563, 1564, 7, 4, 0, 0, 1564, 358, 1, 0, 0, 0, 1565, 1566, + 7, 13, 0, 0, 1566, 1567, 7, 14, 0, 0, 1567, 1568, 7, 3, 0, 0, 1568, 1569, + 7, 3, 0, 0, 1569, 1570, 7, 4, 0, 0, 1570, 1571, 7, 9, 0, 0, 1571, 1572, + 7, 5, 0, 0, 1572, 1573, 7, 5, 0, 0, 1573, 1574, 7, 16, 0, 0, 1574, 1575, + 7, 19, 0, 0, 1575, 1576, 7, 4, 0, 0, 1576, 1577, 7, 14, 0, 0, 1577, 1578, + 7, 14, 0, 0, 1578, 1579, 7, 16, 0, 0, 1579, 1580, 7, 1, 0, 0, 1580, 360, + 1, 0, 0, 0, 1581, 1582, 5, 36, 0, 0, 1582, 1583, 5, 36, 0, 0, 1583, 1589, + 1, 0, 0, 0, 1584, 1588, 8, 26, 0, 0, 1585, 1586, 5, 36, 0, 0, 1586, 1588, + 8, 26, 0, 0, 1587, 1584, 1, 0, 0, 0, 1587, 1585, 1, 0, 0, 0, 1588, 1591, + 1, 0, 0, 0, 1589, 1587, 1, 0, 0, 0, 1589, 1590, 1, 0, 0, 0, 1590, 1592, + 1, 0, 0, 0, 1591, 1589, 1, 0, 0, 0, 1592, 1593, 5, 36, 0, 0, 1593, 1594, + 5, 36, 0, 0, 1594, 362, 1, 0, 0, 0, 1595, 1603, 5, 39, 0, 0, 1596, 1597, + 5, 92, 0, 0, 1597, 1602, 9, 0, 0, 0, 1598, 1599, 5, 39, 0, 0, 1599, 1602, + 5, 39, 0, 0, 1600, 1602, 8, 27, 0, 0, 1601, 1596, 1, 0, 0, 0, 1601, 1598, + 1, 0, 0, 0, 1601, 1600, 1, 0, 0, 0, 1602, 1605, 1, 0, 0, 0, 1603, 1601, + 1, 0, 0, 0, 1603, 1604, 1, 0, 0, 0, 1604, 1606, 1, 0, 0, 0, 1605, 1603, + 1, 0, 0, 0, 1606, 1607, 5, 39, 0, 0, 1607, 364, 1, 0, 0, 0, 1608, 1610, + 3, 389, 194, 0, 1609, 1608, 1, 0, 0, 0, 1610, 1611, 1, 0, 0, 0, 1611, 1609, + 1, 0, 0, 0, 1611, 1612, 1, 0, 0, 0, 1612, 366, 1, 0, 0, 0, 1613, 1615, + 3, 31, 15, 0, 1614, 1613, 1, 0, 0, 0, 1614, 1615, 1, 0, 0, 0, 1615, 1617, + 1, 0, 0, 0, 1616, 1618, 7, 28, 0, 0, 1617, 1616, 1, 0, 0, 0, 1618, 1619, + 1, 0, 0, 0, 1619, 1617, 1, 0, 0, 0, 1619, 1620, 1, 0, 0, 0, 1620, 1627, + 1, 0, 0, 0, 1621, 1623, 3, 19, 9, 0, 1622, 1624, 7, 28, 0, 0, 1623, 1622, + 1, 0, 0, 0, 1624, 1625, 1, 0, 0, 0, 1625, 1623, 1, 0, 0, 0, 1625, 1626, + 1, 0, 0, 0, 1626, 1628, 1, 0, 0, 0, 1627, 1621, 1, 0, 0, 0, 1627, 1628, + 1, 0, 0, 0, 1628, 368, 1, 0, 0, 0, 1629, 1630, 7, 22, 0, 0, 1630, 1634, + 5, 39, 0, 0, 1631, 1632, 3, 387, 193, 0, 1632, 1633, 3, 387, 193, 0, 1633, + 1635, 1, 0, 0, 0, 1634, 1631, 1, 0, 0, 0, 1635, 1636, 1, 0, 0, 0, 1636, + 1634, 1, 0, 0, 0, 1636, 1637, 1, 0, 0, 0, 1637, 1638, 1, 0, 0, 0, 1638, + 1639, 5, 39, 0, 0, 1639, 1649, 1, 0, 0, 0, 1640, 1641, 5, 48, 0, 0, 1641, + 1642, 7, 22, 0, 0, 1642, 1644, 1, 0, 0, 0, 1643, 1645, 3, 387, 193, 0, + 1644, 1643, 1, 0, 0, 0, 1645, 1646, 1, 0, 0, 0, 1646, 1644, 1, 0, 0, 0, + 1646, 1647, 1, 0, 0, 0, 1647, 1649, 1, 0, 0, 0, 1648, 1629, 1, 0, 0, 0, + 1648, 1640, 1, 0, 0, 0, 1649, 370, 1, 0, 0, 0, 1650, 1652, 3, 389, 194, + 0, 1651, 1650, 1, 0, 0, 0, 1652, 1653, 1, 0, 0, 0, 1653, 1651, 1, 0, 0, + 0, 1653, 1654, 1, 0, 0, 0, 1654, 1656, 1, 0, 0, 0, 1655, 1657, 5, 46, 0, + 0, 1656, 1655, 1, 0, 0, 0, 1656, 1657, 1, 0, 0, 0, 1657, 1658, 1, 0, 0, + 0, 1658, 1659, 3, 391, 195, 0, 1659, 1676, 1, 0, 0, 0, 1660, 1662, 3, 389, + 194, 0, 1661, 1660, 1, 0, 0, 0, 1662, 1665, 1, 0, 0, 0, 1663, 1661, 1, + 0, 0, 0, 1663, 1664, 1, 0, 0, 0, 1664, 1666, 1, 0, 0, 0, 1665, 1663, 1, + 0, 0, 0, 1666, 1668, 5, 46, 0, 0, 1667, 1669, 3, 389, 194, 0, 1668, 1667, + 1, 0, 0, 0, 1669, 1670, 1, 0, 0, 0, 1670, 1668, 1, 0, 0, 0, 1670, 1671, + 1, 0, 0, 0, 1671, 1673, 1, 0, 0, 0, 1672, 1674, 3, 391, 195, 0, 1673, 1672, + 1, 0, 0, 0, 1673, 1674, 1, 0, 0, 0, 1674, 1676, 1, 0, 0, 0, 1675, 1651, + 1, 0, 0, 0, 1675, 1663, 1, 0, 0, 0, 1676, 372, 1, 0, 0, 0, 1677, 1681, + 7, 29, 0, 0, 1678, 1680, 7, 30, 0, 0, 1679, 1678, 1, 0, 0, 0, 1680, 1683, + 1, 0, 0, 0, 1681, 1679, 1, 0, 0, 0, 1681, 1682, 1, 0, 0, 0, 1682, 1692, + 1, 0, 0, 0, 1683, 1681, 1, 0, 0, 0, 1684, 1686, 5, 34, 0, 0, 1685, 1687, + 8, 31, 0, 0, 1686, 1685, 1, 0, 0, 0, 1687, 1688, 1, 0, 0, 0, 1688, 1686, + 1, 0, 0, 0, 1688, 1689, 1, 0, 0, 0, 1689, 1690, 1, 0, 0, 0, 1690, 1692, + 5, 34, 0, 0, 1691, 1677, 1, 0, 0, 0, 1691, 1684, 1, 0, 0, 0, 1692, 374, + 1, 0, 0, 0, 1693, 1694, 3, 385, 192, 0, 1694, 1695, 3, 385, 192, 0, 1695, + 1696, 5, 45, 0, 0, 1696, 1697, 3, 385, 192, 0, 1697, 1698, 5, 45, 0, 0, + 1698, 1699, 3, 385, 192, 0, 1699, 1700, 5, 45, 0, 0, 1700, 1701, 3, 385, + 192, 0, 1701, 1702, 5, 45, 0, 0, 1702, 1703, 3, 385, 192, 0, 1703, 1704, + 3, 385, 192, 0, 1704, 1705, 3, 385, 192, 0, 1705, 376, 1, 0, 0, 0, 1706, + 1708, 7, 32, 0, 0, 1707, 1706, 1, 0, 0, 0, 1708, 1709, 1, 0, 0, 0, 1709, + 1707, 1, 0, 0, 0, 1709, 1710, 1, 0, 0, 0, 1710, 1711, 1, 0, 0, 0, 1711, + 1712, 6, 188, 0, 0, 1712, 378, 1, 0, 0, 0, 1713, 1714, 5, 47, 0, 0, 1714, + 1715, 5, 42, 0, 0, 1715, 1716, 5, 33, 0, 0, 1716, 1718, 1, 0, 0, 0, 1717, + 1719, 9, 0, 0, 0, 1718, 1717, 1, 0, 0, 0, 1719, 1720, 1, 0, 0, 0, 1720, + 1721, 1, 0, 0, 0, 1720, 1718, 1, 0, 0, 0, 1721, 1722, 1, 0, 0, 0, 1722, + 1723, 5, 42, 0, 0, 1723, 1724, 5, 47, 0, 0, 1724, 1725, 1, 0, 0, 0, 1725, + 1726, 6, 189, 0, 0, 1726, 380, 1, 0, 0, 0, 1727, 1728, 5, 47, 0, 0, 1728, + 1729, 5, 42, 0, 0, 1729, 1733, 1, 0, 0, 0, 1730, 1732, 9, 0, 0, 0, 1731, + 1730, 1, 0, 0, 0, 1732, 1735, 1, 0, 0, 0, 1733, 1734, 1, 0, 0, 0, 1733, + 1731, 1, 0, 0, 0, 1734, 1736, 1, 0, 0, 0, 1735, 1733, 1, 0, 0, 0, 1736, + 1737, 5, 42, 0, 0, 1737, 1738, 5, 47, 0, 0, 1738, 1739, 1, 0, 0, 0, 1739, + 1740, 6, 190, 0, 0, 1740, 382, 1, 0, 0, 0, 1741, 1742, 5, 45, 0, 0, 1742, + 1743, 5, 45, 0, 0, 1743, 1748, 5, 32, 0, 0, 1744, 1748, 5, 35, 0, 0, 1745, + 1746, 5, 47, 0, 0, 1746, 1748, 5, 47, 0, 0, 1747, 1741, 1, 0, 0, 0, 1747, + 1744, 1, 0, 0, 0, 1747, 1745, 1, 0, 0, 0, 1748, 1752, 1, 0, 0, 0, 1749, + 1751, 8, 33, 0, 0, 1750, 1749, 1, 0, 0, 0, 1751, 1754, 1, 0, 0, 0, 1752, + 1750, 1, 0, 0, 0, 1752, 1753, 1, 0, 0, 0, 1753, 1760, 1, 0, 0, 0, 1754, + 1752, 1, 0, 0, 0, 1755, 1757, 5, 13, 0, 0, 1756, 1755, 1, 0, 0, 0, 1756, + 1757, 1, 0, 0, 0, 1757, 1758, 1, 0, 0, 0, 1758, 1761, 5, 10, 0, 0, 1759, + 1761, 5, 0, 0, 1, 1760, 1756, 1, 0, 0, 0, 1760, 1759, 1, 0, 0, 0, 1761, + 1773, 1, 0, 0, 0, 1762, 1763, 5, 45, 0, 0, 1763, 1764, 5, 45, 0, 0, 1764, + 1770, 1, 0, 0, 0, 1765, 1767, 5, 13, 0, 0, 1766, 1765, 1, 0, 0, 0, 1766, + 1767, 1, 0, 0, 0, 1767, 1768, 1, 0, 0, 0, 1768, 1771, 5, 10, 0, 0, 1769, + 1771, 5, 0, 0, 1, 1770, 1766, 1, 0, 0, 0, 1770, 1769, 1, 0, 0, 0, 1771, + 1773, 1, 0, 0, 0, 1772, 1747, 1, 0, 0, 0, 1772, 1762, 1, 0, 0, 0, 1773, + 1774, 1, 0, 0, 0, 1774, 1775, 6, 191, 0, 0, 1775, 384, 1, 0, 0, 0, 1776, + 1777, 7, 34, 0, 0, 1777, 1778, 7, 34, 0, 0, 1778, 1779, 7, 34, 0, 0, 1779, + 1780, 7, 34, 0, 0, 1780, 386, 1, 0, 0, 0, 1781, 1782, 7, 34, 0, 0, 1782, + 388, 1, 0, 0, 0, 1783, 1784, 7, 28, 0, 0, 1784, 390, 1, 0, 0, 0, 1785, + 1787, 7, 4, 0, 0, 1786, 1788, 5, 45, 0, 0, 1787, 1786, 1, 0, 0, 0, 1787, + 1788, 1, 0, 0, 0, 1788, 1790, 1, 0, 0, 0, 1789, 1791, 3, 389, 194, 0, 1790, + 1789, 1, 0, 0, 0, 1791, 1792, 1, 0, 0, 0, 1792, 1790, 1, 0, 0, 0, 1792, + 1793, 1, 0, 0, 0, 1793, 392, 1, 0, 0, 0, 34, 0, 1587, 1589, 1601, 1603, + 1611, 1614, 1619, 1625, 1627, 1636, 1646, 1648, 1653, 1656, 1663, 1670, + 1673, 1675, 1681, 1688, 1691, 1709, 1720, 1733, 1747, 1752, 1756, 1760, + 1766, 1770, 1772, 1787, 1792, 1, 0, 1, 0, } deserializer := antlr.NewATNDeserializer(nil) staticData.atn = deserializer.Deserialize(staticData.serializedATN) @@ -888,179 +993,196 @@ func NewCqlLexer(input antlr.CharStream) *CqlLexer { // CqlLexer tokens. const ( - CqlLexerLR_BRACKET = 1 - CqlLexerRR_BRACKET = 2 - CqlLexerLC_BRACKET = 3 - CqlLexerRC_BRACKET = 4 - CqlLexerLS_BRACKET = 5 - CqlLexerRS_BRACKET = 6 - CqlLexerCOMMA = 7 - CqlLexerSEMI = 8 - CqlLexerCOLON = 9 - CqlLexerDOT = 10 - CqlLexerSTAR = 11 - CqlLexerDIVIDE = 12 - CqlLexerMODULE = 13 - CqlLexerPLUS = 14 - CqlLexerMINUSMINUS = 15 - CqlLexerMINUS = 16 - CqlLexerDQUOTE = 17 - CqlLexerSQUOTE = 18 - CqlLexerOPERATOR_EQ = 19 - CqlLexerOPERATOR_LT = 20 - CqlLexerOPERATOR_GT = 21 - CqlLexerOPERATOR_LTE = 22 - CqlLexerOPERATOR_GTE = 23 - CqlLexerK_ADD = 24 - CqlLexerK_AGGREGATE = 25 - CqlLexerK_ALL = 26 - CqlLexerK_ALLOW = 27 - CqlLexerK_ALTER = 28 - CqlLexerK_AND = 29 - CqlLexerK_ANY = 30 - CqlLexerK_APPLY = 31 - CqlLexerK_AS = 32 - CqlLexerK_ASC = 33 - CqlLexerK_AUTHORIZE = 34 - CqlLexerK_BATCH = 35 - CqlLexerK_BEGIN = 36 - CqlLexerK_BY = 37 - CqlLexerK_CALLED = 38 - CqlLexerK_CLUSTERING = 39 - CqlLexerK_COLUMNFAMILY = 40 - CqlLexerK_COMPACT = 41 - CqlLexerK_CONSISTENCY = 42 - CqlLexerK_CONTAINS = 43 - CqlLexerK_CREATE = 44 - CqlLexerK_CUSTOM = 45 - CqlLexerK_DELETE = 46 - CqlLexerK_DESC = 47 - CqlLexerK_DESCRIBE = 48 - CqlLexerK_DISTINCT = 49 - CqlLexerK_DROP = 50 - CqlLexerK_DURABLE_WRITES = 51 - CqlLexerK_EACH_QUORUM = 52 - CqlLexerK_ENTRIES = 53 - CqlLexerK_EXECUTE = 54 - CqlLexerK_EXISTS = 55 - CqlLexerK_FALSE = 56 - CqlLexerK_FILTERING = 57 - CqlLexerK_FINALFUNC = 58 - CqlLexerK_FROM = 59 - CqlLexerK_FULL = 60 - CqlLexerK_FUNCTION = 61 - CqlLexerK_FUNCTIONS = 62 - CqlLexerK_GRANT = 63 - CqlLexerK_IF = 64 - CqlLexerK_IN = 65 - CqlLexerK_INDEX = 66 - CqlLexerK_INFINITY = 67 - CqlLexerK_INITCOND = 68 - CqlLexerK_INPUT = 69 - CqlLexerK_INSERT = 70 - CqlLexerK_INTO = 71 - CqlLexerK_IS = 72 - CqlLexerK_JSON = 73 - CqlLexerK_KEY = 74 - CqlLexerK_KEYS = 75 - CqlLexerK_KEYSPACE = 76 - CqlLexerK_KEYSPACES = 77 - CqlLexerK_LANGUAGE = 78 - CqlLexerK_LEVEL = 79 - CqlLexerK_LIMIT = 80 - CqlLexerK_LOCAL_ONE = 81 - CqlLexerK_LOCAL_QUORUM = 82 - CqlLexerK_LOGGED = 83 - CqlLexerK_LOGIN = 84 - CqlLexerK_MATERIALIZED = 85 - CqlLexerK_MODIFY = 86 - CqlLexerK_NAN = 87 - CqlLexerK_NORECURSIVE = 88 - CqlLexerK_NOSUPERUSER = 89 - CqlLexerK_NOT = 90 - CqlLexerK_NULL = 91 - CqlLexerK_OF = 92 - CqlLexerK_ON = 93 - CqlLexerK_ONE = 94 - CqlLexerK_OPTIONS = 95 - CqlLexerK_OR = 96 - CqlLexerK_ORDER = 97 - CqlLexerK_PARTITION = 98 - CqlLexerK_PASSWORD = 99 - CqlLexerK_PER = 100 - CqlLexerK_PERMISSION = 101 - CqlLexerK_PERMISSIONS = 102 - CqlLexerK_PRIMARY = 103 - CqlLexerK_QUORUM = 104 - CqlLexerK_RENAME = 105 - CqlLexerK_REPLACE = 106 - CqlLexerK_REPLICATION = 107 - CqlLexerK_RETURNS = 108 - CqlLexerK_REVOKE = 109 - CqlLexerK_ROLE = 110 - CqlLexerK_ROLES = 111 - CqlLexerK_SCHEMA = 112 - CqlLexerK_SELECT = 113 - CqlLexerK_SET = 114 - CqlLexerK_SFUNC = 115 - CqlLexerK_STATIC = 116 - CqlLexerK_STORAGE = 117 - CqlLexerK_STYPE = 118 - CqlLexerK_SUPERUSER = 119 - CqlLexerK_TABLE = 120 - CqlLexerK_THREE = 121 - CqlLexerK_TIMESTAMP = 122 - CqlLexerK_TO = 123 - CqlLexerK_TOKEN = 124 - CqlLexerK_TRIGGER = 125 - CqlLexerK_TRUE = 126 - CqlLexerK_TRUNCATE = 127 - CqlLexerK_TTL = 128 - CqlLexerK_TWO = 129 - CqlLexerK_TYPE = 130 - CqlLexerK_UNLOGGED = 131 - CqlLexerK_UPDATE = 132 - CqlLexerK_USE = 133 - CqlLexerK_USER = 134 - CqlLexerK_USING = 135 - CqlLexerK_UUID = 136 - CqlLexerK_VALUES = 137 - CqlLexerK_VIEW = 138 - CqlLexerK_WHERE = 139 - CqlLexerK_WITH = 140 - CqlLexerK_WRITETIME = 141 - CqlLexerK_ASCII = 142 - CqlLexerK_BIGINT = 143 - CqlLexerK_BLOB = 144 - CqlLexerK_BOOLEAN = 145 - CqlLexerK_COUNTER = 146 - CqlLexerK_DATE = 147 - CqlLexerK_DECIMAL = 148 - CqlLexerK_DOUBLE = 149 - CqlLexerK_FLOAT = 150 - CqlLexerK_FROZEN = 151 - CqlLexerK_INET = 152 - CqlLexerK_INT = 153 - CqlLexerK_LIST = 154 - CqlLexerK_MAP = 155 - CqlLexerK_SMALLINT = 156 - CqlLexerK_TEXT = 157 - CqlLexerK_TIMEUUID = 158 - CqlLexerK_TIME = 159 - CqlLexerK_TINYINT = 160 - CqlLexerK_TUPLE = 161 - CqlLexerK_VARCHAR = 162 - CqlLexerK_VARINT = 163 - CqlLexerCODE_BLOCK = 164 - CqlLexerSTRING_LITERAL = 165 - CqlLexerDECIMAL_LITERAL = 166 - CqlLexerFLOAT_LITERAL = 167 - CqlLexerHEXADECIMAL_LITERAL = 168 - CqlLexerREAL_LITERAL = 169 - CqlLexerOBJECT_NAME = 170 - CqlLexerUUID = 171 - CqlLexerSPACE = 172 - CqlLexerSPEC_MYSQL_COMMENT = 173 - CqlLexerCOMMENT_INPUT = 174 - CqlLexerLINE_COMMENT = 175 + CqlLexerLR_BRACKET = 1 + CqlLexerRR_BRACKET = 2 + CqlLexerLC_BRACKET = 3 + CqlLexerRC_BRACKET = 4 + CqlLexerLS_BRACKET = 5 + CqlLexerRS_BRACKET = 6 + CqlLexerCOMMA = 7 + CqlLexerSEMI = 8 + CqlLexerCOLON = 9 + CqlLexerDOT = 10 + CqlLexerSTAR = 11 + CqlLexerDIVIDE = 12 + CqlLexerMODULE = 13 + CqlLexerPLUS = 14 + CqlLexerMINUSMINUS = 15 + CqlLexerMINUS = 16 + CqlLexerDQUOTE = 17 + CqlLexerSQUOTE = 18 + CqlLexerOPERATOR_EQ = 19 + CqlLexerOPERATOR_LT = 20 + CqlLexerOPERATOR_GT = 21 + CqlLexerOPERATOR_LTE = 22 + CqlLexerOPERATOR_GTE = 23 + CqlLexerK_ADD = 24 + CqlLexerK_AGGREGATE = 25 + CqlLexerK_ALL = 26 + CqlLexerK_ALLOW = 27 + CqlLexerK_ALTER = 28 + CqlLexerK_AND = 29 + CqlLexerK_ANY = 30 + CqlLexerK_APPLY = 31 + CqlLexerK_AS = 32 + CqlLexerK_ASC = 33 + CqlLexerK_AUTHORIZE = 34 + CqlLexerK_BATCH = 35 + CqlLexerK_BEGIN = 36 + CqlLexerK_BY = 37 + CqlLexerK_CALLED = 38 + CqlLexerK_CLUSTERING = 39 + CqlLexerK_COLUMNFAMILY = 40 + CqlLexerK_COMPACT = 41 + CqlLexerK_CONSISTENCY = 42 + CqlLexerK_CONTAINS = 43 + CqlLexerK_CREATE = 44 + CqlLexerK_CUSTOM = 45 + CqlLexerK_DELETE = 46 + CqlLexerK_DESC = 47 + CqlLexerK_DESCRIBE = 48 + CqlLexerK_DISTINCT = 49 + CqlLexerK_DROP = 50 + CqlLexerK_DURABLE_WRITES = 51 + CqlLexerK_EACH_QUORUM = 52 + CqlLexerK_ENTRIES = 53 + CqlLexerK_EXECUTE = 54 + CqlLexerK_EXISTS = 55 + CqlLexerK_FALSE = 56 + CqlLexerK_FILTERING = 57 + CqlLexerK_FINALFUNC = 58 + CqlLexerK_FROM = 59 + CqlLexerK_FULL = 60 + CqlLexerK_FUNCTION = 61 + CqlLexerK_FUNCTIONS = 62 + CqlLexerK_GRANT = 63 + CqlLexerK_IF = 64 + CqlLexerK_IN = 65 + CqlLexerK_INDEX = 66 + CqlLexerK_INFINITY = 67 + CqlLexerK_INITCOND = 68 + CqlLexerK_INPUT = 69 + CqlLexerK_INSERT = 70 + CqlLexerK_INTO = 71 + CqlLexerK_IS = 72 + CqlLexerK_JSON = 73 + CqlLexerK_KEY = 74 + CqlLexerK_KEYS = 75 + CqlLexerK_KEYSPACE = 76 + CqlLexerK_KEYSPACES = 77 + CqlLexerK_LANGUAGE = 78 + CqlLexerK_LEVEL = 79 + CqlLexerK_LIMIT = 80 + CqlLexerK_LOCAL_ONE = 81 + CqlLexerK_LOCAL_QUORUM = 82 + CqlLexerK_LOGGED = 83 + CqlLexerK_LOGIN = 84 + CqlLexerK_MATERIALIZED = 85 + CqlLexerK_MODIFY = 86 + CqlLexerK_NAN = 87 + CqlLexerK_NORECURSIVE = 88 + CqlLexerK_NOSUPERUSER = 89 + CqlLexerK_NOT = 90 + CqlLexerK_NULL = 91 + CqlLexerK_OF = 92 + CqlLexerK_ON = 93 + CqlLexerK_ONE = 94 + CqlLexerK_OPTIONS = 95 + CqlLexerK_OR = 96 + CqlLexerK_ORDER = 97 + CqlLexerK_PARTITION = 98 + CqlLexerK_PASSWORD = 99 + CqlLexerK_PER = 100 + CqlLexerK_PERMISSION = 101 + CqlLexerK_PERMISSIONS = 102 + CqlLexerK_PRIMARY = 103 + CqlLexerK_QUORUM = 104 + CqlLexerK_RENAME = 105 + CqlLexerK_REPLACE = 106 + CqlLexerK_REPLICATION = 107 + CqlLexerK_RETURNS = 108 + CqlLexerK_REVOKE = 109 + CqlLexerK_ROLE = 110 + CqlLexerK_ROLES = 111 + CqlLexerK_SCHEMA = 112 + CqlLexerK_SELECT = 113 + CqlLexerK_SET = 114 + CqlLexerK_SFUNC = 115 + CqlLexerK_STATIC = 116 + CqlLexerK_STORAGE = 117 + CqlLexerK_STYPE = 118 + CqlLexerK_SUPERUSER = 119 + CqlLexerK_TABLE = 120 + CqlLexerK_THREE = 121 + CqlLexerK_TIMESTAMP = 122 + CqlLexerK_TO = 123 + CqlLexerK_TOKEN = 124 + CqlLexerK_TRIGGER = 125 + CqlLexerK_TRUE = 126 + CqlLexerK_TRUNCATE = 127 + CqlLexerK_TTL = 128 + CqlLexerK_TWO = 129 + CqlLexerK_TYPE = 130 + CqlLexerK_UNLOGGED = 131 + CqlLexerK_UPDATE = 132 + CqlLexerK_USE = 133 + CqlLexerK_USER = 134 + CqlLexerK_USING = 135 + CqlLexerK_UUID = 136 + CqlLexerK_VALUES = 137 + CqlLexerK_VIEW = 138 + CqlLexerK_WHERE = 139 + CqlLexerK_WITH = 140 + CqlLexerK_WRITETIME = 141 + CqlLexerK_ASCII = 142 + CqlLexerK_BIGINT = 143 + CqlLexerK_BLOB = 144 + CqlLexerK_BOOLEAN = 145 + CqlLexerK_COUNTER = 146 + CqlLexerK_DATE = 147 + CqlLexerK_DECIMAL = 148 + CqlLexerK_DOUBLE = 149 + CqlLexerK_FLOAT = 150 + CqlLexerK_FROZEN = 151 + CqlLexerK_INET = 152 + CqlLexerK_INT = 153 + CqlLexerK_LIST = 154 + CqlLexerK_MAP = 155 + CqlLexerK_SMALLINT = 156 + CqlLexerK_TEXT = 157 + CqlLexerK_TIMEUUID = 158 + CqlLexerK_TIME = 159 + CqlLexerK_TINYINT = 160 + CqlLexerK_TUPLE = 161 + CqlLexerK_VECTOR = 162 + CqlLexerK_DURATION = 163 + CqlLexerK_DEFAULT = 164 + CqlLexerK_UNSET = 165 + CqlLexerK_SAI = 166 + CqlLexerK_STORAGEATTACHEDINDEX = 167 + CqlLexerK_ANN = 168 + CqlLexerK_VARCHAR = 169 + CqlLexerK_VARINT = 170 + CqlLexerK_NOW = 171 + CqlLexerK_FROMJSON = 172 + CqlLexerK_TOJSON = 173 + CqlLexerK_MINTIMEUUID = 174 + CqlLexerK_MAXTIMEUUID = 175 + CqlLexerK_DATETIMENOW = 176 + CqlLexerK_CURRENTTIMESTAMP = 177 + CqlLexerK_CURRENTDATE = 178 + CqlLexerK_CURRENTTIME = 179 + CqlLexerK_CURRENTTIMEUUID = 180 + CqlLexerCODE_BLOCK = 181 + CqlLexerSTRING_LITERAL = 182 + CqlLexerDECIMAL_LITERAL = 183 + CqlLexerFLOAT_LITERAL = 184 + CqlLexerHEXADECIMAL_LITERAL = 185 + CqlLexerREAL_LITERAL = 186 + CqlLexerOBJECT_NAME = 187 + CqlLexerUUID = 188 + CqlLexerSPACE = 189 + CqlLexerSPEC_MYSQL_COMMENT = 190 + CqlLexerCOMMENT_INPUT = 191 + CqlLexerLINE_COMMENT = 192 ) diff --git a/cql/cql_parser.go b/cql/cql_parser.go index 57ea1c5..f1203c6 100644 --- a/cql/cql_parser.go +++ b/cql/cql_parser.go @@ -56,7 +56,11 @@ func cqlparserParserInit() { "'WITH'", "'WRITETIME'", "'ASCII'", "'BIGINT'", "'BLOB'", "'BOOLEAN'", "'COUNTER'", "'DATE'", "'DECIMAL'", "'DOUBLE'", "'FLOAT'", "'FROZEN'", "'INET'", "'INT'", "'LIST'", "'MAP'", "'SMALLINT'", "'TEXT'", "'TIMEUUID'", - "'TIME'", "'TINYINT'", "'TUPLE'", "'VARCHAR'", "'VARINT'", + "'TIME'", "'TINYINT'", "'TUPLE'", "'VECTOR'", "'DURATION'", "'DEFAULT'", + "'UNSET'", "'SAI'", "'STORAGEATTACHEDINDEX'", "'ANN'", "'VARCHAR'", + "'VARINT'", "'NOW'", "'FROMJSON'", "'TOJSON'", "'MINTIMEUUID'", "'MAXTIMEUUID'", + "'DATETIMENOW'", "'CURRENTTIMESTAMP'", "'CURRENTDATE'", "'CURRENTTIME'", + "'CURRENTTIMEUUID'", } staticData.SymbolicNames = []string{ "", "LR_BRACKET", "RR_BRACKET", "LC_BRACKET", "RC_BRACKET", "LS_BRACKET", @@ -84,10 +88,14 @@ func cqlparserParserInit() { "K_VIEW", "K_WHERE", "K_WITH", "K_WRITETIME", "K_ASCII", "K_BIGINT", "K_BLOB", "K_BOOLEAN", "K_COUNTER", "K_DATE", "K_DECIMAL", "K_DOUBLE", "K_FLOAT", "K_FROZEN", "K_INET", "K_INT", "K_LIST", "K_MAP", "K_SMALLINT", - "K_TEXT", "K_TIMEUUID", "K_TIME", "K_TINYINT", "K_TUPLE", "K_VARCHAR", - "K_VARINT", "CODE_BLOCK", "STRING_LITERAL", "DECIMAL_LITERAL", "FLOAT_LITERAL", - "HEXADECIMAL_LITERAL", "REAL_LITERAL", "OBJECT_NAME", "UUID", "SPACE", - "SPEC_MYSQL_COMMENT", "COMMENT_INPUT", "LINE_COMMENT", + "K_TEXT", "K_TIMEUUID", "K_TIME", "K_TINYINT", "K_TUPLE", "K_VECTOR", + "K_DURATION", "K_DEFAULT", "K_UNSET", "K_SAI", "K_STORAGEATTACHEDINDEX", + "K_ANN", "K_VARCHAR", "K_VARINT", "K_NOW", "K_FROMJSON", "K_TOJSON", + "K_MINTIMEUUID", "K_MAXTIMEUUID", "K_DATETIMENOW", "K_CURRENTTIMESTAMP", + "K_CURRENTDATE", "K_CURRENTTIME", "K_CURRENTTIMEUUID", "CODE_BLOCK", + "STRING_LITERAL", "DECIMAL_LITERAL", "FLOAT_LITERAL", "HEXADECIMAL_LITERAL", + "REAL_LITERAL", "OBJECT_NAME", "UUID", "SPACE", "SPEC_MYSQL_COMMENT", + "COMMENT_INPUT", "LINE_COMMENT", } staticData.RuleNames = []string{ "root", "cqls", "statementSeparator", "empty_", "cql", "revoke", "listRoles", @@ -113,29 +121,30 @@ func cqlparserParserInit() { "partitionKeyList", "clusteringKeyList", "partitionKey", "clusteringKey", "applyBatch", "beginBatch", "batchType", "alterKeyspace", "replicationList", "replicationListItem", "durableWrites", "use_", "truncate", "createIndex", - "indexName", "indexColumnSpec", "indexKeysSpec", "indexEntriesSSpec", - "indexFullSpec", "delete_", "deleteColumnList", "deleteColumnItem", - "update", "ifSpec", "ifConditionList", "ifCondition", "assignments", - "assignmentElement", "assignmentSet", "assignmentMap", "assignmentList", - "assignmentTuple", "insert", "usingTtlTimestamp", "timestamp", "ttl", - "usingTimestampSpec", "ifNotExist", "ifExist", "insertValuesSpec", "insertColumnSpec", + "indexClass", "indexOptions", "indexName", "indexColumnSpec", "indexFullSpec", + "delete_", "deleteColumnList", "deleteColumnItem", "update", "ifSpec", + "ifConditionList", "ifCondition", "assignments", "assignmentElement", + "assignmentSet", "assignmentMap", "assignmentList", "assignmentTuple", + "insert", "usingTtlTimestamp", "timestamp", "ttl", "usingTimestampSpec", + "ifNotExist", "ifExist", "insertValuesSpec", "jsonDefaultUnset", "insertColumnSpec", "columnList", "expressionList", "expression", "select_", "allowFilteringSpec", "limitSpec", "fromSpec", "fromSpecElement", "orderSpec", "orderSpecElement", - "whereSpec", "distinctSpec", "selectElements", "selectElement", "relationElements", - "relationElement", "relalationContains", "relalationContainsKey", "functionCall", - "functionArgs", "constant", "decimalLiteral", "floatLiteral", "stringLiteral", - "booleanLiteral", "hexadecimalLiteral", "keyspace", "table", "column", - "dataType", "dataTypeName", "dataTypeDefinition", "orderDirection", - "role", "trigger", "triggerClass", "materializedView", "type_", "aggregate", - "function_", "language", "user", "password", "hashKey", "param", "paramName", - "kwAdd", "kwAggregate", "kwAll", "kwAllPermissions", "kwAllow", "kwAlter", - "kwAnd", "kwApply", "kwAs", "kwAsc", "kwAuthorize", "kwBatch", "kwBegin", - "kwBy", "kwCalled", "kwClustering", "kwCompact", "kwContains", "kwCreate", - "kwDelete", "kwDesc", "kwDescibe", "kwDistinct", "kwDrop", "kwDurableWrites", - "kwEntries", "kwExecute", "kwExists", "kwFiltering", "kwFinalfunc", - "kwFrom", "kwFull", "kwFunction", "kwFunctions", "kwGrant", "kwIf", - "kwIn", "kwIndex", "kwInitcond", "kwInput", "kwInsert", "kwInto", "kwIs", - "kwJson", "kwKey", "kwKeys", "kwKeyspace", "kwKeyspaces", "kwLanguage", + "vectorLiteral", "constantList", "whereSpec", "distinctSpec", "selectElements", + "selectElement", "relationElements", "relationElement", "relalationContains", + "relalationContainsKey", "functionCall", "functionArgs", "constant", + "decimalLiteral", "floatLiteral", "stringLiteral", "booleanLiteral", + "hexadecimalLiteral", "keyspace", "table", "column", "dataType", "dataTypeName", + "dataTypeDefinition", "orderDirection", "role", "trigger", "triggerClass", + "materializedView", "type_", "aggregate", "function_", "language", "user", + "password", "hashKey", "param", "paramName", "kwAdd", "kwAggregate", + "kwAll", "kwAllPermissions", "kwAllow", "kwAlter", "kwAnd", "kwApply", + "kwAs", "kwAsc", "kwAuthorize", "kwBatch", "kwBegin", "kwBy", "kwCalled", + "kwClustering", "kwCompact", "kwContains", "kwCreate", "kwCustom", "kwDefault", + "kwUnset", "kwAnn", "kwDelete", "kwDesc", "kwDescribe", "kwDistinct", + "kwDrop", "kwDurableWrites", "kwEntries", "kwExecute", "kwExists", "kwFiltering", + "kwFinalfunc", "kwFrom", "kwFull", "kwFunction", "kwFunctions", "kwGrant", + "kwIf", "kwIn", "kwIndex", "kwInitcond", "kwInput", "kwInsert", "kwInto", + "kwIs", "kwJson", "kwKey", "kwKeys", "kwKeyspace", "kwKeyspaces", "kwLanguage", "kwLimit", "kwList", "kwLogged", "kwLogin", "kwMaterialized", "kwModify", "kwNosuperuser", "kwNorecursive", "kwNot", "kwNull", "kwOf", "kwOn", "kwOptions", "kwOr", "kwOrder", "kwPassword", "kwPrimary", "kwRename", @@ -149,7 +158,7 @@ func cqlparserParserInit() { } staticData.PredictionContextCache = antlr.NewPredictionContextCache() staticData.serializedATN = []int32{ - 4, 1, 175, 2320, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3, 7, 3, 2, 4, + 4, 1, 192, 2424, 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, @@ -207,182 +216,193 @@ func cqlparserParserInit() { 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, 1, 0, 3, 0, 556, 8, 0, 1, 0, 3, 0, 559, 8, - 0, 1, 0, 1, 0, 1, 1, 1, 1, 3, 1, 565, 8, 1, 1, 1, 1, 1, 1, 1, 5, 1, 570, - 8, 1, 10, 1, 12, 1, 573, 9, 1, 1, 1, 1, 1, 3, 1, 577, 8, 1, 1, 1, 3, 1, - 580, 8, 1, 1, 1, 3, 1, 583, 8, 1, 1, 2, 1, 2, 1, 3, 1, 3, 1, 4, 1, 4, 1, + 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, 1, + 0, 3, 0, 570, 8, 0, 1, 0, 3, 0, 573, 8, 0, 1, 0, 1, 0, 1, 1, 1, 1, 3, 1, + 579, 8, 1, 1, 1, 1, 1, 1, 1, 5, 1, 584, 8, 1, 10, 1, 12, 1, 587, 9, 1, + 1, 1, 1, 1, 3, 1, 591, 8, 1, 1, 1, 3, 1, 594, 8, 1, 1, 1, 3, 1, 597, 8, + 1, 1, 2, 1, 2, 1, 3, 1, 3, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, - 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 3, 4, 626, - 8, 4, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 6, 1, 6, 1, 6, 1, 6, - 1, 6, 3, 6, 640, 8, 6, 1, 6, 3, 6, 643, 8, 6, 1, 7, 1, 7, 1, 7, 1, 7, 1, - 7, 3, 7, 650, 8, 7, 1, 7, 1, 7, 1, 7, 3, 7, 655, 8, 7, 1, 8, 1, 8, 1, 8, - 1, 8, 1, 8, 1, 8, 1, 8, 1, 9, 1, 9, 3, 9, 666, 8, 9, 1, 9, 1, 9, 1, 9, - 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 3, 9, 676, 8, 9, 1, 10, 1, 10, 1, 10, 1, - 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 3, 10, - 691, 8, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, - 10, 3, 10, 702, 8, 10, 1, 10, 1, 10, 1, 10, 3, 10, 707, 8, 10, 1, 10, 1, - 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 3, 10, 716, 8, 10, 1, 11, 1, 11, - 1, 11, 3, 11, 721, 8, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 3, - 11, 729, 8, 11, 1, 12, 1, 12, 1, 12, 3, 12, 734, 8, 12, 1, 12, 1, 12, 3, - 12, 738, 8, 12, 1, 13, 1, 13, 1, 13, 3, 13, 743, 8, 13, 1, 13, 1, 13, 1, - 13, 3, 13, 748, 8, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 14, 1, 14, - 1, 14, 1, 14, 1, 14, 1, 14, 5, 14, 761, 8, 14, 10, 14, 12, 14, 764, 9, - 14, 1, 15, 1, 15, 1, 15, 3, 15, 769, 8, 15, 1, 15, 1, 15, 1, 15, 3, 15, - 774, 8, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 16, 1, 16, 1, 16, 1, 16, 3, - 16, 784, 8, 16, 1, 16, 1, 16, 1, 16, 3, 16, 789, 8, 16, 1, 16, 1, 16, 1, - 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 3, 16, 799, 8, 16, 1, 16, 1, 16, - 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 3, 16, 811, 8, - 16, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 3, 17, 818, 8, 17, 1, 18, 1, 18, - 1, 18, 1, 18, 5, 18, 824, 8, 18, 10, 18, 12, 18, 827, 9, 18, 1, 19, 1, - 19, 1, 19, 1, 19, 1, 19, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 3, 20, - 840, 8, 20, 1, 21, 1, 21, 1, 21, 3, 21, 845, 8, 21, 1, 21, 1, 21, 1, 21, - 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 3, 21, 857, 8, 21, 1, - 22, 1, 22, 3, 22, 861, 8, 22, 1, 22, 1, 22, 3, 22, 865, 8, 22, 1, 22, 1, - 22, 1, 22, 3, 22, 870, 8, 22, 1, 22, 1, 22, 1, 22, 3, 22, 875, 8, 22, 1, - 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 23, 1, 23, - 1, 24, 1, 24, 1, 24, 1, 24, 5, 24, 892, 8, 24, 10, 24, 12, 24, 895, 9, - 24, 1, 25, 1, 25, 1, 25, 1, 25, 3, 25, 901, 8, 25, 1, 25, 1, 25, 1, 25, - 1, 25, 1, 26, 1, 26, 3, 26, 909, 8, 26, 1, 26, 1, 26, 3, 26, 913, 8, 26, - 1, 26, 1, 26, 1, 26, 3, 26, 918, 8, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, - 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 27, 1, 27, - 1, 27, 1, 27, 3, 27, 937, 8, 27, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 5, - 28, 944, 8, 28, 10, 28, 12, 28, 947, 9, 28, 1, 28, 1, 28, 1, 29, 1, 29, - 1, 29, 1, 29, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 5, 30, 961, 8, - 30, 10, 30, 12, 30, 964, 9, 30, 1, 30, 1, 30, 1, 31, 1, 31, 1, 31, 1, 31, - 1, 31, 5, 31, 973, 8, 31, 10, 31, 12, 31, 976, 9, 31, 1, 31, 1, 31, 1, - 32, 1, 32, 1, 32, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33, 3, 33, 989, - 8, 33, 1, 34, 1, 34, 1, 34, 1, 35, 1, 35, 3, 35, 996, 8, 35, 1, 36, 1, - 36, 1, 36, 1, 36, 1, 36, 3, 36, 1003, 8, 36, 1, 36, 1, 36, 1, 36, 1, 37, - 1, 37, 1, 37, 3, 37, 1011, 8, 37, 1, 38, 1, 38, 1, 38, 1, 39, 1, 39, 1, - 39, 1, 39, 5, 39, 1020, 8, 39, 10, 39, 12, 39, 1023, 9, 39, 1, 40, 1, 40, - 1, 40, 1, 40, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 5, 41, 1036, - 8, 41, 10, 41, 12, 41, 1039, 9, 41, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, - 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 3, 43, 1051, 8, 43, 1, 43, 1, 43, 1, - 43, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 3, 44, 1061, 8, 44, 1, 45, 1, 45, - 1, 45, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 47, 1, 47, 1, 47, 1, 47, 1, - 48, 1, 48, 1, 48, 1, 49, 1, 49, 1, 49, 1, 49, 5, 49, 1082, 8, 49, 10, 49, - 12, 49, 1085, 9, 49, 1, 50, 1, 50, 1, 50, 1, 51, 1, 51, 1, 51, 1, 51, 1, - 51, 1, 51, 5, 51, 1096, 8, 51, 10, 51, 12, 51, 1099, 9, 51, 1, 52, 1, 52, - 1, 52, 1, 52, 3, 52, 1105, 8, 52, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 5, - 53, 1112, 8, 53, 10, 53, 12, 53, 1115, 9, 53, 1, 54, 1, 54, 1, 54, 1, 54, - 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, - 54, 1, 54, 3, 54, 1133, 8, 54, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, - 3, 55, 1141, 8, 55, 1, 55, 1, 55, 1, 55, 1, 55, 3, 55, 1147, 8, 55, 1, - 56, 1, 56, 1, 56, 3, 56, 1152, 8, 56, 1, 56, 1, 56, 1, 57, 1, 57, 1, 57, - 3, 57, 1159, 8, 57, 1, 57, 1, 57, 1, 57, 3, 57, 1164, 8, 57, 1, 57, 1, - 57, 1, 58, 1, 58, 1, 58, 1, 58, 3, 58, 1172, 8, 58, 1, 58, 1, 58, 1, 58, - 3, 58, 1177, 8, 58, 1, 58, 1, 58, 1, 59, 1, 59, 1, 59, 3, 59, 1184, 8, - 59, 1, 59, 1, 59, 1, 59, 3, 59, 1189, 8, 59, 1, 59, 1, 59, 1, 60, 1, 60, - 1, 60, 3, 60, 1196, 8, 60, 1, 60, 1, 60, 1, 60, 3, 60, 1201, 8, 60, 1, - 60, 1, 60, 1, 61, 1, 61, 1, 61, 3, 61, 1208, 8, 61, 1, 61, 1, 61, 1, 61, - 1, 61, 1, 61, 3, 61, 1215, 8, 61, 1, 61, 1, 61, 1, 62, 1, 62, 1, 62, 3, - 62, 1222, 8, 62, 1, 62, 1, 62, 1, 63, 1, 63, 1, 63, 3, 63, 1229, 8, 63, - 1, 63, 1, 63, 1, 63, 3, 63, 1234, 8, 63, 1, 63, 1, 63, 1, 64, 1, 64, 1, - 64, 3, 64, 1241, 8, 64, 1, 64, 1, 64, 1, 65, 1, 65, 1, 65, 3, 65, 1248, - 8, 65, 1, 65, 1, 65, 1, 65, 3, 65, 1253, 8, 65, 1, 65, 1, 65, 1, 66, 1, - 66, 1, 66, 3, 66, 1260, 8, 66, 1, 66, 1, 66, 1, 66, 3, 66, 1265, 8, 66, - 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 3, 66, 1272, 8, 66, 1, 67, 1, 67, 1, - 67, 1, 68, 1, 68, 1, 68, 1, 68, 1, 68, 3, 68, 1282, 8, 68, 1, 68, 1, 68, - 1, 68, 1, 68, 3, 68, 1288, 8, 68, 1, 68, 1, 68, 1, 68, 1, 68, 5, 68, 1294, - 8, 68, 10, 68, 12, 68, 1297, 9, 68, 3, 68, 1299, 8, 68, 1, 69, 1, 69, 1, - 69, 1, 69, 1, 69, 1, 69, 3, 69, 1307, 8, 69, 1, 69, 1, 69, 1, 69, 3, 69, - 1312, 8, 69, 5, 69, 1314, 8, 69, 10, 69, 12, 69, 1317, 9, 69, 1, 69, 1, - 69, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 3, 70, 1329, - 8, 70, 1, 71, 1, 71, 1, 72, 1, 72, 3, 72, 1335, 8, 72, 1, 73, 1, 73, 1, - 73, 1, 73, 1, 73, 5, 73, 1342, 8, 73, 10, 73, 12, 73, 1345, 9, 73, 1, 73, - 1, 73, 1, 74, 1, 74, 1, 74, 1, 74, 1, 75, 1, 75, 1, 76, 1, 76, 3, 76, 1357, - 8, 76, 1, 77, 1, 77, 1, 77, 1, 77, 5, 77, 1363, 8, 77, 10, 77, 12, 77, - 1366, 9, 77, 1, 77, 1, 77, 1, 77, 3, 77, 1371, 8, 77, 1, 78, 1, 78, 1, - 78, 3, 78, 1376, 8, 78, 1, 79, 1, 79, 1, 79, 1, 80, 1, 80, 1, 80, 1, 80, - 1, 80, 1, 80, 1, 81, 1, 81, 1, 81, 3, 81, 1390, 8, 81, 1, 82, 1, 82, 1, - 83, 1, 83, 1, 83, 1, 83, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 85, - 1, 85, 1, 85, 1, 85, 5, 85, 1408, 8, 85, 10, 85, 12, 85, 1411, 9, 85, 1, - 86, 1, 86, 1, 86, 1, 86, 5, 86, 1417, 8, 86, 10, 86, 12, 86, 1420, 9, 86, - 1, 87, 1, 87, 1, 88, 1, 88, 1, 89, 1, 89, 1, 89, 1, 90, 1, 90, 3, 90, 1431, - 8, 90, 1, 90, 1, 90, 3, 90, 1435, 8, 90, 1, 91, 1, 91, 3, 91, 1439, 8, - 91, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, - 1, 92, 1, 92, 3, 92, 1453, 8, 92, 1, 93, 1, 93, 1, 93, 1, 93, 5, 93, 1459, - 8, 93, 10, 93, 12, 93, 1462, 9, 93, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, - 1, 94, 3, 94, 1470, 8, 94, 1, 95, 1, 95, 1, 95, 1, 95, 1, 96, 1, 96, 1, - 96, 1, 97, 1, 97, 3, 97, 1481, 8, 97, 1, 97, 1, 97, 1, 97, 3, 97, 1486, - 8, 97, 1, 97, 1, 97, 1, 98, 1, 98, 1, 98, 3, 98, 1493, 8, 98, 1, 98, 3, - 98, 1496, 8, 98, 1, 98, 1, 98, 1, 98, 1, 98, 3, 98, 1502, 8, 98, 1, 98, - 1, 98, 1, 98, 1, 98, 1, 98, 1, 99, 1, 99, 3, 99, 1511, 8, 99, 1, 100, 1, - 100, 1, 100, 1, 100, 3, 100, 1517, 8, 100, 1, 101, 1, 101, 1, 101, 1, 101, - 1, 101, 1, 102, 1, 102, 1, 102, 1, 102, 1, 102, 1, 103, 1, 103, 1, 103, - 1, 103, 1, 103, 1, 104, 3, 104, 1535, 8, 104, 1, 104, 1, 104, 3, 104, 1539, - 8, 104, 1, 104, 1, 104, 3, 104, 1543, 8, 104, 1, 104, 1, 104, 1, 104, 3, - 104, 1548, 8, 104, 1, 105, 1, 105, 1, 105, 1, 105, 5, 105, 1554, 8, 105, - 10, 105, 12, 105, 1557, 9, 105, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, - 3, 106, 1564, 8, 106, 1, 106, 1, 106, 3, 106, 1568, 8, 106, 1, 107, 3, - 107, 1571, 8, 107, 1, 107, 1, 107, 1, 107, 1, 107, 3, 107, 1577, 8, 107, - 1, 107, 1, 107, 3, 107, 1581, 8, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, - 107, 3, 107, 1588, 8, 107, 1, 108, 1, 108, 1, 108, 1, 109, 1, 109, 1, 109, - 1, 109, 5, 109, 1597, 8, 109, 10, 109, 12, 109, 1600, 9, 109, 1, 110, 1, - 110, 1, 110, 1, 110, 1, 111, 1, 111, 1, 111, 1, 111, 5, 111, 1610, 8, 111, - 10, 111, 12, 111, 1613, 9, 111, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, - 1, 112, 3, 112, 1621, 8, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, + 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 3, 4, 640, 8, 4, 1, 5, 1, 5, 1, 5, 1, + 5, 1, 5, 1, 5, 1, 5, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 3, 6, 654, 8, 6, 1, + 6, 3, 6, 657, 8, 6, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 3, 7, 664, 8, 7, 1, 7, + 1, 7, 1, 7, 3, 7, 669, 8, 7, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, + 1, 9, 1, 9, 3, 9, 680, 8, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, + 1, 9, 3, 9, 690, 8, 9, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, + 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 3, 10, 705, 8, 10, 1, 10, 1, + 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 3, 10, 716, 8, 10, + 1, 10, 1, 10, 1, 10, 3, 10, 721, 8, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, + 10, 1, 10, 1, 10, 3, 10, 730, 8, 10, 1, 11, 1, 11, 1, 11, 3, 11, 735, 8, + 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 3, 11, 743, 8, 11, 1, 12, + 1, 12, 1, 12, 3, 12, 748, 8, 12, 1, 12, 1, 12, 3, 12, 752, 8, 12, 1, 13, + 1, 13, 1, 13, 3, 13, 757, 8, 13, 1, 13, 1, 13, 1, 13, 3, 13, 762, 8, 13, + 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, + 14, 5, 14, 775, 8, 14, 10, 14, 12, 14, 778, 9, 14, 1, 15, 1, 15, 1, 15, + 3, 15, 783, 8, 15, 1, 15, 1, 15, 1, 15, 3, 15, 788, 8, 15, 1, 15, 1, 15, + 1, 15, 1, 15, 1, 16, 1, 16, 1, 16, 1, 16, 3, 16, 798, 8, 16, 1, 16, 1, + 16, 1, 16, 3, 16, 803, 8, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, + 1, 16, 1, 16, 3, 16, 813, 8, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, + 16, 1, 16, 1, 16, 1, 16, 1, 16, 3, 16, 825, 8, 16, 1, 17, 1, 17, 1, 17, + 1, 17, 1, 17, 3, 17, 832, 8, 17, 1, 18, 1, 18, 1, 18, 1, 18, 5, 18, 838, + 8, 18, 10, 18, 12, 18, 841, 9, 18, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, + 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 3, 20, 854, 8, 20, 1, 21, 1, 21, + 1, 21, 3, 21, 859, 8, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, + 21, 1, 21, 1, 21, 1, 21, 3, 21, 871, 8, 21, 1, 22, 1, 22, 3, 22, 875, 8, + 22, 1, 22, 1, 22, 3, 22, 879, 8, 22, 1, 22, 1, 22, 1, 22, 3, 22, 884, 8, + 22, 1, 22, 1, 22, 1, 22, 3, 22, 889, 8, 22, 1, 22, 1, 22, 1, 22, 1, 22, + 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 23, 1, 23, 1, 24, 1, 24, 1, 24, 1, + 24, 5, 24, 906, 8, 24, 10, 24, 12, 24, 909, 9, 24, 1, 25, 1, 25, 1, 25, + 1, 25, 3, 25, 915, 8, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 26, 1, 26, 3, + 26, 923, 8, 26, 1, 26, 1, 26, 3, 26, 927, 8, 26, 1, 26, 1, 26, 1, 26, 3, + 26, 932, 8, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, + 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 27, 1, 27, 1, 27, 1, 27, 3, 27, 951, + 8, 27, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 5, 28, 958, 8, 28, 10, 28, 12, + 28, 961, 9, 28, 1, 28, 1, 28, 1, 29, 1, 29, 1, 29, 1, 29, 1, 30, 1, 30, + 1, 30, 1, 30, 1, 30, 1, 30, 5, 30, 975, 8, 30, 10, 30, 12, 30, 978, 9, + 30, 1, 30, 1, 30, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 5, 31, 987, 8, 31, + 10, 31, 12, 31, 990, 9, 31, 1, 31, 1, 31, 1, 32, 1, 32, 1, 32, 1, 33, 1, + 33, 1, 33, 1, 33, 1, 33, 1, 33, 3, 33, 1003, 8, 33, 1, 34, 1, 34, 1, 34, + 1, 35, 1, 35, 3, 35, 1010, 8, 35, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 3, + 36, 1017, 8, 36, 1, 36, 1, 36, 1, 36, 1, 37, 1, 37, 1, 37, 3, 37, 1025, + 8, 37, 1, 38, 1, 38, 1, 38, 1, 39, 1, 39, 1, 39, 1, 39, 5, 39, 1034, 8, + 39, 10, 39, 12, 39, 1037, 9, 39, 1, 40, 1, 40, 1, 40, 1, 40, 1, 41, 1, + 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 5, 41, 1050, 8, 41, 10, 41, 12, + 41, 1053, 9, 41, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 43, 1, 43, 1, 43, + 1, 43, 1, 43, 3, 43, 1065, 8, 43, 1, 43, 1, 43, 1, 43, 1, 44, 1, 44, 1, + 44, 1, 44, 1, 44, 3, 44, 1075, 8, 44, 1, 45, 1, 45, 1, 45, 1, 46, 1, 46, + 1, 46, 1, 46, 1, 46, 1, 47, 1, 47, 1, 47, 1, 47, 1, 48, 1, 48, 1, 48, 1, + 49, 1, 49, 1, 49, 1, 49, 5, 49, 1096, 8, 49, 10, 49, 12, 49, 1099, 9, 49, + 1, 50, 1, 50, 1, 50, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 1, 51, 5, 51, 1110, + 8, 51, 10, 51, 12, 51, 1113, 9, 51, 1, 52, 1, 52, 1, 52, 1, 52, 3, 52, + 1119, 8, 52, 1, 53, 1, 53, 1, 53, 1, 53, 1, 53, 5, 53, 1126, 8, 53, 10, + 53, 12, 53, 1129, 9, 53, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, + 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 3, 54, 1147, + 8, 54, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 1, 55, 3, 55, 1155, 8, 55, 1, + 55, 1, 55, 1, 55, 1, 55, 3, 55, 1161, 8, 55, 1, 56, 1, 56, 1, 56, 3, 56, + 1166, 8, 56, 1, 56, 1, 56, 1, 57, 1, 57, 1, 57, 3, 57, 1173, 8, 57, 1, + 57, 1, 57, 1, 57, 3, 57, 1178, 8, 57, 1, 57, 1, 57, 1, 58, 1, 58, 1, 58, + 1, 58, 3, 58, 1186, 8, 58, 1, 58, 1, 58, 1, 58, 3, 58, 1191, 8, 58, 1, + 58, 1, 58, 1, 59, 1, 59, 1, 59, 3, 59, 1198, 8, 59, 1, 59, 1, 59, 1, 59, + 3, 59, 1203, 8, 59, 1, 59, 1, 59, 1, 60, 1, 60, 1, 60, 3, 60, 1210, 8, + 60, 1, 60, 1, 60, 1, 60, 3, 60, 1215, 8, 60, 1, 60, 1, 60, 1, 61, 1, 61, + 1, 61, 3, 61, 1222, 8, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 3, 61, 1229, + 8, 61, 1, 61, 1, 61, 1, 62, 1, 62, 1, 62, 3, 62, 1236, 8, 62, 1, 62, 1, + 62, 1, 63, 1, 63, 1, 63, 3, 63, 1243, 8, 63, 1, 63, 1, 63, 1, 63, 3, 63, + 1248, 8, 63, 1, 63, 1, 63, 1, 64, 1, 64, 1, 64, 3, 64, 1255, 8, 64, 1, + 64, 1, 64, 1, 65, 1, 65, 1, 65, 3, 65, 1262, 8, 65, 1, 65, 1, 65, 1, 65, + 3, 65, 1267, 8, 65, 1, 65, 1, 65, 1, 66, 1, 66, 1, 66, 3, 66, 1274, 8, + 66, 1, 66, 1, 66, 1, 66, 3, 66, 1279, 8, 66, 1, 66, 1, 66, 1, 66, 1, 66, + 1, 66, 3, 66, 1286, 8, 66, 1, 67, 1, 67, 1, 67, 1, 68, 1, 68, 1, 68, 1, + 68, 1, 68, 3, 68, 1296, 8, 68, 1, 68, 1, 68, 1, 68, 1, 68, 3, 68, 1302, + 8, 68, 1, 68, 1, 68, 1, 68, 1, 68, 5, 68, 1308, 8, 68, 10, 68, 12, 68, + 1311, 9, 68, 3, 68, 1313, 8, 68, 1, 69, 1, 69, 1, 69, 1, 69, 1, 69, 1, + 69, 3, 69, 1321, 8, 69, 1, 69, 1, 69, 1, 69, 3, 69, 1326, 8, 69, 5, 69, + 1328, 8, 69, 10, 69, 12, 69, 1331, 9, 69, 1, 69, 1, 69, 1, 70, 1, 70, 1, + 70, 1, 70, 1, 70, 1, 70, 1, 70, 1, 70, 3, 70, 1343, 8, 70, 1, 71, 1, 71, + 1, 72, 1, 72, 3, 72, 1349, 8, 72, 1, 73, 1, 73, 1, 73, 1, 73, 1, 73, 5, + 73, 1356, 8, 73, 10, 73, 12, 73, 1359, 9, 73, 1, 73, 1, 73, 1, 74, 1, 74, + 1, 74, 1, 74, 1, 75, 1, 75, 1, 76, 1, 76, 3, 76, 1371, 8, 76, 1, 77, 1, + 77, 1, 77, 1, 77, 5, 77, 1377, 8, 77, 10, 77, 12, 77, 1380, 9, 77, 1, 77, + 1, 77, 1, 77, 3, 77, 1385, 8, 77, 1, 78, 1, 78, 1, 78, 3, 78, 1390, 8, + 78, 1, 79, 1, 79, 1, 79, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 80, 1, 81, + 1, 81, 1, 81, 3, 81, 1404, 8, 81, 1, 82, 1, 82, 1, 83, 1, 83, 1, 83, 1, + 83, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 84, 1, 85, 1, 85, 1, 85, 1, 85, + 5, 85, 1422, 8, 85, 10, 85, 12, 85, 1425, 9, 85, 1, 86, 1, 86, 1, 86, 1, + 86, 5, 86, 1431, 8, 86, 10, 86, 12, 86, 1434, 9, 86, 1, 87, 1, 87, 1, 88, + 1, 88, 1, 89, 1, 89, 1, 89, 1, 90, 1, 90, 3, 90, 1445, 8, 90, 1, 90, 1, + 90, 3, 90, 1449, 8, 90, 1, 91, 1, 91, 3, 91, 1453, 8, 91, 1, 92, 1, 92, + 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 1, 92, 3, + 92, 1467, 8, 92, 1, 93, 1, 93, 1, 93, 1, 93, 5, 93, 1473, 8, 93, 10, 93, + 12, 93, 1476, 9, 93, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 1, 94, 3, 94, 1484, + 8, 94, 1, 95, 1, 95, 1, 95, 1, 95, 1, 96, 1, 96, 1, 96, 1, 97, 1, 97, 3, + 97, 1495, 8, 97, 1, 97, 1, 97, 1, 97, 3, 97, 1500, 8, 97, 1, 97, 1, 97, + 1, 98, 1, 98, 3, 98, 1506, 8, 98, 1, 98, 1, 98, 3, 98, 1510, 8, 98, 1, + 98, 3, 98, 1513, 8, 98, 1, 98, 1, 98, 1, 98, 1, 98, 3, 98, 1519, 8, 98, + 1, 98, 1, 98, 1, 98, 1, 98, 1, 98, 1, 98, 1, 98, 3, 98, 1528, 8, 98, 1, + 98, 1, 98, 1, 98, 3, 98, 1533, 8, 98, 1, 99, 1, 99, 1, 99, 3, 99, 1538, + 8, 99, 1, 100, 1, 100, 1, 101, 1, 101, 3, 101, 1544, 8, 101, 1, 102, 1, + 102, 3, 102, 1548, 8, 102, 1, 103, 1, 103, 1, 103, 1, 103, 1, 103, 1, 104, + 3, 104, 1556, 8, 104, 1, 104, 1, 104, 3, 104, 1560, 8, 104, 1, 104, 1, + 104, 3, 104, 1564, 8, 104, 1, 104, 1, 104, 1, 104, 3, 104, 1569, 8, 104, + 1, 105, 1, 105, 1, 105, 1, 105, 5, 105, 1575, 8, 105, 10, 105, 12, 105, + 1578, 9, 105, 1, 106, 1, 106, 1, 106, 1, 106, 1, 106, 3, 106, 1585, 8, + 106, 1, 106, 1, 106, 3, 106, 1589, 8, 106, 1, 107, 3, 107, 1592, 8, 107, + 1, 107, 1, 107, 1, 107, 1, 107, 3, 107, 1598, 8, 107, 1, 107, 1, 107, 3, + 107, 1602, 8, 107, 1, 107, 1, 107, 1, 107, 1, 107, 1, 107, 3, 107, 1609, + 8, 107, 1, 108, 1, 108, 1, 108, 1, 109, 1, 109, 1, 109, 1, 109, 5, 109, + 1618, 8, 109, 10, 109, 12, 109, 1621, 9, 109, 1, 110, 1, 110, 1, 110, 1, + 110, 1, 111, 1, 111, 1, 111, 1, 111, 5, 111, 1631, 8, 111, 10, 111, 12, + 111, 1634, 9, 111, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 3, 112, + 1642, 8, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, 112, 1, - 112, 1, 112, 1, 112, 1, 112, 3, 112, 1668, 8, 112, 1, 113, 1, 113, 1, 113, - 1, 113, 1, 113, 5, 113, 1675, 8, 113, 10, 113, 12, 113, 1678, 9, 113, 3, - 113, 1680, 8, 113, 1, 113, 1, 113, 1, 114, 1, 114, 1, 114, 1, 114, 1, 114, - 1, 114, 1, 114, 1, 114, 1, 114, 1, 114, 5, 114, 1694, 8, 114, 10, 114, - 12, 114, 1697, 9, 114, 1, 114, 1, 114, 1, 115, 1, 115, 1, 115, 1, 115, - 1, 115, 5, 115, 1706, 8, 115, 10, 115, 12, 115, 1709, 9, 115, 1, 115, 1, - 115, 1, 116, 1, 116, 1, 116, 1, 116, 1, 116, 5, 116, 1718, 8, 116, 10, - 116, 12, 116, 1721, 9, 116, 1, 116, 1, 116, 1, 117, 3, 117, 1726, 8, 117, - 1, 117, 1, 117, 1, 117, 1, 117, 1, 117, 3, 117, 1733, 8, 117, 1, 117, 1, - 117, 3, 117, 1737, 8, 117, 1, 117, 1, 117, 3, 117, 1741, 8, 117, 1, 117, - 3, 117, 1744, 8, 117, 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, - 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, - 118, 3, 118, 1762, 8, 118, 1, 119, 1, 119, 1, 119, 1, 120, 1, 120, 1, 120, - 1, 121, 1, 121, 1, 121, 1, 122, 1, 122, 1, 122, 1, 122, 1, 123, 1, 123, - 1, 123, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, - 3, 124, 1788, 8, 124, 1, 125, 1, 125, 1, 125, 1, 125, 1, 126, 1, 126, 1, - 126, 1, 126, 5, 126, 1798, 8, 126, 10, 126, 12, 126, 1801, 9, 126, 1, 127, - 1, 127, 1, 127, 1, 127, 5, 127, 1807, 8, 127, 10, 127, 12, 127, 1810, 9, - 127, 1, 128, 1, 128, 1, 128, 1, 128, 1, 128, 1, 128, 3, 128, 1818, 8, 128, - 1, 129, 1, 129, 3, 129, 1822, 8, 129, 1, 129, 3, 129, 1825, 8, 129, 1, - 129, 1, 129, 1, 129, 3, 129, 1830, 8, 129, 1, 129, 3, 129, 1833, 8, 129, - 1, 129, 3, 129, 1836, 8, 129, 1, 129, 3, 129, 1839, 8, 129, 1, 130, 1, - 130, 1, 130, 1, 131, 1, 131, 1, 131, 1, 132, 1, 132, 1, 132, 1, 133, 1, - 133, 1, 133, 1, 133, 3, 133, 1854, 8, 133, 1, 134, 1, 134, 1, 134, 1, 134, - 1, 135, 1, 135, 1, 135, 3, 135, 1863, 8, 135, 1, 136, 1, 136, 1, 136, 1, - 137, 1, 137, 1, 138, 1, 138, 3, 138, 1872, 8, 138, 1, 138, 1, 138, 1, 138, - 5, 138, 1877, 8, 138, 10, 138, 12, 138, 1880, 9, 138, 1, 139, 1, 139, 1, - 139, 1, 139, 1, 139, 1, 139, 1, 139, 3, 139, 1889, 8, 139, 1, 139, 1, 139, - 1, 139, 1, 139, 3, 139, 1895, 8, 139, 3, 139, 1897, 8, 139, 1, 140, 1, - 140, 1, 140, 1, 140, 5, 140, 1903, 8, 140, 10, 140, 12, 140, 1906, 9, 140, - 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, - 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, - 1, 141, 1, 141, 3, 141, 1928, 8, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, - 141, 1, 141, 1, 141, 5, 141, 1937, 8, 141, 10, 141, 12, 141, 1940, 9, 141, - 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 5, 141, 1949, 8, - 141, 10, 141, 12, 141, 1952, 9, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, - 141, 1, 141, 1, 141, 5, 141, 1961, 8, 141, 10, 141, 12, 141, 1964, 9, 141, - 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 1, 141, 5, 141, 1972, 8, 141, 10, - 141, 12, 141, 1975, 9, 141, 1, 141, 1, 141, 3, 141, 1979, 8, 141, 1, 142, - 1, 142, 1, 142, 1, 142, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, 1, 143, - 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 3, 144, 1998, 8, - 144, 1, 144, 1, 144, 1, 144, 1, 144, 3, 144, 2004, 8, 144, 1, 145, 1, 145, - 1, 145, 3, 145, 2009, 8, 145, 1, 145, 1, 145, 1, 145, 1, 145, 3, 145, 2015, - 8, 145, 5, 145, 2017, 8, 145, 10, 145, 12, 145, 2020, 9, 145, 1, 146, 1, - 146, 1, 146, 1, 146, 1, 146, 1, 146, 1, 146, 1, 146, 3, 146, 2030, 8, 146, - 1, 147, 1, 147, 1, 148, 1, 148, 1, 149, 1, 149, 1, 150, 1, 150, 1, 151, - 1, 151, 1, 152, 1, 152, 1, 152, 1, 152, 3, 152, 2046, 8, 152, 1, 153, 1, - 153, 1, 153, 1, 153, 3, 153, 2052, 8, 153, 1, 154, 1, 154, 1, 154, 1, 154, - 3, 154, 2058, 8, 154, 1, 155, 1, 155, 3, 155, 2062, 8, 155, 1, 156, 1, - 156, 1, 157, 1, 157, 1, 157, 1, 157, 1, 157, 5, 157, 2071, 8, 157, 10, - 157, 12, 157, 2074, 9, 157, 1, 157, 1, 157, 1, 158, 1, 158, 3, 158, 2080, - 8, 158, 1, 159, 1, 159, 1, 160, 1, 160, 1, 161, 1, 161, 1, 162, 1, 162, + 112, 1, 112, 3, 112, 1689, 8, 112, 1, 113, 1, 113, 1, 113, 1, 113, 1, 113, + 5, 113, 1696, 8, 113, 10, 113, 12, 113, 1699, 9, 113, 3, 113, 1701, 8, + 113, 1, 113, 1, 113, 1, 114, 1, 114, 1, 114, 1, 114, 1, 114, 1, 114, 1, + 114, 1, 114, 1, 114, 1, 114, 5, 114, 1715, 8, 114, 10, 114, 12, 114, 1718, + 9, 114, 1, 114, 1, 114, 1, 115, 1, 115, 1, 115, 1, 115, 1, 115, 5, 115, + 1727, 8, 115, 10, 115, 12, 115, 1730, 9, 115, 1, 115, 1, 115, 1, 116, 1, + 116, 1, 116, 1, 116, 1, 116, 5, 116, 1739, 8, 116, 10, 116, 12, 116, 1742, + 9, 116, 1, 116, 1, 116, 1, 117, 3, 117, 1747, 8, 117, 1, 117, 1, 117, 1, + 117, 1, 117, 1, 117, 3, 117, 1754, 8, 117, 1, 117, 1, 117, 3, 117, 1758, + 8, 117, 1, 117, 1, 117, 3, 117, 1762, 8, 117, 1, 117, 3, 117, 1765, 8, + 117, 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, + 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 1, 118, 3, 118, 1783, + 8, 118, 1, 119, 1, 119, 1, 119, 1, 120, 1, 120, 1, 120, 1, 121, 1, 121, + 1, 121, 1, 122, 1, 122, 1, 122, 1, 122, 1, 123, 1, 123, 1, 123, 1, 124, + 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 1, 124, 3, 124, 1809, 8, + 124, 3, 124, 1811, 8, 124, 1, 125, 1, 125, 1, 125, 1, 126, 1, 126, 1, 126, + 1, 126, 1, 127, 1, 127, 1, 127, 1, 127, 5, 127, 1824, 8, 127, 10, 127, + 12, 127, 1827, 9, 127, 1, 128, 1, 128, 1, 128, 1, 128, 5, 128, 1833, 8, + 128, 10, 128, 12, 128, 1836, 9, 128, 1, 129, 1, 129, 1, 129, 1, 129, 1, + 129, 1, 129, 3, 129, 1844, 8, 129, 1, 130, 1, 130, 3, 130, 1848, 8, 130, + 1, 130, 3, 130, 1851, 8, 130, 1, 130, 1, 130, 1, 130, 3, 130, 1856, 8, + 130, 1, 130, 3, 130, 1859, 8, 130, 1, 130, 3, 130, 1862, 8, 130, 1, 130, + 3, 130, 1865, 8, 130, 1, 131, 1, 131, 1, 131, 1, 132, 1, 132, 1, 132, 1, + 133, 1, 133, 1, 133, 1, 134, 1, 134, 1, 134, 1, 134, 3, 134, 1880, 8, 134, + 1, 135, 1, 135, 1, 135, 1, 135, 1, 136, 1, 136, 1, 136, 3, 136, 1889, 8, + 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 1, 136, 3, 136, 1898, + 8, 136, 3, 136, 1900, 8, 136, 1, 137, 1, 137, 1, 137, 1, 137, 1, 138, 1, + 138, 1, 138, 1, 138, 5, 138, 1910, 8, 138, 10, 138, 12, 138, 1913, 9, 138, + 1, 139, 1, 139, 1, 139, 1, 140, 1, 140, 1, 141, 1, 141, 3, 141, 1922, 8, + 141, 1, 141, 1, 141, 1, 141, 5, 141, 1927, 8, 141, 10, 141, 12, 141, 1930, + 9, 141, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 1, 142, 3, 142, + 1939, 8, 142, 1, 142, 1, 142, 1, 142, 1, 142, 3, 142, 1945, 8, 142, 3, + 142, 1947, 8, 142, 1, 143, 1, 143, 1, 143, 1, 143, 5, 143, 1953, 8, 143, + 10, 143, 12, 143, 1956, 9, 143, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, + 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, + 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 3, 144, 1978, 8, 144, 1, + 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 5, 144, 1987, 8, 144, + 10, 144, 12, 144, 1990, 9, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, + 1, 144, 1, 144, 5, 144, 1999, 8, 144, 10, 144, 12, 144, 2002, 9, 144, 1, + 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, 5, 144, 2011, 8, 144, + 10, 144, 12, 144, 2014, 9, 144, 1, 144, 1, 144, 1, 144, 1, 144, 1, 144, + 1, 144, 5, 144, 2022, 8, 144, 10, 144, 12, 144, 2025, 9, 144, 1, 144, 1, + 144, 3, 144, 2029, 8, 144, 1, 145, 1, 145, 1, 145, 1, 145, 1, 146, 1, 146, + 1, 146, 1, 146, 1, 146, 1, 146, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, + 1, 147, 1, 147, 3, 147, 2048, 8, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, + 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, + 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, + 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, + 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, 147, 1, + 147, 1, 147, 3, 147, 2092, 8, 147, 1, 148, 1, 148, 1, 148, 3, 148, 2097, + 8, 148, 1, 148, 1, 148, 1, 148, 1, 148, 3, 148, 2103, 8, 148, 5, 148, 2105, + 8, 148, 10, 148, 12, 148, 2108, 9, 148, 1, 149, 1, 149, 1, 149, 1, 149, + 1, 149, 1, 149, 1, 149, 1, 149, 3, 149, 2118, 8, 149, 1, 150, 1, 150, 1, + 151, 1, 151, 1, 152, 1, 152, 1, 153, 1, 153, 1, 154, 1, 154, 1, 155, 1, + 155, 1, 155, 1, 155, 3, 155, 2134, 8, 155, 1, 156, 1, 156, 1, 156, 1, 156, + 3, 156, 2140, 8, 156, 1, 157, 1, 157, 1, 157, 1, 157, 3, 157, 2146, 8, + 157, 1, 158, 1, 158, 3, 158, 2150, 8, 158, 1, 159, 1, 159, 1, 160, 1, 160, + 1, 160, 1, 160, 1, 160, 5, 160, 2159, 8, 160, 10, 160, 12, 160, 2162, 9, + 160, 1, 160, 1, 160, 1, 160, 1, 160, 1, 160, 1, 160, 1, 160, 1, 160, 3, + 160, 2172, 8, 160, 1, 161, 1, 161, 3, 161, 2176, 8, 161, 1, 162, 1, 162, 1, 163, 1, 163, 1, 164, 1, 164, 1, 165, 1, 165, 1, 166, 1, 166, 1, 167, - 1, 167, 1, 168, 1, 168, 1, 169, 1, 169, 1, 170, 1, 170, 1, 170, 1, 171, - 1, 171, 1, 172, 1, 172, 1, 173, 1, 173, 1, 174, 1, 174, 1, 175, 1, 175, - 1, 175, 1, 176, 1, 176, 1, 177, 1, 177, 1, 178, 1, 178, 1, 179, 1, 179, + 1, 167, 1, 168, 1, 168, 1, 169, 1, 169, 1, 170, 1, 170, 1, 171, 1, 171, + 1, 172, 1, 172, 1, 173, 1, 173, 1, 173, 1, 174, 1, 174, 1, 175, 1, 175, + 1, 176, 1, 176, 1, 177, 1, 177, 1, 178, 1, 178, 1, 178, 1, 179, 1, 179, 1, 180, 1, 180, 1, 181, 1, 181, 1, 182, 1, 182, 1, 183, 1, 183, 1, 184, 1, 184, 1, 185, 1, 185, 1, 186, 1, 186, 1, 187, 1, 187, 1, 188, 1, 188, 1, 189, 1, 189, 1, 190, 1, 190, 1, 191, 1, 191, 1, 192, 1, 192, 1, 193, @@ -404,823 +424,865 @@ func cqlparserParserInit() { 1, 261, 1, 261, 1, 262, 1, 262, 1, 263, 1, 263, 1, 264, 1, 264, 1, 265, 1, 265, 1, 266, 1, 266, 1, 267, 1, 267, 1, 268, 1, 268, 1, 269, 1, 269, 1, 270, 1, 270, 1, 271, 1, 271, 1, 272, 1, 272, 1, 273, 1, 273, 1, 274, - 1, 274, 1, 275, 1, 275, 1, 276, 1, 276, 1, 276, 0, 0, 277, 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, 0, 7, 1, 0, 164, 165, - 2, 0, 14, 14, 16, 16, 1, 0, 19, 23, 1, 0, 166, 167, 2, 0, 56, 56, 126, - 126, 5, 0, 114, 114, 122, 122, 136, 136, 142, 163, 170, 170, 2, 0, 69, - 69, 170, 170, 2317, 0, 555, 1, 0, 0, 0, 2, 571, 1, 0, 0, 0, 4, 584, 1, - 0, 0, 0, 6, 586, 1, 0, 0, 0, 8, 625, 1, 0, 0, 0, 10, 627, 1, 0, 0, 0, 12, - 634, 1, 0, 0, 0, 14, 644, 1, 0, 0, 0, 16, 656, 1, 0, 0, 0, 18, 675, 1, - 0, 0, 0, 20, 715, 1, 0, 0, 0, 22, 717, 1, 0, 0, 0, 24, 730, 1, 0, 0, 0, - 26, 739, 1, 0, 0, 0, 28, 754, 1, 0, 0, 0, 30, 765, 1, 0, 0, 0, 32, 779, - 1, 0, 0, 0, 34, 812, 1, 0, 0, 0, 36, 819, 1, 0, 0, 0, 38, 828, 1, 0, 0, - 0, 40, 839, 1, 0, 0, 0, 42, 841, 1, 0, 0, 0, 44, 858, 1, 0, 0, 0, 46, 885, - 1, 0, 0, 0, 48, 887, 1, 0, 0, 0, 50, 900, 1, 0, 0, 0, 52, 906, 1, 0, 0, - 0, 54, 936, 1, 0, 0, 0, 56, 938, 1, 0, 0, 0, 58, 950, 1, 0, 0, 0, 60, 954, - 1, 0, 0, 0, 62, 967, 1, 0, 0, 0, 64, 979, 1, 0, 0, 0, 66, 982, 1, 0, 0, - 0, 68, 990, 1, 0, 0, 0, 70, 995, 1, 0, 0, 0, 72, 997, 1, 0, 0, 0, 74, 1010, - 1, 0, 0, 0, 76, 1012, 1, 0, 0, 0, 78, 1015, 1, 0, 0, 0, 80, 1024, 1, 0, - 0, 0, 82, 1028, 1, 0, 0, 0, 84, 1040, 1, 0, 0, 0, 86, 1045, 1, 0, 0, 0, - 88, 1060, 1, 0, 0, 0, 90, 1062, 1, 0, 0, 0, 92, 1065, 1, 0, 0, 0, 94, 1070, - 1, 0, 0, 0, 96, 1074, 1, 0, 0, 0, 98, 1077, 1, 0, 0, 0, 100, 1086, 1, 0, - 0, 0, 102, 1089, 1, 0, 0, 0, 104, 1100, 1, 0, 0, 0, 106, 1106, 1, 0, 0, - 0, 108, 1132, 1, 0, 0, 0, 110, 1134, 1, 0, 0, 0, 112, 1148, 1, 0, 0, 0, - 114, 1155, 1, 0, 0, 0, 116, 1167, 1, 0, 0, 0, 118, 1180, 1, 0, 0, 0, 120, - 1192, 1, 0, 0, 0, 122, 1204, 1, 0, 0, 0, 124, 1218, 1, 0, 0, 0, 126, 1225, - 1, 0, 0, 0, 128, 1237, 1, 0, 0, 0, 130, 1244, 1, 0, 0, 0, 132, 1256, 1, - 0, 0, 0, 134, 1273, 1, 0, 0, 0, 136, 1298, 1, 0, 0, 0, 138, 1300, 1, 0, - 0, 0, 140, 1328, 1, 0, 0, 0, 142, 1330, 1, 0, 0, 0, 144, 1334, 1, 0, 0, - 0, 146, 1336, 1, 0, 0, 0, 148, 1348, 1, 0, 0, 0, 150, 1352, 1, 0, 0, 0, - 152, 1356, 1, 0, 0, 0, 154, 1358, 1, 0, 0, 0, 156, 1372, 1, 0, 0, 0, 158, - 1377, 1, 0, 0, 0, 160, 1380, 1, 0, 0, 0, 162, 1389, 1, 0, 0, 0, 164, 1391, - 1, 0, 0, 0, 166, 1393, 1, 0, 0, 0, 168, 1397, 1, 0, 0, 0, 170, 1403, 1, - 0, 0, 0, 172, 1412, 1, 0, 0, 0, 174, 1421, 1, 0, 0, 0, 176, 1423, 1, 0, - 0, 0, 178, 1425, 1, 0, 0, 0, 180, 1428, 1, 0, 0, 0, 182, 1438, 1, 0, 0, - 0, 184, 1440, 1, 0, 0, 0, 186, 1454, 1, 0, 0, 0, 188, 1469, 1, 0, 0, 0, - 190, 1471, 1, 0, 0, 0, 192, 1475, 1, 0, 0, 0, 194, 1478, 1, 0, 0, 0, 196, - 1489, 1, 0, 0, 0, 198, 1510, 1, 0, 0, 0, 200, 1516, 1, 0, 0, 0, 202, 1518, - 1, 0, 0, 0, 204, 1523, 1, 0, 0, 0, 206, 1528, 1, 0, 0, 0, 208, 1534, 1, - 0, 0, 0, 210, 1549, 1, 0, 0, 0, 212, 1567, 1, 0, 0, 0, 214, 1570, 1, 0, - 0, 0, 216, 1589, 1, 0, 0, 0, 218, 1592, 1, 0, 0, 0, 220, 1601, 1, 0, 0, - 0, 222, 1605, 1, 0, 0, 0, 224, 1667, 1, 0, 0, 0, 226, 1669, 1, 0, 0, 0, - 228, 1683, 1, 0, 0, 0, 230, 1700, 1, 0, 0, 0, 232, 1712, 1, 0, 0, 0, 234, - 1725, 1, 0, 0, 0, 236, 1761, 1, 0, 0, 0, 238, 1763, 1, 0, 0, 0, 240, 1766, - 1, 0, 0, 0, 242, 1769, 1, 0, 0, 0, 244, 1772, 1, 0, 0, 0, 246, 1776, 1, - 0, 0, 0, 248, 1787, 1, 0, 0, 0, 250, 1789, 1, 0, 0, 0, 252, 1793, 1, 0, - 0, 0, 254, 1802, 1, 0, 0, 0, 256, 1817, 1, 0, 0, 0, 258, 1819, 1, 0, 0, - 0, 260, 1840, 1, 0, 0, 0, 262, 1843, 1, 0, 0, 0, 264, 1846, 1, 0, 0, 0, - 266, 1853, 1, 0, 0, 0, 268, 1855, 1, 0, 0, 0, 270, 1859, 1, 0, 0, 0, 272, - 1864, 1, 0, 0, 0, 274, 1867, 1, 0, 0, 0, 276, 1871, 1, 0, 0, 0, 278, 1896, - 1, 0, 0, 0, 280, 1898, 1, 0, 0, 0, 282, 1978, 1, 0, 0, 0, 284, 1980, 1, - 0, 0, 0, 286, 1984, 1, 0, 0, 0, 288, 2003, 1, 0, 0, 0, 290, 2008, 1, 0, - 0, 0, 292, 2029, 1, 0, 0, 0, 294, 2031, 1, 0, 0, 0, 296, 2033, 1, 0, 0, - 0, 298, 2035, 1, 0, 0, 0, 300, 2037, 1, 0, 0, 0, 302, 2039, 1, 0, 0, 0, - 304, 2045, 1, 0, 0, 0, 306, 2051, 1, 0, 0, 0, 308, 2057, 1, 0, 0, 0, 310, - 2059, 1, 0, 0, 0, 312, 2063, 1, 0, 0, 0, 314, 2065, 1, 0, 0, 0, 316, 2079, - 1, 0, 0, 0, 318, 2081, 1, 0, 0, 0, 320, 2083, 1, 0, 0, 0, 322, 2085, 1, - 0, 0, 0, 324, 2087, 1, 0, 0, 0, 326, 2089, 1, 0, 0, 0, 328, 2091, 1, 0, - 0, 0, 330, 2093, 1, 0, 0, 0, 332, 2095, 1, 0, 0, 0, 334, 2097, 1, 0, 0, - 0, 336, 2099, 1, 0, 0, 0, 338, 2101, 1, 0, 0, 0, 340, 2103, 1, 0, 0, 0, - 342, 2106, 1, 0, 0, 0, 344, 2108, 1, 0, 0, 0, 346, 2110, 1, 0, 0, 0, 348, - 2112, 1, 0, 0, 0, 350, 2114, 1, 0, 0, 0, 352, 2117, 1, 0, 0, 0, 354, 2119, - 1, 0, 0, 0, 356, 2121, 1, 0, 0, 0, 358, 2123, 1, 0, 0, 0, 360, 2125, 1, - 0, 0, 0, 362, 2127, 1, 0, 0, 0, 364, 2129, 1, 0, 0, 0, 366, 2131, 1, 0, - 0, 0, 368, 2133, 1, 0, 0, 0, 370, 2135, 1, 0, 0, 0, 372, 2137, 1, 0, 0, - 0, 374, 2139, 1, 0, 0, 0, 376, 2141, 1, 0, 0, 0, 378, 2143, 1, 0, 0, 0, - 380, 2145, 1, 0, 0, 0, 382, 2147, 1, 0, 0, 0, 384, 2149, 1, 0, 0, 0, 386, - 2151, 1, 0, 0, 0, 388, 2153, 1, 0, 0, 0, 390, 2155, 1, 0, 0, 0, 392, 2157, - 1, 0, 0, 0, 394, 2159, 1, 0, 0, 0, 396, 2161, 1, 0, 0, 0, 398, 2163, 1, - 0, 0, 0, 400, 2165, 1, 0, 0, 0, 402, 2167, 1, 0, 0, 0, 404, 2169, 1, 0, - 0, 0, 406, 2171, 1, 0, 0, 0, 408, 2173, 1, 0, 0, 0, 410, 2175, 1, 0, 0, - 0, 412, 2177, 1, 0, 0, 0, 414, 2179, 1, 0, 0, 0, 416, 2181, 1, 0, 0, 0, - 418, 2183, 1, 0, 0, 0, 420, 2185, 1, 0, 0, 0, 422, 2187, 1, 0, 0, 0, 424, - 2189, 1, 0, 0, 0, 426, 2191, 1, 0, 0, 0, 428, 2193, 1, 0, 0, 0, 430, 2195, - 1, 0, 0, 0, 432, 2197, 1, 0, 0, 0, 434, 2199, 1, 0, 0, 0, 436, 2201, 1, - 0, 0, 0, 438, 2203, 1, 0, 0, 0, 440, 2205, 1, 0, 0, 0, 442, 2207, 1, 0, - 0, 0, 444, 2209, 1, 0, 0, 0, 446, 2211, 1, 0, 0, 0, 448, 2213, 1, 0, 0, - 0, 450, 2215, 1, 0, 0, 0, 452, 2217, 1, 0, 0, 0, 454, 2219, 1, 0, 0, 0, - 456, 2221, 1, 0, 0, 0, 458, 2223, 1, 0, 0, 0, 460, 2225, 1, 0, 0, 0, 462, - 2227, 1, 0, 0, 0, 464, 2229, 1, 0, 0, 0, 466, 2231, 1, 0, 0, 0, 468, 2233, - 1, 0, 0, 0, 470, 2235, 1, 0, 0, 0, 472, 2237, 1, 0, 0, 0, 474, 2239, 1, - 0, 0, 0, 476, 2241, 1, 0, 0, 0, 478, 2243, 1, 0, 0, 0, 480, 2245, 1, 0, - 0, 0, 482, 2247, 1, 0, 0, 0, 484, 2249, 1, 0, 0, 0, 486, 2251, 1, 0, 0, - 0, 488, 2253, 1, 0, 0, 0, 490, 2255, 1, 0, 0, 0, 492, 2257, 1, 0, 0, 0, - 494, 2259, 1, 0, 0, 0, 496, 2261, 1, 0, 0, 0, 498, 2263, 1, 0, 0, 0, 500, - 2265, 1, 0, 0, 0, 502, 2267, 1, 0, 0, 0, 504, 2269, 1, 0, 0, 0, 506, 2271, - 1, 0, 0, 0, 508, 2273, 1, 0, 0, 0, 510, 2275, 1, 0, 0, 0, 512, 2277, 1, - 0, 0, 0, 514, 2279, 1, 0, 0, 0, 516, 2281, 1, 0, 0, 0, 518, 2283, 1, 0, - 0, 0, 520, 2285, 1, 0, 0, 0, 522, 2287, 1, 0, 0, 0, 524, 2289, 1, 0, 0, - 0, 526, 2291, 1, 0, 0, 0, 528, 2293, 1, 0, 0, 0, 530, 2295, 1, 0, 0, 0, - 532, 2297, 1, 0, 0, 0, 534, 2299, 1, 0, 0, 0, 536, 2301, 1, 0, 0, 0, 538, - 2303, 1, 0, 0, 0, 540, 2305, 1, 0, 0, 0, 542, 2307, 1, 0, 0, 0, 544, 2309, - 1, 0, 0, 0, 546, 2311, 1, 0, 0, 0, 548, 2313, 1, 0, 0, 0, 550, 2315, 1, - 0, 0, 0, 552, 2317, 1, 0, 0, 0, 554, 556, 3, 2, 1, 0, 555, 554, 1, 0, 0, - 0, 555, 556, 1, 0, 0, 0, 556, 558, 1, 0, 0, 0, 557, 559, 5, 15, 0, 0, 558, - 557, 1, 0, 0, 0, 558, 559, 1, 0, 0, 0, 559, 560, 1, 0, 0, 0, 560, 561, - 5, 0, 0, 1, 561, 1, 1, 0, 0, 0, 562, 564, 3, 8, 4, 0, 563, 565, 5, 15, - 0, 0, 564, 563, 1, 0, 0, 0, 564, 565, 1, 0, 0, 0, 565, 566, 1, 0, 0, 0, - 566, 567, 3, 4, 2, 0, 567, 570, 1, 0, 0, 0, 568, 570, 3, 6, 3, 0, 569, - 562, 1, 0, 0, 0, 569, 568, 1, 0, 0, 0, 570, 573, 1, 0, 0, 0, 571, 569, - 1, 0, 0, 0, 571, 572, 1, 0, 0, 0, 572, 582, 1, 0, 0, 0, 573, 571, 1, 0, - 0, 0, 574, 579, 3, 8, 4, 0, 575, 577, 5, 15, 0, 0, 576, 575, 1, 0, 0, 0, - 576, 577, 1, 0, 0, 0, 577, 578, 1, 0, 0, 0, 578, 580, 3, 4, 2, 0, 579, - 576, 1, 0, 0, 0, 579, 580, 1, 0, 0, 0, 580, 583, 1, 0, 0, 0, 581, 583, - 3, 6, 3, 0, 582, 574, 1, 0, 0, 0, 582, 581, 1, 0, 0, 0, 583, 3, 1, 0, 0, - 0, 584, 585, 5, 8, 0, 0, 585, 5, 1, 0, 0, 0, 586, 587, 3, 4, 2, 0, 587, - 7, 1, 0, 0, 0, 588, 626, 3, 184, 92, 0, 589, 626, 3, 110, 55, 0, 590, 626, - 3, 104, 52, 0, 591, 626, 3, 86, 43, 0, 592, 626, 3, 72, 36, 0, 593, 626, - 3, 66, 33, 0, 594, 626, 3, 178, 89, 0, 595, 626, 3, 52, 26, 0, 596, 626, - 3, 44, 22, 0, 597, 626, 3, 196, 98, 0, 598, 626, 3, 42, 21, 0, 599, 626, - 3, 32, 16, 0, 600, 626, 3, 24, 12, 0, 601, 626, 3, 132, 66, 0, 602, 626, - 3, 30, 15, 0, 603, 626, 3, 26, 13, 0, 604, 626, 3, 22, 11, 0, 605, 626, - 3, 208, 104, 0, 606, 626, 3, 118, 59, 0, 607, 626, 3, 120, 60, 0, 608, - 626, 3, 130, 65, 0, 609, 626, 3, 128, 64, 0, 610, 626, 3, 116, 58, 0, 611, - 626, 3, 124, 62, 0, 612, 626, 3, 126, 63, 0, 613, 626, 3, 122, 61, 0, 614, - 626, 3, 114, 57, 0, 615, 626, 3, 112, 56, 0, 616, 626, 3, 16, 8, 0, 617, - 626, 3, 234, 117, 0, 618, 626, 3, 14, 7, 0, 619, 626, 3, 12, 6, 0, 620, - 626, 3, 10, 5, 0, 621, 626, 3, 258, 129, 0, 622, 626, 3, 194, 97, 0, 623, - 626, 3, 214, 107, 0, 624, 626, 3, 192, 96, 0, 625, 588, 1, 0, 0, 0, 625, - 589, 1, 0, 0, 0, 625, 590, 1, 0, 0, 0, 625, 591, 1, 0, 0, 0, 625, 592, - 1, 0, 0, 0, 625, 593, 1, 0, 0, 0, 625, 594, 1, 0, 0, 0, 625, 595, 1, 0, - 0, 0, 625, 596, 1, 0, 0, 0, 625, 597, 1, 0, 0, 0, 625, 598, 1, 0, 0, 0, - 625, 599, 1, 0, 0, 0, 625, 600, 1, 0, 0, 0, 625, 601, 1, 0, 0, 0, 625, - 602, 1, 0, 0, 0, 625, 603, 1, 0, 0, 0, 625, 604, 1, 0, 0, 0, 625, 605, - 1, 0, 0, 0, 625, 606, 1, 0, 0, 0, 625, 607, 1, 0, 0, 0, 625, 608, 1, 0, - 0, 0, 625, 609, 1, 0, 0, 0, 625, 610, 1, 0, 0, 0, 625, 611, 1, 0, 0, 0, - 625, 612, 1, 0, 0, 0, 625, 613, 1, 0, 0, 0, 625, 614, 1, 0, 0, 0, 625, - 615, 1, 0, 0, 0, 625, 616, 1, 0, 0, 0, 625, 617, 1, 0, 0, 0, 625, 618, - 1, 0, 0, 0, 625, 619, 1, 0, 0, 0, 625, 620, 1, 0, 0, 0, 625, 621, 1, 0, - 0, 0, 625, 622, 1, 0, 0, 0, 625, 623, 1, 0, 0, 0, 625, 624, 1, 0, 0, 0, - 626, 9, 1, 0, 0, 0, 627, 628, 3, 532, 266, 0, 628, 629, 3, 18, 9, 0, 629, - 630, 3, 464, 232, 0, 630, 631, 3, 20, 10, 0, 631, 632, 3, 404, 202, 0, - 632, 633, 3, 318, 159, 0, 633, 11, 1, 0, 0, 0, 634, 635, 3, 444, 222, 0, - 635, 639, 3, 486, 243, 0, 636, 637, 3, 462, 231, 0, 637, 638, 3, 318, 159, - 0, 638, 640, 1, 0, 0, 0, 639, 636, 1, 0, 0, 0, 639, 640, 1, 0, 0, 0, 640, - 642, 1, 0, 0, 0, 641, 643, 3, 456, 228, 0, 642, 641, 1, 0, 0, 0, 642, 643, - 1, 0, 0, 0, 643, 13, 1, 0, 0, 0, 644, 645, 3, 444, 222, 0, 645, 649, 3, - 18, 9, 0, 646, 647, 3, 464, 232, 0, 647, 648, 3, 20, 10, 0, 648, 650, 1, - 0, 0, 0, 649, 646, 1, 0, 0, 0, 649, 650, 1, 0, 0, 0, 650, 654, 1, 0, 0, - 0, 651, 652, 3, 462, 231, 0, 652, 653, 3, 318, 159, 0, 653, 655, 1, 0, - 0, 0, 654, 651, 1, 0, 0, 0, 654, 655, 1, 0, 0, 0, 655, 15, 1, 0, 0, 0, - 656, 657, 3, 412, 206, 0, 657, 658, 3, 18, 9, 0, 658, 659, 3, 464, 232, - 0, 659, 660, 3, 20, 10, 0, 660, 661, 3, 504, 252, 0, 661, 662, 3, 318, - 159, 0, 662, 17, 1, 0, 0, 0, 663, 666, 3, 348, 174, 0, 664, 666, 3, 350, - 175, 0, 665, 663, 1, 0, 0, 0, 665, 664, 1, 0, 0, 0, 666, 676, 1, 0, 0, - 0, 667, 676, 3, 354, 177, 0, 668, 676, 3, 364, 182, 0, 669, 676, 3, 386, - 193, 0, 670, 676, 3, 396, 198, 0, 671, 676, 3, 380, 190, 0, 672, 676, 3, - 390, 195, 0, 673, 676, 3, 452, 226, 0, 674, 676, 3, 488, 244, 0, 675, 665, - 1, 0, 0, 0, 675, 667, 1, 0, 0, 0, 675, 668, 1, 0, 0, 0, 675, 669, 1, 0, - 0, 0, 675, 670, 1, 0, 0, 0, 675, 671, 1, 0, 0, 0, 675, 672, 1, 0, 0, 0, - 675, 673, 1, 0, 0, 0, 675, 674, 1, 0, 0, 0, 676, 19, 1, 0, 0, 0, 677, 678, - 3, 348, 174, 0, 678, 679, 3, 410, 205, 0, 679, 716, 1, 0, 0, 0, 680, 681, - 3, 348, 174, 0, 681, 682, 3, 410, 205, 0, 682, 683, 3, 416, 208, 0, 683, - 684, 3, 436, 218, 0, 684, 685, 3, 304, 152, 0, 685, 716, 1, 0, 0, 0, 686, - 690, 3, 408, 204, 0, 687, 688, 3, 304, 152, 0, 688, 689, 5, 10, 0, 0, 689, - 691, 1, 0, 0, 0, 690, 687, 1, 0, 0, 0, 690, 691, 1, 0, 0, 0, 691, 692, - 1, 0, 0, 0, 692, 693, 3, 330, 165, 0, 693, 716, 1, 0, 0, 0, 694, 695, 3, - 348, 174, 0, 695, 696, 3, 438, 219, 0, 696, 716, 1, 0, 0, 0, 697, 698, - 3, 436, 218, 0, 698, 699, 3, 304, 152, 0, 699, 716, 1, 0, 0, 0, 700, 702, - 3, 500, 250, 0, 701, 700, 1, 0, 0, 0, 701, 702, 1, 0, 0, 0, 702, 706, 1, - 0, 0, 0, 703, 704, 3, 304, 152, 0, 704, 705, 5, 10, 0, 0, 705, 707, 1, - 0, 0, 0, 706, 703, 1, 0, 0, 0, 706, 707, 1, 0, 0, 0, 707, 708, 1, 0, 0, - 0, 708, 716, 3, 306, 153, 0, 709, 710, 3, 348, 174, 0, 710, 711, 3, 486, - 243, 0, 711, 716, 1, 0, 0, 0, 712, 713, 3, 484, 242, 0, 713, 714, 3, 318, - 159, 0, 714, 716, 1, 0, 0, 0, 715, 677, 1, 0, 0, 0, 715, 680, 1, 0, 0, - 0, 715, 686, 1, 0, 0, 0, 715, 694, 1, 0, 0, 0, 715, 697, 1, 0, 0, 0, 715, - 701, 1, 0, 0, 0, 715, 709, 1, 0, 0, 0, 715, 712, 1, 0, 0, 0, 716, 21, 1, - 0, 0, 0, 717, 718, 3, 380, 190, 0, 718, 720, 3, 520, 260, 0, 719, 721, - 3, 244, 122, 0, 720, 719, 1, 0, 0, 0, 720, 721, 1, 0, 0, 0, 721, 722, 1, - 0, 0, 0, 722, 723, 3, 334, 167, 0, 723, 724, 3, 530, 265, 0, 724, 725, - 3, 472, 236, 0, 725, 728, 3, 298, 149, 0, 726, 729, 3, 498, 249, 0, 727, - 729, 3, 454, 227, 0, 728, 726, 1, 0, 0, 0, 728, 727, 1, 0, 0, 0, 728, 729, - 1, 0, 0, 0, 729, 23, 1, 0, 0, 0, 730, 731, 3, 380, 190, 0, 731, 733, 3, - 484, 242, 0, 732, 734, 3, 244, 122, 0, 733, 732, 1, 0, 0, 0, 733, 734, - 1, 0, 0, 0, 734, 735, 1, 0, 0, 0, 735, 737, 3, 318, 159, 0, 736, 738, 3, - 106, 53, 0, 737, 736, 1, 0, 0, 0, 737, 738, 1, 0, 0, 0, 738, 25, 1, 0, - 0, 0, 739, 740, 3, 380, 190, 0, 740, 742, 3, 512, 256, 0, 741, 743, 3, - 244, 122, 0, 742, 741, 1, 0, 0, 0, 742, 743, 1, 0, 0, 0, 743, 747, 1, 0, - 0, 0, 744, 745, 3, 304, 152, 0, 745, 746, 5, 10, 0, 0, 746, 748, 1, 0, - 0, 0, 747, 744, 1, 0, 0, 0, 747, 748, 1, 0, 0, 0, 748, 749, 1, 0, 0, 0, - 749, 750, 3, 326, 163, 0, 750, 751, 3, 534, 267, 0, 751, 752, 3, 28, 14, - 0, 752, 753, 3, 536, 268, 0, 753, 27, 1, 0, 0, 0, 754, 755, 3, 308, 154, - 0, 755, 762, 3, 310, 155, 0, 756, 757, 3, 550, 275, 0, 757, 758, 3, 308, - 154, 0, 758, 759, 3, 310, 155, 0, 759, 761, 1, 0, 0, 0, 760, 756, 1, 0, - 0, 0, 761, 764, 1, 0, 0, 0, 762, 760, 1, 0, 0, 0, 762, 763, 1, 0, 0, 0, - 763, 29, 1, 0, 0, 0, 764, 762, 1, 0, 0, 0, 765, 766, 3, 380, 190, 0, 766, - 768, 3, 506, 253, 0, 767, 769, 3, 244, 122, 0, 768, 767, 1, 0, 0, 0, 768, - 769, 1, 0, 0, 0, 769, 773, 1, 0, 0, 0, 770, 771, 3, 304, 152, 0, 771, 772, - 5, 10, 0, 0, 772, 774, 1, 0, 0, 0, 773, 770, 1, 0, 0, 0, 773, 774, 1, 0, - 0, 0, 774, 775, 1, 0, 0, 0, 775, 776, 3, 320, 160, 0, 776, 777, 3, 522, - 261, 0, 777, 778, 3, 322, 161, 0, 778, 31, 1, 0, 0, 0, 779, 780, 3, 380, - 190, 0, 780, 781, 3, 450, 225, 0, 781, 783, 3, 526, 263, 0, 782, 784, 3, - 244, 122, 0, 783, 782, 1, 0, 0, 0, 783, 784, 1, 0, 0, 0, 784, 788, 1, 0, - 0, 0, 785, 786, 3, 304, 152, 0, 786, 787, 5, 10, 0, 0, 787, 789, 1, 0, - 0, 0, 788, 785, 1, 0, 0, 0, 788, 789, 1, 0, 0, 0, 789, 790, 1, 0, 0, 0, - 790, 791, 3, 324, 162, 0, 791, 792, 3, 360, 180, 0, 792, 793, 3, 488, 244, - 0, 793, 794, 3, 252, 126, 0, 794, 798, 3, 404, 202, 0, 795, 796, 3, 304, - 152, 0, 796, 797, 5, 10, 0, 0, 797, 799, 1, 0, 0, 0, 798, 795, 1, 0, 0, - 0, 798, 799, 1, 0, 0, 0, 799, 800, 1, 0, 0, 0, 800, 801, 3, 306, 153, 0, - 801, 802, 3, 34, 17, 0, 802, 803, 3, 474, 237, 0, 803, 804, 3, 432, 216, - 0, 804, 805, 3, 534, 267, 0, 805, 806, 3, 252, 126, 0, 806, 810, 3, 536, - 268, 0, 807, 808, 3, 530, 265, 0, 808, 809, 3, 40, 20, 0, 809, 811, 1, - 0, 0, 0, 810, 807, 1, 0, 0, 0, 810, 811, 1, 0, 0, 0, 811, 33, 1, 0, 0, - 0, 812, 813, 3, 528, 264, 0, 813, 817, 3, 36, 18, 0, 814, 815, 3, 356, - 178, 0, 815, 816, 3, 280, 140, 0, 816, 818, 1, 0, 0, 0, 817, 814, 1, 0, - 0, 0, 817, 818, 1, 0, 0, 0, 818, 35, 1, 0, 0, 0, 819, 825, 3, 38, 19, 0, - 820, 821, 3, 356, 178, 0, 821, 822, 3, 38, 19, 0, 822, 824, 1, 0, 0, 0, - 823, 820, 1, 0, 0, 0, 824, 827, 1, 0, 0, 0, 825, 823, 1, 0, 0, 0, 825, - 826, 1, 0, 0, 0, 826, 37, 1, 0, 0, 0, 827, 825, 1, 0, 0, 0, 828, 829, 3, - 308, 154, 0, 829, 830, 3, 428, 214, 0, 830, 831, 3, 458, 229, 0, 831, 832, - 3, 460, 230, 0, 832, 39, 1, 0, 0, 0, 833, 840, 3, 136, 68, 0, 834, 835, - 3, 136, 68, 0, 835, 836, 3, 356, 178, 0, 836, 837, 3, 138, 69, 0, 837, - 840, 1, 0, 0, 0, 838, 840, 3, 138, 69, 0, 839, 833, 1, 0, 0, 0, 839, 834, - 1, 0, 0, 0, 839, 838, 1, 0, 0, 0, 840, 41, 1, 0, 0, 0, 841, 842, 3, 380, - 190, 0, 842, 844, 3, 436, 218, 0, 843, 845, 3, 244, 122, 0, 844, 843, 1, - 0, 0, 0, 844, 845, 1, 0, 0, 0, 845, 846, 1, 0, 0, 0, 846, 847, 3, 304, - 152, 0, 847, 848, 3, 530, 265, 0, 848, 849, 3, 480, 240, 0, 849, 850, 5, - 19, 0, 0, 850, 851, 3, 538, 269, 0, 851, 852, 3, 186, 93, 0, 852, 856, - 3, 540, 270, 0, 853, 854, 3, 356, 178, 0, 854, 855, 3, 190, 95, 0, 855, - 857, 1, 0, 0, 0, 856, 853, 1, 0, 0, 0, 856, 857, 1, 0, 0, 0, 857, 43, 1, - 0, 0, 0, 858, 860, 3, 380, 190, 0, 859, 861, 3, 64, 32, 0, 860, 859, 1, - 0, 0, 0, 860, 861, 1, 0, 0, 0, 861, 862, 1, 0, 0, 0, 862, 864, 3, 408, - 204, 0, 863, 865, 3, 244, 122, 0, 864, 863, 1, 0, 0, 0, 864, 865, 1, 0, - 0, 0, 865, 869, 1, 0, 0, 0, 866, 867, 3, 304, 152, 0, 867, 868, 5, 10, - 0, 0, 868, 870, 1, 0, 0, 0, 869, 866, 1, 0, 0, 0, 869, 870, 1, 0, 0, 0, - 870, 871, 1, 0, 0, 0, 871, 872, 3, 330, 165, 0, 872, 874, 3, 534, 267, - 0, 873, 875, 3, 48, 24, 0, 874, 873, 1, 0, 0, 0, 874, 875, 1, 0, 0, 0, - 875, 876, 1, 0, 0, 0, 876, 877, 3, 536, 268, 0, 877, 878, 3, 50, 25, 0, - 878, 879, 3, 482, 241, 0, 879, 880, 3, 310, 155, 0, 880, 881, 3, 440, 220, - 0, 881, 882, 3, 332, 166, 0, 882, 883, 3, 360, 180, 0, 883, 884, 3, 46, - 23, 0, 884, 45, 1, 0, 0, 0, 885, 886, 7, 0, 0, 0, 886, 47, 1, 0, 0, 0, - 887, 893, 3, 340, 170, 0, 888, 889, 3, 550, 275, 0, 889, 890, 3, 340, 170, - 0, 890, 892, 1, 0, 0, 0, 891, 888, 1, 0, 0, 0, 892, 895, 1, 0, 0, 0, 893, - 891, 1, 0, 0, 0, 893, 894, 1, 0, 0, 0, 894, 49, 1, 0, 0, 0, 895, 893, 1, - 0, 0, 0, 896, 901, 3, 372, 186, 0, 897, 898, 3, 482, 241, 0, 898, 899, - 3, 460, 230, 0, 899, 901, 1, 0, 0, 0, 900, 896, 1, 0, 0, 0, 900, 897, 1, - 0, 0, 0, 901, 902, 1, 0, 0, 0, 902, 903, 3, 464, 232, 0, 903, 904, 3, 460, - 230, 0, 904, 905, 3, 422, 211, 0, 905, 51, 1, 0, 0, 0, 906, 908, 3, 380, - 190, 0, 907, 909, 3, 64, 32, 0, 908, 907, 1, 0, 0, 0, 908, 909, 1, 0, 0, - 0, 909, 910, 1, 0, 0, 0, 910, 912, 3, 346, 173, 0, 911, 913, 3, 244, 122, - 0, 912, 911, 1, 0, 0, 0, 912, 913, 1, 0, 0, 0, 913, 917, 1, 0, 0, 0, 914, - 915, 3, 304, 152, 0, 915, 916, 5, 10, 0, 0, 916, 918, 1, 0, 0, 0, 917, - 914, 1, 0, 0, 0, 917, 918, 1, 0, 0, 0, 918, 919, 1, 0, 0, 0, 919, 920, - 3, 328, 164, 0, 920, 921, 3, 534, 267, 0, 921, 922, 3, 310, 155, 0, 922, - 923, 3, 536, 268, 0, 923, 924, 3, 492, 246, 0, 924, 925, 3, 330, 165, 0, - 925, 926, 3, 496, 248, 0, 926, 927, 3, 310, 155, 0, 927, 928, 3, 402, 201, - 0, 928, 929, 3, 330, 165, 0, 929, 930, 3, 420, 210, 0, 930, 931, 3, 54, - 27, 0, 931, 53, 1, 0, 0, 0, 932, 937, 3, 292, 146, 0, 933, 937, 3, 62, - 31, 0, 934, 937, 3, 60, 30, 0, 935, 937, 3, 56, 28, 0, 936, 932, 1, 0, - 0, 0, 936, 933, 1, 0, 0, 0, 936, 934, 1, 0, 0, 0, 936, 935, 1, 0, 0, 0, - 937, 55, 1, 0, 0, 0, 938, 939, 3, 538, 269, 0, 939, 945, 3, 58, 29, 0, - 940, 941, 3, 550, 275, 0, 941, 942, 3, 58, 29, 0, 942, 944, 1, 0, 0, 0, - 943, 940, 1, 0, 0, 0, 944, 947, 1, 0, 0, 0, 945, 943, 1, 0, 0, 0, 945, - 946, 1, 0, 0, 0, 946, 948, 1, 0, 0, 0, 947, 945, 1, 0, 0, 0, 948, 949, - 3, 540, 270, 0, 949, 57, 1, 0, 0, 0, 950, 951, 3, 338, 169, 0, 951, 952, - 5, 9, 0, 0, 952, 953, 3, 54, 27, 0, 953, 59, 1, 0, 0, 0, 954, 955, 3, 534, - 267, 0, 955, 962, 3, 62, 31, 0, 956, 957, 3, 550, 275, 0, 957, 958, 3, - 292, 146, 0, 958, 961, 1, 0, 0, 0, 959, 961, 3, 62, 31, 0, 960, 956, 1, - 0, 0, 0, 960, 959, 1, 0, 0, 0, 961, 964, 1, 0, 0, 0, 962, 960, 1, 0, 0, - 0, 962, 963, 1, 0, 0, 0, 963, 965, 1, 0, 0, 0, 964, 962, 1, 0, 0, 0, 965, - 966, 3, 536, 268, 0, 966, 61, 1, 0, 0, 0, 967, 968, 3, 534, 267, 0, 968, - 974, 3, 292, 146, 0, 969, 970, 3, 550, 275, 0, 970, 971, 3, 292, 146, 0, - 971, 973, 1, 0, 0, 0, 972, 969, 1, 0, 0, 0, 973, 976, 1, 0, 0, 0, 974, - 972, 1, 0, 0, 0, 974, 975, 1, 0, 0, 0, 975, 977, 1, 0, 0, 0, 976, 974, - 1, 0, 0, 0, 977, 978, 3, 536, 268, 0, 978, 63, 1, 0, 0, 0, 979, 980, 3, - 468, 234, 0, 980, 981, 3, 478, 239, 0, 981, 65, 1, 0, 0, 0, 982, 983, 3, - 354, 177, 0, 983, 984, 3, 520, 260, 0, 984, 985, 3, 334, 167, 0, 985, 986, - 3, 530, 265, 0, 986, 988, 3, 68, 34, 0, 987, 989, 3, 70, 35, 0, 988, 987, - 1, 0, 0, 0, 988, 989, 1, 0, 0, 0, 989, 67, 1, 0, 0, 0, 990, 991, 3, 472, - 236, 0, 991, 992, 3, 298, 149, 0, 992, 69, 1, 0, 0, 0, 993, 996, 3, 498, - 249, 0, 994, 996, 3, 454, 227, 0, 995, 993, 1, 0, 0, 0, 995, 994, 1, 0, - 0, 0, 996, 71, 1, 0, 0, 0, 997, 998, 3, 354, 177, 0, 998, 1002, 3, 512, - 256, 0, 999, 1000, 3, 304, 152, 0, 1000, 1001, 5, 10, 0, 0, 1001, 1003, - 1, 0, 0, 0, 1002, 999, 1, 0, 0, 0, 1002, 1003, 1, 0, 0, 0, 1003, 1004, - 1, 0, 0, 0, 1004, 1005, 3, 326, 163, 0, 1005, 1006, 3, 74, 37, 0, 1006, - 73, 1, 0, 0, 0, 1007, 1011, 3, 84, 42, 0, 1008, 1011, 3, 82, 41, 0, 1009, - 1011, 3, 76, 38, 0, 1010, 1007, 1, 0, 0, 0, 1010, 1008, 1, 0, 0, 0, 1010, - 1009, 1, 0, 0, 0, 1011, 75, 1, 0, 0, 0, 1012, 1013, 3, 476, 238, 0, 1013, - 1014, 3, 78, 39, 0, 1014, 77, 1, 0, 0, 0, 1015, 1021, 3, 80, 40, 0, 1016, - 1017, 3, 356, 178, 0, 1017, 1018, 3, 80, 40, 0, 1018, 1020, 1, 0, 0, 0, - 1019, 1016, 1, 0, 0, 0, 1020, 1023, 1, 0, 0, 0, 1021, 1019, 1, 0, 0, 0, - 1021, 1022, 1, 0, 0, 0, 1022, 79, 1, 0, 0, 0, 1023, 1021, 1, 0, 0, 0, 1024, - 1025, 3, 308, 154, 0, 1025, 1026, 3, 504, 252, 0, 1026, 1027, 3, 308, 154, - 0, 1027, 81, 1, 0, 0, 0, 1028, 1029, 3, 344, 172, 0, 1029, 1030, 3, 308, - 154, 0, 1030, 1037, 3, 310, 155, 0, 1031, 1032, 3, 550, 275, 0, 1032, 1033, - 3, 308, 154, 0, 1033, 1034, 3, 310, 155, 0, 1034, 1036, 1, 0, 0, 0, 1035, - 1031, 1, 0, 0, 0, 1036, 1039, 1, 0, 0, 0, 1037, 1035, 1, 0, 0, 0, 1037, - 1038, 1, 0, 0, 0, 1038, 83, 1, 0, 0, 0, 1039, 1037, 1, 0, 0, 0, 1040, 1041, - 3, 354, 177, 0, 1041, 1042, 3, 308, 154, 0, 1042, 1043, 3, 512, 256, 0, - 1043, 1044, 3, 310, 155, 0, 1044, 85, 1, 0, 0, 0, 1045, 1046, 3, 354, 177, - 0, 1046, 1050, 3, 500, 250, 0, 1047, 1048, 3, 304, 152, 0, 1048, 1049, - 5, 10, 0, 0, 1049, 1051, 1, 0, 0, 0, 1050, 1047, 1, 0, 0, 0, 1050, 1051, - 1, 0, 0, 0, 1051, 1052, 1, 0, 0, 0, 1052, 1053, 3, 306, 153, 0, 1053, 1054, - 3, 88, 44, 0, 1054, 87, 1, 0, 0, 0, 1055, 1061, 3, 100, 50, 0, 1056, 1061, - 3, 96, 48, 0, 1057, 1061, 3, 94, 47, 0, 1058, 1061, 3, 92, 46, 0, 1059, - 1061, 3, 90, 45, 0, 1060, 1055, 1, 0, 0, 0, 1060, 1056, 1, 0, 0, 0, 1060, - 1057, 1, 0, 0, 0, 1060, 1058, 1, 0, 0, 0, 1060, 1059, 1, 0, 0, 0, 1061, - 89, 1, 0, 0, 0, 1062, 1063, 3, 530, 265, 0, 1063, 1064, 3, 136, 68, 0, - 1064, 91, 1, 0, 0, 0, 1065, 1066, 3, 476, 238, 0, 1066, 1067, 3, 308, 154, - 0, 1067, 1068, 3, 504, 252, 0, 1068, 1069, 3, 308, 154, 0, 1069, 93, 1, - 0, 0, 0, 1070, 1071, 3, 390, 195, 0, 1071, 1072, 3, 376, 188, 0, 1072, - 1073, 3, 494, 247, 0, 1073, 95, 1, 0, 0, 0, 1074, 1075, 3, 390, 195, 0, - 1075, 1076, 3, 98, 49, 0, 1076, 97, 1, 0, 0, 0, 1077, 1083, 3, 308, 154, - 0, 1078, 1079, 3, 550, 275, 0, 1079, 1080, 3, 308, 154, 0, 1080, 1082, - 1, 0, 0, 0, 1081, 1078, 1, 0, 0, 0, 1082, 1085, 1, 0, 0, 0, 1083, 1081, - 1, 0, 0, 0, 1083, 1084, 1, 0, 0, 0, 1084, 99, 1, 0, 0, 0, 1085, 1083, 1, - 0, 0, 0, 1086, 1087, 3, 344, 172, 0, 1087, 1088, 3, 102, 51, 0, 1088, 101, - 1, 0, 0, 0, 1089, 1090, 3, 308, 154, 0, 1090, 1097, 3, 310, 155, 0, 1091, - 1092, 3, 550, 275, 0, 1092, 1093, 3, 308, 154, 0, 1093, 1094, 3, 310, 155, - 0, 1094, 1096, 1, 0, 0, 0, 1095, 1091, 1, 0, 0, 0, 1096, 1099, 1, 0, 0, - 0, 1097, 1095, 1, 0, 0, 0, 1097, 1098, 1, 0, 0, 0, 1098, 103, 1, 0, 0, - 0, 1099, 1097, 1, 0, 0, 0, 1100, 1101, 3, 354, 177, 0, 1101, 1102, 3, 484, - 242, 0, 1102, 1104, 3, 318, 159, 0, 1103, 1105, 3, 106, 53, 0, 1104, 1103, - 1, 0, 0, 0, 1104, 1105, 1, 0, 0, 0, 1105, 105, 1, 0, 0, 0, 1106, 1107, - 3, 530, 265, 0, 1107, 1113, 3, 108, 54, 0, 1108, 1109, 3, 356, 178, 0, - 1109, 1110, 3, 108, 54, 0, 1110, 1112, 1, 0, 0, 0, 1111, 1108, 1, 0, 0, - 0, 1112, 1115, 1, 0, 0, 0, 1113, 1111, 1, 0, 0, 0, 1113, 1114, 1, 0, 0, - 0, 1114, 107, 1, 0, 0, 0, 1115, 1113, 1, 0, 0, 0, 1116, 1117, 3, 472, 236, - 0, 1117, 1118, 5, 19, 0, 0, 1118, 1119, 3, 298, 149, 0, 1119, 1133, 1, - 0, 0, 0, 1120, 1121, 3, 448, 224, 0, 1121, 1122, 5, 19, 0, 0, 1122, 1123, - 3, 300, 150, 0, 1123, 1133, 1, 0, 0, 0, 1124, 1125, 3, 498, 249, 0, 1125, - 1126, 5, 19, 0, 0, 1126, 1127, 3, 300, 150, 0, 1127, 1133, 1, 0, 0, 0, - 1128, 1129, 3, 466, 233, 0, 1129, 1130, 5, 19, 0, 0, 1130, 1131, 3, 146, - 73, 0, 1131, 1133, 1, 0, 0, 0, 1132, 1116, 1, 0, 0, 0, 1132, 1120, 1, 0, - 0, 0, 1132, 1124, 1, 0, 0, 0, 1132, 1128, 1, 0, 0, 0, 1133, 109, 1, 0, - 0, 0, 1134, 1135, 3, 354, 177, 0, 1135, 1136, 3, 450, 225, 0, 1136, 1140, - 3, 526, 263, 0, 1137, 1138, 3, 304, 152, 0, 1138, 1139, 5, 10, 0, 0, 1139, - 1141, 1, 0, 0, 0, 1140, 1137, 1, 0, 0, 0, 1140, 1141, 1, 0, 0, 0, 1141, - 1142, 1, 0, 0, 0, 1142, 1146, 3, 324, 162, 0, 1143, 1144, 3, 530, 265, - 0, 1144, 1145, 3, 136, 68, 0, 1145, 1147, 1, 0, 0, 0, 1146, 1143, 1, 0, - 0, 0, 1146, 1147, 1, 0, 0, 0, 1147, 111, 1, 0, 0, 0, 1148, 1149, 3, 390, - 195, 0, 1149, 1151, 3, 520, 260, 0, 1150, 1152, 3, 246, 123, 0, 1151, 1150, - 1, 0, 0, 0, 1151, 1152, 1, 0, 0, 0, 1152, 1153, 1, 0, 0, 0, 1153, 1154, - 3, 334, 167, 0, 1154, 113, 1, 0, 0, 0, 1155, 1156, 3, 390, 195, 0, 1156, - 1158, 3, 512, 256, 0, 1157, 1159, 3, 246, 123, 0, 1158, 1157, 1, 0, 0, - 0, 1158, 1159, 1, 0, 0, 0, 1159, 1163, 1, 0, 0, 0, 1160, 1161, 3, 304, - 152, 0, 1161, 1162, 5, 10, 0, 0, 1162, 1164, 1, 0, 0, 0, 1163, 1160, 1, - 0, 0, 0, 1163, 1164, 1, 0, 0, 0, 1164, 1165, 1, 0, 0, 0, 1165, 1166, 3, - 326, 163, 0, 1166, 115, 1, 0, 0, 0, 1167, 1168, 3, 390, 195, 0, 1168, 1169, - 3, 450, 225, 0, 1169, 1171, 3, 526, 263, 0, 1170, 1172, 3, 246, 123, 0, - 1171, 1170, 1, 0, 0, 0, 1171, 1172, 1, 0, 0, 0, 1172, 1176, 1, 0, 0, 0, - 1173, 1174, 3, 304, 152, 0, 1174, 1175, 5, 10, 0, 0, 1175, 1177, 1, 0, - 0, 0, 1176, 1173, 1, 0, 0, 0, 1176, 1177, 1, 0, 0, 0, 1177, 1178, 1, 0, - 0, 0, 1178, 1179, 3, 324, 162, 0, 1179, 117, 1, 0, 0, 0, 1180, 1181, 3, - 390, 195, 0, 1181, 1183, 3, 346, 173, 0, 1182, 1184, 3, 246, 123, 0, 1183, - 1182, 1, 0, 0, 0, 1183, 1184, 1, 0, 0, 0, 1184, 1188, 1, 0, 0, 0, 1185, - 1186, 3, 304, 152, 0, 1186, 1187, 5, 10, 0, 0, 1187, 1189, 1, 0, 0, 0, - 1188, 1185, 1, 0, 0, 0, 1188, 1189, 1, 0, 0, 0, 1189, 1190, 1, 0, 0, 0, - 1190, 1191, 3, 328, 164, 0, 1191, 119, 1, 0, 0, 0, 1192, 1193, 3, 390, - 195, 0, 1193, 1195, 3, 408, 204, 0, 1194, 1196, 3, 246, 123, 0, 1195, 1194, - 1, 0, 0, 0, 1195, 1196, 1, 0, 0, 0, 1196, 1200, 1, 0, 0, 0, 1197, 1198, - 3, 304, 152, 0, 1198, 1199, 5, 10, 0, 0, 1199, 1201, 1, 0, 0, 0, 1200, - 1197, 1, 0, 0, 0, 1200, 1201, 1, 0, 0, 0, 1201, 1202, 1, 0, 0, 0, 1202, - 1203, 3, 330, 165, 0, 1203, 121, 1, 0, 0, 0, 1204, 1205, 3, 390, 195, 0, - 1205, 1207, 3, 506, 253, 0, 1206, 1208, 3, 246, 123, 0, 1207, 1206, 1, - 0, 0, 0, 1207, 1208, 1, 0, 0, 0, 1208, 1209, 1, 0, 0, 0, 1209, 1210, 3, - 320, 160, 0, 1210, 1214, 3, 464, 232, 0, 1211, 1212, 3, 304, 152, 0, 1212, + 1, 274, 1, 275, 1, 275, 1, 276, 1, 276, 1, 277, 1, 277, 1, 278, 1, 278, + 1, 279, 1, 279, 1, 280, 1, 280, 1, 281, 1, 281, 1, 282, 1, 282, 1, 283, + 1, 283, 1, 283, 0, 0, 284, 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, 0, 7, 1, 0, 181, 182, + 2, 0, 14, 14, 16, 16, 1, 0, 19, 23, 1, 0, 183, 184, 2, 0, 56, 56, 126, + 126, 6, 0, 114, 114, 122, 122, 136, 136, 142, 163, 169, 170, 187, 187, + 2, 0, 69, 69, 187, 187, 2432, 0, 569, 1, 0, 0, 0, 2, 585, 1, 0, 0, 0, 4, + 598, 1, 0, 0, 0, 6, 600, 1, 0, 0, 0, 8, 639, 1, 0, 0, 0, 10, 641, 1, 0, + 0, 0, 12, 648, 1, 0, 0, 0, 14, 658, 1, 0, 0, 0, 16, 670, 1, 0, 0, 0, 18, + 689, 1, 0, 0, 0, 20, 729, 1, 0, 0, 0, 22, 731, 1, 0, 0, 0, 24, 744, 1, + 0, 0, 0, 26, 753, 1, 0, 0, 0, 28, 768, 1, 0, 0, 0, 30, 779, 1, 0, 0, 0, + 32, 793, 1, 0, 0, 0, 34, 826, 1, 0, 0, 0, 36, 833, 1, 0, 0, 0, 38, 842, + 1, 0, 0, 0, 40, 853, 1, 0, 0, 0, 42, 855, 1, 0, 0, 0, 44, 872, 1, 0, 0, + 0, 46, 899, 1, 0, 0, 0, 48, 901, 1, 0, 0, 0, 50, 914, 1, 0, 0, 0, 52, 920, + 1, 0, 0, 0, 54, 950, 1, 0, 0, 0, 56, 952, 1, 0, 0, 0, 58, 964, 1, 0, 0, + 0, 60, 968, 1, 0, 0, 0, 62, 981, 1, 0, 0, 0, 64, 993, 1, 0, 0, 0, 66, 996, + 1, 0, 0, 0, 68, 1004, 1, 0, 0, 0, 70, 1009, 1, 0, 0, 0, 72, 1011, 1, 0, + 0, 0, 74, 1024, 1, 0, 0, 0, 76, 1026, 1, 0, 0, 0, 78, 1029, 1, 0, 0, 0, + 80, 1038, 1, 0, 0, 0, 82, 1042, 1, 0, 0, 0, 84, 1054, 1, 0, 0, 0, 86, 1059, + 1, 0, 0, 0, 88, 1074, 1, 0, 0, 0, 90, 1076, 1, 0, 0, 0, 92, 1079, 1, 0, + 0, 0, 94, 1084, 1, 0, 0, 0, 96, 1088, 1, 0, 0, 0, 98, 1091, 1, 0, 0, 0, + 100, 1100, 1, 0, 0, 0, 102, 1103, 1, 0, 0, 0, 104, 1114, 1, 0, 0, 0, 106, + 1120, 1, 0, 0, 0, 108, 1146, 1, 0, 0, 0, 110, 1148, 1, 0, 0, 0, 112, 1162, + 1, 0, 0, 0, 114, 1169, 1, 0, 0, 0, 116, 1181, 1, 0, 0, 0, 118, 1194, 1, + 0, 0, 0, 120, 1206, 1, 0, 0, 0, 122, 1218, 1, 0, 0, 0, 124, 1232, 1, 0, + 0, 0, 126, 1239, 1, 0, 0, 0, 128, 1251, 1, 0, 0, 0, 130, 1258, 1, 0, 0, + 0, 132, 1270, 1, 0, 0, 0, 134, 1287, 1, 0, 0, 0, 136, 1312, 1, 0, 0, 0, + 138, 1314, 1, 0, 0, 0, 140, 1342, 1, 0, 0, 0, 142, 1344, 1, 0, 0, 0, 144, + 1348, 1, 0, 0, 0, 146, 1350, 1, 0, 0, 0, 148, 1362, 1, 0, 0, 0, 150, 1366, + 1, 0, 0, 0, 152, 1370, 1, 0, 0, 0, 154, 1372, 1, 0, 0, 0, 156, 1386, 1, + 0, 0, 0, 158, 1391, 1, 0, 0, 0, 160, 1394, 1, 0, 0, 0, 162, 1403, 1, 0, + 0, 0, 164, 1405, 1, 0, 0, 0, 166, 1407, 1, 0, 0, 0, 168, 1411, 1, 0, 0, + 0, 170, 1417, 1, 0, 0, 0, 172, 1426, 1, 0, 0, 0, 174, 1435, 1, 0, 0, 0, + 176, 1437, 1, 0, 0, 0, 178, 1439, 1, 0, 0, 0, 180, 1442, 1, 0, 0, 0, 182, + 1452, 1, 0, 0, 0, 184, 1454, 1, 0, 0, 0, 186, 1468, 1, 0, 0, 0, 188, 1483, + 1, 0, 0, 0, 190, 1485, 1, 0, 0, 0, 192, 1489, 1, 0, 0, 0, 194, 1492, 1, + 0, 0, 0, 196, 1503, 1, 0, 0, 0, 198, 1537, 1, 0, 0, 0, 200, 1539, 1, 0, + 0, 0, 202, 1543, 1, 0, 0, 0, 204, 1547, 1, 0, 0, 0, 206, 1549, 1, 0, 0, + 0, 208, 1555, 1, 0, 0, 0, 210, 1570, 1, 0, 0, 0, 212, 1588, 1, 0, 0, 0, + 214, 1591, 1, 0, 0, 0, 216, 1610, 1, 0, 0, 0, 218, 1613, 1, 0, 0, 0, 220, + 1622, 1, 0, 0, 0, 222, 1626, 1, 0, 0, 0, 224, 1688, 1, 0, 0, 0, 226, 1690, + 1, 0, 0, 0, 228, 1704, 1, 0, 0, 0, 230, 1721, 1, 0, 0, 0, 232, 1733, 1, + 0, 0, 0, 234, 1746, 1, 0, 0, 0, 236, 1782, 1, 0, 0, 0, 238, 1784, 1, 0, + 0, 0, 240, 1787, 1, 0, 0, 0, 242, 1790, 1, 0, 0, 0, 244, 1793, 1, 0, 0, + 0, 246, 1797, 1, 0, 0, 0, 248, 1810, 1, 0, 0, 0, 250, 1812, 1, 0, 0, 0, + 252, 1815, 1, 0, 0, 0, 254, 1819, 1, 0, 0, 0, 256, 1828, 1, 0, 0, 0, 258, + 1843, 1, 0, 0, 0, 260, 1845, 1, 0, 0, 0, 262, 1866, 1, 0, 0, 0, 264, 1869, + 1, 0, 0, 0, 266, 1872, 1, 0, 0, 0, 268, 1879, 1, 0, 0, 0, 270, 1881, 1, + 0, 0, 0, 272, 1899, 1, 0, 0, 0, 274, 1901, 1, 0, 0, 0, 276, 1905, 1, 0, + 0, 0, 278, 1914, 1, 0, 0, 0, 280, 1917, 1, 0, 0, 0, 282, 1921, 1, 0, 0, + 0, 284, 1946, 1, 0, 0, 0, 286, 1948, 1, 0, 0, 0, 288, 2028, 1, 0, 0, 0, + 290, 2030, 1, 0, 0, 0, 292, 2034, 1, 0, 0, 0, 294, 2091, 1, 0, 0, 0, 296, + 2096, 1, 0, 0, 0, 298, 2117, 1, 0, 0, 0, 300, 2119, 1, 0, 0, 0, 302, 2121, + 1, 0, 0, 0, 304, 2123, 1, 0, 0, 0, 306, 2125, 1, 0, 0, 0, 308, 2127, 1, + 0, 0, 0, 310, 2133, 1, 0, 0, 0, 312, 2139, 1, 0, 0, 0, 314, 2145, 1, 0, + 0, 0, 316, 2147, 1, 0, 0, 0, 318, 2151, 1, 0, 0, 0, 320, 2171, 1, 0, 0, + 0, 322, 2175, 1, 0, 0, 0, 324, 2177, 1, 0, 0, 0, 326, 2179, 1, 0, 0, 0, + 328, 2181, 1, 0, 0, 0, 330, 2183, 1, 0, 0, 0, 332, 2185, 1, 0, 0, 0, 334, + 2187, 1, 0, 0, 0, 336, 2189, 1, 0, 0, 0, 338, 2191, 1, 0, 0, 0, 340, 2193, + 1, 0, 0, 0, 342, 2195, 1, 0, 0, 0, 344, 2197, 1, 0, 0, 0, 346, 2199, 1, + 0, 0, 0, 348, 2202, 1, 0, 0, 0, 350, 2204, 1, 0, 0, 0, 352, 2206, 1, 0, + 0, 0, 354, 2208, 1, 0, 0, 0, 356, 2210, 1, 0, 0, 0, 358, 2213, 1, 0, 0, + 0, 360, 2215, 1, 0, 0, 0, 362, 2217, 1, 0, 0, 0, 364, 2219, 1, 0, 0, 0, + 366, 2221, 1, 0, 0, 0, 368, 2223, 1, 0, 0, 0, 370, 2225, 1, 0, 0, 0, 372, + 2227, 1, 0, 0, 0, 374, 2229, 1, 0, 0, 0, 376, 2231, 1, 0, 0, 0, 378, 2233, + 1, 0, 0, 0, 380, 2235, 1, 0, 0, 0, 382, 2237, 1, 0, 0, 0, 384, 2239, 1, + 0, 0, 0, 386, 2241, 1, 0, 0, 0, 388, 2243, 1, 0, 0, 0, 390, 2245, 1, 0, + 0, 0, 392, 2247, 1, 0, 0, 0, 394, 2249, 1, 0, 0, 0, 396, 2251, 1, 0, 0, + 0, 398, 2253, 1, 0, 0, 0, 400, 2255, 1, 0, 0, 0, 402, 2257, 1, 0, 0, 0, + 404, 2259, 1, 0, 0, 0, 406, 2261, 1, 0, 0, 0, 408, 2263, 1, 0, 0, 0, 410, + 2265, 1, 0, 0, 0, 412, 2267, 1, 0, 0, 0, 414, 2269, 1, 0, 0, 0, 416, 2271, + 1, 0, 0, 0, 418, 2273, 1, 0, 0, 0, 420, 2275, 1, 0, 0, 0, 422, 2277, 1, + 0, 0, 0, 424, 2279, 1, 0, 0, 0, 426, 2281, 1, 0, 0, 0, 428, 2283, 1, 0, + 0, 0, 430, 2285, 1, 0, 0, 0, 432, 2287, 1, 0, 0, 0, 434, 2289, 1, 0, 0, + 0, 436, 2291, 1, 0, 0, 0, 438, 2293, 1, 0, 0, 0, 440, 2295, 1, 0, 0, 0, + 442, 2297, 1, 0, 0, 0, 444, 2299, 1, 0, 0, 0, 446, 2301, 1, 0, 0, 0, 448, + 2303, 1, 0, 0, 0, 450, 2305, 1, 0, 0, 0, 452, 2307, 1, 0, 0, 0, 454, 2309, + 1, 0, 0, 0, 456, 2311, 1, 0, 0, 0, 458, 2313, 1, 0, 0, 0, 460, 2315, 1, + 0, 0, 0, 462, 2317, 1, 0, 0, 0, 464, 2319, 1, 0, 0, 0, 466, 2321, 1, 0, + 0, 0, 468, 2323, 1, 0, 0, 0, 470, 2325, 1, 0, 0, 0, 472, 2327, 1, 0, 0, + 0, 474, 2329, 1, 0, 0, 0, 476, 2331, 1, 0, 0, 0, 478, 2333, 1, 0, 0, 0, + 480, 2335, 1, 0, 0, 0, 482, 2337, 1, 0, 0, 0, 484, 2339, 1, 0, 0, 0, 486, + 2341, 1, 0, 0, 0, 488, 2343, 1, 0, 0, 0, 490, 2345, 1, 0, 0, 0, 492, 2347, + 1, 0, 0, 0, 494, 2349, 1, 0, 0, 0, 496, 2351, 1, 0, 0, 0, 498, 2353, 1, + 0, 0, 0, 500, 2355, 1, 0, 0, 0, 502, 2357, 1, 0, 0, 0, 504, 2359, 1, 0, + 0, 0, 506, 2361, 1, 0, 0, 0, 508, 2363, 1, 0, 0, 0, 510, 2365, 1, 0, 0, + 0, 512, 2367, 1, 0, 0, 0, 514, 2369, 1, 0, 0, 0, 516, 2371, 1, 0, 0, 0, + 518, 2373, 1, 0, 0, 0, 520, 2375, 1, 0, 0, 0, 522, 2377, 1, 0, 0, 0, 524, + 2379, 1, 0, 0, 0, 526, 2381, 1, 0, 0, 0, 528, 2383, 1, 0, 0, 0, 530, 2385, + 1, 0, 0, 0, 532, 2387, 1, 0, 0, 0, 534, 2389, 1, 0, 0, 0, 536, 2391, 1, + 0, 0, 0, 538, 2393, 1, 0, 0, 0, 540, 2395, 1, 0, 0, 0, 542, 2397, 1, 0, + 0, 0, 544, 2399, 1, 0, 0, 0, 546, 2401, 1, 0, 0, 0, 548, 2403, 1, 0, 0, + 0, 550, 2405, 1, 0, 0, 0, 552, 2407, 1, 0, 0, 0, 554, 2409, 1, 0, 0, 0, + 556, 2411, 1, 0, 0, 0, 558, 2413, 1, 0, 0, 0, 560, 2415, 1, 0, 0, 0, 562, + 2417, 1, 0, 0, 0, 564, 2419, 1, 0, 0, 0, 566, 2421, 1, 0, 0, 0, 568, 570, + 3, 2, 1, 0, 569, 568, 1, 0, 0, 0, 569, 570, 1, 0, 0, 0, 570, 572, 1, 0, + 0, 0, 571, 573, 5, 15, 0, 0, 572, 571, 1, 0, 0, 0, 572, 573, 1, 0, 0, 0, + 573, 574, 1, 0, 0, 0, 574, 575, 5, 0, 0, 1, 575, 1, 1, 0, 0, 0, 576, 578, + 3, 8, 4, 0, 577, 579, 5, 15, 0, 0, 578, 577, 1, 0, 0, 0, 578, 579, 1, 0, + 0, 0, 579, 580, 1, 0, 0, 0, 580, 581, 3, 4, 2, 0, 581, 584, 1, 0, 0, 0, + 582, 584, 3, 6, 3, 0, 583, 576, 1, 0, 0, 0, 583, 582, 1, 0, 0, 0, 584, + 587, 1, 0, 0, 0, 585, 583, 1, 0, 0, 0, 585, 586, 1, 0, 0, 0, 586, 596, + 1, 0, 0, 0, 587, 585, 1, 0, 0, 0, 588, 593, 3, 8, 4, 0, 589, 591, 5, 15, + 0, 0, 590, 589, 1, 0, 0, 0, 590, 591, 1, 0, 0, 0, 591, 592, 1, 0, 0, 0, + 592, 594, 3, 4, 2, 0, 593, 590, 1, 0, 0, 0, 593, 594, 1, 0, 0, 0, 594, + 597, 1, 0, 0, 0, 595, 597, 3, 6, 3, 0, 596, 588, 1, 0, 0, 0, 596, 595, + 1, 0, 0, 0, 597, 3, 1, 0, 0, 0, 598, 599, 5, 8, 0, 0, 599, 5, 1, 0, 0, + 0, 600, 601, 3, 4, 2, 0, 601, 7, 1, 0, 0, 0, 602, 640, 3, 184, 92, 0, 603, + 640, 3, 110, 55, 0, 604, 640, 3, 104, 52, 0, 605, 640, 3, 86, 43, 0, 606, + 640, 3, 72, 36, 0, 607, 640, 3, 66, 33, 0, 608, 640, 3, 178, 89, 0, 609, + 640, 3, 52, 26, 0, 610, 640, 3, 44, 22, 0, 611, 640, 3, 196, 98, 0, 612, + 640, 3, 42, 21, 0, 613, 640, 3, 32, 16, 0, 614, 640, 3, 24, 12, 0, 615, + 640, 3, 132, 66, 0, 616, 640, 3, 30, 15, 0, 617, 640, 3, 26, 13, 0, 618, + 640, 3, 22, 11, 0, 619, 640, 3, 208, 104, 0, 620, 640, 3, 118, 59, 0, 621, + 640, 3, 120, 60, 0, 622, 640, 3, 130, 65, 0, 623, 640, 3, 128, 64, 0, 624, + 640, 3, 116, 58, 0, 625, 640, 3, 124, 62, 0, 626, 640, 3, 126, 63, 0, 627, + 640, 3, 122, 61, 0, 628, 640, 3, 114, 57, 0, 629, 640, 3, 112, 56, 0, 630, + 640, 3, 16, 8, 0, 631, 640, 3, 234, 117, 0, 632, 640, 3, 14, 7, 0, 633, + 640, 3, 12, 6, 0, 634, 640, 3, 10, 5, 0, 635, 640, 3, 260, 130, 0, 636, + 640, 3, 194, 97, 0, 637, 640, 3, 214, 107, 0, 638, 640, 3, 192, 96, 0, + 639, 602, 1, 0, 0, 0, 639, 603, 1, 0, 0, 0, 639, 604, 1, 0, 0, 0, 639, + 605, 1, 0, 0, 0, 639, 606, 1, 0, 0, 0, 639, 607, 1, 0, 0, 0, 639, 608, + 1, 0, 0, 0, 639, 609, 1, 0, 0, 0, 639, 610, 1, 0, 0, 0, 639, 611, 1, 0, + 0, 0, 639, 612, 1, 0, 0, 0, 639, 613, 1, 0, 0, 0, 639, 614, 1, 0, 0, 0, + 639, 615, 1, 0, 0, 0, 639, 616, 1, 0, 0, 0, 639, 617, 1, 0, 0, 0, 639, + 618, 1, 0, 0, 0, 639, 619, 1, 0, 0, 0, 639, 620, 1, 0, 0, 0, 639, 621, + 1, 0, 0, 0, 639, 622, 1, 0, 0, 0, 639, 623, 1, 0, 0, 0, 639, 624, 1, 0, + 0, 0, 639, 625, 1, 0, 0, 0, 639, 626, 1, 0, 0, 0, 639, 627, 1, 0, 0, 0, + 639, 628, 1, 0, 0, 0, 639, 629, 1, 0, 0, 0, 639, 630, 1, 0, 0, 0, 639, + 631, 1, 0, 0, 0, 639, 632, 1, 0, 0, 0, 639, 633, 1, 0, 0, 0, 639, 634, + 1, 0, 0, 0, 639, 635, 1, 0, 0, 0, 639, 636, 1, 0, 0, 0, 639, 637, 1, 0, + 0, 0, 639, 638, 1, 0, 0, 0, 640, 9, 1, 0, 0, 0, 641, 642, 3, 546, 273, + 0, 642, 643, 3, 18, 9, 0, 643, 644, 3, 478, 239, 0, 644, 645, 3, 20, 10, + 0, 645, 646, 3, 418, 209, 0, 646, 647, 3, 324, 162, 0, 647, 11, 1, 0, 0, + 0, 648, 649, 3, 458, 229, 0, 649, 653, 3, 500, 250, 0, 650, 651, 3, 476, + 238, 0, 651, 652, 3, 324, 162, 0, 652, 654, 1, 0, 0, 0, 653, 650, 1, 0, + 0, 0, 653, 654, 1, 0, 0, 0, 654, 656, 1, 0, 0, 0, 655, 657, 3, 470, 235, + 0, 656, 655, 1, 0, 0, 0, 656, 657, 1, 0, 0, 0, 657, 13, 1, 0, 0, 0, 658, + 659, 3, 458, 229, 0, 659, 663, 3, 18, 9, 0, 660, 661, 3, 478, 239, 0, 661, + 662, 3, 20, 10, 0, 662, 664, 1, 0, 0, 0, 663, 660, 1, 0, 0, 0, 663, 664, + 1, 0, 0, 0, 664, 668, 1, 0, 0, 0, 665, 666, 3, 476, 238, 0, 666, 667, 3, + 324, 162, 0, 667, 669, 1, 0, 0, 0, 668, 665, 1, 0, 0, 0, 668, 669, 1, 0, + 0, 0, 669, 15, 1, 0, 0, 0, 670, 671, 3, 426, 213, 0, 671, 672, 3, 18, 9, + 0, 672, 673, 3, 478, 239, 0, 673, 674, 3, 20, 10, 0, 674, 675, 3, 518, + 259, 0, 675, 676, 3, 324, 162, 0, 676, 17, 1, 0, 0, 0, 677, 680, 3, 354, + 177, 0, 678, 680, 3, 356, 178, 0, 679, 677, 1, 0, 0, 0, 679, 678, 1, 0, + 0, 0, 680, 690, 1, 0, 0, 0, 681, 690, 3, 360, 180, 0, 682, 690, 3, 370, + 185, 0, 683, 690, 3, 400, 200, 0, 684, 690, 3, 410, 205, 0, 685, 690, 3, + 386, 193, 0, 686, 690, 3, 404, 202, 0, 687, 690, 3, 466, 233, 0, 688, 690, + 3, 502, 251, 0, 689, 679, 1, 0, 0, 0, 689, 681, 1, 0, 0, 0, 689, 682, 1, + 0, 0, 0, 689, 683, 1, 0, 0, 0, 689, 684, 1, 0, 0, 0, 689, 685, 1, 0, 0, + 0, 689, 686, 1, 0, 0, 0, 689, 687, 1, 0, 0, 0, 689, 688, 1, 0, 0, 0, 690, + 19, 1, 0, 0, 0, 691, 692, 3, 354, 177, 0, 692, 693, 3, 424, 212, 0, 693, + 730, 1, 0, 0, 0, 694, 695, 3, 354, 177, 0, 695, 696, 3, 424, 212, 0, 696, + 697, 3, 430, 215, 0, 697, 698, 3, 450, 225, 0, 698, 699, 3, 310, 155, 0, + 699, 730, 1, 0, 0, 0, 700, 704, 3, 422, 211, 0, 701, 702, 3, 310, 155, + 0, 702, 703, 5, 10, 0, 0, 703, 705, 1, 0, 0, 0, 704, 701, 1, 0, 0, 0, 704, + 705, 1, 0, 0, 0, 705, 706, 1, 0, 0, 0, 706, 707, 3, 336, 168, 0, 707, 730, + 1, 0, 0, 0, 708, 709, 3, 354, 177, 0, 709, 710, 3, 452, 226, 0, 710, 730, + 1, 0, 0, 0, 711, 712, 3, 450, 225, 0, 712, 713, 3, 310, 155, 0, 713, 730, + 1, 0, 0, 0, 714, 716, 3, 514, 257, 0, 715, 714, 1, 0, 0, 0, 715, 716, 1, + 0, 0, 0, 716, 720, 1, 0, 0, 0, 717, 718, 3, 310, 155, 0, 718, 719, 5, 10, + 0, 0, 719, 721, 1, 0, 0, 0, 720, 717, 1, 0, 0, 0, 720, 721, 1, 0, 0, 0, + 721, 722, 1, 0, 0, 0, 722, 730, 3, 312, 156, 0, 723, 724, 3, 354, 177, + 0, 724, 725, 3, 500, 250, 0, 725, 730, 1, 0, 0, 0, 726, 727, 3, 498, 249, + 0, 727, 728, 3, 324, 162, 0, 728, 730, 1, 0, 0, 0, 729, 691, 1, 0, 0, 0, + 729, 694, 1, 0, 0, 0, 729, 700, 1, 0, 0, 0, 729, 708, 1, 0, 0, 0, 729, + 711, 1, 0, 0, 0, 729, 715, 1, 0, 0, 0, 729, 723, 1, 0, 0, 0, 729, 726, + 1, 0, 0, 0, 730, 21, 1, 0, 0, 0, 731, 732, 3, 386, 193, 0, 732, 734, 3, + 534, 267, 0, 733, 735, 3, 244, 122, 0, 734, 733, 1, 0, 0, 0, 734, 735, + 1, 0, 0, 0, 735, 736, 1, 0, 0, 0, 736, 737, 3, 340, 170, 0, 737, 738, 3, + 544, 272, 0, 738, 739, 3, 486, 243, 0, 739, 742, 3, 304, 152, 0, 740, 743, + 3, 512, 256, 0, 741, 743, 3, 468, 234, 0, 742, 740, 1, 0, 0, 0, 742, 741, + 1, 0, 0, 0, 742, 743, 1, 0, 0, 0, 743, 23, 1, 0, 0, 0, 744, 745, 3, 386, + 193, 0, 745, 747, 3, 498, 249, 0, 746, 748, 3, 244, 122, 0, 747, 746, 1, + 0, 0, 0, 747, 748, 1, 0, 0, 0, 748, 749, 1, 0, 0, 0, 749, 751, 3, 324, + 162, 0, 750, 752, 3, 106, 53, 0, 751, 750, 1, 0, 0, 0, 751, 752, 1, 0, + 0, 0, 752, 25, 1, 0, 0, 0, 753, 754, 3, 386, 193, 0, 754, 756, 3, 526, + 263, 0, 755, 757, 3, 244, 122, 0, 756, 755, 1, 0, 0, 0, 756, 757, 1, 0, + 0, 0, 757, 761, 1, 0, 0, 0, 758, 759, 3, 310, 155, 0, 759, 760, 5, 10, + 0, 0, 760, 762, 1, 0, 0, 0, 761, 758, 1, 0, 0, 0, 761, 762, 1, 0, 0, 0, + 762, 763, 1, 0, 0, 0, 763, 764, 3, 332, 166, 0, 764, 765, 3, 548, 274, + 0, 765, 766, 3, 28, 14, 0, 766, 767, 3, 550, 275, 0, 767, 27, 1, 0, 0, + 0, 768, 769, 3, 314, 157, 0, 769, 776, 3, 316, 158, 0, 770, 771, 3, 564, + 282, 0, 771, 772, 3, 314, 157, 0, 772, 773, 3, 316, 158, 0, 773, 775, 1, + 0, 0, 0, 774, 770, 1, 0, 0, 0, 775, 778, 1, 0, 0, 0, 776, 774, 1, 0, 0, + 0, 776, 777, 1, 0, 0, 0, 777, 29, 1, 0, 0, 0, 778, 776, 1, 0, 0, 0, 779, + 780, 3, 386, 193, 0, 780, 782, 3, 520, 260, 0, 781, 783, 3, 244, 122, 0, + 782, 781, 1, 0, 0, 0, 782, 783, 1, 0, 0, 0, 783, 787, 1, 0, 0, 0, 784, + 785, 3, 310, 155, 0, 785, 786, 5, 10, 0, 0, 786, 788, 1, 0, 0, 0, 787, + 784, 1, 0, 0, 0, 787, 788, 1, 0, 0, 0, 788, 789, 1, 0, 0, 0, 789, 790, + 3, 326, 163, 0, 790, 791, 3, 536, 268, 0, 791, 792, 3, 328, 164, 0, 792, + 31, 1, 0, 0, 0, 793, 794, 3, 386, 193, 0, 794, 795, 3, 464, 232, 0, 795, + 797, 3, 540, 270, 0, 796, 798, 3, 244, 122, 0, 797, 796, 1, 0, 0, 0, 797, + 798, 1, 0, 0, 0, 798, 802, 1, 0, 0, 0, 799, 800, 3, 310, 155, 0, 800, 801, + 5, 10, 0, 0, 801, 803, 1, 0, 0, 0, 802, 799, 1, 0, 0, 0, 802, 803, 1, 0, + 0, 0, 803, 804, 1, 0, 0, 0, 804, 805, 3, 330, 165, 0, 805, 806, 3, 366, + 183, 0, 806, 807, 3, 502, 251, 0, 807, 808, 3, 254, 127, 0, 808, 812, 3, + 418, 209, 0, 809, 810, 3, 310, 155, 0, 810, 811, 5, 10, 0, 0, 811, 813, + 1, 0, 0, 0, 812, 809, 1, 0, 0, 0, 812, 813, 1, 0, 0, 0, 813, 814, 1, 0, + 0, 0, 814, 815, 3, 312, 156, 0, 815, 816, 3, 34, 17, 0, 816, 817, 3, 488, + 244, 0, 817, 818, 3, 446, 223, 0, 818, 819, 3, 548, 274, 0, 819, 820, 3, + 254, 127, 0, 820, 824, 3, 550, 275, 0, 821, 822, 3, 544, 272, 0, 822, 823, + 3, 40, 20, 0, 823, 825, 1, 0, 0, 0, 824, 821, 1, 0, 0, 0, 824, 825, 1, + 0, 0, 0, 825, 33, 1, 0, 0, 0, 826, 827, 3, 542, 271, 0, 827, 831, 3, 36, + 18, 0, 828, 829, 3, 362, 181, 0, 829, 830, 3, 286, 143, 0, 830, 832, 1, + 0, 0, 0, 831, 828, 1, 0, 0, 0, 831, 832, 1, 0, 0, 0, 832, 35, 1, 0, 0, + 0, 833, 839, 3, 38, 19, 0, 834, 835, 3, 362, 181, 0, 835, 836, 3, 38, 19, + 0, 836, 838, 1, 0, 0, 0, 837, 834, 1, 0, 0, 0, 838, 841, 1, 0, 0, 0, 839, + 837, 1, 0, 0, 0, 839, 840, 1, 0, 0, 0, 840, 37, 1, 0, 0, 0, 841, 839, 1, + 0, 0, 0, 842, 843, 3, 314, 157, 0, 843, 844, 3, 442, 221, 0, 844, 845, + 3, 472, 236, 0, 845, 846, 3, 474, 237, 0, 846, 39, 1, 0, 0, 0, 847, 854, + 3, 136, 68, 0, 848, 849, 3, 136, 68, 0, 849, 850, 3, 362, 181, 0, 850, + 851, 3, 138, 69, 0, 851, 854, 1, 0, 0, 0, 852, 854, 3, 138, 69, 0, 853, + 847, 1, 0, 0, 0, 853, 848, 1, 0, 0, 0, 853, 852, 1, 0, 0, 0, 854, 41, 1, + 0, 0, 0, 855, 856, 3, 386, 193, 0, 856, 858, 3, 450, 225, 0, 857, 859, + 3, 244, 122, 0, 858, 857, 1, 0, 0, 0, 858, 859, 1, 0, 0, 0, 859, 860, 1, + 0, 0, 0, 860, 861, 3, 310, 155, 0, 861, 862, 3, 544, 272, 0, 862, 863, + 3, 494, 247, 0, 863, 864, 5, 19, 0, 0, 864, 865, 3, 552, 276, 0, 865, 866, + 3, 186, 93, 0, 866, 870, 3, 554, 277, 0, 867, 868, 3, 362, 181, 0, 868, + 869, 3, 190, 95, 0, 869, 871, 1, 0, 0, 0, 870, 867, 1, 0, 0, 0, 870, 871, + 1, 0, 0, 0, 871, 43, 1, 0, 0, 0, 872, 874, 3, 386, 193, 0, 873, 875, 3, + 64, 32, 0, 874, 873, 1, 0, 0, 0, 874, 875, 1, 0, 0, 0, 875, 876, 1, 0, + 0, 0, 876, 878, 3, 422, 211, 0, 877, 879, 3, 244, 122, 0, 878, 877, 1, + 0, 0, 0, 878, 879, 1, 0, 0, 0, 879, 883, 1, 0, 0, 0, 880, 881, 3, 310, + 155, 0, 881, 882, 5, 10, 0, 0, 882, 884, 1, 0, 0, 0, 883, 880, 1, 0, 0, + 0, 883, 884, 1, 0, 0, 0, 884, 885, 1, 0, 0, 0, 885, 886, 3, 336, 168, 0, + 886, 888, 3, 548, 274, 0, 887, 889, 3, 48, 24, 0, 888, 887, 1, 0, 0, 0, + 888, 889, 1, 0, 0, 0, 889, 890, 1, 0, 0, 0, 890, 891, 3, 550, 275, 0, 891, + 892, 3, 50, 25, 0, 892, 893, 3, 496, 248, 0, 893, 894, 3, 316, 158, 0, + 894, 895, 3, 454, 227, 0, 895, 896, 3, 338, 169, 0, 896, 897, 3, 366, 183, + 0, 897, 898, 3, 46, 23, 0, 898, 45, 1, 0, 0, 0, 899, 900, 7, 0, 0, 0, 900, + 47, 1, 0, 0, 0, 901, 907, 3, 346, 173, 0, 902, 903, 3, 564, 282, 0, 903, + 904, 3, 346, 173, 0, 904, 906, 1, 0, 0, 0, 905, 902, 1, 0, 0, 0, 906, 909, + 1, 0, 0, 0, 907, 905, 1, 0, 0, 0, 907, 908, 1, 0, 0, 0, 908, 49, 1, 0, + 0, 0, 909, 907, 1, 0, 0, 0, 910, 915, 3, 378, 189, 0, 911, 912, 3, 496, + 248, 0, 912, 913, 3, 474, 237, 0, 913, 915, 1, 0, 0, 0, 914, 910, 1, 0, + 0, 0, 914, 911, 1, 0, 0, 0, 915, 916, 1, 0, 0, 0, 916, 917, 3, 478, 239, + 0, 917, 918, 3, 474, 237, 0, 918, 919, 3, 436, 218, 0, 919, 51, 1, 0, 0, + 0, 920, 922, 3, 386, 193, 0, 921, 923, 3, 64, 32, 0, 922, 921, 1, 0, 0, + 0, 922, 923, 1, 0, 0, 0, 923, 924, 1, 0, 0, 0, 924, 926, 3, 352, 176, 0, + 925, 927, 3, 244, 122, 0, 926, 925, 1, 0, 0, 0, 926, 927, 1, 0, 0, 0, 927, + 931, 1, 0, 0, 0, 928, 929, 3, 310, 155, 0, 929, 930, 5, 10, 0, 0, 930, + 932, 1, 0, 0, 0, 931, 928, 1, 0, 0, 0, 931, 932, 1, 0, 0, 0, 932, 933, + 1, 0, 0, 0, 933, 934, 3, 334, 167, 0, 934, 935, 3, 548, 274, 0, 935, 936, + 3, 316, 158, 0, 936, 937, 3, 550, 275, 0, 937, 938, 3, 506, 253, 0, 938, + 939, 3, 336, 168, 0, 939, 940, 3, 510, 255, 0, 940, 941, 3, 316, 158, 0, + 941, 942, 3, 416, 208, 0, 942, 943, 3, 336, 168, 0, 943, 944, 3, 434, 217, + 0, 944, 945, 3, 54, 27, 0, 945, 53, 1, 0, 0, 0, 946, 951, 3, 298, 149, + 0, 947, 951, 3, 62, 31, 0, 948, 951, 3, 60, 30, 0, 949, 951, 3, 56, 28, + 0, 950, 946, 1, 0, 0, 0, 950, 947, 1, 0, 0, 0, 950, 948, 1, 0, 0, 0, 950, + 949, 1, 0, 0, 0, 951, 55, 1, 0, 0, 0, 952, 953, 3, 552, 276, 0, 953, 959, + 3, 58, 29, 0, 954, 955, 3, 564, 282, 0, 955, 956, 3, 58, 29, 0, 956, 958, + 1, 0, 0, 0, 957, 954, 1, 0, 0, 0, 958, 961, 1, 0, 0, 0, 959, 957, 1, 0, + 0, 0, 959, 960, 1, 0, 0, 0, 960, 962, 1, 0, 0, 0, 961, 959, 1, 0, 0, 0, + 962, 963, 3, 554, 277, 0, 963, 57, 1, 0, 0, 0, 964, 965, 3, 344, 172, 0, + 965, 966, 5, 9, 0, 0, 966, 967, 3, 54, 27, 0, 967, 59, 1, 0, 0, 0, 968, + 969, 3, 548, 274, 0, 969, 976, 3, 62, 31, 0, 970, 971, 3, 564, 282, 0, + 971, 972, 3, 298, 149, 0, 972, 975, 1, 0, 0, 0, 973, 975, 3, 62, 31, 0, + 974, 970, 1, 0, 0, 0, 974, 973, 1, 0, 0, 0, 975, 978, 1, 0, 0, 0, 976, + 974, 1, 0, 0, 0, 976, 977, 1, 0, 0, 0, 977, 979, 1, 0, 0, 0, 978, 976, + 1, 0, 0, 0, 979, 980, 3, 550, 275, 0, 980, 61, 1, 0, 0, 0, 981, 982, 3, + 548, 274, 0, 982, 988, 3, 298, 149, 0, 983, 984, 3, 564, 282, 0, 984, 985, + 3, 298, 149, 0, 985, 987, 1, 0, 0, 0, 986, 983, 1, 0, 0, 0, 987, 990, 1, + 0, 0, 0, 988, 986, 1, 0, 0, 0, 988, 989, 1, 0, 0, 0, 989, 991, 1, 0, 0, + 0, 990, 988, 1, 0, 0, 0, 991, 992, 3, 550, 275, 0, 992, 63, 1, 0, 0, 0, + 993, 994, 3, 482, 241, 0, 994, 995, 3, 492, 246, 0, 995, 65, 1, 0, 0, 0, + 996, 997, 3, 360, 180, 0, 997, 998, 3, 534, 267, 0, 998, 999, 3, 340, 170, + 0, 999, 1000, 3, 544, 272, 0, 1000, 1002, 3, 68, 34, 0, 1001, 1003, 3, + 70, 35, 0, 1002, 1001, 1, 0, 0, 0, 1002, 1003, 1, 0, 0, 0, 1003, 67, 1, + 0, 0, 0, 1004, 1005, 3, 486, 243, 0, 1005, 1006, 3, 304, 152, 0, 1006, + 69, 1, 0, 0, 0, 1007, 1010, 3, 512, 256, 0, 1008, 1010, 3, 468, 234, 0, + 1009, 1007, 1, 0, 0, 0, 1009, 1008, 1, 0, 0, 0, 1010, 71, 1, 0, 0, 0, 1011, + 1012, 3, 360, 180, 0, 1012, 1016, 3, 526, 263, 0, 1013, 1014, 3, 310, 155, + 0, 1014, 1015, 5, 10, 0, 0, 1015, 1017, 1, 0, 0, 0, 1016, 1013, 1, 0, 0, + 0, 1016, 1017, 1, 0, 0, 0, 1017, 1018, 1, 0, 0, 0, 1018, 1019, 3, 332, + 166, 0, 1019, 1020, 3, 74, 37, 0, 1020, 73, 1, 0, 0, 0, 1021, 1025, 3, + 84, 42, 0, 1022, 1025, 3, 82, 41, 0, 1023, 1025, 3, 76, 38, 0, 1024, 1021, + 1, 0, 0, 0, 1024, 1022, 1, 0, 0, 0, 1024, 1023, 1, 0, 0, 0, 1025, 75, 1, + 0, 0, 0, 1026, 1027, 3, 490, 245, 0, 1027, 1028, 3, 78, 39, 0, 1028, 77, + 1, 0, 0, 0, 1029, 1035, 3, 80, 40, 0, 1030, 1031, 3, 362, 181, 0, 1031, + 1032, 3, 80, 40, 0, 1032, 1034, 1, 0, 0, 0, 1033, 1030, 1, 0, 0, 0, 1034, + 1037, 1, 0, 0, 0, 1035, 1033, 1, 0, 0, 0, 1035, 1036, 1, 0, 0, 0, 1036, + 79, 1, 0, 0, 0, 1037, 1035, 1, 0, 0, 0, 1038, 1039, 3, 314, 157, 0, 1039, + 1040, 3, 518, 259, 0, 1040, 1041, 3, 314, 157, 0, 1041, 81, 1, 0, 0, 0, + 1042, 1043, 3, 350, 175, 0, 1043, 1044, 3, 314, 157, 0, 1044, 1051, 3, + 316, 158, 0, 1045, 1046, 3, 564, 282, 0, 1046, 1047, 3, 314, 157, 0, 1047, + 1048, 3, 316, 158, 0, 1048, 1050, 1, 0, 0, 0, 1049, 1045, 1, 0, 0, 0, 1050, + 1053, 1, 0, 0, 0, 1051, 1049, 1, 0, 0, 0, 1051, 1052, 1, 0, 0, 0, 1052, + 83, 1, 0, 0, 0, 1053, 1051, 1, 0, 0, 0, 1054, 1055, 3, 360, 180, 0, 1055, + 1056, 3, 314, 157, 0, 1056, 1057, 3, 526, 263, 0, 1057, 1058, 3, 316, 158, + 0, 1058, 85, 1, 0, 0, 0, 1059, 1060, 3, 360, 180, 0, 1060, 1064, 3, 514, + 257, 0, 1061, 1062, 3, 310, 155, 0, 1062, 1063, 5, 10, 0, 0, 1063, 1065, + 1, 0, 0, 0, 1064, 1061, 1, 0, 0, 0, 1064, 1065, 1, 0, 0, 0, 1065, 1066, + 1, 0, 0, 0, 1066, 1067, 3, 312, 156, 0, 1067, 1068, 3, 88, 44, 0, 1068, + 87, 1, 0, 0, 0, 1069, 1075, 3, 100, 50, 0, 1070, 1075, 3, 96, 48, 0, 1071, + 1075, 3, 94, 47, 0, 1072, 1075, 3, 92, 46, 0, 1073, 1075, 3, 90, 45, 0, + 1074, 1069, 1, 0, 0, 0, 1074, 1070, 1, 0, 0, 0, 1074, 1071, 1, 0, 0, 0, + 1074, 1072, 1, 0, 0, 0, 1074, 1073, 1, 0, 0, 0, 1075, 89, 1, 0, 0, 0, 1076, + 1077, 3, 544, 272, 0, 1077, 1078, 3, 136, 68, 0, 1078, 91, 1, 0, 0, 0, + 1079, 1080, 3, 490, 245, 0, 1080, 1081, 3, 314, 157, 0, 1081, 1082, 3, + 518, 259, 0, 1082, 1083, 3, 314, 157, 0, 1083, 93, 1, 0, 0, 0, 1084, 1085, + 3, 404, 202, 0, 1085, 1086, 3, 382, 191, 0, 1086, 1087, 3, 508, 254, 0, + 1087, 95, 1, 0, 0, 0, 1088, 1089, 3, 404, 202, 0, 1089, 1090, 3, 98, 49, + 0, 1090, 97, 1, 0, 0, 0, 1091, 1097, 3, 314, 157, 0, 1092, 1093, 3, 564, + 282, 0, 1093, 1094, 3, 314, 157, 0, 1094, 1096, 1, 0, 0, 0, 1095, 1092, + 1, 0, 0, 0, 1096, 1099, 1, 0, 0, 0, 1097, 1095, 1, 0, 0, 0, 1097, 1098, + 1, 0, 0, 0, 1098, 99, 1, 0, 0, 0, 1099, 1097, 1, 0, 0, 0, 1100, 1101, 3, + 350, 175, 0, 1101, 1102, 3, 102, 51, 0, 1102, 101, 1, 0, 0, 0, 1103, 1104, + 3, 314, 157, 0, 1104, 1111, 3, 316, 158, 0, 1105, 1106, 3, 564, 282, 0, + 1106, 1107, 3, 314, 157, 0, 1107, 1108, 3, 316, 158, 0, 1108, 1110, 1, + 0, 0, 0, 1109, 1105, 1, 0, 0, 0, 1110, 1113, 1, 0, 0, 0, 1111, 1109, 1, + 0, 0, 0, 1111, 1112, 1, 0, 0, 0, 1112, 103, 1, 0, 0, 0, 1113, 1111, 1, + 0, 0, 0, 1114, 1115, 3, 360, 180, 0, 1115, 1116, 3, 498, 249, 0, 1116, + 1118, 3, 324, 162, 0, 1117, 1119, 3, 106, 53, 0, 1118, 1117, 1, 0, 0, 0, + 1118, 1119, 1, 0, 0, 0, 1119, 105, 1, 0, 0, 0, 1120, 1121, 3, 544, 272, + 0, 1121, 1127, 3, 108, 54, 0, 1122, 1123, 3, 362, 181, 0, 1123, 1124, 3, + 108, 54, 0, 1124, 1126, 1, 0, 0, 0, 1125, 1122, 1, 0, 0, 0, 1126, 1129, + 1, 0, 0, 0, 1127, 1125, 1, 0, 0, 0, 1127, 1128, 1, 0, 0, 0, 1128, 107, + 1, 0, 0, 0, 1129, 1127, 1, 0, 0, 0, 1130, 1131, 3, 486, 243, 0, 1131, 1132, + 5, 19, 0, 0, 1132, 1133, 3, 304, 152, 0, 1133, 1147, 1, 0, 0, 0, 1134, + 1135, 3, 462, 231, 0, 1135, 1136, 5, 19, 0, 0, 1136, 1137, 3, 306, 153, + 0, 1137, 1147, 1, 0, 0, 0, 1138, 1139, 3, 512, 256, 0, 1139, 1140, 5, 19, + 0, 0, 1140, 1141, 3, 306, 153, 0, 1141, 1147, 1, 0, 0, 0, 1142, 1143, 3, + 480, 240, 0, 1143, 1144, 5, 19, 0, 0, 1144, 1145, 3, 146, 73, 0, 1145, + 1147, 1, 0, 0, 0, 1146, 1130, 1, 0, 0, 0, 1146, 1134, 1, 0, 0, 0, 1146, + 1138, 1, 0, 0, 0, 1146, 1142, 1, 0, 0, 0, 1147, 109, 1, 0, 0, 0, 1148, + 1149, 3, 360, 180, 0, 1149, 1150, 3, 464, 232, 0, 1150, 1154, 3, 540, 270, + 0, 1151, 1152, 3, 310, 155, 0, 1152, 1153, 5, 10, 0, 0, 1153, 1155, 1, + 0, 0, 0, 1154, 1151, 1, 0, 0, 0, 1154, 1155, 1, 0, 0, 0, 1155, 1156, 1, + 0, 0, 0, 1156, 1160, 3, 330, 165, 0, 1157, 1158, 3, 544, 272, 0, 1158, + 1159, 3, 136, 68, 0, 1159, 1161, 1, 0, 0, 0, 1160, 1157, 1, 0, 0, 0, 1160, + 1161, 1, 0, 0, 0, 1161, 111, 1, 0, 0, 0, 1162, 1163, 3, 404, 202, 0, 1163, + 1165, 3, 534, 267, 0, 1164, 1166, 3, 246, 123, 0, 1165, 1164, 1, 0, 0, + 0, 1165, 1166, 1, 0, 0, 0, 1166, 1167, 1, 0, 0, 0, 1167, 1168, 3, 340, + 170, 0, 1168, 113, 1, 0, 0, 0, 1169, 1170, 3, 404, 202, 0, 1170, 1172, + 3, 526, 263, 0, 1171, 1173, 3, 246, 123, 0, 1172, 1171, 1, 0, 0, 0, 1172, + 1173, 1, 0, 0, 0, 1173, 1177, 1, 0, 0, 0, 1174, 1175, 3, 310, 155, 0, 1175, + 1176, 5, 10, 0, 0, 1176, 1178, 1, 0, 0, 0, 1177, 1174, 1, 0, 0, 0, 1177, + 1178, 1, 0, 0, 0, 1178, 1179, 1, 0, 0, 0, 1179, 1180, 3, 332, 166, 0, 1180, + 115, 1, 0, 0, 0, 1181, 1182, 3, 404, 202, 0, 1182, 1183, 3, 464, 232, 0, + 1183, 1185, 3, 540, 270, 0, 1184, 1186, 3, 246, 123, 0, 1185, 1184, 1, + 0, 0, 0, 1185, 1186, 1, 0, 0, 0, 1186, 1190, 1, 0, 0, 0, 1187, 1188, 3, + 310, 155, 0, 1188, 1189, 5, 10, 0, 0, 1189, 1191, 1, 0, 0, 0, 1190, 1187, + 1, 0, 0, 0, 1190, 1191, 1, 0, 0, 0, 1191, 1192, 1, 0, 0, 0, 1192, 1193, + 3, 330, 165, 0, 1193, 117, 1, 0, 0, 0, 1194, 1195, 3, 404, 202, 0, 1195, + 1197, 3, 352, 176, 0, 1196, 1198, 3, 246, 123, 0, 1197, 1196, 1, 0, 0, + 0, 1197, 1198, 1, 0, 0, 0, 1198, 1202, 1, 0, 0, 0, 1199, 1200, 3, 310, + 155, 0, 1200, 1201, 5, 10, 0, 0, 1201, 1203, 1, 0, 0, 0, 1202, 1199, 1, + 0, 0, 0, 1202, 1203, 1, 0, 0, 0, 1203, 1204, 1, 0, 0, 0, 1204, 1205, 3, + 334, 167, 0, 1205, 119, 1, 0, 0, 0, 1206, 1207, 3, 404, 202, 0, 1207, 1209, + 3, 422, 211, 0, 1208, 1210, 3, 246, 123, 0, 1209, 1208, 1, 0, 0, 0, 1209, + 1210, 1, 0, 0, 0, 1210, 1214, 1, 0, 0, 0, 1211, 1212, 3, 310, 155, 0, 1212, 1213, 5, 10, 0, 0, 1213, 1215, 1, 0, 0, 0, 1214, 1211, 1, 0, 0, 0, 1214, - 1215, 1, 0, 0, 0, 1215, 1216, 1, 0, 0, 0, 1216, 1217, 3, 306, 153, 0, 1217, - 123, 1, 0, 0, 0, 1218, 1219, 3, 390, 195, 0, 1219, 1221, 3, 484, 242, 0, + 1215, 1, 0, 0, 0, 1215, 1216, 1, 0, 0, 0, 1216, 1217, 3, 336, 168, 0, 1217, + 121, 1, 0, 0, 0, 1218, 1219, 3, 404, 202, 0, 1219, 1221, 3, 520, 260, 0, 1220, 1222, 3, 246, 123, 0, 1221, 1220, 1, 0, 0, 0, 1221, 1222, 1, 0, 0, - 0, 1222, 1223, 1, 0, 0, 0, 1223, 1224, 3, 318, 159, 0, 1224, 125, 1, 0, - 0, 0, 1225, 1226, 3, 390, 195, 0, 1226, 1228, 3, 500, 250, 0, 1227, 1229, - 3, 246, 123, 0, 1228, 1227, 1, 0, 0, 0, 1228, 1229, 1, 0, 0, 0, 1229, 1233, - 1, 0, 0, 0, 1230, 1231, 3, 304, 152, 0, 1231, 1232, 5, 10, 0, 0, 1232, - 1234, 1, 0, 0, 0, 1233, 1230, 1, 0, 0, 0, 1233, 1234, 1, 0, 0, 0, 1234, - 1235, 1, 0, 0, 0, 1235, 1236, 3, 306, 153, 0, 1236, 127, 1, 0, 0, 0, 1237, - 1238, 3, 390, 195, 0, 1238, 1240, 3, 436, 218, 0, 1239, 1241, 3, 246, 123, - 0, 1240, 1239, 1, 0, 0, 0, 1240, 1241, 1, 0, 0, 0, 1241, 1242, 1, 0, 0, - 0, 1242, 1243, 3, 304, 152, 0, 1243, 129, 1, 0, 0, 0, 1244, 1245, 3, 390, - 195, 0, 1245, 1247, 3, 418, 209, 0, 1246, 1248, 3, 246, 123, 0, 1247, 1246, - 1, 0, 0, 0, 1247, 1248, 1, 0, 0, 0, 1248, 1252, 1, 0, 0, 0, 1249, 1250, - 3, 304, 152, 0, 1250, 1251, 5, 10, 0, 0, 1251, 1253, 1, 0, 0, 0, 1252, - 1249, 1, 0, 0, 0, 1252, 1253, 1, 0, 0, 0, 1253, 1254, 1, 0, 0, 0, 1254, - 1255, 3, 198, 99, 0, 1255, 131, 1, 0, 0, 0, 1256, 1257, 3, 380, 190, 0, - 1257, 1259, 3, 500, 250, 0, 1258, 1260, 3, 244, 122, 0, 1259, 1258, 1, - 0, 0, 0, 1259, 1260, 1, 0, 0, 0, 1260, 1264, 1, 0, 0, 0, 1261, 1262, 3, - 304, 152, 0, 1262, 1263, 5, 10, 0, 0, 1263, 1265, 1, 0, 0, 0, 1264, 1261, - 1, 0, 0, 0, 1264, 1265, 1, 0, 0, 0, 1265, 1266, 1, 0, 0, 0, 1266, 1267, - 3, 306, 153, 0, 1267, 1268, 3, 534, 267, 0, 1268, 1269, 3, 154, 77, 0, - 1269, 1271, 3, 536, 268, 0, 1270, 1272, 3, 134, 67, 0, 1271, 1270, 1, 0, - 0, 0, 1271, 1272, 1, 0, 0, 0, 1272, 133, 1, 0, 0, 0, 1273, 1274, 3, 530, - 265, 0, 1274, 1275, 3, 136, 68, 0, 1275, 135, 1, 0, 0, 0, 1276, 1277, 3, - 376, 188, 0, 1277, 1281, 3, 494, 247, 0, 1278, 1279, 3, 356, 178, 0, 1279, - 1280, 3, 136, 68, 0, 1280, 1282, 1, 0, 0, 0, 1281, 1278, 1, 0, 0, 0, 1281, - 1282, 1, 0, 0, 0, 1282, 1299, 1, 0, 0, 0, 1283, 1287, 3, 138, 69, 0, 1284, - 1285, 3, 356, 178, 0, 1285, 1286, 3, 136, 68, 0, 1286, 1288, 1, 0, 0, 0, - 1287, 1284, 1, 0, 0, 0, 1287, 1288, 1, 0, 0, 0, 1288, 1299, 1, 0, 0, 0, - 1289, 1295, 3, 140, 70, 0, 1290, 1291, 3, 356, 178, 0, 1291, 1292, 3, 140, - 70, 0, 1292, 1294, 1, 0, 0, 0, 1293, 1290, 1, 0, 0, 0, 1294, 1297, 1, 0, - 0, 0, 1295, 1293, 1, 0, 0, 0, 1295, 1296, 1, 0, 0, 0, 1296, 1299, 1, 0, - 0, 0, 1297, 1295, 1, 0, 0, 0, 1298, 1276, 1, 0, 0, 0, 1298, 1283, 1, 0, - 0, 0, 1298, 1289, 1, 0, 0, 0, 1299, 137, 1, 0, 0, 0, 1300, 1301, 3, 374, - 187, 0, 1301, 1302, 3, 470, 235, 0, 1302, 1303, 3, 370, 185, 0, 1303, 1304, - 3, 534, 267, 0, 1304, 1306, 3, 308, 154, 0, 1305, 1307, 3, 316, 158, 0, - 1306, 1305, 1, 0, 0, 0, 1306, 1307, 1, 0, 0, 0, 1307, 1315, 1, 0, 0, 0, - 1308, 1309, 3, 550, 275, 0, 1309, 1311, 3, 308, 154, 0, 1310, 1312, 3, - 316, 158, 0, 1311, 1310, 1, 0, 0, 0, 1311, 1312, 1, 0, 0, 0, 1312, 1314, - 1, 0, 0, 0, 1313, 1308, 1, 0, 0, 0, 1314, 1317, 1, 0, 0, 0, 1315, 1313, - 1, 0, 0, 0, 1315, 1316, 1, 0, 0, 0, 1316, 1318, 1, 0, 0, 0, 1317, 1315, - 1, 0, 0, 0, 1318, 1319, 3, 536, 268, 0, 1319, 139, 1, 0, 0, 0, 1320, 1321, - 3, 142, 71, 0, 1321, 1322, 5, 19, 0, 0, 1322, 1323, 3, 144, 72, 0, 1323, - 1329, 1, 0, 0, 0, 1324, 1325, 3, 142, 71, 0, 1325, 1326, 5, 19, 0, 0, 1326, - 1327, 3, 146, 73, 0, 1327, 1329, 1, 0, 0, 0, 1328, 1320, 1, 0, 0, 0, 1328, - 1324, 1, 0, 0, 0, 1329, 141, 1, 0, 0, 0, 1330, 1331, 5, 170, 0, 0, 1331, - 143, 1, 0, 0, 0, 1332, 1335, 3, 298, 149, 0, 1333, 1335, 3, 296, 148, 0, - 1334, 1332, 1, 0, 0, 0, 1334, 1333, 1, 0, 0, 0, 1335, 145, 1, 0, 0, 0, - 1336, 1337, 3, 538, 269, 0, 1337, 1343, 3, 148, 74, 0, 1338, 1339, 3, 550, - 275, 0, 1339, 1340, 3, 148, 74, 0, 1340, 1342, 1, 0, 0, 0, 1341, 1338, - 1, 0, 0, 0, 1342, 1345, 1, 0, 0, 0, 1343, 1341, 1, 0, 0, 0, 1343, 1344, - 1, 0, 0, 0, 1344, 1346, 1, 0, 0, 0, 1345, 1343, 1, 0, 0, 0, 1346, 1347, - 3, 540, 270, 0, 1347, 147, 1, 0, 0, 0, 1348, 1349, 3, 150, 75, 0, 1349, - 1350, 5, 9, 0, 0, 1350, 1351, 3, 152, 76, 0, 1351, 149, 1, 0, 0, 0, 1352, - 1353, 3, 298, 149, 0, 1353, 151, 1, 0, 0, 0, 1354, 1357, 3, 298, 149, 0, - 1355, 1357, 3, 296, 148, 0, 1356, 1354, 1, 0, 0, 0, 1356, 1355, 1, 0, 0, - 0, 1357, 153, 1, 0, 0, 0, 1358, 1364, 3, 156, 78, 0, 1359, 1360, 3, 550, - 275, 0, 1360, 1361, 3, 156, 78, 0, 1361, 1363, 1, 0, 0, 0, 1362, 1359, - 1, 0, 0, 0, 1363, 1366, 1, 0, 0, 0, 1364, 1362, 1, 0, 0, 0, 1364, 1365, - 1, 0, 0, 0, 1365, 1370, 1, 0, 0, 0, 1366, 1364, 1, 0, 0, 0, 1367, 1368, - 3, 550, 275, 0, 1368, 1369, 3, 160, 80, 0, 1369, 1371, 1, 0, 0, 0, 1370, - 1367, 1, 0, 0, 0, 1370, 1371, 1, 0, 0, 0, 1371, 155, 1, 0, 0, 0, 1372, - 1373, 3, 308, 154, 0, 1373, 1375, 3, 310, 155, 0, 1374, 1376, 3, 158, 79, - 0, 1375, 1374, 1, 0, 0, 0, 1375, 1376, 1, 0, 0, 0, 1376, 157, 1, 0, 0, - 0, 1377, 1378, 3, 474, 237, 0, 1378, 1379, 3, 432, 216, 0, 1379, 159, 1, - 0, 0, 0, 1380, 1381, 3, 474, 237, 0, 1381, 1382, 3, 432, 216, 0, 1382, - 1383, 3, 534, 267, 0, 1383, 1384, 3, 162, 81, 0, 1384, 1385, 3, 536, 268, - 0, 1385, 161, 1, 0, 0, 0, 1386, 1390, 3, 164, 82, 0, 1387, 1390, 3, 166, - 83, 0, 1388, 1390, 3, 168, 84, 0, 1389, 1386, 1, 0, 0, 0, 1389, 1387, 1, - 0, 0, 0, 1389, 1388, 1, 0, 0, 0, 1390, 163, 1, 0, 0, 0, 1391, 1392, 3, - 308, 154, 0, 1392, 165, 1, 0, 0, 0, 1393, 1394, 3, 174, 87, 0, 1394, 1395, - 3, 550, 275, 0, 1395, 1396, 3, 172, 86, 0, 1396, 167, 1, 0, 0, 0, 1397, - 1398, 3, 534, 267, 0, 1398, 1399, 3, 170, 85, 0, 1399, 1400, 3, 536, 268, - 0, 1400, 1401, 3, 550, 275, 0, 1401, 1402, 3, 172, 86, 0, 1402, 169, 1, - 0, 0, 0, 1403, 1409, 3, 174, 87, 0, 1404, 1405, 3, 550, 275, 0, 1405, 1406, - 3, 174, 87, 0, 1406, 1408, 1, 0, 0, 0, 1407, 1404, 1, 0, 0, 0, 1408, 1411, - 1, 0, 0, 0, 1409, 1407, 1, 0, 0, 0, 1409, 1410, 1, 0, 0, 0, 1410, 171, - 1, 0, 0, 0, 1411, 1409, 1, 0, 0, 0, 1412, 1418, 3, 176, 88, 0, 1413, 1414, - 3, 550, 275, 0, 1414, 1415, 3, 176, 88, 0, 1415, 1417, 1, 0, 0, 0, 1416, - 1413, 1, 0, 0, 0, 1417, 1420, 1, 0, 0, 0, 1418, 1416, 1, 0, 0, 0, 1418, - 1419, 1, 0, 0, 0, 1419, 173, 1, 0, 0, 0, 1420, 1418, 1, 0, 0, 0, 1421, - 1422, 3, 308, 154, 0, 1422, 175, 1, 0, 0, 0, 1423, 1424, 3, 308, 154, 0, - 1424, 177, 1, 0, 0, 0, 1425, 1426, 3, 358, 179, 0, 1426, 1427, 3, 366, - 183, 0, 1427, 179, 1, 0, 0, 0, 1428, 1430, 3, 368, 184, 0, 1429, 1431, - 3, 182, 91, 0, 1430, 1429, 1, 0, 0, 0, 1430, 1431, 1, 0, 0, 0, 1431, 1432, - 1, 0, 0, 0, 1432, 1434, 3, 366, 183, 0, 1433, 1435, 3, 242, 121, 0, 1434, - 1433, 1, 0, 0, 0, 1434, 1435, 1, 0, 0, 0, 1435, 181, 1, 0, 0, 0, 1436, - 1439, 3, 446, 223, 0, 1437, 1439, 3, 514, 257, 0, 1438, 1436, 1, 0, 0, - 0, 1438, 1437, 1, 0, 0, 0, 1439, 183, 1, 0, 0, 0, 1440, 1441, 3, 354, 177, - 0, 1441, 1442, 3, 436, 218, 0, 1442, 1443, 3, 304, 152, 0, 1443, 1444, - 3, 530, 265, 0, 1444, 1445, 3, 480, 240, 0, 1445, 1446, 5, 19, 0, 0, 1446, - 1447, 3, 538, 269, 0, 1447, 1448, 3, 186, 93, 0, 1448, 1452, 3, 540, 270, - 0, 1449, 1450, 3, 356, 178, 0, 1450, 1451, 3, 190, 95, 0, 1451, 1453, 1, - 0, 0, 0, 1452, 1449, 1, 0, 0, 0, 1452, 1453, 1, 0, 0, 0, 1453, 185, 1, - 0, 0, 0, 1454, 1460, 3, 188, 94, 0, 1455, 1456, 3, 550, 275, 0, 1456, 1457, - 3, 188, 94, 0, 1457, 1459, 1, 0, 0, 0, 1458, 1455, 1, 0, 0, 0, 1459, 1462, - 1, 0, 0, 0, 1460, 1458, 1, 0, 0, 0, 1460, 1461, 1, 0, 0, 0, 1461, 187, - 1, 0, 0, 0, 1462, 1460, 1, 0, 0, 0, 1463, 1464, 5, 165, 0, 0, 1464, 1465, - 5, 9, 0, 0, 1465, 1470, 5, 165, 0, 0, 1466, 1467, 5, 165, 0, 0, 1467, 1468, - 5, 9, 0, 0, 1468, 1470, 5, 166, 0, 0, 1469, 1463, 1, 0, 0, 0, 1469, 1466, - 1, 0, 0, 0, 1470, 189, 1, 0, 0, 0, 1471, 1472, 3, 392, 196, 0, 1472, 1473, - 5, 19, 0, 0, 1473, 1474, 3, 300, 150, 0, 1474, 191, 1, 0, 0, 0, 1475, 1476, - 3, 518, 259, 0, 1476, 1477, 3, 304, 152, 0, 1477, 193, 1, 0, 0, 0, 1478, - 1480, 3, 508, 254, 0, 1479, 1481, 3, 500, 250, 0, 1480, 1479, 1, 0, 0, - 0, 1480, 1481, 1, 0, 0, 0, 1481, 1485, 1, 0, 0, 0, 1482, 1483, 3, 304, - 152, 0, 1483, 1484, 5, 10, 0, 0, 1484, 1486, 1, 0, 0, 0, 1485, 1482, 1, - 0, 0, 0, 1485, 1486, 1, 0, 0, 0, 1486, 1487, 1, 0, 0, 0, 1487, 1488, 3, - 306, 153, 0, 1488, 195, 1, 0, 0, 0, 1489, 1490, 3, 380, 190, 0, 1490, 1492, - 3, 418, 209, 0, 1491, 1493, 3, 244, 122, 0, 1492, 1491, 1, 0, 0, 0, 1492, - 1493, 1, 0, 0, 0, 1493, 1495, 1, 0, 0, 0, 1494, 1496, 3, 198, 99, 0, 1495, - 1494, 1, 0, 0, 0, 1495, 1496, 1, 0, 0, 0, 1496, 1497, 1, 0, 0, 0, 1497, - 1501, 3, 464, 232, 0, 1498, 1499, 3, 304, 152, 0, 1499, 1500, 5, 10, 0, - 0, 1500, 1502, 1, 0, 0, 0, 1501, 1498, 1, 0, 0, 0, 1501, 1502, 1, 0, 0, - 0, 1502, 1503, 1, 0, 0, 0, 1503, 1504, 3, 306, 153, 0, 1504, 1505, 3, 534, - 267, 0, 1505, 1506, 3, 200, 100, 0, 1506, 1507, 3, 536, 268, 0, 1507, 197, - 1, 0, 0, 0, 1508, 1511, 5, 170, 0, 0, 1509, 1511, 3, 298, 149, 0, 1510, - 1508, 1, 0, 0, 0, 1510, 1509, 1, 0, 0, 0, 1511, 199, 1, 0, 0, 0, 1512, - 1517, 3, 308, 154, 0, 1513, 1517, 3, 202, 101, 0, 1514, 1517, 3, 204, 102, - 0, 1515, 1517, 3, 206, 103, 0, 1516, 1512, 1, 0, 0, 0, 1516, 1513, 1, 0, - 0, 0, 1516, 1514, 1, 0, 0, 0, 1516, 1515, 1, 0, 0, 0, 1517, 201, 1, 0, - 0, 0, 1518, 1519, 3, 434, 217, 0, 1519, 1520, 3, 534, 267, 0, 1520, 1521, - 5, 170, 0, 0, 1521, 1522, 3, 536, 268, 0, 1522, 203, 1, 0, 0, 0, 1523, - 1524, 3, 394, 197, 0, 1524, 1525, 3, 534, 267, 0, 1525, 1526, 5, 170, 0, - 0, 1526, 1527, 3, 536, 268, 0, 1527, 205, 1, 0, 0, 0, 1528, 1529, 3, 406, - 203, 0, 1529, 1530, 3, 534, 267, 0, 1530, 1531, 5, 170, 0, 0, 1531, 1532, - 3, 536, 268, 0, 1532, 207, 1, 0, 0, 0, 1533, 1535, 3, 180, 90, 0, 1534, - 1533, 1, 0, 0, 0, 1534, 1535, 1, 0, 0, 0, 1535, 1536, 1, 0, 0, 0, 1536, - 1538, 3, 382, 191, 0, 1537, 1539, 3, 210, 105, 0, 1538, 1537, 1, 0, 0, - 0, 1538, 1539, 1, 0, 0, 0, 1539, 1540, 1, 0, 0, 0, 1540, 1542, 3, 264, - 132, 0, 1541, 1543, 3, 242, 121, 0, 1542, 1541, 1, 0, 0, 0, 1542, 1543, - 1, 0, 0, 0, 1543, 1544, 1, 0, 0, 0, 1544, 1547, 3, 272, 136, 0, 1545, 1548, - 3, 246, 123, 0, 1546, 1548, 3, 216, 108, 0, 1547, 1545, 1, 0, 0, 0, 1547, - 1546, 1, 0, 0, 0, 1547, 1548, 1, 0, 0, 0, 1548, 209, 1, 0, 0, 0, 1549, - 1555, 3, 212, 106, 0, 1550, 1551, 3, 550, 275, 0, 1551, 1552, 3, 212, 106, - 0, 1552, 1554, 1, 0, 0, 0, 1553, 1550, 1, 0, 0, 0, 1554, 1557, 1, 0, 0, - 0, 1555, 1553, 1, 0, 0, 0, 1555, 1556, 1, 0, 0, 0, 1556, 211, 1, 0, 0, - 0, 1557, 1555, 1, 0, 0, 0, 1558, 1568, 5, 170, 0, 0, 1559, 1560, 5, 170, - 0, 0, 1560, 1563, 5, 5, 0, 0, 1561, 1564, 3, 298, 149, 0, 1562, 1564, 3, - 294, 147, 0, 1563, 1561, 1, 0, 0, 0, 1563, 1562, 1, 0, 0, 0, 1564, 1565, - 1, 0, 0, 0, 1565, 1566, 5, 6, 0, 0, 1566, 1568, 1, 0, 0, 0, 1567, 1558, - 1, 0, 0, 0, 1567, 1559, 1, 0, 0, 0, 1568, 213, 1, 0, 0, 0, 1569, 1571, - 3, 180, 90, 0, 1570, 1569, 1, 0, 0, 0, 1570, 1571, 1, 0, 0, 0, 1571, 1572, - 1, 0, 0, 0, 1572, 1576, 3, 516, 258, 0, 1573, 1574, 3, 304, 152, 0, 1574, - 1575, 5, 10, 0, 0, 1575, 1577, 1, 0, 0, 0, 1576, 1573, 1, 0, 0, 0, 1576, - 1577, 1, 0, 0, 0, 1577, 1578, 1, 0, 0, 0, 1578, 1580, 3, 306, 153, 0, 1579, - 1581, 3, 236, 118, 0, 1580, 1579, 1, 0, 0, 0, 1580, 1581, 1, 0, 0, 0, 1581, - 1582, 1, 0, 0, 0, 1582, 1583, 3, 490, 245, 0, 1583, 1584, 3, 222, 111, - 0, 1584, 1587, 3, 272, 136, 0, 1585, 1588, 3, 246, 123, 0, 1586, 1588, - 3, 216, 108, 0, 1587, 1585, 1, 0, 0, 0, 1587, 1586, 1, 0, 0, 0, 1587, 1588, - 1, 0, 0, 0, 1588, 215, 1, 0, 0, 0, 1589, 1590, 3, 414, 207, 0, 1590, 1591, - 3, 218, 109, 0, 1591, 217, 1, 0, 0, 0, 1592, 1598, 3, 220, 110, 0, 1593, - 1594, 3, 356, 178, 0, 1594, 1595, 3, 220, 110, 0, 1595, 1597, 1, 0, 0, - 0, 1596, 1593, 1, 0, 0, 0, 1597, 1600, 1, 0, 0, 0, 1598, 1596, 1, 0, 0, - 0, 1598, 1599, 1, 0, 0, 0, 1599, 219, 1, 0, 0, 0, 1600, 1598, 1, 0, 0, - 0, 1601, 1602, 5, 170, 0, 0, 1602, 1603, 5, 19, 0, 0, 1603, 1604, 3, 292, - 146, 0, 1604, 221, 1, 0, 0, 0, 1605, 1611, 3, 224, 112, 0, 1606, 1607, - 3, 550, 275, 0, 1607, 1608, 3, 224, 112, 0, 1608, 1610, 1, 0, 0, 0, 1609, - 1606, 1, 0, 0, 0, 1610, 1613, 1, 0, 0, 0, 1611, 1609, 1, 0, 0, 0, 1611, - 1612, 1, 0, 0, 0, 1612, 223, 1, 0, 0, 0, 1613, 1611, 1, 0, 0, 0, 1614, - 1615, 5, 170, 0, 0, 1615, 1620, 5, 19, 0, 0, 1616, 1621, 3, 292, 146, 0, - 1617, 1621, 3, 228, 114, 0, 1618, 1621, 3, 226, 113, 0, 1619, 1621, 3, - 230, 115, 0, 1620, 1616, 1, 0, 0, 0, 1620, 1617, 1, 0, 0, 0, 1620, 1618, - 1, 0, 0, 0, 1620, 1619, 1, 0, 0, 0, 1621, 1668, 1, 0, 0, 0, 1622, 1623, - 5, 170, 0, 0, 1623, 1624, 5, 19, 0, 0, 1624, 1625, 5, 170, 0, 0, 1625, - 1626, 7, 1, 0, 0, 1626, 1668, 3, 294, 147, 0, 1627, 1628, 5, 170, 0, 0, - 1628, 1629, 5, 19, 0, 0, 1629, 1630, 5, 170, 0, 0, 1630, 1631, 7, 1, 0, - 0, 1631, 1668, 3, 226, 113, 0, 1632, 1633, 5, 170, 0, 0, 1633, 1634, 5, - 19, 0, 0, 1634, 1635, 3, 226, 113, 0, 1635, 1636, 7, 1, 0, 0, 1636, 1637, - 5, 170, 0, 0, 1637, 1668, 1, 0, 0, 0, 1638, 1639, 5, 170, 0, 0, 1639, 1640, - 5, 19, 0, 0, 1640, 1641, 5, 170, 0, 0, 1641, 1642, 7, 1, 0, 0, 1642, 1668, - 3, 228, 114, 0, 1643, 1644, 5, 170, 0, 0, 1644, 1645, 5, 19, 0, 0, 1645, - 1646, 3, 228, 114, 0, 1646, 1647, 7, 1, 0, 0, 1647, 1648, 5, 170, 0, 0, - 1648, 1668, 1, 0, 0, 0, 1649, 1650, 5, 170, 0, 0, 1650, 1651, 5, 19, 0, - 0, 1651, 1652, 5, 170, 0, 0, 1652, 1653, 7, 1, 0, 0, 1653, 1668, 3, 230, - 115, 0, 1654, 1655, 5, 170, 0, 0, 1655, 1656, 5, 19, 0, 0, 1656, 1657, - 3, 230, 115, 0, 1657, 1658, 7, 1, 0, 0, 1658, 1659, 5, 170, 0, 0, 1659, - 1668, 1, 0, 0, 0, 1660, 1661, 5, 170, 0, 0, 1661, 1662, 3, 546, 273, 0, - 1662, 1663, 3, 294, 147, 0, 1663, 1664, 3, 548, 274, 0, 1664, 1665, 5, - 19, 0, 0, 1665, 1666, 3, 292, 146, 0, 1666, 1668, 1, 0, 0, 0, 1667, 1614, - 1, 0, 0, 0, 1667, 1622, 1, 0, 0, 0, 1667, 1627, 1, 0, 0, 0, 1667, 1632, - 1, 0, 0, 0, 1667, 1638, 1, 0, 0, 0, 1667, 1643, 1, 0, 0, 0, 1667, 1649, - 1, 0, 0, 0, 1667, 1654, 1, 0, 0, 0, 1667, 1660, 1, 0, 0, 0, 1668, 225, - 1, 0, 0, 0, 1669, 1679, 3, 538, 269, 0, 1670, 1676, 3, 292, 146, 0, 1671, - 1672, 3, 550, 275, 0, 1672, 1673, 3, 292, 146, 0, 1673, 1675, 1, 0, 0, - 0, 1674, 1671, 1, 0, 0, 0, 1675, 1678, 1, 0, 0, 0, 1676, 1674, 1, 0, 0, - 0, 1676, 1677, 1, 0, 0, 0, 1677, 1680, 1, 0, 0, 0, 1678, 1676, 1, 0, 0, - 0, 1679, 1670, 1, 0, 0, 0, 1679, 1680, 1, 0, 0, 0, 1680, 1681, 1, 0, 0, - 0, 1681, 1682, 3, 540, 270, 0, 1682, 227, 1, 0, 0, 0, 1683, 1684, 3, 538, - 269, 0, 1684, 1685, 3, 292, 146, 0, 1685, 1686, 3, 552, 276, 0, 1686, 1687, - 3, 292, 146, 0, 1687, 1695, 1, 0, 0, 0, 1688, 1689, 3, 550, 275, 0, 1689, - 1690, 3, 292, 146, 0, 1690, 1691, 3, 552, 276, 0, 1691, 1692, 3, 292, 146, - 0, 1692, 1694, 1, 0, 0, 0, 1693, 1688, 1, 0, 0, 0, 1694, 1697, 1, 0, 0, - 0, 1695, 1693, 1, 0, 0, 0, 1695, 1696, 1, 0, 0, 0, 1696, 1698, 1, 0, 0, - 0, 1697, 1695, 1, 0, 0, 0, 1698, 1699, 3, 540, 270, 0, 1699, 229, 1, 0, - 0, 0, 1700, 1701, 3, 546, 273, 0, 1701, 1707, 3, 292, 146, 0, 1702, 1703, - 3, 550, 275, 0, 1703, 1704, 3, 292, 146, 0, 1704, 1706, 1, 0, 0, 0, 1705, - 1702, 1, 0, 0, 0, 1706, 1709, 1, 0, 0, 0, 1707, 1705, 1, 0, 0, 0, 1707, - 1708, 1, 0, 0, 0, 1708, 1710, 1, 0, 0, 0, 1709, 1707, 1, 0, 0, 0, 1710, - 1711, 3, 548, 274, 0, 1711, 231, 1, 0, 0, 0, 1712, 1713, 3, 534, 267, 0, - 1713, 1719, 3, 256, 128, 0, 1714, 1715, 3, 550, 275, 0, 1715, 1716, 3, - 256, 128, 0, 1716, 1718, 1, 0, 0, 0, 1717, 1714, 1, 0, 0, 0, 1718, 1721, - 1, 0, 0, 0, 1719, 1717, 1, 0, 0, 0, 1719, 1720, 1, 0, 0, 0, 1720, 1722, - 1, 0, 0, 0, 1721, 1719, 1, 0, 0, 0, 1722, 1723, 3, 536, 268, 0, 1723, 233, - 1, 0, 0, 0, 1724, 1726, 3, 180, 90, 0, 1725, 1724, 1, 0, 0, 0, 1725, 1726, - 1, 0, 0, 0, 1726, 1727, 1, 0, 0, 0, 1727, 1728, 3, 424, 212, 0, 1728, 1732, - 3, 426, 213, 0, 1729, 1730, 3, 304, 152, 0, 1730, 1731, 5, 10, 0, 0, 1731, - 1733, 1, 0, 0, 0, 1732, 1729, 1, 0, 0, 0, 1732, 1733, 1, 0, 0, 0, 1733, - 1734, 1, 0, 0, 0, 1734, 1736, 3, 306, 153, 0, 1735, 1737, 3, 250, 125, - 0, 1736, 1735, 1, 0, 0, 0, 1736, 1737, 1, 0, 0, 0, 1737, 1738, 1, 0, 0, - 0, 1738, 1740, 3, 248, 124, 0, 1739, 1741, 3, 244, 122, 0, 1740, 1739, - 1, 0, 0, 0, 1740, 1741, 1, 0, 0, 0, 1741, 1743, 1, 0, 0, 0, 1742, 1744, - 3, 236, 118, 0, 1743, 1742, 1, 0, 0, 0, 1743, 1744, 1, 0, 0, 0, 1744, 235, - 1, 0, 0, 0, 1745, 1746, 3, 522, 261, 0, 1746, 1747, 3, 240, 120, 0, 1747, - 1762, 1, 0, 0, 0, 1748, 1749, 3, 522, 261, 0, 1749, 1750, 3, 240, 120, - 0, 1750, 1751, 3, 356, 178, 0, 1751, 1752, 3, 238, 119, 0, 1752, 1762, - 1, 0, 0, 0, 1753, 1754, 3, 522, 261, 0, 1754, 1755, 3, 238, 119, 0, 1755, - 1762, 1, 0, 0, 0, 1756, 1757, 3, 522, 261, 0, 1757, 1758, 3, 238, 119, - 0, 1758, 1759, 3, 356, 178, 0, 1759, 1760, 3, 240, 120, 0, 1760, 1762, - 1, 0, 0, 0, 1761, 1745, 1, 0, 0, 0, 1761, 1748, 1, 0, 0, 0, 1761, 1753, - 1, 0, 0, 0, 1761, 1756, 1, 0, 0, 0, 1762, 237, 1, 0, 0, 0, 1763, 1764, - 3, 502, 251, 0, 1764, 1765, 3, 294, 147, 0, 1765, 239, 1, 0, 0, 0, 1766, - 1767, 3, 510, 255, 0, 1767, 1768, 3, 294, 147, 0, 1768, 241, 1, 0, 0, 0, - 1769, 1770, 3, 522, 261, 0, 1770, 1771, 3, 238, 119, 0, 1771, 243, 1, 0, - 0, 0, 1772, 1773, 3, 414, 207, 0, 1773, 1774, 3, 458, 229, 0, 1774, 1775, - 3, 398, 199, 0, 1775, 245, 1, 0, 0, 0, 1776, 1777, 3, 414, 207, 0, 1777, - 1778, 3, 398, 199, 0, 1778, 247, 1, 0, 0, 0, 1779, 1780, 3, 524, 262, 0, - 1780, 1781, 5, 1, 0, 0, 1781, 1782, 3, 254, 127, 0, 1782, 1783, 5, 2, 0, - 0, 1783, 1788, 1, 0, 0, 0, 1784, 1785, 3, 430, 215, 0, 1785, 1786, 3, 292, - 146, 0, 1786, 1788, 1, 0, 0, 0, 1787, 1779, 1, 0, 0, 0, 1787, 1784, 1, - 0, 0, 0, 1788, 249, 1, 0, 0, 0, 1789, 1790, 5, 1, 0, 0, 1790, 1791, 3, - 252, 126, 0, 1791, 1792, 5, 2, 0, 0, 1792, 251, 1, 0, 0, 0, 1793, 1799, - 3, 308, 154, 0, 1794, 1795, 3, 550, 275, 0, 1795, 1796, 3, 308, 154, 0, - 1796, 1798, 1, 0, 0, 0, 1797, 1794, 1, 0, 0, 0, 1798, 1801, 1, 0, 0, 0, - 1799, 1797, 1, 0, 0, 0, 1799, 1800, 1, 0, 0, 0, 1800, 253, 1, 0, 0, 0, - 1801, 1799, 1, 0, 0, 0, 1802, 1808, 3, 256, 128, 0, 1803, 1804, 3, 550, - 275, 0, 1804, 1805, 3, 256, 128, 0, 1805, 1807, 1, 0, 0, 0, 1806, 1803, - 1, 0, 0, 0, 1807, 1810, 1, 0, 0, 0, 1808, 1806, 1, 0, 0, 0, 1808, 1809, - 1, 0, 0, 0, 1809, 255, 1, 0, 0, 0, 1810, 1808, 1, 0, 0, 0, 1811, 1818, - 3, 292, 146, 0, 1812, 1818, 3, 288, 144, 0, 1813, 1818, 3, 228, 114, 0, - 1814, 1818, 3, 226, 113, 0, 1815, 1818, 3, 230, 115, 0, 1816, 1818, 3, - 232, 116, 0, 1817, 1811, 1, 0, 0, 0, 1817, 1812, 1, 0, 0, 0, 1817, 1813, - 1, 0, 0, 0, 1817, 1814, 1, 0, 0, 0, 1817, 1815, 1, 0, 0, 0, 1817, 1816, - 1, 0, 0, 0, 1818, 257, 1, 0, 0, 0, 1819, 1821, 3, 488, 244, 0, 1820, 1822, - 3, 274, 137, 0, 1821, 1820, 1, 0, 0, 0, 1821, 1822, 1, 0, 0, 0, 1822, 1824, - 1, 0, 0, 0, 1823, 1825, 3, 430, 215, 0, 1824, 1823, 1, 0, 0, 0, 1824, 1825, - 1, 0, 0, 0, 1825, 1826, 1, 0, 0, 0, 1826, 1827, 3, 276, 138, 0, 1827, 1829, - 3, 264, 132, 0, 1828, 1830, 3, 272, 136, 0, 1829, 1828, 1, 0, 0, 0, 1829, - 1830, 1, 0, 0, 0, 1830, 1832, 1, 0, 0, 0, 1831, 1833, 3, 268, 134, 0, 1832, - 1831, 1, 0, 0, 0, 1832, 1833, 1, 0, 0, 0, 1833, 1835, 1, 0, 0, 0, 1834, - 1836, 3, 262, 131, 0, 1835, 1834, 1, 0, 0, 0, 1835, 1836, 1, 0, 0, 0, 1836, - 1838, 1, 0, 0, 0, 1837, 1839, 3, 260, 130, 0, 1838, 1837, 1, 0, 0, 0, 1838, - 1839, 1, 0, 0, 0, 1839, 259, 1, 0, 0, 0, 1840, 1841, 3, 352, 176, 0, 1841, - 1842, 3, 400, 200, 0, 1842, 261, 1, 0, 0, 0, 1843, 1844, 3, 442, 221, 0, - 1844, 1845, 3, 294, 147, 0, 1845, 263, 1, 0, 0, 0, 1846, 1847, 3, 404, - 202, 0, 1847, 1848, 3, 266, 133, 0, 1848, 265, 1, 0, 0, 0, 1849, 1854, - 5, 170, 0, 0, 1850, 1851, 5, 170, 0, 0, 1851, 1852, 5, 10, 0, 0, 1852, - 1854, 5, 170, 0, 0, 1853, 1849, 1, 0, 0, 0, 1853, 1850, 1, 0, 0, 0, 1854, - 267, 1, 0, 0, 0, 1855, 1856, 3, 470, 235, 0, 1856, 1857, 3, 370, 185, 0, - 1857, 1858, 3, 270, 135, 0, 1858, 269, 1, 0, 0, 0, 1859, 1862, 5, 170, - 0, 0, 1860, 1863, 3, 362, 181, 0, 1861, 1863, 3, 384, 192, 0, 1862, 1860, - 1, 0, 0, 0, 1862, 1861, 1, 0, 0, 0, 1862, 1863, 1, 0, 0, 0, 1863, 271, - 1, 0, 0, 0, 1864, 1865, 3, 528, 264, 0, 1865, 1866, 3, 280, 140, 0, 1866, - 273, 1, 0, 0, 0, 1867, 1868, 3, 388, 194, 0, 1868, 275, 1, 0, 0, 0, 1869, - 1872, 5, 11, 0, 0, 1870, 1872, 3, 278, 139, 0, 1871, 1869, 1, 0, 0, 0, - 1871, 1870, 1, 0, 0, 0, 1872, 1878, 1, 0, 0, 0, 1873, 1874, 3, 550, 275, - 0, 1874, 1875, 3, 278, 139, 0, 1875, 1877, 1, 0, 0, 0, 1876, 1873, 1, 0, - 0, 0, 1877, 1880, 1, 0, 0, 0, 1878, 1876, 1, 0, 0, 0, 1878, 1879, 1, 0, - 0, 0, 1879, 277, 1, 0, 0, 0, 1880, 1878, 1, 0, 0, 0, 1881, 1882, 5, 170, - 0, 0, 1882, 1883, 5, 10, 0, 0, 1883, 1897, 5, 11, 0, 0, 1884, 1888, 5, - 170, 0, 0, 1885, 1886, 3, 360, 180, 0, 1886, 1887, 5, 170, 0, 0, 1887, - 1889, 1, 0, 0, 0, 1888, 1885, 1, 0, 0, 0, 1888, 1889, 1, 0, 0, 0, 1889, - 1897, 1, 0, 0, 0, 1890, 1894, 3, 288, 144, 0, 1891, 1892, 3, 360, 180, - 0, 1892, 1893, 5, 170, 0, 0, 1893, 1895, 1, 0, 0, 0, 1894, 1891, 1, 0, - 0, 0, 1894, 1895, 1, 0, 0, 0, 1895, 1897, 1, 0, 0, 0, 1896, 1881, 1, 0, - 0, 0, 1896, 1884, 1, 0, 0, 0, 1896, 1890, 1, 0, 0, 0, 1897, 279, 1, 0, - 0, 0, 1898, 1904, 3, 282, 141, 0, 1899, 1900, 3, 356, 178, 0, 1900, 1901, - 3, 282, 141, 0, 1901, 1903, 1, 0, 0, 0, 1902, 1899, 1, 0, 0, 0, 1903, 1906, - 1, 0, 0, 0, 1904, 1902, 1, 0, 0, 0, 1904, 1905, 1, 0, 0, 0, 1905, 281, - 1, 0, 0, 0, 1906, 1904, 1, 0, 0, 0, 1907, 1908, 5, 170, 0, 0, 1908, 1909, - 7, 2, 0, 0, 1909, 1979, 3, 292, 146, 0, 1910, 1911, 5, 170, 0, 0, 1911, - 1912, 5, 10, 0, 0, 1912, 1913, 5, 170, 0, 0, 1913, 1914, 7, 2, 0, 0, 1914, - 1979, 3, 292, 146, 0, 1915, 1916, 3, 288, 144, 0, 1916, 1917, 7, 2, 0, - 0, 1917, 1918, 3, 292, 146, 0, 1918, 1979, 1, 0, 0, 0, 1919, 1920, 3, 288, - 144, 0, 1920, 1921, 7, 2, 0, 0, 1921, 1922, 3, 288, 144, 0, 1922, 1979, - 1, 0, 0, 0, 1923, 1924, 5, 170, 0, 0, 1924, 1925, 3, 416, 208, 0, 1925, - 1927, 5, 1, 0, 0, 1926, 1928, 3, 290, 145, 0, 1927, 1926, 1, 0, 0, 0, 1927, - 1928, 1, 0, 0, 0, 1928, 1929, 1, 0, 0, 0, 1929, 1930, 5, 2, 0, 0, 1930, - 1979, 1, 0, 0, 0, 1931, 1932, 5, 1, 0, 0, 1932, 1938, 5, 170, 0, 0, 1933, - 1934, 3, 550, 275, 0, 1934, 1935, 5, 170, 0, 0, 1935, 1937, 1, 0, 0, 0, - 1936, 1933, 1, 0, 0, 0, 1937, 1940, 1, 0, 0, 0, 1938, 1936, 1, 0, 0, 0, - 1938, 1939, 1, 0, 0, 0, 1939, 1941, 1, 0, 0, 0, 1940, 1938, 1, 0, 0, 0, - 1941, 1942, 5, 2, 0, 0, 1942, 1943, 3, 416, 208, 0, 1943, 1944, 5, 1, 0, - 0, 1944, 1950, 3, 232, 116, 0, 1945, 1946, 3, 550, 275, 0, 1946, 1947, - 3, 232, 116, 0, 1947, 1949, 1, 0, 0, 0, 1948, 1945, 1, 0, 0, 0, 1949, 1952, - 1, 0, 0, 0, 1950, 1948, 1, 0, 0, 0, 1950, 1951, 1, 0, 0, 0, 1951, 1953, - 1, 0, 0, 0, 1952, 1950, 1, 0, 0, 0, 1953, 1954, 5, 2, 0, 0, 1954, 1979, - 1, 0, 0, 0, 1955, 1956, 5, 1, 0, 0, 1956, 1962, 5, 170, 0, 0, 1957, 1958, - 3, 550, 275, 0, 1958, 1959, 5, 170, 0, 0, 1959, 1961, 1, 0, 0, 0, 1960, - 1957, 1, 0, 0, 0, 1961, 1964, 1, 0, 0, 0, 1962, 1960, 1, 0, 0, 0, 1962, - 1963, 1, 0, 0, 0, 1963, 1965, 1, 0, 0, 0, 1964, 1962, 1, 0, 0, 0, 1965, - 1966, 5, 2, 0, 0, 1966, 1967, 7, 2, 0, 0, 1967, 1973, 3, 232, 116, 0, 1968, - 1969, 3, 550, 275, 0, 1969, 1970, 3, 232, 116, 0, 1970, 1972, 1, 0, 0, - 0, 1971, 1968, 1, 0, 0, 0, 1972, 1975, 1, 0, 0, 0, 1973, 1971, 1, 0, 0, - 0, 1973, 1974, 1, 0, 0, 0, 1974, 1979, 1, 0, 0, 0, 1975, 1973, 1, 0, 0, - 0, 1976, 1979, 3, 286, 143, 0, 1977, 1979, 3, 284, 142, 0, 1978, 1907, - 1, 0, 0, 0, 1978, 1910, 1, 0, 0, 0, 1978, 1915, 1, 0, 0, 0, 1978, 1919, - 1, 0, 0, 0, 1978, 1923, 1, 0, 0, 0, 1978, 1931, 1, 0, 0, 0, 1978, 1955, - 1, 0, 0, 0, 1978, 1976, 1, 0, 0, 0, 1978, 1977, 1, 0, 0, 0, 1979, 283, - 1, 0, 0, 0, 1980, 1981, 5, 170, 0, 0, 1981, 1982, 3, 378, 189, 0, 1982, - 1983, 3, 292, 146, 0, 1983, 285, 1, 0, 0, 0, 1984, 1985, 5, 170, 0, 0, - 1985, 1986, 3, 378, 189, 0, 1986, 1987, 3, 432, 216, 0, 1987, 1988, 1, - 0, 0, 0, 1988, 1989, 3, 292, 146, 0, 1989, 287, 1, 0, 0, 0, 1990, 1991, - 5, 170, 0, 0, 1991, 1992, 5, 1, 0, 0, 1992, 1993, 5, 11, 0, 0, 1993, 2004, - 5, 2, 0, 0, 1994, 1995, 5, 170, 0, 0, 1995, 1997, 5, 1, 0, 0, 1996, 1998, - 3, 290, 145, 0, 1997, 1996, 1, 0, 0, 0, 1997, 1998, 1, 0, 0, 0, 1998, 1999, - 1, 0, 0, 0, 1999, 2004, 5, 2, 0, 0, 2000, 2001, 5, 136, 0, 0, 2001, 2002, - 5, 1, 0, 0, 2002, 2004, 5, 2, 0, 0, 2003, 1990, 1, 0, 0, 0, 2003, 1994, - 1, 0, 0, 0, 2003, 2000, 1, 0, 0, 0, 2004, 289, 1, 0, 0, 0, 2005, 2009, - 3, 292, 146, 0, 2006, 2009, 5, 170, 0, 0, 2007, 2009, 3, 288, 144, 0, 2008, - 2005, 1, 0, 0, 0, 2008, 2006, 1, 0, 0, 0, 2008, 2007, 1, 0, 0, 0, 2009, - 2018, 1, 0, 0, 0, 2010, 2014, 3, 550, 275, 0, 2011, 2015, 3, 292, 146, - 0, 2012, 2015, 5, 170, 0, 0, 2013, 2015, 3, 288, 144, 0, 2014, 2011, 1, - 0, 0, 0, 2014, 2012, 1, 0, 0, 0, 2014, 2013, 1, 0, 0, 0, 2015, 2017, 1, - 0, 0, 0, 2016, 2010, 1, 0, 0, 0, 2017, 2020, 1, 0, 0, 0, 2018, 2016, 1, - 0, 0, 0, 2018, 2019, 1, 0, 0, 0, 2019, 291, 1, 0, 0, 0, 2020, 2018, 1, - 0, 0, 0, 2021, 2030, 5, 171, 0, 0, 2022, 2030, 3, 298, 149, 0, 2023, 2030, - 3, 294, 147, 0, 2024, 2030, 3, 296, 148, 0, 2025, 2030, 3, 302, 151, 0, - 2026, 2030, 3, 300, 150, 0, 2027, 2030, 3, 46, 23, 0, 2028, 2030, 3, 460, - 230, 0, 2029, 2021, 1, 0, 0, 0, 2029, 2022, 1, 0, 0, 0, 2029, 2023, 1, - 0, 0, 0, 2029, 2024, 1, 0, 0, 0, 2029, 2025, 1, 0, 0, 0, 2029, 2026, 1, - 0, 0, 0, 2029, 2027, 1, 0, 0, 0, 2029, 2028, 1, 0, 0, 0, 2030, 293, 1, - 0, 0, 0, 2031, 2032, 5, 166, 0, 0, 2032, 295, 1, 0, 0, 0, 2033, 2034, 7, - 3, 0, 0, 2034, 297, 1, 0, 0, 0, 2035, 2036, 5, 165, 0, 0, 2036, 299, 1, - 0, 0, 0, 2037, 2038, 7, 4, 0, 0, 2038, 301, 1, 0, 0, 0, 2039, 2040, 5, - 168, 0, 0, 2040, 303, 1, 0, 0, 0, 2041, 2046, 5, 170, 0, 0, 2042, 2043, - 5, 17, 0, 0, 2043, 2044, 5, 170, 0, 0, 2044, 2046, 5, 17, 0, 0, 2045, 2041, - 1, 0, 0, 0, 2045, 2042, 1, 0, 0, 0, 2046, 305, 1, 0, 0, 0, 2047, 2052, - 5, 170, 0, 0, 2048, 2049, 5, 17, 0, 0, 2049, 2050, 5, 170, 0, 0, 2050, - 2052, 5, 17, 0, 0, 2051, 2047, 1, 0, 0, 0, 2051, 2048, 1, 0, 0, 0, 2052, - 307, 1, 0, 0, 0, 2053, 2058, 5, 170, 0, 0, 2054, 2055, 5, 17, 0, 0, 2055, - 2056, 5, 170, 0, 0, 2056, 2058, 5, 17, 0, 0, 2057, 2053, 1, 0, 0, 0, 2057, - 2054, 1, 0, 0, 0, 2058, 309, 1, 0, 0, 0, 2059, 2061, 3, 312, 156, 0, 2060, - 2062, 3, 314, 157, 0, 2061, 2060, 1, 0, 0, 0, 2061, 2062, 1, 0, 0, 0, 2062, - 311, 1, 0, 0, 0, 2063, 2064, 7, 5, 0, 0, 2064, 313, 1, 0, 0, 0, 2065, 2066, - 3, 542, 271, 0, 2066, 2072, 3, 312, 156, 0, 2067, 2068, 3, 550, 275, 0, - 2068, 2069, 3, 312, 156, 0, 2069, 2071, 1, 0, 0, 0, 2070, 2067, 1, 0, 0, - 0, 2071, 2074, 1, 0, 0, 0, 2072, 2070, 1, 0, 0, 0, 2072, 2073, 1, 0, 0, - 0, 2073, 2075, 1, 0, 0, 0, 2074, 2072, 1, 0, 0, 0, 2075, 2076, 3, 544, - 272, 0, 2076, 315, 1, 0, 0, 0, 2077, 2080, 3, 362, 181, 0, 2078, 2080, - 3, 384, 192, 0, 2079, 2077, 1, 0, 0, 0, 2079, 2078, 1, 0, 0, 0, 2080, 317, - 1, 0, 0, 0, 2081, 2082, 5, 170, 0, 0, 2082, 319, 1, 0, 0, 0, 2083, 2084, - 5, 170, 0, 0, 2084, 321, 1, 0, 0, 0, 2085, 2086, 3, 298, 149, 0, 2086, - 323, 1, 0, 0, 0, 2087, 2088, 5, 170, 0, 0, 2088, 325, 1, 0, 0, 0, 2089, - 2090, 5, 170, 0, 0, 2090, 327, 1, 0, 0, 0, 2091, 2092, 5, 170, 0, 0, 2092, - 329, 1, 0, 0, 0, 2093, 2094, 5, 170, 0, 0, 2094, 331, 1, 0, 0, 0, 2095, - 2096, 5, 170, 0, 0, 2096, 333, 1, 0, 0, 0, 2097, 2098, 5, 170, 0, 0, 2098, - 335, 1, 0, 0, 0, 2099, 2100, 3, 298, 149, 0, 2100, 337, 1, 0, 0, 0, 2101, - 2102, 5, 170, 0, 0, 2102, 339, 1, 0, 0, 0, 2103, 2104, 3, 342, 171, 0, - 2104, 2105, 3, 310, 155, 0, 2105, 341, 1, 0, 0, 0, 2106, 2107, 7, 6, 0, - 0, 2107, 343, 1, 0, 0, 0, 2108, 2109, 5, 24, 0, 0, 2109, 345, 1, 0, 0, - 0, 2110, 2111, 5, 25, 0, 0, 2111, 347, 1, 0, 0, 0, 2112, 2113, 5, 26, 0, - 0, 2113, 349, 1, 0, 0, 0, 2114, 2115, 5, 26, 0, 0, 2115, 2116, 5, 102, - 0, 0, 2116, 351, 1, 0, 0, 0, 2117, 2118, 5, 27, 0, 0, 2118, 353, 1, 0, - 0, 0, 2119, 2120, 5, 28, 0, 0, 2120, 355, 1, 0, 0, 0, 2121, 2122, 5, 29, - 0, 0, 2122, 357, 1, 0, 0, 0, 2123, 2124, 5, 31, 0, 0, 2124, 359, 1, 0, - 0, 0, 2125, 2126, 5, 32, 0, 0, 2126, 361, 1, 0, 0, 0, 2127, 2128, 5, 33, - 0, 0, 2128, 363, 1, 0, 0, 0, 2129, 2130, 5, 34, 0, 0, 2130, 365, 1, 0, - 0, 0, 2131, 2132, 5, 35, 0, 0, 2132, 367, 1, 0, 0, 0, 2133, 2134, 5, 36, - 0, 0, 2134, 369, 1, 0, 0, 0, 2135, 2136, 5, 37, 0, 0, 2136, 371, 1, 0, - 0, 0, 2137, 2138, 5, 38, 0, 0, 2138, 373, 1, 0, 0, 0, 2139, 2140, 5, 39, - 0, 0, 2140, 375, 1, 0, 0, 0, 2141, 2142, 5, 41, 0, 0, 2142, 377, 1, 0, - 0, 0, 2143, 2144, 5, 43, 0, 0, 2144, 379, 1, 0, 0, 0, 2145, 2146, 5, 44, - 0, 0, 2146, 381, 1, 0, 0, 0, 2147, 2148, 5, 46, 0, 0, 2148, 383, 1, 0, - 0, 0, 2149, 2150, 5, 47, 0, 0, 2150, 385, 1, 0, 0, 0, 2151, 2152, 5, 48, - 0, 0, 2152, 387, 1, 0, 0, 0, 2153, 2154, 5, 49, 0, 0, 2154, 389, 1, 0, - 0, 0, 2155, 2156, 5, 50, 0, 0, 2156, 391, 1, 0, 0, 0, 2157, 2158, 5, 51, - 0, 0, 2158, 393, 1, 0, 0, 0, 2159, 2160, 5, 53, 0, 0, 2160, 395, 1, 0, - 0, 0, 2161, 2162, 5, 54, 0, 0, 2162, 397, 1, 0, 0, 0, 2163, 2164, 5, 55, - 0, 0, 2164, 399, 1, 0, 0, 0, 2165, 2166, 5, 57, 0, 0, 2166, 401, 1, 0, - 0, 0, 2167, 2168, 5, 58, 0, 0, 2168, 403, 1, 0, 0, 0, 2169, 2170, 5, 59, - 0, 0, 2170, 405, 1, 0, 0, 0, 2171, 2172, 5, 60, 0, 0, 2172, 407, 1, 0, - 0, 0, 2173, 2174, 5, 61, 0, 0, 2174, 409, 1, 0, 0, 0, 2175, 2176, 5, 62, - 0, 0, 2176, 411, 1, 0, 0, 0, 2177, 2178, 5, 63, 0, 0, 2178, 413, 1, 0, - 0, 0, 2179, 2180, 5, 64, 0, 0, 2180, 415, 1, 0, 0, 0, 2181, 2182, 5, 65, - 0, 0, 2182, 417, 1, 0, 0, 0, 2183, 2184, 5, 66, 0, 0, 2184, 419, 1, 0, - 0, 0, 2185, 2186, 5, 68, 0, 0, 2186, 421, 1, 0, 0, 0, 2187, 2188, 5, 69, - 0, 0, 2188, 423, 1, 0, 0, 0, 2189, 2190, 5, 70, 0, 0, 2190, 425, 1, 0, - 0, 0, 2191, 2192, 5, 71, 0, 0, 2192, 427, 1, 0, 0, 0, 2193, 2194, 5, 72, - 0, 0, 2194, 429, 1, 0, 0, 0, 2195, 2196, 5, 73, 0, 0, 2196, 431, 1, 0, - 0, 0, 2197, 2198, 5, 74, 0, 0, 2198, 433, 1, 0, 0, 0, 2199, 2200, 5, 75, - 0, 0, 2200, 435, 1, 0, 0, 0, 2201, 2202, 5, 76, 0, 0, 2202, 437, 1, 0, - 0, 0, 2203, 2204, 5, 77, 0, 0, 2204, 439, 1, 0, 0, 0, 2205, 2206, 5, 78, - 0, 0, 2206, 441, 1, 0, 0, 0, 2207, 2208, 5, 80, 0, 0, 2208, 443, 1, 0, - 0, 0, 2209, 2210, 5, 154, 0, 0, 2210, 445, 1, 0, 0, 0, 2211, 2212, 5, 83, - 0, 0, 2212, 447, 1, 0, 0, 0, 2213, 2214, 5, 84, 0, 0, 2214, 449, 1, 0, - 0, 0, 2215, 2216, 5, 85, 0, 0, 2216, 451, 1, 0, 0, 0, 2217, 2218, 5, 86, - 0, 0, 2218, 453, 1, 0, 0, 0, 2219, 2220, 5, 89, 0, 0, 2220, 455, 1, 0, - 0, 0, 2221, 2222, 5, 88, 0, 0, 2222, 457, 1, 0, 0, 0, 2223, 2224, 5, 90, - 0, 0, 2224, 459, 1, 0, 0, 0, 2225, 2226, 5, 91, 0, 0, 2226, 461, 1, 0, - 0, 0, 2227, 2228, 5, 92, 0, 0, 2228, 463, 1, 0, 0, 0, 2229, 2230, 5, 93, - 0, 0, 2230, 465, 1, 0, 0, 0, 2231, 2232, 5, 95, 0, 0, 2232, 467, 1, 0, - 0, 0, 2233, 2234, 5, 96, 0, 0, 2234, 469, 1, 0, 0, 0, 2235, 2236, 5, 97, - 0, 0, 2236, 471, 1, 0, 0, 0, 2237, 2238, 5, 99, 0, 0, 2238, 473, 1, 0, - 0, 0, 2239, 2240, 5, 103, 0, 0, 2240, 475, 1, 0, 0, 0, 2241, 2242, 5, 105, - 0, 0, 2242, 477, 1, 0, 0, 0, 2243, 2244, 5, 106, 0, 0, 2244, 479, 1, 0, - 0, 0, 2245, 2246, 5, 107, 0, 0, 2246, 481, 1, 0, 0, 0, 2247, 2248, 5, 108, - 0, 0, 2248, 483, 1, 0, 0, 0, 2249, 2250, 5, 110, 0, 0, 2250, 485, 1, 0, - 0, 0, 2251, 2252, 5, 111, 0, 0, 2252, 487, 1, 0, 0, 0, 2253, 2254, 5, 113, - 0, 0, 2254, 489, 1, 0, 0, 0, 2255, 2256, 5, 114, 0, 0, 2256, 491, 1, 0, - 0, 0, 2257, 2258, 5, 115, 0, 0, 2258, 493, 1, 0, 0, 0, 2259, 2260, 5, 117, - 0, 0, 2260, 495, 1, 0, 0, 0, 2261, 2262, 5, 118, 0, 0, 2262, 497, 1, 0, - 0, 0, 2263, 2264, 5, 119, 0, 0, 2264, 499, 1, 0, 0, 0, 2265, 2266, 5, 120, - 0, 0, 2266, 501, 1, 0, 0, 0, 2267, 2268, 5, 122, 0, 0, 2268, 503, 1, 0, - 0, 0, 2269, 2270, 5, 123, 0, 0, 2270, 505, 1, 0, 0, 0, 2271, 2272, 5, 125, - 0, 0, 2272, 507, 1, 0, 0, 0, 2273, 2274, 5, 127, 0, 0, 2274, 509, 1, 0, - 0, 0, 2275, 2276, 5, 128, 0, 0, 2276, 511, 1, 0, 0, 0, 2277, 2278, 5, 130, - 0, 0, 2278, 513, 1, 0, 0, 0, 2279, 2280, 5, 131, 0, 0, 2280, 515, 1, 0, - 0, 0, 2281, 2282, 5, 132, 0, 0, 2282, 517, 1, 0, 0, 0, 2283, 2284, 5, 133, - 0, 0, 2284, 519, 1, 0, 0, 0, 2285, 2286, 5, 134, 0, 0, 2286, 521, 1, 0, - 0, 0, 2287, 2288, 5, 135, 0, 0, 2288, 523, 1, 0, 0, 0, 2289, 2290, 5, 137, - 0, 0, 2290, 525, 1, 0, 0, 0, 2291, 2292, 5, 138, 0, 0, 2292, 527, 1, 0, - 0, 0, 2293, 2294, 5, 139, 0, 0, 2294, 529, 1, 0, 0, 0, 2295, 2296, 5, 140, - 0, 0, 2296, 531, 1, 0, 0, 0, 2297, 2298, 5, 109, 0, 0, 2298, 533, 1, 0, - 0, 0, 2299, 2300, 5, 1, 0, 0, 2300, 535, 1, 0, 0, 0, 2301, 2302, 5, 2, - 0, 0, 2302, 537, 1, 0, 0, 0, 2303, 2304, 5, 3, 0, 0, 2304, 539, 1, 0, 0, - 0, 2305, 2306, 5, 4, 0, 0, 2306, 541, 1, 0, 0, 0, 2307, 2308, 5, 20, 0, - 0, 2308, 543, 1, 0, 0, 0, 2309, 2310, 5, 21, 0, 0, 2310, 545, 1, 0, 0, - 0, 2311, 2312, 5, 5, 0, 0, 2312, 547, 1, 0, 0, 0, 2313, 2314, 5, 6, 0, - 0, 2314, 549, 1, 0, 0, 0, 2315, 2316, 5, 7, 0, 0, 2316, 551, 1, 0, 0, 0, - 2317, 2318, 5, 9, 0, 0, 2318, 553, 1, 0, 0, 0, 178, 555, 558, 564, 569, - 571, 576, 579, 582, 625, 639, 642, 649, 654, 665, 675, 690, 701, 706, 715, - 720, 728, 733, 737, 742, 747, 762, 768, 773, 783, 788, 798, 810, 817, 825, - 839, 844, 856, 860, 864, 869, 874, 893, 900, 908, 912, 917, 936, 945, 960, - 962, 974, 988, 995, 1002, 1010, 1021, 1037, 1050, 1060, 1083, 1097, 1104, - 1113, 1132, 1140, 1146, 1151, 1158, 1163, 1171, 1176, 1183, 1188, 1195, - 1200, 1207, 1214, 1221, 1228, 1233, 1240, 1247, 1252, 1259, 1264, 1271, - 1281, 1287, 1295, 1298, 1306, 1311, 1315, 1328, 1334, 1343, 1356, 1364, - 1370, 1375, 1389, 1409, 1418, 1430, 1434, 1438, 1452, 1460, 1469, 1480, - 1485, 1492, 1495, 1501, 1510, 1516, 1534, 1538, 1542, 1547, 1555, 1563, - 1567, 1570, 1576, 1580, 1587, 1598, 1611, 1620, 1667, 1676, 1679, 1695, - 1707, 1719, 1725, 1732, 1736, 1740, 1743, 1761, 1787, 1799, 1808, 1817, - 1821, 1824, 1829, 1832, 1835, 1838, 1853, 1862, 1871, 1878, 1888, 1894, - 1896, 1904, 1927, 1938, 1950, 1962, 1973, 1978, 1997, 2003, 2008, 2014, - 2018, 2029, 2045, 2051, 2057, 2061, 2072, 2079, + 0, 1222, 1223, 1, 0, 0, 0, 1223, 1224, 3, 326, 163, 0, 1224, 1228, 3, 478, + 239, 0, 1225, 1226, 3, 310, 155, 0, 1226, 1227, 5, 10, 0, 0, 1227, 1229, + 1, 0, 0, 0, 1228, 1225, 1, 0, 0, 0, 1228, 1229, 1, 0, 0, 0, 1229, 1230, + 1, 0, 0, 0, 1230, 1231, 3, 312, 156, 0, 1231, 123, 1, 0, 0, 0, 1232, 1233, + 3, 404, 202, 0, 1233, 1235, 3, 498, 249, 0, 1234, 1236, 3, 246, 123, 0, + 1235, 1234, 1, 0, 0, 0, 1235, 1236, 1, 0, 0, 0, 1236, 1237, 1, 0, 0, 0, + 1237, 1238, 3, 324, 162, 0, 1238, 125, 1, 0, 0, 0, 1239, 1240, 3, 404, + 202, 0, 1240, 1242, 3, 514, 257, 0, 1241, 1243, 3, 246, 123, 0, 1242, 1241, + 1, 0, 0, 0, 1242, 1243, 1, 0, 0, 0, 1243, 1247, 1, 0, 0, 0, 1244, 1245, + 3, 310, 155, 0, 1245, 1246, 5, 10, 0, 0, 1246, 1248, 1, 0, 0, 0, 1247, + 1244, 1, 0, 0, 0, 1247, 1248, 1, 0, 0, 0, 1248, 1249, 1, 0, 0, 0, 1249, + 1250, 3, 312, 156, 0, 1250, 127, 1, 0, 0, 0, 1251, 1252, 3, 404, 202, 0, + 1252, 1254, 3, 450, 225, 0, 1253, 1255, 3, 246, 123, 0, 1254, 1253, 1, + 0, 0, 0, 1254, 1255, 1, 0, 0, 0, 1255, 1256, 1, 0, 0, 0, 1256, 1257, 3, + 310, 155, 0, 1257, 129, 1, 0, 0, 0, 1258, 1259, 3, 404, 202, 0, 1259, 1261, + 3, 432, 216, 0, 1260, 1262, 3, 246, 123, 0, 1261, 1260, 1, 0, 0, 0, 1261, + 1262, 1, 0, 0, 0, 1262, 1266, 1, 0, 0, 0, 1263, 1264, 3, 310, 155, 0, 1264, + 1265, 5, 10, 0, 0, 1265, 1267, 1, 0, 0, 0, 1266, 1263, 1, 0, 0, 0, 1266, + 1267, 1, 0, 0, 0, 1267, 1268, 1, 0, 0, 0, 1268, 1269, 3, 202, 101, 0, 1269, + 131, 1, 0, 0, 0, 1270, 1271, 3, 386, 193, 0, 1271, 1273, 3, 514, 257, 0, + 1272, 1274, 3, 244, 122, 0, 1273, 1272, 1, 0, 0, 0, 1273, 1274, 1, 0, 0, + 0, 1274, 1278, 1, 0, 0, 0, 1275, 1276, 3, 310, 155, 0, 1276, 1277, 5, 10, + 0, 0, 1277, 1279, 1, 0, 0, 0, 1278, 1275, 1, 0, 0, 0, 1278, 1279, 1, 0, + 0, 0, 1279, 1280, 1, 0, 0, 0, 1280, 1281, 3, 312, 156, 0, 1281, 1282, 3, + 548, 274, 0, 1282, 1283, 3, 154, 77, 0, 1283, 1285, 3, 550, 275, 0, 1284, + 1286, 3, 134, 67, 0, 1285, 1284, 1, 0, 0, 0, 1285, 1286, 1, 0, 0, 0, 1286, + 133, 1, 0, 0, 0, 1287, 1288, 3, 544, 272, 0, 1288, 1289, 3, 136, 68, 0, + 1289, 135, 1, 0, 0, 0, 1290, 1291, 3, 382, 191, 0, 1291, 1295, 3, 508, + 254, 0, 1292, 1293, 3, 362, 181, 0, 1293, 1294, 3, 136, 68, 0, 1294, 1296, + 1, 0, 0, 0, 1295, 1292, 1, 0, 0, 0, 1295, 1296, 1, 0, 0, 0, 1296, 1313, + 1, 0, 0, 0, 1297, 1301, 3, 138, 69, 0, 1298, 1299, 3, 362, 181, 0, 1299, + 1300, 3, 136, 68, 0, 1300, 1302, 1, 0, 0, 0, 1301, 1298, 1, 0, 0, 0, 1301, + 1302, 1, 0, 0, 0, 1302, 1313, 1, 0, 0, 0, 1303, 1309, 3, 140, 70, 0, 1304, + 1305, 3, 362, 181, 0, 1305, 1306, 3, 140, 70, 0, 1306, 1308, 1, 0, 0, 0, + 1307, 1304, 1, 0, 0, 0, 1308, 1311, 1, 0, 0, 0, 1309, 1307, 1, 0, 0, 0, + 1309, 1310, 1, 0, 0, 0, 1310, 1313, 1, 0, 0, 0, 1311, 1309, 1, 0, 0, 0, + 1312, 1290, 1, 0, 0, 0, 1312, 1297, 1, 0, 0, 0, 1312, 1303, 1, 0, 0, 0, + 1313, 137, 1, 0, 0, 0, 1314, 1315, 3, 380, 190, 0, 1315, 1316, 3, 484, + 242, 0, 1316, 1317, 3, 376, 188, 0, 1317, 1318, 3, 548, 274, 0, 1318, 1320, + 3, 314, 157, 0, 1319, 1321, 3, 322, 161, 0, 1320, 1319, 1, 0, 0, 0, 1320, + 1321, 1, 0, 0, 0, 1321, 1329, 1, 0, 0, 0, 1322, 1323, 3, 564, 282, 0, 1323, + 1325, 3, 314, 157, 0, 1324, 1326, 3, 322, 161, 0, 1325, 1324, 1, 0, 0, + 0, 1325, 1326, 1, 0, 0, 0, 1326, 1328, 1, 0, 0, 0, 1327, 1322, 1, 0, 0, + 0, 1328, 1331, 1, 0, 0, 0, 1329, 1327, 1, 0, 0, 0, 1329, 1330, 1, 0, 0, + 0, 1330, 1332, 1, 0, 0, 0, 1331, 1329, 1, 0, 0, 0, 1332, 1333, 3, 550, + 275, 0, 1333, 139, 1, 0, 0, 0, 1334, 1335, 3, 142, 71, 0, 1335, 1336, 5, + 19, 0, 0, 1336, 1337, 3, 144, 72, 0, 1337, 1343, 1, 0, 0, 0, 1338, 1339, + 3, 142, 71, 0, 1339, 1340, 5, 19, 0, 0, 1340, 1341, 3, 146, 73, 0, 1341, + 1343, 1, 0, 0, 0, 1342, 1334, 1, 0, 0, 0, 1342, 1338, 1, 0, 0, 0, 1343, + 141, 1, 0, 0, 0, 1344, 1345, 5, 187, 0, 0, 1345, 143, 1, 0, 0, 0, 1346, + 1349, 3, 304, 152, 0, 1347, 1349, 3, 302, 151, 0, 1348, 1346, 1, 0, 0, + 0, 1348, 1347, 1, 0, 0, 0, 1349, 145, 1, 0, 0, 0, 1350, 1351, 3, 552, 276, + 0, 1351, 1357, 3, 148, 74, 0, 1352, 1353, 3, 564, 282, 0, 1353, 1354, 3, + 148, 74, 0, 1354, 1356, 1, 0, 0, 0, 1355, 1352, 1, 0, 0, 0, 1356, 1359, + 1, 0, 0, 0, 1357, 1355, 1, 0, 0, 0, 1357, 1358, 1, 0, 0, 0, 1358, 1360, + 1, 0, 0, 0, 1359, 1357, 1, 0, 0, 0, 1360, 1361, 3, 554, 277, 0, 1361, 147, + 1, 0, 0, 0, 1362, 1363, 3, 150, 75, 0, 1363, 1364, 5, 9, 0, 0, 1364, 1365, + 3, 152, 76, 0, 1365, 149, 1, 0, 0, 0, 1366, 1367, 3, 304, 152, 0, 1367, + 151, 1, 0, 0, 0, 1368, 1371, 3, 304, 152, 0, 1369, 1371, 3, 302, 151, 0, + 1370, 1368, 1, 0, 0, 0, 1370, 1369, 1, 0, 0, 0, 1371, 153, 1, 0, 0, 0, + 1372, 1378, 3, 156, 78, 0, 1373, 1374, 3, 564, 282, 0, 1374, 1375, 3, 156, + 78, 0, 1375, 1377, 1, 0, 0, 0, 1376, 1373, 1, 0, 0, 0, 1377, 1380, 1, 0, + 0, 0, 1378, 1376, 1, 0, 0, 0, 1378, 1379, 1, 0, 0, 0, 1379, 1384, 1, 0, + 0, 0, 1380, 1378, 1, 0, 0, 0, 1381, 1382, 3, 564, 282, 0, 1382, 1383, 3, + 160, 80, 0, 1383, 1385, 1, 0, 0, 0, 1384, 1381, 1, 0, 0, 0, 1384, 1385, + 1, 0, 0, 0, 1385, 155, 1, 0, 0, 0, 1386, 1387, 3, 314, 157, 0, 1387, 1389, + 3, 316, 158, 0, 1388, 1390, 3, 158, 79, 0, 1389, 1388, 1, 0, 0, 0, 1389, + 1390, 1, 0, 0, 0, 1390, 157, 1, 0, 0, 0, 1391, 1392, 3, 488, 244, 0, 1392, + 1393, 3, 446, 223, 0, 1393, 159, 1, 0, 0, 0, 1394, 1395, 3, 488, 244, 0, + 1395, 1396, 3, 446, 223, 0, 1396, 1397, 3, 548, 274, 0, 1397, 1398, 3, + 162, 81, 0, 1398, 1399, 3, 550, 275, 0, 1399, 161, 1, 0, 0, 0, 1400, 1404, + 3, 164, 82, 0, 1401, 1404, 3, 166, 83, 0, 1402, 1404, 3, 168, 84, 0, 1403, + 1400, 1, 0, 0, 0, 1403, 1401, 1, 0, 0, 0, 1403, 1402, 1, 0, 0, 0, 1404, + 163, 1, 0, 0, 0, 1405, 1406, 3, 314, 157, 0, 1406, 165, 1, 0, 0, 0, 1407, + 1408, 3, 174, 87, 0, 1408, 1409, 3, 564, 282, 0, 1409, 1410, 3, 172, 86, + 0, 1410, 167, 1, 0, 0, 0, 1411, 1412, 3, 548, 274, 0, 1412, 1413, 3, 170, + 85, 0, 1413, 1414, 3, 550, 275, 0, 1414, 1415, 3, 564, 282, 0, 1415, 1416, + 3, 172, 86, 0, 1416, 169, 1, 0, 0, 0, 1417, 1423, 3, 174, 87, 0, 1418, + 1419, 3, 564, 282, 0, 1419, 1420, 3, 174, 87, 0, 1420, 1422, 1, 0, 0, 0, + 1421, 1418, 1, 0, 0, 0, 1422, 1425, 1, 0, 0, 0, 1423, 1421, 1, 0, 0, 0, + 1423, 1424, 1, 0, 0, 0, 1424, 171, 1, 0, 0, 0, 1425, 1423, 1, 0, 0, 0, + 1426, 1432, 3, 176, 88, 0, 1427, 1428, 3, 564, 282, 0, 1428, 1429, 3, 176, + 88, 0, 1429, 1431, 1, 0, 0, 0, 1430, 1427, 1, 0, 0, 0, 1431, 1434, 1, 0, + 0, 0, 1432, 1430, 1, 0, 0, 0, 1432, 1433, 1, 0, 0, 0, 1433, 173, 1, 0, + 0, 0, 1434, 1432, 1, 0, 0, 0, 1435, 1436, 3, 314, 157, 0, 1436, 175, 1, + 0, 0, 0, 1437, 1438, 3, 314, 157, 0, 1438, 177, 1, 0, 0, 0, 1439, 1440, + 3, 364, 182, 0, 1440, 1441, 3, 372, 186, 0, 1441, 179, 1, 0, 0, 0, 1442, + 1444, 3, 374, 187, 0, 1443, 1445, 3, 182, 91, 0, 1444, 1443, 1, 0, 0, 0, + 1444, 1445, 1, 0, 0, 0, 1445, 1446, 1, 0, 0, 0, 1446, 1448, 3, 372, 186, + 0, 1447, 1449, 3, 242, 121, 0, 1448, 1447, 1, 0, 0, 0, 1448, 1449, 1, 0, + 0, 0, 1449, 181, 1, 0, 0, 0, 1450, 1453, 3, 460, 230, 0, 1451, 1453, 3, + 528, 264, 0, 1452, 1450, 1, 0, 0, 0, 1452, 1451, 1, 0, 0, 0, 1453, 183, + 1, 0, 0, 0, 1454, 1455, 3, 360, 180, 0, 1455, 1456, 3, 450, 225, 0, 1456, + 1457, 3, 310, 155, 0, 1457, 1458, 3, 544, 272, 0, 1458, 1459, 3, 494, 247, + 0, 1459, 1460, 5, 19, 0, 0, 1460, 1461, 3, 552, 276, 0, 1461, 1462, 3, + 186, 93, 0, 1462, 1466, 3, 554, 277, 0, 1463, 1464, 3, 362, 181, 0, 1464, + 1465, 3, 190, 95, 0, 1465, 1467, 1, 0, 0, 0, 1466, 1463, 1, 0, 0, 0, 1466, + 1467, 1, 0, 0, 0, 1467, 185, 1, 0, 0, 0, 1468, 1474, 3, 188, 94, 0, 1469, + 1470, 3, 564, 282, 0, 1470, 1471, 3, 188, 94, 0, 1471, 1473, 1, 0, 0, 0, + 1472, 1469, 1, 0, 0, 0, 1473, 1476, 1, 0, 0, 0, 1474, 1472, 1, 0, 0, 0, + 1474, 1475, 1, 0, 0, 0, 1475, 187, 1, 0, 0, 0, 1476, 1474, 1, 0, 0, 0, + 1477, 1478, 5, 182, 0, 0, 1478, 1479, 5, 9, 0, 0, 1479, 1484, 5, 182, 0, + 0, 1480, 1481, 5, 182, 0, 0, 1481, 1482, 5, 9, 0, 0, 1482, 1484, 5, 183, + 0, 0, 1483, 1477, 1, 0, 0, 0, 1483, 1480, 1, 0, 0, 0, 1484, 189, 1, 0, + 0, 0, 1485, 1486, 3, 406, 203, 0, 1486, 1487, 5, 19, 0, 0, 1487, 1488, + 3, 306, 153, 0, 1488, 191, 1, 0, 0, 0, 1489, 1490, 3, 532, 266, 0, 1490, + 1491, 3, 310, 155, 0, 1491, 193, 1, 0, 0, 0, 1492, 1494, 3, 522, 261, 0, + 1493, 1495, 3, 514, 257, 0, 1494, 1493, 1, 0, 0, 0, 1494, 1495, 1, 0, 0, + 0, 1495, 1499, 1, 0, 0, 0, 1496, 1497, 3, 310, 155, 0, 1497, 1498, 5, 10, + 0, 0, 1498, 1500, 1, 0, 0, 0, 1499, 1496, 1, 0, 0, 0, 1499, 1500, 1, 0, + 0, 0, 1500, 1501, 1, 0, 0, 0, 1501, 1502, 3, 312, 156, 0, 1502, 195, 1, + 0, 0, 0, 1503, 1505, 3, 386, 193, 0, 1504, 1506, 3, 388, 194, 0, 1505, + 1504, 1, 0, 0, 0, 1505, 1506, 1, 0, 0, 0, 1506, 1507, 1, 0, 0, 0, 1507, + 1509, 3, 432, 216, 0, 1508, 1510, 3, 244, 122, 0, 1509, 1508, 1, 0, 0, + 0, 1509, 1510, 1, 0, 0, 0, 1510, 1512, 1, 0, 0, 0, 1511, 1513, 3, 202, + 101, 0, 1512, 1511, 1, 0, 0, 0, 1512, 1513, 1, 0, 0, 0, 1513, 1514, 1, + 0, 0, 0, 1514, 1518, 3, 478, 239, 0, 1515, 1516, 3, 310, 155, 0, 1516, + 1517, 5, 10, 0, 0, 1517, 1519, 1, 0, 0, 0, 1518, 1515, 1, 0, 0, 0, 1518, + 1519, 1, 0, 0, 0, 1519, 1520, 1, 0, 0, 0, 1520, 1521, 3, 312, 156, 0, 1521, + 1522, 3, 548, 274, 0, 1522, 1523, 3, 204, 102, 0, 1523, 1527, 3, 550, 275, + 0, 1524, 1525, 3, 536, 268, 0, 1525, 1526, 3, 198, 99, 0, 1526, 1528, 1, + 0, 0, 0, 1527, 1524, 1, 0, 0, 0, 1527, 1528, 1, 0, 0, 0, 1528, 1532, 1, + 0, 0, 0, 1529, 1530, 3, 544, 272, 0, 1530, 1531, 3, 200, 100, 0, 1531, + 1533, 1, 0, 0, 0, 1532, 1529, 1, 0, 0, 0, 1532, 1533, 1, 0, 0, 0, 1533, + 197, 1, 0, 0, 0, 1534, 1538, 3, 304, 152, 0, 1535, 1538, 5, 166, 0, 0, + 1536, 1538, 5, 167, 0, 0, 1537, 1534, 1, 0, 0, 0, 1537, 1535, 1, 0, 0, + 0, 1537, 1536, 1, 0, 0, 0, 1538, 199, 1, 0, 0, 0, 1539, 1540, 3, 146, 73, + 0, 1540, 201, 1, 0, 0, 0, 1541, 1544, 5, 187, 0, 0, 1542, 1544, 3, 304, + 152, 0, 1543, 1541, 1, 0, 0, 0, 1543, 1542, 1, 0, 0, 0, 1544, 203, 1, 0, + 0, 0, 1545, 1548, 3, 314, 157, 0, 1546, 1548, 3, 206, 103, 0, 1547, 1545, + 1, 0, 0, 0, 1547, 1546, 1, 0, 0, 0, 1548, 205, 1, 0, 0, 0, 1549, 1550, + 3, 420, 210, 0, 1550, 1551, 3, 548, 274, 0, 1551, 1552, 5, 187, 0, 0, 1552, + 1553, 3, 550, 275, 0, 1553, 207, 1, 0, 0, 0, 1554, 1556, 3, 180, 90, 0, + 1555, 1554, 1, 0, 0, 0, 1555, 1556, 1, 0, 0, 0, 1556, 1557, 1, 0, 0, 0, + 1557, 1559, 3, 396, 198, 0, 1558, 1560, 3, 210, 105, 0, 1559, 1558, 1, + 0, 0, 0, 1559, 1560, 1, 0, 0, 0, 1560, 1561, 1, 0, 0, 0, 1561, 1563, 3, + 266, 133, 0, 1562, 1564, 3, 242, 121, 0, 1563, 1562, 1, 0, 0, 0, 1563, + 1564, 1, 0, 0, 0, 1564, 1565, 1, 0, 0, 0, 1565, 1568, 3, 278, 139, 0, 1566, + 1569, 3, 246, 123, 0, 1567, 1569, 3, 216, 108, 0, 1568, 1566, 1, 0, 0, + 0, 1568, 1567, 1, 0, 0, 0, 1568, 1569, 1, 0, 0, 0, 1569, 209, 1, 0, 0, + 0, 1570, 1576, 3, 212, 106, 0, 1571, 1572, 3, 564, 282, 0, 1572, 1573, + 3, 212, 106, 0, 1573, 1575, 1, 0, 0, 0, 1574, 1571, 1, 0, 0, 0, 1575, 1578, + 1, 0, 0, 0, 1576, 1574, 1, 0, 0, 0, 1576, 1577, 1, 0, 0, 0, 1577, 211, + 1, 0, 0, 0, 1578, 1576, 1, 0, 0, 0, 1579, 1589, 5, 187, 0, 0, 1580, 1581, + 5, 187, 0, 0, 1581, 1584, 5, 5, 0, 0, 1582, 1585, 3, 304, 152, 0, 1583, + 1585, 3, 300, 150, 0, 1584, 1582, 1, 0, 0, 0, 1584, 1583, 1, 0, 0, 0, 1585, + 1586, 1, 0, 0, 0, 1586, 1587, 5, 6, 0, 0, 1587, 1589, 1, 0, 0, 0, 1588, + 1579, 1, 0, 0, 0, 1588, 1580, 1, 0, 0, 0, 1589, 213, 1, 0, 0, 0, 1590, + 1592, 3, 180, 90, 0, 1591, 1590, 1, 0, 0, 0, 1591, 1592, 1, 0, 0, 0, 1592, + 1593, 1, 0, 0, 0, 1593, 1597, 3, 530, 265, 0, 1594, 1595, 3, 310, 155, + 0, 1595, 1596, 5, 10, 0, 0, 1596, 1598, 1, 0, 0, 0, 1597, 1594, 1, 0, 0, + 0, 1597, 1598, 1, 0, 0, 0, 1598, 1599, 1, 0, 0, 0, 1599, 1601, 3, 312, + 156, 0, 1600, 1602, 3, 236, 118, 0, 1601, 1600, 1, 0, 0, 0, 1601, 1602, + 1, 0, 0, 0, 1602, 1603, 1, 0, 0, 0, 1603, 1604, 3, 504, 252, 0, 1604, 1605, + 3, 222, 111, 0, 1605, 1608, 3, 278, 139, 0, 1606, 1609, 3, 246, 123, 0, + 1607, 1609, 3, 216, 108, 0, 1608, 1606, 1, 0, 0, 0, 1608, 1607, 1, 0, 0, + 0, 1608, 1609, 1, 0, 0, 0, 1609, 215, 1, 0, 0, 0, 1610, 1611, 3, 428, 214, + 0, 1611, 1612, 3, 218, 109, 0, 1612, 217, 1, 0, 0, 0, 1613, 1619, 3, 220, + 110, 0, 1614, 1615, 3, 362, 181, 0, 1615, 1616, 3, 220, 110, 0, 1616, 1618, + 1, 0, 0, 0, 1617, 1614, 1, 0, 0, 0, 1618, 1621, 1, 0, 0, 0, 1619, 1617, + 1, 0, 0, 0, 1619, 1620, 1, 0, 0, 0, 1620, 219, 1, 0, 0, 0, 1621, 1619, + 1, 0, 0, 0, 1622, 1623, 5, 187, 0, 0, 1623, 1624, 5, 19, 0, 0, 1624, 1625, + 3, 298, 149, 0, 1625, 221, 1, 0, 0, 0, 1626, 1632, 3, 224, 112, 0, 1627, + 1628, 3, 564, 282, 0, 1628, 1629, 3, 224, 112, 0, 1629, 1631, 1, 0, 0, + 0, 1630, 1627, 1, 0, 0, 0, 1631, 1634, 1, 0, 0, 0, 1632, 1630, 1, 0, 0, + 0, 1632, 1633, 1, 0, 0, 0, 1633, 223, 1, 0, 0, 0, 1634, 1632, 1, 0, 0, + 0, 1635, 1636, 5, 187, 0, 0, 1636, 1641, 5, 19, 0, 0, 1637, 1642, 3, 298, + 149, 0, 1638, 1642, 3, 228, 114, 0, 1639, 1642, 3, 226, 113, 0, 1640, 1642, + 3, 230, 115, 0, 1641, 1637, 1, 0, 0, 0, 1641, 1638, 1, 0, 0, 0, 1641, 1639, + 1, 0, 0, 0, 1641, 1640, 1, 0, 0, 0, 1642, 1689, 1, 0, 0, 0, 1643, 1644, + 5, 187, 0, 0, 1644, 1645, 5, 19, 0, 0, 1645, 1646, 5, 187, 0, 0, 1646, + 1647, 7, 1, 0, 0, 1647, 1689, 3, 300, 150, 0, 1648, 1649, 5, 187, 0, 0, + 1649, 1650, 5, 19, 0, 0, 1650, 1651, 5, 187, 0, 0, 1651, 1652, 7, 1, 0, + 0, 1652, 1689, 3, 226, 113, 0, 1653, 1654, 5, 187, 0, 0, 1654, 1655, 5, + 19, 0, 0, 1655, 1656, 3, 226, 113, 0, 1656, 1657, 7, 1, 0, 0, 1657, 1658, + 5, 187, 0, 0, 1658, 1689, 1, 0, 0, 0, 1659, 1660, 5, 187, 0, 0, 1660, 1661, + 5, 19, 0, 0, 1661, 1662, 5, 187, 0, 0, 1662, 1663, 7, 1, 0, 0, 1663, 1689, + 3, 228, 114, 0, 1664, 1665, 5, 187, 0, 0, 1665, 1666, 5, 19, 0, 0, 1666, + 1667, 3, 228, 114, 0, 1667, 1668, 7, 1, 0, 0, 1668, 1669, 5, 187, 0, 0, + 1669, 1689, 1, 0, 0, 0, 1670, 1671, 5, 187, 0, 0, 1671, 1672, 5, 19, 0, + 0, 1672, 1673, 5, 187, 0, 0, 1673, 1674, 7, 1, 0, 0, 1674, 1689, 3, 230, + 115, 0, 1675, 1676, 5, 187, 0, 0, 1676, 1677, 5, 19, 0, 0, 1677, 1678, + 3, 230, 115, 0, 1678, 1679, 7, 1, 0, 0, 1679, 1680, 5, 187, 0, 0, 1680, + 1689, 1, 0, 0, 0, 1681, 1682, 5, 187, 0, 0, 1682, 1683, 3, 560, 280, 0, + 1683, 1684, 3, 300, 150, 0, 1684, 1685, 3, 562, 281, 0, 1685, 1686, 5, + 19, 0, 0, 1686, 1687, 3, 298, 149, 0, 1687, 1689, 1, 0, 0, 0, 1688, 1635, + 1, 0, 0, 0, 1688, 1643, 1, 0, 0, 0, 1688, 1648, 1, 0, 0, 0, 1688, 1653, + 1, 0, 0, 0, 1688, 1659, 1, 0, 0, 0, 1688, 1664, 1, 0, 0, 0, 1688, 1670, + 1, 0, 0, 0, 1688, 1675, 1, 0, 0, 0, 1688, 1681, 1, 0, 0, 0, 1689, 225, + 1, 0, 0, 0, 1690, 1700, 3, 552, 276, 0, 1691, 1697, 3, 298, 149, 0, 1692, + 1693, 3, 564, 282, 0, 1693, 1694, 3, 298, 149, 0, 1694, 1696, 1, 0, 0, + 0, 1695, 1692, 1, 0, 0, 0, 1696, 1699, 1, 0, 0, 0, 1697, 1695, 1, 0, 0, + 0, 1697, 1698, 1, 0, 0, 0, 1698, 1701, 1, 0, 0, 0, 1699, 1697, 1, 0, 0, + 0, 1700, 1691, 1, 0, 0, 0, 1700, 1701, 1, 0, 0, 0, 1701, 1702, 1, 0, 0, + 0, 1702, 1703, 3, 554, 277, 0, 1703, 227, 1, 0, 0, 0, 1704, 1705, 3, 552, + 276, 0, 1705, 1706, 3, 298, 149, 0, 1706, 1707, 3, 566, 283, 0, 1707, 1708, + 3, 298, 149, 0, 1708, 1716, 1, 0, 0, 0, 1709, 1710, 3, 564, 282, 0, 1710, + 1711, 3, 298, 149, 0, 1711, 1712, 3, 566, 283, 0, 1712, 1713, 3, 298, 149, + 0, 1713, 1715, 1, 0, 0, 0, 1714, 1709, 1, 0, 0, 0, 1715, 1718, 1, 0, 0, + 0, 1716, 1714, 1, 0, 0, 0, 1716, 1717, 1, 0, 0, 0, 1717, 1719, 1, 0, 0, + 0, 1718, 1716, 1, 0, 0, 0, 1719, 1720, 3, 554, 277, 0, 1720, 229, 1, 0, + 0, 0, 1721, 1722, 3, 560, 280, 0, 1722, 1728, 3, 298, 149, 0, 1723, 1724, + 3, 564, 282, 0, 1724, 1725, 3, 298, 149, 0, 1725, 1727, 1, 0, 0, 0, 1726, + 1723, 1, 0, 0, 0, 1727, 1730, 1, 0, 0, 0, 1728, 1726, 1, 0, 0, 0, 1728, + 1729, 1, 0, 0, 0, 1729, 1731, 1, 0, 0, 0, 1730, 1728, 1, 0, 0, 0, 1731, + 1732, 3, 562, 281, 0, 1732, 231, 1, 0, 0, 0, 1733, 1734, 3, 548, 274, 0, + 1734, 1740, 3, 258, 129, 0, 1735, 1736, 3, 564, 282, 0, 1736, 1737, 3, + 258, 129, 0, 1737, 1739, 1, 0, 0, 0, 1738, 1735, 1, 0, 0, 0, 1739, 1742, + 1, 0, 0, 0, 1740, 1738, 1, 0, 0, 0, 1740, 1741, 1, 0, 0, 0, 1741, 1743, + 1, 0, 0, 0, 1742, 1740, 1, 0, 0, 0, 1743, 1744, 3, 550, 275, 0, 1744, 233, + 1, 0, 0, 0, 1745, 1747, 3, 180, 90, 0, 1746, 1745, 1, 0, 0, 0, 1746, 1747, + 1, 0, 0, 0, 1747, 1748, 1, 0, 0, 0, 1748, 1749, 3, 438, 219, 0, 1749, 1753, + 3, 440, 220, 0, 1750, 1751, 3, 310, 155, 0, 1751, 1752, 5, 10, 0, 0, 1752, + 1754, 1, 0, 0, 0, 1753, 1750, 1, 0, 0, 0, 1753, 1754, 1, 0, 0, 0, 1754, + 1755, 1, 0, 0, 0, 1755, 1757, 3, 312, 156, 0, 1756, 1758, 3, 252, 126, + 0, 1757, 1756, 1, 0, 0, 0, 1757, 1758, 1, 0, 0, 0, 1758, 1759, 1, 0, 0, + 0, 1759, 1761, 3, 248, 124, 0, 1760, 1762, 3, 244, 122, 0, 1761, 1760, + 1, 0, 0, 0, 1761, 1762, 1, 0, 0, 0, 1762, 1764, 1, 0, 0, 0, 1763, 1765, + 3, 236, 118, 0, 1764, 1763, 1, 0, 0, 0, 1764, 1765, 1, 0, 0, 0, 1765, 235, + 1, 0, 0, 0, 1766, 1767, 3, 536, 268, 0, 1767, 1768, 3, 240, 120, 0, 1768, + 1783, 1, 0, 0, 0, 1769, 1770, 3, 536, 268, 0, 1770, 1771, 3, 240, 120, + 0, 1771, 1772, 3, 362, 181, 0, 1772, 1773, 3, 238, 119, 0, 1773, 1783, + 1, 0, 0, 0, 1774, 1775, 3, 536, 268, 0, 1775, 1776, 3, 238, 119, 0, 1776, + 1783, 1, 0, 0, 0, 1777, 1778, 3, 536, 268, 0, 1778, 1779, 3, 238, 119, + 0, 1779, 1780, 3, 362, 181, 0, 1780, 1781, 3, 240, 120, 0, 1781, 1783, + 1, 0, 0, 0, 1782, 1766, 1, 0, 0, 0, 1782, 1769, 1, 0, 0, 0, 1782, 1774, + 1, 0, 0, 0, 1782, 1777, 1, 0, 0, 0, 1783, 237, 1, 0, 0, 0, 1784, 1785, + 3, 516, 258, 0, 1785, 1786, 3, 300, 150, 0, 1786, 239, 1, 0, 0, 0, 1787, + 1788, 3, 524, 262, 0, 1788, 1789, 3, 300, 150, 0, 1789, 241, 1, 0, 0, 0, + 1790, 1791, 3, 536, 268, 0, 1791, 1792, 3, 238, 119, 0, 1792, 243, 1, 0, + 0, 0, 1793, 1794, 3, 428, 214, 0, 1794, 1795, 3, 472, 236, 0, 1795, 1796, + 3, 412, 206, 0, 1796, 245, 1, 0, 0, 0, 1797, 1798, 3, 428, 214, 0, 1798, + 1799, 3, 412, 206, 0, 1799, 247, 1, 0, 0, 0, 1800, 1801, 3, 538, 269, 0, + 1801, 1802, 5, 1, 0, 0, 1802, 1803, 3, 256, 128, 0, 1803, 1804, 5, 2, 0, + 0, 1804, 1811, 1, 0, 0, 0, 1805, 1806, 3, 444, 222, 0, 1806, 1808, 3, 298, + 149, 0, 1807, 1809, 3, 250, 125, 0, 1808, 1807, 1, 0, 0, 0, 1808, 1809, + 1, 0, 0, 0, 1809, 1811, 1, 0, 0, 0, 1810, 1800, 1, 0, 0, 0, 1810, 1805, + 1, 0, 0, 0, 1811, 249, 1, 0, 0, 0, 1812, 1813, 3, 390, 195, 0, 1813, 1814, + 3, 392, 196, 0, 1814, 251, 1, 0, 0, 0, 1815, 1816, 5, 1, 0, 0, 1816, 1817, + 3, 254, 127, 0, 1817, 1818, 5, 2, 0, 0, 1818, 253, 1, 0, 0, 0, 1819, 1825, + 3, 314, 157, 0, 1820, 1821, 3, 564, 282, 0, 1821, 1822, 3, 314, 157, 0, + 1822, 1824, 1, 0, 0, 0, 1823, 1820, 1, 0, 0, 0, 1824, 1827, 1, 0, 0, 0, + 1825, 1823, 1, 0, 0, 0, 1825, 1826, 1, 0, 0, 0, 1826, 255, 1, 0, 0, 0, + 1827, 1825, 1, 0, 0, 0, 1828, 1834, 3, 258, 129, 0, 1829, 1830, 3, 564, + 282, 0, 1830, 1831, 3, 258, 129, 0, 1831, 1833, 1, 0, 0, 0, 1832, 1829, + 1, 0, 0, 0, 1833, 1836, 1, 0, 0, 0, 1834, 1832, 1, 0, 0, 0, 1834, 1835, + 1, 0, 0, 0, 1835, 257, 1, 0, 0, 0, 1836, 1834, 1, 0, 0, 0, 1837, 1844, + 3, 298, 149, 0, 1838, 1844, 3, 294, 147, 0, 1839, 1844, 3, 228, 114, 0, + 1840, 1844, 3, 226, 113, 0, 1841, 1844, 3, 230, 115, 0, 1842, 1844, 3, + 232, 116, 0, 1843, 1837, 1, 0, 0, 0, 1843, 1838, 1, 0, 0, 0, 1843, 1839, + 1, 0, 0, 0, 1843, 1840, 1, 0, 0, 0, 1843, 1841, 1, 0, 0, 0, 1843, 1842, + 1, 0, 0, 0, 1844, 259, 1, 0, 0, 0, 1845, 1847, 3, 502, 251, 0, 1846, 1848, + 3, 280, 140, 0, 1847, 1846, 1, 0, 0, 0, 1847, 1848, 1, 0, 0, 0, 1848, 1850, + 1, 0, 0, 0, 1849, 1851, 3, 444, 222, 0, 1850, 1849, 1, 0, 0, 0, 1850, 1851, + 1, 0, 0, 0, 1851, 1852, 1, 0, 0, 0, 1852, 1853, 3, 282, 141, 0, 1853, 1855, + 3, 266, 133, 0, 1854, 1856, 3, 278, 139, 0, 1855, 1854, 1, 0, 0, 0, 1855, + 1856, 1, 0, 0, 0, 1856, 1858, 1, 0, 0, 0, 1857, 1859, 3, 270, 135, 0, 1858, + 1857, 1, 0, 0, 0, 1858, 1859, 1, 0, 0, 0, 1859, 1861, 1, 0, 0, 0, 1860, + 1862, 3, 264, 132, 0, 1861, 1860, 1, 0, 0, 0, 1861, 1862, 1, 0, 0, 0, 1862, + 1864, 1, 0, 0, 0, 1863, 1865, 3, 262, 131, 0, 1864, 1863, 1, 0, 0, 0, 1864, + 1865, 1, 0, 0, 0, 1865, 261, 1, 0, 0, 0, 1866, 1867, 3, 358, 179, 0, 1867, + 1868, 3, 414, 207, 0, 1868, 263, 1, 0, 0, 0, 1869, 1870, 3, 456, 228, 0, + 1870, 1871, 3, 300, 150, 0, 1871, 265, 1, 0, 0, 0, 1872, 1873, 3, 418, + 209, 0, 1873, 1874, 3, 268, 134, 0, 1874, 267, 1, 0, 0, 0, 1875, 1880, + 5, 187, 0, 0, 1876, 1877, 5, 187, 0, 0, 1877, 1878, 5, 10, 0, 0, 1878, + 1880, 5, 187, 0, 0, 1879, 1875, 1, 0, 0, 0, 1879, 1876, 1, 0, 0, 0, 1880, + 269, 1, 0, 0, 0, 1881, 1882, 3, 484, 242, 0, 1882, 1883, 3, 376, 188, 0, + 1883, 1884, 3, 272, 136, 0, 1884, 271, 1, 0, 0, 0, 1885, 1888, 5, 187, + 0, 0, 1886, 1889, 3, 368, 184, 0, 1887, 1889, 3, 398, 199, 0, 1888, 1886, + 1, 0, 0, 0, 1888, 1887, 1, 0, 0, 0, 1888, 1889, 1, 0, 0, 0, 1889, 1900, + 1, 0, 0, 0, 1890, 1891, 5, 187, 0, 0, 1891, 1892, 3, 394, 197, 0, 1892, + 1893, 3, 476, 238, 0, 1893, 1897, 3, 274, 137, 0, 1894, 1895, 3, 456, 228, + 0, 1895, 1896, 5, 183, 0, 0, 1896, 1898, 1, 0, 0, 0, 1897, 1894, 1, 0, + 0, 0, 1897, 1898, 1, 0, 0, 0, 1898, 1900, 1, 0, 0, 0, 1899, 1885, 1, 0, + 0, 0, 1899, 1890, 1, 0, 0, 0, 1900, 273, 1, 0, 0, 0, 1901, 1902, 5, 5, + 0, 0, 1902, 1903, 3, 276, 138, 0, 1903, 1904, 5, 6, 0, 0, 1904, 275, 1, + 0, 0, 0, 1905, 1911, 3, 298, 149, 0, 1906, 1907, 3, 564, 282, 0, 1907, + 1908, 3, 298, 149, 0, 1908, 1910, 1, 0, 0, 0, 1909, 1906, 1, 0, 0, 0, 1910, + 1913, 1, 0, 0, 0, 1911, 1909, 1, 0, 0, 0, 1911, 1912, 1, 0, 0, 0, 1912, + 277, 1, 0, 0, 0, 1913, 1911, 1, 0, 0, 0, 1914, 1915, 3, 542, 271, 0, 1915, + 1916, 3, 286, 143, 0, 1916, 279, 1, 0, 0, 0, 1917, 1918, 3, 402, 201, 0, + 1918, 281, 1, 0, 0, 0, 1919, 1922, 5, 11, 0, 0, 1920, 1922, 3, 284, 142, + 0, 1921, 1919, 1, 0, 0, 0, 1921, 1920, 1, 0, 0, 0, 1922, 1928, 1, 0, 0, + 0, 1923, 1924, 3, 564, 282, 0, 1924, 1925, 3, 284, 142, 0, 1925, 1927, + 1, 0, 0, 0, 1926, 1923, 1, 0, 0, 0, 1927, 1930, 1, 0, 0, 0, 1928, 1926, + 1, 0, 0, 0, 1928, 1929, 1, 0, 0, 0, 1929, 283, 1, 0, 0, 0, 1930, 1928, + 1, 0, 0, 0, 1931, 1932, 5, 187, 0, 0, 1932, 1933, 5, 10, 0, 0, 1933, 1947, + 5, 11, 0, 0, 1934, 1938, 5, 187, 0, 0, 1935, 1936, 3, 366, 183, 0, 1936, + 1937, 5, 187, 0, 0, 1937, 1939, 1, 0, 0, 0, 1938, 1935, 1, 0, 0, 0, 1938, + 1939, 1, 0, 0, 0, 1939, 1947, 1, 0, 0, 0, 1940, 1944, 3, 294, 147, 0, 1941, + 1942, 3, 366, 183, 0, 1942, 1943, 5, 187, 0, 0, 1943, 1945, 1, 0, 0, 0, + 1944, 1941, 1, 0, 0, 0, 1944, 1945, 1, 0, 0, 0, 1945, 1947, 1, 0, 0, 0, + 1946, 1931, 1, 0, 0, 0, 1946, 1934, 1, 0, 0, 0, 1946, 1940, 1, 0, 0, 0, + 1947, 285, 1, 0, 0, 0, 1948, 1954, 3, 288, 144, 0, 1949, 1950, 3, 362, + 181, 0, 1950, 1951, 3, 288, 144, 0, 1951, 1953, 1, 0, 0, 0, 1952, 1949, + 1, 0, 0, 0, 1953, 1956, 1, 0, 0, 0, 1954, 1952, 1, 0, 0, 0, 1954, 1955, + 1, 0, 0, 0, 1955, 287, 1, 0, 0, 0, 1956, 1954, 1, 0, 0, 0, 1957, 1958, + 5, 187, 0, 0, 1958, 1959, 7, 2, 0, 0, 1959, 2029, 3, 298, 149, 0, 1960, + 1961, 5, 187, 0, 0, 1961, 1962, 5, 10, 0, 0, 1962, 1963, 5, 187, 0, 0, + 1963, 1964, 7, 2, 0, 0, 1964, 2029, 3, 298, 149, 0, 1965, 1966, 3, 294, + 147, 0, 1966, 1967, 7, 2, 0, 0, 1967, 1968, 3, 298, 149, 0, 1968, 2029, + 1, 0, 0, 0, 1969, 1970, 3, 294, 147, 0, 1970, 1971, 7, 2, 0, 0, 1971, 1972, + 3, 294, 147, 0, 1972, 2029, 1, 0, 0, 0, 1973, 1974, 5, 187, 0, 0, 1974, + 1975, 3, 430, 215, 0, 1975, 1977, 5, 1, 0, 0, 1976, 1978, 3, 296, 148, + 0, 1977, 1976, 1, 0, 0, 0, 1977, 1978, 1, 0, 0, 0, 1978, 1979, 1, 0, 0, + 0, 1979, 1980, 5, 2, 0, 0, 1980, 2029, 1, 0, 0, 0, 1981, 1982, 5, 1, 0, + 0, 1982, 1988, 5, 187, 0, 0, 1983, 1984, 3, 564, 282, 0, 1984, 1985, 5, + 187, 0, 0, 1985, 1987, 1, 0, 0, 0, 1986, 1983, 1, 0, 0, 0, 1987, 1990, + 1, 0, 0, 0, 1988, 1986, 1, 0, 0, 0, 1988, 1989, 1, 0, 0, 0, 1989, 1991, + 1, 0, 0, 0, 1990, 1988, 1, 0, 0, 0, 1991, 1992, 5, 2, 0, 0, 1992, 1993, + 3, 430, 215, 0, 1993, 1994, 5, 1, 0, 0, 1994, 2000, 3, 232, 116, 0, 1995, + 1996, 3, 564, 282, 0, 1996, 1997, 3, 232, 116, 0, 1997, 1999, 1, 0, 0, + 0, 1998, 1995, 1, 0, 0, 0, 1999, 2002, 1, 0, 0, 0, 2000, 1998, 1, 0, 0, + 0, 2000, 2001, 1, 0, 0, 0, 2001, 2003, 1, 0, 0, 0, 2002, 2000, 1, 0, 0, + 0, 2003, 2004, 5, 2, 0, 0, 2004, 2029, 1, 0, 0, 0, 2005, 2006, 5, 1, 0, + 0, 2006, 2012, 5, 187, 0, 0, 2007, 2008, 3, 564, 282, 0, 2008, 2009, 5, + 187, 0, 0, 2009, 2011, 1, 0, 0, 0, 2010, 2007, 1, 0, 0, 0, 2011, 2014, + 1, 0, 0, 0, 2012, 2010, 1, 0, 0, 0, 2012, 2013, 1, 0, 0, 0, 2013, 2015, + 1, 0, 0, 0, 2014, 2012, 1, 0, 0, 0, 2015, 2016, 5, 2, 0, 0, 2016, 2017, + 7, 2, 0, 0, 2017, 2023, 3, 232, 116, 0, 2018, 2019, 3, 564, 282, 0, 2019, + 2020, 3, 232, 116, 0, 2020, 2022, 1, 0, 0, 0, 2021, 2018, 1, 0, 0, 0, 2022, + 2025, 1, 0, 0, 0, 2023, 2021, 1, 0, 0, 0, 2023, 2024, 1, 0, 0, 0, 2024, + 2029, 1, 0, 0, 0, 2025, 2023, 1, 0, 0, 0, 2026, 2029, 3, 292, 146, 0, 2027, + 2029, 3, 290, 145, 0, 2028, 1957, 1, 0, 0, 0, 2028, 1960, 1, 0, 0, 0, 2028, + 1965, 1, 0, 0, 0, 2028, 1969, 1, 0, 0, 0, 2028, 1973, 1, 0, 0, 0, 2028, + 1981, 1, 0, 0, 0, 2028, 2005, 1, 0, 0, 0, 2028, 2026, 1, 0, 0, 0, 2028, + 2027, 1, 0, 0, 0, 2029, 289, 1, 0, 0, 0, 2030, 2031, 5, 187, 0, 0, 2031, + 2032, 3, 384, 192, 0, 2032, 2033, 3, 298, 149, 0, 2033, 291, 1, 0, 0, 0, + 2034, 2035, 5, 187, 0, 0, 2035, 2036, 3, 384, 192, 0, 2036, 2037, 3, 446, + 223, 0, 2037, 2038, 1, 0, 0, 0, 2038, 2039, 3, 298, 149, 0, 2039, 293, + 1, 0, 0, 0, 2040, 2041, 5, 187, 0, 0, 2041, 2042, 5, 1, 0, 0, 2042, 2043, + 5, 11, 0, 0, 2043, 2092, 5, 2, 0, 0, 2044, 2045, 5, 187, 0, 0, 2045, 2047, + 5, 1, 0, 0, 2046, 2048, 3, 296, 148, 0, 2047, 2046, 1, 0, 0, 0, 2047, 2048, + 1, 0, 0, 0, 2048, 2049, 1, 0, 0, 0, 2049, 2092, 5, 2, 0, 0, 2050, 2051, + 5, 136, 0, 0, 2051, 2052, 5, 1, 0, 0, 2052, 2092, 5, 2, 0, 0, 2053, 2054, + 5, 171, 0, 0, 2054, 2055, 5, 1, 0, 0, 2055, 2092, 5, 2, 0, 0, 2056, 2057, + 5, 172, 0, 0, 2057, 2058, 5, 1, 0, 0, 2058, 2059, 3, 296, 148, 0, 2059, + 2060, 5, 2, 0, 0, 2060, 2092, 1, 0, 0, 0, 2061, 2062, 5, 173, 0, 0, 2062, + 2063, 5, 1, 0, 0, 2063, 2064, 3, 296, 148, 0, 2064, 2065, 5, 2, 0, 0, 2065, + 2092, 1, 0, 0, 0, 2066, 2067, 5, 174, 0, 0, 2067, 2068, 5, 1, 0, 0, 2068, + 2069, 3, 296, 148, 0, 2069, 2070, 5, 2, 0, 0, 2070, 2092, 1, 0, 0, 0, 2071, + 2072, 5, 175, 0, 0, 2072, 2073, 5, 1, 0, 0, 2073, 2074, 3, 296, 148, 0, + 2074, 2075, 5, 2, 0, 0, 2075, 2092, 1, 0, 0, 0, 2076, 2077, 5, 176, 0, + 0, 2077, 2078, 5, 1, 0, 0, 2078, 2092, 5, 2, 0, 0, 2079, 2080, 5, 177, + 0, 0, 2080, 2081, 5, 1, 0, 0, 2081, 2092, 5, 2, 0, 0, 2082, 2083, 5, 178, + 0, 0, 2083, 2084, 5, 1, 0, 0, 2084, 2092, 5, 2, 0, 0, 2085, 2086, 5, 179, + 0, 0, 2086, 2087, 5, 1, 0, 0, 2087, 2092, 5, 2, 0, 0, 2088, 2089, 5, 180, + 0, 0, 2089, 2090, 5, 1, 0, 0, 2090, 2092, 5, 2, 0, 0, 2091, 2040, 1, 0, + 0, 0, 2091, 2044, 1, 0, 0, 0, 2091, 2050, 1, 0, 0, 0, 2091, 2053, 1, 0, + 0, 0, 2091, 2056, 1, 0, 0, 0, 2091, 2061, 1, 0, 0, 0, 2091, 2066, 1, 0, + 0, 0, 2091, 2071, 1, 0, 0, 0, 2091, 2076, 1, 0, 0, 0, 2091, 2079, 1, 0, + 0, 0, 2091, 2082, 1, 0, 0, 0, 2091, 2085, 1, 0, 0, 0, 2091, 2088, 1, 0, + 0, 0, 2092, 295, 1, 0, 0, 0, 2093, 2097, 3, 298, 149, 0, 2094, 2097, 5, + 187, 0, 0, 2095, 2097, 3, 294, 147, 0, 2096, 2093, 1, 0, 0, 0, 2096, 2094, + 1, 0, 0, 0, 2096, 2095, 1, 0, 0, 0, 2097, 2106, 1, 0, 0, 0, 2098, 2102, + 3, 564, 282, 0, 2099, 2103, 3, 298, 149, 0, 2100, 2103, 5, 187, 0, 0, 2101, + 2103, 3, 294, 147, 0, 2102, 2099, 1, 0, 0, 0, 2102, 2100, 1, 0, 0, 0, 2102, + 2101, 1, 0, 0, 0, 2103, 2105, 1, 0, 0, 0, 2104, 2098, 1, 0, 0, 0, 2105, + 2108, 1, 0, 0, 0, 2106, 2104, 1, 0, 0, 0, 2106, 2107, 1, 0, 0, 0, 2107, + 297, 1, 0, 0, 0, 2108, 2106, 1, 0, 0, 0, 2109, 2118, 5, 188, 0, 0, 2110, + 2118, 3, 304, 152, 0, 2111, 2118, 3, 300, 150, 0, 2112, 2118, 3, 302, 151, + 0, 2113, 2118, 3, 308, 154, 0, 2114, 2118, 3, 306, 153, 0, 2115, 2118, + 3, 46, 23, 0, 2116, 2118, 3, 474, 237, 0, 2117, 2109, 1, 0, 0, 0, 2117, + 2110, 1, 0, 0, 0, 2117, 2111, 1, 0, 0, 0, 2117, 2112, 1, 0, 0, 0, 2117, + 2113, 1, 0, 0, 0, 2117, 2114, 1, 0, 0, 0, 2117, 2115, 1, 0, 0, 0, 2117, + 2116, 1, 0, 0, 0, 2118, 299, 1, 0, 0, 0, 2119, 2120, 5, 183, 0, 0, 2120, + 301, 1, 0, 0, 0, 2121, 2122, 7, 3, 0, 0, 2122, 303, 1, 0, 0, 0, 2123, 2124, + 5, 182, 0, 0, 2124, 305, 1, 0, 0, 0, 2125, 2126, 7, 4, 0, 0, 2126, 307, + 1, 0, 0, 0, 2127, 2128, 5, 185, 0, 0, 2128, 309, 1, 0, 0, 0, 2129, 2134, + 5, 187, 0, 0, 2130, 2131, 5, 17, 0, 0, 2131, 2132, 5, 187, 0, 0, 2132, + 2134, 5, 17, 0, 0, 2133, 2129, 1, 0, 0, 0, 2133, 2130, 1, 0, 0, 0, 2134, + 311, 1, 0, 0, 0, 2135, 2140, 5, 187, 0, 0, 2136, 2137, 5, 17, 0, 0, 2137, + 2138, 5, 187, 0, 0, 2138, 2140, 5, 17, 0, 0, 2139, 2135, 1, 0, 0, 0, 2139, + 2136, 1, 0, 0, 0, 2140, 313, 1, 0, 0, 0, 2141, 2146, 5, 187, 0, 0, 2142, + 2143, 5, 17, 0, 0, 2143, 2144, 5, 187, 0, 0, 2144, 2146, 5, 17, 0, 0, 2145, + 2141, 1, 0, 0, 0, 2145, 2142, 1, 0, 0, 0, 2146, 315, 1, 0, 0, 0, 2147, + 2149, 3, 318, 159, 0, 2148, 2150, 3, 320, 160, 0, 2149, 2148, 1, 0, 0, + 0, 2149, 2150, 1, 0, 0, 0, 2150, 317, 1, 0, 0, 0, 2151, 2152, 7, 5, 0, + 0, 2152, 319, 1, 0, 0, 0, 2153, 2154, 3, 556, 278, 0, 2154, 2160, 3, 318, + 159, 0, 2155, 2156, 3, 564, 282, 0, 2156, 2157, 3, 318, 159, 0, 2157, 2159, + 1, 0, 0, 0, 2158, 2155, 1, 0, 0, 0, 2159, 2162, 1, 0, 0, 0, 2160, 2158, + 1, 0, 0, 0, 2160, 2161, 1, 0, 0, 0, 2161, 2163, 1, 0, 0, 0, 2162, 2160, + 1, 0, 0, 0, 2163, 2164, 3, 558, 279, 0, 2164, 2172, 1, 0, 0, 0, 2165, 2166, + 3, 556, 278, 0, 2166, 2167, 3, 318, 159, 0, 2167, 2168, 3, 564, 282, 0, + 2168, 2169, 5, 183, 0, 0, 2169, 2170, 3, 558, 279, 0, 2170, 2172, 1, 0, + 0, 0, 2171, 2153, 1, 0, 0, 0, 2171, 2165, 1, 0, 0, 0, 2172, 321, 1, 0, + 0, 0, 2173, 2176, 3, 368, 184, 0, 2174, 2176, 3, 398, 199, 0, 2175, 2173, + 1, 0, 0, 0, 2175, 2174, 1, 0, 0, 0, 2176, 323, 1, 0, 0, 0, 2177, 2178, + 5, 187, 0, 0, 2178, 325, 1, 0, 0, 0, 2179, 2180, 5, 187, 0, 0, 2180, 327, + 1, 0, 0, 0, 2181, 2182, 3, 304, 152, 0, 2182, 329, 1, 0, 0, 0, 2183, 2184, + 5, 187, 0, 0, 2184, 331, 1, 0, 0, 0, 2185, 2186, 5, 187, 0, 0, 2186, 333, + 1, 0, 0, 0, 2187, 2188, 5, 187, 0, 0, 2188, 335, 1, 0, 0, 0, 2189, 2190, + 5, 187, 0, 0, 2190, 337, 1, 0, 0, 0, 2191, 2192, 5, 187, 0, 0, 2192, 339, + 1, 0, 0, 0, 2193, 2194, 5, 187, 0, 0, 2194, 341, 1, 0, 0, 0, 2195, 2196, + 3, 304, 152, 0, 2196, 343, 1, 0, 0, 0, 2197, 2198, 5, 187, 0, 0, 2198, + 345, 1, 0, 0, 0, 2199, 2200, 3, 348, 174, 0, 2200, 2201, 3, 316, 158, 0, + 2201, 347, 1, 0, 0, 0, 2202, 2203, 7, 6, 0, 0, 2203, 349, 1, 0, 0, 0, 2204, + 2205, 5, 24, 0, 0, 2205, 351, 1, 0, 0, 0, 2206, 2207, 5, 25, 0, 0, 2207, + 353, 1, 0, 0, 0, 2208, 2209, 5, 26, 0, 0, 2209, 355, 1, 0, 0, 0, 2210, + 2211, 5, 26, 0, 0, 2211, 2212, 5, 102, 0, 0, 2212, 357, 1, 0, 0, 0, 2213, + 2214, 5, 27, 0, 0, 2214, 359, 1, 0, 0, 0, 2215, 2216, 5, 28, 0, 0, 2216, + 361, 1, 0, 0, 0, 2217, 2218, 5, 29, 0, 0, 2218, 363, 1, 0, 0, 0, 2219, + 2220, 5, 31, 0, 0, 2220, 365, 1, 0, 0, 0, 2221, 2222, 5, 32, 0, 0, 2222, + 367, 1, 0, 0, 0, 2223, 2224, 5, 33, 0, 0, 2224, 369, 1, 0, 0, 0, 2225, + 2226, 5, 34, 0, 0, 2226, 371, 1, 0, 0, 0, 2227, 2228, 5, 35, 0, 0, 2228, + 373, 1, 0, 0, 0, 2229, 2230, 5, 36, 0, 0, 2230, 375, 1, 0, 0, 0, 2231, + 2232, 5, 37, 0, 0, 2232, 377, 1, 0, 0, 0, 2233, 2234, 5, 38, 0, 0, 2234, + 379, 1, 0, 0, 0, 2235, 2236, 5, 39, 0, 0, 2236, 381, 1, 0, 0, 0, 2237, + 2238, 5, 41, 0, 0, 2238, 383, 1, 0, 0, 0, 2239, 2240, 5, 43, 0, 0, 2240, + 385, 1, 0, 0, 0, 2241, 2242, 5, 44, 0, 0, 2242, 387, 1, 0, 0, 0, 2243, + 2244, 5, 45, 0, 0, 2244, 389, 1, 0, 0, 0, 2245, 2246, 5, 164, 0, 0, 2246, + 391, 1, 0, 0, 0, 2247, 2248, 5, 165, 0, 0, 2248, 393, 1, 0, 0, 0, 2249, + 2250, 5, 168, 0, 0, 2250, 395, 1, 0, 0, 0, 2251, 2252, 5, 46, 0, 0, 2252, + 397, 1, 0, 0, 0, 2253, 2254, 5, 47, 0, 0, 2254, 399, 1, 0, 0, 0, 2255, + 2256, 5, 48, 0, 0, 2256, 401, 1, 0, 0, 0, 2257, 2258, 5, 49, 0, 0, 2258, + 403, 1, 0, 0, 0, 2259, 2260, 5, 50, 0, 0, 2260, 405, 1, 0, 0, 0, 2261, + 2262, 5, 51, 0, 0, 2262, 407, 1, 0, 0, 0, 2263, 2264, 5, 53, 0, 0, 2264, + 409, 1, 0, 0, 0, 2265, 2266, 5, 54, 0, 0, 2266, 411, 1, 0, 0, 0, 2267, + 2268, 5, 55, 0, 0, 2268, 413, 1, 0, 0, 0, 2269, 2270, 5, 57, 0, 0, 2270, + 415, 1, 0, 0, 0, 2271, 2272, 5, 58, 0, 0, 2272, 417, 1, 0, 0, 0, 2273, + 2274, 5, 59, 0, 0, 2274, 419, 1, 0, 0, 0, 2275, 2276, 5, 60, 0, 0, 2276, + 421, 1, 0, 0, 0, 2277, 2278, 5, 61, 0, 0, 2278, 423, 1, 0, 0, 0, 2279, + 2280, 5, 62, 0, 0, 2280, 425, 1, 0, 0, 0, 2281, 2282, 5, 63, 0, 0, 2282, + 427, 1, 0, 0, 0, 2283, 2284, 5, 64, 0, 0, 2284, 429, 1, 0, 0, 0, 2285, + 2286, 5, 65, 0, 0, 2286, 431, 1, 0, 0, 0, 2287, 2288, 5, 66, 0, 0, 2288, + 433, 1, 0, 0, 0, 2289, 2290, 5, 68, 0, 0, 2290, 435, 1, 0, 0, 0, 2291, + 2292, 5, 69, 0, 0, 2292, 437, 1, 0, 0, 0, 2293, 2294, 5, 70, 0, 0, 2294, + 439, 1, 0, 0, 0, 2295, 2296, 5, 71, 0, 0, 2296, 441, 1, 0, 0, 0, 2297, + 2298, 5, 72, 0, 0, 2298, 443, 1, 0, 0, 0, 2299, 2300, 5, 73, 0, 0, 2300, + 445, 1, 0, 0, 0, 2301, 2302, 5, 74, 0, 0, 2302, 447, 1, 0, 0, 0, 2303, + 2304, 5, 75, 0, 0, 2304, 449, 1, 0, 0, 0, 2305, 2306, 5, 76, 0, 0, 2306, + 451, 1, 0, 0, 0, 2307, 2308, 5, 77, 0, 0, 2308, 453, 1, 0, 0, 0, 2309, + 2310, 5, 78, 0, 0, 2310, 455, 1, 0, 0, 0, 2311, 2312, 5, 80, 0, 0, 2312, + 457, 1, 0, 0, 0, 2313, 2314, 5, 154, 0, 0, 2314, 459, 1, 0, 0, 0, 2315, + 2316, 5, 83, 0, 0, 2316, 461, 1, 0, 0, 0, 2317, 2318, 5, 84, 0, 0, 2318, + 463, 1, 0, 0, 0, 2319, 2320, 5, 85, 0, 0, 2320, 465, 1, 0, 0, 0, 2321, + 2322, 5, 86, 0, 0, 2322, 467, 1, 0, 0, 0, 2323, 2324, 5, 89, 0, 0, 2324, + 469, 1, 0, 0, 0, 2325, 2326, 5, 88, 0, 0, 2326, 471, 1, 0, 0, 0, 2327, + 2328, 5, 90, 0, 0, 2328, 473, 1, 0, 0, 0, 2329, 2330, 5, 91, 0, 0, 2330, + 475, 1, 0, 0, 0, 2331, 2332, 5, 92, 0, 0, 2332, 477, 1, 0, 0, 0, 2333, + 2334, 5, 93, 0, 0, 2334, 479, 1, 0, 0, 0, 2335, 2336, 5, 95, 0, 0, 2336, + 481, 1, 0, 0, 0, 2337, 2338, 5, 96, 0, 0, 2338, 483, 1, 0, 0, 0, 2339, + 2340, 5, 97, 0, 0, 2340, 485, 1, 0, 0, 0, 2341, 2342, 5, 99, 0, 0, 2342, + 487, 1, 0, 0, 0, 2343, 2344, 5, 103, 0, 0, 2344, 489, 1, 0, 0, 0, 2345, + 2346, 5, 105, 0, 0, 2346, 491, 1, 0, 0, 0, 2347, 2348, 5, 106, 0, 0, 2348, + 493, 1, 0, 0, 0, 2349, 2350, 5, 107, 0, 0, 2350, 495, 1, 0, 0, 0, 2351, + 2352, 5, 108, 0, 0, 2352, 497, 1, 0, 0, 0, 2353, 2354, 5, 110, 0, 0, 2354, + 499, 1, 0, 0, 0, 2355, 2356, 5, 111, 0, 0, 2356, 501, 1, 0, 0, 0, 2357, + 2358, 5, 113, 0, 0, 2358, 503, 1, 0, 0, 0, 2359, 2360, 5, 114, 0, 0, 2360, + 505, 1, 0, 0, 0, 2361, 2362, 5, 115, 0, 0, 2362, 507, 1, 0, 0, 0, 2363, + 2364, 5, 117, 0, 0, 2364, 509, 1, 0, 0, 0, 2365, 2366, 5, 118, 0, 0, 2366, + 511, 1, 0, 0, 0, 2367, 2368, 5, 119, 0, 0, 2368, 513, 1, 0, 0, 0, 2369, + 2370, 5, 120, 0, 0, 2370, 515, 1, 0, 0, 0, 2371, 2372, 5, 122, 0, 0, 2372, + 517, 1, 0, 0, 0, 2373, 2374, 5, 123, 0, 0, 2374, 519, 1, 0, 0, 0, 2375, + 2376, 5, 125, 0, 0, 2376, 521, 1, 0, 0, 0, 2377, 2378, 5, 127, 0, 0, 2378, + 523, 1, 0, 0, 0, 2379, 2380, 5, 128, 0, 0, 2380, 525, 1, 0, 0, 0, 2381, + 2382, 5, 130, 0, 0, 2382, 527, 1, 0, 0, 0, 2383, 2384, 5, 131, 0, 0, 2384, + 529, 1, 0, 0, 0, 2385, 2386, 5, 132, 0, 0, 2386, 531, 1, 0, 0, 0, 2387, + 2388, 5, 133, 0, 0, 2388, 533, 1, 0, 0, 0, 2389, 2390, 5, 134, 0, 0, 2390, + 535, 1, 0, 0, 0, 2391, 2392, 5, 135, 0, 0, 2392, 537, 1, 0, 0, 0, 2393, + 2394, 5, 137, 0, 0, 2394, 539, 1, 0, 0, 0, 2395, 2396, 5, 138, 0, 0, 2396, + 541, 1, 0, 0, 0, 2397, 2398, 5, 139, 0, 0, 2398, 543, 1, 0, 0, 0, 2399, + 2400, 5, 140, 0, 0, 2400, 545, 1, 0, 0, 0, 2401, 2402, 5, 109, 0, 0, 2402, + 547, 1, 0, 0, 0, 2403, 2404, 5, 1, 0, 0, 2404, 549, 1, 0, 0, 0, 2405, 2406, + 5, 2, 0, 0, 2406, 551, 1, 0, 0, 0, 2407, 2408, 5, 3, 0, 0, 2408, 553, 1, + 0, 0, 0, 2409, 2410, 5, 4, 0, 0, 2410, 555, 1, 0, 0, 0, 2411, 2412, 5, + 20, 0, 0, 2412, 557, 1, 0, 0, 0, 2413, 2414, 5, 21, 0, 0, 2414, 559, 1, + 0, 0, 0, 2415, 2416, 5, 5, 0, 0, 2416, 561, 1, 0, 0, 0, 2417, 2418, 5, + 6, 0, 0, 2418, 563, 1, 0, 0, 0, 2419, 2420, 5, 7, 0, 0, 2420, 565, 1, 0, + 0, 0, 2421, 2422, 5, 9, 0, 0, 2422, 567, 1, 0, 0, 0, 187, 569, 572, 578, + 583, 585, 590, 593, 596, 639, 653, 656, 663, 668, 679, 689, 704, 715, 720, + 729, 734, 742, 747, 751, 756, 761, 776, 782, 787, 797, 802, 812, 824, 831, + 839, 853, 858, 870, 874, 878, 883, 888, 907, 914, 922, 926, 931, 950, 959, + 974, 976, 988, 1002, 1009, 1016, 1024, 1035, 1051, 1064, 1074, 1097, 1111, + 1118, 1127, 1146, 1154, 1160, 1165, 1172, 1177, 1185, 1190, 1197, 1202, + 1209, 1214, 1221, 1228, 1235, 1242, 1247, 1254, 1261, 1266, 1273, 1278, + 1285, 1295, 1301, 1309, 1312, 1320, 1325, 1329, 1342, 1348, 1357, 1370, + 1378, 1384, 1389, 1403, 1423, 1432, 1444, 1448, 1452, 1466, 1474, 1483, + 1494, 1499, 1505, 1509, 1512, 1518, 1527, 1532, 1537, 1543, 1547, 1555, + 1559, 1563, 1568, 1576, 1584, 1588, 1591, 1597, 1601, 1608, 1619, 1632, + 1641, 1688, 1697, 1700, 1716, 1728, 1740, 1746, 1753, 1757, 1761, 1764, + 1782, 1808, 1810, 1825, 1834, 1843, 1847, 1850, 1855, 1858, 1861, 1864, + 1879, 1888, 1897, 1899, 1911, 1921, 1928, 1938, 1944, 1946, 1954, 1977, + 1988, 2000, 2012, 2023, 2028, 2047, 2091, 2096, 2102, 2106, 2117, 2133, + 2139, 2145, 2149, 2160, 2171, 2175, } deserializer := antlr.NewATNDeserializer(nil) staticData.atn = deserializer.Deserialize(staticData.serializedATN) @@ -1258,182 +1320,199 @@ func NewCqlParser(input antlr.TokenStream) *CqlParser { // CqlParser tokens. const ( - CqlParserEOF = antlr.TokenEOF - CqlParserLR_BRACKET = 1 - CqlParserRR_BRACKET = 2 - CqlParserLC_BRACKET = 3 - CqlParserRC_BRACKET = 4 - CqlParserLS_BRACKET = 5 - CqlParserRS_BRACKET = 6 - CqlParserCOMMA = 7 - CqlParserSEMI = 8 - CqlParserCOLON = 9 - CqlParserDOT = 10 - CqlParserSTAR = 11 - CqlParserDIVIDE = 12 - CqlParserMODULE = 13 - CqlParserPLUS = 14 - CqlParserMINUSMINUS = 15 - CqlParserMINUS = 16 - CqlParserDQUOTE = 17 - CqlParserSQUOTE = 18 - CqlParserOPERATOR_EQ = 19 - CqlParserOPERATOR_LT = 20 - CqlParserOPERATOR_GT = 21 - CqlParserOPERATOR_LTE = 22 - CqlParserOPERATOR_GTE = 23 - CqlParserK_ADD = 24 - CqlParserK_AGGREGATE = 25 - CqlParserK_ALL = 26 - CqlParserK_ALLOW = 27 - CqlParserK_ALTER = 28 - CqlParserK_AND = 29 - CqlParserK_ANY = 30 - CqlParserK_APPLY = 31 - CqlParserK_AS = 32 - CqlParserK_ASC = 33 - CqlParserK_AUTHORIZE = 34 - CqlParserK_BATCH = 35 - CqlParserK_BEGIN = 36 - CqlParserK_BY = 37 - CqlParserK_CALLED = 38 - CqlParserK_CLUSTERING = 39 - CqlParserK_COLUMNFAMILY = 40 - CqlParserK_COMPACT = 41 - CqlParserK_CONSISTENCY = 42 - CqlParserK_CONTAINS = 43 - CqlParserK_CREATE = 44 - CqlParserK_CUSTOM = 45 - CqlParserK_DELETE = 46 - CqlParserK_DESC = 47 - CqlParserK_DESCRIBE = 48 - CqlParserK_DISTINCT = 49 - CqlParserK_DROP = 50 - CqlParserK_DURABLE_WRITES = 51 - CqlParserK_EACH_QUORUM = 52 - CqlParserK_ENTRIES = 53 - CqlParserK_EXECUTE = 54 - CqlParserK_EXISTS = 55 - CqlParserK_FALSE = 56 - CqlParserK_FILTERING = 57 - CqlParserK_FINALFUNC = 58 - CqlParserK_FROM = 59 - CqlParserK_FULL = 60 - CqlParserK_FUNCTION = 61 - CqlParserK_FUNCTIONS = 62 - CqlParserK_GRANT = 63 - CqlParserK_IF = 64 - CqlParserK_IN = 65 - CqlParserK_INDEX = 66 - CqlParserK_INFINITY = 67 - CqlParserK_INITCOND = 68 - CqlParserK_INPUT = 69 - CqlParserK_INSERT = 70 - CqlParserK_INTO = 71 - CqlParserK_IS = 72 - CqlParserK_JSON = 73 - CqlParserK_KEY = 74 - CqlParserK_KEYS = 75 - CqlParserK_KEYSPACE = 76 - CqlParserK_KEYSPACES = 77 - CqlParserK_LANGUAGE = 78 - CqlParserK_LEVEL = 79 - CqlParserK_LIMIT = 80 - CqlParserK_LOCAL_ONE = 81 - CqlParserK_LOCAL_QUORUM = 82 - CqlParserK_LOGGED = 83 - CqlParserK_LOGIN = 84 - CqlParserK_MATERIALIZED = 85 - CqlParserK_MODIFY = 86 - CqlParserK_NAN = 87 - CqlParserK_NORECURSIVE = 88 - CqlParserK_NOSUPERUSER = 89 - CqlParserK_NOT = 90 - CqlParserK_NULL = 91 - CqlParserK_OF = 92 - CqlParserK_ON = 93 - CqlParserK_ONE = 94 - CqlParserK_OPTIONS = 95 - CqlParserK_OR = 96 - CqlParserK_ORDER = 97 - CqlParserK_PARTITION = 98 - CqlParserK_PASSWORD = 99 - CqlParserK_PER = 100 - CqlParserK_PERMISSION = 101 - CqlParserK_PERMISSIONS = 102 - CqlParserK_PRIMARY = 103 - CqlParserK_QUORUM = 104 - CqlParserK_RENAME = 105 - CqlParserK_REPLACE = 106 - CqlParserK_REPLICATION = 107 - CqlParserK_RETURNS = 108 - CqlParserK_REVOKE = 109 - CqlParserK_ROLE = 110 - CqlParserK_ROLES = 111 - CqlParserK_SCHEMA = 112 - CqlParserK_SELECT = 113 - CqlParserK_SET = 114 - CqlParserK_SFUNC = 115 - CqlParserK_STATIC = 116 - CqlParserK_STORAGE = 117 - CqlParserK_STYPE = 118 - CqlParserK_SUPERUSER = 119 - CqlParserK_TABLE = 120 - CqlParserK_THREE = 121 - CqlParserK_TIMESTAMP = 122 - CqlParserK_TO = 123 - CqlParserK_TOKEN = 124 - CqlParserK_TRIGGER = 125 - CqlParserK_TRUE = 126 - CqlParserK_TRUNCATE = 127 - CqlParserK_TTL = 128 - CqlParserK_TWO = 129 - CqlParserK_TYPE = 130 - CqlParserK_UNLOGGED = 131 - CqlParserK_UPDATE = 132 - CqlParserK_USE = 133 - CqlParserK_USER = 134 - CqlParserK_USING = 135 - CqlParserK_UUID = 136 - CqlParserK_VALUES = 137 - CqlParserK_VIEW = 138 - CqlParserK_WHERE = 139 - CqlParserK_WITH = 140 - CqlParserK_WRITETIME = 141 - CqlParserK_ASCII = 142 - CqlParserK_BIGINT = 143 - CqlParserK_BLOB = 144 - CqlParserK_BOOLEAN = 145 - CqlParserK_COUNTER = 146 - CqlParserK_DATE = 147 - CqlParserK_DECIMAL = 148 - CqlParserK_DOUBLE = 149 - CqlParserK_FLOAT = 150 - CqlParserK_FROZEN = 151 - CqlParserK_INET = 152 - CqlParserK_INT = 153 - CqlParserK_LIST = 154 - CqlParserK_MAP = 155 - CqlParserK_SMALLINT = 156 - CqlParserK_TEXT = 157 - CqlParserK_TIMEUUID = 158 - CqlParserK_TIME = 159 - CqlParserK_TINYINT = 160 - CqlParserK_TUPLE = 161 - CqlParserK_VARCHAR = 162 - CqlParserK_VARINT = 163 - CqlParserCODE_BLOCK = 164 - CqlParserSTRING_LITERAL = 165 - CqlParserDECIMAL_LITERAL = 166 - CqlParserFLOAT_LITERAL = 167 - CqlParserHEXADECIMAL_LITERAL = 168 - CqlParserREAL_LITERAL = 169 - CqlParserOBJECT_NAME = 170 - CqlParserUUID = 171 - CqlParserSPACE = 172 - CqlParserSPEC_MYSQL_COMMENT = 173 - CqlParserCOMMENT_INPUT = 174 - CqlParserLINE_COMMENT = 175 + CqlParserEOF = antlr.TokenEOF + CqlParserLR_BRACKET = 1 + CqlParserRR_BRACKET = 2 + CqlParserLC_BRACKET = 3 + CqlParserRC_BRACKET = 4 + CqlParserLS_BRACKET = 5 + CqlParserRS_BRACKET = 6 + CqlParserCOMMA = 7 + CqlParserSEMI = 8 + CqlParserCOLON = 9 + CqlParserDOT = 10 + CqlParserSTAR = 11 + CqlParserDIVIDE = 12 + CqlParserMODULE = 13 + CqlParserPLUS = 14 + CqlParserMINUSMINUS = 15 + CqlParserMINUS = 16 + CqlParserDQUOTE = 17 + CqlParserSQUOTE = 18 + CqlParserOPERATOR_EQ = 19 + CqlParserOPERATOR_LT = 20 + CqlParserOPERATOR_GT = 21 + CqlParserOPERATOR_LTE = 22 + CqlParserOPERATOR_GTE = 23 + CqlParserK_ADD = 24 + CqlParserK_AGGREGATE = 25 + CqlParserK_ALL = 26 + CqlParserK_ALLOW = 27 + CqlParserK_ALTER = 28 + CqlParserK_AND = 29 + CqlParserK_ANY = 30 + CqlParserK_APPLY = 31 + CqlParserK_AS = 32 + CqlParserK_ASC = 33 + CqlParserK_AUTHORIZE = 34 + CqlParserK_BATCH = 35 + CqlParserK_BEGIN = 36 + CqlParserK_BY = 37 + CqlParserK_CALLED = 38 + CqlParserK_CLUSTERING = 39 + CqlParserK_COLUMNFAMILY = 40 + CqlParserK_COMPACT = 41 + CqlParserK_CONSISTENCY = 42 + CqlParserK_CONTAINS = 43 + CqlParserK_CREATE = 44 + CqlParserK_CUSTOM = 45 + CqlParserK_DELETE = 46 + CqlParserK_DESC = 47 + CqlParserK_DESCRIBE = 48 + CqlParserK_DISTINCT = 49 + CqlParserK_DROP = 50 + CqlParserK_DURABLE_WRITES = 51 + CqlParserK_EACH_QUORUM = 52 + CqlParserK_ENTRIES = 53 + CqlParserK_EXECUTE = 54 + CqlParserK_EXISTS = 55 + CqlParserK_FALSE = 56 + CqlParserK_FILTERING = 57 + CqlParserK_FINALFUNC = 58 + CqlParserK_FROM = 59 + CqlParserK_FULL = 60 + CqlParserK_FUNCTION = 61 + CqlParserK_FUNCTIONS = 62 + CqlParserK_GRANT = 63 + CqlParserK_IF = 64 + CqlParserK_IN = 65 + CqlParserK_INDEX = 66 + CqlParserK_INFINITY = 67 + CqlParserK_INITCOND = 68 + CqlParserK_INPUT = 69 + CqlParserK_INSERT = 70 + CqlParserK_INTO = 71 + CqlParserK_IS = 72 + CqlParserK_JSON = 73 + CqlParserK_KEY = 74 + CqlParserK_KEYS = 75 + CqlParserK_KEYSPACE = 76 + CqlParserK_KEYSPACES = 77 + CqlParserK_LANGUAGE = 78 + CqlParserK_LEVEL = 79 + CqlParserK_LIMIT = 80 + CqlParserK_LOCAL_ONE = 81 + CqlParserK_LOCAL_QUORUM = 82 + CqlParserK_LOGGED = 83 + CqlParserK_LOGIN = 84 + CqlParserK_MATERIALIZED = 85 + CqlParserK_MODIFY = 86 + CqlParserK_NAN = 87 + CqlParserK_NORECURSIVE = 88 + CqlParserK_NOSUPERUSER = 89 + CqlParserK_NOT = 90 + CqlParserK_NULL = 91 + CqlParserK_OF = 92 + CqlParserK_ON = 93 + CqlParserK_ONE = 94 + CqlParserK_OPTIONS = 95 + CqlParserK_OR = 96 + CqlParserK_ORDER = 97 + CqlParserK_PARTITION = 98 + CqlParserK_PASSWORD = 99 + CqlParserK_PER = 100 + CqlParserK_PERMISSION = 101 + CqlParserK_PERMISSIONS = 102 + CqlParserK_PRIMARY = 103 + CqlParserK_QUORUM = 104 + CqlParserK_RENAME = 105 + CqlParserK_REPLACE = 106 + CqlParserK_REPLICATION = 107 + CqlParserK_RETURNS = 108 + CqlParserK_REVOKE = 109 + CqlParserK_ROLE = 110 + CqlParserK_ROLES = 111 + CqlParserK_SCHEMA = 112 + CqlParserK_SELECT = 113 + CqlParserK_SET = 114 + CqlParserK_SFUNC = 115 + CqlParserK_STATIC = 116 + CqlParserK_STORAGE = 117 + CqlParserK_STYPE = 118 + CqlParserK_SUPERUSER = 119 + CqlParserK_TABLE = 120 + CqlParserK_THREE = 121 + CqlParserK_TIMESTAMP = 122 + CqlParserK_TO = 123 + CqlParserK_TOKEN = 124 + CqlParserK_TRIGGER = 125 + CqlParserK_TRUE = 126 + CqlParserK_TRUNCATE = 127 + CqlParserK_TTL = 128 + CqlParserK_TWO = 129 + CqlParserK_TYPE = 130 + CqlParserK_UNLOGGED = 131 + CqlParserK_UPDATE = 132 + CqlParserK_USE = 133 + CqlParserK_USER = 134 + CqlParserK_USING = 135 + CqlParserK_UUID = 136 + CqlParserK_VALUES = 137 + CqlParserK_VIEW = 138 + CqlParserK_WHERE = 139 + CqlParserK_WITH = 140 + CqlParserK_WRITETIME = 141 + CqlParserK_ASCII = 142 + CqlParserK_BIGINT = 143 + CqlParserK_BLOB = 144 + CqlParserK_BOOLEAN = 145 + CqlParserK_COUNTER = 146 + CqlParserK_DATE = 147 + CqlParserK_DECIMAL = 148 + CqlParserK_DOUBLE = 149 + CqlParserK_FLOAT = 150 + CqlParserK_FROZEN = 151 + CqlParserK_INET = 152 + CqlParserK_INT = 153 + CqlParserK_LIST = 154 + CqlParserK_MAP = 155 + CqlParserK_SMALLINT = 156 + CqlParserK_TEXT = 157 + CqlParserK_TIMEUUID = 158 + CqlParserK_TIME = 159 + CqlParserK_TINYINT = 160 + CqlParserK_TUPLE = 161 + CqlParserK_VECTOR = 162 + CqlParserK_DURATION = 163 + CqlParserK_DEFAULT = 164 + CqlParserK_UNSET = 165 + CqlParserK_SAI = 166 + CqlParserK_STORAGEATTACHEDINDEX = 167 + CqlParserK_ANN = 168 + CqlParserK_VARCHAR = 169 + CqlParserK_VARINT = 170 + CqlParserK_NOW = 171 + CqlParserK_FROMJSON = 172 + CqlParserK_TOJSON = 173 + CqlParserK_MINTIMEUUID = 174 + CqlParserK_MAXTIMEUUID = 175 + CqlParserK_DATETIMENOW = 176 + CqlParserK_CURRENTTIMESTAMP = 177 + CqlParserK_CURRENTDATE = 178 + CqlParserK_CURRENTTIME = 179 + CqlParserK_CURRENTTIMEUUID = 180 + CqlParserCODE_BLOCK = 181 + CqlParserSTRING_LITERAL = 182 + CqlParserDECIMAL_LITERAL = 183 + CqlParserFLOAT_LITERAL = 184 + CqlParserHEXADECIMAL_LITERAL = 185 + CqlParserREAL_LITERAL = 186 + CqlParserOBJECT_NAME = 187 + CqlParserUUID = 188 + CqlParserSPACE = 189 + CqlParserSPEC_MYSQL_COMMENT = 190 + CqlParserCOMMENT_INPUT = 191 + CqlParserLINE_COMMENT = 192 ) // CqlParser rules. @@ -1537,10 +1616,10 @@ const ( CqlParserRULE_use_ = 96 CqlParserRULE_truncate = 97 CqlParserRULE_createIndex = 98 - CqlParserRULE_indexName = 99 - CqlParserRULE_indexColumnSpec = 100 - CqlParserRULE_indexKeysSpec = 101 - CqlParserRULE_indexEntriesSSpec = 102 + CqlParserRULE_indexClass = 99 + CqlParserRULE_indexOptions = 100 + CqlParserRULE_indexName = 101 + CqlParserRULE_indexColumnSpec = 102 CqlParserRULE_indexFullSpec = 103 CqlParserRULE_delete_ = 104 CqlParserRULE_deleteColumnList = 105 @@ -1563,158 +1642,165 @@ const ( CqlParserRULE_ifNotExist = 122 CqlParserRULE_ifExist = 123 CqlParserRULE_insertValuesSpec = 124 - CqlParserRULE_insertColumnSpec = 125 - CqlParserRULE_columnList = 126 - CqlParserRULE_expressionList = 127 - CqlParserRULE_expression = 128 - CqlParserRULE_select_ = 129 - CqlParserRULE_allowFilteringSpec = 130 - CqlParserRULE_limitSpec = 131 - CqlParserRULE_fromSpec = 132 - CqlParserRULE_fromSpecElement = 133 - CqlParserRULE_orderSpec = 134 - CqlParserRULE_orderSpecElement = 135 - CqlParserRULE_whereSpec = 136 - CqlParserRULE_distinctSpec = 137 - CqlParserRULE_selectElements = 138 - CqlParserRULE_selectElement = 139 - CqlParserRULE_relationElements = 140 - CqlParserRULE_relationElement = 141 - CqlParserRULE_relalationContains = 142 - CqlParserRULE_relalationContainsKey = 143 - CqlParserRULE_functionCall = 144 - CqlParserRULE_functionArgs = 145 - CqlParserRULE_constant = 146 - CqlParserRULE_decimalLiteral = 147 - CqlParserRULE_floatLiteral = 148 - CqlParserRULE_stringLiteral = 149 - CqlParserRULE_booleanLiteral = 150 - CqlParserRULE_hexadecimalLiteral = 151 - CqlParserRULE_keyspace = 152 - CqlParserRULE_table = 153 - CqlParserRULE_column = 154 - CqlParserRULE_dataType = 155 - CqlParserRULE_dataTypeName = 156 - CqlParserRULE_dataTypeDefinition = 157 - CqlParserRULE_orderDirection = 158 - CqlParserRULE_role = 159 - CqlParserRULE_trigger = 160 - CqlParserRULE_triggerClass = 161 - CqlParserRULE_materializedView = 162 - CqlParserRULE_type_ = 163 - CqlParserRULE_aggregate = 164 - CqlParserRULE_function_ = 165 - CqlParserRULE_language = 166 - CqlParserRULE_user = 167 - CqlParserRULE_password = 168 - CqlParserRULE_hashKey = 169 - CqlParserRULE_param = 170 - CqlParserRULE_paramName = 171 - CqlParserRULE_kwAdd = 172 - CqlParserRULE_kwAggregate = 173 - CqlParserRULE_kwAll = 174 - CqlParserRULE_kwAllPermissions = 175 - CqlParserRULE_kwAllow = 176 - CqlParserRULE_kwAlter = 177 - CqlParserRULE_kwAnd = 178 - CqlParserRULE_kwApply = 179 - CqlParserRULE_kwAs = 180 - CqlParserRULE_kwAsc = 181 - CqlParserRULE_kwAuthorize = 182 - CqlParserRULE_kwBatch = 183 - CqlParserRULE_kwBegin = 184 - CqlParserRULE_kwBy = 185 - CqlParserRULE_kwCalled = 186 - CqlParserRULE_kwClustering = 187 - CqlParserRULE_kwCompact = 188 - CqlParserRULE_kwContains = 189 - CqlParserRULE_kwCreate = 190 - CqlParserRULE_kwDelete = 191 - CqlParserRULE_kwDesc = 192 - CqlParserRULE_kwDescibe = 193 - CqlParserRULE_kwDistinct = 194 - CqlParserRULE_kwDrop = 195 - CqlParserRULE_kwDurableWrites = 196 - CqlParserRULE_kwEntries = 197 - CqlParserRULE_kwExecute = 198 - CqlParserRULE_kwExists = 199 - CqlParserRULE_kwFiltering = 200 - CqlParserRULE_kwFinalfunc = 201 - CqlParserRULE_kwFrom = 202 - CqlParserRULE_kwFull = 203 - CqlParserRULE_kwFunction = 204 - CqlParserRULE_kwFunctions = 205 - CqlParserRULE_kwGrant = 206 - CqlParserRULE_kwIf = 207 - CqlParserRULE_kwIn = 208 - CqlParserRULE_kwIndex = 209 - CqlParserRULE_kwInitcond = 210 - CqlParserRULE_kwInput = 211 - CqlParserRULE_kwInsert = 212 - CqlParserRULE_kwInto = 213 - CqlParserRULE_kwIs = 214 - CqlParserRULE_kwJson = 215 - CqlParserRULE_kwKey = 216 - CqlParserRULE_kwKeys = 217 - CqlParserRULE_kwKeyspace = 218 - CqlParserRULE_kwKeyspaces = 219 - CqlParserRULE_kwLanguage = 220 - CqlParserRULE_kwLimit = 221 - CqlParserRULE_kwList = 222 - CqlParserRULE_kwLogged = 223 - CqlParserRULE_kwLogin = 224 - CqlParserRULE_kwMaterialized = 225 - CqlParserRULE_kwModify = 226 - CqlParserRULE_kwNosuperuser = 227 - CqlParserRULE_kwNorecursive = 228 - CqlParserRULE_kwNot = 229 - CqlParserRULE_kwNull = 230 - CqlParserRULE_kwOf = 231 - CqlParserRULE_kwOn = 232 - CqlParserRULE_kwOptions = 233 - CqlParserRULE_kwOr = 234 - CqlParserRULE_kwOrder = 235 - CqlParserRULE_kwPassword = 236 - CqlParserRULE_kwPrimary = 237 - CqlParserRULE_kwRename = 238 - CqlParserRULE_kwReplace = 239 - CqlParserRULE_kwReplication = 240 - CqlParserRULE_kwReturns = 241 - CqlParserRULE_kwRole = 242 - CqlParserRULE_kwRoles = 243 - CqlParserRULE_kwSelect = 244 - CqlParserRULE_kwSet = 245 - CqlParserRULE_kwSfunc = 246 - CqlParserRULE_kwStorage = 247 - CqlParserRULE_kwStype = 248 - CqlParserRULE_kwSuperuser = 249 - CqlParserRULE_kwTable = 250 - CqlParserRULE_kwTimestamp = 251 - CqlParserRULE_kwTo = 252 - CqlParserRULE_kwTrigger = 253 - CqlParserRULE_kwTruncate = 254 - CqlParserRULE_kwTtl = 255 - CqlParserRULE_kwType = 256 - CqlParserRULE_kwUnlogged = 257 - CqlParserRULE_kwUpdate = 258 - CqlParserRULE_kwUse = 259 - CqlParserRULE_kwUser = 260 - CqlParserRULE_kwUsing = 261 - CqlParserRULE_kwValues = 262 - CqlParserRULE_kwView = 263 - CqlParserRULE_kwWhere = 264 - CqlParserRULE_kwWith = 265 - CqlParserRULE_kwRevoke = 266 - CqlParserRULE_syntaxBracketLr = 267 - CqlParserRULE_syntaxBracketRr = 268 - CqlParserRULE_syntaxBracketLc = 269 - CqlParserRULE_syntaxBracketRc = 270 - CqlParserRULE_syntaxBracketLa = 271 - CqlParserRULE_syntaxBracketRa = 272 - CqlParserRULE_syntaxBracketLs = 273 - CqlParserRULE_syntaxBracketRs = 274 - CqlParserRULE_syntaxComma = 275 - CqlParserRULE_syntaxColon = 276 + CqlParserRULE_jsonDefaultUnset = 125 + CqlParserRULE_insertColumnSpec = 126 + CqlParserRULE_columnList = 127 + CqlParserRULE_expressionList = 128 + CqlParserRULE_expression = 129 + CqlParserRULE_select_ = 130 + CqlParserRULE_allowFilteringSpec = 131 + CqlParserRULE_limitSpec = 132 + CqlParserRULE_fromSpec = 133 + CqlParserRULE_fromSpecElement = 134 + CqlParserRULE_orderSpec = 135 + CqlParserRULE_orderSpecElement = 136 + CqlParserRULE_vectorLiteral = 137 + CqlParserRULE_constantList = 138 + CqlParserRULE_whereSpec = 139 + CqlParserRULE_distinctSpec = 140 + CqlParserRULE_selectElements = 141 + CqlParserRULE_selectElement = 142 + CqlParserRULE_relationElements = 143 + CqlParserRULE_relationElement = 144 + CqlParserRULE_relalationContains = 145 + CqlParserRULE_relalationContainsKey = 146 + CqlParserRULE_functionCall = 147 + CqlParserRULE_functionArgs = 148 + CqlParserRULE_constant = 149 + CqlParserRULE_decimalLiteral = 150 + CqlParserRULE_floatLiteral = 151 + CqlParserRULE_stringLiteral = 152 + CqlParserRULE_booleanLiteral = 153 + CqlParserRULE_hexadecimalLiteral = 154 + CqlParserRULE_keyspace = 155 + CqlParserRULE_table = 156 + CqlParserRULE_column = 157 + CqlParserRULE_dataType = 158 + CqlParserRULE_dataTypeName = 159 + CqlParserRULE_dataTypeDefinition = 160 + CqlParserRULE_orderDirection = 161 + CqlParserRULE_role = 162 + CqlParserRULE_trigger = 163 + CqlParserRULE_triggerClass = 164 + CqlParserRULE_materializedView = 165 + CqlParserRULE_type_ = 166 + CqlParserRULE_aggregate = 167 + CqlParserRULE_function_ = 168 + CqlParserRULE_language = 169 + CqlParserRULE_user = 170 + CqlParserRULE_password = 171 + CqlParserRULE_hashKey = 172 + CqlParserRULE_param = 173 + CqlParserRULE_paramName = 174 + CqlParserRULE_kwAdd = 175 + CqlParserRULE_kwAggregate = 176 + CqlParserRULE_kwAll = 177 + CqlParserRULE_kwAllPermissions = 178 + CqlParserRULE_kwAllow = 179 + CqlParserRULE_kwAlter = 180 + CqlParserRULE_kwAnd = 181 + CqlParserRULE_kwApply = 182 + CqlParserRULE_kwAs = 183 + CqlParserRULE_kwAsc = 184 + CqlParserRULE_kwAuthorize = 185 + CqlParserRULE_kwBatch = 186 + CqlParserRULE_kwBegin = 187 + CqlParserRULE_kwBy = 188 + CqlParserRULE_kwCalled = 189 + CqlParserRULE_kwClustering = 190 + CqlParserRULE_kwCompact = 191 + CqlParserRULE_kwContains = 192 + CqlParserRULE_kwCreate = 193 + CqlParserRULE_kwCustom = 194 + CqlParserRULE_kwDefault = 195 + CqlParserRULE_kwUnset = 196 + CqlParserRULE_kwAnn = 197 + CqlParserRULE_kwDelete = 198 + CqlParserRULE_kwDesc = 199 + CqlParserRULE_kwDescribe = 200 + CqlParserRULE_kwDistinct = 201 + CqlParserRULE_kwDrop = 202 + CqlParserRULE_kwDurableWrites = 203 + CqlParserRULE_kwEntries = 204 + CqlParserRULE_kwExecute = 205 + CqlParserRULE_kwExists = 206 + CqlParserRULE_kwFiltering = 207 + CqlParserRULE_kwFinalfunc = 208 + CqlParserRULE_kwFrom = 209 + CqlParserRULE_kwFull = 210 + CqlParserRULE_kwFunction = 211 + CqlParserRULE_kwFunctions = 212 + CqlParserRULE_kwGrant = 213 + CqlParserRULE_kwIf = 214 + CqlParserRULE_kwIn = 215 + CqlParserRULE_kwIndex = 216 + CqlParserRULE_kwInitcond = 217 + CqlParserRULE_kwInput = 218 + CqlParserRULE_kwInsert = 219 + CqlParserRULE_kwInto = 220 + CqlParserRULE_kwIs = 221 + CqlParserRULE_kwJson = 222 + CqlParserRULE_kwKey = 223 + CqlParserRULE_kwKeys = 224 + CqlParserRULE_kwKeyspace = 225 + CqlParserRULE_kwKeyspaces = 226 + CqlParserRULE_kwLanguage = 227 + CqlParserRULE_kwLimit = 228 + CqlParserRULE_kwList = 229 + CqlParserRULE_kwLogged = 230 + CqlParserRULE_kwLogin = 231 + CqlParserRULE_kwMaterialized = 232 + CqlParserRULE_kwModify = 233 + CqlParserRULE_kwNosuperuser = 234 + CqlParserRULE_kwNorecursive = 235 + CqlParserRULE_kwNot = 236 + CqlParserRULE_kwNull = 237 + CqlParserRULE_kwOf = 238 + CqlParserRULE_kwOn = 239 + CqlParserRULE_kwOptions = 240 + CqlParserRULE_kwOr = 241 + CqlParserRULE_kwOrder = 242 + CqlParserRULE_kwPassword = 243 + CqlParserRULE_kwPrimary = 244 + CqlParserRULE_kwRename = 245 + CqlParserRULE_kwReplace = 246 + CqlParserRULE_kwReplication = 247 + CqlParserRULE_kwReturns = 248 + CqlParserRULE_kwRole = 249 + CqlParserRULE_kwRoles = 250 + CqlParserRULE_kwSelect = 251 + CqlParserRULE_kwSet = 252 + CqlParserRULE_kwSfunc = 253 + CqlParserRULE_kwStorage = 254 + CqlParserRULE_kwStype = 255 + CqlParserRULE_kwSuperuser = 256 + CqlParserRULE_kwTable = 257 + CqlParserRULE_kwTimestamp = 258 + CqlParserRULE_kwTo = 259 + CqlParserRULE_kwTrigger = 260 + CqlParserRULE_kwTruncate = 261 + CqlParserRULE_kwTtl = 262 + CqlParserRULE_kwType = 263 + CqlParserRULE_kwUnlogged = 264 + CqlParserRULE_kwUpdate = 265 + CqlParserRULE_kwUse = 266 + CqlParserRULE_kwUser = 267 + CqlParserRULE_kwUsing = 268 + CqlParserRULE_kwValues = 269 + CqlParserRULE_kwView = 270 + CqlParserRULE_kwWhere = 271 + CqlParserRULE_kwWith = 272 + CqlParserRULE_kwRevoke = 273 + CqlParserRULE_syntaxBracketLr = 274 + CqlParserRULE_syntaxBracketRr = 275 + CqlParserRULE_syntaxBracketLc = 276 + CqlParserRULE_syntaxBracketRc = 277 + CqlParserRULE_syntaxBracketLa = 278 + CqlParserRULE_syntaxBracketRa = 279 + CqlParserRULE_syntaxBracketLs = 280 + CqlParserRULE_syntaxBracketRs = 281 + CqlParserRULE_syntaxComma = 282 + CqlParserRULE_syntaxColon = 283 ) // IRootContext is an interface to support dynamic dispatch. @@ -1825,7 +1911,7 @@ func (p *CqlParser) Root() (localctx IRootContext) { var _la int p.EnterOuterAlt(localctx, 1) - p.SetState(555) + p.SetState(569) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -1834,12 +1920,12 @@ func (p *CqlParser) Root() (localctx IRootContext) { if ((int64((_la-8)) & ^0x3f) == 0 && ((int64(1)<<(_la-8))&4647719557368119297) != 0) || ((int64((_la-109)) & ^0x3f) == 0 && ((int64(1)<<(_la-109))&35184397516817) != 0) { { - p.SetState(554) + p.SetState(568) p.Cqls() } } - p.SetState(558) + p.SetState(572) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -1848,7 +1934,7 @@ func (p *CqlParser) Root() (localctx IRootContext) { if _la == CqlParserMINUSMINUS { { - p.SetState(557) + p.SetState(571) p.Match(CqlParserMINUSMINUS) if p.HasError() { // Recognition error - abort rule @@ -1858,7 +1944,7 @@ func (p *CqlParser) Root() (localctx IRootContext) { } { - p.SetState(560) + p.SetState(574) p.Match(CqlParserEOF) if p.HasError() { // Recognition error - abort rule @@ -2101,7 +2187,7 @@ func (p *CqlParser) Cqls() (localctx ICqlsContext) { var _alt int p.EnterOuterAlt(localctx, 1) - p.SetState(571) + p.SetState(585) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -2112,7 +2198,7 @@ func (p *CqlParser) Cqls() (localctx ICqlsContext) { } for _alt != 2 && _alt != antlr.ATNInvalidAltNumber { if _alt == 1 { - p.SetState(569) + p.SetState(583) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -2121,10 +2207,10 @@ func (p *CqlParser) Cqls() (localctx ICqlsContext) { switch p.GetTokenStream().LA(1) { case CqlParserK_ALTER, CqlParserK_APPLY, CqlParserK_BEGIN, CqlParserK_CREATE, CqlParserK_DELETE, CqlParserK_DROP, CqlParserK_GRANT, CqlParserK_INSERT, CqlParserK_REVOKE, CqlParserK_SELECT, CqlParserK_TRUNCATE, CqlParserK_UPDATE, CqlParserK_USE, CqlParserK_LIST: { - p.SetState(562) + p.SetState(576) p.Cql() } - p.SetState(564) + p.SetState(578) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -2133,7 +2219,7 @@ func (p *CqlParser) Cqls() (localctx ICqlsContext) { if _la == CqlParserMINUSMINUS { { - p.SetState(563) + p.SetState(577) p.Match(CqlParserMINUSMINUS) if p.HasError() { // Recognition error - abort rule @@ -2143,13 +2229,13 @@ func (p *CqlParser) Cqls() (localctx ICqlsContext) { } { - p.SetState(566) + p.SetState(580) p.StatementSeparator() } case CqlParserSEMI: { - p.SetState(568) + p.SetState(582) p.Empty_() } @@ -2159,7 +2245,7 @@ func (p *CqlParser) Cqls() (localctx ICqlsContext) { } } - p.SetState(573) + p.SetState(587) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -2169,7 +2255,7 @@ func (p *CqlParser) Cqls() (localctx ICqlsContext) { goto errorExit } } - p.SetState(582) + p.SetState(596) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -2178,14 +2264,14 @@ func (p *CqlParser) Cqls() (localctx ICqlsContext) { switch p.GetTokenStream().LA(1) { case CqlParserK_ALTER, CqlParserK_APPLY, CqlParserK_BEGIN, CqlParserK_CREATE, CqlParserK_DELETE, CqlParserK_DROP, CqlParserK_GRANT, CqlParserK_INSERT, CqlParserK_REVOKE, CqlParserK_SELECT, CqlParserK_TRUNCATE, CqlParserK_UPDATE, CqlParserK_USE, CqlParserK_LIST: { - p.SetState(574) + p.SetState(588) p.Cql() } - p.SetState(579) + p.SetState(593) p.GetErrorHandler().Sync(p) if p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 6, p.GetParserRuleContext()) == 1 { - p.SetState(576) + p.SetState(590) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -2194,7 +2280,7 @@ func (p *CqlParser) Cqls() (localctx ICqlsContext) { if _la == CqlParserMINUSMINUS { { - p.SetState(575) + p.SetState(589) p.Match(CqlParserMINUSMINUS) if p.HasError() { // Recognition error - abort rule @@ -2204,7 +2290,7 @@ func (p *CqlParser) Cqls() (localctx ICqlsContext) { } { - p.SetState(578) + p.SetState(592) p.StatementSeparator() } @@ -2214,7 +2300,7 @@ func (p *CqlParser) Cqls() (localctx ICqlsContext) { case CqlParserSEMI: { - p.SetState(581) + p.SetState(595) p.Empty_() } @@ -2321,7 +2407,7 @@ func (p *CqlParser) StatementSeparator() (localctx IStatementSeparatorContext) { p.EnterRule(localctx, 4, CqlParserRULE_statementSeparator) p.EnterOuterAlt(localctx, 1) { - p.SetState(584) + p.SetState(598) p.Match(CqlParserSEMI) if p.HasError() { // Recognition error - abort rule @@ -2439,7 +2525,7 @@ func (p *CqlParser) Empty_() (localctx IEmpty_Context) { p.EnterRule(localctx, 6, CqlParserRULE_empty_) p.EnterOuterAlt(localctx, 1) { - p.SetState(586) + p.SetState(600) p.StatementSeparator() } @@ -3163,7 +3249,7 @@ func (s *CqlContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) Cql() (localctx ICqlContext) { localctx = NewCqlContext(p, p.GetParserRuleContext(), p.GetState()) p.EnterRule(localctx, 8, CqlParserRULE_cql) - p.SetState(625) + p.SetState(639) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -3173,259 +3259,259 @@ func (p *CqlParser) Cql() (localctx ICqlContext) { case 1: p.EnterOuterAlt(localctx, 1) { - p.SetState(588) + p.SetState(602) p.AlterKeyspace() } case 2: p.EnterOuterAlt(localctx, 2) { - p.SetState(589) + p.SetState(603) p.AlterMaterializedView() } case 3: p.EnterOuterAlt(localctx, 3) { - p.SetState(590) + p.SetState(604) p.AlterRole() } case 4: p.EnterOuterAlt(localctx, 4) { - p.SetState(591) + p.SetState(605) p.AlterTable() } case 5: p.EnterOuterAlt(localctx, 5) { - p.SetState(592) + p.SetState(606) p.AlterType() } case 6: p.EnterOuterAlt(localctx, 6) { - p.SetState(593) + p.SetState(607) p.AlterUser() } case 7: p.EnterOuterAlt(localctx, 7) { - p.SetState(594) + p.SetState(608) p.ApplyBatch() } case 8: p.EnterOuterAlt(localctx, 8) { - p.SetState(595) + p.SetState(609) p.CreateAggregate() } case 9: p.EnterOuterAlt(localctx, 9) { - p.SetState(596) + p.SetState(610) p.CreateFunction() } case 10: p.EnterOuterAlt(localctx, 10) { - p.SetState(597) + p.SetState(611) p.CreateIndex() } case 11: p.EnterOuterAlt(localctx, 11) { - p.SetState(598) + p.SetState(612) p.CreateKeyspace() } case 12: p.EnterOuterAlt(localctx, 12) { - p.SetState(599) + p.SetState(613) p.CreateMaterializedView() } case 13: p.EnterOuterAlt(localctx, 13) { - p.SetState(600) + p.SetState(614) p.CreateRole() } case 14: p.EnterOuterAlt(localctx, 14) { - p.SetState(601) + p.SetState(615) p.CreateTable() } case 15: p.EnterOuterAlt(localctx, 15) { - p.SetState(602) + p.SetState(616) p.CreateTrigger() } case 16: p.EnterOuterAlt(localctx, 16) { - p.SetState(603) + p.SetState(617) p.CreateType() } case 17: p.EnterOuterAlt(localctx, 17) { - p.SetState(604) + p.SetState(618) p.CreateUser() } case 18: p.EnterOuterAlt(localctx, 18) { - p.SetState(605) + p.SetState(619) p.Delete_() } case 19: p.EnterOuterAlt(localctx, 19) { - p.SetState(606) + p.SetState(620) p.DropAggregate() } case 20: p.EnterOuterAlt(localctx, 20) { - p.SetState(607) + p.SetState(621) p.DropFunction() } case 21: p.EnterOuterAlt(localctx, 21) { - p.SetState(608) + p.SetState(622) p.DropIndex() } case 22: p.EnterOuterAlt(localctx, 22) { - p.SetState(609) + p.SetState(623) p.DropKeyspace() } case 23: p.EnterOuterAlt(localctx, 23) { - p.SetState(610) + p.SetState(624) p.DropMaterializedView() } case 24: p.EnterOuterAlt(localctx, 24) { - p.SetState(611) + p.SetState(625) p.DropRole() } case 25: p.EnterOuterAlt(localctx, 25) { - p.SetState(612) + p.SetState(626) p.DropTable() } case 26: p.EnterOuterAlt(localctx, 26) { - p.SetState(613) + p.SetState(627) p.DropTrigger() } case 27: p.EnterOuterAlt(localctx, 27) { - p.SetState(614) + p.SetState(628) p.DropType() } case 28: p.EnterOuterAlt(localctx, 28) { - p.SetState(615) + p.SetState(629) p.DropUser() } case 29: p.EnterOuterAlt(localctx, 29) { - p.SetState(616) + p.SetState(630) p.Grant() } case 30: p.EnterOuterAlt(localctx, 30) { - p.SetState(617) + p.SetState(631) p.Insert() } case 31: p.EnterOuterAlt(localctx, 31) { - p.SetState(618) + p.SetState(632) p.ListPermissions() } case 32: p.EnterOuterAlt(localctx, 32) { - p.SetState(619) + p.SetState(633) p.ListRoles() } case 33: p.EnterOuterAlt(localctx, 33) { - p.SetState(620) + p.SetState(634) p.Revoke() } case 34: p.EnterOuterAlt(localctx, 34) { - p.SetState(621) + p.SetState(635) p.Select_() } case 35: p.EnterOuterAlt(localctx, 35) { - p.SetState(622) + p.SetState(636) p.Truncate() } case 36: p.EnterOuterAlt(localctx, 36) { - p.SetState(623) + p.SetState(637) p.Update() } case 37: p.EnterOuterAlt(localctx, 37) { - p.SetState(624) + p.SetState(638) p.Use_() } @@ -3628,27 +3714,27 @@ func (p *CqlParser) Revoke() (localctx IRevokeContext) { p.EnterRule(localctx, 10, CqlParserRULE_revoke) p.EnterOuterAlt(localctx, 1) { - p.SetState(627) + p.SetState(641) p.KwRevoke() } { - p.SetState(628) + p.SetState(642) p.Priviledge() } { - p.SetState(629) + p.SetState(643) p.KwOn() } { - p.SetState(630) + p.SetState(644) p.Resource() } { - p.SetState(631) + p.SetState(645) p.KwFrom() } { - p.SetState(632) + p.SetState(646) p.Role() } @@ -3832,14 +3918,14 @@ func (p *CqlParser) ListRoles() (localctx IListRolesContext) { p.EnterOuterAlt(localctx, 1) { - p.SetState(634) + p.SetState(648) p.KwList() } { - p.SetState(635) + p.SetState(649) p.KwRoles() } - p.SetState(639) + p.SetState(653) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -3848,16 +3934,16 @@ func (p *CqlParser) ListRoles() (localctx IListRolesContext) { if _la == CqlParserK_OF { { - p.SetState(636) + p.SetState(650) p.KwOf() } { - p.SetState(637) + p.SetState(651) p.Role() } } - p.SetState(642) + p.SetState(656) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -3866,7 +3952,7 @@ func (p *CqlParser) ListRoles() (localctx IListRolesContext) { if _la == CqlParserK_NORECURSIVE { { - p.SetState(641) + p.SetState(655) p.KwNorecursive() } @@ -4069,14 +4155,14 @@ func (p *CqlParser) ListPermissions() (localctx IListPermissionsContext) { p.EnterOuterAlt(localctx, 1) { - p.SetState(644) + p.SetState(658) p.KwList() } { - p.SetState(645) + p.SetState(659) p.Priviledge() } - p.SetState(649) + p.SetState(663) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -4085,16 +4171,16 @@ func (p *CqlParser) ListPermissions() (localctx IListPermissionsContext) { if _la == CqlParserK_ON { { - p.SetState(646) + p.SetState(660) p.KwOn() } { - p.SetState(647) + p.SetState(661) p.Resource() } } - p.SetState(654) + p.SetState(668) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -4103,11 +4189,11 @@ func (p *CqlParser) ListPermissions() (localctx IListPermissionsContext) { if _la == CqlParserK_OF { { - p.SetState(651) + p.SetState(665) p.KwOf() } { - p.SetState(652) + p.SetState(666) p.Role() } @@ -4308,27 +4394,27 @@ func (p *CqlParser) Grant() (localctx IGrantContext) { p.EnterRule(localctx, 16, CqlParserRULE_grant) p.EnterOuterAlt(localctx, 1) { - p.SetState(656) + p.SetState(670) p.KwGrant() } { - p.SetState(657) + p.SetState(671) p.Priviledge() } { - p.SetState(658) + p.SetState(672) p.KwOn() } { - p.SetState(659) + p.SetState(673) p.Resource() } { - p.SetState(660) + p.SetState(674) p.KwTo() } { - p.SetState(661) + p.SetState(675) p.Role() } @@ -4357,7 +4443,7 @@ type IPriviledgeContext interface { KwAllPermissions() IKwAllPermissionsContext KwAlter() IKwAlterContext KwAuthorize() IKwAuthorizeContext - KwDescibe() IKwDescibeContext + KwDescribe() IKwDescribeContext KwExecute() IKwExecuteContext KwCreate() IKwCreateContext KwDrop() IKwDropContext @@ -4464,10 +4550,10 @@ func (s *PriviledgeContext) KwAuthorize() IKwAuthorizeContext { return t.(IKwAuthorizeContext) } -func (s *PriviledgeContext) KwDescibe() IKwDescibeContext { +func (s *PriviledgeContext) KwDescribe() IKwDescribeContext { var t antlr.RuleContext for _, ctx := range s.GetChildren() { - if _, ok := ctx.(IKwDescibeContext); ok { + if _, ok := ctx.(IKwDescribeContext); ok { t = ctx.(antlr.RuleContext) break } @@ -4477,7 +4563,7 @@ func (s *PriviledgeContext) KwDescibe() IKwDescibeContext { return nil } - return t.(IKwDescibeContext) + return t.(IKwDescribeContext) } func (s *PriviledgeContext) KwExecute() IKwExecuteContext { @@ -4593,7 +4679,7 @@ func (s *PriviledgeContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) Priviledge() (localctx IPriviledgeContext) { localctx = NewPriviledgeContext(p, p.GetParserRuleContext(), p.GetState()) p.EnterRule(localctx, 18, CqlParserRULE_priviledge) - p.SetState(675) + p.SetState(689) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -4602,7 +4688,7 @@ func (p *CqlParser) Priviledge() (localctx IPriviledgeContext) { switch p.GetTokenStream().LA(1) { case CqlParserK_ALL: p.EnterOuterAlt(localctx, 1) - p.SetState(665) + p.SetState(679) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -4611,13 +4697,13 @@ func (p *CqlParser) Priviledge() (localctx IPriviledgeContext) { switch p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 13, p.GetParserRuleContext()) { case 1: { - p.SetState(663) + p.SetState(677) p.KwAll() } case 2: { - p.SetState(664) + p.SetState(678) p.KwAllPermissions() } @@ -4628,56 +4714,56 @@ func (p *CqlParser) Priviledge() (localctx IPriviledgeContext) { case CqlParserK_ALTER: p.EnterOuterAlt(localctx, 2) { - p.SetState(667) + p.SetState(681) p.KwAlter() } case CqlParserK_AUTHORIZE: p.EnterOuterAlt(localctx, 3) { - p.SetState(668) + p.SetState(682) p.KwAuthorize() } case CqlParserK_DESCRIBE: p.EnterOuterAlt(localctx, 4) { - p.SetState(669) - p.KwDescibe() + p.SetState(683) + p.KwDescribe() } case CqlParserK_EXECUTE: p.EnterOuterAlt(localctx, 5) { - p.SetState(670) + p.SetState(684) p.KwExecute() } case CqlParserK_CREATE: p.EnterOuterAlt(localctx, 6) { - p.SetState(671) + p.SetState(685) p.KwCreate() } case CqlParserK_DROP: p.EnterOuterAlt(localctx, 7) { - p.SetState(672) + p.SetState(686) p.KwDrop() } case CqlParserK_MODIFY: p.EnterOuterAlt(localctx, 8) { - p.SetState(673) + p.SetState(687) p.KwModify() } case CqlParserK_SELECT: p.EnterOuterAlt(localctx, 9) { - p.SetState(674) + p.SetState(688) p.KwSelect() } @@ -5005,7 +5091,7 @@ func (p *CqlParser) Resource() (localctx IResourceContext) { p.EnterRule(localctx, 20, CqlParserRULE_resource) var _la int - p.SetState(715) + p.SetState(729) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -5015,53 +5101,53 @@ func (p *CqlParser) Resource() (localctx IResourceContext) { case 1: p.EnterOuterAlt(localctx, 1) { - p.SetState(677) + p.SetState(691) p.KwAll() } { - p.SetState(678) + p.SetState(692) p.KwFunctions() } case 2: p.EnterOuterAlt(localctx, 2) { - p.SetState(680) + p.SetState(694) p.KwAll() } { - p.SetState(681) + p.SetState(695) p.KwFunctions() } { - p.SetState(682) + p.SetState(696) p.KwIn() } { - p.SetState(683) + p.SetState(697) p.KwKeyspace() } { - p.SetState(684) + p.SetState(698) p.Keyspace() } case 3: p.EnterOuterAlt(localctx, 3) { - p.SetState(686) + p.SetState(700) p.KwFunction() } - p.SetState(690) + p.SetState(704) p.GetErrorHandler().Sync(p) if p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 15, p.GetParserRuleContext()) == 1 { { - p.SetState(687) + p.SetState(701) p.Keyspace() } { - p.SetState(688) + p.SetState(702) p.Match(CqlParserDOT) if p.HasError() { // Recognition error - abort rule @@ -5073,35 +5159,35 @@ func (p *CqlParser) Resource() (localctx IResourceContext) { goto errorExit } { - p.SetState(692) + p.SetState(706) p.Function_() } case 4: p.EnterOuterAlt(localctx, 4) { - p.SetState(694) + p.SetState(708) p.KwAll() } { - p.SetState(695) + p.SetState(709) p.KwKeyspaces() } case 5: p.EnterOuterAlt(localctx, 5) { - p.SetState(697) + p.SetState(711) p.KwKeyspace() } { - p.SetState(698) + p.SetState(712) p.Keyspace() } case 6: p.EnterOuterAlt(localctx, 6) - p.SetState(701) + p.SetState(715) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -5110,21 +5196,21 @@ func (p *CqlParser) Resource() (localctx IResourceContext) { if _la == CqlParserK_TABLE { { - p.SetState(700) + p.SetState(714) p.KwTable() } } - p.SetState(706) + p.SetState(720) p.GetErrorHandler().Sync(p) if p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 17, p.GetParserRuleContext()) == 1 { { - p.SetState(703) + p.SetState(717) p.Keyspace() } { - p.SetState(704) + p.SetState(718) p.Match(CqlParserDOT) if p.HasError() { // Recognition error - abort rule @@ -5136,29 +5222,29 @@ func (p *CqlParser) Resource() (localctx IResourceContext) { goto errorExit } { - p.SetState(708) + p.SetState(722) p.Table() } case 7: p.EnterOuterAlt(localctx, 7) { - p.SetState(709) + p.SetState(723) p.KwAll() } { - p.SetState(710) + p.SetState(724) p.KwRoles() } case 8: p.EnterOuterAlt(localctx, 8) { - p.SetState(712) + p.SetState(726) p.KwRole() } { - p.SetState(713) + p.SetState(727) p.Role() } @@ -5414,14 +5500,14 @@ func (p *CqlParser) CreateUser() (localctx ICreateUserContext) { p.EnterOuterAlt(localctx, 1) { - p.SetState(717) + p.SetState(731) p.KwCreate() } { - p.SetState(718) + p.SetState(732) p.KwUser() } - p.SetState(720) + p.SetState(734) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -5430,28 +5516,28 @@ func (p *CqlParser) CreateUser() (localctx ICreateUserContext) { if _la == CqlParserK_IF { { - p.SetState(719) + p.SetState(733) p.IfNotExist() } } { - p.SetState(722) + p.SetState(736) p.User() } { - p.SetState(723) + p.SetState(737) p.KwWith() } { - p.SetState(724) + p.SetState(738) p.KwPassword() } { - p.SetState(725) + p.SetState(739) p.StringLiteral() } - p.SetState(728) + p.SetState(742) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -5459,13 +5545,13 @@ func (p *CqlParser) CreateUser() (localctx ICreateUserContext) { switch p.GetTokenStream().LA(1) { case CqlParserK_SUPERUSER: { - p.SetState(726) + p.SetState(740) p.KwSuperuser() } case CqlParserK_NOSUPERUSER: { - p.SetState(727) + p.SetState(741) p.KwNosuperuser() } @@ -5654,14 +5740,14 @@ func (p *CqlParser) CreateRole() (localctx ICreateRoleContext) { p.EnterOuterAlt(localctx, 1) { - p.SetState(730) + p.SetState(744) p.KwCreate() } { - p.SetState(731) + p.SetState(745) p.KwRole() } - p.SetState(733) + p.SetState(747) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -5670,16 +5756,16 @@ func (p *CqlParser) CreateRole() (localctx ICreateRoleContext) { if _la == CqlParserK_IF { { - p.SetState(732) + p.SetState(746) p.IfNotExist() } } { - p.SetState(735) + p.SetState(749) p.Role() } - p.SetState(737) + p.SetState(751) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -5688,7 +5774,7 @@ func (p *CqlParser) CreateRole() (localctx ICreateRoleContext) { if _la == CqlParserK_WITH { { - p.SetState(736) + p.SetState(750) p.RoleWith() } @@ -5930,14 +6016,14 @@ func (p *CqlParser) CreateType() (localctx ICreateTypeContext) { p.EnterOuterAlt(localctx, 1) { - p.SetState(739) + p.SetState(753) p.KwCreate() } { - p.SetState(740) + p.SetState(754) p.KwType() } - p.SetState(742) + p.SetState(756) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -5946,21 +6032,21 @@ func (p *CqlParser) CreateType() (localctx ICreateTypeContext) { if _la == CqlParserK_IF { { - p.SetState(741) + p.SetState(755) p.IfNotExist() } } - p.SetState(747) + p.SetState(761) p.GetErrorHandler().Sync(p) if p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 24, p.GetParserRuleContext()) == 1 { { - p.SetState(744) + p.SetState(758) p.Keyspace() } { - p.SetState(745) + p.SetState(759) p.Match(CqlParserDOT) if p.HasError() { // Recognition error - abort rule @@ -5972,19 +6058,19 @@ func (p *CqlParser) CreateType() (localctx ICreateTypeContext) { goto errorExit } { - p.SetState(749) + p.SetState(763) p.Type_() } { - p.SetState(750) + p.SetState(764) p.SyntaxBracketLr() } { - p.SetState(751) + p.SetState(765) p.TypeMemberColumnList() } { - p.SetState(752) + p.SetState(766) p.SyntaxBracketRr() } @@ -6212,14 +6298,14 @@ func (p *CqlParser) TypeMemberColumnList() (localctx ITypeMemberColumnListContex p.EnterOuterAlt(localctx, 1) { - p.SetState(754) + p.SetState(768) p.Column() } { - p.SetState(755) + p.SetState(769) p.DataType() } - p.SetState(762) + p.SetState(776) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -6228,19 +6314,19 @@ func (p *CqlParser) TypeMemberColumnList() (localctx ITypeMemberColumnListContex for _la == CqlParserCOMMA { { - p.SetState(756) + p.SetState(770) p.SyntaxComma() } { - p.SetState(757) + p.SetState(771) p.Column() } { - p.SetState(758) + p.SetState(772) p.DataType() } - p.SetState(764) + p.SetState(778) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -6467,14 +6553,14 @@ func (p *CqlParser) CreateTrigger() (localctx ICreateTriggerContext) { p.EnterOuterAlt(localctx, 1) { - p.SetState(765) + p.SetState(779) p.KwCreate() } { - p.SetState(766) + p.SetState(780) p.KwTrigger() } - p.SetState(768) + p.SetState(782) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -6483,21 +6569,21 @@ func (p *CqlParser) CreateTrigger() (localctx ICreateTriggerContext) { if _la == CqlParserK_IF { { - p.SetState(767) + p.SetState(781) p.IfNotExist() } } - p.SetState(773) + p.SetState(787) p.GetErrorHandler().Sync(p) if p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 27, p.GetParserRuleContext()) == 1 { { - p.SetState(770) + p.SetState(784) p.Keyspace() } { - p.SetState(771) + p.SetState(785) p.Match(CqlParserDOT) if p.HasError() { // Recognition error - abort rule @@ -6509,15 +6595,15 @@ func (p *CqlParser) CreateTrigger() (localctx ICreateTriggerContext) { goto errorExit } { - p.SetState(775) + p.SetState(789) p.Trigger() } { - p.SetState(776) + p.SetState(790) p.KwUsing() } { - p.SetState(777) + p.SetState(791) p.TriggerClass() } @@ -6984,18 +7070,18 @@ func (p *CqlParser) CreateMaterializedView() (localctx ICreateMaterializedViewCo p.EnterOuterAlt(localctx, 1) { - p.SetState(779) + p.SetState(793) p.KwCreate() } { - p.SetState(780) + p.SetState(794) p.KwMaterialized() } { - p.SetState(781) + p.SetState(795) p.KwView() } - p.SetState(783) + p.SetState(797) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -7004,21 +7090,21 @@ func (p *CqlParser) CreateMaterializedView() (localctx ICreateMaterializedViewCo if _la == CqlParserK_IF { { - p.SetState(782) + p.SetState(796) p.IfNotExist() } } - p.SetState(788) + p.SetState(802) p.GetErrorHandler().Sync(p) if p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 29, p.GetParserRuleContext()) == 1 { { - p.SetState(785) + p.SetState(799) p.Keyspace() } { - p.SetState(786) + p.SetState(800) p.Match(CqlParserDOT) if p.HasError() { // Recognition error - abort rule @@ -7030,35 +7116,35 @@ func (p *CqlParser) CreateMaterializedView() (localctx ICreateMaterializedViewCo goto errorExit } { - p.SetState(790) + p.SetState(804) p.MaterializedView() } { - p.SetState(791) + p.SetState(805) p.KwAs() } { - p.SetState(792) + p.SetState(806) p.KwSelect() } { - p.SetState(793) + p.SetState(807) p.ColumnList() } { - p.SetState(794) + p.SetState(808) p.KwFrom() } - p.SetState(798) + p.SetState(812) p.GetErrorHandler().Sync(p) if p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 30, p.GetParserRuleContext()) == 1 { { - p.SetState(795) + p.SetState(809) p.Keyspace() } { - p.SetState(796) + p.SetState(810) p.Match(CqlParserDOT) if p.HasError() { // Recognition error - abort rule @@ -7070,34 +7156,34 @@ func (p *CqlParser) CreateMaterializedView() (localctx ICreateMaterializedViewCo goto errorExit } { - p.SetState(800) + p.SetState(814) p.Table() } { - p.SetState(801) + p.SetState(815) p.MaterializedViewWhere() } { - p.SetState(802) + p.SetState(816) p.KwPrimary() } { - p.SetState(803) + p.SetState(817) p.KwKey() } { - p.SetState(804) + p.SetState(818) p.SyntaxBracketLr() } { - p.SetState(805) + p.SetState(819) p.ColumnList() } { - p.SetState(806) + p.SetState(820) p.SyntaxBracketRr() } - p.SetState(810) + p.SetState(824) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -7106,11 +7192,11 @@ func (p *CqlParser) CreateMaterializedView() (localctx ICreateMaterializedViewCo if _la == CqlParserK_WITH { { - p.SetState(807) + p.SetState(821) p.KwWith() } { - p.SetState(808) + p.SetState(822) p.MaterializedViewOptions() } @@ -7279,14 +7365,14 @@ func (p *CqlParser) MaterializedViewWhere() (localctx IMaterializedViewWhereCont p.EnterOuterAlt(localctx, 1) { - p.SetState(812) + p.SetState(826) p.KwWhere() } { - p.SetState(813) + p.SetState(827) p.ColumnNotNullList() } - p.SetState(817) + p.SetState(831) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -7295,11 +7381,11 @@ func (p *CqlParser) MaterializedViewWhere() (localctx IMaterializedViewWhereCont if _la == CqlParserK_AND { { - p.SetState(814) + p.SetState(828) p.KwAnd() } { - p.SetState(815) + p.SetState(829) p.RelationElements() } @@ -7486,10 +7572,10 @@ func (p *CqlParser) ColumnNotNullList() (localctx IColumnNotNullListContext) { p.EnterOuterAlt(localctx, 1) { - p.SetState(819) + p.SetState(833) p.ColumnNotNull() } - p.SetState(825) + p.SetState(839) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -7501,16 +7587,16 @@ func (p *CqlParser) ColumnNotNullList() (localctx IColumnNotNullListContext) { for _alt != 2 && _alt != antlr.ATNInvalidAltNumber { if _alt == 1 { { - p.SetState(820) + p.SetState(834) p.KwAnd() } { - p.SetState(821) + p.SetState(835) p.ColumnNotNull() } } - p.SetState(827) + p.SetState(841) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -7682,19 +7768,19 @@ func (p *CqlParser) ColumnNotNull() (localctx IColumnNotNullContext) { p.EnterRule(localctx, 38, CqlParserRULE_columnNotNull) p.EnterOuterAlt(localctx, 1) { - p.SetState(828) + p.SetState(842) p.Column() } { - p.SetState(829) + p.SetState(843) p.KwIs() } { - p.SetState(830) + p.SetState(844) p.KwNot() } { - p.SetState(831) + p.SetState(845) p.KwNull() } @@ -7840,7 +7926,7 @@ func (s *MaterializedViewOptionsContext) Accept(visitor antlr.ParseTreeVisitor) func (p *CqlParser) MaterializedViewOptions() (localctx IMaterializedViewOptionsContext) { localctx = NewMaterializedViewOptionsContext(p, p.GetParserRuleContext(), p.GetState()) p.EnterRule(localctx, 40, CqlParserRULE_materializedViewOptions) - p.SetState(839) + p.SetState(853) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -7850,29 +7936,29 @@ func (p *CqlParser) MaterializedViewOptions() (localctx IMaterializedViewOptions case 1: p.EnterOuterAlt(localctx, 1) { - p.SetState(833) + p.SetState(847) p.TableOptions() } case 2: p.EnterOuterAlt(localctx, 2) { - p.SetState(834) + p.SetState(848) p.TableOptions() } { - p.SetState(835) + p.SetState(849) p.KwAnd() } { - p.SetState(836) + p.SetState(850) p.ClusteringOrder() } case 3: p.EnterOuterAlt(localctx, 3) { - p.SetState(838) + p.SetState(852) p.ClusteringOrder() } @@ -8167,14 +8253,14 @@ func (p *CqlParser) CreateKeyspace() (localctx ICreateKeyspaceContext) { p.EnterOuterAlt(localctx, 1) { - p.SetState(841) + p.SetState(855) p.KwCreate() } { - p.SetState(842) + p.SetState(856) p.KwKeyspace() } - p.SetState(844) + p.SetState(858) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -8183,25 +8269,25 @@ func (p *CqlParser) CreateKeyspace() (localctx ICreateKeyspaceContext) { if _la == CqlParserK_IF { { - p.SetState(843) + p.SetState(857) p.IfNotExist() } } { - p.SetState(846) + p.SetState(860) p.Keyspace() } { - p.SetState(847) + p.SetState(861) p.KwWith() } { - p.SetState(848) + p.SetState(862) p.KwReplication() } { - p.SetState(849) + p.SetState(863) p.Match(CqlParserOPERATOR_EQ) if p.HasError() { // Recognition error - abort rule @@ -8209,18 +8295,18 @@ func (p *CqlParser) CreateKeyspace() (localctx ICreateKeyspaceContext) { } } { - p.SetState(850) + p.SetState(864) p.SyntaxBracketLc() } { - p.SetState(851) + p.SetState(865) p.ReplicationList() } { - p.SetState(852) + p.SetState(866) p.SyntaxBracketRc() } - p.SetState(856) + p.SetState(870) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -8229,11 +8315,11 @@ func (p *CqlParser) CreateKeyspace() (localctx ICreateKeyspaceContext) { if _la == CqlParserK_AND { { - p.SetState(853) + p.SetState(867) p.KwAnd() } { - p.SetState(854) + p.SetState(868) p.DurableWrites() } @@ -8611,10 +8697,10 @@ func (p *CqlParser) CreateFunction() (localctx ICreateFunctionContext) { p.EnterOuterAlt(localctx, 1) { - p.SetState(858) + p.SetState(872) p.KwCreate() } - p.SetState(860) + p.SetState(874) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -8623,16 +8709,16 @@ func (p *CqlParser) CreateFunction() (localctx ICreateFunctionContext) { if _la == CqlParserK_OR { { - p.SetState(859) + p.SetState(873) p.OrReplace() } } { - p.SetState(862) + p.SetState(876) p.KwFunction() } - p.SetState(864) + p.SetState(878) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -8641,21 +8727,21 @@ func (p *CqlParser) CreateFunction() (localctx ICreateFunctionContext) { if _la == CqlParserK_IF { { - p.SetState(863) + p.SetState(877) p.IfNotExist() } } - p.SetState(869) + p.SetState(883) p.GetErrorHandler().Sync(p) if p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 39, p.GetParserRuleContext()) == 1 { { - p.SetState(866) + p.SetState(880) p.Keyspace() } { - p.SetState(867) + p.SetState(881) p.Match(CqlParserDOT) if p.HasError() { // Recognition error - abort rule @@ -8667,14 +8753,14 @@ func (p *CqlParser) CreateFunction() (localctx ICreateFunctionContext) { goto errorExit } { - p.SetState(871) + p.SetState(885) p.Function_() } { - p.SetState(872) + p.SetState(886) p.SyntaxBracketLr() } - p.SetState(874) + p.SetState(888) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -8683,41 +8769,41 @@ func (p *CqlParser) CreateFunction() (localctx ICreateFunctionContext) { if _la == CqlParserK_INPUT || _la == CqlParserOBJECT_NAME { { - p.SetState(873) + p.SetState(887) p.ParamList() } } { - p.SetState(876) + p.SetState(890) p.SyntaxBracketRr() } { - p.SetState(877) + p.SetState(891) p.ReturnMode() } { - p.SetState(878) + p.SetState(892) p.KwReturns() } { - p.SetState(879) + p.SetState(893) p.DataType() } { - p.SetState(880) + p.SetState(894) p.KwLanguage() } { - p.SetState(881) + p.SetState(895) p.Language() } { - p.SetState(882) + p.SetState(896) p.KwAs() } { - p.SetState(883) + p.SetState(897) p.CodeBlock() } @@ -8826,7 +8912,7 @@ func (p *CqlParser) CodeBlock() (localctx ICodeBlockContext) { p.EnterOuterAlt(localctx, 1) { - p.SetState(885) + p.SetState(899) _la = p.GetTokenStream().LA(1) if !(_la == CqlParserCODE_BLOCK || _la == CqlParserSTRING_LITERAL) { @@ -9018,10 +9104,10 @@ func (p *CqlParser) ParamList() (localctx IParamListContext) { p.EnterOuterAlt(localctx, 1) { - p.SetState(887) + p.SetState(901) p.Param() } - p.SetState(893) + p.SetState(907) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -9030,15 +9116,15 @@ func (p *CqlParser) ParamList() (localctx IParamListContext) { for _la == CqlParserCOMMA { { - p.SetState(888) + p.SetState(902) p.SyntaxComma() } { - p.SetState(889) + p.SetState(903) p.Param() } - p.SetState(895) + p.SetState(909) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -9249,7 +9335,7 @@ func (p *CqlParser) ReturnMode() (localctx IReturnModeContext) { localctx = NewReturnModeContext(p, p.GetParserRuleContext(), p.GetState()) p.EnterRule(localctx, 50, CqlParserRULE_returnMode) p.EnterOuterAlt(localctx, 1) - p.SetState(900) + p.SetState(914) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -9258,17 +9344,17 @@ func (p *CqlParser) ReturnMode() (localctx IReturnModeContext) { switch p.GetTokenStream().LA(1) { case CqlParserK_CALLED: { - p.SetState(896) + p.SetState(910) p.KwCalled() } case CqlParserK_RETURNS: { - p.SetState(897) + p.SetState(911) p.KwReturns() } { - p.SetState(898) + p.SetState(912) p.KwNull() } @@ -9277,15 +9363,15 @@ func (p *CqlParser) ReturnMode() (localctx IReturnModeContext) { goto errorExit } { - p.SetState(902) + p.SetState(916) p.KwOn() } { - p.SetState(903) + p.SetState(917) p.KwNull() } { - p.SetState(904) + p.SetState(918) p.KwInput() } @@ -9696,10 +9782,10 @@ func (p *CqlParser) CreateAggregate() (localctx ICreateAggregateContext) { p.EnterOuterAlt(localctx, 1) { - p.SetState(906) + p.SetState(920) p.KwCreate() } - p.SetState(908) + p.SetState(922) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -9708,16 +9794,16 @@ func (p *CqlParser) CreateAggregate() (localctx ICreateAggregateContext) { if _la == CqlParserK_OR { { - p.SetState(907) + p.SetState(921) p.OrReplace() } } { - p.SetState(910) + p.SetState(924) p.KwAggregate() } - p.SetState(912) + p.SetState(926) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -9726,21 +9812,21 @@ func (p *CqlParser) CreateAggregate() (localctx ICreateAggregateContext) { if _la == CqlParserK_IF { { - p.SetState(911) + p.SetState(925) p.IfNotExist() } } - p.SetState(917) + p.SetState(931) p.GetErrorHandler().Sync(p) if p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 45, p.GetParserRuleContext()) == 1 { { - p.SetState(914) + p.SetState(928) p.Keyspace() } { - p.SetState(915) + p.SetState(929) p.Match(CqlParserDOT) if p.HasError() { // Recognition error - abort rule @@ -9752,51 +9838,51 @@ func (p *CqlParser) CreateAggregate() (localctx ICreateAggregateContext) { goto errorExit } { - p.SetState(919) + p.SetState(933) p.Aggregate() } { - p.SetState(920) + p.SetState(934) p.SyntaxBracketLr() } { - p.SetState(921) + p.SetState(935) p.DataType() } { - p.SetState(922) + p.SetState(936) p.SyntaxBracketRr() } { - p.SetState(923) + p.SetState(937) p.KwSfunc() } { - p.SetState(924) + p.SetState(938) p.Function_() } { - p.SetState(925) + p.SetState(939) p.KwStype() } { - p.SetState(926) + p.SetState(940) p.DataType() } { - p.SetState(927) + p.SetState(941) p.KwFinalfunc() } { - p.SetState(928) + p.SetState(942) p.Function_() } { - p.SetState(929) + p.SetState(943) p.KwInitcond() } { - p.SetState(930) + p.SetState(944) p.InitCondDefinition() } @@ -9959,7 +10045,7 @@ func (s *InitCondDefinitionContext) Accept(visitor antlr.ParseTreeVisitor) inter func (p *CqlParser) InitCondDefinition() (localctx IInitCondDefinitionContext) { localctx = NewInitCondDefinitionContext(p, p.GetParserRuleContext(), p.GetState()) p.EnterRule(localctx, 54, CqlParserRULE_initCondDefinition) - p.SetState(936) + p.SetState(950) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -9969,28 +10055,28 @@ func (p *CqlParser) InitCondDefinition() (localctx IInitCondDefinitionContext) { case 1: p.EnterOuterAlt(localctx, 1) { - p.SetState(932) + p.SetState(946) p.Constant() } case 2: p.EnterOuterAlt(localctx, 2) { - p.SetState(933) + p.SetState(947) p.InitCondList() } case 3: p.EnterOuterAlt(localctx, 3) { - p.SetState(934) + p.SetState(948) p.InitCondListNested() } case 4: p.EnterOuterAlt(localctx, 4) { - p.SetState(935) + p.SetState(949) p.InitCondHash() } @@ -10213,14 +10299,14 @@ func (p *CqlParser) InitCondHash() (localctx IInitCondHashContext) { p.EnterOuterAlt(localctx, 1) { - p.SetState(938) + p.SetState(952) p.SyntaxBracketLc() } { - p.SetState(939) + p.SetState(953) p.InitCondHashItem() } - p.SetState(945) + p.SetState(959) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -10229,15 +10315,15 @@ func (p *CqlParser) InitCondHash() (localctx IInitCondHashContext) { for _la == CqlParserCOMMA { { - p.SetState(940) + p.SetState(954) p.SyntaxComma() } { - p.SetState(941) + p.SetState(955) p.InitCondHashItem() } - p.SetState(947) + p.SetState(961) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -10245,7 +10331,7 @@ func (p *CqlParser) InitCondHash() (localctx IInitCondHashContext) { _la = p.GetTokenStream().LA(1) } { - p.SetState(948) + p.SetState(962) p.SyntaxBracketRc() } @@ -10381,11 +10467,11 @@ func (p *CqlParser) InitCondHashItem() (localctx IInitCondHashItemContext) { p.EnterRule(localctx, 58, CqlParserRULE_initCondHashItem) p.EnterOuterAlt(localctx, 1) { - p.SetState(950) + p.SetState(964) p.HashKey() } { - p.SetState(951) + p.SetState(965) p.Match(CqlParserCOLON) if p.HasError() { // Recognition error - abort rule @@ -10393,7 +10479,7 @@ func (p *CqlParser) InitCondHashItem() (localctx IInitCondHashItemContext) { } } { - p.SetState(952) + p.SetState(966) p.InitCondDefinition() } @@ -10655,14 +10741,14 @@ func (p *CqlParser) InitCondListNested() (localctx IInitCondListNestedContext) { p.EnterOuterAlt(localctx, 1) { - p.SetState(954) + p.SetState(968) p.SyntaxBracketLr() } { - p.SetState(955) + p.SetState(969) p.InitCondList() } - p.SetState(962) + p.SetState(976) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -10670,7 +10756,7 @@ func (p *CqlParser) InitCondListNested() (localctx IInitCondListNestedContext) { _la = p.GetTokenStream().LA(1) for _la == CqlParserLR_BRACKET || _la == CqlParserCOMMA { - p.SetState(960) + p.SetState(974) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -10679,17 +10765,17 @@ func (p *CqlParser) InitCondListNested() (localctx IInitCondListNestedContext) { switch p.GetTokenStream().LA(1) { case CqlParserCOMMA: { - p.SetState(956) + p.SetState(970) p.SyntaxComma() } { - p.SetState(957) + p.SetState(971) p.Constant() } case CqlParserLR_BRACKET: { - p.SetState(959) + p.SetState(973) p.InitCondList() } @@ -10698,7 +10784,7 @@ func (p *CqlParser) InitCondListNested() (localctx IInitCondListNestedContext) { goto errorExit } - p.SetState(964) + p.SetState(978) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -10706,7 +10792,7 @@ func (p *CqlParser) InitCondListNested() (localctx IInitCondListNestedContext) { _la = p.GetTokenStream().LA(1) } { - p.SetState(965) + p.SetState(979) p.SyntaxBracketRr() } @@ -10925,14 +11011,14 @@ func (p *CqlParser) InitCondList() (localctx IInitCondListContext) { p.EnterOuterAlt(localctx, 1) { - p.SetState(967) + p.SetState(981) p.SyntaxBracketLr() } { - p.SetState(968) + p.SetState(982) p.Constant() } - p.SetState(974) + p.SetState(988) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -10941,15 +11027,15 @@ func (p *CqlParser) InitCondList() (localctx IInitCondListContext) { for _la == CqlParserCOMMA { { - p.SetState(969) + p.SetState(983) p.SyntaxComma() } { - p.SetState(970) + p.SetState(984) p.Constant() } - p.SetState(976) + p.SetState(990) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -10957,7 +11043,7 @@ func (p *CqlParser) InitCondList() (localctx IInitCondListContext) { _la = p.GetTokenStream().LA(1) } { - p.SetState(977) + p.SetState(991) p.SyntaxBracketRr() } @@ -11088,11 +11174,11 @@ func (p *CqlParser) OrReplace() (localctx IOrReplaceContext) { p.EnterRule(localctx, 64, CqlParserRULE_orReplace) p.EnterOuterAlt(localctx, 1) { - p.SetState(979) + p.SetState(993) p.KwOr() } { - p.SetState(980) + p.SetState(994) p.KwReplace() } @@ -11293,26 +11379,26 @@ func (p *CqlParser) AlterUser() (localctx IAlterUserContext) { p.EnterOuterAlt(localctx, 1) { - p.SetState(982) + p.SetState(996) p.KwAlter() } { - p.SetState(983) + p.SetState(997) p.KwUser() } { - p.SetState(984) + p.SetState(998) p.User() } { - p.SetState(985) + p.SetState(999) p.KwWith() } { - p.SetState(986) + p.SetState(1000) p.UserPassword() } - p.SetState(988) + p.SetState(1002) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -11321,7 +11407,7 @@ func (p *CqlParser) AlterUser() (localctx IAlterUserContext) { if _la == CqlParserK_NOSUPERUSER || _la == CqlParserK_SUPERUSER { { - p.SetState(987) + p.SetState(1001) p.UserSuperUser() } @@ -11454,11 +11540,11 @@ func (p *CqlParser) UserPassword() (localctx IUserPasswordContext) { p.EnterRule(localctx, 68, CqlParserRULE_userPassword) p.EnterOuterAlt(localctx, 1) { - p.SetState(990) + p.SetState(1004) p.KwPassword() } { - p.SetState(991) + p.SetState(1005) p.StringLiteral() } @@ -11587,7 +11673,7 @@ func (s *UserSuperUserContext) Accept(visitor antlr.ParseTreeVisitor) interface{ func (p *CqlParser) UserSuperUser() (localctx IUserSuperUserContext) { localctx = NewUserSuperUserContext(p, p.GetParserRuleContext(), p.GetState()) p.EnterRule(localctx, 70, CqlParserRULE_userSuperUser) - p.SetState(995) + p.SetState(1009) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -11597,14 +11683,14 @@ func (p *CqlParser) UserSuperUser() (localctx IUserSuperUserContext) { case CqlParserK_SUPERUSER: p.EnterOuterAlt(localctx, 1) { - p.SetState(993) + p.SetState(1007) p.KwSuperuser() } case CqlParserK_NOSUPERUSER: p.EnterOuterAlt(localctx, 2) { - p.SetState(994) + p.SetState(1008) p.KwNosuperuser() } @@ -11796,23 +11882,23 @@ func (p *CqlParser) AlterType() (localctx IAlterTypeContext) { p.EnterRule(localctx, 72, CqlParserRULE_alterType) p.EnterOuterAlt(localctx, 1) { - p.SetState(997) + p.SetState(1011) p.KwAlter() } { - p.SetState(998) + p.SetState(1012) p.KwType() } - p.SetState(1002) + p.SetState(1016) p.GetErrorHandler().Sync(p) if p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 53, p.GetParserRuleContext()) == 1 { { - p.SetState(999) + p.SetState(1013) p.Keyspace() } { - p.SetState(1000) + p.SetState(1014) p.Match(CqlParserDOT) if p.HasError() { // Recognition error - abort rule @@ -11824,11 +11910,11 @@ func (p *CqlParser) AlterType() (localctx IAlterTypeContext) { goto errorExit } { - p.SetState(1004) + p.SetState(1018) p.Type_() } { - p.SetState(1005) + p.SetState(1019) p.AlterTypeOperation() } @@ -11974,7 +12060,7 @@ func (s *AlterTypeOperationContext) Accept(visitor antlr.ParseTreeVisitor) inter func (p *CqlParser) AlterTypeOperation() (localctx IAlterTypeOperationContext) { localctx = NewAlterTypeOperationContext(p, p.GetParserRuleContext(), p.GetState()) p.EnterRule(localctx, 74, CqlParserRULE_alterTypeOperation) - p.SetState(1010) + p.SetState(1024) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -11984,21 +12070,21 @@ func (p *CqlParser) AlterTypeOperation() (localctx IAlterTypeOperationContext) { case CqlParserK_ALTER: p.EnterOuterAlt(localctx, 1) { - p.SetState(1007) + p.SetState(1021) p.AlterTypeAlterType() } case CqlParserK_ADD: p.EnterOuterAlt(localctx, 2) { - p.SetState(1008) + p.SetState(1022) p.AlterTypeAdd() } case CqlParserK_RENAME: p.EnterOuterAlt(localctx, 3) { - p.SetState(1009) + p.SetState(1023) p.AlterTypeRename() } @@ -12134,11 +12220,11 @@ func (p *CqlParser) AlterTypeRename() (localctx IAlterTypeRenameContext) { p.EnterRule(localctx, 76, CqlParserRULE_alterTypeRename) p.EnterOuterAlt(localctx, 1) { - p.SetState(1012) + p.SetState(1026) p.KwRename() } { - p.SetState(1013) + p.SetState(1027) p.AlterTypeRenameList() } @@ -12323,10 +12409,10 @@ func (p *CqlParser) AlterTypeRenameList() (localctx IAlterTypeRenameListContext) p.EnterOuterAlt(localctx, 1) { - p.SetState(1015) + p.SetState(1029) p.AlterTypeRenameItem() } - p.SetState(1021) + p.SetState(1035) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -12335,15 +12421,15 @@ func (p *CqlParser) AlterTypeRenameList() (localctx IAlterTypeRenameListContext) for _la == CqlParserK_AND { { - p.SetState(1016) + p.SetState(1030) p.KwAnd() } { - p.SetState(1017) + p.SetState(1031) p.AlterTypeRenameItem() } - p.SetState(1023) + p.SetState(1037) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -12504,15 +12590,15 @@ func (p *CqlParser) AlterTypeRenameItem() (localctx IAlterTypeRenameItemContext) p.EnterRule(localctx, 80, CqlParserRULE_alterTypeRenameItem) p.EnterOuterAlt(localctx, 1) { - p.SetState(1024) + p.SetState(1038) p.Column() } { - p.SetState(1025) + p.SetState(1039) p.KwTo() } { - p.SetState(1026) + p.SetState(1040) p.Column() } @@ -12757,18 +12843,18 @@ func (p *CqlParser) AlterTypeAdd() (localctx IAlterTypeAddContext) { p.EnterOuterAlt(localctx, 1) { - p.SetState(1028) + p.SetState(1042) p.KwAdd() } { - p.SetState(1029) + p.SetState(1043) p.Column() } { - p.SetState(1030) + p.SetState(1044) p.DataType() } - p.SetState(1037) + p.SetState(1051) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -12777,19 +12863,19 @@ func (p *CqlParser) AlterTypeAdd() (localctx IAlterTypeAddContext) { for _la == CqlParserCOMMA { { - p.SetState(1031) + p.SetState(1045) p.SyntaxComma() } { - p.SetState(1032) + p.SetState(1046) p.Column() } { - p.SetState(1033) + p.SetState(1047) p.DataType() } - p.SetState(1039) + p.SetState(1053) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -12958,19 +13044,19 @@ func (p *CqlParser) AlterTypeAlterType() (localctx IAlterTypeAlterTypeContext) { p.EnterRule(localctx, 84, CqlParserRULE_alterTypeAlterType) p.EnterOuterAlt(localctx, 1) { - p.SetState(1040) + p.SetState(1054) p.KwAlter() } { - p.SetState(1041) + p.SetState(1055) p.Column() } { - p.SetState(1042) + p.SetState(1056) p.KwType() } { - p.SetState(1043) + p.SetState(1057) p.DataType() } @@ -13157,23 +13243,23 @@ func (p *CqlParser) AlterTable() (localctx IAlterTableContext) { p.EnterRule(localctx, 86, CqlParserRULE_alterTable) p.EnterOuterAlt(localctx, 1) { - p.SetState(1045) + p.SetState(1059) p.KwAlter() } { - p.SetState(1046) + p.SetState(1060) p.KwTable() } - p.SetState(1050) + p.SetState(1064) p.GetErrorHandler().Sync(p) if p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 57, p.GetParserRuleContext()) == 1 { { - p.SetState(1047) + p.SetState(1061) p.Keyspace() } { - p.SetState(1048) + p.SetState(1062) p.Match(CqlParserDOT) if p.HasError() { // Recognition error - abort rule @@ -13185,11 +13271,11 @@ func (p *CqlParser) AlterTable() (localctx IAlterTableContext) { goto errorExit } { - p.SetState(1052) + p.SetState(1066) p.Table() } { - p.SetState(1053) + p.SetState(1067) p.AlterTableOperation() } @@ -13369,7 +13455,7 @@ func (s *AlterTableOperationContext) Accept(visitor antlr.ParseTreeVisitor) inte func (p *CqlParser) AlterTableOperation() (localctx IAlterTableOperationContext) { localctx = NewAlterTableOperationContext(p, p.GetParserRuleContext(), p.GetState()) p.EnterRule(localctx, 88, CqlParserRULE_alterTableOperation) - p.SetState(1060) + p.SetState(1074) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -13379,35 +13465,35 @@ func (p *CqlParser) AlterTableOperation() (localctx IAlterTableOperationContext) case 1: p.EnterOuterAlt(localctx, 1) { - p.SetState(1055) + p.SetState(1069) p.AlterTableAdd() } case 2: p.EnterOuterAlt(localctx, 2) { - p.SetState(1056) + p.SetState(1070) p.AlterTableDropColumns() } case 3: p.EnterOuterAlt(localctx, 3) { - p.SetState(1057) + p.SetState(1071) p.AlterTableDropCompactStorage() } case 4: p.EnterOuterAlt(localctx, 4) { - p.SetState(1058) + p.SetState(1072) p.AlterTableRename() } case 5: p.EnterOuterAlt(localctx, 5) { - p.SetState(1059) + p.SetState(1073) p.AlterTableWith() } @@ -13542,11 +13628,11 @@ func (p *CqlParser) AlterTableWith() (localctx IAlterTableWithContext) { p.EnterRule(localctx, 90, CqlParserRULE_alterTableWith) p.EnterOuterAlt(localctx, 1) { - p.SetState(1062) + p.SetState(1076) p.KwWith() } { - p.SetState(1063) + p.SetState(1077) p.TableOptions() } @@ -13720,19 +13806,19 @@ func (p *CqlParser) AlterTableRename() (localctx IAlterTableRenameContext) { p.EnterRule(localctx, 92, CqlParserRULE_alterTableRename) p.EnterOuterAlt(localctx, 1) { - p.SetState(1065) + p.SetState(1079) p.KwRename() } { - p.SetState(1066) + p.SetState(1080) p.Column() } { - p.SetState(1067) + p.SetState(1081) p.KwTo() } { - p.SetState(1068) + p.SetState(1082) p.Column() } @@ -13880,15 +13966,15 @@ func (p *CqlParser) AlterTableDropCompactStorage() (localctx IAlterTableDropComp p.EnterRule(localctx, 94, CqlParserRULE_alterTableDropCompactStorage) p.EnterOuterAlt(localctx, 1) { - p.SetState(1070) + p.SetState(1084) p.KwDrop() } { - p.SetState(1071) + p.SetState(1085) p.KwCompact() } { - p.SetState(1072) + p.SetState(1086) p.KwStorage() } @@ -14019,11 +14105,11 @@ func (p *CqlParser) AlterTableDropColumns() (localctx IAlterTableDropColumnsCont p.EnterRule(localctx, 96, CqlParserRULE_alterTableDropColumns) p.EnterOuterAlt(localctx, 1) { - p.SetState(1074) + p.SetState(1088) p.KwDrop() } { - p.SetState(1075) + p.SetState(1089) p.AlterTableDropColumnList() } @@ -14208,10 +14294,10 @@ func (p *CqlParser) AlterTableDropColumnList() (localctx IAlterTableDropColumnLi p.EnterOuterAlt(localctx, 1) { - p.SetState(1077) + p.SetState(1091) p.Column() } - p.SetState(1083) + p.SetState(1097) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -14220,15 +14306,15 @@ func (p *CqlParser) AlterTableDropColumnList() (localctx IAlterTableDropColumnLi for _la == CqlParserCOMMA { { - p.SetState(1078) + p.SetState(1092) p.SyntaxComma() } { - p.SetState(1079) + p.SetState(1093) p.Column() } - p.SetState(1085) + p.SetState(1099) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -14363,11 +14449,11 @@ func (p *CqlParser) AlterTableAdd() (localctx IAlterTableAddContext) { p.EnterRule(localctx, 100, CqlParserRULE_alterTableAdd) p.EnterOuterAlt(localctx, 1) { - p.SetState(1086) + p.SetState(1100) p.KwAdd() } { - p.SetState(1087) + p.SetState(1101) p.AlterTableColumnDefinition() } @@ -14595,14 +14681,14 @@ func (p *CqlParser) AlterTableColumnDefinition() (localctx IAlterTableColumnDefi p.EnterOuterAlt(localctx, 1) { - p.SetState(1089) + p.SetState(1103) p.Column() } { - p.SetState(1090) + p.SetState(1104) p.DataType() } - p.SetState(1097) + p.SetState(1111) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -14611,19 +14697,19 @@ func (p *CqlParser) AlterTableColumnDefinition() (localctx IAlterTableColumnDefi for _la == CqlParserCOMMA { { - p.SetState(1091) + p.SetState(1105) p.SyntaxComma() } { - p.SetState(1092) + p.SetState(1106) p.Column() } { - p.SetState(1093) + p.SetState(1107) p.DataType() } - p.SetState(1099) + p.SetState(1113) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -14794,18 +14880,18 @@ func (p *CqlParser) AlterRole() (localctx IAlterRoleContext) { p.EnterOuterAlt(localctx, 1) { - p.SetState(1100) + p.SetState(1114) p.KwAlter() } { - p.SetState(1101) + p.SetState(1115) p.KwRole() } { - p.SetState(1102) + p.SetState(1116) p.Role() } - p.SetState(1104) + p.SetState(1118) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -14814,7 +14900,7 @@ func (p *CqlParser) AlterRole() (localctx IAlterRoleContext) { if _la == CqlParserK_WITH { { - p.SetState(1103) + p.SetState(1117) p.RoleWith() } @@ -15018,15 +15104,15 @@ func (p *CqlParser) RoleWith() (localctx IRoleWithContext) { p.EnterOuterAlt(localctx, 1) { - p.SetState(1106) + p.SetState(1120) p.KwWith() } { - p.SetState(1107) + p.SetState(1121) p.RoleWithOptions() } - p.SetState(1113) + p.SetState(1127) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -15035,15 +15121,15 @@ func (p *CqlParser) RoleWith() (localctx IRoleWithContext) { for _la == CqlParserK_AND { { - p.SetState(1108) + p.SetState(1122) p.KwAnd() } { - p.SetState(1109) + p.SetState(1123) p.RoleWithOptions() } - p.SetState(1115) + p.SetState(1129) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -15266,7 +15352,7 @@ func (s *RoleWithOptionsContext) Accept(visitor antlr.ParseTreeVisitor) interfac func (p *CqlParser) RoleWithOptions() (localctx IRoleWithOptionsContext) { localctx = NewRoleWithOptionsContext(p, p.GetParserRuleContext(), p.GetState()) p.EnterRule(localctx, 108, CqlParserRULE_roleWithOptions) - p.SetState(1132) + p.SetState(1146) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -15276,11 +15362,11 @@ func (p *CqlParser) RoleWithOptions() (localctx IRoleWithOptionsContext) { case CqlParserK_PASSWORD: p.EnterOuterAlt(localctx, 1) { - p.SetState(1116) + p.SetState(1130) p.KwPassword() } { - p.SetState(1117) + p.SetState(1131) p.Match(CqlParserOPERATOR_EQ) if p.HasError() { // Recognition error - abort rule @@ -15288,18 +15374,18 @@ func (p *CqlParser) RoleWithOptions() (localctx IRoleWithOptionsContext) { } } { - p.SetState(1118) + p.SetState(1132) p.StringLiteral() } case CqlParserK_LOGIN: p.EnterOuterAlt(localctx, 2) { - p.SetState(1120) + p.SetState(1134) p.KwLogin() } { - p.SetState(1121) + p.SetState(1135) p.Match(CqlParserOPERATOR_EQ) if p.HasError() { // Recognition error - abort rule @@ -15307,18 +15393,18 @@ func (p *CqlParser) RoleWithOptions() (localctx IRoleWithOptionsContext) { } } { - p.SetState(1122) + p.SetState(1136) p.BooleanLiteral() } case CqlParserK_SUPERUSER: p.EnterOuterAlt(localctx, 3) { - p.SetState(1124) + p.SetState(1138) p.KwSuperuser() } { - p.SetState(1125) + p.SetState(1139) p.Match(CqlParserOPERATOR_EQ) if p.HasError() { // Recognition error - abort rule @@ -15326,18 +15412,18 @@ func (p *CqlParser) RoleWithOptions() (localctx IRoleWithOptionsContext) { } } { - p.SetState(1126) + p.SetState(1140) p.BooleanLiteral() } case CqlParserK_OPTIONS: p.EnterOuterAlt(localctx, 4) { - p.SetState(1128) + p.SetState(1142) p.KwOptions() } { - p.SetState(1129) + p.SetState(1143) p.Match(CqlParserOPERATOR_EQ) if p.HasError() { // Recognition error - abort rule @@ -15345,7 +15431,7 @@ func (p *CqlParser) RoleWithOptions() (localctx IRoleWithOptionsContext) { } } { - p.SetState(1130) + p.SetState(1144) p.OptionHash() } @@ -15573,27 +15659,27 @@ func (p *CqlParser) AlterMaterializedView() (localctx IAlterMaterializedViewCont p.EnterOuterAlt(localctx, 1) { - p.SetState(1134) + p.SetState(1148) p.KwAlter() } { - p.SetState(1135) + p.SetState(1149) p.KwMaterialized() } { - p.SetState(1136) + p.SetState(1150) p.KwView() } - p.SetState(1140) + p.SetState(1154) p.GetErrorHandler().Sync(p) if p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 64, p.GetParserRuleContext()) == 1 { { - p.SetState(1137) + p.SetState(1151) p.Keyspace() } { - p.SetState(1138) + p.SetState(1152) p.Match(CqlParserDOT) if p.HasError() { // Recognition error - abort rule @@ -15605,10 +15691,10 @@ func (p *CqlParser) AlterMaterializedView() (localctx IAlterMaterializedViewCont goto errorExit } { - p.SetState(1142) + p.SetState(1156) p.MaterializedView() } - p.SetState(1146) + p.SetState(1160) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -15617,11 +15703,11 @@ func (p *CqlParser) AlterMaterializedView() (localctx IAlterMaterializedViewCont if _la == CqlParserK_WITH { { - p.SetState(1143) + p.SetState(1157) p.KwWith() } { - p.SetState(1144) + p.SetState(1158) p.TableOptions() } @@ -15790,14 +15876,14 @@ func (p *CqlParser) DropUser() (localctx IDropUserContext) { p.EnterOuterAlt(localctx, 1) { - p.SetState(1148) + p.SetState(1162) p.KwDrop() } { - p.SetState(1149) + p.SetState(1163) p.KwUser() } - p.SetState(1151) + p.SetState(1165) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -15806,13 +15892,13 @@ func (p *CqlParser) DropUser() (localctx IDropUserContext) { if _la == CqlParserK_IF { { - p.SetState(1150) + p.SetState(1164) p.IfExist() } } { - p.SetState(1153) + p.SetState(1167) p.User() } @@ -16001,14 +16087,14 @@ func (p *CqlParser) DropType() (localctx IDropTypeContext) { p.EnterOuterAlt(localctx, 1) { - p.SetState(1155) + p.SetState(1169) p.KwDrop() } { - p.SetState(1156) + p.SetState(1170) p.KwType() } - p.SetState(1158) + p.SetState(1172) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -16017,21 +16103,21 @@ func (p *CqlParser) DropType() (localctx IDropTypeContext) { if _la == CqlParserK_IF { { - p.SetState(1157) + p.SetState(1171) p.IfExist() } } - p.SetState(1163) + p.SetState(1177) p.GetErrorHandler().Sync(p) if p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 68, p.GetParserRuleContext()) == 1 { { - p.SetState(1160) + p.SetState(1174) p.Keyspace() } { - p.SetState(1161) + p.SetState(1175) p.Match(CqlParserDOT) if p.HasError() { // Recognition error - abort rule @@ -16043,7 +16129,7 @@ func (p *CqlParser) DropType() (localctx IDropTypeContext) { goto errorExit } { - p.SetState(1165) + p.SetState(1179) p.Type_() } @@ -16249,18 +16335,18 @@ func (p *CqlParser) DropMaterializedView() (localctx IDropMaterializedViewContex p.EnterOuterAlt(localctx, 1) { - p.SetState(1167) + p.SetState(1181) p.KwDrop() } { - p.SetState(1168) + p.SetState(1182) p.KwMaterialized() } { - p.SetState(1169) + p.SetState(1183) p.KwView() } - p.SetState(1171) + p.SetState(1185) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -16269,21 +16355,21 @@ func (p *CqlParser) DropMaterializedView() (localctx IDropMaterializedViewContex if _la == CqlParserK_IF { { - p.SetState(1170) + p.SetState(1184) p.IfExist() } } - p.SetState(1176) + p.SetState(1190) p.GetErrorHandler().Sync(p) if p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 70, p.GetParserRuleContext()) == 1 { { - p.SetState(1173) + p.SetState(1187) p.Keyspace() } { - p.SetState(1174) + p.SetState(1188) p.Match(CqlParserDOT) if p.HasError() { // Recognition error - abort rule @@ -16295,7 +16381,7 @@ func (p *CqlParser) DropMaterializedView() (localctx IDropMaterializedViewContex goto errorExit } { - p.SetState(1178) + p.SetState(1192) p.MaterializedView() } @@ -16484,14 +16570,14 @@ func (p *CqlParser) DropAggregate() (localctx IDropAggregateContext) { p.EnterOuterAlt(localctx, 1) { - p.SetState(1180) + p.SetState(1194) p.KwDrop() } { - p.SetState(1181) + p.SetState(1195) p.KwAggregate() } - p.SetState(1183) + p.SetState(1197) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -16500,21 +16586,21 @@ func (p *CqlParser) DropAggregate() (localctx IDropAggregateContext) { if _la == CqlParserK_IF { { - p.SetState(1182) + p.SetState(1196) p.IfExist() } } - p.SetState(1188) + p.SetState(1202) p.GetErrorHandler().Sync(p) if p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 72, p.GetParserRuleContext()) == 1 { { - p.SetState(1185) + p.SetState(1199) p.Keyspace() } { - p.SetState(1186) + p.SetState(1200) p.Match(CqlParserDOT) if p.HasError() { // Recognition error - abort rule @@ -16526,7 +16612,7 @@ func (p *CqlParser) DropAggregate() (localctx IDropAggregateContext) { goto errorExit } { - p.SetState(1190) + p.SetState(1204) p.Aggregate() } @@ -16715,14 +16801,14 @@ func (p *CqlParser) DropFunction() (localctx IDropFunctionContext) { p.EnterOuterAlt(localctx, 1) { - p.SetState(1192) + p.SetState(1206) p.KwDrop() } { - p.SetState(1193) + p.SetState(1207) p.KwFunction() } - p.SetState(1195) + p.SetState(1209) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -16731,21 +16817,21 @@ func (p *CqlParser) DropFunction() (localctx IDropFunctionContext) { if _la == CqlParserK_IF { { - p.SetState(1194) + p.SetState(1208) p.IfExist() } } - p.SetState(1200) + p.SetState(1214) p.GetErrorHandler().Sync(p) if p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 74, p.GetParserRuleContext()) == 1 { { - p.SetState(1197) + p.SetState(1211) p.Keyspace() } { - p.SetState(1198) + p.SetState(1212) p.Match(CqlParserDOT) if p.HasError() { // Recognition error - abort rule @@ -16757,7 +16843,7 @@ func (p *CqlParser) DropFunction() (localctx IDropFunctionContext) { goto errorExit } { - p.SetState(1202) + p.SetState(1216) p.Function_() } @@ -16980,14 +17066,14 @@ func (p *CqlParser) DropTrigger() (localctx IDropTriggerContext) { p.EnterOuterAlt(localctx, 1) { - p.SetState(1204) + p.SetState(1218) p.KwDrop() } { - p.SetState(1205) + p.SetState(1219) p.KwTrigger() } - p.SetState(1207) + p.SetState(1221) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -16996,29 +17082,29 @@ func (p *CqlParser) DropTrigger() (localctx IDropTriggerContext) { if _la == CqlParserK_IF { { - p.SetState(1206) + p.SetState(1220) p.IfExist() } } { - p.SetState(1209) + p.SetState(1223) p.Trigger() } { - p.SetState(1210) + p.SetState(1224) p.KwOn() } - p.SetState(1214) + p.SetState(1228) p.GetErrorHandler().Sync(p) if p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 76, p.GetParserRuleContext()) == 1 { { - p.SetState(1211) + p.SetState(1225) p.Keyspace() } { - p.SetState(1212) + p.SetState(1226) p.Match(CqlParserDOT) if p.HasError() { // Recognition error - abort rule @@ -17030,7 +17116,7 @@ func (p *CqlParser) DropTrigger() (localctx IDropTriggerContext) { goto errorExit } { - p.SetState(1216) + p.SetState(1230) p.Table() } @@ -17197,14 +17283,14 @@ func (p *CqlParser) DropRole() (localctx IDropRoleContext) { p.EnterOuterAlt(localctx, 1) { - p.SetState(1218) + p.SetState(1232) p.KwDrop() } { - p.SetState(1219) + p.SetState(1233) p.KwRole() } - p.SetState(1221) + p.SetState(1235) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -17213,13 +17299,13 @@ func (p *CqlParser) DropRole() (localctx IDropRoleContext) { if _la == CqlParserK_IF { { - p.SetState(1220) + p.SetState(1234) p.IfExist() } } { - p.SetState(1223) + p.SetState(1237) p.Role() } @@ -17408,14 +17494,14 @@ func (p *CqlParser) DropTable() (localctx IDropTableContext) { p.EnterOuterAlt(localctx, 1) { - p.SetState(1225) + p.SetState(1239) p.KwDrop() } { - p.SetState(1226) + p.SetState(1240) p.KwTable() } - p.SetState(1228) + p.SetState(1242) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -17424,21 +17510,21 @@ func (p *CqlParser) DropTable() (localctx IDropTableContext) { if _la == CqlParserK_IF { { - p.SetState(1227) + p.SetState(1241) p.IfExist() } } - p.SetState(1233) + p.SetState(1247) p.GetErrorHandler().Sync(p) if p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 79, p.GetParserRuleContext()) == 1 { { - p.SetState(1230) + p.SetState(1244) p.Keyspace() } { - p.SetState(1231) + p.SetState(1245) p.Match(CqlParserDOT) if p.HasError() { // Recognition error - abort rule @@ -17450,7 +17536,7 @@ func (p *CqlParser) DropTable() (localctx IDropTableContext) { goto errorExit } { - p.SetState(1235) + p.SetState(1249) p.Table() } @@ -17617,14 +17703,14 @@ func (p *CqlParser) DropKeyspace() (localctx IDropKeyspaceContext) { p.EnterOuterAlt(localctx, 1) { - p.SetState(1237) + p.SetState(1251) p.KwDrop() } { - p.SetState(1238) + p.SetState(1252) p.KwKeyspace() } - p.SetState(1240) + p.SetState(1254) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -17633,13 +17719,13 @@ func (p *CqlParser) DropKeyspace() (localctx IDropKeyspaceContext) { if _la == CqlParserK_IF { { - p.SetState(1239) + p.SetState(1253) p.IfExist() } } { - p.SetState(1242) + p.SetState(1256) p.Keyspace() } @@ -17828,14 +17914,14 @@ func (p *CqlParser) DropIndex() (localctx IDropIndexContext) { p.EnterOuterAlt(localctx, 1) { - p.SetState(1244) + p.SetState(1258) p.KwDrop() } { - p.SetState(1245) + p.SetState(1259) p.KwIndex() } - p.SetState(1247) + p.SetState(1261) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -17844,21 +17930,21 @@ func (p *CqlParser) DropIndex() (localctx IDropIndexContext) { if _la == CqlParserK_IF { { - p.SetState(1246) + p.SetState(1260) p.IfExist() } } - p.SetState(1252) + p.SetState(1266) p.GetErrorHandler().Sync(p) if p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 82, p.GetParserRuleContext()) == 1 { { - p.SetState(1249) + p.SetState(1263) p.Keyspace() } { - p.SetState(1250) + p.SetState(1264) p.Match(CqlParserDOT) if p.HasError() { // Recognition error - abort rule @@ -17870,7 +17956,7 @@ func (p *CqlParser) DropIndex() (localctx IDropIndexContext) { goto errorExit } { - p.SetState(1254) + p.SetState(1268) p.IndexName() } @@ -18127,14 +18213,14 @@ func (p *CqlParser) CreateTable() (localctx ICreateTableContext) { p.EnterOuterAlt(localctx, 1) { - p.SetState(1256) + p.SetState(1270) p.KwCreate() } { - p.SetState(1257) + p.SetState(1271) p.KwTable() } - p.SetState(1259) + p.SetState(1273) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -18143,21 +18229,21 @@ func (p *CqlParser) CreateTable() (localctx ICreateTableContext) { if _la == CqlParserK_IF { { - p.SetState(1258) + p.SetState(1272) p.IfNotExist() } } - p.SetState(1264) + p.SetState(1278) p.GetErrorHandler().Sync(p) if p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 84, p.GetParserRuleContext()) == 1 { { - p.SetState(1261) + p.SetState(1275) p.Keyspace() } { - p.SetState(1262) + p.SetState(1276) p.Match(CqlParserDOT) if p.HasError() { // Recognition error - abort rule @@ -18169,22 +18255,22 @@ func (p *CqlParser) CreateTable() (localctx ICreateTableContext) { goto errorExit } { - p.SetState(1266) + p.SetState(1280) p.Table() } { - p.SetState(1267) + p.SetState(1281) p.SyntaxBracketLr() } { - p.SetState(1268) + p.SetState(1282) p.ColumnDefinitionList() } { - p.SetState(1269) + p.SetState(1283) p.SyntaxBracketRr() } - p.SetState(1271) + p.SetState(1285) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -18193,7 +18279,7 @@ func (p *CqlParser) CreateTable() (localctx ICreateTableContext) { if _la == CqlParserK_WITH { { - p.SetState(1270) + p.SetState(1284) p.WithElement() } @@ -18326,11 +18412,11 @@ func (p *CqlParser) WithElement() (localctx IWithElementContext) { p.EnterRule(localctx, 134, CqlParserRULE_withElement) p.EnterOuterAlt(localctx, 1) { - p.SetState(1273) + p.SetState(1287) p.KwWith() } { - p.SetState(1274) + p.SetState(1288) p.TableOptions() } @@ -18581,7 +18667,7 @@ func (p *CqlParser) TableOptions() (localctx ITableOptionsContext) { p.EnterRule(localctx, 136, CqlParserRULE_tableOptions) var _alt int - p.SetState(1298) + p.SetState(1312) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -18591,23 +18677,23 @@ func (p *CqlParser) TableOptions() (localctx ITableOptionsContext) { case CqlParserK_COMPACT: p.EnterOuterAlt(localctx, 1) { - p.SetState(1276) + p.SetState(1290) p.KwCompact() } { - p.SetState(1277) + p.SetState(1291) p.KwStorage() } - p.SetState(1281) + p.SetState(1295) p.GetErrorHandler().Sync(p) if p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 86, p.GetParserRuleContext()) == 1 { { - p.SetState(1278) + p.SetState(1292) p.KwAnd() } { - p.SetState(1279) + p.SetState(1293) p.TableOptions() } @@ -18618,19 +18704,19 @@ func (p *CqlParser) TableOptions() (localctx ITableOptionsContext) { case CqlParserK_CLUSTERING: p.EnterOuterAlt(localctx, 2) { - p.SetState(1283) + p.SetState(1297) p.ClusteringOrder() } - p.SetState(1287) + p.SetState(1301) p.GetErrorHandler().Sync(p) if p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 87, p.GetParserRuleContext()) == 1 { { - p.SetState(1284) + p.SetState(1298) p.KwAnd() } { - p.SetState(1285) + p.SetState(1299) p.TableOptions() } @@ -18641,10 +18727,10 @@ func (p *CqlParser) TableOptions() (localctx ITableOptionsContext) { case CqlParserOBJECT_NAME: p.EnterOuterAlt(localctx, 3) { - p.SetState(1289) + p.SetState(1303) p.TableOptionItem() } - p.SetState(1295) + p.SetState(1309) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -18656,16 +18742,16 @@ func (p *CqlParser) TableOptions() (localctx ITableOptionsContext) { for _alt != 2 && _alt != antlr.ATNInvalidAltNumber { if _alt == 1 { { - p.SetState(1290) + p.SetState(1304) p.KwAnd() } { - p.SetState(1291) + p.SetState(1305) p.TableOptionItem() } } - p.SetState(1297) + p.SetState(1311) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -18990,27 +19076,27 @@ func (p *CqlParser) ClusteringOrder() (localctx IClusteringOrderContext) { p.EnterOuterAlt(localctx, 1) { - p.SetState(1300) + p.SetState(1314) p.KwClustering() } { - p.SetState(1301) + p.SetState(1315) p.KwOrder() } { - p.SetState(1302) + p.SetState(1316) p.KwBy() } { - p.SetState(1303) + p.SetState(1317) p.SyntaxBracketLr() } { - p.SetState(1304) + p.SetState(1318) p.Column() } - p.SetState(1306) + p.SetState(1320) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -19019,13 +19105,13 @@ func (p *CqlParser) ClusteringOrder() (localctx IClusteringOrderContext) { if _la == CqlParserK_ASC || _la == CqlParserK_DESC { { - p.SetState(1305) + p.SetState(1319) p.OrderDirection() } } - p.SetState(1315) + p.SetState(1329) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -19034,14 +19120,14 @@ func (p *CqlParser) ClusteringOrder() (localctx IClusteringOrderContext) { for _la == CqlParserCOMMA { { - p.SetState(1308) + p.SetState(1322) p.SyntaxComma() } { - p.SetState(1309) + p.SetState(1323) p.Column() } - p.SetState(1311) + p.SetState(1325) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -19050,13 +19136,13 @@ func (p *CqlParser) ClusteringOrder() (localctx IClusteringOrderContext) { if _la == CqlParserK_ASC || _la == CqlParserK_DESC { { - p.SetState(1310) + p.SetState(1324) p.OrderDirection() } } - p.SetState(1317) + p.SetState(1331) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -19064,7 +19150,7 @@ func (p *CqlParser) ClusteringOrder() (localctx IClusteringOrderContext) { _la = p.GetTokenStream().LA(1) } { - p.SetState(1318) + p.SetState(1332) p.SyntaxBracketRr() } @@ -19215,7 +19301,7 @@ func (s *TableOptionItemContext) Accept(visitor antlr.ParseTreeVisitor) interfac func (p *CqlParser) TableOptionItem() (localctx ITableOptionItemContext) { localctx = NewTableOptionItemContext(p, p.GetParserRuleContext(), p.GetState()) p.EnterRule(localctx, 140, CqlParserRULE_tableOptionItem) - p.SetState(1328) + p.SetState(1342) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -19225,11 +19311,11 @@ func (p *CqlParser) TableOptionItem() (localctx ITableOptionItemContext) { case 1: p.EnterOuterAlt(localctx, 1) { - p.SetState(1320) + p.SetState(1334) p.TableOptionName() } { - p.SetState(1321) + p.SetState(1335) p.Match(CqlParserOPERATOR_EQ) if p.HasError() { // Recognition error - abort rule @@ -19237,18 +19323,18 @@ func (p *CqlParser) TableOptionItem() (localctx ITableOptionItemContext) { } } { - p.SetState(1322) + p.SetState(1336) p.TableOptionValue() } case 2: p.EnterOuterAlt(localctx, 2) { - p.SetState(1324) + p.SetState(1338) p.TableOptionName() } { - p.SetState(1325) + p.SetState(1339) p.Match(CqlParserOPERATOR_EQ) if p.HasError() { // Recognition error - abort rule @@ -19256,7 +19342,7 @@ func (p *CqlParser) TableOptionItem() (localctx ITableOptionItemContext) { } } { - p.SetState(1326) + p.SetState(1340) p.OptionHash() } @@ -19362,7 +19448,7 @@ func (p *CqlParser) TableOptionName() (localctx ITableOptionNameContext) { p.EnterRule(localctx, 142, CqlParserRULE_tableOptionName) p.EnterOuterAlt(localctx, 1) { - p.SetState(1330) + p.SetState(1344) p.Match(CqlParserOBJECT_NAME) if p.HasError() { // Recognition error - abort rule @@ -19495,7 +19581,7 @@ func (s *TableOptionValueContext) Accept(visitor antlr.ParseTreeVisitor) interfa func (p *CqlParser) TableOptionValue() (localctx ITableOptionValueContext) { localctx = NewTableOptionValueContext(p, p.GetParserRuleContext(), p.GetState()) p.EnterRule(localctx, 144, CqlParserRULE_tableOptionValue) - p.SetState(1334) + p.SetState(1348) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -19505,14 +19591,14 @@ func (p *CqlParser) TableOptionValue() (localctx ITableOptionValueContext) { case CqlParserSTRING_LITERAL: p.EnterOuterAlt(localctx, 1) { - p.SetState(1332) + p.SetState(1346) p.StringLiteral() } case CqlParserDECIMAL_LITERAL, CqlParserFLOAT_LITERAL: p.EnterOuterAlt(localctx, 2) { - p.SetState(1333) + p.SetState(1347) p.FloatLiteral() } @@ -19736,14 +19822,14 @@ func (p *CqlParser) OptionHash() (localctx IOptionHashContext) { p.EnterOuterAlt(localctx, 1) { - p.SetState(1336) + p.SetState(1350) p.SyntaxBracketLc() } { - p.SetState(1337) + p.SetState(1351) p.OptionHashItem() } - p.SetState(1343) + p.SetState(1357) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -19752,15 +19838,15 @@ func (p *CqlParser) OptionHash() (localctx IOptionHashContext) { for _la == CqlParserCOMMA { { - p.SetState(1338) + p.SetState(1352) p.SyntaxComma() } { - p.SetState(1339) + p.SetState(1353) p.OptionHashItem() } - p.SetState(1345) + p.SetState(1359) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -19768,7 +19854,7 @@ func (p *CqlParser) OptionHash() (localctx IOptionHashContext) { _la = p.GetTokenStream().LA(1) } { - p.SetState(1346) + p.SetState(1360) p.SyntaxBracketRc() } @@ -19904,11 +19990,11 @@ func (p *CqlParser) OptionHashItem() (localctx IOptionHashItemContext) { p.EnterRule(localctx, 148, CqlParserRULE_optionHashItem) p.EnterOuterAlt(localctx, 1) { - p.SetState(1348) + p.SetState(1362) p.OptionHashKey() } { - p.SetState(1349) + p.SetState(1363) p.Match(CqlParserCOLON) if p.HasError() { // Recognition error - abort rule @@ -19916,7 +20002,7 @@ func (p *CqlParser) OptionHashItem() (localctx IOptionHashItemContext) { } } { - p.SetState(1350) + p.SetState(1364) p.OptionHashValue() } @@ -20030,7 +20116,7 @@ func (p *CqlParser) OptionHashKey() (localctx IOptionHashKeyContext) { p.EnterRule(localctx, 150, CqlParserRULE_optionHashKey) p.EnterOuterAlt(localctx, 1) { - p.SetState(1352) + p.SetState(1366) p.StringLiteral() } @@ -20159,7 +20245,7 @@ func (s *OptionHashValueContext) Accept(visitor antlr.ParseTreeVisitor) interfac func (p *CqlParser) OptionHashValue() (localctx IOptionHashValueContext) { localctx = NewOptionHashValueContext(p, p.GetParserRuleContext(), p.GetState()) p.EnterRule(localctx, 152, CqlParserRULE_optionHashValue) - p.SetState(1356) + p.SetState(1370) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -20169,14 +20255,14 @@ func (p *CqlParser) OptionHashValue() (localctx IOptionHashValueContext) { case CqlParserSTRING_LITERAL: p.EnterOuterAlt(localctx, 1) { - p.SetState(1354) + p.SetState(1368) p.StringLiteral() } case CqlParserDECIMAL_LITERAL, CqlParserFLOAT_LITERAL: p.EnterOuterAlt(localctx, 2) { - p.SetState(1355) + p.SetState(1369) p.FloatLiteral() } @@ -20385,11 +20471,11 @@ func (p *CqlParser) ColumnDefinitionList() (localctx IColumnDefinitionListContex p.EnterOuterAlt(localctx, 1) { - p.SetState(1358) + p.SetState(1372) p.ColumnDefinition() } - p.SetState(1364) + p.SetState(1378) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -20401,16 +20487,16 @@ func (p *CqlParser) ColumnDefinitionList() (localctx IColumnDefinitionListContex for _alt != 2 && _alt != antlr.ATNInvalidAltNumber { if _alt == 1 { { - p.SetState(1359) + p.SetState(1373) p.SyntaxComma() } { - p.SetState(1360) + p.SetState(1374) p.ColumnDefinition() } } - p.SetState(1366) + p.SetState(1380) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -20420,7 +20506,7 @@ func (p *CqlParser) ColumnDefinitionList() (localctx IColumnDefinitionListContex goto errorExit } } - p.SetState(1370) + p.SetState(1384) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -20429,11 +20515,11 @@ func (p *CqlParser) ColumnDefinitionList() (localctx IColumnDefinitionListContex if _la == CqlParserCOMMA { { - p.SetState(1367) + p.SetState(1381) p.SyntaxComma() } { - p.SetState(1368) + p.SetState(1382) p.PrimaryKeyElement() } @@ -20585,14 +20671,14 @@ func (p *CqlParser) ColumnDefinition() (localctx IColumnDefinitionContext) { p.EnterOuterAlt(localctx, 1) { - p.SetState(1372) + p.SetState(1386) p.Column() } { - p.SetState(1373) + p.SetState(1387) p.DataType() } - p.SetState(1375) + p.SetState(1389) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -20601,7 +20687,7 @@ func (p *CqlParser) ColumnDefinition() (localctx IColumnDefinitionContext) { if _la == CqlParserK_PRIMARY { { - p.SetState(1374) + p.SetState(1388) p.PrimaryKeyColumn() } @@ -20734,11 +20820,11 @@ func (p *CqlParser) PrimaryKeyColumn() (localctx IPrimaryKeyColumnContext) { p.EnterRule(localctx, 158, CqlParserRULE_primaryKeyColumn) p.EnterOuterAlt(localctx, 1) { - p.SetState(1377) + p.SetState(1391) p.KwPrimary() } { - p.SetState(1378) + p.SetState(1392) p.KwKey() } @@ -20920,23 +21006,23 @@ func (p *CqlParser) PrimaryKeyElement() (localctx IPrimaryKeyElementContext) { p.EnterRule(localctx, 160, CqlParserRULE_primaryKeyElement) p.EnterOuterAlt(localctx, 1) { - p.SetState(1380) + p.SetState(1394) p.KwPrimary() } { - p.SetState(1381) + p.SetState(1395) p.KwKey() } { - p.SetState(1382) + p.SetState(1396) p.SyntaxBracketLr() } { - p.SetState(1383) + p.SetState(1397) p.PrimaryKeyDefinition() } { - p.SetState(1384) + p.SetState(1398) p.SyntaxBracketRr() } @@ -21082,7 +21168,7 @@ func (s *PrimaryKeyDefinitionContext) Accept(visitor antlr.ParseTreeVisitor) int func (p *CqlParser) PrimaryKeyDefinition() (localctx IPrimaryKeyDefinitionContext) { localctx = NewPrimaryKeyDefinitionContext(p, p.GetParserRuleContext(), p.GetState()) p.EnterRule(localctx, 162, CqlParserRULE_primaryKeyDefinition) - p.SetState(1389) + p.SetState(1403) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -21092,21 +21178,21 @@ func (p *CqlParser) PrimaryKeyDefinition() (localctx IPrimaryKeyDefinitionContex case 1: p.EnterOuterAlt(localctx, 1) { - p.SetState(1386) + p.SetState(1400) p.SinglePrimaryKey() } case 2: p.EnterOuterAlt(localctx, 2) { - p.SetState(1387) + p.SetState(1401) p.CompoundKey() } case 3: p.EnterOuterAlt(localctx, 3) { - p.SetState(1388) + p.SetState(1402) p.CompositeKey() } @@ -21224,7 +21310,7 @@ func (p *CqlParser) SinglePrimaryKey() (localctx ISinglePrimaryKeyContext) { p.EnterRule(localctx, 164, CqlParserRULE_singlePrimaryKey) p.EnterOuterAlt(localctx, 1) { - p.SetState(1391) + p.SetState(1405) p.Column() } @@ -21372,16 +21458,16 @@ func (p *CqlParser) CompoundKey() (localctx ICompoundKeyContext) { p.EnterRule(localctx, 166, CqlParserRULE_compoundKey) p.EnterOuterAlt(localctx, 1) { - p.SetState(1393) + p.SetState(1407) p.PartitionKey() } { - p.SetState(1394) + p.SetState(1408) p.SyntaxComma() } { - p.SetState(1395) + p.SetState(1409) p.ClusteringKeyList() } @@ -21563,24 +21649,24 @@ func (p *CqlParser) CompositeKey() (localctx ICompositeKeyContext) { p.EnterRule(localctx, 168, CqlParserRULE_compositeKey) p.EnterOuterAlt(localctx, 1) { - p.SetState(1397) + p.SetState(1411) p.SyntaxBracketLr() } { - p.SetState(1398) + p.SetState(1412) p.PartitionKeyList() } { - p.SetState(1399) + p.SetState(1413) p.SyntaxBracketRr() } { - p.SetState(1400) + p.SetState(1414) p.SyntaxComma() } { - p.SetState(1401) + p.SetState(1415) p.ClusteringKeyList() } @@ -21765,11 +21851,11 @@ func (p *CqlParser) PartitionKeyList() (localctx IPartitionKeyListContext) { p.EnterOuterAlt(localctx, 1) { - p.SetState(1403) + p.SetState(1417) p.PartitionKey() } - p.SetState(1409) + p.SetState(1423) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -21778,15 +21864,15 @@ func (p *CqlParser) PartitionKeyList() (localctx IPartitionKeyListContext) { for _la == CqlParserCOMMA { { - p.SetState(1404) + p.SetState(1418) p.SyntaxComma() } { - p.SetState(1405) + p.SetState(1419) p.PartitionKey() } - p.SetState(1411) + p.SetState(1425) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -21975,11 +22061,11 @@ func (p *CqlParser) ClusteringKeyList() (localctx IClusteringKeyListContext) { p.EnterOuterAlt(localctx, 1) { - p.SetState(1412) + p.SetState(1426) p.ClusteringKey() } - p.SetState(1418) + p.SetState(1432) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -21988,15 +22074,15 @@ func (p *CqlParser) ClusteringKeyList() (localctx IClusteringKeyListContext) { for _la == CqlParserCOMMA { { - p.SetState(1413) + p.SetState(1427) p.SyntaxComma() } { - p.SetState(1414) + p.SetState(1428) p.ClusteringKey() } - p.SetState(1420) + p.SetState(1434) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -22114,7 +22200,7 @@ func (p *CqlParser) PartitionKey() (localctx IPartitionKeyContext) { p.EnterRule(localctx, 174, CqlParserRULE_partitionKey) p.EnterOuterAlt(localctx, 1) { - p.SetState(1421) + p.SetState(1435) p.Column() } @@ -22228,7 +22314,7 @@ func (p *CqlParser) ClusteringKey() (localctx IClusteringKeyContext) { p.EnterRule(localctx, 176, CqlParserRULE_clusteringKey) p.EnterOuterAlt(localctx, 1) { - p.SetState(1423) + p.SetState(1437) p.Column() } @@ -22359,11 +22445,11 @@ func (p *CqlParser) ApplyBatch() (localctx IApplyBatchContext) { p.EnterRule(localctx, 178, CqlParserRULE_applyBatch) p.EnterOuterAlt(localctx, 1) { - p.SetState(1425) + p.SetState(1439) p.KwApply() } { - p.SetState(1426) + p.SetState(1440) p.KwBatch() } @@ -22530,10 +22616,10 @@ func (p *CqlParser) BeginBatch() (localctx IBeginBatchContext) { p.EnterOuterAlt(localctx, 1) { - p.SetState(1428) + p.SetState(1442) p.KwBegin() } - p.SetState(1430) + p.SetState(1444) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -22542,16 +22628,16 @@ func (p *CqlParser) BeginBatch() (localctx IBeginBatchContext) { if _la == CqlParserK_LOGGED || _la == CqlParserK_UNLOGGED { { - p.SetState(1429) + p.SetState(1443) p.BatchType() } } { - p.SetState(1432) + p.SetState(1446) p.KwBatch() } - p.SetState(1434) + p.SetState(1448) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -22560,7 +22646,7 @@ func (p *CqlParser) BeginBatch() (localctx IBeginBatchContext) { if _la == CqlParserK_USING { { - p.SetState(1433) + p.SetState(1447) p.UsingTimestampSpec() } @@ -22691,7 +22777,7 @@ func (s *BatchTypeContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) BatchType() (localctx IBatchTypeContext) { localctx = NewBatchTypeContext(p, p.GetParserRuleContext(), p.GetState()) p.EnterRule(localctx, 182, CqlParserRULE_batchType) - p.SetState(1438) + p.SetState(1452) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -22701,14 +22787,14 @@ func (p *CqlParser) BatchType() (localctx IBatchTypeContext) { case CqlParserK_LOGGED: p.EnterOuterAlt(localctx, 1) { - p.SetState(1436) + p.SetState(1450) p.KwLogged() } case CqlParserK_UNLOGGED: p.EnterOuterAlt(localctx, 2) { - p.SetState(1437) + p.SetState(1451) p.KwUnlogged() } @@ -22987,27 +23073,27 @@ func (p *CqlParser) AlterKeyspace() (localctx IAlterKeyspaceContext) { p.EnterOuterAlt(localctx, 1) { - p.SetState(1440) + p.SetState(1454) p.KwAlter() } { - p.SetState(1441) + p.SetState(1455) p.KwKeyspace() } { - p.SetState(1442) + p.SetState(1456) p.Keyspace() } { - p.SetState(1443) + p.SetState(1457) p.KwWith() } { - p.SetState(1444) + p.SetState(1458) p.KwReplication() } { - p.SetState(1445) + p.SetState(1459) p.Match(CqlParserOPERATOR_EQ) if p.HasError() { // Recognition error - abort rule @@ -23015,18 +23101,18 @@ func (p *CqlParser) AlterKeyspace() (localctx IAlterKeyspaceContext) { } } { - p.SetState(1446) + p.SetState(1460) p.SyntaxBracketLc() } { - p.SetState(1447) + p.SetState(1461) p.ReplicationList() } { - p.SetState(1448) + p.SetState(1462) p.SyntaxBracketRc() } - p.SetState(1452) + p.SetState(1466) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -23035,11 +23121,11 @@ func (p *CqlParser) AlterKeyspace() (localctx IAlterKeyspaceContext) { if _la == CqlParserK_AND { { - p.SetState(1449) + p.SetState(1463) p.KwAnd() } { - p.SetState(1450) + p.SetState(1464) p.DurableWrites() } @@ -23226,11 +23312,11 @@ func (p *CqlParser) ReplicationList() (localctx IReplicationListContext) { p.EnterOuterAlt(localctx, 1) { - p.SetState(1454) + p.SetState(1468) p.ReplicationListItem() } - p.SetState(1460) + p.SetState(1474) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -23239,15 +23325,15 @@ func (p *CqlParser) ReplicationList() (localctx IReplicationListContext) { for _la == CqlParserCOMMA { { - p.SetState(1455) + p.SetState(1469) p.SyntaxComma() } { - p.SetState(1456) + p.SetState(1470) p.ReplicationListItem() } - p.SetState(1462) + p.SetState(1476) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -23366,7 +23452,7 @@ func (s *ReplicationListItemContext) Accept(visitor antlr.ParseTreeVisitor) inte func (p *CqlParser) ReplicationListItem() (localctx IReplicationListItemContext) { localctx = NewReplicationListItemContext(p, p.GetParserRuleContext(), p.GetState()) p.EnterRule(localctx, 188, CqlParserRULE_replicationListItem) - p.SetState(1469) + p.SetState(1483) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -23376,7 +23462,7 @@ func (p *CqlParser) ReplicationListItem() (localctx IReplicationListItemContext) case 1: p.EnterOuterAlt(localctx, 1) { - p.SetState(1463) + p.SetState(1477) p.Match(CqlParserSTRING_LITERAL) if p.HasError() { // Recognition error - abort rule @@ -23384,7 +23470,7 @@ func (p *CqlParser) ReplicationListItem() (localctx IReplicationListItemContext) } } { - p.SetState(1464) + p.SetState(1478) p.Match(CqlParserCOLON) if p.HasError() { // Recognition error - abort rule @@ -23392,7 +23478,7 @@ func (p *CqlParser) ReplicationListItem() (localctx IReplicationListItemContext) } } { - p.SetState(1465) + p.SetState(1479) p.Match(CqlParserSTRING_LITERAL) if p.HasError() { // Recognition error - abort rule @@ -23403,7 +23489,7 @@ func (p *CqlParser) ReplicationListItem() (localctx IReplicationListItemContext) case 2: p.EnterOuterAlt(localctx, 2) { - p.SetState(1466) + p.SetState(1480) p.Match(CqlParserSTRING_LITERAL) if p.HasError() { // Recognition error - abort rule @@ -23411,7 +23497,7 @@ func (p *CqlParser) ReplicationListItem() (localctx IReplicationListItemContext) } } { - p.SetState(1467) + p.SetState(1481) p.Match(CqlParserCOLON) if p.HasError() { // Recognition error - abort rule @@ -23419,7 +23505,7 @@ func (p *CqlParser) ReplicationListItem() (localctx IReplicationListItemContext) } } { - p.SetState(1468) + p.SetState(1482) p.Match(CqlParserDECIMAL_LITERAL) if p.HasError() { // Recognition error - abort rule @@ -23563,11 +23649,11 @@ func (p *CqlParser) DurableWrites() (localctx IDurableWritesContext) { p.EnterRule(localctx, 190, CqlParserRULE_durableWrites) p.EnterOuterAlt(localctx, 1) { - p.SetState(1471) + p.SetState(1485) p.KwDurableWrites() } { - p.SetState(1472) + p.SetState(1486) p.Match(CqlParserOPERATOR_EQ) if p.HasError() { // Recognition error - abort rule @@ -23575,7 +23661,7 @@ func (p *CqlParser) DurableWrites() (localctx IDurableWritesContext) { } } { - p.SetState(1473) + p.SetState(1487) p.BooleanLiteral() } @@ -23706,11 +23792,11 @@ func (p *CqlParser) Use_() (localctx IUse_Context) { p.EnterRule(localctx, 192, CqlParserRULE_use_) p.EnterOuterAlt(localctx, 1) { - p.SetState(1475) + p.SetState(1489) p.KwUse() } { - p.SetState(1476) + p.SetState(1490) p.Keyspace() } @@ -23882,10 +23968,10 @@ func (p *CqlParser) Truncate() (localctx ITruncateContext) { p.EnterOuterAlt(localctx, 1) { - p.SetState(1478) + p.SetState(1492) p.KwTruncate() } - p.SetState(1480) + p.SetState(1494) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -23894,21 +23980,21 @@ func (p *CqlParser) Truncate() (localctx ITruncateContext) { if _la == CqlParserK_TABLE { { - p.SetState(1479) + p.SetState(1493) p.KwTable() } } - p.SetState(1485) + p.SetState(1499) p.GetErrorHandler().Sync(p) if p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 110, p.GetParserRuleContext()) == 1 { { - p.SetState(1482) + p.SetState(1496) p.Keyspace() } { - p.SetState(1483) + p.SetState(1497) p.Match(CqlParserDOT) if p.HasError() { // Recognition error - abort rule @@ -23920,7 +24006,7 @@ func (p *CqlParser) Truncate() (localctx ITruncateContext) { goto errorExit } { - p.SetState(1487) + p.SetState(1501) p.Table() } @@ -23952,10 +24038,15 @@ type ICreateIndexContext interface { SyntaxBracketLr() ISyntaxBracketLrContext IndexColumnSpec() IIndexColumnSpecContext SyntaxBracketRr() ISyntaxBracketRrContext + KwCustom() IKwCustomContext IfNotExist() IIfNotExistContext IndexName() IIndexNameContext Keyspace() IKeyspaceContext DOT() antlr.TerminalNode + KwUsing() IKwUsingContext + IndexClass() IIndexClassContext + KwWith() IKwWithContext + IndexOptions() IIndexOptionsContext // IsCreateIndexContext differentiates from other interfaces. IsCreateIndexContext() @@ -24105,6 +24196,22 @@ func (s *CreateIndexContext) SyntaxBracketRr() ISyntaxBracketRrContext { return t.(ISyntaxBracketRrContext) } +func (s *CreateIndexContext) KwCustom() IKwCustomContext { + var t antlr.RuleContext + for _, ctx := range s.GetChildren() { + if _, ok := ctx.(IKwCustomContext); ok { + t = ctx.(antlr.RuleContext) + break + } + } + + if t == nil { + return nil + } + + return t.(IKwCustomContext) +} + func (s *CreateIndexContext) IfNotExist() IIfNotExistContext { var t antlr.RuleContext for _, ctx := range s.GetChildren() { @@ -24157,6 +24264,70 @@ func (s *CreateIndexContext) DOT() antlr.TerminalNode { return s.GetToken(CqlParserDOT, 0) } +func (s *CreateIndexContext) KwUsing() IKwUsingContext { + var t antlr.RuleContext + for _, ctx := range s.GetChildren() { + if _, ok := ctx.(IKwUsingContext); ok { + t = ctx.(antlr.RuleContext) + break + } + } + + if t == nil { + return nil + } + + return t.(IKwUsingContext) +} + +func (s *CreateIndexContext) IndexClass() IIndexClassContext { + var t antlr.RuleContext + for _, ctx := range s.GetChildren() { + if _, ok := ctx.(IIndexClassContext); ok { + t = ctx.(antlr.RuleContext) + break + } + } + + if t == nil { + return nil + } + + return t.(IIndexClassContext) +} + +func (s *CreateIndexContext) KwWith() IKwWithContext { + var t antlr.RuleContext + for _, ctx := range s.GetChildren() { + if _, ok := ctx.(IKwWithContext); ok { + t = ctx.(antlr.RuleContext) + break + } + } + + if t == nil { + return nil + } + + return t.(IKwWithContext) +} + +func (s *CreateIndexContext) IndexOptions() IIndexOptionsContext { + var t antlr.RuleContext + for _, ctx := range s.GetChildren() { + if _, ok := ctx.(IIndexOptionsContext); ok { + t = ctx.(antlr.RuleContext) + break + } + } + + if t == nil { + return nil + } + + return t.(IIndexOptionsContext) +} + func (s *CreateIndexContext) GetRuleContext() antlr.RuleContext { return s } @@ -24194,14 +24365,28 @@ func (p *CqlParser) CreateIndex() (localctx ICreateIndexContext) { p.EnterOuterAlt(localctx, 1) { - p.SetState(1489) + p.SetState(1503) p.KwCreate() } + p.SetState(1505) + p.GetErrorHandler().Sync(p) + if p.HasError() { + goto errorExit + } + _la = p.GetTokenStream().LA(1) + + if _la == CqlParserK_CUSTOM { + { + p.SetState(1504) + p.KwCustom() + } + + } { - p.SetState(1490) + p.SetState(1507) p.KwIndex() } - p.SetState(1492) + p.SetState(1509) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -24210,12 +24395,12 @@ func (p *CqlParser) CreateIndex() (localctx ICreateIndexContext) { if _la == CqlParserK_IF { { - p.SetState(1491) + p.SetState(1508) p.IfNotExist() } } - p.SetState(1495) + p.SetState(1512) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -24224,25 +24409,25 @@ func (p *CqlParser) CreateIndex() (localctx ICreateIndexContext) { if _la == CqlParserSTRING_LITERAL || _la == CqlParserOBJECT_NAME { { - p.SetState(1494) + p.SetState(1511) p.IndexName() } } { - p.SetState(1497) + p.SetState(1514) p.KwOn() } - p.SetState(1501) + p.SetState(1518) p.GetErrorHandler().Sync(p) - if p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 113, p.GetParserRuleContext()) == 1 { + if p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 114, p.GetParserRuleContext()) == 1 { { - p.SetState(1498) + p.SetState(1515) p.Keyspace() } { - p.SetState(1499) + p.SetState(1516) p.Match(CqlParserDOT) if p.HasError() { // Recognition error - abort rule @@ -24254,163 +24439,56 @@ func (p *CqlParser) CreateIndex() (localctx ICreateIndexContext) { goto errorExit } { - p.SetState(1503) + p.SetState(1520) p.Table() } { - p.SetState(1504) + p.SetState(1521) p.SyntaxBracketLr() } { - p.SetState(1505) + p.SetState(1522) p.IndexColumnSpec() } { - p.SetState(1506) + p.SetState(1523) p.SyntaxBracketRr() } - -errorExit: + p.SetState(1527) + p.GetErrorHandler().Sync(p) if p.HasError() { - v := p.GetError() - localctx.SetException(v) - p.GetErrorHandler().ReportError(p, v) - p.GetErrorHandler().Recover(p, v) - p.SetError(nil) + goto errorExit } - p.ExitRule() - return localctx - goto errorExit // Trick to prevent compiler error if the label is not used -} - -// IIndexNameContext is an interface to support dynamic dispatch. -type IIndexNameContext interface { - antlr.ParserRuleContext - - // GetParser returns the parser. - GetParser() antlr.Parser - - // Getter signatures - OBJECT_NAME() antlr.TerminalNode - StringLiteral() IStringLiteralContext - - // IsIndexNameContext differentiates from other interfaces. - IsIndexNameContext() -} - -type IndexNameContext struct { - antlr.BaseParserRuleContext - parser antlr.Parser -} - -func NewEmptyIndexNameContext() *IndexNameContext { - var p = new(IndexNameContext) - antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1) - p.RuleIndex = CqlParserRULE_indexName - return p -} - -func InitEmptyIndexNameContext(p *IndexNameContext) { - antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1) - p.RuleIndex = CqlParserRULE_indexName -} - -func (*IndexNameContext) IsIndexNameContext() {} - -func NewIndexNameContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *IndexNameContext { - var p = new(IndexNameContext) - - antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState) - - p.parser = parser - p.RuleIndex = CqlParserRULE_indexName - - return p -} - -func (s *IndexNameContext) GetParser() antlr.Parser { return s.parser } - -func (s *IndexNameContext) OBJECT_NAME() antlr.TerminalNode { - return s.GetToken(CqlParserOBJECT_NAME, 0) -} + _la = p.GetTokenStream().LA(1) -func (s *IndexNameContext) StringLiteral() IStringLiteralContext { - var t antlr.RuleContext - for _, ctx := range s.GetChildren() { - if _, ok := ctx.(IStringLiteralContext); ok { - t = ctx.(antlr.RuleContext) - break + if _la == CqlParserK_USING { + { + p.SetState(1524) + p.KwUsing() + } + { + p.SetState(1525) + p.IndexClass() } - } - - if t == nil { - return nil - } - - return t.(IStringLiteralContext) -} - -func (s *IndexNameContext) GetRuleContext() antlr.RuleContext { - return s -} - -func (s *IndexNameContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string { - return antlr.TreesStringTree(s, ruleNames, recog) -} - -func (s *IndexNameContext) EnterRule(listener antlr.ParseTreeListener) { - if listenerT, ok := listener.(CqlParserListener); ok { - listenerT.EnterIndexName(s) - } -} - -func (s *IndexNameContext) ExitRule(listener antlr.ParseTreeListener) { - if listenerT, ok := listener.(CqlParserListener); ok { - listenerT.ExitIndexName(s) - } -} - -func (s *IndexNameContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { - switch t := visitor.(type) { - case CqlParserVisitor: - return t.VisitIndexName(s) - default: - return t.VisitChildren(s) } -} - -func (p *CqlParser) IndexName() (localctx IIndexNameContext) { - localctx = NewIndexNameContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 198, CqlParserRULE_indexName) - p.SetState(1510) + p.SetState(1532) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit } + _la = p.GetTokenStream().LA(1) - switch p.GetTokenStream().LA(1) { - case CqlParserOBJECT_NAME: - p.EnterOuterAlt(localctx, 1) + if _la == CqlParserK_WITH { { - p.SetState(1508) - p.Match(CqlParserOBJECT_NAME) - if p.HasError() { - // Recognition error - abort rule - goto errorExit - } + p.SetState(1529) + p.KwWith() } - - case CqlParserSTRING_LITERAL: - p.EnterOuterAlt(localctx, 2) { - p.SetState(1509) - p.StringLiteral() + p.SetState(1530) + p.IndexOptions() } - default: - p.SetError(antlr.NewNoViableAltException(p, nil, nil, nil, nil, nil)) - goto errorExit } errorExit: @@ -24426,59 +24504,58 @@ errorExit: goto errorExit // Trick to prevent compiler error if the label is not used } -// IIndexColumnSpecContext is an interface to support dynamic dispatch. -type IIndexColumnSpecContext interface { +// IIndexClassContext is an interface to support dynamic dispatch. +type IIndexClassContext interface { antlr.ParserRuleContext // GetParser returns the parser. GetParser() antlr.Parser // Getter signatures - Column() IColumnContext - IndexKeysSpec() IIndexKeysSpecContext - IndexEntriesSSpec() IIndexEntriesSSpecContext - IndexFullSpec() IIndexFullSpecContext + StringLiteral() IStringLiteralContext + K_SAI() antlr.TerminalNode + K_STORAGEATTACHEDINDEX() antlr.TerminalNode - // IsIndexColumnSpecContext differentiates from other interfaces. - IsIndexColumnSpecContext() + // IsIndexClassContext differentiates from other interfaces. + IsIndexClassContext() } -type IndexColumnSpecContext struct { +type IndexClassContext struct { antlr.BaseParserRuleContext parser antlr.Parser } -func NewEmptyIndexColumnSpecContext() *IndexColumnSpecContext { - var p = new(IndexColumnSpecContext) +func NewEmptyIndexClassContext() *IndexClassContext { + var p = new(IndexClassContext) antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1) - p.RuleIndex = CqlParserRULE_indexColumnSpec + p.RuleIndex = CqlParserRULE_indexClass return p } -func InitEmptyIndexColumnSpecContext(p *IndexColumnSpecContext) { +func InitEmptyIndexClassContext(p *IndexClassContext) { antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1) - p.RuleIndex = CqlParserRULE_indexColumnSpec + p.RuleIndex = CqlParserRULE_indexClass } -func (*IndexColumnSpecContext) IsIndexColumnSpecContext() {} +func (*IndexClassContext) IsIndexClassContext() {} -func NewIndexColumnSpecContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *IndexColumnSpecContext { - var p = new(IndexColumnSpecContext) +func NewIndexClassContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *IndexClassContext { + var p = new(IndexClassContext) antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState) p.parser = parser - p.RuleIndex = CqlParserRULE_indexColumnSpec + p.RuleIndex = CqlParserRULE_indexClass return p } -func (s *IndexColumnSpecContext) GetParser() antlr.Parser { return s.parser } +func (s *IndexClassContext) GetParser() antlr.Parser { return s.parser } -func (s *IndexColumnSpecContext) Column() IColumnContext { +func (s *IndexClassContext) StringLiteral() IStringLiteralContext { var t antlr.RuleContext for _, ctx := range s.GetChildren() { - if _, ok := ctx.(IColumnContext); ok { + if _, ok := ctx.(IStringLiteralContext); ok { t = ctx.(antlr.RuleContext) break } @@ -24488,123 +24565,84 @@ func (s *IndexColumnSpecContext) Column() IColumnContext { return nil } - return t.(IColumnContext) + return t.(IStringLiteralContext) } -func (s *IndexColumnSpecContext) IndexKeysSpec() IIndexKeysSpecContext { - var t antlr.RuleContext - for _, ctx := range s.GetChildren() { - if _, ok := ctx.(IIndexKeysSpecContext); ok { - t = ctx.(antlr.RuleContext) - break - } - } - - if t == nil { - return nil - } - - return t.(IIndexKeysSpecContext) +func (s *IndexClassContext) K_SAI() antlr.TerminalNode { + return s.GetToken(CqlParserK_SAI, 0) } -func (s *IndexColumnSpecContext) IndexEntriesSSpec() IIndexEntriesSSpecContext { - var t antlr.RuleContext - for _, ctx := range s.GetChildren() { - if _, ok := ctx.(IIndexEntriesSSpecContext); ok { - t = ctx.(antlr.RuleContext) - break - } - } - - if t == nil { - return nil - } - - return t.(IIndexEntriesSSpecContext) +func (s *IndexClassContext) K_STORAGEATTACHEDINDEX() antlr.TerminalNode { + return s.GetToken(CqlParserK_STORAGEATTACHEDINDEX, 0) } -func (s *IndexColumnSpecContext) IndexFullSpec() IIndexFullSpecContext { - var t antlr.RuleContext - for _, ctx := range s.GetChildren() { - if _, ok := ctx.(IIndexFullSpecContext); ok { - t = ctx.(antlr.RuleContext) - break - } - } - - if t == nil { - return nil - } - - return t.(IIndexFullSpecContext) -} - -func (s *IndexColumnSpecContext) GetRuleContext() antlr.RuleContext { +func (s *IndexClassContext) GetRuleContext() antlr.RuleContext { return s } -func (s *IndexColumnSpecContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string { +func (s *IndexClassContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string { return antlr.TreesStringTree(s, ruleNames, recog) } -func (s *IndexColumnSpecContext) EnterRule(listener antlr.ParseTreeListener) { +func (s *IndexClassContext) EnterRule(listener antlr.ParseTreeListener) { if listenerT, ok := listener.(CqlParserListener); ok { - listenerT.EnterIndexColumnSpec(s) + listenerT.EnterIndexClass(s) } } -func (s *IndexColumnSpecContext) ExitRule(listener antlr.ParseTreeListener) { +func (s *IndexClassContext) ExitRule(listener antlr.ParseTreeListener) { if listenerT, ok := listener.(CqlParserListener); ok { - listenerT.ExitIndexColumnSpec(s) + listenerT.ExitIndexClass(s) } } -func (s *IndexColumnSpecContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { +func (s *IndexClassContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { switch t := visitor.(type) { case CqlParserVisitor: - return t.VisitIndexColumnSpec(s) + return t.VisitIndexClass(s) default: return t.VisitChildren(s) } } -func (p *CqlParser) IndexColumnSpec() (localctx IIndexColumnSpecContext) { - localctx = NewIndexColumnSpecContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 200, CqlParserRULE_indexColumnSpec) - p.SetState(1516) +func (p *CqlParser) IndexClass() (localctx IIndexClassContext) { + localctx = NewIndexClassContext(p, p.GetParserRuleContext(), p.GetState()) + p.EnterRule(localctx, 198, CqlParserRULE_indexClass) + p.SetState(1537) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit } switch p.GetTokenStream().LA(1) { - case CqlParserDQUOTE, CqlParserOBJECT_NAME: + case CqlParserSTRING_LITERAL: p.EnterOuterAlt(localctx, 1) { - p.SetState(1512) - p.Column() + p.SetState(1534) + p.StringLiteral() } - case CqlParserK_KEYS: + case CqlParserK_SAI: p.EnterOuterAlt(localctx, 2) { - p.SetState(1513) - p.IndexKeysSpec() + p.SetState(1535) + p.Match(CqlParserK_SAI) + if p.HasError() { + // Recognition error - abort rule + goto errorExit + } } - case CqlParserK_ENTRIES: + case CqlParserK_STORAGEATTACHEDINDEX: p.EnterOuterAlt(localctx, 3) { - p.SetState(1514) - p.IndexEntriesSSpec() - } - - case CqlParserK_FULL: - p.EnterOuterAlt(localctx, 4) - { - p.SetState(1515) - p.IndexFullSpec() + p.SetState(1536) + p.Match(CqlParserK_STORAGEATTACHEDINDEX) + if p.HasError() { + // Recognition error - abort rule + goto errorExit + } } default: @@ -24625,95 +24663,56 @@ errorExit: goto errorExit // Trick to prevent compiler error if the label is not used } -// IIndexKeysSpecContext is an interface to support dynamic dispatch. -type IIndexKeysSpecContext interface { +// IIndexOptionsContext is an interface to support dynamic dispatch. +type IIndexOptionsContext interface { antlr.ParserRuleContext // GetParser returns the parser. GetParser() antlr.Parser // Getter signatures - KwKeys() IKwKeysContext - SyntaxBracketLr() ISyntaxBracketLrContext - OBJECT_NAME() antlr.TerminalNode - SyntaxBracketRr() ISyntaxBracketRrContext + OptionHash() IOptionHashContext - // IsIndexKeysSpecContext differentiates from other interfaces. - IsIndexKeysSpecContext() + // IsIndexOptionsContext differentiates from other interfaces. + IsIndexOptionsContext() } -type IndexKeysSpecContext struct { +type IndexOptionsContext struct { antlr.BaseParserRuleContext parser antlr.Parser } -func NewEmptyIndexKeysSpecContext() *IndexKeysSpecContext { - var p = new(IndexKeysSpecContext) +func NewEmptyIndexOptionsContext() *IndexOptionsContext { + var p = new(IndexOptionsContext) antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1) - p.RuleIndex = CqlParserRULE_indexKeysSpec + p.RuleIndex = CqlParserRULE_indexOptions return p } -func InitEmptyIndexKeysSpecContext(p *IndexKeysSpecContext) { +func InitEmptyIndexOptionsContext(p *IndexOptionsContext) { antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1) - p.RuleIndex = CqlParserRULE_indexKeysSpec + p.RuleIndex = CqlParserRULE_indexOptions } -func (*IndexKeysSpecContext) IsIndexKeysSpecContext() {} +func (*IndexOptionsContext) IsIndexOptionsContext() {} -func NewIndexKeysSpecContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *IndexKeysSpecContext { - var p = new(IndexKeysSpecContext) +func NewIndexOptionsContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *IndexOptionsContext { + var p = new(IndexOptionsContext) antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState) p.parser = parser - p.RuleIndex = CqlParserRULE_indexKeysSpec + p.RuleIndex = CqlParserRULE_indexOptions return p } -func (s *IndexKeysSpecContext) GetParser() antlr.Parser { return s.parser } - -func (s *IndexKeysSpecContext) KwKeys() IKwKeysContext { - var t antlr.RuleContext - for _, ctx := range s.GetChildren() { - if _, ok := ctx.(IKwKeysContext); ok { - t = ctx.(antlr.RuleContext) - break - } - } - - if t == nil { - return nil - } - - return t.(IKwKeysContext) -} - -func (s *IndexKeysSpecContext) SyntaxBracketLr() ISyntaxBracketLrContext { - var t antlr.RuleContext - for _, ctx := range s.GetChildren() { - if _, ok := ctx.(ISyntaxBracketLrContext); ok { - t = ctx.(antlr.RuleContext) - break - } - } - - if t == nil { - return nil - } - - return t.(ISyntaxBracketLrContext) -} +func (s *IndexOptionsContext) GetParser() antlr.Parser { return s.parser } -func (s *IndexKeysSpecContext) OBJECT_NAME() antlr.TerminalNode { - return s.GetToken(CqlParserOBJECT_NAME, 0) -} - -func (s *IndexKeysSpecContext) SyntaxBracketRr() ISyntaxBracketRrContext { +func (s *IndexOptionsContext) OptionHash() IOptionHashContext { var t antlr.RuleContext for _, ctx := range s.GetChildren() { - if _, ok := ctx.(ISyntaxBracketRrContext); ok { + if _, ok := ctx.(IOptionHashContext); ok { t = ctx.(antlr.RuleContext) break } @@ -24723,62 +24722,46 @@ func (s *IndexKeysSpecContext) SyntaxBracketRr() ISyntaxBracketRrContext { return nil } - return t.(ISyntaxBracketRrContext) + return t.(IOptionHashContext) } -func (s *IndexKeysSpecContext) GetRuleContext() antlr.RuleContext { +func (s *IndexOptionsContext) GetRuleContext() antlr.RuleContext { return s } -func (s *IndexKeysSpecContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string { +func (s *IndexOptionsContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string { return antlr.TreesStringTree(s, ruleNames, recog) } -func (s *IndexKeysSpecContext) EnterRule(listener antlr.ParseTreeListener) { +func (s *IndexOptionsContext) EnterRule(listener antlr.ParseTreeListener) { if listenerT, ok := listener.(CqlParserListener); ok { - listenerT.EnterIndexKeysSpec(s) + listenerT.EnterIndexOptions(s) } } -func (s *IndexKeysSpecContext) ExitRule(listener antlr.ParseTreeListener) { +func (s *IndexOptionsContext) ExitRule(listener antlr.ParseTreeListener) { if listenerT, ok := listener.(CqlParserListener); ok { - listenerT.ExitIndexKeysSpec(s) + listenerT.ExitIndexOptions(s) } } -func (s *IndexKeysSpecContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { +func (s *IndexOptionsContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { switch t := visitor.(type) { case CqlParserVisitor: - return t.VisitIndexKeysSpec(s) + return t.VisitIndexOptions(s) default: return t.VisitChildren(s) } } -func (p *CqlParser) IndexKeysSpec() (localctx IIndexKeysSpecContext) { - localctx = NewIndexKeysSpecContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 202, CqlParserRULE_indexKeysSpec) +func (p *CqlParser) IndexOptions() (localctx IIndexOptionsContext) { + localctx = NewIndexOptionsContext(p, p.GetParserRuleContext(), p.GetState()) + p.EnterRule(localctx, 200, CqlParserRULE_indexOptions) p.EnterOuterAlt(localctx, 1) { - p.SetState(1518) - p.KwKeys() - } - { - p.SetState(1519) - p.SyntaxBracketLr() - } - { - p.SetState(1520) - p.Match(CqlParserOBJECT_NAME) - if p.HasError() { - // Recognition error - abort rule - goto errorExit - } - } - { - p.SetState(1521) - p.SyntaxBracketRr() + p.SetState(1539) + p.OptionHash() } errorExit: @@ -24794,59 +24777,61 @@ errorExit: goto errorExit // Trick to prevent compiler error if the label is not used } -// IIndexEntriesSSpecContext is an interface to support dynamic dispatch. -type IIndexEntriesSSpecContext interface { +// IIndexNameContext is an interface to support dynamic dispatch. +type IIndexNameContext interface { antlr.ParserRuleContext // GetParser returns the parser. GetParser() antlr.Parser // Getter signatures - KwEntries() IKwEntriesContext - SyntaxBracketLr() ISyntaxBracketLrContext OBJECT_NAME() antlr.TerminalNode - SyntaxBracketRr() ISyntaxBracketRrContext + StringLiteral() IStringLiteralContext - // IsIndexEntriesSSpecContext differentiates from other interfaces. - IsIndexEntriesSSpecContext() + // IsIndexNameContext differentiates from other interfaces. + IsIndexNameContext() } -type IndexEntriesSSpecContext struct { +type IndexNameContext struct { antlr.BaseParserRuleContext parser antlr.Parser } -func NewEmptyIndexEntriesSSpecContext() *IndexEntriesSSpecContext { - var p = new(IndexEntriesSSpecContext) +func NewEmptyIndexNameContext() *IndexNameContext { + var p = new(IndexNameContext) antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1) - p.RuleIndex = CqlParserRULE_indexEntriesSSpec + p.RuleIndex = CqlParserRULE_indexName return p } -func InitEmptyIndexEntriesSSpecContext(p *IndexEntriesSSpecContext) { +func InitEmptyIndexNameContext(p *IndexNameContext) { antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1) - p.RuleIndex = CqlParserRULE_indexEntriesSSpec + p.RuleIndex = CqlParserRULE_indexName } -func (*IndexEntriesSSpecContext) IsIndexEntriesSSpecContext() {} +func (*IndexNameContext) IsIndexNameContext() {} -func NewIndexEntriesSSpecContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *IndexEntriesSSpecContext { - var p = new(IndexEntriesSSpecContext) +func NewIndexNameContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *IndexNameContext { + var p = new(IndexNameContext) antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState) p.parser = parser - p.RuleIndex = CqlParserRULE_indexEntriesSSpec + p.RuleIndex = CqlParserRULE_indexName return p } -func (s *IndexEntriesSSpecContext) GetParser() antlr.Parser { return s.parser } +func (s *IndexNameContext) GetParser() antlr.Parser { return s.parser } + +func (s *IndexNameContext) OBJECT_NAME() antlr.TerminalNode { + return s.GetToken(CqlParserOBJECT_NAME, 0) +} -func (s *IndexEntriesSSpecContext) KwEntries() IKwEntriesContext { +func (s *IndexNameContext) StringLiteral() IStringLiteralContext { var t antlr.RuleContext for _, ctx := range s.GetChildren() { - if _, ok := ctx.(IKwEntriesContext); ok { + if _, ok := ctx.(IStringLiteralContext); ok { t = ctx.(antlr.RuleContext) break } @@ -24856,13 +24841,136 @@ func (s *IndexEntriesSSpecContext) KwEntries() IKwEntriesContext { return nil } - return t.(IKwEntriesContext) + return t.(IStringLiteralContext) } -func (s *IndexEntriesSSpecContext) SyntaxBracketLr() ISyntaxBracketLrContext { +func (s *IndexNameContext) GetRuleContext() antlr.RuleContext { + return s +} + +func (s *IndexNameContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string { + return antlr.TreesStringTree(s, ruleNames, recog) +} + +func (s *IndexNameContext) EnterRule(listener antlr.ParseTreeListener) { + if listenerT, ok := listener.(CqlParserListener); ok { + listenerT.EnterIndexName(s) + } +} + +func (s *IndexNameContext) ExitRule(listener antlr.ParseTreeListener) { + if listenerT, ok := listener.(CqlParserListener); ok { + listenerT.ExitIndexName(s) + } +} + +func (s *IndexNameContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { + switch t := visitor.(type) { + case CqlParserVisitor: + return t.VisitIndexName(s) + + default: + return t.VisitChildren(s) + } +} + +func (p *CqlParser) IndexName() (localctx IIndexNameContext) { + localctx = NewIndexNameContext(p, p.GetParserRuleContext(), p.GetState()) + p.EnterRule(localctx, 202, CqlParserRULE_indexName) + p.SetState(1543) + p.GetErrorHandler().Sync(p) + if p.HasError() { + goto errorExit + } + + switch p.GetTokenStream().LA(1) { + case CqlParserOBJECT_NAME: + p.EnterOuterAlt(localctx, 1) + { + p.SetState(1541) + p.Match(CqlParserOBJECT_NAME) + if p.HasError() { + // Recognition error - abort rule + goto errorExit + } + } + + case CqlParserSTRING_LITERAL: + p.EnterOuterAlt(localctx, 2) + { + p.SetState(1542) + p.StringLiteral() + } + + default: + p.SetError(antlr.NewNoViableAltException(p, nil, nil, nil, nil, nil)) + goto errorExit + } + +errorExit: + if p.HasError() { + v := p.GetError() + localctx.SetException(v) + p.GetErrorHandler().ReportError(p, v) + p.GetErrorHandler().Recover(p, v) + p.SetError(nil) + } + p.ExitRule() + return localctx + goto errorExit // Trick to prevent compiler error if the label is not used +} + +// IIndexColumnSpecContext is an interface to support dynamic dispatch. +type IIndexColumnSpecContext interface { + antlr.ParserRuleContext + + // GetParser returns the parser. + GetParser() antlr.Parser + + // Getter signatures + Column() IColumnContext + IndexFullSpec() IIndexFullSpecContext + + // IsIndexColumnSpecContext differentiates from other interfaces. + IsIndexColumnSpecContext() +} + +type IndexColumnSpecContext struct { + antlr.BaseParserRuleContext + parser antlr.Parser +} + +func NewEmptyIndexColumnSpecContext() *IndexColumnSpecContext { + var p = new(IndexColumnSpecContext) + antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1) + p.RuleIndex = CqlParserRULE_indexColumnSpec + return p +} + +func InitEmptyIndexColumnSpecContext(p *IndexColumnSpecContext) { + antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1) + p.RuleIndex = CqlParserRULE_indexColumnSpec +} + +func (*IndexColumnSpecContext) IsIndexColumnSpecContext() {} + +func NewIndexColumnSpecContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *IndexColumnSpecContext { + var p = new(IndexColumnSpecContext) + + antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState) + + p.parser = parser + p.RuleIndex = CqlParserRULE_indexColumnSpec + + return p +} + +func (s *IndexColumnSpecContext) GetParser() antlr.Parser { return s.parser } + +func (s *IndexColumnSpecContext) Column() IColumnContext { var t antlr.RuleContext for _, ctx := range s.GetChildren() { - if _, ok := ctx.(ISyntaxBracketLrContext); ok { + if _, ok := ctx.(IColumnContext); ok { t = ctx.(antlr.RuleContext) break } @@ -24872,17 +24980,13 @@ func (s *IndexEntriesSSpecContext) SyntaxBracketLr() ISyntaxBracketLrContext { return nil } - return t.(ISyntaxBracketLrContext) -} - -func (s *IndexEntriesSSpecContext) OBJECT_NAME() antlr.TerminalNode { - return s.GetToken(CqlParserOBJECT_NAME, 0) + return t.(IColumnContext) } -func (s *IndexEntriesSSpecContext) SyntaxBracketRr() ISyntaxBracketRrContext { +func (s *IndexColumnSpecContext) IndexFullSpec() IIndexFullSpecContext { var t antlr.RuleContext for _, ctx := range s.GetChildren() { - if _, ok := ctx.(ISyntaxBracketRrContext); ok { + if _, ok := ctx.(IIndexFullSpecContext); ok { t = ctx.(antlr.RuleContext) break } @@ -24892,62 +24996,66 @@ func (s *IndexEntriesSSpecContext) SyntaxBracketRr() ISyntaxBracketRrContext { return nil } - return t.(ISyntaxBracketRrContext) + return t.(IIndexFullSpecContext) } -func (s *IndexEntriesSSpecContext) GetRuleContext() antlr.RuleContext { +func (s *IndexColumnSpecContext) GetRuleContext() antlr.RuleContext { return s } -func (s *IndexEntriesSSpecContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string { +func (s *IndexColumnSpecContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string { return antlr.TreesStringTree(s, ruleNames, recog) } -func (s *IndexEntriesSSpecContext) EnterRule(listener antlr.ParseTreeListener) { +func (s *IndexColumnSpecContext) EnterRule(listener antlr.ParseTreeListener) { if listenerT, ok := listener.(CqlParserListener); ok { - listenerT.EnterIndexEntriesSSpec(s) + listenerT.EnterIndexColumnSpec(s) } } -func (s *IndexEntriesSSpecContext) ExitRule(listener antlr.ParseTreeListener) { +func (s *IndexColumnSpecContext) ExitRule(listener antlr.ParseTreeListener) { if listenerT, ok := listener.(CqlParserListener); ok { - listenerT.ExitIndexEntriesSSpec(s) + listenerT.ExitIndexColumnSpec(s) } } -func (s *IndexEntriesSSpecContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { +func (s *IndexColumnSpecContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { switch t := visitor.(type) { case CqlParserVisitor: - return t.VisitIndexEntriesSSpec(s) + return t.VisitIndexColumnSpec(s) default: return t.VisitChildren(s) } } -func (p *CqlParser) IndexEntriesSSpec() (localctx IIndexEntriesSSpecContext) { - localctx = NewIndexEntriesSSpecContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 204, CqlParserRULE_indexEntriesSSpec) - p.EnterOuterAlt(localctx, 1) - { - p.SetState(1523) - p.KwEntries() - } - { - p.SetState(1524) - p.SyntaxBracketLr() +func (p *CqlParser) IndexColumnSpec() (localctx IIndexColumnSpecContext) { + localctx = NewIndexColumnSpecContext(p, p.GetParserRuleContext(), p.GetState()) + p.EnterRule(localctx, 204, CqlParserRULE_indexColumnSpec) + p.SetState(1547) + p.GetErrorHandler().Sync(p) + if p.HasError() { + goto errorExit } - { - p.SetState(1525) - p.Match(CqlParserOBJECT_NAME) - if p.HasError() { - // Recognition error - abort rule - goto errorExit + + switch p.GetTokenStream().LA(1) { + case CqlParserDQUOTE, CqlParserOBJECT_NAME: + p.EnterOuterAlt(localctx, 1) + { + p.SetState(1545) + p.Column() } - } - { - p.SetState(1526) - p.SyntaxBracketRr() + + case CqlParserK_FULL: + p.EnterOuterAlt(localctx, 2) + { + p.SetState(1546) + p.IndexFullSpec() + } + + default: + p.SetError(antlr.NewNoViableAltException(p, nil, nil, nil, nil, nil)) + goto errorExit } errorExit: @@ -25099,15 +25207,15 @@ func (p *CqlParser) IndexFullSpec() (localctx IIndexFullSpecContext) { p.EnterRule(localctx, 206, CqlParserRULE_indexFullSpec) p.EnterOuterAlt(localctx, 1) { - p.SetState(1528) + p.SetState(1549) p.KwFull() } { - p.SetState(1529) + p.SetState(1550) p.SyntaxBracketLr() } { - p.SetState(1530) + p.SetState(1551) p.Match(CqlParserOBJECT_NAME) if p.HasError() { // Recognition error - abort rule @@ -25115,7 +25223,7 @@ func (p *CqlParser) IndexFullSpec() (localctx IIndexFullSpecContext) { } } { - p.SetState(1531) + p.SetState(1552) p.SyntaxBracketRr() } @@ -25349,7 +25457,7 @@ func (p *CqlParser) Delete_() (localctx IDelete_Context) { var _la int p.EnterOuterAlt(localctx, 1) - p.SetState(1534) + p.SetState(1555) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -25358,16 +25466,16 @@ func (p *CqlParser) Delete_() (localctx IDelete_Context) { if _la == CqlParserK_BEGIN { { - p.SetState(1533) + p.SetState(1554) p.BeginBatch() } } { - p.SetState(1536) + p.SetState(1557) p.KwDelete() } - p.SetState(1538) + p.SetState(1559) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -25376,16 +25484,16 @@ func (p *CqlParser) Delete_() (localctx IDelete_Context) { if _la == CqlParserOBJECT_NAME { { - p.SetState(1537) + p.SetState(1558) p.DeleteColumnList() } } { - p.SetState(1540) + p.SetState(1561) p.FromSpec() } - p.SetState(1542) + p.SetState(1563) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -25394,29 +25502,29 @@ func (p *CqlParser) Delete_() (localctx IDelete_Context) { if _la == CqlParserK_USING { { - p.SetState(1541) + p.SetState(1562) p.UsingTimestampSpec() } } { - p.SetState(1544) + p.SetState(1565) p.WhereSpec() } - p.SetState(1547) + p.SetState(1568) p.GetErrorHandler().Sync(p) - if p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 119, p.GetParserRuleContext()) == 1 { + if p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 123, p.GetParserRuleContext()) == 1 { { - p.SetState(1545) + p.SetState(1566) p.IfExist() } } else if p.HasError() { // JIM goto errorExit - } else if p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 119, p.GetParserRuleContext()) == 2 { + } else if p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 123, p.GetParserRuleContext()) == 2 { { - p.SetState(1546) + p.SetState(1567) p.IfSpec() } @@ -25605,11 +25713,11 @@ func (p *CqlParser) DeleteColumnList() (localctx IDeleteColumnListContext) { p.EnterOuterAlt(localctx, 1) { - p.SetState(1549) + p.SetState(1570) p.DeleteColumnItem() } - p.SetState(1555) + p.SetState(1576) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -25618,15 +25726,15 @@ func (p *CqlParser) DeleteColumnList() (localctx IDeleteColumnListContext) { for _la == CqlParserCOMMA { { - p.SetState(1550) + p.SetState(1571) p.SyntaxComma() } { - p.SetState(1551) + p.SetState(1572) p.DeleteColumnItem() } - p.SetState(1557) + p.SetState(1578) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -25774,17 +25882,17 @@ func (s *DeleteColumnItemContext) Accept(visitor antlr.ParseTreeVisitor) interfa func (p *CqlParser) DeleteColumnItem() (localctx IDeleteColumnItemContext) { localctx = NewDeleteColumnItemContext(p, p.GetParserRuleContext(), p.GetState()) p.EnterRule(localctx, 212, CqlParserRULE_deleteColumnItem) - p.SetState(1567) + p.SetState(1588) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit } - switch p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 122, p.GetParserRuleContext()) { + switch p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 126, p.GetParserRuleContext()) { case 1: p.EnterOuterAlt(localctx, 1) { - p.SetState(1558) + p.SetState(1579) p.Match(CqlParserOBJECT_NAME) if p.HasError() { // Recognition error - abort rule @@ -25795,7 +25903,7 @@ func (p *CqlParser) DeleteColumnItem() (localctx IDeleteColumnItemContext) { case 2: p.EnterOuterAlt(localctx, 2) { - p.SetState(1559) + p.SetState(1580) p.Match(CqlParserOBJECT_NAME) if p.HasError() { // Recognition error - abort rule @@ -25803,14 +25911,14 @@ func (p *CqlParser) DeleteColumnItem() (localctx IDeleteColumnItemContext) { } } { - p.SetState(1560) + p.SetState(1581) p.Match(CqlParserLS_BRACKET) if p.HasError() { // Recognition error - abort rule goto errorExit } } - p.SetState(1563) + p.SetState(1584) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -25819,13 +25927,13 @@ func (p *CqlParser) DeleteColumnItem() (localctx IDeleteColumnItemContext) { switch p.GetTokenStream().LA(1) { case CqlParserSTRING_LITERAL: { - p.SetState(1561) + p.SetState(1582) p.StringLiteral() } case CqlParserDECIMAL_LITERAL: { - p.SetState(1562) + p.SetState(1583) p.DecimalLiteral() } @@ -25834,7 +25942,7 @@ func (p *CqlParser) DeleteColumnItem() (localctx IDeleteColumnItemContext) { goto errorExit } { - p.SetState(1565) + p.SetState(1586) p.Match(CqlParserRS_BRACKET) if p.HasError() { // Recognition error - abort rule @@ -26115,7 +26223,7 @@ func (p *CqlParser) Update() (localctx IUpdateContext) { var _la int p.EnterOuterAlt(localctx, 1) - p.SetState(1570) + p.SetState(1591) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -26124,25 +26232,25 @@ func (p *CqlParser) Update() (localctx IUpdateContext) { if _la == CqlParserK_BEGIN { { - p.SetState(1569) + p.SetState(1590) p.BeginBatch() } } { - p.SetState(1572) + p.SetState(1593) p.KwUpdate() } - p.SetState(1576) + p.SetState(1597) p.GetErrorHandler().Sync(p) - if p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 124, p.GetParserRuleContext()) == 1 { + if p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 128, p.GetParserRuleContext()) == 1 { { - p.SetState(1573) + p.SetState(1594) p.Keyspace() } { - p.SetState(1574) + p.SetState(1595) p.Match(CqlParserDOT) if p.HasError() { // Recognition error - abort rule @@ -26154,10 +26262,10 @@ func (p *CqlParser) Update() (localctx IUpdateContext) { goto errorExit } { - p.SetState(1578) + p.SetState(1599) p.Table() } - p.SetState(1580) + p.SetState(1601) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -26166,37 +26274,37 @@ func (p *CqlParser) Update() (localctx IUpdateContext) { if _la == CqlParserK_USING { { - p.SetState(1579) + p.SetState(1600) p.UsingTtlTimestamp() } } { - p.SetState(1582) + p.SetState(1603) p.KwSet() } { - p.SetState(1583) + p.SetState(1604) p.Assignments() } { - p.SetState(1584) + p.SetState(1605) p.WhereSpec() } - p.SetState(1587) + p.SetState(1608) p.GetErrorHandler().Sync(p) - if p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 126, p.GetParserRuleContext()) == 1 { + if p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 130, p.GetParserRuleContext()) == 1 { { - p.SetState(1585) + p.SetState(1606) p.IfExist() } } else if p.HasError() { // JIM goto errorExit - } else if p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 126, p.GetParserRuleContext()) == 2 { + } else if p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 130, p.GetParserRuleContext()) == 2 { { - p.SetState(1586) + p.SetState(1607) p.IfSpec() } @@ -26331,11 +26439,11 @@ func (p *CqlParser) IfSpec() (localctx IIfSpecContext) { p.EnterRule(localctx, 216, CqlParserRULE_ifSpec) p.EnterOuterAlt(localctx, 1) { - p.SetState(1589) + p.SetState(1610) p.KwIf() } { - p.SetState(1590) + p.SetState(1611) p.IfConditionList() } @@ -26520,11 +26628,11 @@ func (p *CqlParser) IfConditionList() (localctx IIfConditionListContext) { p.EnterOuterAlt(localctx, 1) { - p.SetState(1592) + p.SetState(1613) p.IfCondition() } - p.SetState(1598) + p.SetState(1619) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -26533,15 +26641,15 @@ func (p *CqlParser) IfConditionList() (localctx IIfConditionListContext) { for _la == CqlParserK_AND { { - p.SetState(1593) + p.SetState(1614) p.KwAnd() } { - p.SetState(1594) + p.SetState(1615) p.IfCondition() } - p.SetState(1600) + p.SetState(1621) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -26669,7 +26777,7 @@ func (p *CqlParser) IfCondition() (localctx IIfConditionContext) { p.EnterRule(localctx, 220, CqlParserRULE_ifCondition) p.EnterOuterAlt(localctx, 1) { - p.SetState(1601) + p.SetState(1622) p.Match(CqlParserOBJECT_NAME) if p.HasError() { // Recognition error - abort rule @@ -26677,7 +26785,7 @@ func (p *CqlParser) IfCondition() (localctx IIfConditionContext) { } } { - p.SetState(1602) + p.SetState(1623) p.Match(CqlParserOPERATOR_EQ) if p.HasError() { // Recognition error - abort rule @@ -26685,7 +26793,7 @@ func (p *CqlParser) IfCondition() (localctx IIfConditionContext) { } } { - p.SetState(1603) + p.SetState(1624) p.Constant() } @@ -26870,11 +26978,11 @@ func (p *CqlParser) Assignments() (localctx IAssignmentsContext) { p.EnterOuterAlt(localctx, 1) { - p.SetState(1605) + p.SetState(1626) p.AssignmentElement() } - p.SetState(1611) + p.SetState(1632) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -26883,15 +26991,15 @@ func (p *CqlParser) Assignments() (localctx IAssignmentsContext) { for _la == CqlParserCOMMA { { - p.SetState(1606) + p.SetState(1627) p.SyntaxComma() } { - p.SetState(1607) + p.SetState(1628) p.AssignmentElement() } - p.SetState(1613) + p.SetState(1634) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -27136,17 +27244,17 @@ func (p *CqlParser) AssignmentElement() (localctx IAssignmentElementContext) { p.EnterRule(localctx, 224, CqlParserRULE_assignmentElement) var _la int - p.SetState(1667) + p.SetState(1688) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit } - switch p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 130, p.GetParserRuleContext()) { + switch p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 134, p.GetParserRuleContext()) { case 1: p.EnterOuterAlt(localctx, 1) { - p.SetState(1614) + p.SetState(1635) p.Match(CqlParserOBJECT_NAME) if p.HasError() { // Recognition error - abort rule @@ -27154,41 +27262,41 @@ func (p *CqlParser) AssignmentElement() (localctx IAssignmentElementContext) { } } { - p.SetState(1615) + p.SetState(1636) p.Match(CqlParserOPERATOR_EQ) if p.HasError() { // Recognition error - abort rule goto errorExit } } - p.SetState(1620) + p.SetState(1641) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit } - switch p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 129, p.GetParserRuleContext()) { + switch p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 133, p.GetParserRuleContext()) { case 1: { - p.SetState(1616) + p.SetState(1637) p.Constant() } case 2: { - p.SetState(1617) + p.SetState(1638) p.AssignmentMap() } case 3: { - p.SetState(1618) + p.SetState(1639) p.AssignmentSet() } case 4: { - p.SetState(1619) + p.SetState(1640) p.AssignmentList() } @@ -27199,7 +27307,7 @@ func (p *CqlParser) AssignmentElement() (localctx IAssignmentElementContext) { case 2: p.EnterOuterAlt(localctx, 2) { - p.SetState(1622) + p.SetState(1643) p.Match(CqlParserOBJECT_NAME) if p.HasError() { // Recognition error - abort rule @@ -27207,7 +27315,7 @@ func (p *CqlParser) AssignmentElement() (localctx IAssignmentElementContext) { } } { - p.SetState(1623) + p.SetState(1644) p.Match(CqlParserOPERATOR_EQ) if p.HasError() { // Recognition error - abort rule @@ -27215,7 +27323,7 @@ func (p *CqlParser) AssignmentElement() (localctx IAssignmentElementContext) { } } { - p.SetState(1624) + p.SetState(1645) p.Match(CqlParserOBJECT_NAME) if p.HasError() { // Recognition error - abort rule @@ -27223,7 +27331,7 @@ func (p *CqlParser) AssignmentElement() (localctx IAssignmentElementContext) { } } { - p.SetState(1625) + p.SetState(1646) _la = p.GetTokenStream().LA(1) if !(_la == CqlParserPLUS || _la == CqlParserMINUS) { @@ -27234,14 +27342,14 @@ func (p *CqlParser) AssignmentElement() (localctx IAssignmentElementContext) { } } { - p.SetState(1626) + p.SetState(1647) p.DecimalLiteral() } case 3: p.EnterOuterAlt(localctx, 3) { - p.SetState(1627) + p.SetState(1648) p.Match(CqlParserOBJECT_NAME) if p.HasError() { // Recognition error - abort rule @@ -27249,7 +27357,7 @@ func (p *CqlParser) AssignmentElement() (localctx IAssignmentElementContext) { } } { - p.SetState(1628) + p.SetState(1649) p.Match(CqlParserOPERATOR_EQ) if p.HasError() { // Recognition error - abort rule @@ -27257,7 +27365,7 @@ func (p *CqlParser) AssignmentElement() (localctx IAssignmentElementContext) { } } { - p.SetState(1629) + p.SetState(1650) p.Match(CqlParserOBJECT_NAME) if p.HasError() { // Recognition error - abort rule @@ -27265,7 +27373,7 @@ func (p *CqlParser) AssignmentElement() (localctx IAssignmentElementContext) { } } { - p.SetState(1630) + p.SetState(1651) _la = p.GetTokenStream().LA(1) if !(_la == CqlParserPLUS || _la == CqlParserMINUS) { @@ -27276,14 +27384,14 @@ func (p *CqlParser) AssignmentElement() (localctx IAssignmentElementContext) { } } { - p.SetState(1631) + p.SetState(1652) p.AssignmentSet() } case 4: p.EnterOuterAlt(localctx, 4) { - p.SetState(1632) + p.SetState(1653) p.Match(CqlParserOBJECT_NAME) if p.HasError() { // Recognition error - abort rule @@ -27291,7 +27399,7 @@ func (p *CqlParser) AssignmentElement() (localctx IAssignmentElementContext) { } } { - p.SetState(1633) + p.SetState(1654) p.Match(CqlParserOPERATOR_EQ) if p.HasError() { // Recognition error - abort rule @@ -27299,11 +27407,11 @@ func (p *CqlParser) AssignmentElement() (localctx IAssignmentElementContext) { } } { - p.SetState(1634) + p.SetState(1655) p.AssignmentSet() } { - p.SetState(1635) + p.SetState(1656) _la = p.GetTokenStream().LA(1) if !(_la == CqlParserPLUS || _la == CqlParserMINUS) { @@ -27314,7 +27422,7 @@ func (p *CqlParser) AssignmentElement() (localctx IAssignmentElementContext) { } } { - p.SetState(1636) + p.SetState(1657) p.Match(CqlParserOBJECT_NAME) if p.HasError() { // Recognition error - abort rule @@ -27325,7 +27433,7 @@ func (p *CqlParser) AssignmentElement() (localctx IAssignmentElementContext) { case 5: p.EnterOuterAlt(localctx, 5) { - p.SetState(1638) + p.SetState(1659) p.Match(CqlParserOBJECT_NAME) if p.HasError() { // Recognition error - abort rule @@ -27333,7 +27441,7 @@ func (p *CqlParser) AssignmentElement() (localctx IAssignmentElementContext) { } } { - p.SetState(1639) + p.SetState(1660) p.Match(CqlParserOPERATOR_EQ) if p.HasError() { // Recognition error - abort rule @@ -27341,7 +27449,7 @@ func (p *CqlParser) AssignmentElement() (localctx IAssignmentElementContext) { } } { - p.SetState(1640) + p.SetState(1661) p.Match(CqlParserOBJECT_NAME) if p.HasError() { // Recognition error - abort rule @@ -27349,7 +27457,7 @@ func (p *CqlParser) AssignmentElement() (localctx IAssignmentElementContext) { } } { - p.SetState(1641) + p.SetState(1662) _la = p.GetTokenStream().LA(1) if !(_la == CqlParserPLUS || _la == CqlParserMINUS) { @@ -27360,14 +27468,14 @@ func (p *CqlParser) AssignmentElement() (localctx IAssignmentElementContext) { } } { - p.SetState(1642) + p.SetState(1663) p.AssignmentMap() } case 6: p.EnterOuterAlt(localctx, 6) { - p.SetState(1643) + p.SetState(1664) p.Match(CqlParserOBJECT_NAME) if p.HasError() { // Recognition error - abort rule @@ -27375,7 +27483,7 @@ func (p *CqlParser) AssignmentElement() (localctx IAssignmentElementContext) { } } { - p.SetState(1644) + p.SetState(1665) p.Match(CqlParserOPERATOR_EQ) if p.HasError() { // Recognition error - abort rule @@ -27383,11 +27491,11 @@ func (p *CqlParser) AssignmentElement() (localctx IAssignmentElementContext) { } } { - p.SetState(1645) + p.SetState(1666) p.AssignmentMap() } { - p.SetState(1646) + p.SetState(1667) _la = p.GetTokenStream().LA(1) if !(_la == CqlParserPLUS || _la == CqlParserMINUS) { @@ -27398,7 +27506,7 @@ func (p *CqlParser) AssignmentElement() (localctx IAssignmentElementContext) { } } { - p.SetState(1647) + p.SetState(1668) p.Match(CqlParserOBJECT_NAME) if p.HasError() { // Recognition error - abort rule @@ -27409,7 +27517,7 @@ func (p *CqlParser) AssignmentElement() (localctx IAssignmentElementContext) { case 7: p.EnterOuterAlt(localctx, 7) { - p.SetState(1649) + p.SetState(1670) p.Match(CqlParserOBJECT_NAME) if p.HasError() { // Recognition error - abort rule @@ -27417,7 +27525,7 @@ func (p *CqlParser) AssignmentElement() (localctx IAssignmentElementContext) { } } { - p.SetState(1650) + p.SetState(1671) p.Match(CqlParserOPERATOR_EQ) if p.HasError() { // Recognition error - abort rule @@ -27425,7 +27533,7 @@ func (p *CqlParser) AssignmentElement() (localctx IAssignmentElementContext) { } } { - p.SetState(1651) + p.SetState(1672) p.Match(CqlParserOBJECT_NAME) if p.HasError() { // Recognition error - abort rule @@ -27433,7 +27541,7 @@ func (p *CqlParser) AssignmentElement() (localctx IAssignmentElementContext) { } } { - p.SetState(1652) + p.SetState(1673) _la = p.GetTokenStream().LA(1) if !(_la == CqlParserPLUS || _la == CqlParserMINUS) { @@ -27444,14 +27552,14 @@ func (p *CqlParser) AssignmentElement() (localctx IAssignmentElementContext) { } } { - p.SetState(1653) + p.SetState(1674) p.AssignmentList() } case 8: p.EnterOuterAlt(localctx, 8) { - p.SetState(1654) + p.SetState(1675) p.Match(CqlParserOBJECT_NAME) if p.HasError() { // Recognition error - abort rule @@ -27459,7 +27567,7 @@ func (p *CqlParser) AssignmentElement() (localctx IAssignmentElementContext) { } } { - p.SetState(1655) + p.SetState(1676) p.Match(CqlParserOPERATOR_EQ) if p.HasError() { // Recognition error - abort rule @@ -27467,11 +27575,11 @@ func (p *CqlParser) AssignmentElement() (localctx IAssignmentElementContext) { } } { - p.SetState(1656) + p.SetState(1677) p.AssignmentList() } { - p.SetState(1657) + p.SetState(1678) _la = p.GetTokenStream().LA(1) if !(_la == CqlParserPLUS || _la == CqlParserMINUS) { @@ -27482,7 +27590,7 @@ func (p *CqlParser) AssignmentElement() (localctx IAssignmentElementContext) { } } { - p.SetState(1658) + p.SetState(1679) p.Match(CqlParserOBJECT_NAME) if p.HasError() { // Recognition error - abort rule @@ -27493,7 +27601,7 @@ func (p *CqlParser) AssignmentElement() (localctx IAssignmentElementContext) { case 9: p.EnterOuterAlt(localctx, 9) { - p.SetState(1660) + p.SetState(1681) p.Match(CqlParserOBJECT_NAME) if p.HasError() { // Recognition error - abort rule @@ -27501,19 +27609,19 @@ func (p *CqlParser) AssignmentElement() (localctx IAssignmentElementContext) { } } { - p.SetState(1661) + p.SetState(1682) p.SyntaxBracketLs() } { - p.SetState(1662) + p.SetState(1683) p.DecimalLiteral() } { - p.SetState(1663) + p.SetState(1684) p.SyntaxBracketRs() } { - p.SetState(1664) + p.SetState(1685) p.Match(CqlParserOPERATOR_EQ) if p.HasError() { // Recognition error - abort rule @@ -27521,7 +27629,7 @@ func (p *CqlParser) AssignmentElement() (localctx IAssignmentElementContext) { } } { - p.SetState(1665) + p.SetState(1686) p.Constant() } @@ -27744,22 +27852,22 @@ func (p *CqlParser) AssignmentSet() (localctx IAssignmentSetContext) { p.EnterOuterAlt(localctx, 1) { - p.SetState(1669) + p.SetState(1690) p.SyntaxBracketLc() } - p.SetState(1679) + p.SetState(1700) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit } _la = p.GetTokenStream().LA(1) - if _la == CqlParserK_FALSE || _la == CqlParserK_NULL || ((int64((_la-126)) & ^0x3f) == 0 && ((int64(1)<<(_la-126))&43705587204097) != 0) { + if _la == CqlParserK_FALSE || _la == CqlParserK_NULL || ((int64((_la-126)) & ^0x3f) == 0 && ((int64(1)<<(_la-126))&5728578726015270913) != 0) { { - p.SetState(1670) + p.SetState(1691) p.Constant() } - p.SetState(1676) + p.SetState(1697) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -27768,15 +27876,15 @@ func (p *CqlParser) AssignmentSet() (localctx IAssignmentSetContext) { for _la == CqlParserCOMMA { { - p.SetState(1671) + p.SetState(1692) p.SyntaxComma() } { - p.SetState(1672) + p.SetState(1693) p.Constant() } - p.SetState(1678) + p.SetState(1699) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -27786,7 +27894,7 @@ func (p *CqlParser) AssignmentSet() (localctx IAssignmentSetContext) { } { - p.SetState(1681) + p.SetState(1702) p.SyntaxBracketRc() } @@ -28048,24 +28156,24 @@ func (p *CqlParser) AssignmentMap() (localctx IAssignmentMapContext) { p.EnterOuterAlt(localctx, 1) { - p.SetState(1683) + p.SetState(1704) p.SyntaxBracketLc() } { - p.SetState(1684) + p.SetState(1705) p.Constant() } { - p.SetState(1685) + p.SetState(1706) p.SyntaxColon() } { - p.SetState(1686) + p.SetState(1707) p.Constant() } - p.SetState(1695) + p.SetState(1716) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -28074,23 +28182,23 @@ func (p *CqlParser) AssignmentMap() (localctx IAssignmentMapContext) { for _la == CqlParserCOMMA { { - p.SetState(1688) + p.SetState(1709) p.SyntaxComma() } { - p.SetState(1689) + p.SetState(1710) p.Constant() } { - p.SetState(1690) + p.SetState(1711) p.SyntaxColon() } { - p.SetState(1691) + p.SetState(1712) p.Constant() } - p.SetState(1697) + p.SetState(1718) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -28098,7 +28206,7 @@ func (p *CqlParser) AssignmentMap() (localctx IAssignmentMapContext) { _la = p.GetTokenStream().LA(1) } { - p.SetState(1698) + p.SetState(1719) p.SyntaxBracketRc() } @@ -28317,14 +28425,14 @@ func (p *CqlParser) AssignmentList() (localctx IAssignmentListContext) { p.EnterOuterAlt(localctx, 1) { - p.SetState(1700) + p.SetState(1721) p.SyntaxBracketLs() } { - p.SetState(1701) + p.SetState(1722) p.Constant() } - p.SetState(1707) + p.SetState(1728) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -28333,15 +28441,15 @@ func (p *CqlParser) AssignmentList() (localctx IAssignmentListContext) { for _la == CqlParserCOMMA { { - p.SetState(1702) + p.SetState(1723) p.SyntaxComma() } { - p.SetState(1703) + p.SetState(1724) p.Constant() } - p.SetState(1709) + p.SetState(1730) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -28349,7 +28457,7 @@ func (p *CqlParser) AssignmentList() (localctx IAssignmentListContext) { _la = p.GetTokenStream().LA(1) } { - p.SetState(1710) + p.SetState(1731) p.SyntaxBracketRs() } @@ -28568,15 +28676,15 @@ func (p *CqlParser) AssignmentTuple() (localctx IAssignmentTupleContext) { p.EnterOuterAlt(localctx, 1) { - p.SetState(1712) + p.SetState(1733) p.SyntaxBracketLr() } { - p.SetState(1713) + p.SetState(1734) p.Expression() } - p.SetState(1719) + p.SetState(1740) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -28585,15 +28693,15 @@ func (p *CqlParser) AssignmentTuple() (localctx IAssignmentTupleContext) { for _la == CqlParserCOMMA { { - p.SetState(1714) + p.SetState(1735) p.SyntaxComma() } { - p.SetState(1715) + p.SetState(1736) p.Expression() } - p.SetState(1721) + p.SetState(1742) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -28602,7 +28710,7 @@ func (p *CqlParser) AssignmentTuple() (localctx IAssignmentTupleContext) { } { - p.SetState(1722) + p.SetState(1743) p.SyntaxBracketRr() } @@ -28858,7 +28966,7 @@ func (p *CqlParser) Insert() (localctx IInsertContext) { var _la int p.EnterOuterAlt(localctx, 1) - p.SetState(1725) + p.SetState(1746) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -28867,29 +28975,29 @@ func (p *CqlParser) Insert() (localctx IInsertContext) { if _la == CqlParserK_BEGIN { { - p.SetState(1724) + p.SetState(1745) p.BeginBatch() } } { - p.SetState(1727) + p.SetState(1748) p.KwInsert() } { - p.SetState(1728) + p.SetState(1749) p.KwInto() } - p.SetState(1732) + p.SetState(1753) p.GetErrorHandler().Sync(p) - if p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 137, p.GetParserRuleContext()) == 1 { + if p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 141, p.GetParserRuleContext()) == 1 { { - p.SetState(1729) + p.SetState(1750) p.Keyspace() } { - p.SetState(1730) + p.SetState(1751) p.Match(CqlParserDOT) if p.HasError() { // Recognition error - abort rule @@ -28901,10 +29009,10 @@ func (p *CqlParser) Insert() (localctx IInsertContext) { goto errorExit } { - p.SetState(1734) + p.SetState(1755) p.Table() } - p.SetState(1736) + p.SetState(1757) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -28913,16 +29021,16 @@ func (p *CqlParser) Insert() (localctx IInsertContext) { if _la == CqlParserLR_BRACKET { { - p.SetState(1735) + p.SetState(1756) p.InsertColumnSpec() } } { - p.SetState(1738) + p.SetState(1759) p.InsertValuesSpec() } - p.SetState(1740) + p.SetState(1761) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -28931,12 +29039,12 @@ func (p *CqlParser) Insert() (localctx IInsertContext) { if _la == CqlParserK_IF { { - p.SetState(1739) + p.SetState(1760) p.IfNotExist() } } - p.SetState(1743) + p.SetState(1764) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -28945,7 +29053,7 @@ func (p *CqlParser) Insert() (localctx IInsertContext) { if _la == CqlParserK_USING { { - p.SetState(1742) + p.SetState(1763) p.UsingTtlTimestamp() } @@ -29110,70 +29218,70 @@ func (s *UsingTtlTimestampContext) Accept(visitor antlr.ParseTreeVisitor) interf func (p *CqlParser) UsingTtlTimestamp() (localctx IUsingTtlTimestampContext) { localctx = NewUsingTtlTimestampContext(p, p.GetParserRuleContext(), p.GetState()) p.EnterRule(localctx, 236, CqlParserRULE_usingTtlTimestamp) - p.SetState(1761) + p.SetState(1782) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit } - switch p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 141, p.GetParserRuleContext()) { + switch p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 145, p.GetParserRuleContext()) { case 1: p.EnterOuterAlt(localctx, 1) { - p.SetState(1745) + p.SetState(1766) p.KwUsing() } { - p.SetState(1746) + p.SetState(1767) p.Ttl() } case 2: p.EnterOuterAlt(localctx, 2) { - p.SetState(1748) + p.SetState(1769) p.KwUsing() } { - p.SetState(1749) + p.SetState(1770) p.Ttl() } { - p.SetState(1750) + p.SetState(1771) p.KwAnd() } { - p.SetState(1751) + p.SetState(1772) p.Timestamp() } case 3: p.EnterOuterAlt(localctx, 3) { - p.SetState(1753) + p.SetState(1774) p.KwUsing() } { - p.SetState(1754) + p.SetState(1775) p.Timestamp() } case 4: p.EnterOuterAlt(localctx, 4) { - p.SetState(1756) + p.SetState(1777) p.KwUsing() } { - p.SetState(1757) + p.SetState(1778) p.Timestamp() } { - p.SetState(1758) + p.SetState(1779) p.KwAnd() } { - p.SetState(1759) + p.SetState(1780) p.Ttl() } @@ -29308,11 +29416,11 @@ func (p *CqlParser) Timestamp() (localctx ITimestampContext) { p.EnterRule(localctx, 238, CqlParserRULE_timestamp) p.EnterOuterAlt(localctx, 1) { - p.SetState(1763) + p.SetState(1784) p.KwTimestamp() } { - p.SetState(1764) + p.SetState(1785) p.DecimalLiteral() } @@ -29443,11 +29551,11 @@ func (p *CqlParser) Ttl() (localctx ITtlContext) { p.EnterRule(localctx, 240, CqlParserRULE_ttl) p.EnterOuterAlt(localctx, 1) { - p.SetState(1766) + p.SetState(1787) p.KwTtl() } { - p.SetState(1767) + p.SetState(1788) p.DecimalLiteral() } @@ -29578,11 +29686,11 @@ func (p *CqlParser) UsingTimestampSpec() (localctx IUsingTimestampSpecContext) { p.EnterRule(localctx, 242, CqlParserRULE_usingTimestampSpec) p.EnterOuterAlt(localctx, 1) { - p.SetState(1769) + p.SetState(1790) p.KwUsing() } { - p.SetState(1770) + p.SetState(1791) p.Timestamp() } @@ -29730,15 +29838,15 @@ func (p *CqlParser) IfNotExist() (localctx IIfNotExistContext) { p.EnterRule(localctx, 244, CqlParserRULE_ifNotExist) p.EnterOuterAlt(localctx, 1) { - p.SetState(1772) + p.SetState(1793) p.KwIf() } { - p.SetState(1773) + p.SetState(1794) p.KwNot() } { - p.SetState(1774) + p.SetState(1795) p.KwExists() } @@ -29869,11 +29977,11 @@ func (p *CqlParser) IfExist() (localctx IIfExistContext) { p.EnterRule(localctx, 246, CqlParserRULE_ifExist) p.EnterOuterAlt(localctx, 1) { - p.SetState(1776) + p.SetState(1797) p.KwIf() } { - p.SetState(1777) + p.SetState(1798) p.KwExists() } @@ -29904,6 +30012,7 @@ type IInsertValuesSpecContext interface { RR_BRACKET() antlr.TerminalNode KwJson() IKwJsonContext Constant() IConstantContext + JsonDefaultUnset() IJsonDefaultUnsetContext // IsInsertValuesSpecContext differentiates from other interfaces. IsInsertValuesSpecContext() @@ -30013,6 +30122,22 @@ func (s *InsertValuesSpecContext) Constant() IConstantContext { return t.(IConstantContext) } +func (s *InsertValuesSpecContext) JsonDefaultUnset() IJsonDefaultUnsetContext { + var t antlr.RuleContext + for _, ctx := range s.GetChildren() { + if _, ok := ctx.(IJsonDefaultUnsetContext); ok { + t = ctx.(antlr.RuleContext) + break + } + } + + if t == nil { + return nil + } + + return t.(IJsonDefaultUnsetContext) +} + func (s *InsertValuesSpecContext) GetRuleContext() antlr.RuleContext { return s } @@ -30046,7 +30171,9 @@ func (s *InsertValuesSpecContext) Accept(visitor antlr.ParseTreeVisitor) interfa func (p *CqlParser) InsertValuesSpec() (localctx IInsertValuesSpecContext) { localctx = NewInsertValuesSpecContext(p, p.GetParserRuleContext(), p.GetState()) p.EnterRule(localctx, 248, CqlParserRULE_insertValuesSpec) - p.SetState(1787) + var _la int + + p.SetState(1810) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -30056,11 +30183,11 @@ func (p *CqlParser) InsertValuesSpec() (localctx IInsertValuesSpecContext) { case CqlParserK_VALUES: p.EnterOuterAlt(localctx, 1) { - p.SetState(1779) + p.SetState(1800) p.KwValues() } { - p.SetState(1780) + p.SetState(1801) p.Match(CqlParserLR_BRACKET) if p.HasError() { // Recognition error - abort rule @@ -30068,11 +30195,11 @@ func (p *CqlParser) InsertValuesSpec() (localctx IInsertValuesSpecContext) { } } { - p.SetState(1781) + p.SetState(1802) p.ExpressionList() } { - p.SetState(1782) + p.SetState(1803) p.Match(CqlParserRR_BRACKET) if p.HasError() { // Recognition error - abort rule @@ -30083,13 +30210,27 @@ func (p *CqlParser) InsertValuesSpec() (localctx IInsertValuesSpecContext) { case CqlParserK_JSON: p.EnterOuterAlt(localctx, 2) { - p.SetState(1784) + p.SetState(1805) p.KwJson() } { - p.SetState(1785) + p.SetState(1806) p.Constant() } + p.SetState(1808) + p.GetErrorHandler().Sync(p) + if p.HasError() { + goto errorExit + } + _la = p.GetTokenStream().LA(1) + + if _la == CqlParserK_DEFAULT { + { + p.SetState(1807) + p.JsonDefaultUnset() + } + + } default: p.SetError(antlr.NewNoViableAltException(p, nil, nil, nil, nil, nil)) @@ -30109,6 +30250,141 @@ errorExit: goto errorExit // Trick to prevent compiler error if the label is not used } +// IJsonDefaultUnsetContext is an interface to support dynamic dispatch. +type IJsonDefaultUnsetContext interface { + antlr.ParserRuleContext + + // GetParser returns the parser. + GetParser() antlr.Parser + + // Getter signatures + KwDefault() IKwDefaultContext + KwUnset() IKwUnsetContext + + // IsJsonDefaultUnsetContext differentiates from other interfaces. + IsJsonDefaultUnsetContext() +} + +type JsonDefaultUnsetContext struct { + antlr.BaseParserRuleContext + parser antlr.Parser +} + +func NewEmptyJsonDefaultUnsetContext() *JsonDefaultUnsetContext { + var p = new(JsonDefaultUnsetContext) + antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1) + p.RuleIndex = CqlParserRULE_jsonDefaultUnset + return p +} + +func InitEmptyJsonDefaultUnsetContext(p *JsonDefaultUnsetContext) { + antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1) + p.RuleIndex = CqlParserRULE_jsonDefaultUnset +} + +func (*JsonDefaultUnsetContext) IsJsonDefaultUnsetContext() {} + +func NewJsonDefaultUnsetContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *JsonDefaultUnsetContext { + var p = new(JsonDefaultUnsetContext) + + antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState) + + p.parser = parser + p.RuleIndex = CqlParserRULE_jsonDefaultUnset + + return p +} + +func (s *JsonDefaultUnsetContext) GetParser() antlr.Parser { return s.parser } + +func (s *JsonDefaultUnsetContext) KwDefault() IKwDefaultContext { + var t antlr.RuleContext + for _, ctx := range s.GetChildren() { + if _, ok := ctx.(IKwDefaultContext); ok { + t = ctx.(antlr.RuleContext) + break + } + } + + if t == nil { + return nil + } + + return t.(IKwDefaultContext) +} + +func (s *JsonDefaultUnsetContext) KwUnset() IKwUnsetContext { + var t antlr.RuleContext + for _, ctx := range s.GetChildren() { + if _, ok := ctx.(IKwUnsetContext); ok { + t = ctx.(antlr.RuleContext) + break + } + } + + if t == nil { + return nil + } + + return t.(IKwUnsetContext) +} + +func (s *JsonDefaultUnsetContext) GetRuleContext() antlr.RuleContext { + return s +} + +func (s *JsonDefaultUnsetContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string { + return antlr.TreesStringTree(s, ruleNames, recog) +} + +func (s *JsonDefaultUnsetContext) EnterRule(listener antlr.ParseTreeListener) { + if listenerT, ok := listener.(CqlParserListener); ok { + listenerT.EnterJsonDefaultUnset(s) + } +} + +func (s *JsonDefaultUnsetContext) ExitRule(listener antlr.ParseTreeListener) { + if listenerT, ok := listener.(CqlParserListener); ok { + listenerT.ExitJsonDefaultUnset(s) + } +} + +func (s *JsonDefaultUnsetContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { + switch t := visitor.(type) { + case CqlParserVisitor: + return t.VisitJsonDefaultUnset(s) + + default: + return t.VisitChildren(s) + } +} + +func (p *CqlParser) JsonDefaultUnset() (localctx IJsonDefaultUnsetContext) { + localctx = NewJsonDefaultUnsetContext(p, p.GetParserRuleContext(), p.GetState()) + p.EnterRule(localctx, 250, CqlParserRULE_jsonDefaultUnset) + p.EnterOuterAlt(localctx, 1) + { + p.SetState(1812) + p.KwDefault() + } + { + p.SetState(1813) + p.KwUnset() + } + +errorExit: + if p.HasError() { + v := p.GetError() + localctx.SetException(v) + p.GetErrorHandler().ReportError(p, v) + p.GetErrorHandler().Recover(p, v) + p.SetError(nil) + } + p.ExitRule() + return localctx + goto errorExit // Trick to prevent compiler error if the label is not used +} + // IInsertColumnSpecContext is an interface to support dynamic dispatch. type IInsertColumnSpecContext interface { antlr.ParserRuleContext @@ -30213,10 +30489,10 @@ func (s *InsertColumnSpecContext) Accept(visitor antlr.ParseTreeVisitor) interfa func (p *CqlParser) InsertColumnSpec() (localctx IInsertColumnSpecContext) { localctx = NewInsertColumnSpecContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 250, CqlParserRULE_insertColumnSpec) + p.EnterRule(localctx, 252, CqlParserRULE_insertColumnSpec) p.EnterOuterAlt(localctx, 1) { - p.SetState(1789) + p.SetState(1815) p.Match(CqlParserLR_BRACKET) if p.HasError() { // Recognition error - abort rule @@ -30224,11 +30500,11 @@ func (p *CqlParser) InsertColumnSpec() (localctx IInsertColumnSpecContext) { } } { - p.SetState(1790) + p.SetState(1816) p.ColumnList() } { - p.SetState(1791) + p.SetState(1817) p.Match(CqlParserRR_BRACKET) if p.HasError() { // Recognition error - abort rule @@ -30412,15 +30688,15 @@ func (s *ColumnListContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) ColumnList() (localctx IColumnListContext) { localctx = NewColumnListContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 252, CqlParserRULE_columnList) + p.EnterRule(localctx, 254, CqlParserRULE_columnList) var _la int p.EnterOuterAlt(localctx, 1) { - p.SetState(1793) + p.SetState(1819) p.Column() } - p.SetState(1799) + p.SetState(1825) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -30429,15 +30705,15 @@ func (p *CqlParser) ColumnList() (localctx IColumnListContext) { for _la == CqlParserCOMMA { { - p.SetState(1794) + p.SetState(1820) p.SyntaxComma() } { - p.SetState(1795) + p.SetState(1821) p.Column() } - p.SetState(1801) + p.SetState(1827) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -30621,15 +30897,15 @@ func (s *ExpressionListContext) Accept(visitor antlr.ParseTreeVisitor) interface func (p *CqlParser) ExpressionList() (localctx IExpressionListContext) { localctx = NewExpressionListContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 254, CqlParserRULE_expressionList) + p.EnterRule(localctx, 256, CqlParserRULE_expressionList) var _la int p.EnterOuterAlt(localctx, 1) { - p.SetState(1802) + p.SetState(1828) p.Expression() } - p.SetState(1808) + p.SetState(1834) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -30638,15 +30914,15 @@ func (p *CqlParser) ExpressionList() (localctx IExpressionListContext) { for _la == CqlParserCOMMA { { - p.SetState(1803) + p.SetState(1829) p.SyntaxComma() } { - p.SetState(1804) + p.SetState(1830) p.Expression() } - p.SetState(1810) + p.SetState(1836) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -30846,53 +31122,53 @@ func (s *ExpressionContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) Expression() (localctx IExpressionContext) { localctx = NewExpressionContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 256, CqlParserRULE_expression) - p.SetState(1817) + p.EnterRule(localctx, 258, CqlParserRULE_expression) + p.SetState(1843) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit } - switch p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 145, p.GetParserRuleContext()) { + switch p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 150, p.GetParserRuleContext()) { case 1: p.EnterOuterAlt(localctx, 1) { - p.SetState(1811) + p.SetState(1837) p.Constant() } case 2: p.EnterOuterAlt(localctx, 2) { - p.SetState(1812) + p.SetState(1838) p.FunctionCall() } case 3: p.EnterOuterAlt(localctx, 3) { - p.SetState(1813) + p.SetState(1839) p.AssignmentMap() } case 4: p.EnterOuterAlt(localctx, 4) { - p.SetState(1814) + p.SetState(1840) p.AssignmentSet() } case 5: p.EnterOuterAlt(localctx, 5) { - p.SetState(1815) + p.SetState(1841) p.AssignmentList() } case 6: p.EnterOuterAlt(localctx, 6) { - p.SetState(1816) + p.SetState(1842) p.AssignmentTuple() } @@ -31143,15 +31419,15 @@ func (s *Select_Context) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) Select_() (localctx ISelect_Context) { localctx = NewSelect_Context(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 258, CqlParserRULE_select_) + p.EnterRule(localctx, 260, CqlParserRULE_select_) var _la int p.EnterOuterAlt(localctx, 1) { - p.SetState(1819) + p.SetState(1845) p.KwSelect() } - p.SetState(1821) + p.SetState(1847) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -31160,12 +31436,12 @@ func (p *CqlParser) Select_() (localctx ISelect_Context) { if _la == CqlParserK_DISTINCT { { - p.SetState(1820) + p.SetState(1846) p.DistinctSpec() } } - p.SetState(1824) + p.SetState(1850) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -31174,20 +31450,20 @@ func (p *CqlParser) Select_() (localctx ISelect_Context) { if _la == CqlParserK_JSON { { - p.SetState(1823) + p.SetState(1849) p.KwJson() } } { - p.SetState(1826) + p.SetState(1852) p.SelectElements() } { - p.SetState(1827) + p.SetState(1853) p.FromSpec() } - p.SetState(1829) + p.SetState(1855) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -31196,12 +31472,12 @@ func (p *CqlParser) Select_() (localctx ISelect_Context) { if _la == CqlParserK_WHERE { { - p.SetState(1828) + p.SetState(1854) p.WhereSpec() } } - p.SetState(1832) + p.SetState(1858) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -31210,12 +31486,12 @@ func (p *CqlParser) Select_() (localctx ISelect_Context) { if _la == CqlParserK_ORDER { { - p.SetState(1831) + p.SetState(1857) p.OrderSpec() } } - p.SetState(1835) + p.SetState(1861) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -31224,12 +31500,12 @@ func (p *CqlParser) Select_() (localctx ISelect_Context) { if _la == CqlParserK_LIMIT { { - p.SetState(1834) + p.SetState(1860) p.LimitSpec() } } - p.SetState(1838) + p.SetState(1864) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -31238,7 +31514,7 @@ func (p *CqlParser) Select_() (localctx ISelect_Context) { if _la == CqlParserK_ALLOW { { - p.SetState(1837) + p.SetState(1863) p.AllowFilteringSpec() } @@ -31368,14 +31644,14 @@ func (s *AllowFilteringSpecContext) Accept(visitor antlr.ParseTreeVisitor) inter func (p *CqlParser) AllowFilteringSpec() (localctx IAllowFilteringSpecContext) { localctx = NewAllowFilteringSpecContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 260, CqlParserRULE_allowFilteringSpec) + p.EnterRule(localctx, 262, CqlParserRULE_allowFilteringSpec) p.EnterOuterAlt(localctx, 1) { - p.SetState(1840) + p.SetState(1866) p.KwAllow() } { - p.SetState(1841) + p.SetState(1867) p.KwFiltering() } @@ -31503,14 +31779,14 @@ func (s *LimitSpecContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) LimitSpec() (localctx ILimitSpecContext) { localctx = NewLimitSpecContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 262, CqlParserRULE_limitSpec) + p.EnterRule(localctx, 264, CqlParserRULE_limitSpec) p.EnterOuterAlt(localctx, 1) { - p.SetState(1843) + p.SetState(1869) p.KwLimit() } { - p.SetState(1844) + p.SetState(1870) p.DecimalLiteral() } @@ -31638,14 +31914,14 @@ func (s *FromSpecContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) FromSpec() (localctx IFromSpecContext) { localctx = NewFromSpecContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 264, CqlParserRULE_fromSpec) + p.EnterRule(localctx, 266, CqlParserRULE_fromSpec) p.EnterOuterAlt(localctx, 1) { - p.SetState(1846) + p.SetState(1872) p.KwFrom() } { - p.SetState(1847) + p.SetState(1873) p.FromSpecElement() } @@ -31754,18 +32030,18 @@ func (s *FromSpecElementContext) Accept(visitor antlr.ParseTreeVisitor) interfac func (p *CqlParser) FromSpecElement() (localctx IFromSpecElementContext) { localctx = NewFromSpecElementContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 266, CqlParserRULE_fromSpecElement) - p.SetState(1853) + p.EnterRule(localctx, 268, CqlParserRULE_fromSpecElement) + p.SetState(1879) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit } - switch p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 152, p.GetParserRuleContext()) { + switch p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 157, p.GetParserRuleContext()) { case 1: p.EnterOuterAlt(localctx, 1) { - p.SetState(1849) + p.SetState(1875) p.Match(CqlParserOBJECT_NAME) if p.HasError() { // Recognition error - abort rule @@ -31776,7 +32052,7 @@ func (p *CqlParser) FromSpecElement() (localctx IFromSpecElementContext) { case 2: p.EnterOuterAlt(localctx, 2) { - p.SetState(1850) + p.SetState(1876) p.Match(CqlParserOBJECT_NAME) if p.HasError() { // Recognition error - abort rule @@ -31784,7 +32060,7 @@ func (p *CqlParser) FromSpecElement() (localctx IFromSpecElementContext) { } } { - p.SetState(1851) + p.SetState(1877) p.Match(CqlParserDOT) if p.HasError() { // Recognition error - abort rule @@ -31792,7 +32068,7 @@ func (p *CqlParser) FromSpecElement() (localctx IFromSpecElementContext) { } } { - p.SetState(1852) + p.SetState(1878) p.Match(CqlParserOBJECT_NAME) if p.HasError() { // Recognition error - abort rule @@ -31945,18 +32221,18 @@ func (s *OrderSpecContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) OrderSpec() (localctx IOrderSpecContext) { localctx = NewOrderSpecContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 268, CqlParserRULE_orderSpec) + p.EnterRule(localctx, 270, CqlParserRULE_orderSpec) p.EnterOuterAlt(localctx, 1) { - p.SetState(1855) + p.SetState(1881) p.KwOrder() } { - p.SetState(1856) + p.SetState(1882) p.KwBy() } { - p.SetState(1857) + p.SetState(1883) p.OrderSpecElement() } @@ -31984,6 +32260,11 @@ type IOrderSpecElementContext interface { OBJECT_NAME() antlr.TerminalNode KwAsc() IKwAscContext KwDesc() IKwDescContext + KwAnn() IKwAnnContext + KwOf() IKwOfContext + VectorLiteral() IVectorLiteralContext + KwLimit() IKwLimitContext + DECIMAL_LITERAL() antlr.TerminalNode // IsOrderSpecElementContext differentiates from other interfaces. IsOrderSpecElementContext() @@ -32057,6 +32338,74 @@ func (s *OrderSpecElementContext) KwDesc() IKwDescContext { return t.(IKwDescContext) } +func (s *OrderSpecElementContext) KwAnn() IKwAnnContext { + var t antlr.RuleContext + for _, ctx := range s.GetChildren() { + if _, ok := ctx.(IKwAnnContext); ok { + t = ctx.(antlr.RuleContext) + break + } + } + + if t == nil { + return nil + } + + return t.(IKwAnnContext) +} + +func (s *OrderSpecElementContext) KwOf() IKwOfContext { + var t antlr.RuleContext + for _, ctx := range s.GetChildren() { + if _, ok := ctx.(IKwOfContext); ok { + t = ctx.(antlr.RuleContext) + break + } + } + + if t == nil { + return nil + } + + return t.(IKwOfContext) +} + +func (s *OrderSpecElementContext) VectorLiteral() IVectorLiteralContext { + var t antlr.RuleContext + for _, ctx := range s.GetChildren() { + if _, ok := ctx.(IVectorLiteralContext); ok { + t = ctx.(antlr.RuleContext) + break + } + } + + if t == nil { + return nil + } + + return t.(IVectorLiteralContext) +} + +func (s *OrderSpecElementContext) KwLimit() IKwLimitContext { + var t antlr.RuleContext + for _, ctx := range s.GetChildren() { + if _, ok := ctx.(IKwLimitContext); ok { + t = ctx.(antlr.RuleContext) + break + } + } + + if t == nil { + return nil + } + + return t.(IKwLimitContext) +} + +func (s *OrderSpecElementContext) DECIMAL_LITERAL() antlr.TerminalNode { + return s.GetToken(CqlParserDECIMAL_LITERAL, 0) +} + func (s *OrderSpecElementContext) GetRuleContext() antlr.RuleContext { return s } @@ -32089,37 +32438,441 @@ func (s *OrderSpecElementContext) Accept(visitor antlr.ParseTreeVisitor) interfa func (p *CqlParser) OrderSpecElement() (localctx IOrderSpecElementContext) { localctx = NewOrderSpecElementContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 270, CqlParserRULE_orderSpecElement) + p.EnterRule(localctx, 272, CqlParserRULE_orderSpecElement) + p.SetState(1899) + p.GetErrorHandler().Sync(p) + if p.HasError() { + goto errorExit + } + + switch p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 160, p.GetParserRuleContext()) { + case 1: + p.EnterOuterAlt(localctx, 1) + { + p.SetState(1885) + p.Match(CqlParserOBJECT_NAME) + if p.HasError() { + // Recognition error - abort rule + goto errorExit + } + } + p.SetState(1888) + p.GetErrorHandler().Sync(p) + if p.HasError() { + goto errorExit + } + switch p.GetTokenStream().LA(1) { + case CqlParserK_ASC: + { + p.SetState(1886) + p.KwAsc() + } + + case CqlParserK_DESC: + { + p.SetState(1887) + p.KwDesc() + } + + case CqlParserEOF, CqlParserSEMI, CqlParserMINUSMINUS, CqlParserK_ALLOW, CqlParserK_LIMIT: + + default: + } + + case 2: + p.EnterOuterAlt(localctx, 2) + { + p.SetState(1890) + p.Match(CqlParserOBJECT_NAME) + if p.HasError() { + // Recognition error - abort rule + goto errorExit + } + } + { + p.SetState(1891) + p.KwAnn() + } + { + p.SetState(1892) + p.KwOf() + } + { + p.SetState(1893) + p.VectorLiteral() + } + p.SetState(1897) + p.GetErrorHandler().Sync(p) + + if p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 159, p.GetParserRuleContext()) == 1 { + { + p.SetState(1894) + p.KwLimit() + } + { + p.SetState(1895) + p.Match(CqlParserDECIMAL_LITERAL) + if p.HasError() { + // Recognition error - abort rule + goto errorExit + } + } + + } else if p.HasError() { // JIM + goto errorExit + } + + case antlr.ATNInvalidAltNumber: + goto errorExit + } + +errorExit: + if p.HasError() { + v := p.GetError() + localctx.SetException(v) + p.GetErrorHandler().ReportError(p, v) + p.GetErrorHandler().Recover(p, v) + p.SetError(nil) + } + p.ExitRule() + return localctx + goto errorExit // Trick to prevent compiler error if the label is not used +} + +// IVectorLiteralContext is an interface to support dynamic dispatch. +type IVectorLiteralContext interface { + antlr.ParserRuleContext + + // GetParser returns the parser. + GetParser() antlr.Parser + + // Getter signatures + LS_BRACKET() antlr.TerminalNode + ConstantList() IConstantListContext + RS_BRACKET() antlr.TerminalNode + + // IsVectorLiteralContext differentiates from other interfaces. + IsVectorLiteralContext() +} + +type VectorLiteralContext struct { + antlr.BaseParserRuleContext + parser antlr.Parser +} + +func NewEmptyVectorLiteralContext() *VectorLiteralContext { + var p = new(VectorLiteralContext) + antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1) + p.RuleIndex = CqlParserRULE_vectorLiteral + return p +} + +func InitEmptyVectorLiteralContext(p *VectorLiteralContext) { + antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1) + p.RuleIndex = CqlParserRULE_vectorLiteral +} + +func (*VectorLiteralContext) IsVectorLiteralContext() {} + +func NewVectorLiteralContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *VectorLiteralContext { + var p = new(VectorLiteralContext) + + antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState) + + p.parser = parser + p.RuleIndex = CqlParserRULE_vectorLiteral + + return p +} + +func (s *VectorLiteralContext) GetParser() antlr.Parser { return s.parser } + +func (s *VectorLiteralContext) LS_BRACKET() antlr.TerminalNode { + return s.GetToken(CqlParserLS_BRACKET, 0) +} + +func (s *VectorLiteralContext) ConstantList() IConstantListContext { + var t antlr.RuleContext + for _, ctx := range s.GetChildren() { + if _, ok := ctx.(IConstantListContext); ok { + t = ctx.(antlr.RuleContext) + break + } + } + + if t == nil { + return nil + } + + return t.(IConstantListContext) +} + +func (s *VectorLiteralContext) RS_BRACKET() antlr.TerminalNode { + return s.GetToken(CqlParserRS_BRACKET, 0) +} + +func (s *VectorLiteralContext) GetRuleContext() antlr.RuleContext { + return s +} + +func (s *VectorLiteralContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string { + return antlr.TreesStringTree(s, ruleNames, recog) +} + +func (s *VectorLiteralContext) EnterRule(listener antlr.ParseTreeListener) { + if listenerT, ok := listener.(CqlParserListener); ok { + listenerT.EnterVectorLiteral(s) + } +} + +func (s *VectorLiteralContext) ExitRule(listener antlr.ParseTreeListener) { + if listenerT, ok := listener.(CqlParserListener); ok { + listenerT.ExitVectorLiteral(s) + } +} + +func (s *VectorLiteralContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { + switch t := visitor.(type) { + case CqlParserVisitor: + return t.VisitVectorLiteral(s) + + default: + return t.VisitChildren(s) + } +} + +func (p *CqlParser) VectorLiteral() (localctx IVectorLiteralContext) { + localctx = NewVectorLiteralContext(p, p.GetParserRuleContext(), p.GetState()) + p.EnterRule(localctx, 274, CqlParserRULE_vectorLiteral) p.EnterOuterAlt(localctx, 1) { - p.SetState(1859) - p.Match(CqlParserOBJECT_NAME) + p.SetState(1901) + p.Match(CqlParserLS_BRACKET) if p.HasError() { // Recognition error - abort rule goto errorExit } } - p.SetState(1862) + { + p.SetState(1902) + p.ConstantList() + } + { + p.SetState(1903) + p.Match(CqlParserRS_BRACKET) + if p.HasError() { + // Recognition error - abort rule + goto errorExit + } + } + +errorExit: + if p.HasError() { + v := p.GetError() + localctx.SetException(v) + p.GetErrorHandler().ReportError(p, v) + p.GetErrorHandler().Recover(p, v) + p.SetError(nil) + } + p.ExitRule() + return localctx + goto errorExit // Trick to prevent compiler error if the label is not used +} + +// IConstantListContext is an interface to support dynamic dispatch. +type IConstantListContext interface { + antlr.ParserRuleContext + + // GetParser returns the parser. + GetParser() antlr.Parser + + // Getter signatures + AllConstant() []IConstantContext + Constant(i int) IConstantContext + AllSyntaxComma() []ISyntaxCommaContext + SyntaxComma(i int) ISyntaxCommaContext + + // IsConstantListContext differentiates from other interfaces. + IsConstantListContext() +} + +type ConstantListContext struct { + antlr.BaseParserRuleContext + parser antlr.Parser +} + +func NewEmptyConstantListContext() *ConstantListContext { + var p = new(ConstantListContext) + antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1) + p.RuleIndex = CqlParserRULE_constantList + return p +} + +func InitEmptyConstantListContext(p *ConstantListContext) { + antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1) + p.RuleIndex = CqlParserRULE_constantList +} + +func (*ConstantListContext) IsConstantListContext() {} + +func NewConstantListContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *ConstantListContext { + var p = new(ConstantListContext) + + antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState) + + p.parser = parser + p.RuleIndex = CqlParserRULE_constantList + + return p +} + +func (s *ConstantListContext) GetParser() antlr.Parser { return s.parser } + +func (s *ConstantListContext) AllConstant() []IConstantContext { + children := s.GetChildren() + len := 0 + for _, ctx := range children { + if _, ok := ctx.(IConstantContext); ok { + len++ + } + } + + tst := make([]IConstantContext, len) + i := 0 + for _, ctx := range children { + if t, ok := ctx.(IConstantContext); ok { + tst[i] = t.(IConstantContext) + i++ + } + } + + return tst +} + +func (s *ConstantListContext) Constant(i int) IConstantContext { + var t antlr.RuleContext + j := 0 + for _, ctx := range s.GetChildren() { + if _, ok := ctx.(IConstantContext); ok { + if j == i { + t = ctx.(antlr.RuleContext) + break + } + j++ + } + } + + if t == nil { + return nil + } + + return t.(IConstantContext) +} + +func (s *ConstantListContext) AllSyntaxComma() []ISyntaxCommaContext { + children := s.GetChildren() + len := 0 + for _, ctx := range children { + if _, ok := ctx.(ISyntaxCommaContext); ok { + len++ + } + } + + tst := make([]ISyntaxCommaContext, len) + i := 0 + for _, ctx := range children { + if t, ok := ctx.(ISyntaxCommaContext); ok { + tst[i] = t.(ISyntaxCommaContext) + i++ + } + } + + return tst +} + +func (s *ConstantListContext) SyntaxComma(i int) ISyntaxCommaContext { + var t antlr.RuleContext + j := 0 + for _, ctx := range s.GetChildren() { + if _, ok := ctx.(ISyntaxCommaContext); ok { + if j == i { + t = ctx.(antlr.RuleContext) + break + } + j++ + } + } + + if t == nil { + return nil + } + + return t.(ISyntaxCommaContext) +} + +func (s *ConstantListContext) GetRuleContext() antlr.RuleContext { + return s +} + +func (s *ConstantListContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string { + return antlr.TreesStringTree(s, ruleNames, recog) +} + +func (s *ConstantListContext) EnterRule(listener antlr.ParseTreeListener) { + if listenerT, ok := listener.(CqlParserListener); ok { + listenerT.EnterConstantList(s) + } +} + +func (s *ConstantListContext) ExitRule(listener antlr.ParseTreeListener) { + if listenerT, ok := listener.(CqlParserListener); ok { + listenerT.ExitConstantList(s) + } +} + +func (s *ConstantListContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { + switch t := visitor.(type) { + case CqlParserVisitor: + return t.VisitConstantList(s) + + default: + return t.VisitChildren(s) + } +} + +func (p *CqlParser) ConstantList() (localctx IConstantListContext) { + localctx = NewConstantListContext(p, p.GetParserRuleContext(), p.GetState()) + p.EnterRule(localctx, 276, CqlParserRULE_constantList) + var _la int + + p.EnterOuterAlt(localctx, 1) + { + p.SetState(1905) + p.Constant() + } + p.SetState(1911) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit } - switch p.GetTokenStream().LA(1) { - case CqlParserK_ASC: + _la = p.GetTokenStream().LA(1) + + for _la == CqlParserCOMMA { { - p.SetState(1860) - p.KwAsc() + p.SetState(1906) + p.SyntaxComma() } - - case CqlParserK_DESC: { - p.SetState(1861) - p.KwDesc() + p.SetState(1907) + p.Constant() } - case CqlParserEOF, CqlParserSEMI, CqlParserMINUSMINUS, CqlParserK_ALLOW, CqlParserK_LIMIT: - - default: + p.SetState(1913) + p.GetErrorHandler().Sync(p) + if p.HasError() { + goto errorExit + } + _la = p.GetTokenStream().LA(1) } errorExit: @@ -32246,14 +32999,14 @@ func (s *WhereSpecContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) WhereSpec() (localctx IWhereSpecContext) { localctx = NewWhereSpecContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 272, CqlParserRULE_whereSpec) + p.EnterRule(localctx, 278, CqlParserRULE_whereSpec) p.EnterOuterAlt(localctx, 1) { - p.SetState(1864) + p.SetState(1914) p.KwWhere() } { - p.SetState(1865) + p.SetState(1915) p.RelationElements() } @@ -32364,10 +33117,10 @@ func (s *DistinctSpecContext) Accept(visitor antlr.ParseTreeVisitor) interface{} func (p *CqlParser) DistinctSpec() (localctx IDistinctSpecContext) { localctx = NewDistinctSpecContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 274, CqlParserRULE_distinctSpec) + p.EnterRule(localctx, 280, CqlParserRULE_distinctSpec) p.EnterOuterAlt(localctx, 1) { - p.SetState(1867) + p.SetState(1917) p.KwDistinct() } @@ -32563,11 +33316,11 @@ func (s *SelectElementsContext) Accept(visitor antlr.ParseTreeVisitor) interface func (p *CqlParser) SelectElements() (localctx ISelectElementsContext) { localctx = NewSelectElementsContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 276, CqlParserRULE_selectElements) + p.EnterRule(localctx, 282, CqlParserRULE_selectElements) var _la int p.EnterOuterAlt(localctx, 1) - p.SetState(1871) + p.SetState(1921) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -32576,7 +33329,7 @@ func (p *CqlParser) SelectElements() (localctx ISelectElementsContext) { switch p.GetTokenStream().LA(1) { case CqlParserSTAR: { - p.SetState(1869) + p.SetState(1919) var _m = p.Match(CqlParserSTAR) @@ -32587,9 +33340,9 @@ func (p *CqlParser) SelectElements() (localctx ISelectElementsContext) { } } - case CqlParserK_UUID, CqlParserOBJECT_NAME: + case CqlParserK_UUID, CqlParserK_NOW, CqlParserK_FROMJSON, CqlParserK_TOJSON, CqlParserK_MINTIMEUUID, CqlParserK_MAXTIMEUUID, CqlParserK_DATETIMENOW, CqlParserK_CURRENTTIMESTAMP, CqlParserK_CURRENTDATE, CqlParserK_CURRENTTIME, CqlParserK_CURRENTTIMEUUID, CqlParserOBJECT_NAME: { - p.SetState(1870) + p.SetState(1920) p.SelectElement() } @@ -32597,7 +33350,7 @@ func (p *CqlParser) SelectElements() (localctx ISelectElementsContext) { p.SetError(antlr.NewNoViableAltException(p, nil, nil, nil, nil, nil)) goto errorExit } - p.SetState(1878) + p.SetState(1928) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -32606,15 +33359,15 @@ func (p *CqlParser) SelectElements() (localctx ISelectElementsContext) { for _la == CqlParserCOMMA { { - p.SetState(1873) + p.SetState(1923) p.SyntaxComma() } { - p.SetState(1874) + p.SetState(1924) p.SelectElement() } - p.SetState(1880) + p.SetState(1930) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -32766,20 +33519,20 @@ func (s *SelectElementContext) Accept(visitor antlr.ParseTreeVisitor) interface{ func (p *CqlParser) SelectElement() (localctx ISelectElementContext) { localctx = NewSelectElementContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 278, CqlParserRULE_selectElement) + p.EnterRule(localctx, 284, CqlParserRULE_selectElement) var _la int - p.SetState(1896) + p.SetState(1946) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit } - switch p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 158, p.GetParserRuleContext()) { + switch p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 166, p.GetParserRuleContext()) { case 1: p.EnterOuterAlt(localctx, 1) { - p.SetState(1881) + p.SetState(1931) p.Match(CqlParserOBJECT_NAME) if p.HasError() { // Recognition error - abort rule @@ -32787,7 +33540,7 @@ func (p *CqlParser) SelectElement() (localctx ISelectElementContext) { } } { - p.SetState(1882) + p.SetState(1932) p.Match(CqlParserDOT) if p.HasError() { // Recognition error - abort rule @@ -32795,7 +33548,7 @@ func (p *CqlParser) SelectElement() (localctx ISelectElementContext) { } } { - p.SetState(1883) + p.SetState(1933) p.Match(CqlParserSTAR) if p.HasError() { // Recognition error - abort rule @@ -32806,14 +33559,14 @@ func (p *CqlParser) SelectElement() (localctx ISelectElementContext) { case 2: p.EnterOuterAlt(localctx, 2) { - p.SetState(1884) + p.SetState(1934) p.Match(CqlParserOBJECT_NAME) if p.HasError() { // Recognition error - abort rule goto errorExit } } - p.SetState(1888) + p.SetState(1938) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -32822,11 +33575,11 @@ func (p *CqlParser) SelectElement() (localctx ISelectElementContext) { if _la == CqlParserK_AS { { - p.SetState(1885) + p.SetState(1935) p.KwAs() } { - p.SetState(1886) + p.SetState(1936) p.Match(CqlParserOBJECT_NAME) if p.HasError() { // Recognition error - abort rule @@ -32839,10 +33592,10 @@ func (p *CqlParser) SelectElement() (localctx ISelectElementContext) { case 3: p.EnterOuterAlt(localctx, 3) { - p.SetState(1890) + p.SetState(1940) p.FunctionCall() } - p.SetState(1894) + p.SetState(1944) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -32851,11 +33604,11 @@ func (p *CqlParser) SelectElement() (localctx ISelectElementContext) { if _la == CqlParserK_AS { { - p.SetState(1891) + p.SetState(1941) p.KwAs() } { - p.SetState(1892) + p.SetState(1942) p.Match(CqlParserOBJECT_NAME) if p.HasError() { // Recognition error - abort rule @@ -33045,16 +33798,16 @@ func (s *RelationElementsContext) Accept(visitor antlr.ParseTreeVisitor) interfa func (p *CqlParser) RelationElements() (localctx IRelationElementsContext) { localctx = NewRelationElementsContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 280, CqlParserRULE_relationElements) + p.EnterRule(localctx, 286, CqlParserRULE_relationElements) var _la int p.EnterOuterAlt(localctx, 1) { - p.SetState(1898) + p.SetState(1948) p.RelationElement() } - p.SetState(1904) + p.SetState(1954) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -33063,15 +33816,15 @@ func (p *CqlParser) RelationElements() (localctx IRelationElementsContext) { for _la == CqlParserK_AND { { - p.SetState(1899) + p.SetState(1949) p.KwAnd() } { - p.SetState(1900) + p.SetState(1950) p.RelationElement() } - p.SetState(1906) + p.SetState(1956) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -33443,20 +34196,20 @@ func (s *RelationElementContext) Accept(visitor antlr.ParseTreeVisitor) interfac func (p *CqlParser) RelationElement() (localctx IRelationElementContext) { localctx = NewRelationElementContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 282, CqlParserRULE_relationElement) + p.EnterRule(localctx, 288, CqlParserRULE_relationElement) var _la int - p.SetState(1978) + p.SetState(2028) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit } - switch p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 165, p.GetParserRuleContext()) { + switch p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 173, p.GetParserRuleContext()) { case 1: p.EnterOuterAlt(localctx, 1) { - p.SetState(1907) + p.SetState(1957) p.Match(CqlParserOBJECT_NAME) if p.HasError() { // Recognition error - abort rule @@ -33464,7 +34217,7 @@ func (p *CqlParser) RelationElement() (localctx IRelationElementContext) { } } { - p.SetState(1908) + p.SetState(1958) _la = p.GetTokenStream().LA(1) if !((int64(_la) & ^0x3f) == 0 && ((int64(1)<<_la)&16252928) != 0) { @@ -33475,14 +34228,14 @@ func (p *CqlParser) RelationElement() (localctx IRelationElementContext) { } } { - p.SetState(1909) + p.SetState(1959) p.Constant() } case 2: p.EnterOuterAlt(localctx, 2) { - p.SetState(1910) + p.SetState(1960) p.Match(CqlParserOBJECT_NAME) if p.HasError() { // Recognition error - abort rule @@ -33490,7 +34243,7 @@ func (p *CqlParser) RelationElement() (localctx IRelationElementContext) { } } { - p.SetState(1911) + p.SetState(1961) p.Match(CqlParserDOT) if p.HasError() { // Recognition error - abort rule @@ -33498,7 +34251,7 @@ func (p *CqlParser) RelationElement() (localctx IRelationElementContext) { } } { - p.SetState(1912) + p.SetState(1962) p.Match(CqlParserOBJECT_NAME) if p.HasError() { // Recognition error - abort rule @@ -33506,7 +34259,7 @@ func (p *CqlParser) RelationElement() (localctx IRelationElementContext) { } } { - p.SetState(1913) + p.SetState(1963) _la = p.GetTokenStream().LA(1) if !((int64(_la) & ^0x3f) == 0 && ((int64(1)<<_la)&16252928) != 0) { @@ -33517,18 +34270,18 @@ func (p *CqlParser) RelationElement() (localctx IRelationElementContext) { } } { - p.SetState(1914) + p.SetState(1964) p.Constant() } case 3: p.EnterOuterAlt(localctx, 3) { - p.SetState(1915) + p.SetState(1965) p.FunctionCall() } { - p.SetState(1916) + p.SetState(1966) _la = p.GetTokenStream().LA(1) if !((int64(_la) & ^0x3f) == 0 && ((int64(1)<<_la)&16252928) != 0) { @@ -33539,18 +34292,18 @@ func (p *CqlParser) RelationElement() (localctx IRelationElementContext) { } } { - p.SetState(1917) + p.SetState(1967) p.Constant() } case 4: p.EnterOuterAlt(localctx, 4) { - p.SetState(1919) + p.SetState(1969) p.FunctionCall() } { - p.SetState(1920) + p.SetState(1970) _la = p.GetTokenStream().LA(1) if !((int64(_la) & ^0x3f) == 0 && ((int64(1)<<_la)&16252928) != 0) { @@ -33561,14 +34314,14 @@ func (p *CqlParser) RelationElement() (localctx IRelationElementContext) { } } { - p.SetState(1921) + p.SetState(1971) p.FunctionCall() } case 5: p.EnterOuterAlt(localctx, 5) { - p.SetState(1923) + p.SetState(1973) p.Match(CqlParserOBJECT_NAME) if p.HasError() { // Recognition error - abort rule @@ -33576,33 +34329,33 @@ func (p *CqlParser) RelationElement() (localctx IRelationElementContext) { } } { - p.SetState(1924) + p.SetState(1974) p.KwIn() } { - p.SetState(1925) + p.SetState(1975) p.Match(CqlParserLR_BRACKET) if p.HasError() { // Recognition error - abort rule goto errorExit } } - p.SetState(1927) + p.SetState(1977) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit } _la = p.GetTokenStream().LA(1) - if _la == CqlParserK_FALSE || _la == CqlParserK_NULL || ((int64((_la-126)) & ^0x3f) == 0 && ((int64(1)<<(_la-126))&61297773249537) != 0) { + if _la == CqlParserK_FALSE || _la == CqlParserK_NULL || ((int64((_la-126)) & ^0x3f) == 0 && ((int64(1)<<(_la-126))&8070415347875841025) != 0) { { - p.SetState(1926) + p.SetState(1976) p.FunctionArgs() } } { - p.SetState(1929) + p.SetState(1979) p.Match(CqlParserRR_BRACKET) if p.HasError() { // Recognition error - abort rule @@ -33613,7 +34366,7 @@ func (p *CqlParser) RelationElement() (localctx IRelationElementContext) { case 6: p.EnterOuterAlt(localctx, 6) { - p.SetState(1931) + p.SetState(1981) p.Match(CqlParserLR_BRACKET) if p.HasError() { // Recognition error - abort rule @@ -33621,14 +34374,14 @@ func (p *CqlParser) RelationElement() (localctx IRelationElementContext) { } } { - p.SetState(1932) + p.SetState(1982) p.Match(CqlParserOBJECT_NAME) if p.HasError() { // Recognition error - abort rule goto errorExit } } - p.SetState(1938) + p.SetState(1988) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -33637,11 +34390,11 @@ func (p *CqlParser) RelationElement() (localctx IRelationElementContext) { for _la == CqlParserCOMMA { { - p.SetState(1933) + p.SetState(1983) p.SyntaxComma() } { - p.SetState(1934) + p.SetState(1984) p.Match(CqlParserOBJECT_NAME) if p.HasError() { // Recognition error - abort rule @@ -33649,7 +34402,7 @@ func (p *CqlParser) RelationElement() (localctx IRelationElementContext) { } } - p.SetState(1940) + p.SetState(1990) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -33657,7 +34410,7 @@ func (p *CqlParser) RelationElement() (localctx IRelationElementContext) { _la = p.GetTokenStream().LA(1) } { - p.SetState(1941) + p.SetState(1991) p.Match(CqlParserRR_BRACKET) if p.HasError() { // Recognition error - abort rule @@ -33665,11 +34418,11 @@ func (p *CqlParser) RelationElement() (localctx IRelationElementContext) { } } { - p.SetState(1942) + p.SetState(1992) p.KwIn() } { - p.SetState(1943) + p.SetState(1993) p.Match(CqlParserLR_BRACKET) if p.HasError() { // Recognition error - abort rule @@ -33677,10 +34430,10 @@ func (p *CqlParser) RelationElement() (localctx IRelationElementContext) { } } { - p.SetState(1944) + p.SetState(1994) p.AssignmentTuple() } - p.SetState(1950) + p.SetState(2000) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -33689,15 +34442,15 @@ func (p *CqlParser) RelationElement() (localctx IRelationElementContext) { for _la == CqlParserCOMMA { { - p.SetState(1945) + p.SetState(1995) p.SyntaxComma() } { - p.SetState(1946) + p.SetState(1996) p.AssignmentTuple() } - p.SetState(1952) + p.SetState(2002) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -33705,7 +34458,7 @@ func (p *CqlParser) RelationElement() (localctx IRelationElementContext) { _la = p.GetTokenStream().LA(1) } { - p.SetState(1953) + p.SetState(2003) p.Match(CqlParserRR_BRACKET) if p.HasError() { // Recognition error - abort rule @@ -33716,7 +34469,7 @@ func (p *CqlParser) RelationElement() (localctx IRelationElementContext) { case 7: p.EnterOuterAlt(localctx, 7) { - p.SetState(1955) + p.SetState(2005) p.Match(CqlParserLR_BRACKET) if p.HasError() { // Recognition error - abort rule @@ -33724,14 +34477,14 @@ func (p *CqlParser) RelationElement() (localctx IRelationElementContext) { } } { - p.SetState(1956) + p.SetState(2006) p.Match(CqlParserOBJECT_NAME) if p.HasError() { // Recognition error - abort rule goto errorExit } } - p.SetState(1962) + p.SetState(2012) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -33740,11 +34493,11 @@ func (p *CqlParser) RelationElement() (localctx IRelationElementContext) { for _la == CqlParserCOMMA { { - p.SetState(1957) + p.SetState(2007) p.SyntaxComma() } { - p.SetState(1958) + p.SetState(2008) p.Match(CqlParserOBJECT_NAME) if p.HasError() { // Recognition error - abort rule @@ -33752,7 +34505,7 @@ func (p *CqlParser) RelationElement() (localctx IRelationElementContext) { } } - p.SetState(1964) + p.SetState(2014) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -33760,7 +34513,7 @@ func (p *CqlParser) RelationElement() (localctx IRelationElementContext) { _la = p.GetTokenStream().LA(1) } { - p.SetState(1965) + p.SetState(2015) p.Match(CqlParserRR_BRACKET) if p.HasError() { // Recognition error - abort rule @@ -33768,7 +34521,7 @@ func (p *CqlParser) RelationElement() (localctx IRelationElementContext) { } } { - p.SetState(1966) + p.SetState(2016) _la = p.GetTokenStream().LA(1) if !((int64(_la) & ^0x3f) == 0 && ((int64(1)<<_la)&16252928) != 0) { @@ -33780,10 +34533,10 @@ func (p *CqlParser) RelationElement() (localctx IRelationElementContext) { } { - p.SetState(1967) + p.SetState(2017) p.AssignmentTuple() } - p.SetState(1973) + p.SetState(2023) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -33792,15 +34545,15 @@ func (p *CqlParser) RelationElement() (localctx IRelationElementContext) { for _la == CqlParserCOMMA { { - p.SetState(1968) + p.SetState(2018) p.SyntaxComma() } { - p.SetState(1969) + p.SetState(2019) p.AssignmentTuple() } - p.SetState(1975) + p.SetState(2025) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -33811,14 +34564,14 @@ func (p *CqlParser) RelationElement() (localctx IRelationElementContext) { case 8: p.EnterOuterAlt(localctx, 8) { - p.SetState(1976) + p.SetState(2026) p.RelalationContainsKey() } case 9: p.EnterOuterAlt(localctx, 9) { - p.SetState(1977) + p.SetState(2027) p.RelalationContains() } @@ -33955,10 +34708,10 @@ func (s *RelalationContainsContext) Accept(visitor antlr.ParseTreeVisitor) inter func (p *CqlParser) RelalationContains() (localctx IRelalationContainsContext) { localctx = NewRelalationContainsContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 284, CqlParserRULE_relalationContains) + p.EnterRule(localctx, 290, CqlParserRULE_relalationContains) p.EnterOuterAlt(localctx, 1) { - p.SetState(1980) + p.SetState(2030) p.Match(CqlParserOBJECT_NAME) if p.HasError() { // Recognition error - abort rule @@ -33966,11 +34719,11 @@ func (p *CqlParser) RelalationContains() (localctx IRelalationContainsContext) { } } { - p.SetState(1981) + p.SetState(2031) p.KwContains() } { - p.SetState(1982) + p.SetState(2032) p.Constant() } @@ -34120,10 +34873,10 @@ func (s *RelalationContainsKeyContext) Accept(visitor antlr.ParseTreeVisitor) in func (p *CqlParser) RelalationContainsKey() (localctx IRelalationContainsKeyContext) { localctx = NewRelalationContainsKeyContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 286, CqlParserRULE_relalationContainsKey) + p.EnterRule(localctx, 292, CqlParserRULE_relalationContainsKey) p.EnterOuterAlt(localctx, 1) { - p.SetState(1984) + p.SetState(2034) p.Match(CqlParserOBJECT_NAME) if p.HasError() { // Recognition error - abort rule @@ -34132,16 +34885,16 @@ func (p *CqlParser) RelalationContainsKey() (localctx IRelalationContainsKeyCont } { - p.SetState(1985) + p.SetState(2035) p.KwContains() } { - p.SetState(1986) + p.SetState(2036) p.KwKey() } { - p.SetState(1988) + p.SetState(2038) p.Constant() } @@ -34172,6 +34925,16 @@ type IFunctionCallContext interface { RR_BRACKET() antlr.TerminalNode FunctionArgs() IFunctionArgsContext K_UUID() antlr.TerminalNode + K_NOW() antlr.TerminalNode + K_FROMJSON() antlr.TerminalNode + K_TOJSON() antlr.TerminalNode + K_MINTIMEUUID() antlr.TerminalNode + K_MAXTIMEUUID() antlr.TerminalNode + K_DATETIMENOW() antlr.TerminalNode + K_CURRENTTIMESTAMP() antlr.TerminalNode + K_CURRENTDATE() antlr.TerminalNode + K_CURRENTTIME() antlr.TerminalNode + K_CURRENTTIMEUUID() antlr.TerminalNode // IsFunctionCallContext differentiates from other interfaces. IsFunctionCallContext() @@ -34245,6 +35008,46 @@ func (s *FunctionCallContext) K_UUID() antlr.TerminalNode { return s.GetToken(CqlParserK_UUID, 0) } +func (s *FunctionCallContext) K_NOW() antlr.TerminalNode { + return s.GetToken(CqlParserK_NOW, 0) +} + +func (s *FunctionCallContext) K_FROMJSON() antlr.TerminalNode { + return s.GetToken(CqlParserK_FROMJSON, 0) +} + +func (s *FunctionCallContext) K_TOJSON() antlr.TerminalNode { + return s.GetToken(CqlParserK_TOJSON, 0) +} + +func (s *FunctionCallContext) K_MINTIMEUUID() antlr.TerminalNode { + return s.GetToken(CqlParserK_MINTIMEUUID, 0) +} + +func (s *FunctionCallContext) K_MAXTIMEUUID() antlr.TerminalNode { + return s.GetToken(CqlParserK_MAXTIMEUUID, 0) +} + +func (s *FunctionCallContext) K_DATETIMENOW() antlr.TerminalNode { + return s.GetToken(CqlParserK_DATETIMENOW, 0) +} + +func (s *FunctionCallContext) K_CURRENTTIMESTAMP() antlr.TerminalNode { + return s.GetToken(CqlParserK_CURRENTTIMESTAMP, 0) +} + +func (s *FunctionCallContext) K_CURRENTDATE() antlr.TerminalNode { + return s.GetToken(CqlParserK_CURRENTDATE, 0) +} + +func (s *FunctionCallContext) K_CURRENTTIME() antlr.TerminalNode { + return s.GetToken(CqlParserK_CURRENTTIME, 0) +} + +func (s *FunctionCallContext) K_CURRENTTIMEUUID() antlr.TerminalNode { + return s.GetToken(CqlParserK_CURRENTTIMEUUID, 0) +} + func (s *FunctionCallContext) GetRuleContext() antlr.RuleContext { return s } @@ -34277,20 +35080,20 @@ func (s *FunctionCallContext) Accept(visitor antlr.ParseTreeVisitor) interface{} func (p *CqlParser) FunctionCall() (localctx IFunctionCallContext) { localctx = NewFunctionCallContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 288, CqlParserRULE_functionCall) + p.EnterRule(localctx, 294, CqlParserRULE_functionCall) var _la int - p.SetState(2003) + p.SetState(2091) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit } - switch p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 167, p.GetParserRuleContext()) { + switch p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 175, p.GetParserRuleContext()) { case 1: p.EnterOuterAlt(localctx, 1) { - p.SetState(1990) + p.SetState(2040) p.Match(CqlParserOBJECT_NAME) if p.HasError() { // Recognition error - abort rule @@ -34298,7 +35101,7 @@ func (p *CqlParser) FunctionCall() (localctx IFunctionCallContext) { } } { - p.SetState(1991) + p.SetState(2041) p.Match(CqlParserLR_BRACKET) if p.HasError() { // Recognition error - abort rule @@ -34306,7 +35109,7 @@ func (p *CqlParser) FunctionCall() (localctx IFunctionCallContext) { } } { - p.SetState(1992) + p.SetState(2042) p.Match(CqlParserSTAR) if p.HasError() { // Recognition error - abort rule @@ -34314,7 +35117,7 @@ func (p *CqlParser) FunctionCall() (localctx IFunctionCallContext) { } } { - p.SetState(1993) + p.SetState(2043) p.Match(CqlParserRR_BRACKET) if p.HasError() { // Recognition error - abort rule @@ -34325,7 +35128,7 @@ func (p *CqlParser) FunctionCall() (localctx IFunctionCallContext) { case 2: p.EnterOuterAlt(localctx, 2) { - p.SetState(1994) + p.SetState(2044) p.Match(CqlParserOBJECT_NAME) if p.HasError() { // Recognition error - abort rule @@ -34333,29 +35136,29 @@ func (p *CqlParser) FunctionCall() (localctx IFunctionCallContext) { } } { - p.SetState(1995) + p.SetState(2045) p.Match(CqlParserLR_BRACKET) if p.HasError() { // Recognition error - abort rule goto errorExit } } - p.SetState(1997) + p.SetState(2047) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit } _la = p.GetTokenStream().LA(1) - if _la == CqlParserK_FALSE || _la == CqlParserK_NULL || ((int64((_la-126)) & ^0x3f) == 0 && ((int64(1)<<(_la-126))&61297773249537) != 0) { + if _la == CqlParserK_FALSE || _la == CqlParserK_NULL || ((int64((_la-126)) & ^0x3f) == 0 && ((int64(1)<<(_la-126))&8070415347875841025) != 0) { { - p.SetState(1996) + p.SetState(2046) p.FunctionArgs() } } { - p.SetState(1999) + p.SetState(2049) p.Match(CqlParserRR_BRACKET) if p.HasError() { // Recognition error - abort rule @@ -34366,7 +35169,7 @@ func (p *CqlParser) FunctionCall() (localctx IFunctionCallContext) { case 3: p.EnterOuterAlt(localctx, 3) { - p.SetState(2000) + p.SetState(2050) p.Match(CqlParserK_UUID) if p.HasError() { // Recognition error - abort rule @@ -34374,7 +35177,7 @@ func (p *CqlParser) FunctionCall() (localctx IFunctionCallContext) { } } { - p.SetState(2001) + p.SetState(2051) p.Match(CqlParserLR_BRACKET) if p.HasError() { // Recognition error - abort rule @@ -34382,7 +35185,293 @@ func (p *CqlParser) FunctionCall() (localctx IFunctionCallContext) { } } { - p.SetState(2002) + p.SetState(2052) + p.Match(CqlParserRR_BRACKET) + if p.HasError() { + // Recognition error - abort rule + goto errorExit + } + } + + case 4: + p.EnterOuterAlt(localctx, 4) + { + p.SetState(2053) + p.Match(CqlParserK_NOW) + if p.HasError() { + // Recognition error - abort rule + goto errorExit + } + } + { + p.SetState(2054) + p.Match(CqlParserLR_BRACKET) + if p.HasError() { + // Recognition error - abort rule + goto errorExit + } + } + { + p.SetState(2055) + p.Match(CqlParserRR_BRACKET) + if p.HasError() { + // Recognition error - abort rule + goto errorExit + } + } + + case 5: + p.EnterOuterAlt(localctx, 5) + { + p.SetState(2056) + p.Match(CqlParserK_FROMJSON) + if p.HasError() { + // Recognition error - abort rule + goto errorExit + } + } + { + p.SetState(2057) + p.Match(CqlParserLR_BRACKET) + if p.HasError() { + // Recognition error - abort rule + goto errorExit + } + } + { + p.SetState(2058) + p.FunctionArgs() + } + { + p.SetState(2059) + p.Match(CqlParserRR_BRACKET) + if p.HasError() { + // Recognition error - abort rule + goto errorExit + } + } + + case 6: + p.EnterOuterAlt(localctx, 6) + { + p.SetState(2061) + p.Match(CqlParserK_TOJSON) + if p.HasError() { + // Recognition error - abort rule + goto errorExit + } + } + { + p.SetState(2062) + p.Match(CqlParserLR_BRACKET) + if p.HasError() { + // Recognition error - abort rule + goto errorExit + } + } + { + p.SetState(2063) + p.FunctionArgs() + } + { + p.SetState(2064) + p.Match(CqlParserRR_BRACKET) + if p.HasError() { + // Recognition error - abort rule + goto errorExit + } + } + + case 7: + p.EnterOuterAlt(localctx, 7) + { + p.SetState(2066) + p.Match(CqlParserK_MINTIMEUUID) + if p.HasError() { + // Recognition error - abort rule + goto errorExit + } + } + { + p.SetState(2067) + p.Match(CqlParserLR_BRACKET) + if p.HasError() { + // Recognition error - abort rule + goto errorExit + } + } + { + p.SetState(2068) + p.FunctionArgs() + } + { + p.SetState(2069) + p.Match(CqlParserRR_BRACKET) + if p.HasError() { + // Recognition error - abort rule + goto errorExit + } + } + + case 8: + p.EnterOuterAlt(localctx, 8) + { + p.SetState(2071) + p.Match(CqlParserK_MAXTIMEUUID) + if p.HasError() { + // Recognition error - abort rule + goto errorExit + } + } + { + p.SetState(2072) + p.Match(CqlParserLR_BRACKET) + if p.HasError() { + // Recognition error - abort rule + goto errorExit + } + } + { + p.SetState(2073) + p.FunctionArgs() + } + { + p.SetState(2074) + p.Match(CqlParserRR_BRACKET) + if p.HasError() { + // Recognition error - abort rule + goto errorExit + } + } + + case 9: + p.EnterOuterAlt(localctx, 9) + { + p.SetState(2076) + p.Match(CqlParserK_DATETIMENOW) + if p.HasError() { + // Recognition error - abort rule + goto errorExit + } + } + { + p.SetState(2077) + p.Match(CqlParserLR_BRACKET) + if p.HasError() { + // Recognition error - abort rule + goto errorExit + } + } + { + p.SetState(2078) + p.Match(CqlParserRR_BRACKET) + if p.HasError() { + // Recognition error - abort rule + goto errorExit + } + } + + case 10: + p.EnterOuterAlt(localctx, 10) + { + p.SetState(2079) + p.Match(CqlParserK_CURRENTTIMESTAMP) + if p.HasError() { + // Recognition error - abort rule + goto errorExit + } + } + { + p.SetState(2080) + p.Match(CqlParserLR_BRACKET) + if p.HasError() { + // Recognition error - abort rule + goto errorExit + } + } + { + p.SetState(2081) + p.Match(CqlParserRR_BRACKET) + if p.HasError() { + // Recognition error - abort rule + goto errorExit + } + } + + case 11: + p.EnterOuterAlt(localctx, 11) + { + p.SetState(2082) + p.Match(CqlParserK_CURRENTDATE) + if p.HasError() { + // Recognition error - abort rule + goto errorExit + } + } + { + p.SetState(2083) + p.Match(CqlParserLR_BRACKET) + if p.HasError() { + // Recognition error - abort rule + goto errorExit + } + } + { + p.SetState(2084) + p.Match(CqlParserRR_BRACKET) + if p.HasError() { + // Recognition error - abort rule + goto errorExit + } + } + + case 12: + p.EnterOuterAlt(localctx, 12) + { + p.SetState(2085) + p.Match(CqlParserK_CURRENTTIME) + if p.HasError() { + // Recognition error - abort rule + goto errorExit + } + } + { + p.SetState(2086) + p.Match(CqlParserLR_BRACKET) + if p.HasError() { + // Recognition error - abort rule + goto errorExit + } + } + { + p.SetState(2087) + p.Match(CqlParserRR_BRACKET) + if p.HasError() { + // Recognition error - abort rule + goto errorExit + } + } + + case 13: + p.EnterOuterAlt(localctx, 13) + { + p.SetState(2088) + p.Match(CqlParserK_CURRENTTIMEUUID) + if p.HasError() { + // Recognition error - abort rule + goto errorExit + } + } + { + p.SetState(2089) + p.Match(CqlParserLR_BRACKET) + if p.HasError() { + // Recognition error - abort rule + goto errorExit + } + } + { + p.SetState(2090) p.Match(CqlParserRR_BRACKET) if p.HasError() { // Recognition error - abort rule @@ -34623,26 +35712,26 @@ func (s *FunctionArgsContext) Accept(visitor antlr.ParseTreeVisitor) interface{} func (p *CqlParser) FunctionArgs() (localctx IFunctionArgsContext) { localctx = NewFunctionArgsContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 290, CqlParserRULE_functionArgs) + p.EnterRule(localctx, 296, CqlParserRULE_functionArgs) var _la int p.EnterOuterAlt(localctx, 1) - p.SetState(2008) + p.SetState(2096) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit } - switch p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 168, p.GetParserRuleContext()) { + switch p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 176, p.GetParserRuleContext()) { case 1: { - p.SetState(2005) + p.SetState(2093) p.Constant() } case 2: { - p.SetState(2006) + p.SetState(2094) p.Match(CqlParserOBJECT_NAME) if p.HasError() { // Recognition error - abort rule @@ -34652,14 +35741,14 @@ func (p *CqlParser) FunctionArgs() (localctx IFunctionArgsContext) { case 3: { - p.SetState(2007) + p.SetState(2095) p.FunctionCall() } case antlr.ATNInvalidAltNumber: goto errorExit } - p.SetState(2018) + p.SetState(2106) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -34668,25 +35757,25 @@ func (p *CqlParser) FunctionArgs() (localctx IFunctionArgsContext) { for _la == CqlParserCOMMA { { - p.SetState(2010) + p.SetState(2098) p.SyntaxComma() } - p.SetState(2014) + p.SetState(2102) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit } - switch p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 169, p.GetParserRuleContext()) { + switch p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 177, p.GetParserRuleContext()) { case 1: { - p.SetState(2011) + p.SetState(2099) p.Constant() } case 2: { - p.SetState(2012) + p.SetState(2100) p.Match(CqlParserOBJECT_NAME) if p.HasError() { // Recognition error - abort rule @@ -34696,7 +35785,7 @@ func (p *CqlParser) FunctionArgs() (localctx IFunctionArgsContext) { case 3: { - p.SetState(2013) + p.SetState(2101) p.FunctionCall() } @@ -34704,7 +35793,7 @@ func (p *CqlParser) FunctionArgs() (localctx IFunctionArgsContext) { goto errorExit } - p.SetState(2020) + p.SetState(2108) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -34926,18 +36015,18 @@ func (s *ConstantContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) Constant() (localctx IConstantContext) { localctx = NewConstantContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 292, CqlParserRULE_constant) - p.SetState(2029) + p.EnterRule(localctx, 298, CqlParserRULE_constant) + p.SetState(2117) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit } - switch p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 171, p.GetParserRuleContext()) { + switch p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 179, p.GetParserRuleContext()) { case 1: p.EnterOuterAlt(localctx, 1) { - p.SetState(2021) + p.SetState(2109) p.Match(CqlParserUUID) if p.HasError() { // Recognition error - abort rule @@ -34948,49 +36037,49 @@ func (p *CqlParser) Constant() (localctx IConstantContext) { case 2: p.EnterOuterAlt(localctx, 2) { - p.SetState(2022) + p.SetState(2110) p.StringLiteral() } case 3: p.EnterOuterAlt(localctx, 3) { - p.SetState(2023) + p.SetState(2111) p.DecimalLiteral() } case 4: p.EnterOuterAlt(localctx, 4) { - p.SetState(2024) + p.SetState(2112) p.FloatLiteral() } case 5: p.EnterOuterAlt(localctx, 5) { - p.SetState(2025) + p.SetState(2113) p.HexadecimalLiteral() } case 6: p.EnterOuterAlt(localctx, 6) { - p.SetState(2026) + p.SetState(2114) p.BooleanLiteral() } case 7: p.EnterOuterAlt(localctx, 7) { - p.SetState(2027) + p.SetState(2115) p.CodeBlock() } case 8: p.EnterOuterAlt(localctx, 8) { - p.SetState(2028) + p.SetState(2116) p.KwNull() } @@ -35093,10 +36182,10 @@ func (s *DecimalLiteralContext) Accept(visitor antlr.ParseTreeVisitor) interface func (p *CqlParser) DecimalLiteral() (localctx IDecimalLiteralContext) { localctx = NewDecimalLiteralContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 294, CqlParserRULE_decimalLiteral) + p.EnterRule(localctx, 300, CqlParserRULE_decimalLiteral) p.EnterOuterAlt(localctx, 1) { - p.SetState(2031) + p.SetState(2119) p.Match(CqlParserDECIMAL_LITERAL) if p.HasError() { // Recognition error - abort rule @@ -35204,12 +36293,12 @@ func (s *FloatLiteralContext) Accept(visitor antlr.ParseTreeVisitor) interface{} func (p *CqlParser) FloatLiteral() (localctx IFloatLiteralContext) { localctx = NewFloatLiteralContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 296, CqlParserRULE_floatLiteral) + p.EnterRule(localctx, 302, CqlParserRULE_floatLiteral) var _la int p.EnterOuterAlt(localctx, 1) { - p.SetState(2033) + p.SetState(2121) _la = p.GetTokenStream().LA(1) if !(_la == CqlParserDECIMAL_LITERAL || _la == CqlParserFLOAT_LITERAL) { @@ -35315,10 +36404,10 @@ func (s *StringLiteralContext) Accept(visitor antlr.ParseTreeVisitor) interface{ func (p *CqlParser) StringLiteral() (localctx IStringLiteralContext) { localctx = NewStringLiteralContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 298, CqlParserRULE_stringLiteral) + p.EnterRule(localctx, 304, CqlParserRULE_stringLiteral) p.EnterOuterAlt(localctx, 1) { - p.SetState(2035) + p.SetState(2123) p.Match(CqlParserSTRING_LITERAL) if p.HasError() { // Recognition error - abort rule @@ -35426,12 +36515,12 @@ func (s *BooleanLiteralContext) Accept(visitor antlr.ParseTreeVisitor) interface func (p *CqlParser) BooleanLiteral() (localctx IBooleanLiteralContext) { localctx = NewBooleanLiteralContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 300, CqlParserRULE_booleanLiteral) + p.EnterRule(localctx, 306, CqlParserRULE_booleanLiteral) var _la int p.EnterOuterAlt(localctx, 1) { - p.SetState(2037) + p.SetState(2125) _la = p.GetTokenStream().LA(1) if !(_la == CqlParserK_FALSE || _la == CqlParserK_TRUE) { @@ -35537,10 +36626,10 @@ func (s *HexadecimalLiteralContext) Accept(visitor antlr.ParseTreeVisitor) inter func (p *CqlParser) HexadecimalLiteral() (localctx IHexadecimalLiteralContext) { localctx = NewHexadecimalLiteralContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 302, CqlParserRULE_hexadecimalLiteral) + p.EnterRule(localctx, 308, CqlParserRULE_hexadecimalLiteral) p.EnterOuterAlt(localctx, 1) { - p.SetState(2039) + p.SetState(2127) p.Match(CqlParserHEXADECIMAL_LITERAL) if p.HasError() { // Recognition error - abort rule @@ -35653,8 +36742,8 @@ func (s *KeyspaceContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) Keyspace() (localctx IKeyspaceContext) { localctx = NewKeyspaceContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 304, CqlParserRULE_keyspace) - p.SetState(2045) + p.EnterRule(localctx, 310, CqlParserRULE_keyspace) + p.SetState(2133) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -35664,7 +36753,7 @@ func (p *CqlParser) Keyspace() (localctx IKeyspaceContext) { case CqlParserOBJECT_NAME: p.EnterOuterAlt(localctx, 1) { - p.SetState(2041) + p.SetState(2129) p.Match(CqlParserOBJECT_NAME) if p.HasError() { // Recognition error - abort rule @@ -35675,7 +36764,7 @@ func (p *CqlParser) Keyspace() (localctx IKeyspaceContext) { case CqlParserDQUOTE: p.EnterOuterAlt(localctx, 2) { - p.SetState(2042) + p.SetState(2130) p.Match(CqlParserDQUOTE) if p.HasError() { // Recognition error - abort rule @@ -35683,7 +36772,7 @@ func (p *CqlParser) Keyspace() (localctx IKeyspaceContext) { } } { - p.SetState(2043) + p.SetState(2131) p.Match(CqlParserOBJECT_NAME) if p.HasError() { // Recognition error - abort rule @@ -35691,7 +36780,7 @@ func (p *CqlParser) Keyspace() (localctx IKeyspaceContext) { } } { - p.SetState(2044) + p.SetState(2132) p.Match(CqlParserDQUOTE) if p.HasError() { // Recognition error - abort rule @@ -35809,8 +36898,8 @@ func (s *TableContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) Table() (localctx ITableContext) { localctx = NewTableContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 306, CqlParserRULE_table) - p.SetState(2051) + p.EnterRule(localctx, 312, CqlParserRULE_table) + p.SetState(2139) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -35820,7 +36909,7 @@ func (p *CqlParser) Table() (localctx ITableContext) { case CqlParserOBJECT_NAME: p.EnterOuterAlt(localctx, 1) { - p.SetState(2047) + p.SetState(2135) p.Match(CqlParserOBJECT_NAME) if p.HasError() { // Recognition error - abort rule @@ -35831,7 +36920,7 @@ func (p *CqlParser) Table() (localctx ITableContext) { case CqlParserDQUOTE: p.EnterOuterAlt(localctx, 2) { - p.SetState(2048) + p.SetState(2136) p.Match(CqlParserDQUOTE) if p.HasError() { // Recognition error - abort rule @@ -35839,7 +36928,7 @@ func (p *CqlParser) Table() (localctx ITableContext) { } } { - p.SetState(2049) + p.SetState(2137) p.Match(CqlParserOBJECT_NAME) if p.HasError() { // Recognition error - abort rule @@ -35847,7 +36936,7 @@ func (p *CqlParser) Table() (localctx ITableContext) { } } { - p.SetState(2050) + p.SetState(2138) p.Match(CqlParserDQUOTE) if p.HasError() { // Recognition error - abort rule @@ -35965,8 +37054,8 @@ func (s *ColumnContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) Column() (localctx IColumnContext) { localctx = NewColumnContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 308, CqlParserRULE_column) - p.SetState(2057) + p.EnterRule(localctx, 314, CqlParserRULE_column) + p.SetState(2145) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -35976,7 +37065,7 @@ func (p *CqlParser) Column() (localctx IColumnContext) { case CqlParserOBJECT_NAME: p.EnterOuterAlt(localctx, 1) { - p.SetState(2053) + p.SetState(2141) p.Match(CqlParserOBJECT_NAME) if p.HasError() { // Recognition error - abort rule @@ -35987,7 +37076,7 @@ func (p *CqlParser) Column() (localctx IColumnContext) { case CqlParserDQUOTE: p.EnterOuterAlt(localctx, 2) { - p.SetState(2054) + p.SetState(2142) p.Match(CqlParserDQUOTE) if p.HasError() { // Recognition error - abort rule @@ -35995,7 +37084,7 @@ func (p *CqlParser) Column() (localctx IColumnContext) { } } { - p.SetState(2055) + p.SetState(2143) p.Match(CqlParserOBJECT_NAME) if p.HasError() { // Recognition error - abort rule @@ -36003,7 +37092,7 @@ func (p *CqlParser) Column() (localctx IColumnContext) { } } { - p.SetState(2056) + p.SetState(2144) p.Match(CqlParserDQUOTE) if p.HasError() { // Recognition error - abort rule @@ -36140,15 +37229,15 @@ func (s *DataTypeContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) DataType() (localctx IDataTypeContext) { localctx = NewDataTypeContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 310, CqlParserRULE_dataType) + p.EnterRule(localctx, 316, CqlParserRULE_dataType) var _la int p.EnterOuterAlt(localctx, 1) { - p.SetState(2059) + p.SetState(2147) p.DataTypeName() } - p.SetState(2061) + p.SetState(2149) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -36157,7 +37246,7 @@ func (p *CqlParser) DataType() (localctx IDataTypeContext) { if _la == CqlParserOPERATOR_LT { { - p.SetState(2060) + p.SetState(2148) p.DataTypeDefinition() } @@ -36210,6 +37299,8 @@ type IDataTypeNameContext interface { K_VARCHAR() antlr.TerminalNode K_VARINT() antlr.TerminalNode K_UUID() antlr.TerminalNode + K_VECTOR() antlr.TerminalNode + K_DURATION() antlr.TerminalNode // IsDataTypeNameContext differentiates from other interfaces. IsDataTypeNameContext() @@ -36351,6 +37442,14 @@ func (s *DataTypeNameContext) K_UUID() antlr.TerminalNode { return s.GetToken(CqlParserK_UUID, 0) } +func (s *DataTypeNameContext) K_VECTOR() antlr.TerminalNode { + return s.GetToken(CqlParserK_VECTOR, 0) +} + +func (s *DataTypeNameContext) K_DURATION() antlr.TerminalNode { + return s.GetToken(CqlParserK_DURATION, 0) +} + func (s *DataTypeNameContext) GetRuleContext() antlr.RuleContext { return s } @@ -36383,15 +37482,15 @@ func (s *DataTypeNameContext) Accept(visitor antlr.ParseTreeVisitor) interface{} func (p *CqlParser) DataTypeName() (localctx IDataTypeNameContext) { localctx = NewDataTypeNameContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 312, CqlParserRULE_dataTypeName) + p.EnterRule(localctx, 318, CqlParserRULE_dataTypeName) var _la int p.EnterOuterAlt(localctx, 1) { - p.SetState(2063) + p.SetState(2151) _la = p.GetTokenStream().LA(1) - if !((int64((_la-114)) & ^0x3f) == 0 && ((int64(1)<<(_la-114))&73183493680529665) != 0) { + if !(((int64((_la-114)) & ^0x3f) == 0 && ((int64(1)<<(_la-114))&109212290699493633) != 0) || _la == CqlParserOBJECT_NAME) { p.GetErrorHandler().RecoverInline(p) } else { p.GetErrorHandler().ReportMatch(p) @@ -36426,6 +37525,7 @@ type IDataTypeDefinitionContext interface { SyntaxBracketRa() ISyntaxBracketRaContext AllSyntaxComma() []ISyntaxCommaContext SyntaxComma(i int) ISyntaxCommaContext + DECIMAL_LITERAL() antlr.TerminalNode // IsDataTypeDefinitionContext differentiates from other interfaces. IsDataTypeDefinitionContext() @@ -36577,6 +37677,10 @@ func (s *DataTypeDefinitionContext) SyntaxComma(i int) ISyntaxCommaContext { return t.(ISyntaxCommaContext) } +func (s *DataTypeDefinitionContext) DECIMAL_LITERAL() antlr.TerminalNode { + return s.GetToken(CqlParserDECIMAL_LITERAL, 0) +} + func (s *DataTypeDefinitionContext) GetRuleContext() antlr.RuleContext { return s } @@ -36609,45 +37713,84 @@ func (s *DataTypeDefinitionContext) Accept(visitor antlr.ParseTreeVisitor) inter func (p *CqlParser) DataTypeDefinition() (localctx IDataTypeDefinitionContext) { localctx = NewDataTypeDefinitionContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 314, CqlParserRULE_dataTypeDefinition) + p.EnterRule(localctx, 320, CqlParserRULE_dataTypeDefinition) var _la int - p.EnterOuterAlt(localctx, 1) - { - p.SetState(2065) - p.SyntaxBracketLa() - } - { - p.SetState(2066) - p.DataTypeName() - } - p.SetState(2072) + p.SetState(2171) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit } - _la = p.GetTokenStream().LA(1) - for _la == CqlParserCOMMA { + switch p.GetInterpreter().AdaptivePredict(p.BaseParser, p.GetTokenStream(), 185, p.GetParserRuleContext()) { + case 1: + p.EnterOuterAlt(localctx, 1) { - p.SetState(2067) - p.SyntaxComma() + p.SetState(2153) + p.SyntaxBracketLa() } { - p.SetState(2068) + p.SetState(2154) p.DataTypeName() } - - p.SetState(2074) + p.SetState(2160) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit } _la = p.GetTokenStream().LA(1) - } - { - p.SetState(2075) - p.SyntaxBracketRa() + + for _la == CqlParserCOMMA { + { + p.SetState(2155) + p.SyntaxComma() + } + { + p.SetState(2156) + p.DataTypeName() + } + + p.SetState(2162) + p.GetErrorHandler().Sync(p) + if p.HasError() { + goto errorExit + } + _la = p.GetTokenStream().LA(1) + } + { + p.SetState(2163) + p.SyntaxBracketRa() + } + + case 2: + p.EnterOuterAlt(localctx, 2) + { + p.SetState(2165) + p.SyntaxBracketLa() + } + { + p.SetState(2166) + p.DataTypeName() + } + { + p.SetState(2167) + p.SyntaxComma() + } + { + p.SetState(2168) + p.Match(CqlParserDECIMAL_LITERAL) + if p.HasError() { + // Recognition error - abort rule + goto errorExit + } + } + { + p.SetState(2169) + p.SyntaxBracketRa() + } + + case antlr.ATNInvalidAltNumber: + goto errorExit } errorExit: @@ -36774,8 +37917,8 @@ func (s *OrderDirectionContext) Accept(visitor antlr.ParseTreeVisitor) interface func (p *CqlParser) OrderDirection() (localctx IOrderDirectionContext) { localctx = NewOrderDirectionContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 316, CqlParserRULE_orderDirection) - p.SetState(2079) + p.EnterRule(localctx, 322, CqlParserRULE_orderDirection) + p.SetState(2175) p.GetErrorHandler().Sync(p) if p.HasError() { goto errorExit @@ -36785,14 +37928,14 @@ func (p *CqlParser) OrderDirection() (localctx IOrderDirectionContext) { case CqlParserK_ASC: p.EnterOuterAlt(localctx, 1) { - p.SetState(2077) + p.SetState(2173) p.KwAsc() } case CqlParserK_DESC: p.EnterOuterAlt(localctx, 2) { - p.SetState(2078) + p.SetState(2174) p.KwDesc() } @@ -36896,10 +38039,10 @@ func (s *RoleContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) Role() (localctx IRoleContext) { localctx = NewRoleContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 318, CqlParserRULE_role) + p.EnterRule(localctx, 324, CqlParserRULE_role) p.EnterOuterAlt(localctx, 1) { - p.SetState(2081) + p.SetState(2177) p.Match(CqlParserOBJECT_NAME) if p.HasError() { // Recognition error - abort rule @@ -37002,10 +38145,10 @@ func (s *TriggerContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) Trigger() (localctx ITriggerContext) { localctx = NewTriggerContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 320, CqlParserRULE_trigger) + p.EnterRule(localctx, 326, CqlParserRULE_trigger) p.EnterOuterAlt(localctx, 1) { - p.SetState(2083) + p.SetState(2179) p.Match(CqlParserOBJECT_NAME) if p.HasError() { // Recognition error - abort rule @@ -37120,10 +38263,10 @@ func (s *TriggerClassContext) Accept(visitor antlr.ParseTreeVisitor) interface{} func (p *CqlParser) TriggerClass() (localctx ITriggerClassContext) { localctx = NewTriggerClassContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 322, CqlParserRULE_triggerClass) + p.EnterRule(localctx, 328, CqlParserRULE_triggerClass) p.EnterOuterAlt(localctx, 1) { - p.SetState(2085) + p.SetState(2181) p.StringLiteral() } @@ -37222,10 +38365,10 @@ func (s *MaterializedViewContext) Accept(visitor antlr.ParseTreeVisitor) interfa func (p *CqlParser) MaterializedView() (localctx IMaterializedViewContext) { localctx = NewMaterializedViewContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 324, CqlParserRULE_materializedView) + p.EnterRule(localctx, 330, CqlParserRULE_materializedView) p.EnterOuterAlt(localctx, 1) { - p.SetState(2087) + p.SetState(2183) p.Match(CqlParserOBJECT_NAME) if p.HasError() { // Recognition error - abort rule @@ -37328,10 +38471,10 @@ func (s *Type_Context) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) Type_() (localctx IType_Context) { localctx = NewType_Context(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 326, CqlParserRULE_type_) + p.EnterRule(localctx, 332, CqlParserRULE_type_) p.EnterOuterAlt(localctx, 1) { - p.SetState(2089) + p.SetState(2185) p.Match(CqlParserOBJECT_NAME) if p.HasError() { // Recognition error - abort rule @@ -37434,10 +38577,10 @@ func (s *AggregateContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) Aggregate() (localctx IAggregateContext) { localctx = NewAggregateContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 328, CqlParserRULE_aggregate) + p.EnterRule(localctx, 334, CqlParserRULE_aggregate) p.EnterOuterAlt(localctx, 1) { - p.SetState(2091) + p.SetState(2187) p.Match(CqlParserOBJECT_NAME) if p.HasError() { // Recognition error - abort rule @@ -37540,10 +38683,10 @@ func (s *Function_Context) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) Function_() (localctx IFunction_Context) { localctx = NewFunction_Context(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 330, CqlParserRULE_function_) + p.EnterRule(localctx, 336, CqlParserRULE_function_) p.EnterOuterAlt(localctx, 1) { - p.SetState(2093) + p.SetState(2189) p.Match(CqlParserOBJECT_NAME) if p.HasError() { // Recognition error - abort rule @@ -37646,10 +38789,10 @@ func (s *LanguageContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) Language() (localctx ILanguageContext) { localctx = NewLanguageContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 332, CqlParserRULE_language) + p.EnterRule(localctx, 338, CqlParserRULE_language) p.EnterOuterAlt(localctx, 1) { - p.SetState(2095) + p.SetState(2191) p.Match(CqlParserOBJECT_NAME) if p.HasError() { // Recognition error - abort rule @@ -37752,10 +38895,10 @@ func (s *UserContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) User() (localctx IUserContext) { localctx = NewUserContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 334, CqlParserRULE_user) + p.EnterRule(localctx, 340, CqlParserRULE_user) p.EnterOuterAlt(localctx, 1) { - p.SetState(2097) + p.SetState(2193) p.Match(CqlParserOBJECT_NAME) if p.HasError() { // Recognition error - abort rule @@ -37870,10 +39013,10 @@ func (s *PasswordContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) Password() (localctx IPasswordContext) { localctx = NewPasswordContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 336, CqlParserRULE_password) + p.EnterRule(localctx, 342, CqlParserRULE_password) p.EnterOuterAlt(localctx, 1) { - p.SetState(2099) + p.SetState(2195) p.StringLiteral() } @@ -37972,10 +39115,10 @@ func (s *HashKeyContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) HashKey() (localctx IHashKeyContext) { localctx = NewHashKeyContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 338, CqlParserRULE_hashKey) + p.EnterRule(localctx, 344, CqlParserRULE_hashKey) p.EnterOuterAlt(localctx, 1) { - p.SetState(2101) + p.SetState(2197) p.Match(CqlParserOBJECT_NAME) if p.HasError() { // Recognition error - abort rule @@ -38107,14 +39250,14 @@ func (s *ParamContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) Param() (localctx IParamContext) { localctx = NewParamContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 340, CqlParserRULE_param) + p.EnterRule(localctx, 346, CqlParserRULE_param) p.EnterOuterAlt(localctx, 1) { - p.SetState(2103) + p.SetState(2199) p.ParamName() } { - p.SetState(2104) + p.SetState(2200) p.DataType() } @@ -38218,12 +39361,12 @@ func (s *ParamNameContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) ParamName() (localctx IParamNameContext) { localctx = NewParamNameContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 342, CqlParserRULE_paramName) + p.EnterRule(localctx, 348, CqlParserRULE_paramName) var _la int p.EnterOuterAlt(localctx, 1) { - p.SetState(2106) + p.SetState(2202) _la = p.GetTokenStream().LA(1) if !(_la == CqlParserK_INPUT || _la == CqlParserOBJECT_NAME) { @@ -38329,10 +39472,10 @@ func (s *KwAddContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) KwAdd() (localctx IKwAddContext) { localctx = NewKwAddContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 344, CqlParserRULE_kwAdd) + p.EnterRule(localctx, 350, CqlParserRULE_kwAdd) p.EnterOuterAlt(localctx, 1) { - p.SetState(2108) + p.SetState(2204) p.Match(CqlParserK_ADD) if p.HasError() { // Recognition error - abort rule @@ -38435,10 +39578,10 @@ func (s *KwAggregateContext) Accept(visitor antlr.ParseTreeVisitor) interface{} func (p *CqlParser) KwAggregate() (localctx IKwAggregateContext) { localctx = NewKwAggregateContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 346, CqlParserRULE_kwAggregate) + p.EnterRule(localctx, 352, CqlParserRULE_kwAggregate) p.EnterOuterAlt(localctx, 1) { - p.SetState(2110) + p.SetState(2206) p.Match(CqlParserK_AGGREGATE) if p.HasError() { // Recognition error - abort rule @@ -38541,10 +39684,10 @@ func (s *KwAllContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) KwAll() (localctx IKwAllContext) { localctx = NewKwAllContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 348, CqlParserRULE_kwAll) + p.EnterRule(localctx, 354, CqlParserRULE_kwAll) p.EnterOuterAlt(localctx, 1) { - p.SetState(2112) + p.SetState(2208) p.Match(CqlParserK_ALL) if p.HasError() { // Recognition error - abort rule @@ -38652,10 +39795,10 @@ func (s *KwAllPermissionsContext) Accept(visitor antlr.ParseTreeVisitor) interfa func (p *CqlParser) KwAllPermissions() (localctx IKwAllPermissionsContext) { localctx = NewKwAllPermissionsContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 350, CqlParserRULE_kwAllPermissions) + p.EnterRule(localctx, 356, CqlParserRULE_kwAllPermissions) p.EnterOuterAlt(localctx, 1) { - p.SetState(2114) + p.SetState(2210) p.Match(CqlParserK_ALL) if p.HasError() { // Recognition error - abort rule @@ -38663,7 +39806,7 @@ func (p *CqlParser) KwAllPermissions() (localctx IKwAllPermissionsContext) { } } { - p.SetState(2115) + p.SetState(2211) p.Match(CqlParserK_PERMISSIONS) if p.HasError() { // Recognition error - abort rule @@ -38766,10 +39909,10 @@ func (s *KwAllowContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) KwAllow() (localctx IKwAllowContext) { localctx = NewKwAllowContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 352, CqlParserRULE_kwAllow) + p.EnterRule(localctx, 358, CqlParserRULE_kwAllow) p.EnterOuterAlt(localctx, 1) { - p.SetState(2117) + p.SetState(2213) p.Match(CqlParserK_ALLOW) if p.HasError() { // Recognition error - abort rule @@ -38872,10 +40015,10 @@ func (s *KwAlterContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) KwAlter() (localctx IKwAlterContext) { localctx = NewKwAlterContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 354, CqlParserRULE_kwAlter) + p.EnterRule(localctx, 360, CqlParserRULE_kwAlter) p.EnterOuterAlt(localctx, 1) { - p.SetState(2119) + p.SetState(2215) p.Match(CqlParserK_ALTER) if p.HasError() { // Recognition error - abort rule @@ -38978,10 +40121,10 @@ func (s *KwAndContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) KwAnd() (localctx IKwAndContext) { localctx = NewKwAndContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 356, CqlParserRULE_kwAnd) + p.EnterRule(localctx, 362, CqlParserRULE_kwAnd) p.EnterOuterAlt(localctx, 1) { - p.SetState(2121) + p.SetState(2217) p.Match(CqlParserK_AND) if p.HasError() { // Recognition error - abort rule @@ -39084,10 +40227,10 @@ func (s *KwApplyContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) KwApply() (localctx IKwApplyContext) { localctx = NewKwApplyContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 358, CqlParserRULE_kwApply) + p.EnterRule(localctx, 364, CqlParserRULE_kwApply) p.EnterOuterAlt(localctx, 1) { - p.SetState(2123) + p.SetState(2219) p.Match(CqlParserK_APPLY) if p.HasError() { // Recognition error - abort rule @@ -39190,10 +40333,10 @@ func (s *KwAsContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) KwAs() (localctx IKwAsContext) { localctx = NewKwAsContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 360, CqlParserRULE_kwAs) + p.EnterRule(localctx, 366, CqlParserRULE_kwAs) p.EnterOuterAlt(localctx, 1) { - p.SetState(2125) + p.SetState(2221) p.Match(CqlParserK_AS) if p.HasError() { // Recognition error - abort rule @@ -39296,10 +40439,10 @@ func (s *KwAscContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) KwAsc() (localctx IKwAscContext) { localctx = NewKwAscContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 362, CqlParserRULE_kwAsc) + p.EnterRule(localctx, 368, CqlParserRULE_kwAsc) p.EnterOuterAlt(localctx, 1) { - p.SetState(2127) + p.SetState(2223) p.Match(CqlParserK_ASC) if p.HasError() { // Recognition error - abort rule @@ -39402,10 +40545,10 @@ func (s *KwAuthorizeContext) Accept(visitor antlr.ParseTreeVisitor) interface{} func (p *CqlParser) KwAuthorize() (localctx IKwAuthorizeContext) { localctx = NewKwAuthorizeContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 364, CqlParserRULE_kwAuthorize) + p.EnterRule(localctx, 370, CqlParserRULE_kwAuthorize) p.EnterOuterAlt(localctx, 1) { - p.SetState(2129) + p.SetState(2225) p.Match(CqlParserK_AUTHORIZE) if p.HasError() { // Recognition error - abort rule @@ -39508,10 +40651,10 @@ func (s *KwBatchContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) KwBatch() (localctx IKwBatchContext) { localctx = NewKwBatchContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 366, CqlParserRULE_kwBatch) + p.EnterRule(localctx, 372, CqlParserRULE_kwBatch) p.EnterOuterAlt(localctx, 1) { - p.SetState(2131) + p.SetState(2227) p.Match(CqlParserK_BATCH) if p.HasError() { // Recognition error - abort rule @@ -39614,10 +40757,10 @@ func (s *KwBeginContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) KwBegin() (localctx IKwBeginContext) { localctx = NewKwBeginContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 368, CqlParserRULE_kwBegin) + p.EnterRule(localctx, 374, CqlParserRULE_kwBegin) p.EnterOuterAlt(localctx, 1) { - p.SetState(2133) + p.SetState(2229) p.Match(CqlParserK_BEGIN) if p.HasError() { // Recognition error - abort rule @@ -39720,10 +40863,10 @@ func (s *KwByContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) KwBy() (localctx IKwByContext) { localctx = NewKwByContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 370, CqlParserRULE_kwBy) + p.EnterRule(localctx, 376, CqlParserRULE_kwBy) p.EnterOuterAlt(localctx, 1) { - p.SetState(2135) + p.SetState(2231) p.Match(CqlParserK_BY) if p.HasError() { // Recognition error - abort rule @@ -39826,10 +40969,10 @@ func (s *KwCalledContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) KwCalled() (localctx IKwCalledContext) { localctx = NewKwCalledContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 372, CqlParserRULE_kwCalled) + p.EnterRule(localctx, 378, CqlParserRULE_kwCalled) p.EnterOuterAlt(localctx, 1) { - p.SetState(2137) + p.SetState(2233) p.Match(CqlParserK_CALLED) if p.HasError() { // Recognition error - abort rule @@ -39932,10 +41075,10 @@ func (s *KwClusteringContext) Accept(visitor antlr.ParseTreeVisitor) interface{} func (p *CqlParser) KwClustering() (localctx IKwClusteringContext) { localctx = NewKwClusteringContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 374, CqlParserRULE_kwClustering) + p.EnterRule(localctx, 380, CqlParserRULE_kwClustering) p.EnterOuterAlt(localctx, 1) { - p.SetState(2139) + p.SetState(2235) p.Match(CqlParserK_CLUSTERING) if p.HasError() { // Recognition error - abort rule @@ -40038,10 +41181,10 @@ func (s *KwCompactContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) KwCompact() (localctx IKwCompactContext) { localctx = NewKwCompactContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 376, CqlParserRULE_kwCompact) + p.EnterRule(localctx, 382, CqlParserRULE_kwCompact) p.EnterOuterAlt(localctx, 1) { - p.SetState(2141) + p.SetState(2237) p.Match(CqlParserK_COMPACT) if p.HasError() { // Recognition error - abort rule @@ -40144,10 +41287,10 @@ func (s *KwContainsContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) KwContains() (localctx IKwContainsContext) { localctx = NewKwContainsContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 378, CqlParserRULE_kwContains) + p.EnterRule(localctx, 384, CqlParserRULE_kwContains) p.EnterOuterAlt(localctx, 1) { - p.SetState(2143) + p.SetState(2239) p.Match(CqlParserK_CONTAINS) if p.HasError() { // Recognition error - abort rule @@ -40250,10 +41393,10 @@ func (s *KwCreateContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) KwCreate() (localctx IKwCreateContext) { localctx = NewKwCreateContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 380, CqlParserRULE_kwCreate) + p.EnterRule(localctx, 386, CqlParserRULE_kwCreate) p.EnterOuterAlt(localctx, 1) { - p.SetState(2145) + p.SetState(2241) p.Match(CqlParserK_CREATE) if p.HasError() { // Recognition error - abort rule @@ -40274,6 +41417,430 @@ errorExit: goto errorExit // Trick to prevent compiler error if the label is not used } +// IKwCustomContext is an interface to support dynamic dispatch. +type IKwCustomContext interface { + antlr.ParserRuleContext + + // GetParser returns the parser. + GetParser() antlr.Parser + + // Getter signatures + K_CUSTOM() antlr.TerminalNode + + // IsKwCustomContext differentiates from other interfaces. + IsKwCustomContext() +} + +type KwCustomContext struct { + antlr.BaseParserRuleContext + parser antlr.Parser +} + +func NewEmptyKwCustomContext() *KwCustomContext { + var p = new(KwCustomContext) + antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1) + p.RuleIndex = CqlParserRULE_kwCustom + return p +} + +func InitEmptyKwCustomContext(p *KwCustomContext) { + antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1) + p.RuleIndex = CqlParserRULE_kwCustom +} + +func (*KwCustomContext) IsKwCustomContext() {} + +func NewKwCustomContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *KwCustomContext { + var p = new(KwCustomContext) + + antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState) + + p.parser = parser + p.RuleIndex = CqlParserRULE_kwCustom + + return p +} + +func (s *KwCustomContext) GetParser() antlr.Parser { return s.parser } + +func (s *KwCustomContext) K_CUSTOM() antlr.TerminalNode { + return s.GetToken(CqlParserK_CUSTOM, 0) +} + +func (s *KwCustomContext) GetRuleContext() antlr.RuleContext { + return s +} + +func (s *KwCustomContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string { + return antlr.TreesStringTree(s, ruleNames, recog) +} + +func (s *KwCustomContext) EnterRule(listener antlr.ParseTreeListener) { + if listenerT, ok := listener.(CqlParserListener); ok { + listenerT.EnterKwCustom(s) + } +} + +func (s *KwCustomContext) ExitRule(listener antlr.ParseTreeListener) { + if listenerT, ok := listener.(CqlParserListener); ok { + listenerT.ExitKwCustom(s) + } +} + +func (s *KwCustomContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { + switch t := visitor.(type) { + case CqlParserVisitor: + return t.VisitKwCustom(s) + + default: + return t.VisitChildren(s) + } +} + +func (p *CqlParser) KwCustom() (localctx IKwCustomContext) { + localctx = NewKwCustomContext(p, p.GetParserRuleContext(), p.GetState()) + p.EnterRule(localctx, 388, CqlParserRULE_kwCustom) + p.EnterOuterAlt(localctx, 1) + { + p.SetState(2243) + p.Match(CqlParserK_CUSTOM) + if p.HasError() { + // Recognition error - abort rule + goto errorExit + } + } + +errorExit: + if p.HasError() { + v := p.GetError() + localctx.SetException(v) + p.GetErrorHandler().ReportError(p, v) + p.GetErrorHandler().Recover(p, v) + p.SetError(nil) + } + p.ExitRule() + return localctx + goto errorExit // Trick to prevent compiler error if the label is not used +} + +// IKwDefaultContext is an interface to support dynamic dispatch. +type IKwDefaultContext interface { + antlr.ParserRuleContext + + // GetParser returns the parser. + GetParser() antlr.Parser + + // Getter signatures + K_DEFAULT() antlr.TerminalNode + + // IsKwDefaultContext differentiates from other interfaces. + IsKwDefaultContext() +} + +type KwDefaultContext struct { + antlr.BaseParserRuleContext + parser antlr.Parser +} + +func NewEmptyKwDefaultContext() *KwDefaultContext { + var p = new(KwDefaultContext) + antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1) + p.RuleIndex = CqlParserRULE_kwDefault + return p +} + +func InitEmptyKwDefaultContext(p *KwDefaultContext) { + antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1) + p.RuleIndex = CqlParserRULE_kwDefault +} + +func (*KwDefaultContext) IsKwDefaultContext() {} + +func NewKwDefaultContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *KwDefaultContext { + var p = new(KwDefaultContext) + + antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState) + + p.parser = parser + p.RuleIndex = CqlParserRULE_kwDefault + + return p +} + +func (s *KwDefaultContext) GetParser() antlr.Parser { return s.parser } + +func (s *KwDefaultContext) K_DEFAULT() antlr.TerminalNode { + return s.GetToken(CqlParserK_DEFAULT, 0) +} + +func (s *KwDefaultContext) GetRuleContext() antlr.RuleContext { + return s +} + +func (s *KwDefaultContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string { + return antlr.TreesStringTree(s, ruleNames, recog) +} + +func (s *KwDefaultContext) EnterRule(listener antlr.ParseTreeListener) { + if listenerT, ok := listener.(CqlParserListener); ok { + listenerT.EnterKwDefault(s) + } +} + +func (s *KwDefaultContext) ExitRule(listener antlr.ParseTreeListener) { + if listenerT, ok := listener.(CqlParserListener); ok { + listenerT.ExitKwDefault(s) + } +} + +func (s *KwDefaultContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { + switch t := visitor.(type) { + case CqlParserVisitor: + return t.VisitKwDefault(s) + + default: + return t.VisitChildren(s) + } +} + +func (p *CqlParser) KwDefault() (localctx IKwDefaultContext) { + localctx = NewKwDefaultContext(p, p.GetParserRuleContext(), p.GetState()) + p.EnterRule(localctx, 390, CqlParserRULE_kwDefault) + p.EnterOuterAlt(localctx, 1) + { + p.SetState(2245) + p.Match(CqlParserK_DEFAULT) + if p.HasError() { + // Recognition error - abort rule + goto errorExit + } + } + +errorExit: + if p.HasError() { + v := p.GetError() + localctx.SetException(v) + p.GetErrorHandler().ReportError(p, v) + p.GetErrorHandler().Recover(p, v) + p.SetError(nil) + } + p.ExitRule() + return localctx + goto errorExit // Trick to prevent compiler error if the label is not used +} + +// IKwUnsetContext is an interface to support dynamic dispatch. +type IKwUnsetContext interface { + antlr.ParserRuleContext + + // GetParser returns the parser. + GetParser() antlr.Parser + + // Getter signatures + K_UNSET() antlr.TerminalNode + + // IsKwUnsetContext differentiates from other interfaces. + IsKwUnsetContext() +} + +type KwUnsetContext struct { + antlr.BaseParserRuleContext + parser antlr.Parser +} + +func NewEmptyKwUnsetContext() *KwUnsetContext { + var p = new(KwUnsetContext) + antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1) + p.RuleIndex = CqlParserRULE_kwUnset + return p +} + +func InitEmptyKwUnsetContext(p *KwUnsetContext) { + antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1) + p.RuleIndex = CqlParserRULE_kwUnset +} + +func (*KwUnsetContext) IsKwUnsetContext() {} + +func NewKwUnsetContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *KwUnsetContext { + var p = new(KwUnsetContext) + + antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState) + + p.parser = parser + p.RuleIndex = CqlParserRULE_kwUnset + + return p +} + +func (s *KwUnsetContext) GetParser() antlr.Parser { return s.parser } + +func (s *KwUnsetContext) K_UNSET() antlr.TerminalNode { + return s.GetToken(CqlParserK_UNSET, 0) +} + +func (s *KwUnsetContext) GetRuleContext() antlr.RuleContext { + return s +} + +func (s *KwUnsetContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string { + return antlr.TreesStringTree(s, ruleNames, recog) +} + +func (s *KwUnsetContext) EnterRule(listener antlr.ParseTreeListener) { + if listenerT, ok := listener.(CqlParserListener); ok { + listenerT.EnterKwUnset(s) + } +} + +func (s *KwUnsetContext) ExitRule(listener antlr.ParseTreeListener) { + if listenerT, ok := listener.(CqlParserListener); ok { + listenerT.ExitKwUnset(s) + } +} + +func (s *KwUnsetContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { + switch t := visitor.(type) { + case CqlParserVisitor: + return t.VisitKwUnset(s) + + default: + return t.VisitChildren(s) + } +} + +func (p *CqlParser) KwUnset() (localctx IKwUnsetContext) { + localctx = NewKwUnsetContext(p, p.GetParserRuleContext(), p.GetState()) + p.EnterRule(localctx, 392, CqlParserRULE_kwUnset) + p.EnterOuterAlt(localctx, 1) + { + p.SetState(2247) + p.Match(CqlParserK_UNSET) + if p.HasError() { + // Recognition error - abort rule + goto errorExit + } + } + +errorExit: + if p.HasError() { + v := p.GetError() + localctx.SetException(v) + p.GetErrorHandler().ReportError(p, v) + p.GetErrorHandler().Recover(p, v) + p.SetError(nil) + } + p.ExitRule() + return localctx + goto errorExit // Trick to prevent compiler error if the label is not used +} + +// IKwAnnContext is an interface to support dynamic dispatch. +type IKwAnnContext interface { + antlr.ParserRuleContext + + // GetParser returns the parser. + GetParser() antlr.Parser + + // Getter signatures + K_ANN() antlr.TerminalNode + + // IsKwAnnContext differentiates from other interfaces. + IsKwAnnContext() +} + +type KwAnnContext struct { + antlr.BaseParserRuleContext + parser antlr.Parser +} + +func NewEmptyKwAnnContext() *KwAnnContext { + var p = new(KwAnnContext) + antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1) + p.RuleIndex = CqlParserRULE_kwAnn + return p +} + +func InitEmptyKwAnnContext(p *KwAnnContext) { + antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1) + p.RuleIndex = CqlParserRULE_kwAnn +} + +func (*KwAnnContext) IsKwAnnContext() {} + +func NewKwAnnContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *KwAnnContext { + var p = new(KwAnnContext) + + antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState) + + p.parser = parser + p.RuleIndex = CqlParserRULE_kwAnn + + return p +} + +func (s *KwAnnContext) GetParser() antlr.Parser { return s.parser } + +func (s *KwAnnContext) K_ANN() antlr.TerminalNode { + return s.GetToken(CqlParserK_ANN, 0) +} + +func (s *KwAnnContext) GetRuleContext() antlr.RuleContext { + return s +} + +func (s *KwAnnContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string { + return antlr.TreesStringTree(s, ruleNames, recog) +} + +func (s *KwAnnContext) EnterRule(listener antlr.ParseTreeListener) { + if listenerT, ok := listener.(CqlParserListener); ok { + listenerT.EnterKwAnn(s) + } +} + +func (s *KwAnnContext) ExitRule(listener antlr.ParseTreeListener) { + if listenerT, ok := listener.(CqlParserListener); ok { + listenerT.ExitKwAnn(s) + } +} + +func (s *KwAnnContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { + switch t := visitor.(type) { + case CqlParserVisitor: + return t.VisitKwAnn(s) + + default: + return t.VisitChildren(s) + } +} + +func (p *CqlParser) KwAnn() (localctx IKwAnnContext) { + localctx = NewKwAnnContext(p, p.GetParserRuleContext(), p.GetState()) + p.EnterRule(localctx, 394, CqlParserRULE_kwAnn) + p.EnterOuterAlt(localctx, 1) + { + p.SetState(2249) + p.Match(CqlParserK_ANN) + if p.HasError() { + // Recognition error - abort rule + goto errorExit + } + } + +errorExit: + if p.HasError() { + v := p.GetError() + localctx.SetException(v) + p.GetErrorHandler().ReportError(p, v) + p.GetErrorHandler().Recover(p, v) + p.SetError(nil) + } + p.ExitRule() + return localctx + goto errorExit // Trick to prevent compiler error if the label is not used +} + // IKwDeleteContext is an interface to support dynamic dispatch. type IKwDeleteContext interface { antlr.ParserRuleContext @@ -40356,10 +41923,10 @@ func (s *KwDeleteContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) KwDelete() (localctx IKwDeleteContext) { localctx = NewKwDeleteContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 382, CqlParserRULE_kwDelete) + p.EnterRule(localctx, 396, CqlParserRULE_kwDelete) p.EnterOuterAlt(localctx, 1) { - p.SetState(2147) + p.SetState(2251) p.Match(CqlParserK_DELETE) if p.HasError() { // Recognition error - abort rule @@ -40462,10 +42029,10 @@ func (s *KwDescContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) KwDesc() (localctx IKwDescContext) { localctx = NewKwDescContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 384, CqlParserRULE_kwDesc) + p.EnterRule(localctx, 398, CqlParserRULE_kwDesc) p.EnterOuterAlt(localctx, 1) { - p.SetState(2149) + p.SetState(2253) p.Match(CqlParserK_DESC) if p.HasError() { // Recognition error - abort rule @@ -40486,8 +42053,8 @@ errorExit: goto errorExit // Trick to prevent compiler error if the label is not used } -// IKwDescibeContext is an interface to support dynamic dispatch. -type IKwDescibeContext interface { +// IKwDescribeContext is an interface to support dynamic dispatch. +type IKwDescribeContext interface { antlr.ParserRuleContext // GetParser returns the parser. @@ -40496,82 +42063,82 @@ type IKwDescibeContext interface { // Getter signatures K_DESCRIBE() antlr.TerminalNode - // IsKwDescibeContext differentiates from other interfaces. - IsKwDescibeContext() + // IsKwDescribeContext differentiates from other interfaces. + IsKwDescribeContext() } -type KwDescibeContext struct { +type KwDescribeContext struct { antlr.BaseParserRuleContext parser antlr.Parser } -func NewEmptyKwDescibeContext() *KwDescibeContext { - var p = new(KwDescibeContext) +func NewEmptyKwDescribeContext() *KwDescribeContext { + var p = new(KwDescribeContext) antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1) - p.RuleIndex = CqlParserRULE_kwDescibe + p.RuleIndex = CqlParserRULE_kwDescribe return p } -func InitEmptyKwDescibeContext(p *KwDescibeContext) { +func InitEmptyKwDescribeContext(p *KwDescribeContext) { antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, nil, -1) - p.RuleIndex = CqlParserRULE_kwDescibe + p.RuleIndex = CqlParserRULE_kwDescribe } -func (*KwDescibeContext) IsKwDescibeContext() {} +func (*KwDescribeContext) IsKwDescribeContext() {} -func NewKwDescibeContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *KwDescibeContext { - var p = new(KwDescibeContext) +func NewKwDescribeContext(parser antlr.Parser, parent antlr.ParserRuleContext, invokingState int) *KwDescribeContext { + var p = new(KwDescribeContext) antlr.InitBaseParserRuleContext(&p.BaseParserRuleContext, parent, invokingState) p.parser = parser - p.RuleIndex = CqlParserRULE_kwDescibe + p.RuleIndex = CqlParserRULE_kwDescribe return p } -func (s *KwDescibeContext) GetParser() antlr.Parser { return s.parser } +func (s *KwDescribeContext) GetParser() antlr.Parser { return s.parser } -func (s *KwDescibeContext) K_DESCRIBE() antlr.TerminalNode { +func (s *KwDescribeContext) K_DESCRIBE() antlr.TerminalNode { return s.GetToken(CqlParserK_DESCRIBE, 0) } -func (s *KwDescibeContext) GetRuleContext() antlr.RuleContext { +func (s *KwDescribeContext) GetRuleContext() antlr.RuleContext { return s } -func (s *KwDescibeContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string { +func (s *KwDescribeContext) ToStringTree(ruleNames []string, recog antlr.Recognizer) string { return antlr.TreesStringTree(s, ruleNames, recog) } -func (s *KwDescibeContext) EnterRule(listener antlr.ParseTreeListener) { +func (s *KwDescribeContext) EnterRule(listener antlr.ParseTreeListener) { if listenerT, ok := listener.(CqlParserListener); ok { - listenerT.EnterKwDescibe(s) + listenerT.EnterKwDescribe(s) } } -func (s *KwDescibeContext) ExitRule(listener antlr.ParseTreeListener) { +func (s *KwDescribeContext) ExitRule(listener antlr.ParseTreeListener) { if listenerT, ok := listener.(CqlParserListener); ok { - listenerT.ExitKwDescibe(s) + listenerT.ExitKwDescribe(s) } } -func (s *KwDescibeContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { +func (s *KwDescribeContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { switch t := visitor.(type) { case CqlParserVisitor: - return t.VisitKwDescibe(s) + return t.VisitKwDescribe(s) default: return t.VisitChildren(s) } } -func (p *CqlParser) KwDescibe() (localctx IKwDescibeContext) { - localctx = NewKwDescibeContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 386, CqlParserRULE_kwDescibe) +func (p *CqlParser) KwDescribe() (localctx IKwDescribeContext) { + localctx = NewKwDescribeContext(p, p.GetParserRuleContext(), p.GetState()) + p.EnterRule(localctx, 400, CqlParserRULE_kwDescribe) p.EnterOuterAlt(localctx, 1) { - p.SetState(2151) + p.SetState(2255) p.Match(CqlParserK_DESCRIBE) if p.HasError() { // Recognition error - abort rule @@ -40674,10 +42241,10 @@ func (s *KwDistinctContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) KwDistinct() (localctx IKwDistinctContext) { localctx = NewKwDistinctContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 388, CqlParserRULE_kwDistinct) + p.EnterRule(localctx, 402, CqlParserRULE_kwDistinct) p.EnterOuterAlt(localctx, 1) { - p.SetState(2153) + p.SetState(2257) p.Match(CqlParserK_DISTINCT) if p.HasError() { // Recognition error - abort rule @@ -40780,10 +42347,10 @@ func (s *KwDropContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) KwDrop() (localctx IKwDropContext) { localctx = NewKwDropContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 390, CqlParserRULE_kwDrop) + p.EnterRule(localctx, 404, CqlParserRULE_kwDrop) p.EnterOuterAlt(localctx, 1) { - p.SetState(2155) + p.SetState(2259) p.Match(CqlParserK_DROP) if p.HasError() { // Recognition error - abort rule @@ -40886,10 +42453,10 @@ func (s *KwDurableWritesContext) Accept(visitor antlr.ParseTreeVisitor) interfac func (p *CqlParser) KwDurableWrites() (localctx IKwDurableWritesContext) { localctx = NewKwDurableWritesContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 392, CqlParserRULE_kwDurableWrites) + p.EnterRule(localctx, 406, CqlParserRULE_kwDurableWrites) p.EnterOuterAlt(localctx, 1) { - p.SetState(2157) + p.SetState(2261) p.Match(CqlParserK_DURABLE_WRITES) if p.HasError() { // Recognition error - abort rule @@ -40992,10 +42559,10 @@ func (s *KwEntriesContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) KwEntries() (localctx IKwEntriesContext) { localctx = NewKwEntriesContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 394, CqlParserRULE_kwEntries) + p.EnterRule(localctx, 408, CqlParserRULE_kwEntries) p.EnterOuterAlt(localctx, 1) { - p.SetState(2159) + p.SetState(2263) p.Match(CqlParserK_ENTRIES) if p.HasError() { // Recognition error - abort rule @@ -41098,10 +42665,10 @@ func (s *KwExecuteContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) KwExecute() (localctx IKwExecuteContext) { localctx = NewKwExecuteContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 396, CqlParserRULE_kwExecute) + p.EnterRule(localctx, 410, CqlParserRULE_kwExecute) p.EnterOuterAlt(localctx, 1) { - p.SetState(2161) + p.SetState(2265) p.Match(CqlParserK_EXECUTE) if p.HasError() { // Recognition error - abort rule @@ -41204,10 +42771,10 @@ func (s *KwExistsContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) KwExists() (localctx IKwExistsContext) { localctx = NewKwExistsContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 398, CqlParserRULE_kwExists) + p.EnterRule(localctx, 412, CqlParserRULE_kwExists) p.EnterOuterAlt(localctx, 1) { - p.SetState(2163) + p.SetState(2267) p.Match(CqlParserK_EXISTS) if p.HasError() { // Recognition error - abort rule @@ -41310,10 +42877,10 @@ func (s *KwFilteringContext) Accept(visitor antlr.ParseTreeVisitor) interface{} func (p *CqlParser) KwFiltering() (localctx IKwFilteringContext) { localctx = NewKwFilteringContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 400, CqlParserRULE_kwFiltering) + p.EnterRule(localctx, 414, CqlParserRULE_kwFiltering) p.EnterOuterAlt(localctx, 1) { - p.SetState(2165) + p.SetState(2269) p.Match(CqlParserK_FILTERING) if p.HasError() { // Recognition error - abort rule @@ -41416,10 +42983,10 @@ func (s *KwFinalfuncContext) Accept(visitor antlr.ParseTreeVisitor) interface{} func (p *CqlParser) KwFinalfunc() (localctx IKwFinalfuncContext) { localctx = NewKwFinalfuncContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 402, CqlParserRULE_kwFinalfunc) + p.EnterRule(localctx, 416, CqlParserRULE_kwFinalfunc) p.EnterOuterAlt(localctx, 1) { - p.SetState(2167) + p.SetState(2271) p.Match(CqlParserK_FINALFUNC) if p.HasError() { // Recognition error - abort rule @@ -41522,10 +43089,10 @@ func (s *KwFromContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) KwFrom() (localctx IKwFromContext) { localctx = NewKwFromContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 404, CqlParserRULE_kwFrom) + p.EnterRule(localctx, 418, CqlParserRULE_kwFrom) p.EnterOuterAlt(localctx, 1) { - p.SetState(2169) + p.SetState(2273) p.Match(CqlParserK_FROM) if p.HasError() { // Recognition error - abort rule @@ -41628,10 +43195,10 @@ func (s *KwFullContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) KwFull() (localctx IKwFullContext) { localctx = NewKwFullContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 406, CqlParserRULE_kwFull) + p.EnterRule(localctx, 420, CqlParserRULE_kwFull) p.EnterOuterAlt(localctx, 1) { - p.SetState(2171) + p.SetState(2275) p.Match(CqlParserK_FULL) if p.HasError() { // Recognition error - abort rule @@ -41734,10 +43301,10 @@ func (s *KwFunctionContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) KwFunction() (localctx IKwFunctionContext) { localctx = NewKwFunctionContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 408, CqlParserRULE_kwFunction) + p.EnterRule(localctx, 422, CqlParserRULE_kwFunction) p.EnterOuterAlt(localctx, 1) { - p.SetState(2173) + p.SetState(2277) p.Match(CqlParserK_FUNCTION) if p.HasError() { // Recognition error - abort rule @@ -41840,10 +43407,10 @@ func (s *KwFunctionsContext) Accept(visitor antlr.ParseTreeVisitor) interface{} func (p *CqlParser) KwFunctions() (localctx IKwFunctionsContext) { localctx = NewKwFunctionsContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 410, CqlParserRULE_kwFunctions) + p.EnterRule(localctx, 424, CqlParserRULE_kwFunctions) p.EnterOuterAlt(localctx, 1) { - p.SetState(2175) + p.SetState(2279) p.Match(CqlParserK_FUNCTIONS) if p.HasError() { // Recognition error - abort rule @@ -41946,10 +43513,10 @@ func (s *KwGrantContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) KwGrant() (localctx IKwGrantContext) { localctx = NewKwGrantContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 412, CqlParserRULE_kwGrant) + p.EnterRule(localctx, 426, CqlParserRULE_kwGrant) p.EnterOuterAlt(localctx, 1) { - p.SetState(2177) + p.SetState(2281) p.Match(CqlParserK_GRANT) if p.HasError() { // Recognition error - abort rule @@ -42052,10 +43619,10 @@ func (s *KwIfContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) KwIf() (localctx IKwIfContext) { localctx = NewKwIfContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 414, CqlParserRULE_kwIf) + p.EnterRule(localctx, 428, CqlParserRULE_kwIf) p.EnterOuterAlt(localctx, 1) { - p.SetState(2179) + p.SetState(2283) p.Match(CqlParserK_IF) if p.HasError() { // Recognition error - abort rule @@ -42158,10 +43725,10 @@ func (s *KwInContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) KwIn() (localctx IKwInContext) { localctx = NewKwInContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 416, CqlParserRULE_kwIn) + p.EnterRule(localctx, 430, CqlParserRULE_kwIn) p.EnterOuterAlt(localctx, 1) { - p.SetState(2181) + p.SetState(2285) p.Match(CqlParserK_IN) if p.HasError() { // Recognition error - abort rule @@ -42264,10 +43831,10 @@ func (s *KwIndexContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) KwIndex() (localctx IKwIndexContext) { localctx = NewKwIndexContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 418, CqlParserRULE_kwIndex) + p.EnterRule(localctx, 432, CqlParserRULE_kwIndex) p.EnterOuterAlt(localctx, 1) { - p.SetState(2183) + p.SetState(2287) p.Match(CqlParserK_INDEX) if p.HasError() { // Recognition error - abort rule @@ -42370,10 +43937,10 @@ func (s *KwInitcondContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) KwInitcond() (localctx IKwInitcondContext) { localctx = NewKwInitcondContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 420, CqlParserRULE_kwInitcond) + p.EnterRule(localctx, 434, CqlParserRULE_kwInitcond) p.EnterOuterAlt(localctx, 1) { - p.SetState(2185) + p.SetState(2289) p.Match(CqlParserK_INITCOND) if p.HasError() { // Recognition error - abort rule @@ -42476,10 +44043,10 @@ func (s *KwInputContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) KwInput() (localctx IKwInputContext) { localctx = NewKwInputContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 422, CqlParserRULE_kwInput) + p.EnterRule(localctx, 436, CqlParserRULE_kwInput) p.EnterOuterAlt(localctx, 1) { - p.SetState(2187) + p.SetState(2291) p.Match(CqlParserK_INPUT) if p.HasError() { // Recognition error - abort rule @@ -42582,10 +44149,10 @@ func (s *KwInsertContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) KwInsert() (localctx IKwInsertContext) { localctx = NewKwInsertContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 424, CqlParserRULE_kwInsert) + p.EnterRule(localctx, 438, CqlParserRULE_kwInsert) p.EnterOuterAlt(localctx, 1) { - p.SetState(2189) + p.SetState(2293) p.Match(CqlParserK_INSERT) if p.HasError() { // Recognition error - abort rule @@ -42688,10 +44255,10 @@ func (s *KwIntoContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) KwInto() (localctx IKwIntoContext) { localctx = NewKwIntoContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 426, CqlParserRULE_kwInto) + p.EnterRule(localctx, 440, CqlParserRULE_kwInto) p.EnterOuterAlt(localctx, 1) { - p.SetState(2191) + p.SetState(2295) p.Match(CqlParserK_INTO) if p.HasError() { // Recognition error - abort rule @@ -42794,10 +44361,10 @@ func (s *KwIsContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) KwIs() (localctx IKwIsContext) { localctx = NewKwIsContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 428, CqlParserRULE_kwIs) + p.EnterRule(localctx, 442, CqlParserRULE_kwIs) p.EnterOuterAlt(localctx, 1) { - p.SetState(2193) + p.SetState(2297) p.Match(CqlParserK_IS) if p.HasError() { // Recognition error - abort rule @@ -42900,10 +44467,10 @@ func (s *KwJsonContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) KwJson() (localctx IKwJsonContext) { localctx = NewKwJsonContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 430, CqlParserRULE_kwJson) + p.EnterRule(localctx, 444, CqlParserRULE_kwJson) p.EnterOuterAlt(localctx, 1) { - p.SetState(2195) + p.SetState(2299) p.Match(CqlParserK_JSON) if p.HasError() { // Recognition error - abort rule @@ -43006,10 +44573,10 @@ func (s *KwKeyContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) KwKey() (localctx IKwKeyContext) { localctx = NewKwKeyContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 432, CqlParserRULE_kwKey) + p.EnterRule(localctx, 446, CqlParserRULE_kwKey) p.EnterOuterAlt(localctx, 1) { - p.SetState(2197) + p.SetState(2301) p.Match(CqlParserK_KEY) if p.HasError() { // Recognition error - abort rule @@ -43112,10 +44679,10 @@ func (s *KwKeysContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) KwKeys() (localctx IKwKeysContext) { localctx = NewKwKeysContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 434, CqlParserRULE_kwKeys) + p.EnterRule(localctx, 448, CqlParserRULE_kwKeys) p.EnterOuterAlt(localctx, 1) { - p.SetState(2199) + p.SetState(2303) p.Match(CqlParserK_KEYS) if p.HasError() { // Recognition error - abort rule @@ -43218,10 +44785,10 @@ func (s *KwKeyspaceContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) KwKeyspace() (localctx IKwKeyspaceContext) { localctx = NewKwKeyspaceContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 436, CqlParserRULE_kwKeyspace) + p.EnterRule(localctx, 450, CqlParserRULE_kwKeyspace) p.EnterOuterAlt(localctx, 1) { - p.SetState(2201) + p.SetState(2305) p.Match(CqlParserK_KEYSPACE) if p.HasError() { // Recognition error - abort rule @@ -43324,10 +44891,10 @@ func (s *KwKeyspacesContext) Accept(visitor antlr.ParseTreeVisitor) interface{} func (p *CqlParser) KwKeyspaces() (localctx IKwKeyspacesContext) { localctx = NewKwKeyspacesContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 438, CqlParserRULE_kwKeyspaces) + p.EnterRule(localctx, 452, CqlParserRULE_kwKeyspaces) p.EnterOuterAlt(localctx, 1) { - p.SetState(2203) + p.SetState(2307) p.Match(CqlParserK_KEYSPACES) if p.HasError() { // Recognition error - abort rule @@ -43430,10 +44997,10 @@ func (s *KwLanguageContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) KwLanguage() (localctx IKwLanguageContext) { localctx = NewKwLanguageContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 440, CqlParserRULE_kwLanguage) + p.EnterRule(localctx, 454, CqlParserRULE_kwLanguage) p.EnterOuterAlt(localctx, 1) { - p.SetState(2205) + p.SetState(2309) p.Match(CqlParserK_LANGUAGE) if p.HasError() { // Recognition error - abort rule @@ -43536,10 +45103,10 @@ func (s *KwLimitContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) KwLimit() (localctx IKwLimitContext) { localctx = NewKwLimitContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 442, CqlParserRULE_kwLimit) + p.EnterRule(localctx, 456, CqlParserRULE_kwLimit) p.EnterOuterAlt(localctx, 1) { - p.SetState(2207) + p.SetState(2311) p.Match(CqlParserK_LIMIT) if p.HasError() { // Recognition error - abort rule @@ -43642,10 +45209,10 @@ func (s *KwListContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) KwList() (localctx IKwListContext) { localctx = NewKwListContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 444, CqlParserRULE_kwList) + p.EnterRule(localctx, 458, CqlParserRULE_kwList) p.EnterOuterAlt(localctx, 1) { - p.SetState(2209) + p.SetState(2313) p.Match(CqlParserK_LIST) if p.HasError() { // Recognition error - abort rule @@ -43748,10 +45315,10 @@ func (s *KwLoggedContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) KwLogged() (localctx IKwLoggedContext) { localctx = NewKwLoggedContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 446, CqlParserRULE_kwLogged) + p.EnterRule(localctx, 460, CqlParserRULE_kwLogged) p.EnterOuterAlt(localctx, 1) { - p.SetState(2211) + p.SetState(2315) p.Match(CqlParserK_LOGGED) if p.HasError() { // Recognition error - abort rule @@ -43854,10 +45421,10 @@ func (s *KwLoginContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) KwLogin() (localctx IKwLoginContext) { localctx = NewKwLoginContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 448, CqlParserRULE_kwLogin) + p.EnterRule(localctx, 462, CqlParserRULE_kwLogin) p.EnterOuterAlt(localctx, 1) { - p.SetState(2213) + p.SetState(2317) p.Match(CqlParserK_LOGIN) if p.HasError() { // Recognition error - abort rule @@ -43960,10 +45527,10 @@ func (s *KwMaterializedContext) Accept(visitor antlr.ParseTreeVisitor) interface func (p *CqlParser) KwMaterialized() (localctx IKwMaterializedContext) { localctx = NewKwMaterializedContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 450, CqlParserRULE_kwMaterialized) + p.EnterRule(localctx, 464, CqlParserRULE_kwMaterialized) p.EnterOuterAlt(localctx, 1) { - p.SetState(2215) + p.SetState(2319) p.Match(CqlParserK_MATERIALIZED) if p.HasError() { // Recognition error - abort rule @@ -44066,10 +45633,10 @@ func (s *KwModifyContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) KwModify() (localctx IKwModifyContext) { localctx = NewKwModifyContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 452, CqlParserRULE_kwModify) + p.EnterRule(localctx, 466, CqlParserRULE_kwModify) p.EnterOuterAlt(localctx, 1) { - p.SetState(2217) + p.SetState(2321) p.Match(CqlParserK_MODIFY) if p.HasError() { // Recognition error - abort rule @@ -44172,10 +45739,10 @@ func (s *KwNosuperuserContext) Accept(visitor antlr.ParseTreeVisitor) interface{ func (p *CqlParser) KwNosuperuser() (localctx IKwNosuperuserContext) { localctx = NewKwNosuperuserContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 454, CqlParserRULE_kwNosuperuser) + p.EnterRule(localctx, 468, CqlParserRULE_kwNosuperuser) p.EnterOuterAlt(localctx, 1) { - p.SetState(2219) + p.SetState(2323) p.Match(CqlParserK_NOSUPERUSER) if p.HasError() { // Recognition error - abort rule @@ -44278,10 +45845,10 @@ func (s *KwNorecursiveContext) Accept(visitor antlr.ParseTreeVisitor) interface{ func (p *CqlParser) KwNorecursive() (localctx IKwNorecursiveContext) { localctx = NewKwNorecursiveContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 456, CqlParserRULE_kwNorecursive) + p.EnterRule(localctx, 470, CqlParserRULE_kwNorecursive) p.EnterOuterAlt(localctx, 1) { - p.SetState(2221) + p.SetState(2325) p.Match(CqlParserK_NORECURSIVE) if p.HasError() { // Recognition error - abort rule @@ -44384,10 +45951,10 @@ func (s *KwNotContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) KwNot() (localctx IKwNotContext) { localctx = NewKwNotContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 458, CqlParserRULE_kwNot) + p.EnterRule(localctx, 472, CqlParserRULE_kwNot) p.EnterOuterAlt(localctx, 1) { - p.SetState(2223) + p.SetState(2327) p.Match(CqlParserK_NOT) if p.HasError() { // Recognition error - abort rule @@ -44490,10 +46057,10 @@ func (s *KwNullContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) KwNull() (localctx IKwNullContext) { localctx = NewKwNullContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 460, CqlParserRULE_kwNull) + p.EnterRule(localctx, 474, CqlParserRULE_kwNull) p.EnterOuterAlt(localctx, 1) { - p.SetState(2225) + p.SetState(2329) p.Match(CqlParserK_NULL) if p.HasError() { // Recognition error - abort rule @@ -44596,10 +46163,10 @@ func (s *KwOfContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) KwOf() (localctx IKwOfContext) { localctx = NewKwOfContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 462, CqlParserRULE_kwOf) + p.EnterRule(localctx, 476, CqlParserRULE_kwOf) p.EnterOuterAlt(localctx, 1) { - p.SetState(2227) + p.SetState(2331) p.Match(CqlParserK_OF) if p.HasError() { // Recognition error - abort rule @@ -44702,10 +46269,10 @@ func (s *KwOnContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) KwOn() (localctx IKwOnContext) { localctx = NewKwOnContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 464, CqlParserRULE_kwOn) + p.EnterRule(localctx, 478, CqlParserRULE_kwOn) p.EnterOuterAlt(localctx, 1) { - p.SetState(2229) + p.SetState(2333) p.Match(CqlParserK_ON) if p.HasError() { // Recognition error - abort rule @@ -44808,10 +46375,10 @@ func (s *KwOptionsContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) KwOptions() (localctx IKwOptionsContext) { localctx = NewKwOptionsContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 466, CqlParserRULE_kwOptions) + p.EnterRule(localctx, 480, CqlParserRULE_kwOptions) p.EnterOuterAlt(localctx, 1) { - p.SetState(2231) + p.SetState(2335) p.Match(CqlParserK_OPTIONS) if p.HasError() { // Recognition error - abort rule @@ -44914,10 +46481,10 @@ func (s *KwOrContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) KwOr() (localctx IKwOrContext) { localctx = NewKwOrContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 468, CqlParserRULE_kwOr) + p.EnterRule(localctx, 482, CqlParserRULE_kwOr) p.EnterOuterAlt(localctx, 1) { - p.SetState(2233) + p.SetState(2337) p.Match(CqlParserK_OR) if p.HasError() { // Recognition error - abort rule @@ -45020,10 +46587,10 @@ func (s *KwOrderContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) KwOrder() (localctx IKwOrderContext) { localctx = NewKwOrderContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 470, CqlParserRULE_kwOrder) + p.EnterRule(localctx, 484, CqlParserRULE_kwOrder) p.EnterOuterAlt(localctx, 1) { - p.SetState(2235) + p.SetState(2339) p.Match(CqlParserK_ORDER) if p.HasError() { // Recognition error - abort rule @@ -45126,10 +46693,10 @@ func (s *KwPasswordContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) KwPassword() (localctx IKwPasswordContext) { localctx = NewKwPasswordContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 472, CqlParserRULE_kwPassword) + p.EnterRule(localctx, 486, CqlParserRULE_kwPassword) p.EnterOuterAlt(localctx, 1) { - p.SetState(2237) + p.SetState(2341) p.Match(CqlParserK_PASSWORD) if p.HasError() { // Recognition error - abort rule @@ -45232,10 +46799,10 @@ func (s *KwPrimaryContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) KwPrimary() (localctx IKwPrimaryContext) { localctx = NewKwPrimaryContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 474, CqlParserRULE_kwPrimary) + p.EnterRule(localctx, 488, CqlParserRULE_kwPrimary) p.EnterOuterAlt(localctx, 1) { - p.SetState(2239) + p.SetState(2343) p.Match(CqlParserK_PRIMARY) if p.HasError() { // Recognition error - abort rule @@ -45338,10 +46905,10 @@ func (s *KwRenameContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) KwRename() (localctx IKwRenameContext) { localctx = NewKwRenameContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 476, CqlParserRULE_kwRename) + p.EnterRule(localctx, 490, CqlParserRULE_kwRename) p.EnterOuterAlt(localctx, 1) { - p.SetState(2241) + p.SetState(2345) p.Match(CqlParserK_RENAME) if p.HasError() { // Recognition error - abort rule @@ -45444,10 +47011,10 @@ func (s *KwReplaceContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) KwReplace() (localctx IKwReplaceContext) { localctx = NewKwReplaceContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 478, CqlParserRULE_kwReplace) + p.EnterRule(localctx, 492, CqlParserRULE_kwReplace) p.EnterOuterAlt(localctx, 1) { - p.SetState(2243) + p.SetState(2347) p.Match(CqlParserK_REPLACE) if p.HasError() { // Recognition error - abort rule @@ -45550,10 +47117,10 @@ func (s *KwReplicationContext) Accept(visitor antlr.ParseTreeVisitor) interface{ func (p *CqlParser) KwReplication() (localctx IKwReplicationContext) { localctx = NewKwReplicationContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 480, CqlParserRULE_kwReplication) + p.EnterRule(localctx, 494, CqlParserRULE_kwReplication) p.EnterOuterAlt(localctx, 1) { - p.SetState(2245) + p.SetState(2349) p.Match(CqlParserK_REPLICATION) if p.HasError() { // Recognition error - abort rule @@ -45656,10 +47223,10 @@ func (s *KwReturnsContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) KwReturns() (localctx IKwReturnsContext) { localctx = NewKwReturnsContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 482, CqlParserRULE_kwReturns) + p.EnterRule(localctx, 496, CqlParserRULE_kwReturns) p.EnterOuterAlt(localctx, 1) { - p.SetState(2247) + p.SetState(2351) p.Match(CqlParserK_RETURNS) if p.HasError() { // Recognition error - abort rule @@ -45762,10 +47329,10 @@ func (s *KwRoleContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) KwRole() (localctx IKwRoleContext) { localctx = NewKwRoleContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 484, CqlParserRULE_kwRole) + p.EnterRule(localctx, 498, CqlParserRULE_kwRole) p.EnterOuterAlt(localctx, 1) { - p.SetState(2249) + p.SetState(2353) p.Match(CqlParserK_ROLE) if p.HasError() { // Recognition error - abort rule @@ -45868,10 +47435,10 @@ func (s *KwRolesContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) KwRoles() (localctx IKwRolesContext) { localctx = NewKwRolesContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 486, CqlParserRULE_kwRoles) + p.EnterRule(localctx, 500, CqlParserRULE_kwRoles) p.EnterOuterAlt(localctx, 1) { - p.SetState(2251) + p.SetState(2355) p.Match(CqlParserK_ROLES) if p.HasError() { // Recognition error - abort rule @@ -45974,10 +47541,10 @@ func (s *KwSelectContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) KwSelect() (localctx IKwSelectContext) { localctx = NewKwSelectContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 488, CqlParserRULE_kwSelect) + p.EnterRule(localctx, 502, CqlParserRULE_kwSelect) p.EnterOuterAlt(localctx, 1) { - p.SetState(2253) + p.SetState(2357) p.Match(CqlParserK_SELECT) if p.HasError() { // Recognition error - abort rule @@ -46080,10 +47647,10 @@ func (s *KwSetContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) KwSet() (localctx IKwSetContext) { localctx = NewKwSetContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 490, CqlParserRULE_kwSet) + p.EnterRule(localctx, 504, CqlParserRULE_kwSet) p.EnterOuterAlt(localctx, 1) { - p.SetState(2255) + p.SetState(2359) p.Match(CqlParserK_SET) if p.HasError() { // Recognition error - abort rule @@ -46186,10 +47753,10 @@ func (s *KwSfuncContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) KwSfunc() (localctx IKwSfuncContext) { localctx = NewKwSfuncContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 492, CqlParserRULE_kwSfunc) + p.EnterRule(localctx, 506, CqlParserRULE_kwSfunc) p.EnterOuterAlt(localctx, 1) { - p.SetState(2257) + p.SetState(2361) p.Match(CqlParserK_SFUNC) if p.HasError() { // Recognition error - abort rule @@ -46292,10 +47859,10 @@ func (s *KwStorageContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) KwStorage() (localctx IKwStorageContext) { localctx = NewKwStorageContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 494, CqlParserRULE_kwStorage) + p.EnterRule(localctx, 508, CqlParserRULE_kwStorage) p.EnterOuterAlt(localctx, 1) { - p.SetState(2259) + p.SetState(2363) p.Match(CqlParserK_STORAGE) if p.HasError() { // Recognition error - abort rule @@ -46398,10 +47965,10 @@ func (s *KwStypeContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) KwStype() (localctx IKwStypeContext) { localctx = NewKwStypeContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 496, CqlParserRULE_kwStype) + p.EnterRule(localctx, 510, CqlParserRULE_kwStype) p.EnterOuterAlt(localctx, 1) { - p.SetState(2261) + p.SetState(2365) p.Match(CqlParserK_STYPE) if p.HasError() { // Recognition error - abort rule @@ -46504,10 +48071,10 @@ func (s *KwSuperuserContext) Accept(visitor antlr.ParseTreeVisitor) interface{} func (p *CqlParser) KwSuperuser() (localctx IKwSuperuserContext) { localctx = NewKwSuperuserContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 498, CqlParserRULE_kwSuperuser) + p.EnterRule(localctx, 512, CqlParserRULE_kwSuperuser) p.EnterOuterAlt(localctx, 1) { - p.SetState(2263) + p.SetState(2367) p.Match(CqlParserK_SUPERUSER) if p.HasError() { // Recognition error - abort rule @@ -46610,10 +48177,10 @@ func (s *KwTableContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) KwTable() (localctx IKwTableContext) { localctx = NewKwTableContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 500, CqlParserRULE_kwTable) + p.EnterRule(localctx, 514, CqlParserRULE_kwTable) p.EnterOuterAlt(localctx, 1) { - p.SetState(2265) + p.SetState(2369) p.Match(CqlParserK_TABLE) if p.HasError() { // Recognition error - abort rule @@ -46716,10 +48283,10 @@ func (s *KwTimestampContext) Accept(visitor antlr.ParseTreeVisitor) interface{} func (p *CqlParser) KwTimestamp() (localctx IKwTimestampContext) { localctx = NewKwTimestampContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 502, CqlParserRULE_kwTimestamp) + p.EnterRule(localctx, 516, CqlParserRULE_kwTimestamp) p.EnterOuterAlt(localctx, 1) { - p.SetState(2267) + p.SetState(2371) p.Match(CqlParserK_TIMESTAMP) if p.HasError() { // Recognition error - abort rule @@ -46822,10 +48389,10 @@ func (s *KwToContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) KwTo() (localctx IKwToContext) { localctx = NewKwToContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 504, CqlParserRULE_kwTo) + p.EnterRule(localctx, 518, CqlParserRULE_kwTo) p.EnterOuterAlt(localctx, 1) { - p.SetState(2269) + p.SetState(2373) p.Match(CqlParserK_TO) if p.HasError() { // Recognition error - abort rule @@ -46928,10 +48495,10 @@ func (s *KwTriggerContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) KwTrigger() (localctx IKwTriggerContext) { localctx = NewKwTriggerContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 506, CqlParserRULE_kwTrigger) + p.EnterRule(localctx, 520, CqlParserRULE_kwTrigger) p.EnterOuterAlt(localctx, 1) { - p.SetState(2271) + p.SetState(2375) p.Match(CqlParserK_TRIGGER) if p.HasError() { // Recognition error - abort rule @@ -47034,10 +48601,10 @@ func (s *KwTruncateContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) KwTruncate() (localctx IKwTruncateContext) { localctx = NewKwTruncateContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 508, CqlParserRULE_kwTruncate) + p.EnterRule(localctx, 522, CqlParserRULE_kwTruncate) p.EnterOuterAlt(localctx, 1) { - p.SetState(2273) + p.SetState(2377) p.Match(CqlParserK_TRUNCATE) if p.HasError() { // Recognition error - abort rule @@ -47140,10 +48707,10 @@ func (s *KwTtlContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) KwTtl() (localctx IKwTtlContext) { localctx = NewKwTtlContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 510, CqlParserRULE_kwTtl) + p.EnterRule(localctx, 524, CqlParserRULE_kwTtl) p.EnterOuterAlt(localctx, 1) { - p.SetState(2275) + p.SetState(2379) p.Match(CqlParserK_TTL) if p.HasError() { // Recognition error - abort rule @@ -47246,10 +48813,10 @@ func (s *KwTypeContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) KwType() (localctx IKwTypeContext) { localctx = NewKwTypeContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 512, CqlParserRULE_kwType) + p.EnterRule(localctx, 526, CqlParserRULE_kwType) p.EnterOuterAlt(localctx, 1) { - p.SetState(2277) + p.SetState(2381) p.Match(CqlParserK_TYPE) if p.HasError() { // Recognition error - abort rule @@ -47352,10 +48919,10 @@ func (s *KwUnloggedContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) KwUnlogged() (localctx IKwUnloggedContext) { localctx = NewKwUnloggedContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 514, CqlParserRULE_kwUnlogged) + p.EnterRule(localctx, 528, CqlParserRULE_kwUnlogged) p.EnterOuterAlt(localctx, 1) { - p.SetState(2279) + p.SetState(2383) p.Match(CqlParserK_UNLOGGED) if p.HasError() { // Recognition error - abort rule @@ -47458,10 +49025,10 @@ func (s *KwUpdateContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) KwUpdate() (localctx IKwUpdateContext) { localctx = NewKwUpdateContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 516, CqlParserRULE_kwUpdate) + p.EnterRule(localctx, 530, CqlParserRULE_kwUpdate) p.EnterOuterAlt(localctx, 1) { - p.SetState(2281) + p.SetState(2385) p.Match(CqlParserK_UPDATE) if p.HasError() { // Recognition error - abort rule @@ -47564,10 +49131,10 @@ func (s *KwUseContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) KwUse() (localctx IKwUseContext) { localctx = NewKwUseContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 518, CqlParserRULE_kwUse) + p.EnterRule(localctx, 532, CqlParserRULE_kwUse) p.EnterOuterAlt(localctx, 1) { - p.SetState(2283) + p.SetState(2387) p.Match(CqlParserK_USE) if p.HasError() { // Recognition error - abort rule @@ -47670,10 +49237,10 @@ func (s *KwUserContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) KwUser() (localctx IKwUserContext) { localctx = NewKwUserContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 520, CqlParserRULE_kwUser) + p.EnterRule(localctx, 534, CqlParserRULE_kwUser) p.EnterOuterAlt(localctx, 1) { - p.SetState(2285) + p.SetState(2389) p.Match(CqlParserK_USER) if p.HasError() { // Recognition error - abort rule @@ -47776,10 +49343,10 @@ func (s *KwUsingContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) KwUsing() (localctx IKwUsingContext) { localctx = NewKwUsingContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 522, CqlParserRULE_kwUsing) + p.EnterRule(localctx, 536, CqlParserRULE_kwUsing) p.EnterOuterAlt(localctx, 1) { - p.SetState(2287) + p.SetState(2391) p.Match(CqlParserK_USING) if p.HasError() { // Recognition error - abort rule @@ -47882,10 +49449,10 @@ func (s *KwValuesContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) KwValues() (localctx IKwValuesContext) { localctx = NewKwValuesContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 524, CqlParserRULE_kwValues) + p.EnterRule(localctx, 538, CqlParserRULE_kwValues) p.EnterOuterAlt(localctx, 1) { - p.SetState(2289) + p.SetState(2393) p.Match(CqlParserK_VALUES) if p.HasError() { // Recognition error - abort rule @@ -47988,10 +49555,10 @@ func (s *KwViewContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) KwView() (localctx IKwViewContext) { localctx = NewKwViewContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 526, CqlParserRULE_kwView) + p.EnterRule(localctx, 540, CqlParserRULE_kwView) p.EnterOuterAlt(localctx, 1) { - p.SetState(2291) + p.SetState(2395) p.Match(CqlParserK_VIEW) if p.HasError() { // Recognition error - abort rule @@ -48094,10 +49661,10 @@ func (s *KwWhereContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) KwWhere() (localctx IKwWhereContext) { localctx = NewKwWhereContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 528, CqlParserRULE_kwWhere) + p.EnterRule(localctx, 542, CqlParserRULE_kwWhere) p.EnterOuterAlt(localctx, 1) { - p.SetState(2293) + p.SetState(2397) p.Match(CqlParserK_WHERE) if p.HasError() { // Recognition error - abort rule @@ -48200,10 +49767,10 @@ func (s *KwWithContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) KwWith() (localctx IKwWithContext) { localctx = NewKwWithContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 530, CqlParserRULE_kwWith) + p.EnterRule(localctx, 544, CqlParserRULE_kwWith) p.EnterOuterAlt(localctx, 1) { - p.SetState(2295) + p.SetState(2399) p.Match(CqlParserK_WITH) if p.HasError() { // Recognition error - abort rule @@ -48306,10 +49873,10 @@ func (s *KwRevokeContext) Accept(visitor antlr.ParseTreeVisitor) interface{} { func (p *CqlParser) KwRevoke() (localctx IKwRevokeContext) { localctx = NewKwRevokeContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 532, CqlParserRULE_kwRevoke) + p.EnterRule(localctx, 546, CqlParserRULE_kwRevoke) p.EnterOuterAlt(localctx, 1) { - p.SetState(2297) + p.SetState(2401) p.Match(CqlParserK_REVOKE) if p.HasError() { // Recognition error - abort rule @@ -48412,10 +49979,10 @@ func (s *SyntaxBracketLrContext) Accept(visitor antlr.ParseTreeVisitor) interfac func (p *CqlParser) SyntaxBracketLr() (localctx ISyntaxBracketLrContext) { localctx = NewSyntaxBracketLrContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 534, CqlParserRULE_syntaxBracketLr) + p.EnterRule(localctx, 548, CqlParserRULE_syntaxBracketLr) p.EnterOuterAlt(localctx, 1) { - p.SetState(2299) + p.SetState(2403) p.Match(CqlParserLR_BRACKET) if p.HasError() { // Recognition error - abort rule @@ -48518,10 +50085,10 @@ func (s *SyntaxBracketRrContext) Accept(visitor antlr.ParseTreeVisitor) interfac func (p *CqlParser) SyntaxBracketRr() (localctx ISyntaxBracketRrContext) { localctx = NewSyntaxBracketRrContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 536, CqlParserRULE_syntaxBracketRr) + p.EnterRule(localctx, 550, CqlParserRULE_syntaxBracketRr) p.EnterOuterAlt(localctx, 1) { - p.SetState(2301) + p.SetState(2405) p.Match(CqlParserRR_BRACKET) if p.HasError() { // Recognition error - abort rule @@ -48624,10 +50191,10 @@ func (s *SyntaxBracketLcContext) Accept(visitor antlr.ParseTreeVisitor) interfac func (p *CqlParser) SyntaxBracketLc() (localctx ISyntaxBracketLcContext) { localctx = NewSyntaxBracketLcContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 538, CqlParserRULE_syntaxBracketLc) + p.EnterRule(localctx, 552, CqlParserRULE_syntaxBracketLc) p.EnterOuterAlt(localctx, 1) { - p.SetState(2303) + p.SetState(2407) p.Match(CqlParserLC_BRACKET) if p.HasError() { // Recognition error - abort rule @@ -48730,10 +50297,10 @@ func (s *SyntaxBracketRcContext) Accept(visitor antlr.ParseTreeVisitor) interfac func (p *CqlParser) SyntaxBracketRc() (localctx ISyntaxBracketRcContext) { localctx = NewSyntaxBracketRcContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 540, CqlParserRULE_syntaxBracketRc) + p.EnterRule(localctx, 554, CqlParserRULE_syntaxBracketRc) p.EnterOuterAlt(localctx, 1) { - p.SetState(2305) + p.SetState(2409) p.Match(CqlParserRC_BRACKET) if p.HasError() { // Recognition error - abort rule @@ -48836,10 +50403,10 @@ func (s *SyntaxBracketLaContext) Accept(visitor antlr.ParseTreeVisitor) interfac func (p *CqlParser) SyntaxBracketLa() (localctx ISyntaxBracketLaContext) { localctx = NewSyntaxBracketLaContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 542, CqlParserRULE_syntaxBracketLa) + p.EnterRule(localctx, 556, CqlParserRULE_syntaxBracketLa) p.EnterOuterAlt(localctx, 1) { - p.SetState(2307) + p.SetState(2411) p.Match(CqlParserOPERATOR_LT) if p.HasError() { // Recognition error - abort rule @@ -48942,10 +50509,10 @@ func (s *SyntaxBracketRaContext) Accept(visitor antlr.ParseTreeVisitor) interfac func (p *CqlParser) SyntaxBracketRa() (localctx ISyntaxBracketRaContext) { localctx = NewSyntaxBracketRaContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 544, CqlParserRULE_syntaxBracketRa) + p.EnterRule(localctx, 558, CqlParserRULE_syntaxBracketRa) p.EnterOuterAlt(localctx, 1) { - p.SetState(2309) + p.SetState(2413) p.Match(CqlParserOPERATOR_GT) if p.HasError() { // Recognition error - abort rule @@ -49048,10 +50615,10 @@ func (s *SyntaxBracketLsContext) Accept(visitor antlr.ParseTreeVisitor) interfac func (p *CqlParser) SyntaxBracketLs() (localctx ISyntaxBracketLsContext) { localctx = NewSyntaxBracketLsContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 546, CqlParserRULE_syntaxBracketLs) + p.EnterRule(localctx, 560, CqlParserRULE_syntaxBracketLs) p.EnterOuterAlt(localctx, 1) { - p.SetState(2311) + p.SetState(2415) p.Match(CqlParserLS_BRACKET) if p.HasError() { // Recognition error - abort rule @@ -49154,10 +50721,10 @@ func (s *SyntaxBracketRsContext) Accept(visitor antlr.ParseTreeVisitor) interfac func (p *CqlParser) SyntaxBracketRs() (localctx ISyntaxBracketRsContext) { localctx = NewSyntaxBracketRsContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 548, CqlParserRULE_syntaxBracketRs) + p.EnterRule(localctx, 562, CqlParserRULE_syntaxBracketRs) p.EnterOuterAlt(localctx, 1) { - p.SetState(2313) + p.SetState(2417) p.Match(CqlParserRS_BRACKET) if p.HasError() { // Recognition error - abort rule @@ -49260,10 +50827,10 @@ func (s *SyntaxCommaContext) Accept(visitor antlr.ParseTreeVisitor) interface{} func (p *CqlParser) SyntaxComma() (localctx ISyntaxCommaContext) { localctx = NewSyntaxCommaContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 550, CqlParserRULE_syntaxComma) + p.EnterRule(localctx, 564, CqlParserRULE_syntaxComma) p.EnterOuterAlt(localctx, 1) { - p.SetState(2315) + p.SetState(2419) p.Match(CqlParserCOMMA) if p.HasError() { // Recognition error - abort rule @@ -49366,10 +50933,10 @@ func (s *SyntaxColonContext) Accept(visitor antlr.ParseTreeVisitor) interface{} func (p *CqlParser) SyntaxColon() (localctx ISyntaxColonContext) { localctx = NewSyntaxColonContext(p, p.GetParserRuleContext(), p.GetState()) - p.EnterRule(localctx, 552, CqlParserRULE_syntaxColon) + p.EnterRule(localctx, 566, CqlParserRULE_syntaxColon) p.EnterOuterAlt(localctx, 1) { - p.SetState(2317) + p.SetState(2421) p.Match(CqlParserCOLON) if p.HasError() { // Recognition error - abort rule diff --git a/cql/cqlparser_base_listener.go b/cql/cqlparser_base_listener.go index 50c8437..dd7c1cc 100644 --- a/cql/cqlparser_base_listener.go +++ b/cql/cqlparser_base_listener.go @@ -618,6 +618,18 @@ func (s *BaseCqlParserListener) EnterCreateIndex(ctx *CreateIndexContext) {} // ExitCreateIndex is called when production createIndex is exited. func (s *BaseCqlParserListener) ExitCreateIndex(ctx *CreateIndexContext) {} +// EnterIndexClass is called when production indexClass is entered. +func (s *BaseCqlParserListener) EnterIndexClass(ctx *IndexClassContext) {} + +// ExitIndexClass is called when production indexClass is exited. +func (s *BaseCqlParserListener) ExitIndexClass(ctx *IndexClassContext) {} + +// EnterIndexOptions is called when production indexOptions is entered. +func (s *BaseCqlParserListener) EnterIndexOptions(ctx *IndexOptionsContext) {} + +// ExitIndexOptions is called when production indexOptions is exited. +func (s *BaseCqlParserListener) ExitIndexOptions(ctx *IndexOptionsContext) {} + // EnterIndexName is called when production indexName is entered. func (s *BaseCqlParserListener) EnterIndexName(ctx *IndexNameContext) {} @@ -630,18 +642,6 @@ func (s *BaseCqlParserListener) EnterIndexColumnSpec(ctx *IndexColumnSpecContext // ExitIndexColumnSpec is called when production indexColumnSpec is exited. func (s *BaseCqlParserListener) ExitIndexColumnSpec(ctx *IndexColumnSpecContext) {} -// EnterIndexKeysSpec is called when production indexKeysSpec is entered. -func (s *BaseCqlParserListener) EnterIndexKeysSpec(ctx *IndexKeysSpecContext) {} - -// ExitIndexKeysSpec is called when production indexKeysSpec is exited. -func (s *BaseCqlParserListener) ExitIndexKeysSpec(ctx *IndexKeysSpecContext) {} - -// EnterIndexEntriesSSpec is called when production indexEntriesSSpec is entered. -func (s *BaseCqlParserListener) EnterIndexEntriesSSpec(ctx *IndexEntriesSSpecContext) {} - -// ExitIndexEntriesSSpec is called when production indexEntriesSSpec is exited. -func (s *BaseCqlParserListener) ExitIndexEntriesSSpec(ctx *IndexEntriesSSpecContext) {} - // EnterIndexFullSpec is called when production indexFullSpec is entered. func (s *BaseCqlParserListener) EnterIndexFullSpec(ctx *IndexFullSpecContext) {} @@ -774,6 +774,12 @@ func (s *BaseCqlParserListener) EnterInsertValuesSpec(ctx *InsertValuesSpecConte // ExitInsertValuesSpec is called when production insertValuesSpec is exited. func (s *BaseCqlParserListener) ExitInsertValuesSpec(ctx *InsertValuesSpecContext) {} +// EnterJsonDefaultUnset is called when production jsonDefaultUnset is entered. +func (s *BaseCqlParserListener) EnterJsonDefaultUnset(ctx *JsonDefaultUnsetContext) {} + +// ExitJsonDefaultUnset is called when production jsonDefaultUnset is exited. +func (s *BaseCqlParserListener) ExitJsonDefaultUnset(ctx *JsonDefaultUnsetContext) {} + // EnterInsertColumnSpec is called when production insertColumnSpec is entered. func (s *BaseCqlParserListener) EnterInsertColumnSpec(ctx *InsertColumnSpecContext) {} @@ -840,6 +846,18 @@ func (s *BaseCqlParserListener) EnterOrderSpecElement(ctx *OrderSpecElementConte // ExitOrderSpecElement is called when production orderSpecElement is exited. func (s *BaseCqlParserListener) ExitOrderSpecElement(ctx *OrderSpecElementContext) {} +// EnterVectorLiteral is called when production vectorLiteral is entered. +func (s *BaseCqlParserListener) EnterVectorLiteral(ctx *VectorLiteralContext) {} + +// ExitVectorLiteral is called when production vectorLiteral is exited. +func (s *BaseCqlParserListener) ExitVectorLiteral(ctx *VectorLiteralContext) {} + +// EnterConstantList is called when production constantList is entered. +func (s *BaseCqlParserListener) EnterConstantList(ctx *ConstantListContext) {} + +// ExitConstantList is called when production constantList is exited. +func (s *BaseCqlParserListener) ExitConstantList(ctx *ConstantListContext) {} + // EnterWhereSpec is called when production whereSpec is entered. func (s *BaseCqlParserListener) EnterWhereSpec(ctx *WhereSpecContext) {} @@ -1170,6 +1188,30 @@ func (s *BaseCqlParserListener) EnterKwCreate(ctx *KwCreateContext) {} // ExitKwCreate is called when production kwCreate is exited. func (s *BaseCqlParserListener) ExitKwCreate(ctx *KwCreateContext) {} +// EnterKwCustom is called when production kwCustom is entered. +func (s *BaseCqlParserListener) EnterKwCustom(ctx *KwCustomContext) {} + +// ExitKwCustom is called when production kwCustom is exited. +func (s *BaseCqlParserListener) ExitKwCustom(ctx *KwCustomContext) {} + +// EnterKwDefault is called when production kwDefault is entered. +func (s *BaseCqlParserListener) EnterKwDefault(ctx *KwDefaultContext) {} + +// ExitKwDefault is called when production kwDefault is exited. +func (s *BaseCqlParserListener) ExitKwDefault(ctx *KwDefaultContext) {} + +// EnterKwUnset is called when production kwUnset is entered. +func (s *BaseCqlParserListener) EnterKwUnset(ctx *KwUnsetContext) {} + +// ExitKwUnset is called when production kwUnset is exited. +func (s *BaseCqlParserListener) ExitKwUnset(ctx *KwUnsetContext) {} + +// EnterKwAnn is called when production kwAnn is entered. +func (s *BaseCqlParserListener) EnterKwAnn(ctx *KwAnnContext) {} + +// ExitKwAnn is called when production kwAnn is exited. +func (s *BaseCqlParserListener) ExitKwAnn(ctx *KwAnnContext) {} + // EnterKwDelete is called when production kwDelete is entered. func (s *BaseCqlParserListener) EnterKwDelete(ctx *KwDeleteContext) {} @@ -1182,11 +1224,11 @@ func (s *BaseCqlParserListener) EnterKwDesc(ctx *KwDescContext) {} // ExitKwDesc is called when production kwDesc is exited. func (s *BaseCqlParserListener) ExitKwDesc(ctx *KwDescContext) {} -// EnterKwDescibe is called when production kwDescibe is entered. -func (s *BaseCqlParserListener) EnterKwDescibe(ctx *KwDescibeContext) {} +// EnterKwDescribe is called when production kwDescribe is entered. +func (s *BaseCqlParserListener) EnterKwDescribe(ctx *KwDescribeContext) {} -// ExitKwDescibe is called when production kwDescibe is exited. -func (s *BaseCqlParserListener) ExitKwDescibe(ctx *KwDescibeContext) {} +// ExitKwDescribe is called when production kwDescribe is exited. +func (s *BaseCqlParserListener) ExitKwDescribe(ctx *KwDescribeContext) {} // EnterKwDistinct is called when production kwDistinct is entered. func (s *BaseCqlParserListener) EnterKwDistinct(ctx *KwDistinctContext) {} diff --git a/cql/cqlparser_base_visitor.go b/cql/cqlparser_base_visitor.go index 27122c6..445191e 100644 --- a/cql/cqlparser_base_visitor.go +++ b/cql/cqlparser_base_visitor.go @@ -403,19 +403,19 @@ func (v *BaseCqlParserVisitor) VisitCreateIndex(ctx *CreateIndexContext) interfa return v.VisitChildren(ctx) } -func (v *BaseCqlParserVisitor) VisitIndexName(ctx *IndexNameContext) interface{} { +func (v *BaseCqlParserVisitor) VisitIndexClass(ctx *IndexClassContext) interface{} { return v.VisitChildren(ctx) } -func (v *BaseCqlParserVisitor) VisitIndexColumnSpec(ctx *IndexColumnSpecContext) interface{} { +func (v *BaseCqlParserVisitor) VisitIndexOptions(ctx *IndexOptionsContext) interface{} { return v.VisitChildren(ctx) } -func (v *BaseCqlParserVisitor) VisitIndexKeysSpec(ctx *IndexKeysSpecContext) interface{} { +func (v *BaseCqlParserVisitor) VisitIndexName(ctx *IndexNameContext) interface{} { return v.VisitChildren(ctx) } -func (v *BaseCqlParserVisitor) VisitIndexEntriesSSpec(ctx *IndexEntriesSSpecContext) interface{} { +func (v *BaseCqlParserVisitor) VisitIndexColumnSpec(ctx *IndexColumnSpecContext) interface{} { return v.VisitChildren(ctx) } @@ -507,6 +507,10 @@ func (v *BaseCqlParserVisitor) VisitInsertValuesSpec(ctx *InsertValuesSpecContex return v.VisitChildren(ctx) } +func (v *BaseCqlParserVisitor) VisitJsonDefaultUnset(ctx *JsonDefaultUnsetContext) interface{} { + return v.VisitChildren(ctx) +} + func (v *BaseCqlParserVisitor) VisitInsertColumnSpec(ctx *InsertColumnSpecContext) interface{} { return v.VisitChildren(ctx) } @@ -551,6 +555,14 @@ func (v *BaseCqlParserVisitor) VisitOrderSpecElement(ctx *OrderSpecElementContex return v.VisitChildren(ctx) } +func (v *BaseCqlParserVisitor) VisitVectorLiteral(ctx *VectorLiteralContext) interface{} { + return v.VisitChildren(ctx) +} + +func (v *BaseCqlParserVisitor) VisitConstantList(ctx *ConstantListContext) interface{} { + return v.VisitChildren(ctx) +} + func (v *BaseCqlParserVisitor) VisitWhereSpec(ctx *WhereSpecContext) interface{} { return v.VisitChildren(ctx) } @@ -771,6 +783,22 @@ func (v *BaseCqlParserVisitor) VisitKwCreate(ctx *KwCreateContext) interface{} { return v.VisitChildren(ctx) } +func (v *BaseCqlParserVisitor) VisitKwCustom(ctx *KwCustomContext) interface{} { + return v.VisitChildren(ctx) +} + +func (v *BaseCqlParserVisitor) VisitKwDefault(ctx *KwDefaultContext) interface{} { + return v.VisitChildren(ctx) +} + +func (v *BaseCqlParserVisitor) VisitKwUnset(ctx *KwUnsetContext) interface{} { + return v.VisitChildren(ctx) +} + +func (v *BaseCqlParserVisitor) VisitKwAnn(ctx *KwAnnContext) interface{} { + return v.VisitChildren(ctx) +} + func (v *BaseCqlParserVisitor) VisitKwDelete(ctx *KwDeleteContext) interface{} { return v.VisitChildren(ctx) } @@ -779,7 +807,7 @@ func (v *BaseCqlParserVisitor) VisitKwDesc(ctx *KwDescContext) interface{} { return v.VisitChildren(ctx) } -func (v *BaseCqlParserVisitor) VisitKwDescibe(ctx *KwDescibeContext) interface{} { +func (v *BaseCqlParserVisitor) VisitKwDescribe(ctx *KwDescribeContext) interface{} { return v.VisitChildren(ctx) } diff --git a/cql/cqlparser_listener.go b/cql/cqlparser_listener.go index d7ea59b..596b0f4 100644 --- a/cql/cqlparser_listener.go +++ b/cql/cqlparser_listener.go @@ -304,18 +304,18 @@ type CqlParserListener interface { // EnterCreateIndex is called when entering the createIndex production. EnterCreateIndex(c *CreateIndexContext) + // EnterIndexClass is called when entering the indexClass production. + EnterIndexClass(c *IndexClassContext) + + // EnterIndexOptions is called when entering the indexOptions production. + EnterIndexOptions(c *IndexOptionsContext) + // EnterIndexName is called when entering the indexName production. EnterIndexName(c *IndexNameContext) // EnterIndexColumnSpec is called when entering the indexColumnSpec production. EnterIndexColumnSpec(c *IndexColumnSpecContext) - // EnterIndexKeysSpec is called when entering the indexKeysSpec production. - EnterIndexKeysSpec(c *IndexKeysSpecContext) - - // EnterIndexEntriesSSpec is called when entering the indexEntriesSSpec production. - EnterIndexEntriesSSpec(c *IndexEntriesSSpecContext) - // EnterIndexFullSpec is called when entering the indexFullSpec production. EnterIndexFullSpec(c *IndexFullSpecContext) @@ -382,6 +382,9 @@ type CqlParserListener interface { // EnterInsertValuesSpec is called when entering the insertValuesSpec production. EnterInsertValuesSpec(c *InsertValuesSpecContext) + // EnterJsonDefaultUnset is called when entering the jsonDefaultUnset production. + EnterJsonDefaultUnset(c *JsonDefaultUnsetContext) + // EnterInsertColumnSpec is called when entering the insertColumnSpec production. EnterInsertColumnSpec(c *InsertColumnSpecContext) @@ -415,6 +418,12 @@ type CqlParserListener interface { // EnterOrderSpecElement is called when entering the orderSpecElement production. EnterOrderSpecElement(c *OrderSpecElementContext) + // EnterVectorLiteral is called when entering the vectorLiteral production. + EnterVectorLiteral(c *VectorLiteralContext) + + // EnterConstantList is called when entering the constantList production. + EnterConstantList(c *ConstantListContext) + // EnterWhereSpec is called when entering the whereSpec production. EnterWhereSpec(c *WhereSpecContext) @@ -580,14 +589,26 @@ type CqlParserListener interface { // EnterKwCreate is called when entering the kwCreate production. EnterKwCreate(c *KwCreateContext) + // EnterKwCustom is called when entering the kwCustom production. + EnterKwCustom(c *KwCustomContext) + + // EnterKwDefault is called when entering the kwDefault production. + EnterKwDefault(c *KwDefaultContext) + + // EnterKwUnset is called when entering the kwUnset production. + EnterKwUnset(c *KwUnsetContext) + + // EnterKwAnn is called when entering the kwAnn production. + EnterKwAnn(c *KwAnnContext) + // EnterKwDelete is called when entering the kwDelete production. EnterKwDelete(c *KwDeleteContext) // EnterKwDesc is called when entering the kwDesc production. EnterKwDesc(c *KwDescContext) - // EnterKwDescibe is called when entering the kwDescibe production. - EnterKwDescibe(c *KwDescibeContext) + // EnterKwDescribe is called when entering the kwDescribe production. + EnterKwDescribe(c *KwDescribeContext) // EnterKwDistinct is called when entering the kwDistinct production. EnterKwDistinct(c *KwDistinctContext) @@ -1135,18 +1156,18 @@ type CqlParserListener interface { // ExitCreateIndex is called when exiting the createIndex production. ExitCreateIndex(c *CreateIndexContext) + // ExitIndexClass is called when exiting the indexClass production. + ExitIndexClass(c *IndexClassContext) + + // ExitIndexOptions is called when exiting the indexOptions production. + ExitIndexOptions(c *IndexOptionsContext) + // ExitIndexName is called when exiting the indexName production. ExitIndexName(c *IndexNameContext) // ExitIndexColumnSpec is called when exiting the indexColumnSpec production. ExitIndexColumnSpec(c *IndexColumnSpecContext) - // ExitIndexKeysSpec is called when exiting the indexKeysSpec production. - ExitIndexKeysSpec(c *IndexKeysSpecContext) - - // ExitIndexEntriesSSpec is called when exiting the indexEntriesSSpec production. - ExitIndexEntriesSSpec(c *IndexEntriesSSpecContext) - // ExitIndexFullSpec is called when exiting the indexFullSpec production. ExitIndexFullSpec(c *IndexFullSpecContext) @@ -1213,6 +1234,9 @@ type CqlParserListener interface { // ExitInsertValuesSpec is called when exiting the insertValuesSpec production. ExitInsertValuesSpec(c *InsertValuesSpecContext) + // ExitJsonDefaultUnset is called when exiting the jsonDefaultUnset production. + ExitJsonDefaultUnset(c *JsonDefaultUnsetContext) + // ExitInsertColumnSpec is called when exiting the insertColumnSpec production. ExitInsertColumnSpec(c *InsertColumnSpecContext) @@ -1246,6 +1270,12 @@ type CqlParserListener interface { // ExitOrderSpecElement is called when exiting the orderSpecElement production. ExitOrderSpecElement(c *OrderSpecElementContext) + // ExitVectorLiteral is called when exiting the vectorLiteral production. + ExitVectorLiteral(c *VectorLiteralContext) + + // ExitConstantList is called when exiting the constantList production. + ExitConstantList(c *ConstantListContext) + // ExitWhereSpec is called when exiting the whereSpec production. ExitWhereSpec(c *WhereSpecContext) @@ -1411,14 +1441,26 @@ type CqlParserListener interface { // ExitKwCreate is called when exiting the kwCreate production. ExitKwCreate(c *KwCreateContext) + // ExitKwCustom is called when exiting the kwCustom production. + ExitKwCustom(c *KwCustomContext) + + // ExitKwDefault is called when exiting the kwDefault production. + ExitKwDefault(c *KwDefaultContext) + + // ExitKwUnset is called when exiting the kwUnset production. + ExitKwUnset(c *KwUnsetContext) + + // ExitKwAnn is called when exiting the kwAnn production. + ExitKwAnn(c *KwAnnContext) + // ExitKwDelete is called when exiting the kwDelete production. ExitKwDelete(c *KwDeleteContext) // ExitKwDesc is called when exiting the kwDesc production. ExitKwDesc(c *KwDescContext) - // ExitKwDescibe is called when exiting the kwDescibe production. - ExitKwDescibe(c *KwDescibeContext) + // ExitKwDescribe is called when exiting the kwDescribe production. + ExitKwDescribe(c *KwDescribeContext) // ExitKwDistinct is called when exiting the kwDistinct production. ExitKwDistinct(c *KwDistinctContext) diff --git a/cql/cqlparser_visitor.go b/cql/cqlparser_visitor.go index f827b5f..899681d 100644 --- a/cql/cqlparser_visitor.go +++ b/cql/cqlparser_visitor.go @@ -304,18 +304,18 @@ type CqlParserVisitor interface { // Visit a parse tree produced by CqlParser#createIndex. VisitCreateIndex(ctx *CreateIndexContext) interface{} + // Visit a parse tree produced by CqlParser#indexClass. + VisitIndexClass(ctx *IndexClassContext) interface{} + + // Visit a parse tree produced by CqlParser#indexOptions. + VisitIndexOptions(ctx *IndexOptionsContext) interface{} + // Visit a parse tree produced by CqlParser#indexName. VisitIndexName(ctx *IndexNameContext) interface{} // Visit a parse tree produced by CqlParser#indexColumnSpec. VisitIndexColumnSpec(ctx *IndexColumnSpecContext) interface{} - // Visit a parse tree produced by CqlParser#indexKeysSpec. - VisitIndexKeysSpec(ctx *IndexKeysSpecContext) interface{} - - // Visit a parse tree produced by CqlParser#indexEntriesSSpec. - VisitIndexEntriesSSpec(ctx *IndexEntriesSSpecContext) interface{} - // Visit a parse tree produced by CqlParser#indexFullSpec. VisitIndexFullSpec(ctx *IndexFullSpecContext) interface{} @@ -382,6 +382,9 @@ type CqlParserVisitor interface { // Visit a parse tree produced by CqlParser#insertValuesSpec. VisitInsertValuesSpec(ctx *InsertValuesSpecContext) interface{} + // Visit a parse tree produced by CqlParser#jsonDefaultUnset. + VisitJsonDefaultUnset(ctx *JsonDefaultUnsetContext) interface{} + // Visit a parse tree produced by CqlParser#insertColumnSpec. VisitInsertColumnSpec(ctx *InsertColumnSpecContext) interface{} @@ -415,6 +418,12 @@ type CqlParserVisitor interface { // Visit a parse tree produced by CqlParser#orderSpecElement. VisitOrderSpecElement(ctx *OrderSpecElementContext) interface{} + // Visit a parse tree produced by CqlParser#vectorLiteral. + VisitVectorLiteral(ctx *VectorLiteralContext) interface{} + + // Visit a parse tree produced by CqlParser#constantList. + VisitConstantList(ctx *ConstantListContext) interface{} + // Visit a parse tree produced by CqlParser#whereSpec. VisitWhereSpec(ctx *WhereSpecContext) interface{} @@ -580,14 +589,26 @@ type CqlParserVisitor interface { // Visit a parse tree produced by CqlParser#kwCreate. VisitKwCreate(ctx *KwCreateContext) interface{} + // Visit a parse tree produced by CqlParser#kwCustom. + VisitKwCustom(ctx *KwCustomContext) interface{} + + // Visit a parse tree produced by CqlParser#kwDefault. + VisitKwDefault(ctx *KwDefaultContext) interface{} + + // Visit a parse tree produced by CqlParser#kwUnset. + VisitKwUnset(ctx *KwUnsetContext) interface{} + + // Visit a parse tree produced by CqlParser#kwAnn. + VisitKwAnn(ctx *KwAnnContext) interface{} + // Visit a parse tree produced by CqlParser#kwDelete. VisitKwDelete(ctx *KwDeleteContext) interface{} // Visit a parse tree produced by CqlParser#kwDesc. VisitKwDesc(ctx *KwDescContext) interface{} - // Visit a parse tree produced by CqlParser#kwDescibe. - VisitKwDescibe(ctx *KwDescibeContext) interface{} + // Visit a parse tree produced by CqlParser#kwDescribe. + VisitKwDescribe(ctx *KwDescribeContext) interface{} // Visit a parse tree produced by CqlParser#kwDistinct. VisitKwDistinct(ctx *KwDistinctContext) interface{} diff --git a/cql/examples/createIndexSAI.cql b/cql/examples/createIndexSAI.cql new file mode 100644 index 0000000..c35f61f --- /dev/null +++ b/cql/examples/createIndexSAI.cql @@ -0,0 +1,15 @@ +-- Storage-Attached Index (SAI) examples + +-- Basic SAI index +CREATE INDEX ON products (name) USING 'sai'; + +-- Custom SAI index with explicit name +CREATE CUSTOM INDEX product_name_idx ON products (name) USING 'StorageAttachedIndex'; + +-- Vector index for similarity search +CREATE CUSTOM INDEX embedding_idx ON products (embedding) + USING 'StorageAttachedIndex' + WITH {'similarity_function': 'cosine'}; + +-- Collection indexes with SAI (entire collection) +CREATE INDEX ON mytable (mymap) USING 'sai'; \ No newline at end of file diff --git a/cql/examples/createTableVector.cql b/cql/examples/createTableVector.cql new file mode 100644 index 0000000..1ab31dc --- /dev/null +++ b/cql/examples/createTableVector.cql @@ -0,0 +1,16 @@ +-- Create table with VECTOR data type (Cassandra 5.0+) +CREATE TABLE products ( + id uuid PRIMARY KEY, + name text, + description text, + embedding VECTOR, + price decimal +); + +-- Create table with DURATION type +CREATE TABLE events ( + id uuid PRIMARY KEY, + name text, + event_duration DURATION, + created_at timestamp +); \ No newline at end of file diff --git a/cql/examples/insertFunctions.cql b/cql/examples/insertFunctions.cql new file mode 100644 index 0000000..6629edb --- /dev/null +++ b/cql/examples/insertFunctions.cql @@ -0,0 +1,13 @@ +-- INSERT statements with CQL functions + +-- UUID generation function +INSERT INTO events (id, created_at) VALUES (uuid(), now()); + +-- Current time UUID and timestamp functions +INSERT INTO events (id, created_at) VALUES (currentTimeuuid(), currentTimestamp()); + +-- Date/time component functions +INSERT INTO logs (id, log_date, log_time) VALUES (uuid(), currentDate(), currentTime()); + +-- fromJson function for complex data +INSERT INTO users (id, profile) VALUES (uuid(), fromJson('{"location": "NYC", "interests": ["music", "sports"]}')); \ No newline at end of file diff --git a/cql/examples/insertJson.cql b/cql/examples/insertJson.cql new file mode 100644 index 0000000..d5a64c1 --- /dev/null +++ b/cql/examples/insertJson.cql @@ -0,0 +1,10 @@ +-- INSERT statements with JSON support + +-- Basic JSON insert +INSERT INTO users JSON '{"id": "123e4567-e89b-12d3-a456-426614174000", "name": "John Doe", "age": 30}'; + +-- JSON insert with DEFAULT UNSET clause +INSERT INTO users JSON '{"id": "123e4567-e89b-12d3-a456-426614174000", "name": "Jane Doe"}' DEFAULT UNSET; + +-- fromJson function in VALUES clause +INSERT INTO users (id, profile) VALUES (uuid(), fromJson('{"location": "NYC", "interests": ["music", "sports"]}')); \ No newline at end of file diff --git a/cql/examples/selectFunctions.cql b/cql/examples/selectFunctions.cql new file mode 100644 index 0000000..0d45233 --- /dev/null +++ b/cql/examples/selectFunctions.cql @@ -0,0 +1,16 @@ +-- SELECT statements with CQL functions + +-- toJson function for JSON output +SELECT id, toJson(profile) FROM users WHERE age > 25; + +-- JSON format selection (all columns) +SELECT JSON * FROM users WHERE id = 123e4567-e89b-12d3-a456-426614174000; + +-- JSON format selection (specific columns) +SELECT JSON id, name, age FROM users LIMIT 10; + +-- dateOf function to extract timestamp from timeuuid +SELECT id, dateOf(created_id) FROM events WHERE id = 550e8400-e29b-41d4-a716-446655440000; + +-- unixTimestampOf function to get UNIX timestamp +SELECT id, unixTimestampOf(created_id) FROM events LIMIT 5; \ No newline at end of file diff --git a/cql/examples/selectJson.cql b/cql/examples/selectJson.cql new file mode 100644 index 0000000..9dd9789 --- /dev/null +++ b/cql/examples/selectJson.cql @@ -0,0 +1,10 @@ +-- SELECT statements with JSON output + +-- Select all columns as JSON +SELECT JSON * FROM users WHERE id = 123e4567-e89b-12d3-a456-426614174000; + +-- Select specific columns as JSON +SELECT JSON id, name, age FROM users LIMIT 10; + +-- toJson function for specific column +SELECT id, toJson(profile) FROM users WHERE age > 25; \ No newline at end of file diff --git a/cql/examples/selectVectorANN.cql b/cql/examples/selectVectorANN.cql new file mode 100644 index 0000000..3c94e82 --- /dev/null +++ b/cql/examples/selectVectorANN.cql @@ -0,0 +1,17 @@ +-- Vector similarity search using ANN (Approximate Nearest Neighbor) + +-- Basic vector search with ORDER BY ANN +SELECT * FROM products +WHERE category = 'electronics' +ORDER BY embedding ANN OF [0.1, 0.2, 0.3, 0.4, 0.5] +LIMIT 10; + +-- Vector search without WHERE clause +SELECT id, name, price FROM products +ORDER BY embedding ANN OF [0.25, 0.5, 0.75] +LIMIT 5; + +-- Combined with other ORDER BY (if supported) +SELECT * FROM products +WHERE price < 1000 +ORDER BY embedding ANN OF [0.1, 0.2, 0.3] LIMIT 20; \ No newline at end of file