occam-furtle 3.0.521 → 3.0.525

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 (57) hide show
  1. package/lib/element/apply.js +126 -0
  2. package/lib/element/assignment/object.js +23 -1
  3. package/lib/element/error.js +3 -3
  4. package/lib/element/every.js +13 -13
  5. package/lib/element/expression.js +18 -2
  6. package/lib/element/importStatement.js +3 -2
  7. package/lib/element/procedure.js +2 -1
  8. package/lib/element/procedureCall.js +8 -1
  9. package/lib/element/reduce.js +5 -5
  10. package/lib/element/referenceListLiteral.js +24 -0
  11. package/lib/element/references.js +32 -0
  12. package/lib/element/some.js +7 -7
  13. package/lib/element/terms.js +2 -2
  14. package/lib/element/values.js +16 -3
  15. package/lib/example/furtle/bnf.js +3 -5
  16. package/lib/example/furtle/entries.js +2 -2
  17. package/lib/node/apply.js +39 -0
  18. package/lib/node/expression.js +5 -1
  19. package/lib/node/references.js +23 -0
  20. package/lib/node/referencesListLiteral.js +27 -0
  21. package/lib/nominalValueProperties.js +34 -18
  22. package/lib/nonTerminalNodeMap.js +8 -2
  23. package/lib/parameterNames.js +5 -1
  24. package/lib/preamble.js +7 -3
  25. package/lib/process/instantiate.js +1 -1
  26. package/lib/ruleNames.js +13 -1
  27. package/lib/utilities/element.js +110 -7
  28. package/lib/utilities/string.js +38 -5
  29. package/package.json +5 -5
  30. package/src/element/apply.js +119 -0
  31. package/src/element/assignment/object.js +48 -1
  32. package/src/element/error.js +3 -3
  33. package/src/element/every.js +14 -12
  34. package/src/element/expression.js +19 -1
  35. package/src/element/importStatement.js +3 -1
  36. package/src/element/procedure.js +2 -0
  37. package/src/element/procedureCall.js +14 -0
  38. package/src/element/reduce.js +4 -4
  39. package/src/element/referenceListLiteral.js +19 -0
  40. package/src/element/references.js +31 -0
  41. package/src/element/some.js +7 -6
  42. package/src/element/terms.js +1 -1
  43. package/src/element/values.js +26 -2
  44. package/src/example/furtle/bnf.js +2 -4
  45. package/src/example/furtle/entries.js +1 -1
  46. package/src/node/apply.js +44 -0
  47. package/src/node/expression.js +9 -1
  48. package/src/node/references.js +16 -0
  49. package/src/node/referencesListLiteral.js +23 -0
  50. package/src/nominalValueProperties.js +43 -25
  51. package/src/nonTerminalNodeMap.js +11 -2
  52. package/src/parameterNames.js +1 -0
  53. package/src/preamble.js +6 -2
  54. package/src/process/instantiate.js +6 -1
  55. package/src/ruleNames.js +3 -0
  56. package/src/utilities/element.js +147 -14
  57. package/src/utilities/string.js +49 -6
@@ -0,0 +1,126 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "default", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return _default;
9
+ }
10
+ });
11
+ const _occamlanguages = require("occam-languages");
12
+ const _elements = /*#__PURE__*/ _interop_require_wildcard(require("../elements"));
13
+ const _exception = /*#__PURE__*/ _interop_require_default(require("../exception"));
14
+ const _value = require("../utilities/value");
15
+ const _typeNames = require("../typeNames");
16
+ function _interop_require_default(obj) {
17
+ return obj && obj.__esModule ? obj : {
18
+ default: obj
19
+ };
20
+ }
21
+ function _getRequireWildcardCache(nodeInterop) {
22
+ if (typeof WeakMap !== "function") return null;
23
+ var cacheBabelInterop = new WeakMap();
24
+ var cacheNodeInterop = new WeakMap();
25
+ return (_getRequireWildcardCache = function(nodeInterop) {
26
+ return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
27
+ })(nodeInterop);
28
+ }
29
+ function _interop_require_wildcard(obj, nodeInterop) {
30
+ if (!nodeInterop && obj && obj.__esModule) {
31
+ return obj;
32
+ }
33
+ if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
34
+ return {
35
+ default: obj
36
+ };
37
+ }
38
+ var cache = _getRequireWildcardCache(nodeInterop);
39
+ if (cache && cache.has(obj)) {
40
+ return cache.get(obj);
41
+ }
42
+ var newObj = {
43
+ __proto__: null
44
+ };
45
+ var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
46
+ for(var key in obj){
47
+ if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
48
+ var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
49
+ if (desc && (desc.get || desc.set)) {
50
+ Object.defineProperty(newObj, key, desc);
51
+ } else {
52
+ newObj[key] = obj[key];
53
+ }
54
+ }
55
+ }
56
+ newObj.default = obj;
57
+ if (cache) {
58
+ cache.set(obj, newObj);
59
+ }
60
+ return newObj;
61
+ }
62
+ const { every } = _occamlanguages.continuationUtilities, { unbreakable } = _occamlanguages.breakPointUtilities;
63
+ const _default = (0, _elements.define)(class All extends _occamlanguages.Element {
64
+ constructor(context, string, node, breakPoint, values, variable, references){
65
+ super(context, string, node, breakPoint);
66
+ this.string = string;
67
+ this.values = values;
68
+ this.variable = variable;
69
+ this.references = references;
70
+ }
71
+ getValues() {
72
+ return this.values;
73
+ }
74
+ getVariable() {
75
+ return this.variable;
76
+ }
77
+ getReferences() {
78
+ return this.references;
79
+ }
80
+ evaluate = unbreakable(function(context, forward, back) {
81
+ const allString = this.getString();
82
+ context.trace(`Evaluating the '${allString}' function...`);
83
+ return this.variable.evaluate(context, (value, back)=>{
84
+ const valueType = value.getType(), valueTypeListType = valueType.isListType();
85
+ if (!valueTypeListType) {
86
+ const valueString = value.getString(), message = `The '${valueString}' value's '${valueType}' type should be '${_typeNames.LIST_TYPE_NAME}'.`, exception = _exception.default.fromMessage(message);
87
+ return back(exception);
88
+ }
89
+ const values = value.lift(context), valuesLength = values.length, referencesLength = this.references.getLength();
90
+ if (valuesLength !== referencesLength) {
91
+ const valueString = value.getString(), referencesString = this.references.getString(), message = `The ${valueString} values and '${referencesString}' function references are not the same length.`, exception = _exception.default.fromMessage(message);
92
+ return back(exception);
93
+ }
94
+ return every(values, (value, context, forward, back, index)=>{
95
+ const reference = this.references.getReference(index);
96
+ return this.callProcedure(reference, value, context, (value, back)=>{
97
+ const valueType = value.getType(), valueTypeBooleanType = valueType.isBooleanType();
98
+ if (!valueTypeBooleanType) {
99
+ const valueString = value.getString(), message = `The '${valueString}' value's '${valueType}' type should be '${_typeNames.BOOLEAN_TYPE_NAME}'.`, exception = _exception.default.fromMessage(message);
100
+ return back(exception);
101
+ }
102
+ const primitiveValue = value.getPrimitiveValue(), boolean = primitiveValue;
103
+ if (!boolean) {
104
+ return back();
105
+ }
106
+ return forward(context, back);
107
+ }, back);
108
+ }, context, (context, back)=>{
109
+ const boolean = true, value = (0, _value.valueFromBoolean)(boolean, context), valueString = value.getString();
110
+ context.trace(`...evaluated the '${allString}' function as '${valueString}'.`);
111
+ return forward(value, back);
112
+ }, back);
113
+ }, back);
114
+ });
115
+ callProcedure(reference, value, context, forward, back) {
116
+ let values;
117
+ const { Values } = _elements.default;
118
+ values = Values.fromValue(value);
119
+ values = values.merge(this.values); ///
120
+ const { ProcedureCall } = _elements.default, procedureCall = ProcedureCall.fromReferenceAndValues(reference, values, context);
121
+ return procedureCall.evaluate(context, forward, back);
122
+ }
123
+ static name = "All";
124
+ });
125
+
126
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2FwcGx5LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFbGVtZW50LCBicmVha1BvaW50VXRpbGl0aWVzLCBjb250aW51YXRpb25VdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCBlbGVtZW50cyBmcm9tIFwiLi4vZWxlbWVudHNcIjtcbmltcG9ydCBFeGNlcHRpb24gZnJvbSBcIi4uL2V4Y2VwdGlvblwiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vZWxlbWVudHNcIjtcbmltcG9ydCB7IHZhbHVlRnJvbUJvb2xlYW4gfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3ZhbHVlXCI7XG5pbXBvcnQgeyBMSVNUX1RZUEVfTkFNRSwgQk9PTEVBTl9UWVBFX05BTUUgfSBmcm9tIFwiLi4vdHlwZU5hbWVzXCI7XG5cbmNvbnN0IHsgZXZlcnkgfSA9IGNvbnRpbnVhdGlvblV0aWxpdGllcyxcbiAgICAgIHsgdW5icmVha2FibGUgfSA9IGJyZWFrUG9pbnRVdGlsaXRpZXM7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZShjbGFzcyBBbGwgZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCB2YWx1ZXMsIHZhcmlhYmxlLCByZWZlcmVuY2VzKSB7XG4gICAgc3VwZXIoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50KTtcblxuICAgIHRoaXMuc3RyaW5nID0gc3RyaW5nO1xuICAgIHRoaXMudmFsdWVzID0gdmFsdWVzO1xuICAgIHRoaXMudmFyaWFibGUgPSB2YXJpYWJsZTtcbiAgICB0aGlzLnJlZmVyZW5jZXMgPSByZWZlcmVuY2VzO1xuICB9XG5cbiAgZ2V0VmFsdWVzKCkge1xuICAgIHJldHVybiB0aGlzLnZhbHVlcztcbiAgfVxuXG4gIGdldFZhcmlhYmxlKCkge1xuICAgIHJldHVybiB0aGlzLnZhcmlhYmxlO1xuICB9XG5cbiAgZ2V0UmVmZXJlbmNlcygpIHtcbiAgICByZXR1cm4gdGhpcy5yZWZlcmVuY2VzO1xuICB9XG5cbiAgZXZhbHVhdGUgPSB1bmJyZWFrYWJsZShmdW5jdGlvbiAoY29udGV4dCwgZm9yd2FyZCwgYmFjaykge1xuICAgIGNvbnN0IGFsbFN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSAnJHthbGxTdHJpbmd9JyBmdW5jdGlvbi4uLmApO1xuXG4gICAgcmV0dXJuIHRoaXMudmFyaWFibGUuZXZhbHVhdGUoY29udGV4dCwgKHZhbHVlLCBiYWNrKSA9PiB7XG4gICAgICBjb25zdCB2YWx1ZVR5cGUgPSB2YWx1ZS5nZXRUeXBlKCksXG4gICAgICAgICAgICB2YWx1ZVR5cGVMaXN0VHlwZSA9IHZhbHVlVHlwZS5pc0xpc3RUeXBlKCk7XG5cbiAgICAgIGlmICghdmFsdWVUeXBlTGlzdFR5cGUpIHtcbiAgICAgICAgY29uc3QgdmFsdWVTdHJpbmcgPSB2YWx1ZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgICAgbWVzc2FnZSA9IGBUaGUgJyR7dmFsdWVTdHJpbmd9JyB2YWx1ZSdzICcke3ZhbHVlVHlwZX0nIHR5cGUgc2hvdWxkIGJlICcke0xJU1RfVFlQRV9OQU1FfScuYCxcbiAgICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICAgIHJldHVybiBiYWNrKGV4Y2VwdGlvbik7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHZhbHVlcyA9IHZhbHVlLmxpZnQoY29udGV4dCksXG4gICAgICAgICAgICB2YWx1ZXNMZW5ndGggPSB2YWx1ZXMubGVuZ3RoLFxuICAgICAgICAgICAgcmVmZXJlbmNlc0xlbmd0aCA9IHRoaXMucmVmZXJlbmNlcy5nZXRMZW5ndGgoKTtcblxuICAgICAgaWYgKHZhbHVlc0xlbmd0aCAhPT0gcmVmZXJlbmNlc0xlbmd0aCkge1xuICAgICAgICBjb25zdCB2YWx1ZVN0cmluZyA9IHZhbHVlLmdldFN0cmluZygpLFxuICAgICAgICAgICAgICByZWZlcmVuY2VzU3RyaW5nID0gdGhpcy5yZWZlcmVuY2VzLmdldFN0cmluZygpLFxuICAgICAgICAgICAgICBtZXNzYWdlID0gYFRoZSAke3ZhbHVlU3RyaW5nfSB2YWx1ZXMgYW5kICcke3JlZmVyZW5jZXNTdHJpbmd9JyBmdW5jdGlvbiByZWZlcmVuY2VzIGFyZSBub3QgdGhlIHNhbWUgbGVuZ3RoLmAsXG4gICAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgICByZXR1cm4gYmFjayhleGNlcHRpb24pO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZXZlcnkodmFsdWVzLCAodmFsdWUsIGNvbnRleHQsIGZvcndhcmQsIGJhY2ssIGluZGV4KSA9PiB7XG4gICAgICAgIGNvbnN0IHJlZmVyZW5jZSA9IHRoaXMucmVmZXJlbmNlcy5nZXRSZWZlcmVuY2UoaW5kZXgpO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmNhbGxQcm9jZWR1cmUocmVmZXJlbmNlLCB2YWx1ZSwgY29udGV4dCwgKHZhbHVlLCBiYWNrKSA9PiB7XG4gICAgICAgICAgY29uc3QgdmFsdWVUeXBlID0gdmFsdWUuZ2V0VHlwZSgpLFxuICAgICAgICAgICAgICAgIHZhbHVlVHlwZUJvb2xlYW5UeXBlID0gdmFsdWVUeXBlLmlzQm9vbGVhblR5cGUoKTtcblxuICAgICAgICAgIGlmICghdmFsdWVUeXBlQm9vbGVhblR5cGUpIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlU3RyaW5nID0gdmFsdWUuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICAgICAgICBtZXNzYWdlID0gYFRoZSAnJHt2YWx1ZVN0cmluZ30nIHZhbHVlJ3MgJyR7dmFsdWVUeXBlfScgdHlwZSBzaG91bGQgYmUgJyR7Qk9PTEVBTl9UWVBFX05BTUV9Jy5gLFxuICAgICAgICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICAgICAgICByZXR1cm4gYmFjayhleGNlcHRpb24pO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IHByaW1pdGl2ZVZhbHVlID0gdmFsdWUuZ2V0UHJpbWl0aXZlVmFsdWUoKSxcbiAgICAgICAgICAgICAgICBib29sZWFuID0gcHJpbWl0aXZlVmFsdWU7XG5cbiAgICAgICAgICBpZiAoIWJvb2xlYW4pIHtcbiAgICAgICAgICAgIHJldHVybiBiYWNrKCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIGZvcndhcmQoY29udGV4dCwgYmFjayk7XG4gICAgICAgIH0sIGJhY2spO1xuICAgICAgfSwgY29udGV4dCwgKGNvbnRleHQsIGJhY2spID0+IHtcbiAgICAgICAgY29uc3QgYm9vbGVhbiA9IHRydWUsXG4gICAgICAgICAgICAgIHZhbHVlID0gdmFsdWVGcm9tQm9vbGVhbihib29sZWFuLCBjb250ZXh0KSxcbiAgICAgICAgICAgICAgdmFsdWVTdHJpbmcgPSB2YWx1ZS5nZXRTdHJpbmcoKTtcblxuICAgICAgICBjb250ZXh0LnRyYWNlKGAuLi5ldmFsdWF0ZWQgdGhlICcke2FsbFN0cmluZ30nIGZ1bmN0aW9uIGFzICcke3ZhbHVlU3RyaW5nfScuYCk7XG5cbiAgICAgICAgcmV0dXJuIGZvcndhcmQodmFsdWUsIGJhY2spO1xuICAgICAgfSwgYmFjayk7XG4gICAgfSwgYmFjayk7XG4gIH0pO1xuXG4gIGNhbGxQcm9jZWR1cmUocmVmZXJlbmNlLCB2YWx1ZSwgY29udGV4dCwgZm9yd2FyZCwgYmFjaykge1xuICAgIGxldCB2YWx1ZXM7XG5cbiAgICBjb25zdCB7IFZhbHVlcyB9ID0gZWxlbWVudHM7XG5cbiAgICB2YWx1ZXMgPSBWYWx1ZXMuZnJvbVZhbHVlKHZhbHVlKTtcblxuICAgIHZhbHVlcyA9IHZhbHVlcy5tZXJnZSh0aGlzLnZhbHVlcyk7IC8vL1xuXG4gICAgY29uc3QgeyBQcm9jZWR1cmVDYWxsIH0gPSBlbGVtZW50cyxcbiAgICAgICAgICBwcm9jZWR1cmVDYWxsID0gUHJvY2VkdXJlQ2FsbC5mcm9tUmVmZXJlbmNlQW5kVmFsdWVzKHJlZmVyZW5jZSwgdmFsdWVzLCBjb250ZXh0KTtcblxuICAgIHJldHVybiBwcm9jZWR1cmVDYWxsLmV2YWx1YXRlKGNvbnRleHQsIGZvcndhcmQsIGJhY2spO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIkFsbFwiO1xufSk7XG4iXSwibmFtZXMiOlsiZXZlcnkiLCJjb250aW51YXRpb25VdGlsaXRpZXMiLCJ1bmJyZWFrYWJsZSIsImJyZWFrUG9pbnRVdGlsaXRpZXMiLCJkZWZpbmUiLCJBbGwiLCJFbGVtZW50IiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50IiwidmFsdWVzIiwidmFyaWFibGUiLCJyZWZlcmVuY2VzIiwiZ2V0VmFsdWVzIiwiZ2V0VmFyaWFibGUiLCJnZXRSZWZlcmVuY2VzIiwiZXZhbHVhdGUiLCJmb3J3YXJkIiwiYmFjayIsImFsbFN0cmluZyIsImdldFN0cmluZyIsInRyYWNlIiwidmFsdWUiLCJ2YWx1ZVR5cGUiLCJnZXRUeXBlIiwidmFsdWVUeXBlTGlzdFR5cGUiLCJpc0xpc3RUeXBlIiwidmFsdWVTdHJpbmciLCJtZXNzYWdlIiwiTElTVF9UWVBFX05BTUUiLCJleGNlcHRpb24iLCJFeGNlcHRpb24iLCJmcm9tTWVzc2FnZSIsImxpZnQiLCJ2YWx1ZXNMZW5ndGgiLCJsZW5ndGgiLCJyZWZlcmVuY2VzTGVuZ3RoIiwiZ2V0TGVuZ3RoIiwicmVmZXJlbmNlc1N0cmluZyIsImluZGV4IiwicmVmZXJlbmNlIiwiZ2V0UmVmZXJlbmNlIiwiY2FsbFByb2NlZHVyZSIsInZhbHVlVHlwZUJvb2xlYW5UeXBlIiwiaXNCb29sZWFuVHlwZSIsIkJPT0xFQU5fVFlQRV9OQU1FIiwicHJpbWl0aXZlVmFsdWUiLCJnZXRQcmltaXRpdmVWYWx1ZSIsImJvb2xlYW4iLCJ2YWx1ZUZyb21Cb29sZWFuIiwiVmFsdWVzIiwiZWxlbWVudHMiLCJmcm9tVmFsdWUiLCJtZXJnZSIsIlByb2NlZHVyZUNhbGwiLCJwcm9jZWR1cmVDYWxsIiwiZnJvbVJlZmVyZW5jZUFuZFZhbHVlcyIsIm5hbWUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQWNBOzs7ZUFBQTs7O2dDQVpvRTtrRUFFL0M7a0VBQ0M7dUJBR1c7MkJBQ2lCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVsRCxNQUFNLEVBQUVBLEtBQUssRUFBRSxHQUFHQyxxQ0FBcUIsRUFDakMsRUFBRUMsV0FBVyxFQUFFLEdBQUdDLG1DQUFtQjtNQUUzQyxXQUFlQyxJQUFBQSxnQkFBTSxFQUFDLE1BQU1DLFlBQVlDLHVCQUFPO0lBQzdDLFlBQVlDLE9BQU8sRUFBRUMsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLFVBQVUsRUFBRUMsTUFBTSxFQUFFQyxRQUFRLEVBQUVDLFVBQVUsQ0FBRTtRQUMzRSxLQUFLLENBQUNOLFNBQVNDLFFBQVFDLE1BQU1DO1FBRTdCLElBQUksQ0FBQ0YsTUFBTSxHQUFHQTtRQUNkLElBQUksQ0FBQ0csTUFBTSxHQUFHQTtRQUNkLElBQUksQ0FBQ0MsUUFBUSxHQUFHQTtRQUNoQixJQUFJLENBQUNDLFVBQVUsR0FBR0E7SUFDcEI7SUFFQUMsWUFBWTtRQUNWLE9BQU8sSUFBSSxDQUFDSCxNQUFNO0lBQ3BCO0lBRUFJLGNBQWM7UUFDWixPQUFPLElBQUksQ0FBQ0gsUUFBUTtJQUN0QjtJQUVBSSxnQkFBZ0I7UUFDZCxPQUFPLElBQUksQ0FBQ0gsVUFBVTtJQUN4QjtJQUVBSSxXQUFXZixZQUFZLFNBQVVLLE9BQU8sRUFBRVcsT0FBTyxFQUFFQyxJQUFJO1FBQ3JELE1BQU1DLFlBQVksSUFBSSxDQUFDQyxTQUFTO1FBRWhDZCxRQUFRZSxLQUFLLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRUYsVUFBVSxhQUFhLENBQUM7UUFFekQsT0FBTyxJQUFJLENBQUNSLFFBQVEs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
@@ -100,6 +100,11 @@ const _default = (0, _elements.define)(class ObjectAssignment extends _occamlang
100
100
  const name = namedBinding.getName();
101
101
  let evaluateNamedBinding;
102
102
  switch(name){
103
+ case _parameterNames.TYPE_PARAMETER_NAME:
104
+ {
105
+ evaluateNamedBinding = this.evaluateTypeNamedBinding.bind(this);
106
+ break;
107
+ }
103
108
  case _parameterNames.CONTENT_PARAMETER_NAME:
104
109
  {
105
110
  evaluateNamedBinding = this.evaluateContentNamedBinding.bind(this);
@@ -129,6 +134,23 @@ const _default = (0, _elements.define)(class ObjectAssignment extends _occamlang
129
134
  }, back);
130
135
  }, back);
131
136
  }
137
+ evaluateTypeNamedBinding(namedBinding, term, context, forward, back) {
138
+ const type = namedBinding.getType(), namedBindingString = namedBinding.getString();
139
+ context.trace(`Evaluating the type '${namedBindingString}' named binding...`);
140
+ const typeStringType = type.isStringType();
141
+ if (!typeStringType) {
142
+ const namedBindingString = namedBinding.getString(), message = `The '${namedBindingString}' named binding's type should be '${_typeNames.STRING_TYPE_NAME}'.`, exception = _exception.default.fromMessage(message);
143
+ return back(exception);
144
+ }
145
+ const primitiveValue = term.getPrimitiveValue(), nominalValue = primitiveValue, node = nominalValue.getNode(), nodeTerminalNode = node.isTerminalNode();
146
+ if (!nodeTerminalNode) {
147
+ const termString = term.getString(), message = `The '${termString}' term's node must be terminal.`, exception = _exception.default.fromMessage(message);
148
+ return back(exception);
149
+ }
150
+ const terminalNode = node, terminalNodeType = terminalNode.getType(), string = terminalNodeType, stringLiteral = (0, _stringLiteral.stringLiteralFromString)(string), value = (0, _value.valueFromStringLiteral)(stringLiteral, context), valueSttring = value.getString();
151
+ context.debug(`...evaluated the type '${namedBindingString}' named binding as '${valueSttring}'.`);
152
+ return forward(value, back);
153
+ }
132
154
  evaluateContentNamedBinding(namedBinding, term, context, forward, back) {
133
155
  const type = namedBinding.getType(), namedBindingString = namedBinding.getString();
134
156
  context.trace(`Evaluating the content '${namedBindingString}' named binding...`);
@@ -195,4 +217,4 @@ const _default = (0, _elements.define)(class ObjectAssignment extends _occamlang
195
217
  static name = "ObjectAssignment";
196
218
  });
