occam-verify-cli 0.0.539 → 0.0.540

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/bin/action/verify.js +5 -1
  2. package/lib/axiom.js +4 -4
  3. package/lib/axiomLemmaTheoremConjecture.js +6 -6
  4. package/lib/combinator.js +4 -4
  5. package/lib/conclusion.js +4 -4
  6. package/lib/conjecture.js +4 -4
  7. package/lib/constructor.js +6 -6
  8. package/lib/context/file.js +135 -27
  9. package/lib/context/metaproof.js +3 -3
  10. package/lib/context/release.js +215 -2
  11. package/lib/kinds.js +9 -1
  12. package/lib/label.js +4 -4
  13. package/lib/lemma.js +4 -4
  14. package/lib/metavariable.js +7 -1
  15. package/lib/premise.js +4 -4
  16. package/lib/rule.js +7 -7
  17. package/lib/ruleNames.js +16 -4
  18. package/lib/supposition.js +4 -4
  19. package/lib/theorem.js +4 -4
  20. package/lib/type.js +7 -7
  21. package/lib/utilities/node.js +17 -3
  22. package/lib/variable.js +7 -1
  23. package/lib/verifier.js +1 -1
  24. package/lib/verify/metastatement.js +147 -3
  25. package/lib/verify/statement.js +2 -2
  26. package/package.json +3 -3
  27. package/src/axiom.js +1 -1
  28. package/src/axiomLemmaTheoremConjecture.js +4 -4
  29. package/src/combinator.js +3 -3
  30. package/src/conclusion.js +3 -3
  31. package/src/conjecture.js +1 -1
  32. package/src/constructor.js +5 -5
  33. package/src/context/file.js +161 -27
  34. package/src/context/metaproof.js +1 -1
  35. package/src/context/release.js +254 -2
  36. package/src/kinds.js +2 -0
  37. package/src/label.js +3 -3
  38. package/src/lemma.js +1 -1
  39. package/src/metavariable.js +4 -0
  40. package/src/premise.js +3 -3
  41. package/src/rule.js +5 -5
  42. package/src/ruleNames.js +4 -1
  43. package/src/supposition.js +3 -3
  44. package/src/theorem.js +1 -1
  45. package/src/type.js +5 -5
  46. package/src/utilities/node.js +32 -2
  47. package/src/variable.js +4 -0
  48. package/src/verifier.js +1 -1
  49. package/src/verify/metastatement.js +65 -2
  50. package/src/verify/statement.js +2 -2
  51. package/lib/context/release/directory.js +0 -313
  52. package/lib/context/release/file.js +0 -387
  53. package/src/context/release/directory.js +0 -251
  54. package/src/context/release/file.js +0 -312
package/src/ruleNames.js CHANGED
@@ -3,14 +3,17 @@
3
3
  export const TERM_RULE_NAME = "term";
4
4
  export const TYPE_RULE_NAME = "type";
5
5
  export const LABEL_RULE_NAME = "label";
6
+ export const VARIABLE_RULE_NAME = "variable";
6
7
  export const ARGUMENT_RULE_NAME = "argument";
7
8
  export const SUBPROOF_RULE_NAME = "subproof";
8
9
  export const STATEMENT_RULE_NAME = "statement";
10
+ export const META_TYPE_RULE_NAME = "meta-type";
11
+ export const METAVARIABLE_RULE_NAME = "metavariable";
9
12
  export const METASTATEMENT_RULE_NAME = "metastatement";
10
13
  export const RULE_SUBPROOF_RULE_NAME = "ruleSubproof";
11
14
  export const META_ARGUMENT_RULE_NAME = "metaArgument";
12
15
  export const QUALIFIED_STATEMENT_RULE_NAME = "qualifiedStatement";
13
16
  export const UNQUALIFIED_STATEMENT_RULE_NAME = "unqualifiedStatement";
14
- export const CONSTRUCTOR_DECLARATIONRULE_NAME = "constructorDeclaration";
17
+ export const CONSTRUCTOR_DECLARATION_RULE_NAME = "constructorDeclaration";
15
18
  export const QUALIFIED_METASTATEMENT_RULE_NAME = "qualifiedMetastatement";
16
19
  export const UNQUALIFIED_METASTATEMENT_RULE_NAME = "unqualifiedMetastatement";
@@ -75,11 +75,11 @@ export default class Supposition {
75
75
  return json;
76
76
  }
77
77
 
