com.blazebit.persistence.parser.SQLParser.interp Maven / Gradle / Ivy
The newest version!
token literal names:
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
'\''
null
null
null
null
null
null
null
'='
'>'
'<'
'!'
'+='
'-='
'*='
'/='
'%='
'&='
'^='
'|='
'||'
'.'
'$'
'('
')'
','
'*'
'/'
'%'
'+'
'-'
'~'
'|'
'&'
'^'
'?'
null
null
token symbolic names:
null
ALL
AND
ANY
AS
ASC
BETWEEN
BY
CASE
COLLATE
CONVERT
CROSS
CURRENT
CURRENT_DATE
CURRENT_TIME
CURRENT_TIMESTAMP
CURRENT_USER
DESC
DISTINCT
DOUBLE
ELSE
END
ESCAPE
EXCEPT
EXISTS
FETCH
FROM
FULL
GROUP
HAVING
IDENTITY
IIF
IN
INNER
INTERSECT
IS
JOIN
LEFT
LIKE
NOT
NULL
ON
OR
ORDER
OUTER
OVER
PERCENT
PRECISION
RIGHT
SELECT
SESSION_USER
SET
SOME
SYSTEM_USER
THEN
TOP
UNION
VALUES
WHEN
WHERE
WITH
WITHIN
APPLY
CAST
COUNT
COUNT_BIG
DATEADD
DATEDIFF
DATENAME
DATEPART
FIRST
FOLLOWING
MAX
MIN_ACTIVE_ROWVERSION
NEXT
OFFSET
ONLY
PARTITION
PRECEDING
RANGE
ROW
ROWGUID
ROWS
TIES
UNBOUNDED
SPACE
COMMENT
LINE_COMMENT
DOUBLE_QUOTE_ID
SINGLE_QUOTE
SQUARE_BRACKET_ID
DECIMAL
ID
STRING
BINARY
FLOAT
REAL
EQUAL
GREATER
LESS
EXCLAMATION
PLUS_ASSIGN
MINUS_ASSIGN
MULT_ASSIGN
DIV_ASSIGN
MOD_ASSIGN
AND_ASSIGN
XOR_ASSIGN
OR_ASSIGN
DOUBLE_BAR
DOT
DOLLAR
LR_BRACKET
RR_BRACKET
COMMA
STAR
DIVIDE
MODULE
PLUS
MINUS
BIT_NOT
BIT_OR
BIT_AND
BIT_XOR
PARAM
IPV4_OCTECT
LIMIT
rule names:
parseSelectStatement
parseFrom
expression
primitive_expression
case_expression
unary_operator_expression
bracket_expression
constant_expression
select_statement
subquery
search_condition
search_condition_and
search_condition_not
predicate
query_expression
sql_union
query_specification
top_clause
top_percent
top_count
order_by_clause
order_by_expression
group_by_item
select_list
column_elem
expression_elem
select_list_elem
table_sources
table_source
table_source_item_joined
table_source_item
join_part
derived_table
function_call
switch_section
switch_search_condition_section
as_column_alias
as_table_alias
table_alias
column_alias_list
column_alias
table_value_constructor
expression_list
over_clause
row_or_range_clause
window_frame_extent
window_frame_bound
window_frame_preceding
window_frame_following
table_name
full_column_name
null_notnull
data_type
constant
sign
id
simple_id
comparison_operator
assignment_operator
atn:
[3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 3, 128, 825, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4, 18, 9, 18, 4, 19, 9, 19, 4, 20, 9, 20, 4, 21, 9, 21, 4, 22, 9, 22, 4, 23, 9, 23, 4, 24, 9, 24, 4, 25, 9, 25, 4, 26, 9, 26, 4, 27, 9, 27, 4, 28, 9, 28, 4, 29, 9, 29, 4, 30, 9, 30, 4, 31, 9, 31, 4, 32, 9, 32, 4, 33, 9, 33, 4, 34, 9, 34, 4, 35, 9, 35, 4, 36, 9, 36, 4, 37, 9, 37, 4, 38, 9, 38, 4, 39, 9, 39, 4, 40, 9, 40, 4, 41, 9, 41, 4, 42, 9, 42, 4, 43, 9, 43, 4, 44, 9, 44, 4, 45, 9, 45, 4, 46, 9, 46, 4, 47, 9, 47, 4, 48, 9, 48, 4, 49, 9, 49, 4, 50, 9, 50, 4, 51, 9, 51, 4, 52, 9, 52, 4, 53, 9, 53, 4, 54, 9, 54, 4, 55, 9, 55, 4, 56, 9, 56, 4, 57, 9, 57, 4, 58, 9, 58, 4, 59, 9, 59, 4, 60, 9, 60, 3, 2, 3, 2, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 5, 3, 128, 10, 3, 3, 3, 3, 3, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 5, 4, 140, 10, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 7, 4, 159, 10, 4, 12, 4, 14, 4, 162, 11, 4, 3, 5, 3, 5, 3, 5, 5, 5, 167, 10, 5, 3, 6, 3, 6, 3, 6, 6, 6, 172, 10, 6, 13, 6, 14, 6, 173, 3, 6, 3, 6, 5, 6, 178, 10, 6, 3, 6, 3, 6, 3, 6, 3, 6, 6, 6, 184, 10, 6, 13, 6, 14, 6, 185, 3, 6, 3, 6, 5, 6, 190, 10, 6, 3, 6, 3, 6, 5, 6, 194, 10, 6, 3, 7, 3, 7, 3, 7, 3, 7, 5, 7, 200, 10, 7, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 5, 8, 210, 10, 8, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 5, 9, 219, 10, 9, 3, 10, 3, 10, 5, 10, 223, 10, 10, 3, 11, 3, 11, 3, 12, 3, 12, 3, 12, 7, 12, 230, 10, 12, 12, 12, 14, 12, 233, 11, 12, 3, 13, 3, 13, 3, 13, 7, 13, 238, 10, 13, 12, 13, 14, 13, 241, 11, 13, 3, 14, 5, 14, 244, 10, 14, 3, 14, 3, 14, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 5, 15, 266, 10, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 5, 15, 275, 10, 15, 3, 15, 3, 15, 3, 15, 3, 15, 5, 15, 281, 10, 15, 3, 15, 3, 15, 3, 15, 3, 15, 5, 15, 287, 10, 15, 3, 15, 3, 15, 3, 15, 3, 15, 5, 15, 293, 10, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 5, 15, 303, 10, 15, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 5, 16, 310, 10, 16, 3, 16, 7, 16, 313, 10, 16, 12, 16, 14, 16, 316, 11, 16, 3, 17, 3, 17, 5, 17, 320, 10, 17, 3, 17, 3, 17, 5, 17, 324, 10, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 5, 17, 331, 10, 17, 3, 18, 3, 18, 5, 18, 335, 10, 18, 3, 18, 5, 18, 338, 10, 18, 3, 18, 3, 18, 3, 18, 5, 18, 343, 10, 18, 3, 18, 3, 18, 5, 18, 347, 10, 18, 3, 18, 3, 18, 3, 18, 5, 18, 352, 10, 18, 3, 18, 3, 18, 3, 18, 7, 18, 357, 10, 18, 12, 18, 14, 18, 360, 11, 18, 5, 18, 362, 10, 18, 3, 18, 3, 18, 5, 18, 366, 10, 18, 3, 19, 3, 19, 3, 19, 5, 19, 371, 10, 19, 3, 19, 3, 19, 5, 19, 375, 10, 19, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 5, 20, 384, 10, 20, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 5, 21, 391, 10, 21, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 7, 22, 398, 10, 22, 12, 22, 14, 22, 401, 11, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 5, 22, 412, 10, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 5, 22, 419, 10, 22, 3, 23, 3, 23, 5, 23, 423, 10, 23, 3, 24, 3, 24, 3, 25, 3, 25, 3, 25, 7, 25, 430, 10, 25, 12, 25, 14, 25, 433, 11, 25, 3, 26, 3, 26, 3, 26, 5, 26, 438, 10, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 5, 26, 445, 10, 26, 3, 26, 5, 26, 448, 10, 26, 3, 26, 5, 26, 451, 10, 26, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 5, 27, 459, 10, 27, 5, 27, 461, 10, 27, 3, 28, 3, 28, 3, 28, 5, 28, 466, 10, 28, 3, 29, 3, 29, 3, 29, 7, 29, 471, 10, 29, 12, 29, 14, 29, 474, 11, 29, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 5, 30, 481, 10, 30, 3, 31, 3, 31, 7, 31, 485, 10, 31, 12, 31, 14, 31, 488, 11, 31, 3, 32, 3, 32, 5, 32, 492, 10, 32, 3, 32, 3, 32, 3, 32, 5, 32, 497, 10, 32, 5, 32, 499, 10, 32, 3, 32, 3, 32, 3, 32, 5, 32, 504, 10, 32, 5, 32, 506, 10, 32, 5, 32, 508, 10, 32, 3, 33, 5, 33, 511, 10, 33, 3, 33, 3, 33, 5, 33, 515, 10, 33, 5, 33, 517, 10, 33, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 5, 33, 533, 10, 33, 3, 34, 3, 34, 3, 34, 3, 34, 3, 34, 3, 34, 3, 34, 3, 34, 3, 34, 3, 34, 5, 34, 545, 10, 34, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 5, 35, 561, 10, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 5, 35, 616, 10, 35, 3, 35, 3, 35, 3, 35, 5, 35, 621, 10, 35, 3, 35, 5, 35, 624, 10, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 5, 35, 634, 10, 35, 5, 35, 636, 10, 35, 3, 36, 3, 36, 3, 36, 3, 36, 3, 36, 3, 37, 3, 37, 3, 37, 3, 37, 3, 37, 3, 38, 5, 38, 649, 10, 38, 3, 38, 3, 38, 3, 39, 5, 39, 654, 10, 39, 3, 39, 3, 39, 3, 40, 3, 40, 3, 41, 3, 41, 3, 41, 3, 41, 7, 41, 664, 10, 41, 12, 41, 14, 41, 667, 11, 41, 3, 41, 3, 41, 3, 42, 3, 42, 5, 42, 673, 10, 42, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 7, 43, 684, 10, 43, 12, 43, 14, 43, 687, 11, 43, 3, 44, 3, 44, 3, 44, 7, 44, 692, 10, 44, 12, 44, 14, 44, 695, 11, 44, 3, 45, 3, 45, 3, 45, 3, 45, 3, 45, 5, 45, 702, 10, 45, 3, 45, 5, 45, 705, 10, 45, 3, 45, 5, 45, 708, 10, 45, 3, 45, 3, 45, 3, 46, 3, 46, 3, 46, 3, 47, 3, 47, 3, 47, 3, 47, 3, 47, 3, 47, 5, 47, 721, 10, 47, 3, 48, 3, 48, 5, 48, 725, 10, 48, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 5, 49, 733, 10, 49, 3, 50, 3, 50, 3, 50, 3, 50, 5, 50, 739, 10, 50, 3, 51, 3, 51, 3, 51, 7, 51, 744, 10, 51, 12, 51, 14, 51, 747, 11, 51, 3, 52, 3, 52, 3, 52, 5, 52, 752, 10, 52, 3, 52, 3, 52, 3, 53, 5, 53, 757, 10, 53, 3, 53, 3, 53, 3, 54, 3, 54, 5, 54, 763, 10, 54, 3, 54, 3, 54, 3, 54, 3, 54, 5, 54, 769, 10, 54, 3, 54, 5, 54, 772, 10, 54, 3, 54, 3, 54, 5, 54, 776, 10, 54, 5, 54, 778, 10, 54, 3, 55, 3, 55, 3, 55, 5, 55, 783, 10, 55, 3, 55, 3, 55, 5, 55, 787, 10, 55, 3, 55, 3, 55, 5, 55, 791, 10, 55, 3, 55, 3, 55, 5, 55, 795, 10, 55, 3, 56, 3, 56, 3, 57, 3, 57, 3, 57, 5, 57, 802, 10, 57, 3, 58, 3, 58, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 5, 59, 821, 10, 59, 3, 60, 3, 60, 3, 60, 2, 3, 6, 61, 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, 2, 18, 3, 2, 117, 119, 5, 2, 111, 111, 120, 121, 123, 125, 3, 2, 120, 121, 5, 2, 3, 3, 5, 5, 54, 54, 4, 2, 3, 3, 20, 20, 3, 2, 97, 98, 4, 2, 82, 82, 84, 84, 4, 2, 72, 72, 76, 76, 4, 2, 7, 7, 19, 19, 5, 2, 29, 29, 39, 39, 50, 50, 3, 2, 66, 67, 4, 2, 81, 81, 84, 84, 4, 2, 74, 74, 93, 93, 4, 2, 93, 93, 97, 97, 5, 2, 64, 73, 75, 86, 94, 94, 3, 2, 103, 110, 2, 915, 2, 120, 3, 2, 2, 2, 4, 123, 3, 2, 2, 2, 6, 139, 3, 2, 2, 2, 8, 166, 3, 2, 2, 2, 10, 193, 3, 2, 2, 2, 12, 199, 3, 2, 2, 2, 14, 209, 3, 2, 2, 2, 16, 218, 3, 2, 2, 2, 18, 220, 3, 2, 2, 2, 20, 224, 3, 2, 2, 2, 22, 226, 3, 2, 2, 2, 24, 234, 3, 2, 2, 2, 26, 243, 3, 2, 2, 2, 28, 302, 3, 2, 2, 2, 30, 309, 3, 2, 2, 2, 32, 323, 3, 2, 2, 2, 34, 332, 3, 2, 2, 2, 36, 367, 3, 2, 2, 2, 38, 383, 3, 2, 2, 2, 40, 390, 3, 2, 2, 2, 42, 392, 3, 2, 2, 2, 44, 420, 3, 2, 2, 2, 46, 424, 3, 2, 2, 2, 48, 426, 3, 2, 2, 2, 50, 447, 3, 2, 2, 2, 52, 460, 3, 2, 2, 2, 54, 465, 3, 2, 2, 2, 56, 467, 3, 2, 2, 2, 58, 480, 3, 2, 2, 2, 60, 482, 3, 2, 2, 2, 62, 507, 3, 2, 2, 2, 64, 532, 3, 2, 2, 2, 66, 544, 3, 2, 2, 2, 68, 635, 3, 2, 2, 2, 70, 637, 3, 2, 2, 2, 72, 642, 3, 2, 2, 2, 74, 648, 3, 2, 2, 2, 76, 653, 3, 2, 2, 2, 78, 657, 3, 2, 2, 2, 80, 659, 3, 2, 2, 2, 82, 672, 3, 2, 2, 2, 84, 674, 3, 2, 2, 2, 86, 688, 3, 2, 2, 2, 88, 696, 3, 2, 2, 2, 90, 711, 3, 2, 2, 2, 92, 720, 3, 2, 2, 2, 94, 724, 3, 2, 2, 2, 96, 732, 3, 2, 2, 2, 98, 738, 3, 2, 2, 2, 100, 740, 3, 2, 2, 2, 102, 751, 3, 2, 2, 2, 104, 756, 3, 2, 2, 2, 106, 777, 3, 2, 2, 2, 108, 794, 3, 2, 2, 2, 110, 796, 3, 2, 2, 2, 112, 801, 3, 2, 2, 2, 114, 803, 3, 2, 2, 2, 116, 820, 3, 2, 2, 2, 118, 822, 3, 2, 2, 2, 120, 121, 5, 18, 10, 2, 121, 122, 7, 2, 2, 3, 122, 3, 3, 2, 2, 2, 123, 124, 7, 28, 2, 2, 124, 127, 5, 56, 29, 2, 125, 126, 7, 61, 2, 2, 126, 128, 5, 22, 12, 2, 127, 125, 3, 2, 2, 2, 127, 128, 3, 2, 2, 2, 128, 129, 3, 2, 2, 2, 129, 130, 7, 2, 2, 3, 130, 5, 3, 2, 2, 2, 131, 132, 8, 4, 1, 2, 132, 140, 5, 8, 5, 2, 133, 140, 5, 68, 35, 2, 134, 140, 5, 10, 6, 2, 135, 140, 5, 102, 52, 2, 136, 140, 5, 14, 8, 2, 137, 140, 5, 12, 7, 2, 138, 140, 5, 88, 45, 2, 139, 131, 3, 2, 2, 2, 139, 133, 3, 2, 2, 2, 139, 134, 3, 2, 2, 2, 139, 135, 3, 2, 2, 2, 139, 136, 3, 2, 2, 2, 139, 137, 3, 2, 2, 2, 139, 138, 3, 2, 2, 2, 140, 160, 3, 2, 2, 2, 141, 142, 12, 7, 2, 2, 142, 143, 9, 2, 2, 2, 143, 159, 5, 6, 4, 8, 144, 145, 12, 6, 2, 2, 145, 146, 9, 3, 2, 2, 146, 159, 5, 6, 4, 7, 147, 148, 12, 5, 2, 2, 148, 149, 5, 116, 59, 2, 149, 150, 5, 6, 4, 6, 150, 159, 3, 2, 2, 2, 151, 152, 12, 4, 2, 2, 152, 153, 5, 118, 60, 2, 153, 154, 5, 6, 4, 5, 154, 159, 3, 2, 2, 2, 155, 156, 12, 12, 2, 2, 156, 157, 7, 11, 2, 2, 157, 159, 5, 112, 57, 2, 158, 141, 3, 2, 2, 2, 158, 144, 3, 2, 2, 2, 158, 147, 3, 2, 2, 2, 158, 151, 3, 2, 2, 2, 158, 155, 3, 2, 2, 2, 159, 162, 3, 2, 2, 2, 160, 158, 3, 2, 2, 2, 160, 161, 3, 2, 2, 2, 161, 7, 3, 2, 2, 2, 162, 160, 3, 2, 2, 2, 163, 167, 7, 42, 2, 2, 164, 167, 5, 108, 55, 2, 165, 167, 7, 126, 2, 2, 166, 163, 3, 2, 2, 2, 166, 164, 3, 2, 2, 2, 166, 165, 3, 2, 2, 2, 167, 9, 3, 2, 2, 2, 168, 169, 7, 10, 2, 2, 169, 171, 5, 6, 4, 2, 170, 172, 5, 70, 36, 2, 171, 170, 3, 2, 2, 2, 172, 173, 3, 2, 2, 2, 173, 171, 3, 2, 2, 2, 173, 174, 3, 2, 2, 2, 174, 177, 3, 2, 2, 2, 175, 176, 7, 22, 2, 2, 176, 178, 5, 6, 4, 2, 177, 175, 3, 2, 2, 2, 177, 178, 3, 2, 2, 2, 178, 179, 3, 2, 2, 2, 179, 180, 7, 23, 2, 2, 180, 194, 3, 2, 2, 2, 181, 183, 7, 10, 2, 2, 182, 184, 5, 72, 37, 2, 183, 182, 3, 2, 2, 2, 184, 185, 3, 2, 2, 2, 185, 183, 3, 2, 2, 2, 185, 186, 3, 2, 2, 2, 186, 189, 3, 2, 2, 2, 187, 188, 7, 22, 2, 2, 188, 190, 5, 6, 4, 2, 189, 187, 3, 2, 2, 2, 189, 190, 3, 2, 2, 2, 190, 191, 3, 2, 2, 2, 191, 192, 7, 23, 2, 2, 192, 194, 3, 2, 2, 2, 193, 168, 3, 2, 2, 2, 193, 181, 3, 2, 2, 2, 194, 11, 3, 2, 2, 2, 195, 196, 7, 122, 2, 2, 196, 200, 5, 6, 4, 2, 197, 198, 9, 4, 2, 2, 198, 200, 5, 6, 4, 2, 199, 195, 3, 2, 2, 2, 199, 197, 3, 2, 2, 2, 200, 13, 3, 2, 2, 2, 201, 202, 7, 114, 2, 2, 202, 203, 5, 6, 4, 2, 203, 204, 7, 115, 2, 2, 204, 210, 3, 2, 2, 2, 205, 206, 7, 114, 2, 2, 206, 207, 5, 20, 11, 2, 207, 208, 7, 115, 2, 2, 208, 210, 3, 2, 2, 2, 209, 201, 3, 2, 2, 2, 209, 205, 3, 2, 2, 2, 210, 15, 3, 2, 2, 2, 211, 219, 7, 42, 2, 2, 212, 219, 5, 108, 55, 2, 213, 219, 5, 68, 35, 2, 214, 215, 7, 114, 2, 2, 215, 216, 5, 16, 9, 2, 216, 217, 7, 115, 2, 2, 217, 219, 3, 2, 2, 2, 218, 211, 3, 2, 2, 2, 218, 212, 3, 2, 2, 2, 218, 213, 3, 2, 2, 2, 218, 214, 3, 2, 2, 2, 219, 17, 3, 2, 2, 2, 220, 222, 5, 30, 16, 2, 221, 223, 5, 42, 22, 2, 222, 221, 3, 2, 2, 2, 222, 223, 3, 2, 2, 2, 223, 19, 3, 2, 2, 2, 224, 225, 5, 18, 10, 2, 225, 21, 3, 2, 2, 2, 226, 231, 5, 24, 13, 2, 227, 228, 7, 44, 2, 2, 228, 230, 5, 24, 13, 2, 229, 227, 3, 2, 2, 2, 230, 233, 3, 2, 2, 2, 231, 229, 3, 2, 2, 2, 231, 232, 3, 2, 2, 2, 232, 23, 3, 2, 2, 2, 233, 231, 3, 2, 2, 2, 234, 239, 5, 26, 14, 2, 235, 236, 7, 4, 2, 2, 236, 238, 5, 26, 14, 2, 237, 235, 3, 2, 2, 2, 238, 241, 3, 2, 2, 2, 239, 237, 3, 2, 2, 2, 239, 240, 3, 2, 2, 2, 240, 25, 3, 2, 2, 2, 241, 239, 3, 2, 2, 2, 242, 244, 7, 41, 2, 2, 243, 242, 3, 2, 2, 2, 243, 244, 3, 2, 2, 2, 244, 245, 3, 2, 2, 2, 245, 246, 5, 28, 15, 2, 246, 27, 3, 2, 2, 2, 247, 248, 7, 26, 2, 2, 248, 249, 7, 114, 2, 2, 249, 250, 5, 20, 11, 2, 250, 251, 7, 115, 2, 2, 251, 303, 3, 2, 2, 2, 252, 253, 5, 6, 4, 2, 253, 254, 5, 116, 59, 2, 254, 255, 5, 6, 4, 2, 255, 303, 3, 2, 2, 2, 256, 257, 5, 6, 4, 2, 257, 258, 5, 116, 59, 2, 258, 259, 9, 5, 2, 2, 259, 260, 7, 114, 2, 2, 260, 261, 5, 20, 11, 2, 261, 262, 7, 115, 2, 2, 262, 303, 3, 2, 2, 2, 263, 265, 5, 6, 4, 2, 264, 266, 7, 41, 2, 2, 265, 264, 3, 2, 2, 2, 265, 266, 3, 2, 2, 2, 266, 267, 3, 2, 2, 2, 267, 268, 7, 8, 2, 2, 268, 269, 5, 6, 4, 2, 269, 270, 7, 4, 2, 2, 270, 271, 5, 6, 4, 2, 271, 303, 3, 2, 2, 2, 272, 274, 5, 6, 4, 2, 273, 275, 7, 41, 2, 2, 274, 273, 3, 2, 2, 2, 274, 275, 3, 2, 2, 2, 275, 276, 3, 2, 2, 2, 276, 277, 7, 34, 2, 2, 277, 280, 7, 114, 2, 2, 278, 281, 5, 20, 11, 2, 279, 281, 5, 86, 44, 2, 280, 278, 3, 2, 2, 2, 280, 279, 3, 2, 2, 2, 281, 282, 3, 2, 2, 2, 282, 283, 7, 115, 2, 2, 283, 303, 3, 2, 2, 2, 284, 286, 5, 6, 4, 2, 285, 287, 7, 41, 2, 2, 286, 285, 3, 2, 2, 2, 286, 287, 3, 2, 2, 2, 287, 288, 3, 2, 2, 2, 288, 289, 7, 40, 2, 2, 289, 292, 5, 6, 4, 2, 290, 291, 7, 24, 2, 2, 291, 293, 5, 6, 4, 2, 292, 290, 3, 2, 2, 2, 292, 293, 3, 2, 2, 2, 293, 303, 3, 2, 2, 2, 294, 295, 5, 6, 4, 2, 295, 296, 7, 37, 2, 2, 296, 297, 5, 104, 53, 2, 297, 303, 3, 2, 2, 2, 298, 299, 7, 114, 2, 2, 299, 300, 5, 22, 12, 2, 300, 301, 7, 115, 2, 2, 301, 303, 3, 2, 2, 2, 302, 247, 3, 2, 2, 2, 302, 252, 3, 2, 2, 2, 302, 256, 3, 2, 2, 2, 302, 263, 3, 2, 2, 2, 302, 272, 3, 2, 2, 2, 302, 284, 3, 2, 2, 2, 302, 294, 3, 2, 2, 2, 302, 298, 3, 2, 2, 2, 303, 29, 3, 2, 2, 2, 304, 310, 5, 34, 18, 2, 305, 306, 7, 114, 2, 2, 306, 307, 5, 30, 16, 2, 307, 308, 7, 115, 2, 2, 308, 310, 3, 2, 2, 2, 309, 304, 3, 2, 2, 2, 309, 305, 3, 2, 2, 2, 310, 314, 3, 2, 2, 2, 311, 313, 5, 32, 17, 2, 312, 311, 3, 2, 2, 2, 313, 316, 3, 2, 2, 2, 314, 312, 3, 2, 2, 2, 314, 315, 3, 2, 2, 2, 315, 31, 3, 2, 2, 2, 316, 314, 3, 2, 2, 2, 317, 319, 7, 58, 2, 2, 318, 320, 7, 3, 2, 2, 319, 318, 3, 2, 2, 2, 319, 320, 3, 2, 2, 2, 320, 324, 3, 2, 2, 2, 321, 324, 7, 25, 2, 2, 322, 324, 7, 36, 2, 2, 323, 317, 3, 2, 2, 2, 323, 321, 3, 2, 2, 2, 323, 322, 3, 2, 2, 2, 324, 330, 3, 2, 2, 2, 325, 331, 5, 34, 18, 2, 326, 327, 7, 114, 2, 2, 327, 328, 5, 30, 16, 2, 328, 329, 7, 115, 2, 2, 329, 331, 3, 2, 2, 2, 330, 325, 3, 2, 2, 2, 330, 326, 3, 2, 2, 2, 331, 33, 3, 2, 2, 2, 332, 334, 7, 51, 2, 2, 333, 335, 9, 6, 2, 2, 334, 333, 3, 2, 2, 2, 334, 335, 3, 2, 2, 2, 335, 337, 3, 2, 2, 2, 336, 338, 5, 36, 19, 2, 337, 336, 3, 2, 2, 2, 337, 338, 3, 2, 2, 2, 338, 339, 3, 2, 2, 2, 339, 342, 5, 48, 25, 2, 340, 341, 7, 28, 2, 2, 341, 343, 5, 56, 29, 2, 342, 340, 3, 2, 2, 2, 342, 343, 3, 2, 2, 2, 343, 346, 3, 2, 2, 2, 344, 345, 7, 61, 2, 2, 345, 347, 5, 22, 12, 2, 346, 344, 3, 2, 2, 2, 346, 347, 3, 2, 2, 2, 347, 361, 3, 2, 2, 2, 348, 349, 7, 30, 2, 2, 349, 351, 7, 9, 2, 2, 350, 352, 7, 3, 2, 2, 351, 350, 3, 2, 2, 2, 351, 352, 3, 2, 2, 2, 352, 353, 3, 2, 2, 2, 353, 358, 5, 46, 24, 2, 354, 355, 7, 116, 2, 2, 355, 357, 5, 46, 24, 2, 356, 354, 3, 2, 2, 2, 357, 360, 3, 2, 2, 2, 358, 356, 3, 2, 2, 2, 358, 359, 3, 2, 2, 2, 359, 362, 3, 2, 2, 2, 360, 358, 3, 2, 2, 2, 361, 348, 3, 2, 2, 2, 361, 362, 3, 2, 2, 2, 362, 365, 3, 2, 2, 2, 363, 364, 7, 31, 2, 2, 364, 366, 5, 22, 12, 2, 365, 363, 3, 2, 2, 2, 365, 366, 3, 2, 2, 2, 366, 35, 3, 2, 2, 2, 367, 370, 7, 57, 2, 2, 368, 371, 5, 38, 20, 2, 369, 371, 5, 40, 21, 2, 370, 368, 3, 2, 2, 2, 370, 369, 3, 2, 2, 2, 371, 374, 3, 2, 2, 2, 372, 373, 7, 62, 2, 2, 373, 375, 7, 85, 2, 2, 374, 372, 3, 2, 2, 2, 374, 375, 3, 2, 2, 2, 375, 37, 3, 2, 2, 2, 376, 377, 9, 7, 2, 2, 377, 384, 7, 48, 2, 2, 378, 379, 7, 114, 2, 2, 379, 380, 5, 6, 4, 2, 380, 381, 7, 115, 2, 2, 381, 382, 7, 48, 2, 2, 382, 384, 3, 2, 2, 2, 383, 376, 3, 2, 2, 2, 383, 378, 3, 2, 2, 2, 384, 39, 3, 2, 2, 2, 385, 391, 7, 93, 2, 2, 386, 387, 7, 114, 2, 2, 387, 388, 5, 6, 4, 2, 388, 389, 7, 115, 2, 2, 389, 391, 3, 2, 2, 2, 390, 385, 3, 2, 2, 2, 390, 386, 3, 2, 2, 2, 391, 41, 3, 2, 2, 2, 392, 393, 7, 45, 2, 2, 393, 394, 7, 9, 2, 2, 394, 399, 5, 44, 23, 2, 395, 396, 7, 116, 2, 2, 396, 398, 5, 44, 23, 2, 397, 395, 3, 2, 2, 2, 398, 401, 3, 2, 2, 2, 399, 397, 3, 2, 2, 2, 399, 400, 3, 2, 2, 2, 400, 418, 3, 2, 2, 2, 401, 399, 3, 2, 2, 2, 402, 403, 7, 77, 2, 2, 403, 404, 5, 6, 4, 2, 404, 411, 9, 8, 2, 2, 405, 406, 7, 27, 2, 2, 406, 407, 9, 9, 2, 2, 407, 408, 5, 6, 4, 2, 408, 409, 9, 8, 2, 2, 409, 410, 7, 78, 2, 2, 410, 412, 3, 2, 2, 2, 411, 405, 3, 2, 2, 2, 411, 412, 3, 2, 2, 2, 412, 419, 3, 2, 2, 2, 413, 414, 7, 128, 2, 2, 414, 415, 5, 6, 4, 2, 415, 416, 7, 77, 2, 2, 416, 417, 5, 6, 4, 2, 417, 419, 3, 2, 2, 2, 418, 402, 3, 2, 2, 2, 418, 413, 3, 2, 2, 2, 418, 419, 3, 2, 2, 2, 419, 43, 3, 2, 2, 2, 420, 422, 5, 6, 4, 2, 421, 423, 9, 10, 2, 2, 422, 421, 3, 2, 2, 2, 422, 423, 3, 2, 2, 2, 423, 45, 3, 2, 2, 2, 424, 425, 5, 6, 4, 2, 425, 47, 3, 2, 2, 2, 426, 431, 5, 54, 28, 2, 427, 428, 7, 116, 2, 2, 428, 430, 5, 54, 28, 2, 429, 427, 3, 2, 2, 2, 430, 433, 3, 2, 2, 2, 431, 429, 3, 2, 2, 2, 431, 432, 3, 2, 2, 2, 432, 49, 3, 2, 2, 2, 433, 431, 3, 2, 2, 2, 434, 435, 5, 100, 51, 2, 435, 436, 7, 112, 2, 2, 436, 438, 3, 2, 2, 2, 437, 434, 3, 2, 2, 2, 437, 438, 3, 2, 2, 2, 438, 444, 3, 2, 2, 2, 439, 445, 5, 112, 57, 2, 440, 441, 7, 113, 2, 2, 441, 445, 7, 32, 2, 2, 442, 443, 7, 113, 2, 2, 443, 445, 7, 83, 2, 2, 444, 439, 3, 2, 2, 2, 444, 440, 3, 2, 2, 2, 444, 442, 3, 2, 2, 2, 445, 448, 3, 2, 2, 2, 446, 448, 7, 42, 2, 2, 447, 437, 3, 2, 2, 2, 447, 446, 3, 2, 2, 2, 448, 450, 3, 2, 2, 2, 449, 451, 5, 74, 38, 2, 450, 449, 3, 2, 2, 2, 450, 451, 3, 2, 2, 2, 451, 51, 3, 2, 2, 2, 452, 453, 5, 82, 42, 2, 453, 454, 7, 99, 2, 2, 454, 455, 5, 6, 4, 2, 455, 461, 3, 2, 2, 2, 456, 458, 5, 6, 4, 2, 457, 459, 5, 74, 38, 2, 458, 457, 3, 2, 2, 2, 458, 459, 3, 2, 2, 2, 459, 461, 3, 2, 2, 2, 460, 452, 3, 2, 2, 2, 460, 456, 3, 2, 2, 2, 461, 53, 3, 2, 2, 2, 462, 466, 5, 50, 26, 2, 463, 466, 5, 52, 27, 2, 464, 466, 7, 117, 2, 2, 465, 462, 3, 2, 2, 2, 465, 463, 3, 2, 2, 2, 465, 464, 3, 2, 2, 2, 466, 55, 3, 2, 2, 2, 467, 472, 5, 58, 30, 2, 468, 469, 7, 116, 2, 2, 469, 471, 5, 58, 30, 2, 470, 468, 3, 2, 2, 2, 471, 474, 3, 2, 2, 2, 472, 470, 3, 2, 2, 2, 472, 473, 3, 2, 2, 2, 473, 57, 3, 2, 2, 2, 474, 472, 3, 2, 2, 2, 475, 481, 5, 60, 31, 2, 476, 477, 7, 114, 2, 2, 477, 478, 5, 60, 31, 2, 478, 479, 7, 115, 2, 2, 479, 481, 3, 2, 2, 2, 480, 475, 3, 2, 2, 2, 480, 476, 3, 2, 2, 2, 481, 59, 3, 2, 2, 2, 482, 486, 5, 62, 32, 2, 483, 485, 5, 64, 33, 2, 484, 483, 3, 2, 2, 2, 485, 488, 3, 2, 2, 2, 486, 484, 3, 2, 2, 2, 486, 487, 3, 2, 2, 2, 487, 61, 3, 2, 2, 2, 488, 486, 3, 2, 2, 2, 489, 491, 5, 100, 51, 2, 490, 492, 5, 76, 39, 2, 491, 490, 3, 2, 2, 2, 491, 492, 3, 2, 2, 2, 492, 508, 3, 2, 2, 2, 493, 498, 5, 66, 34, 2, 494, 496, 5, 76, 39, 2, 495, 497, 5, 80, 41, 2, 496, 495, 3, 2, 2, 2, 496, 497, 3, 2, 2, 2, 497, 499, 3, 2, 2, 2, 498, 494, 3, 2, 2, 2, 498, 499, 3, 2, 2, 2, 499, 508, 3, 2, 2, 2, 500, 505, 5, 68, 35, 2, 501, 503, 5, 76, 39, 2, 502, 504, 5, 80, 41, 2, 503, 502, 3, 2, 2, 2, 503, 504, 3, 2, 2, 2, 504, 506, 3, 2, 2, 2, 505, 501, 3, 2, 2, 2, 505, 506, 3, 2, 2, 2, 506, 508, 3, 2, 2, 2, 507, 489, 3, 2, 2, 2, 507, 493, 3, 2, 2, 2, 507, 500, 3, 2, 2, 2, 508, 63, 3, 2, 2, 2, 509, 511, 7, 35, 2, 2, 510, 509, 3, 2, 2, 2, 510, 511, 3, 2, 2, 2, 511, 517, 3, 2, 2, 2, 512, 514, 9, 11, 2, 2, 513, 515, 7, 46, 2, 2, 514, 513, 3, 2, 2, 2, 514, 515, 3, 2, 2, 2, 515, 517, 3, 2, 2, 2, 516, 510, 3, 2, 2, 2, 516, 512, 3, 2, 2, 2, 517, 518, 3, 2, 2, 2, 518, 519, 7, 38, 2, 2, 519, 520, 5, 58, 30, 2, 520, 521, 7, 43, 2, 2, 521, 522, 5, 22, 12, 2, 522, 533, 3, 2, 2, 2, 523, 524, 7, 13, 2, 2, 524, 525, 7, 38, 2, 2, 525, 533, 5, 58, 30, 2, 526, 527, 7, 13, 2, 2, 527, 528, 7, 64, 2, 2, 528, 533, 5, 58, 30, 2, 529, 530, 7, 46, 2, 2, 530, 531, 7, 64, 2, 2, 531, 533, 5, 58, 30, 2, 532, 516, 3, 2, 2, 2, 532, 523, 3, 2, 2, 2, 532, 526, 3, 2, 2, 2, 532, 529, 3, 2, 2, 2, 533, 65, 3, 2, 2, 2, 534, 545, 5, 20, 11, 2, 535, 536, 7, 114, 2, 2, 536, 537, 5, 20, 11, 2, 537, 538, 7, 115, 2, 2, 538, 545, 3, 2, 2, 2, 539, 545, 5, 84, 43, 2, 540, 541, 7, 114, 2, 2, 541, 542, 5, 84, 43, 2, 542, 543, 7, 115, 2, 2, 543, 545, 3, 2, 2, 2, 544, 534, 3, 2, 2, 2, 544, 535, 3, 2, 2, 2, 544, 539, 3, 2, 2, 2, 544, 540, 3, 2, 2, 2, 545, 67, 3, 2, 2, 2, 546, 547, 7, 65, 2, 2, 547, 548, 7, 114, 2, 2, 548, 549, 5, 6, 4, 2, 549, 550, 7, 6, 2, 2, 550, 551, 5, 106, 54, 2, 551, 552, 7, 115, 2, 2, 552, 636, 3, 2, 2, 2, 553, 554, 7, 12, 2, 2, 554, 555, 7, 114, 2, 2, 555, 556, 5, 106, 54, 2, 556, 557, 7, 116, 2, 2, 557, 560, 5, 6, 4, 2, 558, 559, 7, 116, 2, 2, 559, 561, 5, 6, 4, 2, 560, 558, 3, 2, 2, 2, 560, 561, 3, 2, 2, 2, 561, 562, 3, 2, 2, 2, 562, 563, 7, 115, 2, 2, 563, 636, 3, 2, 2, 2, 564, 636, 7, 17, 2, 2, 565, 636, 7, 18, 2, 2, 566, 567, 7, 68, 2, 2, 567, 568, 7, 114, 2, 2, 568, 569, 7, 94, 2, 2, 569, 570, 7, 116, 2, 2, 570, 571, 5, 6, 4, 2, 571, 572, 7, 116, 2, 2, 572, 573, 5, 6, 4, 2, 573, 574, 7, 115, 2, 2, 574, 636, 3, 2, 2, 2, 575, 576, 7, 69, 2, 2, 576, 577, 7, 114, 2, 2, 577, 578, 7, 94, 2, 2, 578, 579, 7, 116, 2, 2, 579, 580, 5, 6, 4, 2, 580, 581, 7, 116, 2, 2, 581, 582, 5, 6, 4, 2, 582, 583, 7, 115, 2, 2, 583, 636, 3, 2, 2, 2, 584, 585, 7, 70, 2, 2, 585, 586, 7, 114, 2, 2, 586, 587, 7, 94, 2, 2, 587, 588, 7, 116, 2, 2, 588, 589, 5, 6, 4, 2, 589, 590, 7, 115, 2, 2, 590, 636, 3, 2, 2, 2, 591, 592, 7, 71, 2, 2, 592, 593, 7, 114, 2, 2, 593, 594, 7, 94, 2, 2, 594, 595, 7, 116, 2, 2, 595, 596, 5, 6, 4, 2, 596, 597, 7, 115, 2, 2, 597, 636, 3, 2, 2, 2, 598, 636, 7, 75, 2, 2, 599, 636, 7, 52, 2, 2, 600, 636, 7, 55, 2, 2, 601, 602, 7, 33, 2, 2, 602, 603, 7, 114, 2, 2, 603, 604, 5, 22, 12, 2, 604, 605, 7, 116, 2, 2, 605, 606, 5, 6, 4, 2, 606, 607, 7, 116, 2, 2, 607, 608, 5, 6, 4, 2, 608, 609, 7, 115, 2, 2, 609, 636, 3, 2, 2, 2, 610, 611, 9, 12, 2, 2, 611, 612, 7, 114, 2, 2, 612, 613, 7, 117, 2, 2, 613, 615, 7, 115, 2, 2, 614, 616, 5, 88, 45, 2, 615, 614, 3, 2, 2, 2, 615, 616, 3, 2, 2, 2, 616, 636, 3, 2, 2, 2, 617, 618, 7, 94, 2, 2, 618, 620, 7, 114, 2, 2, 619, 621, 9, 6, 2, 2, 620, 619, 3, 2, 2, 2, 620, 621, 3, 2, 2, 2, 621, 623, 3, 2, 2, 2, 622, 624, 5, 86, 44, 2, 623, 622, 3, 2, 2, 2, 623, 624, 3, 2, 2, 2, 624, 625, 3, 2, 2, 2, 625, 633, 7, 115, 2, 2, 626, 627, 7, 63, 2, 2, 627, 628, 7, 30, 2, 2, 628, 629, 7, 114, 2, 2, 629, 630, 5, 42, 22, 2, 630, 631, 7, 115, 2, 2, 631, 634, 3, 2, 2, 2, 632, 634, 5, 88, 45, 2, 633, 626, 3, 2, 2, 2, 633, 632, 3, 2, 2, 2, 633, 634, 3, 2, 2, 2, 634, 636, 3, 2, 2, 2, 635, 546, 3, 2, 2, 2, 635, 553, 3, 2, 2, 2, 635, 564, 3, 2, 2, 2, 635, 565, 3, 2, 2, 2, 635, 566, 3, 2, 2, 2, 635, 575, 3, 2, 2, 2, 635, 584, 3, 2, 2, 2, 635, 591, 3, 2, 2, 2, 635, 598, 3, 2, 2, 2, 635, 599, 3, 2, 2, 2, 635, 600, 3, 2, 2, 2, 635, 601, 3, 2, 2, 2, 635, 610, 3, 2, 2, 2, 635, 617, 3, 2, 2, 2, 636, 69, 3, 2, 2, 2, 637, 638, 7, 60, 2, 2, 638, 639, 5, 6, 4, 2, 639, 640, 7, 56, 2, 2, 640, 641, 5, 6, 4, 2, 641, 71, 3, 2, 2, 2, 642, 643, 7, 60, 2, 2, 643, 644, 5, 22, 12, 2, 644, 645, 7, 56, 2, 2, 645, 646, 5, 6, 4, 2, 646, 73, 3, 2, 2, 2, 647, 649, 7, 6, 2, 2, 648, 647, 3, 2, 2, 2, 648, 649, 3, 2, 2, 2, 649, 650, 3, 2, 2, 2, 650, 651, 5, 82, 42, 2, 651, 75, 3, 2, 2, 2, 652, 654, 7, 6, 2, 2, 653, 652, 3, 2, 2, 2, 653, 654, 3, 2, 2, 2, 654, 655, 3, 2, 2, 2, 655, 656, 5, 78, 40, 2, 656, 77, 3, 2, 2, 2, 657, 658, 5, 112, 57, 2, 658, 79, 3, 2, 2, 2, 659, 660, 7, 114, 2, 2, 660, 665, 5, 82, 42, 2, 661, 662, 7, 116, 2, 2, 662, 664, 5, 82, 42, 2, 663, 661, 3, 2, 2, 2, 664, 667, 3, 2, 2, 2, 665, 663, 3, 2, 2, 2, 665, 666, 3, 2, 2, 2, 666, 668, 3, 2, 2, 2, 667, 665, 3, 2, 2, 2, 668, 669, 7, 115, 2, 2, 669, 81, 3, 2, 2, 2, 670, 673, 5, 112, 57, 2, 671, 673, 7, 95, 2, 2, 672, 670, 3, 2, 2, 2, 672, 671, 3, 2, 2, 2, 673, 83, 3, 2, 2, 2, 674, 675, 7, 59, 2, 2, 675, 676, 7, 114, 2, 2, 676, 677, 5, 86, 44, 2, 677, 685, 7, 115, 2, 2, 678, 679, 7, 116, 2, 2, 679, 680, 7, 114, 2, 2, 680, 681, 5, 86, 44, 2, 681, 682, 7, 115, 2, 2, 682, 684, 3, 2, 2, 2, 683, 678, 3, 2, 2, 2, 684, 687, 3, 2, 2, 2, 685, 683, 3, 2, 2, 2, 685, 686, 3, 2, 2, 2, 686, 85, 3, 2, 2, 2, 687, 685, 3, 2, 2, 2, 688, 693, 5, 6, 4, 2, 689, 690, 7, 116, 2, 2, 690, 692, 5, 6, 4, 2, 691, 689, 3, 2, 2, 2, 692, 695, 3, 2, 2, 2, 693, 691, 3, 2, 2, 2, 693, 694, 3, 2, 2, 2, 694, 87, 3, 2, 2, 2, 695, 693, 3, 2, 2, 2, 696, 697, 7, 47, 2, 2, 697, 701, 7, 114, 2, 2, 698, 699, 7, 79, 2, 2, 699, 700, 7, 9, 2, 2, 700, 702, 5, 86, 44, 2, 701, 698, 3, 2, 2, 2, 701, 702, 3, 2, 2, 2, 702, 704, 3, 2, 2, 2, 703, 705, 5, 42, 22, 2, 704, 703, 3, 2, 2, 2, 704, 705, 3, 2, 2, 2, 705, 707, 3, 2, 2, 2, 706, 708, 5, 90, 46, 2, 707, 706, 3, 2, 2, 2, 707, 708, 3, 2, 2, 2, 708, 709, 3, 2, 2, 2, 709, 710, 7, 115, 2, 2, 710, 89, 3, 2, 2, 2, 711, 712, 9, 13, 2, 2, 712, 713, 5, 92, 47, 2, 713, 91, 3, 2, 2, 2, 714, 721, 5, 96, 49, 2, 715, 716, 7, 8, 2, 2, 716, 717, 5, 94, 48, 2, 717, 718, 7, 4, 2, 2, 718, 719, 5, 94, 48, 2, 719, 721, 3, 2, 2, 2, 720, 714, 3, 2, 2, 2, 720, 715, 3, 2, 2, 2, 721, 93, 3, 2, 2, 2, 722, 725, 5, 96, 49, 2, 723, 725, 5, 98, 50, 2, 724, 722, 3, 2, 2, 2, 724, 723, 3, 2, 2, 2, 725, 95, 3, 2, 2, 2, 726, 727, 7, 86, 2, 2, 727, 733, 7, 80, 2, 2, 728, 729, 7, 93, 2, 2, 729, 733, 7, 80, 2, 2, 730, 731, 7, 14, 2, 2, 731, 733, 7, 82, 2, 2, 732, 726, 3, 2, 2, 2, 732, 728, 3, 2, 2, 2, 732, 730, 3, 2, 2, 2, 733, 97, 3, 2, 2, 2, 734, 735, 7, 86, 2, 2, 735, 739, 7, 73, 2, 2, 736, 737, 7, 93, 2, 2, 737, 739, 7, 73, 2, 2, 738, 734, 3, 2, 2, 2, 738, 736, 3, 2, 2, 2, 739, 99, 3, 2, 2, 2, 740, 745, 5, 112, 57, 2, 741, 742, 7, 112, 2, 2, 742, 744, 5, 112, 57, 2, 743, 741, 3, 2, 2, 2, 744, 747, 3, 2, 2, 2, 745, 743, 3, 2, 2, 2, 745, 746, 3, 2, 2, 2, 746, 101, 3, 2, 2, 2, 747, 745, 3, 2, 2, 2, 748, 749, 5, 100, 51, 2, 749, 750, 7, 112, 2, 2, 750, 752, 3, 2, 2, 2, 751, 748, 3, 2, 2, 2, 751, 752, 3, 2, 2, 2, 752, 753, 3, 2, 2, 2, 753, 754, 5, 112, 57, 2, 754, 103, 3, 2, 2, 2, 755, 757, 7, 41, 2, 2, 756, 755, 3, 2, 2, 2, 756, 757, 3, 2, 2, 2, 757, 758, 3, 2, 2, 2, 758, 759, 7, 42, 2, 2, 759, 105, 3, 2, 2, 2, 760, 762, 5, 112, 57, 2, 761, 763, 7, 32, 2, 2, 762, 761, 3, 2, 2, 2, 762, 763, 3, 2, 2, 2, 763, 771, 3, 2, 2, 2, 764, 765, 7, 114, 2, 2, 765, 768, 9, 14, 2, 2, 766, 767, 7, 116, 2, 2, 767, 769, 7, 93, 2, 2, 768, 766, 3, 2, 2, 2, 768, 769, 3, 2, 2, 2, 769, 770, 3, 2, 2, 2, 770, 772, 7, 115, 2, 2, 771, 764, 3, 2, 2, 2, 771, 772, 3, 2, 2, 2, 772, 778, 3, 2, 2, 2, 773, 775, 7, 21, 2, 2, 774, 776, 7, 49, 2, 2, 775, 774, 3, 2, 2, 2, 775, 776, 3, 2, 2, 2, 776, 778, 3, 2, 2, 2, 777, 760, 3, 2, 2, 2, 777, 773, 3, 2, 2, 2, 778, 107, 3, 2, 2, 2, 779, 795, 7, 95, 2, 2, 780, 795, 7, 96, 2, 2, 781, 783, 5, 110, 56, 2, 782, 781, 3, 2, 2, 2, 782, 783, 3, 2, 2, 2, 783, 784, 3, 2, 2, 2, 784, 795, 7, 93, 2, 2, 785, 787, 5, 110, 56, 2, 786, 785, 3, 2, 2, 2, 786, 787, 3, 2, 2, 2, 787, 788, 3, 2, 2, 2, 788, 795, 9, 7, 2, 2, 789, 791, 5, 110, 56, 2, 790, 789, 3, 2, 2, 2, 790, 791, 3, 2, 2, 2, 791, 792, 3, 2, 2, 2, 792, 793, 7, 113, 2, 2, 793, 795, 9, 15, 2, 2, 794, 779, 3, 2, 2, 2, 794, 780, 3, 2, 2, 2, 794, 782, 3, 2, 2, 2, 794, 786, 3, 2, 2, 2, 794, 790, 3, 2, 2, 2, 795, 109, 3, 2, 2, 2, 796, 797, 9, 4, 2, 2, 797, 111, 3, 2, 2, 2, 798, 802, 5, 114, 58, 2, 799, 802, 7, 90, 2, 2, 800, 802, 7, 92, 2, 2, 801, 798, 3, 2, 2, 2, 801, 799, 3, 2, 2, 2, 801, 800, 3, 2, 2, 2, 802, 113, 3, 2, 2, 2, 803, 804, 9, 16, 2, 2, 804, 115, 3, 2, 2, 2, 805, 821, 7, 99, 2, 2, 806, 821, 7, 100, 2, 2, 807, 821, 7, 101, 2, 2, 808, 809, 7, 101, 2, 2, 809, 821, 7, 99, 2, 2, 810, 811, 7, 100, 2, 2, 811, 821, 7, 99, 2, 2, 812, 813, 7, 101, 2, 2, 813, 821, 7, 100, 2, 2, 814, 815, 7, 102, 2, 2, 815, 821, 7, 99, 2, 2, 816, 817, 7, 102, 2, 2, 817, 821, 7, 100, 2, 2, 818, 819, 7, 102, 2, 2, 819, 821, 7, 101, 2, 2, 820, 805, 3, 2, 2, 2, 820, 806, 3, 2, 2, 2, 820, 807, 3, 2, 2, 2, 820, 808, 3, 2, 2, 2, 820, 810, 3, 2, 2, 2, 820, 812, 3, 2, 2, 2, 820, 814, 3, 2, 2, 2, 820, 816, 3, 2, 2, 2, 820, 818, 3, 2, 2, 2, 821, 117, 3, 2, 2, 2, 822, 823, 9, 17, 2, 2, 823, 119, 3, 2, 2, 2, 101, 127, 139, 158, 160, 166, 173, 177, 185, 189, 193, 199, 209, 218, 222, 231, 239, 243, 265, 274, 280, 286, 292, 302, 309, 314, 319, 323, 330, 334, 337, 342, 346, 351, 358, 361, 365, 370, 374, 383, 390, 399, 411, 418, 422, 431, 437, 444, 447, 450, 458, 460, 465, 472, 480, 486, 491, 496, 498, 503, 505, 507, 510, 514, 516, 532, 544, 560, 615, 620, 623, 633, 635, 648, 653, 665, 672, 685, 693, 701, 704, 707, 720, 724, 732, 738, 745, 751, 756, 762, 768, 771, 775, 777, 782, 786, 790, 794, 801, 820]