occam-nominal 1.0.495 → 1.0.501
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/context/liminal.js +13 -6
- package/lib/context.js +1 -25
- package/lib/element/assertion/schema.js +3 -5
- package/lib/element/assumption/implicit.js +3 -4
- package/lib/element/claim/axiom.js +23 -14
- package/lib/element/claim/conjecture.js +27 -16
- package/lib/element/claim/lemma.js +26 -15
- package/lib/element/claim/theorem.js +26 -15
- package/lib/element/claim.js +17 -27
- package/lib/element/combinator.js +3 -5
- package/lib/element/constraint.js +38 -50
- package/lib/element/constructor.js +2 -4
- package/lib/element/declaration/combinator.js +6 -4
- package/lib/element/declaration/constructor.js +6 -4
- package/lib/element/declaration/cotype.js +6 -4
- package/lib/element/declaration/generator.js +6 -4
- package/lib/element/declaration/metavariable.js +6 -4
- package/lib/element/declaration/property.js +6 -4
- package/lib/element/declaration/type.js +6 -4
- package/lib/element/declaration/typePrefix.js +6 -4
- package/lib/element/declaration/variable.js +6 -4
- package/lib/element/fact/premise.js +54 -32
- package/lib/element/fact/step.js +43 -35
- package/lib/element/fact/supposition.js +47 -32
- package/lib/element/fact.js +5 -1
- package/lib/element/generator.js +2 -5
- package/lib/element/hypothesis.js +3 -2
- package/lib/element/property.js +2 -4
- package/lib/element/reference.js +2 -3
- package/lib/element/resolution/conclusion.js +23 -2
- package/lib/element/resolution/deduction.js +23 -2
- package/lib/element/resolution.js +2 -16
- package/lib/element/rule.js +22 -19
- package/lib/element/schema.js +73 -82
- package/lib/element/section.js +5 -3
- package/lib/element/signature.js +2 -4
- package/lib/element/subproof.js +7 -2
- package/lib/element/substitution/frame.js +1 -78
- package/lib/element/substitution/statement.js +7 -9
- package/lib/element/substitution/term.js +5 -9
- package/lib/process/unification.js +2 -2
- package/package.json +3 -3
- package/src/context/liminal.js +16 -6
- package/src/context.js +0 -36
- package/src/element/assertion/schema.js +2 -8
- package/src/element/assumption/implicit.js +2 -6
- package/src/element/claim/axiom.js +30 -13
- package/src/element/claim/conjecture.js +35 -16
- package/src/element/claim/lemma.js +34 -15
- package/src/element/claim/theorem.js +34 -15
- package/src/element/claim.js +23 -37
- package/src/element/combinator.js +1 -6
- package/src/element/constraint.js +33 -53
- package/src/element/constructor.js +0 -5
- package/src/element/declaration/combinator.js +8 -3
- package/src/element/declaration/constructor.js +8 -3
- package/src/element/declaration/cotype.js +8 -3
- package/src/element/declaration/generator.js +8 -3
- package/src/element/declaration/metavariable.js +8 -3
- package/src/element/declaration/property.js +8 -3
- package/src/element/declaration/type.js +8 -3
- package/src/element/declaration/typePrefix.js +8 -3
- package/src/element/declaration/variable.js +8 -3
- package/src/element/fact/premise.js +78 -42
- package/src/element/fact/step.js +55 -45
- package/src/element/fact/supposition.js +70 -45
- package/src/element/fact.js +6 -0
- package/src/element/generator.js +0 -7
- package/src/element/hypothesis.js +4 -1
- package/src/element/property.js +0 -5
- package/src/element/reference.js +1 -4
- package/src/element/resolution/conclusion.js +39 -2
- package/src/element/resolution/deduction.js +39 -2
- package/src/element/resolution.js +2 -28
- package/src/element/rule.js +30 -23
- package/src/element/schema.js +66 -73
- package/src/element/section.js +7 -2
- package/src/element/signature.js +1 -6
- package/src/element/subproof.js +9 -1
- package/src/element/substitution/frame.js +1 -138
- package/src/element/substitution/statement.js +7 -11
- package/src/element/substitution/term.js +4 -10
- package/src/process/unification.js +1 -1
package/lib/context/liminal.js
CHANGED
|
@@ -76,20 +76,27 @@ class LiminalContext extends _context.default {
|
|
|
76
76
|
}
|
|
77
77
|
solveInferredSubstitutions(forward, back) {
|
|
78
78
|
forward = cut(forward, back); ///
|
|
79
|
-
const
|
|
79
|
+
const inferredSubstitutions = this.getInferredSubstitutions(), metavariableNodes = (0, _substitutions.metavariableNodesFromInferredSubstitutions)(inferredSubstitutions);
|
|
80
80
|
return forEach(metavariableNodes, (metavariableNode, forward, back)=>{
|
|
81
81
|
const complexInferredSubstitutions = this.findComplexInferredSubstitutionsByMetavariableNode(metavariableNode);
|
|
82
82
|
return forEach(complexInferredSubstitutions, (complexInferredSubstitution, forward, back)=>{
|
|
83
83
|
const inferredSubstitution = complexInferredSubstitution, solved = inferredSubstitution.isSolved();
|
|
84
84
|
if (solved) {
|
|
85
|
-
return forward(
|
|
85
|
+
return forward(back);
|
|
86
86
|
}
|
|
87
|
-
|
|
87
|
+
const context = this; ///
|
|
88
|
+
return inferredSubstitution.solve(context, (context, back)=>{
|
|
89
|
+
return forward(back);
|
|
90
|
+
}, back);
|
|
88
91
|
}, forward, back);
|
|
89
92
|
}, forward, back);
|
|
90
93
|
}
|
|
94
|
+
areComplexSubstitutionsUnsolved() {
|
|
95
|
+
const inferredSubstitutionsSolved = this.areInferredSubstitutionsSolved(), complexSubstitutionsUnsolved = !inferredSubstitutionsSolved;
|
|
96
|
+
return complexSubstitutionsUnsolved;
|
|
97
|
+
}
|
|
91
98
|
areInferredSubstitutionsSolved() {
|
|
92
|
-
const inferredSubstitutions = this.getInferredSubstitutions(), metavariableNodes = (0, _substitutions.metavariableNodesFromInferredSubstitutions)(inferredSubstitutions),
|
|
99
|
+
const inferredSubstitutions = this.getInferredSubstitutions(), metavariableNodes = (0, _substitutions.metavariableNodesFromInferredSubstitutions)(inferredSubstitutions), inferredSubstitutionsSolved = metavariableNodes.every((metavariableNode)=>{
|
|
93
100
|
const complexInferredSubstitutions = this.findComplexInferredSubstitutionsByMetavariableNode(metavariableNode), complexInferredSubstitutionsSolved = complexInferredSubstitutions.every((complexInferredSubstitution)=>{
|
|
94
101
|
const complexInferredSubstitutionSolved = complexInferredSubstitution.isSolved();
|
|
95
102
|
if (complexInferredSubstitutionSolved) {
|
|
@@ -100,7 +107,7 @@ class LiminalContext extends _context.default {
|
|
|
100
107
|
return true;
|
|
101
108
|
}
|
|
102
109
|
});
|
|
103
|
-
return
|
|
110
|
+
return inferredSubstitutionsSolved;
|
|
104
111
|
}
|
|
105
112
|
isEmpty() {
|
|
106
113
|
const inferredSubstitutionsLength = this.inferredSubstitutions.length, empty = inferredSubstitutionsLength === 0;
|
|
@@ -199,4 +206,4 @@ class LiminalContext extends _context.default {
|
|
|
199
206
|
}
|
|
200
207
|
}
|
|
201
208
|
|
|
202
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250ZXh0L2xpbWluYWwuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGFycmF5VXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuaW1wb3J0IHsgY29udGludWF0aW9uVXRpbGl0aWVzIH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgQ29udGV4dCBmcm9tIFwiLi4vY29udGV4dFwiO1xuaW1wb3J0IGVsZW1lbnRzIGZyb20gXCIuLi9lbGVtZW50c1wiO1xuXG5pbXBvcnQgeyBtZXRhdmFyaWFibGVOb2Rlc0Zyb21JbmZlcnJlZFN1YnN0aXR1dGlvbnMgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3N1YnN0aXR1dGlvbnNcIjtcblxuY29uc3QgeyBjdXQsIGZvckVhY2ggfSA9IGNvbnRpbnVhdGlvblV0aWxpdGllcyxcbiAgICAgIHsgcHVzaCwgZmluZCwgZmlyc3QgfSA9IGFycmF5VXRpbGl0aWVzO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBMaW1pbmFsQ29udGV4dCBleHRlbmRzIENvbnRleHQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBpbmZlcnJlZFN1YnN0aXR1dGlvbnMpIHtcbiAgICBzdXBlcihjb250ZXh0KTtcblxuICAgIHRoaXMuaW5mZXJyZWRTdWJzdGl0dXRpb25zID0gaW5mZXJyZWRTdWJzdGl0dXRpb25zO1xuICB9XG5cbiAgZ2V0SW5mZXJyZWRTdWJzdGl0dXRpb25zKGluZmVycmVkU3Vic3RpdHV0aW9ucyA9IFtdKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpO1xuXG4gICAgcHVzaChpbmZlcnJlZFN1YnN0aXR1dGlvbnMsIHRoaXMuaW5mZXJyZWRTdWJzdGl0dXRpb25zKTtcblxuICAgIGNvbnRleHQuZ2V0SW5mZXJyZWRTdWJzdGl0dXRpb25zKGluZmVycmVkU3Vic3RpdHV0aW9ucyk7XG5cbiAgICByZXR1cm4gaW5mZXJyZWRTdWJzdGl0dXRpb25zO1xuICB9XG5cbiAgZ2V0U29sZUluZmVycmVkU3Vic3RpdHV0aW9uKCkge1xuICAgIGxldCBzb2xlSW5mZXJyZWRTdWJzdGl0dXRpb24gPSBudWxsO1xuXG4gICAgY29uc3QgaW5mZXJyZWRTdWJzdGl0dXRpb25zTGVuZ3RoID0gdGhpcy5pbmZlcnJlZFN1YnN0aXR1dGlvbnMubGVuZ3RoO1xuXG4gICAgaWYgKGluZmVycmVkU3Vic3RpdHV0aW9uc0xlbmd0aCA9PT0gMSkge1xuICAgICAgY29uc3QgZmlyc3RJbmZlcnJlZFN1YnN0aXR1dGlvbiA9IGZpcnN0KHRoaXMuaW5mZXJyZWRTdWJzdGl0dXRpb25zKTtcblxuICAgICAgc29sZUluZmVycmVkU3Vic3RpdHV0aW9uID0gZmlyc3RJbmZlcnJlZFN1YnN0aXR1dGlvbjsgLy8vXG4gICAgfVxuXG4gICAgcmV0dXJuIHNvbGVJbmZlcnJlZFN1YnN0aXR1dGlvbjtcbiAgfVxuXG4gIGdldFNpbmd1bGFyTm9uVHJpdmlhbEluZmVycmVkU3Vic3RpdHV0aW9uKCkge1xuICAgIGxldCBzaW5ndWxhck5vblRyaXZpYWxJbmZlcnJlZFN1YnN0aXR1dGlvbiA9IG51bGw7XG5cbiAgICBjb25zdCBzb2xlSW5mZXJyZWRTdWJzdGl0dXRpb24gPSB0aGlzLmdldFNvbGVJbmZlcnJlZFN1YnN0aXR1dGlvbigpO1xuXG4gICAgaWYgKHNvbGVJbmZlcnJlZFN1YnN0aXR1dGlvbiAhPT0gbnVsbCkge1xuICAgICAgY29uc3Qgc29sZUluZmVycmVkU3Vic3RpdHV0aW9uTm9uVHJpdmlhbCA9IHNvbGVJbmZlcnJlZFN1YnN0aXR1dGlvbi5pc05vblRyaXZpYWwoKTtcblxuICAgICAgaWYgKHNvbGVJbmZlcnJlZFN1YnN0aXR1dGlvbk5vblRyaXZpYWwpIHtcbiAgICAgICAgc2luZ3VsYXJOb25Ucml2aWFsSW5mZXJyZWRTdWJzdGl0dXRpb24gPSBzb2xlSW5mZXJyZWRTdWJzdGl0dXRpb247ICAvLy9cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gc2luZ3VsYXJOb25Ucml2aWFsSW5mZXJyZWRTdWJzdGl0dXRpb247XG4gIH1cblxuICBhZGRTdWJzdGl0dXRpb24oc3Vic3RpdHV0aW9uKSB7XG4gICAgLy8vXG4gIH1cblxuICBhZGRJbmZlcnJlZFN1YnN0aXR1dGlvbihpbmZlcnJlZFN1YnN0aXR1dGlvbikge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLCAvLy9cbiAgICAgICAgICBpbmZlcnJlZFN1YnN0aXR1dGlvbkEgPSBpbmZlcnJlZFN1YnN0aXR1dGlvbiwgLy8vXG4gICAgICAgICAgaW5mZXJyZWRTdWJzdGl0dXRpb25TdHJpbmcgPSBpbmZlcnJlZFN1YnN0aXR1dGlvbi5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQudHJhY2UoYEFkZGluZyB0aGUgJyR7aW5mZXJyZWRTdWJzdGl0dXRpb25TdHJpbmd9JyBpbmZlcnJlZCBzdWJzdGl0dXRpb24gdG8gdGhlIGxpbWluYWwgY29udGV4dC4uLmApO1xuXG4gICAgY29uc3QgaW5mZXJyZWRTdWJzdGl0dXRpb25CID0gdGhpcy5pbmZlcnJlZFN1YnN0aXR1dGlvbnMuZmluZCgoaW5mZXJyZWRTdWJzdGl0dXRpb24pID0+IHtcbiAgICAgIGNvbnN0IGluZmVycmVkU3Vic3RpdHV0aW9uQiA9IGluZmVycmVkU3Vic3RpdHV0aW9uLCAvLy9cbiAgICAgICAgICAgIGluZmVycmVkU3Vic3RpdHV0aW9uQUVxdWFsVG9JbmZlcnJlZFN1YnN0aXR1dGlvbkIgPSBpbmZlcnJlZFN1YnN0aXR1dGlvbkEuaXNFcXVhbFRvKGluZmVycmVkU3Vic3RpdHV0aW9uQik7XG5cbiAgICAgIGlmIChpbmZlcnJlZFN1YnN0aXR1dGlvbkFFcXVhbFRvSW5mZXJyZWRTdWJzdGl0dXRpb25CKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pIHx8IG51bGw7XG5cbiAgICBpZiAoaW5mZXJyZWRTdWJzdGl0dXRpb25CICE9PSBudWxsKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGBUaGUgJyR7aW5mZXJyZWRTdWJzdGl0dXRpb25TdHJpbmd9JyBpbmZlcnJlZCBzdWJzdGl0dXRpb24gaGFzIGFscmVhZHkgYmVlbiBhZGRlZCB0byB0aGUgbGltaW5hbCBjb250ZXh0LmApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmluZmVycmVkU3Vic3RpdHV0aW9ucy5wdXNoKGluZmVycmVkU3Vic3RpdHV0aW9uKTtcbiAgICB9XG5cbiAgICBjb250ZXh0LmRlYnVnKGAuLi5hZGRlZCB0aGUgJyR7aW5mZXJyZWRTdWJzdGl0dXRpb25TdHJpbmd9JyBpbmZlcnJlZCBzdWJzdGl0dXRpb24gdG8gdGhlIGxpbWluYWwgY29udGV4dC5gKTtcbiAgfVxuXG4gIGFkZEluZmVycmVkU3Vic3RpdHV0aW9ucyhpbmZlcnJlZFN1YnN0aXR1dGlvbnMpIHtcbiAgICBpbmZlcnJlZFN1YnN0aXR1dGlvbnMuZm9yRWFjaCgoaW5mZXJyZWRTdWJzdGl0dXRpb24pID0+IHtcbiAgICAgIHRoaXMuYWRkSW5mZXJyZWRTdWJzdGl0dXRpb24oaW5mZXJyZWRTdWJzdGl0dXRpb24pO1xuICAgIH0pO1xuICB9XG5cbiAgc29sdmVJbmZlcnJlZFN1YnN0aXR1dGlvbnMoZm9yd2FyZCwgYmFjaykge1xuICAgIGZvcndhcmQgPSBjdXQoZm9yd2FyZCwgYmFjayk7IC8vL1xuXG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMsIC8vL1xuICAgICAgICAgIGluZmVycmVkU3Vic3RpdHV0aW9ucyA9IHRoaXMuZ2V0SW5mZXJyZWRTdWJzdGl0dXRpb25zKCksXG4gICAgICAgICAgbWV0YXZhcmlhYmxlTm9kZXMgPSBtZXRhdmFyaWFibGVOb2Rlc0Zyb21JbmZlcnJlZFN1YnN0aXR1dGlvbnMoaW5mZXJyZWRTdWJzdGl0dXRpb25zKTtcblxuICAgIHJldHVybiBmb3JFYWNoKG1ldGF2YXJpYWJsZU5vZGVzLCAobWV0YXZhcmlhYmxlTm9kZSwgZm9yd2FyZCwgYmFjaykgPT4ge1xuICAgICAgY29uc3QgY29tcGxleEluZmVycmVkU3Vic3RpdHV0aW9ucyA9IHRoaXMuZmluZENvbXBsZXhJbmZlcnJlZFN1YnN0aXR1dGlvbnNCeU1ldGF2YXJpYWJsZU5vZGUobWV0YXZhcmlhYmxlTm9kZSk7XG5cbiAgICAgIHJldHVybiBmb3JFYWNoKGNvbXBsZXhJbmZlcnJlZFN1YnN0aXR1dGlvbnMsIChjb21wbGV4SW5mZXJyZWRTdWJzdGl0dXRpb24sIGZvcndhcmQsIGJhY2spID0+IHtcbiAgICAgICAgY29uc3QgaW5mZXJyZWRTdWJzdGl0dXRpb24gPSBjb21wbGV4SW5mZXJyZWRTdWJzdGl0dXRpb24sIC8vL1xuICAgICAgICAgICAgICBzb2x2ZWQgPSBpbmZlcnJlZFN1YnN0aXR1dGlvbi5pc1NvbHZlZCgpO1xuXG4gICAgICAgIGlmIChzb2x2ZWQpIHtcbiAgICAgICAgICByZXR1cm4gZm9yd2FyZChjb250ZXh0LCBiYWNrKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBpbmZlcnJlZFN1YnN0aXR1dGlvbi5zb2x2ZShjb250ZXh0LCBmb3J3YXJkLCBiYWNrKTtcbiAgICAgIH0sIGZvcndhcmQsIGJhY2spO1xuICAgIH0sIGZvcndhcmQsIGJhY2spO1xuICB9XG5cbiAgYXJlSW5mZXJyZWRTdWJzdGl0dXRpb25zU29sdmVkKCkge1xuICAgIGNvbnN0IGluZmVycmVkU3Vic3RpdHV0aW9ucyA9IHRoaXMuZ2V0SW5mZXJyZWRTdWJzdGl0dXRpb25zKCksXG4gICAgICAgICAgbWV0YXZhcmlhYmxlTm9kZXMgPSBtZXRhdmFyaWFibGVOb2Rlc0Zyb21JbmZlcnJlZFN1YnN0aXR1dGlvbnMoaW5mZXJyZWRTdWJzdGl0dXRpb25zKSxcbiAgICAgICAgICBzb2x2ZWQgPSBtZXRhdmFyaWFibGVOb2Rlcy5ldmVyeSgobWV0YXZhcmlhYmxlTm9kZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgY29tcGxleEluZmVycmVkU3Vic3RpdHV0aW9ucyA9IHRoaXMuZmluZENvbXBsZXhJbmZlcnJlZFN1YnN0aXR1dGlvbnNCeU1ldGF2YXJpYWJsZU5vZGUobWV0YXZhcmlhYmxlTm9kZSksXG4gICAgICAgICAgICAgICAgICBjb21wbGV4SW5mZXJyZWRTdWJzdGl0dXRpb25zU29sdmVkID0gY29tcGxleEluZmVycmVkU3Vic3RpdHV0aW9ucy5ldmVyeSgoY29tcGxleEluZmVycmVkU3Vic3RpdHV0aW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbXBsZXhJbmZlcnJlZFN1YnN0aXR1dGlvblNvbHZlZCA9IGNvbXBsZXhJbmZlcnJlZFN1YnN0aXR1dGlvbi5pc1NvbHZlZCgpO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChjb21wbGV4SW5mZXJyZWRTdWJzdGl0dXRpb25Tb2x2ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGlmIChjb21wbGV4SW5mZXJyZWRTdWJzdGl0dXRpb25zU29sdmVkKSB7XG4gICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuXG4gICAgcmV0dXJuIHNvbHZlZDtcbiAgfVxuXG4gIGlzRW1wdHkoKSB7XG4gICAgY29uc3QgaW5mZXJyZWRTdWJzdGl0dXRpb25zTGVuZ3RoID0gdGhpcy5pbmZlcnJlZFN1YnN0aXR1dGlvbnMubGVuZ3RoLFxuICAgICAgICAgIGVtcHR5ID0gKGluZmVycmVkU3Vic3RpdHV0aW9uc0xlbmd0aCA9PT0gMCk7XG5cbiAgICByZXR1cm4gZW1wdHk7XG4gIH1cblxuICBxdWFsaWZ5KGFzc3VtcHRpb24sIGNvbnN0cmFpbnQpIHtcbiAgICBsZXQgcXVhbGlmaWVzID0gZmFsc2U7XG5cbiAgICBjb25zdCBlbXB0eSA9IHRoaXMuaXNFbXB0eSgpO1xuXG4gICAgaWYgKGVtcHR5KSB7XG4gICAgICBxdWFsaWZpZXMgPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBzb2xlSW5mZXJyZWRTdWJzdGl0dXRpb24gPSB0aGlzLmdldFNvbGVJbmZlcnJlZFN1YnN0aXR1dGlvbigpO1xuXG4gICAgICBpZiAoc29sZUluZmVycmVkU3Vic3RpdHV0aW9uICE9PSBudWxsKSB7XG4gICAgICAgIGNvbnN0IHsgUmVmZXJlbmNlSW5mZXJyZWRTdWJzdGl0dXRpb24gfSA9IGVsZW1lbnRzLFxuICAgICAgICAgICAgICBjb250ZXh0ID0gdGhpcywgLy8vXG4gICAgICAgICAgICAgIHJlZmVyZW5jZUluZmVycmVkU3Vic3RpdHV0aW9uID0gUmVmZXJlbmNlSW5mZXJyZWRTdWJzdGl0dXRpb24uZnJvbUFzc3VtcHRpb25BbmRDb25zdHJhaW50KGFzc3VtcHRpb24sIGNvbnN0cmFpbnQsIGNvbnRleHQpLFxuICAgICAgICAgICAgICByZWZlcmVuY2VJbmZlcnJlZFN1YnN0aXR1dGlvbkNvbXBhcmVzVG9Tc29sZUluZmVycmVkU3Vic3RpdHV0aW9uID0gcmVmZXJlbmNlSW5mZXJyZWRTdWJzdGl0dXRpb24uY29tcGFyZVN1YnN0aXR1dGlvbihzb2xlSW5mZXJyZWRTdWJzdGl0dXRpb24pO1xuXG4gICAgICAgIGlmIChyZWZlcmVuY2VJbmZlcnJlZFN1YnN0aXR1dGlvbkNvbXBhcmVzVG9Tc29sZUluZmVycmVkU3Vic3RpdHV0aW9uKSB7XG4gICAgICAgICAgcXVhbGlmaWVzID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBxdWFsaWZpZXM7XG4gIH1cblxuICBtZXJnZShjb250ZXh0KSB7XG4gICAgY29udGV4dC5kZWJ1ZyhgTWVyZ2luZyB0aGUgbGltaW5hbCBjb250ZXh0YCk7XG5cbiAgICBjb250ZXh0LmFkZEluZmVycmVkU3Vic3RpdHV0aW9ucyh0aGlzLmluZmVycmVkU3Vic3RpdHV0aW9ucyk7XG4gIH1cblxuICBmaW5kSW5mZXJyZWRTdWJzdGl0dXRpb24oY2FsbGJhY2spIHtcbiAgICBjb25zdCBpbmZlcnJlZFN1YnN0aXR1dGlvbnMgPSB0aGlzLmdldEluZmVycmVkU3Vic3RpdHV0aW9ucygpLFxuICAgICAgICAgIGluZmVycmVkU3Vic3RpdHV0aW9uID0gaW5mZXJyZWRTdWJzdGl0dXRpb25zLmZpbmQoY2FsbGJhY2spO1xuXG4gICAgcmV0dXJuIGluZmVycmVkU3Vic3RpdHV0aW9uO1xuICB9XG5cbiAgZmluZEluZmVycmVkU3Vic3RpdHV0aW9ucyhjYWxsYmFjaykge1xuICAgIGxldCBpbmZlcnJlZFN1YnN0aXR1dGlvbnM7XG5cbiAgICBpbmZlcnJlZFN1YnN0aXR1dGlvbnMgPSB0aGlzLmdldEluZmVycmVkU3Vic3RpdHV0aW9ucygpO1xuXG4gICAgaW5mZXJyZWRTdWJzdGl0dXRpb25zID0gZmluZChpbmZlcnJlZFN1YnN0aXR1dGlvbnMsIGNhbGxiYWNrKTsgIC8vL1xuXG4gICAgcmV0dXJuIGluZmVycmVkU3Vic3RpdHV0aW9ucztcbiAgfVxuXG4gIGZpbmRJbmZlcnJlZFN1YnN0aXR1dGlvbkJ5VmFyaWFibGVOb2RlKHZhcmlhYmxlTm9kZSkge1xuICAgIGNvbnN0IGluZmVycmVkU3Vic3RpdHV0aW9uID0gdGhpcy5maW5kSW5mZXJyZWRTdWJzdGl0dXRpb24oKGluZmVycmVkU3Vic3RpdHV0aW9uKSA9PiB7XG4gICAgICBjb25zdCB2YXJpYWJsZU5vZGVNYXRjaGVzID0gaW5mZXJyZWRTdWJzdGl0dXRpb24ubWF0Y2hWYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlKTtcblxuICAgICAgaWYgKHZhcmlhYmxlTm9kZU1hdGNoZXMpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSkgfHwgbnVsbDtcblxuICAgIHJldHVybiBpbmZlcnJlZFN1YnN0aXR1dGlvbjtcbiAgfVxuXG4gIGZpbmRJbmZlcnJlZFN1YnN0aXR1dGlvbkJ5TWV0YXZhcmlhYmxlTm9kZShtZXRhdmFyaWFibGVOb2RlKSB7XG4gICAgY29uc3Qgc2ltcGxlSW5mZXJyZWRTdWJzdGl0dXRpb24gPSB0aGlzLmZpbmRTaW1wbGVJbmZlcnJlZFN1YnN0aXR1dGlvbkJ5TWV0YXZhcmlhYmxlTm9kZShtZXRhdmFyaWFibGVOb2RlKSxcbiAgICAgICAgICBpbmZlcnJlZFN1YnN0aXR1dGlvbiA9IHNpbXBsZUluZmVycmVkU3Vic3RpdHV0aW9uOyAgLy8vXG5cbiAgICByZXR1cm4gaW5mZXJyZWRTdWJzdGl0dXRpb247XG4gIH1cblxuICBmaW5kU2ltcGxlSW5mZXJyZWRTdWJzdGl0dXRpb25CeU1ldGF2YXJpYWJsZU5vZGUobWV0YXZhcmlhYmxlTm9kZSkge1xuICAgIGNvbnN0IHNpbXBsZUluZmVycmVkU3Vic3RpdHV0aW9uID0gdGhpcy5maW5kSW5mZXJyZWRTdWJzdGl0dXRpb24oKGluZmVycmVkU3Vic3RpdHV0aW9uKSA9PiB7XG4gICAgICBjb25zdCBpbmZlcnJlZFN1YnN0aXR1dGlvblNpbXBsZSA9IGluZmVycmVkU3Vic3RpdHV0aW9uLmlzU2ltcGxlKCk7XG5cbiAgICAgIGlmIChpbmZlcnJlZFN1YnN0aXR1dGlvblNpbXBsZSkge1xuICAgICAgICBjb25zdCBzaW1wbGVJbmZlcnJlZFN1YnN0aXR1dGlvbiA9IGluZmVycmVkU3Vic3RpdHV0aW9uLCAgLy8vXG4gICAgICAgICAgICAgIG1ldGF2YXJpYWJsZU5vZGVNYXRjaGVzID0gc2ltcGxlSW5mZXJyZWRTdWJzdGl0dXRpb24ubWF0Y2hNZXRhdmFyaWFibGVOb2RlKG1ldGF2YXJpYWJsZU5vZGUpO1xuXG4gICAgICAgIGlmIChtZXRhdmFyaWFibGVOb2RlTWF0Y2hlcykge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSkgfHwgbnVsbDtcblxuICAgIHJldHVybiBzaW1wbGVJbmZlcnJlZFN1YnN0aXR1dGlvbjtcbiAgfVxuXG4gIGZpbmRDb21wbGV4SW5mZXJyZWRTdWJzdGl0dXRpb25zQnlNZXRhdmFyaWFibGVOb2RlKG1ldGF2YXJpYWJsZU5vZGUpIHtcbiAgICBjb25zdCBjb21wbGV4SW5mZXJyZWRTdWJzdGl0dXRpb24gPSB0aGlzLmZpbmRJbmZlcnJlZFN1YnN0aXR1dGlvbnMoKGluZmVycmVkU3Vic3RpdHV0aW9uKSA9PiB7XG4gICAgICBjb25zdCBpbmZlcnJlZFN1YnN0aXR1dGlvbkNvbXBsZXggPSBpbmZlcnJlZFN1YnN0aXR1dGlvbi5pc0NvbXBsZXgoKTtcblxuICAgICAgaWYgKGluZmVycmVkU3Vic3RpdHV0aW9uQ29tcGxleCkge1xuICAgICAgICBjb25zdCBjb21wbGV4SW5mZXJyZWRTdWJzdGl0dXRpb24gPSBpbmZlcnJlZFN1YnN0aXR1dGlvbiwgIC8vL1xuICAgICAgICAgICAgICBtZXRhdmFyaWFibGVOb2RlTWF0Y2hlcyA9IGNvbXBsZXhJbmZlcnJlZFN1YnN0aXR1dGlvbi5tYXRjaE1ldGF2YXJpYWJsZU5vZGUobWV0YXZhcmlhYmxlTm9kZSk7XG5cbiAgICAgICAgaWYgKG1ldGF2YXJpYWJsZU5vZGVNYXRjaGVzKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KSB8fCBudWxsO1xuXG4gICAgcmV0dXJuIGNvbXBsZXhJbmZlcnJlZFN1YnN0aXR1dGlvbjtcbiAgfVxuXG4gIGZpbmRJbmZlcnJlZFN1YnN0aXR1dGlvbkJ5TWV0YXZhcmlhYmxlTm9kZUFuZFN1YnN0aXR1dGlvbk5vZGUobWV0YXZhcmlhYmxlTm9kZSwgc3Vic3RpdHV0aW9uTm9kZSkge1xuICAgIGNvbnN0IGluZmVycmVkU3Vic3RpdHV0aW9uID0gdGhpcy5maW5kSW5mZXJyZWRTdWJzdGl0dXRpb24oKGluZmVycmVkU3Vic3RpdHV0aW9uKSA9PiB7ICAvLy9cbiAgICAgICAgICAgIGNvbnN0IG1ldGF2YXJpYWJsZU5vZGVNYXRjaGVzID0gaW5mZXJyZWRTdWJzdGl0dXRpb24ubWF0Y2hNZXRhdmFyaWFibGVOb2RlKG1ldGF2YXJpYWJsZU5vZGUpO1xuXG4gICAgICAgICAgICBpZiAobWV0YXZhcmlhYmxlTm9kZU1hdGNoZXMpIHtcbiAgICAgICAgICAgICAgY29uc3Qgc3Vic3RpdHV0aW9uTm9kZU1hdGNoZXMgPSBpbmZlcnJlZFN1YnN0aXR1dGlvbi5tYXRjaFN1YnN0aXR1dGlvbk5vZGUoc3Vic3RpdHV0aW9uTm9kZSk7XG5cbiAgICAgICAgICAgICAgaWYgKHN1YnN0aXR1dGlvbk5vZGVNYXRjaGVzKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KSB8fCBudWxsO1xuXG4gICAgcmV0dXJuIGluZmVycmVkU3Vic3RpdHV0aW9uO1xuICB9XG5cbiAgaXNJbmZlcnJlZFN1YnN0aXR1dGlvblByZXNlbnRCeU1ldGF2YXJpYWJsZU5vZGUobWV0YXZhcmlhYmxlTm9kZSkge1xuICAgIGNvbnN0IGluZmVycmVkU3Vic3RpdHV0aW9uID0gdGhpcy5maW5kSW5mZXJyZWRTdWJzdGl0dXRpb25CeU1ldGF2YXJpYWJsZU5vZGUobWV0YXZhcmlhYmxlTm9kZSksXG4gICAgICAgICAgaW5mZXJyZWRTdWJzdGl0dXRpb25QcmVzZW50ID0gKGluZmVycmVkU3Vic3RpdHV0aW9uICE9PSBudWxsKTtcblxuICAgIHJldHVybiBpbmZlcnJlZFN1YnN0aXR1dGlvblByZXNlbnQ7XG4gIH1cblxuICBpc0luZmVycmVkU3Vic3RpdHV0aW9uUHJlc2VudEJ5TWV0YXZhcmlhYmxlTm9kZUFuZFN1YnN0aXR1dGlvbk5vZGUobWV0YXZhcmlhYmxlTm9kZSwgc3Vic3RpdHV0aW9uTm9kZSkge1xuICAgIGNvbnN0IGluZmVycmVkU3Vic3RpdHV0aW9uID0gdGhpcy5maW5kSW5mZXJyZWRTdWJzdGl0dXRpb25CeU1ldGF2YXJpYWJsZU5vZGVBbmRTdWJzdGl0dXRpb25Ob2RlKG1ldGF2YXJpYWJsZU5vZGUsIHN1YnN0aXR1dGlvbk5vZGUpLFxuICAgICAgICAgIGluZmVycmVkU3Vic3RpdHV0aW9uUHJlc2VudCA9IChpbmZlcnJlZFN1YnN0aXR1dGlvbiAhPT0gbnVsbCk7XG5cbiAgICByZXR1cm4gaW5mZXJyZWRTdWJzdGl0dXRpb25QcmVzZW50O1xuICB9XG5cbiAgc3RhdGljIGZyb21Ob3RoaW5nKGNvbnRleHQpIHtcbiAgICBjb25zdCBpbmZlcnJlZFN1YnN0aXR1dGlvbnMgPSBbXSxcbiAgICAgICAgICBsaW1pbmFsQ29udGV4dCA9IG5ldyBMaW1pbmFsQ29udGV4dChjb250ZXh0LCBpbmZlcnJlZFN1YnN0aXR1dGlvbnMpO1xuXG4gICAgcmV0dXJuIGxpbWluYWxDb250ZXh0O1xuICB9XG59XG4iXSwibmFtZXMiOlsiTGltaW5hbENvbnRleHQiLCJjdXQiLCJmb3JFYWNoIiwiY29udGludWF0aW9uVXRpbGl0aWVzIiwicHVzaCIsImZpbmQiLCJmaXJzdCIsImFycmF5VXRpbGl0aWVzIiwiQ29udGV4dCIsImNvbnRleHQiLCJpbmZlcnJlZFN1YnN0aXR1dGlvbnMiLCJnZXRJbmZlcnJlZFN1YnN0aXR1dGlvbnMiLCJnZXRDb250ZXh0IiwiZ2V0U29sZUluZmVycmVkU3Vic3RpdHV0aW9uIiwic29sZUluZmVycmVkU3Vic3RpdHV0aW9uIiwiaW5mZXJyZWRTdWJzdGl0dXRpb25zTGVuZ3RoIiwibGVuZ3RoIiwiZmlyc3RJbmZlcnJlZFN1YnN0aXR1dGlvbiIsImdldFNpbmd1bGFyTm9uVHJpdmlhbEluZmVycmVkU3Vic3RpdHV0aW9uIiwic2luZ3VsYXJOb25Ucml2aWFsSW5mZXJyZWRTdWJzdGl0dXRpb24iLCJzb2xlSW5mZXJyZWRTdWJzdGl0dXRpb25Ob25Ucml2aWFsIiwiaXNOb25Ucml2aWFsIiwiYWRkU3Vic3RpdHV0aW9uIiwic3Vic3RpdHV0aW9uIiwiYWRkSW5mZXJyZWRTdWJzdGl0dXRpb24iLCJpbmZlcnJlZFN1YnN0aXR1dGlvbiIsImluZmVycmVkU3Vic3RpdHV0aW9uQSIsImluZmVycmVkU3Vic3RpdHV0aW9uU3RyaW5nIiwiZ2V0U3RyaW5nIiwidHJhY2UiLCJpbmZlcnJlZFN1YnN0aXR1dGlvbkIiLCJpbmZlcnJlZFN1YnN0aXR1dGlvbkFFcXVhbFRvSW5mZXJyZWRTdWJzdGl0dXRpb25CIiwiaXNFcXVhbFRvIiwiZGVidWciLCJhZGRJbmZlcnJlZFN1YnN0aXR1dGlvbnMiLCJzb2x2ZUluZmVycmVkU3Vic3RpdHV0aW9ucyIsImZvcndhcmQiLCJiYWNrIiwibWV0YXZhcmlhYmxlTm9kZXMiLCJtZXRhdmFyaWFibGVOb2Rlc0Zyb21JbmZlcnJlZFN1YnN0aXR1dGlvbnMiLCJtZXRhdmFyaWFibGVOb2RlIiwiY29tcGxleEluZmVycmVkU3Vic3RpdHV0aW9ucyIsImZpbmRDb21wbGV4SW5mZXJyZWRTdWJzdGl0dXRpb25zQnlNZXRhdmFyaWFibGVOb2RlIiwiY29tcGxleEluZmVycmVkU3Vic3RpdHV0aW9uIiwic29sdmVkIiwiaXNTb2x2ZWQiLCJzb2x2ZSIsImFyZUluZmVycmVkU3Vic3RpdHV0aW9uc1NvbHZlZCIsImV2ZXJ5IiwiY29tcGxleEluZmVycmVkU3Vic3RpdHV0aW9uc1NvbHZlZCIsImNvbXBsZXhJbmZlcnJlZFN1YnN0aXR1dGlvblNvbHZlZCIsImlzRW1wdHkiLCJlbXB0eSIsInF1YWxpZnkiLCJhc3N1bXB0aW9uIiwiY29uc3RyYWludCIsInF1YWxpZmllcyIsIlJlZmVyZW5jZUluZmVycmVkU3Vic3RpdHV0aW9uIiwiZWxlbWVudHMiLCJyZWZlcmVuY2VJbmZlcnJlZFN1YnN0aXR1dGlvbiIsImZyb21Bc3N1bXB0aW9uQW5kQ29uc3RyYWludCIsInJlZmVyZW5jZUluZmVycmVkU3Vic3RpdHV0aW9uQ29tcGFyZXNUb1Nzb2xlSW5mZXJyZWRTdWJzdGl0dXRpb24iLCJjb21wYXJlU3Vic3RpdHV0aW9uIiwibWVyZ2UiLCJmaW5kSW5mZXJyZWRTdWJzdGl0dXRpb24iLCJjYWxsYmFjayIsImZpbmRJbmZlcnJlZFN1YnN0aXR1dGlvbnMiLCJmaW5kSW5mZXJyZWRTdWJzdGl0dXRpb25CeVZhcmlhYmxlTm9kZSIsInZhcmlhYmxlTm9kZSIsInZhcmlhYmxlTm9kZU1hdGNoZXMiLCJtYXRjaFZhcmlhYmxlTm9kZSIsImZpbmRJbmZlcnJlZFN1YnN0aXR1dGlvbkJ5TWV0YXZhcmlhYmxlTm9kZSIsInNpbXBsZUluZmVycmVkU3Vic3RpdHV0aW9uIiwiZmluZFNpbXBsZUluZmVycmVkU3Vic3RpdHV0aW9uQnlNZXRhdmFyaWFibGVOb2RlIiwiaW5mZXJyZWRTdWJzdGl0dXRpb25TaW1wbGUiLCJpc1NpbXBsZSIsIm1ldGF2YXJpYWJsZU5vZGVNYXRjaGVzIiwibWF0Y2hNZXRhdmFyaWFibGVOb2RlIiwiaW5mZXJyZWRTdWJzdGl0dXRpb25Db21wbGV4IiwiaXNDb21wbGV4IiwiZmluZEluZmVycmVkU3Vic3RpdHV0aW9uQnlNZXRhdmFyaWFibGVOb2RlQW5kU3Vic3RpdHV0aW9uTm9kZSIsInN1YnN0aXR1dGlvbk5vZGUiLCJzdWJzdGl0dXRpb25Ob2RlTWF0Y2hlcyIsIm1hdGNoU3Vic3RpdHV0aW9uTm9kZSIsImlzSW5mZXJyZWRTdWJzdGl0dXRpb25QcmVzZW50QnlNZXRhdmFyaWFibGVOb2RlIiwiaW5mZXJyZWRTdWJzdGl0dXRpb25QcmVzZW50IiwiaXNJbmZlcnJlZFN1YnN0aXR1dGlvblByZXNlbnRCeU1ldGF2YXJpYWJsZU5vZGVBbmRTdWJzdGl0dXRpb25Ob2RlIiwiZnJvbU5vdGhpbmciLCJsaW1pbmFsQ29udGV4dCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBYUE7OztlQUFxQkE7OzsyQkFYVTtnQ0FDTztnRUFFbEI7aUVBQ0M7K0JBRXNDOzs7Ozs7QUFFM0QsTUFBTSxFQUFFQyxHQUFHLEVBQUVDLE9BQU8sRUFBRSxHQUFHQyxxQ0FBcUIsRUFDeEMsRUFBRUMsSUFBSSxFQUFFQyxJQUFJLEVBQUVDLEtBQUssRUFBRSxHQUFHQyx5QkFBYztBQUU3QixNQUFNUCx1QkFBdUJRLGdCQUFPO0lBQ2pELFlBQVlDLE9BQU8sRUFBRUMscUJBQXFCLENBQUU7UUFDMUMsS0FBSyxDQUFDRDtRQUVOLElBQUksQ0FBQ0MscUJBQXFCLEdBQUdBO0lBQy9CO0lBRUFDLHlCQUF5QkQsd0JBQXdCLEVBQUUsRUFBRTtRQUNuRCxNQUFNRCxVQUFVLElBQUksQ0FBQ0csVUFBVTtRQUUvQlIsS0FBS00sdUJBQXVC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
|
|
209
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250ZXh0L2xpbWluYWwuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGFycmF5VXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuaW1wb3J0IHsgY29udGludWF0aW9uVXRpbGl0aWVzIH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgQ29udGV4dCBmcm9tIFwiLi4vY29udGV4dFwiO1xuaW1wb3J0IGVsZW1lbnRzIGZyb20gXCIuLi9lbGVtZW50c1wiO1xuXG5pbXBvcnQgeyBtZXRhdmFyaWFibGVOb2Rlc0Zyb21JbmZlcnJlZFN1YnN0aXR1dGlvbnMgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3N1YnN0aXR1dGlvbnNcIjtcblxuY29uc3QgeyBjdXQsIGZvckVhY2ggfSA9IGNvbnRpbnVhdGlvblV0aWxpdGllcyxcbiAgICAgIHsgcHVzaCwgZmluZCwgZmlyc3QgfSA9IGFycmF5VXRpbGl0aWVzO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBMaW1pbmFsQ29udGV4dCBleHRlbmRzIENvbnRleHQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBpbmZlcnJlZFN1YnN0aXR1dGlvbnMpIHtcbiAgICBzdXBlcihjb250ZXh0KTtcblxuICAgIHRoaXMuaW5mZXJyZWRTdWJzdGl0dXRpb25zID0gaW5mZXJyZWRTdWJzdGl0dXRpb25zO1xuICB9XG5cbiAgZ2V0SW5mZXJyZWRTdWJzdGl0dXRpb25zKGluZmVycmVkU3Vic3RpdHV0aW9ucyA9IFtdKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpO1xuXG4gICAgcHVzaChpbmZlcnJlZFN1YnN0aXR1dGlvbnMsIHRoaXMuaW5mZXJyZWRTdWJzdGl0dXRpb25zKTtcblxuICAgIGNvbnRleHQuZ2V0SW5mZXJyZWRTdWJzdGl0dXRpb25zKGluZmVycmVkU3Vic3RpdHV0aW9ucyk7XG5cbiAgICByZXR1cm4gaW5mZXJyZWRTdWJzdGl0dXRpb25zO1xuICB9XG5cbiAgZ2V0U29sZUluZmVycmVkU3Vic3RpdHV0aW9uKCkge1xuICAgIGxldCBzb2xlSW5mZXJyZWRTdWJzdGl0dXRpb24gPSBudWxsO1xuXG4gICAgY29uc3QgaW5mZXJyZWRTdWJzdGl0dXRpb25zTGVuZ3RoID0gdGhpcy5pbmZlcnJlZFN1YnN0aXR1dGlvbnMubGVuZ3RoO1xuXG4gICAgaWYgKGluZmVycmVkU3Vic3RpdHV0aW9uc0xlbmd0aCA9PT0gMSkge1xuICAgICAgY29uc3QgZmlyc3RJbmZlcnJlZFN1YnN0aXR1dGlvbiA9IGZpcnN0KHRoaXMuaW5mZXJyZWRTdWJzdGl0dXRpb25zKTtcblxuICAgICAgc29sZUluZmVycmVkU3Vic3RpdHV0aW9uID0gZmlyc3RJbmZlcnJlZFN1YnN0aXR1dGlvbjsgLy8vXG4gICAgfVxuXG4gICAgcmV0dXJuIHNvbGVJbmZlcnJlZFN1YnN0aXR1dGlvbjtcbiAgfVxuXG4gIGdldFNpbmd1bGFyTm9uVHJpdmlhbEluZmVycmVkU3Vic3RpdHV0aW9uKCkge1xuICAgIGxldCBzaW5ndWxhck5vblRyaXZpYWxJbmZlcnJlZFN1YnN0aXR1dGlvbiA9IG51bGw7XG5cbiAgICBjb25zdCBzb2xlSW5mZXJyZWRTdWJzdGl0dXRpb24gPSB0aGlzLmdldFNvbGVJbmZlcnJlZFN1YnN0aXR1dGlvbigpO1xuXG4gICAgaWYgKHNvbGVJbmZlcnJlZFN1YnN0aXR1dGlvbiAhPT0gbnVsbCkge1xuICAgICAgY29uc3Qgc29sZUluZmVycmVkU3Vic3RpdHV0aW9uTm9uVHJpdmlhbCA9IHNvbGVJbmZlcnJlZFN1YnN0aXR1dGlvbi5pc05vblRyaXZpYWwoKTtcblxuICAgICAgaWYgKHNvbGVJbmZlcnJlZFN1YnN0aXR1dGlvbk5vblRyaXZpYWwpIHtcbiAgICAgICAgc2luZ3VsYXJOb25Ucml2aWFsSW5mZXJyZWRTdWJzdGl0dXRpb24gPSBzb2xlSW5mZXJyZWRTdWJzdGl0dXRpb247ICAvLy9cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gc2luZ3VsYXJOb25Ucml2aWFsSW5mZXJyZWRTdWJzdGl0dXRpb247XG4gIH1cblxuICBhZGRTdWJzdGl0dXRpb24oc3Vic3RpdHV0aW9uKSB7XG4gICAgLy8vXG4gIH1cblxuICBhZGRJbmZlcnJlZFN1YnN0aXR1dGlvbihpbmZlcnJlZFN1YnN0aXR1dGlvbikge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLCAvLy9cbiAgICAgICAgICBpbmZlcnJlZFN1YnN0aXR1dGlvbkEgPSBpbmZlcnJlZFN1YnN0aXR1dGlvbiwgLy8vXG4gICAgICAgICAgaW5mZXJyZWRTdWJzdGl0dXRpb25TdHJpbmcgPSBpbmZlcnJlZFN1YnN0aXR1dGlvbi5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQudHJhY2UoYEFkZGluZyB0aGUgJyR7aW5mZXJyZWRTdWJzdGl0dXRpb25TdHJpbmd9JyBpbmZlcnJlZCBzdWJzdGl0dXRpb24gdG8gdGhlIGxpbWluYWwgY29udGV4dC4uLmApO1xuXG4gICAgY29uc3QgaW5mZXJyZWRTdWJzdGl0dXRpb25CID0gdGhpcy5pbmZlcnJlZFN1YnN0aXR1dGlvbnMuZmluZCgoaW5mZXJyZWRTdWJzdGl0dXRpb24pID0+IHtcbiAgICAgIGNvbnN0IGluZmVycmVkU3Vic3RpdHV0aW9uQiA9IGluZmVycmVkU3Vic3RpdHV0aW9uLCAvLy9cbiAgICAgICAgICAgIGluZmVycmVkU3Vic3RpdHV0aW9uQUVxdWFsVG9JbmZlcnJlZFN1YnN0aXR1dGlvbkIgPSBpbmZlcnJlZFN1YnN0aXR1dGlvbkEuaXNFcXVhbFRvKGluZmVycmVkU3Vic3RpdHV0aW9uQik7XG5cbiAgICAgIGlmIChpbmZlcnJlZFN1YnN0aXR1dGlvbkFFcXVhbFRvSW5mZXJyZWRTdWJzdGl0dXRpb25CKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pIHx8IG51bGw7XG5cbiAgICBpZiAoaW5mZXJyZWRTdWJzdGl0dXRpb25CICE9PSBudWxsKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGBUaGUgJyR7aW5mZXJyZWRTdWJzdGl0dXRpb25TdHJpbmd9JyBpbmZlcnJlZCBzdWJzdGl0dXRpb24gaGFzIGFscmVhZHkgYmVlbiBhZGRlZCB0byB0aGUgbGltaW5hbCBjb250ZXh0LmApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmluZmVycmVkU3Vic3RpdHV0aW9ucy5wdXNoKGluZmVycmVkU3Vic3RpdHV0aW9uKTtcbiAgICB9XG5cbiAgICBjb250ZXh0LmRlYnVnKGAuLi5hZGRlZCB0aGUgJyR7aW5mZXJyZWRTdWJzdGl0dXRpb25TdHJpbmd9JyBpbmZlcnJlZCBzdWJzdGl0dXRpb24gdG8gdGhlIGxpbWluYWwgY29udGV4dC5gKTtcbiAgfVxuXG4gIGFkZEluZmVycmVkU3Vic3RpdHV0aW9ucyhpbmZlcnJlZFN1YnN0aXR1dGlvbnMpIHtcbiAgICBpbmZlcnJlZFN1YnN0aXR1dGlvbnMuZm9yRWFjaCgoaW5mZXJyZWRTdWJzdGl0dXRpb24pID0+IHtcbiAgICAgIHRoaXMuYWRkSW5mZXJyZWRTdWJzdGl0dXRpb24oaW5mZXJyZWRTdWJzdGl0dXRpb24pO1xuICAgIH0pO1xuICB9XG5cbiAgc29sdmVJbmZlcnJlZFN1YnN0aXR1dGlvbnMoZm9yd2FyZCwgYmFjaykge1xuICAgIGZvcndhcmQgPSBjdXQoZm9yd2FyZCwgYmFjayk7IC8vL1xuXG4gICAgY29uc3QgaW5mZXJyZWRTdWJzdGl0dXRpb25zID0gdGhpcy5nZXRJbmZlcnJlZFN1YnN0aXR1dGlvbnMoKSxcbiAgICAgICAgICBtZXRhdmFyaWFibGVOb2RlcyA9IG1ldGF2YXJpYWJsZU5vZGVzRnJvbUluZmVycmVkU3Vic3RpdHV0aW9ucyhpbmZlcnJlZFN1YnN0aXR1dGlvbnMpO1xuXG4gICAgcmV0dXJuIGZvckVhY2gobWV0YXZhcmlhYmxlTm9kZXMsIChtZXRhdmFyaWFibGVOb2RlLCBmb3J3YXJkLCBiYWNrKSA9PiB7XG4gICAgICBjb25zdCBjb21wbGV4SW5mZXJyZWRTdWJzdGl0dXRpb25zID0gdGhpcy5maW5kQ29tcGxleEluZmVycmVkU3Vic3RpdHV0aW9uc0J5TWV0YXZhcmlhYmxlTm9kZShtZXRhdmFyaWFibGVOb2RlKTtcblxuICAgICAgcmV0dXJuIGZvckVhY2goY29tcGxleEluZmVycmVkU3Vic3RpdHV0aW9ucywgKGNvbXBsZXhJbmZlcnJlZFN1YnN0aXR1dGlvbiwgZm9yd2FyZCwgYmFjaykgPT4ge1xuICAgICAgICBjb25zdCBpbmZlcnJlZFN1YnN0aXR1dGlvbiA9IGNvbXBsZXhJbmZlcnJlZFN1YnN0aXR1dGlvbiwgLy8vXG4gICAgICAgICAgICAgIHNvbHZlZCA9IGluZmVycmVkU3Vic3RpdHV0aW9uLmlzU29sdmVkKCk7XG5cbiAgICAgICAgaWYgKHNvbHZlZCkge1xuICAgICAgICAgIHJldHVybiBmb3J3YXJkKGJhY2spO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY29udGV4dCA9IHRoaXM7IC8vL1xuXG4gICAgICAgIHJldHVybiBpbmZlcnJlZFN1YnN0aXR1dGlvbi5zb2x2ZShjb250ZXh0LCAoY29udGV4dCwgYmFjaykgPT4ge1xuICAgICAgICAgIHJldHVybiBmb3J3YXJkKGJhY2spO1xuICAgICAgICB9LCBiYWNrKTtcbiAgICAgIH0sIGZvcndhcmQsIGJhY2spO1xuICAgIH0sIGZvcndhcmQsIGJhY2spO1xuICB9XG5cbiAgYXJlQ29tcGxleFN1YnN0aXR1dGlvbnNVbnNvbHZlZCgpIHtcbiAgICBjb25zdCBpbmZlcnJlZFN1YnN0aXR1dGlvbnNTb2x2ZWQgPSB0aGlzLmFyZUluZmVycmVkU3Vic3RpdHV0aW9uc1NvbHZlZCgpLFxuICAgICAgICAgIGNvbXBsZXhTdWJzdGl0dXRpb25zVW5zb2x2ZWQgPSAhaW5mZXJyZWRTdWJzdGl0dXRpb25zU29sdmVkO1xuXG4gICAgcmV0dXJuIGNvbXBsZXhTdWJzdGl0dXRpb25zVW5zb2x2ZWQ7XG4gIH1cblxuICBhcmVJbmZlcnJlZFN1YnN0aXR1dGlvbnNTb2x2ZWQoKSB7XG4gICAgY29uc3QgaW5mZXJyZWRTdWJzdGl0dXRpb25zID0gdGhpcy5nZXRJbmZlcnJlZFN1YnN0aXR1dGlvbnMoKSxcbiAgICAgICAgICBtZXRhdmFyaWFibGVOb2RlcyA9IG1ldGF2YXJpYWJsZU5vZGVzRnJvbUluZmVycmVkU3Vic3RpdHV0aW9ucyhpbmZlcnJlZFN1YnN0aXR1dGlvbnMpLFxuICAgICAgICAgIGluZmVycmVkU3Vic3RpdHV0aW9uc1NvbHZlZCA9IG1ldGF2YXJpYWJsZU5vZGVzLmV2ZXJ5KChtZXRhdmFyaWFibGVOb2RlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjb21wbGV4SW5mZXJyZWRTdWJzdGl0dXRpb25zID0gdGhpcy5maW5kQ29tcGxleEluZmVycmVkU3Vic3RpdHV0aW9uc0J5TWV0YXZhcmlhYmxlTm9kZShtZXRhdmFyaWFibGVOb2RlKSxcbiAgICAgICAgICAgICAgICAgIGNvbXBsZXhJbmZlcnJlZFN1YnN0aXR1dGlvbnNTb2x2ZWQgPSBjb21wbGV4SW5mZXJyZWRTdWJzdGl0dXRpb25zLmV2ZXJ5KChjb21wbGV4SW5mZXJyZWRTdWJzdGl0dXRpb24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29tcGxleEluZmVycmVkU3Vic3RpdHV0aW9uU29sdmVkID0gY29tcGxleEluZmVycmVkU3Vic3RpdHV0aW9uLmlzU29sdmVkKCk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGNvbXBsZXhJbmZlcnJlZFN1YnN0aXR1dGlvblNvbHZlZCkge1xuICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgaWYgKGNvbXBsZXhJbmZlcnJlZFN1YnN0aXR1dGlvbnNTb2x2ZWQpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG5cbiAgICByZXR1cm4gaW5mZXJyZWRTdWJzdGl0dXRpb25zU29sdmVkO1xuICB9XG5cbiAgaXNFbXB0eSgpIHtcbiAgICBjb25zdCBpbmZlcnJlZFN1YnN0aXR1dGlvbnNMZW5ndGggPSB0aGlzLmluZmVycmVkU3Vic3RpdHV0aW9ucy5sZW5ndGgsXG4gICAgICAgICAgZW1wdHkgPSAoaW5mZXJyZWRTdWJzdGl0dXRpb25zTGVuZ3RoID09PSAwKTtcblxuICAgIHJldHVybiBlbXB0eTtcbiAgfVxuXG4gIHF1YWxpZnkoYXNzdW1wdGlvbiwgY29uc3RyYWludCkge1xuICAgIGxldCBxdWFsaWZpZXMgPSBmYWxzZTtcblxuICAgIGNvbnN0IGVtcHR5ID0gdGhpcy5pc0VtcHR5KCk7XG5cbiAgICBpZiAoZW1wdHkpIHtcbiAgICAgIHF1YWxpZmllcyA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHNvbGVJbmZlcnJlZFN1YnN0aXR1dGlvbiA9IHRoaXMuZ2V0U29sZUluZmVycmVkU3Vic3RpdHV0aW9uKCk7XG5cbiAgICAgIGlmIChzb2xlSW5mZXJyZWRTdWJzdGl0dXRpb24gIT09IG51bGwpIHtcbiAgICAgICAgY29uc3QgeyBSZWZlcmVuY2VJbmZlcnJlZFN1YnN0aXR1dGlvbiB9ID0gZWxlbWVudHMsXG4gICAgICAgICAgICAgIGNvbnRleHQgPSB0aGlzLCAvLy9cbiAgICAgICAgICAgICAgcmVmZXJlbmNlSW5mZXJyZWRTdWJzdGl0dXRpb24gPSBSZWZlcmVuY2VJbmZlcnJlZFN1YnN0aXR1dGlvbi5mcm9tQXNzdW1wdGlvbkFuZENvbnN0cmFpbnQoYXNzdW1wdGlvbiwgY29uc3RyYWludCwgY29udGV4dCksXG4gICAgICAgICAgICAgIHJlZmVyZW5jZUluZmVycmVkU3Vic3RpdHV0aW9uQ29tcGFyZXNUb1Nzb2xlSW5mZXJyZWRTdWJzdGl0dXRpb24gPSByZWZlcmVuY2VJbmZlcnJlZFN1YnN0aXR1dGlvbi5jb21wYXJlU3Vic3RpdHV0aW9uKHNvbGVJbmZlcnJlZFN1YnN0aXR1dGlvbik7XG5cbiAgICAgICAgaWYgKHJlZmVyZW5jZUluZmVycmVkU3Vic3RpdHV0aW9uQ29tcGFyZXNUb1Nzb2xlSW5mZXJyZWRTdWJzdGl0dXRpb24pIHtcbiAgICAgICAgICBxdWFsaWZpZXMgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHF1YWxpZmllcztcbiAgfVxuXG4gIG1lcmdlKGNvbnRleHQpIHtcbiAgICBjb250ZXh0LmRlYnVnKGBNZXJnaW5nIHRoZSBsaW1pbmFsIGNvbnRleHRgKTtcblxuICAgIGNvbnRleHQuYWRkSW5mZXJyZWRTdWJzdGl0dXRpb25zKHRoaXMuaW5mZXJyZWRTdWJzdGl0dXRpb25zKTtcbiAgfVxuXG4gIGZpbmRJbmZlcnJlZFN1YnN0aXR1dGlvbihjYWxsYmFjaykge1xuICAgIGNvbnN0IGluZmVycmVkU3Vic3RpdHV0aW9ucyA9IHRoaXMuZ2V0SW5mZXJyZWRTdWJzdGl0dXRpb25zKCksXG4gICAgICAgICAgaW5mZXJyZWRTdWJzdGl0dXRpb24gPSBpbmZlcnJlZFN1YnN0aXR1dGlvbnMuZmluZChjYWxsYmFjayk7XG5cbiAgICByZXR1cm4gaW5mZXJyZWRTdWJzdGl0dXRpb247XG4gIH1cblxuICBmaW5kSW5mZXJyZWRTdWJzdGl0dXRpb25zKGNhbGxiYWNrKSB7XG4gICAgbGV0IGluZmVycmVkU3Vic3RpdHV0aW9ucztcblxuICAgIGluZmVycmVkU3Vic3RpdHV0aW9ucyA9IHRoaXMuZ2V0SW5mZXJyZWRTdWJzdGl0dXRpb25zKCk7XG5cbiAgICBpbmZlcnJlZFN1YnN0aXR1dGlvbnMgPSBmaW5kKGluZmVycmVkU3Vic3RpdHV0aW9ucywgY2FsbGJhY2spOyAgLy8vXG5cbiAgICByZXR1cm4gaW5mZXJyZWRTdWJzdGl0dXRpb25zO1xuICB9XG5cbiAgZmluZEluZmVycmVkU3Vic3RpdHV0aW9uQnlWYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlKSB7XG4gICAgY29uc3QgaW5mZXJyZWRTdWJzdGl0dXRpb24gPSB0aGlzLmZpbmRJbmZlcnJlZFN1YnN0aXR1dGlvbigoaW5mZXJyZWRTdWJzdGl0dXRpb24pID0+IHtcbiAgICAgIGNvbnN0IHZhcmlhYmxlTm9kZU1hdGNoZXMgPSBpbmZlcnJlZFN1YnN0aXR1dGlvbi5tYXRjaFZhcmlhYmxlTm9kZSh2YXJpYWJsZU5vZGUpO1xuXG4gICAgICBpZiAodmFyaWFibGVOb2RlTWF0Y2hlcykge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KSB8fCBudWxsO1xuXG4gICAgcmV0dXJuIGluZmVycmVkU3Vic3RpdHV0aW9uO1xuICB9XG5cbiAgZmluZEluZmVycmVkU3Vic3RpdHV0aW9uQnlNZXRhdmFyaWFibGVOb2RlKG1ldGF2YXJpYWJsZU5vZGUpIHtcbiAgICBjb25zdCBzaW1wbGVJbmZlcnJlZFN1YnN0aXR1dGlvbiA9IHRoaXMuZmluZFNpbXBsZUluZmVycmVkU3Vic3RpdHV0aW9uQnlNZXRhdmFyaWFibGVOb2RlKG1ldGF2YXJpYWJsZU5vZGUpLFxuICAgICAgICAgIGluZmVycmVkU3Vic3RpdHV0aW9uID0gc2ltcGxlSW5mZXJyZWRTdWJzdGl0dXRpb247ICAvLy9cblxuICAgIHJldHVybiBpbmZlcnJlZFN1YnN0aXR1dGlvbjtcbiAgfVxuXG4gIGZpbmRTaW1wbGVJbmZlcnJlZFN1YnN0aXR1dGlvbkJ5TWV0YXZhcmlhYmxlTm9kZShtZXRhdmFyaWFibGVOb2RlKSB7XG4gICAgY29uc3Qgc2ltcGxlSW5mZXJyZWRTdWJzdGl0dXRpb24gPSB0aGlzLmZpbmRJbmZlcnJlZFN1YnN0aXR1dGlvbigoaW5mZXJyZWRTdWJzdGl0dXRpb24pID0+IHtcbiAgICAgIGNvbnN0IGluZmVycmVkU3Vic3RpdHV0aW9uU2ltcGxlID0gaW5mZXJyZWRTdWJzdGl0dXRpb24uaXNTaW1wbGUoKTtcblxuICAgICAgaWYgKGluZmVycmVkU3Vic3RpdHV0aW9uU2ltcGxlKSB7XG4gICAgICAgIGNvbnN0IHNpbXBsZUluZmVycmVkU3Vic3RpdHV0aW9uID0gaW5mZXJyZWRTdWJzdGl0dXRpb24sICAvLy9cbiAgICAgICAgICAgICAgbWV0YXZhcmlhYmxlTm9kZU1hdGNoZXMgPSBzaW1wbGVJbmZlcnJlZFN1YnN0aXR1dGlvbi5tYXRjaE1ldGF2YXJpYWJsZU5vZGUobWV0YXZhcmlhYmxlTm9kZSk7XG5cbiAgICAgICAgaWYgKG1ldGF2YXJpYWJsZU5vZGVNYXRjaGVzKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KSB8fCBudWxsO1xuXG4gICAgcmV0dXJuIHNpbXBsZUluZmVycmVkU3Vic3RpdHV0aW9uO1xuICB9XG5cbiAgZmluZENvbXBsZXhJbmZlcnJlZFN1YnN0aXR1dGlvbnNCeU1ldGF2YXJpYWJsZU5vZGUobWV0YXZhcmlhYmxlTm9kZSkge1xuICAgIGNvbnN0IGNvbXBsZXhJbmZlcnJlZFN1YnN0aXR1dGlvbiA9IHRoaXMuZmluZEluZmVycmVkU3Vic3RpdHV0aW9ucygoaW5mZXJyZWRTdWJzdGl0dXRpb24pID0+IHtcbiAgICAgIGNvbnN0IGluZmVycmVkU3Vic3RpdHV0aW9uQ29tcGxleCA9IGluZmVycmVkU3Vic3RpdHV0aW9uLmlzQ29tcGxleCgpO1xuXG4gICAgICBpZiAoaW5mZXJyZWRTdWJzdGl0dXRpb25Db21wbGV4KSB7XG4gICAgICAgIGNvbnN0IGNvbXBsZXhJbmZlcnJlZFN1YnN0aXR1dGlvbiA9IGluZmVycmVkU3Vic3RpdHV0aW9uLCAgLy8vXG4gICAgICAgICAgICAgIG1ldGF2YXJpYWJsZU5vZGVNYXRjaGVzID0gY29tcGxleEluZmVycmVkU3Vic3RpdHV0aW9uLm1hdGNoTWV0YXZhcmlhYmxlTm9kZShtZXRhdmFyaWFibGVOb2RlKTtcblxuICAgICAgICBpZiAobWV0YXZhcmlhYmxlTm9kZU1hdGNoZXMpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pIHx8IG51bGw7XG5cbiAgICByZXR1cm4gY29tcGxleEluZmVycmVkU3Vic3RpdHV0aW9uO1xuICB9XG5cbiAgZmluZEluZmVycmVkU3Vic3RpdHV0aW9uQnlNZXRhdmFyaWFibGVOb2RlQW5kU3Vic3RpdHV0aW9uTm9kZShtZXRhdmFyaWFibGVOb2RlLCBzdWJzdGl0dXRpb25Ob2RlKSB7XG4gICAgY29uc3QgaW5mZXJyZWRTdWJzdGl0dXRpb24gPSB0aGlzLmZpbmRJbmZlcnJlZFN1YnN0aXR1dGlvbigoaW5mZXJyZWRTdWJzdGl0dXRpb24pID0+IHsgIC8vL1xuICAgICAgICAgICAgY29uc3QgbWV0YXZhcmlhYmxlTm9kZU1hdGNoZXMgPSBpbmZlcnJlZFN1YnN0aXR1dGlvbi5tYXRjaE1ldGF2YXJpYWJsZU5vZGUobWV0YXZhcmlhYmxlTm9kZSk7XG5cbiAgICAgICAgICAgIGlmIChtZXRhdmFyaWFibGVOb2RlTWF0Y2hlcykge1xuICAgICAgICAgICAgICBjb25zdCBzdWJzdGl0dXRpb25Ob2RlTWF0Y2hlcyA9IGluZmVycmVkU3Vic3RpdHV0aW9uLm1hdGNoU3Vic3RpdHV0aW9uTm9kZShzdWJzdGl0dXRpb25Ob2RlKTtcblxuICAgICAgICAgICAgICBpZiAoc3Vic3RpdHV0aW9uTm9kZU1hdGNoZXMpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pIHx8IG51bGw7XG5cbiAgICByZXR1cm4gaW5mZXJyZWRTdWJzdGl0dXRpb247XG4gIH1cblxuICBpc0luZmVycmVkU3Vic3RpdHV0aW9uUHJlc2VudEJ5TWV0YXZhcmlhYmxlTm9kZShtZXRhdmFyaWFibGVOb2RlKSB7XG4gICAgY29uc3QgaW5mZXJyZWRTdWJzdGl0dXRpb24gPSB0aGlzLmZpbmRJbmZlcnJlZFN1YnN0aXR1dGlvbkJ5TWV0YXZhcmlhYmxlTm9kZShtZXRhdmFyaWFibGVOb2RlKSxcbiAgICAgICAgICBpbmZlcnJlZFN1YnN0aXR1dGlvblByZXNlbnQgPSAoaW5mZXJyZWRTdWJzdGl0dXRpb24gIT09IG51bGwpO1xuXG4gICAgcmV0dXJuIGluZmVycmVkU3Vic3RpdHV0aW9uUHJlc2VudDtcbiAgfVxuXG4gIGlzSW5mZXJyZWRTdWJzdGl0dXRpb25QcmVzZW50QnlNZXRhdmFyaWFibGVOb2RlQW5kU3Vic3RpdHV0aW9uTm9kZShtZXRhdmFyaWFibGVOb2RlLCBzdWJzdGl0dXRpb25Ob2RlKSB7XG4gICAgY29uc3QgaW5mZXJyZWRTdWJzdGl0dXRpb24gPSB0aGlzLmZpbmRJbmZlcnJlZFN1YnN0aXR1dGlvbkJ5TWV0YXZhcmlhYmxlTm9kZUFuZFN1YnN0aXR1dGlvbk5vZGUobWV0YXZhcmlhYmxlTm9kZSwgc3Vic3RpdHV0aW9uTm9kZSksXG4gICAgICAgICAgaW5mZXJyZWRTdWJzdGl0dXRpb25QcmVzZW50ID0gKGluZmVycmVkU3Vic3RpdHV0aW9uICE9PSBudWxsKTtcblxuICAgIHJldHVybiBpbmZlcnJlZFN1YnN0aXR1dGlvblByZXNlbnQ7XG4gIH1cblxuICBzdGF0aWMgZnJvbU5vdGhpbmcoY29udGV4dCkge1xuICAgIGNvbnN0IGluZmVycmVkU3Vic3RpdHV0aW9ucyA9IFtdLFxuICAgICAgICAgIGxpbWluYWxDb250ZXh0ID0gbmV3IExpbWluYWxDb250ZXh0KGNvbnRleHQsIGluZmVycmVkU3Vic3RpdHV0aW9ucyk7XG5cbiAgICByZXR1cm4gbGltaW5hbENvbnRleHQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJMaW1pbmFsQ29udGV4dCIsImN1dCIsImZvckVhY2giLCJjb250aW51YXRpb25VdGlsaXRpZXMiLCJwdXNoIiwiZmluZCIsImZpcnN0IiwiYXJyYXlVdGlsaXRpZXMiLCJDb250ZXh0IiwiY29udGV4dCIsImluZmVycmVkU3Vic3RpdHV0aW9ucyIsImdldEluZmVycmVkU3Vic3RpdHV0aW9ucyIsImdldENvbnRleHQiLCJnZXRTb2xlSW5mZXJyZWRTdWJzdGl0dXRpb24iLCJzb2xlSW5mZXJyZWRTdWJzdGl0dXRpb24iLCJpbmZlcnJlZFN1YnN0aXR1dGlvbnNMZW5ndGgiLCJsZW5ndGgiLCJmaXJzdEluZmVycmVkU3Vic3RpdHV0aW9uIiwiZ2V0U2luZ3VsYXJOb25Ucml2aWFsSW5mZXJyZWRTdWJzdGl0dXRpb24iLCJzaW5ndWxhck5vblRyaXZpYWxJbmZlcnJlZFN1YnN0aXR1dGlvbiIsInNvbGVJbmZlcnJlZFN1YnN0aXR1dGlvbk5vblRyaXZpYWwiLCJpc05vblRyaXZpYWwiLCJhZGRTdWJzdGl0dXRpb24iLCJzdWJzdGl0dXRpb24iLCJhZGRJbmZlcnJlZFN1YnN0aXR1dGlvbiIsImluZmVycmVkU3Vic3RpdHV0aW9uIiwiaW5mZXJyZWRTdWJzdGl0dXRpb25BIiwiaW5mZXJyZWRTdWJzdGl0dXRpb25TdHJpbmciLCJnZXRTdHJpbmciLCJ0cmFjZSIsImluZmVycmVkU3Vic3RpdHV0aW9uQiIsImluZmVycmVkU3Vic3RpdHV0aW9uQUVxdWFsVG9JbmZlcnJlZFN1YnN0aXR1dGlvbkIiLCJpc0VxdWFsVG8iLCJkZWJ1ZyIsImFkZEluZmVycmVkU3Vic3RpdHV0aW9ucyIsInNvbHZlSW5mZXJyZWRTdWJzdGl0dXRpb25zIiwiZm9yd2FyZCIsImJhY2siLCJtZXRhdmFyaWFibGVOb2RlcyIsIm1ldGF2YXJpYWJsZU5vZGVzRnJvbUluZmVycmVkU3Vic3RpdHV0aW9ucyIsIm1ldGF2YXJpYWJsZU5vZGUiLCJjb21wbGV4SW5mZXJyZWRTdWJzdGl0dXRpb25zIiwiZmluZENvbXBsZXhJbmZlcnJlZFN1YnN0aXR1dGlvbnNCeU1ldGF2YXJpYWJsZU5vZGUiLCJjb21wbGV4SW5mZXJyZWRTdWJzdGl0dXRpb24iLCJzb2x2ZWQiLCJpc1NvbHZlZCIsInNvbHZlIiwiYXJlQ29tcGxleFN1YnN0aXR1dGlvbnNVbnNvbHZlZCIsImluZmVycmVkU3Vic3RpdHV0aW9uc1NvbHZlZCIsImFyZUluZmVycmVkU3Vic3RpdHV0aW9uc1NvbHZlZCIsImNvbXBsZXhTdWJzdGl0dXRpb25zVW5zb2x2ZWQiLCJldmVyeSIsImNvbXBsZXhJbmZlcnJlZFN1YnN0aXR1dGlvbnNTb2x2ZWQiLCJjb21wbGV4SW5mZXJyZWRTdWJzdGl0dXRpb25Tb2x2ZWQiLCJpc0VtcHR5IiwiZW1wdHkiLCJxdWFsaWZ5IiwiYXNzdW1wdGlvbiIsImNvbnN0cmFpbnQiLCJxdWFsaWZpZXMiLCJSZWZlcmVuY2VJbmZlcnJlZFN1YnN0aXR1dGlvbiIsImVsZW1lbnRzIiwicmVmZXJlbmNlSW5mZXJyZWRTdWJzdGl0dXRpb24iLCJmcm9tQXNzdW1wdGlvbkFuZENvbnN0cmFpbnQiLCJyZWZlcmVuY2VJbmZlcnJlZFN1YnN0aXR1dGlvbkNvbXBhcmVzVG9Tc29sZUluZmVycmVkU3Vic3RpdHV0aW9uIiwiY29tcGFyZVN1YnN0aXR1dGlvbiIsIm1lcmdlIiwiZmluZEluZmVycmVkU3Vic3RpdHV0aW9uIiwiY2FsbGJhY2siLCJmaW5kSW5mZXJyZWRTdWJzdGl0dXRpb25zIiwiZmluZEluZmVycmVkU3Vic3RpdHV0aW9uQnlWYXJpYWJsZU5vZGUiLCJ2YXJpYWJsZU5vZGUiLCJ2YXJpYWJsZU5vZGVNYXRjaGVzIiwibWF0Y2hWYXJpYWJsZU5vZGUiLCJmaW5kSW5mZXJyZWRTdWJzdGl0dXRpb25CeU1ldGF2YXJpYWJsZU5vZGUiLCJzaW1wbGVJbmZlcnJlZFN1YnN0aXR1dGlvbiIsImZpbmRTaW1wbGVJbmZlcnJlZFN1YnN0aXR1dGlvbkJ5TWV0YXZhcmlhYmxlTm9kZSIsImluZmVycmVkU3Vic3RpdHV0aW9uU2ltcGxlIiwiaXNTaW1wbGUiLCJtZXRhdmFyaWFibGVOb2RlTWF0Y2hlcyIsIm1hdGNoTWV0YXZhcmlhYmxlTm9kZSIsImluZmVycmVkU3Vic3RpdHV0aW9uQ29tcGxleCIsImlzQ29tcGxleCIsImZpbmRJbmZlcnJlZFN1YnN0aXR1dGlvbkJ5TWV0YXZhcmlhYmxlTm9kZUFuZFN1YnN0aXR1dGlvbk5vZGUiLCJzdWJzdGl0dXRpb25Ob2RlIiwic3Vic3RpdHV0aW9uTm9kZU1hdGNoZXMiLCJtYXRjaFN1YnN0aXR1dGlvbk5vZGUiLCJpc0luZmVycmVkU3Vic3RpdHV0aW9uUHJlc2VudEJ5TWV0YXZhcmlhYmxlTm9kZSIsImluZmVycmVkU3Vic3RpdHV0aW9uUHJlc2VudCIsImlzSW5mZXJyZWRTdWJzdGl0dXRpb25QcmVzZW50QnlNZXRhdmFyaWFibGVO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
|
package/lib/context.js
CHANGED
|
@@ -321,30 +321,6 @@ class Context extends _occamlanguages.Context {
|
|
|
321
321
|
const context = this.getContext();
|
|
322
322
|
context.addInferredSubstitutions(inferredSubstitutions);
|
|
323
323
|
}
|
|
324
|
-
addAxiom(axiom) {
|
|
325
|
-
const context = this.getContext();
|
|
326
|
-
context.addAxiom(axiom);
|
|
327
|
-
}
|
|
328
|
-
addLemma(lemma) {
|
|
329
|
-
const context = this.getContext();
|
|
330
|
-
context.addLemma(lemma);
|
|
331
|
-
}
|
|
332
|
-
addSchema(schema) {
|
|
333
|
-
const context = this.getContext();
|
|
334
|
-
context.addSchema(schema);
|
|
335
|
-
}
|
|
336
|
-
addTheorem(theorem) {
|
|
337
|
-
const context = this.getContext();
|
|
338
|
-
context.addTheorem(theorem);
|
|
339
|
-
}
|
|
340
|
-
addConjecture(conjecture) {
|
|
341
|
-
const context = this.getContext();
|
|
342
|
-
context.addConjecture(conjecture);
|
|
343
|
-
}
|
|
344
|
-
addRule(rule) {
|
|
345
|
-
const context = this.getContext();
|
|
346
|
-
context.addRule(rule);
|
|
347
|
-
}
|
|
348
324
|
addTerm(term) {
|
|
349
325
|
const context = this.getContext();
|
|
350
326
|
context.addTerm(term);
|
|
@@ -403,4 +379,4 @@ class Context extends _occamlanguages.Context {
|
|
|
403
379
|
}
|
|
404
380
|
}
|
|
405
381
|
|
|
406
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb250ZXh0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBDb250ZXh0IGFzIENvbnRleHRCYXNlIH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDb250ZXh0IGV4dGVuZHMgQ29udGV4dEJhc2Uge1xuICBnZXRMZXhlcigpIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCksXG4gICAgICAgICAgbGV4ZXIgPSBjb250ZXh0LmdldExleGVyKCk7XG5cbiAgICByZXR1cm4gbGV4ZXI7XG4gIH1cblxuICBnZXRQYXJzZXIoKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpLFxuICAgICAgICAgIHBhcnNlciA9IGNvbnRleHQuZ2V0UGFyc2VyKCk7XG5cbiAgICByZXR1cm4gcGFyc2VyO1xuICB9XG5cbiAgZ2V0RmlsZVBhdGgoKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpLFxuICAgICAgICAgIGZpbGVQYXRoID0gY29udGV4dC5nZXRGaWxlUGF0aCgpO1xuXG4gICAgcmV0dXJuIGZpbGVQYXRoO1xuICB9XG5cbiAgZ2V0VG9rZW5zKCkge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKSxcbiAgICAgICAgICB0b2tlbnMgPSBjb250ZXh0LmdldFRva2VucygpO1xuXG4gICAgcmV0dXJuIHRva2VucztcbiAgfVxuXG4gIHNldFRva2Vucyh0b2tlbnMpIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCk7XG5cbiAgICBjb250ZXh0LnNldFRva2Vucyh0b2tlbnMpO1xuICB9XG5cbiAgZ2V0VGVybXModGVybXMgPSBbXSkge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKTtcblxuICAgIGNvbnRleHQuZ2V0VGVybXModGVybXMpO1xuXG4gICAgcmV0dXJuIHRlcm1zO1xuICB9XG5cbiAgZ2V0RnJhbWVzKGZyYW1lcyA9IFtdKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpO1xuXG4gICAgY29udGV4dC5nZXRGcmFtZXMoZnJhbWVzKTtcblxuICAgIHJldHVybiBmcmFtZXM7XG4gIH1cblxuICBnZXRFcXVhbGl0aWVzKGVxdWFsaXRpZXMgPSBbXSkge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKTtcblxuICAgIGNvbnRleHQuZ2V0RXF1YWxpdGllcyhlcXVhbGl0aWVzKTtcblxuICAgIHJldHVybiBlcXVhbGl0aWVzO1xuICB9XG5cbiAgZ2V0QXNzZXJ0aW9ucyhhc3NlcnRpb25zID0gW10pIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCk7XG5cbiAgICBjb250ZXh0LmdldEFzc2VydGlvbnMoYXNzZXJ0aW9ucyk7XG5cbiAgICByZXR1cm4gYXNzZXJ0aW9ucztcbiAgfVxuXG4gIGdldFN0YXRlbWVudHMoc3RhdGVtZW50cyA9IFtdKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpO1xuXG4gICAgY29udGV4dC5nZXRTdGF0ZW1lbnRzKHN0YXRlbWVudHMpO1xuXG4gICAgcmV0dXJuIHN0YXRlbWVudHM7XG4gIH1cblxuICBnZXRTaWduYXR1cmVzKHNpZ25hdHVyZXMgPSBbXSkge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKTtcblxuICAgIGNvbnRleHQuZ2V0U2lnbmF0dXJlcyhzaWduYXR1cmVzKTtcblxuICAgIHJldHVybiBzaWduYXR1cmVzO1xuICB9XG5cbiAgZ2V0UmVmZXJlbmNlcyhyZWZlcmVuY2VzID0gW10pIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCk7XG5cbiAgICBjb250ZXh0LmdldFJlZmVyZW5jZXMocmVmZXJlbmNlcyk7XG5cbiAgICByZXR1cm4gcmVmZXJlbmNlcztcbiAgfVxuXG4gIGdldEFzc3VtcHRpb25zKGFzc3VtcHRpb25zID0gW10pIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCk7XG5cbiAgICBjb250ZXh0LmdldEFzc3VtcHRpb25zKGFzc3VtcHRpb25zKTtcblxuICAgIHJldHVybiBhc3N1bXB0aW9ucztcbiAgfVxuXG4gIGdldE1ldGF2YXJpYWJsZXMobWV0YXZhcmlhYmxlcyA9IFtdKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpO1xuXG4gICAgY29udGV4dC5nZXRNZXRhdmFyaWFibGVzKG1ldGF2YXJpYWJsZXMpO1xuXG4gICAgcmV0dXJuIG1ldGF2YXJpYWJsZXM7XG4gIH1cblxuICBnZXRTdWJzdGl0dXRpb25zKHN1YnN0aXR1dGlvbnMgPSBbXSkge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKTtcblxuICAgIGNvbnRleHQuZ2V0U3Vic3RpdHV0aW9ucyhzdWJzdGl0dXRpb25zKTtcblxuICAgIHJldHVybiBzdWJzdGl0dXRpb25zO1xuICB9XG5cbiAgZ2V0SW5mZXJyZWRTdWJzdGl0dXRpb25zKGluZmVycmVkU3Vic3RpdHV0aW9ucyA9IFtdKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpO1xuXG4gICAgY29udGV4dC5nZXRJbmZlcnJlZFN1YnN0aXR1dGlvbnMoaW5mZXJyZWRTdWJzdGl0dXRpb25zKTtcblxuICAgIHJldHVybiBpbmZlcnJlZFN1YnN0aXR1dGlvbnM7XG4gIH1cblxuICBnZXRHZW5lcmF0b3JzKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKSxcbiAgICAgICAgICBnZW5lcmF0b3JzID0gY29udGV4dC5nZXRHZW5lcmF0b3JzKGluY2x1ZGVSZWxlYXNlKTtcblxuICAgIHJldHVybiBnZW5lcmF0b3JzO1xuICB9XG5cbiAgZ2V0UHJvY2VkdXJlcyhpbmNsdWRlUmVsZWFzZSA9IHRydWUpIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCksXG4gICAgICAgICAgcHJvY2VkdXJlcyA9IGNvbnRleHQuZ2V0UHJvY2VkdXJlcyhpbmNsdWRlUmVsZWFzZSk7XG5cbiAgICByZXR1cm4gcHJvY2VkdXJlcztcbiAgfVxuXG4gIGdldENvbWJpbmF0b3JzKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKSxcbiAgICAgICAgICBjb21iaW5hdG9ycyA9IGNvbnRleHQuZ2V0Q29tYmluYXRvcnMoaW5jbHVkZVJlbGVhc2UpO1xuXG4gICAgcmV0dXJuIGNvbWJpbmF0b3JzO1xuICB9XG5cbiAgZ2V0Q29uc3RydWN0b3JzKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKSxcbiAgICAgICAgICBjb25zdHJ1Y3RvcnMgPSBjb250ZXh0LmdldENvbnN0cnVjdG9ycyhpbmNsdWRlUmVsZWFzZSk7XG5cbiAgICByZXR1cm4gY29uc3RydWN0b3JzO1xuICB9XG5cbiAgZ2V0Q2xhaW0oaW5jbHVkZVJlbGVhc2UgPSB0cnVlKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpLFxuICAgICAgICAgIGNsYWltID0gY29udGV4dC5nZXRDbGFpbShpbmNsdWRlUmVsZWFzZSk7XG5cbiAgICByZXR1cm4gY2xhaW07XG4gIH1cblxuICBnZXRTY2hlbWFzKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKSxcbiAgICAgICAgICBzY2hlbWFzID0gY29udGV4dC5nZXRTY2hlbWFzKGluY2x1ZGVSZWxlYXNlKTtcblxuICAgIHJldHVybiBzY2hlbWFzO1xuICB9XG5cbiAgZ2V0VmFyaWFibGVzKG5lc3RlZCkge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKSxcbiAgICAgICAgICB2YXJpYWJsZXMgPSBjb250ZXh0LmdldFZhcmlhYmxlcyhuZXN0ZWQpO1xuXG4gICAgcmV0dXJuIHZhcmlhYmxlcztcbiAgfVxuXG4gIGdldFN0ZXBzKCkge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKSxcbiAgICAgICAgICBzdGVwcyA9IGNvbnRleHQuZ2V0U3RlcHMoKTtcblxuICAgIHJldHVybiBzdGVwcztcbiAgfVxuXG4gIGdldEZhY3RzKCkge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKSxcbiAgICAgICAgICBmYWN0cyA9IGNvbnRleHQuZ2V0RmFjdHMoKTtcblxuICAgIHJldHVybiBmYWN0cztcbiAgfVxuXG4gIGdldEVxdWl2YWxlbmNlcygpIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCksXG4gICAgICAgICAgZXF1aXZhbGVuY2VzID0gY29udGV4dC5nZXRFcXVpdmFsZW5jZXMoKTtcblxuICAgIHJldHVybiBlcXVpdmFsZW5jZXM7XG4gIH1cblxuICBnZXREZWNsYXJlZFZhcmlhYmxlcyhkZWNsYXJlZFZhcmlhYmxlcyA9IFtdKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpO1xuXG4gICAgY29udGV4dC5nZXREZWNsYXJlZFZhcmlhYmxlcyhkZWNsYXJlZFZhcmlhYmxlcyk7XG5cbiAgICByZXR1cm4gZGVjbGFyZWRWYXJpYWJsZXM7XG4gIH1cblxuICBnZXREZWNsYXJlZE1ldGF2YXJpYWJsZXMoKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpLFxuICAgICAgICAgIGRlY2xhcmVkTWV0YXZhcmlhYmxlcyA9IGNvbnRleHQuZ2V0RGVjbGFyZWRNZXRhdmFyaWFibGVzKCk7XG5cbiAgICByZXR1cm4gZGVjbGFyZWRNZXRhdmFyaWFibGVzO1xuICB9XG5cbiAgZ2V0RmFjdE9yU3VicHJvb2ZzKCkge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKSxcbiAgICAgICAgICBmYWN0T3JTdWJwcm9vZnMgPSBjb250ZXh0LmdldEZhY3RPclN1YnByb29mcygpO1xuXG4gICAgcmV0dXJuIGZhY3RPclN1YnByb29mcztcbiAgfVxuXG4gIGdldFByb3BlcnRpZXMoKSB7XG4gICAgY29uc3QgcHJvcGVydGllcyA9IFtdLFxuICAgICAgICAgIHR5cGVzID0gdGhpcy5nZXRUeXBlcygpO1xuXG4gICAgdHlwZXMuZm9yRWFjaCgodHlwZSkgPT4ge1xuICAgICAgdHlwZS5nZXRQcm9wZXJ0aWVzKHByb3BlcnRpZXMpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHByb3BlcnRpZXM7XG4gIH1cblxuICBnZXRUeXBlcygpIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCksXG4gICAgICAgICAgdHlwZXMgPSBjb250ZXh0LmdldFR5cGVzKCk7XG5cbiAgICByZXR1cm4gdHlwZXM7XG4gIH1cblxuICBmaW5kTWV0YXZhcmlhYmxlKG1ldGF2YXJpYWJsZSwgY29udGV4dCkge1xuICAgIGNvbnN0IGNoaWxkQ29udGV4dCA9IGNvbnRleHQ7IC8vL1xuXG4gICAgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpO1xuXG4gICAgY29uc3QgcGFyZW50Q29udGV4dCA9IGNvbnRleHQ7IC8vL1xuXG4gICAgY29udGV4dCA9IGNoaWxkQ29udGV4dDsgLy8vXG5cbiAgICBtZXRhdmFyaWFibGUgPSBwYXJlbnRDb250ZXh0LmZpbmRNZXRhdmFyaWFibGUobWV0YXZhcmlhYmxlLCBjb250ZXh0KTtcblxuICAgIHJldHVybiBtZXRhdmFyaWFibGU7XG4gIH1cblxuICBmaW5kUnVsZUJ5UmVmZXJlbmNlKHJlZmVyZW5jZSkge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKSxcbiAgICAgICAgICBydWxlID0gY29udGV4dC5maW5kUnVsZUJ5UmVmZXJlbmNlKHJlZmVyZW5jZSk7XG5cbiAgICByZXR1cm4gcnVsZTtcbiAgfVxuXG4gIGZpbmRBeGlvbUJ5UmVmZXJlbmNlKHJlZmVyZW5jZSkge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKSxcbiAgICAgICAgICBheGlvbSA9IGNvbnRleHQuZmluZEF4aW9tQnlSZWZlcmVuY2UocmVmZXJlbmNlKTtcblxuICAgIHJldHVybiBheGlvbTtcbiAgfVxuXG4gIGZpbmRDbGFpbUJ5UmVmZXJlbmNlKHJlZmVyZW5jZSkge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKSxcbiAgICAgICAgICBjbGFpbSA9IGNvbnRleHQuZmluZENsYWltQnlSZWZlcmVuY2UocmVmZXJlbmNlKTtcblxuICAgIHJldHVybiBjbGFpbTtcbiAgfVxuXG4gIGZpbmRUZXJtQnlUZXJtTm9kZSh0ZXJtTm9kZSkge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKSxcbiAgICAgICAgICB0ZXJtID0gY29udGV4dC5maW5kVGVybUJ5VGVybU5vZGUodGVybU5vZGUpO1xuXG4gICAgcmV0dXJuIHRlcm07XG4gIH1cblxuICBmaW5kRnJhbWVCeUZyYW1lTm9kZShmcmFtZU5vZGUpIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCksXG4gICAgICAgICAgZnJhbWUgPSBjb250ZXh0LmZpbmRGcmFtZUJ5RnJhbWVOb2RlKGZyYW1lTm9kZSk7XG5cbiAgICByZXR1cm4gZnJhbWU7XG4gIH1cblxuICBmaW5kRXF1YWxpdHlCeUVxdWFsaXR5Tm9kZShlcXVhbGl0eU5vZGUpIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCksXG4gICAgICAgICAgZXF1YWxpdHkgPSBjb250ZXh0LmZpbmRFcXVhbGl0eUJ5RXF1YWxpdHlOb2RlKGVxdWFsaXR5Tm9kZSk7XG5cbiAgICByZXR1cm4gZXF1YWxpdHk7XG4gIH1cblxuICBmaW5kQXNzZXJ0aW9uQnlBc3NlcnRpb25Ob2RlKGFzc2VydGlvbk5vZGUpIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCksXG4gICAgICAgICAgYXNzZXJ0aW9uID0gY29udGV4dC5maW5kQXNzZXJ0aW9uQnlBc3NlcnRpb25Ob2RlKGFzc2VydGlvbk5vZGUpO1xuXG4gICAgcmV0dXJuIGFzc2VydGlvbjtcbiAgfVxuXG4gIGZpbmRTdGF0ZW1lbnRCeVN0YXRlbWVudE5vZGUoc3RhdGVtZW50Tm9kZSkge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKSxcbiAgICAgICAgICBzdGF0ZW1lbnQgPSBjb250ZXh0LmZpbmRTdGF0ZW1lbnRCeVN0YXRlbWVudE5vZGUoc3RhdGVtZW50Tm9kZSk7XG5cbiAgICByZXR1cm4gc3RhdGVtZW50O1xuICB9XG5cbiAgZmluZFJlZmVyZW5jZUJ5UmVmZXJlbmNlTm9kZShyZWZlcmVuY2VOb2RlKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpLFxuICAgICAgICAgIHJlZmVyZW5jZSA9IGNvbnRleHQuZmluZFJlZmVyZW5jZUJ5UmVmZXJlbmNlTm9kZShyZWZlcmVuY2VOb2RlKTtcblxuICAgIHJldHVybiByZWZlcmVuY2U7XG4gIH1cblxuICBmaW5kQXNzdW1wdGlvbkJ5QXNzdW1wdGlvbk5vZGUoYXNzdW1wdGlvbk5vZGUpIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCksXG4gICAgICAgICAgYXNzdW1wdGlvbiA9IGNvbnRleHQuZmluZEFzc3VtcHRpb25CeUFzc3VtcHRpb25Ob2RlKGFzc3VtcHRpb25Ob2RlKTtcblxuICAgIHJldHVybiBhc3N1bXB0aW9uO1xuICB9XG5cbiAgZmluZFJlZmVyZW5jZUJ5TWV0YXZhcmlhYmxlTm9kZShtZXRhdmFyaWFibGVOb2RlKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpLFxuICAgICAgICAgIHJlZmVyZW5jZSA9IGNvbnRleHQuZmluZFJlZmVyZW5jZUJ5TWV0YXZhcmlhYmxlTm9kZShtZXRhdmFyaWFibGVOb2RlKTtcblxuICAgIHJldHVybiByZWZlcmVuY2U7XG4gIH1cblxuICBmaW5kTWV0YXZhcmlhYmxlQnlNZXRhdmFyaWFibGVOb2RlKG1ldGF2YXJpYWJsZU5vZGUpIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCksXG4gICAgICAgICAgbWV0YXZhcmlhYmxlID0gY29udGV4dC5maW5kTWV0YXZhcmlhYmxlQnlNZXRhdmFyaWFibGVOb2RlKG1ldGF2YXJpYWJsZU5vZGUpO1xuXG4gICAgcmV0dXJuIG1ldGF2YXJpYWJsZTtcbiAgfVxuXG4gIGZpbmRTdWJzdGl0dXRpb25CeVN1YnN0aXR1dGlvbk5vZGUoc3Vic3RpdHV0aW9uTm9kZSkge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKSxcbiAgICAgICAgICBzdWJzdGl0dXRpb24gPSBjb250ZXh0LmZpbmRTdWJzdGl0dXRpb25CeVN1YnN0aXR1dGlvbk5vZGUoc3Vic3RpdHV0aW9uTm9kZSk7XG5cbiAgICByZXR1cm4gc3Vic3RpdHV0aW9uO1xuICB9XG5cbiAgZmluZEluZmVycmVkU3Vic3RpdHV0aW9uQnlWYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpLFxuICAgICAgICAgIGluZmVycmVkU3Vic3RpdHV0aW9uID0gY29udGV4dC5maW5kSW5mZXJyZWRTdWJzdGl0dXRpb25CeVZhcmlhYmxlTm9kZSh2YXJpYWJsZU5vZGUpO1xuXG4gICAgcmV0dXJuIGluZmVycmVkU3Vic3RpdHV0aW9uO1xuICB9XG5cbiAgZmluZEluZmVycmVkU3Vic3RpdHV0aW9uQnlNZXRhdmFyaWFibGVOb2RlKG1ldGF2YXJpYWJsZU5vZGUpIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCksXG4gICAgICAgICAgaW5mZXJyZWRTdWJzdGl0dXRpb24gPSBjb250ZXh0LmZpbmRJbmZlcnJlZFN1YnN0aXR1dGlvbkJ5TWV0YXZhcmlhYmxlTm9kZShtZXRhdmFyaWFibGVOb2RlKTtcblxuICAgIHJldHVybiBpbmZlcnJlZFN1YnN0aXR1dGlvbjtcbiAgfVxuXG4gIGZpbmRDb25zdHJhaW50QnlDb25zdHJhaW50Tm9kZShjb25zdHJhaW50Tm9kZSkge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKSxcbiAgICAgICAgICBjb25zdHJhaW50ID0gY29udGV4dC5maW5kQ29uc3RyYWludEJ5Q29uc3RyYWludE5vZGUoY29uc3RyYWludE5vZGUpO1xuXG4gICAgcmV0dXJuIGNvbnN0cmFpbnQ7XG4gIH1cblxuICBmaW5kVHlwZUJ5VHlwZU5hbWUodHlwZU5hbWUpIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCksXG4gICAgICAgICAgdHlwZSA9IGNvbnRleHQuZmluZFR5cGVCeVR5cGVOYW1lKHR5cGVOYW1lKTtcblxuICAgIHJldHVybiB0eXBlO1xuICB9XG5cbiAgZmluZFR5cGVCeU5vbWluYWxUeXBlTmFtZShub21pbmFsVHlwZU5hbWUpIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCksXG4gICAgICAgICAgdHlwZSA9IGNvbnRleHQuZmluZFR5cGVCeU5vbWluYWxUeXBlTmFtZShub21pbmFsVHlwZU5hbWUpO1xuXG4gICAgcmV0dXJuIHR5cGU7XG4gIH1cblxuICBmaW5kTWV0YVR5cGVCeU1ldGFUeXBlTmFtZShtZXRhVHlwZU5hbWUpIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCksXG4gICAgICAgICAgbWV0YVR5cGUgPSBjb250ZXh0LmZpbmRNZXRhVHlwZUJ5TWV0YVR5cGVOYW1lKG1ldGFUeXBlTmFtZSk7XG5cbiAgICByZXR1cm4gbWV0YVR5cGU7XG4gIH1cblxuICBmaW5kUHJvY2VkdXJlQnlQcm9jZWR1cmVOYW1lKHByb2NlZHVyZU5hbWUpIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCksXG4gICAgICAgICAgcHJvY2VkdXJlID0gY29udGV4dC5maW5kUHJvY2VkdXJlQnlQcm9jZWR1cmVOYW1lKHByb2NlZHVyZU5hbWUpO1xuXG4gICAgcmV0dXJuIHByb2NlZHVyZTtcbiAgfVxuXG4gIGZpbmREZWNsYXJlZFZhcmlhYmxlQnlWYXJpYWJsZUlkZW50aWZpZXIodmFyaWFibGVJZGVudGlmaWVyKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpLFxuICAgICAgICAgIGRlY2xhcmVkVmFyaWFibGUgPSBjb250ZXh0LmZpbmREZWNsYXJlZFZhcmlhYmxlQnlWYXJpYWJsZUlkZW50aWZpZXIodmFyaWFibGVJZGVudGlmaWVyKTtcblxuICAgIHJldHVybiBkZWNsYXJlZFZhcmlhYmxlO1xuICB9XG5cbiAgZmluZERlY2xhcmVkVmFyaWFibGVzQnlWYXJpYWJsZUlkZW50aWZpZXIodmFyaWFibGVJZGVudGlmaWVyKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpLFxuICAgICAgICAgIGRlY2xhcmVkVmFyaWFibGVzID0gY29udGV4dC5maW5kRGVjbGFyZWRWYXJpYWJsZXNCeVZhcmlhYmxlSWRlbnRpZmllcih2YXJpYWJsZUlkZW50aWZpZXIpO1xuXG4gICAgcmV0dXJuIGRlY2xhcmVkVmFyaWFibGVzO1xuICB9XG5cbiAgZmluZERlY2xhcmVkTWV0YXZhcmlhYmxlQnlNZXRhdmFyaWFibGVOYW1lKG1ldGF2YXJpYWJsZU5hbWUpIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCksXG4gICAgICAgICAgZGVjbGFyZWRNZXRhdmFyaWFibGUgPSBjb250ZXh0LmZpbmREZWNsYXJlZE1ldGF2YXJpYWJsZUJ5TWV0YXZhcmlhYmxlTmFtZShtZXRhdmFyaWFibGVOYW1lKTtcblxuICAgIHJldHVybiBkZWNsYXJlZE1ldGF2YXJpYWJsZTtcbiAgfVxuXG4gIGlzVGVybVByZXNlbnRCeVRlcm1Ob2RlKHRlcm1Ob2RlKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpLFxuICAgICAgdGVybVByZXNlbnQgPSBjb250ZXh0LmlzVGVybVByZXNlbnRCeVRlcm1Ob2RlKHRlcm1Ob2RlKTtcblxuICAgIHJldHVybiB0ZXJtUHJlc2VudDtcbiAgfVxuXG4gIGlzTGFiZWxQcmVzZW50QnlMYWJlbE5vZGUobGFiZWxOb2RlKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpLFxuICAgICAgICAgIGxhYmVsUHJlc2VudCA9IGNvbnRleHQuaXNMYWJlbFByZXNlbnRCeUxhYmVsTm9kZShsYWJlbE5vZGUpO1xuXG4gICAgcmV0dXJuIGxhYmVsUHJlc2VudDtcbiAgfVxuXG4gIGlzRnJhbWVQcmVzZW50QnlGcmFtZU5vZGUoZnJhbWVOb2RlKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpLFxuICAgICAgICAgIGZyYW1lUHJlc2VudCA9IGNvbnRleHQuaXNGcmFtZVByZXNlbnRCeUZyYW1lTm9kZShmcmFtZU5vZGUpO1xuXG4gICAgcmV0dXJuIGZyYW1lUHJlc2VudDtcbiAgfVxuXG4gIGlzRXF1YWxpdHlQcmVzZW50QnlFcXVhbGl0eU5vZGUoZXF1YWxpdHlOb2RlKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpLFxuICAgICAgICAgIGVxdWFsaXR5UHJlc2VudCA9IGNvbnRleHQuaXNFcXVhbGl0eVByZXNlbnRCeUVxdWFsaXR5Tm9kZShlcXVhbGl0eU5vZGUpO1xuXG4gICAgcmV0dXJuIGVxdWFsaXR5UHJlc2VudDtcbiAgfVxuXG4gIGlzQXNzZXJ0aW9uUHJlc2VudEJ5QXNzZXJ0aW9uTm9kZShhc3NlcnRpb25Ob2RlKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpLFxuICAgICAgICAgIGFzc2VydGlvblByZXNlbnQgPSBjb250ZXh0LmlzQXNzZXJ0aW9uUHJlc2VudEJ5QXNzZXJ0aW9uTm9kZShhc3NlcnRpb25Ob2RlKTtcblxuICAgIHJldHVybiBhc3NlcnRpb25QcmVzZW50O1xuICB9XG5cbiAgaXNTdGF0ZW1lbnRQcmVzZW50QnlTdGF0ZW1lbnROb2RlKHN0YXRlbWVudE5vZGUpIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCksXG4gICAgICAgICAgc3RhdGVtZW50UHJlc2VudCA9IGNvbnRleHQuaXNTdGF0ZW1lbnRQcmVzZW50QnlTdGF0ZW1lbnROb2RlKHN0YXRlbWVudE5vZGUpO1xuXG4gICAgcmV0dXJuIHN0YXRlbWVudFByZXNlbnQ7XG4gIH1cblxuICBpc01ldGF2YXJpYWJsZVByZXNlbnRCeU1ldGF2YXJpYWJsZU5vZGUobWV0YXZhcmlhYmxlTm9kZSkge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKSxcbiAgICAgICAgICBtZXRhdmFyaWFibGVQcmVzZW50ID0gY29udGV4dC5pc01ldGF2YXJpYWJsZVByZXNlbnRCeU1ldGF2YXJpYWJsZU5vZGUobWV0YXZhcmlhYmxlTm9kZSk7XG5cbiAgICByZXR1cm4gbWV0YXZhcmlhYmxlUHJlc2VudDtcbiAgfVxuXG4gIGlzVHlwZVByZXNlbnRCeU5vbWluYWxUeXBlTmFtZShub21pbmFsVHlwZU5hbWUpIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCksXG4gICAgICAgICAgdHlwZVByZXNlbnQgPSBjb250ZXh0LmlzVHlwZVByZXNlbnRCeU5vbWluYWxUeXBlTmFtZShub21pbmFsVHlwZU5hbWUpO1xuXG4gICAgcmV0dXJuIHR5cGVQcmVzZW50O1xuICB9XG5cbiAgaXNQcm9jZWR1cmVQcmVzZW50QnlQcm9jZWR1cmVOYW1lKHByb2NlZHVyZU5hbWUpIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCksXG4gICAgICAgICAgcHJvY2VkdXJlUHJlc2VudCA9IGNvbnRleHQuaXNQcm9jZWR1cmVQcmVzZW50QnlQcm9jZWR1cmVOYW1lKHByb2NlZHVyZU5hbWUpO1xuXG4gICAgcmV0dXJuIHByb2NlZHVyZVByZXNlbnQ7XG4gIH1cblxuICBpc0RlY2xhcmVkTWV0YXZhcmlhYmxlUHJlc2VudEJ5TWV0YXZhcmlhYmxlTmFtZShtZXRhdmFyaWFibGVOYW1lKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpLFxuICAgICAgICAgIG1ldGF2YXJpYWJsZVByZXNlbnQgPSBjb250ZXh0LmlzRGVjbGFyZWRNZXRhdmFyaWFibGVQcmVzZW50QnlNZXRhdmFyaWFibGVOYW1lKG1ldGF2YXJpYWJsZU5hbWUpO1xuXG4gICAgcmV0dXJuIG1ldGF2YXJpYWJsZVByZXNlbnQ7XG4gIH1cblxuICBpc1JlZmVyZW5jZVByZXNlbnRCeU1ldGF2YXJpYWJsZU5vZGUobWV0dnZhcmlhYmxlTm9kZSkge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKSxcbiAgICAgICAgICByZWZlcmVuY2VQcmVzZW50ID0gY29udGV4dC5pc1JlZmVyZW5jZVByZXNlbnRCeU1ldGF2YXJpYWJsZU5vZGUobWV0dnZhcmlhYmxlTm9kZSk7XG5cbiAgICByZXR1cm4gcmVmZXJlbmNlUHJlc2VudDtcbiAgfVxuXG4gIGlzSW5mZXJyZWRTdWJzdGl0dXRpb25QcmVzZW50QnlNZXRhdmFyaWFibGVOb2RlKG1ldGF2YXJpYWJsZU5vZGUpIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCksXG4gICAgICAgICAgaW5mZXJyZWRTdWJzdGl0dXRpb25QcmVzZW50ID0gY29udGV4dC5pc0luZmVycmVkU3Vic3RpdHV0aW9uUHJlc2VudEJ5TWV0YXZhcmlhYmxlTm9kZShtZXRhdmFyaWFibGVOb2RlKTtcblxuICAgIHJldHVybiBpbmZlcnJlZFN1YnN0aXR1dGlvblByZXNlbnQ7XG4gIH1cblxuICBpc0luZmVycmVkU3Vic3RpdHV0aW9uUHJlc2VudEJ5TWV0YXZhcmlhYmxlTm9kZUFuZFN1YnN0aXR1dGlvbk5vZGUobWV0YXZhcmlhYmxlTm9kZSwgc3Vic3RpdHV0aW9uTm9kZSkge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKSxcbiAgICAgICAgICBpbmZlcnJlZFN1YnN0aXR1dGlvblByZXNlbnQgPSBjb250ZXh0LmlzSW5mZXJyZWRTdWJzdGl0dXRpb25QcmVzZW50QnlNZXRhdmFyaWFibGVOb2RlQW5kU3Vic3RpdHV0aW9uTm9kZShtZXRhdmFyaWFibGVOb2RlLCBzdWJzdGl0dXRpb25Ob2RlKTtcblxuICAgIHJldHVybiBpbmZlcnJlZFN1YnN0aXR1dGlvblByZXNlbnQ7XG4gIH1cblxuICBpc01ldGFMZXZlbCgpIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCksXG4gICAgICAgICAgbWV0YUxldmVsID0gY29udGV4dC5pc01ldGFMZXZlbCgpO1xuXG4gICAgcmV0dXJuIG1ldGFMZXZlbDtcbiAgfVxuXG4gIGFkZFRlcm1zKHRlcm1zKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpO1xuXG4gICAgY29udGV4dC5hZGRUZXJtcyh0ZXJtcyk7XG4gIH1cblxuICBhZGRBc3NlcnRpb25zKGFzc2VydGlvbnMpIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCk7XG5cbiAgICBjb250ZXh0LmFkZEFzc2VydGlvbnMoYXNzZXJ0aW9ucyk7XG4gIH1cblxuICBhZGRNZXRhdmFyaWFibGVzKG1ldGF2YXJpYWJsZXMpIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCk7XG5cbiAgICBjb250ZXh0LmFkZE1ldGF2YXJpYWJsZXMobWV0YXZhcmlhYmxlcyk7XG4gIH1cblxuICBhZGRJbmZlcnJlZFN1YnN0aXR1dGlvbnMoaW5mZXJyZWRTdWJzdGl0dXRpb25zKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpO1xuXG4gICAgY29udGV4dC5hZGRJbmZlcnJlZFN1YnN0aXR1dGlvbnMoaW5mZXJyZWRTdWJzdGl0dXRpb25zKTtcbiAgfVxuXG4gIGFkZEF4aW9tKGF4aW9tKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpO1xuXG4gICAgY29udGV4dC5hZGRBeGlvbShheGlvbSk7XG4gIH1cblxuICBhZGRMZW1tYShsZW1tYSkge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKTtcblxuICAgIGNvbnRleHQuYWRkTGVtbWEobGVtbWEpO1xuICB9XG5cbiAgYWRkU2NoZW1hKHNjaGVtYSkge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKTtcblxuICAgIGNvbnRleHQuYWRkU2NoZW1hKHNjaGVtYSk7XG4gIH1cblxuICBhZGRUaGVvcmVtKHRoZW9yZW0pIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCk7XG5cbiAgICBjb250ZXh0LmFkZFRoZW9yZW0odGhlb3JlbSk7XG4gIH1cblxuICBhZGRDb25qZWN0dXJlKGNvbmplY3R1cmUpIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCk7XG5cbiAgICBjb250ZXh0LmFkZENvbmplY3R1cmUoY29uamVjdHVyZSk7XG4gIH1cblxuICBhZGRSdWxlKHJ1bGUpIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCk7XG5cbiAgICBjb250ZXh0LmFkZFJ1bGUocnVsZSk7XG4gIH1cblxuICBhZGRUZXJtKHRlcm0pIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCk7XG5cbiAgICBjb250ZXh0LmFkZFRlcm0odGVybSk7XG4gIH1cblxuICBhZGRGcmFtZShmcmFtZSkge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKTtcblxuICAgIGNvbnRleHQuYWRkRnJhbWUoZnJhbWUpO1xuICB9XG5cbiAgYWRkRXF1YWxpdHkoZXF1YWxpdHkpIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCk7XG5cbiAgICBjb250ZXh0LmFkZEVxdWFsaXR5KGVxdWFsaXR5KTtcbiAgfVxuXG4gIGFkZEFzc2VydGlvbihhc3NlcnRpb24pIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCk7XG5cbiAgICBjb250ZXh0LmFkZEFzc2VydGlvbihhc3NlcnRpb24pO1xuICB9XG5cbiAgYWRkU3RhdGVtZW50KHN0YXRlbWVudCkge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKTtcblxuICAgIGNvbnRleHQuYWRkU3RhdGVtZW50KHN0YXRlbWVudCk7XG4gIH1cblxuICBhZGRTaWduYXR1cmUoc2lnbmF0dXJlKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpO1xuXG4gICAgY29udGV4dC5hZGRTaWduYXR1cmUoc2lnbmF0dXJlKTtcbiAgfVxuXG4gIGFkZFJlZmVyZW5jZShyZWZlcmVuY2UpIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCk7XG5cbiAgICBjb250ZXh0LmFkZFJlZmVyZW5jZShyZWZlcmVuY2UpO1xuICB9XG5cbiAgYWRkQXNzdW1wdGlvbihhc3N1bXB0aW9uKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpO1xuXG4gICAgY29udGV4dC5hZGRBc3N1bXB0aW9uKGFzc3VtcHRpb24pO1xuICB9XG5cbiAgYWRkQXNzaWdubWVudChhc3NpZ25tZW50KSB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpO1xuXG4gICAgY29udGV4dC5hZGRBc3NpZ25tZW50KGFzc2lnbm1lbnQpO1xuICB9XG5cbiAgYWRkTWV0YXZhcmlhYmxlKG1ldGF2YXJpYWJsZSkge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKTtcblxuICAgIGNvbnRleHQuYWRkTWV0YXZhcmlhYmxlKG1ldGF2YXJpYWJsZSk7XG4gIH1cblxuICBhZGRTdWJzdGl0dXRpb24oc3Vic3RpdHV0aW9uKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpO1xuXG4gICAgY29udGV4dC5hZGRTdWJzdGl0dXRpb24oc3Vic3RpdHV0aW9uKTtcbiAgfVxuXG4gIGFkZERlY2xhcmVkVmFyaWFibGUoZGVjbGFyZWRWYXJpYWJsZSkge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKTtcblxuICAgIGNvbnRleHQuYWRkRGVjbGFyZWRWYXJpYWJsZShkZWNsYXJlZFZhcmlhYmxlKTtcbiAgfVxuXG4gIGFkZERlY2xhcmVkTWV0YXZhcmlhYmxlKGRlY2xhcmVkTWV0YXZhcmlhYmxlKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpO1xuXG4gICAgY29udGV4dC5hZGREZWNsYXJlZE1ldGF2YXJpYWJsZShkZWNsYXJlZE1ldGF2YXJpYWJsZSk7XG4gIH1cblxuICBhZGRDb25zdHJhaW50KGNvbnN0cmFpbnQpIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCk7XG5cbiAgICBjb250ZXh0LmFkZENvbnN0cmFpbnQoY29uc3RyYWludCk7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJDb250ZXh0IiwiQ29udGV4dEJhc2UiLCJnZXRMZXhlciIsImNvbnRleHQiLCJnZXRDb250ZXh0IiwibGV4ZXIiLCJnZXRQYXJzZXIiLCJwYXJzZXIiLCJnZXRGaWxlUGF0aCIsImZpbGVQYXRoIiwiZ2V0VG9rZW5zIiwidG9rZW5zIiwic2V0VG9rZW5zIiwiZ2V0VGVybXMiLCJ0ZXJtcyIsImdldEZyYW1lcyIsImZyYW1lcyIsImdldEVxdWFsaXRpZXMiLCJlcXVhbGl0aWVzIiwiZ2V0QXNzZXJ0aW9ucyIsImFzc2VydGlvbnMiLCJnZXRTdGF0ZW1lbnRzIiwic3RhdGVtZW50cyIsImdldFNpZ25hdHVyZXMiLCJzaWduYXR1cmVzIiwiZ2V0UmVmZXJlbmNlcyIsInJlZmVyZW5jZXMiLCJnZXRBc3N1bXB0aW9ucyIsImFzc3VtcHRpb25zIiwiZ2V0TWV0YXZhcmlhYmxlcyIsIm1ldGF2YXJpYWJsZXMiLCJnZXRTdWJzdGl0dXRpb25zIiwic3Vic3RpdHV0aW9ucyIsImdldEluZmVycmVkU3Vic3RpdHV0aW9ucyIsImluZmVycmVkU3Vic3RpdHV0aW9ucyIsImdldEdlbmVyYXRvcnMiLCJpbmNsdWRlUmVsZWFzZSIsImdlbmVyYXRvcnMiLCJnZXRQcm9jZWR1cmVzIiwicHJvY2VkdXJlcyIsImdldENvbWJpbmF0b3JzIiwiY29tYmluYXRvcnMiLCJnZXRDb25zdHJ1Y3RvcnMiLCJjb25zdHJ1Y3RvcnMiLCJnZXRDbGFpbSIsImNsYWltIiwiZ2V0U2NoZW1hcyIsInNjaGVtYXMiLCJnZXRWYXJpYWJsZXMiLCJuZXN0ZWQiLCJ2YXJpYWJsZXMiLCJnZXRTdGVwcyIsInN0ZXBzIiwiZ2V0RmFjdHMiLCJmYWN0cyIsImdldEVxdWl2YWxlbmNlcyIsImVxdWl2YWxlbmNlcyIsImdldERlY2xhcmVkVmFyaWFibGVzIiwiZGVjbGFyZWRWYXJpYWJsZXMiLCJnZXREZWNsYXJlZE1ldGF2YXJpYWJsZXMiLCJkZWNsYXJlZE1ldGF2YXJpYWJsZXMiLCJnZXRGYWN0T3JTdWJwcm9vZnMiLCJmYWN0T3JTdWJwcm9vZnMiLCJnZXRQcm9wZXJ0aWVzIiwicHJvcGVydGllcyIsInR5cGVzIiwiZ2V0VHlwZXMiLCJmb3JFYWNoIiwidHlwZSIsImZpbmRNZXRhdmFyaWFibGUiLCJtZXRhdmFyaWFibGUiLCJjaGlsZENvbnRleHQiLCJwYXJlbnRDb250ZXh0IiwiZmluZFJ1bGVCeVJlZmVyZW5jZSIsInJlZmVyZW5jZSIsInJ1bGUiLCJmaW5kQXhpb21CeVJlZmVyZW5jZSIsImF4aW9tIiwiZmluZENsYWltQnlSZWZlcmVuY2UiLCJmaW5kVGVybUJ5VGVybU5vZGUiLCJ0ZXJtTm9kZSIsInRlcm0iLCJmaW5kRnJhbWVCeUZyYW1lTm9kZSIsImZyYW1lTm9kZSIsImZyYW1lIiwiZmluZEVxdWFsaXR5QnlFcXVhbGl0eU5vZGUiLCJlcXVhbGl0eU5vZGUiLCJlcXVhbGl0eSIsImZpbmRBc3NlcnRpb25CeUFzc2VydGlvbk5vZGUiLCJhc3NlcnRpb25Ob2RlIiwiYXNzZXJ0aW9uIiwiZmluZFN0YXRlbWVudEJ5U3RhdGVtZW50Tm9kZSIsInN0YXRlbWVudE5vZGUiLCJzdGF0ZW1lbnQiLCJmaW5kUmVmZXJlbmNlQnlSZWZlcmVuY2VOb2RlIiwicmVmZXJlbmNlTm9kZSIsImZpbmRBc3N1bXB0aW9uQnlBc3N1bXB0aW9uTm9kZSIsImFzc3VtcHRpb25Ob2RlIiwiYXNzdW1wdGlvbiIsImZpbmRSZWZlcmVuY2VCeU1ldGF2YXJpYWJsZU5vZGUiLCJtZXRhdmFyaWFibGVOb2RlIiwiZmluZE1ldGF2YXJpYWJsZUJ5TWV0YXZhcmlhYmxlTm9kZSIsImZpbmRTdWJzdGl0dXRpb25CeVN1YnN0aXR1dGlvbk5vZGUiLCJzdWJzdGl0dXRpb25Ob2RlIiwic3Vic3RpdHV0aW9uIiwiZmluZEluZmVycmVkU3Vic3RpdHV0aW9uQnlWYXJpYWJsZU5vZGUiLCJ2YXJpYWJsZU5vZGUiLCJpbmZlcnJlZFN1YnN0aXR1dGlvbiIsImZpbmRJbmZlcnJlZFN1YnN0aXR1dGlvbkJ5TWV0YXZhcmlhYmxlTm9kZSIsImZpbmRDb25zdHJhaW50QnlDb25zdHJhaW50Tm9kZSIsImNvbnN0cmFpbnROb2RlIiwiY29uc3RyYWludCIsImZpbmRUeXBlQnlUeXBlTmFtZSIsInR5cGVOYW1lIiwiZmluZFR5cGVCeU5vbWluYWxUeXBlTmFtZSIsIm5vbWluYWxUeXBlTmFtZSIsImZpbmRNZXRhVHlwZUJ5TWV0YVR5cGVOYW1lIiwibWV0YVR5cGVOYW1lIiwibWV0YVR5cGUiLCJmaW5kUHJvY2VkdXJlQnlQcm9jZWR1cmVOYW1lIiwicHJvY2VkdXJlTmFtZSIsInByb2NlZHVyZSIsImZpbmREZWNsYXJlZFZhcmlhYmxlQnlWYXJpYWJsZUlkZW50aWZpZXIiLCJ2YXJpYWJsZUlkZW50aWZpZXIiLCJkZWNsYXJlZFZhcmlhYmxlIiwiZmluZERlY2xhcmVkVmFyaWFibGVzQnlWYXJpYWJsZUlkZW50aWZpZXIiLCJmaW5kRGVjbGFyZWRNZXRhdmFyaWFibGVCeU1ldGF2YXJpYWJsZU5hbWUiLCJtZXRhdmFyaWFibGVOYW1lIiwiZGVjbGFyZWRNZXRhdmFyaWFibGUiLCJpc1Rlcm1QcmVzZW50QnlUZXJtTm9kZSIsInRlcm1QcmVzZW50IiwiaXNMYWJlbFByZXNlbnRCeUxhYmVsTm9kZSIsImxhYmVsTm9kZSIsImxhYmVsUHJlc2VudCIsImlzRnJhbWVQcmVzZW50QnlGcmFtZU5vZGUiLCJmcmFtZVByZXNlbnQiLCJpc0VxdWFsaXR5UHJlc2VudEJ5RXF1YWxpdHlOb2RlIiwiZXF1YWxpdHlQcmVzZW50IiwiaXNBc3NlcnRpb25QcmVzZW50QnlBc3NlcnRpb25Ob2RlIiwiYXNzZXJ0aW9uUHJlc2VudCIsImlzU3RhdGVtZW50UHJlc2VudEJ5U3RhdGVtZW50Tm9kZSIsInN0YXRlbWVudFByZXNlbnQiLCJpc01ldGF2YXJpYWJsZVByZXNlbnRCeU1ldGF2YXJpYWJsZU5vZGUiLCJtZXRhdmFyaWFibGVQcmVzZW50IiwiaXNUeXBlUHJlc2VudEJ5Tm9taW5hbFR5cGVOYW1lIiwidHlwZVByZXNlbnQiLCJpc1Byb2NlZHVyZVByZXNlbnRCeVByb2NlZHVyZU5hbWUiLCJwcm9jZWR1cmVQcmVzZW50IiwiaXNEZWNsYXJlZE1ldGF2YXJpYWJsZVByZXNlbnRCeU1ldGF2YXJpYWJsZU5hbWUiLCJpc1JlZmVyZW5jZVByZXNlbnRCeU1ldGF2YXJpYWJsZU5vZGUiLCJtZXR2dmFyaWFibGVOb2RlIiwicmVmZXJlbmNlUHJlc2VudCIsImlzSW5mZXJyZWRTdWJzdGl0dXRpb25QcmVzZW50QnlNZXRhdmFyaWFibGVOb2RlIiwiaW5mZXJyZWRTdWJzdGl0dXRpb25QcmVzZW50IiwiaXNJbmZlcnJlZFN1YnN0aXR1dGlvblByZXNlbnRCeU1ldGF2YXJpYWJsZU5vZGVBbmRTdWJzdGl0dXRpb25Ob2RlIiwiaXNNZXRhTGV2ZWwiLCJtZXRhTGV2ZWwiLCJhZGRUZXJtcyIsImFkZEFzc2VydGlvbnMiLCJhZGRNZXRhdmFyaWFibGVzIiwiYWRkSW5mZXJyZWRTdWJzdGl0dXRpb25zIiwiYWRkQXhpb20iLCJhZGRMZW1tYSIsImxlbW1hIiwiYWRkU2NoZW1hIiwic2NoZW1hIiwiYWRkVGhlb3JlbSIsInRoZW9yZW0iLCJhZGRDb25qZWN0dXJlIiwiY29uamVjdHVyZSIsImFkZFJ1bGUiLCJhZGRUZXJtIiwiYWRkRnJhbWUiLCJhZGRFcXVhbGl0eSIsImFkZEFzc2VydGlvbiIsImFkZFN0YXRlbWVudCIsImFkZFNpZ25hdHVyZSIsInNpZ25hdHVyZSIsImFkZFJlZmVyZW5jZSIsImFkZEFzc3VtcHRpb24iLCJhZGRBc3NpZ25tZW50IiwiYXNzaWdubWVudCIsImFkZE1ldGF2YXJpYWJsZSIsImFkZFN1YnN0aXR1dGlvbiIsImFkZERlY2xhcmVkVmFyaWFibGUiLCJhZGREZWNsYXJlZE1ldGF2YXJpYWJsZSIsImFkZENvbnN0cmFpbnQiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQUlBOzs7ZUFBcUJBOzs7Z0NBRmtCO0FBRXhCLE1BQU1BLGdCQUFnQkMsdUJBQVc7SUFDOUNDLFdBQVc7UUFDVCxNQUFNQyxVQUFVLElBQUksQ0FBQ0MsVUFBVSxJQUN6QkMsUUFBUUYsUUFBUUQsUUFBUTtRQUU5QixPQUFPRztJQUNUO0lBRUFDLFlBQVk7UUFDVixNQUFNSCxVQUFVLElBQUksQ0FBQ0MsVUFBVSxJQUN6QkcsU0FBU0osUUFBUUcsU0FBUztRQUVoQyxPQUFPQztJQUNUO0lBRUFDLGNBQWM7UUFDWixNQUFNTCxVQUFVLElBQUksQ0FBQ0MsVUFBVSxJQUN6QkssV0FBV04sUUFBUUssV0FBVztRQUVwQyxPQUFPQztJQUNUO0lBRUFDLFlBQVk7UUFDVixNQUFNUCxVQUFVLElBQUksQ0FBQ0MsVUFBVSxJQUN6Qk8sU0FBU1IsUUFBUU8sU0FBUztRQUVoQyxPQUFPQztJQUNUO0lBRUFDLFVBQVVELE1BQU0sRUFBRTtRQUNoQixNQUFNUixVQUFVLElBQUks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
|
|
382
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb250ZXh0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBDb250ZXh0IGFzIENvbnRleHRCYXNlIH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDb250ZXh0IGV4dGVuZHMgQ29udGV4dEJhc2Uge1xuICBnZXRMZXhlcigpIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCksXG4gICAgICAgICAgbGV4ZXIgPSBjb250ZXh0LmdldExleGVyKCk7XG5cbiAgICByZXR1cm4gbGV4ZXI7XG4gIH1cblxuICBnZXRQYXJzZXIoKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpLFxuICAgICAgICAgIHBhcnNlciA9IGNvbnRleHQuZ2V0UGFyc2VyKCk7XG5cbiAgICByZXR1cm4gcGFyc2VyO1xuICB9XG5cbiAgZ2V0RmlsZVBhdGgoKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpLFxuICAgICAgICAgIGZpbGVQYXRoID0gY29udGV4dC5nZXRGaWxlUGF0aCgpO1xuXG4gICAgcmV0dXJuIGZpbGVQYXRoO1xuICB9XG5cbiAgZ2V0VG9rZW5zKCkge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKSxcbiAgICAgICAgICB0b2tlbnMgPSBjb250ZXh0LmdldFRva2VucygpO1xuXG4gICAgcmV0dXJuIHRva2VucztcbiAgfVxuXG4gIHNldFRva2Vucyh0b2tlbnMpIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCk7XG5cbiAgICBjb250ZXh0LnNldFRva2Vucyh0b2tlbnMpO1xuICB9XG5cbiAgZ2V0VGVybXModGVybXMgPSBbXSkge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKTtcblxuICAgIGNvbnRleHQuZ2V0VGVybXModGVybXMpO1xuXG4gICAgcmV0dXJuIHRlcm1zO1xuICB9XG5cbiAgZ2V0RnJhbWVzKGZyYW1lcyA9IFtdKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpO1xuXG4gICAgY29udGV4dC5nZXRGcmFtZXMoZnJhbWVzKTtcblxuICAgIHJldHVybiBmcmFtZXM7XG4gIH1cblxuICBnZXRFcXVhbGl0aWVzKGVxdWFsaXRpZXMgPSBbXSkge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKTtcblxuICAgIGNvbnRleHQuZ2V0RXF1YWxpdGllcyhlcXVhbGl0aWVzKTtcblxuICAgIHJldHVybiBlcXVhbGl0aWVzO1xuICB9XG5cbiAgZ2V0QXNzZXJ0aW9ucyhhc3NlcnRpb25zID0gW10pIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCk7XG5cbiAgICBjb250ZXh0LmdldEFzc2VydGlvbnMoYXNzZXJ0aW9ucyk7XG5cbiAgICByZXR1cm4gYXNzZXJ0aW9ucztcbiAgfVxuXG4gIGdldFN0YXRlbWVudHMoc3RhdGVtZW50cyA9IFtdKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpO1xuXG4gICAgY29udGV4dC5nZXRTdGF0ZW1lbnRzKHN0YXRlbWVudHMpO1xuXG4gICAgcmV0dXJuIHN0YXRlbWVudHM7XG4gIH1cblxuICBnZXRTaWduYXR1cmVzKHNpZ25hdHVyZXMgPSBbXSkge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKTtcblxuICAgIGNvbnRleHQuZ2V0U2lnbmF0dXJlcyhzaWduYXR1cmVzKTtcblxuICAgIHJldHVybiBzaWduYXR1cmVzO1xuICB9XG5cbiAgZ2V0UmVmZXJlbmNlcyhyZWZlcmVuY2VzID0gW10pIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCk7XG5cbiAgICBjb250ZXh0LmdldFJlZmVyZW5jZXMocmVmZXJlbmNlcyk7XG5cbiAgICByZXR1cm4gcmVmZXJlbmNlcztcbiAgfVxuXG4gIGdldEFzc3VtcHRpb25zKGFzc3VtcHRpb25zID0gW10pIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCk7XG5cbiAgICBjb250ZXh0LmdldEFzc3VtcHRpb25zKGFzc3VtcHRpb25zKTtcblxuICAgIHJldHVybiBhc3N1bXB0aW9ucztcbiAgfVxuXG4gIGdldE1ldGF2YXJpYWJsZXMobWV0YXZhcmlhYmxlcyA9IFtdKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpO1xuXG4gICAgY29udGV4dC5nZXRNZXRhdmFyaWFibGVzKG1ldGF2YXJpYWJsZXMpO1xuXG4gICAgcmV0dXJuIG1ldGF2YXJpYWJsZXM7XG4gIH1cblxuICBnZXRTdWJzdGl0dXRpb25zKHN1YnN0aXR1dGlvbnMgPSBbXSkge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKTtcblxuICAgIGNvbnRleHQuZ2V0U3Vic3RpdHV0aW9ucyhzdWJzdGl0dXRpb25zKTtcblxuICAgIHJldHVybiBzdWJzdGl0dXRpb25zO1xuICB9XG5cbiAgZ2V0SW5mZXJyZWRTdWJzdGl0dXRpb25zKGluZmVycmVkU3Vic3RpdHV0aW9ucyA9IFtdKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpO1xuXG4gICAgY29udGV4dC5nZXRJbmZlcnJlZFN1YnN0aXR1dGlvbnMoaW5mZXJyZWRTdWJzdGl0dXRpb25zKTtcblxuICAgIHJldHVybiBpbmZlcnJlZFN1YnN0aXR1dGlvbnM7XG4gIH1cblxuICBnZXRHZW5lcmF0b3JzKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKSxcbiAgICAgICAgICBnZW5lcmF0b3JzID0gY29udGV4dC5nZXRHZW5lcmF0b3JzKGluY2x1ZGVSZWxlYXNlKTtcblxuICAgIHJldHVybiBnZW5lcmF0b3JzO1xuICB9XG5cbiAgZ2V0UHJvY2VkdXJlcyhpbmNsdWRlUmVsZWFzZSA9IHRydWUpIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCksXG4gICAgICAgICAgcHJvY2VkdXJlcyA9IGNvbnRleHQuZ2V0UHJvY2VkdXJlcyhpbmNsdWRlUmVsZWFzZSk7XG5cbiAgICByZXR1cm4gcHJvY2VkdXJlcztcbiAgfVxuXG4gIGdldENvbWJpbmF0b3JzKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKSxcbiAgICAgICAgICBjb21iaW5hdG9ycyA9IGNvbnRleHQuZ2V0Q29tYmluYXRvcnMoaW5jbHVkZVJlbGVhc2UpO1xuXG4gICAgcmV0dXJuIGNvbWJpbmF0b3JzO1xuICB9XG5cbiAgZ2V0Q29uc3RydWN0b3JzKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKSxcbiAgICAgICAgICBjb25zdHJ1Y3RvcnMgPSBjb250ZXh0LmdldENvbnN0cnVjdG9ycyhpbmNsdWRlUmVsZWFzZSk7XG5cbiAgICByZXR1cm4gY29uc3RydWN0b3JzO1xuICB9XG5cbiAgZ2V0Q2xhaW0oaW5jbHVkZVJlbGVhc2UgPSB0cnVlKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpLFxuICAgICAgICAgIGNsYWltID0gY29udGV4dC5nZXRDbGFpbShpbmNsdWRlUmVsZWFzZSk7XG5cbiAgICByZXR1cm4gY2xhaW07XG4gIH1cblxuICBnZXRTY2hlbWFzKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKSxcbiAgICAgICAgICBzY2hlbWFzID0gY29udGV4dC5nZXRTY2hlbWFzKGluY2x1ZGVSZWxlYXNlKTtcblxuICAgIHJldHVybiBzY2hlbWFzO1xuICB9XG5cbiAgZ2V0VmFyaWFibGVzKG5lc3RlZCkge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKSxcbiAgICAgICAgICB2YXJpYWJsZXMgPSBjb250ZXh0LmdldFZhcmlhYmxlcyhuZXN0ZWQpO1xuXG4gICAgcmV0dXJuIHZhcmlhYmxlcztcbiAgfVxuXG4gIGdldFN0ZXBzKCkge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKSxcbiAgICAgICAgICBzdGVwcyA9IGNvbnRleHQuZ2V0U3RlcHMoKTtcblxuICAgIHJldHVybiBzdGVwcztcbiAgfVxuXG4gIGdldEZhY3RzKCkge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKSxcbiAgICAgICAgICBmYWN0cyA9IGNvbnRleHQuZ2V0RmFjdHMoKTtcblxuICAgIHJldHVybiBmYWN0cztcbiAgfVxuXG4gIGdldEVxdWl2YWxlbmNlcygpIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCksXG4gICAgICAgICAgZXF1aXZhbGVuY2VzID0gY29udGV4dC5nZXRFcXVpdmFsZW5jZXMoKTtcblxuICAgIHJldHVybiBlcXVpdmFsZW5jZXM7XG4gIH1cblxuICBnZXREZWNsYXJlZFZhcmlhYmxlcyhkZWNsYXJlZFZhcmlhYmxlcyA9IFtdKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpO1xuXG4gICAgY29udGV4dC5nZXREZWNsYXJlZFZhcmlhYmxlcyhkZWNsYXJlZFZhcmlhYmxlcyk7XG5cbiAgICByZXR1cm4gZGVjbGFyZWRWYXJpYWJsZXM7XG4gIH1cblxuICBnZXREZWNsYXJlZE1ldGF2YXJpYWJsZXMoKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpLFxuICAgICAgICAgIGRlY2xhcmVkTWV0YXZhcmlhYmxlcyA9IGNvbnRleHQuZ2V0RGVjbGFyZWRNZXRhdmFyaWFibGVzKCk7XG5cbiAgICByZXR1cm4gZGVjbGFyZWRNZXRhdmFyaWFibGVzO1xuICB9XG5cbiAgZ2V0RmFjdE9yU3VicHJvb2ZzKCkge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKSxcbiAgICAgICAgICBmYWN0T3JTdWJwcm9vZnMgPSBjb250ZXh0LmdldEZhY3RPclN1YnByb29mcygpO1xuXG4gICAgcmV0dXJuIGZhY3RPclN1YnByb29mcztcbiAgfVxuXG4gIGdldFByb3BlcnRpZXMoKSB7XG4gICAgY29uc3QgcHJvcGVydGllcyA9IFtdLFxuICAgICAgICAgIHR5cGVzID0gdGhpcy5nZXRUeXBlcygpO1xuXG4gICAgdHlwZXMuZm9yRWFjaCgodHlwZSkgPT4ge1xuICAgICAgdHlwZS5nZXRQcm9wZXJ0aWVzKHByb3BlcnRpZXMpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHByb3BlcnRpZXM7XG4gIH1cblxuICBnZXRUeXBlcygpIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCksXG4gICAgICAgICAgdHlwZXMgPSBjb250ZXh0LmdldFR5cGVzKCk7XG5cbiAgICByZXR1cm4gdHlwZXM7XG4gIH1cblxuICBmaW5kTWV0YXZhcmlhYmxlKG1ldGF2YXJpYWJsZSwgY29udGV4dCkge1xuICAgIGNvbnN0IGNoaWxkQ29udGV4dCA9IGNvbnRleHQ7IC8vL1xuXG4gICAgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpO1xuXG4gICAgY29uc3QgcGFyZW50Q29udGV4dCA9IGNvbnRleHQ7IC8vL1xuXG4gICAgY29udGV4dCA9IGNoaWxkQ29udGV4dDsgLy8vXG5cbiAgICBtZXRhdmFyaWFibGUgPSBwYXJlbnRDb250ZXh0LmZpbmRNZXRhdmFyaWFibGUobWV0YXZhcmlhYmxlLCBjb250ZXh0KTtcblxuICAgIHJldHVybiBtZXRhdmFyaWFibGU7XG4gIH1cblxuICBmaW5kUnVsZUJ5UmVmZXJlbmNlKHJlZmVyZW5jZSkge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKSxcbiAgICAgICAgICBydWxlID0gY29udGV4dC5maW5kUnVsZUJ5UmVmZXJlbmNlKHJlZmVyZW5jZSk7XG5cbiAgICByZXR1cm4gcnVsZTtcbiAgfVxuXG4gIGZpbmRBeGlvbUJ5UmVmZXJlbmNlKHJlZmVyZW5jZSkge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKSxcbiAgICAgICAgICBheGlvbSA9IGNvbnRleHQuZmluZEF4aW9tQnlSZWZlcmVuY2UocmVmZXJlbmNlKTtcblxuICAgIHJldHVybiBheGlvbTtcbiAgfVxuXG4gIGZpbmRDbGFpbUJ5UmVmZXJlbmNlKHJlZmVyZW5jZSkge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKSxcbiAgICAgICAgICBjbGFpbSA9IGNvbnRleHQuZmluZENsYWltQnlSZWZlcmVuY2UocmVmZXJlbmNlKTtcblxuICAgIHJldHVybiBjbGFpbTtcbiAgfVxuXG4gIGZpbmRUZXJtQnlUZXJtTm9kZSh0ZXJtTm9kZSkge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKSxcbiAgICAgICAgICB0ZXJtID0gY29udGV4dC5maW5kVGVybUJ5VGVybU5vZGUodGVybU5vZGUpO1xuXG4gICAgcmV0dXJuIHRlcm07XG4gIH1cblxuICBmaW5kRnJhbWVCeUZyYW1lTm9kZShmcmFtZU5vZGUpIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCksXG4gICAgICAgICAgZnJhbWUgPSBjb250ZXh0LmZpbmRGcmFtZUJ5RnJhbWVOb2RlKGZyYW1lTm9kZSk7XG5cbiAgICByZXR1cm4gZnJhbWU7XG4gIH1cblxuICBmaW5kRXF1YWxpdHlCeUVxdWFsaXR5Tm9kZShlcXVhbGl0eU5vZGUpIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCksXG4gICAgICAgICAgZXF1YWxpdHkgPSBjb250ZXh0LmZpbmRFcXVhbGl0eUJ5RXF1YWxpdHlOb2RlKGVxdWFsaXR5Tm9kZSk7XG5cbiAgICByZXR1cm4gZXF1YWxpdHk7XG4gIH1cblxuICBmaW5kQXNzZXJ0aW9uQnlBc3NlcnRpb25Ob2RlKGFzc2VydGlvbk5vZGUpIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCksXG4gICAgICAgICAgYXNzZXJ0aW9uID0gY29udGV4dC5maW5kQXNzZXJ0aW9uQnlBc3NlcnRpb25Ob2RlKGFzc2VydGlvbk5vZGUpO1xuXG4gICAgcmV0dXJuIGFzc2VydGlvbjtcbiAgfVxuXG4gIGZpbmRTdGF0ZW1lbnRCeVN0YXRlbWVudE5vZGUoc3RhdGVtZW50Tm9kZSkge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKSxcbiAgICAgICAgICBzdGF0ZW1lbnQgPSBjb250ZXh0LmZpbmRTdGF0ZW1lbnRCeVN0YXRlbWVudE5vZGUoc3RhdGVtZW50Tm9kZSk7XG5cbiAgICByZXR1cm4gc3RhdGVtZW50O1xuICB9XG5cbiAgZmluZFJlZmVyZW5jZUJ5UmVmZXJlbmNlTm9kZShyZWZlcmVuY2VOb2RlKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpLFxuICAgICAgICAgIHJlZmVyZW5jZSA9IGNvbnRleHQuZmluZFJlZmVyZW5jZUJ5UmVmZXJlbmNlTm9kZShyZWZlcmVuY2VOb2RlKTtcblxuICAgIHJldHVybiByZWZlcmVuY2U7XG4gIH1cblxuICBmaW5kQXNzdW1wdGlvbkJ5QXNzdW1wdGlvbk5vZGUoYXNzdW1wdGlvbk5vZGUpIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCksXG4gICAgICAgICAgYXNzdW1wdGlvbiA9IGNvbnRleHQuZmluZEFzc3VtcHRpb25CeUFzc3VtcHRpb25Ob2RlKGFzc3VtcHRpb25Ob2RlKTtcblxuICAgIHJldHVybiBhc3N1bXB0aW9uO1xuICB9XG5cbiAgZmluZFJlZmVyZW5jZUJ5TWV0YXZhcmlhYmxlTm9kZShtZXRhdmFyaWFibGVOb2RlKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpLFxuICAgICAgICAgIHJlZmVyZW5jZSA9IGNvbnRleHQuZmluZFJlZmVyZW5jZUJ5TWV0YXZhcmlhYmxlTm9kZShtZXRhdmFyaWFibGVOb2RlKTtcblxuICAgIHJldHVybiByZWZlcmVuY2U7XG4gIH1cblxuICBmaW5kTWV0YXZhcmlhYmxlQnlNZXRhdmFyaWFibGVOb2RlKG1ldGF2YXJpYWJsZU5vZGUpIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCksXG4gICAgICAgICAgbWV0YXZhcmlhYmxlID0gY29udGV4dC5maW5kTWV0YXZhcmlhYmxlQnlNZXRhdmFyaWFibGVOb2RlKG1ldGF2YXJpYWJsZU5vZGUpO1xuXG4gICAgcmV0dXJuIG1ldGF2YXJpYWJsZTtcbiAgfVxuXG4gIGZpbmRTdWJzdGl0dXRpb25CeVN1YnN0aXR1dGlvbk5vZGUoc3Vic3RpdHV0aW9uTm9kZSkge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKSxcbiAgICAgICAgICBzdWJzdGl0dXRpb24gPSBjb250ZXh0LmZpbmRTdWJzdGl0dXRpb25CeVN1YnN0aXR1dGlvbk5vZGUoc3Vic3RpdHV0aW9uTm9kZSk7XG5cbiAgICByZXR1cm4gc3Vic3RpdHV0aW9uO1xuICB9XG5cbiAgZmluZEluZmVycmVkU3Vic3RpdHV0aW9uQnlWYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpLFxuICAgICAgICAgIGluZmVycmVkU3Vic3RpdHV0aW9uID0gY29udGV4dC5maW5kSW5mZXJyZWRTdWJzdGl0dXRpb25CeVZhcmlhYmxlTm9kZSh2YXJpYWJsZU5vZGUpO1xuXG4gICAgcmV0dXJuIGluZmVycmVkU3Vic3RpdHV0aW9uO1xuICB9XG5cbiAgZmluZEluZmVycmVkU3Vic3RpdHV0aW9uQnlNZXRhdmFyaWFibGVOb2RlKG1ldGF2YXJpYWJsZU5vZGUpIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCksXG4gICAgICAgICAgaW5mZXJyZWRTdWJzdGl0dXRpb24gPSBjb250ZXh0LmZpbmRJbmZlcnJlZFN1YnN0aXR1dGlvbkJ5TWV0YXZhcmlhYmxlTm9kZShtZXRhdmFyaWFibGVOb2RlKTtcblxuICAgIHJldHVybiBpbmZlcnJlZFN1YnN0aXR1dGlvbjtcbiAgfVxuXG4gIGZpbmRDb25zdHJhaW50QnlDb25zdHJhaW50Tm9kZShjb25zdHJhaW50Tm9kZSkge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKSxcbiAgICAgICAgICBjb25zdHJhaW50ID0gY29udGV4dC5maW5kQ29uc3RyYWludEJ5Q29uc3RyYWludE5vZGUoY29uc3RyYWludE5vZGUpO1xuXG4gICAgcmV0dXJuIGNvbnN0cmFpbnQ7XG4gIH1cblxuICBmaW5kVHlwZUJ5VHlwZU5hbWUodHlwZU5hbWUpIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCksXG4gICAgICAgICAgdHlwZSA9IGNvbnRleHQuZmluZFR5cGVCeVR5cGVOYW1lKHR5cGVOYW1lKTtcblxuICAgIHJldHVybiB0eXBlO1xuICB9XG5cbiAgZmluZFR5cGVCeU5vbWluYWxUeXBlTmFtZShub21pbmFsVHlwZU5hbWUpIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCksXG4gICAgICAgICAgdHlwZSA9IGNvbnRleHQuZmluZFR5cGVCeU5vbWluYWxUeXBlTmFtZShub21pbmFsVHlwZU5hbWUpO1xuXG4gICAgcmV0dXJuIHR5cGU7XG4gIH1cblxuICBmaW5kTWV0YVR5cGVCeU1ldGFUeXBlTmFtZShtZXRhVHlwZU5hbWUpIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCksXG4gICAgICAgICAgbWV0YVR5cGUgPSBjb250ZXh0LmZpbmRNZXRhVHlwZUJ5TWV0YVR5cGVOYW1lKG1ldGFUeXBlTmFtZSk7XG5cbiAgICByZXR1cm4gbWV0YVR5cGU7XG4gIH1cblxuICBmaW5kUHJvY2VkdXJlQnlQcm9jZWR1cmVOYW1lKHByb2NlZHVyZU5hbWUpIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCksXG4gICAgICAgICAgcHJvY2VkdXJlID0gY29udGV4dC5maW5kUHJvY2VkdXJlQnlQcm9jZWR1cmVOYW1lKHByb2NlZHVyZU5hbWUpO1xuXG4gICAgcmV0dXJuIHByb2NlZHVyZTtcbiAgfVxuXG4gIGZpbmREZWNsYXJlZFZhcmlhYmxlQnlWYXJpYWJsZUlkZW50aWZpZXIodmFyaWFibGVJZGVudGlmaWVyKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpLFxuICAgICAgICAgIGRlY2xhcmVkVmFyaWFibGUgPSBjb250ZXh0LmZpbmREZWNsYXJlZFZhcmlhYmxlQnlWYXJpYWJsZUlkZW50aWZpZXIodmFyaWFibGVJZGVudGlmaWVyKTtcblxuICAgIHJldHVybiBkZWNsYXJlZFZhcmlhYmxlO1xuICB9XG5cbiAgZmluZERlY2xhcmVkVmFyaWFibGVzQnlWYXJpYWJsZUlkZW50aWZpZXIodmFyaWFibGVJZGVudGlmaWVyKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpLFxuICAgICAgICAgIGRlY2xhcmVkVmFyaWFibGVzID0gY29udGV4dC5maW5kRGVjbGFyZWRWYXJpYWJsZXNCeVZhcmlhYmxlSWRlbnRpZmllcih2YXJpYWJsZUlkZW50aWZpZXIpO1xuXG4gICAgcmV0dXJuIGRlY2xhcmVkVmFyaWFibGVzO1xuICB9XG5cbiAgZmluZERlY2xhcmVkTWV0YXZhcmlhYmxlQnlNZXRhdmFyaWFibGVOYW1lKG1ldGF2YXJpYWJsZU5hbWUpIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCksXG4gICAgICAgICAgZGVjbGFyZWRNZXRhdmFyaWFibGUgPSBjb250ZXh0LmZpbmREZWNsYXJlZE1ldGF2YXJpYWJsZUJ5TWV0YXZhcmlhYmxlTmFtZShtZXRhdmFyaWFibGVOYW1lKTtcblxuICAgIHJldHVybiBkZWNsYXJlZE1ldGF2YXJpYWJsZTtcbiAgfVxuXG4gIGlzVGVybVByZXNlbnRCeVRlcm1Ob2RlKHRlcm1Ob2RlKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpLFxuICAgICAgdGVybVByZXNlbnQgPSBjb250ZXh0LmlzVGVybVByZXNlbnRCeVRlcm1Ob2RlKHRlcm1Ob2RlKTtcblxuICAgIHJldHVybiB0ZXJtUHJlc2VudDtcbiAgfVxuXG4gIGlzTGFiZWxQcmVzZW50QnlMYWJlbE5vZGUobGFiZWxOb2RlKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpLFxuICAgICAgICAgIGxhYmVsUHJlc2VudCA9IGNvbnRleHQuaXNMYWJlbFByZXNlbnRCeUxhYmVsTm9kZShsYWJlbE5vZGUpO1xuXG4gICAgcmV0dXJuIGxhYmVsUHJlc2VudDtcbiAgfVxuXG4gIGlzRnJhbWVQcmVzZW50QnlGcmFtZU5vZGUoZnJhbWVOb2RlKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpLFxuICAgICAgICAgIGZyYW1lUHJlc2VudCA9IGNvbnRleHQuaXNGcmFtZVByZXNlbnRCeUZyYW1lTm9kZShmcmFtZU5vZGUpO1xuXG4gICAgcmV0dXJuIGZyYW1lUHJlc2VudDtcbiAgfVxuXG4gIGlzRXF1YWxpdHlQcmVzZW50QnlFcXVhbGl0eU5vZGUoZXF1YWxpdHlOb2RlKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpLFxuICAgICAgICAgIGVxdWFsaXR5UHJlc2VudCA9IGNvbnRleHQuaXNFcXVhbGl0eVByZXNlbnRCeUVxdWFsaXR5Tm9kZShlcXVhbGl0eU5vZGUpO1xuXG4gICAgcmV0dXJuIGVxdWFsaXR5UHJlc2VudDtcbiAgfVxuXG4gIGlzQXNzZXJ0aW9uUHJlc2VudEJ5QXNzZXJ0aW9uTm9kZShhc3NlcnRpb25Ob2RlKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpLFxuICAgICAgICAgIGFzc2VydGlvblByZXNlbnQgPSBjb250ZXh0LmlzQXNzZXJ0aW9uUHJlc2VudEJ5QXNzZXJ0aW9uTm9kZShhc3NlcnRpb25Ob2RlKTtcblxuICAgIHJldHVybiBhc3NlcnRpb25QcmVzZW50O1xuICB9XG5cbiAgaXNTdGF0ZW1lbnRQcmVzZW50QnlTdGF0ZW1lbnROb2RlKHN0YXRlbWVudE5vZGUpIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCksXG4gICAgICAgICAgc3RhdGVtZW50UHJlc2VudCA9IGNvbnRleHQuaXNTdGF0ZW1lbnRQcmVzZW50QnlTdGF0ZW1lbnROb2RlKHN0YXRlbWVudE5vZGUpO1xuXG4gICAgcmV0dXJuIHN0YXRlbWVudFByZXNlbnQ7XG4gIH1cblxuICBpc01ldGF2YXJpYWJsZVByZXNlbnRCeU1ldGF2YXJpYWJsZU5vZGUobWV0YXZhcmlhYmxlTm9kZSkge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKSxcbiAgICAgICAgICBtZXRhdmFyaWFibGVQcmVzZW50ID0gY29udGV4dC5pc01ldGF2YXJpYWJsZVByZXNlbnRCeU1ldGF2YXJpYWJsZU5vZGUobWV0YXZhcmlhYmxlTm9kZSk7XG5cbiAgICByZXR1cm4gbWV0YXZhcmlhYmxlUHJlc2VudDtcbiAgfVxuXG4gIGlzVHlwZVByZXNlbnRCeU5vbWluYWxUeXBlTmFtZShub21pbmFsVHlwZU5hbWUpIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCksXG4gICAgICAgICAgdHlwZVByZXNlbnQgPSBjb250ZXh0LmlzVHlwZVByZXNlbnRCeU5vbWluYWxUeXBlTmFtZShub21pbmFsVHlwZU5hbWUpO1xuXG4gICAgcmV0dXJuIHR5cGVQcmVzZW50O1xuICB9XG5cbiAgaXNQcm9jZWR1cmVQcmVzZW50QnlQcm9jZWR1cmVOYW1lKHByb2NlZHVyZU5hbWUpIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCksXG4gICAgICAgICAgcHJvY2VkdXJlUHJlc2VudCA9IGNvbnRleHQuaXNQcm9jZWR1cmVQcmVzZW50QnlQcm9jZWR1cmVOYW1lKHByb2NlZHVyZU5hbWUpO1xuXG4gICAgcmV0dXJuIHByb2NlZHVyZVByZXNlbnQ7XG4gIH1cblxuICBpc0RlY2xhcmVkTWV0YXZhcmlhYmxlUHJlc2VudEJ5TWV0YXZhcmlhYmxlTmFtZShtZXRhdmFyaWFibGVOYW1lKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpLFxuICAgICAgICAgIG1ldGF2YXJpYWJsZVByZXNlbnQgPSBjb250ZXh0LmlzRGVjbGFyZWRNZXRhdmFyaWFibGVQcmVzZW50QnlNZXRhdmFyaWFibGVOYW1lKG1ldGF2YXJpYWJsZU5hbWUpO1xuXG4gICAgcmV0dXJuIG1ldGF2YXJpYWJsZVByZXNlbnQ7XG4gIH1cblxuICBpc1JlZmVyZW5jZVByZXNlbnRCeU1ldGF2YXJpYWJsZU5vZGUobWV0dnZhcmlhYmxlTm9kZSkge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKSxcbiAgICAgICAgICByZWZlcmVuY2VQcmVzZW50ID0gY29udGV4dC5pc1JlZmVyZW5jZVByZXNlbnRCeU1ldGF2YXJpYWJsZU5vZGUobWV0dnZhcmlhYmxlTm9kZSk7XG5cbiAgICByZXR1cm4gcmVmZXJlbmNlUHJlc2VudDtcbiAgfVxuXG4gIGlzSW5mZXJyZWRTdWJzdGl0dXRpb25QcmVzZW50QnlNZXRhdmFyaWFibGVOb2RlKG1ldGF2YXJpYWJsZU5vZGUpIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCksXG4gICAgICAgICAgaW5mZXJyZWRTdWJzdGl0dXRpb25QcmVzZW50ID0gY29udGV4dC5pc0luZmVycmVkU3Vic3RpdHV0aW9uUHJlc2VudEJ5TWV0YXZhcmlhYmxlTm9kZShtZXRhdmFyaWFibGVOb2RlKTtcblxuICAgIHJldHVybiBpbmZlcnJlZFN1YnN0aXR1dGlvblByZXNlbnQ7XG4gIH1cblxuICBpc0luZmVycmVkU3Vic3RpdHV0aW9uUHJlc2VudEJ5TWV0YXZhcmlhYmxlTm9kZUFuZFN1YnN0aXR1dGlvbk5vZGUobWV0YXZhcmlhYmxlTm9kZSwgc3Vic3RpdHV0aW9uTm9kZSkge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKSxcbiAgICAgICAgICBpbmZlcnJlZFN1YnN0aXR1dGlvblByZXNlbnQgPSBjb250ZXh0LmlzSW5mZXJyZWRTdWJzdGl0dXRpb25QcmVzZW50QnlNZXRhdmFyaWFibGVOb2RlQW5kU3Vic3RpdHV0aW9uTm9kZShtZXRhdmFyaWFibGVOb2RlLCBzdWJzdGl0dXRpb25Ob2RlKTtcblxuICAgIHJldHVybiBpbmZlcnJlZFN1YnN0aXR1dGlvblByZXNlbnQ7XG4gIH1cblxuICBpc01ldGFMZXZlbCgpIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCksXG4gICAgICAgICAgbWV0YUxldmVsID0gY29udGV4dC5pc01ldGFMZXZlbCgpO1xuXG4gICAgcmV0dXJuIG1ldGFMZXZlbDtcbiAgfVxuXG4gIGFkZFRlcm1zKHRlcm1zKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpO1xuXG4gICAgY29udGV4dC5hZGRUZXJtcyh0ZXJtcyk7XG4gIH1cblxuICBhZGRBc3NlcnRpb25zKGFzc2VydGlvbnMpIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCk7XG5cbiAgICBjb250ZXh0LmFkZEFzc2VydGlvbnMoYXNzZXJ0aW9ucyk7XG4gIH1cblxuICBhZGRNZXRhdmFyaWFibGVzKG1ldGF2YXJpYWJsZXMpIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCk7XG5cbiAgICBjb250ZXh0LmFkZE1ldGF2YXJpYWJsZXMobWV0YXZhcmlhYmxlcyk7XG4gIH1cblxuICBhZGRJbmZlcnJlZFN1YnN0aXR1dGlvbnMoaW5mZXJyZWRTdWJzdGl0dXRpb25zKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpO1xuXG4gICAgY29udGV4dC5hZGRJbmZlcnJlZFN1YnN0aXR1dGlvbnMoaW5mZXJyZWRTdWJzdGl0dXRpb25zKTtcbiAgfVxuXG4gIGFkZFRlcm0odGVybSkge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKTtcblxuICAgIGNvbnRleHQuYWRkVGVybSh0ZXJtKTtcbiAgfVxuXG4gIGFkZEZyYW1lKGZyYW1lKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpO1xuXG4gICAgY29udGV4dC5hZGRGcmFtZShmcmFtZSk7XG4gIH1cblxuICBhZGRFcXVhbGl0eShlcXVhbGl0eSkge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKTtcblxuICAgIGNvbnRleHQuYWRkRXF1YWxpdHkoZXF1YWxpdHkpO1xuICB9XG5cbiAgYWRkQXNzZXJ0aW9uKGFzc2VydGlvbikge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKTtcblxuICAgIGNvbnRleHQuYWRkQXNzZXJ0aW9uKGFzc2VydGlvbik7XG4gIH1cblxuICBhZGRTdGF0ZW1lbnQoc3RhdGVtZW50KSB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpO1xuXG4gICAgY29udGV4dC5hZGRTdGF0ZW1lbnQoc3RhdGVtZW50KTtcbiAgfVxuXG4gIGFkZFNpZ25hdHVyZShzaWduYXR1cmUpIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCk7XG5cbiAgICBjb250ZXh0LmFkZFNpZ25hdHVyZShzaWduYXR1cmUpO1xuICB9XG5cbiAgYWRkUmVmZXJlbmNlKHJlZmVyZW5jZSkge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKTtcblxuICAgIGNvbnRleHQuYWRkUmVmZXJlbmNlKHJlZmVyZW5jZSk7XG4gIH1cblxuICBhZGRBc3N1bXB0aW9uKGFzc3VtcHRpb24pIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCk7XG5cbiAgICBjb250ZXh0LmFkZEFzc3VtcHRpb24oYXNzdW1wdGlvbik7XG4gIH1cblxuICBhZGRBc3NpZ25tZW50KGFzc2lnbm1lbnQpIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCk7XG5cbiAgICBjb250ZXh0LmFkZEFzc2lnbm1lbnQoYXNzaWdubWVudCk7XG4gIH1cblxuICBhZGRNZXRhdmFyaWFibGUobWV0YXZhcmlhYmxlKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpO1xuXG4gICAgY29udGV4dC5hZGRNZXRhdmFyaWFibGUobWV0YXZhcmlhYmxlKTtcbiAgfVxuXG4gIGFkZFN1YnN0aXR1dGlvbihzdWJzdGl0dXRpb24pIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCk7XG5cbiAgICBjb250ZXh0LmFkZFN1YnN0aXR1dGlvbihzdWJzdGl0dXRpb24pO1xuICB9XG5cbiAgYWRkRGVjbGFyZWRWYXJpYWJsZShkZWNsYXJlZFZhcmlhYmxlKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpO1xuXG4gICAgY29udGV4dC5hZGREZWNsYXJlZFZhcmlhYmxlKGRlY2xhcmVkVmFyaWFibGUpO1xuICB9XG5cbiAgYWRkRGVjbGFyZWRNZXRhdmFyaWFibGUoZGVjbGFyZWRNZXRhdmFyaWFibGUpIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCk7XG5cbiAgICBjb250ZXh0LmFkZERlY2xhcmVkTWV0YXZhcmlhYmxlKGRlY2xhcmVkTWV0YXZhcmlhYmxlKTtcbiAgfVxuXG4gIGFkZENvbnN0cmFpbnQoY29uc3RyYWludCkge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKTtcblxuICAgIGNvbnRleHQuYWRkQ29uc3RyYWludChjb25zdHJhaW50KTtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIkNvbnRleHQiLCJDb250ZXh0QmFzZSIsImdldExleGVyIiwiY29udGV4dCIsImdldENvbnRleHQiLCJsZXhlciIsImdldFBhcnNlciIsInBhcnNlciIsImdldEZpbGVQYXRoIiwiZmlsZVBhdGgiLCJnZXRUb2tlbnMiLCJ0b2tlbnMiLCJzZXRUb2tlbnMiLCJnZXRUZXJtcyIsInRlcm1zIiwiZ2V0RnJhbWVzIiwiZnJhbWVzIiwiZ2V0RXF1YWxpdGllcyIsImVxdWFsaXRpZXMiLCJnZXRBc3NlcnRpb25zIiwiYXNzZXJ0aW9ucyIsImdldFN0YXRlbWVudHMiLCJzdGF0ZW1lbnRzIiwiZ2V0U2lnbmF0dXJlcyIsInNpZ25hdHVyZXMiLCJnZXRSZWZlcmVuY2VzIiwicmVmZXJlbmNlcyIsImdldEFzc3VtcHRpb25zIiwiYXNzdW1wdGlvbnMiLCJnZXRNZXRhdmFyaWFibGVzIiwibWV0YXZhcmlhYmxlcyIsImdldFN1YnN0aXR1dGlvbnMiLCJzdWJzdGl0dXRpb25zIiwiZ2V0SW5mZXJyZWRTdWJzdGl0dXRpb25zIiwiaW5mZXJyZWRTdWJzdGl0dXRpb25zIiwiZ2V0R2VuZXJhdG9ycyIsImluY2x1ZGVSZWxlYXNlIiwiZ2VuZXJhdG9ycyIsImdldFByb2NlZHVyZXMiLCJwcm9jZWR1cmVzIiwiZ2V0Q29tYmluYXRvcnMiLCJjb21iaW5hdG9ycyIsImdldENvbnN0cnVjdG9ycyIsImNvbnN0cnVjdG9ycyIsImdldENsYWltIiwiY2xhaW0iLCJnZXRTY2hlbWFzIiwic2NoZW1hcyIsImdldFZhcmlhYmxlcyIsIm5lc3RlZCIsInZhcmlhYmxlcyIsImdldFN0ZXBzIiwic3RlcHMiLCJnZXRGYWN0cyIsImZhY3RzIiwiZ2V0RXF1aXZhbGVuY2VzIiwiZXF1aXZhbGVuY2VzIiwiZ2V0RGVjbGFyZWRWYXJpYWJsZXMiLCJkZWNsYXJlZFZhcmlhYmxlcyIsImdldERlY2xhcmVkTWV0YXZhcmlhYmxlcyIsImRlY2xhcmVkTWV0YXZhcmlhYmxlcyIsImdldEZhY3RPclN1YnByb29mcyIsImZhY3RPclN1YnByb29mcyIsImdldFByb3BlcnRpZXMiLCJwcm9wZXJ0aWVzIiwidHlwZXMiLCJnZXRUeXBlcyIsImZvckVhY2giLCJ0eXBlIiwiZmluZE1ldGF2YXJpYWJsZSIsIm1ldGF2YXJpYWJsZSIsImNoaWxkQ29udGV4dCIsInBhcmVudENvbnRleHQiLCJmaW5kUnVsZUJ5UmVmZXJlbmNlIiwicmVmZXJlbmNlIiwicnVsZSIsImZpbmRBeGlvbUJ5UmVmZXJlbmNlIiwiYXhpb20iLCJmaW5kQ2xhaW1CeVJlZmVyZW5jZSIsImZpbmRUZXJtQnlUZXJtTm9kZSIsInRlcm1Ob2RlIiwidGVybSIsImZpbmRGcmFtZUJ5RnJhbWVOb2RlIiwiZnJhbWVOb2RlIiwiZnJhbWUiLCJmaW5kRXF1YWxpdHlCeUVxdWFsaXR5Tm9kZSIsImVxdWFsaXR5Tm9kZSIsImVxdWFsaXR5IiwiZmluZEFzc2VydGlvbkJ5QXNzZXJ0aW9uTm9kZSIsImFzc2VydGlvbk5vZGUiLCJhc3NlcnRpb24iLCJmaW5kU3RhdGVtZW50QnlTdGF0ZW1lbnROb2RlIiwic3RhdGVtZW50Tm9kZSIsInN0YXRlbWVudCIsImZpbmRSZWZlcmVuY2VCeVJlZmVyZW5jZU5vZGUiLCJyZWZlcmVuY2VOb2RlIiwiZmluZEFzc3VtcHRpb25CeUFzc3VtcHRpb25Ob2RlIiwiYXNzdW1wdGlvbk5vZGUiLCJhc3N1bXB0aW9uIiwiZmluZFJlZmVyZW5jZUJ5TWV0YXZhcmlhYmxlTm9kZSIsIm1ldGF2YXJpYWJsZU5vZGUiLCJmaW5kTWV0YXZhcmlhYmxlQnlNZXRhdmFyaWFibGVOb2RlIiwiZmluZFN1YnN0aXR1dGlvbkJ5U3Vic3RpdHV0aW9uTm9kZSIsInN1YnN0aXR1dGlvbk5vZGUiLCJzdWJzdGl0dXRpb24iLCJmaW5kSW5mZXJyZWRTdWJzdGl0dXRpb25CeVZhcmlhYmxlTm9kZSIsInZhcmlhYmxlTm9kZSIsImluZmVycmVkU3Vic3RpdHV0aW9uIiwiZmluZEluZmVycmVkU3Vic3RpdHV0aW9uQnlNZXRhdmFyaWFibGVOb2RlIiwiZmluZENvbnN0cmFpbnRCeUNvbnN0cmFpbnROb2RlIiwiY29uc3RyYWludE5vZGUiLCJjb25zdHJhaW50IiwiZmluZFR5cGVCeVR5cGVOYW1lIiwidHlwZU5hbWUiLCJmaW5kVHlwZUJ5Tm9taW5hbFR5cGVOYW1lIiwibm9taW5hbFR5cGVOYW1lIiwiZmluZE1ldGFUeXBlQnlNZXRhVHlwZU5hbWUiLCJtZXRhVHlwZU5hbWUiLCJtZXRhVHlwZSIsImZpbmRQcm9jZWR1cmVCeVByb2NlZHVyZU5hbWUiLCJwcm9jZWR1cmVOYW1lIiwicHJvY2VkdXJlIiwiZmluZERlY2xhcmVkVmFyaWFibGVCeVZhcmlhYmxlSWRlbnRpZmllciIsInZhcmlhYmxlSWRlbnRpZmllciIsImRlY2xhcmVkVmFyaWFibGUiLCJmaW5kRGVjbGFyZWRWYXJpYWJsZXNCeVZhcmlhYmxlSWRlbnRpZmllciIsImZpbmREZWNsYXJlZE1ldGF2YXJpYWJsZUJ5TWV0YXZhcmlhYmxlTmFtZSIsIm1ldGF2YXJpYWJsZU5hbWUiLCJkZWNsYXJlZE1ldGF2YXJpYWJsZSIsImlzVGVybVByZXNlbnRCeVRlcm1Ob2RlIiwidGVybVByZXNlbnQiLCJpc0xhYmVsUHJlc2VudEJ5TGFiZWxOb2RlIiwibGFiZWxOb2RlIiwibGFiZWxQcmVzZW50IiwiaXNGcmFtZVByZXNlbnRCeUZyYW1lTm9kZSIsImZyYW1lUHJlc2VudCIsImlzRXF1YWxpdHlQcmVzZW50QnlFcXVhbGl0eU5vZGUiLCJlcXVhbGl0eVByZXNlbnQiLCJpc0Fzc2VydGlvblByZXNlbnRCeUFzc2VydGlvbk5vZGUiLCJhc3NlcnRpb25QcmVzZW50IiwiaXNTdGF0ZW1lbnRQcmVzZW50QnlTdGF0ZW1lbnROb2RlIiwic3RhdGVtZW50UHJlc2VudCIsImlzTWV0YXZhcmlhYmxlUHJlc2VudEJ5TWV0YXZhcmlhYmxlTm9kZSIsIm1ldGF2YXJpYWJsZVByZXNlbnQiLCJpc1R5cGVQcmVzZW50QnlOb21pbmFsVHlwZU5hbWUiLCJ0eXBlUHJlc2VudCIsImlzUHJvY2VkdXJlUHJlc2VudEJ5UHJvY2VkdXJlTmFtZSIsInByb2NlZHVyZVByZXNlbnQiLCJpc0RlY2xhcmVkTWV0YXZhcmlhYmxlUHJlc2VudEJ5TWV0YXZhcmlhYmxlTmFtZSIsImlzUmVmZXJlbmNlUHJlc2VudEJ5TWV0YXZhcmlhYmxlTm9kZSIsIm1ldHZ2YXJpYWJsZU5vZGUiLCJyZWZlcmVuY2VQcmVzZW50IiwiaXNJbmZlcnJlZFN1YnN0aXR1dGlvblByZXNlbnRCeU1ldGF2YXJpYWJsZU5vZGUiLCJpbmZlcnJlZFN1YnN0aXR1dGlvblByZXNlbnQiLCJpc0luZmVycmVkU3Vic3RpdHV0aW9uUHJlc2VudEJ5TWV0YXZhcmlhYmxlTm9kZUFuZFN1YnN0aXR1dGlvbk5vZGUiLCJpc01ldGFMZXZlbCIsIm1ldGFMZXZlbCIsImFkZFRlcm1zIiwiYWRkQXNzZXJ0aW9ucyIsImFkZE1ldGF2YXJpYWJsZXMiLCJhZGRJbmZlcnJlZFN1YnN0aXR1dGlvbnMiLCJhZGRUZXJtIiwiYWRkRnJhbWUiLCJhZGRFcXVhbGl0eSIsImFkZEFzc2VydGlvbiIsImFkZFN0YXRlbWVudCIsImFkZFNpZ25hdHVyZSIsInNpZ25hdHVyZSIsImFkZFJlZmVyZW5jZSIsImFkZEFzc3VtcHRpb24iLCJhZGRBc3NpZ25tZW50IiwiYXNzaWdubWVudCIsImFkZE1ldGF2YXJpYWJsZSIsImFkZFN1YnN0aXR1dGlvbiIsImFkZERlY2xhcmVkVmFyaWFibGUiLCJhZGREZWNsYXJlZE1ldGF2YXJpYWJsZSIsImFkZENvbnN0cmFpbnQiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQUlBOzs7ZUFBcUJBOzs7Z0NBRmtCO0FBRXhCLE1BQU1BLGdCQUFnQkMsdUJBQVc7SUFDOUNDLFdBQVc7UUFDVCxNQUFNQyxVQUFVLElBQUksQ0FBQ0MsVUFBVSxJQUN6QkMsUUFBUUYsUUFBUUQsUUFBUTtRQUU5QixPQUFPRztJQUNUO0lBRUFDLFlBQVk7UUFDVixNQUFNSCxVQUFVLElBQUksQ0FBQ0MsVUFBVSxJQUN6QkcsU0FBU0osUUFBUUcsU0FBUztRQUVoQyxPQUFPQztJQUNUO0lBRUFDLGNBQWM7UUFDWixNQUFNTCxVQUFVLElBQUksQ0FBQ0MsVUFBVSxJQUN6QkssV0FB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
|
|
@@ -97,7 +97,7 @@ const _default = (0, _elements.define)(class SchemaAssertion extends _assertion.
|
|
|
97
97
|
}
|
|
98
98
|
validate(state, context, continuation) {
|
|
99
99
|
let validates;
|
|
100
|
-
const
|
|
100
|
+
const schameAssertionString = this.getString(); ///
|
|
101
101
|
context.trace(`Validating the '${schameAssertionString}' schame assertion...`);
|
|
102
102
|
let assertion;
|
|
103
103
|
assertion = this.findAssertion(context);
|
|
@@ -113,16 +113,14 @@ const _default = (0, _elements.define)(class SchemaAssertion extends _assertion.
|
|
|
113
113
|
validateReference
|
|
114
114
|
], state, context, (state, _)=>{
|
|
115
115
|
let validates;
|
|
116
|
-
const
|
|
116
|
+
const schameAssertion = assertion; ///
|
|
117
117
|
validates = continuation(schameAssertion, context);
|
|
118
118
|
return validates;
|
|
119
119
|
});
|
|
120
120
|
if (validates) {
|
|
121
|
-
context = specificContext; ///
|
|
122
121
|
context.addAssertion(assertion);
|
|
123
122
|
}
|
|
124
123
|
}
|
|
125
|
-
context = specificContext; ///
|
|
126
124
|
if (validates) {
|
|
127
125
|
context.debug(`...validated the '${schameAssertionString}' schame assertion.`);
|
|
128
126
|
}
|
|
@@ -167,4 +165,4 @@ const _default = (0, _elements.define)(class SchemaAssertion extends _assertion.
|
|
|
167
165
|
static name = "SchemaAssertion";
|
|
168
166
|
});
|
|
169
167
|
|
|
170
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L2Fzc2VydGlvbi9zY2hlbWEuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGNvbnRpbnVhdGlvblV0aWxpdGllcyB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcblxuaW1wb3J0IEFzc2VydGlvbiBmcm9tIFwiLi4vYXNzZXJ0aW9uXCI7XG5cbmltcG9ydCBlbGVtZW50cyBmcm9tIFwiLi4vLi4vZWxlbWVudHNcIjtcblxuaW1wb3J0IHsgZGVmaW5lIH0gZnJvbSBcIi4uLy4uL2VsZW1lbnRzXCI7XG5pbXBvcnQgeyBkZWNsYXJlIH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9zdGF0ZVwiO1xuXG5jb25zdCB7IHNvbWUgfSA9IGNvbnRpbnVhdGlvblV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIFNjaGVtYUFzc2VydGlvbiBleHRlbmRzIEFzc2VydGlvbiB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgZnJhbWUsIHJlZmVyZW5jZSkge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLmZyYW1lID0gZnJhbWU7XG4gICAgdGhpcy5yZWZlcmVuY2UgPSByZWZlcmVuY2U7XG4gIH1cblxuICBnZXRGcmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5mcmFtZTtcbiAgfVxuXG4gIGdldFJlZmVyZW5jZSgpIHtcbiAgICByZXR1cm4gdGhpcy5yZWZlcmVuY2U7XG4gIH1cblxuICBnZXRTY2hlbWFBc3NlcnRpb25Ob2RlKCkge1xuICAgIGNvbnN0IG5vZGUgPSB0aGlzLmdldE5vZGUoKSxcbiAgICAgICAgICBzY2hlbWFBc3NlcnRpb25Ob2RlID0gbm9kZTsgIC8vL1xuXG4gICAgcmV0dXJuIHNjaGVtYUFzc2VydGlvbk5vZGU7XG4gIH1cblxuICBnZXRBc3N1bXB0aW9ucygpIHsgcmV0dXJuIHRoaXMuZnJhbWUuZ2V0QXNzdW1wdGlvbnMoKTsgfVxuXG4gIGdldE1ldGF2YXJpYWJsZSgpIHsgcmV0dXJuIHRoaXMuZnJhbWUuZ2V0TWV0YXZhcmlhYmxlKCk7IH1cblxuICBnZXRJbXBsaWNpdEFzc3VtcHRpb25zKGNvbnRleHQpIHtcbiAgICBjb25zdCBpbXBsaWNpdEFzc3VtcHRpb25zID0gW10sXG4gICAgICAgICAgbWV0YXZhcmlhYmxlID0gdGhpcy5nZXRNZXRhdmFyaWFibGUoKTtcblxuICAgIGlmIChtZXRhdmFyaWFibGUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHsgSW1wbGljaXRBc3N1bXB0aW9uIH0gPSBlbGVtZW50cyxcbiAgICAgICAgICAgIGZhY3RzID0gY29udGV4dC5nZXRGYWN0cygpO1xuXG4gICAgICBmYWN0cy5mb3JFYWNoKChmYWN0KSA9PiB7XG4gICAgICAgIGNvbnN0IHN0YXRlbWVudCA9IGZhY3QuZ2V0U3RhdGVtZW50KCksXG4gICAgICAgICAgICAgIGltcGxpY2l0QXNzdW1wdGlvbiA9IEltcGxpY2l0QXNzdW1wdGlvbi5mcm9tU3RhdGVtZW50KHN0YXRlbWVudCwgY29udGV4dCk7XG5cbiAgICAgICAgZGVjbGFyZSgoc3RhdGUpID0+IHtcbiAgICAgICAgICBpbXBsaWNpdEFzc3VtcHRpb24udmFsaWRhdGUoc3RhdGUsIGNvbnRleHQsIChpbXBsaWNpdEFzc3VtcHRpb24sIGNvbnRleHQpID0+IHRydWUpICAvLy9cbiAgICAgICAgfSk7XG5cbiAgICAgICAgaW1wbGljaXRBc3N1bXB0aW9ucy5wdXNoKGltcGxpY2l0QXNzdW1wdGlvbik7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gaW1wbGljaXRBc3N1bXB0aW9ucztcbiAgfVxuXG4gIHZhbGlkYXRlKHN0YXRlLCBjb250ZXh0LCBjb250aW51YXRpb24pIHtcbiAgICBsZXQgdmFsaWRhdGVzO1xuXG4gICAgY29uc3Qgc3BlY2lmaWNDb250ZXh0ID0gY29udGV4dCwgIC8vL1xuICAgICAgICAgIHNjaGFtZUFzc2VydGlvblN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7ICAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFZhbGlkYXRpbmcgdGhlICcke3NjaGFtZUFzc2VydGlvblN0cmluZ30nIHNjaGFtZSBhc3NlcnRpb24uLi5gKTtcblxuICAgIGxldCBhc3NlcnRpb247XG5cbiAgICBhc3NlcnRpb24gPSB0aGlzLmZpbmRBc3NlcnRpb24oY29udGV4dCk7XG5cbiAgICBpZiAoYXNzZXJ0aW9uICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBzY2hhbWVBc3NlcnRpb24gPSBhc3NlcnRpb247ICAvLy9cblxuICAgICAgY29udGV4dC5kZWJ1ZyhgVGhlICcke3NjaGFtZUFzc2VydGlvblN0cmluZ30nIHNjaGFtZSBhc3NlcnRpb24gaXMgYWxyZWFkeSBwcmVzZW50LmApO1xuXG4gICAgICB2YWxpZGF0ZXMgPSBjb250aW51YXRpb24oc2NoYW1lQXNzZXJ0aW9uLCBjb250ZXh0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgYXNzZXJ0aW9uID0gdGhpczsgIC8vL1xuXG4gICAgICBjb25zdCB2YWxpZGF0ZUZyYW1lID0gdGhpcy52YWxpZGF0ZUZyYW1lLmJpbmQodGhpcyksXG4gICAgICAgICAgICB2YWxpZGF0ZVJlZmVyZW5jZSA9IHRoaXMudmFsaWRhdGVSZWZlcmVuY2UuYmluZCh0aGlzKTtcblxuICAgICAgdmFsaWRhdGVzID0gYWxsKFtcbiAgICAgICAgdmFsaWRhdGVGcmFtZSxcbiAgICAgICAgdmFsaWRhdGVSZWZlcmVuY2VcbiAgICAgIF0sIHN0YXRlLCBjb250ZXh0LCAoc3RhdGUsIF8gKSA9PiB7XG4gICAgICAgIGxldCB2YWxpZGF0ZXM7XG5cbiAgICAgICAgY29uc3QgY29udGV4dCA9IHNwZWNpZmljQ29udGV4dCwgIC8vL1xuICAgICAgICAgICAgICBzY2hhbWVBc3NlcnRpb24gPSBhc3NlcnRpb247ICAvLy9cblxuICAgICAgICB2YWxpZGF0ZXMgPSBjb250aW51YXRpb24oc2NoYW1lQXNzZXJ0aW9uLCBjb250ZXh0KTtcblxuICAgICAgICByZXR1cm4gdmFsaWRhdGVzO1xuICAgICAgfSk7XG5cbiAgICAgIGlmICh2YWxpZGF0ZXMpIHtcbiAgICAgICAgY29udGV4dCA9IHNwZWNpZmljQ29udGV4dDsgIC8vL1xuXG4gICAgICAgIGNvbnRleHQuYWRkQXNzZXJ0aW9uKGFzc2VydGlvbik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29udGV4dCA9IHNwZWNpZmljQ29udGV4dDsgIC8vL1xuXG4gICAgaWYgKHZhbGlkYXRlcykge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmFsaWRhdGVkIHRoZSAnJHtzY2hhbWVBc3NlcnRpb25TdHJpbmd9JyBzY2hhbWUgYXNzZXJ0aW9uLmApO1xuICAgIH1cblxuICAgIHJldHVybiB2YWxpZGF0ZXM7XG4gIH1cblxuICB2YWxpZGF0ZUZyYW1lKHN0YXRlLCBjb250ZXh0LCBjb250aW51YXRpb24pIHtcbiAgICBsZXQgZnJhbWVWYWxpZGF0ZXM7XG5cbiAgICBjb25zdCBzY2hhbWVBc3NlcnRpb25TdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWYWxpZGF0aW5nIHRoZSAnJHtzY2hhbWVBc3NlcnRpb25TdHJpbmd9JyBzY2hhbWUgYXNzZXJ0aW9uJ3MgZnJhbWUuLi5gKTtcblxuICAgIGZyYW1lVmFsaWRhdGVzID0gdGhpcy5mcmFtZS52YWxpZGF0ZShzdGF0ZSwgY29udGV4dCwgKGZyYW1lLCBjb250ZXh0KSA9PiB7XG4gICAgICBsZXQgdmFsaWRhdGVzO1xuXG4gICAgICB0aGlzLmZyYW1lID0gZnJhbWU7XG5cbiAgICAgIHZhbGlkYXRlcyA9IGNvbnRpbnVhdGlvbihzdGF0ZSwgY29udGV4dCk7XG5cbiAgICAgIHJldHVybiB2YWxpZGF0ZXM7XG4gICAgfSk7XG5cbiAgICBpZiAoZnJhbWVWYWxpZGF0ZXMpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZhbGlkYXRlZCB0aGUgJyR7c2NoYW1lQXNzZXJ0aW9uU3RyaW5nfScgc2NoYW1lIGFzc2VydGlvbidzIGZyYW1lLmApO1xuICAgIH1cblxuICAgIHJldHVybiBmcmFtZVZhbGlkYXRlcztcbiAgfVxuXG4gIHZhbGlkYXRlUmVmZXJlbmNlKHN0YXRlLCBjb250ZXh0LCBjb250aW51YXRpb24pIHtcbiAgICBsZXQgcmVmZXJlbmNlVmFsaWRhdGVzO1xuXG4gICAgY29uc3Qgc2NoYW1lQXNzZXJ0aW9uU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgIC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgVmFsaWRhdGluZyB0aGUgJyR7c2NoYW1lQXNzZXJ0aW9uU3RyaW5nfScgc2NoYW1lIGFzc2VydGlvbidzIHJlZmVyZW5jZS4uLmApO1xuXG4gICAgcmVmZXJlbmNlVmFsaWRhdGVzID0gdGhpcy5yZWZlcmVuY2UudmFsaWRhdGUoc3RhdGUsIGNvbnRleHQsIChyZWZlcmVuY2UsIGNvbnRleHQpID0+IHtcbiAgICAgIGxldCB2YWxpZGF0ZXM7XG5cbiAgICAgIHRoaXMucmVmZXJlbmNlID0gcmVmZXJlbmNlO1xuXG4gICAgICB2YWxpZGF0ZXMgPSBjb250aW51YXRpb24oc3RhdGUsIGNvbnRleHQpO1xuXG4gICAgICByZXR1cm4gdmFsaWRhdGVzO1xuICAgIH0pO1xuXG4gICAgaWYgKHJlZmVyZW5jZVZhbGlkYXRlcykge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmFsaWRhdGVkIHRoZSAnJHtzY2hhbWVBc3NlcnRpb25TdHJpbmd9JyBzY2hhbWUgYXNzZXJ0aW9uJ3MgcmVmZXJlbmNlLmApO1xuICAgIH1cblxuICAgIHJldHVybiByZWZlcmVuY2VWYWxpZGF0ZXM7XG4gIH1cblxuICB1bmlmeVN0ZXAoc3RlcCwgY29udGV4dCwgY29udGludWF0aW9uKSB7XG4gICAgY29uc3Qgc2NoZW1hcyA9IGNvbnRleHQuZ2V0U2NoZW1hcygpLFxuICAgICAgICAgIHN0YXRlbWVudCA9IHN0ZXAuZ2V0U3RhdGVtZW50KCksXG4gICAgICAgICAgc2NoZW1hQXNzZXJ0aW9uID0gdGhpczsgLy8vXG5cbiAgICByZXR1cm4gc29tZShzY2hlbWFzLCAoc2NoZW1hLCBjb250aW51YXRpb24pID0+IHtcbiAgICAgIHJldHVybiBzY2hlbWEudW5pZnlTdGF0ZW1lbnRBbmRTY2hlbWFBc3NlcnRpb24oc3RhdGVtZW50LCBzY2hlbWFBc3NlcnRpb24sIGNvbnRleHQsIGNvbnRpbnVhdGlvbik7XG4gICAgfSwgY29udGludWF0aW9uKTtcbiAgfVxuXG4gIHN0YXRpYyBuYW1lID0gXCJTY2hlbWFBc3NlcnRpb25cIjtcbn0pO1xuIl0sIm5hbWVzIjpbInNvbWUiLCJjb250aW51YXRpb25VdGlsaXRpZXMiLCJkZWZpbmUiLCJTY2hlbWFBc3NlcnRpb24iLCJBc3NlcnRpb24iLCJjb250ZXh0Iiwic3RyaW5nIiwibm9kZSIsImJyZWFrUG9pbnQiLCJmcmFtZSIsInJlZmVyZW5jZSIsImdldEZyYW1lIiwiZ2V0UmVmZXJlbmNlIiwiZ2V0U2NoZW1hQXNzZXJ0aW9uTm9kZSIsImdldE5vZGUiLCJzY2hlbWFBc3NlcnRpb25Ob2RlIiwiZ2V0QXNzdW1wdGlvbnMiLCJnZXRNZXRhdmFyaWFibGUiLCJnZXRJbXBsaWNpdEFzc3VtcHRpb25zIiwiaW1wbGljaXRBc3N1bXB0aW9ucyIsIm1ldGF2YXJpYWJsZSIsIkltcGxpY2l0QXNzdW1wdGlvbiIsImVsZW1lbnRzIiwiZmFjdHMiLCJnZXRGYWN0cyIsImZvckVhY2giLCJmYWN0Iiwic3RhdGVtZW50IiwiZ2V0U3RhdGVtZW50IiwiaW1wbGljaXRBc3N1bXB0aW9uIiwiZnJvbVN0YXRlbWVudCIsImRlY2xhcmUiLCJzdGF0ZSIsInZhbGlkYXRlIiwicHVzaCIsImNvbnRpbnVhdGlvbiIsInZhbGlkYXRlcyIsInNwZWNpZmljQ29udGV4dCIsInNjaGFtZUFzc2VydGlvblN0cmluZyIsImdldFN0cmluZyIsInRyYWNlIiwiYXNzZXJ0aW9uIiwiZmluZEFzc2VydGlvbiIsInNjaGFtZUFzc2VydGlvbiIsImRlYnVnIiwidmFsaWRhdGVGcmFtZSIsImJpbmQiLCJ2YWxpZGF0ZVJlZmVyZW5jZSIsImFsbCIsIl8iLCJhZGRBc3NlcnRpb24iLCJmcmFtZVZhbGlkYXRlcyIsInJlZmVyZW5jZVZhbGlkYXRlcyIsInVuaWZ5U3RlcCIsInN0ZXAiLCJzY2hlbWFzIiwiZ2V0U2NoZW1hcyIsInNjaGVtYUFzc2VydGlvbiIsInNjaGVtYSIsInVuaWZ5U3RhdGVtZW50QW5kU2NoZW1hQXNzZXJ0aW9uIiwibmFtZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBYUE7OztlQUFBOzs7Z0NBWHNDO2tFQUVoQjtrRUFFRDt1QkFHRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFeEIsTUFBTSxFQUFFQSxJQUFJLEVBQUUsR0FBR0MscUNBQXFCO01BRXRDLFdBQWVDLElBQUFBLGdCQUFNLEVBQUMsTUFBTUMsd0JBQXdCQyxrQkFBUztJQUMzRCxZQUFZQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxVQUFVLEVBQUVDLEtBQUssRUFBRUMsU0FBUyxDQUFFO1FBQy9ELEtBQUssQ0FBQ0wsU0FBU0MsUUFBUUMsTUFBTUM7UUFFN0IsSUFBSSxDQUFDQyxLQUFLLEdBQUdBO1FBQ2IsSUFBSSxDQUFDQyxTQUFTLEdBQUdBO0lBQ25CO0lBRUFDLFdBQVc7UUFDVCxPQUFPLElBQUksQ0FBQ0YsS0FBSztJQUNuQjtJQUVBRyxlQUFlO1FBQ2IsT0FBTyxJQUFJLENBQUNGLFNBQVM7SUFDdkI7SUFFQUcseUJBQXlCO1FBQ3ZCLE1BQU1OLE9BQU8sSUFBSSxDQUFDTyxPQUFPLElBQ25CQyxzQkFBc0JSLE1BQU8sR0FBRztRQUV0QyxPQUFPUTtJQUNUO0lBRUFDLGlCQUFpQjtRQUFFLE9BQU8sSUFBSSxDQUFDUCxLQUFLLENBQUNPLGNBQWM7SUFBSTtJQUV2REMsa0JBQWtCO1FBQUUsT0FBTyxJQUFJLENBQUNSLEtBQUssQ0FBQ1EsZUFBZTtJQUFJO0lBRXpEQyx1QkFB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
|
|
168
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L2Fzc2VydGlvbi9zY2hlbWEuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGNvbnRpbnVhdGlvblV0aWxpdGllcyB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcblxuaW1wb3J0IEFzc2VydGlvbiBmcm9tIFwiLi4vYXNzZXJ0aW9uXCI7XG5cbmltcG9ydCBlbGVtZW50cyBmcm9tIFwiLi4vLi4vZWxlbWVudHNcIjtcblxuaW1wb3J0IHsgZGVmaW5lIH0gZnJvbSBcIi4uLy4uL2VsZW1lbnRzXCI7XG5pbXBvcnQgeyBkZWNsYXJlIH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9zdGF0ZVwiO1xuXG5jb25zdCB7IHNvbWUgfSA9IGNvbnRpbnVhdGlvblV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIFNjaGVtYUFzc2VydGlvbiBleHRlbmRzIEFzc2VydGlvbiB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgZnJhbWUsIHJlZmVyZW5jZSkge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLmZyYW1lID0gZnJhbWU7XG4gICAgdGhpcy5yZWZlcmVuY2UgPSByZWZlcmVuY2U7XG4gIH1cblxuICBnZXRGcmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5mcmFtZTtcbiAgfVxuXG4gIGdldFJlZmVyZW5jZSgpIHtcbiAgICByZXR1cm4gdGhpcy5yZWZlcmVuY2U7XG4gIH1cblxuICBnZXRTY2hlbWFBc3NlcnRpb25Ob2RlKCkge1xuICAgIGNvbnN0IG5vZGUgPSB0aGlzLmdldE5vZGUoKSxcbiAgICAgICAgICBzY2hlbWFBc3NlcnRpb25Ob2RlID0gbm9kZTsgIC8vL1xuXG4gICAgcmV0dXJuIHNjaGVtYUFzc2VydGlvbk5vZGU7XG4gIH1cblxuICBnZXRBc3N1bXB0aW9ucygpIHsgcmV0dXJuIHRoaXMuZnJhbWUuZ2V0QXNzdW1wdGlvbnMoKTsgfVxuXG4gIGdldE1ldGF2YXJpYWJsZSgpIHsgcmV0dXJuIHRoaXMuZnJhbWUuZ2V0TWV0YXZhcmlhYmxlKCk7IH1cblxuICBnZXRJbXBsaWNpdEFzc3VtcHRpb25zKGNvbnRleHQpIHtcbiAgICBjb25zdCBpbXBsaWNpdEFzc3VtcHRpb25zID0gW10sXG4gICAgICAgICAgbWV0YXZhcmlhYmxlID0gdGhpcy5nZXRNZXRhdmFyaWFibGUoKTtcblxuICAgIGlmIChtZXRhdmFyaWFibGUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHsgSW1wbGljaXRBc3N1bXB0aW9uIH0gPSBlbGVtZW50cyxcbiAgICAgICAgICAgIGZhY3RzID0gY29udGV4dC5nZXRGYWN0cygpO1xuXG4gICAgICBmYWN0cy5mb3JFYWNoKChmYWN0KSA9PiB7XG4gICAgICAgIGNvbnN0IHN0YXRlbWVudCA9IGZhY3QuZ2V0U3RhdGVtZW50KCksXG4gICAgICAgICAgICAgIGltcGxpY2l0QXNzdW1wdGlvbiA9IEltcGxpY2l0QXNzdW1wdGlvbi5mcm9tU3RhdGVtZW50KHN0YXRlbWVudCwgY29udGV4dCk7XG5cbiAgICAgICAgZGVjbGFyZSgoc3RhdGUpID0+IHtcbiAgICAgICAgICBpbXBsaWNpdEFzc3VtcHRpb24udmFsaWRhdGUoc3RhdGUsIGNvbnRleHQsIChpbXBsaWNpdEFzc3VtcHRpb24sIGNvbnRleHQpID0+IHRydWUpICAvLy9cbiAgICAgICAgfSk7XG5cbiAgICAgICAgaW1wbGljaXRBc3N1bXB0aW9ucy5wdXNoKGltcGxpY2l0QXNzdW1wdGlvbik7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gaW1wbGljaXRBc3N1bXB0aW9ucztcbiAgfVxuXG4gIHZhbGlkYXRlKHN0YXRlLCBjb250ZXh0LCBjb250aW51YXRpb24pIHtcbiAgICBsZXQgdmFsaWRhdGVzO1xuXG4gICAgY29uc3Qgc2NoYW1lQXNzZXJ0aW9uU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgIC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgVmFsaWRhdGluZyB0aGUgJyR7c2NoYW1lQXNzZXJ0aW9uU3RyaW5nfScgc2NoYW1lIGFzc2VydGlvbi4uLmApO1xuXG4gICAgbGV0IGFzc2VydGlvbjtcblxuICAgIGFzc2VydGlvbiA9IHRoaXMuZmluZEFzc2VydGlvbihjb250ZXh0KTtcblxuICAgIGlmIChhc3NlcnRpb24gIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHNjaGFtZUFzc2VydGlvbiA9IGFzc2VydGlvbjsgIC8vL1xuXG4gICAgICBjb250ZXh0LmRlYnVnKGBUaGUgJyR7c2NoYW1lQXNzZXJ0aW9uU3RyaW5nfScgc2NoYW1lIGFzc2VydGlvbiBpcyBhbHJlYWR5IHByZXNlbnQuYCk7XG5cbiAgICAgIHZhbGlkYXRlcyA9IGNvbnRpbnVhdGlvbihzY2hhbWVBc3NlcnRpb24sIGNvbnRleHQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBhc3NlcnRpb24gPSB0aGlzOyAgLy8vXG5cbiAgICAgIGNvbnN0IHZhbGlkYXRlRnJhbWUgPSB0aGlzLnZhbGlkYXRlRnJhbWUuYmluZCh0aGlzKSxcbiAgICAgICAgICAgIHZhbGlkYXRlUmVmZXJlbmNlID0gdGhpcy52YWxpZGF0ZVJlZmVyZW5jZS5iaW5kKHRoaXMpO1xuXG4gICAgICB2YWxpZGF0ZXMgPSBhbGwoW1xuICAgICAgICB2YWxpZGF0ZUZyYW1lLFxuICAgICAgICB2YWxpZGF0ZVJlZmVyZW5jZVxuICAgICAgXSwgc3RhdGUsIGNvbnRleHQsIChzdGF0ZSwgXyApID0+IHtcbiAgICAgICAgbGV0IHZhbGlkYXRlcztcblxuICAgICAgICBjb25zdCBzY2hhbWVBc3NlcnRpb24gPSBhc3NlcnRpb247ICAvLy9cblxuICAgICAgICB2YWxpZGF0ZXMgPSBjb250aW51YXRpb24oc2NoYW1lQXNzZXJ0aW9uLCBjb250ZXh0KTtcblxuICAgICAgICByZXR1cm4gdmFsaWRhdGVzO1xuICAgICAgfSk7XG5cbiAgICAgIGlmICh2YWxpZGF0ZXMpIHtcbiAgICAgICAgY29udGV4dC5hZGRBc3NlcnRpb24oYXNzZXJ0aW9uKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodmFsaWRhdGVzKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52YWxpZGF0ZWQgdGhlICcke3NjaGFtZUFzc2VydGlvblN0cmluZ30nIHNjaGFtZSBhc3NlcnRpb24uYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbGlkYXRlcztcbiAgfVxuXG4gIHZhbGlkYXRlRnJhbWUoc3RhdGUsIGNvbnRleHQsIGNvbnRpbnVhdGlvbikge1xuICAgIGxldCBmcmFtZVZhbGlkYXRlcztcblxuICAgIGNvbnN0IHNjaGFtZUFzc2VydGlvblN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7ICAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFZhbGlkYXRpbmcgdGhlICcke3NjaGFtZUFzc2VydGlvblN0cmluZ30nIHNjaGFtZSBhc3NlcnRpb24ncyBmcmFtZS4uLmApO1xuXG4gICAgZnJhbWVWYWxpZGF0ZXMgPSB0aGlzLmZyYW1lLnZhbGlkYXRlKHN0YXRlLCBjb250ZXh0LCAoZnJhbWUsIGNvbnRleHQpID0+IHtcbiAgICAgIGxldCB2YWxpZGF0ZXM7XG5cbiAgICAgIHRoaXMuZnJhbWUgPSBmcmFtZTtcblxuICAgICAgdmFsaWRhdGVzID0gY29udGludWF0aW9uKHN0YXRlLCBjb250ZXh0KTtcblxuICAgICAgcmV0dXJuIHZhbGlkYXRlcztcbiAgICB9KTtcblxuICAgIGlmIChmcmFtZVZhbGlkYXRlcykge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmFsaWRhdGVkIHRoZSAnJHtzY2hhbWVBc3NlcnRpb25TdHJpbmd9JyBzY2hhbWUgYXNzZXJ0aW9uJ3MgZnJhbWUuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZyYW1lVmFsaWRhdGVzO1xuICB9XG5cbiAgdmFsaWRhdGVSZWZlcmVuY2Uoc3RhdGUsIGNvbnRleHQsIGNvbnRpbnVhdGlvbikge1xuICAgIGxldCByZWZlcmVuY2VWYWxpZGF0ZXM7XG5cbiAgICBjb25zdCBzY2hhbWVBc3NlcnRpb25TdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWYWxpZGF0aW5nIHRoZSAnJHtzY2hhbWVBc3NlcnRpb25TdHJpbmd9JyBzY2hhbWUgYXNzZXJ0aW9uJ3MgcmVmZXJlbmNlLi4uYCk7XG5cbiAgICByZWZlcmVuY2VWYWxpZGF0ZXMgPSB0aGlzLnJlZmVyZW5jZS52YWxpZGF0ZShzdGF0ZSwgY29udGV4dCwgKHJlZmVyZW5jZSwgY29udGV4dCkgPT4ge1xuICAgICAgbGV0IHZhbGlkYXRlcztcblxuICAgICAgdGhpcy5yZWZlcmVuY2UgPSByZWZlcmVuY2U7XG5cbiAgICAgIHZhbGlkYXRlcyA9IGNvbnRpbnVhdGlvbihzdGF0ZSwgY29udGV4dCk7XG5cbiAgICAgIHJldHVybiB2YWxpZGF0ZXM7XG4gICAgfSk7XG5cbiAgICBpZiAocmVmZXJlbmNlVmFsaWRhdGVzKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52YWxpZGF0ZWQgdGhlICcke3NjaGFtZUFzc2VydGlvblN0cmluZ30nIHNjaGFtZSBhc3NlcnRpb24ncyByZWZlcmVuY2UuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlZmVyZW5jZVZhbGlkYXRlcztcbiAgfVxuXG4gIHVuaWZ5U3RlcChzdGVwLCBjb250ZXh0LCBjb250aW51YXRpb24pIHtcbiAgICBjb25zdCBzY2hlbWFzID0gY29udGV4dC5nZXRTY2hlbWFzKCksXG4gICAgICAgICAgc3RhdGVtZW50ID0gc3RlcC5nZXRTdGF0ZW1lbnQoKSxcbiAgICAgICAgICBzY2hlbWFBc3NlcnRpb24gPSB0aGlzOyAvLy9cblxuICAgIHJldHVybiBzb21lKHNjaGVtYXMsIChzY2hlbWEsIGNvbnRpbnVhdGlvbikgPT4ge1xuICAgICAgcmV0dXJuIHNjaGVtYS51bmlmeVN0YXRlbWVudEFuZFNjaGVtYUFzc2VydGlvbihzdGF0ZW1lbnQsIHNjaGVtYUFzc2VydGlvbiwgY29udGV4dCwgY29udGludWF0aW9uKTtcbiAgICB9LCBjb250aW51YXRpb24pO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIlNjaGVtYUFzc2VydGlvblwiO1xufSk7XG4iXSwibmFtZXMiOlsic29tZSIsImNvbnRpbnVhdGlvblV0aWxpdGllcyIsImRlZmluZSIsIlNjaGVtYUFzc2VydGlvbiIsIkFzc2VydGlvbiIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiYnJlYWtQb2ludCIsImZyYW1lIiwicmVmZXJlbmNlIiwiZ2V0RnJhbWUiLCJnZXRSZWZlcmVuY2UiLCJnZXRTY2hlbWFBc3NlcnRpb25Ob2RlIiwiZ2V0Tm9kZSIsInNjaGVtYUFzc2VydGlvbk5vZGUiLCJnZXRBc3N1bXB0aW9ucyIsImdldE1ldGF2YXJpYWJsZSIsImdldEltcGxpY2l0QXNzdW1wdGlvbnMiLCJpbXBsaWNpdEFzc3VtcHRpb25zIiwibWV0YXZhcmlhYmxlIiwiSW1wbGljaXRBc3N1bXB0aW9uIiwiZWxlbWVudHMiLCJmYWN0cyIsImdldEZhY3RzIiwiZm9yRWFjaCIsImZhY3QiLCJzdGF0ZW1lbnQiLCJnZXRTdGF0ZW1lbnQiLCJpbXBsaWNpdEFzc3VtcHRpb24iLCJmcm9tU3RhdGVtZW50IiwiZGVjbGFyZSIsInN0YXRlIiwidmFsaWRhdGUiLCJwdXNoIiwiY29udGludWF0aW9uIiwidmFsaWRhdGVzIiwic2NoYW1lQXNzZXJ0aW9uU3RyaW5nIiwiZ2V0U3RyaW5nIiwidHJhY2UiLCJhc3NlcnRpb24iLCJmaW5kQXNzZXJ0aW9uIiwic2NoYW1lQXNzZXJ0aW9uIiwiZGVidWciLCJ2YWxpZGF0ZUZyYW1lIiwiYmluZCIsInZhbGlkYXRlUmVmZXJlbmNlIiwiYWxsIiwiXyIsImFkZEFzc2VydGlvbiIsImZyYW1lVmFsaWRhdGVzIiwicmVmZXJlbmNlVmFsaWRhdGVzIiwidW5pZnlTdGVwIiwic3RlcCIsInNjaGVtYXMiLCJnZXRTY2hlbWFzIiwic2NoZW1hQXNzZXJ0aW9uIiwic2NoZW1h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
|
|
@@ -39,7 +39,7 @@ const _default = (0, _elements.define)(class ImplicitAssumption extends _occamla
|
|
|
39
39
|
}
|
|
40
40
|
validate(state, context, continuation) {
|
|
41
41
|
let validates;
|
|
42
|
-
const
|
|
42
|
+
const implicitAssumptionString = this.getString(); ///
|
|
43
43
|
context.trace(`Validating the '${implicitAssumptionString}' implicit assumption...`);
|
|
44
44
|
let assumption;
|
|
45
45
|
assumption = this; ///
|
|
@@ -51,12 +51,11 @@ const _default = (0, _elements.define)(class ImplicitAssumption extends _occamla
|
|
|
51
51
|
], state, context, (state, _)=>{
|
|
52
52
|
let validates;
|
|
53
53
|
this.commit(context);
|
|
54
|
-
const
|
|
54
|
+
const implicitAssumption = assumption; ///
|
|
55
55
|
validates = continuation(implicitAssumption, context);
|
|
56
56
|
return validates;
|
|
57
57
|
});
|
|
58
58
|
}, context);
|
|
59
|
-
context = specificContext; ///
|
|
60
59
|
if (validates) {
|
|
61
60
|
context.debug(`...validated the '${implicitAssumptionString}' implicit assumption.`);
|
|
62
61
|
}
|
|
@@ -101,4 +100,4 @@ const _default = (0, _elements.define)(class ImplicitAssumption extends _occamla
|
|
|
101
100
|
}
|
|
102
101
|
});
|
|
103
102
|
|
|
104
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L2Fzc3VtcHRpb24vaW1wbGljaXQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IEVsZW1lbnQgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi8uLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgYWJsYXRlLCBhdHRlbXB0LCBpbnN0YW50aWF0ZSB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvY29udGV4dFwiO1xuaW1wb3J0IHsgaW5zdGFudGlhdGVJbXBsaWNpdEFzc3VtcHRpb24gfSBmcm9tIFwiLi4vLi4vcHJvY2Vzcy9pbnN0YW50aWF0ZVwiO1xuaW1wb3J0IHsgaW1wbGljaXRBc3N1bXB0aW9uU3RyaW5nRnJvbVN0YXRlbWVudCB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvc3RyaW5nXCI7XG5pbXBvcnQgeyBpbXBsaWNpdEFzc3VtcHRpb25Gcm9tSW1wbGljaXRBc3N1bXB0aW9uTm9kZSB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvZWxlbWVudFwiO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgSW1wbGljaXRBc3N1bXB0aW9uIGV4dGVuZHMgRWxlbWVudCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgc3RhdGVtZW50KSB7XG4gICAgc3VwZXIoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50KTtcblxuICAgIHRoaXMuc3RhdGVtZW50ID0gc3RhdGVtZW50O1xuICB9XG5cbiAgZ2V0U3RhdGVtZW50KCkge1xuICAgIHJldHVybiB0aGlzLnN0YXRlbWVudDtcbiAgfVxuXG4gIGdldEltcGxpY2l0QXNzdW1wdGlvbk5vZGUoKSB7XG4gICAgY29uc3Qgbm9kZSA9IHRoaXMuZ2V0Tm9kZSgpLFxuICAgICAgICAgIGltcGxpY2l0QXNzdW1wdGlvbk5vZGUgPSBub2RlOyAgLy8vXG5cbiAgICByZXR1cm4gaW1wbGljaXRBc3N1bXB0aW9uTm9kZTtcbiAgfVxuXG4gIGdldFN0YXRlbWVudE5vZGUoKSB7IHJldHVybiB0aGlzLnN0YXRlbWVudC5nZXRTdGF0ZW1lbnROb2RlKCk7IH1cblxuICBpc0VxdWFsVG8oaW1wbGljaXRBc3N1bXB0aW9uKSB7XG4gICAgY29uc3QgaW1wbGljaXRBc3N1bXB0aW9uTm9kZSA9IGltcGxpY2l0QXNzdW1wdGlvbi5nZXROb2RlKCksXG4gICAgICAgICAgaW1wbGljaXRBc3N1bXB0aW9uTm9kZU1hdGNoZXMgPSB0aGlzLm1hdGNoSW1wbGljaXRBc3N1bXB0aW9uTm9kZShpbXBsaWNpdEFzc3VtcHRpb25Ob2RlKSxcbiAgICAgICAgICBlcXVhbFRvID0gaW1wbGljaXRBc3N1bXB0aW9uTm9kZU1hdGNoZXM7ICAvLy9cblxuICAgIHJldHVybiBlcXVhbFRvO1xuICB9XG5cbiAgbWF0Y2hJbXBsaWNpdEFzc3VtcHRpb25Ob2RlKGltcGxpY2l0QXNzdW1wdGlvbk5vZGUpIHtcbiAgICBjb25zdCBub2RlID0gaW1wbGljaXRBc3N1bXB0aW9uTm9kZSwgLy8vXG4gICAgICAgICAgbm9kZU1hdGNoZXMgPSB0aGlzLm1hdGNoTm9kZShub2RlKSxcbiAgICAgICAgICBpbXBsaWNpdEFzc3VtcHRpb25Ob2RlTWF0Y2hlcyA9IG5vZGVNYXRjaGVzOyAvLy9cblxuICAgIHJldHVybiBpbXBsaWNpdEFzc3VtcHRpb25Ob2RlTWF0Y2hlcztcbiAgfVxuXG4gIHZhbGlkYXRlKHN0YXRlLCBjb250ZXh0LCBjb250aW51YXRpb24pIHtcbiAgICBsZXQgdmFsaWRhdGVzO1xuXG4gICAgY29uc3Qgc3BlY2lmaWNDb250ZXh0ID0gY29udGV4dCwgIC8vL1xuICAgICAgICAgIGltcGxpY2l0QXNzdW1wdGlvblN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7ICAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFZhbGlkYXRpbmcgdGhlICcke2ltcGxpY2l0QXNzdW1wdGlvblN0cmluZ30nIGltcGxpY2l0IGFzc3VtcHRpb24uLi5gKTtcblxuICAgIGxldCBhc3N1bXB0aW9uO1xuXG4gICAgYXNzdW1wdGlvbiA9IHRoaXM7ICAvLy9cblxuICAgIGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKTtcblxuICAgIHJldHVybiBhdHRlbXB0KChjb250ZXh0KSA9PiB7XG4gICAgICBjb25zdCB2YWxpZGF0ZVN0YXRlbWVudCA9IHRoaXMudmFsaWRhdGVTdGF0ZW1lbnQuYmluZCh0aGlzKTtcblxuICAgICAgdmFsaWRhdGVzID0gYWxsKFtcbiAgICAgICAgdmFsaWRhdGVTdGF0ZW1lbnRcbiAgICAgIF0sIHN0YXRlLCBjb250ZXh0LCAoc3RhdGUsIF8gKSA9PiB7XG4gICAgICAgIGxldCB2YWxpZGF0ZXM7XG5cbiAgICAgICAgdGhpcy5jb21taXQoY29udGV4dCk7XG5cbiAgICAgICAgY29uc3QgY29udGV4dCA9IHNwZWNpZmljQ29udGV4dCwgIC8vL1xuICAgICAgICAgICAgICBpbXBsaWNpdEFzc3VtcHRpb24gPSBhc3N1bXB0aW9uOyAgLy8vXG5cbiAgICAgICAgdmFsaWRhdGVzID0gY29udGludWF0aW9uKGltcGxpY2l0QXNzdW1wdGlvbiwgY29udGV4dCk7XG5cbiAgICAgICAgcmV0dXJuIHZhbGlkYXRlcztcbiAgICAgIH0pO1xuICAgIH0sIGNvbnRleHQpO1xuXG4gICAgY29udGV4dCA9IHNwZWNpZmljQ29udGV4dDsgIC8vL1xuXG4gICAgaWYgKHZhbGlkYXRlcykge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmFsaWRhdGVkIHRoZSAnJHtpbXBsaWNpdEFzc3VtcHRpb25TdHJpbmd9JyBpbXBsaWNpdCBhc3N1bXB0aW9uLmApO1xuICAgIH1cblxuICAgIHJldHVybiB2YWxpZGF0ZXM7XG4gIH1cblxuICB2YWxpZGF0ZVN0YXRlbWVudChzdGF0ZSwgY29udGV4dCwgY29udGludWF0aW9uKSB7XG4gICAgbGV0IHN0YXRlbWVudFZhbGlkYXRlcztcblxuICAgIGNvbnN0IGltcGxpY2l0QXNzdW1wdGlvblN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7ICAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFZhbGlkYXRpbmcgdGhlICcke2ltcGxpY2l0QXNzdW1wdGlvblN0cmluZ30nIGltcGxpY2l0IGFzc3VtcHRpb24ncyBzdGF0ZW1lbnQuLi5gKTtcblxuICAgIHN0YXRlbWVudFZhbGlkYXRlcyA9IHRoaXMuc3RhdGVtZW50LnZhbGlkYXRlKHN0YXRlLCBjb250ZXh0LCAoc3RhdGVtZW50LCBjb250ZXh0KSA9PiB7XG4gICAgICBsZXQgdmFsaWRhdGVzO1xuXG4gICAgICB0aGlzLnN0YXRlbWVudCA9IHN0YXRlbWVudDtcblxuICAgICAgdmFsaWRhdGVzID0gY29udGludWF0aW9uKHN0YXRlLCBjb250ZXh0KTtcblxuICAgICAgcmV0dXJuIHZhbGlkYXRlcztcbiAgICB9KTtcblxuICAgIGlmIChzdGF0ZW1lbnRWYWxpZGF0ZXMpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZhbGlkYXRlZCB0aGUgJyR7aW1wbGljaXRBc3N1bXB0aW9uU3RyaW5nfScgaW1wbGljaXQgYXNzdW1wdGlvbidzIHN0YXRlbWVudC5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gc3RhdGVtZW50VmFsaWRhdGVzO1xuICB9XG5cbiAgdW5pZnlTdGF0ZW1lbnQoc3RhdGVtZW50LCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KSB7XG4gICAgZGVidWdnZXJcblxuICAgIGxldCBzdGF0ZW1lbnRVbmlmaWVzO1xuXG4gICAgY29uc3QgY29udGV4dCA9IHNwZWNpZmljQ29udGV4dCwgLy8vXG4gICAgICAgICAgc3RhdGVtZW50U3RyaW5nID0gc3RhdGVtZW50LmdldFN0cmluZygpLFxuICAgICAgICAgIHByb29mQXNzZXJ0aW9uU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgIC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgVW5pZnlpbmcgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCB3aXRoIHRoZSAnJHtwcm9vZkFzc2VydGlvblN0cmluZ30nIGltcGxpY2l0QXNzdW1wdGlvbidzIHN0YXRlbWVudC4uLmApO1xuXG4gICAgc3RhdGVtZW50VW5pZmllcyA9IHRoaXMuc3RhdGVtZW50LnVuaWZ5U3RhdGVtZW50KHN0YXRlbWVudCwgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCk7XG5cbiAgICBpZiAoc3RhdGVtZW50VW5pZmllcykge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udW5pZmllZCB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IHdpdGggdGhlICcke3Byb29mQXNzZXJ0aW9uU3RyaW5nfScgaW1wbGljaXRBc3N1bXB0aW9uJ3Mgc3RhdGVtZW50LmApO1xuICAgIH1cblxuICAgIHJldHVybiBzdGF0ZW1lbnRVbmlmaWVzO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIkltcGxpY2l0QXNzdW1wdGlvblwiO1xuXG4gIHN0YXRpYyBmcm9tU3RhdGVtZW50KHN0YXRlbWVudCwgY29udGV4dCkge1xuICAgIGxldCBpbXBsaWNpdEFzc3VtcHRpb247XG5cbiAgICBhYmxhdGUoKGNvbnRleHQpID0+IHtcbiAgICAgIGluc3RhbnRpYXRlKChjb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IGltcGxpY2l0QXNzdW1wdGlvblN0cmluZyA9IGltcGxpY2l0QXNzdW1wdGlvblN0cmluZ0Zyb21TdGF0ZW1lbnQoc3RhdGVtZW50KSxcbiAgICAgICAgICAgICAgc3RyaW5nID0gaW1wbGljaXRBc3N1bXB0aW9uU3RyaW5nLCAgLy8vXG4gICAgICAgICAgICAgIGltcGxpY2l0QXNzdW1wdGlvbk5vZGUgPSBpbnN0YW50aWF0ZUltcGxpY2l0QXNzdW1wdGlvbihzdHJpbmcsIGNvbnRleHQpO1xuXG4gICAgICAgIGltcGxpY2l0QXNzdW1wdGlvbiA9IGltcGxpY2l0QXNzdW1wdGlvbkZyb21JbXBsaWNpdEFzc3VtcHRpb25Ob2RlKGltcGxpY2l0QXNzdW1wdGlvbk5vZGUsIGNvbnRleHQpO1xuICAgICAgfSwgY29udGV4dCk7XG4gICAgfSwgY29udGV4dCk7XG5cbiAgICByZXR1cm4gaW1wbGljaXRBc3N1bXB0aW9uO1xuICB9XG59KTtcbiJdLCJuYW1lcyI6WyJkZWZpbmUiLCJJbXBsaWNpdEFzc3VtcHRpb24iLCJFbGVtZW50IiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50Iiwic3RhdGVtZW50IiwiZ2V0U3RhdGVtZW50IiwiZ2V0SW1wbGljaXRBc3N1bXB0aW9uTm9kZSIsImdldE5vZGUiLCJpbXBsaWNpdEFzc3VtcHRpb25Ob2RlIiwiZ2V0U3RhdGVtZW50Tm9kZSIsImlzRXF1YWxUbyIsImltcGxpY2l0QXNzdW1wdGlvbiIsImltcGxpY2l0QXNzdW1wdGlvbk5vZGVNYXRjaGVzIiwibWF0Y2hJbXBsaWNpdEFzc3VtcHRpb25Ob2RlIiwiZXF1YWxUbyIsIm5vZGVNYXRjaGVzIiwibWF0Y2hOb2RlIiwidmFsaWRhdGUiLCJzdGF0ZSIsImNvbnRpbnVhdGlvbiIsInZhbGlkYXRlcyIsInNwZWNpZmljQ29udGV4dCIsImltcGxpY2l0QXNzdW1wdGlvblN0cmluZyIsImdldFN0cmluZyIsInRyYWNlIiwiYXNzdW1wdGlvbiIsImdldENvbnRleHQiLCJhdHRlbXB0IiwidmFsaWRhdGVTdGF0ZW1lbnQiLCJiaW5kIiwiYWxsIiwiXyIsImNvbW1pdCIsImRlYnVnIiwic3RhdGVtZW50VmFsaWRhdGVzIiwidW5pZnlTdGF0ZW1lbnQiLCJnZW5lcmFsQ29udGV4dCIsInN0YXRlbWVudFVuaWZpZXMiLCJzdGF0ZW1lbnRTdHJpbmciLCJwcm9vZkFzc2VydGlvblN0cmluZyIsIm5hbWUiLCJmcm9tU3RhdGVtZW50IiwiYWJsYXRlIiwiaW5zdGFudGlhdGUiLCJpbXBsaWNpdEFzc3VtcHRpb25TdHJpbmdGcm9tU3RhdGVtZW50IiwiaW5zdGFudGlhdGVJbXBsaWNpdEFzc3VtcHRpb24iLCJpbXBsaWNpdEFzc3VtcHRpb25G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
|
|
103
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L2Fzc3VtcHRpb24vaW1wbGljaXQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IEVsZW1lbnQgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi8uLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgYWJsYXRlLCBhdHRlbXB0LCBpbnN0YW50aWF0ZSB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvY29udGV4dFwiO1xuaW1wb3J0IHsgaW5zdGFudGlhdGVJbXBsaWNpdEFzc3VtcHRpb24gfSBmcm9tIFwiLi4vLi4vcHJvY2Vzcy9pbnN0YW50aWF0ZVwiO1xuaW1wb3J0IHsgaW1wbGljaXRBc3N1bXB0aW9uU3RyaW5nRnJvbVN0YXRlbWVudCB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvc3RyaW5nXCI7XG5pbXBvcnQgeyBpbXBsaWNpdEFzc3VtcHRpb25Gcm9tSW1wbGljaXRBc3N1bXB0aW9uTm9kZSB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvZWxlbWVudFwiO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgSW1wbGljaXRBc3N1bXB0aW9uIGV4dGVuZHMgRWxlbWVudCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgc3RhdGVtZW50KSB7XG4gICAgc3VwZXIoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50KTtcblxuICAgIHRoaXMuc3RhdGVtZW50ID0gc3RhdGVtZW50O1xuICB9XG5cbiAgZ2V0U3RhdGVtZW50KCkge1xuICAgIHJldHVybiB0aGlzLnN0YXRlbWVudDtcbiAgfVxuXG4gIGdldEltcGxpY2l0QXNzdW1wdGlvbk5vZGUoKSB7XG4gICAgY29uc3Qgbm9kZSA9IHRoaXMuZ2V0Tm9kZSgpLFxuICAgICAgICAgIGltcGxpY2l0QXNzdW1wdGlvbk5vZGUgPSBub2RlOyAgLy8vXG5cbiAgICByZXR1cm4gaW1wbGljaXRBc3N1bXB0aW9uTm9kZTtcbiAgfVxuXG4gIGdldFN0YXRlbWVudE5vZGUoKSB7IHJldHVybiB0aGlzLnN0YXRlbWVudC5nZXRTdGF0ZW1lbnROb2RlKCk7IH1cblxuICBpc0VxdWFsVG8oaW1wbGljaXRBc3N1bXB0aW9uKSB7XG4gICAgY29uc3QgaW1wbGljaXRBc3N1bXB0aW9uTm9kZSA9IGltcGxpY2l0QXNzdW1wdGlvbi5nZXROb2RlKCksXG4gICAgICAgICAgaW1wbGljaXRBc3N1bXB0aW9uTm9kZU1hdGNoZXMgPSB0aGlzLm1hdGNoSW1wbGljaXRBc3N1bXB0aW9uTm9kZShpbXBsaWNpdEFzc3VtcHRpb25Ob2RlKSxcbiAgICAgICAgICBlcXVhbFRvID0gaW1wbGljaXRBc3N1bXB0aW9uTm9kZU1hdGNoZXM7ICAvLy9cblxuICAgIHJldHVybiBlcXVhbFRvO1xuICB9XG5cbiAgbWF0Y2hJbXBsaWNpdEFzc3VtcHRpb25Ob2RlKGltcGxpY2l0QXNzdW1wdGlvbk5vZGUpIHtcbiAgICBjb25zdCBub2RlID0gaW1wbGljaXRBc3N1bXB0aW9uTm9kZSwgLy8vXG4gICAgICAgICAgbm9kZU1hdGNoZXMgPSB0aGlzLm1hdGNoTm9kZShub2RlKSxcbiAgICAgICAgICBpbXBsaWNpdEFzc3VtcHRpb25Ob2RlTWF0Y2hlcyA9IG5vZGVNYXRjaGVzOyAvLy9cblxuICAgIHJldHVybiBpbXBsaWNpdEFzc3VtcHRpb25Ob2RlTWF0Y2hlcztcbiAgfVxuXG4gIHZhbGlkYXRlKHN0YXRlLCBjb250ZXh0LCBjb250aW51YXRpb24pIHtcbiAgICBsZXQgdmFsaWRhdGVzO1xuXG4gICAgY29uc3QgaW1wbGljaXRBc3N1bXB0aW9uU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgIC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgVmFsaWRhdGluZyB0aGUgJyR7aW1wbGljaXRBc3N1bXB0aW9uU3RyaW5nfScgaW1wbGljaXQgYXNzdW1wdGlvbi4uLmApO1xuXG4gICAgbGV0IGFzc3VtcHRpb247XG5cbiAgICBhc3N1bXB0aW9uID0gdGhpczsgIC8vL1xuXG4gICAgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpO1xuXG4gICAgcmV0dXJuIGF0dGVtcHQoKGNvbnRleHQpID0+IHtcbiAgICAgIGNvbnN0IHZhbGlkYXRlU3RhdGVtZW50ID0gdGhpcy52YWxpZGF0ZVN0YXRlbWVudC5iaW5kKHRoaXMpO1xuXG4gICAgICB2YWxpZGF0ZXMgPSBhbGwoW1xuICAgICAgICB2YWxpZGF0ZVN0YXRlbWVudFxuICAgICAgXSwgc3RhdGUsIGNvbnRleHQsIChzdGF0ZSwgXyApID0+IHtcbiAgICAgICAgbGV0IHZhbGlkYXRlcztcblxuICAgICAgICB0aGlzLmNvbW1pdChjb250ZXh0KTtcblxuICAgICAgICBjb25zdCBpbXBsaWNpdEFzc3VtcHRpb24gPSBhc3N1bXB0aW9uOyAgLy8vXG5cbiAgICAgICAgdmFsaWRhdGVzID0gY29udGludWF0aW9uKGltcGxpY2l0QXNzdW1wdGlvbiwgY29udGV4dCk7XG5cbiAgICAgICAgcmV0dXJuIHZhbGlkYXRlcztcbiAgICAgIH0pO1xuICAgIH0sIGNvbnRleHQpO1xuXG4gICAgaWYgKHZhbGlkYXRlcykge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmFsaWRhdGVkIHRoZSAnJHtpbXBsaWNpdEFzc3VtcHRpb25TdHJpbmd9JyBpbXBsaWNpdCBhc3N1bXB0aW9uLmApO1xuICAgIH1cblxuICAgIHJldHVybiB2YWxpZGF0ZXM7XG4gIH1cblxuICB2YWxpZGF0ZVN0YXRlbWVudChzdGF0ZSwgY29udGV4dCwgY29udGludWF0aW9uKSB7XG4gICAgbGV0IHN0YXRlbWVudFZhbGlkYXRlcztcblxuICAgIGNvbnN0IGltcGxpY2l0QXNzdW1wdGlvblN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7ICAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFZhbGlkYXRpbmcgdGhlICcke2ltcGxpY2l0QXNzdW1wdGlvblN0cmluZ30nIGltcGxpY2l0IGFzc3VtcHRpb24ncyBzdGF0ZW1lbnQuLi5gKTtcblxuICAgIHN0YXRlbWVudFZhbGlkYXRlcyA9IHRoaXMuc3RhdGVtZW50LnZhbGlkYXRlKHN0YXRlLCBjb250ZXh0LCAoc3RhdGVtZW50LCBjb250ZXh0KSA9PiB7XG4gICAgICBsZXQgdmFsaWRhdGVzO1xuXG4gICAgICB0aGlzLnN0YXRlbWVudCA9IHN0YXRlbWVudDtcblxuICAgICAgdmFsaWRhdGVzID0gY29udGludWF0aW9uKHN0YXRlLCBjb250ZXh0KTtcblxuICAgICAgcmV0dXJuIHZhbGlkYXRlcztcbiAgICB9KTtcblxuICAgIGlmIChzdGF0ZW1lbnRWYWxpZGF0ZXMpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZhbGlkYXRlZCB0aGUgJyR7aW1wbGljaXRBc3N1bXB0aW9uU3RyaW5nfScgaW1wbGljaXQgYXNzdW1wdGlvbidzIHN0YXRlbWVudC5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gc3RhdGVtZW50VmFsaWRhdGVzO1xuICB9XG5cbiAgdW5pZnlTdGF0ZW1lbnQoc3RhdGVtZW50LCBnZW5lcmFsQ29udGV4dCwgc3BlY2lmaWNDb250ZXh0KSB7XG4gICAgZGVidWdnZXJcblxuICAgIGxldCBzdGF0ZW1lbnRVbmlmaWVzO1xuXG4gICAgY29uc3QgY29udGV4dCA9IHNwZWNpZmljQ29udGV4dCwgLy8vXG4gICAgICAgICAgc3RhdGVtZW50U3RyaW5nID0gc3RhdGVtZW50LmdldFN0cmluZygpLFxuICAgICAgICAgIHByb29mQXNzZXJ0aW9uU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgIC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgVW5pZnlpbmcgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCB3aXRoIHRoZSAnJHtwcm9vZkFzc2VydGlvblN0cmluZ30nIGltcGxpY2l0QXNzdW1wdGlvbidzIHN0YXRlbWVudC4uLmApO1xuXG4gICAgc3RhdGVtZW50VW5pZmllcyA9IHRoaXMuc3RhdGVtZW50LnVuaWZ5U3RhdGVtZW50KHN0YXRlbWVudCwgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCk7XG5cbiAgICBpZiAoc3RhdGVtZW50VW5pZmllcykge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udW5pZmllZCB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IHdpdGggdGhlICcke3Byb29mQXNzZXJ0aW9uU3RyaW5nfScgaW1wbGljaXRBc3N1bXB0aW9uJ3Mgc3RhdGVtZW50LmApO1xuICAgIH1cblxuICAgIHJldHVybiBzdGF0ZW1lbnRVbmlmaWVzO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIkltcGxpY2l0QXNzdW1wdGlvblwiO1xuXG4gIHN0YXRpYyBmcm9tU3RhdGVtZW50KHN0YXRlbWVudCwgY29udGV4dCkge1xuICAgIGxldCBpbXBsaWNpdEFzc3VtcHRpb247XG5cbiAgICBhYmxhdGUoKGNvbnRleHQpID0+IHtcbiAgICAgIGluc3RhbnRpYXRlKChjb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IGltcGxpY2l0QXNzdW1wdGlvblN0cmluZyA9IGltcGxpY2l0QXNzdW1wdGlvblN0cmluZ0Zyb21TdGF0ZW1lbnQoc3RhdGVtZW50KSxcbiAgICAgICAgICAgICAgc3RyaW5nID0gaW1wbGljaXRBc3N1bXB0aW9uU3RyaW5nLCAgLy8vXG4gICAgICAgICAgICAgIGltcGxpY2l0QXNzdW1wdGlvbk5vZGUgPSBpbnN0YW50aWF0ZUltcGxpY2l0QXNzdW1wdGlvbihzdHJpbmcsIGNvbnRleHQpO1xuXG4gICAgICAgIGltcGxpY2l0QXNzdW1wdGlvbiA9IGltcGxpY2l0QXNzdW1wdGlvbkZyb21JbXBsaWNpdEFzc3VtcHRpb25Ob2RlKGltcGxpY2l0QXNzdW1wdGlvbk5vZGUsIGNvbnRleHQpO1xuICAgICAgfSwgY29udGV4dCk7XG4gICAgfSwgY29udGV4dCk7XG5cbiAgICByZXR1cm4gaW1wbGljaXRBc3N1bXB0aW9uO1xuICB9XG59KTtcbiJdLCJuYW1lcyI6WyJkZWZpbmUiLCJJbXBsaWNpdEFzc3VtcHRpb24iLCJFbGVtZW50IiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50Iiwic3RhdGVtZW50IiwiZ2V0U3RhdGVtZW50IiwiZ2V0SW1wbGljaXRBc3N1bXB0aW9uTm9kZSIsImdldE5vZGUiLCJpbXBsaWNpdEFzc3VtcHRpb25Ob2RlIiwiZ2V0U3RhdGVtZW50Tm9kZSIsImlzRXF1YWxUbyIsImltcGxpY2l0QXNzdW1wdGlvbiIsImltcGxpY2l0QXNzdW1wdGlvbk5vZGVNYXRjaGVzIiwibWF0Y2hJbXBsaWNpdEFzc3VtcHRpb25Ob2RlIiwiZXF1YWxUbyIsIm5vZGVNYXRjaGVzIiwibWF0Y2hOb2RlIiwidmFsaWRhdGUiLCJzdGF0ZSIsImNvbnRpbnVhdGlvbiIsInZhbGlkYXRlcyIsImltcGxpY2l0QXNzdW1wdGlvblN0cmluZyIsImdldFN0cmluZyIsInRyYWNlIiwiYXNzdW1wdGlvbiIsImdldENvbnRleHQiLCJhdHRlbXB0IiwidmFsaWRhdGVTdGF0ZW1lbnQiLCJiaW5kIiwiYWxsIiwiXyIsImNvbW1pdCIsImRlYnVnIiwic3RhdGVtZW50VmFsaWRhdGVzIiwidW5pZnlTdGF0ZW1lbnQiLCJnZW5lcmFsQ29udGV4dCIsInNwZWNpZmljQ29udGV4dCIsInN0YXRlbWVudFVuaWZpZXMiLCJzdGF0ZW1lbnRTdHJpbmciLCJwcm9vZkFzc2VydGlvblN0cmluZyIsIm5hbWUiLCJmcm9tU3RhdGVtZW50IiwiYWJsYXRlIiwiaW5zdGFudGlhdGUiLCJpbXBsaWNpdEFzc3VtcHRpb25TdHJpbmdGcm9tU3RhdGVtZW50IiwiaW5zdGFudGlhdGVJbXBsaWNpdEFzc3VtcHRpb24iLCJpbXBsaWNpdEFzc3VtcHRpb25Gcm9tSW1wbGljaXRBc3N1bXB0aW9uTm9kZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBVUE7OztlQUFBOzs7Z0NBUndCOzBCQUVEO3lCQUNzQjs2QkFDQzt3QkFDUTt5QkFDTztNQUU3RCxXQUFlQSxJQUFBQSxnQkFBTSxFQUFD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
|