78
- static fromJSON(json, context) {
78
+ static fromJSONAndFileContext(json, fileContext) {
79
79
  const { statement } = json,
80
80
  statementString = statement, ///
81
- lexer = context.getLexer(),
82
- parser = context.getParser(),
81
+ lexer = fileContext.getLexer(),
82
+ parser = fileContext.getParser(),
83
83
  statementNode = statementNodeFromStatementString(statementString, lexer, parser),
84
84
  supposition = new Supposition(statementNode);
85
85
 
package/src/theorem.js CHANGED
@@ -7,7 +7,7 @@ import { THEOREM_KIND } from "./kinds";
7
7
  export default class Theorem extends AxiomLemmaTheoremConjecture {
8
8
  static kind = THEOREM_KIND;
9
9
 
10
- static fromJSON(json, context) { return AxiomLemmaTheoremConjecture.fromJSON(Theorem, json, context); }
10
+ static fromJSONAndFileContext(json, fileContext) { return AxiomLemmaTheoremConjecture.fromJSONAndFileContext(Theorem, json, fileContext); }
11
11
 
12
12
  static fromLabelsSuppositionsConsequenceAndProofContext(labels, suppositions, consequence, proofContext) { return AxiomLemmaTheoremConjecture.fromLabelsSuppositionsConsequenceAndProofContext(Theorem, labels, suppositions, consequence, proofContext); }
13
13
  }
package/src/type.js CHANGED
@@ -133,14 +133,14 @@ export default class Type {
133
133
  return json;
134
134
  }
135
135
 
136
- static fromJSON(json, context) {
136
+ static fromJSONAndFileContext(json, fileContext) {
137
137
  let type;
138
138
 
139
139
  let { superType } = json;
140
140
 
141
141
  const superTypeJSON = superType; ///
142
142
 
143
- superType = superTypeFromSuperTypeJSON(superTypeJSON, context);
143
+ superType = superTypeFromSuperTypeJSONAndFileContext(superTypeJSON, fileContext);
144
144
 
145
145
  const { name } = json;
146
146
 
@@ -190,7 +190,7 @@ class ObjectType extends Type {
190
190
 
191
191
  export const objectType = ObjectType.fromNothing();
192
192
 
193
- function superTypeFromSuperTypeJSON(superTypeJSON, context) {
193
+ function superTypeFromSuperTypeJSONAndFileContext(superTypeJSON, fileContext) {
194
194
  let superType;
195
195
 
196
196
  const json = superTypeJSON, ///
@@ -200,11 +200,11 @@ function superTypeFromSuperTypeJSON(superTypeJSON, context) {
200
200
  superType = objectType; ///
201
201
  } else {
202
202
  const typeName = name, ///
203
- type = context.findTypeByTypeName(typeName);
203
+ type = fileContext.findTypeByTypeName(typeName);
204
204
 
205
205
  superType = (type !== null) ?
206
206
  type : ///
207
- Type.fromJSON(json, context); ///
207
+ Type.fromJSONAndFileContext(json, fileContext); ///
208
208
  }
209
209
 
210
210
  return superType;
@@ -4,7 +4,13 @@ import { rewriteNodes } from "occam-grammar-utilities";
4
4
  import { lexersUtilities, parsersUtilities } from "occam-custom-grammars";
5
5
 
6
6
  import { nodeQuery } from "../utilities/query";
7
- import { LABEL_RULE_NAME, UNQUALIFIED_STATEMENT_RULE_NAME, UNQUALIFIED_METASTATEMENT_RULE_NAME, CONSTRUCTOR_DECLARATIONRULE_NAME } from "../ruleNames";
7
+ import { TYPE_RULE_NAME,
8
+ LABEL_RULE_NAME,
9
+ VARIABLE_RULE_NAME,
10
+ METAVARIABLE_RULE_NAME,
11
+ UNQUALIFIED_STATEMENT_RULE_NAME,
12
+ CONSTRUCTOR_DECLARATION_RULE_NAME,
13
+ UNQUALIFIED_METASTATEMENT_RULE_NAME } from "../ruleNames";
8
14
 
9
15
  import { combinedCustomGrammarFromNothing } from "./customGrammar";
10
16
 
@@ -16,11 +22,13 @@ const combinedCustomGrammar = combinedCustomGrammarFromNothing(),
16
22
  florenceParser = florenceParserFromCombinedCustomGrammar(combinedCustomGrammar);
17
23
 
18
24
  const termNodeQuery = nodeQuery("/constructorDeclaration/term!"),
25
+ typeNodeQuery = nodeQuery("/variableDeclaration/type!"),
26
+ variableNodeQuery = nodeQuery("/variableDeclaration/variable!"),
19
27
  statementNodeQuery = nodeQuery("/unqualifiedStatement/statement!"),
20
28
  metastatementNodeQuery = nodeQuery("/unqualifiedMetastatement/metastatement!");
21
29
 
22
30
  export function termNodeFromTermString(termString, lexer, parser) {
23
- const ruleName = CONSTRUCTOR_DECLARATIONRULE_NAME,
31
+ const ruleName = CONSTRUCTOR_DECLARATION_RULE_NAME,
24
32
  content = `Constructor ${termString}
25
33
  `,
26
34
  node = nodeFromContentAndRuleName(content, ruleName, lexer, parser),
@@ -39,6 +47,28 @@ export function labelNodeFromLabelString(labelString, lexer, parser) {
39
47
  return labelNode;
40
48
  }
41
49
 
50
+ export function typeNodeFromVariableString(variableString, lexer, parser) {
51
+ const ruleName = TYPE_RULE_NAME,
52
+ content = `Variable ${variableString}
53
+ `,
54
+ node = nodeFromContentAndRuleName(content, ruleName, lexer, parser),
55
+ typeDeclarationNode = node, ///
56
+ typeNode = typeNodeQuery(typeDeclarationNode);
57
+
58
+ return typeNode;
59
+ }
60
+
61
+ export function variableNodeFromVariableString(variableString, lexer, parser) {
62
+ const ruleName = VARIABLE_RULE_NAME,
63
+ content = `Variable ${variableString}
64
+ `,
65
+ node = nodeFromContentAndRuleName(content, ruleName, lexer, parser),
66
+ variableDeclarationNode = node, ///
67
+ variableNode = variableNodeQuery(variableDeclarationNode);
68
+
69
+ return variableNode;
70
+ }
71
+
42
72
  export function statementNodeFromStatementString(statementString, lexer, parser) {
43
73
  const ruleName = UNQUALIFIED_STATEMENT_RULE_NAME,
44
74
  content = `${statementString}
package/src/variable.js CHANGED
@@ -27,6 +27,10 @@ export default class Variable {
27
27
  return string;
28
28
  }
29
29
 
30
+ static fromJSONAndFileContext(json, fileContext) {
31
+ debugger
32
+ }
33
+
30
34
  static fromNameAndType(name, type) {
31
35
  const variable = new Variable(name, type);
32
36
 
package/src/verifier.js CHANGED
@@ -40,7 +40,7 @@ export default class Verifier {
40
40
  if (nodeVerified) {
41
41
  return true;
42
42
  }
43
- })
43
+ });
44
44
  }
45
45
 
46
46
  return nodesVerify;
@@ -1,9 +1,72 @@
1
1
  "use strict";
2
2
 
3
+ import Verifier from "../verifier";
4
+
5
+ import { METAVARIABLE_RULE_NAME } from "../ruleNames";
6
+ import { metavariableNameFromMetavariableNode } from "../utilities/query";
7
+
8
+ class MetastatementVerifier extends Verifier {
9
+ verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, metaproofContext) {
10
+ let nonTerminalNodeVerified = false;
11
+
12
+ const nonTerminalNode = nonTerminalNodeA, ///
13
+ ruleName = nonTerminalNode.getRuleName(); ///
14
+
15
+ switch (ruleName) {
16
+ case METAVARIABLE_RULE_NAME: {
17
+ const metavariableNode = nonTerminalNode, ///
18
+ metavariableNodeVerified = this.verifyMetavariableNode(metavariableNode, metaproofContext);
19
+
20
+ nonTerminalNodeVerified = metavariableNodeVerified; ///
21
+
22
+ break;
23
+ }
24
+
25
+ default: {
26
+ const childNodes = nonTerminalNode.getChildNodes(),
27
+ nodesA = childNodes, ///
28
+ nodesB = childNodes, ///
29
+ nodesVerified = this.verifyNodes(nodesA, nodesB, metaproofContext);
30
+
31
+ nonTerminalNodeVerified = nodesVerified; ///
32
+
33
+ break;
34
+ }
35
+ }
36
+
37
+ return nonTerminalNodeVerified;
38
+ }
39
+
40
+ verifyMetavariableNode(metavariableNode, metaproofContext) {
41
+ let metavariableNodeVerified = false;
42
+
43
+ const metavariableName = metavariableNameFromMetavariableNode(metavariableNode),
44
+ metavariablePresent = metaproofContext.isMetavariablePresentByMetavariableName(metavariableName);
45
+
46
+ if (!metavariablePresent) {
47
+ const metavariableString = metaproofContext.nodeAsString(metavariableNode);
48
+
49
+ metaproofContext.error(`The '${metavariableString}' metavariable is not present.`, metavariableNode);
50
+ } else {
51
+ metavariableNodeVerified = true;
52
+ }
53
+
54
+ return metavariableNodeVerified;
55
+ }
56
+ }
57
+
58
+ const metastatementVerifier = new MetastatementVerifier();
59
+
3
60
  export default function verifyMetastatement(metastatementNode, assignments, derived, metaproofContext) {
4
- let metastatementVerified = true; ///
61
+ let metastatementVerified = false;
62
+
63
+ if (!metastatementVerified) {
64
+ const nonTerminalNodeA = metastatementNode, ///
65
+ nonTerminalNodeB = metastatementNode, ///
66
+ nonTerminalNodeVerified = metastatementVerifier.verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, metaproofContext);
5
67
 
6
- ///
68
+ metastatementVerified = nonTerminalNodeVerified; ///
69
+ }
7
70
 
8
71
  return metastatementVerified;
9
72
  }
@@ -192,8 +192,8 @@ function verifyStatementAgainstCombinator(statementNode, combinator, context) {
192
192
  const combinatorStatementNode = combinator.getStatementNode(),
193
193
  nonTerminalNodeA = statementNode, ///
194
194
  nonTerminalNodeB = combinatorStatementNode, ///
195
- nodeVerified = statementVerifier.verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, context),
196
- statementVerifiedAgainstCombinator = nodeVerified; ///
195
+ nonTerminalNodeVerified = statementVerifier.verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, context),
196
+ statementVerifiedAgainstCombinator = nonTerminalNodeVerified; ///
197
197
 
198
198
  return statementVerifiedAgainstCombinator;
199
199
  }
@@ -1,313 +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 DirectoryReleaseContext;
9
- }
10
- });
11
- var _release = /*#__PURE__*/ _interopRequireDefault(require("../../context/release"));
12
- var _array = require("../../utilities/array");
13
- var _customGrammar = require("../../utilities/customGrammar");
14
- function _assertThisInitialized(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 _classCallCheck(instance, Constructor) {
21
- if (!(instance instanceof Constructor)) {
22
- throw new TypeError("Cannot call a class as a function");
23
- }
24
- }
25
- function _defineProperties(target, props) {
26
- for(var i = 0; i < props.length; i++){
27
- var descriptor = props[i];
28
- descriptor.enumerable = descriptor.enumerable || false;
29
- descriptor.configurable = true;
30
- if ("value" in descriptor) descriptor.writable = true;
31
- Object.defineProperty(target, descriptor.key, descriptor);
32
- }
33
- }
34
- function _createClass(Constructor, protoProps, staticProps) {
35
- if (protoProps) _defineProperties(Constructor.prototype, protoProps);
36
- if (staticProps) _defineProperties(Constructor, staticProps);
37
- return Constructor;
38
- }
39
- function _getPrototypeOf(o) {
40
- _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {
41
- return o.__proto__ || Object.getPrototypeOf(o);
42
- };
43
- return _getPrototypeOf(o);
44
- }
45
- function _inherits(subClass, superClass) {
46
- if (typeof superClass !== "function" && superClass !== null) {
47
- throw new TypeError("Super expression must either be null or a function");
48
- }
49
- subClass.prototype = Object.create(superClass && superClass.prototype, {
50
- constructor: {
51
- value: subClass,
52
- writable: true,
53
- configurable: true
54
- }
55
- });
56
- if (superClass) _setPrototypeOf(subClass, superClass);
57
- }
58
- function _interopRequireDefault(obj) {
59
- return obj && obj.__esModule ? obj : {
60
- default: obj
61
- };
62
- }
63
- function _possibleConstructorReturn(self, call) {
64
- if (call && (_typeof(call) === "object" || typeof call === "function")) {
65
- return call;
66
- }
67
- return _assertThisInitialized(self);
68
- }
69
- function _setPrototypeOf(o, p) {
70
- _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
71
- o.__proto__ = p;
72
- return o;
73
- };
74
- return _setPrototypeOf(o, p);
75
- }
76
- var _typeof = function(obj) {
77
- "@swc/helpers - typeof";
78
- return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
79
- };
80
- function _isNativeReflectConstruct() {
81
- if (typeof Reflect === "undefined" || !Reflect.construct) return false;
82
- if (Reflect.construct.sham) return false;
83
- if (typeof Proxy === "function") return true;
84
- try {
85
- Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));
86
- return true;
87
- } catch (e) {
88
- return false;
89
- }
90
- }
91
- function _createSuper(Derived) {
92
- var hasNativeReflectConstruct = _isNativeReflectConstruct();
93
- return function _createSuperInternal() {
94
- var Super = _getPrototypeOf(Derived), result;
95
- if (hasNativeReflectConstruct) {
96
- var NewTarget = _getPrototypeOf(this).constructor;
97
- result = Reflect.construct(Super, arguments, NewTarget);
98
- } else {
99
- result = Super.apply(this, arguments);
100
- }
101
- return _possibleConstructorReturn(this, result);
102
- };
103
- }
104
- var DirectoryReleaseContext = /*#__PURE__*/ function(ReleaseContext) {
105
- _inherits(DirectoryReleaseContext, ReleaseContext);
106
- var _super = _createSuper(DirectoryReleaseContext);
107
- function DirectoryReleaseContext(log, name, entries, lexer, parser, verified, customGrammar, dependencyReleaseContexts, fileContexts) {
108
- _classCallCheck(this, DirectoryReleaseContext);
109
- var _this;
110
- _this = _super.call(this, log, name, entries, lexer, parser, verified, customGrammar, dependencyReleaseContexts);
111
- _this.fileContexts = fileContexts;
112
- return _this;
113
- }
114
- _createClass(DirectoryReleaseContext, [
115
- {
116
- key: "getFileContexts",
117
- value: function getFileContexts() {
118
- return this.fileContexts;
119
- }
120
- },
121
- {
122
- key: "getLabels",
123
- value: function getLabels() {
124
- var includeDependencies = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : true;
125
- var labels = [];
126
- this.fileContexts.forEach(function(fileContext) {
127
- var includeRelease = false, fileContextLabels = fileContext.getLabels(includeRelease);
128
- (0, _array.push)(labels, fileContextLabels);
129
- });
130
- if (includeDependencies) {
131
- var dependencyReleaseContexts = this.getDependencyReleaseContexts();
132
- dependencyReleaseContexts.forEach(function(releaseContext) {
133
- var includeDependencies = false, releaseContextLabels = releaseContext.getLabels(includeDependencies);
134
- (0, _array.push)(labels, releaseContextLabels);
135
- });
136
- }
137
- return labels;
138
- }
139
- },
140
- {
141
- key: "getTypes",
142
- value: function getTypes() {
143
- var includeDependencies = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : true;
144
- var types = [];
145
- this.fileContexts.forEach(function(fileContext) {
146
- var includeRelease = false, fileContextTypes = fileContext.getTypes(includeRelease);
147
- (0, _array.push)(types, fileContextTypes);
148
- });
149
- if (includeDependencies) {
150
- var dependencyReleaseContexts = this.getDependencyReleaseContexts();
151
- dependencyReleaseContexts.forEach(function(releaseContext) {
152
- var includeDependencies = false, releaseContextTypes = releaseContext.getTypes(includeDependencies);
153
- (0, _array.push)(types, releaseContextTypes);
154
- });
155
- }
156
- return types;
157
- }
158
- },
159
- {
160
- key: "getRules",
161
- value: function getRules() {
162
- var includeDependencies = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : true;
163
- var rules = [];
164
- this.fileContexts.forEach(function(fileContext) {
165
- var includeRelease = false, fileContextRules = fileContext.getRules(includeRelease);
166
- (0, _array.push)(rules, fileContextRules);
167
- });
168
- if (includeDependencies) {
169
- var dependencyReleaseContexts = this.getDependencyReleaseContexts();
170
- dependencyReleaseContexts.forEach(function(releaseContext) {
171
- var includeDependencies = false, releaseContextRules = releaseContext.getRules(includeDependencies);
172
- (0, _array.push)(rules, releaseContextRules);
173
- });
174
- }
175
- return rules;
176
- }
177
- },
178
- {
179
- key: "getAxioms",
180
- value: function getAxioms() {
181
- var includeDependencies = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : true;
182
- var axioms = [];
183
- this.fileContexts.forEach(function(fileContext) {
184
- var includeRelease = false, fileContextAxioms = fileContext.getAxioms(includeRelease);
185
- (0, _array.push)(axioms, fileContextAxioms);
186
- });
187
- if (includeDependencies) {
188
- var dependencyReleaseContexts = this.getDependencyReleaseContexts();
189
- dependencyReleaseContexts.forEach(function(releaseContext) {
190
- var includeDependencies = false, releaseContextAxioms = releaseContext.getAxioms(includeDependencies);
191
- (0, _array.push)(axioms, releaseContextAxioms);
192
- });
193
- }
194
- return axioms;
195
- }
196
- },
197
- {
198
- key: "getLemmas",
199
- value: function getLemmas() {
200
- var lemmas = [];
201
- this.fileContexts.forEach(function(fileContext) {
202
- var includeRelease = false, fileContextLemmas = fileContext.getLemmas(includeRelease);
203
- (0, _array.push)(lemmas, fileContextLemmas);
204
- });
205
- return lemmas;
206
- }
207
- },
208
- {
209
- key: "getTheorems",
210
- value: function getTheorems() {
211
- var includeDependencies = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : true;
212
- var theorems = [];
213
- this.fileContexts.forEach(function(fileContext) {
214
- var includeRelease = false, fileContextTheorems = fileContext.getTheorems(includeRelease);
215
- (0, _array.push)(theorems, fileContextTheorems);
216
- });
217
- if (includeDependencies) {
218
- var dependencyReleaseContexts = this.getDependencyReleaseContexts();
219
- dependencyReleaseContexts.forEach(function(releaseContext) {
220
- var includeDependencies = false, releaseContextTheorems = releaseContext.getTheorems(includeDependencies);
221
- (0, _array.push)(theorems, releaseContextTheorems);
222
- });
223
- }
224
- return theorems;
225
- }
226
- },
227
- {
228
- key: "getConjectures",
229
- value: function getConjectures() {
230
- var includeDependencies = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : true;
231
- var conjectures = [];
232
- this.fileContexts.forEach(function(fileContext) {
233
- var includeRelease = false, fileContextConjectures = fileContext.getConjectures(includeRelease);
234
- (0, _array.push)(conjectures, fileContextConjectures);
235
- });
236
- if (includeDependencies) {
237
- var dependencyReleaseContexts = this.getDependencyReleaseContexts();
238
- dependencyReleaseContexts.forEach(function(releaseContext) {
239
- var includeDependencies = false, releaseContextConjectures = releaseContext.getConjectures(includeDependencies);
240
- (0, _array.push)(conjectures, releaseContextConjectures);
241
- });
242
- }
243
- return conjectures;
244
- }
245
- },
246
- {
247
- key: "getCombinators",
248
- value: function getCombinators() {
249
- var includeDependencies = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : true;
250
- var combinators = [];
251
- this.fileContexts.forEach(function(fileContext) {
252
- var includeRelease = false, fileContextCombinators = fileContext.getCombinators(includeRelease);
253
- (0, _array.push)(combinators, fileContextCombinators);
254
- });
255
- if (includeDependencies) {
256
- var dependencyReleaseContexts = this.getDependencyReleaseContexts();
257
- dependencyReleaseContexts.forEach(function(releaseContext) {
258
- var includeDependencies = false, releaseContextCombinators = releaseContext.getCombinators(includeDependencies);
259
- (0, _array.push)(combinators, releaseContextCombinators);
260
- });
261
- }
262
- return combinators;
263
- }
264
- },
265
- {
266
- key: "getConstructors",
267
- value: function getConstructors() {
268
- var includeDependencies = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : true;
269
- var constructors = [];
270
- this.fileContexts.forEach(function(fileContext) {
271
- var includeRelease = false, fileContextConstructors = fileContext.getConstructors(includeRelease);
272
- (0, _array.push)(constructors, fileContextConstructors);
273
- });
274
- if (includeDependencies) {
275
- var dependencyReleaseContexts = this.getDependencyReleaseContexts();
276
- dependencyReleaseContexts.forEach(function(releaseContext) {
277
- var includeDependencies = false, releaseContextConstructors = releaseContext.getConstructors(includeDependencies);
278
- (0, _array.push)(constructors, releaseContextConstructors);
279
- });
280
- }
281
- return constructors;
282
- }
283
- },
284
- {
285
- key: "addFileContext",
286
- value: function addFileContext(fileContext) {
287
- this.fileContexts.push(fileContext);
288
- }
289
- },
290
- {
291
- key: "toJSON",
292
- value: function toJSON() {
293
- var json = [];
294
- this.fileContexts.forEach(function(fileContext) {
295
- var fileContextJSON = fileContext.toJSON();
296
- (0, _array.push)(json, fileContextJSON);
297
- });
298
- return json;
299
- }
300
- }
301
- ], [
302
- {
303
- key: "fromLogNameAndEntries",
304
- value: function fromLogNameAndEntries(log, name, entries) {
305
- var lexer = null, parser = null, verified = false, customGrammar = (0, _customGrammar.customGrammarFromNameAndEntries)(name, entries), dependencyReleaseContexts = null, fileContexts = [], directoryReleaseContext = new DirectoryReleaseContext(log, name, entries, lexer, parser, verified, customGrammar, dependencyReleaseContexts, fileContexts);
306
- return directoryReleaseContext;
307
- }
308
- }
309
- ]);
310
- return DirectoryReleaseContext;
311
- }(_release.default);
312
-
313
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb250ZXh0L3JlbGVhc2UvZGlyZWN0b3J5LmpzIiwiPDxqc3gtY29uZmlnLXByYWdtYS5qcz4+Il0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgUmVsZWFzZUNvbnRleHQgZnJvbSBcIi4uLy4uL2NvbnRleHQvcmVsZWFzZVwiO1xuXG5pbXBvcnQgeyBwdXNoIH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9hcnJheVwiO1xuaW1wb3J0IHsgY3VzdG9tR3JhbW1hckZyb21OYW1lQW5kRW50cmllcyB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvY3VzdG9tR3JhbW1hclwiO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBEaXJlY3RvcnlSZWxlYXNlQ29udGV4dCBleHRlbmRzIFJlbGVhc2VDb250ZXh0IHtcbiAgY29uc3RydWN0b3IobG9nLCBuYW1lLCBlbnRyaWVzLCBsZXhlciwgcGFyc2VyLCB2ZXJpZmllZCwgY3VzdG9tR3JhbW1hciwgZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cywgZmlsZUNvbnRleHRzKSB7XG4gICAgc3VwZXIobG9nLCBuYW1lLCBlbnRyaWVzLCBsZXhlciwgcGFyc2VyLCB2ZXJpZmllZCwgY3VzdG9tR3JhbW1hciwgZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyk7XG5cbiAgICB0aGlzLmZpbGVDb250ZXh0cyA9IGZpbGVDb250ZXh0cztcbiAgfVxuXG4gIGdldEZpbGVDb250ZXh0cygpIHtcbiAgICByZXR1cm4gdGhpcy5maWxlQ29udGV4dHM7XG4gIH1cblxuICBnZXRMYWJlbHMoaW5jbHVkZURlcGVuZGVuY2llcyA9IHRydWUpIHtcbiAgICBjb25zdCBsYWJlbHMgPSBbXTtcblxuICAgIHRoaXMuZmlsZUNvbnRleHRzLmZvckVhY2goKGZpbGVDb250ZXh0KSA9PiB7XG4gICAgICBjb25zdCBpbmNsdWRlUmVsZWFzZSA9IGZhbHNlLFxuICAgICAgICAgICAgZmlsZUNvbnRleHRMYWJlbHMgPSBmaWxlQ29udGV4dC5nZXRMYWJlbHMoaW5jbHVkZVJlbGVhc2UpO1xuXG4gICAgICBwdXNoKGxhYmVscywgZmlsZUNvbnRleHRMYWJlbHMpO1xuICAgIH0pO1xuXG4gICAgaWYgKGluY2x1ZGVEZXBlbmRlbmNpZXMpIHtcbiAgICAgIGNvbnN0IGRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMgPSB0aGlzLmdldERlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMoKTtcblxuICAgICAgZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cy5mb3JFYWNoKChyZWxlYXNlQ29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCBpbmNsdWRlRGVwZW5kZW5jaWVzID0gZmFsc2UsXG4gICAgICAgICAgICAgIHJlbGVhc2VDb250ZXh0TGFiZWxzID0gcmVsZWFzZUNvbnRleHQuZ2V0TGFiZWxzKGluY2x1ZGVEZXBlbmRlbmNpZXMpO1xuXG4gICAgICAgIHB1c2gobGFiZWxzLCByZWxlYXNlQ29udGV4dExhYmVscyk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gbGFiZWxzO1xuICB9XG5cbiAgZ2V0VHlwZXMoaW5jbHVkZURlcGVuZGVuY2llcyA9IHRydWUpIHtcbiAgICBjb25zdCB0eXBlcyA9IFtdO1xuXG4gICAgdGhpcy5maWxlQ29udGV4dHMuZm9yRWFjaCgoZmlsZUNvbnRleHQpID0+IHtcbiAgICAgIGNvbnN0IGluY2x1ZGVSZWxlYXNlID0gZmFsc2UsXG4gICAgICAgICAgICBmaWxlQ29udGV4dFR5cGVzID0gZmlsZUNvbnRleHQuZ2V0VHlwZXMoaW5jbHVkZVJlbGVhc2UpO1xuXG4gICAgICBwdXNoKHR5cGVzLCBmaWxlQ29udGV4dFR5cGVzKTtcbiAgICB9KTtcblxuICAgIGlmIChpbmNsdWRlRGVwZW5kZW5jaWVzKSB7XG4gICAgICBjb25zdCBkZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzID0gdGhpcy5nZXREZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzKCk7XG5cbiAgICAgIGRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMuZm9yRWFjaCgocmVsZWFzZUNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgaW5jbHVkZURlcGVuZGVuY2llcyA9IGZhbHNlLFxuICAgICAgICAgICAgICByZWxlYXNlQ29udGV4dFR5cGVzID0gcmVsZWFzZUNvbnRleHQuZ2V0VHlwZXMoaW5jbHVkZURlcGVuZGVuY2llcyk7XG5cbiAgICAgICAgcHVzaCh0eXBlcywgcmVsZWFzZUNvbnRleHRUeXBlcyk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHlwZXM7XG4gIH1cblxuICBnZXRSdWxlcyhpbmNsdWRlRGVwZW5kZW5jaWVzID0gdHJ1ZSkge1xuICAgIGNvbnN0IHJ1bGVzID0gW107XG5cbiAgICB0aGlzLmZpbGVDb250ZXh0cy5mb3JFYWNoKChmaWxlQ29udGV4dCkgPT4ge1xuICAgICAgY29uc3QgaW5jbHVkZVJlbGVhc2UgPSBmYWxzZSxcbiAgICAgICAgICAgIGZpbGVDb250ZXh0UnVsZXMgPSBmaWxlQ29udGV4dC5nZXRSdWxlcyhpbmNsdWRlUmVsZWFzZSk7XG5cbiAgICAgIHB1c2gocnVsZXMsIGZpbGVDb250ZXh0UnVsZXMpO1xuICAgIH0pO1xuXG4gICAgaWYgKGluY2x1ZGVEZXBlbmRlbmNpZXMpIHtcbiAgICAgIGNvbnN0IGRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMgPSB0aGlzLmdldERlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMoKTtcblxuICAgICAgZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cy5mb3JFYWNoKChyZWxlYXNlQ29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCBpbmNsdWRlRGVwZW5kZW5jaWVzID0gZmFsc2UsXG4gICAgICAgICAgICAgIHJlbGVhc2VDb250ZXh0UnVsZXMgPSByZWxlYXNlQ29udGV4dC5nZXRSdWxlcyhpbmNsdWRlRGVwZW5kZW5jaWVzKTtcblxuICAgICAgICBwdXNoKHJ1bGVzLCByZWxlYXNlQ29udGV4dFJ1bGVzKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBydWxlcztcbiAgfVxuXG4gIGdldEF4aW9tcyhpbmNsdWRlRGVwZW5kZW5jaWVzID0gdHJ1ZSkge1xuICAgIGNvbnN0IGF4aW9tcyA9IFtdO1xuXG4gICAgdGhpcy5maWxlQ29udGV4dHMuZm9yRWFjaCgoZmlsZUNvbnRleHQpID0+IHtcbiAgICAgIGNvbnN0IGluY2x1ZGVSZWxlYXNlID0gZmFsc2UsXG4gICAgICAgICAgICBmaWxlQ29udGV4dEF4aW9tcyA9IGZpbGVDb250ZXh0LmdldEF4aW9tcyhpbmNsdWRlUmVsZWFzZSk7XG5cbiAgICAgIHB1c2goYXhpb21zLCBmaWxlQ29udGV4dEF4aW9tcyk7XG4gICAgfSk7XG5cbiAgICBpZiAoaW5jbHVkZURlcGVuZGVuY2llcykge1xuICAgICAgY29uc3QgZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyA9IHRoaXMuZ2V0RGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cygpO1xuXG4gICAgICBkZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzLmZvckVhY2goKHJlbGVhc2VDb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IGluY2x1ZGVEZXBlbmRlbmNpZXMgPSBmYWxzZSxcbiAgICAgICAgICAgICAgcmVsZWFzZUNvbnRleHRBeGlvbXMgPSByZWxlYXNlQ29udGV4dC5nZXRBeGlvbXMoaW5jbHVkZURlcGVuZGVuY2llcyk7XG5cbiAgICAgICAgcHVzaChheGlvbXMsIHJlbGVhc2VDb250ZXh0QXhpb21zKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBheGlvbXM7XG4gIH1cblxuICBnZXRMZW1tYXMoKSB7XG4gICAgY29uc3QgbGVtbWFzID0gW107XG5cbiAgICB0aGlzLmZpbGVDb250ZXh0cy5mb3JFYWNoKChmaWxlQ29udGV4dCkgPT4ge1xuICAgICAgY29uc3QgaW5jbHVkZVJlbGVhc2UgPSBmYWxzZSxcbiAgICAgICAgICAgIGZpbGVDb250ZXh0TGVtbWFzID0gZmlsZUNvbnRleHQuZ2V0TGVtbWFzKGluY2x1ZGVSZWxlYXNlKTtcblxuICAgICAgcHVzaChsZW1tYXMsIGZpbGVDb250ZXh0TGVtbWFzKTtcbiAgICB9KTtcblxuICAgIHJldHVybiBsZW1tYXM7XG4gIH1cblxuICBnZXRUaGVvcmVtcyhpbmNsdWRlRGVwZW5kZW5jaWVzID0gdHJ1ZSkge1xuICAgIGNvbnN0IHRoZW9yZW1zID0gW107XG5cbiAgICB0aGlzLmZpbGVDb250ZXh0cy5mb3JFYWNoKChmaWxlQ29udGV4dCkgPT4ge1xuICAgICAgY29uc3QgaW5jbHVkZVJlbGVhc2UgPSBmYWxzZSxcbiAgICAgICAgICAgIGZpbGVDb250ZXh0VGhlb3JlbXMgPSBmaWxlQ29udGV4dC5nZXRUaGVvcmVtcyhpbmNsdWRlUmVsZWFzZSk7XG5cbiAgICAgIHB1c2godGhlb3JlbXMsIGZpbGVDb250ZXh0VGhlb3JlbXMpO1xuICAgIH0pO1xuXG4gICAgaWYgKGluY2x1ZGVEZXBlbmRlbmNpZXMpIHtcbiAgICAgIGNvbnN0IGRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMgPSB0aGlzLmdldERlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMoKTtcblxuICAgICAgZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cy5mb3JFYWNoKChyZWxlYXNlQ29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCBpbmNsdWRlRGVwZW5kZW5jaWVzID0gZmFsc2UsXG4gICAgICAgICAgICAgIHJlbGVhc2VDb250ZXh0VGhlb3JlbXMgPSByZWxlYXNlQ29udGV4dC5nZXRUaGVvcmVtcyhpbmNsdWRlRGVwZW5kZW5jaWVzKTtcblxuICAgICAgICBwdXNoKHRoZW9yZW1zLCByZWxlYXNlQ29udGV4dFRoZW9yZW1zKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiB0aGVvcmVtcztcbiAgfVxuXG4gIGdldENvbmplY3R1cmVzKGluY2x1ZGVEZXBlbmRlbmNpZXMgPSB0cnVlKSB7XG4gICAgY29uc3QgY29uamVjdHVyZXMgPSBbXTtcblxuICAgIHRoaXMuZmlsZUNvbnRleHRzLmZvckVhY2goKGZpbGVDb250ZXh0KSA9PiB7XG4gICAgICBjb25zdCBpbmNsdWRlUmVsZWFzZSA9IGZhbHNlLFxuICAgICAgICAgICAgZmlsZUNvbnRleHRDb25qZWN0dXJlcyA9IGZpbGVDb250ZXh0LmdldENvbmplY3R1cmVzKGluY2x1ZGVSZWxlYXNlKTtcblxuICAgICAgcHVzaChjb25qZWN0dXJlcywgZmlsZUNvbnRleHRDb25qZWN0dXJlcyk7XG4gICAgfSk7XG5cbiAgICBpZiAoaW5jbHVkZURlcGVuZGVuY2llcykge1xuICAgICAgY29uc3QgZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyA9IHRoaXMuZ2V0RGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cygpO1xuXG4gICAgICBkZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzLmZvckVhY2goKHJlbGVhc2VDb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IGluY2x1ZGVEZXBlbmRlbmNpZXMgPSBmYWxzZSxcbiAgICAgICAgICAgICAgcmVsZWFzZUNvbnRleHRDb25qZWN0dXJlcyA9IHJlbGVhc2VDb250ZXh0LmdldENvbmplY3R1cmVzKGluY2x1ZGVEZXBlbmRlbmNpZXMpO1xuXG4gICAgICAgIHB1c2goY29uamVjdHVyZXMsIHJlbGVhc2VDb250ZXh0Q29uamVjdHVyZXMpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbmplY3R1cmVzO1xuICB9XG5cbiAgZ2V0Q29tYmluYXRvcnMoaW5jbHVkZURlcGVuZGVuY2llcyA9IHRydWUpIHtcbiAgICBjb25zdCBjb21iaW5hdG9ycyA9IFtdO1xuXG4gICAgdGhpcy5maWxlQ29udGV4dHMuZm9yRWFjaCgoZmlsZUNvbnRleHQpID0+IHtcbiAgICAgIGNvbnN0IGluY2x1ZGVSZWxlYXNlID0gZmFsc2UsXG4gICAgICAgICAgICBmaWxlQ29udGV4dENvbWJpbmF0b3JzID0gZmlsZUNvbnRleHQuZ2V0Q29tYmluYXRvcnMoaW5jbHVkZVJlbGVhc2UpO1xuXG4gICAgICBwdXNoKGNvbWJpbmF0b3JzLCBmaWxlQ29udGV4dENvbWJpbmF0b3JzKTtcbiAgICB9KTtcblxuICAgIGlmIChpbmNsdWRlRGVwZW5kZW5jaWVzKSB7XG4gICAgICBjb25zdCBkZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzID0gdGhpcy5nZXREZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzKCk7XG5cbiAgICAgIGRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMuZm9yRWFjaCgocmVsZWFzZUNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgaW5jbHVkZURlcGVuZGVuY2llcyA9IGZhbHNlLFxuICAgICAgICAgICAgICByZWxlYXNlQ29udGV4dENvbWJpbmF0b3JzID0gcmVsZWFzZUNvbnRleHQuZ2V0Q29tYmluYXRvcnMoaW5jbHVkZURlcGVuZGVuY2llcyk7XG5cbiAgICAgICAgcHVzaChjb21iaW5hdG9ycywgcmVsZWFzZUNvbnRleHRDb21iaW5hdG9ycyk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gY29tYmluYXRvcnM7XG4gIH1cblxuICBnZXRDb25zdHJ1Y3RvcnMoaW5jbHVkZURlcGVuZGVuY2llcyA9IHRydWUpIHtcbiAgICBjb25zdCBjb25zdHJ1Y3RvcnMgPSBbXTtcblxuICAgIHRoaXMuZmlsZUNvbnRleHRzLmZvckVhY2goKGZpbGVDb250ZXh0KSA9PiB7XG4gICAgICBjb25zdCBpbmNsdWRlUmVsZWFzZSA9IGZhbHNlLFxuICAgICAgICAgICAgZmlsZUNvbnRleHRDb25zdHJ1Y3RvcnMgPSBmaWxlQ29udGV4dC5nZXRDb25zdHJ1Y3RvcnMoaW5jbHVkZVJlbGVhc2UpO1xuXG4gICAgICBwdXNoKGNvbnN0cnVjdG9ycywgZmlsZUNvbnRleHRDb25zdHJ1Y3RvcnMpO1xuICAgIH0pO1xuXG4gICAgaWYgKGluY2x1ZGVEZXBlbmRlbmNpZXMpIHtcbiAgICAgIGNvbnN0IGRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMgPSB0aGlzLmdldERlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMoKTtcblxuICAgICAgZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cy5mb3JFYWNoKChyZWxlYXNlQ29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCBpbmNsdWRlRGVwZW5kZW5jaWVzID0gZmFsc2UsXG4gICAgICAgICAgICAgIHJlbGVhc2VDb250ZXh0Q29uc3RydWN0b3JzID0gcmVsZWFzZUNvbnRleHQuZ2V0Q29uc3RydWN0b3JzKGluY2x1ZGVEZXBlbmRlbmNpZXMpO1xuXG4gICAgICAgIHB1c2goY29uc3RydWN0b3JzLCByZWxlYXNlQ29udGV4dENvbnN0cnVjdG9ycyk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gY29uc3RydWN0b3JzO1xuICB9XG5cbiAgYWRkRmlsZUNvbnRleHQoZmlsZUNvbnRleHQpIHtcbiAgICB0aGlzLmZpbGVDb250ZXh0cy5wdXNoKGZpbGVDb250ZXh0KTtcbiAgfVxuXG4gIHRvSlNPTigpIHtcbiAgICBjb25zdCBqc29uID0gW107XG5cbiAgICB0aGlzLmZpbGVDb250ZXh0cy5mb3JFYWNoKChmaWxlQ29udGV4dCkgPT4ge1xuICAgICAgY29uc3QgZmlsZUNvbnRleHRKU09OID0gZmlsZUNvbnRleHQudG9KU09OKCk7XG5cbiAgICAgIHB1c2goanNvbiwgZmlsZUNvbnRleHRKU09OKTtcbiAgICB9KTtcblxuICAgIHJldHVybiBqc29uO1xuICB9XG5cbiAgc3RhdGljIGZyb21Mb2dOYW1lQW5kRW50cmllcyhsb2csIG5hbWUsIGVudHJpZXMpIHtcbiAgICBjb25zdCBsZXhlciA9IG51bGwsXG4gICAgICAgICAgcGFyc2VyID0gbnVsbCxcbiAgICAgICAgICB2ZXJpZmllZCA9IGZhbHNlLFxuICAgICAgICAgIGN1c3RvbUdyYW1tYXIgPSBjdXN0b21HcmFtbWFyRnJvbU5hbWVBbmRFbnRyaWVzKG5hbWUsIGVudHJpZXMpLFxuICAgICAgICAgIGRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMgPSBudWxsLFxuICAgICAgICAgIGZpbGVDb250ZXh0cyA9IFtdLFxuICAgICAgICAgIGRpcmVjdG9yeVJlbGVhc2VDb250ZXh0ID0gbmV3IERpcmVjdG9yeVJlbGVhc2VDb250ZXh0KGxvZywgbmFtZSwgZW50cmllcywgbGV4ZXIsIHBhcnNlciwgdmVyaWZpZWQsIGN1c3RvbUdyYW1tYXIsIGRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMsIGZpbGVDb250ZXh0cyk7XG5cbiAgICByZXR1cm4gZGlyZWN0b3J5UmVsZWFzZUNvbnRleHQ7XG4gIH1cbn1cbiIsIlJlYWN0LmNyZWF0ZUVsZW1lbnQiXSwibmFtZXMiOlsiRGlyZWN0b3J5UmVsZWFzZUNvbnRleHQiLCJsb2ciLCJuYW1lIiwiZW50cmllcyIsImxleGVyIiwicGFyc2VyIiwidmVyaWZpZWQiLCJjdXN0b21HcmFtbWFyIiwiZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyIsImZpbGVDb250ZXh0cyIsImdldEZpbGVDb250ZXh0cyIsImdldExhYmVscyIsImluY2x1ZGVEZXBlbmRlbmNpZXMiLCJsYWJlbHMiLCJmb3JFYWNoIiwiZmlsZUNvbnRleHQiLCJpbmNsdWRlUmVsZWFzZSIsImZpbGVDb250ZXh0TGFiZWxzIiwicHVzaCIsImdldERlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMiLCJyZWxlYXNlQ29udGV4dCIsInJlbGVhc2VDb250ZXh0TGFiZWxzIiwiZ2V0VHlwZXMiLCJ0eXBlcyIsImZpbGVDb250ZXh0VHlwZXMiLCJyZWxlYXNlQ29udGV4dFR5cGVzIiwiZ2V0UnVsZXMiLCJydWxlcyIsImZpbGVDb250ZXh0UnVsZXMiLCJyZWxlYXNlQ29udGV4dFJ1bGVzIiwiZ2V0QXhpb21zIiwiYXhpb21zIiwiZmlsZUNvbnRleHRBeGlvbXMiLCJyZWxlYXNlQ29udGV4dEF4aW9tcyIsImdldExlbW1hcyIsImxlbW1hcyIsImZpbGVDb250ZXh0TGVtbWFzIiwiZ2V0VGhlb3JlbXMiLCJ0aGVvcmVtcyIsImZpbGVDb250ZXh0VGhlb3JlbXMiLCJyZWxlYXNlQ29udGV4dFRoZW9yZW1zIiwiZ2V0Q29uamVjdHVyZXMiLCJjb25qZWN0dXJlcyIsImZpbGVDb250ZXh0Q29uamVjdHVyZXMiLCJyZWxlYXNlQ29udGV4dENvbmplY3R1cmVzIiwiZ2V0Q29tYmluYXRvcnMiLCJjb21iaW5hdG9ycyIsImZpbGVDb250ZXh0Q29tYmluYXRvcnMiLCJyZWxlYXNlQ29udGV4dENvbWJpbmF0b3JzIiwiZ2V0Q29uc3RydWN0b3JzIiwiY29uc3RydWN0b3JzIiwiZmlsZUNvbnRleHRDb25zdHJ1Y3RvcnMiLCJyZWxlYXNlQ29udGV4dENvbnN0cnVjdG9ycyIsImFkZEZpbGVDb250ZXh0IiwidG9KU09OIiwianNvbiIsImZpbGVDb250ZXh0SlNPTiIsImZyb21Mb2dOYW1lQW5kRW50cmllcyIsImN1c3RvbUdyYW1tYXJGcm9tTmFtZUFuZEVudHJpZXMiLCJkaXJlY3RvcnlSZWxlYXNlQ29udGV4dCIsIlJlbGVhc2VDb250ZXh0Il0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztlQU9xQkE7Ozs0REFMTTtxQkFFTjs2QkFDMkI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFakMsSUFBQSxBQUFNQSx3Q0FBTjtjQUFNQTs4QkFBQUE7YUFBQUEsd0JBQ1BDLEdBQUcsRUFBRUMsSUFBSSxFQUFFQyxPQUFPLEVBQUVDLEtBQUssRUFBRUMsTUFBTSxFQUFFQyxRQUFRLEVBQUVDLGFBQWEsRUFBRUMseUJBQXlCLEVBQUVDLFlBQVk7OEJBRDVGVDs7a0NBRVhDLEtBQUtDLE1BQU1DLFNBQVNDLE9BQU9DLFFBQVFDLFVBQVVDLGVBQWVDO1FBRWxFLE1BQUtDLFlBQVksR0FBR0E7OztpQkFKSFQ7O1lBT25CVSxLQUFBQTttQkFBQUEsU0FBQUEsa0JBQWtCO2dCQUNoQixPQUFPLElBQUksQ0FBQ0QsWUFBWTtZQUMxQjs7O1lBRUFFLEtBQUFBO21CQUFBQSxTQUFBQSxZQUFzQztvQkFBNUJDLHNCQUFBQSxpRUFBc0IsSUFBSTtnQkFDbEMsSUFBTUMs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