@plurnk/plurnk-contracts 1.16.4 → 1.17.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.
- package/README.md +13 -29
- package/SPEC.md +605 -518
- package/dist/conformance/agui-v1.json +3 -3
- package/dist/schema/CapabilityProjection.json +2 -4
- package/dist/schema/ClientStatement.json +5 -52
- package/dist/schema/FunctionalityDefinitionState.json +2 -2
- package/dist/schema/LineMarker.json +1 -1
- package/dist/schema/LoopPolicy.json +2 -3
- package/dist/schema/MatcherBody.json +6 -6
- package/dist/schema/McpServerDefinition.json +17 -0
- package/dist/schema/ModelCatalogPage.json +10 -1
- package/dist/schema/ModelRoute.json +9 -0
- package/dist/schema/Notice.json +1 -1
- package/dist/schema/ParsedPath.json +3 -2
- package/dist/schema/Plan.json +9 -5
- package/dist/schema/PlurnkStatement.json +86 -134
- package/dist/schema/ProposalProjection.json +2 -1
- package/dist/schema/ResourceSelection.json +51 -27
- package/dist/schema/SkillDefinition.json +3 -3
- package/dist/src/AcpPlanValue.d.ts +0 -1
- package/dist/src/AcpPlanValue.d.ts.map +1 -1
- package/dist/src/AcpPlanValue.js +14 -13
- package/dist/src/AcpPlanValue.js.map +1 -1
- package/dist/src/ApplicationPort.d.ts +16 -14
- package/dist/src/ApplicationPort.d.ts.map +1 -1
- package/dist/src/AstBuilder.d.ts +3 -2
- package/dist/src/AstBuilder.d.ts.map +1 -1
- package/dist/src/AstBuilder.js +340 -187
- package/dist/src/AstBuilder.js.map +1 -1
- package/dist/src/JsonDocument.d.ts +2 -0
- package/dist/src/JsonDocument.d.ts.map +1 -0
- package/dist/src/JsonDocument.js +14 -0
- package/dist/src/JsonDocument.js.map +1 -0
- package/dist/src/LoopLifecycle.d.ts +3 -0
- package/dist/src/LoopLifecycle.d.ts.map +1 -0
- package/dist/src/LoopLifecycle.js +14 -0
- package/dist/src/LoopLifecycle.js.map +1 -0
- package/dist/src/PlanValue.d.ts +1 -1
- package/dist/src/PlanValue.d.ts.map +1 -1
- package/dist/src/PlanValue.js +10 -6
- package/dist/src/PlanValue.js.map +1 -1
- package/dist/src/PlurnkErrorStrategy.d.ts.map +1 -1
- package/dist/src/PlurnkErrorStrategy.js +58 -139
- package/dist/src/PlurnkErrorStrategy.js.map +1 -1
- package/dist/src/PlurnkParseError.d.ts +3 -1
- package/dist/src/PlurnkParseError.d.ts.map +1 -1
- package/dist/src/PlurnkParseError.js +4 -1
- package/dist/src/PlurnkParseError.js.map +1 -1
- package/dist/src/PlurnkParser.d.ts +9 -5
- package/dist/src/PlurnkParser.d.ts.map +1 -1
- package/dist/src/PlurnkParser.js +175 -180
- package/dist/src/PlurnkParser.js.map +1 -1
- package/dist/src/RecordingListener.d.ts +1 -1
- package/dist/src/RecordingListener.d.ts.map +1 -1
- package/dist/src/RecordingListener.js +24 -6
- package/dist/src/RecordingListener.js.map +1 -1
- package/dist/src/TurnDisposition.d.ts +11 -0
- package/dist/src/TurnDisposition.d.ts.map +1 -0
- package/dist/src/TurnDisposition.js +32 -0
- package/dist/src/TurnDisposition.js.map +1 -0
- package/dist/src/Validator.js +1 -1
- package/dist/src/Validator.js.map +1 -1
- package/dist/src/generated/plurnkLexer.d.ts +95 -106
- package/dist/src/generated/plurnkLexer.d.ts.map +1 -1
- package/dist/src/generated/plurnkLexer.js +674 -828
- package/dist/src/generated/plurnkLexer.js.map +1 -1
- package/dist/src/generated/plurnkParser.d.ts +111 -152
- package/dist/src/generated/plurnkParser.d.ts.map +1 -1
- package/dist/src/generated/plurnkParser.js +756 -1082
- package/dist/src/generated/plurnkParser.js.map +1 -1
- package/dist/src/generated/plurnkParserVisitor.d.ts +15 -36
- package/dist/src/generated/plurnkParserVisitor.d.ts.map +1 -1
- package/dist/src/generated/plurnkParserVisitor.js +12 -30
- package/dist/src/generated/plurnkParserVisitor.js.map +1 -1
- package/dist/src/index.d.ts +5 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +4 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/types.d.ts +3 -7
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/types.generated.d.ts +147 -80
- package/dist/src/types.generated.d.ts.map +1 -1
- package/dist/src/types.js +3 -3
- package/dist/src/types.js.map +1 -1
- package/package.json +4 -8
- package/plurnk.md +103 -119
- package/dist/plurnk.gemma.gbnf +0 -141
- package/dist/plurnk.qwen.gbnf +0 -130
|
@@ -1,40 +1,37 @@
|
|
|
1
1
|
import * as antlr from "antlr4ng";
|
|
2
2
|
export class plurnkLexer extends antlr.Lexer {
|
|
3
|
-
static
|
|
4
|
-
static
|
|
5
|
-
static
|
|
6
|
-
static
|
|
7
|
-
static
|
|
8
|
-
static
|
|
9
|
-
static
|
|
10
|
-
static
|
|
11
|
-
static
|
|
12
|
-
static
|
|
13
|
-
static
|
|
14
|
-
static
|
|
15
|
-
static
|
|
16
|
-
static
|
|
17
|
-
static
|
|
18
|
-
static
|
|
19
|
-
static
|
|
20
|
-
static
|
|
21
|
-
static
|
|
22
|
-
static
|
|
23
|
-
static
|
|
24
|
-
static
|
|
25
|
-
static
|
|
26
|
-
static
|
|
27
|
-
static
|
|
28
|
-
static
|
|
29
|
-
static
|
|
30
|
-
static
|
|
31
|
-
static
|
|
32
|
-
static
|
|
33
|
-
static
|
|
34
|
-
static
|
|
35
|
-
static SLOTS_WS = 33;
|
|
36
|
-
static TEXT_HASH = 34;
|
|
37
|
-
static TARGET_BACKSLASH = 35;
|
|
3
|
+
static OPEN_FIND = 1;
|
|
4
|
+
static OPEN_READ = 2;
|
|
5
|
+
static OPEN_EDIT = 3;
|
|
6
|
+
static OPEN_COPY = 4;
|
|
7
|
+
static OPEN_MOVE = 5;
|
|
8
|
+
static OPEN_SEND = 6;
|
|
9
|
+
static OPEN_TASK = 7;
|
|
10
|
+
static OPEN_EXEC = 8;
|
|
11
|
+
static OPEN_BARE = 9;
|
|
12
|
+
static OPEN_WORK = 10;
|
|
13
|
+
static OPEN_FORK = 11;
|
|
14
|
+
static OPEN_KILL = 12;
|
|
15
|
+
static OPEN_LOOK = 13;
|
|
16
|
+
static LPAREN = 14;
|
|
17
|
+
static RPAREN = 15;
|
|
18
|
+
static LBRACKET = 16;
|
|
19
|
+
static RBRACKET = 17;
|
|
20
|
+
static L_MARKER = 18;
|
|
21
|
+
static BODY_OPEN = 19;
|
|
22
|
+
static SECTION_END = 20;
|
|
23
|
+
static TARGET_TEXT = 21;
|
|
24
|
+
static METADATA_TEXT = 22;
|
|
25
|
+
static BODY_TEXT = 23;
|
|
26
|
+
static TEXT = 24;
|
|
27
|
+
static ASIDE = 25;
|
|
28
|
+
static OPEN = 26;
|
|
29
|
+
static WS = 27;
|
|
30
|
+
static SLOTS_WS = 28;
|
|
31
|
+
static TARGET_BACKSLASH = 29;
|
|
32
|
+
static TARGET_TICK = 30;
|
|
33
|
+
static METADATA_QUOTE = 31;
|
|
34
|
+
static B_CR = 32;
|
|
38
35
|
static SLOTS = 1;
|
|
39
36
|
static TARGET = 2;
|
|
40
37
|
static METADATA = 3;
|
|
@@ -45,167 +42,278 @@ export class plurnkLexer extends antlr.Lexer {
|
|
|
45
42
|
static literalNames = [
|
|
46
43
|
null, null, null, null, null, null, null, null, null, null, null,
|
|
47
44
|
null, null, null, null, null, null, null, null, null, null, null,
|
|
48
|
-
null, null, null, null, null, null, null,
|
|
49
|
-
|
|
45
|
+
null, null, null, null, null, null, null, "'\\'", null, "'\"'",
|
|
46
|
+
"'\\r'"
|
|
50
47
|
];
|
|
51
48
|
static symbolicNames = [
|
|
52
|
-
null, "
|
|
53
|
-
"
|
|
54
|
-
"
|
|
55
|
-
"
|
|
56
|
-
"
|
|
57
|
-
"
|
|
58
|
-
"TEXT_HASH", "TARGET_BACKSLASH"
|
|
49
|
+
null, "OPEN_FIND", "OPEN_READ", "OPEN_EDIT", "OPEN_COPY", "OPEN_MOVE",
|
|
50
|
+
"OPEN_SEND", "OPEN_TASK", "OPEN_EXEC", "OPEN_BARE", "OPEN_WORK",
|
|
51
|
+
"OPEN_FORK", "OPEN_KILL", "OPEN_LOOK", "LPAREN", "RPAREN", "LBRACKET",
|
|
52
|
+
"RBRACKET", "L_MARKER", "BODY_OPEN", "SECTION_END", "TARGET_TEXT",
|
|
53
|
+
"METADATA_TEXT", "BODY_TEXT", "TEXT", "ASIDE", "OPEN", "WS", "SLOTS_WS",
|
|
54
|
+
"TARGET_BACKSLASH", "TARGET_TICK", "METADATA_QUOTE", "B_CR"
|
|
59
55
|
];
|
|
60
56
|
static modeNames = [
|
|
61
57
|
"DEFAULT_MODE", "SLOTS", "TARGET", "METADATA", "BODY",
|
|
62
58
|
];
|
|
63
59
|
static ruleNames = [
|
|
64
|
-
"
|
|
65
|
-
"
|
|
66
|
-
"
|
|
67
|
-
"
|
|
68
|
-
"
|
|
69
|
-
"
|
|
70
|
-
"
|
|
71
|
-
"SLOTS_LBRACE", "SLOTS_TEXT_L", "SLOTS_L", "SLOTS_COMBINED_TEXT_L",
|
|
72
|
-
"SLOTS_ANNOTATION", "SLOTS_INLINE_BODY", "SLOTS_DIRECT_END", "SLOTS_BODY_OPEN",
|
|
60
|
+
"FENCE", "NAME", "NUM", "L_PATTERN", "LINE_ANCHOR", "DIGIT_ANCHOR",
|
|
61
|
+
"TEXT_COORD", "TEXT_L_PATTERN", "COMBINED_LINE_COORD", "COMBINED_TEXT_COORD",
|
|
62
|
+
"COMBINED_TEXT_L_PATTERN", "EOL", "OPEN", "UNKNOWN_TAG", "WS", "THINK_BLOCK",
|
|
63
|
+
"CHANNEL_BLOCK", "TEXT_RUN", "TEXT_TICK", "SLOTS_NEXT_OPENER", "SLOTS_WS",
|
|
64
|
+
"SLOTS_LPAREN", "SLOTS_LBRACKET", "SLOTS_TEXT_L", "SLOTS_L", "SLOTS_COMBINED_TEXT_L",
|
|
65
|
+
"SLOTS_ASIDE", "SLOTS_ASIDE_OPEN", "SLOTS_END", "SLOTS_INLINE_BODY",
|
|
66
|
+
"SLOTS_NEXT_HEADING", "SLOTS_BODY_OPEN", "TARGET_FENCE", "TARGET_BODY_OPEN",
|
|
73
67
|
"TARGET_ESCAPE", "TARGET_INNER", "TARGET_BACKSLASH", "TARGET_NEST_OPEN",
|
|
74
|
-
"TARGET_NEST_END", "
|
|
75
|
-
"
|
|
76
|
-
"
|
|
77
|
-
"
|
|
68
|
+
"TARGET_NEST_END", "TARGET_TEXT_SCOPE", "TARGET_SCOPE", "TARGET_TICK",
|
|
69
|
+
"TARGET_END", "METADATA_FENCE", "METADATA_BODY_OPEN", "METADATA_STRING",
|
|
70
|
+
"METADATA_INNER", "METADATA_TICK", "METADATA_QUOTE", "METADATA_NEST_OPEN",
|
|
71
|
+
"METADATA_NEST_END", "METADATA_END", "B_END", "B_EMPTY_END", "B_NEXT_HEADING",
|
|
72
|
+
"B_RUN", "B_TICK", "B_CRLF", "B_LF", "B_CR",
|
|
78
73
|
];
|
|
79
|
-
activeDelimiter = null;
|
|
80
74
|
openOp = "";
|
|
81
75
|
openHeading = "";
|
|
82
76
|
openHeadingLine = 0;
|
|
83
77
|
openHeadingColumn = 0;
|
|
78
|
+
fenceLength = 0;
|
|
79
|
+
fenceDelimiter = "";
|
|
80
|
+
started = false;
|
|
81
|
+
// {§inline-chain} — a closer on the heading line may be followed by the next opener on the same line.
|
|
82
|
+
inlineChain = false;
|
|
83
|
+
unclosedAsides = [];
|
|
84
|
+
// After a closer's text, does an opener (backticks, digits, a known name) follow on the same line?
|
|
85
|
+
openerFollows() {
|
|
86
|
+
let cursor = 1;
|
|
87
|
+
while (this.inputStream.LA(cursor) === 0x20 || this.inputStream.LA(cursor) === 0x09)
|
|
88
|
+
cursor++;
|
|
89
|
+
let ticks = 0;
|
|
90
|
+
while (this.inputStream.LA(cursor) === 0x60) {
|
|
91
|
+
ticks++;
|
|
92
|
+
cursor++;
|
|
93
|
+
}
|
|
94
|
+
if (ticks < 3)
|
|
95
|
+
return false;
|
|
96
|
+
while (this.inputStream.LA(cursor) >= 0x30 && this.inputStream.LA(cursor) <= 0x39)
|
|
97
|
+
cursor++;
|
|
98
|
+
let name = "";
|
|
99
|
+
for (;;) {
|
|
100
|
+
const c = this.inputStream.LA(cursor);
|
|
101
|
+
if (c <= 0)
|
|
102
|
+
break;
|
|
103
|
+
const ch = String.fromCharCode(c);
|
|
104
|
+
if (!/[A-Za-z0-9_.+-]/.test(ch))
|
|
105
|
+
break;
|
|
106
|
+
name += ch;
|
|
107
|
+
cursor++;
|
|
108
|
+
}
|
|
109
|
+
return name !== "" && (Object.hasOwn(plurnkLexer.OPERATIONS, name) || this.knownExecutor(name));
|
|
110
|
+
}
|
|
111
|
+
noteUnclosedAside() {
|
|
112
|
+
this.unclosedAsides.push({ line: this.currentTokenStartLine, column: this.currentTokenColumn });
|
|
113
|
+
}
|
|
114
|
+
takeUnclosedAsides() {
|
|
115
|
+
const taken = this.unclosedAsides;
|
|
116
|
+
this.unclosedAsides = [];
|
|
117
|
+
return taken;
|
|
118
|
+
}
|
|
119
|
+
asideClosesOnLine() {
|
|
120
|
+
let cursor = 1;
|
|
121
|
+
for (;;) {
|
|
122
|
+
const c = this.inputStream.LA(cursor);
|
|
123
|
+
if (c <= 0 || c === 0x0A || c === 0x0D)
|
|
124
|
+
return false;
|
|
125
|
+
if (c === 0x2D && this.inputStream.LA(cursor + 1) === 0x2D && this.inputStream.LA(cursor + 2) === 0x3E)
|
|
126
|
+
return true;
|
|
127
|
+
cursor++;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
// {§fence-heading-in-body} - tags that end an open block from inside it; the host adds executors.
|
|
131
|
+
knownExecutors = new Set(["sh"]);
|
|
132
|
+
// {§executor-case} - an executor tag matches its registered name in any case (`SH` is `sh`).
|
|
133
|
+
knownExecutor(name) {
|
|
134
|
+
if (this.knownExecutors.has(name))
|
|
135
|
+
return true;
|
|
136
|
+
const lower = name.toLowerCase();
|
|
137
|
+
for (const known of this.knownExecutors)
|
|
138
|
+
if (known.toLowerCase() === lower)
|
|
139
|
+
return true;
|
|
140
|
+
return false;
|
|
141
|
+
}
|
|
84
142
|
slotReady = false;
|
|
85
143
|
targetDepth = 0;
|
|
86
144
|
metadataDepth = 0;
|
|
87
145
|
metadataReady = false;
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
for (let i = 0; i < literal.length; i++) {
|
|
104
|
-
if (this.inputStream.LA(offset + i) !== literal.charCodeAt(i))
|
|
105
|
-
return false;
|
|
106
|
-
}
|
|
107
|
-
return true;
|
|
146
|
+
inlineBody = false;
|
|
147
|
+
inlineBodies = [];
|
|
148
|
+
unknownTags = [];
|
|
149
|
+
// {§interstitial-fence} - only a native operation or a known executor opens a block.
|
|
150
|
+
knownHeading() {
|
|
151
|
+
const name = this.text.replace(/^\x60+[0-9]*/, "");
|
|
152
|
+
return Object.hasOwn(plurnkLexer.OPERATIONS, name) || this.knownExecutor(name);
|
|
153
|
+
}
|
|
154
|
+
noteUnknownTag() {
|
|
155
|
+
this.unknownTags.push({ line: this.currentTokenStartLine, column: this.currentTokenColumn, tag: this.text.replace(/^\x60+[0-9]*/, "") });
|
|
156
|
+
}
|
|
157
|
+
takeUnknownTags() {
|
|
158
|
+
const taken = this.unknownTags;
|
|
159
|
+
this.unknownTags = [];
|
|
160
|
+
return taken;
|
|
108
161
|
}
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
let delimiter = "";
|
|
132
|
-
while (this.isDelimiterChar(this.inputStream.LA(cursor))) {
|
|
133
|
-
delimiter += String.fromCharCode(this.inputStream.LA(cursor));
|
|
134
|
-
cursor++;
|
|
135
|
-
}
|
|
136
|
-
const next = this.inputStream.LA(cursor);
|
|
137
|
-
const headerContinues = next <= 0
|
|
138
|
-
|| next === 0x20 || next === 0x09
|
|
139
|
-
|| next === 0x5B || next === 0x28 || next === 0x7B || next === 0x3C
|
|
140
|
-
|| next === 0x0A || next === 0x0D;
|
|
141
|
-
if (!headerContinues)
|
|
142
|
-
return null;
|
|
143
|
-
const startsNextTurn = this.terminalSend;
|
|
144
|
-
if (this.activeDelimiter !== null && delimiter !== this.activeDelimiter && !startsNextTurn)
|
|
145
|
-
return null;
|
|
146
|
-
return { level, op, delimiter };
|
|
147
|
-
}
|
|
148
|
-
matchesHeading(level, op) {
|
|
149
|
-
// The initial PLAN terminates tolerated provider preamble text, even when
|
|
150
|
-
// the provider omitted a separating newline. Once PLAN establishes the
|
|
151
|
-
// lane, every heading retains the ordinary column-zero boundary.
|
|
152
|
-
const initialPlan = level === 1 && op === "PLAN" && this.activeDelimiter === null;
|
|
153
|
-
if (this.column !== 0 && !initialPlan)
|
|
154
|
-
return false;
|
|
155
|
-
const heading = this.headingAt(1);
|
|
156
|
-
return heading !== null && heading.level === level && heading.op === op;
|
|
157
|
-
}
|
|
158
|
-
open(level, op) {
|
|
159
|
-
const prefixLength = (level === 1 ? "## " : "### ").length + op.length;
|
|
160
|
-
const delimiter = this.text.slice(prefixLength);
|
|
161
|
-
const startsNextTurn = this.terminalSend;
|
|
162
|
-
if (this.activeDelimiter === null || startsNextTurn)
|
|
163
|
-
this.activeDelimiter = delimiter;
|
|
164
|
-
this.openOp = op;
|
|
162
|
+
static OPERATIONS = {
|
|
163
|
+
FIND: plurnkLexer.OPEN_FIND, READ: plurnkLexer.OPEN_READ,
|
|
164
|
+
EDIT: plurnkLexer.OPEN_EDIT, COPY: plurnkLexer.OPEN_COPY, MOVE: plurnkLexer.OPEN_MOVE,
|
|
165
|
+
SEND: plurnkLexer.OPEN_SEND, EXEC: plurnkLexer.OPEN_EXEC, BARE: plurnkLexer.OPEN_BARE,
|
|
166
|
+
TASK: plurnkLexer.OPEN_TASK,
|
|
167
|
+
WORK: plurnkLexer.OPEN_WORK, FORK: plurnkLexer.OPEN_FORK, KILL: plurnkLexer.OPEN_KILL,
|
|
168
|
+
LOOK: plurnkLexer.OPEN_LOOK,
|
|
169
|
+
};
|
|
170
|
+
open(implicitName) {
|
|
171
|
+
this.fenceLength = 0;
|
|
172
|
+
while (this.text.charCodeAt(this.fenceLength) === 0x60)
|
|
173
|
+
this.fenceLength++;
|
|
174
|
+
// {§numeric-delimiter} - digits between the backticks and the name identify the block.
|
|
175
|
+
let digits = this.fenceLength;
|
|
176
|
+
while (this.text.charCodeAt(digits) >= 0x30 && this.text.charCodeAt(digits) <= 0x39)
|
|
177
|
+
digits++;
|
|
178
|
+
this.fenceDelimiter = this.text.slice(this.fenceLength, digits);
|
|
179
|
+
const name = implicitName ?? this.text.slice(digits);
|
|
180
|
+
const native = Object.hasOwn(plurnkLexer.OPERATIONS, name) ? plurnkLexer.OPERATIONS[name] : undefined;
|
|
181
|
+
this.openOp = native === undefined ? "EXEC" : name;
|
|
182
|
+
this.type = native ?? plurnkLexer.OPEN_EXEC;
|
|
183
|
+
this.inlineChain = false;
|
|
165
184
|
this.openHeading = this.text;
|
|
166
185
|
this.openHeadingLine = this.currentTokenStartLine;
|
|
167
186
|
this.openHeadingColumn = this.currentTokenColumn;
|
|
187
|
+
this.started = true;
|
|
168
188
|
this.slotReady = true;
|
|
169
|
-
// {§
|
|
170
|
-
this.metadataReady =
|
|
171
|
-
this.
|
|
172
|
-
|
|
189
|
+
// {§one-line-turn} - TASK takes its inventory as a heading-line block; a bracket there is a slot.
|
|
190
|
+
this.metadataReady = this.openOp === "EXEC" || this.openOp === "TASK";
|
|
191
|
+
this.inlineBody = false;
|
|
192
|
+
}
|
|
193
|
+
// {§indented-fences} - a fence line may carry leading horizontal whitespace; the line still
|
|
194
|
+
// starts there for every fence purpose (CommonMark allows three spaces; this allows any).
|
|
195
|
+
atLineStart() {
|
|
196
|
+
for (let back = 1;; back++) {
|
|
197
|
+
const c = this.inputStream.LA(-back);
|
|
198
|
+
if (c <= 0 || c === 0x0A || c === 0x0D)
|
|
199
|
+
return true;
|
|
200
|
+
if (c !== 0x20 && c !== 0x09)
|
|
201
|
+
return false;
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
skipHorizontal(offset) {
|
|
205
|
+
while (this.inputStream.LA(offset) === 0x20 || this.inputStream.LA(offset) === 0x09)
|
|
206
|
+
offset++;
|
|
207
|
+
return offset;
|
|
173
208
|
}
|
|
174
209
|
offsetAfterEol(offset) {
|
|
175
210
|
if (this.inputStream.LA(offset) === 0x0D && this.inputStream.LA(offset + 1) === 0x0A)
|
|
176
211
|
return offset + 2;
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
212
|
+
return this.inputStream.LA(offset) === 0x0A ? offset + 1 : null;
|
|
213
|
+
}
|
|
214
|
+
// {§fence-closer} - a closer is a line of at least the opener's backticks carrying exactly the
|
|
215
|
+
// opener's numeric delimiter (none when the opener had none). Count is CommonMark's rule; the
|
|
216
|
+
// delimiter is what lets an equal-count block nest ({§numeric-delimiter}).
|
|
217
|
+
closingAt(offset) {
|
|
218
|
+
if (this.inputStream.LA(offset === 1 ? -1 : offset - 1) === 0x60)
|
|
219
|
+
return false;
|
|
220
|
+
offset = this.skipHorizontal(offset);
|
|
221
|
+
let cursor = offset;
|
|
222
|
+
while (this.inputStream.LA(cursor) === 0x60)
|
|
223
|
+
cursor++;
|
|
224
|
+
if (cursor - offset < this.fenceLength)
|
|
225
|
+
return false;
|
|
226
|
+
let digits = "";
|
|
227
|
+
while (this.inputStream.LA(cursor) >= 0x30 && this.inputStream.LA(cursor) <= 0x39) {
|
|
228
|
+
digits += String.fromCharCode(this.inputStream.LA(cursor));
|
|
229
|
+
cursor++;
|
|
230
|
+
}
|
|
231
|
+
if (digits !== this.fenceDelimiter)
|
|
232
|
+
return false;
|
|
233
|
+
while (this.inputStream.LA(cursor) === 0x20 || this.inputStream.LA(cursor) === 0x09)
|
|
234
|
+
cursor++;
|
|
235
|
+
if (this.inputStream.LA(cursor) <= 0 || this.offsetAfterEol(cursor) !== null)
|
|
236
|
+
return true;
|
|
237
|
+
// {§inline-chain} — a closer followed on its line by the next opener still closes.
|
|
238
|
+
let ticks = 0;
|
|
239
|
+
while (this.inputStream.LA(cursor + ticks) === 0x60)
|
|
240
|
+
ticks++;
|
|
241
|
+
if (ticks < 3)
|
|
242
|
+
return false;
|
|
243
|
+
let at = cursor + ticks;
|
|
244
|
+
while (this.inputStream.LA(at) >= 0x30 && this.inputStream.LA(at) <= 0x39)
|
|
245
|
+
at++;
|
|
246
|
+
let name = "";
|
|
247
|
+
for (;;) {
|
|
248
|
+
const c = this.inputStream.LA(at);
|
|
249
|
+
if (c <= 0)
|
|
250
|
+
break;
|
|
251
|
+
const ch = String.fromCharCode(c);
|
|
252
|
+
if (!/[A-Za-z0-9_.+-]/.test(ch))
|
|
253
|
+
break;
|
|
254
|
+
name += ch;
|
|
255
|
+
at++;
|
|
256
|
+
}
|
|
257
|
+
return name !== "" && (Object.hasOwn(plurnkLexer.OPERATIONS, name) || this.knownExecutor(name));
|
|
258
|
+
}
|
|
259
|
+
// {§fence-heading-in-body} - a fence line of four or more backticks naming an operation or a known
|
|
260
|
+
// executor is a heading wherever it stands: it ends the open block without closing it, so a
|
|
261
|
+
// glued opener (eight backticks then READ) can never swallow the turn. A delimited block is exempt: its
|
|
262
|
+
// delimiter says everything up to its own closer is body ({§numeric-delimiter}).
|
|
263
|
+
headingAt(offset) {
|
|
264
|
+
let cursor = offset;
|
|
265
|
+
while (this.inputStream.LA(cursor) === 0x60)
|
|
266
|
+
cursor++;
|
|
267
|
+
if (cursor - offset < 4)
|
|
268
|
+
return false;
|
|
269
|
+
while (this.inputStream.LA(cursor) >= 0x30 && this.inputStream.LA(cursor) <= 0x39)
|
|
270
|
+
cursor++;
|
|
271
|
+
let name = "";
|
|
272
|
+
for (;;) {
|
|
273
|
+
const c = this.inputStream.LA(cursor);
|
|
274
|
+
if (c <= 0)
|
|
275
|
+
break;
|
|
276
|
+
const ch = String.fromCharCode(c);
|
|
277
|
+
if (!/[A-Za-z0-9_.+-]/.test(ch))
|
|
278
|
+
break;
|
|
279
|
+
name += ch;
|
|
280
|
+
cursor++;
|
|
281
|
+
}
|
|
282
|
+
if (name === "")
|
|
283
|
+
return false;
|
|
284
|
+
if (!Object.hasOwn(plurnkLexer.OPERATIONS, name) && !this.knownExecutor(name))
|
|
285
|
+
return false;
|
|
286
|
+
const next = this.inputStream.LA(cursor);
|
|
287
|
+
return next <= 0 || next === 0x20 || next === 0x09 || next === 0x28 || next === 0x3C || next === 0x5B
|
|
288
|
+
|| this.offsetAfterEol(cursor) !== null;
|
|
180
289
|
}
|
|
181
|
-
|
|
290
|
+
headingAfterEol() {
|
|
182
291
|
const after = this.offsetAfterEol(1);
|
|
183
|
-
return after !== null && this.headingAt(after)
|
|
292
|
+
return after !== null && this.headingAt(this.skipHorizontal(after));
|
|
184
293
|
}
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
294
|
+
closingAfterEol() {
|
|
295
|
+
const after = this.offsetAfterEol(1);
|
|
296
|
+
return after !== null && this.closingAt(this.skipHorizontal(after));
|
|
297
|
+
}
|
|
298
|
+
targetScopeEnd() {
|
|
299
|
+
let offset = 1;
|
|
300
|
+
while (this.inputStream.LA(offset) === 0x20 || this.inputStream.LA(offset) === 0x09)
|
|
301
|
+
offset++;
|
|
302
|
+
return this.targetDepth === 0 && this.inputStream.LA(offset) === 0x29;
|
|
303
|
+
}
|
|
304
|
+
inlineBodyAhead() {
|
|
305
|
+
const previous = this.inputStream.LA(-1);
|
|
306
|
+
return previous === 0x20 || previous === 0x09;
|
|
193
307
|
}
|
|
194
|
-
headingAfterEmptySpacedLine() {
|
|
195
|
-
if (!this.bodyAtStart)
|
|
196
|
-
return false;
|
|
197
|
-
let after = 1;
|
|
198
|
-
while (this.inputStream.LA(after) === 0x20 || this.inputStream.LA(after) === 0x09)
|
|
199
|
-
after++;
|
|
200
|
-
const lineEnd = this.offsetAfterEol(after);
|
|
201
|
-
return lineEnd !== null && this.headingAt(lineEnd) !== null;
|
|
202
|
-
}
|
|
203
|
-
beginBody() { this.bodyAtStart = true; }
|
|
204
|
-
retainBody() { this.bodyAtStart = false; }
|
|
205
|
-
// {§heading-inline-body} — body text on the heading line is tolerated AND announced: the
|
|
206
|
-
// parser turns each note into one warning-severity advisory after the statement.
|
|
207
|
-
inlineBodies = [];
|
|
208
308
|
noteInlineBody() {
|
|
309
|
+
this.inlineBody = true;
|
|
310
|
+
// {§naked-pattern} - a sigil is a matcher on any heading, and every heading-line word on FIND,
|
|
311
|
+
// READ or KILL is one, so only a bodied operation's stray heading text is worth an advisory.
|
|
312
|
+
const first = this.text.charCodeAt(0);
|
|
313
|
+
if (first === 0x2F || first === 0x24 || first === 0x7E || first === 0x26 || first === 0x5E)
|
|
314
|
+
return;
|
|
315
|
+
if (this.openOp === "FIND" || this.openOp === "READ" || this.openOp === "KILL")
|
|
316
|
+
return;
|
|
209
317
|
this.inlineBodies.push({ line: this.getOpenTagLine(), column: this.getOpenTagColumn(), heading: this.getOpenHeading() });
|
|
210
318
|
}
|
|
211
319
|
takeInlineBodies() {
|
|
@@ -213,26 +321,16 @@ export class plurnkLexer extends antlr.Lexer {
|
|
|
213
321
|
this.inlineBodies = [];
|
|
214
322
|
return taken;
|
|
215
323
|
}
|
|
216
|
-
|
|
217
|
-
|
|
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.activeDelimiter ?? ""); }
|
|
324
|
+
getOpenTag() { return this.openOp; }
|
|
325
|
+
getOpenOp() { return this.openOp; }
|
|
224
326
|
getOpenTagLine() { return this.openHeadingLine; }
|
|
225
327
|
getOpenTagColumn() { return this.openHeadingColumn; }
|
|
226
328
|
getOpenHeading() { return this.openHeading; }
|
|
227
|
-
|
|
329
|
+
getFenceLength() { return this.fenceLength; }
|
|
228
330
|
isTextCoordinateOp() {
|
|
229
331
|
return this.openOp === "READ" || this.openOp === "EDIT" || this.openOp === "COPY" || this.openOp === "MOVE"
|
|
230
332
|
|| this.openOp === "KILL" || this.openOp === "LOOK";
|
|
231
333
|
}
|
|
232
|
-
inlineBodyAhead() {
|
|
233
|
-
const previous = this.inputStream.LA(-1);
|
|
234
|
-
return previous === 0x20 || previous === 0x09;
|
|
235
|
-
}
|
|
236
334
|
constructor(input) {
|
|
237
335
|
super(input);
|
|
238
336
|
this.interpreter = new antlr.LexerATNSimulator(this, plurnkLexer._ATN, plurnkLexer.decisionsToDFA, new antlr.PredictionContextCache());
|
|
@@ -246,659 +344,452 @@ export class plurnkLexer extends antlr.Lexer {
|
|
|
246
344
|
get modeNames() { return plurnkLexer.modeNames; }
|
|
247
345
|
action(localContext, ruleIndex, actionIndex) {
|
|
248
346
|
switch (ruleIndex) {
|
|
249
|
-
case 10:
|
|
250
|
-
this.OPEN_PLAN_action(localContext, actionIndex);
|
|
251
|
-
break;
|
|
252
|
-
case 11:
|
|
253
|
-
this.OPEN_FIND_action(localContext, actionIndex);
|
|
254
|
-
break;
|
|
255
347
|
case 12:
|
|
256
|
-
this.
|
|
348
|
+
this.OPEN_action(localContext, actionIndex);
|
|
257
349
|
break;
|
|
258
350
|
case 13:
|
|
259
|
-
this.
|
|
260
|
-
break;
|
|
261
|
-
case 14:
|
|
262
|
-
this.OPEN_COPY_action(localContext, actionIndex);
|
|
263
|
-
break;
|
|
264
|
-
case 15:
|
|
265
|
-
this.OPEN_MOVE_action(localContext, actionIndex);
|
|
266
|
-
break;
|
|
267
|
-
case 16:
|
|
268
|
-
this.OPEN_SEND_action(localContext, actionIndex);
|
|
351
|
+
this.UNKNOWN_TAG_action(localContext, actionIndex);
|
|
269
352
|
break;
|
|
270
353
|
case 17:
|
|
271
|
-
this.
|
|
354
|
+
this.TEXT_RUN_action(localContext, actionIndex);
|
|
272
355
|
break;
|
|
273
356
|
case 18:
|
|
274
|
-
this.
|
|
357
|
+
this.TEXT_TICK_action(localContext, actionIndex);
|
|
275
358
|
break;
|
|
276
359
|
case 19:
|
|
277
|
-
this.
|
|
360
|
+
this.SLOTS_NEXT_OPENER_action(localContext, actionIndex);
|
|
278
361
|
break;
|
|
279
362
|
case 20:
|
|
280
|
-
this.
|
|
363
|
+
this.SLOTS_WS_action(localContext, actionIndex);
|
|
281
364
|
break;
|
|
282
365
|
case 21:
|
|
283
|
-
this.
|
|
366
|
+
this.SLOTS_LPAREN_action(localContext, actionIndex);
|
|
284
367
|
break;
|
|
285
368
|
case 22:
|
|
286
|
-
this.
|
|
287
|
-
break;
|
|
288
|
-
case 23:
|
|
289
|
-
this.OPEN_BUFF_action(localContext, actionIndex);
|
|
290
|
-
break;
|
|
291
|
-
case 24:
|
|
292
|
-
this.FENCE_OPEN_action(localContext, actionIndex);
|
|
293
|
-
break;
|
|
294
|
-
case 25:
|
|
295
|
-
this.FENCE_CLOSE_action(localContext, actionIndex);
|
|
296
|
-
break;
|
|
297
|
-
case 31:
|
|
298
|
-
this.SLOTS_WS_action(localContext, actionIndex);
|
|
369
|
+
this.SLOTS_LBRACKET_action(localContext, actionIndex);
|
|
299
370
|
break;
|
|
300
|
-
case
|
|
301
|
-
this.
|
|
302
|
-
break;
|
|
303
|
-
case 33:
|
|
304
|
-
this.SLOTS_EXECUTOR_action(localContext, actionIndex);
|
|
305
|
-
break;
|
|
306
|
-
case 34:
|
|
307
|
-
this.SLOTS_LPAREN_action(localContext, actionIndex);
|
|
371
|
+
case 27:
|
|
372
|
+
this.SLOTS_ASIDE_OPEN_action(localContext, actionIndex);
|
|
308
373
|
break;
|
|
309
|
-
case
|
|
310
|
-
this.
|
|
374
|
+
case 28:
|
|
375
|
+
this.SLOTS_END_action(localContext, actionIndex);
|
|
311
376
|
break;
|
|
312
|
-
case
|
|
377
|
+
case 29:
|
|
313
378
|
this.SLOTS_INLINE_BODY_action(localContext, actionIndex);
|
|
314
379
|
break;
|
|
315
|
-
case
|
|
316
|
-
this.
|
|
380
|
+
case 32:
|
|
381
|
+
this.TARGET_FENCE_action(localContext, actionIndex);
|
|
317
382
|
break;
|
|
318
|
-
case
|
|
383
|
+
case 37:
|
|
319
384
|
this.TARGET_NEST_OPEN_action(localContext, actionIndex);
|
|
320
385
|
break;
|
|
321
|
-
case
|
|
386
|
+
case 38:
|
|
322
387
|
this.TARGET_NEST_END_action(localContext, actionIndex);
|
|
323
388
|
break;
|
|
324
|
-
case
|
|
389
|
+
case 42:
|
|
325
390
|
this.TARGET_END_action(localContext, actionIndex);
|
|
326
391
|
break;
|
|
327
|
-
case
|
|
392
|
+
case 43:
|
|
393
|
+
this.METADATA_FENCE_action(localContext, actionIndex);
|
|
394
|
+
break;
|
|
395
|
+
case 49:
|
|
328
396
|
this.METADATA_NEST_OPEN_action(localContext, actionIndex);
|
|
329
397
|
break;
|
|
330
|
-
case
|
|
398
|
+
case 50:
|
|
331
399
|
this.METADATA_NEST_END_action(localContext, actionIndex);
|
|
332
400
|
break;
|
|
333
|
-
case
|
|
401
|
+
case 51:
|
|
334
402
|
this.METADATA_END_action(localContext, actionIndex);
|
|
335
403
|
break;
|
|
336
|
-
case
|
|
337
|
-
this.
|
|
404
|
+
case 52:
|
|
405
|
+
this.B_END_action(localContext, actionIndex);
|
|
338
406
|
break;
|
|
339
|
-
case
|
|
340
|
-
this.
|
|
407
|
+
case 53:
|
|
408
|
+
this.B_EMPTY_END_action(localContext, actionIndex);
|
|
341
409
|
break;
|
|
342
|
-
case
|
|
410
|
+
case 57:
|
|
343
411
|
this.B_CRLF_action(localContext, actionIndex);
|
|
344
412
|
break;
|
|
345
|
-
case
|
|
413
|
+
case 58:
|
|
346
414
|
this.B_LF_action(localContext, actionIndex);
|
|
347
415
|
break;
|
|
348
|
-
case 61:
|
|
349
|
-
this.B_CR_action(localContext, actionIndex);
|
|
350
|
-
break;
|
|
351
416
|
}
|
|
352
417
|
}
|
|
353
|
-
|
|
418
|
+
OPEN_action(localContext, actionIndex) {
|
|
354
419
|
switch (actionIndex) {
|
|
355
420
|
case 0:
|
|
356
|
-
this.open(
|
|
421
|
+
this.open();
|
|
357
422
|
break;
|
|
358
423
|
}
|
|
359
424
|
}
|
|
360
|
-
|
|
425
|
+
UNKNOWN_TAG_action(localContext, actionIndex) {
|
|
361
426
|
switch (actionIndex) {
|
|
362
427
|
case 1:
|
|
363
|
-
this.
|
|
428
|
+
this.noteUnknownTag();
|
|
364
429
|
break;
|
|
365
430
|
}
|
|
366
431
|
}
|
|
367
|
-
|
|
432
|
+
TEXT_RUN_action(localContext, actionIndex) {
|
|
368
433
|
switch (actionIndex) {
|
|
369
434
|
case 2:
|
|
370
|
-
this.
|
|
435
|
+
this.inlineChain = false;
|
|
371
436
|
break;
|
|
372
437
|
}
|
|
373
438
|
}
|
|
374
|
-
|
|
439
|
+
TEXT_TICK_action(localContext, actionIndex) {
|
|
375
440
|
switch (actionIndex) {
|
|
376
441
|
case 3:
|
|
377
|
-
this.
|
|
442
|
+
this.inlineChain = false;
|
|
378
443
|
break;
|
|
379
444
|
}
|
|
380
445
|
}
|
|
381
|
-
|
|
446
|
+
SLOTS_NEXT_OPENER_action(localContext, actionIndex) {
|
|
382
447
|
switch (actionIndex) {
|
|
383
448
|
case 4:
|
|
384
|
-
this.
|
|
449
|
+
this.inlineChain = true;
|
|
385
450
|
break;
|
|
386
451
|
}
|
|
387
452
|
}
|
|
388
|
-
|
|
453
|
+
SLOTS_WS_action(localContext, actionIndex) {
|
|
389
454
|
switch (actionIndex) {
|
|
390
455
|
case 5:
|
|
391
|
-
this.
|
|
456
|
+
this.slotReady = true;
|
|
392
457
|
break;
|
|
393
458
|
}
|
|
394
459
|
}
|
|
395
|
-
|
|
460
|
+
SLOTS_LPAREN_action(localContext, actionIndex) {
|
|
396
461
|
switch (actionIndex) {
|
|
397
462
|
case 6:
|
|
398
|
-
this.
|
|
463
|
+
this.targetDepth = 0;
|
|
464
|
+
this.metadataReady = false;
|
|
399
465
|
break;
|
|
400
466
|
}
|
|
401
467
|
}
|
|
402
|
-
|
|
468
|
+
SLOTS_LBRACKET_action(localContext, actionIndex) {
|
|
403
469
|
switch (actionIndex) {
|
|
404
470
|
case 7:
|
|
405
|
-
this.
|
|
471
|
+
this.metadataDepth = 0;
|
|
406
472
|
break;
|
|
407
473
|
}
|
|
408
474
|
}
|
|
409
|
-
|
|
475
|
+
SLOTS_ASIDE_OPEN_action(localContext, actionIndex) {
|
|
410
476
|
switch (actionIndex) {
|
|
411
477
|
case 8:
|
|
412
|
-
this.
|
|
478
|
+
this.noteUnclosedAside();
|
|
413
479
|
break;
|
|
414
480
|
}
|
|
415
481
|
}
|
|
416
|
-
|
|
482
|
+
SLOTS_END_action(localContext, actionIndex) {
|
|
417
483
|
switch (actionIndex) {
|
|
418
484
|
case 9:
|
|
419
|
-
this.
|
|
485
|
+
this.inlineChain = this.openerFollows();
|
|
420
486
|
break;
|
|
421
487
|
}
|
|
422
488
|
}
|
|
423
|
-
|
|
489
|
+
SLOTS_INLINE_BODY_action(localContext, actionIndex) {
|
|
424
490
|
switch (actionIndex) {
|
|
425
491
|
case 10:
|
|
426
|
-
this.
|
|
492
|
+
this.noteInlineBody();
|
|
427
493
|
break;
|
|
428
494
|
}
|
|
429
495
|
}
|
|
430
|
-
|
|
496
|
+
TARGET_FENCE_action(localContext, actionIndex) {
|
|
431
497
|
switch (actionIndex) {
|
|
432
498
|
case 11:
|
|
433
|
-
this.
|
|
499
|
+
this.inlineChain = this.openerFollows();
|
|
434
500
|
break;
|
|
435
501
|
}
|
|
436
502
|
}
|
|
437
|
-
|
|
503
|
+
TARGET_NEST_OPEN_action(localContext, actionIndex) {
|
|
438
504
|
switch (actionIndex) {
|
|
439
505
|
case 12:
|
|
440
|
-
this.
|
|
506
|
+
this.targetDepth++;
|
|
441
507
|
break;
|
|
442
508
|
}
|
|
443
509
|
}
|
|
444
|
-
|
|
510
|
+
TARGET_NEST_END_action(localContext, actionIndex) {
|
|
445
511
|
switch (actionIndex) {
|
|
446
512
|
case 13:
|
|
447
|
-
this.
|
|
513
|
+
this.targetDepth--;
|
|
448
514
|
break;
|
|
449
515
|
}
|
|
450
516
|
}
|
|
451
|
-
|
|
517
|
+
TARGET_END_action(localContext, actionIndex) {
|
|
452
518
|
switch (actionIndex) {
|
|
453
519
|
case 14:
|
|
454
|
-
this.openDocumentFence();
|
|
455
|
-
break;
|
|
456
|
-
}
|
|
457
|
-
}
|
|
458
|
-
FENCE_CLOSE_action(localContext, actionIndex) {
|
|
459
|
-
switch (actionIndex) {
|
|
460
|
-
case 15:
|
|
461
|
-
this.closeDocumentFence();
|
|
462
|
-
break;
|
|
463
|
-
}
|
|
464
|
-
}
|
|
465
|
-
SLOTS_WS_action(localContext, actionIndex) {
|
|
466
|
-
switch (actionIndex) {
|
|
467
|
-
case 16:
|
|
468
|
-
this.slotReady = true;
|
|
469
|
-
break;
|
|
470
|
-
}
|
|
471
|
-
}
|
|
472
|
-
SLOTS_SEND_LABEL_action(localContext, actionIndex) {
|
|
473
|
-
switch (actionIndex) {
|
|
474
|
-
case 17:
|
|
475
|
-
this.terminalSend = true;
|
|
476
|
-
this.slotReady = true;
|
|
477
|
-
this.metadataReady = false;
|
|
478
|
-
break;
|
|
479
|
-
}
|
|
480
|
-
}
|
|
481
|
-
SLOTS_EXECUTOR_action(localContext, actionIndex) {
|
|
482
|
-
switch (actionIndex) {
|
|
483
|
-
case 18:
|
|
484
520
|
this.slotReady = true;
|
|
485
521
|
this.metadataReady = true;
|
|
486
522
|
break;
|
|
487
523
|
}
|
|
488
524
|
}
|
|
489
|
-
|
|
490
|
-
switch (actionIndex) {
|
|
491
|
-
case 19:
|
|
492
|
-
this.targetDepth = 0;
|
|
493
|
-
this.metadataReady = false;
|
|
494
|
-
break;
|
|
495
|
-
}
|
|
496
|
-
}
|
|
497
|
-
SLOTS_LBRACE_action(localContext, actionIndex) {
|
|
525
|
+
METADATA_FENCE_action(localContext, actionIndex) {
|
|
498
526
|
switch (actionIndex) {
|
|
499
|
-
case
|
|
500
|
-
this.
|
|
501
|
-
break;
|
|
502
|
-
}
|
|
503
|
-
}
|
|
504
|
-
SLOTS_INLINE_BODY_action(localContext, actionIndex) {
|
|
505
|
-
switch (actionIndex) {
|
|
506
|
-
case 21:
|
|
507
|
-
this.noteInlineBody();
|
|
508
|
-
this.retainBody();
|
|
509
|
-
break;
|
|
510
|
-
}
|
|
511
|
-
}
|
|
512
|
-
SLOTS_BODY_OPEN_action(localContext, actionIndex) {
|
|
513
|
-
switch (actionIndex) {
|
|
514
|
-
case 22:
|
|
515
|
-
this.beginBody();
|
|
516
|
-
break;
|
|
517
|
-
}
|
|
518
|
-
}
|
|
519
|
-
TARGET_NEST_OPEN_action(localContext, actionIndex) {
|
|
520
|
-
switch (actionIndex) {
|
|
521
|
-
case 23:
|
|
522
|
-
this.targetDepth++;
|
|
523
|
-
break;
|
|
524
|
-
}
|
|
525
|
-
}
|
|
526
|
-
TARGET_NEST_END_action(localContext, actionIndex) {
|
|
527
|
-
switch (actionIndex) {
|
|
528
|
-
case 24:
|
|
529
|
-
this.targetDepth--;
|
|
530
|
-
break;
|
|
531
|
-
}
|
|
532
|
-
}
|
|
533
|
-
TARGET_END_action(localContext, actionIndex) {
|
|
534
|
-
switch (actionIndex) {
|
|
535
|
-
case 25:
|
|
536
|
-
this.slotReady = true;
|
|
537
|
-
this.metadataReady = true;
|
|
527
|
+
case 15:
|
|
528
|
+
this.inlineChain = this.openerFollows();
|
|
538
529
|
break;
|
|
539
530
|
}
|
|
540
531
|
}
|
|
541
532
|
METADATA_NEST_OPEN_action(localContext, actionIndex) {
|
|
542
533
|
switch (actionIndex) {
|
|
543
|
-
case
|
|
534
|
+
case 16:
|
|
544
535
|
this.metadataDepth++;
|
|
545
536
|
break;
|
|
546
537
|
}
|
|
547
538
|
}
|
|
548
539
|
METADATA_NEST_END_action(localContext, actionIndex) {
|
|
549
540
|
switch (actionIndex) {
|
|
550
|
-
case
|
|
541
|
+
case 17:
|
|
551
542
|
this.metadataDepth--;
|
|
552
543
|
break;
|
|
553
544
|
}
|
|
554
545
|
}
|
|
555
546
|
METADATA_END_action(localContext, actionIndex) {
|
|
556
547
|
switch (actionIndex) {
|
|
557
|
-
case
|
|
548
|
+
case 18:
|
|
558
549
|
this.slotReady = true;
|
|
559
550
|
this.metadataReady = true;
|
|
560
551
|
break;
|
|
561
552
|
}
|
|
562
553
|
}
|
|
563
|
-
|
|
554
|
+
B_END_action(localContext, actionIndex) {
|
|
564
555
|
switch (actionIndex) {
|
|
565
|
-
case
|
|
566
|
-
this.
|
|
556
|
+
case 19:
|
|
557
|
+
this.inlineChain = this.openerFollows();
|
|
567
558
|
break;
|
|
568
559
|
}
|
|
569
560
|
}
|
|
570
|
-
|
|
561
|
+
B_EMPTY_END_action(localContext, actionIndex) {
|
|
571
562
|
switch (actionIndex) {
|
|
572
|
-
case
|
|
573
|
-
this.
|
|
563
|
+
case 20:
|
|
564
|
+
this.inlineChain = this.openerFollows();
|
|
574
565
|
break;
|
|
575
566
|
}
|
|
576
567
|
}
|
|
577
568
|
B_CRLF_action(localContext, actionIndex) {
|
|
578
569
|
switch (actionIndex) {
|
|
579
|
-
case
|
|
580
|
-
this.
|
|
570
|
+
case 21:
|
|
571
|
+
this.inlineBody = false;
|
|
581
572
|
break;
|
|
582
573
|
}
|
|
583
574
|
}
|
|
584
575
|
B_LF_action(localContext, actionIndex) {
|
|
585
576
|
switch (actionIndex) {
|
|
586
|
-
case
|
|
587
|
-
this.
|
|
588
|
-
break;
|
|
589
|
-
}
|
|
590
|
-
}
|
|
591
|
-
B_CR_action(localContext, actionIndex) {
|
|
592
|
-
switch (actionIndex) {
|
|
593
|
-
case 33:
|
|
594
|
-
this.retainBody();
|
|
577
|
+
case 22:
|
|
578
|
+
this.inlineBody = false;
|
|
595
579
|
break;
|
|
596
580
|
}
|
|
597
581
|
}
|
|
598
582
|
sempred(localContext, ruleIndex, predIndex) {
|
|
599
583
|
switch (ruleIndex) {
|
|
600
|
-
case 10:
|
|
601
|
-
return this.OPEN_PLAN_sempred(localContext, predIndex);
|
|
602
|
-
case 11:
|
|
603
|
-
return this.OPEN_FIND_sempred(localContext, predIndex);
|
|
604
584
|
case 12:
|
|
605
|
-
return this.
|
|
585
|
+
return this.OPEN_sempred(localContext, predIndex);
|
|
606
586
|
case 13:
|
|
607
|
-
return this.
|
|
608
|
-
case 14:
|
|
609
|
-
return this.OPEN_COPY_sempred(localContext, predIndex);
|
|
610
|
-
case 15:
|
|
611
|
-
return this.OPEN_MOVE_sempred(localContext, predIndex);
|
|
612
|
-
case 16:
|
|
613
|
-
return this.OPEN_SEND_sempred(localContext, predIndex);
|
|
614
|
-
case 17:
|
|
615
|
-
return this.OPEN_EXEC_sempred(localContext, predIndex);
|
|
616
|
-
case 18:
|
|
617
|
-
return this.OPEN_BARE_sempred(localContext, predIndex);
|
|
587
|
+
return this.UNKNOWN_TAG_sempred(localContext, predIndex);
|
|
618
588
|
case 19:
|
|
619
|
-
return this.
|
|
620
|
-
case 20:
|
|
621
|
-
return this.OPEN_FORK_sempred(localContext, predIndex);
|
|
589
|
+
return this.SLOTS_NEXT_OPENER_sempred(localContext, predIndex);
|
|
622
590
|
case 21:
|
|
623
|
-
return this.
|
|
591
|
+
return this.SLOTS_LPAREN_sempred(localContext, predIndex);
|
|
624
592
|
case 22:
|
|
625
|
-
return this.
|
|
593
|
+
return this.SLOTS_LBRACKET_sempred(localContext, predIndex);
|
|
626
594
|
case 23:
|
|
627
|
-
return this.
|
|
595
|
+
return this.SLOTS_TEXT_L_sempred(localContext, predIndex);
|
|
628
596
|
case 24:
|
|
629
|
-
return this.
|
|
597
|
+
return this.SLOTS_L_sempred(localContext, predIndex);
|
|
630
598
|
case 25:
|
|
631
|
-
return this.
|
|
599
|
+
return this.SLOTS_COMBINED_TEXT_L_sempred(localContext, predIndex);
|
|
600
|
+
case 26:
|
|
601
|
+
return this.SLOTS_ASIDE_sempred(localContext, predIndex);
|
|
602
|
+
case 27:
|
|
603
|
+
return this.SLOTS_ASIDE_OPEN_sempred(localContext, predIndex);
|
|
604
|
+
case 28:
|
|
605
|
+
return this.SLOTS_END_sempred(localContext, predIndex);
|
|
606
|
+
case 29:
|
|
607
|
+
return this.SLOTS_INLINE_BODY_sempred(localContext, predIndex);
|
|
608
|
+
case 30:
|
|
609
|
+
return this.SLOTS_NEXT_HEADING_sempred(localContext, predIndex);
|
|
632
610
|
case 32:
|
|
633
|
-
return this.
|
|
634
|
-
case 33:
|
|
635
|
-
return this.SLOTS_EXECUTOR_sempred(localContext, predIndex);
|
|
636
|
-
case 34:
|
|
637
|
-
return this.SLOTS_LPAREN_sempred(localContext, predIndex);
|
|
638
|
-
case 35:
|
|
639
|
-
return this.SLOTS_LBRACE_sempred(localContext, predIndex);
|
|
640
|
-
case 36:
|
|
641
|
-
return this.SLOTS_TEXT_L_sempred(localContext, predIndex);
|
|
642
|
-
case 37:
|
|
643
|
-
return this.SLOTS_L_sempred(localContext, predIndex);
|
|
611
|
+
return this.TARGET_FENCE_sempred(localContext, predIndex);
|
|
644
612
|
case 38:
|
|
645
|
-
return this.
|
|
613
|
+
return this.TARGET_NEST_END_sempred(localContext, predIndex);
|
|
646
614
|
case 39:
|
|
647
|
-
return this.
|
|
615
|
+
return this.TARGET_TEXT_SCOPE_sempred(localContext, predIndex);
|
|
648
616
|
case 40:
|
|
649
|
-
return this.
|
|
650
|
-
case
|
|
651
|
-
return this.
|
|
652
|
-
case
|
|
653
|
-
return this.TARGET_NEST_END_sempred(localContext, predIndex);
|
|
654
|
-
case 51:
|
|
617
|
+
return this.TARGET_SCOPE_sempred(localContext, predIndex);
|
|
618
|
+
case 43:
|
|
619
|
+
return this.METADATA_FENCE_sempred(localContext, predIndex);
|
|
620
|
+
case 50:
|
|
655
621
|
return this.METADATA_NEST_END_sempred(localContext, predIndex);
|
|
622
|
+
case 52:
|
|
623
|
+
return this.B_END_sempred(localContext, predIndex);
|
|
656
624
|
case 53:
|
|
657
|
-
return this.
|
|
625
|
+
return this.B_EMPTY_END_sempred(localContext, predIndex);
|
|
658
626
|
case 54:
|
|
659
|
-
return this.
|
|
660
|
-
case 55:
|
|
661
|
-
return this.B_SECTION_END_sempred(localContext, predIndex);
|
|
662
|
-
case 56:
|
|
663
|
-
return this.B_DIRECT_END_sempred(localContext, predIndex);
|
|
664
|
-
case 57:
|
|
665
|
-
return this.B_EMPTY_SPACED_END_sempred(localContext, predIndex);
|
|
627
|
+
return this.B_NEXT_HEADING_sempred(localContext, predIndex);
|
|
666
628
|
}
|
|
667
629
|
return true;
|
|
668
630
|
}
|
|
669
|
-
|
|
631
|
+
OPEN_sempred(localContext, predIndex) {
|
|
670
632
|
switch (predIndex) {
|
|
671
633
|
case 0:
|
|
672
|
-
return this.
|
|
673
|
-
}
|
|
674
|
-
return true;
|
|
675
|
-
}
|
|
676
|
-
OPEN_FIND_sempred(localContext, predIndex) {
|
|
677
|
-
switch (predIndex) {
|
|
634
|
+
return this.atLineStart() || !this.started || this.inlineChain;
|
|
678
635
|
case 1:
|
|
679
|
-
return this.
|
|
636
|
+
return this.knownHeading();
|
|
680
637
|
}
|
|
681
638
|
return true;
|
|
682
639
|
}
|
|
683
|
-
|
|
640
|
+
UNKNOWN_TAG_sempred(localContext, predIndex) {
|
|
684
641
|
switch (predIndex) {
|
|
685
642
|
case 2:
|
|
686
|
-
return this.
|
|
643
|
+
return this.atLineStart() || !this.started;
|
|
687
644
|
}
|
|
688
645
|
return true;
|
|
689
646
|
}
|
|
690
|
-
|
|
647
|
+
SLOTS_NEXT_OPENER_sempred(localContext, predIndex) {
|
|
691
648
|
switch (predIndex) {
|
|
692
649
|
case 3:
|
|
693
|
-
return this.
|
|
650
|
+
return this.slotReady && this.openerFollows();
|
|
694
651
|
}
|
|
695
652
|
return true;
|
|
696
653
|
}
|
|
697
|
-
|
|
654
|
+
SLOTS_LPAREN_sempred(localContext, predIndex) {
|
|
698
655
|
switch (predIndex) {
|
|
699
656
|
case 4:
|
|
700
|
-
return this.
|
|
657
|
+
return this.slotReady;
|
|
701
658
|
}
|
|
702
659
|
return true;
|
|
703
660
|
}
|
|
704
|
-
|
|
661
|
+
SLOTS_LBRACKET_sempred(localContext, predIndex) {
|
|
705
662
|
switch (predIndex) {
|
|
706
663
|
case 5:
|
|
707
|
-
return this.
|
|
664
|
+
return this.slotReady && this.metadataReady;
|
|
708
665
|
}
|
|
709
666
|
return true;
|
|
710
667
|
}
|
|
711
|
-
|
|
668
|
+
SLOTS_TEXT_L_sempred(localContext, predIndex) {
|
|
712
669
|
switch (predIndex) {
|
|
713
670
|
case 6:
|
|
714
|
-
return this.
|
|
671
|
+
return this.slotReady && this.isTextCoordinateOp();
|
|
715
672
|
}
|
|
716
673
|
return true;
|
|
717
674
|
}
|
|
718
|
-
|
|
675
|
+
SLOTS_L_sempred(localContext, predIndex) {
|
|
719
676
|
switch (predIndex) {
|
|
720
677
|
case 7:
|
|
721
|
-
return this.
|
|
678
|
+
return this.slotReady;
|
|
722
679
|
}
|
|
723
680
|
return true;
|
|
724
681
|
}
|
|
725
|
-
|
|
682
|
+
SLOTS_COMBINED_TEXT_L_sempred(localContext, predIndex) {
|
|
726
683
|
switch (predIndex) {
|
|
727
684
|
case 8:
|
|
728
|
-
return this.
|
|
685
|
+
return this.slotReady && this.isTextCoordinateOp();
|
|
729
686
|
}
|
|
730
687
|
return true;
|
|
731
688
|
}
|
|
732
|
-
|
|
689
|
+
SLOTS_ASIDE_sempred(localContext, predIndex) {
|
|
733
690
|
switch (predIndex) {
|
|
734
691
|
case 9:
|
|
735
|
-
return this.
|
|
692
|
+
return this.slotReady;
|
|
736
693
|
}
|
|
737
694
|
return true;
|
|
738
695
|
}
|
|
739
|
-
|
|
696
|
+
SLOTS_ASIDE_OPEN_sempred(localContext, predIndex) {
|
|
740
697
|
switch (predIndex) {
|
|
741
698
|
case 10:
|
|
742
|
-
return this.
|
|
699
|
+
return this.slotReady && !this.asideClosesOnLine();
|
|
743
700
|
}
|
|
744
701
|
return true;
|
|
745
702
|
}
|
|
746
|
-
|
|
703
|
+
SLOTS_END_sempred(localContext, predIndex) {
|
|
747
704
|
switch (predIndex) {
|
|
748
705
|
case 11:
|
|
749
|
-
return this.
|
|
706
|
+
return this.closingAt(1);
|
|
750
707
|
}
|
|
751
708
|
return true;
|
|
752
709
|
}
|
|
753
|
-
|
|
710
|
+
SLOTS_INLINE_BODY_sempred(localContext, predIndex) {
|
|
754
711
|
switch (predIndex) {
|
|
755
712
|
case 12:
|
|
756
|
-
return this.
|
|
713
|
+
return this.slotReady && this.inlineBodyAhead();
|
|
757
714
|
}
|
|
758
715
|
return true;
|
|
759
716
|
}
|
|
760
|
-
|
|
717
|
+
SLOTS_NEXT_HEADING_sempred(localContext, predIndex) {
|
|
761
718
|
switch (predIndex) {
|
|
762
719
|
case 13:
|
|
763
|
-
return this.
|
|
720
|
+
return this.fenceDelimiter === "" && this.headingAfterEol();
|
|
764
721
|
}
|
|
765
722
|
return true;
|
|
766
723
|
}
|
|
767
|
-
|
|
724
|
+
TARGET_FENCE_sempred(localContext, predIndex) {
|
|
768
725
|
switch (predIndex) {
|
|
769
726
|
case 14:
|
|
770
|
-
return this.
|
|
727
|
+
return this.closingAt(1);
|
|
771
728
|
}
|
|
772
729
|
return true;
|
|
773
730
|
}
|
|
774
|
-
|
|
731
|
+
TARGET_NEST_END_sempred(localContext, predIndex) {
|
|
775
732
|
switch (predIndex) {
|
|
776
733
|
case 15:
|
|
777
|
-
return this.
|
|
734
|
+
return this.targetDepth > 0;
|
|
778
735
|
}
|
|
779
736
|
return true;
|
|
780
737
|
}
|
|
781
|
-
|
|
738
|
+
TARGET_TEXT_SCOPE_sempred(localContext, predIndex) {
|
|
782
739
|
switch (predIndex) {
|
|
783
740
|
case 16:
|
|
784
|
-
return this.
|
|
785
|
-
}
|
|
786
|
-
return true;
|
|
787
|
-
}
|
|
788
|
-
SLOTS_EXECUTOR_sempred(localContext, predIndex) {
|
|
789
|
-
switch (predIndex) {
|
|
741
|
+
return this.isTextCoordinateOp();
|
|
790
742
|
case 17:
|
|
791
|
-
return this.
|
|
743
|
+
return this.targetScopeEnd();
|
|
792
744
|
}
|
|
793
745
|
return true;
|
|
794
746
|
}
|
|
795
|
-
|
|
747
|
+
TARGET_SCOPE_sempred(localContext, predIndex) {
|
|
796
748
|
switch (predIndex) {
|
|
797
749
|
case 18:
|
|
798
|
-
return this.
|
|
799
|
-
}
|
|
800
|
-
return true;
|
|
801
|
-
}
|
|
802
|
-
SLOTS_LBRACE_sempred(localContext, predIndex) {
|
|
803
|
-
switch (predIndex) {
|
|
750
|
+
return this.openOp === "FIND" || this.openOp === "EXEC" || this.openOp === "SEND";
|
|
804
751
|
case 19:
|
|
805
|
-
return this.
|
|
752
|
+
return this.targetScopeEnd();
|
|
806
753
|
}
|
|
807
754
|
return true;
|
|
808
755
|
}
|
|
809
|
-
|
|
756
|
+
METADATA_FENCE_sempred(localContext, predIndex) {
|
|
810
757
|
switch (predIndex) {
|
|
811
758
|
case 20:
|
|
812
|
-
return this.
|
|
759
|
+
return this.closingAt(1);
|
|
813
760
|
}
|
|
814
761
|
return true;
|
|
815
762
|
}
|
|
816
|
-
|
|
763
|
+
METADATA_NEST_END_sempred(localContext, predIndex) {
|
|
817
764
|
switch (predIndex) {
|
|
818
765
|
case 21:
|
|
819
|
-
return this.
|
|
766
|
+
return this.metadataDepth > 0;
|
|
820
767
|
}
|
|
821
768
|
return true;
|
|
822
769
|
}
|
|
823
|
-
|
|
770
|
+
B_END_sempred(localContext, predIndex) {
|
|
824
771
|
switch (predIndex) {
|
|
825
772
|
case 22:
|
|
826
|
-
return this.
|
|
773
|
+
return this.closingAfterEol();
|
|
827
774
|
}
|
|
828
775
|
return true;
|
|
829
776
|
}
|
|
830
|
-
|
|
777
|
+
B_EMPTY_END_sempred(localContext, predIndex) {
|
|
831
778
|
switch (predIndex) {
|
|
832
779
|
case 23:
|
|
833
|
-
return this.
|
|
780
|
+
return (this.atLineStart() || this.inlineBody) && this.closingAt(1);
|
|
834
781
|
}
|
|
835
782
|
return true;
|
|
836
783
|
}
|
|
837
|
-
|
|
784
|
+
B_NEXT_HEADING_sempred(localContext, predIndex) {
|
|
838
785
|
switch (predIndex) {
|
|
839
786
|
case 24:
|
|
840
|
-
return this.
|
|
841
|
-
}
|
|
842
|
-
return true;
|
|
843
|
-
}
|
|
844
|
-
SLOTS_DIRECT_END_sempred(localContext, predIndex) {
|
|
845
|
-
switch (predIndex) {
|
|
846
|
-
case 25:
|
|
847
|
-
return this.headingAfterDirectEol();
|
|
848
|
-
}
|
|
849
|
-
return true;
|
|
850
|
-
}
|
|
851
|
-
TARGET_NEST_END_sempred(localContext, predIndex) {
|
|
852
|
-
switch (predIndex) {
|
|
853
|
-
case 26:
|
|
854
|
-
return this.targetDepth > 0;
|
|
855
|
-
}
|
|
856
|
-
return true;
|
|
857
|
-
}
|
|
858
|
-
METADATA_NEST_END_sempred(localContext, predIndex) {
|
|
859
|
-
switch (predIndex) {
|
|
860
|
-
case 27:
|
|
861
|
-
return this.metadataDepth > 0;
|
|
862
|
-
}
|
|
863
|
-
return true;
|
|
864
|
-
}
|
|
865
|
-
B_FENCE_CLOSE_sempred(localContext, predIndex) {
|
|
866
|
-
switch (predIndex) {
|
|
867
|
-
case 28:
|
|
868
|
-
return this.column === 0 && this.inDocumentFence();
|
|
869
|
-
}
|
|
870
|
-
return true;
|
|
871
|
-
}
|
|
872
|
-
B_FENCE_END_sempred(localContext, predIndex) {
|
|
873
|
-
switch (predIndex) {
|
|
874
|
-
case 29:
|
|
875
|
-
return this.inDocumentFence() && this.fenceAfterDirectEol();
|
|
876
|
-
}
|
|
877
|
-
return true;
|
|
878
|
-
}
|
|
879
|
-
B_SECTION_END_sempred(localContext, predIndex) {
|
|
880
|
-
switch (predIndex) {
|
|
881
|
-
case 30:
|
|
882
|
-
return this.headingAfterBlankLine();
|
|
883
|
-
}
|
|
884
|
-
return true;
|
|
885
|
-
}
|
|
886
|
-
B_DIRECT_END_sempred(localContext, predIndex) {
|
|
887
|
-
switch (predIndex) {
|
|
888
|
-
case 31:
|
|
889
|
-
return this.headingAfterDirectEol();
|
|
890
|
-
}
|
|
891
|
-
return true;
|
|
892
|
-
}
|
|
893
|
-
B_EMPTY_SPACED_END_sempred(localContext, predIndex) {
|
|
894
|
-
switch (predIndex) {
|
|
895
|
-
case 32:
|
|
896
|
-
return this.headingAfterEmptySpacedLine();
|
|
787
|
+
return this.fenceDelimiter === "" && this.headingAfterEol();
|
|
897
788
|
}
|
|
898
789
|
return true;
|
|
899
790
|
}
|
|
900
791
|
static _serializedATN = [
|
|
901
|
-
4, 0,
|
|
792
|
+
4, 0, 32, 684, 6, -1, 6, -1, 6, -1, 6, -1, 6, -1, 2, 0, 7, 0, 2, 1, 7, 1, 2, 2, 7, 2, 2, 3,
|
|
902
793
|
7, 3, 2, 4, 7, 4, 2, 5, 7, 5, 2, 6, 7, 6, 2, 7, 7, 7, 2, 8, 7, 8, 2, 9, 7, 9, 2, 10, 7, 10, 2,
|
|
903
794
|
11, 7, 11, 2, 12, 7, 12, 2, 13, 7, 13, 2, 14, 7, 14, 2, 15, 7, 15, 2, 16, 7, 16, 2, 17, 7,
|
|
904
795
|
17, 2, 18, 7, 18, 2, 19, 7, 19, 2, 20, 7, 20, 2, 21, 7, 21, 2, 22, 7, 22, 2, 23, 7, 23, 2,
|
|
@@ -907,296 +798,251 @@ export class plurnkLexer extends antlr.Lexer {
|
|
|
907
798
|
37, 7, 37, 2, 38, 7, 38, 2, 39, 7, 39, 2, 40, 7, 40, 2, 41, 7, 41, 2, 42, 7, 42, 2, 43, 7,
|
|
908
799
|
43, 2, 44, 7, 44, 2, 45, 7, 45, 2, 46, 7, 46, 2, 47, 7, 47, 2, 48, 7, 48, 2, 49, 7, 49, 2,
|
|
909
800
|
50, 7, 50, 2, 51, 7, 51, 2, 52, 7, 52, 2, 53, 7, 53, 2, 54, 7, 54, 2, 55, 7, 55, 2, 56, 7,
|
|
910
|
-
56, 2, 57, 7, 57, 2, 58, 7, 58, 2, 59, 7, 59,
|
|
911
|
-
|
|
912
|
-
1,
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
1, 5, 3, 5,
|
|
916
|
-
6,
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
1, 11, 1,
|
|
921
|
-
1,
|
|
922
|
-
|
|
923
|
-
1,
|
|
924
|
-
|
|
925
|
-
1,
|
|
926
|
-
1,
|
|
927
|
-
1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16,
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
1,
|
|
931
|
-
1,
|
|
932
|
-
1,
|
|
933
|
-
|
|
934
|
-
|
|
935
|
-
1,
|
|
936
|
-
1,
|
|
937
|
-
|
|
938
|
-
1,
|
|
939
|
-
1,
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
1,
|
|
944
|
-
1,
|
|
945
|
-
1,
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
1,
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
1,
|
|
956
|
-
1,
|
|
957
|
-
1,
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
1, 0,
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
0, 0, 0,
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
0, 0,
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
0, 0,
|
|
985
|
-
|
|
986
|
-
1, 0, 0, 0,
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
0, 0,
|
|
992
|
-
|
|
993
|
-
|
|
994
|
-
0, 0,
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
0,
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
0,
|
|
1001
|
-
0,
|
|
1002
|
-
|
|
1003
|
-
0,
|
|
1004
|
-
0,
|
|
1005
|
-
0,
|
|
1006
|
-
0,
|
|
1007
|
-
0,
|
|
1008
|
-
0,
|
|
1009
|
-
0,
|
|
1010
|
-
0,
|
|
1011
|
-
0,
|
|
1012
|
-
0,
|
|
1013
|
-
0, 0, 0,
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
0, 0,
|
|
1018
|
-
0, 0,
|
|
1019
|
-
0, 0,
|
|
1020
|
-
0, 0,
|
|
1021
|
-
|
|
1022
|
-
0, 0,
|
|
1023
|
-
0, 0,
|
|
1024
|
-
|
|
1025
|
-
0, 0,
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
0, 0, 0,
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
0, 0,
|
|
1043
|
-
0, 0, 0,
|
|
1044
|
-
|
|
1045
|
-
5,
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
0,
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
-
|
|
1058
|
-
|
|
1059
|
-
|
|
1060
|
-
|
|
1061
|
-
|
|
1062
|
-
|
|
1063
|
-
0,
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
0,
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
0, 0,
|
|
1085
|
-
0, 0, 0,
|
|
1086
|
-
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
-
|
|
1091
|
-
|
|
1092
|
-
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
0,
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
0, 0,
|
|
1101
|
-
|
|
1102
|
-
|
|
1103
|
-
|
|
1104
|
-
|
|
1105
|
-
|
|
1106
|
-
|
|
1107
|
-
|
|
1108
|
-
0, 0,
|
|
1109
|
-
0, 0, 0,
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
|
|
1113
|
-
|
|
1114
|
-
0, 0,
|
|
1115
|
-
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
|
|
1119
|
-
0, 0,
|
|
1120
|
-
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
|
|
1125
|
-
1, 0, 0, 0,
|
|
1126
|
-
|
|
1127
|
-
|
|
1128
|
-
|
|
1129
|
-
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
1, 0, 0, 0,
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
1, 0, 0, 0,
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
|
|
1139
|
-
0,
|
|
1140
|
-
1, 0, 0, 0,
|
|
1141
|
-
|
|
1142
|
-
|
|
1143
|
-
|
|
1144
|
-
|
|
1145
|
-
0,
|
|
1146
|
-
0, 0,
|
|
1147
|
-
|
|
1148
|
-
|
|
1149
|
-
|
|
1150
|
-
|
|
1151
|
-
|
|
1152
|
-
|
|
1153
|
-
0,
|
|
1154
|
-
|
|
1155
|
-
11, 0, 0, 681, 682, 1, 0, 0, 0, 682, 683, 6, 43, 41, 0, 683, 92, 1, 0, 0, 0, 684, 686,
|
|
1156
|
-
8, 12, 0, 0, 685, 684, 1, 0, 0, 0, 686, 687, 1, 0, 0, 0, 687, 685, 1, 0, 0, 0, 687, 688,
|
|
1157
|
-
1, 0, 0, 0, 688, 689, 1, 0, 0, 0, 689, 690, 6, 44, 41, 0, 690, 94, 1, 0, 0, 0, 691, 692,
|
|
1158
|
-
5, 92, 0, 0, 692, 693, 1, 0, 0, 0, 693, 694, 6, 45, 41, 0, 694, 96, 1, 0, 0, 0, 695, 696,
|
|
1159
|
-
5, 40, 0, 0, 696, 697, 6, 46, 42, 0, 697, 698, 1, 0, 0, 0, 698, 699, 6, 46, 41, 0, 699,
|
|
1160
|
-
98, 1, 0, 0, 0, 700, 701, 4, 47, 26, 0, 701, 702, 5, 41, 0, 0, 702, 703, 6, 47, 43, 0,
|
|
1161
|
-
703, 704, 1, 0, 0, 0, 704, 705, 6, 47, 41, 0, 705, 100, 1, 0, 0, 0, 706, 707, 5, 41, 0,
|
|
1162
|
-
0, 707, 708, 6, 48, 44, 0, 708, 709, 1, 0, 0, 0, 709, 710, 6, 48, 45, 0, 710, 711, 6,
|
|
1163
|
-
48, 1, 0, 711, 102, 1, 0, 0, 0, 712, 714, 8, 13, 0, 0, 713, 712, 1, 0, 0, 0, 714, 715,
|
|
1164
|
-
1, 0, 0, 0, 715, 713, 1, 0, 0, 0, 715, 716, 1, 0, 0, 0, 716, 717, 1, 0, 0, 0, 717, 718,
|
|
1165
|
-
6, 49, 46, 0, 718, 104, 1, 0, 0, 0, 719, 720, 5, 123, 0, 0, 720, 721, 6, 50, 47, 0, 721,
|
|
1166
|
-
722, 1, 0, 0, 0, 722, 723, 6, 50, 46, 0, 723, 106, 1, 0, 0, 0, 724, 725, 4, 51, 27, 0,
|
|
1167
|
-
725, 726, 5, 125, 0, 0, 726, 727, 6, 51, 48, 0, 727, 728, 1, 0, 0, 0, 728, 729, 6, 51,
|
|
1168
|
-
46, 0, 729, 108, 1, 0, 0, 0, 730, 731, 5, 125, 0, 0, 731, 732, 6, 52, 49, 0, 732, 733,
|
|
1169
|
-
1, 0, 0, 0, 733, 734, 6, 52, 50, 0, 734, 735, 6, 52, 1, 0, 735, 110, 1, 0, 0, 0, 736, 737,
|
|
1170
|
-
4, 53, 28, 0, 737, 738, 5, 96, 0, 0, 738, 739, 5, 96, 0, 0, 739, 740, 5, 96, 0, 0, 740,
|
|
1171
|
-
742, 1, 0, 0, 0, 741, 743, 3, 23, 9, 0, 742, 741, 1, 0, 0, 0, 742, 743, 1, 0, 0, 0, 743,
|
|
1172
|
-
744, 1, 0, 0, 0, 744, 745, 6, 53, 51, 0, 745, 746, 1, 0, 0, 0, 746, 747, 6, 53, 52, 0,
|
|
1173
|
-
747, 748, 6, 53, 38, 0, 748, 112, 1, 0, 0, 0, 749, 750, 4, 54, 29, 0, 750, 751, 3, 23,
|
|
1174
|
-
9, 0, 751, 752, 1, 0, 0, 0, 752, 753, 6, 54, 37, 0, 753, 754, 6, 54, 38, 0, 754, 114,
|
|
1175
|
-
1, 0, 0, 0, 755, 756, 4, 55, 30, 0, 756, 760, 3, 23, 9, 0, 757, 759, 7, 7, 0, 0, 758, 757,
|
|
1176
|
-
1, 0, 0, 0, 759, 762, 1, 0, 0, 0, 760, 758, 1, 0, 0, 0, 760, 761, 1, 0, 0, 0, 761, 763,
|
|
1177
|
-
1, 0, 0, 0, 762, 760, 1, 0, 0, 0, 763, 764, 3, 23, 9, 0, 764, 765, 1, 0, 0, 0, 765, 766,
|
|
1178
|
-
6, 55, 37, 0, 766, 767, 6, 55, 38, 0, 767, 116, 1, 0, 0, 0, 768, 769, 4, 56, 31, 0, 769,
|
|
1179
|
-
770, 3, 23, 9, 0, 770, 771, 1, 0, 0, 0, 771, 772, 6, 56, 37, 0, 772, 773, 6, 56, 38, 0,
|
|
1180
|
-
773, 118, 1, 0, 0, 0, 774, 776, 4, 57, 32, 0, 775, 777, 7, 7, 0, 0, 776, 775, 1, 0, 0,
|
|
1181
|
-
0, 777, 778, 1, 0, 0, 0, 778, 776, 1, 0, 0, 0, 778, 779, 1, 0, 0, 0, 779, 780, 1, 0, 0,
|
|
1182
|
-
0, 780, 781, 3, 23, 9, 0, 781, 782, 1, 0, 0, 0, 782, 783, 6, 57, 37, 0, 783, 784, 6, 57,
|
|
1183
|
-
38, 0, 784, 120, 1, 0, 0, 0, 785, 787, 8, 9, 0, 0, 786, 785, 1, 0, 0, 0, 787, 788, 1, 0,
|
|
1184
|
-
0, 0, 788, 786, 1, 0, 0, 0, 788, 789, 1, 0, 0, 0, 789, 790, 1, 0, 0, 0, 790, 791, 6, 58,
|
|
1185
|
-
53, 0, 791, 792, 1, 0, 0, 0, 792, 793, 6, 58, 35, 0, 793, 122, 1, 0, 0, 0, 794, 795, 5,
|
|
1186
|
-
13, 0, 0, 795, 796, 5, 10, 0, 0, 796, 797, 1, 0, 0, 0, 797, 798, 6, 59, 54, 0, 798, 799,
|
|
1187
|
-
1, 0, 0, 0, 799, 800, 6, 59, 35, 0, 800, 124, 1, 0, 0, 0, 801, 802, 5, 10, 0, 0, 802, 803,
|
|
1188
|
-
6, 60, 55, 0, 803, 804, 1, 0, 0, 0, 804, 805, 6, 60, 35, 0, 805, 126, 1, 0, 0, 0, 806,
|
|
1189
|
-
807, 5, 13, 0, 0, 807, 808, 6, 61, 56, 0, 808, 809, 1, 0, 0, 0, 809, 810, 6, 61, 35, 0,
|
|
1190
|
-
810, 128, 1, 0, 0, 0, 51, 0, 1, 2, 3, 4, 132, 135, 140, 146, 148, 155, 157, 162, 176,
|
|
1191
|
-
182, 187, 198, 203, 209, 214, 220, 234, 251, 268, 285, 302, 319, 336, 353, 370,
|
|
1192
|
-
387, 404, 421, 438, 455, 481, 492, 499, 514, 542, 561, 570, 594, 606, 651, 687,
|
|
1193
|
-
715, 742, 760, 778, 788, 57, 1, 10, 0, 2, 1, 0, 1, 11, 1, 1, 12, 2, 1, 13, 3, 1, 14, 4,
|
|
1194
|
-
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,
|
|
1195
|
-
13, 1, 24, 14, 1, 25, 15, 0, 1, 0, 7, 12, 0, 1, 31, 16, 6, 0, 0, 1, 32, 17, 7, 14, 0, 1, 33,
|
|
1196
|
-
18, 7, 15, 0, 1, 34, 19, 7, 1, 0, 2, 2, 0, 1, 35, 20, 7, 3, 0, 2, 3, 0, 7, 5, 0, 7, 6, 0, 7,
|
|
1197
|
-
13, 0, 1, 40, 21, 7, 11, 0, 2, 4, 0, 7, 8, 0, 2, 0, 0, 1, 42, 22, 7, 7, 0, 7, 9, 0, 1, 46, 23,
|
|
1198
|
-
1, 47, 24, 1, 48, 25, 7, 2, 0, 7, 10, 0, 1, 50, 26, 1, 51, 27, 1, 52, 28, 7, 4, 0, 1, 53,
|
|
1199
|
-
29, 7, 31, 0, 1, 58, 30, 1, 59, 31, 1, 60, 32, 1, 61, 33
|
|
801
|
+
56, 2, 57, 7, 57, 2, 58, 7, 58, 2, 59, 7, 59, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 5, 0, 131, 8, 0,
|
|
802
|
+
10, 0, 12, 0, 134, 9, 0, 1, 1, 4, 1, 137, 8, 1, 11, 1, 12, 1, 138, 1, 2, 3, 2, 142, 8, 2,
|
|
803
|
+
1, 2, 4, 2, 145, 8, 2, 11, 2, 12, 2, 146, 1, 2, 1, 2, 4, 2, 151, 8, 2, 11, 2, 12, 2, 152,
|
|
804
|
+
3, 2, 155, 8, 2, 1, 3, 1, 3, 1, 3, 1, 3, 1, 3, 3, 3, 162, 8, 3, 3, 3, 164, 8, 3, 1, 3, 5, 3,
|
|
805
|
+
167, 8, 3, 10, 3, 12, 3, 170, 9, 3, 1, 3, 1, 3, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1, 4, 1,
|
|
806
|
+
5, 1, 5, 1, 5, 3, 5, 184, 8, 5, 1, 5, 3, 5, 187, 8, 5, 1, 5, 3, 5, 190, 8, 5, 1, 6, 1, 6, 1,
|
|
807
|
+
6, 3, 6, 195, 8, 6, 1, 7, 1, 7, 1, 7, 1, 7, 3, 7, 201, 8, 7, 1, 7, 5, 7, 204, 8, 7, 10, 7, 12,
|
|
808
|
+
7, 207, 9, 7, 1, 7, 1, 7, 1, 8, 1, 8, 1, 8, 1, 8, 5, 8, 215, 8, 8, 10, 8, 12, 8, 218, 9, 8,
|
|
809
|
+
1, 9, 1, 9, 3, 9, 222, 8, 9, 1, 10, 1, 10, 1, 10, 1, 10, 3, 10, 228, 8, 10, 1, 10, 5, 10,
|
|
810
|
+
231, 8, 10, 10, 10, 12, 10, 234, 9, 10, 1, 10, 1, 10, 1, 11, 3, 11, 239, 8, 11, 1, 11,
|
|
811
|
+
1, 11, 1, 12, 1, 12, 1, 12, 5, 12, 246, 8, 12, 10, 12, 12, 12, 249, 9, 12, 1, 12, 1, 12,
|
|
812
|
+
1, 12, 1, 12, 1, 12, 1, 12, 1, 13, 1, 13, 1, 13, 5, 13, 260, 8, 13, 10, 13, 12, 13, 263,
|
|
813
|
+
9, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 13, 1, 14, 4, 14, 272, 8, 14, 11, 14, 12, 14,
|
|
814
|
+
273, 1, 14, 1, 14, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 5, 15,
|
|
815
|
+
287, 8, 15, 10, 15, 12, 15, 290, 9, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15, 1, 15,
|
|
816
|
+
1, 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,
|
|
817
|
+
1, 16, 1, 16, 1, 16, 1, 16, 5, 16, 316, 8, 16, 10, 16, 12, 16, 319, 9, 16, 1, 16, 1, 16,
|
|
818
|
+
1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 16, 1, 17,
|
|
819
|
+
4, 17, 336, 8, 17, 11, 17, 12, 17, 337, 1, 17, 1, 17, 1, 17, 1, 17, 1, 17, 1, 18, 1, 18,
|
|
820
|
+
1, 18, 1, 18, 1, 18, 1, 18, 1, 19, 1, 19, 4, 19, 353, 8, 19, 11, 19, 12, 19, 354, 1, 19,
|
|
821
|
+
1, 19, 1, 19, 1, 19, 1, 19, 1, 20, 4, 20, 363, 8, 20, 11, 20, 12, 20, 364, 1, 20, 1, 20,
|
|
822
|
+
1, 20, 1, 20, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 21, 1, 22, 1, 22, 1, 22, 1, 22,
|
|
823
|
+
1, 22, 1, 22, 1, 22, 1, 23, 1, 23, 1, 23, 1, 23, 1, 23, 1, 24, 1, 24, 1, 24, 1, 24, 1, 24,
|
|
824
|
+
1, 25, 1, 25, 1, 25, 1, 25, 1, 25, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 5, 26,
|
|
825
|
+
407, 8, 26, 10, 26, 12, 26, 410, 9, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 26, 1, 27,
|
|
826
|
+
1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 1, 27, 5, 27, 425, 8, 27, 10, 27, 12, 27, 428, 9, 27,
|
|
827
|
+
1, 27, 1, 27, 1, 27, 1, 27, 1, 28, 1, 28, 1, 28, 5, 28, 437, 8, 28, 10, 28, 12, 28, 440,
|
|
828
|
+
9, 28, 1, 28, 5, 28, 443, 8, 28, 10, 28, 12, 28, 446, 9, 28, 1, 28, 1, 28, 1, 28, 1, 28,
|
|
829
|
+
1, 28, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 29, 1, 30, 1, 30, 1, 30, 1, 30, 1, 30,
|
|
830
|
+
1, 30, 1, 31, 1, 31, 1, 31, 1, 31, 1, 31, 1, 32, 1, 32, 1, 32, 5, 32, 474, 8, 32, 10, 32,
|
|
831
|
+
12, 32, 477, 9, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 32, 1, 33, 1, 33, 1, 33, 1, 33, 1, 33,
|
|
832
|
+
1, 34, 1, 34, 1, 34, 1, 34, 1, 34, 1, 35, 4, 35, 495, 8, 35, 11, 35, 12, 35, 496, 1, 35,
|
|
833
|
+
1, 35, 1, 36, 1, 36, 1, 36, 1, 36, 1, 37, 1, 37, 1, 37, 1, 37, 1, 37, 1, 38, 1, 38, 1, 38,
|
|
834
|
+
1, 38, 1, 38, 1, 38, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 39, 1, 40, 1, 40, 1, 40, 1, 40,
|
|
835
|
+
1, 40, 1, 40, 1, 41, 1, 41, 1, 41, 1, 41, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 42, 1, 43,
|
|
836
|
+
1, 43, 1, 43, 5, 43, 541, 8, 43, 10, 43, 12, 43, 544, 9, 43, 1, 43, 1, 43, 1, 43, 1, 43,
|
|
837
|
+
1, 43, 1, 44, 1, 44, 1, 44, 1, 44, 1, 44, 1, 45, 1, 45, 1, 45, 1, 45, 5, 45, 560, 8, 45,
|
|
838
|
+
10, 45, 12, 45, 563, 9, 45, 1, 45, 1, 45, 1, 45, 1, 45, 1, 46, 4, 46, 570, 8, 46, 11, 46,
|
|
839
|
+
12, 46, 571, 1, 46, 1, 46, 1, 47, 1, 47, 1, 47, 1, 47, 1, 48, 1, 48, 1, 48, 1, 48, 1, 49,
|
|
840
|
+
1, 49, 1, 49, 1, 49, 1, 49, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 50, 1, 51, 1, 51, 1, 51,
|
|
841
|
+
1, 51, 1, 51, 1, 51, 1, 52, 1, 52, 1, 52, 5, 52, 604, 8, 52, 10, 52, 12, 52, 607, 9, 52,
|
|
842
|
+
1, 52, 1, 52, 5, 52, 611, 8, 52, 10, 52, 12, 52, 614, 9, 52, 1, 52, 5, 52, 617, 8, 52,
|
|
843
|
+
10, 52, 12, 52, 620, 9, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 52, 1, 53, 1, 53, 5, 53, 629,
|
|
844
|
+
8, 53, 10, 53, 12, 53, 632, 9, 53, 1, 53, 1, 53, 5, 53, 636, 8, 53, 10, 53, 12, 53, 639,
|
|
845
|
+
9, 53, 1, 53, 5, 53, 642, 8, 53, 10, 53, 12, 53, 645, 9, 53, 1, 53, 1, 53, 1, 53, 1, 53,
|
|
846
|
+
1, 53, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 54, 1, 55, 4, 55, 659, 8, 55, 11, 55, 12, 55,
|
|
847
|
+
660, 1, 55, 1, 55, 1, 56, 1, 56, 1, 56, 1, 56, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57, 1, 57,
|
|
848
|
+
1, 57, 1, 58, 1, 58, 1, 58, 1, 58, 1, 58, 1, 59, 1, 59, 1, 59, 1, 59, 3, 288, 317, 408,
|
|
849
|
+
0, 60, 5, 0, 7, 0, 9, 0, 11, 0, 13, 0, 15, 0, 17, 0, 19, 0, 21, 0, 23, 0, 25, 0, 27, 0, 29,
|
|
850
|
+
26, 31, 0, 33, 27, 35, 0, 37, 0, 39, 0, 41, 0, 43, 0, 45, 28, 47, 0, 49, 0, 51, 0, 53, 0,
|
|
851
|
+
55, 0, 57, 0, 59, 0, 61, 0, 63, 0, 65, 0, 67, 0, 69, 0, 71, 0, 73, 0, 75, 0, 77, 29, 79,
|
|
852
|
+
0, 81, 0, 83, 0, 85, 0, 87, 30, 89, 0, 91, 0, 93, 0, 95, 0, 97, 0, 99, 0, 101, 31, 103,
|
|
853
|
+
0, 105, 0, 107, 0, 109, 0, 111, 0, 113, 0, 115, 0, 117, 0, 119, 0, 121, 0, 123, 32, 5,
|
|
854
|
+
0, 1, 2, 3, 4, 15, 6, 0, 43, 43, 45, 46, 48, 57, 65, 90, 95, 95, 97, 122, 1, 0, 48, 57,
|
|
855
|
+
3, 0, 48, 57, 65, 90, 97, 122, 2, 0, 32, 32, 58, 58, 1, 0, 49, 57, 3, 0, 9, 10, 13, 13,
|
|
856
|
+
32, 32, 4, 0, 9, 10, 13, 13, 32, 32, 96, 96, 2, 0, 9, 9, 32, 32, 2, 0, 10, 10, 13, 13, 7,
|
|
857
|
+
0, 9, 10, 13, 13, 32, 32, 40, 40, 60, 60, 91, 91, 96, 96, 2, 0, 40, 41, 92, 92, 6, 0, 10,
|
|
858
|
+
10, 13, 13, 40, 41, 60, 60, 92, 92, 96, 96, 4, 0, 10, 10, 13, 13, 34, 34, 92, 92, 6, 0,
|
|
859
|
+
10, 10, 13, 13, 34, 34, 91, 91, 93, 93, 96, 96, 3, 0, 10, 10, 13, 13, 96, 96, 713, 0,
|
|
860
|
+
29, 1, 0, 0, 0, 0, 31, 1, 0, 0, 0, 0, 33, 1, 0, 0, 0, 0, 35, 1, 0, 0, 0, 0, 37, 1, 0, 0, 0, 0,
|
|
861
|
+
39, 1, 0, 0, 0, 0, 41, 1, 0, 0, 0, 1, 43, 1, 0, 0, 0, 1, 45, 1, 0, 0, 0, 1, 47, 1, 0, 0, 0, 1,
|
|
862
|
+
49, 1, 0, 0, 0, 1, 51, 1, 0, 0, 0, 1, 53, 1, 0, 0, 0, 1, 55, 1, 0, 0, 0, 1, 57, 1, 0, 0, 0, 1,
|
|
863
|
+
59, 1, 0, 0, 0, 1, 61, 1, 0, 0, 0, 1, 63, 1, 0, 0, 0, 1, 65, 1, 0, 0, 0, 1, 67, 1, 0, 0, 0, 2,
|
|
864
|
+
69, 1, 0, 0, 0, 2, 71, 1, 0, 0, 0, 2, 73, 1, 0, 0, 0, 2, 75, 1, 0, 0, 0, 2, 77, 1, 0, 0, 0, 2,
|
|
865
|
+
79, 1, 0, 0, 0, 2, 81, 1, 0, 0, 0, 2, 83, 1, 0, 0, 0, 2, 85, 1, 0, 0, 0, 2, 87, 1, 0, 0, 0, 2,
|
|
866
|
+
89, 1, 0, 0, 0, 3, 91, 1, 0, 0, 0, 3, 93, 1, 0, 0, 0, 3, 95, 1, 0, 0, 0, 3, 97, 1, 0, 0, 0, 3,
|
|
867
|
+
99, 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,
|
|
868
|
+
0, 4, 109, 1, 0, 0, 0, 4, 111, 1, 0, 0, 0, 4, 113, 1, 0, 0, 0, 4, 115, 1, 0, 0, 0, 4, 117,
|
|
869
|
+
1, 0, 0, 0, 4, 119, 1, 0, 0, 0, 4, 121, 1, 0, 0, 0, 4, 123, 1, 0, 0, 0, 5, 125, 1, 0, 0, 0,
|
|
870
|
+
7, 136, 1, 0, 0, 0, 9, 141, 1, 0, 0, 0, 11, 156, 1, 0, 0, 0, 13, 173, 1, 0, 0, 0, 15, 180,
|
|
871
|
+
1, 0, 0, 0, 17, 194, 1, 0, 0, 0, 19, 196, 1, 0, 0, 0, 21, 210, 1, 0, 0, 0, 23, 221, 1, 0,
|
|
872
|
+
0, 0, 25, 223, 1, 0, 0, 0, 27, 238, 1, 0, 0, 0, 29, 242, 1, 0, 0, 0, 31, 256, 1, 0, 0, 0,
|
|
873
|
+
33, 271, 1, 0, 0, 0, 35, 277, 1, 0, 0, 0, 37, 303, 1, 0, 0, 0, 39, 335, 1, 0, 0, 0, 41, 344,
|
|
874
|
+
1, 0, 0, 0, 43, 350, 1, 0, 0, 0, 45, 362, 1, 0, 0, 0, 47, 370, 1, 0, 0, 0, 49, 377, 1, 0,
|
|
875
|
+
0, 0, 51, 384, 1, 0, 0, 0, 53, 389, 1, 0, 0, 0, 55, 394, 1, 0, 0, 0, 57, 399, 1, 0, 0, 0,
|
|
876
|
+
59, 417, 1, 0, 0, 0, 61, 433, 1, 0, 0, 0, 63, 452, 1, 0, 0, 0, 65, 459, 1, 0, 0, 0, 67, 465,
|
|
877
|
+
1, 0, 0, 0, 69, 470, 1, 0, 0, 0, 71, 483, 1, 0, 0, 0, 73, 488, 1, 0, 0, 0, 75, 494, 1, 0,
|
|
878
|
+
0, 0, 77, 500, 1, 0, 0, 0, 79, 504, 1, 0, 0, 0, 81, 509, 1, 0, 0, 0, 83, 515, 1, 0, 0, 0,
|
|
879
|
+
85, 521, 1, 0, 0, 0, 87, 527, 1, 0, 0, 0, 89, 531, 1, 0, 0, 0, 91, 537, 1, 0, 0, 0, 93, 550,
|
|
880
|
+
1, 0, 0, 0, 95, 555, 1, 0, 0, 0, 97, 569, 1, 0, 0, 0, 99, 575, 1, 0, 0, 0, 101, 579, 1, 0,
|
|
881
|
+
0, 0, 103, 583, 1, 0, 0, 0, 105, 588, 1, 0, 0, 0, 107, 594, 1, 0, 0, 0, 109, 600, 1, 0,
|
|
882
|
+
0, 0, 111, 626, 1, 0, 0, 0, 113, 651, 1, 0, 0, 0, 115, 658, 1, 0, 0, 0, 117, 664, 1, 0,
|
|
883
|
+
0, 0, 119, 668, 1, 0, 0, 0, 121, 675, 1, 0, 0, 0, 123, 680, 1, 0, 0, 0, 125, 126, 5, 96,
|
|
884
|
+
0, 0, 126, 127, 5, 96, 0, 0, 127, 128, 5, 96, 0, 0, 128, 132, 1, 0, 0, 0, 129, 131, 5,
|
|
885
|
+
96, 0, 0, 130, 129, 1, 0, 0, 0, 131, 134, 1, 0, 0, 0, 132, 130, 1, 0, 0, 0, 132, 133, 1,
|
|
886
|
+
0, 0, 0, 133, 6, 1, 0, 0, 0, 134, 132, 1, 0, 0, 0, 135, 137, 7, 0, 0, 0, 136, 135, 1, 0,
|
|
887
|
+
0, 0, 137, 138, 1, 0, 0, 0, 138, 136, 1, 0, 0, 0, 138, 139, 1, 0, 0, 0, 139, 8, 1, 0, 0,
|
|
888
|
+
0, 140, 142, 5, 45, 0, 0, 141, 140, 1, 0, 0, 0, 141, 142, 1, 0, 0, 0, 142, 144, 1, 0, 0,
|
|
889
|
+
0, 143, 145, 7, 1, 0, 0, 144, 143, 1, 0, 0, 0, 145, 146, 1, 0, 0, 0, 146, 144, 1, 0, 0,
|
|
890
|
+
0, 146, 147, 1, 0, 0, 0, 147, 154, 1, 0, 0, 0, 148, 150, 5, 46, 0, 0, 149, 151, 7, 1, 0,
|
|
891
|
+
0, 150, 149, 1, 0, 0, 0, 151, 152, 1, 0, 0, 0, 152, 150, 1, 0, 0, 0, 152, 153, 1, 0, 0,
|
|
892
|
+
0, 153, 155, 1, 0, 0, 0, 154, 148, 1, 0, 0, 0, 154, 155, 1, 0, 0, 0, 155, 10, 1, 0, 0, 0,
|
|
893
|
+
156, 157, 5, 60, 0, 0, 157, 168, 3, 9, 2, 0, 158, 164, 5, 45, 0, 0, 159, 161, 5, 44, 0,
|
|
894
|
+
0, 160, 162, 5, 32, 0, 0, 161, 160, 1, 0, 0, 0, 161, 162, 1, 0, 0, 0, 162, 164, 1, 0, 0,
|
|
895
|
+
0, 163, 158, 1, 0, 0, 0, 163, 159, 1, 0, 0, 0, 164, 165, 1, 0, 0, 0, 165, 167, 3, 9, 2,
|
|
896
|
+
0, 166, 163, 1, 0, 0, 0, 167, 170, 1, 0, 0, 0, 168, 166, 1, 0, 0, 0, 168, 169, 1, 0, 0,
|
|
897
|
+
0, 169, 171, 1, 0, 0, 0, 170, 168, 1, 0, 0, 0, 171, 172, 5, 62, 0, 0, 172, 12, 1, 0, 0,
|
|
898
|
+
0, 173, 174, 5, 64, 0, 0, 174, 175, 7, 2, 0, 0, 175, 176, 7, 2, 0, 0, 176, 177, 7, 2, 0,
|
|
899
|
+
0, 177, 178, 7, 2, 0, 0, 178, 179, 7, 2, 0, 0, 179, 14, 1, 0, 0, 0, 180, 181, 5, 64, 0,
|
|
900
|
+
0, 181, 183, 7, 1, 0, 0, 182, 184, 7, 1, 0, 0, 183, 182, 1, 0, 0, 0, 183, 184, 1, 0, 0,
|
|
901
|
+
0, 184, 186, 1, 0, 0, 0, 185, 187, 7, 1, 0, 0, 186, 185, 1, 0, 0, 0, 186, 187, 1, 0, 0,
|
|
902
|
+
0, 187, 189, 1, 0, 0, 0, 188, 190, 7, 1, 0, 0, 189, 188, 1, 0, 0, 0, 189, 190, 1, 0, 0,
|
|
903
|
+
0, 190, 16, 1, 0, 0, 0, 191, 195, 3, 9, 2, 0, 192, 195, 3, 13, 4, 0, 193, 195, 3, 15, 5,
|
|
904
|
+
0, 194, 191, 1, 0, 0, 0, 194, 192, 1, 0, 0, 0, 194, 193, 1, 0, 0, 0, 195, 18, 1, 0, 0, 0,
|
|
905
|
+
196, 197, 5, 60, 0, 0, 197, 205, 3, 17, 6, 0, 198, 200, 5, 44, 0, 0, 199, 201, 5, 32,
|
|
906
|
+
0, 0, 200, 199, 1, 0, 0, 0, 200, 201, 1, 0, 0, 0, 201, 202, 1, 0, 0, 0, 202, 204, 3, 17,
|
|
907
|
+
6, 0, 203, 198, 1, 0, 0, 0, 204, 207, 1, 0, 0, 0, 205, 203, 1, 0, 0, 0, 205, 206, 1, 0,
|
|
908
|
+
0, 0, 206, 208, 1, 0, 0, 0, 207, 205, 1, 0, 0, 0, 208, 209, 5, 62, 0, 0, 209, 20, 1, 0,
|
|
909
|
+
0, 0, 210, 211, 3, 13, 4, 0, 211, 212, 7, 3, 0, 0, 212, 216, 7, 4, 0, 0, 213, 215, 7, 1,
|
|
910
|
+
0, 0, 214, 213, 1, 0, 0, 0, 215, 218, 1, 0, 0, 0, 216, 214, 1, 0, 0, 0, 216, 217, 1, 0,
|
|
911
|
+
0, 0, 217, 22, 1, 0, 0, 0, 218, 216, 1, 0, 0, 0, 219, 222, 3, 17, 6, 0, 220, 222, 3, 21,
|
|
912
|
+
8, 0, 221, 219, 1, 0, 0, 0, 221, 220, 1, 0, 0, 0, 222, 24, 1, 0, 0, 0, 223, 224, 5, 60,
|
|
913
|
+
0, 0, 224, 232, 3, 23, 9, 0, 225, 227, 5, 44, 0, 0, 226, 228, 5, 32, 0, 0, 227, 226, 1,
|
|
914
|
+
0, 0, 0, 227, 228, 1, 0, 0, 0, 228, 229, 1, 0, 0, 0, 229, 231, 3, 23, 9, 0, 230, 225, 1,
|
|
915
|
+
0, 0, 0, 231, 234, 1, 0, 0, 0, 232, 230, 1, 0, 0, 0, 232, 233, 1, 0, 0, 0, 233, 235, 1,
|
|
916
|
+
0, 0, 0, 234, 232, 1, 0, 0, 0, 235, 236, 5, 62, 0, 0, 236, 26, 1, 0, 0, 0, 237, 239, 5,
|
|
917
|
+
13, 0, 0, 238, 237, 1, 0, 0, 0, 238, 239, 1, 0, 0, 0, 239, 240, 1, 0, 0, 0, 240, 241, 5,
|
|
918
|
+
10, 0, 0, 241, 28, 1, 0, 0, 0, 242, 243, 4, 12, 0, 0, 243, 247, 3, 5, 0, 0, 244, 246, 7,
|
|
919
|
+
1, 0, 0, 245, 244, 1, 0, 0, 0, 246, 249, 1, 0, 0, 0, 247, 245, 1, 0, 0, 0, 247, 248, 1,
|
|
920
|
+
0, 0, 0, 248, 250, 1, 0, 0, 0, 249, 247, 1, 0, 0, 0, 250, 251, 3, 7, 1, 0, 251, 252, 4,
|
|
921
|
+
12, 1, 0, 252, 253, 6, 12, 0, 0, 253, 254, 1, 0, 0, 0, 254, 255, 6, 12, 1, 0, 255, 30,
|
|
922
|
+
1, 0, 0, 0, 256, 257, 4, 13, 2, 0, 257, 261, 3, 5, 0, 0, 258, 260, 7, 1, 0, 0, 259, 258,
|
|
923
|
+
1, 0, 0, 0, 260, 263, 1, 0, 0, 0, 261, 259, 1, 0, 0, 0, 261, 262, 1, 0, 0, 0, 262, 264,
|
|
924
|
+
1, 0, 0, 0, 263, 261, 1, 0, 0, 0, 264, 265, 3, 7, 1, 0, 265, 266, 6, 13, 2, 0, 266, 267,
|
|
925
|
+
1, 0, 0, 0, 267, 268, 6, 13, 3, 0, 268, 269, 6, 13, 4, 0, 269, 32, 1, 0, 0, 0, 270, 272,
|
|
926
|
+
7, 5, 0, 0, 271, 270, 1, 0, 0, 0, 272, 273, 1, 0, 0, 0, 273, 271, 1, 0, 0, 0, 273, 274,
|
|
927
|
+
1, 0, 0, 0, 274, 275, 1, 0, 0, 0, 275, 276, 6, 14, 4, 0, 276, 34, 1, 0, 0, 0, 277, 278,
|
|
928
|
+
5, 60, 0, 0, 278, 279, 5, 116, 0, 0, 279, 280, 5, 104, 0, 0, 280, 281, 5, 105, 0, 0, 281,
|
|
929
|
+
282, 5, 110, 0, 0, 282, 283, 5, 107, 0, 0, 283, 284, 5, 62, 0, 0, 284, 288, 1, 0, 0, 0,
|
|
930
|
+
285, 287, 9, 0, 0, 0, 286, 285, 1, 0, 0, 0, 287, 290, 1, 0, 0, 0, 288, 289, 1, 0, 0, 0,
|
|
931
|
+
288, 286, 1, 0, 0, 0, 289, 291, 1, 0, 0, 0, 290, 288, 1, 0, 0, 0, 291, 292, 5, 60, 0, 0,
|
|
932
|
+
292, 293, 5, 47, 0, 0, 293, 294, 5, 116, 0, 0, 294, 295, 5, 104, 0, 0, 295, 296, 5, 105,
|
|
933
|
+
0, 0, 296, 297, 5, 110, 0, 0, 297, 298, 5, 107, 0, 0, 298, 299, 5, 62, 0, 0, 299, 300,
|
|
934
|
+
1, 0, 0, 0, 300, 301, 6, 15, 3, 0, 301, 302, 6, 15, 4, 0, 302, 36, 1, 0, 0, 0, 303, 304,
|
|
935
|
+
5, 60, 0, 0, 304, 305, 5, 124, 0, 0, 305, 306, 5, 99, 0, 0, 306, 307, 5, 104, 0, 0, 307,
|
|
936
|
+
308, 5, 97, 0, 0, 308, 309, 5, 110, 0, 0, 309, 310, 5, 110, 0, 0, 310, 311, 5, 101, 0,
|
|
937
|
+
0, 311, 312, 5, 108, 0, 0, 312, 313, 5, 62, 0, 0, 313, 317, 1, 0, 0, 0, 314, 316, 9, 0,
|
|
938
|
+
0, 0, 315, 314, 1, 0, 0, 0, 316, 319, 1, 0, 0, 0, 317, 318, 1, 0, 0, 0, 317, 315, 1, 0,
|
|
939
|
+
0, 0, 318, 320, 1, 0, 0, 0, 319, 317, 1, 0, 0, 0, 320, 321, 5, 60, 0, 0, 321, 322, 5, 99,
|
|
940
|
+
0, 0, 322, 323, 5, 104, 0, 0, 323, 324, 5, 97, 0, 0, 324, 325, 5, 110, 0, 0, 325, 326,
|
|
941
|
+
5, 110, 0, 0, 326, 327, 5, 101, 0, 0, 327, 328, 5, 108, 0, 0, 328, 329, 5, 124, 0, 0,
|
|
942
|
+
329, 330, 5, 62, 0, 0, 330, 331, 1, 0, 0, 0, 331, 332, 6, 16, 3, 0, 332, 333, 6, 16, 4,
|
|
943
|
+
0, 333, 38, 1, 0, 0, 0, 334, 336, 8, 6, 0, 0, 335, 334, 1, 0, 0, 0, 336, 337, 1, 0, 0, 0,
|
|
944
|
+
337, 335, 1, 0, 0, 0, 337, 338, 1, 0, 0, 0, 338, 339, 1, 0, 0, 0, 339, 340, 6, 17, 5, 0,
|
|
945
|
+
340, 341, 1, 0, 0, 0, 341, 342, 6, 17, 3, 0, 342, 343, 6, 17, 4, 0, 343, 40, 1, 0, 0, 0,
|
|
946
|
+
344, 345, 5, 96, 0, 0, 345, 346, 6, 18, 6, 0, 346, 347, 1, 0, 0, 0, 347, 348, 6, 18, 3,
|
|
947
|
+
0, 348, 349, 6, 18, 4, 0, 349, 42, 1, 0, 0, 0, 350, 352, 4, 19, 3, 0, 351, 353, 7, 7, 0,
|
|
948
|
+
0, 352, 351, 1, 0, 0, 0, 353, 354, 1, 0, 0, 0, 354, 352, 1, 0, 0, 0, 354, 355, 1, 0, 0,
|
|
949
|
+
0, 355, 356, 1, 0, 0, 0, 356, 357, 6, 19, 7, 0, 357, 358, 1, 0, 0, 0, 358, 359, 6, 19,
|
|
950
|
+
8, 0, 359, 360, 6, 19, 9, 0, 360, 44, 1, 0, 0, 0, 361, 363, 7, 7, 0, 0, 362, 361, 1, 0,
|
|
951
|
+
0, 0, 363, 364, 1, 0, 0, 0, 364, 362, 1, 0, 0, 0, 364, 365, 1, 0, 0, 0, 365, 366, 1, 0,
|
|
952
|
+
0, 0, 366, 367, 6, 20, 10, 0, 367, 368, 1, 0, 0, 0, 368, 369, 6, 20, 11, 0, 369, 46, 1,
|
|
953
|
+
0, 0, 0, 370, 371, 4, 21, 4, 0, 371, 372, 5, 40, 0, 0, 372, 373, 6, 21, 12, 0, 373, 374,
|
|
954
|
+
1, 0, 0, 0, 374, 375, 6, 21, 13, 0, 375, 376, 6, 21, 14, 0, 376, 48, 1, 0, 0, 0, 377, 378,
|
|
955
|
+
4, 22, 5, 0, 378, 379, 5, 91, 0, 0, 379, 380, 6, 22, 15, 0, 380, 381, 1, 0, 0, 0, 381,
|
|
956
|
+
382, 6, 22, 16, 0, 382, 383, 6, 22, 17, 0, 383, 50, 1, 0, 0, 0, 384, 385, 4, 23, 6, 0,
|
|
957
|
+
385, 386, 3, 19, 7, 0, 386, 387, 1, 0, 0, 0, 387, 388, 6, 23, 18, 0, 388, 52, 1, 0, 0,
|
|
958
|
+
0, 389, 390, 4, 24, 7, 0, 390, 391, 3, 11, 3, 0, 391, 392, 1, 0, 0, 0, 392, 393, 6, 24,
|
|
959
|
+
18, 0, 393, 54, 1, 0, 0, 0, 394, 395, 4, 25, 8, 0, 395, 396, 3, 25, 10, 0, 396, 397, 1,
|
|
960
|
+
0, 0, 0, 397, 398, 6, 25, 18, 0, 398, 56, 1, 0, 0, 0, 399, 400, 4, 26, 9, 0, 400, 401,
|
|
961
|
+
5, 60, 0, 0, 401, 402, 5, 33, 0, 0, 402, 403, 5, 45, 0, 0, 403, 404, 5, 45, 0, 0, 404,
|
|
962
|
+
408, 1, 0, 0, 0, 405, 407, 8, 8, 0, 0, 406, 405, 1, 0, 0, 0, 407, 410, 1, 0, 0, 0, 408,
|
|
963
|
+
409, 1, 0, 0, 0, 408, 406, 1, 0, 0, 0, 409, 411, 1, 0, 0, 0, 410, 408, 1, 0, 0, 0, 411,
|
|
964
|
+
412, 5, 45, 0, 0, 412, 413, 5, 45, 0, 0, 413, 414, 5, 62, 0, 0, 414, 415, 1, 0, 0, 0, 415,
|
|
965
|
+
416, 6, 26, 19, 0, 416, 58, 1, 0, 0, 0, 417, 418, 4, 27, 10, 0, 418, 419, 5, 60, 0, 0,
|
|
966
|
+
419, 420, 5, 33, 0, 0, 420, 421, 5, 45, 0, 0, 421, 422, 5, 45, 0, 0, 422, 426, 1, 0, 0,
|
|
967
|
+
0, 423, 425, 8, 8, 0, 0, 424, 423, 1, 0, 0, 0, 425, 428, 1, 0, 0, 0, 426, 424, 1, 0, 0,
|
|
968
|
+
0, 426, 427, 1, 0, 0, 0, 427, 429, 1, 0, 0, 0, 428, 426, 1, 0, 0, 0, 429, 430, 6, 27, 20,
|
|
969
|
+
0, 430, 431, 1, 0, 0, 0, 431, 432, 6, 27, 19, 0, 432, 60, 1, 0, 0, 0, 433, 434, 4, 28,
|
|
970
|
+
11, 0, 434, 438, 3, 5, 0, 0, 435, 437, 7, 1, 0, 0, 436, 435, 1, 0, 0, 0, 437, 440, 1, 0,
|
|
971
|
+
0, 0, 438, 436, 1, 0, 0, 0, 438, 439, 1, 0, 0, 0, 439, 444, 1, 0, 0, 0, 440, 438, 1, 0,
|
|
972
|
+
0, 0, 441, 443, 7, 7, 0, 0, 442, 441, 1, 0, 0, 0, 443, 446, 1, 0, 0, 0, 444, 442, 1, 0,
|
|
973
|
+
0, 0, 444, 445, 1, 0, 0, 0, 445, 447, 1, 0, 0, 0, 446, 444, 1, 0, 0, 0, 447, 448, 6, 28,
|
|
974
|
+
21, 0, 448, 449, 1, 0, 0, 0, 449, 450, 6, 28, 8, 0, 450, 451, 6, 28, 9, 0, 451, 62, 1,
|
|
975
|
+
0, 0, 0, 452, 453, 4, 29, 12, 0, 453, 454, 8, 9, 0, 0, 454, 455, 6, 29, 22, 0, 455, 456,
|
|
976
|
+
1, 0, 0, 0, 456, 457, 6, 29, 23, 0, 457, 458, 6, 29, 24, 0, 458, 64, 1, 0, 0, 0, 459, 460,
|
|
977
|
+
4, 30, 13, 0, 460, 461, 3, 27, 11, 0, 461, 462, 1, 0, 0, 0, 462, 463, 6, 30, 8, 0, 463,
|
|
978
|
+
464, 6, 30, 9, 0, 464, 66, 1, 0, 0, 0, 465, 466, 3, 27, 11, 0, 466, 467, 1, 0, 0, 0, 467,
|
|
979
|
+
468, 6, 31, 25, 0, 468, 469, 6, 31, 24, 0, 469, 68, 1, 0, 0, 0, 470, 471, 4, 32, 14, 0,
|
|
980
|
+
471, 475, 3, 5, 0, 0, 472, 474, 7, 7, 0, 0, 473, 472, 1, 0, 0, 0, 474, 477, 1, 0, 0, 0,
|
|
981
|
+
475, 473, 1, 0, 0, 0, 475, 476, 1, 0, 0, 0, 476, 478, 1, 0, 0, 0, 477, 475, 1, 0, 0, 0,
|
|
982
|
+
478, 479, 6, 32, 26, 0, 479, 480, 1, 0, 0, 0, 480, 481, 6, 32, 8, 0, 481, 482, 6, 32,
|
|
983
|
+
9, 0, 482, 70, 1, 0, 0, 0, 483, 484, 3, 27, 11, 0, 484, 485, 1, 0, 0, 0, 485, 486, 6, 33,
|
|
984
|
+
8, 0, 486, 487, 6, 33, 9, 0, 487, 72, 1, 0, 0, 0, 488, 489, 5, 92, 0, 0, 489, 490, 7, 10,
|
|
985
|
+
0, 0, 490, 491, 1, 0, 0, 0, 491, 492, 6, 34, 27, 0, 492, 74, 1, 0, 0, 0, 493, 495, 8, 11,
|
|
986
|
+
0, 0, 494, 493, 1, 0, 0, 0, 495, 496, 1, 0, 0, 0, 496, 494, 1, 0, 0, 0, 496, 497, 1, 0,
|
|
987
|
+
0, 0, 497, 498, 1, 0, 0, 0, 498, 499, 6, 35, 27, 0, 499, 76, 1, 0, 0, 0, 500, 501, 5, 92,
|
|
988
|
+
0, 0, 501, 502, 1, 0, 0, 0, 502, 503, 6, 36, 27, 0, 503, 78, 1, 0, 0, 0, 504, 505, 5, 40,
|
|
989
|
+
0, 0, 505, 506, 6, 37, 28, 0, 506, 507, 1, 0, 0, 0, 507, 508, 6, 37, 27, 0, 508, 80, 1,
|
|
990
|
+
0, 0, 0, 509, 510, 4, 38, 15, 0, 510, 511, 5, 41, 0, 0, 511, 512, 6, 38, 29, 0, 512, 513,
|
|
991
|
+
1, 0, 0, 0, 513, 514, 6, 38, 27, 0, 514, 82, 1, 0, 0, 0, 515, 516, 4, 39, 16, 0, 516, 517,
|
|
992
|
+
3, 19, 7, 0, 517, 518, 4, 39, 17, 0, 518, 519, 1, 0, 0, 0, 519, 520, 6, 39, 18, 0, 520,
|
|
993
|
+
84, 1, 0, 0, 0, 521, 522, 4, 40, 18, 0, 522, 523, 3, 11, 3, 0, 523, 524, 4, 40, 19, 0,
|
|
994
|
+
524, 525, 1, 0, 0, 0, 525, 526, 6, 40, 18, 0, 526, 86, 1, 0, 0, 0, 527, 528, 5, 96, 0,
|
|
995
|
+
0, 528, 529, 1, 0, 0, 0, 529, 530, 6, 41, 27, 0, 530, 88, 1, 0, 0, 0, 531, 532, 5, 41,
|
|
996
|
+
0, 0, 532, 533, 6, 42, 30, 0, 533, 534, 1, 0, 0, 0, 534, 535, 6, 42, 31, 0, 535, 536,
|
|
997
|
+
6, 42, 1, 0, 536, 90, 1, 0, 0, 0, 537, 538, 4, 43, 20, 0, 538, 542, 3, 5, 0, 0, 539, 541,
|
|
998
|
+
7, 7, 0, 0, 540, 539, 1, 0, 0, 0, 541, 544, 1, 0, 0, 0, 542, 540, 1, 0, 0, 0, 542, 543,
|
|
999
|
+
1, 0, 0, 0, 543, 545, 1, 0, 0, 0, 544, 542, 1, 0, 0, 0, 545, 546, 6, 43, 32, 0, 546, 547,
|
|
1000
|
+
1, 0, 0, 0, 547, 548, 6, 43, 8, 0, 548, 549, 6, 43, 9, 0, 549, 92, 1, 0, 0, 0, 550, 551,
|
|
1001
|
+
3, 27, 11, 0, 551, 552, 1, 0, 0, 0, 552, 553, 6, 44, 8, 0, 553, 554, 6, 44, 9, 0, 554,
|
|
1002
|
+
94, 1, 0, 0, 0, 555, 561, 5, 34, 0, 0, 556, 557, 5, 92, 0, 0, 557, 560, 8, 8, 0, 0, 558,
|
|
1003
|
+
560, 8, 12, 0, 0, 559, 556, 1, 0, 0, 0, 559, 558, 1, 0, 0, 0, 560, 563, 1, 0, 0, 0, 561,
|
|
1004
|
+
559, 1, 0, 0, 0, 561, 562, 1, 0, 0, 0, 562, 564, 1, 0, 0, 0, 563, 561, 1, 0, 0, 0, 564,
|
|
1005
|
+
565, 5, 34, 0, 0, 565, 566, 1, 0, 0, 0, 566, 567, 6, 45, 33, 0, 567, 96, 1, 0, 0, 0, 568,
|
|
1006
|
+
570, 8, 13, 0, 0, 569, 568, 1, 0, 0, 0, 570, 571, 1, 0, 0, 0, 571, 569, 1, 0, 0, 0, 571,
|
|
1007
|
+
572, 1, 0, 0, 0, 572, 573, 1, 0, 0, 0, 573, 574, 6, 46, 33, 0, 574, 98, 1, 0, 0, 0, 575,
|
|
1008
|
+
576, 5, 96, 0, 0, 576, 577, 1, 0, 0, 0, 577, 578, 6, 47, 33, 0, 578, 100, 1, 0, 0, 0, 579,
|
|
1009
|
+
580, 5, 34, 0, 0, 580, 581, 1, 0, 0, 0, 581, 582, 6, 48, 33, 0, 582, 102, 1, 0, 0, 0, 583,
|
|
1010
|
+
584, 5, 91, 0, 0, 584, 585, 6, 49, 34, 0, 585, 586, 1, 0, 0, 0, 586, 587, 6, 49, 33, 0,
|
|
1011
|
+
587, 104, 1, 0, 0, 0, 588, 589, 4, 50, 21, 0, 589, 590, 5, 93, 0, 0, 590, 591, 6, 50,
|
|
1012
|
+
35, 0, 591, 592, 1, 0, 0, 0, 592, 593, 6, 50, 33, 0, 593, 106, 1, 0, 0, 0, 594, 595, 5,
|
|
1013
|
+
93, 0, 0, 595, 596, 6, 51, 36, 0, 596, 597, 1, 0, 0, 0, 597, 598, 6, 51, 37, 0, 598, 599,
|
|
1014
|
+
6, 51, 1, 0, 599, 108, 1, 0, 0, 0, 600, 601, 4, 52, 22, 0, 601, 605, 3, 27, 11, 0, 602,
|
|
1015
|
+
604, 7, 7, 0, 0, 603, 602, 1, 0, 0, 0, 604, 607, 1, 0, 0, 0, 605, 603, 1, 0, 0, 0, 605,
|
|
1016
|
+
606, 1, 0, 0, 0, 606, 608, 1, 0, 0, 0, 607, 605, 1, 0, 0, 0, 608, 612, 3, 5, 0, 0, 609,
|
|
1017
|
+
611, 7, 1, 0, 0, 610, 609, 1, 0, 0, 0, 611, 614, 1, 0, 0, 0, 612, 610, 1, 0, 0, 0, 612,
|
|
1018
|
+
613, 1, 0, 0, 0, 613, 618, 1, 0, 0, 0, 614, 612, 1, 0, 0, 0, 615, 617, 7, 7, 0, 0, 616,
|
|
1019
|
+
615, 1, 0, 0, 0, 617, 620, 1, 0, 0, 0, 618, 616, 1, 0, 0, 0, 618, 619, 1, 0, 0, 0, 619,
|
|
1020
|
+
621, 1, 0, 0, 0, 620, 618, 1, 0, 0, 0, 621, 622, 6, 52, 38, 0, 622, 623, 1, 0, 0, 0, 623,
|
|
1021
|
+
624, 6, 52, 8, 0, 624, 625, 6, 52, 9, 0, 625, 110, 1, 0, 0, 0, 626, 630, 4, 53, 23, 0,
|
|
1022
|
+
627, 629, 7, 7, 0, 0, 628, 627, 1, 0, 0, 0, 629, 632, 1, 0, 0, 0, 630, 628, 1, 0, 0, 0,
|
|
1023
|
+
630, 631, 1, 0, 0, 0, 631, 633, 1, 0, 0, 0, 632, 630, 1, 0, 0, 0, 633, 637, 3, 5, 0, 0,
|
|
1024
|
+
634, 636, 7, 1, 0, 0, 635, 634, 1, 0, 0, 0, 636, 639, 1, 0, 0, 0, 637, 635, 1, 0, 0, 0,
|
|
1025
|
+
637, 638, 1, 0, 0, 0, 638, 643, 1, 0, 0, 0, 639, 637, 1, 0, 0, 0, 640, 642, 7, 7, 0, 0,
|
|
1026
|
+
641, 640, 1, 0, 0, 0, 642, 645, 1, 0, 0, 0, 643, 641, 1, 0, 0, 0, 643, 644, 1, 0, 0, 0,
|
|
1027
|
+
644, 646, 1, 0, 0, 0, 645, 643, 1, 0, 0, 0, 646, 647, 6, 53, 39, 0, 647, 648, 1, 0, 0,
|
|
1028
|
+
0, 648, 649, 6, 53, 8, 0, 649, 650, 6, 53, 9, 0, 650, 112, 1, 0, 0, 0, 651, 652, 4, 54,
|
|
1029
|
+
24, 0, 652, 653, 3, 27, 11, 0, 653, 654, 1, 0, 0, 0, 654, 655, 6, 54, 8, 0, 655, 656,
|
|
1030
|
+
6, 54, 9, 0, 656, 114, 1, 0, 0, 0, 657, 659, 8, 14, 0, 0, 658, 657, 1, 0, 0, 0, 659, 660,
|
|
1031
|
+
1, 0, 0, 0, 660, 658, 1, 0, 0, 0, 660, 661, 1, 0, 0, 0, 661, 662, 1, 0, 0, 0, 662, 663,
|
|
1032
|
+
6, 55, 23, 0, 663, 116, 1, 0, 0, 0, 664, 665, 5, 96, 0, 0, 665, 666, 1, 0, 0, 0, 666, 667,
|
|
1033
|
+
6, 56, 23, 0, 667, 118, 1, 0, 0, 0, 668, 669, 5, 13, 0, 0, 669, 670, 5, 10, 0, 0, 670,
|
|
1034
|
+
671, 1, 0, 0, 0, 671, 672, 6, 57, 40, 0, 672, 673, 1, 0, 0, 0, 673, 674, 6, 57, 23, 0,
|
|
1035
|
+
674, 120, 1, 0, 0, 0, 675, 676, 5, 10, 0, 0, 676, 677, 6, 58, 41, 0, 677, 678, 1, 0, 0,
|
|
1036
|
+
0, 678, 679, 6, 58, 23, 0, 679, 122, 1, 0, 0, 0, 680, 681, 5, 13, 0, 0, 681, 682, 1, 0,
|
|
1037
|
+
0, 0, 682, 683, 6, 59, 23, 0, 683, 124, 1, 0, 0, 0, 50, 0, 1, 2, 3, 4, 132, 138, 141, 146,
|
|
1038
|
+
152, 154, 161, 163, 168, 183, 186, 189, 194, 200, 205, 216, 221, 227, 232, 238,
|
|
1039
|
+
247, 261, 273, 288, 317, 337, 354, 364, 408, 426, 438, 444, 475, 496, 542, 559,
|
|
1040
|
+
561, 571, 605, 612, 618, 630, 637, 643, 660, 42, 1, 12, 0, 2, 1, 0, 1, 13, 1, 7, 24,
|
|
1041
|
+
0, 0, 1, 0, 1, 17, 2, 1, 18, 3, 1, 19, 4, 7, 20, 0, 2, 0, 0, 1, 20, 5, 6, 0, 0, 1, 21, 6, 7,
|
|
1042
|
+
14, 0, 2, 2, 0, 1, 22, 7, 7, 16, 0, 2, 3, 0, 7, 18, 0, 7, 25, 0, 1, 27, 8, 1, 28, 9, 1, 29,
|
|
1043
|
+
10, 7, 23, 0, 2, 4, 0, 7, 19, 0, 1, 32, 11, 7, 21, 0, 1, 37, 12, 1, 38, 13, 1, 42, 14, 7,
|
|
1044
|
+
15, 0, 1, 43, 15, 7, 22, 0, 1, 49, 16, 1, 50, 17, 1, 51, 18, 7, 17, 0, 1, 52, 19, 1, 53,
|
|
1045
|
+
20, 1, 57, 21, 1, 58, 22
|
|
1200
1046
|
];
|
|
1201
1047
|
static __ATN;
|
|
1202
1048
|
static get _ATN() {
|