@softheon/armature 10.42.0 → 10.42.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/softheon-armature.umd.js +9 -2
- package/bundles/softheon-armature.umd.js.map +1 -1
- package/bundles/softheon-armature.umd.min.js +1 -1
- package/bundles/softheon-armature.umd.min.js.map +1 -1
- package/esm2015/lib/base-components/sof-button-toggle-group/sof-button-toggle-group.component.js +4 -2
- package/esm2015/lib/core/services/session.service.js +6 -2
- package/fesm2015/softheon-armature.js +8 -2
- package/fesm2015/softheon-armature.js.map +1 -1
- package/package.json +1 -1
- package/softheon-armature.metadata.json +1 -1
package/esm2015/lib/base-components/sof-button-toggle-group/sof-button-toggle-group.component.js
CHANGED
|
@@ -43,7 +43,9 @@ export class SofButtonToggleGroupComponent {
|
|
|
43
43
|
this.showErrorMessage = false;
|
|
44
44
|
if (this.control) {
|
|
45
45
|
this.control.valueAccessor = this;
|
|
46
|
-
|
|
46
|
+
setTimeout(() => {
|
|
47
|
+
this.controlName = this.control.name;
|
|
48
|
+
});
|
|
47
49
|
}
|
|
48
50
|
}
|
|
49
51
|
;
|
|
@@ -158,4 +160,4 @@ SofButtonToggleGroupComponent.propDecorators = {
|
|
|
158
160
|
toggleChange: [{ type: Output }],
|
|
159
161
|
onKeyDown: [{ type: HostListener, args: ['keydown', ['$event'],] }]
|
|
160
162
|
};
|
|
161
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29mLWJ1dHRvbi10b2dnbGUtZ3JvdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IlM6L0IwNC9fd29yay8zNTkvcy9saWJyYXJ5L3Byb2plY3RzL2FybWF0dXJlL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9iYXNlLWNvbXBvbmVudHMvc29mLWJ1dHRvbi10b2dnbGUtZ3JvdXAvc29mLWJ1dHRvbi10b2dnbGUtZ3JvdXAuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBcUIsUUFBUSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5SCxPQUFPLEVBQXlDLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFcEMsNENBQTRDO0FBTzVDLE1BQU0sT0FBTyw2QkFBNkI7SUFrRHRDOzs7T0FHRztJQUNILFlBQWdELE9BQWtCO1FBQWxCLFlBQU8sR0FBUCxPQUFPLENBQVc7UUFwRGxFLHFCQUFxQjtRQUNaLGNBQVMsR0FBVyxFQUFFLENBQUM7UUFFaEMsdUNBQXVDO1FBQzlCLGVBQVUsR0FBVyxFQUFFLENBQUM7UUFFakMsMkNBQTJDO1FBQ2xDLGVBQVUsR0FBWSxJQUFJLENBQUM7UUFFcEMsNkJBQTZCO1FBQ3BCLGVBQVUsR0FBaUUsRUFBRSxDQUFBO1FBRXRGLHVCQUF1QjtRQUNkLGdCQUFXLEdBQXlELEVBQUUsQ0FBQztRQUVoRix5Q0FBeUM7UUFDaEMsZ0JBQVcsR0FBd0MsRUFBRSxDQUFDO1FBRS9ELDRDQUE0QztRQUNsQixlQUFVLEdBQVksS0FBSyxDQUFDO1FBRXRELDZCQUE2QjtRQUNwQixpQkFBWSxHQUFXLEVBQUUsQ0FBQztRQUVuQyxnQ0FBZ0M7UUFDdEIsaUJBQVksR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztR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QUFVOzJCQUdoQixLQUFLOzJCQUdMLE1BQU07d0JBc0NOLFlBQVksU0FBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEhvc3QsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3B0aW9uYWwsIE91dHB1dCwgU2VsZiwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBDb250cm9sVmFsdWVBY2Nlc3NvciwgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuXHJcbi8qKiBUaGUgc29mIGJ1dHRvbiB0b2dnbGUgZ3JvdXAgY29tcG9uZW50ICovXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdzb2YtYnV0dG9uLXRvZ2dsZS1ncm91cCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vc29mLWJ1dHRvbi10b2dnbGUtZ3JvdXAuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vc29mLWJ1dHRvbi10b2dnbGUtZ3JvdXAuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIFNvZkJ1dHRvblRvZ2dsZUdyb3VwQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcclxuXHJcbiAgICAvKiogVGhlIGxhYmVsIHRleHQgKi9cclxuICAgIEBJbnB1dCgpIGxhYmVsVGV4dDogc3RyaW5nID0gJyc7XHJcblxyXG4gICAgLyoqIEFueSBjdXN0b20gY2xhc3NlcyBmb3IgdGhlIGxhYmVsICovXHJcbiAgICBASW5wdXQoKSBsYWJlbENsYXNzOiBzdHJpbmcgPSAnJzs7XHJcblxyXG4gICAgLyoqIFdoZXRoZXIgdGhlIGZpZWxkIGlzIHJlcXVpcmVkIG9yIG5vdCAqL1xyXG4gICAgQElucHV0KCkgaXNSZXF1aXJlZDogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gICAgLyoqIFRoZSB0b2dnbGUgYnV0dG9uIGRhdGEgKi9cclxuICAgIEBJbnB1dCgpIGJ1dHRvbkRhdGE6IHsgW2tleSBpbiBCdXR0b25Ub2dnbGVUeXBlXT86IHsgdGV4dDogc3RyaW5nLCB2YWx1ZTogYW55IH0gfSA9IHt9XHJcblxyXG4gICAgLyoqIFRoZSB0b29sdGlwIGRhdGEgKi9cclxuICAgIEBJbnB1dCgpIHRvb2x0aXBEYXRhOiB7IHRleHQ/OiBzdHJpbmcsIHBvc2l0aW9uPzogc3RyaW5nLCBjb2xvcj86IHN0cmluZyB9ID0ge307XHJcblxyXG4gICAgLyoqIFRoZSBsYXlvdXQgYWxpZ24gaW5wdXQgZm9yIHN0eWxpbmcgKi9cclxuICAgIEBJbnB1dCgpIGxheW91dEFsaWduOiB7IGxhYmVsPzogc3RyaW5nLCB0b2dnbGU/OiBzdHJpbmcgfSA9IHt9O1xyXG5cclxuICAgIC8qKiBXaGV0aGVyIHRoZSB0b2dnbGUgaXMgZGlzYWJsZWQgb3Igbm90ICovXHJcbiAgICBASW5wdXQoXCJkaXNhYmxlZFwiKSBwdWJsaWMgaXNEaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIC8qKiBUaGUgZXJyb3IgbWVzc2FnZSB0ZXh0ICovXHJcbiAgICBASW5wdXQoKSBlcnJvck1lc3NhZ2U6IHN0cmluZyA9ICcnO1xyXG5cclxuICAgIC8qKiBFbWl0cyB0b2dnbGUgY2hhbmdlIGV2ZW50ICovXHJcbiAgICBAT3V0cHV0KCkgdG9nZ2xlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICAgIC8qKiBUaGUgdG9nZ2xlIHZhbHVlICovXHJcbiAgICBwdWJsaWMgdmFsdWU6IGFueSA9IHVuZGVmaW5lZDtcclxuXHJcbiAgICAvKiogVGhlIGZvcm0gY29udHJvbCBuYW1lICovXHJcbiAgICBwdWJsaWMgY29udHJvbE5hbWU6IHN0cmluZyB8IG51bWJlciA9IFwiXCI7XHJcblxyXG4gICAgLyoqIElmIHRoZSBmb3JtIGNvbnRyb2wgd2FzIHRvdWNoZWQgb3Igbm90ICovXHJcbiAgICBwcml2YXRlIHRvdWNoZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICAvKiogVGhlIE9uQ2hhbmdlIGZvcm0gY29udHJvbCBtZXRob2QgKi9cclxuICAgIHByaXZhdGUgb25DaGFuZ2UgPSAodG9nZ2xlVmFsOiBhbnkpOiB2b2lkID0+IHsgfTtcclxuXHJcbiAgICAvKiogVGhlIE9uVG91Y2hlZCBmb3JtIGNvbnRyb2wgbWV0aG9kICovXHJcbiAgICBwcml2YXRlIG9uVG91Y2hlZCA9ICgpOiB2b2lkID0+IHsgfTtcclxuXHJcbiAgICAvKiogVGhlIGNvbXBvbmVudCBzdWJzY3JpcHRpb24gKi9cclxuICAgIHByaXZhdGUgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XHJcblxyXG4gICAgLyoqIFdoZXRoZXIgc2hvdyBlcnJvciBtZXNzYWdlIG9yIG5vdCAqL1xyXG4gICAgcHVibGljIHNob3dFcnJvck1lc3NhZ2U6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIENvbnN0cnVjdG9yLlxyXG4gICAgICogQHBhcmFtIGNvbnRyb2wgVGhlIG5nIGNvbnRyb2xcclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3IoQFNlbGYoKSBAT3B0aW9uYWwoKSBASG9zdCgpIHByaXZhdGUgY29udHJvbDogTmdDb250cm9sKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuY29udHJvbCkge1xyXG4gICAgICAgICAgICB0aGlzLmNvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XHJcbiAgICAgICAgICAgIHRoaXMuY29udHJvbE5hbWUgPSB0aGlzLmNvbnRyb2wubmFtZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBLZXkgZG93biBldmVudFxyXG4gICAgICogQHBhcmFtIGV2ZW50IEtleSBFdmVudFxyXG4gICAgICovXHJcbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSkgb25LZXlEb3duKGV2ZW50KTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgZSA9IGV2ZW50IGFzIEtleWJvYXJkRXZlbnQ7XHJcbiAgICAgICAgaWYoIXRoaXMuc2hvd0Vycm9yTWVzc2FnZSAmJiAhdGhpcy50b3VjaGVkICYmIHRoaXMuZXJyb3JNZXNzYWdlLmxlbmd0aCA+IDAgJiYgdGhpcy52YWx1ZSAhPSAnICcpe1xyXG4gICAgICAgICAgICB0aGlzLnNob3dFcnJvck1lc3NhZ2UgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKiogQ29tcG9uZW50IG9uIGluaXQgbGlmZWN5Y2xlIG1ldGhvZCAqL1xyXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIC8vIFNldCBkZWZhdWx0IHRvb2x0aXAgdmFsdWVzXHJcbiAgICAgICAgdGhpcy50b29sdGlwRGF0YS5wb3NpdGlvbiA9IHRoaXMudG9vbHRpcERhdGEucG9zaXRpb24gPz8gJ3JpZ2h0JztcclxuICAgICAgICB0aGlzLnRvb2x0aXBEYXRhLmNvbG9yID0gdGhpcy50b29sdGlwRGF0YS5jb2xvciA/PyAncHJpbWFyeSc7XHJcblxyXG4gICAgICAgIC8vIFNldCBkZWZhdWx0IGxheW91dCBhbGlnbnNcclxuICAgICAgICB0aGlzLmxheW91dEFsaWduLmxhYmVsID0gdGhpcy5sYXlvdXRBbGlnbi5sYWJlbCA/PyAnc3RhcnQgY2VudGVyJztcclxuICAgICAgICB0aGlzLmxheW91dEFsaWduLnRvZ2dsZSA9IHRoaXMubGF5b3V0QWxpZ24udG9nZ2xlID8/ICdzdGFydCBjZW50ZXInXHJcblxyXG4gICAgICAgIHRoaXMuc2V0SXNSZXF1aXJlZCgpO1xyXG5cclxuICAgICAgICAvLyBTdWJzY3JpYmUgdG8gZm9ybSBjb250cm9sJ3MgdmFsaWRhdGlvblxyXG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLmFkZCh0aGlzLmNvbnRyb2w/LmNvbnRyb2w/LnZhbHVlQ2hhbmdlcz8uc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5zZXRJc1JlcXVpcmVkKCk7XHJcbiAgICAgICAgfSkpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBDb21wb25lbnQgb24gZGVzdHJveSBsaWZlY3ljbGUgbWV0aG9kICovXHJcbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogVHJpZ2dlcmVkIHdoZW4gYSB2YWx1ZSBpcyBzZWxlY3RlZFxyXG4gICAgICogQHBhcmFtIHRvZ2dsZVZhbCBUaGUgdG9nZ2xlIHZhbHVlLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgdmFsdWVTZWxlY3RlZCh0b2dnbGVWYWw6IGFueSk6IHZvaWQge1xyXG4gICAgICAgIGlmKHRvZ2dsZVZhbCAhPSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgdGhpcy5tYXJrQXNUb3VjaGVkKCk7XHJcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSB0b2dnbGVWYWw7XHJcbiAgICAgICAgICAgIHRoaXMuc2hvd0Vycm9yTWVzc2FnZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xyXG4gICAgICAgICAgICB0aGlzLnRvZ2dsZUNoYW5nZS5lbWl0KHRvZ2dsZVZhbCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKiBUcmlnZ2VyZWQgd2hlbiB0aGUgY29udHJvbCBpcyB0b3VjaGVkICovXHJcbiAgICBwcml2YXRlIG1hcmtBc1RvdWNoZWQoKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnRvdWNoZWQpIHtcclxuICAgICAgICAgICAgdGhpcy5vblRvdWNoZWQoKTtcclxuICAgICAgICAgICAgdGhpcy50b3VjaGVkID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIFRyaWdnZXJlZCB3aGVuIHRoZSBmb3JtIGNvbnRyb2wgdmFsdWUgaXMgc2V0IG91dHNpZGUgdGhlIGNvbXBvbmVudFxyXG4gICAgICogQHBhcmFtIHRvZ2dsZVZhbCBUaGUgdG9nZ2xlIHZhbHVlLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgd3JpdGVWYWx1ZSh0b2dnbGVWYWw6IGFueSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMudmFsdWUgPSB0b2dnbGVWYWw7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIFRyaWdnZXJlZCB3aGVuIGNvbnRyb2wgaXMgY2hhbmdlZFxyXG4gICAgICogQHBhcmFtIGZuIFRoZSBjYWxsYmFjayBmdW5jdGlvbi5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICAgIH1cclxuXHJcbiAgICAvKiogVHJpZ2dlcmVkIHdoZW4gY29udHJvbCBpcyB0b3VjaGVkXHJcbiAgICAgKiBAcGFyYW0gZm4gVGhlIGNhbGxiYWNrIGZ1bmN0aW9uLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMub25Ub3VjaGVkID0gZm47XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIFNldHMgdGhlIGRpc2FibGVkIHN0YXRlXHJcbiAgICAgKiBAcGFyYW0gaXNEaXNhYmxlZCBJZiB0aGUgY29udHJvbCBpcyBkaXNhYmxlZCBvciBub3RcclxuICAgICAqL1xyXG4gICAgcHVibGljIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuaXNEaXNhYmxlZCA9IGlzRGlzYWJsZWRcclxuICAgIH1cclxuXHJcbiAgICAvKiogVXBkYXRlcyB0aGUgaXNSZXF1aXJlZCBmaWVsZCBiYXNlZCBvbiB0aGUgY29udHJvbCAqL1xyXG4gICAgcHJpdmF0ZSBzZXRJc1JlcXVpcmVkKCk6IHZvaWQge1xyXG4gICAgICAgIC8vIE9ubHkgdXBkYXRlIGlmIGEgY29udHJvbCBpcyBhdmFpbGFibGVcclxuICAgICAgICBpZiAodGhpcy5jb250cm9sPy5jb250cm9sKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGNvbnRyb2xWYWxpZGF0b3IgPSB0aGlzLmNvbnRyb2wuY29udHJvbC52YWxpZGF0b3I7XHJcbiAgICAgICAgICAgIC8vICBTZXQgdGhlIHJlcXVpcmVkIHN0YXRlIGZhbHNlIHdoZW4gbm8gY29udHJvbCB2YWxpZGF0b3IgZnVuY3Rpb24gaXMgcHJvdmlkZWRcclxuICAgICAgICAgICAgaWYgKCFjb250cm9sVmFsaWRhdG9yKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmlzUmVxdWlyZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLy8gIFNldCB0aGUgcmVxdWlyZWQgc3RhdGUgb2YgdGhlIHZhbGlkYXRvclxyXG4gICAgICAgICAgICBjb25zdCB2YWxpZGF0b3IgPSBjb250cm9sVmFsaWRhdG9yKHt9IGFzIEFic3RyYWN0Q29udHJvbCkgfHwge307XHJcbiAgICAgICAgICAgIHRoaXMuaXNSZXF1aXJlZCA9IHZhbGlkYXRvciAmJiB2YWxpZGF0b3IucmVxdWlyZWQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG4vKiogUG9zc2libGUgdmFsdWVzIGZvciB0aGUgdG9nZ2xlIHBvc2l0aW9uICovXHJcbmNvbnN0IGVudW0gQnV0dG9uVG9nZ2xlVHlwZSB7XHJcbiAgICBMRUZUID0gJ2xlZnQnLFxyXG4gICAgTUlERExFID0gJ21pZGRsZScsXHJcbiAgICBSSUdIVCA9ICdyaWdodCdcclxufSJdfQ==
|
|
163
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29mLWJ1dHRvbi10b2dnbGUtZ3JvdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IlM6L0IwNC9fd29yay8zNTkvcy9saWJyYXJ5L3Byb2plY3RzL2FybWF0dXJlL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9iYXNlLWNvbXBvbmVudHMvc29mLWJ1dHRvbi10b2dnbGUtZ3JvdXAvc29mLWJ1dHRvbi10b2dnbGUtZ3JvdXAuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBcUIsUUFBUSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5SCxPQUFPLEVBQXlDLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFcEMsNENBQTRDO0FBTzVDLE1BQU0sT0FBTyw2QkFBNkI7SUFrRHRDOzs7T0FHRztJQUNILFlBQWdELE9BQWtCO1FBQWxCLFlBQU8sR0FBUCxPQUFPLENBQVc7UUFwRGxFLHFCQUFxQjtRQUNaLGNBQVMsR0FBVyxFQUFFLENBQUM7UUFFaEMsdUNBQXVDO1FBQzlCLGVBQVUsR0FBVyxFQUFFLENBQUM7UUFFakMsMkNBQTJDO1FBQ2xDLGVBQVUsR0FBWSxJQUFJLENBQUM7UUFFcEMsNkJBQTZCO1FBQ3BCLGVBQVUsR0FBaUUsRUFBRSxDQUFBO1FBRXRGLHVCQUF1QjtRQUNkLGdCQUFXLEdBQXlELEVBQUUsQ0FBQztRQUVoRix5Q0FBeUM7UUFDaEMsZ0JBQVcsR0FBd0MsRUFBRSxDQUFDO1FBRS9ELDRDQUE0QztRQUNsQixlQUFVLEdBQVksS0FBSyxDQUFDO1FBRXRELDZCQUE2QjtRQUNwQixpQkFBWSxHQUFXLEVBQUUsQ0FBQztRQUVuQyxnQ0FBZ0M7UUFDdEIsaUJBQVksR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztR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TCxLQUFLOzBCQUdMLEtBQUs7MEJBR0wsS0FBSzt5QkFHTCxLQUFLLFNBQUMsVUFBVTsyQkFHaEIsS0FBSzsyQkFHTCxNQUFNO3dCQXdDTixZQUFZLFNBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBIb3N0LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE9wdGlvbmFsLCBPdXRwdXQsIFNlbGYsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5nQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcblxyXG4vKiogVGhlIHNvZiBidXR0b24gdG9nZ2xlIGdyb3VwIGNvbXBvbmVudCAqL1xyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnc29mLWJ1dHRvbi10b2dnbGUtZ3JvdXAnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NvZi1idXR0b24tdG9nZ2xlLWdyb3VwLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL3NvZi1idXR0b24tdG9nZ2xlLWdyb3VwLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBTb2ZCdXR0b25Ub2dnbGVHcm91cENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcblxyXG4gICAgLyoqIFRoZSBsYWJlbCB0ZXh0ICovXHJcbiAgICBASW5wdXQoKSBsYWJlbFRleHQ6IHN0cmluZyA9ICcnO1xyXG5cclxuICAgIC8qKiBBbnkgY3VzdG9tIGNsYXNzZXMgZm9yIHRoZSBsYWJlbCAqL1xyXG4gICAgQElucHV0KCkgbGFiZWxDbGFzczogc3RyaW5nID0gJyc7O1xyXG5cclxuICAgIC8qKiBXaGV0aGVyIHRoZSBmaWVsZCBpcyByZXF1aXJlZCBvciBub3QgKi9cclxuICAgIEBJbnB1dCgpIGlzUmVxdWlyZWQ6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAgIC8qKiBUaGUgdG9nZ2xlIGJ1dHRvbiBkYXRhICovXHJcbiAgICBASW5wdXQoKSBidXR0b25EYXRhOiB7IFtrZXkgaW4gQnV0dG9uVG9nZ2xlVHlwZV0/OiB7IHRleHQ6IHN0cmluZywgdmFsdWU6IGFueSB9IH0gPSB7fVxyXG5cclxuICAgIC8qKiBUaGUgdG9vbHRpcCBkYXRhICovXHJcbiAgICBASW5wdXQoKSB0b29sdGlwRGF0YTogeyB0ZXh0Pzogc3RyaW5nLCBwb3NpdGlvbj86IHN0cmluZywgY29sb3I/OiBzdHJpbmcgfSA9IHt9O1xyXG5cclxuICAgIC8qKiBUaGUgbGF5b3V0IGFsaWduIGlucHV0IGZvciBzdHlsaW5nICovXHJcbiAgICBASW5wdXQoKSBsYXlvdXRBbGlnbjogeyBsYWJlbD86IHN0cmluZywgdG9nZ2xlPzogc3RyaW5nIH0gPSB7fTtcclxuXHJcbiAgICAvKiogV2hldGhlciB0aGUgdG9nZ2xlIGlzIGRpc2FibGVkIG9yIG5vdCAqL1xyXG4gICAgQElucHV0KFwiZGlzYWJsZWRcIikgcHVibGljIGlzRGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICAvKiogVGhlIGVycm9yIG1lc3NhZ2UgdGV4dCAqL1xyXG4gICAgQElucHV0KCkgZXJyb3JNZXNzYWdlOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgICAvKiogRW1pdHMgdG9nZ2xlIGNoYW5nZSBldmVudCAqL1xyXG4gICAgQE91dHB1dCgpIHRvZ2dsZUNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgICAvKiogVGhlIHRvZ2dsZSB2YWx1ZSAqL1xyXG4gICAgcHVibGljIHZhbHVlOiBhbnkgPSB1bmRlZmluZWQ7XHJcblxyXG4gICAgLyoqIFRoZSBmb3JtIGNvbnRyb2wgbmFtZSAqL1xyXG4gICAgcHVibGljIGNvbnRyb2xOYW1lOiBzdHJpbmcgfCBudW1iZXIgPSBcIlwiO1xyXG5cclxuICAgIC8qKiBJZiB0aGUgZm9ybSBjb250cm9sIHdhcyB0b3VjaGVkIG9yIG5vdCAqL1xyXG4gICAgcHJpdmF0ZSB0b3VjaGVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgLyoqIFRoZSBPbkNoYW5nZSBmb3JtIGNvbnRyb2wgbWV0aG9kICovXHJcbiAgICBwcml2YXRlIG9uQ2hhbmdlID0gKHRvZ2dsZVZhbDogYW55KTogdm9pZCA9PiB7IH07XHJcblxyXG4gICAgLyoqIFRoZSBPblRvdWNoZWQgZm9ybSBjb250cm9sIG1ldGhvZCAqL1xyXG4gICAgcHJpdmF0ZSBvblRvdWNoZWQgPSAoKTogdm9pZCA9PiB7IH07XHJcblxyXG4gICAgLyoqIFRoZSBjb21wb25lbnQgc3Vic2NyaXB0aW9uICovXHJcbiAgICBwcml2YXRlIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xyXG5cclxuICAgIC8qKiBXaGV0aGVyIHNob3cgZXJyb3IgbWVzc2FnZSBvciBub3QgKi9cclxuICAgIHB1YmxpYyBzaG93RXJyb3JNZXNzYWdlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb25zdHJ1Y3Rvci5cclxuICAgICAqIEBwYXJhbSBjb250cm9sIFRoZSBuZyBjb250cm9sXHJcbiAgICAgKi9cclxuICAgIGNvbnN0cnVjdG9yKEBTZWxmKCkgQE9wdGlvbmFsKCkgQEhvc3QoKSBwcml2YXRlIGNvbnRyb2w6IE5nQ29udHJvbCkge1xyXG4gICAgICAgIGlmICh0aGlzLmNvbnRyb2wpIHtcclxuICAgICAgICAgICAgdGhpcy5jb250cm9sLnZhbHVlQWNjZXNzb3IgPSB0aGlzO1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuY29udHJvbE5hbWUgPSB0aGlzLmNvbnRyb2wubmFtZTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogS2V5IGRvd24gZXZlbnRcclxuICAgICAqIEBwYXJhbSBldmVudCBLZXkgRXZlbnRcclxuICAgICAqL1xyXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pIG9uS2V5RG93bihldmVudCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGUgPSBldmVudCBhcyBLZXlib2FyZEV2ZW50O1xyXG4gICAgICAgIGlmKCF0aGlzLnNob3dFcnJvck1lc3NhZ2UgJiYgIXRoaXMudG91Y2hlZCAmJiB0aGlzLmVycm9yTWVzc2FnZS5sZW5ndGggPiAwICYmIHRoaXMudmFsdWUgIT0gJyAnKXtcclxuICAgICAgICAgICAgdGhpcy5zaG93RXJyb3JNZXNzYWdlID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIENvbXBvbmVudCBvbiBpbml0IGxpZmVjeWNsZSBtZXRob2QgKi9cclxuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICAvLyBTZXQgZGVmYXVsdCB0b29sdGlwIHZhbHVlc1xyXG4gICAgICAgIHRoaXMudG9vbHRpcERhdGEucG9zaXRpb24gPSB0aGlzLnRvb2x0aXBEYXRhLnBvc2l0aW9uID8/ICdyaWdodCc7XHJcbiAgICAgICAgdGhpcy50b29sdGlwRGF0YS5jb2xvciA9IHRoaXMudG9vbHRpcERhdGEuY29sb3IgPz8gJ3ByaW1hcnknO1xyXG5cclxuICAgICAgICAvLyBTZXQgZGVmYXVsdCBsYXlvdXQgYWxpZ25zXHJcbiAgICAgICAgdGhpcy5sYXlvdXRBbGlnbi5sYWJlbCA9IHRoaXMubGF5b3V0QWxpZ24ubGFiZWwgPz8gJ3N0YXJ0IGNlbnRlcic7XHJcbiAgICAgICAgdGhpcy5sYXlvdXRBbGlnbi50b2dnbGUgPSB0aGlzLmxheW91dEFsaWduLnRvZ2dsZSA/PyAnc3RhcnQgY2VudGVyJ1xyXG5cclxuICAgICAgICB0aGlzLnNldElzUmVxdWlyZWQoKTtcclxuXHJcbiAgICAgICAgLy8gU3Vic2NyaWJlIHRvIGZvcm0gY29udHJvbCdzIHZhbGlkYXRpb25cclxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbi5hZGQodGhpcy5jb250cm9sPy5jb250cm9sPy52YWx1ZUNoYW5nZXM/LnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0SXNSZXF1aXJlZCgpO1xyXG4gICAgICAgIH0pKTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogQ29tcG9uZW50IG9uIGRlc3Ryb3kgbGlmZWN5Y2xlIG1ldGhvZCAqL1xyXG4gICAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIFRyaWdnZXJlZCB3aGVuIGEgdmFsdWUgaXMgc2VsZWN0ZWRcclxuICAgICAqIEBwYXJhbSB0b2dnbGVWYWwgVGhlIHRvZ2dsZSB2YWx1ZS5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHZhbHVlU2VsZWN0ZWQodG9nZ2xlVmFsOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICBpZih0b2dnbGVWYWwgIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIHRoaXMubWFya0FzVG91Y2hlZCgpO1xyXG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gdG9nZ2xlVmFsO1xyXG4gICAgICAgICAgICB0aGlzLnNob3dFcnJvck1lc3NhZ2UgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKTtcclxuICAgICAgICAgICAgdGhpcy50b2dnbGVDaGFuZ2UuZW1pdCh0b2dnbGVWYWwpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKiogVHJpZ2dlcmVkIHdoZW4gdGhlIGNvbnRyb2wgaXMgdG91Y2hlZCAqL1xyXG4gICAgcHJpdmF0ZSBtYXJrQXNUb3VjaGVkKCkge1xyXG4gICAgICAgIGlmICghdGhpcy50b3VjaGVkKSB7XHJcbiAgICAgICAgICAgIHRoaXMub25Ub3VjaGVkKCk7XHJcbiAgICAgICAgICAgIHRoaXMudG91Y2hlZCA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKiBUcmlnZ2VyZWQgd2hlbiB0aGUgZm9ybSBjb250cm9sIHZhbHVlIGlzIHNldCBvdXRzaWRlIHRoZSBjb21wb25lbnRcclxuICAgICAqIEBwYXJhbSB0b2dnbGVWYWwgVGhlIHRvZ2dsZSB2YWx1ZS5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHdyaXRlVmFsdWUodG9nZ2xlVmFsOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnZhbHVlID0gdG9nZ2xlVmFsO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBUcmlnZ2VyZWQgd2hlbiBjb250cm9sIGlzIGNoYW5nZWRcclxuICAgICAqIEBwYXJhbSBmbiBUaGUgY2FsbGJhY2sgZnVuY3Rpb24uXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gZm47XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIFRyaWdnZXJlZCB3aGVuIGNvbnRyb2wgaXMgdG91Y2hlZFxyXG4gICAgICogQHBhcmFtIGZuIFRoZSBjYWxsYmFjayBmdW5jdGlvbi5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBTZXRzIHRoZSBkaXNhYmxlZCBzdGF0ZVxyXG4gICAgICogQHBhcmFtIGlzRGlzYWJsZWQgSWYgdGhlIGNvbnRyb2wgaXMgZGlzYWJsZWQgb3Igbm90XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmlzRGlzYWJsZWQgPSBpc0Rpc2FibGVkXHJcbiAgICB9XHJcblxyXG4gICAgLyoqIFVwZGF0ZXMgdGhlIGlzUmVxdWlyZWQgZmllbGQgYmFzZWQgb24gdGhlIGNvbnRyb2wgKi9cclxuICAgIHByaXZhdGUgc2V0SXNSZXF1aXJlZCgpOiB2b2lkIHtcclxuICAgICAgICAvLyBPbmx5IHVwZGF0ZSBpZiBhIGNvbnRyb2wgaXMgYXZhaWxhYmxlXHJcbiAgICAgICAgaWYgKHRoaXMuY29udHJvbD8uY29udHJvbCkge1xyXG4gICAgICAgICAgICBjb25zdCBjb250cm9sVmFsaWRhdG9yID0gdGhpcy5jb250cm9sLmNvbnRyb2wudmFsaWRhdG9yO1xyXG4gICAgICAgICAgICAvLyAgU2V0IHRoZSByZXF1aXJlZCBzdGF0ZSBmYWxzZSB3aGVuIG5vIGNvbnRyb2wgdmFsaWRhdG9yIGZ1bmN0aW9uIGlzIHByb3ZpZGVkXHJcbiAgICAgICAgICAgIGlmICghY29udHJvbFZhbGlkYXRvcikge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pc1JlcXVpcmVkID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8vICBTZXQgdGhlIHJlcXVpcmVkIHN0YXRlIG9mIHRoZSB2YWxpZGF0b3JcclxuICAgICAgICAgICAgY29uc3QgdmFsaWRhdG9yID0gY29udHJvbFZhbGlkYXRvcih7fSBhcyBBYnN0cmFjdENvbnRyb2wpIHx8IHt9O1xyXG4gICAgICAgICAgICB0aGlzLmlzUmVxdWlyZWQgPSB2YWxpZGF0b3IgJiYgdmFsaWRhdG9yLnJlcXVpcmVkO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuLyoqIFBvc3NpYmxlIHZhbHVlcyBmb3IgdGhlIHRvZ2dsZSBwb3NpdGlvbiAqL1xyXG5jb25zdCBlbnVtIEJ1dHRvblRvZ2dsZVR5cGUge1xyXG4gICAgTEVGVCA9ICdsZWZ0JyxcclxuICAgIE1JRERMRSA9ICdtaWRkbGUnLFxyXG4gICAgUklHSFQgPSAncmlnaHQnXHJcbn0iXX0=
|
|
@@ -125,7 +125,11 @@ export class SessionService {
|
|
|
125
125
|
form.method = 'POST';
|
|
126
126
|
form.action = formAction;
|
|
127
127
|
if (configs.targetNewTab) {
|
|
128
|
-
form.target = '_blank'
|
|
128
|
+
// The parent session should already be present in child window as per browsing context rules, but for whatever reason form.target = '_blank' does not do that.
|
|
129
|
+
// Need to use window.open here so the parent window's session also gets carried over to the new tab.
|
|
130
|
+
// For reference: https://stackoverflow.com/questions/17297287/sessionstorage-on-new-window-isnt-empty-when-following-a-link-with-target-bl
|
|
131
|
+
form.target = 'customWindow';
|
|
132
|
+
window.open('', 'customWindow');
|
|
129
133
|
}
|
|
130
134
|
input.name = 'data';
|
|
131
135
|
input.value = this.window.sessionStorage.getItem(this.sessionConfig.keyPath);
|
|
@@ -379,4 +383,4 @@ SessionService.ctorParameters = () => [
|
|
|
379
383
|
*/
|
|
380
384
|
export class RedirectSessionConfigs {
|
|
381
385
|
}
|
|
382
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IlM6L0IwNC9fd29yay8zNTkvcy9saWJyYXJ5L3Byb2plY3RzL2FybWF0dXJlL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9jb3JlL3NlcnZpY2VzL3Nlc3Npb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGVBQWUsRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVqRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzdELE9BQU8sRUFBWSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFekQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7OztBQUU1QyxtREFBbUQ7QUFDbkQsTUFBTSxtQ0FBbUMsR0FBRyxtQkFBbUIsQ0FBQztBQUVoRSwwQkFBMEI7QUFJMUIsTUFBTSxPQUFPLGNBQWM7SUFpRnpCOzs7Ozs7T0FNRztJQUNILFlBQytDLGFBQTRCLEVBQ3BDLE9BQVksRUFDcEIsV0FBeUIsRUFDckMsVUFBc0I7O1FBSE0sa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDcEMsWUFBTyxHQUFQLE9BQU8sQ0FBSztRQUNwQixnQkFBVyxHQUFYLFdBQVcsQ0FBYztRQUNyQyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBdkZ6QyxvREFBb0Q7UUFD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LENBQUM7WUFDbkUsS0FBSyxRQUFRLENBQUMsTUFBTTtnQkFDbEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztZQUN4RDtnQkFDRSxNQUFNLElBQUksS0FBSyxDQUFDLHlEQUF5RCxDQUFDLENBQUM7U0FDOUU7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssTUFBTSxDQUFDLEtBQVU7UUFDdkIsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFFRDs7O09BR0c7SUFDSyxNQUFNLENBQUMsR0FBVztRQUN4QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbEUsQ0FBQzs7OztZQXZhRixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7OztZQVZRLGFBQWEsdUJBb0dqQixRQUFRLFlBQUksTUFBTSxTQUFDLGNBQWM7NENBQ2pDLFFBQVEsWUFBSSxNQUFNLFNBQUMsTUFBTTtZQTNHckIsWUFBWSx1QkE0R2hCLFFBQVE7WUE5R0osVUFBVTs7QUEwYm5COztHQUVHO0FBQ0gsTUFBTSxPQUFPLHNCQUFzQjtDQU1sQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE9BdXRoU2VydmljZSB9IGZyb20gJ2FuZ3VsYXItb2F1dGgyLW9pZGMnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHN3aXRjaE1hcCwgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgU2Vzc2lvblBvc3RSZXF1ZXN0TW9kZWwsIFNlc3Npb25QdXRSZXF1ZXN0TW9kZWwsIFNlc3Npb25SZXNwb25zZU1vZGVsIH0gZnJvbSAnLi4vY2xpZW50LWdlbmVyYXRlZC9tb2RlbC9tb2RlbHMnO1xyXG5pbXBvcnQgeyBTRVNTSU9OX0NPTkZJRywgV0lORE9XIH0gZnJvbSAnLi4vbW9kZWxzL2NvbnN0YW50cyc7XHJcbmltcG9ydCB7IEh0dHBWZXJiLCBodHRwVmVyYiB9IGZyb20gJy4uL21vZGVscy9odHRwLXZlcmJzJztcclxuaW1wb3J0IHsgU2Vzc2lvbkNvbmZpZyB9IGZyb20gJy4uL21vZGVscy9zZXNzaW9uLWNvbmZpZyc7XHJcbmltcG9ydCB7IFR5cGVkU2Vzc2lvbiB9IGZyb20gJy4uL21vZGVscy90eXBlZC1zZXNzaW9uJztcclxuaW1wb3J0IHsgbmV3R3VpZCB9IGZyb20gJy4uL2Z1bmN0aW9ucy9ndWlkJztcclxuXHJcbi8qKiB0aGUgZGF0YSBzdG9yZSByZXRyaWV2ZSBjb21wbGV0ZSBzZXNzaW9uIGtleSAqL1xyXG5jb25zdCBkYXRhU3RvcmVSZXRyaWV2ZUNvbXBsZXRlU2Vzc2lvbktleSA9ICdkYXRhU3RvcmVSZXRyaWV2ZSc7XHJcblxyXG4vKiogVGhlIHNlc3Npb24gc2VydmljZSAqL1xyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZXNzaW9uU2VydmljZTxUID0gYW55PiB7XHJcblxyXG4gIC8qKiBUaGUgc2Vzc2lvbiBpZCAqL1xyXG4gIHByaXZhdGUgX3Nlc3Npb25JZDogc3RyaW5nO1xyXG5cclxuICAvKiogVHJ1ZSB3aGVuIHRoZSBkYXRhIHN0b3JlIHJldHJpZXZlIGlzIGNvbXBsZXRlICovXHJcbiAgcHJpdmF0ZSBpc0RhdGFTdG9yZVJldHJpZXZlQ29tcGxldGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLyoqIFRoZSBsb2NhbCBzdG9yYWdlIGtleSAqL1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgc3RvcmFnZUtleTogc3RyaW5nID0gJ1NvZi1Bcm0tU2Vzc2lvbi1JZCc7XHJcblxyXG4gIC8qKiBUZWggY3VycmVudCB1cGRhdGUgZGF0YSBzdG9yZSBjYWxsICovXHJcbiAgcHJpdmF0ZSByZWFkb25seSBjdXJyZW50VXBkYXRlRGF0YVN0b3JlQ2FsbDogT2JzZXJ2YWJsZTxhbnk+ID0gb2Yoe30pO1xyXG5cclxuICAvKiogVGhlIHNlc3Npb24gZGF0YSBiZWhhdmlvciBzdWJqZWN0ICovXHJcbiAgcHJpdmF0ZSByZWFkb25seSBzZXNzaW9uRGF0YTogQmVoYXZpb3JTdWJqZWN0PFR5cGVkU2Vzc2lvbjxUPj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFR5cGVkU2Vzc2lvbjxUPj4odW5kZWZpbmVkKTtcclxuXHJcbiAgLyoqIFRydWUgd2hlbiB0aGUgc2VydmljZSBoYXMgZmluaXNoZWQgaW5pdGlhbGl6aW5nICovXHJcbiAgcHJpdmF0ZSByZWFkb25seSBpc0luaXRpYWxpemVkQnM6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cclxuICAvKiogVHJ1ZSBpZiB0aGUgZGF0YSBzdG9yZSBpcyBpbml0aWFsaXplZCAqL1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgaXNEYXRhU3RvcmVJbml0QnM6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cclxuICAvKiogVHJ1ZSBpZiBjbGllbnQgc2lkZSBzZXNzaW9uIG1hbmFnZW1lbnQgKi9cclxuICBwcml2YXRlIGdldCBpc0NsaWVudFNlc3Npb25NYW5hZ2VtZW50KCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc2Vzc2lvbkNvbmZpZy5zZXNzaW9uTWFuYWdlbWVudEltcGxlbWVudGF0aW9uID09PSAnY2xpZW50JztcclxuICB9XHJcblxyXG4gIC8qKiBUcnVlIGlmIHNlcnZlciBzaWRlIHNlc3Npb24gbWFuYWdlbWVudCAqL1xyXG4gIHByaXZhdGUgZ2V0IGlzU2VydmVyU2Vzc2lvbk1hbmFnZW1lbnQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5zZXNzaW9uQ29uZmlnLnNlc3Npb25NYW5hZ2VtZW50SW1wbGVtZW50YXRpb24gPT09ICdzZXJ2ZXInO1xyXG4gIH1cclxuXHJcbiAgLyoqIFRydWUgaWYgdXNpbmcgYnJvd3NlciBsb2NhbCBzdG9yYWdlICovXHJcbiAgcHJpdmF0ZSBnZXQgdXNlQnJvd3NlckxvY2FsU3RvcmFnZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnNlc3Npb25Db25maWcuYnJvd3NlclN0b3JhZ2VJbXBsZW1lbnRhdGlvbiA9PT0gJ2xvY2FsJztcclxuICB9XHJcblxyXG4gIC8qKiBUcnVlIGlmIHVzaW5nIGJyb3dzZXIgc2Vzc2lvbiBzdG9yYWdlICovXHJcbiAgcHJpdmF0ZSBnZXQgdXNlQnJvd3NlclNlc3Npb25TdG9yYWdlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc2Vzc2lvbkNvbmZpZy5icm93c2VyU3RvcmFnZUltcGxlbWVudGF0aW9uID09PSAnc2Vzc2lvbic7XHJcbiAgfVxyXG5cclxuICAvKiogVGhlIHdpbmRvdyAqL1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgd2luZG93OiBXaW5kb3c7XHJcblxyXG4gIC8qKiBUcnVlIGlmIGRhdGEgc3RvcmUgaXMgcHJvdmlkZWQgKi9cclxuICBwcml2YXRlIHJlYWRvbmx5IGlzRGF0YVN0b3JlUHJvdmlkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLyoqIFRoZSBzZXNzaW9uIGlkICovXHJcbiAgcHVibGljIGdldCBzZXNzaW9uSWQoKTogc3RyaW5nIHtcclxuICAgIGlmICghdGhpcy5fc2Vzc2lvbklkKSB7XHJcbiAgICAgIHRoaXMuaXNDbGllbnRTZXNzaW9uTWFuYWdlbWVudCA/IHRoaXMuaW5pdENsaWVudFNlc3Npb25JZCgpIDogdGhpcy5pbml0U2VydmVyU2Vzc2lvbklkKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuX3Nlc3Npb25JZDtcclxuICB9XHJcblxyXG4gIC8qKiBUaGUgc2Vzc2lvbiAqL1xyXG4gIHB1YmxpYyBzZXNzaW9uJDogT2JzZXJ2YWJsZTxUeXBlZFNlc3Npb248VD4+O1xyXG5cclxuICAvKiogVGhlIHNlc3Npb24gcmVmcmVzaCBvYnNlcnZhYmxlICovXHJcbiAgcHVibGljIHNlc3Npb25SZWZyZXNoJDogT2JzZXJ2YWJsZTxhbnk+O1xyXG5cclxuICAvKiogSW5kaWNhdGVzIHdoZW4gdGhlIHNlcnZpY2UgaGFzIGZpbmlzaGVkIGluaXRpYWxpemluZyAqL1xyXG4gIHB1YmxpYyBpc0luaXRpYWxpemVkJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcclxuXHJcbiAgLyoqIFRydWUgaWYgdGhlIGRhdGEgc3RvcmUgaXMgaW5pdGlhbGl6ZWQgKi9cclxuICBwdWJsaWMgaXNEYXRhU3RvcmVJbml0JDogT2JzZXJ2YWJsZTxib29sZWFuPjtcclxuXHJcbiAgLyoqIGdldHMgdGhlIHNlc3Npb24gKi9cclxuICBwdWJsaWMgZ2V0IHNlc3Npb24oKTogVHlwZWRTZXNzaW9uPFQ+IHtcclxuICAgIHJldHVybiB0aGlzLnNlc3Npb25EYXRhLnZhbHVlO1xyXG4gIH1cclxuXHJcbiAgLyoqIHNldHMgdGhlIHNlc3Npb24gKi9cclxuICBwdWJsaWMgc2V0IHNlc3Npb24odmFsdWU6IFR5cGVkU2Vzc2lvbjxUPikge1xyXG4gICAgdGhpcy5zZXNzaW9uRGF0YS5uZXh0KHZhbHVlKTtcclxuICAgIHRoaXMud2luZG93LnNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5zZXNzaW9uQ29uZmlnLmtleVBhdGgsIHRoaXMuZW5jb2RlKHZhbHVlKSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDb25zdHJ1Y3RzIHRoZSBzZXJ2aWNlXHJcbiAgICogQHBhcmFtIHNlc3Npb25Db25maWcgVGhlIHNlc3Npb24gY29uZmlndXJhdGlvbnNcclxuICAgKiBAcGFyYW0gX3dpbmRvdyBUaGUgd2luZG93IGludGVyZmFjZVxyXG4gICAqIEBwYXJhbSBhdXRoU2VydmljZSBUaGUgT0F1dGggb2RpYyAyIHNlcnZpY2VcclxuICAgKiBAcGFyYW0gaHR0cENsaWVudCBUaGUgaHR0cCBjbGllbnRcclxuICAgKi9cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoU0VTU0lPTl9DT05GSUcpIHJlYWRvbmx5IHNlc3Npb25Db25maWc6IFNlc3Npb25Db25maWcsXHJcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KFdJTkRPVykgcmVhZG9ubHkgX3dpbmRvdzogYW55LFxyXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSByZWFkb25seSBhdXRoU2VydmljZTogT0F1dGhTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBodHRwQ2xpZW50OiBIdHRwQ2xpZW50XHJcbiAgKSB7XHJcbiAgICB0aGlzLmlzSW5pdGlhbGl6ZWQkID0gdGhpcy5pc0luaXRpYWxpemVkQnMuYXNPYnNlcnZhYmxlKCk7XHJcbiAgICB0aGlzLmlzRGF0YVN0b3JlSW5pdCQgPSB0aGlzLmlzRGF0YVN0b3JlSW5pdEJzLmFzT2JzZXJ2YWJsZSgpO1xyXG4gICAgaWYgKCF0aGlzLnNlc3Npb25Db25maWcpIHtcclxuICAgICAgdGhpcy5zZXNzaW9uQ29uZmlnID0gbmV3IFNlc3Npb25Db25maWcoKTtcclxuICAgIH1cclxuICAgIHRoaXMuaXNEYXRhU3RvcmVQcm92aWRlZCA9ICEhdGhpcy5zZXNzaW9uQ29uZmlnPy5kYXRhU3RvcmVDb25maWc7XHJcbiAgICB0aGlzLndpbmRvdyA9IF93aW5kb3c7XHJcbiAgICBpZiAoIXRoaXMud2luZG93KSB7XHJcbiAgICAgIHRoaXMud2luZG93ID0gd2luZG93O1xyXG4gICAgfVxyXG4gICAgY29uc3QgZGF0YVN0b3JlTG9hZGVkVmFsdWUgPSB0aGlzLndpbmRvdy5zZXNzaW9uU3RvcmFnZS5nZXRJdGVtKGRhdGFTdG9yZVJldHJpZXZlQ29tcGxldGVTZXNzaW9uS2V5KTtcclxuICAgIHRoaXMuaXNEYXRhU3RvcmVSZXRyaWV2ZUNvbXBsZXRlID0gISFkYXRhU3RvcmVMb2FkZWRWYWx1ZSA/IGRhdGFTdG9yZUxvYWRlZFZhbHVlLnRvTG93ZXJDYXNlKCkgPT09ICd0cnVlJyA6IGZhbHNlO1xyXG4gICAgLy8gaWYgbm90IHVzaW5nIGEgZGF0YSBzdG9yZSwgdXBkYXRlIHRoZSBpbml0aWFsaXplZCB0byB0cnVlIGZvciBpdFxyXG4gICAgaWYgKCF0aGlzLmlzRGF0YVN0b3JlUHJvdmlkZWQpIHtcclxuICAgICAgdGhpcy5pc0RhdGFTdG9yZUluaXRCcy5uZXh0KHRydWUpO1xyXG4gICAgfVxyXG4gICAgaWYgKCF0aGlzLnNlc3Npb25Db25maWc/LmJyb3dzZXJTdG9yYWdlSW1wbGVtZW50YXRpb24pIHtcclxuICAgICAgdGhpcy5zZXNzaW9uQ29uZmlnLmJyb3dzZXJTdG9yYWdlSW1wbGVtZW50YXRpb24gPSAnc2Vzc2lvbic7XHJcbiAgICB9XHJcbiAgICBpZiAoIXRoaXMuc2Vzc2lvbkNvbmZpZz8uc2Vzc2lvbk1hbmFnZW1lbnRJbXBsZW1lbnRhdGlvbikge1xyXG4gICAgICB0aGlzLnNlc3Npb25Db25maWcuc2Vzc2lvbk1hbmFnZW1lbnRJbXBsZW1lbnRhdGlvbiA9ICdjbGllbnQnO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuaXNTZXJ2ZXJTZXNzaW9uTWFuYWdlbWVudCAmJiAhdGhpcy5zZXNzaW9uQ29uZmlnKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IHVzZXIgc2VydmVyIHNlc3Npb24gbWFuYWdlbWVudCB3aXRoIG51bGwgc2Vzc2lvbkNvbmZpZyBwbGVhc2UgcHJvdmlkZTogR2xvYmFsSW5qZWN0aW9uVG9rZW5zLnNlc3Npb25Db25maWcnKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmlzQ2xpZW50U2Vzc2lvbk1hbmFnZW1lbnQpIHtcclxuICAgICAgdGhpcy5pbml0Q2xpZW50U2Vzc2lvbk1hbmFnZW1lbnQoKTtcclxuXHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmluaXRTZXJ2ZXJTZXNzaW9uTWFuYWdlbWVudCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVkaXJlY3RzIHRvIGEgdXJsIHdpdGggYSByZWYgdG8gdGhlIGV4aXN0aW5nIHNlc3Npb25cclxuICAgKiBAcGFyYW0gdXJpIFRoZSB1cmkgdG8gcmVkaXJlY3QgdG9cclxuICAgKiBAcGFyYW0gc3luY1Nlc3Npb24gU3luYyBzZXNzaW9uLlxyXG4gICAqIEBwYXJhbSBjb25maWdzIFJlZGlyZWN0IGNvbmZpZ3MuXHJcbiAgICovXHJcbiAgcHVibGljIHJlZGlyZWN0KHVyaTogc3RyaW5nLCBzeW5jU2Vzc2lvbjogYm9vbGVhbiA9IGZhbHNlLCBjb25maWdzOiBSZWRpcmVjdFNlc3Npb25Db25maWdzID0ge30pOiB2b2lkIHtcclxuICAgIC8vIGlmIHRoZSBob3N0IG5hbWUgaXNuJ3QgaW4gdGhlIHVyaSwgd2UgYXJlIGdvaW5nIHRvIGEgZGlmZmVyZW50IGRvbWFpbiwgc28gdXNlIHRoZSBnYXRld2F5IG9uIHRoZSBvdGhlciBkb21haW4ncyBzZXJ2ZXJcclxuICAgIGxldCBmb3JtQWN0aW9uID0gYCR7dGhpcy5zZXNzaW9uQ29uZmlnLnRyYW5zZmVyQmFzZVBhdGh9L3Nzb2dhdGV3YXkvdjIvc3NvL2luYm91bmQtdHJhbnNmZXIvJHt0aGlzLnNlc3Npb25Db25maWcua2V5UGF0aH1gO1xyXG4gICAgaWYgKHVyaS5pbmRleE9mKHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSkgPT09IC0xKSB7XHJcbiAgICAgIGNvbnN0IHVyaVBhcnRzID0gdXJpLnNwbGl0KCcvJyk7XHJcbiAgICAgIC8vIHRoaXMgcmVzdWx0cyBpbiBbJ2h0dHBzOicsICcnLCAnZG9tYWluLmhvc3QnXSwgdXNlIDAgYW5kIDIgdG8gZ2V0IHRoZSBiYXNlIHVybCBvZiB0aGUgcmVkaXJlY3QgdXJpXHJcbiAgICAgIGZvcm1BY3Rpb24gPSBgJHt1cmlQYXJ0c1swXX0vLyR7dXJpUGFydHNbMl19L3Nzb2dhdGV3YXkvdjIvc3NvL2luYm91bmQtdHJhbnNmZXIvJHt0aGlzLnNlc3Npb25Db25maWcua2V5UGF0aH1gO1xyXG4gICAgfVxyXG4gICAgY29uc3QgZm9ybSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Zvcm0nKTtcclxuICAgIGNvbnN0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTtcclxuICAgIGNvbnN0IGlucHV0RGVzdGluYXRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpO1xyXG4gICAgZm9ybS5tZXRob2QgPSAnUE9TVCc7XHJcbiAgICBmb3JtLmFjdGlvbiA9IGZvcm1BY3Rpb247XHJcbiAgICBpZiAoY29uZmlncy50YXJnZXROZXdUYWIpIHtcclxuICAgICAgZm9ybS50YXJnZXQgPSAnX2JsYW5rJztcclxuICAgIH1cclxuXHJcbiAgICBpbnB1dC5uYW1lID0gJ2RhdGEnO1xyXG4gICAgaW5wdXQudmFsdWUgPSB0aGlzLndpbmRvdy5zZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuc2Vzc2lvbkNvbmZpZy5rZXlQYXRoKTtcclxuICAgIGlucHV0RGVzdGluYXRpb24ubmFtZSA9ICdkZXN0aW5hdGlvbic7XHJcbiAgICBpbnB1dERlc3RpbmF0aW9uLnZhbHVlID0gdXJpO1xyXG4gICAgZm9ybS5hcHBlbmRDaGlsZChpbnB1dCk7XHJcbiAgICBmb3JtLmFwcGVuZENoaWxkKGlucHV0RGVzdGluYXRpb24pO1xyXG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChmb3JtKTtcclxuICAgIGZvcm0uc3VibWl0KCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGVzIHRoZSBzZXNzaW9uXHJcbiAgICogQHBhcmFtIGJvZHkgVGhlIHNlc3Npb24gcHV0IHJlcXVlc3QgYm9keVxyXG4gICAqL1xyXG4gIHB1YmxpYyB1cGRhdGVTZXNzaW9uKFxyXG4gICAgYm9keTogVHlwZWRTZXNzaW9uPFQ+LFxyXG4gICAgc2VjdXJhYmxlRGVsZWdhdGU6IEFycmF5PChhcmc6IGFueSkgPT4gYW55PiB8ICgoYXJnOiBhbnkpID0+IGFueSksXHJcbiAgICBza2lwRGF0YVN0b3JlPzogYm9vbGVhbik6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBpZiAoIXRoaXMuX3Nlc3Npb25JZCkge1xyXG4gICAgICBjb25zb2xlLmVycm9yKCdObyBzZXNzaW9uIGhhcyBiZWVuIGluaXRpYWxpemVkLCBza2lwcGluZyB1cGRhdGUgY2FsbCcpO1xyXG5cclxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIH1cclxuICAgIGlmICghc2VjdXJhYmxlRGVsZWdhdGUpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdTZXNzaW9uU2VydmljZTp1cGRhdGVTZXNzaW9uIC0+IEFyZ3VtZW50IGlzIG51bGwgb3IgdW5kZWZpbmVkLCBhcmc6IHNlY3VyYWJsZURlbGVnYXRlJyk7XHJcbiAgICB9XHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheShib2R5LnNlc3Npb25EYXRhKSAmJiAhQXJyYXkuaXNBcnJheShzZWN1cmFibGVEZWxlZ2F0ZSkpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKFxyXG4gICAgICAgICdTZXNzaW9uU2VydmljZTp1cGRhdGVTZXNzaW9uIC0+IFR5cGUgbWlzcyBtYXRjaCwgYXJnOiBib2R5LlNlc3Npb25EYXRhICh0eXBlIG9mIEFycmF5KSBhbmQgYXJnOiBzZWN1cmFibGVEZWxlZ2F0ZSAodHlwZSBvZiAoYXJnOiBhbnkpID0+IGFueSkgYm90aCBtdXN0IGJlIGFycmF5IG9yIG5vbi1hcnJheSdcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIGlmICghQXJyYXkuaXNBcnJheShib2R5LnNlc3Npb25EYXRhKSAmJiBBcnJheS5pc0FycmF5KHNlY3VyYWJsZURlbGVnYXRlKSkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXHJcbiAgICAgICAgJ1Nlc3Npb25TZXJ2aWNlOnVwZGF0ZVNlc3Npb24gLT4gVHlwZSBtaXNzIG1hdGNoLCBhcmc6IGJvZHkuU2Vzc2lvbkRhdGEgKHR5cGUgb2YgYW55KSBhbmQgYXJnOiBzZWN1cmFibGVEZWxlZ2F0ZSAodHlwZSBvZiBBcnJheSkgIGJvdGggbXVzdCBiZSBhcnJheSBvciBub24tYXJyYXknXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICAvLyBjcmVhdGUgcmVzcG9uc2UgbW9kZWwgYW5kIHVwZGF0ZSBvYnNlcnZhYmxlIHRvIGVtaXQgbmV3IHNlc3Npb24gdmFsdWVcclxuICAgIGNvbnN0IG1vZGVsOiBTZXNzaW9uUmVzcG9uc2VNb2RlbCA9IHtcclxuICAgICAgaW5pdGlhbGl6aW5nT3JpZ2luOiBib2R5LmluaXRpYWxpemluZ09yaWdpbixcclxuICAgICAgYnJhbmRpbmc6IGJvZHkuYnJhbmRpbmcsXHJcbiAgICAgIG9BdXRoOiBib2R5Lm9BdXRoLFxyXG4gICAgICBzZXNzaW9uSWQ6IHRoaXMuX3Nlc3Npb25JZCxcclxuICAgICAgdHJhY2tpbmc6IGJvZHkudHJhY2tpbmcsXHJcbiAgICAgIHNlc3Npb25EYXRhOiBib2R5LnNlc3Npb25EYXRhXHJcbiAgICB9O1xyXG4gICAgdGhpcy5zZXNzaW9uID0gbW9kZWw7XHJcblxyXG4gICAgY29uc3QgcHV0TW9kZWw6IFNlc3Npb25QdXRSZXF1ZXN0TW9kZWwgPSB7XHJcbiAgICAgIGluaXRpYWxpemluZ09yaWdpbjogYm9keS5pbml0aWFsaXppbmdPcmlnaW4sXHJcbiAgICAgIHNlc3Npb25EYXRhOlxyXG4gICAgICAgIChBcnJheS5pc0FycmF5KGJvZHkuc2Vzc2lvbkRhdGEpXHJcbiAgICAgICAgICA/IGJvZHkuc2Vzc2lvbkRhdGEubWFwKChkLCBpbmRleCkgPT4gc2VjdXJhYmxlRGVsZWdhdGVbaW5kZXhdKGQpKSA6IChzZWN1cmFibGVEZWxlZ2F0ZSBhcyAoKGFyZzogYW55KSA9PiBhbnkpKShib2R5LnNlc3Npb25EYXRhKSksXHJcbiAgICAgIGJyYW5kaW5nOiBib2R5LmJyYW5kaW5nLFxyXG4gICAgICB0cmFja2luZzogYm9keS50cmFja2luZyxcclxuICAgICAgb0F1dGg6IGJvZHkub0F1dGhcclxuICAgIH07XHJcblxyXG4gICAgLy8gaWYgZGF0YSBzdG9yZSBpcyBwcm92aWRlZCBydW4gdGhlIGRlbGVnYXRlIHRvIGRldGVybWluZSB0aGUgYm9keSBhbmQgdGhlIHVyaSB0byB1c2UgZm9yIHRoZSB1cGRhdGVcclxuICAgIGlmICh0aGlzLmlzRGF0YVN0b3JlUHJvdmlkZWQgJiYgIXNraXBEYXRhU3RvcmUpIHtcclxuICAgICAgY29uc3QgdXBkYXRlVHVwbGUgPVxyXG4gICAgICAgIHRoaXMuc2Vzc2lvbkNvbmZpZz8uZGF0YVN0b3JlQ29uZmlnLnVwZGF0ZVJlcXVlc3REZWxlZ2F0ZSh0aGlzLnNlc3Npb25Db25maWc/LmRhdGFTdG9yZUNvbmZpZy5iYXNlVXJpLCBib2R5LnNlc3Npb25EYXRhKTtcclxuICAgICAgLy8gc3dpdGNoIG1hcCB0byBjYW5jZWwgZXhpc3RpbmcgY2FsbHMgd2l0aCBuZXdlciBvbmVzIHRvIGF2b2lkIHJldmVydGluZyBkYXRhXHJcbiAgICAgIGlmICh0aGlzLnNlc3Npb25Db25maWc/LmRhdGFTdG9yZUNvbmZpZy5zaG91bGRVcGRhdGVEYXRhU3RvcmVEZWxlZ2F0ZShib2R5LnNlc3Npb25EYXRhKSkge1xyXG4gICAgICAgIHRoaXMuY3VycmVudFVwZGF0ZURhdGFTdG9yZUNhbGwucGlwZShzd2l0Y2hNYXAoKCkgPT4ge1xyXG4gICAgICAgICAgc3dpdGNoICh0aGlzLnNlc3Npb25Db25maWc/LmRhdGFTdG9yZUNvbmZpZy51cGRhdGVWZXJiKSB7XHJcbiAgICAgICAgICAgIGNhc2UgaHR0cFZlcmIuUE9TVDpcclxuICAgICAgICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3QodXBkYXRlVHVwbGUudXJpLCB1cGRhdGVUdXBsZS5ib2R5KTtcclxuICAgICAgICAgICAgY2FzZSBodHRwVmVyYi5QVVQ6XHJcbiAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5wdXQodXBkYXRlVHVwbGUudXJpLCB1cGRhdGVUdXBsZS5ib2R5KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KSlcclxuICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmlzRGF0YVN0b3JlUmV0cmlldmVDb21wbGV0ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMud2luZG93LnNlc3Npb25TdG9yYWdlLnNldEl0ZW0oZGF0YVN0b3JlUmV0cmlldmVDb21wbGV0ZVNlc3Npb25LZXksICd0cnVlJyk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLnNlc3Npb24kO1xyXG4gIH1cclxuXHJcbiAgLyoqIFJlbW92ZXMgdGhlIHNlc3Npb24gKi9cclxuICBwdWJsaWMgcmVtb3ZlU2Vzc2lvbigpOiB2b2lkIHtcclxuICAgIHRoaXMuc2Vzc2lvbkRhdGEubmV4dCh1bmRlZmluZWQpO1xyXG4gICAgdGhpcy53aW5kb3cuc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbShkYXRhU3RvcmVSZXRyaWV2ZUNvbXBsZXRlU2Vzc2lvbktleSk7XHJcbiAgICB0aGlzLndpbmRvdy5zZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKHRoaXMuc2Vzc2lvbkNvbmZpZy5rZXlQYXRoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBkZXByZWNhdGVkIHJlbW92aW5nIGluIHRoZSBuZXh0IHZlcnNpb25cclxuICAgKiBTeW5jcyB0aGUgc2Vzc2lvblxyXG4gICAqIFJldHVybnMgdGhlIG9ic2VydmFibGUgaW5kaWNhdGluZyB3aGVuIHRoZSBzZXNzaW9uIGhhcyBiZWVuIHN5bmNlZFxyXG4gICAqL1xyXG4gIHB1YmxpYyBzeW5jU2Vzc2lvbigpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIG9mKHRydWUpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGRlcHJlY2F0ZWQgcmVtb3ZpbmcgaW4gdGhlIG5leHQgdmVyc2lvblxyXG4gICAqIFJlZnJlc2hlcyB0aGUgc2Vzc2lvblxyXG4gICAqL1xyXG4gIHB1YmxpYyByZWZyZXNoU2Vzc2lvbigpOiB2b2lkIHtcclxuICB9XHJcblxyXG4gIC8qKiBJbml0aWFsaXplIHNlcnZlciBzZXNzaW9uIG1hbmFnZW1lbnQgKi9cclxuICBwcml2YXRlIGluaXRTZXJ2ZXJTZXNzaW9uTWFuYWdlbWVudCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc2Vzc2lvbiQgPSB0aGlzLnNlc3Npb25EYXRhLmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuICAgIGNvbnN0IGdldEZyb21EYXRhU3RvcmUgPSAoKTogYW55ID0+IHtcclxuICAgICAgaWYgKCF0aGlzLnNlc3Npb25Db25maWc/LmRhdGFTdG9yZUNvbmZpZyB8fCAhdGhpcy5hdXRoU2VydmljZSB8fCB0aGlzLmlzRGF0YVN0b3JlUmV0cmlldmVDb21wbGV0ZSkge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gbG9hZCBkYXRhIGZyb20gZGF0YSBzdG9yZSBhbm9uXHJcbiAgICAgIGNvbnN0IGxvYWREYXRhU3RvcmUgPSAoKSA9PlxyXG4gICAgICAgIHRoaXMuZGV0ZXJtaW5lRGF0YVN0b3JlRnVuY3Rpb24odGhpcy5zZXNzaW9uQ29uZmlnPy5kYXRhU3RvcmVDb25maWcucmV0cmlldmVWZXJiLFxyXG4gICAgICAgICAgdGhpcy5zZXNzaW9uQ29uZmlnPy5kYXRhU3RvcmVDb25maWcucmV0cmlldmVSZXF1ZXN0RGVsZWdhdGUsXHJcbiAgICAgICAgICB0aGlzLnNlc3Npb25Db25maWc/LmRhdGFTdG9yZUNvbmZpZy5iYXNlVXJpLFxyXG4gICAgICAgICAgdW5kZWZpbmVkKVxyXG4gICAgICAgICAgLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmlzSW5pdGlhbGl6ZWQkLnN1YnNjcmliZShpc0luaXQgPT4ge1xyXG4gICAgICAgICAgICAgIGlmICghaXNJbml0KSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIHRoaXMuc2Vzc2lvbiQucGlwZSh0YWtlKDEpKVxyXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZShzZXMgPT4ge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVNlc3Npb24odGhpcy5zZXNzaW9uQ29uZmlnPy5kYXRhU3RvcmVDb25maWcucmV0cmlldmVSZXNwb25zZURlbGVnYXRlKHJlcywgc2VzKSxcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlc3Npb25Db25maWc/LmRhdGFTdG9yZUNvbmZpZy5yZXRyaWV2ZVNlY3VyYWJsZURlbGVnYXRlKHJlcyksIHRydWUpO1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmlzRGF0YVN0b3JlSW5pdEJzLm5leHQodHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuaXNEYXRhU3RvcmVSZXRyaWV2ZUNvbXBsZXRlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgdGhpcy53aW5kb3cuc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShkYXRhU3RvcmVSZXRyaWV2ZUNvbXBsZXRlU2Vzc2lvbktleSwgJ3RydWUnKTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgaWYgKCF0aGlzLmF1dGhTZXJ2aWNlLmhhc1ZhbGlkQWNjZXNzVG9rZW4oKSkge1xyXG4gICAgICAgIC8vIEhBQ0s6IEkgY291bGRuJ3QgZG8gdGhpcyBiYXNlZCBvbiBhbiBldmVudCBzbyBJIGhhZCB0byBnZXQgY3JlYXRpdmVcclxuICAgICAgICBjb25zdCBpbnRlcnZhbCA9IHNldEludGVydmFsKCgpID0+IHtcclxuICAgICAgICAgIGlmICh0aGlzLmF1dGhTZXJ2aWNlLmhhc1ZhbGlkQWNjZXNzVG9rZW4oKSkge1xyXG4gICAgICAgICAgICBsb2FkRGF0YVN0b3JlKCk7XHJcbiAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwoaW50ZXJ2YWwpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sIDI1MCk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIGxvYWREYXRhU3RvcmUoKTtcclxuICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCBib2R5OiBTZXNzaW9uUG9zdFJlcXVlc3RNb2RlbCA9IHtcclxuICAgICAgc2Vzc2lvbkRhdGE6IHVuZGVmaW5lZCxcclxuICAgICAgYnJhbmRpbmc6IHVuZGVmaW5lZFxyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCBlbmNvZGVkU2Vzc2lvbiA9IHRoaXMud2luZG93LnNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5zZXNzaW9uQ29uZmlnLmtleVBhdGgpO1xyXG4gICAgdGhpcy5fc2Vzc2lvbklkID0gYFNlc3Npb24tJHtuZXdHdWlkKCl9YDtcclxuICAgIGlmICghZW5jb2RlZFNlc3Npb24pIHtcclxuICAgICAgdGhpcy5zZXNzaW9uID0gYm9keTtcclxuICAgICAgdGhpcy5pc0luaXRpYWxpemVkQnMubmV4dCh0cnVlKTtcclxuICAgICAgZ2V0RnJvbURhdGFTdG9yZSgpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuc2Vzc2lvbiA9IHRoaXMuZGVjb2RlKGVuY29kZWRTZXNzaW9uKTtcclxuICAgICAgdGhpcy5pc0luaXRpYWxpemVkQnMubmV4dCh0cnVlKTtcclxuICAgICAgZ2V0RnJvbURhdGFTdG9yZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqIEluaXRpYWxpemVzIHRoZSBzZXJ2ZXIgc2lkZSBzZXNzaW9uIGlkICovXHJcbiAgcHJpdmF0ZSBpbml0U2VydmVyU2Vzc2lvbklkKCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLl9zZXNzaW9uSWQpIHtcclxuICAgICAgY29uc29sZS53YXJuKCdTZXNzaW9uIEluaXRpYWxpemluZywgc3Vic2NyaWJlIHRvIHNlc3Npb24kIHRvIGdldCB0aGUgc2Vzc2lvbiBpbmZvLiBTZXNzaW9uIElkIHdpbGwgYmUgcG9wdWxhdGVkIHVwb24gaW5pdGlhbGl6YXRpb24nKTtcclxuXHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKiBJbml0aWFsaXplcyBjbGllbnQgc2lkZSBzZXNzaW9uIG1hbmFnZW1lbnQgKi9cclxuICBwcml2YXRlIGluaXRDbGllbnRTZXNzaW9uTWFuYWdlbWVudCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnVzZUJyb3dzZXJTZXNzaW9uU3RvcmFnZSkge1xyXG4gICAgICBjb25zdCBzZXNJZCA9IHRoaXMud2luZG93LnNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5zdG9yYWdlS2V5KTtcclxuICAgICAgdGhpcy5fc2Vzc2lvbklkID0gc2VzSWQgfHwgbmV3R3VpZCgpO1xyXG4gICAgICB0aGlzLnNldFNlc3Npb25TdG9yYWdlKCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICh0aGlzLnVzZUJyb3dzZXJMb2NhbFN0b3JhZ2UpIHtcclxuICAgICAgY29uc3Qgc2VzSWQgPSB0aGlzLndpbmRvdy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0b3JhZ2VLZXkpO1xyXG4gICAgICB0aGlzLl9zZXNzaW9uSWQgPSBzZXNJZCB8fCBuZXdHdWlkKCk7XHJcbiAgICAgIHRoaXMuc2V0TG9jYWxTdG9yYWdlKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmlzSW5pdGlhbGl6ZWRCcy5uZXh0KHRydWUpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRTZXNzaW9uSWRGcm9tU3RvcmFnZSgpOiBzdHJpbmcge1xyXG4gICAgaWYgKHRoaXMudXNlQnJvd3NlckxvY2FsU3RvcmFnZSkge1xyXG4gICAgICByZXR1cm4gdGhpcy53aW5kb3cubG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdG9yYWdlS2V5KTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHRoaXMudXNlQnJvd3NlclNlc3Npb25TdG9yYWdlKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLndpbmRvdy5zZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RvcmFnZUtleSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKiogSW5pdGlhbGl6ZSB0aGUgY2xpZW50IHNpZGUgc2Vzc2lvbiBpZCAqL1xyXG4gIHByaXZhdGUgaW5pdENsaWVudFNlc3Npb25JZCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3Nlc3Npb25JZCA9IG5ld0d1aWQoKTtcclxuICAgIGlmICh0aGlzLnVzZUJyb3dzZXJTZXNzaW9uU3RvcmFnZSkge1xyXG4gICAgICB0aGlzLnNldFNlc3Npb25TdG9yYWdlKCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICh0aGlzLnVzZUJyb3dzZXJMb2NhbFN0b3JhZ2UpIHtcclxuICAgICAgdGhpcy5zZXRMb2NhbFN0b3JhZ2UoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKiBTZXRzIHNlc3Npb24gc3RvcmFnZSAqL1xyXG4gIHByaXZhdGUgc2V0U2Vzc2lvblN0b3JhZ2UoKTogdm9pZCB7XHJcbiAgICB0aGlzLndpbmRvdy5zZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RvcmFnZUtleSwgdGhpcy5fc2Vzc2lvbklkKTtcclxuICB9XHJcblxyXG4gIC8qKiBTZXRzIGxvY2FsIHN0b3JhZ2UgKi9cclxuICBwcml2YXRlIHNldExvY2FsU3RvcmFnZSgpOiB2b2lkIHtcclxuICAgIHRoaXMud2luZG93LmxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RvcmFnZUtleSwgdGhpcy5fc2Vzc2lvbklkKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERldGVybWluZXMgdGhlIHR5cGUgb2YgaHR0cCBjYWxsIHRvIG1ha2UgZm9yIHRoZSBkYXRhIHN0b3JlXHJcbiAgICogQHBhcmFtIHZlcmIgVGhlIHZlcmJcclxuICAgKiBAcGFyYW0gZGVsZWdhdGUgVGhlIGRlbGVnYXRlXHJcbiAgICogQHBhcmFtIHVyaSBUaGUgdXJpXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBkZXRlcm1pbmVEYXRhU3RvcmVGdW5jdGlvbihcclxuICAgIHZlcmI6IEh0dHBWZXJiLFxyXG4gICAgZGVsZWdhdGU6IChiYXNlVXJpOiBzdHJpbmcsIGJvZHk6IFQpID0+IHsgdXJpOiBzdHJpbmcsIGJvZHk/OiBhbnkgfSxcclxuICAgIHVyaTogc3RyaW5nLFxyXG4gICAgYm9keTogYW55XHJcbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGNvbnN0IHR1cGxlID0gZGVsZWdhdGUodXJpLCBib2R5KTtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoe1xyXG4gICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nXHJcbiAgICB9KTtcclxuICAgIHN3aXRjaCAodmVyYikge1xyXG4gICAgICBjYXNlIGh0dHBWZXJiLlBVVDpcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnB1dCh0dXBsZS51cmksIHR1cGxlLmJvZHksIHsgaGVhZGVycyB9KTtcclxuICAgICAgY2FzZSBodHRwVmVyYi5QT1NUOlxyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucG9zdCh0dXBsZS51cmksIHR1cGxlLmJvZHksIHsgaGVhZGVycyB9KTtcclxuICAgICAgY2FzZSBodHRwVmVyYi5HRVQ6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQodHVwbGUudXJpLCB7IGhlYWRlcnMgfSk7XHJcbiAgICAgIGNhc2UgaHR0cFZlcmIuUEFUQ0g6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5wYXRjaCh0dXBsZS51cmksIHR1cGxlLmJvZHksIHsgaGVhZGVycyB9KTtcclxuICAgICAgY2FzZSBodHRwVmVyYi5ERUxFVEU6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5kZWxldGUodHVwbGUudXJpLCB7IGhlYWRlcnMgfSk7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdIdHRwIHZlcmIgbXVzdCBiZSBvbmUgb2Y6IFBBVENILCBQVVQsIFBPU1QsIERFTEVURSwgR0VUJyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBFbmNvZGVzIHRoZSBvYmplY3RcclxuICAgKiBAcGFyYW0gdmFsdWUgVGhlIG9iamVjdFxyXG4gICAqL1xyXG4gIHByaXZhdGUgZW5jb2RlKHZhbHVlOiBhbnkpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHdpbmRvdy5idG9hKHVuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeSh2YWx1ZSkpKSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEZWNvZGVzIHRoZSBzdHJpbmdcclxuICAgKiBAcGFyYW0gc3RyIFRoZSBzdHJpbmdcclxuICAgKi9cclxuICBwcml2YXRlIGRlY29kZShzdHI6IHN0cmluZyk6IGFueSB7XHJcbiAgICByZXR1cm4gSlNPTi5wYXJzZShkZWNvZGVVUklDb21wb25lbnQoZXNjYXBlKHdpbmRvdy5hdG9iKHN0cikpKSk7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogUmVkaXJlY3QgU2Vzc2lvbiBDb25maWdzLlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIFJlZGlyZWN0U2Vzc2lvbkNvbmZpZ3Mge1xyXG4gIC8qKiBJZiBzZXNzaW9uIHNob3VsZCBiZSBzeW5jZWQuICovXHJcbiAgc3luY1Nlc3Npb24/OiBib29sZWFuO1xyXG5cclxuICAvKiogSWYgbmV3IHRhYiBzaG91bGQgYmUgdGFyZ2V0ZWQuICovXHJcbiAgdGFyZ2V0TmV3VGFiPzogYm9vbGVhbjtcclxufSJdfQ==
|
|
386
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IlM6L0IwNC9fd29yay8zNTkvcy9saWJyYXJ5L3Byb2plY3RzL2FybWF0dXJlL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9jb3JlL3NlcnZpY2VzL3Nlc3Npb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGVBQWUsRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVqRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzdELE9BQU8sRUFBWSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFekQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7OztBQUU1QyxtREFBbUQ7QUFDbkQsTUFBTSxtQ0FBbUMsR0FBRyxtQkFBbUIsQ0FBQztBQUVoRSwwQkFBMEI7QUFJMUIsTUFBTSxPQUFPLGNBQWM7SUFpRnpCOzs7Ozs7T0FNRztJQUNILFlBQytDLGFBQTRCLEVBQ3BDLE9BQVksRUFDcEIsV0FBeUIsRUFDckMsVUFBc0I7O1FBSE0sa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDcEMsWUFBTyxHQUFQLE9BQU8sQ0FBSztRQUNwQixnQkFBVyxHQUFYLFdBQVcsQ0FBYztRQUNyQyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBdkZ6QyxvREFBb0Q7UUFD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LElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLElBQUksRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7WUFDbkUsS0FBSyxRQUFRLENBQUMsTUFBTTtnQkFDbEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztZQUN4RDtnQkFDRSxNQUFNLElBQUksS0FBSyxDQUFDLHlEQUF5RCxDQUFDLENBQUM7U0FDOUU7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssTUFBTSxDQUFDLEtBQVU7UUFDdkIsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFFRDs7O09BR0c7SUFDSyxNQUFNLENBQUMsR0FBVztRQUN4QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbEUsQ0FBQzs7OztZQTNhRixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7OztZQVZRLGFBQWEsdUJBb0dqQixRQUFRLFlBQUksTUFBTSxTQUFDLGNBQWM7NENBQ2pDLFFBQVEsWUFBSSxNQUFNLFNBQUMsTUFBTTtZQTNHckIsWUFBWSx1QkE0R2hCLFFBQVE7WUE5R0osVUFBVTs7QUE4Ym5COztHQUVHO0FBQ0gsTUFBTSxPQUFPLHNCQUFzQjtDQU1sQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE9BdXRoU2VydmljZSB9IGZyb20gJ2FuZ3VsYXItb2F1dGgyLW9pZGMnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHN3aXRjaE1hcCwgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgU2Vzc2lvblBvc3RSZXF1ZXN0TW9kZWwsIFNlc3Npb25QdXRSZXF1ZXN0TW9kZWwsIFNlc3Npb25SZXNwb25zZU1vZGVsIH0gZnJvbSAnLi4vY2xpZW50LWdlbmVyYXRlZC9tb2RlbC9tb2RlbHMnO1xyXG5pbXBvcnQgeyBTRVNTSU9OX0NPTkZJRywgV0lORE9XIH0gZnJvbSAnLi4vbW9kZWxzL2NvbnN0YW50cyc7XHJcbmltcG9ydCB7IEh0dHBWZXJiLCBodHRwVmVyYiB9IGZyb20gJy4uL21vZGVscy9odHRwLXZlcmJzJztcclxuaW1wb3J0IHsgU2Vzc2lvbkNvbmZpZyB9IGZyb20gJy4uL21vZGVscy9zZXNzaW9uLWNvbmZpZyc7XHJcbmltcG9ydCB7IFR5cGVkU2Vzc2lvbiB9IGZyb20gJy4uL21vZGVscy90eXBlZC1zZXNzaW9uJztcclxuaW1wb3J0IHsgbmV3R3VpZCB9IGZyb20gJy4uL2Z1bmN0aW9ucy9ndWlkJztcclxuXHJcbi8qKiB0aGUgZGF0YSBzdG9yZSByZXRyaWV2ZSBjb21wbGV0ZSBzZXNzaW9uIGtleSAqL1xyXG5jb25zdCBkYXRhU3RvcmVSZXRyaWV2ZUNvbXBsZXRlU2Vzc2lvbktleSA9ICdkYXRhU3RvcmVSZXRyaWV2ZSc7XHJcblxyXG4vKiogVGhlIHNlc3Npb24gc2VydmljZSAqL1xyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZXNzaW9uU2VydmljZTxUID0gYW55PiB7XHJcblxyXG4gIC8qKiBUaGUgc2Vzc2lvbiBpZCAqL1xyXG4gIHByaXZhdGUgX3Nlc3Npb25JZDogc3RyaW5nO1xyXG5cclxuICAvKiogVHJ1ZSB3aGVuIHRoZSBkYXRhIHN0b3JlIHJldHJpZXZlIGlzIGNvbXBsZXRlICovXHJcbiAgcHJpdmF0ZSBpc0RhdGFTdG9yZVJldHJpZXZlQ29tcGxldGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLyoqIFRoZSBsb2NhbCBzdG9yYWdlIGtleSAqL1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgc3RvcmFnZUtleTogc3RyaW5nID0gJ1NvZi1Bcm0tU2Vzc2lvbi1JZCc7XHJcblxyXG4gIC8qKiBUZWggY3VycmVudCB1cGRhdGUgZGF0YSBzdG9yZSBjYWxsICovXHJcbiAgcHJpdmF0ZSByZWFkb25seSBjdXJyZW50VXBkYXRlRGF0YVN0b3JlQ2FsbDogT2JzZXJ2YWJsZTxhbnk+ID0gb2Yoe30pO1xyXG5cclxuICAvKiogVGhlIHNlc3Npb24gZGF0YSBiZWhhdmlvciBzdWJqZWN0ICovXHJcbiAgcHJpdmF0ZSByZWFkb25seSBzZXNzaW9uRGF0YTogQmVoYXZpb3JTdWJqZWN0PFR5cGVkU2Vzc2lvbjxUPj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFR5cGVkU2Vzc2lvbjxUPj4odW5kZWZpbmVkKTtcclxuXHJcbiAgLyoqIFRydWUgd2hlbiB0aGUgc2VydmljZSBoYXMgZmluaXNoZWQgaW5pdGlhbGl6aW5nICovXHJcbiAgcHJpdmF0ZSByZWFkb25seSBpc0luaXRpYWxpemVkQnM6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cclxuICAvKiogVHJ1ZSBpZiB0aGUgZGF0YSBzdG9yZSBpcyBpbml0aWFsaXplZCAqL1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgaXNEYXRhU3RvcmVJbml0QnM6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cclxuICAvKiogVHJ1ZSBpZiBjbGllbnQgc2lkZSBzZXNzaW9uIG1hbmFnZW1lbnQgKi9cclxuICBwcml2YXRlIGdldCBpc0NsaWVudFNlc3Npb25NYW5hZ2VtZW50KCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc2Vzc2lvbkNvbmZpZy5zZXNzaW9uTWFuYWdlbWVudEltcGxlbWVudGF0aW9uID09PSAnY2xpZW50JztcclxuICB9XHJcblxyXG4gIC8qKiBUcnVlIGlmIHNlcnZlciBzaWRlIHNlc3Npb24gbWFuYWdlbWVudCAqL1xyXG4gIHByaXZhdGUgZ2V0IGlzU2VydmVyU2Vzc2lvbk1hbmFnZW1lbnQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5zZXNzaW9uQ29uZmlnLnNlc3Npb25NYW5hZ2VtZW50SW1wbGVtZW50YXRpb24gPT09ICdzZXJ2ZXInO1xyXG4gIH1cclxuXHJcbiAgLyoqIFRydWUgaWYgdXNpbmcgYnJvd3NlciBsb2NhbCBzdG9yYWdlICovXHJcbiAgcHJpdmF0ZSBnZXQgdXNlQnJvd3NlckxvY2FsU3RvcmFnZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnNlc3Npb25Db25maWcuYnJvd3NlclN0b3JhZ2VJbXBsZW1lbnRhdGlvbiA9PT0gJ2xvY2FsJztcclxuICB9XHJcblxyXG4gIC8qKiBUcnVlIGlmIHVzaW5nIGJyb3dzZXIgc2Vzc2lvbiBzdG9yYWdlICovXHJcbiAgcHJpdmF0ZSBnZXQgdXNlQnJvd3NlclNlc3Npb25TdG9yYWdlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc2Vzc2lvbkNvbmZpZy5icm93c2VyU3RvcmFnZUltcGxlbWVudGF0aW9uID09PSAnc2Vzc2lvbic7XHJcbiAgfVxyXG5cclxuICAvKiogVGhlIHdpbmRvdyAqL1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgd2luZG93OiBXaW5kb3c7XHJcblxyXG4gIC8qKiBUcnVlIGlmIGRhdGEgc3RvcmUgaXMgcHJvdmlkZWQgKi9cclxuICBwcml2YXRlIHJlYWRvbmx5IGlzRGF0YVN0b3JlUHJvdmlkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLyoqIFRoZSBzZXNzaW9uIGlkICovXHJcbiAgcHVibGljIGdldCBzZXNzaW9uSWQoKTogc3RyaW5nIHtcclxuICAgIGlmICghdGhpcy5fc2Vzc2lvbklkKSB7XHJcbiAgICAgIHRoaXMuaXNDbGllbnRTZXNzaW9uTWFuYWdlbWVudCA/IHRoaXMuaW5pdENsaWVudFNlc3Npb25JZCgpIDogdGhpcy5pbml0U2VydmVyU2Vzc2lvbklkKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuX3Nlc3Npb25JZDtcclxuICB9XHJcblxyXG4gIC8qKiBUaGUgc2Vzc2lvbiAqL1xyXG4gIHB1YmxpYyBzZXNzaW9uJDogT2JzZXJ2YWJsZTxUeXBlZFNlc3Npb248VD4+O1xyXG5cclxuICAvKiogVGhlIHNlc3Npb24gcmVmcmVzaCBvYnNlcnZhYmxlICovXHJcbiAgcHVibGljIHNlc3Npb25SZWZyZXNoJDogT2JzZXJ2YWJsZTxhbnk+O1xyXG5cclxuICAvKiogSW5kaWNhdGVzIHdoZW4gdGhlIHNlcnZpY2UgaGFzIGZpbmlzaGVkIGluaXRpYWxpemluZyAqL1xyXG4gIHB1YmxpYyBpc0luaXRpYWxpemVkJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcclxuXHJcbiAgLyoqIFRydWUgaWYgdGhlIGRhdGEgc3RvcmUgaXMgaW5pdGlhbGl6ZWQgKi9cclxuICBwdWJsaWMgaXNEYXRhU3RvcmVJbml0JDogT2JzZXJ2YWJsZTxib29sZWFuPjtcclxuXHJcbiAgLyoqIGdldHMgdGhlIHNlc3Npb24gKi9cclxuICBwdWJsaWMgZ2V0IHNlc3Npb24oKTogVHlwZWRTZXNzaW9uPFQ+IHtcclxuICAgIHJldHVybiB0aGlzLnNlc3Npb25EYXRhLnZhbHVlO1xyXG4gIH1cclxuXHJcbiAgLyoqIHNldHMgdGhlIHNlc3Npb24gKi9cclxuICBwdWJsaWMgc2V0IHNlc3Npb24odmFsdWU6IFR5cGVkU2Vzc2lvbjxUPikge1xyXG4gICAgdGhpcy5zZXNzaW9uRGF0YS5uZXh0KHZhbHVlKTtcclxuICAgIHRoaXMud2luZG93LnNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5zZXNzaW9uQ29uZmlnLmtleVBhdGgsIHRoaXMuZW5jb2RlKHZhbHVlKSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDb25zdHJ1Y3RzIHRoZSBzZXJ2aWNlXHJcbiAgICogQHBhcmFtIHNlc3Npb25Db25maWcgVGhlIHNlc3Npb24gY29uZmlndXJhdGlvbnNcclxuICAgKiBAcGFyYW0gX3dpbmRvdyBUaGUgd2luZG93IGludGVyZmFjZVxyXG4gICAqIEBwYXJhbSBhdXRoU2VydmljZSBUaGUgT0F1dGggb2RpYyAyIHNlcnZpY2VcclxuICAgKiBAcGFyYW0gaHR0cENsaWVudCBUaGUgaHR0cCBjbGllbnRcclxuICAgKi9cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoU0VTU0lPTl9DT05GSUcpIHJlYWRvbmx5IHNlc3Npb25Db25maWc6IFNlc3Npb25Db25maWcsXHJcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KFdJTkRPVykgcmVhZG9ubHkgX3dpbmRvdzogYW55LFxyXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSByZWFkb25seSBhdXRoU2VydmljZTogT0F1dGhTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBodHRwQ2xpZW50OiBIdHRwQ2xpZW50XHJcbiAgKSB7XHJcbiAgICB0aGlzLmlzSW5pdGlhbGl6ZWQkID0gdGhpcy5pc0luaXRpYWxpemVkQnMuYXNPYnNlcnZhYmxlKCk7XHJcbiAgICB0aGlzLmlzRGF0YVN0b3JlSW5pdCQgPSB0aGlzLmlzRGF0YVN0b3JlSW5pdEJzLmFzT2JzZXJ2YWJsZSgpO1xyXG4gICAgaWYgKCF0aGlzLnNlc3Npb25Db25maWcpIHtcclxuICAgICAgdGhpcy5zZXNzaW9uQ29uZmlnID0gbmV3IFNlc3Npb25Db25maWcoKTtcclxuICAgIH1cclxuICAgIHRoaXMuaXNEYXRhU3RvcmVQcm92aWRlZCA9ICEhdGhpcy5zZXNzaW9uQ29uZmlnPy5kYXRhU3RvcmVDb25maWc7XHJcbiAgICB0aGlzLndpbmRvdyA9IF93aW5kb3c7XHJcbiAgICBpZiAoIXRoaXMud2luZG93KSB7XHJcbiAgICAgIHRoaXMud2luZG93ID0gd2luZG93O1xyXG4gICAgfVxyXG4gICAgY29uc3QgZGF0YVN0b3JlTG9hZGVkVmFsdWUgPSB0aGlzLndpbmRvdy5zZXNzaW9uU3RvcmFnZS5nZXRJdGVtKGRhdGFTdG9yZVJldHJpZXZlQ29tcGxldGVTZXNzaW9uS2V5KTtcclxuICAgIHRoaXMuaXNEYXRhU3RvcmVSZXRyaWV2ZUNvbXBsZXRlID0gISFkYXRhU3RvcmVMb2FkZWRWYWx1ZSA/IGRhdGFTdG9yZUxvYWRlZFZhbHVlLnRvTG93ZXJDYXNlKCkgPT09ICd0cnVlJyA6IGZhbHNlO1xyXG4gICAgLy8gaWYgbm90IHVzaW5nIGEgZGF0YSBzdG9yZSwgdXBkYXRlIHRoZSBpbml0aWFsaXplZCB0byB0cnVlIGZvciBpdFxyXG4gICAgaWYgKCF0aGlzLmlzRGF0YVN0b3JlUHJvdmlkZWQpIHtcclxuICAgICAgdGhpcy5pc0RhdGFTdG9yZUluaXRCcy5uZXh0KHRydWUpO1xyXG4gICAgfVxyXG4gICAgaWYgKCF0aGlzLnNlc3Npb25Db25maWc/LmJyb3dzZXJTdG9yYWdlSW1wbGVtZW50YXRpb24pIHtcclxuICAgICAgdGhpcy5zZXNzaW9uQ29uZmlnLmJyb3dzZXJTdG9yYWdlSW1wbGVtZW50YXRpb24gPSAnc2Vzc2lvbic7XHJcbiAgICB9XHJcbiAgICBpZiAoIXRoaXMuc2Vzc2lvbkNvbmZpZz8uc2Vzc2lvbk1hbmFnZW1lbnRJbXBsZW1lbnRhdGlvbikge1xyXG4gICAgICB0aGlzLnNlc3Npb25Db25maWcuc2Vzc2lvbk1hbmFnZW1lbnRJbXBsZW1lbnRhdGlvbiA9ICdjbGllbnQnO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuaXNTZXJ2ZXJTZXNzaW9uTWFuYWdlbWVudCAmJiAhdGhpcy5zZXNzaW9uQ29uZmlnKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IHVzZXIgc2VydmVyIHNlc3Npb24gbWFuYWdlbWVudCB3aXRoIG51bGwgc2Vzc2lvbkNvbmZpZyBwbGVhc2UgcHJvdmlkZTogR2xvYmFsSW5qZWN0aW9uVG9rZW5zLnNlc3Npb25Db25maWcnKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmlzQ2xpZW50U2Vzc2lvbk1hbmFnZW1lbnQpIHtcclxuICAgICAgdGhpcy5pbml0Q2xpZW50U2Vzc2lvbk1hbmFnZW1lbnQoKTtcclxuXHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmluaXRTZXJ2ZXJTZXNzaW9uTWFuYWdlbWVudCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVkaXJlY3RzIHRvIGEgdXJsIHdpdGggYSByZWYgdG8gdGhlIGV4aXN0aW5nIHNlc3Npb25cclxuICAgKiBAcGFyYW0gdXJpIFRoZSB1cmkgdG8gcmVkaXJlY3QgdG9cclxuICAgKiBAcGFyYW0gc3luY1Nlc3Npb24gU3luYyBzZXNzaW9uLlxyXG4gICAqIEBwYXJhbSBjb25maWdzIFJlZGlyZWN0IGNvbmZpZ3MuXHJcbiAgICovXHJcbiAgcHVibGljIHJlZGlyZWN0KHVyaTogc3RyaW5nLCBzeW5jU2Vzc2lvbjogYm9vbGVhbiA9IGZhbHNlLCBjb25maWdzOiBSZWRpcmVjdFNlc3Npb25Db25maWdzID0ge30pOiB2b2lkIHtcclxuICAgIC8vIGlmIHRoZSBob3N0IG5hbWUgaXNuJ3QgaW4gdGhlIHVyaSwgd2UgYXJlIGdvaW5nIHRvIGEgZGlmZmVyZW50IGRvbWFpbiwgc28gdXNlIHRoZSBnYXRld2F5IG9uIHRoZSBvdGhlciBkb21haW4ncyBzZXJ2ZXJcclxuICAgIGxldCBmb3JtQWN0aW9uID0gYCR7dGhpcy5zZXNzaW9uQ29uZmlnLnRyYW5zZmVyQmFzZVBhdGh9L3Nzb2dhdGV3YXkvdjIvc3NvL2luYm91bmQtdHJhbnNmZXIvJHt0aGlzLnNlc3Npb25Db25maWcua2V5UGF0aH1gO1xyXG4gICAgaWYgKHVyaS5pbmRleE9mKHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSkgPT09IC0xKSB7XHJcbiAgICAgIGNvbnN0IHVyaVBhcnRzID0gdXJpLnNwbGl0KCcvJyk7XHJcbiAgICAgIC8vIHRoaXMgcmVzdWx0cyBpbiBbJ2h0dHBzOicsICcnLCAnZG9tYWluLmhvc3QnXSwgdXNlIDAgYW5kIDIgdG8gZ2V0IHRoZSBiYXNlIHVybCBvZiB0aGUgcmVkaXJlY3QgdXJpXHJcbiAgICAgIGZvcm1BY3Rpb24gPSBgJHt1cmlQYXJ0c1swXX0vLyR7dXJpUGFydHNbMl19L3Nzb2dhdGV3YXkvdjIvc3NvL2luYm91bmQtdHJhbnNmZXIvJHt0aGlzLnNlc3Npb25Db25maWcua2V5UGF0aH1gO1xyXG4gICAgfVxyXG4gICAgY29uc3QgZm9ybSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Zvcm0nKTtcclxuICAgIGNvbnN0IGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTtcclxuICAgIGNvbnN0IGlucHV0RGVzdGluYXRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpO1xyXG4gICAgZm9ybS5tZXRob2QgPSAnUE9TVCc7XHJcbiAgICBmb3JtLmFjdGlvbiA9IGZvcm1BY3Rpb247XHJcbiAgICBpZiAoY29uZmlncy50YXJnZXROZXdUYWIpIHtcclxuICAgICAgLy8gVGhlIHBhcmVudCBzZXNzaW9uIHNob3VsZCBhbHJlYWR5IGJlIHByZXNlbnQgaW4gY2hpbGQgd2luZG93IGFzIHBlciBicm93c2luZyBjb250ZXh0IHJ1bGVzLCBidXQgZm9yIHdoYXRldmVyIHJlYXNvbiBmb3JtLnRhcmdldCA9ICdfYmxhbmsnIGRvZXMgbm90IGRvIHRoYXQuXHJcbiAgICAgIC8vIE5lZWQgdG8gdXNlIHdpbmRvdy5vcGVuIGhlcmUgc28gdGhlIHBhcmVudCB3aW5kb3cncyBzZXNzaW9uIGFsc28gZ2V0cyBjYXJyaWVkIG92ZXIgdG8gdGhlIG5ldyB0YWIuXHJcbiAgICAgIC8vIEZvciByZWZlcmVuY2U6IGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzE3Mjk3Mjg3L3Nlc3Npb25zdG9yYWdlLW9uLW5ldy13aW5kb3ctaXNudC1lbXB0eS13aGVuLWZvbGxvd2luZy1hLWxpbmstd2l0aC10YXJnZXQtYmxcclxuICAgICAgZm9ybS50YXJnZXQgPSAnY3VzdG9tV2luZG93JztcclxuICAgICAgd2luZG93Lm9wZW4oJycsICdjdXN0b21XaW5kb3cnKTtcclxuICAgIH1cclxuXHJcbiAgICBpbnB1dC5uYW1lID0gJ2RhdGEnO1xyXG4gICAgaW5wdXQudmFsdWUgPSB0aGlzLndpbmRvdy5zZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuc2Vzc2lvbkNvbmZpZy5rZXlQYXRoKTtcclxuICAgIGlucHV0RGVzdGluYXRpb24ubmFtZSA9ICdkZXN0aW5hdGlvbic7XHJcbiAgICBpbnB1dERlc3RpbmF0aW9uLnZhbHVlID0gdXJpO1xyXG4gICAgZm9ybS5hcHBlbmRDaGlsZChpbnB1dCk7XHJcbiAgICBmb3JtLmFwcGVuZENoaWxkKGlucHV0RGVzdGluYXRpb24pO1xyXG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChmb3JtKTtcclxuICAgIGZvcm0uc3VibWl0KCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGVzIHRoZSBzZXNzaW9uXHJcbiAgICogQHBhcmFtIGJvZHkgVGhlIHNlc3Npb24gcHV0IHJlcXVlc3QgYm9keVxyXG4gICAqL1xyXG4gIHB1YmxpYyB1cGRhdGVTZXNzaW9uKFxyXG4gICAgYm9keTogVHlwZWRTZXNzaW9uPFQ+LFxyXG4gICAgc2VjdXJhYmxlRGVsZWdhdGU6IEFycmF5PChhcmc6IGFueSkgPT4gYW55PiB8ICgoYXJnOiBhbnkpID0+IGFueSksXHJcbiAgICBza2lwRGF0YVN0b3JlPzogYm9vbGVhbik6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBpZiAoIXRoaXMuX3Nlc3Npb25JZCkge1xyXG4gICAgICBjb25zb2xlLmVycm9yKCdObyBzZXNzaW9uIGhhcyBiZWVuIGluaXRpYWxpemVkLCBza2lwcGluZyB1cGRhdGUgY2FsbCcpO1xyXG5cclxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIH1cclxuICAgIGlmICghc2VjdXJhYmxlRGVsZWdhdGUpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdTZXNzaW9uU2VydmljZTp1cGRhdGVTZXNzaW9uIC0+IEFyZ3VtZW50IGlzIG51bGwgb3IgdW5kZWZpbmVkLCBhcmc6IHNlY3VyYWJsZURlbGVnYXRlJyk7XHJcbiAgICB9XHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheShib2R5LnNlc3Npb25EYXRhKSAmJiAhQXJyYXkuaXNBcnJheShzZWN1cmFibGVEZWxlZ2F0ZSkpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKFxyXG4gICAgICAgICdTZXNzaW9uU2VydmljZTp1cGRhdGVTZXNzaW9uIC0+IFR5cGUgbWlzcyBtYXRjaCwgYXJnOiBib2R5LlNlc3Npb25EYXRhICh0eXBlIG9mIEFycmF5KSBhbmQgYXJnOiBzZWN1cmFibGVEZWxlZ2F0ZSAodHlwZSBvZiAoYXJnOiBhbnkpID0+IGFueSkgYm90aCBtdXN0IGJlIGFycmF5IG9yIG5vbi1hcnJheSdcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIGlmICghQXJyYXkuaXNBcnJheShib2R5LnNlc3Npb25EYXRhKSAmJiBBcnJheS5pc0FycmF5KHNlY3VyYWJsZURlbGVnYXRlKSkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXHJcbiAgICAgICAgJ1Nlc3Npb25TZXJ2aWNlOnVwZGF0ZVNlc3Npb24gLT4gVHlwZSBtaXNzIG1hdGNoLCBhcmc6IGJvZHkuU2Vzc2lvbkRhdGEgKHR5cGUgb2YgYW55KSBhbmQgYXJnOiBzZWN1cmFibGVEZWxlZ2F0ZSAodHlwZSBvZiBBcnJheSkgIGJvdGggbXVzdCBiZSBhcnJheSBvciBub24tYXJyYXknXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICAvLyBjcmVhdGUgcmVzcG9uc2UgbW9kZWwgYW5kIHVwZGF0ZSBvYnNlcnZhYmxlIHRvIGVtaXQgbmV3IHNlc3Npb24gdmFsdWVcclxuICAgIGNvbnN0IG1vZGVsOiBTZXNzaW9uUmVzcG9uc2VNb2RlbCA9IHtcclxuICAgICAgaW5pdGlhbGl6aW5nT3JpZ2luOiBib2R5LmluaXRpYWxpemluZ09yaWdpbixcclxuICAgICAgYnJhbmRpbmc6IGJvZHkuYnJhbmRpbmcsXHJcbiAgICAgIG9BdXRoOiBib2R5Lm9BdXRoLFxyXG4gICAgICBzZXNzaW9uSWQ6IHRoaXMuX3Nlc3Npb25JZCxcclxuICAgICAgdHJhY2tpbmc6IGJvZHkudHJhY2tpbmcsXHJcbiAgICAgIHNlc3Npb25EYXRhOiBib2R5LnNlc3Npb25EYXRhXHJcbiAgICB9O1xyXG4gICAgdGhpcy5zZXNzaW9uID0gbW9kZWw7XHJcblxyXG4gICAgY29uc3QgcHV0TW9kZWw6IFNlc3Npb25QdXRSZXF1ZXN0TW9kZWwgPSB7XHJcbiAgICAgIGluaXRpYWxpemluZ09yaWdpbjogYm9keS5pbml0aWFsaXppbmdPcmlnaW4sXHJcbiAgICAgIHNlc3Npb25EYXRhOlxyXG4gICAgICAgIChBcnJheS5pc0FycmF5KGJvZHkuc2Vzc2lvbkRhdGEpXHJcbiAgICAgICAgICA/IGJvZHkuc2Vzc2lvbkRhdGEubWFwKChkLCBpbmRleCkgPT4gc2VjdXJhYmxlRGVsZWdhdGVbaW5kZXhdKGQpKSA6IChzZWN1cmFibGVEZWxlZ2F0ZSBhcyAoKGFyZzogYW55KSA9PiBhbnkpKShib2R5LnNlc3Npb25EYXRhKSksXHJcbiAgICAgIGJyYW5kaW5nOiBib2R5LmJyYW5kaW5nLFxyXG4gICAgICB0cmFja2luZzogYm9keS50cmFja2luZyxcclxuICAgICAgb0F1dGg6IGJvZHkub0F1dGhcclxuICAgIH07XHJcblxyXG4gICAgLy8gaWYgZGF0YSBzdG9yZSBpcyBwcm92aWRlZCBydW4gdGhlIGRlbGVnYXRlIHRvIGRldGVybWluZSB0aGUgYm9keSBhbmQgdGhlIHVyaSB0byB1c2UgZm9yIHRoZSB1cGRhdGVcclxuICAgIGlmICh0aGlzLmlzRGF0YVN0b3JlUHJvdmlkZWQgJiYgIXNraXBEYXRhU3RvcmUpIHtcclxuICAgICAgY29uc3QgdXBkYXRlVHVwbGUgPVxyXG4gICAgICAgIHRoaXMuc2Vzc2lvbkNvbmZpZz8uZGF0YVN0b3JlQ29uZmlnLnVwZGF0ZVJlcXVlc3REZWxlZ2F0ZSh0aGlzLnNlc3Npb25Db25maWc/LmRhdGFTdG9yZUNvbmZpZy5iYXNlVXJpLCBib2R5LnNlc3Npb25EYXRhKTtcclxuICAgICAgLy8gc3dpdGNoIG1hcCB0byBjYW5jZWwgZXhpc3RpbmcgY2FsbHMgd2l0aCBuZXdlciBvbmVzIHRvIGF2b2lkIHJldmVydGluZyBkYXRhXHJcbiAgICAgIGlmICh0aGlzLnNlc3Npb25Db25maWc/LmRhdGFTdG9yZUNvbmZpZy5zaG91bGRVcGRhdGVEYXRhU3RvcmVEZWxlZ2F0ZShib2R5LnNlc3Npb25EYXRhKSkge1xyXG4gICAgICAgIHRoaXMuY3VycmVudFVwZGF0ZURhdGFTdG9yZUNhbGwucGlwZShzd2l0Y2hNYXAoKCkgPT4ge1xyXG4gICAgICAgICAgc3dpdGNoICh0aGlzLnNlc3Npb25Db25maWc/LmRhdGFTdG9yZUNvbmZpZy51cGRhdGVWZXJiKSB7XHJcbiAgICAgICAgICAgIGNhc2UgaHR0cFZlcmIuUE9TVDpcclxuICAgICAgICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3QodXBkYXRlVHVwbGUudXJpLCB1cGRhdGVUdXBsZS5ib2R5KTtcclxuICAgICAgICAgICAgY2FzZSBodHRwVmVyYi5QVVQ6XHJcbiAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5wdXQodXBkYXRlVHVwbGUudXJpLCB1cGRhdGVUdXBsZS5ib2R5KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KSlcclxuICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmlzRGF0YVN0b3JlUmV0cmlldmVDb21wbGV0ZSA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMud2luZG93LnNlc3Npb25TdG9yYWdlLnNldEl0ZW0oZGF0YVN0b3JlUmV0cmlldmVDb21wbGV0ZVNlc3Npb25LZXksICd0cnVlJyk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLnNlc3Npb24kO1xyXG4gIH1cclxuXHJcbiAgLyoqIFJlbW92ZXMgdGhlIHNlc3Npb24gKi9cclxuICBwdWJsaWMgcmVtb3ZlU2Vzc2lvbigpOiB2b2lkIHtcclxuICAgIHRoaXMuc2Vzc2lvbkRhdGEubmV4dCh1bmRlZmluZWQpO1xyXG4gICAgdGhpcy53aW5kb3cuc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbShkYXRhU3RvcmVSZXRyaWV2ZUNvbXBsZXRlU2Vzc2lvbktleSk7XHJcbiAgICB0aGlzLndpbmRvdy5zZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKHRoaXMuc2Vzc2lvbkNvbmZpZy5rZXlQYXRoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBkZXByZWNhdGVkIHJlbW92aW5nIGluIHRoZSBuZXh0IHZlcnNpb25cclxuICAgKiBTeW5jcyB0aGUgc2Vzc2lvblxyXG4gICAqIFJldHVybnMgdGhlIG9ic2VydmFibGUgaW5kaWNhdGluZyB3aGVuIHRoZSBzZXNzaW9uIGhhcyBiZWVuIHN5bmNlZFxyXG4gICAqL1xyXG4gIHB1YmxpYyBzeW5jU2Vzc2lvbigpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIG9mKHRydWUpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGRlcHJlY2F0ZWQgcmVtb3ZpbmcgaW4gdGhlIG5leHQgdmVyc2lvblxyXG4gICAqIFJlZnJlc2hlcyB0aGUgc2Vzc2lvblxyXG4gICAqL1xyXG4gIHB1YmxpYyByZWZyZXNoU2Vzc2lvbigpOiB2b2lkIHtcclxuICB9XHJcblxyXG4gIC8qKiBJbml0aWFsaXplIHNlcnZlciBzZXNzaW9uIG1hbmFnZW1lbnQgKi9cclxuICBwcml2YXRlIGluaXRTZXJ2ZXJTZXNzaW9uTWFuYWdlbWVudCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc2Vzc2lvbiQgPSB0aGlzLnNlc3Npb25EYXRhLmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuICAgIGNvbnN0IGdldEZyb21EYXRhU3RvcmUgPSAoKTogYW55ID0+IHtcclxuICAgICAgaWYgKCF0aGlzLnNlc3Npb25Db25maWc/LmRhdGFTdG9yZUNvbmZpZyB8fCAhdGhpcy5hdXRoU2VydmljZSB8fCB0aGlzLmlzRGF0YVN0b3JlUmV0cmlldmVDb21wbGV0ZSkge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gbG9hZCBkYXRhIGZyb20gZGF0YSBzdG9yZSBhbm9uXHJcbiAgICAgIGNvbnN0IGxvYWREYXRhU3RvcmUgPSAoKSA9PlxyXG4gICAgICAgIHRoaXMuZGV0ZXJtaW5lRGF0YVN0b3JlRnVuY3Rpb24odGhpcy5zZXNzaW9uQ29uZmlnPy5kYXRhU3RvcmVDb25maWcucmV0cmlldmVWZXJiLFxyXG4gICAgICAgICAgdGhpcy5zZXNzaW9uQ29uZmlnPy5kYXRhU3RvcmVDb25maWcucmV0cmlldmVSZXF1ZXN0RGVsZWdhdGUsXHJcbiAgICAgICAgICB0aGlzLnNlc3Npb25Db25maWc/LmRhdGFTdG9yZUNvbmZpZy5iYXNlVXJpLFxyXG4gICAgICAgICAgdW5kZWZpbmVkKVxyXG4gICAgICAgICAgLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmlzSW5pdGlhbGl6ZWQkLnN1YnNjcmliZShpc0luaXQgPT4ge1xyXG4gICAgICAgICAgICAgIGlmICghaXNJbml0KSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIHRoaXMuc2Vzc2lvbiQucGlwZSh0YWtlKDEpKVxyXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZShzZXMgPT4ge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVNlc3Npb24odGhpcy5zZXNzaW9uQ29uZmlnPy5kYXRhU3RvcmVDb25maWcucmV0cmlldmVSZXNwb25zZURlbGVnYXRlKHJlcywgc2VzKSxcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlc3Npb25Db25maWc/LmRhdGFTdG9yZUNvbmZpZy5yZXRyaWV2ZVNlY3VyYWJsZURlbGVnYXRlKHJlcyksIHRydWUpO1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmlzRGF0YVN0b3JlSW5pdEJzLm5leHQodHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuaXNEYXRhU3RvcmVSZXRyaWV2ZUNvbXBsZXRlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgdGhpcy53aW5kb3cuc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShkYXRhU3RvcmVSZXRyaWV2ZUNvbXBsZXRlU2Vzc2lvbktleSwgJ3RydWUnKTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgaWYgKCF0aGlzLmF1dGhTZXJ2aWNlLmhhc1ZhbGlkQWNjZXNzVG9rZW4oKSkge1xyXG4gICAgICAgIC8vIEhBQ0s6IEkgY291bGRuJ3QgZG8gdGhpcyBiYXNlZCBvbiBhbiBldmVudCBzbyBJIGhhZCB0byBnZXQgY3JlYXRpdmVcclxuICAgICAgICBjb25zdCBpbnRlcnZhbCA9IHNldEludGVydmFsKCgpID0+IHtcclxuICAgICAgICAgIGlmICh0aGlzLmF1dGhTZXJ2aWNlLmhhc1ZhbGlkQWNjZXNzVG9rZW4oKSkge1xyXG4gICAgICAgICAgICBsb2FkRGF0YVN0b3JlKCk7XHJcbiAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwoaW50ZXJ2YWwpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sIDI1MCk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIGxvYWREYXRhU3RvcmUoKTtcclxuICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCBib2R5OiBTZXNzaW9uUG9zdFJlcXVlc3RNb2RlbCA9IHtcclxuICAgICAgc2Vzc2lvbkRhdGE6IHVuZGVmaW5lZCxcclxuICAgICAgYnJhbmRpbmc6IHVuZGVmaW5lZFxyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCBlbmNvZGVkU2Vzc2lvbiA9IHRoaXMud2luZG93LnNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5zZXNzaW9uQ29uZmlnLmtleVBhdGgpO1xyXG4gICAgdGhpcy5fc2Vzc2lvbklkID0gYFNlc3Npb24tJHtuZXdHdWlkKCl9YDtcclxuICAgIGlmICghZW5jb2RlZFNlc3Npb24pIHtcclxuICAgICAgdGhpcy5zZXNzaW9uID0gYm9keTtcclxuICAgICAgdGhpcy5pc0luaXRpYWxpemVkQnMubmV4dCh0cnVlKTtcclxuICAgICAgZ2V0RnJvbURhdGFTdG9yZSgpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuc2Vzc2lvbiA9IHRoaXMuZGVjb2RlKGVuY29kZWRTZXNzaW9uKTtcclxuICAgICAgdGhpcy5pc0luaXRpYWxpemVkQnMubmV4dCh0cnVlKTtcclxuICAgICAgZ2V0RnJvbURhdGFTdG9yZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqIEluaXRpYWxpemVzIHRoZSBzZXJ2ZXIgc2lkZSBzZXNzaW9uIGlkICovXHJcbiAgcHJpdmF0ZSBpbml0U2VydmVyU2Vzc2lvbklkKCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLl9zZXNzaW9uSWQpIHtcclxuICAgICAgY29uc29sZS53YXJuKCdTZXNzaW9uIEluaXRpYWxpemluZywgc3Vic2NyaWJlIHRvIHNlc3Npb24kIHRvIGdldCB0aGUgc2Vzc2lvbiBpbmZvLiBTZXNzaW9uIElkIHdpbGwgYmUgcG9wdWxhdGVkIHVwb24gaW5pdGlhbGl6YXRpb24nKTtcclxuXHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKiBJbml0aWFsaXplcyBjbGllbnQgc2lkZSBzZXNzaW9uIG1hbmFnZW1lbnQgKi9cclxuICBwcml2YXRlIGluaXRDbGllbnRTZXNzaW9uTWFuYWdlbWVudCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnVzZUJyb3dzZXJTZXNzaW9uU3RvcmFnZSkge1xyXG4gICAgICBjb25zdCBzZXNJZCA9IHRoaXMud2luZG93LnNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5zdG9yYWdlS2V5KTtcclxuICAgICAgdGhpcy5fc2Vzc2lvbklkID0gc2VzSWQgfHwgbmV3R3VpZCgpO1xyXG4gICAgICB0aGlzLnNldFNlc3Npb25TdG9yYWdlKCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICh0aGlzLnVzZUJyb3dzZXJMb2NhbFN0b3JhZ2UpIHtcclxuICAgICAgY29uc3Qgc2VzSWQgPSB0aGlzLndpbmRvdy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0b3JhZ2VLZXkpO1xyXG4gICAgICB0aGlzLl9zZXNzaW9uSWQgPSBzZXNJZCB8fCBuZXdHdWlkKCk7XHJcbiAgICAgIHRoaXMuc2V0TG9jYWxTdG9yYWdlKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmlzSW5pdGlhbGl6ZWRCcy5uZXh0KHRydWUpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRTZXNzaW9uSWRGcm9tU3RvcmFnZSgpOiBzdHJpbmcge1xyXG4gICAgaWYgKHRoaXMudXNlQnJvd3NlckxvY2FsU3RvcmFnZSkge1xyXG4gICAgICByZXR1cm4gdGhpcy53aW5kb3cubG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdG9yYWdlS2V5KTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHRoaXMudXNlQnJvd3NlclNlc3Npb25TdG9yYWdlKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLndpbmRvdy5zZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RvcmFnZUtleSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKiogSW5pdGlhbGl6ZSB0aGUgY2xpZW50IHNpZGUgc2Vzc2lvbiBpZCAqL1xyXG4gIHByaXZhdGUgaW5pdENsaWVudFNlc3Npb25JZCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3Nlc3Npb25JZCA9IG5ld0d1aWQoKTtcclxuICAgIGlmICh0aGlzLnVzZUJyb3dzZXJTZXNzaW9uU3RvcmFnZSkge1xyXG4gICAgICB0aGlzLnNldFNlc3Npb25TdG9yYWdlKCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICh0aGlzLnVzZUJyb3dzZXJMb2NhbFN0b3JhZ2UpIHtcclxuICAgICAgdGhpcy5zZXRMb2NhbFN0b3JhZ2UoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKiBTZXRzIHNlc3Npb24gc3RvcmFnZSAqL1xyXG4gIHByaXZhdGUgc2V0U2Vzc2lvblN0b3JhZ2UoKTogdm9pZCB7XHJcbiAgICB0aGlzLndpbmRvdy5zZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RvcmFnZUtleSwgdGhpcy5fc2Vzc2lvbklkKTtcclxuICB9XHJcblxyXG4gIC8qKiBTZXRzIGxvY2FsIHN0b3JhZ2UgKi9cclxuICBwcml2YXRlIHNldExvY2FsU3RvcmFnZSgpOiB2b2lkIHtcclxuICAgIHRoaXMud2luZG93LmxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RvcmFnZUtleSwgdGhpcy5fc2Vzc2lvbklkKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERldGVybWluZXMgdGhlIHR5cGUgb2YgaHR0cCBjYWxsIHRvIG1ha2UgZm9yIHRoZSBkYXRhIHN0b3JlXHJcbiAgICogQHBhcmFtIHZlcmIgVGhlIHZlcmJcclxuICAgKiBAcGFyYW0gZGVsZWdhdGUgVGhlIGRlbGVnYXRlXHJcbiAgICogQHBhcmFtIHVyaSBUaGUgdXJpXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBkZXRlcm1pbmVEYXRhU3RvcmVGdW5jdGlvbihcclxuICAgIHZlcmI6IEh0dHBWZXJiLFxyXG4gICAgZGVsZWdhdGU6IChiYXNlVXJpOiBzdHJpbmcsIGJvZHk6IFQpID0+IHsgdXJpOiBzdHJpbmcsIGJvZHk/OiBhbnkgfSxcclxuICAgIHVyaTogc3RyaW5nLFxyXG4gICAgYm9keTogYW55XHJcbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGNvbnN0IHR1cGxlID0gZGVsZWdhdGUodXJpLCBib2R5KTtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoe1xyXG4gICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nXHJcbiAgICB9KTtcclxuICAgIHN3aXRjaCAodmVyYikge1xyXG4gICAgICBjYXNlIGh0dHBWZXJiLlBVVDpcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnB1dCh0dXBsZS51cmksIHR1cGxlLmJvZHksIHsgaGVhZGVycyB9KTtcclxuICAgICAgY2FzZSBodHRwVmVyYi5QT1NUOlxyXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucG9zdCh0dXBsZS51cmksIHR1cGxlLmJvZHksIHsgaGVhZGVycyB9KTtcclxuICAgICAgY2FzZSBodHRwVmVyYi5HRVQ6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQodHVwbGUudXJpLCB7IGhlYWRlcnMgfSk7XHJcbiAgICAgIGNhc2UgaHR0cFZlcmIuUEFUQ0g6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5wYXRjaCh0dXBsZS51cmksIHR1cGxlLmJvZHksIHsgaGVhZGVycyB9KTtcclxuICAgICAgY2FzZSBodHRwVmVyYi5ERUxFVEU6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5kZWxldGUodHVwbGUudXJpLCB7IGhlYWRlcnMgfSk7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdIdHRwIHZlcmIgbXVzdCBiZSBvbmUgb2Y6IFBBVENILCBQVVQsIFBPU1QsIERFTEVURSwgR0VUJyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBFbmNvZGVzIHRoZSBvYmplY3RcclxuICAgKiBAcGFyYW0gdmFsdWUgVGhlIG9iamVjdFxyXG4gICAqL1xyXG4gIHByaXZhdGUgZW5jb2RlKHZhbHVlOiBhbnkpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHdpbmRvdy5idG9hKHVuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeSh2YWx1ZSkpKSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEZWNvZGVzIHRoZSBzdHJpbmdcclxuICAgKiBAcGFyYW0gc3RyIFRoZSBzdHJpbmdcclxuICAgKi9cclxuICBwcml2YXRlIGRlY29kZShzdHI6IHN0cmluZyk6IGFueSB7XHJcbiAgICByZXR1cm4gSlNPTi5wYXJzZShkZWNvZGVVUklDb21wb25lbnQoZXNjYXBlKHdpbmRvdy5hdG9iKHN0cikpKSk7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogUmVkaXJlY3QgU2Vzc2lvbiBDb25maWdzLlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIFJlZGlyZWN0U2Vzc2lvbkNvbmZpZ3Mge1xyXG4gIC8qKiBJZiBzZXNzaW9uIHNob3VsZCBiZSBzeW5jZWQuICovXHJcbiAgc3luY1Nlc3Npb24/OiBib29sZWFuO1xyXG5cclxuICAvKiogSWYgbmV3IHRhYiBzaG91bGQgYmUgdGFyZ2V0ZWQuICovXHJcbiAgdGFyZ2V0TmV3VGFiPzogYm9vbGVhbjtcclxufSJdfQ==
|
|
@@ -1358,7 +1358,11 @@ class SessionService$1 {
|
|
|
1358
1358
|
form.method = 'POST';
|
|
1359
1359
|
form.action = formAction;
|
|
1360
1360
|
if (configs.targetNewTab) {
|
|
1361
|
-
form.target = '_blank'
|
|
1361
|
+
// The parent session should already be present in child window as per browsing context rules, but for whatever reason form.target = '_blank' does not do that.
|
|
1362
|
+
// Need to use window.open here so the parent window's session also gets carried over to the new tab.
|
|
1363
|
+
// For reference: https://stackoverflow.com/questions/17297287/sessionstorage-on-new-window-isnt-empty-when-following-a-link-with-target-bl
|
|
1364
|
+
form.target = 'customWindow';
|
|
1365
|
+
window.open('', 'customWindow');
|
|
1362
1366
|
}
|
|
1363
1367
|
input.name = 'data';
|
|
1364
1368
|
input.value = this.window.sessionStorage.getItem(this.sessionConfig.keyPath);
|
|
@@ -4188,7 +4192,9 @@ class SofButtonToggleGroupComponent {
|
|
|
4188
4192
|
this.showErrorMessage = false;
|
|
4189
4193
|
if (this.control) {
|
|
4190
4194
|
this.control.valueAccessor = this;
|
|
4191
|
-
|
|
4195
|
+
setTimeout(() => {
|
|
4196
|
+
this.controlName = this.control.name;
|
|
4197
|
+
});
|
|
4192
4198
|
}
|
|
4193
4199
|
}
|
|
4194
4200
|
;
|