occam-furtle 3.0.381 → 3.0.385

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/lib/context/file/furtle.js +4 -4
  2. package/lib/element/anonymousProcedure.js +15 -11
  3. package/lib/element/assignment/array.js +4 -3
  4. package/lib/element/assignment/object.js +6 -5
  5. package/lib/element/assignment/variable.js +10 -9
  6. package/lib/element/assignments/variable.js +9 -8
  7. package/lib/element/contains.js +1 -3
  8. package/lib/element/error.js +7 -4
  9. package/lib/element/every.js +21 -25
  10. package/lib/element/expression.js +19 -11
  11. package/lib/element/lengthOf.js +1 -1
  12. package/lib/element/procedure.js +33 -30
  13. package/lib/element/procedureCall.js +10 -10
  14. package/lib/element/reduce.js +14 -17
  15. package/lib/element/returnBlock.js +19 -16
  16. package/lib/element/some.js +21 -24
  17. package/lib/element/statement.js +12 -11
  18. package/lib/element/ternary.js +11 -11
  19. package/lib/element/type.js +3 -10
  20. package/lib/process/verify.js +12 -24
  21. package/lib/utilities/element.js +5 -5
  22. package/package.json +2 -2
  23. package/src/context/file/furtle.js +3 -4
  24. package/src/element/anonymousProcedure.js +21 -17
  25. package/src/element/assignment/array.js +5 -3
  26. package/src/element/assignment/object.js +7 -5
  27. package/src/element/assignment/variable.js +11 -11
  28. package/src/element/assignments/variable.js +10 -10
  29. package/src/element/contains.js +0 -3
  30. package/src/element/error.js +10 -5
  31. package/src/element/every.js +29 -38
  32. package/src/element/expression.js +24 -12
  33. package/src/element/lengthOf.js +1 -1
  34. package/src/element/procedure.js +45 -44
  35. package/src/element/procedureCall.js +12 -14
  36. package/src/element/reduce.js +15 -22
  37. package/src/element/returnBlock.js +22 -19
  38. package/src/element/some.js +30 -38
  39. package/src/element/statement.js +13 -11
  40. package/src/element/ternary.js +16 -16
  41. package/src/element/type.js +5 -17
  42. package/src/process/verify.js +11 -32
  43. package/src/utilities/element.js +4 -4
@@ -10,6 +10,7 @@ Object.defineProperty(exports, "default", {
10
10
  });
11
11
  const _occamlanguages = require("occam-languages");
12
12
  const _elements = require("../elements");