197
219
 
198
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L2Fzc2lnbm1lbnQvb2JqZWN0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFbGVtZW50LCBicmVha1BvaW50VXRpbGl0aWVzIH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgZWxlbWVudHMgZnJvbSBcIi4uLy4uL2VsZW1lbnRzXCI7XG5pbXBvcnQgRXhjZXB0aW9uIGZyb20gXCIuLi8uLi9leGNlcHRpb25cIjtcbmltcG9ydCBub21pbmFsVmFsdWVQcm9wZXJ0aWVzIGZyb20gXCIuLi8uLi9ub21pbmFsVmFsdWVQcm9wZXJ0aWVzXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi8uLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgc3RyaW5nTGl0ZXJhbEZyb21TdHJpbmcgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL3N0cmluZ0xpdGVyYWxcIjtcbmltcG9ydCB7IHZhbHVlRnJvbUJvb2xlYW4sIHZhbHVlRnJvbVN0cmluZ0xpdGVyYWwsIHZhbHVlRnJvbU5vZGVzQW5kTm9taW5hbFZhbHVlIH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy92YWx1ZVwiO1xuaW1wb3J0IHsgTElTVF9UWVBFX05BTUUsIFNUUklOR19UWVBFX05BTUUsIEJPT0xFQU5fVFlQRV9OQU1FLCBOT01JTkFMX1ZBTFVFX1RZUEVfTkFNRSB9IGZyb20gXCIuLi8uLi90eXBlTmFtZXNcIjtcbmltcG9ydCB7IENPTlRFTlRfUEFSQU1FVEVSX05BTUUsIFRFUk1JTkFMX1BBUkFNRVRFUl9OQU1FLCBDSElMRF9OT0RFU19QQVJBTUVURVJfTkFNRSwgTk9fV0hJVEVTUEFDRV9QQVJBTUVURVJfTkFNRSB9IGZyb20gXCIuLi8uLi9wYXJhbWV0ZXJOYW1lc1wiO1xuXG5jb25zdCB7IGJyZWFrYWJsZSB9ID0gYnJlYWtQb2ludFV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIE9iamVjdEFzc2lnbm1lbnQgZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCB2YXJpYWJsZSwgbmFtZWRCaW5kaW5ncykge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLnZhcmlhYmxlID0gdmFyaWFibGU7XG4gICAgdGhpcy5uYW1lZEJpbmRpbmdzID0gbmFtZWRCaW5kaW5ncztcbiAgfVxuXG4gIGdldFZhcmlhYmxlKCkge1xuICAgIHJldHVybiB0aGlzLnZhcmlhYmxlO1xuICB9XG5cbiAgZ2V0TmFtZWRCaW5kaW5ncygpIHtcbiAgICByZXR1cm4gdGhpcy5uYW1lZEJpbmRpbmdzO1xuICB9XG5cbiAgZXZhbHVhdGUgPSBicmVha2FibGUoZnVuY3Rpb24gKGNvbnRleHQsIGZvcndhcmQsIGJhY2spIHtcbiAgICBjb25zdCBvYmplY3RBc3NpZ25tZW50U3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSAnJHtvYmplY3RBc3NpZ25tZW50U3RyaW5nfScgb2JqZWN0IGFzc2lnbm1lbnQuLi5gKTtcblxuICAgIHJldHVybiB0aGlzLnZhcmlhYmxlLmV2YWx1YXRlKGNvbnRleHQsICh2YWx1ZSwgYmFjaykgPT4ge1xuICAgICAgY29uc3QgdmFsdWVUeXBlID0gdmFsdWUuZ2V0VHlwZSgpLFxuICAgICAgICAgICAgdmFsdWVUeXBlTm9taW5hbFZhbHVlVHlwZSA9IHZhbHVlVHlwZS5pc05vbWluYWxWYWx1ZVR5cGUoKTtcblxuICAgICAgaWYgKCF2YWx1ZVR5cGVOb21pbmFsVmFsdWVUeXBlKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlU3RyaW5nID0gdmFsdWUuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICAgIG1lc3NhZ2UgPSBgVGhlICcke3ZhbHVlU3RyaW5nfScgdmFsdWUncyAnJHt2YWx1ZVR5cGV9JyB0eXBlIHNob3VsZCBiZSAnJHtOT01JTkFMX1ZBTFVFX1RZUEVfTkFNRX0nLmAsXG4gICAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgICByZXR1cm4gYmFjayhleGNlcHRpb24pO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gbm9taW5hbFZhbHVlUHJvcGVydGllcy5jb21wYXJlTmFtZWRCaW5kaW5ncyh0aGlzLm5hbWVkQmluZGluZ3MsIGNvbnRleHQsIChiYWNrKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLm5hbWVkQmluZGluZ3MuZm9yRWFjaE5hbWVkQmluZGluZygobmFtZWRCaW5kaW5nLCBmb3J3YXJkLCBiYWNrKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZXZhbHVhdGVOYW1lZEJpbmRpbmcobmFtZWRCaW5kaW5nLCB2YWx1ZSwgY29udGV4dCwgZm9yd2FyZCwgYmFjayk7XG4gICAgICAgIH0sIChiYWNrKSA9PiB7XG4gICAgICAgICAgY29udGV4dC5kZWJ1ZyhgLi4uZXZhbHVhdGVkIHRoZSAnJHtvYmplY3RBc3NpZ25tZW50U3RyaW5nfScgb2JqZWN0IGFzc2lnbm1lbnQuYCk7XG5cbiAgICAgICAgICByZXR1cm4gZm9yd2FyZChiYWNrKTtcbiAgICAgICAgfSwgYmFjayk7XG4gICAgICB9LCBiYWNrKTtcbiAgICB9LCBiYWNrKTtcbiAgfSk7XG5cbiAgZXZhbHVhdGVOYW1lZEJpbmRpbmcobmFtZWRCaW5kaW5nLCB0ZXJtLCBjb250ZXh0LCBmb3J3YXJkLCBiYWNrKSB7XG4gICAgY29uc3QgdGVybVN0cmluZyA9IHRlcm0uZ2V0U3RyaW5nKCksXG4gICAgICAgICAgbmFtZWRCaW5kaW5nU3RyaW5nID0gbmFtZWRCaW5kaW5nLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC50cmFjZShgRXZhbHVhdGluZyB0aGUgJyR7bmFtZWRCaW5kaW5nU3RyaW5nfScgbmFtZWQgYmluZGluZyBhZ2FpbnN0IHRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybS4uLmApO1xuXG4gICAgY29uc3QgbmFtZSA9IG5hbWVkQmluZGluZy5nZXROYW1lKCk7XG5cbiAgICBsZXQgZXZhbHVhdGVOYW1lZEJpbmRpbmc7XG5cbiAgICBzd2l0Y2ggKG5hbWUpIHtcbiAgICAgIGNhc2UgQ09OVEVOVF9QQVJBTUVURVJfTkFNRToge1xuICAgICAgICBldmFsdWF0ZU5hbWVkQmluZGluZyA9IHRoaXMuZXZhbHVhdGVDb250ZW50TmFtZWRCaW5kaW5nLmJpbmQodGhpcyk7XG5cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGNhc2UgVEVSTUlOQUxfUEFSQU1FVEVSX05BTUU6IHtcbiAgICAgICAgZXZhbHVhdGVOYW1lZEJpbmRpbmcgPSB0aGlzLmV2YWx1YXRlVGVybWluYWxOYW1lZEJpbmRpbmcuYmluZCh0aGlzKTtcblxuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgY2FzZSBDSElMRF9OT0RFU19QQVJBTUVURVJfTkFNRToge1xuICAgICAgICBldmFsdWF0ZU5hbWVkQmluZGluZyA9IHRoaXMuZXZhbHVhdGVDaGlsZE5vZGVzTmFtZWRCaW5kaW5nLmJpbmQodGhpcyk7XG5cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGNhc2UgTk9fV0hJVEVTUEFDRV9QQVJBTUVURVJfTkFNRToge1xuICAgICAgICBldmFsdWF0ZU5hbWVkQmluZGluZyA9IHRoaXMuZXZhbHVhdGVOb1doaXRlc3BhY2VOYW1lZEJpbmRpbmcuYmluZCh0aGlzKTtcblxuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZXZhbHVhdGVOYW1lZEJpbmRpbmcobmFtZWRCaW5kaW5nLCB0ZXJtLCBjb250ZXh0LCAodmFsdWUsIGJhY2spID0+IHtcbiAgICAgIGNvbnN0IHsgVmFyaWFibGUgfSA9IGVsZW1lbnRzLFxuICAgICAgICAgICAgdmFyaWFibGUgPSBWYXJpYWJsZS5mcm9tTmFtZWRCaW5kaW5nKG5hbWVkQmluZGluZywgY29udGV4dCk7XG5cbiAgICAgIHJldHVybiB2YXJpYWJsZS5hc3NpZ24odmFsdWUsIGNvbnRleHQsIChiYWNrKSA9PiB7XG4gICAgICAgIGNvbnRleHQuZGVidWcoYC4uLmV2YWx1YXRlZCB0aGUgJyR7bmFtZWRCaW5kaW5nU3RyaW5nfScgcGFyYW1ldGVyIG5hbWVkIGFnYWluc3QgdGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtLmApO1xuXG4gICAgICAgIHJldHVybiBmb3J3YXJkKGJhY2spO1xuICAgICAgfSwgYmFjayk7XG4gICAgfSwgYmFjayk7XG4gIH1cblxuICBldmFsdWF0ZUNvbnRlbnROYW1lZEJpbmRpbmcobmFtZWRCaW5kaW5nLCB0ZXJtLCBjb250ZXh0LCBmb3J3YXJkLCBiYWNrKSB7XG4gICAgY29uc3QgdHlwZSA9IG5hbWVkQmluZGluZy5nZXRUeXBlKCksXG4gICAgICAgICAgbmFtZWRCaW5kaW5nU3RyaW5nID0gbmFtZWRCaW5kaW5nLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC50cmFjZShgRXZhbHVhdGluZyB0aGUgY29udGVudCAnJHtuYW1lZEJpbmRpbmdTdHJpbmd9JyBuYW1lZCBiaW5kaW5nLi4uYCk7XG5cbiAgICBjb25zdCB0eXBlU3RyaW5nVHlwZSA9IHR5cGUuaXNTdHJpbmdUeXBlKCk7XG5cbiAgICBpZiAoIXR5cGVTdHJpbmdUeXBlKSB7XG4gICAgICBjb25zdCBuYW1lZEJpbmRpbmdTdHJpbmcgPSBuYW1lZEJpbmRpbmcuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICBtZXNzYWdlID0gYFRoZSAnJHtuYW1lZEJpbmRpbmdTdHJpbmd9JyBuYW1lZCBiaW5kaW5nJ3MgdHlwZSBzaG91bGQgYmUgJyR7U1RSSU5HX1RZUEVfTkFNRX0nLmAsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHJldHVybiBiYWNrKGV4Y2VwdGlvbik7XG4gICAgfVxuXG4gICAgY29uc3QgcHJpbWl0aXZlVmFsdWUgPSB0ZXJtLmdldFByaW1pdGl2ZVZhbHVlKCksXG4gICAgICAgICAgbm9taW5hbFZhbHVlID0gcHJpbWl0aXZlVmFsdWUsICAvLy9cbiAgICAgICAgICBub2RlID0gbm9taW5hbFZhbHVlLmdldE5vZGUoKSxcbiAgICAgICAgICBub2RlVGVybWluYWxOb2RlID0gbm9kZS5pc1Rlcm1pbmFsTm9kZSgpO1xuXG4gICAgaWYgKCFub2RlVGVybWluYWxOb2RlKSB7XG4gICAgICBjb25zdCB0ZXJtU3RyaW5nID0gdGVybS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBgVGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtJ3Mgbm9kZSBtdXN0IGJlIHRlcm1pbmFsLmAsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHJldHVybiBiYWNrKGV4Y2VwdGlvbik7XG4gICAgfVxuXG4gICAgY29uc3QgdGVybWluYWxOb2RlID0gbm9kZSwgIC8vL1xuICAgICAgICAgIGNvbnRlbnQgPSB0ZXJtaW5hbE5vZGUuZ2V0Q29udGVudCgpLFxuICAgICAgICAgIHN0cmluZyA9IGNvbnRlbnQsICAvLy9cbiAgICAgICAgICBzdHJpbmdMaXRlcmFsID0gc3RyaW5nTGl0ZXJhbEZyb21TdHJpbmcoc3RyaW5nKSxcbiAgICAgICAgICB2YWx1ZSA9IHZhbHVlRnJvbVN0cmluZ0xpdGVyYWwoc3RyaW5nTGl0ZXJhbCwgY29udGV4dCksXG4gICAgICAgICAgdmFsdWVTdHRyaW5nID0gdmFsdWUuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LmRlYnVnKGAuLi5ldmFsdWF0ZWQgdGhlIGNvbnRlbnQgJyR7bmFtZWRCaW5kaW5nU3RyaW5nfScgbmFtZWQgYmluZGluZyBhcyAnJHt2YWx1ZVN0dHJpbmd9Jy5gKTtcblxuICAgIHJldHVybiBmb3J3YXJkKHZhbHVlLCBiYWNrKTtcbiAgfVxuXG4gIGV2YWx1YXRlVGVybWluYWxOYW1lZEJpbmRpbmcobmFtZWRCaW5kaW5nLCB0ZXJtLCBjb250ZXh0LCBmb3J3YXJkLCBiYWNrKSB7XG4gICAgY29uc3QgdHlwZSA9IG5hbWVkQmluZGluZy5nZXRUeXBlKCksXG4gICAgICAgICAgbmFtZWRCaW5kaW5nU3RyaW5nID0gbmFtZWRCaW5kaW5nLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC50cmFjZShgRXZhbHVhdGluZyB0aGUgdGVybWluYWwgJyR7bmFtZWRCaW5kaW5nU3RyaW5nfScgbmFtZWQgYmluZGluZy4uLmApO1xuXG4gICAgY29uc3QgdHlwZUJvb2xlYW5UeXBlID0gdHlwZS5pc0Jvb2xlYW5UeXBlKCk7XG5cbiAgICBpZiAoIXR5cGVCb29sZWFuVHlwZSkge1xuICAgICAgY29uc3QgbmFtZWRCaW5kaW5nU3RyaW5nID0gbmFtZWRCaW5kaW5nLmdldFN0cmluZygpLFxuICAgICAgICAgICAgbWVzc2FnZSA9IGBUaGUgJyR7bmFtZWRCaW5kaW5nU3RyaW5nfScgbmFtZWQgYmluZGluZydzIHR5cGUgc2hvdWxkIGJlICcke0JPT0xFQU5fVFlQRV9OQU1FfScuYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgcmV0dXJuIGJhY2soZXhjZXB0aW9uKTtcbiAgICB9XG5cbiAgICBjb25zdCBwcmltaXRpdmVWYWx1ZSA9IHRlcm0uZ2V0UHJpbWl0aXZlVmFsdWUoKSxcbiAgICAgICAgICBub21pbmFsVmFsdWUgPSBwcmltaXRpdmVWYWx1ZSwgIC8vL1xuICAgICAgICAgIG5vZGUgPSBub21pbmFsVmFsdWUuZ2V0Tm9kZSgpLFxuICAgICAgICAgIG5vZGVUZXJtaW5hbE5vZGUgPSBub2RlLmlzVGVybWluYWxOb2RlKCksXG4gICAgICAgICAgdGVybWluYWwgPSBub2RlVGVybWluYWxOb2RlLCAgLy8vXG4gICAgICAgICAgYm9vbGVhbiA9IHRlcm1pbmFsLCAvLy9cbiAgICAgICAgICB2YWx1ZSA9IHZhbHVlRnJvbUJvb2xlYW4oYm9vbGVhbiwgY29udGV4dCksICAvLy9cbiAgICAgICAgICB2YWx1ZVN0dHJpbmcgPSB2YWx1ZS5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQuZGVidWcoYC4uLmV2YWx1YXRlZCB0aGUgdGVybWluYWwgJyR7bmFtZWRCaW5kaW5nU3RyaW5nfScgbmFtZWQgYmluZGluZyBhcyAnJHt2YWx1ZVN0dHJpbmd9Jy5gKTtcblxuICAgIHJldHVybiBmb3J3YXJkKHZhbHVlLCBiYWNrKTtcbiAgfVxuXG4gIGV2YWx1YXRlQ2hpbGROb2Rlc05hbWVkQmluZGluZyhuYW1lZEJpbmRpbmcsIHRlcm0sIGNvbnRleHQsIGZvcndhcmQsIGJhY2spIHtcbiAgICBjb25zdCB0eXBlID0gbmFtZWRCaW5kaW5nLmdldFR5cGUoKSxcbiAgICAgICAgICBuYW1lZEJpbmRpbmdTdHJpbmcgPSBuYW1lZEJpbmRpbmcuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSBjaGlsZCBub2RlcyAnJHtuYW1lZEJpbmRpbmdTdHJpbmd9JyBuYW1lZCBiaW5kaW5nLi4uYCk7XG5cbiAgICBjb25zdCB0eXBlTGlzdFR5cGUgPSB0eXBlLmlzTGlzdFR5cGUoKTtcblxuICAgIGlmICghdHlwZUxpc3RUeXBlKSB7XG4gICAgICBjb25zdCBuYW1lZEJpbmRpbmdTdHJpbmcgPSBuYW1lZEJpbmRpbmcuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICBtZXNzYWdlID0gYFRoZSAnJHtuYW1lZEJpbmRpbmdTdHJpbmd9JyBuYW1lZCBiaW5kaW5nJ3MgdHlwZSBzaG91bGQgYmUgJyR7TElTVF9UWVBFX05BTUV9Jy5gLFxuICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICByZXR1cm4gYmFjayhleGNlcHRpb24pO1xuICAgIH1cblxuICAgIGNvbnN0IHByaW1pdGl2ZVZhbHVlID0gdGVybS5nZXRQcmltaXRpdmVWYWx1ZSgpLFxuICAgICAgICAgIG5vbWluYWxWYWx1ZSA9IHByaW1pdGl2ZVZhbHVlLCAgLy8vXG4gICAgICAgICAgbm9kZSA9IG5vbWluYWxWYWx1ZS5nZXROb2RlKCksXG4gICAgICAgICAgbm9kZU5vblRlcm1pbmFsTm9kZSA9IG5vZGUuaXNOb25UZXJtaW5hbE5vZGUoKTtcblxuICAgIGlmICghbm9kZU5vblRlcm1pbmFsTm9kZSkge1xuICAgICAgY29uc3QgdGVybVN0cmluZyA9IHRlcm0uZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICBtZXNzYWdlID0gYFRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybSdzIG5vZGUgbXVzdCBiZSBub24tdGVybWluYWwuYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgcmV0dXJuIGJhY2soZXhjZXB0aW9uKTtcbiAgICB9XG5cbiAgICBjb25zdCBub25UZXJtaW5hbE5vZGUgPSBub2RlLCAgLy8vXG4gICAgICAgICAgY2hpbGROb2RlcyA9IG5vblRlcm1pbmFsTm9kZS5nZXRDaGlsZE5vZGVzKCksXG4gICAgICAgICAgbm9kZXMgPSBjaGlsZE5vZGVzLCAvLy9cbiAgICAgICAgICB2YWx1ZSA9IHZhbHVlRnJvbU5vZGVzQW5kTm9taW5hbFZhbHVlKG5vZGVzLCBub21pbmFsVmFsdWUpLFxuICAgICAgICAgIHZhbHVlU3R0cmluZyA9IHZhbHVlLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC5kZWJ1ZyhgLi4uZXZhbHVhdGVkIHRoZSBjaGlsZE5vZGVzICcke25hbWVkQmluZGluZ1N0cmluZ30nIG5hbWVkIGJpbmRpbmcgYXMgJyR7dmFsdWVTdHRyaW5nfScuYCk7XG5cbiAgICByZXR1cm4gZm9yd2FyZCh2YWx1ZSwgYmFjayk7XG4gIH1cblxuICBldmFsdWF0ZU5vV2hpdGVzcGFjZU5hbWVkQmluZGluZyhuYW1lZEJpbmRpbmcsIHRlcm0sIGNvbnRleHQsIGZvcndhcmQsIGJhY2spIHtcbiAgICBjb25zdCB0eXBlID0gbmFtZWRCaW5kaW5nLmdldFR5cGUoKSxcbiAgICAgICAgICBuYW1lZEJpbmRpbmdTdHJpbmcgPSBuYW1lZEJpbmRpbmcuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSBubyB3aGl0ZXNwYWNlICcke25hbWVkQmluZGluZ1N0cmluZ30nIG5hbWVkIGJpbmRpbmcuLi5gKTtcblxuICAgIGNvbnN0IHR5cGVCb29sZWFuVHlwZSA9IHR5cGUuaXNCb29sZWFuVHlwZSgpO1xuXG4gICAgaWYgKCF0eXBlQm9vbGVhblR5cGUpIHtcbiAgICAgIGNvbnN0IG5hbWVkQmluZGluZ1N0cmluZyA9IG5hbWVkQmluZGluZy5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBgVGhlICcke25hbWVkQmluZGluZ1N0cmluZ30nIG5hbWVkIGJpbmRpbmcncyB0eXBlIHNob3VsZCBiZSAnJHtCT09MRUFOX1RZUEVfTkFNRX0nLmAsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHJldHVybiBiYWNrKGV4Y2VwdGlvbik7XG4gICAgfVxuXG4gICAgY29uc3QgcHJpbWl0aXZlVmFsdWUgPSB0ZXJtLmdldFByaW1pdGl2ZVZhbHVlKCksXG4gICAgICAgICAgbm9taW5hbFZhbHVlID0gcHJpbWl0aXZlVmFsdWUsICAvLy9cbiAgICAgICAgICBub2RlID0gbm9taW5hbFZhbHVlLmdldE5vZGUoKSxcbiAgICAgICAgICBub2RlVGVybWluYWxOb2RlID0gbm9kZS5pc1Rlcm1pbmFsTm9kZSgpO1xuXG4gICAgaWYgKCFub2RlVGVybWluYWxOb2RlKSB7XG4gICAgICBjb25zdCB0ZXJtU3RyaW5nID0gdGVybS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBgVGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtJ3Mgbm9kZSBtdXN0IGJlIHRlcm1pbmFsLmAsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHJldHVybiBiYWNrKGV4Y2VwdGlvbik7XG4gICAgfVxuXG4gICAgY29uc3QgdGVybWluYWxOb2RlID0gbm9kZSwgIC8vL1xuICAgICAgICAgIG5vV2hpdGVhcGNlID0gdGVybWluYWxOb2RlLmlzTm9XaGl0ZXNwYWNlTm9kZSgpLFxuICAgICAgICAgIGJvb2xlYW4gPSBub1doaXRlYXBjZSwgIC8vL1xuICAgICAgICAgIHZhbHVlID0gdmFsdWVGcm9tQm9vbGVhbihib29sZWFuLCBjb250ZXh0KSxcbiAgICAgICAgICB2YWx1ZVN0dHJpbmcgPSB2YWx1ZS5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQuZGVidWcoYC4uLmV2YWx1YXRlZCB0aGUgbm8gd2hpdGVzcGFjZSAnJHtuYW1lZEJpbmRpbmdTdHJpbmd9JyBuYW1lZCBiaW5kaW5nIGFzICcke3ZhbHVlU3R0cmluZ30nLmApO1xuXG4gICAgcmV0dXJuIGZvcndhcmQodmFsdWUsIGJhY2spO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIk9iamVjdEFzc2lnbm1lbnRcIjtcbn0pO1xuIl0sIm5hbWVzIjpbImJyZWFrYWJsZSIsImJyZWFrUG9pbnRVdGlsaXRpZXMiLCJkZWZpbmUiLCJPYmplY3RBc3NpZ25tZW50IiwiRWxlbWVudCIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiYnJlYWtQb2ludCIsInZhcmlhYmxlIiwibmFtZWRCaW5kaW5ncyIsImdldFZhcmlhYmxlIiwiZ2V0TmFtZWRCaW5kaW5ncyIsImV2YWx1YXRlIiwiZm9yd2FyZCIsImJhY2siLCJvYmplY3RBc3NpZ25tZW50U3RyaW5nIiwiZ2V0U3RyaW5nIiwidHJhY2UiLCJ2YWx1ZSIsInZhbHVlVHlwZSIsImdldFR5cGUiLCJ2YWx1ZVR5cGVOb21pbmFsVmFsdWVUeXBlIiwiaXNOb21pbmFsVmFsdWVUeXBlIiwidmFsdWVTdHJpbmciLCJtZXNzYWdlIiwiTk9NSU5BTF9WQUxVRV9UWVBFX05BTUUiLCJleGNlcHRpb24iLCJFeGNlcHRpb24iLCJmcm9tTWVzc2FnZSIsIm5vbWluYWxWYWx1ZVByb3BlcnRpZXMiLCJjb21wYXJlTmFtZWRCaW5kaW5ncyIsImZvckVhY2hOYW1lZEJpbmRpbmciLCJuYW1lZEJpbmRpbmciLCJldmFsdWF0ZU5hbWVkQmluZGluZyIsImRlYnVnIiwidGVybSIsInRlcm1TdHJpbmciLCJuYW1lZEJpbmRpbmdTdHJpbmciLCJuYW1lIiwiZ2V0TmFtZSIsIkNPTlRFTlRfUEFSQU1FVEVSX05BTUUiLCJldmFsdWF0ZUNvbnRlbnROYW1lZEJpbmRpbmciLCJiaW5kIiwiVEVSTUlOQUxfUEFSQU1FVEVSX05BTUUiLCJldmFsdWF0ZVRlcm1pbmFsTmFtZWRCaW5kaW5nIiwiQ0hJTERfTk9ERVNfUEFSQU1FVEVSX05BTUUiLCJldmFsdWF0ZUNoaWxkTm9kZXNOYW1lZEJpbmRpbmciLCJOT19XSElURVNQQUNFX1BBUkFNRVRFUl9OQU1FIiwiZXZhbHVhdGVOb1doaXRlc3BhY2VOYW1lZEJpbmRpbmciLCJWYXJpYWJsZSIsImVsZW1lbnRzIiwiZnJvbU5hbWVkQmluZGluZyIsImFzc2lnbiIsInR5cGUiLCJ0eXBlU3RyaW5nVHlwZSIsImlzU3RyaW5nVHlwZSIsIlNUUklOR19UWVBFX05BTUUiLCJwcmltaXRpdmVWYWx1ZSIsImdldFByaW1pdGl2ZVZhbHVlIiwibm9taW5hbFZhbHVlIiwiZ2V0Tm9kZSIsIm5vZGVUZXJtaW5hbE5vZGUiLCJpc1Rlcm1pbmFsTm9kZSIsInRlcm1pbmFsTm9kZSIsImNvbnRlbnQiLCJnZXRDb250ZW50Iiwic3RyaW5nTGl0ZXJhbCIsInN0cmluZ0xpdGVyYWxGcm9tU3RyaW5nIiwidmFsdWVGcm9tU3RyaW5nTGl0ZXJhbCIsInZhbHVlU3R0cmluZyIsInR5cGVCb29sZWFuVHlwZSIsImlzQm9vbGVhblR5cGUiLCJCT09MRUFOX1RZUEVfTkFNRSIsInRlcm1pbmFsIiwiYm9vbGVhbiIsInZhbHVlRnJvbUJvb2xlYW4iLCJ0eXBlTGlzdFR5cGUiLCJpc0xpc3RUeXBlIiwiTElTVF9UWVBFX05BTUUiLCJub2RlTm9uVGVybWluYWxOb2RlIiwiaXNOb25UZXJtaW5hbE5vZGUiLCJub25UZXJtaW5hbE5vZGUiLCJjaGlsZE5vZGVzIiwiZ2V0Q2hpbGROb2RlcyIsIm5vZGVzIiwidmFsdWVGcm9tTm9kZXNBbmROb21pbmFsVmFsdWUiLCJub1doaXRlYXBjZSIsImlzTm9XaGl0ZXNwYWNlTm9kZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBZ0JBOzs7ZUFBQTs7O2dDQWQ2QztrRUFFeEI7a0VBQ0M7K0VBQ2E7K0JBR0s7dUJBQ2dEOzJCQUNLO2dDQUM2Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFMUgsTUFBTSxFQUFFQSxTQUFTLEVBQUUsR0FBR0MsbUNBQW1CO01BRXpDLFdBQWVDLElBQUFBLGdCQUFNLEVBQUMsTUFBTUMseUJBQXlCQyx1QkFBTztJQUMxRCxZQUFZQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxVQUFVLEVBQUVDLFFBQVEsRUFBRUMsYUFBYSxDQUFFO1FBQ3RFLEtBQUssQ0FBQ0wsU0FBU0MsUUFBUUMsTUFBTUM7UUFFN0IsSUFBSSxDQUFDQyxRQUFRLEdBQUdBO1FBQ2hCLElBQUksQ0FBQ0MsYUFBYSxHQUFHQTtJQUN2QjtJQUVBQyxjQUFjO1FBQ1osT0FBTyxJQUFJLENBQUNGLFFBQVE7SUFDdEI7SUFFQUcsbUJBQW1CO1FBQ2pCLE9BQU8sSUFBSSxDQUFDRixhQUFhO0lBQzNCO0lBRUFHLFdBQVdiLFVBQVUsU0FBVUssT0FBTyxFQUFFUyxPQUFPLEVBQUVDLElBQUk7UUFDbkQsTUFBTUMseUJBQXlCLElBQUksQ0FBQ0MsU0FBUyxJQUFJLEdBQUc7UUFFcERaLFFBQVFhLEtBQUssQ0FBQyxDQUFDLGdCQUFnQixFQUFFRix1QkFBdUIsc0JBQXNCLENBQUM7UUFFL0UsT0FBTyxJQUFJLENBQUNQLFFBQVEsQ0FBQ0ksUUFBUSxDQUFDUixTQUFTLENBQUNjLE9BQU9KO1lBQzdDLE1BQU1LLFlBQVlELE1BQU1FLE9BQU8sSUFDekJDLDRCQUE0QkYsVUFBVUcsa0JBQWtCO1lBRTlELElBQUksQ0FBQ0QsMkJBQTJCO2dCQUM5QixNQUFNRSxjQUFjTCxNQUFNRixTQUFTLElBQzdCUSxVQUFVLENBQUMsS0FBSyxFQUFFRCxZQUFZLFdBQVcsRUFBRUosVUFBVSxrQkFBa0IsRUFBRU0sa0NBQXVCLENBQUMsRUFBRSxDQUFDLEVBQ3BHQyxZQUFZQyxrQkFBUyxDQUFDQyxXQUFXLENBQUNKO2dCQUV4QyxPQUFPVixLQUFLWTtZQUNkO1lBRUEsT0FBT0csK0JBQXNCLENBQUNDLG9CQUFvQixDQUFDLElBQUksQ0FBQ3JCLGFBQWEsRUFBRUwsU0FBUyxDQUFDVTtnQkFDL0UsT0FBTyxJQUFJLENBQUNMLGFBQWEsQ0FBQ3NCLG1CQUFtQixDQUFDLENBQUNDLGNBQWNuQixTQUFTQztvQkFDcEUsT0FBTyxJQUFJLENBQUNtQixvQkFBb0IsQ0FBQ0QsY0FBY2QsT0FBT2QsU0FBU1MsU0FBU0M7Z0JBQzFFLEdBQUcsQ0FBQ0E7b0JBQ0ZWLFFBQVE4QixLQUFLLENBQUMsQ0FBQyxrQkFBa0IsRUFBRW5CLHVCQUF1QixvQkFBb0IsQ0FBQztvQkFFL0UsT0FBT0YsUUFBUUM7Z0JBQ2pCLEdBQUdBO1lBQ0wsR0FBR0E7UUFDTCxHQUFHQTtJQUNMLEdBQUc7SUFFSG1CLHFCQUFxQkQsWUFBWSxFQUFFRyxJQUFJLEVBQUUvQixPQUFPLEVBQUVTLE9BQU8sRUFBRUMsSUFBSSxFQUFFO1FBQy9ELE1BQU1zQixhQUFhRCxLQUFLbkIsU0FBUyxJQUMzQnFCLHFCQUFxQkwsYUFBYWhCLFNBQVM7UUFFakRaLFFBQVFhLEtBQUssQ0FBQyxDQUFDLGdCQUFnQixFQUFFb0IsbUJBQW1CLDZCQUE2QixFQUFFRCxXQUFXLFNBQVMsQ0FBQztRQUV4RyxNQUFNRSxPQUFPTixhQUFhTyxPQUFPO1FBRWpDLElBQUlOO1FBRUosT0FBUUs7WUFDTixLQUFLRSxzQ0FBc0I7Z0JBQUU7b0JBQzNCUCx1QkFBdUIsSUFBSSxDQUFDUSwyQkFBMkIsQ0FBQ0MsSUFBSSxDQUFDLElBQUk7b0JBRWpFO2dCQUNGO1lBRUEsS0FBS0MsdUNBQXVCO2dCQUFFO29CQUM1QlYsdUJBQXVCLElBQUksQ0FBQ1csNEJBQTRCLENBQUNGLElBQUksQ0FBQyxJQUFJO29CQUVsRTtnQkFDRjtZQUVBLEtBQUtHLDBDQUEwQjtnQkFBRTtvQkFDL0JaLHVCQUF1QixJQUFJLENBQUNhLDhCQUE4QixDQUFDSixJQUFJLENBQUMsSUFBSTtvQkFFcEU7Z0JBQ0Y7WUFFQSxLQUFLSyw0Q0FBNEI7Z0JBQUU7b0JBQ2pDZCx1QkFBdUIsSUFBSSxDQUFDZSxnQ0FBZ0MsQ0FBQ04sSUFBSSxDQUFDLElBQUk7b0JBRXRFO2dCQUNGO1FBQ0Y7UUFFQSxPQUFPVCxxQkFBcUJELGNBQWNHLE1BQU0vQixTQUFTLENBQUNjLE9BQU9KO1lBQy9ELE1BQU0sRUFBRW1DLFFBQVEsRUFBRSxHQUFHQyxpQkFBUSxFQUN2QjFDLFdBQVd5QyxTQUFTRSxnQkFBZ0IsQ0FBQ25CLGNBQWM1QjtZQUV6RCxPQUFPSSxTQUFTNEMsTUFBTSxDQUFDbEMsT0FBT2QsU0FBUyxDQUFDVTtnQkFDdENWLFFBQVE4QixLQUFLLENBQUMsQ0FBQyxrQkFBa0IsRUFBRUcsbUJBQW1CLCtCQUErQixFQUFFRCxXQUFXLE9BQU8sQ0FBQztnQkFFMUcsT0FBT3ZCLFFBQVFDO1lBQ2pCLEdBQUdBO1FBQ0wsR0FBR0E7SUFDTDtJQUVBMkIsNEJBQTRCVCxZQUFZLEVBQUVHLElBQUksRUFBRS9CLE9BQU8sRUFBRVMsT0FBTyxFQUFFQyxJQUFJLEVBQUU7UUFDdEUsTUFBTXVDLE9BQU9yQixhQUFhWixPQUFPLElBQzNCaUIscUJBQXFCTCxhQUFhaEIsU0FBUztRQUVqRFosUUFBUWEsS0FBSyxDQUFDLENBQUMsd0JBQXdCLEVBQUVvQixtQkFBbUIsa0JBQWtCLENBQUM7UUFFL0UsTUFBTWlCLGlCQUFpQkQsS0FBS0UsWUFBWTtRQUV4QyxJQUFJLENBQUNELGdCQUFnQjtZQUNuQixNQUFNakIscUJBQXFCTCxhQUFhaEIsU0FBUyxJQUMzQ1EsVUFBVSxDQUFDLEtBQUssRUFBRWEsbUJBQW1CLGtDQUFrQyxFQUFFbUIsMkJBQWdCLENBQUMsRUFBRSxDQUFDLEVBQzdGOUIsWUFBWUMsa0JBQVMsQ0FBQ0MsV0FBVyxDQUFDSjtZQUV4QyxPQUFPVixLQUFLWTtRQUNkO1FBRUEsTUFBTStCLGlCQUFpQnRCLEtBQUt1QixpQkFBaUIsSUFDdkNDLGVBQWVGLGdCQUNmbkQsT0FBT3FELGFBQWFDLE9BQU8sSUFDM0JDLG1CQUFtQnZELEtBQUt3RCxjQUFjO1FBRTVDLElBQUksQ0FBQ0Qsa0JBQWtCO1lBQ3JCLE1BQU16QixhQUFhRCxLQUFLbkIsU0FBUyxJQUMzQlEsVUFBVSxDQUFDLEtBQUssRUFBRVksV0FBVywrQkFBK0IsQ0FBQyxFQUM3RFYsWUFBWUMsa0JBQVMsQ0FBQ0MsV0FBVyxDQUFDSjtZQUV4QyxPQUFPVixLQUFLWTtRQUNkO1FBRUEsTUFBTXFDLGVBQWV6RCxNQUNmMEQsVUFBVUQsYUFBYUUsVUFBVSxJQUNqQzVELFNBQVMyRCxTQUNURSxnQkFBZ0JDLElBQUFBLHNDQUF1QixFQUFDOUQsU0FDeENhLFFBQVFrRCxJQUFBQSw2QkFBc0IsRUFBQ0YsZUFBZTlELFVBQzlDaUUsZUFBZW5ELE1BQU1GLFNBQVM7UUFFcENaLFFBQVE4QixLQUFLLENBQUMsQ0FBQywwQkFBMEIsRUFBRUcsbUJBQW1CLG9CQUFvQixFQUFFZ0MsYUFBYSxFQUFFLENBQUM7UUFFcEcsT0FBT3hELFFBQVFLLE9BQU9KO0lBQ3hCO0lBRUE4Qiw2QkFBNkJaLFlBQVksRUFBRUcsSUFBSSxFQUFFL0IsT0FBTyxFQUFFUyxPQUFPLEVBQUVDLElBQUksRUFBRTtRQUN2RSxNQUFNdUMsT0FBT3JCLGFBQWFaLE9BQU8sSUFDM0JpQixxQkFBcUJMLGFBQWFoQixTQUFTO1FBRWpEWixRQUFRYSxLQUFLLENBQUMsQ0FBQyx5QkFBeUIsRUFBRW9CLG1CQUFtQixrQkFBa0IsQ0FBQztRQUVoRixNQUFNaUMsa0JBQWtCakIsS0FBS2tCLGFBQWE7UUFFMUMsSUFBSSxDQUFDRCxpQkFBaUI7WUFDcEIsTUFBTWpDLHFCQUFxQkwsYUFBYWhCLFNBQVMsSUFDM0NRLFVBQVUsQ0FBQyxLQUFLLEVBQUVhLG1CQUFtQixrQ0FBa0MsRUFBRW1DLDRCQUFpQixDQUFDLEVBQUUsQ0FBQyxFQUM5RjlDLFlBQVlDLGtCQUFTLENBQUNDLFdBQVcsQ0FBQ0o7WUFFeEMsT0FBT1YsS0FBS1k7UUFDZDtRQUVBLE1BQU0rQixpQkFBaUJ0QixLQUFLdUIsaUJBQWlCLElBQ3ZDQyxlQUFlRixnQkFDZm5ELE9BQU9xRCxhQUFhQyxPQUFPLElBQzNCQyxtQkFBbUJ2RCxLQUFLd0QsY0FBYyxJQUN0Q1csV0FBV1osa0JBQ1hhLFVBQVVELFVBQ1Z2RCxRQUFReUQsSUFBQUEsdUJBQWdCLEVBQUNELFNBQVN0RSxVQUNsQ2lFLGVBQWVuRCxNQUFNRixTQUFTO1FBRXBDWixRQUFROEIsS0FBSyxDQUFDLENBQUMsMkJBQTJCLEVBQUVHLG1CQUFtQixvQkFBb0IsRUFBRWdDLGFBQWEsRUFBRSxDQUFDO1FBRXJHLE9BQU94RCxRQUFRSyxPQUFPSjtJQUN4QjtJQUVBZ0MsK0JBQStCZCxZQUFZLEVBQUVHLElBQUksRUFBRS9CLE9BQU8sRUFBRVMsT0FBTyxFQUFFQyxJQUFJLEVBQUU7UUFDekUsTUFBTXVDLE9BQU9yQixhQUFhWixPQUFPLElBQzNCaUIscUJBQXFCTCxhQUFhaEIsU0FBUztRQUVqRFosUUFBUWEsS0FBSyxDQUFDLENBQUMsNEJBQTRCLEVBQUVvQixtQkFBbUIsa0JBQWtCLENBQUM7UUFFbkYsTUFBTXVDLGVBQWV2QixLQUFLd0IsVUFBVTtRQUVwQyxJQUFJLENBQUNELGNBQWM7WUFDakIsTUFBTXZDLHFCQUFxQkwsYUFBYWhCLFNBQVMsSUFDM0NRLFVBQVUsQ0FBQyxLQUFLLEVBQUVhLG1CQUFtQixrQ0FBa0MsRUFBRXlDLHlCQUFjLENBQUMsRUFBRSxDQUFDLEVBQzNGcEQsWUFBWUMsa0JBQVMsQ0FBQ0MsV0FBVyxDQUFDSjtZQUV4QyxPQUFPVixLQUFLWTtRQUNkO1FBRUEsTUFBTStCLGlCQUFpQnRCLEtBQUt1QixpQkFBaUIsSUFDdkNDLGVBQWVGLGdCQUNmbkQsT0FBT3FELGFBQWFDLE9BQU8sSUFDM0JtQixzQkFBc0J6RSxLQUFLMEUsaUJBQWlCO1FBRWxELElBQUksQ0FBQ0QscUJBQXFCO1lBQ3hCLE1BQU0zQyxhQUFhRCxLQUFLbkIsU0FBUyxJQUMzQlEsVUFBVSxDQUFDLEtBQUssRUFBRVksV0FBVyxtQ0FBbUMsQ0FBQyxFQUNqRVYsWUFBWUMsa0JBQVMsQ0FBQ0MsV0FBVyxDQUFDSjtZQUV4QyxPQUFPVixLQUFLWTtRQUNkO1FBRUEsTUFBTXVELGtCQUFrQjNFLE1BQ2xCNEUsYUFBYUQsZ0JBQWdCRSxhQUFhLElBQzFDQyxRQUFRRixZQUNSaEUsUUFBUW1FLElBQUFBLG9DQUE2QixFQUFDRCxPQUFPekIsZUFDN0NVLGVBQWVuRCxNQUFNRixTQUFTO1FBRXBDWixRQUFROEIsS0FBSyxDQUFDLENBQUMsNkJBQTZCLEVBQUVHLG1CQUFtQixvQkFBb0IsRUFBRWdDLGFBQWEsRUFBRSxDQUFDO1FBRXZHLE9BQU94RCxRQUFRSyxPQUFPSjtJQUN4QjtJQUVBa0MsaUNBQWlDaEIsWUFBWSxFQUFFRyxJQUFJLEVBQUUvQixPQUFPLEVBQUVTLE9BQU8sRUFBRUMsSUFBSSxFQUFFO1FBQzNFLE1BQU11QyxPQUFPckIsYUFBYVosT0FBTyxJQUMzQmlCLHFCQUFxQkwsYUFBYWhCLFNBQVM7UUFFakRaLFFBQVFhLEtBQUssQ0FBQyxDQUFDLDhCQUE4QixFQUFFb0IsbUJBQW1CLGtCQUFrQixDQUFDO1FBRXJGLE1BQU1pQyxrQkFBa0JqQixLQUFLa0IsYUFBYTtRQUUxQyxJQUFJLENBQUNELGlCQUFpQjtZQUNwQixNQUFNakMscUJBQXFCTCxhQUFhaEIsU0FBUyxJQUMzQ1EsVUFBVSxDQUFDLEtBQUssRUFBRWEsbUJBQW1CLGtDQUFrQyxFQUFFbUMsNEJBQWlCLENBQUMsRUFBRSxDQUFDLEVBQzlGOUMsWUFBWUMsa0JBQVMsQ0FBQ0MsV0FBVyxDQUFDSjtZQUV4QyxPQUFPVixLQUFLWTtRQUNkO1FBRUEsTUFBTStCLGlCQUFpQnRCLEtBQUt1QixpQkFBaUIsSUFDdkNDLGVBQWVGLGdCQUNmbkQsT0FBT3FELGFBQWFDLE9BQU8sSUFDM0JDLG1CQUFtQnZELEtBQUt3RCxjQUFjO1FBRTVDLElBQUksQ0FBQ0Qsa0JBQWtCO1lBQ3JCLE1BQU16QixhQUFhRCxLQUFLbkIsU0FBUyxJQUMzQlEsVUFBVSxDQUFDLEtBQUssRUFBRVksV0FBVywrQkFBK0IsQ0FBQyxFQUM3RFYsWUFBWUMsa0JBQVMsQ0FBQ0MsV0FBVyxDQUFDSjtZQUV4QyxPQUFPVixLQUFLWTtRQUNkO1FBRUEsTUFBTXFDLGVBQWV6RCxNQUNmZ0YsY0FBY3ZCLGFBQWF3QixrQkFBa0IsSUFDN0NiLFVBQVVZLGFBQ1ZwRSxRQUFReUQsSUFBQUEsdUJBQWdCLEVBQUNELFNBQVN0RSxVQUNsQ2lFLGVBQWVuRCxNQUFNRixTQUFTO1FBRXBDWixRQUFROEIsS0FBSyxDQUFDLENBQUMsZ0NBQWdDLEVBQUVHLG1CQUFtQixvQkFBb0IsRUFBRWdDLGFBQWEsRUFBRSxDQUFDO1FBRTFHLE9BQU94RCxRQUFRSyxPQUFPSjtJQUN4QjtJQUVBLE9BQU93QixPQUFPLG1CQUFtQjtBQUNuQyJ9
220
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L2Fzc2lnbm1lbnQvb2JqZWN0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFbGVtZW50LCBicmVha1BvaW50VXRpbGl0aWVzIH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgZWxlbWVudHMgZnJvbSBcIi4uLy4uL2VsZW1lbnRzXCI7XG5pbXBvcnQgRXhjZXB0aW9uIGZyb20gXCIuLi8uLi9leGNlcHRpb25cIjtcbmltcG9ydCBub21pbmFsVmFsdWVQcm9wZXJ0aWVzIGZyb20gXCIuLi8uLi9ub21pbmFsVmFsdWVQcm9wZXJ0aWVzXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi8uLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgc3RyaW5nTGl0ZXJhbEZyb21TdHJpbmcgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL3N0cmluZ0xpdGVyYWxcIjtcbmltcG9ydCB7IHZhbHVlRnJvbUJvb2xlYW4sIHZhbHVlRnJvbVN0cmluZ0xpdGVyYWwsIHZhbHVlRnJvbU5vZGVzQW5kTm9taW5hbFZhbHVlIH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy92YWx1ZVwiO1xuaW1wb3J0IHsgTElTVF9UWVBFX05BTUUsIFNUUklOR19UWVBFX05BTUUsIEJPT0xFQU5fVFlQRV9OQU1FLCBOT01JTkFMX1ZBTFVFX1RZUEVfTkFNRSB9IGZyb20gXCIuLi8uLi90eXBlTmFtZXNcIjtcbmltcG9ydCB7IFRZUEVfUEFSQU1FVEVSX05BTUUsIENPTlRFTlRfUEFSQU1FVEVSX05BTUUsIFRFUk1JTkFMX1BBUkFNRVRFUl9OQU1FLCBDSElMRF9OT0RFU19QQVJBTUVURVJfTkFNRSwgTk9fV0hJVEVTUEFDRV9QQVJBTUVURVJfTkFNRSB9IGZyb20gXCIuLi8uLi9wYXJhbWV0ZXJOYW1lc1wiO1xuXG5jb25zdCB7IGJyZWFrYWJsZSB9ID0gYnJlYWtQb2ludFV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIE9iamVjdEFzc2lnbm1lbnQgZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCB2YXJpYWJsZSwgbmFtZWRCaW5kaW5ncykge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLnZhcmlhYmxlID0gdmFyaWFibGU7XG4gICAgdGhpcy5uYW1lZEJpbmRpbmdzID0gbmFtZWRCaW5kaW5ncztcbiAgfVxuXG4gIGdldFZhcmlhYmxlKCkge1xuICAgIHJldHVybiB0aGlzLnZhcmlhYmxlO1xuICB9XG5cbiAgZ2V0TmFtZWRCaW5kaW5ncygpIHtcbiAgICByZXR1cm4gdGhpcy5uYW1lZEJpbmRpbmdzO1xuICB9XG5cbiAgZXZhbHVhdGUgPSBicmVha2FibGUoZnVuY3Rpb24gKGNvbnRleHQsIGZvcndhcmQsIGJhY2spIHtcbiAgICBjb25zdCBvYmplY3RBc3NpZ25tZW50U3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSAnJHtvYmplY3RBc3NpZ25tZW50U3RyaW5nfScgb2JqZWN0IGFzc2lnbm1lbnQuLi5gKTtcblxuICAgIHJldHVybiB0aGlzLnZhcmlhYmxlLmV2YWx1YXRlKGNvbnRleHQsICh2YWx1ZSwgYmFjaykgPT4ge1xuICAgICAgY29uc3QgdmFsdWVUeXBlID0gdmFsdWUuZ2V0VHlwZSgpLFxuICAgICAgICAgICAgdmFsdWVUeXBlTm9taW5hbFZhbHVlVHlwZSA9IHZhbHVlVHlwZS5pc05vbWluYWxWYWx1ZVR5cGUoKTtcblxuICAgICAgaWYgKCF2YWx1ZVR5cGVOb21pbmFsVmFsdWVUeXBlKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlU3RyaW5nID0gdmFsdWUuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICAgIG1lc3NhZ2UgPSBgVGhlICcke3ZhbHVlU3RyaW5nfScgdmFsdWUncyAnJHt2YWx1ZVR5cGV9JyB0eXBlIHNob3VsZCBiZSAnJHtOT01JTkFMX1ZBTFVFX1RZUEVfTkFNRX0nLmAsXG4gICAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgICByZXR1cm4gYmFjayhleGNlcHRpb24pO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gbm9taW5hbFZhbHVlUHJvcGVydGllcy5jb21wYXJlTmFtZWRCaW5kaW5ncyh0aGlzLm5hbWVkQmluZGluZ3MsIGNvbnRleHQsIChiYWNrKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLm5hbWVkQmluZGluZ3MuZm9yRWFjaE5hbWVkQmluZGluZygobmFtZWRCaW5kaW5nLCBmb3J3YXJkLCBiYWNrKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZXZhbHVhdGVOYW1lZEJpbmRpbmcobmFtZWRCaW5kaW5nLCB2YWx1ZSwgY29udGV4dCwgZm9yd2FyZCwgYmFjayk7XG4gICAgICAgIH0sIChiYWNrKSA9PiB7XG4gICAgICAgICAgY29udGV4dC5kZWJ1ZyhgLi4uZXZhbHVhdGVkIHRoZSAnJHtvYmplY3RBc3NpZ25tZW50U3RyaW5nfScgb2JqZWN0IGFzc2lnbm1lbnQuYCk7XG5cbiAgICAgICAgICByZXR1cm4gZm9yd2FyZChiYWNrKTtcbiAgICAgICAgfSwgYmFjayk7XG4gICAgICB9LCBiYWNrKTtcbiAgICB9LCBiYWNrKTtcbiAgfSk7XG5cbiAgZXZhbHVhdGVOYW1lZEJpbmRpbmcobmFtZWRCaW5kaW5nLCB0ZXJtLCBjb250ZXh0LCBmb3J3YXJkLCBiYWNrKSB7XG4gICAgY29uc3QgdGVybVN0cmluZyA9IHRlcm0uZ2V0U3RyaW5nKCksXG4gICAgICAgICAgbmFtZWRCaW5kaW5nU3RyaW5nID0gbmFtZWRCaW5kaW5nLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC50cmFjZShgRXZhbHVhdGluZyB0aGUgJyR7bmFtZWRCaW5kaW5nU3RyaW5nfScgbmFtZWQgYmluZGluZyBhZ2FpbnN0IHRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybS4uLmApO1xuXG4gICAgY29uc3QgbmFtZSA9IG5hbWVkQmluZGluZy5nZXROYW1lKCk7XG5cbiAgICBsZXQgZXZhbHVhdGVOYW1lZEJpbmRpbmc7XG5cbiAgICBzd2l0Y2ggKG5hbWUpIHtcbiAgICAgIGNhc2UgVFlQRV9QQVJBTUVURVJfTkFNRToge1xuICAgICAgICBldmFsdWF0ZU5hbWVkQmluZGluZyA9IHRoaXMuZXZhbHVhdGVUeXBlTmFtZWRCaW5kaW5nLmJpbmQodGhpcyk7XG5cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGNhc2UgQ09OVEVOVF9QQVJBTUVURVJfTkFNRToge1xuICAgICAgICBldmFsdWF0ZU5hbWVkQmluZGluZyA9IHRoaXMuZXZhbHVhdGVDb250ZW50TmFtZWRCaW5kaW5nLmJpbmQodGhpcyk7XG5cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGNhc2UgVEVSTUlOQUxfUEFSQU1FVEVSX05BTUU6IHtcbiAgICAgICAgZXZhbHVhdGVOYW1lZEJpbmRpbmcgPSB0aGlzLmV2YWx1YXRlVGVybWluYWxOYW1lZEJpbmRpbmcuYmluZCh0aGlzKTtcblxuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgY2FzZSBDSElMRF9OT0RFU19QQVJBTUVURVJfTkFNRToge1xuICAgICAgICBldmFsdWF0ZU5hbWVkQmluZGluZyA9IHRoaXMuZXZhbHVhdGVDaGlsZE5vZGVzTmFtZWRCaW5kaW5nLmJpbmQodGhpcyk7XG5cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGNhc2UgTk9fV0hJVEVTUEFDRV9QQVJBTUVURVJfTkFNRToge1xuICAgICAgICBldmFsdWF0ZU5hbWVkQmluZGluZyA9IHRoaXMuZXZhbHVhdGVOb1doaXRlc3BhY2VOYW1lZEJpbmRpbmcuYmluZCh0aGlzKTtcblxuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZXZhbHVhdGVOYW1lZEJpbmRpbmcobmFtZWRCaW5kaW5nLCB0ZXJtLCBjb250ZXh0LCAodmFsdWUsIGJhY2spID0+IHtcbiAgICAgIGNvbnN0IHsgVmFyaWFibGUgfSA9IGVsZW1lbnRzLFxuICAgICAgICAgICAgdmFyaWFibGUgPSBWYXJpYWJsZS5mcm9tTmFtZWRCaW5kaW5nKG5hbWVkQmluZGluZywgY29udGV4dCk7XG5cbiAgICAgIHJldHVybiB2YXJpYWJsZS5hc3NpZ24odmFsdWUsIGNvbnRleHQsIChiYWNrKSA9PiB7XG4gICAgICAgIGNvbnRleHQuZGVidWcoYC4uLmV2YWx1YXRlZCB0aGUgJyR7bmFtZWRCaW5kaW5nU3RyaW5nfScgcGFyYW1ldGVyIG5hbWVkIGFnYWluc3QgdGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtLmApO1xuXG4gICAgICAgIHJldHVybiBmb3J3YXJkKGJhY2spO1xuICAgICAgfSwgYmFjayk7XG4gICAgfSwgYmFjayk7XG4gIH1cblxuICBldmFsdWF0ZVR5cGVOYW1lZEJpbmRpbmcobmFtZWRCaW5kaW5nLCB0ZXJtLCBjb250ZXh0LCBmb3J3YXJkLCBiYWNrKSB7XG4gICAgY29uc3QgdHlwZSA9IG5hbWVkQmluZGluZy5nZXRUeXBlKCksXG4gICAgICAgICAgbmFtZWRCaW5kaW5nU3RyaW5nID0gbmFtZWRCaW5kaW5nLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC50cmFjZShgRXZhbHVhdGluZyB0aGUgdHlwZSAnJHtuYW1lZEJpbmRpbmdTdHJpbmd9JyBuYW1lZCBiaW5kaW5nLi4uYCk7XG5cbiAgICBjb25zdCB0eXBlU3RyaW5nVHlwZSA9IHR5cGUuaXNTdHJpbmdUeXBlKCk7XG5cbiAgICBpZiAoIXR5cGVTdHJpbmdUeXBlKSB7XG4gICAgICBjb25zdCBuYW1lZEJpbmRpbmdTdHJpbmcgPSBuYW1lZEJpbmRpbmcuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICBtZXNzYWdlID0gYFRoZSAnJHtuYW1lZEJpbmRpbmdTdHJpbmd9JyBuYW1lZCBiaW5kaW5nJ3MgdHlwZSBzaG91bGQgYmUgJyR7U1RSSU5HX1RZUEVfTkFNRX0nLmAsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHJldHVybiBiYWNrKGV4Y2VwdGlvbik7XG4gICAgfVxuXG4gICAgY29uc3QgcHJpbWl0aXZlVmFsdWUgPSB0ZXJtLmdldFByaW1pdGl2ZVZhbHVlKCksXG4gICAgICAgICAgbm9taW5hbFZhbHVlID0gcHJpbWl0aXZlVmFsdWUsICAvLy9cbiAgICAgICAgICBub2RlID0gbm9taW5hbFZhbHVlLmdldE5vZGUoKSxcbiAgICAgICAgICBub2RlVGVybWluYWxOb2RlID0gbm9kZS5pc1Rlcm1pbmFsTm9kZSgpO1xuXG4gICAgaWYgKCFub2RlVGVybWluYWxOb2RlKSB7XG4gICAgICBjb25zdCB0ZXJtU3RyaW5nID0gdGVybS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBgVGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtJ3Mgbm9kZSBtdXN0IGJlIHRlcm1pbmFsLmAsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHJldHVybiBiYWNrKGV4Y2VwdGlvbik7XG4gICAgfVxuXG4gICAgY29uc3QgdGVybWluYWxOb2RlID0gbm9kZSwgIC8vL1xuICAgICAgICAgIHRlcm1pbmFsTm9kZVR5cGUgPSB0ZXJtaW5hbE5vZGUuZ2V0VHlwZSgpLFxuICAgICAgICAgIHN0cmluZyA9IHRlcm1pbmFsTm9kZVR5cGUsICAvLy9cbiAgICAgICAgICBzdHJpbmdMaXRlcmFsID0gc3RyaW5nTGl0ZXJhbEZyb21TdHJpbmcoc3RyaW5nKSxcbiAgICAgICAgICB2YWx1ZSA9IHZhbHVlRnJvbVN0cmluZ0xpdGVyYWwoc3RyaW5nTGl0ZXJhbCwgY29udGV4dCksXG4gICAgICAgICAgdmFsdWVTdHRyaW5nID0gdmFsdWUuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LmRlYnVnKGAuLi5ldmFsdWF0ZWQgdGhlIHR5cGUgJyR7bmFtZWRCaW5kaW5nU3RyaW5nfScgbmFtZWQgYmluZGluZyBhcyAnJHt2YWx1ZVN0dHJpbmd9Jy5gKTtcblxuICAgIHJldHVybiBmb3J3YXJkKHZhbHVlLCBiYWNrKTtcbiAgfVxuXG4gIGV2YWx1YXRlQ29udGVudE5hbWVkQmluZGluZyhuYW1lZEJpbmRpbmcsIHRlcm0sIGNvbnRleHQsIGZvcndhcmQsIGJhY2spIHtcbiAgICBjb25zdCB0eXBlID0gbmFtZWRCaW5kaW5nLmdldFR5cGUoKSxcbiAgICAgICAgICBuYW1lZEJpbmRpbmdTdHJpbmcgPSBuYW1lZEJpbmRpbmcuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSBjb250ZW50ICcke25hbWVkQmluZGluZ1N0cmluZ30nIG5hbWVkIGJpbmRpbmcuLi5gKTtcblxuICAgIGNvbnN0IHR5cGVTdHJpbmdUeXBlID0gdHlwZS5pc1N0cmluZ1R5cGUoKTtcblxuICAgIGlmICghdHlwZVN0cmluZ1R5cGUpIHtcbiAgICAgIGNvbnN0IG5hbWVkQmluZGluZ1N0cmluZyA9IG5hbWVkQmluZGluZy5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBgVGhlICcke25hbWVkQmluZGluZ1N0cmluZ30nIG5hbWVkIGJpbmRpbmcncyB0eXBlIHNob3VsZCBiZSAnJHtTVFJJTkdfVFlQRV9OQU1FfScuYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgcmV0dXJuIGJhY2soZXhjZXB0aW9uKTtcbiAgICB9XG5cbiAgICBjb25zdCBwcmltaXRpdmVWYWx1ZSA9IHRlcm0uZ2V0UHJpbWl0aXZlVmFsdWUoKSxcbiAgICAgICAgICBub21pbmFsVmFsdWUgPSBwcmltaXRpdmVWYWx1ZSwgIC8vL1xuICAgICAgICAgIG5vZGUgPSBub21pbmFsVmFsdWUuZ2V0Tm9kZSgpLFxuICAgICAgICAgIG5vZGVUZXJtaW5hbE5vZGUgPSBub2RlLmlzVGVybWluYWxOb2RlKCk7XG5cbiAgICBpZiAoIW5vZGVUZXJtaW5hbE5vZGUpIHtcbiAgICAgIGNvbnN0IHRlcm1TdHJpbmcgPSB0ZXJtLmdldFN0cmluZygpLFxuICAgICAgICAgICAgbWVzc2FnZSA9IGBUaGUgJyR7dGVybVN0cmluZ30nIHRlcm0ncyBub2RlIG11c3QgYmUgdGVybWluYWwuYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgcmV0dXJuIGJhY2soZXhjZXB0aW9uKTtcbiAgICB9XG5cbiAgICBjb25zdCB0ZXJtaW5hbE5vZGUgPSBub2RlLCAgLy8vXG4gICAgICAgICAgY29udGVudCA9IHRlcm1pbmFsTm9kZS5nZXRDb250ZW50KCksXG4gICAgICAgICAgc3RyaW5nID0gY29udGVudCwgIC8vL1xuICAgICAgICAgIHN0cmluZ0xpdGVyYWwgPSBzdHJpbmdMaXRlcmFsRnJvbVN0cmluZyhzdHJpbmcpLFxuICAgICAgICAgIHZhbHVlID0gdmFsdWVGcm9tU3RyaW5nTGl0ZXJhbChzdHJpbmdMaXRlcmFsLCBjb250ZXh0KSxcbiAgICAgICAgICB2YWx1ZVN0dHJpbmcgPSB2YWx1ZS5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQuZGVidWcoYC4uLmV2YWx1YXRlZCB0aGUgY29udGVudCAnJHtuYW1lZEJpbmRpbmdTdHJpbmd9JyBuYW1lZCBiaW5kaW5nIGFzICcke3ZhbHVlU3R0cmluZ30nLmApO1xuXG4gICAgcmV0dXJuIGZvcndhcmQodmFsdWUsIGJhY2spO1xuICB9XG5cbiAgZXZhbHVhdGVUZXJtaW5hbE5hbWVkQmluZGluZyhuYW1lZEJpbmRpbmcsIHRlcm0sIGNvbnRleHQsIGZvcndhcmQsIGJhY2spIHtcbiAgICBjb25zdCB0eXBlID0gbmFtZWRCaW5kaW5nLmdldFR5cGUoKSxcbiAgICAgICAgICBuYW1lZEJpbmRpbmdTdHJpbmcgPSBuYW1lZEJpbmRpbmcuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSB0ZXJtaW5hbCAnJHtuYW1lZEJpbmRpbmdTdHJpbmd9JyBuYW1lZCBiaW5kaW5nLi4uYCk7XG5cbiAgICBjb25zdCB0eXBlQm9vbGVhblR5cGUgPSB0eXBlLmlzQm9vbGVhblR5cGUoKTtcblxuICAgIGlmICghdHlwZUJvb2xlYW5UeXBlKSB7XG4gICAgICBjb25zdCBuYW1lZEJpbmRpbmdTdHJpbmcgPSBuYW1lZEJpbmRpbmcuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICBtZXNzYWdlID0gYFRoZSAnJHtuYW1lZEJpbmRpbmdTdHJpbmd9JyBuYW1lZCBiaW5kaW5nJ3MgdHlwZSBzaG91bGQgYmUgJyR7Qk9PTEVBTl9UWVBFX05BTUV9Jy5gLFxuICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICByZXR1cm4gYmFjayhleGNlcHRpb24pO1xuICAgIH1cblxuICAgIGNvbnN0IHByaW1pdGl2ZVZhbHVlID0gdGVybS5nZXRQcmltaXRpdmVWYWx1ZSgpLFxuICAgICAgICAgIG5vbWluYWxWYWx1ZSA9IHByaW1pdGl2ZVZhbHVlLCAgLy8vXG4gICAgICAgICAgbm9kZSA9IG5vbWluYWxWYWx1ZS5nZXROb2RlKCksXG4gICAgICAgICAgbm9kZVRlcm1pbmFsTm9kZSA9IG5vZGUuaXNUZXJtaW5hbE5vZGUoKSxcbiAgICAgICAgICB0ZXJtaW5hbCA9IG5vZGVUZXJtaW5hbE5vZGUsICAvLy9cbiAgICAgICAgICBib29sZWFuID0gdGVybWluYWwsIC8vL1xuICAgICAgICAgIHZhbHVlID0gdmFsdWVGcm9tQm9vbGVhbihib29sZWFuLCBjb250ZXh0KSwgIC8vL1xuICAgICAgICAgIHZhbHVlU3R0cmluZyA9IHZhbHVlLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC5kZWJ1ZyhgLi4uZXZhbHVhdGVkIHRoZSB0ZXJtaW5hbCAnJHtuYW1lZEJpbmRpbmdTdHJpbmd9JyBuYW1lZCBiaW5kaW5nIGFzICcke3ZhbHVlU3R0cmluZ30nLmApO1xuXG4gICAgcmV0dXJuIGZvcndhcmQodmFsdWUsIGJhY2spO1xuICB9XG5cbiAgZXZhbHVhdGVDaGlsZE5vZGVzTmFtZWRCaW5kaW5nKG5hbWVkQmluZGluZywgdGVybSwgY29udGV4dCwgZm9yd2FyZCwgYmFjaykge1xuICAgIGNvbnN0IHR5cGUgPSBuYW1lZEJpbmRpbmcuZ2V0VHlwZSgpLFxuICAgICAgICAgIG5hbWVkQmluZGluZ1N0cmluZyA9IG5hbWVkQmluZGluZy5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQudHJhY2UoYEV2YWx1YXRpbmcgdGhlIGNoaWxkIG5vZGVzICcke25hbWVkQmluZGluZ1N0cmluZ30nIG5hbWVkIGJpbmRpbmcuLi5gKTtcblxuICAgIGNvbnN0IHR5cGVMaXN0VHlwZSA9IHR5cGUuaXNMaXN0VHlwZSgpO1xuXG4gICAgaWYgKCF0eXBlTGlzdFR5cGUpIHtcbiAgICAgIGNvbnN0IG5hbWVkQmluZGluZ1N0cmluZyA9IG5hbWVkQmluZGluZy5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBgVGhlICcke25hbWVkQmluZGluZ1N0cmluZ30nIG5hbWVkIGJpbmRpbmcncyB0eXBlIHNob3VsZCBiZSAnJHtMSVNUX1RZUEVfTkFNRX0nLmAsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHJldHVybiBiYWNrKGV4Y2VwdGlvbik7XG4gICAgfVxuXG4gICAgY29uc3QgcHJpbWl0aXZlVmFsdWUgPSB0ZXJtLmdldFByaW1pdGl2ZVZhbHVlKCksXG4gICAgICAgICAgbm9taW5hbFZhbHVlID0gcHJpbWl0aXZlVmFsdWUsICAvLy9cbiAgICAgICAgICBub2RlID0gbm9taW5hbFZhbHVlLmdldE5vZGUoKSxcbiAgICAgICAgICBub2RlTm9uVGVybWluYWxOb2RlID0gbm9kZS5pc05vblRlcm1pbmFsTm9kZSgpO1xuXG4gICAgaWYgKCFub2RlTm9uVGVybWluYWxOb2RlKSB7XG4gICAgICBjb25zdCB0ZXJtU3RyaW5nID0gdGVybS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBgVGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtJ3Mgbm9kZSBtdXN0IGJlIG5vbi10ZXJtaW5hbC5gLFxuICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICByZXR1cm4gYmFjayhleGNlcHRpb24pO1xuICAgIH1cblxuICAgIGNvbnN0IG5vblRlcm1pbmFsTm9kZSA9IG5vZGUsICAvLy9cbiAgICAgICAgICBjaGlsZE5vZGVzID0gbm9uVGVybWluYWxOb2RlLmdldENoaWxkTm9kZXMoKSxcbiAgICAgICAgICBub2RlcyA9IGNoaWxkTm9kZXMsIC8vL1xuICAgICAgICAgIHZhbHVlID0gdmFsdWVGcm9tTm9kZXNBbmROb21pbmFsVmFsdWUobm9kZXMsIG5vbWluYWxWYWx1ZSksXG4gICAgICAgICAgdmFsdWVTdHRyaW5nID0gdmFsdWUuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LmRlYnVnKGAuLi5ldmFsdWF0ZWQgdGhlIGNoaWxkTm9kZXMgJyR7bmFtZWRCaW5kaW5nU3RyaW5nfScgbmFtZWQgYmluZGluZyBhcyAnJHt2YWx1ZVN0dHJpbmd9Jy5gKTtcblxuICAgIHJldHVybiBmb3J3YXJkKHZhbHVlLCBiYWNrKTtcbiAgfVxuXG4gIGV2YWx1YXRlTm9XaGl0ZXNwYWNlTmFtZWRCaW5kaW5nKG5hbWVkQmluZGluZywgdGVybSwgY29udGV4dCwgZm9yd2FyZCwgYmFjaykge1xuICAgIGNvbnN0IHR5cGUgPSBuYW1lZEJpbmRpbmcuZ2V0VHlwZSgpLFxuICAgICAgICAgIG5hbWVkQmluZGluZ1N0cmluZyA9IG5hbWVkQmluZGluZy5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQudHJhY2UoYEV2YWx1YXRpbmcgdGhlIG5vIHdoaXRlc3BhY2UgJyR7bmFtZWRCaW5kaW5nU3RyaW5nfScgbmFtZWQgYmluZGluZy4uLmApO1xuXG4gICAgY29uc3QgdHlwZUJvb2xlYW5UeXBlID0gdHlwZS5pc0Jvb2xlYW5UeXBlKCk7XG5cbiAgICBpZiAoIXR5cGVCb29sZWFuVHlwZSkge1xuICAgICAgY29uc3QgbmFtZWRCaW5kaW5nU3RyaW5nID0gbmFtZWRCaW5kaW5nLmdldFN0cmluZygpLFxuICAgICAgICAgICAgbWVzc2FnZSA9IGBUaGUgJyR7bmFtZWRCaW5kaW5nU3RyaW5nfScgbmFtZWQgYmluZGluZydzIHR5cGUgc2hvdWxkIGJlICcke0JPT0xFQU5fVFlQRV9OQU1FfScuYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgcmV0dXJuIGJhY2soZXhjZXB0aW9uKTtcbiAgICB9XG5cbiAgICBjb25zdCBwcmltaXRpdmVWYWx1ZSA9IHRlcm0uZ2V0UHJpbWl0aXZlVmFsdWUoKSxcbiAgICAgICAgICBub21pbmFsVmFsdWUgPSBwcmltaXRpdmVWYWx1ZSwgIC8vL1xuICAgICAgICAgIG5vZGUgPSBub21pbmFsVmFsdWUuZ2V0Tm9kZSgpLFxuICAgICAgICAgIG5vZGVUZXJtaW5hbE5vZGUgPSBub2RlLmlzVGVybWluYWxOb2RlKCk7XG5cbiAgICBpZiAoIW5vZGVUZXJtaW5hbE5vZGUpIHtcbiAgICAgIGNvbnN0IHRlcm1TdHJpbmcgPSB0ZXJtLmdldFN0cmluZygpLFxuICAgICAgICAgICAgbWVzc2FnZSA9IGBUaGUgJyR7dGVybVN0cmluZ30nIHRlcm0ncyBub2RlIG11c3QgYmUgdGVybWluYWwuYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgcmV0dXJuIGJhY2soZXhjZXB0aW9uKTtcbiAgICB9XG5cbiAgICBjb25zdCB0ZXJtaW5hbE5vZGUgPSBub2RlLCAgLy8vXG4gICAgICAgICAgbm9XaGl0ZWFwY2UgPSB0ZXJtaW5hbE5vZGUuaXNOb1doaXRlc3BhY2VOb2RlKCksXG4gICAgICAgICAgYm9vbGVhbiA9IG5vV2hpdGVhcGNlLCAgLy8vXG4gICAgICAgICAgdmFsdWUgPSB2YWx1ZUZyb21Cb29sZWFuKGJvb2xlYW4sIGNvbnRleHQpLFxuICAgICAgICAgIHZhbHVlU3R0cmluZyA9IHZhbHVlLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC5kZWJ1ZyhgLi4uZXZhbHVhdGVkIHRoZSBubyB3aGl0ZXNwYWNlICcke25hbWVkQmluZGluZ1N0cmluZ30nIG5hbWVkIGJpbmRpbmcgYXMgJyR7dmFsdWVTdHRyaW5nfScuYCk7XG5cbiAgICByZXR1cm4gZm9yd2FyZCh2YWx1ZSwgYmFjayk7XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiT2JqZWN0QXNzaWdubWVudFwiO1xufSk7XG4iXSwibmFtZXMiOlsiYnJlYWthYmxlIiwiYnJlYWtQb2ludFV0aWxpdGllcyIsImRlZmluZSIsIk9iamVjdEFzc2lnbm1lbnQiLCJFbGVtZW50IiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50IiwidmFyaWFibGUiLCJuYW1lZEJpbmRpbmdzIiwiZ2V0VmFyaWFibGUiLCJnZXROYW1lZEJpbmRpbmdzIiwiZXZhbHVhdGUiLCJmb3J3YXJkIiwiYmFjayIsIm9iamVjdEFzc2lnbm1lbnRTdHJpbmciLCJnZXRTdHJpbmciLCJ0cmFjZSIsInZhbHVlIiwidmFsdWVUeXBlIiwiZ2V0VHlwZSIsInZhbHVlVHlwZU5vbWluYWxWYWx1ZVR5cGUiLCJpc05vbWluYWxWYWx1ZVR5cGUiLCJ2YWx1ZVN0cmluZyIsIm1lc3NhZ2UiLCJOT01JTkFMX1ZBTFVFX1RZUEVfTkFNRSIsImV4Y2VwdGlvbiIsIkV4Y2VwdGlvbiIsImZyb21NZXNzYWdlIiwibm9taW5hbFZhbHVlUHJvcGVydGllcyIsImNvbXBhcmVOYW1lZEJpbmRpbmdzIiwiZm9yRWFjaE5hbWVkQmluZGluZyIsIm5hbWVkQmluZGluZyIsImV2YWx1YXRlTmFtZWRCaW5kaW5nIiwiZGVidWciLCJ0ZXJtIiwidGVybVN0cmluZyIsIm5hbWVkQmluZGluZ1N0cmluZyIsIm5hbWUiLCJnZXROYW1lIiwiVFlQRV9QQVJBTUVURVJfTkFNRSIsImV2YWx1YXRlVHlwZU5hbWVkQmluZGluZyIsImJpbmQiLCJDT05URU5UX1BBUkFNRVRFUl9OQU1FIiwiZXZhbHVhdGVDb250ZW50TmFtZWRCaW5kaW5nIiwiVEVSTUlOQUxfUEFSQU1FVEVSX05BTUUiLCJldmFsdWF0ZVRlcm1pbmFsTmFtZWRCaW5kaW5nIiwiQ0hJTERfTk9ERVNfUEFSQU1FVEVSX05BTUUiLCJldmFsdWF0ZUNoaWxkTm9kZXNOYW1lZEJpbmRpbmciLCJOT19XSElURVNQQUNFX1BBUkFNRVRFUl9OQU1FIiwiZXZhbHVhdGVOb1doaXRlc3BhY2VOYW1lZEJpbmRpbmciLCJWYXJpYWJsZSIsImVsZW1lbnRzIiwiZnJvbU5hbWVkQmluZGluZyIsImFzc2lnbiIsInR5cGUiLCJ0eXBlU3RyaW5nVHlwZSIsImlzU3RyaW5nVHlwZSIsIlNUUklOR19UWVBFX05BTUUiLCJwcmltaXRpdmVWYWx1ZSIsImdldFByaW1pdGl2ZVZhbHVlIiwibm9taW5hbFZhbHVlIiwiZ2V0Tm9kZSIsIm5vZGVUZXJtaW5hbE5vZGUiLCJpc1Rlcm1pbmFsTm9kZSIsInRlcm1pbmFsTm9kZSIsInRlcm1pbmFsTm9kZVR5cGUiLCJzdHJpbmdMaXRlcmFsIiwic3RyaW5nTGl0ZXJhbEZyb21TdHJpbmciLCJ2YWx1ZUZyb21TdHJpbmdMaXRlcmFsIiwidmFsdWVTdHRyaW5nIiwiY29udGVudCIsImdldENvbnRlbnQiLCJ0eXBlQm9vbGVhblR5cGUiLCJpc0Jvb2xlYW5UeXBlIiwiQk9PTEVBTl9UWVBFX05BTUUiLCJ0ZXJtaW5hbCIsImJvb2xlYW4iLCJ2YWx1ZUZyb21Cb29sZWFuIiwidHlwZUxpc3RUeXBlIiwiaXNMaXN0VHlwZSIsIkxJU1RfVFlQRV9OQU1FIiwibm9kZU5vblRlcm1pbmFsTm9kZSIsImlzTm9uVGVybWluYWxOb2RlIiwibm9uVGVybWluYWxOb2RlIiwiY2hpbGROb2RlcyIsImdldENoaWxkTm9kZXMiLCJub2RlcyIsInZhbHVlRnJvbU5vZGVzQW5kTm9taW5hbFZhbHVlIiwibm9XaGl0ZWFwY2UiLCJpc05vV2hpdGVzcGFjZU5vZGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQWdCQTs7O2VBQUE7OztnQ0FkNkM7a0VBRXhCO2tFQUNDOytFQUNhOytCQUdLO3VCQUNnRDsyQkFDSztnQ0FDa0Q7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRS9JLE1BQU0sRUFBRUEsU0FBUyxFQUFFLEdBQUdDLG1DQUFtQjtNQUV6QyxXQUFlQyxJQUFBQSxnQkFBTSxFQUFDLE1BQU1DLHlCQUF5QkMsdUJBQU87SUFDMUQsWUFBWUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsVUFBVSxFQUFFQyxRQUFRLEVBQUVDLGFBQWEsQ0FBRTtRQUN0RSxLQUFLLENBQUNMLFNBQVNDLFFBQVFDLE1BQU1DO1FBRTdCLElBQUksQ0FBQ0MsUUFBUSxHQUFHQTtRQUNoQixJQUFJLENBQUNDLGFBQWEsR0FBR0E7SUFDdkI7SUFFQUMsY0FBYztRQUNaLE9BQU8sSUFBSSxDQUFDRixRQUFRO0lBQ3RCO0lBRUFHLG1CQUFtQjtRQUNqQixPQUFPLElBQUksQ0FBQ0YsYUFBYTtJQUMzQjtJQUVBRyxXQUFXYixVQUFVLFNBQVVLLE9BQU8sRUFBRVMsT0FBTyxFQUFFQyxJQUFJO1FBQ25ELE1BQU1DLHlCQUF5QixJQUFJLENBQUNDLFNBQVMsSUFBSSxHQUFHO1FBRXBEWixRQUFRYSxLQUFLLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRUYsdUJBQXVCLHNCQUFzQixDQUFDO1FBRS9FLE9BQU8sSUFBSSxDQUFDUCxRQUFRLENBQUNJLFFBQVEsQ0FBQ1IsU0FBUyxDQUFDYyxPQUFPSjtZQUM3QyxNQUFNSyxZQUFZRCxNQUFNRSxPQUFPLElBQ3pCQyw0QkFBNEJGLFVB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
@@ -10,12 +10,12 @@ Object.defineProperty(exports, "default", {
10
10
  });
