occam-verify-cli 0.0.963 → 0.0.965
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.
|
@@ -52,17 +52,7 @@ function verifyDerivedTypeAssertion(typeAssertionNode, assignments, derived, loc
|
|
|
52
52
|
var verifiedAhead = false;
|
|
53
53
|
var firstTerm = (0, _array.first)(terms), term = firstTerm, termType = localContext.getTermType(term), typeEqualToOrSuperTypeOfTermType = type.isEqualToOrSuperTypeOf(termType);
|
|
54
54
|
if (typeEqualToOrSuperTypeOfTermType) {
|
|
55
|
-
|
|
56
|
-
if (variableNode === null) {
|
|
57
|
-
verifiedAhead = true;
|
|
58
|
-
} else {
|
|
59
|
-
var variable;
|
|
60
|
-
variable = localContext.findVariableByVariableNode(variableNode);
|
|
61
|
-
variable = _variable.default.fromVariableAndType(variable, type); ///
|
|
62
|
-
var variableAssignment = _variable1.default.fromVariable(variable), assignment = variableAssignment; ///
|
|
63
|
-
assignments.push(assignment);
|
|
64
|
-
verifiedAhead = true;
|
|
65
|
-
}
|
|
55
|
+
verifiedAhead = true;
|
|
66
56
|
}
|
|
67
57
|
return verifiedAhead;
|
|
68
58
|
});
|
|
@@ -88,16 +78,14 @@ function verifyStatedTypeAssertion(typeAssertionNode, assignments, derived, loca
|
|
|
88
78
|
var firstTerm = (0, _array.first)(terms), term = firstTerm, termType = term.getType(), typeEqualToOrSubTypeOfTermType = type.isEqualToOrSubTypeOf(termType);
|
|
89
79
|
if (typeEqualToOrSubTypeOfTermType) {
|
|
90
80
|
var variableNode = variableNodeQuery(termNode);
|
|
91
|
-
if (variableNode
|
|
92
|
-
verifiedAhead = true;
|
|
93
|
-
} else {
|
|
81
|
+
if (variableNode !== null) {
|
|
94
82
|
var variable;
|
|
95
83
|
variable = localContext.findVariableByVariableNode(variableNode);
|
|
96
84
|
variable = _variable.default.fromVariableAndType(variable, type); ///
|
|
97
85
|
var variableAssignment = _variable1.default.fromVariable(variable), assignment = variableAssignment; ///
|
|
98
86
|
assignments.push(assignment);
|
|
99
|
-
verifiedAhead = true;
|
|
100
87
|
}
|
|
88
|
+
verifiedAhead = true;
|
|
101
89
|
}
|
|
102
90
|
return verifiedAhead;
|
|
103
91
|
});
|
|
@@ -110,4 +98,4 @@ function verifyStatedTypeAssertion(typeAssertionNode, assignments, derived, loca
|
|
|
110
98
|
return statedTypeAssertionVerified;
|
|
111
99
|
}
|
|
112
100
|
|
|
113
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92ZXJpZnkvYXNzZXJ0aW9uL3R5cGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBWYXJpYWJsZSBmcm9tIFwiLi4vLi4vdmFyaWFibGVcIjtcbmltcG9ydCB2ZXJpZnlUZXJtIGZyb20gXCIuLi8uLi92ZXJpZnkvdGVybVwiO1xuaW1wb3J0IFZhcmlhYmxlQXNzaWdubWVudCBmcm9tIFwiLi4vLi4vYXNzaWdubWVudC92YXJpYWJsZVwiO1xuXG5pbXBvcnQgeyBmaXJzdCB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvYXJyYXlcIjtcbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvcXVlcnlcIjtcblxuY29uc3QgdGVybU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi90eXBlQXNzZXJ0aW9uL3Rlcm0hXCIpLFxuICAgICAgdHlwZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi90eXBlQXNzZXJ0aW9uL3R5cGUhXCIpLFxuICAgICAgdmFyaWFibGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdGVybS92YXJpYWJsZSFcIik7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHZlcmlmeVR5cGVBc3NlcnRpb24odHlwZUFzc2VydGlvbk5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IHR5cGVBc3NlcnRpb25WZXJpZmllZDtcblxuICBjb25zdCB0eXBlQXNzZXJ0aW9uU3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyh0eXBlQXNzZXJ0aW9uTm9kZSk7XG5cbiAgbG9jYWxDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3R5cGVBc3NlcnRpb25TdHJpbmd9JyB0eXBlIGFzc2VydGlvbi4uLmAsIHR5cGVBc3NlcnRpb25Ob2RlKTtcblxuICBjb25zdCB2ZXJpZnlUeXBlQXNzZXJ0aW9uRnVuY3Rpb25zID0gW1xuICAgIHZlcmlmeURlcml2ZWRUeXBlQXNzZXJ0aW9uLFxuICAgIHZlcmlmeVN0YXRlZFR5cGVBc3NlcnRpb25cbiAgXTtcblxuICB0eXBlQXNzZXJ0aW9uVmVyaWZpZWQgPSB2ZXJpZnlUeXBlQXNzZXJ0aW9uRnVuY3Rpb25zLnNvbWUoKHZlcmlmeVR5cGVBc3NlcnRpb25GdW5jdGlvbikgPT4ge1xuICAgIGNvbnN0IHR5cGVBc3NlcnRpb25WZXJpZmllZCA9IHZlcmlmeVR5cGVBc3NlcnRpb25GdW5jdGlvbih0eXBlQXNzZXJ0aW9uTm9kZSwgYXNzaWdubWVudHMsIGRlcml2ZWQsIGxvY2FsQ29udGV4dCk7XG5cbiAgICBpZiAodHlwZUFzc2VydGlvblZlcmlmaWVkKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pO1xuXG4gIGlmICh0eXBlQXNzZXJ0aW9uVmVyaWZpZWQpIHtcbiAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHt0eXBlQXNzZXJ0aW9uU3RyaW5nfScgdHlwZSBhc3NlcnRpb24uYCwgdHlwZUFzc2VydGlvbk5vZGUpO1xuICB9XG5cbiAgcmV0dXJuIHR5cGVBc3NlcnRpb25WZXJpZmllZDtcbn1cblxuZnVuY3Rpb24gdmVyaWZ5RGVyaXZlZFR5cGVBc3NlcnRpb24odHlwZUFzc2VydGlvbk5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IGRlcml2ZWRUeXBlQXNzZXJ0aW9uVmVyaWZpZWQgPSBmYWxzZTtcblxuICBpZiAoZGVyaXZlZCkge1xuICAgIGNvbnN0IHR5cGVBc3NlcnRpb25TdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKHR5cGVBc3NlcnRpb25Ob2RlKTtcblxuICAgIGxvY2FsQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHt0eXBlQXNzZXJ0aW9uU3RyaW5nfScgZGVyaXZlZCB0eXBlIGFzc2VydGlvbi4uLmAsIHR5cGVBc3NlcnRpb25Ob2RlKTtcblxuICAgIGNvbnN0IHR5cGVOb2RlID0gdHlwZU5vZGVRdWVyeSh0eXBlQXNzZXJ0aW9uTm9kZSksXG4gICAgICAgICAgdHlwZSA9IGxvY2FsQ29udGV4dC5maW5kVHlwZUJ5VHlwZU5vZGUodHlwZU5vZGUpO1xuXG4gICAgaWYgKHR5cGUgPT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHR5cGVTdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKHR5cGVOb2RlKTtcblxuICAgICAgbG9jYWxDb250ZXh0LmRlYnVnKGBUaGUgJyR7dHlwZVN0cmluZ30nIHR5cGUgaXMgbm90IHByZXNlbnQuYCwgdHlwZU5vZGUpO1xuICAgIH1cblxuICAgIGNvbnN0IHRlcm1zID0gW10sXG4gICAgICAgICAgdGVybU5vZGUgPSB0ZXJtTm9kZVF1ZXJ5KHR5cGVBc3NlcnRpb25Ob2RlKSxcbiAgICAgICAgICB0ZXJtVmVyaWZpZWQgPSB2ZXJpZnlUZXJtKHRlcm1Ob2RlLCB0ZXJtcywgbG9jYWxDb250ZXh0LCAoKSA9PiB7XG4gICAgICAgICAgICBsZXQgdmVyaWZpZWRBaGVhZCA9IGZhbHNlO1xuXG4gICAgICAgICAgICBjb25zdCBmaXJzdFRlcm0gPSBmaXJzdCh0ZXJtcyksXG4gICAgICAgICAgICAgICAgICB0ZXJtID0gZmlyc3RUZXJtLCAvLy9cbiAgICAgICAgICAgICAgICAgIHRlcm1UeXBlID0gbG9jYWxDb250ZXh0LmdldFRlcm1UeXBlKHRlcm0pLFxuICAgICAgICAgICAgICAgICAgdHlwZUVxdWFsVG9PclN1cGVyVHlwZU9mVGVybVR5cGUgPSB0eXBlLmlzRXF1YWxUb09yU3VwZXJUeXBlT2YodGVybVR5cGUpO1xuXG4gICAgICAgICAgICBpZiAodHlwZUVxdWFsVG9PclN1cGVyVHlwZU9mVGVybVR5cGUpIHtcbiAgICAgICAgICAgICAgY29uc3QgdmFyaWFibGVOb2RlID0gdmFyaWFibGVOb2RlUXVlcnkodGVybU5vZGUpO1xuXG4gICAgICAgICAgICAgIGlmICh2YXJpYWJsZU5vZGUgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICB2ZXJpZmllZEFoZWFkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBsZXQgdmFyaWFibGU7XG5cbiAgICAgICAgICAgICAgICB2YXJpYWJsZSA9IGxvY2FsQ29udGV4dC5maW5kVmFyaWFibGVCeVZhcmlhYmxlTm9kZSh2YXJpYWJsZU5vZGUpO1xuXG4gICAgICAgICAgICAgICAgdmFyaWFibGUgPSBWYXJpYWJsZS5mcm9tVmFyaWFibGVBbmRUeXBlKHZhcmlhYmxlLCB0eXBlKTsgIC8vL1xuXG4gICAgICAgICAgICAgICAgY29uc3QgdmFyaWFibGVBc3NpZ25tZW50ID0gVmFyaWFibGVBc3NpZ25tZW50LmZyb21WYXJpYWJsZSh2YXJpYWJsZSksXG4gICAgICAgICAgICAgICAgICAgICAgYXNzaWdubWVudCA9IHZhcmlhYmxlQXNzaWdubWVudDsgIC8vL1xuXG4gICAgICAgICAgICAgICAgYXNzaWdubWVudHMucHVzaChhc3NpZ25tZW50KTtcblxuICAgICAgICAgICAgICAgIHZlcmlmaWVkQWhlYWQgPSB0cnVlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB2ZXJpZmllZEFoZWFkO1xuICAgICAgICAgIH0pO1xuXG4gICAgZGVyaXZlZFR5cGVBc3NlcnRpb25WZXJpZmllZCA9IHRlcm1WZXJpZmllZDsgLy8vXG5cbiAgICBpZiAoZGVyaXZlZFR5cGVBc3NlcnRpb25WZXJpZmllZCkge1xuICAgICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7dHlwZUFzc2VydGlvblN0cmluZ30nIGRlcml2ZWQgdHlwZSBhc3NlcnRpb24uYCwgdHlwZUFzc2VydGlvbk5vZGUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBkZXJpdmVkVHlwZUFzc2VydGlvblZlcmlmaWVkO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlTdGF0ZWRUeXBlQXNzZXJ0aW9uKHR5cGVBc3NlcnRpb25Ob2RlLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgbG9jYWxDb250ZXh0KSB7XG4gIGxldCBzdGF0ZWRUeXBlQXNzZXJ0aW9uVmVyaWZpZWQgPSBmYWxzZTtcblxuICBpZiAoIWRlcml2ZWQpIHtcbiAgICBjb25zdCB0eXBlQXNzZXJ0aW9uU3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyh0eXBlQXNzZXJ0aW9uTm9kZSk7XG5cbiAgICBsb2NhbENvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7dHlwZUFzc2VydGlvblN0cmluZ30nIHN0YXRlZCB0eXBlIGFzc2VydGlvbi4uLmAsIHR5cGVBc3NlcnRpb25Ob2RlKTtcblxuICAgIGNvbnN0IHR5cGVOb2RlID0gdHlwZU5vZGVRdWVyeSh0eXBlQXNzZXJ0aW9uTm9kZSksXG4gICAgICAgICAgdHlwZSA9IGxvY2FsQ29udGV4dC5maW5kVHlwZUJ5VHlwZU5vZGUodHlwZU5vZGUpO1xuXG4gICAgaWYgKHR5cGUgPT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHR5cGVTdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKHR5cGVOb2RlKTtcblxuICAgICAgbG9jYWxDb250ZXh0LmRlYnVnKGBUaGUgJyR7dHlwZVN0cmluZ30nIHR5cGUgaXMgbm90IHByZXNlbnQuYCwgdHlwZU5vZGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCB0ZXJtcyA9IFtdLFxuICAgICAgICAgICAgdGVybU5vZGUgPSB0ZXJtTm9kZVF1ZXJ5KHR5cGVBc3NlcnRpb25Ob2RlKSxcbiAgICAgICAgICAgIHRlcm1WZXJpZmllZCA9IHZlcmlmeVRlcm0odGVybU5vZGUsIHRlcm1zLCBsb2NhbENvbnRleHQsICgpID0+IHtcbiAgICAgICAgICAgICAgbGV0IHZlcmlmaWVkQWhlYWQgPSBmYWxzZTtcblxuICAgICAgICAgICAgICBjb25zdCBmaXJzdFRlcm0gPSBmaXJzdCh0ZXJtcyksXG4gICAgICAgICAgICAgICAgICAgIHRlcm0gPSBmaXJzdFRlcm0sIC8vL1xuICAgICAgICAgICAgICAgICAgICB0ZXJtVHlwZSA9IHRlcm0uZ2V0VHlwZSgpLFxuICAgICAgICAgICAgICAgICAgICB0eXBlRXF1YWxUb09yU3ViVHlwZU9mVGVybVR5cGUgPSB0eXBlLmlzRXF1YWxUb09yU3ViVHlwZU9mKHRlcm1UeXBlKTtcblxuICAgICAgICAgICAgICBpZiAodHlwZUVxdWFsVG9PclN1YlR5cGVPZlRlcm1UeXBlKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFyaWFibGVOb2RlID0gdmFyaWFibGVOb2RlUXVlcnkodGVybU5vZGUpO1xuXG4gICAgICAgICAgICAgICAgaWYgKHZhcmlhYmxlTm9kZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgdmVyaWZpZWRBaGVhZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIGxldCB2YXJpYWJsZTtcblxuICAgICAgICAgICAgICAgICAgdmFyaWFibGUgPSBsb2NhbENvbnRleHQuZmluZFZhcmlhYmxlQnlWYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlKTtcblxuICAgICAgICAgICAgICAgICAgdmFyaWFibGUgPSBWYXJpYWJsZS5mcm9tVmFyaWFibGVBbmRUeXBlKHZhcmlhYmxlLCB0eXBlKTsgIC8vL1xuXG4gICAgICAgICAgICAgICAgICBjb25zdCB2YXJpYWJsZUFzc2lnbm1lbnQgPSBWYXJpYWJsZUFzc2lnbm1lbnQuZnJvbVZhcmlhYmxlKHZhcmlhYmxlKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFzc2lnbm1lbnQgPSB2YXJpYWJsZUFzc2lnbm1lbnQ7ICAvLy9cblxuICAgICAgICAgICAgICAgICAgYXNzaWdubWVudHMucHVzaChhc3NpZ25tZW50KTtcblxuICAgICAgICAgICAgICAgICAgdmVyaWZpZWRBaGVhZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgcmV0dXJuIHZlcmlmaWVkQWhlYWQ7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgc3RhdGVkVHlwZUFzc2VydGlvblZlcmlmaWVkID0gdGVybVZlcmlmaWVkOyAvLy9cbiAgICB9XG5cbiAgICBpZiAoc3RhdGVkVHlwZUFzc2VydGlvblZlcmlmaWVkKSB7XG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHt0eXBlQXNzZXJ0aW9uU3RyaW5nfScgc3RhdGVkIHR5cGUgYXNzZXJ0aW9uLmAsIHR5cGVBc3NlcnRpb25Ob2RlKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gc3RhdGVkVHlwZUFzc2VydGlvblZlcmlmaWVkO1xufVxuIl0sIm5hbWVzIjpbInZlcmlmeVR5cGVBc3NlcnRpb24iLCJ0ZXJtTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwidHlwZU5vZGVRdWVyeSIsInZhcmlhYmxlTm9kZVF1ZXJ5IiwidHlwZUFzc2VydGlvbk5vZGUiLCJhc3NpZ25tZW50cyIsImRlcml2ZWQiLCJsb2NhbENvbnRleHQiLCJ0eXBlQXNzZXJ0aW9uVmVyaWZpZWQiLCJ0eXBlQXNzZXJ0aW9uU3RyaW5nIiwibm9kZUFzU3RyaW5nIiwidHJhY2UiLCJ2ZXJpZnlUeXBlQXNzZXJ0aW9uRnVuY3Rpb25zIiwidmVyaWZ5RGVyaXZlZFR5cGVBc3NlcnRpb24iLCJ2ZXJpZnlTdGF0ZWRUeXBlQXNzZXJ0aW9uIiwic29tZSIsInZlcmlmeVR5cGVBc3NlcnRpb25GdW5jdGlvbiIsImRlYnVnIiwiZGVyaXZlZFR5cGVBc3NlcnRpb25WZXJpZmllZCIsInR5cGVOb2RlIiwidHlwZSIsImZpbmRUeXBlQnlUeXBlTm9kZSIsInR5cGVTdHJpbmciLCJ0ZXJtcyIsInRlcm1Ob2RlIiwidGVybVZlcmlmaWVkIiwidmVyaWZ5VGVybSIsInZlcmlmaWVkQWhlYWQiLCJmaXJzdFRlcm0iLCJmaXJzdCIsInRlcm0iLCJ0ZXJtVHlwZSIsImdldFRlcm1UeXBlIiwidHlwZUVxdWFsVG9PclN1cGVyVHlwZU9mVGVybVR5cGUiLCJpc0VxdWFsVG9PclN1cGVyVHlwZU9mIiwidmFyaWFibGVOb2RlIiwidmFyaWFibGUiLCJmaW5kVmFyaWFibGVCeVZhcmlhYmxlTm9kZSIsIlZhcmlhYmxlIiwiZnJvbVZhcmlhYmxlQW5kVHlwZSIsInZhcmlhYmxlQXNzaWdubWVudCIsIlZhcmlhYmxlQXNzaWdubWVudCIsImZyb21WYXJpYWJsZSIsImFzc2lnbm1lbnQiLCJwdXNoIiwic3RhdGVkVHlwZUFzc2VydGlvblZlcmlmaWVkIiwiZ2V0VHlwZSIsInR5cGVFcXVhbFRvT3JTdWJUeXBlT2ZUZXJtVHlwZSIsImlzRXF1YWxUb09yU3ViVHlwZU9mIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFhQTs7O2VBQXdCQTs7OytEQVhIOzJEQUNFO2dFQUNRO3FCQUVUO3FCQUNJOzs7Ozs7QUFFMUIsSUFBTUMsZ0JBQWdCQyxJQUFBQSxnQkFBUyxFQUFDLHlCQUMxQkMsZ0JBQWdCRCxJQUFBQSxnQkFBUyxFQUFDLHlCQUMxQkUsb0JBQW9CRixJQUFBQSxnQkFBUyxFQUFDO0FBRXJCLFNBQVNGLG9CQUFvQkssaUJBQWlCLEVBQUVDLFdBQVcsRUFBRUMsT0FBTyxFQUFFQyxZQUFZO0lBQy9GLElBQUlDO0lBRUosSUFBTUMsc0JBQXNCRixhQUFhRyxZQUFZLENBQUNOO0lBRXRERyxhQUFhSSxLQUFLLENBQUMsQUFBQyxrQkFBcUMsT0FBcEJGLHFCQUFvQix3QkFBc0JMO0lBRS9FLElBQU1RLCtCQUErQjtRQUNuQ0M7UUFDQUM7S0FDRDtJQUVETix3QkFBd0JJLDZCQUE2QkcsSUFBSSxDQUFDLFNBQUNDO1FBQ3pELElBQU1SLHdCQUF3QlEsNEJBQTRCWixtQkFBbUJDLGFBQWFDLFNBQVNDO1FBRW5HLElBQUlDLHVCQUF1QjtZQUN6QixPQUFPO1FBQ1Q7SUFDRjtJQUVBLElBQUlBLHVCQUF1QjtRQUN6QkQsYUFBYVUsS0FBSyxDQUFDLEFBQUMsb0JBQXVDLE9BQXBCUixxQkFBb0Isc0JBQW9CTDtJQUNqRjtJQUVBLE9BQU9JO0FBQ1Q7QUFFQSxTQUFTSywyQkFBMkJU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
|
|
101
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92ZXJpZnkvYXNzZXJ0aW9uL3R5cGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBWYXJpYWJsZSBmcm9tIFwiLi4vLi4vdmFyaWFibGVcIjtcbmltcG9ydCB2ZXJpZnlUZXJtIGZyb20gXCIuLi8uLi92ZXJpZnkvdGVybVwiO1xuaW1wb3J0IFZhcmlhYmxlQXNzaWdubWVudCBmcm9tIFwiLi4vLi4vYXNzaWdubWVudC92YXJpYWJsZVwiO1xuXG5pbXBvcnQgeyBmaXJzdCB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvYXJyYXlcIjtcbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvcXVlcnlcIjtcblxuY29uc3QgdGVybU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi90eXBlQXNzZXJ0aW9uL3Rlcm0hXCIpLFxuICAgICAgdHlwZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi90eXBlQXNzZXJ0aW9uL3R5cGUhXCIpLFxuICAgICAgdmFyaWFibGVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdGVybS92YXJpYWJsZSFcIik7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHZlcmlmeVR5cGVBc3NlcnRpb24odHlwZUFzc2VydGlvbk5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IHR5cGVBc3NlcnRpb25WZXJpZmllZDtcblxuICBjb25zdCB0eXBlQXNzZXJ0aW9uU3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyh0eXBlQXNzZXJ0aW9uTm9kZSk7XG5cbiAgbG9jYWxDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3R5cGVBc3NlcnRpb25TdHJpbmd9JyB0eXBlIGFzc2VydGlvbi4uLmAsIHR5cGVBc3NlcnRpb25Ob2RlKTtcblxuICBjb25zdCB2ZXJpZnlUeXBlQXNzZXJ0aW9uRnVuY3Rpb25zID0gW1xuICAgIHZlcmlmeURlcml2ZWRUeXBlQXNzZXJ0aW9uLFxuICAgIHZlcmlmeVN0YXRlZFR5cGVBc3NlcnRpb25cbiAgXTtcblxuICB0eXBlQXNzZXJ0aW9uVmVyaWZpZWQgPSB2ZXJpZnlUeXBlQXNzZXJ0aW9uRnVuY3Rpb25zLnNvbWUoKHZlcmlmeVR5cGVBc3NlcnRpb25GdW5jdGlvbikgPT4ge1xuICAgIGNvbnN0IHR5cGVBc3NlcnRpb25WZXJpZmllZCA9IHZlcmlmeVR5cGVBc3NlcnRpb25GdW5jdGlvbih0eXBlQXNzZXJ0aW9uTm9kZSwgYXNzaWdubWVudHMsIGRlcml2ZWQsIGxvY2FsQ29udGV4dCk7XG5cbiAgICBpZiAodHlwZUFzc2VydGlvblZlcmlmaWVkKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pO1xuXG4gIGlmICh0eXBlQXNzZXJ0aW9uVmVyaWZpZWQpIHtcbiAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHt0eXBlQXNzZXJ0aW9uU3RyaW5nfScgdHlwZSBhc3NlcnRpb24uYCwgdHlwZUFzc2VydGlvbk5vZGUpO1xuICB9XG5cbiAgcmV0dXJuIHR5cGVBc3NlcnRpb25WZXJpZmllZDtcbn1cblxuZnVuY3Rpb24gdmVyaWZ5RGVyaXZlZFR5cGVBc3NlcnRpb24odHlwZUFzc2VydGlvbk5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IGRlcml2ZWRUeXBlQXNzZXJ0aW9uVmVyaWZpZWQgPSBmYWxzZTtcblxuICBpZiAoZGVyaXZlZCkge1xuICAgIGNvbnN0IHR5cGVBc3NlcnRpb25TdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKHR5cGVBc3NlcnRpb25Ob2RlKTtcblxuICAgIGxvY2FsQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHt0eXBlQXNzZXJ0aW9uU3RyaW5nfScgZGVyaXZlZCB0eXBlIGFzc2VydGlvbi4uLmAsIHR5cGVBc3NlcnRpb25Ob2RlKTtcblxuICAgIGNvbnN0IHR5cGVOb2RlID0gdHlwZU5vZGVRdWVyeSh0eXBlQXNzZXJ0aW9uTm9kZSksXG4gICAgICAgICAgdHlwZSA9IGxvY2FsQ29udGV4dC5maW5kVHlwZUJ5VHlwZU5vZGUodHlwZU5vZGUpO1xuXG4gICAgaWYgKHR5cGUgPT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHR5cGVTdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKHR5cGVOb2RlKTtcblxuICAgICAgbG9jYWxDb250ZXh0LmRlYnVnKGBUaGUgJyR7dHlwZVN0cmluZ30nIHR5cGUgaXMgbm90IHByZXNlbnQuYCwgdHlwZU5vZGUpO1xuICAgIH1cblxuICAgIGNvbnN0IHRlcm1zID0gW10sXG4gICAgICAgICAgdGVybU5vZGUgPSB0ZXJtTm9kZVF1ZXJ5KHR5cGVBc3NlcnRpb25Ob2RlKSxcbiAgICAgICAgICB0ZXJtVmVyaWZpZWQgPSB2ZXJpZnlUZXJtKHRlcm1Ob2RlLCB0ZXJtcywgbG9jYWxDb250ZXh0LCAoKSA9PiB7XG4gICAgICAgICAgICBsZXQgdmVyaWZpZWRBaGVhZCA9IGZhbHNlO1xuXG4gICAgICAgICAgICBjb25zdCBmaXJzdFRlcm0gPSBmaXJzdCh0ZXJtcyksXG4gICAgICAgICAgICAgICAgICB0ZXJtID0gZmlyc3RUZXJtLCAvLy9cbiAgICAgICAgICAgICAgICAgIHRlcm1UeXBlID0gbG9jYWxDb250ZXh0LmdldFRlcm1UeXBlKHRlcm0pLFxuICAgICAgICAgICAgICAgICAgdHlwZUVxdWFsVG9PclN1cGVyVHlwZU9mVGVybVR5cGUgPSB0eXBlLmlzRXF1YWxUb09yU3VwZXJUeXBlT2YodGVybVR5cGUpO1xuXG4gICAgICAgICAgICBpZiAodHlwZUVxdWFsVG9PclN1cGVyVHlwZU9mVGVybVR5cGUpIHtcbiAgICAgICAgICAgICAgdmVyaWZpZWRBaGVhZCA9IHRydWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB2ZXJpZmllZEFoZWFkO1xuICAgICAgICAgIH0pO1xuXG4gICAgZGVyaXZlZFR5cGVBc3NlcnRpb25WZXJpZmllZCA9IHRlcm1WZXJpZmllZDsgLy8vXG5cbiAgICBpZiAoZGVyaXZlZFR5cGVBc3NlcnRpb25WZXJpZmllZCkge1xuICAgICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7dHlwZUFzc2VydGlvblN0cmluZ30nIGRlcml2ZWQgdHlwZSBhc3NlcnRpb24uYCwgdHlwZUFzc2VydGlvbk5vZGUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBkZXJpdmVkVHlwZUFzc2VydGlvblZlcmlmaWVkO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlTdGF0ZWRUeXBlQXNzZXJ0aW9uKHR5cGVBc3NlcnRpb25Ob2RlLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgbG9jYWxDb250ZXh0KSB7XG4gIGxldCBzdGF0ZWRUeXBlQXNzZXJ0aW9uVmVyaWZpZWQgPSBmYWxzZTtcblxuICBpZiAoIWRlcml2ZWQpIHtcbiAgICBjb25zdCB0eXBlQXNzZXJ0aW9uU3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyh0eXBlQXNzZXJ0aW9uTm9kZSk7XG5cbiAgICBsb2NhbENvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7dHlwZUFzc2VydGlvblN0cmluZ30nIHN0YXRlZCB0eXBlIGFzc2VydGlvbi4uLmAsIHR5cGVBc3NlcnRpb25Ob2RlKTtcblxuICAgIGNvbnN0IHR5cGVOb2RlID0gdHlwZU5vZGVRdWVyeSh0eXBlQXNzZXJ0aW9uTm9kZSksXG4gICAgICAgICAgdHlwZSA9IGxvY2FsQ29udGV4dC5maW5kVHlwZUJ5VHlwZU5vZGUodHlwZU5vZGUpO1xuXG4gICAgaWYgKHR5cGUgPT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHR5cGVTdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKHR5cGVOb2RlKTtcblxuICAgICAgbG9jYWxDb250ZXh0LmRlYnVnKGBUaGUgJyR7dHlwZVN0cmluZ30nIHR5cGUgaXMgbm90IHByZXNlbnQuYCwgdHlwZU5vZGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCB0ZXJtcyA9IFtdLFxuICAgICAgICAgICAgdGVybU5vZGUgPSB0ZXJtTm9kZVF1ZXJ5KHR5cGVBc3NlcnRpb25Ob2RlKSxcbiAgICAgICAgICAgIHRlcm1WZXJpZmllZCA9IHZlcmlmeVRlcm0odGVybU5vZGUsIHRlcm1zLCBsb2NhbENvbnRleHQsICgpID0+IHtcbiAgICAgICAgICAgICAgbGV0IHZlcmlmaWVkQWhlYWQgPSBmYWxzZTtcblxuICAgICAgICAgICAgICBjb25zdCBmaXJzdFRlcm0gPSBmaXJzdCh0ZXJtcyksXG4gICAgICAgICAgICAgICAgICAgIHRlcm0gPSBmaXJzdFRlcm0sIC8vL1xuICAgICAgICAgICAgICAgICAgICB0ZXJtVHlwZSA9IHRlcm0uZ2V0VHlwZSgpLFxuICAgICAgICAgICAgICAgICAgICB0eXBlRXF1YWxUb09yU3ViVHlwZU9mVGVybVR5cGUgPSB0eXBlLmlzRXF1YWxUb09yU3ViVHlwZU9mKHRlcm1UeXBlKTtcblxuICAgICAgICAgICAgICBpZiAodHlwZUVxdWFsVG9PclN1YlR5cGVPZlRlcm1UeXBlKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFyaWFibGVOb2RlID0gdmFyaWFibGVOb2RlUXVlcnkodGVybU5vZGUpO1xuXG4gICAgICAgICAgICAgICAgaWYgKHZhcmlhYmxlTm9kZSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgbGV0IHZhcmlhYmxlO1xuXG4gICAgICAgICAgICAgICAgICB2YXJpYWJsZSA9IGxvY2FsQ29udGV4dC5maW5kVmFyaWFibGVCeVZhcmlhYmxlTm9kZSh2YXJpYWJsZU5vZGUpO1xuXG4gICAgICAgICAgICAgICAgICB2YXJpYWJsZSA9IFZhcmlhYmxlLmZyb21WYXJpYWJsZUFuZFR5cGUodmFyaWFibGUsIHR5cGUpOyAgLy8vXG5cbiAgICAgICAgICAgICAgICAgIGNvbnN0IHZhcmlhYmxlQXNzaWdubWVudCA9IFZhcmlhYmxlQXNzaWdubWVudC5mcm9tVmFyaWFibGUodmFyaWFibGUpLFxuICAgICAgICAgICAgICAgICAgICAgICAgYXNzaWdubWVudCA9IHZhcmlhYmxlQXNzaWdubWVudDsgIC8vL1xuXG4gICAgICAgICAgICAgICAgICBhc3NpZ25tZW50cy5wdXNoKGFzc2lnbm1lbnQpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHZlcmlmaWVkQWhlYWQgPSB0cnVlO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgcmV0dXJuIHZlcmlmaWVkQWhlYWQ7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgc3RhdGVkVHlwZUFzc2VydGlvblZlcmlmaWVkID0gdGVybVZlcmlmaWVkOyAvLy9cbiAgICB9XG5cbiAgICBpZiAoc3RhdGVkVHlwZUFzc2VydGlvblZlcmlmaWVkKSB7XG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHt0eXBlQXNzZXJ0aW9uU3RyaW5nfScgc3RhdGVkIHR5cGUgYXNzZXJ0aW9uLmAsIHR5cGVBc3NlcnRpb25Ob2RlKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gc3RhdGVkVHlwZUFzc2VydGlvblZlcmlmaWVkO1xufVxuIl0sIm5hbWVzIjpbInZlcmlmeVR5cGVBc3NlcnRpb24iLCJ0ZXJtTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwidHlwZU5vZGVRdWVyeSIsInZhcmlhYmxlTm9kZVF1ZXJ5IiwidHlwZUFzc2VydGlvbk5vZGUiLCJhc3NpZ25tZW50cyIsImRlcml2ZWQiLCJsb2NhbENvbnRleHQiLCJ0eXBlQXNzZXJ0aW9uVmVyaWZpZWQiLCJ0eXBlQXNzZXJ0aW9uU3RyaW5nIiwibm9kZUFzU3RyaW5nIiwidHJhY2UiLCJ2ZXJpZnlUeXBlQXNzZXJ0aW9uRnVuY3Rpb25zIiwidmVyaWZ5RGVyaXZlZFR5cGVBc3NlcnRpb24iLCJ2ZXJpZnlTdGF0ZWRUeXBlQXNzZXJ0aW9uIiwic29tZSIsInZlcmlmeVR5cGVBc3NlcnRpb25GdW5jdGlvbiIsImRlYnVnIiwiZGVyaXZlZFR5cGVBc3NlcnRpb25WZXJpZmllZCIsInR5cGVOb2RlIiwidHlwZSIsImZpbmRUeXBlQnlUeXBlTm9kZSIsInR5cGVTdHJpbmciLCJ0ZXJtcyIsInRlcm1Ob2RlIiwidGVybVZlcmlmaWVkIiwidmVyaWZ5VGVybSIsInZlcmlmaWVkQWhlYWQiLCJmaXJzdFRlcm0iLCJmaXJzdCIsInRlcm0iLCJ0ZXJtVHlwZSIsImdldFRlcm1UeXBlIiwidHlwZUVxdWFsVG9PclN1cGVyVHlwZU9mVGVybVR5cGUiLCJpc0VxdWFsVG9PclN1cGVyVHlwZU9mIiwic3RhdGVkVHlwZUFzc2VydGlvblZlcmlmaWVkIiwiZ2V0VHlwZSIsInR5cGVFcXVhbFRvT3JTdWJUeXBlT2ZUZXJtVHlwZSIsImlzRXF1YWxUb09yU3ViVHlwZU9mIiwidmFyaWFibGVOb2RlIiwidmFyaWFibGUiLCJmaW5kVmFyaWFibGVCeVZhcmlhYmxlTm9kZSIsIlZhcmlhYmxlIiwiZnJvbVZhcmlhYmxlQW5kVHlwZSIsInZhcmlhYmxlQXNzaWdubWVudCIsIlZhcmlhYmxlQXNzaWdubWVudCIsImZyb21WYXJpYWJsZSIsImFzc2lnbm1lbnQiLCJwdXNoIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFhQTs7O2VBQXdCQTs7OytEQVhIOzJEQUNFO2dFQUNRO3FCQUVUO3FCQUNJOzs7Ozs7QUFFMUIsSUFBTUMsZ0JBQWdCQyxJQUFBQSxnQkFBUyxFQUFDLHlCQUMxQkMsZ0JBQWdCRCxJQUFBQSxnQkFBUyxFQUFDLHlCQUMxQkUsb0JBQW9CRixJQUFBQSxnQkFBUyxFQUFDO0FBRXJCLFNBQVNGLG9CQUFvQkssaUJBQWlCLEVBQUVDLFdBQVcsRUFBRUMsT0FBTyxFQUFFQyxZQUFZO0lBQy9GLElBQUlDO0lBRUosSUFBTUMsc0JBQXNCRixhQUFhRyxZQUFZLENBQUNOO0lBRXRERyxhQUFhSSxLQUFLLENBQUMsQUFBQyxrQkFBcUMsT0FBcEJGLHFCQUFvQix3QkFBc0JMO0lBRS9FLElBQU1RLCtCQUErQjtRQUNuQ0M7UUFDQUM7S0FDRDtJQUVETix3QkFBd0JJLDZCQUE2QkcsSUFBSSxDQUFDLFNBQUNDO1FBQ3pELElBQU1SLHdCQUF3QlEsNEJBQTRCWixtQkFBbUJDLGFBQWFDLFNBQVNDO1FBRW5HLElBQUlDLHVCQUF1QjtZQUN6QixPQUFPO1FBQ1Q7SUFDRjtJQUVBLElBQUlBLHVCQUF1QjtRQUN6QkQsYUFBYVUsS0FBSyxDQUFDLEFBQUMsb0JBQXVDLE9BQXBCUixxQkFBb0Isc0JBQW9CTDtJQUNqRjtJQUVBLE9BQU9JO0FBQ1Q7QUFFQSxTQUFTSywyQkFBMkJULGlCQUFpQixFQUFFQyxXQUFXLEVBQUVDLE9BQU8sRUFBRUMsWUFBWTtJQUN2RixJQUFJVywrQkFBK0I7SUFFbkMsSUFBSVosU0FBUztRQUNYLElBQU1HLHNCQUFzQkYsYUFBYUcsWUFBWSxDQUFDTjtRQUV0REcsYUFBYUksS0FBSyxDQUFDLEFBQUMsa0JBQXFDLE9BQXBCRixxQkFBb0IsZ0NBQThCTDtRQUV2RixJQUFNZSxXQUFXakIsY0FBY0Usb0JBQ3pCZ0IsT0FBT2IsYUFBYWMsa0JBQWtCLENBQUNGO1FBRTdDLElBQUlDLFNBQVMsTUFBTTtZQUNqQixJQUFNRSxhQUFhZixhQUFhRyxZQUFZLENBQUNTO1lBRTdDWixhQUFhVSxLQUFLLENBQUMsQUFBQyxRQUFrQixPQUFYSyxZQUFXLDJCQUF5Qkg7UUFDakU7UUFFQSxJQUFNSSxRQUFRLEVBQUUsRUFDVkMsV0FBV3hCLGNBQWNJLG9CQUN6QnFCLGVBQWVDLElBQUFBLGFBQVUsRUFBQ0YsVUFBVUQsT0FBT2hCLGNBQWM7WUFDdkQsSUFBSW9CLGdCQUFnQjtZQUVwQixJQUFNQyxZQUFZQyxJQUFBQSxZQUFLLEVBQUNOLFFBQ2xCTyxPQUFPRixXQUNQRyxXQUFXeEIsYUFBYXlCLFdBQVcsQ0FBQ0YsT0FDcENHLG1DQUFtQ2IsS0FBS2Msc0JBQXNCLENBQUNIO1lBRXJFLElBQUlFLGtDQUFrQztnQkFDcENOLGdCQUFnQjtZQUNsQjtZQUVBLE9BQU9BO1FBQ1Q7UUFFTlQsK0JBQStCTyxjQUFjLEdBQUc7UUFFaEQsSUFBSVAsOEJBQThCO1lBQ2hDWCxhQUFhVSxLQUFLLENBQUMsQUFBQyxvQkFBdUMsT0FBcEJSLHFCQUFvQiw4QkFBNEJMO1FBQ3pGO0lBQ0Y7SUFFQSxPQUFPYztBQUNUO0FBRUEsU0FBU0osMEJBQTBCVixpQkFBaUIsRUFBRUMsV0FBVyxFQUFFQyxPQUFPLEVBQUVDLFlBQVk7SUFDdEYsSUFBSTRCLDhCQUE4QjtJQUVsQyxJQUFJLENBQUM3QixTQUFTO1FBQ1osSUFBTUcsc0JBQXNCRixhQUFhRyxZQUFZLENBQUNOO1FBRXRERyxhQUFhSSxLQUFLLENBQUMsQUFBQyxrQkFBcUMsT0FBcEJGLHFCQUFvQiwrQkFBNkJMO1FBRXRGLElBQU1lLFdBQVdqQixjQUFjRSxvQkFDekJnQixPQUFPYixhQUFhYyxrQkFBa0IsQ0FBQ0Y7UUFFN0MsSUFBSUMsU0FBUyxNQUFNO1lBQ2pCLElBQU1FLGFBQWFmLGFBQWFHLFlBQVksQ0FBQ1M7WUFFN0NaLGFBQWFVLEtBQUssQ0FBQyxBQUFDLFFBQWtCLE9BQVhLLFlBQVcsMkJBQXlCSDtRQUNqRSxPQUFPO1lBQ0wsSUFBTUksUUFBUSxFQUFFLEVBQ1ZDLFdBQVd4QixjQUFjSSxvQkFDekJxQixlQUFlQyxJQUFBQSxhQUFVLEVBQUNGLFVBQVVELE9BQU9oQixjQUFjO2dCQUN2RCxJQUFJb0IsZ0JBQWdCO2dCQUVwQixJQUFNQyxZQUFZQyxJQUFBQSxZQUFLLEVBQUNOLFFBQ2xCTyxPQUFPRixXQUNQRyxXQUFXRCxLQUFLTSxPQUFPLElBQ3ZCQyxpQ0FBaUNqQixLQUFLa0Isb0JBQW9CLENBQUNQO2dCQUVqRSxJQUFJTSxnQ0FBZ0M7b0JBQ2xDLElBQU1FLGVBQWVwQyxrQkFBa0JxQjtvQkFFdkMsSUFBSWUsaUJBQWlCLE1BQU07d0JBQ3pCLElBQUlDO3dCQUVKQSxXQUFXakMsYUFBYWtDLDBCQUEwQixDQUFDRjt3QkFFbkRDLFdBQVdFLGlCQUFRLENBQUNDLG1CQUFtQixDQUFDSCxVQUFVcEIsT0FBUSxHQUFHO3dCQUU3RCxJQUFNd0IscUJBQXFCQyxrQkFBa0IsQ0FBQ0MsWUFBWSxDQUFDTixXQUNyRE8sYUFBYUgsb0JBQXFCLEdBQUc7d0JBRTNDdkMsWUFBWTJDLElBQUksQ0FBQ0Q7b0JBQ25CO29CQUVBcEIsZ0JBQWdCO2dCQUNsQjtnQkFFQSxPQUFPQTtZQUNUO1lBRU5RLDhCQUE4QlYsY0FBYyxHQUFHO1FBQ2pEO1FBRUEsSUFBSVUsNkJBQTZCO1lBQy9CNUIsYUFBYVUsS0FBSyxDQUFDLEFBQUMsb0JBQXVDLE9BQXBCUixxQkFBb0IsNkJBQTJCTDtRQUN4RjtJQUNGO0lBRUEsT0FBTytCO0FBQ1QifQ==
|
package/lib/verify/equality.js
CHANGED
|
@@ -48,8 +48,6 @@ function verifyDerivedEquality(equalityNode, assignments, derived, localContext)
|
|
|
48
48
|
if (equality !== null) {
|
|
49
49
|
var equalityEqual = equality.isEqual(localContext);
|
|
50
50
|
if (equalityEqual) {
|
|
51
|
-
var equalityAssignment = _equality1.default.fromEquality(equality), assignment = equalityAssignment; ///
|
|
52
|
-
assignments.push(assignment);
|
|
53
51
|
verifiedAhead = true;
|
|
54
52
|
}
|
|
55
53
|
}
|
|
@@ -85,4 +83,4 @@ function verifyStatedEquality(equalityNode, assignments, derived, localContext)
|
|
|
85
83
|
return statedEqualityVerified;
|
|
86
84
|
}
|
|
87
85
|
|
|
88
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvZXF1YWxpdHkuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBFcXVhbGl0eSBmcm9tIFwiLi4vZXF1YWxpdHlcIjtcbmltcG9ydCB2ZXJpZnlUZXJtcyBmcm9tIFwiLi4vdmVyaWZ5L3Rlcm1zXCI7XG5pbXBvcnQgRXF1YWxpdHlBc3NpZ25tZW50IGZyb20gXCIuLi9hc3NpZ25tZW50L2VxdWFsaXR5XCI7XG5cbmltcG9ydCB7IG5vZGVzUXVlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5cbmNvbnN0IHRlcm1Ob2Rlc1F1ZXJ5ID0gbm9kZXNRdWVyeShcIi9lcXVhbGl0eS90ZXJtXCIpO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB2ZXJpZnlFcXVhbGl0eShlcXVhbGl0eU5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IGVxdWFsaXR5VmVyaWZpZWQ7XG5cbiAgY29uc3QgZXF1YWxpdHlTdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKGVxdWFsaXR5Tm9kZSk7XG5cbiAgbG9jYWxDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke2VxdWFsaXR5U3RyaW5nfScgZXF1YWxpdHkuLi5gLCBlcXVhbGl0eU5vZGUpO1xuXG4gIGNvbnN0IHZlcmlmeUVxdWFsaXR5RnVuY3Rpb25zID0gW1xuICAgIHZlcmlmeURlcml2ZWRFcXVhbGl0eSxcbiAgICB2ZXJpZnlTdGF0ZWRFcXVhbGl0eVxuICBdO1xuXG4gIGVxdWFsaXR5VmVyaWZpZWQgPSB2ZXJpZnlFcXVhbGl0eUZ1bmN0aW9ucy5zb21lKCh2ZXJpZnlFcXVhbGl0eUZ1bmN0aW9uKSA9PiB7XG4gICAgY29uc3QgZXF1YWxpdHlWZXJpZmllZCA9IHZlcmlmeUVxdWFsaXR5RnVuY3Rpb24oZXF1YWxpdHlOb2RlLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgbG9jYWxDb250ZXh0KTtcblxuICAgIGlmIChlcXVhbGl0eVZlcmlmaWVkKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pO1xuXG4gIGlmIChlcXVhbGl0eVZlcmlmaWVkKSB7XG4gICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7ZXF1YWxpdHlTdHJpbmd9JyBlcXVhbGl0eS5gLCBlcXVhbGl0eU5vZGUpO1xuICB9XG5cbiAgcmV0dXJuIGVxdWFsaXR5VmVyaWZpZWQ7XG59XG5cbmZ1bmN0aW9uIHZlcmlmeURlcml2ZWRFcXVhbGl0eShlcXVhbGl0eU5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IGRlcml2ZWRFcXVhbGl0eVZlcmlmaWVkID0gZmFsc2U7XG5cbiAgaWYgKGRlcml2ZWQpIHtcbiAgICBjb25zdCBlcXVhbGl0eVN0cmluZyA9IGxvY2FsQ29udGV4dC5ub2RlQXNTdHJpbmcoZXF1YWxpdHlOb2RlKTtcblxuICAgIGxvY2FsQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtlcXVhbGl0eVN0cmluZ30nIGRlcml2ZWQgZXF1YWxpdHkuLi5gLCBlcXVhbGl0eU5vZGUpO1xuXG4gICAgY29uc3QgdGVybXMgPSBbXSxcbiAgICAgICAgICB0ZXJtTm9kZXMgPSB0ZXJtTm9kZXNRdWVyeShlcXVhbGl0eU5vZGUpLFxuICAgICAgICAgIHRlcm1zVmVyaWZpZWQgPSB2ZXJpZnlUZXJtcyh0ZXJtTm9kZXMsIHRlcm1zLCBsb2NhbENvbnRleHQsICgpID0+
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvZXF1YWxpdHkuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBFcXVhbGl0eSBmcm9tIFwiLi4vZXF1YWxpdHlcIjtcbmltcG9ydCB2ZXJpZnlUZXJtcyBmcm9tIFwiLi4vdmVyaWZ5L3Rlcm1zXCI7XG5pbXBvcnQgRXF1YWxpdHlBc3NpZ25tZW50IGZyb20gXCIuLi9hc3NpZ25tZW50L2VxdWFsaXR5XCI7XG5cbmltcG9ydCB7IG5vZGVzUXVlcnkgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5cbmNvbnN0IHRlcm1Ob2Rlc1F1ZXJ5ID0gbm9kZXNRdWVyeShcIi9lcXVhbGl0eS90ZXJtXCIpO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB2ZXJpZnlFcXVhbGl0eShlcXVhbGl0eU5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IGVxdWFsaXR5VmVyaWZpZWQ7XG5cbiAgY29uc3QgZXF1YWxpdHlTdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKGVxdWFsaXR5Tm9kZSk7XG5cbiAgbG9jYWxDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke2VxdWFsaXR5U3RyaW5nfScgZXF1YWxpdHkuLi5gLCBlcXVhbGl0eU5vZGUpO1xuXG4gIGNvbnN0IHZlcmlmeUVxdWFsaXR5RnVuY3Rpb25zID0gW1xuICAgIHZlcmlmeURlcml2ZWRFcXVhbGl0eSxcbiAgICB2ZXJpZnlTdGF0ZWRFcXVhbGl0eVxuICBdO1xuXG4gIGVxdWFsaXR5VmVyaWZpZWQgPSB2ZXJpZnlFcXVhbGl0eUZ1bmN0aW9ucy5zb21lKCh2ZXJpZnlFcXVhbGl0eUZ1bmN0aW9uKSA9PiB7XG4gICAgY29uc3QgZXF1YWxpdHlWZXJpZmllZCA9IHZlcmlmeUVxdWFsaXR5RnVuY3Rpb24oZXF1YWxpdHlOb2RlLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgbG9jYWxDb250ZXh0KTtcblxuICAgIGlmIChlcXVhbGl0eVZlcmlmaWVkKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pO1xuXG4gIGlmIChlcXVhbGl0eVZlcmlmaWVkKSB7XG4gICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7ZXF1YWxpdHlTdHJpbmd9JyBlcXVhbGl0eS5gLCBlcXVhbGl0eU5vZGUpO1xuICB9XG5cbiAgcmV0dXJuIGVxdWFsaXR5VmVyaWZpZWQ7XG59XG5cbmZ1bmN0aW9uIHZlcmlmeURlcml2ZWRFcXVhbGl0eShlcXVhbGl0eU5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IGRlcml2ZWRFcXVhbGl0eVZlcmlmaWVkID0gZmFsc2U7XG5cbiAgaWYgKGRlcml2ZWQpIHtcbiAgICBjb25zdCBlcXVhbGl0eVN0cmluZyA9IGxvY2FsQ29udGV4dC5ub2RlQXNTdHJpbmcoZXF1YWxpdHlOb2RlKTtcblxuICAgIGxvY2FsQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtlcXVhbGl0eVN0cmluZ30nIGRlcml2ZWQgZXF1YWxpdHkuLi5gLCBlcXVhbGl0eU5vZGUpO1xuXG4gICAgY29uc3QgdGVybXMgPSBbXSxcbiAgICAgICAgICB0ZXJtTm9kZXMgPSB0ZXJtTm9kZXNRdWVyeShlcXVhbGl0eU5vZGUpLFxuICAgICAgICAgIHRlcm1zVmVyaWZpZWQgPSB2ZXJpZnlUZXJtcyh0ZXJtTm9kZXMsIHRlcm1zLCBsb2NhbENvbnRleHQsICgpID0+IHtcbiAgICAgICAgICAgIGxldCB2ZXJpZmllZEFoZWFkID0gZmFsc2U7XG5cbiAgICAgICAgICAgIGNvbnN0IGVxdWFsaXR5ID0gRXF1YWxpdHkuZnJvbVRlcm1zQW5kRXF1YWxpdHlOb2RlKHRlcm1zLCBlcXVhbGl0eU5vZGUpO1xuXG4gICAgICAgICAgICBpZiAoZXF1YWxpdHkgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgY29uc3QgZXF1YWxpdHlFcXVhbCA9IGVxdWFsaXR5LmlzRXF1YWwobG9jYWxDb250ZXh0KTtcblxuICAgICAgICAgICAgICBpZiAoZXF1YWxpdHlFcXVhbCkge1xuICAgICAgICAgICAgICAgIHZlcmlmaWVkQWhlYWQgPSB0cnVlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB2ZXJpZmllZEFoZWFkO1xuICAgICAgICAgIH0pO1xuXG4gICAgZGVyaXZlZEVxdWFsaXR5VmVyaWZpZWQgPSB0ZXJtc1ZlcmlmaWVkOyAvLy9cblxuICAgIGlmIChkZXJpdmVkRXF1YWxpdHlWZXJpZmllZCkge1xuICAgICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7ZXF1YWxpdHlTdHJpbmd9JyBkZXJpdmVkIGVxdWFsaXR5LmAsIGVxdWFsaXR5Tm9kZSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGRlcml2ZWRFcXVhbGl0eVZlcmlmaWVkO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlTdGF0ZWRFcXVhbGl0eShlcXVhbGl0eU5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IHN0YXRlZEVxdWFsaXR5VmVyaWZpZWQgPSBmYWxzZTtcblxuICBpZiAoIWRlcml2ZWQpIHtcbiAgICBjb25zdCBlcXVhbGl0eVN0cmluZyA9IGxvY2FsQ29udGV4dC5ub2RlQXNTdHJpbmcoZXF1YWxpdHlOb2RlKTtcblxuICAgIGxvY2FsQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtlcXVhbGl0eVN0cmluZ30nIHN0YXRlZCBlcXVhbGl0eS4uLmAsIGVxdWFsaXR5Tm9kZSk7XG5cbiAgICBjb25zdCB0ZXJtcyA9IFtdLFxuICAgICAgICAgIHRlcm1Ob2RlcyA9IHRlcm1Ob2Rlc1F1ZXJ5KGVxdWFsaXR5Tm9kZSksXG4gICAgICAgICAgdGVybXNWZXJpZmllZCA9IHZlcmlmeVRlcm1zKHRlcm1Ob2RlcywgdGVybXMsIGxvY2FsQ29udGV4dCwgKCkgPT4ge1xuICAgICAgICAgICAgbGV0IHZlcmlmaWVkQWhlYWQgPSBmYWxzZTtcblxuICAgICAgICAgICAgY29uc3QgZXF1YWxpdHkgPSBFcXVhbGl0eS5mcm9tVGVybXNBbmRFcXVhbGl0eU5vZGUodGVybXMsIGVxdWFsaXR5Tm9kZSk7XG5cbiAgICAgICAgICAgIGlmIChlcXVhbGl0eSAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICBjb25zdCBlcXVhbGl0eUFzc2lnbm1lbnQgPSBFcXVhbGl0eUFzc2lnbm1lbnQuZnJvbUVxdWFsaXR5KGVxdWFsaXR5KSxcbiAgICAgICAgICAgICAgICAgICAgYXNzaWdubWVudCA9IGVxdWFsaXR5QXNzaWdubWVudDsgLy8vXG5cbiAgICAgICAgICAgICAgYXNzaWdubWVudHMucHVzaChhc3NpZ25tZW50KTtcblxuICAgICAgICAgICAgICB2ZXJpZmllZEFoZWFkID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHZlcmlmaWVkQWhlYWQ7XG4gICAgICAgICAgfSk7XG5cbiAgICBzdGF0ZWRFcXVhbGl0eVZlcmlmaWVkID0gdGVybXNWZXJpZmllZDsgLy8vXG5cbiAgICBpZiAoc3RhdGVkRXF1YWxpdHlWZXJpZmllZCkge1xuICAgICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7ZXF1YWxpdHlTdHJpbmd9JyBzdGF0ZWQgZXF1YWxpdHkuYCwgZXF1YWxpdHlOb2RlKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gc3RhdGVkRXF1YWxpdHlWZXJpZmllZDtcbn1cbiJdLCJuYW1lcyI6WyJ2ZXJpZnlFcXVhbGl0eSIsInRlcm1Ob2Rlc1F1ZXJ5Iiwibm9kZXNRdWVyeSIsImVxdWFsaXR5Tm9kZSIsImFzc2lnbm1lbnRzIiwiZGVyaXZlZCIsImxvY2FsQ29udGV4dCIsImVxdWFsaXR5VmVyaWZpZWQiLCJlcXVhbGl0eVN0cmluZyIsIm5vZGVBc1N0cmluZyIsInRyYWNlIiwidmVyaWZ5RXF1YWxpdHlGdW5jdGlvbnMiLCJ2ZXJpZnlEZXJpdmVkRXF1YWxpdHkiLCJ2ZXJpZnlTdGF0ZWRFcXVhbGl0eSIsInNvbWUiLCJ2ZXJpZnlFcXVhbGl0eUZ1bmN0aW9uIiwiZGVidWciLCJkZXJpdmVkRXF1YWxpdHlWZXJpZmllZCIsInRlcm1zIiwidGVybU5vZGVzIiwidGVybXNWZXJpZmllZCIsInZlcmlmeVRlcm1zIiwidmVyaWZpZWRBaGVhZCIsImVxdWFsaXR5IiwiRXF1YWxpdHkiLCJmcm9tVGVybXNBbmRFcXVhbGl0eU5vZGUiLCJlcXVhbGl0eUVxdWFsIiwiaXNFcXVhbCIsInN0YXRlZEVxdWFsaXR5VmVyaWZpZWQiLCJlcXVhbGl0eUFzc2lnbm1lbnQiLCJFcXVhbGl0eUFzc2lnbm1lbnQiLCJmcm9tRXF1YWxpdHkiLCJhc3NpZ25tZW50IiwicHVzaCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBVUE7OztlQUF3QkE7OzsrREFSSDs0REFDRztnRUFDTztxQkFFSjs7Ozs7O0FBRTNCLElBQU1DLGlCQUFpQkMsSUFBQUEsaUJBQVUsRUFBQztBQUVuQixTQUFTRixlQUFlRyxZQUFZLEVBQUVDLFdBQVcsRUFBRUMsT0FBTyxFQUFFQyxZQUFZO0lBQ3JGLElBQUlDO0lBRUosSUFBTUMsaUJBQWlCRixhQUFhRyxZQUFZLENBQUNOO0lBRWpERyxhQUFhSSxLQUFLLENBQUMsQUFBQyxrQkFBZ0MsT0FBZkYsZ0JBQWUsa0JBQWdCTDtJQUVwRSxJQUFNUSwwQkFBMEI7UUFDOUJDO1FBQ0FDO0tBQ0Q7SUFFRE4sbUJBQW1CSSx3QkFBd0JHLElBQUksQ0FBQyxTQUFDQztRQUMvQyxJQUFNUixtQkFBbUJRLHVCQUF1QlosY0FBY0MsYUFBYUMsU0FBU0M7UUFFcEYsSUFBSUMsa0JBQWtCO1lBQ3BCLE9BQU87UUFDVDtJQUNGO0lBRUEsSUFBSUEsa0JBQWtCO1FBQ3BCRCxhQUFhVSxLQUFLLENBQUMsQUFBQyxvQkFBa0MsT0FBZlIsZ0JBQWUsZ0JBQWNMO0lBQ3RFO0lBRUEsT0FBT0k7QUFDVDtBQUVBLFNBQVNLLHNCQUFzQlQsWUFBWSxFQUFFQyxXQUFXLEVBQUVDLE9BQU8sRUFBRUMsWUFBWTtJQUM3RSxJQUFJVywwQkFBMEI7SUFFOUIsSUFBSVosU0FBUztRQUNYLElBQU1HLGlCQUFpQkYsYUFBYUcsWUFBWSxDQUFDTjtRQUVqREcsYUFBYUksS0FBSyxDQUFDLEFBQUMsa0JBQWdDLE9BQWZGLGdCQUFlLDBCQUF3Qkw7UUFFNUUsSUFBTWUsUUFBUSxFQUFFLEVBQ1ZDLFlBQVlsQixlQUFlRSxlQUMzQmlCLGdCQUFnQkMsSUFBQUEsY0FBVyxFQUFDRixXQUFXRCxPQUFPWixjQUFjO1lBQzFELElBQUlnQixnQkFBZ0I7WUFFcEIsSUFBTUMsV0FBV0MsaUJBQVEsQ0FBQ0Msd0JBQXdCLENBQUNQLE9BQU9mO1lBRTFELElBQUlvQixhQUFhLE1BQU07Z0JBQ3JCLElBQU1HLGdCQUFnQkgsU0FBU0ksT0FBTyxDQUFDckI7Z0JBRXZDLElBQUlvQixlQUFlO29CQUNqQkosZ0JBQWdCO2dCQUNsQjtZQUNGO1lBRUEsT0FBT0E7UUFDVDtRQUVOTCwwQkFBMEJHLGVBQWUsR0FBRztRQUU1QyxJQUFJSCx5QkFBeUI7WUFDM0JYLGFBQWFVLEtBQUssQ0FBQyxBQUFDLG9CQUFrQyxPQUFmUixnQkFBZSx3QkFBc0JMO1FBQzlFO0lBQ0Y7SUFFQSxPQUFPYztBQUNUO0FBRUEsU0FBU0oscUJBQXFCVixZQUFZLEVBQUVDLFdBQVcsRUFBRUMsT0FBTyxFQUFFQyxZQUFZO0lBQzVFLElBQUlzQix5QkFBeUI7SUFFN0IsSUFBSSxDQUFDdkIsU0FBUztRQUNaLElBQU1HLGlCQUFpQkYsYUFBYUcsWUFBWSxDQUFDTjtRQUVqREcsYUFBYUksS0FBSyxDQUFDLEFBQUMsa0JBQWdDLE9BQWZGLGdCQUFlLHlCQUF1Qkw7UUFFM0UsSUFBTWUsUUFBUSxFQUFFLEVBQ1ZDLFlBQVlsQixlQUFlRSxlQUMzQmlCLGdCQUFnQkMsSUFBQUEsY0FBVyxFQUFDRixXQUFXRCxPQUFPWixjQUFjO1lBQzFELElBQUlnQixnQkFBZ0I7WUFFcEIsSUFBTUMsV0FBV0MsaUJBQVEsQ0FBQ0Msd0JBQXdCLENBQUNQLE9BQU9mO1lBRTFELElBQUlvQixhQUFhLE1BQU07Z0JBQ3JCLElBQU1NLHFCQUFxQkMsa0JBQWtCLENBQUNDLFlBQVksQ0FBQ1IsV0FDckRTLGFBQWFILG9CQUFvQixHQUFHO2dCQUUxQ3pCLFlBQVk2QixJQUFJLENBQUNEO2dCQUVqQlYsZ0JBQWdCO1lBQ2xCO1lBRUEsT0FBT0E7UUFDVDtRQUVOTSx5QkFBeUJSLGVBQWUsR0FBRztRQUUzQyxJQUFJUSx3QkFBd0I7WUFDMUJ0QixhQUFhVSxLQUFLLENBQUMsQUFBQyxvQkFBa0MsT0FBZlIsZ0JBQWUsdUJBQXFCTDtRQUM3RTtJQUNGO0lBRUEsT0FBT3lCO0FBQ1QifQ==
|
|
@@ -16,6 +16,7 @@ function _interop_require_default(obj) {
|
|
|
16
16
|
};
|
|
17
17
|
}
|
|
18
18
|
var statementNodeQuery = (0, _query.nodeQuery)("/qualifiedStatement/statement!"), metavariableNodeQuery = (0, _query.nodeQuery)("/qualifiedStatement/reference/metavariable!");
|
|
19
|
+
var equalityNodeQuery = (0, _query.nodeQuery)("/statement/equality!"), judgementNodeQuery = (0, _query.nodeQuery)("/statement/judgement!"), typeAssertionNodeQuery = (0, _query.nodeQuery)("/statement/typeAssertion!"), definedAssertionNodeQuery = (0, _query.nodeQuery)("/statement/definedAssertion!"), containedAssertionNodeQuery = (0, _query.nodeQuery)("/statement/containedAssertion!");
|
|
19
20
|
var unifyDerivedQualifiedStatementFunctions = [
|
|
20
21
|
unifyDerivedQualifiedStatementAWithRule,
|
|
21
22
|
unifyDerivedQualifiedStatementAWithAxiom,
|
|
@@ -43,19 +44,38 @@ function verifyQualifiedStatement(qualifiedStatementNode, substitutions, assignm
|
|
|
43
44
|
return qualifiedStatementVerified;
|
|
44
45
|
}
|
|
45
46
|
function verifyDerivedQualifiedStatement(qualifiedStatementNode, substitutions, localContext) {
|
|
46
|
-
var derivedQualifiedStatementVerified;
|
|
47
|
+
var derivedQualifiedStatementVerified = false;
|
|
47
48
|
var qualifiedStatementString = localContext.nodeAsString(qualifiedStatementNode);
|
|
48
49
|
localContext.trace("Verifying the '".concat(qualifiedStatementString, "' derived qualified statement..."), qualifiedStatementNode);
|
|
49
|
-
|
|
50
|
-
var
|
|
51
|
-
|
|
52
|
-
}
|
|
53
|
-
derivedQualifiedStatementVerified
|
|
50
|
+
if (!derivedQualifiedStatementVerified) {
|
|
51
|
+
var derivedQualifiedStatementVerifiedTrivially = verifyDerivedQualifiedStatementATrivially(qualifiedStatementNode, substitutions, localContext);
|
|
52
|
+
derivedQualifiedStatementVerified = derivedQualifiedStatementVerifiedTrivially; ///
|
|
53
|
+
}
|
|
54
|
+
if (!derivedQualifiedStatementVerified) {
|
|
55
|
+
var derivedQualifiedStatementUnified = unifyDerivedQualifiedStatementFunctions.some(function(unifyDerivedQualifiedStatementFunction) {
|
|
56
|
+
var derivedQualifiedStatementUnified = unifyDerivedQualifiedStatementFunction(qualifiedStatementNode, substitutions, localContext);
|
|
57
|
+
return derivedQualifiedStatementUnified;
|
|
58
|
+
});
|
|
59
|
+
derivedQualifiedStatementVerified = derivedQualifiedStatementUnified; ///
|
|
60
|
+
}
|
|
54
61
|
if (derivedQualifiedStatementVerified) {
|
|
55
62
|
localContext.debug("...verified the '".concat(qualifiedStatementString, "' derived qualified statement."), qualifiedStatementNode);
|
|
56
63
|
}
|
|
57
64
|
return derivedQualifiedStatementVerified;
|
|
58
65
|
}
|
|
66
|
+
function verifyDerivedQualifiedStatementATrivially(qualifiedStatementNode, substitutions, localContext) {
|
|
67
|
+
var derivedQualifiedStatementVerifiedTrivially = false;
|
|
68
|
+
var metavariableNode = metavariableNodeQuery(qualifiedStatementNode);
|
|
69
|
+
if (metavariableNode === null) {
|
|
70
|
+
var statementNode = statementNodeQuery(qualifiedStatementNode), qualifiedStatementString = localContext.nodeAsString(qualifiedStatementNode);
|
|
71
|
+
localContext.trace("Unifying the '".concat(qualifiedStatementString, "' derived qualified statement trivially..."), qualifiedStatementNode);
|
|
72
|
+
debugger;
|
|
73
|
+
if (derivedQualifiedStatementVerifiedTrivially) {
|
|
74
|
+
localContext.debug("...unified the '".concat(qualifiedStatementString, "' derived qualified statement trivially."), qualifiedStatementNode);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return derivedQualifiedStatementVerifiedTrivially;
|
|
78
|
+
}
|
|
59
79
|
function unifyDerivedQualifiedStatementAWithRule(qualifiedStatementNode, substitutions, localContext) {
|
|
60
80
|
var derivedQualifiedStatementUnifiedWithRule = false;
|
|
61
81
|
var metavariableNode = metavariableNodeQuery(qualifiedStatementNode), rule = localContext.findRuleByMetavariableNode(metavariableNode);
|
|
@@ -152,4 +172,4 @@ function unifyDerivedQualifiedStatementAWithReference(qualifiedStatementNode, su
|
|
|
152
172
|
return derivedQualifiedStatementUnifiedWithReference;
|
|
153
173
|
}
|
|
154
174
|
|
|
155
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92ZXJpZnkvc3RhdGVtZW50L3F1YWxpZmllZC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHZlcmlmeVN0YXRlbWVudCBmcm9tIFwiLi4vLi4vdmVyaWZ5L3N0YXRlbWVudFwiO1xuXG5pbXBvcnQgeyBub2RlUXVlcnkgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5cbmNvbnN0IHN0YXRlbWVudE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9xdWFsaWZpZWRTdGF0ZW1lbnQvc3RhdGVtZW50IVwiKSxcbiAgICAgIG1ldGF2YXJpYWJsZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9xdWFsaWZpZWRTdGF0ZW1lbnQvcmVmZXJlbmNlL21ldGF2YXJpYWJsZSFcIik7XG5cbmNvbnN0IHVuaWZ5RGVyaXZlZFF1YWxpZmllZFN0YXRlbWVudEZ1bmN0aW9ucyA9IFtcbiAgdW5pZnlEZXJpdmVkUXVhbGlmaWVkU3RhdGVtZW50QVdpdGhSdWxlLFxuICB1bmlmeURlcml2ZWRRdWFsaWZpZWRTdGF0ZW1lbnRBV2l0aEF4aW9tLFxuICB1bmlmeURlcml2ZWRRdWFsaWZpZWRTdGF0ZW1lbnRBV2l0aExlbW1hLFxuICB1bmlmeURlcml2ZWRRdWFsaWZpZWRTdGF0ZW1lbnRBV2l0aFRoZW9yZW0sXG4gIHVuaWZ5RGVyaXZlZFF1YWxpZmllZFN0YXRlbWVudEFXaXRoQ29uamVjdHVyZSxcbiAgdW5pZnlEZXJpdmVkUXVhbGlmaWVkU3RhdGVtZW50QVdpdGhSZWZlcmVuY2Vcbl07XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHZlcmlmeVF1YWxpZmllZFN0YXRlbWVudChxdWFsaWZpZWRTdGF0ZW1lbnROb2RlLCBzdWJzdGl0dXRpb25zLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgbG9jYWxDb250ZXh0KSB7XG4gIGxldCBxdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZDtcblxuICBjb25zdCBxdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKHF1YWxpZmllZFN0YXRlbWVudE5vZGUpO1xuXG4gIGxvY2FsQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtxdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmd9JyBxdWFsaWZpZWQgc3RhdGVtZW50Li4uYCwgcXVhbGlmaWVkU3RhdGVtZW50Tm9kZSk7XG5cbiAgY29uc3Qgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudE5vZGVRdWVyeShxdWFsaWZpZWRTdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgc3RhdGVtZW50VmVyaWZpZWQgPSB2ZXJpZnlTdGF0ZW1lbnQoc3RhdGVtZW50Tm9kZSwgYXNzaWdubWVudHMsIGRlcml2ZWQsIGxvY2FsQ29udGV4dCk7XG5cbiAgaWYgKHN0YXRlbWVudFZlcmlmaWVkKSB7XG4gICAgaWYgKGRlcml2ZWQpIHtcbiAgICAgIGNvbnN0IGRlcml2ZWRRdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCA9IHZlcmlmeURlcml2ZWRRdWFsaWZpZWRTdGF0ZW1lbnQocXVhbGlmaWVkU3RhdGVtZW50Tm9kZSwgc3Vic3RpdHV0aW9ucywgbG9jYWxDb250ZXh0KTtcblxuICAgICAgcXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQgPSBkZXJpdmVkUXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQ7IC8vL1xuICAgIH0gZWxzZSB7XG4gICAgICBxdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgaWYgKHF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkKSB7XG4gICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7cXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nfScgcXVhbGlmaWVkIHN0YXRlbWVudC5gLCBxdWFsaWZpZWRTdGF0ZW1lbnROb2RlKTtcbiAgfVxuXG4gIHJldHVybiBxdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZDtcbn1cblxuZnVuY3Rpb24gdmVyaWZ5RGVyaXZlZFF1YWxpZmllZFN0YXRlbWVudChxdWFsaWZpZWRTdGF0ZW1lbnROb2RlLCBzdWJzdGl0dXRpb25zLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IGRlcml2ZWRRdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZDtcblxuICBjb25zdCBxdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKHF1YWxpZmllZFN0YXRlbWVudE5vZGUpO1xuXG4gIGxvY2FsQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtxdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmd9JyBkZXJpdmVkIHF1YWxpZmllZCBzdGF0ZW1lbnQuLi5gLCBxdWFsaWZpZWRTdGF0ZW1lbnROb2RlKTtcblxuICBjb25zdCBkZXJpdmVkUXVhbGlmaWVkU3RhdGVtZW50VW5pZmllZCA9IHVuaWZ5RGVyaXZlZFF1YWxpZmllZFN0YXRlbWVudEZ1bmN0aW9ucy5zb21lKCh1bmlmeURlcml2ZWRRdWFsaWZpZWRTdGF0ZW1lbnRGdW5jdGlvbikgPT4ge1xuICAgIGNvbnN0IGRlcml2ZWRRdWFsaWZpZWRTdGF0ZW1lbnRVbmlmaWVkID0gdW5pZnlEZXJpdmVkUXVhbGlmaWVkU3RhdGVtZW50RnVuY3Rpb24ocXVhbGlmaWVkU3RhdGVtZW50Tm9kZSwgc3Vic3RpdHV0aW9ucywgbG9jYWxDb250ZXh0KTtcblxuICAgIHJldHVybiBkZXJpdmVkUXVhbGlmaWVkU3RhdGVtZW50VW5pZmllZDtcbiAgfSk7XG5cbiAgZGVyaXZlZFF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkID0gZGVyaXZlZFF1YWxpZmllZFN0YXRlbWVudFVuaWZpZWQ7IC8vL1xuXG4gIGlmIChkZXJpdmVkUXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQpIHtcbiAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtxdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmd9JyBkZXJpdmVkIHF1YWxpZmllZCBzdGF0ZW1lbnQuYCwgcXVhbGlmaWVkU3RhdGVtZW50Tm9kZSk7XG4gIH1cblxuICByZXR1cm4gZGVyaXZlZFF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkO1xufVxuXG5mdW5jdGlvbiB1bmlmeURlcml2ZWRRdWFsaWZpZWRTdGF0ZW1lbnRBV2l0aFJ1bGUocXVhbGlmaWVkU3RhdGVtZW50Tm9kZSwgc3Vic3RpdHV0aW9ucywgbG9jYWxDb250ZXh0KSB7XG4gIGxldCBkZXJpdmVkUXVhbGlmaWVkU3RhdGVtZW50VW5pZmllZFdpdGhSdWxlID0gZmFsc2U7XG5cbiAgY29uc3QgbWV0YXZhcmlhYmxlTm9kZSA9IG1ldGF2YXJpYWJsZU5vZGVRdWVyeShxdWFsaWZpZWRTdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgcnVsZSA9IGxvY2FsQ29udGV4dC5maW5kUnVsZUJ5TWV0YXZhcmlhYmxlTm9kZShtZXRhdmFyaWFibGVOb2RlKTtcblxuICBpZiAocnVsZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnROb2RlUXVlcnkocXVhbGlmaWVkU3RhdGVtZW50Tm9kZSksXG4gICAgICAgICAgbWV0YXZhcmlhYmxlU3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyhtZXRhdmFyaWFibGVOb2RlKSxcbiAgICAgICAgICBxdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKHF1YWxpZmllZFN0YXRlbWVudE5vZGUpO1xuXG4gICAgbG9jYWxDb250ZXh0LnRyYWNlKGBVbmlmeWluZyB0aGUgJyR7cXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nfScgZGVyaXZlZCBxdWFsaWZpZWQgc3RhdGVtZW50IHdpdGggdGhlICcke21ldGF2YXJpYWJsZVN0cmluZ30nIHJ1bGUuLi5gLCBxdWFsaWZpZWRTdGF0ZW1lbnROb2RlKTtcblxuICAgIGNvbnN0IHN0YXRlbWVudFVuaWZpZWQgPSBydWxlLnVuaWZ5U3RhdGVtZW50KHN0YXRlbWVudE5vZGUsIGxvY2FsQ29udGV4dCk7XG5cbiAgICBkZXJpdmVkUXVhbGlmaWVkU3RhdGVtZW50VW5pZmllZFdpdGhSdWxlID0gc3RhdGVtZW50VW5pZmllZDsgIC8vL1xuXG4gICAgaWYgKGRlcml2ZWRRdWFsaWZpZWRTdGF0ZW1lbnRVbmlmaWVkV2l0aFJ1bGUpIHtcbiAgICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udW5pZmllZCB0aGUgJyR7cXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nfScgZGVyaXZlZCBxdWFsaWZpZWQgc3RhdGVtZW50IHdpdGggdGhlICcke21ldGF2YXJpYWJsZVN0cmluZ30nIHJ1bGUuYCwgcXVhbGlmaWVkU3RhdGVtZW50Tm9kZSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGRlcml2ZWRRdWFsaWZpZWRTdGF0ZW1lbnRVbmlmaWVkV2l0aFJ1bGU7XG59XG5cbmZ1bmN0aW9uIHVuaWZ5RGVyaXZlZFF1YWxpZmllZFN0YXRlbWVudEFXaXRoQXhpb20ocXVhbGlmaWVkU3RhdGVtZW50Tm9kZSwgc3Vic3RpdHV0aW9ucywgbG9jYWxDb250ZXh0KSB7XG4gIGxldCBkZXJpdmVkUXVhbGlmaWVkU3RhdGVtZW50VW5pZmllZFdpdGhBeGlvbSA9IGZhbHNlO1xuXG4gIGNvbnN0IG1ldGF2YXJpYWJsZU5vZGUgPSBtZXRhdmFyaWFibGVOb2RlUXVlcnkocXVhbGlmaWVkU3RhdGVtZW50Tm9kZSksXG4gICAgICAgIGF4aW9tID0gbG9jYWxDb250ZXh0LmZpbmRBeGlvbUJ5TWV0YXZhcmlhYmxlTm9kZShtZXRhdmFyaWFibGVOb2RlKTtcblxuICBpZiAoYXhpb20gIT09IG51bGwpIHtcbiAgICBjb25zdCBzdGF0ZW1lbnROb2RlID0gc3RhdGVtZW50Tm9kZVF1ZXJ5KHF1YWxpZmllZFN0YXRlbWVudE5vZGUpLFxuICAgICAgICAgIG1ldGF2YXJpYWJsZVN0cmluZyA9IGxvY2FsQ29udGV4dC5ub2RlQXNTdHJpbmcobWV0YXZhcmlhYmxlTm9kZSksXG4gICAgICAgICAgcXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyhxdWFsaWZpZWRTdGF0ZW1lbnROb2RlKTtcblxuICAgIGxvY2FsQ29udGV4dC50cmFjZShgVW5pZnlpbmcgdGhlICcke3F1YWxpZmllZFN0YXRlbWVudFN0cmluZ30nIGRlcml2ZWQgcXVhbGlmaWVkIHN0YXRlbWVudCB3aXRoIHRoZSAnJHttZXRhdmFyaWFibGVTdHJpbmd9JyBheGlvbS4uLmAsIHF1YWxpZmllZFN0YXRlbWVudE5vZGUpO1xuXG4gICAgY29uc3Qgc3RhdGVtZW50VW5pZmllZCA9IGF4aW9tLnVuaWZ5U3RhdGVtZW50KHN0YXRlbWVudE5vZGUsIGxvY2FsQ29udGV4dCk7XG5cbiAgICBkZXJpdmVkUXVhbGlmaWVkU3RhdGVtZW50VW5pZmllZFdpdGhBeGlvbSA9IHN0YXRlbWVudFVuaWZpZWQ7IC8vL1xuXG4gICAgaWYgKGRlcml2ZWRRdWFsaWZpZWRTdGF0ZW1lbnRVbmlmaWVkV2l0aEF4aW9tKSB7XG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnVuaWZpZWQgdGhlICcke3F1YWxpZmllZFN0YXRlbWVudFN0cmluZ30nIGRlcml2ZWQgcXVhbGlmaWVkIHN0YXRlbWVudCB3aXRoIHRoZSAnJHttZXRhdmFyaWFibGVTdHJpbmd9JyBheGlvbS5gLCBxdWFsaWZpZWRTdGF0ZW1lbnROb2RlKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZGVyaXZlZFF1YWxpZmllZFN0YXRlbWVudFVuaWZpZWRXaXRoQXhpb207XG59XG5cbmZ1bmN0aW9uIHVuaWZ5RGVyaXZlZFF1YWxpZmllZFN0YXRlbWVudEFXaXRoTGVtbWEocXVhbGlmaWVkU3RhdGVtZW50Tm9kZSwgc3Vic3RpdHV0aW9ucywgbG9jYWxDb250ZXh0KSB7XG4gIGxldCBkZXJpdmVkUXVhbGlmaWVkU3RhdGVtZW50VW5pZmllZFdpdGhMZW1tYSA9IGZhbHNlO1xuXG4gIGNvbnN0IG1ldGF2YXJpYWJsZU5vZGUgPSBtZXRhdmFyaWFibGVOb2RlUXVlcnkocXVhbGlmaWVkU3RhdGVtZW50Tm9kZSksXG4gICAgICAgIGxlbW1hID0gbG9jYWxDb250ZXh0LmZpbmRMZW1tYUJ5TWV0YXZhcmlhYmxlTm9kZShtZXRhdmFyaWFibGVOb2RlKTtcblxuICBpZiAobGVtbWEgIT09IG51bGwpIHtcbiAgICBjb25zdCBzdGF0ZW1lbnROb2RlID0gc3RhdGVtZW50Tm9kZVF1ZXJ5KHF1YWxpZmllZFN0YXRlbWVudE5vZGUpLFxuICAgICAgICAgIG1ldGF2YXJpYWJsZVN0cmluZyA9IGxvY2FsQ29udGV4dC5ub2RlQXNTdHJpbmcobWV0YXZhcmlhYmxlTm9kZSksXG4gICAgICAgICAgcXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyhxdWFsaWZpZWRTdGF0ZW1lbnROb2RlKTtcblxuICAgIGxvY2FsQ29udGV4dC50cmFjZShgVW5pZnlpbmcgdGhlICcke3F1YWxpZmllZFN0YXRlbWVudFN0cmluZ30nIGRlcml2ZWQgcXVhbGlmaWVkIHN0YXRlbWVudCB3aXRoIHRoZSAnJHttZXRhdmFyaWFibGVTdHJpbmd9JyBsZW1tYS4uLmAsIHF1YWxpZmllZFN0YXRlbWVudE5vZGUpO1xuXG4gICAgY29uc3Qgc3RhdGVtZW50VW5pZmllZCA9IGxlbW1hLnVuaWZ5U3RhdGVtZW50KHN0YXRlbWVudE5vZGUsIGxvY2FsQ29udGV4dCk7XG5cbiAgICBkZXJpdmVkUXVhbGlmaWVkU3RhdGVtZW50VW5pZmllZFdpdGhMZW1tYSA9IHN0YXRlbWVudFVuaWZpZWQ7IC8vL1xuXG4gICAgaWYgKGRlcml2ZWRRdWFsaWZpZWRTdGF0ZW1lbnRVbmlmaWVkV2l0aExlbW1hKSB7XG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnVuaWZpZWQgdGhlICcke3F1YWxpZmllZFN0YXRlbWVudFN0cmluZ30nIGRlcml2ZWQgcXVhbGlmaWVkIHN0YXRlbWVudCB3aXRoIHRoZSAnJHttZXRhdmFyaWFibGVTdHJpbmd9JyBsZW1tYS5gLCBxdWFsaWZpZWRTdGF0ZW1lbnROb2RlKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZGVyaXZlZFF1YWxpZmllZFN0YXRlbWVudFVuaWZpZWRXaXRoTGVtbWE7XG59XG5cbmZ1bmN0aW9uIHVuaWZ5RGVyaXZlZFF1YWxpZmllZFN0YXRlbWVudEFXaXRoVGhlb3JlbShxdWFsaWZpZWRTdGF0ZW1lbnROb2RlLCBzdWJzdGl0dXRpb25zLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IGRlcml2ZWRRdWFsaWZpZWRTdGF0ZW1lbnRVbmlmaWVkV2l0aFRoZW9yZW0gPSBmYWxzZTtcblxuICBjb25zdCBtZXRhdmFyaWFibGVOb2RlID0gbWV0YXZhcmlhYmxlTm9kZVF1ZXJ5KHF1YWxpZmllZFN0YXRlbWVudE5vZGUpLFxuICAgICAgICB0aGVvcmVtID0gbG9jYWxDb250ZXh0LmZpbmRUaGVvcmVtQnlNZXRhdmFyaWFibGVOb2RlKG1ldGF2YXJpYWJsZU5vZGUpO1xuXG4gIGlmICh0aGVvcmVtICE9PSBudWxsKSB7XG4gICAgY29uc3Qgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudE5vZGVRdWVyeShxdWFsaWZpZWRTdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgICBtZXRhdmFyaWFibGVTdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKG1ldGF2YXJpYWJsZU5vZGUpLFxuICAgICAgICAgIHF1YWxpZmllZFN0YXRlbWVudFN0cmluZyA9IGxvY2FsQ29udGV4dC5ub2RlQXNTdHJpbmcocXVhbGlmaWVkU3RhdGVtZW50Tm9kZSk7XG5cbiAgICBsb2NhbENvbnRleHQudHJhY2UoYFVuaWZ5aW5nIHRoZSAnJHtxdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmd9JyBkZXJpdmVkIHF1YWxpZmllZCBzdGF0ZW1lbnQgd2l0aCB0aGUgJyR7bWV0YXZhcmlhYmxlU3RyaW5nfScgdGhlb3JlbS4uLmAsIHF1YWxpZmllZFN0YXRlbWVudE5vZGUpO1xuXG4gICAgY29uc3Qgc3RhdGVtZW50VW5pZmllZCA9IHRoZW9yZW0udW5pZnlTdGF0ZW1lbnQoc3RhdGVtZW50Tm9kZSwgbG9jYWxDb250ZXh0KTtcblxuICAgIGRlcml2ZWRRdWFsaWZpZWRTdGF0ZW1lbnRVbmlmaWVkV2l0aFRoZW9yZW0gPSBzdGF0ZW1lbnRVbmlmaWVkOyAvLy9cblxuICAgIGlmIChkZXJpdmVkUXVhbGlmaWVkU3RhdGVtZW50VW5pZmllZFdpdGhUaGVvcmVtKSB7XG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnVuaWZpZWQgdGhlICcke3F1YWxpZmllZFN0YXRlbWVudFN0cmluZ30nIGRlcml2ZWQgcXVhbGlmaWVkIHN0YXRlbWVudCB3aXRoIHRoZSAnJHttZXRhdmFyaWFibGVTdHJpbmd9JyB0aGVvcmVtLmAsIHF1YWxpZmllZFN0YXRlbWVudE5vZGUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBkZXJpdmVkUXVhbGlmaWVkU3RhdGVtZW50VW5pZmllZFdpdGhUaGVvcmVtO1xufVxuXG5mdW5jdGlvbiB1bmlmeURlcml2ZWRRdWFsaWZpZWRTdGF0ZW1lbnRBV2l0aENvbmplY3R1cmUocXVhbGlmaWVkU3RhdGVtZW50Tm9kZSwgc3Vic3RpdHV0aW9ucywgbG9jYWxDb250ZXh0KSB7XG4gIGxldCBkZXJpdmVkUXVhbGlmaWVkU3RhdGVtZW50VW5pZmllZFdpdGhDb25qZWN0dXJlID0gZmFsc2U7XG5cbiAgY29uc3QgbWV0YXZhcmlhYmxlTm9kZSA9IG1ldGF2YXJpYWJsZU5vZGVRdWVyeShxdWFsaWZpZWRTdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgY29uamVjdHVyZSA9IGxvY2FsQ29udGV4dC5maW5kQ29uamVjdHVyZUJ5TWV0YXZhcmlhYmxlTm9kZShtZXRhdmFyaWFibGVOb2RlKTtcblxuICBpZiAoY29uamVjdHVyZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnROb2RlUXVlcnkocXVhbGlmaWVkU3RhdGVtZW50Tm9kZSksXG4gICAgICAgICAgbWV0YXZhcmlhYmxlU3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyhtZXRhdmFyaWFibGVOb2RlKSxcbiAgICAgICAgICBxdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKHF1YWxpZmllZFN0YXRlbWVudE5vZGUpO1xuXG4gICAgbG9jYWxDb250ZXh0LnRyYWNlKGBVbmlmeWluZyB0aGUgJyR7cXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nfScgZGVyaXZlZCBxdWFsaWZpZWQgc3RhdGVtZW50IHdpdGggdGhlICcke21ldGF2YXJpYWJsZVN0cmluZ30nIGNvbmplY3R1cmUuLi5gLCBxdWFsaWZpZWRTdGF0ZW1lbnROb2RlKTtcblxuICAgIGNvbnN0IHN0YXRlbWVudFVuaWZpZWQgPSBjb25qZWN0dXJlLnVuaWZ5U3RhdGVtZW50KHN0YXRlbWVudE5vZGUsIGxvY2FsQ29udGV4dCk7XG5cbiAgICBkZXJpdmVkUXVhbGlmaWVkU3RhdGVtZW50VW5pZmllZFdpdGhDb25qZWN0dXJlID0gc3RhdGVtZW50VW5pZmllZDsgLy8vXG5cbiAgICBpZiAoZGVyaXZlZFF1YWxpZmllZFN0YXRlbWVudFVuaWZpZWRXaXRoQ29uamVjdHVyZSkge1xuICAgICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi51bmlmaWVkIHRoZSAnJHtxdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmd9JyBkZXJpdmVkIHF1YWxpZmllZCBzdGF0ZW1lbnQgd2l0aCB0aGUgJyR7bWV0YXZhcmlhYmxlU3RyaW5nfScgY29uamVjdHVyZS5gLCBxdWFsaWZpZWRTdGF0ZW1lbnROb2RlKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZGVyaXZlZFF1YWxpZmllZFN0YXRlbWVudFVuaWZpZWRXaXRoQ29uamVjdHVyZTtcbn1cblxuZnVuY3Rpb24gdW5pZnlEZXJpdmVkUXVhbGlmaWVkU3RhdGVtZW50QVdpdGhSZWZlcmVuY2UocXVhbGlmaWVkU3RhdGVtZW50Tm9kZSwgc3Vic3RpdHV0aW9ucywgbG9jYWxDb250ZXh0KSB7XG4gIGxldCBkZXJpdmVkUXVhbGlmaWVkU3RhdGVtZW50VW5pZmllZFdpdGhSZWZlcmVuY2UgPSBmYWxzZTtcblxuICBjb25zdCBtZXRhdmFyaWFibGVOb2RlID0gbWV0YXZhcmlhYmxlTm9kZVF1ZXJ5KHF1YWxpZmllZFN0YXRlbWVudE5vZGUpLFxuICAgICAgICBtZXRhdmFyaWFibGVTdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKG1ldGF2YXJpYWJsZU5vZGUpLFxuICAgICAgICBtZXRhdmFyaWFibGVQcmVzZW50ID0gbG9jYWxDb250ZXh0LmlzTWV0YXZhcmlhYmxlUHJlc2VudEJ5TWV0YXZhcmlhYmxlTm9kZShtZXRhdmFyaWFibGVOb2RlKSxcbiAgICAgICAgcXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyhxdWFsaWZpZWRTdGF0ZW1lbnROb2RlKTtcblxuICBsb2NhbENvbnRleHQudHJhY2UoYFVuaWZ5aW5nIHRoZSAnJHtxdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmd9JyBkZXJpdmVkIHF1YWxpZmllZCBzdGF0ZW1lbnQgd2l0aCB0aGUgJyR7bWV0YXZhcmlhYmxlU3RyaW5nfScgcmVmZXJlbmNlLi4uYCwgcXVhbGlmaWVkU3RhdGVtZW50Tm9kZSk7XG5cbiAgaWYgKG1ldGF2YXJpYWJsZVByZXNlbnQpIHtcblxuICAgIGRlYnVnZ2VyXG5cbiAgICAvLyBjb25zdCBzdGF0ZW1lbnROb2RlID0gc3RhdGVtZW50Tm9kZVF1ZXJ5KHF1YWxpZmllZFN0YXRlbWVudE5vZGUpLFxuICAgIC8vICAgICAgIGxvY2FsQ29udGV4dEEgPSBudWxsLFxuICAgIC8vICAgICAgIGxvY2FsQ29udGV4dEIgPSBsb2NhbENvbnRleHQsIC8vL1xuICAgIC8vICAgICAgIHN0YXRlbWVudE5vZGVCID0gc3RhdGVtZW50Tm9kZSwgLy8vXG4gICAgLy8gICAgICAgc3Vic3RpdHV0aW9uTm9kZUEgPSBudWxsLFxuICAgIC8vICAgICAgIG1ldGF2YXJpYWJsZU5vZGVBID0gbWV0YXZhcmlhYmxlTm9kZSwgLy8vXG4gICAgLy8gICAgICAgbWV0YXZhcmlhYmxlVW5pZmllZFdpdGhTdGF0ZW1lbnQgPSB1bmlmeU1ldGF2YXJpYWJsZVdpdGhTdGF0ZW1lbnQobWV0YXZhcmlhYmxlTm9kZUEsIHN0YXRlbWVudE5vZGVCLCBzdWJzdGl0dXRpb25Ob2RlQSwgc3Vic3RpdHV0aW9ucywgbG9jYWxDb250ZXh0QSwgbG9jYWxDb250ZXh0QiwgKCkgPT4ge1xuICAgIC8vICAgICAgICAgY29uc3QgdmVyaWZpZWRBaGVhZCA9IHRydWU7XG4gICAgLy9cbiAgICAvLyAgICAgICAgIHJldHVybiB2ZXJpZmllZEFoZWFkO1xuICAgIC8vICAgICAgIH0pO1xuICAgIC8vXG4gICAgLy8gZGVyaXZlZFF1YWxpZmllZFN0YXRlbWVudFVuaWZpZWRXaXRoUmVmZXJlbmNlID0gbWV0YXZhcmlhYmxlVW5pZmllZFdpdGhTdGF0ZW1lbnQ7IC8vL1xuICB9XG5cbiAgaWYgKGRlcml2ZWRRdWFsaWZpZWRTdGF0ZW1lbnRVbmlmaWVkV2l0aFJlZmVyZW5jZSkge1xuICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udW5pZmllZCB0aGUgJyR7cXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nfScgZGVyaXZlZCBxdWFsaWZpZWQgc3RhdGVtZW50IHdpdGggdGhlICcke21ldGF2YXJpYWJsZVN0cmluZ30nIHJlZmVyZW5jZS5gLCBxdWFsaWZpZWRTdGF0ZW1lbnROb2RlKTtcbiAgfVxuXG4gIHJldHVybiBkZXJpdmVkUXVhbGlmaWVkU3RhdGVtZW50VW5pZmllZFdpdGhSZWZlcmVuY2U7XG59XG4iXSwibmFtZXMiOlsidmVyaWZ5UXVhbGlmaWVkU3RhdGVtZW50Iiwic3RhdGVtZW50Tm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwibWV0YXZhcmlhYmxlTm9kZVF1ZXJ5IiwidW5pZnlEZXJpdmVkUXVhbGlmaWVkU3RhdGVtZW50RnVuY3Rpb25zIiwidW5pZnlEZXJpdmVkUXVhbGlmaWVkU3RhdGVtZW50QVdpdGhSdWxlIiwidW5pZnlEZXJpdmVkUXVhbGlmaWVkU3RhdGVtZW50QVdpdGhBeGlvbSIsInVuaWZ5RGVyaXZlZFF1YWxpZmllZFN0YXRlbWVudEFXaXRoTGVtbWEiLCJ1bmlmeURlcml2ZWRRdWFsaWZpZWRTdGF0ZW1lbnRBV2l0aFRoZW9yZW0iLCJ1bmlmeURlcml2ZWRRdWFsaWZpZWRTdGF0ZW1lbnRBV2l0aENvbmplY3R1cmUiLCJ1bmlmeURlcml2ZWRRdWFsaWZpZWRTdGF0ZW1lbnRBV2l0aFJlZmVyZW5jZSIsInF1YWxpZmllZFN0YXRlbWVudE5vZGUiLCJzdWJzdGl0dXRpb25zIiwiYXNzaWdubWVudHMiLCJkZXJpdmVkIiwibG9jYWxDb250ZXh0IiwicXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQiLCJxdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmciLCJub2RlQXNTdHJpbmciLCJ0cmFjZSIsInN0YXRlbWVudE5vZGUiLCJzdGF0ZW1lbnRWZXJpZmllZCIsInZlcmlmeVN0YXRlbWVudCIsImRlcml2ZWRRdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCIsInZlcmlmeURlcml2ZWRRdWFsaWZpZWRTdGF0ZW1lbnQiLCJkZWJ1ZyIsImRlcml2ZWRRdWFsaWZpZWRTdGF0ZW1lbnRVbmlmaWVkIiwic29tZSIsInVuaWZ5RGVyaXZlZFF1YWxpZmllZFN0YXRlbWVudEZ1bmN0aW9uIiwiZGVyaXZlZFF1YWxpZmllZFN0YXRlbWVudFVuaWZpZWRXaXRoUnVsZSIsIm1ldGF2YXJpYWJsZU5vZGUiLCJydWxlIiwiZmluZFJ1bGVCeU1ldGF2YXJpYWJsZU5vZGUiLCJtZXRhdmFyaWFibGVTdHJpbmciLCJzdGF0ZW1lbnRVbmlmaWVkIiwidW5pZnlTdGF0ZW1lbnQiLCJkZXJpdmVkUXVhbGlmaWVkU3RhdGVtZW50VW5pZmllZFdpdGhBeGlvbSIsImF4aW9tIiwiZmluZEF4aW9tQnlNZXRhdmFyaWFibGVOb2RlIiwiZGVyaXZlZFF1YWxpZmllZFN0YXRlbWVudFVuaWZpZWRXaXRoTGVtbWEiLCJsZW1tYSIsImZpbmRMZW1tYUJ5TWV0YXZhcmlhYmxlTm9kZSIsImRlcml2ZWRRdWFsaWZpZWRTdGF0ZW1lbnRVbmlmaWVkV2l0aFRoZW9yZW0iLCJ0aGVvcmVtIiwiZmluZFRoZW9yZW1CeU1ldGF2YXJpYWJsZU5vZGUiLCJkZXJpdmVkUXVhbGlmaWVkU3RhdGVtZW50VW5pZmllZFdpdGhDb25qZWN0dXJlIiwiY29uamVjdHVyZSIsImZpbmRDb25qZWN0dXJlQnlNZXRhdmFyaWFibGVOb2RlIiwiZGVyaXZlZFF1YWxpZmllZFN0YXRlbWVudFVuaWZpZWRXaXRoUmVmZXJlbmNlIiwibWV0YXZhcmlhYmxlUHJlc2VudCIsImlzTWV0YXZhcmlhYmxlUHJlc2VudEJ5TWV0YXZhcmlhYmxlTm9kZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBa0JBOzs7ZUFBd0JBOzs7Z0VBaEJJO3FCQUVGOzs7Ozs7QUFFMUIsSUFBTUMscUJBQXFCQyxJQUFBQSxnQkFBUyxFQUFDLG1DQUMvQkMsd0JBQXdCRCxJQUFBQSxnQkFBUyxFQUFDO0FBRXhDLElBQU1FLDBDQUEwQztJQUM5Q0M7SUFDQUM7SUFDQUM7SUFDQUM7SUFDQUM7SUFDQUM7Q0FDRDtBQUVjLFNBQVNWLHlCQUF5Qlcsc0JBQXNCLEVBQUVDLGFBQWEsRUFBRUMsV0FBVyxFQUFFQyxPQUFPLEVBQUVDLFlBQVk7SUFDeEgsSUFBSUM7SUFFSixJQUFNQywyQkFBMkJGLGFBQWFHLFlBQVksQ0FBQ1A7SUFFM0RJLGFBQWFJLEtBQUssQ0FBQyxBQUFDLGtCQUEwQyxPQUF6QkYsMEJBQXlCLDZCQUEyQk47SUFFekYsSUFBTVMsZ0JBQWdCbkIsbUJBQW1CVSx5QkFDbkNVLG9CQUFvQkMsSUFBQUEsa0JBQWUsRUFBQ0YsZUFBZVAsYUFBYUMsU0FBU0M7SUFFL0UsSUFBSU0sbUJBQW1CO1FBQ3JCLElBQUlQLFNBQVM7WUFDWCxJQUFNUyxvQ0FBb0NDLGdDQUFnQ2Isd0JBQXdCQyxlQUFlRztZQUVqSEMsNkJBQTZCTyxtQ0FBbUMsR0FBRztRQUNyRSxPQUFPO1lBQ0xQLDZCQUE2QjtRQUMvQjtJQUNGO0lBRUEsSUFBSUEsNEJBQTRCO1FBQzlC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
|
|
175
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92ZXJpZnkvc3RhdGVtZW50L3F1YWxpZmllZC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHZlcmlmeVN0YXRlbWVudCBmcm9tIFwiLi4vLi4vdmVyaWZ5L3N0YXRlbWVudFwiO1xuXG5pbXBvcnQgeyBub2RlUXVlcnkgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5cbmNvbnN0IHN0YXRlbWVudE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9xdWFsaWZpZWRTdGF0ZW1lbnQvc3RhdGVtZW50IVwiKSxcbiAgICAgIG1ldGF2YXJpYWJsZU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9xdWFsaWZpZWRTdGF0ZW1lbnQvcmVmZXJlbmNlL21ldGF2YXJpYWJsZSFcIik7XG5cbmNvbnN0IGVxdWFsaXR5Tm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3N0YXRlbWVudC9lcXVhbGl0eSFcIiksXG4gICAgICBqdWRnZW1lbnROb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvc3RhdGVtZW50L2p1ZGdlbWVudCFcIiksXG4gICAgICB0eXBlQXNzZXJ0aW9uTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3N0YXRlbWVudC90eXBlQXNzZXJ0aW9uIVwiKSxcbiAgICAgIGRlZmluZWRBc3NlcnRpb25Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvc3RhdGVtZW50L2RlZmluZWRBc3NlcnRpb24hXCIpLFxuICAgICAgY29udGFpbmVkQXNzZXJ0aW9uTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3N0YXRlbWVudC9jb250YWluZWRBc3NlcnRpb24hXCIpO1xuXG5jb25zdCB1bmlmeURlcml2ZWRRdWFsaWZpZWRTdGF0ZW1lbnRGdW5jdGlvbnMgPSBbXG4gIHVuaWZ5RGVyaXZlZFF1YWxpZmllZFN0YXRlbWVudEFXaXRoUnVsZSxcbiAgdW5pZnlEZXJpdmVkUXVhbGlmaWVkU3RhdGVtZW50QVdpdGhBeGlvbSxcbiAgdW5pZnlEZXJpdmVkUXVhbGlmaWVkU3RhdGVtZW50QVdpdGhMZW1tYSxcbiAgdW5pZnlEZXJpdmVkUXVhbGlmaWVkU3RhdGVtZW50QVdpdGhUaGVvcmVtLFxuICB1bmlmeURlcml2ZWRRdWFsaWZpZWRTdGF0ZW1lbnRBV2l0aENvbmplY3R1cmUsXG4gIHVuaWZ5RGVyaXZlZFF1YWxpZmllZFN0YXRlbWVudEFXaXRoUmVmZXJlbmNlXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB2ZXJpZnlRdWFsaWZpZWRTdGF0ZW1lbnQocXVhbGlmaWVkU3RhdGVtZW50Tm9kZSwgc3Vic3RpdHV0aW9ucywgYXNzaWdubWVudHMsIGRlcml2ZWQsIGxvY2FsQ29udGV4dCkge1xuICBsZXQgcXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQ7XG5cbiAgY29uc3QgcXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyhxdWFsaWZpZWRTdGF0ZW1lbnROb2RlKTtcblxuICBsb2NhbENvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7cXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nfScgcXVhbGlmaWVkIHN0YXRlbWVudC4uLmAsIHF1YWxpZmllZFN0YXRlbWVudE5vZGUpO1xuXG4gIGNvbnN0IHN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnROb2RlUXVlcnkocXVhbGlmaWVkU3RhdGVtZW50Tm9kZSksXG4gICAgICAgIHN0YXRlbWVudFZlcmlmaWVkID0gdmVyaWZ5U3RhdGVtZW50KHN0YXRlbWVudE5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBsb2NhbENvbnRleHQpO1xuXG4gIGlmIChzdGF0ZW1lbnRWZXJpZmllZCkge1xuICAgIGlmIChkZXJpdmVkKSB7XG4gICAgICBjb25zdCBkZXJpdmVkUXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQgPSB2ZXJpZnlEZXJpdmVkUXVhbGlmaWVkU3RhdGVtZW50KHF1YWxpZmllZFN0YXRlbWVudE5vZGUsIHN1YnN0aXR1dGlvbnMsIGxvY2FsQ29udGV4dCk7XG5cbiAgICAgIHF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkID0gZGVyaXZlZFF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkOyAvLy9cbiAgICB9IGVsc2Uge1xuICAgICAgcXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIGlmIChxdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCkge1xuICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3F1YWxpZmllZFN0YXRlbWVudFN0cmluZ30nIHF1YWxpZmllZCBzdGF0ZW1lbnQuYCwgcXVhbGlmaWVkU3RhdGVtZW50Tm9kZSk7XG4gIH1cblxuICByZXR1cm4gcXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQ7XG59XG5cbmZ1bmN0aW9uIHZlcmlmeURlcml2ZWRRdWFsaWZpZWRTdGF0ZW1lbnQocXVhbGlmaWVkU3RhdGVtZW50Tm9kZSwgc3Vic3RpdHV0aW9ucywgbG9jYWxDb250ZXh0KSB7XG4gIGxldCBkZXJpdmVkUXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQgPSBmYWxzZTtcblxuICBjb25zdCBxdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKHF1YWxpZmllZFN0YXRlbWVudE5vZGUpO1xuXG4gIGxvY2FsQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtxdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmd9JyBkZXJpdmVkIHF1YWxpZmllZCBzdGF0ZW1lbnQuLi5gLCBxdWFsaWZpZWRTdGF0ZW1lbnROb2RlKTtcblxuICBpZiAoIWRlcml2ZWRRdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCkge1xuICAgIGNvbnN0IGRlcml2ZWRRdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZFRyaXZpYWxseSA9IHZlcmlmeURlcml2ZWRRdWFsaWZpZWRTdGF0ZW1lbnRBVHJpdmlhbGx5KHF1YWxpZmllZFN0YXRlbWVudE5vZGUsIHN1YnN0aXR1dGlvbnMsIGxvY2FsQ29udGV4dCk7XG5cbiAgICBkZXJpdmVkUXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQgPSBkZXJpdmVkUXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWRUcml2aWFsbHk7IC8vL1xuICB9XG5cbiAgaWYgKCFkZXJpdmVkUXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQpIHtcbiAgICBjb25zdCBkZXJpdmVkUXVhbGlmaWVkU3RhdGVtZW50VW5pZmllZCA9IHVuaWZ5RGVyaXZlZFF1YWxpZmllZFN0YXRlbWVudEZ1bmN0aW9ucy5zb21lKCh1bmlmeURlcml2ZWRRdWFsaWZpZWRTdGF0ZW1lbnRGdW5jdGlvbikgPT4ge1xuICAgICAgY29uc3QgZGVyaXZlZFF1YWxpZmllZFN0YXRlbWVudFVuaWZpZWQgPSB1bmlmeURlcml2ZWRRdWFsaWZpZWRTdGF0ZW1lbnRGdW5jdGlvbihxdWFsaWZpZWRTdGF0ZW1lbnROb2RlLCBzdWJzdGl0dXRpb25zLCBsb2NhbENvbnRleHQpO1xuXG4gICAgICByZXR1cm4gZGVyaXZlZFF1YWxpZmllZFN0YXRlbWVudFVuaWZpZWQ7XG4gICAgfSk7XG5cbiAgICBkZXJpdmVkUXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQgPSBkZXJpdmVkUXVhbGlmaWVkU3RhdGVtZW50VW5pZmllZDsgLy8vXG4gIH1cblxuICBpZiAoZGVyaXZlZFF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkKSB7XG4gICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7cXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nfScgZGVyaXZlZCBxdWFsaWZpZWQgc3RhdGVtZW50LmAsIHF1YWxpZmllZFN0YXRlbWVudE5vZGUpO1xuICB9XG5cbiAgcmV0dXJuIGRlcml2ZWRRdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZDtcbn1cblxuZnVuY3Rpb24gdmVyaWZ5RGVyaXZlZFF1YWxpZmllZFN0YXRlbWVudEFUcml2aWFsbHkocXVhbGlmaWVkU3RhdGVtZW50Tm9kZSwgc3Vic3RpdHV0aW9ucywgbG9jYWxDb250ZXh0KSB7XG4gIGxldCBkZXJpdmVkUXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWRUcml2aWFsbHkgPSBmYWxzZTtcblxuICBjb25zdCBtZXRhdmFyaWFibGVOb2RlID0gbWV0YXZhcmlhYmxlTm9kZVF1ZXJ5KHF1YWxpZmllZFN0YXRlbWVudE5vZGUpO1xuXG4gIGlmIChtZXRhdmFyaWFibGVOb2RlID09PSBudWxsKSB7XG4gICAgY29uc3Qgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudE5vZGVRdWVyeShxdWFsaWZpZWRTdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgICBxdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKHF1YWxpZmllZFN0YXRlbWVudE5vZGUpO1xuXG4gICAgbG9jYWxDb250ZXh0LnRyYWNlKGBVbmlmeWluZyB0aGUgJyR7cXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nfScgZGVyaXZlZCBxdWFsaWZpZWQgc3RhdGVtZW50IHRyaXZpYWxseS4uLmAsIHF1YWxpZmllZFN0YXRlbWVudE5vZGUpO1xuXG4gICAgZGVidWdnZXJcblxuXG4gICAgaWYgKGRlcml2ZWRRdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZFRyaXZpYWxseSkge1xuICAgICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi51bmlmaWVkIHRoZSAnJHtxdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmd9JyBkZXJpdmVkIHF1YWxpZmllZCBzdGF0ZW1lbnQgdHJpdmlhbGx5LmAsIHF1YWxpZmllZFN0YXRlbWVudE5vZGUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBkZXJpdmVkUXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWRUcml2aWFsbHk7XG59XG5cbmZ1bmN0aW9uIHVuaWZ5RGVyaXZlZFF1YWxpZmllZFN0YXRlbWVudEFXaXRoUnVsZShxdWFsaWZpZWRTdGF0ZW1lbnROb2RlLCBzdWJzdGl0dXRpb25zLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IGRlcml2ZWRRdWFsaWZpZWRTdGF0ZW1lbnRVbmlmaWVkV2l0aFJ1bGUgPSBmYWxzZTtcblxuICBjb25zdCBtZXRhdmFyaWFibGVOb2RlID0gbWV0YXZhcmlhYmxlTm9kZVF1ZXJ5KHF1YWxpZmllZFN0YXRlbWVudE5vZGUpLFxuICAgICAgICBydWxlID0gbG9jYWxDb250ZXh0LmZpbmRSdWxlQnlNZXRhdmFyaWFibGVOb2RlKG1ldGF2YXJpYWJsZU5vZGUpO1xuXG4gIGlmIChydWxlICE9PSBudWxsKSB7XG4gICAgY29uc3Qgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudE5vZGVRdWVyeShxdWFsaWZpZWRTdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgICBtZXRhdmFyaWFibGVTdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKG1ldGF2YXJpYWJsZU5vZGUpLFxuICAgICAgICAgIHF1YWxpZmllZFN0YXRlbWVudFN0cmluZyA9IGxvY2FsQ29udGV4dC5ub2RlQXNTdHJpbmcocXVhbGlmaWVkU3RhdGVtZW50Tm9kZSk7XG5cbiAgICBsb2NhbENvbnRleHQudHJhY2UoYFVuaWZ5aW5nIHRoZSAnJHtxdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmd9JyBkZXJpdmVkIHF1YWxpZmllZCBzdGF0ZW1lbnQgd2l0aCB0aGUgJyR7bWV0YXZhcmlhYmxlU3RyaW5nfScgcnVsZS4uLmAsIHF1YWxpZmllZFN0YXRlbWVudE5vZGUpO1xuXG4gICAgY29uc3Qgc3RhdGVtZW50VW5pZmllZCA9IHJ1bGUudW5pZnlTdGF0ZW1lbnQoc3RhdGVtZW50Tm9kZSwgbG9jYWxDb250ZXh0KTtcblxuICAgIGRlcml2ZWRRdWFsaWZpZWRTdGF0ZW1lbnRVbmlmaWVkV2l0aFJ1bGUgPSBzdGF0ZW1lbnRVbmlmaWVkOyAgLy8vXG5cbiAgICBpZiAoZGVyaXZlZFF1YWxpZmllZFN0YXRlbWVudFVuaWZpZWRXaXRoUnVsZSkge1xuICAgICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi51bmlmaWVkIHRoZSAnJHtxdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmd9JyBkZXJpdmVkIHF1YWxpZmllZCBzdGF0ZW1lbnQgd2l0aCB0aGUgJyR7bWV0YXZhcmlhYmxlU3RyaW5nfScgcnVsZS5gLCBxdWFsaWZpZWRTdGF0ZW1lbnROb2RlKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZGVyaXZlZFF1YWxpZmllZFN0YXRlbWVudFVuaWZpZWRXaXRoUnVsZTtcbn1cblxuZnVuY3Rpb24gdW5pZnlEZXJpdmVkUXVhbGlmaWVkU3RhdGVtZW50QVdpdGhBeGlvbShxdWFsaWZpZWRTdGF0ZW1lbnROb2RlLCBzdWJzdGl0dXRpb25zLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IGRlcml2ZWRRdWFsaWZpZWRTdGF0ZW1lbnRVbmlmaWVkV2l0aEF4aW9tID0gZmFsc2U7XG5cbiAgY29uc3QgbWV0YXZhcmlhYmxlTm9kZSA9IG1ldGF2YXJpYWJsZU5vZGVRdWVyeShxdWFsaWZpZWRTdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgYXhpb20gPSBsb2NhbENvbnRleHQuZmluZEF4aW9tQnlNZXRhdmFyaWFibGVOb2RlKG1ldGF2YXJpYWJsZU5vZGUpO1xuXG4gIGlmIChheGlvbSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnROb2RlUXVlcnkocXVhbGlmaWVkU3RhdGVtZW50Tm9kZSksXG4gICAgICAgICAgbWV0YXZhcmlhYmxlU3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyhtZXRhdmFyaWFibGVOb2RlKSxcbiAgICAgICAgICBxdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKHF1YWxpZmllZFN0YXRlbWVudE5vZGUpO1xuXG4gICAgbG9jYWxDb250ZXh0LnRyYWNlKGBVbmlmeWluZyB0aGUgJyR7cXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nfScgZGVyaXZlZCBxdWFsaWZpZWQgc3RhdGVtZW50IHdpdGggdGhlICcke21ldGF2YXJpYWJsZVN0cmluZ30nIGF4aW9tLi4uYCwgcXVhbGlmaWVkU3RhdGVtZW50Tm9kZSk7XG5cbiAgICBjb25zdCBzdGF0ZW1lbnRVbmlmaWVkID0gYXhpb20udW5pZnlTdGF0ZW1lbnQoc3RhdGVtZW50Tm9kZSwgbG9jYWxDb250ZXh0KTtcblxuICAgIGRlcml2ZWRRdWFsaWZpZWRTdGF0ZW1lbnRVbmlmaWVkV2l0aEF4aW9tID0gc3RhdGVtZW50VW5pZmllZDsgLy8vXG5cbiAgICBpZiAoZGVyaXZlZFF1YWxpZmllZFN0YXRlbWVudFVuaWZpZWRXaXRoQXhpb20pIHtcbiAgICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udW5pZmllZCB0aGUgJyR7cXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nfScgZGVyaXZlZCBxdWFsaWZpZWQgc3RhdGVtZW50IHdpdGggdGhlICcke21ldGF2YXJpYWJsZVN0cmluZ30nIGF4aW9tLmAsIHF1YWxpZmllZFN0YXRlbWVudE5vZGUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBkZXJpdmVkUXVhbGlmaWVkU3RhdGVtZW50VW5pZmllZFdpdGhBeGlvbTtcbn1cblxuZnVuY3Rpb24gdW5pZnlEZXJpdmVkUXVhbGlmaWVkU3RhdGVtZW50QVdpdGhMZW1tYShxdWFsaWZpZWRTdGF0ZW1lbnROb2RlLCBzdWJzdGl0dXRpb25zLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IGRlcml2ZWRRdWFsaWZpZWRTdGF0ZW1lbnRVbmlmaWVkV2l0aExlbW1hID0gZmFsc2U7XG5cbiAgY29uc3QgbWV0YXZhcmlhYmxlTm9kZSA9IG1ldGF2YXJpYWJsZU5vZGVRdWVyeShxdWFsaWZpZWRTdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgbGVtbWEgPSBsb2NhbENvbnRleHQuZmluZExlbW1hQnlNZXRhdmFyaWFibGVOb2RlKG1ldGF2YXJpYWJsZU5vZGUpO1xuXG4gIGlmIChsZW1tYSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnROb2RlUXVlcnkocXVhbGlmaWVkU3RhdGVtZW50Tm9kZSksXG4gICAgICAgICAgbWV0YXZhcmlhYmxlU3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyhtZXRhdmFyaWFibGVOb2RlKSxcbiAgICAgICAgICBxdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKHF1YWxpZmllZFN0YXRlbWVudE5vZGUpO1xuXG4gICAgbG9jYWxDb250ZXh0LnRyYWNlKGBVbmlmeWluZyB0aGUgJyR7cXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nfScgZGVyaXZlZCBxdWFsaWZpZWQgc3RhdGVtZW50IHdpdGggdGhlICcke21ldGF2YXJpYWJsZVN0cmluZ30nIGxlbW1hLi4uYCwgcXVhbGlmaWVkU3RhdGVtZW50Tm9kZSk7XG5cbiAgICBjb25zdCBzdGF0ZW1lbnRVbmlmaWVkID0gbGVtbWEudW5pZnlTdGF0ZW1lbnQoc3RhdGVtZW50Tm9kZSwgbG9jYWxDb250ZXh0KTtcblxuICAgIGRlcml2ZWRRdWFsaWZpZWRTdGF0ZW1lbnRVbmlmaWVkV2l0aExlbW1hID0gc3RhdGVtZW50VW5pZmllZDsgLy8vXG5cbiAgICBpZiAoZGVyaXZlZFF1YWxpZmllZFN0YXRlbWVudFVuaWZpZWRXaXRoTGVtbWEpIHtcbiAgICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udW5pZmllZCB0aGUgJyR7cXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nfScgZGVyaXZlZCBxdWFsaWZpZWQgc3RhdGVtZW50IHdpdGggdGhlICcke21ldGF2YXJpYWJsZVN0cmluZ30nIGxlbW1hLmAsIHF1YWxpZmllZFN0YXRlbWVudE5vZGUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBkZXJpdmVkUXVhbGlmaWVkU3RhdGVtZW50VW5pZmllZFdpdGhMZW1tYTtcbn1cblxuZnVuY3Rpb24gdW5pZnlEZXJpdmVkUXVhbGlmaWVkU3RhdGVtZW50QVdpdGhUaGVvcmVtKHF1YWxpZmllZFN0YXRlbWVudE5vZGUsIHN1YnN0aXR1dGlvbnMsIGxvY2FsQ29udGV4dCkge1xuICBsZXQgZGVyaXZlZFF1YWxpZmllZFN0YXRlbWVudFVuaWZpZWRXaXRoVGhlb3JlbSA9IGZhbHNlO1xuXG4gIGNvbnN0IG1ldGF2YXJpYWJsZU5vZGUgPSBtZXRhdmFyaWFibGVOb2RlUXVlcnkocXVhbGlmaWVkU3RhdGVtZW50Tm9kZSksXG4gICAgICAgIHRoZW9yZW0gPSBsb2NhbENvbnRleHQuZmluZFRoZW9yZW1CeU1ldGF2YXJpYWJsZU5vZGUobWV0YXZhcmlhYmxlTm9kZSk7XG5cbiAgaWYgKHRoZW9yZW0gIT09IG51bGwpIHtcbiAgICBjb25zdCBzdGF0ZW1lbnROb2RlID0gc3RhdGVtZW50Tm9kZVF1ZXJ5KHF1YWxpZmllZFN0YXRlbWVudE5vZGUpLFxuICAgICAgICAgIG1ldGF2YXJpYWJsZVN0cmluZyA9IGxvY2FsQ29udGV4dC5ub2RlQXNTdHJpbmcobWV0YXZhcmlhYmxlTm9kZSksXG4gICAgICAgICAgcXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyhxdWFsaWZpZWRTdGF0ZW1lbnROb2RlKTtcblxuICAgIGxvY2FsQ29udGV4dC50cmFjZShgVW5pZnlpbmcgdGhlICcke3F1YWxpZmllZFN0YXRlbWVudFN0cmluZ30nIGRlcml2ZWQgcXVhbGlmaWVkIHN0YXRlbWVudCB3aXRoIHRoZSAnJHttZXRhdmFyaWFibGVTdHJpbmd9JyB0aGVvcmVtLi4uYCwgcXVhbGlmaWVkU3RhdGVtZW50Tm9kZSk7XG5cbiAgICBjb25zdCBzdGF0ZW1lbnRVbmlmaWVkID0gdGhlb3JlbS51bmlmeVN0YXRlbWVudChzdGF0ZW1lbnROb2RlLCBsb2NhbENvbnRleHQpO1xuXG4gICAgZGVyaXZlZFF1YWxpZmllZFN0YXRlbWVudFVuaWZpZWRXaXRoVGhlb3JlbSA9IHN0YXRlbWVudFVuaWZpZWQ7IC8vL1xuXG4gICAgaWYgKGRlcml2ZWRRdWFsaWZpZWRTdGF0ZW1lbnRVbmlmaWVkV2l0aFRoZW9yZW0pIHtcbiAgICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udW5pZmllZCB0aGUgJyR7cXVhbGlmaWVkU3RhdGVtZW50U3RyaW5nfScgZGVyaXZlZCBxdWFsaWZpZWQgc3RhdGVtZW50IHdpdGggdGhlICcke21ldGF2YXJpYWJsZVN0cmluZ30nIHRoZW9yZW0uYCwgcXVhbGlmaWVkU3RhdGVtZW50Tm9kZSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGRlcml2ZWRRdWFsaWZpZWRTdGF0ZW1lbnRVbmlmaWVkV2l0aFRoZW9yZW07XG59XG5cbmZ1bmN0aW9uIHVuaWZ5RGVyaXZlZFF1YWxpZmllZFN0YXRlbWVudEFXaXRoQ29uamVjdHVyZShxdWFsaWZpZWRTdGF0ZW1lbnROb2RlLCBzdWJzdGl0dXRpb25zLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IGRlcml2ZWRRdWFsaWZpZWRTdGF0ZW1lbnRVbmlmaWVkV2l0aENvbmplY3R1cmUgPSBmYWxzZTtcblxuICBjb25zdCBtZXRhdmFyaWFibGVOb2RlID0gbWV0YXZhcmlhYmxlTm9kZVF1ZXJ5KHF1YWxpZmllZFN0YXRlbWVudE5vZGUpLFxuICAgICAgICBjb25qZWN0dXJlID0gbG9jYWxDb250ZXh0LmZpbmRDb25qZWN0dXJlQnlNZXRhdmFyaWFibGVOb2RlKG1ldGF2YXJpYWJsZU5vZGUpO1xuXG4gIGlmIChjb25qZWN0dXJlICE9PSBudWxsKSB7XG4gICAgY29uc3Qgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudE5vZGVRdWVyeShxdWFsaWZpZWRTdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgICBtZXRhdmFyaWFibGVTdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKG1ldGF2YXJpYWJsZU5vZGUpLFxuICAgICAgICAgIHF1YWxpZmllZFN0YXRlbWVudFN0cmluZyA9IGxvY2FsQ29udGV4dC5ub2RlQXNTdHJpbmcocXVhbGlmaWVkU3RhdGVtZW50Tm9kZSk7XG5cbiAgICBsb2NhbENvbnRleHQudHJhY2UoYFVuaWZ5aW5nIHRoZSAnJHtxdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmd9JyBkZXJpdmVkIHF1YWxpZmllZCBzdGF0ZW1lbnQgd2l0aCB0aGUgJyR7bWV0YXZhcmlhYmxlU3RyaW5nfScgY29uamVjdHVyZS4uLmAsIHF1YWxpZmllZFN0YXRlbWVudE5vZGUpO1xuXG4gICAgY29uc3Qgc3RhdGVtZW50VW5pZmllZCA9IGNvbmplY3R1cmUudW5pZnlTdGF0ZW1lbnQoc3RhdGVtZW50Tm9kZSwgbG9jYWxDb250ZXh0KTtcblxuICAgIGRlcml2ZWRRdWFsaWZpZWRTdGF0ZW1lbnRVbmlmaWVkV2l0aENvbmplY3R1cmUgPSBzdGF0ZW1lbnRVbmlmaWVkOyAvLy9cblxuICAgIGlmIChkZXJpdmVkUXVhbGlmaWVkU3RhdGVtZW50VW5pZmllZFdpdGhDb25qZWN0dXJlKSB7XG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnVuaWZpZWQgdGhlICcke3F1YWxpZmllZFN0YXRlbWVudFN0cmluZ30nIGRlcml2ZWQgcXVhbGlmaWVkIHN0YXRlbWVudCB3aXRoIHRoZSAnJHttZXRhdmFyaWFibGVTdHJpbmd9JyBjb25qZWN0dXJlLmAsIHF1YWxpZmllZFN0YXRlbWVudE5vZGUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBkZXJpdmVkUXVhbGlmaWVkU3RhdGVtZW50VW5pZmllZFdpdGhDb25qZWN0dXJlO1xufVxuXG5mdW5jdGlvbiB1bmlmeURlcml2ZWRRdWFsaWZpZWRTdGF0ZW1lbnRBV2l0aFJlZmVyZW5jZShxdWFsaWZpZWRTdGF0ZW1lbnROb2RlLCBzdWJzdGl0dXRpb25zLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IGRlcml2ZWRRdWFsaWZpZWRTdGF0ZW1lbnRVbmlmaWVkV2l0aFJlZmVyZW5jZSA9IGZhbHNlO1xuXG4gIGNvbnN0IG1ldGF2YXJpYWJsZU5vZGUgPSBtZXRhdmFyaWFibGVOb2RlUXVlcnkocXVhbGlmaWVkU3RhdGVtZW50Tm9kZSksXG4gICAgICAgIG1ldGF2YXJpYWJsZVN0cmluZyA9IGxvY2FsQ29udGV4dC5ub2RlQXNTdHJpbmcobWV0YXZhcmlhYmxlTm9kZSksXG4gICAgICAgIG1ldGF2YXJpYWJsZVByZXNlbnQgPSBsb2NhbENvbnRleHQuaXNNZXRhdmFyaWFibGVQcmVzZW50QnlNZXRhdmFyaWFibGVOb2RlKG1ldGF2YXJpYWJsZU5vZGUpLFxuICAgICAgICBxdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKHF1YWxpZmllZFN0YXRlbWVudE5vZGUpO1xuXG4gIGxvY2FsQ29udGV4dC50cmFjZShgVW5pZnlpbmcgdGhlICcke3F1YWxpZmllZFN0YXRlbWVudFN0cmluZ30nIGRlcml2ZWQgcXVhbGlmaWVkIHN0YXRlbWVudCB3aXRoIHRoZSAnJHttZXRhdmFyaWFibGVTdHJpbmd9JyByZWZlcmVuY2UuLi5gLCBxdWFsaWZpZWRTdGF0ZW1lbnROb2RlKTtcblxuICBpZiAobWV0YXZhcmlhYmxlUHJlc2VudCkge1xuXG4gICAgZGVidWdnZXJcblxuICAgIC8vIGNvbnN0IHN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnROb2RlUXVlcnkocXVhbGlmaWVkU3RhdGVtZW50Tm9kZSksXG4gICAgLy8gICAgICAgbG9jYWxDb250ZXh0QSA9IG51bGwsXG4gICAgLy8gICAgICAgbG9jYWxDb250ZXh0QiA9IGxvY2FsQ29udGV4dCwgLy8vXG4gICAgLy8gICAgICAgc3RhdGVtZW50Tm9kZUIgPSBzdGF0ZW1lbnROb2RlLCAvLy9cbiAgICAvLyAgICAgICBzdWJzdGl0dXRpb25Ob2RlQSA9IG51bGwsXG4gICAgLy8gICAgICAgbWV0YXZhcmlhYmxlTm9kZUEgPSBtZXRhdmFyaWFibGVOb2RlLCAvLy9cbiAgICAvLyAgICAgICBtZXRhdmFyaWFibGVVbmlmaWVkV2l0aFN0YXRlbWVudCA9IHVuaWZ5TWV0YXZhcmlhYmxlV2l0aFN0YXRlbWVudChtZXRhdmFyaWFibGVOb2RlQSwgc3RhdGVtZW50Tm9kZUIsIHN1YnN0aXR1dGlvbk5vZGVBLCBzdWJzdGl0dXRpb25zLCBsb2NhbENvbnRleHRBLCBsb2NhbENvbnRleHRCLCAoKSA9PiB7XG4gICAgLy8gICAgICAgICBjb25zdCB2ZXJpZmllZEFoZWFkID0gdHJ1ZTtcbiAgICAvL1xuICAgIC8vICAgICAgICAgcmV0dXJuIHZlcmlmaWVkQWhlYWQ7XG4gICAgLy8gICAgICAgfSk7XG4gICAgLy9cbiAgICAvLyBkZXJpdmVkUXVhbGlmaWVkU3RhdGVtZW50VW5pZmllZFdpdGhSZWZlcmVuY2UgPSBtZXRhdmFyaWFibGVVbmlmaWVkV2l0aFN0YXRlbWVudDsgLy8vXG4gIH1cblxuICBpZiAoZGVyaXZlZFF1YWxpZmllZFN0YXRlbWVudFVuaWZpZWRXaXRoUmVmZXJlbmNlKSB7XG4gICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi51bmlmaWVkIHRoZSAnJHtxdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmd9JyBkZXJpdmVkIHF1YWxpZmllZCBzdGF0ZW1lbnQgd2l0aCB0aGUgJyR7bWV0YXZhcmlhYmxlU3RyaW5nfScgcmVmZXJlbmNlLmAsIHF1YWxpZmllZFN0YXRlbWVudE5vZGUpO1xuICB9XG5cbiAgcmV0dXJuIGRlcml2ZWRRdWFsaWZpZWRTdGF0ZW1lbnRVbmlmaWVkV2l0aFJlZmVyZW5jZTtcbn1cbiJdLCJuYW1lcyI6WyJ2ZXJpZnlRdWFsaWZpZWRTdGF0ZW1lbnQiLCJzdGF0ZW1lbnROb2RlUXVlcnkiLCJub2RlUXVlcnkiLCJtZXRhdmFyaWFibGVOb2RlUXVlcnkiLCJlcXVhbGl0eU5vZGVRdWVyeSIsImp1ZGdlbWVudE5vZGVRdWVyeSIsInR5cGVBc3NlcnRpb25Ob2RlUXVlcnkiLCJkZWZpbmVkQXNzZXJ0aW9uTm9kZVF1ZXJ5IiwiY29udGFpbmVkQXNzZXJ0aW9uTm9kZVF1ZXJ5IiwidW5pZnlEZXJpdmVkUXVhbGlmaWVkU3RhdGVtZW50RnVuY3Rpb25zIiwidW5pZnlEZXJpdmVkUXVhbGlmaWVkU3RhdGVtZW50QVdpdGhSdWxlIiwidW5pZnlEZXJpdmVkUXVhbGlmaWVkU3RhdGVtZW50QVdpdGhBeGlvbSIsInVuaWZ5RGVyaXZlZFF1YWxpZmllZFN0YXRlbWVudEFXaXRoTGVtbWEiLCJ1bmlmeURlcml2ZWRRdWFsaWZpZWRTdGF0ZW1lbnRBV2l0aFRoZW9yZW0iLCJ1bmlmeURlcml2ZWRRdWFsaWZpZWRTdGF0ZW1lbnRBV2l0aENvbmplY3R1cmUiLCJ1bmlmeURlcml2ZWRRdWFsaWZpZWRTdGF0ZW1lbnRBV2l0aFJlZmVyZW5jZSIsInF1YWxpZmllZFN0YXRlbWVudE5vZGUiLCJzdWJzdGl0dXRpb25zIiwiYXNzaWdubWVudHMiLCJkZXJpdmVkIiwibG9jYWxDb250ZXh0IiwicXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQiLCJxdWFsaWZpZWRTdGF0ZW1lbnRTdHJpbmciLCJub2RlQXNTdHJpbmciLCJ0cmFjZSIsInN0YXRlbWVudE5vZGUiLCJzdGF0ZW1lbnRWZXJpZmllZCIsInZlcmlmeVN0YXRlbWVudCIsImRlcml2ZWRRdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCIsInZlcmlmeURlcml2ZWRRdWFsaWZpZWRTdGF0ZW1lbnQiLCJkZWJ1ZyIsImRlcml2ZWRRdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZFRyaXZpYWxseSIsInZlcmlmeURlcml2ZWRRdWFsaWZpZWRTdGF0ZW1lbnRBVHJpdmlhbGx5IiwiZGVyaXZlZFF1YWxpZmllZFN0YXRlbWVudFVuaWZpZWQiLCJzb21lIiwidW5pZnlEZXJpdmVkUXVhbGlmaWVkU3RhdGVtZW50RnVuY3Rpb24iLCJtZXRhdmFyaWFibGVOb2RlIiwiZGVyaXZlZFF1YWxpZmllZFN0YXRlbWVudFVuaWZpZWRXaXRoUnVsZSIsInJ1bGUiLCJmaW5kUnVsZUJ5TWV0YXZhcmlhYmxlTm9kZSIsIm1ldGF2YXJpYWJsZVN0cmluZyIsInN0YXRlbWVudFVuaWZpZWQiLCJ1bmlmeVN0YXRlbWVudCIsImRlcml2ZWRRdWFsaWZpZWRTdGF0ZW1lbnRVbmlmaWVkV2l0aEF4aW9tIiwiYXhpb20iLCJmaW5kQXhpb21CeU1ldGF2YXJpYWJsZU5vZGUiLCJkZXJpdmVkUXVhbGlmaWVkU3RhdGVtZW50VW5pZmllZFdpdGhMZW1tYSIsImxlbW1hIiwiZmluZExlbW1hQnlNZXRhdmFyaWFibGVOb2RlIiwiZGVyaXZlZFF1YWxpZmllZFN0YXRlbWVudFVuaWZpZWRXaXRoVGhlb3JlbSIsInRoZW9yZW0iLCJmaW5kVGhlb3JlbUJ5TWV0YXZhcmlhYmxlTm9kZSIsImRlcml2ZWRRdWFsaWZpZWRTdGF0ZW1lbnRVbmlmaWVkV2l0aENvbmplY3R1cmUiLCJjb25qZWN0dXJlIiwiZmluZENvbmplY3R1cmVCeU1ldGF2YXJpYWJsZU5vZGUiLCJkZXJpdmVkUXVhbGlmaWVkU3RhdGVtZW50VW5pZmllZFdpdGhSZWZlcmVuY2UiLCJtZXRhdmFyaWFibGVQcmVzZW50IiwiaXNNZXRhdmFyaWFibGVQcmVzZW50QnlNZXRhdmFyaWFibGVOb2RlIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkF3QkE7OztlQUF3QkE7OztnRUF0Qkk7cUJBRUY7Ozs7OztBQUUxQixJQUFNQyxxQkFBcUJDLElBQUFBLGdCQUFTLEVBQUMsbUNBQy9CQyx3QkFBd0JELElBQUFBLGdCQUFTLEVBQUM7QUFFeEMsSUFBTUUsb0JBQW9CRixJQUFBQSxnQkFBUyxFQUFDLHlCQUM5QkcscUJBQXFCSCxJQUFBQSxnQkFBUyxFQUFDLDBCQUMvQkkseUJBQXlCSixJQUFBQSxnQkFBUyxFQUFDLDhCQUNuQ0ssNEJBQTRCTCxJQUFBQSxnQkFBUyxFQUFDLGlDQUN0Q00sOEJBQThCTixJQUFBQSxnQkFBUyxFQUFDO0FBRTlDLElBQU1PLDBDQUEwQztJQUM5Q0M7SUFDQUM7SUFDQUM7SUFDQUM7SUFDQUM7SUFDQUM7Q0FDRDtBQUVjLFNBQVNmLHlCQUF5QmdCLHNCQUFzQixFQUFFQyxhQUFhLEVBQUVDLFdBQVcsRUFBRUMsT0FBTyxFQUFFQyxZQUFZO0lBQ3hILElBQUlDO0lBRUosSUFBTUMsMkJBQTJCRixhQUFhRyxZQUFZLENBQUNQO0lBRTNESSxhQUFhSSxLQUFLLENBQUMsQUFBQyxrQkFBMEMsT0FBekJGLDBCQUF5Qiw2QkFBMkJOO0lBRXpGLElBQU1TLGdCQUFnQnhCLG1CQUFtQmUseUJBQ25DVSxvQkFBb0JDLElBQUFBLGtCQUFlLEVBQUNG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
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "occam-verify-cli",
|
|
3
3
|
"author": "James Smith",
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.965",
|
|
5
5
|
"license": "MIT, Anti-996",
|
|
6
6
|
"homepage": "https://github.com/djalbat/occam-verify-cli",
|
|
7
7
|
"description": "Occam's Verifier",
|
|
@@ -12,9 +12,9 @@
|
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"argumentative": "^2.0.32",
|
|
14
14
|
"necessary": "^14.0.1",
|
|
15
|
-
"occam-custom-grammars": "^5.0.
|
|
16
|
-
"occam-entities": "^1.0.
|
|
17
|
-
"occam-file-system": "^6.0.
|
|
15
|
+
"occam-custom-grammars": "^5.0.846",
|
|
16
|
+
"occam-entities": "^1.0.157",
|
|
17
|
+
"occam-file-system": "^6.0.197",
|
|
18
18
|
"occam-grammar-utilities": "^8.0.207",
|
|
19
19
|
"occam-query": "^3.1.174"
|
|
20
20
|
},
|
|
@@ -66,24 +66,7 @@ function verifyDerivedTypeAssertion(typeAssertionNode, assignments, derived, loc
|
|
|
66
66
|
typeEqualToOrSuperTypeOfTermType = type.isEqualToOrSuperTypeOf(termType);
|
|
67
67
|
|
|
68
68
|
if (typeEqualToOrSuperTypeOfTermType) {
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
if (variableNode === null) {
|
|
72
|
-
verifiedAhead = true;
|
|
73
|
-
} else {
|
|
74
|
-
let variable;
|
|
75
|
-
|
|
76
|
-
variable = localContext.findVariableByVariableNode(variableNode);
|
|
77
|
-
|
|
78
|
-
variable = Variable.fromVariableAndType(variable, type); ///
|
|
79
|
-
|
|
80
|
-
const variableAssignment = VariableAssignment.fromVariable(variable),
|
|
81
|
-
assignment = variableAssignment; ///
|
|
82
|
-
|
|
83
|
-
assignments.push(assignment);
|
|
84
|
-
|
|
85
|
-
verifiedAhead = true;
|
|
86
|
-
}
|
|
69
|
+
verifiedAhead = true;
|
|
87
70
|
}
|
|
88
71
|
|
|
89
72
|
return verifiedAhead;
|
|
@@ -128,9 +111,7 @@ function verifyStatedTypeAssertion(typeAssertionNode, assignments, derived, loca
|
|
|
128
111
|
if (typeEqualToOrSubTypeOfTermType) {
|
|
129
112
|
const variableNode = variableNodeQuery(termNode);
|
|
130
113
|
|
|
131
|
-
if (variableNode
|
|
132
|
-
verifiedAhead = true;
|
|
133
|
-
} else {
|
|
114
|
+
if (variableNode !== null) {
|
|
134
115
|
let variable;
|
|
135
116
|
|
|
136
117
|
variable = localContext.findVariableByVariableNode(variableNode);
|
|
@@ -141,9 +122,9 @@ function verifyStatedTypeAssertion(typeAssertionNode, assignments, derived, loca
|
|
|
141
122
|
assignment = variableAssignment; ///
|
|
142
123
|
|
|
143
124
|
assignments.push(assignment);
|
|
144
|
-
|
|
145
|
-
verifiedAhead = true;
|
|
146
125
|
}
|
|
126
|
+
|
|
127
|
+
verifiedAhead = true;
|
|
147
128
|
}
|
|
148
129
|
|
|
149
130
|
return verifiedAhead;
|
package/src/verify/equality.js
CHANGED
|
@@ -54,11 +54,6 @@ function verifyDerivedEquality(equalityNode, assignments, derived, localContext)
|
|
|
54
54
|
const equalityEqual = equality.isEqual(localContext);
|
|
55
55
|
|
|
56
56
|
if (equalityEqual) {
|
|
57
|
-
const equalityAssignment = EqualityAssignment.fromEquality(equality),
|
|
58
|
-
assignment = equalityAssignment; ///
|
|
59
|
-
|
|
60
|
-
assignments.push(assignment);
|
|
61
|
-
|
|
62
57
|
verifiedAhead = true;
|
|
63
58
|
}
|
|
64
59
|
}
|
|
@@ -7,6 +7,12 @@ import { nodeQuery } from "../../utilities/query";
|
|
|
7
7
|
const statementNodeQuery = nodeQuery("/qualifiedStatement/statement!"),
|
|
8
8
|
metavariableNodeQuery = nodeQuery("/qualifiedStatement/reference/metavariable!");
|
|
9
9
|
|
|
10
|
+
const equalityNodeQuery = nodeQuery("/statement/equality!"),
|
|
11
|
+
judgementNodeQuery = nodeQuery("/statement/judgement!"),
|
|
12
|
+
typeAssertionNodeQuery = nodeQuery("/statement/typeAssertion!"),
|
|
13
|
+
definedAssertionNodeQuery = nodeQuery("/statement/definedAssertion!"),
|
|
14
|
+
containedAssertionNodeQuery = nodeQuery("/statement/containedAssertion!");
|
|
15
|
+
|
|
10
16
|
const unifyDerivedQualifiedStatementFunctions = [
|
|
11
17
|
unifyDerivedQualifiedStatementAWithRule,
|
|
12
18
|
unifyDerivedQualifiedStatementAWithAxiom,
|
|
@@ -44,19 +50,27 @@ export default function verifyQualifiedStatement(qualifiedStatementNode, substit
|
|
|
44
50
|
}
|
|
45
51
|
|
|
46
52
|
function verifyDerivedQualifiedStatement(qualifiedStatementNode, substitutions, localContext) {
|
|
47
|
-
let derivedQualifiedStatementVerified;
|
|
53
|
+
let derivedQualifiedStatementVerified = false;
|
|
48
54
|
|
|
49
55
|
const qualifiedStatementString = localContext.nodeAsString(qualifiedStatementNode);
|
|
50
56
|
|
|
51
57
|
localContext.trace(`Verifying the '${qualifiedStatementString}' derived qualified statement...`, qualifiedStatementNode);
|
|
52
58
|
|
|
53
|
-
|
|
54
|
-
const
|
|
59
|
+
if (!derivedQualifiedStatementVerified) {
|
|
60
|
+
const derivedQualifiedStatementVerifiedTrivially = verifyDerivedQualifiedStatementATrivially(qualifiedStatementNode, substitutions, localContext);
|
|
61
|
+
|
|
62
|
+
derivedQualifiedStatementVerified = derivedQualifiedStatementVerifiedTrivially; ///
|
|
63
|
+
}
|
|
55
64
|
|
|
56
|
-
|
|
57
|
-
|
|
65
|
+
if (!derivedQualifiedStatementVerified) {
|
|
66
|
+
const derivedQualifiedStatementUnified = unifyDerivedQualifiedStatementFunctions.some((unifyDerivedQualifiedStatementFunction) => {
|
|
67
|
+
const derivedQualifiedStatementUnified = unifyDerivedQualifiedStatementFunction(qualifiedStatementNode, substitutions, localContext);
|
|
58
68
|
|
|
59
|
-
|
|
69
|
+
return derivedQualifiedStatementUnified;
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
derivedQualifiedStatementVerified = derivedQualifiedStatementUnified; ///
|
|
73
|
+
}
|
|
60
74
|
|
|
61
75
|
if (derivedQualifiedStatementVerified) {
|
|
62
76
|
localContext.debug(`...verified the '${qualifiedStatementString}' derived qualified statement.`, qualifiedStatementNode);
|
|
@@ -65,6 +79,28 @@ function verifyDerivedQualifiedStatement(qualifiedStatementNode, substitutions,
|
|
|
65
79
|
return derivedQualifiedStatementVerified;
|
|
66
80
|
}
|
|
67
81
|
|
|
82
|
+
function verifyDerivedQualifiedStatementATrivially(qualifiedStatementNode, substitutions, localContext) {
|
|
83
|
+
let derivedQualifiedStatementVerifiedTrivially = false;
|
|
84
|
+
|
|
85
|
+
const metavariableNode = metavariableNodeQuery(qualifiedStatementNode);
|
|
86
|
+
|
|
87
|
+
if (metavariableNode === null) {
|
|
88
|
+
const statementNode = statementNodeQuery(qualifiedStatementNode),
|
|
89
|
+
qualifiedStatementString = localContext.nodeAsString(qualifiedStatementNode);
|
|
90
|
+
|
|
91
|
+
localContext.trace(`Unifying the '${qualifiedStatementString}' derived qualified statement trivially...`, qualifiedStatementNode);
|
|
92
|
+
|
|
93
|
+
debugger
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
if (derivedQualifiedStatementVerifiedTrivially) {
|
|
97
|
+
localContext.debug(`...unified the '${qualifiedStatementString}' derived qualified statement trivially.`, qualifiedStatementNode);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
return derivedQualifiedStatementVerifiedTrivially;
|
|
102
|
+
}
|
|
103
|
+
|
|
68
104
|
function unifyDerivedQualifiedStatementAWithRule(qualifiedStatementNode, substitutions, localContext) {
|
|
69
105
|
let derivedQualifiedStatementUnifiedWithRule = false;
|
|
70
106
|
|