13
+ const { unbreakable } = _occamlanguages.continuationUtilities;
13
14
  const _default = (0, _elements.define)(class Expression extends _occamlanguages.Element {
14
15
  constructor(context, string, node, breakPoint, term, some, every, reduce, ternary, nodeQuery, nodesQuery, lengthOf, toInteger, tryInteger, contains, endsWith, startsWith, returnBlock, procedureCall){
15
16
  super(context, string, node, breakPoint);
@@ -111,8 +112,8 @@ const _default = (0, _elements.define)(class Expression extends _occamlanguages.
111
112
  }
112
113
  return type;
113
114
  }
114
- async evaluate(context) {
115
- let value;
115
+ evaluate = unbreakable(function(context, continuation) {
116
+ let value = null;
116
117
  if (false) {
117
118
  ///
118
119
  } else if (this.term !== null) {
@@ -133,22 +134,29 @@ const _default = (0, _elements.define)(class Expression extends _occamlanguages.
133
134
  value = this.endsWith.evaluate(context);
134
135
  } else if (this.startsWith !== null) {
135
136
  value = this.startsWith.evaluate(context);
137
+ }
138
+ if (value !== null) {
139
+ continuation(value);
140
+ return;
141
+ }
142
+ if (false) {
143
+ ///
136
144
  } else if (this.some !== null) {
137
- value = await this.some.evaluate(context);
145
+ this.some.evaluate(context, continuation);
138
146
  } else if (this.every !== null) {
139
- value = await this.every.evaluate(context);
147
+ this.every.evaluate(context, continuation);
140
148
  } else if (this.reduce !== null) {
141
- value = await this.reduce.evaluate(context);
149
+ this.reduce.evaluate(context, continuation);
142
150
  } else if (this.ternary !== null) {
143
- value = await this.ternary.evaluate(context);
151
+ this.ternary.evaluate(context, continuation);
144
152
  } else if (this.returnBlock !== null) {
145
- value = await this.returnBlock.evaluate(context);
153
+ const variables = [];
154
+ this.returnBlock.evaluate(variables, context, continuation);
146
155
  } else if (this.procedureCall !== null) {
147
- value = await this.procedureCall.evaluate(context);
156
+ this.procedureCall.evaluate(context, continuation);
148
157
  }
149
- return value;
150
- }
158
+ });
151
159
  static name = "Expression";
152
160
  });
153
161
 
154
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2V4cHJlc3Npb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IEVsZW1lbnQgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi9lbGVtZW50c1wiO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgRXhwcmVzc2lvbiBleHRlbmRzIEVsZW1lbnQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHRlcm0sIHNvbWUsIGV2ZXJ5LCByZWR1Y2UsIHRlcm5hcnksIG5vZGVRdWVyeSwgbm9kZXNRdWVyeSwgbGVuZ3RoT2YsIHRvSW50ZWdlciwgdHJ5SW50ZWdlciwgY29udGFpbnMsIGVuZHNXaXRoLCBzdGFydHNXaXRoLCByZXR1cm5CbG9jaywgcHJvY2VkdXJlQ2FsbCkge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLnRlcm0gPSB0ZXJtO1xuICAgIHRoaXMuc29tZSA9IHNvbWU7XG4gICAgdGhpcy5ldmVyeSA9IGV2ZXJ5O1xuICAgIHRoaXMucmVkdWNlID0gcmVkdWNlO1xuICAgIHRoaXMudGVybmFyeSA9IHRlcm5hcnk7XG4gICAgdGhpcy5ub2RlUXVlcnkgPSBub2RlUXVlcnk7XG4gICAgdGhpcy5ub2Rlc1F1ZXJ5ID0gbm9kZXNRdWVyeTtcbiAgICB0aGlzLmxlbmd0aE9mID0gbGVuZ3RoT2Y7XG4gICAgdGhpcy50b0ludGVnZXIgPSB0b0ludGVnZXI7XG4gICAgdGhpcy50cnlJbnRlZ2VyID0gdHJ5SW50ZWdlcjtcbiAgICB0aGlzLmNvbnRhaW5zID0gY29udGFpbnM7XG4gICAgdGhpcy5lbmRzV2l0aCA9IGVuZHNXaXRoO1xuICAgIHRoaXMuc3RhcnRzV2l0aCA9IHN0YXJ0c1dpdGg7XG4gICAgdGhpcy5yZXR1cm5CbG9jayA9IHJldHVybkJsb2NrO1xuICAgIHRoaXMucHJvY2VkdXJlQ2FsbCA9IHByb2NlZHVyZUNhbGw7XG4gIH1cblxuICBnZXRUZXJtKCkge1xuICAgIHJldHVybiB0aGlzLnRlcm07XG4gIH1cblxuICBnZXRTb21lKCkge1xuICAgIHJldHVybiB0aGlzLnNvbWU7XG4gIH1cblxuICBnZXRFdmVyeSgpIHtcbiAgICByZXR1cm4gdGhpcy5ldmVyeTtcbiAgfVxuXG4gIGdldFJlZHVjZSgpIHtcbiAgICByZXR1cm4gdGhpcy5yZWR1Y2U7XG4gIH1cblxuICBnZXRUZXJuYXJ5KCkge1xuICAgIHJldHVybiB0aGlzLnRlcm5heTtcbiAgfVxuXG4gIGdldE5vZGVRdWVyeSgpIHtcbiAgICByZXR1cm4gdGhpcy5ub2RlUXVlcnk7XG4gIH1cblxuICBnZXROb2Rlc1F1ZXJ5KCkge1xuICAgIHJldHVybiB0aGlzLm5vZGVzUXVlcnk7XG4gIH1cblxuICBnZXRMZW5ndGhPZigpIHtcbiAgICByZXR1cm4gdGhpcy5sZW5ndGhPZjtcbiAgfVxuXG4gIGdldFRvSW50ZWdlcigpIHtcbiAgICByZXR1cm4gdGhpcy50b0ludGVnZXI7XG4gIH1cblxuICBnZXRUcnlJbnRlZ2VyKCkge1xuICAgIHJldHVybiB0aGlzLnRyeUludGVnZXI7XG4gIH1cblxuICBnZXRDb250YWlucygpIHtcbiAgICByZXR1cm4gdGhpcy5jb250YWlucztcbiAgfVxuXG4gIGdldEVuZHNXaXRoKCkge1xuICAgIHJldHVybiB0aGlzLmVuZHNXaXRoO1xuICB9XG5cbiAgZ2V0U3RhcnRzV2l0aCgpIHtcbiAgICByZXR1cm4gdGhpcy5zdGFydHNXaXRoO1xuICB9XG5cbiAgZ2V0UmV0dXJuQmxvY2soKSB7XG4gICAgcmV0dXJuIHRoaXMucmV0dXJuQmxvY2s7XG4gIH1cblxuICBnZXRQcm9jZWR1cmVDYWxsKCkge1xuICAgIHJldHVybiB0aGlzLnByb2NlZHVyZUNhbGw7XG4gIH1cblxuICBnZXRUeXBlKCkge1xuICAgIGxldCB0eXBlO1xuXG4gICAgaWYgKGZhbHNlKSB7XG4gICAgICAvLy9cbiAgICB9IGVsc2UgaWYgKHRoaXMudGVybSAhPT0gbnVsbCkge1xuICAgICAgdHlwZSA9IHRoaXMudGVybS5nZXRUeXBlKCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnNvbWUgIT09IG51bGwpIHtcbiAgICAgIHR5cGUgPSB0aGlzLnNvbWUuZ2V0VHlwZSgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5ldmVyeSAhPT0gbnVsbCkge1xuICAgICAgdHlwZSA9IHRoaXMuZXZlcnkuZ2V0VHlwZSgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5yZWR1Y2UgIT09IG51bGwpIHtcbiAgICAgIHR5cGUgPSB0aGlzLnJlZHVjZS5nZXRUeXBlKCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnRlcm5hcnkgIT09IG51bGwpIHtcbiAgICAgIHR5cGUgPSB0aGlzLnRlcm5hcnkuZ2V0VHlwZSgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5ub2RlUXVlcnkgIT09IG51bGwpIHtcbiAgICAgIHR5cGUgPSB0aGlzLm5vZGVRdWVyeS5nZXRUeXBlKCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLm5vZGVzUXVlcnkgIT09IG51bGwpIHtcbiAgICAgIHR5cGUgPSB0aGlzLm5vZGVzUXVlcnkuZ2V0VHlwZSgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5sZW5ndGhPZiAhPT0gbnVsbCkge1xuICAgICAgdHlwZSA9IHRoaXMubGVuZ3RoT2YuZ2V0VHlwZSgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy50b0ludGVnZXIgIT09IG51bGwpIHtcbiAgICAgIHR5cGUgPSB0aGlzLnRvSW50ZWdlci5nZXRUeXBlKCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnRyeUludGVnZXIgIT09IG51bGwpIHtcbiAgICAgIHR5cGUgPSB0aGlzLnRyeUludGVnZXIuZ2V0VHlwZSgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5jb250YWlucyAhPT0gbnVsbCkge1xuICAgICAgdHlwZSA9IHRoaXMuY29udGFpbnMuZ2V0VHlwZSgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5lbmRzV2l0aCAhPT0gbnVsbCkge1xuICAgICAgdHlwZSA9IHRoaXMuZW5kc1dpdGguZ2V0VHlwZSgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5zdGFydHNXaXRoICE9PSBudWxsKSB7XG4gICAgICB0eXBlID0gdGhpcy5zdGFydHNXaXRoLmdldFR5cGUoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMucmV0dXJuQmxvY2sgIT09IG51bGwpIHtcbiAgICAgIHR5cGUgPSB0aGlzLnJldHVybkJsb2NrLmdldFR5cGUoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMucHJvY2VkdXJlQ2FsbCAhPT0gbnVsbCkge1xuICAgICAgdHlwZSA9IHRoaXMucHJvY2VkdXJlQ2FsbC5nZXRUeXBlKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHR5cGU7XG4gIH1cblxuICBhc3luYyBldmFsdWF0ZShjb250ZXh0KSB7XG4gICAgbGV0IHZhbHVlO1xuXG4gICAgaWYgKGZhbHNlKSB7XG4gICAgICAvLy9cbiAgICB9IGVsc2UgaWYgKHRoaXMudGVybSAhPT0gbnVsbCkge1xuICAgICAgdmFsdWUgPSB0aGlzLnRlcm0uZXZhbHVhdGUoY29udGV4dCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLm5vZGVRdWVyeSAhPT0gbnVsbCkge1xuICAgICAgdmFsdWUgPSB0aGlzLm5vZGVRdWVyeS5ldmFsdWF0ZShjb250ZXh0KTtcbiAgICB9IGVsc2UgaWYgKHRoaXMubm9kZXNRdWVyeSAhPT0gbnVsbCkge1xuICAgICAgdmFsdWUgPSB0aGlzLm5vZGVzUXVlcnkuZXZhbHVhdGUoY29udGV4dCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmxlbmd0aE9mICE9PSBudWxsKSB7XG4gICAgICB2YWx1ZSA9IHRoaXMubGVuZ3RoT2YuZXZhbHVhdGUoY29udGV4dCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnRvSW50ZWdlciAhPT0gbnVsbCkge1xuICAgICAgdmFsdWUgPSB0aGlzLnRvSW50ZWdlci5ldmFsdWF0ZShjb250ZXh0KTtcbiAgICB9IGVsc2UgaWYgKHRoaXMudHJ5SW50ZWdlciAhPT0gbnVsbCkge1xuICAgICAgdmFsdWUgPSB0aGlzLnRyeUludGVnZXIuZXZhbHVhdGUoY29udGV4dCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmNvbnRhaW5zICE9PSBudWxsKSB7XG4gICAgICB2YWx1ZSA9IHRoaXMuY29udGFpbnMuZXZhbHVhdGUoY29udGV4dCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmVuZHNXaXRoICE9PSBudWxsKSB7XG4gICAgICB2YWx1ZSA9IHRoaXMuZW5kc1dpdGguZXZhbHVhdGUoY29udGV4dCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnN0YXJ0c1dpdGggIT09IG51bGwpIHtcbiAgICAgIHZhbHVlID0gdGhpcy5zdGFydHNXaXRoLmV2YWx1YXRlKGNvbnRleHQpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5zb21lICE9PSBudWxsKSB7XG4gICAgICB2YWx1ZSA9IGF3YWl0IHRoaXMuc29tZS5ldmFsdWF0ZShjb250ZXh0KTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuZXZlcnkgIT09IG51bGwpIHtcbiAgICAgIHZhbHVlID0gYXdhaXQgIHRoaXMuZXZlcnkuZXZhbHVhdGUoY29udGV4dCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnJlZHVjZSAhPT0gbnVsbCkge1xuICAgICAgdmFsdWUgPSBhd2FpdCB0aGlzLnJlZHVjZS5ldmFsdWF0ZShjb250ZXh0KTtcbiAgICB9IGVsc2UgaWYgKHRoaXMudGVybmFyeSAhPT0gbnVsbCkge1xuICAgICAgdmFsdWUgPSBhd2FpdCB0aGlzLnRlcm5hcnkuZXZhbHVhdGUoY29udGV4dCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnJldHVybkJsb2NrICE9PSBudWxsKSB7XG4gICAgICB2YWx1ZSA9IGF3YWl0IHRoaXMucmV0dXJuQmxvY2suZXZhbHVhdGUoY29udGV4dCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnByb2NlZHVyZUNhbGwgIT09IG51bGwpIHtcbiAgICAgIHZhbHVlID0gYXdhaXQgdGhpcy5wcm9jZWR1cmVDYWxsLmV2YWx1YXRlKGNvbnRleHQpO1xuICAgIH1cblxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIHN0YXRpYyBuYW1lID0gXCJFeHByZXNzaW9uXCI7XG59KTtcbiJdLCJuYW1lcyI6WyJkZWZpbmUiLCJFeHByZXNzaW9uIiwiRWxlbWVudCIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiYnJlYWtQb2ludCIsInRlcm0iLCJzb21lIiwiZXZlcnkiLCJyZWR1Y2UiLCJ0ZXJuYXJ5Iiwibm9kZVF1ZXJ5Iiwibm9kZXNRdWVyeSIsImxlbmd0aE9mIiwidG9JbnRlZ2VyIiwidHJ5SW50ZWdlciIsImNvbnRhaW5zIiwiZW5kc1dpdGgiLCJzdGFydHNXaXRoIiwicmV0dXJuQmxvY2siLCJwcm9jZWR1cmVDYWxsIiwiZ2V0VGVybSIsImdldFNvbWUiLCJnZXRFdmVyeSIsImdldFJlZHVjZSIsImdldFRlcm5hcnkiLCJ0ZXJuYXkiLCJnZXROb2RlUXVlcnkiLCJnZXROb2Rlc1F1ZXJ5IiwiZ2V0TGVuZ3RoT2YiLCJnZXRUb0ludGVnZXIiLCJnZXRUcnlJbnRlZ2VyIiwiZ2V0Q29udGFpbnMiLCJnZXRFbmRzV2l0aCIsImdldFN0YXJ0c1dpdGgiLCJnZXRSZXR1cm5CbG9jayIsImdldFByb2NlZHVyZUNhbGwiLCJnZXRUeXBlIiwidHlwZSIsImV2YWx1YXRlIiwidmFsdWUiLCJuYW1lIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFNQTs7O2VBQUE7OztnQ0FKd0I7MEJBRUQ7TUFFdkIsV0FBZUEsSUFBQUEsZ0JBQU0sRUFBQyxNQUFNQyxtQkFBbUJDLHVCQUFPO0lBQ3BELFlBQVlDLE9BQU8sRUFBRUMsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLFVBQVUsRUFBRUMsSUFBSSxFQUFFQyxJQUFJLEVBQUVDLEtBQUssRUFBRUMsTUFBTSxFQUFFQyxPQUFPLEVBQUVDLFNBQVMsRUFBRUMsVUFBVSxFQUFFQyxRQUFRLEVBQUVDLFNBQVMsRUFBRUMsVUFBVSxFQUFFQyxRQUFRLEVBQUVDLFFBQVEsRUFBRUMsVUFBVSxFQUFFQyxXQUFXLEVBQUVDLGFBQWEsQ0FBRTtRQUNyTSxLQUFLLENBQUNsQixTQUFTQyxRQUFRQyxNQUFNQztRQUU3QixJQUFJLENBQUNDLElBQUksR0FBR0E7UUFDWixJQUFJLENBQUNDLElBQUksR0FBR0E7UUFDWixJQUFJLENBQUNDLEtBQUssR0FBR0E7UUFDYixJQUFJLENBQUNDLE1BQU0sR0FBR0E7UUFDZCxJQUFJLENBQUNDLE9BQU8sR0FBR0E7UUFDZixJQUFJLENBQUNDLFNBQVMsR0FBR0E7UUFDakIsSUFBSSxDQUFDQyxVQUFVLEdBQUdBO1FBQ2xCLElBQUksQ0FBQ0MsUUFBUSxHQUFHQTtRQUNoQixJQUFJLENBQUNDLFNBQVMsR0FBR0E7UUFDakIsSUFBSSxDQUFDQyxVQUFVLEdBQUdBO1FBQ2xCLElBQUksQ0FBQ0MsUUFBUSxHQUFHQTtRQUNoQixJQUFJLENBQUNDLFFBQVEsR0FBR0E7UUFDaEIsSUFBSSxDQUFDQyxVQUFVLEdBQUdBO1FBQ2xCLElBQUksQ0FBQ0MsV0FBVyxHQUFHQTtRQUNuQixJQUFJLENBQUNDLGFBQWEsR0FBR0E7SUFDdkI7SUFFQUMsVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDZixJQUFJO0lBQ2xCO0lBRUFnQixVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUNmLElBQUk7SUFDbEI7SUFFQWdCLFdBQVc7UUFDVCxPQUFPLElBQUksQ0FBQ2YsS0FBSztJQUNuQjtJQUVBZ0IsWUFBWTtRQUNWLE9BQU8sSUFBSSxDQUFDZixNQUFNO0lBQ3BCO0lBRUFnQixhQUFhO1FBQ1gsT0FBTyxJQUFJLENBQUNDLE1BQU07SUFDcEI7SUFFQUMsZUFBZTtRQUNiLE9BQU8sSUFBSSxDQUFDaEIsU0FBUztJQUN2QjtJQUVBaUIsZ0JBQWdCO1FBQ2QsT0FBTyxJQUFJLENBQUNoQixVQUFVO0lBQ3hCO0lBRUFpQixjQUFjO1FBQ1osT0FBTyxJQUFJLENBQUNoQixRQUFRO0lBQ3RCO0lBRUFpQixlQUFlO1FBQ2IsT0FBTyxJQUFJLENBQUNoQixTQUFTO0lBQ3ZCO0lBRUFpQixnQkFBZ0I7UUFDZCxPQUFPLElBQUksQ0FBQ2hCLFVBQVU7SUFDeEI7SUFFQWlCLGNBQWM7UUFDWixPQUFPLElBQUksQ0FBQ2hCLFFBQVE7SUFDdEI7SUFFQWlCLGNBQWM7UUFDWixPQUFPLElBQUksQ0FBQ2hCLFFBQVE7SUFDdEI7SUFFQWlCLGdCQUFnQjtRQUNkLE9BQU8sSUFBSSxDQUFDaEIsVUFBVTtJQUN4QjtJQUVBaUIsaUJBQWlCO1FBQ2YsT0FBTyxJQUFJLENBQUNoQixXQUFXO0lBQ3pCO0lBRUFpQixtQkFBbUI7UUFDakIsT0FBTyxJQUFJLENBQUNoQixhQUFhO0lBQzNCO0lBRUFpQixVQUFVO1FBQ1IsSUFBSUM7UUFFSixJQUFJLE9BQU87UUFDVCxHQUFHO1FBQ0wsT0FBTyxJQUFJLElBQUksQ0FBQ2hDLElBQUksS0FBSyxNQUFNO1lBQzdCZ0MsT0FBTyxJQUFJLENBQUNoQyxJQUFJLENBQUMrQixPQUFPO1FBQzFCLE9BQU8sSUFBSSxJQUFJLENBQUM5QixJQUFJLEtBQUssTUFBTTtZQUM3QitCLE9BQU8sSUFBSSxDQUFDL0IsSUFBSSxDQUFDOEIsT0FBTztRQUMxQixPQUFPLElBQUksSUFBSSxDQUFDN0IsS0FBSyxLQUFLLE1BQU07WUFDOUI4QixPQUFPLElBQUksQ0FBQzlCLEtBQUssQ0FBQzZCLE9BQU87UUFDM0IsT0FBTyxJQUFJLElBQUksQ0FBQzVCLE1BQU0sS0FBSyxNQUFNO1lBQy9CNkIsT0FBTyxJQUFJLENBQUM3QixNQUFNLENBQUM0QixPQUFPO1FBQzVCLE9BQU8sSUFBSSxJQUFJLENBQUMzQixPQUFPLEtBQUssTUFBTTtZQUNoQzRCLE9BQU8sSUFBSSxDQUFDNUIsT0FBTyxDQUFDMkIsT0FBTztRQUM3QixPQUFPLElBQUksSUFBSSxDQUFDMUIsU0FBUyxLQUFLLE1BQU07WUFDbEMyQixPQUFPLElBQUksQ0FBQzNCLFNBQVMsQ0FBQzBCLE9BQU87UUFDL0IsT0FBTyxJQUFJLElBQUksQ0FBQ3pCLFVBQVUsS0FBSyxNQUFNO1lBQ25DMEIsT0FBTyxJQUFJLENBQUMxQixVQUFVLENBQUN5QixPQUFPO1FBQ2hDLE9BQU8sSUFBSSxJQUFJLENBQUN4QixRQUFRLEtBQUssTUFBTTtZQUNqQ3lCLE9BQU8sSUFBSSxDQUFDekIsUUFBUSxDQUFDd0IsT0FBTztRQUM5QixPQUFPLElBQUksSUFBSSxDQUFDdkIsU0FBUyxLQUFLLE1BQU07WUFDbEN3QixPQUFPLElBQUksQ0FBQ3hCLFNBQVMsQ0FBQ3VCLE9BQU87UUFDL0IsT0FBTyxJQUFJLElBQUksQ0FBQ3RCLFVBQVUsS0FBSyxNQUFNO1lBQ25DdUIsT0FBTyxJQUFJLENBQUN2QixVQUFVLENBQUNzQixPQUFPO1FBQ2hDLE9BQU8sSUFBSSxJQUFJLENBQUNyQixRQUFRLEtBQUssTUFBTTtZQUNqQ3NCLE9BQU8sSUFBSSxDQUFDdEIsUUFBUSxDQUFDcUIsT0FBTztRQUM5QixPQUFPLElBQUksSUFBSSxDQUFDcEIsUUFBUSxLQUFLLE1BQU07WUFDakNxQixPQUFPLElBQUksQ0FBQ3JCLFFBQVEsQ0FBQ29CLE9BQU87UUFDOUIsT0FBTyxJQUFJLElBQUksQ0FBQ25CLFVBQVUsS0FBSyxNQUFNO1lBQ25Db0IsT0FBTyxJQUFJLENBQUNwQixVQUFVLENBQUNtQixPQUFPO1FBQ2hDLE9BQU8sSUFBSSxJQUFJLENBQUNsQixXQUFXLEtBQUssTUFBTTtZQUNwQ21CLE9BQU8sSUFBSSxDQUFDbkIsV0FBVyxDQUFDa0IsT0FBTztRQUNqQyxPQUFPLElBQUksSUFBSSxDQUFDakIsYUFBYSxLQUFLLE1BQU07WUFDdENrQixPQUFPLElBQUksQ0FBQ2xCLGFBQWEsQ0FBQ2lCLE9BQU87UUFDbkM7UUFFQSxPQUFPQztJQUNUO0lBRUEsTUFBTUMsU0FBU3JDLE9BQU8sRUFBRTtRQUN0QixJQUFJc0M7UUFFSixJQUFJLE9BQU87UUFDVCxHQUFHO1FBQ0wsT0FBTyxJQUFJLElBQUksQ0FBQ2xDLElBQUksS0FBSyxNQUFNO1lBQzdCa0MsUUFBUSxJQUFJLENBQUNsQyxJQUFJLENBQUNpQyxRQUFRLENBQUNyQztRQUM3QixPQUFPLElBQUksSUFBSSxDQUFDUyxTQUFTLEtBQUssTUFBTTtZQUNsQzZCLFFBQVEsSUFBSSxDQUFDN0IsU0FBUyxDQUFDNEIsUUFBUSxDQUFDckM7UUFDbEMsT0FBTyxJQUFJLElBQUksQ0FBQ1UsVUFBVSxLQUFLLE1BQU07WUFDbkM0QixRQUFRLElBQUksQ0FBQzVCLFVBQVUsQ0FBQzJCLFFBQVEsQ0FBQ3JDO1FBQ25DLE9BQU8sSUFBSSxJQUFJLENBQUNXLFFBQVEsS0FBSyxNQUFNO1lBQ2pDMkIsUUFBUSxJQUFJLENBQUMzQixRQUFRLENBQUMwQixRQUFRLENBQUNyQztRQUNqQyxPQUFPLElBQUksSUFBSSxDQUFDWSxTQUFTLEtBQUssTUFBTTtZQUNsQzBCLFFBQVEsSUFBSSxDQUFDMUIsU0FBUyxDQUFDeUIsUUFBUSxDQUFDckM7UUFDbEMsT0FBTyxJQUFJLElBQUksQ0FBQ2EsVUFBVSxLQUFLLE1BQU07WUFDbkN5QixRQUFRLElBQUksQ0FBQ3pCLFVBQVUsQ0FBQ3dCLFFBQVEsQ0FBQ3JDO1FBQ25DLE9BQU8sSUFBSSxJQUFJLENBQUNjLFFBQVEsS0FBSyxNQUFNO1lBQ2pDd0IsUUFBUSxJQUFJLENBQUN4QixRQUFRLENBQUN1QixRQUFRLENBQUNyQztRQUNqQyxPQUFPLElBQUksSUFBSSxDQUFDZSxRQUFRLEtBQUssTUFBTTtZQUNqQ3VCLFFBQVEsSUFBSSxDQUFDdkIsUUFBUSxDQUFDc0IsUUFBUSxDQUFDckM7UUFDakMsT0FBTyxJQUFJLElBQUksQ0FBQ2dCLFVBQVUsS0FBSyxNQUFNO1lBQ25Dc0IsUUFBUSxJQUFJLENBQUN0QixVQUFVLENBQUNxQixRQUFRLENBQUNyQztRQUNuQyxPQUFPLElBQUksSUFBSSxDQUFDSyxJQUFJLEtBQUssTUFBTTtZQUM3QmlDLFFBQVEsTUFBTSxJQUFJLENBQUNqQyxJQUFJLENBQUNnQyxRQUFRLENBQUNyQztRQUNuQyxPQUFPLElBQUksSUFBSSxDQUFDTSxLQUFLLEtBQUssTUFBTTtZQUM5QmdDLFFBQVEsTUFBTyxJQUFJLENBQUNoQyxLQUFLLENBQUMrQixRQUFRLENBQUNyQztRQUNyQyxPQUFPLElBQUksSUFBSSxDQUFDTyxNQUFNLEtBQUssTUFBTTtZQUMvQitCLFFBQVEsTUFBTSxJQUFJLENBQUMvQixNQUFNLENBQUM4QixRQUFRLENBQUNyQztRQUNyQyxPQUFPLElBQUksSUFBSSxDQUFDUSxPQUFPLEtBQUssTUFBTTtZQUNoQzhCLFFBQVEsTUFBTSxJQUFJLENBQUM5QixPQUFPLENBQUM2QixRQUFRLENBQUNyQztRQUN0QyxPQUFPLElBQUksSUFBSSxDQUFDaUIsV0FBVyxLQUFLLE1BQU07WUFDcENxQixRQUFRLE1BQU0sSUFBSSxDQUFDckIsV0FBVyxDQUFDb0IsUUFBUSxDQUFDckM7UUFDMUMsT0FBTyxJQUFJLElBQUksQ0FBQ2tCLGFBQWEsS0FBSyxNQUFNO1lBQ3RDb0IsUUFBUSxNQUFNLElBQUksQ0FBQ3BCLGFBQWEsQ0FBQ21CLFFBQVEsQ0FBQ3JDO1FBQzVDO1FBRUEsT0FBT3NDO0lBQ1Q7SUFFQSxPQUFPQyxPQUFPLGFBQWE7QUFDN0IifQ==
162
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2V4cHJlc3Npb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IEVsZW1lbnQsIGNvbnRpbnVhdGlvblV0aWxpdGllcyB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcblxuaW1wb3J0IHsgZGVmaW5lIH0gZnJvbSBcIi4uL2VsZW1lbnRzXCI7XG5cbmNvbnN0IHsgdW5icmVha2FibGUgfSA9IGNvbnRpbnVhdGlvblV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIEV4cHJlc3Npb24gZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCB0ZXJtLCBzb21lLCBldmVyeSwgcmVkdWNlLCB0ZXJuYXJ5LCBub2RlUXVlcnksIG5vZGVzUXVlcnksIGxlbmd0aE9mLCB0b0ludGVnZXIsIHRyeUludGVnZXIsIGNvbnRhaW5zLCBlbmRzV2l0aCwgc3RhcnRzV2l0aCwgcmV0dXJuQmxvY2ssIHByb2NlZHVyZUNhbGwpIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQpO1xuXG4gICAgdGhpcy50ZXJtID0gdGVybTtcbiAgICB0aGlzLnNvbWUgPSBzb21lO1xuICAgIHRoaXMuZXZlcnkgPSBldmVyeTtcbiAgICB0aGlzLnJlZHVjZSA9IHJlZHVjZTtcbiAgICB0aGlzLnRlcm5hcnkgPSB0ZXJuYXJ5O1xuICAgIHRoaXMubm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5O1xuICAgIHRoaXMubm9kZXNRdWVyeSA9IG5vZGVzUXVlcnk7XG4gICAgdGhpcy5sZW5ndGhPZiA9IGxlbmd0aE9mO1xuICAgIHRoaXMudG9JbnRlZ2VyID0gdG9JbnRlZ2VyO1xuICAgIHRoaXMudHJ5SW50ZWdlciA9IHRyeUludGVnZXI7XG4gICAgdGhpcy5jb250YWlucyA9IGNvbnRhaW5zO1xuICAgIHRoaXMuZW5kc1dpdGggPSBlbmRzV2l0aDtcbiAgICB0aGlzLnN0YXJ0c1dpdGggPSBzdGFydHNXaXRoO1xuICAgIHRoaXMucmV0dXJuQmxvY2sgPSByZXR1cm5CbG9jaztcbiAgICB0aGlzLnByb2NlZHVyZUNhbGwgPSBwcm9jZWR1cmVDYWxsO1xuICB9XG5cbiAgZ2V0VGVybSgpIHtcbiAgICByZXR1cm4gdGhpcy50ZXJtO1xuICB9XG5cbiAgZ2V0U29tZSgpIHtcbiAgICByZXR1cm4gdGhpcy5zb21lO1xuICB9XG5cbiAgZ2V0RXZlcnkoKSB7XG4gICAgcmV0dXJuIHRoaXMuZXZlcnk7XG4gIH1cblxuICBnZXRSZWR1Y2UoKSB7XG4gICAgcmV0dXJuIHRoaXMucmVkdWNlO1xuICB9XG5cbiAgZ2V0VGVybmFyeSgpIHtcbiAgICByZXR1cm4gdGhpcy50ZXJuYXk7XG4gIH1cblxuICBnZXROb2RlUXVlcnkoKSB7XG4gICAgcmV0dXJuIHRoaXMubm9kZVF1ZXJ5O1xuICB9XG5cbiAgZ2V0Tm9kZXNRdWVyeSgpIHtcbiAgICByZXR1cm4gdGhpcy5ub2Rlc1F1ZXJ5O1xuICB9XG5cbiAgZ2V0TGVuZ3RoT2YoKSB7XG4gICAgcmV0dXJuIHRoaXMubGVuZ3RoT2Y7XG4gIH1cblxuICBnZXRUb0ludGVnZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMudG9JbnRlZ2VyO1xuICB9XG5cbiAgZ2V0VHJ5SW50ZWdlcigpIHtcbiAgICByZXR1cm4gdGhpcy50cnlJbnRlZ2VyO1xuICB9XG5cbiAgZ2V0Q29udGFpbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29udGFpbnM7XG4gIH1cblxuICBnZXRFbmRzV2l0aCgpIHtcbiAgICByZXR1cm4gdGhpcy5lbmRzV2l0aDtcbiAgfVxuXG4gIGdldFN0YXJ0c1dpdGgoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RhcnRzV2l0aDtcbiAgfVxuXG4gIGdldFJldHVybkJsb2NrKCkge1xuICAgIHJldHVybiB0aGlzLnJldHVybkJsb2NrO1xuICB9XG5cbiAgZ2V0UHJvY2VkdXJlQ2FsbCgpIHtcbiAgICByZXR1cm4gdGhpcy5wcm9jZWR1cmVDYWxsO1xuICB9XG5cbiAgZ2V0VHlwZSgpIHtcbiAgICBsZXQgdHlwZTtcblxuICAgIGlmIChmYWxzZSkge1xuICAgICAgLy8vXG4gICAgfSBlbHNlIGlmICh0aGlzLnRlcm0gIT09IG51bGwpIHtcbiAgICAgIHR5cGUgPSB0aGlzLnRlcm0uZ2V0VHlwZSgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5zb21lICE9PSBudWxsKSB7XG4gICAgICB0eXBlID0gdGhpcy5zb21lLmdldFR5cGUoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuZXZlcnkgIT09IG51bGwpIHtcbiAgICAgIHR5cGUgPSB0aGlzLmV2ZXJ5LmdldFR5cGUoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMucmVkdWNlICE9PSBudWxsKSB7XG4gICAgICB0eXBlID0gdGhpcy5yZWR1Y2UuZ2V0VHlwZSgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy50ZXJuYXJ5ICE9PSBudWxsKSB7XG4gICAgICB0eXBlID0gdGhpcy50ZXJuYXJ5LmdldFR5cGUoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMubm9kZVF1ZXJ5ICE9PSBudWxsKSB7XG4gICAgICB0eXBlID0gdGhpcy5ub2RlUXVlcnkuZ2V0VHlwZSgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5ub2Rlc1F1ZXJ5ICE9PSBudWxsKSB7XG4gICAgICB0eXBlID0gdGhpcy5ub2Rlc1F1ZXJ5LmdldFR5cGUoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMubGVuZ3RoT2YgIT09IG51bGwpIHtcbiAgICAgIHR5cGUgPSB0aGlzLmxlbmd0aE9mLmdldFR5cGUoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMudG9JbnRlZ2VyICE9PSBudWxsKSB7XG4gICAgICB0eXBlID0gdGhpcy50b0ludGVnZXIuZ2V0VHlwZSgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy50cnlJbnRlZ2VyICE9PSBudWxsKSB7XG4gICAgICB0eXBlID0gdGhpcy50cnlJbnRlZ2VyLmdldFR5cGUoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuY29udGFpbnMgIT09IG51bGwpIHtcbiAgICAgIHR5cGUgPSB0aGlzLmNvbnRhaW5zLmdldFR5cGUoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuZW5kc1dpdGggIT09IG51bGwpIHtcbiAgICAgIHR5cGUgPSB0aGlzLmVuZHNXaXRoLmdldFR5cGUoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuc3RhcnRzV2l0aCAhPT0gbnVsbCkge1xuICAgICAgdHlwZSA9IHRoaXMuc3RhcnRzV2l0aC5nZXRUeXBlKCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnJldHVybkJsb2NrICE9PSBudWxsKSB7XG4gICAgICB0eXBlID0gdGhpcy5yZXR1cm5CbG9jay5nZXRUeXBlKCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnByb2NlZHVyZUNhbGwgIT09IG51bGwpIHtcbiAgICAgIHR5cGUgPSB0aGlzLnByb2NlZHVyZUNhbGwuZ2V0VHlwZSgpO1xuICAgIH1cblxuICAgIHJldHVybiB0eXBlO1xuICB9XG5cbiAgZXZhbHVhdGUgPSB1bmJyZWFrYWJsZShmdW5jdGlvbiAoY29udGV4dCwgY29udGludWF0aW9uKSB7XG4gICAgbGV0IHZhbHVlID0gbnVsbDtcblxuICAgIGlmIChmYWxzZSkge1xuICAgICAgLy8vXG4gICAgfSBlbHNlIGlmICh0aGlzLnRlcm0gIT09IG51bGwpIHtcbiAgICAgIHZhbHVlID0gdGhpcy50ZXJtLmV2YWx1YXRlKGNvbnRleHQpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5ub2RlUXVlcnkgIT09IG51bGwpIHtcbiAgICAgIHZhbHVlID0gdGhpcy5ub2RlUXVlcnkuZXZhbHVhdGUoY29udGV4dCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLm5vZGVzUXVlcnkgIT09IG51bGwpIHtcbiAgICAgIHZhbHVlID0gdGhpcy5ub2Rlc1F1ZXJ5LmV2YWx1YXRlKGNvbnRleHQpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5sZW5ndGhPZiAhPT0gbnVsbCkge1xuICAgICAgdmFsdWUgPSB0aGlzLmxlbmd0aE9mLmV2YWx1YXRlKGNvbnRleHQpO1xuICAgIH0gZWxzZSBpZiAodGhpcy50b0ludGVnZXIgIT09IG51bGwpIHtcbiAgICAgIHZhbHVlID0gdGhpcy50b0ludGVnZXIuZXZhbHVhdGUoY29udGV4dCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnRyeUludGVnZXIgIT09IG51bGwpIHtcbiAgICAgIHZhbHVlID0gdGhpcy50cnlJbnRlZ2VyLmV2YWx1YXRlKGNvbnRleHQpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5jb250YWlucyAhPT0gbnVsbCkge1xuICAgICAgdmFsdWUgPSB0aGlzLmNvbnRhaW5zLmV2YWx1YXRlKGNvbnRleHQpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5lbmRzV2l0aCAhPT0gbnVsbCkge1xuICAgICAgdmFsdWUgPSB0aGlzLmVuZHNXaXRoLmV2YWx1YXRlKGNvbnRleHQpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5zdGFydHNXaXRoICE9PSBudWxsKSB7XG4gICAgICB2YWx1ZSA9IHRoaXMuc3RhcnRzV2l0aC5ldmFsdWF0ZShjb250ZXh0KTtcbiAgICB9XG5cbiAgICBpZiAodmFsdWUgIT09IG51bGwpIHtcbiAgICAgIGNvbnRpbnVhdGlvbih2YWx1ZSk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoZmFsc2UpIHtcbiAgICAgIC8vL1xuICAgIH0gZWxzZSBpZiAodGhpcy5zb21lICE9PSBudWxsKSB7XG4gICAgICB0aGlzLnNvbWUuZXZhbHVhdGUoY29udGV4dCwgY29udGludWF0aW9uKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuZXZlcnkgIT09IG51bGwpIHtcbiAgICAgICB0aGlzLmV2ZXJ5LmV2YWx1YXRlKGNvbnRleHQsIGNvbnRpbnVhdGlvbik7XG4gICAgfSBlbHNlIGlmICh0aGlzLnJlZHVjZSAhPT0gbnVsbCkge1xuICAgICAgdGhpcy5yZWR1Y2UuZXZhbHVhdGUoY29udGV4dCwgY29udGludWF0aW9uKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMudGVybmFyeSAhPT0gbnVsbCkge1xuICAgICAgdGhpcy50ZXJuYXJ5LmV2YWx1YXRlKGNvbnRleHQsIGNvbnRpbnVhdGlvbik7XG4gICAgfSBlbHNlIGlmICh0aGlzLnJldHVybkJsb2NrICE9PSBudWxsKSB7XG4gICAgICBjb25zdCB2YXJpYWJsZXMgPSBbXTtcblxuICAgICAgdGhpcy5yZXR1cm5CbG9jay5ldmFsdWF0ZSh2YXJpYWJsZXMsIGNvbnRleHQsIGNvbnRpbnVhdGlvbik7XG4gICAgfSBlbHNlIGlmICh0aGlzLnByb2NlZHVyZUNhbGwgIT09IG51bGwpIHtcbiAgICAgIHRoaXMucHJvY2VkdXJlQ2FsbC5ldmFsdWF0ZShjb250ZXh0LCBjb250aW51YXRpb24pO1xuICAgIH1cbiAgfSk7XG5cbiAgc3RhdGljIG5hbWUgPSBcIkV4cHJlc3Npb25cIjtcbn0pO1xuIl0sIm5hbWVzIjpbInVuYnJlYWthYmxlIiwiY29udGludWF0aW9uVXRpbGl0aWVzIiwiZGVmaW5lIiwiRXhwcmVzc2lvbiIsIkVsZW1lbnQiLCJjb250ZXh0Iiwic3RyaW5nIiwibm9kZSIsImJyZWFrUG9pbnQiLCJ0ZXJtIiwic29tZSIsImV2ZXJ5IiwicmVkdWNlIiwidGVybmFyeSIsIm5vZGVRdWVyeSIsIm5vZGVzUXVlcnkiLCJsZW5ndGhPZiIsInRvSW50ZWdlciIsInRyeUludGVnZXIiLCJjb250YWlucyIsImVuZHNXaXRoIiwic3RhcnRzV2l0aCIsInJldHVybkJsb2NrIiwicHJvY2VkdXJlQ2FsbCIsImdldFRlcm0iLCJnZXRTb21lIiwiZ2V0RXZlcnkiLCJnZXRSZWR1Y2UiLCJnZXRUZXJuYXJ5IiwidGVybmF5IiwiZ2V0Tm9kZVF1ZXJ5IiwiZ2V0Tm9kZXNRdWVyeSIsImdldExlbmd0aE9mIiwiZ2V0VG9JbnRlZ2VyIiwiZ2V0VHJ5SW50ZWdlciIsImdldENvbnRhaW5zIiwiZ2V0RW5kc1dpdGgiLCJnZXRTdGFydHNXaXRoIiwiZ2V0UmV0dXJuQmxvY2siLCJnZXRQcm9jZWR1cmVDYWxsIiwiZ2V0VHlwZSIs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
@@ -45,4 +45,4 @@ const _default = (0, _elements.define)(class LengthOf extends _occamlanguages.El
45
45
  static name = "LengthOf";
46
46
  });
