@cparra/apex-reflection 0.1.0-alpha.0 → 0.1.1-alpha.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/__tests__/end-to-end.test.ts +256 -0
- package/coverage/clover.xml +12857 -0
- package/coverage/coverage-final.json +3 -0
- package/coverage/lcov-report/base.css +224 -0
- package/coverage/lcov-report/block-navigation.js +79 -0
- package/coverage/lcov-report/favicon.png +0 -0
- package/coverage/lcov-report/index.html +126 -0
- package/coverage/lcov-report/index.js.html +104 -0
- package/coverage/lcov-report/out.js.html +41126 -0
- package/coverage/lcov-report/prettify.css +1 -0
- package/coverage/lcov-report/prettify.js +2 -0
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +170 -0
- package/coverage/lcov.info +24801 -0
- package/index.d.ts +118 -0
- package/index.js +8 -0
- package/index.ts +141 -0
- package/jest.config.js +11 -0
- package/out.js +13708 -0
- package/package.json +22 -17
- package/tsconfig.json +5 -3
- package/.idea/apexdocs-dart.iml +0 -18
- package/.idea/jsLibraryMappings.xml +0 -6
- package/.idea/libraries/Dart_Packages.xml +0 -556
- package/.idea/libraries/Dart_SDK.xml +0 -28
- package/.idea/misc.xml +0 -6
- package/.idea/modules.xml +0 -8
- package/.idea/runConfigurations/_template__of_Dart_Test.xml +0 -6
- package/.idea/vcs.xml +0 -6
- package/CHANGELOG.md +0 -3
- package/README.md +0 -26
- package/TODO.md +0 -5
- package/analysis_options.yaml +0 -30
- package/antlr4-4.9.2/CHANGELOG.md +0 -4
- package/antlr4-4.9.2/LICENSE +0 -52
- package/antlr4-4.9.2/README.md +0 -11
- package/antlr4-4.9.2/analysis_options.yaml +0 -1
- package/antlr4-4.9.2/lib/antlr4.dart +0 -21
- package/antlr4-4.9.2/lib/src/atn/atn.dart +0 -18
- package/antlr4-4.9.2/lib/src/atn/src/atn.dart +0 -170
- package/antlr4-4.9.2/lib/src/atn/src/atn_config.dart +0 -242
- package/antlr4-4.9.2/lib/src/atn/src/atn_config_set.dart +0 -283
- package/antlr4-4.9.2/lib/src/atn/src/atn_deserializer.dart +0 -809
- package/antlr4-4.9.2/lib/src/atn/src/atn_simulator.dart +0 -95
- package/antlr4-4.9.2/lib/src/atn/src/atn_state.dart +0 -296
- package/antlr4-4.9.2/lib/src/atn/src/atn_type.dart +0 -14
- package/antlr4-4.9.2/lib/src/atn/src/info.dart +0 -553
- package/antlr4-4.9.2/lib/src/atn/src/lexer_action.dart +0 -601
- package/antlr4-4.9.2/lib/src/atn/src/lexer_action_executor.dart +0 -167
- package/antlr4-4.9.2/lib/src/atn/src/lexer_atn_simulator.dart +0 -731
- package/antlr4-4.9.2/lib/src/atn/src/parser_atn_simulator.dart +0 -2630
- package/antlr4-4.9.2/lib/src/atn/src/profiling_atn_simulator.dart +0 -229
- package/antlr4-4.9.2/lib/src/atn/src/semantic_context.dart +0 -404
- package/antlr4-4.9.2/lib/src/atn/src/transition.dart +0 -305
- package/antlr4-4.9.2/lib/src/dfa/dfa.dart +0 -8
- package/antlr4-4.9.2/lib/src/dfa/src/dfa.dart +0 -138
- package/antlr4-4.9.2/lib/src/dfa/src/dfa_serializer.dart +0 -76
- package/antlr4-4.9.2/lib/src/dfa/src/dfa_state.dart +0 -151
- package/antlr4-4.9.2/lib/src/error/error.dart +0 -10
- package/antlr4-4.9.2/lib/src/error/src/diagnostic_error_listener.dart +0 -116
- package/antlr4-4.9.2/lib/src/error/src/error_listener.dart +0 -241
- package/antlr4-4.9.2/lib/src/error/src/error_strategy.dart +0 -902
- package/antlr4-4.9.2/lib/src/error/src/errors.dart +0 -204
- package/antlr4-4.9.2/lib/src/input_stream.dart +0 -335
- package/antlr4-4.9.2/lib/src/interval_set.dart +0 -735
- package/antlr4-4.9.2/lib/src/lexer.dart +0 -343
- package/antlr4-4.9.2/lib/src/ll1_analyzer.dart +0 -204
- package/antlr4-4.9.2/lib/src/misc/multi_map.dart +0 -32
- package/antlr4-4.9.2/lib/src/misc/pair.dart +0 -34
- package/antlr4-4.9.2/lib/src/parser.dart +0 -777
- package/antlr4-4.9.2/lib/src/parser_interpreter.dart +0 -393
- package/antlr4-4.9.2/lib/src/parser_rule_context.dart +0 -275
- package/antlr4-4.9.2/lib/src/prediction_context.dart +0 -877
- package/antlr4-4.9.2/lib/src/recognizer.dart +0 -182
- package/antlr4-4.9.2/lib/src/rule_context.dart +0 -192
- package/antlr4-4.9.2/lib/src/runtime_meta_data.dart +0 -188
- package/antlr4-4.9.2/lib/src/token.dart +0 -431
- package/antlr4-4.9.2/lib/src/token_factory.dart +0 -88
- package/antlr4-4.9.2/lib/src/token_source.dart +0 -241
- package/antlr4-4.9.2/lib/src/token_stream.dart +0 -627
- package/antlr4-4.9.2/lib/src/tree/src/pattern/chunk.dart +0 -90
- package/antlr4-4.9.2/lib/src/tree/src/pattern/parse_tree_match.dart +0 -635
- package/antlr4-4.9.2/lib/src/tree/src/tree.dart +0 -370
- package/antlr4-4.9.2/lib/src/tree/src/trees.dart +0 -226
- package/antlr4-4.9.2/lib/src/tree/tree.dart +0 -10
- package/antlr4-4.9.2/lib/src/util/bit_set.dart +0 -308
- package/antlr4-4.9.2/lib/src/util/murmur_hash.dart +0 -77
- package/antlr4-4.9.2/lib/src/util/utils.dart +0 -31
- package/antlr4-4.9.2/lib/src/vocabulary.dart +0 -254
- package/antlr4-4.9.2/pubspec.yaml +0 -13
- package/example/node_example/index.js +0 -8
- package/example/node_example/package.json +0 -12
- package/example/node_example_ts/package-lock.json +0 -70
- package/example/node_example_ts/package.json +0 -19
- package/example/node_example_ts/src/index.js +0 -5
- package/example/node_example_ts/src/index.ts +0 -9
- package/example/node_example_ts/tsconfig.json +0 -79
- package/js/dart2jsout.js +0 -25898
- package/js/dart2jsout.js.map +0 -16
- package/js/index.d.ts +0 -1
- package/js/index.js +0 -4
- package/js/out.js +0 -26023
- package/js/out.js.map +0 -16
- package/js/package-lock.json +0 -57
- package/js/preamble.js +0 -125
- package/lib/apexdocs_dart.dart +0 -28
- package/lib/src/antlr/grammars/Apexdoc/ApexdocLexer.g4 +0 -120
- package/lib/src/antlr/grammars/Apexdoc/ApexdocParser.g4 +0 -158
- package/lib/src/antlr/grammars/Apexdoc/gen/ApexdocLexer.interp +0 -95
- package/lib/src/antlr/grammars/Apexdoc/gen/ApexdocLexer.java +0 -238
- package/lib/src/antlr/grammars/Apexdoc/gen/ApexdocLexer.tokens +0 -23
- package/lib/src/antlr/grammars/apex/ApexLexer.g4 +0 -255
- package/lib/src/antlr/grammars/apex/ApexParser.g4 +0 -567
- package/lib/src/antlr/grammars/apex/examples/ApexClass.cls +0 -6
- package/lib/src/antlr/lib/apex/ApexLexer.dart +0 -1223
- package/lib/src/antlr/lib/apex/ApexLexer.interp +0 -393
- package/lib/src/antlr/lib/apex/ApexLexer.tokens +0 -212
- package/lib/src/antlr/lib/apex/ApexParser.dart +0 -9349
- package/lib/src/antlr/lib/apex/ApexParser.interp +0 -326
- package/lib/src/antlr/lib/apex/ApexParser.tokens +0 -212
- package/lib/src/antlr/lib/apex/ApexParserBaseListener.dart +0 -1036
- package/lib/src/antlr/lib/apex/ApexParserListener.dart +0 -975
- package/lib/src/antlr/lib/apexdoc/ApexdocLexer.dart +0 -373
- package/lib/src/antlr/lib/apexdoc/ApexdocLexer.interp +0 -95
- package/lib/src/antlr/lib/apexdoc/ApexdocLexer.tokens +0 -23
- package/lib/src/antlr/lib/apexdoc/ApexdocParser.dart +0 -2471
- package/lib/src/antlr/lib/apexdoc/ApexdocParser.interp +0 -69
- package/lib/src/antlr/lib/apexdoc/ApexdocParser.tokens +0 -23
- package/lib/src/antlr/lib/apexdoc/ApexdocParserBaseListener.dart +0 -252
- package/lib/src/antlr/lib/apexdoc/ApexdocParserListener.dart +0 -215
- package/lib/src/builders/builders.dart +0 -32
- package/lib/src/model/apex_file_manifest.dart +0 -37
- package/lib/src/model/apex_file_manifest.g.dart +0 -18
- package/lib/src/model/declaration.dart +0 -50
- package/lib/src/model/doc_comment.dart +0 -117
- package/lib/src/model/doc_comment.g.dart +0 -118
- package/lib/src/model/members.dart +0 -143
- package/lib/src/model/members.g.dart +0 -105
- package/lib/src/model/types.dart +0 -159
- package/lib/src/model/types.g.dart +0 -111
- package/lib/src/service/apex_listener.dart +0 -226
- package/lib/src/service/apexdoc_listener.dart +0 -82
- package/lib/src/service/parsers.dart +0 -33
- package/lib/src/service/utils/parsing/access_modifiers_parser.dart +0 -33
- package/lib/src/service/utils/parsing/parameters_parser.dart +0 -18
- package/lib/src/service/utils/parsing/parsing_utils.dart +0 -2
- package/lib/src/service/walker.dart +0 -82
- package/pubspec.yaml +0 -19
- package/test/apex_file_manifest_test.dart +0 -16
- package/test/apex_listener_test.dart +0 -703
- package/test/apexdoc_parser_test.dart +0 -179
- package/test/doc_comment_test.dart +0 -89
- package/test/members_serialization_test.dart +0 -158
- package/test/members_test.dart +0 -178
- package/test/types_serialization_test.dart +0 -191
- package/test/types_test.dart +0 -311
- package/test/walker_test.dart +0 -58
- package/tool/grind.dart +0 -20
|
@@ -1,326 +0,0 @@
|
|
|
1
|
-
token literal names:
|
|
2
|
-
null
|
|
3
|
-
'abstract'
|
|
4
|
-
'after'
|
|
5
|
-
'before'
|
|
6
|
-
'break'
|
|
7
|
-
'catch'
|
|
8
|
-
'class'
|
|
9
|
-
'continue'
|
|
10
|
-
'delete'
|
|
11
|
-
'do'
|
|
12
|
-
'else'
|
|
13
|
-
null
|
|
14
|
-
'extends'
|
|
15
|
-
'final'
|
|
16
|
-
'finally'
|
|
17
|
-
'for'
|
|
18
|
-
'get'
|
|
19
|
-
'global'
|
|
20
|
-
'if'
|
|
21
|
-
'implements'
|
|
22
|
-
'inherited'
|
|
23
|
-
'insert'
|
|
24
|
-
null
|
|
25
|
-
'interface'
|
|
26
|
-
'merge'
|
|
27
|
-
'new'
|
|
28
|
-
'null'
|
|
29
|
-
'on'
|
|
30
|
-
'override'
|
|
31
|
-
'private'
|
|
32
|
-
'protected'
|
|
33
|
-
'public'
|
|
34
|
-
'return'
|
|
35
|
-
null
|
|
36
|
-
'set'
|
|
37
|
-
'sharing'
|
|
38
|
-
'static'
|
|
39
|
-
'super'
|
|
40
|
-
'switch'
|
|
41
|
-
null
|
|
42
|
-
'this'
|
|
43
|
-
'throw'
|
|
44
|
-
'transient'
|
|
45
|
-
'trigger'
|
|
46
|
-
'try'
|
|
47
|
-
'undelete'
|
|
48
|
-
'update'
|
|
49
|
-
'upsert'
|
|
50
|
-
'virtual'
|
|
51
|
-
'void'
|
|
52
|
-
'webservice'
|
|
53
|
-
'when'
|
|
54
|
-
'while'
|
|
55
|
-
'with'
|
|
56
|
-
'without'
|
|
57
|
-
'list'
|
|
58
|
-
'map'
|
|
59
|
-
null
|
|
60
|
-
null
|
|
61
|
-
null
|
|
62
|
-
null
|
|
63
|
-
null
|
|
64
|
-
'('
|
|
65
|
-
')'
|
|
66
|
-
'{'
|
|
67
|
-
'}'
|
|
68
|
-
'['
|
|
69
|
-
']'
|
|
70
|
-
';'
|
|
71
|
-
','
|
|
72
|
-
'.'
|
|
73
|
-
'='
|
|
74
|
-
'>'
|
|
75
|
-
'<'
|
|
76
|
-
'!'
|
|
77
|
-
'~'
|
|
78
|
-
'?.'
|
|
79
|
-
'?'
|
|
80
|
-
':'
|
|
81
|
-
'=='
|
|
82
|
-
'==='
|
|
83
|
-
'!='
|
|
84
|
-
'<>'
|
|
85
|
-
'!=='
|
|
86
|
-
'&&'
|
|
87
|
-
'||'
|
|
88
|
-
'++'
|
|
89
|
-
'--'
|
|
90
|
-
'+'
|
|
91
|
-
'-'
|
|
92
|
-
'*'
|
|
93
|
-
'/'
|
|
94
|
-
'&'
|
|
95
|
-
'|'
|
|
96
|
-
'^'
|
|
97
|
-
'%'
|
|
98
|
-
'=>'
|
|
99
|
-
'+='
|
|
100
|
-
'-='
|
|
101
|
-
'*='
|
|
102
|
-
'/='
|
|
103
|
-
'&='
|
|
104
|
-
'|='
|
|
105
|
-
'^='
|
|
106
|
-
'%='
|
|
107
|
-
'<<='
|
|
108
|
-
'>>='
|
|
109
|
-
'>>>='
|
|
110
|
-
'@'
|
|
111
|
-
null
|
|
112
|
-
null
|
|
113
|
-
null
|
|
114
|
-
null
|
|
115
|
-
null
|
|
116
|
-
|
|
117
|
-
token symbolic names:
|
|
118
|
-
null
|
|
119
|
-
ABSTRACT
|
|
120
|
-
AFTER
|
|
121
|
-
BEFORE
|
|
122
|
-
BREAK
|
|
123
|
-
CATCH
|
|
124
|
-
CLASS
|
|
125
|
-
CONTINUE
|
|
126
|
-
DELETE
|
|
127
|
-
DO
|
|
128
|
-
ELSE
|
|
129
|
-
ENUM
|
|
130
|
-
EXTENDS
|
|
131
|
-
FINAL
|
|
132
|
-
FINALLY
|
|
133
|
-
FOR
|
|
134
|
-
GET
|
|
135
|
-
GLOBAL
|
|
136
|
-
IF
|
|
137
|
-
IMPLEMENTS
|
|
138
|
-
INHERITED
|
|
139
|
-
INSERT
|
|
140
|
-
INSTANCEOF
|
|
141
|
-
INTERFACE
|
|
142
|
-
MERGE
|
|
143
|
-
NEW
|
|
144
|
-
NULL
|
|
145
|
-
ON
|
|
146
|
-
OVERRIDE
|
|
147
|
-
PRIVATE
|
|
148
|
-
PROTECTED
|
|
149
|
-
PUBLIC
|
|
150
|
-
RETURN
|
|
151
|
-
SYSTEMRUNAS
|
|
152
|
-
SET
|
|
153
|
-
SHARING
|
|
154
|
-
STATIC
|
|
155
|
-
SUPER
|
|
156
|
-
SWITCH
|
|
157
|
-
TESTMETHOD
|
|
158
|
-
THIS
|
|
159
|
-
THROW
|
|
160
|
-
TRANSIENT
|
|
161
|
-
TRIGGER
|
|
162
|
-
TRY
|
|
163
|
-
UNDELETE
|
|
164
|
-
UPDATE
|
|
165
|
-
UPSERT
|
|
166
|
-
VIRTUAL
|
|
167
|
-
VOID
|
|
168
|
-
WEBSERVICE
|
|
169
|
-
WHEN
|
|
170
|
-
WHILE
|
|
171
|
-
WITH
|
|
172
|
-
WITHOUT
|
|
173
|
-
LIST
|
|
174
|
-
MAP
|
|
175
|
-
IntegerLiteral
|
|
176
|
-
NumberLiteral
|
|
177
|
-
BooleanLiteral
|
|
178
|
-
StringLiteral
|
|
179
|
-
NullLiteral
|
|
180
|
-
LPAREN
|
|
181
|
-
RPAREN
|
|
182
|
-
LBRACE
|
|
183
|
-
RBRACE
|
|
184
|
-
LBRACK
|
|
185
|
-
RBRACK
|
|
186
|
-
SEMI
|
|
187
|
-
COMMA
|
|
188
|
-
DOT
|
|
189
|
-
ASSIGN
|
|
190
|
-
GT
|
|
191
|
-
LT
|
|
192
|
-
BANG
|
|
193
|
-
TILDE
|
|
194
|
-
QUESTIONDOT
|
|
195
|
-
QUESTION
|
|
196
|
-
COLON
|
|
197
|
-
EQUAL
|
|
198
|
-
TRIPLEEQUAL
|
|
199
|
-
NOTEQUAL
|
|
200
|
-
LESSANDGREATER
|
|
201
|
-
TRIPLENOTEQUAL
|
|
202
|
-
AND
|
|
203
|
-
OR
|
|
204
|
-
INC
|
|
205
|
-
DEC
|
|
206
|
-
ADD
|
|
207
|
-
SUB
|
|
208
|
-
MUL
|
|
209
|
-
DIV
|
|
210
|
-
BITAND
|
|
211
|
-
BITOR
|
|
212
|
-
CARET
|
|
213
|
-
MOD
|
|
214
|
-
MAPTO
|
|
215
|
-
ADD_ASSIGN
|
|
216
|
-
SUB_ASSIGN
|
|
217
|
-
MUL_ASSIGN
|
|
218
|
-
DIV_ASSIGN
|
|
219
|
-
AND_ASSIGN
|
|
220
|
-
OR_ASSIGN
|
|
221
|
-
XOR_ASSIGN
|
|
222
|
-
MOD_ASSIGN
|
|
223
|
-
LSHIFT_ASSIGN
|
|
224
|
-
RSHIFT_ASSIGN
|
|
225
|
-
URSHIFT_ASSIGN
|
|
226
|
-
AT
|
|
227
|
-
Identifier
|
|
228
|
-
DOC_COMMENT
|
|
229
|
-
WS
|
|
230
|
-
COMMENT
|
|
231
|
-
LINE_COMMENT
|
|
232
|
-
|
|
233
|
-
rule names:
|
|
234
|
-
triggerUnit
|
|
235
|
-
triggerCase
|
|
236
|
-
compilationUnit
|
|
237
|
-
typeDeclaration
|
|
238
|
-
classDeclaration
|
|
239
|
-
enumDeclaration
|
|
240
|
-
enumConstants
|
|
241
|
-
interfaceDeclaration
|
|
242
|
-
typeList
|
|
243
|
-
classBody
|
|
244
|
-
interfaceBody
|
|
245
|
-
classBodyDeclaration
|
|
246
|
-
modifier
|
|
247
|
-
memberDeclaration
|
|
248
|
-
methodDeclaration
|
|
249
|
-
constructorDeclaration
|
|
250
|
-
fieldDeclaration
|
|
251
|
-
propertyDeclaration
|
|
252
|
-
interfaceMethodDeclaration
|
|
253
|
-
variableDeclarators
|
|
254
|
-
variableDeclarator
|
|
255
|
-
arrayInitializer
|
|
256
|
-
typeRef
|
|
257
|
-
arraySubscripts
|
|
258
|
-
typeName
|
|
259
|
-
typeArguments
|
|
260
|
-
formalParameters
|
|
261
|
-
formalParameterList
|
|
262
|
-
formalParameter
|
|
263
|
-
qualifiedName
|
|
264
|
-
literal
|
|
265
|
-
annotation
|
|
266
|
-
elementValuePairs
|
|
267
|
-
elementValuePair
|
|
268
|
-
elementValue
|
|
269
|
-
elementValueArrayInitializer
|
|
270
|
-
block
|
|
271
|
-
localVariableDeclarationStatement
|
|
272
|
-
localVariableDeclaration
|
|
273
|
-
statement
|
|
274
|
-
ifStatement
|
|
275
|
-
switchStatement
|
|
276
|
-
whenControl
|
|
277
|
-
whenValue
|
|
278
|
-
whenLiteral
|
|
279
|
-
forStatement
|
|
280
|
-
whileStatement
|
|
281
|
-
doWhileStatement
|
|
282
|
-
tryStatement
|
|
283
|
-
returnStatement
|
|
284
|
-
throwStatement
|
|
285
|
-
breakStatement
|
|
286
|
-
continueStatement
|
|
287
|
-
insertStatement
|
|
288
|
-
updateStatement
|
|
289
|
-
deleteStatement
|
|
290
|
-
undeleteStatement
|
|
291
|
-
upsertStatement
|
|
292
|
-
mergeStatement
|
|
293
|
-
runAsStatement
|
|
294
|
-
expressionStatement
|
|
295
|
-
propertyBlock
|
|
296
|
-
getter
|
|
297
|
-
setter
|
|
298
|
-
catchClause
|
|
299
|
-
finallyBlock
|
|
300
|
-
forControl
|
|
301
|
-
forInit
|
|
302
|
-
enhancedForControl
|
|
303
|
-
forUpdate
|
|
304
|
-
parExpression
|
|
305
|
-
expressionList
|
|
306
|
-
expression
|
|
307
|
-
primary
|
|
308
|
-
methodCall
|
|
309
|
-
dotMethodCall
|
|
310
|
-
creator
|
|
311
|
-
createdName
|
|
312
|
-
idCreatedNamePair
|
|
313
|
-
noRest
|
|
314
|
-
classCreatorRest
|
|
315
|
-
arrayCreatorRest
|
|
316
|
-
mapCreatorRest
|
|
317
|
-
mapCreatorRestPair
|
|
318
|
-
setCreatorRest
|
|
319
|
-
arguments
|
|
320
|
-
soqlLiteral
|
|
321
|
-
id
|
|
322
|
-
anyId
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
atn:
|
|
326
|
-
[3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 3, 115, 997, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4, 18, 9, 18, 4, 19, 9, 19, 4, 20, 9, 20, 4, 21, 9, 21, 4, 22, 9, 22, 4, 23, 9, 23, 4, 24, 9, 24, 4, 25, 9, 25, 4, 26, 9, 26, 4, 27, 9, 27, 4, 28, 9, 28, 4, 29, 9, 29, 4, 30, 9, 30, 4, 31, 9, 31, 4, 32, 9, 32, 4, 33, 9, 33, 4, 34, 9, 34, 4, 35, 9, 35, 4, 36, 9, 36, 4, 37, 9, 37, 4, 38, 9, 38, 4, 39, 9, 39, 4, 40, 9, 40, 4, 41, 9, 41, 4, 42, 9, 42, 4, 43, 9, 43, 4, 44, 9, 44, 4, 45, 9, 45, 4, 46, 9, 46, 4, 47, 9, 47, 4, 48, 9, 48, 4, 49, 9, 49, 4, 50, 9, 50, 4, 51, 9, 51, 4, 52, 9, 52, 4, 53, 9, 53, 4, 54, 9, 54, 4, 55, 9, 55, 4, 56, 9, 56, 4, 57, 9, 57, 4, 58, 9, 58, 4, 59, 9, 59, 4, 60, 9, 60, 4, 61, 9, 61, 4, 62, 9, 62, 4, 63, 9, 63, 4, 64, 9, 64, 4, 65, 9, 65, 4, 66, 9, 66, 4, 67, 9, 67, 4, 68, 9, 68, 4, 69, 9, 69, 4, 70, 9, 70, 4, 71, 9, 71, 4, 72, 9, 72, 4, 73, 9, 73, 4, 74, 9, 74, 4, 75, 9, 75, 4, 76, 9, 76, 4, 77, 9, 77, 4, 78, 9, 78, 4, 79, 9, 79, 4, 80, 9, 80, 4, 81, 9, 81, 4, 82, 9, 82, 4, 83, 9, 83, 4, 84, 9, 84, 4, 85, 9, 85, 4, 86, 9, 86, 4, 87, 9, 87, 4, 88, 9, 88, 4, 89, 9, 89, 4, 90, 9, 90, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 7, 2, 189, 10, 2, 12, 2, 14, 2, 192, 11, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 3, 3, 3, 3, 3, 3, 4, 3, 4, 3, 4, 3, 5, 5, 5, 205, 10, 5, 3, 5, 7, 5, 208, 10, 5, 12, 5, 14, 5, 211, 11, 5, 3, 5, 3, 5, 5, 5, 215, 10, 5, 3, 5, 7, 5, 218, 10, 5, 12, 5, 14, 5, 221, 11, 5, 3, 5, 3, 5, 5, 5, 225, 10, 5, 3, 5, 7, 5, 228, 10, 5, 12, 5, 14, 5, 231, 11, 5, 3, 5, 5, 5, 234, 10, 5, 3, 6, 3, 6, 3, 6, 3, 6, 5, 6, 240, 10, 6, 3, 6, 3, 6, 5, 6, 244, 10, 6, 3, 6, 3, 6, 3, 7, 3, 7, 3, 7, 3, 7, 5, 7, 252, 10, 7, 3, 7, 3, 7, 3, 8, 3, 8, 3, 8, 7, 8, 259, 10, 8, 12, 8, 14, 8, 262, 11, 8, 3, 9, 3, 9, 3, 9, 3, 9, 5, 9, 268, 10, 9, 3, 9, 3, 9, 3, 10, 3, 10, 3, 10, 7, 10, 275, 10, 10, 12, 10, 14, 10, 278, 11, 10, 3, 11, 3, 11, 7, 11, 282, 10, 11, 12, 11, 14, 11, 285, 11, 11, 3, 11, 3, 11, 3, 12, 3, 12, 7, 12, 291, 10, 12, 12, 12, 14, 12, 294, 11, 12, 3, 12, 3, 12, 3, 13, 3, 13, 5, 13, 300, 10, 13, 3, 13, 3, 13, 5, 13, 304, 10, 13, 3, 13, 7, 13, 307, 10, 13, 12, 13, 14, 13, 310, 11, 13, 3, 13, 5, 13, 313, 10, 13, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 5, 14, 334, 10, 14, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 5, 15, 343, 10, 15, 3, 16, 3, 16, 5, 16, 347, 10, 16, 3, 16, 3, 16, 3, 16, 3, 16, 5, 16, 353, 10, 16, 3, 17, 3, 17, 3, 17, 3, 17, 3, 18, 3, 18, 3, 18, 3, 18, 3, 19, 3, 19, 3, 19, 3, 19, 7, 19, 367, 10, 19, 12, 19, 14, 19, 370, 11, 19, 3, 19, 3, 19, 3, 20, 5, 20, 375, 10, 20, 3, 20, 7, 20, 378, 10, 20, 12, 20, 14, 20, 381, 11, 20, 3, 20, 3, 20, 5, 20, 385, 10, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 21, 3, 21, 3, 21, 7, 21, 394, 10, 21, 12, 21, 14, 21, 397, 11, 21, 3, 22, 3, 22, 3, 22, 5, 22, 402, 10, 22, 3, 23, 3, 23, 3, 23, 3, 23, 7, 23, 408, 10, 23, 12, 23, 14, 23, 411, 11, 23, 3, 23, 5, 23, 414, 10, 23, 5, 23, 416, 10, 23, 3, 23, 3, 23, 3, 24, 3, 24, 3, 24, 7, 24, 423, 10, 24, 12, 24, 14, 24, 426, 11, 24, 3, 24, 3, 24, 3, 25, 3, 25, 7, 25, 432, 10, 25, 12, 25, 14, 25, 435, 11, 25, 3, 26, 3, 26, 5, 26, 439, 10, 26, 3, 26, 3, 26, 5, 26, 443, 10, 26, 3, 26, 3, 26, 5, 26, 447, 10, 26, 3, 26, 3, 26, 5, 26, 451, 10, 26, 5, 26, 453, 10, 26, 3, 27, 3, 27, 3, 27, 3, 27, 3, 28, 3, 28, 5, 28, 461, 10, 28, 3, 28, 3, 28, 3, 29, 3, 29, 3, 29, 7, 29, 468, 10, 29, 12, 29, 14, 29, 471, 11, 29, 3, 30, 7, 30, 474, 10, 30, 12, 30, 14, 30, 477, 11, 30, 3, 30, 3, 30, 3, 30, 3, 31, 3, 31, 3, 31, 7, 31, 485, 10, 31, 12, 31, 14, 31, 488, 11, 31, 3, 32, 3, 32, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 5, 33, 497, 10, 33, 3, 33, 5, 33, 500, 10, 33, 3, 34, 3, 34, 5, 34, 504, 10, 34, 3, 34, 7, 34, 507, 10, 34, 12, 34, 14, 34, 510, 11, 34, 3, 35, 3, 35, 3, 35, 3, 35, 3, 36, 3, 36, 3, 36, 5, 36, 519, 10, 36, 3, 37, 3, 37, 3, 37, 3, 37, 7, 37, 525, 10, 37, 12, 37, 14, 37, 528, 11, 37, 5, 37, 530, 10, 37, 3, 37, 5, 37, 533, 10, 37, 3, 37, 3, 37, 3, 38, 3, 38, 7, 38, 539, 10, 38, 12, 38, 14, 38, 542, 11, 38, 3, 38, 3, 38, 3, 39, 3, 39, 3, 39, 3, 40, 7, 40, 550, 10, 40, 12, 40, 14, 40, 553, 11, 40, 3, 40, 3, 40, 3, 40, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 5, 41, 578, 10, 41, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 5, 42, 585, 10, 42, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 6, 43, 592, 10, 43, 13, 43, 14, 43, 593, 3, 43, 3, 43, 3, 44, 3, 44, 3, 44, 3, 44, 3, 45, 3, 45, 3, 45, 3, 45, 7, 45, 606, 10, 45, 12, 45, 14, 45, 609, 11, 45, 3, 45, 3, 45, 3, 45, 5, 45, 614, 10, 45, 3, 46, 5, 46, 617, 10, 46, 3, 46, 3, 46, 3, 46, 3, 46, 5, 46, 623, 10, 46, 3, 47, 3, 47, 3, 47, 3, 47, 3, 47, 3, 47, 3, 48, 3, 48, 3, 48, 3, 48, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 50, 3, 50, 3, 50, 6, 50, 644, 10, 50, 13, 50, 14, 50, 645, 3, 50, 5, 50, 649, 10, 50, 3, 50, 5, 50, 652, 10, 50, 3, 51, 3, 51, 5, 51, 656, 10, 51, 3, 51, 3, 51, 3, 52, 3, 52, 3, 52, 3, 52, 3, 53, 3, 53, 3, 53, 3, 54, 3, 54, 3, 54, 3, 55, 3, 55, 3, 55, 3, 55, 3, 56, 3, 56, 3, 56, 3, 56, 3, 57, 3, 57, 3, 57, 3, 57, 3, 58, 3, 58, 3, 58, 3, 58, 3, 59, 3, 59, 3, 59, 5, 59, 689, 10, 59, 3, 59, 3, 59, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 61, 3, 61, 3, 61, 5, 61, 701, 10, 61, 3, 61, 3, 61, 3, 61, 3, 62, 3, 62, 3, 62, 3, 63, 7, 63, 710, 10, 63, 12, 63, 14, 63, 713, 11, 63, 3, 63, 3, 63, 5, 63, 717, 10, 63, 3, 64, 3, 64, 3, 64, 5, 64, 722, 10, 64, 3, 65, 3, 65, 3, 65, 5, 65, 727, 10, 65, 3, 66, 3, 66, 3, 66, 7, 66, 732, 10, 66, 12, 66, 14, 66, 735, 11, 66, 3, 66, 3, 66, 3, 66, 3, 66, 3, 66, 3, 67, 3, 67, 3, 67, 3, 68, 3, 68, 5, 68, 747, 10, 68, 3, 68, 3, 68, 5, 68, 751, 10, 68, 3, 68, 3, 68, 5, 68, 755, 10, 68, 5, 68, 757, 10, 68, 3, 69, 3, 69, 5, 69, 761, 10, 69, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 71, 3, 71, 3, 72, 3, 72, 3, 72, 3, 72, 3, 73, 3, 73, 3, 73, 7, 73, 777, 10, 73, 12, 73, 14, 73, 780, 11, 73, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 5, 74, 796, 10, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 5, 74, 812, 10, 74, 3, 74, 3, 74, 3, 74, 3, 74, 5, 74, 818, 10, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 5, 74, 852, 10, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 7, 74, 864, 10, 74, 12, 74, 14, 74, 867, 11, 74, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 5, 75, 882, 10, 75, 3, 76, 3, 76, 3, 76, 5, 76, 887, 10, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 5, 76, 894, 10, 76, 3, 76, 3, 76, 3, 76, 3, 76, 5, 76, 900, 10, 76, 3, 76, 5, 76, 903, 10, 76, 3, 77, 3, 77, 3, 77, 5, 77, 908, 10, 77, 3, 77, 3, 77, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 5, 78, 918, 10, 78, 3, 79, 3, 79, 3, 79, 7, 79, 923, 10, 79, 12, 79, 14, 79, 926, 11, 79, 3, 80, 3, 80, 3, 80, 3, 80, 3, 80, 5, 80, 933, 10, 80, 3, 81, 3, 81, 3, 81, 3, 82, 3, 82, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 5, 83, 947, 10, 83, 5, 83, 949, 10, 83, 3, 84, 3, 84, 3, 84, 3, 84, 7, 84, 955, 10, 84, 12, 84, 14, 84, 958, 11, 84, 3, 84, 3, 84, 3, 85, 3, 85, 3, 85, 3, 85, 3, 86, 3, 86, 3, 86, 3, 86, 7, 86, 970, 10, 86, 12, 86, 14, 86, 973, 11, 86, 3, 86, 3, 86, 3, 87, 3, 87, 5, 87, 979, 10, 87, 3, 87, 3, 87, 3, 88, 3, 88, 3, 88, 7, 88, 986, 10, 88, 12, 88, 14, 88, 989, 11, 88, 3, 88, 3, 88, 3, 89, 3, 89, 3, 90, 3, 90, 3, 90, 3, 987, 3, 146, 91, 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, 2, 17, 3, 2, 4, 5, 5, 2, 10, 10, 23, 23, 47, 48, 4, 2, 28, 28, 59, 62, 3, 2, 88, 91, 3, 2, 76, 77, 4, 2, 92, 93, 97, 97, 3, 2, 90, 91, 3, 2, 74, 75, 3, 2, 81, 85, 4, 2, 73, 73, 99, 109, 4, 2, 72, 72, 78, 78, 3, 2, 88, 89, 3, 2, 69, 69, 12, 2, 4, 5, 18, 18, 22, 22, 24, 24, 36, 37, 40, 40, 44, 45, 53, 53, 55, 56, 111, 111, 6, 2, 3, 34, 36, 50, 52, 58, 111, 111, 2, 1081, 2, 180, 3, 2, 2, 2, 4, 197, 3, 2, 2, 2, 6, 200, 3, 2, 2, 2, 8, 233, 3, 2, 2, 2, 10, 235, 3, 2, 2, 2, 12, 247, 3, 2, 2, 2, 14, 255, 3, 2, 2, 2, 16, 263, 3, 2, 2, 2, 18, 271, 3, 2, 2, 2, 20, 279, 3, 2, 2, 2, 22, 288, 3, 2, 2, 2, 24, 312, 3, 2, 2, 2, 26, 333, 3, 2, 2, 2, 28, 342, 3, 2, 2, 2, 30, 346, 3, 2, 2, 2, 32, 354, 3, 2, 2, 2, 34, 358, 3, 2, 2, 2, 36, 362, 3, 2, 2, 2, 38, 374, 3, 2, 2, 2, 40, 390, 3, 2, 2, 2, 42, 398, 3, 2, 2, 2, 44, 403, 3, 2, 2, 2, 46, 419, 3, 2, 2, 2, 48, 433, 3, 2, 2, 2, 50, 452, 3, 2, 2, 2, 52, 454, 3, 2, 2, 2, 54, 458, 3, 2, 2, 2, 56, 464, 3, 2, 2, 2, 58, 475, 3, 2, 2, 2, 60, 481, 3, 2, 2, 2, 62, 489, 3, 2, 2, 2, 64, 491, 3, 2, 2, 2, 66, 501, 3, 2, 2, 2, 68, 511, 3, 2, 2, 2, 70, 518, 3, 2, 2, 2, 72, 520, 3, 2, 2, 2, 74, 536, 3, 2, 2, 2, 76, 545, 3, 2, 2, 2, 78, 551, 3, 2, 2, 2, 80, 577, 3, 2, 2, 2, 82, 579, 3, 2, 2, 2, 84, 586, 3, 2, 2, 2, 86, 597, 3, 2, 2, 2, 88, 613, 3, 2, 2, 2, 90, 622, 3, 2, 2, 2, 92, 624, 3, 2, 2, 2, 94, 630, 3, 2, 2, 2, 96, 634, 3, 2, 2, 2, 98, 640, 3, 2, 2, 2, 100, 653, 3, 2, 2, 2, 102, 659, 3, 2, 2, 2, 104, 663, 3, 2, 2, 2, 106, 666, 3, 2, 2, 2, 108, 669, 3, 2, 2, 2, 110, 673, 3, 2, 2, 2, 112, 677, 3, 2, 2, 2, 114, 681, 3, 2, 2, 2, 116, 685, 3, 2, 2, 2, 118, 692, 3, 2, 2, 2, 120, 697, 3, 2, 2, 2, 122, 705, 3, 2, 2, 2, 124, 711, 3, 2, 2, 2, 126, 718, 3, 2, 2, 2, 128, 723, 3, 2, 2, 2, 130, 728, 3, 2, 2, 2, 132, 741, 3, 2, 2, 2, 134, 756, 3, 2, 2, 2, 136, 760, 3, 2, 2, 2, 138, 762, 3, 2, 2, 2, 140, 767, 3, 2, 2, 2, 142, 769, 3, 2, 2, 2, 144, 773, 3, 2, 2, 2, 146, 795, 3, 2, 2, 2, 148, 881, 3, 2, 2, 2, 150, 902, 3, 2, 2, 2, 152, 904, 3, 2, 2, 2, 154, 911, 3, 2, 2, 2, 156, 919, 3, 2, 2, 2, 158, 927, 3, 2, 2, 2, 160, 934, 3, 2, 2, 2, 162, 937, 3, 2, 2, 2, 164, 948, 3, 2, 2, 2, 166, 950, 3, 2, 2, 2, 168, 961, 3, 2, 2, 2, 170, 965, 3, 2, 2, 2, 172, 976, 3, 2, 2, 2, 174, 982, 3, 2, 2, 2, 176, 992, 3, 2, 2, 2, 178, 994, 3, 2, 2, 2, 180, 181, 7, 45, 2, 2, 181, 182, 5, 176, 89, 2, 182, 183, 7, 29, 2, 2, 183, 184, 5, 176, 89, 2, 184, 185, 7, 64, 2, 2, 185, 190, 5, 4, 3, 2, 186, 187, 7, 71, 2, 2, 187, 189, 5, 4, 3, 2, 188, 186, 3, 2, 2, 2, 189, 192, 3, 2, 2, 2, 190, 188, 3, 2, 2, 2, 190, 191, 3, 2, 2, 2, 191, 193, 3, 2, 2, 2, 192, 190, 3, 2, 2, 2, 193, 194, 7, 65, 2, 2, 194, 195, 5, 74, 38, 2, 195, 196, 7, 2, 2, 3, 196, 3, 3, 2, 2, 2, 197, 198, 9, 2, 2, 2, 198, 199, 9, 3, 2, 2, 199, 5, 3, 2, 2, 2, 200, 201, 5, 8, 5, 2, 201, 202, 7, 2, 2, 3, 202, 7, 3, 2, 2, 2, 203, 205, 7, 112, 2, 2, 204, 203, 3, 2, 2, 2, 204, 205, 3, 2, 2, 2, 205, 209, 3, 2, 2, 2, 206, 208, 5, 26, 14, 2, 207, 206, 3, 2, 2, 2, 208, 211, 3, 2, 2, 2, 209, 207, 3, 2, 2, 2, 209, 210, 3, 2, 2, 2, 210, 212, 3, 2, 2, 2, 211, 209, 3, 2, 2, 2, 212, 234, 5, 10, 6, 2, 213, 215, 7, 112, 2, 2, 214, 213, 3, 2, 2, 2, 214, 215, 3, 2, 2, 2, 215, 219, 3, 2, 2, 2, 216, 218, 5, 26, 14, 2, 217, 216, 3, 2, 2, 2, 218, 221, 3, 2, 2, 2, 219, 217, 3, 2, 2, 2, 219, 220, 3, 2, 2, 2, 220, 222, 3, 2, 2, 2, 221, 219, 3, 2, 2, 2, 222, 234, 5, 12, 7, 2, 223, 225, 7, 112, 2, 2, 224, 223, 3, 2, 2, 2, 224, 225, 3, 2, 2, 2, 225, 229, 3, 2, 2, 2, 226, 228, 5, 26, 14, 2, 227, 226, 3, 2, 2, 2, 228, 231, 3, 2, 2, 2, 229, 227, 3, 2, 2, 2, 229, 230, 3, 2, 2, 2, 230, 232, 3, 2, 2, 2, 231, 229, 3, 2, 2, 2, 232, 234, 5, 16, 9, 2, 233, 204, 3, 2, 2, 2, 233, 214, 3, 2, 2, 2, 233, 224, 3, 2, 2, 2, 234, 9, 3, 2, 2, 2, 235, 236, 7, 8, 2, 2, 236, 239, 5, 176, 89, 2, 237, 238, 7, 14, 2, 2, 238, 240, 5, 46, 24, 2, 239, 237, 3, 2, 2, 2, 239, 240, 3, 2, 2, 2, 240, 243, 3, 2, 2, 2, 241, 242, 7, 21, 2, 2, 242, 244, 5, 18, 10, 2, 243, 241, 3, 2, 2, 2, 243, 244, 3, 2, 2, 2, 244, 245, 3, 2, 2, 2, 245, 246, 5, 20, 11, 2, 246, 11, 3, 2, 2, 2, 247, 248, 7, 13, 2, 2, 248, 249, 5, 176, 89, 2, 249, 251, 7, 66, 2, 2, 250, 252, 5, 14, 8, 2, 251, 250, 3, 2, 2, 2, 251, 252, 3, 2, 2, 2, 252, 253, 3, 2, 2, 2, 253, 254, 7, 67, 2, 2, 254, 13, 3, 2, 2, 2, 255, 260, 5, 176, 89, 2, 256, 257, 7, 71, 2, 2, 257, 259, 5, 176, 89, 2, 258, 256, 3, 2, 2, 2, 259, 262, 3, 2, 2, 2, 260, 258, 3, 2, 2, 2, 260, 261, 3, 2, 2, 2, 261, 15, 3, 2, 2, 2, 262, 260, 3, 2, 2, 2, 263, 264, 7, 25, 2, 2, 264, 267, 5, 176, 89, 2, 265, 266, 7, 14, 2, 2, 266, 268, 5, 18, 10, 2, 267, 265, 3, 2, 2, 2, 267, 268, 3, 2, 2, 2, 268, 269, 3, 2, 2, 2, 269, 270, 5, 22, 12, 2, 270, 17, 3, 2, 2, 2, 271, 276, 5, 46, 24, 2, 272, 273, 7, 71, 2, 2, 273, 275, 5, 46, 24, 2, 274, 272, 3, 2, 2, 2, 275, 278, 3, 2, 2, 2, 276, 274, 3, 2, 2, 2, 276, 277, 3, 2, 2, 2, 277, 19, 3, 2, 2, 2, 278, 276, 3, 2, 2, 2, 279, 283, 7, 66, 2, 2, 280, 282, 5, 24, 13, 2, 281, 280, 3, 2, 2, 2, 282, 285, 3, 2, 2, 2, 283, 281, 3, 2, 2, 2, 283, 284, 3, 2, 2, 2, 284, 286, 3, 2, 2, 2, 285, 283, 3, 2, 2, 2, 286, 287, 7, 67, 2, 2, 287, 21, 3, 2, 2, 2, 288, 292, 7, 66, 2, 2, 289, 291, 5, 38, 20, 2, 290, 289, 3, 2, 2, 2, 291, 294, 3, 2, 2, 2, 292, 290, 3, 2, 2, 2, 292, 293, 3, 2, 2, 2, 293, 295, 3, 2, 2, 2, 294, 292, 3, 2, 2, 2, 295, 296, 7, 67, 2, 2, 296, 23, 3, 2, 2, 2, 297, 313, 7, 70, 2, 2, 298, 300, 7, 38, 2, 2, 299, 298, 3, 2, 2, 2, 299, 300, 3, 2, 2, 2, 300, 301, 3, 2, 2, 2, 301, 313, 5, 74, 38, 2, 302, 304, 7, 112, 2, 2, 303, 302, 3, 2, 2, 2, 303, 304, 3, 2, 2, 2, 304, 308, 3, 2, 2, 2, 305, 307, 5, 26, 14, 2, 306, 305, 3, 2, 2, 2, 307, 310, 3, 2, 2, 2, 308, 306, 3, 2, 2, 2, 308, 309, 3, 2, 2, 2, 309, 311, 3, 2, 2, 2, 310, 308, 3, 2, 2, 2, 311, 313, 5, 28, 15, 2, 312, 297, 3, 2, 2, 2, 312, 299, 3, 2, 2, 2, 312, 303, 3, 2, 2, 2, 313, 25, 3, 2, 2, 2, 314, 334, 5, 64, 33, 2, 315, 334, 7, 19, 2, 2, 316, 334, 7, 33, 2, 2, 317, 334, 7, 32, 2, 2, 318, 334, 7, 31, 2, 2, 319, 334, 7, 44, 2, 2, 320, 334, 7, 38, 2, 2, 321, 334, 7, 3, 2, 2, 322, 334, 7, 15, 2, 2, 323, 334, 7, 52, 2, 2, 324, 334, 7, 30, 2, 2, 325, 334, 7, 50, 2, 2, 326, 334, 7, 41, 2, 2, 327, 328, 7, 55, 2, 2, 328, 334, 7, 37, 2, 2, 329, 330, 7, 56, 2, 2, 330, 334, 7, 37, 2, 2, 331, 332, 7, 22, 2, 2, 332, 334, 7, 37, 2, 2, 333, 314, 3, 2, 2, 2, 333, 315, 3, 2, 2, 2, 333, 316, 3, 2, 2, 2, 333, 317, 3, 2, 2, 2, 333, 318, 3, 2, 2, 2, 333, 319, 3, 2, 2, 2, 333, 320, 3, 2, 2, 2, 333, 321, 3, 2, 2, 2, 333, 322, 3, 2, 2, 2, 333, 323, 3, 2, 2, 2, 333, 324, 3, 2, 2, 2, 333, 325, 3, 2, 2, 2, 333, 326, 3, 2, 2, 2, 333, 327, 3, 2, 2, 2, 333, 329, 3, 2, 2, 2, 333, 331, 3, 2, 2, 2, 334, 27, 3, 2, 2, 2, 335, 343, 5, 30, 16, 2, 336, 343, 5, 34, 18, 2, 337, 343, 5, 32, 17, 2, 338, 343, 5, 16, 9, 2, 339, 343, 5, 10, 6, 2, 340, 343, 5, 12, 7, 2, 341, 343, 5, 36, 19, 2, 342, 335, 3, 2, 2, 2, 342, 336, 3, 2, 2, 2, 342, 337, 3, 2, 2, 2, 342, 338, 3, 2, 2, 2, 342, 339, 3, 2, 2, 2, 342, 340, 3, 2, 2, 2, 342, 341, 3, 2, 2, 2, 343, 29, 3, 2, 2, 2, 344, 347, 5, 46, 24, 2, 345, 347, 7, 51, 2, 2, 346, 344, 3, 2, 2, 2, 346, 345, 3, 2, 2, 2, 347, 348, 3, 2, 2, 2, 348, 349, 5, 176, 89, 2, 349, 352, 5, 54, 28, 2, 350, 353, 5, 74, 38, 2, 351, 353, 7, 70, 2, 2, 352, 350, 3, 2, 2, 2, 352, 351, 3, 2, 2, 2, 353, 31, 3, 2, 2, 2, 354, 355, 5, 60, 31, 2, 355, 356, 5, 54, 28, 2, 356, 357, 5, 74, 38, 2, 357, 33, 3, 2, 2, 2, 358, 359, 5, 46, 24, 2, 359, 360, 5, 40, 21, 2, 360, 361, 7, 70, 2, 2, 361, 35, 3, 2, 2, 2, 362, 363, 5, 46, 24, 2, 363, 364, 5, 176, 89, 2, 364, 368, 7, 66, 2, 2, 365, 367, 5, 124, 63, 2, 366, 365, 3, 2, 2, 2, 367, 370, 3, 2, 2, 2, 368, 366, 3, 2, 2, 2, 368, 369, 3, 2, 2, 2, 369, 371, 3, 2, 2, 2, 370, 368, 3, 2, 2, 2, 371, 372, 7, 67, 2, 2, 372, 37, 3, 2, 2, 2, 373, 375, 7, 112, 2, 2, 374, 373, 3, 2, 2, 2, 374, 375, 3, 2, 2, 2, 375, 379, 3, 2, 2, 2, 376, 378, 5, 26, 14, 2, 377, 376, 3, 2, 2, 2, 378, 381, 3, 2, 2, 2, 379, 377, 3, 2, 2, 2, 379, 380, 3, 2, 2, 2, 380, 384, 3, 2, 2, 2, 381, 379, 3, 2, 2, 2, 382, 385, 5, 46, 24, 2, 383, 385, 7, 51, 2, 2, 384, 382, 3, 2, 2, 2, 384, 383, 3, 2, 2, 2, 385, 386, 3, 2, 2, 2, 386, 387, 5, 176, 89, 2, 387, 388, 5, 54, 28, 2, 388, 389, 7, 70, 2, 2, 389, 39, 3, 2, 2, 2, 390, 395, 5, 42, 22, 2, 391, 392, 7, 71, 2, 2, 392, 394, 5, 42, 22, 2, 393, 391, 3, 2, 2, 2, 394, 397, 3, 2, 2, 2, 395, 393, 3, 2, 2, 2, 395, 396, 3, 2, 2, 2, 396, 41, 3, 2, 2, 2, 397, 395, 3, 2, 2, 2, 398, 401, 5, 176, 89, 2, 399, 400, 7, 73, 2, 2, 400, 402, 5, 146, 74, 2, 401, 399, 3, 2, 2, 2, 401, 402, 3, 2, 2, 2, 402, 43, 3, 2, 2, 2, 403, 415, 7, 66, 2, 2, 404, 409, 5, 146, 74, 2, 405, 406, 7, 71, 2, 2, 406, 408, 5, 146, 74, 2, 407, 405, 3, 2, 2, 2, 408, 411, 3, 2, 2, 2, 409, 407, 3, 2, 2, 2, 409, 410, 3, 2, 2, 2, 410, 413, 3, 2, 2, 2, 411, 409, 3, 2, 2, 2, 412, 414, 7, 71, 2, 2, 413, 412, 3, 2, 2, 2, 413, 414, 3, 2, 2, 2, 414, 416, 3, 2, 2, 2, 415, 404, 3, 2, 2, 2, 415, 416, 3, 2, 2, 2, 416, 417, 3, 2, 2, 2, 417, 418, 7, 67, 2, 2, 418, 45, 3, 2, 2, 2, 419, 424, 5, 50, 26, 2, 420, 421, 7, 72, 2, 2, 421, 423, 5, 50, 26, 2, 422, 420, 3, 2, 2, 2, 423, 426, 3, 2, 2, 2, 424, 422, 3, 2, 2, 2, 424, 425, 3, 2, 2, 2, 425, 427, 3, 2, 2, 2, 426, 424, 3, 2, 2, 2, 427, 428, 5, 48, 25, 2, 428, 47, 3, 2, 2, 2, 429, 430, 7, 68, 2, 2, 430, 432, 7, 69, 2, 2, 431, 429, 3, 2, 2, 2, 432, 435, 3, 2, 2, 2, 433, 431, 3, 2, 2, 2, 433, 434, 3, 2, 2, 2, 434, 49, 3, 2, 2, 2, 435, 433, 3, 2, 2, 2, 436, 438, 7, 57, 2, 2, 437, 439, 5, 52, 27, 2, 438, 437, 3, 2, 2, 2, 438, 439, 3, 2, 2, 2, 439, 453, 3, 2, 2, 2, 440, 442, 7, 36, 2, 2, 441, 443, 5, 52, 27, 2, 442, 441, 3, 2, 2, 2, 442, 443, 3, 2, 2, 2, 443, 453, 3, 2, 2, 2, 444, 446, 7, 58, 2, 2, 445, 447, 5, 52, 27, 2, 446, 445, 3, 2, 2, 2, 446, 447, 3, 2, 2, 2, 447, 453, 3, 2, 2, 2, 448, 450, 5, 176, 89, 2, 449, 451, 5, 52, 27, 2, 450, 449, 3, 2, 2, 2, 450, 451, 3, 2, 2, 2, 451, 453, 3, 2, 2, 2, 452, 436, 3, 2, 2, 2, 452, 440, 3, 2, 2, 2, 452, 444, 3, 2, 2, 2, 452, 448, 3, 2, 2, 2, 453, 51, 3, 2, 2, 2, 454, 455, 7, 75, 2, 2, 455, 456, 5, 18, 10, 2, 456, 457, 7, 74, 2, 2, 457, 53, 3, 2, 2, 2, 458, 460, 7, 64, 2, 2, 459, 461, 5, 56, 29, 2, 460, 459, 3, 2, 2, 2, 460, 461, 3, 2, 2, 2, 461, 462, 3, 2, 2, 2, 462, 463, 7, 65, 2, 2, 463, 55, 3, 2, 2, 2, 464, 469, 5, 58, 30, 2, 465, 466, 7, 71, 2, 2, 466, 468, 5, 58, 30, 2, 467, 465, 3, 2, 2, 2, 468, 471, 3, 2, 2, 2, 469, 467, 3, 2, 2, 2, 469, 470, 3, 2, 2, 2, 470, 57, 3, 2, 2, 2, 471, 469, 3, 2, 2, 2, 472, 474, 5, 26, 14, 2, 473, 472, 3, 2, 2, 2, 474, 477, 3, 2, 2, 2, 475, 473, 3, 2, 2, 2, 475, 476, 3, 2, 2, 2, 476, 478, 3, 2, 2, 2, 477, 475, 3, 2, 2, 2, 478, 479, 5, 46, 24, 2, 479, 480, 5, 176, 89, 2, 480, 59, 3, 2, 2, 2, 481, 486, 5, 176, 89, 2, 482, 483, 7, 72, 2, 2, 483, 485, 5, 176, 89, 2, 484, 482, 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, 490, 9, 4, 2, 2, 490, 63, 3, 2, 2, 2, 491, 492, 7, 110, 2, 2, 492, 499, 5, 60, 31, 2, 493, 496, 7, 64, 2, 2, 494, 497, 5, 66, 34, 2, 495, 497, 5, 70, 36, 2, 496, 494, 3, 2, 2, 2, 496, 495, 3, 2, 2, 2, 496, 497, 3, 2, 2, 2, 497, 498, 3, 2, 2, 2, 498, 500, 7, 65, 2, 2, 499, 493, 3, 2, 2, 2, 499, 500, 3, 2, 2, 2, 500, 65, 3, 2, 2, 2, 501, 508, 5, 68, 35, 2, 502, 504, 7, 71, 2, 2, 503, 502, 3, 2, 2, 2, 503, 504, 3, 2, 2, 2, 504, 505, 3, 2, 2, 2, 505, 507, 5, 68, 35, 2, 506, 503, 3, 2, 2, 2, 507, 510, 3, 2, 2, 2, 508, 506, 3, 2, 2, 2, 508, 509, 3, 2, 2, 2, 509, 67, 3, 2, 2, 2, 510, 508, 3, 2, 2, 2, 511, 512, 5, 176, 89, 2, 512, 513, 7, 73, 2, 2, 513, 514, 5, 70, 36, 2, 514, 69, 3, 2, 2, 2, 515, 519, 5, 146, 74, 2, 516, 519, 5, 64, 33, 2, 517, 519, 5, 72, 37, 2, 518, 515, 3, 2, 2, 2, 518, 516, 3, 2, 2, 2, 518, 517, 3, 2, 2, 2, 519, 71, 3, 2, 2, 2, 520, 529, 7, 66, 2, 2, 521, 526, 5, 70, 36, 2, 522, 523, 7, 71, 2, 2, 523, 525, 5, 70, 36, 2, 524, 522, 3, 2, 2, 2, 525, 528, 3, 2, 2, 2, 526, 524, 3, 2, 2, 2, 526, 527, 3, 2, 2, 2, 527, 530, 3, 2, 2, 2, 528, 526, 3, 2, 2, 2, 529, 521, 3, 2, 2, 2, 529, 530, 3, 2, 2, 2, 530, 532, 3, 2, 2, 2, 531, 533, 7, 71, 2, 2, 532, 531, 3, 2, 2, 2, 532, 533, 3, 2, 2, 2, 533, 534, 3, 2, 2, 2, 534, 535, 7, 67, 2, 2, 535, 73, 3, 2, 2, 2, 536, 540, 7, 66, 2, 2, 537, 539, 5, 80, 41, 2, 538, 537, 3, 2, 2, 2, 539, 542, 3, 2, 2, 2, 540, 538, 3, 2, 2, 2, 540, 541, 3, 2, 2, 2, 541, 543, 3, 2, 2, 2, 542, 540, 3, 2, 2, 2, 543, 544, 7, 67, 2, 2, 544, 75, 3, 2, 2, 2, 545, 546, 5, 78, 40, 2, 546, 547, 7, 70, 2, 2, 547, 77, 3, 2, 2, 2, 548, 550, 5, 26, 14, 2, 549, 548, 3, 2, 2, 2, 550, 553, 3, 2, 2, 2, 551, 549, 3, 2, 2, 2, 551, 552, 3, 2, 2, 2, 552, 554, 3, 2, 2, 2, 553, 551, 3, 2, 2, 2, 554, 555, 5, 46, 24, 2, 555, 556, 5, 40, 21, 2, 556, 79, 3, 2, 2, 2, 557, 578, 5, 74, 38, 2, 558, 578, 5, 82, 42, 2, 559, 578, 5, 84, 43, 2, 560, 578, 5, 92, 47, 2, 561, 578, 5, 94, 48, 2, 562, 578, 5, 96, 49, 2, 563, 578, 5, 98, 50, 2, 564, 578, 5, 100, 51, 2, 565, 578, 5, 102, 52, 2, 566, 578, 5, 104, 53, 2, 567, 578, 5, 106, 54, 2, 568, 578, 5, 108, 55, 2, 569, 578, 5, 110, 56, 2, 570, 578, 5, 112, 57, 2, 571, 578, 5, 114, 58, 2, 572, 578, 5, 116, 59, 2, 573, 578, 5, 118, 60, 2, 574, 578, 5, 120, 61, 2, 575, 578, 5, 76, 39, 2, 576, 578, 5, 122, 62, 2, 577, 557, 3, 2, 2, 2, 577, 558, 3, 2, 2, 2, 577, 559, 3, 2, 2, 2, 577, 560, 3, 2, 2, 2, 577, 561, 3, 2, 2, 2, 577, 562, 3, 2, 2, 2, 577, 563, 3, 2, 2, 2, 577, 564, 3, 2, 2, 2, 577, 565, 3, 2, 2, 2, 577, 566, 3, 2, 2, 2, 577, 567, 3, 2, 2, 2, 577, 568, 3, 2, 2, 2, 577, 569, 3, 2, 2, 2, 577, 570, 3, 2, 2, 2, 577, 571, 3, 2, 2, 2, 577, 572, 3, 2, 2, 2, 577, 573, 3, 2, 2, 2, 577, 574, 3, 2, 2, 2, 577, 575, 3, 2, 2, 2, 577, 576, 3, 2, 2, 2, 578, 81, 3, 2, 2, 2, 579, 580, 7, 20, 2, 2, 580, 581, 5, 142, 72, 2, 581, 584, 5, 80, 41, 2, 582, 583, 7, 12, 2, 2, 583, 585, 5, 80, 41, 2, 584, 582, 3, 2, 2, 2, 584, 585, 3, 2, 2, 2, 585, 83, 3, 2, 2, 2, 586, 587, 7, 40, 2, 2, 587, 588, 7, 29, 2, 2, 588, 589, 5, 146, 74, 2, 589, 591, 7, 66, 2, 2, 590, 592, 5, 86, 44, 2, 591, 590, 3, 2, 2, 2, 592, 593, 3, 2, 2, 2, 593, 591, 3, 2, 2, 2, 593, 594, 3, 2, 2, 2, 594, 595, 3, 2, 2, 2, 595, 596, 7, 67, 2, 2, 596, 85, 3, 2, 2, 2, 597, 598, 7, 53, 2, 2, 598, 599, 5, 88, 45, 2, 599, 600, 5, 74, 38, 2, 600, 87, 3, 2, 2, 2, 601, 614, 7, 12, 2, 2, 602, 607, 5, 90, 46, 2, 603, 604, 7, 71, 2, 2, 604, 606, 5, 90, 46, 2, 605, 603, 3, 2, 2, 2, 606, 609, 3, 2, 2, 2, 607, 605, 3, 2, 2, 2, 607, 608, 3, 2, 2, 2, 608, 614, 3, 2, 2, 2, 609, 607, 3, 2, 2, 2, 610, 611, 5, 176, 89, 2, 611, 612, 5, 176, 89, 2, 612, 614, 3, 2, 2, 2, 613, 601, 3, 2, 2, 2, 613, 602, 3, 2, 2, 2, 613, 610, 3, 2, 2, 2, 614, 89, 3, 2, 2, 2, 615, 617, 7, 91, 2, 2, 616, 615, 3, 2, 2, 2, 616, 617, 3, 2, 2, 2, 617, 618, 3, 2, 2, 2, 618, 623, 7, 59, 2, 2, 619, 623, 7, 62, 2, 2, 620, 623, 7, 28, 2, 2, 621, 623, 5, 176, 89, 2, 622, 616, 3, 2, 2, 2, 622, 619, 3, 2, 2, 2, 622, 620, 3, 2, 2, 2, 622, 621, 3, 2, 2, 2, 623, 91, 3, 2, 2, 2, 624, 625, 7, 17, 2, 2, 625, 626, 7, 64, 2, 2, 626, 627, 5, 134, 68, 2, 627, 628, 7, 65, 2, 2, 628, 629, 5, 80, 41, 2, 629, 93, 3, 2, 2, 2, 630, 631, 7, 54, 2, 2, 631, 632, 5, 142, 72, 2, 632, 633, 5, 80, 41, 2, 633, 95, 3, 2, 2, 2, 634, 635, 7, 11, 2, 2, 635, 636, 5, 80, 41, 2, 636, 637, 7, 54, 2, 2, 637, 638, 5, 142, 72, 2, 638, 639, 7, 70, 2, 2, 639, 97, 3, 2, 2, 2, 640, 641, 7, 46, 2, 2, 641, 651, 5, 74, 38, 2, 642, 644, 5, 130, 66, 2, 643, 642, 3, 2, 2, 2, 644, 645, 3, 2, 2, 2, 645, 643, 3, 2, 2, 2, 645, 646, 3, 2, 2, 2, 646, 648, 3, 2, 2, 2, 647, 649, 5, 132, 67, 2, 648, 647, 3, 2, 2, 2, 648, 649, 3, 2, 2, 2, 649, 652, 3, 2, 2, 2, 650, 652, 5, 132, 67, 2, 651, 643, 3, 2, 2, 2, 651, 650, 3, 2, 2, 2, 652, 99, 3, 2, 2, 2, 653, 655, 7, 34, 2, 2, 654, 656, 5, 146, 74, 2, 655, 654, 3, 2, 2, 2, 655, 656, 3, 2, 2, 2, 656, 657, 3, 2, 2, 2, 657, 658, 7, 70, 2, 2, 658, 101, 3, 2, 2, 2, 659, 660, 7, 43, 2, 2, 660, 661, 5, 146, 74, 2, 661, 662, 7, 70, 2, 2, 662, 103, 3, 2, 2, 2, 663, 664, 7, 6, 2, 2, 664, 665, 7, 70, 2, 2, 665, 105, 3, 2, 2, 2, 666, 667, 7, 9, 2, 2, 667, 668, 7, 70, 2, 2, 668, 107, 3, 2, 2, 2, 669, 670, 7, 23, 2, 2, 670, 671, 5, 146, 74, 2, 671, 672, 7, 70, 2, 2, 672, 109, 3, 2, 2, 2, 673, 674, 7, 48, 2, 2, 674, 675, 5, 146, 74, 2, 675, 676, 7, 70, 2, 2, 676, 111, 3, 2, 2, 2, 677, 678, 7, 10, 2, 2, 678, 679, 5, 146, 74, 2, 679, 680, 7, 70, 2, 2, 680, 113, 3, 2, 2, 2, 681, 682, 7, 47, 2, 2, 682, 683, 5, 146, 74, 2, 683, 684, 7, 70, 2, 2, 684, 115, 3, 2, 2, 2, 685, 686, 7, 49, 2, 2, 686, 688, 5, 146, 74, 2, 687, 689, 5, 60, 31, 2, 688, 687, 3, 2, 2, 2, 688, 689, 3, 2, 2, 2, 689, 690, 3, 2, 2, 2, 690, 691, 7, 70, 2, 2, 691, 117, 3, 2, 2, 2, 692, 693, 7, 26, 2, 2, 693, 694, 5, 146, 74, 2, 694, 695, 5, 146, 74, 2, 695, 696, 7, 70, 2, 2, 696, 119, 3, 2, 2, 2, 697, 698, 7, 35, 2, 2, 698, 700, 7, 64, 2, 2, 699, 701, 5, 144, 73, 2, 700, 699, 3, 2, 2, 2, 700, 701, 3, 2, 2, 2, 701, 702, 3, 2, 2, 2, 702, 703, 7, 65, 2, 2, 703, 704, 5, 74, 38, 2, 704, 121, 3, 2, 2, 2, 705, 706, 5, 146, 74, 2, 706, 707, 7, 70, 2, 2, 707, 123, 3, 2, 2, 2, 708, 710, 5, 26, 14, 2, 709, 708, 3, 2, 2, 2, 710, 713, 3, 2, 2, 2, 711, 709, 3, 2, 2, 2, 711, 712, 3, 2, 2, 2, 712, 716, 3, 2, 2, 2, 713, 711, 3, 2, 2, 2, 714, 717, 5, 126, 64, 2, 715, 717, 5, 128, 65, 2, 716, 714, 3, 2, 2, 2, 716, 715, 3, 2, 2, 2, 717, 125, 3, 2, 2, 2, 718, 721, 7, 18, 2, 2, 719, 722, 7, 70, 2, 2, 720, 722, 5, 74, 38, 2, 721, 719, 3, 2, 2, 2, 721, 720, 3, 2, 2, 2, 722, 127, 3, 2, 2, 2, 723, 726, 7, 36, 2, 2, 724, 727, 7, 70, 2, 2, 725, 727, 5, 74, 38, 2, 726, 724, 3, 2, 2, 2, 726, 725, 3, 2, 2, 2, 727, 129, 3, 2, 2, 2, 728, 729, 7, 7, 2, 2, 729, 733, 7, 64, 2, 2, 730, 732, 5, 26, 14, 2, 731, 730, 3, 2, 2, 2, 732, 735, 3, 2, 2, 2, 733, 731, 3, 2, 2, 2, 733, 734, 3, 2, 2, 2, 734, 736, 3, 2, 2, 2, 735, 733, 3, 2, 2, 2, 736, 737, 5, 60, 31, 2, 737, 738, 5, 176, 89, 2, 738, 739, 7, 65, 2, 2, 739, 740, 5, 74, 38, 2, 740, 131, 3, 2, 2, 2, 741, 742, 7, 16, 2, 2, 742, 743, 5, 74, 38, 2, 743, 133, 3, 2, 2, 2, 744, 757, 5, 138, 70, 2, 745, 747, 5, 136, 69, 2, 746, 745, 3, 2, 2, 2, 746, 747, 3, 2, 2, 2, 747, 748, 3, 2, 2, 2, 748, 750, 7, 70, 2, 2, 749, 751, 5, 146, 74, 2, 750, 749, 3, 2, 2, 2, 750, 751, 3, 2, 2, 2, 751, 752, 3, 2, 2, 2, 752, 754, 7, 70, 2, 2, 753, 755, 5, 140, 71, 2, 754, 753, 3, 2, 2, 2, 754, 755, 3, 2, 2, 2, 755, 757, 3, 2, 2, 2, 756, 744, 3, 2, 2, 2, 756, 746, 3, 2, 2, 2, 757, 135, 3, 2, 2, 2, 758, 761, 5, 78, 40, 2, 759, 761, 5, 144, 73, 2, 760, 758, 3, 2, 2, 2, 760, 759, 3, 2, 2, 2, 761, 137, 3, 2, 2, 2, 762, 763, 5, 46, 24, 2, 763, 764, 5, 176, 89, 2, 764, 765, 7, 80, 2, 2, 765, 766, 5, 146, 74, 2, 766, 139, 3, 2, 2, 2, 767, 768, 5, 144, 73, 2, 768, 141, 3, 2, 2, 2, 769, 770, 7, 64, 2, 2, 770, 771, 5, 146, 74, 2, 771, 772, 7, 65, 2, 2, 772, 143, 3, 2, 2, 2, 773, 778, 5, 146, 74, 2, 774, 775, 7, 71, 2, 2, 775, 777, 5, 146, 74, 2, 776, 774, 3, 2, 2, 2, 777, 780, 3, 2, 2, 2, 778, 776, 3, 2, 2, 2, 778, 779, 3, 2, 2, 2, 779, 145, 3, 2, 2, 2, 780, 778, 3, 2, 2, 2, 781, 782, 8, 74, 1, 2, 782, 796, 5, 148, 75, 2, 783, 796, 5, 150, 76, 2, 784, 785, 7, 27, 2, 2, 785, 796, 5, 154, 78, 2, 786, 787, 7, 64, 2, 2, 787, 788, 5, 46, 24, 2, 788, 789, 7, 65, 2, 2, 789, 790, 5, 146, 74, 19, 790, 796, 3, 2, 2, 2, 791, 792, 9, 5, 2, 2, 792, 796, 5, 146, 74, 17, 793, 794, 9, 6, 2, 2, 794, 796, 5, 146, 74, 16, 795, 781, 3, 2, 2, 2, 795, 783, 3, 2, 2, 2, 795, 784, 3, 2, 2, 2, 795, 786, 3, 2, 2, 2, 795, 791, 3, 2, 2, 2, 795, 793, 3, 2, 2, 2, 796, 865, 3, 2, 2, 2, 797, 798, 12, 15, 2, 2, 798, 799, 9, 7, 2, 2, 799, 864, 5, 146, 74, 16, 800, 801, 12, 14, 2, 2, 801, 802, 9, 8, 2, 2, 802, 864, 5, 146, 74, 15, 803, 811, 12, 13, 2, 2, 804, 805, 7, 75, 2, 2, 805, 812, 7, 75, 2, 2, 806, 807, 7, 74, 2, 2, 807, 808, 7, 74, 2, 2, 808, 812, 7, 74, 2, 2, 809, 810, 7, 74, 2, 2, 810, 812, 7, 74, 2, 2, 811, 804, 3, 2, 2, 2, 811, 806, 3, 2, 2, 2, 811, 809, 3, 2, 2, 2, 812, 813, 3, 2, 2, 2, 813, 864, 5, 146, 74, 14, 814, 815, 12, 12, 2, 2, 815, 817, 9, 9, 2, 2, 816, 818, 7, 73, 2, 2, 817, 816, 3, 2, 2, 2, 817, 818, 3, 2, 2, 2, 818, 819, 3, 2, 2, 2, 819, 864, 5, 146, 74, 13, 820, 821, 12, 10, 2, 2, 821, 822, 9, 10, 2, 2, 822, 864, 5, 146, 74, 11, 823, 824, 12, 9, 2, 2, 824, 825, 7, 94, 2, 2, 825, 864, 5, 146, 74, 10, 826, 827, 12, 8, 2, 2, 827, 828, 7, 96, 2, 2, 828, 864, 5, 146, 74, 9, 829, 830, 12, 7, 2, 2, 830, 831, 7, 95, 2, 2, 831, 864, 5, 146, 74, 8, 832, 833, 12, 6, 2, 2, 833, 834, 7, 86, 2, 2, 834, 864, 5, 146, 74, 7, 835, 836, 12, 5, 2, 2, 836, 837, 7, 87, 2, 2, 837, 864, 5, 146, 74, 6, 838, 839, 12, 4, 2, 2, 839, 840, 7, 79, 2, 2, 840, 841, 5, 146, 74, 2, 841, 842, 7, 80, 2, 2, 842, 843, 5, 146, 74, 4, 843, 864, 3, 2, 2, 2, 844, 845, 12, 3, 2, 2, 845, 846, 9, 11, 2, 2, 846, 864, 5, 146, 74, 3, 847, 848, 12, 23, 2, 2, 848, 851, 9, 12, 2, 2, 849, 852, 5, 152, 77, 2, 850, 852, 5, 178, 90, 2, 851, 849, 3, 2, 2, 2, 851, 850, 3, 2, 2, 2, 852, 864, 3, 2, 2, 2, 853, 854, 12, 22, 2, 2, 854, 855, 7, 68, 2, 2, 855, 856, 5, 146, 74, 2, 856, 857, 7, 69, 2, 2, 857, 864, 3, 2, 2, 2, 858, 859, 12, 18, 2, 2, 859, 864, 9, 13, 2, 2, 860, 861, 12, 11, 2, 2, 861, 862, 7, 24, 2, 2, 862, 864, 5, 46, 24, 2, 863, 797, 3, 2, 2, 2, 863, 800, 3, 2, 2, 2, 863, 803, 3, 2, 2, 2, 863, 814, 3, 2, 2, 2, 863, 820, 3, 2, 2, 2, 863, 823, 3, 2, 2, 2, 863, 826, 3, 2, 2, 2, 863, 829, 3, 2, 2, 2, 863, 832, 3, 2, 2, 2, 863, 835, 3, 2, 2, 2, 863, 838, 3, 2, 2, 2, 863, 844, 3, 2, 2, 2, 863, 847, 3, 2, 2, 2, 863, 853, 3, 2, 2, 2, 863, 858, 3, 2, 2, 2, 863, 860, 3, 2, 2, 2, 864, 867, 3, 2, 2, 2, 865, 863, 3, 2, 2, 2, 865, 866, 3, 2, 2, 2, 866, 147, 3, 2, 2, 2, 867, 865, 3, 2, 2, 2, 868, 869, 7, 64, 2, 2, 869, 870, 5, 146, 74, 2, 870, 871, 7, 65, 2, 2, 871, 882, 3, 2, 2, 2, 872, 882, 7, 42, 2, 2, 873, 882, 7, 39, 2, 2, 874, 882, 5, 62, 32, 2, 875, 876, 5, 46, 24, 2, 876, 877, 7, 72, 2, 2, 877, 878, 7, 8, 2, 2, 878, 882, 3, 2, 2, 2, 879, 882, 5, 176, 89, 2, 880, 882, 5, 174, 88, 2, 881, 868, 3, 2, 2, 2, 881, 872, 3, 2, 2, 2, 881, 873, 3, 2, 2, 2, 881, 874, 3, 2, 2, 2, 881, 875, 3, 2, 2, 2, 881, 879, 3, 2, 2, 2, 881, 880, 3, 2, 2, 2, 882, 149, 3, 2, 2, 2, 883, 884, 5, 176, 89, 2, 884, 886, 7, 64, 2, 2, 885, 887, 5, 144, 73, 2, 886, 885, 3, 2, 2, 2, 886, 887, 3, 2, 2, 2, 887, 888, 3, 2, 2, 2, 888, 889, 7, 65, 2, 2, 889, 903, 3, 2, 2, 2, 890, 891, 7, 42, 2, 2, 891, 893, 7, 64, 2, 2, 892, 894, 5, 144, 73, 2, 893, 892, 3, 2, 2, 2, 893, 894, 3, 2, 2, 2, 894, 895, 3, 2, 2, 2, 895, 903, 7, 65, 2, 2, 896, 897, 7, 39, 2, 2, 897, 899, 7, 64, 2, 2, 898, 900, 5, 144, 73, 2, 899, 898, 3, 2, 2, 2, 899, 900, 3, 2, 2, 2, 900, 901, 3, 2, 2, 2, 901, 903, 7, 65, 2, 2, 902, 883, 3, 2, 2, 2, 902, 890, 3, 2, 2, 2, 902, 896, 3, 2, 2, 2, 903, 151, 3, 2, 2, 2, 904, 905, 5, 178, 90, 2, 905, 907, 7, 64, 2, 2, 906, 908, 5, 144, 73, 2, 907, 906, 3, 2, 2, 2, 907, 908, 3, 2, 2, 2, 908, 909, 3, 2, 2, 2, 909, 910, 7, 65, 2, 2, 910, 153, 3, 2, 2, 2, 911, 917, 5, 156, 79, 2, 912, 918, 5, 160, 81, 2, 913, 918, 5, 162, 82, 2, 914, 918, 5, 164, 83, 2, 915, 918, 5, 166, 84, 2, 916, 918, 5, 170, 86, 2, 917, 912, 3, 2, 2, 2, 917, 913, 3, 2, 2, 2, 917, 914, 3, 2, 2, 2, 917, 915, 3, 2, 2, 2, 917, 916, 3, 2, 2, 2, 918, 155, 3, 2, 2, 2, 919, 924, 5, 158, 80, 2, 920, 921, 7, 72, 2, 2, 921, 923, 5, 158, 80, 2, 922, 920, 3, 2, 2, 2, 923, 926, 3, 2, 2, 2, 924, 922, 3, 2, 2, 2, 924, 925, 3, 2, 2, 2, 925, 157, 3, 2, 2, 2, 926, 924, 3, 2, 2, 2, 927, 932, 5, 178, 90, 2, 928, 929, 7, 75, 2, 2, 929, 930, 5, 18, 10, 2, 930, 931, 7, 74, 2, 2, 931, 933, 3, 2, 2, 2, 932, 928, 3, 2, 2, 2, 932, 933, 3, 2, 2, 2, 933, 159, 3, 2, 2, 2, 934, 935, 7, 66, 2, 2, 935, 936, 7, 67, 2, 2, 936, 161, 3, 2, 2, 2, 937, 938, 5, 172, 87, 2, 938, 163, 3, 2, 2, 2, 939, 940, 7, 68, 2, 2, 940, 941, 5, 146, 74, 2, 941, 942, 7, 69, 2, 2, 942, 949, 3, 2, 2, 2, 943, 944, 7, 68, 2, 2, 944, 946, 7, 69, 2, 2, 945, 947, 5, 44, 23, 2, 946, 945, 3, 2, 2, 2, 946, 947, 3, 2, 2, 2, 947, 949, 3, 2, 2, 2, 948, 939, 3, 2, 2, 2, 948, 943, 3, 2, 2, 2, 949, 165, 3, 2, 2, 2, 950, 951, 7, 66, 2, 2, 951, 956, 5, 168, 85, 2, 952, 953, 7, 71, 2, 2, 953, 955, 5, 168, 85, 2, 954, 952, 3, 2, 2, 2, 955, 958, 3, 2, 2, 2, 956, 954, 3, 2, 2, 2, 956, 957, 3, 2, 2, 2, 957, 959, 3, 2, 2, 2, 958, 956, 3, 2, 2, 2, 959, 960, 7, 67, 2, 2, 960, 167, 3, 2, 2, 2, 961, 962, 5, 146, 74, 2, 962, 963, 7, 98, 2, 2, 963, 964, 5, 146, 74, 2, 964, 169, 3, 2, 2, 2, 965, 966, 7, 66, 2, 2, 966, 971, 5, 146, 74, 2, 967, 968, 7, 71, 2, 2, 968, 970, 5, 146, 74, 2, 969, 967, 3, 2, 2, 2, 970, 973, 3, 2, 2, 2, 971, 969, 3, 2, 2, 2, 971, 972, 3, 2, 2, 2, 972, 974, 3, 2, 2, 2, 973, 971, 3, 2, 2, 2, 974, 975, 7, 67, 2, 2, 975, 171, 3, 2, 2, 2, 976, 978, 7, 64, 2, 2, 977, 979, 5, 144, 73, 2, 978, 977, 3, 2, 2, 2, 978, 979, 3, 2, 2, 2, 979, 980, 3, 2, 2, 2, 980, 981, 7, 65, 2, 2, 981, 173, 3, 2, 2, 2, 982, 987, 7, 68, 2, 2, 983, 986, 5, 174, 88, 2, 984, 986, 10, 14, 2, 2, 985, 983, 3, 2, 2, 2, 985, 984, 3, 2, 2, 2, 986, 989, 3, 2, 2, 2, 987, 988, 3, 2, 2, 2, 987, 985, 3, 2, 2, 2, 988, 990, 3, 2, 2, 2, 989, 987, 3, 2, 2, 2, 990, 991, 7, 69, 2, 2, 991, 175, 3, 2, 2, 2, 992, 993, 9, 15, 2, 2, 993, 177, 3, 2, 2, 2, 994, 995, 9, 16, 2, 2, 995, 179, 3, 2, 2, 2, 102, 190, 204, 209, 214, 219, 224, 229, 233, 239, 243, 251, 260, 267, 276, 283, 292, 299, 303, 308, 312, 333, 342, 346, 352, 368, 374, 379, 384, 395, 401, 409, 413, 415, 424, 433, 438, 442, 446, 450, 452, 460, 469, 475, 486, 496, 499, 503, 508, 518, 526, 529, 532, 540, 551, 577, 584, 593, 607, 613, 616, 622, 645, 648, 651, 655, 688, 700, 711, 716, 721, 726, 733, 746, 750, 754, 756, 760, 778, 795, 811, 817, 851, 863, 865, 881, 886, 893, 899, 902, 907, 917, 924, 932, 946, 948, 956, 971, 978, 985, 987]
|
|
@@ -1,212 +0,0 @@
|
|
|
1
|
-
ABSTRACT=1
|
|
2
|
-
AFTER=2
|
|
3
|
-
BEFORE=3
|
|
4
|
-
BREAK=4
|
|
5
|
-
CATCH=5
|
|
6
|
-
CLASS=6
|
|
7
|
-
CONTINUE=7
|
|
8
|
-
DELETE=8
|
|
9
|
-
DO=9
|
|
10
|
-
ELSE=10
|
|
11
|
-
ENUM=11
|
|
12
|
-
EXTENDS=12
|
|
13
|
-
FINAL=13
|
|
14
|
-
FINALLY=14
|
|
15
|
-
FOR=15
|
|
16
|
-
GET=16
|
|
17
|
-
GLOBAL=17
|
|
18
|
-
IF=18
|
|
19
|
-
IMPLEMENTS=19
|
|
20
|
-
INHERITED=20
|
|
21
|
-
INSERT=21
|
|
22
|
-
INSTANCEOF=22
|
|
23
|
-
INTERFACE=23
|
|
24
|
-
MERGE=24
|
|
25
|
-
NEW=25
|
|
26
|
-
NULL=26
|
|
27
|
-
ON=27
|
|
28
|
-
OVERRIDE=28
|
|
29
|
-
PRIVATE=29
|
|
30
|
-
PROTECTED=30
|
|
31
|
-
PUBLIC=31
|
|
32
|
-
RETURN=32
|
|
33
|
-
SYSTEMRUNAS=33
|
|
34
|
-
SET=34
|
|
35
|
-
SHARING=35
|
|
36
|
-
STATIC=36
|
|
37
|
-
SUPER=37
|
|
38
|
-
SWITCH=38
|
|
39
|
-
TESTMETHOD=39
|
|
40
|
-
THIS=40
|
|
41
|
-
THROW=41
|
|
42
|
-
TRANSIENT=42
|
|
43
|
-
TRIGGER=43
|
|
44
|
-
TRY=44
|
|
45
|
-
UNDELETE=45
|
|
46
|
-
UPDATE=46
|
|
47
|
-
UPSERT=47
|
|
48
|
-
VIRTUAL=48
|
|
49
|
-
VOID=49
|
|
50
|
-
WEBSERVICE=50
|
|
51
|
-
WHEN=51
|
|
52
|
-
WHILE=52
|
|
53
|
-
WITH=53
|
|
54
|
-
WITHOUT=54
|
|
55
|
-
LIST=55
|
|
56
|
-
MAP=56
|
|
57
|
-
IntegerLiteral=57
|
|
58
|
-
NumberLiteral=58
|
|
59
|
-
BooleanLiteral=59
|
|
60
|
-
StringLiteral=60
|
|
61
|
-
NullLiteral=61
|
|
62
|
-
LPAREN=62
|
|
63
|
-
RPAREN=63
|
|
64
|
-
LBRACE=64
|
|
65
|
-
RBRACE=65
|
|
66
|
-
LBRACK=66
|
|
67
|
-
RBRACK=67
|
|
68
|
-
SEMI=68
|
|
69
|
-
COMMA=69
|
|
70
|
-
DOT=70
|
|
71
|
-
ASSIGN=71
|
|
72
|
-
GT=72
|
|
73
|
-
LT=73
|
|
74
|
-
BANG=74
|
|
75
|
-
TILDE=75
|
|
76
|
-
QUESTIONDOT=76
|
|
77
|
-
QUESTION=77
|
|
78
|
-
COLON=78
|
|
79
|
-
EQUAL=79
|
|
80
|
-
TRIPLEEQUAL=80
|
|
81
|
-
NOTEQUAL=81
|
|
82
|
-
LESSANDGREATER=82
|
|
83
|
-
TRIPLENOTEQUAL=83
|
|
84
|
-
AND=84
|
|
85
|
-
OR=85
|
|
86
|
-
INC=86
|
|
87
|
-
DEC=87
|
|
88
|
-
ADD=88
|
|
89
|
-
SUB=89
|
|
90
|
-
MUL=90
|
|
91
|
-
DIV=91
|
|
92
|
-
BITAND=92
|
|
93
|
-
BITOR=93
|
|
94
|
-
CARET=94
|
|
95
|
-
MOD=95
|
|
96
|
-
MAPTO=96
|
|
97
|
-
ADD_ASSIGN=97
|
|
98
|
-
SUB_ASSIGN=98
|
|
99
|
-
MUL_ASSIGN=99
|
|
100
|
-
DIV_ASSIGN=100
|
|
101
|
-
AND_ASSIGN=101
|
|
102
|
-
OR_ASSIGN=102
|
|
103
|
-
XOR_ASSIGN=103
|
|
104
|
-
MOD_ASSIGN=104
|
|
105
|
-
LSHIFT_ASSIGN=105
|
|
106
|
-
RSHIFT_ASSIGN=106
|
|
107
|
-
URSHIFT_ASSIGN=107
|
|
108
|
-
AT=108
|
|
109
|
-
Identifier=109
|
|
110
|
-
DOC_COMMENT=110
|
|
111
|
-
WS=111
|
|
112
|
-
COMMENT=112
|
|
113
|
-
LINE_COMMENT=113
|
|
114
|
-
'abstract'=1
|
|
115
|
-
'after'=2
|
|
116
|
-
'before'=3
|
|
117
|
-
'break'=4
|
|
118
|
-
'catch'=5
|
|
119
|
-
'class'=6
|
|
120
|
-
'continue'=7
|
|
121
|
-
'delete'=8
|
|
122
|
-
'do'=9
|
|
123
|
-
'else'=10
|
|
124
|
-
'extends'=12
|
|
125
|
-
'final'=13
|
|
126
|
-
'finally'=14
|
|
127
|
-
'for'=15
|
|
128
|
-
'get'=16
|
|
129
|
-
'global'=17
|
|
130
|
-
'if'=18
|
|
131
|
-
'implements'=19
|
|
132
|
-
'inherited'=20
|
|
133
|
-
'insert'=21
|
|
134
|
-
'interface'=23
|
|
135
|
-
'merge'=24
|
|
136
|
-
'new'=25
|
|
137
|
-
'null'=26
|
|
138
|
-
'on'=27
|
|
139
|
-
'override'=28
|
|
140
|
-
'private'=29
|
|
141
|
-
'protected'=30
|
|
142
|
-
'public'=31
|
|
143
|
-
'return'=32
|
|
144
|
-
'set'=34
|
|
145
|
-
'sharing'=35
|
|
146
|
-
'static'=36
|
|
147
|
-
'super'=37
|
|
148
|
-
'switch'=38
|
|
149
|
-
'this'=40
|
|
150
|
-
'throw'=41
|
|
151
|
-
'transient'=42
|
|
152
|
-
'trigger'=43
|
|
153
|
-
'try'=44
|
|
154
|
-
'undelete'=45
|
|
155
|
-
'update'=46
|
|
156
|
-
'upsert'=47
|
|
157
|
-
'virtual'=48
|
|
158
|
-
'void'=49
|
|
159
|
-
'webservice'=50
|
|
160
|
-
'when'=51
|
|
161
|
-
'while'=52
|
|
162
|
-
'with'=53
|
|
163
|
-
'without'=54
|
|
164
|
-
'list'=55
|
|
165
|
-
'map'=56
|
|
166
|
-
'('=62
|
|
167
|
-
')'=63
|
|
168
|
-
'{'=64
|
|
169
|
-
'}'=65
|
|
170
|
-
'['=66
|
|
171
|
-
']'=67
|
|
172
|
-
';'=68
|
|
173
|
-
','=69
|
|
174
|
-
'.'=70
|
|
175
|
-
'='=71
|
|
176
|
-
'>'=72
|
|
177
|
-
'<'=73
|
|
178
|
-
'!'=74
|
|
179
|
-
'~'=75
|
|
180
|
-
'?.'=76
|
|
181
|
-
'?'=77
|
|
182
|
-
':'=78
|
|
183
|
-
'=='=79
|
|
184
|
-
'==='=80
|
|
185
|
-
'!='=81
|
|
186
|
-
'<>'=82
|
|
187
|
-
'!=='=83
|
|
188
|
-
'&&'=84
|
|
189
|
-
'||'=85
|
|
190
|
-
'++'=86
|
|
191
|
-
'--'=87
|
|
192
|
-
'+'=88
|
|
193
|
-
'-'=89
|
|
194
|
-
'*'=90
|
|
195
|
-
'/'=91
|
|
196
|
-
'&'=92
|
|
197
|
-
'|'=93
|
|
198
|
-
'^'=94
|
|
199
|
-
'%'=95
|
|
200
|
-
'=>'=96
|
|
201
|
-
'+='=97
|
|
202
|
-
'-='=98
|
|
203
|
-
'*='=99
|
|
204
|
-
'/='=100
|
|
205
|
-
'&='=101
|
|
206
|
-
'|='=102
|
|
207
|
-
'^='=103
|
|
208
|
-
'%='=104
|
|
209
|
-
'<<='=105
|
|
210
|
-
'>>='=106
|
|
211
|
-
'>>>='=107
|
|
212
|
-
'@'=108
|