@plurnk/plurnk-contracts 1.4.0 → 1.6.0

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 (64) hide show
  1. package/README.md +10 -6
  2. package/SPEC.md +368 -231
  3. package/dist/plurnk.gemma.gbnf +160 -0
  4. package/dist/plurnk.qwen.gbnf +149 -0
  5. package/dist/schema/ClientStatement.json +7 -1
  6. package/dist/schema/EntryReadResult.json +1 -9
  7. package/dist/schema/MatcherBody.json +1 -1
  8. package/dist/schema/OperationResult.json +3 -0
  9. package/dist/schema/PlurnkStatement.json +57 -12
  10. package/dist/schema/ProposalProjection.json +1 -1
  11. package/dist/schema/ProviderAccounting.json +30 -0
  12. package/dist/schema/ProviderCost.json +6 -15
  13. package/dist/schema/ProviderRequestAccounting.json +17 -0
  14. package/dist/schema/ProviderUsage.json +40 -0
  15. package/dist/schema/RangeExtent.json +47 -0
  16. package/dist/schema/ResourceSelection.json +1 -1
  17. package/dist/schema/TextLineMarker.json +21 -0
  18. package/dist/src/AstBuilder.d.ts.map +1 -1
  19. package/dist/src/AstBuilder.js +123 -22
  20. package/dist/src/AstBuilder.js.map +1 -1
  21. package/dist/src/JsonResult.d.ts +3 -0
  22. package/dist/src/JsonResult.d.ts.map +1 -0
  23. package/dist/src/JsonResult.js +37 -0
  24. package/dist/src/JsonResult.js.map +1 -0
  25. package/dist/src/PlurnkErrorStrategy.d.ts +1 -0
  26. package/dist/src/PlurnkErrorStrategy.d.ts.map +1 -1
  27. package/dist/src/PlurnkErrorStrategy.js +42 -19
  28. package/dist/src/PlurnkErrorStrategy.js.map +1 -1
  29. package/dist/src/PlurnkParser.d.ts.map +1 -1
  30. package/dist/src/PlurnkParser.js +22 -139
  31. package/dist/src/PlurnkParser.js.map +1 -1
  32. package/dist/src/TagSignal.d.ts +15 -0
  33. package/dist/src/TagSignal.d.ts.map +1 -0
  34. package/dist/src/TagSignal.js +48 -0
  35. package/dist/src/TagSignal.js.map +1 -0
  36. package/dist/src/Validator.d.ts +6 -1
  37. package/dist/src/Validator.d.ts.map +1 -1
  38. package/dist/src/Validator.js +36 -1
  39. package/dist/src/Validator.js.map +1 -1
  40. package/dist/src/generated/plurnkLexer.d.ts +99 -54
  41. package/dist/src/generated/plurnkLexer.d.ts.map +1 -1
  42. package/dist/src/generated/plurnkLexer.js +889 -498
  43. package/dist/src/generated/plurnkLexer.js.map +1 -1
  44. package/dist/src/generated/plurnkParser.d.ts +99 -108
  45. package/dist/src/generated/plurnkParser.d.ts.map +1 -1
  46. package/dist/src/generated/plurnkParser.js +943 -1068
  47. package/dist/src/generated/plurnkParser.js.map +1 -1
  48. package/dist/src/generated/plurnkParserVisitor.d.ts +19 -5
  49. package/dist/src/generated/plurnkParserVisitor.d.ts.map +1 -1
  50. package/dist/src/generated/plurnkParserVisitor.js +16 -4
  51. package/dist/src/generated/plurnkParserVisitor.js.map +1 -1
  52. package/dist/src/index.d.ts +6 -2
  53. package/dist/src/index.d.ts.map +1 -1
  54. package/dist/src/index.js +4 -2
  55. package/dist/src/index.js.map +1 -1
  56. package/dist/src/types.d.ts +2 -1
  57. package/dist/src/types.d.ts.map +1 -1
  58. package/dist/src/types.generated.d.ts +98 -24
  59. package/dist/src/types.generated.d.ts.map +1 -1
  60. package/dist/src/types.js +4 -1
  61. package/dist/src/types.js.map +1 -1
  62. package/package.json +8 -8
  63. package/plurnk.md +143 -133
  64. package/dist/plurnk.gbnf +0 -394
