occam-furtle 3.0.519 → 3.0.521

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.
@@ -67,10 +67,18 @@ class BlockContext extends _occamlanguages.Context {
67
67
  }) || null;
68
68
  return variable;
69
69
  }
70
+ findImportedProcedureByProcedureName(procedureName) {
71
+ const context = this.getContext(), importedProcedure = context.findImportedProcedureByProcedureName(procedureName);
72
+ return importedProcedure;
73
+ }
70
74
  isVariablePresentByVariableName(variableName, nested = true) {
71
75
  const variable = this.findVariableByVariableName(variableName, nested), variablePresent = variable !== null;
72
76
  return variablePresent;
73
77
  }
78
+ isImportedProcedurePresentByProcedureName(procedureName) {
79
+ const context = this.getContext(), importedProcedurePresent = context.isImportedProcedurePresentByProcedureName(procedureName);
80
+ return importedProcedurePresent;
81
+ }
74
82
  static fromVariables(variables, context) {
75
83
  const blockContext = _occamlanguages.Context.fromNothing(BlockContext, variables, context);
76
84
  return blockContext;
@@ -81,4 +89,4 @@ function isContextBlockContext(context) {
81
89
  return contextBlockContext;
82
90
  }
83
91
 
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250ZXh0L2Jsb2NrLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBDb250ZXh0IH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuaW1wb3J0IHsgYXJyYXlVdGlsaXRpZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XG5cbmltcG9ydCBFeGNlcHRpb24gZnJvbSBcIi4uL2V4Y2VwdGlvblwiO1xuXG5jb25zdCB7IHB1c2ggfSA9IGFycmF5VXRpbGl0aWVzO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBCbG9ja0NvbnRleHQgZXh0ZW5kcyBDb250ZXh0IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgdmFyaWFibGVzKSB7XG4gICAgc3VwZXIoY29udGV4dCk7XG5cbiAgICB0aGlzLnZhcmlhYmxlcyA9IHZhcmlhYmxlcztcbiAgfVxuXG4gIGdldFZhcmlhYmxlcyhuZXN0ZWQgPSB0cnVlKSB7XG4gICAgY29uc3QgdmFyaWFibGVzID0gW107XG5cbiAgICBwdXNoKHZhcmlhYmxlcywgdGhpcy52YXJpYWJsZXMpO1xuXG4gICAgaWYgKG5lc3RlZCkge1xuICAgICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpLFxuICAgICAgICAgICAgY29udGV4dFZhcmlhYmxlcyA9IGNvbnRleHQuZ2V0VmFyaWFibGVzKG5lc3RlZCk7XG5cbiAgICAgIHB1c2godmFyaWFibGVzLCBjb250ZXh0VmFyaWFibGVzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFyaWFibGVzO1xuICB9XG5cbiAgYWRkVmFyaWFibGUodmFyaWFibGUsIGZvcndhcmQsIGJhY2spIHtcbiAgICBjb25zdCBuZXN0ZWQgPSBmYWxzZSxcbiAgICAgICAgICB2YXJpYWJsZU5hbWUgPSB2YXJpYWJsZS5nZXROYW1lKCksXG4gICAgICAgICAgdmFyaWFibGVTdHJpbmcgPSB2YXJpYWJsZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICB2YXJpYWJsZVByZXNlbnQgPSB0aGlzLmlzVmFyaWFibGVQcmVzZW50QnlWYXJpYWJsZU5hbWUodmFyaWFibGVOYW1lLCBuZXN0ZWQpO1xuXG4gICAgaWYgKHZhcmlhYmxlUHJlc2VudCkge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IGBUaGUgJyR7dmFyaWFibGVTdHJpbmd9JyB2YXJpYWJsZSBpcyBhbHJlYWR5IHByZXNlbnQuJ2AsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHJldHVybiBiYWNrKGV4Y2VwdGlvbik7XG4gICAgfVxuXG4gICAgY29uc3QgY29udGV4dCA9IHRoaXM7IC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgQWRkZWQgdGhlICcke3ZhcmlhYmxlU3RyaW5nfScgdmFyaWFibGUgdG8gdGhlIGNvbnRleHQuYCk7XG5cbiAgICB0aGlzLnZhcmlhYmxlcy5wdXNoKHZhcmlhYmxlKTtcblxuICAgIHJldHVybiBmb3J3YXJkKGJhY2spO1xuICB9XG5cbiAgZmluZFByb2NlZHVyZUJ5UHJvY2VkdXJlTmFtZShwcm9jZWR1cmVOYW1lKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpLFxuICAgICAgICAgIHByb2NlZHVyZSA9IGNvbnRleHQuZmluZFByb2NlZHVyZUJ5UHJvY2VkdXJlTmFtZShwcm9jZWR1cmVOYW1lKTtcblxuICAgIHJldHVybiBwcm9jZWR1cmU7XG4gIH1cblxuICBpc1Byb2NlZHVyZVByZXNlbnRCeVByb2NlZHVyZU5hbWUocHJvY2VkdXJlTmFtZSkge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKSxcbiAgICAgICAgICBwcm9jZWR1cmVQcmVzZW50ID0gY29udGV4dC5pc1Byb2NlZHVyZVByZXNlbnRCeVByb2NlZHVyZU5hbWUocHJvY2VkdXJlTmFtZSk7XG5cbiAgICByZXR1cm4gcHJvY2VkdXJlUHJlc2VudDtcbiAgfVxuXG4gIGZpbmRWYXJpYWJsZUJ5VmFyaWFibGVOYW1lKHZhcmlhYmxlTmFtZSwgbmVzdGVkID0gdHJ1ZSkge1xuICAgIGNvbnN0IHZhcmlhYmxlcyA9IHRoaXMuZ2V0VmFyaWFibGVzKG5lc3RlZCksXG4gICAgICAgICAgdmFyaWFibGUgPSB2YXJpYWJsZXMuZmluZCgodmFyaWFibGUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHZhcmlhYmxlQ29tcGFyZXNUb1ZhcmlhYmxlTmFtZSA9IHZhcmlhYmxlLmNvbXBhcmVWYXJpYWJsZU5hbWUodmFyaWFibGVOYW1lKTtcblxuICAgICAgICAgICAgaWYgKHZhcmlhYmxlQ29tcGFyZXNUb1ZhcmlhYmxlTmFtZSkge1xuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KSB8fCBudWxsO1xuXG4gICAgcmV0dXJuIHZhcmlhYmxlO1xuICB9XG5cbiAgaXNWYXJpYWJsZVByZXNlbnRCeVZhcmlhYmxlTmFtZSh2YXJpYWJsZU5hbWUsIG5lc3RlZCA9IHRydWUpIHtcbiAgICBjb25zdCB2YXJpYWJsZSA9IHRoaXMuZmluZFZhcmlhYmxlQnlWYXJpYWJsZU5hbWUodmFyaWFibGVOYW1lLCBuZXN0ZWQpLFxuICAgICAgICAgIHZhcmlhYmxlUHJlc2VudCA9ICh2YXJpYWJsZSAhPT0gbnVsbCk7XG5cbiAgICByZXR1cm4gdmFyaWFibGVQcmVzZW50O1xuICB9XG5cbiAgc3RhdGljIGZyb21WYXJpYWJsZXModmFyaWFibGVzLCBjb250ZXh0KSB7XG4gICAgY29uc3QgYmxvY2tDb250ZXh0ID0gQ29udGV4dC5mcm9tTm90aGluZyhCbG9ja0NvbnRleHQsIHZhcmlhYmxlcywgY29udGV4dClcblxuICAgIHJldHVybiBibG9ja0NvbnRleHQ7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQ29udGV4dEJsb2NrQ29udGV4dChjb250ZXh0KSB7XG4gIGNvbnN0IGNvbnRleHRCbG9ja0NvbnRleHQgPSBCbG9ja0NvbnRleHQucHJvdG90eXBlLmlzUHJvdG90eXBlT2YoY29udGV4dCk7XG5cbiAgcmV0dXJuIGNvbnRleHRCbG9ja0NvbnRleHQ7XG59XG4iXSwibmFtZXMiOlsiQmxvY2tDb250ZXh0IiwiaXNDb250ZXh0QmxvY2tDb250ZXh0IiwicHVzaCIsImFycmF5VXRpbGl0aWVzIiwiQ29udGV4dCIsImNvbnRleHQiLCJ2YXJpYWJsZXMiLCJnZXRWYXJpYWJsZXMiLCJuZXN0ZWQiLCJnZXRDb250ZXh0IiwiY29udGV4dFZhcmlhYmxlcyIsImFkZFZhcmlhYmxlIiwidmFyaWFibGUiLCJmb3J3YXJkIiwiYmFjayIsInZhcmlhYmxlTmFtZSIsImdldE5hbWUiLCJ2YXJpYWJsZVN0cmluZyIsImdldFN0cmluZyIsInZhcmlhYmxlUHJlc2VudCIsImlzVmFyaWFibGVQcmVzZW50QnlWYXJpYWJsZU5hbWUiLCJtZXNzYWdlIiwiZXhjZXB0aW9uIiwiRXhjZXB0aW9uIiwiZnJvbU1lc3NhZ2UiLCJ0cmFjZSIsImZpbmRQcm9jZWR1cmVCeVByb2NlZHVyZU5hbWUiLCJwcm9jZWR1cmVOYW1lIiwicHJvY2VkdXJlIiwiaXNQcm9jZWR1cmVQcmVzZW50QnlQcm9jZWR1cmVOYW1lIiwicHJvY2VkdXJlUHJlc2VudCIsImZpbmRWYXJpYWJsZUJ5VmFyaWFibGVOYW1lIiwiZmluZCIsInZhcmlhYmxlQ29tcGFyZXNUb1ZhcmlhYmxlTmFtZSIsImNvbXBhcmVWYXJpYWJsZU5hbWUiLCJmcm9tVmFyaWFibGVzIiwiYmxvY2tDb250ZXh0IiwiZnJvbU5vdGhpbmciLCJjb250ZXh0QmxvY2tDb250ZXh0IiwicHJvdG90eXBlIiwiaXNQcm90b3R5cGVPZiJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O1FBU0E7ZUFBcUJBOztRQXFGTEM7ZUFBQUE7OztnQ0E1RlE7MkJBQ087a0VBRVQ7Ozs7OztBQUV0QixNQUFNLEVBQUVDLElBQUksRUFBRSxHQUFHQyx5QkFBYztBQUVoQixNQUFNSCxxQkFBcUJJLHVCQUFPO0lBQy9DLFlBQVlDLE9BQU8sRUFBRUMsU0FBUyxDQUFFO1FBQzlCLEtBQUssQ0FBQ0Q7UUFFTixJQUFJLENBQUNDLFNBQVMsR0FBR0E7SUFDbkI7SUFFQUMsYUFBYUMsU0FBUyxJQUFJLEVBQUU7UUFDMUIsTUFBTUYsWUFBWSxFQUFFO1FBRXBCSixLQUFLSSxXQUFXLElBQUksQ0FBQ0EsU0FBUztRQUU5QixJQUFJRSxRQUFRO1lBQ1YsTUFBTUgsVUFBVSxJQUFJLENBQUNJLFVBQVUsSUFDekJDLG1CQUFtQkwsUUFBUUUsWUFBWSxDQUFDQztZQUU5Q04sS0FBS0ksV0FBV0k7UUFDbEI7UUFFQSxPQUFPSjtJQUNUO0lBRUFLLFlBQVlDLFFBQVEsRUFBRUMsT0FBTyxFQUFFQyxJQUFJLEVBQUU7UUFDbkMsTUFBTU4sU0FBUyxPQUNUTyxlQUFlSCxTQUFTSSxPQUFPLElBQy9CQyxpQkFBaUJMLFNBQVNNLFNBQVMsSUFDbkNDLGtCQUFrQixJQUFJLENBQUNDLCtCQUErQixDQUFDTCxjQUFjUDtRQUUzRSxJQUFJVyxpQkFBaUI7WUFDbkIsTUFBTUUsVUFBVSxDQUFDLEtBQUssRUFBRUosZUFBZSwrQkFBK0IsQ0FBQyxFQUNqRUssWUFBWUMsa0JBQVMsQ0FBQ0MsV0FBVyxDQUFDSDtZQUV4QyxPQUFPUCxLQUFLUTtRQUNkO1FBRUEsTUFBTWpCLFVBQVUsSUFBSSxFQUFFLEdBQUc7UUFFekJBLFFBQVFvQixLQUFLLENBQUMsQ0FBQyxXQUFXLEVBQUVSLGVBQWUsMEJBQTBCLENBQUM7UUFFdEUsSUFBSSxDQUFDWCxTQUFTLENBQUNKLElBQUksQ0FBQ1U7UUFFcEIsT0FBT0MsUUFBUUM7SUFDakI7SUFFQVksNkJBQTZCQyxhQUFhLEVBQUU7UUFDMUMsTUFBTXRCLFVBQVUsSUFBSSxDQUFDSSxVQUFVLElBQ3pCbUIsWUFBWXZCLFFBQVFxQiw0QkFBNEIsQ0FBQ0M7UUFFdkQsT0FBT0M7SUFDVDtJQUVBQyxrQ0FBa0NGLGFBQWEsRUFBRTtRQUMvQyxNQUFNdEIsVUFBVSxJQUFJLENBQUNJLFVBQVUsSUFDekJxQixtQkFBbUJ6QixRQUFRd0IsaUNBQWlDLENBQUNGO1FBRW5FLE9BQU9HO0lBQ1Q7SUFFQUMsMkJBQTJCaEIsWUFBWSxFQUFFUCxTQUFTLElBQUksRUFBRTtRQUN0RCxNQUFNRixZQUFZLElBQUksQ0FBQ0MsWUFBWSxDQUFDQyxTQUM5QkksV0FBV04sVUFBVTBCLElBQUksQ0FBQyxDQUFDcEI7WUFDekIsTUFBTXFCLGlDQUFpQ3JCLFNBQVNzQixtQkFBbUIsQ0FBQ25CO1lBRXBFLElBQUlrQixnQ0FBZ0M7Z0JBQ2xDLE9BQU87WUFDVDtRQUNGLE1BQU07UUFFWixPQUFPckI7SUFDVDtJQUVBUSxnQ0FBZ0NMLFlBQVksRUFBRVAsU0FBUyxJQUFJLEVBQUU7UUFDM0QsTUFBTUksV0FBVyxJQUFJLENBQUNtQiwwQkFBMEIsQ0FBQ2hCLGNBQWNQLFNBQ3pEVyxrQkFBbUJQLGFBQWE7UUFFdEMsT0FBT087SUFDVDtJQUVBLE9BQU9nQixjQUFjN0IsU0FBUyxFQUFFRCxPQUFPLEVBQUU7UUFDdkMsTUFBTStCLGVBQWVoQyx1QkFBTyxDQUFDaUMsV0FBVyxDQUFDckMsY0FBY00sV0FBV0Q7UUFFbEUsT0FBTytCO0lBQ1Q7QUFDRjtBQUVPLFNBQVNuQyxzQkFBc0JJLE9BQU87SUFDM0MsTUFBTWlDLHNCQUFzQnRDLGFBQWF1QyxTQUFTLENBQUNDLGFBQWEsQ0FBQ25DO0lBRWpFLE9BQU9pQztBQUNUIn0=
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250ZXh0L2Jsb2NrLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBDb250ZXh0IH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuaW1wb3J0IHsgYXJyYXlVdGlsaXRpZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XG5cbmltcG9ydCBFeGNlcHRpb24gZnJvbSBcIi4uL2V4Y2VwdGlvblwiO1xuXG5jb25zdCB7IHB1c2ggfSA9IGFycmF5VXRpbGl0aWVzO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBCbG9ja0NvbnRleHQgZXh0ZW5kcyBDb250ZXh0IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgdmFyaWFibGVzKSB7XG4gICAgc3VwZXIoY29udGV4dCk7XG5cbiAgICB0aGlzLnZhcmlhYmxlcyA9IHZhcmlhYmxlcztcbiAgfVxuXG4gIGdldFZhcmlhYmxlcyhuZXN0ZWQgPSB0cnVlKSB7XG4gICAgY29uc3QgdmFyaWFibGVzID0gW107XG5cbiAgICBwdXNoKHZhcmlhYmxlcywgdGhpcy52YXJpYWJsZXMpO1xuXG4gICAgaWYgKG5lc3RlZCkge1xuICAgICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpLFxuICAgICAgICAgICAgY29udGV4dFZhcmlhYmxlcyA9IGNvbnRleHQuZ2V0VmFyaWFibGVzKG5lc3RlZCk7XG5cbiAgICAgIHB1c2godmFyaWFibGVzLCBjb250ZXh0VmFyaWFibGVzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFyaWFibGVzO1xuICB9XG5cbiAgYWRkVmFyaWFibGUodmFyaWFibGUsIGZvcndhcmQsIGJhY2spIHtcbiAgICBjb25zdCBuZXN0ZWQgPSBmYWxzZSxcbiAgICAgICAgICB2YXJpYWJsZU5hbWUgPSB2YXJpYWJsZS5nZXROYW1lKCksXG4gICAgICAgICAgdmFyaWFibGVTdHJpbmcgPSB2YXJpYWJsZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICB2YXJpYWJsZVByZXNlbnQgPSB0aGlzLmlzVmFyaWFibGVQcmVzZW50QnlWYXJpYWJsZU5hbWUodmFyaWFibGVOYW1lLCBuZXN0ZWQpO1xuXG4gICAgaWYgKHZhcmlhYmxlUHJlc2VudCkge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IGBUaGUgJyR7dmFyaWFibGVTdHJpbmd9JyB2YXJpYWJsZSBpcyBhbHJlYWR5IHByZXNlbnQuJ2AsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHJldHVybiBiYWNrKGV4Y2VwdGlvbik7XG4gICAgfVxuXG4gICAgY29uc3QgY29udGV4dCA9IHRoaXM7IC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgQWRkZWQgdGhlICcke3ZhcmlhYmxlU3RyaW5nfScgdmFyaWFibGUgdG8gdGhlIGNvbnRleHQuYCk7XG5cbiAgICB0aGlzLnZhcmlhYmxlcy5wdXNoKHZhcmlhYmxlKTtcblxuICAgIHJldHVybiBmb3J3YXJkKGJhY2spO1xuICB9XG5cbiAgZmluZFByb2NlZHVyZUJ5UHJvY2VkdXJlTmFtZShwcm9jZWR1cmVOYW1lKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpLFxuICAgICAgICAgIHByb2NlZHVyZSA9IGNvbnRleHQuZmluZFByb2NlZHVyZUJ5UHJvY2VkdXJlTmFtZShwcm9jZWR1cmVOYW1lKTtcblxuICAgIHJldHVybiBwcm9jZWR1cmU7XG4gIH1cblxuICBpc1Byb2NlZHVyZVByZXNlbnRCeVByb2NlZHVyZU5hbWUocHJvY2VkdXJlTmFtZSkge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKSxcbiAgICAgICAgICBwcm9jZWR1cmVQcmVzZW50ID0gY29udGV4dC5pc1Byb2NlZHVyZVByZXNlbnRCeVByb2NlZHVyZU5hbWUocHJvY2VkdXJlTmFtZSk7XG5cbiAgICByZXR1cm4gcHJvY2VkdXJlUHJlc2VudDtcbiAgfVxuXG4gIGZpbmRWYXJpYWJsZUJ5VmFyaWFibGVOYW1lKHZhcmlhYmxlTmFtZSwgbmVzdGVkID0gdHJ1ZSkge1xuICAgIGNvbnN0IHZhcmlhYmxlcyA9IHRoaXMuZ2V0VmFyaWFibGVzKG5lc3RlZCksXG4gICAgICAgICAgdmFyaWFibGUgPSB2YXJpYWJsZXMuZmluZCgodmFyaWFibGUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHZhcmlhYmxlQ29tcGFyZXNUb1ZhcmlhYmxlTmFtZSA9IHZhcmlhYmxlLmNvbXBhcmVWYXJpYWJsZU5hbWUodmFyaWFibGVOYW1lKTtcblxuICAgICAgICAgICAgaWYgKHZhcmlhYmxlQ29tcGFyZXNUb1ZhcmlhYmxlTmFtZSkge1xuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KSB8fCBudWxsO1xuXG4gICAgcmV0dXJuIHZhcmlhYmxlO1xuICB9XG5cbiAgZmluZEltcG9ydGVkUHJvY2VkdXJlQnlQcm9jZWR1cmVOYW1lKHByb2NlZHVyZU5hbWUpIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCksXG4gICAgICAgICAgaW1wb3J0ZWRQcm9jZWR1cmUgPSBjb250ZXh0LmZpbmRJbXBvcnRlZFByb2NlZHVyZUJ5UHJvY2VkdXJlTmFtZShwcm9jZWR1cmVOYW1lKTtcblxuICAgIHJldHVybiBpbXBvcnRlZFByb2NlZHVyZTtcbiAgfVxuXG4gIGlzVmFyaWFibGVQcmVzZW50QnlWYXJpYWJsZU5hbWUodmFyaWFibGVOYW1lLCBuZXN0ZWQgPSB0cnVlKSB7XG4gICAgY29uc3QgdmFyaWFibGUgPSB0aGlzLmZpbmRWYXJpYWJsZUJ5VmFyaWFibGVOYW1lKHZhcmlhYmxlTmFtZSwgbmVzdGVkKSxcbiAgICAgICAgICB2YXJpYWJsZVByZXNlbnQgPSAodmFyaWFibGUgIT09IG51bGwpO1xuXG4gICAgcmV0dXJuIHZhcmlhYmxlUHJlc2VudDtcbiAgfVxuXG4gIGlzSW1wb3J0ZWRQcm9jZWR1cmVQcmVzZW50QnlQcm9jZWR1cmVOYW1lKHByb2NlZHVyZU5hbWUpIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCksXG4gICAgICAgICAgaW1wb3J0ZWRQcm9jZWR1cmVQcmVzZW50ID0gY29udGV4dC5pc0ltcG9ydGVkUHJvY2VkdXJlUHJlc2VudEJ5UHJvY2VkdXJlTmFtZShwcm9jZWR1cmVOYW1lKTtcblxuICAgIHJldHVybiBpbXBvcnRlZFByb2NlZHVyZVByZXNlbnQ7XG4gIH1cblxuICBzdGF0aWMgZnJvbVZhcmlhYmxlcyh2YXJpYWJsZXMsIGNvbnRleHQpIHtcbiAgICBjb25zdCBibG9ja0NvbnRleHQgPSBDb250ZXh0LmZyb21Ob3RoaW5nKEJsb2NrQ29udGV4dCwgdmFyaWFibGVzLCBjb250ZXh0KVxuXG4gICAgcmV0dXJuIGJsb2NrQ29udGV4dDtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNDb250ZXh0QmxvY2tDb250ZXh0KGNvbnRleHQpIHtcbiAgY29uc3QgY29udGV4dEJsb2NrQ29udGV4dCA9IEJsb2NrQ29udGV4dC5wcm90b3R5cGUuaXNQcm90b3R5cGVPZihjb250ZXh0KTtcblxuICByZXR1cm4gY29udGV4dEJsb2NrQ29udGV4dDtcbn1cbiJdLCJuYW1lcyI6WyJCbG9ja0NvbnRleHQiLCJpc0NvbnRleHRCbG9ja0NvbnRleHQiLCJwdXNoIiwiYXJyYXlVdGlsaXRpZXMiLCJDb250ZXh0IiwiY29udGV4dCIsInZhcmlhYmxlcyIsImdldFZhcmlhYmxlcyIsIm5lc3RlZCIsImdldENvbnRleHQiLCJjb250ZXh0VmFyaWFibGVzIiwiYWRkVmFyaWFibGUiLCJ2YXJpYWJsZSIsImZvcndhcmQiLCJiYWNrIiwidmFyaWFibGVOYW1lIiwiZ2V0TmFtZSIsInZhcmlhYmxlU3RyaW5nIiwiZ2V0U3RyaW5nIiwidmFyaWFibGVQcmVzZW50IiwiaXNWYXJpYWJsZVByZXNlbnRCeVZhcmlhYmxlTmFtZSIsIm1lc3NhZ2UiLCJleGNlcHRpb24iLCJFeGNlcHRpb24iLCJmcm9tTWVzc2FnZSIsInRyYWNlIiwiZmluZFByb2NlZHVyZUJ5UHJvY2VkdXJlTmFtZSIsInByb2NlZHVyZU5hbWUiLCJwcm9jZWR1cmUiLCJpc1Byb2NlZHVyZVByZXNlbnRCeVByb2NlZHVyZU5hbWUiLCJwcm9jZWR1cmVQcmVzZW50IiwiZmluZFZhcmlhYmxlQnlWYXJpYWJsZU5hbWUiLCJmaW5kIiwidmFyaWFibGVDb21wYXJlc1RvVmFyaWFibGVOYW1lIiwiY29tcGFyZVZhcmlhYmxlTmFtZSIsImZpbmRJbXBvcnRlZFByb2NlZHVyZUJ5UHJvY2VkdXJlTmFtZSIsImltcG9ydGVkUHJvY2VkdXJlIiwiaXNJbXBvcnRlZFByb2NlZHVyZVByZXNlbnRCeVByb2NlZHVyZU5hbWUiLCJpbXBvcnRlZFByb2NlZHVyZVByZXNlbnQiLCJmcm9tVmFyaWFibGVzIiwiYmxvY2tDb250ZXh0IiwiZnJvbU5vdGhpbmciLCJjb250ZXh0QmxvY2tDb250ZXh0IiwicHJvdG90eXBlIiwiaXNQcm90b3R5cGVPZiJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O1FBU0E7ZUFBcUJBOztRQW1HTEM7ZUFBQUE7OztnQ0ExR1E7MkJBQ087a0VBRVQ7Ozs7OztBQUV0QixNQUFNLEVBQUVDLElBQUksRUFBRSxHQUFHQyx5QkFBYztBQUVoQixNQUFNSCxxQkFBcUJJLHVCQUFPO0lBQy9DLFlBQVlDLE9BQU8sRUFBRUMsU0FBUyxDQUFFO1FBQzlCLEtBQUssQ0FBQ0Q7UUFFTixJQUFJLENBQUNDLFNBQVMsR0FBR0E7SUFDbkI7SUFFQUMsYUFBYUMsU0FBUyxJQUFJLEVBQUU7UUFDMUIsTUFBTUYsWUFBWSxFQUFFO1FBRXBCSixLQUFLSSxXQUFXLElBQUksQ0FBQ0EsU0FBUztRQUU5QixJQUFJRSxRQUFRO1lBQ1YsTUFBTUgsVUFBVSxJQUFJLENBQUNJLFVBQVUsSUFDekJDLG1CQUFtQkwsUUFBUUUsWUFBWSxDQUFDQztZQUU5Q04sS0FBS0ksV0FBV0k7UUFDbEI7UUFFQSxPQUFPSjtJQUNUO0lBRUFLLFlBQVlDLFFBQVEsRUFBRUMsT0FBTyxFQUFFQyxJQUFJLEVBQUU7UUFDbkMsTUFBTU4sU0FBUyxPQUNUTyxlQUFlSCxTQUFTSSxPQUFPLElBQy9CQyxpQkFBaUJMLFNBQVNNLFNBQVMsSUFDbkNDLGtCQUFrQixJQUFJLENBQUNDLCtCQUErQixDQUFDTCxjQUFjUDtRQUUzRSxJQUFJVyxpQkFBaUI7WUFDbkIsTUFBTUUsVUFBVSxDQUFDLEtBQUssRUFBRUosZUFBZSwrQkFBK0IsQ0FBQyxFQUNqRUssWUFBWUMsa0JBQVMsQ0FBQ0MsV0FBVyxDQUFDSDtZQUV4QyxPQUFPUCxLQUFLUTtRQUNkO1FBRUEsTUFBTWpCLFVBQVUsSUFBSSxFQUFFLEdBQUc7UUFFekJBLFFBQVFvQixLQUFLLENBQUMsQ0FBQyxXQUFXLEVBQUVSLGVBQWUsMEJBQTBCLENBQUM7UUFFdEUsSUFBSSxDQUFDWCxTQUFTLENBQUNKLElBQUksQ0FBQ1U7UUFFcEIsT0FBT0MsUUFBUUM7SUFDakI7SUFFQVksNkJBQTZCQyxhQUFhLEVBQUU7UUFDMUMsTUFBTXRCLFVBQVUsSUFBSSxDQUFDSSxVQUFVLElBQ3pCbUIsWUFBWXZCLFFBQVFxQiw0QkFBNEIsQ0FBQ0M7UUFFdkQsT0FBT0M7SUFDVDtJQUVBQyxrQ0FBa0NGLGFBQWEsRUFBRTtRQUMvQyxNQUFNdEIsVUFBVSxJQUFJLENBQUNJLFVBQVUsSUFDekJxQixtQkFBbUJ6QixRQUFRd0IsaUNBQWlDLENBQUNGO1FBRW5FLE9BQU9HO0lBQ1Q7SUFFQUMsMkJBQTJCaEIsWUFBWSxFQUFFUCxTQUFTLElBQUksRUFBRTtRQUN0RCxNQUFNRixZQUFZLElBQUksQ0FBQ0MsWUFBWSxDQUFDQyxTQUM5QkksV0FBV04sVUFBVTBCLElBQUksQ0FBQyxDQUFDcEI7WUFDekIsTUFBTXFCLGlDQUFpQ3JCLFNBQVNzQixtQkFBbUIsQ0FBQ25CO1lBRXBFLElBQUlrQixnQ0FBZ0M7Z0JBQ2xDLE9BQU87WUFDVDtRQUNGLE1BQU07UUFFWixPQUFPckI7SUFDVDtJQUVBdUIscUNBQXFDUixhQUFhLEVBQUU7UUFDbEQsTUFBTXRCLFVBQVUsSUFBSSxDQUFDSSxVQUFVLElBQ3pCMkIsb0JBQW9CL0IsUUFBUThCLG9DQUFvQyxDQUFDUjtRQUV2RSxPQUFPUztJQUNUO0lBRUFoQixnQ0FBZ0NMLFlBQVksRUFBRVAsU0FBUyxJQUFJLEVBQUU7UUFDM0QsTUFBTUksV0FBVyxJQUFJLENBQUNtQiwwQkFBMEIsQ0FBQ2hCLGNBQWNQLFNBQ3pEVyxrQkFBbUJQLGFBQWE7UUFFdEMsT0FBT087SUFDVDtJQUVBa0IsMENBQTBDVixhQUFhLEVBQUU7UUFDdkQsTUFBTXRCLFVBQVUsSUFBSSxDQUFDSSxVQUFVLElBQ3pCNkIsMkJBQTJCakMsUUFBUWdDLHlDQUF5QyxDQUFDVjtRQUVuRixPQUFPVztJQUNUO0lBRUEsT0FBT0MsY0FBY2pDLFNBQVMsRUFBRUQsT0FBTyxFQUFFO1FBQ3ZDLE1BQU1tQyxlQUFlcEMsdUJBQU8sQ0FBQ3FDLFdBQVcsQ0FBQ3pDLGNBQWNNLFdBQVdEO1FBRWxFLE9BQU9tQztJQUNUO0FBQ0Y7QUFFTyxTQUFTdkMsc0JBQXNCSSxPQUFPO0lBQzNDLE1BQU1xQyxzQkFBc0IxQyxhQUFhMkMsU0FBUyxDQUFDQyxhQUFhLENBQUN2QztJQUVqRSxPQUFPcUM7QUFDVCJ9
@@ -14,14 +14,21 @@ const _context = require("../../utilities/context");
14
14
  const _verify = require("../../process/verify");
15
15
  const _furtle = require("../../utilities/furtle");
16
16
  const _json = require("../../utilities/json");
17
+ const _procedure = /*#__PURE__*/ _interop_require_default(require("../../element/procedure"));
18
+ function _interop_require_default(obj) {
19
+ return obj && obj.__esModule ? obj : {
20
+ default: obj
21
+ };
22
+ }
17
23
  const { nodesQuery } = _occamquery.queryUtilities;
18
24
  const procedureNodesQuery = nodesQuery("/document/procedure");
19
25
  class FurtleFileContext extends _occamlanguages.FileContext {
20
- constructor(context, fileContent, filePath, tokens, node, json, lexer, parser, procedures){
26
+ constructor(context, fileContent, filePath, tokens, node, json, lexer, parser, procedures, importBindings){
21
27
  super(context, fileContent, filePath, tokens, node, json);
22
28
  this.lexer = lexer;
23
29
  this.parser = parser;
24
30
  this.procedures = procedures;
31
+ this.importBindings = importBindings;
25
32
  }
26
33
  getLexer() {
27
34
  return this.lexer;
@@ -29,6 +36,13 @@ class FurtleFileContext extends _occamlanguages.FileContext {
29
36
  getParser() {
30
37
  return this.parser;
31
38
  }
39
+ getProcedures(includeRelease = true) {
40
+ const procedures = includeRelease ? this.context.getProcedures() : this.procedures;
41
+ return procedures;
42
+ }
43
+ getImportBindings() {
44
+ return this.importBindings;
45
+ }
32
46
  getLabels(includeRelease = true) {
33
47
  const labels = [];
34
48
  return labels;
@@ -85,10 +99,6 @@ class FurtleFileContext extends _occamlanguages.FileContext {
85
99
  const metavariables = [];
86
100
  return metavariables;
87
101
  }
88
- getProcedures(includeRelease = true) {
89
- const procedures = includeRelease ? this.context.getProcedures() : this.procedures;
90
- return procedures;
91
- }
92
102
  getVariables(nested = true) {
93
103
  const variables = [];
94
104
  return variables;
@@ -99,6 +109,12 @@ class FurtleFileContext extends _occamlanguages.FileContext {
99
109
  const filePath = this.getFilePath();
100
110
  this.debug(`Added the '${procedureString}' function to the '${filePath}' file context.`);
101
111
  }
112
+ addImportBinding(importBinding) {
113
+ const importBindingString = importBinding.getString();
114
+ this.importBindings.push(importBinding);
115
+ const filePath = this.getFilePath();
116
+ this.debug(`Added the '${importBindingString}' import binding to the '${filePath}' file context.`);
117
+ }
102
118
  findProcedureNode(label) {
103
119
  const node = this.getNode(), labelNode = label.getNode(), documentNode = node, procedureNodes = procedureNodesQuery(documentNode), procedureNode = procedureNodes.find((procedureNode)=>{
104
120
  const labelMatches = procedureNode.matchLabelNode(labelNode);
@@ -117,10 +133,42 @@ class FurtleFileContext extends _occamlanguages.FileContext {
117
133
  }) || null;
118
134
  return procedure;
119
135
  }
136
+ findImportedProcedureByProcedureName(procedureName) {
137
+ let importedProcedure = null;
138
+ this.importBindings.some((importBinding)=>{
139
+ const lablledProcedureName = procedureName; ///
140
+ const labelledProcedureNameClmpares = importBinding.compareLablledProcedureName(lablledProcedureName);
141
+ if (labelledProcedureNameClmpares) {
142
+ const referencedProcedureName = importBinding.getReferencedProcedureName();
143
+ procedureName = referencedProcedureName; ///
144
+ const procedure = this.findProcedureByProcedureName(procedureName);
145
+ importedProcedure = procedure; ///
146
+ return true;
147
+ }
148
+ });
149
+ return importedProcedure;
150
+ }
151
+ findImportBindingByLabelledProcedureName(labelledProcedureName) {
152
+ const importBinding = this.importBindings.find((importBinding)=>{
153
+ const labelledProcedureNameCompares = importBinding.compareLablledProcedureName(labelledProcedureName);
154
+ if (labelledProcedureNameCompares) {
155
+ return true;
156
+ }
157
+ }) || null;
158
+ return importBinding;
159
+ }
120
160
  isProcedurePresentByProcedureName(procedureName) {
121
161
  const procedure = this.findProcedureByProcedureName(procedureName), procedurePresent = procedure !== null;
122
162
  return procedurePresent;
123
163
  }
164
+ isImportedProcedurePresentByProcedureName(procedureName) {
165
+ const importedProceudre = this.findImportedProcedureByProcedureName(procedureName), importedProceudrePresent = importedProceudre !== null;
166
+ return importedProceudrePresent;
167
+ }
168
+ isImportBindingPresentByLabelledProcedureName(labelledProcedureName) {
169
+ const importBinding = this.findImportBindingByLabelledProcedureName(labelledProcedureName), importBindingPresent = importBinding !== null;
170
+ return importBindingPresent;
171
+ }
124
172
  compareReleaseName(releaseName) {
125
173
  return this.context.compareReleaseName(releaseName);
126
174
  }
@@ -136,6 +184,7 @@ class FurtleFileContext extends _occamlanguages.FileContext {
136
184
  if (json !== null) {
137
185
  const fileContext = this; ///
138
186
  this.procedures = (0, _json.proceduresFromJSON)(json, fileContext);
187
+ this.importBindings = (0, _json.importBindingsFromJSON)(json, fileContext);
139
188
  }
140
189
  }
141
190
  verifyFile(forward, back) {
@@ -146,22 +195,23 @@ class FurtleFileContext extends _occamlanguages.FileContext {
146
195
  }
147
196
  toJSON() {
148
197
  let json;
149
- const filePath = this.getFilePath(), fileContent = this.getFileContent(), proceduresJSON = (0, _json.proceduresToProceduresJSON)(this.procedures), procedures = proceduresJSON; ///
198
+ const filePath = this.getFilePath(), fileContent = this.getFileContent(), proceduresJSON = (0, _json.proceduresToProceduresJSON)(this.procedures), importBindingsJSON = (0, _json.importBindingsToImportBindingsJSON)(this.importBindings), procedures = proceduresJSON, importBindings = importBindingsJSON;
150
199
  json = {
151
200
  filePath,
152
201
  fileContent,
153
- procedures
202
+ procedures,
203
+ importBindings
154
204
  };
155
205
  return json;
156
206
  }
157
207
  static fromFile(file, context) {
158
- const lexer = _furtle.furtleLexer, parser = _furtle.furtleParser, procedures = [], furtleFileContext = _occamlanguages.FileContext.fromFile(FurtleFileContext, file, lexer, parser, procedures, context);
208
+ const lexer = _furtle.furtleLexer, parser = _furtle.furtleParser, procedures = [], importBindings = [], furtleFileContext = _occamlanguages.FileContext.fromFile(FurtleFileContext, file, lexer, parser, procedures, importBindings, context);
159
209
  return furtleFileContext;
160
210
  }
161
211
  static fromJSON(json, context) {
162
- const lexer = _furtle.furtleLexer, parser = _furtle.furtleParser, procedures = null, furtleFileContext = _occamlanguages.FileContext.fromJSON(FurtleFileContext, json, lexer, parser, procedures, context);
212
+ const lexer = _furtle.furtleLexer, parser = _furtle.furtleParser, procedures = null, importBindings = null, furtleFileContext = _occamlanguages.FileContext.fromJSON(FurtleFileContext, json, lexer, parser, procedures, importBindings, context);
163
213
  return furtleFileContext;
164
214
  }
165
215
  }
166
216
 
167
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb250ZXh0L2ZpbGUvZnVydGxlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBGaWxlQ29udGV4dCB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcbmltcG9ydCB7IHF1ZXJ5VXRpbGl0aWVzIH0gZnJvbSBcIm9jY2FtLXF1ZXJ5XCI7XG5cbmltcG9ydCB7IGlzb2xhdGUgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL2NvbnRleHRcIjtcbmltcG9ydCB7IHZlcmlmeUZpbGUgfSBmcm9tIFwiLi4vLi4vcHJvY2Vzcy92ZXJpZnlcIjtcbmltcG9ydCB7IGZ1cnRsZUxleGVyLCBmdXJ0bGVQYXJzZXIgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL2Z1cnRsZVwiO1xuaW1wb3J0IHsgcHJvY2VkdXJlc0Zyb21KU09OLCBwcm9jZWR1cmVzVG9Qcm9jZWR1cmVzSlNPTiB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvanNvblwiO1xuXG5jb25zdCB7IG5vZGVzUXVlcnkgfSA9IHF1ZXJ5VXRpbGl0aWVzO1xuXG5jb25zdCBwcm9jZWR1cmVOb2Rlc1F1ZXJ5ID0gbm9kZXNRdWVyeShcIi9kb2N1bWVudC9wcm9jZWR1cmVcIik7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEZ1cnRsZUZpbGVDb250ZXh0IGV4dGVuZHMgRmlsZUNvbnRleHQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBmaWxlQ29udGVudCwgZmlsZVBhdGgsIHRva2Vucywgbm9kZSwganNvbiwgbGV4ZXIsIHBhcnNlciwgcHJvY2VkdXJlcykge1xuICAgIHN1cGVyKGNvbnRleHQsIGZpbGVDb250ZW50LCBmaWxlUGF0aCwgdG9rZW5zLCBub2RlLCBqc29uKTtcblxuICAgIHRoaXMubGV4ZXIgPSBsZXhlcjtcbiAgICB0aGlzLnBhcnNlciA9IHBhcnNlcjtcbiAgICB0aGlzLnByb2NlZHVyZXMgPSBwcm9jZWR1cmVzO1xuICB9XG5cbiAgZ2V0TGV4ZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMubGV4ZXI7XG4gIH1cblxuICBnZXRQYXJzZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMucGFyc2VyO1xuICB9XG5cbiAgZ2V0TGFiZWxzKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IGxhYmVscyA9IFtdO1xuXG4gICAgcmV0dXJuIGxhYmVscztcbiAgfVxuXG4gIGdldFR5cGVzKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IHR5cGVzID0gW107XG5cbiAgICByZXR1cm4gdHlwZXM7XG4gIH1cblxuICBnZXRSdWxlcyhpbmNsdWRlUmVsZWFzZSA9IHRydWUpIHtcbiAgICBjb25zdCBydWxlcyA9IFtdXG5cbiAgICByZXR1cm4gcnVsZXM7XG4gIH1cblxuICBnZXRBeGlvbXMoaW5jbHVkZVJlbGVhc2UgPSB0cnVlKSB7XG4gICAgY29uc3QgYXhpb21zID0gW107XG5cbiAgICByZXR1cm4gYXhpb21zO1xuICB9XG5cbiAgZ2V0TGVtbWFzKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IGxlbW1hcyA9IFtdO1xuXG4gICAgcmV0dXJuIGxlbW1hcztcbiAgfVxuXG4gIGdldFRoZW9yZW1zKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IHRoZW9yZW1zID0gW107XG5cbiAgICByZXR1cm4gdGhlb3JlbXM7XG4gIH1cblxuICBnZXRNZXRhTGVtbWFzKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IG1ldGFMZW1tYXMgPSBbXTtcblxuICAgIHJldHVybiBtZXRhTGVtbWFzO1xuICB9XG5cbiAgZ2V0R2VuZXJhdG9ycyhpbmNsdWRlUmVsZWFzZSA9IHRydWUpIHtcbiAgICBjb25zdCBnZW5lcmF0b3JzID0gW107XG5cbiAgICByZXR1cm4gZ2VuZXJhdG9ycztcbiAgfVxuXG4gIGdldENvbmplY3R1cmVzKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IGNvbmplY3R1cmVzID0gW107XG5cbiAgICByZXR1cm4gY29uamVjdHVyZXM7XG4gIH1cblxuICBnZXRDb21iaW5hdG9ycyhpbmNsdWRlUmVsZWFzZSA9IHRydWUpIHtcbiAgICBjb25zdCBjb21iaW5hdG9ycyA9IFtdO1xuXG4gICAgcmV0dXJuIGNvbWJpbmF0b3JzO1xuICB9XG5cbiAgZ2V0VHlwZVByZWZpeGVzKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IHR5cGVQcmVmaXhlcyA9IFtdO1xuXG4gICAgcmV0dXJuIHR5cGVQcmVmaXhlcztcbiAgfVxuXG4gIGdldENvbnN0cnVjdG9ycyhpbmNsdWRlUmVsZWFzZSA9IHRydWUpIHtcbiAgICBjb25zdCBjb25zdHJ1Y3RvcnMgPSBbXTtcblxuICAgIHJldHVybiBjb25zdHJ1Y3RvcnM7XG4gIH1cblxuICBnZXRNZXRhdGhlb3JlbXMoaW5jbHVkZVJlbGVhc2UgPSB0cnVlKSB7XG4gICAgY29uc3QgbWV0YXRoZW9yZW1zID0gW107XG5cbiAgICByZXR1cm4gbWV0YXRoZW9yZW1zO1xuICB9XG5cbiAgZ2V0TWV0YXZhcmlhYmxlcyhpbmNsdWRlUmVsZWFzZSA9IHRydWUpIHtcbiAgICBjb25zdCBtZXRhdmFyaWFibGVzID0gW107XG5cbiAgICByZXR1cm4gbWV0YXZhcmlhYmxlcztcbiAgfVxuXG4gIGdldFByb2NlZHVyZXMoaW5jbHVkZVJlbGVhc2UgPSB0cnVlKSB7XG4gICAgY29uc3QgcHJvY2VkdXJlcyA9IGluY2x1ZGVSZWxlYXNlID9cbiAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRleHQuZ2V0UHJvY2VkdXJlcygpIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvY2VkdXJlcztcblxuICAgIHJldHVybiBwcm9jZWR1cmVzO1xuICB9XG5cbiAgZ2V0VmFyaWFibGVzKG5lc3RlZCA9IHRydWUpIHtcbiAgICBjb25zdCB2YXJpYWJsZXMgPSBbXTtcblxuICAgIHJldHVybiB2YXJpYWJsZXM7XG4gIH1cblxuICBhZGRQcm9jZWR1cmUocHJvY2VkdXJlKSB7XG4gICAgY29uc3QgcHJvY2VkdXJlU3RyaW5nID0gcHJvY2VkdXJlLmdldFN0cmluZygpO1xuXG4gICAgdGhpcy5wcm9jZWR1cmVzLnB1c2gocHJvY2VkdXJlKTtcblxuICAgIGNvbnN0IGZpbGVQYXRoID0gdGhpcy5nZXRGaWxlUGF0aCgpO1xuXG4gICAgdGhpcy5kZWJ1ZyhgQWRkZWQgdGhlICcke3Byb2NlZHVyZVN0cmluZ30nIGZ1bmN0aW9uIHRvIHRoZSAnJHtmaWxlUGF0aH0nIGZpbGUgY29udGV4dC5gKTtcbiAgfVxuXG4gIGZpbmRQcm9jZWR1cmVOb2RlKGxhYmVsKSB7XG4gICAgY29uc3Qgbm9kZSA9IHRoaXMuZ2V0Tm9kZSgpLFxuICAgICAgICAgIGxhYmVsTm9kZSA9IGxhYmVsLmdldE5vZGUoKSxcbiAgICAgICAgICBkb2N1bWVudE5vZGUgPSBub2RlLCAgLy8vXG4gICAgICAgICAgcHJvY2VkdXJlTm9kZXMgPSBwcm9jZWR1cmVOb2Rlc1F1ZXJ5KGRvY3VtZW50Tm9kZSksXG4gICAgICAgICAgcHJvY2VkdXJlTm9kZSA9IHByb2NlZHVyZU5vZGVzLmZpbmQoKHByb2NlZHVyZU5vZGUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGxhYmVsTWF0Y2hlcyA9IHByb2NlZHVyZU5vZGUubWF0Y2hMYWJlbE5vZGUobGFiZWxOb2RlKTtcblxuICAgICAgICAgICAgaWYgKGxhYmVsTWF0Y2hlcykge1xuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KSB8fCBudWxsO1xuXG4gICAgcmV0dXJuIHByb2NlZHVyZU5vZGU7XG4gIH1cblxuICBmaW5kUHJvY2VkdXJlQnlQcm9jZWR1cmVOYW1lKHByb2NlZHVyZU5hbWUpIHtcbiAgICBjb25zdCBwcm9jZWR1cmVzID0gdGhpcy5nZXRQcm9jZWR1cmVzKCksXG4gICAgICAgICAgcHJvY2VkdXJlID0gcHJvY2VkdXJlcy5maW5kKChwcm9jZWR1cmUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHByb2NlZHVyZUNvbXBhcmVzVG9Qcm9jZWR1cmVOYW1lID0gcHJvY2VkdXJlLmNvbXBhcmVQcm9jZWR1cmVOYW1lKHByb2NlZHVyZU5hbWUpO1xuXG4gICAgICAgICAgICBpZiAocHJvY2VkdXJlQ29tcGFyZXNUb1Byb2NlZHVyZU5hbWUpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSkgfHwgbnVsbDtcblxuICAgIHJldHVybiBwcm9jZWR1cmU7XG4gIH1cblxuICBpc1Byb2NlZHVyZVByZXNlbnRCeVByb2NlZHVyZU5hbWUocHJvY2VkdXJlTmFtZSkge1xuICAgIGNvbnN0IHByb2NlZHVyZSA9IHRoaXMuZmluZFByb2NlZHVyZUJ5UHJvY2VkdXJlTmFtZShwcm9jZWR1cmVOYW1lKSxcbiAgICAgICAgICBwcm9jZWR1cmVQcmVzZW50ID0gKHByb2NlZHVyZSAhPT0gbnVsbCk7XG5cbiAgICByZXR1cm4gcHJvY2VkdXJlUHJlc2VudDtcbiAgfVxuXG4gIGNvbXBhcmVSZWxlYXNlTmFtZShyZWxlYXNlTmFtZSkgeyByZXR1cm4gdGhpcy5jb250ZXh0LmNvbXBhcmVSZWxlYXNlTmFtZShyZWxlYXNlTmFtZSk7IH1cblxuICBjbGVhcigpIHtcbiAgICB0aGlzLnByb2NlZHVyZXMgPSBbXTtcbiAgfVxuXG4gIGNvbXBsZXRlKCkge1xuICAgIC8vL1xuICB9XG5cbiAgaW5pdGlhbGlzZSgpIHtcbiAgICBzdXBlci5pbml0aWFsaXNlKCk7IC8vL1xuXG4gICAgY29uc3QganNvbiA9IHRoaXMuZ2V0SlNPTigpO1xuXG4gICAgaWYgKGpzb24gIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IGZpbGVDb250ZXh0ID0gdGhpczsgLy8vXG5cbiAgICAgIHRoaXMucHJvY2VkdXJlcyA9IHByb2NlZHVyZXNGcm9tSlNPTihqc29uLCBmaWxlQ29udGV4dCk7XG4gICAgfVxuICB9XG5cbiAgdmVyaWZ5RmlsZShmb3J3YXJkLCBiYWNrKSB7XG4gICAgcmV0dXJuIGlzb2xhdGUoKGZvcndhcmQsIGJhY2spID0+IHtcbiAgICAgIGNvbnN0IG5vZGUgPSB0aGlzLmdldE5vZGUoKSxcbiAgICAgICAgICAgIGNvbnRleHQgPSB0aGlzLCAvLy9cbiAgICAgICAgICAgIGZpbGVOb2RlID0gbm9kZTsgIC8vL1xuXG4gICAgICByZXR1cm4gdmVyaWZ5RmlsZShmaWxlTm9kZSwgY29udGV4dCwgZm9yd2FyZCwgYmFjayk7XG4gICAgfSwgZm9yd2FyZCwgYmFjayk7XG4gIH1cblxuICB0b0pTT04oKSB7XG4gICAgbGV0IGpzb247XG5cbiAgICBjb25zdCBmaWxlUGF0aCA9IHRoaXMuZ2V0RmlsZVBhdGgoKSxcbiAgICAgICAgICBmaWxlQ29udGVudCA9IHRoaXMuZ2V0RmlsZUNvbnRlbnQoKSxcbiAgICAgICAgICBwcm9jZWR1cmVzSlNPTiA9IHByb2NlZHVyZXNUb1Byb2NlZHVyZXNKU09OKHRoaXMucHJvY2VkdXJlcyksXG4gICAgICAgICAgcHJvY2VkdXJlcyA9IHByb2NlZHVyZXNKU09OOyAgLy8vXG5cbiAgICBqc29uID0ge1xuICAgICAgZmlsZVBhdGgsXG4gICAgICBmaWxlQ29udGVudCxcbiAgICAgIHByb2NlZHVyZXNcbiAgICB9O1xuXG4gICAgcmV0dXJuIGpzb247XG4gIH1cblxuICBzdGF0aWMgZnJvbUZpbGUoZmlsZSwgY29udGV4dCkge1xuICAgIGNvbnN0IGxleGVyID0gZnVydGxlTGV4ZXIsICAvLy9cbiAgICAgICAgICBwYXJzZXIgPSBmdXJ0bGVQYXJzZXIsICAvLy9cbiAgICAgICAgICBwcm9jZWR1cmVzID0gW10sXG4gICAgICAgICAgZnVydGxlRmlsZUNvbnRleHQgPSBGaWxlQ29udGV4dC5mcm9tRmlsZShGdXJ0bGVGaWxlQ29udGV4dCwgZmlsZSwgbGV4ZXIsIHBhcnNlciwgcHJvY2VkdXJlcywgY29udGV4dCk7XG5cbiAgICByZXR1cm4gZnVydGxlRmlsZUNvbnRleHQ7XG4gIH1cblxuICBzdGF0aWMgZnJvbUpTT04oanNvbiwgY29udGV4dCkge1xuICAgIGNvbnN0IGxleGVyID0gZnVydGxlTGV4ZXIsICAvLy9cbiAgICAgICAgICBwYXJzZXIgPSBmdXJ0bGVQYXJzZXIsICAvLy9cbiAgICAgICAgICBwcm9jZWR1cmVzID0gbnVsbCxcbiAgICAgICAgICBmdXJ0bGVGaWxlQ29udGV4dCA9IEZpbGVDb250ZXh0LmZyb21KU09OKEZ1cnRsZUZpbGVDb250ZXh0LCBqc29uLCBsZXhlciwgcGFyc2VyLCBwcm9jZWR1cmVzLCBjb250ZXh0KTtcblxuICAgIHJldHVybiBmdXJ0bGVGaWxlQ29udGV4dDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIkZ1cnRsZUZpbGVDb250ZXh0Iiwibm9kZXNRdWVyeSIsInF1ZXJ5VXRpbGl0aWVzIiwicHJvY2VkdXJlTm9kZXNRdWVyeSIsIkZpbGVDb250ZXh0IiwiY29udGV4dCIsImZpbGVDb250ZW50IiwiZmlsZVBhdGgiLCJ0b2tlbnMiLCJub2RlIiwianNvbiIsImxleGVyIiwicGFyc2VyIiwicHJvY2VkdXJlcyIsImdldExleGVyIiwiZ2V0UGFyc2VyIiwiZ2V0TGFiZWxzIiwiaW5jbHVkZVJlbGVhc2UiLCJsYWJlbHMiLCJnZXRUeXBlcyIsInR5cGVzIiwiZ2V0UnVsZXMiLCJydWxlcyIsImdldEF4aW9tcyIsImF4aW9tcyIsImdldExlbW1hcyIsImxlbW1hcyIsImdldFRoZW9yZW1zIiwidGhlb3JlbXMiLCJnZXRNZXRhTGVtbWFzIiwibWV0YUxlbW1hcyIsImdldEdlbmVyYXRvcnMiLCJnZW5lcmF0b3JzIiwiZ2V0Q29uamVjdHVyZXMiLCJjb25qZWN0dXJlcyIsImdldENvbWJpbmF0b3JzIiwiY29tYmluYXRvcnMiLCJnZXRUeXBlUHJlZml4ZXMiLCJ0eXBlUHJlZml4ZXMiLCJnZXRDb25zdHJ1Y3RvcnMiLCJjb25zdHJ1Y3RvcnMiLCJnZXRNZXRhdGhlb3JlbXMiLCJtZXRhdGhlb3JlbXMiLCJnZXRNZXRhdmFyaWFibGVzIiwibWV0YXZhcmlhYmxlcyIsImdldFByb2NlZHVyZXMiLCJnZXRWYXJpYWJsZXMiLCJuZXN0ZWQiLCJ2YXJpYWJsZXMiLCJhZGRQcm9jZWR1cmUiLCJwcm9jZWR1cmUiLCJwcm9jZWR1cmVTdHJpbmciLCJnZXRTdHJpbmciLCJwdXNoIiwiZ2V0RmlsZVBhdGgiLCJkZWJ1ZyIsImZpbmRQcm9jZWR1cmVOb2RlIiwibGFiZWwiLCJnZXROb2RlIiwibGFiZWxOb2RlIiwiZG9jdW1lbnROb2RlIiwicHJvY2VkdXJlTm9kZXMiLCJwcm9jZWR1cmVOb2RlIiwiZmluZCIsImxhYmVsTWF0Y2hlcyIsIm1hdGNoTGFiZWxOb2RlIiwiZmluZFByb2NlZHVyZUJ5UHJvY2VkdXJlTmFtZSIsInByb2NlZHVyZU5hbWUiLCJwcm9jZWR1cmVDb21wYXJlc1RvUHJvY2VkdXJlTmFtZSIsImNvbXBhcmVQcm9jZWR1cmVOYW1lIiwiaXNQcm9jZWR1cmVQcmVzZW50QnlQcm9jZWR1cmVOYW1lIiwicHJvY2VkdXJlUHJlc2VudCIsImNvbXBhcmVSZWxlYXNlTmFtZSIsInJlbGVhc2VOYW1lIiwiY2xlYXIiLCJjb21wbGV0ZSIsImluaXRpYWxpc2UiLCJnZXRKU09OIiwiZmlsZUNvbnRleHQiLCJwcm9jZWR1cmVzRnJvbUpTT04iLCJ2ZXJpZnlGaWxlIiwiZm9yd2FyZCIsImJhY2siLCJpc29sYXRlIiwiZmlsZU5vZGUiLCJ0b0pTT04iLCJnZXRGaWxlQ29udGVudCIsInByb2NlZHVyZXNKU09OIiwicHJvY2VkdXJlc1RvUHJvY2VkdXJlc0pTT04iLCJmcm9tRmlsZSIsImZpbGUiLCJmdXJ0bGVMZXhlciIsImZ1cnRsZVBhcnNlciIsImZ1cnRsZUZpbGVDb250ZXh0IiwiZnJvbUpTT04iXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQWNBOzs7ZUFBcUJBOzs7Z0NBWk87NEJBQ0c7eUJBRVA7d0JBQ0c7d0JBQ2U7c0JBQ3FCO0FBRS9ELE1BQU0sRUFBRUMsVUFBVSxFQUFFLEdBQUdDLDBCQUFjO0FBRXJDLE1BQU1DLHNCQUFzQkYsV0FBVztBQUV4QixNQUFNRCwwQkFB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
217
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb250ZXh0L2ZpbGUvZnVydGxlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBGaWxlQ29udGV4dCB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcbmltcG9ydCB7IHF1ZXJ5VXRpbGl0aWVzIH0gZnJvbSBcIm9jY2FtLXF1ZXJ5XCI7XG5cbmltcG9ydCB7IGlzb2xhdGUgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL2NvbnRleHRcIjtcbmltcG9ydCB7IHZlcmlmeUZpbGUgfSBmcm9tIFwiLi4vLi4vcHJvY2Vzcy92ZXJpZnlcIjtcbmltcG9ydCB7IGZ1cnRsZUxleGVyLCBmdXJ0bGVQYXJzZXIgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL2Z1cnRsZVwiO1xuaW1wb3J0IHtcbiAgcHJvY2VkdXJlc0Zyb21KU09OLFxuICBpbXBvcnRCaW5kaW5nc0Zyb21KU09OLFxuICBwcm9jZWR1cmVzVG9Qcm9jZWR1cmVzSlNPTixcbiAgaW1wb3J0QmluZGluZ3NUb0ltcG9ydEJpbmRpbmdzSlNPTlxufSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL2pzb25cIjtcbmltcG9ydCBwcm9jZWR1cmUgZnJvbSBcIi4uLy4uL2VsZW1lbnQvcHJvY2VkdXJlXCI7XG5cbmNvbnN0IHsgbm9kZXNRdWVyeSB9ID0gcXVlcnlVdGlsaXRpZXM7XG5cbmNvbnN0IHByb2NlZHVyZU5vZGVzUXVlcnkgPSBub2Rlc1F1ZXJ5KFwiL2RvY3VtZW50L3Byb2NlZHVyZVwiKTtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRnVydGxlRmlsZUNvbnRleHQgZXh0ZW5kcyBGaWxlQ29udGV4dCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIGZpbGVDb250ZW50LCBmaWxlUGF0aCwgdG9rZW5zLCBub2RlLCBqc29uLCBsZXhlciwgcGFyc2VyLCBwcm9jZWR1cmVzLCBpbXBvcnRCaW5kaW5ncykge1xuICAgIHN1cGVyKGNvbnRleHQsIGZpbGVDb250ZW50LCBmaWxlUGF0aCwgdG9rZW5zLCBub2RlLCBqc29uKTtcblxuICAgIHRoaXMubGV4ZXIgPSBsZXhlcjtcbiAgICB0aGlzLnBhcnNlciA9IHBhcnNlcjtcbiAgICB0aGlzLnByb2NlZHVyZXMgPSBwcm9jZWR1cmVzO1xuICAgIHRoaXMuaW1wb3J0QmluZGluZ3MgPSBpbXBvcnRCaW5kaW5ncztcbiAgfVxuXG4gIGdldExleGVyKCkge1xuICAgIHJldHVybiB0aGlzLmxleGVyO1xuICB9XG5cbiAgZ2V0UGFyc2VyKCkge1xuICAgIHJldHVybiB0aGlzLnBhcnNlcjtcbiAgfVxuXG4gIGdldFByb2NlZHVyZXMoaW5jbHVkZVJlbGVhc2UgPSB0cnVlKSB7XG4gICAgY29uc3QgcHJvY2VkdXJlcyA9IGluY2x1ZGVSZWxlYXNlID9cbiAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRleHQuZ2V0UHJvY2VkdXJlcygpIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvY2VkdXJlcztcblxuICAgIHJldHVybiBwcm9jZWR1cmVzO1xuICB9XG5cbiAgZ2V0SW1wb3J0QmluZGluZ3MoKSB7XG4gICAgcmV0dXJuIHRoaXMuaW1wb3J0QmluZGluZ3M7XG4gIH1cblxuICBnZXRMYWJlbHMoaW5jbHVkZVJlbGVhc2UgPSB0cnVlKSB7XG4gICAgY29uc3QgbGFiZWxzID0gW107XG5cbiAgICByZXR1cm4gbGFiZWxzO1xuICB9XG5cbiAgZ2V0VHlwZXMoaW5jbHVkZVJlbGVhc2UgPSB0cnVlKSB7XG4gICAgY29uc3QgdHlwZXMgPSBbXTtcblxuICAgIHJldHVybiB0eXBlcztcbiAgfVxuXG4gIGdldFJ1bGVzKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IHJ1bGVzID0gW11cblxuICAgIHJldHVybiBydWxlcztcbiAgfVxuXG4gIGdldEF4aW9tcyhpbmNsdWRlUmVsZWFzZSA9IHRydWUpIHtcbiAgICBjb25zdCBheGlvbXMgPSBbXTtcblxuICAgIHJldHVybiBheGlvbXM7XG4gIH1cblxuICBnZXRMZW1tYXMoaW5jbHVkZVJlbGVhc2UgPSB0cnVlKSB7XG4gICAgY29uc3QgbGVtbWFzID0gW107XG5cbiAgICByZXR1cm4gbGVtbWFzO1xuICB9XG5cbiAgZ2V0VGhlb3JlbXMoaW5jbHVkZVJlbGVhc2UgPSB0cnVlKSB7XG4gICAgY29uc3QgdGhlb3JlbXMgPSBbXTtcblxuICAgIHJldHVybiB0aGVvcmVtcztcbiAgfVxuXG4gIGdldE1ldGFMZW1tYXMoaW5jbHVkZVJlbGVhc2UgPSB0cnVlKSB7XG4gICAgY29uc3QgbWV0YUxlbW1hcyA9IFtdO1xuXG4gICAgcmV0dXJuIG1ldGFMZW1tYXM7XG4gIH1cblxuICBnZXRHZW5lcmF0b3JzKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IGdlbmVyYXRvcnMgPSBbXTtcblxuICAgIHJldHVybiBnZW5lcmF0b3JzO1xuICB9XG5cbiAgZ2V0Q29uamVjdHVyZXMoaW5jbHVkZVJlbGVhc2UgPSB0cnVlKSB7XG4gICAgY29uc3QgY29uamVjdHVyZXMgPSBbXTtcblxuICAgIHJldHVybiBjb25qZWN0dXJlcztcbiAgfVxuXG4gIGdldENvbWJpbmF0b3JzKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IGNvbWJpbmF0b3JzID0gW107XG5cbiAgICByZXR1cm4gY29tYmluYXRvcnM7XG4gIH1cblxuICBnZXRUeXBlUHJlZml4ZXMoaW5jbHVkZVJlbGVhc2UgPSB0cnVlKSB7XG4gICAgY29uc3QgdHlwZVByZWZpeGVzID0gW107XG5cbiAgICByZXR1cm4gdHlwZVByZWZpeGVzO1xuICB9XG5cbiAgZ2V0Q29uc3RydWN0b3JzKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IGNvbnN0cnVjdG9ycyA9IFtdO1xuXG4gICAgcmV0dXJuIGNvbnN0cnVjdG9ycztcbiAgfVxuXG4gIGdldE1ldGF0aGVvcmVtcyhpbmNsdWRlUmVsZWFzZSA9IHRydWUpIHtcbiAgICBjb25zdCBtZXRhdGhlb3JlbXMgPSBbXTtcblxuICAgIHJldHVybiBtZXRhdGhlb3JlbXM7XG4gIH1cblxuICBnZXRNZXRhdmFyaWFibGVzKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IG1ldGF2YXJpYWJsZXMgPSBbXTtcblxuICAgIHJldHVybiBtZXRhdmFyaWFibGVzO1xuICB9XG5cbiAgZ2V0VmFyaWFibGVzKG5lc3RlZCA9IHRydWUpIHtcbiAgICBjb25zdCB2YXJpYWJsZXMgPSBbXTtcblxuICAgIHJldHVybiB2YXJpYWJsZXM7XG4gIH1cblxuICBhZGRQcm9jZWR1cmUocHJvY2VkdXJlKSB7XG4gICAgY29uc3QgcHJvY2VkdXJlU3RyaW5nID0gcHJvY2VkdXJlLmdldFN0cmluZygpO1xuXG4gICAgdGhpcy5wcm9jZWR1cmVzLnB1c2gocHJvY2VkdXJlKTtcblxuICAgIGNvbnN0IGZpbGVQYXRoID0gdGhpcy5nZXRGaWxlUGF0aCgpO1xuXG4gICAgdGhpcy5kZWJ1ZyhgQWRkZWQgdGhlICcke3Byb2NlZHVyZVN0cmluZ30nIGZ1bmN0aW9uIHRvIHRoZSAnJHtmaWxlUGF0aH0nIGZpbGUgY29udGV4dC5gKTtcbiAgfVxuXG4gIGFkZEltcG9ydEJpbmRpbmcoaW1wb3J0QmluZGluZykge1xuICAgIGNvbnN0IGltcG9ydEJpbmRpbmdTdHJpbmcgPSBpbXBvcnRCaW5kaW5nLmdldFN0cmluZygpO1xuXG4gICAgdGhpcy5pbXBvcnRCaW5kaW5ncy5wdXNoKGltcG9ydEJpbmRpbmcpO1xuXG4gICAgY29uc3QgZmlsZVBhdGggPSB0aGlzLmdldEZpbGVQYXRoKCk7XG5cbiAgICB0aGlzLmRlYnVnKGBBZGRlZCB0aGUgJyR7aW1wb3J0QmluZGluZ1N0cmluZ30nIGltcG9ydCBiaW5kaW5nIHRvIHRoZSAnJHtmaWxlUGF0aH0nIGZpbGUgY29udGV4dC5gKTtcbiAgfVxuXG4gIGZpbmRQcm9jZWR1cmVOb2RlKGxhYmVsKSB7XG4gICAgY29uc3Qgbm9kZSA9IHRoaXMuZ2V0Tm9kZSgpLFxuICAgICAgICAgIGxhYmVsTm9kZSA9IGxhYmVsLmdldE5vZGUoKSxcbiAgICAgICAgICBkb2N1bWVudE5vZGUgPSBub2RlLCAgLy8vXG4gICAgICAgICAgcHJvY2VkdXJlTm9kZXMgPSBwcm9jZWR1cmVOb2Rlc1F1ZXJ5KGRvY3VtZW50Tm9kZSksXG4gICAgICAgICAgcHJvY2VkdXJlTm9kZSA9IHByb2NlZHVyZU5vZGVzLmZpbmQoKHByb2NlZHVyZU5vZGUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGxhYmVsTWF0Y2hlcyA9IHByb2NlZHVyZU5vZGUubWF0Y2hMYWJlbE5vZGUobGFiZWxOb2RlKTtcblxuICAgICAgICAgICAgaWYgKGxhYmVsTWF0Y2hlcykge1xuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KSB8fCBudWxsO1xuXG4gICAgcmV0dXJuIHByb2NlZHVyZU5vZGU7XG4gIH1cblxuICBmaW5kUHJvY2VkdXJlQnlQcm9jZWR1cmVOYW1lKHByb2NlZHVyZU5hbWUpIHtcbiAgICBjb25zdCBwcm9jZWR1cmVzID0gdGhpcy5nZXRQcm9jZWR1cmVzKCksXG4gICAgICAgICAgcHJvY2VkdXJlID0gcHJvY2VkdXJlcy5maW5kKChwcm9jZWR1cmUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHByb2NlZHVyZUNvbXBhcmVzVG9Qcm9jZWR1cmVOYW1lID0gcHJvY2VkdXJlLmNvbXBhcmVQcm9jZWR1cmVOYW1lKHByb2NlZHVyZU5hbWUpO1xuXG4gICAgICAgICAgICBpZiAocHJvY2VkdXJlQ29tcGFyZXNUb1Byb2NlZHVyZU5hbWUpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSkgfHwgbnVsbDtcblxuICAgIHJldHVybiBwcm9jZWR1cmU7XG4gIH1cblxuICBmaW5kSW1wb3J0ZWRQcm9jZWR1cmVCeVByb2NlZHVyZU5hbWUocHJvY2VkdXJlTmFtZSkge1xuICAgIGxldCBpbXBvcnRlZFByb2NlZHVyZSA9IG51bGw7XG5cbiAgICB0aGlzLmltcG9ydEJpbmRpbmdzLnNvbWUoKGltcG9ydEJpbmRpbmcpID0+IHtcbiAgICAgIGNvbnN0IGxhYmxsZWRQcm9jZWR1cmVOYW1lID0gcHJvY2VkdXJlTmFtZTsgLy8vXG5cbiAgICAgIGNvbnN0IGxhYmVsbGVkUHJvY2VkdXJlTmFtZUNsbXBhcmVzID0gaW1wb3J0QmluZGluZy5jb21wYXJlTGFibGxlZFByb2NlZHVyZU5hbWUobGFibGxlZFByb2NlZHVyZU5hbWUpO1xuXG4gICAgICBpZiAobGFiZWxsZWRQcm9jZWR1cmVOYW1lQ2xtcGFyZXMpIHtcbiAgICAgICAgY29uc3QgcmVmZXJlbmNlZFByb2NlZHVyZU5hbWUgPSBpbXBvcnRCaW5kaW5nLmdldFJlZmVyZW5jZWRQcm9jZWR1cmVOYW1lKCk7XG5cbiAgICAgICAgcHJvY2VkdXJlTmFtZSA9IHJlZmVyZW5jZWRQcm9jZWR1cmVOYW1lOyAgLy8vXG5cbiAgICAgICAgY29uc3QgcHJvY2VkdXJlID0gdGhpcy5maW5kUHJvY2VkdXJlQnlQcm9jZWR1cmVOYW1lKHByb2NlZHVyZU5hbWUpO1xuXG4gICAgICAgIGltcG9ydGVkUHJvY2VkdXJlID0gcHJvY2VkdXJlOyAgLy8vXG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gaW1wb3J0ZWRQcm9jZWR1cmU7XG4gIH1cblxuICBmaW5kSW1wb3J0QmluZGluZ0J5TGFiZWxsZWRQcm9jZWR1cmVOYW1lKGxhYmVsbGVkUHJvY2VkdXJlTmFtZSkge1xuICAgIGNvbnN0IGltcG9ydEJpbmRpbmcgPSB0aGlzLmltcG9ydEJpbmRpbmdzLmZpbmQoKGltcG9ydEJpbmRpbmcpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGxhYmVsbGVkUHJvY2VkdXJlTmFtZUNvbXBhcmVzID0gaW1wb3J0QmluZGluZy5jb21wYXJlTGFibGxlZFByb2NlZHVyZU5hbWUobGFiZWxsZWRQcm9jZWR1cmVOYW1lKTtcblxuICAgICAgICAgICAgaWYgKGxhYmVsbGVkUHJvY2VkdXJlTmFtZUNvbXBhcmVzKSB7XG4gICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pIHx8IG51bGw7XG5cbiAgICByZXR1cm4gaW1wb3J0QmluZGluZztcbiAgfVxuXG4gIGlzUHJvY2VkdXJlUHJlc2VudEJ5UHJvY2VkdXJlTmFtZShwcm9jZWR1cmVOYW1lKSB7XG4gICAgY29uc3QgcHJvY2VkdXJlID0gdGhpcy5maW5kUHJvY2VkdXJlQnlQcm9jZWR1cmVOYW1lKHByb2NlZHVyZU5hbWUpLFxuICAgICAgICAgIHByb2NlZHVyZVByZXNlbnQgPSAocHJvY2VkdXJlICE9PSBudWxsKTtcblxuICAgIHJldHVybiBwcm9jZWR1cmVQcmVzZW50O1xuICB9XG5cbiAgaXNJbXBvcnRlZFByb2NlZHVyZVByZXNlbnRCeVByb2NlZHVyZU5hbWUocHJvY2VkdXJlTmFtZSkge1xuICAgIGNvbnN0IGltcG9ydGVkUHJvY2V1ZHJlID0gdGhpcy5maW5kSW1wb3J0ZWRQcm9jZWR1cmVCeVByb2NlZHVyZU5hbWUocHJvY2VkdXJlTmFtZSksXG4gICAgICAgICAgaW1wb3J0ZWRQcm9jZXVkcmVQcmVzZW50ID0gKGltcG9ydGVkUHJvY2V1ZHJlICE9PSBudWxsKTtcblxuICAgIHJldHVybiBpbXBvcnRlZFByb2NldWRyZVByZXNlbnQ7XG4gIH1cblxuICBpc0ltcG9ydEJpbmRpbmdQcmVzZW50QnlMYWJlbGxlZFByb2NlZHVyZU5hbWUobGFiZWxsZWRQcm9jZWR1cmVOYW1lKSB7XG4gICAgY29uc3QgaW1wb3J0QmluZGluZyA9IHRoaXMuZmluZEltcG9ydEJpbmRpbmdCeUxhYmVsbGVkUHJvY2VkdXJlTmFtZShsYWJlbGxlZFByb2NlZHVyZU5hbWUpLFxuICAgICAgICAgIGltcG9ydEJpbmRpbmdQcmVzZW50ID0gKGltcG9ydEJpbmRpbmcgIT09IG51bGwpO1xuXG4gICAgcmV0dXJuIGltcG9ydEJpbmRpbmdQcmVzZW50O1xuICB9XG5cbiAgY29tcGFyZVJlbGVhc2VOYW1lKHJlbGVhc2VOYW1lKSB7IHJldHVybiB0aGlzLmNvbnRleHQuY29tcGFyZVJlbGVhc2VOYW1lKHJlbGVhc2VOYW1lKTsgfVxuXG4gIGNsZWFyKCkge1xuICAgIHRoaXMucHJvY2VkdXJlcyA9IFtdO1xuICB9XG5cbiAgY29tcGxldGUoKSB7XG4gICAgLy8vXG4gIH1cblxuICBpbml0aWFsaXNlKCkge1xuICAgIHN1cGVyLmluaXRpYWxpc2UoKTsgLy8vXG5cbiAgICBjb25zdCBqc29uID0gdGhpcy5nZXRKU09OKCk7XG5cbiAgICBpZiAoanNvbiAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgZmlsZUNvbnRleHQgPSB0aGlzOyAvLy9cblxuICAgICAgdGhpcy5wcm9jZWR1cmVzID0gcHJvY2VkdXJlc0Zyb21KU09OKGpzb24sIGZpbGVDb250ZXh0KTtcblxuICAgICAgdGhpcy5pbXBvcnRCaW5kaW5ncyA9IGltcG9ydEJpbmRpbmdzRnJvbUpTT04oanNvbiwgZmlsZUNvbnRleHQpO1xuICAgIH1cbiAgfVxuXG4gIHZlcmlmeUZpbGUoZm9yd2FyZCwgYmFjaykge1xuICAgIHJldHVybiBpc29sYXRlKChmb3J3YXJkLCBiYWNrKSA9PiB7XG4gICAgICBjb25zdCBub2RlID0gdGhpcy5nZXROb2RlKCksXG4gICAgICAgICAgICBjb250ZXh0ID0gdGhpcywgLy8vXG4gICAgICAgICAgICBmaWxlTm9kZSA9IG5vZGU7ICAvLy9cblxuICAgICAgcmV0dXJuIHZlcmlmeUZpbGUoZmlsZU5vZGUsIGNvbnRleHQsIGZvcndhcmQsIGJhY2spO1xuICAgIH0sIGZvcndhcmQsIGJhY2spO1xuICB9XG5cbiAgdG9KU09OKCkge1xuICAgIGxldCBqc29uO1xuXG4gICAgY29uc3QgZmlsZVBhdGggPSB0aGlzLmdldEZpbGVQYXRoKCksXG4gICAgICAgICAgZmlsZUNvbnRlbnQgPSB0aGlzLmdldEZpbGVDb250ZW50KCksXG4gICAgICAgICAgcHJvY2VkdXJlc0pTT04gPSBwcm9jZWR1cmVzVG9Qcm9jZWR1cmVzSlNPTih0aGlzLnByb2NlZHVyZXMpLFxuICAgICAgICAgIGltcG9ydEJpbmRpbmdzSlNPTiA9IGltcG9ydEJpbmRpbmdzVG9JbXBvcnRCaW5kaW5nc0pTT04odGhpcy5pbXBvcnRCaW5kaW5ncyksXG4gICAgICAgICAgcHJvY2VkdXJlcyA9IHByb2NlZHVyZXNKU09OLCAgLy8vXG4gICAgICAgICAgaW1wb3J0QmluZGluZ3MgPSBpbXBvcnRCaW5kaW5nc0pTT047XG5cbiAgICBqc29uID0ge1xuICAgICAgZmlsZVBhdGgsXG4gICAgICBmaWxlQ29udGVudCxcbiAgICAgIHByb2NlZHVyZXMsXG4gICAgICBpbXBvcnRCaW5kaW5nc1xuICAgIH07XG5cbiAgICByZXR1cm4ganNvbjtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tRmlsZShmaWxlLCBjb250ZXh0KSB7XG4gICAgY29uc3QgbGV4ZXIgPSBmdXJ0bGVMZXhlciwgIC8vL1xuICAgICAgICAgIHBhcnNlciA9IGZ1cnRsZVBhcnNlciwgIC8vL1xuICAgICAgICAgIHByb2NlZHVyZXMgPSBbXSxcbiAgICAgICAgICBpbXBvcnRCaW5kaW5ncyA9IFtdLFxuICAgICAgICAgIGZ1cnRsZUZpbGVDb250ZXh0ID0gRmlsZUNvbnRleHQuZnJvbUZpbGUoRnVydGxlRmlsZUNvbnRleHQsIGZpbGUsIGxleGVyLCBwYXJzZXIsIHByb2NlZHVyZXMsIGltcG9ydEJpbmRpbmdzLCBjb250ZXh0KTtcblxuICAgIHJldHVybiBmdXJ0bGVGaWxlQ29udGV4dDtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uLCBjb250ZXh0KSB7XG4gICAgY29uc3QgbGV4ZXIgPSBmdXJ0bGVMZXhlciwgIC8vL1xuICAgICAgICAgIHBhcnNlciA9IGZ1cnRsZVBhcnNlciwgIC8vL1xuICAgICAgICAgIHByb2NlZHVyZXMgPSBudWxsLFxuICAgICAgICAgIGltcG9ydEJpbmRpbmdzID0gbnVsbCxcbiAgICAgICAgICBmdXJ0bGVGaWxlQ29udGV4dCA9IEZpbGVDb250ZXh0LmZyb21KU09OKEZ1cnRsZUZpbGVDb250ZXh0LCBqc29uLCBsZXhlciwgcGFyc2VyLCBwcm9jZWR1cmVzLCBpbXBvcnRCaW5kaW5ncywgY29udGV4dCk7XG5cbiAgICByZXR1cm4gZnVydGxlRmlsZUNvbnRleHQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJGdXJ0bGVGaWxlQ29udGV4dCIsIm5vZGVzUXVlcnkiLCJxdWVyeVV0aWxpdGllcyIsInByb2NlZHVyZU5vZGVzUXVlcnkiLCJGaWxlQ29udGV4dCIsImNvbnRleHQiLCJmaWxlQ29udGVudCIsImZpbGVQYXRoIiwidG9rZW5zIiwibm9kZSIsImpzb24iLCJsZXhlciIsInBhcnNlciIsInByb2NlZHVyZXMiLCJpbXBvcnRCaW5kaW5ncyIsImdldExleGVyIiwiZ2V0UGFyc2VyIiwiZ2V0UHJvY2VkdXJlcyIsImluY2x1ZGVSZWxlYXNlIiwiZ2V0SW1wb3J0QmluZGluZ3MiLCJnZXRMYWJlbHMiLCJsYWJlbHMiLCJnZXRUeXBlcyIsInR5cGVzIiwiZ2V0UnVsZXMiLCJydWxlcyIsImdldEF4aW9tcyIsImF4aW9tcyIsImdldExlbW1hcyIsImxlbW1hcyIsImdldFRoZW9yZW1zIiwidGhlb3JlbXMiLCJnZXRNZXRhTGVtbWFzIiwibWV0YUxlbW1hcyIsImdldEdlbmVyYXRvcnMiLCJnZW5lcmF0b3JzIiwiZ2V0Q29uamVjdHVyZXMiLCJjb25qZWN0dXJlcyIsImdldENvbWJpbmF0b3JzIiwiY29tYmluYXRvcnMiLCJnZXRUeXBlUHJlZml4ZXMiLCJ0eXBlUHJlZml4ZXMiLCJnZXRDb25zdHJ1Y3RvcnMiLCJjb25zdHJ1Y3RvcnMiLCJnZXRNZXRhdGhlb3JlbXMiLCJtZXRhdGhlb3JlbXMiLCJnZXRNZXRhdmFyaWFibGVzIiwibWV0YXZhcmlhYmxlcyIsImdldFZhcmlhYmxlcyIsIm5lc3RlZCIsInZhcmlhYmxlcyIsImFkZFByb2NlZHVyZSIsInByb2NlZHVyZSIsInByb2NlZHVyZVN0cmluZyIsImdldFN0cmluZyIsInB1c2giLCJnZXRGaWxlUGF0aCIsImRlYnVnIiwiYWRkSW1wb3J0QmluZGluZyIsImltcG9ydEJpbmRpbmciLCJpbXBvcnRCaW5kaW5nU3RyaW5nIiwiZmluZFByb2NlZHVyZU5vZGUiLCJsYWJlbCIsImdldE5vZGUiLCJsYWJlbE5vZGUiLCJkb2N1bWVudE5vZGUiLCJwcm9jZWR1cmVOb2RlcyIsInByb2NlZHVyZU5vZGUiLCJmaW5kIiwibGFiZWxNYXRjaGVzIiwibWF0Y2hMYWJlbE5vZGUiLCJmaW5kUHJvY2VkdXJlQnlQcm9jZWR1cmVOYW1lIiwicHJvY2VkdXJlTmFtZSIsInByb2NlZHVyZUNvbXBhcmVzVG9Qcm9jZWR1cmVOYW1lIiwiY29tcGFyZVByb2NlZHVyZU5hbWUiLCJmaW5kSW1wb3J0ZWRQcm9jZWR1cmVCeVByb2NlZHVyZU5hbWUiLCJpbXBvcnRlZFByb2NlZHVyZSIsInNvbWUiLCJsYWJsbGVkUHJvY2VkdXJlTmFtZSIsImxhYmVsbGVkUHJvY2VkdXJlTmFtZUNsbXBhcmVzIiwiY29tcGFyZUxhYmxsZWRQcm9jZWR1cmVOYW1lIiwicmVmZXJlbmNlZFByb2NlZHVyZU5hbWUiLCJnZXRSZWZlcmVuY2VkUHJvY2VkdXJlTmFtZSIsImZpbmRJbXBvcnRCaW5kaW5nQnlMYWJlbGxlZFByb2NlZHVyZU5hbWUiLCJsYWJlbGxlZFByb2NlZHVyZU5hbWUiLCJsYWJlbGxlZFByb2NlZHVyZU5hbWVDb21wYXJlcyIsImlzUHJvY2VkdXJlUHJlc2VudEJ5UHJvY2VkdXJlTmFtZSIsInByb2NlZHVyZVByZXNlbnQiLCJpc0ltcG9ydGVkUHJvY2VkdXJlUHJlc2VudEJ5UHJvY2VkdXJlTmFtZSIsImltcG9ydGVkUHJvY2V1ZHJlIiwiaW1wb3J0ZWRQcm9jZXVkcmVQcmVzZW50IiwiaXNJbXBvcnRCaW5kaW5nUHJlc2VudEJ5TGFiZWxsZWRQcm9jZWR1cmVOYW1lIiwiaW1wb3J0QmluZGluZ1ByZXNlbnQiLCJjb21wYXJlUmVsZWFzZU5hbWUiLCJyZWxlYXNlTmFtZSIsImNsZWFyIiwiY29tcGxldGUiLCJpbml0aWFsaXNlIiwiZ2V0SlNPTiIsImZpbGVDb250ZXh0IiwicHJvY2VkdXJlc0Zyb21KU09OIiwiaW1wb3J0QmluZGluZ3NGcm9tSlNPTiIsInZlcmlmeUZpbGUiLCJmb3J3YXJkIiwiYmFjayIsImlzb2xhdGUiLCJmaWxlTm9kZSIsInRvSlNPTiIsImdldEZpbGVDb250ZW50IiwicHJvY2VkdXJlc0pTT04iLCJwcm9jZWR1cmVzVG9Qcm9jZWR1cmVzSlNPTiIsImltcG9ydEJpbmRpbmdzSlNPTiIsImltcG9ydEJpbmRpbmdzVG9JbXBvcnRCaW5kaW5nc0pTT04iLCJmcm9tRmlsZSIsImZpbGUiLCJmdXJ0bGVMZXhlciIsImZ1cnRsZVBhcnNlciIsImZ1cnRsZUZpbGVDb250ZXh0IiwiZnJvbUpTT04iXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQW9CQTs7O2VBQXFCQTs7O2dDQWxCTzs0QkFDRzt5QkFFUDt3QkFDRzt3QkFDZTtzQkFNbkM7a0VBQ2U7Ozs7OztBQUV0QixNQUFNLEVBQUVDLFVBQVUsRUFBRSxHQUFHQywwQkFBYztBQUVyQyxNQUFNQyxzQkFBc0JGLFdBQVc7QUFFeEIsTUFBTUQsMEJBQTBCSSwyQkFBVztJQUN4RCxZQUFZQyxPQUFPLEVBQUVDLFdBQVcsRUFBRUMsUUFBUSxFQUFFQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsSUFBSSxFQUFFQyxLQUFLLEVBQUVDLE1BQU0sRUFBRUMsVUFBVSxFQUFFQyxjQUFjLENBQUU7UUFDekcsS0FBSyxDQUFDVCxTQUFTQyxhQUFhQyxVQUFVQyxRQUFRQyxNQUFNQztRQUVwRCxJQUFJLENBQUNDLEtBQUssR0FBR0E7UUFDYixJQUFJLENBQUNDLE1BQU0sR0FBR0E7UUFDZCxJQUFJLENBQUNDLFVBQVUsR0FBR0E7UUFDbEIsSUFBSSxDQUFDQyxjQUFjLEdBQUdBO0lBQ3hCO0lBRUFDLFdBQVc7UUFDVCxPQUFPLElBQUksQ0FBQ0osS0FBSztJQUNuQjtJQUVBSyxZQUFZO1FBQ1YsT0FBTyxJQUFJLENBQUNKLE1BQU07SUFDcEI7SUFFQUssY0FBY0MsaUJBQWlCLElBQUksRUFBRTtRQUNuQyxNQUFNTCxhQUFhSyxpQkFDRSxJQUFJLENBQUNiLE9BQU8sQ0FBQ1ksYUFBYSxLQUN4QixJQUFJLENBQUNKLFVBQVU7UUFFdEMsT0FBT0E7SUFDVDtJQUVBTSxvQkFBb0I7UUFDbEIsT0FBTyxJQUFJLENBQUNMLGNBQWM7SUFDNUI7SUFFQU0sVUFBVUYsaUJBQWlCLElBQUksRUFBRTtRQUMvQixNQUFNRyxTQUFTLEVBQUU7UUFFakIsT0FBT0E7SUFDVDtJQUVBQyxTQUFTSixpQkFBaUIsSUFBSSxFQUFFO1FBQzlCLE1BQU1LLFFBQVEsRUFBRTtRQUVoQixPQUFPQTtJQUNUO0lBRUFDLFNBQVNOLGlCQUFpQixJQUFJLEVBQUU7UUFDOUIsTUFBTU8sUUFBUSxFQUFFO1FBRWhCLE9BQU9BO0lBQ1Q7SUFFQUMsVUFBVVIsaUJBQWlCLElBQUksRUFBRTtRQUMvQixNQUFNUyxTQUFTLEVBQUU7UUFFakIsT0FBT0E7SUFDVDtJQUVBQyxVQUFVVixpQkFBaUIsSUFBSSxFQUFFO1FBQy9CLE1BQU1XLFNBQVMsRUFBRTtRQUVqQixPQUFPQTtJQUNUO0lBRUFDLFlBQVlaLGlCQUFpQixJQUFJLEVBQUU7UUFDakMsTUFBTWEsV0FBVyxFQUFFO1FBRW5CLE9BQU9BO0lBQ1Q7SUFFQUMsY0FBY2QsaUJBQWlCLElBQUksRUFBRTtRQUNuQyxNQUFNZSxhQUFhLEVBQUU7UUFFckIsT0FBT0E7SUFDVDtJQUVBQyxjQUFjaEIsaUJBQWlCLElBQUksRUFBRTtRQUNuQyxNQUFNaUIsYUFBYSxFQUFFO1FBRXJCLE9BQU9BO0lBQ1Q7SUFFQUMsZUFBZWxCLGlCQUFpQixJQUFJLEVBQUU7UUFDcEMsTUFBTW1CLGNBQWMsRUFBRTtRQUV0QixPQUFPQTtJQUNUO0lBRUFDLGVBQWVwQixpQkFBaUIsSUFBSSxFQUFFO1FBQ3BDLE1BQU1xQixjQUFjLEVBQUU7UUFFdEIsT0FBT0E7SUFDVDtJQUVBQyxnQkFBZ0J0QixpQkFBaUIsSUFBSSxFQUFFO1FBQ3JDLE1BQU11QixlQUFlLEVBQUU7UUFFdkIsT0FBT0E7SUFDVDtJQUVBQyxnQkFBZ0J4QixpQkFBaUIsSUFBSSxFQUFFO1FBQ3JDLE1BQU15QixlQUFlLEVBQUU7UUFFdkIsT0FBT0E7SUFDVDtJQUVBQyxnQkFBZ0IxQixpQkFBaUIsSUFBSSxFQUFFO1FBQ3JDLE1BQU0yQixlQUFlLEVBQUU7UUFFdkIsT0FBT0E7SUFDVDtJQUVBQyxpQkFBaUI1QixpQkFBaUIsSUFBSSxFQUFFO1FBQ3RDLE1BQU02QixnQkFBZ0IsRUFBRTtRQUV4QixPQUFPQTtJQUNUO0lBRUFDLGFBQWFDLFNBQVMsSUFBSSxFQUFFO1FBQzFCLE1BQU1DLFlBQVksRUFBRTtRQUVwQixPQUFPQTtJQUNUO0lBRUFDLGFBQWFDLFNBQVMsRUFBRTtRQUN0QixNQUFNQyxrQkFBa0JELFVBQVVFLFNBQVM7UUFFM0MsSUFBSSxDQUFDekMsVUFBVSxDQUFDMEMsSUFBSSxDQUFDSDtRQUVyQixNQUFNN0MsV0FBVyxJQUFJLENBQUNpRCxXQUFXO1FBRWpDLElBQUksQ0FBQ0MsS0FBSyxDQUFDLENBQUMsV0FBVyxFQUFFSixnQkFBZ0IsbUJBQW1CLEVBQUU5QyxTQUFTLGVBQWUsQ0FBQztJQUN6RjtJQUVBbUQsaUJBQWlCQyxhQUFhLEVBQUU7UUFDOUIsTUFBTUMsc0JBQXNCRCxjQUFjTCxTQUFTO1FBRW5ELElBQUksQ0FBQ3hDLGNBQWMsQ0FBQ3lDLElBQUksQ0FBQ0k7UUFFekIsTUFBTXBELFdBQVcsSUFBSSxDQUFDaUQsV0FBVztRQUVqQyxJQUFJLENBQUNDLEtBQUssQ0FBQyxDQUFDLFdBQVcsRUFBRUcsb0JBQW9CLHlCQUF5QixFQUFFckQsU0FBUyxlQUFlLENBQUM7SUFDbkc7SUFFQXNELGtCQUFrQkMsS0FBSyxFQUFFO1FBQ3ZCLE1BQU1yRCxPQUFPLElBQUksQ0FBQ3NELE9BQU8sSUFDbkJDLFlBQVlGLE1BQU1DLE9BQU8sSUFDekJFLGVBQWV4RCxNQUNmeUQsaUJBQWlCL0Qsb0JBQW9COEQsZUFDckNFLGdCQUFnQkQsZUFBZUUsSUFBSSxDQUFDLENBQUNEO1lBQ25DLE1BQU1FLGVBQWVGLGNBQWNHLGNBQWMsQ0FBQ047WUFFbEQsSUFBSUssY0FBYztnQkFDaEIsT0FBTztZQUNUO1FBQ0YsTUFBTTtRQUVaLE9BQU9GO0lBQ1Q7SUFFQUksNkJBQTZCQyxhQUFhLEVBQUU7UUFDMUMsTUFBTTNELGFBQWEsSUFBSSxDQUFDSSxhQUFhLElBQy9CbUMsWUFBWXZDLFdBQVd1RCxJQUFJLENBQUMsQ0FBQ2hCO1lBQzNCLE1BQU1xQixtQ0FBbUNyQixVQUFVc0Isb0JBQW9CLENBQUNGO1lBRXhFLElBQUlDLGtDQUFrQztnQkFDcEMsT0FBTztZQUNUO1FBQ0YsTUFBTTtRQUVaLE9BQU9yQjtJQUNUO0lBRUF1QixxQ0FBcUNILGFBQWEsRUFBRTtRQUNsRCxJQUFJSSxvQkFBb0I7UUFFeEIsSUFBSSxDQUFDOUQsY0FBYyxDQUFDK0QsSUFBSSxDQUFDLENBQUNsQjtZQUN4QixNQUFNbUIsdUJBQXVCTixlQUFlLEdBQUc7WUFFL0MsTUFBTU8sZ0NBQWdDcEIsY0FBY3FCLDJCQUEyQixDQUFDRjtZQUVoRixJQUFJQywrQkFBK0I7Z0JBQ2pDLE1BQU1FLDBCQUEwQnRCLGNBQWN1QiwwQkFBMEI7Z0JBRXhFVixnQkFBZ0JTLHlCQUEwQixHQUFHO2dCQUU3QyxNQUFNN0IsWUFBWSxJQUFJLENBQUNtQiw0QkFBNEIsQ0FBQ0M7Z0JBRXBESSxvQkFBb0J4QixXQUFZLEdBQUc7Z0JBRW5DLE9BQU87WUFDVDtRQUNGO1FBRUEsT0FBT3dCO0lBQ1Q7SUFFQU8seUNBQXlDQyxxQkFBcUIsRUFBRTtRQUM5RCxNQUFNekIsZ0JBQWdCLElBQUksQ0FBQzdDLGNBQWMsQ0FBQ3NELElBQUksQ0FBQyxDQUFDVDtZQUN4QyxNQUFNMEIsZ0NBQWdDMUIsY0FBY3FCLDJCQUEyQixDQUFDSTtZQUVoRixJQUFJQywrQkFBK0I7Z0JBQ2pDLE9BQU87WUFDVDtRQUNGLE1BQU07UUFFWixPQUFPMUI7SUFDVDtJQUVBMkIsa0NBQWtDZCxhQUFhLEVBQUU7UUFDL0MsTUFBTXBCLFlBQVksSUFBSSxDQUFDbUIsNEJBQTRCLENBQUNDLGdCQUM5Q2UsbUJBQW9CbkMsY0FBYztRQUV4QyxPQUFPbUM7SUFDVDtJQUVBQywwQ0FBMENoQixhQUFhLEVBQUU7UUFDdkQsTUFBTWlCLG9CQUFvQixJQUFJLENBQUNkLG9DQUFvQyxDQUFDSCxnQkFDOURrQiwyQkFBNEJELHNCQUFzQjtRQUV4RCxPQUFPQztJQUNUO0lBRUFDLDhDQUE4Q1AscUJBQXFCLEVBQUU7UUFDbkUsTUFBTXpCLGdCQUFnQixJQUFJLENBQUN3Qix3Q0FBd0MsQ0FBQ0Msd0JBQzlEUSx1QkFBd0JqQyxrQkFBa0I7UUFFaEQsT0FBT2lDO0lBQ1Q7SUFFQUMsbUJBQW1CQyxXQUFXLEVBQUU7UUFBRSxPQUFPLElBQUksQ0FBQ3pGLE9BQU8sQ0FBQ3dGLGtCQUFrQixDQUFDQztJQUFjO0lBRXZGQyxRQUFRO1FBQ04sSUFBSSxDQUFDbEYsVUFBVSxHQUFHLEVBQUU7SUFDdEI7SUFFQW1GLFdBQVc7SUFDVCxHQUFHO0lBQ0w7SUFFQUMsYUFBYTtRQUNYLEtBQUssQ0FBQ0EsY0FBYyxHQUFHO1FBRXZCLE1BQU12RixPQUFPLElBQUksQ0FBQ3dGLE9BQU87UUFFekIsSUFBSXhGLFNBQVMsTUFBTTtZQUNqQixNQUFNeUYsY0FBYyxJQUFJLEVBQUUsR0FBRztZQUU3QixJQUFJLENBQUN0RixVQUFVLEdBQUd1RixJQUFBQSx3QkFBa0IsRUFBQzFGLE1BQU15RjtZQUUzQyxJQUFJLENBQUNyRixjQUFjLEdBQUd1RixJQUFBQSw0QkFBc0IsRUFBQzNGLE1BQU15RjtRQUNyRDtJQUNGO0lBRUFHLFdBQVdDLE9BQU8sRUFBRUMsSUFBSSxFQUFFO1FBQ3hCLE9BQU9DLElBQUFBLGdCQUFPLEVBQUMsQ0FBQ0YsU0FBU0M7WUFDdkIsTUFBTS9GLE9BQU8sSUFBSSxDQUFDc0QsT0FBTyxJQUNuQjFELFVBQVUsSUFBSSxFQUNkcUcsV0FBV2pHLE1BQU8sR0FBRztZQUUzQixPQUFPNkYsSUFBQUEsa0JBQVUsRUFBQ0ksVUFBVXJHLFNBQVNrRyxTQUFTQztRQUNoRCxHQUFHRCxTQUFTQztJQUNkO0lBRUFHLFNBQVM7UUFDUCxJQUFJakc7UUFFSixNQUFNSCxXQUFXLElBQUksQ0FBQ2lELFdBQVcsSUFDM0JsRCxjQUFjLElBQUksQ0FBQ3NHLGNBQWMsSUFDakNDLGlCQUFpQkMsSUFBQUEsZ0NBQTBCLEVBQUMsSUFBSSxDQUFDakcsVUFBVSxHQUMzRGtHLHFCQUFxQkMsSUFBQUEsd0NBQWtDLEVBQUMsSUFBSSxDQUFDbEcsY0FBYyxHQUMzRUQsYUFBYWdHLGdCQUNiL0YsaUJBQWlCaUc7UUFFdkJyRyxPQUFPO1lBQ0xIO1lBQ0FEO1lBQ0FPO1lBQ0FDO1FBQ0Y7UUFFQSxPQUFPSjtJQUNUO0lBRUEsT0FBT3VHLFNBQVNDLElBQUksRUFBRTdHLE9BQU8sRUFBRTtRQUM3QixNQUFNTSxRQUFRd0csbUJBQVcsRUFDbkJ2RyxTQUFTd0csb0JBQVksRUFDckJ2RyxhQUFhLEVBQUUsRUFDZkMsaUJBQWlCLEVBQUUsRUFDbkJ1RyxvQkFBb0JqSCwyQkFBVyxDQUFDNkcsUUFBUSxDQUFDakgsbUJBQW1Ca0gsTUFBTXZHLE9BQU9DLFFBQVFDLFlBQVlDLGdCQUFnQlQ7UUFFbkgsT0FBT2dIO0lBQ1Q7SUFFQSxPQUFPQyxTQUFTNUcsSUFBSSxFQUFFTCxPQUFPLEVBQUU7UUFDN0IsTUFBTU0sUUFBUXdHLG1CQUFXLEVBQ25CdkcsU0FBU3dHLG9CQUFZLEVBQ3JCdkcsYUFBYSxNQUNiQyxpQkFBaUIsTUFDakJ1RyxvQkFBb0JqSCwyQkFBVyxDQUFDa0gsUUFBUSxDQUFDdEgsbUJBQW1CVSxNQUFNQyxPQUFPQyxRQUFRQyxZQUFZQyxnQkFBZ0JUO1FBRW5ILE9BQU9nSDtJQUNUO0FBQ0YifQ==
@@ -12,6 +12,7 @@ const _occamlanguages = require("occam-languages");
12
12
  const _elements = require("../elements");
13
13
  const _instantiate = require("../process/instantiate");
14
14
  const _json = require("../utilities/json");
15
+ const _context = require("../utilities/context");
15
16
  const _default = (0, _elements.define)(class ImportBinding extends _occamlanguages.Element {
16
17
  constructor(context, string, node, breakPoint, label, reference){
17
18
  super(context, string, node, breakPoint);
@@ -24,19 +25,64 @@ const _default = (0, _elements.define)(class ImportBinding extends _occamlanguag
24
25
  getReference() {
25
26
  return this.reference;
26
27
  }
27
- getProcedureName() {
28
- const referenceName = this.reference.getName(), procedureName = referenceName; ///
29
- return procedureName;
28
+ getLabelledProcedureName() {
29
+ const labelName = this.label.getName(), labelledProcedureName = labelName; ///
30
+ return labelledProcedureName;
31
+ }
32
+ getReferencedProcedureName() {
33
+ const referenceName = this.reference.getName(), referencedProcedureName = referenceName; ///
34
+ return referencedProcedureName;
35
+ }
36
+ isAllowed() {
37
+ const labelledProcedureName = this.getLabelledProcedureName(), referencedProcedureName = this.getReferencedProcedureName(), aliased = labelledProcedureName !== referencedProcedureName;
38
+ return aliased;
39
+ }
40
+ compareLablledProcedureName(labelledProcedureName) {
41
+ const labelName = this.label.getName(), labelledProcedureNameCompares = labelName === labelledProcedureName;
42
+ return labelledProcedureNameCompares;
30
43
  }
31
44
  verify(releaseName, context, forward, back) {
32
45
  const importBindingString = this.getString(); ///
33
46
  context.trace(`Verifying the '${importBindingString}' import binding...`);
34
- const procedureName = this.getProcedureName(), procedure = context.findProcedureByProcedureName(procedureName);
35
- if (procedure === null) {
47
+ let procedureName, procedurePresent;
48
+ const referencedProcedureName = this.getReferencedProcedureName();
49
+ procedureName = referencedProcedureName; ///
50
+ procedurePresent = context.isProcedurePresentByProcedureName(procedureName);
51
+ if (!procedurePresent) {
36
52
  context.trace(`The '${procedureName}' procedure is not present.`);
37
53
  return back();
38
54
  }
39
- const releaseNameCompares = procedure.compareReleaseName(releaseName);
55
+ const labelledProcedureName = this.getLabelledProcedureName();
56
+ procedureName = labelledProcedureName; ///
57
+ const aliased = this.isAllowed();
58
+ if (aliased) {
59
+ procedurePresent = context.isProcedurePresentByProcedureName(procedureName);
60
+ if (procedurePresent) {
61
+ context.trace(`The '${procedureName}' procedure is already present.`);
62
+ return back();
63
+ }
64
+ }
65
+ const importBindingPresent = context.isImportBindingPresentByLabelledProcedureName(labelledProcedureName);
66
+ if (importBindingPresent) {
67
+ const labelString = this.label.getString();
68
+ context.trace(`The '${importBindingString}' import binding's '${labelString}' label is already present...`);
69
+ return back();
70
+ }
71
+ procedureName = referencedProcedureName; ///
72
+ const procedure = context.findProcedureByProcedureName(procedureName), releaseNameCompares = procedure.compareReleaseName(releaseName);
73
+ if (!releaseNameCompares) {
74
+ context.trace(`The '${procedureName}' procedure is not in the '${releaseName}' package.`);
75
+ return back();
76
+ }
77
+ const exported = procedure.isExported();
78
+ if (!exported) {
79
+ context.trace(`The '${procedureName}' procedure is not exported.`);
80
+ return back();
81
+ }
82
+ const importBinding = this;
83
+ context.addImportBinding(importBinding);
84
+ context.debug(`...verified the '${importBindingString}' import binding.`);
85
+ return forward(context, back);
40
86
  }
41
87
  toJSON() {
42
88
  let json;
@@ -50,9 +96,13 @@ const _default = (0, _elements.define)(class ImportBinding extends _occamlanguag
50
96
  }
51
97
  static name = "ImportBinding";
52
98
  static fromJSON(json, context) {
53
- const { string } = json, breakPoint = null, importBindingNode = (0, _instantiate.instantiateImportBinding)(string, context), label = (0, _json.labelFromJSON)(json, context), reference = (0, _json.referenceFromJSON)(json, context), node = importBindingNode, importBinding = new ImportBinding(context, string, node, breakPoint, label, reference);
99
+ let importBinding;
100
+ (0, _context.instantiate)((context)=>{
101
+ const { string } = json, breakPoint = null, importBindingNode = (0, _instantiate.instantiateImportBinding)(string, context), label = (0, _json.labelFromJSON)(json, context), reference = (0, _json.referenceFromJSON)(json, context), node = importBindingNode; ///
102
+ importBinding = new ImportBinding(context, string, node, breakPoint, label, reference);
103
+ }, context);
54
104
  return importBinding;
55
105
  }
56
106
  });
57
107
 
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2ltcG9ydEJpbmRpbmcuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IEVsZW1lbnQgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgaW5zdGFudGlhdGVJbXBvcnRCaW5kaW5nIH0gZnJvbSBcIi4uL3Byb2Nlc3MvaW5zdGFudGlhdGVcIjtcbmltcG9ydCB7IGxhYmVsRnJvbUpTT04sIGxhYmVsVG9MYWJlbEpTT04sIHJlZmVyZW5jZUZyb21KU09OLCByZWZlcmVuY2VUb1JlZmVyZW5jZUpTT04gfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2pzb25cIjtcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIEltcG9ydEJpbmRpbmcgZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCBsYWJlbCwgcmVmZXJlbmNlKSB7XG4gICAgc3VwZXIoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50KTtcblxuICAgIHRoaXMubGFiZWwgPSBsYWJlbDtcbiAgICB0aGlzLnJlZmVyZW5jZSA9IHJlZmVyZW5jZTtcbiAgfVxuXG4gIGdldExhYmVsKCkge1xuICAgIHJldHVybiB0aGlzLmxhYmVsO1xuICB9XG5cbiAgZ2V0UmVmZXJlbmNlKCkge1xuICAgIHJldHVybiB0aGlzLnJlZmVyZW5jZTtcbiAgfVxuXG4gIGdldFByb2NlZHVyZU5hbWUoKSB7XG4gICAgY29uc3QgcmVmZXJlbmNlTmFtZSA9IHRoaXMucmVmZXJlbmNlLmdldE5hbWUoKSxcbiAgICAgICAgICBwcm9jZWR1cmVOYW1lID0gcmVmZXJlbmNlTmFtZTsgIC8vL1xuXG4gICAgcmV0dXJuIHByb2NlZHVyZU5hbWU7XG4gIH1cblxuICB2ZXJpZnkocmVsZWFzZU5hbWUsIGNvbnRleHQsIGZvcndhcmQsIGJhY2spIHtcbiAgICBjb25zdCBpbXBvcnRCaW5kaW5nU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke2ltcG9ydEJpbmRpbmdTdHJpbmd9JyBpbXBvcnQgYmluZGluZy4uLmApO1xuXG4gICAgY29uc3QgcHJvY2VkdXJlTmFtZSA9IHRoaXMuZ2V0UHJvY2VkdXJlTmFtZSgpLFxuICAgICAgICAgIHByb2NlZHVyZSA9IGNvbnRleHQuZmluZFByb2NlZHVyZUJ5UHJvY2VkdXJlTmFtZShwcm9jZWR1cmVOYW1lKTtcblxuICAgIGlmIChwcm9jZWR1cmUgPT09IG51bGwpIHtcbiAgICAgIGNvbnRleHQudHJhY2UoYFRoZSAnJHtwcm9jZWR1cmVOYW1lfScgcHJvY2VkdXJlIGlzIG5vdCBwcmVzZW50LmApO1xuXG4gICAgICByZXR1cm4gYmFjaygpO1xuICAgIH1cblxuICAgIGNvbnN0IHJlbGVhc2VOYW1lQ29tcGFyZXMgPSBwcm9jZWR1cmUuY29tcGFyZVJlbGVhc2VOYW1lKHJlbGVhc2VOYW1lKTtcblxuICB9XG5cbiAgdG9KU09OKCkge1xuICAgIGxldCBqc29uO1xuXG4gICAgY29uc3Qgc3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKSxcbiAgICAgICAgICBsYWJlbEpTT04gPSBsYWJlbFRvTGFiZWxKU09OKHRoaXMubGFiZWwpLFxuICAgICAgICAgIHJlZmVyZW5jZUpKU09OID0gcmVmZXJlbmNlVG9SZWZlcmVuY2VKU09OKHRoaXMucmVmZXJlbmNlKSxcbiAgICAgICAgICBsYWJlbCA9IGxhYmVsSlNPTiwgIC8vL1xuICAgICAgICAgIHJlZmVyZW5jZSA9IHJlZmVyZW5jZUpKU09OOyAgLy8vXG5cbiAgICBqc29uID0ge1xuICAgICAgc3RyaW5nLFxuICAgICAgbGFiZWwsXG4gICAgICByZWZlcmVuY2VcbiAgICB9O1xuXG4gICAgcmV0dXJuIGpzb247XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiSW1wb3J0QmluZGluZ1wiO1xuXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uLCBjb250ZXh0KSB7XG4gICAgY29uc3QgeyBzdHJpbmcgfSA9IGpzb24sXG4gICAgICAgICAgYnJlYWtQb2ludCA9IG51bGwsXG4gICAgICAgICAgaW1wb3J0QmluZGluZ05vZGUgPSBpbnN0YW50aWF0ZUltcG9ydEJpbmRpbmcoc3RyaW5nLCBjb250ZXh0KSxcbiAgICAgICAgICBsYWJlbCA9IGxhYmVsRnJvbUpTT04oanNvbiwgY29udGV4dCksXG4gICAgICAgICAgcmVmZXJlbmNlID0gcmVmZXJlbmNlRnJvbUpTT04oanNvbiwgY29udGV4dCksXG4gICAgICAgICAgbm9kZSA9IGltcG9ydEJpbmRpbmdOb2RlLCAvLy9cbiAgICAgICAgICBpbXBvcnRCaW5kaW5nID0gbmV3IEltcG9ydEJpbmRpbmcoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCBsYWJlbCwgcmVmZXJlbmNlKTtcblxuICAgIHJldHVybiBpbXBvcnRCaW5kaW5nO1xuICB9XG59KTtcbiJdLCJuYW1lcyI6WyJkZWZpbmUiLCJJbXBvcnRCaW5kaW5nIiwiRWxlbWVudCIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiYnJlYWtQb2ludCIsImxhYmVsIiwicmVmZXJlbmNlIiwiZ2V0TGFiZWwiLCJnZXRSZWZlcmVuY2UiLCJnZXRQcm9jZWR1cmVOYW1lIiwicmVmZXJlbmNlTmFtZSIsImdldE5hbWUiLCJwcm9jZWR1cmVOYW1lIiwidmVyaWZ5IiwicmVsZWFzZU5hbWUiLCJmb3J3YXJkIiwiYmFjayIsImltcG9ydEJpbmRpbmdTdHJpbmciLCJnZXRTdHJpbmciLCJ0cmFjZSIsInByb2NlZHVyZSIsImZpbmRQcm9jZWR1cmVCeVByb2NlZHVyZU5hbWUiLCJyZWxlYXNlTmFtZUNvbXBhcmVzIiwiY29tcGFyZVJlbGVhc2VOYW1lIiwidG9KU09OIiwianNvbiIsImxhYmVsSlNPTiIsImxhYmVsVG9MYWJlbEpTT04iLCJyZWZlcmVuY2VKSlNPTiIsInJlZmVyZW5jZVRvUmVmZXJlbmNlSlNPTiIsIm5hbWUiLCJmcm9tSlNPTiIsImltcG9ydEJpbmRpbmdOb2RlIiwiaW5zdGFudGlhdGVJbXBvcnRCaW5kaW5nIiwibGFiZWxGcm9tSlNPTiIsInJlZmVyZW5jZUZyb21KU09OIiwiaW1wb3J0QmluZGluZyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBUUE7OztlQUFBOzs7Z0NBTndCOzBCQUVEOzZCQUNrQjtzQkFDb0Q7TUFFN0YsV0FBZUEsSUFBQUEsZ0JBQU0sRUFBQyxNQUFNQyxzQkFBc0JDLHVCQUFPO0lBQ3ZELFlBQVlDLE9BQU8sRUFBRUMsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLFVBQVUsRUFBRUMsS0FBSyxFQUFFQyxTQUFTLENBQUU7UUFDL0QsS0FBSyxDQUFDTCxTQUFTQyxRQUFRQyxNQUFNQztRQUU3QixJQUFJLENBQUNDLEtBQUssR0FBR0E7UUFDYixJQUFJLENBQUNDLFNBQVMsR0FBR0E7SUFDbkI7SUFFQUMsV0FBVztRQUNULE9BQU8sSUFBSSxDQUFDRixLQUFLO0lBQ25CO0lBRUFHLGVBQWU7UUFDYixPQUFPLElBQUksQ0FBQ0YsU0FBUztJQUN2QjtJQUVBRyxtQkFBbUI7UUFDakIsTUFBTUMsZ0JBQWdCLElBQUksQ0FBQ0osU0FBUyxDQUFDSyxPQUFPLElBQ3RDQyxnQkFBZ0JGLGVBQWdCLEdBQUc7UUFFekMsT0FBT0U7SUFDVDtJQUVBQyxPQUFPQyxXQUFXLEVBQUViLE9BQU8sRUFBRWMsT0FBTyxFQUFFQyxJQUFJLEVBQUU7UUFDMUMsTUFBTUMsc0JBQXNCLElBQUksQ0FBQ0MsU0FBUyxJQUFJLEdBQUc7UUFFakRqQixRQUFRa0IsS0FBSyxDQUFDLENBQUMsZUFBZSxFQUFFRixvQkFBb0IsbUJBQW1CLENBQUM7UUFFeEUsTUFBTUwsZ0JBQWdCLElBQUksQ0FBQ0gsZ0JBQWdCLElBQ3JDVyxZQUFZbkIsUUFBUW9CLDRCQUE0QixDQUFDVDtRQUV2RCxJQUFJUSxjQUFjLE1BQU07WUFDdEJuQixRQUFRa0IsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFUCxjQUFjLDJCQUEyQixDQUFDO1lBRWhFLE9BQU9JO1FBQ1Q7UUFFQSxNQUFNTSxzQkFBc0JGLFVBQVVHLGtCQUFrQixDQUFDVDtJQUUzRDtJQUVBVSxTQUFTO1FBQ1AsSUFBSUM7UUFFSixNQUFNdkIsU0FBUyxJQUFJLENBQUNnQixTQUFTLElBQ3ZCUSxZQUFZQyxJQUFBQSxzQkFBZ0IsRUFBQyxJQUFJLENBQUN0QixLQUFLLEdBQ3ZDdUIsaUJBQWlCQyxJQUFBQSw4QkFBd0IsRUFBQyxJQUFJLENBQUN2QixTQUFTLEdBQ3hERCxRQUFRcUIsV0FDUnBCLFlBQVlzQixnQkFBaUIsR0FBRztRQUV0Q0gsT0FBTztZQUNMdkI7WUFDQUc7WUFDQUM7UUFDRjtRQUVBLE9BQU9tQjtJQUNUO0lBRUEsT0FBT0ssT0FBTyxnQkFBZ0I7SUFFOUIsT0FBT0MsU0FBU04sSUFBSSxFQUFFeEIsT0FBTyxFQUFFO1FBQzdCLE1BQU0sRUFBRUMsTUFBTSxFQUFFLEdBQUd1QixNQUNickIsYUFBYSxNQUNiNEIsb0JBQW9CQyxJQUFBQSxxQ0FBd0IsRUFBQy9CLFFBQVFELFVBQ3JESSxRQUFRNkIsSUFBQUEsbUJBQWEsRUFBQ1QsTUFBTXhCLFVBQzVCSyxZQUFZNkIsSUFBQUEsdUJBQWlCLEVBQUNWLE1BQU14QixVQUNwQ0UsT0FBTzZCLG1CQUNQSSxnQkFBZ0IsSUFBSXJDLGNBQWNFLFNBQVNDLFFBQVFDLE1BQU1DLFlBQVlDLE9BQU9DO1FBRWxGLE9BQU84QjtJQUNUO0FBQ0YifQ==
108
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2ltcG9ydEJpbmRpbmcuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IEVsZW1lbnQgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgaW5zdGFudGlhdGVJbXBvcnRCaW5kaW5nIH0gZnJvbSBcIi4uL3Byb2Nlc3MvaW5zdGFudGlhdGVcIjtcbmltcG9ydCB7IGxhYmVsRnJvbUpTT04sIGxhYmVsVG9MYWJlbEpTT04sIHJlZmVyZW5jZUZyb21KU09OLCByZWZlcmVuY2VUb1JlZmVyZW5jZUpTT04gfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2pzb25cIjtcbmltcG9ydCB7aW5zdGFudGlhdGV9IGZyb20gXCIuLi91dGlsaXRpZXMvY29udGV4dFwiO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgSW1wb3J0QmluZGluZyBleHRlbmRzIEVsZW1lbnQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIGxhYmVsLCByZWZlcmVuY2UpIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQpO1xuXG4gICAgdGhpcy5sYWJlbCA9IGxhYmVsO1xuICAgIHRoaXMucmVmZXJlbmNlID0gcmVmZXJlbmNlO1xuICB9XG5cbiAgZ2V0TGFiZWwoKSB7XG4gICAgcmV0dXJuIHRoaXMubGFiZWw7XG4gIH1cblxuICBnZXRSZWZlcmVuY2UoKSB7XG4gICAgcmV0dXJuIHRoaXMucmVmZXJlbmNlO1xuICB9XG5cbiAgZ2V0TGFiZWxsZWRQcm9jZWR1cmVOYW1lKCkge1xuICAgIGNvbnN0IGxhYmVsTmFtZSA9IHRoaXMubGFiZWwuZ2V0TmFtZSgpLFxuICAgICAgICAgIGxhYmVsbGVkUHJvY2VkdXJlTmFtZSA9IGxhYmVsTmFtZTsgIC8vL1xuXG4gICAgcmV0dXJuIGxhYmVsbGVkUHJvY2VkdXJlTmFtZTtcbiAgfVxuXG4gIGdldFJlZmVyZW5jZWRQcm9jZWR1cmVOYW1lKCkge1xuICAgIGNvbnN0IHJlZmVyZW5jZU5hbWUgPSB0aGlzLnJlZmVyZW5jZS5nZXROYW1lKCksXG4gICAgICAgICAgcmVmZXJlbmNlZFByb2NlZHVyZU5hbWUgPSByZWZlcmVuY2VOYW1lOyAgLy8vXG5cbiAgICByZXR1cm4gcmVmZXJlbmNlZFByb2NlZHVyZU5hbWU7XG4gIH1cblxuICBpc0FsbG93ZWQoKSB7XG4gICAgY29uc3QgbGFiZWxsZWRQcm9jZWR1cmVOYW1lID0gdGhpcy5nZXRMYWJlbGxlZFByb2NlZHVyZU5hbWUoKSxcbiAgICAgICAgICByZWZlcmVuY2VkUHJvY2VkdXJlTmFtZSA9IHRoaXMuZ2V0UmVmZXJlbmNlZFByb2NlZHVyZU5hbWUoKSxcbiAgICAgICAgICBhbGlhc2VkID0gKGxhYmVsbGVkUHJvY2VkdXJlTmFtZSAhPT0gcmVmZXJlbmNlZFByb2NlZHVyZU5hbWUpO1xuXG4gICAgcmV0dXJuIGFsaWFzZWQ7XG4gIH1cblxuICBjb21wYXJlTGFibGxlZFByb2NlZHVyZU5hbWUobGFiZWxsZWRQcm9jZWR1cmVOYW1lKSB7XG4gICAgY29uc3QgbGFiZWxOYW1lID0gdGhpcy5sYWJlbC5nZXROYW1lKCksXG4gICAgICAgICAgbGFiZWxsZWRQcm9jZWR1cmVOYW1lQ29tcGFyZXMgPSAobGFiZWxOYW1lID09PSBsYWJlbGxlZFByb2NlZHVyZU5hbWUpO1xuXG4gICAgcmV0dXJuIGxhYmVsbGVkUHJvY2VkdXJlTmFtZUNvbXBhcmVzO1xuICB9XG5cbiAgdmVyaWZ5KHJlbGVhc2VOYW1lLCBjb250ZXh0LCBmb3J3YXJkLCBiYWNrKSB7XG4gICAgY29uc3QgaW1wb3J0QmluZGluZ1N0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7IC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtpbXBvcnRCaW5kaW5nU3RyaW5nfScgaW1wb3J0IGJpbmRpbmcuLi5gKTtcblxuICAgIGxldCBwcm9jZWR1cmVOYW1lLFxuICAgICAgICBwcm9jZWR1cmVQcmVzZW50O1xuXG4gICAgY29uc3QgcmVmZXJlbmNlZFByb2NlZHVyZU5hbWUgPSB0aGlzLmdldFJlZmVyZW5jZWRQcm9jZWR1cmVOYW1lKCk7XG5cbiAgICBwcm9jZWR1cmVOYW1lID0gcmVmZXJlbmNlZFByb2NlZHVyZU5hbWU7ICAvLy9cblxuICAgIHByb2NlZHVyZVByZXNlbnQgPSBjb250ZXh0LmlzUHJvY2VkdXJlUHJlc2VudEJ5UHJvY2VkdXJlTmFtZShwcm9jZWR1cmVOYW1lKTtcblxuICAgIGlmICghcHJvY2VkdXJlUHJlc2VudCkge1xuICAgICAgY29udGV4dC50cmFjZShgVGhlICcke3Byb2NlZHVyZU5hbWV9JyBwcm9jZWR1cmUgaXMgbm90IHByZXNlbnQuYCk7XG5cbiAgICAgIHJldHVybiBiYWNrKCk7XG4gICAgfVxuXG4gICAgY29uc3QgbGFiZWxsZWRQcm9jZWR1cmVOYW1lID0gdGhpcy5nZXRMYWJlbGxlZFByb2NlZHVyZU5hbWUoKTtcblxuICAgIHByb2NlZHVyZU5hbWUgPSBsYWJlbGxlZFByb2NlZHVyZU5hbWU7ICAvLy9cblxuICAgIGNvbnN0IGFsaWFzZWQgPSB0aGlzLmlzQWxsb3dlZCgpO1xuXG4gICAgaWYgKGFsaWFzZWQpIHtcbiAgICAgIHByb2NlZHVyZVByZXNlbnQgPSBjb250ZXh0LmlzUHJvY2VkdXJlUHJlc2VudEJ5UHJvY2VkdXJlTmFtZShwcm9jZWR1cmVOYW1lKTtcblxuICAgICAgaWYgKHByb2NlZHVyZVByZXNlbnQpIHtcbiAgICAgICAgY29udGV4dC50cmFjZShgVGhlICcke3Byb2NlZHVyZU5hbWV9JyBwcm9jZWR1cmUgaXMgYWxyZWFkeSBwcmVzZW50LmApO1xuXG4gICAgICAgIHJldHVybiBiYWNrKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgaW1wb3J0QmluZGluZ1ByZXNlbnQgPSBjb250ZXh0LmlzSW1wb3J0QmluZGluZ1ByZXNlbnRCeUxhYmVsbGVkUHJvY2VkdXJlTmFtZShsYWJlbGxlZFByb2NlZHVyZU5hbWUpO1xuXG4gICAgaWYgKGltcG9ydEJpbmRpbmdQcmVzZW50KSB7XG4gICAgICBjb25zdCBsYWJlbFN0cmluZyA9IHRoaXMubGFiZWwuZ2V0U3RyaW5nKCk7XG5cbiAgICAgIGNvbnRleHQudHJhY2UoYFRoZSAnJHtpbXBvcnRCaW5kaW5nU3RyaW5nfScgaW1wb3J0IGJpbmRpbmcncyAnJHtsYWJlbFN0cmluZ30nIGxhYmVsIGlzIGFscmVhZHkgcHJlc2VudC4uLmApO1xuXG4gICAgICByZXR1cm4gYmFjaygpO1xuICAgIH1cblxuICAgIHByb2NlZHVyZU5hbWUgPSByZWZlcmVuY2VkUHJvY2VkdXJlTmFtZTsgIC8vL1xuXG4gICAgY29uc3QgcHJvY2VkdXJlID0gY29udGV4dC5maW5kUHJvY2VkdXJlQnlQcm9jZWR1cmVOYW1lKHByb2NlZHVyZU5hbWUpLFxuICAgICAgICAgIHJlbGVhc2VOYW1lQ29tcGFyZXMgPSBwcm9jZWR1cmUuY29tcGFyZVJlbGVhc2VOYW1lKHJlbGVhc2VOYW1lKTtcblxuICAgIGlmICghcmVsZWFzZU5hbWVDb21wYXJlcykge1xuICAgICAgY29udGV4dC50cmFjZShgVGhlICcke3Byb2NlZHVyZU5hbWV9JyBwcm9jZWR1cmUgaXMgbm90IGluIHRoZSAnJHtyZWxlYXNlTmFtZX0nIHBhY2thZ2UuYCk7XG5cbiAgICAgIHJldHVybiBiYWNrKCk7XG4gICAgfVxuXG4gICAgY29uc3QgZXhwb3J0ZWQgPSBwcm9jZWR1cmUuaXNFeHBvcnRlZCgpO1xuXG4gICAgaWYgKCFleHBvcnRlZCkge1xuICAgICAgY29udGV4dC50cmFjZShgVGhlICcke3Byb2NlZHVyZU5hbWV9JyBwcm9jZWR1cmUgaXMgbm90IGV4cG9ydGVkLmApO1xuXG4gICAgICByZXR1cm4gYmFjaygpO1xuICAgIH1cblxuICAgIGNvbnN0IGltcG9ydEJpbmRpbmcgPSB0aGlzO1xuXG4gICAgY29udGV4dC5hZGRJbXBvcnRCaW5kaW5nKGltcG9ydEJpbmRpbmcpO1xuXG4gICAgY29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke2ltcG9ydEJpbmRpbmdTdHJpbmd9JyBpbXBvcnQgYmluZGluZy5gKTtcblxuICAgIHJldHVybiBmb3J3YXJkKGNvbnRleHQsIGJhY2spO1xuICB9XG5cbiAgdG9KU09OKCkge1xuICAgIGxldCBqc29uO1xuXG4gICAgY29uc3Qgc3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKSxcbiAgICAgICAgICBsYWJlbEpTT04gPSBsYWJlbFRvTGFiZWxKU09OKHRoaXMubGFiZWwpLFxuICAgICAgICAgIHJlZmVyZW5jZUpKU09OID0gcmVmZXJlbmNlVG9SZWZlcmVuY2VKU09OKHRoaXMucmVmZXJlbmNlKSxcbiAgICAgICAgICBsYWJlbCA9IGxhYmVsSlNPTiwgIC8vL1xuICAgICAgICAgIHJlZmVyZW5jZSA9IHJlZmVyZW5jZUpKU09OOyAgLy8vXG5cbiAgICBqc29uID0ge1xuICAgICAgc3RyaW5nLFxuICAgICAgbGFiZWwsXG4gICAgICByZWZlcmVuY2VcbiAgICB9O1xuXG4gICAgcmV0dXJuIGpzb247XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiSW1wb3J0QmluZGluZ1wiO1xuXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uLCBjb250ZXh0KSB7XG4gICAgbGV0IGltcG9ydEJpbmRpbmc7XG5cbiAgICBpbnN0YW50aWF0ZSgoY29udGV4dCkgPT4ge1xuICAgICAgY29uc3QgeyBzdHJpbmcgfSA9IGpzb24sXG4gICAgICAgICAgICBicmVha1BvaW50ID0gbnVsbCxcbiAgICAgICAgICAgIGltcG9ydEJpbmRpbmdOb2RlID0gaW5zdGFudGlhdGVJbXBvcnRCaW5kaW5nKHN0cmluZywgY29udGV4dCksXG4gICAgICAgICAgICBsYWJlbCA9IGxhYmVsRnJvbUpTT04oanNvbiwgY29udGV4dCksXG4gICAgICAgICAgICByZWZlcmVuY2UgPSByZWZlcmVuY2VGcm9tSlNPTihqc29uLCBjb250ZXh0KSxcbiAgICAgICAgICAgIG5vZGUgPSBpbXBvcnRCaW5kaW5nTm9kZTsgLy8vXG5cbiAgICAgIGltcG9ydEJpbmRpbmcgPSBuZXcgSW1wb3J0QmluZGluZyhjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIGxhYmVsLCByZWZlcmVuY2UpO1xuICAgIH0sIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIGltcG9ydEJpbmRpbmc7XG4gIH1cbn0pO1xuIl0sIm5hbWVzIjpbImRlZmluZSIsIkltcG9ydEJpbmRpbmciLCJFbGVtZW50IiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50IiwibGFiZWwiLCJyZWZlcmVuY2UiLCJnZXRMYWJlbCIsImdldFJlZmVyZW5jZSIsImdldExhYmVsbGVkUHJvY2VkdXJlTmFtZSIsImxhYmVsTmFtZSIsImdldE5hbWUiLCJsYWJlbGxlZFByb2NlZHVyZU5hbWUiLCJnZXRSZWZlcmVuY2VkUHJvY2VkdXJlTmFtZSIsInJlZmVyZW5jZU5hbWUiLCJyZWZlcmVuY2VkUHJvY2VkdXJlTmFtZSIsImlzQWxsb3dlZCIsImFsaWFzZWQiLCJjb21wYXJlTGFibGxlZFByb2NlZHVyZU5hbWUiLCJsYWJlbGxlZFByb2NlZHVyZU5hbWVDb21wYXJlcyIsInZlcmlmeSIsInJlbGVhc2VOYW1lIiwiZm9yd2FyZCIsImJhY2siLCJpbXBvcnRCaW5kaW5nU3RyaW5nIiwiZ2V0U3RyaW5nIiwidHJhY2UiLCJwcm9jZWR1cmVOYW1lIiwicHJvY2VkdXJlUHJlc2VudCIsImlzUHJvY2VkdXJlUHJlc2VudEJ5UHJvY2VkdXJlTmFtZSIsImltcG9ydEJpbmRpbmdQcmVzZW50IiwiaXNJbXBvcnRCaW5kaW5nUHJlc2VudEJ5TGFiZWxsZWRQcm9jZWR1cmVOYW1lIiwibGFiZWxTdHJpbmciLCJwcm9jZWR1cmUiLCJmaW5kUHJvY2VkdXJlQnlQcm9jZWR1cmVOYW1lIiwicmVsZWFzZU5hbWVDb21wYXJlcyIsImNvbXBhcmVSZWxlYXNlTmFtZSIsImV4cG9ydGVkIiwiaXNFeHBvcnRlZCIsImltcG9ydEJpbmRpbmciLCJhZGRJbXBvcnRCaW5kaW5nIiwiZGVidWciLCJ0b0pTT04iLCJqc29uIiwibGFiZWxKU09OIiwibGFiZWxUb0xhYmVsSlNPTiIsInJlZmVyZW5jZUpKU09OIiwicmVmZXJlbmNlVG9SZWZlcmVuY2VKU09OIiwibmFtZSIsImZyb21KU09OIiwiaW5zdGFudGlhdGUiLCJpbXBvcnRCaW5kaW5nTm9kZSIsImluc3RhbnRpYXRlSW1wb3J0QmluZGluZyIsImxhYmVsRnJvbUpTT04iLCJyZWZlcmVuY2VGcm9tSlNPTiJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBU0E7OztlQUFBOzs7Z0NBUHdCOzBCQUVEOzZCQUNrQjtzQkFDb0Q7eUJBQ25FO01BRTFCLFdBQWVBLElBQUFBLGdCQUFNLEVBQUMsTUFBTUMsc0JBQXNCQyx1QkFBTztJQUN2RCxZQUFZQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxVQUFVLEVBQUVDLEtBQUssRUFBRUMsU0FBUyxDQUFFO1FBQy9ELEtBQUssQ0FBQ0wsU0FBU0MsUUFBUUMsTUFBTUM7UUFFN0IsSUFBSSxDQUFDQyxLQUFLLEdBQUdBO1FBQ2IsSUFBSSxDQUFDQyxTQUFTLEdBQUdBO0lBQ25CO0lBRUFDLFdBQVc7UUFDVCxPQUFPLElBQUksQ0FBQ0YsS0FBSztJQUNuQjtJQUVBRyxlQUFlO1FBQ2IsT0FBTyxJQUFJLENBQUNGLFNBQVM7SUFDdkI7SUFFQUcsMkJBQTJCO1FBQ3pCLE1BQU1DLFlBQVksSUFBSSxDQUFDTCxLQUFLLENBQUNNLE9BQU8sSUFDOUJDLHdCQUF3QkYsV0FBWSxHQUFHO1FBRTdDLE9BQU9FO0lBQ1Q7SUFFQUMsNkJBQTZCO1FBQzNCLE1BQU1DLGdCQUFnQixJQUFJLENBQUNSLFNBQVMsQ0FBQ0ssT0FBTyxJQUN0Q0ksMEJBQTBCRCxlQUFnQixHQUFHO1FBRW5ELE9BQU9DO0lBQ1Q7SUFFQUMsWUFBWTtRQUNWLE1BQU1KLHdCQUF3QixJQUFJLENBQUNILHdCQUF3QixJQUNyRE0sMEJBQTBCLElBQUksQ0FBQ0YsMEJBQTBCLElBQ3pESSxVQUFXTCwwQkFBMEJHO1FBRTNDLE9BQU9FO0lBQ1Q7SUFFQUMsNEJBQTRCTixxQkFBcUIsRUFBRTtRQUNqRCxNQUFNRixZQUFZLElBQUksQ0FBQ0wsS0FBSyxDQUFDTSxPQUFPLElBQzlCUSxnQ0FBaUNULGNBQWNFO1FBRXJELE9BQU9PO0lBQ1Q7SUFFQUMsT0FBT0MsV0FBVyxFQUFFcEIsT0FBTyxFQUFFcUIsT0FBTyxFQUFFQyxJQUFJLEVBQUU7UUFDMUMsTUFBTUMsc0JBQXNCLElBQUksQ0FBQ0MsU0FBUyxJQUFJLEdBQUc7UUFFakR4QixRQUFReUIsS0FBSyxDQUFDLENBQUMsZUFBZSxFQUFFRixvQkFBb0IsbUJBQW1CLENBQUM7UUFFeEUsSUFBSUcsZUFDQUM7UUFFSixNQUFNYiwwQkFBMEIsSUFBSSxDQUFDRiwwQkFBMEI7UUFFL0RjLGdCQUFnQloseUJBQTBCLEdBQUc7UUFFN0NhLG1CQUFtQjNCLFFBQVE0QixpQ0FBaUMsQ0FBQ0Y7UUFFN0QsSUFBSSxDQUFDQyxrQkFBa0I7WUFDckIzQixRQUFReUIsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFQyxjQUFjLDJCQUEyQixDQUFDO1lBRWhFLE9BQU9KO1FBQ1Q7UUFFQSxNQUFNWCx3QkFBd0IsSUFBSSxDQUFDSCx3QkFBd0I7UUFFM0RrQixnQkFBZ0JmLHVCQUF3QixHQUFHO1FBRTNDLE1BQU1LLFVBQVUsSUFBSSxDQUFDRCxTQUFTO1FBRTlCLElBQUlDLFNBQVM7WUFDWFcsbUJBQW1CM0IsUUFBUTRCLGlDQUFpQyxDQUFDRjtZQUU3RCxJQUFJQyxrQkFBa0I7Z0JBQ3BCM0IsUUFBUXlCLEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRUMsY0FBYywrQkFBK0IsQ0FBQztnQkFFcEUsT0FBT0o7WUFDVDtRQUNGO1FBRUEsTUFBTU8sdUJBQXVCN0IsUUFBUThCLDZDQUE2QyxDQUFDbkI7UUFFbkYsSUFBSWtCLHNCQUFzQjtZQUN4QixNQUFNRSxjQUFjLElBQUksQ0FBQzNCLEtBQUssQ0FBQ29CLFNBQVM7WUFFeEN4QixRQUFReUIsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFRixvQkFBb0Isb0JBQW9CLEVBQUVRLFlBQVksNkJBQTZCLENBQUM7WUFFMUcsT0FBT1Q7UUFDVDtRQUVBSSxnQkFBZ0JaLHlCQUEwQixHQUFHO1FBRTdDLE1BQU1rQixZQUFZaEMsUUFBUWlDLDRCQUE0QixDQUFDUCxnQkFDakRRLHNCQUFzQkYsVUFBVUcsa0JBQWtCLENBQUNmO1FBRXpELElBQUksQ0FBQ2MscUJBQXFCO1lBQ3hCbEMsUUFBUXlCLEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRUMsY0FBYywyQkFBMkIsRUFBRU4sWUFBWSxVQUFVLENBQUM7WUFFeEYsT0FBT0U7UUFDVDtRQUVBLE1BQU1jLFdBQVdKLFVBQVVLLFVBQVU7UUFFckMsSUFBSSxDQUFDRCxVQUFVO1lBQ2JwQyxRQUFReUIsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFQyxjQUFjLDRCQUE0QixDQUFDO1lBRWpFLE9BQU9KO1FBQ1Q7UUFFQSxNQUFNZ0IsZ0JBQWdCLElBQUk7UUFFMUJ0QyxRQUFRdUMsZ0JBQWdCLENBQUNEO1FBRXpCdEMsUUFBUXdDLEtBQUssQ0FBQyxDQUFDLGlCQUFpQixFQUFFakIsb0JBQW9CLGlCQUFpQixDQUFDO1FBRXhFLE9BQU9GLFFBQVFyQixTQUFTc0I7SUFDMUI7SUFFQW1CLFNBQVM7UUFDUCxJQUFJQztRQUVKLE1BQU16QyxTQUFTLElBQUksQ0FBQ3VCLFNBQVMsSUFDdkJtQixZQUFZQyxJQUFBQSxzQkFBZ0IsRUFBQyxJQUFJLENBQUN4QyxLQUFLLEdBQ3ZDeUMsaUJBQWlCQyxJQUFBQSw4QkFBd0IsRUFBQyxJQUFJLENBQUN6QyxTQUFTLEdBQ3hERCxRQUFRdUMsV0FDUnRDLFlBQVl3QyxnQkFBaUIsR0FBRztRQUV0Q0gsT0FBTztZQUNMekM7WUFDQUc7WUFDQUM7UUFDRjtRQUVBLE9BQU9xQztJQUNUO0lBRUEsT0FBT0ssT0FBTyxnQkFBZ0I7SUFFOUIsT0FBT0MsU0FBU04sSUFBSSxFQUFFMUMsT0FBTyxFQUFFO1FBQzdCLElBQUlzQztRQUVKVyxJQUFBQSxvQkFBVyxFQUFDLENBQUNqRDtZQUNYLE1BQU0sRUFBRUMsTUFBTSxFQUFFLEdBQUd5QyxNQUNidkMsYUFBYSxNQUNiK0Msb0JBQW9CQyxJQUFBQSxxQ0FBd0IsRUFBQ2xELFFBQVFELFVBQ3JESSxRQUFRZ0QsSUFBQUEsbUJBQWEsRUFBQ1YsTUFBTTFDLFVBQzVCSyxZQUFZZ0QsSUFBQUEsdUJBQWlCLEVBQUNYLE1BQU0xQyxVQUNwQ0UsT0FBT2dELG1CQUFtQixHQUFHO1lBRW5DWixnQkFBZ0IsSUFBSXhDLGNBQWNFLFNBQVNDLFFBQVFDLE1BQU1DLFlBQVlDLE9BQU9DO1FBQzlFLEdBQUdMO1FBRUgsT0FBT3NDO0lBQ1Q7QUFDRiJ9
@@ -54,13 +54,14 @@ const _default = (0, _elements.define)(class ImportStatement extends _occamlangu
54
54
  });
55
55
  static name = "ImportStatement";
56
56
  static fromJSON(json, context) {
57
- return (0, _context.instantiate)((context)=>{
57
+ let importStatement;
58
+ (0, _context.instantiate)((context)=>{
58
59
  const { string } = json, importStatementNode = (0, _instantiate.instantiateImportStatement)(string, context), node = importStatementNode, breakPoint = null, releaseName = (0, _json.releaseNameFromJSON)(json, context), importBindings = (0, _json.importBindingsFromJSON)(json, context);
59
60
  context = null;
60
- const importStatement = new ImportStatement(context, string, node, breakPoint, releaseName, importBindings);
61
- return importStatement;
61
+ importStatement = new ImportStatement(context, string, node, breakPoint, releaseName, importBindings);
62
62
  }, context);
63
+ return importStatement;
63
64
  }
64
65
  });
65
66
 
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2ltcG9ydFN0YXRlbWVudC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgRWxlbWVudCwgYnJlYWtQb2ludFV0aWxpdGllcywgY29udGludWF0aW9uVXRpbGl0aWVzIH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vZWxlbWVudHNcIjtcbmltcG9ydCB7IGluc3RhbnRpYXRlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9jb250ZXh0XCI7XG5pbXBvcnQgeyBpbnN0YW50aWF0ZUltcG9ydFN0YXRlbWVudCB9IGZyb20gXCIuLi9wcm9jZXNzL2luc3RhbnRpYXRlXCI7XG5pbXBvcnQgeyByZWxlYXNlTmFtZUZyb21KU09OLCBpbXBvcnRCaW5kaW5nc0Zyb21KU09OLCByZWxlYXNlTmFtZVRvUmVsZWFzZU5hbWVKU09OLCBpbXBvcnRCaW5kaW5nc1RvSW1wb3J0QmluZGluZ3NKU09OIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9qc29uXCI7XG5cbmNvbnN0IHsgZXZlcnkgfSA9IGNvbnRpbnVhdGlvblV0aWxpdGllcyxcbiAgICAgIHsgdW5icmVha2FibGUgfSA9IGJyZWFrUG9pbnRVdGlsaXRpZXM7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZShjbGFzcyBJbXBvcnRTdGF0ZW1lbnQgZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCByZWxlYXNlTmFtZSwgaW1wb3J0QmluZGluZ3MpIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQpO1xuXG4gICAgdGhpcy5yZWxlYXNlTmFtZSA9IHJlbGVhc2VOYW1lO1xuICAgIHRoaXMuaW1wb3J0QmluZGluZ3MgPSBpbXBvcnRCaW5kaW5ncztcbiAgfVxuXG4gIGdldFJlbGVhc2VOYW1lKCkge1xuICAgIHJldHVybiB0aGlzLnJlbGVhc2VOYW1lO1xuICB9XG5cbiAgZ2V0SW1wb3J0QmluZGluZ3MoKSB7XG4gICAgcmV0dXJuIHRoaXMuaW1wb3J0QmluZGluZ3M7XG4gIH1cblxuICB0b0pTT04oKSB7XG4gICAgbGV0IGpzb247XG5cbiAgICBjb25zdCBzdHJpbmcgPSB0aGlzLmdldFN0cmluZygpLFxuICAgICAgICAgIHJlbGVhc2VOYW1lSlNPTiA9IHJlbGVhc2VOYW1lVG9SZWxlYXNlTmFtZUpTT04odGhpcy5yZWxlYXNlTmFtZSksXG4gICAgICAgICAgaW1wb3J0QmluZGluZ3NKU09OID0gaW1wb3J0QmluZGluZ3NUb0ltcG9ydEJpbmRpbmdzSlNPTih0aGlzLmltcG9ydEJpbmRpbmdzKSxcbiAgICAgICAgICByZWxlYXNlTmFtZSA9IHJlbGVhc2VOYW1lSlNPTiwgIC8vL1xuICAgICAgICAgIGltcG9ydEJpbmRpbmdzID0gaW1wb3J0QmluZGluZ3NKU09OOyAgLy8vXG5cbiAgICBqc29uID0ge1xuICAgICAgc3RyaW5nLFxuICAgICAgcmVsZWFzZU5hbWUsXG4gICAgICBpbXBvcnRCaW5kaW5nc1xuICAgIH07XG5cbiAgICByZXR1cm4ganNvbjtcbiAgfVxuXG4gIHZlcmlmeSA9IHVuYnJlYWthYmxlKGZ1bmN0aW9uIChjb250ZXh0LCBmb3J3YXJkLCBiYWNrKSB7XG4gICAgY29uc3QgaW1wb3J0U3RhdGVtZW50U3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke2ltcG9ydFN0YXRlbWVudFN0cmluZ30nIGltcG9ydCBzdGF0ZW1lbnQuLi5gKTtcblxuICAgIHJldHVybiBldmVyeSh0aGlzLmltcG9ydEJpbmRpbmdzLCAoaW1wb3J0QmluZGluZywgY29udGV4dCwgZm9yd2FyZCwgYmFjaykgPT4ge1xuICAgICAgcmV0dXJuIGltcG9ydEJpbmRpbmcudmVyaWZ5KHRoaXMucmVsZWFzZU5hbWUsIGNvbnRleHQsIGZvcndhcmQsIGJhY2spO1xuICAgIH0sIGNvbnRleHQsIChjb250ZXh0LCBiYWNrKSA9PiB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7aW1wb3J0U3RhdGVtZW50U3RyaW5nfScgaW1wb3J0IHN0YXRlbWVudC5gKTtcblxuICAgICAgcmV0dXJuIGZvcndhcmQoY29udGV4dCwgYmFjayk7XG4gICAgfSwgKGV4Y2VwdGlvbikgPT4ge1xuICAgICAgaWYgKGV4Y2VwdGlvbikge1xuICAgICAgICByZXR1cm4gYmFjayhleGNlcHRpb24pO1xuICAgICAgfVxuXG4gICAgICBjb250ZXh0LnRyYWNlKGBVbmFibGUgdG8gdmVyaWZ5IHRoZSAnJHtpbXBvcnRTdGF0ZW1lbnRTdHJpbmd9JyBpbXBvcnQgc3RhdGVtZW50LmApO1xuXG4gICAgICByZXR1cm4gYmFjaygpO1xuICAgIH0pO1xuICB9KTtcblxuICBzdGF0aWMgbmFtZSA9IFwiSW1wb3J0U3RhdGVtZW50XCI7XG5cbiAgc3RhdGljIGZyb21KU09OKGpzb24sIGNvbnRleHQpIHtcbiAgICByZXR1cm4gaW5zdGFudGlhdGUoKGNvbnRleHQpID0+IHtcbiAgICAgIGNvbnN0IHsgc3RyaW5nIH0gPSBqc29uLFxuICAgICAgICAgICAgaW1wb3J0U3RhdGVtZW50Tm9kZSA9IGluc3RhbnRpYXRlSW1wb3J0U3RhdGVtZW50KHN0cmluZywgY29udGV4dCksXG4gICAgICAgICAgICBub2RlID0gaW1wb3J0U3RhdGVtZW50Tm9kZSwgIC8vL1xuICAgICAgICAgICAgYnJlYWtQb2ludCA9IG51bGwsXG4gICAgICAgICAgICByZWxlYXNlTmFtZSA9IHJlbGVhc2VOYW1lRnJvbUpTT04oanNvbiwgY29udGV4dCksXG4gICAgICAgICAgICBpbXBvcnRCaW5kaW5ncyA9IGltcG9ydEJpbmRpbmdzRnJvbUpTT04oanNvbiwgY29udGV4dCk7XG5cbiAgICAgIGNvbnRleHQgPSBudWxsO1xuXG4gICAgICBjb25zdCBpbXBvcnRTdGF0ZW1lbnQgPSBuZXcgSW1wb3J0U3RhdGVtZW50KGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgcmVsZWFzZU5hbWUsIGltcG9ydEJpbmRpbmdzKTtcblxuICAgICAgcmV0dXJuIGltcG9ydFN0YXRlbWVudDtcbiAgICB9LCBjb250ZXh0KTtcbiAgfVxufSk7XG4iXSwibmFtZXMiOlsiZXZlcnkiLCJjb250aW51YXRpb25VdGlsaXRpZXMiLCJ1bmJyZWFrYWJsZSIsImJyZWFrUG9pbnRVdGlsaXRpZXMiLCJkZWZpbmUiLCJJbXBvcnRTdGF0ZW1lbnQiLCJFbGVtZW50IiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50IiwicmVsZWFzZU5hbWUiLCJpbXBvcnRCaW5kaW5ncyIsImdldFJlbGVhc2VOYW1lIiwiZ2V0SW1wb3J0QmluZGluZ3MiLCJ0b0pTT04iLCJqc29uIiwiZ2V0U3RyaW5nIiwicmVsZWFzZU5hbWVKU09OIiwicmVsZWFzZU5hbWVUb1JlbGVhc2VOYW1lSlNPTiIsImltcG9ydEJpbmRpbmdzSlNPTiIsImltcG9ydEJpbmRpbmdzVG9JbXBvcnRCaW5kaW5nc0pTT04iLCJ2ZXJpZnkiLCJmb3J3YXJkIiwiYmFjayIsImltcG9ydFN0YXRlbWVudFN0cmluZyIsInRyYWNlIiwiaW1wb3J0QmluZGluZyIsImRlYnVnIiwiZXhjZXB0aW9uIiwibmFtZSIsImZyb21KU09OIiwiaW5zdGFudGlhdGUiLCJpbXBvcnRTdGF0ZW1lbnROb2RlIiwiaW5zdGFudGlhdGVJbXBvcnRTdGF0ZW1lbnQiLCJyZWxlYXNlTmFtZUZyb21KU09OIiwiaW1wb3J0QmluZGluZ3NGcm9tSlNPTiIsImltcG9ydFN0YXRlbWVudCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBWUE7OztlQUFBOzs7Z0NBVm9FOzBCQUU3Qzt5QkFDSzs2QkFDZTtzQkFDbUY7QUFFOUgsTUFBTSxFQUFFQSxLQUFLLEVBQUUsR0FBR0MscUNBQXFCLEVBQ2pDLEVBQUVDLFdBQVcsRUFBRSxHQUFHQyxtQ0FBbUI7TUFFM0MsV0FBZUMsSUFBQUEsZ0JBQU0sRUFBQyxNQUFNQyx3QkFBd0JDLHVCQUFPO0lBQ3pELFlBQVlDLE9BQU8sRUFBRUMsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLFVBQVUsRUFBRUMsV0FBVyxFQUFFQyxjQUFjLENBQUU7UUFDMUUsS0FBSyxDQUFDTCxTQUFTQyxRQUFRQyxNQUFNQztRQUU3QixJQUFJLENBQUNDLFdBQVcsR0FBR0E7UUFDbkIsSUFBSSxDQUFDQyxjQUFjLEdBQUdBO0lBQ3hCO0lBRUFDLGlCQUFpQjtRQUNmLE9BQU8sSUFBSSxDQUFDRixXQUFXO0lBQ3pCO0lBRUFHLG9CQUFvQjtRQUNsQixPQUFPLElBQUksQ0FBQ0YsY0FBYztJQUM1QjtJQUVBRyxTQUFTO1FBQ1AsSUFBSUM7UUFFSixNQUFNUixTQUFTLElBQUksQ0FBQ1MsU0FBUyxJQUN2QkMsa0JBQWtCQyxJQUFBQSxrQ0FBNEIsRUFBQyxJQUFJLENBQUNSLFdBQVcsR0FDL0RTLHFCQUFxQkMsSUFBQUEsd0NBQWtDLEVBQUMsSUFBSSxDQUFDVCxjQUFjLEdBQzNFRCxjQUFjTyxpQkFDZE4saUJBQWlCUSxvQkFBcUIsR0FBRztRQUUvQ0osT0FBTztZQUNMUjtZQUNBRztZQUNBQztRQUNGO1FBRUEsT0FBT0k7SUFDVDtJQUVBTSxTQUFTcEIsWUFBWSxTQUFVSyxPQUFPLEVBQUVnQixPQUFPLEVBQUVDLElBQUk7UUFDbkQsTUFBTUMsd0JBQXdCLElBQUksQ0FBQ1IsU0FBUyxJQUFJLEdBQUc7UUFFbkRWLFFBQVFtQixLQUFLLENBQUMsQ0FBQyxlQUFlLEVBQUVELHNCQUFzQixxQkFBcUIsQ0FBQztRQUU1RSxPQUFPekIsTUFBTSxJQUFJLENBQUNZLGNBQWMsRUFBRSxDQUFDZSxlQUFlcEIsU0FBU2dCLFNBQVNDO1lBQ2xFLE9BQU9HLGNBQWNMLE1BQU0sQ0FBQyxJQUFJLENBQUNYLFdBQVcsRUFBRUosU0FBU2dCLFNBQVNDO1FBQ2xFLEdBQUdqQixTQUFTLENBQUNBLFNBQVNpQjtZQUNwQmpCLFFBQVFxQixLQUFLLENBQUMsQ0FBQyxpQkFBaUIsRUFBRUgsc0JBQXNCLG1CQUFtQixDQUFDO1lBRTVFLE9BQU9GLFFBQVFoQixTQUFTaUI7UUFDMUIsR0FBRyxDQUFDSztZQUNGLElBQUlBLFdBQVc7Z0JBQ2IsT0FBT0wsS0FBS0s7WUFDZDtZQUVBdEIsUUFBUW1CLEtBQUssQ0FBQyxDQUFDLHNCQUFzQixFQUFFRCxzQkFBc0IsbUJBQW1CLENBQUM7WUFFakYsT0FBT0Q7UUFDVDtJQUNGLEdBQUc7SUFFSCxPQUFPTSxPQUFPLGtCQUFrQjtJQUVoQyxPQUFPQyxTQUFTZixJQUFJLEVBQUVULE9BQU8sRUFBRTtRQUM3QixPQUFPeUIsSUFBQUEsb0JBQVcsRUFBQyxDQUFDekI7WUFDbEIsTUFBTSxFQUFFQyxNQUFNLEVBQUUsR0FBR1EsTUFDYmlCLHNCQUFzQkMsSUFBQUEsdUNBQTBCLEVBQUMxQixRQUFRRCxVQUN6REUsT0FBT3dCLHFCQUNQdkIsYUFBYSxNQUNiQyxjQUFjd0IsSUFBQUEseUJBQW1CLEVBQUNuQixNQUFNVCxVQUN4Q0ssaUJBQWlCd0IsSUFBQUEsNEJBQXNCLEVBQUNwQixNQUFNVDtZQUVwREEsVUFBVTtZQUVWLE1BQU04QixrQkFBa0IsSUFBSWhDLGdCQUFnQkUsU0FBU0MsUUFBUUMsTUFBTUMsWUFBWUMsYUFBYUM7WUFFNUYsT0FBT3lCO1FBQ1QsR0FBRzlCO0lBQ0w7QUFDRiJ9
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2ltcG9ydFN0YXRlbWVudC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgRWxlbWVudCwgYnJlYWtQb2ludFV0aWxpdGllcywgY29udGludWF0aW9uVXRpbGl0aWVzIH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vZWxlbWVudHNcIjtcbmltcG9ydCB7IGluc3RhbnRpYXRlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9jb250ZXh0XCI7XG5pbXBvcnQgeyBpbnN0YW50aWF0ZUltcG9ydFN0YXRlbWVudCB9IGZyb20gXCIuLi9wcm9jZXNzL2luc3RhbnRpYXRlXCI7XG5pbXBvcnQgeyByZWxlYXNlTmFtZUZyb21KU09OLCBpbXBvcnRCaW5kaW5nc0Zyb21KU09OLCByZWxlYXNlTmFtZVRvUmVsZWFzZU5hbWVKU09OLCBpbXBvcnRCaW5kaW5nc1RvSW1wb3J0QmluZGluZ3NKU09OIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9qc29uXCI7XG5cbmNvbnN0IHsgZXZlcnkgfSA9IGNvbnRpbnVhdGlvblV0aWxpdGllcyxcbiAgICAgIHsgdW5icmVha2FibGUgfSA9IGJyZWFrUG9pbnRVdGlsaXRpZXM7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZShjbGFzcyBJbXBvcnRTdGF0ZW1lbnQgZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCByZWxlYXNlTmFtZSwgaW1wb3J0QmluZGluZ3MpIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQpO1xuXG4gICAgdGhpcy5yZWxlYXNlTmFtZSA9IHJlbGVhc2VOYW1lO1xuICAgIHRoaXMuaW1wb3J0QmluZGluZ3MgPSBpbXBvcnRCaW5kaW5ncztcbiAgfVxuXG4gIGdldFJlbGVhc2VOYW1lKCkge1xuICAgIHJldHVybiB0aGlzLnJlbGVhc2VOYW1lO1xuICB9XG5cbiAgZ2V0SW1wb3J0QmluZGluZ3MoKSB7XG4gICAgcmV0dXJuIHRoaXMuaW1wb3J0QmluZGluZ3M7XG4gIH1cblxuICB0b0pTT04oKSB7XG4gICAgbGV0IGpzb247XG5cbiAgICBjb25zdCBzdHJpbmcgPSB0aGlzLmdldFN0cmluZygpLFxuICAgICAgICAgIHJlbGVhc2VOYW1lSlNPTiA9IHJlbGVhc2VOYW1lVG9SZWxlYXNlTmFtZUpTT04odGhpcy5yZWxlYXNlTmFtZSksXG4gICAgICAgICAgaW1wb3J0QmluZGluZ3NKU09OID0gaW1wb3J0QmluZGluZ3NUb0ltcG9ydEJpbmRpbmdzSlNPTih0aGlzLmltcG9ydEJpbmRpbmdzKSxcbiAgICAgICAgICByZWxlYXNlTmFtZSA9IHJlbGVhc2VOYW1lSlNPTiwgIC8vL1xuICAgICAgICAgIGltcG9ydEJpbmRpbmdzID0gaW1wb3J0QmluZGluZ3NKU09OOyAgLy8vXG5cbiAgICBqc29uID0ge1xuICAgICAgc3RyaW5nLFxuICAgICAgcmVsZWFzZU5hbWUsXG4gICAgICBpbXBvcnRCaW5kaW5nc1xuICAgIH07XG5cbiAgICByZXR1cm4ganNvbjtcbiAgfVxuXG4gIHZlcmlmeSA9IHVuYnJlYWthYmxlKGZ1bmN0aW9uIChjb250ZXh0LCBmb3J3YXJkLCBiYWNrKSB7XG4gICAgY29uc3QgaW1wb3J0U3RhdGVtZW50U3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke2ltcG9ydFN0YXRlbWVudFN0cmluZ30nIGltcG9ydCBzdGF0ZW1lbnQuLi5gKTtcblxuICAgIHJldHVybiBldmVyeSh0aGlzLmltcG9ydEJpbmRpbmdzLCAoaW1wb3J0QmluZGluZywgY29udGV4dCwgZm9yd2FyZCwgYmFjaykgPT4ge1xuICAgICAgcmV0dXJuIGltcG9ydEJpbmRpbmcudmVyaWZ5KHRoaXMucmVsZWFzZU5hbWUsIGNvbnRleHQsIGZvcndhcmQsIGJhY2spO1xuICAgIH0sIGNvbnRleHQsIChjb250ZXh0LCBiYWNrKSA9PiB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7aW1wb3J0U3RhdGVtZW50U3RyaW5nfScgaW1wb3J0IHN0YXRlbWVudC5gKTtcblxuICAgICAgcmV0dXJuIGZvcndhcmQoY29udGV4dCwgYmFjayk7XG4gICAgfSwgKGV4Y2VwdGlvbikgPT4ge1xuICAgICAgaWYgKGV4Y2VwdGlvbikge1xuICAgICAgICByZXR1cm4gYmFjayhleGNlcHRpb24pO1xuICAgICAgfVxuXG4gICAgICBjb250ZXh0LnRyYWNlKGBVbmFibGUgdG8gdmVyaWZ5IHRoZSAnJHtpbXBvcnRTdGF0ZW1lbnRTdHJpbmd9JyBpbXBvcnQgc3RhdGVtZW50LmApO1xuXG4gICAgICByZXR1cm4gYmFjaygpO1xuICAgIH0pO1xuICB9KTtcblxuICBzdGF0aWMgbmFtZSA9IFwiSW1wb3J0U3RhdGVtZW50XCI7XG5cbiAgc3RhdGljIGZyb21KU09OKGpzb24sIGNvbnRleHQpIHtcbiAgICBsZXQgaW1wb3J0U3RhdGVtZW50O1xuXG4gICAgaW5zdGFudGlhdGUoKGNvbnRleHQpID0+IHtcbiAgICAgIGNvbnN0IHsgc3RyaW5nIH0gPSBqc29uLFxuICAgICAgICAgICAgaW1wb3J0U3RhdGVtZW50Tm9kZSA9IGluc3RhbnRpYXRlSW1wb3J0U3RhdGVtZW50KHN0cmluZywgY29udGV4dCksXG4gICAgICAgICAgICBub2RlID0gaW1wb3J0U3RhdGVtZW50Tm9kZSwgIC8vL1xuICAgICAgICAgICAgYnJlYWtQb2ludCA9IG51bGwsXG4gICAgICAgICAgICByZWxlYXNlTmFtZSA9IHJlbGVhc2VOYW1lRnJvbUpTT04oanNvbiwgY29udGV4dCksXG4gICAgICAgICAgICBpbXBvcnRCaW5kaW5ncyA9IGltcG9ydEJpbmRpbmdzRnJvbUpTT04oanNvbiwgY29udGV4dCk7XG5cbiAgICAgIGNvbnRleHQgPSBudWxsO1xuXG4gICAgICBpbXBvcnRTdGF0ZW1lbnQgPSBuZXcgSW1wb3J0U3RhdGVtZW50KGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgcmVsZWFzZU5hbWUsIGltcG9ydEJpbmRpbmdzKTtcbiAgICB9LCBjb250ZXh0KTtcblxuICAgIHJldHVybiBpbXBvcnRTdGF0ZW1lbnQ7XG4gIH1cbn0pO1xuIl0sIm5hbWVzIjpbImV2ZXJ5IiwiY29udGludWF0aW9uVXRpbGl0aWVzIiwidW5icmVha2FibGUiLCJicmVha1BvaW50VXRpbGl0aWVzIiwiZGVmaW5lIiwiSW1wb3J0U3RhdGVtZW50IiwiRWxlbWVudCIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiYnJlYWtQb2ludCIsInJlbGVhc2VOYW1lIiwiaW1wb3J0QmluZGluZ3MiLCJnZXRSZWxlYXNlTmFtZSIsImdldEltcG9ydEJpbmRpbmdzIiwidG9KU09OIiwianNvbiIsImdldFN0cmluZyIsInJlbGVhc2VOYW1lSlNPTiIsInJlbGVhc2VOYW1lVG9SZWxlYXNlTmFtZUpTT04iLCJpbXBvcnRCaW5kaW5nc0pTT04iLCJpbXBvcnRCaW5kaW5nc1RvSW1wb3J0QmluZGluZ3NKU09OIiwidmVyaWZ5IiwiZm9yd2FyZCIsImJhY2siLCJpbXBvcnRTdGF0ZW1lbnRTdHJpbmciLCJ0cmFjZSIsImltcG9ydEJpbmRpbmciLCJkZWJ1ZyIsImV4Y2VwdGlvbiIsIm5hbWUiLCJmcm9tSlNPTiIsImltcG9ydFN0YXRlbWVudCIsImluc3RhbnRpYXRlIiwiaW1wb3J0U3RhdGVtZW50Tm9kZSIsImluc3RhbnRpYXRlSW1wb3J0U3RhdGVtZW50IiwicmVsZWFzZU5hbWVGcm9tSlNPTiIsImltcG9ydEJpbmRpbmdzRnJvbUpTT04iXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVlBOzs7ZUFBQTs7O2dDQVZvRTswQkFFN0M7eUJBQ0s7NkJBQ2U7c0JBQ21GO0FBRTlILE1BQU0sRUFBRUEsS0FBSyxFQUFFLEdBQUdDLHFDQUFxQixFQUNqQyxFQUFFQyxXQUFXLEVBQUUsR0FBR0Ms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
@@ -35,13 +35,14 @@ const _default = (0, _elements.define)(class Label extends _occamlanguages.Eleme
35
35
  }
36
36
  static name = "Label";
37
37
  static fromJSON(json, context) {
38
- return (0, _context.instantiate)((context)=>{
38
+ let label;
39
+ (0, _context.instantiate)((context)=>{
39
40
  const { string } = json, labelNode = (0, _instantiate.instantiateLabel)(string, context), node = labelNode, breakPoint = null, name = (0, _element.nameFromLabelNode)(labelNode, context);
40
41
  context = null;
41
- const label = new Label(context, string, node, breakPoint, name);
42
- return label;
42
+ label = new Label(context, string, node, breakPoint, name);
43
43
  }, context);
44
+ return label;
44
45
  }
45
46
  });
46
47
 
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2xhYmVsLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFbGVtZW50IH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vZWxlbWVudHNcIjtcbmltcG9ydCB7IGluc3RhbnRpYXRlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9jb250ZXh0XCI7XG5pbXBvcnQgeyBpbnN0YW50aWF0ZUxhYmVsIH0gZnJvbSBcIi4uL3Byb2Nlc3MvaW5zdGFudGlhdGVcIjtcbmltcG9ydCB7IG5hbWVGcm9tTGFiZWxOb2RlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9lbGVtZW50XCI7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZShjbGFzcyBMYWJlbCBleHRlbmRzIEVsZW1lbnQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIG5hbWUpIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQpO1xuXG4gICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgfVxuXG4gIGdldE5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMubmFtZTtcbiAgfVxuXG4gIGNvbXBhcmVQcm9jZWR1cmVOYW1lKHByb2NlZHVyZU5hbWUpIHtcbiAgICBjb25zdCBwcm9jZWR1cmVOYW1lQ29tcGFyZXMgPSAodGhpcy5uYW1lID09PSBwcm9jZWR1cmVOYW1lKTtcblxuICAgIHJldHVybiBwcm9jZWR1cmVOYW1lQ29tcGFyZXM7XG4gIH1cblxuICB0b0pTT04oKSB7XG4gICAgbGV0IGpzb247XG5cbiAgICBjb25zdCBzdHJpbmcgPSB0aGlzLmdldFN0cmluZygpO1xuXG4gICAganNvbiA9IHtcbiAgICAgIHN0cmluZ1xuICAgIH07XG5cbiAgICByZXR1cm4ganNvbjtcbiAgfVxuXG4gIHN0YXRpYyBuYW1lID0gXCJMYWJlbFwiO1xuXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uLCBjb250ZXh0KSB7XG4gICAgcmV0dXJuIGluc3RhbnRpYXRlKChjb250ZXh0KSA9PiB7XG4gICAgICBjb25zdCB7IHN0cmluZyB9ID0ganNvbixcbiAgICAgICAgICAgIGxhYmVsTm9kZSA9IGluc3RhbnRpYXRlTGFiZWwoc3RyaW5nLCBjb250ZXh0KSxcbiAgICAgICAgICAgIG5vZGUgPSBsYWJlbE5vZGUsICAvLy9cbiAgICAgICAgICAgIGJyZWFrUG9pbnQgPSBudWxsLFxuICAgICAgICAgICAgbmFtZSA9IG5hbWVGcm9tTGFiZWxOb2RlKGxhYmVsTm9kZSwgY29udGV4dCk7XG5cbiAgICAgIGNvbnRleHQgPSBudWxsO1xuXG4gICAgICBjb25zdCBsYWJlbCA9IG5ldyBMYWJlbChjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIG5hbWUpO1xuXG4gICAgICByZXR1cm4gbGFiZWw7XG4gICAgfSwgY29udGV4dCk7XG4gIH1cbn0pO1xuIl0sIm5hbWVzIjpbImRlZmluZSIsIkxhYmVsIiwiRWxlbWVudCIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiYnJlYWtQb2ludCIsIm5hbWUiLCJnZXROYW1lIiwiY29tcGFyZVByb2NlZHVyZU5hbWUiLCJwcm9jZWR1cmVOYW1lIiwicHJvY2VkdXJlTmFtZUNvbXBhcmVzIiwidG9KU09OIiwianNvbiIsImdldFN0cmluZyIsImZyb21KU09OIiwiaW5zdGFudGlhdGUiLCJsYWJlbE5vZGUiLCJpbnN0YW50aWF0ZUxhYmVsIiwibmFtZUZyb21MYWJlbE5vZGUiLCJsYWJlbCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBU0E7OztlQUFBOzs7Z0NBUHdCOzBCQUVEO3lCQUNLOzZCQUNLO3lCQUNDO01BRWxDLFdBQWVBLElBQUFBLGdCQUFNLEVBQUMsTUFBTUMsY0FBY0MsdUJBQU87SUFDL0MsWUFBWUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsVUFBVSxFQUFFQyxJQUFJLENBQUU7UUFDbkQsS0FBSyxDQUFDSixTQUFTQyxRQUFRQyxNQUFNQztRQUU3QixJQUFJLENBQUNDLElBQUksR0FBR0E7SUFDZDtJQUVBQyxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUNELElBQUk7SUFDbEI7SUFFQUUscUJBQXFCQyxhQUFhLEVBQUU7UUFDbEMsTUFBTUMsd0JBQXlCLElBQUksQ0FBQ0osSUFBSSxLQUFLRztRQUU3QyxPQUFPQztJQUNUO0lBRUFDLFNBQVM7UUFDUCxJQUFJQztRQUVKLE1BQU1ULFNBQVMsSUFBSSxDQUFDVSxTQUFTO1FBRTdCRCxPQUFPO1lBQ0xUO1FBQ0Y7UUFFQSxPQUFPUztJQUNUO0lBRUEsT0FBT04sT0FBTyxRQUFRO0lBRXRCLE9BQU9RLFNBQVNGLElBQUksRUFBRVYsT0FBTyxFQUFFO1FBQzdCLE9BQU9hLElBQUFBLG9CQUFXLEVBQUMsQ0FBQ2I7WUFDbEIsTUFBTSxFQUFFQyxNQUFNLEVBQUUsR0FBR1MsTUFDYkksWUFBWUMsSUFBQUEsNkJBQWdCLEVBQUNkLFFBQVFELFVBQ3JDRSxPQUFPWSxXQUNQWCxhQUFhLE1BQ2JDLE9BQU9ZLElBQUFBLDBCQUFpQixFQUFDRixXQUFXZDtZQUUxQ0EsVUFBVTtZQUVWLE1BQU1pQixRQUFRLElBQUluQixNQUFNRSxTQUFTQyxRQUFRQyxNQUFNQyxZQUFZQztZQUUzRCxPQUFPYTtRQUNULEdBQUdqQjtJQUNMO0FBQ0YifQ==
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2xhYmVsLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFbGVtZW50IH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vZWxlbWVudHNcIjtcbmltcG9ydCB7IGluc3RhbnRpYXRlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9jb250ZXh0XCI7XG5pbXBvcnQgeyBpbnN0YW50aWF0ZUxhYmVsIH0gZnJvbSBcIi4uL3Byb2Nlc3MvaW5zdGFudGlhdGVcIjtcbmltcG9ydCB7IG5hbWVGcm9tTGFiZWxOb2RlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9lbGVtZW50XCI7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZShjbGFzcyBMYWJlbCBleHRlbmRzIEVsZW1lbnQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIG5hbWUpIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQpO1xuXG4gICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgfVxuXG4gIGdldE5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMubmFtZTtcbiAgfVxuXG4gIGNvbXBhcmVQcm9jZWR1cmVOYW1lKHByb2NlZHVyZU5hbWUpIHtcbiAgICBjb25zdCBwcm9jZWR1cmVOYW1lQ29tcGFyZXMgPSAodGhpcy5uYW1lID09PSBwcm9jZWR1cmVOYW1lKTtcblxuICAgIHJldHVybiBwcm9jZWR1cmVOYW1lQ29tcGFyZXM7XG4gIH1cblxuICB0b0pTT04oKSB7XG4gICAgbGV0IGpzb247XG5cbiAgICBjb25zdCBzdHJpbmcgPSB0aGlzLmdldFN0cmluZygpO1xuXG4gICAganNvbiA9IHtcbiAgICAgIHN0cmluZ1xuICAgIH07XG5cbiAgICByZXR1cm4ganNvbjtcbiAgfVxuXG4gIHN0YXRpYyBuYW1lID0gXCJMYWJlbFwiO1xuXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uLCBjb250ZXh0KSB7XG4gICAgbGV0IGxhYmVsO1xuXG4gICAgaW5zdGFudGlhdGUoKGNvbnRleHQpID0+IHtcbiAgICAgIGNvbnN0IHsgc3RyaW5nIH0gPSBqc29uLFxuICAgICAgICAgICAgbGFiZWxOb2RlID0gaW5zdGFudGlhdGVMYWJlbChzdHJpbmcsIGNvbnRleHQpLFxuICAgICAgICAgICAgbm9kZSA9IGxhYmVsTm9kZSwgIC8vL1xuICAgICAgICAgICAgYnJlYWtQb2ludCA9IG51bGwsXG4gICAgICAgICAgICBuYW1lID0gbmFtZUZyb21MYWJlbE5vZGUobGFiZWxOb2RlLCBjb250ZXh0KTtcblxuICAgICAgY29udGV4dCA9IG51bGw7XG5cbiAgICAgIGxhYmVsID0gbmV3IExhYmVsKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgbmFtZSk7XG4gICAgfSwgY29udGV4dCk7XG5cbiAgICByZXR1cm4gbGFiZWw7XG4gIH1cbn0pO1xuIl0sIm5hbWVzIjpbImRlZmluZSIsIkxhYmVsIiwiRWxlbWVudCIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiYnJlYWtQb2ludCIsIm5hbWUiLCJnZXROYW1lIiwiY29tcGFyZVByb2NlZHVyZU5hbWUiLCJwcm9jZWR1cmVOYW1lIiwicHJvY2VkdXJlTmFtZUNvbXBhcmVzIiwidG9KU09OIiwianNvbiIsImdldFN0cmluZyIsImZyb21KU09OIiwibGFiZWwiLCJpbnN0YW50aWF0ZSIsImxhYmVsTm9kZSIsImluc3RhbnRpYXRlTGFiZWwiLCJuYW1lRnJvbUxhYmVsTm9kZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBU0E7OztlQUFBOzs7Z0NBUHdCOzBCQUVEO3lCQUNLOzZCQUNLO3lCQUNDO01BRWxDLFdBQWVBLElBQUFBLGdCQUFNLEVBQUMsTUFBTUMsY0FBY0MsdUJBQU87SUFDL0MsWUFBWUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsVUFBVSxFQUFFQyxJQUFJLENBQUU7UUFDbkQsS0FBSyxDQUFDSixTQUFTQyxRQUFRQyxNQUFNQztRQUU3QixJQUFJLENBQUNDLElBQUksR0FBR0E7SUFDZDtJQUVBQyxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUNELElBQUk7SUFDbEI7SUFFQUUscUJBQXFCQyxhQUFhLEVBQUU7UUFDbEMsTUFBTUMsd0JBQXlCLElBQUksQ0FBQ0osSUFBSSxLQUFLRztRQUU3QyxPQUFPQztJQUNUO0lBRUFDLFNBQVM7UUFDUCxJQUFJQztRQUVKLE1BQU1ULFNBQVMsSUFBSSxDQUFDVSxTQUFTO1FBRTdCRCxPQUFPO1lBQ0xUO1FBQ0Y7UUFFQSxPQUFPUztJQUNUO0lBRUEsT0FBT04sT0FBTyxRQUFRO0lBRXRCLE9BQU9RLFNBQVNGLElBQUksRUFBRVYsT0FBTyxFQUFFO1FBQzdCLElBQUlhO1FBRUpDLElBQUFBLG9CQUFXLEVBQUMsQ0FBQ2Q7WUFDWCxNQUFNLEVBQUVDLE1BQU0sRUFBRSxHQUFHUyxNQUNiSyxZQUFZQyxJQUFBQSw2QkFBZ0IsRUFBQ2YsUUFBUUQsVUFDckNFLE9BQU9hLFdBQ1BaLGFBQWEsTUFDYkMsT0FBT2EsSUFBQUEsMEJBQWlCLEVBQUNGLFdBQVdmO1lBRTFDQSxVQUFVO1lBRVZhLFFBQVEsSUFBSWYsTUFBTUUsU0FBU0MsUUFBUUMsTUFBTUMsWUFBWUM7UUFDdkQsR0FBR0o7UUFFSCxPQUFPYTtJQUNUO0FBQ0YifQ==
@@ -68,13 +68,14 @@ const _default = (0, _elements.define)(class Parameters extends _occamlanguages.
68
68
  }
69
69
  static name = "Parameters";
70
70
  static fromJSON(json, context) {
71
- return (0, _context.instantiate)((context)=>{
71
+ let parameters;
72
+ (0, _context.instantiate)((context)=>{
72
73
  const { string } = json, parametersNode = (0, _instantiate.instantiateParameters)(string, context), node = parametersNode, breakPoint = null, parametersArray = (0, _element.parametersArrayFromParametersNode)(parametersNode, context), array = parametersArray; ///
73
74
  context = null;
74
- const parameters = new Parameters(context, string, node, breakPoint, array);
75
- return parameters;
75
+ parameters = new Parameters(context, string, node, breakPoint, array);
76
76
  }, context);
77
+ return parameters;
77
78
  }
78
79
  });
79
80
 
80
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3BhcmFtZXRlcnMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IEVsZW1lbnQsIGNvbnRpbnVhdGlvblV0aWxpdGllcyB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcblxuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tIFwiLi4vZXhjZXB0aW9uXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgaW5zdGFudGlhdGUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2NvbnRleHRcIjtcbmltcG9ydCB7IGluc3RhbnRpYXRlUGFyYW1ldGVycyB9IGZyb20gXCIuLi9wcm9jZXNzL2luc3RhbnRpYXRlXCI7XG5pbXBvcnQgeyBwYXJhbWV0ZXJzQXJyYXlGcm9tUGFyYW1ldGVyc05vZGUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2VsZW1lbnRcIjtcblxuY29uc3QgeyBmb3JFYWNoIH0gPSBjb250aW51YXRpb25VdGlsaXRpZXNcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIFBhcmFtZXRlcnMgZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCBhcnJheSkge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLmFycmF5ID0gYXJyYXk7XG4gIH1cblxuICBnZXRBcnJheSgpIHtcbiAgICByZXR1cm4gdGhpcy5hcnJheTtcbiAgfVxuXG4gIGdldExlbmd0aCgpIHtcbiAgICBjb25zdCBsZW5ndGggPSB0aGlzLmFycmF5Lmxlbmd0aDtcblxuICAgIHJldHVybiBsZW5ndGg7XG4gIH1cblxuICBnZXRQYXJhbWV0ZXIoaW5kZXgpIHtcbiAgICBjb25zdCBwYXJhbWV0ZXIgPSB0aGlzLmFycmF5W2luZGV4XSB8fCBudWxsO1xuXG4gICAgcmV0dXJuIHBhcmFtZXRlcjtcbiAgfVxuXG4gIGZvckVhY2hQYXJhbWV0ZXIoY2FsbGJhY2ssIGZvcndhcmQsIGJhY2spIHtcbiAgICByZXR1cm4gZm9yRWFjaCh0aGlzLmFycmF5LCBjYWxsYmFjaywgZm9yd2FyZCwgYmFjayk7XG4gIH1cblxuICBjb21wYXJlVmFsdWVzKHZhbHVlcywgY29udGV4dCwgZm9yd2FyZCwgYmFjaykge1xuICAgIGNvbnN0IHZhbHVlc1N0cmluZyA9IHZhbHVlcy5nZXRTdHJpbmcoKSxcbiAgICAgICAgICBwYXJhbWV0ZXJzU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBDb21wYXJpbmcgdGhlICcke3ZhbHVlc1N0cmluZ30nIHZhbHVlcyBhZ2FpbnN0IHRoZSAnJHtwYXJhbWV0ZXJzU3RyaW5nfScgcGFyYW1ldGVycy4uLmApO1xuXG4gICAgY29uc3QgdmFsdWVzTGVuZ3RoID0gdmFsdWVzLmdldExlbmd0aCgpLFxuICAgICAgICAgIHBhcmFtZXRlcnNMZW5ndGggPSB0aGlzLmdldExlbmd0aCgpO1xuXG4gICAgaWYgKHZhbHVlc0xlbmd0aCAhPT0gcGFyYW1ldGVyc0xlbmd0aCkge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IGBUaGUgJyR7dmFsdWVzU3RyaW5nfScgZXhwcmVzc2lvbnMgYW5kICcke3BhcmFtZXRlcnNTdHJpbmd9JyBwYXJhbWV0ZXJzIGFyZSBub3Qgb2YgdGhlIHNhbWUgbGVuZ3RoLmAsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHJldHVybiBiYWNrKGV4Y2VwdGlvbik7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuZm9yRWFjaFBhcmFtZXRlcigocGFyYW1ldGVyLCBmb3J3YXJkLCBiYWNrLCBpbmRleCkgPT4ge1xuICAgICAgaWYgKHBhcmFtZXRlciA9PT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gZm9yd2FyZChiYWNrKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgdmFsdWUgPSB2YWx1ZXMuZ2V0VmFsdWUoaW5kZXgpO1xuXG4gICAgICByZXR1cm4gcGFyYW1ldGVyLmNvbXBhcmVWYWx1ZSh2YWx1ZSwgY29udGV4dCwgZm9yd2FyZCwgYmFjayk7XG4gICAgfSwgKGJhY2spID0+IHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLmNvbXBhcmVkIHRoZSAnJHt2YWx1ZXNTdHJpbmd9JyB2YWx1ZXMgYWdhaW5zdCB0aGUgJyR7cGFyYW1ldGVyc1N0cmluZ30nIHBhcmFtZXRlcnMuYCk7XG5cbiAgICAgIHJldHVybiBmb3J3YXJkKGJhY2spO1xuICAgIH0sIGJhY2spO1xuICB9XG5cbiAgdG9KU09OKCkge1xuICAgIGxldCBqc29uO1xuXG4gICAgY29uc3Qgc3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTtcblxuICAgIGpzb24gPSB7XG4gICAgICBzdHJpbmdcbiAgICB9O1xuXG4gICAgcmV0dXJuIGpzb247XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiUGFyYW1ldGVyc1wiO1xuXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uLCBjb250ZXh0KSB7XG4gICAgcmV0dXJuIGluc3RhbnRpYXRlKChjb250ZXh0KSA9PiB7XG4gICAgICBjb25zdCB7IHN0cmluZyB9ID0ganNvbixcbiAgICAgICAgICAgIHBhcmFtZXRlcnNOb2RlID0gaW5zdGFudGlhdGVQYXJhbWV0ZXJzKHN0cmluZywgY29udGV4dCksXG4gICAgICAgICAgICBub2RlID0gcGFyYW1ldGVyc05vZGUsICAvLy9cbiAgICAgICAgICAgIGJyZWFrUG9pbnQgPSBudWxsLFxuICAgICAgICAgICAgcGFyYW1ldGVyc0FycmF5ID0gcGFyYW1ldGVyc0FycmF5RnJvbVBhcmFtZXRlcnNOb2RlKHBhcmFtZXRlcnNOb2RlLCBjb250ZXh0KSxcbiAgICAgICAgICAgIGFycmF5ID0gcGFyYW1ldGVyc0FycmF5OyAvLy9cblxuICAgICAgY29udGV4dCA9IG51bGw7XG5cbiAgICAgIGNvbnN0IHBhcmFtZXRlcnMgPSBuZXcgUGFyYW1ldGVycyhjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIGFycmF5KTtcblxuICAgICAgcmV0dXJuIHBhcmFtZXRlcnM7XG4gICAgfSwgY29udGV4dCk7XG4gIH1cbn0pO1xuIl0sIm5hbWVzIjpbImZvckVhY2giLCJjb250aW51YXRpb25VdGlsaXRpZXMiLCJkZWZpbmUiLCJQYXJhbWV0ZXJzIiwiRWxlbWVudCIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiYnJlYWtQb2ludCIsImFycmF5IiwiZ2V0QXJyYXkiLCJnZXRMZW5ndGgiLCJsZW5ndGgiLCJnZXRQYXJhbWV0ZXIiLCJpbmRleCIsInBhcmFtZXRlciIsImZvckVhY2hQYXJhbWV0ZXIiLCJjYWxsYmFjayIsImZvcndhcmQiLCJiYWNrIiwiY29tcGFyZVZhbHVlcyIsInZhbHVlcyIsInZhbHVlc1N0cmluZyIsImdldFN0cmluZyIsInBhcmFtZXRlcnNTdHJpbmciLCJ0cmFjZSIsInZhbHVlc0xlbmd0aCIsInBhcmFtZXRlcnNMZW5ndGgiLCJtZXNzYWdlIiwiZXhjZXB0aW9uIiwiRXhjZXB0aW9uIiwiZnJvbU1lc3NhZ2UiLCJ2YWx1ZSIsImdldFZhbHVlIiwiY29tcGFyZVZhbHVlIiwiZGVidWciLCJ0b0pTT04iLCJqc29uIiwibmFtZSIsImZyb21KU09OIiwiaW5zdGFudGlhdGUiLCJwYXJhbWV0ZXJzTm9kZSIsImluc3RhbnRpYXRlUGFyYW1ldGVycyIsInBhcmFtZXRlcnNBcnJheSIsInBhcmFtZXRlcnNBcnJheUZyb21QYXJhbWV0ZXJzTm9kZSIsInBhcmFtZXRlcnMiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQWFBOzs7ZUFBQTs7O2dDQVgrQztrRUFFekI7MEJBRUM7eUJBQ0s7NkJBQ1U7eUJBQ1k7Ozs7OztBQUVsRCxNQUFNLEVBQUVBLE9BQU8sRUFBRSxHQUFHQyxxQ0FBcUI7TUFFekMsV0FBZUMsSUFBQUEsZ0JBQU0sRUFBQyxNQUFNQyxtQkFB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
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3BhcmFtZXRlcnMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IEVsZW1lbnQsIGNvbnRpbnVhdGlvblV0aWxpdGllcyB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcblxuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tIFwiLi4vZXhjZXB0aW9uXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgaW5zdGFudGlhdGUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2NvbnRleHRcIjtcbmltcG9ydCB7IGluc3RhbnRpYXRlUGFyYW1ldGVycyB9IGZyb20gXCIuLi9wcm9jZXNzL2luc3RhbnRpYXRlXCI7XG5pbXBvcnQgeyBwYXJhbWV0ZXJzQXJyYXlGcm9tUGFyYW1ldGVyc05vZGUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2VsZW1lbnRcIjtcblxuY29uc3QgeyBmb3JFYWNoIH0gPSBjb250aW51YXRpb25VdGlsaXRpZXNcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIFBhcmFtZXRlcnMgZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCBhcnJheSkge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLmFycmF5ID0gYXJyYXk7XG4gIH1cblxuICBnZXRBcnJheSgpIHtcbiAgICByZXR1cm4gdGhpcy5hcnJheTtcbiAgfVxuXG4gIGdldExlbmd0aCgpIHtcbiAgICBjb25zdCBsZW5ndGggPSB0aGlzLmFycmF5Lmxlbmd0aDtcblxuICAgIHJldHVybiBsZW5ndGg7XG4gIH1cblxuICBnZXRQYXJhbWV0ZXIoaW5kZXgpIHtcbiAgICBjb25zdCBwYXJhbWV0ZXIgPSB0aGlzLmFycmF5W2luZGV4XSB8fCBudWxsO1xuXG4gICAgcmV0dXJuIHBhcmFtZXRlcjtcbiAgfVxuXG4gIGZvckVhY2hQYXJhbWV0ZXIoY2FsbGJhY2ssIGZvcndhcmQsIGJhY2spIHtcbiAgICByZXR1cm4gZm9yRWFjaCh0aGlzLmFycmF5LCBjYWxsYmFjaywgZm9yd2FyZCwgYmFjayk7XG4gIH1cblxuICBjb21wYXJlVmFsdWVzKHZhbHVlcywgY29udGV4dCwgZm9yd2FyZCwgYmFjaykge1xuICAgIGNvbnN0IHZhbHVlc1N0cmluZyA9IHZhbHVlcy5nZXRTdHJpbmcoKSxcbiAgICAgICAgICBwYXJhbWV0ZXJzU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBDb21wYXJpbmcgdGhlICcke3ZhbHVlc1N0cmluZ30nIHZhbHVlcyBhZ2FpbnN0IHRoZSAnJHtwYXJhbWV0ZXJzU3RyaW5nfScgcGFyYW1ldGVycy4uLmApO1xuXG4gICAgY29uc3QgdmFsdWVzTGVuZ3RoID0gdmFsdWVzLmdldExlbmd0aCgpLFxuICAgICAgICAgIHBhcmFtZXRlcnNMZW5ndGggPSB0aGlzLmdldExlbmd0aCgpO1xuXG4gICAgaWYgKHZhbHVlc0xlbmd0aCAhPT0gcGFyYW1ldGVyc0xlbmd0aCkge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IGBUaGUgJyR7dmFsdWVzU3RyaW5nfScgZXhwcmVzc2lvbnMgYW5kICcke3BhcmFtZXRlcnNTdHJpbmd9JyBwYXJhbWV0ZXJzIGFyZSBub3Qgb2YgdGhlIHNhbWUgbGVuZ3RoLmAsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHJldHVybiBiYWNrKGV4Y2VwdGlvbik7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuZm9yRWFjaFBhcmFtZXRlcigocGFyYW1ldGVyLCBmb3J3YXJkLCBiYWNrLCBpbmRleCkgPT4ge1xuICAgICAgaWYgKHBhcmFtZXRlciA9PT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gZm9yd2FyZChiYWNrKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgdmFsdWUgPSB2YWx1ZXMuZ2V0VmFsdWUoaW5kZXgpO1xuXG4gICAgICByZXR1cm4gcGFyYW1ldGVyLmNvbXBhcmVWYWx1ZSh2YWx1ZSwgY29udGV4dCwgZm9yd2FyZCwgYmFjayk7XG4gICAgfSwgKGJhY2spID0+IHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLmNvbXBhcmVkIHRoZSAnJHt2YWx1ZXNTdHJpbmd9JyB2YWx1ZXMgYWdhaW5zdCB0aGUgJyR7cGFyYW1ldGVyc1N0cmluZ30nIHBhcmFtZXRlcnMuYCk7XG5cbiAgICAgIHJldHVybiBmb3J3YXJkKGJhY2spO1xuICAgIH0sIGJhY2spO1xuICB9XG5cbiAgdG9KU09OKCkge1xuICAgIGxldCBqc29uO1xuXG4gICAgY29uc3Qgc3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTtcblxuICAgIGpzb24gPSB7XG4gICAgICBzdHJpbmdcbiAgICB9O1xuXG4gICAgcmV0dXJuIGpzb247XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiUGFyYW1ldGVyc1wiO1xuXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uLCBjb250ZXh0KSB7XG4gICAgbGV0IHBhcmFtZXRlcnM7XG5cbiAgICBpbnN0YW50aWF0ZSgoY29udGV4dCkgPT4ge1xuICAgICAgY29uc3QgeyBzdHJpbmcgfSA9IGpzb24sXG4gICAgICAgICAgICBwYXJhbWV0ZXJzTm9kZSA9IGluc3RhbnRpYXRlUGFyYW1ldGVycyhzdHJpbmcsIGNvbnRleHQpLFxuICAgICAgICAgICAgbm9kZSA9IHBhcmFtZXRlcnNOb2RlLCAgLy8vXG4gICAgICAgICAgICBicmVha1BvaW50ID0gbnVsbCxcbiAgICAgICAgICAgIHBhcmFtZXRlcnNBcnJheSA9IHBhcmFtZXRlcnNBcnJheUZyb21QYXJhbWV0ZXJzTm9kZShwYXJhbWV0ZXJzTm9kZSwgY29udGV4dCksXG4gICAgICAgICAgICBhcnJheSA9IHBhcmFtZXRlcnNBcnJheTsgLy8vXG5cbiAgICAgIGNvbnRleHQgPSBudWxsO1xuXG4gICAgICBwYXJhbWV0ZXJzID0gbmV3IFBhcmFtZXRlcnMoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCBhcnJheSk7XG4gICAgfSwgY29udGV4dCk7XG5cbiAgICByZXR1cm4gcGFyYW1ldGVycztcbiAgfVxufSk7XG4iXSwibmFtZXMiOlsiZm9yRWFjaCIsImNvbnRpbnVhdGlvblV0aWxpdGllcyIsImRlZmluZSIsIlBhcmFtZXRlcnMiLCJFbGVtZW50IiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50IiwiYXJyYXkiLCJnZXRBcnJheSIsImdldExlbmd0aCIsImxlbmd0aCIsImdldFBhcmFtZXRlciIsImluZGV4IiwicGFyYW1ldGVyIiwiZm9yRWFjaFBhcmFtZXRlciIsImNhbGxiYWNrIiwiZm9yd2FyZCIsImJhY2siLCJjb21wYXJlVmFsdWVzIiwidmFsdWVzIiwidmFsdWVzU3RyaW5nIiwiZ2V0U3RyaW5nIiwicGFyYW1ldGVyc1N0cmluZyIsInRyYWNlIiwidmFsdWVzTGVuZ3RoIiwicGFyYW1ldGVyc0xlbmd0aCIsIm1lc3NhZ2UiLCJleGNlcHRpb24iLCJFeGNlcHRpb24iLCJmcm9tTWVzc2FnZSIsInZhbHVlIiwiZ2V0VmFsdWUiLCJjb21wYXJlVmFsdWUiLCJkZWJ1ZyIsInRvSlNPTiIsImpzb24iLCJuYW1lIiwiZnJvbUpTT04iLCJwYXJhbWV0ZXJzIiwiaW5zdGFudGlhdGUiLCJwYXJhbWV0ZXJzTm9kZSIsImluc3RhbnRpYXRlUGFyYW1ldGVycyIsInBhcmFtZXRlcnNBcnJheSIsInBhcmFtZXRlcnNBcnJheUZyb21QYXJhbWV0ZXJzTm9kZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBYUE7OztlQUFBOzs7Z0NBWCtDO2tFQUV6QjswQkFFQzt5QkFDSzs2QkFDVTt5QkFDWTs7Ozs7O0FBRWxELE1BQU0sRUFBRUEsT0FBTyxFQUFFLEdBQUdDLHFDQUFxQjtNQUV6QyxXQUFlQyxJQUFBQSxnQkFBTSxFQUFDLE1B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
@@ -35,12 +35,18 @@ const _default = (0, _elements.define)(class ProcedureCall extends _occamlanguag
35
35
  evaluate(context, forward, back) {
36
36
  const procedureCallString = this.getString(); ///
37
37
  context.trace(`Evaluating the '${procedureCallString}' function call...`);
38
- const procedureName = this.getProcedureName(), procedurePresent = context.isProcedurePresentByProcedureName(procedureName);
39
- if (!procedurePresent) {
38
+ const procedureName = this.getProcedureName(), procedurePresent = context.isProcedurePresentByProcedureName(procedureName), importedProcedurePresent = context.isImportedProcedurePresentByProcedureName(procedureName);
39
+ if (!procedurePresent && !importedProcedurePresent) {
40
40
  const message = `The '${procedureCallString}' function is not present.'`, exception = _exception.default.fromMessage(message);
41
41
  return back(exception);
42
42
  }
43
- const procedure = context.findProcedureByProcedureName(procedureName);
43
+ let procedure;
44
+ if (!importedProcedurePresent) {
45
+ procedure = context.findProcedureByProcedureName(procedureName);
46
+ } else {
47
+ const importedProcedure = context.findImportedProcedureByProcedureName(procedureName);
48
+ procedure = importedProcedure; ///
49
+ }
44
50
  return this.values.evaluate(context, (values, back)=>{
45
51
  return (0, _context.free)((context)=>{
46
52
  return procedure.evaluate(values, context, (value, back)=>{
@@ -54,4 +60,4 @@ const _default = (0, _elements.define)(class ProcedureCall extends _occamlanguag
54
60
  static name = "ProcedureCall";
55
61
  });
56
62
 
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3Byb2NlZHVyZUNhbGwuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IEVsZW1lbnQgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCBFeGNlcHRpb24gZnJvbSBcIi4uL2V4Y2VwdGlvblwiO1xuXG5pbXBvcnQgeyBmcmVlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9jb250ZXh0XCI7XG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vZWxlbWVudHNcIjtcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIFByb2NlZHVyZUNhbGwgZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCByZWZlcmVuY2UsIHZhbHVlcykge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLnJlZmVyZW5jZSA9IHJlZmVyZW5jZTtcbiAgICB0aGlzLnZhbHVlcyA9IHZhbHVlcztcbiAgfVxuXG4gIGdldFJlZmVyZW5jZSgpIHtcbiAgICByZXR1cm4gdGhpcy5yZWZlcmVuY2U7XG4gIH1cblxuICBnZXRWYWx1ZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWVzO1xuICB9XG5cbiAgZ2V0UHJvY2VkdXJlTmFtZSgpIHsgcmV0dXJuIHRoaXMucmVmZXJlbmNlLmdldFByb2NlZHVyZU5hbWUoKTsgfVxuXG4gIGV2YWx1YXRlKGNvbnRleHQsIGZvcndhcmQsIGJhY2spIHtcbiAgICBjb25zdCBwcm9jZWR1cmVDYWxsU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgIC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgRXZhbHVhdGluZyB0aGUgJyR7cHJvY2VkdXJlQ2FsbFN0cmluZ30nIGZ1bmN0aW9uIGNhbGwuLi5gKTtcblxuICAgIGNvbnN0IHByb2NlZHVyZU5hbWUgPSB0aGlzLmdldFByb2NlZHVyZU5hbWUoKSxcbiAgICAgICAgICBwcm9jZWR1cmVQcmVzZW50ID0gY29udGV4dC5pc1Byb2NlZHVyZVByZXNlbnRCeVByb2NlZHVyZU5hbWUocHJvY2VkdXJlTmFtZSk7XG5cbiAgICBpZiAoIXByb2NlZHVyZVByZXNlbnQpIHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgVGhlICcke3Byb2NlZHVyZUNhbGxTdHJpbmd9JyBmdW5jdGlvbiBpcyBub3QgcHJlc2VudC4nYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgcmV0dXJuIGJhY2soZXhjZXB0aW9uKTtcbiAgICB9XG5cbiAgICBjb25zdCBwcm9jZWR1cmUgPSBjb250ZXh0LmZpbmRQcm9jZWR1cmVCeVByb2NlZHVyZU5hbWUocHJvY2VkdXJlTmFtZSk7XG5cbiAgICByZXR1cm4gdGhpcy52YWx1ZXMuZXZhbHVhdGUoY29udGV4dCwgKHZhbHVlcywgYmFjaykgPT4ge1xuICAgICAgcmV0dXJuIGZyZWUoKGNvbnRleHQpID0+IHtcbiAgICAgICAgcmV0dXJuIHByb2NlZHVyZS5ldmFsdWF0ZSh2YWx1ZXMsIGNvbnRleHQsICh2YWx1ZSwgYmFjaykgPT4ge1xuICAgICAgICAgIGNvbnN0IHZhbHVlU3RyaW5nID0gdmFsdWUuZ2V0U3RyaW5nKCk7XG5cbiAgICAgICAgICBjb250ZXh0LmRlYnVnKGAuLi5ldmFsdWF0ZWQgdGhlICcke3Byb2NlZHVyZUNhbGxTdHJpbmd9JyBmdW5jdGlvbiBjYWxsIGFzICcke3ZhbHVlU3RyaW5nfScuYCk7XG5cbiAgICAgICAgICByZXR1cm4gZm9yd2FyZCh2YWx1ZSwgYmFjayk7XG4gICAgICAgIH0sIGJhY2spO1xuICAgICAgfSwgY29udGV4dCk7XG4gICAgfSwgYmFjayk7XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiUHJvY2VkdXJlQ2FsbFwiO1xufSk7XG4iXSwibmFtZXMiOlsiZGVmaW5lIiwiUHJvY2VkdXJlQ2FsbCIsIkVsZW1lbnQiLCJjb250ZXh0Iiwic3RyaW5nIiwibm9kZSIsImJyZWFrUG9pbnQiLCJyZWZlcmVuY2UiLCJ2YWx1ZXMiLCJnZXRSZWZlcmVuY2UiLCJnZXRWYWx1ZXMiLCJnZXRQcm9jZWR1cmVOYW1lIiwiZXZhbHVhdGUiLCJmb3J3YXJkIiwiYmFjayIsInByb2NlZHVyZUNhbGxTdHJpbmciLCJnZXRTdHJpbmciLCJ0cmFjZSIsInByb2NlZHVyZU5hbWUiLCJwcm9jZWR1cmVQcmVzZW50IiwiaXNQcm9jZWR1cmVQcmVzZW50QnlQcm9jZWR1cmVOYW1lIiwibWVzc2FnZSIsImV4Y2VwdGlvbiIsIkV4Y2VwdGlvbiIsImZyb21NZXNzYWdlIiwicHJvY2VkdXJlIiwiZmluZFByb2NlZHVyZUJ5UHJvY2VkdXJlTmFtZSIsImZyZWUiLCJ2YWx1ZSIsInZhbHVlU3RyaW5nIiwiZGVidWciLCJuYW1lIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFTQTs7O2VBQUE7OztnQ0FQd0I7a0VBRUY7eUJBRUQ7MEJBQ0U7Ozs7OztNQUV2QixXQUFlQSxJQUFBQSxnQkFBTSxFQUFDLE1BQU1DLHNCQUFzQkMsdUJBQU87SUFDdkQsWUFBWUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsVUFBVSxFQUFFQyxTQUFTLEVBQUVDLE1BQU0sQ0FBRTtRQUNoRSxLQUFLLENBQUNMLFNBQVNDLFFBQVFDLE1BQU1DO1FBRTdCLElBQUksQ0FBQ0MsU0FBUyxHQUFHQTtRQUNqQixJQUFJLENBQUNDLE1BQU0sR0FBR0E7SUFDaEI7SUFFQUMsZUFBZTtRQUNiLE9BQU8sSUFBSSxDQUFDRixTQUFTO0lBQ3ZCO0lBRUFHLFlBQVk7UUFDVixPQUFPLElBQUksQ0FBQ0YsTUFBTTtJQUNwQjtJQUVBRyxtQkFBbUI7UUFBRSxPQUFPLElBQUksQ0FBQ0osU0FBUyxDQUFDSSxnQkFBZ0I7SUFBSTtJQUUvREMsU0FBU1QsT0FBTyxFQUFFVSxPQUFPLEVBQUVDLElBQUksRUFBRTtRQUMvQixNQUFNQyxzQkFBc0IsSUFBSSxDQUFDQyxTQUFTLElBQUssR0FBRztRQUVsRGIsUUFBUWMsS0FBSyxDQUFDLENBQUMsZ0JBQWdCLEVBQUVGLG9CQUFvQixrQkFBa0IsQ0FBQztRQUV4RSxNQUFNRyxnQkFBZ0IsSUFBSSxDQUFDUCxnQkFBZ0IsSUFDckNRLG1CQUFtQmhCLFFBQVFpQixpQ0FBaUMsQ0FBQ0Y7UUFFbkUsSUFBSSxDQUFDQyxrQkFBa0I7WUFDckIsTUFBTUUsVUFBVSxDQUFDLEtBQUssRUFBRU4sb0JBQW9CLDJCQUEyQixDQUFDLEVBQ2xFTyxZQUFZQyxrQkFBUyxDQUFDQyxXQUFXLENBQUNIO1lBRXhDLE9BQU9QLEtBQUtRO1FBQ2Q7UUFFQSxNQUFNRyxZQUFZdEIsUUFBUXVCLDRCQUE0QixDQUFDUjtRQUV2RCxPQUFPLElBQUksQ0FBQ1YsTUFBTSxDQUFDSSxRQUFRLENBQUNULFNBQVMsQ0FBQ0ssUUFBUU07WUFDNUMsT0FBT2EsSUFBQUEsYUFBSSxFQUFDLENBQUN4QjtnQkFDWCxPQUFPc0IsVUFBVWIsUUFBUSxDQUFDSixRQUFRTCxTQUFTLENBQUN5QixPQUFPZDtvQkFDakQsTUFBTWUsY0FBY0QsTUFBTVosU0FBUztvQkFFbkNiLFFBQVEyQixLQUFLLENBQUMsQ0FBQyxrQkFBa0IsRUFBRWYsb0JBQW9CLG9CQUFvQixFQUFFYyxZQUFZLEVBQUUsQ0FBQztvQkFFNUYsT0FBT2hCLFFBQVFlLE9BQU9kO2dCQUN4QixHQUFHQTtZQUNMLEdBQUdYO1FBQ0wsR0FBR1c7SUFDTDtJQUVBLE9BQU9pQixPQUFPLGdCQUFnQjtBQUNoQyJ9
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3Byb2NlZHVyZUNhbGwuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IEVsZW1lbnQgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCBFeGNlcHRpb24gZnJvbSBcIi4uL2V4Y2VwdGlvblwiO1xuXG5pbXBvcnQgeyBmcmVlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9jb250ZXh0XCI7XG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vZWxlbWVudHNcIjtcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIFByb2NlZHVyZUNhbGwgZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCByZWZlcmVuY2UsIHZhbHVlcykge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLnJlZmVyZW5jZSA9IHJlZmVyZW5jZTtcbiAgICB0aGlzLnZhbHVlcyA9IHZhbHVlcztcbiAgfVxuXG4gIGdldFJlZmVyZW5jZSgpIHtcbiAgICByZXR1cm4gdGhpcy5yZWZlcmVuY2U7XG4gIH1cblxuICBnZXRWYWx1ZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWVzO1xuICB9XG5cbiAgZ2V0UHJvY2VkdXJlTmFtZSgpIHsgcmV0dXJuIHRoaXMucmVmZXJlbmNlLmdldFByb2NlZHVyZU5hbWUoKTsgfVxuXG4gIGV2YWx1YXRlKGNvbnRleHQsIGZvcndhcmQsIGJhY2spIHtcbiAgICBjb25zdCBwcm9jZWR1cmVDYWxsU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgIC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgRXZhbHVhdGluZyB0aGUgJyR7cHJvY2VkdXJlQ2FsbFN0cmluZ30nIGZ1bmN0aW9uIGNhbGwuLi5gKTtcblxuICAgIGNvbnN0IHByb2NlZHVyZU5hbWUgPSB0aGlzLmdldFByb2NlZHVyZU5hbWUoKSxcbiAgICAgICAgICBwcm9jZWR1cmVQcmVzZW50ID0gY29udGV4dC5pc1Byb2NlZHVyZVByZXNlbnRCeVByb2NlZHVyZU5hbWUocHJvY2VkdXJlTmFtZSksXG4gICAgICAgICAgaW1wb3J0ZWRQcm9jZWR1cmVQcmVzZW50ID0gY29udGV4dC5pc0ltcG9ydGVkUHJvY2VkdXJlUHJlc2VudEJ5UHJvY2VkdXJlTmFtZShwcm9jZWR1cmVOYW1lKTtcblxuICAgIGlmICghcHJvY2VkdXJlUHJlc2VudCAmJiAhaW1wb3J0ZWRQcm9jZWR1cmVQcmVzZW50KSB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gYFRoZSAnJHtwcm9jZWR1cmVDYWxsU3RyaW5nfScgZnVuY3Rpb24gaXMgbm90IHByZXNlbnQuJ2AsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHJldHVybiBiYWNrKGV4Y2VwdGlvbik7XG4gICAgfVxuXG4gICAgbGV0IHByb2NlZHVyZTtcblxuICAgIGlmICghaW1wb3J0ZWRQcm9jZWR1cmVQcmVzZW50KSB7XG4gICAgICBwcm9jZWR1cmUgPSBjb250ZXh0LmZpbmRQcm9jZWR1cmVCeVByb2NlZHVyZU5hbWUocHJvY2VkdXJlTmFtZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGltcG9ydGVkUHJvY2VkdXJlID0gY29udGV4dC5maW5kSW1wb3J0ZWRQcm9jZWR1cmVCeVByb2NlZHVyZU5hbWUocHJvY2VkdXJlTmFtZSk7XG5cbiAgICAgIHByb2NlZHVyZSA9IGltcG9ydGVkUHJvY2VkdXJlOyAgLy8vXG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMudmFsdWVzLmV2YWx1YXRlKGNvbnRleHQsICh2YWx1ZXMsIGJhY2spID0+IHtcbiAgICAgIHJldHVybiBmcmVlKChjb250ZXh0KSA9PiB7XG4gICAgICAgIHJldHVybiBwcm9jZWR1cmUuZXZhbHVhdGUodmFsdWVzLCBjb250ZXh0LCAodmFsdWUsIGJhY2spID0+IHtcbiAgICAgICAgICBjb25zdCB2YWx1ZVN0cmluZyA9IHZhbHVlLmdldFN0cmluZygpO1xuXG4gICAgICAgICAgY29udGV4dC5kZWJ1ZyhgLi4uZXZhbHVhdGVkIHRoZSAnJHtwcm9jZWR1cmVDYWxsU3RyaW5nfScgZnVuY3Rpb24gY2FsbCBhcyAnJHt2YWx1ZVN0cmluZ30nLmApO1xuXG4gICAgICAgICAgcmV0dXJuIGZvcndhcmQodmFsdWUsIGJhY2spO1xuICAgICAgICB9LCBiYWNrKTtcbiAgICAgIH0sIGNvbnRleHQpO1xuICAgIH0sIGJhY2spO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIlByb2NlZHVyZUNhbGxcIjtcbn0pO1xuIl0sIm5hbWVzIjpbImRlZmluZSIsIlByb2NlZHVyZUNhbGwiLCJFbGVtZW50IiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50IiwicmVmZXJlbmNlIiwidmFsdWVzIiwiZ2V0UmVmZXJlbmNlIiwiZ2V0VmFsdWVzIiwiZ2V0UHJvY2VkdXJlTmFtZSIsImV2YWx1YXRlIiwiZm9yd2FyZCIsImJhY2siLCJwcm9jZWR1cmVDYWxsU3RyaW5nIiwiZ2V0U3RyaW5nIiwidHJhY2UiLCJwcm9jZWR1cmVOYW1lIiwicHJvY2VkdXJlUHJlc2VudCIsImlzUHJvY2VkdXJlUHJlc2VudEJ5UHJvY2VkdXJlTmFtZSIsImltcG9ydGVkUHJvY2VkdXJlUHJlc2VudCIsImlzSW1wb3J0ZWRQcm9jZWR1cmVQcmVzZW50QnlQcm9jZWR1cmVOYW1lIiwibWVzc2FnZSIsImV4Y2VwdGlvbiIsIkV4Y2VwdGlvbiIsImZyb21NZXNzYWdlIiwicHJvY2VkdXJlIiwiZmluZFByb2NlZHVyZUJ5UHJvY2VkdXJlTmFtZSIsImltcG9ydGVkUHJvY2VkdXJlIiwiZmluZEltcG9ydGVkUHJvY2VkdXJlQnlQcm9jZWR1cmVOYW1lIiwiZnJlZSIsInZhbHVlIiwidmFsdWVTdHJpbmciLCJkZWJ1ZyIsIm5hbWUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVNBOzs7ZUFBQTs7O2dDQVB3QjtrRUFFRjt5QkFFRDswQkFDRTs7Ozs7O01BRXZCLFdBQWVBLElBQUFBLGdCQUFNLEVBQUMsTUFBTUMsc0JBQXNCQyx1QkFBTztJQUN2RCxZQUFZQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxVQUFVLEVBQUVDLFNBQVMsRUFBRUMsTUFBTSxDQUFFO1FBQ2hFLEtBQUssQ0FBQ0wsU0FBU0MsUUFBUUMsTUFBTUM7UUFFN0IsSUFBSSxDQUFDQyxTQUFTLEdBQUdBO1FBQ2pCLElBQUksQ0FBQ0MsTUFBTSxHQUFHQTtJQUNoQjtJQUVBQyxlQUFlO1FBQ2IsT0FBTyxJQUFJLENBQUNGLFNBQVM7SUFDdkI7SUFFQUcsWUFBWTtRQUNWLE9BQU8sSUFBSSxDQUFDRixNQUFNO0lBQ3BCO0lBRUFHLG1CQUFtQjtRQUFFLE9BQU8sSUFBSSxDQUFDSixTQUFTLENBQUNJLGdCQUFnQjtJQUFJO0lBRS9EQyxTQUFTVCxPQUFPLEVBQUVVLE9BQU8sRUFBRUMsSUFBSSxFQUFFO1FBQy9CLE1BQU1DLHNCQUFzQixJQUFJLENBQUNDLFNBQVMsSUFBSyxHQUFHO1FBRWxEYixRQUFRYyxLQUFLLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRUYsb0JBQW9CLGtCQUFrQixDQUFDO1FBRXhFLE1BQU1HLGdCQUFnQixJQUFJLENBQUNQLGdCQUFnQixJQUNyQ1EsbUJBQW1CaEIsUUFBUWlCLGlDQUFpQyxDQUFDRixnQkFDN0RHLDJCQUEyQmxCLFFBQVFtQix5Q0FBeUMsQ0FBQ0o7UUFFbkYsSUFBSSxDQUFDQyxvQkFBb0IsQ0FBQ0UsMEJBQTBCO1lBQ2xELE1BQU1FLFVBQVUsQ0FBQyxLQUFLLEVBQUVSLG9CQUFvQiwyQkFBMkIsQ0FBQyxFQUNsRVMsWUFBWUMsa0JBQVMsQ0FBQ0MsV0FBVyxDQUFDSDtZQUV4QyxPQUFPVCxLQUFLVTtRQUNkO1FBRUEsSUFBSUc7UUFFSixJQUFJLENBQUNOLDBCQUEwQjtZQUM3Qk0sWUFBWXhCLFFBQVF5Qiw0QkFBNEIsQ0FBQ1Y7UUFDbkQsT0FBTztZQUNMLE1BQU1XLG9CQUFvQjFCLFFBQVEyQixvQ0FBb0MsQ0FBQ1o7WUFFdkVTLFlBQVlFLG1CQUFvQixHQUFHO1FBQ3JDO1FBRUEsT0FBTyxJQUFJLENBQUNyQixNQUFNLENBQUNJLFFBQVEsQ0FBQ1QsU0FBUyxDQUFDSyxRQUFRTTtZQUM1QyxPQUFPaUIsSUFBQUEsYUFBSSxFQUFDLENBQUM1QjtnQkFDWCxPQUFPd0IsVUFBVWYsUUFBUSxDQUFDSixRQUFRTCxTQUFTLENBQUM2QixPQUFPbEI7b0JBQ2pELE1BQU1tQixjQUFjRCxNQUFNaEIsU0FBUztvQkFFbkNiLFFBQVErQixLQUFLLENBQUMsQ0FBQyxrQkFBa0IsRUFBRW5CLG9CQUFvQixvQkFBb0IsRUFBRWtCLFlBQVksRUFBRSxDQUFDO29CQUU1RixPQUFPcEIsUUFBUW1CLE9BQU9sQjtnQkFDeEIsR0FBR0E7WUFDTCxHQUFHWDtRQUNMLEdBQUdXO0lBQ0w7SUFFQSxPQUFPcUIsT0FBTyxnQkFBZ0I7QUFDaEMifQ==