occam-furtle 3.0.460 → 3.0.462
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/block.js +4 -3
- package/lib/element/assignment/list.js +15 -11
- package/lib/element/assignment/object.js +11 -8
- package/lib/element/assignment/variable.js +6 -5
- package/lib/element/binding.js +5 -4
- package/lib/element/bindings/named.js +15 -8
- package/lib/element/bindings.js +15 -9
- package/lib/element/contains.js +4 -4
- package/lib/element/endsWith.js +4 -4
- package/lib/element/lengthOf.js +4 -4
- package/lib/element/nodeQuery.js +7 -7
- package/lib/element/nodesQuery.js +6 -6
- package/lib/element/primitive.js +3 -3
- package/lib/element/returnStatement.js +3 -3
- package/lib/element/startsWith.js +4 -4
- package/lib/element/term/bracketed.js +3 -3
- package/lib/element/term/comparison.js +4 -4
- package/lib/element/term/logical.js +5 -5
- package/lib/element/term/negated.js +4 -4
- package/lib/element/term.js +8 -10
- package/lib/element/terms.js +3 -3
- package/lib/element/toInteger.js +5 -5
- package/lib/element/tryInteger.js +4 -4
- package/lib/element/value.js +4 -6
- package/lib/element/values.js +3 -3
- package/lib/element/variable.js +11 -9
- package/package.json +2 -2
- package/src/context/block.js +4 -2
- package/src/element/assignment/list.js +18 -13
- package/src/element/assignment/object.js +11 -9
- package/src/element/assignment/variable.js +5 -5
- package/src/element/binding.js +5 -3
- package/src/element/bindings/named.js +22 -10
- package/src/element/bindings.js +20 -10
- package/src/element/contains.js +3 -3
- package/src/element/endsWith.js +3 -3
- package/src/element/lengthOf.js +3 -3
- package/src/element/nodeQuery.js +6 -6
- package/src/element/nodesQuery.js +5 -5
- package/src/element/primitive.js +2 -2
- package/src/element/returnStatement.js +2 -2
- package/src/element/startsWith.js +3 -3
- package/src/element/term/bracketed.js +2 -2
- package/src/element/term/comparison.js +3 -3
- package/src/element/term/logical.js +4 -4
- package/src/element/term/negated.js +3 -3
- package/src/element/term.js +7 -11
- package/src/element/terms.js +2 -2
- package/src/element/toInteger.js +4 -4
- package/src/element/tryInteger.js +3 -3
- package/src/element/value.js +3 -7
- package/src/element/values.js +2 -2
- package/src/element/variable.js +10 -8
package/lib/context/block.js
CHANGED
|
@@ -39,15 +39,16 @@ class BlockContext extends _occamlanguages.Context {
|
|
|
39
39
|
}
|
|
40
40
|
return variables;
|
|
41
41
|
}
|
|
42
|
-
addVariable(variable) {
|
|
42
|
+
addVariable(variable, back, forward) {
|
|
43
43
|
const nested = false, variableName = variable.getName(), variableString = variable.getString(), variablePresent = this.isVariablePresentByVariableName(variableName, nested);
|
|
44
44
|
if (variablePresent) {
|
|
45
45
|
const message = `The '${variableString}' variable is already present.'`, exception = _exception.default.fromMessage(message);
|
|
46
|
-
throw exception;
|
|
46
|
+
throw back(exception);
|
|
47
47
|
}
|
|
48
48
|
const context = this; ///
|
|
49
49
|
context.trace(`Added the '${variableString}' variable to the context.`);
|
|
50
50
|
this.variables.push(variable);
|
|
51
|
+
return forward();
|
|
51
52
|
}
|
|
52
53
|
findProcedureByProcedureName(procedureName) {
|
|
53
54
|
const context = this.getContext(), procedure = context.findProcedureByProcedureName(procedureName);
|
|
@@ -80,4 +81,4 @@ function isContextBlockContext(context) {
|
|
|
80
81
|
return contextBlockContext;
|
|
81
82
|
}
|
|
82
83
|
|
|
83
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
84
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250ZXh0L2Jsb2NrLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBDb250ZXh0IH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuaW1wb3J0IHsgYXJyYXlVdGlsaXRpZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XG5cbmltcG9ydCBFeGNlcHRpb24gZnJvbSBcIi4uL2V4Y2VwdGlvblwiO1xuXG5jb25zdCB7IHB1c2ggfSA9IGFycmF5VXRpbGl0aWVzO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBCbG9ja0NvbnRleHQgZXh0ZW5kcyBDb250ZXh0IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgdmFyaWFibGVzKSB7XG4gICAgc3VwZXIoY29udGV4dCk7XG5cbiAgICB0aGlzLnZhcmlhYmxlcyA9IHZhcmlhYmxlcztcbiAgfVxuXG4gIGdldFZhcmlhYmxlcyhuZXN0ZWQgPSB0cnVlKSB7XG4gICAgY29uc3QgdmFyaWFibGVzID0gW107XG5cbiAgICBwdXNoKHZhcmlhYmxlcywgdGhpcy52YXJpYWJsZXMpO1xuXG4gICAgaWYgKG5lc3RlZCkge1xuICAgICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpLFxuICAgICAgICAgICAgY29udGV4dFZhcmlhYmxlcyA9IGNvbnRleHQuZ2V0VmFyaWFibGVzKG5lc3RlZCk7XG5cbiAgICAgIHB1c2godmFyaWFibGVzLCBjb250ZXh0VmFyaWFibGVzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFyaWFibGVzO1xuICB9XG5cbiAgYWRkVmFyaWFibGUodmFyaWFibGUsIGJhY2ssIGZvcndhcmQpIHtcbiAgICBjb25zdCBuZXN0ZWQgPSBmYWxzZSxcbiAgICAgICAgICB2YXJpYWJsZU5hbWUgPSB2YXJpYWJsZS5nZXROYW1lKCksXG4gICAgICAgICAgdmFyaWFibGVTdHJpbmcgPSB2YXJpYWJsZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICB2YXJpYWJsZVByZXNlbnQgPSB0aGlzLmlzVmFyaWFibGVQcmVzZW50QnlWYXJpYWJsZU5hbWUodmFyaWFibGVOYW1lLCBuZXN0ZWQpO1xuXG4gICAgaWYgKHZhcmlhYmxlUHJlc2VudCkge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IGBUaGUgJyR7dmFyaWFibGVTdHJpbmd9JyB2YXJpYWJsZSBpcyBhbHJlYWR5IHByZXNlbnQuJ2AsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHRocm93IGJhY2soZXhjZXB0aW9uKTtcbiAgICB9XG5cbiAgICBjb25zdCBjb250ZXh0ID0gdGhpczsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBBZGRlZCB0aGUgJyR7dmFyaWFibGVTdHJpbmd9JyB2YXJpYWJsZSB0byB0aGUgY29udGV4dC5gKTtcblxuICAgIHRoaXMudmFyaWFibGVzLnB1c2godmFyaWFibGUpO1xuXG4gICAgcmV0dXJuIGZvcndhcmQoKTtcbiAgfVxuXG4gIGZpbmRQcm9jZWR1cmVCeVByb2NlZHVyZU5hbWUocHJvY2VkdXJlTmFtZSkge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKSxcbiAgICAgICAgICBwcm9jZWR1cmUgPSBjb250ZXh0LmZpbmRQcm9jZWR1cmVCeVByb2NlZHVyZU5hbWUocHJvY2VkdXJlTmFtZSk7XG5cbiAgICByZXR1cm4gcHJvY2VkdXJlO1xuICB9XG5cbiAgaXNQcm9jZWR1cmVQcmVzZW50QnlQcm9jZWR1cmVOYW1lKHByb2NlZHVyZU5hbWUpIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCksXG4gICAgICAgICAgcHJvY2VkdXJlUHJlc2VudCA9IGNvbnRleHQuaXNQcm9jZWR1cmVQcmVzZW50QnlQcm9jZWR1cmVOYW1lKHByb2NlZHVyZU5hbWUpO1xuXG4gICAgcmV0dXJuIHByb2NlZHVyZVByZXNlbnQ7XG4gIH1cblxuICBmaW5kVmFyaWFibGVCeVZhcmlhYmxlTmFtZSh2YXJpYWJsZU5hbWUsIG5lc3RlZCA9IHRydWUpIHtcbiAgICBjb25zdCB2YXJpYWJsZXMgPSB0aGlzLmdldFZhcmlhYmxlcyhuZXN0ZWQpLFxuICAgICAgICAgIHZhcmlhYmxlID0gdmFyaWFibGVzLmZpbmQoKHZhcmlhYmxlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB2YXJpYWJsZUNvbXBhcmVzVG9WYXJpYWJsZU5hbWUgPSB2YXJpYWJsZS5jb21wYXJlVmFyaWFibGVOYW1lKHZhcmlhYmxlTmFtZSk7XG5cbiAgICAgICAgICAgIGlmICh2YXJpYWJsZUNvbXBhcmVzVG9WYXJpYWJsZU5hbWUpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSkgfHwgbnVsbDtcblxuICAgIHJldHVybiB2YXJpYWJsZTtcbiAgfVxuXG4gIGlzVmFyaWFibGVQcmVzZW50QnlWYXJpYWJsZU5hbWUodmFyaWFibGVOYW1lLCBuZXN0ZWQgPSB0cnVlKSB7XG4gICAgY29uc3QgdmFyaWFibGUgPSB0aGlzLmZpbmRWYXJpYWJsZUJ5VmFyaWFibGVOYW1lKHZhcmlhYmxlTmFtZSwgbmVzdGVkKSxcbiAgICAgICAgICB2YXJpYWJsZVByZXNlbnQgPSAodmFyaWFibGUgIT09IG51bGwpO1xuXG4gICAgcmV0dXJuIHZhcmlhYmxlUHJlc2VudDtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tVmFyaWFibGVzKHZhcmlhYmxlcywgY29udGV4dCkge1xuICAgIGNvbnN0IGJsb2NrQ29udGV4dCA9IENvbnRleHQuZnJvbU5vdGhpbmcoQmxvY2tDb250ZXh0LCB2YXJpYWJsZXMsIGNvbnRleHQpXG5cbiAgICByZXR1cm4gYmxvY2tDb250ZXh0O1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0NvbnRleHRCbG9ja0NvbnRleHQoY29udGV4dCkge1xuICBjb25zdCBjb250ZXh0QmxvY2tDb250ZXh0ID0gQmxvY2tDb250ZXh0LnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mKGNvbnRleHQpO1xuXG4gIHJldHVybiBjb250ZXh0QmxvY2tDb250ZXh0O1xufVxuIl0sIm5hbWVzIjpbIkJsb2NrQ29udGV4dCIsImlzQ29udGV4dEJsb2NrQ29udGV4dCIsInB1c2giLCJhcnJheVV0aWxpdGllcyIsIkNvbnRleHQiLCJjb250ZXh0IiwidmFyaWFibGVzIiwiZ2V0VmFyaWFibGVzIiwibmVzdGVkIiwiZ2V0Q29udGV4dCIsImNvbnRleHRWYXJpYWJsZXMiLCJhZGRWYXJpYWJsZSIsInZhcmlhYmxlIiwiYmFjayIsImZvcndhcmQiLCJ2YXJpYWJsZU5hbWUiLCJnZXROYW1lIiwidmFyaWFibGVTdHJpbmciLCJnZXRTdHJpbmciLCJ2YXJpYWJsZVByZXNlbnQiLCJpc1ZhcmlhYmxlUHJlc2VudEJ5VmFyaWFibGVOYW1lIiwibWVzc2FnZSIsImV4Y2VwdGlvbiIsIkV4Y2VwdGlvbiIsImZyb21NZXNzYWdlIiwidHJhY2UiLCJmaW5kUHJvY2VkdXJlQnlQcm9jZWR1cmVOYW1lIiwicHJvY2VkdXJlTmFtZSIsInByb2NlZHVyZSIsImlzUHJvY2VkdXJlUHJlc2VudEJ5UHJvY2VkdXJlTmFtZSIsInByb2NlZHVyZVByZXNlbnQiLCJmaW5kVmFyaWFibGVCeVZhcmlhYmxlTmFtZSIsImZpbmQiLCJ2YXJpYWJsZUNvbXBhcmVzVG9WYXJpYWJsZU5hbWUiLCJjb21wYXJlVmFyaWFibGVOYW1lIiwiZnJvbVZhcmlhYmxlcyIsImJsb2NrQ29udGV4dCIsImZyb21Ob3RoaW5nIiwiY29udGV4dEJsb2NrQ29udGV4dCIsInByb3RvdHlwZSIsImlzUHJvdG90eXBlT2YiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztRQVNBO2VBQXFCQTs7UUFxRkxDO2VBQUFBOzs7Z0NBNUZROzJCQUNPO2tFQUVUOzs7Ozs7QUFFdEIsTUFBTSxFQUFFQyxJQUFJLEVBQUUsR0FBR0MseUJBQWM7QUFFaEIsTUFBTUgscUJBQXFCSSx1QkFBTztJQUMvQyxZQUFZQyxPQUFPLEVBQUVDLFNBQVMsQ0FBRTtRQUM5QixLQUFLLENBQUNEO1FBRU4sSUFBSSxDQUFDQyxTQUFTLEdBQUdBO0lBQ25CO0lBRUFDLGFBQWFDLFNBQVMsSUFBSSxFQUFFO1FBQzFCLE1BQU1GLFlBQVksRUFBRTtRQUVwQkosS0FBS0ksV0FBVyxJQUFJLENBQUNBLFNBQVM7UUFFOUIsSUFBSUUsUUFBUTtZQUNWLE1BQU1ILFVBQVUsSUFBSSxDQUFDSSxVQUFVLElBQ3pCQyxtQkFBbUJMLFFBQVFFLFlBQVksQ0FBQ0M7WUFFOUNOLEtBQUtJLFdBQVdJO1FBQ2xCO1FBRUEsT0FBT0o7SUFDVDtJQUVBSyxZQUFZQyxRQUFRLEVBQUVDLElBQUksRUFBRUMsT0FBTyxFQUFFO1FBQ25DLE1BQU1OLFNBQVMsT0FDVE8sZUFBZUgsU0FBU0ksT0FBTyxJQUMvQkMsaUJBQWlCTCxTQUFTTSxTQUFTLElBQ25DQyxrQkFBa0IsSUFBSSxDQUFDQywrQkFBK0IsQ0FBQ0wsY0FBY1A7UUFFM0UsSUFBSVcsaUJBQWlCO1lBQ25CLE1BQU1FLFVBQVUsQ0FBQyxLQUFLLEVBQUVKLGVBQWUsK0JBQStCLENBQUMsRUFDakVLLFlBQVlDLGtCQUFTLENBQUNDLFdBQVcsQ0FBQ0g7WUFFeEMsTUFBTVIsS0FBS1M7UUFDYjtRQUVBLE1BQU1qQixVQUFVLElBQUksRUFBRSxHQUFHO1FBRXpCQSxRQUFRb0IsS0FBSyxDQUFDLENBQUMsV0FBVyxFQUFFUixlQUFlLDBCQUEwQixDQUFDO1FBRXRFLElBQUksQ0FBQ1gsU0FBUyxDQUFDSixJQUFJLENBQUNVO1FBRXBCLE9BQU9FO0lBQ1Q7SUFFQVksNkJBQTZCQyxhQUFhLEVBQUU7UUFDMUMsTUFBTXRCLFVBQVUsSUFBSSxDQUFDSSxVQUFVLElBQ3pCbUIsWUFBWXZCLFFBQVFxQiw0QkFBNEIsQ0FBQ0M7UUFFdkQsT0FBT0M7SUFDVDtJQUVBQyxrQ0FBa0NGLGFBQWEsRUFBRTtRQUMvQyxNQUFNdEIsVUFBVSxJQUFJLENBQUNJLFVBQVUsSUFDekJxQixtQkFBbUJ6QixRQUFRd0IsaUNBQWlDLENBQUNGO1FBRW5FLE9BQU9HO0lBQ1Q7SUFFQUMsMkJBQTJCaEIsWUFBWSxFQUFFUCxTQUFTLElBQUksRUFBRTtRQUN0RCxNQUFNRixZQUFZLElBQUksQ0FBQ0MsWUFBWSxDQUFDQyxTQUM5QkksV0FBV04sVUFBVTBCLElBQUksQ0FBQyxDQUFDcEI7WUFDekIsTUFBTXFCLGlDQUFpQ3JCLFNBQVNzQixtQkFBbUIsQ0FBQ25CO1lBRXBFLElBQUlrQixnQ0FBZ0M7Z0JBQ2xDLE9BQU87WUFDVDtRQUNGLE1BQU07UUFFWixPQUFPckI7SUFDVDtJQUVBUSxnQ0FBZ0NMLFlBQVksRUFBRVAsU0FBUyxJQUFJLEVBQUU7UUFDM0QsTUFBTUksV0FBVyxJQUFJLENBQUNtQiwwQkFBMEIsQ0FBQ2hCLGNBQWNQLFNBQ3pEVyxrQkFBbUJQLGFBQWE7UUFFdEMsT0FBT087SUFDVDtJQUVBLE9BQU9nQixjQUFjN0IsU0FBUyxFQUFFRCxPQUFPLEVBQUU7UUFDdkMsTUFBTStCLGVBQWVoQyx1QkFBTyxDQUFDaUMsV0FBVyxDQUFDckMsY0FBY00sV0FBV0Q7UUFFbEUsT0FBTytCO0lBQ1Q7QUFDRjtBQUVPLFNBQVNuQyxzQkFBc0JJLE9BQU87SUFDM0MsTUFBTWlDLHNCQUFzQnRDLGFBQWF1QyxTQUFTLENBQUNDLGFBQWEsQ0FBQ25DO0lBRWpFLE9BQU9pQztBQUNUIn0=
|
|
@@ -58,7 +58,7 @@ function _interop_require_wildcard(obj, nodeInterop) {
|
|
|
58
58
|
}
|
|
59
59
|
return newObj;
|
|
60
60
|
}
|
|
61
|
-
const { breakable } = _occamlanguages.breakPointUtilities;
|
|
61
|
+
const { forEach } = _occamlanguages.continuationUtilities, { breakable } = _occamlanguages.breakPointUtilities;
|
|
62
62
|
const _default = (0, _elements.define)(class ListAssignment extends _occamlanguages.Element {
|
|
63
63
|
constructor(context, string, node, breakPoint, variable, bindings){
|
|
64
64
|
super(context, string, node, breakPoint);
|
|
@@ -85,17 +85,19 @@ const _default = (0, _elements.define)(class ListAssignment extends _occamlangua
|
|
|
85
85
|
throw exception;
|
|
86
86
|
}
|
|
87
87
|
const values = value.lift(context);
|
|
88
|
-
this.bindings
|
|
88
|
+
return forEach(this.bindings, (binding, back, forward, index)=>{
|
|
89
89
|
const elided = binding.isElided();
|
|
90
|
-
if (
|
|
91
|
-
|
|
92
|
-
this.evaluateBinding(binding, value, context);
|
|
90
|
+
if (elided) {
|
|
91
|
+
return forward();
|
|
93
92
|
}
|
|
93
|
+
const value = values[index];
|
|
94
|
+
return this.evaluateBinding(binding, value, context, back, forward);
|
|
95
|
+
}, back, ()=>{
|
|
96
|
+
context.debug(`...evaluated the '${listAssignmentString}' list assignment.`);
|
|
97
|
+
return forward();
|
|
94
98
|
});
|
|
95
|
-
context.debug(`...evaluated the '${listAssignmentString}' list assignment.`);
|
|
96
|
-
return forward();
|
|
97
99
|
});
|
|
98
|
-
evaluateBinding(binding, value, context) {
|
|
100
|
+
evaluateBinding(binding, value, context, back, forward) {
|
|
99
101
|
const valueString = value.getString(), bindingString = binding.getString();
|
|
100
102
|
context.trace(`Evaluating the '${bindingString}' binding against the '${valueString}' value...`);
|
|
101
103
|
const valueType = value.getType(), bindingType = binding.getType(), bindingTypeEqualToValueType = bindingType.isEqualTo(valueType);
|
|
@@ -104,10 +106,12 @@ const _default = (0, _elements.define)(class ListAssignment extends _occamlangua
|
|
|
104
106
|
throw exception;
|
|
105
107
|
}
|
|
106
108
|
const { Variable } = _elements.default, variable = Variable.fromBinding(binding, context);
|
|
107
|
-
variable.assign(value, context)
|
|
108
|
-
|
|
109
|
+
return variable.assign(value, context, back, ()=>{
|
|
110
|
+
context.debug(`...evaluated the '${bindingString}' binding against the '${valueString}' value.`);
|
|
111
|
+
return forward();
|
|
112
|
+
});
|
|
109
113
|
}
|
|
110
114
|
static name = "ListAssignment";
|
|
111
115
|
});
|
|
112
116
|
|
|
113
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
117
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L2Fzc2lnbm1lbnQvbGlzdC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgRWxlbWVudCwgYnJlYWtQb2ludFV0aWxpdGllcywgY29udGludWF0aW9uVXRpbGl0aWVzIH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgZWxlbWVudHMgZnJvbSBcIi4uLy4uL2VsZW1lbnRzXCI7XG5pbXBvcnQgRXhjZXB0aW9uIGZyb20gXCIuLi8uLi9leGNlcHRpb25cIjtcblxuaW1wb3J0IHsgZGVmaW5lIH0gZnJvbSBcIi4uLy4uL2VsZW1lbnRzXCI7XG5pbXBvcnQgeyBMSVNUX1RZUEVfTkFNRSB9IGZyb20gXCIuLi8uLi90eXBlTmFtZXNcIjtcblxuY29uc3QgeyBmb3JFYWNoIH0gPSBjb250aW51YXRpb25VdGlsaXRpZXMsXG4gICAgICB7IGJyZWFrYWJsZSB9ID0gYnJlYWtQb2ludFV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIExpc3RBc3NpZ25tZW50IGV4dGVuZHMgRWxlbWVudCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgdmFyaWFibGUsIGJpbmRpbmdzKSB7XG4gICAgc3VwZXIoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50KTtcblxuICAgIHRoaXMudmFyaWFibGUgPSB2YXJpYWJsZTtcbiAgICB0aGlzLmJpbmRpbmdzID0gYmluZGluZ3M7XG4gIH1cblxuICBnZXRWYXJpYWJsZSgpIHtcbiAgICByZXR1cm4gdGhpcy52YXJpYWJsZTtcbiAgfVxuXG4gIGdldEJpbmRpbmdzKCkge1xuICAgIHJldHVybiB0aGlzLmJpbmRpbmdzO1xuICB9XG5cbiAgZXZhbHVhdGUgPSBicmVha2FibGUoZnVuY3Rpb24gKGNvbnRleHQsIGJhY2ssIGZvcndhcmQpIHtcbiAgICBjb25zdCBsaXN0QXNzaWdubWVudFN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7IC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgRXZhbHVhdGluZyB0aGUgJyR7bGlzdEFzc2lnbm1lbnRTdHJpbmd9JyBsaXN0IGFzc2lnbm1lbnQuLi5gKTtcblxuICAgIGNvbnN0IHZhbHVlID0gdGhpcy52YXJpYWJsZS5ldmFsdWF0ZShjb250ZXh0KSxcbiAgICAgICAgICB2YWx1ZVR5cGUgPSB2YWx1ZS5nZXRUeXBlKCksXG4gICAgICAgICAgdmFsdWVUeXBlTGlzdFR5cGUgPSB2YWx1ZVR5cGUuaXNMaXN0VHlwZSgpO1xuXG4gICAgaWYgKCF2YWx1ZVR5cGVMaXN0VHlwZSkge1xuICAgICAgY29uc3QgdmFsdWVTdHJpbmcgPSB2YWx1ZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBgVGhlICcke3ZhbHVlU3RyaW5nfScgdmFsdWUncyAnJHt2YWx1ZVR5cGV9JyB0eXBlIHNob3VsZCBiZSAnJHtMSVNUX1RZUEVfTkFNRX0nLmAsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHRocm93IGV4Y2VwdGlvbjtcbiAgICB9XG5cbiAgICBjb25zdCBiaW5kaW5nc0xlbmd0aCA9IHRoaXMuYmluZGluZ3MuZ2V0TGVuZ3RoKCksXG4gICAgICAgICAgcHJpbWl0aXZlVmFsdWUgPSB2YWx1ZS5nZXRQcmltaXRpdmVWYWx1ZSgpLFxuICAgICAgICAgIHByaW1pdGl2ZVZhbHVlTGVuZ3RoID0gcHJpbWl0aXZlVmFsdWUubGVuZ3RoO1xuXG4gICAgaWYgKGJpbmRpbmdzTGVuZ3RoID4gcHJpbWl0aXZlVmFsdWVMZW5ndGgpIHtcbiAgICAgIGNvbnN0IHZhbHVlU3RyaW5nID0gdmFsdWUuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICBiaW5kaW5nc1N0cmluZyA9IHRoaXMuYmluZGluZ3MuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICBtZXNzYWdlID0gYFRoZSBsZW5ndGggb2YgdGhlICcke2JpbmRpbmdzU3RyaW5nfScgYmluZGluZ3MgaXMgZ3JlYXRlciB0aGFuIHRoZSBsZW5ndGggb2YgdGhlICcke3ZhbHVlU3RyaW5nfScgbGlzdC5gLFxuICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICB0aHJvdyBleGNlcHRpb247XG4gICAgfVxuXG4gICAgY29uc3QgdmFsdWVzID0gdmFsdWUubGlmdChjb250ZXh0KTtcblxuICAgIHJldHVybiBmb3JFYWNoKHRoaXMuYmluZGluZ3MsIChiaW5kaW5nLCBiYWNrLCBmb3J3YXJkLCBpbmRleCkgPT4ge1xuICAgICAgY29uc3QgZWxpZGVkID0gYmluZGluZy5pc0VsaWRlZCgpO1xuXG4gICAgICBpZiAoZWxpZGVkKSB7XG4gICAgICAgIHJldHVybiBmb3J3YXJkKCk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHZhbHVlID0gdmFsdWVzW2luZGV4XTtcblxuICAgICAgcmV0dXJuIHRoaXMuZXZhbHVhdGVCaW5kaW5nKGJpbmRpbmcsIHZhbHVlLCBjb250ZXh0LCBiYWNrLCBmb3J3YXJkKTtcbiAgICB9LCBiYWNrLCAoKSA9PiB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi5ldmFsdWF0ZWQgdGhlICcke2xpc3RBc3NpZ25tZW50U3RyaW5nfScgbGlzdCBhc3NpZ25tZW50LmApO1xuXG4gICAgICByZXR1cm4gZm9yd2FyZCgpO1xuICAgIH0pO1xuICB9KTtcblxuICBldmFsdWF0ZUJpbmRpbmcoYmluZGluZywgdmFsdWUsIGNvbnRleHQsIGJhY2ssIGZvcndhcmQpIHtcbiAgICBjb25zdCB2YWx1ZVN0cmluZyA9IHZhbHVlLmdldFN0cmluZygpLFxuICAgICAgICAgIGJpbmRpbmdTdHJpbmcgPSBiaW5kaW5nLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC50cmFjZShgRXZhbHVhdGluZyB0aGUgJyR7YmluZGluZ1N0cmluZ30nIGJpbmRpbmcgYWdhaW5zdCB0aGUgJyR7dmFsdWVTdHJpbmd9JyB2YWx1ZS4uLmApO1xuXG4gICAgY29uc3QgdmFsdWVUeXBlID0gdmFsdWUuZ2V0VHlwZSgpLFxuICAgICAgICAgIGJpbmRpbmdUeXBlID0gYmluZGluZy5nZXRUeXBlKCksXG4gICAgICAgICAgYmluZGluZ1R5cGVFcXVhbFRvVmFsdWVUeXBlID0gYmluZGluZ1R5cGUuaXNFcXVhbFRvKHZhbHVlVHlwZSk7XG5cbiAgICBpZiAoIWJpbmRpbmdUeXBlRXF1YWxUb1ZhbHVlVHlwZSkge1xuICAgICAgY29uc3QgYmluZGluZ1R5cGVTdHJpbmcgPSBiaW5kaW5nVHlwZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgIHZhbHVlVHlwZVN0cmluZyA9IHZhbHVlVHlwZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgIHZhbHVlU3RyaW5nID0gdmFsdWUuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICBtZXNzYWdlID0gYFRoZSAnJHtiaW5kaW5nU3RyaW5nfScgYmluZGluZydzICcke2JpbmRpbmdUeXBlU3RyaW5nfScgdHlwZSBpcyBub3QgZXF1YWwgdG8gdGhlICcke3ZhbHVlU3RyaW5nfScgdmFsdWUncyAnJHt2YWx1ZVR5cGVTdHJpbmd9JyB0eXBlLmAsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHRocm93IGV4Y2VwdGlvbjtcbiAgICB9XG5cbiAgICBjb25zdCB7IFZhcmlhYmxlIH0gPSBlbGVtZW50cyxcbiAgICAgICAgICB2YXJpYWJsZSA9IFZhcmlhYmxlLmZyb21CaW5kaW5nKGJpbmRpbmcsIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIHZhcmlhYmxlLmFzc2lnbih2YWx1ZSwgY29udGV4dCwgYmFjaywgKCkgPT4ge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4uZXZhbHVhdGVkIHRoZSAnJHtiaW5kaW5nU3RyaW5nfScgYmluZGluZyBhZ2FpbnN0IHRoZSAnJHt2YWx1ZVN0cmluZ30nIHZhbHVlLmApO1xuXG4gICAgICByZXR1cm4gZm9yd2FyZCgpO1xuICAgIH0pO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIkxpc3RBc3NpZ25tZW50XCI7XG59KTtcbiJdLCJuYW1lcyI6WyJmb3JFYWNoIiwiY29udGludWF0aW9uVXRpbGl0aWVzIiwiYnJlYWthYmxlIiwiYnJlYWtQb2ludFV0aWxpdGllcyIsImRlZmluZSIsIkxpc3RBc3NpZ25tZW50IiwiRWxlbWVudCIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiYnJlYWtQb2ludCIsInZhcmlhYmxlIiwiYmluZGluZ3MiLCJnZXRWYXJpYWJsZSIsImdldEJpbmRpbmdzIiwiZXZhbHVhdGUiLCJiYWNrIiwiZm9yd2FyZCIsImxpc3RBc3NpZ25tZW50U3RyaW5nIiwiZ2V0U3RyaW5nIiwidHJhY2UiLCJ2YWx1ZSIsInZhbHVlVHlwZSIsImdldFR5cGUiLCJ2YWx1ZVR5cGVMaXN0VHlwZSIsImlzTGlzdFR5cGUiLCJ2YWx1ZVN0cmluZyIsIm1lc3NhZ2UiLCJMSVNUX1RZUEVfTkFNRSIsImV4Y2VwdGlvbiIsIkV4Y2VwdGlvbiIsImZyb21NZXNzYWdlIiwiYmluZGluZ3NMZW5ndGgiLCJnZXRMZW5ndGgiLCJwcmltaXRpdmVWYWx1ZSIsImdldFByaW1pdGl2ZVZhbHVlIiwicHJpbWl0aXZlVmFsdWVMZW5ndGgiLCJsZW5ndGgiLCJiaW5kaW5nc1N0cmluZyIsInZhbHVlcyIsImxpZnQiLCJiaW5kaW5nIiwiaW5kZXgiLCJlbGlkZWQiLCJpc0VsaWRlZCIsImV2YWx1YXRlQmluZGluZyIsImRlYnVnIiwiYmluZGluZ1N0cmluZyIsImJpbmRpbmdUeXBlIiwiYmluZGluZ1R5cGVFcXVhbFRvVmFsdWVUeXBlIiwiaXNFcXVhbFRvIiwiYmluZGluZ1R5cGVTdHJpbmciLCJ2YWx1ZVR5cGVTdHJpbmciLCJWYXJpYWJsZSIsImVsZW1lbnRzIiwiZnJvbUJpbmRpbmciLCJhc3NpZ24iLCJuYW1lIl0sIm1hcHBpbmdzIjoiQUFBQTs7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
|
|
@@ -84,13 +84,14 @@ const _default = (0, _elements.define)(class ObjectAssignment extends _occamlang
|
|
|
84
84
|
throw exception;
|
|
85
85
|
}
|
|
86
86
|
_nominalValueProperties.default.compareNamedBindings(this.namedBindings, context);
|
|
87
|
-
this.namedBindings.forEachNamedBinding((namedBinding)=>{
|
|
88
|
-
this.evaluateNamedBinding(namedBinding, value, context);
|
|
87
|
+
return this.namedBindings.forEachNamedBinding((namedBinding, back, forward)=>{
|
|
88
|
+
this.evaluateNamedBinding(namedBinding, value, context, back, forward);
|
|
89
|
+
}, back, ()=>{
|
|
90
|
+
context.debug(`...evaluated the '${objectAssignmentString}' object assignment.`);
|
|
91
|
+
return forward();
|
|
89
92
|
});
|
|
90
|
-
context.debug(`...evaluated the '${objectAssignmentString}' object assignment.`);
|
|
91
|
-
return forward();
|
|
92
93
|
});
|
|
93
|
-
evaluateNamedBinding(namedBinding, term, context) {
|
|
94
|
+
evaluateNamedBinding(namedBinding, term, context, back, forward) {
|
|
94
95
|
const termString = term.getString(), namedBindingString = namedBinding.getString();
|
|
95
96
|
context.trace(`Evaluating the '${namedBindingString}' named binding against the '${termString}' term...`);
|
|
96
97
|
let value;
|
|
@@ -118,8 +119,10 @@ const _default = (0, _elements.define)(class ObjectAssignment extends _occamlang
|
|
|
118
119
|
}
|
|
119
120
|
}
|
|
120
121
|
const { Variable } = _elements.default, variable = Variable.fromNamedBinding(namedBinding, context);
|
|
121
|
-
variable.assign(value, context)
|
|
122
|
-
|
|
122
|
+
return variable.assign(value, context, back, ()=>{
|
|
123
|
+
context.debug(`...evaluated the '${namedBindingString}' parameter named against the '${termString}' term.`);
|
|
124
|
+
forward();
|
|
125
|
+
});
|
|
123
126
|
}
|
|
124
127
|
evaluateContentNamedBinding(namedBinding, term, context) {
|
|
125
128
|
const type = namedBinding.getType(), namedBindingString = namedBinding.getString();
|
|
@@ -187,4 +190,4 @@ const _default = (0, _elements.define)(class ObjectAssignment extends _occamlang
|
|
|
187
190
|
static name = "ObjectAssignment";
|
|
188
191
|
});
|
|
189
192
|
|
|
190
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L2Fzc2lnbm1lbnQvb2JqZWN0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFbGVtZW50LCBicmVha1BvaW50VXRpbGl0aWVzIH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgZWxlbWVudHMgZnJvbSBcIi4uLy4uL2VsZW1lbnRzXCI7XG5pbXBvcnQgRXhjZXB0aW9uIGZyb20gXCIuLi8uLi9leGNlcHRpb25cIjtcbmltcG9ydCBub21pbmFsVmFsdWVQcm9wZXJ0aWVzIGZyb20gXCIuLi8uLi9ub21pbmFsVmFsdWVQcm9wZXJ0aWVzXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi8uLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgc3RyaW5nTGl0ZXJhbEZyb21TdHJpbmcgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL3N0cmluZ0xpdGVyYWxcIjtcbmltcG9ydCB7IHZhbHVlRnJvbUJvb2xlYW4sIHZhbHVlRnJvbVN0cmluZ0xpdGVyYWwsIHZhbHVlRnJvbU5vZGVzQW5kTm9taW5hbFZhbHVlIH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy92YWx1ZVwiO1xuaW1wb3J0IHsgTElTVF9UWVBFX05BTUUsIFNUUklOR19UWVBFX05BTUUsIEJPT0xFQU5fVFlQRV9OQU1FLCBOT01JTkFMX1ZBTFVFX1RZUEVfTkFNRSB9IGZyb20gXCIuLi8uLi90eXBlTmFtZXNcIjtcbmltcG9ydCB7IENPTlRFTlRfUEFSQU1FVEVSX05BTUUsIFRFUk1JTkFMX1BBUkFNRVRFUl9OQU1FLCBDSElMRF9OT0RFU19QQVJBTUVURVJfTkFNRSwgTk9fV0hJVEVTUEFDRV9QQVJBTUVURVJfTkFNRSB9IGZyb20gXCIuLi8uLi9wYXJhbWV0ZXJOYW1lc1wiO1xuXG5jb25zdCB7IGJyZWFrYWJsZSB9ID0gYnJlYWtQb2ludFV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIE9iamVjdEFzc2lnbm1lbnQgZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCB2YXJpYWJsZSwgbmFtZWRCaW5kaW5ncykge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLnZhcmlhYmxlID0gdmFyaWFibGU7XG4gICAgdGhpcy5uYW1lZEJpbmRpbmdzID0gbmFtZWRCaW5kaW5ncztcbiAgfVxuXG4gIGdldFZhcmlhYmxlKCkge1xuICAgIHJldHVybiB0aGlzLnZhcmlhYmxlO1xuICB9XG5cbiAgZ2V0TmFtZWRCaW5kaW5ncygpIHtcbiAgICByZXR1cm4gdGhpcy5uYW1lZEJpbmRpbmdzO1xuICB9XG5cbiAgZXZhbHVhdGUgPSBicmVha2FibGUoZnVuY3Rpb24gKGNvbnRleHQsIGJhY2ssIGZvcndhcmQpIHtcbiAgICBjb25zdCBvYmplY3RBc3NpZ25tZW50U3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSAnJHtvYmplY3RBc3NpZ25tZW50U3RyaW5nfScgb2JqZWN0IGFzc2lnbm1lbnQuLi5gKTtcblxuICAgIGNvbnN0IHZhbHVlID0gdGhpcy52YXJpYWJsZS5ldmFsdWF0ZShjb250ZXh0KSxcbiAgICAgICAgICB2YWx1ZVR5cGUgPSB2YWx1ZS5nZXRUeXBlKCksXG4gICAgICAgICAgdmFsdWVUeXBlTm9taW5hbFZhbHVlVHlwZSA9IHZhbHVlVHlwZS5pc05vbWluYWxWYWx1ZVR5cGUoKTtcblxuICAgIGlmICghdmFsdWVUeXBlTm9taW5hbFZhbHVlVHlwZSkge1xuICAgICAgY29uc3QgdmFsdWVTdHJpbmcgPSB2YWx1ZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBgVGhlICcke3ZhbHVlU3RyaW5nfScgdmFsdWUncyAnJHt2YWx1ZVR5cGV9JyB0eXBlIHNob3VsZCBiZSAnJHtOT01JTkFMX1ZBTFVFX1RZUEVfTkFNRX0nLmAsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHRocm93IGV4Y2VwdGlvbjtcbiAgICB9XG5cbiAgICBub21pbmFsVmFsdWVQcm9wZXJ0aWVzLmNvbXBhcmVOYW1lZEJpbmRpbmdzKHRoaXMubmFtZWRCaW5kaW5ncywgY29udGV4dCk7XG5cbiAgICB0aGlzLm5hbWVkQmluZGluZ3MuZm9yRWFjaE5hbWVkQmluZGluZygobmFtZWRCaW5kaW5nKSA9PiB7XG4gICAgICB0aGlzLmV2YWx1YXRlTmFtZWRCaW5kaW5nKG5hbWVkQmluZGluZywgdmFsdWUsIGNvbnRleHQpO1xuICAgIH0pO1xuXG4gICAgY29udGV4dC5kZWJ1ZyhgLi4uZXZhbHVhdGVkIHRoZSAnJHtvYmplY3RBc3NpZ25tZW50U3RyaW5nfScgb2JqZWN0IGFzc2lnbm1lbnQuYCk7XG5cbiAgICByZXR1cm4gZm9yd2FyZCgpO1xuICB9KTtcblxuICBldmFsdWF0ZU5hbWVkQmluZGluZyhuYW1lZEJpbmRpbmcsIHRlcm0sIGNvbnRleHQpIHtcbiAgICBjb25zdCB0ZXJtU3RyaW5nID0gdGVybS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICBuYW1lZEJpbmRpbmdTdHJpbmcgPSBuYW1lZEJpbmRpbmcuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSAnJHtuYW1lZEJpbmRpbmdTdHJpbmd9JyBuYW1lZCBiaW5kaW5nIGFnYWluc3QgdGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtLi4uYCk7XG5cbiAgICBsZXQgdmFsdWU7XG5cbiAgICBjb25zdCBuYW1lID0gbmFtZWRCaW5kaW5nLmdldE5hbWUoKTtcblxuICAgIHN3aXRjaCAobmFtZSkge1xuICAgICAgY2FzZSBDT05URU5UX1BBUkFNRVRFUl9OQU1FOiB7XG4gICAgICAgIHZhbHVlID0gdGhpcy5ldmFsdWF0ZUNvbnRlbnROYW1lZEJpbmRpbmcobmFtZWRCaW5kaW5nLCB0ZXJtLCBjb250ZXh0KTtcblxuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgY2FzZSBURVJNSU5BTF9QQVJBTUVURVJfTkFNRToge1xuICAgICAgICB2YWx1ZSA9IHRoaXMuZXZhbHVhdGVUZXJtaW5hbE5hbWVkQmluZGluZyhuYW1lZEJpbmRpbmcsIHRlcm0sIGNvbnRleHQpO1xuXG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBjYXNlIENISUxEX05PREVTX1BBUkFNRVRFUl9OQU1FOiB7XG4gICAgICAgIHZhbHVlID0gdGhpcy5ldmFsdWF0ZUNoaWxkTm9kZXNOYW1lZEJpbmRpbmcobmFtZWRCaW5kaW5nLCB0ZXJtLCBjb250ZXh0KTtcblxuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgY2FzZSBOT19XSElURVNQQUNFX1BBUkFNRVRFUl9OQU1FOiB7XG4gICAgICAgIHZhbHVlID0gdGhpcy5ldmFsdWF0ZU5vV2hpdGVzcGFjZU5hbWVkQmluZGluZyhuYW1lZEJpbmRpbmcsIHRlcm0sIGNvbnRleHQpO1xuXG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHsgVmFyaWFibGUgfSA9IGVsZW1lbnRzLFxuICAgICAgICAgIHZhcmlhYmxlID0gVmFyaWFibGUuZnJvbU5hbWVkQmluZGluZyhuYW1lZEJpbmRpbmcsIGNvbnRleHQpO1xuXG4gICAgdmFyaWFibGUuYXNzaWduKHZhbHVlLCBjb250ZXh0KTtcblxuICAgIGNvbnRleHQuZGVidWcoYC4uLmV2YWx1YXRlZCB0aGUgJyR7bmFtZWRCaW5kaW5nU3RyaW5nfScgcGFyYW1ldGVyIG5hbWVkIGFnYWluc3QgdGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtLmApO1xuICB9XG5cbiAgZXZhbHVhdGVDb250ZW50TmFtZWRCaW5kaW5nKG5hbWVkQmluZGluZywgdGVybSwgY29udGV4dCkge1xuICAgIGNvbnN0IHR5cGUgPSBuYW1lZEJpbmRpbmcuZ2V0VHlwZSgpLFxuICAgICAgICAgIG5hbWVkQmluZGluZ1N0cmluZyA9IG5hbWVkQmluZGluZy5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQudHJhY2UoYEV2YWx1YXRpbmcgdGhlIGNvbnRlbnQgJyR7bmFtZWRCaW5kaW5nU3RyaW5nfScgbmFtZWQgYmluZGluZy4uLmApO1xuXG4gICAgY29uc3QgdHlwZVN0cmluZ1R5cGUgPSB0eXBlLmlzU3RyaW5nVHlwZSgpO1xuXG4gICAgaWYgKCF0eXBlU3RyaW5nVHlwZSkge1xuICAgICAgY29uc3QgbmFtZWRCaW5kaW5nU3RyaW5nID0gbmFtZWRCaW5kaW5nLmdldFN0cmluZygpLFxuICAgICAgICAgICAgbWVzc2FnZSA9IGBUaGUgJyR7bmFtZWRCaW5kaW5nU3RyaW5nfScgbmFtZWQgYmluZGluZydzIHR5cGUgc2hvdWxkIGJlICcke1NUUklOR19UWVBFX05BTUV9Jy5gLFxuICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICB0aHJvdyBleGNlcHRpb247XG4gICAgfVxuXG4gICAgY29uc3QgcHJpbWl0aXZlVmFsdWUgPSB0ZXJtLmdldFByaW1pdGl2ZVZhbHVlKCksXG4gICAgICAgICAgbm9taW5hbFZhbHVlID0gcHJpbWl0aXZlVmFsdWUsICAvLy9cbiAgICAgICAgICBub2RlID0gbm9taW5hbFZhbHVlLmdldE5vZGUoKSxcbiAgICAgICAgICBub2RlVGVybWluYWxOb2RlID0gbm9kZS5pc1Rlcm1pbmFsTm9kZSgpO1xuXG4gICAgaWYgKCFub2RlVGVybWluYWxOb2RlKSB7XG4gICAgICBjb25zdCB0ZXJtU3RyaW5nID0gdGVybS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBgVGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtJ3Mgbm9kZSBtdXN0IGJlIHRlcm1pbmFsLmAsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHRocm93IGV4Y2VwdGlvbjtcbiAgICB9XG5cbiAgICBjb25zdCB0ZXJtaW5hbE5vZGUgPSBub2RlLCAgLy8vXG4gICAgICAgICAgY29udGVudCA9IHRlcm1pbmFsTm9kZS5nZXRDb250ZW50KCksXG4gICAgICAgICAgc3RyaW5nID0gY29udGVudCwgIC8vL1xuICAgICAgICAgIHN0cmluZ0xpdGVyYWwgPSBzdHJpbmdMaXRlcmFsRnJvbVN0cmluZyhzdHJpbmcpLFxuICAgICAgICAgIHZhbHVlID0gdmFsdWVGcm9tU3RyaW5nTGl0ZXJhbChzdHJpbmdMaXRlcmFsLCBjb250ZXh0KSxcbiAgICAgICAgICB2YWx1ZVN0dHJpbmcgPSB2YWx1ZS5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQuZGVidWcoYC4uLmV2YWx1YXRlZCB0aGUgY29udGVudCAnJHtuYW1lZEJpbmRpbmdTdHJpbmd9JyBuYW1lZCBiaW5kaW5nIGFzICcke3ZhbHVlU3R0cmluZ30nLmApO1xuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgZXZhbHVhdGVUZXJtaW5hbE5hbWVkQmluZGluZyhuYW1lZEJpbmRpbmcsIHRlcm0sIGNvbnRleHQpIHtcbiAgICBjb25zdCB0eXBlID0gbmFtZWRCaW5kaW5nLmdldFR5cGUoKSxcbiAgICAgICAgICBuYW1lZEJpbmRpbmdTdHJpbmcgPSBuYW1lZEJpbmRpbmcuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSB0ZXJtaW5hbCAnJHtuYW1lZEJpbmRpbmdTdHJpbmd9JyBuYW1lZCBiaW5kaW5nLi4uYCk7XG5cbiAgICBjb25zdCB0eXBlQm9vbGVhblR5cGUgPSB0eXBlLmlzQm9vbGVhblR5cGUoKTtcblxuICAgIGlmICghdHlwZUJvb2xlYW5UeXBlKSB7XG4gICAgICBjb25zdCBuYW1lZEJpbmRpbmdTdHJpbmcgPSBuYW1lZEJpbmRpbmcuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICBtZXNzYWdlID0gYFRoZSAnJHtuYW1lZEJpbmRpbmdTdHJpbmd9JyBuYW1lZCBiaW5kaW5nJ3MgdHlwZSBzaG91bGQgYmUgJyR7Qk9PTEVBTl9UWVBFX05BTUV9Jy5gLFxuICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICB0aHJvdyBleGNlcHRpb247XG4gICAgfVxuXG4gICAgY29uc3QgcHJpbWl0aXZlVmFsdWUgPSB0ZXJtLmdldFByaW1pdGl2ZVZhbHVlKCksXG4gICAgICAgICAgbm9taW5hbFZhbHVlID0gcHJpbWl0aXZlVmFsdWUsICAvLy9cbiAgICAgICAgICBub2RlID0gbm9taW5hbFZhbHVlLmdldE5vZGUoKSxcbiAgICAgICAgICBub2RlVGVybWluYWxOb2RlID0gbm9kZS5pc1Rlcm1pbmFsTm9kZSgpLFxuICAgICAgICAgIHRlcm1pbmFsID0gbm9kZVRlcm1pbmFsTm9kZSwgIC8vL1xuICAgICAgICAgIGJvb2xlYW4gPSB0ZXJtaW5hbCwgLy8vXG4gICAgICAgICAgdmFsdWUgPSB2YWx1ZUZyb21Cb29sZWFuKGJvb2xlYW4sIGNvbnRleHQpLCAgLy8vXG4gICAgICAgICAgdmFsdWVTdHRyaW5nID0gdmFsdWUuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LmRlYnVnKGAuLi5ldmFsdWF0ZWQgdGhlIHRlcm1pbmFsICcke25hbWVkQmluZGluZ1N0cmluZ30nIG5hbWVkIGJpbmRpbmcgYXMgJyR7dmFsdWVTdHRyaW5nfScuYCk7XG5cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBldmFsdWF0ZUNoaWxkTm9kZXNOYW1lZEJpbmRpbmcobmFtZWRCaW5kaW5nLCB0ZXJtLCBjb250ZXh0KSB7XG4gICAgY29uc3QgdHlwZSA9IG5hbWVkQmluZGluZy5nZXRUeXBlKCksXG4gICAgICAgICAgbmFtZWRCaW5kaW5nU3RyaW5nID0gbmFtZWRCaW5kaW5nLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC50cmFjZShgRXZhbHVhdGluZyB0aGUgY2hpbGQgbm9kZXMgJyR7bmFtZWRCaW5kaW5nU3RyaW5nfScgbmFtZWQgYmluZGluZy4uLmApO1xuXG4gICAgY29uc3QgdHlwZUxpc3RUeXBlID0gdHlwZS5pc0xpc3RUeXBlKCk7XG5cbiAgICBpZiAoIXR5cGVMaXN0VHlwZSkge1xuICAgICAgY29uc3QgbmFtZWRCaW5kaW5nU3RyaW5nID0gbmFtZWRCaW5kaW5nLmdldFN0cmluZygpLFxuICAgICAgICAgICAgbWVzc2FnZSA9IGBUaGUgJyR7bmFtZWRCaW5kaW5nU3RyaW5nfScgbmFtZWQgYmluZGluZydzIHR5cGUgc2hvdWxkIGJlICcke0xJU1RfVFlQRV9OQU1FfScuYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgdGhyb3cgZXhjZXB0aW9uO1xuICAgIH1cblxuICAgIGNvbnN0IHByaW1pdGl2ZVZhbHVlID0gdGVybS5nZXRQcmltaXRpdmVWYWx1ZSgpLFxuICAgICAgICAgIG5vbWluYWxWYWx1ZSA9IHByaW1pdGl2ZVZhbHVlLCAgLy8vXG4gICAgICAgICAgbm9kZSA9IG5vbWluYWxWYWx1ZS5nZXROb2RlKCksXG4gICAgICAgICAgbm9kZU5vblRlcm1pbmFsTm9kZSA9IG5vZGUuaXNOb25UZXJtaW5hbE5vZGUoKTtcblxuICAgIGlmICghbm9kZU5vblRlcm1pbmFsTm9kZSkge1xuICAgICAgY29uc3QgdGVybVN0cmluZyA9IHRlcm0uZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICBtZXNzYWdlID0gYFRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybSdzIG5vZGUgbXVzdCBiZSBub24tdGVybWluYWwuYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgdGhyb3cgZXhjZXB0aW9uO1xuICAgIH1cblxuICAgIGNvbnN0IG5vblRlcm1pbmFsTm9kZSA9IG5vZGUsICAvLy9cbiAgICAgICAgICBjaGlsZE5vZGVzID0gbm9uVGVybWluYWxOb2RlLmdldENoaWxkTm9kZXMoKSxcbiAgICAgICAgICBub2RlcyA9IGNoaWxkTm9kZXMsIC8vL1xuICAgICAgICAgIHZhbHVlID0gdmFsdWVGcm9tTm9kZXNBbmROb21pbmFsVmFsdWUobm9kZXMsIG5vbWluYWxWYWx1ZSksXG4gICAgICAgICAgdmFsdWVTdHRyaW5nID0gdmFsdWUuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LmRlYnVnKGAuLi5ldmFsdWF0ZWQgdGhlIGNoaWxkTm9kZXMgJyR7bmFtZWRCaW5kaW5nU3RyaW5nfScgbmFtZWQgYmluZGluZyBhcyAnJHt2YWx1ZVN0dHJpbmd9Jy5gKTtcblxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIGV2YWx1YXRlTm9XaGl0ZXNwYWNlTmFtZWRCaW5kaW5nKG5hbWVkQmluZGluZywgdGVybSwgY29udGV4dCkge1xuICAgIGNvbnN0IHR5cGUgPSBuYW1lZEJpbmRpbmcuZ2V0VHlwZSgpLFxuICAgICAgICAgIG5hbWVkQmluZGluZ1N0cmluZyA9IG5hbWVkQmluZGluZy5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQudHJhY2UoYEV2YWx1YXRpbmcgdGhlIG5vIHdoaXRlc3BhY2UgJyR7bmFtZWRCaW5kaW5nU3RyaW5nfScgbmFtZWQgYmluZGluZy4uLmApO1xuXG4gICAgY29uc3QgdHlwZUJvb2xlYW5UeXBlID0gdHlwZS5pc0Jvb2xlYW5UeXBlKCk7XG5cbiAgICBpZiAoIXR5cGVCb29sZWFuVHlwZSkge1xuICAgICAgY29uc3QgbmFtZWRCaW5kaW5nU3RyaW5nID0gbmFtZWRCaW5kaW5nLmdldFN0cmluZygpLFxuICAgICAgICAgICAgbWVzc2FnZSA9IGBUaGUgJyR7bmFtZWRCaW5kaW5nU3RyaW5nfScgbmFtZWQgYmluZGluZydzIHR5cGUgc2hvdWxkIGJlICcke0JPT0xFQU5fVFlQRV9OQU1FfScuYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgdGhyb3cgZXhjZXB0aW9uO1xuICAgIH1cblxuICAgIGNvbnN0IHByaW1pdGl2ZVZhbHVlID0gdGVybS5nZXRQcmltaXRpdmVWYWx1ZSgpLFxuICAgICAgICAgIG5vbWluYWxWYWx1ZSA9IHByaW1pdGl2ZVZhbHVlLCAgLy8vXG4gICAgICAgICAgbm9kZSA9IG5vbWluYWxWYWx1ZS5nZXROb2RlKCksXG4gICAgICAgICAgbm9kZVRlcm1pbmFsTm9kZSA9IG5vZGUuaXNUZXJtaW5hbE5vZGUoKTtcblxuICAgIGlmICghbm9kZVRlcm1pbmFsTm9kZSkge1xuICAgICAgY29uc3QgdGVybVN0cmluZyA9IHRlcm0uZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICBtZXNzYWdlID0gYFRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybSdzIG5vZGUgbXVzdCBiZSB0ZXJtaW5hbC5gLFxuICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICB0aHJvdyBleGNlcHRpb247XG4gICAgfVxuXG4gICAgY29uc3QgdGVybWluYWxOb2RlID0gbm9kZSwgIC8vL1xuICAgICAgICAgIG5vV2hpdGVhcGNlID0gdGVybWluYWxOb2RlLmlzTm9XaGl0ZXNwYWNlTm9kZSgpLFxuICAgICAgICAgIGJvb2xlYW4gPSBub1doaXRlYXBjZSwgIC8vL1xuICAgICAgICAgIHZhbHVlID0gdmFsdWVGcm9tQm9vbGVhbihib29sZWFuLCBjb250ZXh0KSxcbiAgICAgICAgICB2YWx1ZVN0dHJpbmcgPSB2YWx1ZS5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQuZGVidWcoYC4uLmV2YWx1YXRlZCB0aGUgbm8gd2hpdGVzcGFjZSAnJHtuYW1lZEJpbmRpbmdTdHJpbmd9JyBuYW1lZCBiaW5kaW5nIGFzICcke3ZhbHVlU3R0cmluZ30nLmApO1xuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIk9iamVjdEFzc2lnbm1lbnRcIjtcbn0pO1xuIl0sIm5hbWVzIjpbImJyZWFrYWJsZSIsImJyZWFrUG9pbnRVdGlsaXRpZXMiLCJkZWZpbmUiLCJPYmplY3RBc3NpZ25tZW50IiwiRWxlbWVudCIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiYnJlYWtQb2ludCIsInZhcmlhYmxlIiwibmFtZWRCaW5kaW5ncyIsImdldFZhcmlhYmxlIiwiZ2V0TmFtZWRCaW5kaW5ncyIsImV2YWx1YXRlIiwiYmFjayIsImZvcndhcmQiLCJvYmplY3RBc3NpZ25tZW50U3RyaW5nIiwiZ2V0U3RyaW5nIiwidHJhY2UiLCJ2YWx1ZSIsInZhbHVlVHlwZSIsImdldFR5cGUiLCJ2YWx1ZVR5cGVOb21pbmFsVmFsdWVUeXBlIiwiaXNOb21pbmFsVmFsdWVUeXBlIiwidmFsdWVTdHJpbmciLCJtZXNzYWdlIiwiTk9NSU5BTF9WQUxVRV9UWVBFX05BTUUiLCJleGNlcHRpb24iLCJFeGNlcHRpb24iLCJmcm9tTWVzc2FnZSIsIm5vbWluYWxWYWx1ZVByb3BlcnRpZXMiLCJjb21wYXJlTmFtZWRCaW5kaW5ncyIsImZvckVhY2hOYW1lZEJpbmRpbmciLCJuYW1lZEJpbmRpbmciLCJldmFsdWF0ZU5hbWVkQmluZGluZyIsImRlYnVnIiwidGVybSIsInRlcm1TdHJpbmciLCJuYW1lZEJpbmRpbmdTdHJpbmciLCJuYW1lIiwiZ2V0TmFtZSIsIkNPTlRFTlRfUEFSQU1FVEVSX05BTUUiLCJldmFsdWF0ZUNvbnRlbnROYW1lZEJpbmRpbmciLCJURVJNSU5BTF9QQVJBTUVURVJfTkFNRSIsImV2YWx1YXRlVGVybWluYWxOYW1lZEJpbmRpbmciLCJDSElMRF9OT0RFU19QQVJBTUVURVJfTkFNRSIsImV2YWx1YXRlQ2hpbGROb2Rlc05hbWVkQmluZGluZyIsIk5PX1dISVRFU1BBQ0VfUEFSQU1FVEVSX05BTUUiLCJldmFsdWF0ZU5vV2hpdGVzcGFjZU5hbWVkQmluZGluZyIsIlZhcmlhYmxlIiwiZWxlbWVudHMiLCJmcm9tTmFtZWRCaW5kaW5nIiwiYXNzaWduIiwidHlwZSIsInR5cGVTdHJpbmdUeXBlIiwiaXNTdHJpbmdUeXBlIiwiU1RSSU5HX1RZUEVfTkFNRSIsInByaW1pdGl2ZVZhbHVlIiwiZ2V0UHJpbWl0aXZlVmFsdWUiLCJub21pbmFsVmFsdWUiLCJnZXROb2RlIiwibm9kZVRlcm1pbmFsTm9kZSIsImlzVGVybWluYWxOb2RlIiwidGVybWluYWxOb2RlIiwiY29udGVudCIsImdldENvbnRlbnQiLCJzdHJpbmdMaXRlcmFsIiwic3RyaW5nTGl0ZXJhbEZyb21TdHJpbmciLCJ2YWx1ZUZyb21TdHJpbmdMaXRlcmFsIiwidmFsdWVTdHRyaW5nIiwidHlwZUJvb2xlYW5UeXBlIiwiaXNCb29sZWFuVHlwZSIsIkJPT0xFQU5fVFlQRV9OQU1FIiwidGVybWluYWwiLCJib29sZWFuIiwidmFsdWVGcm9tQm9vbGVhbiIsInR5cGVMaXN0VHlwZSIsImlzTGlzdFR5cGUiLCJMSVNUX1RZUEVfTkFNRSIsIm5vZGVOb25UZXJtaW5hbE5vZGUiLCJpc05vblRlcm1pbmFsTm9kZSIsIm5vblRlcm1pbmFsTm9kZSIsImNoaWxkTm9kZXMiLCJnZXRDaGlsZE5vZGVzIiwibm9kZXMiLCJ2YWx1ZUZyb21Ob2Rlc0FuZE5vbWluYWxWYWx1ZSIsIm5vV2hpdGVhcGNlIiwiaXNOb1doaXRlc3BhY2VOb2RlIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFnQkE7OztlQUFBOzs7Z0NBZDZDO2tFQUV4QjtrRUFDQzsrRUFDYTsrQkFHSzt1QkFDZ0Q7MkJBQ0s7Z0NBQzZCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUUxSCxNQUFNLEVBQUVBLFNBQVMsRUFBRSxHQUFHQyxtQ0FBbUI7TUFFekMsV0FBZUMsSUFBQUEsZ0JBQU0sRUFBQyxNQUFNQyx5QkFBeUJDLHVCQUFPO0lBQzFELFlBQVlDLE9BQU8sRUFBRUMsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLFVBQVUsRUFBRUMsUUFBUSxFQUFFQyxhQUFhLENBQUU7UUFDdEUsS0FBSyxDQUFDTCxTQUFTQyxRQUFRQyxNQUFNQztR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
|
|
193
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L2Fzc2lnbm1lbnQvb2JqZWN0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFbGVtZW50LCBicmVha1BvaW50VXRpbGl0aWVzIH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgZWxlbWVudHMgZnJvbSBcIi4uLy4uL2VsZW1lbnRzXCI7XG5pbXBvcnQgRXhjZXB0aW9uIGZyb20gXCIuLi8uLi9leGNlcHRpb25cIjtcbmltcG9ydCBub21pbmFsVmFsdWVQcm9wZXJ0aWVzIGZyb20gXCIuLi8uLi9ub21pbmFsVmFsdWVQcm9wZXJ0aWVzXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi8uLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgc3RyaW5nTGl0ZXJhbEZyb21TdHJpbmcgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL3N0cmluZ0xpdGVyYWxcIjtcbmltcG9ydCB7IHZhbHVlRnJvbUJvb2xlYW4sIHZhbHVlRnJvbVN0cmluZ0xpdGVyYWwsIHZhbHVlRnJvbU5vZGVzQW5kTm9taW5hbFZhbHVlIH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy92YWx1ZVwiO1xuaW1wb3J0IHsgTElTVF9UWVBFX05BTUUsIFNUUklOR19UWVBFX05BTUUsIEJPT0xFQU5fVFlQRV9OQU1FLCBOT01JTkFMX1ZBTFVFX1RZUEVfTkFNRSB9IGZyb20gXCIuLi8uLi90eXBlTmFtZXNcIjtcbmltcG9ydCB7IENPTlRFTlRfUEFSQU1FVEVSX05BTUUsIFRFUk1JTkFMX1BBUkFNRVRFUl9OQU1FLCBDSElMRF9OT0RFU19QQVJBTUVURVJfTkFNRSwgTk9fV0hJVEVTUEFDRV9QQVJBTUVURVJfTkFNRSB9IGZyb20gXCIuLi8uLi9wYXJhbWV0ZXJOYW1lc1wiO1xuXG5jb25zdCB7IGJyZWFrYWJsZSB9ID0gYnJlYWtQb2ludFV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIE9iamVjdEFzc2lnbm1lbnQgZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCB2YXJpYWJsZSwgbmFtZWRCaW5kaW5ncykge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLnZhcmlhYmxlID0gdmFyaWFibGU7XG4gICAgdGhpcy5uYW1lZEJpbmRpbmdzID0gbmFtZWRCaW5kaW5ncztcbiAgfVxuXG4gIGdldFZhcmlhYmxlKCkge1xuICAgIHJldHVybiB0aGlzLnZhcmlhYmxlO1xuICB9XG5cbiAgZ2V0TmFtZWRCaW5kaW5ncygpIHtcbiAgICByZXR1cm4gdGhpcy5uYW1lZEJpbmRpbmdzO1xuICB9XG5cbiAgZXZhbHVhdGUgPSBicmVha2FibGUoZnVuY3Rpb24gKGNvbnRleHQsIGJhY2ssIGZvcndhcmQpIHtcbiAgICBjb25zdCBvYmplY3RBc3NpZ25tZW50U3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSAnJHtvYmplY3RBc3NpZ25tZW50U3RyaW5nfScgb2JqZWN0IGFzc2lnbm1lbnQuLi5gKTtcblxuICAgIGNvbnN0IHZhbHVlID0gdGhpcy52YXJpYWJsZS5ldmFsdWF0ZShjb250ZXh0KSxcbiAgICAgICAgICB2YWx1ZVR5cGUgPSB2YWx1ZS5nZXRUeXBlKCksXG4gICAgICAgICAgdmFsdWVUeXBlTm9taW5hbFZhbHVlVHlwZSA9IHZhbHVlVHlwZS5pc05vbWluYWxWYWx1ZVR5cGUoKTtcblxuICAgIGlmICghdmFsdWVUeXBlTm9taW5hbFZhbHVlVHlwZSkge1xuICAgICAgY29uc3QgdmFsdWVTdHJpbmcgPSB2YWx1ZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBgVGhlICcke3ZhbHVlU3RyaW5nfScgdmFsdWUncyAnJHt2YWx1ZVR5cGV9JyB0eXBlIHNob3VsZCBiZSAnJHtOT01JTkFMX1ZBTFVFX1RZUEVfTkFNRX0nLmAsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHRocm93IGV4Y2VwdGlvbjtcbiAgICB9XG5cbiAgICBub21pbmFsVmFsdWVQcm9wZXJ0aWVzLmNvbXBhcmVOYW1lZEJpbmRpbmdzKHRoaXMubmFtZWRCaW5kaW5ncywgY29udGV4dCk7XG5cbiAgICByZXR1cm4gdGhpcy5uYW1lZEJpbmRpbmdzLmZvckVhY2hOYW1lZEJpbmRpbmcoKG5hbWVkQmluZGluZywgYmFjaywgZm9yd2FyZCkgPT4ge1xuICAgICAgdGhpcy5ldmFsdWF0ZU5hbWVkQmluZGluZyhuYW1lZEJpbmRpbmcsIHZhbHVlLCBjb250ZXh0LCBiYWNrLCBmb3J3YXJkKTtcbiAgICB9LCBiYWNrLCAoKSA9PiB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi5ldmFsdWF0ZWQgdGhlICcke29iamVjdEFzc2lnbm1lbnRTdHJpbmd9JyBvYmplY3QgYXNzaWdubWVudC5gKTtcblxuICAgICAgcmV0dXJuIGZvcndhcmQoKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZXZhbHVhdGVOYW1lZEJpbmRpbmcobmFtZWRCaW5kaW5nLCB0ZXJtLCBjb250ZXh0LCBiYWNrLCBmb3J3YXJkKSB7XG4gICAgY29uc3QgdGVybVN0cmluZyA9IHRlcm0uZ2V0U3RyaW5nKCksXG4gICAgICAgICAgbmFtZWRCaW5kaW5nU3RyaW5nID0gbmFtZWRCaW5kaW5nLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC50cmFjZShgRXZhbHVhdGluZyB0aGUgJyR7bmFtZWRCaW5kaW5nU3RyaW5nfScgbmFtZWQgYmluZGluZyBhZ2FpbnN0IHRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybS4uLmApO1xuXG4gICAgbGV0IHZhbHVlO1xuXG4gICAgY29uc3QgbmFtZSA9IG5hbWVkQmluZGluZy5nZXROYW1lKCk7XG5cbiAgICBzd2l0Y2ggKG5hbWUpIHtcbiAgICAgIGNhc2UgQ09OVEVOVF9QQVJBTUVURVJfTkFNRToge1xuICAgICAgICB2YWx1ZSA9IHRoaXMuZXZhbHVhdGVDb250ZW50TmFtZWRCaW5kaW5nKG5hbWVkQmluZGluZywgdGVybSwgY29udGV4dCk7XG5cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGNhc2UgVEVSTUlOQUxfUEFSQU1FVEVSX05BTUU6IHtcbiAgICAgICAgdmFsdWUgPSB0aGlzLmV2YWx1YXRlVGVybWluYWxOYW1lZEJpbmRpbmcobmFtZWRCaW5kaW5nLCB0ZXJtLCBjb250ZXh0KTtcblxuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgY2FzZSBDSElMRF9OT0RFU19QQVJBTUVURVJfTkFNRToge1xuICAgICAgICB2YWx1ZSA9IHRoaXMuZXZhbHVhdGVDaGlsZE5vZGVzTmFtZWRCaW5kaW5nKG5hbWVkQmluZGluZywgdGVybSwgY29udGV4dCk7XG5cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGNhc2UgTk9fV0hJVEVTUEFDRV9QQVJBTUVURVJfTkFNRToge1xuICAgICAgICB2YWx1ZSA9IHRoaXMuZXZhbHVhdGVOb1doaXRlc3BhY2VOYW1lZEJpbmRpbmcobmFtZWRCaW5kaW5nLCB0ZXJtLCBjb250ZXh0KTtcblxuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCB7IFZhcmlhYmxlIH0gPSBlbGVtZW50cyxcbiAgICAgICAgICB2YXJpYWJsZSA9IFZhcmlhYmxlLmZyb21OYW1lZEJpbmRpbmcobmFtZWRCaW5kaW5nLCBjb250ZXh0KTtcblxuICAgIHJldHVybiB2YXJpYWJsZS5hc3NpZ24odmFsdWUsIGNvbnRleHQsIGJhY2ssICgpID0+IHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLmV2YWx1YXRlZCB0aGUgJyR7bmFtZWRCaW5kaW5nU3RyaW5nfScgcGFyYW1ldGVyIG5hbWVkIGFnYWluc3QgdGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtLmApO1xuXG4gICAgICBmb3J3YXJkKCk7XG4gICAgfSk7XG4gIH1cblxuICBldmFsdWF0ZUNvbnRlbnROYW1lZEJpbmRpbmcobmFtZWRCaW5kaW5nLCB0ZXJtLCBjb250ZXh0KSB7XG4gICAgY29uc3QgdHlwZSA9IG5hbWVkQmluZGluZy5nZXRUeXBlKCksXG4gICAgICAgICAgbmFtZWRCaW5kaW5nU3RyaW5nID0gbmFtZWRCaW5kaW5nLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC50cmFjZShgRXZhbHVhdGluZyB0aGUgY29udGVudCAnJHtuYW1lZEJpbmRpbmdTdHJpbmd9JyBuYW1lZCBiaW5kaW5nLi4uYCk7XG5cbiAgICBjb25zdCB0eXBlU3RyaW5nVHlwZSA9IHR5cGUuaXNTdHJpbmdUeXBlKCk7XG5cbiAgICBpZiAoIXR5cGVTdHJpbmdUeXBlKSB7XG4gICAgICBjb25zdCBuYW1lZEJpbmRpbmdTdHJpbmcgPSBuYW1lZEJpbmRpbmcuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICBtZXNzYWdlID0gYFRoZSAnJHtuYW1lZEJpbmRpbmdTdHJpbmd9JyBuYW1lZCBiaW5kaW5nJ3MgdHlwZSBzaG91bGQgYmUgJyR7U1RSSU5HX1RZUEVfTkFNRX0nLmAsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHRocm93IGV4Y2VwdGlvbjtcbiAgICB9XG5cbiAgICBjb25zdCBwcmltaXRpdmVWYWx1ZSA9IHRlcm0uZ2V0UHJpbWl0aXZlVmFsdWUoKSxcbiAgICAgICAgICBub21pbmFsVmFsdWUgPSBwcmltaXRpdmVWYWx1ZSwgIC8vL1xuICAgICAgICAgIG5vZGUgPSBub21pbmFsVmFsdWUuZ2V0Tm9kZSgpLFxuICAgICAgICAgIG5vZGVUZXJtaW5hbE5vZGUgPSBub2RlLmlzVGVybWluYWxOb2RlKCk7XG5cbiAgICBpZiAoIW5vZGVUZXJtaW5hbE5vZGUpIHtcbiAgICAgIGNvbnN0IHRlcm1TdHJpbmcgPSB0ZXJtLmdldFN0cmluZygpLFxuICAgICAgICAgICAgbWVzc2FnZSA9IGBUaGUgJyR7dGVybVN0cmluZ30nIHRlcm0ncyBub2RlIG11c3QgYmUgdGVybWluYWwuYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgdGhyb3cgZXhjZXB0aW9uO1xuICAgIH1cblxuICAgIGNvbnN0IHRlcm1pbmFsTm9kZSA9IG5vZGUsICAvLy9cbiAgICAgICAgICBjb250ZW50ID0gdGVybWluYWxOb2RlLmdldENvbnRlbnQoKSxcbiAgICAgICAgICBzdHJpbmcgPSBjb250ZW50LCAgLy8vXG4gICAgICAgICAgc3RyaW5nTGl0ZXJhbCA9IHN0cmluZ0xpdGVyYWxGcm9tU3RyaW5nKHN0cmluZyksXG4gICAgICAgICAgdmFsdWUgPSB2YWx1ZUZyb21TdHJpbmdMaXRlcmFsKHN0cmluZ0xpdGVyYWwsIGNvbnRleHQpLFxuICAgICAgICAgIHZhbHVlU3R0cmluZyA9IHZhbHVlLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC5kZWJ1ZyhgLi4uZXZhbHVhdGVkIHRoZSBjb250ZW50ICcke25hbWVkQmluZGluZ1N0cmluZ30nIG5hbWVkIGJpbmRpbmcgYXMgJyR7dmFsdWVTdHRyaW5nfScuYCk7XG5cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBldmFsdWF0ZVRlcm1pbmFsTmFtZWRCaW5kaW5nKG5hbWVkQmluZGluZywgdGVybSwgY29udGV4dCkge1xuICAgIGNvbnN0IHR5cGUgPSBuYW1lZEJpbmRpbmcuZ2V0VHlwZSgpLFxuICAgICAgICAgIG5hbWVkQmluZGluZ1N0cmluZyA9IG5hbWVkQmluZGluZy5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQudHJhY2UoYEV2YWx1YXRpbmcgdGhlIHRlcm1pbmFsICcke25hbWVkQmluZGluZ1N0cmluZ30nIG5hbWVkIGJpbmRpbmcuLi5gKTtcblxuICAgIGNvbnN0IHR5cGVCb29sZWFuVHlwZSA9IHR5cGUuaXNCb29sZWFuVHlwZSgpO1xuXG4gICAgaWYgKCF0eXBlQm9vbGVhblR5cGUpIHtcbiAgICAgIGNvbnN0IG5hbWVkQmluZGluZ1N0cmluZyA9IG5hbWVkQmluZGluZy5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBgVGhlICcke25hbWVkQmluZGluZ1N0cmluZ30nIG5hbWVkIGJpbmRpbmcncyB0eXBlIHNob3VsZCBiZSAnJHtCT09MRUFOX1RZUEVfTkFNRX0nLmAsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHRocm93IGV4Y2VwdGlvbjtcbiAgICB9XG5cbiAgICBjb25zdCBwcmltaXRpdmVWYWx1ZSA9IHRlcm0uZ2V0UHJpbWl0aXZlVmFsdWUoKSxcbiAgICAgICAgICBub21pbmFsVmFsdWUgPSBwcmltaXRpdmVWYWx1ZSwgIC8vL1xuICAgICAgICAgIG5vZGUgPSBub21pbmFsVmFsdWUuZ2V0Tm9kZSgpLFxuICAgICAgICAgIG5vZGVUZXJtaW5hbE5vZGUgPSBub2RlLmlzVGVybWluYWxOb2RlKCksXG4gICAgICAgICAgdGVybWluYWwgPSBub2RlVGVybWluYWxOb2RlLCAgLy8vXG4gICAgICAgICAgYm9vbGVhbiA9IHRlcm1pbmFsLCAvLy9cbiAgICAgICAgICB2YWx1ZSA9IHZhbHVlRnJvbUJvb2xlYW4oYm9vbGVhbiwgY29udGV4dCksICAvLy9cbiAgICAgICAgICB2YWx1ZVN0dHJpbmcgPSB2YWx1ZS5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQuZGVidWcoYC4uLmV2YWx1YXRlZCB0aGUgdGVybWluYWwgJyR7bmFtZWRCaW5kaW5nU3RyaW5nfScgbmFtZWQgYmluZGluZyBhcyAnJHt2YWx1ZVN0dHJpbmd9Jy5gKTtcblxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIGV2YWx1YXRlQ2hpbGROb2Rlc05hbWVkQmluZGluZyhuYW1lZEJpbmRpbmcsIHRlcm0sIGNvbnRleHQpIHtcbiAgICBjb25zdCB0eXBlID0gbmFtZWRCaW5kaW5nLmdldFR5cGUoKSxcbiAgICAgICAgICBuYW1lZEJpbmRpbmdTdHJpbmcgPSBuYW1lZEJpbmRpbmcuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSBjaGlsZCBub2RlcyAnJHtuYW1lZEJpbmRpbmdTdHJpbmd9JyBuYW1lZCBiaW5kaW5nLi4uYCk7XG5cbiAgICBjb25zdCB0eXBlTGlzdFR5cGUgPSB0eXBlLmlzTGlzdFR5cGUoKTtcblxuICAgIGlmICghdHlwZUxpc3RUeXBlKSB7XG4gICAgICBjb25zdCBuYW1lZEJpbmRpbmdTdHJpbmcgPSBuYW1lZEJpbmRpbmcuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICBtZXNzYWdlID0gYFRoZSAnJHtuYW1lZEJpbmRpbmdTdHJpbmd9JyBuYW1lZCBiaW5kaW5nJ3MgdHlwZSBzaG91bGQgYmUgJyR7TElTVF9UWVBFX05BTUV9Jy5gLFxuICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICB0aHJvdyBleGNlcHRpb247XG4gICAgfVxuXG4gICAgY29uc3QgcHJpbWl0aXZlVmFsdWUgPSB0ZXJtLmdldFByaW1pdGl2ZVZhbHVlKCksXG4gICAgICAgICAgbm9taW5hbFZhbHVlID0gcHJpbWl0aXZlVmFsdWUsICAvLy9cbiAgICAgICAgICBub2RlID0gbm9taW5hbFZhbHVlLmdldE5vZGUoKSxcbiAgICAgICAgICBub2RlTm9uVGVybWluYWxOb2RlID0gbm9kZS5pc05vblRlcm1pbmFsTm9kZSgpO1xuXG4gICAgaWYgKCFub2RlTm9uVGVybWluYWxOb2RlKSB7XG4gICAgICBjb25zdCB0ZXJtU3RyaW5nID0gdGVybS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBgVGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtJ3Mgbm9kZSBtdXN0IGJlIG5vbi10ZXJtaW5hbC5gLFxuICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICB0aHJvdyBleGNlcHRpb247XG4gICAgfVxuXG4gICAgY29uc3Qgbm9uVGVybWluYWxOb2RlID0gbm9kZSwgIC8vL1xuICAgICAgICAgIGNoaWxkTm9kZXMgPSBub25UZXJtaW5hbE5vZGUuZ2V0Q2hpbGROb2RlcygpLFxuICAgICAgICAgIG5vZGVzID0gY2hpbGROb2RlcywgLy8vXG4gICAgICAgICAgdmFsdWUgPSB2YWx1ZUZyb21Ob2Rlc0FuZE5vbWluYWxWYWx1ZShub2Rlcywgbm9taW5hbFZhbHVlKSxcbiAgICAgICAgICB2YWx1ZVN0dHJpbmcgPSB2YWx1ZS5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQuZGVidWcoYC4uLmV2YWx1YXRlZCB0aGUgY2hpbGROb2RlcyAnJHtuYW1lZEJpbmRpbmdTdHJpbmd9JyBuYW1lZCBiaW5kaW5nIGFzICcke3ZhbHVlU3R0cmluZ30nLmApO1xuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgZXZhbHVhdGVOb1doaXRlc3BhY2VOYW1lZEJpbmRpbmcobmFtZWRCaW5kaW5nLCB0ZXJtLCBjb250ZXh0KSB7XG4gICAgY29uc3QgdHlwZSA9IG5hbWVkQmluZGluZy5nZXRUeXBlKCksXG4gICAgICAgICAgbmFtZWRCaW5kaW5nU3RyaW5nID0gbmFtZWRCaW5kaW5nLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC50cmFjZShgRXZhbHVhdGluZyB0aGUgbm8gd2hpdGVzcGFjZSAnJHtuYW1lZEJpbmRpbmdTdHJpbmd9JyBuYW1lZCBiaW5kaW5nLi4uYCk7XG5cbiAgICBjb25zdCB0eXBlQm9vbGVhblR5cGUgPSB0eXBlLmlzQm9vbGVhblR5cGUoKTtcblxuICAgIGlmICghdHlwZUJvb2xlYW5UeXBlKSB7XG4gICAgICBjb25zdCBuYW1lZEJpbmRpbmdTdHJpbmcgPSBuYW1lZEJpbmRpbmcuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICBtZXNzYWdlID0gYFRoZSAnJHtuYW1lZEJpbmRpbmdTdHJpbmd9JyBuYW1lZCBiaW5kaW5nJ3MgdHlwZSBzaG91bGQgYmUgJyR7Qk9PTEVBTl9UWVBFX05BTUV9Jy5gLFxuICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICB0aHJvdyBleGNlcHRpb247XG4gICAgfVxuXG4gICAgY29uc3QgcHJpbWl0aXZlVmFsdWUgPSB0ZXJtLmdldFByaW1pdGl2ZVZhbHVlKCksXG4gICAgICAgICAgbm9taW5hbFZhbHVlID0gcHJpbWl0aXZlVmFsdWUsICAvLy9cbiAgICAgICAgICBub2RlID0gbm9taW5hbFZhbHVlLmdldE5vZGUoKSxcbiAgICAgICAgICBub2RlVGVybWluYWxOb2RlID0gbm9kZS5pc1Rlcm1pbmFsTm9kZSgpO1xuXG4gICAgaWYgKCFub2RlVGVybWluYWxOb2RlKSB7XG4gICAgICBjb25zdCB0ZXJtU3RyaW5nID0gdGVybS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBgVGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtJ3Mgbm9kZSBtdXN0IGJlIHRlcm1pbmFsLmAsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHRocm93IGV4Y2VwdGlvbjtcbiAgICB9XG5cbiAgICBjb25zdCB0ZXJtaW5hbE5vZGUgPSBub2RlLCAgLy8vXG4gICAgICAgICAgbm9XaGl0ZWFwY2UgPSB0ZXJtaW5hbE5vZGUuaXNOb1doaXRlc3BhY2VOb2RlKCksXG4gICAgICAgICAgYm9vbGVhbiA9IG5vV2hpdGVhcGNlLCAgLy8vXG4gICAgICAgICAgdmFsdWUgPSB2YWx1ZUZyb21Cb29sZWFuKGJvb2xlYW4sIGNvbnRleHQpLFxuICAgICAgICAgIHZhbHVlU3R0cmluZyA9IHZhbHVlLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC5kZWJ1ZyhgLi4uZXZhbHVhdGVkIHRoZSBubyB3aGl0ZXNwYWNlICcke25hbWVkQmluZGluZ1N0cmluZ30nIG5hbWVkIGJpbmRpbmcgYXMgJyR7dmFsdWVTdHRyaW5nfScuYCk7XG5cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiT2JqZWN0QXNzaWdubWVudFwiO1xufSk7XG4iXSwibmFtZXMiOlsiYnJlYWthYmxlIiwiYnJlYWtQb2ludFV0aWxpdGllcyIsImRlZmluZSIsIk9iamVjdEFzc2lnbm1lbnQiLCJFbGVtZW50IiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50IiwidmFyaWFibGUiLCJuYW1lZEJpbmRpbmdzIiwiZ2V0VmFyaWFibGUiLCJnZXROYW1lZEJpbmRpbmdzIiwiZXZhbHVhdGUiLCJiYWNrIiwiZm9yd2FyZCIsIm9iamVjdEFzc2lnbm1lbnRTdHJpbmciLCJnZXRTdHJpbmciLCJ0cmFjZSIsInZhbHVlIiwidmFsdWVUeXBlIiwiZ2V0VHlwZSIsInZhbHVlVHlwZU5vbWluYWxWYWx1ZVR5cGUiLCJpc05vbWluYWxWYWx1ZVR5cGUiLCJ2YWx1ZVN0cmluZyIsIm1lc3NhZ2UiLCJOT01JTkFMX1ZBTFVFX1RZUEVfTkFNRSIsImV4Y2VwdGlvbiIsIkV4Y2VwdGlvbiIsImZyb21NZXNzYWdlIiwibm9taW5hbFZhbHVlUHJvcGVydGllcyIsImNvbXBhcmVOYW1lZEJpbmRpbmdzIiwiZm9yRWFjaE5hbWVkQmluZGluZyIsIm5hbWVkQmluZGluZyIsImV2YWx1YXRlTmFtZWRCaW5kaW5nIiwiZGVidWciLCJ0ZXJtIiwidGVybVN0cmluZyIsIm5hbWVkQmluZGluZ1N0cmluZyIsIm5hbWUiLCJnZXROYW1lIiwiQ09OVEVOVF9QQVJBTUVURVJfTkFNRSIsImV2YWx1YXRlQ29udGVudE5hbWVkQmluZGluZyIsIlRFUk1JTkFMX1BBUkFNRVRFUl9OQU1FIiwiZXZhbHVhdGVUZXJtaW5hbE5hbWVkQmluZGluZyIsIkNISUxEX05PREVTX1BBUkFNRVRFUl9OQU1FIiwiZXZhbHVhdGVDaGlsZE5vZGVzTmFtZWRCaW5kaW5nIiwiTk9fV0hJVEVTUEFDRV9QQVJBTUVURVJfTkFNRSIsImV2YWx1YXRlTm9XaGl0ZXNwYWNlTmFtZWRCaW5kaW5nIiwiVmFyaWFibGUiLCJlbGVtZW50cyIsImZyb21OYW1lZEJpbmRpbmciLCJhc3NpZ24iLCJ0eXBlIiwidHlwZVN0cmluZ1R5cGUiLCJpc1N0cmluZ1R5cGUiLCJTVFJJTkdfVFlQRV9OQU1FIiwicHJpbWl0aXZlVmFsdWUiLCJnZXRQcmltaXRpdmVWYWx1ZSIsIm5vbWluYWxWYWx1ZSIsImdldE5vZGUiLCJub2RlVGVybWluYWxOb2RlIiwiaXNUZXJtaW5hbE5vZGUiLCJ0ZXJtaW5hbE5vZGUiLCJjb250ZW50IiwiZ2V0Q29udGVudCIsInN0cmluZ0xpdGVyYWwiLCJzdHJpbmdMaXRlcmFsRnJvbVN0cmluZyIsInZhbHVlRnJvbVN0cmluZ0xpdGVyYWwiLCJ2YWx1ZVN0dHJpbmciLCJ0eXBlQm9vbGVhblR5cGUiLCJpc0Jvb2xlYW5UeXBlIiwiQk9PTEVBTl9UWVBFX05BTUUiLCJ0ZXJtaW5hbCIsImJvb2xlYW4iLCJ2YWx1ZUZyb21Cb29sZWFuIiwidHlwZUxpc3RUeXBlIiwiaXNMaXN0VHlwZSIsIkxJU1RfVFlQRV9OQU1FIiwibm9kZU5vblRlcm1pbmFsTm9kZSIsImlzTm9uVGVybWluYWxOb2RlIiwibm9uVGVybWluYWxOb2RlIiwiY2hpbGROb2RlcyIsImdldENoaWxkTm9kZXMiLCJub2RlcyIsInZhbHVlRnJvbU5vZGVzQW5kTm9taW5hbFZhbHVlIiwibm9XaGl0ZWFwY2UiLCJpc05vV2hpdGVzcGFjZU5vZGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQWdCQTs7O2VBQUE7OztnQ0FkNkM7a0VBRXhCO2tFQUNDOytFQUNhOytCQUdLO3VCQUNnRDsyQkFDSztnQ0FDNkI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRTFILE1BQU0sRUFBRUEsU0FBUyxFQUFFLEdBQUdDLG1DQUFtQjtNQUV6QyxXQUFlQyxJQUFBQSxnQkFBTSxFQUFDLE1BQU1DLHlC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
|
|
@@ -26,13 +26,14 @@ const _default = (0, _elements.define)(class VariableAssignment extends _occamla
|
|
|
26
26
|
const variableAssignmentString = this.getString(); ///
|
|
27
27
|
context.trace(`Evaluating the '${variableAssignmentString}' variable assignment...`);
|
|
28
28
|
return this.expression.evaluate(context, back, (value)=>{
|
|
29
|
-
this.variable.assign(value, context)
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
29
|
+
return this.variable.assign(value, context, back, ()=>{
|
|
30
|
+
const valueString = value.getString();
|
|
31
|
+
context.debug(`...evaluated the '${variableAssignmentString}' variable assignment as '${valueString}'.`);
|
|
32
|
+
return forward(value);
|
|
33
|
+
});
|
|
33
34
|
});
|
|
34
35
|
}
|
|
35
36
|
static name = "VariableAssignment";
|
|
36
37
|
});
|
|
37
38
|
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L2Fzc2lnbm1lbnQvdmFyaWFibGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IEVsZW1lbnQgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi8uLi9lbGVtZW50c1wiO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgVmFyaWFibGVBc3NpZ25tZW50IGV4dGVuZHMgRWxlbWVudCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgdmFyaWFibGUsIGV4cHJlc3Npb24pIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQpO1xuXG4gICAgdGhpcy52YXJpYWJsZSA9IHZhcmlhYmxlO1xuICAgIHRoaXMuZXhwcmVzc2lvbiA9IGV4cHJlc3Npb247XG4gIH1cblxuICBnZXRWYXJpYWJsZSgpIHtcbiAgICByZXR1cm4gdGhpcy52YXJpYWJsZTtcbiAgfVxuXG4gIGdldEV4cHJlc3Npb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuZXhwcmVzc2lvbjtcbiAgfVxuXG4gIGV2YWx1YXRlKGNvbnRleHQsIGJhY2ssIGZvcndhcmQpIHtcbiAgICBjb25zdCB2YXJpYWJsZUFzc2lnbm1lbnRTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYEV2YWx1YXRpbmcgdGhlICcke3ZhcmlhYmxlQXNzaWdubWVudFN0cmluZ30nIHZhcmlhYmxlIGFzc2lnbm1lbnQuLi5gKTtcblxuICAgIHJldHVybiB0aGlzLmV4cHJlc3Npb24uZXZhbHVhdGUoY29udGV4dCwgYmFjaywgKHZhbHVlKSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy52YXJpYWJsZS5hc3NpZ24odmFsdWUsIGNvbnRleHQsIGJhY2ssICgpID0+IHtcbiAgICAgICAgY29uc3QgdmFsdWVTdHJpbmcgPSB2YWx1ZS5nZXRTdHJpbmcoKTtcblxuICAgICAgICBjb250ZXh0LmRlYnVnKGAuLi5ldmFsdWF0ZWQgdGhlICcke3ZhcmlhYmxlQXNzaWdubWVudFN0cmluZ30nIHZhcmlhYmxlIGFzc2lnbm1lbnQgYXMgJyR7dmFsdWVTdHJpbmd9Jy5gKTtcblxuICAgICAgICByZXR1cm4gZm9yd2FyZCh2YWx1ZSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHN0YXRpYyBuYW1lID0gXCJWYXJpYWJsZUFzc2lnbm1lbnRcIjtcbn0pO1xuIl0sIm5hbWVzIjpbImRlZmluZSIsIlZhcmlhYmxlQXNzaWdubWVudCIsIkVsZW1lbnQiLCJjb250ZXh0Iiwic3RyaW5nIiwibm9kZSIsImJyZWFrUG9pbnQiLCJ2YXJpYWJsZSIsImV4cHJlc3Npb24iLCJnZXRWYXJpYWJsZSIsImdldEV4cHJlc3Npb24iLCJldmFsdWF0ZSIsImJhY2siLCJmb3J3YXJkIiwidmFyaWFibGVBc3NpZ25tZW50U3RyaW5nIiwiZ2V0U3RyaW5nIiwidHJhY2UiLCJ2YWx1ZSIsImFzc2lnbiIsInZhbHVlU3RyaW5nIiwiZGVidWciLCJuYW1lIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFNQTs7O2VBQUE7OztnQ0FKd0I7MEJBRUQ7TUFFdkIsV0FBZUEsSUFBQUEsZ0JBQU0sRUFBQyxNQUFNQywyQkFBMkJDLHVCQUFPO0lBQzVELFlBQVlDLE9BQU8sRUFBRUMsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLFVBQVUsRUFBRUMsUUFBUSxFQUFFQyxVQUFVLENBQUU7UUFDbkUsS0FBSyxDQUFDTCxTQUFTQyxRQUFRQyxNQUFNQztRQUU3QixJQUFJLENBQUNDLFFBQVEsR0FBR0E7UUFDaEIsSUFBSSxDQUFDQyxVQUFVLEdBQUdBO0lBQ3BCO0lBRUFDLGNBQWM7UUFDWixPQUFPLElBQUksQ0FBQ0YsUUFBUTtJQUN0QjtJQUVBRyxnQkFBZ0I7UUFDZCxPQUFPLElBQUksQ0FBQ0YsVUFBVTtJQUN4QjtJQUVBRyxTQUFTUixPQUFPLEVBQUVTLElBQUksRUFBRUMsT0FBTyxFQUFFO1FBQy9CLE1BQU1DLDJCQUEyQixJQUFJLENBQUNDLFNBQVMsSUFBSSxHQUFHO1FBRXREWixRQUFRYSxLQUFLLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRUYseUJBQXlCLHdCQUF3QixDQUFDO1FBRW5GLE9BQU8sSUFBSSxDQUFDTixVQUFVLENBQUNHLFFBQVEsQ0FBQ1IsU0FBU1MsTUFBTSxDQUFDSztZQUM5QyxPQUFPLElBQUksQ0FBQ1YsUUFBUSxDQUFDVyxNQUFNLENBQUNELE9BQU9kLFNBQVNTLE1BQU07Z0JBQ2hELE1BQU1PLGNBQWNGLE1BQU1GLFNBQVM7Z0JBRW5DWixRQUFRaUIsS0FBSyxDQUFDLENBQUMsa0JBQWtCLEVBQUVOLHlCQUF5QiwwQkFBMEIsRUFBRUssWUFBWSxFQUFFLENBQUM7Z0JBRXZHLE9BQU9OLFFBQVFJO1lBQ2pCO1FBQ0Y7SUFDRjtJQUVBLE9BQU9JLE9BQU8scUJBQXFCO0FBQ3JDIn0=
|
package/lib/element/binding.js
CHANGED
|
@@ -32,20 +32,21 @@ const _default = (0, _elements.define)(class Binding extends _occamlanguages.Ele
|
|
|
32
32
|
isElided() {
|
|
33
33
|
return this.elided;
|
|
34
34
|
}
|
|
35
|
-
compareTerm(term, context) {
|
|
35
|
+
compareTerm(term, context, back, forward) {
|
|
36
36
|
if (this.elided) {
|
|
37
|
-
return;
|
|
37
|
+
return forward();
|
|
38
38
|
}
|
|
39
39
|
const termString = term.getString(), bindingString = this.getString(); ///
|
|
40
40
|
context.trace(`Comparing the '${termString}' term against the '${bindingString}' binding...`);
|
|
41
41
|
const termType = term.getType(), typeEqualToTermType = this.type.isEqualTo(termType);
|
|
42
42
|
if (!typeEqualToTermType) {
|
|
43
43
|
const typeString = this.type.getString(), message = `The '${termString}' term's '${termType}' type is not equal to the '${bindingString}' binding's '${typeString}' type.`, exception = _exception.default.fromMessage(message);
|
|
44
|
-
|
|
44
|
+
return back(exception);
|
|
45
45
|
}
|
|
46
46
|
context.debug(`...comparing the '${termString}' term against the '${bindingString}' binding.`);
|
|
47
|
+
return forward();
|
|
47
48
|
}
|
|
48
49
|
static name = "Binding";
|
|
49
50
|
});
|
|
50
51
|
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2JpbmRpbmcuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IEVsZW1lbnQgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCBFeGNlcHRpb24gZnJvbSBcIi4uL2V4Y2VwdGlvblwiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vZWxlbWVudHNcIjtcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIEJpbmRpbmcgZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCB0eXBlLCBuYW1lLCBlbGlkZWQpIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQpO1xuXG4gICAgdGhpcy50eXBlID0gdHlwZTtcbiAgICB0aGlzLm5hbWUgPSBuYW1lO1xuICAgIHRoaXMuZWxpZGVkID0gZWxpZGVkO1xuICB9XG5cbiAgZ2V0VHlwZSgpIHtcbiAgICByZXR1cm4gdGhpcy50eXBlO1xuICB9XG5cbiAgZ2V0TmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5uYW1lO1xuICB9XG5cbiAgaXNFbGlkZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZWxpZGVkO1xuICB9XG5cbiAgY29tcGFyZVRlcm0odGVybSwgY29udGV4dCwgYmFjaywgZm9yd2FyZCkge1xuICAgIGlmICh0aGlzLmVsaWRlZCkge1xuICAgICAgcmV0dXJuIGZvcndhcmQoKTtcbiAgICB9XG5cbiAgICBjb25zdCB0ZXJtU3RyaW5nID0gdGVybS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICBiaW5kaW5nU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgIC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgQ29tcGFyaW5nIHRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybSBhZ2FpbnN0IHRoZSAnJHtiaW5kaW5nU3RyaW5nfScgYmluZGluZy4uLmApO1xuXG4gICAgY29uc3QgdGVybVR5cGUgPSB0ZXJtLmdldFR5cGUoKSxcbiAgICAgICAgICB0eXBlRXF1YWxUb1Rlcm1UeXBlID0gdGhpcy50eXBlLmlzRXF1YWxUbyh0ZXJtVHlwZSk7XG5cbiAgICBpZiAoIXR5cGVFcXVhbFRvVGVybVR5cGUpIHtcbiAgICAgIGNvbnN0IHR5cGVTdHJpbmcgPSB0aGlzLnR5cGUuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICBtZXNzYWdlID0gYFRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybSdzICcke3Rlcm1UeXBlfScgdHlwZSBpcyBub3QgZXF1YWwgdG8gdGhlICcke2JpbmRpbmdTdHJpbmd9JyBiaW5kaW5nJ3MgJyR7dHlwZVN0cmluZ30nIHR5cGUuYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgcmV0dXJuIGJhY2soZXhjZXB0aW9uKTtcbiAgICB9XG5cbiAgICBjb250ZXh0LmRlYnVnKGAuLi5jb21wYXJpbmcgdGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtIGFnYWluc3QgdGhlICcke2JpbmRpbmdTdHJpbmd9JyBiaW5kaW5nLmApO1xuXG4gICAgcmV0dXJuIGZvcndhcmQoKTtcbiAgfVxuXG4gIHN0YXRpYyBuYW1lID0gXCJCaW5kaW5nXCI7XG59KTtcbiJdLCJuYW1lcyI6WyJkZWZpbmUiLCJCaW5kaW5nIiwiRWxlbWVudCIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiYnJlYWtQb2ludCIsInR5cGUiLCJuYW1lIiwiZWxpZGVkIiwiZ2V0VHlwZSIsImdldE5hbWUiLCJpc0VsaWRlZCIsImNvbXBhcmVUZXJtIiwidGVybSIsImJhY2siLCJmb3J3YXJkIiwidGVybVN0cmluZyIsImdldFN0cmluZyIsImJpbmRpbmdTdHJpbmciLCJ0cmFjZSIsInRlcm1UeXBlIiwidHlwZUVxdWFsVG9UZXJtVHlwZSIsImlzRXF1YWxUbyIsInR5cGVTdHJpbmciLCJtZXNzYWdlIiwiZXhjZXB0aW9uIiwiRXhjZXB0aW9uIiwiZnJvbU1lc3NhZ2UiLCJkZWJ1ZyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBUUE7OztlQUFBOzs7Z0NBTndCO2tFQUVGOzBCQUVDOzs7Ozs7TUFFdkIsV0FBZUEsSUFBQUEsZ0JBQU0sRUFBQyxNQUFNQyxnQkFBZ0JDLHVCQUFPO0lBQ2pELFlBQVlDLE9BQU8sRUFBRUMsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLFVBQVUsRUFBRUMsSUFBSSxFQUFFQyxJQUFJLEVBQUVDLE1BQU0sQ0FBRTtRQUNqRSxLQUFLLENBQUNOLFNBQVNDLFFBQVFDLE1BQU1DO1FBRTdCLElBQUksQ0FBQ0MsSUFBSSxHQUFHQTtRQUNaLElBQUksQ0FBQ0MsSUFBSSxHQUFHQTtRQUNaLElBQUksQ0FBQ0MsTUFBTSxHQUFHQTtJQUNoQjtJQUVBQyxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUNILElBQUk7SUFDbEI7SUFFQUksVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDSCxJQUFJO0lBQ2xCO0lBRUFJLFdBQVc7UUFDVCxPQUFPLElBQUksQ0FBQ0gsTUFBTTtJQUNwQjtJQUVBSSxZQUFZQyxJQUFJLEVBQUVYLE9BQU8sRUFBRVksSUFBSSxFQUFFQyxPQUFPLEVBQUU7UUFDeEMsSUFBSSxJQUFJLENBQUNQLE1BQU0sRUFBRTtZQUNmLE9BQU9PO1FBQ1Q7UUFFQSxNQUFNQyxhQUFhSCxLQUFLSSxTQUFTLElBQzNCQyxnQkFBZ0IsSUFBSSxDQUFDRCxTQUFTLElBQUssR0FBRztRQUU1Q2YsUUFBUWlCLEtBQUssQ0FBQyxDQUFDLGVBQWUsRUFBRUgsV0FBVyxvQkFBb0IsRUFBRUUsY0FBYyxZQUFZLENBQUM7UUFFNUYsTUFBTUUsV0FBV1AsS0FBS0osT0FBTyxJQUN2Qlksc0JBQXNCLElBQUksQ0FBQ2YsSUFBSSxDQUFDZ0IsU0FBUyxDQUFDRjtRQUVoRCxJQUFJLENBQUNDLHFCQUFxQjtZQUN4QixNQUFNRSxhQUFhLElBQUksQ0FBQ2pCLElBQUksQ0FBQ1csU0FBUyxJQUNoQ08sVUFBVSxDQUFDLEtBQUssRUFBRVIsV0FBVyxVQUFVLEVBQUVJLFNBQVMsNEJBQTRCLEVBQUVGLGNBQWMsYUFBYSxFQUFFSyxXQUFXLE9BQU8sQ0FBQyxFQUNoSUUsWUFBWUMsa0JBQVMsQ0FBQ0MsV0FBVyxDQUFDSDtZQUV4QyxPQUFPVixLQUFLVztRQUNkO1FBRUF2QixRQUFRMEIsS0FBSyxDQUFDLENBQUMsa0JBQWtCLEVBQUVaLFdBQVcsb0JBQW9CLEVBQUVFLGNBQWMsVUFBVSxDQUFDO1FBRTdGLE9BQU9IO0lBQ1Q7SUFFQSxPQUFPUixPQUFPLFVBQVU7QUFDMUIifQ==
|
|
@@ -16,6 +16,7 @@ function _interop_require_default(obj) {
|
|
|
16
16
|
default: obj
|
|
17
17
|
};
|
|
18
18
|
}
|
|
19
|
+
const { forEach } = _occamlanguages.continuationUtilities;
|
|
19
20
|
const _default = (0, _elements.define)(class NamedBindings extends _occamlanguages.Element {
|
|
20
21
|
constructor(context, string, node, breakPoint, array){
|
|
21
22
|
super(context, string, node, breakPoint);
|
|
@@ -35,24 +36,30 @@ const _default = (0, _elements.define)(class NamedBindings extends _occamlanguag
|
|
|
35
36
|
someNamedBinding(callback) {
|
|
36
37
|
return this.array.some(callback);
|
|
37
38
|
}
|
|
38
|
-
forEachNamedBinding(callback) {
|
|
39
|
+
forEachNamedBinding(callback, back = null, forward = null) {
|
|
40
|
+
if (forward !== null) {
|
|
41
|
+
return forEach(this.array, callback, back, forward);
|
|
42
|
+
}
|
|
39
43
|
this.array.forEach(callback);
|
|
40
44
|
}
|
|
41
|
-
compareTerms(terms, context) {
|
|
45
|
+
compareTerms(terms, context, back, forward) {
|
|
42
46
|
const termsString = terms.getString(), namedBindingsString = this.getString(); ///
|
|
43
47
|
context.trace(`Comparing the '${termsString}' terms with the '${namedBindingsString}' named bindings...`);
|
|
44
48
|
const termsLength = terms.getLength(), namedBindingsLength = this.getLength();
|
|
45
49
|
if (termsLength !== namedBindingsLength) {
|
|
46
50
|
const message = `The '${termsString}' terms and '${namedBindingsString}' named bindings are not of the same length.`, exception = _exception.default.fromMessage(message);
|
|
47
|
-
|
|
51
|
+
return back(exception);
|
|
48
52
|
}
|
|
49
|
-
this.forEachNamedBinding((namedBinding, index)=>{
|
|
53
|
+
return this.forEachNamedBinding((namedBinding, back, forward, index)=>{
|
|
50
54
|
if (namedBinding !== null) {
|
|
51
|
-
|
|
52
|
-
namedBinding.compareTerm(term, context);
|
|
55
|
+
forward();
|
|
53
56
|
}
|
|
57
|
+
const term = terms.getTerm(index);
|
|
58
|
+
return namedBinding.compareTerm(term, context, back, forward);
|
|
59
|
+
}, back, ()=>{
|
|
60
|
+
context.debug(`...compared the '${termsString}' terms with the '${namedBindingsString}' named bindings.`);
|
|
61
|
+
forward();
|
|
54
62
|
});
|
|
55
|
-
context.debug(`...compared the '${termsString}' terms with the '${namedBindingsString}' named bindings.`);
|
|
56
63
|
}
|
|
57
64
|
compareNamedBinding(namedBinding, context) {
|
|
58
65
|
const namedBindingString = namedBinding.getString(), namedBindingsString = this.getString(); ///
|
|
@@ -81,4 +88,4 @@ const _default = (0, _elements.define)(class NamedBindings extends _occamlanguag
|
|
|
81
88
|
static name = "NamedBindings";
|
|
82
89
|
});
|
|
83
90
|
|
|
84
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
91
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L2JpbmRpbmdzL25hbWVkLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFbGVtZW50LCBjb250aW51YXRpb25VdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCBFeGNlcHRpb24gZnJvbSBcIi4uLy4uL2V4Y2VwdGlvblwiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vLi4vZWxlbWVudHNcIjtcblxuY29uc3QgeyBmb3JFYWNoIH0gPSBjb250aW51YXRpb25VdGlsaXRpZXM7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZShjbGFzcyBOYW1lZEJpbmRpbmdzIGV4dGVuZHMgRWxlbWVudCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgYXJyYXkpIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQpO1xuXG4gICAgdGhpcy5hcnJheSA9IGFycmF5O1xuICB9XG5cbiAgZ2V0QXJyYXkoKSB7XG4gICAgcmV0dXJuIHRoaXMuYXJyYXk7XG4gIH1cblxuICBnZXRMZW5ndGgoKSB7XG4gICAgY29uc3QgbGVuZ3RoID0gdGhpcy5hcnJheS5sZW5ndGg7XG5cbiAgICByZXR1cm4gbGVuZ3RoO1xuICB9XG5cbiAgZ2V0TmFtZWRCaW5kaW5nKGluZGV4KSB7XG4gICAgY29uc3QgbmFtZWRCaW5kaW5nID0gdGhpcy5hcnJheVtpbmRleF0gfHwgbnVsbDtcblxuICAgIHJldHVybiBuYW1lZEJpbmRpbmc7XG4gIH1cblxuICBzb21lTmFtZWRCaW5kaW5nKGNhbGxiYWNrKSB7IHJldHVybiB0aGlzLmFycmF5LnNvbWUoY2FsbGJhY2spOyB9XG5cbiAgZm9yRWFjaE5hbWVkQmluZGluZyhjYWxsYmFjaywgYmFjayA9IG51bGwsIGZvcndhcmQgPSBudWxsKSB7XG4gICAgaWYgKGZvcndhcmQgIT09IG51bGwpIHtcbiAgICAgIHJldHVybiBmb3JFYWNoKHRoaXMuYXJyYXksIGNhbGxiYWNrLCBiYWNrLCBmb3J3YXJkKTtcbiAgICB9XG5cbiAgICB0aGlzLmFycmF5LmZvckVhY2goY2FsbGJhY2spO1xuICB9XG5cbiAgY29tcGFyZVRlcm1zKHRlcm1zLCBjb250ZXh0LCBiYWNrLCBmb3J3YXJkKSB7XG4gICAgY29uc3QgdGVybXNTdHJpbmcgPSB0ZXJtcy5nZXRTdHJpbmcoKSxcbiAgICAgICAgICBuYW1lZEJpbmRpbmdzU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBDb21wYXJpbmcgdGhlICcke3Rlcm1zU3RyaW5nfScgdGVybXMgd2l0aCB0aGUgJyR7bmFtZWRCaW5kaW5nc1N0cmluZ30nIG5hbWVkIGJpbmRpbmdzLi4uYCk7XG5cbiAgICBjb25zdCB0ZXJtc0xlbmd0aCA9IHRlcm1zLmdldExlbmd0aCgpLFxuICAgICAgICAgIG5hbWVkQmluZGluZ3NMZW5ndGggPSB0aGlzLmdldExlbmd0aCgpO1xuXG4gICAgaWYgKHRlcm1zTGVuZ3RoICE9PSBuYW1lZEJpbmRpbmdzTGVuZ3RoKSB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gYFRoZSAnJHt0ZXJtc1N0cmluZ30nIHRlcm1zIGFuZCAnJHtuYW1lZEJpbmRpbmdzU3RyaW5nfScgbmFtZWQgYmluZGluZ3MgYXJlIG5vdCBvZiB0aGUgc2FtZSBsZW5ndGguYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgcmV0dXJuIGJhY2soZXhjZXB0aW9uKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5mb3JFYWNoTmFtZWRCaW5kaW5nKChuYW1lZEJpbmRpbmcsIGJhY2ssIGZvcndhcmQsIGluZGV4KSA9PiB7XG4gICAgICBpZiAobmFtZWRCaW5kaW5nICE9PSBudWxsKSB7XG4gICAgICAgIGZvcndhcmQoKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgdGVybSA9IHRlcm1zLmdldFRlcm0oaW5kZXgpO1xuXG4gICAgICByZXR1cm4gbmFtZWRCaW5kaW5nLmNvbXBhcmVUZXJtKHRlcm0sIGNvbnRleHQsIGJhY2ssIGZvcndhcmQpO1xuICAgIH0sIGJhY2ssICgpID0+IHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLmNvbXBhcmVkIHRoZSAnJHt0ZXJtc1N0cmluZ30nIHRlcm1zIHdpdGggdGhlICcke25hbWVkQmluZGluZ3NTdHJpbmd9JyBuYW1lZCBiaW5kaW5ncy5gKTtcblxuICAgICAgZm9yd2FyZCgpO1xuICAgIH0pO1xuICB9XG5cbiAgY29tcGFyZU5hbWVkQmluZGluZyhuYW1lZEJpbmRpbmcsIGNvbnRleHQpIHtcbiAgICBjb25zdCBuYW1lZEJpbmRpbmdTdHJpbmcgPSBuYW1lZEJpbmRpbmcuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgbmFtZWRCaW5kaW5nc1N0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7IC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgQ29tcGFyaW5nIHRoZSAnJHtuYW1lZEJpbmRpbmdTdHJpbmd9JyBuYW1lZEJpbmRpbmcgd2l0aCB0aGUgJyR7bmFtZWRCaW5kaW5nc1N0cmluZ30nIG5hbWVkIGJpbmRpbmdzLi4uYCk7XG5cbiAgICBjb25zdCBuYW1lZEJpbmRpbmdBID0gbmFtZWRCaW5kaW5nLCAvLy9cbiAgICAgICAgICBuYW1lZEJpbmRpbmdDb21wYXJlcyA9IHRoaXMuc29tZU5hbWVkQmluZGluZygobmFtZWRCaW5kaW5nKSA9PiB7XG4gICAgICAgICAgICBpZiAobmFtZWRCaW5kaW5nICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgIGNvbnN0IG5hbWVkQmluZGluZ0IgPSBuYW1lZEJpbmRpbmcsIC8vL1xuICAgICAgICAgICAgICAgICAgICBuYW1lZEJpbmRpbmdCQ29tcGFyZXNUb05hbWVkQmluZGluZ0EgPSBuYW1lZEJpbmRpbmdBLmNvbXBhcmVOYW1lZEJpbmRpbmcobmFtZWRCaW5kaW5nQiwgY29udGV4dCk7XG5cbiAgICAgICAgICAgICAgaWYgKG5hbWVkQmluZGluZ0JDb21wYXJlc1RvTmFtZWRCaW5kaW5nQSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG5cbiAgICBpZiAoIW5hbWVkQmluZGluZ0NvbXBhcmVzKSB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gYFRoZSAnJHtuYW1lZEJpbmRpbmdTdHJpbmd9JyBuYW1lZEJpbmRpbmcgZG9lcyBub3QgY29tcGFyZSB0byBhbnkgb2YgdGhlICcke25hbWVkQmluZGluZ3NTdHJpbmd9JyBuYW1lZCBiaW5kaW5ncy5gLFxuICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICB0aHJvdyBleGNlcHRpb247XG4gICAgfVxuXG4gICAgY29udGV4dC5kZWJ1ZyhgLi4uY29tcGFyZWQgdGhlICcke25hbWVkQmluZGluZ1N0cmluZ30nIG5hbWVkQmluZGluZyB3aXRoIHRoZSAnJHtuYW1lZEJpbmRpbmdzU3RyaW5nfScgbmFtZWQgYmluZGluZ3MuYCk7XG4gIH1cblxuICBjb21wYXJlTmFtZWRCaW5kaW5ncyhuYW1lZEJpbmRpbmdzLCBjb250ZXh0KSB7XG4gICAgbmFtZWRCaW5kaW5ncy5mb3JFYWNoTmFtZWRCaW5kaW5nKChuYW1lZEJpbmRpbmcpID0+IHtcbiAgICAgIGlmIChuYW1lZEJpbmRpbmcgIT09IG51bGwpIHtcbiAgICAgICAgdGhpcy5jb21wYXJlTmFtZWRCaW5kaW5nKG5hbWVkQmluZGluZywgY29udGV4dCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiTmFtZWRCaW5kaW5nc1wiO1xufSk7XG4iXSwibmFtZXMiOlsiZm9yRWFjaCIsImNvbnRpbnVhdGlvblV0aWxpdGllcyIsImRlZmluZSIsIk5hbWVkQmluZGluZ3MiLCJFbGVtZW50IiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50IiwiYXJyYXkiLCJnZXRBcnJheSIsImdldExlbmd0aCIsImxlbmd0aCIsImdldE5hbWVkQmluZGluZyIsImluZGV4IiwibmFtZWRCaW5kaW5nIiwic29tZU5hbWVkQmluZGluZyIsImNhbGxiYWNrIiwic29tZSIsImZvckVhY2hOYW1lZEJpbmRpbmciLCJiYWNrIiwiZm9yd2FyZCIsImNvbXBhcmVUZXJtcyIsInRlcm1zIiwidGVybXNTdHJpbmciLCJnZXRTdHJpbmciLCJuYW1lZEJpbmRpbmdzU3RyaW5nIiwidHJhY2UiLCJ0ZXJtc0xlbmd0aCIsIm5hbWVkQmluZGluZ3NMZW5ndGgiLCJtZXNzYWdlIiwiZXhjZXB0aW9uIiwiRXhjZXB0aW9uIiwiZnJvbU1lc3NhZ2UiLCJ0ZXJtIiwiZ2V0VGVybSIsImNvbXBhcmVUZXJtIiwiZGVidWciLCJjb21wYXJlTmFtZWRCaW5kaW5nIiwibmFtZWRCaW5kaW5nU3RyaW5nIiwibmFtZWRCaW5kaW5nQSIsIm5hbWVkQmluZGluZ0NvbXBhcmVzIiwibmFtZWRCaW5kaW5nQiIsIm5hbWVkQmluZGluZ0JDb21wYXJlc1RvTmFtZWRCaW5kaW5nQSIsImNvbXBhcmVOYW1lZEJpbmRpbmdzIiwibmFtZWRCaW5kaW5ncyIsIm5hbWUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVVBOzs7ZUFBQTs7O2dDQVIrQztrRUFFekI7MEJBRUM7Ozs7OztBQUV2QixNQUFNLEVBQUVBLE9BQU8sRUFBRSxHQUFHQyxxQ0FBcUI7TUFFekMsV0FBZUMsSUFBQUEsZ0JBQU0sRUFBQyxNQUFNQyxzQkFBc0JDLHVCQUFPO0lBQ3ZELFlBQVlDLE9BQU8sRUFBRUMsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLFVBQVUsRUFBRUMsS0FBSyxDQUFFO1FBQ3BELEtBQUssQ0FBQ0osU0FBU0MsUUFBUUMsTUFBTUM7UUFFN0IsSUFBSSxDQUFDQyxLQUFLLEdBQUdBO0lBQ2Y7SUFFQUMsV0FBVztRQUNULE9B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
|
package/lib/element/bindings.js
CHANGED
|
@@ -32,26 +32,32 @@ const _default = (0, _elements.define)(class Bindings extends _occamlanguages.El
|
|
|
32
32
|
const binding = this.array[index] || null;
|
|
33
33
|
return binding;
|
|
34
34
|
}
|
|
35
|
-
forEachBinding(callback) {
|
|
35
|
+
forEachBinding(callback, back = null, forward = null) {
|
|
36
|
+
if (forward !== null) {
|
|
37
|
+
return forEach(this.array, callback, back, forward);
|
|
38
|
+
}
|
|
36
39
|
this.array.forEach(callback);
|
|
37
40
|
}
|
|
38
|
-
compareTerms(terms, context) {
|
|
41
|
+
compareTerms(terms, context, back, forward) {
|
|
39
42
|
const termsString = terms.getString(), bindingsString = this.getString(); ///
|
|
40
43
|
context.trace(`Comparing the '${termsString}' terms against the '${bindingsString}' bindings...`);
|
|
41
44
|
const termsLength = terms.getLength(), bindingsLength = this.getLength();
|
|
42
45
|
if (termsLength !== bindingsLength) {
|
|
43
46
|
const message = `The '${termsString}' expressions and '${bindingsString}' bindings are not of the same length.`, exception = _exception.default.fromMessage(message);
|
|
44
|
-
|
|
47
|
+
return back(exception);
|
|
45
48
|
}
|
|
46
|
-
this.forEachBinding((binding, index)=>{
|
|
47
|
-
if (binding
|
|
48
|
-
|
|
49
|
-
binding.compareTerm(term, context);
|
|
49
|
+
return this.forEachBinding((binding, back, forward, index)=>{
|
|
50
|
+
if (binding === null) {
|
|
51
|
+
return forward();
|
|
50
52
|
}
|
|
53
|
+
const term = terms.getTerm(index);
|
|
54
|
+
return binding.compareTerm(term, context, back, forward);
|
|
55
|
+
}, back, ()=>{
|
|
56
|
+
context.debug(`...compared the '${termsString}' terms against the '${bindingsString}' bindings.`);
|
|
57
|
+
forward();
|
|
51
58
|
});
|
|
52
|
-
context.debug(`...compared the '${termsString}' terms against the '${bindingsString}' bindings.`);
|
|
53
59
|
}
|
|
54
60
|
static name = "Bindings";
|
|
55
61
|
});
|
|
56
62
|
|
|
57
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2JpbmRpbmdzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFbGVtZW50IH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgRXhjZXB0aW9uIGZyb20gXCIuLi9leGNlcHRpb25cIjtcblxuaW1wb3J0IHsgZGVmaW5lIH0gZnJvbSBcIi4uL2VsZW1lbnRzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZShjbGFzcyBCaW5kaW5ncyBleHRlbmRzIEVsZW1lbnQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIGFycmF5KSB7XG4gICAgc3VwZXIoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50KTtcblxuICAgIHRoaXMuYXJyYXkgPSBhcnJheTtcbiAgfVxuXG4gIGdldEFycmF5KCkge1xuICAgIHJldHVybiB0aGlzLmFycmF5O1xuICB9XG5cbiAgZ2V0TGVuZ3RoKCkge1xuICAgIGNvbnN0IGxlbmd0aCA9IHRoaXMuYXJyYXkubGVuZ3RoO1xuXG4gICAgcmV0dXJuIGxlbmd0aDtcbiAgfVxuXG4gIGdldEJpbmRpbmcoaW5kZXgpIHtcbiAgICBjb25zdCBiaW5kaW5nID0gdGhpcy5hcnJheVtpbmRleF0gfHwgbnVsbDtcblxuICAgIHJldHVybiBiaW5kaW5nO1xuICB9XG5cbiAgZm9yRWFjaEJpbmRpbmcoY2FsbGJhY2ssIGJhY2sgPSBudWxsLCBmb3J3YXJkID0gbnVsbCkge1xuICAgIGlmIChmb3J3YXJkICE9PSBudWxsKSB7XG4gICAgICByZXR1cm4gZm9yRWFjaCh0aGlzLmFycmF5LCBjYWxsYmFjaywgYmFjaywgZm9yd2FyZCk7XG4gICAgfVxuXG4gICAgdGhpcy5hcnJheS5mb3JFYWNoKGNhbGxiYWNrKTtcbiAgfVxuXG4gIGNvbXBhcmVUZXJtcyh0ZXJtcywgY29udGV4dCwgYmFjaywgZm9yd2FyZCkge1xuICAgIGNvbnN0IHRlcm1zU3RyaW5nID0gdGVybXMuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgYmluZGluZ3NTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYENvbXBhcmluZyB0aGUgJyR7dGVybXNTdHJpbmd9JyB0ZXJtcyBhZ2FpbnN0IHRoZSAnJHtiaW5kaW5nc1N0cmluZ30nIGJpbmRpbmdzLi4uYCk7XG5cbiAgICBjb25zdCB0ZXJtc0xlbmd0aCA9IHRlcm1zLmdldExlbmd0aCgpLFxuICAgICAgICAgIGJpbmRpbmdzTGVuZ3RoID0gdGhpcy5nZXRMZW5ndGgoKTtcblxuICAgIGlmICh0ZXJtc0xlbmd0aCAhPT0gYmluZGluZ3NMZW5ndGgpIHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgVGhlICcke3Rlcm1zU3RyaW5nfScgZXhwcmVzc2lvbnMgYW5kICcke2JpbmRpbmdzU3RyaW5nfScgYmluZGluZ3MgYXJlIG5vdCBvZiB0aGUgc2FtZSBsZW5ndGguYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgcmV0dXJuIGJhY2soZXhjZXB0aW9uKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5mb3JFYWNoQmluZGluZygoYmluZGluZywgYmFjaywgZm9yd2FyZCwgaW5kZXgpID0+IHtcbiAgICAgIGlmIChiaW5kaW5nID09PSBudWxsKSB7XG4gICAgICAgIHJldHVybiBmb3J3YXJkKCk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHRlcm0gPSB0ZXJtcy5nZXRUZXJtKGluZGV4KTtcblxuICAgICAgcmV0dXJuIGJpbmRpbmcuY29tcGFyZVRlcm0odGVybSwgY29udGV4dCwgYmFjaywgZm9yd2FyZCk7XG4gICAgfSwgYmFjaywgKCkgPT4ge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4uY29tcGFyZWQgdGhlICcke3Rlcm1zU3RyaW5nfScgdGVybXMgYWdhaW5zdCB0aGUgJyR7YmluZGluZ3NTdHJpbmd9JyBiaW5kaW5ncy5gKTtcblxuICAgICAgZm9yd2FyZCgpO1xuICAgIH0pO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIkJpbmRpbmdzXCI7XG59KTtcbiJdLCJuYW1lcyI6WyJkZWZpbmUiLCJCaW5kaW5ncyIsIkVsZW1lbnQiLCJjb250ZXh0Iiwic3RyaW5nIiwibm9kZSIsImJyZWFrUG9pbnQiLCJhcnJheSIsImdldEFycmF5IiwiZ2V0TGVuZ3RoIiwibGVuZ3RoIiwiZ2V0QmluZGluZyIsImluZGV4IiwiYmluZGluZyIsImZvckVhY2hCaW5kaW5nIiwiY2FsbGJhY2siLCJiYWNrIiwiZm9yd2FyZCIsImZvckVhY2giLCJjb21wYXJlVGVybXMiLCJ0ZXJtcyIsInRlcm1zU3RyaW5nIiwiZ2V0U3RyaW5nIiwiYmluZGluZ3NTdHJpbmciLCJ0cmFjZSIsInRlcm1zTGVuZ3RoIiwiYmluZGluZ3NMZW5ndGgiLCJtZXNzYWdlIiwiZXhjZXB0aW9uIiwiRXhjZXB0aW9uIiwiZnJvbU1lc3NhZ2UiLCJ0ZXJtIiwiZ2V0VGVybSIsImNvbXBhcmVUZXJtIiwiZGVidWciLCJuYW1lIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFRQTs7O2VBQUE7OztnQ0FOd0I7a0VBRUY7MEJBRUM7Ozs7OztNQUV2QixXQUFlQSxJQUFBQSxnQkFBTSxFQUFDLE1BQU1DLGlCQUFpQkMsdUJBQU87SUFDbEQsWUFBWUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsVUFBVSxFQUFFQyxLQUFLLENBQUU7UUFDcEQsS0FBSyxDQUFDSixTQUFTQyxRQUFRQyxNQUFNQztRQUU3QixJQUFJLENBQUNDLEtBQUssR0FBR0E7SUFDZjtJQUVBQyxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUNELEtBQUs7SUFDbkI7SUFFQUUsWUFBWTtRQUNWLE1BQU1DLFNBQVMsSUFBSSxDQUFDSCxLQUFLLENBQUNHLE1BQU07UUFFaEMsT0FBT0E7SUFDVDtJQUVBQyxXQUFXQyxLQUFLLEVBQUU7UUFDaEIsTUFBTUMsVUFBVSxJQUFJLENBQUNOLEtBQUssQ0FBQ0ssTUFBTSxJQUFJO1FBRXJDLE9BQU9DO0lBQ1Q7SUFFQUMsZUFBZUMsUUFBUSxFQUFFQyxPQUFPLElBQUksRUFBRUMsVUFBVSxJQUFJLEVBQUU7UUFDcEQsSUFBSUEsWUFBWSxNQUFNO1lBQ3BCLE9BQU9DLFFBQVEsSUFBSSxDQUFDWCxLQUFLLEVBQUVRLFVBQVVDLE1BQU1DO1FBQzdDO1FBRUEsSUFBSSxDQUFDVixLQUFLLENBQUNXLE9BQU8sQ0FBQ0g7SUFDckI7SUFFQUksYUFBYUMsS0FBSyxFQUFFakIsT0FBTyxFQUFFYSxJQUFJLEVBQUVDLE9BQU8sRUFBRTtRQUMxQyxNQUFNSSxjQUFjRCxNQUFNRSxTQUFTLElBQzdCQyxpQkFBaUIsSUFBSSxDQUFDRCxTQUFTLElBQUksR0FBRztRQUU1Q25CLFFBQVFxQixLQUFLLENBQUMsQ0FBQyxlQUFlLEVBQUVILFlBQVkscUJBQXFCLEVBQUVFLGVBQWUsYUFBYSxDQUFDO1FBRWhHLE1BQU1FLGNBQWNMLE1BQU1YLFNBQVMsSUFDN0JpQixpQkFBaUIsSUFBSSxDQUFDakIsU0FBUztRQUVyQyxJQUFJZ0IsZ0JBQWdCQyxnQkFBZ0I7WUFDbEMsTUFBTUMsVUFBVSxDQUFDLEtBQUssRUFBRU4sWUFBWSxtQkFBbUIsRUFBRUUsZUFBZSxzQ0FBc0MsQ0FBQyxFQUN6R0ssWUFBWUMsa0JBQVMsQ0FBQ0MsV0FBVyxDQUFDSDtZQUV4QyxPQUFPWCxLQUFLWTtRQUNkO1FBRUEsT0FBTyxJQUFJLENBQUNkLGNBQWMsQ0FBQyxDQUFDRCxTQUFTRyxNQUFNQyxTQUFTTDtZQUNsRCxJQUFJQyxZQUFZLE1BQU07Z0JBQ3BCLE9BQU9JO1lBQ1Q7WUFFQSxNQUFNYyxPQUFPWCxNQUFNWSxPQUFPLENBQUNwQjtZQUUzQixPQUFPQyxRQUFRb0IsV0FBVyxDQUFDRixNQUFNNUIsU0FBU2EsTUFBTUM7UUFDbEQsR0FBR0QsTUFBTTtZQUNQYixRQUFRK0IsS0FBSyxDQUFDLENBQUMsaUJBQWlCLEVBQUViLFlBQVkscUJBQXFCLEVBQUVFLGVBQWUsV0FBVyxDQUFDO1lBRWhHTjtRQUNGO0lBQ0Y7SUFFQSxPQUFPa0IsT0FBTyxXQUFXO0FBQzNCIn0=
|
package/lib/element/contains.js
CHANGED
|
@@ -30,7 +30,7 @@ const _default = (0, _elements.define)(class Contains extends _occamlanguages.El
|
|
|
30
30
|
getSubstring() {
|
|
31
31
|
return this.substring;
|
|
32
32
|
}
|
|
33
|
-
evaluate(context) {
|
|
33
|
+
evaluate(context, back, forward) {
|
|
34
34
|
let value;
|
|
35
35
|
const containsString = this.getString(); ///
|
|
36
36
|
context.trace(`Evaluating the '${containsString}' function...`);
|
|
@@ -38,15 +38,15 @@ const _default = (0, _elements.define)(class Contains extends _occamlanguages.El
|
|
|
38
38
|
const valueType = value.getType(), valueTypeStringType = valueType.isStringType();
|
|
39
39
|
if (!valueTypeStringType) {
|
|
40
40
|
const valueString = value.getString(), message = `The '${valueString}' value's '${valueType}' type should be '${_typeNames.STRING_TYPE_NAME}'.`, exception = _exception.default.fromMessage(message);
|
|
41
|
-
|
|
41
|
+
return back(exception);
|
|
42
42
|
}
|
|
43
43
|
const string = value.getString(), boolean = string.contains(this.substring);
|
|
44
44
|
value = (0, _value.valueFromBoolean)(boolean);
|
|
45
45
|
const valueString = value.getString();
|
|
46
46
|
context.debug(`...evaluated the '${containsString}' function as '${valueString}'.`);
|
|
47
|
-
return value;
|
|
47
|
+
return forward(value);
|
|
48
48
|
}
|
|
49
49
|
static name = "Contains";
|
|
50
50
|
});
|
|
51
51
|
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2NvbnRhaW5zLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFbGVtZW50IH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgRXhjZXB0aW9uIGZyb20gXCIuLi9leGNlcHRpb25cIjtcblxuaW1wb3J0IHsgZGVmaW5lIH0gZnJvbSBcIi4uL2VsZW1lbnRzXCI7XG5pbXBvcnQgeyBTVFJJTkdfVFlQRV9OQU1FIH0gZnJvbSBcIi4uL3R5cGVOYW1lc1wiO1xuaW1wb3J0IHsgdmFsdWVGcm9tQm9vbGVhbiB9IGZyb20gXCIuLi91dGlsaXRpZXMvdmFsdWVcIjtcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIENvbnRhaW5zIGV4dGVuZHMgRWxlbWVudCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgdmFyaWFibGUsIHN1YnN0cmluZykge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLnZhcmlhYmxlID0gdmFyaWFibGU7XG4gICAgdGhpcy5zdWJzdHJpbmcgPSBzdWJzdHJpbmc7XG4gIH1cblxuICBnZXRWYXJpYWJsZSgpIHtcbiAgICByZXR1cm4gdGhpcy52YXJpYWJsZTtcbiAgfVxuXG4gIGdldFN1YnN0cmluZygpIHtcbiAgICByZXR1cm4gdGhpcy5zdWJzdHJpbmc7XG4gIH1cblxuICBldmFsdWF0ZShjb250ZXh0LCBiYWNrLCBmb3J3YXJkKSB7XG4gICAgbGV0IHZhbHVlO1xuXG4gICAgY29uc3QgY29udGFpbnNTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSAnJHtjb250YWluc1N0cmluZ30nIGZ1bmN0aW9uLi4uYCk7XG5cbiAgICB2YWx1ZSA9IHRoaXMudmFyaWFibGUuZXZhbHVhdGUoY29udGV4dCk7XG5cbiAgICBjb25zdCB2YWx1ZVR5cGUgPSB2YWx1ZS5nZXRUeXBlKCksXG4gICAgICAgICAgdmFsdWVUeXBlU3RyaW5nVHlwZSA9IHZhbHVlVHlwZS5pc1N0cmluZ1R5cGUoKTtcblxuICAgIGlmICghdmFsdWVUeXBlU3RyaW5nVHlwZSkge1xuICAgICAgY29uc3QgdmFsdWVTdHJpbmcgPSB2YWx1ZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBgVGhlICcke3ZhbHVlU3RyaW5nfScgdmFsdWUncyAnJHt2YWx1ZVR5cGV9JyB0eXBlIHNob3VsZCBiZSAnJHtTVFJJTkdfVFlQRV9OQU1FfScuYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgcmV0dXJuIGJhY2soZXhjZXB0aW9uKTtcbiAgICB9XG5cbiAgICBjb25zdCBzdHJpbmcgPSB2YWx1ZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICBib29sZWFuID0gc3RyaW5nLmNvbnRhaW5zKHRoaXMuc3Vic3RyaW5nKTtcblxuICAgIHZhbHVlID0gdmFsdWVGcm9tQm9vbGVhbihib29sZWFuKTtcblxuICAgIGNvbnN0IHZhbHVlU3RyaW5nID0gdmFsdWUuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LmRlYnVnKGAuLi5ldmFsdWF0ZWQgdGhlICcke2NvbnRhaW5zU3RyaW5nfScgZnVuY3Rpb24gYXMgJyR7dmFsdWVTdHJpbmd9Jy5gKTtcblxuICAgIHJldHVybiBmb3J3YXJkKHZhbHVlKTtcbiAgfVxuXG4gIHN0YXRpYyBuYW1lID0gXCJDb250YWluc1wiO1xufSk7XG4iXSwibmFtZXMiOlsiZGVmaW5lIiwiQ29udGFpbnMiLCJFbGVtZW50IiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50IiwidmFyaWFibGUiLCJzdWJzdHJpbmciLCJnZXRWYXJpYWJsZSIsImdldFN1YnN0cmluZyIsImV2YWx1YXRlIiwiYmFjayIsImZvcndhcmQiLCJ2YWx1ZSIsImNvbnRhaW5zU3RyaW5nIiwiZ2V0U3RyaW5nIiwidHJhY2UiLCJ2YWx1ZVR5cGUiLCJnZXRUeXBlIiwidmFsdWVUeXBlU3RyaW5nVHlwZSIsImlzU3RyaW5nVHlwZSIsInZhbHVlU3RyaW5nIiwibWVzc2FnZSIsIlNUUklOR19UWVBFX05BTUUiLCJleGNlcHRpb24iLCJFeGNlcHRpb24iLCJmcm9tTWVzc2FnZSIsImJvb2xlYW4iLCJjb250YWlucyIsInZhbHVlRnJvbUJvb2xlYW4iLCJkZWJ1ZyIsIm5hbWUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVVBOzs7ZUFBQTs7O2dDQVJ3QjtrRUFFRjswQkFFQzsyQkFDVTt1QkFDQTs7Ozs7O01BRWpDLFdBQWVBLElBQUFBLGdCQUFNLEVBQUMsTUFBTUMsaUJBQWlCQyx1QkFBTztJQUNsRCxZQUFZQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxVQUFVLEVBQUVDLFFBQVEsRUFBRUMsU0FBUyxDQUFFO1FBQ2xFLEtBQUssQ0FBQ0wsU0FBU0MsUUFBUUMsTUFBTUM7UUFFN0IsSUFBSSxDQUFDQyxRQUFRLEdBQUdBO1FBQ2hCLElBQUksQ0FBQ0MsU0FBUyxHQUFHQTtJQUNuQjtJQUVBQyxjQUFjO1FBQ1osT0FBTyxJQUFJLENBQUNGLFFBQVE7SUFDdEI7SUFFQUcsZUFBZTtRQUNiLE9BQU8sSUFBSSxDQUFDRixTQUFTO0lBQ3ZCO0lBRUFHLFNBQVNSLE9BQU8sRUFBRVMsSUFBSSxFQUFFQyxPQUFPLEVBQUU7UUFDL0IsSUFBSUM7UUFFSixNQUFNQyxpQkFBaUIsSUFBSSxDQUFDQyxTQUFTLElBQUssR0FBRztRQUU3Q2IsUUFBUWMsS0FBSyxDQUFDLENBQUMsZ0JBQWdCLEVBQUVGLGVBQWUsYUFBYSxDQUFDO1FBRTlERCxRQUFRLElBQUksQ0FBQ1AsUUFBUSxDQUFDSSxRQUFRLENBQUNSO1FBRS9CLE1BQU1lLFlBQVlKLE1BQU1LLE9BQU8sSUFDekJDLHNCQUFzQkYsVUFBVUcsWUFBWTtRQUVsRCxJQUFJLENBQUNELHFCQUFxQjtZQUN4QixNQUFNRSxjQUFjUixNQUFNRSxTQUFTLElBQzdCTyxVQUFVLENBQUMsS0FBSyxFQUFFRCxZQUFZLFdBQVcsRUFBRUosVUFBVSxrQkFBa0IsRUFBRU0sMkJBQWdCLENBQUMsRUFBRSxDQUFDLEVBQzdGQyxZQUFZQyxrQkFBUyxDQUFDQyxXQUFXLENBQUNKO1lBRXhDLE9BQU9YLEtBQUthO1FBQ2Q7UUFFQSxNQUFNckIsU0FBU1UsTUFBTUUsU0FBUyxJQUN4QlksVUFBVXhCLE9BQU95QixRQUFRLENBQUMsSUFBSSxDQUFDckIsU0FBUztRQUU5Q00sUUFBUWdCLElBQUFBLHVCQUFnQixFQUFDRjtRQUV6QixNQUFNTixjQUFjUixNQUFNRSxTQUFTO1FBRW5DYixRQUFRNEIsS0FBSyxDQUFDLENBQUMsa0JBQWtCLEVBQUVoQixlQUFlLGVBQWUsRUFBRU8sWUFBWSxFQUFFLENBQUM7UUFFbEYsT0FBT1QsUUFBUUM7SUFDakI7SUFFQSxPQUFPa0IsT0FBTyxXQUFXO0FBQzNCIn0=
|
package/lib/element/endsWith.js
CHANGED
|
@@ -30,7 +30,7 @@ const _default = (0, _elements.define)(class EndsWith extends _occamlanguages.El
|
|
|
30
30
|
getSubstring() {
|
|
31
31
|
return this.substring;
|
|
32
32
|
}
|
|
33
|
-
evaluate(context) {
|
|
33
|
+
evaluate(context, back, forward) {
|
|
34
34
|
let value;
|
|
35
35
|
const endsWithString = this.getString(); ///
|
|
36
36
|
context.trace(`Evaluating the '${endsWithString}' function...`);
|
|
@@ -38,15 +38,15 @@ const _default = (0, _elements.define)(class EndsWith extends _occamlanguages.El
|
|
|
38
38
|
const valueType = value.getType(), valueTypeStringType = valueType.isStringType();
|
|
39
39
|
if (!valueTypeStringType) {
|
|
40
40
|
const valueString = value.getString(), message = `The '${valueString}' value's '${valueType}' type should be '${_typeNames.STRING_TYPE_NAME}'.`, exception = _exception.default.fromMessage(message);
|
|
41
|
-
|
|
41
|
+
return back(exception);
|
|
42
42
|
}
|
|
43
43
|
const string = value.getString(), boolean = string.endsWith(this.substring);
|
|
44
44
|
value = (0, _value.valueFromBoolean)(boolean);
|
|
45
45
|
const valueString = value.getString();
|
|
46
46
|
context.debug(`...evaluated the '${endsWithString}' function as '${valueString}'.`);
|
|
47
|
-
return value;
|
|
47
|
+
return forward(value);
|
|
48
48
|
}
|
|
49
49
|
static name = "EndsWith";
|
|
50
50
|
});
|
|
51
51
|
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2VuZHNXaXRoLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFbGVtZW50IH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgRXhjZXB0aW9uIGZyb20gXCIuLi9leGNlcHRpb25cIjtcblxuaW1wb3J0IHsgZGVmaW5lIH0gZnJvbSBcIi4uL2VsZW1lbnRzXCI7XG5pbXBvcnQgeyBTVFJJTkdfVFlQRV9OQU1FIH0gZnJvbSBcIi4uL3R5cGVOYW1lc1wiO1xuaW1wb3J0IHsgdmFsdWVGcm9tQm9vbGVhbiB9IGZyb20gXCIuLi91dGlsaXRpZXMvdmFsdWVcIjtcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIEVuZHNXaXRoIGV4dGVuZHMgRWxlbWVudCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgdmFyaWFibGUsIHN1YnN0cmluZykge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLnZhcmlhYmxlID0gdmFyaWFibGU7XG4gICAgdGhpcy5zdWJzdHJpbmcgPSBzdWJzdHJpbmc7XG4gIH1cblxuICBnZXRWYXJpYWJsZSgpIHtcbiAgICByZXR1cm4gdGhpcy52YXJpYWJsZTtcbiAgfVxuXG4gIGdldFN1YnN0cmluZygpIHtcbiAgICByZXR1cm4gdGhpcy5zdWJzdHJpbmc7XG4gIH1cblxuICBldmFsdWF0ZShjb250ZXh0LCBiYWNrLCBmb3J3YXJkKSB7XG4gICAgbGV0IHZhbHVlO1xuXG4gICAgY29uc3QgZW5kc1dpdGhTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSAnJHtlbmRzV2l0aFN0cmluZ30nIGZ1bmN0aW9uLi4uYCk7XG5cbiAgICB2YWx1ZSA9IHRoaXMudmFyaWFibGUuZXZhbHVhdGUoY29udGV4dCk7XG5cbiAgICBjb25zdCB2YWx1ZVR5cGUgPSB2YWx1ZS5nZXRUeXBlKCksXG4gICAgICAgICAgdmFsdWVUeXBlU3RyaW5nVHlwZSA9IHZhbHVlVHlwZS5pc1N0cmluZ1R5cGUoKTtcblxuICAgIGlmICghdmFsdWVUeXBlU3RyaW5nVHlwZSkge1xuICAgICAgY29uc3QgdmFsdWVTdHJpbmcgPSB2YWx1ZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBgVGhlICcke3ZhbHVlU3RyaW5nfScgdmFsdWUncyAnJHt2YWx1ZVR5cGV9JyB0eXBlIHNob3VsZCBiZSAnJHtTVFJJTkdfVFlQRV9OQU1FfScuYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgcmV0dXJuIGJhY2soZXhjZXB0aW9uKTtcbiAgICB9XG5cbiAgICBjb25zdCBzdHJpbmcgPSB2YWx1ZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICBib29sZWFuID0gc3RyaW5nLmVuZHNXaXRoKHRoaXMuc3Vic3RyaW5nKTtcblxuICAgIHZhbHVlID0gdmFsdWVGcm9tQm9vbGVhbihib29sZWFuKTtcblxuICAgIGNvbnN0IHZhbHVlU3RyaW5nID0gdmFsdWUuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LmRlYnVnKGAuLi5ldmFsdWF0ZWQgdGhlICcke2VuZHNXaXRoU3RyaW5nfScgZnVuY3Rpb24gYXMgJyR7dmFsdWVTdHJpbmd9Jy5gKTtcblxuICAgIHJldHVybiBmb3J3YXJkKHZhbHVlKTtcbiAgfVxuXG4gIHN0YXRpYyBuYW1lID0gXCJFbmRzV2l0aFwiO1xufSk7XG4iXSwibmFtZXMiOlsiZGVmaW5lIiwiRW5kc1dpdGgiLCJFbGVtZW50IiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50IiwidmFyaWFibGUiLCJzdWJzdHJpbmciLCJnZXRWYXJpYWJsZSIsImdldFN1YnN0cmluZyIsImV2YWx1YXRlIiwiYmFjayIsImZvcndhcmQiLCJ2YWx1ZSIsImVuZHNXaXRoU3RyaW5nIiwiZ2V0U3RyaW5nIiwidHJhY2UiLCJ2YWx1ZVR5cGUiLCJnZXRUeXBlIiwidmFsdWVUeXBlU3RyaW5nVHlwZSIsImlzU3RyaW5nVHlwZSIsInZhbHVlU3RyaW5nIiwibWVzc2FnZSIsIlNUUklOR19UWVBFX05BTUUiLCJleGNlcHRpb24iLCJFeGNlcHRpb24iLCJmcm9tTWVzc2FnZSIsImJvb2xlYW4iLCJlbmRzV2l0aCIsInZhbHVlRnJvbUJvb2xlYW4iLCJkZWJ1ZyIsIm5hbWUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVVBOzs7ZUFBQTs7O2dDQVJ3QjtrRUFFRjswQkFFQzsyQkFDVTt1QkFDQTs7Ozs7O01BRWpDLFdBQWVBLElBQUFBLGdCQUFNLEVBQUMsTUFBTUMsaUJBQWlCQyx1QkFBTztJQUNsRCxZQUFZQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxVQUFVLEVBQUVDLFFBQVEsRUFBRUMsU0FBUyxDQUFFO1FBQ2xFLEtBQUssQ0FBQ0wsU0FBU0MsUUFBUUMsTUFBTUM7UUFFN0IsSUFBSSxDQUFDQyxRQUFRLEdBQUdBO1FBQ2hCLElBQUksQ0FBQ0MsU0FBUyxHQUFHQTtJQUNuQjtJQUVBQyxjQUFjO1FBQ1osT0FBTyxJQUFJLENBQUNGLFFBQVE7SUFDdEI7SUFFQUcsZUFBZTtRQUNiLE9BQU8sSUFBSSxDQUFDRixTQUFTO0lBQ3ZCO0lBRUFHLFNBQVNSLE9BQU8sRUFBRVMsSUFBSSxFQUFFQyxPQUFPLEVBQUU7UUFDL0IsSUFBSUM7UUFFSixNQUFNQyxpQkFBaUIsSUFBSSxDQUFDQyxTQUFTLElBQUssR0FBRztRQUU3Q2IsUUFBUWMsS0FBSyxDQUFDLENBQUMsZ0JBQWdCLEVBQUVGLGVBQWUsYUFBYSxDQUFDO1FBRTlERCxRQUFRLElBQUksQ0FBQ1AsUUFBUSxDQUFDSSxRQUFRLENBQUNSO1FBRS9CLE1BQU1lLFlBQVlKLE1BQU1LLE9BQU8sSUFDekJDLHNCQUFzQkYsVUFBVUcsWUFBWTtRQUVsRCxJQUFJLENBQUNELHFCQUFxQjtZQUN4QixNQUFNRSxjQUFjUixNQUFNRSxTQUFTLElBQzdCTyxVQUFVLENBQUMsS0FBSyxFQUFFRCxZQUFZLFdBQVcsRUFBRUosVUFBVSxrQkFBa0IsRUFBRU0sMkJBQWdCLENBQUMsRUFBRSxDQUFDLEVBQzdGQyxZQUFZQyxrQkFBUyxDQUFDQyxXQUFXLENBQUNKO1lBRXhDLE9BQU9YLEtBQUthO1FBQ2Q7UUFFQSxNQUFNckIsU0FBU1UsTUFBTUUsU0FBUyxJQUN4QlksVUFBVXhCLE9BQU95QixRQUFRLENBQUMsSUFBSSxDQUFDckIsU0FBUztRQUU5Q00sUUFBUWdCLElBQUFBLHVCQUFnQixFQUFDRjtRQUV6QixNQUFNTixjQUFjUixNQUFNRSxTQUFTO1FBRW5DYixRQUFRNEIsS0FBSyxDQUFDLENBQUMsa0JBQWtCLEVBQUVoQixlQUFlLGVBQWUsRUFBRU8sWUFBWSxFQUFFLENBQUM7UUFFbEYsT0FBT1QsUUFBUUM7SUFDakI7SUFFQSxPQUFPa0IsT0FBTyxXQUFXO0FBQzNCIn0=
|