occam-nominal 1.0.546 → 1.0.547

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.
@@ -51,6 +51,9 @@ _export(exports, {
51
51
  get instantiateLabel () {
52
52
  return instantiateLabel;
53
53
  },
54
+ get instantiateLink () {
55
+ return instantiateLink;
56
+ },
54
57
  get instantiateMetavariable () {
55
58
  return instantiateMetavariable;
56
59
  },
@@ -106,7 +109,7 @@ _export(exports, {
106
109
  const _occamlanguages = require("occam-languages");
107
110
  const _ruleNames = require("../ruleNames");
108
111
  const { instantiate, ruleFromRuleName } = _occamlanguages.bnfUtilities;
109
- const termPlaceholderRule = ruleFromRuleName(_ruleNames.TERM_RULE_NAME), typePlaceholderRule = ruleFromRuleName(_ruleNames.TYPE_RULE_NAME), framePlaceholderRule = ruleFromRuleName(_ruleNames.FRAME_RULE_NAME), labelPlaceholderRule = ruleFromRuleName(_ruleNames.LABEL_RULE_NAME), premisePlaceholderRule = ruleFromRuleName(_ruleNames.PREMISE_RULE_NAME), variablePlaceholderRule = ruleFromRuleName(_ruleNames.VARIABLE_RULE_NAME), equalityPlaceholderRule = ruleFromRuleName(_ruleNames.EQUALITY_RULE_NAME), propertyPlaceholderRule = ruleFromRuleName(_ruleNames.PROPERTY_RULE_NAME), generatorPlaceholderRule = ruleFromRuleName(_ruleNames.GENERATOR_RULE_NAME), deductionPlaceholderRule = ruleFromRuleName(_ruleNames.DEDUCTION_RULE_NAME), parameterPlaceholderRule = ruleFromRuleName(_ruleNames.PARAMETER_RULE_NAME), statementPlaceholderRule = ruleFromRuleName(_ruleNames.STATEMENT_RULE_NAME), signaturePlaceholderRule = ruleFromRuleName(_ruleNames.SIGNATURE_RULE_NAME), constraintPlaceholderRule = ruleFromRuleName(_ruleNames.CONSTRAINT_RULE_NAME), combinatorPlaceholderRule = ruleFromRuleName(_ruleNames.COMBINATOR_RULE_NAME), conclusionPlaceholderRule = ruleFromRuleName(_ruleNames.CONCLUSION_RULE_NAME), hypothesisPlaceholderRule = ruleFromRuleName(_ruleNames.HYPOTHESIS_RULE_NAME), typePrefixPlaceholderRule = ruleFromRuleName(_ruleNames.TYPE_PREFIX_RULE_NAME), suppositionPlaceholderRule = ruleFromRuleName(_ruleNames.SUPPOSITION_RULE_NAME), constructorPlaceholderRule = ruleFromRuleName(_ruleNames.CONSTRUCTOR_RULE_NAME), metavariablePlaceholderRule = ruleFromRuleName(_ruleNames.METAVARIABLE_RULE_NAME), typeAssertionPlaceholderRule = ruleFromRuleName(_ruleNames.TYPE_ASSERTION_RULE_NAME), definedAssertionPlaceholderRule = ruleFromRuleName(_ruleNames.DEFINED_ASSERTION_RULE_NAME), termSubstitutionPlaceholderRule = ruleFromRuleName(_ruleNames.TERM_SUBSTITUTION_RULE_NAME), subproofAssertionlaceholderRule = ruleFromRuleName(_ruleNames.SUBPROOF_ASSERTION_RULE_NAME), propertyAssertionPlaceholderRule = ruleFromRuleName(_ruleNames.PROPERTY_ASSERTION_RULE_NAME), frameSubstitutionPlaceholderRule = ruleFromRuleName(_ruleNames.FRAME_SUBSTITUTION_RULE_NAME), procedureReferencelaceholderRule = ruleFromRuleName(_ruleNames.PROCEDURE_REFERENCE_RULE_NAME), containedAssertionPlaceholderRule = ruleFromRuleName(_ruleNames.CONTAINED_ASSERTION_RULE_NAME), implicitAssumptionPlaceholderRule = ruleFromRuleName(_ruleNames.IMPLICIT_ASSUMPTION_RULE_NAME), statementSubstitutionPlaceholderRule = ruleFromRuleName(_ruleNames.STATEMENT_SUBSTITUTION_RULE_NAME);
112
+ const termPlaceholderRule = ruleFromRuleName(_ruleNames.TERM_RULE_NAME), linkPlaceholderRule = ruleFromRuleName(_ruleNames.LINK_RULE_NAME), typePlaceholderRule = ruleFromRuleName(_ruleNames.TYPE_RULE_NAME), framePlaceholderRule = ruleFromRuleName(_ruleNames.FRAME_RULE_NAME), labelPlaceholderRule = ruleFromRuleName(_ruleNames.LABEL_RULE_NAME), premisePlaceholderRule = ruleFromRuleName(_ruleNames.PREMISE_RULE_NAME), variablePlaceholderRule = ruleFromRuleName(_ruleNames.VARIABLE_RULE_NAME), equalityPlaceholderRule = ruleFromRuleName(_ruleNames.EQUALITY_RULE_NAME), propertyPlaceholderRule = ruleFromRuleName(_ruleNames.PROPERTY_RULE_NAME), generatorPlaceholderRule = ruleFromRuleName(_ruleNames.GENERATOR_RULE_NAME), deductionPlaceholderRule = ruleFromRuleName(_ruleNames.DEDUCTION_RULE_NAME), parameterPlaceholderRule = ruleFromRuleName(_ruleNames.PARAMETER_RULE_NAME), statementPlaceholderRule = ruleFromRuleName(_ruleNames.STATEMENT_RULE_NAME), signaturePlaceholderRule = ruleFromRuleName(_ruleNames.SIGNATURE_RULE_NAME), constraintPlaceholderRule = ruleFromRuleName(_ruleNames.CONSTRAINT_RULE_NAME), combinatorPlaceholderRule = ruleFromRuleName(_ruleNames.COMBINATOR_RULE_NAME), conclusionPlaceholderRule = ruleFromRuleName(_ruleNames.CONCLUSION_RULE_NAME), hypothesisPlaceholderRule = ruleFromRuleName(_ruleNames.HYPOTHESIS_RULE_NAME), typePrefixPlaceholderRule = ruleFromRuleName(_ruleNames.TYPE_PREFIX_RULE_NAME), suppositionPlaceholderRule = ruleFromRuleName(_ruleNames.SUPPOSITION_RULE_NAME), constructorPlaceholderRule = ruleFromRuleName(_ruleNames.CONSTRUCTOR_RULE_NAME), metavariablePlaceholderRule = ruleFromRuleName(_ruleNames.METAVARIABLE_RULE_NAME), typeAssertionPlaceholderRule = ruleFromRuleName(_ruleNames.TYPE_ASSERTION_RULE_NAME), definedAssertionPlaceholderRule = ruleFromRuleName(_ruleNames.DEFINED_ASSERTION_RULE_NAME), termSubstitutionPlaceholderRule = ruleFromRuleName(_ruleNames.TERM_SUBSTITUTION_RULE_NAME), subproofAssertionlaceholderRule = ruleFromRuleName(_ruleNames.SUBPROOF_ASSERTION_RULE_NAME), propertyAssertionPlaceholderRule = ruleFromRuleName(_ruleNames.PROPERTY_ASSERTION_RULE_NAME), frameSubstitutionPlaceholderRule = ruleFromRuleName(_ruleNames.FRAME_SUBSTITUTION_RULE_NAME), procedureReferencelaceholderRule = ruleFromRuleName(_ruleNames.PROCEDURE_REFERENCE_RULE_NAME), containedAssertionPlaceholderRule = ruleFromRuleName(_ruleNames.CONTAINED_ASSERTION_RULE_NAME), implicitAssumptionPlaceholderRule = ruleFromRuleName(_ruleNames.IMPLICIT_ASSUMPTION_RULE_NAME), statementSubstitutionPlaceholderRule = ruleFromRuleName(_ruleNames.STATEMENT_SUBSTITUTION_RULE_NAME);
110
113
  function instantiatePremise(string, context) {
111
114
  string = `${string}
112
115
  `; ///
@@ -130,6 +133,9 @@ function instantiateSupposition(string, context) {
130
133
  function instantiateTerm(string, context) {
131
134
  return instantiate(termPlaceholderRule, string, context);
132
135
  }
136
+ function instantiateLink(string, context) {
137
+ return instantiate(linkPlaceholderRule, string, context);
138
+ }
133
139
  function instantiateType(string, context) {
134
140
  return instantiate(typePlaceholderRule, string, context);
135
141
  }
@@ -209,4 +215,4 @@ function instantiateStatementSubstitution(string, context) {
209
215
  return instantiate(statementSubstitutionPlaceholderRule, string, context);
210
216
  }
211
217
 
212
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm9jZXNzL2luc3RhbnRpYXRlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBibmZVdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCB7IFRFUk1fUlVMRV9OQU1FLFxuICAgICAgICAgVFlQRV9SVUxFX05BTUUsXG4gICAgICAgICBGUkFNRV9SVUxFX05BTUUsXG4gICAgICAgICBMQUJFTF9SVUxFX05BTUUsXG4gICAgICAgICBQUkVNSVNFX1JVTEVfTkFNRSxcbiAgICAgICAgIFZBUklBQkxFX1JVTEVfTkFNRSxcbiAgICAgICAgIEVRVUFMSVRZX1JVTEVfTkFNRSxcbiAgICAgICAgIFBST1BFUlRZX1JVTEVfTkFNRSxcbiAgICAgICAgIERFRFVDVElPTl9SVUxFX05BTUUsXG4gICAgICAgICBQQVJBTUVURVJfUlVMRV9OQU1FLFxuICAgICAgICAgU1RBVEVNRU5UX1JVTEVfTkFNRSxcbiAgICAgICAgIFNJR05BVFVSRV9SVUxFX05BTUUsXG4gICAgICAgICBHRU5FUkFUT1JfUlVMRV9OQU1FLFxuICAgICAgICAgQ09NQklOQVRPUl9SVUxFX05BTUUsXG4gICAgICAgICBDT05DTFVTSU9OX1JVTEVfTkFNRSxcbiAgICAgICAgIEhZUE9USEVTSVNfUlVMRV9OQU1FLFxuICAgICAgICAgQ09OU1RSQUlOVF9SVUxFX05BTUUsXG4gICAgICAgICBUWVBFX1BSRUZJWF9SVUxFX05BTUUsXG4gICAgICAgICBTVVBQT1NJVElPTl9SVUxFX05BTUUsXG4gICAgICAgICBDT05TVFJVQ1RPUl9SVUxFX05BTUUsXG4gICAgICAgICBNRVRBVkFSSUFCTEVfUlVMRV9OQU1FLFxuICAgICAgICAgVFlQRV9BU1NFUlRJT05fUlVMRV9OQU1FLFxuICAgICAgICAgREVGSU5FRF9BU1NFUlRJT05fUlVMRV9OQU1FLFxuICAgICAgICAgVEVSTV9TVUJTVElUVVRJT05fUlVMRV9OQU1FLFxuICAgICAgICAgUFJPUEVSVFlfQVNTRVJUSU9OX1JVTEVfTkFNRSxcbiAgICAgICAgIFNVQlBST09GX0FTU0VSVElPTl9SVUxFX05BTUUsXG4gICAgICAgICBGUkFNRV9TVUJTVElUVVRJT05fUlVMRV9OQU1FLFxuICAgICAgICAgUFJPQ0VEVVJFX1JFRkVSRU5DRV9SVUxFX05BTUUsXG4gICAgICAgICBDT05UQUlORURfQVNTRVJUSU9OX1JVTEVfTkFNRSxcbiAgICAgICAgIElNUExJQ0lUX0FTU1VNUFRJT05fUlVMRV9OQU1FLFxuICAgICAgICAgU1RBVEVNRU5UX1NVQlNUSVRVVElPTl9SVUxFX05BTUUgfSBmcm9tIFwiLi4vcnVsZU5hbWVzXCI7XG5cbmNvbnN0IHsgaW5zdGFudGlhdGUsIHJ1bGVGcm9tUnVsZU5hbWUgfSA9IGJuZlV0aWxpdGllcztcblxuY29uc3QgdGVybVBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoVEVSTV9SVUxFX05BTUUpLFxuICAgICAgdHlwZVBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoVFlQRV9SVUxFX05BTUUpLFxuICAgICAgZnJhbWVQbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKEZSQU1FX1JVTEVfTkFNRSksXG4gICAgICBsYWJlbFBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoTEFCRUxfUlVMRV9OQU1FKSxcbiAgICAgIHByZW1pc2VQbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKFBSRU1JU0VfUlVMRV9OQU1FKSxcbiAgICAgIHZhcmlhYmxlUGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShWQVJJQUJMRV9SVUxFX05BTUUpLFxuICAgICAgZXF1YWxpdHlQbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKEVRVUFMSVRZX1JVTEVfTkFNRSksXG4gICAgICBwcm9wZXJ0eVBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoUFJPUEVSVFlfUlVMRV9OQU1FKSxcbiAgICAgIGdlbmVyYXRvclBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoR0VORVJBVE9SX1JVTEVfTkFNRSksXG4gICAgICBkZWR1Y3Rpb25QbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKERFRFVDVElPTl9SVUxFX05BTUUpLFxuICAgICAgcGFyYW1ldGVyUGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShQQVJBTUVURVJfUlVMRV9OQU1FKSxcbiAgICAgIHN0YXRlbWVudFBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoU1RBVEVNRU5UX1JVTEVfTkFNRSksXG4gICAgICBzaWduYXR1cmVQbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKFNJR05BVFVSRV9SVUxFX05BTUUpLFxuICAgICAgY29uc3RyYWludFBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoQ09OU1RSQUlOVF9SVUxFX05BTUUpLFxuICAgICAgY29tYmluYXRvclBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoQ09NQklOQVRPUl9SVUxFX05BTUUpLFxuICAgICAgY29uY2x1c2lvblBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoQ09OQ0xVU0lPTl9SVUxFX05BTUUpLFxuICAgICAgaHlwb3RoZXNpc1BsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoSFlQT1RIRVNJU19SVUxFX05BTUUpLFxuICAgICAgdHlwZVByZWZpeFBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoVFlQRV9QUkVGSVhfUlVMRV9OQU1FKSxcbiAgICAgIHN1cHBvc2l0aW9uUGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShTVVBQT1NJVElPTl9SVUxFX05BTUUpLFxuICAgICAgY29uc3RydWN0b3JQbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKENPTlNUUlVDVE9SX1JVTEVfTkFNRSksXG4gICAgICBtZXRhdmFyaWFibGVQbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKE1FVEFWQVJJQUJMRV9SVUxFX05BTUUpLFxuICAgICAgdHlwZUFzc2VydGlvblBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoVFlQRV9BU1NFUlRJT05fUlVMRV9OQU1FKSxcbiAgICAgIGRlZmluZWRBc3NlcnRpb25QbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKERFRklORURfQVNTRVJUSU9OX1JVTEVfTkFNRSksXG4gICAgICB0ZXJtU3Vic3RpdHV0aW9uUGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShURVJNX1NVQlNUSVRVVElPTl9SVUxFX05BTUUpLFxuICAgICAgc3VicHJvb2ZBc3NlcnRpb25sYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoU1VCUFJPT0ZfQVNTRVJUSU9OX1JVTEVfTkFNRSksXG4gICAgICBwcm9wZXJ0eUFzc2VydGlvblBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoUFJPUEVSVFlfQVNTRVJUSU9OX1JVTEVfTkFNRSksXG4gICAgICBmcmFtZVN1YnN0aXR1dGlvblBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoRlJBTUVfU1VCU1RJVFVUSU9OX1JVTEVfTkFNRSksXG4gICAgICBwcm9jZWR1cmVSZWZlcmVuY2VsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoUFJPQ0VEVVJFX1JFRkVSRU5DRV9SVUxFX05BTUUpLFxuICAgICAgY29udGFpbmVkQXNzZXJ0aW9uUGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShDT05UQUlORURfQVNTRVJUSU9OX1JVTEVfTkFNRSksXG4gICAgICBpbXBsaWNpdEFzc3VtcHRpb25QbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKElNUExJQ0lUX0FTU1VNUFRJT05fUlVMRV9OQU1FKSxcbiAgICAgIHN0YXRlbWVudFN1YnN0aXR1dGlvblBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoU1RBVEVNRU5UX1NVQlNUSVRVVElPTl9SVUxFX05BTUUpO1xuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVQcmVtaXNlKHN0cmluZywgY29udGV4dCkge1xuICBzdHJpbmcgPSBgJHtzdHJpbmd9XG5gOyAgLy8vXG5cbiAgcmV0dXJuIGluc3RhbnRpYXRlKHByZW1pc2VQbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZURlZHVjdGlvbihzdHJpbmcsIGNvbnRleHQpIHtcbiAgc3RyaW5nID0gYCR7c3RyaW5nfVxuYDsgIC8vL1xuXG4gIHJldHVybiBpbnN0YW50aWF0ZShkZWR1Y3Rpb25QbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZUNvbmNsdXNpb24oc3RyaW5nLCBjb250ZXh0KSB7XG4gIHN0cmluZyA9IGAke3N0cmluZ31cbmA7ICAvLy9cblxuICByZXR1cm4gaW5zdGFudGlhdGUoY29uY2x1c2lvblBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlU3VwcG9zaXRpb24oc3RyaW5nLCBjb250ZXh0KSB7XG4gIHN0cmluZyA9IGAke3N0cmluZ31cbmA7ICAvLy9cblxuICByZXR1cm4gaW5zdGFudGlhdGUoc3VwcG9zaXRpb25QbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZVRlcm0oc3RyaW5nLCBjb250ZXh0KSB7IHJldHVybiBpbnN0YW50aWF0ZSh0ZXJtUGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZVR5cGUoc3RyaW5nLCBjb250ZXh0KSB7IHJldHVybiBpbnN0YW50aWF0ZSh0eXBlUGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZUZyYW1lKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUoZnJhbWVQbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlTGFiZWwoc3RyaW5nLCBjb250ZXh0KSB7IHJldHVybiBpbnN0YW50aWF0ZShsYWJlbFBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVWYXJpYWJsZShzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKHZhcmlhYmxlUGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZUVxdWFsaXR5KHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUoZXF1YWxpdHlQbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlUHJvcGVydHkoc3RyaW5nLCBjb250ZXh0KSB7IHJldHVybiBpbnN0YW50aWF0ZShwcm9wZXJ0eVBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVHZW5lcmF0b3Ioc3RyaW5nLCBjb250ZXh0KSB7IHJldHVybiBpbnN0YW50aWF0ZShnZW5lcmF0b3JQbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlUGFyYW1ldGVyKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUocGFyYW1ldGVyUGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZVN0YXRlbWVudChzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKHN0YXRlbWVudFBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVTaWduYXR1cmUoc3RyaW5nLCBjb250ZXh0KSB7IHJldHVybiBpbnN0YW50aWF0ZShzaWduYXR1cmVQbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlQ29tYmluYXRvcihzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKGNvbWJpbmF0b3JQbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlSHlwb3RoZXNpcyhzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKGh5cG90aGVzaXNQbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlQ29uc3RyYWludChzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKGNvbnN0cmFpbnRQbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlVHlwZVByZWZpeChzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKHR5cGVQcmVmaXhQbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlQ29uc3RydWN0b3Ioc3RyaW5nLCBjb250ZXh0KSB7IHJldHVybiBpbnN0YW50aWF0ZShjb25zdHJ1Y3RvclBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVNZXRhdmFyaWFibGUoc3RyaW5nLCBjb250ZXh0KSB7IHJldHVybiBpbnN0YW50aWF0ZShtZXRhdmFyaWFibGVQbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlVHlwZUFzc2VydGlvbihzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKHR5cGVBc3NlcnRpb25QbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlRGVmaW5lZEFzc2VydGlvbihzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKGRlZmluZWRBc3NlcnRpb25QbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlVGVybVN1YnN0aXR1dGlvbihzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKHRlcm1TdWJzdGl0dXRpb25QbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlU3VicHJvb2ZBc3NlcnRpb24oc3RyaW5nLCBjb250ZXh0KSB7IHJldHVybiBpbnN0YW50aWF0ZShzdWJwcm9vZkFzc2VydGlvbmxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZVByb3BlcnR5QXNzZXJ0aW9uKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUocHJvcGVydHlBc3NlcnRpb25QbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlRnJhbWVTdWJzdGl0dXRpb24oc3RyaW5nLCBjb250ZXh0KSB7IHJldHVybiBpbnN0YW50aWF0ZShmcmFtZVN1YnN0aXR1dGlvblBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVQcm9jZWR1cmVSZWZlcmVuY2Uoc3RyaW5nLCBjb250ZXh0KSB7IHJldHVybiBpbnN0YW50aWF0ZShwcm9jZWR1cmVSZWZlcmVuY2VsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVDb250YWluZWRBc3NlcnRpb24oc3RyaW5nLCBjb250ZXh0KSB7IHJldHVybiBpbnN0YW50aWF0ZShjb250YWluZWRBc3NlcnRpb25QbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlSW1wbGljaXRBc3N1bXB0aW9uKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUoaW1wbGljaXRBc3N1bXB0aW9uUGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZVN0YXRlbWVudFN1YnN0aXR1dGlvbihzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKHN0YXRlbWVudFN1YnN0aXR1dGlvblBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuIl0sIm5hbWVzIjpbImluc3RhbnRpYXRlQ29tYmluYXRvciIsImluc3RhbnRpYXRlQ29uY2x1c2lvbiIsImluc3RhbnRpYXRlQ29uc3RyYWludCIsImluc3RhbnRpYXRlQ29uc3RydWN0b3IiLCJpbnN0YW50aWF0ZUNvbnRhaW5lZEFzc2VydGlvbiIsImluc3RhbnRpYXRlRGVkdWN0aW9uIiwiaW5zdGFudGlhdGVEZWZpbmVkQXNzZXJ0aW9uIiwiaW5zdGFudGlhdGVFcXVhbGl0eSIsImluc3RhbnRpYXRlRnJhbWUiLCJpbnN0YW50aWF0ZUZyYW1lU3Vic3RpdHV0aW9uIiwiaW5zdGFudGlhdGVHZW5lcmF0b3IiLCJpbnN0YW50aWF0ZUh5cG90aGVzaXMiLCJpbnN0YW50aWF0ZUltcGxpY2l0QXNzdW1wdGlvbiIsImluc3RhbnRpYXRlTGFiZWwiLCJpbnN0YW50aWF0ZU1ldGF2YXJpYWJsZSIsImluc3RhbnRpYXRlUGFyYW1ldGVyIiwiaW5zdGFudGlhdGVQcmVtaXNlIiwiaW5zdGFudGlhdGVQcm9jZWR1cmVSZWZlcmVuY2UiLCJpbnN0YW50aWF0ZVByb3BlcnR5IiwiaW5zdGFudGlhdGVQcm9wZXJ0eUFzc2VydGlvbiIsImluc3RhbnRpYXRlU2lnbmF0dXJlIiwiaW5zdGFudGlhdGVTdGF0ZW1lbnQiLCJpbnN0YW50aWF0ZVN0YXRlbWVudFN1YnN0aXR1dGlvbiIsImluc3RhbnRpYXRlU3VicHJvb2ZBc3NlcnRpb24iLCJpbnN0YW50aWF0ZVN1cHBvc2l0aW9uIiwiaW5zdGFudGlhdGVUZXJtIiwiaW5zdGFudGlhdGVUZXJtU3Vic3RpdHV0aW9uIiwiaW5zdGFudGlhdGVUeXBlIiwiaW5zdGFudGlhdGVUeXBlQXNzZXJ0aW9uIiwiaW5zdGFudGlhdGVUeXBlUHJlZml4IiwiaW5zdGFudGlhdGVWYXJpYWJsZSIsImluc3RhbnRpYXRlIiwicnVsZUZyb21SdWxlTmFtZSIsImJuZlV0aWxpdGllcyIsInRlcm1QbGFjZWhvbGRlclJ1bGUiLCJURVJNX1JVTEVfTkFNRSIsInR5cGVQbGFjZWhvbGRlclJ1bGUiLCJUWVBFX1JVTEVfTkFNRSIsImZyYW1lUGxhY2Vob2xkZXJSdWxlIiwiRlJBTUVfUlVMRV9OQU1FIiwibGFiZWxQbGFjZWhvbGRlclJ1bGUiLCJMQUJFTF9SVUxFX05BTUUiLCJwcmVtaXNlUGxhY2Vob2xkZXJSdWxlIiwiUFJFTUlTRV9SVUxFX05BTUUiLCJ2YXJpYWJsZVBsYWNlaG9sZGVyUnVsZSIsIlZBUklBQkxFX1JVTEVfTkFNRSIsImVxdWFsaXR5UGxhY2Vob2xkZXJSdWxlIiwiRVFVQUxJVFlfUlVMRV9OQU1FIiwicHJvcGVydHlQbGFjZWhvbGRlclJ1bGUiLCJQUk9QRVJUWV9SVUxFX05BTUUiLCJnZW5lcmF0b3JQbGFjZWhvbGRlclJ1bGUiLCJHRU5FUkFUT1JfUlVMRV9OQU1FIiwiZGVkdWN0aW9uUGxhY2Vob2xkZXJSdWxlIiwiREVEVUNUSU9OX1JVTEVfTkFNRSIsInBhcmFtZXRlclBsYWNlaG9sZGVyUnVsZSIsIlBBUkFNRVRFUl9SVUxFX05BTUUiLCJzdGF0ZW1lbnRQbGFjZWhvbGRlclJ1bGUiLCJTVEFURU1FTlRfUlVMRV9OQU1FIiwic2lnbmF0dXJlUGxhY2Vob2xkZXJSdWxlIiwiU0lHTkFUVVJFX1JVTEVfTkFNRSIsImNvbnN0cmFpbnRQbGFjZWhvbGRlclJ1bGUiLCJDT05TVFJBSU5UX1JVTEVfTkFNRSIsImNvbWJpbmF0b3JQbGFjZWhvbGRlclJ1bGUiLCJDT01CSU5BVE9SX1JVTEVfTkFNRSIsImNvbmNsdXNpb25QbGFjZWhvbGRlclJ1bGUiLCJDT05DTFVTSU9OX1JVTEVfTkFNRSIsImh5cG90aGVzaXNQbGFjZWhvbGRlclJ1bGUiLCJIWVBPVEhFU0lTX1JVTEVfTkFNRSIsInR5cGVQcmVmaXhQbGFjZWhvbGRlclJ1bGUiLCJUWVBFX1BSRUZJWF9SVUxFX05BTUUiLCJzdXBwb3NpdGlvblBsYWNlaG9sZGVyUnVsZSIsIlNVUFBPU0lUSU9OX1JVTEVfTkFNRSIsImNvbnN0cnVjdG9yUGxhY2Vob2xkZXJSdWxlIiwiQ09OU1RSVUNUT1JfUlVMRV9OQU1FIiwibWV0YXZhcmlhYmxlUGxhY2Vob2xkZXJSdWxlIiwiTUVUQVZBUklBQkxFX1JVTEVfTkFNRSIsInR5cGVBc3NlcnRpb25QbGFjZWhvbGRlclJ1bGUiLCJUWVBFX0FTU0VSVElPTl9SVUxFX05BTUUiLCJkZWZpbmVkQXNzZXJ0aW9uUGxhY2Vob2xkZXJSdWxlIiwiREVGSU5FRF9BU1NFUlRJT05fUlVMRV9OQU1FIiwidGVybVN1YnN0aXR1dGlvblBsYWNlaG9sZGVyUnVsZSIsIlRFUk1fU1VCU1RJVFVUSU9OX1JVTEVfTkFNRSIsInN1YnByb29mQXNzZXJ0aW9ubGFjZWhvbGRlclJ1bGUiLCJTVUJQUk9PRl9BU1NFUlRJT05fUlVMRV9OQU1FIiwicHJvcGVydHlBc3NlcnRpb25QbGFjZWhvbGRlclJ1bGUiLCJQUk9QRVJUWV9BU1NFUlRJT05fUlVMRV9OQU1FIiwiZnJhbWVTdWJzdGl0dXRpb25QbGFjZWhvbGRlclJ1bGUiLCJGUkFNRV9TVUJTVElUVVRJT05fUlVMRV9OQU1FIiwicHJvY2VkdXJlUmVmZXJlbmNlbGFjZWhvbGRlclJ1bGUiLCJQUk9DRURVUkVfUkVGRVJFTkNFX1JVTEVfTkFNRSIsImNvbnRhaW5lZEFzc2VydGlvblBsYWNlaG9sZGVyUnVsZSIsIkNPTlRBSU5FRF9BU1NFUlRJT05fUlVMRV9OQU1FIiwiaW1wbGljaXRBc3N1bXB0aW9uUGxhY2Vob2xkZXJSdWxlIiwiSU1QTElDSVRfQVNTVU1QVElPTl9SVUxFX05BTUUiLCJzdGF0ZW1lbnRTdWJzdGl0dXRpb25QbGFjZWhvbGRlclJ1bGUiLCJTVEFURU1FTlRfU1VCU1RJVFVUSU9OX1JVTEVfTkFNRSIsInN0cmluZyIsImNvbnRleHQiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztRQXdIZ0JBO2VBQUFBOztRQXBDQUM7ZUFBQUE7O1FBd0NBQztlQUFBQTs7UUFJQUM7ZUFBQUE7O1FBa0JBQztlQUFBQTs7UUFyRUFDO2VBQUFBOztRQXlEQUM7ZUFBQUE7O1FBMUJBQztlQUFBQTs7UUFOQUM7ZUFBQUE7O1FBd0NBQztlQUFBQTs7UUE5QkFDO2VBQUFBOztRQVVBQztlQUFBQTs7UUEwQkFDO2VBQUFBOztRQTVDQUM7ZUFBQUE7O1FBMEJBQztlQUFBQTs7UUFoQkFDO2VBQUFBOztRQTVDQUM7ZUFBQUE7O1FBMEVBQztlQUFBQTs7UUFsQ0FDO2VBQUFBOztRQThCQUM7ZUFBQUE7O1FBdEJBQztlQUFBQTs7UUFGQUM7ZUFBQUE7O1FBa0NBQztlQUFBQTs7UUFaQUM7ZUFBQUE7O1FBL0NBQztlQUFBQTs7UUFPQUM7ZUFBQUE7O1FBc0NBQztlQUFBQTs7UUFwQ0FDO2VBQUFBOztRQWdDQUM7ZUFBQUE7O1FBTkFDO2VBQUFBOztRQXBC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
218
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm9jZXNzL2luc3RhbnRpYXRlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBibmZVdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCB7IFRFUk1fUlVMRV9OQU1FLFxuICAgICAgICAgTElOS19SVUxFX05BTUUsXG4gICAgICAgICBUWVBFX1JVTEVfTkFNRSxcbiAgICAgICAgIEZSQU1FX1JVTEVfTkFNRSxcbiAgICAgICAgIExBQkVMX1JVTEVfTkFNRSxcbiAgICAgICAgIFBSRU1JU0VfUlVMRV9OQU1FLFxuICAgICAgICAgVkFSSUFCTEVfUlVMRV9OQU1FLFxuICAgICAgICAgRVFVQUxJVFlfUlVMRV9OQU1FLFxuICAgICAgICAgUFJPUEVSVFlfUlVMRV9OQU1FLFxuICAgICAgICAgREVEVUNUSU9OX1JVTEVfTkFNRSxcbiAgICAgICAgIFBBUkFNRVRFUl9SVUxFX05BTUUsXG4gICAgICAgICBTVEFURU1FTlRfUlVMRV9OQU1FLFxuICAgICAgICAgU0lHTkFUVVJFX1JVTEVfTkFNRSxcbiAgICAgICAgIEdFTkVSQVRPUl9SVUxFX05BTUUsXG4gICAgICAgICBDT01CSU5BVE9SX1JVTEVfTkFNRSxcbiAgICAgICAgIENPTkNMVVNJT05fUlVMRV9OQU1FLFxuICAgICAgICAgSFlQT1RIRVNJU19SVUxFX05BTUUsXG4gICAgICAgICBDT05TVFJBSU5UX1JVTEVfTkFNRSxcbiAgICAgICAgIFRZUEVfUFJFRklYX1JVTEVfTkFNRSxcbiAgICAgICAgIFNVUFBPU0lUSU9OX1JVTEVfTkFNRSxcbiAgICAgICAgIENPTlNUUlVDVE9SX1JVTEVfTkFNRSxcbiAgICAgICAgIE1FVEFWQVJJQUJMRV9SVUxFX05BTUUsXG4gICAgICAgICBUWVBFX0FTU0VSVElPTl9SVUxFX05BTUUsXG4gICAgICAgICBERUZJTkVEX0FTU0VSVElPTl9SVUxFX05BTUUsXG4gICAgICAgICBURVJNX1NVQlNUSVRVVElPTl9SVUxFX05BTUUsXG4gICAgICAgICBQUk9QRVJUWV9BU1NFUlRJT05fUlVMRV9OQU1FLFxuICAgICAgICAgU1VCUFJPT0ZfQVNTRVJUSU9OX1JVTEVfTkFNRSxcbiAgICAgICAgIEZSQU1FX1NVQlNUSVRVVElPTl9SVUxFX05BTUUsXG4gICAgICAgICBQUk9DRURVUkVfUkVGRVJFTkNFX1JVTEVfTkFNRSxcbiAgICAgICAgIENPTlRBSU5FRF9BU1NFUlRJT05fUlVMRV9OQU1FLFxuICAgICAgICAgSU1QTElDSVRfQVNTVU1QVElPTl9SVUxFX05BTUUsXG4gICAgICAgICBTVEFURU1FTlRfU1VCU1RJVFVUSU9OX1JVTEVfTkFNRSB9IGZyb20gXCIuLi9ydWxlTmFtZXNcIjtcblxuY29uc3QgeyBpbnN0YW50aWF0ZSwgcnVsZUZyb21SdWxlTmFtZSB9ID0gYm5mVXRpbGl0aWVzO1xuXG5jb25zdCB0ZXJtUGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShURVJNX1JVTEVfTkFNRSksXG4gICAgICBsaW5rUGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShMSU5LX1JVTEVfTkFNRSksXG4gICAgICB0eXBlUGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShUWVBFX1JVTEVfTkFNRSksXG4gICAgICBmcmFtZVBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoRlJBTUVfUlVMRV9OQU1FKSxcbiAgICAgIGxhYmVsUGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShMQUJFTF9SVUxFX05BTUUpLFxuICAgICAgcHJlbWlzZVBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoUFJFTUlTRV9SVUxFX05BTUUpLFxuICAgICAgdmFyaWFibGVQbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKFZBUklBQkxFX1JVTEVfTkFNRSksXG4gICAgICBlcXVhbGl0eVBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoRVFVQUxJVFlfUlVMRV9OQU1FKSxcbiAgICAgIHByb3BlcnR5UGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShQUk9QRVJUWV9SVUxFX05BTUUpLFxuICAgICAgZ2VuZXJhdG9yUGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShHRU5FUkFUT1JfUlVMRV9OQU1FKSxcbiAgICAgIGRlZHVjdGlvblBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoREVEVUNUSU9OX1JVTEVfTkFNRSksXG4gICAgICBwYXJhbWV0ZXJQbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKFBBUkFNRVRFUl9SVUxFX05BTUUpLFxuICAgICAgc3RhdGVtZW50UGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShTVEFURU1FTlRfUlVMRV9OQU1FKSxcbiAgICAgIHNpZ25hdHVyZVBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoU0lHTkFUVVJFX1JVTEVfTkFNRSksXG4gICAgICBjb25zdHJhaW50UGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShDT05TVFJBSU5UX1JVTEVfTkFNRSksXG4gICAgICBjb21iaW5hdG9yUGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShDT01CSU5BVE9SX1JVTEVfTkFNRSksXG4gICAgICBjb25jbHVzaW9uUGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShDT05DTFVTSU9OX1JVTEVfTkFNRSksXG4gICAgICBoeXBvdGhlc2lzUGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShIWVBPVEhFU0lTX1JVTEVfTkFNRSksXG4gICAgICB0eXBlUHJlZml4UGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShUWVBFX1BSRUZJWF9SVUxFX05BTUUpLFxuICAgICAgc3VwcG9zaXRpb25QbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKFNVUFBPU0lUSU9OX1JVTEVfTkFNRSksXG4gICAgICBjb25zdHJ1Y3RvclBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoQ09OU1RSVUNUT1JfUlVMRV9OQU1FKSxcbiAgICAgIG1ldGF2YXJpYWJsZVBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoTUVUQVZBUklBQkxFX1JVTEVfTkFNRSksXG4gICAgICB0eXBlQXNzZXJ0aW9uUGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShUWVBFX0FTU0VSVElPTl9SVUxFX05BTUUpLFxuICAgICAgZGVmaW5lZEFzc2VydGlvblBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoREVGSU5FRF9BU1NFUlRJT05fUlVMRV9OQU1FKSxcbiAgICAgIHRlcm1TdWJzdGl0dXRpb25QbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKFRFUk1fU1VCU1RJVFVUSU9OX1JVTEVfTkFNRSksXG4gICAgICBzdWJwcm9vZkFzc2VydGlvbmxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShTVUJQUk9PRl9BU1NFUlRJT05fUlVMRV9OQU1FKSxcbiAgICAgIHByb3BlcnR5QXNzZXJ0aW9uUGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShQUk9QRVJUWV9BU1NFUlRJT05fUlVMRV9OQU1FKSxcbiAgICAgIGZyYW1lU3Vic3RpdHV0aW9uUGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShGUkFNRV9TVUJTVElUVVRJT05fUlVMRV9OQU1FKSxcbiAgICAgIHByb2NlZHVyZVJlZmVyZW5jZWxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShQUk9DRURVUkVfUkVGRVJFTkNFX1JVTEVfTkFNRSksXG4gICAgICBjb250YWluZWRBc3NlcnRpb25QbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKENPTlRBSU5FRF9BU1NFUlRJT05fUlVMRV9OQU1FKSxcbiAgICAgIGltcGxpY2l0QXNzdW1wdGlvblBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoSU1QTElDSVRfQVNTVU1QVElPTl9SVUxFX05BTUUpLFxuICAgICAgc3RhdGVtZW50U3Vic3RpdHV0aW9uUGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShTVEFURU1FTlRfU1VCU1RJVFVUSU9OX1JVTEVfTkFNRSk7XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZVByZW1pc2Uoc3RyaW5nLCBjb250ZXh0KSB7XG4gIHN0cmluZyA9IGAke3N0cmluZ31cbmA7ICAvLy9cblxuICByZXR1cm4gaW5zdGFudGlhdGUocHJlbWlzZVBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlRGVkdWN0aW9uKHN0cmluZywgY29udGV4dCkge1xuICBzdHJpbmcgPSBgJHtzdHJpbmd9XG5gOyAgLy8vXG5cbiAgcmV0dXJuIGluc3RhbnRpYXRlKGRlZHVjdGlvblBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlQ29uY2x1c2lvbihzdHJpbmcsIGNvbnRleHQpIHtcbiAgc3RyaW5nID0gYCR7c3RyaW5nfVxuYDsgIC8vL1xuXG4gIHJldHVybiBpbnN0YW50aWF0ZShjb25jbHVzaW9uUGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVTdXBwb3NpdGlvbihzdHJpbmcsIGNvbnRleHQpIHtcbiAgc3RyaW5nID0gYCR7c3RyaW5nfVxuYDsgIC8vL1xuXG4gIHJldHVybiBpbnN0YW50aWF0ZShzdXBwb3NpdGlvblBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlVGVybShzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKHRlcm1QbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlTGluayhzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKGxpbmtQbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlVHlwZShzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKHR5cGVQbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlRnJhbWUoc3RyaW5nLCBjb250ZXh0KSB7IHJldHVybiBpbnN0YW50aWF0ZShmcmFtZVBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVMYWJlbChzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKGxhYmVsUGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZVZhcmlhYmxlKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUodmFyaWFibGVQbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlRXF1YWxpdHkoc3RyaW5nLCBjb250ZXh0KSB7IHJldHVybiBpbnN0YW50aWF0ZShlcXVhbGl0eVBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVQcm9wZXJ0eShzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKHByb3BlcnR5UGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZUdlbmVyYXRvcihzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKGdlbmVyYXRvclBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVQYXJhbWV0ZXIoc3RyaW5nLCBjb250ZXh0KSB7IHJldHVybiBpbnN0YW50aWF0ZShwYXJhbWV0ZXJQbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlU3RhdGVtZW50KHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUoc3RhdGVtZW50UGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZVNpZ25hdHVyZShzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKHNpZ25hdHVyZVBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVDb21iaW5hdG9yKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUoY29tYmluYXRvclBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVIeXBvdGhlc2lzKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUoaHlwb3RoZXNpc1BsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVDb25zdHJhaW50KHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUoY29uc3RyYWludFBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVUeXBlUHJlZml4KHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUodHlwZVByZWZpeFBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVDb25zdHJ1Y3RvcihzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKGNvbnN0cnVjdG9yUGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZU1ldGF2YXJpYWJsZShzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKG1ldGF2YXJpYWJsZVBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVUeXBlQXNzZXJ0aW9uKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUodHlwZUFzc2VydGlvblBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVEZWZpbmVkQXNzZXJ0aW9uKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUoZGVmaW5lZEFzc2VydGlvblBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVUZXJtU3Vic3RpdHV0aW9uKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUodGVybVN1YnN0aXR1dGlvblBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVTdWJwcm9vZkFzc2VydGlvbihzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKHN1YnByb29mQXNzZXJ0aW9ubGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlUHJvcGVydHlBc3NlcnRpb24oc3RyaW5nLCBjb250ZXh0KSB7IHJldHVybiBpbnN0YW50aWF0ZShwcm9wZXJ0eUFzc2VydGlvblBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVGcmFtZVN1YnN0aXR1dGlvbihzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKGZyYW1lU3Vic3RpdHV0aW9uUGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZVByb2NlZHVyZVJlZmVyZW5jZShzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKHByb2NlZHVyZVJlZmVyZW5jZWxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZUNvbnRhaW5lZEFzc2VydGlvbihzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKGNvbnRhaW5lZEFzc2VydGlvblBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVJbXBsaWNpdEFzc3VtcHRpb24oc3RyaW5nLCBjb250ZXh0KSB7IHJldHVybiBpbnN0YW50aWF0ZShpbXBsaWNpdEFzc3VtcHRpb25QbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlU3RhdGVtZW50U3Vic3RpdHV0aW9uKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUoc3RhdGVtZW50U3Vic3RpdHV0aW9uUGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG4iXSwibmFtZXMiOlsiaW5zdGFudGlhdGVDb21iaW5hdG9yIiwiaW5zdGFudGlhdGVDb25jbHVzaW9uIiwiaW5zdGFudGlhdGVDb25zdHJhaW50IiwiaW5zdGFudGlhdGVDb25zdHJ1Y3RvciIsImluc3RhbnRpYXRlQ29udGFpbmVkQXNzZXJ0aW9uIiwiaW5zdGFudGlhdGVEZWR1Y3Rpb24iLCJpbnN0YW50aWF0ZURlZmluZWRBc3NlcnRpb24iLCJpbnN0YW50aWF0ZUVxdWFsaXR5IiwiaW5zdGFudGlhdGVGcmFtZSIsImluc3RhbnRpYXRlRnJhbWVTdWJzdGl0dXRpb24iLCJpbnN0YW50aWF0ZUdlbmVyYXRvciIsImluc3RhbnRpYXRlSHlwb3RoZXNpcyIsImluc3RhbnRpYXRlSW1wbGljaXRBc3N1bXB0aW9uIiwiaW5zdGFudGlhdGVMYWJlbCIsImluc3RhbnRpYXRlTGluayIsImluc3RhbnRpYXRlTWV0YXZhcmlhYmxlIiwiaW5zdGFudGlhdGVQYXJhbWV0ZXIiLCJpbnN0YW50aWF0ZVByZW1pc2UiLCJpbnN0YW50aWF0ZVByb2NlZHVyZVJlZmVyZW5jZSIsImluc3RhbnRpYXRlUHJvcGVydHkiLCJpbnN0YW50aWF0ZVByb3BlcnR5QXNzZXJ0aW9uIiwiaW5zdGFudGlhdGVTaWduYXR1cmUiLCJpbnN0YW50aWF0ZVN0YXRlbWVudCIsImluc3RhbnRpYXRlU3RhdGVtZW50U3Vic3RpdHV0aW9uIiwiaW5zdGFudGlhdGVTdWJwcm9vZkFzc2VydGlvbiIsImluc3RhbnRpYXRlU3VwcG9zaXRpb24iLCJpbnN0YW50aWF0ZVRlcm0iLCJpbnN0YW50aWF0ZVRlcm1TdWJzdGl0dXRpb24iLCJpbnN0YW50aWF0ZVR5cGUiLCJpbnN0YW50aWF0ZVR5cGVBc3NlcnRpb24iLCJpbnN0YW50aWF0ZVR5cGVQcmVmaXgiLCJpbnN0YW50aWF0ZVZhcmlhYmxlIiwiaW5zdGFudGlhdGUiLCJydWxlRnJvbVJ1bGVOYW1lIiwiYm5mVXRpbGl0aWVzIiwidGVybVBsYWNlaG9sZGVyUnVsZSIsIlRFUk1fUlVMRV9OQU1FIiwibGlua1BsYWNlaG9sZGVyUnVsZSIsIkxJTktfUlVMRV9OQU1FIiwidHlwZVBsYWNlaG9sZGVyUnVsZSIsIlRZUEVfUlVMRV9OQU1FIiwiZnJhbWVQbGFjZWhvbGRlclJ1bGUiLCJGUkFNRV9SVUxFX05BTUUiLCJsYWJlbFBsYWNlaG9sZGVyUnVsZSIsIkxBQkVMX1JVTEVfTkFNRSIsInByZW1pc2VQbGFjZWhvbGRlclJ1bGUiLCJQUkVNSVNFX1JVTEVfTkFNRSIsInZhcmlhYmxlUGxhY2Vob2xkZXJSdWxlIiwiVkFSSUFCTEVfUlVMRV9OQU1FIiwiZXF1YWxpdHlQbGFjZWhvbGRlclJ1bGUiLCJFUVVBTElUWV9SVUxFX05BTUUiLCJwcm9wZXJ0eVBsYWNlaG9sZGVyUnVsZSIsIlBST1BFUlRZX1JVTEVfTkFNRSIsImdlbmVyYXRvclBsYWNlaG9sZGVyUnVsZSIsIkdFTkVSQVRPUl9SVUxFX05BTUUiLCJkZWR1Y3Rpb25QbGFjZWhvbGRlclJ1bGUiLCJERURVQ1RJT05fUlVMRV9OQU1FIiwicGFyYW1ldGVyUGxhY2Vob2xkZXJSdWxlIiwiUEFSQU1FVEVSX1JVTEVfTkFNRSIsInN0YXRlbWVudFBsYWNlaG9sZGVyUnVsZSIsIlNUQVRFTUVOVF9SVUxFX05BTUUiLCJzaWduYXR1cmVQbGFjZWhvbGRlclJ1bGUiLCJTSUdOQVRVUkVfUlVMRV9OQU1FIiwiY29uc3RyYWludFBsYWNlaG9sZGVyUnVsZSIsIkNPTlNUUkFJTlRfUlVMRV9OQU1FIiwiY29tYmluYXRvclBsYWNlaG9sZGVyUnVsZSIsIkNPTUJJTkFUT1JfUlVMRV9OQU1FIiwiY29uY2x1c2lvblBsYWNlaG9sZGVyUnVsZSIsIkNPTkNMVVNJT05fUlVMRV9OQU1FIiwiaHlwb3RoZXNpc1BsYWNlaG9sZGVyUnVsZSIsIkhZUE9USEVTSVNfUlVMRV9OQU1FIiwidHlwZVByZWZpeFBsYWNlaG9sZGVyUnVsZSIsIlRZUEVfUFJFRklYX1JVTEVfTkFNRSIsInN1cHBvc2l0aW9uUGxhY2Vob2xkZXJSdWxlIiwiU1VQUE9TSVRJT05fUlVMRV9OQU1FIiwiY29uc3RydWN0b3JQbGFjZWhvbGRlclJ1bGUiLCJDT05TVFJVQ1RPUl9SVUxFX05BTUUiLCJtZXRhdmFyaWFibGVQbGFjZWhvbGRlclJ1bGUiLCJNRVRBVkFSSUFCTEVfUlVMRV9OQU1FIiwidHlwZUFzc2VydGlvblBsYWNlaG9sZGVyUnVsZSIsIlRZUEVfQVNTRVJUSU9OX1JVTEVfTkFNRSIsImRlZmluZWRBc3NlcnRpb25QbGFjZWhvbGRlclJ1bGUiLCJERUZJTkVEX0FTU0VSVElPTl9SVUxFX05BTUUiLCJ0ZXJtU3Vic3RpdHV0aW9uUGxhY2Vob2xkZXJSdWxlIiwiVEVSTV9TVUJTVElUVVRJT05fUlVMRV9OQU1FIiwic3VicHJvb2ZBc3NlcnRpb25sYWNlaG9sZGVyUnVsZSIsIlNVQlBST09GX0FTU0VSVElPTl9SVUxFX05BTUUiLCJwcm9wZXJ0eUFzc2VydGlvblBsYWNlaG9sZGVyUnVsZSIsIlBST1BFUlRZX0FTU0VSVElPTl9SVUxFX05BTUUiLCJmcmFtZVN1YnN0aXR1dGlvblBsYWNlaG9sZGVyUnVsZSIsIkZSQU1FX1NVQlNUSVRVVElPTl9SVUxFX05BTUUiLCJwcm9jZWR1cmVSZWZlcmVuY2VsYWNlaG9sZGVyUnVsZSIsIlBST0NFRFVSRV9SRUZFUkVOQ0VfUlVMRV9OQU1FIiwiY29udGFpbmVkQXNzZXJ0aW9uUGxhY2Vob2xkZXJSdWxlIiwiQ09OVEFJTkVEX0FTU0VSVElPTl9SVUxFX05BTUUiLCJpbXBsaWNpdEFzc3VtcHRpb25QbGFjZWhvbGRlclJ1bGUiLCJJTVBMSUNJVF9BU1NVTVBUSU9OX1JVTEVfTkFNRSIsInN0YXRlbWVudFN1YnN0aXR1dGlvblBsYWNlaG9sZGVyUnVsZSIsIlNUQVRFTUVOVF9TVUJTVElUVVRJT05fUlVMRV9OQU1FIiwic3RyaW5nIiwiY29udGV4dCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O1FBNEhnQkE7ZUFBQUE7O1FBdENBQztlQUFBQTs7UUEwQ0FDO2VBQUFBOztRQUlBQztlQUFBQTs7UUFrQkFDO2VBQUFBOztRQXZFQUM7ZUFBQUE7O1FBMkRBQztlQUFBQTs7UUExQkFDO2VBQUFBOztRQU5BQztlQUFBQTs7UUF3Q0FDO2VBQUFBOztRQTlCQUM7ZUFBQUE7O1FBVUFD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
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "occam-nominal",
3
3
  "author": "James Smith",
4
- "version": "1.0.546",
4
+ "version": "1.0.547",
5
5
  "license": "MIT, Anti-996",
6
6
  "homepage": "https://github.com/djalbat/occam-nominal",
7
7
  "description": "Occam's Nominal language.",
@@ -3,6 +3,7 @@
3
3
  import { bnfUtilities } from "occam-languages";
4
4
 
5
5
  import { TERM_RULE_NAME,
6
+ LINK_RULE_NAME,
6
7
  TYPE_RULE_NAME,
7
8
  FRAME_RULE_NAME,
8
9
  LABEL_RULE_NAME,
@@ -37,6 +38,7 @@ import { TERM_RULE_NAME,
37
38
  const { instantiate, ruleFromRuleName } = bnfUtilities;
38
39
 
39
40
  const termPlaceholderRule = ruleFromRuleName(TERM_RULE_NAME),
41
+ linkPlaceholderRule = ruleFromRuleName(LINK_RULE_NAME),
40
42
  typePlaceholderRule = ruleFromRuleName(TYPE_RULE_NAME),
41
43
  framePlaceholderRule = ruleFromRuleName(FRAME_RULE_NAME),
42
44
  labelPlaceholderRule = ruleFromRuleName(LABEL_RULE_NAME),
@@ -98,6 +100,8 @@ export function instantiateSupposition(string, context) {
98
100
 
99
101
  export function instantiateTerm(string, context) { return instantiate(termPlaceholderRule, string, context); }
100
102
 
103
+ export function instantiateLink(string, context) { return instantiate(linkPlaceholderRule, string, context); }
104
+
101
105
  export function instantiateType(string, context) { return instantiate(typePlaceholderRule, string, context); }
102
106
 
103
107
  export function instantiateFrame(string, context) { return instantiate(framePlaceholderRule, string, context); }