@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.
Files changed (158) hide show
  1. package/__tests__/end-to-end.test.ts +256 -0
  2. package/coverage/clover.xml +12857 -0
  3. package/coverage/coverage-final.json +3 -0
  4. package/coverage/lcov-report/base.css +224 -0
  5. package/coverage/lcov-report/block-navigation.js +79 -0
  6. package/coverage/lcov-report/favicon.png +0 -0
  7. package/coverage/lcov-report/index.html +126 -0
  8. package/coverage/lcov-report/index.js.html +104 -0
  9. package/coverage/lcov-report/out.js.html +41126 -0
  10. package/coverage/lcov-report/prettify.css +1 -0
  11. package/coverage/lcov-report/prettify.js +2 -0
  12. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  13. package/coverage/lcov-report/sorter.js +170 -0
  14. package/coverage/lcov.info +24801 -0
  15. package/index.d.ts +118 -0
  16. package/index.js +8 -0
  17. package/index.ts +141 -0
  18. package/jest.config.js +11 -0
  19. package/out.js +13708 -0
  20. package/package.json +22 -17
  21. package/tsconfig.json +5 -3
  22. package/.idea/apexdocs-dart.iml +0 -18
  23. package/.idea/jsLibraryMappings.xml +0 -6
  24. package/.idea/libraries/Dart_Packages.xml +0 -556
  25. package/.idea/libraries/Dart_SDK.xml +0 -28
  26. package/.idea/misc.xml +0 -6
  27. package/.idea/modules.xml +0 -8
  28. package/.idea/runConfigurations/_template__of_Dart_Test.xml +0 -6
  29. package/.idea/vcs.xml +0 -6
  30. package/CHANGELOG.md +0 -3
  31. package/README.md +0 -26
  32. package/TODO.md +0 -5
  33. package/analysis_options.yaml +0 -30
  34. package/antlr4-4.9.2/CHANGELOG.md +0 -4
  35. package/antlr4-4.9.2/LICENSE +0 -52
  36. package/antlr4-4.9.2/README.md +0 -11
  37. package/antlr4-4.9.2/analysis_options.yaml +0 -1
  38. package/antlr4-4.9.2/lib/antlr4.dart +0 -21
  39. package/antlr4-4.9.2/lib/src/atn/atn.dart +0 -18
  40. package/antlr4-4.9.2/lib/src/atn/src/atn.dart +0 -170
  41. package/antlr4-4.9.2/lib/src/atn/src/atn_config.dart +0 -242
  42. package/antlr4-4.9.2/lib/src/atn/src/atn_config_set.dart +0 -283
  43. package/antlr4-4.9.2/lib/src/atn/src/atn_deserializer.dart +0 -809
  44. package/antlr4-4.9.2/lib/src/atn/src/atn_simulator.dart +0 -95
  45. package/antlr4-4.9.2/lib/src/atn/src/atn_state.dart +0 -296
  46. package/antlr4-4.9.2/lib/src/atn/src/atn_type.dart +0 -14
  47. package/antlr4-4.9.2/lib/src/atn/src/info.dart +0 -553
  48. package/antlr4-4.9.2/lib/src/atn/src/lexer_action.dart +0 -601
  49. package/antlr4-4.9.2/lib/src/atn/src/lexer_action_executor.dart +0 -167
  50. package/antlr4-4.9.2/lib/src/atn/src/lexer_atn_simulator.dart +0 -731
  51. package/antlr4-4.9.2/lib/src/atn/src/parser_atn_simulator.dart +0 -2630
  52. package/antlr4-4.9.2/lib/src/atn/src/profiling_atn_simulator.dart +0 -229
  53. package/antlr4-4.9.2/lib/src/atn/src/semantic_context.dart +0 -404
  54. package/antlr4-4.9.2/lib/src/atn/src/transition.dart +0 -305
  55. package/antlr4-4.9.2/lib/src/dfa/dfa.dart +0 -8
  56. package/antlr4-4.9.2/lib/src/dfa/src/dfa.dart +0 -138
  57. package/antlr4-4.9.2/lib/src/dfa/src/dfa_serializer.dart +0 -76
  58. package/antlr4-4.9.2/lib/src/dfa/src/dfa_state.dart +0 -151
  59. package/antlr4-4.9.2/lib/src/error/error.dart +0 -10
  60. package/antlr4-4.9.2/lib/src/error/src/diagnostic_error_listener.dart +0 -116
  61. package/antlr4-4.9.2/lib/src/error/src/error_listener.dart +0 -241
  62. package/antlr4-4.9.2/lib/src/error/src/error_strategy.dart +0 -902
  63. package/antlr4-4.9.2/lib/src/error/src/errors.dart +0 -204
  64. package/antlr4-4.9.2/lib/src/input_stream.dart +0 -335
  65. package/antlr4-4.9.2/lib/src/interval_set.dart +0 -735
  66. package/antlr4-4.9.2/lib/src/lexer.dart +0 -343
  67. package/antlr4-4.9.2/lib/src/ll1_analyzer.dart +0 -204
  68. package/antlr4-4.9.2/lib/src/misc/multi_map.dart +0 -32
  69. package/antlr4-4.9.2/lib/src/misc/pair.dart +0 -34
  70. package/antlr4-4.9.2/lib/src/parser.dart +0 -777
  71. package/antlr4-4.9.2/lib/src/parser_interpreter.dart +0 -393
  72. package/antlr4-4.9.2/lib/src/parser_rule_context.dart +0 -275
  73. package/antlr4-4.9.2/lib/src/prediction_context.dart +0 -877
  74. package/antlr4-4.9.2/lib/src/recognizer.dart +0 -182
  75. package/antlr4-4.9.2/lib/src/rule_context.dart +0 -192
  76. package/antlr4-4.9.2/lib/src/runtime_meta_data.dart +0 -188
  77. package/antlr4-4.9.2/lib/src/token.dart +0 -431
  78. package/antlr4-4.9.2/lib/src/token_factory.dart +0 -88
  79. package/antlr4-4.9.2/lib/src/token_source.dart +0 -241
  80. package/antlr4-4.9.2/lib/src/token_stream.dart +0 -627
  81. package/antlr4-4.9.2/lib/src/tree/src/pattern/chunk.dart +0 -90
  82. package/antlr4-4.9.2/lib/src/tree/src/pattern/parse_tree_match.dart +0 -635
  83. package/antlr4-4.9.2/lib/src/tree/src/tree.dart +0 -370
  84. package/antlr4-4.9.2/lib/src/tree/src/trees.dart +0 -226
  85. package/antlr4-4.9.2/lib/src/tree/tree.dart +0 -10
  86. package/antlr4-4.9.2/lib/src/util/bit_set.dart +0 -308
  87. package/antlr4-4.9.2/lib/src/util/murmur_hash.dart +0 -77
  88. package/antlr4-4.9.2/lib/src/util/utils.dart +0 -31
  89. package/antlr4-4.9.2/lib/src/vocabulary.dart +0 -254
  90. package/antlr4-4.9.2/pubspec.yaml +0 -13
  91. package/example/node_example/index.js +0 -8
  92. package/example/node_example/package.json +0 -12
  93. package/example/node_example_ts/package-lock.json +0 -70
  94. package/example/node_example_ts/package.json +0 -19
  95. package/example/node_example_ts/src/index.js +0 -5
  96. package/example/node_example_ts/src/index.ts +0 -9
  97. package/example/node_example_ts/tsconfig.json +0 -79
  98. package/js/dart2jsout.js +0 -25898
  99. package/js/dart2jsout.js.map +0 -16
  100. package/js/index.d.ts +0 -1
  101. package/js/index.js +0 -4
  102. package/js/out.js +0 -26023
  103. package/js/out.js.map +0 -16
  104. package/js/package-lock.json +0 -57
  105. package/js/preamble.js +0 -125
  106. package/lib/apexdocs_dart.dart +0 -28
  107. package/lib/src/antlr/grammars/Apexdoc/ApexdocLexer.g4 +0 -120
  108. package/lib/src/antlr/grammars/Apexdoc/ApexdocParser.g4 +0 -158
  109. package/lib/src/antlr/grammars/Apexdoc/gen/ApexdocLexer.interp +0 -95
  110. package/lib/src/antlr/grammars/Apexdoc/gen/ApexdocLexer.java +0 -238
  111. package/lib/src/antlr/grammars/Apexdoc/gen/ApexdocLexer.tokens +0 -23
  112. package/lib/src/antlr/grammars/apex/ApexLexer.g4 +0 -255
  113. package/lib/src/antlr/grammars/apex/ApexParser.g4 +0 -567
  114. package/lib/src/antlr/grammars/apex/examples/ApexClass.cls +0 -6
  115. package/lib/src/antlr/lib/apex/ApexLexer.dart +0 -1223
  116. package/lib/src/antlr/lib/apex/ApexLexer.interp +0 -393
  117. package/lib/src/antlr/lib/apex/ApexLexer.tokens +0 -212
  118. package/lib/src/antlr/lib/apex/ApexParser.dart +0 -9349
  119. package/lib/src/antlr/lib/apex/ApexParser.interp +0 -326
  120. package/lib/src/antlr/lib/apex/ApexParser.tokens +0 -212
  121. package/lib/src/antlr/lib/apex/ApexParserBaseListener.dart +0 -1036
  122. package/lib/src/antlr/lib/apex/ApexParserListener.dart +0 -975
  123. package/lib/src/antlr/lib/apexdoc/ApexdocLexer.dart +0 -373
  124. package/lib/src/antlr/lib/apexdoc/ApexdocLexer.interp +0 -95
  125. package/lib/src/antlr/lib/apexdoc/ApexdocLexer.tokens +0 -23
  126. package/lib/src/antlr/lib/apexdoc/ApexdocParser.dart +0 -2471
  127. package/lib/src/antlr/lib/apexdoc/ApexdocParser.interp +0 -69
  128. package/lib/src/antlr/lib/apexdoc/ApexdocParser.tokens +0 -23
  129. package/lib/src/antlr/lib/apexdoc/ApexdocParserBaseListener.dart +0 -252
  130. package/lib/src/antlr/lib/apexdoc/ApexdocParserListener.dart +0 -215
  131. package/lib/src/builders/builders.dart +0 -32
  132. package/lib/src/model/apex_file_manifest.dart +0 -37
  133. package/lib/src/model/apex_file_manifest.g.dart +0 -18
  134. package/lib/src/model/declaration.dart +0 -50
  135. package/lib/src/model/doc_comment.dart +0 -117
  136. package/lib/src/model/doc_comment.g.dart +0 -118
  137. package/lib/src/model/members.dart +0 -143
  138. package/lib/src/model/members.g.dart +0 -105
  139. package/lib/src/model/types.dart +0 -159
  140. package/lib/src/model/types.g.dart +0 -111
  141. package/lib/src/service/apex_listener.dart +0 -226
  142. package/lib/src/service/apexdoc_listener.dart +0 -82
  143. package/lib/src/service/parsers.dart +0 -33
  144. package/lib/src/service/utils/parsing/access_modifiers_parser.dart +0 -33
  145. package/lib/src/service/utils/parsing/parameters_parser.dart +0 -18
  146. package/lib/src/service/utils/parsing/parsing_utils.dart +0 -2
  147. package/lib/src/service/walker.dart +0 -82
  148. package/pubspec.yaml +0 -19
  149. package/test/apex_file_manifest_test.dart +0 -16
  150. package/test/apex_listener_test.dart +0 -703
  151. package/test/apexdoc_parser_test.dart +0 -179
  152. package/test/doc_comment_test.dart +0 -89
  153. package/test/members_serialization_test.dart +0 -158
  154. package/test/members_test.dart +0 -178
  155. package/test/types_serialization_test.dart +0 -191
  156. package/test/types_test.dart +0 -311
  157. package/test/walker_test.dart +0 -58
  158. 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