occam-verify-cli 1.0.207 → 1.0.211
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/lib/constants.js +1 -5
- package/lib/dom/assertion/satisfies.js +36 -54
- package/lib/dom/axiom.js +49 -25
- package/lib/dom/metavariable.js +4 -7
- package/lib/dom/signature.js +197 -0
- package/lib/dom/substitution/frame.js +216 -0
- package/lib/dom/substitution/reference.js +203 -0
- package/lib/dom/substitution/statement.js +297 -0
- package/lib/dom/substitution/term.js +237 -0
- package/lib/dom/substitution.js +214 -0
- package/lib/dom/topLevelAssertion.js +21 -10
- package/lib/dom/topLevelMetaAssertion.js +4 -4
- package/lib/dom/variable.js +9 -10
- package/lib/index.js +6 -1
- package/lib/mixins/step/unify.js +3 -4
- package/lib/node/assertion/satisfies.js +5 -5
- package/lib/node/signature.js +116 -0
- package/lib/node/topLevelAssertion.js +8 -18
- package/lib/nonTerminalNodeMap.js +3 -2
- package/lib/ruleNames.js +5 -1
- package/lib/substitutions.js +2 -14
- package/lib/unifier/metaLevel.js +2 -4
- package/lib/utilities/json.js +49 -12
- package/lib/utilities/node.js +36 -1
- package/lib/utilities/substitutions.js +2 -4
- package/package.json +1 -1
- package/src/constants.js +0 -1
- package/src/dom/assertion/satisfies.js +45 -72
- package/src/dom/axiom.js +59 -31
- package/src/dom/metavariable.js +6 -6
- package/src/dom/signature.js +145 -0
- package/src/{substitution → dom/substitution}/frame.js +6 -4
- package/src/{substitution → dom/substitution}/reference.js +6 -4
- package/src/{substitution → dom/substitution}/statement.js +8 -7
- package/src/{substitution → dom/substitution}/term.js +7 -6
- package/src/dom/topLevelAssertion.js +26 -11
- package/src/dom/topLevelMetaAssertion.js +2 -2
- package/src/dom/variable.js +8 -10
- package/src/index.js +5 -0
- package/src/mixins/step/unify.js +4 -3
- package/src/node/assertion/satisfies.js +5 -5
- package/src/node/signature.js +16 -0
- package/src/node/topLevelAssertion.js +8 -21
- package/src/nonTerminalNodeMap.js +4 -1
- package/src/ruleNames.js +1 -0
- package/src/substitutions.js +3 -15
- package/src/unifier/metaLevel.js +2 -3
- package/src/utilities/json.js +60 -13
- package/src/utilities/node.js +45 -0
- package/src/utilities/substitutions.js +2 -3
- package/lib/substitution/frame.js +0 -175
- package/lib/substitution/reference.js +0 -162
- package/lib/substitution/statement.js +0 -296
- package/lib/substitution/term.js +0 -196
- package/lib/substitution.js +0 -214
- /package/src/{substitution.js → dom/substitution.js} +0 -0
package/src/mixins/step/unify.js
CHANGED
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
import dom from "../../dom";
|
|
4
4
|
import Substitutions from "../../substitutions";
|
|
5
|
-
import StatementSubstitution from "../../substitution/statement";
|
|
6
5
|
|
|
7
6
|
import { equalityFromStatement,
|
|
8
7
|
judgementFromStatement,
|
|
@@ -48,7 +47,8 @@ function unifyAWithReference(statement, reference, substitutions, context) {
|
|
|
48
47
|
|
|
49
48
|
context.trace(`Unifying the '${statementString}' statement with the '${referenceString}' reference...`);
|
|
50
49
|
|
|
51
|
-
const
|
|
50
|
+
const { StatementSubstitution } = dom,
|
|
51
|
+
metavariable = reference.getMetavariable(),
|
|
52
52
|
specificContext = context, ///
|
|
53
53
|
statementSubstitution = StatementSubstitution.fromStatementAndMetavariable(statement, metavariable, context),
|
|
54
54
|
substitution = statementSubstitution; ///
|
|
@@ -123,7 +123,8 @@ function unifyAWithAxiomLemmaTheoremOrConjecture(statement, reference, substitut
|
|
|
123
123
|
const statementAndStepsUnified = axiomLemmaTheoremConjecture.unifyStatementAndStepsOrSubproofs(statement, stepsOrSubproofs, substitutions, context);
|
|
124
124
|
|
|
125
125
|
if (statementAndStepsUnified) {
|
|
126
|
-
const
|
|
126
|
+
const { StatementSubstitution } = dom,
|
|
127
|
+
metavariable = reference.getMetavariable(),
|
|
127
128
|
specificContext = context, ///
|
|
128
129
|
statementSubstitution = StatementSubstitution.fromStatementAndMetavariable(statement, metavariable, context),
|
|
129
130
|
substitution = statementSubstitution; ///
|
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
import NonTerminalNode from "../../node/nonTerminal";
|
|
4
4
|
|
|
5
|
-
import {
|
|
5
|
+
import { SIGNATURE_RULE_NAME, METAVARIABLE_RULE_NAME } from "../../ruleNames";
|
|
6
6
|
|
|
7
7
|
export default class SatisfiesAssertionNode extends NonTerminalNode {
|
|
8
|
-
|
|
9
|
-
const ruleName =
|
|
10
|
-
|
|
8
|
+
getSignatureNode() {
|
|
9
|
+
const ruleName = SIGNATURE_RULE_NAME,
|
|
10
|
+
signatureNode = this.getNodeByRuleName(ruleName);
|
|
11
11
|
|
|
12
|
-
return
|
|
12
|
+
return signatureNode;
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
getMetavariableNode() {
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import NonTerminalNode from "../node/nonTerminal";
|
|
4
|
+
|
|
5
|
+
import { TERM_RULE_NAME } from "../ruleNames";
|
|
6
|
+
|
|
7
|
+
export default class SignatureNode extends NonTerminalNode {
|
|
8
|
+
getTermNodes() {
|
|
9
|
+
const ruleName = TERM_RULE_NAME,
|
|
10
|
+
termNodes = this.getNodesByRuleName(ruleName);
|
|
11
|
+
|
|
12
|
+
return termNodes;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return NonTerminalNode.fromRuleNameChildNodesOpacityAndPrecedence(SignatureNode, ruleName, childNodes, opacity, precedence); }
|
|
16
|
+
}
|
|
@@ -2,33 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
import NonTerminalNode from "../node/nonTerminal";
|
|
4
4
|
|
|
5
|
-
import { SATISFIABLE } from "../constants";
|
|
6
5
|
import { PROOF_RULE_NAME,
|
|
7
6
|
DEDUCTION_RULE_NAME,
|
|
7
|
+
SIGNATURE_RULE_NAME,
|
|
8
8
|
SUPPOSITION_RULE_NAME,
|
|
9
9
|
PARENTHESISED_LABELS_RULE_NAME } from "../ruleNames";
|
|
10
10
|
|
|
11
11
|
export default class TopLevelAssertionNode extends NonTerminalNode {
|
|
12
|
-
isSatisfiable() {
|
|
13
|
-
let satisfiable = false;
|
|
14
|
-
|
|
15
|
-
this.someChildNode((childNode, index) => {
|
|
16
|
-
const terminalNode = childNode,
|
|
17
|
-
content = terminalNode.getContent(),
|
|
18
|
-
contentSatisfiable = (content === SATISFIABLE);
|
|
19
|
-
|
|
20
|
-
if (contentSatisfiable) {
|
|
21
|
-
satisfiable = true;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
if (index === 0) {
|
|
25
|
-
return true;
|
|
26
|
-
}
|
|
27
|
-
});
|
|
28
|
-
|
|
29
|
-
return satisfiable;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
12
|
getLabelNodes() {
|
|
33
13
|
let labelNodes = [];
|
|
34
14
|
|
|
@@ -55,6 +35,13 @@ export default class TopLevelAssertionNode extends NonTerminalNode {
|
|
|
55
35
|
return deductionNode;
|
|
56
36
|
}
|
|
57
37
|
|
|
38
|
+
getSignatureNode() {
|
|
39
|
+
const ruleName = SIGNATURE_RULE_NAME,
|
|
40
|
+
signatureNode = this.getNodeByRuleName(ruleName);
|
|
41
|
+
|
|
42
|
+
return signatureNode;
|
|
43
|
+
}
|
|
44
|
+
|
|
58
45
|
getSuppositionNodes() {
|
|
59
46
|
const ruleName = SUPPOSITION_RULE_NAME,
|
|
60
47
|
suppositionNodes = this.getNodesByRuleName(ruleName);
|
|
@@ -26,6 +26,7 @@ import DeductionNode from "./node/deduction";
|
|
|
26
26
|
import JudgementNode from "./node/judgement";
|
|
27
27
|
import MetaLemmaNode from "./node/metaLemma";
|
|
28
28
|
import ParameterNode from "./node/parameter";
|
|
29
|
+
import SignatureNode from "./node/signature";
|
|
29
30
|
import DerivationNode from "./node/derivation";
|
|
30
31
|
import CombinatorNode from "./node/combinator";
|
|
31
32
|
import ConclusionNode from "./node/conclusion";
|
|
@@ -79,6 +80,7 @@ import { RULE_RULE_NAME,
|
|
|
79
80
|
EQUALITY_RULE_NAME,
|
|
80
81
|
VARIABLE_RULE_NAME,
|
|
81
82
|
META_TYPE_RULE_NAME,
|
|
83
|
+
SIGNATURE_RULE_NAME,
|
|
82
84
|
DEDUCTION_RULE_NAME,
|
|
83
85
|
JUDGEMENT_RULE_NAME,
|
|
84
86
|
PARAMETER_RULE_NAME,
|
|
@@ -138,9 +140,10 @@ const nonTerminalNodeMap = {
|
|
|
138
140
|
[SUBPROOF_RULE_NAME]: SubproofNode,
|
|
139
141
|
[EQUALITY_RULE_NAME]: EqualityNode,
|
|
140
142
|
[VARIABLE_RULE_NAME]: VariableNode,
|
|
143
|
+
[META_TYPE_RULE_NAME]: MetaTypeNode,
|
|
144
|
+
[SIGNATURE_RULE_NAME]: SignatureNode,
|
|
141
145
|
[REFERENCE_RULE_NAME]: ReferenceNode,
|
|
142
146
|
[JUDGEMENT_RULE_NAME]: JudgementNode,
|
|
143
|
-
[META_TYPE_RULE_NAME]: MetaTypeNode,
|
|
144
147
|
[DEDUCTION_RULE_NAME]: DeductionNode,
|
|
145
148
|
[PARAMETER_RULE_NAME]: ParameterNode,
|
|
146
149
|
[STATEMENT_RULE_NAME]: StatementNode,
|
package/src/ruleNames.js
CHANGED
|
@@ -19,6 +19,7 @@ export const PROPERTY_RULE_NAME = "property";
|
|
|
19
19
|
export const EQUALITY_RULE_NAME = "equality";
|
|
20
20
|
export const VARIABLE_RULE_NAME = "variable";
|
|
21
21
|
export const SUBPROOF_RULE_NAME = "subproof";
|
|
22
|
+
export const SIGNATURE_RULE_NAME = "signature";
|
|
22
23
|
export const META_TYPE_RULE_NAME = "metaType";
|
|
23
24
|
export const PARAMETER_RULE_NAME = "parameter";
|
|
24
25
|
export const DEDUCTION_RULE_NAME = "deduction";
|
package/src/substitutions.js
CHANGED
|
@@ -202,7 +202,9 @@ export default class Substitutions {
|
|
|
202
202
|
|
|
203
203
|
matchSubstitutions(substitutions) {
|
|
204
204
|
const array = substitutions.getArray(),
|
|
205
|
-
|
|
205
|
+
arrayA = array, ///
|
|
206
|
+
arrayB = this.array, ///
|
|
207
|
+
correlates = correlate(arrayA, arrayB, (substitutionA, substitutionB) => {
|
|
206
208
|
const substitutionAMatchesSubstitutionB = substitutionA.match(substitutionB);
|
|
207
209
|
|
|
208
210
|
if (substitutionAMatchesSubstitutionB) {
|
|
@@ -214,20 +216,6 @@ export default class Substitutions {
|
|
|
214
216
|
return match;
|
|
215
217
|
}
|
|
216
218
|
|
|
217
|
-
matchTerms(terms) {
|
|
218
|
-
const correlates = correlate(terms, this.array, (term, substitution) => {
|
|
219
|
-
const substitutionTerm = substitution.getTerm(),
|
|
220
|
-
substitutionTermEqualToTerm = substitutionTerm.isEqualTo(term);
|
|
221
|
-
|
|
222
|
-
if (substitutionTermEqualToTerm) {
|
|
223
|
-
return true;
|
|
224
|
-
}
|
|
225
|
-
}),
|
|
226
|
-
termsMatch = correlates; ///
|
|
227
|
-
|
|
228
|
-
return termsMatch;
|
|
229
|
-
}
|
|
230
|
-
|
|
231
219
|
clear() {
|
|
232
220
|
clear(this.array);
|
|
233
221
|
|
package/src/unifier/metaLevel.js
CHANGED
|
@@ -2,8 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
import dom from "../dom";
|
|
4
4
|
import Unifier from "../unifier";
|
|
5
|
-
import TermSubstitution from "../substitution/term";
|
|
6
|
-
import FrameSubstitution from "../substitution/frame";
|
|
7
5
|
|
|
8
6
|
import { nodeQuery } from "../utilities/query";
|
|
9
7
|
|
|
@@ -45,7 +43,8 @@ class MetaLevelUnifier extends Unifier {
|
|
|
45
43
|
|
|
46
44
|
statementNode = generalStatementNode; ///
|
|
47
45
|
|
|
48
|
-
const
|
|
46
|
+
const { TermSubstitution, FrameSubstitution } = dom,
|
|
47
|
+
frameSubstitution = FrameSubstitution.fromStatementNode(statementNode, context),
|
|
49
48
|
termSubstitution = TermSubstitution.fromStatementNode(statementNode, context),
|
|
50
49
|
metavariable = Metavariable.fromStatementNode(statementNode, context),
|
|
51
50
|
substitution = (frameSubstitution || termSubstitution);
|
package/src/utilities/json.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import dom from "../dom";
|
|
4
|
-
import StatementSubstitution from "../substitution/statement";
|
|
5
4
|
|
|
6
5
|
export function termFromJSON(json, fileContext) {
|
|
7
6
|
let { term } = json;
|
|
@@ -84,10 +83,19 @@ export function deductionFromJSON(json, fileContext) {
|
|
|
84
83
|
return deduction;
|
|
85
84
|
}
|
|
86
85
|
|
|
87
|
-
export function
|
|
88
|
-
|
|
86
|
+
export function signatureFromJSON(json, fileContext) {
|
|
87
|
+
let { signature = null } = json;
|
|
89
88
|
|
|
90
|
-
|
|
89
|
+
if (signature !== null) {
|
|
90
|
+
const { Signature } = dom,
|
|
91
|
+
signatureJSON = signature; ///
|
|
92
|
+
|
|
93
|
+
json = signatureJSON; ///
|
|
94
|
+
|
|
95
|
+
signature = Signature.fromJSON(json, fileContext);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
return signature;
|
|
91
99
|
}
|
|
92
100
|
|
|
93
101
|
export function conclusionFromJSON(json, fileContext) {
|
|
@@ -144,15 +152,31 @@ export function typesFromJSON(json, types, fileContext) {
|
|
|
144
152
|
});
|
|
145
153
|
}
|
|
146
154
|
|
|
155
|
+
export function termsFromJSON(json, fileContext) {
|
|
156
|
+
let { terms } = json;
|
|
157
|
+
|
|
158
|
+
const { Term } = dom,
|
|
159
|
+
termsJSON = terms; ///
|
|
160
|
+
|
|
161
|
+
terms = termsJSON.map((termJSON) => {
|
|
162
|
+
const json = termJSON, ///
|
|
163
|
+
term = Term.fromJSON(json, fileContext);
|
|
164
|
+
|
|
165
|
+
return term;
|
|
166
|
+
});
|
|
167
|
+
|
|
168
|
+
return terms;
|
|
169
|
+
}
|
|
170
|
+
|
|
147
171
|
export function rulesFromJSON(json, fileContext) {
|
|
148
172
|
let { rules } = json;
|
|
149
173
|
|
|
150
174
|
const { Rule } = dom,
|
|
151
|
-
|
|
175
|
+
rulesJSON = rules; ///
|
|
152
176
|
|
|
153
177
|
rules = rulesJSON.map((ruleJSON) => {
|
|
154
178
|
const json = ruleJSON, ///
|
|
155
|
-
|
|
179
|
+
rule = Rule.fromJSON(json, fileContext);
|
|
156
180
|
|
|
157
181
|
return rule;
|
|
158
182
|
});
|
|
@@ -383,7 +407,8 @@ export function suppositionsFromJSON(json, fileContext) {
|
|
|
383
407
|
export function substitutionsFromJSON(json, fileContext) {
|
|
384
408
|
let { substitutions = [] } = json; ///
|
|
385
409
|
|
|
386
|
-
const
|
|
410
|
+
const { StatementSubstitution } = dom,
|
|
411
|
+
substitutionsJSON = substitutions, ///
|
|
387
412
|
Substitution = StatementSubstitution; ///
|
|
388
413
|
|
|
389
414
|
substitutions = substitutionsJSON.map((substitutionJSON) => {
|
|
@@ -461,18 +486,28 @@ export function statementToStatementJSON(statement) {
|
|
|
461
486
|
return statementJSON;
|
|
462
487
|
}
|
|
463
488
|
|
|
464
|
-
export function conclusionToConclusionJSON(conclusion) {
|
|
465
|
-
const conclusionJSON = conclusion.toJSON();
|
|
466
|
-
|
|
467
|
-
return conclusionJSON;
|
|
468
|
-
}
|
|
469
|
-
|
|
470
489
|
export function deductionToDeductionJSON(deduction) {
|
|
471
490
|
const deductionJSON = deduction.toJSON();
|
|
472
491
|
|
|
473
492
|
return deductionJSON;
|
|
474
493
|
}
|
|
475
494
|
|
|
495
|
+
export function signatureToSignatureJSON(signature) {
|
|
496
|
+
let signatureJSON = null;
|
|
497
|
+
|
|
498
|
+
if (signature !== null) {
|
|
499
|
+
signatureJSON = signature.toJSON();
|
|
500
|
+
}
|
|
501
|
+
|
|
502
|
+
return signatureJSON;
|
|
503
|
+
}
|
|
504
|
+
|
|
505
|
+
export function conclusionToConclusionJSON(conclusion) {
|
|
506
|
+
const conclusionJSON = conclusion.toJSON();
|
|
507
|
+
|
|
508
|
+
return conclusionJSON;
|
|
509
|
+
}
|
|
510
|
+
|
|
476
511
|
export function metavariableToMetavariableJSON(metavariable) {
|
|
477
512
|
const metavariableJSON = metavariable.toJSON();
|
|
478
513
|
|
|
@@ -501,6 +536,18 @@ export function typesToTypesJSON(types) {
|
|
|
501
536
|
return typesJSON;
|
|
502
537
|
}
|
|
503
538
|
|
|
539
|
+
export function termsToTermsJSON(terms) {
|
|
540
|
+
const termsJSON = terms.map((term) => {
|
|
541
|
+
const termJSON = term.toJSON();
|
|
542
|
+
|
|
543
|
+
term = termJSON; ///
|
|
544
|
+
|
|
545
|
+
return term;
|
|
546
|
+
});
|
|
547
|
+
|
|
548
|
+
return termsJSON;
|
|
549
|
+
}
|
|
550
|
+
|
|
504
551
|
export function rulesToRulesJSON(rules) {
|
|
505
552
|
const rulesJSON = rules.map((rule) => {
|
|
506
553
|
const ruleJSON = rule.toJSON();
|
package/src/utilities/node.js
CHANGED
|
@@ -43,3 +43,48 @@ export function statementFromStatementNode(statementNode, context) {
|
|
|
43
43
|
|
|
44
44
|
return statement;
|
|
45
45
|
}
|
|
46
|
+
|
|
47
|
+
export function termsFromTermNodes(termNodes, context) {
|
|
48
|
+
const terms = termNodes.map((termNode) => {
|
|
49
|
+
const term = termFromTermNode(termNode, context);
|
|
50
|
+
|
|
51
|
+
return term;
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
return terms;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
export function variableFromTerm(term, context) {
|
|
58
|
+
let variable = null;
|
|
59
|
+
|
|
60
|
+
const termNode = term.getNode(),
|
|
61
|
+
singularVariableNode = termNode.getSingularVariableNode();
|
|
62
|
+
|
|
63
|
+
if (singularVariableNode !== null) {
|
|
64
|
+
const { Variable } = dom,
|
|
65
|
+
variableNode = singularVariableNode; ///
|
|
66
|
+
|
|
67
|
+
variable = Variable.fromVariableNode(variableNode, context);
|
|
68
|
+
|
|
69
|
+
const type = term.getType();
|
|
70
|
+
|
|
71
|
+
variable.setType(type);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
return variable;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
export function stringFromTerms(terms) {
|
|
78
|
+
const termsString = terms.reduce((termsString, term) => {
|
|
79
|
+
const termString = term.getString();
|
|
80
|
+
|
|
81
|
+
termsString = (termsString !== null) ?
|
|
82
|
+
`${termsString}, ${termString}` :
|
|
83
|
+
termString;
|
|
84
|
+
|
|
85
|
+
return termsString;
|
|
86
|
+
}, null),
|
|
87
|
+
string = `[${termsString}]`;
|
|
88
|
+
|
|
89
|
+
return string;
|
|
90
|
+
}
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import dom from "../dom";
|
|
4
|
-
import TermSubstitution from "../substitution/term";
|
|
5
|
-
import FrameSubstitution from "../substitution/frame";
|
|
6
4
|
|
|
7
5
|
export function termFromTermAndSubstitutions(term, substitutions, context) {
|
|
8
6
|
if (term !== null) {
|
|
@@ -57,7 +55,8 @@ export function statementFromStatementAndSubstitutions(statement, substitutions,
|
|
|
57
55
|
if (metavariable !== null) {
|
|
58
56
|
let substitution;
|
|
59
57
|
|
|
60
|
-
const
|
|
58
|
+
const { TermSubstitution, FrameSubstitution } = dom,
|
|
59
|
+
termSubstitution = TermSubstitution.fromStatementNode(statementNode, context),
|
|
61
60
|
frameSubstitution = FrameSubstitution.fromStatementNode(statementNode, context);
|
|
62
61
|
|
|
63
62
|
substitution = (termSubstitution || frameSubstitution);
|
|
@@ -1,175 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "default", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return FrameSubstitution;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
var _dom = /*#__PURE__*/ _interop_require_default(require("../dom"));
|
|
12
|
-
var _substitution = /*#__PURE__*/ _interop_require_default(require("../substitution"));
|
|
13
|
-
var _frame = /*#__PURE__*/ _interop_require_default(require("../context/partial/substitution/frame"));
|
|
14
|
-
function _assert_this_initialized(self) {
|
|
15
|
-
if (self === void 0) {
|
|
16
|
-
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
|
|
17
|
-
}
|
|
18
|
-
return self;
|
|
19
|
-
}
|
|
20
|
-
function _call_super(_this, derived, args) {
|
|
21
|
-
derived = _get_prototype_of(derived);
|
|
22
|
-
return _possible_constructor_return(_this, _is_native_reflect_construct() ? Reflect.construct(derived, args || [], _get_prototype_of(_this).constructor) : derived.apply(_this, args));
|
|
23
|
-
}
|
|
24
|
-
function _class_call_check(instance, Constructor) {
|
|
25
|
-
if (!(instance instanceof Constructor)) {
|
|
26
|
-
throw new TypeError("Cannot call a class as a function");
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
function _defineProperties(target, props) {
|
|
30
|
-
for(var i = 0; i < props.length; i++){
|
|
31
|
-
var descriptor = props[i];
|
|
32
|
-
descriptor.enumerable = descriptor.enumerable || false;
|
|
33
|
-
descriptor.configurable = true;
|
|
34
|
-
if ("value" in descriptor) descriptor.writable = true;
|
|
35
|
-
Object.defineProperty(target, descriptor.key, descriptor);
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
function _create_class(Constructor, protoProps, staticProps) {
|
|
39
|
-
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
|
40
|
-
if (staticProps) _defineProperties(Constructor, staticProps);
|
|
41
|
-
return Constructor;
|
|
42
|
-
}
|
|
43
|
-
function _get_prototype_of(o) {
|
|
44
|
-
_get_prototype_of = Object.setPrototypeOf ? Object.getPrototypeOf : function getPrototypeOf(o) {
|
|
45
|
-
return o.__proto__ || Object.getPrototypeOf(o);
|
|
46
|
-
};
|
|
47
|
-
return _get_prototype_of(o);
|
|
48
|
-
}
|
|
49
|
-
function _inherits(subClass, superClass) {
|
|
50
|
-
if (typeof superClass !== "function" && superClass !== null) {
|
|
51
|
-
throw new TypeError("Super expression must either be null or a function");
|
|
52
|
-
}
|
|
53
|
-
subClass.prototype = Object.create(superClass && superClass.prototype, {
|
|
54
|
-
constructor: {
|
|
55
|
-
value: subClass,
|
|
56
|
-
writable: true,
|
|
57
|
-
configurable: true
|
|
58
|
-
}
|
|
59
|
-
});
|
|
60
|
-
if (superClass) _set_prototype_of(subClass, superClass);
|
|
61
|
-
}
|
|
62
|
-
function _interop_require_default(obj) {
|
|
63
|
-
return obj && obj.__esModule ? obj : {
|
|
64
|
-
default: obj
|
|
65
|
-
};
|
|
66
|
-
}
|
|
67
|
-
function _possible_constructor_return(self, call) {
|
|
68
|
-
if (call && (_type_of(call) === "object" || typeof call === "function")) {
|
|
69
|
-
return call;
|
|
70
|
-
}
|
|
71
|
-
return _assert_this_initialized(self);
|
|
72
|
-
}
|
|
73
|
-
function _set_prototype_of(o, p) {
|
|
74
|
-
_set_prototype_of = Object.setPrototypeOf || function setPrototypeOf(o, p) {
|
|
75
|
-
o.__proto__ = p;
|
|
76
|
-
return o;
|
|
77
|
-
};
|
|
78
|
-
return _set_prototype_of(o, p);
|
|
79
|
-
}
|
|
80
|
-
function _type_of(obj) {
|
|
81
|
-
"@swc/helpers - typeof";
|
|
82
|
-
return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
|
|
83
|
-
}
|
|
84
|
-
function _is_native_reflect_construct() {
|
|
85
|
-
try {
|
|
86
|
-
var result = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));
|
|
87
|
-
} catch (_) {}
|
|
88
|
-
return (_is_native_reflect_construct = function() {
|
|
89
|
-
return !!result;
|
|
90
|
-
})();
|
|
91
|
-
}
|
|
92
|
-
var FrameSubstitution = /*#__PURE__*/ function(Substitution) {
|
|
93
|
-
_inherits(FrameSubstitution, Substitution);
|
|
94
|
-
function FrameSubstitution(string, node, tokens, frame, metavariable) {
|
|
95
|
-
_class_call_check(this, FrameSubstitution);
|
|
96
|
-
var _this;
|
|
97
|
-
_this = _call_super(this, FrameSubstitution, [
|
|
98
|
-
string,
|
|
99
|
-
node,
|
|
100
|
-
tokens
|
|
101
|
-
]);
|
|
102
|
-
_this.frame = frame;
|
|
103
|
-
_this.metavariable = metavariable;
|
|
104
|
-
return _this;
|
|
105
|
-
}
|
|
106
|
-
_create_class(FrameSubstitution, [
|
|
107
|
-
{
|
|
108
|
-
key: "getFrame",
|
|
109
|
-
value: function getFrame() {
|
|
110
|
-
return this.frame;
|
|
111
|
-
}
|
|
112
|
-
},
|
|
113
|
-
{
|
|
114
|
-
key: "getMetavariable",
|
|
115
|
-
value: function getMetavariable() {
|
|
116
|
-
return this.metavariable;
|
|
117
|
-
}
|
|
118
|
-
},
|
|
119
|
-
{
|
|
120
|
-
key: "isFrameEqualTo",
|
|
121
|
-
value: function isFrameEqualTo(frame) {
|
|
122
|
-
return this.frame.isEqualTo(frame);
|
|
123
|
-
}
|
|
124
|
-
},
|
|
125
|
-
{
|
|
126
|
-
key: "isMetavariableEqualTo",
|
|
127
|
-
value: function isMetavariableEqualTo(metavariable) {
|
|
128
|
-
return this.metavariable.isEqualTo(metavariable);
|
|
129
|
-
}
|
|
130
|
-
},
|
|
131
|
-
{
|
|
132
|
-
key: "matchName",
|
|
133
|
-
value: function matchName(name) {
|
|
134
|
-
return this.metavariable.matchName(name);
|
|
135
|
-
}
|
|
136
|
-
},
|
|
137
|
-
{
|
|
138
|
-
key: "getReplacementNode",
|
|
139
|
-
value: function getReplacementNode() {
|
|
140
|
-
var frameNode = this.frame.getNode(), replacementNode = frameNode; ///
|
|
141
|
-
return replacementNode;
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
], [
|
|
145
|
-
{
|
|
146
|
-
key: "fromStatementNode",
|
|
147
|
-
value: function fromStatementNode(statementNode, context) {
|
|
148
|
-
var frameSubstitution = null;
|
|
149
|
-
var frameSubstitutionNode = statementNode.getFrameSubstitutionNode();
|
|
150
|
-
if (frameSubstitutionNode !== null) {
|
|
151
|
-
var lastFrameNode = frameSubstitutionNode.getLastFrameNode(), firstFrameNode = frameSubstitutionNode.getFirstFrameNode(), singularMetavariableNode = lastFrameNode.getSingularMetavariableNode();
|
|
152
|
-
if (singularMetavariableNode !== null) {
|
|
153
|
-
var Frame = _dom.default.Frame, Metavariable = _dom.default.Metavariable, frameNode = firstFrameNode, metavariableNode = singularMetavariableNode, frame = Frame.fromFrameNode(frameNode, context), metavariable = Metavariable.fromMetavariableNode(metavariableNode, context), node = frameSubstitutionNode, tokens = context.nodeAsTokens(node), string = stringFromFrameAndMetavariable(frame, metavariable);
|
|
154
|
-
frameSubstitution = new FrameSubstitution(string, node, tokens, frame, metavariable);
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
return frameSubstitution;
|
|
158
|
-
}
|
|
159
|
-
},
|
|
160
|
-
{
|
|
161
|
-
key: "fromFrameAndMetavariable",
|
|
162
|
-
value: function fromFrameAndMetavariable(frame, metavariable, context) {
|
|
163
|
-
var string = stringFromFrameAndMetavariable(frame, metavariable), lexer = context.getLexer(), parser = context.getParser(), frameSubstitutionPartialContext = _frame.default.fromStringLexerAndParser(string, lexer, parser), node = frameSubstitutionPartialContext.getNode(), tokens = frameSubstitutionPartialContext.getTokens(), frameSubstitution = new FrameSubstitution(string, node, tokens, frame, metavariable);
|
|
164
|
-
return frameSubstitution;
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
]);
|
|
168
|
-
return FrameSubstitution;
|
|
169
|
-
}(_substitution.default);
|
|
170
|
-
function stringFromFrameAndMetavariable(frame, metavariable) {
|
|
171
|
-
var frameString = frame.getString(), metavariableString = metavariable.getString(), string = "[".concat(frameString, " for [").concat(metavariableString, "]]");
|
|
172
|
-
return string;
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdWJzdGl0dXRpb24vZnJhbWUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBkb20gZnJvbSBcIi4uL2RvbVwiO1xuaW1wb3J0IFN1YnN0aXR1dGlvbiBmcm9tIFwiLi4vc3Vic3RpdHV0aW9uXCI7XG5pbXBvcnQgRnJhbWVTdWJzdGl0dXRpb25QYXJ0aWFsQ29udGV4dCBmcm9tIFwiLi4vY29udGV4dC9wYXJ0aWFsL3N1YnN0aXR1dGlvbi9mcmFtZVwiO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBGcmFtZVN1YnN0aXR1dGlvbiBleHRlbmRzIFN1YnN0aXR1dGlvbiB7XG4gIGNvbnN0cnVjdG9yKHN0cmluZywgbm9kZSwgdG9rZW5zLCBmcmFtZSwgbWV0YXZhcmlhYmxlKSB7XG4gICAgc3VwZXIoc3RyaW5nLCBub2RlLCB0b2tlbnMpO1xuXG4gICAgdGhpcy5mcmFtZSA9IGZyYW1lO1xuICAgIHRoaXMubWV0YXZhcmlhYmxlID0gbWV0YXZhcmlhYmxlO1xuICB9XG5cbiAgZ2V0RnJhbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuZnJhbWU7XG4gIH1cblxuICBnZXRNZXRhdmFyaWFibGUoKSB7XG4gICAgcmV0dXJuIHRoaXMubWV0YXZhcmlhYmxlO1xuICB9XG5cbiAgaXNGcmFtZUVxdWFsVG8oZnJhbWUpIHsgcmV0dXJuIHRoaXMuZnJhbWUuaXNFcXVhbFRvKGZyYW1lKTsgfVxuXG4gIGlzTWV0YXZhcmlhYmxlRXF1YWxUbyhtZXRhdmFyaWFibGUpIHsgcmV0dXJuIHRoaXMubWV0YXZhcmlhYmxlLmlzRXF1YWxUbyhtZXRhdmFyaWFibGUpOyB9XG5cbiAgbWF0Y2hOYW1lKG5hbWUpIHsgcmV0dXJuIHRoaXMubWV0YXZhcmlhYmxlLm1hdGNoTmFtZShuYW1lKTsgfVxuXG4gIGdldFJlcGxhY2VtZW50Tm9kZSgpIHtcbiAgICBjb25zdCBmcmFtZU5vZGUgPSB0aGlzLmZyYW1lLmdldE5vZGUoKSxcbiAgICAgICAgICByZXBsYWNlbWVudE5vZGUgPSBmcmFtZU5vZGU7IC8vL1xuXG4gICAgcmV0dXJuIHJlcGxhY2VtZW50Tm9kZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tU3RhdGVtZW50Tm9kZShzdGF0ZW1lbnROb2RlLCBjb250ZXh0KSB7XG4gICAgbGV0IGZyYW1lU3Vic3RpdHV0aW9uID0gbnVsbDtcblxuICAgIGNvbnN0IGZyYW1lU3Vic3RpdHV0aW9uTm9kZSA9IHN0YXRlbWVudE5vZGUuZ2V0RnJhbWVTdWJzdGl0dXRpb25Ob2RlKCk7XG5cbiAgICBpZiAoZnJhbWVTdWJzdGl0dXRpb25Ob2RlICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBsYXN0RnJhbWVOb2RlID0gZnJhbWVTdWJzdGl0dXRpb25Ob2RlLmdldExhc3RGcmFtZU5vZGUoKSxcbiAgICAgICAgICAgIGZpcnN0RnJhbWVOb2RlID0gZnJhbWVTdWJzdGl0dXRpb25Ob2RlLmdldEZpcnN0RnJhbWVOb2RlKCksXG4gICAgICAgICAgICBzaW5ndWxhck1ldGF2YXJpYWJsZU5vZGUgPSBsYXN0RnJhbWVOb2RlLmdldFNpbmd1bGFyTWV0YXZhcmlhYmxlTm9kZSgpO1xuXG4gICAgICBpZiAoc2luZ3VsYXJNZXRhdmFyaWFibGVOb2RlICE9PSBudWxsKSB7XG4gICAgICAgIGNvbnN0IHsgRnJhbWUsIE1ldGF2YXJpYWJsZSB9ID0gZG9tLFxuICAgICAgICAgICAgICBmcmFtZU5vZGUgPSBmaXJzdEZyYW1lTm9kZSwgLy8vXG4gICAgICAgICAgICAgIG1ldGF2YXJpYWJsZU5vZGUgPSBzaW5ndWxhck1ldGF2YXJpYWJsZU5vZGUsICAvLy9cbiAgICAgICAgICAgICAgZnJhbWUgPSBGcmFtZS5mcm9tRnJhbWVOb2RlKGZyYW1lTm9kZSwgY29udGV4dCksXG4gICAgICAgICAgICAgIG1ldGF2YXJpYWJsZSA9IE1ldGF2YXJpYWJsZS5mcm9tTWV0YXZhcmlhYmxlTm9kZShtZXRhdmFyaWFibGVOb2RlLCBjb250ZXh0KSxcbiAgICAgICAgICAgICAgbm9kZSA9IGZyYW1lU3Vic3RpdHV0aW9uTm9kZSwgIC8vL1xuICAgICAgICAgICAgICB0b2tlbnMgPSBjb250ZXh0Lm5vZGVBc1Rva2Vucyhub2RlKSxcbiAgICAgICAgICAgICAgc3RyaW5nID0gc3RyaW5nRnJvbUZyYW1lQW5kTWV0YXZhcmlhYmxlKGZyYW1lLCBtZXRhdmFyaWFibGUpO1xuXG4gICAgICAgIGZyYW1lU3Vic3RpdHV0aW9uID0gbmV3IEZyYW1lU3Vic3RpdHV0aW9uKHN0cmluZywgbm9kZSwgdG9rZW5zLCBmcmFtZSwgbWV0YXZhcmlhYmxlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZnJhbWVTdWJzdGl0dXRpb247XG4gIH1cblxuICBzdGF0aWMgZnJvbUZyYW1lQW5kTWV0YXZhcmlhYmxlKGZyYW1lLCBtZXRhdmFyaWFibGUsIGNvbnRleHQpIHtcbiAgICBjb25zdCBzdHJpbmcgPSBzdHJpbmdGcm9tRnJhbWVBbmRNZXRhdmFyaWFibGUoZnJhbWUsIG1ldGF2YXJpYWJsZSksXG4gICAgICAgICAgbGV4ZXIgPSBjb250ZXh0LmdldExleGVyKCksXG4gICAgICAgICAgcGFyc2VyID0gY29udGV4dC5nZXRQYXJzZXIoKSxcbiAgICAgICAgICBmcmFtZVN1YnN0aXR1dGlvblBhcnRpYWxDb250ZXh0ID0gRnJhbWVTdWJzdGl0dXRpb25QYXJ0aWFsQ29udGV4dC5mcm9tU3RyaW5nTGV4ZXJBbmRQYXJzZXIoc3RyaW5nLCBsZXhlciwgcGFyc2VyKSxcbiAgICAgICAgICBub2RlID0gZnJhbWVTdWJzdGl0dXRpb25QYXJ0aWFsQ29udGV4dC5nZXROb2RlKCksXG4gICAgICAgICAgdG9rZW5zID0gZnJhbWVTdWJzdGl0dXRpb25QYXJ0aWFsQ29udGV4dC5nZXRUb2tlbnMoKSxcbiAgICAgICAgICBmcmFtZVN1YnN0aXR1dGlvbiA9IG5ldyBGcmFtZVN1YnN0aXR1dGlvbihzdHJpbmcsIG5vZGUsIHRva2VucywgZnJhbWUsIG1ldGF2YXJpYWJsZSk7XG5cbiAgICByZXR1cm4gZnJhbWVTdWJzdGl0dXRpb247XG4gIH1cbn1cblxuZnVuY3Rpb24gc3RyaW5nRnJvbUZyYW1lQW5kTWV0YXZhcmlhYmxlKGZyYW1lLCBtZXRhdmFyaWFibGUpIHtcbiAgY29uc3QgZnJhbWVTdHJpbmcgPSBmcmFtZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgbWV0YXZhcmlhYmxlU3RyaW5nID0gbWV0YXZhcmlhYmxlLmdldFN0cmluZygpLFxuICAgICAgICBzdHJpbmcgPSBgWyR7ZnJhbWVTdHJpbmd9IGZvciBbJHttZXRhdmFyaWFibGVTdHJpbmd9XV1gO1xuXG4gIHJldHVybiBzdHJpbmc7XG59XG4iXSwibmFtZXMiOlsiRnJhbWVTdWJzdGl0dXRpb24iLCJzdHJpbmciLCJub2RlIiwidG9rZW5zIiwiZnJhbWUiLCJtZXRhdmFyaWFibGUiLCJnZXRGcmFtZSIsImdldE1ldGF2YXJpYWJsZSIsImlzRnJhbWVFcXVhbFRvIiwiaXNFcXVhbFRvIiwiaXNNZXRhdmFyaWFibGVFcXVhbFRvIiwibWF0Y2hOYW1lIiwibmFtZSIsImdldFJlcGxhY2VtZW50Tm9kZSIsImZyYW1lTm9kZSIsImdldE5vZGUiLCJyZXBsYWNlbWVudE5vZGUiLCJmcm9tU3RhdGVtZW50Tm9kZSIsInN0YXRlbWVudE5vZGUiLCJjb250ZXh0IiwiZnJhbWVTdWJzdGl0dXRpb24iLCJmcmFtZVN1YnN0aXR1dGlvbk5vZGUiLCJnZXRGcmFtZVN1YnN0aXR1dGlvbk5vZGUiLCJsYXN0RnJhbWVOb2RlIiwiZ2V0TGFzdEZyYW1lTm9kZSIsImZpcnN0RnJhbWVOb2RlIiwiZ2V0Rmlyc3RGcmFtZU5vZGUiLCJzaW5ndWxhck1ldGF2YXJpYWJsZU5vZGUiLCJnZXRTaW5ndWxhck1ldGF2YXJpYWJsZU5vZGUiLCJGcmFtZSIsImRvbSIsIk1ldGF2YXJpYWJsZSIsIm1ldGF2YXJpYWJsZU5vZGUiLCJmcm9tRnJhbWVOb2RlIiwiZnJvbU1ldGF2YXJpYWJsZU5vZGUiLCJub2RlQXNUb2tlbnMiLCJzdHJpbmdGcm9tRnJhbWVBbmRNZXRhdmFyaWFibGUiLCJmcm9tRnJhbWVBbmRNZXRhdmFyaWFibGUiLCJsZXhlciIsImdldExleGVyIiwicGFyc2VyIiwiZ2V0UGFyc2VyIiwiZnJhbWVTdWJzdGl0dXRpb25QYXJ0aWFsQ29udGV4dCIsIkZyYW1lU3Vic3RpdHV0aW9uUGFydGlhbENvbnRleHQiLCJmcm9tU3RyaW5nTGV4ZXJBbmRQYXJzZXIiLCJnZXRUb2tlbnMiLCJTdWJzdGl0dXRpb24iLCJmcmFtZVN0cmluZyIsImdldFN0cmluZyIsIm1ldGF2YXJpYWJsZVN0cmluZyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7ZUFNcUJBOzs7MERBSkw7bUVBQ1M7NERBQ21COzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRTdCLElBQUEsQUFBTUEsa0NBQU47Y0FBTUE7YUFBQUEsa0JBQ1BDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxNQUFNLEVBQUVDLEtBQUssRUFBRUMsWUFBWTtnQ0FEbENMOztnQkFFakIsa0JBRmlCQTtZQUVYQztZQUFRQztZQUFNQzs7UUFFcEIsTUFBS0MsS0FBSyxHQUFHQTtRQUNiLE1BQUtDLFlBQVksR0FBR0E7OztrQkFMSEw7O1lBUW5CTSxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNGLEtBQUs7WUFDbkI7OztZQUVBRyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNGLFlBQVk7WUFDMUI7OztZQUVBRyxLQUFBQTttQkFBQUEsU0FBQUEsZUFBZUosS0FBSztnQkFBSSxPQUFPLElBQUksQ0FBQ0EsS0FBSyxDQUFDSyxTQUFTLENBQUNMO1lBQVE7OztZQUU1RE0sS0FBQUE7bUJBQUFBLFNBQUFBLHNCQUFzQkwsWUFBWTtnQkFBSSxPQUFPLElBQUksQ0FBQ0EsWUFBWSxDQUFDSSxTQUFTLENBQUNKO1lBQWU7OztZQUV4Rk0sS0FBQUE7bUJBQUFBLFNBQUFBLFVBQVVDLElBQUk7Z0JBQUksT0FBTyxJQUFJLENBQUNQLFlBQVksQ0FBQ00sU0FBUyxDQUFDQztZQUFPOzs7WUFFNURDLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxJQUFNQyxZQUFZLElBQUksQ0FBQ1YsS0FBSyxDQUFDVyxPQUFPLElBQzlCQyxrQkFBa0JGLFdBQVcsR0FBRztnQkFFdEMsT0FBT0U7WUFDVDs7OztZQUVPQyxLQUFBQTttQkFBUCxTQUFPQSxrQkFBa0JDLGFBQWEsRUFBRUMsT0FBTztnQkFDN0MsSUFBSUMsb0JBQW9CO2dCQUV4QixJQUFNQyx3QkFBd0JILGNBQWNJLHdCQUF3QjtnQkFFcEUsSUFBSUQsMEJBQTBCLE1BQU07b0JBQ2xDLElBQU1FLGdCQUFnQkYsc0JBQXNCRyxnQkFBZ0IsSUFDdERDLGlCQUFpQkosc0JBQXNCSyxpQkFBaUIsSUFDeERDLDJCQUEyQkosY0FBY0ssMkJBQTJCO29CQUUxRSxJQUFJRCw2QkFBNkIsTUFBTTt3QkFDckMsSUFBUUUsUUFBd0JDLFlBQUcsQ0FBM0JELE9BQU9FLGVBQWlCRCxZQUFHLENBQXBCQyxjQUNUakIsWUFBWVcsZ0JBQ1pPLG1CQUFtQkwsMEJBQ25CdkIsUUFBUXlCLE1BQU1JLGFBQWEsQ0FBQ25CLFdBQVdLLFVBQ3ZDZCxlQUFlMEIsYUFBYUcsb0JBQW9CLENBQUNGLGtCQUFrQmIsVUFDbkVqQixPQUFPbUIsdUJBQ1BsQixTQUFTZ0IsUUFBUWdCLFlBQVksQ0FBQ2pDLE9BQzlCRCxTQUFTbUMsK0JBQStCaEMsT0FBT0M7d0JBRXJEZSxvQkFBb0IsSUFqRFBwQixrQkFpRDZCQyxRQUFRQyxNQUFNQyxRQUFRQyxPQUFPQztvQkFDekU7Z0JBQ0Y7Z0JBRUEsT0FBT2U7WUFDVDs7O1lBRU9pQixLQUFBQTttQkFBUCxTQUFPQSx5QkFBeUJqQyxLQUFLLEVBQUVDLFlBQVksRUFBRWMsT0FBTztnQkFDMUQsSUFBTWxCLFNBQVNtQywrQkFBK0JoQyxPQUFPQyxlQUMvQ2lDLFFBQVFuQixRQUFRb0IsUUFBUSxJQUN4QkMsU0FBU3JCLFFBQVFzQixTQUFTLElBQzFCQyxrQ0FBa0NDLGNBQStCLENBQUNDLHdCQUF3QixDQUFDM0MsUUFBUXFDLE9BQU9FLFNBQzFHdEMsT0FBT3dDLGdDQUFnQzNCLE9BQU8sSUFDOUNaLFNBQVN1QyxnQ0FBZ0NHLFNBQVMsSUFDbER6QixvQkFBb0IsSUEvRFRwQixrQkErRCtCQyxRQUFRQyxNQUFNQyxRQUFRQyxPQUFPQztnQkFFN0UsT0FBT2U7WUFDVDs7O1dBbEVtQnBCO0VBQTBCOEMscUJBQVk7QUFxRTNELFNBQVNWLCtCQUErQmhDLEtBQUssRUFBRUMsWUFBWTtJQUN6RCxJQUFNMEMsY0FBYzNDLE1BQU00QyxTQUFTLElBQzdCQyxxQkFBcUI1QyxhQUFhMkMsU0FBUyxJQUMzQy9DLFNBQVMsQUFBQyxJQUF1QmdELE9BQXBCRixhQUFZLFVBQTJCLE9BQW5CRSxvQkFBbUI7SUFFMUQsT0FBT2hEO0FBQ1QifQ==
|