occam-furtle 3.0.461 → 3.0.464

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 (79) hide show
  1. package/lib/context/block.js +2 -2
  2. package/lib/element/anonymousProcedure.js +12 -11
  3. package/lib/element/assignment/list.js +5 -5
  4. package/lib/element/assignment/object.js +35 -31
  5. package/lib/element/binding/named.js +6 -5
  6. package/lib/element/binding.js +5 -4
  7. package/lib/element/bindings/named.js +34 -28
  8. package/lib/element/bindings.js +14 -10
  9. package/lib/element/contains.js +4 -4
  10. package/lib/element/endsWith.js +4 -4
  11. package/lib/element/every.js +4 -4
  12. package/lib/element/expression.js +17 -27
  13. package/lib/element/lengthOf.js +4 -4
  14. package/lib/element/nodeQuery.js +7 -7
  15. package/lib/element/nodesQuery.js +6 -6
  16. package/lib/element/parameter.js +4 -3
  17. package/lib/element/parameters.js +14 -11
  18. package/lib/element/primitive.js +3 -3
  19. package/lib/element/procedure.js +13 -12
  20. package/lib/element/procedureCall.js +12 -10
  21. package/lib/element/reduce.js +3 -3
  22. package/lib/element/returnBlock.js +2 -2
  23. package/lib/element/returnStatement.js +3 -3
  24. package/lib/element/some.js +3 -3
  25. package/lib/element/startsWith.js +4 -4
  26. package/lib/element/term/bracketed.js +3 -3
  27. package/lib/element/term/comparison.js +4 -4
  28. package/lib/element/term/logical.js +5 -5
  29. package/lib/element/term/negated.js +4 -4
  30. package/lib/element/term.js +8 -10
  31. package/lib/element/terms.js +13 -14
  32. package/lib/element/ternary.js +2 -2
  33. package/lib/element/toInteger.js +5 -5
  34. package/lib/element/tryInteger.js +4 -4
  35. package/lib/element/value.js +4 -6
  36. package/lib/element/values.js +13 -11
  37. package/lib/element/variable.js +4 -4
  38. package/lib/nominalValueProperties.js +18 -17
  39. package/lib/nominalValueProperty.js +3 -3
  40. package/package.json +2 -2
  41. package/src/context/block.js +1 -1
  42. package/src/element/anonymousProcedure.js +15 -15
  43. package/src/element/assignment/list.js +4 -4
  44. package/src/element/assignment/object.js +36 -34
  45. package/src/element/binding/named.js +6 -4
  46. package/src/element/binding.js +5 -3
  47. package/src/element/bindings/named.js +46 -34
  48. package/src/element/bindings.js +19 -11
  49. package/src/element/contains.js +3 -3
  50. package/src/element/endsWith.js +3 -3
  51. package/src/element/every.js +3 -3
  52. package/src/element/expression.js +17 -35
  53. package/src/element/lengthOf.js +3 -3
  54. package/src/element/nodeQuery.js +6 -6
  55. package/src/element/nodesQuery.js +5 -5
  56. package/src/element/parameter.js +4 -2
  57. package/src/element/parameters.js +19 -12
  58. package/src/element/primitive.js +2 -2
  59. package/src/element/procedure.js +16 -16
  60. package/src/element/procedureCall.js +11 -10
  61. package/src/element/reduce.js +2 -2
  62. package/src/element/returnBlock.js +1 -1
  63. package/src/element/returnStatement.js +2 -2
  64. package/src/element/some.js +2 -2
  65. package/src/element/startsWith.js +3 -3
  66. package/src/element/term/bracketed.js +2 -2
  67. package/src/element/term/comparison.js +3 -3
  68. package/src/element/term/logical.js +4 -4
  69. package/src/element/term/negated.js +3 -3
  70. package/src/element/term.js +7 -11
  71. package/src/element/terms.js +20 -19
  72. package/src/element/ternary.js +1 -1
  73. package/src/element/toInteger.js +4 -4
  74. package/src/element/tryInteger.js +3 -3
  75. package/src/element/value.js +3 -7
  76. package/src/element/values.js +22 -17
  77. package/src/element/variable.js +3 -3
  78. package/src/nominalValueProperties.js +22 -18
  79. package/src/nominalValueProperty.js +2 -2
@@ -16,6 +16,7 @@ function _interop_require_default(obj) {
16
16
  default: obj
17
17
  };
18
18
  }
