occam-verify-cli 0.0.469 → 0.0.470

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.
@@ -136,6 +136,13 @@ var ProofContext = /*#__PURE__*/ function() {
136
136
  return variables;
137
137
  }
138
138
  },
139
+ {
140
+ key: "getLastAssertion",
141
+ value: function getLastAssertion() {
142
+ var lastAssertion = (0, _array.last)(this.assertions);
143
+ return lastAssertion;
144
+ }
145
+ },
139
146
  {
140
147
  key: "setDerived",
141
148
  value: function setDerived(derived) {
@@ -262,4 +269,4 @@ Object.assign(ProofContext.prototype, _logging.default);
262
269
  Object.assign(ProofContext.prototype, _callbacks.default);
263
270
  var _default = ProofContext;
264
271
 
265
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250ZXh0L3Byb29mLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgZmlsZU1peGlucyBmcm9tIFwiLi4vbWl4aW5zL2ZpbGVcIjtcbmltcG9ydCBsb2dnaW5nTWl4aW5zIGZyb20gXCIuLi9taXhpbnMvbG9nZ2luZ1wiO1xuaW1wb3J0IGNhbGxiYWNrc01peGlucyBmcm9tIFwiLi4vbWl4aW5zL2NhbGxiYWNrc1wiO1xuXG5pbXBvcnQgeyBwdXNoIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9hcnJheVwiO1xuXG5jbGFzcyBQcm9vZkNvbnRleHQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBkZXJpdmVkLCB2YXJpYWJsZXMsIGFzc2VydGlvbnMpIHtcbiAgICB0aGlzLmNvbnRleHQgPSBjb250ZXh0O1xuICAgIHRoaXMuZGVyaXZlZCA9IGRlcml2ZWQ7XG4gICAgdGhpcy52YXJpYWJsZXMgPSB2YXJpYWJsZXM7XG4gICAgdGhpcy5hc3NlcnRpb25zID0gYXNzZXJ0aW9ucztcbiAgfVxuXG4gIGdldENvbnRleHQoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29udGV4dDtcbiAgfVxuXG4gIGlzRGVyaXZlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5kZXJpdmVkO1xuICB9XG5cbiAgZ2V0QXNzZXJ0aW9ucygpIHtcbiAgICBsZXQgYXNzZXJ0aW9ucyA9IHRoaXMuY29udGV4dC5nZXRBc3NlcnRpb25zKCk7XG5cbiAgICBhc3NlcnRpb25zID0gW1xuICAgICAgLi4uYXNzZXJ0aW9ucyxcbiAgICAgIC4uLnRoaXMuYXNzZXJ0aW9uc1xuICAgIF07XG5cbiAgICByZXR1cm4gYXNzZXJ0aW9ucztcbiAgfVxuXG4gIGdldFR5cGVzKCkgeyByZXR1cm4gdGhpcy5jb250ZXh0LmdldFR5cGVzKCk7IH1cblxuICBnZXRBeGlvbXMoKSB7IHJldHVybiB0aGlzLmNvbnRleHQuZ2V0QXhpb21zKCk7IH1cblxuICBnZXRMZW1tYXMoKSB7IHJldHVybiB0aGlzLmNvbnRleHQuZ2V0TGVtbWFzKCk7IH1cblxuICBnZXRUaGVvcmVtcygpIHsgcmV0dXJuIHRoaXMuY29udGV4dC5nZXRUaGVvcmVtcygpOyB9XG5cbiAgZ2V0Q29tYmluYXRvcnMoKSB7IHJldHVybiB0aGlzLmNvbnRleHQuZ2V0Q29tYmluYXRvcnMoKTsgfVxuXG4gIGdldENvbnN0cnVjdG9ycygpIHsgcmV0dXJuIHRoaXMuY29udGV4dC5nZXRDb25zdHJ1Y3RvcnMoKTsgfVxuXG4gIGdldFZhcmlhYmxlcygpIHtcbiAgICBjb25zdCB2YXJpYWJsZXMgPSBbXTtcblxuICAgIHB1c2godmFyaWFibGVzLCB0aGlzLnZhcmlhYmxlcyk7XG5cbiAgICBjb25zdCBjb250ZXh0VmFyaWFibGVzID0gdGhpcy5jb250ZXh0LmdldFZhcmlhYmxlcygpO1xuXG4gICAgcHVzaCh2YXJpYWJsZXMsIGNvbnRleHRWYXJpYWJsZXMpO1xuXG4gICAgcmV0dXJuIHZhcmlhYmxlcztcbiAgfVxuXG4gIHNldERlcml2ZWQoZGVyaXZlZCkge1xuICAgIHRoaXMuZGVyaXZlZCA9IGRlcml2ZWQ7XG4gIH1cblxuICBhZGRWYXJpYWJsZSh2YXJpYWJsZSkge1xuICAgIHRoaXMudmFyaWFibGVzLnB1c2godmFyaWFibGUpO1xuICB9XG5cbiAgYWRkQXNzZXJ0aW9uKGFzc2VydGlvbikge1xuICAgIHRoaXMuYXNzZXJ0aW9ucy5wdXNoKGFzc2VydGlvbik7XG4gIH1cblxuICBtYXRjaEFzc2VydGlvbihhc3NlcnRpb24pIHtcbiAgICBsZXQgYXNzZXJ0aW9uTWF0Y2hlcztcblxuICAgIGNvbnN0IGFzc2VydGlvbkIgPSBhc3NlcnRpb247IC8vL1xuXG4gICAgYXNzZXJ0aW9uTWF0Y2hlcyA9IHRoaXMuYXNzZXJ0aW9ucy5zb21lKChhc3NlcnRpb24pID0+IHtcbiAgICAgIGNvbnN0IGFzc2VydGlvbkEgPSBhc3NlcnRpb24sIC8vL1xuICAgICAgICAgICAgbWF0Y2hlcyA9IGFzc2VydGlvbkEubWF0Y2goYXNzZXJ0aW9uQik7XG5cbiAgICAgIGlmIChtYXRjaGVzKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKCFhc3NlcnRpb25NYXRjaGVzKSB7XG4gICAgICBhc3NlcnRpb25NYXRjaGVzID0gdGhpcy5jb250ZXh0Lm1hdGNoQXNzZXJ0aW9uKGFzc2VydGlvbik7XG4gICAgfVxuXG4gICAgcmV0dXJuIGFzc2VydGlvbk1hdGNoZXM7XG4gIH1cblxuICBmaW5kVmFyaWFibGVCeVZhcmlhYmxlTmFtZSh2YXJpYWJsZU5hbWUpIHtcbiAgICBjb25zdCBuYW1lID0gdmFyaWFibGVOYW1lLCAgLy8vXG4gICAgICAgICAgdmFyaWFibGVzID0gdGhpcy5nZXRWYXJpYWJsZXMoKSxcbiAgICAgICAgICB2YXJpYWJsZSA9IHZhcmlhYmxlcy5maW5kKCh2YXJpYWJsZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgbWF0Y2hlcyA9IHZhcmlhYmxlLm1hdGNoTmFtZShuYW1lKTtcblxuICAgICAgICAgICAgaWYgKG1hdGNoZXMpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSkgfHwgbnVsbDtcblxuICAgIHJldHVybiB2YXJpYWJsZTtcbiAgfVxuXG4gIGlzVmFyaWFibGVQcmVzZW50QnlWYXJpYWJsZU5hbWUodmFyaWFibGVOYW1lKSB7XG4gICAgY29uc3QgdmFyaWFibGUgPSB0aGlzLmZpbmRWYXJpYWJsZUJ5VmFyaWFibGVOYW1lKHZhcmlhYmxlTmFtZSksXG4gICAgICAgIHZhcmlhYmxlUHJlc2VudCA9ICh2YXJpYWJsZSAhPT0gbnVsbCk7XG5cbiAgICByZXR1cm4gdmFyaWFibGVQcmVzZW50O1xuICB9XG5cbiAgZmluZFR5cGVCeVR5cGVOYW1lKHR5cGVOYW1lKSB7IHJldHVybiB0aGlzLmNvbnRleHQuZmluZFR5cGVCeVR5cGVOYW1lKHR5cGVOYW1lKTsgfVxuXG4gIGZpbmRMYWJlbEJ5VHlwZU5hbWUobGFiZWxOYW1lKSB7IHJldHVybiB0aGlzLmNvbnRleHQuZmluZExhYmVsQnlUeXBlTmFtZShsYWJlbE5hbWUpOyB9XG5cbiAgZmluZFJ1bGVCeVJlZmVyZW5jZU5hbWUocmVmZXJlbmNlTmFtZSkgeyByZXR1cm4gdGhpcy5jb250ZXh0LmZpbmRSdWxlQnlSZWZlcmVuY2VOYW1lKHJlZmVyZW5jZU5hbWUpOyB9XG5cbiAgZmluZEF4aW9tQnlSZWZlcmVuY2VOYW1lKHJlZmVyZW5jZU5hbWUpIHsgcmV0dXJuIHRoaXMuY29udGV4dC5maW5kQXhpb21CeVJlZmVyZW5jZU5hbWUocmVmZXJlbmNlTmFtZSk7IH1cblxuICBmaW5kTGVtbWFCeVJlZmVyZW5jZU5hbWUocmVmZXJlbmNlTmFtZSkgeyByZXR1cm4gdGhpcy5jb250ZXh0LmZpbmRMZW1tYUJ5UmVmZXJlbmNlTmFtZShyZWZlcmVuY2VOYW1lKTsgfVxuXG4gIGZpbmRUaGVvcmVtQnlSZWZlcmVuY2VOYW1lKHJlZmVyZW5jZU5hbWUpIHsgcmV0dXJuIHRoaXMuY29udGV4dC5maW5kVGhlb3JlbUJ5UmVmZXJlbmNlTmFtZShyZWZlcmVuY2VOYW1lKTsgfVxuXG4gIGlzTGFiZWxQcmVzZW50QnlMYWJlbE5hbWUobGFiZWxOYW1lKSB7IHJldHVybiB0aGlzLmNvbnRleHQuaXNMYWJlbFByZXNlbnRCeUxhYmVsTmFtZShsYWJlbE5hbWUpOyB9XG5cbiAgaXNUeXBlUHJlc2VudEJ5VHlwZU5hbWUodHlwZU5hbWUpIHsgcmV0dXJuIHRoaXMuY29udGV4dC5pc1R5cGVQcmVzZW50QnlUeXBlTmFtZSh0eXBlTmFtZSk7IH1cblxuICBzdGF0aWMgZnJvbUZpbGVDb250ZXh0KGZpbGVDb250ZXh0KSB7XG4gICAgY29uc3QgY29udGV4dCA9IGZpbGVDb250ZXh0LCAgLy8vXG4gICAgICAgICAgZGVyaXZlZCA9IGZhbHNlLFxuICAgICAgICAgIHZhcmlhYmxlcyA9IFtdLFxuICAgICAgICAgIGFzc2VydGlvbnMgPSBbXSxcbiAgICAgICAgICBwcm9vZkNvbnRleHQgPSBuZXcgUHJvb2ZDb250ZXh0KGNvbnRleHQsIGRlcml2ZWQsIHZhcmlhYmxlcywgYXNzZXJ0aW9ucyk7XG5cbiAgICByZXR1cm4gcHJvb2ZDb250ZXh0O1xuICB9XG5cbiAgc3RhdGljIGZyb21Qcm9vZkNvbnRleHQocHJvb2ZDb250ZXh0KSB7XG4gICAgY29uc3QgY29udGV4dCA9IHByb29mQ29udGV4dCwgIC8vL1xuICAgICAgICAgIGRlcml2ZWQgPSBmYWxzZSxcbiAgICAgICAgICB2YXJpYWJsZXMgPSBbXSxcbiAgICAgICAgICBhc3NlcnRpb25zID0gW107XG5cbiAgICBwcm9vZkNvbnRleHQgPSBuZXcgUHJvb2ZDb250ZXh0KGNvbnRleHQsIGRlcml2ZWQsIHZhcmlhYmxlcywgYXNzZXJ0aW9ucyk7XG5cbiAgICByZXR1cm4gcHJvb2ZDb250ZXh0O1xuICB9XG59XG5cbk9iamVjdC5hc3NpZ24oUHJvb2ZDb250ZXh0LnByb3RvdHlwZSwgZmlsZU1peGlucyk7XG5PYmplY3QuYXNzaWduKFByb29mQ29udGV4dC5wcm90b3R5cGUsIGxvZ2dpbmdNaXhpbnMpO1xuT2JqZWN0LmFzc2lnbihQcm9vZkNvbnRleHQucHJvdG90eXBlLCBjYWxsYmFja3NNaXhpbnMpO1xuXG5leHBvcnQgZGVmYXVsdCBQcm9vZkNvbnRleHQ7XG4iXSwibmFtZXMiOlsiUHJvb2ZDb250ZXh0IiwiY29udGV4dCIsImRlcml2ZWQiLCJ2YXJpYWJsZXMiLCJhc3NlcnRpb25zIiwiZ2V0Q29udGV4dCIsImlzRGVyaXZlZCIsImdldEFzc2VydGlvbnMiLCJnZXRUeXBlcyIsImdldEF4aW9tcyIsImdldExlbW1hcyIsImdldFRoZW9yZW1zIiwiZ2V0Q29tYmluYXRvcnMiLCJnZXRDb25zdHJ1Y3RvcnMiLCJnZXRWYXJpYWJsZXMiLCJwdXNoIiwiY29udGV4dFZhcmlhYmxlcyIsInNldERlcml2ZWQiLCJhZGRWYXJpYWJsZSIsInZhcmlhYmxlIiwiYWRkQXNzZXJ0aW9uIiwiYXNzZXJ0aW9uIiwibWF0Y2hBc3NlcnRpb24iLCJhc3NlcnRpb25NYXRjaGVzIiwiYXNzZXJ0aW9uQiIsInNvbWUiLCJhc3NlcnRpb25BIiwibWF0Y2hlcyIsIm1hdGNoIiwiZmluZFZhcmlhYmxlQnlWYXJpYWJsZU5hbWUiLCJ2YXJpYWJsZU5hbWUiLCJuYW1lIiwiZmluZCIsIm1hdGNoTmFtZSIsImlzVmFyaWFibGVQcmVzZW50QnlWYXJpYWJsZU5hbWUiLCJ2YXJpYWJsZVByZXNlbnQiLCJmaW5kVHlwZUJ5VHlwZU5hbWUiLCJ0eXBlTmFtZSIsImZpbmRMYWJlbEJ5VHlwZU5hbWUiLCJsYWJlbE5hbWUiLCJmaW5kUnVsZUJ5UmVmZXJlbmNlTmFtZSIsInJlZmVyZW5jZU5hbWUiLCJmaW5kQXhpb21CeVJlZmVyZW5jZU5hbWUiLCJmaW5kTGVtbWFCeVJlZmVyZW5jZU5hbWUiLCJmaW5kVGhlb3JlbUJ5UmVmZXJlbmNlTmFtZSIsImlzTGFiZWxQcmVzZW50QnlMYWJlbE5hbWUiLCJpc1R5cGVQcmVzZW50QnlUeXBlTmFtZSIsImZyb21GaWxlQ29udGV4dCIsImZpbGVDb250ZXh0IiwicHJvb2ZDb250ZXh0IiwiZnJvbVByb29mQ29udGV4dCIsIk9iamVjdCIsImFzc2lnbiIsInByb3RvdHlwZSIsImZpbGVNaXhpbnMiLCJsb2dnaW5nTWl4aW5zIiwiY2FsbGJhY2tzTWl4aW5zIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkEySkE7OztlQUFBOzs7eURBekp1Qjs0REFDRzs4REFDRTtxQkFFUDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFckIsSUFBQSxBQUFNQSw2QkErSUgsQUEvSUg7YUFBTUEsYUFDUUMsT0FBTyxFQUFFQyxPQUFPLEVBQUVDLFNBQVMsRUFBRUMsVUFBVTs4QkFEL0NKO1FBRUYsSUFBSSxDQUFDQyxPQUFPLEdBQUdBO1FBQ2YsSUFBSSxDQUFDQyxPQUFPLEdBQUdBO1FBQ2YsSUFBSSxDQUFDQyxTQUFTLEdBQUdBO1FBQ2pCLElBQUksQ0FBQ0MsVUFBVSxHQUFHQTs7aUJBTGhC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
272
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250ZXh0L3Byb29mLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgZmlsZU1peGlucyBmcm9tIFwiLi4vbWl4aW5zL2ZpbGVcIjtcbmltcG9ydCBsb2dnaW5nTWl4aW5zIGZyb20gXCIuLi9taXhpbnMvbG9nZ2luZ1wiO1xuaW1wb3J0IGNhbGxiYWNrc01peGlucyBmcm9tIFwiLi4vbWl4aW5zL2NhbGxiYWNrc1wiO1xuXG5pbXBvcnQgeyBwdXNoLCBsYXN0IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9hcnJheVwiO1xuXG5jbGFzcyBQcm9vZkNvbnRleHQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBkZXJpdmVkLCB2YXJpYWJsZXMsIGFzc2VydGlvbnMpIHtcbiAgICB0aGlzLmNvbnRleHQgPSBjb250ZXh0O1xuICAgIHRoaXMuZGVyaXZlZCA9IGRlcml2ZWQ7XG4gICAgdGhpcy52YXJpYWJsZXMgPSB2YXJpYWJsZXM7XG4gICAgdGhpcy5hc3NlcnRpb25zID0gYXNzZXJ0aW9ucztcbiAgfVxuXG4gIGdldENvbnRleHQoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29udGV4dDtcbiAgfVxuXG4gIGlzRGVyaXZlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5kZXJpdmVkO1xuICB9XG5cbiAgZ2V0QXNzZXJ0aW9ucygpIHtcbiAgICBsZXQgYXNzZXJ0aW9ucyA9IHRoaXMuY29udGV4dC5nZXRBc3NlcnRpb25zKCk7XG5cbiAgICBhc3NlcnRpb25zID0gW1xuICAgICAgLi4uYXNzZXJ0aW9ucyxcbiAgICAgIC4uLnRoaXMuYXNzZXJ0aW9uc1xuICAgIF07XG5cbiAgICByZXR1cm4gYXNzZXJ0aW9ucztcbiAgfVxuXG4gIGdldFR5cGVzKCkgeyByZXR1cm4gdGhpcy5jb250ZXh0LmdldFR5cGVzKCk7IH1cblxuICBnZXRBeGlvbXMoKSB7IHJldHVybiB0aGlzLmNvbnRleHQuZ2V0QXhpb21zKCk7IH1cblxuICBnZXRMZW1tYXMoKSB7IHJldHVybiB0aGlzLmNvbnRleHQuZ2V0TGVtbWFzKCk7IH1cblxuICBnZXRUaGVvcmVtcygpIHsgcmV0dXJuIHRoaXMuY29udGV4dC5nZXRUaGVvcmVtcygpOyB9XG5cbiAgZ2V0Q29tYmluYXRvcnMoKSB7IHJldHVybiB0aGlzLmNvbnRleHQuZ2V0Q29tYmluYXRvcnMoKTsgfVxuXG4gIGdldENvbnN0cnVjdG9ycygpIHsgcmV0dXJuIHRoaXMuY29udGV4dC5nZXRDb25zdHJ1Y3RvcnMoKTsgfVxuXG4gIGdldFZhcmlhYmxlcygpIHtcbiAgICBjb25zdCB2YXJpYWJsZXMgPSBbXTtcblxuICAgIHB1c2godmFyaWFibGVzLCB0aGlzLnZhcmlhYmxlcyk7XG5cbiAgICBjb25zdCBjb250ZXh0VmFyaWFibGVzID0gdGhpcy5jb250ZXh0LmdldFZhcmlhYmxlcygpO1xuXG4gICAgcHVzaCh2YXJpYWJsZXMsIGNvbnRleHRWYXJpYWJsZXMpO1xuXG4gICAgcmV0dXJuIHZhcmlhYmxlcztcbiAgfVxuXG4gIGdldExhc3RBc3NlcnRpb24oKSB7XG4gICAgY29uc3QgbGFzdEFzc2VydGlvbiA9IGxhc3QodGhpcy5hc3NlcnRpb25zKTtcblxuICAgIHJldHVybiBsYXN0QXNzZXJ0aW9uO1xuICB9XG5cbiAgc2V0RGVyaXZlZChkZXJpdmVkKSB7XG4gICAgdGhpcy5kZXJpdmVkID0gZGVyaXZlZDtcbiAgfVxuXG4gIGFkZFZhcmlhYmxlKHZhcmlhYmxlKSB7XG4gICAgdGhpcy52YXJpYWJsZXMucHVzaCh2YXJpYWJsZSk7XG4gIH1cblxuICBhZGRBc3NlcnRpb24oYXNzZXJ0aW9uKSB7XG4gICAgdGhpcy5hc3NlcnRpb25zLnB1c2goYXNzZXJ0aW9uKTtcbiAgfVxuXG4gIG1hdGNoQXNzZXJ0aW9uKGFzc2VydGlvbikge1xuICAgIGxldCBhc3NlcnRpb25NYXRjaGVzO1xuXG4gICAgY29uc3QgYXNzZXJ0aW9uQiA9IGFzc2VydGlvbjsgLy8vXG5cbiAgICBhc3NlcnRpb25NYXRjaGVzID0gdGhpcy5hc3NlcnRpb25zLnNvbWUoKGFzc2VydGlvbikgPT4ge1xuICAgICAgY29uc3QgYXNzZXJ0aW9uQSA9IGFzc2VydGlvbiwgLy8vXG4gICAgICAgICAgICBtYXRjaGVzID0gYXNzZXJ0aW9uQS5tYXRjaChhc3NlcnRpb25CKTtcblxuICAgICAgaWYgKG1hdGNoZXMpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAoIWFzc2VydGlvbk1hdGNoZXMpIHtcbiAgICAgIGFzc2VydGlvbk1hdGNoZXMgPSB0aGlzLmNvbnRleHQubWF0Y2hBc3NlcnRpb24oYXNzZXJ0aW9uKTtcbiAgICB9XG5cbiAgICByZXR1cm4gYXNzZXJ0aW9uTWF0Y2hlcztcbiAgfVxuXG4gIGZpbmRWYXJpYWJsZUJ5VmFyaWFibGVOYW1lKHZhcmlhYmxlTmFtZSkge1xuICAgIGNvbnN0IG5hbWUgPSB2YXJpYWJsZU5hbWUsICAvLy9cbiAgICAgICAgICB2YXJpYWJsZXMgPSB0aGlzLmdldFZhcmlhYmxlcygpLFxuICAgICAgICAgIHZhcmlhYmxlID0gdmFyaWFibGVzLmZpbmQoKHZhcmlhYmxlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBtYXRjaGVzID0gdmFyaWFibGUubWF0Y2hOYW1lKG5hbWUpO1xuXG4gICAgICAgICAgICBpZiAobWF0Y2hlcykge1xuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KSB8fCBudWxsO1xuXG4gICAgcmV0dXJuIHZhcmlhYmxlO1xuICB9XG5cbiAgaXNWYXJpYWJsZVByZXNlbnRCeVZhcmlhYmxlTmFtZSh2YXJpYWJsZU5hbWUpIHtcbiAgICBjb25zdCB2YXJpYWJsZSA9IHRoaXMuZmluZFZhcmlhYmxlQnlWYXJpYWJsZU5hbWUodmFyaWFibGVOYW1lKSxcbiAgICAgICAgdmFyaWFibGVQcmVzZW50ID0gKHZhcmlhYmxlICE9PSBudWxsKTtcblxuICAgIHJldHVybiB2YXJpYWJsZVByZXNlbnQ7XG4gIH1cblxuICBmaW5kVHlwZUJ5VHlwZU5hbWUodHlwZU5hbWUpIHsgcmV0dXJuIHRoaXMuY29udGV4dC5maW5kVHlwZUJ5VHlwZU5hbWUodHlwZU5hbWUpOyB9XG5cbiAgZmluZExhYmVsQnlUeXBlTmFtZShsYWJlbE5hbWUpIHsgcmV0dXJuIHRoaXMuY29udGV4dC5maW5kTGFiZWxCeVR5cGVOYW1lKGxhYmVsTmFtZSk7IH1cblxuICBmaW5kUnVsZUJ5UmVmZXJlbmNlTmFtZShyZWZlcmVuY2VOYW1lKSB7IHJldHVybiB0aGlzLmNvbnRleHQuZmluZFJ1bGVCeVJlZmVyZW5jZU5hbWUocmVmZXJlbmNlTmFtZSk7IH1cblxuICBmaW5kQXhpb21CeVJlZmVyZW5jZU5hbWUocmVmZXJlbmNlTmFtZSkgeyByZXR1cm4gdGhpcy5jb250ZXh0LmZpbmRBeGlvbUJ5UmVmZXJlbmNlTmFtZShyZWZlcmVuY2VOYW1lKTsgfVxuXG4gIGZpbmRMZW1tYUJ5UmVmZXJlbmNlTmFtZShyZWZlcmVuY2VOYW1lKSB7IHJldHVybiB0aGlzLmNvbnRleHQuZmluZExlbW1hQnlSZWZlcmVuY2VOYW1lKHJlZmVyZW5jZU5hbWUpOyB9XG5cbiAgZmluZFRoZW9yZW1CeVJlZmVyZW5jZU5hbWUocmVmZXJlbmNlTmFtZSkgeyByZXR1cm4gdGhpcy5jb250ZXh0LmZpbmRUaGVvcmVtQnlSZWZlcmVuY2VOYW1lKHJlZmVyZW5jZU5hbWUpOyB9XG5cbiAgaXNMYWJlbFByZXNlbnRCeUxhYmVsTmFtZShsYWJlbE5hbWUpIHsgcmV0dXJuIHRoaXMuY29udGV4dC5pc0xhYmVsUHJlc2VudEJ5TGFiZWxOYW1lKGxhYmVsTmFtZSk7IH1cblxuICBpc1R5cGVQcmVzZW50QnlUeXBlTmFtZSh0eXBlTmFtZSkgeyByZXR1cm4gdGhpcy5jb250ZXh0LmlzVHlwZVByZXNlbnRCeVR5cGVOYW1lKHR5cGVOYW1lKTsgfVxuXG4gIHN0YXRpYyBmcm9tRmlsZUNvbnRleHQoZmlsZUNvbnRleHQpIHtcbiAgICBjb25zdCBjb250ZXh0ID0gZmlsZUNvbnRleHQsICAvLy9cbiAgICAgICAgICBkZXJpdmVkID0gZmFsc2UsXG4gICAgICAgICAgdmFyaWFibGVzID0gW10sXG4gICAgICAgICAgYXNzZXJ0aW9ucyA9IFtdLFxuICAgICAgICAgIHByb29mQ29udGV4dCA9IG5ldyBQcm9vZkNvbnRleHQoY29udGV4dCwgZGVyaXZlZCwgdmFyaWFibGVzLCBhc3NlcnRpb25zKTtcblxuICAgIHJldHVybiBwcm9vZkNvbnRleHQ7XG4gIH1cblxuICBzdGF0aWMgZnJvbVByb29mQ29udGV4dChwcm9vZkNvbnRleHQpIHtcbiAgICBjb25zdCBjb250ZXh0ID0gcHJvb2ZDb250ZXh0LCAgLy8vXG4gICAgICAgICAgZGVyaXZlZCA9IGZhbHNlLFxuICAgICAgICAgIHZhcmlhYmxlcyA9IFtdLFxuICAgICAgICAgIGFzc2VydGlvbnMgPSBbXTtcblxuICAgIHByb29mQ29udGV4dCA9IG5ldyBQcm9vZkNvbnRleHQoY29udGV4dCwgZGVyaXZlZCwgdmFyaWFibGVzLCBhc3NlcnRpb25zKTtcblxuICAgIHJldHVybiBwcm9vZkNvbnRleHQ7XG4gIH1cbn1cblxuT2JqZWN0LmFzc2lnbihQcm9vZkNvbnRleHQucHJvdG90eXBlLCBmaWxlTWl4aW5zKTtcbk9iamVjdC5hc3NpZ24oUHJvb2ZDb250ZXh0LnByb3RvdHlwZSwgbG9nZ2luZ01peGlucyk7XG5PYmplY3QuYXNzaWduKFByb29mQ29udGV4dC5wcm90b3R5cGUsIGNhbGxiYWNrc01peGlucyk7XG5cbmV4cG9ydCBkZWZhdWx0IFByb29mQ29udGV4dDtcbiJdLCJuYW1lcyI6WyJQcm9vZkNvbnRleHQiLCJjb250ZXh0IiwiZGVyaXZlZCIsInZhcmlhYmxlcyIsImFzc2VydGlvbnMiLCJnZXRDb250ZXh0IiwiaXNEZXJpdmVkIiwiZ2V0QXNzZXJ0aW9ucyIsImdldFR5cGVzIiwiZ2V0QXhpb21zIiwiZ2V0TGVtbWFzIiwiZ2V0VGhlb3JlbXMiLCJnZXRDb21iaW5hdG9ycyIsImdldENvbnN0cnVjdG9ycyIsImdldFZhcmlhYmxlcyIsInB1c2giLCJjb250ZXh0VmFyaWFibGVzIiwiZ2V0TGFzdEFzc2VydGlvbiIsImxhc3RBc3NlcnRpb24iLCJsYXN0Iiwic2V0RGVyaXZlZCIsImFkZFZhcmlhYmxlIiwidmFyaWFibGUiLCJhZGRBc3NlcnRpb24iLCJhc3NlcnRpb24iLCJtYXRjaEFzc2VydGlvbiIsImFzc2VydGlvbk1hdGNoZXMiLCJhc3NlcnRpb25CIiwic29tZSIsImFzc2VydGlvbkEiLCJtYXRjaGVzIiwibWF0Y2giLCJmaW5kVmFyaWFibGVCeVZhcmlhYmxlTmFtZSIsInZhcmlhYmxlTmFtZSIsIm5hbWUiLCJmaW5kIiwibWF0Y2hOYW1lIiwiaXNWYXJpYWJsZVByZXNlbnRCeVZhcmlhYmxlTmFtZSIsInZhcmlhYmxlUHJlc2VudCIsImZpbmRUeXBlQnlUeXBlTmFtZSIsInR5cGVOYW1lIiwiZmluZExhYmVsQnlUeXBlTmFtZSIsImxhYmVsTmFtZSIsImZpbmRSdWxlQnlSZWZlcmVuY2VOYW1lIiwicmVmZXJlbmNlTmFtZSIsImZpbmRBeGlvbUJ5UmVmZXJlbmNlTmFtZSIsImZpbmRMZW1tYUJ5UmVmZXJlbmNlTmFtZSIsImZpbmRUaGVvcmVtQnlSZWZlcmVuY2VOYW1lIiwiaXNMYWJlbFByZXNlbnRCeUxhYmVsTmFtZSIsImlzVHlwZVByZXNlbnRCeVR5cGVOYW1lIiwiZnJvbUZpbGVDb250ZXh0IiwiZmlsZUNvbnRleHQiLCJwcm9vZkNvbnRleHQiLCJmcm9tUHJvb2ZDb250ZXh0IiwiT2JqZWN0IiwiYXNzaWduIiwicHJvdG90eXBlIiwiZmlsZU1peGlucyIsImxvZ2dpbmdNaXhpbnMiLCJjYWxsYmFja3NNaXhpbnMiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQWlLQTs7O2VBQUE7Ozt5REEvSnVCOzREQUNHOzhEQUNFO3FCQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUUzQixJQUFBLEFBQU1BLDZCQXFKSCxBQXJKSDthQUFNQSxhQUNRQyxPQUFP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
@@ -8,9 +8,9 @@ Object.defineProperty(exports, "default", {
8
8
  return verifyProof;
9
9
  }
10
10
  });
11
- var _proof = /*#__PURE__*/ _interopRequireDefault(require("../context/proof"));
11
+ var _assertion = /*#__PURE__*/ _interopRequireDefault(require("../assertion"));
12
12
  var _derivation = /*#__PURE__*/ _interopRequireDefault(require("../verify/derivation"));
13
- var _qualified = /*#__PURE__*/ _interopRequireDefault(require("../verify/statement/qualified"));
13
+ var _qualified = /*#__PURE__*/ _interopRequireDefault(require("./statement/qualified"));
14
14
  var _query = require("../utilities/query");
15
15
  function _interopRequireDefault(obj) {
16
16
  return obj && obj.__esModule ? obj : {
@@ -18,9 +18,8 @@ function _interopRequireDefault(obj) {
18
18
  };
19
19
  }
20
20
  var derivationNodeQuery = (0, _query.nodeQuery)("/proof/derivation!"), qualifiedStatementNodeQuery = (0, _query.nodeQuery)("/proof/qualifiedStatement!");
21
- function verifyProof(proofNode, fileContext) {
21
+ function verifyProof(proofNode, consequent, proofContext) {
22
22
  var proofVerified = false;
23
- var proofContext = _proof.default.fromFileContext(fileContext);
24
23
  proofContext.begin(proofNode);
25
24
  var derivationNode = derivationNodeQuery(proofNode), qualifiedStatementNode = qualifiedStatementNodeQuery(proofNode);
26
25
  var derivationVerified = false, qualifiedStatementVerified = false;
@@ -28,71 +27,62 @@ function verifyProof(proofNode, fileContext) {
28
27
  derivationVerified = (0, _derivation.default)(derivationNode, proofContext);
29
28
  }
30
29
  if (qualifiedStatementNode !== null) {
31
- var derived;
32
- derived = true;
33
- proofContext.setDerived(derived);
34
30
  qualifiedStatementVerified = (0, _qualified.default)(qualifiedStatementNode, proofContext);
35
- derived = false;
36
- proofContext.setDerived(derived);
31
+ if (qualifiedStatementVerified) {
32
+ var assertion = _assertion.default.fromQualifiedStatementNode(qualifiedStatementNode);
33
+ proofContext.addAssertion(assertion);
34
+ }
35
+ }
36
+ if (derivationVerified || qualifiedStatementVerified) {
37
+ var lastAssertion = proofContext.getLastAssertion(), assertion1 = lastAssertion, statementNode = consequent.getStatementNode(), assertionStatementNode = assertion1.getStatementNode(), assertionStatementNodeMatches = matchProofStatementNode(assertionStatementNode, statementNode);
38
+ proofVerified = assertionStatementNodeMatches; ///
37
39
  }
38
- // if (derivationVerified) {
39
- // const qualifiedStatementNode = qualifiedStatementNodeQuery(proofNode),
40
- // qualifiedStatementVerified = verifyQualifiedStatement(qualifiedStatementNode, proofContext);
41
- //
42
- // if (qualifiedStatementVerified) {
43
- // const statementNode = conclusion.getStatementNode(),
44
- // proofStatementNode = proofStatementNodeQuery(proofNode),
45
- // proofStatementNodeMatches = matchProofStatementNode(proofStatementNode, statementNode);
46
- //
47
- // proofVerified = proofStatementNodeMatches; ///
48
- // }
49
- // }
50
40
  proofVerified ? proofContext.complete(proofNode) : proofContext.complete(proofNode);
51
41
  return proofVerified;
52
42
  }
53
- function matchProofStatementNode(proofStatementNode, statementNode) {
54
- var proofNonTerminalNode = proofStatementNode, nonTerminalNode = statementNode, proofNonTerminalNodeMatches = matchProofNonTerminalNode(proofNonTerminalNode, nonTerminalNode), proofStatementNodeMatches = proofNonTerminalNodeMatches; ///
55
- return proofStatementNodeMatches;
43
+ function matchProofStatementNode(assertionStatementNode, statementNode) {
44
+ var assertionNonTerminalNode = assertionStatementNode, nonTerminalNode = statementNode, assertionNonTerminalNodeMatches = matchProofNonTerminalNode(assertionNonTerminalNode, nonTerminalNode), assertionStatementNodeMatches = assertionNonTerminalNodeMatches; ///
45
+ return assertionStatementNodeMatches;
56
46
  }
57
- function matchProofNode(proofNode, node) {
58
- var proofNodeMatches = false;
59
- var nodeTerminalNode = node.isTerminalNode(), ruleNodeTerminalNode = proofNode.isTerminalNode();
47
+ function matchProofNode(assertionNode, node) {
48
+ var assertionNodeMatches = false;
49
+ var nodeTerminalNode = node.isTerminalNode(), ruleNodeTerminalNode = assertionNode.isTerminalNode();
60
50
  if (nodeTerminalNode === ruleNodeTerminalNode) {
61
51
  if (nodeTerminalNode) {
62
- var terminalNode = node, proofTerminalNode = proofNode, proofTerminalNodeMatches = matchProofTerminalNode(proofTerminalNode, terminalNode);
63
- proofNodeMatches = proofTerminalNodeMatches; ///
52
+ var terminalNode = node, assertionTerminalNode = assertionNode, assertionTerminalNodeMatches = matchProofTerminalNode(assertionTerminalNode, terminalNode);
53
+ assertionNodeMatches = assertionTerminalNodeMatches; ///
64
54
  } else {
65
- var nonTerminalNode = node, proofNonTerminalNode = proofNode, proofNonTerminalNodeMatches = matchProofNonTerminalNode(proofNonTerminalNode, nonTerminalNode);
66
- proofNodeMatches = proofNonTerminalNodeMatches; ///
55
+ var nonTerminalNode = node, assertionNonTerminalNode = assertionNode, assertionNonTerminalNodeMatches = matchProofNonTerminalNode(assertionNonTerminalNode, nonTerminalNode);
56
+ assertionNodeMatches = assertionNonTerminalNodeMatches; ///
67
57
  }
68
58
  }
69
- return proofNodeMatches;
59
+ return assertionNodeMatches;
70
60
  }
71
- function matchProofNodes(proofNodes, nodes) {
72
- var proofNodesMatches = false;
73
- var nodesLength = nodes.length, proofNodesLength = proofNodes.length;
74
- if (nodesLength === proofNodesLength) {
75
- proofNodesMatches = nodes.every(function(node, index) {
76
- var proofNode = proofNodes[index], proofNodeMatches = matchProofNode(proofNode, node);
77
- if (proofNodeMatches) {
61
+ function matchProofNodes(assertionNodes, nodes) {
62
+ var assertionNodesMatches = false;
63
+ var nodesLength = nodes.length, assertionNodesLength = assertionNodes.length;
64
+ if (nodesLength === assertionNodesLength) {
65
+ assertionNodesMatches = nodes.every(function(node, index) {
66
+ var assertionNode = assertionNodes[index], assertionNodeMatches = matchProofNode(assertionNode, node);
67
+ if (assertionNodeMatches) {
78
68
  return true;
79
69
  }
80
70
  });
81
71
  }
82
- return proofNodesMatches;
72
+ return assertionNodesMatches;
83
73
  }
84
- function matchProofTerminalNode(proofTerminalNode, terminalNode) {
85
- var matches = proofTerminalNode.match(terminalNode), proofTerminalNodeMatches = matches; ///
86
- return proofTerminalNodeMatches;
74
+ function matchProofTerminalNode(assertionTerminalNode, terminalNode) {
75
+ var matches = assertionTerminalNode.match(terminalNode), assertionTerminalNodeMatches = matches; ///
76
+ return assertionTerminalNodeMatches;
87
77
  }
88
- function matchProofNonTerminalNode(proofNonTerminalNode, nonTerminalNode) {
89
- var proofNonTerminalNodeMatches = false;
90
- var ruleName = nonTerminalNode.getRuleName(), proofRuleName = proofNonTerminalNode.getRuleName(); ///
91
- if (ruleName === proofRuleName) {
92
- var childNodes = nonTerminalNode.getChildNodes(), proofChildNodes = proofNonTerminalNode.getChildNodes(), nodes = childNodes, proofNodes = proofChildNodes, proofNodesMatches = matchProofNodes(proofNodes, nodes);
93
- proofNonTerminalNodeMatches = proofNodesMatches; ///
78
+ function matchProofNonTerminalNode(assertionNonTerminalNode, nonTerminalNode) {
79
+ var assertionNonTerminalNodeMatches = false;
80
+ var ruleName = nonTerminalNode.getRuleName(), assertionRuleName = assertionNonTerminalNode.getRuleName(); ///
81
+ if (ruleName === assertionRuleName) {
82
+ var childNodes = nonTerminalNode.getChildNodes(), assertionChildNodes = assertionNonTerminalNode.getChildNodes(), nodes = childNodes, assertionNodes = assertionChildNodes, assertionNodesMatches = matchProofNodes(assertionNodes, nodes);
83
+ assertionNonTerminalNodeMatches = assertionNodesMatches; ///
94
84
  }
95
- return proofNonTerminalNodeMatches;
85
+ return assertionNonTerminalNodeMatches;
96
86
  }
97
87
 
98
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvcHJvb2YuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBQcm9vZkNvbnRleHQgZnJvbSBcIi4uL2NvbnRleHQvcHJvb2ZcIjtcbmltcG9ydCB2ZXJpZnlEZXJpdmF0aW9uIGZyb20gXCIuLi92ZXJpZnkvZGVyaXZhdGlvblwiO1xuaW1wb3J0IHZlcmlmeVF1YWxpZmllZFN0YXRlbWVudCBmcm9tIFwiLi4vdmVyaWZ5L3N0YXRlbWVudC9xdWFsaWZpZWRcIjtcblxuaW1wb3J0IHsgbm9kZVF1ZXJ5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiO1xuXG5jb25zdCBkZXJpdmF0aW9uTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3Byb29mL2Rlcml2YXRpb24hXCIpLFxuICAgICAgcXVhbGlmaWVkU3RhdGVtZW50Tm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3Byb29mL3F1YWxpZmllZFN0YXRlbWVudCFcIik7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHZlcmlmeVByb29mKHByb29mTm9kZSwgZmlsZUNvbnRleHQpIHtcbiAgbGV0IHByb29mVmVyaWZpZWQgPSBmYWxzZTtcblxuICBjb25zdCBwcm9vZkNvbnRleHQgPSBQcm9vZkNvbnRleHQuZnJvbUZpbGVDb250ZXh0KGZpbGVDb250ZXh0KTtcblxuICBwcm9vZkNvbnRleHQuYmVnaW4ocHJvb2ZOb2RlKTtcblxuICBjb25zdCBkZXJpdmF0aW9uTm9kZSA9IGRlcml2YXRpb25Ob2RlUXVlcnkocHJvb2ZOb2RlKSxcbiAgICAgICAgcXVhbGlmaWVkU3RhdGVtZW50Tm9kZSA9IHF1YWxpZmllZFN0YXRlbWVudE5vZGVRdWVyeShwcm9vZk5vZGUpO1xuXG4gIGxldCBkZXJpdmF0aW9uVmVyaWZpZWQgPSBmYWxzZSxcbiAgICAgIHF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkID0gZmFsc2U7XG5cbiAgaWYgKGRlcml2YXRpb25Ob2RlICE9PSBudWxsKSB7XG4gICAgZGVyaXZhdGlvblZlcmlmaWVkID0gdmVyaWZ5RGVyaXZhdGlvbihkZXJpdmF0aW9uTm9kZSwgcHJvb2ZDb250ZXh0KTtcbiAgfVxuXG4gIGlmIChxdWFsaWZpZWRTdGF0ZW1lbnROb2RlICE9PSBudWxsKSB7XG4gICAgbGV0IGRlcml2ZWQ7XG5cbiAgICBkZXJpdmVkID0gdHJ1ZTtcblxuICAgIHByb29mQ29udGV4dC5zZXREZXJpdmVkKGRlcml2ZWQpO1xuXG4gICAgcXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQgPSB2ZXJpZnlRdWFsaWZpZWRTdGF0ZW1lbnQocXVhbGlmaWVkU3RhdGVtZW50Tm9kZSwgcHJvb2ZDb250ZXh0KTtcblxuICAgIGRlcml2ZWQgPSBmYWxzZTtcblxuICAgIHByb29mQ29udGV4dC5zZXREZXJpdmVkKGRlcml2ZWQpO1xuICB9XG5cbiAgLy8gaWYgKGRlcml2YXRpb25WZXJpZmllZCkge1xuICAvLyAgIGNvbnN0IHF1YWxpZmllZFN0YXRlbWVudE5vZGUgPSBxdWFsaWZpZWRTdGF0ZW1lbnROb2RlUXVlcnkocHJvb2ZOb2RlKSxcbiAgLy8gICAgICAgICBxdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCA9IHZlcmlmeVF1YWxpZmllZFN0YXRlbWVudChxdWFsaWZpZWRTdGF0ZW1lbnROb2RlLCBwcm9vZkNvbnRleHQpO1xuICAvL1xuICAvLyAgIGlmIChxdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCkge1xuICAvLyAgICAgY29uc3Qgc3RhdGVtZW50Tm9kZSA9IGNvbmNsdXNpb24uZ2V0U3RhdGVtZW50Tm9kZSgpLFxuICAvLyAgICAgICAgICAgcHJvb2ZTdGF0ZW1lbnROb2RlID0gcHJvb2ZTdGF0ZW1lbnROb2RlUXVlcnkocHJvb2ZOb2RlKSxcbiAgLy8gICAgICAgICAgIHByb29mU3RhdGVtZW50Tm9kZU1hdGNoZXMgPSBtYXRjaFByb29mU3RhdGVtZW50Tm9kZShwcm9vZlN0YXRlbWVudE5vZGUsIHN0YXRlbWVudE5vZGUpO1xuICAvL1xuICAvLyAgICAgcHJvb2ZWZXJpZmllZCA9IHByb29mU3RhdGVtZW50Tm9kZU1hdGNoZXM7ICAvLy9cbiAgLy8gICB9XG4gIC8vIH1cblxuICBwcm9vZlZlcmlmaWVkID9cbiAgICBwcm9vZkNvbnRleHQuY29tcGxldGUocHJvb2ZOb2RlKSA6XG4gICAgICBwcm9vZkNvbnRleHQuY29tcGxldGUocHJvb2ZOb2RlKTtcblxuICByZXR1cm4gcHJvb2ZWZXJpZmllZDtcbn1cblxuZnVuY3Rpb24gbWF0Y2hQcm9vZlN0YXRlbWVudE5vZGUocHJvb2ZTdGF0ZW1lbnROb2RlLCBzdGF0ZW1lbnROb2RlKSB7XG4gIGNvbnN0IHByb29mTm9uVGVybWluYWxOb2RlID0gcHJvb2ZTdGF0ZW1lbnROb2RlLCAgLy8vXG4gICAgICAgIG5vblRlcm1pbmFsTm9kZSA9IHN0YXRlbWVudE5vZGUsICAvLy9cbiAgICAgICAgcHJvb2ZOb25UZXJtaW5hbE5vZGVNYXRjaGVzID0gbWF0Y2hQcm9vZk5vblRlcm1pbmFsTm9kZShwcm9vZk5vblRlcm1pbmFsTm9kZSwgbm9uVGVybWluYWxOb2RlKSxcbiAgICAgICAgcHJvb2ZTdGF0ZW1lbnROb2RlTWF0Y2hlcyA9IHByb29mTm9uVGVybWluYWxOb2RlTWF0Y2hlczsgIC8vL1xuXG4gIHJldHVybiBwcm9vZlN0YXRlbWVudE5vZGVNYXRjaGVzO1xufVxuXG5mdW5jdGlvbiBtYXRjaFByb29mTm9kZShwcm9vZk5vZGUsIG5vZGUpIHtcbiAgbGV0IHByb29mTm9kZU1hdGNoZXMgPSBmYWxzZTtcblxuICBjb25zdCBub2RlVGVybWluYWxOb2RlID0gbm9kZS5pc1Rlcm1pbmFsTm9kZSgpLFxuICAgICAgICBydWxlTm9kZVRlcm1pbmFsTm9kZSA9IHByb29mTm9kZS5pc1Rlcm1pbmFsTm9kZSgpO1xuXG4gIGlmIChub2RlVGVybWluYWxOb2RlID09PSBydWxlTm9kZVRlcm1pbmFsTm9kZSkge1xuICAgIGlmIChub2RlVGVybWluYWxOb2RlKSB7XG4gICAgICBjb25zdCB0ZXJtaW5hbE5vZGUgPSBub2RlLCAgLy8vXG4gICAgICAgICAgICBwcm9vZlRlcm1pbmFsTm9kZSA9IHByb29mTm9kZSwgIC8vL1xuICAgICAgICAgICAgcHJvb2ZUZXJtaW5hbE5vZGVNYXRjaGVzID0gbWF0Y2hQcm9vZlRlcm1pbmFsTm9kZShwcm9vZlRlcm1pbmFsTm9kZSwgdGVybWluYWxOb2RlKTtcblxuICAgICAgcHJvb2ZOb2RlTWF0Y2hlcyA9IHByb29mVGVybWluYWxOb2RlTWF0Y2hlczsgIC8vL1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBub25UZXJtaW5hbE5vZGUgPSBub2RlLCAvLy9cbiAgICAgICAgICAgIHByb29mTm9uVGVybWluYWxOb2RlID0gcHJvb2ZOb2RlLCAgLy8vXG4gICAgICAgICAgICBwcm9vZk5vblRlcm1pbmFsTm9kZU1hdGNoZXMgPSBtYXRjaFByb29mTm9uVGVybWluYWxOb2RlKHByb29mTm9uVGVybWluYWxOb2RlLCBub25UZXJtaW5hbE5vZGUpO1xuXG4gICAgICBwcm9vZk5vZGVNYXRjaGVzID0gcHJvb2ZOb25UZXJtaW5hbE5vZGVNYXRjaGVzOyAvLy9cbiAgICB9XG4gIH1cblxuICByZXR1cm4gcHJvb2ZOb2RlTWF0Y2hlcztcbn1cblxuZnVuY3Rpb24gbWF0Y2hQcm9vZk5vZGVzKHByb29mTm9kZXMsIG5vZGVzKSB7XG4gIGxldCBwcm9vZk5vZGVzTWF0Y2hlcyA9IGZhbHNlO1xuXG4gIGNvbnN0IG5vZGVzTGVuZ3RoID0gbm9kZXMubGVuZ3RoLFxuICAgICAgICBwcm9vZk5vZGVzTGVuZ3RoID0gcHJvb2ZOb2Rlcy5sZW5ndGg7XG5cbiAgaWYgKG5vZGVzTGVuZ3RoID09PSBwcm9vZk5vZGVzTGVuZ3RoKSB7XG4gICAgcHJvb2ZOb2Rlc01hdGNoZXMgPSBub2Rlcy5ldmVyeSgobm9kZSwgaW5kZXgpID0+IHtcbiAgICAgIGNvbnN0IHByb29mTm9kZSA9IHByb29mTm9kZXNbaW5kZXhdLFxuICAgICAgICAgICAgcHJvb2ZOb2RlTWF0Y2hlcyA9IG1hdGNoUHJvb2ZOb2RlKHByb29mTm9kZSwgbm9kZSk7XG5cbiAgICAgIGlmIChwcm9vZk5vZGVNYXRjaGVzKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICByZXR1cm4gcHJvb2ZOb2Rlc01hdGNoZXM7XG59XG5cbmZ1bmN0aW9uIG1hdGNoUHJvb2ZUZXJtaW5hbE5vZGUocHJvb2ZUZXJtaW5hbE5vZGUsIHRlcm1pbmFsTm9kZSkge1xuICBjb25zdCBtYXRjaGVzID0gcHJvb2ZUZXJtaW5hbE5vZGUubWF0Y2godGVybWluYWxOb2RlKSxcbiAgICAgICAgcHJvb2ZUZXJtaW5hbE5vZGVNYXRjaGVzID0gbWF0Y2hlczsgIC8vL1xuXG4gIHJldHVybiBwcm9vZlRlcm1pbmFsTm9kZU1hdGNoZXM7XG59XG5cbmZ1bmN0aW9uIG1hdGNoUHJvb2ZOb25UZXJtaW5hbE5vZGUocHJvb2ZOb25UZXJtaW5hbE5vZGUsIG5vblRlcm1pbmFsTm9kZSkge1xuICBsZXQgcHJvb2ZOb25UZXJtaW5hbE5vZGVNYXRjaGVzID0gZmFsc2U7XG5cbiAgY29uc3QgcnVsZU5hbWUgPSBub25UZXJtaW5hbE5vZGUuZ2V0UnVsZU5hbWUoKSxcbiAgICAgICAgcHJvb2ZSdWxlTmFtZSA9IHByb29mTm9uVGVybWluYWxOb2RlLmdldFJ1bGVOYW1lKCk7IC8vL1xuXG4gIGlmIChydWxlTmFtZSA9PT0gcHJvb2ZSdWxlTmFtZSkge1xuICAgIGNvbnN0IGNoaWxkTm9kZXMgPSBub25UZXJtaW5hbE5vZGUuZ2V0Q2hpbGROb2RlcygpLFxuICAgICAgICAgIHByb29mQ2hpbGROb2RlcyA9IHByb29mTm9uVGVybWluYWxOb2RlLmdldENoaWxkTm9kZXMoKSxcbiAgICAgICAgICBub2RlcyA9IGNoaWxkTm9kZXMsIC8vL1xuICAgICAgICAgIHByb29mTm9kZXMgPSBwcm9vZkNoaWxkTm9kZXMsIC8vL1xuICAgICAgICAgIHByb29mTm9kZXNNYXRjaGVzID0gbWF0Y2hQcm9vZk5vZGVzKHByb29mTm9kZXMsIG5vZGVzKTtcblxuICAgIHByb29mTm9uVGVybWluYWxOb2RlTWF0Y2hlcyA9IHByb29mTm9kZXNNYXRjaGVzOyAvLy9cbiAgfVxuXG4gIHJldHVybiBwcm9vZk5vblRlcm1pbmFsTm9kZU1hdGNoZXM7XG59XG4iXSwibmFtZXMiOlsidmVyaWZ5UHJvb2YiLCJkZXJpdmF0aW9uTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwicXVhbGlmaWVkU3RhdGVtZW50Tm9kZVF1ZXJ5IiwicHJvb2ZOb2RlIiwiZmlsZUNvbnRleHQiLCJwcm9vZlZlcmlmaWVkIiwicHJvb2ZDb250ZXh0IiwiUHJvb2ZDb250ZXh0IiwiZnJvbUZpbGVDb250ZXh0IiwiYmVnaW4iLCJkZXJpdmF0aW9uTm9kZSIsInF1YWxpZmllZFN0YXRlbWVudE5vZGUiLCJkZXJpdmF0aW9uVmVyaWZpZWQiLCJxdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCIsInZlcmlmeURlcml2YXRpb24iLCJkZXJpdmVkIiwic2V0RGVyaXZlZCIsInZlcmlmeVF1YWxpZmllZFN0YXRlbWVudCIsImNvbXBsZXRlIiwibWF0Y2hQcm9vZlN0YXRlbWVudE5vZGUiLCJwcm9vZlN0YXRlbWVudE5vZGUiLCJzdGF0ZW1lbnROb2RlIiwicHJvb2ZOb25UZXJtaW5hbE5vZGUiLCJub25UZXJtaW5hbE5vZGUiLCJwcm9vZk5vblRlcm1pbmFsTm9kZU1hdGNoZXMiLCJtYXRjaFByb29mTm9uVGVybWluYWxOb2RlIiwicHJvb2ZTdGF0ZW1lbnROb2RlTWF0Y2hlcyIsIm1hdGNoUHJvb2ZOb2RlIiwibm9kZSIsInByb29mTm9kZU1hdGNoZXMiLCJub2RlVGVybWluYWxOb2RlIiwiaXNUZXJtaW5hbE5vZGUiLCJydWxlTm9kZVRlcm1pbmFsTm9kZSIsInRlcm1pbmFsTm9kZSIsInByb29mVGVybWluYWxOb2RlIiwicHJvb2ZUZXJtaW5hbE5vZGVNYXRjaGVzIiwibWF0Y2hQcm9vZlRlcm1pbmFsTm9kZSIsIm1hdGNoUHJvb2ZOb2RlcyIsInByb29mTm9kZXMiLCJub2RlcyIsInByb29mTm9kZXNNYXRjaGVzIiwibm9kZXNMZW5ndGgiLCJsZW5ndGgiLCJwcm9vZk5vZGVzTGVuZ3RoIiwiZXZlcnkiLCJpbmRleCIsIm1hdGNoZXMiLCJtYXRjaCIsInJ1bGVOYW1lIiwiZ2V0UnVsZU5hbWUiLCJwcm9vZlJ1bGVOYW1lIiwiY2hpbGROb2RlcyIsImdldENoaWxkTm9kZXMiLCJwcm9vZkNoaWxkTm9kZXMiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVdBOzs7ZUFBd0JBOzs7MERBVEM7K0RBQ0k7OERBQ1E7cUJBRVg7Ozs7OztBQUUxQixJQUFNQyxzQkFBc0JDLElBQUFBLGdCQUFTLEVBQUMsdUJBQ2hDQyw4QkFBOEJELElBQUFBLGdCQUFTLEVBQUM7QUFFL0IsU0FBU0YsWUFBWUksU0FBUyxFQUFFQyxXQUFXLEVBQUU7SUFDMUQsSUFBSUMsZ0JBQWdCLEtBQUs7SUFFekIsSUFBTUMsZUFBZUMsY0FBWSxDQUFDQyxlQUFlLENBQUNKO0lBRWxERSxhQUFhRyxLQUFLLENBQUNOO0lBRW5CLElBQU1PLGlCQUFpQlYsb0JBQW9CRyxZQUNyQ1EseUJBQXlCVCw0QkFBNEJDO0lBRTNELElBQUlTLHFCQUFxQixLQUFLLEVBQzFCQyw2QkFBNkIsS0FBSztJQUV0QyxJQUFJSCxtQkFBbUIsSUFBSSxFQUFFO1FBQzNCRSxxQkFBcUJFLElBQUFBLG1CQUFnQixFQUFDSixnQkFBZ0JKO0lBQ3hELENBQUM7SUFFRCxJQUFJSywyQkFBMkIsSUFBSSxFQUFFO1FBQ25DLElBQUlJO1FBRUpBLFVBQVUsSUFBSTtRQUVkVCxhQUFhVSxVQUFVLENBQUNEO1FBRXhCRiw2QkFBNkJJLElBQUFBLGtCQUF3QixFQUFDTix3QkFBd0JMO1FBRTlFUyxVQUFVLEtBQUs7UUFFZlQsYUFBYVUsVUFBVSxDQUFDRDtJQUMxQixDQUFDO0lBRUQsNEJBQTRCO0lBQzVCLDJFQUEyRTtJQUMzRSx1R0FBdUc7SUFDdkcsRUFBRTtJQUNGLHNDQUFzQztJQUN0QywyREFBMkQ7SUFDM0QscUVBQXFFO0lBQ3JFLG9HQUFvRztJQUNwRyxFQUFFO0lBQ0Ysc0RBQXNEO0lBQ3RELE1BQU07SUFDTixJQUFJO0lBRUpWLGdCQUNFQyxhQUFhWSxRQUFRLENBQUNmLGFBQ3BCRyxhQUFhWSxRQUFRLENBQUNmLFVBQVU7SUFFcEMsT0FBT0U7QUFDVDtBQUVBLFNBQVNjLHdCQUF3QkMsa0JBQWtCLEVBQUVDLGFBQWEsRUFBRTtJQUNsRSxJQUFNQyx1QkFBdUJGLG9CQUN2Qkcsa0JBQWtCRixlQUNsQkcsOEJBQThCQywwQkFBMEJILHNCQUFzQkMsa0JBQzlFRyw0QkFBNEJGLDZCQUE4QixHQUFHO0lBRW5FLE9BQU9FO0FBQ1Q7QUFFQSxTQUFTQyxlQUFleEIsU0FBUyxFQUFFeUIsSUFBSSxFQUFFO0lBQ3ZDLElBQUlDLG1CQUFtQixLQUFLO0lBRTVCLElBQU1DLG1CQUFtQkYsS0FBS0csY0FBYyxJQUN0Q0MsdUJBQXVCN0IsVUFBVTRCLGNBQWM7SUFFckQsSUFBSUQscUJBQXFCRSxzQkFBc0I7UUFDN0MsSUFBSUYsa0JBQWtCO1lBQ3BCLElBQU1HLGVBQWVMLE1BQ2ZNLG9CQUFvQi9CLFdBQ3BCZ0MsMkJBQTJCQyx1QkFBdUJGLG1CQUFtQkQ7WUFFM0VKLG1CQUFtQk0sMEJBQTJCLEdBQUc7UUFDbkQsT0FBTztZQUNMLElBQU1aLGtCQUFrQkssTUFDbEJOLHVCQUF1Qm5CLFdBQ3ZCcUIsOEJBQThCQywwQkFBMEJILHNCQUFzQkM7WUFFcEZNLG1CQUFtQkwsNkJBQTZCLEdBQUc7UUFDckQsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPSztBQUNUO0FBRUEsU0FBU1EsZ0JBQWdCQyxVQUFVLEVBQUVDLEtBQUssRUFBRTtJQUMxQyxJQUFJQyxvQkFBb0IsS0FBSztJQUU3QixJQUFNQyxjQUFjRixNQUFNRyxNQUFNLEVBQzFCQyxtQkFBbUJMLFdBQVdJLE1BQU07SUFFMUMsSUFBSUQsZ0JBQWdCRSxrQkFBa0I7UUFDcENILG9CQUFvQkQsTUFBTUssS0FBSyxDQUFDLFNBQUNoQixNQUFNaUIsT0FBVTtZQUMvQyxJQUFNMUMsWUFBWW1DLFVBQVUsQ0FBQ08sTUFBTSxFQUM3QmhCLG1CQUFtQkYsZUFBZXhCLFdBQVd5QjtZQUVuRCxJQUFJQyxrQkFBa0I7Z0JBQ3BCLE9BQU8sSUFBSTtZQUNiLENBQUM7UUFDSDtJQUNGLENBQUM7SUFFRCxPQUFPVztBQUNUO0FBRUEsU0FBU0osdUJBQXVCRixpQkFBaUIsRUFBRUQsWUFBWSxFQUFFO0lBQy9ELElBQU1hLFVBQVVaLGtCQUFrQmEsS0FBSyxDQUFDZCxlQUNsQ0UsMkJBQTJCVyxTQUFVLEdBQUc7SUFFOUMsT0FBT1g7QUFDVDtBQUVBLFNBQVNWLDBCQUEwQkgsb0JBQW9CLEVBQUVDLGVBQWUsRUFBRTtJQUN4RSxJQUFJQyw4QkFBOEIsS0FBSztJQUV2QyxJQUFNd0IsV0FBV3pCLGdCQUFnQjBCLFdBQVcsSUFDdENDLGdCQUFnQjVCLHFCQUFxQjJCLFdBQVcsSUFBSSxHQUFHO0lBRTdELElBQUlELGFBQWFFLGVBQWU7UUFDOUIsSUFBTUMsYUFBYTVCLGdCQUFnQjZCLGFBQWEsSUFDMUNDLGtCQUFrQi9CLHFCQUFxQjhCLGFBQWEsSUFDcERiLFFBQVFZLFlBQ1JiLGFBQWFlLGlCQUNiYixvQkFBb0JILGdCQUFnQkMsWUFBWUM7UUFFdERmLDhCQUE4QmdCLG1CQUFtQixHQUFHO0lBQ3RELENBQUM7SUFFRCxPQUFPaEI7QUFDVCJ9
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvcHJvb2YuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBBc3NlcnRpb24gZnJvbSBcIi4uL2Fzc2VydGlvblwiO1xuaW1wb3J0IHZlcmlmeURlcml2YXRpb24gZnJvbSBcIi4uL3ZlcmlmeS9kZXJpdmF0aW9uXCI7XG5pbXBvcnQgdmVyaWZ5UXVhbGlmaWVkU3RhdGVtZW50IGZyb20gXCIuL3N0YXRlbWVudC9xdWFsaWZpZWRcIjtcblxuaW1wb3J0IHsgbm9kZVF1ZXJ5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiO1xuXG5jb25zdCBkZXJpdmF0aW9uTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3Byb29mL2Rlcml2YXRpb24hXCIpLFxuICAgICAgcXVhbGlmaWVkU3RhdGVtZW50Tm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3Byb29mL3F1YWxpZmllZFN0YXRlbWVudCFcIik7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHZlcmlmeVByb29mKHByb29mTm9kZSwgY29uc2VxdWVudCwgcHJvb2ZDb250ZXh0KSB7XG4gIGxldCBwcm9vZlZlcmlmaWVkID0gZmFsc2U7XG5cbiAgcHJvb2ZDb250ZXh0LmJlZ2luKHByb29mTm9kZSk7XG5cbiAgY29uc3QgZGVyaXZhdGlvbk5vZGUgPSBkZXJpdmF0aW9uTm9kZVF1ZXJ5KHByb29mTm9kZSksXG4gICAgICAgIHF1YWxpZmllZFN0YXRlbWVudE5vZGUgPSBxdWFsaWZpZWRTdGF0ZW1lbnROb2RlUXVlcnkocHJvb2ZOb2RlKTtcblxuICBsZXQgZGVyaXZhdGlvblZlcmlmaWVkID0gZmFsc2UsXG4gICAgICBxdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCA9IGZhbHNlO1xuXG4gIGlmIChkZXJpdmF0aW9uTm9kZSAhPT0gbnVsbCkge1xuICAgIGRlcml2YXRpb25WZXJpZmllZCA9IHZlcmlmeURlcml2YXRpb24oZGVyaXZhdGlvbk5vZGUsIHByb29mQ29udGV4dCk7XG4gIH1cblxuICBpZiAocXVhbGlmaWVkU3RhdGVtZW50Tm9kZSAhPT0gbnVsbCkge1xuICAgIHF1YWxpZmllZFN0YXRlbWVudFZlcmlmaWVkID0gdmVyaWZ5UXVhbGlmaWVkU3RhdGVtZW50KHF1YWxpZmllZFN0YXRlbWVudE5vZGUsIHByb29mQ29udGV4dCk7XG5cbiAgICBpZiAocXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQpIHtcbiAgICAgIGNvbnN0IGFzc2VydGlvbiA9IEFzc2VydGlvbi5mcm9tUXVhbGlmaWVkU3RhdGVtZW50Tm9kZShxdWFsaWZpZWRTdGF0ZW1lbnROb2RlKTtcblxuICAgICAgcHJvb2ZDb250ZXh0LmFkZEFzc2VydGlvbihhc3NlcnRpb24pO1xuICAgIH1cbiAgfVxuXG4gIGlmIChkZXJpdmF0aW9uVmVyaWZpZWQgfHwgcXVhbGlmaWVkU3RhdGVtZW50VmVyaWZpZWQpIHtcbiAgICBjb25zdCBsYXN0QXNzZXJ0aW9uID0gcHJvb2ZDb250ZXh0LmdldExhc3RBc3NlcnRpb24oKSxcbiAgICAgICAgICBhc3NlcnRpb24gPSBsYXN0QXNzZXJ0aW9uLCAvLy9cbiAgICAgICAgICBzdGF0ZW1lbnROb2RlID0gY29uc2VxdWVudC5nZXRTdGF0ZW1lbnROb2RlKCksXG4gICAgICAgICAgYXNzZXJ0aW9uU3RhdGVtZW50Tm9kZSA9IGFzc2VydGlvbi5nZXRTdGF0ZW1lbnROb2RlKCksXG4gICAgICAgICAgYXNzZXJ0aW9uU3RhdGVtZW50Tm9kZU1hdGNoZXMgPSBtYXRjaFByb29mU3RhdGVtZW50Tm9kZShhc3NlcnRpb25TdGF0ZW1lbnROb2RlLCBzdGF0ZW1lbnROb2RlKTtcblxuICAgIHByb29mVmVyaWZpZWQgPSBhc3NlcnRpb25TdGF0ZW1lbnROb2RlTWF0Y2hlczsgIC8vL1xuICB9XG5cbiAgcHJvb2ZWZXJpZmllZCA/XG4gICAgcHJvb2ZDb250ZXh0LmNvbXBsZXRlKHByb29mTm9kZSkgOlxuICAgICAgcHJvb2ZDb250ZXh0LmNvbXBsZXRlKHByb29mTm9kZSk7XG5cbiAgcmV0dXJuIHByb29mVmVyaWZpZWQ7XG59XG5cbmZ1bmN0aW9uIG1hdGNoUHJvb2ZTdGF0ZW1lbnROb2RlKGFzc2VydGlvblN0YXRlbWVudE5vZGUsIHN0YXRlbWVudE5vZGUpIHtcbiAgY29uc3QgYXNzZXJ0aW9uTm9uVGVybWluYWxOb2RlID0gYXNzZXJ0aW9uU3RhdGVtZW50Tm9kZSwgIC8vL1xuICAgICAgICBub25UZXJtaW5hbE5vZGUgPSBzdGF0ZW1lbnROb2RlLCAgLy8vXG4gICAgICAgIGFzc2VydGlvbk5vblRlcm1pbmFsTm9kZU1hdGNoZXMgPSBtYXRjaFByb29mTm9uVGVybWluYWxOb2RlKGFzc2VydGlvbk5vblRlcm1pbmFsTm9kZSwgbm9uVGVybWluYWxOb2RlKSxcbiAgICAgICAgYXNzZXJ0aW9uU3RhdGVtZW50Tm9kZU1hdGNoZXMgPSBhc3NlcnRpb25Ob25UZXJtaW5hbE5vZGVNYXRjaGVzOyAgLy8vXG5cbiAgcmV0dXJuIGFzc2VydGlvblN0YXRlbWVudE5vZGVNYXRjaGVzO1xufVxuXG5mdW5jdGlvbiBtYXRjaFByb29mTm9kZShhc3NlcnRpb25Ob2RlLCBub2RlKSB7XG4gIGxldCBhc3NlcnRpb25Ob2RlTWF0Y2hlcyA9IGZhbHNlO1xuXG4gIGNvbnN0IG5vZGVUZXJtaW5hbE5vZGUgPSBub2RlLmlzVGVybWluYWxOb2RlKCksXG4gICAgICAgIHJ1bGVOb2RlVGVybWluYWxOb2RlID0gYXNzZXJ0aW9uTm9kZS5pc1Rlcm1pbmFsTm9kZSgpO1xuXG4gIGlmIChub2RlVGVybWluYWxOb2RlID09PSBydWxlTm9kZVRlcm1pbmFsTm9kZSkge1xuICAgIGlmIChub2RlVGVybWluYWxOb2RlKSB7XG4gICAgICBjb25zdCB0ZXJtaW5hbE5vZGUgPSBub2RlLCAgLy8vXG4gICAgICAgICAgICBhc3NlcnRpb25UZXJtaW5hbE5vZGUgPSBhc3NlcnRpb25Ob2RlLCAgLy8vXG4gICAgICAgICAgICBhc3NlcnRpb25UZXJtaW5hbE5vZGVNYXRjaGVzID0gbWF0Y2hQcm9vZlRlcm1pbmFsTm9kZShhc3NlcnRpb25UZXJtaW5hbE5vZGUsIHRlcm1pbmFsTm9kZSk7XG5cbiAgICAgIGFzc2VydGlvbk5vZGVNYXRjaGVzID0gYXNzZXJ0aW9uVGVybWluYWxOb2RlTWF0Y2hlczsgIC8vL1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBub25UZXJtaW5hbE5vZGUgPSBub2RlLCAvLy9cbiAgICAgICAgICAgIGFzc2VydGlvbk5vblRlcm1pbmFsTm9kZSA9IGFzc2VydGlvbk5vZGUsICAvLy9cbiAgICAgICAgICAgIGFzc2VydGlvbk5vblRlcm1pbmFsTm9kZU1hdGNoZXMgPSBtYXRjaFByb29mTm9uVGVybWluYWxOb2RlKGFzc2VydGlvbk5vblRlcm1pbmFsTm9kZSwgbm9uVGVybWluYWxOb2RlKTtcblxuICAgICAgYXNzZXJ0aW9uTm9kZU1hdGNoZXMgPSBhc3NlcnRpb25Ob25UZXJtaW5hbE5vZGVNYXRjaGVzOyAvLy9cbiAgICB9XG4gIH1cblxuICByZXR1cm4gYXNzZXJ0aW9uTm9kZU1hdGNoZXM7XG59XG5cbmZ1bmN0aW9uIG1hdGNoUHJvb2ZOb2Rlcyhhc3NlcnRpb25Ob2Rlcywgbm9kZXMpIHtcbiAgbGV0IGFzc2VydGlvbk5vZGVzTWF0Y2hlcyA9IGZhbHNlO1xuXG4gIGNvbnN0IG5vZGVzTGVuZ3RoID0gbm9kZXMubGVuZ3RoLFxuICAgICAgICBhc3NlcnRpb25Ob2Rlc0xlbmd0aCA9IGFzc2VydGlvbk5vZGVzLmxlbmd0aDtcblxuICBpZiAobm9kZXNMZW5ndGggPT09IGFzc2VydGlvbk5vZGVzTGVuZ3RoKSB7XG4gICAgYXNzZXJ0aW9uTm9kZXNNYXRjaGVzID0gbm9kZXMuZXZlcnkoKG5vZGUsIGluZGV4KSA9PiB7XG4gICAgICBjb25zdCBhc3NlcnRpb25Ob2RlID0gYXNzZXJ0aW9uTm9kZXNbaW5kZXhdLFxuICAgICAgICAgICAgYXNzZXJ0aW9uTm9kZU1hdGNoZXMgPSBtYXRjaFByb29mTm9kZShhc3NlcnRpb25Ob2RlLCBub2RlKTtcblxuICAgICAgaWYgKGFzc2VydGlvbk5vZGVNYXRjaGVzKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICByZXR1cm4gYXNzZXJ0aW9uTm9kZXNNYXRjaGVzO1xufVxuXG5mdW5jdGlvbiBtYXRjaFByb29mVGVybWluYWxOb2RlKGFzc2VydGlvblRlcm1pbmFsTm9kZSwgdGVybWluYWxOb2RlKSB7XG4gIGNvbnN0IG1hdGNoZXMgPSBhc3NlcnRpb25UZXJtaW5hbE5vZGUubWF0Y2godGVybWluYWxOb2RlKSxcbiAgICAgICAgYXNzZXJ0aW9uVGVybWluYWxOb2RlTWF0Y2hlcyA9IG1hdGNoZXM7ICAvLy9cblxuICByZXR1cm4gYXNzZXJ0aW9uVGVybWluYWxOb2RlTWF0Y2hlcztcbn1cblxuZnVuY3Rpb24gbWF0Y2hQcm9vZk5vblRlcm1pbmFsTm9kZShhc3NlcnRpb25Ob25UZXJtaW5hbE5vZGUsIG5vblRlcm1pbmFsTm9kZSkge1xuICBsZXQgYXNzZXJ0aW9uTm9uVGVybWluYWxOb2RlTWF0Y2hlcyA9IGZhbHNlO1xuXG4gIGNvbnN0IHJ1bGVOYW1lID0gbm9uVGVybWluYWxOb2RlLmdldFJ1bGVOYW1lKCksXG4gICAgICAgIGFzc2VydGlvblJ1bGVOYW1lID0gYXNzZXJ0aW9uTm9uVGVybWluYWxOb2RlLmdldFJ1bGVOYW1lKCk7IC8vL1xuXG4gIGlmIChydWxlTmFtZSA9PT0gYXNzZXJ0aW9uUnVsZU5hbWUpIHtcbiAgICBjb25zdCBjaGlsZE5vZGVzID0gbm9uVGVybWluYWxOb2RlLmdldENoaWxkTm9kZXMoKSxcbiAgICAgICAgICBhc3NlcnRpb25DaGlsZE5vZGVzID0gYXNzZXJ0aW9uTm9uVGVybWluYWxOb2RlLmdldENoaWxkTm9kZXMoKSxcbiAgICAgICAgICBub2RlcyA9IGNoaWxkTm9kZXMsIC8vL1xuICAgICAgICAgIGFzc2VydGlvbk5vZGVzID0gYXNzZXJ0aW9uQ2hpbGROb2RlcywgLy8vXG4gICAgICAgICAgYXNzZXJ0aW9uTm9kZXNNYXRjaGVzID0gbWF0Y2hQcm9vZk5vZGVzKGFzc2VydGlvbk5vZGVzLCBub2Rlcyk7XG5cbiAgICBhc3NlcnRpb25Ob25UZXJtaW5hbE5vZGVNYXRjaGVzID0gYXNzZXJ0aW9uTm9kZXNNYXRjaGVzOyAvLy9cbiAgfVxuXG4gIHJldHVybiBhc3NlcnRpb25Ob25UZXJtaW5hbE5vZGVNYXRjaGVzO1xufVxuIl0sIm5hbWVzIjpbInZlcmlmeVByb29mIiwiZGVyaXZhdGlvbk5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsInF1YWxpZmllZFN0YXRlbWVudE5vZGVRdWVyeSIsInByb29mTm9kZSIsImNvbnNlcXVlbnQiLCJwcm9vZkNvbnRleHQiLCJwcm9vZlZlcmlmaWVkIiwiYmVnaW4iLCJkZXJpdmF0aW9uTm9kZSIsInF1YWxpZmllZFN0YXRlbWVudE5vZGUiLCJkZXJpdmF0aW9uVmVyaWZpZWQiLCJxdWFsaWZpZWRTdGF0ZW1lbnRWZXJpZmllZCIsInZlcmlmeURlcml2YXRpb24iLCJ2ZXJpZnlRdWFsaWZpZWRTdGF0ZW1lbnQiLCJhc3NlcnRpb24iLCJBc3NlcnRpb24iLCJmcm9tUXVhbGlmaWVkU3RhdGVtZW50Tm9kZSIsImFkZEFzc2VydGlvbiIsImxhc3RBc3NlcnRpb24iLCJnZXRMYXN0QXNzZXJ0aW9uIiwic3RhdGVtZW50Tm9kZSIsImdldFN0YXRlbWVudE5vZGUiLCJhc3NlcnRpb25TdGF0ZW1lbnROb2RlIiwiYXNzZXJ0aW9uU3RhdGVtZW50Tm9kZU1hdGNoZXMiLCJtYXRjaFByb29mU3RhdGVtZW50Tm9kZSIsImNvbXBsZXRlIiwiYXNzZXJ0aW9uTm9uVGVybWluYWxOb2RlIiwibm9uVGVybWluYWxOb2RlIiwiYXNzZXJ0aW9uTm9uVGVybWluYWxOb2RlTWF0Y2hlcyIsIm1hdGNoUHJvb2ZOb25UZXJtaW5hbE5vZGUiLCJtYXRjaFByb29mTm9kZSIsImFzc2VydGlvbk5vZGUiLCJub2RlIiwiYXNzZXJ0aW9uTm9kZU1hdGNoZXMiLCJub2RlVGVybWluYWxOb2RlIiwiaXNUZXJtaW5hbE5vZGUiLCJydWxlTm9kZVRlcm1pbmFsTm9kZSIsInRlcm1pbmFsTm9kZSIsImFzc2VydGlvblRlcm1pbmFsTm9kZSIsImFzc2VydGlvblRlcm1pbmFsTm9kZU1hdGNoZXMiLCJtYXRjaFByb29mVGVybWluYWxOb2RlIiwibWF0Y2hQcm9vZk5vZGVzIiwiYXNzZXJ0aW9uTm9kZXMiLCJub2RlcyIsImFzc2VydGlvbk5vZGVzTWF0Y2hlcyIsIm5vZGVzTGVuZ3RoIiwibGVuZ3RoIiwiYXNzZXJ0aW9uTm9kZXNMZW5ndGgiLCJldmVyeSIsImluZGV4IiwibWF0Y2hlcyIsIm1hdGNoIiwicnVsZU5hbWUiLCJnZXRSdWxlTmFtZSIsImFzc2VydGlvblJ1bGVOYW1lIiwiY2hpbGROb2RlcyIsImdldENoaWxkTm9kZXMiLCJhc3NlcnRpb25DaGlsZE5vZGVzIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFXQTs7O2VBQXdCQTs7OzhEQVRGOytEQUNPOzhEQUNRO3FCQUVYOzs7Ozs7QUFFMUIsSUFBTUMsc0JBQXNCQyxJQUFBQSxnQkFBUyxFQUFDLHVCQUNoQ0MsOEJBQThCRCxJQUFBQSxnQkFBUyxFQUFDO0FBRS9CLFNBQVNGLFlBQVlJLFNBQVMsRUFBRUMsVUFBVSxFQUFFQyxZQUFZLEVBQUU7SUFDdkUsSUFBSUMsZ0JBQWdCLEtBQUs7SUFFekJELGFBQWFFLEtBQUssQ0FBQ0o7SUFFbkIsSUFBTUssaUJBQWlCUixvQkFBb0JHLFlBQ3JDTSx5QkFBeUJQLDRCQUE0QkM7SUFFM0QsSUFBSU8scUJBQXFCLEtBQUssRUFDMUJDLDZCQUE2QixLQUFLO0lBRXRDLElBQUlILG1CQUFtQixJQUFJLEVBQUU7UUFDM0JFLHFCQUFxQkUsSUFBQUEsbUJBQWdCLEVBQUNKLGdCQUFnQkg7SUFDeEQsQ0FBQztJQUVELElBQUlJLDJCQUEyQixJQUFJLEVBQUU7UUFDbkNFLDZCQUE2QkUsSUFBQUEsa0JBQXdCLEVBQUNKLHdCQUF3Qko7UUFFOUUsSUFBSU0sNEJBQTRCO1lBQzlCLElBQU1HLFlBQVlDLGtCQUFTLENBQUNDLDBCQUEwQixDQUFDUDtZ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
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "occam-verify-cli",
3
3
  "author": "James Smith",
4
- "version": "0.0.469",
4
+ "version": "0.0.470",
5
5
  "license": "MIT, Anti-996",
6
6
  "homepage": "https://github.com/djalbat/occam-verify-cli",
7
7
  "description": "Occam's Verifier",
@@ -4,7 +4,7 @@ import fileMixins from "../mixins/file";
4
4
  import loggingMixins from "../mixins/logging";
5
5
  import callbacksMixins from "../mixins/callbacks";
6
6
 
7
- import { push } from "../utilities/array";
7
+ import { push, last } from "../utilities/array";
8
8
 
9
9
  class ProofContext {
10
10
  constructor(context, derived, variables, assertions) {
@@ -57,6 +57,12 @@ class ProofContext {
57
57
  return variables;
58
58
  }
59
59
 
60
+ getLastAssertion() {
61
+ const lastAssertion = last(this.assertions);
62
+
63
+ return lastAssertion;
64
+ }
65
+
60
66
  setDerived(derived) {
61
67
  this.derived = derived;
62
68
  }
@@ -1,19 +1,17 @@
1
1
  "use strict";
2
2
 
3
- import ProofContext from "../context/proof";
3
+ import Assertion from "../assertion";
4
4
  import verifyDerivation from "../verify/derivation";
5
- import verifyQualifiedStatement from "../verify/statement/qualified";
5
+ import verifyQualifiedStatement from "./statement/qualified";
6
6
 
7
7
  import { nodeQuery } from "../utilities/query";
8
8
 
9
9
  const derivationNodeQuery = nodeQuery("/proof/derivation!"),
10
10
  qualifiedStatementNodeQuery = nodeQuery("/proof/qualifiedStatement!");
11
11
 
12
- export default function verifyProof(proofNode, fileContext) {
12
+ export default function verifyProof(proofNode, consequent, proofContext) {
13
13
  let proofVerified = false;
14
14
 
15
- const proofContext = ProofContext.fromFileContext(fileContext);
16
-
17
15
  proofContext.begin(proofNode);
18
16
 
19
17
  const derivationNode = derivationNodeQuery(proofNode),
@@ -27,31 +25,24 @@ export default function verifyProof(proofNode, fileContext) {
27
25
  }
28
26
 
29
27
  if (qualifiedStatementNode !== null) {
30
- let derived;
31
-
32
- derived = true;
33
-
34
- proofContext.setDerived(derived);
35
-
36
28
  qualifiedStatementVerified = verifyQualifiedStatement(qualifiedStatementNode, proofContext);
37
29
 
38
- derived = false;
30
+ if (qualifiedStatementVerified) {
31
+ const assertion = Assertion.fromQualifiedStatementNode(qualifiedStatementNode);
39
32
 
40
- proofContext.setDerived(derived);
33
+ proofContext.addAssertion(assertion);
34
+ }
41
35
  }
42
36
 
43
- // if (derivationVerified) {
44
- // const qualifiedStatementNode = qualifiedStatementNodeQuery(proofNode),
45
- // qualifiedStatementVerified = verifyQualifiedStatement(qualifiedStatementNode, proofContext);
46
- //
47
- // if (qualifiedStatementVerified) {
48
- // const statementNode = conclusion.getStatementNode(),
49
- // proofStatementNode = proofStatementNodeQuery(proofNode),
50
- // proofStatementNodeMatches = matchProofStatementNode(proofStatementNode, statementNode);
51
- //
52
- // proofVerified = proofStatementNodeMatches; ///
53
- // }
54
- // }
37
+ if (derivationVerified || qualifiedStatementVerified) {
38
+ const lastAssertion = proofContext.getLastAssertion(),
39
+ assertion = lastAssertion, ///
40
+ statementNode = consequent.getStatementNode(),
41
+ assertionStatementNode = assertion.getStatementNode(),
42
+ assertionStatementNodeMatches = matchProofStatementNode(assertionStatementNode, statementNode);
43
+
44
+ proofVerified = assertionStatementNodeMatches; ///
45
+ }
55
46
 
56
47
  proofVerified ?
57
48
  proofContext.complete(proofNode) :
@@ -60,82 +51,82 @@ export default function verifyProof(proofNode, fileContext) {
60
51
  return proofVerified;
61
52
  }
62
53
 
63
- function matchProofStatementNode(proofStatementNode, statementNode) {
64
- const proofNonTerminalNode = proofStatementNode, ///
54
+ function matchProofStatementNode(assertionStatementNode, statementNode) {
55
+ const assertionNonTerminalNode = assertionStatementNode, ///
65
56
  nonTerminalNode = statementNode, ///
66
- proofNonTerminalNodeMatches = matchProofNonTerminalNode(proofNonTerminalNode, nonTerminalNode),
67
- proofStatementNodeMatches = proofNonTerminalNodeMatches; ///
57
+ assertionNonTerminalNodeMatches = matchProofNonTerminalNode(assertionNonTerminalNode, nonTerminalNode),
58
+ assertionStatementNodeMatches = assertionNonTerminalNodeMatches; ///
68
59
 
69
- return proofStatementNodeMatches;
60
+ return assertionStatementNodeMatches;
70
61
  }
71
62
 
72
- function matchProofNode(proofNode, node) {
73
- let proofNodeMatches = false;
63
+ function matchProofNode(assertionNode, node) {
64
+ let assertionNodeMatches = false;
74
65
 
75
66
  const nodeTerminalNode = node.isTerminalNode(),
76
- ruleNodeTerminalNode = proofNode.isTerminalNode();
67
+ ruleNodeTerminalNode = assertionNode.isTerminalNode();
77
68
 
78
69
  if (nodeTerminalNode === ruleNodeTerminalNode) {
79
70
  if (nodeTerminalNode) {
80
71
  const terminalNode = node, ///
81
- proofTerminalNode = proofNode, ///
82
- proofTerminalNodeMatches = matchProofTerminalNode(proofTerminalNode, terminalNode);
72
+ assertionTerminalNode = assertionNode, ///
73
+ assertionTerminalNodeMatches = matchProofTerminalNode(assertionTerminalNode, terminalNode);
83
74
 
84
- proofNodeMatches = proofTerminalNodeMatches; ///
75
+ assertionNodeMatches = assertionTerminalNodeMatches; ///
85
76
  } else {
86
77
  const nonTerminalNode = node, ///
87
- proofNonTerminalNode = proofNode, ///
88
- proofNonTerminalNodeMatches = matchProofNonTerminalNode(proofNonTerminalNode, nonTerminalNode);
78
+ assertionNonTerminalNode = assertionNode, ///
79
+ assertionNonTerminalNodeMatches = matchProofNonTerminalNode(assertionNonTerminalNode, nonTerminalNode);
89
80
 
90
- proofNodeMatches = proofNonTerminalNodeMatches; ///
81
+ assertionNodeMatches = assertionNonTerminalNodeMatches; ///
91
82
  }
92
83
  }
93
84
 
94
- return proofNodeMatches;
85
+ return assertionNodeMatches;
95
86
  }
96
87
 
97
- function matchProofNodes(proofNodes, nodes) {
98
- let proofNodesMatches = false;
88
+ function matchProofNodes(assertionNodes, nodes) {
89
+ let assertionNodesMatches = false;
99
90
 
100
91
  const nodesLength = nodes.length,
101
- proofNodesLength = proofNodes.length;
92
+ assertionNodesLength = assertionNodes.length;
102
93
 
103
- if (nodesLength === proofNodesLength) {
104
- proofNodesMatches = nodes.every((node, index) => {
105
- const proofNode = proofNodes[index],
106
- proofNodeMatches = matchProofNode(proofNode, node);
94
+ if (nodesLength === assertionNodesLength) {
95
+ assertionNodesMatches = nodes.every((node, index) => {
96
+ const assertionNode = assertionNodes[index],
97
+ assertionNodeMatches = matchProofNode(assertionNode, node);
107
98
 
108
- if (proofNodeMatches) {
99
+ if (assertionNodeMatches) {
109
100
  return true;
110
101
  }
111
102
  })
112
103
  }
113
104
 
114
- return proofNodesMatches;
105
+ return assertionNodesMatches;
115
106
  }
116
107
 
117
- function matchProofTerminalNode(proofTerminalNode, terminalNode) {
118
- const matches = proofTerminalNode.match(terminalNode),
119
- proofTerminalNodeMatches = matches; ///
108
+ function matchProofTerminalNode(assertionTerminalNode, terminalNode) {
109
+ const matches = assertionTerminalNode.match(terminalNode),
110
+ assertionTerminalNodeMatches = matches; ///
120
111
 
121
- return proofTerminalNodeMatches;
112
+ return assertionTerminalNodeMatches;
122
113
  }
123
114
 
124
- function matchProofNonTerminalNode(proofNonTerminalNode, nonTerminalNode) {
125
- let proofNonTerminalNodeMatches = false;
115
+ function matchProofNonTerminalNode(assertionNonTerminalNode, nonTerminalNode) {
116
+ let assertionNonTerminalNodeMatches = false;
126
117
 
127
118
  const ruleName = nonTerminalNode.getRuleName(),
128
- proofRuleName = proofNonTerminalNode.getRuleName(); ///
119
+ assertionRuleName = assertionNonTerminalNode.getRuleName(); ///
129
120
 
130
- if (ruleName === proofRuleName) {
121
+ if (ruleName === assertionRuleName) {
131
122
  const childNodes = nonTerminalNode.getChildNodes(),
132
- proofChildNodes = proofNonTerminalNode.getChildNodes(),
123
+ assertionChildNodes = assertionNonTerminalNode.getChildNodes(),
133
124
  nodes = childNodes, ///
134
- proofNodes = proofChildNodes, ///
135
- proofNodesMatches = matchProofNodes(proofNodes, nodes);
125
+ assertionNodes = assertionChildNodes, ///
126
+ assertionNodesMatches = matchProofNodes(assertionNodes, nodes);
136
127
 
137
- proofNonTerminalNodeMatches = proofNodesMatches; ///
128
+ assertionNonTerminalNodeMatches = assertionNodesMatches; ///
138
129
  }
139
130
 
140
- return proofNonTerminalNodeMatches;
131
+ return assertionNonTerminalNodeMatches;
141
132
  }