11
11
  const _occamlanguages = require("occam-languages");
12
12
  const _elements = require("../elements");
13
- const { breakable } = _occamlanguages.breakPointUtilities;
13
+ const { unbreakable } = _occamlanguages.breakPointUtilities;
14
14
  const _default = (0, _elements.define)(class Error extends _occamlanguages.Element {
15
15
  constructor(context, string, node, breakPoint){
16
16
  super(context, string, node, breakPoint);
17
17
  }
18
- verify = breakable(function(context, forward, back) {
18
+ verify = unbreakable(function(context, forward, back) {
19
19
  const errorString = this.getString(); ///
20
20
  context.warning(`The '${errorString}' error cannot be verified.`);
21
21
  return back();
@@ -23,4 +23,4 @@ const _default = (0, _elements.define)(class Error extends _occamlanguages.Eleme
23
23
  static name = "Error";
24
24
  });
25
25
 
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2Vycm9yLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQge0VsZW1lbnQsIGJyZWFrUG9pbnRVdGlsaXRpZXN9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcblxuaW1wb3J0IHsgZGVmaW5lIH0gZnJvbSBcIi4uL2VsZW1lbnRzXCI7XG5cbmNvbnN0IHsgYnJlYWthYmxlIH0gPSBicmVha1BvaW50VXRpbGl0aWVzO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgRXJyb3IgZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50KSB7XG4gICAgc3VwZXIoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50KTtcbiAgfVxuXG4gIHZlcmlmeSA9IGJyZWFrYWJsZShmdW5jdGlvbiAoY29udGV4dCwgZm9yd2FyZCwgYmFjaykge1xuICAgIGNvbnN0IGVycm9yU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgIC8vL1xuXG4gICAgY29udGV4dC53YXJuaW5nKGBUaGUgJyR7ZXJyb3JTdHJpbmd9JyBlcnJvciBjYW5ub3QgYmUgdmVyaWZpZWQuYCk7XG5cbiAgICByZXR1cm4gYmFjaygpO1xuICB9KTtcblxuICBzdGF0aWMgbmFtZSA9IFwiRXJyb3JcIjtcbn0pO1xuIl0sIm5hbWVzIjpbImJyZWFrYWJsZSIsImJyZWFrUG9pbnRVdGlsaXRpZXMiLCJkZWZpbmUiLCJFcnJvciIsIkVsZW1lbnQiLCJjb250ZXh0Iiwic3RyaW5nIiwibm9kZSIsImJyZWFrUG9pbnQiLCJ2ZXJpZnkiLCJmb3J3YXJkIiwiYmFjayIsImVycm9yU3RyaW5nIiwiZ2V0U3RyaW5nIiwid2FybmluZyIsIm5hbWUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVFBOzs7ZUFBQTs7O2dDQU4yQzswQkFFcEI7QUFFdkIsTUFBTSxFQUFFQSxTQUFTLEVBQUUsR0FBR0MsbUNBQW1CO01BRXpDLFdBQWVDLElBQUFBLGdCQUFNLEVBQUMsTUFBTUMsY0FBY0MsdUJBQU87SUFDL0MsWUFBWUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsVUFBVSxDQUFFO1FBQzdDLEtBQUssQ0FBQ0gsU0FBU0MsUUFBUUMsTUFBTUM7SUFDL0I7SUFFQUMsU0FBU1QsVUFBVSxTQUFVSyxPQUFPLEVBQUVLLE9BQU8sRUFBRUMsSUFBSTtRQUNqRCxNQUFNQyxjQUFjLElBQUksQ0FBQ0MsU0FBUyxJQUFLLEdBQUc7UUFFMUNSLFFBQVFTLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRUYsWUFBWSwyQkFBMkIsQ0FBQztRQUVoRSxPQUFPRDtJQUNULEdBQUc7SUFFSCxPQUFPSSxPQUFPLFFBQVE7QUFDeEIifQ==
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2Vycm9yLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFbGVtZW50LCBicmVha1BvaW50VXRpbGl0aWVzIH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vZWxlbWVudHNcIjtcblxuY29uc3QgeyB1bmJyZWFrYWJsZSB9ID0gYnJlYWtQb2ludFV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIEVycm9yIGV4dGVuZHMgRWxlbWVudCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCkge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG4gIH1cblxuICB2ZXJpZnkgPSB1bmJyZWFrYWJsZShmdW5jdGlvbiAoY29udGV4dCwgZm9yd2FyZCwgYmFjaykge1xuICAgIGNvbnN0IGVycm9yU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgIC8vL1xuXG4gICAgY29udGV4dC53YXJuaW5nKGBUaGUgJyR7ZXJyb3JTdHJpbmd9JyBlcnJvciBjYW5ub3QgYmUgdmVyaWZpZWQuYCk7XG5cbiAgICByZXR1cm4gYmFjaygpO1xuICB9KTtcblxuICBzdGF0aWMgbmFtZSA9IFwiRXJyb3JcIjtcbn0pO1xuIl0sIm5hbWVzIjpbInVuYnJlYWthYmxlIiwiYnJlYWtQb2ludFV0aWxpdGllcyIsImRlZmluZSIsIkVycm9yIiwiRWxlbWVudCIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiYnJlYWtQb2ludCIsInZlcmlmeSIsImZvcndhcmQiLCJiYWNrIiwiZXJyb3JTdHJpbmciLCJnZXRTdHJpbmciLCJ3YXJuaW5nIiwibmFtZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBUUE7OztlQUFBOzs7Z0NBTjZDOzBCQUV0QjtBQUV2QixNQUFNLEVBQUVBLFdBQVcsRUFBRSxHQUFHQyxtQ0FBbUI7TUFFM0MsV0FBZUMsSUFBQUEsZ0JBQU0sRUFBQyxNQUFNQyxjQUFjQyx1QkFBTztJQUMvQyxZQUFZQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxVQUFVLENBQUU7UUFDN0MsS0FBSyxDQUFDSCxTQUFTQyxRQUFRQyxNQUFNQztJQUMvQjtJQUVBQyxTQUFTVCxZQUFZLFNBQVVLLE9BQU8sRUFBRUssT0FBTyxFQUFFQyxJQUFJO1FBQ25ELE1BQU1DLGNBQWMsSUFBSSxDQUFDQyxTQUFTLElBQUssR0FBRztRQUUxQ1IsUUFBUVMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFRixZQUFZLDJCQUEyQixDQUFDO1FBRWhFLE9BQU9EO0lBQ1QsR0FBRztJQUVILE9BQU9JLE9BQU8sUUFBUTtBQUN4QiJ9
@@ -11,8 +11,8 @@ Object.defineProperty(exports, "default", {
11
11
  const _occamlanguages = require("occam-languages");
12
12
  const _elements = /*#__PURE__*/ _interop_require_wildcard(require("../elements"));
13
13
  const _exception = /*#__PURE__*/ _interop_require_default(require("../exception"));
14
- const _value = require("../utilities/value");
15
14
  const _typeNames = require("../typeNames");
15
+ const _value = require("../utilities/value");
16
16
  function _interop_require_default(obj) {
17
17
  return obj && obj.__esModule ? obj : {
18
18
  default: obj
@@ -59,7 +59,7 @@ function _interop_require_wildcard(obj, nodeInterop) {
59
59
  }
60
60
  return newObj;
61
61
  }
62
- const { every } = _occamlanguages.continuationUtilities, { breakable } = _occamlanguages.breakPointUtilities;
62
+ const { every } = _occamlanguages.continuationUtilities, { unbreakable } = _occamlanguages.breakPointUtilities;
63
63
  const _default = (0, _elements.define)(class Every extends _occamlanguages.Element {
64
64
  constructor(context, string, node, breakPoint, variable, anonymousProcedure){
65
65
  super(context, string, node, breakPoint);
@@ -73,27 +73,27 @@ const _default = (0, _elements.define)(class Every extends _occamlanguages.Eleme
73
73
  getAnonymousProcedure() {
74
74
  return this.anonymousProcedure;
75
75
  }
76
- evaluate = breakable(function(context, forward, back) {
76
+ evaluate = unbreakable(function(context, forward, back) {
77
77
  const everyString = this.getString();
78
- context.trace(`Evaluating the '${everyString}' every...`);
78
+ context.trace(`Evaluating the '${everyString}' function...`);
79
79
  return this.variable.evaluate(context, (value, back)=>{
80
80
  const valueType = value.getType(), valueTypeListType = valueType.isListType();
81
81
  if (!valueTypeListType) {
82
82
  const valueString = value.getString(), message = `The '${valueString}' value's '${valueType}' type should be '${_typeNames.LIST_TYPE_NAME}'.`, exception = _exception.default.fromMessage(message);
83
83
  return back(exception);
84
84
  }
85
- const nodes = value.getNodes();
86
- return every(nodes, (node, forward, back)=>{
87
- return this.evaluateAnonymousProcedure(node, context, forward, back);
88
- }, (boolean, back)=>{
89
- const value = (0, _value.valueFromBoolean)(boolean, context), valueString = value.getString();
90
- context.trace(`...evaluated the '${everyString}' every as '${valueString}'.`);
85
+ const primitiveValue = value.getPrimitiveValue(), nominalValues = primitiveValue; ///
86
+ return every(nominalValues, (nominalValue, context, forward, back)=>{
87
+ return this.evaluateAnonymousProcedure(nominalValue, context, forward, back);
88
+ }, context, (context, back)=>{
89
+ const boolean = true, value = (0, _value.valueFromBoolean)(boolean, context), valueString = value.getString();
90
+ context.trace(`...evaluated the '${everyString}' function as '${valueString}'.`);
91
91
  return forward(value, back);
92
92
  }, back);
93
93
  }, back);
94
94
  });
95
- evaluateAnonymousProcedure(node, context, forward, back) {
96
- const { Values } = _elements.default, value = (0, _value.valueFromNode)(node, context), values = Values.fromValue(value, context);
95
+ evaluateAnonymousProcedure(nominalValue, context, forward, back) {
96
+ const { Values } = _elements.default, value = (0, _value.valueFromNominalValue)(nominalValue, context), values = Values.fromValue(value, context);
97
97
  return this.anonymousProcedure.evaluate(values, context, (value, back)=>{
98
98
  const valueType = value.getType(), valueTypeBooleanType = valueType.isBooleanType();
99
99
  if (!valueTypeBooleanType) {
@@ -107,4 +107,4 @@ const _default = (0, _elements.define)(class Every extends _occamlanguages.Eleme
107
107
  static name = "Every";
108
108
  });
109
109
 
110
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2V2ZXJ5LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFbGVtZW50LCBicmVha1BvaW50VXRpbGl0aWVzLCBjb250aW51YXRpb25VdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCBlbGVtZW50cyBmcm9tIFwiLi4vZWxlbWVudHNcIjtcbmltcG9ydCBFeGNlcHRpb24gZnJvbSBcIi4uL2V4Y2VwdGlvblwiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vZWxlbWVudHNcIjtcbmltcG9ydCB7IHZhbHVlRnJvbU5vZGUsIHZhbHVlRnJvbUJvb2xlYW4gfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3ZhbHVlXCI7XG5pbXBvcnQgeyBMSVNUX1RZUEVfTkFNRSwgQk9PTEVBTl9UWVBFX05BTUUgfSBmcm9tIFwiLi4vdHlwZU5hbWVzXCI7XG5cbmNvbnN0IHsgZXZlcnkgfSA9IGNvbnRpbnVhdGlvblV0aWxpdGllcyxcbiAgICAgIHsgYnJlYWthYmxlIH0gPSBicmVha1BvaW50VXRpbGl0aWVzO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgRXZlcnkgZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCB2YXJpYWJsZSwgYW5vbnltb3VzUHJvY2VkdXJlKSB7XG4gICAgc3VwZXIoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50KTtcblxuICAgIHRoaXMuc3RyaW5nID0gc3RyaW5nO1xuICAgIHRoaXMudmFyaWFibGUgPSB2YXJpYWJsZTtcbiAgICB0aGlzLmFub255bW91c1Byb2NlZHVyZSA9IGFub255bW91c1Byb2NlZHVyZTtcbiAgfVxuXG4gIGdldFZhcmlhYmxlKCkge1xuICAgIHJldHVybiB0aGlzLnZhcmlhYmxlO1xuICB9XG5cbiAgZ2V0QW5vbnltb3VzUHJvY2VkdXJlKCkge1xuICAgIHJldHVybiB0aGlzLmFub255bW91c1Byb2NlZHVyZTtcbiAgfVxuXG4gIGV2YWx1YXRlID0gYnJlYWthYmxlKGZ1bmN0aW9uIChjb250ZXh0LCBmb3J3YXJkLCBiYWNrKSB7XG4gICAgY29uc3QgZXZlcnlTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC50cmFjZShgRXZhbHVhdGluZyB0aGUgJyR7ZXZlcnlTdHJpbmd9JyBldmVyeS4uLmApO1xuXG4gICAgcmV0dXJuIHRoaXMudmFyaWFibGUuZXZhbHVhdGUoY29udGV4dCwgKHZhbHVlLCBiYWNrKSA9PiB7XG4gICAgICBjb25zdCB2YWx1ZVR5cGUgPSB2YWx1ZS5nZXRUeXBlKCksXG4gICAgICAgICAgICB2YWx1ZVR5cGVMaXN0VHlwZSA9IHZhbHVlVHlwZS5pc0xpc3RUeXBlKCk7XG5cbiAgICAgIGlmICghdmFsdWVUeXBlTGlzdFR5cGUpIHtcbiAgICAgICAgY29uc3QgdmFsdWVTdHJpbmcgPSB2YWx1ZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgICAgbWVzc2FnZSA9IGBUaGUgJyR7dmFsdWVTdHJpbmd9JyB2YWx1ZSdzICcke3ZhbHVlVHlwZX0nIHR5cGUgc2hvdWxkIGJlICcke0xJU1RfVFlQRV9OQU1FfScuYCxcbiAgICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICAgIHJldHVybiBiYWNrKGV4Y2VwdGlvbik7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG5vZGVzID0gdmFsdWUuZ2V0Tm9kZXMoKTtcblxuICAgICAgcmV0dXJuIGV2ZXJ5KG5vZGVzLCAobm9kZSwgZm9yd2FyZCwgYmFjaykgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5ldmFsdWF0ZUFub255bW91c1Byb2NlZHVyZShub2RlLCBjb250ZXh0LCBmb3J3YXJkLCBiYWNrKTtcbiAgICAgIH0sIChib29sZWFuLCBiYWNrKSA9PiB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdmFsdWVGcm9tQm9vbGVhbihib29sZWFuLCBjb250ZXh0KSxcbiAgICAgICAgICAgICAgdmFsdWVTdHJpbmcgPSB2YWx1ZS5nZXRTdHJpbmcoKTtcblxuICAgICAgICBjb250ZXh0LnRyYWNlKGAuLi5ldmFsdWF0ZWQgdGhlICcke2V2ZXJ5U3RyaW5nfScgZXZlcnkgYXMgJyR7dmFsdWVTdHJpbmd9Jy5gKTtcblxuICAgICAgICByZXR1cm4gZm9yd2FyZCh2YWx1ZSwgYmFjayk7XG4gICAgICB9LCBiYWNrKTtcbiAgICB9LCBiYWNrKTtcbiAgfSk7XG5cbiAgZXZhbHVhdGVBbm9ueW1vdXNQcm9jZWR1cmUobm9kZSwgY29udGV4dCwgZm9yd2FyZCwgYmFjaykge1xuICAgIGNvbnN0IHsgVmFsdWVzIH0gPSBlbGVtZW50cyxcbiAgICAgICAgICB2YWx1ZSA9IHZhbHVlRnJvbU5vZGUobm9kZSwgY29udGV4dCksXG4gICAgICAgICAgdmFsdWVzID0gVmFsdWVzLmZyb21WYWx1ZSh2YWx1ZSwgY29udGV4dCk7XG5cbiAgICByZXR1cm4gdGhpcy5hbm9ueW1vdXNQcm9jZWR1cmUuZXZhbHVhdGUodmFsdWVzLCBjb250ZXh0LCAodmFsdWUsIGJhY2spID0+IHtcbiAgICAgIGNvbnN0IHZhbHVlVHlwZSA9IHZhbHVlLmdldFR5cGUoKSxcbiAgICAgICAgICAgIHZhbHVlVHlwZUJvb2xlYW5UeXBlID0gdmFsdWVUeXBlLmlzQm9vbGVhblR5cGUoKTtcblxuICAgICAgaWYgKCF2YWx1ZVR5cGVCb29sZWFuVHlwZSkge1xuICAgICAgICBjb25zdCB2YWx1ZVN0cmluZyA9IHZhbHVlLmdldFN0cmluZygpLFxuICAgICAgICAgICAgICBtZXNzYWdlID0gYFRoZSAnJHt2YWx1ZVN0cmluZ30nIHZhbHVlJ3MgdHlwZSBpcyAnJHt2YWx1ZVR5cGV9JyB3aGVuIGl0IHNob3VsZCBiZSBvZiB0eXBlICcke0JPT0xFQU5fVFlQRV9OQU1FfScuYCxcbiAgICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICAgIHJldHVybiBiYWNrKGV4Y2VwdGlvbik7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGJvb2xlYW4gPSB2YWx1ZS5nZXRCb29sZWFuKCk7XG5cbiAgICAgIHJldHVybiBmb3J3YXJkKGJvb2xlYW4sIGJhY2spO1xuICAgIH0sIGJhY2spO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIkV2ZXJ5XCI7XG59KTtcbiJdLCJuYW1lcyI6WyJldmVyeSIsImNvbnRpbnVhdGlvblV0aWxpdGllcyIsImJyZWFrYWJsZSIsImJyZWFrUG9pbnRVdGlsaXRpZXMiLCJkZWZpbmUiLCJFdmVyeSIsIkVsZW1lbnQiLCJjb250ZXh0Iiwic3RyaW5nIiwibm9kZSIsImJyZWFrUG9pbnQiLCJ2YXJpYWJsZSIsImFub255bW91c1Byb2NlZHVyZSIsImdldFZhcmlhYmxlIiwiZ2V0QW5vbnltb3VzUHJvY2VkdXJlIiwiZXZhbHVhdGUiLCJmb3J3YXJkIiwiYmFjayIsImV2ZXJ5U3RyaW5nIiwiZ2V0U3RyaW5nIiwidHJhY2UiLCJ2YWx1ZSIsInZhbHVlVHlwZSIsImdldFR5cGUiLCJ2YWx1ZVR5cGVMaXN0VHlwZSIsImlzTGlzdFR5cGUiLCJ2YWx1ZVN0cmluZyIsIm1lc3NhZ2UiLCJMSVNUX1RZUEVfTkFNRSIsImV4Y2VwdGlvbiIsIkV4Y2VwdGlvbiIsImZyb21NZXNzYWdlIiwibm9kZXMiLCJnZXROb2RlcyIsImV2YWx1YXRlQW5vbnltb3VzUHJvY2VkdXJlIiwiYm9vbGVhbiIsInZhbHVlRnJvbUJvb2xlYW4iLCJWYWx1ZXMiLCJlbGVtZW50cyIsInZhbHVlRnJvbU5vZGUiLCJ2YWx1ZXMiLCJmcm9tVmFsdWUiLCJ2YWx1ZVR5cGVCb29sZWFuVHlwZSIsImlzQm9vbGVhblR5cGUiLCJCT09MRUFOX1RZUEVfTkFNRSIsImdldEJvb2xlYW4iLCJuYW1lIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFjQTs7O2VBQUE7OztnQ0Fab0U7a0VB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
110
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2V2ZXJ5LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFbGVtZW50LCBicmVha1BvaW50VXRpbGl0aWVzLCBjb250aW51YXRpb25VdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCBlbGVtZW50cyBmcm9tIFwiLi4vZWxlbWVudHNcIjtcbmltcG9ydCBFeGNlcHRpb24gZnJvbSBcIi4uL2V4Y2VwdGlvblwiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vZWxlbWVudHNcIjtcbmltcG9ydCB7IExJU1RfVFlQRV9OQU1FLCBCT09MRUFOX1RZUEVfTkFNRSB9IGZyb20gXCIuLi90eXBlTmFtZXNcIjtcbmltcG9ydCB7IHZhbHVlRnJvbUJvb2xlYW4sIHZhbHVlRnJvbU5vbWluYWxWYWx1ZSB9IGZyb20gXCIuLi91dGlsaXRpZXMvdmFsdWVcIjtcblxuY29uc3QgeyBldmVyeSB9ID0gY29udGludWF0aW9uVXRpbGl0aWVzLFxuICAgICAgeyB1bmJyZWFrYWJsZSB9ID0gYnJlYWtQb2ludFV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIEV2ZXJ5IGV4dGVuZHMgRWxlbWVudCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgdmFyaWFibGUsIGFub255bW91c1Byb2NlZHVyZSkge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLnN0cmluZyA9IHN0cmluZztcbiAgICB0aGlzLnZhcmlhYmxlID0gdmFyaWFibGU7XG4gICAgdGhpcy5hbm9ueW1vdXNQcm9jZWR1cmUgPSBhbm9ueW1vdXNQcm9jZWR1cmU7XG4gIH1cblxuICBnZXRWYXJpYWJsZSgpIHtcbiAgICByZXR1cm4gdGhpcy52YXJpYWJsZTtcbiAgfVxuXG4gIGdldEFub255bW91c1Byb2NlZHVyZSgpIHtcbiAgICByZXR1cm4gdGhpcy5hbm9ueW1vdXNQcm9jZWR1cmU7XG4gIH1cblxuICBldmFsdWF0ZSA9IHVuYnJlYWthYmxlKGZ1bmN0aW9uIChjb250ZXh0LCBmb3J3YXJkLCBiYWNrKSB7XG4gICAgY29uc3QgZXZlcnlTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC50cmFjZShgRXZhbHVhdGluZyB0aGUgJyR7ZXZlcnlTdHJpbmd9JyBmdW5jdGlvbi4uLmApO1xuXG4gICAgcmV0dXJuIHRoaXMudmFyaWFibGUuZXZhbHVhdGUoY29udGV4dCwgKHZhbHVlLCBiYWNrKSA9PiB7XG4gICAgICBjb25zdCB2YWx1ZVR5cGUgPSB2YWx1ZS5nZXRUeXBlKCksXG4gICAgICAgICAgICB2YWx1ZVR5cGVMaXN0VHlwZSA9IHZhbHVlVHlwZS5pc0xpc3RUeXBlKCk7XG5cbiAgICAgIGlmICghdmFsdWVUeXBlTGlzdFR5cGUpIHtcbiAgICAgICAgY29uc3QgdmFsdWVTdHJpbmcgPSB2YWx1ZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgICAgbWVzc2FnZSA9IGBUaGUgJyR7dmFsdWVTdHJpbmd9JyB2YWx1ZSdzICcke3ZhbHVlVHlwZX0nIHR5cGUgc2hvdWxkIGJlICcke0xJU1RfVFlQRV9OQU1FfScuYCxcbiAgICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICAgIHJldHVybiBiYWNrKGV4Y2VwdGlvbik7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHByaW1pdGl2ZVZhbHVlID0gdmFsdWUuZ2V0UHJpbWl0aXZlVmFsdWUoKSxcbiAgICAgICAgICAgIG5vbWluYWxWYWx1ZXMgPSBwcmltaXRpdmVWYWx1ZTsgLy8vXG5cbiAgICAgIHJldHVybiBldmVyeShub21pbmFsVmFsdWVzLCAobm9taW5hbFZhbHVlLCBjb250ZXh0LCBmb3J3YXJkLCBiYWNrKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmV2YWx1YXRlQW5vbnltb3VzUHJvY2VkdXJlKG5vbWluYWxWYWx1ZSwgY29udGV4dCwgZm9yd2FyZCwgYmFjayk7XG4gICAgICB9LCBjb250ZXh0LCAoY29udGV4dCwgYmFjaykgPT4ge1xuICAgICAgICBjb25zdCBib29sZWFuID0gdHJ1ZSxcbiAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZUZyb21Cb29sZWFuKGJvb2xlYW4sIGNvbnRleHQpLFxuICAgICAgICAgICAgICB2YWx1ZVN0cmluZyA9IHZhbHVlLmdldFN0cmluZygpO1xuXG4gICAgICAgIGNvbnRleHQudHJhY2UoYC4uLmV2YWx1YXRlZCB0aGUgJyR7ZXZlcnlTdHJpbmd9JyBmdW5jdGlvbiBhcyAnJHt2YWx1ZVN0cmluZ30nLmApO1xuXG4gICAgICAgIHJldHVybiBmb3J3YXJkKHZhbHVlLCBiYWNrKTtcbiAgICAgIH0sIGJhY2spO1xuICAgIH0sIGJhY2spO1xuICB9KTtcblxuICBldmFsdWF0ZUFub255bW91c1Byb2NlZHVyZShub21pbmFsVmFsdWUsIGNvbnRleHQsIGZvcndhcmQsIGJhY2spIHtcbiAgICBjb25zdCB7IFZhbHVlcyB9ID0gZWxlbWVudHMsXG4gICAgICAgICAgdmFsdWUgPSB2YWx1ZUZyb21Ob21pbmFsVmFsdWUobm9taW5hbFZhbHVlLCBjb250ZXh0KSxcbiAgICAgICAgICB2YWx1ZXMgPSBWYWx1ZXMuZnJvbVZhbHVlKHZhbHVlLCBjb250ZXh0KTtcblxuICAgIHJldHVybiB0aGlzLmFub255bW91c1Byb2NlZHVyZS5ldmFsdWF0ZSh2YWx1ZXMsIGNvbnRleHQsICh2YWx1ZSwgYmFjaykgPT4ge1xuICAgICAgY29uc3QgdmFsdWVUeXBlID0gdmFsdWUuZ2V0VHlwZSgpLFxuICAgICAgICAgICAgdmFsdWVUeXBlQm9vbGVhblR5cGUgPSB2YWx1ZVR5cGUuaXNCb29sZWFuVHlwZSgpO1xuXG4gICAgICBpZiAoIXZhbHVlVHlwZUJvb2xlYW5UeXBlKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlU3RyaW5nID0gdmFsdWUuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICAgIG1lc3NhZ2UgPSBgVGhlICcke3ZhbHVlU3RyaW5nfScgdmFsdWUncyB0eXBlIGlzICcke3ZhbHVlVHlwZX0nIHdoZW4gaXQgc2hvdWxkIGJlIG9mIHR5cGUgJyR7Qk9PTEVBTl9UWVBFX05BTUV9Jy5gLFxuICAgICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgICAgcmV0dXJuIGJhY2soZXhjZXB0aW9uKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgYm9vbGVhbiA9IHZhbHVlLmdldEJvb2xlYW4oKTtcblxuICAgICAgcmV0dXJuIGZvcndhcmQoYm9vbGVhbiwgYmFjayk7XG4gICAgfSwgYmFjayk7XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiRXZlcnlcIjtcbn0pO1xuIl0sIm5hbWVzIjpbImV2ZXJ5IiwiY29udGludWF0aW9uVXRpbGl0aWVzIiwidW5icmVha2FibGUiLCJicmVha1BvaW50VXRpbGl0aWVzIiwiZGVmaW5lIiwiRXZlcnkiLCJFbGVtZW50IiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50IiwidmFyaWFibGUiLCJhbm9ueW1vdXNQcm9jZWR1cmUiLCJnZXRWYXJpYWJsZSIsImdldEFub255bW91c1Byb2NlZHVyZSIsImV2YWx1YXRlIiwiZm9yd2FyZCIsImJhY2siLCJldmVyeVN0cmluZyIsImdldFN0cmluZyIsInRyYWNlIiwidmFsdWUiLCJ2YWx1ZVR5cGUiLCJnZXRUeXBlIiwidmFsdWVUeXBlTGlzdFR5cGUiLCJpc0xpc3RUeXBlIiwidmFsdWVTdHJpbmciLCJtZXNzYWdlIiwiTElTVF9UWVBFX05BTUUiLCJleGNlcHRpb24iLCJFeGNlcHRpb24iLCJmcm9tTWVzc2FnZSIsInByaW1pdGl2ZVZhbHVlIiwiZ2V0UHJpbWl0aXZlVmFsdWUiLCJub21pbmFsVmFsdWVzIiwibm9taW5hbFZhbHVlIiwiZXZhbHVhdGVBbm9ueW1vdXNQcm9jZWR1cmUiLCJib29sZWFuIiwidmFsdWVGcm9tQm9vbGVhbiIsIlZhbHVlcyIsImVsZW1lbnRzIiwidmFsdWVGcm9tTm9taW5hbFZhbHVlIiwidmFsdWVzIiwiZnJvbVZhbHVlIiwidmFsdWVUeXBlQm9vbGVhblR5cGUiLCJpc0Jvb2xlYW5UeXBlIiwiQk9PTEVBTl9UWVBFX05BTUUiLCJnZXRCb29sZWFuIiwibmFtZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBY0E7OztlQUFBOzs7Z0NBWm9FO2tFQUUvQztrRUFDQzsyQkFHNEI7dUJBQ007Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRXhELE1BQU0sRUFBRUEsS0FBSyxFQUFFLEdBQUdDLHFDQUFxQixFQUNqQyxFQUFFQyxXQUFXLEVBQUUsR0FBR0MsbUNBQW1CO01BRTNDLFdBQWVDLElBQUFBLGdCQUFNLEVBQUMsTUFBTUMsY0FBY0MsdUJBQU87SUFDL0MsWUFBWUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsVUFBVSxFQUFFQyxRQUFRLEVBQUVDLGtCQUFrQixDQUFFO1FBQzNFLEtBQUssQ0FBQ0wsU0FBU0MsUUFBUUMsTUFBTUM7UUFFN0IsSUFBSSxDQUFDRixNQUFNLEdBQUdBO1FBQ2QsSUFBSSxDQUFDRyxRQUFRLEdBQUdBO1FBQ2hCLElBQUksQ0FBQ0Msa0JBQWtCLEdBQUdBO0lBQzVCO0lBRUFDLGNBQWM7UUFDWixPQUFPLElBQUksQ0FBQ0YsUUFBUTtJQUN0QjtJQUVBRyx3QkFBd0I7UUFDdEIsT0FBTyxJQUFJLENBQUNGLGtCQUFrQjtJQUNoQztJQUVBRyxXQUFXYixZQUFZLFNBQVVLLE9BQU8sRUFBRVMsT0FBTyxFQUFFQyxJQUFJO1FBQ3JELE1BQU1DLGNBQWMsSUFBSSxDQUFDQyxTQUFTO1FBRWxDWixRQUFRYSxLQUFLLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRUYsWUFBWSxhQUFhLENBQUM7UUFFM0QsT0FBTyxJQUFJLENBQUNQLFFBQVEsQ0FBQ0ksUUFBUSxDQUFDUixTQUFTLENBQUNjLE9BQU9KO1lBQzdDLE1BQU1LLFlBQVlELE1BQU1FLE9BQU8sSUFDekJDLG9CQUFvQkYsVUFBVUcsVUFBVTtZQUU5QyxJQUFJLENBQUNELG1CQUFtQjtnQkFDdEIsTUFBTUUsY0FBY0wsTUFBTUYsU0FBUyxJQUM3QlEsVUFBVSxDQUFDLEtBQUssRUFBRUQsWUFBWSxXQUFXLEVBQUVKLFVBQVUsa0JBQWtCLEVBQUVNLHlCQUFjLENBQUMsRUFBRSxDQUFDLEVBQzNGQyxZQUFZQyxrQkFBUyxDQUFDQyxXQUFXLENBQUNKO2dCQUV4QyxPQUFPVixLQUFLWTtZQUNkO1lBRUEsTUFBTUcsaUJBQWlCWCxNQUFNWSxpQkFBaUIsSUFDeENDLGdCQUFnQkYsZ0JBQWdCLEdBQUc7WUFFekMsT0FBT2hDLE1BQU1rQyxlQUFlLENBQUNDLGNBQWM1QixTQUFTUyxTQUFTQztnQkFDM0QsT0FBTyxJQUFJLENBQUNtQiwwQkFBMEIsQ0FBQ0QsY0FBYzVCLFNBQVNTLFNBQVNDO1lBQ3pFLEdBQUdWLFNBQVMsQ0FBQ0EsU0FBU1U7Z0JBQ3BCLE1BQU1vQixVQUFVLE1BQ1ZoQixRQUFRaUIsSUFBQUEsdUJBQWdCLEVBQUNELFNBQVM5QixVQUNsQ21CLGNBQWNMLE1BQU1GLFNBQVM7Z0JBRW5DWixRQUFRYSxLQUFLLENBQUMsQ0FBQyxrQkFBa0IsRUFBRUYsWUFBWSxlQUFlLEVBQUVRLFlBQVksRUFBRSxDQUFDO2dCQUUvRSxPQUFPVixRQUFRSyxPQUFPSjtZQUN4QixHQUFHQTtRQUNMLEdBQUdBO0lBQ0wsR0FBRztJQUVIbUIsMkJBQTJCRCxZQUFZLEVBQUU1QixPQUFPLEVBQUVTLE9BQU8sRUFBRUMsSUFBSSxFQUFFO1FBQy9ELE1BQU0sRUFBRXNCLE1BQU0sRUFBRSxHQUFHQyxpQkFBUSxFQUNyQm5CLFFBQVFvQixJQUFBQSw0QkFBcUIsRUFBQ04sY0FBYzVCLFVBQzVDbUMsU0FBU0gsT0FBT0ksU0FBUyxDQUFDdEIsT0FBT2Q7UUFFdkMsT0FBTyxJQUFJLENBQUNLLGtCQUFrQixDQUFDRyxRQUFRLENBQUMyQixRQUFRbkMsU0FBUyxDQUFDYyxPQUFPSjtZQUMvRCxNQUFNSyxZQUFZRCxNQUFNRSxPQUFPLElBQ3pCcUIsdUJBQXVCdEIsVUFBVXVCLGFBQWE7WUFFcEQsSUFBSSxDQUFDRCxzQkFBc0I7Z0JBQ3pCLE1BQU1sQixjQUFjTCxNQUFNRixTQUFTLElBQzdCUSxVQUFVLENBQUMsS0FBSyxFQUFFRCxZQUFZLG1CQUFtQixFQUFFSixVQUFVLDZCQUE2QixFQUFFd0IsNEJBQWlCLENBQUMsRUFBRSxDQUFDLEVBQ2pIakIsWUFBWUMsa0JBQVMsQ0FBQ0MsV0FBVyxDQUFDSjtnQkFFeEMsT0FBT1YsS0FBS1k7WUFDZDtZQUVBLE1BQU1RLFVBQVVoQixNQUFNMEIsVUFBVTtZQUVoQyxPQUFPL0IsUUFBUXFCLFNBQVNwQjtRQUMxQixHQUFHQTtJQUNMO0lBRUEsT0FBTytCLE9BQU8sUUFBUTtBQUN4QiJ9
@@ -11,12 +11,14 @@ Object.defineProperty(exports, "default", {
11
11
  const _occamlanguages = require("occam-languages");
12
12
  const _elements = require("../elements");
13
13
  const _default = (0, _elements.define)(class Expression extends _occamlanguages.Element {
14
- constructor(context, string, node, breakPoint, term, some, every, reduce, ternary, nodeQuery, nodesQuery, lengthOf, toInteger, tryInteger, contains, endsWith, startsWith, returnBlock, procedureCall){
14
+ constructor(context, string, node, breakPoint, term, some, every, reduce, all, exists, ternary, nodeQuery, nodesQuery, lengthOf, toInteger, tryInteger, contains, endsWith, startsWith, returnBlock, procedureCall){
15
15
  super(context, string, node, breakPoint);
16
16
  this.term = term;
17
17
  this.some = some;
18
18
  this.every = every;
19
19
  this.reduce = reduce;
20
+ this.all = all;
21
+ this.exists = exists;
20
22
  this.ternary = ternary;
21
23
  this.nodeQuery = nodeQuery;
22
24
  this.nodesQuery = nodesQuery;
@@ -41,6 +43,12 @@ const _default = (0, _elements.define)(class Expression extends _occamlanguages.
41
43
  getReduce() {
42
44
  return this.reduce;
43
45
  }
46
+ getAll() {
47
+ return this.all;
48
+ }
49
+ getExists() {
50
+ return this.exists;
51
+ }
44
52
  getTernary() {
45
53
  return this.ternay;
46
54
  }
@@ -86,6 +94,10 @@ const _default = (0, _elements.define)(class Expression extends _occamlanguages.
86
94
  type = this.every.getType();
87
95
  } else if (this.reduce !== null) {
88
96
  type = this.reduce.getType();
97
+ } else if (this.all !== null) {
98
+ type = this.all.getType();
99
+ } else if (this.exists !== null) {
100
+ type = this.exists.getType();
89
101
  } else if (this.ternary !== null) {
90
102
  type = this.ternary.getType();
91
103
  } else if (this.nodeQuery !== null) {
@@ -138,6 +150,10 @@ const _default = (0, _elements.define)(class Expression extends _occamlanguages.
138
150
  return this.every.evaluate(context, forward, back);
139
151
  } else if (this.reduce !== null) {
140
152
  return this.reduce.evaluate(context, forward, back);
153
+ } else if (this.all !== null) {
154
+ return this.all.evaluate(context, forward, back);
155
+ } else if (this.exists !== null) {
156
+ return this.exists.evaluate(context, forward, back);
141
157
  } else if (this.ternary !== null) {
142
158
  return this.ternary.evaluate(context, forward, back);
143
159
  } else if (this.procedureCall !== null) {
@@ -150,4 +166,4 @@ const _default = (0, _elements.define)(class Expression extends _occamlanguages.
150
166
  static name = "Expression";
151
167
  });
152
168
 
153
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2V4cHJlc3Npb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IEVsZW1lbnQgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi9lbGVtZW50c1wiO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgRXhwcmVzc2lvbiBleHRlbmRzIEVsZW1lbnQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHRlcm0sIHNvbWUsIGV2ZXJ5LCByZWR1Y2UsIHRlcm5hcnksIG5vZGVRdWVyeSwgbm9kZXNRdWVyeSwgbGVuZ3RoT2YsIHRvSW50ZWdlciwgdHJ5SW50ZWdlciwgY29udGFpbnMsIGVuZHNXaXRoLCBzdGFydHNXaXRoLCByZXR1cm5CbG9jaywgcHJvY2VkdXJlQ2FsbCkge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLnRlcm0gPSB0ZXJtO1xuICAgIHRoaXMuc29tZSA9IHNvbWU7XG4gICAgdGhpcy5ldmVyeSA9IGV2ZXJ5O1xuICAgIHRoaXMucmVkdWNlID0gcmVkdWNlO1xuICAgIHRoaXMudGVybmFyeSA9IHRlcm5hcnk7XG4gICAgdGhpcy5ub2RlUXVlcnkgPSBub2RlUXVlcnk7XG4gICAgdGhpcy5ub2Rlc1F1ZXJ5ID0gbm9kZXNRdWVyeTtcbiAgICB0aGlzLmxlbmd0aE9mID0gbGVuZ3RoT2Y7XG4gICAgdGhpcy50b0ludGVnZXIgPSB0b0ludGVnZXI7XG4gICAgdGhpcy50cnlJbnRlZ2VyID0gdHJ5SW50ZWdlcjtcbiAgICB0aGlzLmNvbnRhaW5zID0gY29udGFpbnM7XG4gICAgdGhpcy5lbmRzV2l0aCA9IGVuZHNXaXRoO1xuICAgIHRoaXMuc3RhcnRzV2l0aCA9IHN0YXJ0c1dpdGg7XG4gICAgdGhpcy5yZXR1cm5CbG9jayA9IHJldHVybkJsb2NrO1xuICAgIHRoaXMucHJvY2VkdXJlQ2FsbCA9IHByb2NlZHVyZUNhbGw7XG4gIH1cblxuICBnZXRUZXJtKCkge1xuICAgIHJldHVybiB0aGlzLnRlcm07XG4gIH1cblxuICBnZXRTb21lKCkge1xuICAgIHJldHVybiB0aGlzLnNvbWU7XG4gIH1cblxuICBnZXRFdmVyeSgpIHtcbiAgICByZXR1cm4gdGhpcy5ldmVyeTtcbiAgfVxuXG4gIGdldFJlZHVjZSgpIHtcbiAgICByZXR1cm4gdGhpcy5yZWR1Y2U7XG4gIH1cblxuICBnZXRUZXJuYXJ5KCkge1xuICAgIHJldHVybiB0aGlzLnRlcm5heTtcbiAgfVxuXG4gIGdldE5vZGVRdWVyeSgpIHtcbiAgICByZXR1cm4gdGhpcy5ub2RlUXVlcnk7XG4gIH1cblxuICBnZXROb2Rlc1F1ZXJ5KCkge1xuICAgIHJldHVybiB0aGlzLm5vZGVzUXVlcnk7XG4gIH1cblxuICBnZXRMZW5ndGhPZigpIHtcbiAgICByZXR1cm4gdGhpcy5sZW5ndGhPZjtcbiAgfVxuXG4gIGdldFRvSW50ZWdlcigpIHtcbiAgICByZXR1cm4gdGhpcy50b0ludGVnZXI7XG4gIH1cblxuICBnZXRUcnlJbnRlZ2VyKCkge1xuICAgIHJldHVybiB0aGlzLnRyeUludGVnZXI7XG4gIH1cblxuICBnZXRDb250YWlucygpIHtcbiAgICByZXR1cm4gdGhpcy5jb250YWlucztcbiAgfVxuXG4gIGdldEVuZHNXaXRoKCkge1xuICAgIHJldHVybiB0aGlzLmVuZHNXaXRoO1xuICB9XG5cbiAgZ2V0U3RhcnRzV2l0aCgpIHtcbiAgICByZXR1cm4gdGhpcy5zdGFydHNXaXRoO1xuICB9XG5cbiAgZ2V0UmV0dXJuQmxvY2soKSB7XG4gICAgcmV0dXJuIHRoaXMucmV0dXJuQmxvY2s7XG4gIH1cblxuICBnZXRQcm9jZWR1cmVDYWxsKCkge1xuICAgIHJldHVybiB0aGlzLnByb2NlZHVyZUNhbGw7XG4gIH1cblxuICBnZXRUeXBlKCkge1xuICAgIGxldCB0eXBlO1xuXG4gICAgaWYgKGZhbHNlKSB7XG4gICAgICAvLy9cbiAgICB9IGVsc2UgaWYgKHRoaXMudGVybSAhPT0gbnVsbCkge1xuICAgICAgdHlwZSA9IHRoaXMudGVybS5nZXRUeXBlKCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnNvbWUgIT09IG51bGwpIHtcbiAgICAgIHR5cGUgPSB0aGlzLnNvbWUuZ2V0VHlwZSgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5ldmVyeSAhPT0gbnVsbCkge1xuICAgICAgdHlwZSA9IHRoaXMuZXZlcnkuZ2V0VHlwZSgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5yZWR1Y2UgIT09IG51bGwpIHtcbiAgICAgIHR5cGUgPSB0aGlzLnJlZHVjZS5nZXRUeXBlKCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnRlcm5hcnkgIT09IG51bGwpIHtcbiAgICAgIHR5cGUgPSB0aGlzLnRlcm5hcnkuZ2V0VHlwZSgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5ub2RlUXVlcnkgIT09IG51bGwpIHtcbiAgICAgIHR5cGUgPSB0aGlzLm5vZGVRdWVyeS5nZXRUeXBlKCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLm5vZGVzUXVlcnkgIT09IG51bGwpIHtcbiAgICAgIHR5cGUgPSB0aGlzLm5vZGVzUXVlcnkuZ2V0VHlwZSgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5sZW5ndGhPZiAhPT0gbnVsbCkge1xuICAgICAgdHlwZSA9IHRoaXMubGVuZ3RoT2YuZ2V0VHlwZSgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy50b0ludGVnZXIgIT09IG51bGwpIHtcbiAgICAgIHR5cGUgPSB0aGlzLnRvSW50ZWdlci5nZXRUeXBlKCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnRyeUludGVnZXIgIT09IG51bGwpIHtcbiAgICAgIHR5cGUgPSB0aGlzLnRyeUludGVnZXIuZ2V0VHlwZSgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5jb250YWlucyAhPT0gbnVsbCkge1xuICAgICAgdHlwZSA9IHRoaXMuY29udGFpbnMuZ2V0VHlwZSgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5lbmRzV2l0aCAhPT0gbnVsbCkge1xuICAgICAgdHlwZSA9IHRoaXMuZW5kc1dpdGguZ2V0VHlwZSgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5zdGFydHNXaXRoICE9PSBudWxsKSB7XG4gICAgICB0eXBlID0gdGhpcy5zdGFydHNXaXRoLmdldFR5cGUoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMucmV0dXJuQmxvY2sgIT09IG51bGwpIHtcbiAgICAgIHR5cGUgPSB0aGlzLnJldHVybkJsb2NrLmdldFR5cGUoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMucHJvY2VkdXJlQ2FsbCAhPT0gbnVsbCkge1xuICAgICAgdHlwZSA9IHRoaXMucHJvY2VkdXJlQ2FsbC5nZXRUeXBlKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHR5cGU7XG4gIH1cblxuICBldmFsdWF0ZShjb250ZXh0LCBmb3J3YXJkLCBiYWNrKSB7XG4gICAgaWYgKGZhbHNlKSB7XG4gICAgICAvLy9cbiAgICB9IGVsc2UgaWYgKHRoaXMudGVybSAhPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHRoaXMudGVybS5ldmFsdWF0ZShjb250ZXh0LCBmb3J3YXJkLCBiYWNrKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMubm9kZVF1ZXJ5ICE9PSBudWxsKSB7XG4gICAgICByZXR1cm4gdGhpcy5ub2RlUXVlcnkuZXZhbHVhdGUoY29udGV4dCwgZm9yd2FyZCwgYmFjayk7XG4gICAgfSBlbHNlIGlmICh0aGlzLm5vZGVzUXVlcnkgIT09IG51bGwpIHtcbiAgICAgIHJldHVybiB0aGlzLm5vZGVzUXVlcnkuZXZhbHVhdGUoY29udGV4dCwgZm9yd2FyZCwgYmFjayk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmxlbmd0aE9mICE9PSBudWxsKSB7XG4gICAgICByZXR1cm4gdGhpcy5sZW5ndGhPZi5ldmFsdWF0ZShjb250ZXh0LCBmb3J3YXJkLCBiYWNrKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMudG9JbnRlZ2VyICE9PSBudWxsKSB7XG4gICAgICByZXR1cm4gdGhpcy50b0ludGVnZXIuZXZhbHVhdGUoY29udGV4dCwgZm9yd2FyZCwgYmFjayk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnRyeUludGVnZXIgIT09IG51bGwpIHtcbiAgICAgIHJldHVybiB0aGlzLnRyeUludGVnZXIuZXZhbHVhdGUoY29udGV4dCwgZm9yd2FyZCwgYmFjayk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmNvbnRhaW5zICE9PSBudWxsKSB7XG4gICAgICByZXR1cm4gdGhpcy5jb250YWlucy5ldmFsdWF0ZShjb250ZXh0LCBmb3J3YXJkLCBiYWNrKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuZW5kc1dpdGggIT09IG51bGwpIHtcbiAgICAgIHJldHVybiB0aGlzLmVuZHNXaXRoLmV2YWx1YXRlKGNvbnRleHQsIGZvcndhcmQsIGJhY2spO1xuICAgIH0gZWxzZSBpZiAodGhpcy5zdGFydHNXaXRoICE9PSBudWxsKSB7XG4gICAgICByZXR1cm4gdGhpcy5zdGFydHNXaXRoLmV2YWx1YXRlKGNvbnRleHQsIGZvcndhcmQsIGJhY2spO1xuICAgIH0gZWxzZSBpZiAodGhpcy5zb21lICE9PSBudWxsKSB7XG4gICAgICByZXR1cm4gdGhpcy5zb21lLmV2YWx1YXRlKGNvbnRleHQsIGZvcndhcmQsIGJhY2spO1xuICAgIH0gZWxzZSBpZiAodGhpcy5ldmVyeSAhPT0gbnVsbCkge1xuICAgICByZXR1cm4gdGhpcy5ldmVyeS5ldmFsdWF0ZShjb250ZXh0LCBmb3J3YXJkLCBiYWNrKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMucmVkdWNlICE9PSBudWxsKSB7XG4gICAgICByZXR1cm4gdGhpcy5yZWR1Y2UuZXZhbHVhdGUoY29udGV4dCwgZm9yd2FyZCwgYmFjayk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnRlcm5hcnkgIT09IG51bGwpIHtcbiAgICAgIHJldHVybiB0aGlzLnRlcm5hcnkuZXZhbHVhdGUoY29udGV4dCwgZm9yd2FyZCwgYmFjayk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnByb2NlZHVyZUNhbGwgIT09IG51bGwpIHtcbiAgICAgIHJldHVybiB0aGlzLnByb2NlZHVyZUNhbGwuZXZhbHVhdGUoY29udGV4dCwgZm9yd2FyZCwgYmFjayk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnJldHVybkJsb2NrICE9PSBudWxsKSB7XG4gICAgICBjb25zdCB2YXJpYWJsZXMgPSBbXTtcblxuICAgICAgcmV0dXJuIHRoaXMucmV0dXJuQmxvY2suZXZhbHVhdGUodmFyaWFibGVzLCBjb250ZXh0LCBmb3J3YXJkLCBiYWNrKTtcbiAgICB9XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiRXhwcmVzc2lvblwiO1xufSk7XG4iXSwibmFtZXMiOlsiZGVmaW5lIiwiRXhwcmVzc2lvbiIsIkVsZW1lbnQiLCJjb250ZXh0Iiwic3RyaW5nIiwibm9kZSIsImJyZWFrUG9pbnQiLCJ0ZXJtIiwic29tZSIsImV2ZXJ5IiwicmVkdWNlIiwidGVybmFyeSIsIm5vZGVRdWVyeSIsIm5vZGVzUXVlcnkiLCJsZW5ndGhPZiIsInRvSW50ZWdlciIsInRyeUludGVnZXIiLCJjb250YWlucyIsImVuZHNXaXRoIiwic3RhcnRzV2l0aCIsInJldHVybkJsb2NrIiwicHJvY2VkdXJlQ2FsbCIsImdldFRlcm0iLCJnZXRTb21lIiwiZ2V0RXZlcnkiLCJnZXRSZWR1Y2UiLCJnZXRUZXJuYXJ5IiwidGVybmF5IiwiZ2V0Tm9kZVF1ZXJ5IiwiZ2V0Tm9kZXNRdWVyeSIsImdldExlbmd0aE9mIiwiZ2V0VG9JbnRlZ2VyIiwiZ2V0VHJ5SW50ZWdlciIsImdldENvbnRhaW5zIiwiZ2V0RW5kc1dpdGgiLCJnZXRTdGFydHNXaXRoIiwiZ2V0UmV0dXJuQmxvY2siLCJnZXRQcm9jZWR1cmVDYWxsIiwiZ2V0VHlwZSIsInR5cGUiLCJldmFsdWF0ZSIsImZvcndhcmQiLCJiYWNrIiwidmFyaWFibGVzIiwibmFtZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBTUE7OztlQUFBOzs7Z0NBSndCOzBCQUVEO01BRXZC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
169
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2V4cHJlc3Npb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IEVsZW1lbnQgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi9lbGVtZW50c1wiO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgRXhwcmVzc2lvbiBleHRlbmRzIEVsZW1lbnQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHRlcm0sIHNvbWUsIGV2ZXJ5LCByZWR1Y2UsIGFsbCwgZXhpc3RzLCB0ZXJuYXJ5LCBub2RlUXVlcnksIG5vZGVzUXVlcnksIGxlbmd0aE9mLCB0b0ludGVnZXIsIHRyeUludGVnZXIsIGNvbnRhaW5zLCBlbmRzV2l0aCwgc3RhcnRzV2l0aCwgcmV0dXJuQmxvY2ssIHByb2NlZHVyZUNhbGwpIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQpO1xuXG4gICAgdGhpcy50ZXJtID0gdGVybTtcbiAgICB0aGlzLnNvbWUgPSBzb21lO1xuICAgIHRoaXMuZXZlcnkgPSBldmVyeTtcbiAgICB0aGlzLnJlZHVjZSA9IHJlZHVjZTtcbiAgICB0aGlzLmFsbCA9IGFsbDtcbiAgICB0aGlzLmV4aXN0cyA9IGV4aXN0cztcbiAgICB0aGlzLnRlcm5hcnkgPSB0ZXJuYXJ5O1xuICAgIHRoaXMubm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5O1xuICAgIHRoaXMubm9kZXNRdWVyeSA9IG5vZGVzUXVlcnk7XG4gICAgdGhpcy5sZW5ndGhPZiA9IGxlbmd0aE9mO1xuICAgIHRoaXMudG9JbnRlZ2VyID0gdG9JbnRlZ2VyO1xuICAgIHRoaXMudHJ5SW50ZWdlciA9IHRyeUludGVnZXI7XG4gICAgdGhpcy5jb250YWlucyA9IGNvbnRhaW5zO1xuICAgIHRoaXMuZW5kc1dpdGggPSBlbmRzV2l0aDtcbiAgICB0aGlzLnN0YXJ0c1dpdGggPSBzdGFydHNXaXRoO1xuICAgIHRoaXMucmV0dXJuQmxvY2sgPSByZXR1cm5CbG9jaztcbiAgICB0aGlzLnByb2NlZHVyZUNhbGwgPSBwcm9jZWR1cmVDYWxsO1xuICB9XG5cbiAgZ2V0VGVybSgpIHtcbiAgICByZXR1cm4gdGhpcy50ZXJtO1xuICB9XG5cbiAgZ2V0U29tZSgpIHtcbiAgICByZXR1cm4gdGhpcy5zb21lO1xuICB9XG5cbiAgZ2V0RXZlcnkoKSB7XG4gICAgcmV0dXJuIHRoaXMuZXZlcnk7XG4gIH1cblxuICBnZXRSZWR1Y2UoKSB7XG4gICAgcmV0dXJuIHRoaXMucmVkdWNlO1xuICB9XG5cbiAgZ2V0QWxsKCkge1xuICAgIHJldHVybiB0aGlzLmFsbDtcbiAgfVxuXG4gIGdldEV4aXN0cygpIHtcbiAgICByZXR1cm4gdGhpcy5leGlzdHM7XG4gIH1cblxuICBnZXRUZXJuYXJ5KCkge1xuICAgIHJldHVybiB0aGlzLnRlcm5heTtcbiAgfVxuXG4gIGdldE5vZGVRdWVyeSgpIHtcbiAgICByZXR1cm4gdGhpcy5ub2RlUXVlcnk7XG4gIH1cblxuICBnZXROb2Rlc1F1ZXJ5KCkge1xuICAgIHJldHVybiB0aGlzLm5vZGVzUXVlcnk7XG4gIH1cblxuICBnZXRMZW5ndGhPZigpIHtcbiAgICByZXR1cm4gdGhpcy5sZW5ndGhPZjtcbiAgfVxuXG4gIGdldFRvSW50ZWdlcigpIHtcbiAgICByZXR1cm4gdGhpcy50b0ludGVnZXI7XG4gIH1cblxuICBnZXRUcnlJbnRlZ2VyKCkge1xuICAgIHJldHVybiB0aGlzLnRyeUludGVnZXI7XG4gIH1cblxuICBnZXRDb250YWlucygpIHtcbiAgICByZXR1cm4gdGhpcy5jb250YWlucztcbiAgfVxuXG4gIGdldEVuZHNXaXRoKCkge1xuICAgIHJldHVybiB0aGlzLmVuZHNXaXRoO1xuICB9XG5cbiAgZ2V0U3RhcnRzV2l0aCgpIHtcbiAgICByZXR1cm4gdGhpcy5zdGFydHNXaXRoO1xuICB9XG5cbiAgZ2V0UmV0dXJuQmxvY2soKSB7XG4gICAgcmV0dXJuIHRoaXMucmV0dXJuQmxvY2s7XG4gIH1cblxuICBnZXRQcm9jZWR1cmVDYWxsKCkge1xuICAgIHJldHVybiB0aGlzLnByb2NlZHVyZUNhbGw7XG4gIH1cblxuICBnZXRUeXBlKCkge1xuICAgIGxldCB0eXBlO1xuXG4gICAgaWYgKGZhbHNlKSB7XG4gICAgICAvLy9cbiAgICB9IGVsc2UgaWYgKHRoaXMudGVybSAhPT0gbnVsbCkge1xuICAgICAgdHlwZSA9IHRoaXMudGVybS5nZXRUeXBlKCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnNvbWUgIT09IG51bGwpIHtcbiAgICAgIHR5cGUgPSB0aGlzLnNvbWUuZ2V0VHlwZSgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5ldmVyeSAhPT0gbnVsbCkge1xuICAgICAgdHlwZSA9IHRoaXMuZXZlcnkuZ2V0VHlwZSgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5yZWR1Y2UgIT09IG51bGwpIHtcbiAgICAgIHR5cGUgPSB0aGlzLnJlZHVjZS5nZXRUeXBlKCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmFsbCAhPT0gbnVsbCkge1xuICAgICAgdHlwZSA9IHRoaXMuYWxsLmdldFR5cGUoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuZXhpc3RzICE9PSBudWxsKSB7XG4gICAgICB0eXBlID0gdGhpcy5leGlzdHMuZ2V0VHlwZSgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy50ZXJuYXJ5ICE9PSBudWxsKSB7XG4gICAgICB0eXBlID0gdGhpcy50ZXJuYXJ5LmdldFR5cGUoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMubm9kZVF1ZXJ5ICE9PSBudWxsKSB7XG4gICAgICB0eXBlID0gdGhpcy5ub2RlUXVlcnkuZ2V0VHlwZSgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5ub2Rlc1F1ZXJ5ICE9PSBudWxsKSB7XG4gICAgICB0eXBlID0gdGhpcy5ub2Rlc1F1ZXJ5LmdldFR5cGUoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMubGVuZ3RoT2YgIT09IG51bGwpIHtcbiAgICAgIHR5cGUgPSB0aGlzLmxlbmd0aE9mLmdldFR5cGUoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMudG9JbnRlZ2VyICE9PSBudWxsKSB7XG4gICAgICB0eXBlID0gdGhpcy50b0ludGVnZXIuZ2V0VHlwZSgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy50cnlJbnRlZ2VyICE9PSBudWxsKSB7XG4gICAgICB0eXBlID0gdGhpcy50cnlJbnRlZ2VyLmdldFR5cGUoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuY29udGFpbnMgIT09IG51bGwpIHtcbiAgICAgIHR5cGUgPSB0aGlzLmNvbnRhaW5zLmdldFR5cGUoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuZW5kc1dpdGggIT09IG51bGwpIHtcbiAgICAgIHR5cGUgPSB0aGlzLmVuZHNXaXRoLmdldFR5cGUoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuc3RhcnRzV2l0aCAhPT0gbnVsbCkge1xuICAgICAgdHlwZSA9IHRoaXMuc3RhcnRzV2l0aC5nZXRUeXBlKCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnJldHVybkJsb2NrICE9PSBudWxsKSB7XG4gICAgICB0eXBlID0gdGhpcy5yZXR1cm5CbG9jay5nZXRUeXBlKCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnByb2NlZHVyZUNhbGwgIT09IG51bGwpIHtcbiAgICAgIHR5cGUgPSB0aGlzLnByb2NlZHVyZUNhbGwuZ2V0VHlwZSgpO1xuICAgIH1cblxuICAgIHJldHVybiB0eXBlO1xuICB9XG5cbiAgZXZhbHVhdGUoY29udGV4dCwgZm9yd2FyZCwgYmFjaykge1xuICAgIGlmIChmYWxzZSkge1xuICAgICAgLy8vXG4gICAgfSBlbHNlIGlmICh0aGlzLnRlcm0gIT09IG51bGwpIHtcbiAgICAgIHJldHVybiB0aGlzLnRlcm0uZXZhbHVhdGUoY29udGV4dCwgZm9yd2FyZCwgYmFjayk7XG4gICAgfSBlbHNlIGlmICh0aGlzLm5vZGVRdWVyeSAhPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHRoaXMubm9kZVF1ZXJ5LmV2YWx1YXRlKGNvbnRleHQsIGZvcndhcmQsIGJhY2spO1xuICAgIH0gZWxzZSBpZiAodGhpcy5ub2Rlc1F1ZXJ5ICE9PSBudWxsKSB7XG4gICAgICByZXR1cm4gdGhpcy5ub2Rlc1F1ZXJ5LmV2YWx1YXRlKGNvbnRleHQsIGZvcndhcmQsIGJhY2spO1xuICAgIH0gZWxzZSBpZiAodGhpcy5sZW5ndGhPZiAhPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHRoaXMubGVuZ3RoT2YuZXZhbHVhdGUoY29udGV4dCwgZm9yd2FyZCwgYmFjayk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnRvSW50ZWdlciAhPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHRoaXMudG9JbnRlZ2VyLmV2YWx1YXRlKGNvbnRleHQsIGZvcndhcmQsIGJhY2spO1xuICAgIH0gZWxzZSBpZiAodGhpcy50cnlJbnRlZ2VyICE9PSBudWxsKSB7XG4gICAgICByZXR1cm4gdGhpcy50cnlJbnRlZ2VyLmV2YWx1YXRlKGNvbnRleHQsIGZvcndhcmQsIGJhY2spO1xuICAgIH0gZWxzZSBpZiAodGhpcy5jb250YWlucyAhPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHRoaXMuY29udGFpbnMuZXZhbHVhdGUoY29udGV4dCwgZm9yd2FyZCwgYmFjayk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmVuZHNXaXRoICE9PSBudWxsKSB7XG4gICAgICByZXR1cm4gdGhpcy5lbmRzV2l0aC5ldmFsdWF0ZShjb250ZXh0LCBmb3J3YXJkLCBiYWNrKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuc3RhcnRzV2l0aCAhPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHRoaXMuc3RhcnRzV2l0aC5ldmFsdWF0ZShjb250ZXh0LCBmb3J3YXJkLCBiYWNrKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuc29tZSAhPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHRoaXMuc29tZS5ldmFsdWF0ZShjb250ZXh0LCBmb3J3YXJkLCBiYWNrKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuZXZlcnkgIT09IG51bGwpIHtcbiAgICAgcmV0dXJuIHRoaXMuZXZlcnkuZXZhbHVhdGUoY29udGV4dCwgZm9yd2FyZCwgYmFjayk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnJlZHVjZSAhPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHRoaXMucmVkdWNlLmV2YWx1YXRlKGNvbnRleHQsIGZvcndhcmQsIGJhY2spO1xuICAgIH0gZWxzZSBpZiAodGhpcy5hbGwgIT09IG51bGwpIHtcbiAgICAgIHJldHVybiB0aGlzLmFsbC5ldmFsdWF0ZShjb250ZXh0LCBmb3J3YXJkLCBiYWNrKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuZXhpc3RzICE9PSBudWxsKSB7XG4gICAgICByZXR1cm4gdGhpcy5leGlzdHMuZXZhbHVhdGUoY29udGV4dCwgZm9yd2FyZCwgYmFjayk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnRlcm5hcnkgIT09IG51bGwpIHtcbiAgICAgIHJldHVybiB0aGlzLnRlcm5hcnkuZXZhbHVhdGUoY29udGV4dCwgZm9yd2FyZCwgYmFjayk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnByb2NlZHVyZUNhbGwgIT09IG51bGwpIHtcbiAgICAgIHJldHVybiB0aGlzLnByb2NlZHVyZUNhbGwuZXZhbHVhdGUoY29udGV4dCwgZm9yd2FyZCwgYmFjayk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnJldHVybkJsb2NrICE9PSBudWxsKSB7XG4gICAgICBjb25zdCB2YXJpYWJsZXMgPSBbXTtcblxuICAgICAgcmV0dXJuIHRoaXMucmV0dXJuQmxvY2suZXZhbHVhdGUodmFyaWFibGVzLCBjb250ZXh0LCBmb3J3YXJkLCBiYWNrKTtcbiAgICB9XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiRXhwcmVzc2lvblwiO1xufSk7XG4iXSwibmFtZXMiOlsiZGVmaW5lIiwiRXhwcmVzc2lvbiIsIkVsZW1lbnQiLCJjb250ZXh0Iiwic3RyaW5nIiwibm9kZSIsImJyZWFrUG9pbnQiLCJ0ZXJtIiwic29tZSIsImV2ZXJ5IiwicmVkdWNlIiwiYWxsIiwiZXhpc3RzIiwidGVybmFyeSIsIm5vZGVRdWVyeSIsIm5vZGVzUXVlcnkiLCJsZW5ndGhPZiIsInRvSW50ZWdlciIsInRyeUludGVnZXIiLCJjb250YWlucyIsImVuZHNXaXRoIiwic3RhcnRzV2l0aCIsInJldHVybkJsb2NrIiwicHJvY2VkdXJlQ2FsbCIsImdldFRlcm0iLCJnZXRTb21lIiwiZ2V0RXZlcnkiLCJnZXRSZWR1Y2UiLCJnZXRBbGwiLCJnZXRFeGlzdHMiLCJnZXRUZXJuYXJ5IiwidGVybmF5IiwiZ2V0Tm9kZVF1ZXJ5IiwiZ2V0Tm9kZXNRdWVyeSIsImdldExlbmd0aE9mIiwiZ2V0VG9JbnRlZ2VyIiwiZ2V0VHJ5SW50ZWdlciIsImdldENvbnRhaW5zIiwiZ2V0RW5kc1dpdGgiLCJnZXRTdGFydHNXaXRoIiwiZ2V0UmV0dXJuQmxvY2siLCJnZXRQcm9jZWR1cmVDYWxsIiwiZ2V0VHlwZSIsInR5cGUiLCJldmFsdWF0ZSIsImZvcndhcmQiLCJiYWNrIiwidmFyaWFibGVzIiwibmFtZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBTUE7OztlQUFBOzs7Z0NBSndCOzBCQUVEO01BRXZCLFdBQWVBLElBQUFBLGdCQUFNLEVBQUMsTUFBTUMsbUJBQW1CQyx1QkFBTztJQUNwRCxZQUFZQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxVQUFVLEVBQUVDLElBQUksRUFBRUMsSUFBSSxFQUFFQyxLQUFLLEVBQUVDLE1BQU0sRUFBRUMsR0FBRyxFQUFFQyxNQUFNLEVBQUVDLE9BQU8sRUFBRUMsU0FBUyxFQUFFQyxVQUFVLEVBQUVDLFFBQVEsRUFBRUMsU0FBUyxFQUFFQyxVQUFVLEVBQUVDLFFBQVEsRUFBRUMsUUFBUSxFQUFFQyxVQUFVLEVBQUVDLFdBQVcsRUFBRUMsYUFBYSxDQUFFO1FBQ2xOLEtBQUssQ0FBQ3BCLFNBQVNDLFFBQVFDLE1BQU1DO1FBRTdCLElBQUksQ0FBQ0MsSUFBSSxHQUFHQTtRQUNaLElBQUksQ0FBQ0MsSUFB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
@@ -13,7 +13,7 @@ const _elements = require("../elements");
13
13
  const _context = require("../utilities/context");
14
14
  const _instantiate = require("../process/instantiate");
15
15
  const _json = require("../utilities/json");
16
- const { every } = _occamlanguages.continuationUtilities, { unbreakable } = _occamlanguages.breakPointUtilities;
16
+ const { cut, every } = _occamlanguages.continuationUtilities, { unbreakable } = _occamlanguages.breakPointUtilities;
17
17
  const _default = (0, _elements.define)(class ImportStatement extends _occamlanguages.Element {
18
18
  constructor(context, string, node, breakPoint, releaseName, importBindings){
19
19
  super(context, string, node, breakPoint);
@@ -37,6 +37,7 @@ const _default = (0, _elements.define)(class ImportStatement extends _occamlangu
37
37
  return json;
38
38
  }
39
39
  verify = unbreakable(function(context, forward, back) {
40
+ forward = cut(forward, back); ///
40
41
  const importStatementString = this.getString(); ///
41
42
  context.trace(`Verifying the '${importStatementString}' import statement...`);
42
43
  return every(this.importBindings, (importBinding, context, forward, back)=>{
@@ -64,4 +65,4 @@ const _default = (0, _elements.define)(class ImportStatement extends _occamlangu
64
65
  }
65
66
  });
66
67
 
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2ltcG9ydFN0YXRlbWVudC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgRWxlbWVudCwgYnJlYWtQb2ludFV0aWxpdGllcywgY29udGludWF0aW9uVXRpbGl0aWVzIH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vZWxlbWVudHNcIjtcbmltcG9ydCB7IGluc3RhbnRpYXRlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9jb250ZXh0XCI7XG5pbXBvcnQgeyBpbnN0YW50aWF0ZUltcG9ydFN0YXRlbWVudCB9IGZyb20gXCIuLi9wcm9jZXNzL2luc3RhbnRpYXRlXCI7XG5pbXBvcnQgeyByZWxlYXNlTmFtZUZyb21KU09OLCBpbXBvcnRCaW5kaW5nc0Zyb21KU09OLCByZWxlYXNlTmFtZVRvUmVsZWFzZU5hbWVKU09OLCBpbXBvcnRCaW5kaW5nc1RvSW1wb3J0QmluZGluZ3NKU09OIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9qc29uXCI7XG5cbmNvbnN0IHsgZXZlcnkgfSA9IGNvbnRpbnVhdGlvblV0aWxpdGllcyxcbiAgICAgIHsgdW5icmVha2FibGUgfSA9IGJyZWFrUG9pbnRVdGlsaXRpZXM7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZShjbGFzcyBJbXBvcnRTdGF0ZW1lbnQgZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCByZWxlYXNlTmFtZSwgaW1wb3J0QmluZGluZ3MpIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQpO1xuXG4gICAgdGhpcy5yZWxlYXNlTmFtZSA9IHJlbGVhc2VOYW1lO1xuICAgIHRoaXMuaW1wb3J0QmluZGluZ3MgPSBpbXBvcnRCaW5kaW5ncztcbiAgfVxuXG4gIGdldFJlbGVhc2VOYW1lKCkge1xuICAgIHJldHVybiB0aGlzLnJlbGVhc2VOYW1lO1xuICB9XG5cbiAgZ2V0SW1wb3J0QmluZGluZ3MoKSB7XG4gICAgcmV0dXJuIHRoaXMuaW1wb3J0QmluZGluZ3M7XG4gIH1cblxuICB0b0pTT04oKSB7XG4gICAgbGV0IGpzb247XG5cbiAgICBjb25zdCBzdHJpbmcgPSB0aGlzLmdldFN0cmluZygpLFxuICAgICAgICAgIHJlbGVhc2VOYW1lSlNPTiA9IHJlbGVhc2VOYW1lVG9SZWxlYXNlTmFtZUpTT04odGhpcy5yZWxlYXNlTmFtZSksXG4gICAgICAgICAgaW1wb3J0QmluZGluZ3NKU09OID0gaW1wb3J0QmluZGluZ3NUb0ltcG9ydEJpbmRpbmdzSlNPTih0aGlzLmltcG9ydEJpbmRpbmdzKSxcbiAgICAgICAgICByZWxlYXNlTmFtZSA9IHJlbGVhc2VOYW1lSlNPTiwgIC8vL1xuICAgICAgICAgIGltcG9ydEJpbmRpbmdzID0gaW1wb3J0QmluZGluZ3NKU09OOyAgLy8vXG5cbiAgICBqc29uID0ge1xuICAgICAgc3RyaW5nLFxuICAgICAgcmVsZWFzZU5hbWUsXG4gICAgICBpbXBvcnRCaW5kaW5nc1xuICAgIH07XG5cbiAgICByZXR1cm4ganNvbjtcbiAgfVxuXG4gIHZlcmlmeSA9IHVuYnJlYWthYmxlKGZ1bmN0aW9uIChjb250ZXh0LCBmb3J3YXJkLCBiYWNrKSB7XG4gICAgY29uc3QgaW1wb3J0U3RhdGVtZW50U3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke2ltcG9ydFN0YXRlbWVudFN0cmluZ30nIGltcG9ydCBzdGF0ZW1lbnQuLi5gKTtcblxuICAgIHJldHVybiBldmVyeSh0aGlzLmltcG9ydEJpbmRpbmdzLCAoaW1wb3J0QmluZGluZywgY29udGV4dCwgZm9yd2FyZCwgYmFjaykgPT4ge1xuICAgICAgcmV0dXJuIGltcG9ydEJpbmRpbmcudmVyaWZ5KHRoaXMucmVsZWFzZU5hbWUsIGNvbnRleHQsIGZvcndhcmQsIGJhY2spO1xuICAgIH0sIGNvbnRleHQsIChjb250ZXh0LCBiYWNrKSA9PiB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7aW1wb3J0U3RhdGVtZW50U3RyaW5nfScgaW1wb3J0IHN0YXRlbWVudC5gKTtcblxuICAgICAgcmV0dXJuIGZvcndhcmQoY29udGV4dCwgYmFjayk7XG4gICAgfSwgKGV4Y2VwdGlvbikgPT4ge1xuICAgICAgaWYgKGV4Y2VwdGlvbikge1xuICAgICAgICByZXR1cm4gYmFjayhleGNlcHRpb24pO1xuICAgICAgfVxuXG4gICAgICBjb250ZXh0LnRyYWNlKGBVbmFibGUgdG8gdmVyaWZ5IHRoZSAnJHtpbXBvcnRTdGF0ZW1lbnRTdHJpbmd9JyBpbXBvcnQgc3RhdGVtZW50LmApO1xuXG4gICAgICByZXR1cm4gYmFjaygpO1xuICAgIH0pO1xuICB9KTtcblxuICBzdGF0aWMgbmFtZSA9IFwiSW1wb3J0U3RhdGVtZW50XCI7XG5cbiAgc3RhdGljIGZyb21KU09OKGpzb24sIGNvbnRleHQpIHtcbiAgICBsZXQgaW1wb3J0U3RhdGVtZW50O1xuXG4gICAgaW5zdGFudGlhdGUoKGNvbnRleHQpID0+IHtcbiAgICAgIGNvbnN0IHsgc3RyaW5nIH0gPSBqc29uLFxuICAgICAgICAgICAgaW1wb3J0U3RhdGVtZW50Tm9kZSA9IGluc3RhbnRpYXRlSW1wb3J0U3RhdGVtZW50KHN0cmluZywgY29udGV4dCksXG4gICAgICAgICAgICBub2RlID0gaW1wb3J0U3RhdGVtZW50Tm9kZSwgIC8vL1xuICAgICAgICAgICAgYnJlYWtQb2ludCA9IG51bGwsXG4gICAgICAgICAgICByZWxlYXNlTmFtZSA9IHJlbGVhc2VOYW1lRnJvbUpTT04oanNvbiwgY29udGV4dCksXG4gICAgICAgICAgICBpbXBvcnRCaW5kaW5ncyA9IGltcG9ydEJpbmRpbmdzRnJvbUpTT04oanNvbiwgY29udGV4dCk7XG5cbiAgICAgIGNvbnRleHQgPSBudWxsO1xuXG4gICAgICBpbXBvcnRTdGF0ZW1lbnQgPSBuZXcgSW1wb3J0U3RhdGVtZW50KGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgcmVsZWFzZU5hbWUsIGltcG9ydEJpbmRpbmdzKTtcbiAgICB9LCBjb250ZXh0KTtcblxuICAgIHJldHVybiBpbXBvcnRTdGF0ZW1lbnQ7XG4gIH1cbn0pO1xuIl0sIm5hbWVzIjpbImV2ZXJ5IiwiY29udGludWF0aW9uVXRpbGl0aWVzIiwidW5icmVha2FibGUiLCJicmVha1BvaW50VXRpbGl0aWVzIiwiZGVmaW5lIiwiSW1wb3J0U3RhdGVtZW50IiwiRWxlbWVudCIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiYnJlYWtQb2ludCIsInJlbGVhc2VOYW1lIiwiaW1wb3J0QmluZGluZ3MiLCJnZXRSZWxlYXNlTmFtZSIsImdldEltcG9ydEJpbmRpbmdzIiwidG9KU09OIiwianNvbiIsImdldFN0cmluZyIsInJlbGVhc2VOYW1lSlNPTiIsInJlbGVhc2VOYW1lVG9SZWxlYXNlTmFtZUpTT04iLCJpbXBvcnRCaW5kaW5nc0pTT04iLCJpbXBvcnRCaW5kaW5nc1RvSW1wb3J0QmluZGluZ3NKU09OIiwidmVyaWZ5IiwiZm9yd2FyZCIsImJhY2siLCJpbXBvcnRTdGF0ZW1lbnRTdHJpbmciLCJ0cmFjZSIsImltcG9ydEJpbmRpbmciLCJkZWJ1ZyIsImV4Y2VwdGlvbiIsIm5hbWUiLCJmcm9tSlNPTiIsImltcG9ydFN0YXRlbWVudCIsImluc3RhbnRpYXRlIiwiaW1wb3J0U3RhdGVtZW50Tm9kZSIsImluc3RhbnRpYXRlSW1wb3J0U3RhdGVtZW50IiwicmVsZWFzZU5hbWVGcm9tSlNPTiIsImltcG9ydEJpbmRpbmdzRnJvbUpTT04iXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVlBOzs7ZUFBQTs7O2dDQVZvRTswQkFFN0M7eUJBQ0s7NkJBQ2U7c0JBQ21GO0FBRTlILE1BQU0sRUFBRUEsS0FBSyxFQUFFLEdBQUdDLHFDQUFxQixFQUNqQyxFQUFFQyxXQUFXLEVBQUUsR0FBR0Ms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
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2ltcG9ydFN0YXRlbWVudC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgRWxlbWVudCwgYnJlYWtQb2ludFV0aWxpdGllcywgY29udGludWF0aW9uVXRpbGl0aWVzIH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vZWxlbWVudHNcIjtcbmltcG9ydCB7IGluc3RhbnRpYXRlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9jb250ZXh0XCI7XG5pbXBvcnQgeyBpbnN0YW50aWF0ZUltcG9ydFN0YXRlbWVudCB9IGZyb20gXCIuLi9wcm9jZXNzL2luc3RhbnRpYXRlXCI7XG5pbXBvcnQgeyByZWxlYXNlTmFtZUZyb21KU09OLCBpbXBvcnRCaW5kaW5nc0Zyb21KU09OLCByZWxlYXNlTmFtZVRvUmVsZWFzZU5hbWVKU09OLCBpbXBvcnRCaW5kaW5nc1RvSW1wb3J0QmluZGluZ3NKU09OIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9qc29uXCI7XG5cbmNvbnN0IHsgY3V0LCBldmVyeSB9ID0gY29udGludWF0aW9uVXRpbGl0aWVzLFxuICAgICAgeyB1bmJyZWFrYWJsZSB9ID0gYnJlYWtQb2ludFV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIEltcG9ydFN0YXRlbWVudCBleHRlbmRzIEVsZW1lbnQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHJlbGVhc2VOYW1lLCBpbXBvcnRCaW5kaW5ncykge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLnJlbGVhc2VOYW1lID0gcmVsZWFzZU5hbWU7XG4gICAgdGhpcy5pbXBvcnRCaW5kaW5ncyA9IGltcG9ydEJpbmRpbmdzO1xuICB9XG5cbiAgZ2V0UmVsZWFzZU5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMucmVsZWFzZU5hbWU7XG4gIH1cblxuICBnZXRJbXBvcnRCaW5kaW5ncygpIHtcbiAgICByZXR1cm4gdGhpcy5pbXBvcnRCaW5kaW5ncztcbiAgfVxuXG4gIHRvSlNPTigpIHtcbiAgICBsZXQganNvbjtcblxuICAgIGNvbnN0IHN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgcmVsZWFzZU5hbWVKU09OID0gcmVsZWFzZU5hbWVUb1JlbGVhc2VOYW1lSlNPTih0aGlzLnJlbGVhc2VOYW1lKSxcbiAgICAgICAgICBpbXBvcnRCaW5kaW5nc0pTT04gPSBpbXBvcnRCaW5kaW5nc1RvSW1wb3J0QmluZGluZ3NKU09OKHRoaXMuaW1wb3J0QmluZGluZ3MpLFxuICAgICAgICAgIHJlbGVhc2VOYW1lID0gcmVsZWFzZU5hbWVKU09OLCAgLy8vXG4gICAgICAgICAgaW1wb3J0QmluZGluZ3MgPSBpbXBvcnRCaW5kaW5nc0pTT047ICAvLy9cblxuICAgIGpzb24gPSB7XG4gICAgICBzdHJpbmcsXG4gICAgICByZWxlYXNlTmFtZSxcbiAgICAgIGltcG9ydEJpbmRpbmdzXG4gICAgfTtcblxuICAgIHJldHVybiBqc29uO1xuICB9XG5cbiAgdmVyaWZ5ID0gdW5icmVha2FibGUoZnVuY3Rpb24gKGNvbnRleHQsIGZvcndhcmQsIGJhY2spIHtcbiAgICBmb3J3YXJkID0gY3V0KGZvcndhcmQsIGJhY2spOyAvLy9cblxuICAgIGNvbnN0IGltcG9ydFN0YXRlbWVudFN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7IC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtpbXBvcnRTdGF0ZW1lbnRTdHJpbmd9JyBpbXBvcnQgc3RhdGVtZW50Li4uYCk7XG5cbiAgICByZXR1cm4gZXZlcnkodGhpcy5pbXBvcnRCaW5kaW5ncywgKGltcG9ydEJpbmRpbmcsIGNvbnRleHQsIGZvcndhcmQsIGJhY2spID0+IHtcbiAgICAgIHJldHVybiBpbXBvcnRCaW5kaW5nLnZlcmlmeSh0aGlzLnJlbGVhc2VOYW1lLCBjb250ZXh0LCBmb3J3YXJkLCBiYWNrKTtcbiAgICB9LCBjb250ZXh0LCAoY29udGV4dCwgYmFjaykgPT4ge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke2ltcG9ydFN0YXRlbWVudFN0cmluZ30nIGltcG9ydCBzdGF0ZW1lbnQuYCk7XG5cbiAgICAgIHJldHVybiBmb3J3YXJkKGNvbnRleHQsIGJhY2spO1xuICAgIH0sIChleGNlcHRpb24pID0+IHtcbiAgICAgIGlmIChleGNlcHRpb24pIHtcbiAgICAgICAgcmV0dXJuIGJhY2soZXhjZXB0aW9uKTtcbiAgICAgIH1cblxuICAgICAgY29udGV4dC50cmFjZShgVW5hYmxlIHRvIHZlcmlmeSB0aGUgJyR7aW1wb3J0U3RhdGVtZW50U3RyaW5nfScgaW1wb3J0IHN0YXRlbWVudC5gKTtcblxuICAgICAgcmV0dXJuIGJhY2soKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgc3RhdGljIG5hbWUgPSBcIkltcG9ydFN0YXRlbWVudFwiO1xuXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uLCBjb250ZXh0KSB7XG4gICAgbGV0IGltcG9ydFN0YXRlbWVudDtcblxuICAgIGluc3RhbnRpYXRlKChjb250ZXh0KSA9PiB7XG4gICAgICBjb25zdCB7IHN0cmluZyB9ID0ganNvbixcbiAgICAgICAgICAgIGltcG9ydFN0YXRlbWVudE5vZGUgPSBpbnN0YW50aWF0ZUltcG9ydFN0YXRlbWVudChzdHJpbmcsIGNvbnRleHQpLFxuICAgICAgICAgICAgbm9kZSA9IGltcG9ydFN0YXRlbWVudE5vZGUsICAvLy9cbiAgICAgICAgICAgIGJyZWFrUG9pbnQgPSBudWxsLFxuICAgICAgICAgICAgcmVsZWFzZU5hbWUgPSByZWxlYXNlTmFtZUZyb21KU09OKGpzb24sIGNvbnRleHQpLFxuICAgICAgICAgICAgaW1wb3J0QmluZGluZ3MgPSBpbXBvcnRCaW5kaW5nc0Zyb21KU09OKGpzb24sIGNvbnRleHQpO1xuXG4gICAgICBjb250ZXh0ID0gbnVsbDtcblxuICAgICAgaW1wb3J0U3RhdGVtZW50ID0gbmV3IEltcG9ydFN0YXRlbWVudChjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHJlbGVhc2VOYW1lLCBpbXBvcnRCaW5kaW5ncyk7XG4gICAgfSwgY29udGV4dCk7XG5cbiAgICByZXR1cm4gaW1wb3J0U3RhdGVtZW50O1xuICB9XG59KTtcbiJdLCJuYW1lcyI6WyJjdXQiLCJldmVyeSIsImNvbnRpbnVhdGlvblV0aWxpdGllcyIsInVuYnJlYWthYmxlIiwiYnJlYWtQb2ludFV0aWxpdGllcyIsImRlZmluZSIsIkltcG9ydFN0YXRlbWVudCIsIkVsZW1lbnQiLCJjb250ZXh0Iiwic3RyaW5nIiwibm9kZSIsImJyZWFrUG9pbnQiLCJyZWxlYXNlTmFtZSIsImltcG9ydEJpbmRpbmdzIiwiZ2V0UmVsZWFzZU5hbWUiLCJnZXRJbXBvcnRCaW5kaW5ncyIsInRvSlNPTiIsImpzb24iLCJnZXRTdHJpbmciLCJyZWxlYXNlTmFtZUpTT04iLCJyZWxlYXNlTmFtZVRvUmVsZWFzZU5hbWVKU09OIiwiaW1wb3J0QmluZGluZ3NKU09OIiwiaW1wb3J0QmluZGluZ3NUb0ltcG9ydEJpbmRpbmdzSlNPTiIsInZlcmlmeSIsImZvcndhcmQiLCJiYWNrIiwiaW1wb3J0U3RhdGVtZW50U3RyaW5nIiwidHJhY2UiLCJpbXBvcnRCaW5kaW5nIiwiZGVidWciLCJleGNlcHRpb24iLCJuYW1lIiwiZnJvbUpTT04iLCJpbXBvcnRTdGF0ZW1lbnQiLCJpbnN0YW50aWF0ZSIsImltcG9ydFN0YXRlbWVudE5vZGUiLCJpbnN0YW50aWF0ZUltcG9ydFN0YXRlbWVudCIsInJlbGVhc2VOYW1lRnJvbUpTT04iLCJpbXBvcnRCaW5kaW5nc0Zyb21KU09OIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFZQTs7O2VBQUE7OztnQ0FWb0U7MEJBRTdDO3lCQUNLOzZCQUNlO3NCQUNtRjtBQUU5SCxNQUFNLEVBQUVB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