Comparing version 0.82.0 to 0.83.0
@@ -26,2 +26,4 @@ "use strict"; | ||
var _TracingPatcher = require("../TracingPatcher"); | ||
var _RateLimiter = _interopRequireDefault(require("./RateLimiter")); | ||
@@ -35,2 +37,4 @@ | ||
var _config = _interopRequireDefault(require("../config")); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
@@ -100,2 +104,8 @@ | ||
let trace = _NoopNamespace.NoopNamespaceInstance; | ||
if (_config.default.Tracing.ENABLED && _TracingPatcher.tracerInitialized) { | ||
trace = _TraceNamespace.TraceNamespaceInstance; | ||
} | ||
let namespace = new _ContainerNamespace.default({ | ||
@@ -105,3 +115,3 @@ 'frame': stack ? stack.readKey(0) : _NoopNamespace.NoopNamespaceInstance, | ||
'utils': _JSUtilsNamespace.JSUtilsNamespaceInstance, | ||
'trace': _TraceNamespace.TraceNamespaceInstance, | ||
'trace': trace, | ||
'state': _ProcessStateNamespace.ProcessStateNamespaceInstance, | ||
@@ -136,2 +146,3 @@ "extracted": extracted | ||
this.enabled = false; | ||
this.triggerServices.removeAugfromInspector(this.augId); | ||
throw new _exceptions.RookRuleMaxExecutionTimeReached(); | ||
@@ -225,2 +236,2 @@ } | ||
exports.default = Aug; | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1dGlscyIsInJlcXVpcmUiLCJwcm9jZXNzIiwiX19yb29rb3V0X2JhY2tjaGFubmVsIiwiRGVidWdnZXJCYWNrY2hhbm5lbCIsIkNvbnRhaW5lck5hbWVzcGFjZSIsIk9iamVjdE5hbWVzcGFjZSIsIkpTT2JqZWN0TmFtZXNwYWNlIiwiQXVnIiwiY29uc3RydWN0b3IiLCJhdWdJZCIsImxvY2F0aW9uIiwiYWN0aW9uIiwiY29uZGl0aW9uIiwib3V0cHV0IiwidHJpZ2dlclNlcnZpY2VzIiwibWF4QXVnVGltZSIsImxpbWl0cyIsInN0YXR1cyIsImVuYWJsZWQiLCJfaGFzQmVlblJhdGVMaW1pdGVkIiwiX3dhcm5pbmdDYWNoZSIsIk1hcCIsIl9sb2dDYWNoZSIsInVuZGVmaW5lZCIsImxlbmd0aCIsInJhdGVMaW1pdGVyIiwiUmF0ZUxpbWl0ZXIiLCJleGVjdXRlZCIsImFkZEF1ZyIsImUiLCJtZXNzYWdlIiwibG9nZ2VyIiwiZXhjZXB0aW9uIiwic2V0RXJyb3IiLCJSb29rRXJyb3IiLCJyZW1vdmVBdWdUZW1wb3JhcmlseUFuZFJlYXBwbHlBZnRlckR1cmF0aW9uIiwiZHVyYXRpb24iLCJpbmZvIiwicmVtb3ZlQXVnVGVtcG9yYXJpbHkiLCJleGVjdXRlIiwic3RhY2siLCJleHRyYWN0ZWQiLCJzdGFydFRpbWUiLCJnZXRUaW1lSW5OYW5vc2Vjb25kcyIsImNoZWNrUmF0ZUxpbWl0IiwicmVjb3JkIiwibmFtZXNwYWNlIiwicmVhZEtleSIsIk5vb3BOYW1lc3BhY2VJbnN0YW5jZSIsIkpTVXRpbHNOYW1lc3BhY2VJbnN0YW5jZSIsIlRyYWNlTmFtZXNwYWNlSW5zdGFuY2UiLCJQcm9jZXNzU3RhdGVOYW1lc3BhY2VJbnN0YW5jZSIsImV2YWx1YXRlIiwibXNnSWQiLCJ1dWlkNCIsInJlcGxhY2UiLCJkZWJ1ZyIsIndyaXRlQXR0cmlidXRlIiwiVXNlcldhcm5pbmdzIiwiUm9va1J1bGVNYXhFeGVjdXRpb25UaW1lUmVhY2hlZCIsInJvb2tFcnJvciIsInNob3VsZFNpbGVuY2VMb2ciLCJzZXRBY3RpdmUiLCJzZW5kUnVsZVN0YXR1cyIsInNldFBlbmRpbmciLCJzZXRSZW1vdmVkIiwiZXJyb3IiLCJzZXRVbmtub3duIiwic2VuZFdhcm5pbmciLCJ3YXJuIiwibG9nQ2FjaGUiLCJoYXMiLCJzaXplIiwic2V0IiwiYWxsb3ciLCJhcmVVc2VyTWVzc2FnZXNGdWxsIiwiUm9va1J1bGVSYXRlTGltaXRlZCIsIndpbmRvd19zaXplX21zIiwiTmFub3NlY1RvTWlsbGlzZWMiLCJ3aW5kb3dfc2l6ZSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdWdzL0F1Zy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcclxuXHJcbmltcG9ydCBSb29rRXJyb3IgZnJvbSBcIi4uL3Byb2Nlc3Nvci9Sb29rRXJyb3JcIjtcclxuaW1wb3J0IHtSb29rUnVsZU1heEV4ZWN1dGlvblRpbWVSZWFjaGVkLCBSb29rUnVsZVJhdGVMaW1pdGVkfSBmcm9tIFwiLi4vZXhjZXB0aW9uc1wiO1xyXG5cclxuaW1wb3J0IHtsb2dnZXJ9IGZyb20gXCIuLi9sb2dnZXJcIjtcclxuaW1wb3J0IFVzZXJXYXJuaW5ncyBmcm9tIFwiLi4vVXNlcldhcm5pbmdzXCI7XHJcbmltcG9ydCBDb250YWluZXJOYW1lc3BhY2UgZnJvbSBcIi4uL3Byb2Nlc3Nvci9uYW1lc3BhY2VzL0NvbnRhaW5lck5hbWVzcGFjZVwiXHJcbmltcG9ydCB7IEpTVXRpbHNOYW1lc3BhY2VJbnN0YW5jZSB9IGZyb20gXCIuLi9wcm9jZXNzb3IvbmFtZXNwYWNlcy9KU1V0aWxzTmFtZXNwYWNlXCJcclxuaW1wb3J0IHsgTm9vcE5hbWVzcGFjZUluc3RhbmNlIH0gZnJvbSBcIi4uL3Byb2Nlc3Nvci9uYW1lc3BhY2VzL05vb3BOYW1lc3BhY2VcIlxyXG5pbXBvcnQgeyBQcm9jZXNzU3RhdGVOYW1lc3BhY2VJbnN0YW5jZSB9IGZyb20gXCIuLi9wcm9jZXNzb3IvbmFtZXNwYWNlcy9Qcm9jZXNzU3RhdGVOYW1lc3BhY2VcIlxyXG5pbXBvcnQgeyBUcmFjZU5hbWVzcGFjZUluc3RhbmNlIH0gZnJvbSBcIi4uL3Byb2Nlc3Nvci9uYW1lc3BhY2VzL1RyYWNlTmFtZXNwYWNlXCI7XHJcbmltcG9ydCBSYXRlTGltaXRlciBmcm9tIFwiLi9SYXRlTGltaXRlclwiO1xyXG5pbXBvcnQgRGVidWdnZXJCYWNrY2hhbm5lbCBmcm9tIFwiLi4vc2VydmljZXMvRGVidWdnZXJCYWNrY2hhbm5lbFwiO1xyXG5pbXBvcnQgSlNPYmplY3ROYW1lc3BhY2UgZnJvbSBcIi4uL3Byb2Nlc3Nvci9uYW1lc3BhY2VzL0pTT2JqZWN0TmFtZXNwYWNlXCI7XHJcbmNvbnN0IHV0aWxzID0gcmVxdWlyZShcIi4uL3V0aWxzXCIpO1xyXG5cclxuaW1wb3J0IHsgdjQgYXMgdXVpZDQgfSBmcm9tICd1dWlkJztcclxuXHJcbnByb2Nlc3MuX19yb29rb3V0X2JhY2tjaGFubmVsID0gbmV3IERlYnVnZ2VyQmFja2NoYW5uZWwoKTtcclxucHJvY2Vzcy5fX3Jvb2tvdXRfYmFja2NoYW5uZWwuQ29udGFpbmVyTmFtZXNwYWNlID0gQ29udGFpbmVyTmFtZXNwYWNlO1xyXG5wcm9jZXNzLl9fcm9va291dF9iYWNrY2hhbm5lbC5PYmplY3ROYW1lc3BhY2UgPSBKU09iamVjdE5hbWVzcGFjZTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEF1ZyB7XHJcbiAgICBjb25zdHJ1Y3RvcihhdWdJZCwgbG9jYXRpb24sIGFjdGlvbiwgY29uZGl0aW9uLCBvdXRwdXQsIHRyaWdnZXJTZXJ2aWNlcywgbWF4QXVnVGltZSwgbGltaXRzKSB7XHJcbiAgICAgICAgdGhpcy50cmlnZ2VyU2VydmljZXMgPSB0cmlnZ2VyU2VydmljZXM7XHJcbiAgICAgICAgdGhpcy5hdWdJZCA9IGF1Z0lkO1xyXG4gICAgICAgIHRoaXMubG9jYXRpb24gPSBsb2NhdGlvbjtcclxuICAgICAgICB0aGlzLmFjdGlvbiA9IGFjdGlvbjtcclxuICAgICAgICB0aGlzLm91dHB1dCA9IG91dHB1dDtcclxuICAgICAgICB0aGlzLnN0YXR1cyA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5tYXhBdWdUaW1lID0gbWF4QXVnVGltZTtcclxuICAgICAgICB0aGlzLmVuYWJsZWQgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuY29uZGl0aW9uID0gY29uZGl0aW9uO1xyXG4gICAgICAgIHRoaXMuX2hhc0JlZW5SYXRlTGltaXRlZCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuX3dhcm5pbmdDYWNoZSA9IG5ldyBNYXAoKTtcclxuICAgICAgICB0aGlzLl9sb2dDYWNoZSA9IG5ldyBNYXAoKTtcclxuXHJcbiAgICAgICAgaWYgKGxpbWl0cyAhPT0gdW5kZWZpbmVkICYmIGxpbWl0cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMucmF0ZUxpbWl0ZXIgPSBuZXcgUmF0ZUxpbWl0ZXIobGltaXRzWzBdLCBsaW1pdHNbMV0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMucmF0ZUxpbWl0ZXIgPSBuZXcgUmF0ZUxpbWl0ZXIoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuZXhlY3V0ZWQgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBhZGRBdWcoKSB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgdGhpcy5sb2NhdGlvbi5hZGRBdWcodGhpcy50cmlnZ2VyU2VydmljZXMsIHRoaXMpO1xyXG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgY29uc3QgbWVzc2FnZSA9IFwiRXhjZXB0aW9uIHdoZW4gYWRkaW5nIGF1Z1wiO1xyXG4gICAgICAgICAgICBsb2dnZXIuZXhjZXB0aW9uKG1lc3NhZ2UsIGUpO1xyXG4gICAgICAgICAgICB0aGlzLnNldEVycm9yKG5ldyBSb29rRXJyb3IoZSwgbWVzc2FnZSkpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZW1vdmVBdWdUZW1wb3JhcmlseUFuZFJlYXBwbHlBZnRlckR1cmF0aW9uKGR1cmF0aW9uKSB7XHJcbiAgICAgICAgbG9nZ2VyLmluZm8oXCJUZW1wb3JhcmlseSByZW1vdmluZyBhdWcgJXMgZm9yICVzbXNcIiwgdGhpcy5hdWdJZCwgZHVyYXRpb24pO1xyXG4gICAgICAgIHRoaXMudHJpZ2dlclNlcnZpY2VzLnJlbW92ZUF1Z1RlbXBvcmFyaWx5KHRoaXMuYXVnSWQsIGR1cmF0aW9uKTtcclxuICAgIH1cclxuXHJcbiAgICBleGVjdXRlKHN0YWNrLCBleHRyYWN0ZWQpIHtcclxuICAgICAgICBpZiAoIXRoaXMuZW5hYmxlZCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBjb25zdCBzdGFydFRpbWUgPSB1dGlscy5nZXRUaW1lSW5OYW5vc2Vjb25kcygpO1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMuY2hlY2tSYXRlTGltaXQoc3RhcnRUaW1lKSkge1xyXG4gICAgICAgICAgICAgICAgbGV0IGR1cmF0aW9uID0gdXRpbHMuZ2V0VGltZUluTmFub3NlY29uZHMoKSAtIHN0YXJ0VGltZTtcclxuICAgICAgICAgICAgICAgIHRoaXMucmF0ZUxpbWl0ZXIucmVjb3JkKHN0YXJ0VGltZSwgZHVyYXRpb24pO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBsZXQgbmFtZXNwYWNlID0gbmV3IENvbnRhaW5lck5hbWVzcGFjZSh7XHJcbiAgICAgICAgICAgICAgICAnZnJhbWUnOiBzdGFjayA/IHN0YWNrLnJlYWRLZXkoMCkgOiBOb29wTmFtZXNwYWNlSW5zdGFuY2UsXHJcbiAgICAgICAgICAgICAgICAnc3RhY2snOiBzdGFjayB8fCBOb29wTmFtZXNwYWNlSW5zdGFuY2UsXHJcbiAgICAgICAgICAgICAgICAndXRpbHMnOiBKU1V0aWxzTmFtZXNwYWNlSW5zdGFuY2UsXHJcbiAgICAgICAgICAgICAgICAndHJhY2UnOiBUcmFjZU5hbWVzcGFjZUluc3RhbmNlLFxyXG4gICAgICAgICAgICAgICAgJ3N0YXRlJzogUHJvY2Vzc1N0YXRlTmFtZXNwYWNlSW5zdGFuY2UsXHJcbiAgICAgICAgICAgICAgICBcImV4dHJhY3RlZFwiOiBleHRyYWN0ZWRcclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5jb25kaXRpb24gIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLmNvbmRpdGlvbi5ldmFsdWF0ZShuYW1lc3BhY2UpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZHVyYXRpb24gPSB1dGlscy5nZXRUaW1lSW5OYW5vc2Vjb25kcygpIC0gc3RhcnRUaW1lO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmF0ZUxpbWl0ZXIucmVjb3JkKHN0YXJ0VGltZSwgZHVyYXRpb24pO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgY29uc3QgbXNnSWQgPSB1dWlkNCgpLnJlcGxhY2UoL1xcLS9nLCBcIlwiKTtcclxuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLmV4ZWN1dGVkKSB7XHJcbiAgICAgICAgICAgICAgICBsb2dnZXIuZGVidWcoXCJFeGVjdXRpbmcgYXVnLVxcdCVzIChtc2cgSUQgJXMpXCIsIHRoaXMuYXVnSWQsIG1zZ0lkKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGxvZ2dlci5pbmZvKFwiRXhlY3V0aW5nIGF1ZyBmb3IgdGhlIGZpcnN0IHRpbWUgLSAlc1wiLCB0aGlzLmF1Z0lkKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuZXhlY3V0ZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBuYW1lc3BhY2Uud3JpdGVBdHRyaWJ1dGUoJ3N0b3JlJywgbmV3IENvbnRhaW5lck5hbWVzcGFjZSh7fSkpO1xyXG4gICAgICAgICAgICB0aGlzLmFjdGlvbi5leGVjdXRlKHRoaXMuYXVnSWQsIG1zZ0lkLCBuYW1lc3BhY2UsIHRoaXMub3V0cHV0LCBuZXcgVXNlcldhcm5pbmdzKHRoaXMpKTtcclxuXHJcbiAgICAgICAgICAgIGxldCBkdXJhdGlvbiA9IHV0aWxzLmdldFRpbWVJbk5hbm9zZWNvbmRzKCkgLSBzdGFydFRpbWU7XHJcblxyXG4gICAgICAgICAgICB0aGlzLnJhdGVMaW1pdGVyLnJlY29yZChzdGFydFRpbWUsIGR1cmF0aW9uKTtcclxuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLm1heEF1Z1RpbWUgJiYgdGhpcy5tYXhBdWdUaW1lID4gMCAmJiBkdXJhdGlvbiA+IHRoaXMubWF4QXVnVGltZSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5lbmFibGVkID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUm9va1J1bGVNYXhFeGVjdXRpb25UaW1lUmVhY2hlZCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICBjb25zdCBtZXNzYWdlID0gXCJFeGNlcHRpb24gd2hpbGUgcHJvY2Vzc2luZyBBdWdcIjtcclxuICAgICAgICAgICAgbGV0IHJvb2tFcnJvciA9IG5ldyBSb29rRXJyb3IoZSwgbWVzc2FnZSk7XHJcblxyXG4gICAgICAgICAgICBpZiAoIXRoaXMuc2hvdWxkU2lsZW5jZUxvZyhyb29rRXJyb3IsIHRoaXMuX2xvZ0NhY2hlKSkge1xyXG4gICAgICAgICAgICAgICAgbG9nZ2VyLmV4Y2VwdGlvbihtZXNzYWdlLCBlKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhpcy5zZXRFcnJvcihyb29rRXJyb3IpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzZXRBY3RpdmUoKSB7XHJcbiAgICAgICAgdGhpcy5zZW5kUnVsZVN0YXR1cyhcIkFjdGl2ZVwiKTtcclxuICAgIH1cclxuXHJcbiAgICBzZXRQZW5kaW5nKCkge1xyXG4gICAgICAgIHRoaXMuc2VuZFJ1bGVTdGF0dXMoXCJQZW5kaW5nXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIHNldFJlbW92ZWQoKSB7XHJcbiAgICAgICAgdGhpcy5zZW5kUnVsZVN0YXR1cyhcIkRlbGV0ZWRcIik7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0RXJyb3IoZXJyb3IpIHtcclxuICAgICAgICB0aGlzLnNlbmRSdWxlU3RhdHVzKFwiRXJyb3JcIiwgZXJyb3IpO1xyXG4gICAgfVxyXG5cclxuICAgIHNldFVua25vd24oZXJyb3IpIHtcclxuICAgICAgICB0aGlzLnNlbmRSdWxlU3RhdHVzKFwiVW5rbm93blwiLCBlcnJvcik7XHJcbiAgICB9XHJcblxyXG4gICAgc2VuZFdhcm5pbmcoZXJyb3IpIHtcclxuICAgICAgICBpZiAodGhpcy5zaG91bGRTaWxlbmNlTG9nKGVycm9yLCB0aGlzLl93YXJuaW5nQ2FjaGUpKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxvZ2dlci53YXJuKGVycm9yLm1lc3NhZ2UpO1xyXG5cclxuICAgICAgICB0aGlzLm91dHB1dC5zZW5kV2FybmluZyh0aGlzLmF1Z0lkLCBlcnJvcik7XHJcbiAgICB9XHJcblxyXG4gICAgc2VuZFJ1bGVTdGF0dXMoc3RhdHVzLCBlcnJvcj1udWxsKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuc3RhdHVzID09PSBzdGF0dXMpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbG9nZ2VyLmluZm8oXCJVcGRhdGluZyBydWxlIHN0YXR1cyBmb3IgJXMgdG8gJXNcIiwgdGhpcy5hdWdJZCwgc3RhdHVzKTtcclxuXHJcbiAgICAgICAgdGhpcy5zdGF0dXMgPSBzdGF0dXM7XHJcbiAgICAgICAgdGhpcy5vdXRwdXQuc2VuZFJ1bGVTdGF0dXModGhpcy5hdWdJZCwgc3RhdHVzLCBlcnJvcik7XHJcbiAgICB9XHJcblxyXG4gICAgc2hvdWxkU2lsZW5jZUxvZyhlcnJvciwgbG9nQ2FjaGUpIHtcclxuICAgICAgICBpZiAobG9nQ2FjaGUuaGFzKGVycm9yLm1lc3NhZ2UpIHx8IGxvZ0NhY2hlLnNpemUgPj0gMTApIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsb2dDYWNoZS5zZXQoZXJyb3IubWVzc2FnZSwgdHJ1ZSk7XHJcblxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBjaGVja1JhdGVMaW1pdChzdGFydFRpbWUpIHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMucmF0ZUxpbWl0ZXIuYWxsb3coc3RhcnRUaW1lKSB8fCB0aGlzLm91dHB1dC5hcmVVc2VyTWVzc2FnZXNGdWxsKCkpIHtcclxuICAgICAgICAgICAgICAgIGlmICghdGhpcy5faGFzQmVlblJhdGVMaW1pdGVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZW5kV2FybmluZyhuZXcgUm9va0Vycm9yKG5ldyBSb29rUnVsZVJhdGVMaW1pdGVkKCkpKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9oYXNCZWVuUmF0ZUxpbWl0ZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLy8gcmVtb3ZlQXVnVGVtcG9yYXJpbHlBbmRSZWFwcGx5QWZ0ZXJEdXJhdGlvbiBleHBlY3RzIHRvIGdldCBhIGR1cmF0aW9uIG9mIHRpbWVvdXQgaW4gbWlsbGlzZWNvbmRzXHJcbiAgICAgICAgICAgICAgICAvLyBhbmQgd2luZG93X3NpemUgaXMgY3VycmVudGx5IGluIG5hbm9zZWNvbmRzXHJcbiAgICAgICAgICAgICAgICBsZXQgd2luZG93X3NpemVfbXMgPSB1dGlscy5OYW5vc2VjVG9NaWxsaXNlYyh0aGlzLnJhdGVMaW1pdGVyLndpbmRvd19zaXplKTtcclxuICAgICAgICAgICAgICAgIHRoaXMucmVtb3ZlQXVnVGVtcG9yYXJpbHlBbmRSZWFwcGx5QWZ0ZXJEdXJhdGlvbih3aW5kb3dfc2l6ZV9tcyAvIDIpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztBQUVBOztBQUNBOztBQUVBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUdBOzs7O0FBRkEsTUFBTUEsS0FBSyxHQUFHQyxPQUFPLENBQUMsVUFBRCxDQUFyQjs7QUFJQUMsT0FBTyxDQUFDQyxxQkFBUixHQUFnQyxJQUFJQyw0QkFBSixFQUFoQztBQUNBRixPQUFPLENBQUNDLHFCQUFSLENBQThCRSxrQkFBOUIsR0FBbURBLDJCQUFuRDtBQUNBSCxPQUFPLENBQUNDLHFCQUFSLENBQThCRyxlQUE5QixHQUFnREMsMEJBQWhEOztBQUVlLE1BQU1DLEdBQU4sQ0FBVTtFQUNyQkMsV0FBVyxDQUFDQyxLQUFELEVBQVFDLFFBQVIsRUFBa0JDLE1BQWxCLEVBQTBCQyxTQUExQixFQUFxQ0MsTUFBckMsRUFBNkNDLGVBQTdDLEVBQThEQyxVQUE5RCxFQUEwRUMsTUFBMUUsRUFBa0Y7SUFDekYsS0FBS0YsZUFBTCxHQUF1QkEsZUFBdkI7SUFDQSxLQUFLTCxLQUFMLEdBQWFBLEtBQWI7SUFDQSxLQUFLQyxRQUFMLEdBQWdCQSxRQUFoQjtJQUNBLEtBQUtDLE1BQUwsR0FBY0EsTUFBZDtJQUNBLEtBQUtFLE1BQUwsR0FBY0EsTUFBZDtJQUNBLEtB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 | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1dGlscyIsInJlcXVpcmUiLCJwcm9jZXNzIiwiX19yb29rb3V0X2JhY2tjaGFubmVsIiwiRGVidWdnZXJCYWNrY2hhbm5lbCIsIkNvbnRhaW5lck5hbWVzcGFjZSIsIk9iamVjdE5hbWVzcGFjZSIsIkpTT2JqZWN0TmFtZXNwYWNlIiwiQXVnIiwiY29uc3RydWN0b3IiLCJhdWdJZCIsImxvY2F0aW9uIiwiYWN0aW9uIiwiY29uZGl0aW9uIiwib3V0cHV0IiwidHJpZ2dlclNlcnZpY2VzIiwibWF4QXVnVGltZSIsImxpbWl0cyIsInN0YXR1cyIsImVuYWJsZWQiLCJfaGFzQmVlblJhdGVMaW1pdGVkIiwiX3dhcm5pbmdDYWNoZSIsIk1hcCIsIl9sb2dDYWNoZSIsInVuZGVmaW5lZCIsImxlbmd0aCIsInJhdGVMaW1pdGVyIiwiUmF0ZUxpbWl0ZXIiLCJleGVjdXRlZCIsImFkZEF1ZyIsImUiLCJtZXNzYWdlIiwibG9nZ2VyIiwiZXhjZXB0aW9uIiwic2V0RXJyb3IiLCJSb29rRXJyb3IiLCJyZW1vdmVBdWdUZW1wb3JhcmlseUFuZFJlYXBwbHlBZnRlckR1cmF0aW9uIiwiZHVyYXRpb24iLCJpbmZvIiwicmVtb3ZlQXVnVGVtcG9yYXJpbHkiLCJleGVjdXRlIiwic3RhY2siLCJleHRyYWN0ZWQiLCJzdGFydFRpbWUiLCJnZXRUaW1lSW5OYW5vc2Vjb25kcyIsImNoZWNrUmF0ZUxpbWl0IiwicmVjb3JkIiwidHJhY2UiLCJOb29wTmFtZXNwYWNlSW5zdGFuY2UiLCJjb25maWciLCJUcmFjaW5nIiwiRU5BQkxFRCIsInRyYWNlckluaXRpYWxpemVkIiwiVHJhY2VOYW1lc3BhY2VJbnN0YW5jZSIsIm5hbWVzcGFjZSIsInJlYWRLZXkiLCJKU1V0aWxzTmFtZXNwYWNlSW5zdGFuY2UiLCJQcm9jZXNzU3RhdGVOYW1lc3BhY2VJbnN0YW5jZSIsImV2YWx1YXRlIiwibXNnSWQiLCJ1dWlkNCIsInJlcGxhY2UiLCJkZWJ1ZyIsIndyaXRlQXR0cmlidXRlIiwiVXNlcldhcm5pbmdzIiwicmVtb3ZlQXVnZnJvbUluc3BlY3RvciIsIlJvb2tSdWxlTWF4RXhlY3V0aW9uVGltZVJlYWNoZWQiLCJyb29rRXJyb3IiLCJzaG91bGRTaWxlbmNlTG9nIiwic2V0QWN0aXZlIiwic2VuZFJ1bGVTdGF0dXMiLCJzZXRQZW5kaW5nIiwic2V0UmVtb3ZlZCIsImVycm9yIiwic2V0VW5rbm93biIsInNlbmRXYXJuaW5nIiwid2FybiIsImxvZ0NhY2hlIiwiaGFzIiwic2l6ZSIsInNldCIsImFsbG93IiwiYXJlVXNlck1lc3NhZ2VzRnVsbCIsIlJvb2tSdWxlUmF0ZUxpbWl0ZWQiLCJ3aW5kb3dfc2l6ZV9tcyIsIk5hbm9zZWNUb01pbGxpc2VjIiwid2luZG93X3NpemUiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXVncy9BdWcuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XHJcblxyXG5pbXBvcnQgUm9va0Vycm9yIGZyb20gXCIuLi9wcm9jZXNzb3IvUm9va0Vycm9yXCI7XHJcbmltcG9ydCB7Um9va1J1bGVNYXhFeGVjdXRpb25UaW1lUmVhY2hlZCwgUm9va1J1bGVSYXRlTGltaXRlZH0gZnJvbSBcIi4uL2V4Y2VwdGlvbnNcIjtcclxuXHJcbmltcG9ydCB7bG9nZ2VyfSBmcm9tIFwiLi4vbG9nZ2VyXCI7XHJcbmltcG9ydCBVc2VyV2FybmluZ3MgZnJvbSBcIi4uL1VzZXJXYXJuaW5nc1wiO1xyXG5pbXBvcnQgQ29udGFpbmVyTmFtZXNwYWNlIGZyb20gXCIuLi9wcm9jZXNzb3IvbmFtZXNwYWNlcy9Db250YWluZXJOYW1lc3BhY2VcIlxyXG5pbXBvcnQgeyBKU1V0aWxzTmFtZXNwYWNlSW5zdGFuY2UgfSBmcm9tIFwiLi4vcHJvY2Vzc29yL25hbWVzcGFjZXMvSlNVdGlsc05hbWVzcGFjZVwiXHJcbmltcG9ydCB7IE5vb3BOYW1lc3BhY2VJbnN0YW5jZSB9IGZyb20gXCIuLi9wcm9jZXNzb3IvbmFtZXNwYWNlcy9Ob29wTmFtZXNwYWNlXCJcclxuaW1wb3J0IHsgUHJvY2Vzc1N0YXRlTmFtZXNwYWNlSW5zdGFuY2UgfSBmcm9tIFwiLi4vcHJvY2Vzc29yL25hbWVzcGFjZXMvUHJvY2Vzc1N0YXRlTmFtZXNwYWNlXCJcclxuaW1wb3J0IHsgVHJhY2VOYW1lc3BhY2VJbnN0YW5jZSB9IGZyb20gXCIuLi9wcm9jZXNzb3IvbmFtZXNwYWNlcy9UcmFjZU5hbWVzcGFjZVwiO1xyXG5pbXBvcnQgeyB0cmFjZXJJbml0aWFsaXplZCB9IGZyb20gXCIuLi9UcmFjaW5nUGF0Y2hlclwiO1xyXG5pbXBvcnQgUmF0ZUxpbWl0ZXIgZnJvbSBcIi4vUmF0ZUxpbWl0ZXJcIjtcclxuaW1wb3J0IERlYnVnZ2VyQmFja2NoYW5uZWwgZnJvbSBcIi4uL3NlcnZpY2VzL0RlYnVnZ2VyQmFja2NoYW5uZWxcIjtcclxuaW1wb3J0IEpTT2JqZWN0TmFtZXNwYWNlIGZyb20gXCIuLi9wcm9jZXNzb3IvbmFtZXNwYWNlcy9KU09iamVjdE5hbWVzcGFjZVwiO1xyXG5jb25zdCB1dGlscyA9IHJlcXVpcmUoXCIuLi91dGlsc1wiKTtcclxuXHJcbmltcG9ydCB7IHY0IGFzIHV1aWQ0IH0gZnJvbSAndXVpZCc7XHJcbmltcG9ydCBjb25maWcgZnJvbSBcIi4uL2NvbmZpZ1wiO1xyXG5cclxucHJvY2Vzcy5fX3Jvb2tvdXRfYmFja2NoYW5uZWwgPSBuZXcgRGVidWdnZXJCYWNrY2hhbm5lbCgpO1xyXG5wcm9jZXNzLl9fcm9va291dF9iYWNrY2hhbm5lbC5Db250YWluZXJOYW1lc3BhY2UgPSBDb250YWluZXJOYW1lc3BhY2U7XHJcbnByb2Nlc3MuX19yb29rb3V0X2JhY2tjaGFubmVsLk9iamVjdE5hbWVzcGFjZSA9IEpTT2JqZWN0TmFtZXNwYWNlO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQXVnIHtcclxuICAgIGNvbnN0cnVjdG9yKGF1Z0lkLCBsb2NhdGlvbiwgYWN0aW9uLCBjb25kaXRpb24sIG91dHB1dCwgdHJpZ2dlclNlcnZpY2VzLCBtYXhBdWdUaW1lLCBsaW1pdHMpIHtcclxuICAgICAgICB0aGlzLnRyaWdnZXJTZXJ2aWNlcyA9IHRyaWdnZXJTZXJ2aWNlcztcclxuICAgICAgICB0aGlzLmF1Z0lkID0gYXVnSWQ7XHJcbiAgICAgICAgdGhpcy5sb2NhdGlvbiA9IGxvY2F0aW9uO1xyXG4gICAgICAgIHRoaXMuYWN0aW9uID0gYWN0aW9uO1xyXG4gICAgICAgIHRoaXMub3V0cHV0ID0gb3V0cHV0O1xyXG4gICAgICAgIHRoaXMuc3RhdHVzID0gbnVsbDtcclxuICAgICAgICB0aGlzLm1heEF1Z1RpbWUgPSBtYXhBdWdUaW1lO1xyXG4gICAgICAgIHRoaXMuZW5hYmxlZCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5jb25kaXRpb24gPSBjb25kaXRpb247XHJcbiAgICAgICAgdGhpcy5faGFzQmVlblJhdGVMaW1pdGVkID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5fd2FybmluZ0NhY2hlID0gbmV3IE1hcCgpO1xyXG4gICAgICAgIHRoaXMuX2xvZ0NhY2hlID0gbmV3IE1hcCgpO1xyXG5cclxuICAgICAgICBpZiAobGltaXRzICE9PSB1bmRlZmluZWQgJiYgbGltaXRzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgdGhpcy5yYXRlTGltaXRlciA9IG5ldyBSYXRlTGltaXRlcihsaW1pdHNbMF0sIGxpbWl0c1sxXSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5yYXRlTGltaXRlciA9IG5ldyBSYXRlTGltaXRlcigpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5leGVjdXRlZCA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGFkZEF1ZygpIHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICB0aGlzLmxvY2F0aW9uLmFkZEF1Zyh0aGlzLnRyaWdnZXJTZXJ2aWNlcywgdGhpcyk7XHJcbiAgICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICBjb25zdCBtZXNzYWdlID0gXCJFeGNlcHRpb24gd2hlbiBhZGRpbmcgYXVnXCI7XHJcbiAgICAgICAgICAgIGxvZ2dlci5leGNlcHRpb24obWVzc2FnZSwgZSk7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0RXJyb3IobmV3IFJvb2tFcnJvcihlLCBtZXNzYWdlKSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJlbW92ZUF1Z1RlbXBvcmFyaWx5QW5kUmVhcHBseUFmdGVyRHVyYXRpb24oZHVyYXRpb24pIHtcclxuICAgICAgICBsb2dnZXIuaW5mbyhcIlRlbXBvcmFyaWx5IHJlbW92aW5nIGF1ZyAlcyBmb3IgJXNtc1wiLCB0aGlzLmF1Z0lkLCBkdXJhdGlvbik7XHJcbiAgICAgICAgdGhpcy50cmlnZ2VyU2VydmljZXMucmVtb3ZlQXVnVGVtcG9yYXJpbHkodGhpcy5hdWdJZCwgZHVyYXRpb24pO1xyXG4gICAgfVxyXG5cclxuICAgIGV4ZWN1dGUoc3RhY2ssIGV4dHJhY3RlZCkge1xyXG4gICAgICAgIGlmICghdGhpcy5lbmFibGVkKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHN0YXJ0VGltZSA9IHV0aWxzLmdldFRpbWVJbk5hbm9zZWNvbmRzKCk7XHJcbiAgICAgICAgICAgIGlmICghdGhpcy5jaGVja1JhdGVMaW1pdChzdGFydFRpbWUpKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgZHVyYXRpb24gPSB1dGlscy5nZXRUaW1lSW5OYW5vc2Vjb25kcygpIC0gc3RhcnRUaW1lO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yYXRlTGltaXRlci5yZWNvcmQoc3RhcnRUaW1lLCBkdXJhdGlvbik7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGxldCB0cmFjZSA9IE5vb3BOYW1lc3BhY2VJbnN0YW5jZTtcclxuICAgICAgICAgICAgaWYgKGNvbmZpZy5UcmFjaW5nLkVOQUJMRUQgJiYgdHJhY2VySW5pdGlhbGl6ZWQpIHtcclxuICAgICAgICAgICAgICAgIHRyYWNlID0gVHJhY2VOYW1lc3BhY2VJbnN0YW5jZTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgbGV0IG5hbWVzcGFjZSA9IG5ldyBDb250YWluZXJOYW1lc3BhY2Uoe1xyXG4gICAgICAgICAgICAgICAgJ2ZyYW1lJzogc3RhY2sgPyBzdGFjay5yZWFkS2V5KDApIDogTm9vcE5hbWVzcGFjZUluc3RhbmNlLFxyXG4gICAgICAgICAgICAgICAgJ3N0YWNrJzogc3RhY2sgfHwgTm9vcE5hbWVzcGFjZUluc3RhbmNlLFxyXG4gICAgICAgICAgICAgICAgJ3V0aWxzJzogSlNVdGlsc05hbWVzcGFjZUluc3RhbmNlLFxyXG4gICAgICAgICAgICAgICAgJ3RyYWNlJzogdHJhY2UsXHJcbiAgICAgICAgICAgICAgICAnc3RhdGUnOiBQcm9jZXNzU3RhdGVOYW1lc3BhY2VJbnN0YW5jZSxcclxuICAgICAgICAgICAgICAgIFwiZXh0cmFjdGVkXCI6IGV4dHJhY3RlZFxyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLmNvbmRpdGlvbiAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuY29uZGl0aW9uLmV2YWx1YXRlKG5hbWVzcGFjZSkpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBkdXJhdGlvbiA9IHV0aWxzLmdldFRpbWVJbk5hbm9zZWNvbmRzKCkgLSBzdGFydFRpbWU7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yYXRlTGltaXRlci5yZWNvcmQoc3RhcnRUaW1lLCBkdXJhdGlvbik7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBjb25zdCBtc2dJZCA9IHV1aWQ0KCkucmVwbGFjZSgvXFwtL2csIFwiXCIpO1xyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMuZXhlY3V0ZWQpIHtcclxuICAgICAgICAgICAgICAgIGxvZ2dlci5kZWJ1ZyhcIkV4ZWN1dGluZyBhdWctXFx0JXMgKG1zZyBJRCAlcylcIiwgdGhpcy5hdWdJZCwgbXNnSWQpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgbG9nZ2VyLmluZm8oXCJFeGVjdXRpbmcgYXVnIGZvciB0aGUgZmlyc3QgdGltZSAtICVzXCIsIHRoaXMuYXVnSWQpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5leGVjdXRlZCA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIG5hbWVzcGFjZS53cml0ZUF0dHJpYnV0ZSgnc3RvcmUnLCBuZXcgQ29udGFpbmVyTmFtZXNwYWNlKHt9KSk7XHJcbiAgICAgICAgICAgIHRoaXMuYWN0aW9uLmV4ZWN1dGUodGhpcy5hdWdJZCwgbXNnSWQsIG5hbWVzcGFjZSwgdGhpcy5vdXRwdXQsIG5ldyBVc2VyV2FybmluZ3ModGhpcykpO1xyXG5cclxuICAgICAgICAgICAgbGV0IGR1cmF0aW9uID0gdXRpbHMuZ2V0VGltZUluTmFub3NlY29uZHMoKSAtIHN0YXJ0VGltZTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMucmF0ZUxpbWl0ZXIucmVjb3JkKHN0YXJ0VGltZSwgZHVyYXRpb24pO1xyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMubWF4QXVnVGltZSAmJiB0aGlzLm1heEF1Z1RpbWUgPiAwICYmIGR1cmF0aW9uID4gdGhpcy5tYXhBdWdUaW1lKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmVuYWJsZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHRoaXMudHJpZ2dlclNlcnZpY2VzLnJlbW92ZUF1Z2Zyb21JbnNwZWN0b3IodGhpcy5hdWdJZCk7XHJcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgUm9va1J1bGVNYXhFeGVjdXRpb25UaW1lUmVhY2hlZCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICBjb25zdCBtZXNzYWdlID0gXCJFeGNlcHRpb24gd2hpbGUgcHJvY2Vzc2luZyBBdWdcIjtcclxuICAgICAgICAgICAgbGV0IHJvb2tFcnJvciA9IG5ldyBSb29rRXJyb3IoZSwgbWVzc2FnZSk7XHJcblxyXG4gICAgICAgICAgICBpZiAoIXRoaXMuc2hvdWxkU2lsZW5jZUxvZyhyb29rRXJyb3IsIHRoaXMuX2xvZ0NhY2hlKSkge1xyXG4gICAgICAgICAgICAgICAgbG9nZ2VyLmV4Y2VwdGlvbihtZXNzYWdlLCBlKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhpcy5zZXRFcnJvcihyb29rRXJyb3IpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzZXRBY3RpdmUoKSB7XHJcbiAgICAgICAgdGhpcy5zZW5kUnVsZVN0YXR1cyhcIkFjdGl2ZVwiKTtcclxuICAgIH1cclxuXHJcbiAgICBzZXRQZW5kaW5nKCkge1xyXG4gICAgICAgIHRoaXMuc2VuZFJ1bGVTdGF0dXMoXCJQZW5kaW5nXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIHNldFJlbW92ZWQoKSB7XHJcbiAgICAgICAgdGhpcy5zZW5kUnVsZVN0YXR1cyhcIkRlbGV0ZWRcIik7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0RXJyb3IoZXJyb3IpIHtcclxuICAgICAgICB0aGlzLnNlbmRSdWxlU3RhdHVzKFwiRXJyb3JcIiwgZXJyb3IpO1xyXG4gICAgfVxyXG5cclxuICAgIHNldFVua25vd24oZXJyb3IpIHtcclxuICAgICAgICB0aGlzLnNlbmRSdWxlU3RhdHVzKFwiVW5rbm93blwiLCBlcnJvcik7XHJcbiAgICB9XHJcblxyXG4gICAgc2VuZFdhcm5pbmcoZXJyb3IpIHtcclxuICAgICAgICBpZiAodGhpcy5zaG91bGRTaWxlbmNlTG9nKGVycm9yLCB0aGlzLl93YXJuaW5nQ2FjaGUpKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxvZ2dlci53YXJuKGVycm9yLm1lc3NhZ2UpO1xyXG5cclxuICAgICAgICB0aGlzLm91dHB1dC5zZW5kV2FybmluZyh0aGlzLmF1Z0lkLCBlcnJvcik7XHJcbiAgICB9XHJcblxyXG4gICAgc2VuZFJ1bGVTdGF0dXMoc3RhdHVzLCBlcnJvcj1udWxsKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuc3RhdHVzID09PSBzdGF0dXMpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbG9nZ2VyLmluZm8oXCJVcGRhdGluZyBydWxlIHN0YXR1cyBmb3IgJXMgdG8gJXNcIiwgdGhpcy5hdWdJZCwgc3RhdHVzKTtcclxuXHJcbiAgICAgICAgdGhpcy5zdGF0dXMgPSBzdGF0dXM7XHJcbiAgICAgICAgdGhpcy5vdXRwdXQuc2VuZFJ1bGVTdGF0dXModGhpcy5hdWdJZCwgc3RhdHVzLCBlcnJvcik7XHJcbiAgICB9XHJcblxyXG4gICAgc2hvdWxkU2lsZW5jZUxvZyhlcnJvciwgbG9nQ2FjaGUpIHtcclxuICAgICAgICBpZiAobG9nQ2FjaGUuaGFzKGVycm9yLm1lc3NhZ2UpIHx8IGxvZ0NhY2hlLnNpemUgPj0gMTApIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsb2dDYWNoZS5zZXQoZXJyb3IubWVzc2FnZSwgdHJ1ZSk7XHJcblxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBjaGVja1JhdGVMaW1pdChzdGFydFRpbWUpIHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMucmF0ZUxpbWl0ZXIuYWxsb3coc3RhcnRUaW1lKSB8fCB0aGlzLm91dHB1dC5hcmVVc2VyTWVzc2FnZXNGdWxsKCkpIHtcclxuICAgICAgICAgICAgICAgIGlmICghdGhpcy5faGFzQmVlblJhdGVMaW1pdGVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZW5kV2FybmluZyhuZXcgUm9va0Vycm9yKG5ldyBSb29rUnVsZVJhdGVMaW1pdGVkKCkpKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9oYXNCZWVuUmF0ZUxpbWl0ZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLy8gcmVtb3ZlQXVnVGVtcG9yYXJpbHlBbmRSZWFwcGx5QWZ0ZXJEdXJhdGlvbiBleHBlY3RzIHRvIGdldCBhIGR1cmF0aW9uIG9mIHRpbWVvdXQgaW4gbWlsbGlzZWNvbmRzXHJcbiAgICAgICAgICAgICAgICAvLyBhbmQgd2luZG93X3NpemUgaXMgY3VycmVudGx5IGluIG5hbm9zZWNvbmRzXHJcbiAgICAgICAgICAgICAgICBsZXQgd2luZG93X3NpemVfbXMgPSB1dGlscy5OYW5vc2VjVG9NaWxsaXNlYyh0aGlzLnJhdGVMaW1pdGVyLndpbmRvd19zaXplKTtcclxuICAgICAgICAgICAgICAgIHRoaXMucmVtb3ZlQXVnVGVtcG9yYXJpbHlBbmRSZWFwcGx5QWZ0ZXJEdXJhdGlvbih3aW5kb3dfc2l6ZV9tcyAvIDIpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztBQUVBOztBQUNBOztBQUVBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUdBOztBQUNBOzs7O0FBSEEsTUFBTUEsS0FBSyxHQUFHQyxPQUFPLENBQUMsVUFBRCxDQUFy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 |
@@ -190,4 +190,4 @@ "use strict"; | ||
return { | ||
"version": "0.82.0", | ||
"commit": "4701dbdc5052ba5d77a163e7a7dcb3972e839375" | ||
"version": "0.83.0", | ||
"commit": "0be873a8fb03294f9d08cdcc7bb9ae51f275185f" | ||
}; | ||
@@ -194,0 +194,0 @@ } |
@@ -19,4 +19,4 @@ "use strict"; | ||
this.VersionConfiguration = { | ||
VERSION: "0.82.0", | ||
COMMIT: "4701dbdc5052ba5d77a163e7a7dcb3972e839375" | ||
VERSION: "0.83.0", | ||
COMMIT: "0be873a8fb03294f9d08cdcc7bb9ae51f275185f" | ||
}; | ||
@@ -23,0 +23,0 @@ this.ControllerAddress = { |
{ | ||
"name": "rookout", | ||
"commit": "4701dbdc5052ba5d77a163e7a7dcb3972e839375", | ||
"version": "0.82.0", | ||
"commit": "0be873a8fb03294f9d08cdcc7bb9ae51f275185f", | ||
"version": "0.83.0", | ||
"description": "Rook is a package for on the fly debugging and data extraction for applications in production", | ||
"main": "index.js", | ||
"exports": { | ||
".": "./index.js", | ||
"./rookout-start": "./rookout.js", | ||
"./lambda": "./lambda.js" | ||
}, | ||
"types": "types/index.d.ts", | ||
@@ -13,0 +8,0 @@ "directories": { |
@@ -228,3 +228,3 @@ "use strict"; | ||
removeAug(augId) { | ||
removeAug(augId, removeFromPositions = true) { | ||
if (!this.positions.hasOwnProperty(augId)) { | ||
@@ -241,7 +241,9 @@ return; | ||
for (let aug of currentAugs) { | ||
if (aug.augId === augId) { | ||
augsToDelete.push(aug); | ||
} else { | ||
augsToKeep.push(aug); | ||
if (currentAugs != null) { | ||
for (let aug of currentAugs) { | ||
if (aug.augId === augId) { | ||
augsToDelete.push(aug); | ||
} else { | ||
augsToKeep.push(aug); | ||
} | ||
} | ||
@@ -256,11 +258,17 @@ } // Update list | ||
delete this.breakpoints[pos.key]; | ||
} // Update status | ||
} | ||
if (removeFromPositions) { | ||
// Update status | ||
for (let aug of augsToDelete) { | ||
aug.setRemoved(); | ||
} // Remove from position list | ||
for (let aug of augsToDelete) { | ||
aug.setRemoved(); | ||
} // Remove from position list | ||
delete this.positions[augId]; | ||
} | ||
} | ||
delete this.positions[augId]; | ||
removeAugfromInspector(augId) { | ||
this.removeAug(augId, false); | ||
} | ||
@@ -361,2 +369,6 @@ | ||
removeAugfromInspector(augId) { | ||
this.augsHolder.removeAugfromInspector(augId); | ||
} | ||
async clearAugs() { | ||
@@ -434,2 +446,2 @@ if (null !== this.augsHolder) { | ||
exports.DebuggerService = DebuggerService; | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJhc3NlcnQiLCJyZXF1aXJlIiwicGF0aCIsImNvbmZpZyIsIlBvcyIsImNvbnN0cnVjdG9yIiwiZmlsZW5hbWUiLCJsaW5lbm8iLCJjb2x1bW4iLCJrZXkiLCJTY3JpcHROb3RpZmllciIsInBlbmRpbmdOb3RpZmljYXRpb25zIiwic2NyaXB0cyIsImdldEFsbE1hdGNoSW5mb0J5Tm90aWZpY2F0aW9uIiwibm90aWZpY2F0aW9uIiwibWF0Y2hlc0luZm9zIiwic2NyaXB0SWQiLCJPYmplY3QiLCJrZXlzIiwic2NyaXB0IiwibWF0Y2hJbmZvIiwiZ2V0TWF0Y2hJbmZvIiwicHVzaCIsImdldFNjcmlwdE9iamVjdEJ5SWQiLCJoYXNPd25Qcm9wZXJ0eSIsInJlZ2lzdGVyTm90aWZpY2F0aW9uIiwiYXVnIiwiZmlsZUhhc2giLCJpbmNsdWRlRXh0ZXJuYWxzIiwibGluZUNyYzMyIiwibGluZVVuaXF1ZSIsImNhbGxiYWNrIiwicmVtb3ZlZCIsImNhbm9uaXplRmlsZU5hbWUiLCJhdWdJZCIsInVzZXJXYXJuaW5ncyIsIlVzZXJXYXJuaW5ncyIsImV4ZWN1dGUiLCJtYXRjaEluZm9zIiwibGVuZ3RoIiwibWF0Y2hlZEZpbGVuYW1lIiwiZ2V0TWF0Y2hlZEZpbGVuYW1lIiwiYmFzZW5hbWUiLCJzZW5kV2FybmluZyIsIlJvb2tFcnJvciIsIlJvb2tTb3VyY2VGaWxlUGF0aFN1Z2dlc3Rpb24iLCJhZGRTY3JpcHQiLCJzb3VyY2UiLCJzb3VyY2VNYXBVUkwiLCJzY3JpcHRXcmFwcGVyIiwiU2NyaXB0V3JhcHBlciIsInJlbW92ZUF1ZyIsInVuZGVmaW5lZCIsImNsZWFyQXVncyIsImF1Z0lkcyIsIkF1Z3NIb2xkZXIiLCJkZWJ1ZyIsImJyZWFrcG9pbnRzIiwicG9zaXRpb25zIiwidGltZXJzIiwic2V0RGVidWciLCJleGVjdXRlQXVncyIsInBvcyIsInN0YWNrIiwiYXVncyIsImxvZ2dlciIsImVycm9yIiwiYWRkQXVnIiwiaW5mbyIsInNldEJyZWFrIiwic2V0QWN0aXZlIiwicmVtb3ZlQXVnVGVtcG9yYXJpbHkiLCJkdXJhdGlvbiIsImNsZWFyQnJlYWsiLCJjbGVhclRpbWVvdXQiLCJzZXRUaW1lb3V0IiwiY3VycmVudEF1Z3MiLCJlIiwibWVzc2FnZSIsImV4Y2VwdGlvbiIsInVucmVmIiwiYXVnc1RvS2VlcCIsImF1Z3NUb0RlbGV0ZSIsInNldFJlbW92ZWQiLCJjbGVhckFsbEJyZWFrcyIsImlzRW1wdHkiLCJEZWJ1Z2dlclNlcnZpY2UiLCJJU2VydmljZSIsImF1Z3NIb2xkZXIiLCJzY3JpcHROb3RpZmllciIsImNsb3NpbmciLCJwZXJtYW5lbnRseV9jbG9zZWQiLCJjbG9zZVRpbWVvdXQiLCJjbG9zZSIsInBlcm1hbmVudCIsInNlbmRSdWxlU3RhdHVzIiwiUm9va0RlYnVnZ2VyUGVybWFuZW50bHlDbG9zZWRFeGNlcHRpb24iLCJzdGFydCIsIm5vdEVxdWFsIiwiY2xvc2VJZk5lZWRlZCIsImZpbmFsaXplQ2xvc2VUaW1lb3V0IiwiZ2V0RGVidWdnZXIiLCJIZWFwU25hcHNob3RDb25maWd1cmF0aW9uIiwiSEVBUF9QQVRIIiwiU0lHTkFMIiwicHJvY2VzcyIsIm9uIiwiZGF0ZSIsIkRhdGUiLCJ0b0lTT1N0cmluZyIsImhlYXBEdW1wIiwiV0FJVF9TRUNPTkRTX1RPX0NMT1NFX0RFQlVHR0VSX0FGVEVSX05PX0FVR1MiLCJJU19ERVBSRUNBVEVEIiwiUm9va1Vuc3VwcG9ydGVkT2xkTm9kZVZlcnNpb24iLCJ2ZXJzaW9uIiwiSVNfU1VQUE9SVEVEIiwiUm9va1Vuc3VwcG9ydGVkTm9kZVZlcnNpb24iLCJJbnNwZWN0b3JEZWJ1ZyIsImJpbmQiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvRGVidWdnZXJTZXJ2aWNlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xyXG5cclxuaW1wb3J0IFJvb2tFcnJvciBmcm9tICcuLi9wcm9jZXNzb3IvUm9va0Vycm9yJ1xyXG5cclxuY29uc3QgYXNzZXJ0ID0gcmVxdWlyZSgnYXNzZXJ0Jyk7XHJcbmNvbnN0IHBhdGggPSByZXF1aXJlKCdwYXRoJyk7XHJcblxyXG5pbXBvcnQge2Nhbm9uaXplRmlsZU5hbWV9IGZyb20gXCIuLi91dGlsc1wiO1xyXG5pbXBvcnQgU2NyaXB0V3JhcHBlciBmcm9tIFwiLi9TY3JpcHRXcmFwcGVyXCI7XHJcbmltcG9ydCB7IFJvb2tTb3VyY2VGaWxlUGF0aFN1Z2dlc3Rpb24sIFJvb2tEZWJ1Z2dlclBlcm1hbmVudGx5Q2xvc2VkRXhjZXB0aW9uIH0gZnJvbSAnLi4vZXhjZXB0aW9ucyc7XHJcblxyXG5pbXBvcnQge2xvZ2dlcn0gZnJvbSBcIi4uL2xvZ2dlclwiO1xyXG5pbXBvcnQgVXNlcldhcm5pbmdzIGZyb20gJy4uL1VzZXJXYXJuaW5ncyc7XHJcbmNvbnN0IGNvbmZpZyA9IHJlcXVpcmUoJy4uL2NvbmZpZycpO1xyXG5cclxuaW1wb3J0IHtSb29rVW5zdXBwb3J0ZWROb2RlVmVyc2lvbixSb29rVW5zdXBwb3J0ZWRPbGROb2RlVmVyc2lvbn0gZnJvbSBcIi4uL2V4Y2VwdGlvbnNcIjtcclxuaW1wb3J0IHtJU2VydmljZX0gZnJvbSBcIi4vSVNlcnZpY2VcIjtcclxuXHJcbi8vIE5vdGU6IHRoaXMgaXMgYSBiaXQgb2YgYSBoZWNrIHRoYXQgaXMgdXNlZCBieSBWOERlYnVnIGFzIHdlbGxcclxuY2xhc3MgUG9zIHtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihmaWxlbmFtZSwgbGluZW5vLCBjb2x1bW4pIHtcclxuICAgICAgICB0aGlzLmZpbGVuYW1lID0gZmlsZW5hbWU7XHJcbiAgICAgICAgdGhpcy5saW5lbm8gPSBsaW5lbm87XHJcbiAgICAgICAgdGhpcy5jb2x1bW4gPSBjb2x1bW47XHJcblxyXG4gICAgICAgIHRoaXMua2V5ID0gdGhpcy5maWxlbmFtZSArIFwiQFwiICsgdGhpcy5saW5lbm8gKyBcIkBcIiArIHRoaXMuY29sdW1uO1xyXG4gICAgfVxyXG59XHJcblxyXG5jbGFzcyBTY3JpcHROb3RpZmllciB7XHJcblxyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgdGhpcy5wZW5kaW5nTm90aWZpY2F0aW9ucyA9IHt9O1xyXG5cclxuICAgICAgICB0aGlzLnNjcmlwdHMgPSB7fTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRBbGxNYXRjaEluZm9CeU5vdGlmaWNhdGlvbihub3RpZmljYXRpb24pIHtcclxuICAgICAgICBsZXQgbWF0Y2hlc0luZm9zID0gW107XHJcbiAgICAgICAgZm9yIChsZXQgc2NyaXB0SWQgb2YgT2JqZWN0LmtleXModGhpcy5zY3JpcHRzKSkge1xyXG4gICAgICAgICAgICBjb25zdCBzY3JpcHQgPSB0aGlzLnNjcmlwdHNbc2NyaXB0SWRdO1xyXG4gICAgICAgICAgICBjb25zdCBtYXRjaEluZm8gPSBzY3JpcHQuZ2V0TWF0Y2hJbmZvKG5vdGlmaWNhdGlvbik7XHJcbiAgICAgICAgICAgIGlmIChudWxsICE9PSBtYXRjaEluZm8pIHtcclxuICAgICAgICAgICAgICAgIG1hdGNoZXNJbmZvcy5wdXNoKG1hdGNoSW5mbyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBtYXRjaGVzSW5mb3M7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0U2NyaXB0T2JqZWN0QnlJZChzY3JpcHRJZCkge1xyXG4gICAgICAgIGlmICh0aGlzLnNjcmlwdHMuaGFzT3duUHJvcGVydHkoc2NyaXB0SWQpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnNjcmlwdHNbc2NyaXB0SWRdO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZWdpc3Rlck5vdGlmaWNhdGlvbihhdWcsIGZpbGVuYW1lLCBmaWxlSGFzaCwgaW5jbHVkZUV4dGVybmFscywgbGluZW5vLCBsaW5lQ3JjMzIsIGxpbmVVbmlxdWUsICBjYWxsYmFjaywgcmVtb3ZlZCkge1xyXG4gICAgICAgIGZpbGVuYW1lID0gY2Fub25pemVGaWxlTmFtZShmaWxlbmFtZSk7XHJcblxyXG4gICAgICAgIHRoaXMucGVuZGluZ05vdGlmaWNhdGlvbnNbYXVnLmF1Z0lkXSA9IHtcclxuICAgICAgICAgICAgdXNlcldhcm5pbmdzOiBuZXcgVXNlcldhcm5pbmdzKGF1ZyksXHJcbiAgICAgICAgICAgIGZpbGVuYW1lOiBmaWxlbmFtZSxcclxuICAgICAgICAgICAgaW5jbHVkZUV4dGVybmFsczogaW5jbHVkZUV4dGVybmFscyxcclxuICAgICAgICAgICAgZXhlY3V0ZSA6IGNhbGxiYWNrLFxyXG4gICAgICAgICAgICByZW1vdmVkIDogcmVtb3ZlZCxcclxuICAgICAgICAgICAgZmlsZUhhc2g6IGZpbGVIYXNoLFxyXG4gICAgICAgICAgICBsaW5lbm86IGxpbmVubyxcclxuICAgICAgICAgICAgbGluZUNyYzMyOiBsaW5lQ3JjMzIsXHJcbiAgICAgICAgICAgIGxpbmVVbmlxdWU6IGxpbmVVbmlxdWVcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICBjb25zdCBtYXRjaEluZm9zID0gdGhpcy5nZXRBbGxNYXRjaEluZm9CeU5vdGlmaWNhdGlvbih0aGlzLnBlbmRpbmdOb3RpZmljYXRpb25zW2F1Zy5hdWdJZF0pO1xyXG4gICAgICAgIGlmIChtYXRjaEluZm9zLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgZm9yIChsZXQgbWF0Y2hJbmZvIG9mIG1hdGNoSW5mb3MpIHtcclxuICAgICAgICAgICAgICAgIGNhbGxiYWNrKG1hdGNoSW5mbyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBmb3IgKGxldCBzY3JpcHRJZCBvZiBPYmplY3Qua2V5cyh0aGlzLnNjcmlwdHMpKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBUT0RPIC0gbXVjaCBvZiB0aGlzIGxvZ2ljIGlzIGR1cGxpY2F0ZWQgd2l0aCBcInN0YW5kYXJkXCIgc2Nhbm5pbmcgaW4gU2NyaXB0V3JhcHBlciBhbmQgc2hvdWxkIGJlIG1vdmVkIHRoZXJlXHJcbiAgICAgICAgICAgICAgICBjb25zdCBzY3JpcHQgPSB0aGlzLnNjcmlwdHNbc2NyaXB0SWRdO1xyXG5cclxuICAgICAgICAgICAgICAgIGxldCBtYXRjaGVkRmlsZW5hbWUgPSBzY3JpcHQuZ2V0TWF0Y2hlZEZpbGVuYW1lKHBhdGguYmFzZW5hbWUoZmlsZW5hbWUpLCBmaWxlSGFzaCk7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKG1hdGNoZWRGaWxlbmFtZSAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGF1Zy5zZW5kV2FybmluZyhuZXcgUm9va0Vycm9yKG5ldyBSb29rU291cmNlRmlsZVBhdGhTdWdnZXN0aW9uKGZpbGVuYW1lLCBtYXRjaGVkRmlsZW5hbWUpKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgYWRkU2NyaXB0KHNjcmlwdElkLCBmaWxlbmFtZSwgc291cmNlLCBzb3VyY2VNYXBVUkwpIHtcclxuICAgICAgICBpZiAobnVsbCA9PSBmaWxlbmFtZSB8fCBcIlwiID09PSBmaWxlbmFtZSB8fCB0aGlzLnNjcmlwdHMuaGFzT3duUHJvcGVydHkoc2NyaXB0SWQpKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IHNjcmlwdFdyYXBwZXIgPSBuZXcgU2NyaXB0V3JhcHBlcihzY3JpcHRJZCwgZmlsZW5hbWUsIHNvdXJjZSwgc291cmNlTWFwVVJMKTtcclxuXHJcbiAgICAgICAgZm9yIChsZXQgYXVnSWQgb2YgT2JqZWN0LmtleXModGhpcy5wZW5kaW5nTm90aWZpY2F0aW9ucykpIHtcclxuICAgICAgICAgICAgbGV0IG5vdGlmaWNhdGlvbiA9IHRoaXMucGVuZGluZ05vdGlmaWNhdGlvbnNbYXVnSWRdO1xyXG4gICAgICAgICAgICBjb25zdCBtYXRjaEluZm8gPSBzY3JpcHRXcmFwcGVyLmdldE1hdGNoSW5mbyhub3RpZmljYXRpb24pO1xyXG4gICAgICAgICAgICBpZiAobnVsbCAhPT0gbWF0Y2hJbmZvKSB7XHJcbiAgICAgICAgICAgICAgICBub3RpZmljYXRpb24uZXhlY3V0ZShtYXRjaEluZm8pO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgbGV0IG1hdGNoZWRGaWxlbmFtZSA9IHNjcmlwdFdyYXBwZXIuZ2V0TWF0Y2hlZEZpbGVuYW1lKHBhdGguYmFzZW5hbWUobm90aWZpY2F0aW9uLmZpbGVuYW1lKSwgbm90aWZpY2F0aW9uLmZpbGVIYXNoKTtcclxuICAgICAgICAgICAgICAgIGlmIChtYXRjaGVkRmlsZW5hbWUgIT09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgICAgICBub3RpZmljYXRpb24udXNlcldhcm5pbmdzLnNlbmRXYXJuaW5nKG5ldyBSb29rRXJyb3IobmV3IFJvb2tTb3VyY2VGaWxlUGF0aFN1Z2dlc3Rpb24obm90aWZpY2F0aW9uLmZpbGVuYW1lLCBtYXRjaGVkRmlsZW5hbWUpKSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuc2NyaXB0c1tzY3JpcHRJZF0gPSBzY3JpcHRXcmFwcGVyO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbW92ZUF1ZyhhdWdJZCkge1xyXG4gICAgICAgIGxldCBub3RpZmljYXRpb24gPSB0aGlzLnBlbmRpbmdOb3RpZmljYXRpb25zW2F1Z0lkXTtcclxuICAgICAgICBpZiAodW5kZWZpbmVkICE9PSBub3RpZmljYXRpb24pIHtcclxuICAgICAgICAgICAgbm90aWZpY2F0aW9uLnJlbW92ZWQoKTtcclxuICAgICAgICAgICAgZGVsZXRlIHRoaXMucGVuZGluZ05vdGlmaWNhdGlvbnNbYXVnSWRdO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBjbGVhckF1Z3MoKSB7XHJcbiAgICAgICAgbGV0IGF1Z0lkcyA9IE9iamVjdC5rZXlzKHRoaXMucGVuZGluZ05vdGlmaWNhdGlvbnMpO1xyXG4gICAgICAgIGZvciAobGV0IGF1Z0lkIG9mIGF1Z0lkcykge1xyXG4gICAgICAgICAgICB0aGlzLnJlbW92ZUF1ZyhhdWdJZCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnBlbmRpbmdOb3RpZmljYXRpb25zID0ge307XHJcbiAgICB9XHJcbn1cclxuXHJcbmNsYXNzIEF1Z3NIb2xkZXIge1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgICAgIHRoaXMuZGVidWcgPSBudWxsO1xyXG5cclxuICAgICAgICB0aGlzLmJyZWFrcG9pbnRzID0ge307XHJcbiAgICAgICAgdGhpcy5wb3NpdGlvbnMgPSB7fTtcclxuICAgICAgICB0aGlzLnRpbWVycyA9IHt9O1xyXG4gICAgfVxyXG5cclxuICAgIHNldERlYnVnKGRlYnVnKSB7XHJcbiAgICAgICAgdGhpcy5kZWJ1ZyA9IGRlYnVnO1xyXG4gICAgfVxyXG5cclxuICAgIGV4ZWN1dGVBdWdzKHBvcywgc3RhY2spIHtcclxuICAgICAgICBsZXQgYXVncyA9IHRoaXMuYnJlYWtwb2ludHNbcG9zLmtleV07XHJcblxyXG4gICAgICAgIGlmICghYXVncykge1xyXG4gICAgICAgICAgICBsb2dnZXIuZXJyb3IoXCJBdWcgbm90IGZvdW5kISAlc0AlZFwiLCBwb3MuZmlsZW5hbWUsIHBvcy5saW5lbm8pXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZm9yIChsZXQgYXVnIG9mIGF1Z3MpIHtcclxuICAgICAgICAgICAgICAgIGF1Zy5leGVjdXRlKHN0YWNrKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBhZGRBdWcoZmlsZW5hbWUsIGxpbmVubywgY29sdW1uLCBhdWcpIHtcclxuICAgICAgICBsb2dnZXIuaW5mbyhcIlNldHRpbmcgYnJlYWtwb2ludCBhdCAlczolczolc1wiLCBmaWxlbmFtZSwgbGluZW5vLCBjb2x1bW4pO1xyXG5cclxuICAgICAgICBsZXQgcG9zID0gbmV3IFBvcyhjYW5vbml6ZUZpbGVOYW1lKGZpbGVuYW1lKSwgbGluZW5vLCBjb2x1bW4pO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5icmVha3BvaW50cy5oYXNPd25Qcm9wZXJ0eShwb3Mua2V5KSkge1xyXG4gICAgICAgICAgICB0aGlzLmJyZWFrcG9pbnRzW3Bvcy5rZXldLnB1c2goYXVnKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmRlYnVnLnNldEJyZWFrKHBvcyk7XHJcbiAgICAgICAgICAgIHRoaXMuYnJlYWtwb2ludHNbcG9zLmtleV09IFthdWddO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5wb3NpdGlvbnNbYXVnLmF1Z0lkXSA9IHBvcztcclxuICAgICAgICBhdWcuc2V0QWN0aXZlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVtb3ZlQXVnVGVtcG9yYXJpbHkoYXVnSWQsIGR1cmF0aW9uKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnBvc2l0aW9ucy5oYXNPd25Qcm9wZXJ0eShhdWdJZCkpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gV2UgcmVtb3ZlIEFMTCBicmVha3BvaW50cyBmcm9tIHRoYXQgcG9zaXRpb25cclxuICAgICAgICBjb25zdCBwb3MgPSB0aGlzLnBvc2l0aW9uc1thdWdJZF07XHJcbiAgICAgICAgdGhpcy5kZWJ1Zy5jbGVhckJyZWFrKHBvcyk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLnRpbWVyc1twb3Mua2V5XSAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLnRpbWVyc1twb3Mua2V5XSk7XHJcbiAgICAgICAgICAgIGRlbGV0ZSB0aGlzLnRpbWVyc1twb3Mua2V5XTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMudGltZXJzW3Bvcy5rZXldID0gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICAvLyBDaGVjayBpZiB3ZSBzdGlsbCBoYXZlIGF1Z3MgaW4gdGhhdCBwb3NpdGlvbiBhZnRlciB0aGUgdGltZW91dFxyXG4gICAgICAgICAgICAgICAgY29uc3QgY3VycmVudEF1Z3MgPSB0aGlzLmJyZWFrcG9pbnRzW3Bvcy5rZXldO1xyXG4gICAgICAgICAgICAgICAgaWYgKHVuZGVmaW5lZCA9PT0gY3VycmVudEF1Z3MgfHwgMCA9PT0gY3VycmVudEF1Z3MubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGxvZ2dlci5pbmZvKFwiUmUtYWRkaW5nIGF1ZyAlcyBhZnRlciAlc21zXCIsIGF1Z0lkLCBkdXJhdGlvbik7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmRlYnVnLnNldEJyZWFrKHBvcyk7XHJcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbWVzc2FnZSA9IFwiRXhjZXB0aW9uIHdoZW4gYWRkaW5nIGF1ZyBiYWNrXCI7XHJcbiAgICAgICAgICAgICAgICAgICAgbG9nZ2VyLmV4Y2VwdGlvbihtZXNzYWdlLCBlKTtcclxuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBmaW5hbGx5IHtcclxuICAgICAgICAgICAgICAgIGRlbGV0ZSB0aGlzLnRpbWVyc1twb3Mua2V5XTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0sIGR1cmF0aW9uKTtcclxuICAgICAgICB0aGlzLnRpbWVyc1twb3Mua2V5XS51bnJlZigpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbW92ZUF1ZyhhdWdJZCkge1xyXG4gICAgICAgIGlmICghdGhpcy5wb3NpdGlvbnMuaGFzT3duUHJvcGVydHkoYXVnSWQpKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIEdldCBjdXJyZW50IGF1Z3MgaW4gcG9zaXRpb25cclxuICAgICAgICBsZXQgcG9zID0gdGhpcy5wb3NpdGlvbnNbYXVnSWRdO1xyXG5cclxuICAgICAgICBsZXQgY3VycmVudEF1Z3MgPSB0aGlzLmJyZWFrcG9pbnRzW3Bvcy5rZXldO1xyXG5cclxuICAgICAgICAvLyBEaXZpZGUgYXVncyBpbnRvIGRlbGV0ZSBhbmQga2VlcFxyXG4gICAgICAgIGxldCBhdWdzVG9LZWVwID0gW107XHJcbiAgICAgICAgbGV0IGF1Z3NUb0RlbGV0ZSA9IFtdO1xyXG4gICAgICAgIGZvciAobGV0IGF1ZyBvZiBjdXJyZW50QXVncykge1xyXG4gICAgICAgICAgICBpZiAoYXVnLmF1Z0lkID09PSBhdWdJZCkge1xyXG4gICAgICAgICAgICAgICAgYXVnc1RvRGVsZXRlLnB1c2goYXVnKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGF1Z3NUb0tlZXAucHVzaChhdWcpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBVcGRhdGUgbGlzdFxyXG4gICAgICAgIGlmIChhdWdzVG9LZWVwLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgdGhpcy5icmVha3BvaW50c1twb3Mua2V5XSA9IGF1Z3NUb0tlZXA7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5kZWJ1Zy5jbGVhckJyZWFrKHBvcyk7XHJcbiAgICAgICAgICAgIGRlbGV0ZSB0aGlzLmJyZWFrcG9pbnRzW3Bvcy5rZXldO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gVXBkYXRlIHN0YXR1c1xyXG4gICAgICAgIGZvciAobGV0IGF1ZyBvZiBhdWdzVG9EZWxldGUpIHtcclxuICAgICAgICAgICAgYXVnLnNldFJlbW92ZWQoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIFJlbW92ZSBmcm9tIHBvc2l0aW9uIGxpc3RcclxuICAgICAgICBkZWxldGUgdGhpcy5wb3NpdGlvbnNbYXVnSWRdO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGNsZWFyQXVncygpIHtcclxuICAgICAgICBsZXQgYXVnSWRzID0gT2JqZWN0LmtleXModGhpcy5wb3NpdGlvbnMpO1xyXG4gICAgICAgIGZvciAobGV0IGF1Z0lkIG9mIGF1Z0lkcykge1xyXG4gICAgICAgICAgICB0aGlzLnJlbW92ZUF1ZyhhdWdJZCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmJyZWFrcG9pbnRzID0ge307XHJcbiAgICAgICAgdGhpcy5wb3NpdGlvbnMgPSB7fTtcclxuICAgICAgICBhd2FpdCB0aGlzLmRlYnVnLmNsZWFyQWxsQnJlYWtzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgaXNFbXB0eSgpIHtcclxuICAgICAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy5wb3NpdGlvbnMpLmxlbmd0aCA9PT0gMDtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIERlYnVnZ2VyU2VydmljZSBleHRlbmRzIElTZXJ2aWNlIHtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIHRoaXMuZGVidWcgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuYXVnc0hvbGRlciA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5zY3JpcHROb3RpZmllciA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5jbG9zaW5nID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5wZXJtYW5lbnRseV9jbG9zZWQgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgdGhpcy5jbG9zZVRpbWVvdXQgPSBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGNsb3NlKHBlcm1hbmVudD1mYWxzZSkge1xyXG4gICAgICAgIGlmIChwZXJtYW5lbnQpIHtcclxuICAgICAgICAgICAgdGhpcy5wZXJtYW5lbnRseV9jbG9zZWQgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMuY2xvc2luZykge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuY2xvc2luZyA9IHRydWU7XHJcblxyXG4gICAgICAgIGF3YWl0IHRoaXMuY2xlYXJBdWdzKCk7XHJcblxyXG4gICAgICAgIGlmIChudWxsICE9PSB0aGlzLmRlYnVnKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGRlYnVnID0gdGhpcy5kZWJ1ZztcclxuICAgICAgICAgICAgdGhpcy5kZWJ1ZyA9IG51bGw7XHJcbiAgICAgICAgICAgIGF3YWl0IGRlYnVnLmNsb3NlKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmNsb3NpbmcgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBhZGRBdWcobWF0Y2hJbmZvLCBhdWcpIHtcclxuICAgICAgICBpZiAodGhpcy5wZXJtYW5lbnRseV9jbG9zZWQpIHtcclxuICAgICAgICAgICAgYXVnLnNlbmRSdWxlU3RhdHVzKFwiRXJyb3JcIiwgbmV3IFJvb2tFcnJvcihuZXcgUm9va0RlYnVnZ2VyUGVybWFuZW50bHlDbG9zZWRFeGNlcHRpb24oKSkpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnN0YXJ0KCk7XHJcblxyXG4gICAgICAgIC8vIE5vdGUtIHRoaXMgaXMgYSBoYWNrIHVzZWQgdG8gc2ltcGxpZnkgdGVzdGluZywgaXQgY3JlYXRlcyBhIG1hdGNoSW5mbyBmb3IgbWF0Y2hJbmZvID09PSBub3RpZmljYXRpb24gaW4gdGVzdHMsXHJcbiAgICAgICAgLy8gbWF0Y2hJbmZvIHNob3VsZCBub3QgaG9sZCBsaW5lVW5pcXVlIGluIHByb2R1Y3Rpb25cclxuICAgICAgICBpZiAobWF0Y2hJbmZvLmxpbmVVbmlxdWUgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICBtYXRjaEluZm8gPSB0aGlzLnNjcmlwdE5vdGlmaWVyLmdldEFsbE1hdGNoSW5mb0J5Tm90aWZpY2F0aW9uKG1hdGNoSW5mbylbMF07XHJcbiAgICAgICAgICAgIGFzc2VydC5ub3RFcXVhbChtYXRjaEluZm8sIHVuZGVmaW5lZCwgXCJTY3JpcHQgbm90IGZvdW5kXCIpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5hdWdzSG9sZGVyLmFkZEF1ZyhtYXRjaEluZm8uc2NyaXB0LmZpbGVuYW1lLCBtYXRjaEluZm8ubGluZW5vLCBtYXRjaEluZm8uY29sdW1uLCBhdWcpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlZ2lzdGVyTm90aWZpY2F0aW9uKGF1ZywgZmlsZW5hbWUsIGZpbGVIYXNoLCBpbmNsdWRlRXh0ZXJuYWxzLCBsaW5lbm8sIGxpbmVDcmMzMiwgbGluZVVuaXF1ZSwgY2FsbGJhY2ssIHJlbW92ZWQpIHtcclxuICAgICAgICBpZiAodGhpcy5wZXJtYW5lbnRseV9jbG9zZWQpIHtcclxuICAgICAgICAgICAgYXVnLnNlbmRSdWxlU3RhdHVzKFwiRXJyb3JcIiwgbmV3IFJvb2tFcnJvcihuZXcgUm9va0RlYnVnZ2VyUGVybWFuZW50bHlDbG9zZWRFeGNlcHRpb24oKSkpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnN0YXJ0KCk7XHJcblxyXG4gICAgICAgIHRoaXMuc2NyaXB0Tm90aWZpZXIucmVnaXN0ZXJOb3RpZmljYXRpb24oYXVnLCBmaWxlbmFtZSwgZmlsZUhhc2gsIGluY2x1ZGVFeHRlcm5hbHMsIGxpbmVubywgbGluZUNyYzMyLFxyXG4gICAgICAgICAgICBsaW5lVW5pcXVlLCBjYWxsYmFjaywgcmVtb3ZlZCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVtb3ZlQXVnKGF1Z0lkKSB7XHJcbiAgICAgICAgaWYgKG51bGwgIT09IHRoaXMuYXVnc0hvbGRlcikge1xyXG4gICAgICAgICAgICB0aGlzLmF1Z3NIb2xkZXIucmVtb3ZlQXVnKGF1Z0lkKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChudWxsICE9PSB0aGlzLnNjcmlwdE5vdGlmaWVyKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2NyaXB0Tm90aWZpZXIucmVtb3ZlQXVnKGF1Z0lkKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuY2xvc2VJZk5lZWRlZCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbW92ZUF1Z1RlbXBvcmFyaWx5KGF1Z0lkLCBkdXJhdGlvbikge1xyXG4gICAgICAgIHRoaXMuYXVnc0hvbGRlci5yZW1vdmVBdWdUZW1wb3JhcmlseShhdWdJZCwgZHVyYXRpb24pO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGNsZWFyQXVncygpIHtcclxuICAgICAgICBpZiAobnVsbCAhPT0gdGhpcy5hdWdzSG9sZGVyKSB7XHJcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuYXVnc0hvbGRlci5jbGVhckF1Z3MoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChudWxsICE9PSB0aGlzLnNjcmlwdE5vdGlmaWVyKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2NyaXB0Tm90aWZpZXIuY2xlYXJBdWdzKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmNsb3NlSWZOZWVkZWQoKTtcclxuICAgIH1cclxuXHJcbiAgICBzdGFydCgpIHtcclxuICAgICAgICB0aGlzLmZpbmFsaXplQ2xvc2VUaW1lb3V0KCk7XHJcblxyXG4gICAgICAgIGlmIChudWxsID09PSB0aGlzLmRlYnVnKSB7XHJcblxyXG4gICAgICAgICAgICB0aGlzLnNjcmlwdE5vdGlmaWVyID0gbmV3IFNjcmlwdE5vdGlmaWVyKCk7XHJcbiAgICAgICAgICAgIHRoaXMuYXVnc0hvbGRlciA9IG5ldyBBdWdzSG9sZGVyKCk7XHJcbiAgICAgICAgICAgIHRoaXMuZGVidWcgPSB0aGlzLmdldERlYnVnZ2VyKCk7XHJcbiAgICAgICAgICAgIHRoaXMuYXVnc0hvbGRlci5zZXREZWJ1Zyh0aGlzLmRlYnVnKVxyXG5cclxuICAgICAgICAgICAgaWYgKGNvbmZpZy5IZWFwU25hcHNob3RDb25maWd1cmF0aW9uLkhFQVBfUEFUSCAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgbG9nZ2VyLmRlYnVnKCdyZWdpc3RlcmluZyBzaWduYWwgJyArIGNvbmZpZy5IZWFwU25hcHNob3RDb25maWd1cmF0aW9uLlNJR05BTCk7XHJcbiAgICAgICAgICAgICAgICBwcm9jZXNzLm9uKGNvbmZpZy5IZWFwU25hcHNob3RDb25maWd1cmF0aW9uLlNJR05BTCwgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBkYXRlID0gbmV3IERhdGUoKS50b0lTT1N0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgICAgIGxvZ2dlci5pbmZvKCdSb29rIGlzIHNhdmluZyBhIGhlYXAgc25hcHNob3QgdG86ICcgKyBjb25maWcuSGVhcFNuYXBzaG90Q29uZmlndXJhdGlvbi5IRUFQX1BBVEgpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGVidWcuaGVhcER1bXAoY29uZmlnLkhlYXBTbmFwc2hvdENvbmZpZ3VyYXRpb24uSEVBUF9QQVRILCAnL3Jvb2tvdXRfJyArIGRhdGUgKyAnLmhlYXBzbmFwc2hvdCcpO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgY2xvc2VJZk5lZWRlZCgpIHtcclxuICAgICAgICBpZiAobnVsbCAhPT0gdGhpcy5jbG9zZVRpbWVvdXQgfHwgdGhpcy5hdWdzSG9sZGVyID09PSBudWxsIHx8ICF0aGlzLmF1Z3NIb2xkZXIuaXNFbXB0eSgpKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuY2xvc2VUaW1lb3V0ID0gc2V0VGltZW91dChhc3luYyAoKSA9PiB7XHJcbiAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLmNsb3NlKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmZpbmFsaXplQ2xvc2VUaW1lb3V0KCk7XHJcbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7fVxyXG4gICAgICAgIH0sIGNvbmZpZy5EZWJ1Z2dlclNlcnZpY2UuV0FJVF9TRUNPTkRTX1RPX0NMT1NFX0RFQlVHR0VSX0FGVEVSX05PX0FVR1MgKiAxMDAwKS51bnJlZigpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldERlYnVnZ2VyKCkge1xyXG4gICAgICAgIGlmIChjb25maWcuRGVidWdnZXJTZXJ2aWNlLklTX0RFUFJFQ0FURUQpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IFJvb2tVbnN1cHBvcnRlZE9sZE5vZGVWZXJzaW9uKHByb2Nlc3MudmVyc2lvbik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghY29uZmlnLkRlYnVnZ2VyU2VydmljZS5JU19TVVBQT1JURUQpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IFJvb2tVbnN1cHBvcnRlZE5vZGVWZXJzaW9uKHByb2Nlc3MudmVyc2lvbik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBJbnNwZWN0b3JEZWJ1ZyA9IHJlcXVpcmUoJy4vSW5zcGVjdG9yRGVidWcnKTtcclxuICAgICAgICByZXR1cm4gbmV3IEluc3BlY3RvckRlYnVnLkluc3BlY3RvckRlYnVnKFxyXG4gICAgICAgICAgICB0aGlzLmF1Z3NIb2xkZXIuZXhlY3V0ZUF1Z3MuYmluZCh0aGlzLmF1Z3NIb2xkZXIpLFxyXG4gICAgICAgICAgICB0aGlzLnNjcmlwdE5vdGlmaWVyLmFkZFNjcmlwdC5iaW5kKHRoaXMuc2NyaXB0Tm90aWZpZXIpLFxyXG4gICAgICAgICAgICB0aGlzLnNjcmlwdE5vdGlmaWVyLmdldFNjcmlwdE9iamVjdEJ5SWQuYmluZCh0aGlzLnNjcmlwdE5vdGlmaWVyKSxcclxuICAgICAgICAgICAgdGhpcyk7XHJcbiAgICB9XHJcblxyXG4gICAgZmluYWxpemVDbG9zZVRpbWVvdXQoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuY2xvc2VUaW1lb3V0ICE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLmNsb3NlVGltZW91dCk7XHJcbiAgICAgICAgICAgIHRoaXMuY2xvc2VUaW1lb3V0ID0gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztBQUVBOztBQUtBOztBQUNBOztBQUNBOztBQUVBOztBQUNBOztBQUlBOzs7O0FBWkEsTUFBTUEsTUFBTSxHQUFHQyxPQUFPLENBQUMsUUFBRCxDQUF0Qjs7QUFDQSxNQUFNQyxJQUFJLEdBQUdELE9BQU8sQ0FBQyxNQUFELENBQXBCOztBQVFBLE1BQU1FLE1BQU0sR0FBR0YsT0FBTyxDQUFDLFdBQUQsQ0FBdEI7O0FBS0E7QUFDQSxNQUFNRyxHQUFOLENBQVU7RUFFTkMsV0FBVyxDQUFDQyxRQUFELEVBQVdDLE1BQVgsRUFBbUJDLE1BQW5CLEVBQTJCO0lBQ2xDLEtBQUtGLFFBQUwsR0FBZ0JBLFFBQWhCO0lBQ0EsS0FBS0MsTUFBTCxHQUFjQSxNQUFkO0lBQ0EsS0FBS0MsTUFBTCxHQUFjQSxNQUFkO0lBRUEsS0FBS0MsR0FBTCxHQUFXLEtBQUtILFFBQUwsR0FBZ0IsR0FBaEIsR0FBc0IsS0FBS0MsTUFBM0IsR0FBb0MsR0FBcEMsR0FBMEMsS0FBS0MsTUFBMUQ7RUFDSDs7QUFSSzs7QUFXVixNQUFNRSxjQUFOLENBQXFCO0VBRWpCTCxXQUFXLEdBQUc7SUFDVixLQUFLTSxvQkFBTCxHQUE0QixFQUE1QjtJQUVBLEtBQUtDLE9BQUwsR0FBZSxFQUFmO0VBQ0g7O0VBRURDLDZCQUE2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 | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJhc3NlcnQiLCJyZXF1aXJlIiwicGF0aCIsImNvbmZpZyIsIlBvcyIsImNvbnN0cnVjdG9yIiwiZmlsZW5hbWUiLCJsaW5lbm8iLCJjb2x1bW4iLCJrZXkiLCJTY3JpcHROb3RpZmllciIsInBlbmRpbmdOb3RpZmljYXRpb25zIiwic2NyaXB0cyIsImdldEFsbE1hdGNoSW5mb0J5Tm90aWZpY2F0aW9uIiwibm90aWZpY2F0aW9uIiwibWF0Y2hlc0luZm9zIiwic2NyaXB0SWQiLCJPYmplY3QiLCJrZXlzIiwic2NyaXB0IiwibWF0Y2hJbmZvIiwiZ2V0TWF0Y2hJbmZvIiwicHVzaCIsImdldFNjcmlwdE9iamVjdEJ5SWQiLCJoYXNPd25Qcm9wZXJ0eSIsInJlZ2lzdGVyTm90aWZpY2F0aW9uIiwiYXVnIiwiZmlsZUhhc2giLCJpbmNsdWRlRXh0ZXJuYWxzIiwibGluZUNyYzMyIiwibGluZVVuaXF1ZSIsImNhbGxiYWNrIiwicmVtb3ZlZCIsImNhbm9uaXplRmlsZU5hbWUiLCJhdWdJZCIsInVzZXJXYXJuaW5ncyIsIlVzZXJXYXJuaW5ncyIsImV4ZWN1dGUiLCJtYXRjaEluZm9zIiwibGVuZ3RoIiwibWF0Y2hlZEZpbGVuYW1lIiwiZ2V0TWF0Y2hlZEZpbGVuYW1lIiwiYmFzZW5hbWUiLCJzZW5kV2FybmluZyIsIlJvb2tFcnJvciIsIlJvb2tTb3VyY2VGaWxlUGF0aFN1Z2dlc3Rpb24iLCJhZGRTY3JpcHQiLCJzb3VyY2UiLCJzb3VyY2VNYXBVUkwiLCJzY3JpcHRXcmFwcGVyIiwiU2NyaXB0V3JhcHBlciIsInJlbW92ZUF1ZyIsInVuZGVmaW5lZCIsImNsZWFyQXVncyIsImF1Z0lkcyIsIkF1Z3NIb2xkZXIiLCJkZWJ1ZyIsImJyZWFrcG9pbnRzIiwicG9zaXRpb25zIiwidGltZXJzIiwic2V0RGVidWciLCJleGVjdXRlQXVncyIsInBvcyIsInN0YWNrIiwiYXVncyIsImxvZ2dlciIsImVycm9yIiwiYWRkQXVnIiwiaW5mbyIsInNldEJyZWFrIiwic2V0QWN0aXZlIiwicmVtb3ZlQXVnVGVtcG9yYXJpbHkiLCJkdXJhdGlvbiIsImNsZWFyQnJlYWsiLCJjbGVhclRpbWVvdXQiLCJzZXRUaW1lb3V0IiwiY3VycmVudEF1Z3MiLCJlIiwibWVzc2FnZSIsImV4Y2VwdGlvbiIsInVucmVmIiwicmVtb3ZlRnJvbVBvc2l0aW9ucyIsImF1Z3NUb0tlZXAiLCJhdWdzVG9EZWxldGUiLCJzZXRSZW1vdmVkIiwicmVtb3ZlQXVnZnJvbUluc3BlY3RvciIsImNsZWFyQWxsQnJlYWtzIiwiaXNFbXB0eSIsIkRlYnVnZ2VyU2VydmljZSIsIklTZXJ2aWNlIiwiYXVnc0hvbGRlciIsInNjcmlwdE5vdGlmaWVyIiwiY2xvc2luZyIsInBlcm1hbmVudGx5X2Nsb3NlZCIsImNsb3NlVGltZW91dCIsImNsb3NlIiwicGVybWFuZW50Iiwic2VuZFJ1bGVTdGF0dXMiLCJSb29rRGVidWdnZXJQZXJtYW5lbnRseUNsb3NlZEV4Y2VwdGlvbiIsInN0YXJ0Iiwibm90RXF1YWwiLCJjbG9zZUlmTmVlZGVkIiwiZmluYWxpemVDbG9zZVRpbWVvdXQiLCJnZXREZWJ1Z2dlciIsIkhlYXBTbmFwc2hvdENvbmZpZ3VyYXRpb24iLCJIRUFQX1BBVEgiLCJTSUdOQUwiLCJwcm9jZXNzIiwib24iLCJkYXRlIiwiRGF0ZSIsInRvSVNPU3RyaW5nIiwiaGVhcER1bXAiLCJXQUlUX1NFQ09ORFNfVE9fQ0xPU0VfREVCVUdHRVJfQUZURVJfTk9fQVVHUyIsIklTX0RFUFJFQ0FURUQiLCJSb29rVW5zdXBwb3J0ZWRPbGROb2RlVmVyc2lvbiIsInZlcnNpb24iLCJJU19TVVBQT1JURUQiLCJSb29rVW5zdXBwb3J0ZWROb2RlVmVyc2lvbiIsIkluc3BlY3RvckRlYnVnIiwiYmluZCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9EZWJ1Z2dlclNlcnZpY2UuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XHJcblxyXG5pbXBvcnQgUm9va0Vycm9yIGZyb20gJy4uL3Byb2Nlc3Nvci9Sb29rRXJyb3InXHJcblxyXG5jb25zdCBhc3NlcnQgPSByZXF1aXJlKCdhc3NlcnQnKTtcclxuY29uc3QgcGF0aCA9IHJlcXVpcmUoJ3BhdGgnKTtcclxuXHJcbmltcG9ydCB7Y2Fub25pemVGaWxlTmFtZX0gZnJvbSBcIi4uL3V0aWxzXCI7XHJcbmltcG9ydCBTY3JpcHRXcmFwcGVyIGZyb20gXCIuL1NjcmlwdFdyYXBwZXJcIjtcclxuaW1wb3J0IHsgUm9va1NvdXJjZUZpbGVQYXRoU3VnZ2VzdGlvbiwgUm9va0RlYnVnZ2VyUGVybWFuZW50bHlDbG9zZWRFeGNlcHRpb24gfSBmcm9tICcuLi9leGNlcHRpb25zJztcclxuXHJcbmltcG9ydCB7bG9nZ2VyfSBmcm9tIFwiLi4vbG9nZ2VyXCI7XHJcbmltcG9ydCBVc2VyV2FybmluZ3MgZnJvbSAnLi4vVXNlcldhcm5pbmdzJztcclxuY29uc3QgY29uZmlnID0gcmVxdWlyZSgnLi4vY29uZmlnJyk7XHJcblxyXG5pbXBvcnQge1Jvb2tVbnN1cHBvcnRlZE5vZGVWZXJzaW9uLFJvb2tVbnN1cHBvcnRlZE9sZE5vZGVWZXJzaW9ufSBmcm9tIFwiLi4vZXhjZXB0aW9uc1wiO1xyXG5pbXBvcnQge0lTZXJ2aWNlfSBmcm9tIFwiLi9JU2VydmljZVwiO1xyXG5cclxuLy8gTm90ZTogdGhpcyBpcyBhIGJpdCBvZiBhIGhlY2sgdGhhdCBpcyB1c2VkIGJ5IFY4RGVidWcgYXMgd2VsbFxyXG5jbGFzcyBQb3Mge1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKGZpbGVuYW1lLCBsaW5lbm8sIGNvbHVtbikge1xyXG4gICAgICAgIHRoaXMuZmlsZW5hbWUgPSBmaWxlbmFtZTtcclxuICAgICAgICB0aGlzLmxpbmVubyA9IGxpbmVubztcclxuICAgICAgICB0aGlzLmNvbHVtbiA9IGNvbHVtbjtcclxuXHJcbiAgICAgICAgdGhpcy5rZXkgPSB0aGlzLmZpbGVuYW1lICsgXCJAXCIgKyB0aGlzLmxpbmVubyArIFwiQFwiICsgdGhpcy5jb2x1bW47XHJcbiAgICB9XHJcbn1cclxuXHJcbmNsYXNzIFNjcmlwdE5vdGlmaWVyIHtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICB0aGlzLnBlbmRpbmdOb3RpZmljYXRpb25zID0ge307XHJcblxyXG4gICAgICAgIHRoaXMuc2NyaXB0cyA9IHt9O1xyXG4gICAgfVxyXG5cclxuICAgIGdldEFsbE1hdGNoSW5mb0J5Tm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbikge1xyXG4gICAgICAgIGxldCBtYXRjaGVzSW5mb3MgPSBbXTtcclxuICAgICAgICBmb3IgKGxldCBzY3JpcHRJZCBvZiBPYmplY3Qua2V5cyh0aGlzLnNjcmlwdHMpKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHNjcmlwdCA9IHRoaXMuc2NyaXB0c1tzY3JpcHRJZF07XHJcbiAgICAgICAgICAgIGNvbnN0IG1hdGNoSW5mbyA9IHNjcmlwdC5nZXRNYXRjaEluZm8obm90aWZpY2F0aW9uKTtcclxuICAgICAgICAgICAgaWYgKG51bGwgIT09IG1hdGNoSW5mbykge1xyXG4gICAgICAgICAgICAgICAgbWF0Y2hlc0luZm9zLnB1c2gobWF0Y2hJbmZvKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIG1hdGNoZXNJbmZvcztcclxuICAgIH1cclxuXHJcbiAgICBnZXRTY3JpcHRPYmplY3RCeUlkKHNjcmlwdElkKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuc2NyaXB0cy5oYXNPd25Qcm9wZXJ0eShzY3JpcHRJZCkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2NyaXB0c1tzY3JpcHRJZF07XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJlZ2lzdGVyTm90aWZpY2F0aW9uKGF1ZywgZmlsZW5hbWUsIGZpbGVIYXNoLCBpbmNsdWRlRXh0ZXJuYWxzLCBsaW5lbm8sIGxpbmVDcmMzMiwgbGluZVVuaXF1ZSwgIGNhbGxiYWNrLCByZW1vdmVkKSB7XHJcbiAgICAgICAgZmlsZW5hbWUgPSBjYW5vbml6ZUZpbGVOYW1lKGZpbGVuYW1lKTtcclxuXHJcbiAgICAgICAgdGhpcy5wZW5kaW5nTm90aWZpY2F0aW9uc1thdWcuYXVnSWRdID0ge1xyXG4gICAgICAgICAgICB1c2VyV2FybmluZ3M6IG5ldyBVc2VyV2FybmluZ3MoYXVnKSxcclxuICAgICAgICAgICAgZmlsZW5hbWU6IGZpbGVuYW1lLFxyXG4gICAgICAgICAgICBpbmNsdWRlRXh0ZXJuYWxzOiBpbmNsdWRlRXh0ZXJuYWxzLFxyXG4gICAgICAgICAgICBleGVjdXRlIDogY2FsbGJhY2ssXHJcbiAgICAgICAgICAgIHJlbW92ZWQgOiByZW1vdmVkLFxyXG4gICAgICAgICAgICBmaWxlSGFzaDogZmlsZUhhc2gsXHJcbiAgICAgICAgICAgIGxpbmVubzogbGluZW5vLFxyXG4gICAgICAgICAgICBsaW5lQ3JjMzI6IGxpbmVDcmMzMixcclxuICAgICAgICAgICAgbGluZVVuaXF1ZTogbGluZVVuaXF1ZVxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIGNvbnN0IG1hdGNoSW5mb3MgPSB0aGlzLmdldEFsbE1hdGNoSW5mb0J5Tm90aWZpY2F0aW9uKHRoaXMucGVuZGluZ05vdGlmaWNhdGlvbnNbYXVnLmF1Z0lkXSk7XHJcbiAgICAgICAgaWYgKG1hdGNoSW5mb3MubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBmb3IgKGxldCBtYXRjaEluZm8gb2YgbWF0Y2hJbmZvcykge1xyXG4gICAgICAgICAgICAgICAgY2FsbGJhY2sobWF0Y2hJbmZvKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGZvciAobGV0IHNjcmlwdElkIG9mIE9iamVjdC5rZXlzKHRoaXMuc2NyaXB0cykpIHtcclxuICAgICAgICAgICAgICAgIC8vIFRPRE8gLSBtdWNoIG9mIHRoaXMgbG9naWMgaXMgZHVwbGljYXRlZCB3aXRoIFwic3RhbmRhcmRcIiBzY2FubmluZyBpbiBTY3JpcHRXcmFwcGVyIGFuZCBzaG91bGQgYmUgbW92ZWQgdGhlcmVcclxuICAgICAgICAgICAgICAgIGNvbnN0IHNjcmlwdCA9IHRoaXMuc2NyaXB0c1tzY3JpcHRJZF07XHJcblxyXG4gICAgICAgICAgICAgICAgbGV0IG1hdGNoZWRGaWxlbmFtZSA9IHNjcmlwdC5nZXRNYXRjaGVkRmlsZW5hbWUocGF0aC5iYXNlbmFtZShmaWxlbmFtZSksIGZpbGVIYXNoKTtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAobWF0Y2hlZEZpbGVuYW1lICE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYXVnLnNlbmRXYXJuaW5nKG5ldyBSb29rRXJyb3IobmV3IFJvb2tTb3VyY2VGaWxlUGF0aFN1Z2dlc3Rpb24oZmlsZW5hbWUsIG1hdGNoZWRGaWxlbmFtZSkpKTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBhZGRTY3JpcHQoc2NyaXB0SWQsIGZpbGVuYW1lLCBzb3VyY2UsIHNvdXJjZU1hcFVSTCkge1xyXG4gICAgICAgIGlmIChudWxsID09IGZpbGVuYW1lIHx8IFwiXCIgPT09IGZpbGVuYW1lIHx8IHRoaXMuc2NyaXB0cy5oYXNPd25Qcm9wZXJ0eShzY3JpcHRJZCkpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3Qgc2NyaXB0V3JhcHBlciA9IG5ldyBTY3JpcHRXcmFwcGVyKHNjcmlwdElkLCBmaWxlbmFtZSwgc291cmNlLCBzb3VyY2VNYXBVUkwpO1xyXG5cclxuICAgICAgICBmb3IgKGxldCBhdWdJZCBvZiBPYmplY3Qua2V5cyh0aGlzLnBlbmRpbmdOb3RpZmljYXRpb25zKSkge1xyXG4gICAgICAgICAgICBsZXQgbm90aWZpY2F0aW9uID0gdGhpcy5wZW5kaW5nTm90aWZpY2F0aW9uc1thdWdJZF07XHJcbiAgICAgICAgICAgIGNvbnN0IG1hdGNoSW5mbyA9IHNjcmlwdFdyYXBwZXIuZ2V0TWF0Y2hJbmZvKG5vdGlmaWNhdGlvbik7XHJcbiAgICAgICAgICAgIGlmIChudWxsICE9PSBtYXRjaEluZm8pIHtcclxuICAgICAgICAgICAgICAgIG5vdGlmaWNhdGlvbi5leGVjdXRlKG1hdGNoSW5mbyk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgbWF0Y2hlZEZpbGVuYW1lID0gc2NyaXB0V3JhcHBlci5nZXRNYXRjaGVkRmlsZW5hbWUocGF0aC5iYXNlbmFtZShub3RpZmljYXRpb24uZmlsZW5hbWUpLCBub3RpZmljYXRpb24uZmlsZUhhc2gpO1xyXG4gICAgICAgICAgICAgICAgaWYgKG1hdGNoZWRGaWxlbmFtZSAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgICAgIG5vdGlmaWNhdGlvbi51c2VyV2FybmluZ3Muc2VuZFdhcm5pbmcobmV3IFJvb2tFcnJvcihuZXcgUm9va1NvdXJjZUZpbGVQYXRoU3VnZ2VzdGlvbihub3RpZmljYXRpb24uZmlsZW5hbWUsIG1hdGNoZWRGaWxlbmFtZSkpKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5zY3JpcHRzW3NjcmlwdElkXSA9IHNjcmlwdFdyYXBwZXI7XHJcbiAgICB9XHJcblxyXG4gICAgcmVtb3ZlQXVnKGF1Z0lkKSB7XHJcbiAgICAgICAgbGV0IG5vdGlmaWNhdGlvbiA9IHRoaXMucGVuZGluZ05vdGlmaWNhdGlvbnNbYXVnSWRdO1xyXG4gICAgICAgIGlmICh1bmRlZmluZWQgIT09IG5vdGlmaWNhdGlvbikge1xyXG4gICAgICAgICAgICBub3RpZmljYXRpb24ucmVtb3ZlZCgpO1xyXG4gICAgICAgICAgICBkZWxldGUgdGhpcy5wZW5kaW5nTm90aWZpY2F0aW9uc1thdWdJZF07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGNsZWFyQXVncygpIHtcclxuICAgICAgICBsZXQgYXVnSWRzID0gT2JqZWN0LmtleXModGhpcy5wZW5kaW5nTm90aWZpY2F0aW9ucyk7XHJcbiAgICAgICAgZm9yIChsZXQgYXVnSWQgb2YgYXVnSWRzKSB7XHJcbiAgICAgICAgICAgIHRoaXMucmVtb3ZlQXVnKGF1Z0lkKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMucGVuZGluZ05vdGlmaWNhdGlvbnMgPSB7fTtcclxuICAgIH1cclxufVxyXG5cclxuY2xhc3MgQXVnc0hvbGRlciB7XHJcblxyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgdGhpcy5kZWJ1ZyA9IG51bGw7XHJcblxyXG4gICAgICAgIHRoaXMuYnJlYWtwb2ludHMgPSB7fTtcclxuICAgICAgICB0aGlzLnBvc2l0aW9ucyA9IHt9O1xyXG4gICAgICAgIHRoaXMudGltZXJzID0ge307XHJcbiAgICB9XHJcblxyXG4gICAgc2V0RGVidWcoZGVidWcpIHtcclxuICAgICAgICB0aGlzLmRlYnVnID0gZGVidWc7XHJcbiAgICB9XHJcblxyXG4gICAgZXhlY3V0ZUF1Z3MocG9zLCBzdGFjaykge1xyXG4gICAgICAgIGxldCBhdWdzID0gdGhpcy5icmVha3BvaW50c1twb3Mua2V5XTtcclxuXHJcbiAgICAgICAgaWYgKCFhdWdzKSB7XHJcbiAgICAgICAgICAgIGxvZ2dlci5lcnJvcihcIkF1ZyBub3QgZm91bmQhICVzQCVkXCIsIHBvcy5maWxlbmFtZSwgcG9zLmxpbmVubylcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBmb3IgKGxldCBhdWcgb2YgYXVncykge1xyXG4gICAgICAgICAgICAgICAgYXVnLmV4ZWN1dGUoc3RhY2spO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGFkZEF1ZyhmaWxlbmFtZSwgbGluZW5vLCBjb2x1bW4sIGF1Zykge1xyXG4gICAgICAgIGxvZ2dlci5pbmZvKFwiU2V0dGluZyBicmVha3BvaW50IGF0ICVzOiVzOiVzXCIsIGZpbGVuYW1lLCBsaW5lbm8sIGNvbHVtbik7XHJcblxyXG4gICAgICAgIGxldCBwb3MgPSBuZXcgUG9zKGNhbm9uaXplRmlsZU5hbWUoZmlsZW5hbWUpLCBsaW5lbm8sIGNvbHVtbik7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmJyZWFrcG9pbnRzLmhhc093blByb3BlcnR5KHBvcy5rZXkpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYnJlYWtwb2ludHNbcG9zLmtleV0ucHVzaChhdWcpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuZGVidWcuc2V0QnJlYWsocG9zKTtcclxuICAgICAgICAgICAgdGhpcy5icmVha3BvaW50c1twb3Mua2V5XT0gW2F1Z107XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnBvc2l0aW9uc1thdWcuYXVnSWRdID0gcG9zO1xyXG4gICAgICAgIGF1Zy5zZXRBY3RpdmUoKTtcclxuICAgIH1cclxuXHJcbiAgICByZW1vdmVBdWdUZW1wb3JhcmlseShhdWdJZCwgZHVyYXRpb24pIHtcclxuICAgICAgICBpZiAoIXRoaXMucG9zaXRpb25zLmhhc093blByb3BlcnR5KGF1Z0lkKSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBXZSByZW1vdmUgQUxMIGJyZWFrcG9pbnRzIGZyb20gdGhhdCBwb3NpdGlvblxyXG4gICAgICAgIGNvbnN0IHBvcyA9IHRoaXMucG9zaXRpb25zW2F1Z0lkXTtcclxuICAgICAgICB0aGlzLmRlYnVnLmNsZWFyQnJlYWsocG9zKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMudGltZXJzW3Bvcy5rZXldICE9IG51bGwpIHtcclxuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMudGltZXJzW3Bvcy5rZXldKTtcclxuICAgICAgICAgICAgZGVsZXRlIHRoaXMudGltZXJzW3Bvcy5rZXldO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy50aW1lcnNbcG9zLmtleV0gPSBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgIC8vIENoZWNrIGlmIHdlIHN0aWxsIGhhdmUgYXVncyBpbiB0aGF0IHBvc2l0aW9uIGFmdGVyIHRoZSB0aW1lb3V0XHJcbiAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50QXVncyA9IHRoaXMuYnJlYWtwb2ludHNbcG9zLmtleV07XHJcbiAgICAgICAgICAgICAgICBpZiAodW5kZWZpbmVkID09PSBjdXJyZW50QXVncyB8fCAwID09PSBjdXJyZW50QXVncy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgbG9nZ2VyLmluZm8oXCJSZS1hZGRpbmcgYXVnICVzIGFmdGVyICVzbXNcIiwgYXVnSWQsIGR1cmF0aW9uKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuZGVidWcuc2V0QnJlYWsocG9zKTtcclxuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBtZXNzYWdlID0gXCJFeGNlcHRpb24gd2hlbiBhZGRpbmcgYXVnIGJhY2tcIjtcclxuICAgICAgICAgICAgICAgICAgICBsb2dnZXIuZXhjZXB0aW9uKG1lc3NhZ2UsIGUpO1xyXG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IGZpbmFsbHkge1xyXG4gICAgICAgICAgICAgICAgZGVsZXRlIHRoaXMudGltZXJzW3Bvcy5rZXldO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSwgZHVyYXRpb24pO1xyXG4gICAgICAgIHRoaXMudGltZXJzW3Bvcy5rZXldLnVucmVmKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVtb3ZlQXVnKGF1Z0lkLCByZW1vdmVGcm9tUG9zaXRpb25zID0gdHJ1ZSkge1xyXG4gICAgICAgIGlmICghdGhpcy5wb3NpdGlvbnMuaGFzT3duUHJvcGVydHkoYXVnSWQpKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIEdldCBjdXJyZW50IGF1Z3MgaW4gcG9zaXRpb25cclxuICAgICAgICBsZXQgcG9zID0gdGhpcy5wb3NpdGlvbnNbYXVnSWRdO1xyXG5cclxuICAgICAgICBsZXQgY3VycmVudEF1Z3MgPSB0aGlzLmJyZWFrcG9pbnRzW3Bvcy5rZXldO1xyXG5cclxuICAgICAgICAvLyBEaXZpZGUgYXVncyBpbnRvIGRlbGV0ZSBhbmQga2VlcFxyXG4gICAgICAgIGxldCBhdWdzVG9LZWVwID0gW107XHJcbiAgICAgICAgbGV0IGF1Z3NUb0RlbGV0ZSA9IFtdO1xyXG4gICAgICAgIGlmIChjdXJyZW50QXVncyAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGF1ZyBvZiBjdXJyZW50QXVncykge1xyXG4gICAgICAgICAgICAgICAgaWYgKGF1Zy5hdWdJZCA9PT0gYXVnSWQpIHtcclxuICAgICAgICAgICAgICAgICAgICBhdWdzVG9EZWxldGUucHVzaChhdWcpO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBhdWdzVG9LZWVwLnB1c2goYXVnKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gVXBkYXRlIGxpc3RcclxuICAgICAgICBpZiAoYXVnc1RvS2VlcC5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYnJlYWtwb2ludHNbcG9zLmtleV0gPSBhdWdzVG9LZWVwO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuZGVidWcuY2xlYXJCcmVhayhwb3MpO1xyXG4gICAgICAgICAgICBkZWxldGUgdGhpcy5icmVha3BvaW50c1twb3Mua2V5XTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChyZW1vdmVGcm9tUG9zaXRpb25zKSB7XHJcbiAgICAgICAgICAgIC8vIFVwZGF0ZSBzdGF0dXNcclxuICAgICAgICAgICAgZm9yIChsZXQgYXVnIG9mIGF1Z3NUb0RlbGV0ZSkge1xyXG4gICAgICAgICAgICAgICAgYXVnLnNldFJlbW92ZWQoKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLy8gUmVtb3ZlIGZyb20gcG9zaXRpb24gbGlzdFxyXG4gICAgICAgICAgICBkZWxldGUgdGhpcy5wb3NpdGlvbnNbYXVnSWRdO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZW1vdmVBdWdmcm9tSW5zcGVjdG9yKGF1Z0lkKSB7XHJcbiAgICAgICAgdGhpcy5yZW1vdmVBdWcoYXVnSWQsIGZhbHNlKTtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBjbGVhckF1Z3MoKSB7XHJcbiAgICAgICAgbGV0IGF1Z0lkcyA9IE9iamVjdC5rZXlzKHRoaXMucG9zaXRpb25zKTtcclxuICAgICAgICBmb3IgKGxldCBhdWdJZCBvZiBhdWdJZHMpIHtcclxuICAgICAgICAgICAgdGhpcy5yZW1vdmVBdWcoYXVnSWQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5icmVha3BvaW50cyA9IHt9O1xyXG4gICAgICAgIHRoaXMucG9zaXRpb25zID0ge307XHJcbiAgICAgICAgYXdhaXQgdGhpcy5kZWJ1Zy5jbGVhckFsbEJyZWFrcygpO1xyXG4gICAgfVxyXG5cclxuICAgIGlzRW1wdHkoKSB7XHJcbiAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKHRoaXMucG9zaXRpb25zKS5sZW5ndGggPT09IDA7XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBEZWJ1Z2dlclNlcnZpY2UgZXh0ZW5kcyBJU2VydmljZSB7XHJcblxyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICB0aGlzLmRlYnVnID0gbnVsbDtcclxuICAgICAgICB0aGlzLmF1Z3NIb2xkZXIgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuc2NyaXB0Tm90aWZpZXIgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuY2xvc2luZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMucGVybWFuZW50bHlfY2xvc2VkID0gZmFsc2U7XHJcblxyXG4gICAgICAgIHRoaXMuY2xvc2VUaW1lb3V0ID0gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBhc3luYyBjbG9zZShwZXJtYW5lbnQ9ZmFsc2UpIHtcclxuICAgICAgICBpZiAocGVybWFuZW50KSB7XHJcbiAgICAgICAgICAgIHRoaXMucGVybWFuZW50bHlfY2xvc2VkID0gdHJ1ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmNsb3NpbmcpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmNsb3NpbmcgPSB0cnVlO1xyXG5cclxuICAgICAgICBhd2FpdCB0aGlzLmNsZWFyQXVncygpO1xyXG5cclxuICAgICAgICBpZiAobnVsbCAhPT0gdGhpcy5kZWJ1Zykge1xyXG4gICAgICAgICAgICBjb25zdCBkZWJ1ZyA9IHRoaXMuZGVidWc7XHJcbiAgICAgICAgICAgIHRoaXMuZGVidWcgPSBudWxsO1xyXG4gICAgICAgICAgICBhd2FpdCBkZWJ1Zy5jbG9zZSgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5jbG9zaW5nID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgYWRkQXVnKG1hdGNoSW5mbywgYXVnKSB7XHJcbiAgICAgICAgaWYgKHRoaXMucGVybWFuZW50bHlfY2xvc2VkKSB7XHJcbiAgICAgICAgICAgIGF1Zy5zZW5kUnVsZVN0YXR1cyhcIkVycm9yXCIsIG5ldyBSb29rRXJyb3IobmV3IFJvb2tEZWJ1Z2dlclBlcm1hbmVudGx5Q2xvc2VkRXhjZXB0aW9uKCkpKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5zdGFydCgpO1xyXG5cclxuICAgICAgICAvLyBOb3RlLSB0aGlzIGlzIGEgaGFjayB1c2VkIHRvIHNpbXBsaWZ5IHRlc3RpbmcsIGl0IGNyZWF0ZXMgYSBtYXRjaEluZm8gZm9yIG1hdGNoSW5mbyA9PT0gbm90aWZpY2F0aW9uIGluIHRlc3RzLFxyXG4gICAgICAgIC8vIG1hdGNoSW5mbyBzaG91bGQgbm90IGhvbGQgbGluZVVuaXF1ZSBpbiBwcm9kdWN0aW9uXHJcbiAgICAgICAgaWYgKG1hdGNoSW5mby5saW5lVW5pcXVlICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgbWF0Y2hJbmZvID0gdGhpcy5zY3JpcHROb3RpZmllci5nZXRBbGxNYXRjaEluZm9CeU5vdGlmaWNhdGlvbihtYXRjaEluZm8pWzBdO1xyXG4gICAgICAgICAgICBhc3NlcnQubm90RXF1YWwobWF0Y2hJbmZvLCB1bmRlZmluZWQsIFwiU2NyaXB0IG5vdCBmb3VuZFwiKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuYXVnc0hvbGRlci5hZGRBdWcobWF0Y2hJbmZvLnNjcmlwdC5maWxlbmFtZSwgbWF0Y2hJbmZvLmxpbmVubywgbWF0Y2hJbmZvLmNvbHVtbiwgYXVnKTtcclxuICAgIH1cclxuXHJcbiAgICByZWdpc3Rlck5vdGlmaWNhdGlvbihhdWcsIGZpbGVuYW1lLCBmaWxlSGFzaCwgaW5jbHVkZUV4dGVybmFscywgbGluZW5vLCBsaW5lQ3JjMzIsIGxpbmVVbmlxdWUsIGNhbGxiYWNrLCByZW1vdmVkKSB7XHJcbiAgICAgICAgaWYgKHRoaXMucGVybWFuZW50bHlfY2xvc2VkKSB7XHJcbiAgICAgICAgICAgIGF1Zy5zZW5kUnVsZVN0YXR1cyhcIkVycm9yXCIsIG5ldyBSb29rRXJyb3IobmV3IFJvb2tEZWJ1Z2dlclBlcm1hbmVudGx5Q2xvc2VkRXhjZXB0aW9uKCkpKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5zdGFydCgpO1xyXG5cclxuICAgICAgICB0aGlzLnNjcmlwdE5vdGlmaWVyLnJlZ2lzdGVyTm90aWZpY2F0aW9uKGF1ZywgZmlsZW5hbWUsIGZpbGVIYXNoLCBpbmNsdWRlRXh0ZXJuYWxzLCBsaW5lbm8sIGxpbmVDcmMzMixcclxuICAgICAgICAgICAgbGluZVVuaXF1ZSwgY2FsbGJhY2ssIHJlbW92ZWQpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbW92ZUF1ZyhhdWdJZCkge1xyXG4gICAgICAgIGlmIChudWxsICE9PSB0aGlzLmF1Z3NIb2xkZXIpIHtcclxuICAgICAgICAgICAgdGhpcy5hdWdzSG9sZGVyLnJlbW92ZUF1ZyhhdWdJZCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAobnVsbCAhPT0gdGhpcy5zY3JpcHROb3RpZmllcikge1xyXG4gICAgICAgICAgICB0aGlzLnNjcmlwdE5vdGlmaWVyLnJlbW92ZUF1ZyhhdWdJZCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmNsb3NlSWZOZWVkZWQoKTtcclxuICAgIH1cclxuXHJcbiAgICByZW1vdmVBdWdUZW1wb3JhcmlseShhdWdJZCwgZHVyYXRpb24pIHtcclxuICAgICAgICB0aGlzLmF1Z3NIb2xkZXIucmVtb3ZlQXVnVGVtcG9yYXJpbHkoYXVnSWQsIGR1cmF0aW9uKTtcclxuICAgIH1cclxuXHJcbiAgICByZW1vdmVBdWdmcm9tSW5zcGVjdG9yKGF1Z0lkKSB7XHJcbiAgICAgICAgdGhpcy5hdWdzSG9sZGVyLnJlbW92ZUF1Z2Zyb21JbnNwZWN0b3IoYXVnSWQpO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGNsZWFyQXVncygpIHtcclxuICAgICAgICBpZiAobnVsbCAhPT0gdGhpcy5hdWdzSG9sZGVyKSB7XHJcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuYXVnc0hvbGRlci5jbGVhckF1Z3MoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChudWxsICE9PSB0aGlzLnNjcmlwdE5vdGlmaWVyKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2NyaXB0Tm90aWZpZXIuY2xlYXJBdWdzKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmNsb3NlSWZOZWVkZWQoKTtcclxuICAgIH1cclxuXHJcbiAgICBzdGFydCgpIHtcclxuICAgICAgICB0aGlzLmZpbmFsaXplQ2xvc2VUaW1lb3V0KCk7XHJcblxyXG4gICAgICAgIGlmIChudWxsID09PSB0aGlzLmRlYnVnKSB7XHJcblxyXG4gICAgICAgICAgICB0aGlzLnNjcmlwdE5vdGlmaWVyID0gbmV3IFNjcmlwdE5vdGlmaWVyKCk7XHJcbiAgICAgICAgICAgIHRoaXMuYXVnc0hvbGRlciA9IG5ldyBBdWdzSG9sZGVyKCk7XHJcbiAgICAgICAgICAgIHRoaXMuZGVidWcgPSB0aGlzLmdldERlYnVnZ2VyKCk7XHJcbiAgICAgICAgICAgIHRoaXMuYXVnc0hvbGRlci5zZXREZWJ1Zyh0aGlzLmRlYnVnKVxyXG5cclxuICAgICAgICAgICAgaWYgKGNvbmZpZy5IZWFwU25hcHNob3RDb25maWd1cmF0aW9uLkhFQVBfUEFUSCAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgbG9nZ2VyLmRlYnVnKCdyZWdpc3RlcmluZyBzaWduYWwgJyArIGNvbmZpZy5IZWFwU25hcHNob3RDb25maWd1cmF0aW9uLlNJR05BTCk7XHJcbiAgICAgICAgICAgICAgICBwcm9jZXNzLm9uKGNvbmZpZy5IZWFwU25hcHNob3RDb25maWd1cmF0aW9uLlNJR05BTCwgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBkYXRlID0gbmV3IERhdGUoKS50b0lTT1N0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgICAgIGxvZ2dlci5pbmZvKCdSb29rIGlzIHNhdmluZyBhIGhlYXAgc25hcHNob3QgdG86ICcgKyBjb25maWcuSGVhcFNuYXBzaG90Q29uZmlndXJhdGlvbi5IRUFQX1BBVEgpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGVidWcuaGVhcER1bXAoY29uZmlnLkhlYXBTbmFwc2hvdENvbmZpZ3VyYXRpb24uSEVBUF9QQVRILCAnL3Jvb2tvdXRfJyArIGRhdGUgKyAnLmhlYXBzbmFwc2hvdCcpO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgY2xvc2VJZk5lZWRlZCgpIHtcclxuICAgICAgICBpZiAobnVsbCAhPT0gdGhpcy5jbG9zZVRpbWVvdXQgfHwgdGhpcy5hdWdzSG9sZGVyID09PSBudWxsIHx8ICF0aGlzLmF1Z3NIb2xkZXIuaXNFbXB0eSgpKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuY2xvc2VUaW1lb3V0ID0gc2V0VGltZW91dChhc3luYyAoKSA9PiB7XHJcbiAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLmNsb3NlKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmZpbmFsaXplQ2xvc2VUaW1lb3V0KCk7XHJcbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7fVxyXG4gICAgICAgIH0sIGNvbmZpZy5EZWJ1Z2dlclNlcnZpY2UuV0FJVF9TRUNPTkRTX1RPX0NMT1NFX0RFQlVHR0VSX0FGVEVSX05PX0FVR1MgKiAxMDAwKS51bnJlZigpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldERlYnVnZ2VyKCkge1xyXG4gICAgICAgIGlmIChjb25maWcuRGVidWdnZXJTZXJ2aWNlLklTX0RFUFJFQ0FURUQpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IFJvb2tVbnN1cHBvcnRlZE9sZE5vZGVWZXJzaW9uKHByb2Nlc3MudmVyc2lvbik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghY29uZmlnLkRlYnVnZ2VyU2VydmljZS5JU19TVVBQT1JURUQpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IFJvb2tVbnN1cHBvcnRlZE5vZGVWZXJzaW9uKHByb2Nlc3MudmVyc2lvbik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBJbnNwZWN0b3JEZWJ1ZyA9IHJlcXVpcmUoJy4vSW5zcGVjdG9yRGVidWcnKTtcclxuICAgICAgICByZXR1cm4gbmV3IEluc3BlY3RvckRlYnVnLkluc3BlY3RvckRlYnVnKFxyXG4gICAgICAgICAgICB0aGlzLmF1Z3NIb2xkZXIuZXhlY3V0ZUF1Z3MuYmluZCh0aGlzLmF1Z3NIb2xkZXIpLFxyXG4gICAgICAgICAgICB0aGlzLnNjcmlwdE5vdGlmaWVyLmFkZFNjcmlwdC5iaW5kKHRoaXMuc2NyaXB0Tm90aWZpZXIpLFxyXG4gICAgICAgICAgICB0aGlzLnNjcmlwdE5vdGlmaWVyLmdldFNjcmlwdE9iamVjdEJ5SWQuYmluZCh0aGlzLnNjcmlwdE5vdGlmaWVyKSxcclxuICAgICAgICAgICAgdGhpcyk7XHJcbiAgICB9XHJcblxyXG4gICAgZmluYWxpemVDbG9zZVRpbWVvdXQoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuY2xvc2VUaW1lb3V0ICE9PSBudWxsKSB7XHJcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLmNsb3NlVGltZW91dCk7XHJcbiAgICAgICAgICAgIHRoaXMuY2xvc2VUaW1lb3V0ID0gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztBQUVBOztBQUtBOztBQUNBOztBQUNBOztBQUVBOztBQUNBOztBQUlBOzs7O0FBWkEsTUFBTUEsTUFBTSxHQUFHQyxPQUFPLENBQUMsUUFBRCxDQUF0Qjs7QUFDQSxNQUFNQyxJQUFJLEdBQUdELE9BQU8sQ0FBQyxN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 |
@@ -14,3 +14,2 @@ 'use strict'; | ||
const originalCreateHook = ah.createHook.bind(ah); | ||
let tracerInitialized = false; | ||
@@ -30,3 +29,3 @@ function patchTracer() { | ||
try { | ||
if (tracerInitialized) { | ||
if (module.exports.tracerInitialized) { | ||
const span = global.__getSpan(); | ||
@@ -74,3 +73,3 @@ | ||
const tracer = originalTracerInit(opts); | ||
tracerInitialized = true; | ||
module.exports.tracerInitialized = true; | ||
return tracer; | ||
@@ -88,3 +87,6 @@ }; | ||
module.exports.patchTracer = patchTracer; | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJhaCIsInJlcXVpcmUiLCJsb2dnZXIiLCJjb25kaXRpb25hbFJlcXVpcmUiLCJvcmlnaW5hbENyZWF0ZUhvb2siLCJjcmVhdGVIb29rIiwiYmluZCIsInRyYWNlckluaXRpYWxpemVkIiwicGF0Y2hUcmFjZXIiLCJkZWJ1ZyIsImhvb2siLCJvcmlnaW5hbEJlZm9yZSIsImJlZm9yZSIsImFzeW5jSWQiLCJzcGFuIiwiZ2xvYmFsIiwiX19nZXRTcGFuIiwiX19jdXJyZW50U3BhbiIsImUiLCJkZCIsImRkQ29yZSIsImluaXQiLCJzdG9yYWdlIiwiZ2V0U3RvcmUiLCJvcmlnaW5hbFRyYWNlckluaXQiLCJvcHRzIiwidHJhY2VyIiwiZXJyb3IiLCJtb2R1bGUiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL1RyYWNpbmdQYXRjaGVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuY29uc3QgYWggPSByZXF1aXJlKCdhc3luY19ob29rcycpO1xuY29uc3QgeyBsb2dnZXIgfSA9IHJlcXVpcmUoJy4vbG9nZ2VyJyk7XG5jb25zdCB7IGNvbmRpdGlvbmFsUmVxdWlyZSB9ID0gcmVxdWlyZSgnLi91dGlscycpO1xuXG5jb25zdCBvcmlnaW5hbENyZWF0ZUhvb2sgPSBhaC5jcmVhdGVIb29rLmJpbmQoYWgpO1xubGV0IHRyYWNlckluaXRpYWxpemVkID0gZmFsc2U7XG5cbmZ1bmN0aW9uIHBhdGNoVHJhY2VyKCkge1xuICAgIHRyeSB7XG4gICAgICAgIGxvZ2dlci5kZWJ1ZyhcIkhvb2tpbmcgYXN5bmNfaG9va3MnIGBjcmVhdGVIb29rYFwiKTtcblxuICAgICAgICAvLyBDaGFuZ2UgYGNyZWF0ZUhvb2tgIHRvIHdoYXQgd2Ugd2FudCBpdCB0byBiZVxuICAgICAgICBhaC5jcmVhdGVIb29rID0gKGhvb2spID0+IHtcbiAgICAgICAgICAgIGxldCBvcmlnaW5hbEJlZm9yZSA9IGhvb2suYmVmb3JlO1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBvcmlnaW5hbEJlZm9yZSA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICAgICAgb3JpZ2luYWxCZWZvcmUgPSBvcmlnaW5hbEJlZm9yZS5iaW5kKGhvb2spO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaG9vay5iZWZvcmUgPSAoYXN5bmNJZCkgPT4ge1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0cmFjZXJJbml0aWFsaXplZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3BhbiA9IGdsb2JhbC5fX2dldFNwYW4oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzcGFuICE9IG51bGwgJiYgc3Bhbi5zcGFuICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBnbG9iYWwuX19jdXJyZW50U3BhbiA9IHNwYW4uc3BhbjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgbG9nZ2VyLmRlYnVnKFwiaG9vay5iZWZvcmUgZmFpbGVkIHdpdGg6XCIsIGUpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICh0eXBlb2Ygb3JpZ2luYWxCZWZvcmUgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgICAgICAgICBvcmlnaW5hbEJlZm9yZShhc3luY0lkKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgaG9vay5iZWZvcmUgPSBob29rLmJlZm9yZS5iaW5kKGhvb2spO1xuXG4gICAgICAgICAgICByZXR1cm4gb3JpZ2luYWxDcmVhdGVIb29rKGhvb2spO1xuICAgICAgICB9O1xuICAgICAgICBhaC5jcmVhdGVIb29rID0gYWguY3JlYXRlSG9vay5iaW5kKGFoKTtcblxuICAgICAgICBjb25zdCBkZCA9IGNvbmRpdGlvbmFsUmVxdWlyZSgnZGQtdHJhY2UnKTtcbiAgICAgICAgY29uc3QgZGRDb3JlID0gY29uZGl0aW9uYWxSZXF1aXJlKCdkZC10cmFjZS9wYWNrYWdlcy9kYXRhZG9nLWNvcmUnKTtcbiAgICAgICAgaWYgKGRkID09IG51bGwgfHwgZGRDb3JlID09IG51bGwgfHwgdHlwZW9mIGRkLmluaXQgIT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgYWguY3JlYXRlSG9vayA9IG9yaWdpbmFsQ3JlYXRlSG9vaztcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGdsb2JhbC5fX2dldFNwYW4gPSAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoZGRDb3JlLnN0b3JhZ2UgPT0gbnVsbCB8fCB0eXBlb2YgZGRDb3JlLnN0b3JhZ2UuZ2V0U3RvcmUgIT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gZGRDb3JlLnN0b3JhZ2UuZ2V0U3RvcmUoKTtcbiAgICAgICAgfTtcblxuICAgICAgICAvLyBSZXR1cm4gYGNyZWF0ZUhvb2tgIHRvIHdoYXQgaXQgd2FzXG4gICAgICAgIGFoLmNyZWF0ZUhvb2sgPSBvcmlnaW5hbENyZWF0ZUhvb2s7XG5cbiAgICAgICAgY29uc3Qgb3JpZ2luYWxUcmFjZXJJbml0ID0gZGQuaW5pdC5iaW5kKGRkKTtcbiAgICAgICAgZGQuaW5pdCA9IChvcHRzKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB0cmFjZXIgPSBvcmlnaW5hbFRyYWNlckluaXQob3B0cyk7XG4gICAgICAgICAgICB0cmFjZXJJbml0aWFsaXplZCA9IHRydWU7XG4gICAgICAgICAgICByZXR1cm4gdHJhY2VyO1xuICAgICAgICB9O1xuICAgICAgICBkZC5pbml0ID0gZGQuaW5pdC5iaW5kKGRkKTtcblxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGFoLmNyZWF0ZUhvb2sgPSBvcmlnaW5hbENyZWF0ZUhvb2s7XG4gICAgICAgIGxvZ2dlci5lcnJvcihcIkZhaWxlZCB0byBob29rIGRkJ3MgYXN5bmMgaG9va1wiLCBlKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbn1cblxubW9kdWxlLmV4cG9ydHMucGF0Y2hUcmFjZXIgPSBwYXRjaFRyYWNlcjtcbiJdLCJtYXBwaW5ncyI6IkFBQUE7O0FBRUEsTUFBTUEsRUFBRSxHQUFHQyxPQUFPLENBQUMsYUFBRCxDQUFsQjs7QUFDQSxNQUFNO0VBQUVDO0FBQUYsSUFBYUQsT0FBTyxDQUFDLFVBQUQsQ0FBMUI7O0FBQ0EsTUFBTTtFQUFFRTtBQUFGLElBQXlCRixPQUFPLENBQUMsU0FBRCxDQUF0Qzs7QUFFQSxNQUFNRyxrQkFBa0IsR0FBR0osRUFBRSxDQUFDSyxVQUFILENBQWNDLElBQWQsQ0FBbUJOLEVBQW5CLENBQTNCO0FBQ0EsSUFBSU8saUJBQWlCLEdBQUcsS0FBeEI7O0FBRUEsU0FBU0MsV0FBVCxHQUF1QjtFQUNuQixJQUFJO0lBQ0FOLE1BQU0sQ0FBQ08sS0FBUCxDQUFhLG1DQUFiLEVBREEsQ0FHQTs7SUFDQVQsRUFBRSxDQUFDSyxVQUFILEdBQWlCSyxJQUFELElBQVU7TUFDdEIsSUFBSUMsY0FBYyxHQUFHRCxJQUFJLENBQUNFLE1BQTFCOztNQUNBLElBQUksT0FBT0QsY0FBUCxLQUEwQixVQUE5QixFQUEwQztRQUN0Q0EsY0FBYyxHQUFHQSxjQUFjLENBQUNMLElBQWYsQ0FBb0JJLElBQXBCLENBQWpCO01BQ0g7O01BQ0RBLElBQUksQ0FBQ0UsTUFBTCxHQUFlQyxPQUFELElBQWE7UUFDdkIsSUFBSTtVQUNBLElBQUlOLGlCQUFKLEVBQXVCO1lBQ25CLE1BQU1PLElBQUksR0FBR0MsTUFBTSxDQUFDQyxTQUFQLEVBQWI7O1lBQ0EsSUFBSUYsSUFBSSxJQUFJLElBQVIsSUFBZ0JBLElBQUksQ0FBQ0EsSUFBTCxJQUFhLElBQWpDLEVBQXVDO2NBQ25DQyxNQUFNLENBQUNFLGFBQVAsR0FBdUJILElBQUksQ0FBQ0EsSUFBNUI7WUFDSDtVQUNKO1FBQ0osQ0FQRCxDQU9FLE9BQU9JLENBQVAsRUFBVTtVQUNSaEIsTUFBTSxDQUFDTyxLQUFQLENBQWEsMEJBQWIsRUFBeUNTLENBQXpDO1FBQ0g7O1FBRUQsSUFBSSxPQUFPUCxjQUFQLEtBQTBCLFVBQTlCLEVBQTBDO1VBQ3RDQSxjQUFjLENBQUNFLE9BQUQsQ0FBZDtRQUNIO01BQ0osQ0FmRDs7TUFnQkFILElBQUksQ0FBQ0UsTUFBTCxHQUFjRixJQUFJLENBQUNFLE1BQUwsQ0FBWU4sSUFBWixDQUFpQkksSUFBakIsQ0FBZDtNQUVBLE9BQU9OLGtCQUFrQixDQUFDTSxJQUFELENBQXpCO0lBQ0gsQ0F4QkQ7O0lBeUJBVixFQUFFLENBQUNLLFVBQUgsR0FBZ0JMLEVBQUUsQ0FBQ0ssVUFBSCxDQUFjQyxJQUFkLENBQW1CTixFQUFuQixDQUFoQjtJQUVBLE1BQU1tQixFQUFFLEdBQUdoQixrQkFBa0IsQ0FBQyxVQUFELENBQTdCO0lBQ0EsTUFBTWlCLE1BQU0sR0FBR2pCLGtCQUFrQixDQUFDLGdDQUFELENBQWpDOztJQUNBLElBQUlnQixFQUFFLElBQUksSUFBTixJQUFjQyxNQUFNLElBQUksSUFBeEIsSUFBZ0MsT0FBT0QsRUFBRSxDQUFDRSxJQUFWLEtBQW1CLFVBQXZELEVBQW1FO01BQy9EckIsRUFBRSxDQUFDSyxVQUFILEdBQWdCRCxrQkFBaEI7TUFDQSxPQUFPLEtBQVA7SUFDSDs7SUFFRFcsTUFBTSxDQUFDQyxTQUFQLEdBQW1CLE1BQU07TUFDckIsSUFBSUksTUFBTSxDQUFDRSxPQUFQLElBQWtCLElBQWxCLElBQTBCLE9BQU9GLE1BQU0sQ0FBQ0UsT0FBUCxDQUFlQyxRQUF0QixLQUFtQyxVQUFqRSxFQUE2RTtRQUN6RSxPQUFPLElBQVA7TUFDSDs7TUFFRCxPQUFPSCxNQUFNLENBQUNFLE9BQVAsQ0FBZUMsUUFBZixFQUFQO0lBQ0gsQ0FORCxDQXRDQSxDQThDQTs7O0lBQ0F2QixFQUFFLENBQUNLLFVBQUgsR0FBZ0JELGtCQUFoQjtJQUVBLE1BQU1vQixrQkFBa0IsR0FBR0wsRUFBRSxDQUFDRSxJQUFILENBQVFmLElBQVIsQ0FBYWEsRUFBYixDQUEzQjs7SUFDQUEsRUFBRSxDQUFDRSxJQUFILEdBQVdJLElBQUQsSUFBVTtNQUNoQixNQUFNQyxNQUFNLEdBQUdGLGtCQUFrQixDQUFDQyxJQUFELENBQWpDO01BQ0FsQixpQkFBaUIsR0FBRyxJQUFwQjtNQUNBLE9BQU9tQixNQUFQO0lBQ0gsQ0FKRDs7SUFLQVAsRUFBRSxDQUFDRSxJQUFILEdBQVVGLEVBQUUsQ0FBQ0UsSUFBSCxDQUFRZixJQUFSLENBQWFhLEVBQWIsQ0FBVjtJQUVBLE9BQU8sSUFBUDtFQUNILENBMURELENBMERFLE9BQU9ELENBQVAsRUFBVTtJQUNSbEIsRUFBRSxDQUFDSyxVQUFILEdBQWdCRCxrQkFBaEI7SUFDQUYsTUFBTSxDQUFDeUIsS0FBUCxDQUFhLGdDQUFiLEVBQStDVCxDQUEvQztJQUNBLE9BQU8sS0FBUDtFQUNIO0FBQ0o7O0FBRURVLE1BQU0sQ0FBQ0MsT0FBUCxDQUFlckIsV0FBZixHQUE2QkEsV0FBN0IifQ== | ||
module.exports = { | ||
patchTracer: patchTracer, | ||
tracerInitialized: false | ||
}; | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJhaCIsInJlcXVpcmUiLCJsb2dnZXIiLCJjb25kaXRpb25hbFJlcXVpcmUiLCJvcmlnaW5hbENyZWF0ZUhvb2siLCJjcmVhdGVIb29rIiwiYmluZCIsInBhdGNoVHJhY2VyIiwiZGVidWciLCJob29rIiwib3JpZ2luYWxCZWZvcmUiLCJiZWZvcmUiLCJhc3luY0lkIiwibW9kdWxlIiwiZXhwb3J0cyIsInRyYWNlckluaXRpYWxpemVkIiwic3BhbiIsImdsb2JhbCIsIl9fZ2V0U3BhbiIsIl9fY3VycmVudFNwYW4iLCJlIiwiZGQiLCJkZENvcmUiLCJpbml0Iiwic3RvcmFnZSIsImdldFN0b3JlIiwib3JpZ2luYWxUcmFjZXJJbml0Iiwib3B0cyIsInRyYWNlciIsImVycm9yIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL1RyYWNpbmdQYXRjaGVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuY29uc3QgYWggPSByZXF1aXJlKCdhc3luY19ob29rcycpO1xuY29uc3QgeyBsb2dnZXIgfSA9IHJlcXVpcmUoJy4vbG9nZ2VyJyk7XG5jb25zdCB7IGNvbmRpdGlvbmFsUmVxdWlyZSB9ID0gcmVxdWlyZSgnLi91dGlscycpO1xuXG5jb25zdCBvcmlnaW5hbENyZWF0ZUhvb2sgPSBhaC5jcmVhdGVIb29rLmJpbmQoYWgpO1xuXG5mdW5jdGlvbiBwYXRjaFRyYWNlcigpIHtcbiAgICB0cnkge1xuICAgICAgICBsb2dnZXIuZGVidWcoXCJIb29raW5nIGFzeW5jX2hvb2tzJyBgY3JlYXRlSG9va2BcIik7XG5cbiAgICAgICAgLy8gQ2hhbmdlIGBjcmVhdGVIb29rYCB0byB3aGF0IHdlIHdhbnQgaXQgdG8gYmVcbiAgICAgICAgYWguY3JlYXRlSG9vayA9IChob29rKSA9PiB7XG4gICAgICAgICAgICBsZXQgb3JpZ2luYWxCZWZvcmUgPSBob29rLmJlZm9yZTtcbiAgICAgICAgICAgIGlmICh0eXBlb2Ygb3JpZ2luYWxCZWZvcmUgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgICAgICAgICAgIG9yaWdpbmFsQmVmb3JlID0gb3JpZ2luYWxCZWZvcmUuYmluZChob29rKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGhvb2suYmVmb3JlID0gKGFzeW5jSWQpID0+IHtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBpZiAobW9kdWxlLmV4cG9ydHMudHJhY2VySW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNwYW4gPSBnbG9iYWwuX19nZXRTcGFuKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3BhbiAhPSBudWxsICYmIHNwYW4uc3BhbiAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2xvYmFsLl9fY3VycmVudFNwYW4gPSBzcGFuLnNwYW47XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgICAgIGxvZ2dlci5kZWJ1ZyhcImhvb2suYmVmb3JlIGZhaWxlZCB3aXRoOlwiLCBlKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIG9yaWdpbmFsQmVmb3JlID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgb3JpZ2luYWxCZWZvcmUoYXN5bmNJZCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGhvb2suYmVmb3JlID0gaG9vay5iZWZvcmUuYmluZChob29rKTtcblxuICAgICAgICAgICAgcmV0dXJuIG9yaWdpbmFsQ3JlYXRlSG9vayhob29rKTtcbiAgICAgICAgfTtcbiAgICAgICAgYWguY3JlYXRlSG9vayA9IGFoLmNyZWF0ZUhvb2suYmluZChhaCk7XG5cbiAgICAgICAgY29uc3QgZGQgPSBjb25kaXRpb25hbFJlcXVpcmUoJ2RkLXRyYWNlJyk7XG4gICAgICAgIGNvbnN0IGRkQ29yZSA9IGNvbmRpdGlvbmFsUmVxdWlyZSgnZGQtdHJhY2UvcGFja2FnZXMvZGF0YWRvZy1jb3JlJyk7XG4gICAgICAgIGlmIChkZCA9PSBudWxsIHx8IGRkQ29yZSA9PSBudWxsIHx8IHR5cGVvZiBkZC5pbml0ICE9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgIGFoLmNyZWF0ZUhvb2sgPSBvcmlnaW5hbENyZWF0ZUhvb2s7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBnbG9iYWwuX19nZXRTcGFuID0gKCkgPT4ge1xuICAgICAgICAgICAgaWYgKGRkQ29yZS5zdG9yYWdlID09IG51bGwgfHwgdHlwZW9mIGRkQ29yZS5zdG9yYWdlLmdldFN0b3JlICE9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGRkQ29yZS5zdG9yYWdlLmdldFN0b3JlKCk7XG4gICAgICAgIH07XG5cbiAgICAgICAgLy8gUmV0dXJuIGBjcmVhdGVIb29rYCB0byB3aGF0IGl0IHdhc1xuICAgICAgICBhaC5jcmVhdGVIb29rID0gb3JpZ2luYWxDcmVhdGVIb29rO1xuXG4gICAgICAgIGNvbnN0IG9yaWdpbmFsVHJhY2VySW5pdCA9IGRkLmluaXQuYmluZChkZCk7XG4gICAgICAgIGRkLmluaXQgPSAob3B0cykgPT4ge1xuICAgICAgICAgICAgY29uc3QgdHJhY2VyID0gb3JpZ2luYWxUcmFjZXJJbml0KG9wdHMpO1xuICAgICAgICAgICAgbW9kdWxlLmV4cG9ydHMudHJhY2VySW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgICAgICAgICAgcmV0dXJuIHRyYWNlcjtcbiAgICAgICAgfTtcbiAgICAgICAgZGQuaW5pdCA9IGRkLmluaXQuYmluZChkZCk7XG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBhaC5jcmVhdGVIb29rID0gb3JpZ2luYWxDcmVhdGVIb29rO1xuICAgICAgICBsb2dnZXIuZXJyb3IoXCJGYWlsZWQgdG8gaG9vayBkZCdzIGFzeW5jIGhvb2tcIiwgZSk7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICAgIHBhdGNoVHJhY2VyOiBwYXRjaFRyYWNlcixcbiAgICB0cmFjZXJJbml0aWFsaXplZDogZmFsc2Vcbn07XG4iXSwibWFwcGluZ3MiOiJBQUFBOztBQUVBLE1BQU1BLEVBQUUsR0FBR0MsT0FBTyxDQUFDLGFBQUQsQ0FBbEI7O0FBQ0EsTUFBTTtFQUFFQztBQUFGLElBQWFELE9BQU8sQ0FBQyxVQUFELENBQTFCOztBQUNBLE1BQU07RUFBRUU7QUFBRixJQUF5QkYsT0FBTyxDQUFDLFNBQUQsQ0FBdEM7O0FBRUEsTUFBTUcsa0JBQWtCLEdBQUdKLEVBQUUsQ0FBQ0ssVUFBSCxDQUFjQyxJQUFkLENBQW1CTixFQUFuQixDQUEzQjs7QUFFQSxTQUFTTyxXQUFULEdBQXVCO0VBQ25CLElBQUk7SUFDQUwsTUFBTSxDQUFDTSxLQUFQLENBQWEsbUNBQWIsRUFEQSxDQUdBOztJQUNBUixFQUFFLENBQUNLLFVBQUgsR0FBaUJJLElBQUQsSUFBVTtNQUN0QixJQUFJQyxjQUFjLEdBQUdELElBQUksQ0FBQ0UsTUFBMUI7O01BQ0EsSUFBSSxPQUFPRCxjQUFQLEtBQTBCLFVBQTlCLEVBQTBDO1FBQ3RDQSxjQUFjLEdBQUdBLGNBQWMsQ0FBQ0osSUFBZixDQUFvQkcsSUFBcEIsQ0FBakI7TUFDSDs7TUFDREEsSUFBSSxDQUFDRSxNQUFMLEdBQWVDLE9BQUQsSUFBYTtRQUN2QixJQUFJO1VBQ0EsSUFBSUMsTUFBTSxDQUFDQyxPQUFQLENBQWVDLGlCQUFuQixFQUFzQztZQUNsQyxNQUFNQyxJQUFJLEdBQUdDLE1BQU0sQ0FBQ0MsU0FBUCxFQUFiOztZQUNBLElBQUlGLElBQUksSUFBSSxJ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 |
@@ -37,2 +37,8 @@ "use strict"; | ||
removeAugfromInspector(augId) { | ||
for (let name in this.locationServices) { | ||
this.locationServices[name].removeAugfromInspector(augId); | ||
} | ||
} | ||
reapplyAugAfterTemporaryRemoval(aug) { | ||
@@ -122,2 +128,2 @@ for (let name in this.locationServices) { | ||
exports.default = TriggerServices; | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb25maWciLCJyZXF1aXJlIiwiVHJpZ2dlclNlcnZpY2VzIiwiY29uc3RydWN0b3IiLCJsb2NhdGlvblNlcnZpY2VzIiwiY29sbGVjdGlvblNlcnZpY2VzIiwibG9hZFNlcnZpY2VzIiwiZ2V0U2VydmljZSIsIm5hbWUiLCJyZW1vdmVBdWciLCJhdWdJZCIsInJlYXBwbHlBdWdBZnRlclRlbXBvcmFyeVJlbW92YWwiLCJhdWciLCJyZW1vdmVBdWdUZW1wb3JhcmlseSIsImR1cmF0aW9uIiwiY2xlYXJBdWdzIiwiT2JqZWN0Iiwia2V5cyIsInN0YXJ0IiwiY2xvc2UiLCJsb2NhdGlvblNlcnZpY2VzVG9DbG9zZSIsInZhbHVlcyIsImNvbGxlY3Rpb25TZXJ2aWNlc1RvQ2xvc2UiLCJsb2NhdGlvbl9zZXJ2aWNlIiwiY29sbGVjdGlvbl9zZXJ2aWNlIiwiRGVidWdnZXJTZXJ2aWNlIiwiZSIsImxvZ2dlciIsImV4Y2VwdGlvbiIsIk1lbW9yeVVzYWdlTG9nU2VydmljZSIsIkVOQUJMRUQiLCJkZWJ1ZyIsIm1lbW9yeVVzYWdlTG9nU2VydmljZSIsIk1vbml0b3JDb25maWd1cmF0aW9uIiwibW9uaXRvclNlcnZpY2UiLCJTeXN0ZW1EYXRhQ29sbGVjdG9yIiwiTG9nSGFuZGxlclNlcnZpY2UiLCJsb2dnaW5nU2VydmljZSIsIkxvZ2dpbmdTZXJ2aWNlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL1RyaWdnZXJTZXJ2aWNlcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RlYnVnZ2VyU2VydmljZX0gZnJvbSBcIi4vc2VydmljZXMvRGVidWdnZXJTZXJ2aWNlXCI7XHJcblxyXG5pbXBvcnQge2xvZ2dlcn0gZnJvbSBcIi4vbG9nZ2VyXCI7XHJcbmNvbnN0IGNvbmZpZyA9IHJlcXVpcmUoXCIuL2NvbmZpZ1wiKTtcclxuaW1wb3J0IHtNZW1vcnlVc2FnZUxvZ1NlcnZpY2V9IGZyb20gXCIuL3NlcnZpY2VzL01lbW9yeVVzYWdlTG9nU2VydmljZVwiO1xyXG5pbXBvcnQge1N5c3RlbURhdGFDb2xsZWN0b3J9IGZyb20gXCIuL3NlcnZpY2VzL1N5c3RlbURhdGFDb2xsZWN0b3JcIjtcclxuaW1wb3J0IHtMb2dnaW5nU2VydmljZX0gZnJvbSBcIi4vc2VydmljZXMvTG9nZ2luZ1NlcnZpY2VcIjtcclxuXHJcblxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBUcmlnZ2VyU2VydmljZXMge1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgICAgIHRoaXMubG9jYXRpb25TZXJ2aWNlcyA9IHt9O1xyXG4gICAgICAgIHRoaXMuY29sbGVjdGlvblNlcnZpY2VzID0ge307XHJcblxyXG4gICAgICAgIHRoaXMubG9hZFNlcnZpY2VzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0U2VydmljZShuYW1lKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubG9jYXRpb25TZXJ2aWNlc1tuYW1lXTtcclxuICAgIH1cclxuXHJcbiAgICByZW1vdmVBdWcoYXVnSWQpIHtcclxuICAgICAgICBmb3IgKGxldCBuYW1lIGluIHRoaXMubG9jYXRpb25TZXJ2aWNlcykge1xyXG4gICAgICAgICAgICB0aGlzLmxvY2F0aW9uU2VydmljZXNbbmFtZV0ucmVtb3ZlQXVnKGF1Z0lkKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmVhcHBseUF1Z0FmdGVyVGVtcG9yYXJ5UmVtb3ZhbChhdWcpIHtcclxuICAgICAgICBmb3IgKGxldCBuYW1lIGluIHRoaXMubG9jYXRpb25TZXJ2aWNlcykge1xyXG4gICAgICAgICAgICB0aGlzLmxvY2F0aW9uU2VydmljZXNbbmFtZV0ucmVhcHBseUF1Z0FmdGVyVGVtcG9yYXJ5UmVtb3ZhbChhdWcpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZW1vdmVBdWdUZW1wb3JhcmlseShhdWdJZCwgZHVyYXRpb24pIHtcclxuICAgICAgICBmb3IgKGxldCBuYW1lIGluIHRoaXMubG9jYXRpb25TZXJ2aWNlcykge1xyXG4gICAgICAgICAgICB0aGlzLmxvY2F0aW9uU2VydmljZXNbbmFtZV0ucmVtb3ZlQXVnVGVtcG9yYXJpbHkoYXVnSWQsIGR1cmF0aW9uKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgY2xlYXJBdWdzKCkge1xyXG4gICAgICAgIGZvciAobGV0IG5hbWUgb2YgT2JqZWN0LmtleXModGhpcy5sb2NhdGlvblNlcnZpY2VzKSkge1xyXG4gICAgICAgICAgICB0aGlzLmxvY2F0aW9uU2VydmljZXNbbmFtZV0uY2xlYXJBdWdzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHN0YXJ0KCkge1xyXG4gICAgICAgIHRoaXMubG9hZFNlcnZpY2VzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgYXN5bmMgY2xvc2UoKSB7XHJcbiAgICAgICAgY29uc3QgbG9jYXRpb25TZXJ2aWNlc1RvQ2xvc2UgPSBbLi4uT2JqZWN0LnZhbHVlcyh0aGlzLmxvY2F0aW9uU2VydmljZXMpXTtcclxuICAgICAgICBjb25zdCBjb2xsZWN0aW9uU2VydmljZXNUb0Nsb3NlID1bLi4uT2JqZWN0LnZhbHVlcyh0aGlzLmNvbGxlY3Rpb25TZXJ2aWNlcyldO1xyXG5cclxuICAgICAgICB0aGlzLmxvY2F0aW9uU2VydmljZXMgPSB7fTtcclxuICAgICAgICB0aGlzLmNvbGxlY3Rpb25TZXJ2aWNlcyA9IHt9O1xyXG5cclxuICAgICAgICBmb3IgKGxldCBsb2NhdGlvbl9zZXJ2aWNlIG9mIGxvY2F0aW9uU2VydmljZXNUb0Nsb3NlKSB7XHJcbiAgICAgICAgICAgIGF3YWl0IGxvY2F0aW9uX3NlcnZpY2UuY2xvc2UoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGZvciAobGV0IGNvbGxlY3Rpb25fc2VydmljZSBvZiBjb2xsZWN0aW9uU2VydmljZXNUb0Nsb3NlKSB7XHJcbiAgICAgICAgICAgIGNvbGxlY3Rpb25fc2VydmljZS5jbG9zZSgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICB9XHJcblxyXG4gICAgbG9hZFNlcnZpY2VzKCkge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIHRoaXMubG9jYXRpb25TZXJ2aWNlc1snRGVidWdnZXJTZXJ2aWNlJ10gPSBuZXcgRGVidWdnZXJTZXJ2aWNlKCk7XHJcbiAgICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICBsb2dnZXIuZXhjZXB0aW9uKFwiRXJyb3Igc3RhcnRpbmcgbG9jYXRpb24gYmFzZWQgc2VydmljZXNcIiwgZSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoY29uZmlnLk1lbW9yeVVzYWdlTG9nU2VydmljZS5FTkFCTEVEKSB7XHJcbiAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICBsb2dnZXIuZGVidWcoJ1N0YXJ0aW5nIG1lbW9yeSB1c2FnZSBsb2cgc2VydmljZScpO1xyXG4gICAgICAgICAgICAgICAgbGV0IG1lbW9yeVVzYWdlTG9nU2VydmljZSA9IG5ldyBNZW1vcnlVc2FnZUxvZ1NlcnZpY2UoKTtcclxuICAgICAgICAgICAgICAgIG1lbW9yeVVzYWdlTG9nU2VydmljZS5zdGFydCgpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jb2xsZWN0aW9uU2VydmljZXNbJ01lbW9yeVVzYWdlTG9nU2VydmljZSddID0gbWVtb3J5VXNhZ2VMb2dTZXJ2aWNlO1xyXG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgICAgICBsb2dnZXIuZXhjZXB0aW9uKFwiRXJyb3Igc3RhcnRpbmcgbWVtb3J5IHVzYWdlIGxvZyBzZXJ2aWNlXCIsIGUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoY29uZmlnLk1vbml0b3JDb25maWd1cmF0aW9uLkVOQUJMRUQpIHtcclxuICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgIGxvZ2dlci5kZWJ1ZygnU3RhcnRpbmcgbW9uaXRvciBTZXJ2aWNlJyk7XHJcbiAgICAgICAgICAgICAgICBsZXQgbW9uaXRvclNlcnZpY2UgPSBuZXcgU3lzdGVtRGF0YUNvbGxlY3RvcigpO1xyXG4gICAgICAgICAgICAgICAgbW9uaXRvclNlcnZpY2Uuc3RhcnQoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuY29sbGVjdGlvblNlcnZpY2VzWydNb25pdG9yU2VydmljZSddID0gbW9uaXRvclNlcnZpY2U7XHJcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgICAgIGxvZ2dlci5leGNlcHRpb24oXCJFcnJvciBzdGFydGluZyBtb25pdG9yIHNlcnZpY2VcIiwgZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChjb25maWcuTG9nSGFuZGxlclNlcnZpY2UuRU5BQkxFRCkge1xyXG4gICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgbG9nZ2VyLmRlYnVnKCdTdGFydGluZyBMb2dnaW5nIFNlcnZpY2UnKVxyXG5cclxuICAgICAgICAgICAgICAgIGxldCBsb2dnaW5nU2VydmljZSA9IG5ldyBMb2dnaW5nU2VydmljZSgpO1xyXG4gICAgICAgICAgICAgICAgbG9nZ2luZ1NlcnZpY2Uuc3RhcnQoKVxyXG4gICAgICAgICAgICAgICAgdGhpcy5sb2NhdGlvblNlcnZpY2VzWydsb2dnaW5nU2VydmljZSddID0gbG9nZ2luZ1NlcnZpY2U7XHJcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgICAgIGxvZ2dlci5leGNlcHRpb24oXCJFcnJvciBzdGFydGluZyBsb2dnaW5nIHNlcnZpY2VcIiwgZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG59XHJcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOztBQUVBOztBQUVBOztBQUNBOztBQUNBOztBQUhBLE1BQU1BLE1BQU0sR0FBR0MsT0FBTyxDQUFDLFVBQUQsQ0FBdEI7O0FBTWUsTUFBTUMs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 | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb25maWciLCJyZXF1aXJlIiwiVHJpZ2dlclNlcnZpY2VzIiwiY29uc3RydWN0b3IiLCJsb2NhdGlvblNlcnZpY2VzIiwiY29sbGVjdGlvblNlcnZpY2VzIiwibG9hZFNlcnZpY2VzIiwiZ2V0U2VydmljZSIsIm5hbWUiLCJyZW1vdmVBdWciLCJhdWdJZCIsInJlbW92ZUF1Z2Zyb21JbnNwZWN0b3IiLCJyZWFwcGx5QXVnQWZ0ZXJUZW1wb3JhcnlSZW1vdmFsIiwiYXVnIiwicmVtb3ZlQXVnVGVtcG9yYXJpbHkiLCJkdXJhdGlvbiIsImNsZWFyQXVncyIsIk9iamVjdCIsImtleXMiLCJzdGFydCIsImNsb3NlIiwibG9jYXRpb25TZXJ2aWNlc1RvQ2xvc2UiLCJ2YWx1ZXMiLCJjb2xsZWN0aW9uU2VydmljZXNUb0Nsb3NlIiwibG9jYXRpb25fc2VydmljZSIsImNvbGxlY3Rpb25fc2VydmljZSIsIkRlYnVnZ2VyU2VydmljZSIsImUiLCJsb2dnZXIiLCJleGNlcHRpb24iLCJNZW1vcnlVc2FnZUxvZ1NlcnZpY2UiLCJFTkFCTEVEIiwiZGVidWciLCJtZW1vcnlVc2FnZUxvZ1NlcnZpY2UiLCJNb25pdG9yQ29uZmlndXJhdGlvbiIsIm1vbml0b3JTZXJ2aWNlIiwiU3lzdGVtRGF0YUNvbGxlY3RvciIsIkxvZ0hhbmRsZXJTZXJ2aWNlIiwibG9nZ2luZ1NlcnZpY2UiLCJMb2dnaW5nU2VydmljZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9UcmlnZ2VyU2VydmljZXMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEZWJ1Z2dlclNlcnZpY2V9IGZyb20gXCIuL3NlcnZpY2VzL0RlYnVnZ2VyU2VydmljZVwiO1xyXG5cclxuaW1wb3J0IHtsb2dnZXJ9IGZyb20gXCIuL2xvZ2dlclwiO1xyXG5jb25zdCBjb25maWcgPSByZXF1aXJlKFwiLi9jb25maWdcIik7XHJcbmltcG9ydCB7TWVtb3J5VXNhZ2VMb2dTZXJ2aWNlfSBmcm9tIFwiLi9zZXJ2aWNlcy9NZW1vcnlVc2FnZUxvZ1NlcnZpY2VcIjtcclxuaW1wb3J0IHtTeXN0ZW1EYXRhQ29sbGVjdG9yfSBmcm9tIFwiLi9zZXJ2aWNlcy9TeXN0ZW1EYXRhQ29sbGVjdG9yXCI7XHJcbmltcG9ydCB7TG9nZ2luZ1NlcnZpY2V9IGZyb20gXCIuL3NlcnZpY2VzL0xvZ2dpbmdTZXJ2aWNlXCI7XHJcblxyXG5cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVHJpZ2dlclNlcnZpY2VzIHtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICB0aGlzLmxvY2F0aW9uU2VydmljZXMgPSB7fTtcclxuICAgICAgICB0aGlzLmNvbGxlY3Rpb25TZXJ2aWNlcyA9IHt9O1xyXG5cclxuICAgICAgICB0aGlzLmxvYWRTZXJ2aWNlcygpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFNlcnZpY2UobmFtZSkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmxvY2F0aW9uU2VydmljZXNbbmFtZV07XHJcbiAgICB9XHJcblxyXG4gICAgcmVtb3ZlQXVnKGF1Z0lkKSB7XHJcbiAgICAgICAgZm9yIChsZXQgbmFtZSBpbiB0aGlzLmxvY2F0aW9uU2VydmljZXMpIHtcclxuICAgICAgICAgICAgdGhpcy5sb2NhdGlvblNlcnZpY2VzW25hbWVdLnJlbW92ZUF1ZyhhdWdJZCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJlbW92ZUF1Z2Zyb21JbnNwZWN0b3IoYXVnSWQpIHtcclxuICAgICAgICBmb3IgKGxldCBuYW1lIGluIHRoaXMubG9jYXRpb25TZXJ2aWNlcykge1xyXG4gICAgICAgICAgICB0aGlzLmxvY2F0aW9uU2VydmljZXNbbmFtZV0ucmVtb3ZlQXVnZnJvbUluc3BlY3RvcihhdWdJZCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJlYXBwbHlBdWdBZnRlclRlbXBvcmFyeVJlbW92YWwoYXVnKSB7XHJcbiAgICAgICAgZm9yIChsZXQgbmFtZSBpbiB0aGlzLmxvY2F0aW9uU2VydmljZXMpIHtcclxuICAgICAgICAgICAgdGhpcy5sb2NhdGlvblNlcnZpY2VzW25hbWVdLnJlYXBwbHlBdWdBZnRlclRlbXBvcmFyeVJlbW92YWwoYXVnKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmVtb3ZlQXVnVGVtcG9yYXJpbHkoYXVnSWQsIGR1cmF0aW9uKSB7XHJcbiAgICAgICAgZm9yIChsZXQgbmFtZSBpbiB0aGlzLmxvY2F0aW9uU2VydmljZXMpIHtcclxuICAgICAgICAgICAgdGhpcy5sb2NhdGlvblNlcnZpY2VzW25hbWVdLnJlbW92ZUF1Z1RlbXBvcmFyaWx5KGF1Z0lkLCBkdXJhdGlvbik7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGNsZWFyQXVncygpIHtcclxuICAgICAgICBmb3IgKGxldCBuYW1lIG9mIE9iamVjdC5rZXlzKHRoaXMubG9jYXRpb25TZXJ2aWNlcykpIHtcclxuICAgICAgICAgICAgdGhpcy5sb2NhdGlvblNlcnZpY2VzW25hbWVdLmNsZWFyQXVncygpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzdGFydCgpIHtcclxuICAgICAgICB0aGlzLmxvYWRTZXJ2aWNlcygpO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIGNsb3NlKCkge1xyXG4gICAgICAgIGNvbnN0IGxvY2F0aW9uU2VydmljZXNUb0Nsb3NlID0gWy4uLk9iamVjdC52YWx1ZXModGhpcy5sb2NhdGlvblNlcnZpY2VzKV07XHJcbiAgICAgICAgY29uc3QgY29sbGVjdGlvblNlcnZpY2VzVG9DbG9zZSA9Wy4uLk9iamVjdC52YWx1ZXModGhpcy5jb2xsZWN0aW9uU2VydmljZXMpXTtcclxuXHJcbiAgICAgICAgdGhpcy5sb2NhdGlvblNlcnZpY2VzID0ge307XHJcbiAgICAgICAgdGhpcy5jb2xsZWN0aW9uU2VydmljZXMgPSB7fTtcclxuXHJcbiAgICAgICAgZm9yIChsZXQgbG9jYXRpb25fc2VydmljZSBvZiBsb2NhdGlvblNlcnZpY2VzVG9DbG9zZSkge1xyXG4gICAgICAgICAgICBhd2FpdCBsb2NhdGlvbl9zZXJ2aWNlLmNsb3NlKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBmb3IgKGxldCBjb2xsZWN0aW9uX3NlcnZpY2Ugb2YgY29sbGVjdGlvblNlcnZpY2VzVG9DbG9zZSkge1xyXG4gICAgICAgICAgICBjb2xsZWN0aW9uX3NlcnZpY2UuY2xvc2UoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuICAgIGxvYWRTZXJ2aWNlcygpIHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICB0aGlzLmxvY2F0aW9uU2VydmljZXNbJ0RlYnVnZ2VyU2VydmljZSddID0gbmV3IERlYnVnZ2VyU2VydmljZSgpO1xyXG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgbG9nZ2VyLmV4Y2VwdGlvbihcIkVycm9yIHN0YXJ0aW5nIGxvY2F0aW9uIGJhc2VkIHNlcnZpY2VzXCIsIGUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGNvbmZpZy5NZW1vcnlVc2FnZUxvZ1NlcnZpY2UuRU5BQkxFRCkge1xyXG4gICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgbG9nZ2VyLmRlYnVnKCdTdGFydGluZyBtZW1vcnkgdXNhZ2UgbG9nIHNlcnZpY2UnKTtcclxuICAgICAgICAgICAgICAgIGxldCBtZW1vcnlVc2FnZUxvZ1NlcnZpY2UgPSBuZXcgTWVtb3J5VXNhZ2VMb2dTZXJ2aWNlKCk7XHJcbiAgICAgICAgICAgICAgICBtZW1vcnlVc2FnZUxvZ1NlcnZpY2Uuc3RhcnQoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuY29sbGVjdGlvblNlcnZpY2VzWydNZW1vcnlVc2FnZUxvZ1NlcnZpY2UnXSA9IG1lbW9yeVVzYWdlTG9nU2VydmljZTtcclxuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICAgICAgbG9nZ2VyLmV4Y2VwdGlvbihcIkVycm9yIHN0YXJ0aW5nIG1lbW9yeSB1c2FnZSBsb2cgc2VydmljZVwiLCBlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGNvbmZpZy5Nb25pdG9yQ29uZmlndXJhdGlvbi5FTkFCTEVEKSB7XHJcbiAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICBsb2dnZXIuZGVidWcoJ1N0YXJ0aW5nIG1vbml0b3IgU2VydmljZScpO1xyXG4gICAgICAgICAgICAgICAgbGV0IG1vbml0b3JTZXJ2aWNlID0gbmV3IFN5c3RlbURhdGFDb2xsZWN0b3IoKTtcclxuICAgICAgICAgICAgICAgIG1vbml0b3JTZXJ2aWNlLnN0YXJ0KCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNvbGxlY3Rpb25TZXJ2aWNlc1snTW9uaXRvclNlcnZpY2UnXSA9IG1vbml0b3JTZXJ2aWNlO1xyXG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgICAgICBsb2dnZXIuZXhjZXB0aW9uKFwiRXJyb3Igc3RhcnRpbmcgbW9uaXRvciBzZXJ2aWNlXCIsIGUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoY29uZmlnLkxvZ0hhbmRsZXJTZXJ2aWNlLkVOQUJMRUQpIHtcclxuICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgIGxvZ2dlci5kZWJ1ZygnU3RhcnRpbmcgTG9nZ2luZyBTZXJ2aWNlJylcclxuXHJcbiAgICAgICAgICAgICAgICBsZXQgbG9nZ2luZ1NlcnZpY2UgPSBuZXcgTG9nZ2luZ1NlcnZpY2UoKTtcclxuICAgICAgICAgICAgICAgIGxvZ2dpbmdTZXJ2aWNlLnN0YXJ0KClcclxuICAgICAgICAgICAgICAgIHRoaXMubG9jYXRpb25TZXJ2aWNlc1snbG9nZ2luZ1NlcnZpY2UnXSA9IGxvZ2dpbmdTZXJ2aWNlO1xyXG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgICAgICAgICBsb2dnZXIuZXhjZXB0aW9uKFwiRXJyb3Igc3RhcnRpbmcgbG9nZ2luZyBzZXJ2aWNlXCIsIGUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxufVxyXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7QUFFQTs7QUFFQTs7QUFDQTs7QUFDQTs7QUFIQSxNQUFNQSxNQUFNLEdBQUdDLE9BQU8sQ0FBQyxVQUFELENBQXRCOztBQU1lLE1BQU1DLGVBQU4sQ0FBc0I7RUFFakNDLFdBQVcsR0FBRztJQUNWLEtBQUtDLGdCQUFMLEdBQXdCLEVBQXhCO0lBQ0EsS0FBS0Msa0JBQUwsR0FBMEIsRUFBMUI7SUFFQSxLQUFLQyxZQUFMO0VBQ0g7O0VBRURDLFVBQVUsQ0FBQ0MsSUFBRCxFQUFPO0lBQ2IsT0FBTyxLQUFLSixnQkFBTCxDQUFzQkksSUFBdEIsQ0FBUDtFQUNIOztFQUVEQyxTQUFTLENBQUNDLEtBQUQsRUFBUTtJQUNiLEtBQUssSUFBSUYsSUFBVCxJQUFpQixLQUFLSixnQkFBdEIsRUFBd0M7TUFDcEMsS0FBS0EsZ0JBQUwsQ0FBc0JJLElBQXRCLEVBQTRCQyxTQUE1QixDQUFzQ0MsS0FBdEM7SUFDSDtFQUNKOztFQUVEQyxzQkFBc0IsQ0FBQ0QsS0FBRCxFQUFRO0lBQzFCLEtBQUssSUFBSUYsSUFBVCxJQUFpQixLQUFLSixnQkFBdEIsRUFBd0M7TUFDcEMsS0FBS0EsZ0JBQUwsQ0FBc0JJLElBQXRCLEVBQTRCRyxzQkFBNUIsQ0FBbURELEtBQW5EO0lBQ0g7RUFDSjs7RUFFREUsK0JBQStCLENBQUNDLEdBQUQsRUFBTTtJQUNqQyxLQUFLLElBQUlMLElBQVQsSUFBaUIsS0FBS0osZ0JBQXRCLEVBQXdDO01BQ3BDLEtBQUtBLGdCQUFMLENBQXNCSSxJQUF0QixFQUE0QkksK0JBQTVCLENBQTREQyxHQUE1RDtJQUNIO0VBQ0o7O0VBRURDLG9CQUFvQixDQUFDSixLQUFELEVBQVFLLFFBQVIsRUFBa0I7SUFDbEMsS0FBSyxJQUFJUCxJQUFULElBQWlCLEtBQUtKLGdCQUF0QixFQUF3QztNQUNwQyxLQUFLQSxnQkFBTCxDQUFzQkksSUFBdEIsRUFBNEJNLG9CQUE1QixDQUFpREosS0FBakQsRUFBd0RLLFFBQXhEO0lBQ0g7RUFDSjs7RUFFREMsU0FBUyxHQUFHO0lBQ1IsS0FBSyxJQUFJUixJQUFULElBQWlCUyxNQUFNLENBQUNDLElBQVAsQ0FBWSxLQUFLZCxnQkFBakIsQ0FBakIsRUFBcUQ7TUFDakQsS0FBS0EsZ0JBQUwsQ0FBc0JJLElBQXRCLEVBQTRCUSxTQUE1QjtJQUNIO0VBQ0o7O0VBRURHLEtBQUssR0FBRztJQUNKLEtBQUtiLFlBQUw7RUFDSDs7RUFFVSxNQUFMYyxLQUFLLEdBQUc7SUFDVixNQUFNQyx1QkFBdUIsR0FBRyxDQUFDLEdBQUdKLE1BQU0sQ0FBQ0ssTUFBUCxDQUFjLEtBQUtsQixnQkFBbkIsQ0FBSixDQUFoQztJQUNBLE1BQU1tQix5QkFBeUIsR0FBRSxDQUFDLEdBQUdOLE1BQU0sQ0FBQ0ssTUFBUCxDQUFjLEtBQUtqQixrQkFBbkIsQ0FBSixDQUFqQztJQUVBLEtBQUtELGdCQUFMLEdBQXdCLEVBQXhCO0lBQ0EsS0FBS0Msa0JBQUwsR0FBMEIsRUFBMUI7O0lBRUEsS0FBSyxJQUFJbUIsZ0JBQVQsSUFBNkJILHVCQUE3QixFQUFzRDtNQUNsRCxNQUFNRyxnQkFBZ0IsQ0FBQ0osS0FBakIsRUFBTjtJQUNIOztJQUVELEtBQUssSUFBSUssa0JBQVQsSUFBK0JGLHlCQUEvQixFQUEwRDtNQUN0REUsa0JBQWtCLENBQUNMLEtBQW5CO0lBQ0g7RUFFSjs7RUFFRGQsWUFBWSxHQUFHO0lBQ1gsSUFBSTtNQUNBLEtBQUtGLGdCQUFMLENBQXNCLGlCQUF0QixJQUEyQyxJQUFJc0IsZ0NBQUosRUFBM0M7SUFDSCxDQUZELENBRUUsT0FBT0MsQ0FBUCxFQUFVO01BQ1JDLGNBQUEsQ0FBT0MsU0FBUCxDQUFpQix3Q0FBakIsRUFBMkRGLENBQTNEO0lBQ0g7O0lBRUQsSUFBSTNCLE1BQU0sQ0FBQzhCLHFCQUFQLENBQTZCQyxPQUFqQyxFQUEwQztNQUN0QyxJQUFJO1FBQ0FILGNBQUEsQ0FBT0ksS0FBUCxDQUFhLG1DQUFiOztRQUNBLElBQUlDLHFCQUFxQixHQUFHLElBQUlILDRDQUFKLEVBQTVCO1FBQ0FHLHFCQUFxQixDQUFDZCxLQUF0QjtRQUNBLEtBQUtkLGtCQUFMLENBQXdCLHVCQUF4QixJQUFtRDRCLHFCQUFuRDtNQUNILENBTEQsQ0FLRSxPQUFPTixDQUFQLEVBQVU7UUFDUkMsY0FBQSxDQUFPQyxTQUFQLENBQWlCLHlDQUFqQixFQUE0REYsQ0FBNUQ7TUFDSDtJQUNKOztJQUVELElBQUkzQixNQUFNLENBQUNrQyxvQkFBUCxDQUE0QkgsT0FBaEMsRUFBeUM7TUFDckMsSUFBSTtRQUNBSCxjQUFBLENBQU9JLEtBQVAsQ0FBYSwwQkFBYjs7UUFDQSxJQUFJRyxjQUFjLEdBQUcsSUFBSUMsd0NBQUosRUFBckI7UUFDQUQsY0FBYyxDQUFDaEIsS0FBZjtRQUNBLEtBQUtkLGtCQUFMLENBQXdCLGdCQUF4QixJQUE0QzhCLGNBQTVDO01BQ0gsQ0FMRCxDQUtFLE9BQU9SLENBQVAsRUFBVTtRQUNSQyxjQUFBLENBQU9DLFNBQVAsQ0FBaUIsZ0NBQWpCLEVBQW1ERixDQUFuRDtNQUNIO0lBQ0o7O0lBRUQsSUFBSTNCLE1BQU0sQ0FBQ3FDLGlCQUFQLENBQXlCTixPQUE3QixFQUFzQztNQUNsQyxJQUFJO1FBQ0FILGNBQUEsQ0FBT0ksS0FBUCxDQUFhLDBCQUFiOztRQUVBLElBQUlNLGNBQWMsR0FBRyxJQUFJQyw4QkFBSixFQUFyQjtRQUNBRCxjQUFjLENBQUNuQixLQUFmO1FBQ0EsS0FBS2YsZ0JBQUwsQ0FBc0IsZ0JBQXRCLElBQTBDa0MsY0FBMUM7TUFDSCxDQU5ELENBTUUsT0FBT1gsQ0FBUCxFQUFVO1FBQ1JDLGNBQUEsQ0FBT0MsU0FBUCxDQUFpQixnQ0FBakIsRUFBbURGLENBQW5EO01BQ0g7SUFDSjtFQUNKOztBQXhHZ0MifQ== |
Sorry, the diff of this file is too big to display
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
4429040
27506