47
47
 
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2xlbmd0aE9mLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFbGVtZW50IH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgRXhjZXB0aW9uIGZyb20gXCIuLi9leGNlcHRpb25cIjtcblxuaW1wb3J0IHsgZGVmaW5lIH0gZnJvbSBcIi4uL2VsZW1lbnRzXCI7XG5pbXBvcnQgeyBMSVNUX1RZUEVfTkFNRSB9IGZyb20gXCIuLi90eXBlTmFtZXNcIjtcbmltcG9ydCB7dmFsdWVGcm9tSW50ZWdlcn0gZnJvbSBcIi4uL3V0aWxpdGllcy92YWx1ZVwiO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgTGVuZ3RoT2YgZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCB2YXJpYWJsZSkge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLnZhcmlhYmxlID0gdmFyaWFibGU7XG4gIH1cblxuICBnZXRWYXJpYWJsZSgpIHtcbiAgICByZXR1cm4gdGhpcy52YXJpYWJsZTtcbiAgfVxuXG4gIGV2YWx1YXRlKGNvbnRleHQpIHtcbiAgICBsZXQgdmFsdWU7XG5cbiAgICBjb25zdCBsZW5ndGhPZlN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7ICAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYEV2YWx1YXRpbmcgdGhlICcke2xlbmd0aE9mU3RyaW5nfScgZnVuY3Rpb24uLi5gKTtcblxuICAgIHZhbHVlID0gdGhpcy52YXJpYWJsZS5ldmFsdWF0ZShjb250ZXh0KTtcblxuICAgIGNvbnN0IHZhbHVlVHlwZSA9IHZhbHVlLmdldFR5cGUoKSxcbiAgICAgICAgICB2YWx1ZVR5cGVMaXN0VHlwZSA9IHZhbHVlVHlwZS5pc0xpc3RUeXBlKCk7XG5cbiAgICBpZiAoIXZhbHVlVHlwZUxpc3RUeXBlKSB7XG4gICAgICBjb25zdCB2YWx1ZVN0cmluZyA9IHZhbHVlLmdldFN0cmluZygpLFxuICAgICAgICAgICAgbWVzc2FnZSA9IGBUaGUgJyR7dmFsdWVTdHJpbmd9JyB2YWx1ZSdzICcke3ZhbHVlVHlwZX0nIHR5cGUgc2hvdWxkIGJlICcke0xJU1RfVFlQRV9OQU1FfScuYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgdGhyb3cgZXhjZXB0aW9uO1xuICAgIH1cblxuICAgIGNvbnN0IHByaW1pdGl2ZVZhbHVlID0gdmFsdWUuZ2V0UHJpbWl0aXZlVmFsdWUoKSxcbiAgICAgICAgICBsZW5ndGggPSBwcmltaXRpdmVWYWx1ZS5sZW5ndGgsXG4gICAgICAgICAgaW50ZWdlciA9IGxlbmd0aDsgLy8vXG5cbiAgICB2YWx1ZSA9IHZhbHVlRnJvbUludGVnZXIoaW50ZWdlciwgY29udGV4dCk7XG5cbiAgICBjb25zdCB2YWx1ZVN0cmluZyA9IHZhbHVlLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC5kZWJ1ZyhgLi4uZXZhbHVhdGVkIHRoZSAnJHtsZW5ndGhPZlN0cmluZ30nIGZ1bmN0aW9uIGFzICcke3ZhbHVlU3RyaW5nfScuYCk7XG5cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiTGVuZ3RoT2ZcIjtcbn0pO1xuIl0sIm5hbWVzIjpbImRlZmluZSIsIkxlbmd0aE9mIiwiRWxlbWVudCIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiYnJlYWtQb2ludCIsInZhcmlhYmxlIiwiZ2V0VmFyaWFibGUiLCJldmFsdWF0ZSIsInZhbHVlIiwibGVuZ3RoT2ZTdHJpbmciLCJnZXRTdHJpbmciLCJ0cmFjZSIsInZhbHVlVHlwZSIsImdldFR5cGUiLCJ2YWx1ZVR5cGVMaXN0VHlwZSIsImlzTGlzdFR5cGUiLCJ2YWx1ZVN0cmluZyIsIm1lc3NhZ2UiLCJMSVNUX1RZUEVfTkFNRSIsImV4Y2VwdGlvbiIsIkV4Y2VwdGlvbiIsImZyb21NZXNzYWdlIiwicHJpbWl0aXZlVmFsdWUiLCJnZXRQcmltaXRpdmVWYWx1ZSIsImxlbmd0aCIsImludGVnZXIiLCJ2YWx1ZUZyb21JbnRlZ2VyIiwiZGVidWciLCJuYW1lIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFVQTs7O2VBQUE7OztnQ0FSd0I7a0VBRUY7MEJBRUM7MkJBQ1E7dUJBQ0E7Ozs7OztNQUUvQixXQUFlQSxJQUFBQSxnQkFBTSxFQUFDLE1BQU1DLGlCQUFpQkMsdUJBQU87SUFDbEQsWUFBWUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsVUFBVSxFQUFFQyxRQUFRLENBQUU7UUFDdkQsS0FBSyxDQUFDSixTQUFTQyxRQUFRQyxNQUFNQztRQUU3QixJQUFJLENBQUNDLFFBQVEsR0FBR0E7SUFDbEI7SUFFQUMsY0FBYztRQUNaLE9BQU8sSUFBSSxDQUFDRCxRQUFRO0lBQ3RCO0lBRUFFLFNBQVNOLE9BQU8sRUFBRTtRQUNoQixJQUFJTztRQUVKLE1BQU1DLGlCQUFpQixJQUFJLENBQUNDLFNBQVMsSUFBSyxHQUFHO1FBRTdDVCxRQUFRVSxLQUFLLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRUYsZUFBZSxhQUFhLENBQUM7UUFFOURELFFBQVEsSUFBSSxDQUFDSCxRQUFRLENBQUNFLFFBQVEsQ0FBQ047UUFFL0IsTUFBTVcsWUFBWUosTUFBTUssT0FBTyxJQUN6QkMsb0JBQW9CRixVQUFVRyxVQUFVO1FBRTlDLElBQUksQ0FBQ0QsbUJBQW1CO1lBQ3RCLE1BQU1FLGNBQWNSLE1BQU1FLFNBQVMsSUFDN0JPLFVBQVUsQ0FBQyxLQUFLLEVBQUVELFlBQVksV0FBVyxFQUFFSixVQUFVLGtCQUFrQixFQUFFTSx5QkFBYyxDQUFDLEVBQUUsQ0FBQyxFQUMzRkMsWUFBWUMsa0JBQVMsQ0FBQ0MsV0FBVyxDQUFDSjtZQUV4QyxNQUFNRTtRQUNSO1FBRUEsTUFBTUcsaUJBQWlCZCxNQUFNZSxpQkFBaUIsSUFDeENDLFNBQVNGLGVBQWVFLE1BQU0sRUFDOUJDLFVBQVVELFFBQVEsR0FBRztRQUUzQmhCLFFBQVFrQixJQUFBQSx1QkFBZ0IsRUFBQ0QsU0FBU3hCO1FBRWxDLE1BQU1lLGNBQWNSLE1BQU1FLFNBQVM7UUFFbkNULFFBQVEwQixLQUFLLENBQUMsQ0FBQyxrQkFBa0IsRUFBRWxCLGVBQWUsZUFBZSxFQUFFTyxZQUFZLEVBQUUsQ0FBQztRQUVsRixPQUFPUjtJQUNUO0lBRUEsT0FBT29CLE9BQU8sV0FBVztBQUMzQiJ9
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2xlbmd0aE9mLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFbGVtZW50IH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgRXhjZXB0aW9uIGZyb20gXCIuLi9leGNlcHRpb25cIjtcblxuaW1wb3J0IHsgZGVmaW5lIH0gZnJvbSBcIi4uL2VsZW1lbnRzXCI7XG5pbXBvcnQgeyBMSVNUX1RZUEVfTkFNRSB9IGZyb20gXCIuLi90eXBlTmFtZXNcIjtcbmltcG9ydCB7IHZhbHVlRnJvbUludGVnZXIgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3ZhbHVlXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZShjbGFzcyBMZW5ndGhPZiBleHRlbmRzIEVsZW1lbnQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHZhcmlhYmxlKSB7XG4gICAgc3VwZXIoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50KTtcblxuICAgIHRoaXMudmFyaWFibGUgPSB2YXJpYWJsZTtcbiAgfVxuXG4gIGdldFZhcmlhYmxlKCkge1xuICAgIHJldHVybiB0aGlzLnZhcmlhYmxlO1xuICB9XG5cbiAgZXZhbHVhdGUoY29udGV4dCkge1xuICAgIGxldCB2YWx1ZTtcblxuICAgIGNvbnN0IGxlbmd0aE9mU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgIC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgRXZhbHVhdGluZyB0aGUgJyR7bGVuZ3RoT2ZTdHJpbmd9JyBmdW5jdGlvbi4uLmApO1xuXG4gICAgdmFsdWUgPSB0aGlzLnZhcmlhYmxlLmV2YWx1YXRlKGNvbnRleHQpO1xuXG4gICAgY29uc3QgdmFsdWVUeXBlID0gdmFsdWUuZ2V0VHlwZSgpLFxuICAgICAgICAgIHZhbHVlVHlwZUxpc3RUeXBlID0gdmFsdWVUeXBlLmlzTGlzdFR5cGUoKTtcblxuICAgIGlmICghdmFsdWVUeXBlTGlzdFR5cGUpIHtcbiAgICAgIGNvbnN0IHZhbHVlU3RyaW5nID0gdmFsdWUuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICBtZXNzYWdlID0gYFRoZSAnJHt2YWx1ZVN0cmluZ30nIHZhbHVlJ3MgJyR7dmFsdWVUeXBlfScgdHlwZSBzaG91bGQgYmUgJyR7TElTVF9UWVBFX05BTUV9Jy5gLFxuICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICB0aHJvdyBleGNlcHRpb247XG4gICAgfVxuXG4gICAgY29uc3QgcHJpbWl0aXZlVmFsdWUgPSB2YWx1ZS5nZXRQcmltaXRpdmVWYWx1ZSgpLFxuICAgICAgICAgIGxlbmd0aCA9IHByaW1pdGl2ZVZhbHVlLmxlbmd0aCxcbiAgICAgICAgICBpbnRlZ2VyID0gbGVuZ3RoOyAvLy9cblxuICAgIHZhbHVlID0gdmFsdWVGcm9tSW50ZWdlcihpbnRlZ2VyLCBjb250ZXh0KTtcblxuICAgIGNvbnN0IHZhbHVlU3RyaW5nID0gdmFsdWUuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LmRlYnVnKGAuLi5ldmFsdWF0ZWQgdGhlICcke2xlbmd0aE9mU3RyaW5nfScgZnVuY3Rpb24gYXMgJyR7dmFsdWVTdHJpbmd9Jy5gKTtcblxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIHN0YXRpYyBuYW1lID0gXCJMZW5ndGhPZlwiO1xufSk7XG4iXSwibmFtZXMiOlsiZGVmaW5lIiwiTGVuZ3RoT2YiLCJFbGVtZW50IiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50IiwidmFyaWFibGUiLCJnZXRWYXJpYWJsZSIsImV2YWx1YXRlIiwidmFsdWUiLCJsZW5ndGhPZlN0cmluZyIsImdldFN0cmluZyIsInRyYWNlIiwidmFsdWVUeXBlIiwiZ2V0VHlwZSIsInZhbHVlVHlwZUxpc3RUeXBlIiwiaXNMaXN0VHlwZSIsInZhbHVlU3RyaW5nIiwibWVzc2FnZSIsIkxJU1RfVFlQRV9OQU1FIiwiZXhjZXB0aW9uIiwiRXhjZXB0aW9uIiwiZnJvbU1lc3NhZ2UiLCJwcmltaXRpdmVWYWx1ZSIsImdldFByaW1pdGl2ZVZhbHVlIiwibGVuZ3RoIiwiaW50ZWdlciIsInZhbHVlRnJvbUludGVnZXIiLCJkZWJ1ZyIsIm5hbWUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVVBOzs7ZUFBQTs7O2dDQVJ3QjtrRUFFRjswQkFFQzsyQkFDUTt1QkFDRTs7Ozs7O01BRWpDLFdBQWVBLElBQUFBLGdCQUFNLEVBQUMsTUFBTUMsaUJBQWlCQyx1QkFBTztJQUNsRCxZQUFZQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxVQUFVLEVBQUVDLFFBQVEsQ0FBRTtRQUN2RCxLQUFLLENBQUNKLFNBQVNDLFFBQVFDLE1BQU1DO1FBRTdCLElBQUksQ0FBQ0MsUUFBUSxHQUFHQTtJQUNsQjtJQUVBQyxjQUFjO1FBQ1osT0FBTyxJQUFJLENBQUNELFFBQVE7SUFDdEI7SUFFQUUsU0FBU04sT0FBTyxFQUFFO1FBQ2hCLElBQUlPO1FBRUosTUFBTUMsaUJBQWlCLElBQUksQ0FBQ0MsU0FBUyxJQUFLLEdBQUc7UUFFN0NULFFBQVFVLEtBQUssQ0FBQyxDQUFDLGdCQUFnQixFQUFFRixlQUFlLGFBQWEsQ0FBQztRQUU5REQsUUFBUSxJQUFJLENBQUNILFFBQVEsQ0FBQ0UsUUFBUSxDQUFDTjtRQUUvQixNQUFNVyxZQUFZSixNQUFNSyxPQUFPLElBQ3pCQyxvQkFBb0JGLFVBQVVHLFVBQVU7UUFFOUMsSUFBSSxDQUFDRCxtQkFBbUI7WUFDdEIsTUFBTUUsY0FBY1IsTUFBTUUsU0FBUyxJQUM3Qk8sVUFBVSxDQUFDLEtBQUssRUFBRUQsWUFBWSxXQUFXLEVBQUVKLFVBQVUsa0JBQWtCLEVBQUVNLHlCQUFjLENBQUMsRUFBRSxDQUFDLEVBQzNGQyxZQUFZQyxrQkFBUyxDQUFDQyxXQUFXLENBQUNKO1lBRXhDLE1BQU1FO1FBQ1I7UUFFQSxNQUFNRyxpQkFBaUJkLE1BQU1lLGlCQUFpQixJQUN4Q0MsU0FBU0YsZUFBZUUsTUFBTSxFQUM5QkMsVUFBVUQsUUFBUSxHQUFHO1FBRTNCaEIsUUFBUWtCLElBQUFBLHVCQUFnQixFQUFDRCxTQUFTeEI7UUFFbEMsTUFBTWUsY0FBY1IsTUFBTUUsU0FBUztRQUVuQ1QsUUFBUTBCLEtBQUssQ0FBQyxDQUFDLGtCQUFrQixFQUFFbEIsZUFBZSxlQUFlLEVBQUVPLFlBQVksRUFBRSxDQUFDO1FBRWxGLE9BQU9SO0lBQ1Q7SUFFQSxPQUFPb0IsT0FBTyxXQUFXO0FBQzNCIn0=
@@ -20,7 +20,7 @@ function _interop_require_default(obj) {
20
20
  default: obj
21
21
  };
22
22
  }