19
+ const { some, forEach } = _occamlanguages.continuationUtilities;
19
20
  const _default = (0, _elements.define)(class NamedBindings extends _occamlanguages.Element {
20
21
  constructor(context, string, node, breakPoint, array){
21
22
  super(context, string, node, breakPoint);
@@ -32,53 +33,58 @@ const _default = (0, _elements.define)(class NamedBindings extends _occamlanguag
32
33
  const namedBinding = this.array[index] || null;
33
34
  return namedBinding;
34
35
  }
35
- someNamedBinding(callback) {
36
- return this.array.some(callback);
36
+ someNamedBinding(callback, back, forward) {
37
+ return some(this.array, callback, back, forward);
37
38
  }
38
- forEachNamedBinding(callback) {
39
- this.array.forEach(callback);
39
+ forEachNamedBinding(callback, back, forward) {
40
+ return forEach(this.array, callback, back, forward);
40
41
  }
41
- compareTerms(terms, context) {
42
+ compareTerms(terms, context, back, forward) {
42
43
  const termsString = terms.getString(), namedBindingsString = this.getString(); ///
43
44
  context.trace(`Comparing the '${termsString}' terms with the '${namedBindingsString}' named bindings...`);
44
45
  const termsLength = terms.getLength(), namedBindingsLength = this.getLength();
45
46
  if (termsLength !== namedBindingsLength) {
46
47
  const message = `The '${termsString}' terms and '${namedBindingsString}' named bindings are not of the same length.`, exception = _exception.default.fromMessage(message);
47
- throw exception;
48
+ return back(exception);
48
49
  }
49
- this.forEachNamedBinding((namedBinding, index)=>{
50
- if (namedBinding !== null) {
51
- const term = terms.getTerm(index);
52
- namedBinding.compareTerm(term, context);
50
+ return this.forEachNamedBinding((namedBinding, back, forward, index)=>{
51
+ if (namedBinding === null) {
52
+ return forward();
53
53
  }
54
+ const term = terms.getTerm(index);
55
+ return namedBinding.compareTerm(term, context, back, forward);
56
+ }, back, ()=>{
57
+ context.debug(`...compared the '${termsString}' terms with the '${namedBindingsString}' named bindings.`);
58
+ return forward();
54
59
  });
55
- context.debug(`...compared the '${termsString}' terms with the '${namedBindingsString}' named bindings.`);
56
60
  }
57
- compareNamedBinding(namedBinding, context) {
61
+ compareNamedBinding(namedBinding, context, back, forward) {
58
62
  const namedBindingString = namedBinding.getString(), namedBindingsString = this.getString(); ///
59
63
  context.trace(`Comparing the '${namedBindingString}' namedBinding with the '${namedBindingsString}' named bindings...`);
60
- const namedBindingA = namedBinding, namedBindingCompares = this.someNamedBinding((namedBinding)=>{
64
+ const namedBindingA = namedBinding; ///
65
+ return this.someNamedBinding((namedBinding)=>{
61
66
  if (namedBinding !== null) {
62
- const namedBindingB = namedBinding, namedBindingBComparesToNamedBindingA = namedBindingA.compareNamedBinding(namedBindingB, context);
63
- if (namedBindingBComparesToNamedBindingA) {
64
- return true;
65
- }
67
+ const namedBindingB = namedBinding; ///
68
+ return namedBindingA.compareNamedBinding(namedBindingB, context, back, forward);
69
+ }
70
+ }, back, (namedBindingCompares)=>{
71
+ if (!namedBindingCompares) {
72
+ const message = `The '${namedBindingString}' namedBinding does not compare to any of the '${namedBindingsString}' named bindings.`, exception = _exception.default.fromMessage(message);
73
+ return back(exception);
66
74
  }
75
+ context.debug(`...compared the '${namedBindingString}' namedBinding with the '${namedBindingsString}' named bindings.`);
76
+ return forward();
67
77
  });
68
- if (!namedBindingCompares) {
69
- const message = `The '${namedBindingString}' namedBinding does not compare to any of the '${namedBindingsString}' named bindings.`, exception = _exception.default.fromMessage(message);
70
- throw exception;
71
- }
72
- context.debug(`...compared the '${namedBindingString}' namedBinding with the '${namedBindingsString}' named bindings.`);
73
78
  }
74
- compareNamedBindings(namedBindings, context) {
75
- namedBindings.forEachNamedBinding((namedBinding)=>{
76
- if (namedBinding !== null) {
77
- this.compareNamedBinding(namedBinding, context);
79
+ compareNamedBindings(namedBindings, context, back, forward) {
80
+ return namedBindings.forEachNamedBinding((namedBinding, back, forward)=>{
81
+ if (namedBinding === null) {
82
+ return forward();
78
83
  }
79
- });
84
+ return this.compareNamedBinding(namedBinding, context, back, forward);
85
+ }, back, forward);
80
86
  }
81
87
  static name = "NamedBindings";
82
88
  });
83
89
 
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L2JpbmRpbmdzL25hbWVkLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFbGVtZW50IH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgRXhjZXB0aW9uIGZyb20gXCIuLi8uLi9leGNlcHRpb25cIjtcblxuaW1wb3J0IHsgZGVmaW5lIH0gZnJvbSBcIi4uLy4uL2VsZW1lbnRzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZShjbGFzcyBOYW1lZEJpbmRpbmdzIGV4dGVuZHMgRWxlbWVudCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgYXJyYXkpIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQpO1xuXG4gICAgdGhpcy5hcnJheSA9IGFycmF5O1xuICB9XG5cbiAgZ2V0QXJyYXkoKSB7XG4gICAgcmV0dXJuIHRoaXMuYXJyYXk7XG4gIH1cblxuICBnZXRMZW5ndGgoKSB7XG4gICAgY29uc3QgbGVuZ3RoID0gdGhpcy5hcnJheS5sZW5ndGg7XG5cbiAgICByZXR1cm4gbGVuZ3RoO1xuICB9XG5cbiAgZ2V0TmFtZWRCaW5kaW5nKGluZGV4KSB7XG4gICAgY29uc3QgbmFtZWRCaW5kaW5nID0gdGhpcy5hcnJheVtpbmRleF0gfHwgbnVsbDtcblxuICAgIHJldHVybiBuYW1lZEJpbmRpbmc7XG4gIH1cblxuICBzb21lTmFtZWRCaW5kaW5nKGNhbGxiYWNrKSB7IHJldHVybiB0aGlzLmFycmF5LnNvbWUoY2FsbGJhY2spOyB9XG5cbiAgZm9yRWFjaE5hbWVkQmluZGluZyhjYWxsYmFjaykgeyB0aGlzLmFycmF5LmZvckVhY2goY2FsbGJhY2spOyB9XG5cbiAgY29tcGFyZVRlcm1zKHRlcm1zLCBjb250ZXh0KSB7XG4gICAgY29uc3QgdGVybXNTdHJpbmcgPSB0ZXJtcy5nZXRTdHJpbmcoKSxcbiAgICAgICAgICBuYW1lZEJpbmRpbmdzU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBDb21wYXJpbmcgdGhlICcke3Rlcm1zU3RyaW5nfScgdGVybXMgd2l0aCB0aGUgJyR7bmFtZWRCaW5kaW5nc1N0cmluZ30nIG5hbWVkIGJpbmRpbmdzLi4uYCk7XG5cbiAgICBjb25zdCB0ZXJtc0xlbmd0aCA9IHRlcm1zLmdldExlbmd0aCgpLFxuICAgICAgICAgIG5hbWVkQmluZGluZ3NMZW5ndGggPSB0aGlzLmdldExlbmd0aCgpO1xuXG4gICAgaWYgKHRlcm1zTGVuZ3RoICE9PSBuYW1lZEJpbmRpbmdzTGVuZ3RoKSB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gYFRoZSAnJHt0ZXJtc1N0cmluZ30nIHRlcm1zIGFuZCAnJHtuYW1lZEJpbmRpbmdzU3RyaW5nfScgbmFtZWQgYmluZGluZ3MgYXJlIG5vdCBvZiB0aGUgc2FtZSBsZW5ndGguYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgdGhyb3cgZXhjZXB0aW9uO1xuICAgIH1cblxuICAgIHRoaXMuZm9yRWFjaE5hbWVkQmluZGluZygobmFtZWRCaW5kaW5nLCBpbmRleCkgPT4ge1xuICAgICAgaWYgKG5hbWVkQmluZGluZyAhPT0gbnVsbCkge1xuICAgICAgICBjb25zdCB0ZXJtID0gdGVybXMuZ2V0VGVybShpbmRleCk7XG5cbiAgICAgICAgbmFtZWRCaW5kaW5nLmNvbXBhcmVUZXJtKHRlcm0sIGNvbnRleHQpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgY29udGV4dC5kZWJ1ZyhgLi4uY29tcGFyZWQgdGhlICcke3Rlcm1zU3RyaW5nfScgdGVybXMgd2l0aCB0aGUgJyR7bmFtZWRCaW5kaW5nc1N0cmluZ30nIG5hbWVkIGJpbmRpbmdzLmApO1xuICB9XG5cbiAgY29tcGFyZU5hbWVkQmluZGluZyhuYW1lZEJpbmRpbmcsIGNvbnRleHQpIHtcbiAgICBjb25zdCBuYW1lZEJpbmRpbmdTdHJpbmcgPSBuYW1lZEJpbmRpbmcuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgbmFtZWRCaW5kaW5nc1N0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7IC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgQ29tcGFyaW5nIHRoZSAnJHtuYW1lZEJpbmRpbmdTdHJpbmd9JyBuYW1lZEJpbmRpbmcgd2l0aCB0aGUgJyR7bmFtZWRCaW5kaW5nc1N0cmluZ30nIG5hbWVkIGJpbmRpbmdzLi4uYCk7XG5cbiAgICBjb25zdCBuYW1lZEJpbmRpbmdBID0gbmFtZWRCaW5kaW5nLCAvLy9cbiAgICAgICAgICBuYW1lZEJpbmRpbmdDb21wYXJlcyA9IHRoaXMuc29tZU5hbWVkQmluZGluZygobmFtZWRCaW5kaW5nKSA9PiB7XG4gICAgICAgICAgICBpZiAobmFtZWRCaW5kaW5nICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgIGNvbnN0IG5hbWVkQmluZGluZ0IgPSBuYW1lZEJpbmRpbmcsIC8vL1xuICAgICAgICAgICAgICAgICAgICBuYW1lZEJpbmRpbmdCQ29tcGFyZXNUb05hbWVkQmluZGluZ0EgPSBuYW1lZEJpbmRpbmdBLmNvbXBhcmVOYW1lZEJpbmRpbmcobmFtZWRCaW5kaW5nQiwgY29udGV4dCk7XG5cbiAgICAgICAgICAgICAgaWYgKG5hbWVkQmluZGluZ0JDb21wYXJlc1RvTmFtZWRCaW5kaW5nQSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG5cbiAgICBpZiAoIW5hbWVkQmluZGluZ0NvbXBhcmVzKSB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gYFRoZSAnJHtuYW1lZEJpbmRpbmdTdHJpbmd9JyBuYW1lZEJpbmRpbmcgZG9lcyBub3QgY29tcGFyZSB0byBhbnkgb2YgdGhlICcke25hbWVkQmluZGluZ3NTdHJpbmd9JyBuYW1lZCBiaW5kaW5ncy5gLFxuICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICB0aHJvdyBleGNlcHRpb247XG4gICAgfVxuXG4gICAgY29udGV4dC5kZWJ1ZyhgLi4uY29tcGFyZWQgdGhlICcke25hbWVkQmluZGluZ1N0cmluZ30nIG5hbWVkQmluZGluZyB3aXRoIHRoZSAnJHtuYW1lZEJpbmRpbmdzU3RyaW5nfScgbmFtZWQgYmluZGluZ3MuYCk7XG4gIH1cblxuICBjb21wYXJlTmFtZWRCaW5kaW5ncyhuYW1lZEJpbmRpbmdzLCBjb250ZXh0KSB7XG4gICAgbmFtZWRCaW5kaW5ncy5mb3JFYWNoTmFtZWRCaW5kaW5nKChuYW1lZEJpbmRpbmcpID0+IHtcbiAgICAgIGlmIChuYW1lZEJpbmRpbmcgIT09IG51bGwpIHtcbiAgICAgICAgdGhpcy5jb21wYXJlTmFtZWRCaW5kaW5nKG5hbWVkQmluZGluZywgY29udGV4dCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiTmFtZWRCaW5kaW5nc1wiO1xufSk7XG4iXSwibmFtZXMiOlsiZGVmaW5lIiwiTmFtZWRCaW5kaW5ncyIsIkVsZW1lbnQiLCJjb250ZXh0Iiwic3RyaW5nIiwibm9kZSIsImJyZWFrUG9pbnQiLCJhcnJheSIsImdldEFycmF5IiwiZ2V0TGVuZ3RoIiwibGVuZ3RoIiwiZ2V0TmFtZWRCaW5kaW5nIiwiaW5kZXgiLCJuYW1lZEJpbmRpbmciLCJzb21lTmFtZWRCaW5kaW5nIiwiY2FsbGJhY2siLCJzb21lIiwiZm9yRWFjaE5hbWVkQmluZGluZyIsImZvckVhY2giLCJjb21wYXJlVGVybXMiLCJ0ZXJtcyIsInRlcm1zU3RyaW5nIiwiZ2V0U3RyaW5nIiwibmFtZWRCaW5kaW5nc1N0cmluZyIsInRyYWNlIiwidGVybXNMZW5ndGgiLCJuYW1lZEJpbmRpbmdzTGVuZ3RoIiwibWVzc2FnZSIsImV4Y2VwdGlvbiIsIkV4Y2VwdGlvbiIsImZyb21NZXNzYWdlIiwidGVybSIsImdldFRlcm0iLCJjb21wYXJlVGVybSIsImRlYnVnIiwiY29tcGFyZU5hbWVkQmluZGluZyIsIm5hbWVkQmluZGluZ1N0cmluZyIsIm5hbWVkQmluZGluZ0EiLCJuYW1lZEJpbmRpbmdDb21wYXJlcyIsIm5hbWVkQmluZGluZ0IiLCJuYW1lZEJpbmRpbmdCQ29tcGFyZXNUb05hbWVkQmluZGluZ0EiLCJjb21wYXJlTmFtZWRCaW5kaW5ncyIsIm5hbWVkQmluZGluZ3MiLCJuYW1lIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFRQTs7O2VBQUE7OztnQ0FOd0I7a0VBRUY7MEJBRUM7Ozs7OztNQUV2QixXQUFlQSxJQUFBQSxnQkFBTSxFQUFDLE1BQU1DLHNCQUFzQkMsdUJBQU87SUFDdkQsWUFBWUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsVUFBVSxFQUFFQyxLQUFLLENBQUU7UUFDcEQsS0FBSyxDQUFDSixTQUFTQyxRQUFRQyxNQUFNQztRQUU3QixJQUFJLENBQUNDLEtBQUssR0FBR0E7SUFDZjtJQUVBQyxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUNELEtBQUs7SUFDbkI7SUFFQUUsWUFBWTtRQUNWLE1BQU1DLFNBQVMsSUFBSSxDQUFDSCxLQUFLLENBQUNHLE1BQU07UUFFaEMsT0FBT0E7SUFDVDtJQUVBQyxnQkFBZ0JDLEtBQUssRUFBRTtRQUNyQixNQUFNQyxlQUFlLElBQUksQ0FBQ04sS0FBSyxDQUFDSyxNQUFNLElBQUk7UUFFMUMsT0FBT0M7SUFDVDtJQUVBQyxpQkFBaUJDLFFBQVEsRUFBRTtRQUFFLE9BQU8sSUFBSSxDQUFDUixLQUFLLENBQUNTLElBQUksQ0FBQ0Q7SUFBVztJQUUvREUsb0JBQW9CRixRQUFRLEVBQUU7UUFBRSxJQUFJLENBQUNSLEtBQUssQ0FBQ1csT0FBTyxDQUFDSDtJQUFXO0lBRTlESSxhQUFhQyxLQUFLLEVBQUVqQixPQUFPLEVBQUU7UUFDM0IsTUFBTWtCLGNBQWNELE1BQU1FLFNBQVMsSUFDN0JDLHNCQUFzQixJQUFJLENBQUNELFNBQVMsSUFBSSxHQUFHO1FBRWpEbkIsUUFBUXFCLEtBQUssQ0FBQyxDQUFDLGVBQWUsRUFBRUgsWUFBWSxrQkFBa0IsRUFBRUUsb0JBQW9CLG1CQUFtQixDQUFDO1FBRXhHLE1BQU1FLGNBQWNMLE1BQU1YLFNBQVMsSUFDN0JpQixzQkFBc0IsSUFBSSxDQUFDakIsU0FBUztRQUUxQyxJQUFJZ0IsZ0JBQWdCQyxxQkFBcUI7WUFDdkMsTUFBTUMsVUFBVSxDQUFDLEtBQUssRUFBRU4sWUFBWSxhQUFhLEVBQUVFLG9CQUFvQiw0Q0FBNEMsQ0FBQyxFQUM5R0ssWUFBWUMsa0JBQVMsQ0FBQ0MsV0FBVyxDQUFDSDtZQUV4QyxNQUFNQztRQUNSO1FBRUEsSUFBSSxDQUFDWCxtQkFBbUIsQ0FBQyxDQUFDSixjQUFjRDtZQUN0QyxJQUFJQyxpQkFBaUIsTUFBTTtnQkFDekIsTUFBTWtCLE9BQU9YLE1BQU1ZLE9BQU8sQ0FBQ3BCO2dCQUUzQkMsYUFBYW9CLFdBQVcsQ0FBQ0YsTUFBTTVCO1lBQ2pDO1FBQ0Y7UUFFQUEsUUFBUStCLEtBQUssQ0FBQyxDQUFDLGlCQUFpQixFQUFFYixZQUFZLGtCQUFrQixFQUFFRSxvQkFBb0IsaUJBQWlCLENBQUM7SUFDMUc7SUFFQVksb0JBQW9CdEIsWUFBWSxFQUFFVixPQUFPLEVBQUU7UUFDekMsTUFBTWlDLHFCQUFxQnZCLGFBQWFTLFNBQVMsSUFDM0NDLHNCQUFzQixJQUFJLENBQUNELFNBQVMsSUFBSSxHQUFHO1FBRWpEbkIsUUFBUXFCLEtBQUssQ0FBQyxDQUFDLGVBQWUsRUFBRVksbUJBQW1CLHlCQUF5QixFQUFFYixvQkFBb0IsbUJBQW1CLENBQUM7UUFFdEgsTUFBTWMsZ0JBQWdCeEIsY0FDaEJ5Qix1QkFBdUIsSUFBSSxDQUFDeEIsZ0JBQWdCLENBQUMsQ0FBQ0Q7WUFDNUMsSUFBSUEsaUJBQWlCLE1BQU07Z0JBQ3pCLE1BQU0wQixnQkFBZ0IxQixjQUNoQjJCLHVDQUF1Q0gsY0FBY0YsbUJBQW1CLENBQUNJLGVBQWVwQztnQkFFOUYsSUFBSXFDLHNDQUFzQztvQkFDeEMsT0FBTztnQkFDVDtZQUNGO1FBQ0Y7UUFFTixJQUFJLENBQUNGLHNCQUFzQjtZQUN6QixNQUFNWCxVQUFVLENBQUMsS0FBSyxFQUFFUyxtQkFBbUIsK0NBQStDLEVBQUViLG9CQUFvQixpQkFBaUIsQ0FBQyxFQUM1SEssWUFBWUMsa0JBQVMsQ0FBQ0MsV0FBVyxDQUFDSDtZQUV4QyxNQUFNQztRQUNSO1FBRUF6QixRQUFRK0IsS0FBSyxDQUFDLENBQUMsaUJBQWlCLEVBQUVFLG1CQUFtQix5QkFBeUIsRUFBRWIsb0JBQW9CLGlCQUFpQixDQUFDO0lBQ3hIO0lBRUFrQixxQkFBcUJDLGFBQWEsRUFBRXZDLE9BQU8sRUFBRTtRQUMzQ3VDLGNBQWN6QixtQkFBbUIsQ0FBQyxDQUFDSjtZQUNqQyxJQUFJQSxpQkFBaUIsTUFBTTtnQkFDekIsSUFBSSxDQUFDc0IsbUJBQW1CLENBQUN0QixjQUFjVjtZQUN6QztRQUNGO0lBQ0Y7SUFFQSxPQUFPd0MsT0FBTyxnQkFBZ0I7QUFDaEMifQ==
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L2JpbmRpbmdzL25hbWVkLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFbGVtZW50LCBjb250aW51YXRpb25VdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCBFeGNlcHRpb24gZnJvbSBcIi4uLy4uL2V4Y2VwdGlvblwiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vLi4vZWxlbWVudHNcIjtcblxuY29uc3QgeyBzb21lLCBmb3JFYWNoIH0gPSBjb250aW51YXRpb25VdGlsaXRpZXM7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZShjbGFzcyBOYW1lZEJpbmRpbmdzIGV4dGVuZHMgRWxlbWVudCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgYXJyYXkpIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQpO1xuXG4gICAgdGhpcy5hcnJheSA9IGFycmF5O1xuICB9XG5cbiAgZ2V0QXJyYXkoKSB7XG4gICAgcmV0dXJuIHRoaXMuYXJyYXk7XG4gIH1cblxuICBnZXRMZW5ndGgoKSB7XG4gICAgY29uc3QgbGVuZ3RoID0gdGhpcy5hcnJheS5sZW5ndGg7XG5cbiAgICByZXR1cm4gbGVuZ3RoO1xuICB9XG5cbiAgZ2V0TmFtZWRCaW5kaW5nKGluZGV4KSB7XG4gICAgY29uc3QgbmFtZWRCaW5kaW5nID0gdGhpcy5hcnJheVtpbmRleF0gfHwgbnVsbDtcblxuICAgIHJldHVybiBuYW1lZEJpbmRpbmc7XG4gIH1cblxuICBzb21lTmFtZWRCaW5kaW5nKGNhbGxiYWNrLCBiYWNrLCBmb3J3YXJkKSB7XG4gICAgcmV0dXJuIHNvbWUodGhpcy5hcnJheSwgY2FsbGJhY2ssIGJhY2ssIGZvcndhcmQpO1xuICB9XG5cbiAgZm9yRWFjaE5hbWVkQmluZGluZyhjYWxsYmFjaywgYmFjaywgZm9yd2FyZCkge1xuICAgIHJldHVybiBmb3JFYWNoKHRoaXMuYXJyYXksIGNhbGxiYWNrLCBiYWNrLCBmb3J3YXJkKTtcbiAgfVxuXG4gIGNvbXBhcmVUZXJtcyh0ZXJtcywgY29udGV4dCwgYmFjaywgZm9yd2FyZCkge1xuICAgIGNvbnN0IHRlcm1zU3RyaW5nID0gdGVybXMuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgbmFtZWRCaW5kaW5nc1N0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7IC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgQ29tcGFyaW5nIHRoZSAnJHt0ZXJtc1N0cmluZ30nIHRlcm1zIHdpdGggdGhlICcke25hbWVkQmluZGluZ3NTdHJpbmd9JyBuYW1lZCBiaW5kaW5ncy4uLmApO1xuXG4gICAgY29uc3QgdGVybXNMZW5ndGggPSB0ZXJtcy5nZXRMZW5ndGgoKSxcbiAgICAgICAgICBuYW1lZEJpbmRpbmdzTGVuZ3RoID0gdGhpcy5nZXRMZW5ndGgoKTtcblxuICAgIGlmICh0ZXJtc0xlbmd0aCAhPT0gbmFtZWRCaW5kaW5nc0xlbmd0aCkge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IGBUaGUgJyR7dGVybXNTdHJpbmd9JyB0ZXJtcyBhbmQgJyR7bmFtZWRCaW5kaW5nc1N0cmluZ30nIG5hbWVkIGJpbmRpbmdzIGFyZSBub3Qgb2YgdGhlIHNhbWUgbGVuZ3RoLmAsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHJldHVybiBiYWNrKGV4Y2VwdGlvbik7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuZm9yRWFjaE5hbWVkQmluZGluZygobmFtZWRCaW5kaW5nLCBiYWNrLCBmb3J3YXJkLCBpbmRleCkgPT4ge1xuICAgICAgaWYgKG5hbWVkQmluZGluZyA9PT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gZm9yd2FyZCgpO1xuICAgICAgfVxuXG4gICAgICBjb25zdCB0ZXJtID0gdGVybXMuZ2V0VGVybShpbmRleCk7XG5cbiAgICAgIHJldHVybiBuYW1lZEJpbmRpbmcuY29tcGFyZVRlcm0odGVybSwgY29udGV4dCwgYmFjaywgZm9yd2FyZCk7XG4gICAgfSwgYmFjaywgKCkgPT4ge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4uY29tcGFyZWQgdGhlICcke3Rlcm1zU3RyaW5nfScgdGVybXMgd2l0aCB0aGUgJyR7bmFtZWRCaW5kaW5nc1N0cmluZ30nIG5hbWVkIGJpbmRpbmdzLmApO1xuXG4gICAgICByZXR1cm4gZm9yd2FyZCgpO1xuICAgIH0pO1xuICB9XG5cbiAgY29tcGFyZU5hbWVkQmluZGluZyhuYW1lZEJpbmRpbmcsIGNvbnRleHQsIGJhY2ssIGZvcndhcmQpIHtcbiAgICBjb25zdCBuYW1lZEJpbmRpbmdTdHJpbmcgPSBuYW1lZEJpbmRpbmcuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgbmFtZWRCaW5kaW5nc1N0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7IC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgQ29tcGFyaW5nIHRoZSAnJHtuYW1lZEJpbmRpbmdTdHJpbmd9JyBuYW1lZEJpbmRpbmcgd2l0aCB0aGUgJyR7bmFtZWRCaW5kaW5nc1N0cmluZ30nIG5hbWVkIGJpbmRpbmdzLi4uYCk7XG5cbiAgICBjb25zdCBuYW1lZEJpbmRpbmdBID0gbmFtZWRCaW5kaW5nOyAvLy9cblxuICAgIHJldHVybiB0aGlzLnNvbWVOYW1lZEJpbmRpbmcoKG5hbWVkQmluZGluZykgPT4ge1xuICAgICAgaWYgKG5hbWVkQmluZGluZyAhPT0gbnVsbCkge1xuICAgICAgICBjb25zdCBuYW1lZEJpbmRpbmdCID0gbmFtZWRCaW5kaW5nOyAvLy9cblxuICAgICAgICByZXR1cm4gbmFtZWRCaW5kaW5nQS5jb21wYXJlTmFtZWRCaW5kaW5nKG5hbWVkQmluZGluZ0IsIGNvbnRleHQsIGJhY2ssIGZvcndhcmQpO1xuICAgICAgfVxuICAgIH0sIGJhY2ssIChuYW1lZEJpbmRpbmdDb21wYXJlcykgPT4ge1xuICAgICAgaWYgKCFuYW1lZEJpbmRpbmdDb21wYXJlcykge1xuICAgICAgICBjb25zdCBtZXNzYWdlID0gYFRoZSAnJHtuYW1lZEJpbmRpbmdTdHJpbmd9JyBuYW1lZEJpbmRpbmcgZG9lcyBub3QgY29tcGFyZSB0byBhbnkgb2YgdGhlICcke25hbWVkQmluZGluZ3NTdHJpbmd9JyBuYW1lZCBiaW5kaW5ncy5gLFxuICAgICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgICAgcmV0dXJuIGJhY2soZXhjZXB0aW9uKTtcbiAgICAgIH1cblxuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4uY29tcGFyZWQgdGhlICcke25hbWVkQmluZGluZ1N0cmluZ30nIG5hbWVkQmluZGluZyB3aXRoIHRoZSAnJHtuYW1lZEJpbmRpbmdzU3RyaW5nfScgbmFtZWQgYmluZGluZ3MuYCk7XG5cbiAgICAgIHJldHVybiBmb3J3YXJkKCk7XG4gICAgfSk7XG4gIH1cblxuICBjb21wYXJlTmFtZWRCaW5kaW5ncyhuYW1lZEJpbmRpbmdzLCBjb250ZXh0LCBiYWNrLCBmb3J3YXJkKSB7XG4gICAgcmV0dXJuIG5hbWVkQmluZGluZ3MuZm9yRWFjaE5hbWVkQmluZGluZygobmFtZWRCaW5kaW5nLCBiYWNrLCBmb3J3YXJkKSA9PiB7XG4gICAgICBpZiAobmFtZWRCaW5kaW5nID09PSBudWxsKSB7XG4gICAgICAgIHJldHVybiBmb3J3YXJkKCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0aGlzLmNvbXBhcmVOYW1lZEJpbmRpbmcobmFtZWRCaW5kaW5nLCBjb250ZXh0LCBiYWNrLCBmb3J3YXJkKTtcbiAgICB9LCBiYWNrLCBmb3J3YXJkKTtcbiAgfVxuXG4gIHN0YXRpYyBuYW1lID0gXCJOYW1lZEJpbmRpbmdzXCI7XG59KTtcbiJdLCJuYW1lcyI6WyJzb21lIiwiZm9yRWFjaCIsImNvbnRpbnVhdGlvblV0aWxpdGllcyIsImRlZmluZSIsIk5hbWVkQmluZGluZ3MiLCJFbGVtZW50IiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50IiwiYXJyYXkiLCJnZXRBcnJheSIsImdldExlbmd0aCIsImxlbmd0aCIsImdldE5hbWVkQmluZGluZyIsImluZGV4IiwibmFtZWRCaW5kaW5nIiwic29tZU5hbWVkQmluZGluZyIsImNhbGxiYWNrIiwiYmFjayIsImZvcndhcmQiLCJmb3JFYWNoTmFtZWRCaW5kaW5nIiwiY29tcGFyZVRlcm1zIiwidGVybXMiLCJ0ZXJtc1N0cmluZyIsImdldFN0cmluZyIsIm5hbWVkQmluZGluZ3NTdHJpbmciLCJ0cmFjZSIsInRlcm1zTGVuZ3RoIiwibmFtZWRCaW5kaW5nc0xlbmd0aCIsIm1lc3NhZ2UiLCJleGNlcHRpb24iLCJFeGNlcHRpb24iLCJmcm9tTWVzc2FnZSIsInRlcm0iLCJnZXRUZXJtIiwiY29tcGFyZVRlcm0iLCJkZWJ1ZyIsImNvbXBhcmVOYW1lZEJpbmRpbmciLCJuYW1lZEJpbmRpbmdTdHJpbmciLCJuYW1lZEJpbmRpbmdBIiwibmFtZWRCaW5kaW5nQiIsIm5hbWVkQmluZGluZ0NvbXBhcmVzIiwiY29tcGFyZU5hbWVkQmluZGluZ3MiLCJuYW1lZEJpbmRpbmdzIiwibmFtZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBVUE7OztlQUFBOzs7Z0NBUitDO2tFQUV6QjswQkFFQzs7Ozs7O0FBRXZCLE1BQU0sRUFBRUEsSUFBSSxFQUFFQyxPQUFPLEVBQUUsR0FBR0MscUNBQXFCO01BRS9DLFdBQWVDLElBQUFBLGdCQUFNLEVBQUMsTUFBTUMsc0JBQXNCQyx1QkFBTztJQUN2RCxZQUFZQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxVQUFVLEVBQUVDLEtBQUssQ0FBRTtRQUNwRCxLQUFLLENBQUNKLFNBQVNDLFFBQVFDLE1BQU1DO1FBRTdCLElBQUksQ0FBQ0MsS0FBSyxHQUFHQTtJQUNmO0lBRUFDLFdBQVc7UUFDVCxPQUFPLElBQUksQ0FBQ0QsS0FBSztJQUNuQjtJQUVBRSxZQUFZO1FBQ1YsTUFBTUMsU0FBUyxJQUFJLENBQUNILEtBQUssQ0FBQ0csTUFBTTtRQUVoQyxPQUFPQTtJQUNUO0lBRUFDLGdCQUFnQkMsS0FBSyxFQUFFO1FBQ3JCLE1BQU1DLGVBQWUsSUFBSSxDQUFDTixLQUFLLENBQUNLLE1BQU0sSUFBSTtRQUUxQyxPQUFPQztJQUNUO0lBRUFDLGlCQUFpQkMsUUFBUSxFQUFFQyxJQUFJLEVBQUVDLE9BQU8sRUFBRTtRQUN4QyxPQUFPcEIsS0FBSyxJQUFJLENBQUNVLEtBQUssRUFBRVEsVUFBVUMsTUFBTUM7SUFDMUM7SUFFQUMsb0JBQW9CSCxRQUFRLEVBQUVDLElBQUksRUFBRUMsT0FBTyxFQUFFO1FBQzNDLE9BQU9uQixRQUFRLElBQUksQ0FBQ1MsS0FBSyxFQUFFUSxVQUFVQyxNQUFNQztJQUM3QztJQUVBRSxhQUFhQyxLQUFLLEVBQUVqQixPQUFPLEVBQUVhLElBQUksRUFBRUMsT0FBTyxFQUFFO1FBQzFDLE1BQU1JLGNBQWNELE1BQU1FLFNBQVMsSUFDN0JDLHNCQUFzQixJQUFJLENBQUNELFNBQVMsSUFBSSxHQUFHO1FBRWpEbkIsUUFBUXFCLEtBQUssQ0FBQyxDQUFDLGVBQWUsRUFBRUgsWUFBWSxrQkFBa0IsRUFBRUUsb0JBQW9CLG1CQUFtQixDQUFDO1FBRXhHLE1BQU1FLGNBQWNMLE1BQU1YLFNBQVMsSUFDN0JpQixzQkFBc0IsSUFBSSxDQUFDakIsU0FBUztRQUUxQyxJQUFJZ0IsZ0JBQWdCQyxxQkFBcUI7WUFDdkMsTUFBTUMsVUFBVSxDQUFDLEtBQUssRUFBRU4sWUFBWSxhQUFhLEVBQUVFLG9CQUFvQiw0Q0FBNEMsQ0FBQyxFQUM5R0ssWUFBWUMsa0JBQVMsQ0FBQ0MsV0FBVyxDQUFDSDtZQUV4QyxPQUFPWCxLQUFLWTtRQUNkO1FBRUEsT0FBTyxJQUFJLENBQUNWLG1CQUFtQixDQUFDLENBQUNMLGNBQWNHLE1BQU1DLFNBQVNMO1lBQzVELElBQUlDLGlCQUFpQixNQUFNO2dCQUN6QixPQUFPSTtZQUNUO1lBRUEsTUFBTWMsT0FBT1gsTUFBTVksT0FBTyxDQUFDcEI7WUFFM0IsT0FBT0MsYUFBYW9CLFdBQVcsQ0FBQ0YsTUFBTTVCLFNBQVNhLE1BQU1DO1FBQ3ZELEdBQUdELE1BQU07WUFDUGIsUUFBUStCLEtBQUssQ0FBQyxDQUFDLGlCQUFpQixFQUFFYixZQUFZLGtCQUFrQixFQUFFRSxvQkFBb0IsaUJBQWlCLENBQUM7WUFFeEcsT0FBT047UUFDVDtJQUNGO0lBRUFrQixvQkFBb0J0QixZQUFZLEVBQUVWLE9BQU8sRUFBRWEsSUFBSSxFQUFFQyxPQUFPLEVBQUU7UUFDeEQsTUFBTW1CLHFCQUFxQnZCLGFBQWFTLFNBQVMsSUFDM0NDLHNCQUFzQixJQUFJLENBQUNELFNBQVMsSUFBSSxHQUFHO1FBRWpEbkIsUUFBUXFCLEtBQUssQ0FBQyxDQUFDLGVBQWUsRUFBRVksbUJBQW1CLHlCQUF5QixFQUFFYixvQkFBb0IsbUJBQW1CLENBQUM7UUFFdEgsTUFBTWMsZ0JBQWdCeEIsY0FBYyxHQUFHO1FBRXZDLE9BQU8sSUFBSSxDQUFDQyxnQkFBZ0IsQ0FBQyxDQUFDRDtZQUM1QixJQUFJQSxpQkFBaUIsTUFBTTtnQkFDekIsTUFBTXlCLGdCQUFnQnpCLGNBQWMsR0FBRztnQkFFdkMsT0FBT3dCLGNBQWNGLG1CQUFtQixDQUFDRyxlQUFlbkMsU0FBU2EsTUFBTUM7WUFDekU7UUFDRixHQUFHRCxNQUFNLENBQUN1QjtZQUNSLElBQUksQ0FBQ0Esc0JBQXNCO2dCQUN6QixNQUFNWixVQUFVLENBQUMsS0FBSyxFQUFFUyxtQkFBbUIsK0NBQStDLEVBQUViLG9CQUFvQixpQkFBaUIsQ0FBQyxFQUM1SEssWUFBWUMsa0JBQVMsQ0FBQ0MsV0FBVyxDQUFDSDtnQkFFeEMsT0FBT1gsS0FBS1k7WUFDZDtZQUVBekIsUUFBUStCLEtBQUssQ0FBQyxDQUFDLGlCQUFpQixFQUFFRSxtQkFBbUIseUJBQXlCLEVBQUViLG9CQUFvQixpQkFBaUIsQ0FBQztZQUV0SCxPQUFPTjtRQUNUO0lBQ0Y7SUFFQXVCLHFCQUFxQkMsYUFBYSxFQUFFdEMsT0FBTyxFQUFFYSxJQUFJLEVBQUVDLE9BQU8sRUFBRTtRQUMxRCxPQUFPd0IsY0FBY3ZCLG1CQUFtQixDQUFDLENBQUNMLGNBQWNHLE1BQU1DO1lBQzVELElBQUlKLGlCQUFpQixNQUFNO2dCQUN6QixPQUFPSTtZQUNUO1lBRUEsT0FBTyxJQUFJLENBQUNrQixtQkFBbUIsQ0FBQ3RCLGNBQWNWLFNBQVNhLE1BQU1DO1FBQy9ELEdBQUdELE1BQU1DO0lBQ1g7SUFFQSxPQUFPeUIsT0FBTyxnQkFBZ0I7QUFDaEMifQ==
@@ -16,6 +16,7 @@ function _interop_require_default(obj) {
16
16
  default: obj
17
17
  };
18
18
  }
19
+ const { forEach } = _occamlanguages.continuationUtilities;
19
20
  const _default = (0, _elements.define)(class Bindings extends _occamlanguages.Element {
20
21
  constructor(context, string, node, breakPoint, array){
21
22
  super(context, string, node, breakPoint);
@@ -32,26 +33,29 @@ const _default = (0, _elements.define)(class Bindings extends _occamlanguages.El
32
33
  const binding = this.array[index] || null;
33
34
  return binding;
34
35
  }
35
- forEachBinding(callback) {
36
- this.array.forEach(callback);
36
+ forEachBinding(callback, back, forward) {
37
+ return forEach(this.array, callback, back, forward);
37
38
  }
38
- compareTerms(terms, context) {
39
+ compareTerms(terms, context, back, forward) {
39
40
  const termsString = terms.getString(), bindingsString = this.getString(); ///
40
41
  context.trace(`Comparing the '${termsString}' terms against the '${bindingsString}' bindings...`);
41
42
  const termsLength = terms.getLength(), bindingsLength = this.getLength();
42
43
  if (termsLength !== bindingsLength) {
43
44
  const message = `The '${termsString}' expressions and '${bindingsString}' bindings are not of the same length.`, exception = _exception.default.fromMessage(message);
44
- throw exception;
45
+ return back(exception);
45
46
  }
46
- this.forEachBinding((binding, index)=>{
47
- if (binding !== null) {
48
- const term = terms.getTerm(index);
49
- binding.compareTerm(term, context);
47
+ return this.forEachBinding((binding, back, forward, index)=>{
48
+ if (binding === null) {
49
+ return forward();
50
50
  }
51
+ const term = terms.getTerm(index);
52
+ return binding.compareTerm(term, context, back, forward);
53
+ }, back, ()=>{
54
+ context.debug(`...compared the '${termsString}' terms against the '${bindingsString}' bindings.`);
55
+ forward();
51
56
  });
52
- context.debug(`...compared the '${termsString}' terms against the '${bindingsString}' bindings.`);
53
57
  }
54
58
  static name = "Bindings";
55
59
  });
56
60
 
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2JpbmRpbmdzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFbGVtZW50IH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgRXhjZXB0aW9uIGZyb20gXCIuLi9leGNlcHRpb25cIjtcblxuaW1wb3J0IHsgZGVmaW5lIH0gZnJvbSBcIi4uL2VsZW1lbnRzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZShjbGFzcyBCaW5kaW5ncyBleHRlbmRzIEVsZW1lbnQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIGFycmF5KSB7XG4gICAgc3VwZXIoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50KTtcblxuICAgIHRoaXMuYXJyYXkgPSBhcnJheTtcbiAgfVxuXG4gIGdldEFycmF5KCkge1xuICAgIHJldHVybiB0aGlzLmFycmF5O1xuICB9XG5cbiAgZ2V0TGVuZ3RoKCkge1xuICAgIGNvbnN0IGxlbmd0aCA9IHRoaXMuYXJyYXkubGVuZ3RoO1xuXG4gICAgcmV0dXJuIGxlbmd0aDtcbiAgfVxuXG4gIGdldEJpbmRpbmcoaW5kZXgpIHtcbiAgICBjb25zdCBiaW5kaW5nID0gdGhpcy5hcnJheVtpbmRleF0gfHwgbnVsbDtcblxuICAgIHJldHVybiBiaW5kaW5nO1xuICB9XG5cbiAgZm9yRWFjaEJpbmRpbmcoY2FsbGJhY2spIHsgdGhpcy5hcnJheS5mb3JFYWNoKGNhbGxiYWNrKTsgfVxuXG4gIGNvbXBhcmVUZXJtcyh0ZXJtcywgY29udGV4dCkge1xuICAgIGNvbnN0IHRlcm1zU3RyaW5nID0gdGVybXMuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgYmluZGluZ3NTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYENvbXBhcmluZyB0aGUgJyR7dGVybXNTdHJpbmd9JyB0ZXJtcyBhZ2FpbnN0IHRoZSAnJHtiaW5kaW5nc1N0cmluZ30nIGJpbmRpbmdzLi4uYCk7XG5cbiAgICBjb25zdCB0ZXJtc0xlbmd0aCA9IHRlcm1zLmdldExlbmd0aCgpLFxuICAgICAgICAgIGJpbmRpbmdzTGVuZ3RoID0gdGhpcy5nZXRMZW5ndGgoKTtcblxuICAgIGlmICh0ZXJtc0xlbmd0aCAhPT0gYmluZGluZ3NMZW5ndGgpIHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgVGhlICcke3Rlcm1zU3RyaW5nfScgZXhwcmVzc2lvbnMgYW5kICcke2JpbmRpbmdzU3RyaW5nfScgYmluZGluZ3MgYXJlIG5vdCBvZiB0aGUgc2FtZSBsZW5ndGguYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgdGhyb3cgZXhjZXB0aW9uO1xuICAgIH1cblxuICAgIHRoaXMuZm9yRWFjaEJpbmRpbmcoKGJpbmRpbmcsIGluZGV4KSA9PiB7XG4gICAgICBpZiAoYmluZGluZyAhPT0gbnVsbCkge1xuICAgICAgICBjb25zdCB0ZXJtID0gdGVybXMuZ2V0VGVybShpbmRleCk7XG5cbiAgICAgICAgYmluZGluZy5jb21wYXJlVGVybSh0ZXJtLCBjb250ZXh0KTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGNvbnRleHQuZGVidWcoYC4uLmNvbXBhcmVkIHRoZSAnJHt0ZXJtc1N0cmluZ30nIHRlcm1zIGFnYWluc3QgdGhlICcke2JpbmRpbmdzU3RyaW5nfScgYmluZGluZ3MuYCk7XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiQmluZGluZ3NcIjtcbn0pO1xuIl0sIm5hbWVzIjpbImRlZmluZSIsIkJpbmRpbmdzIiwiRWxlbWVudCIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiYnJlYWtQb2ludCIsImFycmF5IiwiZ2V0QXJyYXkiLCJnZXRMZW5ndGgiLCJsZW5ndGgiLCJnZXRCaW5kaW5nIiwiaW5kZXgiLCJiaW5kaW5nIiwiZm9yRWFjaEJpbmRpbmciLCJjYWxsYmFjayIsImZvckVhY2giLCJjb21wYXJlVGVybXMiLCJ0ZXJtcyIsInRlcm1zU3RyaW5nIiwiZ2V0U3RyaW5nIiwiYmluZGluZ3NTdHJpbmciLCJ0cmFjZSIsInRlcm1zTGVuZ3RoIiwiYmluZGluZ3NMZW5ndGgiLCJtZXNzYWdlIiwiZXhjZXB0aW9uIiwiRXhjZXB0aW9uIiwiZnJvbU1lc3NhZ2UiLCJ0ZXJtIiwiZ2V0VGVybSIsImNvbXBhcmVUZXJtIiwiZGVidWciLCJuYW1lIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFRQTs7O2VBQUE7OztnQ0FOd0I7a0VBRUY7MEJBRUM7Ozs7OztNQUV2QixXQUFlQSxJQUFBQSxnQkFBTSxFQUFDLE1BQU1DLGlCQUFpQkMsdUJBQU87SUFDbEQsWUFBWUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsVUFBVSxFQUFFQyxLQUFLLENBQUU7UUFDcEQsS0FBSyxDQUFDSixTQUFTQyxRQUFRQyxNQUFNQztRQUU3QixJQUFJLENBQUNDLEtBQUssR0FBR0E7SUFDZjtJQUVBQyxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUNELEtBQUs7SUFDbkI7SUFFQUUsWUFBWTtRQUNWLE1BQU1DLFNBQVMsSUFBSSxDQUFDSCxLQUFLLENBQUNHLE1BQU07UUFFaEMsT0FBT0E7SUFDVDtJQUVBQyxXQUFXQyxLQUFLLEVBQUU7UUFDaEIsTUFBTUMsVUFBVSxJQUFJLENBQUNOLEtBQUssQ0FBQ0ssTUFBTSxJQUFJO1FBRXJDLE9BQU9DO0lBQ1Q7SUFFQUMsZUFBZUMsUUFBUSxFQUFFO1FBQUUsSUFBSSxDQUFDUixLQUFLLENBQUNTLE9BQU8sQ0FBQ0Q7SUFBVztJQUV6REUsYUFBYUMsS0FBSyxFQUFFZixPQUFPLEVBQUU7UUFDM0IsTUFBTWdCLGNBQWNELE1BQU1FLFNBQVMsSUFDN0JDLGlCQUFpQixJQUFJLENBQUNELFNBQVMsSUFBSSxHQUFHO1FBRTVDakIsUUFBUW1CLEtBQUssQ0FBQyxDQUFDLGVBQWUsRUFBRUgsWUFBWSxxQkFBcUIsRUFBRUUsZUFBZSxhQUFhLENBQUM7UUFFaEcsTUFBTUUsY0FBY0wsTUFBTVQsU0FBUyxJQUM3QmUsaUJBQWlCLElBQUksQ0FBQ2YsU0FBUztRQUVyQyxJQUFJYyxnQkFBZ0JDLGdCQUFnQjtZQUNsQyxNQUFNQyxVQUFVLENBQUMsS0FBSyxFQUFFTixZQUFZLG1CQUFtQixFQUFFRSxlQUFlLHNDQUFzQyxDQUFDLEVBQ3pHSyxZQUFZQyxrQkFBUyxDQUFDQyxXQUFXLENBQUNIO1lBRXhDLE1BQU1DO1FBQ1I7UUFFQSxJQUFJLENBQUNaLGNBQWMsQ0FBQyxDQUFDRCxTQUFTRDtZQUM1QixJQUFJQyxZQUFZLE1BQU07Z0JBQ3BCLE1BQU1nQixPQUFPWCxNQUFNWSxPQUFPLENBQUNsQjtnQkFFM0JDLFFBQVFrQixXQUFXLENBQUNGLE1BQU0xQjtZQUM1QjtRQUNGO1FBRUFBLFFBQVE2QixLQUFLLENBQUMsQ0FBQyxpQkFBaUIsRUFBRWIsWUFBWSxxQkFBcUIsRUFBRUUsZUFBZSxXQUFXLENBQUM7SUFDbEc7SUFFQSxPQUFPWSxPQUFPLFdBQVc7QUFDM0IifQ==
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2JpbmRpbmdzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFbGVtZW50LCBjb250aW51YXRpb25VdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCBFeGNlcHRpb24gZnJvbSBcIi4uL2V4Y2VwdGlvblwiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vZWxlbWVudHNcIjtcblxuY29uc3QgeyBmb3JFYWNoIH0gPSBjb250aW51YXRpb25VdGlsaXRpZXM7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZShjbGFzcyBCaW5kaW5ncyBleHRlbmRzIEVsZW1lbnQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIGFycmF5KSB7XG4gICAgc3VwZXIoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50KTtcblxuICAgIHRoaXMuYXJyYXkgPSBhcnJheTtcbiAgfVxuXG4gIGdldEFycmF5KCkge1xuICAgIHJldHVybiB0aGlzLmFycmF5O1xuICB9XG5cbiAgZ2V0TGVuZ3RoKCkge1xuICAgIGNvbnN0IGxlbmd0aCA9IHRoaXMuYXJyYXkubGVuZ3RoO1xuXG4gICAgcmV0dXJuIGxlbmd0aDtcbiAgfVxuXG4gIGdldEJpbmRpbmcoaW5kZXgpIHtcbiAgICBjb25zdCBiaW5kaW5nID0gdGhpcy5hcnJheVtpbmRleF0gfHwgbnVsbDtcblxuICAgIHJldHVybiBiaW5kaW5nO1xuICB9XG5cbiAgZm9yRWFjaEJpbmRpbmcoY2FsbGJhY2ssIGJhY2ssIGZvcndhcmQpIHtcbiAgICByZXR1cm4gZm9yRWFjaCh0aGlzLmFycmF5LCBjYWxsYmFjaywgYmFjaywgZm9yd2FyZCk7XG4gIH1cblxuICBjb21wYXJlVGVybXModGVybXMsIGNvbnRleHQsIGJhY2ssIGZvcndhcmQpIHtcbiAgICBjb25zdCB0ZXJtc1N0cmluZyA9IHRlcm1zLmdldFN0cmluZygpLFxuICAgICAgICAgIGJpbmRpbmdzU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBDb21wYXJpbmcgdGhlICcke3Rlcm1zU3RyaW5nfScgdGVybXMgYWdhaW5zdCB0aGUgJyR7YmluZGluZ3NTdHJpbmd9JyBiaW5kaW5ncy4uLmApO1xuXG4gICAgY29uc3QgdGVybXNMZW5ndGggPSB0ZXJtcy5nZXRMZW5ndGgoKSxcbiAgICAgICAgICBiaW5kaW5nc0xlbmd0aCA9IHRoaXMuZ2V0TGVuZ3RoKCk7XG5cbiAgICBpZiAodGVybXNMZW5ndGggIT09IGJpbmRpbmdzTGVuZ3RoKSB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gYFRoZSAnJHt0ZXJtc1N0cmluZ30nIGV4cHJlc3Npb25zIGFuZCAnJHtiaW5kaW5nc1N0cmluZ30nIGJpbmRpbmdzIGFyZSBub3Qgb2YgdGhlIHNhbWUgbGVuZ3RoLmAsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHJldHVybiBiYWNrKGV4Y2VwdGlvbik7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuZm9yRWFjaEJpbmRpbmcoKGJpbmRpbmcsIGJhY2ssIGZvcndhcmQsIGluZGV4KSA9PiB7XG4gICAgICBpZiAoYmluZGluZyA9PT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gZm9yd2FyZCgpO1xuICAgICAgfVxuXG4gICAgICBjb25zdCB0ZXJtID0gdGVybXMuZ2V0VGVybShpbmRleCk7XG5cbiAgICAgIHJldHVybiBiaW5kaW5nLmNvbXBhcmVUZXJtKHRlcm0sIGNvbnRleHQsIGJhY2ssIGZvcndhcmQpO1xuICAgIH0sIGJhY2ssICgpID0+IHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLmNvbXBhcmVkIHRoZSAnJHt0ZXJtc1N0cmluZ30nIHRlcm1zIGFnYWluc3QgdGhlICcke2JpbmRpbmdzU3RyaW5nfScgYmluZGluZ3MuYCk7XG5cbiAgICAgIGZvcndhcmQoKTtcbiAgICB9KTtcbiAgfVxuXG4gIHN0YXRpYyBuYW1lID0gXCJCaW5kaW5nc1wiO1xufSk7XG4iXSwibmFtZXMiOlsiZm9yRWFjaCIsImNvbnRpbnVhdGlvblV0aWxpdGllcyIsImRlZmluZSIsIkJpbmRpbmdzIiwiRWxlbWVudCIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiYnJlYWtQb2ludCIsImFycmF5IiwiZ2V0QXJyYXkiLCJnZXRMZW5ndGgiLCJsZW5ndGgiLCJnZXRCaW5kaW5nIiwiaW5kZXgiLCJiaW5kaW5nIiwiZm9yRWFjaEJpbmRpbmciLCJjYWxsYmFjayIsImJhY2siLCJmb3J3YXJkIiwiY29tcGFyZVRlcm1zIiwidGVybXMiLCJ0ZXJtc1N0cmluZyIsImdldFN0cmluZyIsImJpbmRpbmdzU3RyaW5nIiwidHJhY2UiLCJ0ZXJtc0xlbmd0aCIsImJpbmRpbmdzTGVuZ3RoIiwibWVzc2FnZSIsImV4Y2VwdGlvbiIsIkV4Y2VwdGlvbiIsImZyb21NZXNzYWdlIiwidGVybSIsImdldFRlcm0iLCJjb21wYXJlVGVybSIsImRlYnVnIiwibmFtZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBVUE7OztlQUFBOzs7Z0NBUitDO2tFQUV6QjswQkFFQzs7Ozs7O0FBRXZCLE1BQU0sRUFBRUEsT0FBTyxFQUFFLEdBQUdDLHFDQUFxQjtNQUV6QyxXQUFlQyxJQUFBQSxnQkFBTSxFQUFDLE1BQU1DLGlCQUFpQkMsdUJBQU87SUFDbEQsWUFBWUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsVUFBVSxFQUFFQyxLQUFLLENBQUU7UUFDcEQsS0FBSyxDQUFDSixTQUFTQyxRQUFRQyxNQUFNQztRQUU3QixJQUFJLENBQUNDLEtBQUssR0FBR0E7SUFDZjtJQUVBQyxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUNELEtBQUs7SUFDbkI7SUFFQUUsWUFBWTtRQUNWLE1BQU1DLFNBQVMsSUFBSSxDQUFDSCxLQUFLLENBQUNHLE1BQU07UUFFaEMsT0FBT0E7SUFDVDtJQUVBQyxXQUFXQyxLQUFLLEVBQUU7UUFDaEIsTUFBTUMsVUFBVSxJQUFJLENBQUNOLEtBQUssQ0FBQ0ssTUFBTSxJQUFJO1FBRXJDLE9BQU9DO0lBQ1Q7SUFFQUMsZUFBZUMsUUFBUSxFQUFFQyxJQUFJLEVBQUVDLE9BQU8sRUFBRTtRQUN0QyxPQUFPbkIsUUFBUSxJQUFJLENBQUNTLEtBQUssRUFBRVEsVUFBVUMsTUFBTUM7SUFDN0M7SUFFQUMsYUFBYUMsS0FBSyxFQUFFaEIsT0FBTyxFQUFFYSxJQUFJLEVBQUVDLE9BQU8sRUFBRTtRQUMxQyxNQUFNRyxjQUFjRCxNQUFNRSxTQUFTLElBQzdCQyxpQkFBaUIsSUFBSSxDQUFDRCxTQUFTLElBQUksR0FBRztRQUU1Q2xCLFFBQVFvQixLQUFLLENBQUMsQ0FBQyxlQUFlLEVBQUVILFlBQVkscUJBQXFCLEVBQUVFLGVBQWUsYUFBYSxDQUFDO1FBRWhHLE1BQU1FLGNBQWNMLE1BQU1WLFNBQVMsSUFDN0JnQixpQkFBaUIsSUFBSSxDQUFDaEIsU0FBUztRQUVyQyxJQUFJZSxnQkFBZ0JDLGdCQUFnQjtZQUNsQyxNQUFNQyxVQUFVLENBQUMsS0FBSyxFQUFFTixZQUFZLG1CQUFtQixFQUFFRSxlQUFlLHNDQUFzQyxDQUFDLEVBQ3pHSyxZQUFZQyxrQkFBUyxDQUFDQyxXQUFXLENBQUNIO1lBRXhDLE9BQU9WLEtBQUtXO1FBQ2Q7UUFFQSxPQUFPLElBQUksQ0FBQ2IsY0FBYyxDQUFDLENBQUNELFNBQVNHLE1BQU1DLFNBQVNMO1lBQ2xELElBQUlDLFlBQVksTUFBTTtnQkFDcEIsT0FBT0k7WUFDVDtZQUVBLE1BQU1hLE9BQU9YLE1BQU1ZLE9BQU8sQ0FBQ25CO1lBRTNCLE9BQU9DLFFBQVFtQixXQUFXLENBQUNGLE1BQU0zQixTQUFTYSxNQUFNQztRQUNsRCxHQUFHRCxNQUFNO1lBQ1BiLFFBQVE4QixLQUFLLENBQUMsQ0FBQyxpQkFBaUIsRUFBRWIsWUFBWSxxQkFBcUIsRUFBRUUsZUFBZSxXQUFXLENBQUM7WUFFaEdMO1FBQ0Y7SUFDRjtJQUVBLE9BQU9pQixPQUFPLFdBQVc7QUFDM0IifQ==
@@ -30,7 +30,7 @@ const _default = (0, _elements.define)(class Contains extends _occamlanguages.El
30
30
  getSubstring() {
31
31
  return this.substring;
32
32
  }
33
- evaluate(context) {
33
+ evaluate(context, back, forward) {
34
34
  let value;
35
35
  const containsString = this.getString(); ///
36
36
  context.trace(`Evaluating the '${containsString}' function...`);
@@ -38,15 +38,15 @@ const _default = (0, _elements.define)(class Contains extends _occamlanguages.El
38
38
  const valueType = value.getType(), valueTypeStringType = valueType.isStringType();
39
39
  if (!valueTypeStringType) {
40
40
  const valueString = value.getString(), message = `The '${valueString}' value's '${valueType}' type should be '${_typeNames.STRING_TYPE_NAME}'.`, exception = _exception.default.fromMessage(message);
41
- throw exception;
41
+ return back(exception);
42
42
  }
43
43
  const string = value.getString(), boolean = string.contains(this.substring);
44
44
  value = (0, _value.valueFromBoolean)(boolean);
45
45
  const valueString = value.getString();
46
46
  context.debug(`...evaluated the '${containsString}' function as '${valueString}'.`);
47
- return value;
47
+ return forward(value);
48
48
  }
49
49
  static name = "Contains";
50
50
  });
51
51
 
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2NvbnRhaW5zLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFbGVtZW50IH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgRXhjZXB0aW9uIGZyb20gXCIuLi9leGNlcHRpb25cIjtcblxuaW1wb3J0IHsgZGVmaW5lIH0gZnJvbSBcIi4uL2VsZW1lbnRzXCI7XG5pbXBvcnQgeyBTVFJJTkdfVFlQRV9OQU1FIH0gZnJvbSBcIi4uL3R5cGVOYW1lc1wiO1xuaW1wb3J0IHsgdmFsdWVGcm9tQm9vbGVhbiB9IGZyb20gXCIuLi91dGlsaXRpZXMvdmFsdWVcIjtcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIENvbnRhaW5zIGV4dGVuZHMgRWxlbWVudCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgdmFyaWFibGUsIHN1YnN0cmluZykge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLnZhcmlhYmxlID0gdmFyaWFibGU7XG4gICAgdGhpcy5zdWJzdHJpbmcgPSBzdWJzdHJpbmc7XG4gIH1cblxuICBnZXRWYXJpYWJsZSgpIHtcbiAgICByZXR1cm4gdGhpcy52YXJpYWJsZTtcbiAgfVxuXG4gIGdldFN1YnN0cmluZygpIHtcbiAgICByZXR1cm4gdGhpcy5zdWJzdHJpbmc7XG4gIH1cblxuICBldmFsdWF0ZShjb250ZXh0KSB7XG4gICAgbGV0IHZhbHVlO1xuXG4gICAgY29uc3QgY29udGFpbnNTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSAnJHtjb250YWluc1N0cmluZ30nIGZ1bmN0aW9uLi4uYCk7XG5cbiAgICB2YWx1ZSA9IHRoaXMudmFyaWFibGUuZXZhbHVhdGUoY29udGV4dCk7XG5cbiAgICBjb25zdCB2YWx1ZVR5cGUgPSB2YWx1ZS5nZXRUeXBlKCksXG4gICAgICAgICAgdmFsdWVUeXBlU3RyaW5nVHlwZSA9IHZhbHVlVHlwZS5pc1N0cmluZ1R5cGUoKTtcblxuICAgIGlmICghdmFsdWVUeXBlU3RyaW5nVHlwZSkge1xuICAgICAgY29uc3QgdmFsdWVTdHJpbmcgPSB2YWx1ZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBgVGhlICcke3ZhbHVlU3RyaW5nfScgdmFsdWUncyAnJHt2YWx1ZVR5cGV9JyB0eXBlIHNob3VsZCBiZSAnJHtTVFJJTkdfVFlQRV9OQU1FfScuYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgdGhyb3cgZXhjZXB0aW9uO1xuICAgIH1cblxuICAgIGNvbnN0IHN0cmluZyA9IHZhbHVlLmdldFN0cmluZygpLFxuICAgICAgICAgIGJvb2xlYW4gPSBzdHJpbmcuY29udGFpbnModGhpcy5zdWJzdHJpbmcpO1xuXG4gICAgdmFsdWUgPSB2YWx1ZUZyb21Cb29sZWFuKGJvb2xlYW4pO1xuXG4gICAgY29uc3QgdmFsdWVTdHJpbmcgPSB2YWx1ZS5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQuZGVidWcoYC4uLmV2YWx1YXRlZCB0aGUgJyR7Y29udGFpbnNTdHJpbmd9JyBmdW5jdGlvbiBhcyAnJHt2YWx1ZVN0cmluZ30nLmApO1xuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIkNvbnRhaW5zXCI7XG59KTtcbiJdLCJuYW1lcyI6WyJkZWZpbmUiLCJDb250YWlucyIsIkVsZW1lbnQiLCJjb250ZXh0Iiwic3RyaW5nIiwibm9kZSIsImJyZWFrUG9pbnQiLCJ2YXJpYWJsZSIsInN1YnN0cmluZyIsImdldFZhcmlhYmxlIiwiZ2V0U3Vic3RyaW5nIiwiZXZhbHVhdGUiLCJ2YWx1ZSIsImNvbnRhaW5zU3RyaW5nIiwiZ2V0U3RyaW5nIiwidHJhY2UiLCJ2YWx1ZVR5cGUiLCJnZXRUeXBlIiwidmFsdWVUeXBlU3RyaW5nVHlwZSIsImlzU3RyaW5nVHlwZSIsInZhbHVlU3RyaW5nIiwibWVzc2FnZSIsIlNUUklOR19UWVBFX05BTUUiLCJleGNlcHRpb24iLCJFeGNlcHRpb24iLCJmcm9tTWVzc2FnZSIsImJvb2xlYW4iLCJjb250YWlucyIsInZhbHVlRnJvbUJvb2xlYW4iLCJkZWJ1ZyIsIm5hbWUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVVBOzs7ZUFBQTs7O2dDQVJ3QjtrRUFFRjswQkFFQzsyQkFDVTt1QkFDQTs7Ozs7O01BRWpDLFdBQWVBLElBQUFBLGdCQUFNLEVBQUMsTUFBTUMsaUJBQWlCQyx1QkFBTztJQUNsRCxZQUFZQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxVQUFVLEVBQUVDLFFBQVEsRUFBRUMsU0FBUyxDQUFFO1FBQ2xFLEtBQUssQ0FBQ0wsU0FBU0MsUUFBUUMsTUFBTUM7UUFFN0IsSUFBSSxDQUFDQyxRQUFRLEdBQUdBO1FBQ2hCLElBQUksQ0FBQ0MsU0FBUyxHQUFHQTtJQUNuQjtJQUVBQyxjQUFjO1FBQ1osT0FBTyxJQUFJLENBQUNGLFFBQVE7SUFDdEI7SUFFQUcsZUFBZTtRQUNiLE9BQU8sSUFBSSxDQUFDRixTQUFTO0lBQ3ZCO0lBRUFHLFNBQVNSLE9BQU8sRUFBRTtRQUNoQixJQUFJUztRQUVKLE1BQU1DLGlCQUFpQixJQUFJLENBQUNDLFNBQVMsSUFBSyxHQUFHO1FBRTdDWCxRQUFRWSxLQUFLLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRUYsZUFBZSxhQUFhLENBQUM7UUFFOURELFFBQVEsSUFBSSxDQUFDTCxRQUFRLENBQUNJLFFBQVEsQ0FBQ1I7UUFFL0IsTUFBTWEsWUFBWUosTUFBTUssT0FBTyxJQUN6QkMsc0JBQXNCRixVQUFVRyxZQUFZO1FBRWxELElBQUksQ0FBQ0QscUJBQXFCO1lBQ3hCLE1BQU1FLGNBQWNSLE1BQU1FLFNBQVMsSUFDN0JPLFVBQVUsQ0FBQyxLQUFLLEVBQUVELFlBQVksV0FBVyxFQUFFSixVQUFVLGtCQUFrQixFQUFFTSwyQkFBZ0IsQ0FBQyxFQUFFLENBQUMsRUFDN0ZDLFlBQVlDLGtCQUFTLENBQUNDLFdBQVcsQ0FBQ0o7WUFFeEMsTUFBTUU7UUFDUjtRQUVBLE1BQU1uQixTQUFTUSxNQUFNRSxTQUFTLElBQ3hCWSxVQUFVdEIsT0FBT3VCLFFBQVEsQ0FBQyxJQUFJLENBQUNuQixTQUFTO1FBRTlDSSxRQUFRZ0IsSUFBQUEsdUJBQWdCLEVBQUNGO1FBRXpCLE1BQU1OLGNBQWNSLE1BQU1FLFNBQVM7UUFFbkNYLFFBQVEwQixLQUFLLENBQUMsQ0FBQyxrQkFBa0IsRUFBRWhCLGVBQWUsZUFBZSxFQUFFTyxZQUFZLEVBQUUsQ0FBQztRQUVsRixPQUFPUjtJQUNUO0lBRUEsT0FBT2tCLE9BQU8sV0FBVztBQUMzQiJ9
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2NvbnRhaW5zLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFbGVtZW50IH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgRXhjZXB0aW9uIGZyb20gXCIuLi9leGNlcHRpb25cIjtcblxuaW1wb3J0IHsgZGVmaW5lIH0gZnJvbSBcIi4uL2VsZW1lbnRzXCI7XG5pbXBvcnQgeyBTVFJJTkdfVFlQRV9OQU1FIH0gZnJvbSBcIi4uL3R5cGVOYW1lc1wiO1xuaW1wb3J0IHsgdmFsdWVGcm9tQm9vbGVhbiB9IGZyb20gXCIuLi91dGlsaXRpZXMvdmFsdWVcIjtcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIENvbnRhaW5zIGV4dGVuZHMgRWxlbWVudCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgdmFyaWFibGUsIHN1YnN0cmluZykge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLnZhcmlhYmxlID0gdmFyaWFibGU7XG4gICAgdGhpcy5zdWJzdHJpbmcgPSBzdWJzdHJpbmc7XG4gIH1cblxuICBnZXRWYXJpYWJsZSgpIHtcbiAgICByZXR1cm4gdGhpcy52YXJpYWJsZTtcbiAgfVxuXG4gIGdldFN1YnN0cmluZygpIHtcbiAgICByZXR1cm4gdGhpcy5zdWJzdHJpbmc7XG4gIH1cblxuICBldmFsdWF0ZShjb250ZXh0LCBiYWNrLCBmb3J3YXJkKSB7XG4gICAgbGV0IHZhbHVlO1xuXG4gICAgY29uc3QgY29udGFpbnNTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSAnJHtjb250YWluc1N0cmluZ30nIGZ1bmN0aW9uLi4uYCk7XG5cbiAgICB2YWx1ZSA9IHRoaXMudmFyaWFibGUuZXZhbHVhdGUoY29udGV4dCk7XG5cbiAgICBjb25zdCB2YWx1ZVR5cGUgPSB2YWx1ZS5nZXRUeXBlKCksXG4gICAgICAgICAgdmFsdWVUeXBlU3RyaW5nVHlwZSA9IHZhbHVlVHlwZS5pc1N0cmluZ1R5cGUoKTtcblxuICAgIGlmICghdmFsdWVUeXBlU3RyaW5nVHlwZSkge1xuICAgICAgY29uc3QgdmFsdWVTdHJpbmcgPSB2YWx1ZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBgVGhlICcke3ZhbHVlU3RyaW5nfScgdmFsdWUncyAnJHt2YWx1ZVR5cGV9JyB0eXBlIHNob3VsZCBiZSAnJHtTVFJJTkdfVFlQRV9OQU1FfScuYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgcmV0dXJuIGJhY2soZXhjZXB0aW9uKTtcbiAgICB9XG5cbiAgICBjb25zdCBzdHJpbmcgPSB2YWx1ZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICBib29sZWFuID0gc3RyaW5nLmNvbnRhaW5zKHRoaXMuc3Vic3RyaW5nKTtcblxuICAgIHZhbHVlID0gdmFsdWVGcm9tQm9vbGVhbihib29sZWFuKTtcblxuICAgIGNvbnN0IHZhbHVlU3RyaW5nID0gdmFsdWUuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LmRlYnVnKGAuLi5ldmFsdWF0ZWQgdGhlICcke2NvbnRhaW5zU3RyaW5nfScgZnVuY3Rpb24gYXMgJyR7dmFsdWVTdHJpbmd9Jy5gKTtcblxuICAgIHJldHVybiBmb3J3YXJkKHZhbHVlKTtcbiAgfVxuXG4gIHN0YXRpYyBuYW1lID0gXCJDb250YWluc1wiO1xufSk7XG4iXSwibmFtZXMiOlsiZGVmaW5lIiwiQ29udGFpbnMiLCJFbGVtZW50IiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50IiwidmFyaWFibGUiLCJzdWJzdHJpbmciLCJnZXRWYXJpYWJsZSIsImdldFN1YnN0cmluZyIsImV2YWx1YXRlIiwiYmFjayIsImZvcndhcmQiLCJ2YWx1ZSIsImNvbnRhaW5zU3RyaW5nIiwiZ2V0U3RyaW5nIiwidHJhY2UiLCJ2YWx1ZVR5cGUiLCJnZXRUeXBlIiwidmFsdWVUeXBlU3RyaW5nVHlwZSIsImlzU3RyaW5nVHlwZSIsInZhbHVlU3RyaW5nIiwibWVzc2FnZSIsIlNUUklOR19UWVBFX05BTUUiLCJleGNlcHRpb24iLCJFeGNlcHRpb24iLCJmcm9tTWVzc2FnZSIsImJvb2xlYW4iLCJjb250YWlucyIsInZhbHVlRnJvbUJvb2xlYW4iLCJkZWJ1ZyIsIm5hbWUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVVBOzs7ZUFBQTs7O2dDQVJ3QjtrRUFFRjswQkFFQzsyQkFDVTt1QkFDQTs7Ozs7O01BRWpDLFdBQWVBLElBQUFBLGdCQUFNLEVBQUMsTUFBTUMsaUJBQWlCQyx1QkFBTztJQUNsRCxZQUFZQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxVQUFVLEVBQUVDLFFBQVEsRUFBRUMsU0FBUyxDQUFFO1FBQ2xFLEtBQUssQ0FBQ0wsU0FBU0MsUUFBUUMsTUFBTUM7UUFFN0IsSUFBSSxDQUFDQyxRQUFRLEdBQUdBO1FBQ2hCLElBQUksQ0FBQ0MsU0FBUyxHQUFHQTtJQUNuQjtJQUVBQyxjQUFjO1FBQ1osT0FBTyxJQUFJLENBQUNGLFFBQVE7SUFDdEI7SUFFQUcsZUFBZTtRQUNiLE9BQU8sSUFBSSxDQUFDRixTQUFTO0lBQ3ZCO0lBRUFHLFNBQVNSLE9BQU8sRUFBRVMsSUFBSSxFQUFFQyxPQUFPLEVBQUU7UUFDL0IsSUFBSUM7UUFFSixNQUFNQyxpQkFBaUIsSUFBSSxDQUFDQyxTQUFTLElBQUssR0FBRztRQUU3Q2IsUUFBUWMsS0FBSyxDQUFDLENBQUMsZ0JBQWdCLEVBQUVGLGVBQWUsYUFBYSxDQUFDO1FBRTlERCxRQUFRLElBQUksQ0FBQ1AsUUFBUSxDQUFDSSxRQUFRLENBQUNSO1FBRS9CLE1BQU1lLFlBQVlKLE1BQU1LLE9BQU8sSUFDekJDLHNCQUFzQkYsVUFBVUcsWUFBWTtRQUVsRCxJQUFJLENBQUNELHFCQUFxQjtZQUN4QixNQUFNRSxjQUFjUixNQUFNRSxTQUFTLElBQzdCTyxVQUFVLENBQUMsS0FBSyxFQUFFRCxZQUFZLFdBQVcsRUFBRUosVUFBVSxrQkFBa0IsRUFBRU0sMkJBQWdCLENBQUMsRUFBRSxDQUFDLEVBQzdGQyxZQUFZQyxrQkFBUyxDQUFDQyxXQUFXLENBQUNKO1lBRXhDLE9BQU9YLEtBQUthO1FBQ2Q7UUFFQSxNQUFNckIsU0FBU1UsTUFBTUUsU0FBUyxJQUN4QlksVUFBVXhCLE9BQU95QixRQUFRLENBQUMsSUFBSSxDQUFDckIsU0FBUztRQUU5Q00sUUFBUWdCLElBQUFBLHVCQUFnQixFQUFDRjtRQUV6QixNQUFNTixjQUFjUixNQUFNRSxTQUFTO1FBRW5DYixRQUFRNEIsS0FBSyxDQUFDLENBQUMsa0JBQWtCLEVBQUVoQixlQUFlLGVBQWUsRUFBRU8sWUFBWSxFQUFFLENBQUM7UUFFbEYsT0FBT1QsUUFBUUM7SUFDakI7SUFFQSxPQUFPa0IsT0FBTyxXQUFXO0FBQzNCIn0=
@@ -30,7 +30,7 @@ const _default = (0, _elements.define)(class EndsWith extends _occamlanguages.El
30
30
  getSubstring() {
31
31
  return this.substring;
32
32
  }
33
- evaluate(context) {
33
+ evaluate(context, back, forward) {
34
34
  let value;
35
35
  const endsWithString = this.getString(); ///
36
36
  context.trace(`Evaluating the '${endsWithString}' function...`);
@@ -38,15 +38,15 @@ const _default = (0, _elements.define)(class EndsWith extends _occamlanguages.El
38
38
  const valueType = value.getType(), valueTypeStringType = valueType.isStringType();
39
39
  if (!valueTypeStringType) {
40
40
  const valueString = value.getString(), message = `The '${valueString}' value's '${valueType}' type should be '${_typeNames.STRING_TYPE_NAME}'.`, exception = _exception.default.fromMessage(message);
41
- throw exception;
41
+ return back(exception);
42
42
  }
43
43
  const string = value.getString(), boolean = string.endsWith(this.substring);
44
44
  value = (0, _value.valueFromBoolean)(boolean);
45
45
  const valueString = value.getString();
46
46
  context.debug(`...evaluated the '${endsWithString}' function as '${valueString}'.`);
47
- return value;
47
+ return forward(value);
48
48
  }
49
49
  static name = "EndsWith";
50
50
  });
51
51
 
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2VuZHNXaXRoLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFbGVtZW50IH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgRXhjZXB0aW9uIGZyb20gXCIuLi9leGNlcHRpb25cIjtcblxuaW1wb3J0IHsgZGVmaW5lIH0gZnJvbSBcIi4uL2VsZW1lbnRzXCI7XG5pbXBvcnQgeyBTVFJJTkdfVFlQRV9OQU1FIH0gZnJvbSBcIi4uL3R5cGVOYW1lc1wiO1xuaW1wb3J0IHsgdmFsdWVGcm9tQm9vbGVhbiB9IGZyb20gXCIuLi91dGlsaXRpZXMvdmFsdWVcIjtcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIEVuZHNXaXRoIGV4dGVuZHMgRWxlbWVudCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgdmFyaWFibGUsIHN1YnN0cmluZykge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLnZhcmlhYmxlID0gdmFyaWFibGU7XG4gICAgdGhpcy5zdWJzdHJpbmcgPSBzdWJzdHJpbmc7XG4gIH1cblxuICBnZXRWYXJpYWJsZSgpIHtcbiAgICByZXR1cm4gdGhpcy52YXJpYWJsZTtcbiAgfVxuXG4gIGdldFN1YnN0cmluZygpIHtcbiAgICByZXR1cm4gdGhpcy5zdWJzdHJpbmc7XG4gIH1cblxuICBldmFsdWF0ZShjb250ZXh0KSB7XG4gICAgbGV0IHZhbHVlO1xuXG4gICAgY29uc3QgZW5kc1dpdGhTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSAnJHtlbmRzV2l0aFN0cmluZ30nIGZ1bmN0aW9uLi4uYCk7XG5cbiAgICB2YWx1ZSA9IHRoaXMudmFyaWFibGUuZXZhbHVhdGUoY29udGV4dCk7XG5cbiAgICBjb25zdCB2YWx1ZVR5cGUgPSB2YWx1ZS5nZXRUeXBlKCksXG4gICAgICAgICAgdmFsdWVUeXBlU3RyaW5nVHlwZSA9IHZhbHVlVHlwZS5pc1N0cmluZ1R5cGUoKTtcblxuICAgIGlmICghdmFsdWVUeXBlU3RyaW5nVHlwZSkge1xuICAgICAgY29uc3QgdmFsdWVTdHJpbmcgPSB2YWx1ZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBgVGhlICcke3ZhbHVlU3RyaW5nfScgdmFsdWUncyAnJHt2YWx1ZVR5cGV9JyB0eXBlIHNob3VsZCBiZSAnJHtTVFJJTkdfVFlQRV9OQU1FfScuYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgdGhyb3cgZXhjZXB0aW9uO1xuICAgIH1cblxuICAgIGNvbnN0IHN0cmluZyA9IHZhbHVlLmdldFN0cmluZygpLFxuICAgICAgICAgIGJvb2xlYW4gPSBzdHJpbmcuZW5kc1dpdGgodGhpcy5zdWJzdHJpbmcpO1xuXG4gICAgdmFsdWUgPSB2YWx1ZUZyb21Cb29sZWFuKGJvb2xlYW4pO1xuXG4gICAgY29uc3QgdmFsdWVTdHJpbmcgPSB2YWx1ZS5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQuZGVidWcoYC4uLmV2YWx1YXRlZCB0aGUgJyR7ZW5kc1dpdGhTdHJpbmd9JyBmdW5jdGlvbiBhcyAnJHt2YWx1ZVN0cmluZ30nLmApO1xuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIkVuZHNXaXRoXCI7XG59KTtcbiJdLCJuYW1lcyI6WyJkZWZpbmUiLCJFbmRzV2l0aCIsIkVsZW1lbnQiLCJjb250ZXh0Iiwic3RyaW5nIiwibm9kZSIsImJyZWFrUG9pbnQiLCJ2YXJpYWJsZSIsInN1YnN0cmluZyIsImdldFZhcmlhYmxlIiwiZ2V0U3Vic3RyaW5nIiwiZXZhbHVhdGUiLCJ2YWx1ZSIsImVuZHNXaXRoU3RyaW5nIiwiZ2V0U3RyaW5nIiwidHJhY2UiLCJ2YWx1ZVR5cGUiLCJnZXRUeXBlIiwidmFsdWVUeXBlU3RyaW5nVHlwZSIsImlzU3RyaW5nVHlwZSIsInZhbHVlU3RyaW5nIiwibWVzc2FnZSIsIlNUUklOR19UWVBFX05BTUUiLCJleGNlcHRpb24iLCJFeGNlcHRpb24iLCJmcm9tTWVzc2FnZSIsImJvb2xlYW4iLCJlbmRzV2l0aCIsInZhbHVlRnJvbUJvb2xlYW4iLCJkZWJ1ZyIsIm5hbWUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVVBOzs7ZUFBQTs7O2dDQVJ3QjtrRUFFRjswQkFFQzsyQkFDVTt1QkFDQTs7Ozs7O01BRWpDLFdBQWVBLElBQUFBLGdCQUFNLEVBQUMsTUFBTUMsaUJBQWlCQyx1QkFBTztJQUNsRCxZQUFZQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxVQUFVLEVBQUVDLFFBQVEsRUFBRUMsU0FBUyxDQUFFO1FBQ2xFLEtBQUssQ0FBQ0wsU0FBU0MsUUFBUUMsTUFBTUM7UUFFN0IsSUFBSSxDQUFDQyxRQUFRLEdBQUdBO1FBQ2hCLElBQUksQ0FBQ0MsU0FBUyxHQUFHQTtJQUNuQjtJQUVBQyxjQUFjO1FBQ1osT0FBTyxJQUFJLENBQUNGLFFBQVE7SUFDdEI7SUFFQUcsZUFBZTtRQUNiLE9BQU8sSUFBSSxDQUFDRixTQUFTO0lBQ3ZCO0lBRUFHLFNBQVNSLE9BQU8sRUFBRTtRQUNoQixJQUFJUztRQUVKLE1BQU1DLGlCQUFpQixJQUFJLENBQUNDLFNBQVMsSUFBSyxHQUFHO1FBRTdDWCxRQUFRWSxLQUFLLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRUYsZUFBZSxhQUFhLENBQUM7UUFFOURELFFBQVEsSUFBSSxDQUFDTCxRQUFRLENBQUNJLFFBQVEsQ0FBQ1I7UUFFL0IsTUFBTWEsWUFBWUosTUFBTUssT0FBTyxJQUN6QkMsc0JBQXNCRixVQUFVRyxZQUFZO1FBRWxELElBQUksQ0FBQ0QscUJBQXFCO1lBQ3hCLE1BQU1FLGNBQWNSLE1BQU1FLFNBQVMsSUFDN0JPLFVBQVUsQ0FBQyxLQUFLLEVBQUVELFlBQVksV0FBVyxFQUFFSixVQUFVLGtCQUFrQixFQUFFTSwyQkFBZ0IsQ0FBQyxFQUFFLENBQUMsRUFDN0ZDLFlBQVlDLGtCQUFTLENBQUNDLFdBQVcsQ0FBQ0o7WUFFeEMsTUFBTUU7UUFDUjtRQUVBLE1BQU1uQixTQUFTUSxNQUFNRSxTQUFTLElBQ3hCWSxVQUFVdEIsT0FBT3VCLFFBQVEsQ0FBQyxJQUFJLENBQUNuQixTQUFTO1FBRTlDSSxRQUFRZ0IsSUFBQUEsdUJBQWdCLEVBQUNGO1FBRXpCLE1BQU1OLGNBQWNSLE1BQU1FLFNBQVM7UUFFbkNYLFFBQVEwQixLQUFLLENBQUMsQ0FBQyxrQkFBa0IsRUFBRWhCLGVBQWUsZUFBZSxFQUFFTyxZQUFZLEVBQUUsQ0FBQztRQUVsRixPQUFPUjtJQUNUO0lBRUEsT0FBT2tCLE9BQU8sV0FBVztBQUMzQiJ9
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2VuZHNXaXRoLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFbGVtZW50IH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgRXhjZXB0aW9uIGZyb20gXCIuLi9leGNlcHRpb25cIjtcblxuaW1wb3J0IHsgZGVmaW5lIH0gZnJvbSBcIi4uL2VsZW1lbnRzXCI7XG5pbXBvcnQgeyBTVFJJTkdfVFlQRV9OQU1FIH0gZnJvbSBcIi4uL3R5cGVOYW1lc1wiO1xuaW1wb3J0IHsgdmFsdWVGcm9tQm9vbGVhbiB9IGZyb20gXCIuLi91dGlsaXRpZXMvdmFsdWVcIjtcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIEVuZHNXaXRoIGV4dGVuZHMgRWxlbWVudCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgdmFyaWFibGUsIHN1YnN0cmluZykge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLnZhcmlhYmxlID0gdmFyaWFibGU7XG4gICAgdGhpcy5zdWJzdHJpbmcgPSBzdWJzdHJpbmc7XG4gIH1cblxuICBnZXRWYXJpYWJsZSgpIHtcbiAgICByZXR1cm4gdGhpcy52YXJpYWJsZTtcbiAgfVxuXG4gIGdldFN1YnN0cmluZygpIHtcbiAgICByZXR1cm4gdGhpcy5zdWJzdHJpbmc7XG4gIH1cblxuICBldmFsdWF0ZShjb250ZXh0LCBiYWNrLCBmb3J3YXJkKSB7XG4gICAgbGV0IHZhbHVlO1xuXG4gICAgY29uc3QgZW5kc1dpdGhTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSAnJHtlbmRzV2l0aFN0cmluZ30nIGZ1bmN0aW9uLi4uYCk7XG5cbiAgICB2YWx1ZSA9IHRoaXMudmFyaWFibGUuZXZhbHVhdGUoY29udGV4dCk7XG5cbiAgICBjb25zdCB2YWx1ZVR5cGUgPSB2YWx1ZS5nZXRUeXBlKCksXG4gICAgICAgICAgdmFsdWVUeXBlU3RyaW5nVHlwZSA9IHZhbHVlVHlwZS5pc1N0cmluZ1R5cGUoKTtcblxuICAgIGlmICghdmFsdWVUeXBlU3RyaW5nVHlwZSkge1xuICAgICAgY29uc3QgdmFsdWVTdHJpbmcgPSB2YWx1ZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBgVGhlICcke3ZhbHVlU3RyaW5nfScgdmFsdWUncyAnJHt2YWx1ZVR5cGV9JyB0eXBlIHNob3VsZCBiZSAnJHtTVFJJTkdfVFlQRV9OQU1FfScuYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgcmV0dXJuIGJhY2soZXhjZXB0aW9uKTtcbiAgICB9XG5cbiAgICBjb25zdCBzdHJpbmcgPSB2YWx1ZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICBib29sZWFuID0gc3RyaW5nLmVuZHNXaXRoKHRoaXMuc3Vic3RyaW5nKTtcblxuICAgIHZhbHVlID0gdmFsdWVGcm9tQm9vbGVhbihib29sZWFuKTtcblxuICAgIGNvbnN0IHZhbHVlU3RyaW5nID0gdmFsdWUuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LmRlYnVnKGAuLi5ldmFsdWF0ZWQgdGhlICcke2VuZHNXaXRoU3RyaW5nfScgZnVuY3Rpb24gYXMgJyR7dmFsdWVTdHJpbmd9Jy5gKTtcblxuICAgIHJldHVybiBmb3J3YXJkKHZhbHVlKTtcbiAgfVxuXG4gIHN0YXRpYyBuYW1lID0gXCJFbmRzV2l0aFwiO1xufSk7XG4iXSwibmFtZXMiOlsiZGVmaW5lIiwiRW5kc1dpdGgiLCJFbGVtZW50IiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50IiwidmFyaWFibGUiLCJzdWJzdHJpbmciLCJnZXRWYXJpYWJsZSIsImdldFN1YnN0cmluZyIsImV2YWx1YXRlIiwiYmFjayIsImZvcndhcmQiLCJ2YWx1ZSIsImVuZHNXaXRoU3RyaW5nIiwiZ2V0U3RyaW5nIiwidHJhY2UiLCJ2YWx1ZVR5cGUiLCJnZXRUeXBlIiwidmFsdWVUeXBlU3RyaW5nVHlwZSIsImlzU3RyaW5nVHlwZSIsInZhbHVlU3RyaW5nIiwibWVzc2FnZSIsIlNUUklOR19UWVBFX05BTUUiLCJleGNlcHRpb24iLCJFeGNlcHRpb24iLCJmcm9tTWVzc2FnZSIsImJvb2xlYW4iLCJlbmRzV2l0aCIsInZhbHVlRnJvbUJvb2xlYW4iLCJkZWJ1ZyIsIm5hbWUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVVBOzs7ZUFBQTs7O2dDQVJ3QjtrRUFFRjswQkFFQzsyQkFDVTt1QkFDQTs7Ozs7O01BRWpDLFdBQWVBLElBQUFBLGdCQUFNLEVBQUMsTUFBTUMsaUJBQWlCQyx1QkFBTztJQUNsRCxZQUFZQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxVQUFVLEVBQUVDLFFBQVEsRUFBRUMsU0FBUyxDQUFFO1FBQ2xFLEtBQUssQ0FBQ0wsU0FBU0MsUUFBUUMsTUFBTUM7UUFFN0IsSUFBSSxDQUFDQyxRQUFRLEdBQUdBO1FBQ2hCLElBQUksQ0FBQ0MsU0FBUyxHQUFHQTtJQUNuQjtJQUVBQyxjQUFjO1FBQ1osT0FBTyxJQUFJLENBQUNGLFFBQVE7SUFDdEI7SUFFQUcsZUFBZTtRQUNiLE9BQU8sSUFBSSxDQUFDRixTQUFTO0lBQ3ZCO0lBRUFHLFNBQVNSLE9BQU8sRUFBRVMsSUFBSSxFQUFFQyxPQUFPLEVBQUU7UUFDL0IsSUFBSUM7UUFFSixNQUFNQyxpQkFBaUIsSUFBSSxDQUFDQyxTQUFTLElBQUssR0FBRztRQUU3Q2IsUUFBUWMsS0FBSyxDQUFDLENBQUMsZ0JBQWdCLEVBQUVGLGVBQWUsYUFBYSxDQUFDO1FBRTlERCxRQUFRLElBQUksQ0FBQ1AsUUFBUSxDQUFDSSxRQUFRLENBQUNSO1FBRS9CLE1BQU1lLFlBQVlKLE1BQU1LLE9BQU8sSUFDekJDLHNCQUFzQkYsVUFBVUcsWUFBWTtRQUVsRCxJQUFJLENBQUNELHFCQUFxQjtZQUN4QixNQUFNRSxjQUFjUixNQUFNRSxTQUFTLElBQzdCTyxVQUFVLENBQUMsS0FBSyxFQUFFRCxZQUFZLFdBQVcsRUFBRUosVUFBVSxrQkFBa0IsRUFBRU0sMkJBQWdCLENBQUMsRUFBRSxDQUFDLEVBQzdGQyxZQUFZQyxrQkFBUyxDQUFDQyxXQUFXLENBQUNKO1lBRXhDLE9BQU9YLEtBQUthO1FBQ2Q7UUFFQSxNQUFNckIsU0FBU1UsTUFBTUUsU0FBUyxJQUN4QlksVUFBVXhCLE9BQU95QixRQUFRLENBQUMsSUFBSSxDQUFDckIsU0FBUztRQUU5Q00sUUFBUWdCLElBQUFBLHVCQUFnQixFQUFDRjtRQUV6QixNQUFNTixjQUFjUixNQUFNRSxTQUFTO1FBRW5DYixRQUFRNEIsS0FBSyxDQUFDLENBQUMsa0JBQWtCLEVBQUVoQixlQUFlLGVBQWUsRUFBRU8sWUFBWSxFQUFFLENBQUM7UUFFbEYsT0FBT1QsUUFBUUM7SUFDakI7SUFFQSxPQUFPa0IsT0FBTyxXQUFXO0FBQzNCIn0=
@@ -79,7 +79,7 @@ const _default = (0, _elements.define)(class Every extends _occamlanguages.Eleme
79
79
  const value = this.variable.evaluate(context), valueType = value.getType(), valueTypeListType = valueType.isListType();
80
80
  if (valueTypeListType) {
81
81
  const valueString = value.getString(), message = `The '${valueString}' value's '${valueType}' type should be '${_typeNames.LIST_TYPE_NAME}'.`, exception = _exception.default.fromMessage(message);
82
- throw exception;
82
+ return back(exception);
83
83
  }
84
84
  const nodes = value.getNodes();
85
85
  return every(nodes, (node, back, forward)=>{
@@ -88,12 +88,12 @@ const _default = (0, _elements.define)(class Every extends _occamlanguages.Eleme
88
88
  const valueType = value.getType(), valueTypeBooleanType = valueType.isBooleanType();
89
89
  if (!valueTypeBooleanType) {
90
90
  const valueString = value.getString(), message = `The '${valueString}' value's type is '${valueType}' when it should be of type '${_typeNames.BOOLEAN_TYPE_NAME}'.`, exception = _exception.default.fromMessage(message);
91
- throw exception;
91
+ return back(exception);
92
92
  }
93
93
  const boolean = value.getBoolean();
94
94
  return forward(boolean);
95
95
  });
96
- }, (boolean)=>{
96
+ }, back, (boolean)=>{
97
97
  const value = (0, _value.valueFromBoolean)(boolean, context), valueString = value.getString();
98
98
  context.trace(`...evaluated the '${everyString}' every as '${valueString}'.`);
99
99
  return forward(value);
@@ -102,4 +102,4 @@ const _default = (0, _elements.define)(class Every extends _occamlanguages.Eleme
102
102
  static name = "Every";
103
103
  });
104
104
 
105
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2V2ZXJ5LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFbGVtZW50LCBicmVha1BvaW50VXRpbGl0aWVzLCBjb250aW51YXRpb25VdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCBlbGVtZW50cyBmcm9tIFwiLi4vZWxlbWVudHNcIjtcbmltcG9ydCBFeGNlcHRpb24gZnJvbSBcIi4uL2V4Y2VwdGlvblwiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vZWxlbWVudHNcIjtcbmltcG9ydCB7IHZhbHVlRnJvbU5vZGUsIHZhbHVlRnJvbUJvb2xlYW4gfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3ZhbHVlXCI7XG5pbXBvcnQgeyBMSVNUX1RZUEVfTkFNRSwgQk9PTEVBTl9UWVBFX05BTUUgfSBmcm9tIFwiLi4vdHlwZU5hbWVzXCI7XG5cbmNvbnN0IHsgZXZlcnkgfSA9IGNvbnRpbnVhdGlvblV0aWxpdGllcyxcbiAgICAgIHsgYnJlYWthYmxlIH0gPSBicmVha1BvaW50VXRpbGl0aWVzO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgRXZlcnkgZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCB2YXJpYWJsZSwgYW5vbnltb3VzUHJvY2VkdXJlKSB7XG4gICAgc3VwZXIoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50KTtcblxuICAgIHRoaXMuc3RyaW5nID0gc3RyaW5nO1xuICAgIHRoaXMudmFyaWFibGUgPSB2YXJpYWJsZTtcbiAgICB0aGlzLmFub255bW91c1Byb2NlZHVyZSA9IGFub255bW91c1Byb2NlZHVyZTtcbiAgfVxuXG4gIGdldFZhcmlhYmxlKCkge1xuICAgIHJldHVybiB0aGlzLnZhcmlhYmxlO1xuICB9XG5cbiAgZ2V0QW5vbnltb3VzUHJvY2VkdXJlKCkge1xuICAgIHJldHVybiB0aGlzLmFub255bW91c1Byb2NlZHVyZTtcbiAgfVxuXG4gIGV2YWx1YXRlID0gYnJlYWthYmxlKGZ1bmN0aW9uIChjb250ZXh0LCBiYWNrLCBmb3J3YXJkKSB7XG4gICAgY29uc3QgZXZlcnlTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC50cmFjZShgRXZhbHVhdGluZyB0aGUgJyR7ZXZlcnlTdHJpbmd9JyBldmVyeS4uLmApO1xuXG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLnZhcmlhYmxlLmV2YWx1YXRlKGNvbnRleHQpLFxuICAgICAgICAgIHZhbHVlVHlwZSA9IHZhbHVlLmdldFR5cGUoKSxcbiAgICAgICAgICB2YWx1ZVR5cGVMaXN0VHlwZSA9IHZhbHVlVHlwZS5pc0xpc3RUeXBlKCk7XG5cbiAgICBpZiAodmFsdWVUeXBlTGlzdFR5cGUpIHtcbiAgICAgIGNvbnN0IHZhbHVlU3RyaW5nID0gdmFsdWUuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICBtZXNzYWdlID0gYFRoZSAnJHt2YWx1ZVN0cmluZ30nIHZhbHVlJ3MgJyR7dmFsdWVUeXBlfScgdHlwZSBzaG91bGQgYmUgJyR7TElTVF9UWVBFX05BTUV9Jy5gLFxuICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICB0aHJvdyBleGNlcHRpb247XG4gICAgfVxuXG4gICAgY29uc3Qgbm9kZXMgPSB2YWx1ZS5nZXROb2RlcygpO1xuXG4gICAgcmV0dXJuIGV2ZXJ5KG5vZGVzLCAobm9kZSwgYmFjaywgZm9yd2FyZCkgPT4ge1xuICAgICAgY29uc3QgeyBWYWx1ZXMgfSA9IGVsZW1lbnRzLFxuICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZUZyb21Ob2RlKG5vZGUsIGNvbnRleHQpLFxuICAgICAgICAgICAgdmFsdWVzID0gVmFsdWVzLmZyb21WYWx1ZSh2YWx1ZSwgY29udGV4dCk7XG5cbiAgICAgIHRoaXMuYW5vbnltb3VzUHJvY2VkdXJlLmNhbGwodmFsdWVzLCBjb250ZXh0LCAodmFsdWUpID0+IHtcbiAgICAgICAgY29uc3QgdmFsdWVUeXBlID0gdmFsdWUuZ2V0VHlwZSgpLFxuICAgICAgICAgICAgICB2YWx1ZVR5cGVCb29sZWFuVHlwZSA9IHZhbHVlVHlwZS5pc0Jvb2xlYW5UeXBlKCk7XG5cbiAgICAgICAgaWYgKCF2YWx1ZVR5cGVCb29sZWFuVHlwZSkge1xuICAgICAgICAgIGNvbnN0IHZhbHVlU3RyaW5nID0gdmFsdWUuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICAgICAgbWVzc2FnZSA9IGBUaGUgJyR7dmFsdWVTdHJpbmd9JyB2YWx1ZSdzIHR5cGUgaXMgJyR7dmFsdWVUeXBlfScgd2hlbiBpdCBzaG91bGQgYmUgb2YgdHlwZSAnJHtCT09MRUFOX1RZUEVfTkFNRX0nLmAsXG4gICAgICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICAgICAgdGhyb3cgZXhjZXB0aW9uO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgYm9vbGVhbiA9IHZhbHVlLmdldEJvb2xlYW4oKTtcblxuICAgICAgICByZXR1cm4gZm9yd2FyZChib29sZWFuKTtcbiAgICAgIH0pO1xuICAgIH0sIChib29sZWFuKSA9PiB7XG4gICAgICBjb25zdCB2YWx1ZSA9IHZhbHVlRnJvbUJvb2xlYW4oYm9vbGVhbiwgY29udGV4dCksXG4gICAgICAgICAgICB2YWx1ZVN0cmluZyA9IHZhbHVlLmdldFN0cmluZygpO1xuXG4gICAgICBjb250ZXh0LnRyYWNlKGAuLi5ldmFsdWF0ZWQgdGhlICcke2V2ZXJ5U3RyaW5nfScgZXZlcnkgYXMgJyR7dmFsdWVTdHJpbmd9Jy5gKTtcblxuICAgICAgcmV0dXJuIGZvcndhcmQodmFsdWUpO1xuICAgIH0pO1xuICB9KTtcblxuICBzdGF0aWMgbmFtZSA9IFwiRXZlcnlcIjtcbn0pO1xuIl0sIm5hbWVzIjpbImV2ZXJ5IiwiY29udGludWF0aW9uVXRpbGl0aWVzIiwiYnJlYWthYmxlIiwiYnJlYWtQb2ludFV0aWxpdGllcyIsImRlZmluZSIsIkV2ZXJ5IiwiRWxlbWVudCIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiYnJlYWtQb2ludCIsInZhcmlhYmxlIiwiYW5vbnltb3VzUHJvY2VkdXJlIiwiZ2V0VmFyaWFibGUiLCJnZXRBbm9ueW1vdXNQcm9jZWR1cmUiLCJldmFsdWF0ZSIsImJhY2siLCJmb3J3YXJkIiwiZXZlcnlTdHJpbmciLCJnZXRTdHJpbmciLCJ0cmFjZSIsInZhbHVlIiwidmFsdWVUeXBlIiwiZ2V0VHlwZSIsInZhbHVlVHlwZUxpc3RUeXBlIiwiaXNMaXN0VHlwZSIsInZhbHVlU3RyaW5nIiwibWVzc2FnZSIsIkxJU1RfVFlQRV9OQU1FIiwiZXhjZXB0aW9uIiwiRXhjZXB0aW9uIiwiZnJvbU1lc3NhZ2UiLCJub2RlcyIsImdldE5vZGVzIiwiVmFsdWVzIiwiZWxlbWVudHMiLCJ2YWx1ZUZyb21Ob2RlIiwidmFsdWVzIiwiZnJvbVZhbHVlIiwiY2FsbCIsInZhbHVlVHlwZUJvb2xlYW5UeXBlIiwiaXNCb29sZWFuVHlwZSIsIkJPT0xFQU5fVFlQRV9OQU1FIiwiYm9vbGVhbiIsImdldEJvb2xlYW4iLCJ2YWx1ZUZyb21Cb29sZWFuIiwibmFtZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBY0E7OztlQUFBOzs7Z0NBWm9FO2tFQUUvQztrRUFDQzt1QkFHMEI7MkJBQ0U7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRWxELE1BQU0sRUFBRUEsS0FBSyxFQUFFLEdBQUdDLHFDQUFxQixFQUNqQyxFQUFFQyxTQUFTLEVBQUUsR0FBR0MsbUNBQW1CO01BRXpDLFdBQWVDLElBQUFBLGdCQUFNLEVBQUMsTUFBTUMsY0FBY0MsdUJBQU87SUFDL0MsWUFBWUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsVUFBVSxFQUFFQyxRQUFRLEVBQUVDLGtCQUFrQixDQUFFO1FBQzNFLEtBQUssQ0FBQ0wsU0FBU0MsUUFBUUMsTUFBTUM7UUFFN0IsSUFBSSxDQUFDRixNQUFNLEdBQUdBO1FBQ2QsSUFBSSxDQUFDRyxRQUFRLEdBQUdBO1FBQ2hCLElBQUksQ0FBQ0Msa0JBQWtCLEdBQUdBO0lBQzVCO0lBRUFDLGNBQWM7UUFDWixPQUFPLElBQUksQ0FBQ0YsUUFBUTtJQUN0QjtJQUVBRyx3QkFBd0I7UUFDdEIsT0FBTyxJQUFJLENBQUNGLGtCQUFrQjtJQUNoQztJQUVBRyxXQUFXYixVQUFVLFNBQVVLLE9BQU8sRUFBRVMsSUFBSSxFQUFFQyxPQUFPO1FBQ25ELE1BQU1DLGNBQWMsSUFBSSxDQUFDQyxTQUFTO1FBRWxDWixRQUFRYSxLQUFLLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRUYsWUFBWSxVQUFVLENBQUM7UUFFeEQsTUFBTUcsUUFBUSxJQUFJLENBQUNWLFFBQVEsQ0FBQ0ksUUFBUSxDQUFDUixVQUMvQmUsWUFBWUQsTUFBTUUsT0FBTyxJQUN6QkMsb0JBQW9CRixVQUFVRyxVQUFVO1FBRTlDLElBQUlELG1CQUFtQjtZQUNyQixNQUFNRSxjQUFjTCxNQUFNRixTQUFTLElBQzdCUSxVQUFVLENBQUMsS0FBSyxFQUFFRCxZQUFZLFdBQVcsRUFBRUosVUFBVSxrQkFBa0IsRUFBRU0seUJBQWMsQ0FBQyxFQUFFLENBQUMsRUFDM0ZDLFlBQVlDLGtCQUFTLENBQUNDLFdBQVcsQ0FBQ0o7WUFFeEMsTUFBTUU7UUFDUjtRQUVBLE1BQU1HLFFBQVFYLE1BQU1ZLFFBQVE7UUFFNUIsT0FBT2pDLE1BQU1nQyxPQUFPLENBQUN2QixNQUFNTyxNQUFNQztZQUMvQixNQUFNLEVBQUVpQixNQUFNLEVBQUUsR0FBR0MsaUJBQVEsRUFDckJkLFFBQVFlLElBQUFBLG9CQUFhLEVBQUMzQixNQUFNRixVQUM1QjhCLFNBQVNILE9BQU9JLFNBQVMsQ0FBQ2pCLE9BQU9kO1lBRXZDLElBQUksQ0FBQ0ssa0JBQWtCLENBQUMyQixJQUFJLENBQUNGLFFBQVE5QixTQUFTLENBQUNjO2dCQUM3QyxNQUFNQyxZQUFZRCxNQUFNRSxPQUFPLElBQ3pCaUIsdUJBQXVCbEIsVUFBVW1CLGFBQWE7Z0JBRXBELElBQUksQ0FBQ0Qsc0JBQXNCO29CQUN6QixNQUFNZCxjQUFjTCxNQUFNRixTQUFTLElBQzdCUSxVQUFVLENBQUMsS0FBSyxFQUFFRCxZQUFZLG1CQUFtQixFQUFFSixVQUFVLDZCQUE2QixFQUFFb0IsNEJBQWlCLENBQUMsRUFBRSxDQUFDLEVBQ2pIYixZQUFZQyxrQkFBUyxDQUFDQyxXQUFXLENBQUNKO29CQUV4QyxNQUFNRTtnQkFDUjtnQkFFQSxNQUFNYyxVQUFVdEIsTUFBTXVCLFVBQVU7Z0JBRWhDLE9BQU8zQixRQUFRMEI7WUFDakI7UUFDRixHQUFHLENBQUNBO1lBQ0YsTUFBTXRCLFFBQVF3QixJQUFBQSx1QkFBZ0IsRUFBQ0YsU0FBU3BDLFVBQ2xDbUIsY0FBY0wsTUFBTUYsU0FBUztZQUVuQ1osUUFBUWEsS0FBSyxDQUFDLENBQUMsa0JBQWtCLEVBQUVGLFlBQVksWUFBWSxFQUFFUSxZQUFZLEVBQUUsQ0FBQztZQUU1RSxPQUFPVCxRQUFRSTtRQUNqQjtJQUNGLEdBQUc7SUFFSCxPQUFPeUIsT0FBTyxRQUFRO0FBQ3hCIn0=
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2V2ZXJ5LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFbGVtZW50LCBicmVha1BvaW50VXRpbGl0aWVzLCBjb250aW51YXRpb25VdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCBlbGVtZW50cyBmcm9tIFwiLi4vZWxlbWVudHNcIjtcbmltcG9ydCBFeGNlcHRpb24gZnJvbSBcIi4uL2V4Y2VwdGlvblwiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vZWxlbWVudHNcIjtcbmltcG9ydCB7IHZhbHVlRnJvbU5vZGUsIHZhbHVlRnJvbUJvb2xlYW4gfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3ZhbHVlXCI7XG5pbXBvcnQgeyBMSVNUX1RZUEVfTkFNRSwgQk9PTEVBTl9UWVBFX05BTUUgfSBmcm9tIFwiLi4vdHlwZU5hbWVzXCI7XG5cbmNvbnN0IHsgZXZlcnkgfSA9IGNvbnRpbnVhdGlvblV0aWxpdGllcyxcbiAgICAgIHsgYnJlYWthYmxlIH0gPSBicmVha1BvaW50VXRpbGl0aWVzO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgRXZlcnkgZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCB2YXJpYWJsZSwgYW5vbnltb3VzUHJvY2VkdXJlKSB7XG4gICAgc3VwZXIoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50KTtcblxuICAgIHRoaXMuc3RyaW5nID0gc3RyaW5nO1xuICAgIHRoaXMudmFyaWFibGUgPSB2YXJpYWJsZTtcbiAgICB0aGlzLmFub255bW91c1Byb2NlZHVyZSA9IGFub255bW91c1Byb2NlZHVyZTtcbiAgfVxuXG4gIGdldFZhcmlhYmxlKCkge1xuICAgIHJldHVybiB0aGlzLnZhcmlhYmxlO1xuICB9XG5cbiAgZ2V0QW5vbnltb3VzUHJvY2VkdXJlKCkge1xuICAgIHJldHVybiB0aGlzLmFub255bW91c1Byb2NlZHVyZTtcbiAgfVxuXG4gIGV2YWx1YXRlID0gYnJlYWthYmxlKGZ1bmN0aW9uIChjb250ZXh0LCBiYWNrLCBmb3J3YXJkKSB7XG4gICAgY29uc3QgZXZlcnlTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC50cmFjZShgRXZhbHVhdGluZyB0aGUgJyR7ZXZlcnlTdHJpbmd9JyBldmVyeS4uLmApO1xuXG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLnZhcmlhYmxlLmV2YWx1YXRlKGNvbnRleHQpLFxuICAgICAgICAgIHZhbHVlVHlwZSA9IHZhbHVlLmdldFR5cGUoKSxcbiAgICAgICAgICB2YWx1ZVR5cGVMaXN0VHlwZSA9IHZhbHVlVHlwZS5pc0xpc3RUeXBlKCk7XG5cbiAgICBpZiAodmFsdWVUeXBlTGlzdFR5cGUpIHtcbiAgICAgIGNvbnN0IHZhbHVlU3RyaW5nID0gdmFsdWUuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICBtZXNzYWdlID0gYFRoZSAnJHt2YWx1ZVN0cmluZ30nIHZhbHVlJ3MgJyR7dmFsdWVUeXBlfScgdHlwZSBzaG91bGQgYmUgJyR7TElTVF9UWVBFX05BTUV9Jy5gLFxuICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICByZXR1cm4gYmFjayhleGNlcHRpb24pO1xuICAgIH1cblxuICAgIGNvbnN0IG5vZGVzID0gdmFsdWUuZ2V0Tm9kZXMoKTtcblxuICAgIHJldHVybiBldmVyeShub2RlcywgKG5vZGUsIGJhY2ssIGZvcndhcmQpID0+IHtcbiAgICAgIGNvbnN0IHsgVmFsdWVzIH0gPSBlbGVtZW50cyxcbiAgICAgICAgICAgIHZhbHVlID0gdmFsdWVGcm9tTm9kZShub2RlLCBjb250ZXh0KSxcbiAgICAgICAgICAgIHZhbHVlcyA9IFZhbHVlcy5mcm9tVmFsdWUodmFsdWUsIGNvbnRleHQpO1xuXG4gICAgICB0aGlzLmFub255bW91c1Byb2NlZHVyZS5jYWxsKHZhbHVlcywgY29udGV4dCwgKHZhbHVlKSA9PiB7XG4gICAgICAgIGNvbnN0IHZhbHVlVHlwZSA9IHZhbHVlLmdldFR5cGUoKSxcbiAgICAgICAgICAgICAgdmFsdWVUeXBlQm9vbGVhblR5cGUgPSB2YWx1ZVR5cGUuaXNCb29sZWFuVHlwZSgpO1xuXG4gICAgICAgIGlmICghdmFsdWVUeXBlQm9vbGVhblR5cGUpIHtcbiAgICAgICAgICBjb25zdCB2YWx1ZVN0cmluZyA9IHZhbHVlLmdldFN0cmluZygpLFxuICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSBgVGhlICcke3ZhbHVlU3RyaW5nfScgdmFsdWUncyB0eXBlIGlzICcke3ZhbHVlVHlwZX0nIHdoZW4gaXQgc2hvdWxkIGJlIG9mIHR5cGUgJyR7Qk9PTEVBTl9UWVBFX05BTUV9Jy5gLFxuICAgICAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgICAgIHJldHVybiBiYWNrKGV4Y2VwdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBib29sZWFuID0gdmFsdWUuZ2V0Qm9vbGVhbigpO1xuXG4gICAgICAgIHJldHVybiBmb3J3YXJkKGJvb2xlYW4pO1xuICAgICAgfSk7XG4gICAgfSwgYmFjaywgKGJvb2xlYW4pID0+IHtcbiAgICAgIGNvbnN0IHZhbHVlID0gdmFsdWVGcm9tQm9vbGVhbihib29sZWFuLCBjb250ZXh0KSxcbiAgICAgICAgICAgIHZhbHVlU3RyaW5nID0gdmFsdWUuZ2V0U3RyaW5nKCk7XG5cbiAgICAgIGNvbnRleHQudHJhY2UoYC4uLmV2YWx1YXRlZCB0aGUgJyR7ZXZlcnlTdHJpbmd9JyBldmVyeSBhcyAnJHt2YWx1ZVN0cmluZ30nLmApO1xuXG4gICAgICByZXR1cm4gZm9yd2FyZCh2YWx1ZSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIHN0YXRpYyBuYW1lID0gXCJFdmVyeVwiO1xufSk7XG4iXSwibmFtZXMiOlsiZXZlcnkiLCJjb250aW51YXRpb25VdGlsaXRpZXMiLCJicmVha2FibGUiLCJicmVha1BvaW50VXRpbGl0aWVzIiwiZGVmaW5lIiwiRXZlcnkiLCJFbGVtZW50IiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50IiwidmFyaWFibGUiLCJhbm9ueW1vdXNQcm9jZWR1cmUiLCJnZXRWYXJpYWJsZSIsImdldEFub255bW91c1Byb2NlZHVyZSIsImV2YWx1YXRlIiwiYmFjayIsImZvcndhcmQiLCJldmVyeVN0cmluZyIsImdldFN0cmluZyIsInRyYWNlIiwidmFsdWUiLCJ2YWx1ZVR5cGUiLCJnZXRUeXBlIiwidmFsdWVUeXBlTGlzdFR5cGUiLCJpc0xpc3RUeXBlIiwidmFsdWVTdHJpbmciLCJtZXNzYWdlIiwiTElTVF9UWVBFX05BTUUiLCJleGNlcHRpb24iLCJFeGNlcHRpb24iLCJmcm9tTWVzc2FnZSIsIm5vZGVzIiwiZ2V0Tm9kZXMiLCJWYWx1ZXMiLCJlbGVtZW50cyIsInZhbHVlRnJvbU5vZGUiLCJ2YWx1ZXMiLCJmcm9tVmFsdWUiLCJjYWxsIiwidmFsdWVUeXBlQm9vbGVhblR5cGUiLCJpc0Jvb2xlYW5UeXBlIiwiQk9PTEVBTl9UWVBFX05BTUUiLCJib29sZWFuIiwiZ2V0Qm9vbGVhbiIsInZhbHVlRnJvbUJvb2xlYW4iLCJuYW1lIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFjQTs7O2VBQUE7OztnQ0Fab0U7a0VBRS9DO2tFQUNDO3VCQUcwQjsyQkFDRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFbEQsTUFBTSxFQUFFQSxLQUFLLEVBQUUsR0FBR0MscUNBQXFCLEVBQ2pDLEVBQUVDLFNBQVMsRUFBRSxHQUFHQyxtQ0FBbUI7TUFFekMsV0FBZUMsSUFBQUEsZ0JBQU0sRUFBQyxNQUFNQyxjQUFjQyx1QkFBTztJQUMvQyxZQUFZQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxVQUFVLEVBQUVDLFFBQVEsRUFBRUMsa0JBQWtCLENBQUU7UUFDM0UsS0FBSyxDQUFDTCxTQUFTQyxRQUFRQyxNQUFNQztRQUU3QixJQUFJLENBQUNGLE1BQU0sR0FBR0E7UUFDZCxJQUFJLENBQUNHLFFBQVEsR0FBR0E7UUFDaEIsSUFBSSxDQUFDQyxrQkFBa0IsR0FBR0E7SUFDNUI7SUFFQUMsY0FBYztRQUNaLE9BQU8sSUFBSSxDQUFDRixRQUFRO0lBQ3RCO0lBRUFHLHdCQUF3QjtRQUN0QixPQUFPLElBQUksQ0FBQ0Ysa0JBQWtCO0lBQ2hDO0lBRUFHLFdBQVdiLFVBQVUsU0FBVUssT0FBTyxFQUFFUyxJQUFJLEVBQUVDLE9BQU87UUFDbkQsTUFBTUMsY0FBYyxJQUFJLENBQUNDLFNBQVM7UUFFbENaLFFBQVFhLEtBQUssQ0FBQyxDQUFDLGdCQUFnQixFQUFFRixZQUFZLFVBQVUsQ0FBQztRQUV4RCxNQUFNRyxRQUFRLElBQUksQ0FBQ1YsUUFBUSxDQUFDSSxRQUFRLENBQUNSLFVBQy9CZSxZQUFZRCxNQUFNRSxPQUFPLElBQ3pCQyxvQkFBb0JGLFVBQVVHLFVBQVU7UUFFOUMsSUFBSUQsbUJBQW1CO1lBQ3JCLE1BQU1FLGNBQWNMLE1BQU1GLFNBQVMsSUFDN0JRLFVBQVUsQ0FBQyxLQUFLLEVBQUVELFlBQVksV0FBVyxFQUFFSixVQUFVLGtCQUFrQixFQUFFTSx5QkFBYyxDQUFDLEVBQUUsQ0FBQyxFQUMzRkMsWUFBWUMsa0JBQVMsQ0FBQ0MsV0FBVyxDQUFDSjtZQUV4QyxPQUFPWCxLQUFLYTtRQUNkO1FBRUEsTUFBTUcsUUFBUVgsTUFBTVksUUFBUTtRQUU1QixPQUFPakMsTUFBTWdDLE9BQU8sQ0FBQ3ZCLE1BQU1PLE1BQU1DO1lBQy9CLE1BQU0sRUFBRWlCLE1BQU0sRUFBRSxHQUFHQyxpQkFBUSxFQUNyQmQsUUFBUWUsSUFBQUEsb0JBQWEsRUFBQzNCLE1BQU1GLFVBQzVCOEIsU0FBU0gsT0FBT0ksU0FBUyxDQUFDakIsT0FBT2Q7WUFFdkMsSUFBSSxDQUFDSyxrQkFBa0IsQ0FBQzJCLElBQUksQ0FBQ0YsUUFBUTlCLFNBQVMsQ0FBQ2M7Z0JBQzdDLE1BQU1DLFlBQVlELE1BQU1FLE9BQU8sSUFDekJpQix1QkFBdUJsQixVQUFVbUIsYUFBYTtnQkFFcEQsSUFBSSxDQUFDRCxzQkFBc0I7b0JBQ3pCLE1BQU1kLGNBQWNMLE1BQU1GLFNBQVMsSUFDN0JRLFVBQVUsQ0FBQyxLQUFLLEVBQUVELFlBQVksbUJBQW1CLEVBQUVKLFVBQVUsNkJBQTZCLEVBQUVvQiw0QkFBaUIsQ0FBQyxFQUFFLENBQUMsRUFDakhiLFlBQVlDLGtCQUFTLENBQUNDLFdBQVcsQ0FBQ0o7b0JBRXhDLE9BQU9YLEtBQUthO2dCQUNkO2dCQUVBLE1BQU1jLFVBQVV0QixNQUFNdUIsVUFBVTtnQkFFaEMsT0FBTzNCLFFBQVEwQjtZQUNqQjtRQUNGLEdBQUczQixNQUFNLENBQUMyQjtZQUNSLE1BQU10QixRQUFRd0IsSUFBQUEsdUJBQWdCLEVBQUNGLFNBQVNwQyxVQUNsQ21CLGNBQWNMLE1BQU1GLFNBQVM7WUFFbkNaLFFBQVFhLEtBQUssQ0FBQyxDQUFDLGtCQUFrQixFQUFFRixZQUFZLFlBQVksRUFBRVEsWUFBWSxFQUFFLENBQUM7WUFFNUUsT0FBT1QsUUFBUUk7UUFDakI7SUFDRixHQUFHO0lBRUgsT0FBT3lCLE9BQU8sUUFBUTtBQUN4QiJ9
@@ -112,52 +112,42 @@ const _default = (0, _elements.define)(class Expression extends _occamlanguages.
112
112
  return type;
113
113
  }
114
114
  evaluate(context, back, forward) {
115
- let value = null;
116
115
  if (false) {
117
116
  ///
118
117
  } else if (this.term !== null) {
119
- value = this.term.evaluate(context);
118
+ return this.term.evaluate(context, back, forward);
120
119
  } else if (this.nodeQuery !== null) {
121
- value = this.nodeQuery.evaluate(context);
120
+ return this.nodeQuery.evaluate(context, back, forward);
122
121
  } else if (this.nodesQuery !== null) {
123
- value = this.nodesQuery.evaluate(context);
122
+ return this.nodesQuery.evaluate(context, back, forward);
124
123
  } else if (this.lengthOf !== null) {
125
- value = this.lengthOf.evaluate(context);
124
+ return this.lengthOf.evaluate(context, back, forward);
126
125
  } else if (this.toInteger !== null) {
127
- value = this.toInteger.evaluate(context);
126
+ return this.toInteger.evaluate(context, back, forward);
128
127
  } else if (this.tryInteger !== null) {
129
- value = this.tryInteger.evaluate(context);
128
+ return this.tryInteger.evaluate(context, back, forward);
130
129
  } else if (this.contains !== null) {
131
- value = this.contains.evaluate(context);
130
+ return this.contains.evaluate(context, back, forward);
132
131
  } else if (this.endsWith !== null) {
133
- value = this.endsWith.evaluate(context);
132
+ return this.endsWith.evaluate(context, back, forward);
134
133
  } else if (this.startsWith !== null) {
135
- value = this.startsWith.evaluate(context);
136
- }
137
- if (value !== null) {
138
- return forward(value);
139
- }
140
- if (this.some !== null) {
134
+ return this.startsWith.evaluate(context, back, forward);
135
+ } else if (this.some !== null) {
141
136
  return this.some.evaluate(context, back, forward);
142
- }
143
- if (this.every !== null) {
137
+ } else if (this.every !== null) {
144
138
  return this.every.evaluate(context, back, forward);
145
- }
146
- if (this.reduce !== null) {
139
+ } else if (this.reduce !== null) {
147
140
  return this.reduce.evaluate(context, back, forward);
148
- }
149
- if (this.ternary !== null) {
141
+ } else if (this.ternary !== null) {
150
142
  return this.ternary.evaluate(context, back, forward);
151
- }
152
- if (this.returnBlock !== null) {
143
+ } else if (this.procedureCall !== null) {
144
+ return this.procedureCall.evaluate(context, back, forward);
145
+ } else if (this.returnBlock !== null) {
153
146
  const variables = [];
154
147
  return this.returnBlock.evaluate(variables, context, back, forward);
155
148
  }
156
- if (this.procedureCall !== null) {
157
- return this.procedureCall.evaluate(context, back, forward);
158
- }
159
149
  }
160
150
  static name = "Expression";
161
151
  });
162
152
 
163
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2V4cHJlc3Npb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IEVsZW1lbnQgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi9lbGVtZW50c1wiO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgRXhwcmVzc2lvbiBleHRlbmRzIEVsZW1lbnQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHRlcm0sIHNvbWUsIGV2ZXJ5LCByZWR1Y2UsIHRlcm5hcnksIG5vZGVRdWVyeSwgbm9kZXNRdWVyeSwgbGVuZ3RoT2YsIHRvSW50ZWdlciwgdHJ5SW50ZWdlciwgY29udGFpbnMsIGVuZHNXaXRoLCBzdGFydHNXaXRoLCByZXR1cm5CbG9jaywgcHJvY2VkdXJlQ2FsbCkge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLnRlcm0gPSB0ZXJtO1xuICAgIHRoaXMuc29tZSA9IHNvbWU7XG4gICAgdGhpcy5ldmVyeSA9IGV2ZXJ5O1xuICAgIHRoaXMucmVkdWNlID0gcmVkdWNlO1xuICAgIHRoaXMudGVybmFyeSA9IHRlcm5hcnk7XG4gICAgdGhpcy5ub2RlUXVlcnkgPSBub2RlUXVlcnk7XG4gICAgdGhpcy5ub2Rlc1F1ZXJ5ID0gbm9kZXNRdWVyeTtcbiAgICB0aGlzLmxlbmd0aE9mID0gbGVuZ3RoT2Y7XG4gICAgdGhpcy50b0ludGVnZXIgPSB0b0ludGVnZXI7XG4gICAgdGhpcy50cnlJbnRlZ2VyID0gdHJ5SW50ZWdlcjtcbiAgICB0aGlzLmNvbnRhaW5zID0gY29udGFpbnM7XG4gICAgdGhpcy5lbmRzV2l0aCA9IGVuZHNXaXRoO1xuICAgIHRoaXMuc3RhcnRzV2l0aCA9IHN0YXJ0c1dpdGg7XG4gICAgdGhpcy5yZXR1cm5CbG9jayA9IHJldHVybkJsb2NrO1xuICAgIHRoaXMucHJvY2VkdXJlQ2FsbCA9IHByb2NlZHVyZUNhbGw7XG4gIH1cblxuICBnZXRUZXJtKCkge1xuICAgIHJldHVybiB0aGlzLnRlcm07XG4gIH1cblxuICBnZXRTb21lKCkge1xuICAgIHJldHVybiB0aGlzLnNvbWU7XG4gIH1cblxuICBnZXRFdmVyeSgpIHtcbiAgICByZXR1cm4gdGhpcy5ldmVyeTtcbiAgfVxuXG4gIGdldFJlZHVjZSgpIHtcbiAgICByZXR1cm4gdGhpcy5yZWR1Y2U7XG4gIH1cblxuICBnZXRUZXJuYXJ5KCkge1xuICAgIHJldHVybiB0aGlzLnRlcm5heTtcbiAgfVxuXG4gIGdldE5vZGVRdWVyeSgpIHtcbiAgICByZXR1cm4gdGhpcy5ub2RlUXVlcnk7XG4gIH1cblxuICBnZXROb2Rlc1F1ZXJ5KCkge1xuICAgIHJldHVybiB0aGlzLm5vZGVzUXVlcnk7XG4gIH1cblxuICBnZXRMZW5ndGhPZigpIHtcbiAgICByZXR1cm4gdGhpcy5sZW5ndGhPZjtcbiAgfVxuXG4gIGdldFRvSW50ZWdlcigpIHtcbiAgICByZXR1cm4gdGhpcy50b0ludGVnZXI7XG4gIH1cblxuICBnZXRUcnlJbnRlZ2VyKCkge1xuICAgIHJldHVybiB0aGlzLnRyeUludGVnZXI7XG4gIH1cblxuICBnZXRDb250YWlucygpIHtcbiAgICByZXR1cm4gdGhpcy5jb250YWlucztcbiAgfVxuXG4gIGdldEVuZHNXaXRoKCkge1xuICAgIHJldHVybiB0aGlzLmVuZHNXaXRoO1xuICB9XG5cbiAgZ2V0U3RhcnRzV2l0aCgpIHtcbiAgICByZXR1cm4gdGhpcy5zdGFydHNXaXRoO1xuICB9XG5cbiAgZ2V0UmV0dXJuQmxvY2soKSB7XG4gICAgcmV0dXJuIHRoaXMucmV0dXJuQmxvY2s7XG4gIH1cblxuICBnZXRQcm9jZWR1cmVDYWxsKCkge1xuICAgIHJldHVybiB0aGlzLnByb2NlZHVyZUNhbGw7XG4gIH1cblxuICBnZXRUeXBlKCkge1xuICAgIGxldCB0eXBlO1xuXG4gICAgaWYgKGZhbHNlKSB7XG4gICAgICAvLy9cbiAgICB9IGVsc2UgaWYgKHRoaXMudGVybSAhPT0gbnVsbCkge1xuICAgICAgdHlwZSA9IHRoaXMudGVybS5nZXRUeXBlKCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnNvbWUgIT09IG51bGwpIHtcbiAgICAgIHR5cGUgPSB0aGlzLnNvbWUuZ2V0VHlwZSgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5ldmVyeSAhPT0gbnVsbCkge1xuICAgICAgdHlwZSA9IHRoaXMuZXZlcnkuZ2V0VHlwZSgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5yZWR1Y2UgIT09IG51bGwpIHtcbiAgICAgIHR5cGUgPSB0aGlzLnJlZHVjZS5nZXRUeXBlKCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnRlcm5hcnkgIT09IG51bGwpIHtcbiAgICAgIHR5cGUgPSB0aGlzLnRlcm5hcnkuZ2V0VHlwZSgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5ub2RlUXVlcnkgIT09IG51bGwpIHtcbiAgICAgIHR5cGUgPSB0aGlzLm5vZGVRdWVyeS5nZXRUeXBlKCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLm5vZGVzUXVlcnkgIT09IG51bGwpIHtcbiAgICAgIHR5cGUgPSB0aGlzLm5vZGVzUXVlcnkuZ2V0VHlwZSgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5sZW5ndGhPZiAhPT0gbnVsbCkge1xuICAgICAgdHlwZSA9IHRoaXMubGVuZ3RoT2YuZ2V0VHlwZSgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy50b0ludGVnZXIgIT09IG51bGwpIHtcbiAgICAgIHR5cGUgPSB0aGlzLnRvSW50ZWdlci5nZXRUeXBlKCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnRyeUludGVnZXIgIT09IG51bGwpIHtcbiAgICAgIHR5cGUgPSB0aGlzLnRyeUludGVnZXIuZ2V0VHlwZSgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5jb250YWlucyAhPT0gbnVsbCkge1xuICAgICAgdHlwZSA9IHRoaXMuY29udGFpbnMuZ2V0VHlwZSgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5lbmRzV2l0aCAhPT0gbnVsbCkge1xuICAgICAgdHlwZSA9IHRoaXMuZW5kc1dpdGguZ2V0VHlwZSgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5zdGFydHNXaXRoICE9PSBudWxsKSB7XG4gICAgICB0eXBlID0gdGhpcy5zdGFydHNXaXRoLmdldFR5cGUoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMucmV0dXJuQmxvY2sgIT09IG51bGwpIHtcbiAgICAgIHR5cGUgPSB0aGlzLnJldHVybkJsb2NrLmdldFR5cGUoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMucHJvY2VkdXJlQ2FsbCAhPT0gbnVsbCkge1xuICAgICAgdHlwZSA9IHRoaXMucHJvY2VkdXJlQ2FsbC5nZXRUeXBlKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHR5cGU7XG4gIH1cblxuICBldmFsdWF0ZShjb250ZXh0LCBiYWNrLCBmb3J3YXJkKSB7XG4gICAgbGV0IHZhbHVlID0gbnVsbDtcblxuICAgIGlmIChmYWxzZSkge1xuICAgICAgLy8vXG4gICAgfSBlbHNlIGlmICh0aGlzLnRlcm0gIT09IG51bGwpIHtcbiAgICAgIHZhbHVlID0gdGhpcy50ZXJtLmV2YWx1YXRlKGNvbnRleHQpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5ub2RlUXVlcnkgIT09IG51bGwpIHtcbiAgICAgIHZhbHVlID0gdGhpcy5ub2RlUXVlcnkuZXZhbHVhdGUoY29udGV4dCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLm5vZGVzUXVlcnkgIT09IG51bGwpIHtcbiAgICAgIHZhbHVlID0gdGhpcy5ub2Rlc1F1ZXJ5LmV2YWx1YXRlKGNvbnRleHQpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5sZW5ndGhPZiAhPT0gbnVsbCkge1xuICAgICAgdmFsdWUgPSB0aGlzLmxlbmd0aE9mLmV2YWx1YXRlKGNvbnRleHQpO1xuICAgIH0gZWxzZSBpZiAodGhpcy50b0ludGVnZXIgIT09IG51bGwpIHtcbiAgICAgIHZhbHVlID0gdGhpcy50b0ludGVnZXIuZXZhbHVhdGUoY29udGV4dCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnRyeUludGVnZXIgIT09IG51bGwpIHtcbiAgICAgIHZhbHVlID0gdGhpcy50cnlJbnRlZ2VyLmV2YWx1YXRlKGNvbnRleHQpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5jb250YWlucyAhPT0gbnVsbCkge1xuICAgICAgdmFsdWUgPSB0aGlzLmNvbnRhaW5zLmV2YWx1YXRlKGNvbnRleHQpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5lbmRzV2l0aCAhPT0gbnVsbCkge1xuICAgICAgdmFsdWUgPSB0aGlzLmVuZHNXaXRoLmV2YWx1YXRlKGNvbnRleHQpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5zdGFydHNXaXRoICE9PSBudWxsKSB7XG4gICAgICB2YWx1ZSA9IHRoaXMuc3RhcnRzV2l0aC5ldmFsdWF0ZShjb250ZXh0KTtcbiAgICB9XG5cbiAgICBpZiAodmFsdWUgIT09IG51bGwpIHtcbiAgICAgIHJldHVybiBmb3J3YXJkKHZhbHVlKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zb21lICE9PSBudWxsKSB7XG4gICAgICByZXR1cm4gdGhpcy5zb21lLmV2YWx1YXRlKGNvbnRleHQsIGJhY2ssIGZvcndhcmQpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmV2ZXJ5ICE9PSBudWxsKSB7XG4gICAgICAgcmV0dXJuIHRoaXMuZXZlcnkuZXZhbHVhdGUoY29udGV4dCwgYmFjaywgZm9yd2FyZCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucmVkdWNlICE9PSBudWxsKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZWR1Y2UuZXZhbHVhdGUoY29udGV4dCwgYmFjaywgZm9yd2FyZCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudGVybmFyeSAhPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHRoaXMudGVybmFyeS5ldmFsdWF0ZShjb250ZXh0LCBiYWNrLCBmb3J3YXJkKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5yZXR1cm5CbG9jayAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgdmFyaWFibGVzID0gW107XG5cbiAgICAgIHJldHVybiB0aGlzLnJldHVybkJsb2NrLmV2YWx1YXRlKHZhcmlhYmxlcywgY29udGV4dCwgYmFjaywgZm9yd2FyZCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucHJvY2VkdXJlQ2FsbCAhPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHRoaXMucHJvY2VkdXJlQ2FsbC5ldmFsdWF0ZShjb250ZXh0LCBiYWNrLCBmb3J3YXJkKTtcbiAgICB9XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiRXhwcmVzc2lvblwiO1xufSk7XG4iXSwibmFtZXMiOlsiZGVmaW5lIiwiRXhwcmVzc2lvbiIsIkVsZW1lbnQiLCJjb250ZXh0Iiwic3RyaW5nIiwibm9kZSIsImJyZWFrUG9pbnQiLCJ0ZXJtIiwic29tZSIsImV2ZXJ5IiwicmVkdWNlIiwidGVybmFyeSIsIm5vZGVRdWVyeSIsIm5vZGVzUXVlcnkiLCJsZW5ndGhPZiIsInRvSW50ZWdlciIsInRyeUludGVnZXIiLCJjb250YWlucyIsImVuZHNXaXRoIiwic3RhcnRzV2l0aCIsInJldHVybkJsb2NrIiwicHJvY2VkdXJlQ2FsbCIsImdldFRlcm0iLCJnZXRTb21lIiwiZ2V0RXZlcnkiLCJnZXRSZWR1Y2UiLCJnZXRUZXJuYXJ5IiwidGVybmF5IiwiZ2V0Tm9kZVF1ZXJ5IiwiZ2V0Tm9kZXNRdWVyeSIsImdldExlbmd0aE9mIiwiZ2V0VG9JbnRlZ2VyIiwiZ2V0VHJ5SW50ZWdlciIsImdldENvbnRhaW5zIiwiZ2V0RW5kc1dpdGgiLCJnZXRTdGFydHNXaXRoIiwiZ2V0UmV0dXJuQmxvY2siLCJnZXRQcm9jZWR1cmVDYWxsIiwiZ2V0VHlwZSIsInR5cGUiLCJldmFsdWF0ZSIsImJhY2siLCJmb3J3YXJkIiwidmFsdWUiLCJ2YXJpYWJsZXMiLCJuYW1lIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFNQTs7O2VBQUE7OztnQ0FKd0I7MEJBRUQ7TUFFdkIsV0FBZUEsSUFBQUEs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
153
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2V4cHJlc3Npb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IEVsZW1lbnQgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi9lbGVtZW50c1wiO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgRXhwcmVzc2lvbiBleHRlbmRzIEVsZW1lbnQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHRlcm0sIHNvbWUsIGV2ZXJ5LCByZWR1Y2UsIHRlcm5hcnksIG5vZGVRdWVyeSwgbm9kZXNRdWVyeSwgbGVuZ3RoT2YsIHRvSW50ZWdlciwgdHJ5SW50ZWdlciwgY29udGFpbnMsIGVuZHNXaXRoLCBzdGFydHNXaXRoLCByZXR1cm5CbG9jaywgcHJvY2VkdXJlQ2FsbCkge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLnRlcm0gPSB0ZXJtO1xuICAgIHRoaXMuc29tZSA9IHNvbWU7XG4gICAgdGhpcy5ldmVyeSA9IGV2ZXJ5O1xuICAgIHRoaXMucmVkdWNlID0gcmVkdWNlO1xuICAgIHRoaXMudGVybmFyeSA9IHRlcm5hcnk7XG4gICAgdGhpcy5ub2RlUXVlcnkgPSBub2RlUXVlcnk7XG4gICAgdGhpcy5ub2Rlc1F1ZXJ5ID0gbm9kZXNRdWVyeTtcbiAgICB0aGlzLmxlbmd0aE9mID0gbGVuZ3RoT2Y7XG4gICAgdGhpcy50b0ludGVnZXIgPSB0b0ludGVnZXI7XG4gICAgdGhpcy50cnlJbnRlZ2VyID0gdHJ5SW50ZWdlcjtcbiAgICB0aGlzLmNvbnRhaW5zID0gY29udGFpbnM7XG4gICAgdGhpcy5lbmRzV2l0aCA9IGVuZHNXaXRoO1xuICAgIHRoaXMuc3RhcnRzV2l0aCA9IHN0YXJ0c1dpdGg7XG4gICAgdGhpcy5yZXR1cm5CbG9jayA9IHJldHVybkJsb2NrO1xuICAgIHRoaXMucHJvY2VkdXJlQ2FsbCA9IHByb2NlZHVyZUNhbGw7XG4gIH1cblxuICBnZXRUZXJtKCkge1xuICAgIHJldHVybiB0aGlzLnRlcm07XG4gIH1cblxuICBnZXRTb21lKCkge1xuICAgIHJldHVybiB0aGlzLnNvbWU7XG4gIH1cblxuICBnZXRFdmVyeSgpIHtcbiAgICByZXR1cm4gdGhpcy5ldmVyeTtcbiAgfVxuXG4gIGdldFJlZHVjZSgpIHtcbiAgICByZXR1cm4gdGhpcy5yZWR1Y2U7XG4gIH1cblxuICBnZXRUZXJuYXJ5KCkge1xuICAgIHJldHVybiB0aGlzLnRlcm5heTtcbiAgfVxuXG4gIGdldE5vZGVRdWVyeSgpIHtcbiAgICByZXR1cm4gdGhpcy5ub2RlUXVlcnk7XG4gIH1cblxuICBnZXROb2Rlc1F1ZXJ5KCkge1xuICAgIHJldHVybiB0aGlzLm5vZGVzUXVlcnk7XG4gIH1cblxuICBnZXRMZW5ndGhPZigpIHtcbiAgICByZXR1cm4gdGhpcy5sZW5ndGhPZjtcbiAgfVxuXG4gIGdldFRvSW50ZWdlcigpIHtcbiAgICByZXR1cm4gdGhpcy50b0ludGVnZXI7XG4gIH1cblxuICBnZXRUcnlJbnRlZ2VyKCkge1xuICAgIHJldHVybiB0aGlzLnRyeUludGVnZXI7XG4gIH1cblxuICBnZXRDb250YWlucygpIHtcbiAgICByZXR1cm4gdGhpcy5jb250YWlucztcbiAgfVxuXG4gIGdldEVuZHNXaXRoKCkge1xuICAgIHJldHVybiB0aGlzLmVuZHNXaXRoO1xuICB9XG5cbiAgZ2V0U3RhcnRzV2l0aCgpIHtcbiAgICByZXR1cm4gdGhpcy5zdGFydHNXaXRoO1xuICB9XG5cbiAgZ2V0UmV0dXJuQmxvY2soKSB7XG4gICAgcmV0dXJuIHRoaXMucmV0dXJuQmxvY2s7XG4gIH1cblxuICBnZXRQcm9jZWR1cmVDYWxsKCkge1xuICAgIHJldHVybiB0aGlzLnByb2NlZHVyZUNhbGw7XG4gIH1cblxuICBnZXRUeXBlKCkge1xuICAgIGxldCB0eXBlO1xuXG4gICAgaWYgKGZhbHNlKSB7XG4gICAgICAvLy9cbiAgICB9IGVsc2UgaWYgKHRoaXMudGVybSAhPT0gbnVsbCkge1xuICAgICAgdHlwZSA9IHRoaXMudGVybS5nZXRUeXBlKCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnNvbWUgIT09IG51bGwpIHtcbiAgICAgIHR5cGUgPSB0aGlzLnNvbWUuZ2V0VHlwZSgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5ldmVyeSAhPT0gbnVsbCkge1xuICAgICAgdHlwZSA9IHRoaXMuZXZlcnkuZ2V0VHlwZSgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5yZWR1Y2UgIT09IG51bGwpIHtcbiAgICAgIHR5cGUgPSB0aGlzLnJlZHVjZS5nZXRUeXBlKCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnRlcm5hcnkgIT09IG51bGwpIHtcbiAgICAgIHR5cGUgPSB0aGlzLnRlcm5hcnkuZ2V0VHlwZSgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5ub2RlUXVlcnkgIT09IG51bGwpIHtcbiAgICAgIHR5cGUgPSB0aGlzLm5vZGVRdWVyeS5nZXRUeXBlKCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLm5vZGVzUXVlcnkgIT09IG51bGwpIHtcbiAgICAgIHR5cGUgPSB0aGlzLm5vZGVzUXVlcnkuZ2V0VHlwZSgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5sZW5ndGhPZiAhPT0gbnVsbCkge1xuICAgICAgdHlwZSA9IHRoaXMubGVuZ3RoT2YuZ2V0VHlwZSgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy50b0ludGVnZXIgIT09IG51bGwpIHtcbiAgICAgIHR5cGUgPSB0aGlzLnRvSW50ZWdlci5nZXRUeXBlKCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnRyeUludGVnZXIgIT09IG51bGwpIHtcbiAgICAgIHR5cGUgPSB0aGlzLnRyeUludGVnZXIuZ2V0VHlwZSgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5jb250YWlucyAhPT0gbnVsbCkge1xuICAgICAgdHlwZSA9IHRoaXMuY29udGFpbnMuZ2V0VHlwZSgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5lbmRzV2l0aCAhPT0gbnVsbCkge1xuICAgICAgdHlwZSA9IHRoaXMuZW5kc1dpdGguZ2V0VHlwZSgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5zdGFydHNXaXRoICE9PSBudWxsKSB7XG4gICAgICB0eXBlID0gdGhpcy5zdGFydHNXaXRoLmdldFR5cGUoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMucmV0dXJuQmxvY2sgIT09IG51bGwpIHtcbiAgICAgIHR5cGUgPSB0aGlzLnJldHVybkJsb2NrLmdldFR5cGUoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMucHJvY2VkdXJlQ2FsbCAhPT0gbnVsbCkge1xuICAgICAgdHlwZSA9IHRoaXMucHJvY2VkdXJlQ2FsbC5nZXRUeXBlKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHR5cGU7XG4gIH1cblxuICBldmFsdWF0ZShjb250ZXh0LCBiYWNrLCBmb3J3YXJkKSB7XG4gICAgaWYgKGZhbHNlKSB7XG4gICAgICAvLy9cbiAgICB9IGVsc2UgaWYgKHRoaXMudGVybSAhPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHRoaXMudGVybS5ldmFsdWF0ZShjb250ZXh0LCBiYWNrLCBmb3J3YXJkKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMubm9kZVF1ZXJ5ICE9PSBudWxsKSB7XG4gICAgICByZXR1cm4gdGhpcy5ub2RlUXVlcnkuZXZhbHVhdGUoY29udGV4dCwgYmFjaywgZm9yd2FyZCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLm5vZGVzUXVlcnkgIT09IG51bGwpIHtcbiAgICAgIHJldHVybiB0aGlzLm5vZGVzUXVlcnkuZXZhbHVhdGUoY29udGV4dCwgYmFjaywgZm9yd2FyZCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmxlbmd0aE9mICE9PSBudWxsKSB7XG4gICAgICByZXR1cm4gdGhpcy5sZW5ndGhPZi5ldmFsdWF0ZShjb250ZXh0LCBiYWNrLCBmb3J3YXJkKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMudG9JbnRlZ2VyICE9PSBudWxsKSB7XG4gICAgICByZXR1cm4gdGhpcy50b0ludGVnZXIuZXZhbHVhdGUoY29udGV4dCwgYmFjaywgZm9yd2FyZCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnRyeUludGVnZXIgIT09IG51bGwpIHtcbiAgICAgIHJldHVybiB0aGlzLnRyeUludGVnZXIuZXZhbHVhdGUoY29udGV4dCwgYmFjaywgZm9yd2FyZCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmNvbnRhaW5zICE9PSBudWxsKSB7XG4gICAgICByZXR1cm4gdGhpcy5jb250YWlucy5ldmFsdWF0ZShjb250ZXh0LCBiYWNrLCBmb3J3YXJkKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuZW5kc1dpdGggIT09IG51bGwpIHtcbiAgICAgIHJldHVybiB0aGlzLmVuZHNXaXRoLmV2YWx1YXRlKGNvbnRleHQsIGJhY2ssIGZvcndhcmQpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5zdGFydHNXaXRoICE9PSBudWxsKSB7XG4gICAgICByZXR1cm4gdGhpcy5zdGFydHNXaXRoLmV2YWx1YXRlKGNvbnRleHQsIGJhY2ssIGZvcndhcmQpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5zb21lICE9PSBudWxsKSB7XG4gICAgICByZXR1cm4gdGhpcy5zb21lLmV2YWx1YXRlKGNvbnRleHQsIGJhY2ssIGZvcndhcmQpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5ldmVyeSAhPT0gbnVsbCkge1xuICAgICByZXR1cm4gdGhpcy5ldmVyeS5ldmFsdWF0ZShjb250ZXh0LCBiYWNrLCBmb3J3YXJkKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMucmVkdWNlICE9PSBudWxsKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZWR1Y2UuZXZhbHVhdGUoY29udGV4dCwgYmFjaywgZm9yd2FyZCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnRlcm5hcnkgIT09IG51bGwpIHtcbiAgICAgIHJldHVybiB0aGlzLnRlcm5hcnkuZXZhbHVhdGUoY29udGV4dCwgYmFjaywgZm9yd2FyZCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnByb2NlZHVyZUNhbGwgIT09IG51bGwpIHtcbiAgICAgIHJldHVybiB0aGlzLnByb2NlZHVyZUNhbGwuZXZhbHVhdGUoY29udGV4dCwgYmFjaywgZm9yd2FyZCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnJldHVybkJsb2NrICE9PSBudWxsKSB7XG4gICAgICBjb25zdCB2YXJpYWJsZXMgPSBbXTtcblxuICAgICAgcmV0dXJuIHRoaXMucmV0dXJuQmxvY2suZXZhbHVhdGUodmFyaWFibGVzLCBjb250ZXh0LCBiYWNrLCBmb3J3YXJkKTtcbiAgICB9XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiRXhwcmVzc2lvblwiO1xufSk7XG4iXSwibmFtZXMiOlsiZGVmaW5lIiwiRXhwcmVzc2lvbiIsIkVsZW1lbnQiLCJjb250ZXh0Iiwic3RyaW5nIiwibm9kZSIsImJyZWFrUG9pbnQiLCJ0ZXJtIiwic29tZSIsImV2ZXJ5IiwicmVkdWNlIiwidGVybmFyeSIsIm5vZGVRdWVyeSIsIm5vZGVzUXVlcnkiLCJsZW5ndGhPZiIsInRvSW50ZWdlciIsInRyeUludGVnZXIiLCJjb250YWlucyIsImVuZHNXaXRoIiwic3RhcnRzV2l0aCIsInJldHVybkJsb2NrIiwicHJvY2VkdXJlQ2FsbCIsImdldFRlcm0iLCJnZXRTb21lIiwiZ2V0RXZlcnkiLCJnZXRSZWR1Y2UiLCJnZXRUZXJuYXJ5IiwidGVybmF5IiwiZ2V0Tm9kZVF1ZXJ5IiwiZ2V0Tm9kZXNRdWVyeSIsImdldExlbmd0aE9mIiwiZ2V0VG9JbnRlZ2VyIiwiZ2V0VHJ5SW50ZWdlciIsImdldENvbnRhaW5zIiwiZ2V0RW5kc1dpdGgiLCJnZXRTdGFydHNXaXRoIiwiZ2V0UmV0dXJuQmxvY2siLCJnZXRQcm9jZWR1cmVDYWxsIiwiZ2V0VHlwZSIsInR5cGUiLCJldmFsdWF0ZSIsImJhY2siLCJmb3J3YXJkIiwidmFyaWFibGVzIiwibmFtZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBTUE7OztlQUFBOzs7Z0NBSndCOzBCQUVEO01BRXZC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
@@ -26,7 +26,7 @@ const _default = (0, _elements.define)(class LengthOf extends _occamlanguages.El
26
26
  getVariable() {
27
27
  return this.variable;
28
28
  }
29
- evaluate(context) {
29
+ evaluate(context, back, forward) {
30
30
  let value;
31
31
  const lengthOfString = this.getString(); ///
32
32
  context.trace(`Evaluating the '${lengthOfString}' function...`);
@@ -34,15 +34,15 @@ const _default = (0, _elements.define)(class LengthOf extends _occamlanguages.El
34
34
  const valueType = value.getType(), valueTypeListType = valueType.isListType();
35
35
  if (!valueTypeListType) {
36
36
  const valueString = value.getString(), message = `The '${valueString}' value's '${valueType}' type should be '${_typeNames.LIST_TYPE_NAME}'.`, exception = _exception.default.fromMessage(message);
37
- throw exception;
37
+ return back(exception);
38
38
  }
39
39
  const primitiveValue = value.getPrimitiveValue(), length = primitiveValue.length, integer = length; ///
40
40
  value = (0, _value.valueFromInteger)(integer, context);
41
41
  const valueString = value.getString();
42
42
  context.debug(`...evaluated the '${lengthOfString}' function as '${valueString}'.`);
43
- return value;
43
+ return forward(value);
44
44
  }
45
45
  static name = "LengthOf";
46
46
  });
47
47
 
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2xlbmd0aE9mLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFbGVtZW50IH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgRXhjZXB0aW9uIGZyb20gXCIuLi9leGNlcHRpb25cIjtcblxuaW1wb3J0IHsgZGVmaW5lIH0gZnJvbSBcIi4uL2VsZW1lbnRzXCI7XG5pbXBvcnQgeyBMSVNUX1RZUEVfTkFNRSB9IGZyb20gXCIuLi90eXBlTmFtZXNcIjtcbmltcG9ydCB7IHZhbHVlRnJvbUludGVnZXIgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3ZhbHVlXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZShjbGFzcyBMZW5ndGhPZiBleHRlbmRzIEVsZW1lbnQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHZhcmlhYmxlKSB7XG4gICAgc3VwZXIoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50KTtcblxuICAgIHRoaXMudmFyaWFibGUgPSB2YXJpYWJsZTtcbiAgfVxuXG4gIGdldFZhcmlhYmxlKCkge1xuICAgIHJldHVybiB0aGlzLnZhcmlhYmxlO1xuICB9XG5cbiAgZXZhbHVhdGUoY29udGV4dCkge1xuICAgIGxldCB2YWx1ZTtcblxuICAgIGNvbnN0IGxlbmd0aE9mU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgIC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgRXZhbHVhdGluZyB0aGUgJyR7bGVuZ3RoT2ZTdHJpbmd9JyBmdW5jdGlvbi4uLmApO1xuXG4gICAgdmFsdWUgPSB0aGlzLnZhcmlhYmxlLmV2YWx1YXRlKGNvbnRleHQpO1xuXG4gICAgY29uc3QgdmFsdWVUeXBlID0gdmFsdWUuZ2V0VHlwZSgpLFxuICAgICAgICAgIHZhbHVlVHlwZUxpc3RUeXBlID0gdmFsdWVUeXBlLmlzTGlzdFR5cGUoKTtcblxuICAgIGlmICghdmFsdWVUeXBlTGlzdFR5cGUpIHtcbiAgICAgIGNvbnN0IHZhbHVlU3RyaW5nID0gdmFsdWUuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICBtZXNzYWdlID0gYFRoZSAnJHt2YWx1ZVN0cmluZ30nIHZhbHVlJ3MgJyR7dmFsdWVUeXBlfScgdHlwZSBzaG91bGQgYmUgJyR7TElTVF9UWVBFX05BTUV9Jy5gLFxuICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICB0aHJvdyBleGNlcHRpb247XG4gICAgfVxuXG4gICAgY29uc3QgcHJpbWl0aXZlVmFsdWUgPSB2YWx1ZS5nZXRQcmltaXRpdmVWYWx1ZSgpLFxuICAgICAgICAgIGxlbmd0aCA9IHByaW1pdGl2ZVZhbHVlLmxlbmd0aCxcbiAgICAgICAgICBpbnRlZ2VyID0gbGVuZ3RoOyAvLy9cblxuICAgIHZhbHVlID0gdmFsdWVGcm9tSW50ZWdlcihpbnRlZ2VyLCBjb250ZXh0KTtcblxuICAgIGNvbnN0IHZhbHVlU3RyaW5nID0gdmFsdWUuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LmRlYnVnKGAuLi5ldmFsdWF0ZWQgdGhlICcke2xlbmd0aE9mU3RyaW5nfScgZnVuY3Rpb24gYXMgJyR7dmFsdWVTdHJpbmd9Jy5gKTtcblxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIHN0YXRpYyBuYW1lID0gXCJMZW5ndGhPZlwiO1xufSk7XG4iXSwibmFtZXMiOlsiZGVmaW5lIiwiTGVuZ3RoT2YiLCJFbGVtZW50IiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50IiwidmFyaWFibGUiLCJnZXRWYXJpYWJsZSIsImV2YWx1YXRlIiwidmFsdWUiLCJsZW5ndGhPZlN0cmluZyIsImdldFN0cmluZyIsInRyYWNlIiwidmFsdWVUeXBlIiwiZ2V0VHlwZSIsInZhbHVlVHlwZUxpc3RUeXBlIiwiaXNMaXN0VHlwZSIsInZhbHVlU3RyaW5nIiwibWVzc2FnZSIsIkxJU1RfVFlQRV9OQU1FIiwiZXhjZXB0aW9uIiwiRXhjZXB0aW9uIiwiZnJvbU1lc3NhZ2UiLCJwcmltaXRpdmVWYWx1ZSIsImdldFByaW1pdGl2ZVZhbHVlIiwibGVuZ3RoIiwiaW50ZWdlciIsInZhbHVlRnJvbUludGVnZXIiLCJkZWJ1ZyIsIm5hbWUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVVBOzs7ZUFBQTs7O2dDQVJ3QjtrRUFFRjswQkFFQzsyQkFDUTt1QkFDRTs7Ozs7O01BRWpDLFdBQWVBLElBQUFBLGdCQUFNLEVBQUMsTUFBTUMsaUJBQWlCQyx1QkFBTztJQUNsRCxZQUFZQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxVQUFVLEVBQUVDLFFBQVEsQ0FBRTtRQUN2RCxLQUFLLENBQUNKLFNBQVNDLFFBQVFDLE1BQU1DO1FBRTdCLElBQUksQ0FBQ0MsUUFBUSxHQUFHQTtJQUNsQjtJQUVBQyxjQUFjO1FBQ1osT0FBTyxJQUFJLENBQUNELFFBQVE7SUFDdEI7SUFFQUUsU0FBU04sT0FBTyxFQUFFO1FBQ2hCLElBQUlPO1FBRUosTUFBTUMsaUJBQWlCLElBQUksQ0FBQ0MsU0FBUyxJQUFLLEdBQUc7UUFFN0NULFFBQVFVLEtBQUssQ0FBQyxDQUFDLGdCQUFnQixFQUFFRixlQUFlLGFBQWEsQ0FBQztRQUU5REQsUUFBUSxJQUFJLENBQUNILFFBQVEsQ0FBQ0UsUUFBUSxDQUFDTjtRQUUvQixNQUFNVyxZQUFZSixNQUFNSyxPQUFPLElBQ3pCQyxvQkFBb0JGLFVBQVVHLFVBQVU7UUFFOUMsSUFBSSxDQUFDRCxtQkFBbUI7WUFDdEIsTUFBTUUsY0FBY1IsTUFBTUUsU0FBUyxJQUM3Qk8sVUFBVSxDQUFDLEtBQUssRUFBRUQsWUFBWSxXQUFXLEVBQUVKLFVBQVUsa0JBQWtCLEVBQUVNLHlCQUFjLENBQUMsRUFBRSxDQUFDLEVBQzNGQyxZQUFZQyxrQkFBUyxDQUFDQyxXQUFXLENBQUNKO1lBRXhDLE1BQU1FO1FBQ1I7UUFFQSxNQUFNRyxpQkFBaUJkLE1BQU1lLGlCQUFpQixJQUN4Q0MsU0FBU0YsZUFBZUUsTUFBTSxFQUM5QkMsVUFBVUQsUUFBUSxHQUFHO1FBRTNCaEIsUUFBUWtCLElBQUFBLHVCQUFnQixFQUFDRCxTQUFTeEI7UUFFbEMsTUFBTWUsY0FBY1IsTUFBTUUsU0FBUztRQUVuQ1QsUUFBUTBCLEtBQUssQ0FBQyxDQUFDLGtCQUFrQixFQUFFbEIsZUFBZSxlQUFlLEVBQUVPLFlBQVksRUFBRSxDQUFDO1FBRWxGLE9BQU9SO0lBQ1Q7SUFFQSxPQUFPb0IsT0FBTyxXQUFXO0FBQzNCIn0=
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2xlbmd0aE9mLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFbGVtZW50IH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgRXhjZXB0aW9uIGZyb20gXCIuLi9leGNlcHRpb25cIjtcblxuaW1wb3J0IHsgZGVmaW5lIH0gZnJvbSBcIi4uL2VsZW1lbnRzXCI7XG5pbXBvcnQgeyBMSVNUX1RZUEVfTkFNRSB9IGZyb20gXCIuLi90eXBlTmFtZXNcIjtcbmltcG9ydCB7IHZhbHVlRnJvbUludGVnZXIgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3ZhbHVlXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZShjbGFzcyBMZW5ndGhPZiBleHRlbmRzIEVsZW1lbnQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHZhcmlhYmxlKSB7XG4gICAgc3VwZXIoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50KTtcblxuICAgIHRoaXMudmFyaWFibGUgPSB2YXJpYWJsZTtcbiAgfVxuXG4gIGdldFZhcmlhYmxlKCkge1xuICAgIHJldHVybiB0aGlzLnZhcmlhYmxlO1xuICB9XG5cbiAgZXZhbHVhdGUoY29udGV4dCwgYmFjaywgZm9yd2FyZCkge1xuICAgIGxldCB2YWx1ZTtcblxuICAgIGNvbnN0IGxlbmd0aE9mU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgIC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgRXZhbHVhdGluZyB0aGUgJyR7bGVuZ3RoT2ZTdHJpbmd9JyBmdW5jdGlvbi4uLmApO1xuXG4gICAgdmFsdWUgPSB0aGlzLnZhcmlhYmxlLmV2YWx1YXRlKGNvbnRleHQpO1xuXG4gICAgY29uc3QgdmFsdWVUeXBlID0gdmFsdWUuZ2V0VHlwZSgpLFxuICAgICAgICAgIHZhbHVlVHlwZUxpc3RUeXBlID0gdmFsdWVUeXBlLmlzTGlzdFR5cGUoKTtcblxuICAgIGlmICghdmFsdWVUeXBlTGlzdFR5cGUpIHtcbiAgICAgIGNvbnN0IHZhbHVlU3RyaW5nID0gdmFsdWUuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICBtZXNzYWdlID0gYFRoZSAnJHt2YWx1ZVN0cmluZ30nIHZhbHVlJ3MgJyR7dmFsdWVUeXBlfScgdHlwZSBzaG91bGQgYmUgJyR7TElTVF9UWVBFX05BTUV9Jy5gLFxuICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICByZXR1cm4gYmFjayhleGNlcHRpb24pO1xuICAgIH1cblxuICAgIGNvbnN0IHByaW1pdGl2ZVZhbHVlID0gdmFsdWUuZ2V0UHJpbWl0aXZlVmFsdWUoKSxcbiAgICAgICAgICBsZW5ndGggPSBwcmltaXRpdmVWYWx1ZS5sZW5ndGgsXG4gICAgICAgICAgaW50ZWdlciA9IGxlbmd0aDsgLy8vXG5cbiAgICB2YWx1ZSA9IHZhbHVlRnJvbUludGVnZXIoaW50ZWdlciwgY29udGV4dCk7XG5cbiAgICBjb25zdCB2YWx1ZVN0cmluZyA9IHZhbHVlLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC5kZWJ1ZyhgLi4uZXZhbHVhdGVkIHRoZSAnJHtsZW5ndGhPZlN0cmluZ30nIGZ1bmN0aW9uIGFzICcke3ZhbHVlU3RyaW5nfScuYCk7XG5cbiAgICByZXR1cm4gZm9yd2FyZCh2YWx1ZSk7XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiTGVuZ3RoT2ZcIjtcbn0pO1xuIl0sIm5hbWVzIjpbImRlZmluZSIsIkxlbmd0aE9mIiwiRWxlbWVudCIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiYnJlYWtQb2ludCIsInZhcmlhYmxlIiwiZ2V0VmFyaWFibGUiLCJldmFsdWF0ZSIsImJhY2siLCJmb3J3YXJkIiwidmFsdWUiLCJsZW5ndGhPZlN0cmluZyIsImdldFN0cmluZyIsInRyYWNlIiwidmFsdWVUeXBlIiwiZ2V0VHlwZSIsInZhbHVlVHlwZUxpc3RUeXBlIiwiaXNMaXN0VHlwZSIsInZhbHVlU3RyaW5nIiwibWVzc2FnZSIsIkxJU1RfVFlQRV9OQU1FIiwiZXhjZXB0aW9uIiwiRXhjZXB0aW9uIiwiZnJvbU1lc3NhZ2UiLCJwcmltaXRpdmVWYWx1ZSIsImdldFByaW1pdGl2ZVZhbHVlIiwibGVuZ3RoIiwiaW50ZWdlciIsInZhbHVlRnJvbUludGVnZXIiLCJkZWJ1ZyIsIm5hbWUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVVBOzs7ZUFBQTs7O2dDQVJ3QjtrRUFFRjswQkFFQzsyQkFDUTt1QkFDRTs7Ozs7O01BRWpDLFdBQWVBLElBQUFBLGdCQUFNLEVBQUMsTUFBTUMsaUJBQWlCQyx1QkFBTztJQUNsRCxZQUFZQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxVQUFVLEVBQUVDLFFBQVEsQ0FBRTtRQUN2RCxLQUFLLENBQUNKLFNBQVNDLFFBQVFDLE1BQU1DO1FBRTdCLElBQUksQ0FBQ0MsUUFBUSxHQUFHQTtJQUNsQjtJQUVBQyxjQUFjO1FBQ1osT0FBTyxJQUFJLENBQUNELFFBQVE7SUFDdEI7SUFFQUUsU0FBU04sT0FBTyxFQUFFTyxJQUFJLEVBQUVDLE9BQU8sRUFBRTtRQUMvQixJQUFJQztRQUVKLE1BQU1DLGlCQUFpQixJQUFJLENBQUNDLFNBQVMsSUFBSyxHQUFHO1FBRTdDWCxRQUFRWSxLQUFLLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRUYsZUFBZSxhQUFhLENBQUM7UUFFOURELFFBQVEsSUFBSSxDQUFDTCxRQUFRLENBQUNFLFFBQVEsQ0FBQ047UUFFL0IsTUFBTWEsWUFBWUosTUFBTUssT0FBTyxJQUN6QkMsb0JBQW9CRixVQUFVRyxVQUFVO1FBRTlDLElBQUksQ0FBQ0QsbUJBQW1CO1lBQ3RCLE1BQU1FLGNBQWNSLE1BQU1FLFNBQVMsSUFDN0JPLFVBQVUsQ0FBQyxLQUFLLEVBQUVELFlBQVksV0FBVyxFQUFFSixVQUFVLGtCQUFrQixFQUFFTSx5QkFBYyxDQUFDLEVBQUUsQ0FBQyxFQUMzRkMsWUFBWUMsa0JBQVMsQ0FBQ0MsV0FBVyxDQUFDSjtZQUV4QyxPQUFPWCxLQUFLYTtRQUNkO1FBRUEsTUFBTUcsaUJBQWlCZCxNQUFNZSxpQkFBaUIsSUFDeENDLFNBQVNGLGVBQWVFLE1BQU0sRUFDOUJDLFVBQVVELFFBQVEsR0FBRztRQUUzQmhCLFFBQVFrQixJQUFBQSx1QkFBZ0IsRUFBQ0QsU0FBUzFCO1FBRWxDLE1BQU1pQixjQUFjUixNQUFNRSxTQUFTO1FBRW5DWCxRQUFRNEIsS0FBSyxDQUFDLENBQUMsa0JBQWtCLEVBQUVsQixlQUFlLGVBQWUsRUFBRU8sWUFBWSxFQUFFLENBQUM7UUFFbEYsT0FBT1QsUUFBUUM7SUFDakI7SUFFQSxPQUFPb0IsT0FBTyxXQUFXO0FBQzNCIn0=
@@ -33,26 +33,26 @@ const _default = (0, _elements.define)(class NodeQuery extends _occamlanguages.E
33
33
  getQuery() {
34
34
  return this.query;
35
35
  }
36
- evaluate(context) {
36
+ evaluate(context, back, forward) {
37
37
  let value;
38
38
  const nodeQueryString = this.getString(); ///
39
39
  context.trace(`Evaluating the '${nodeQueryString}' function...`);
40
40
  if (this.query === null) {
41
41
  const message = `Cannot evaluate the '${nodeQueryString}' function because its expression is malformed.`, exception = _exception.default.fromMessage(message);
42
- throw exception;
42
+ return back(exception);
43
43
  }
44
44
  value = this.variable.evaluate(context);
45
45
  const valueType = value.getType(), valueTypeNominalValueType = valueType.isNominalValueType();
46
46
  if (!valueTypeNominalValueType) {
47
47
  const valueString = value.getString(), message = `The '${valueString}' value's '${valueType}' type should be '${_typeNames.NOMINAL_VALUE_TYPE_NAME}'.`, exception = _exception.default.fromMessage(message);
48
- throw exception;
48
+ return back(exception);
49
49
  }
50
50
  let node;
51
51
  const primitiveValue = value.getPrimitiveValue(), nominalValue = primitiveValue; ///
52
52
  node = nominalValue.getNode();
53
53
  if (node === null) {
54
54
  const valueString = value.getString(), message = `The '${valueString}' value's node is null.`, exception = _exception.default.fromMessage(message);
55
- throw exception;
55
+ return back(exception);
56
56
  }
57
57
  const nodes = this.query.execute(node), nodesLength = nodes.length;
58
58
  if (false) {
@@ -66,13 +66,13 @@ const _default = (0, _elements.define)(class NodeQuery extends _occamlanguages.E
66
66
  value = (0, _value.valueFromNodeAndNominalValue)(node, nominalValue);
67
67
  } else {
68
68
  const message = `The length of the returned nodes is ${nodesLength} when it should be 0 or 1.`, exception = _exception.default.fromMessage(message);
69
- throw exception;
69
+ return back(exception);
70
70
  }
71
71
  const valueString = value.getString();
72
72
  context.debug(`...evaluated the '${nodeQueryString}' function as '${valueString}'.`);
73
- return value;
73
+ return forward(value);
74
74
  }
75
75
  static name = "NodeQuery";
76
76
  });
77
77
 
78
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L25vZGVRdWVyeS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgRWxlbWVudCB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcbmltcG9ydCB7IGFycmF5VXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5pbXBvcnQgRXhjZXB0aW9uIGZyb20gXCIuLi9leGNlcHRpb25cIjtcbmltcG9ydCBOb21pbmFsVmFsdWUgZnJvbSBcIi4uL25vbWluYWxWYWx1ZVwiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vZWxlbWVudHNcIjtcbmltcG9ydCB7IE5PTUlOQUxfVkFMVUVfVFlQRV9OQU1FIH0gZnJvbSBcIi4uL3R5cGVOYW1lc1wiO1xuaW1wb3J0IHsgdmFsdWVGcm9tTm9taW5hbFZhbHVlLCB2YWx1ZUZyb21Ob2RlQW5kTm9taW5hbFZhbHVlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy92YWx1ZVwiO1xuXG5jb25zdCB7IGZpcnN0IH0gPSBhcnJheVV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIE5vZGVRdWVyeSBleHRlbmRzIEVsZW1lbnQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHZhcmlhYmxlLCBxdWVyeSkge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLnZhcmlhYmxlID0gdmFyaWFibGU7XG4gICAgdGhpcy5xdWVyeSA9IHF1ZXJ5O1xuICB9XG5cbiAgZ2V0VmFyaWFibGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudmFyaWFibGU7XG4gIH1cblxuICBnZXRRdWVyeSgpIHtcbiAgICByZXR1cm4gdGhpcy5xdWVyeTtcbiAgfVxuXG4gIGV2YWx1YXRlKGNvbnRleHQpIHtcbiAgICBsZXQgdmFsdWU7XG5cbiAgICBjb25zdCBub2RlUXVlcnlTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSAnJHtub2RlUXVlcnlTdHJpbmd9JyBmdW5jdGlvbi4uLmApO1xuXG4gICAgaWYgKHRoaXMucXVlcnkgPT09IG51bGwpIHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgQ2Fubm90IGV2YWx1YXRlIHRoZSAnJHtub2RlUXVlcnlTdHJpbmd9JyBmdW5jdGlvbiBiZWNhdXNlIGl0cyBleHByZXNzaW9uIGlzIG1hbGZvcm1lZC5gLFxuICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICB0aHJvdyBleGNlcHRpb247XG4gICAgfVxuXG4gICAgdmFsdWUgPSB0aGlzLnZhcmlhYmxlLmV2YWx1YXRlKGNvbnRleHQpO1xuXG4gICAgY29uc3QgdmFsdWVUeXBlID0gdmFsdWUuZ2V0VHlwZSgpLFxuICAgICAgICAgIHZhbHVlVHlwZU5vbWluYWxWYWx1ZVR5cGUgPSB2YWx1ZVR5cGUuaXNOb21pbmFsVmFsdWVUeXBlKCk7XG5cbiAgICBpZiAoIXZhbHVlVHlwZU5vbWluYWxWYWx1ZVR5cGUpIHtcbiAgICAgIGNvbnN0IHZhbHVlU3RyaW5nID0gdmFsdWUuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICBtZXNzYWdlID0gYFRoZSAnJHt2YWx1ZVN0cmluZ30nIHZhbHVlJ3MgJyR7dmFsdWVUeXBlfScgdHlwZSBzaG91bGQgYmUgJyR7Tk9NSU5BTF9WQUxVRV9UWVBFX05BTUV9Jy5gLFxuICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICB0aHJvdyBleGNlcHRpb247XG4gICAgfVxuXG4gICAgbGV0IG5vZGU7XG5cbiAgICBjb25zdCBwcmltaXRpdmVWYWx1ZSA9IHZhbHVlLmdldFByaW1pdGl2ZVZhbHVlKCksXG4gICAgICAgICAgbm9taW5hbFZhbHVlID0gcHJpbWl0aXZlVmFsdWU7ICAvLy9cblxuICAgIG5vZGUgPSBub21pbmFsVmFsdWUuZ2V0Tm9kZSgpO1xuXG4gICAgaWYgKG5vZGUgPT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHZhbHVlU3RyaW5nID0gdmFsdWUuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICBtZXNzYWdlID0gYFRoZSAnJHt2YWx1ZVN0cmluZ30nIHZhbHVlJ3Mgbm9kZSBpcyBudWxsLmAsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHRocm93IGV4Y2VwdGlvbjtcbiAgICB9XG5cbiAgICBjb25zdCBub2RlcyA9IHRoaXMucXVlcnkuZXhlY3V0ZShub2RlKSxcbiAgICAgICAgICBub2Rlc0xlbmd0aCA9IG5vZGVzLmxlbmd0aDtcblxuICAgIGlmIChmYWxzZSkge1xuICAgICAgLy8vXG4gICAgfSBlbHNlIGlmIChub2Rlc0xlbmd0aCA9PT0gMCkge1xuICAgICAgY29uc3Qgbm9taW5hbFZhbHVlID0gTm9taW5hbFZhbHVlLmZyb21Ob3RoaW5nKCk7XG5cbiAgICAgIHZhbHVlID0gdmFsdWVGcm9tTm9taW5hbFZhbHVlKG5vbWluYWxWYWx1ZSk7XG4gICAgfSBlbHNlIGlmIChub2Rlc0xlbmd0aCA9PT0gMSkge1xuICAgICAgY29uc3QgZmlyc3ROb2RlID0gZmlyc3Qobm9kZXMpO1xuXG4gICAgICBub2RlID0gZmlyc3ROb2RlIC8vL1xuXG4gICAgICB2YWx1ZSA9IHZhbHVlRnJvbU5vZGVBbmROb21pbmFsVmFsdWUobm9kZSwgbm9taW5hbFZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IGBUaGUgbGVuZ3RoIG9mIHRoZSByZXR1cm5lZCBub2RlcyBpcyAke25vZGVzTGVuZ3RofSB3aGVuIGl0IHNob3VsZCBiZSAwIG9yIDEuYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgdGhyb3cgZXhjZXB0aW9uO1xuICAgIH1cblxuICAgIGNvbnN0IHZhbHVlU3RyaW5nID0gdmFsdWUuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LmRlYnVnKGAuLi5ldmFsdWF0ZWQgdGhlICcke25vZGVRdWVyeVN0cmluZ30nIGZ1bmN0aW9uIGFzICcke3ZhbHVlU3RyaW5nfScuYCk7XG5cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiTm9kZVF1ZXJ5XCI7XG59KTtcbiJdLCJuYW1lcyI6WyJmaXJzdCIsImFycmF5VXRpbGl0aWVzIiwiZGVmaW5lIiwiTm9kZVF1ZXJ5IiwiRWxlbWVudCIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiYnJlYWtQb2ludCIsInZhcmlhYmxlIiwicXVlcnkiLCJnZXRWYXJpYWJsZSIsImdldFF1ZXJ5IiwiZXZhbHVhdGUiLCJ2YWx1ZSIsIm5vZGVRdWVyeVN0cmluZyIsImdldFN0cmluZyIsInRyYWNlIiwibWVzc2FnZSIsImV4Y2VwdGlvbiIsIkV4Y2VwdGlvbiIsImZyb21NZXNzYWdlIiwidmFsdWVUeXBlIiwiZ2V0VHlwZSIsInZhbHVlVHlwZU5vbWluYWxWYWx1ZVR5cGUiLCJpc05vbWluYWxWYWx1ZVR5cGUiLCJ2YWx1ZVN0cmluZyIsIk5PTUlOQUxfVkFMVUVfVFlQRV9OQU1FIiwicHJpbWl0aXZlVmFsdWUiLCJnZXRQcmltaXRpdmVWYWx1ZSIsIm5vbWluYWxWYWx1ZSIsImdldE5vZGUiLCJub2RlcyIsImV4ZWN1dGUiLCJub2Rlc0xlbmd0aCIsImxlbmd0aCIsIk5vbWluYWxWYWx1ZSIsImZyb21Ob3RoaW5nIiwidmFsdWVGcm9tTm9taW5hbFZhbHVlIiwiZmlyc3ROb2RlIiwidmFsdWVGcm9tTm9kZUFuZE5vbWluYWxWYWx1ZSIsImRlYnVnIiwibmFtZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBY0E7OztlQUFBOzs7Z0NBWndCOzJCQUNPO2tFQUVUO3FFQUNHOzBCQUVGOzJCQUNp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
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L25vZGVRdWVyeS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgRWxlbWVudCB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcbmltcG9ydCB7IGFycmF5VXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5pbXBvcnQgRXhjZXB0aW9uIGZyb20gXCIuLi9leGNlcHRpb25cIjtcbmltcG9ydCBOb21pbmFsVmFsdWUgZnJvbSBcIi4uL25vbWluYWxWYWx1ZVwiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vZWxlbWVudHNcIjtcbmltcG9ydCB7IE5PTUlOQUxfVkFMVUVfVFlQRV9OQU1FIH0gZnJvbSBcIi4uL3R5cGVOYW1lc1wiO1xuaW1wb3J0IHsgdmFsdWVGcm9tTm9taW5hbFZhbHVlLCB2YWx1ZUZyb21Ob2RlQW5kTm9taW5hbFZhbHVlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy92YWx1ZVwiO1xuXG5jb25zdCB7IGZpcnN0IH0gPSBhcnJheVV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIE5vZGVRdWVyeSBleHRlbmRzIEVsZW1lbnQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHZhcmlhYmxlLCBxdWVyeSkge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLnZhcmlhYmxlID0gdmFyaWFibGU7XG4gICAgdGhpcy5xdWVyeSA9IHF1ZXJ5O1xuICB9XG5cbiAgZ2V0VmFyaWFibGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudmFyaWFibGU7XG4gIH1cblxuICBnZXRRdWVyeSgpIHtcbiAgICByZXR1cm4gdGhpcy5xdWVyeTtcbiAgfVxuXG4gIGV2YWx1YXRlKGNvbnRleHQsIGJhY2ssIGZvcndhcmQpIHtcbiAgICBsZXQgdmFsdWU7XG5cbiAgICBjb25zdCBub2RlUXVlcnlTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSAnJHtub2RlUXVlcnlTdHJpbmd9JyBmdW5jdGlvbi4uLmApO1xuXG4gICAgaWYgKHRoaXMucXVlcnkgPT09IG51bGwpIHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgQ2Fubm90IGV2YWx1YXRlIHRoZSAnJHtub2RlUXVlcnlTdHJpbmd9JyBmdW5jdGlvbiBiZWNhdXNlIGl0cyBleHByZXNzaW9uIGlzIG1hbGZvcm1lZC5gLFxuICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICByZXR1cm4gYmFjayhleGNlcHRpb24pO1xuICAgIH1cblxuICAgIHZhbHVlID0gdGhpcy52YXJpYWJsZS5ldmFsdWF0ZShjb250ZXh0KTtcblxuICAgIGNvbnN0IHZhbHVlVHlwZSA9IHZhbHVlLmdldFR5cGUoKSxcbiAgICAgICAgICB2YWx1ZVR5cGVOb21pbmFsVmFsdWVUeXBlID0gdmFsdWVUeXBlLmlzTm9taW5hbFZhbHVlVHlwZSgpO1xuXG4gICAgaWYgKCF2YWx1ZVR5cGVOb21pbmFsVmFsdWVUeXBlKSB7XG4gICAgICBjb25zdCB2YWx1ZVN0cmluZyA9IHZhbHVlLmdldFN0cmluZygpLFxuICAgICAgICAgICAgbWVzc2FnZSA9IGBUaGUgJyR7dmFsdWVTdHJpbmd9JyB2YWx1ZSdzICcke3ZhbHVlVHlwZX0nIHR5cGUgc2hvdWxkIGJlICcke05PTUlOQUxfVkFMVUVfVFlQRV9OQU1FfScuYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgcmV0dXJuIGJhY2soZXhjZXB0aW9uKTtcbiAgICB9XG5cbiAgICBsZXQgbm9kZTtcblxuICAgIGNvbnN0IHByaW1pdGl2ZVZhbHVlID0gdmFsdWUuZ2V0UHJpbWl0aXZlVmFsdWUoKSxcbiAgICAgICAgICBub21pbmFsVmFsdWUgPSBwcmltaXRpdmVWYWx1ZTsgIC8vL1xuXG4gICAgbm9kZSA9IG5vbWluYWxWYWx1ZS5nZXROb2RlKCk7XG5cbiAgICBpZiAobm9kZSA9PT0gbnVsbCkge1xuICAgICAgY29uc3QgdmFsdWVTdHJpbmcgPSB2YWx1ZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBgVGhlICcke3ZhbHVlU3RyaW5nfScgdmFsdWUncyBub2RlIGlzIG51bGwuYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgcmV0dXJuIGJhY2soZXhjZXB0aW9uKTtcbiAgICB9XG5cbiAgICBjb25zdCBub2RlcyA9IHRoaXMucXVlcnkuZXhlY3V0ZShub2RlKSxcbiAgICAgICAgICBub2Rlc0xlbmd0aCA9IG5vZGVzLmxlbmd0aDtcblxuICAgIGlmIChmYWxzZSkge1xuICAgICAgLy8vXG4gICAgfSBlbHNlIGlmIChub2Rlc0xlbmd0aCA9PT0gMCkge1xuICAgICAgY29uc3Qgbm9taW5hbFZhbHVlID0gTm9taW5hbFZhbHVlLmZyb21Ob3RoaW5nKCk7XG5cbiAgICAgIHZhbHVlID0gdmFsdWVGcm9tTm9taW5hbFZhbHVlKG5vbWluYWxWYWx1ZSk7XG4gICAgfSBlbHNlIGlmIChub2Rlc0xlbmd0aCA9PT0gMSkge1xuICAgICAgY29uc3QgZmlyc3ROb2RlID0gZmlyc3Qobm9kZXMpO1xuXG4gICAgICBub2RlID0gZmlyc3ROb2RlIC8vL1xuXG4gICAgICB2YWx1ZSA9IHZhbHVlRnJvbU5vZGVBbmROb21pbmFsVmFsdWUobm9kZSwgbm9taW5hbFZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IGBUaGUgbGVuZ3RoIG9mIHRoZSByZXR1cm5lZCBub2RlcyBpcyAke25vZGVzTGVuZ3RofSB3aGVuIGl0IHNob3VsZCBiZSAwIG9yIDEuYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgcmV0dXJuIGJhY2soZXhjZXB0aW9uKTtcbiAgICB9XG5cbiAgICBjb25zdCB2YWx1ZVN0cmluZyA9IHZhbHVlLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC5kZWJ1ZyhgLi4uZXZhbHVhdGVkIHRoZSAnJHtub2RlUXVlcnlTdHJpbmd9JyBmdW5jdGlvbiBhcyAnJHt2YWx1ZVN0cmluZ30nLmApO1xuXG4gICAgcmV0dXJuIGZvcndhcmQodmFsdWUpO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIk5vZGVRdWVyeVwiO1xufSk7XG4iXSwibmFtZXMiOlsiZmlyc3QiLCJhcnJheVV0aWxpdGllcyIsImRlZmluZSIsIk5vZGVRdWVyeSIsIkVsZW1lbnQiLCJjb250ZXh0Iiwic3RyaW5nIiwibm9kZSIsImJyZWFrUG9pbnQiLCJ2YXJpYWJsZSIsInF1ZXJ5IiwiZ2V0VmFyaWFibGUiLCJnZXRRdWVyeSIsImV2YWx1YXRlIiwiYmFjayIsImZvcndhcmQiLCJ2YWx1ZSIsIm5vZGVRdWVyeVN0cmluZyIsImdldFN0cmluZyIsInRyYWNlIiwibWVzc2FnZSIsImV4Y2VwdGlvbiIsIkV4Y2VwdGlvbiIsImZyb21NZXNzYWdlIiwidmFsdWVUeXBlIiwiZ2V0VHlwZSIsInZhbHVlVHlwZU5vbWluYWxWYWx1ZVR5cGUiLCJpc05vbWluYWxWYWx1ZVR5cGUiLCJ2YWx1ZVN0cmluZyIsIk5PTUlOQUxfVkFMVUVfVFlQRV9OQU1FIiwicHJpbWl0aXZlVmFsdWUiLCJnZXRQcmltaXRpdmVWYWx1ZSIsIm5vbWluYWxWYWx1ZSIsImdldE5vZGUiLCJub2RlcyIsImV4ZWN1dGUiLCJub2Rlc0xlbmd0aCIsImxlbmd0aCIsIk5vbWluYWxWYWx1ZSIsImZyb21Ob3RoaW5nIiwidmFsdWVGcm9tTm9taW5hbFZhbHVlIiwiZmlyc3ROb2RlIiwidmFsdWVGcm9tTm9kZUFuZE5vbWluYWxWYWx1ZSIsImRlYnVnIiwibmFtZSJdLCJt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