@@ -5,18 +5,18 @@ export class plurnkLexer extends antlr.Lexer {
5
5
  static LPAREN = 3;
6
6
  static RPAREN = 4;
7
7
  static L_MARKER = 5;
8
- static COLON = 6;
9
- static COMMA = 7;
10
- static INT = 8;
11
- static DISPOSITION = 9;
12
- static IDENT = 10;
13
- static TAG = 11;
14
- static TARGET_TEXT = 12;
15
- static BODY_TEXT = 13;
16
- static CLOSE_TAG = 14;
17
- static TEXT = 15;
18
- static OPEN_TURN = 16;
19
- static CLOSE_TURN = 17;
8
+ static COMBINED_L_MARKER = 6;
9
+ static BODY_OPEN = 7;
10
+ static SECTION_END = 8;
11
+ static COMMA = 9;
12
+ static INT = 10;
13
+ static DISPOSITION = 11;
14
+ static IDENT = 12;
15
+ static TAG = 13;
16
+ static TARGET_TEXT = 14;
17
+ static BODY_TEXT = 15;
18
+ static TEXT = 16;
19
+ static OPEN_PLAN = 17;
20
20
  static OPEN_FIND = 18;
21
21
  static OPEN_READ = 19;
22
22
  static OPEN_EDIT = 20;
@@ -26,20 +26,22 @@ export class plurnkLexer extends antlr.Lexer {
26
26
  static OPEN_FOLD = 24;
27
27
  static OPEN_SEND = 25;
28
28
  static OPEN_EXEC = 26;
29
- static OPEN_WORK = 27;
30
- static OPEN_FORK = 28;
31
- static OPEN_KILL = 29;
32
- static OPEN_PLAN = 30;
29
+ static OPEN_BARE = 27;
30
+ static OPEN_WORK = 28;
31
+ static OPEN_FORK = 29;
32
+ static OPEN_KILL = 30;
33
33
  static OPEN_LOOK = 31;
34
34
  static OPEN_BUFF = 32;
35
- static WS = 33;
36
- static SLOTS_WS = 34;
37
- static ST_WS = 35;
38
- static SI_WS = 36;
39
- static SD_WS = 37;
40
- static ST_COMMA = 38;
41
- static TARGET_BACKSLASH = 39;
42
- static B_COLON = 40;
35
+ static FENCE_OPEN = 33;
36
+ static FENCE_CLOSE = 34;
37
+ static WS = 35;
38
+ static SLOTS_WS = 36;
39
+ static ST_WS = 37;
40
+ static SI_WS = 38;
41
+ static SD_WS = 39;
42
+ static TEXT_HASH = 40;
43
+ static ST_COMMA = 41;
44
+ static TARGET_BACKSLASH = 42;
43
45
  static SLOTS = 1;
44
46
  static SIGNAL_TAGS = 2;
45
47
  static SIGNAL_INT = 3;
@@ -53,158 +55,181 @@ export class plurnkLexer extends antlr.Lexer {
53
55
  null, null, null, null, null, null, null, null, null, null, null,
54
56
  null, null, null, null, null, null, null, null, null, null, null,
55
57
  null, null, null, null, null, null, null, null, null, null, null,
56
- null, null, null, null, null, "','", "'\\'", "':'"
58
+ null, null, null, null, null, null, null, "'#'", "','", "'\\'"
57
59
  ];
58
60
  static symbolicNames = [
59
- null, "LBRACKET", "RBRACKET", "LPAREN", "RPAREN", "L_MARKER", "COLON",
60
- "COMMA", "INT", "DISPOSITION", "IDENT", "TAG", "TARGET_TEXT", "BODY_TEXT",
61
- "CLOSE_TAG", "TEXT", "OPEN_TURN", "CLOSE_TURN", "OPEN_FIND", "OPEN_READ",
62
- "OPEN_EDIT", "OPEN_COPY", "OPEN_MOVE", "OPEN_OPEN", "OPEN_FOLD",
63
- "OPEN_SEND", "OPEN_EXEC", "OPEN_WORK", "OPEN_FORK", "OPEN_KILL",
64
- "OPEN_PLAN", "OPEN_LOOK", "OPEN_BUFF", "WS", "SLOTS_WS", "ST_WS",
65
- "SI_WS", "SD_WS", "ST_COMMA", "TARGET_BACKSLASH", "B_COLON"
61
+ null, "LBRACKET", "RBRACKET", "LPAREN", "RPAREN", "L_MARKER", "COMBINED_L_MARKER",
62
+ "BODY_OPEN", "SECTION_END", "COMMA", "INT", "DISPOSITION", "IDENT",
63
+ "TAG", "TARGET_TEXT", "BODY_TEXT", "TEXT", "OPEN_PLAN", "OPEN_FIND",
64
+ "OPEN_READ", "OPEN_EDIT", "OPEN_COPY", "OPEN_MOVE", "OPEN_OPEN",
65
+ "OPEN_FOLD", "OPEN_SEND", "OPEN_EXEC", "OPEN_BARE", "OPEN_WORK",
66
+ "OPEN_FORK", "OPEN_KILL", "OPEN_LOOK", "OPEN_BUFF", "FENCE_OPEN",
67
+ "FENCE_CLOSE", "WS", "SLOTS_WS", "ST_WS", "SI_WS", "SD_WS", "TEXT_HASH",
68
+ "ST_COMMA", "TARGET_BACKSLASH"
66
69
  ];
67
70
  static modeNames = [
68
71
  "DEFAULT_MODE", "SLOTS", "SIGNAL_TAGS", "SIGNAL_INT", "SIGNAL_IDENT",
69
72
  "TARGET", "BODY",
70
73
  ];
71
74
  static ruleNames = [
72
- "SUFFIX", "NUM", "L_PATTERN", "OPEN_FIND", "OPEN_READ", "OPEN_EDIT",
73
- "OPEN_COPY", "OPEN_MOVE", "OPEN_OPEN", "OPEN_FOLD", "OPEN_SEND",
74
- "OPEN_EXEC", "OPEN_WORK", "OPEN_FORK", "OPEN_KILL", "OPEN_PLAN",
75
- "OPEN_TURN", "OPEN_LOOK", "OPEN_BUFF", "WS", "THINK_BLOCK", "CHANNEL_BLOCK",
76
- "CLOSE_TURN", "TEXT", "SLOTS_WS", "SLOTS_LB_TAGS", "SLOTS_LB_INT",
77
- "SLOTS_LB_IDENT", "SLOTS_LPAREN", "SLOTS_L", "SLOTS_EMPTY_CLOSE",
78
- "SLOTS_COLON_TURN", "SLOTS_COLON", "ST_WS", "ST_COMMA", "ST_TAG",
75
+ "SUFFIX", "NUM", "L_PATTERN", "LINE_ANCHOR", "TEXT_COORD", "TEXT_L_PATTERN",
76
+ "COMBINED_LINE_COORD", "COMBINED_TEXT_COORD", "COMBINED_TEXT_L_PATTERN",
77
+ "EOL", "OPEN_PLAN", "OPEN_FIND", "OPEN_READ", "OPEN_EDIT", "OPEN_COPY",
78
+ "OPEN_MOVE", "OPEN_OPEN", "OPEN_FOLD", "OPEN_SEND", "OPEN_EXEC",
79
+ "OPEN_BARE", "OPEN_WORK", "OPEN_FORK", "OPEN_KILL", "OPEN_LOOK",
80
+ "OPEN_BUFF", "FENCE_OPEN", "FENCE_CLOSE", "WS", "THINK_BLOCK", "CHANNEL_BLOCK",
81
+ "TEXT", "TEXT_HASH", "SLOTS_WS", "SLOTS_LB_TAGS", "SLOTS_LB_INT",
82
+ "SLOTS_LB_IDENT", "SLOTS_LPAREN", "SLOTS_TEXT_L", "SLOTS_L", "SLOTS_COMBINED_TEXT_L",
83
+ "SLOTS_DIRECT_END", "SLOTS_BODY_OPEN", "ST_WS", "ST_COMMA", "ST_TAG",
79
84
  "ST_END", "SI_WS", "SI_DISP", "SI_INT", "SI_END", "SD_WS", "SD_IDENT",
80
85
  "SD_END", "TARGET_ESCAPE", "TARGET_INNER", "TARGET_BACKSLASH", "TARGET_NEST_OPEN",
81
- "TARGET_NEST_END", "TARGET_END", "B_CLOSE", "B_RUN", "B_COLON",
86
+ "TARGET_NEST_END", "TARGET_END", "B_FENCE_CLOSE", "B_FENCE_END",
87
+ "B_SECTION_END", "B_DIRECT_END", "B_EMPTY_SPACED_END", "B_RUN",
88
+ "B_CRLF", "B_LF", "B_CR",
82
89
  ];
83
- openTag = "";
84
- openTagLine = 0;
85
- openTagColumn = 0;
86
- bodyStart = null;
90
+ activeSuffix = null;
91
+ openOp = "";
92
+ openHeading = "";
93
+ openHeadingLine = 0;
94
+ openHeadingColumn = 0;
95
+ slotReady = false;
87
96
  targetDepth = 0;
88
- setOpenTag() {
89
- this.openTag = this.text.substring(2);
90
- // Capture where the open tag began, for reference in mismatched-close-tag errors.
91
- this.openTagLine = this.currentTokenStartLine;
92
- this.openTagColumn = this.currentTokenColumn;
93
- this.bodyStart = null;
94
- }
95
- getOpenTag() { return this.openTag; }
96
- getOpenTagLine() { return this.openTagLine; }
97
- getOpenTagColumn() { return this.openTagColumn; }
98
- setBodyStart() {
99
- this.bodyStart = { line: this.line, column: this.column };
100
- }
101
- getBodyStart() {
102
- if (this.bodyStart === null)
103
- throw new Error("BODY start requested before entering BODY mode");
104
- return this.bodyStart;
105
- }
106
- atColonCloseTag() {
107
- if (this.inputStream.LA(1) !== 0x3A /* ':' */)
108
- return false;
109
- const tag = this.openTag;
110
- if (tag.length === 0)
111
- return false;
112
- for (let i = 0; i < tag.length; i++) {
113
- if (this.inputStream.LA(i + 2) !== tag.charCodeAt(i))
97
+ bodyAtStart = false;
98
+ terminalSend = false;
99
+ documentFence = false;
100
+ static PROTOCOL_OPS = [
101
+ "FIND", "READ", "EDIT", "COPY", "MOVE", "OPEN", "FOLD",
102
+ "SEND", "EXEC", "BARE", "WORK", "FORK", "KILL",
103
+ ];
104
+ static CLIENT_OPS = ["LOOK", "BUFF"];
105
+ isSuffixChar(c) {
106
+ return (c >= 0x30 && c <= 0x39)
107
+ || (c >= 0x41 && c <= 0x5A)
108
+ || (c >= 0x61 && c <= 0x7A)
109
+ || c === 0x5F;
110
+ }
111
+ matchesLiteral(offset, literal) {
112
+ for (let i = 0; i < literal.length; i++) {
113
+ if (this.inputStream.LA(offset + i) !== literal.charCodeAt(i))
114
114
  return false;
115
115
  }
116
- const followChar = this.inputStream.LA(tag.length + 2);
117
- if (followChar > 0 && this.isIdentChar(followChar))
118
- return false;
119
116
  return true;
120
117
  }
121
- isIdentChar(c) {
122
- return (c >= 0x30 && c <= 0x39) ||
123
- (c >= 0x41 && c <= 0x5A) ||
124
- (c >= 0x61 && c <= 0x7A) ||
125
- c === 0x5F;
126
- }
127
- consumeRestOfCloseTagAfterColon() {
128
- const remaining = this.openTag.length - 1;
129
- for (let i = 0; i < remaining; i++) {
130
- // Consume through the simulator so its line/column state advances with
131
- // the character stream. Direct CharStream consumption corrupts every
132
- // later token position by the number of skipped closer characters.
133
- this.interpreter.consume(this.inputStream);
134
- }
135
- }
136
- isOpKeywordAfterLtLt() {
137
- // The full minted op keyword set across all tiers — protocol (FIND…PLAN), script (TURN),
138
- // and client (LOOK/BUFF). Membership here means `<<KW` lexes as an opener, NOT prose, so a
139
- // client op in a protocol/script position becomes an OPEN_* token the parser then rejects
140
- // (territorial integrity: a minted op fails hard out of tier, it never masquerades as text).
141
- const ops = ["FIND", "READ", "EDIT", "COPY", "MOVE", "OPEN", "FOLD", "SEND", "EXEC", "WORK", "FORK", "KILL", "PLAN", "TURN", "LOOK", "BUFF"];
142
- for (const op of ops) {
143
- let matches = true;
144
- for (let i = 0; i < op.length; i++) {
145
- if (this.inputStream.LA(i + 1) !== op.charCodeAt(i)) {
146
- matches = false;
147
- break;
148
- }
149
- }
150
- if (matches)
151
- return true;
152
- }
153
- return false;
154
- }
155
- isSendOp() { return this.openTag.startsWith("SEND"); }
156
- isExecOp() { return this.openTag.startsWith("EXEC"); }
157
- isKillOp() { return this.openTag.startsWith("KILL"); }
158
- isTurnOp() { return this.openTag.startsWith("TURN"); }
159
- // TURN suffix stack — one entry per open `<<TURN…:` body (pushed by the TURN colon below,
160
- // popped by `:TURN`). Stack depth doubles as nesting depth: a `:TURN` close only fires inside
161
- // an open TURN, so a stray `:TURN` at top level (or in preamble prose) stays TEXT.
162
- turnSuffixStack = [];
163
- // True when the stream is at the matching `:TURN<suffix>` close for the innermost open TURN.
164
- // Mirrors atColonCloseTag: exact suffix match AND a non-ident follow char, so `:TURNING` (or
165
- // a mismatched `:TURN2` for a `<<TURN1`) does NOT false-close inside a turn's prose.
166
- atTurnCloseTag() {
167
- if (this.turnSuffixStack.length === 0)
168
- return false;
169
- if (this.inputStream.LA(1) !== 0x3A /* ':' */)
170
- return false;
171
- const tag = "TURN" + this.turnSuffixStack[this.turnSuffixStack.length - 1];
172
- for (let i = 0; i < tag.length; i++) {
173
- if (this.inputStream.LA(i + 2) !== tag.charCodeAt(i))
174
- return false;
118
+ headingAt(offset) {
119
+ let level;
120
+ let cursor = offset;
121
+ if (this.matchesLiteral(cursor, "# PLAN")) {
122
+ level = 1;
123
+ cursor += "# PLAN".length;
124
+ }
125
+ else if (this.matchesLiteral(cursor, "## ")) {
126
+ level = 2;
127
+ cursor += 3;
128
+ }
129
+ else {
130
+ return null;
175
131
  }
176
- const followChar = this.inputStream.LA(tag.length + 2);
177
- if (followChar > 0 && this.isIdentChar(followChar))
132
+ let op = "PLAN";
133
+ if (level === 2) {
134
+ const operations = [...plurnkLexer.PROTOCOL_OPS, ...plurnkLexer.CLIENT_OPS];
135
+ op = operations.find((candidate) => this.matchesLiteral(cursor, candidate)) ?? "";
136
+ if (op.length === 0)
137
+ return null;
138
+ cursor += op.length;
139
+ }
140
+ let suffix = "";
141
+ while (this.isSuffixChar(this.inputStream.LA(cursor))) {
142
+ suffix += String.fromCharCode(this.inputStream.LA(cursor));
143
+ cursor++;
144
+ }
145
+ const next = this.inputStream.LA(cursor);
146
+ const headerContinues = next <= 0
147
+ || next === 0x20 || next === 0x09
148
+ || next === 0x5B || next === 0x28 || next === 0x3C
149
+ || next === 0x0A || next === 0x0D;
150
+ if (!headerContinues)
151
+ return null;
152
+ const startsNextTurn = level === 1 && op === "PLAN" && this.terminalSend;
153
+ if (this.activeSuffix !== null && suffix !== this.activeSuffix && !startsNextTurn)
154
+ return null;
155
+ return { level, op, suffix };
156
+ }
157
+ matchesHeading(level, op) {
158
+ // The initial PLAN terminates tolerated provider preamble text, even when
159
+ // the provider omitted a separating newline. Once PLAN establishes the
160
+ // lane, every heading retains the ordinary column-zero boundary.
161
+ const initialPlan = level === 1 && op === "PLAN" && this.activeSuffix === null;
162
+ if (this.column !== 0 && !initialPlan)
178
163
  return false;
179
- return true;
164
+ const heading = this.headingAt(1);
165
+ return heading !== null && heading.level === level && heading.op === op;
166
+ }
167
+ open(level, op) {
168
+ const prefixLength = (level === 1 ? "# " : "## ").length + op.length;
169
+ const suffix = this.text.slice(prefixLength);
170
+ const startsNextTurn = level === 1 && op === "PLAN" && this.terminalSend;
171
+ if (this.activeSuffix === null || startsNextTurn)
172
+ this.activeSuffix = suffix;
173
+ this.openOp = op;
174
+ this.openHeading = this.text;
175
+ this.openHeadingLine = this.currentTokenStartLine;
176
+ this.openHeadingColumn = this.currentTokenColumn;
177
+ this.slotReady = true;
178
+ this.bodyAtStart = false;
179
+ this.terminalSend = false;
180
180
  }
181
- // Narrow single-colon empty-body close: at the post-target/modifier `:`, the stream is the
182
- // op's own close tag `:OP<suffix>` AND it is followed by a STATEMENT BOUNDARY
183
- // (newline / EOF / optional horizontal space then next `<<`). So `<<READ(t):READ\n` closes empty, but a bodied op whose body
184
- // starts with the op keyword (`<<EDIT(t):EDIT this:EDIT` — space follows) is NOT mis-closed.
185
- // Canon still prescribes `::OP`; this only forgives the HEREDOC-natural single colon.
186
- atSlotsEmptyClose() {
187
- if (this.isTurnOp())
188
- return false; // TURN closes with :TURN, not an empty body
189
- if (this.openTag.length === 0)
181
+ markDisposition() {
182
+ if (this.openOp === "SEND")
183
+ this.terminalSend = true;
184
+ }
185
+ offsetAfterEol(offset) {
186
+ if (this.inputStream.LA(offset) === 0x0D && this.inputStream.LA(offset + 1) === 0x0A)
187
+ return offset + 2;
188
+ if (this.inputStream.LA(offset) === 0x0A)
189
+ return offset + 1;
190
+ return null;
191
+ }
192
+ headingAfterDirectEol() {
193
+ const after = this.offsetAfterEol(1);
194
+ return after !== null && this.headingAt(after) !== null;
195
+ }
196
+ headingAfterBlankLine() {
197
+ let after = this.offsetAfterEol(1);
198
+ if (after === null)
190
199
  return false;
191
- if (this.inputStream.LA(1) !== 0x3A /* ':' */)
200
+ while (this.inputStream.LA(after) === 0x20 || this.inputStream.LA(after) === 0x09)
201
+ after++;
202
+ after = this.offsetAfterEol(after);
203
+ return after !== null && this.headingAt(after) !== null;
204
+ }
205
+ headingAfterEmptySpacedLine() {
206
+ if (!this.bodyAtStart)
192
207
  return false;
193
- const tag = this.openTag;
194
- for (let i = 0; i < tag.length; i++) {
195
- if (this.inputStream.LA(i + 2) !== tag.charCodeAt(i))
196
- return false;
197
- }
198
- let offset = tag.length + 2;
199
- let follow = this.inputStream.LA(offset);
200
- while (follow === 0x20 /* space */ || follow === 0x09 /* tab */) {
201
- follow = this.inputStream.LA(++offset);
202
- }
203
- return follow <= 0
204
- || follow === 0x0A /* \n */
205
- || follow === 0x0D /* \r */
206
- || (follow === 0x3C /* < */ && this.inputStream.LA(offset + 1) === 0x3C /* < */);
208
+ let after = 1;
209
+ while (this.inputStream.LA(after) === 0x20 || this.inputStream.LA(after) === 0x09)
210
+ after++;
211
+ const lineEnd = this.offsetAfterEol(after);
212
+ return lineEnd !== null && this.headingAt(lineEnd) !== null;
213
+ }
214
+ beginBody() { this.bodyAtStart = true; }
215
+ retainBody() { this.bodyAtStart = false; }
216
+ openDocumentFence() { this.documentFence = true; }
217
+ closeDocumentFence() { this.documentFence = false; }
218
+ inDocumentFence() { return this.documentFence; }
219
+ fenceAfterDirectEol() {
220
+ const after = this.offsetAfterEol(1);
221
+ return after !== null && this.matchesLiteral(after, "```");
222
+ }
223
+ getOpenTag() { return this.openOp + (this.activeSuffix ?? ""); }
224
+ getOpenTagLine() { return this.openHeadingLine; }
225
+ getOpenTagColumn() { return this.openHeadingColumn; }
226
+ getOpenHeading() { return this.openHeading; }
227
+ isSendOp() { return this.openOp === "SEND"; }
228
+ isExecOp() { return this.openOp === "EXEC"; }
229
+ isTextCoordinateOp() {
230
+ return this.openOp === "READ" || this.openOp === "EDIT" || this.openOp === "COPY" || this.openOp === "MOVE" || this.openOp === "LOOK";
207
231
  }
232
+ isKillOp() { return this.openOp === "KILL"; }
208
233
  constructor(input) {
209
234
  super(input);
210
235
  this.interpreter = new antlr.LexerATNSimulator(this, plurnkLexer._ATN, plurnkLexer.decisionsToDFA, new antlr.PredictionContextCache());
@@ -218,336 +243,633 @@ export class plurnkLexer extends antlr.Lexer {
218
243
  get modeNames() { return plurnkLexer.modeNames; }
219
244
  action(localContext, ruleIndex, actionIndex) {
220
245
  switch (ruleIndex) {
221
- case 3:
246
+ case 10:
247
+ this.OPEN_PLAN_action(localContext, actionIndex);
248
+ break;
249
+ case 11:
222
250
  this.OPEN_FIND_action(localContext, actionIndex);
223
251
  break;
224
- case 4:
252
+ case 12:
225
253
  this.OPEN_READ_action(localContext, actionIndex);
226
254
  break;
227
- case 5:
255
+ case 13:
228
256
  this.OPEN_EDIT_action(localContext, actionIndex);
229
257
  break;
230
- case 6:
258
+ case 14:
231
259
  this.OPEN_COPY_action(localContext, actionIndex);
232
260
  break;
233
- case 7:
261
+ case 15:
234
262
  this.OPEN_MOVE_action(localContext, actionIndex);
235
263
  break;
236
- case 8:
264
+ case 16:
237
265
  this.OPEN_OPEN_action(localContext, actionIndex);
238
266
  break;
239
- case 9:
267
+ case 17:
240
268
  this.OPEN_FOLD_action(localContext, actionIndex);
241
269
  break;
242
- case 10:
270
+ case 18:
243
271
  this.OPEN_SEND_action(localContext, actionIndex);
244
272
  break;
245
- case 11:
273
+ case 19:
246
274
  this.OPEN_EXEC_action(localContext, actionIndex);
247
275
  break;
248
- case 12:
276
+ case 20:
277
+ this.OPEN_BARE_action(localContext, actionIndex);
278
+ break;
279
+ case 21:
249
280
  this.OPEN_WORK_action(localContext, actionIndex);
250
281
  break;
251
- case 13:
282
+ case 22:
252
283
  this.OPEN_FORK_action(localContext, actionIndex);
253
284
  break;
254
- case 14:
285
+ case 23:
255
286
  this.OPEN_KILL_action(localContext, actionIndex);
256
287
  break;
257
- case 15:
258
- this.OPEN_PLAN_action(localContext, actionIndex);
259
- break;
260
- case 16:
261
- this.OPEN_TURN_action(localContext, actionIndex);
262
- break;
263
- case 17:
288
+ case 24:
264
289
  this.OPEN_LOOK_action(localContext, actionIndex);
265
290
  break;
266
- case 18:
291
+ case 25:
267
292
  this.OPEN_BUFF_action(localContext, actionIndex);
268
293
  break;
269
- case 22:
270
- this.CLOSE_TURN_action(localContext, actionIndex);
294
+ case 26:
295
+ this.FENCE_OPEN_action(localContext, actionIndex);
271
296
  break;
272
- case 28:
297
+ case 27:
298
+ this.FENCE_CLOSE_action(localContext, actionIndex);
299
+ break;
300
+ case 33:
301
+ this.SLOTS_WS_action(localContext, actionIndex);
302
+ break;
303
+ case 37:
273
304
  this.SLOTS_LPAREN_action(localContext, actionIndex);
274
305
  break;
275
- case 30:
276
- this.SLOTS_EMPTY_CLOSE_action(localContext, actionIndex);
306
+ case 42:
307
+ this.SLOTS_BODY_OPEN_action(localContext, actionIndex);
277
308
  break;
278
- case 31:
279
- this.SLOTS_COLON_TURN_action(localContext, actionIndex);
309
+ case 46:
310
+ this.ST_END_action(localContext, actionIndex);
280
311
  break;
281
- case 32:
282
- this.SLOTS_COLON_action(localContext, actionIndex);
312
+ case 48:
313
+ this.SI_DISP_action(localContext, actionIndex);
283
314
  break;
284
- case 47:
315
+ case 50:
316
+ this.SI_END_action(localContext, actionIndex);
317
+ break;
318
+ case 53:
319
+ this.SD_END_action(localContext, actionIndex);
320
+ break;
321
+ case 57:
285
322
  this.TARGET_NEST_OPEN_action(localContext, actionIndex);
286
323
  break;
287
- case 48:
324
+ case 58:
288
325
  this.TARGET_NEST_END_action(localContext, actionIndex);
289
326
  break;
290
- case 50:
291
- this.B_CLOSE_action(localContext, actionIndex);
327
+ case 59:
328
+ this.TARGET_END_action(localContext, actionIndex);
329
+ break;
330
+ case 60:
331
+ this.B_FENCE_CLOSE_action(localContext, actionIndex);
332
+ break;
333
+ case 65:
334
+ this.B_RUN_action(localContext, actionIndex);
335
+ break;
336
+ case 66:
337
+ this.B_CRLF_action(localContext, actionIndex);
338
+ break;
339
+ case 67:
340
+ this.B_LF_action(localContext, actionIndex);
341
+ break;
342
+ case 68:
343
+ this.B_CR_action(localContext, actionIndex);
292
344
  break;
293
345
  }
294
346
  }
295
- OPEN_FIND_action(localContext, actionIndex) {
347
+ OPEN_PLAN_action(localContext, actionIndex) {
296
348
  switch (actionIndex) {
297
349
  case 0:
298
- this.setOpenTag();
350
+ this.open(1, "PLAN");
299
351
  break;
300
352
  }
301
353
  }
302
- OPEN_READ_action(localContext, actionIndex) {
354
+ OPEN_FIND_action(localContext, actionIndex) {
303
355
  switch (actionIndex) {
304
356
  case 1:
305
- this.setOpenTag();
357
+ this.open(2, "FIND");
306
358
  break;
307
359
  }
308
360
  }
309
- OPEN_EDIT_action(localContext, actionIndex) {
361
+ OPEN_READ_action(localContext, actionIndex) {
310
362
  switch (actionIndex) {
311
363
  case 2:
312
- this.setOpenTag();
364
+ this.open(2, "READ");
313
365
  break;
314
366
  }
315
367
  }
316
- OPEN_COPY_action(localContext, actionIndex) {
368
+ OPEN_EDIT_action(localContext, actionIndex) {
317
369
  switch (actionIndex) {
318
370
  case 3:
319
- this.setOpenTag();
371
+ this.open(2, "EDIT");
320
372
  break;
321
373
  }
322
374
  }
323
- OPEN_MOVE_action(localContext, actionIndex) {
375
+ OPEN_COPY_action(localContext, actionIndex) {
324
376
  switch (actionIndex) {
325
377
  case 4:
326
- this.setOpenTag();
378
+ this.open(2, "COPY");
327
379
  break;
328
380
  }
329
381
  }
330
- OPEN_OPEN_action(localContext, actionIndex) {
382
+ OPEN_MOVE_action(localContext, actionIndex) {
331
383
  switch (actionIndex) {
332
384
  case 5:
333
- this.setOpenTag();
385
+ this.open(2, "MOVE");
334
386
  break;
335
387
  }
336
388
  }
337
- OPEN_FOLD_action(localContext, actionIndex) {
389
+ OPEN_OPEN_action(localContext, actionIndex) {
338
390
  switch (actionIndex) {
339
391
  case 6:
340
- this.setOpenTag();
392
+ this.open(2, "OPEN");
341
393
  break;
342
394
  }
343
395
  }
344
- OPEN_SEND_action(localContext, actionIndex) {
396
+ OPEN_FOLD_action(localContext, actionIndex) {
345
397
  switch (actionIndex) {
346
398
  case 7:
347
- this.setOpenTag();
399
+ this.open(2, "FOLD");
348
400
  break;
349
401
  }
350
402
  }
351
- OPEN_EXEC_action(localContext, actionIndex) {
403
+ OPEN_SEND_action(localContext, actionIndex) {
352
404
  switch (actionIndex) {
353
405
  case 8:
354
- this.setOpenTag();
406
+ this.open(2, "SEND");
355
407
  break;
356
408
  }
357
409
  }
358
- OPEN_WORK_action(localContext, actionIndex) {
410
+ OPEN_EXEC_action(localContext, actionIndex) {
359
411
  switch (actionIndex) {
360
412
  case 9:
361
- this.setOpenTag();
413
+ this.open(2, "EXEC");
362
414
  break;
363
415
  }
364
416
  }
365
- OPEN_FORK_action(localContext, actionIndex) {
417
+ OPEN_BARE_action(localContext, actionIndex) {
366
418
  switch (actionIndex) {
367
419
  case 10:
368
- this.setOpenTag();
420
+ this.open(2, "BARE");
369
421
  break;
370
422
  }
371
423
  }
372
- OPEN_KILL_action(localContext, actionIndex) {
424
+ OPEN_WORK_action(localContext, actionIndex) {
373
425
  switch (actionIndex) {
374
426
  case 11:
375
- this.setOpenTag();
427
+ this.open(2, "WORK");
376
428
  break;
377
429
  }
378
430
  }
379
- OPEN_PLAN_action(localContext, actionIndex) {
431
+ OPEN_FORK_action(localContext, actionIndex) {
380
432
  switch (actionIndex) {
381
433
  case 12:
382
- this.setOpenTag();
434
+ this.open(2, "FORK");
383
435
  break;
384
436
  }
385
437
  }
386
- OPEN_TURN_action(localContext, actionIndex) {
438
+ OPEN_KILL_action(localContext, actionIndex) {
387
439
  switch (actionIndex) {
388
440
  case 13:
389
- this.setOpenTag();
441
+ this.open(2, "KILL");
390
442
  break;
391
443
  }
392
444
  }
393
445
  OPEN_LOOK_action(localContext, actionIndex) {
394
446
  switch (actionIndex) {
395
447
  case 14:
396
- this.setOpenTag();
448
+ this.open(2, "LOOK");
397
449
  break;
398
450
  }
399
451
  }
400
452
  OPEN_BUFF_action(localContext, actionIndex) {
401
453
  switch (actionIndex) {
402
454
  case 15:
403
- this.setOpenTag();
455
+ this.open(2, "BUFF");
404
456
  break;
405
457
  }
406
458
  }
407
- CLOSE_TURN_action(localContext, actionIndex) {
459
+ FENCE_OPEN_action(localContext, actionIndex) {
408
460
  switch (actionIndex) {
409
461
  case 16:
410
- this.turnSuffixStack.pop();
462
+ this.openDocumentFence();
411
463
  break;
412
464
  }
413
465
  }
414
- SLOTS_LPAREN_action(localContext, actionIndex) {
466
+ FENCE_CLOSE_action(localContext, actionIndex) {
415
467
  switch (actionIndex) {
416
468
  case 17:
417
- this.targetDepth = 0;
469
+ this.closeDocumentFence();
418
470
  break;
419
471
  }
420
472
  }
421
- SLOTS_EMPTY_CLOSE_action(localContext, actionIndex) {
473
+ SLOTS_WS_action(localContext, actionIndex) {
422
474
  switch (actionIndex) {
423
475
  case 18:
424
- this.consumeRestOfCloseTagAfterColon();
476
+ this.slotReady = true;
425
477
  break;
426
478
  }
427
479
  }
428
- SLOTS_COLON_TURN_action(localContext, actionIndex) {
480
+ SLOTS_LPAREN_action(localContext, actionIndex) {
429
481
  switch (actionIndex) {
430
482
  case 19:
431
- this.turnSuffixStack.push(this.openTag.substring(4));
483
+ this.targetDepth = 0;
432
484
  break;
433
485
  }
434
486
  }
435
- SLOTS_COLON_action(localContext, actionIndex) {
487
+ SLOTS_BODY_OPEN_action(localContext, actionIndex) {
436
488
  switch (actionIndex) {
437
489
  case 20:
438
- this.setBodyStart();
490
+ this.beginBody();
439
491
  break;
440
492
  }
441
493
  }
442
- TARGET_NEST_OPEN_action(localContext, actionIndex) {
494
+ ST_END_action(localContext, actionIndex) {
443
495
  switch (actionIndex) {
444
496
  case 21:
497
+ this.slotReady = true;
498
+ break;
499
+ }
500
+ }
501
+ SI_DISP_action(localContext, actionIndex) {
502
+ switch (actionIndex) {
503
+ case 22:
504
+ this.markDisposition();
505
+ break;
506
+ }
507
+ }
508
+ SI_END_action(localContext, actionIndex) {
509
+ switch (actionIndex) {
510
+ case 23:
511
+ this.slotReady = true;
512
+ break;
513
+ }
514
+ }
515
+ SD_END_action(localContext, actionIndex) {
516
+ switch (actionIndex) {
517
+ case 24:
518
+ this.slotReady = true;
519
+ break;
520
+ }
521
+ }
522
+ TARGET_NEST_OPEN_action(localContext, actionIndex) {
523
+ switch (actionIndex) {
524
+ case 25:
445
525
  this.targetDepth++;
446
526
  break;
447
527
  }
448
528
  }
449
529
  TARGET_NEST_END_action(localContext, actionIndex) {
450
530
  switch (actionIndex) {
451
- case 22:
531
+ case 26:
452
532
  this.targetDepth--;
453
533
  break;
454
534
  }
455
535
  }
456
- B_CLOSE_action(localContext, actionIndex) {
536
+ TARGET_END_action(localContext, actionIndex) {
457
537
  switch (actionIndex) {
458
- case 23:
459
- this.consumeRestOfCloseTagAfterColon();
538
+ case 27:
539
+ this.slotReady = true;
540
+ break;
541
+ }
542
+ }
543
+ B_FENCE_CLOSE_action(localContext, actionIndex) {
544
+ switch (actionIndex) {
545
+ case 28:
546
+ this.closeDocumentFence();
547
+ break;
548
+ }
549
+ }
550
+ B_RUN_action(localContext, actionIndex) {
551
+ switch (actionIndex) {
552
+ case 29:
553
+ this.retainBody();
554
+ break;
555
+ }
556
+ }
557
+ B_CRLF_action(localContext, actionIndex) {
558
+ switch (actionIndex) {
559
+ case 30:
560
+ this.retainBody();
561
+ break;
562
+ }
563
+ }
564
+ B_LF_action(localContext, actionIndex) {
565
+ switch (actionIndex) {
566
+ case 31:
567
+ this.retainBody();
568
+ break;
569
+ }
570
+ }
571
+ B_CR_action(localContext, actionIndex) {
572
+ switch (actionIndex) {
573
+ case 32:
574
+ this.retainBody();
460
575
  break;
461
576
  }
462
577
  }
463
578
  sempred(localContext, ruleIndex, predIndex) {
464
579
  switch (ruleIndex) {
580
+ case 10:
581
+ return this.OPEN_PLAN_sempred(localContext, predIndex);
582
+ case 11:
583
+ return this.OPEN_FIND_sempred(localContext, predIndex);
584
+ case 12:
585
+ return this.OPEN_READ_sempred(localContext, predIndex);
586
+ case 13:
587
+ return this.OPEN_EDIT_sempred(localContext, predIndex);
588
+ case 14:
589
+ return this.OPEN_COPY_sempred(localContext, predIndex);
590
+ case 15:
591
+ return this.OPEN_MOVE_sempred(localContext, predIndex);
592
+ case 16:
593
+ return this.OPEN_OPEN_sempred(localContext, predIndex);
594
+ case 17:
595
+ return this.OPEN_FOLD_sempred(localContext, predIndex);
596
+ case 18:
597
+ return this.OPEN_SEND_sempred(localContext, predIndex);
598
+ case 19:
599
+ return this.OPEN_EXEC_sempred(localContext, predIndex);
600
+ case 20:
601
+ return this.OPEN_BARE_sempred(localContext, predIndex);
602
+ case 21:
603
+ return this.OPEN_WORK_sempred(localContext, predIndex);
465
604
  case 22:
466
- return this.CLOSE_TURN_sempred(localContext, predIndex);
605
+ return this.OPEN_FORK_sempred(localContext, predIndex);
467
606
  case 23:
468
- return this.TEXT_sempred(localContext, predIndex);
607
+ return this.OPEN_KILL_sempred(localContext, predIndex);
608
+ case 24:
609
+ return this.OPEN_LOOK_sempred(localContext, predIndex);
469
610
  case 25:
470
- return this.SLOTS_LB_TAGS_sempred(localContext, predIndex);
611
+ return this.OPEN_BUFF_sempred(localContext, predIndex);
471
612
  case 26:
472
- return this.SLOTS_LB_INT_sempred(localContext, predIndex);
613
+ return this.FENCE_OPEN_sempred(localContext, predIndex);
473
614
  case 27:
615
+ return this.FENCE_CLOSE_sempred(localContext, predIndex);
616
+ case 34:
617
+ return this.SLOTS_LB_TAGS_sempred(localContext, predIndex);
618
+ case 35:
619
+ return this.SLOTS_LB_INT_sempred(localContext, predIndex);
620
+ case 36:
474
621
  return this.SLOTS_LB_IDENT_sempred(localContext, predIndex);
475
- case 30:
476
- return this.SLOTS_EMPTY_CLOSE_sempred(localContext, predIndex);
477
- case 31:
478
- return this.SLOTS_COLON_TURN_sempred(localContext, predIndex);
479
- case 48:
622
+ case 37:
623
+ return this.SLOTS_LPAREN_sempred(localContext, predIndex);
624
+ case 38:
625
+ return this.SLOTS_TEXT_L_sempred(localContext, predIndex);
626
+ case 39:
627
+ return this.SLOTS_L_sempred(localContext, predIndex);
628
+ case 40:
629
+ return this.SLOTS_COMBINED_TEXT_L_sempred(localContext, predIndex);
630
+ case 41:
631
+ return this.SLOTS_DIRECT_END_sempred(localContext, predIndex);
632
+ case 58:
480
633
  return this.TARGET_NEST_END_sempred(localContext, predIndex);
481
- case 50:
482
- return this.B_CLOSE_sempred(localContext, predIndex);
634
+ case 60:
635
+ return this.B_FENCE_CLOSE_sempred(localContext, predIndex);
636
+ case 61:
637
+ return this.B_FENCE_END_sempred(localContext, predIndex);
638
+ case 62:
639
+ return this.B_SECTION_END_sempred(localContext, predIndex);
640
+ case 63:
641
+ return this.B_DIRECT_END_sempred(localContext, predIndex);
642
+ case 64:
643
+ return this.B_EMPTY_SPACED_END_sempred(localContext, predIndex);
483
644
  }
484
645
  return true;
485
646
  }
486
- CLOSE_TURN_sempred(localContext, predIndex) {
647
+ OPEN_PLAN_sempred(localContext, predIndex) {
487
648
  switch (predIndex) {
488
649
  case 0:
489
- return this.atTurnCloseTag();
650
+ return this.matchesHeading(1, "PLAN");
490
651
  }
491
652
  return true;
492
653
  }
493
- TEXT_sempred(localContext, predIndex) {
654
+ OPEN_FIND_sempred(localContext, predIndex) {
494
655
  switch (predIndex) {
495
656
  case 1:
496
- return !this.isOpKeywordAfterLtLt();
657
+ return this.matchesHeading(2, "FIND");
497
658
  }
498
659
  return true;
499
660
  }
500
- SLOTS_LB_TAGS_sempred(localContext, predIndex) {
661
+ OPEN_READ_sempred(localContext, predIndex) {
501
662
  switch (predIndex) {
502
663
  case 2:
503
- return !this.isSendOp() && !this.isExecOp() && !this.isKillOp();
664
+ return this.matchesHeading(2, "READ");
504
665
  }
505
666
  return true;
506
667
  }
507
- SLOTS_LB_INT_sempred(localContext, predIndex) {
668
+ OPEN_EDIT_sempred(localContext, predIndex) {
508
669
  switch (predIndex) {
509
670
  case 3:
510
- return this.isSendOp() || this.isKillOp();
671
+ return this.matchesHeading(2, "EDIT");
511
672
  }
512
673
  return true;
513
674
  }
514
- SLOTS_LB_IDENT_sempred(localContext, predIndex) {
675
+ OPEN_COPY_sempred(localContext, predIndex) {
515
676
  switch (predIndex) {
516
677
  case 4:
517
- return this.isExecOp();
678
+ return this.matchesHeading(2, "COPY");
518
679
  }
519
680
  return true;
520
681
  }
521
- SLOTS_EMPTY_CLOSE_sempred(localContext, predIndex) {
682
+ OPEN_MOVE_sempred(localContext, predIndex) {
522
683
  switch (predIndex) {
523
684
  case 5:
524
- return this.atSlotsEmptyClose();
685
+ return this.matchesHeading(2, "MOVE");
525
686
  }
526
687
  return true;
527
688
  }
528
- SLOTS_COLON_TURN_sempred(localContext, predIndex) {
689
+ OPEN_OPEN_sempred(localContext, predIndex) {
529
690
  switch (predIndex) {
530
691
  case 6:
531
- return this.isTurnOp();
692
+ return this.matchesHeading(2, "OPEN");
532
693
  }
533
694
  return true;
534
695
  }
535
- TARGET_NEST_END_sempred(localContext, predIndex) {
696
+ OPEN_FOLD_sempred(localContext, predIndex) {
536
697
  switch (predIndex) {
537
698
  case 7:
538
- return this.targetDepth > 0;
699
+ return this.matchesHeading(2, "FOLD");
539
700
  }
540
701
  return true;
541
702
  }
542
- B_CLOSE_sempred(localContext, predIndex) {
703
+ OPEN_SEND_sempred(localContext, predIndex) {
543
704
  switch (predIndex) {
544
705
  case 8:
545
- return this.atColonCloseTag();
706
+ return this.matchesHeading(2, "SEND");
707
+ }
708
+ return true;
709
+ }
710
+ OPEN_EXEC_sempred(localContext, predIndex) {
711
+ switch (predIndex) {
712
+ case 9:
713
+ return this.matchesHeading(2, "EXEC");
714
+ }
715
+ return true;
716
+ }
717
+ OPEN_BARE_sempred(localContext, predIndex) {
718
+ switch (predIndex) {
719
+ case 10:
720
+ return this.matchesHeading(2, "BARE");
721
+ }
722
+ return true;
723
+ }
724
+ OPEN_WORK_sempred(localContext, predIndex) {
725
+ switch (predIndex) {
726
+ case 11:
727
+ return this.matchesHeading(2, "WORK");
728
+ }
729
+ return true;
730
+ }
731
+ OPEN_FORK_sempred(localContext, predIndex) {
732
+ switch (predIndex) {
733
+ case 12:
734
+ return this.matchesHeading(2, "FORK");
735
+ }
736
+ return true;
737
+ }
738
+ OPEN_KILL_sempred(localContext, predIndex) {
739
+ switch (predIndex) {
740
+ case 13:
741
+ return this.matchesHeading(2, "KILL");
742
+ }
743
+ return true;
744
+ }
745
+ OPEN_LOOK_sempred(localContext, predIndex) {
746
+ switch (predIndex) {
747
+ case 14:
748
+ return this.matchesHeading(2, "LOOK");
749
+ }
750
+ return true;
751
+ }
752
+ OPEN_BUFF_sempred(localContext, predIndex) {
753
+ switch (predIndex) {
754
+ case 15:
755
+ return this.matchesHeading(2, "BUFF");
756
+ }
757
+ return true;
758
+ }
759
+ FENCE_OPEN_sempred(localContext, predIndex) {
760
+ switch (predIndex) {
761
+ case 16:
762
+ return this.column === 0 && !this.inDocumentFence();
763
+ }
764
+ return true;
765
+ }
766
+ FENCE_CLOSE_sempred(localContext, predIndex) {
767
+ switch (predIndex) {
768
+ case 17:
769
+ return this.column === 0 && this.inDocumentFence();
770
+ }
771
+ return true;
772
+ }
773
+ SLOTS_LB_TAGS_sempred(localContext, predIndex) {
774
+ switch (predIndex) {
775
+ case 18:
776
+ return this.slotReady && !this.isSendOp() && !this.isExecOp() && !this.isKillOp();
777
+ }
778
+ return true;
779
+ }
780
+ SLOTS_LB_INT_sempred(localContext, predIndex) {
781
+ switch (predIndex) {
782
+ case 19:
783
+ return this.slotReady && (this.isSendOp() || this.isKillOp());
784
+ }
785
+ return true;
786
+ }
787
+ SLOTS_LB_IDENT_sempred(localContext, predIndex) {
788
+ switch (predIndex) {
789
+ case 20:
790
+ return this.slotReady && this.isExecOp();
791
+ }
792
+ return true;
793
+ }
794
+ SLOTS_LPAREN_sempred(localContext, predIndex) {
795
+ switch (predIndex) {
796
+ case 21:
797
+ return this.slotReady;
798
+ }
799
+ return true;
800
+ }
801
+ SLOTS_TEXT_L_sempred(localContext, predIndex) {
802
+ switch (predIndex) {
803
+ case 22:
804
+ return this.slotReady && this.isTextCoordinateOp();
805
+ }
806
+ return true;
807
+ }
808
+ SLOTS_L_sempred(localContext, predIndex) {
809
+ switch (predIndex) {
810
+ case 23:
811
+ return this.slotReady;
812
+ }
813
+ return true;
814
+ }
815
+ SLOTS_COMBINED_TEXT_L_sempred(localContext, predIndex) {
816
+ switch (predIndex) {
817
+ case 24:
818
+ return this.slotReady && this.isTextCoordinateOp();
819
+ }
820
+ return true;
821
+ }
822
+ SLOTS_DIRECT_END_sempred(localContext, predIndex) {
823
+ switch (predIndex) {
824
+ case 25:
825
+ return this.headingAfterDirectEol();
826
+ }
827
+ return true;
828
+ }
829
+ TARGET_NEST_END_sempred(localContext, predIndex) {
830
+ switch (predIndex) {
831
+ case 26:
832
+ return this.targetDepth > 0;
833
+ }
834
+ return true;
835
+ }
836
+ B_FENCE_CLOSE_sempred(localContext, predIndex) {
837
+ switch (predIndex) {
838
+ case 27:
839
+ return this.column === 0 && this.inDocumentFence();
840
+ }
841
+ return true;
842
+ }
843
+ B_FENCE_END_sempred(localContext, predIndex) {
844
+ switch (predIndex) {
845
+ case 28:
846
+ return this.inDocumentFence() && this.fenceAfterDirectEol();
847
+ }
848
+ return true;
849
+ }
850
+ B_SECTION_END_sempred(localContext, predIndex) {
851
+ switch (predIndex) {
852
+ case 29:
853
+ return this.headingAfterBlankLine();
854
+ }
855
+ return true;
856
+ }
857
+ B_DIRECT_END_sempred(localContext, predIndex) {
858
+ switch (predIndex) {
859
+ case 30:
860
+ return this.headingAfterDirectEol();
861
+ }
862
+ return true;
863
+ }
864
+ B_EMPTY_SPACED_END_sempred(localContext, predIndex) {
865
+ switch (predIndex) {
866
+ case 31:
867
+ return this.headingAfterEmptySpacedLine();
546
868
  }
547
869
  return true;
548
870
  }
549
871
  static _serializedATN = [
550
- 4, 0, 40, 659, 6, -1, 6, -1, 6, -1, 6, -1, 6, -1, 6, -1, 6, -1, 2, 0, 7, 0, 2, 1, 7, 1, 2,
872
+ 4, 0, 42, 849, 6, -1, 6, -1, 6, -1, 6, -1, 6, -1, 6, -1, 6, -1, 2, 0, 7, 0, 2, 1, 7, 1, 2,
551
873
  2, 7, 2, 2, 3, 7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2,
552
874
  10, 7, 10, 2, 11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7,
553
875
  16, 2, 17, 7, 17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7, 20, 2, 21, 7, 21, 2, 22, 7, 22, 2,
@@ -555,242 +877,311 @@ export class plurnkLexer extends antlr.Lexer {
555
877
  29, 2, 30, 7, 30, 2, 31, 7, 31, 2, 32, 7, 32, 2, 33, 7, 33, 2, 34, 7, 34, 2, 35, 7, 35, 2,
556
878
  36, 7, 36, 2, 37, 7, 37, 2, 38, 7, 38, 2, 39, 7, 39, 2, 40, 7, 40, 2, 41, 7, 41, 2, 42, 7,
557
879
  42, 2, 43, 7, 43, 2, 44, 7, 44, 2, 45, 7, 45, 2, 46, 7, 46, 2, 47, 7, 47, 2, 48, 7, 48, 2,
558
- 49, 7, 49, 2, 50, 7, 50, 2, 51, 7, 51, 2, 52, 7, 52, 1, 0, 4, 0, 115, 8, 0, 11, 0, 12, 0,
559
- 116, 1, 1, 3, 1, 120, 8, 1, 1, 1, 4, 1, 123, 8, 1, 11, 1, 12, 1, 124, 1, 1, 1, 1, 4, 1, 129,
560
- 8, 1, 11, 1, 12, 1, 130, 3, 1, 133, 8, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 3, 2, 140, 8, 2, 3,
561
- 2, 142, 8, 2, 1, 2, 5, 2, 145, 8, 2, 10, 2, 12, 2, 148, 9, 2, 1, 2, 1, 2, 1, 3, 1, 3, 1, 3,
562
- 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 3, 3, 160, 8, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 4, 1, 4, 1, 4, 1, 4,
563
- 1, 4, 1, 4, 1, 4, 1, 4, 3, 4, 174, 8, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 5, 1, 5, 1, 5, 1, 5, 1, 5,
564
- 1, 5, 1, 5, 1, 5, 3, 5, 188, 8, 5, 1, 5, 1, 5, 1, 5, 1, 5, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 6,
565
- 1, 6, 1, 6, 3, 6, 202, 8, 6, 1, 6, 1, 6, 1, 6, 1, 6, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 7,
566
- 1, 7, 3, 7, 216, 8, 7, 1, 7, 1, 7, 1, 7, 1, 7, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8,
567
- 3, 8, 230, 8, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 9, 3, 9,
568
- 244, 8, 9, 1, 9, 1, 9, 1, 9, 1, 9, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10,
569
- 3, 10, 258, 8, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11,
570
- 1, 11, 1, 11, 3, 11, 272, 8, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 12, 1, 12, 1, 12, 1, 12,
571
- 1, 12, 1, 12, 1, 12, 1, 12, 3, 12, 286, 8, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 13, 1, 13,
572
- 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 3, 13, 300, 8, 13, 1, 13, 1, 13, 1, 13, 1, 13,
573
- 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 3, 14, 314, 8, 14, 1, 14, 1, 14,
574
- 1, 14, 1, 14, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 3, 15, 328, 8, 15,
575
- 1, 15, 1, 15, 1, 15, 1, 15, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 3, 16,
576
- 342, 8, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17,
577
- 1, 17, 1, 17, 3, 17, 357, 8, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 18, 1, 18, 1, 18, 1, 18,
578
- 1, 18, 1, 18, 1, 18, 1, 18, 3, 18, 371, 8, 18, 1, 18, 1, 18, 1, 18, 1, 18, 1, 19, 4, 19,
579
- 378, 8, 19, 11, 19, 12, 19, 379, 1, 19, 1, 19, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20,
580
- 1, 20, 1, 20, 1, 20, 5, 20, 393, 8, 20, 10, 20, 12, 20, 396, 9, 20, 1, 20, 1, 20, 1, 20,
581
- 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21,
582
- 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 5, 21, 421, 8, 21, 10, 21, 12, 21, 424,
583
- 9, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21,
584
- 1, 21, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 3, 22, 447, 8, 22, 1, 22,
585
- 1, 22, 1, 22, 1, 22, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 4, 23, 460, 8, 23,
586
- 11, 23, 12, 23, 461, 1, 24, 4, 24, 465, 8, 24, 11, 24, 12, 24, 466, 1, 24, 1, 24, 1, 25,
587
- 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 27, 1, 27,
588
- 1, 27, 1, 27, 1, 27, 1, 27, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 28, 1, 29, 1, 29, 1, 29,
589
- 1, 29, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 31, 1, 31, 1, 31, 1, 31,
590
- 1, 31, 1, 31, 1, 31, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 33, 4, 33, 521, 8, 33,
591
- 11, 33, 12, 33, 522, 1, 33, 1, 33, 1, 34, 1, 34, 1, 34, 1, 34, 1, 35, 1, 35, 1, 35, 4, 35,
592
- 534, 8, 35, 11, 35, 12, 35, 535, 1, 35, 1, 35, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 37,
593
- 4, 37, 546, 8, 37, 11, 37, 12, 37, 547, 1, 37, 1, 37, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38,
594
- 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 3, 38, 567, 8, 38,
595
- 1, 38, 1, 38, 1, 39, 3, 39, 572, 8, 39, 1, 39, 4, 39, 575, 8, 39, 11, 39, 12, 39, 576,
596
- 1, 39, 1, 39, 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 41, 4, 41, 587, 8, 41, 11, 41, 12, 41,
597
- 588, 1, 41, 1, 41, 1, 42, 1, 42, 5, 42, 595, 8, 42, 10, 42, 12, 42, 598, 9, 42, 1, 42,
598
- 1, 42, 1, 43, 1, 43, 1, 43, 1, 43, 1, 43, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 45, 1, 45,
599
- 1, 45, 4, 45, 615, 8, 45, 11, 45, 12, 45, 616, 1, 45, 1, 45, 1, 46, 1, 46, 1, 46, 1, 46,
600
- 1, 47, 1, 47, 1, 47, 1, 47, 1, 47, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 49, 1, 49,
601
- 1, 49, 1, 49, 1, 49, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 51, 4, 51,
602
- 650, 8, 51, 11, 51, 12, 51, 651, 1, 51, 1, 51, 1, 52, 1, 52, 1, 52, 1, 52, 2, 394, 422,
603
- 0, 53, 7, 0, 9, 0, 11, 0, 13, 18, 15, 19, 17, 20, 19, 21, 21, 22, 23, 23, 25, 24, 27, 25,
604
- 29, 26, 31, 27, 33, 28, 35, 29, 37, 30, 39, 16, 41, 31, 43, 32, 45, 33, 47, 0, 49, 0,
605
- 51, 17, 53, 15, 55, 34, 57, 0, 59, 0, 61, 0, 63, 0, 65, 0, 67, 0, 69, 0, 71, 0, 73, 35,
606
- 75, 38, 77, 0, 79, 0, 81, 36, 83, 0, 85, 0, 87, 0, 89, 37, 91, 0, 93, 0, 95, 0, 97, 0, 99,
607
- 39, 101, 0, 103, 0, 105, 0, 107, 0, 109, 0, 111, 40, 7, 0, 1, 2, 3, 4, 5, 6, 12, 4, 0, 48,
608
- 57, 65, 90, 95, 95, 97, 122, 1, 0, 48, 57, 3, 0, 9, 10, 13, 13, 32, 32, 1, 0, 60, 60, 4,
609
- 0, 9, 10, 13, 13, 32, 32, 60, 60, 2, 0, 9, 9, 32, 32, 6, 0, 9, 10, 13, 13, 32, 32, 44, 44,
610
- 60, 60, 93, 93, 3, 0, 65, 90, 95, 95, 97, 122, 6, 0, 43, 43, 45, 46, 48, 57, 65, 90, 95,
611
- 95, 97, 122, 2, 0, 40, 41, 92, 92, 5, 0, 10, 10, 13, 13, 40, 41, 60, 60, 92, 92, 1, 0,
612
- 58, 58, 696, 0, 13, 1, 0, 0, 0, 0, 15, 1, 0, 0, 0, 0, 17, 1, 0, 0, 0, 0, 19, 1, 0, 0, 0, 0,
613
- 21, 1, 0, 0, 0, 0, 23, 1, 0, 0, 0, 0, 25, 1, 0, 0, 0, 0, 27, 1, 0, 0, 0, 0, 29, 1, 0, 0, 0, 0,
614
- 31, 1, 0, 0, 0, 0, 33, 1, 0, 0, 0, 0, 35, 1, 0, 0, 0, 0, 37, 1, 0, 0, 0, 0, 39, 1, 0, 0, 0, 0,
615
- 41, 1, 0, 0, 0, 0, 43, 1, 0, 0, 0, 0, 45, 1, 0, 0, 0, 0, 47, 1, 0, 0, 0, 0, 49, 1, 0, 0, 0, 0,
616
- 51, 1, 0, 0, 0, 0, 53, 1, 0, 0, 0, 1, 55, 1, 0, 0, 0, 1, 57, 1, 0, 0, 0, 1, 59, 1, 0, 0, 0, 1,
617
- 61, 1, 0, 0, 0, 1, 63, 1, 0, 0, 0, 1, 65, 1, 0, 0, 0, 1, 67, 1, 0, 0, 0, 1, 69, 1, 0, 0, 0, 1,
618
- 71, 1, 0, 0, 0, 2, 73, 1, 0, 0, 0, 2, 75, 1, 0, 0, 0, 2, 77, 1, 0, 0, 0, 2, 79, 1, 0, 0, 0, 3,
619
- 81, 1, 0, 0, 0, 3, 83, 1, 0, 0, 0, 3, 85, 1, 0, 0, 0, 3, 87, 1, 0, 0, 0, 4, 89, 1, 0, 0, 0, 4,
620
- 91, 1, 0, 0, 0, 4, 93, 1, 0, 0, 0, 5, 95, 1, 0, 0, 0, 5, 97, 1, 0, 0, 0, 5, 99, 1, 0, 0, 0, 5,
621
- 101, 1, 0, 0, 0, 5, 103, 1, 0, 0, 0, 5, 105, 1, 0, 0, 0, 6, 107, 1, 0, 0, 0, 6, 109, 1, 0,
622
- 0, 0, 6, 111, 1, 0, 0, 0, 7, 114, 1, 0, 0, 0, 9, 119, 1, 0, 0, 0, 11, 134, 1, 0, 0, 0, 13,
623
- 151, 1, 0, 0, 0, 15, 165, 1, 0, 0, 0, 17, 179, 1, 0, 0, 0, 19, 193, 1, 0, 0, 0, 21, 207,
624
- 1, 0, 0, 0, 23, 221, 1, 0, 0, 0, 25, 235, 1, 0, 0, 0, 27, 249, 1, 0, 0, 0, 29, 263, 1, 0,
625
- 0, 0, 31, 277, 1, 0, 0, 0, 33, 291, 1, 0, 0, 0, 35, 305, 1, 0, 0, 0, 37, 319, 1, 0, 0, 0,
626
- 39, 333, 1, 0, 0, 0, 41, 348, 1, 0, 0, 0, 43, 362, 1, 0, 0, 0, 45, 377, 1, 0, 0, 0, 47, 383,
627
- 1, 0, 0, 0, 49, 408, 1, 0, 0, 0, 51, 438, 1, 0, 0, 0, 53, 459, 1, 0, 0, 0, 55, 464, 1, 0,
628
- 0, 0, 57, 470, 1, 0, 0, 0, 59, 476, 1, 0, 0, 0, 61, 482, 1, 0, 0, 0, 63, 488, 1, 0, 0, 0,
629
- 65, 494, 1, 0, 0, 0, 67, 498, 1, 0, 0, 0, 69, 506, 1, 0, 0, 0, 71, 513, 1, 0, 0, 0, 73, 520,
630
- 1, 0, 0, 0, 75, 526, 1, 0, 0, 0, 77, 533, 1, 0, 0, 0, 79, 539, 1, 0, 0, 0, 81, 545, 1, 0,
631
- 0, 0, 83, 566, 1, 0, 0, 0, 85, 571, 1, 0, 0, 0, 87, 580, 1, 0, 0, 0, 89, 586, 1, 0, 0, 0,
632
- 91, 592, 1, 0, 0, 0, 93, 601, 1, 0, 0, 0, 95, 606, 1, 0, 0, 0, 97, 614, 1, 0, 0, 0, 99, 620,
633
- 1, 0, 0, 0, 101, 624, 1, 0, 0, 0, 103, 629, 1, 0, 0, 0, 105, 635, 1, 0, 0, 0, 107, 640,
634
- 1, 0, 0, 0, 109, 649, 1, 0, 0, 0, 111, 655, 1, 0, 0, 0, 113, 115, 7, 0, 0, 0, 114, 113,
635
- 1, 0, 0, 0, 115, 116, 1, 0, 0, 0, 116, 114, 1, 0, 0, 0, 116, 117, 1, 0, 0, 0, 117, 8, 1,
636
- 0, 0, 0, 118, 120, 5, 45, 0, 0, 119, 118, 1, 0, 0, 0, 119, 120, 1, 0, 0, 0, 120, 122, 1,
637
- 0, 0, 0, 121, 123, 7, 1, 0, 0, 122, 121, 1, 0, 0, 0, 123, 124, 1, 0, 0, 0, 124, 122, 1,
638
- 0, 0, 0, 124, 125, 1, 0, 0, 0, 125, 132, 1, 0, 0, 0, 126, 128, 5, 46, 0, 0, 127, 129, 7,
639
- 1, 0, 0, 128, 127, 1, 0, 0, 0, 129, 130, 1, 0, 0, 0, 130, 128, 1, 0, 0, 0, 130, 131, 1,
640
- 0, 0, 0, 131, 133, 1, 0, 0, 0, 132, 126, 1, 0, 0, 0, 132, 133, 1, 0, 0, 0, 133, 10, 1, 0,
641
- 0, 0, 134, 135, 5, 60, 0, 0, 135, 146, 3, 9, 1, 0, 136, 142, 5, 45, 0, 0, 137, 139, 5,
642
- 44, 0, 0, 138, 140, 5, 32, 0, 0, 139, 138, 1, 0, 0, 0, 139, 140, 1, 0, 0, 0, 140, 142,
643
- 1, 0, 0, 0, 141, 136, 1, 0, 0, 0, 141, 137, 1, 0, 0, 0, 142, 143, 1, 0, 0, 0, 143, 145,
644
- 3, 9, 1, 0, 144, 141, 1, 0, 0, 0, 145, 148, 1, 0, 0, 0, 146, 144, 1, 0, 0, 0, 146, 147,
645
- 1, 0, 0, 0, 147, 149, 1, 0, 0, 0, 148, 146, 1, 0, 0, 0, 149, 150, 5, 62, 0, 0, 150, 12,
646
- 1, 0, 0, 0, 151, 152, 5, 60, 0, 0, 152, 153, 5, 60, 0, 0, 153, 154, 5, 70, 0, 0, 154, 155,
647
- 5, 73, 0, 0, 155, 156, 5, 78, 0, 0, 156, 157, 5, 68, 0, 0, 157, 159, 1, 0, 0, 0, 158, 160,
648
- 3, 7, 0, 0, 159, 158, 1, 0, 0, 0, 159, 160, 1, 0, 0, 0, 160, 161, 1, 0, 0, 0, 161, 162,
649
- 6, 3, 0, 0, 162, 163, 1, 0, 0, 0, 163, 164, 6, 3, 1, 0, 164, 14, 1, 0, 0, 0, 165, 166, 5,
650
- 60, 0, 0, 166, 167, 5, 60, 0, 0, 167, 168, 5, 82, 0, 0, 168, 169, 5, 69, 0, 0, 169, 170,
651
- 5, 65, 0, 0, 170, 171, 5, 68, 0, 0, 171, 173, 1, 0, 0, 0, 172, 174, 3, 7, 0, 0, 173, 172,
652
- 1, 0, 0, 0, 173, 174, 1, 0, 0, 0, 174, 175, 1, 0, 0, 0, 175, 176, 6, 4, 2, 0, 176, 177,
653
- 1, 0, 0, 0, 177, 178, 6, 4, 1, 0, 178, 16, 1, 0, 0, 0, 179, 180, 5, 60, 0, 0, 180, 181,
654
- 5, 60, 0, 0, 181, 182, 5, 69, 0, 0, 182, 183, 5, 68, 0, 0, 183, 184, 5, 73, 0, 0, 184,
655
- 185, 5, 84, 0, 0, 185, 187, 1, 0, 0, 0, 186, 188, 3, 7, 0, 0, 187, 186, 1, 0, 0, 0, 187,
656
- 188, 1, 0, 0, 0, 188, 189, 1, 0, 0, 0, 189, 190, 6, 5, 3, 0, 190, 191, 1, 0, 0, 0, 191,
657
- 192, 6, 5, 1, 0, 192, 18, 1, 0, 0, 0, 193, 194, 5, 60, 0, 0, 194, 195, 5, 60, 0, 0, 195,
658
- 196, 5, 67, 0, 0, 196, 197, 5, 79, 0, 0, 197, 198, 5, 80, 0, 0, 198, 199, 5, 89, 0, 0,
659
- 199, 201, 1, 0, 0, 0, 200, 202, 3, 7, 0, 0, 201, 200, 1, 0, 0, 0, 201, 202, 1, 0, 0, 0,
660
- 202, 203, 1, 0, 0, 0, 203, 204, 6, 6, 4, 0, 204, 205, 1, 0, 0, 0, 205, 206, 6, 6, 1, 0,
661
- 206, 20, 1, 0, 0, 0, 207, 208, 5, 60, 0, 0, 208, 209, 5, 60, 0, 0, 209, 210, 5, 77, 0,
662
- 0, 210, 211, 5, 79, 0, 0, 211, 212, 5, 86, 0, 0, 212, 213, 5, 69, 0, 0, 213, 215, 1, 0,
663
- 0, 0, 214, 216, 3, 7, 0, 0, 215, 214, 1, 0, 0, 0, 215, 216, 1, 0, 0, 0, 216, 217, 1, 0,
664
- 0, 0, 217, 218, 6, 7, 5, 0, 218, 219, 1, 0, 0, 0, 219, 220, 6, 7, 1, 0, 220, 22, 1, 0, 0,
665
- 0, 221, 222, 5, 60, 0, 0, 222, 223, 5, 60, 0, 0, 223, 224, 5, 79, 0, 0, 224, 225, 5, 80,
666
- 0, 0, 225, 226, 5, 69, 0, 0, 226, 227, 5, 78, 0, 0, 227, 229, 1, 0, 0, 0, 228, 230, 3,
667
- 7, 0, 0, 229, 228, 1, 0, 0, 0, 229, 230, 1, 0, 0, 0, 230, 231, 1, 0, 0, 0, 231, 232, 6,
668
- 8, 6, 0, 232, 233, 1, 0, 0, 0, 233, 234, 6, 8, 1, 0, 234, 24, 1, 0, 0, 0, 235, 236, 5, 60,
669
- 0, 0, 236, 237, 5, 60, 0, 0, 237, 238, 5, 70, 0, 0, 238, 239, 5, 79, 0, 0, 239, 240, 5,
670
- 76, 0, 0, 240, 241, 5, 68, 0, 0, 241, 243, 1, 0, 0, 0, 242, 244, 3, 7, 0, 0, 243, 242,
671
- 1, 0, 0, 0, 243, 244, 1, 0, 0, 0, 244, 245, 1, 0, 0, 0, 245, 246, 6, 9, 7, 0, 246, 247,
672
- 1, 0, 0, 0, 247, 248, 6, 9, 1, 0, 248, 26, 1, 0, 0, 0, 249, 250, 5, 60, 0, 0, 250, 251,
673
- 5, 60, 0, 0, 251, 252, 5, 83, 0, 0, 252, 253, 5, 69, 0, 0, 253, 254, 5, 78, 0, 0, 254,
674
- 255, 5, 68, 0, 0, 255, 257, 1, 0, 0, 0, 256, 258, 3, 7, 0, 0, 257, 256, 1, 0, 0, 0, 257,
675
- 258, 1, 0, 0, 0, 258, 259, 1, 0, 0, 0, 259, 260, 6, 10, 8, 0, 260, 261, 1, 0, 0, 0, 261,
676
- 262, 6, 10, 1, 0, 262, 28, 1, 0, 0, 0, 263, 264, 5, 60, 0, 0, 264, 265, 5, 60, 0, 0, 265,
677
- 266, 5, 69, 0, 0, 266, 267, 5, 88, 0, 0, 267, 268, 5, 69, 0, 0, 268, 269, 5, 67, 0, 0,
678
- 269, 271, 1, 0, 0, 0, 270, 272, 3, 7, 0, 0, 271, 270, 1, 0, 0, 0, 271, 272, 1, 0, 0, 0,
679
- 272, 273, 1, 0, 0, 0, 273, 274, 6, 11, 9, 0, 274, 275, 1, 0, 0, 0, 275, 276, 6, 11, 1,
680
- 0, 276, 30, 1, 0, 0, 0, 277, 278, 5, 60, 0, 0, 278, 279, 5, 60, 0, 0, 279, 280, 5, 87,
681
- 0, 0, 280, 281, 5, 79, 0, 0, 281, 282, 5, 82, 0, 0, 282, 283, 5, 75, 0, 0, 283, 285, 1,
682
- 0, 0, 0, 284, 286, 3, 7, 0, 0, 285, 284, 1, 0, 0, 0, 285, 286, 1, 0, 0, 0, 286, 287, 1,
683
- 0, 0, 0, 287, 288, 6, 12, 10, 0, 288, 289, 1, 0, 0, 0, 289, 290, 6, 12, 1, 0, 290, 32,
684
- 1, 0, 0, 0, 291, 292, 5, 60, 0, 0, 292, 293, 5, 60, 0, 0, 293, 294, 5, 70, 0, 0, 294, 295,
685
- 5, 79, 0, 0, 295, 296, 5, 82, 0, 0, 296, 297, 5, 75, 0, 0, 297, 299, 1, 0, 0, 0, 298, 300,
686
- 3, 7, 0, 0, 299, 298, 1, 0, 0, 0, 299, 300, 1, 0, 0, 0, 300, 301, 1, 0, 0, 0, 301, 302,
687
- 6, 13, 11, 0, 302, 303, 1, 0, 0, 0, 303, 304, 6, 13, 1, 0, 304, 34, 1, 0, 0, 0, 305, 306,
688
- 5, 60, 0, 0, 306, 307, 5, 60, 0, 0, 307, 308, 5, 75, 0, 0, 308, 309, 5, 73, 0, 0, 309,
689
- 310, 5, 76, 0, 0, 310, 311, 5, 76, 0, 0, 311, 313, 1, 0, 0, 0, 312, 314, 3, 7, 0, 0, 313,
690
- 312, 1, 0, 0, 0, 313, 314, 1, 0, 0, 0, 314, 315, 1, 0, 0, 0, 315, 316, 6, 14, 12, 0, 316,
691
- 317, 1, 0, 0, 0, 317, 318, 6, 14, 1, 0, 318, 36, 1, 0, 0, 0, 319, 320, 5, 60, 0, 0, 320,
692
- 321, 5, 60, 0, 0, 321, 322, 5, 80, 0, 0, 322, 323, 5, 76, 0, 0, 323, 324, 5, 65, 0, 0,
693
- 324, 325, 5, 78, 0, 0, 325, 327, 1, 0, 0, 0, 326, 328, 3, 7, 0, 0, 327, 326, 1, 0, 0, 0,
694
- 327, 328, 1, 0, 0, 0, 328, 329, 1, 0, 0, 0, 329, 330, 6, 15, 13, 0, 330, 331, 1, 0, 0,
695
- 0, 331, 332, 6, 15, 1, 0, 332, 38, 1, 0, 0, 0, 333, 334, 5, 60, 0, 0, 334, 335, 5, 60,
696
- 0, 0, 335, 336, 5, 84, 0, 0, 336, 337, 5, 85, 0, 0, 337, 338, 5, 82, 0, 0, 338, 339, 5,
697
- 78, 0, 0, 339, 341, 1, 0, 0, 0, 340, 342, 3, 7, 0, 0, 341, 340, 1, 0, 0, 0, 341, 342, 1,
698
- 0, 0, 0, 342, 343, 1, 0, 0, 0, 343, 344, 6, 16, 14, 0, 344, 345, 1, 0, 0, 0, 345, 346,
699
- 6, 16, 15, 0, 346, 347, 6, 16, 1, 0, 347, 40, 1, 0, 0, 0, 348, 349, 5, 60, 0, 0, 349, 350,
700
- 5, 60, 0, 0, 350, 351, 5, 76, 0, 0, 351, 352, 5, 79, 0, 0, 352, 353, 5, 79, 0, 0, 353,
701
- 354, 5, 75, 0, 0, 354, 356, 1, 0, 0, 0, 355, 357, 3, 7, 0, 0, 356, 355, 1, 0, 0, 0, 356,
702
- 357, 1, 0, 0, 0, 357, 358, 1, 0, 0, 0, 358, 359, 6, 17, 16, 0, 359, 360, 1, 0, 0, 0, 360,
703
- 361, 6, 17, 1, 0, 361, 42, 1, 0, 0, 0, 362, 363, 5, 60, 0, 0, 363, 364, 5, 60, 0, 0, 364,
704
- 365, 5, 66, 0, 0, 365, 366, 5, 85, 0, 0, 366, 367, 5, 70, 0, 0, 367, 368, 5, 70, 0, 0,
705
- 368, 370, 1, 0, 0, 0, 369, 371, 3, 7, 0, 0, 370, 369, 1, 0, 0, 0, 370, 371, 1, 0, 0, 0,
706
- 371, 372, 1, 0, 0, 0, 372, 373, 6, 18, 17, 0, 373, 374, 1, 0, 0, 0, 374, 375, 6, 18, 1,
707
- 0, 375, 44, 1, 0, 0, 0, 376, 378, 7, 2, 0, 0, 377, 376, 1, 0, 0, 0, 378, 379, 1, 0, 0, 0,
708
- 379, 377, 1, 0, 0, 0, 379, 380, 1, 0, 0, 0, 380, 381, 1, 0, 0, 0, 381, 382, 6, 19, 18,
709
- 0, 382, 46, 1, 0, 0, 0, 383, 384, 5, 60, 0, 0, 384, 385, 5, 116, 0, 0, 385, 386, 5, 104,
710
- 0, 0, 386, 387, 5, 105, 0, 0, 387, 388, 5, 110, 0, 0, 388, 389, 5, 107, 0, 0, 389, 390,
711
- 5, 62, 0, 0, 390, 394, 1, 0, 0, 0, 391, 393, 9, 0, 0, 0, 392, 391, 1, 0, 0, 0, 393, 396,
712
- 1, 0, 0, 0, 394, 395, 1, 0, 0, 0, 394, 392, 1, 0, 0, 0, 395, 397, 1, 0, 0, 0, 396, 394,
713
- 1, 0, 0, 0, 397, 398, 5, 60, 0, 0, 398, 399, 5, 47, 0, 0, 399, 400, 5, 116, 0, 0, 400,
714
- 401, 5, 104, 0, 0, 401, 402, 5, 105, 0, 0, 402, 403, 5, 110, 0, 0, 403, 404, 5, 107,
715
- 0, 0, 404, 405, 5, 62, 0, 0, 405, 406, 1, 0, 0, 0, 406, 407, 6, 20, 19, 0, 407, 48, 1,
716
- 0, 0, 0, 408, 409, 5, 60, 0, 0, 409, 410, 5, 124, 0, 0, 410, 411, 5, 99, 0, 0, 411, 412,
717
- 5, 104, 0, 0, 412, 413, 5, 97, 0, 0, 413, 414, 5, 110, 0, 0, 414, 415, 5, 110, 0, 0, 415,
718
- 416, 5, 101, 0, 0, 416, 417, 5, 108, 0, 0, 417, 418, 5, 62, 0, 0, 418, 422, 1, 0, 0, 0,
719
- 419, 421, 9, 0, 0, 0, 420, 419, 1, 0, 0, 0, 421, 424, 1, 0, 0, 0, 422, 423, 1, 0, 0, 0,
720
- 422, 420, 1, 0, 0, 0, 423, 425, 1, 0, 0, 0, 424, 422, 1, 0, 0, 0, 425, 426, 5, 60, 0, 0,
721
- 426, 427, 5, 99, 0, 0, 427, 428, 5, 104, 0, 0, 428, 429, 5, 97, 0, 0, 429, 430, 5, 110,
722
- 0, 0, 430, 431, 5, 110, 0, 0, 431, 432, 5, 101, 0, 0, 432, 433, 5, 108, 0, 0, 433, 434,
723
- 5, 124, 0, 0, 434, 435, 5, 62, 0, 0, 435, 436, 1, 0, 0, 0, 436, 437, 6, 21, 19, 0, 437,
724
- 50, 1, 0, 0, 0, 438, 439, 4, 22, 0, 0, 439, 440, 5, 58, 0, 0, 440, 441, 5, 84, 0, 0, 441,
725
- 442, 5, 85, 0, 0, 442, 443, 5, 82, 0, 0, 443, 444, 5, 78, 0, 0, 444, 446, 1, 0, 0, 0, 445,
726
- 447, 3, 7, 0, 0, 446, 445, 1, 0, 0, 0, 446, 447, 1, 0, 0, 0, 447, 448, 1, 0, 0, 0, 448,
727
- 449, 6, 22, 20, 0, 449, 450, 1, 0, 0, 0, 450, 451, 6, 22, 21, 0, 451, 52, 1, 0, 0, 0, 452,
728
- 453, 5, 60, 0, 0, 453, 454, 5, 60, 0, 0, 454, 455, 1, 0, 0, 0, 455, 460, 4, 23, 1, 0, 456,
729
- 457, 5, 60, 0, 0, 457, 460, 8, 3, 0, 0, 458, 460, 8, 4, 0, 0, 459, 452, 1, 0, 0, 0, 459,
730
- 456, 1, 0, 0, 0, 459, 458, 1, 0, 0, 0, 460, 461, 1, 0, 0, 0, 461, 459, 1, 0, 0, 0, 461,
731
- 462, 1, 0, 0, 0, 462, 54, 1, 0, 0, 0, 463, 465, 7, 2, 0, 0, 464, 463, 1, 0, 0, 0, 465, 466,
732
- 1, 0, 0, 0, 466, 464, 1, 0, 0, 0, 466, 467, 1, 0, 0, 0, 467, 468, 1, 0, 0, 0, 468, 469,
733
- 6, 24, 22, 0, 469, 56, 1, 0, 0, 0, 470, 471, 5, 91, 0, 0, 471, 472, 4, 25, 2, 0, 472, 473,
734
- 1, 0, 0, 0, 473, 474, 6, 25, 23, 0, 474, 475, 6, 25, 24, 0, 475, 58, 1, 0, 0, 0, 476, 477,
735
- 5, 91, 0, 0, 477, 478, 4, 26, 3, 0, 478, 479, 1, 0, 0, 0, 479, 480, 6, 26, 23, 0, 480,
736
- 481, 6, 26, 25, 0, 481, 60, 1, 0, 0, 0, 482, 483, 5, 91, 0, 0, 483, 484, 4, 27, 4, 0, 484,
737
- 485, 1, 0, 0, 0, 485, 486, 6, 27, 23, 0, 486, 487, 6, 27, 26, 0, 487, 62, 1, 0, 0, 0, 488,
738
- 489, 5, 40, 0, 0, 489, 490, 6, 28, 27, 0, 490, 491, 1, 0, 0, 0, 491, 492, 6, 28, 28, 0,
739
- 492, 493, 6, 28, 29, 0, 493, 64, 1, 0, 0, 0, 494, 495, 3, 11, 2, 0, 495, 496, 1, 0, 0,
740
- 0, 496, 497, 6, 29, 30, 0, 497, 66, 1, 0, 0, 0, 498, 499, 4, 30, 5, 0, 499, 500, 5, 58,
741
- 0, 0, 500, 501, 9, 0, 0, 0, 501, 502, 6, 30, 31, 0, 502, 503, 1, 0, 0, 0, 503, 504, 6,
742
- 30, 32, 0, 504, 505, 6, 30, 33, 0, 505, 68, 1, 0, 0, 0, 506, 507, 4, 31, 6, 0, 507, 508,
743
- 5, 58, 0, 0, 508, 509, 6, 31, 34, 0, 509, 510, 1, 0, 0, 0, 510, 511, 6, 31, 35, 0, 511,
744
- 512, 6, 31, 33, 0, 512, 70, 1, 0, 0, 0, 513, 514, 5, 58, 0, 0, 514, 515, 6, 32, 36, 0,
745
- 515, 516, 1, 0, 0, 0, 516, 517, 6, 32, 35, 0, 517, 518, 6, 32, 37, 0, 518, 72, 1, 0, 0,
746
- 0, 519, 521, 7, 5, 0, 0, 520, 519, 1, 0, 0, 0, 521, 522, 1, 0, 0, 0, 522, 520, 1, 0, 0,
747
- 0, 522, 523, 1, 0, 0, 0, 523, 524, 1, 0, 0, 0, 524, 525, 6, 33, 22, 0, 525, 74, 1, 0, 0,
748
- 0, 526, 527, 5, 44, 0, 0, 527, 528, 1, 0, 0, 0, 528, 529, 6, 34, 38, 0, 529, 76, 1, 0,
749
- 0, 0, 530, 534, 8, 6, 0, 0, 531, 532, 5, 60, 0, 0, 532, 534, 8, 6, 0, 0, 533, 530, 1, 0,
750
- 0, 0, 533, 531, 1, 0, 0, 0, 534, 535, 1, 0, 0, 0, 535, 533, 1, 0, 0, 0, 535, 536, 1, 0,
751
- 0, 0, 536, 537, 1, 0, 0, 0, 537, 538, 6, 35, 39, 0, 538, 78, 1, 0, 0, 0, 539, 540, 5, 93,
752
- 0, 0, 540, 541, 1, 0, 0, 0, 541, 542, 6, 36, 40, 0, 542, 543, 6, 36, 1, 0, 543, 80, 1,
753
- 0, 0, 0, 544, 546, 7, 5, 0, 0, 545, 544, 1, 0, 0, 0, 546, 547, 1, 0, 0, 0, 547, 545, 1,
754
- 0, 0, 0, 547, 548, 1, 0, 0, 0, 548, 549, 1, 0, 0, 0, 549, 550, 6, 37, 22, 0, 550, 82, 1,
755
- 0, 0, 0, 551, 552, 5, 49, 0, 0, 552, 553, 5, 48, 0, 0, 553, 567, 5, 50, 0, 0, 554, 555,
756
- 5, 50, 0, 0, 555, 556, 5, 48, 0, 0, 556, 567, 5, 48, 0, 0, 557, 558, 5, 50, 0, 0, 558,
757
- 559, 5, 48, 0, 0, 559, 567, 5, 50, 0, 0, 560, 561, 5, 51, 0, 0, 561, 562, 5, 48, 0, 0,
758
- 562, 567, 5, 48, 0, 0, 563, 564, 5, 52, 0, 0, 564, 565, 5, 57, 0, 0, 565, 567, 5, 57,
759
- 0, 0, 566, 551, 1, 0, 0, 0, 566, 554, 1, 0, 0, 0, 566, 557, 1, 0, 0, 0, 566, 560, 1, 0,
760
- 0, 0, 566, 563, 1, 0, 0, 0, 567, 568, 1, 0, 0, 0, 568, 569, 6, 38, 41, 0, 569, 84, 1, 0,
761
- 0, 0, 570, 572, 5, 45, 0, 0, 571, 570, 1, 0, 0, 0, 571, 572, 1, 0, 0, 0, 572, 574, 1, 0,
762
- 0, 0, 573, 575, 7, 1, 0, 0, 574, 573, 1, 0, 0, 0, 575, 576, 1, 0, 0, 0, 576, 574, 1, 0,
763
- 0, 0, 576, 577, 1, 0, 0, 0, 577, 578, 1, 0, 0, 0, 578, 579, 6, 39, 42, 0, 579, 86, 1, 0,
764
- 0, 0, 580, 581, 5, 93, 0, 0, 581, 582, 1, 0, 0, 0, 582, 583, 6, 40, 40, 0, 583, 584, 6,
765
- 40, 1, 0, 584, 88, 1, 0, 0, 0, 585, 587, 7, 5, 0, 0, 586, 585, 1, 0, 0, 0, 587, 588, 1,
766
- 0, 0, 0, 588, 586, 1, 0, 0, 0, 588, 589, 1, 0, 0, 0, 589, 590, 1, 0, 0, 0, 590, 591, 6,
767
- 41, 22, 0, 591, 90, 1, 0, 0, 0, 592, 596, 7, 7, 0, 0, 593, 595, 7, 8, 0, 0, 594, 593, 1,
768
- 0, 0, 0, 595, 598, 1, 0, 0, 0, 596, 594, 1, 0, 0, 0, 596, 597, 1, 0, 0, 0, 597, 599, 1,
769
- 0, 0, 0, 598, 596, 1, 0, 0, 0, 599, 600, 6, 42, 43, 0, 600, 92, 1, 0, 0, 0, 601, 602, 5,
770
- 93, 0, 0, 602, 603, 1, 0, 0, 0, 603, 604, 6, 43, 40, 0, 604, 605, 6, 43, 1, 0, 605, 94,
771
- 1, 0, 0, 0, 606, 607, 5, 92, 0, 0, 607, 608, 7, 9, 0, 0, 608, 609, 1, 0, 0, 0, 609, 610,
772
- 6, 44, 44, 0, 610, 96, 1, 0, 0, 0, 611, 615, 8, 10, 0, 0, 612, 613, 5, 60, 0, 0, 613, 615,
773
- 8, 10, 0, 0, 614, 611, 1, 0, 0, 0, 614, 612, 1, 0, 0, 0, 615, 616, 1, 0, 0, 0, 616, 614,
774
- 1, 0, 0, 0, 616, 617, 1, 0, 0, 0, 617, 618, 1, 0, 0, 0, 618, 619, 6, 45, 44, 0, 619, 98,
775
- 1, 0, 0, 0, 620, 621, 5, 92, 0, 0, 621, 622, 1, 0, 0, 0, 622, 623, 6, 46, 44, 0, 623, 100,
776
- 1, 0, 0, 0, 624, 625, 5, 40, 0, 0, 625, 626, 6, 47, 45, 0, 626, 627, 1, 0, 0, 0, 627, 628,
777
- 6, 47, 44, 0, 628, 102, 1, 0, 0, 0, 629, 630, 4, 48, 7, 0, 630, 631, 5, 41, 0, 0, 631,
778
- 632, 6, 48, 46, 0, 632, 633, 1, 0, 0, 0, 633, 634, 6, 48, 44, 0, 634, 104, 1, 0, 0, 0,
779
- 635, 636, 5, 41, 0, 0, 636, 637, 1, 0, 0, 0, 637, 638, 6, 49, 47, 0, 638, 639, 6, 49,
780
- 1, 0, 639, 106, 1, 0, 0, 0, 640, 641, 4, 50, 8, 0, 641, 642, 5, 58, 0, 0, 642, 643, 9,
781
- 0, 0, 0, 643, 644, 6, 50, 48, 0, 644, 645, 1, 0, 0, 0, 645, 646, 6, 50, 32, 0, 646, 647,
782
- 6, 50, 33, 0, 647, 108, 1, 0, 0, 0, 648, 650, 8, 11, 0, 0, 649, 648, 1, 0, 0, 0, 650, 651,
783
- 1, 0, 0, 0, 651, 649, 1, 0, 0, 0, 651, 652, 1, 0, 0, 0, 652, 653, 1, 0, 0, 0, 653, 654,
784
- 6, 51, 49, 0, 654, 110, 1, 0, 0, 0, 655, 656, 5, 58, 0, 0, 656, 657, 1, 0, 0, 0, 657, 658,
785
- 6, 52, 49, 0, 658, 112, 1, 0, 0, 0, 50, 0, 1, 2, 3, 4, 5, 6, 116, 119, 124, 130, 132, 139,
786
- 141, 146, 159, 173, 187, 201, 215, 229, 243, 257, 271, 285, 299, 313, 327, 341,
787
- 356, 370, 379, 394, 422, 446, 459, 461, 466, 522, 533, 535, 547, 566, 571, 576,
788
- 588, 596, 614, 616, 651, 50, 1, 3, 0, 2, 1, 0, 1, 4, 1, 1, 5, 2, 1, 6, 3, 1, 7, 4, 1, 8, 5,
789
- 1, 9, 6, 1, 10, 7, 1, 11, 8, 1, 12, 9, 1, 13, 10, 1, 14, 11, 1, 15, 12, 1, 16, 13, 7, 16,
790
- 0, 1, 17, 14, 1, 18, 15, 0, 1, 0, 7, 15, 0, 1, 22, 16, 7, 17, 0, 6, 0, 0, 7, 1, 0, 2, 2, 0,
791
- 2, 3, 0, 2, 4, 0, 1, 28, 17, 7, 3, 0, 2, 5, 0, 7, 5, 0, 1, 30, 18, 7, 14, 0, 2, 0, 0, 1, 31,
792
- 19, 7, 6, 0, 1, 32, 20, 2, 6, 0, 7, 7, 0, 7, 11, 0, 7, 2, 0, 7, 9, 0, 7, 8, 0, 7, 10, 0, 7, 12,
793
- 0, 1, 47, 21, 1, 48, 22, 7, 4, 0, 1, 50, 23, 7, 13, 0
880
+ 49, 7, 49, 2, 50, 7, 50, 2, 51, 7, 51, 2, 52, 7, 52, 2, 53, 7, 53, 2, 54, 7, 54, 2, 55, 7,
881
+ 55, 2, 56, 7, 56, 2, 57, 7, 57, 2, 58, 7, 58, 2, 59, 7, 59, 2, 60, 7, 60, 2, 61, 7, 61, 2,
882
+ 62, 7, 62, 2, 63, 7, 63, 2, 64, 7, 64, 2, 65, 7, 65, 2, 66, 7, 66, 2, 67, 7, 67, 2, 68, 7,
883
+ 68, 1, 0, 4, 0, 147, 8, 0, 11, 0, 12, 0, 148, 1, 1, 3, 1, 152, 8, 1, 1, 1, 4, 1, 155, 8, 1,
884
+ 11, 1, 12, 1, 156, 1, 1, 1, 1, 4, 1, 161, 8, 1, 11, 1, 12, 1, 162, 3, 1, 165, 8, 1, 1, 2,
885
+ 1, 2, 1, 2, 1, 2, 1, 2, 3, 2, 172, 8, 2, 3, 2, 174, 8, 2, 1, 2, 5, 2, 177, 8, 2, 10, 2, 12,
886
+ 2, 180, 9, 2, 1, 2, 1, 2, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, 4, 1, 4, 3, 4, 193, 8,
887
+ 4, 1, 5, 1, 5, 1, 5, 1, 5, 3, 5, 199, 8, 5, 1, 5, 5, 5, 202, 8, 5, 10, 5, 12, 5, 205, 9, 5,
888
+ 1, 5, 1, 5, 1, 6, 1, 6, 1, 6, 1, 6, 5, 6, 213, 8, 6, 10, 6, 12, 6, 216, 9, 6, 1, 7, 1, 7, 3,
889
+ 7, 220, 8, 7, 1, 8, 1, 8, 1, 8, 1, 8, 3, 8, 226, 8, 8, 1, 8, 5, 8, 229, 8, 8, 10, 8, 12, 8,
890
+ 232, 9, 8, 1, 8, 1, 8, 1, 9, 3, 9, 237, 8, 9, 1, 9, 1, 9, 1, 10, 1, 10, 1, 10, 1, 10, 1, 10,
891
+ 1, 10, 1, 10, 1, 10, 1, 10, 3, 10, 250, 8, 10, 1, 10, 1, 10, 1, 10, 1, 10, 1, 11, 1, 11,
892
+ 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 1, 11, 3, 11, 266, 8, 11, 1, 11, 1, 11,
893
+ 1, 11, 1, 11, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 12, 3, 12,
894
+ 282, 8, 12, 1, 12, 1, 12, 1, 12, 1, 12, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13,
895
+ 1, 13, 1, 13, 1, 13, 3, 13, 298, 8, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 14, 1, 14, 1, 14,
896
+ 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 1, 14, 3, 14, 314, 8, 14, 1, 14, 1, 14, 1, 14,
897
+ 1, 14, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 3, 15, 330,
898
+ 8, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16,
899
+ 1, 16, 1, 16, 3, 16, 346, 8, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 17, 1, 17, 1, 17, 1, 17,
900
+ 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 3, 17, 362, 8, 17, 1, 17, 1, 17, 1, 17, 1, 17,
901
+ 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 1, 18, 3, 18, 378, 8, 18,
902
+ 1, 18, 1, 18, 1, 18, 1, 18, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 19,
903
+ 1, 19, 3, 19, 394, 8, 19, 1, 19, 1, 19, 1, 19, 1, 19, 1, 20, 1, 20, 1, 20, 1, 20, 1, 20,
904
+ 1, 20, 1, 20, 1, 20, 1, 20, 1, 20, 3, 20, 410, 8, 20, 1, 20, 1, 20, 1, 20, 1, 20, 1, 21,
905
+ 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 3, 21, 426, 8, 21, 1, 21,
906
+ 1, 21, 1, 21, 1, 21, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 22,
907
+ 3, 22, 442, 8, 22, 1, 22, 1, 22, 1, 22, 1, 22, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23,
908
+ 1, 23, 1, 23, 1, 23, 1, 23, 3, 23, 458, 8, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 24, 1, 24,
909
+ 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24, 3, 24, 474, 8, 24, 1, 24, 1, 24,
910
+ 1, 24, 1, 24, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 3, 25,
911
+ 490, 8, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26,
912
+ 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27,
913
+ 3, 27, 516, 8, 27, 1, 27, 1, 27, 1, 28, 4, 28, 521, 8, 28, 11, 28, 12, 28, 522, 1, 28,
914
+ 1, 28, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 5, 29, 536, 8, 29,
915
+ 10, 29, 12, 29, 539, 9, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29,
916
+ 1, 29, 1, 29, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30,
917
+ 1, 30, 5, 30, 564, 8, 30, 10, 30, 12, 30, 567, 9, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30,
918
+ 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30, 1, 31, 4, 31, 583, 8, 31, 11, 31,
919
+ 12, 31, 584, 1, 32, 1, 32, 1, 32, 1, 32, 1, 33, 4, 33, 592, 8, 33, 11, 33, 12, 33, 593,
920
+ 1, 33, 1, 33, 1, 33, 1, 33, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 35, 1, 35, 1, 35,
921
+ 1, 35, 1, 35, 1, 35, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 36, 1, 37, 1, 37, 1, 37, 1, 37,
922
+ 1, 37, 1, 37, 1, 37, 1, 38, 1, 38, 1, 38, 1, 38, 1, 38, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39,
923
+ 1, 40, 1, 40, 1, 40, 1, 40, 1, 40, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 41, 1, 42, 1, 42,
924
+ 1, 42, 1, 42, 1, 42, 1, 42, 1, 43, 4, 43, 653, 8, 43, 11, 43, 12, 43, 654, 1, 43, 1, 43,
925
+ 1, 44, 1, 44, 1, 44, 1, 44, 1, 45, 4, 45, 664, 8, 45, 11, 45, 12, 45, 665, 1, 45, 1, 45,
926
+ 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 46, 1, 47, 4, 47, 677, 8, 47, 11, 47, 12, 47, 678,
927
+ 1, 47, 1, 47, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 48,
928
+ 1, 48, 1, 48, 1, 48, 1, 48, 3, 48, 698, 8, 48, 1, 48, 1, 48, 1, 48, 1, 48, 1, 49, 3, 49,
929
+ 705, 8, 49, 1, 49, 4, 49, 708, 8, 49, 11, 49, 12, 49, 709, 1, 49, 1, 49, 1, 50, 1, 50,
930
+ 1, 50, 1, 50, 1, 50, 1, 50, 1, 51, 4, 51, 721, 8, 51, 11, 51, 12, 51, 722, 1, 51, 1, 51,
931
+ 1, 52, 1, 52, 5, 52, 729, 8, 52, 10, 52, 12, 52, 732, 9, 52, 1, 52, 1, 52, 1, 53, 1, 53,
932
+ 1, 53, 1, 53, 1, 53, 1, 53, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 55, 4, 55, 748, 8, 55,
933
+ 11, 55, 12, 55, 749, 1, 55, 1, 55, 1, 56, 1, 56, 1, 56, 1, 56, 1, 57, 1, 57, 1, 57, 1, 57,
934
+ 1, 57, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59, 1, 59,
935
+ 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 1, 60, 3, 60, 781, 8, 60, 1, 60, 1, 60, 1, 60, 1, 60,
936
+ 1, 60, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 61, 1, 62, 1, 62, 1, 62, 5, 62, 797, 8, 62,
937
+ 10, 62, 12, 62, 800, 9, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 62, 1, 63, 1, 63, 1, 63, 1, 63,
938
+ 1, 63, 1, 63, 1, 64, 1, 64, 4, 64, 815, 8, 64, 11, 64, 12, 64, 816, 1, 64, 1, 64, 1, 64,
939
+ 1, 64, 1, 64, 1, 65, 4, 65, 825, 8, 65, 11, 65, 12, 65, 826, 1, 65, 1, 65, 1, 65, 1, 65,
940
+ 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 66, 1, 67, 1, 67, 1, 67, 1, 67, 1, 67, 1, 68,
941
+ 1, 68, 1, 68, 1, 68, 1, 68, 2, 537, 565, 0, 69, 7, 0, 9, 0, 11, 0, 13, 0, 15, 0, 17, 0, 19,
942
+ 0, 21, 0, 23, 0, 25, 0, 27, 17, 29, 18, 31, 19, 33, 20, 35, 21, 37, 22, 39, 23, 41, 24,
943
+ 43, 25, 45, 26, 47, 27, 49, 28, 51, 29, 53, 30, 55, 31, 57, 32, 59, 33, 61, 34, 63, 35,
944
+ 65, 0, 67, 0, 69, 16, 71, 40, 73, 36, 75, 0, 77, 0, 79, 0, 81, 0, 83, 0, 85, 0, 87, 0, 89,
945
+ 0, 91, 0, 93, 37, 95, 41, 97, 0, 99, 0, 101, 38, 103, 0, 105, 0, 107, 0, 109, 39, 111,
946
+ 0, 113, 0, 115, 0, 117, 0, 119, 42, 121, 0, 123, 0, 125, 0, 127, 0, 129, 0, 131, 0, 133,
947
+ 0, 135, 0, 137, 0, 139, 0, 141, 0, 143, 0, 7, 0, 1, 2, 3, 4, 5, 6, 14, 4, 0, 48, 57, 65,
948
+ 90, 95, 95, 97, 122, 1, 0, 48, 57, 3, 0, 48, 57, 65, 90, 97, 122, 2, 0, 32, 32, 58, 58,
949
+ 1, 0, 49, 57, 3, 0, 9, 10, 13, 13, 32, 32, 4, 0, 9, 10, 13, 13, 32, 32, 35, 35, 2, 0, 9,
950
+ 9, 32, 32, 5, 0, 9, 10, 13, 13, 32, 32, 44, 44, 93, 93, 3, 0, 65, 90, 95, 95, 97, 122,
951
+ 6, 0, 43, 43, 45, 46, 48, 57, 65, 90, 95, 95, 97, 122, 2, 0, 40, 41, 92, 92, 5, 0, 10,
952
+ 10, 13, 13, 40, 41, 60, 60, 92, 92, 2, 0, 10, 10, 13, 13, 886, 0, 27, 1, 0, 0, 0, 0, 29,
953
+ 1, 0, 0, 0, 0, 31, 1, 0, 0, 0, 0, 33, 1, 0, 0, 0, 0, 35, 1, 0, 0, 0, 0, 37, 1, 0, 0, 0, 0, 39,
954
+ 1, 0, 0, 0, 0, 41, 1, 0, 0, 0, 0, 43, 1, 0, 0, 0, 0, 45, 1, 0, 0, 0, 0, 47, 1, 0, 0, 0, 0, 49,
955
+ 1, 0, 0, 0, 0, 51, 1, 0, 0, 0, 0, 53, 1, 0, 0, 0, 0, 55, 1, 0, 0, 0, 0, 57, 1, 0, 0, 0, 0, 59,
956
+ 1, 0, 0, 0, 0, 61, 1, 0, 0, 0, 0, 63, 1, 0, 0, 0, 0, 65, 1, 0, 0, 0, 0, 67, 1, 0, 0, 0, 0, 69,
957
+ 1, 0, 0, 0, 0, 71, 1, 0, 0, 0, 1, 73, 1, 0, 0, 0, 1, 75, 1, 0, 0, 0, 1, 77, 1, 0, 0, 0, 1, 79,
958
+ 1, 0, 0, 0, 1, 81, 1, 0, 0, 0, 1, 83, 1, 0, 0, 0, 1, 85, 1, 0, 0, 0, 1, 87, 1, 0, 0, 0, 1, 89,
959
+ 1, 0, 0, 0, 1, 91, 1, 0, 0, 0, 2, 93, 1, 0, 0, 0, 2, 95, 1, 0, 0, 0, 2, 97, 1, 0, 0, 0, 2, 99,
960
+ 1, 0, 0, 0, 3, 101, 1, 0, 0, 0, 3, 103, 1, 0, 0, 0, 3, 105, 1, 0, 0, 0, 3, 107, 1, 0, 0, 0,
961
+ 4, 109, 1, 0, 0, 0, 4, 111, 1, 0, 0, 0, 4, 113, 1, 0, 0, 0, 5, 115, 1, 0, 0, 0, 5, 117, 1,
962
+ 0, 0, 0, 5, 119, 1, 0, 0, 0, 5, 121, 1, 0, 0, 0, 5, 123, 1, 0, 0, 0, 5, 125, 1, 0, 0, 0, 6,
963
+ 127, 1, 0, 0, 0, 6, 129, 1, 0, 0, 0, 6, 131, 1, 0, 0, 0, 6, 133, 1, 0, 0, 0, 6, 135, 1, 0,
964
+ 0, 0, 6, 137, 1, 0, 0, 0, 6, 139, 1, 0, 0, 0, 6, 141, 1, 0, 0, 0, 6, 143, 1, 0, 0, 0, 7, 146,
965
+ 1, 0, 0, 0, 9, 151, 1, 0, 0, 0, 11, 166, 1, 0, 0, 0, 13, 183, 1, 0, 0, 0, 15, 192, 1, 0, 0,
966
+ 0, 17, 194, 1, 0, 0, 0, 19, 208, 1, 0, 0, 0, 21, 219, 1, 0, 0, 0, 23, 221, 1, 0, 0, 0, 25,
967
+ 236, 1, 0, 0, 0, 27, 240, 1, 0, 0, 0, 29, 255, 1, 0, 0, 0, 31, 271, 1, 0, 0, 0, 33, 287,
968
+ 1, 0, 0, 0, 35, 303, 1, 0, 0, 0, 37, 319, 1, 0, 0, 0, 39, 335, 1, 0, 0, 0, 41, 351, 1, 0,
969
+ 0, 0, 43, 367, 1, 0, 0, 0, 45, 383, 1, 0, 0, 0, 47, 399, 1, 0, 0, 0, 49, 415, 1, 0, 0, 0,
970
+ 51, 431, 1, 0, 0, 0, 53, 447, 1, 0, 0, 0, 55, 463, 1, 0, 0, 0, 57, 479, 1, 0, 0, 0, 59, 495,
971
+ 1, 0, 0, 0, 61, 509, 1, 0, 0, 0, 63, 520, 1, 0, 0, 0, 65, 526, 1, 0, 0, 0, 67, 551, 1, 0,
972
+ 0, 0, 69, 582, 1, 0, 0, 0, 71, 586, 1, 0, 0, 0, 73, 591, 1, 0, 0, 0, 75, 599, 1, 0, 0, 0,
973
+ 77, 605, 1, 0, 0, 0, 79, 611, 1, 0, 0, 0, 81, 617, 1, 0, 0, 0, 83, 624, 1, 0, 0, 0, 85, 629,
974
+ 1, 0, 0, 0, 87, 634, 1, 0, 0, 0, 89, 639, 1, 0, 0, 0, 91, 645, 1, 0, 0, 0, 93, 652, 1, 0,
975
+ 0, 0, 95, 658, 1, 0, 0, 0, 97, 663, 1, 0, 0, 0, 99, 669, 1, 0, 0, 0, 101, 676, 1, 0, 0, 0,
976
+ 103, 697, 1, 0, 0, 0, 105, 704, 1, 0, 0, 0, 107, 713, 1, 0, 0, 0, 109, 720, 1, 0, 0, 0,
977
+ 111, 726, 1, 0, 0, 0, 113, 735, 1, 0, 0, 0, 115, 741, 1, 0, 0, 0, 117, 747, 1, 0, 0, 0,
978
+ 119, 753, 1, 0, 0, 0, 121, 757, 1, 0, 0, 0, 123, 762, 1, 0, 0, 0, 125, 768, 1, 0, 0, 0,
979
+ 127, 774, 1, 0, 0, 0, 129, 787, 1, 0, 0, 0, 131, 793, 1, 0, 0, 0, 133, 806, 1, 0, 0, 0,
980
+ 135, 812, 1, 0, 0, 0, 137, 824, 1, 0, 0, 0, 139, 832, 1, 0, 0, 0, 141, 839, 1, 0, 0, 0,
981
+ 143, 844, 1, 0, 0, 0, 145, 147, 7, 0, 0, 0, 146, 145, 1, 0, 0, 0, 147, 148, 1, 0, 0, 0,
982
+ 148, 146, 1, 0, 0, 0, 148, 149, 1, 0, 0, 0, 149, 8, 1, 0, 0, 0, 150, 152, 5, 45, 0, 0, 151,
983
+ 150, 1, 0, 0, 0, 151, 152, 1, 0, 0, 0, 152, 154, 1, 0, 0, 0, 153, 155, 7, 1, 0, 0, 154,
984
+ 153, 1, 0, 0, 0, 155, 156, 1, 0, 0, 0, 156, 154, 1, 0, 0, 0, 156, 157, 1, 0, 0, 0, 157,
985
+ 164, 1, 0, 0, 0, 158, 160, 5, 46, 0, 0, 159, 161, 7, 1, 0, 0, 160, 159, 1, 0, 0, 0, 161,
986
+ 162, 1, 0, 0, 0, 162, 160, 1, 0, 0, 0, 162, 163, 1, 0, 0, 0, 163, 165, 1, 0, 0, 0, 164,
987
+ 158, 1, 0, 0, 0, 164, 165, 1, 0, 0, 0, 165, 10, 1, 0, 0, 0, 166, 167, 5, 60, 0, 0, 167,
988
+ 178, 3, 9, 1, 0, 168, 174, 5, 45, 0, 0, 169, 171, 5, 44, 0, 0, 170, 172, 5, 32, 0, 0, 171,
989
+ 170, 1, 0, 0, 0, 171, 172, 1, 0, 0, 0, 172, 174, 1, 0, 0, 0, 173, 168, 1, 0, 0, 0, 173,
990
+ 169, 1, 0, 0, 0, 174, 175, 1, 0, 0, 0, 175, 177, 3, 9, 1, 0, 176, 173, 1, 0, 0, 0, 177,
991
+ 180, 1, 0, 0, 0, 178, 176, 1, 0, 0, 0, 178, 179, 1, 0, 0, 0, 179, 181, 1, 0, 0, 0, 180,
992
+ 178, 1, 0, 0, 0, 181, 182, 5, 62, 0, 0, 182, 12, 1, 0, 0, 0, 183, 184, 5, 64, 0, 0, 184,
993
+ 185, 7, 2, 0, 0, 185, 186, 7, 2, 0, 0, 186, 187, 7, 2, 0, 0, 187, 188, 7, 2, 0, 0, 188,
994
+ 189, 7, 2, 0, 0, 189, 14, 1, 0, 0, 0, 190, 193, 3, 9, 1, 0, 191, 193, 3, 13, 3, 0, 192,
995
+ 190, 1, 0, 0, 0, 192, 191, 1, 0, 0, 0, 193, 16, 1, 0, 0, 0, 194, 195, 5, 60, 0, 0, 195,
996
+ 203, 3, 15, 4, 0, 196, 198, 5, 44, 0, 0, 197, 199, 5, 32, 0, 0, 198, 197, 1, 0, 0, 0, 198,
997
+ 199, 1, 0, 0, 0, 199, 200, 1, 0, 0, 0, 200, 202, 3, 15, 4, 0, 201, 196, 1, 0, 0, 0, 202,
998
+ 205, 1, 0, 0, 0, 203, 201, 1, 0, 0, 0, 203, 204, 1, 0, 0, 0, 204, 206, 1, 0, 0, 0, 205,
999
+ 203, 1, 0, 0, 0, 206, 207, 5, 62, 0, 0, 207, 18, 1, 0, 0, 0, 208, 209, 3, 13, 3, 0, 209,
1000
+ 210, 7, 3, 0, 0, 210, 214, 7, 4, 0, 0, 211, 213, 7, 1, 0, 0, 212, 211, 1, 0, 0, 0, 213,
1001
+ 216, 1, 0, 0, 0, 214, 212, 1, 0, 0, 0, 214, 215, 1, 0, 0, 0, 215, 20, 1, 0, 0, 0, 216, 214,
1002
+ 1, 0, 0, 0, 217, 220, 3, 15, 4, 0, 218, 220, 3, 19, 6, 0, 219, 217, 1, 0, 0, 0, 219, 218,
1003
+ 1, 0, 0, 0, 220, 22, 1, 0, 0, 0, 221, 222, 5, 60, 0, 0, 222, 230, 3, 21, 7, 0, 223, 225,
1004
+ 5, 44, 0, 0, 224, 226, 5, 32, 0, 0, 225, 224, 1, 0, 0, 0, 225, 226, 1, 0, 0, 0, 226, 227,
1005
+ 1, 0, 0, 0, 227, 229, 3, 21, 7, 0, 228, 223, 1, 0, 0, 0, 229, 232, 1, 0, 0, 0, 230, 228,
1006
+ 1, 0, 0, 0, 230, 231, 1, 0, 0, 0, 231, 233, 1, 0, 0, 0, 232, 230, 1, 0, 0, 0, 233, 234,
1007
+ 5, 62, 0, 0, 234, 24, 1, 0, 0, 0, 235, 237, 5, 13, 0, 0, 236, 235, 1, 0, 0, 0, 236, 237,
1008
+ 1, 0, 0, 0, 237, 238, 1, 0, 0, 0, 238, 239, 5, 10, 0, 0, 239, 26, 1, 0, 0, 0, 240, 241,
1009
+ 4, 10, 0, 0, 241, 242, 5, 35, 0, 0, 242, 243, 5, 32, 0, 0, 243, 244, 5, 80, 0, 0, 244,
1010
+ 245, 5, 76, 0, 0, 245, 246, 5, 65, 0, 0, 246, 247, 5, 78, 0, 0, 247, 249, 1, 0, 0, 0, 248,
1011
+ 250, 3, 7, 0, 0, 249, 248, 1, 0, 0, 0, 249, 250, 1, 0, 0, 0, 250, 251, 1, 0, 0, 0, 251,
1012
+ 252, 6, 10, 0, 0, 252, 253, 1, 0, 0, 0, 253, 254, 6, 10, 1, 0, 254, 28, 1, 0, 0, 0, 255,
1013
+ 256, 4, 11, 1, 0, 256, 257, 5, 35, 0, 0, 257, 258, 5, 35, 0, 0, 258, 259, 5, 32, 0, 0,
1014
+ 259, 260, 5, 70, 0, 0, 260, 261, 5, 73, 0, 0, 261, 262, 5, 78, 0, 0, 262, 263, 5, 68,
1015
+ 0, 0, 263, 265, 1, 0, 0, 0, 264, 266, 3, 7, 0, 0, 265, 264, 1, 0, 0, 0, 265, 266, 1, 0,
1016
+ 0, 0, 266, 267, 1, 0, 0, 0, 267, 268, 6, 11, 2, 0, 268, 269, 1, 0, 0, 0, 269, 270, 6, 11,
1017
+ 1, 0, 270, 30, 1, 0, 0, 0, 271, 272, 4, 12, 2, 0, 272, 273, 5, 35, 0, 0, 273, 274, 5, 35,
1018
+ 0, 0, 274, 275, 5, 32, 0, 0, 275, 276, 5, 82, 0, 0, 276, 277, 5, 69, 0, 0, 277, 278, 5,
1019
+ 65, 0, 0, 278, 279, 5, 68, 0, 0, 279, 281, 1, 0, 0, 0, 280, 282, 3, 7, 0, 0, 281, 280,
1020
+ 1, 0, 0, 0, 281, 282, 1, 0, 0, 0, 282, 283, 1, 0, 0, 0, 283, 284, 6, 12, 3, 0, 284, 285,
1021
+ 1, 0, 0, 0, 285, 286, 6, 12, 1, 0, 286, 32, 1, 0, 0, 0, 287, 288, 4, 13, 3, 0, 288, 289,
1022
+ 5, 35, 0, 0, 289, 290, 5, 35, 0, 0, 290, 291, 5, 32, 0, 0, 291, 292, 5, 69, 0, 0, 292,
1023
+ 293, 5, 68, 0, 0, 293, 294, 5, 73, 0, 0, 294, 295, 5, 84, 0, 0, 295, 297, 1, 0, 0, 0, 296,
1024
+ 298, 3, 7, 0, 0, 297, 296, 1, 0, 0, 0, 297, 298, 1, 0, 0, 0, 298, 299, 1, 0, 0, 0, 299,
1025
+ 300, 6, 13, 4, 0, 300, 301, 1, 0, 0, 0, 301, 302, 6, 13, 1, 0, 302, 34, 1, 0, 0, 0, 303,
1026
+ 304, 4, 14, 4, 0, 304, 305, 5, 35, 0, 0, 305, 306, 5, 35, 0, 0, 306, 307, 5, 32, 0, 0,
1027
+ 307, 308, 5, 67, 0, 0, 308, 309, 5, 79, 0, 0, 309, 310, 5, 80, 0, 0, 310, 311, 5, 89,
1028
+ 0, 0, 311, 313, 1, 0, 0, 0, 312, 314, 3, 7, 0, 0, 313, 312, 1, 0, 0, 0, 313, 314, 1, 0,
1029
+ 0, 0, 314, 315, 1, 0, 0, 0, 315, 316, 6, 14, 5, 0, 316, 317, 1, 0, 0, 0, 317, 318, 6, 14,
1030
+ 1, 0, 318, 36, 1, 0, 0, 0, 319, 320, 4, 15, 5, 0, 320, 321, 5, 35, 0, 0, 321, 322, 5, 35,
1031
+ 0, 0, 322, 323, 5, 32, 0, 0, 323, 324, 5, 77, 0, 0, 324, 325, 5, 79, 0, 0, 325, 326, 5,
1032
+ 86, 0, 0, 326, 327, 5, 69, 0, 0, 327, 329, 1, 0, 0, 0, 328, 330, 3, 7, 0, 0, 329, 328,
1033
+ 1, 0, 0, 0, 329, 330, 1, 0, 0, 0, 330, 331, 1, 0, 0, 0, 331, 332, 6, 15, 6, 0, 332, 333,
1034
+ 1, 0, 0, 0, 333, 334, 6, 15, 1, 0, 334, 38, 1, 0, 0, 0, 335, 336, 4, 16, 6, 0, 336, 337,
1035
+ 5, 35, 0, 0, 337, 338, 5, 35, 0, 0, 338, 339, 5, 32, 0, 0, 339, 340, 5, 79, 0, 0, 340,
1036
+ 341, 5, 80, 0, 0, 341, 342, 5, 69, 0, 0, 342, 343, 5, 78, 0, 0, 343, 345, 1, 0, 0, 0, 344,
1037
+ 346, 3, 7, 0, 0, 345, 344, 1, 0, 0, 0, 345, 346, 1, 0, 0, 0, 346, 347, 1, 0, 0, 0, 347,
1038
+ 348, 6, 16, 7, 0, 348, 349, 1, 0, 0, 0, 349, 350, 6, 16, 1, 0, 350, 40, 1, 0, 0, 0, 351,
1039
+ 352, 4, 17, 7, 0, 352, 353, 5, 35, 0, 0, 353, 354, 5, 35, 0, 0, 354, 355, 5, 32, 0, 0,
1040
+ 355, 356, 5, 70, 0, 0, 356, 357, 5, 79, 0, 0, 357, 358, 5, 76, 0, 0, 358, 359, 5, 68,
1041
+ 0, 0, 359, 361, 1, 0, 0, 0, 360, 362, 3, 7, 0, 0, 361, 360, 1, 0, 0, 0, 361, 362, 1, 0,
1042
+ 0, 0, 362, 363, 1, 0, 0, 0, 363, 364, 6, 17, 8, 0, 364, 365, 1, 0, 0, 0, 365, 366, 6, 17,
1043
+ 1, 0, 366, 42, 1, 0, 0, 0, 367, 368, 4, 18, 8, 0, 368, 369, 5, 35, 0, 0, 369, 370, 5, 35,
1044
+ 0, 0, 370, 371, 5, 32, 0, 0, 371, 372, 5, 83, 0, 0, 372, 373, 5, 69, 0, 0, 373, 374, 5,
1045
+ 78, 0, 0, 374, 375, 5, 68, 0, 0, 375, 377, 1, 0, 0, 0, 376, 378, 3, 7, 0, 0, 377, 376,
1046
+ 1, 0, 0, 0, 377, 378, 1, 0, 0, 0, 378, 379, 1, 0, 0, 0, 379, 380, 6, 18, 9, 0, 380, 381,
1047
+ 1, 0, 0, 0, 381, 382, 6, 18, 1, 0, 382, 44, 1, 0, 0, 0, 383, 384, 4, 19, 9, 0, 384, 385,
1048
+ 5, 35, 0, 0, 385, 386, 5, 35, 0, 0, 386, 387, 5, 32, 0, 0, 387, 388, 5, 69, 0, 0, 388,
1049
+ 389, 5, 88, 0, 0, 389, 390, 5, 69, 0, 0, 390, 391, 5, 67, 0, 0, 391, 393, 1, 0, 0, 0, 392,
1050
+ 394, 3, 7, 0, 0, 393, 392, 1, 0, 0, 0, 393, 394, 1, 0, 0, 0, 394, 395, 1, 0, 0, 0, 395,
1051
+ 396, 6, 19, 10, 0, 396, 397, 1, 0, 0, 0, 397, 398, 6, 19, 1, 0, 398, 46, 1, 0, 0, 0, 399,
1052
+ 400, 4, 20, 10, 0, 400, 401, 5, 35, 0, 0, 401, 402, 5, 35, 0, 0, 402, 403, 5, 32, 0, 0,
1053
+ 403, 404, 5, 66, 0, 0, 404, 405, 5, 65, 0, 0, 405, 406, 5, 82, 0, 0, 406, 407, 5, 69,
1054
+ 0, 0, 407, 409, 1, 0, 0, 0, 408, 410, 3, 7, 0, 0, 409, 408, 1, 0, 0, 0, 409, 410, 1, 0,
1055
+ 0, 0, 410, 411, 1, 0, 0, 0, 411, 412, 6, 20, 11, 0, 412, 413, 1, 0, 0, 0, 413, 414, 6,
1056
+ 20, 1, 0, 414, 48, 1, 0, 0, 0, 415, 416, 4, 21, 11, 0, 416, 417, 5, 35, 0, 0, 417, 418,
1057
+ 5, 35, 0, 0, 418, 419, 5, 32, 0, 0, 419, 420, 5, 87, 0, 0, 420, 421, 5, 79, 0, 0, 421,
1058
+ 422, 5, 82, 0, 0, 422, 423, 5, 75, 0, 0, 423, 425, 1, 0, 0, 0, 424, 426, 3, 7, 0, 0, 425,
1059
+ 424, 1, 0, 0, 0, 425, 426, 1, 0, 0, 0, 426, 427, 1, 0, 0, 0, 427, 428, 6, 21, 12, 0, 428,
1060
+ 429, 1, 0, 0, 0, 429, 430, 6, 21, 1, 0, 430, 50, 1, 0, 0, 0, 431, 432, 4, 22, 12, 0, 432,
1061
+ 433, 5, 35, 0, 0, 433, 434, 5, 35, 0, 0, 434, 435, 5, 32, 0, 0, 435, 436, 5, 70, 0, 0,
1062
+ 436, 437, 5, 79, 0, 0, 437, 438, 5, 82, 0, 0, 438, 439, 5, 75, 0, 0, 439, 441, 1, 0, 0,
1063
+ 0, 440, 442, 3, 7, 0, 0, 441, 440, 1, 0, 0, 0, 441, 442, 1, 0, 0, 0, 442, 443, 1, 0, 0,
1064
+ 0, 443, 444, 6, 22, 13, 0, 444, 445, 1, 0, 0, 0, 445, 446, 6, 22, 1, 0, 446, 52, 1, 0,
1065
+ 0, 0, 447, 448, 4, 23, 13, 0, 448, 449, 5, 35, 0, 0, 449, 450, 5, 35, 0, 0, 450, 451,
1066
+ 5, 32, 0, 0, 451, 452, 5, 75, 0, 0, 452, 453, 5, 73, 0, 0, 453, 454, 5, 76, 0, 0, 454,
1067
+ 455, 5, 76, 0, 0, 455, 457, 1, 0, 0, 0, 456, 458, 3, 7, 0, 0, 457, 456, 1, 0, 0, 0, 457,
1068
+ 458, 1, 0, 0, 0, 458, 459, 1, 0, 0, 0, 459, 460, 6, 23, 14, 0, 460, 461, 1, 0, 0, 0, 461,
1069
+ 462, 6, 23, 1, 0, 462, 54, 1, 0, 0, 0, 463, 464, 4, 24, 14, 0, 464, 465, 5, 35, 0, 0, 465,
1070
+ 466, 5, 35, 0, 0, 466, 467, 5, 32, 0, 0, 467, 468, 5, 76, 0, 0, 468, 469, 5, 79, 0, 0,
1071
+ 469, 470, 5, 79, 0, 0, 470, 471, 5, 75, 0, 0, 471, 473, 1, 0, 0, 0, 472, 474, 3, 7, 0,
1072
+ 0, 473, 472, 1, 0, 0, 0, 473, 474, 1, 0, 0, 0, 474, 475, 1, 0, 0, 0, 475, 476, 6, 24, 15,
1073
+ 0, 476, 477, 1, 0, 0, 0, 477, 478, 6, 24, 1, 0, 478, 56, 1, 0, 0, 0, 479, 480, 4, 25, 15,
1074
+ 0, 480, 481, 5, 35, 0, 0, 481, 482, 5, 35, 0, 0, 482, 483, 5, 32, 0, 0, 483, 484, 5, 66,
1075
+ 0, 0, 484, 485, 5, 85, 0, 0, 485, 486, 5, 70, 0, 0, 486, 487, 5, 70, 0, 0, 487, 489, 1,
1076
+ 0, 0, 0, 488, 490, 3, 7, 0, 0, 489, 488, 1, 0, 0, 0, 489, 490, 1, 0, 0, 0, 490, 491, 1,
1077
+ 0, 0, 0, 491, 492, 6, 25, 16, 0, 492, 493, 1, 0, 0, 0, 493, 494, 6, 25, 1, 0, 494, 58,
1078
+ 1, 0, 0, 0, 495, 496, 4, 26, 16, 0, 496, 497, 5, 96, 0, 0, 497, 498, 5, 96, 0, 0, 498,
1079
+ 499, 5, 96, 0, 0, 499, 500, 5, 112, 0, 0, 500, 501, 5, 108, 0, 0, 501, 502, 5, 117, 0,
1080
+ 0, 502, 503, 5, 114, 0, 0, 503, 504, 5, 110, 0, 0, 504, 505, 5, 107, 0, 0, 505, 506,
1081
+ 1, 0, 0, 0, 506, 507, 3, 25, 9, 0, 507, 508, 6, 26, 17, 0, 508, 60, 1, 0, 0, 0, 509, 510,
1082
+ 4, 27, 17, 0, 510, 511, 5, 96, 0, 0, 511, 512, 5, 96, 0, 0, 512, 513, 5, 96, 0, 0, 513,
1083
+ 515, 1, 0, 0, 0, 514, 516, 3, 25, 9, 0, 515, 514, 1, 0, 0, 0, 515, 516, 1, 0, 0, 0, 516,
1084
+ 517, 1, 0, 0, 0, 517, 518, 6, 27, 18, 0, 518, 62, 1, 0, 0, 0, 519, 521, 7, 5, 0, 0, 520,
1085
+ 519, 1, 0, 0, 0, 521, 522, 1, 0, 0, 0, 522, 520, 1, 0, 0, 0, 522, 523, 1, 0, 0, 0, 523,
1086
+ 524, 1, 0, 0, 0, 524, 525, 6, 28, 19, 0, 525, 64, 1, 0, 0, 0, 526, 527, 5, 60, 0, 0, 527,
1087
+ 528, 5, 116, 0, 0, 528, 529, 5, 104, 0, 0, 529, 530, 5, 105, 0, 0, 530, 531, 5, 110,
1088
+ 0, 0, 531, 532, 5, 107, 0, 0, 532, 533, 5, 62, 0, 0, 533, 537, 1, 0, 0, 0, 534, 536, 9,
1089
+ 0, 0, 0, 535, 534, 1, 0, 0, 0, 536, 539, 1, 0, 0, 0, 537, 538, 1, 0, 0, 0, 537, 535, 1,
1090
+ 0, 0, 0, 538, 540, 1, 0, 0, 0, 539, 537, 1, 0, 0, 0, 540, 541, 5, 60, 0, 0, 541, 542, 5,
1091
+ 47, 0, 0, 542, 543, 5, 116, 0, 0, 543, 544, 5, 104, 0, 0, 544, 545, 5, 105, 0, 0, 545,
1092
+ 546, 5, 110, 0, 0, 546, 547, 5, 107, 0, 0, 547, 548, 5, 62, 0, 0, 548, 549, 1, 0, 0, 0,
1093
+ 549, 550, 6, 29, 20, 0, 550, 66, 1, 0, 0, 0, 551, 552, 5, 60, 0, 0, 552, 553, 5, 124,
1094
+ 0, 0, 553, 554, 5, 99, 0, 0, 554, 555, 5, 104, 0, 0, 555, 556, 5, 97, 0, 0, 556, 557,
1095
+ 5, 110, 0, 0, 557, 558, 5, 110, 0, 0, 558, 559, 5, 101, 0, 0, 559, 560, 5, 108, 0, 0,
1096
+ 560, 561, 5, 62, 0, 0, 561, 565, 1, 0, 0, 0, 562, 564, 9, 0, 0, 0, 563, 562, 1, 0, 0, 0,
1097
+ 564, 567, 1, 0, 0, 0, 565, 566, 1, 0, 0, 0, 565, 563, 1, 0, 0, 0, 566, 568, 1, 0, 0, 0,
1098
+ 567, 565, 1, 0, 0, 0, 568, 569, 5, 60, 0, 0, 569, 570, 5, 99, 0, 0, 570, 571, 5, 104,
1099
+ 0, 0, 571, 572, 5, 97, 0, 0, 572, 573, 5, 110, 0, 0, 573, 574, 5, 110, 0, 0, 574, 575,
1100
+ 5, 101, 0, 0, 575, 576, 5, 108, 0, 0, 576, 577, 5, 124, 0, 0, 577, 578, 5, 62, 0, 0, 578,
1101
+ 579, 1, 0, 0, 0, 579, 580, 6, 30, 20, 0, 580, 68, 1, 0, 0, 0, 581, 583, 8, 6, 0, 0, 582,
1102
+ 581, 1, 0, 0, 0, 583, 584, 1, 0, 0, 0, 584, 582, 1, 0, 0, 0, 584, 585, 1, 0, 0, 0, 585,
1103
+ 70, 1, 0, 0, 0, 586, 587, 5, 35, 0, 0, 587, 588, 1, 0, 0, 0, 588, 589, 6, 32, 20, 0, 589,
1104
+ 72, 1, 0, 0, 0, 590, 592, 7, 7, 0, 0, 591, 590, 1, 0, 0, 0, 592, 593, 1, 0, 0, 0, 593, 591,
1105
+ 1, 0, 0, 0, 593, 594, 1, 0, 0, 0, 594, 595, 1, 0, 0, 0, 595, 596, 6, 33, 21, 0, 596, 597,
1106
+ 1, 0, 0, 0, 597, 598, 6, 33, 22, 0, 598, 74, 1, 0, 0, 0, 599, 600, 4, 34, 18, 0, 600, 601,
1107
+ 5, 91, 0, 0, 601, 602, 1, 0, 0, 0, 602, 603, 6, 34, 23, 0, 603, 604, 6, 34, 24, 0, 604,
1108
+ 76, 1, 0, 0, 0, 605, 606, 4, 35, 19, 0, 606, 607, 5, 91, 0, 0, 607, 608, 1, 0, 0, 0, 608,
1109
+ 609, 6, 35, 23, 0, 609, 610, 6, 35, 25, 0, 610, 78, 1, 0, 0, 0, 611, 612, 4, 36, 20, 0,
1110
+ 612, 613, 5, 91, 0, 0, 613, 614, 1, 0, 0, 0, 614, 615, 6, 36, 23, 0, 615, 616, 6, 36,
1111
+ 26, 0, 616, 80, 1, 0, 0, 0, 617, 618, 4, 37, 21, 0, 618, 619, 5, 40, 0, 0, 619, 620, 6,
1112
+ 37, 27, 0, 620, 621, 1, 0, 0, 0, 621, 622, 6, 37, 28, 0, 622, 623, 6, 37, 29, 0, 623,
1113
+ 82, 1, 0, 0, 0, 624, 625, 4, 38, 22, 0, 625, 626, 3, 17, 5, 0, 626, 627, 1, 0, 0, 0, 627,
1114
+ 628, 6, 38, 30, 0, 628, 84, 1, 0, 0, 0, 629, 630, 4, 39, 23, 0, 630, 631, 3, 11, 2, 0,
1115
+ 631, 632, 1, 0, 0, 0, 632, 633, 6, 39, 30, 0, 633, 86, 1, 0, 0, 0, 634, 635, 4, 40, 24,
1116
+ 0, 635, 636, 3, 23, 8, 0, 636, 637, 1, 0, 0, 0, 637, 638, 6, 40, 31, 0, 638, 88, 1, 0,
1117
+ 0, 0, 639, 640, 4, 41, 25, 0, 640, 641, 3, 25, 9, 0, 641, 642, 1, 0, 0, 0, 642, 643, 6,
1118
+ 41, 32, 0, 643, 644, 6, 41, 33, 0, 644, 90, 1, 0, 0, 0, 645, 646, 3, 25, 9, 0, 646, 647,
1119
+ 6, 42, 34, 0, 647, 648, 1, 0, 0, 0, 648, 649, 6, 42, 35, 0, 649, 650, 6, 42, 36, 0, 650,
1120
+ 92, 1, 0, 0, 0, 651, 653, 7, 7, 0, 0, 652, 651, 1, 0, 0, 0, 653, 654, 1, 0, 0, 0, 654, 652,
1121
+ 1, 0, 0, 0, 654, 655, 1, 0, 0, 0, 655, 656, 1, 0, 0, 0, 656, 657, 6, 43, 22, 0, 657, 94,
1122
+ 1, 0, 0, 0, 658, 659, 5, 44, 0, 0, 659, 660, 1, 0, 0, 0, 660, 661, 6, 44, 37, 0, 661, 96,
1123
+ 1, 0, 0, 0, 662, 664, 8, 8, 0, 0, 663, 662, 1, 0, 0, 0, 664, 665, 1, 0, 0, 0, 665, 663,
1124
+ 1, 0, 0, 0, 665, 666, 1, 0, 0, 0, 666, 667, 1, 0, 0, 0, 667, 668, 6, 45, 38, 0, 668, 98,
1125
+ 1, 0, 0, 0, 669, 670, 5, 93, 0, 0, 670, 671, 6, 46, 39, 0, 671, 672, 1, 0, 0, 0, 672, 673,
1126
+ 6, 46, 40, 0, 673, 674, 6, 46, 1, 0, 674, 100, 1, 0, 0, 0, 675, 677, 7, 7, 0, 0, 676, 675,
1127
+ 1, 0, 0, 0, 677, 678, 1, 0, 0, 0, 678, 676, 1, 0, 0, 0, 678, 679, 1, 0, 0, 0, 679, 680,
1128
+ 1, 0, 0, 0, 680, 681, 6, 47, 22, 0, 681, 102, 1, 0, 0, 0, 682, 683, 5, 49, 0, 0, 683, 684,
1129
+ 5, 48, 0, 0, 684, 698, 5, 50, 0, 0, 685, 686, 5, 50, 0, 0, 686, 687, 5, 48, 0, 0, 687,
1130
+ 698, 5, 48, 0, 0, 688, 689, 5, 50, 0, 0, 689, 690, 5, 48, 0, 0, 690, 698, 5, 50, 0, 0,
1131
+ 691, 692, 5, 51, 0, 0, 692, 693, 5, 48, 0, 0, 693, 698, 5, 48, 0, 0, 694, 695, 5, 52,
1132
+ 0, 0, 695, 696, 5, 57, 0, 0, 696, 698, 5, 57, 0, 0, 697, 682, 1, 0, 0, 0, 697, 685, 1,
1133
+ 0, 0, 0, 697, 688, 1, 0, 0, 0, 697, 691, 1, 0, 0, 0, 697, 694, 1, 0, 0, 0, 698, 699, 1,
1134
+ 0, 0, 0, 699, 700, 6, 48, 41, 0, 700, 701, 1, 0, 0, 0, 701, 702, 6, 48, 42, 0, 702, 104,
1135
+ 1, 0, 0, 0, 703, 705, 5, 45, 0, 0, 704, 703, 1, 0, 0, 0, 704, 705, 1, 0, 0, 0, 705, 707,
1136
+ 1, 0, 0, 0, 706, 708, 7, 1, 0, 0, 707, 706, 1, 0, 0, 0, 708, 709, 1, 0, 0, 0, 709, 707,
1137
+ 1, 0, 0, 0, 709, 710, 1, 0, 0, 0, 710, 711, 1, 0, 0, 0, 711, 712, 6, 49, 43, 0, 712, 106,
1138
+ 1, 0, 0, 0, 713, 714, 5, 93, 0, 0, 714, 715, 6, 50, 44, 0, 715, 716, 1, 0, 0, 0, 716, 717,
1139
+ 6, 50, 40, 0, 717, 718, 6, 50, 1, 0, 718, 108, 1, 0, 0, 0, 719, 721, 7, 7, 0, 0, 720, 719,
1140
+ 1, 0, 0, 0, 721, 722, 1, 0, 0, 0, 722, 720, 1, 0, 0, 0, 722, 723, 1, 0, 0, 0, 723, 724,
1141
+ 1, 0, 0, 0, 724, 725, 6, 51, 22, 0, 725, 110, 1, 0, 0, 0, 726, 730, 7, 9, 0, 0, 727, 729,
1142
+ 7, 10, 0, 0, 728, 727, 1, 0, 0, 0, 729, 732, 1, 0, 0, 0, 730, 728, 1, 0, 0, 0, 730, 731,
1143
+ 1, 0, 0, 0, 731, 733, 1, 0, 0, 0, 732, 730, 1, 0, 0, 0, 733, 734, 6, 52, 45, 0, 734, 112,
1144
+ 1, 0, 0, 0, 735, 736, 5, 93, 0, 0, 736, 737, 6, 53, 46, 0, 737, 738, 1, 0, 0, 0, 738, 739,
1145
+ 6, 53, 40, 0, 739, 740, 6, 53, 1, 0, 740, 114, 1, 0, 0, 0, 741, 742, 5, 92, 0, 0, 742,
1146
+ 743, 7, 11, 0, 0, 743, 744, 1, 0, 0, 0, 744, 745, 6, 54, 47, 0, 745, 116, 1, 0, 0, 0, 746,
1147
+ 748, 8, 12, 0, 0, 747, 746, 1, 0, 0, 0, 748, 749, 1, 0, 0, 0, 749, 747, 1, 0, 0, 0, 749,
1148
+ 750, 1, 0, 0, 0, 750, 751, 1, 0, 0, 0, 751, 752, 6, 55, 47, 0, 752, 118, 1, 0, 0, 0, 753,
1149
+ 754, 5, 92, 0, 0, 754, 755, 1, 0, 0, 0, 755, 756, 6, 56, 47, 0, 756, 120, 1, 0, 0, 0, 757,
1150
+ 758, 5, 40, 0, 0, 758, 759, 6, 57, 48, 0, 759, 760, 1, 0, 0, 0, 760, 761, 6, 57, 47, 0,
1151
+ 761, 122, 1, 0, 0, 0, 762, 763, 4, 58, 26, 0, 763, 764, 5, 41, 0, 0, 764, 765, 6, 58,
1152
+ 49, 0, 765, 766, 1, 0, 0, 0, 766, 767, 6, 58, 47, 0, 767, 124, 1, 0, 0, 0, 768, 769, 5,
1153
+ 41, 0, 0, 769, 770, 6, 59, 50, 0, 770, 771, 1, 0, 0, 0, 771, 772, 6, 59, 51, 0, 772, 773,
1154
+ 6, 59, 1, 0, 773, 126, 1, 0, 0, 0, 774, 775, 4, 60, 27, 0, 775, 776, 5, 96, 0, 0, 776,
1155
+ 777, 5, 96, 0, 0, 777, 778, 5, 96, 0, 0, 778, 780, 1, 0, 0, 0, 779, 781, 3, 25, 9, 0, 780,
1156
+ 779, 1, 0, 0, 0, 780, 781, 1, 0, 0, 0, 781, 782, 1, 0, 0, 0, 782, 783, 6, 60, 52, 0, 783,
1157
+ 784, 1, 0, 0, 0, 784, 785, 6, 60, 53, 0, 785, 786, 6, 60, 33, 0, 786, 128, 1, 0, 0, 0,
1158
+ 787, 788, 4, 61, 28, 0, 788, 789, 3, 25, 9, 0, 789, 790, 1, 0, 0, 0, 790, 791, 6, 61,
1159
+ 32, 0, 791, 792, 6, 61, 33, 0, 792, 130, 1, 0, 0, 0, 793, 794, 4, 62, 29, 0, 794, 798,
1160
+ 3, 25, 9, 0, 795, 797, 7, 7, 0, 0, 796, 795, 1, 0, 0, 0, 797, 800, 1, 0, 0, 0, 798, 796,
1161
+ 1, 0, 0, 0, 798, 799, 1, 0, 0, 0, 799, 801, 1, 0, 0, 0, 800, 798, 1, 0, 0, 0, 801, 802,
1162
+ 3, 25, 9, 0, 802, 803, 1, 0, 0, 0, 803, 804, 6, 62, 32, 0, 804, 805, 6, 62, 33, 0, 805,
1163
+ 132, 1, 0, 0, 0, 806, 807, 4, 63, 30, 0, 807, 808, 3, 25, 9, 0, 808, 809, 1, 0, 0, 0, 809,
1164
+ 810, 6, 63, 32, 0, 810, 811, 6, 63, 33, 0, 811, 134, 1, 0, 0, 0, 812, 814, 4, 64, 31,
1165
+ 0, 813, 815, 7, 7, 0, 0, 814, 813, 1, 0, 0, 0, 815, 816, 1, 0, 0, 0, 816, 814, 1, 0, 0,
1166
+ 0, 816, 817, 1, 0, 0, 0, 817, 818, 1, 0, 0, 0, 818, 819, 3, 25, 9, 0, 819, 820, 1, 0, 0,
1167
+ 0, 820, 821, 6, 64, 32, 0, 821, 822, 6, 64, 33, 0, 822, 136, 1, 0, 0, 0, 823, 825, 8,
1168
+ 13, 0, 0, 824, 823, 1, 0, 0, 0, 825, 826, 1, 0, 0, 0, 826, 824, 1, 0, 0, 0, 826, 827, 1,
1169
+ 0, 0, 0, 827, 828, 1, 0, 0, 0, 828, 829, 6, 65, 54, 0, 829, 830, 1, 0, 0, 0, 830, 831,
1170
+ 6, 65, 55, 0, 831, 138, 1, 0, 0, 0, 832, 833, 5, 13, 0, 0, 833, 834, 5, 10, 0, 0, 834,
1171
+ 835, 1, 0, 0, 0, 835, 836, 6, 66, 56, 0, 836, 837, 1, 0, 0, 0, 837, 838, 6, 66, 55, 0,
1172
+ 838, 140, 1, 0, 0, 0, 839, 840, 5, 10, 0, 0, 840, 841, 6, 67, 57, 0, 841, 842, 1, 0, 0,
1173
+ 0, 842, 843, 6, 67, 55, 0, 843, 142, 1, 0, 0, 0, 844, 845, 5, 13, 0, 0, 845, 846, 6, 68,
1174
+ 58, 0, 846, 847, 1, 0, 0, 0, 847, 848, 6, 68, 55, 0, 848, 144, 1, 0, 0, 0, 58, 0, 1, 2,
1175
+ 3, 4, 5, 6, 148, 151, 156, 162, 164, 171, 173, 178, 192, 198, 203, 214, 219, 225,
1176
+ 230, 236, 249, 265, 281, 297, 313, 329, 345, 361, 377, 393, 409, 425, 441, 457,
1177
+ 473, 489, 515, 522, 537, 565, 584, 593, 654, 665, 678, 697, 704, 709, 722, 730,
1178
+ 749, 780, 798, 816, 826, 59, 1, 10, 0, 2, 1, 0, 1, 11, 1, 1, 12, 2, 1, 13, 3, 1, 14, 4,
1179
+ 1, 15, 5, 1, 16, 6, 1, 17, 7, 1, 18, 8, 1, 19, 9, 1, 20, 10, 1, 21, 11, 1, 22, 12, 1, 23,
1180
+ 13, 1, 24, 14, 1, 25, 15, 1, 26, 16, 1, 27, 17, 0, 1, 0, 7, 16, 0, 1, 33, 18, 6, 0, 0, 7,
1181
+ 1, 0, 2, 2, 0, 2, 3, 0, 2, 4, 0, 1, 37, 19, 7, 3, 0, 2, 5, 0, 7, 5, 0, 7, 6, 0, 7, 8, 0, 2, 0,
1182
+ 0, 1, 42, 20, 7, 7, 0, 2, 6, 0, 7, 9, 0, 7, 13, 0, 1, 46, 21, 7, 2, 0, 1, 48, 22, 7, 11, 0,
1183
+ 7, 10, 0, 1, 50, 23, 7, 12, 0, 1, 53, 24, 7, 14, 0, 1, 57, 25, 1, 58, 26, 1, 59, 27, 7, 4,
1184
+ 0, 1, 60, 28, 7, 34, 0, 1, 65, 29, 7, 15, 0, 1, 66, 30, 1, 67, 31, 1, 68, 32
794
1185
  ];
795
1186
  static __ATN;
796
1187
  static get _ATN() {