23
- const { breakPointFromJSON, breakPointToBreakPointJSON } = _occamlanguages.breakPointUtilities;
23
+ const { breakable, unbreakable } = _occamlanguages.continuationUtilities, { breakPointFromJSON, breakPointToBreakPointJSON } = _occamlanguages.breakPointUtilities;
24
24
  const _default = (0, _elements.define)(class Procedure extends _occamlanguages.Element {
25
25
  constructor(context, string, node, breakPoint, type, label, parameters, returnBlock){
26
26
  super(context, string, node, breakPoint);
@@ -54,47 +54,50 @@ const _default = (0, _elements.define)(class Procedure extends _occamlanguages.E
54
54
  compareProcedureName(procedureName) {
55
55
  return this.label.compareProcedureName(procedureName);
56
56
  }
57
- verify(context) {
58
- const verifies = true;
57
+ guaranteeReturnBlock() {
58
+ if (this.returnBlock != null) {
59
+ return;
60
+ }
61
+ const node = this.getNode(), context = this.getContext(), procedureNode = node;
62
+ this.returnBlock = (0, _element.returnBlockFromProcedureNode)(procedureNode, context);
63
+ }
64
+ verify = unbreakable(function(context) {
65
+ let verifies;
59
66
  const procedureString = this.getString();
60
67
  context.trace(`Verifying the '${procedureString}' function...`);
61
68
  const procedure = this; ///
62
69
  context.addProcedure(procedure);
70
+ verifies = true;
63
71
  if (verifies) {
64
72
  context.debug(`...verified the '${procedureString}' function.`);
65
73
  }
66
74
  return verifies;
67
- }
68
- async call(values, context) {
69
- await this.break(context);
75
+ });
76
+ call = breakable(function(values, context, continuation) {
70
77
  const procedureString = this.getString(); ///
71
78
  context.trace(`Calling the '${procedureString}' procedure...`);
72
79
  this.parameters.compareValues(values, context);
73
80
  this.guaranteeReturnBlock();
74
- const variables = (0, _parameters.variablesFromValuesAndParameters)(values, this.parameters, context), value = await this.returnBlock.evaluate(variables, context), valueType = value.getType(), typeEqualToValueType = this.type.isEqualTo(valueType);
75
- if (!typeEqualToValueType) {
76
- const valueString = value.getString(), typeString = this.type.getString(), message = `The '${valueString}' value's '${typeString}' type is not equal to the '${procedureString}' procedure's '${typeString}' type.`, exception = _exception.default.fromMessage(message);
77
- throw exception;
78
- }
79
- context.debug(`...called the '${procedureString}' procedure.`);
80
- return value;
81
- }
82
- async callNominally(nominalValues) {
83
- const context = this.getContext();
84
- await this.break(context);
85
- const procedureString = this.getString(); ///
81
+ const variables = (0, _parameters.variablesFromValuesAndParameters)(values, this.parameters, context);
82
+ this.returnBlock.evaluate(variables, context, (value)=>{
83
+ const valueType = value.getType(), typeEqualToValueType = this.type.isEqualTo(valueType);
84
+ if (!typeEqualToValueType) {
85
+ const valueString = value.getString(), typeString = this.type.getString(), message = `The '${valueString}' value's '${typeString}' type is not equal to the '${procedureString}' procedure's '${typeString}' type.`, exception = _exception.default.fromMessage(message);
86
+ throw exception;
87
+ }
88
+ context.debug(`...called the '${procedureString}' procedure.`);
89
+ continuation(value);
90
+ });
91
+ });
92
+ callNominally = unbreakable(function(nominalValues, continuation) {
93
+ const context = this.getContext(), procedureString = this.getString(); ///
86
94
  context.trace(`Calling the '${procedureString}' function nominally...`);
87
- const values = (0, _values.valuesFromNominalValues)(nominalValues, context), term = await this.call(values, context);
88
- context.debug(`...called the '${procedureString}' function nominally.`);
89
- return term;
90
- }
91
- guaranteeReturnBlock() {
92
- if (this.returnBlock != null) {
93
- return;
94
- }
95
- const node = this.getNode(), context = this.getContext(), procedureNode = node;
96
- this.returnBlock = (0, _element.returnBlockFromProcedureNode)(procedureNode, context);
97
- }
95
+ const values = (0, _values.valuesFromNominalValues)(nominalValues, context);
96
+ this.call(values, context, (value)=>{
97
+ context.debug(`...called the '${procedureString}' function nominally.`);
98
+ continuation(value);
99
+ });
100
+ });
98
101
  toJSON() {
99
102
  const typeJSON = (0, _json.typeToTypeJSON)(this.type), labelJSON = (0, _json.labelToLabelJSON)(this.label), parametersJSON = (0, _json.parametersToParametersJSON)(this.parameters), string = this.getString();
100
103
  let breakPoint;
@@ -117,4 +120,4 @@ const _default = (0, _elements.define)(class Procedure extends _occamlanguages.E
117
120
  }
118
121
  });
119
122
 
120
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3Byb2NlZHVyZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgRWxlbWVudCwgYnJlYWtQb2ludFV0aWxpdGllcyB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcblxuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tIFwiLi4vZXhjZXB0aW9uXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgdmFsdWVzRnJvbU5vbWluYWxWYWx1ZXMgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3ZhbHVlc1wiO1xuaW1wb3J0IHsgcmV0dXJuQmxvY2tGcm9tUHJvY2VkdXJlTm9kZSB9IGZyb20gXCIuLi91dGlsaXRpZXMvZWxlbWVudFwiO1xuaW1wb3J0IHsgdmFyaWFibGVzRnJvbVZhbHVlc0FuZFBhcmFtZXRlcnMgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3BhcmFtZXRlcnNcIjtcbmltcG9ydCB7IHR5cGVGcm9tSlNPTiwgbGFiZWxGcm9tSlNPTiwgcGFyYW1ldGVyc0Zyb21KU09OLCB0eXBlVG9UeXBlSlNPTiwgbGFiZWxUb0xhYmVsSlNPTiwgcGFyYW1ldGVyc1RvUGFyYW1ldGVyc0pTT04gfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2pzb25cIjtcblxuY29uc3QgeyBicmVha1BvaW50RnJvbUpTT04sIGJyZWFrUG9pbnRUb0JyZWFrUG9pbnRKU09OIH0gPSBicmVha1BvaW50VXRpbGl0aWVzO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgUHJvY2VkdXJlIGV4dGVuZHMgRWxlbWVudCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgdHlwZSwgbGFiZWwsIHBhcmFtZXRlcnMsIHJldHVybkJsb2NrKSB7XG4gICAgc3VwZXIoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50KTtcblxuICAgIHRoaXMudHlwZSA9IHR5cGU7XG4gICAgdGhpcy5sYWJlbCA9IGxhYmVsO1xuICAgIHRoaXMucGFyYW1ldGVycyA9IHBhcmFtZXRlcnM7XG4gICAgdGhpcy5yZXR1cm5CbG9jayA9IHJldHVybkJsb2NrO1xuICB9XG5cbiAgZ2V0VHlwZSgpIHtcbiAgICByZXR1cm4gdGhpcy50eXBlO1xuICB9XG5cbiAgZ2V0TGFiZWwoKSB7XG4gICAgcmV0dXJuIHRoaXMubGFiZWw7XG4gIH1cblxuICBnZXRQYXJhbWV0ZXJzKCkge1xuICAgIHJldHVybiB0aGlzLnBhcmFtZXRlcnM7XG4gIH1cblxuICBnZXRSZXR1cm5CbG9jaygpIHtcbiAgICByZXR1cm4gdGhpcy5yZXR1cm5CbG9jaztcbiAgfVxuXG4gIGdldE5hbWUoKSB7IHJldHVybiB0aGlzLmxhYmVsLmdldE5hbWUoKTsgfVxuXG4gIGlzQm9vbGVhbigpIHtcbiAgICBjb25zdCB0eXBlID0gdGhpcy5nZXRUeXBlKCksXG4gICAgICAgICAgYm9vbGVhblR5cGUgPSB0eXBlLmlzQm9vbGVhblR5cGUoKSxcbiAgICAgICAgICBib29sZWFuID0gYm9vbGVhblR5cGU7ICAvLy9cblxuICAgIHJldHVybiBib29sZWFuO1xuICB9XG5cbiAgZ2V0UmV0dXJuU3RhdGVtZW50KCkgeyByZXR1cm4gdGhpcy5yZXR1cm5CbG9jay5nZXRSZXR1cm5TdGF0ZW1lbnQoKTsgfVxuXG4gIGNvbXBhcmVQcm9jZWR1cmVOYW1lKHByb2NlZHVyZU5hbWUpIHsgcmV0dXJuIHRoaXMubGFiZWwuY29tcGFyZVByb2NlZHVyZU5hbWUocHJvY2VkdXJlTmFtZSk7IH1cblxuICB2ZXJpZnkoY29udGV4dCkge1xuICAgIGNvbnN0IHZlcmlmaWVzID0gdHJ1ZTtcblxuICAgIGNvbnN0IHByb2NlZHVyZVN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3Byb2NlZHVyZVN0cmluZ30nIGZ1bmN0aW9uLi4uYClcblxuICAgIGNvbnN0IHByb2NlZHVyZSA9IHRoaXM7IC8vL1xuXG4gICAgY29udGV4dC5hZGRQcm9jZWR1cmUocHJvY2VkdXJlKTtcblxuICAgIGlmICh2ZXJpZmllcykge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3Byb2NlZHVyZVN0cmluZ30nIGZ1bmN0aW9uLmApXG4gICAgfVxuXG4gICAgcmV0dXJuIHZlcmlmaWVzO1xuICB9XG5cbiAgYXN5bmMgY2FsbCh2YWx1ZXMsIGNvbnRleHQpIHtcbiAgICBhd2FpdCB0aGlzLmJyZWFrKGNvbnRleHQpO1xuXG4gICAgY29uc3QgcHJvY2VkdXJlU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgIC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgQ2FsbGluZyB0aGUgJyR7cHJvY2VkdXJlU3RyaW5nfScgcHJvY2VkdXJlLi4uYCk7XG5cbiAgICB0aGlzLnBhcmFtZXRlcnMuY29tcGFyZVZhbHVlcyh2YWx1ZXMsIGNvbnRleHQpO1xuXG4gICAgdGhpcy5ndWFyYW50ZWVSZXR1cm5CbG9jaygpO1xuXG4gICAgY29uc3QgdmFyaWFibGVzID0gdmFyaWFibGVzRnJvbVZhbHVlc0FuZFBhcmFtZXRlcnModmFsdWVzLCB0aGlzLnBhcmFtZXRlcnMsIGNvbnRleHQpLFxuICAgICAgICAgIHZhbHVlID0gYXdhaXQgdGhpcy5yZXR1cm5CbG9jay5ldmFsdWF0ZSh2YXJpYWJsZXMsIGNvbnRleHQpLFxuICAgICAgICAgIHZhbHVlVHlwZSA9IHZhbHVlLmdldFR5cGUoKSxcbiAgICAgICAgICB0eXBlRXF1YWxUb1ZhbHVlVHlwZSA9IHRoaXMudHlwZS5pc0VxdWFsVG8odmFsdWVUeXBlKTtcblxuICAgIGlmICghdHlwZUVxdWFsVG9WYWx1ZVR5cGUpIHtcbiAgICAgIGNvbnN0IHZhbHVlU3RyaW5nID0gdmFsdWUuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICB0eXBlU3RyaW5nID0gdGhpcy50eXBlLmdldFN0cmluZygpLFxuICAgICAgICAgICAgbWVzc2FnZSA9IGBUaGUgJyR7dmFsdWVTdHJpbmd9JyB2YWx1ZSdzICcke3R5cGVTdHJpbmd9JyB0eXBlIGlzIG5vdCBlcXVhbCB0byB0aGUgJyR7cHJvY2VkdXJlU3RyaW5nfScgcHJvY2VkdXJlJ3MgJyR7dHlwZVN0cmluZ30nIHR5cGUuYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgdGhyb3cgZXhjZXB0aW9uO1xuICAgIH1cblxuICAgIGNvbnRleHQuZGVidWcoYC4uLmNhbGxlZCB0aGUgJyR7cHJvY2VkdXJlU3RyaW5nfScgcHJvY2VkdXJlLmApO1xuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgYXN5bmMgY2FsbE5vbWluYWxseShub21pbmFsVmFsdWVzKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpO1xuXG4gICAgYXdhaXQgdGhpcy5icmVhayhjb250ZXh0KTtcblxuICAgIGNvbnN0IHByb2NlZHVyZVN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7ICAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYENhbGxpbmcgdGhlICcke3Byb2NlZHVyZVN0cmluZ30nIGZ1bmN0aW9uIG5vbWluYWxseS4uLmApO1xuXG4gICAgY29uc3QgdmFsdWVzID0gdmFsdWVzRnJvbU5vbWluYWxWYWx1ZXMobm9taW5hbFZhbHVlcywgY29udGV4dCksXG4gICAgICAgICAgdGVybSA9IGF3YWl0IHRoaXMuY2FsbCh2YWx1ZXMsIGNvbnRleHQpO1xuXG4gICAgY29udGV4dC5kZWJ1ZyhgLi4uY2FsbGVkIHRoZSAnJHtwcm9jZWR1cmVTdHJpbmd9JyBmdW5jdGlvbiBub21pbmFsbHkuYCk7XG5cbiAgICByZXR1cm4gdGVybTtcbiAgfVxuXG4gIGd1YXJhbnRlZVJldHVybkJsb2NrKCkge1xuICAgIGlmICh0aGlzLnJldHVybkJsb2NrICE9IG51bGwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBub2RlID0gdGhpcy5nZXROb2RlKCksXG4gICAgICAgICAgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpLFxuICAgICAgICAgIHByb2NlZHVyZU5vZGUgPSBub2RlO1xuXG4gICAgdGhpcy5yZXR1cm5CbG9jayA9IHJldHVybkJsb2NrRnJvbVByb2NlZHVyZU5vZGUocHJvY2VkdXJlTm9kZSwgY29udGV4dCk7XG4gIH1cblxuICB0b0pTT04oKSB7XG4gICAgY29uc3QgdHlwZUpTT04gPSB0eXBlVG9UeXBlSlNPTih0aGlzLnR5cGUpLFxuICAgICAgICAgIGxhYmVsSlNPTiA9IGxhYmVsVG9MYWJlbEpTT04odGhpcy5sYWJlbCksXG4gICAgICAgICAgcGFyYW1ldGVyc0pTT04gPSBwYXJhbWV0ZXJzVG9QYXJhbWV0ZXJzSlNPTih0aGlzLnBhcmFtZXRlcnMpLFxuICAgICAgICAgIHN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7XG5cbiAgICBsZXQgYnJlYWtQb2ludDtcblxuICAgIGJyZWFrUG9pbnQgPSB0aGlzLmdldEJyZWFrUG9pbnQoKTtcblxuICAgIGNvbnN0IGJyZWFrUG9pbnRKU09OID0gYnJlYWtQb2ludFRvQnJlYWtQb2ludEpTT04oYnJlYWtQb2ludCk7XG5cbiAgICBicmVha1BvaW50ID0gYnJlYWtQb2ludEpTT047ICAvLy9cblxuICAgIGNvbnN0IHR5cGUgPSB0eXBlSlNPTiwgIC8vL1xuICAgICAgICAgIGxhYmVsID0gbGFiZWxKU09OLCAgLy8vXG4gICAgICAgICAgcGFyYW1ldGVycyA9IHBhcmFtZXRlcnNKU09OLCAgLy8vXG4gICAgICAgICAganNvbiA9IHtcbiAgICAgICAgICAgIHN0cmluZyxcbiAgICAgICAgICAgIGJyZWFrUG9pbnQsXG4gICAgICAgICAgICB0eXBlLFxuICAgICAgICAgICAgbGFiZWwsXG4gICAgICAgICAgICBwYXJhbWV0ZXJzXG4gICAgICAgICAgfTtcblxuICAgIHJldHVybiBqc29uO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIlByb2NlZHVyZVwiO1xuXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uLCBjb250ZXh0KSB7XG4gICAgY29uc3QgeyBzdHJpbmcgfSA9IGpzb24sXG4gICAgICAgICAgYnJlYWtQb2ludCA9IGJyZWFrUG9pbnRGcm9tSlNPTihqc29uKSxcbiAgICAgICAgICB0eXBlID0gdHlwZUZyb21KU09OKGpzb24sIGNvbnRleHQpLFxuICAgICAgICAgIGxhYmVsID0gbGFiZWxGcm9tSlNPTihqc29uLCBjb250ZXh0KSxcbiAgICAgICAgICBwYXJhbWV0ZXJzID0gcGFyYW1ldGVyc0Zyb21KU09OKGpzb24sIGNvbnRleHQpLFxuICAgICAgICAgIHByb2NlZHVyZU5vZGUgPSBjb250ZXh0LmZpbmRQcm9jZWR1cmVOb2RlKGxhYmVsKSxcbiAgICAgICAgICByZXR1cm5CbG9jayA9IG51bGwsIC8vL1xuICAgICAgICAgIG5vZGUgPSBwcm9jZWR1cmVOb2RlLCAvLy9cbiAgICAgICAgICBwcm9jZWR1cmUgPSBuZXcgUHJvY2VkdXJlKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgdHlwZSwgbGFiZWwsIHBhcmFtZXRlcnMsIHJldHVybkJsb2NrKTtcblxuICAgIHJldHVybiBwcm9jZWR1cmU7XG4gIH1cbn0pO1xuIl0sIm5hbWVzIjpbImJyZWFrUG9pbnRGcm9tSlNPTiIsImJyZWFrUG9pbnRUb0JyZWFrUG9pbnRKU09OIiwiYnJlYWtQb2ludFV0aWxpdGllcyIsImRlZmluZSIsIlByb2NlZHVyZSIsIkVsZW1lbnQiLCJjb250ZXh0Iiwic3RyaW5nIiwibm9kZSIsImJyZWFrUG9pbnQiLCJ0eXBlIiwibGFiZWwiLCJwYXJhbWV0ZXJzIiwicmV0dXJuQmxvY2siLCJnZXRUeXBlIiwiZ2V0TGFiZWwiLCJnZXRQYXJhbWV0ZXJzIiwiZ2V0UmV0dXJuQmxvY2siLCJnZXROYW1lIiwiaXNCb29sZWFuIiwiYm9vbGVhblR5cGUiLCJpc0Jvb2xlYW5UeXBlIiwiYm9vbGVhbiIsImdldFJldHVyblN0YXRlbWVudCIsImNvbXBhcmVQcm9jZWR1cmVOYW1lIiwicHJvY2VkdXJlTmFtZSIsInZlcmlmeSIsInZlcmlmaWVzIiwicHJvY2VkdXJlU3RyaW5nIiwiZ2V0U3RyaW5nIiwidHJhY2UiLCJwcm9jZWR1cmUiLCJhZGRQcm9jZWR1cmUiLCJkZWJ1ZyIsImNhbGwiLCJ2YWx1ZXMiLCJicmVhayIsImNvbXBhcmVWYWx1ZXMiLCJndWFyYW50ZWVSZXR1cm5CbG9jayIsInZhcmlhYmxlcyIsInZhcmlhYmxlc0Zyb21WYWx1ZXNBbmRQYXJhbWV0ZXJzIiwidmFsdWUiLCJldmFsdWF0ZSIsInZhbHVlVHlwZSIsInR5cGVFcXVhbFRvVmFsdWVUeXBlIiwiaXNFcXVhbFRvIiwidmFsdWVTdHJpbmciLCJ0eXBlU3RyaW5nIiwibWVzc2FnZSIsImV4Y2VwdGlvbiIsIkV4Y2VwdGlvbiIsImZyb21NZXNzYWdlIiwiY2FsbE5vbWluYWxseSIsIm5vbWluYWxWYWx1ZXMiLCJnZXRDb250ZXh0IiwidmFsdWVzRnJvbU5vbWluYWxWYWx1ZXMiLCJ0ZXJtIiwiZ2V0Tm9kZSIsInByb2NlZHVyZU5vZGUiLCJyZXR1cm5CbG9ja0Zyb21Qcm9jZWR1cmVOb2RlIiwidG9KU09OIiwidHlwZUpTT04iLCJ0eXBlVG9UeXBlSlNPTiIsImxhYmVsSlNPTiIsImxhYmVsVG9MYWJlbEpTT04iLCJwYXJhbWV0ZXJzSlNPTiIsInBhcmFtZXRlcnNUb1BhcmFtZXRlcnNKU09OIiwiZ2V0QnJlYWtQb2ludCIsImJyZWFrUG9pbnRKU09OIiwianNvbiIsIm5hbWUiLCJmcm9tSlNPTiIsInR5cGVGcm9tSlNPTiIsImxhYmVsRnJvbUpTT04iLCJwYXJhbWV0ZXJzRnJvbUpTT04iLCJmaW5kUHJvY2VkdXJlTm9kZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBY0E7OztlQUFBOzs7Z0NBWjZDO2tFQUV2QjswQkFFQzt3QkFDaUI7eUJBQ0s7NEJBQ0k7c0JBQzZFOzs7Ozs7QUFFOUgsTUFBTSxFQUFFQSxrQkFBa0IsRUFBRUMsMEJBQTBCLEVBQUUsR0FBR0MsbUNBQW1CO01BRTlFLFdB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
123
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3Byb2NlZHVyZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgRWxlbWVudCwgYnJlYWtQb2ludFV0aWxpdGllcywgY29udGludWF0aW9uVXRpbGl0aWVzIH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgRXhjZXB0aW9uIGZyb20gXCIuLi9leGNlcHRpb25cIjtcblxuaW1wb3J0IHsgZGVmaW5lIH0gZnJvbSBcIi4uL2VsZW1lbnRzXCI7XG5pbXBvcnQgeyB2YWx1ZXNGcm9tTm9taW5hbFZhbHVlcyB9IGZyb20gXCIuLi91dGlsaXRpZXMvdmFsdWVzXCI7XG5pbXBvcnQgeyByZXR1cm5CbG9ja0Zyb21Qcm9jZWR1cmVOb2RlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9lbGVtZW50XCI7XG5pbXBvcnQgeyB2YXJpYWJsZXNGcm9tVmFsdWVzQW5kUGFyYW1ldGVycyB9IGZyb20gXCIuLi91dGlsaXRpZXMvcGFyYW1ldGVyc1wiO1xuaW1wb3J0IHsgdHlwZUZyb21KU09OLCBsYWJlbEZyb21KU09OLCBwYXJhbWV0ZXJzRnJvbUpTT04sIHR5cGVUb1R5cGVKU09OLCBsYWJlbFRvTGFiZWxKU09OLCBwYXJhbWV0ZXJzVG9QYXJhbWV0ZXJzSlNPTiB9IGZyb20gXCIuLi91dGlsaXRpZXMvanNvblwiO1xuXG5jb25zdCB7IGJyZWFrYWJsZSwgdW5icmVha2FibGUgfSA9IGNvbnRpbnVhdGlvblV0aWxpdGllcyxcbiAgICAgIHsgYnJlYWtQb2ludEZyb21KU09OLCBicmVha1BvaW50VG9CcmVha1BvaW50SlNPTiB9ID0gYnJlYWtQb2ludFV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIFByb2NlZHVyZSBleHRlbmRzIEVsZW1lbnQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHR5cGUsIGxhYmVsLCBwYXJhbWV0ZXJzLCByZXR1cm5CbG9jaykge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xuICAgIHRoaXMubGFiZWwgPSBsYWJlbDtcbiAgICB0aGlzLnBhcmFtZXRlcnMgPSBwYXJhbWV0ZXJzO1xuICAgIHRoaXMucmV0dXJuQmxvY2sgPSByZXR1cm5CbG9jaztcbiAgfVxuXG4gIGdldFR5cGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudHlwZTtcbiAgfVxuXG4gIGdldExhYmVsKCkge1xuICAgIHJldHVybiB0aGlzLmxhYmVsO1xuICB9XG5cbiAgZ2V0UGFyYW1ldGVycygpIHtcbiAgICByZXR1cm4gdGhpcy5wYXJhbWV0ZXJzO1xuICB9XG5cbiAgZ2V0UmV0dXJuQmxvY2soKSB7XG4gICAgcmV0dXJuIHRoaXMucmV0dXJuQmxvY2s7XG4gIH1cblxuICBnZXROYW1lKCkgeyByZXR1cm4gdGhpcy5sYWJlbC5nZXROYW1lKCk7IH1cblxuICBpc0Jvb2xlYW4oKSB7XG4gICAgY29uc3QgdHlwZSA9IHRoaXMuZ2V0VHlwZSgpLFxuICAgICAgICAgIGJvb2xlYW5UeXBlID0gdHlwZS5pc0Jvb2xlYW5UeXBlKCksXG4gICAgICAgICAgYm9vbGVhbiA9IGJvb2xlYW5UeXBlOyAgLy8vXG5cbiAgICByZXR1cm4gYm9vbGVhbjtcbiAgfVxuXG4gIGdldFJldHVyblN0YXRlbWVudCgpIHsgcmV0dXJuIHRoaXMucmV0dXJuQmxvY2suZ2V0UmV0dXJuU3RhdGVtZW50KCk7IH1cblxuICBjb21wYXJlUHJvY2VkdXJlTmFtZShwcm9jZWR1cmVOYW1lKSB7IHJldHVybiB0aGlzLmxhYmVsLmNvbXBhcmVQcm9jZWR1cmVOYW1lKHByb2NlZHVyZU5hbWUpOyB9XG5cbiAgZ3VhcmFudGVlUmV0dXJuQmxvY2soKSB7XG4gICAgaWYgKHRoaXMucmV0dXJuQmxvY2sgIT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IG5vZGUgPSB0aGlzLmdldE5vZGUoKSxcbiAgICAgICAgICBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCksXG4gICAgICAgICAgcHJvY2VkdXJlTm9kZSA9IG5vZGU7XG5cbiAgICB0aGlzLnJldHVybkJsb2NrID0gcmV0dXJuQmxvY2tGcm9tUHJvY2VkdXJlTm9kZShwcm9jZWR1cmVOb2RlLCBjb250ZXh0KTtcbiAgfVxuXG4gIHZlcmlmeSA9IHVuYnJlYWthYmxlKGZ1bmN0aW9uIChjb250ZXh0KSB7XG4gICAgbGV0IHZlcmlmaWVzO1xuXG4gICAgY29uc3QgcHJvY2VkdXJlU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7cHJvY2VkdXJlU3RyaW5nfScgZnVuY3Rpb24uLi5gKVxuXG4gICAgY29uc3QgcHJvY2VkdXJlID0gdGhpczsgLy8vXG5cbiAgICBjb250ZXh0LmFkZFByb2NlZHVyZShwcm9jZWR1cmUpO1xuXG4gICAgdmVyaWZpZXMgPSB0cnVlO1xuXG4gICAgaWYgKHZlcmlmaWVzKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7cHJvY2VkdXJlU3RyaW5nfScgZnVuY3Rpb24uYClcbiAgICB9XG5cbiAgICByZXR1cm4gdmVyaWZpZXM7XG4gIH0pO1xuXG4gIGNhbGwgPSBicmVha2FibGUoZnVuY3Rpb24gKHZhbHVlcywgY29udGV4dCwgY29udGludWF0aW9uKSB7XG4gICAgY29uc3QgcHJvY2VkdXJlU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgIC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgQ2FsbGluZyB0aGUgJyR7cHJvY2VkdXJlU3RyaW5nfScgcHJvY2VkdXJlLi4uYCk7XG5cbiAgICB0aGlzLnBhcmFtZXRlcnMuY29tcGFyZVZhbHVlcyh2YWx1ZXMsIGNvbnRleHQpO1xuXG4gICAgdGhpcy5ndWFyYW50ZWVSZXR1cm5CbG9jaygpO1xuXG4gICAgY29uc3QgdmFyaWFibGVzID0gdmFyaWFibGVzRnJvbVZhbHVlc0FuZFBhcmFtZXRlcnModmFsdWVzLCB0aGlzLnBhcmFtZXRlcnMsIGNvbnRleHQpO1xuXG4gICAgdGhpcy5yZXR1cm5CbG9jay5ldmFsdWF0ZSh2YXJpYWJsZXMsIGNvbnRleHQsICh2YWx1ZSkgPT4ge1xuICAgICAgY29uc3QgdmFsdWVUeXBlID0gdmFsdWUuZ2V0VHlwZSgpLFxuICAgICAgICAgICAgdHlwZUVxdWFsVG9WYWx1ZVR5cGUgPSB0aGlzLnR5cGUuaXNFcXVhbFRvKHZhbHVlVHlwZSk7XG5cbiAgICAgIGlmICghdHlwZUVxdWFsVG9WYWx1ZVR5cGUpIHtcbiAgICAgICAgY29uc3QgdmFsdWVTdHJpbmcgPSB2YWx1ZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgICAgdHlwZVN0cmluZyA9IHRoaXMudHlwZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgICAgbWVzc2FnZSA9IGBUaGUgJyR7dmFsdWVTdHJpbmd9JyB2YWx1ZSdzICcke3R5cGVTdHJpbmd9JyB0eXBlIGlzIG5vdCBlcXVhbCB0byB0aGUgJyR7cHJvY2VkdXJlU3RyaW5nfScgcHJvY2VkdXJlJ3MgJyR7dHlwZVN0cmluZ30nIHR5cGUuYCxcbiAgICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICAgIHRocm93IGV4Y2VwdGlvbjtcbiAgICAgIH1cblxuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4uY2FsbGVkIHRoZSAnJHtwcm9jZWR1cmVTdHJpbmd9JyBwcm9jZWR1cmUuYCk7XG5cbiAgICAgIGNvbnRpbnVhdGlvbih2YWx1ZSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGNhbGxOb21pbmFsbHkgPSB1bmJyZWFrYWJsZShmdW5jdGlvbiAobm9taW5hbFZhbHVlcywgY29udGludWF0aW9uKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpLFxuICAgICAgICAgIHByb2NlZHVyZVN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7ICAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYENhbGxpbmcgdGhlICcke3Byb2NlZHVyZVN0cmluZ30nIGZ1bmN0aW9uIG5vbWluYWxseS4uLmApO1xuXG4gICAgY29uc3QgdmFsdWVzID0gdmFsdWVzRnJvbU5vbWluYWxWYWx1ZXMobm9taW5hbFZhbHVlcywgY29udGV4dCk7XG5cbiAgICB0aGlzLmNhbGwodmFsdWVzLCBjb250ZXh0LCAodmFsdWUpID0+IHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLmNhbGxlZCB0aGUgJyR7cHJvY2VkdXJlU3RyaW5nfScgZnVuY3Rpb24gbm9taW5hbGx5LmApO1xuXG4gICAgICBjb250aW51YXRpb24odmFsdWUpO1xuICAgIH0pO1xuICB9KTtcblxuICB0b0pTT04oKSB7XG4gICAgY29uc3QgdHlwZUpTT04gPSB0eXBlVG9UeXBlSlNPTih0aGlzLnR5cGUpLFxuICAgICAgICAgIGxhYmVsSlNPTiA9IGxhYmVsVG9MYWJlbEpTT04odGhpcy5sYWJlbCksXG4gICAgICAgICAgcGFyYW1ldGVyc0pTT04gPSBwYXJhbWV0ZXJzVG9QYXJhbWV0ZXJzSlNPTih0aGlzLnBhcmFtZXRlcnMpLFxuICAgICAgICAgIHN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7XG5cbiAgICBsZXQgYnJlYWtQb2ludDtcblxuICAgIGJyZWFrUG9pbnQgPSB0aGlzLmdldEJyZWFrUG9pbnQoKTtcblxuICAgIGNvbnN0IGJyZWFrUG9pbnRKU09OID0gYnJlYWtQb2ludFRvQnJlYWtQb2ludEpTT04oYnJlYWtQb2ludCk7XG5cbiAgICBicmVha1BvaW50ID0gYnJlYWtQb2ludEpTT047ICAvLy9cblxuICAgIGNvbnN0IHR5cGUgPSB0eXBlSlNPTiwgIC8vL1xuICAgICAgICAgIGxhYmVsID0gbGFiZWxKU09OLCAgLy8vXG4gICAgICAgICAgcGFyYW1ldGVycyA9IHBhcmFtZXRlcnNKU09OLCAgLy8vXG4gICAgICAgICAganNvbiA9IHtcbiAgICAgICAgICAgIHN0cmluZyxcbiAgICAgICAgICAgIGJyZWFrUG9pbnQsXG4gICAgICAgICAgICB0eXBlLFxuICAgICAgICAgICAgbGFiZWwsXG4gICAgICAgICAgICBwYXJhbWV0ZXJzXG4gICAgICAgICAgfTtcblxuICAgIHJldHVybiBqc29uO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIlByb2NlZHVyZVwiO1xuXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uLCBjb250ZXh0KSB7XG4gICAgY29uc3QgeyBzdHJpbmcgfSA9IGpzb24sXG4gICAgICAgICAgYnJlYWtQb2ludCA9IGJyZWFrUG9pbnRGcm9tSlNPTihqc29uKSxcbiAgICAgICAgICB0eXBlID0gdHlwZUZyb21KU09OKGpzb24sIGNvbnRleHQpLFxuICAgICAgICAgIGxhYmVsID0gbGFiZWxGcm9tSlNPTihqc29uLCBjb250ZXh0KSxcbiAgICAgICAgICBwYXJhbWV0ZXJzID0gcGFyYW1ldGVyc0Zyb21KU09OKGpzb24sIGNvbnRleHQpLFxuICAgICAgICAgIHByb2NlZHVyZU5vZGUgPSBjb250ZXh0LmZpbmRQcm9jZWR1cmVOb2RlKGxhYmVsKSxcbiAgICAgICAgICByZXR1cm5CbG9jayA9IG51bGwsIC8vL1xuICAgICAgICAgIG5vZGUgPSBwcm9jZWR1cmVOb2RlLCAvLy9cbiAgICAgICAgICBwcm9jZWR1cmUgPSBuZXcgUHJvY2VkdXJlKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgdHlwZSwgbGFiZWwsIHBhcmFtZXRlcnMsIHJldHVybkJsb2NrKTtcblxuICAgIHJldHVybiBwcm9jZWR1cmU7XG4gIH1cbn0pO1xuIl0sIm5hbWVzIjpbImJyZWFrYWJsZSIsInVuYnJlYWthYmxlIiwiY29udGludWF0aW9uVXRpbGl0aWVzIiwiYnJlYWtQb2ludEZyb21KU09OIiwiYnJlYWtQb2ludFRvQnJlYWtQb2ludEpTT04iLCJicmVha1BvaW50VXRpbGl0aWVzIiwiZGVmaW5lIiwiUHJvY2VkdXJlIiwiRWxlbWVudCIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiYnJlYWtQb2ludCIsInR5cGUiLCJsYWJlbCIsInBhcmFtZXRlcnMiLCJyZXR1cm5CbG9jayIsImdldFR5cGUiLCJnZXRMYWJlbCIsImdldFBhcmFtZXRlcnMiLCJnZXRSZXR1cm5CbG9jayIsImdldE5hbWUiLCJpc0Jvb2xlYW4iLCJib29sZWFuVHlwZSIsImlzQm9vbGVhblR5cGUiLCJib29sZWFuIiwiZ2V0UmV0dXJuU3RhdGVtZW50IiwiY29tcGFyZVByb2NlZHVyZU5hbWUiLCJwcm9jZWR1cmVOYW1lIiwiZ3VhcmFudGVlUmV0dXJuQmxvY2siLCJnZXROb2RlIiwiZ2V0Q29udGV4dCIsInByb2NlZHVyZU5vZGUiLCJyZXR1cm5CbG9ja0Zyb21Qcm9jZWR1cmVOb2RlIiwidmVyaWZ5IiwidmVyaWZpZXMiLCJwcm9jZWR1cmVTdHJpbmciLCJnZXRTdHJpbmciLCJ0cmFjZSIsInByb2NlZHVyZSIsImFkZFByb2NlZHVyZSIsImRlYnVnIiwiY2FsbCIsInZhbHVlcyIsImNvbnRpbnVhdGlvbiIsImNvbXBhcmVWYWx1ZXMiLCJ2YXJpYWJsZXMiLCJ2YXJpYWJsZXNGcm9tVmFsdWVzQW5kUGFyYW1ldGVycyIsImV2YWx1YXRlIiwidmFsdWUiLCJ2YWx1ZVR5cGUiLCJ0eXBlRXF1YWxUb1ZhbHVlVHlwZSIsImlzRXF1YWxUbyIsInZhbHVlU3RyaW5nIiwidHlwZVN0cmluZyIsIm1lc3NhZ2UiLCJleGNlcHRpb24iLCJFeGNlcHRpb24iLCJmcm9tTWVzc2FnZSIsImNhbGxOb21pbmFsbHkiLCJub21pbmFsVmFsdWVzIiwidmFsdWVzRnJvbU5vbWluYWxWYWx1ZXMiLCJ0b0pTT04iLCJ0eXBlSlNPTiIsInR5cGVUb1R5cGVKU09OIiwibGFiZWxKU09OIiwibGFiZWxUb0xhYmVsSlNPTiIsInBhcmFtZXRlcnNKU09OIiwicGFyYW1ldGVyc1RvUGFyYW1ldGVyc0pTT04iLCJnZXRCcmVha1BvaW50IiwiYnJlYWtQb2ludEpTT04iLCJqc29uIiwibmFtZSIsImZyb21KU09OIiwidHlwZUZyb21KU09OIiwibGFiZWxGcm9tSlNPTiIsInBhcmFtZXRlcnNGcm9tSlNPTiIsImZpbmRQcm9jZWR1cmVOb2RlIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFlQTs7O2VBQUE7OztnQ0Fib0U7a0VBRTlDOzBCQUVDO3dCQUNpQjt5QkFDSzs0QkFDSTtzQkFDNkU7Ozs7OztBQUU5SCxNQUFNLEVBQUVBLFNBQVMsRUFBRUMsV0FBVyxFQUFFLEdBQUdDLHFDQUFxQixFQUNsRCxFQUFFQyxrQkFBa0IsRUFBRUMsMEJBQTBCLEVBQUUsR0FBR0MsbUNBQW1CO01BRTlFLFdBQWVDLElBQUFBLGdCQUFNLEVBQUMsTUFBTUMsa0JBQWtCQyx1QkFBTztJQUNuRCxZQUFZQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxVQUFVLEVBQUVDLElBQUksRUFBRUMsS0FBSyxFQUFFQyxVQUFVLEVBQUVDLFdBQVcsQ0FBRTtRQUNuRixLQUFLLENBQUNQLFNBQVNDLFFBQVFDLE1BQU1DO1FBRTdCLElBQUksQ0FBQ0MsSUFBSSxHQUFHQTtRQUNaLElBQUksQ0FBQ0MsS0FBSyxHQUFHQTtRQUNiLElBQUksQ0FBQ0MsVUFBVSxHQUFHQTtRQUNsQixJQUFJLENBQUNDLFdBQVcsR0FBR0E7SUFDckI7SUFFQUMsVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDSixJQUFJO0lBQ2xCO0lBRUFLLFdBQVc7UUFDVCxPQUFPLElBQUksQ0FBQ0osS0FBSztJQUNuQjtJQUVBSyxnQkFBZ0I7UUFDZCxPQUFPLElBQUksQ0FBQ0osVUFBVTtJQUN4QjtJQUVBSyxpQkFBaUI7UUFDZixPQUFPLElBQUksQ0FBQ0osV0FBVztJQUN6QjtJQUVBSyxVQUFVO1FBQUUsT0FBTyxJQUFJLENBQUNQLEtBQUssQ0FBQ08sT0FBTztJQUFJO0lBRXpDQyxZQUFZO1FBQ1YsTUFBTVQsT0FBTyxJQUFJLENBQUNJLE9BQU8sSUFDbkJNLGNBQWNWLEtBQUtXLGFBQWEsSUFDaENDLFVBQVVGLGFBQWMsR0FBRztRQUVqQyxPQUFPRTtJQUNUO0lBRUFDLHFCQUFx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
@@ -17,6 +17,7 @@ function _interop_require_default(obj) {
17
17
  default: obj
18
18
  };
19
19
  }
20
+ const { breakable } = _occamlanguages.continuationUtilities;
20
21
  const _default = (0, _elements.define)(class ProcedureCall extends _occamlanguages.Element {
21
22
  constructor(context, string, node, breakPoint, reference, values){
22
23
  super(context, string, node, breakPoint);
@@ -32,8 +33,7 @@ const _default = (0, _elements.define)(class ProcedureCall extends _occamlanguag
32
33
  getProcedureName() {
33
34
  return this.reference.getProcedureName();
34
35
  }
35
- async evaluate(context) {
36
- await this.break(context);
36
+ evaluate = breakable(function(context, continuation) {
37
37
  const procedureCallString = this.getString(); ///
38
38
  context.trace(`Evaluating the '${procedureCallString}' function call...`);
39
39
  const procedureName = this.getProcedureName(), procedurePresent = context.isProcedurePresentByProcedureName(procedureName);
@@ -41,16 +41,16 @@ const _default = (0, _elements.define)(class ProcedureCall extends _occamlanguag
41
41
  const message = `The '${procedureCallString}' function is not present.'`, exception = _exception.default.fromMessage(message);
42
42
  throw exception;
43
43
  }
44
- let value;
45
44
  const procedure = context.findProcedureByProcedureName(procedureName), values = this.values.evaluate(context);
46
- await (0, _context.free)(async (context)=>{
47
- value = await procedure.call(values, context);
45
+ (0, _context.free)((context)=>{
46
+ procedure.call(values, context, (value)=>{
47
+ const valueString = value.getString();
48
+ context.debug(`...evaluated the '${procedureCallString}' function call as '${valueString}'.`);
49
+ continuation(value);
50
+ });
48
51
  }, context);
49
- const valueString = value.getString();
50
- context.debug(`...evaluated the '${procedureCallString}' function call as '${valueString}'.`);
51
- return value;
52
- }
52
+ });
53
53
  static name = "ProcedureCall";
54
54
  });
55
55
 
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3Byb2NlZHVyZUNhbGwuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IEVsZW1lbnQgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCBFeGNlcHRpb24gZnJvbSBcIi4uL2V4Y2VwdGlvblwiO1xuXG5pbXBvcnQgeyBmcmVlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9jb250ZXh0XCI7XG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vZWxlbWVudHNcIjtcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIFByb2NlZHVyZUNhbGwgZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCByZWZlcmVuY2UsIHZhbHVlcykge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLnJlZmVyZW5jZSA9IHJlZmVyZW5jZTtcbiAgICB0aGlzLnZhbHVlcyA9IHZhbHVlcztcbiAgfVxuXG4gIGdldFJlZmVyZW5jZSgpIHtcbiAgICByZXR1cm4gdGhpcy5yZWZlcmVuY2U7XG4gIH1cblxuICBnZXRWYWx1ZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWVzO1xuICB9XG5cbiAgZ2V0UHJvY2VkdXJlTmFtZSgpIHsgcmV0dXJuIHRoaXMucmVmZXJlbmNlLmdldFByb2NlZHVyZU5hbWUoKTsgfVxuXG4gIGFzeW5jIGV2YWx1YXRlKGNvbnRleHQpIHtcbiAgICBhd2FpdCB0aGlzLmJyZWFrKGNvbnRleHQpO1xuXG4gICAgY29uc3QgcHJvY2VkdXJlQ2FsbFN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7ICAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYEV2YWx1YXRpbmcgdGhlICcke3Byb2NlZHVyZUNhbGxTdHJpbmd9JyBmdW5jdGlvbiBjYWxsLi4uYCk7XG5cbiAgICBjb25zdCBwcm9jZWR1cmVOYW1lID0gdGhpcy5nZXRQcm9jZWR1cmVOYW1lKCksXG4gICAgICAgICAgcHJvY2VkdXJlUHJlc2VudCA9IGNvbnRleHQuaXNQcm9jZWR1cmVQcmVzZW50QnlQcm9jZWR1cmVOYW1lKHByb2NlZHVyZU5hbWUpO1xuXG4gICAgaWYgKCFwcm9jZWR1cmVQcmVzZW50KSB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gYFRoZSAnJHtwcm9jZWR1cmVDYWxsU3RyaW5nfScgZnVuY3Rpb24gaXMgbm90IHByZXNlbnQuJ2AsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHRocm93IGV4Y2VwdGlvbjtcbiAgICB9XG5cbiAgICBsZXQgdmFsdWU7XG5cbiAgICBjb25zdCBwcm9jZWR1cmUgPSBjb250ZXh0LmZpbmRQcm9jZWR1cmVCeVByb2NlZHVyZU5hbWUocHJvY2VkdXJlTmFtZSksXG4gICAgICAgICAgdmFsdWVzID0gdGhpcy52YWx1ZXMuZXZhbHVhdGUoY29udGV4dCk7XG5cbiAgICBhd2FpdCBmcmVlKGFzeW5jIChjb250ZXh0KSA9PiB7XG4gICAgICB2YWx1ZSA9IGF3YWl0IHByb2NlZHVyZS5jYWxsKHZhbHVlcywgY29udGV4dCk7XG4gICAgfSwgY29udGV4dCk7XG5cbiAgICBjb25zdCB2YWx1ZVN0cmluZyA9IHZhbHVlLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC5kZWJ1ZyhgLi4uZXZhbHVhdGVkIHRoZSAnJHtwcm9jZWR1cmVDYWxsU3RyaW5nfScgZnVuY3Rpb24gY2FsbCBhcyAnJHt2YWx1ZVN0cmluZ30nLmApO1xuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIlByb2NlZHVyZUNhbGxcIjtcbn0pO1xuIl0sIm5hbWVzIjpbImRlZmluZSIsIlByb2NlZHVyZUNhbGwiLCJFbGVtZW50IiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50IiwicmVmZXJlbmNlIiwidmFsdWVzIiwiZ2V0UmVmZXJlbmNlIiwiZ2V0VmFsdWVzIiwiZ2V0UHJvY2VkdXJlTmFtZSIsImV2YWx1YXRlIiwiYnJlYWsiLCJwcm9jZWR1cmVDYWxsU3RyaW5nIiwiZ2V0U3RyaW5nIiwidHJhY2UiLCJwcm9jZWR1cmVOYW1lIiwicHJvY2VkdXJlUHJlc2VudCIsImlzUHJvY2VkdXJlUHJlc2VudEJ5UHJvY2VkdXJlTmFtZSIsIm1lc3NhZ2UiLCJleGNlcHRpb24iLCJFeGNlcHRpb24iLCJmcm9tTWVzc2FnZSIsInZhbHVlIiwicHJvY2VkdXJlIiwiZmluZFByb2NlZHVyZUJ5UHJvY2VkdXJlTmFtZSIsImZyZWUiLCJjYWxsIiwidmFsdWVTdHJpbmciLCJkZWJ1ZyIsIm5hbWUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVNBOzs7ZUFBQTs7O2dDQVB3QjtrRUFFRjt5QkFFRDswQkFDRTs7Ozs7O01BRXZCLFdBQWVBLElBQUFBLGdCQUFNLEVBQUMsTUFBTUMsc0JBQXNCQyx1QkFBTztJQUN2RCxZQUFZQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxVQUFVLEVBQUVDLFNBQVMsRUFBRUMsTUFBTSxDQUFFO1FBQ2hFLEtBQUssQ0FBQ0wsU0FBU0MsUUFBUUMsTUFBTUM7UUFFN0IsSUFBSSxDQUFDQyxTQUFTLEdBQUdBO1FBQ2pCLElBQUksQ0FBQ0MsTUFBTSxHQUFHQTtJQUNoQjtJQUVBQyxlQUFlO1FBQ2IsT0FBTyxJQUFJLENBQUNGLFNBQVM7SUFDdkI7SUFFQUcsWUFBWTtRQUNWLE9BQU8sSUFBSSxDQUFDRixNQUFNO0lBQ3BCO0lBRUFHLG1CQUFtQjtRQUFFLE9BQU8sSUFBSSxDQUFDSixTQUFTLENBQUNJLGdCQUFnQjtJQUFJO0lBRS9ELE1BQU1DLFNBQVNULE9BQU8sRUFBRTtRQUN0QixNQUFNLElBQUksQ0FBQ1UsS0FBSyxDQUFDVjtRQUVqQixNQUFNVyxzQkFBc0IsSUFBSSxDQUFDQyxTQUFTLElBQUssR0FBRztRQUVsRFosUUFBUWEsS0FBSyxDQUFDLENBQUMsZ0JBQWdCLEVBQUVGLG9CQUFvQixrQkFBa0IsQ0FBQztRQUV4RSxNQUFNRyxnQkFBZ0IsSUFBSSxDQUFDTixnQkFBZ0IsSUFDckNPLG1CQUFtQmYsUUFBUWdCLGlDQUFpQyxDQUFDRjtRQUVuRSxJQUFJLENBQUNDLGtCQUFrQjtZQUNyQixNQUFNRSxVQUFVLENBQUMsS0FBSyxFQUFFTixvQkFBb0IsMkJBQTJCLENBQUMsRUFDbEVPLFlBQVlDLGtCQUFTLENBQUNDLFdBQVcsQ0FBQ0g7WUFFeEMsTUFBTUM7UUFDUjtRQUVBLElBQUlHO1FBRUosTUFBTUMsWUFBWXRCLFFBQVF1Qiw0QkFBNEIsQ0FBQ1QsZ0JBQ2pEVCxTQUFTLElBQUksQ0FBQ0EsTUFBTSxDQUFDSSxRQUFRLENBQUNUO1FBRXBDLE1BQU13QixJQUFBQSxhQUFJLEVBQUMsT0FBT3hCO1lBQ2hCcUIsUUFBUSxNQUFNQyxVQUFVRyxJQUFJLENBQUNwQixRQUFRTDtRQUN2QyxHQUFHQTtRQUVILE1BQU0wQixjQUFjTCxNQUFNVCxTQUFTO1FBRW5DWixRQUFRMkIsS0FBSyxDQUFDLENBQUMsa0JBQWtCLEVBQUVoQixvQkFBb0Isb0JBQW9CLEVBQUVlLFlBQVksRUFBRSxDQUFDO1FBRTVGLE9BQU9MO0lBQ1Q7SUFFQSxPQUFPTyxPQUFPLGdCQUFnQjtBQUNoQyJ9
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3Byb2NlZHVyZUNhbGwuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IEVsZW1lbnQsIGNvbnRpbnVhdGlvblV0aWxpdGllcyB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcblxuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tIFwiLi4vZXhjZXB0aW9uXCI7XG5cbmltcG9ydCB7IGZyZWUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2NvbnRleHRcIjtcbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi9lbGVtZW50c1wiO1xuXG5jb25zdCB7IGJyZWFrYWJsZSB9ID0gY29udGludWF0aW9uVXRpbGl0aWVzO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgUHJvY2VkdXJlQ2FsbCBleHRlbmRzIEVsZW1lbnQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHJlZmVyZW5jZSwgdmFsdWVzKSB7XG4gICAgc3VwZXIoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50KTtcblxuICAgIHRoaXMucmVmZXJlbmNlID0gcmVmZXJlbmNlO1xuICAgIHRoaXMudmFsdWVzID0gdmFsdWVzO1xuICB9XG5cbiAgZ2V0UmVmZXJlbmNlKCkge1xuICAgIHJldHVybiB0aGlzLnJlZmVyZW5jZTtcbiAgfVxuXG4gIGdldFZhbHVlcygpIHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZXM7XG4gIH1cblxuICBnZXRQcm9jZWR1cmVOYW1lKCkgeyByZXR1cm4gdGhpcy5yZWZlcmVuY2UuZ2V0UHJvY2VkdXJlTmFtZSgpOyB9XG5cbiAgZXZhbHVhdGUgPSBicmVha2FibGUoZnVuY3Rpb24gKGNvbnRleHQsIGNvbnRpbnVhdGlvbikge1xuICAgIGNvbnN0IHByb2NlZHVyZUNhbGxTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSAnJHtwcm9jZWR1cmVDYWxsU3RyaW5nfScgZnVuY3Rpb24gY2FsbC4uLmApO1xuXG4gICAgY29uc3QgcHJvY2VkdXJlTmFtZSA9IHRoaXMuZ2V0UHJvY2VkdXJlTmFtZSgpLFxuICAgICAgICAgIHByb2NlZHVyZVByZXNlbnQgPSBjb250ZXh0LmlzUHJvY2VkdXJlUHJlc2VudEJ5UHJvY2VkdXJlTmFtZShwcm9jZWR1cmVOYW1lKTtcblxuICAgIGlmICghcHJvY2VkdXJlUHJlc2VudCkge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IGBUaGUgJyR7cHJvY2VkdXJlQ2FsbFN0cmluZ30nIGZ1bmN0aW9uIGlzIG5vdCBwcmVzZW50LidgLFxuICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICB0aHJvdyBleGNlcHRpb247XG4gICAgfVxuXG4gICAgY29uc3QgcHJvY2VkdXJlID0gY29udGV4dC5maW5kUHJvY2VkdXJlQnlQcm9jZWR1cmVOYW1lKHByb2NlZHVyZU5hbWUpLFxuICAgICAgICAgIHZhbHVlcyA9IHRoaXMudmFsdWVzLmV2YWx1YXRlKGNvbnRleHQpO1xuXG4gICAgZnJlZSgoY29udGV4dCkgPT4ge1xuICAgICAgcHJvY2VkdXJlLmNhbGwodmFsdWVzLCBjb250ZXh0LCAodmFsdWUpID0+IHtcbiAgICAgICAgY29uc3QgdmFsdWVTdHJpbmcgPSB2YWx1ZS5nZXRTdHJpbmcoKTtcblxuICAgICAgICBjb250ZXh0LmRlYnVnKGAuLi5ldmFsdWF0ZWQgdGhlICcke3Byb2NlZHVyZUNhbGxTdHJpbmd9JyBmdW5jdGlvbiBjYWxsIGFzICcke3ZhbHVlU3RyaW5nfScuYCk7XG5cbiAgICAgICAgY29udGludWF0aW9uKHZhbHVlKTtcbiAgICAgIH0pO1xuICAgIH0sIGNvbnRleHQpO1xuICB9KTtcblxuICBzdGF0aWMgbmFtZSA9IFwiUHJvY2VkdXJlQ2FsbFwiO1xufSk7XG4iXSwibmFtZXMiOlsiYnJlYWthYmxlIiwiY29udGludWF0aW9uVXRpbGl0aWVzIiwiZGVmaW5lIiwiUHJvY2VkdXJlQ2FsbCIsIkVsZW1lbnQiLCJjb250ZXh0Iiwic3RyaW5nIiwibm9kZSIsImJyZWFrUG9pbnQiLCJyZWZlcmVuY2UiLCJ2YWx1ZXMiLCJnZXRSZWZlcmVuY2UiLCJnZXRWYWx1ZXMiLCJnZXRQcm9jZWR1cmVOYW1lIiwiZXZhbHVhdGUiLCJjb250aW51YXRpb24iLCJwcm9jZWR1cmVDYWxsU3RyaW5nIiwiZ2V0U3RyaW5nIiwidHJhY2UiLCJwcm9jZWR1cmVOYW1lIiwicHJvY2VkdXJlUHJlc2VudCIsImlzUHJvY2VkdXJlUHJlc2VudEJ5UHJvY2VkdXJlTmFtZSIsIm1lc3NhZ2UiLCJleGNlcHRpb24iLCJFeGNlcHRpb24iLCJmcm9tTWVzc2FnZSIsInByb2NlZHVyZSIsImZpbmRQcm9jZWR1cmVCeVByb2NlZHVyZU5hbWUiLCJmcmVlIiwiY2FsbCIsInZhbHVlIiwidmFsdWVTdHJpbmciLCJkZWJ1ZyIsIm5hbWUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVdBOzs7ZUFBQTs7O2dDQVQrQztrRUFFekI7eUJBRUQ7MEJBQ0U7Ozs7OztBQUV2QixNQUFNLEVBQUVBLFNBQVMsRUFBRSxHQUFHQyxxQ0FBcUI7TUFFM0MsV0FBZUMsSUFBQUEsZ0JBQU0sRUFBQyxNQUFNQyxzQkFBc0JDLHVCQUFPO0lBQ3ZELFlBQVlDLE9BQU8sRUFBRUMsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLFVBQVUsRUFBRUMsU0FBUyxFQUFFQyxNQUFNLENBQUU7UUFDaEUsS0FBSyxDQUFDTCxTQUFTQyxRQUFRQyxNQUFNQztRQUU3QixJQUFJLENBQUNDLFNBQVMsR0FBR0E7UUFDakIsSUFBSSxDQUFDQyxNQUFNLEdBQUdBO0lBQ2hCO0lBRUFDLGVBQWU7UUFDYixPQUFPLElBQUksQ0FBQ0YsU0FBUztJQUN2QjtJQUVBRyxZQUFZO1FBQ1YsT0FBTyxJQUFJLENBQUNGLE1BQU07SUFDcEI7SUFFQUcsbUJBQW1CO1FBQUUsT0FBTyxJQUFJLENBQUNKLFNBQVMsQ0FBQ0ksZ0JBQWdCO0lBQUk7SUFFL0RDLFdBQVdkLFVBQVUsU0FBVUssT0FBTyxFQUFFVSxZQUFZO1FBQ2xELE1BQU1DLHNCQUFzQixJQUFJLENBQUNDLFNBQVMsSUFBSyxHQUFHO1FBRWxEWixRQUFRYSxLQUFLLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRUYsb0JBQW9CLGtCQUFrQixDQUFDO1FBRXhFLE1BQU1HLGdCQUFnQixJQUFJLENBQUNOLGdCQUFnQixJQUNyQ08sbUJBQW1CZixRQUFRZ0IsaUNBQWlDLENBQUNGO1FBRW5FLElBQUksQ0FBQ0Msa0JBQWtCO1lBQ3JCLE1BQU1FLFVBQVUsQ0FBQyxLQUFLLEVBQUVOLG9CQUFvQiwyQkFBMkIsQ0FBQyxFQUNsRU8sWUFBWUMsa0JBQVMsQ0FBQ0MsV0FBVyxDQUFDSDtZQUV4QyxNQUFNQztRQUNSO1FBRUEsTUFBTUcsWUFBWXJCLFFBQVFzQiw0QkFBNEIsQ0FBQ1IsZ0JBQ2pEVCxTQUFTLElBQUksQ0FBQ0EsTUFBTSxDQUFDSSxRQUFRLENBQUNUO1FBRXBDdUIsSUFBQUEsYUFBSSxFQUFDLENBQUN2QjtZQUNKcUIsVUFBVUcsSUFBSSxDQUFDbkIsUUFBUUwsU0FBUyxDQUFDeUI7Z0JBQy9CLE1BQU1DLGNBQWNELE1BQU1iLFNBQVM7Z0JBRW5DWixRQUFRMkIsS0FBSyxDQUFDLENBQUMsa0JBQWtCLEVBQUVoQixvQkFBb0Isb0JBQW9CLEVBQUVlLFlBQVksRUFBRSxDQUFDO2dCQUU1RmhCLGFBQWFlO1lBQ2Y7UUFDRixHQUFHekI7SUFDTCxHQUFHO0lBRUgsT0FBTzRCLE9BQU8sZ0JBQWdCO0FBQ2hDIn0=
@@ -11,8 +11,8 @@ Object.defineProperty(exports, "default", {
11
11
  const _occamlanguages = require("occam-languages");
12
12
  const _elements = /*#__PURE__*/ _interop_require_wildcard(require("../elements"));
13
13
  const _exception = /*#__PURE__*/ _interop_require_default(require("../exception"));
14
- const _value = require("../utilities/value");
15
14
  const _typeNames = require("../typeNames");
15
+ const _value = require("../utilities/value");
16
16
  function _interop_require_default(obj) {
17
17
  return obj && obj.__esModule ? obj : {
18
18
  default: obj
@@ -59,7 +59,7 @@ function _interop_require_wildcard(obj, nodeInterop) {
59
59
  }
60
60
  return newObj;
61
61
  }
62
- const { asyncReduce } = _occamlanguages.asynchronousUtilities;
62
+ const { reduce, breakable } = _occamlanguages.continuationUtilities;
63
63
  const _default = (0, _elements.define)(class Reduce extends _occamlanguages.Element {
64
64
  constructor(context, string, node, breakPoint, variable, inivialValue, anonymousProcedure){
65
65
  super(context, string, node, breakPoint);
@@ -76,33 +76,30 @@ const _default = (0, _elements.define)(class Reduce extends _occamlanguages.Elem
76
76
  getAnonymousProcedure() {
77
77
  return this.anonymousProcedure;
78
78
  }
79
- async evaluate(context) {
80
- let value;
81
- await this.break(context);
79
+ evaluate = breakable(function(context, continuation) {
82
80
  const reduceString = this.getString();
83
81
  context.trace(`Evaluating the '${reduceString}' reduce...`);
84
- value = this.variable.evaluate(context);
85
- const valueType = value.getType(), valueTypeListType = valueType.isListType();
82
+ const value = this.variable.evaluate(context), valueType = value.getType(), valueTypeListType = valueType.isListType();
86
83
  if (!valueTypeListType) {
87
84
  const valueString = value.getString(), message = `The '${valueString}' value's '${valueType}' type should be '${_typeNames.LIST_TYPE_NAME}'.`, exception = _exception.default.fromMessage(message);
88
85
  throw exception;
89
86
  }
90
- const primitiveValue = value.getPrimitiveValue(), nominalValues = primitiveValue, inivialValue = await this.inivialValue.evaluate(context);
91
- value = await asyncReduce(nominalValues, async (currentValue, nominalValue)=>{
87
+ const primitiveValue = value.getPrimitiveValue(), nominalValues = primitiveValue, inivialValue = this.inivialValue.evaluate(context);
88
+ reduce(nominalValues, (currentValue, nominalValue, continuation)=>{
92
89
  let value;
93
90
  const { Values } = _elements.default;
94
91
  value = currentValue; ///
95
92
  const values = Values.fromValue(value, context);
96
93
  value = (0, _value.valueFromNominalValue)(nominalValue);
97
94
  values.addValue(value);
98
- value = await this.anonymousProcedure.call(values, context);
99
- return value;
100
- }, inivialValue);
101
- const valueString = value.getString();
102
- context.trace(`...evaluated the '${reduceString}' reduce as '${valueString}'.`);
103
- return value;
104
- }
95
+ this.anonymousProcedure.call(values, context, continuation);
96
+ }, inivialValue, (value)=>{
97
+ const valueString = value.getString();
98
+ context.trace(`...evaluated the '${reduceString}' reduce as '${valueString}'.`);
99
+ continuation(value);
100
+ });
101
+ });
105
102
  static name = "Reduce";
106
103
  });
107
104
 
108
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3JlZHVjZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgRWxlbWVudCwgYXN5bmNocm9ub3VzVXRpbGl0aWVzIH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgZWxlbWVudHMgZnJvbSBcIi4uL2VsZW1lbnRzXCI7XG5pbXBvcnQgRXhjZXB0aW9uIGZyb20gXCIuLi9leGNlcHRpb25cIjtcblxuaW1wb3J0IHsgZGVmaW5lIH0gZnJvbSBcIi4uL2VsZW1lbnRzXCI7XG5pbXBvcnQgeyB2YWx1ZUZyb21Ob21pbmFsVmFsdWUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3ZhbHVlXCI7XG5pbXBvcnQgeyBMSVNUX1RZUEVfTkFNRSB9IGZyb20gXCIuLi90eXBlTmFtZXNcIjtcblxuY29uc3QgeyBhc3luY1JlZHVjZSB9ID0gYXN5bmNocm9ub3VzVXRpbGl0aWVzO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgUmVkdWNlIGV4dGVuZHMgRWxlbWVudCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgdmFyaWFibGUsIGluaXZpYWxWYWx1ZSwgYW5vbnltb3VzUHJvY2VkdXJlKSB7XG4gICAgc3VwZXIoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50KTtcblxuICAgIHRoaXMudmFyaWFibGUgPSB2YXJpYWJsZTtcbiAgICB0aGlzLmluaXZpYWxWYWx1ZSA9IGluaXZpYWxWYWx1ZTtcbiAgICB0aGlzLmFub255bW91c1Byb2NlZHVyZSA9IGFub255bW91c1Byb2NlZHVyZTtcbiAgfVxuXG4gIGdldFZhcmlhYmxlKCkge1xuICAgIHJldHVybiB0aGlzLnZhcmlhYmxlO1xuICB9XG5cbiAgZ2V0SW5pdGlhbFZhbHVlKCkge1xuICAgIHJldHVybiB0aGlzLmluaXZpYWxWYWx1ZTtcbiAgfVxuXG4gIGdldEFub255bW91c1Byb2NlZHVyZSgpIHtcbiAgICByZXR1cm4gdGhpcy5hbm9ueW1vdXNQcm9jZWR1cmU7XG4gIH1cblxuICBhc3luYyBldmFsdWF0ZShjb250ZXh0KSB7XG4gICAgbGV0IHZhbHVlO1xuXG4gICAgYXdhaXQgdGhpcy5icmVhayhjb250ZXh0KTtcblxuICAgIGNvbnN0IHJlZHVjZVN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSAnJHtyZWR1Y2VTdHJpbmd9JyByZWR1Y2UuLi5gKTtcblxuICAgIHZhbHVlID0gdGhpcy52YXJpYWJsZS5ldmFsdWF0ZShjb250ZXh0KTtcblxuICAgIGNvbnN0IHZhbHVlVHlwZSA9IHZhbHVlLmdldFR5cGUoKSxcbiAgICAgICAgICB2YWx1ZVR5cGVMaXN0VHlwZSA9IHZhbHVlVHlwZS5pc0xpc3RUeXBlKCk7XG5cbiAgICBpZiAoIXZhbHVlVHlwZUxpc3RUeXBlKSB7XG4gICAgICBjb25zdCB2YWx1ZVN0cmluZyA9IHZhbHVlLmdldFN0cmluZygpLFxuICAgICAgICAgICAgbWVzc2FnZSA9IGBUaGUgJyR7dmFsdWVTdHJpbmd9JyB2YWx1ZSdzICcke3ZhbHVlVHlwZX0nIHR5cGUgc2hvdWxkIGJlICcke0xJU1RfVFlQRV9OQU1FfScuYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgdGhyb3cgZXhjZXB0aW9uO1xuICAgIH1cblxuICAgIGNvbnN0IHByaW1pdGl2ZVZhbHVlID0gdmFsdWUuZ2V0UHJpbWl0aXZlVmFsdWUoKSxcbiAgICAgICAgICBub21pbmFsVmFsdWVzID0gcHJpbWl0aXZlVmFsdWUsIC8vL1xuICAgICAgICAgIGluaXZpYWxWYWx1ZSA9IGF3YWl0IHRoaXMuaW5pdmlhbFZhbHVlLmV2YWx1YXRlKGNvbnRleHQpO1xuXG4gICAgdmFsdWUgPSBhd2FpdCBhc3luY1JlZHVjZShub21pbmFsVmFsdWVzLCBhc3luYyAoY3VycmVudFZhbHVlLCBub21pbmFsVmFsdWUpID0+IHtcbiAgICAgIGxldCB2YWx1ZTtcblxuICAgICAgY29uc3QgeyBWYWx1ZXMgfSA9IGVsZW1lbnRzO1xuXG4gICAgICB2YWx1ZSA9IGN1cnJlbnRWYWx1ZTsgLy8vXG5cbiAgICAgIGNvbnN0IHZhbHVlcyA9IFZhbHVlcy5mcm9tVmFsdWUodmFsdWUsIGNvbnRleHQpO1xuXG4gICAgICB2YWx1ZSA9IHZhbHVlRnJvbU5vbWluYWxWYWx1ZShub21pbmFsVmFsdWUpO1xuXG4gICAgICB2YWx1ZXMuYWRkVmFsdWUodmFsdWUpO1xuXG4gICAgICB2YWx1ZSA9IGF3YWl0IHRoaXMuYW5vbnltb3VzUHJvY2VkdXJlLmNhbGwodmFsdWVzLCBjb250ZXh0KTtcblxuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH0sIGluaXZpYWxWYWx1ZSk7XG5cbiAgICBjb25zdCB2YWx1ZVN0cmluZyA9IHZhbHVlLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC50cmFjZShgLi4uZXZhbHVhdGVkIHRoZSAnJHtyZWR1Y2VTdHJpbmd9JyByZWR1Y2UgYXMgJyR7dmFsdWVTdHJpbmd9Jy5gKTtcblxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIHN0YXRpYyBuYW1lID0gXCJSZWR1Y2VcIjtcbn0pO1xuIl0sIm5hbWVzIjpbImFzeW5jUmVkdWNlIiwiYXN5bmNocm9ub3VzVXRpbGl0aWVzIiwiZGVmaW5lIiwiUmVkdWNlIiwiRWxlbWVudCIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiYnJlYWtQb2ludCIsInZhcmlhYmxlIiwiaW5pdmlhbFZhbHVlIiwiYW5vbnltb3VzUHJvY2VkdXJlIiwiZ2V0VmFyaWFibGUiLCJnZXRJbml0aWFsVmFsdWUiLCJnZXRBbm9ueW1vdXNQcm9jZWR1cmUiLCJldmFsdWF0ZSIsInZhbHVlIiwiYnJlYWsiLCJyZWR1Y2VTdHJpbmciLCJnZXRTdHJpbmciLCJ0cmFjZSIsInZhbHVlVHlwZSIsImdldFR5cGUiLCJ2YWx1ZVR5cGVMaXN0VHlwZSIsImlzTGlzdFR5cGUiLCJ2YWx1ZVN0cmluZyIsIm1lc3NhZ2UiLCJMSVNUX1RZUEVfTkFNRSIsImV4Y2VwdGlvbiIsIkV4Y2VwdGlvbiIsImZyb21NZXNzYWdlIiwicHJpbWl0aXZlVmFsdWUiLCJnZXRQcmltaXRpdmVWYWx1ZSIsIm5vbWluYWxWYWx1ZXMiLCJjdXJyZW50VmFsdWUiLCJub21pbmFsVmFsdWUiLCJWYWx1ZXMiLCJlbGVtZW50cyIsInZhbHVlcyIsImZyb21WYWx1ZSIsInZhbHVlRnJvbU5vbWluYWxWYWx1ZSIsImFkZFZhbHVlIiwiY2FsbCIsIm5hbWUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQWFBOzs7ZUFBQTs7O2dDQVgrQztrRUFFMUI7a0VBQ0M7dUJBR2dCOzJCQUNQOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUUvQixNQUFNLEVBQUVBLFdBQVcsRUFBRSxHQUFHQyxxQ0FBcUI7TUFFN0MsV0FBZUMsSUFBQUEsZ0JBQU0sRUFBQyxNQUFNQyxlQUFlQyx1QkFBTztJQUNoRCxZQUFZQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxVQUFVLEVBQUVDLFFBQVEsRUFBRUMsWUFBWSxFQUFFQyxrQkFBa0IsQ0FBRTtRQUN6RixLQUFLLENBQUNOLFNBQVNDLFFBQVFDLE1BQU1DO1FBRTdCLElBQUksQ0FBQ0MsUUFBUSxHQUFHQTtRQUNoQixJQUFJLENBQUNDLFlBQVksR0FBR0E7UUFDcEIsSUFBSSxDQUFDQyxrQkFBa0IsR0FBR0E7SUFDNUI7SUFFQUMsY0FBYztRQUNaLE9BQU8sSUFBSSxDQUFDSCxRQUFRO0lBQ3RCO0lBRUFJLGtCQUFrQjtRQUNoQixPQUFPLElBQUksQ0FBQ0gsWUFBWTtJQUMxQjtJQUVBSSx3QkFBd0I7UUFDdEIsT0FBTyxJQUFJLENBQUNILGtCQUFrQjtJQUNoQztJQUVBLE1BQU1JLFNBQVNWLE9BQU8sRUFBRTtRQUN0QixJQUFJVztRQUVKLE1BQU0sSUFBSSxDQUFDQyxLQUFLLENBQUNaO1FBRWpCLE1BQU1hLGVBQWUsSUFBSSxDQUFDQyxTQUFTO1FBRW5DZCxRQUFRZSxLQUFLLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRUYsYUFBYSxXQUFXLENBQUM7UUFFMURGLFFBQVEsSUFBSSxDQUFDUCxRQUFRLENBQUNNLFFBQVEsQ0FBQ1Y7UUFFL0IsTUFBTWdCLFlBQVlMLE1BQU1NLE9BQU8sSUFDekJDLG9CQUFvQkYsVUFBVUcsVUFBVTtRQUU5QyxJQUFJLENBQUNELG1CQUFtQjtZQUN0QixNQUFNRSxjQUFjVCxNQUFNRyxTQUFTLElBQzdCTyxVQUFVLENBQUMsS0FBSyxFQUFFRCxZQUFZLFdBQVcsRUFBRUosVUFBVSxrQkFBa0IsRUFBRU0seUJBQWMsQ0FBQyxFQUFFLENBQUMsRUFDM0ZDLFlBQVlDLGtCQUFTLENBQUNDLFdBQVcsQ0FBQ0o7WUFFeEMsTUFBTUU7UUFDUjtRQUVBLE1BQU1HLGlCQUFpQmYsTUFBTWdCLGlCQUFpQixJQUN4Q0MsZ0JBQWdCRixnQkFDaEJyQixlQUFlLE1BQU0sSUFBSSxDQUFDQSxZQUFZLENBQUNLLFFBQVEsQ0FBQ1Y7UUFFdERXLFFBQVEsTUFBTWhCLFlBQVlpQyxlQUFlLE9BQU9DLGNBQWNDO1lBQzVELElBQUluQjtZQUVKLE1BQU0sRUFBRW9CLE1BQU0sRUFBRSxHQUFHQyxpQkFBUTtZQUUzQnJCLFFBQVFrQixjQUFjLEdBQUc7WUFFekIsTUFBTUksU0FBU0YsT0FBT0csU0FBUyxDQUFDdkIsT0FBT1g7WUFFdkNXLFFBQVF3QixJQUFBQSw0QkFBcUIsRUFBQ0w7WUFFOUJHLE9BQU9HLFFBQVEsQ0FBQ3pCO1lBRWhCQSxRQUFRLE1BQU0sSUFBSSxDQUFDTCxrQkFBa0IsQ0FBQytCLElBQUksQ0FBQ0osUUFBUWpDO1lBRW5ELE9BQU9XO1FBQ1QsR0FBR047UUFFSCxNQUFNZSxjQUFjVCxNQUFNRyxTQUFTO1FBRW5DZCxRQUFRZSxLQUFLLENBQUMsQ0FBQyxrQkFBa0IsRUFBRUYsYUFBYSxhQUFhLEVBQUVPLFlBQVksRUFBRSxDQUFDO1FBRTlFLE9BQU9UO0lBQ1Q7SUFFQSxPQUFPMkIsT0FBTyxTQUFTO0FBQ3pCIn0=
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3JlZHVjZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgRWxlbWVudCwgY29udGludWF0aW9uVXRpbGl0aWVzIH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgZWxlbWVudHMgZnJvbSBcIi4uL2VsZW1lbnRzXCI7XG5pbXBvcnQgRXhjZXB0aW9uIGZyb20gXCIuLi9leGNlcHRpb25cIjtcblxuaW1wb3J0IHsgZGVmaW5lIH0gZnJvbSBcIi4uL2VsZW1lbnRzXCI7XG5pbXBvcnQgeyBMSVNUX1RZUEVfTkFNRSB9IGZyb20gXCIuLi90eXBlTmFtZXNcIjtcbmltcG9ydCB7IHZhbHVlRnJvbU5vbWluYWxWYWx1ZSB9IGZyb20gXCIuLi91dGlsaXRpZXMvdmFsdWVcIjtcblxuY29uc3QgeyByZWR1Y2UsIGJyZWFrYWJsZSB9ID0gY29udGludWF0aW9uVXRpbGl0aWVzO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgUmVkdWNlIGV4dGVuZHMgRWxlbWVudCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgdmFyaWFibGUsIGluaXZpYWxWYWx1ZSwgYW5vbnltb3VzUHJvY2VkdXJlKSB7XG4gICAgc3VwZXIoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50KTtcblxuICAgIHRoaXMudmFyaWFibGUgPSB2YXJpYWJsZTtcbiAgICB0aGlzLmluaXZpYWxWYWx1ZSA9IGluaXZpYWxWYWx1ZTtcbiAgICB0aGlzLmFub255bW91c1Byb2NlZHVyZSA9IGFub255bW91c1Byb2NlZHVyZTtcbiAgfVxuXG4gIGdldFZhcmlhYmxlKCkge1xuICAgIHJldHVybiB0aGlzLnZhcmlhYmxlO1xuICB9XG5cbiAgZ2V0SW5pdGlhbFZhbHVlKCkge1xuICAgIHJldHVybiB0aGlzLmluaXZpYWxWYWx1ZTtcbiAgfVxuXG4gIGdldEFub255bW91c1Byb2NlZHVyZSgpIHtcbiAgICByZXR1cm4gdGhpcy5hbm9ueW1vdXNQcm9jZWR1cmU7XG4gIH1cblxuICBldmFsdWF0ZSA9IGJyZWFrYWJsZShmdW5jdGlvbiAoY29udGV4dCwgY29udGludWF0aW9uKSB7XG4gICAgY29uc3QgcmVkdWNlU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQudHJhY2UoYEV2YWx1YXRpbmcgdGhlICcke3JlZHVjZVN0cmluZ30nIHJlZHVjZS4uLmApO1xuXG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLnZhcmlhYmxlLmV2YWx1YXRlKGNvbnRleHQpLFxuICAgICAgICAgIHZhbHVlVHlwZSA9IHZhbHVlLmdldFR5cGUoKSxcbiAgICAgICAgICB2YWx1ZVR5cGVMaXN0VHlwZSA9IHZhbHVlVHlwZS5pc0xpc3RUeXBlKCk7XG5cbiAgICBpZiAoIXZhbHVlVHlwZUxpc3RUeXBlKSB7XG4gICAgICBjb25zdCB2YWx1ZVN0cmluZyA9IHZhbHVlLmdldFN0cmluZygpLFxuICAgICAgICAgICAgbWVzc2FnZSA9IGBUaGUgJyR7dmFsdWVTdHJpbmd9JyB2YWx1ZSdzICcke3ZhbHVlVHlwZX0nIHR5cGUgc2hvdWxkIGJlICcke0xJU1RfVFlQRV9OQU1FfScuYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgdGhyb3cgZXhjZXB0aW9uO1xuICAgIH1cblxuICAgIGNvbnN0IHByaW1pdGl2ZVZhbHVlID0gdmFsdWUuZ2V0UHJpbWl0aXZlVmFsdWUoKSxcbiAgICAgICAgICBub21pbmFsVmFsdWVzID0gcHJpbWl0aXZlVmFsdWUsIC8vL1xuICAgICAgICAgIGluaXZpYWxWYWx1ZSA9IHRoaXMuaW5pdmlhbFZhbHVlLmV2YWx1YXRlKGNvbnRleHQpO1xuXG4gICAgcmVkdWNlKG5vbWluYWxWYWx1ZXMsIChjdXJyZW50VmFsdWUsIG5vbWluYWxWYWx1ZSwgY29udGludWF0aW9uKSA9PiB7XG4gICAgICBsZXQgdmFsdWU7XG5cbiAgICAgIGNvbnN0IHsgVmFsdWVzIH0gPSBlbGVtZW50cztcblxuICAgICAgdmFsdWUgPSBjdXJyZW50VmFsdWU7IC8vL1xuXG4gICAgICBjb25zdCB2YWx1ZXMgPSBWYWx1ZXMuZnJvbVZhbHVlKHZhbHVlLCBjb250ZXh0KTtcblxuICAgICAgdmFsdWUgPSB2YWx1ZUZyb21Ob21pbmFsVmFsdWUobm9taW5hbFZhbHVlKTtcblxuICAgICAgdmFsdWVzLmFkZFZhbHVlKHZhbHVlKTtcblxuICAgICAgdGhpcy5hbm9ueW1vdXNQcm9jZWR1cmUuY2FsbCh2YWx1ZXMsIGNvbnRleHQsIGNvbnRpbnVhdGlvbik7XG4gICAgfSwgaW5pdmlhbFZhbHVlLCAodmFsdWUpID0+IHtcbiAgICAgIGNvbnN0IHZhbHVlU3RyaW5nID0gdmFsdWUuZ2V0U3RyaW5nKCk7XG5cbiAgICAgIGNvbnRleHQudHJhY2UoYC4uLmV2YWx1YXRlZCB0aGUgJyR7cmVkdWNlU3RyaW5nfScgcmVkdWNlIGFzICcke3ZhbHVlU3RyaW5nfScuYCk7XG5cbiAgICAgIGNvbnRpbnVhdGlvbih2YWx1ZSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIHN0YXRpYyBuYW1lID0gXCJSZWR1Y2VcIjtcbn0pO1xuIl0sIm5hbWVzIjpbInJlZHVjZSIsImJyZWFrYWJsZSIsImNvbnRpbnVhdGlvblV0aWxpdGllcyIsImRlZmluZSIsIlJlZHVjZSIsIkVsZW1lbnQiLCJjb250ZXh0Iiwic3RyaW5nIiwibm9kZSIsImJyZWFrUG9pbnQiLCJ2YXJpYWJsZSIsImluaXZpYWxWYWx1ZSIsImFub255bW91c1Byb2NlZHVyZSIsImdldFZhcmlhYmxlIiwiZ2V0SW5pdGlhbFZhbHVlIiwiZ2V0QW5vbnltb3VzUHJvY2VkdXJlIiwiZXZhbHVhdGUiLCJjb250aW51YXRpb24iLCJyZWR1Y2VTdHJpbmciLCJnZXRTdHJpbmciLCJ0cmFjZSIsInZhbHVlIiwidmFsdWVUeXBlIiwiZ2V0VHlwZSIsInZhbHVlVHlwZUxpc3RUeXBlIiwiaXNMaXN0VHlwZSIsInZhbHVlU3RyaW5nIiwibWVzc2FnZSIsIkxJU1RfVFlQRV9OQU1FIiwiZXhjZXB0aW9uIiwiRXhjZXB0aW9uIiwiZnJvbU1lc3NhZ2UiLCJwcmltaXRpdmVWYWx1ZSIsImdldFByaW1pdGl2ZVZhbHVlIiwibm9taW5hbFZhbHVlcyIsImN1cnJlbnRWYWx1ZSIsIm5vbWluYWxWYWx1ZSIsIlZhbHVlcyIsImVsZW1lbnRzIiwidmFsdWVzIiwiZnJvbVZhbHVlIiwidmFsdWVGcm9tTm9taW5hbFZhbHVlIiwiYWRkVmFsdWUiLCJjYWxsIiwibmFtZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBYUE7OztlQUFBOzs7Z0NBWCtDO2tFQUUxQjtrRUFDQzsyQkFHUzt1QkFDTzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFdEMsTUFBTSxFQUFFQSxNQUFNLEVBQUVDLFNBQVMsRUFBRSxHQUFHQyxxQ0FBcUI7TUFFbkQsV0FBZUMsSUFBQUEsZ0JBQU0sRUFBQyxNQUFNQyxlQUFlQyx1QkFBTztJQUNoRCxZQUFZQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxVQUFVLEVBQUVDLFFBQVEsRUFBRUMsWUFBWSxFQUFFQyxrQkFBa0IsQ0FBRTtRQUN6RixLQUFLLENBQUNOLFNBQVNDLFFBQVFDLE1BQU1DO1FBRTdCLElBQUksQ0FBQ0MsUUFBUSxHQUFHQTtRQUNoQixJQUFJLENBQUNDLFlBQVksR0FBR0E7UUFDcEIsSUFBSSxDQUFDQyxrQkFBa0IsR0FBR0E7SUFDNUI7SUFFQUMsY0FBYztRQUNaLE9BQU8sSUFBSSxDQUFDSCxRQUFRO0lBQ3RCO0lBRUFJLGtCQUFrQjtRQUNoQixPQUFPLElBQUksQ0FBQ0gsWUFBWTtJQUMxQjtJQUVBSSx3QkFBd0I7UUFDdEIsT0FBTyxJQUFJLENBQUNILGtCQUFrQjtJQUNoQztJQUVBSSxXQUFXZixVQUFVLFNBQVVLLE9BQU8sRUFBRVcsWUFBWTtRQUNsRCxNQUFNQyxlQUFlLElBQUksQ0FBQ0MsU0FBUztRQUVuQ2IsUUFBUWMsS0FBSyxDQUFDLENBQUMsZ0JBQWdCLEVBQUVGLGFBQWEsV0FBVyxDQUFDO1FBRTFELE1BQU1HLFFBQVEsSUFBSSxDQUFDWCxRQUFRLENBQUNNLFFBQVEsQ0FBQ1YsVUFDL0JnQixZQUFZRCxNQUFNRSxPQUFPLElBQ3pCQyxvQkFBb0JGLFVBQVVHLFVBQVU7UUFFOUMsSUFBSSxDQUFDRCxtQkFBbUI7WUFDdEIsTUFBTUUsY0FBY0wsTUFBTUYsU0FBUyxJQUM3QlEsVUFBVSxDQUFDLEtBQUssRUFBRUQsWUFBWSxXQUFXLEVBQUVKLFVBQVUsa0JBQWtCLEVBQUVNLHlCQUFjLENBQUMsRUFBRSxDQUFDLEVBQzNGQyxZQUFZQyxrQkFBUyxDQUFDQyxXQUFXLENBQUNKO1lBRXhDLE1BQU1FO1FBQ1I7UUFFQSxNQUFNRyxpQkFBaUJYLE1BQU1ZLGlCQUFpQixJQUN4Q0MsZ0JBQWdCRixnQkFDaEJyQixlQUFlLElBQUksQ0FBQ0EsWUFBWSxDQUFDSyxRQUFRLENBQUNWO1FBRWhETixPQUFPa0MsZUFBZSxDQUFDQyxjQUFjQyxjQUFjbkI7WUFDakQsSUFBSUk7WUFFSixNQUFNLEVBQUVnQixNQUFNLEVBQUUsR0FBR0MsaUJBQVE7WUFFM0JqQixRQUFRYyxjQUFjLEdBQUc7WUFFekIsTUFBTUksU0FBU0YsT0FBT0csU0FBUyxDQUFDbkIsT0FBT2Y7WUFFdkNlLFFBQVFvQixJQUFBQSw0QkFBcUIsRUFBQ0w7WUFFOUJHLE9BQU9HLFFBQVEsQ0FBQ3JCO1lBRWhCLElBQUksQ0FBQ1Qsa0JBQWtCLENBQUMrQixJQUFJLENBQUNKLFFBQVFqQyxTQUFTVztRQUNoRCxHQUFHTixjQUFjLENBQUNVO1lBQ2hCLE1BQU1LLGNBQWNMLE1BQU1GLFNBQVM7WUFFbkNiLFFBQVFjLEtBQUssQ0FBQyxDQUFDLGtCQUFrQixFQUFFRixhQUFhLGFBQWEsRUFBRVEsWUFBWSxFQUFFLENBQUM7WUFFOUVULGFBQWFJO1FBQ2Y7SUFDRixHQUFHO0lBRUgsT0FBT3VCLE9BQU8sU0FBUztBQUN6QiJ9
@@ -17,7 +17,7 @@ function _interop_require_default(obj) {
17
17
  default: obj
18
18
  };
19
19
  }
20
- const { asyncForEach } = _occamlanguages.asynchronousUtilities;
20
+ const { forEach, unbreakable } = _occamlanguages.continuationUtilities;
21
21
  const _default = (0, _elements.define)(class ReturnBlock extends _occamlanguages.Element {
22
22
  constructor(context, string, node, breakPoint, statements, nonsensical, returnStatement){
23
23
  super(context, string, node, breakPoint);
@@ -34,29 +34,32 @@ const _default = (0, _elements.define)(class ReturnBlock extends _occamlanguages
34
34
  getReturnStatement() {
35
35
  return this.returnStatement;
36
36
  }
37
- async evaluate(variables, context) {
38
- if (context === undefined) {
39
- context = variables; ///
40
- variables = [];
41
- }
37
+ evaluate = unbreakable(function(variables, context, continuation) {
42
38
  const returnBlockString = this.getString(); ///
43
39
  context.trace(`Evaluating the '${returnBlockString}' return block...`);
44
40
  if (this.nonsensical) {
45
41
  const message = `The return block is nonsensical.`, exception = _exception.default.fromMessage(message);
46
42
  throw exception;
47
43
  }
48
- let value;
49
- await (0, _context.confine)(async (context)=>{
50
- await asyncForEach(this.statements, async (statement)=>{
51
- await statement.evaluate(context);
44
+ (0, _context.confine)((context)=>{
45
+ this.evaluateStatements(context, ()=>{
46
+ const value = this.returnStatement.evaluate(context), valueString = value.getString();
47
+ context.debug(`...evaluated the '${returnBlockString}' return block as '${valueString}'.`);
48
+ continuation(value);
52
49
  });
53
- value = this.returnStatement.evaluate(context);
54
50
  }, variables, context);
55
- const valueString = value.getString();
56
- context.debug(`Evaluated the '${returnBlockString}' return block as '${valueString}'.`);
57
- return value;
58
- }
51
+ });
52
+ evaluateStatements = unbreakable(function(context, continuation) {
53
+ const returnBlockString = this.getString(); ///
54
+ context.trace(`Evaluating the '${returnBlockString}' return block's statements...`);
55
+ forEach(this.statements, (statement, continuation)=>{
56
+ statement.evaluate(context, continuation);
57
+ }, ()=>{
58
+ context.debug(`...evaluated the '${returnBlockString}' return block's statements.`);
59
+ continuation();
60
+ });
61
+ });
59
62
  static name = "ReturnBlock";
60
63
  });
61
64
 
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3JldHVybkJsb2NrLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFbGVtZW50LCBhc3luY2hyb25vdXNVdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCBFeGNlcHRpb24gZnJvbSBcIi4uL2V4Y2VwdGlvblwiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vZWxlbWVudHNcIjtcbmltcG9ydCB7IGNvbmZpbmUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2NvbnRleHRcIjtcblxuY29uc3QgeyBhc3luY0ZvckVhY2ggfSA9IGFzeW5jaHJvbm91c1V0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIFJldHVybkJsb2NrIGV4dGVuZHMgRWxlbWVudCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgc3RhdGVtZW50cywgbm9uc2Vuc2ljYWwsIHJldHVyblN0YXRlbWVudCkge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLnN0YXRlbWVudHMgPSBzdGF0ZW1lbnRzO1xuICAgIHRoaXMubm9uc2Vuc2ljYWwgPSBub25zZW5zaWNhbDtcbiAgICB0aGlzLnJldHVyblN0YXRlbWVudCA9IHJldHVyblN0YXRlbWVudDtcbiAgfVxuXG4gIGdldFN0YXRlbWVudHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGVtZW50cztcbiAgfVxuXG4gIGlzTm9uc2Vuc2ljYWwoKSB7XG4gICAgcmV0dXJuIHRoaXMubm9uc2Vuc2ljYWw7XG4gIH1cblxuICBnZXRSZXR1cm5TdGF0ZW1lbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMucmV0dXJuU3RhdGVtZW50O1xuICB9XG5cbiAgYXN5bmMgZXZhbHVhdGUodmFyaWFibGVzLCBjb250ZXh0KSB7XG4gICAgaWYgKGNvbnRleHQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgY29udGV4dCA9IHZhcmlhYmxlczsgIC8vL1xuXG4gICAgICB2YXJpYWJsZXMgPSBbXTtcbiAgICB9XG5cbiAgICBjb25zdCByZXR1cm5CbG9ja1N0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7IC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgRXZhbHVhdGluZyB0aGUgJyR7cmV0dXJuQmxvY2tTdHJpbmd9JyByZXR1cm4gYmxvY2suLi5gKTtcblxuICAgIGlmICh0aGlzLm5vbnNlbnNpY2FsKSB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gYFRoZSByZXR1cm4gYmxvY2sgaXMgbm9uc2Vuc2ljYWwuYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgdGhyb3cgZXhjZXB0aW9uO1xuICAgIH1cblxuICAgIGxldCB2YWx1ZTtcblxuICAgIGF3YWl0IGNvbmZpbmUoYXN5bmMgKGNvbnRleHQpID0+IHtcbiAgICAgIGF3YWl0IGFzeW5jRm9yRWFjaCh0aGlzLnN0YXRlbWVudHMsIGFzeW5jIChzdGF0ZW1lbnQpID0+IHtcbiAgICAgICAgYXdhaXQgc3RhdGVtZW50LmV2YWx1YXRlKGNvbnRleHQpO1xuICAgICAgfSk7XG5cbiAgICAgIHZhbHVlID0gdGhpcy5yZXR1cm5TdGF0ZW1lbnQuZXZhbHVhdGUoY29udGV4dCk7XG4gICAgfSwgdmFyaWFibGVzLCBjb250ZXh0KTtcblxuICAgIGNvbnN0IHZhbHVlU3RyaW5nID0gdmFsdWUuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LmRlYnVnKGBFdmFsdWF0ZWQgdGhlICcke3JldHVybkJsb2NrU3RyaW5nfScgcmV0dXJuIGJsb2NrIGFzICcke3ZhbHVlU3RyaW5nfScuYCk7XG5cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiUmV0dXJuQmxvY2tcIjtcbn0pO1xuIl0sIm5hbWVzIjpbImFzeW5jRm9yRWFjaCIsImFzeW5jaHJvbm91c1V0aWxpdGllcyIsImRlZmluZSIsIlJldHVybkJsb2NrIiwiRWxlbWVudCIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiYnJlYWtQb2ludCIsInN0YXRlbWVudHMiLCJub25zZW5zaWNhbCIsInJldHVyblN0YXRlbWVudCIsImdldFN0YXRlbWVudHMiLCJpc05vbnNlbnNpY2FsIiwiZ2V0UmV0dXJuU3RhdGVtZW50IiwiZXZhbHVhdGUiLCJ2YXJpYWJsZXMiLCJ1bmRlZmluZWQiLCJyZXR1cm5CbG9ja1N0cmluZyIsImdldFN0cmluZyIsInRyYWNlIiwibWVzc2FnZSIsImV4Y2VwdGlvbiIsIkV4Y2VwdGlvbiIsImZyb21NZXNzYWdlIiwidmFsdWUiLCJjb25maW5lIiwic3RhdGVtZW50IiwidmFsdWVTdHJpbmciLCJkZWJ1ZyIsIm5hbWUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVdBOzs7ZUFBQTs7O2dDQVQrQztrRUFFekI7MEJBRUM7eUJBQ0M7Ozs7OztBQUV4QixNQUFNLEVBQUVBLFlBQVksRUFBRSxHQUFHQyxxQ0FBcUI7TUFFOUMsV0FBZUMsSUFBQUEsZ0JBQU0sRUFBQyxNQUFNQyxvQkFBb0JDLHVCQUFPO0lBQ3JELFlBQVlDLE9BQU8sRUFBRUMsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLFVBQVUsRUFBRUMsVUFBVSxFQUFFQyxXQUFXLEVBQUVDLGVBQWUsQ0FBRTtRQUN2RixLQUFLLENBQUNOLFNBQVNDLFFBQVFDLE1BQU1DO1FBRTdCLElBQUksQ0FBQ0MsVUFBVSxHQUFHQTtRQUNsQixJQUFJLENBQUNDLFdBQVcsR0FBR0E7UUFDbkIsSUFBSSxDQUFDQyxlQUFlLEdBQUdBO0lBQ3pCO0lBRUFDLGdCQUFnQjtRQUNkLE9BQU8sSUFBSSxDQUFDSCxVQUFVO0lBQ3hCO0lBRUFJLGdCQUFnQjtRQUNkLE9BQU8sSUFBSSxDQUFDSCxXQUFXO0lBQ3pCO0lBRUFJLHFCQUFxQjtRQUNuQixPQUFPLElBQUksQ0FBQ0gsZUFBZTtJQUM3QjtJQUVBLE1BQU1JLFNBQVNDLFNBQVMsRUFBRVgsT0FBTyxFQUFFO1FBQ2pDLElBQUlBLFlBQVlZLFdBQVc7WUFDekJaLFVBQVVXLFdBQVksR0FBRztZQUV6QkEsWUFBWSxFQUFFO1FBQ2hCO1FBRUEsTUFBTUUsb0JBQW9CLElBQUksQ0FBQ0MsU0FBUyxJQUFJLEdBQUc7UUFFL0NkLFFBQVFlLEtBQUssQ0FBQyxDQUFDLGdCQUFnQixFQUFFRixrQkFBa0IsaUJBQWlCLENBQUM7UUFFckUsSUFBSSxJQUFJLENBQUNSLFdBQVcsRUFBRTtZQUNwQixNQUFNVyxVQUFVLENBQUMsZ0NBQWdDLENBQUMsRUFDNUNDLFlBQVlDLGtCQUFTLENBQUNDLFdBQVcsQ0FBQ0g7WUFFeEMsTUFBTUM7UUFDUjtRQUVBLElBQUlHO1FBRUosTUFBTUMsSUFBQUEsZ0JBQU8sRUFBQyxPQUFPckI7WUFDbkIsTUFBTUwsYUFBYSxJQUFJLENBQUNTLFVBQVUsRUFBRSxPQUFPa0I7Z0JBQ3pDLE1BQU1BLFVBQVVaLFFBQVEsQ0FBQ1Y7WUFDM0I7WUFFQW9CLFFBQVEsSUFBSSxDQUFDZCxlQUFlLENBQUNJLFFBQVEsQ0FBQ1Y7UUFDeEMsR0FBR1csV0FBV1g7UUFFZCxNQUFNdUIsY0FBY0gsTUFBTU4sU0FBUztRQUVuQ2QsUUFBUXdCLEtBQUssQ0FBQyxDQUFDLGVBQWUsRUFBRVgsa0JBQWtCLG1CQUFtQixFQUFFVSxZQUFZLEVBQUUsQ0FBQztRQUV0RixPQUFPSDtJQUNUO0lBRUEsT0FBT0ssT0FBTyxjQUFjO0FBQzlCIn0=
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3JldHVybkJsb2NrLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFbGVtZW50LCBjb250aW51YXRpb25VdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCBFeGNlcHRpb24gZnJvbSBcIi4uL2V4Y2VwdGlvblwiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vZWxlbWVudHNcIjtcbmltcG9ydCB7IGNvbmZpbmUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2NvbnRleHRcIjtcblxuY29uc3QgeyBmb3JFYWNoLCB1bmJyZWFrYWJsZSB9ID0gY29udGludWF0aW9uVXRpbGl0aWVzO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgUmV0dXJuQmxvY2sgZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCBzdGF0ZW1lbnRzLCBub25zZW5zaWNhbCwgcmV0dXJuU3RhdGVtZW50KSB7XG4gICAgc3VwZXIoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50KTtcblxuICAgIHRoaXMuc3RhdGVtZW50cyA9IHN0YXRlbWVudHM7XG4gICAgdGhpcy5ub25zZW5zaWNhbCA9IG5vbnNlbnNpY2FsO1xuICAgIHRoaXMucmV0dXJuU3RhdGVtZW50ID0gcmV0dXJuU3RhdGVtZW50O1xuICB9XG5cbiAgZ2V0U3RhdGVtZW50cygpIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZW1lbnRzO1xuICB9XG5cbiAgaXNOb25zZW5zaWNhbCgpIHtcbiAgICByZXR1cm4gdGhpcy5ub25zZW5zaWNhbDtcbiAgfVxuXG4gIGdldFJldHVyblN0YXRlbWVudCgpIHtcbiAgICByZXR1cm4gdGhpcy5yZXR1cm5TdGF0ZW1lbnQ7XG4gIH1cblxuICBldmFsdWF0ZSA9IHVuYnJlYWthYmxlKGZ1bmN0aW9uICh2YXJpYWJsZXMsIGNvbnRleHQsIGNvbnRpbnVhdGlvbikge1xuICAgIGNvbnN0IHJldHVybkJsb2NrU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSAnJHtyZXR1cm5CbG9ja1N0cmluZ30nIHJldHVybiBibG9jay4uLmApO1xuXG4gICAgaWYgKHRoaXMubm9uc2Vuc2ljYWwpIHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgVGhlIHJldHVybiBibG9jayBpcyBub25zZW5zaWNhbC5gLFxuICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICB0aHJvdyBleGNlcHRpb247XG4gICAgfVxuXG4gICAgY29uZmluZSgoY29udGV4dCkgPT4ge1xuICAgICAgdGhpcy5ldmFsdWF0ZVN0YXRlbWVudHMoY29udGV4dCwgKCkgPT4ge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMucmV0dXJuU3RhdGVtZW50LmV2YWx1YXRlKGNvbnRleHQpLFxuICAgICAgICAgICAgICB2YWx1ZVN0cmluZyA9IHZhbHVlLmdldFN0cmluZygpO1xuXG4gICAgICAgIGNvbnRleHQuZGVidWcoYC4uLmV2YWx1YXRlZCB0aGUgJyR7cmV0dXJuQmxvY2tTdHJpbmd9JyByZXR1cm4gYmxvY2sgYXMgJyR7dmFsdWVTdHJpbmd9Jy5gKTtcblxuICAgICAgICBjb250aW51YXRpb24odmFsdWUpO1xuICAgICAgfSk7XG4gICAgfSwgdmFyaWFibGVzLCBjb250ZXh0KTtcbiAgfSk7XG5cbiAgZXZhbHVhdGVTdGF0ZW1lbnRzID0gdW5icmVha2FibGUoZnVuY3Rpb24gKGNvbnRleHQsIGNvbnRpbnVhdGlvbikge1xuICAgIGNvbnN0IHJldHVybkJsb2NrU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSAnJHtyZXR1cm5CbG9ja1N0cmluZ30nIHJldHVybiBibG9jaydzIHN0YXRlbWVudHMuLi5gKTtcblxuICAgIGZvckVhY2godGhpcy5zdGF0ZW1lbnRzLCAoc3RhdGVtZW50LCBjb250aW51YXRpb24pID0+IHtcbiAgICAgIHN0YXRlbWVudC5ldmFsdWF0ZShjb250ZXh0LCBjb250aW51YXRpb24pO1xuICAgIH0sICgpID0+IHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLmV2YWx1YXRlZCB0aGUgJyR7cmV0dXJuQmxvY2tTdHJpbmd9JyByZXR1cm4gYmxvY2sncyBzdGF0ZW1lbnRzLmApO1xuXG4gICAgICBjb250aW51YXRpb24oKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgc3RhdGljIG5hbWUgPSBcIlJldHVybkJsb2NrXCI7XG59KTtcbiJdLCJuYW1lcyI6WyJmb3JFYWNoIiwidW5icmVha2FibGUiLCJjb250aW51YXRpb25VdGlsaXRpZXMiLCJkZWZpbmUiLCJSZXR1cm5CbG9jayIsIkVsZW1lbnQiLCJjb250ZXh0Iiwic3RyaW5nIiwibm9kZSIsImJyZWFrUG9pbnQiLCJzdGF0ZW1lbnRzIiwibm9uc2Vuc2ljYWwiLCJyZXR1cm5TdGF0ZW1lbnQiLCJnZXRTdGF0ZW1lbnRzIiwiaXNOb25zZW5zaWNhbCIsImdldFJldHVyblN0YXRlbWVudCIsImV2YWx1YXRlIiwidmFyaWFibGVzIiwiY29udGludWF0aW9uIiwicmV0dXJuQmxvY2tTdHJpbmciLCJnZXRTdHJpbmciLCJ0cmFjZSIsIm1lc3NhZ2UiLCJleGNlcHRpb24iLCJFeGNlcHRpb24iLCJmcm9tTWVzc2FnZSIsImNvbmZpbmUiLCJldmFsdWF0ZVN0YXRlbWVudHMiLCJ2YWx1ZSIsInZhbHVlU3RyaW5nIiwiZGVidWciLCJzdGF0ZW1lbnQiLCJuYW1lIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFXQTs7O2VBQUE7OztnQ0FUK0M7a0VBRXpCOzBCQUVDO3lCQUNDOzs7Ozs7QUFFeEIsTUFBTSxFQUFFQSxPQUFPLEVBQUVDLFdBQVcsRUFBRSxHQUFHQyxxQ0FBcUI7TUFFdEQsV0FBZUMsSUFBQUEsZ0JBQU0sRUFBQyxNQUFNQyxvQkFBb0JDLHVCQUFPO0lBQ3JELFlBQVlDLE9BQU8sRUFBRUMsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLFVBQVUsRUFBRUMsVUFBVSxFQUFFQyxXQUFXLEVBQUVDLGVBQWUsQ0FBRTtRQUN2RixLQUFLLENBQUNOLFNBQVNDLFFBQVFDLE1BQU1DO1FBRTdCLElBQUksQ0FBQ0MsVUFBVSxHQUFHQTtRQUNsQixJQUFJLENBQUNDLFdBQVcsR0FBR0E7UUFDbkIsSUFBSSxDQUFDQyxlQUFlLEdBQUdBO0lBQ3pCO0lBRUFDLGdCQUFnQjtRQUNkLE9BQU8sSUFBSSxDQUFDSCxVQUFVO0lBQ3hCO0lBRUFJLGdCQUFnQjtRQUNkLE9BQU8sSUFBSSxDQUFDSCxXQUFXO0lBQ3pCO0lBRUFJLHFCQUFxQjtRQUNuQixPQUFPLElBQUksQ0FBQ0gsZUFBZTtJQUM3QjtJQUVBSSxXQUFXZixZQUFZLFNBQVVnQixTQUFTLEVBQUVYLE9BQU8sRUFBRVksWUFBWTtRQUMvRCxNQUFNQyxvQkFBb0IsSUFBSSxDQUFDQyxTQUFTLElBQUksR0FBRztRQUUvQ2QsUUFBUWUsS0FBSyxDQUFDLENBQUMsZ0JBQWdCLEVBQUVGLGtCQUFrQixpQkFBaUIsQ0FBQztRQUVyRSxJQUFJLElBQUksQ0FBQ1IsV0FBVyxFQUFFO1lBQ3BCLE1BQU1XLFVBQVUsQ0FBQyxnQ0FBZ0MsQ0FBQyxFQUM1Q0MsWUFBWUMsa0JBQVMsQ0FBQ0MsV0FBVyxDQUFDSDtZQUV4QyxNQUFNQztRQUNSO1FBRUFHLElBQUFBLGdCQUFPLEVBQUMsQ0FBQ3BCO1lBQ1AsSUFBSSxDQUFDcUIsa0JBQWtCLENBQUNyQixTQUFTO2dCQUMvQixNQUFNc0IsUUFBUSxJQUFJLENBQUNoQixlQUFlLENBQUNJLFFBQVEsQ0FBQ1YsVUFDdEN1QixjQUFjRCxNQUFNUixTQUFTO2dCQUVuQ2QsUUFBUXdCLEtBQUssQ0FBQyxDQUFDLGtCQUFrQixFQUFFWCxrQkFBa0IsbUJBQW1CLEVBQUVVLFlBQVksRUFBRSxDQUFDO2dCQUV6RlgsYUFBYVU7WUFDZjtRQUNGLEdBQUdYLFdBQVdYO0lBQ2hCLEdBQUc7SUFFSHFCLHFCQUFxQjFCLFlBQVksU0FBVUssT0FBTyxFQUFFWSxZQUFZO1FBQzlELE1BQU1DLG9CQUFvQixJQUFJLENBQUNDLFNBQVMsSUFBSSxHQUFHO1FBRS9DZCxRQUFRZSxLQUFLLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRUYsa0JBQWtCLDhCQUE4QixDQUFDO1FBRWxGbkIsUUFBUSxJQUFJLENBQUNVLFVBQVUsRUFBRSxDQUFDcUIsV0FBV2I7WUFDbkNhLFVBQVVmLFFBQVEsQ0FBQ1YsU0FBU1k7UUFDOUIsR0FBRztZQUNEWixRQUFRd0IsS0FBSyxDQUFDLENBQUMsa0JBQWtCLEVBQUVYLGtCQUFrQiw0QkFBNEIsQ0FBQztZQUVsRkQ7UUFDRjtJQUNGLEdBQUc7SUFFSCxPQUFPYyxPQUFPLGNBQWM7QUFDOUIifQ==