spiderly 0.0.2 → 0.0.4
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/esm2022/lib/components/layout/layout-base.component.mjs +3 -2
- package/esm2022/lib/components/spiderly-data-table/spiderly-data-table.component.mjs +1 -2
- package/esm2022/lib/components/spiderly-form-control/spiderly-form-control.mjs +3 -3
- package/fesm2022/spiderly.mjs +4 -4
- package/fesm2022/spiderly.mjs.map +1 -1
- package/lib/components/spiderly-form-control/spiderly-form-control.d.ts +1 -1
- package/package.json +1 -1
- package/styles/styles/layout/layout.scss +1 -1
|
@@ -28,7 +28,8 @@ export class LayoutBaseComponent {
|
|
|
28
28
|
}
|
|
29
29
|
if (!this.profileMenuOutsideClickListener) {
|
|
30
30
|
this.profileMenuOutsideClickListener = this.renderer.listen('document', 'click', event => {
|
|
31
|
-
const isOutsideClicked = !(this.appTopbar.menu.nativeElement.isSameNode(event.target) ||
|
|
31
|
+
const isOutsideClicked = !(this.appTopbar.menu.nativeElement.isSameNode(event.target) ||
|
|
32
|
+
this.appTopbar.menu.nativeElement.contains(event.target));
|
|
32
33
|
if (isOutsideClicked) {
|
|
33
34
|
this.hideProfileMenu();
|
|
34
35
|
}
|
|
@@ -117,4 +118,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
117
118
|
type: ViewChild,
|
|
118
119
|
args: [AppTopBarComponent]
|
|
119
120
|
}] } });
|
|
120
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LWJhc2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BpZGVybHkvc3JjL2xpYi9jb21wb25lbnRzL2xheW91dC9sYXlvdXQtYmFzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBd0IsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxhQUFhLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsTUFBTSxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUM1QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7OztBQVEvRCxNQUFNLE9BQU8sbUJBQW1CO0lBWTVCLFlBQ2MsYUFBZ0MsRUFDaEMsUUFBbUIsRUFDbkIsTUFBYztRQUZkLGtCQUFhLEdBQWIsYUFBYSxDQUFtQjtRQUNoQyxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLFdBQU0sR0FBTixNQUFNLENBQVE7UUEwRzVCLHFCQUFnQixHQUFHLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQTtRQXhHdkIsSUFBSSxDQUFDLDJCQUEyQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDOUUsSUFBSSxDQUFDLElBQUksQ0FBQyx3QkFBd0IsRUFBRTtnQkFDaEMsSUFBSSxDQUFDLHdCQUF3QixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLEVBQUU7b0JBQzlFLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxDQUN0QixJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLEtB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QXNCLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsc0JBQXNCO1lBQ3ZFLGdCQUFnQixFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLFVBQVUsS0FBSyxRQUFRO1lBQ3pFLG1CQUFtQixFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsTUFBTTtTQUMvRCxDQUFBO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLElBQUksQ0FBQywyQkFBMkIsRUFBRTtZQUNsQyxJQUFJLENBQUMsMkJBQTJCLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDbEQ7UUFFRCxJQUFJLElBQUksQ0FBQyx3QkFBd0IsRUFBRTtZQUMvQixJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztTQUNuQztRQUVELElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzVCLENBQUM7K0dBdkhRLG1CQUFtQjttR0FBbkIsbUJBQW1CLG1IQVFqQixtQkFBbUIsNEVBRW5CLGtCQUFrQixnREFibkIsRUFBRTs7NEZBR0gsbUJBQW1CO2tCQUwvQixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxhQUFhO29CQUN2QixRQUFRLEVBQUUsRUFBRTtvQkFDWixVQUFVLEVBQUUsSUFBSTtpQkFDbkI7bUlBU21DLFVBQVU7c0JBQXpDLFNBQVM7dUJBQUMsbUJBQW1CO2dCQUVDLFNBQVM7c0JBQXZDLFNBQVM7dUJBQUMsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIFJlbmRlcmVyMiwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5hdmlnYXRpb25FbmQsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IGZpbHRlciwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEFwcFNpZGViYXJDb21wb25lbnQgfSBmcm9tICcuL3NpZGViYXIvc2lkZWJhci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBcHBUb3BCYXJDb21wb25lbnQgfSBmcm9tICcuL3RvcGJhci90b3BiYXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTGF5b3V0QmFzZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hcHAtbGF5b3V0LWJhc2Uuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnbGF5b3V0LWJhc2UnLFxyXG4gICAgdGVtcGxhdGU6ICcnLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTGF5b3V0QmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcblxyXG4gICAgb3ZlcmxheU1lbnVPcGVuU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcblxyXG4gICAgbWVudU91dHNpZGVDbGlja0xpc3RlbmVyOiBhbnk7XHJcblxyXG4gICAgcHJvZmlsZU1lbnVPdXRzaWRlQ2xpY2tMaXN0ZW5lcjogYW55O1xyXG5cclxuICAgIEBWaWV3Q2hpbGQoQXBwU2lkZWJhckNvbXBvbmVudCkgYXBwU2lkZWJhciE6IEFwcFNpZGViYXJDb21wb25lbnQ7XHJcblxyXG4gICAgQFZpZXdDaGlsZChBcHBUb3BCYXJDb21wb25lbnQpIGFwcFRvcGJhciE6IEFwcFRvcEJhckNvbXBvbmVudDtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcm90ZWN0ZWQgbGF5b3V0U2VydmljZTogTGF5b3V0QmFzZVNlcnZpY2UsIFxyXG4gICAgICAgIHByb3RlY3RlZCByZW5kZXJlcjogUmVuZGVyZXIyLCBcclxuICAgICAgICBwcm90ZWN0ZWQgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICApIHtcclxuICAgICAgICB0aGlzLm92ZXJsYXlNZW51T3BlblN1YnNjcmlwdGlvbiA9IHRoaXMubGF5b3V0U2VydmljZS5vdmVybGF5T3BlbiQuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgaWYgKCF0aGlzLm1lbnVPdXRzaWRlQ2xpY2tMaXN0ZW5lcikge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5tZW51T3V0c2lkZUNsaWNrTGlzdGVuZXIgPSB0aGlzLnJlbmRlcmVyLmxpc3RlbignZG9jdW1lbnQnLCAnY2xpY2snLCBldmVudCA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaXNPdXRzaWRlQ2xpY2tlZCA9ICEoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYXBwU2lkZWJhci5lbC5uYXRpdmVFbGVtZW50LmlzU2FtZU5vZGUoZXZlbnQudGFyZ2V0KSB8fCBcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hcHBTaWRlYmFyLmVsLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSB8fFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFwcFRvcGJhci5tZW51QnV0dG9uLm5hdGl2ZUVsZW1lbnQuaXNTYW1lTm9kZShldmVudC50YXJnZXQpIHx8IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFwcFRvcGJhci5tZW51QnV0dG9uLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSB8fFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoZXZlbnQudGFyZ2V0LmNsb3Nlc3QoJy5wLWF1dG9jb21wbGV0ZS1pdGVtcycpKSB8fFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoZXZlbnQudGFyZ2V0LmNsb3Nlc3QoJy5wLWF1dG9jb21wbGV0ZS1jbGVhci1pY29uJykpXHJcbiAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICBpZiAoaXNPdXRzaWRlQ2xpY2tlZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmhpZGVNZW51KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmICghdGhpcy5wcm9maWxlTWVudU91dHNpZGVDbGlja0xpc3RlbmVyKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnByb2ZpbGVNZW51T3V0c2lkZUNsaWNrTGlzdGVuZXIgPSB0aGlzLnJlbmRlcmVyLmxpc3RlbignZG9jdW1lbnQnLCAnY2xpY2snLCBldmVudCA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaXNPdXRzaWRlQ2xpY2tlZCA9ICEodGhpcy5hcHBUb3BiYXIubWVudS5uYXRpdmVFbGVtZW50LmlzU2FtZU5vZGUoZXZlbnQudGFyZ2V0KSB8fCB0aGlzLmFwcFRvcGJhci5tZW51Lm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChpc091dHNpZGVDbGlja2VkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaGlkZVByb2ZpbGVNZW51KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLmxheW91dFNlcnZpY2Uuc3RhdGUuc3RhdGljTWVudU1vYmlsZUFjdGl2ZSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ibG9ja0JvZHlTY3JvbGwoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLnJvdXRlci5ldmVudHMucGlwZShmaWx0ZXIoZXZlbnQgPT4gZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSlcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmhpZGVNZW51KCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmhpZGVQcm9maWxlTWVudSgpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBoaWRlTWVudSgpIHtcclxuICAgICAgICB0aGlzLmxheW91dFNlcnZpY2Uuc3RhdGUub3ZlcmxheU1lbnVBY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmxheW91dFNlcnZpY2Uuc3RhdGUuc3RhdGljTWVudU1vYmlsZUFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMubGF5b3V0U2VydmljZS5zdGF0ZS5tZW51SG92ZXJBY3RpdmUgPSBmYWxzZTtcclxuICAgICAgICBpZiAodGhpcy5tZW51T3V0c2lkZUNsaWNrTGlzdGVuZXIpIHtcclxuICAgICAgICAgICAgdGhpcy5tZW51T3V0c2lkZUNsaWNrTGlzdGVuZXIoKTtcclxuICAgICAgICAgICAgdGhpcy5tZW51T3V0c2lkZUNsaWNrTGlzdGVuZXIgPSBudWxsO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnVuYmxvY2tCb2R5U2Nyb2xsKCk7XHJcbiAgICB9XHJcblxyXG4gICAgaGlkZVByb2ZpbGVNZW51KCkge1xyXG4gICAgICAgIHRoaXMubGF5b3V0U2VydmljZS5zdGF0ZS5wcm9maWxlU2lkZWJhclZpc2libGUgPSBmYWxzZTtcclxuICAgICAgICBpZiAodGhpcy5wcm9maWxlTWVudU91dHNpZGVDbGlja0xpc3RlbmVyKSB7XHJcbiAgICAgICAgICAgIHRoaXMucHJvZmlsZU1lbnVPdXRzaWRlQ2xpY2tMaXN0ZW5lcigpO1xyXG4gICAgICAgICAgICB0aGlzLnByb2ZpbGVNZW51T3V0c2lkZUNsaWNrTGlzdGVuZXIgPSBudWxsO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBibG9ja0JvZHlTY3JvbGwoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0KSB7XHJcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZCgnYmxvY2tlZC1zY3JvbGwnKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NOYW1lICs9ICcgYmxvY2tlZC1zY3JvbGwnO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB1bmJsb2NrQm9keVNjcm9sbCgpOiB2b2lkIHtcclxuICAgICAgICBpZiAoZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QpIHtcclxuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKCdibG9ja2VkLXNjcm9sbCcpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc05hbWUgPSBkb2N1bWVudC5ib2R5LmNsYXNzTmFtZS5yZXBsYWNlKG5ldyBSZWdFeHAoJyhefFxcXFxiKScgK1xyXG4gICAgICAgICAgICAgICAgJ2Jsb2NrZWQtc2Nyb2xsJy5zcGxpdCgnICcpLmpvaW4oJ3wnKSArICcoXFxcXGJ8JCknLCAnZ2knKSwgJyAnKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGNvbnRhaW5lckNsYXNzKCkge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICdsYXlvdXQtdGhlbWUtbGlnaHQnOiB0aGlzLmxheW91dFNlcnZpY2UubGF5b3V0Q29uZmlnLmNvbG9yU2NoZW1lID09PSAnbGlnaHQnLFxyXG4gICAgICAgICAgICAnbGF5b3V0LXRoZW1lLWRhcmsnOiB0aGlzLmxheW91dFNlcnZpY2UubGF5b3V0Q29uZmlnLmNvbG9yU2NoZW1lID09PSAnZGFyaycsXHJcbiAgICAgICAgICAgICdsYXlvdXQtb3ZlcmxheSc6IHRoaXMubGF5b3V0U2VydmljZS5sYXlvdXRDb25maWcubWVudU1vZGUgPT09ICdvdmVybGF5JyxcclxuICAgICAgICAgICAgJ2xheW91dC1zdGF0aWMnOiB0aGlzLmxheW91dFNlcnZpY2UubGF5b3V0Q29uZmlnLm1lbnVNb2RlID09PSAnc3RhdGljJyxcclxuICAgICAgICAgICAgJ2xheW91dC1zdGF0aWMtaW5hY3RpdmUnOiB0aGlzLmxheW91dFNlcnZpY2Uuc3RhdGUuc3RhdGljTWVudURlc2t0b3BJbmFjdGl2ZSAmJiB0aGlzLmxheW91dFNlcnZpY2UubGF5b3V0Q29uZmlnLm1lbnVNb2RlID09PSAnc3RhdGljJyxcclxuICAgICAgICAgICAgJ2xheW91dC1vdmVybGF5LWFjdGl2ZSc6IHRoaXMubGF5b3V0U2VydmljZS5zdGF0ZS5vdmVybGF5TWVudUFjdGl2ZSxcclxuICAgICAgICAgICAgJ2xheW91dC1tb2JpbGUtYWN0aXZlJzogdGhpcy5sYXlvdXRTZXJ2aWNlLnN0YXRlLnN0YXRpY01lbnVNb2JpbGVBY3RpdmUsXHJcbiAgICAgICAgICAgICdwLWlucHV0LWZpbGxlZCc6IHRoaXMubGF5b3V0U2VydmljZS5sYXlvdXRDb25maWcuaW5wdXRTdHlsZSA9PT0gJ2ZpbGxlZCcsXHJcbiAgICAgICAgICAgICdwLXJpcHBsZS1kaXNhYmxlZCc6ICF0aGlzLmxheW91dFNlcnZpY2UubGF5b3V0Q29uZmlnLnJpcHBsZVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpIHtcclxuICAgICAgICBpZiAodGhpcy5vdmVybGF5TWVudU9wZW5TdWJzY3JpcHRpb24pIHtcclxuICAgICAgICAgICAgdGhpcy5vdmVybGF5TWVudU9wZW5TdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLm1lbnVPdXRzaWRlQ2xpY2tMaXN0ZW5lcikge1xyXG4gICAgICAgICAgICB0aGlzLm1lbnVPdXRzaWRlQ2xpY2tMaXN0ZW5lcigpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5vbkFmdGVyTmdEZXN0cm95KCk7XHJcbiAgICB9XHJcblxyXG4gICAgb25BZnRlck5nRGVzdHJveSA9ICgpID0+IHt9XHJcbiAgICBcclxufVxyXG5cclxuIl19
|
|
121
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LWJhc2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BpZGVybHkvc3JjL2xpYi9jb21wb25lbnRzL2xheW91dC9sYXlvdXQtYmFzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBd0IsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxhQUFhLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsTUFBTSxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUM1QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7OztBQVEvRCxNQUFNLE9BQU8sbUJBQW1CO0lBWTVCLFlBQ2MsYUFBZ0MsRUFDaEMsUUFBbUIsRUFDbkIsTUFBYztRQUZkLGtCQUFhLEdBQWIsYUFBYSxDQUFtQjtRQUNoQyxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLFdBQU0sR0FBTixNQUFNLENBQVE7UUE2RzVCLHFCQUFnQixHQUFHLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQTtRQTNHdkIsSUFBSSxDQUFDLDJCQUEyQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDOUUsSUFBSSxDQUFDLElBQUksQ0FBQyx3QkFBd0IsRUFBRTtnQkFDaEMsSUFBSSxDQUFDLHdCQUF3QixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLEVBQUU7b0JBQzlFLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxDQUN0QixJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLEtB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c0JBQXNCLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsc0JBQXNCO1lBQ3ZFLGdCQUFnQixFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLFVBQVUsS0FBSyxRQUFRO1lBQ3pFLG1CQUFtQixFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsTUFBTTtTQUMvRCxDQUFBO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLElBQUksQ0FBQywyQkFBMkIsRUFBRTtZQUNsQyxJQUFJLENBQUMsMkJBQTJCLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDbEQ7UUFFRCxJQUFJLElBQUksQ0FBQyx3QkFBd0IsRUFBRTtZQUMvQixJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztTQUNuQztRQUVELElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzVCLENBQUM7K0dBMUhRLG1CQUFtQjttR0FBbkIsbUJBQW1CLG1IQVFqQixtQkFBbUIsNEVBRW5CLGtCQUFrQixnREFibkIsRUFBRTs7NEZBR0gsbUJBQW1CO2tCQUwvQixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxhQUFhO29CQUN2QixRQUFRLEVBQUUsRUFBRTtvQkFDWixVQUFVLEVBQUUsSUFBSTtpQkFDbkI7bUlBU21DLFVBQVU7c0JBQXpDLFNBQVM7dUJBQUMsbUJBQW1CO2dCQUVDLFNBQVM7c0JBQXZDLFNBQVM7dUJBQUMsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIFJlbmRlcmVyMiwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5hdmlnYXRpb25FbmQsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IGZpbHRlciwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEFwcFNpZGViYXJDb21wb25lbnQgfSBmcm9tICcuL3NpZGViYXIvc2lkZWJhci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBcHBUb3BCYXJDb21wb25lbnQgfSBmcm9tICcuL3RvcGJhci90b3BiYXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTGF5b3V0QmFzZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hcHAtbGF5b3V0LWJhc2Uuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnbGF5b3V0LWJhc2UnLFxyXG4gICAgdGVtcGxhdGU6ICcnLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTGF5b3V0QmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcblxyXG4gICAgb3ZlcmxheU1lbnVPcGVuU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcblxyXG4gICAgbWVudU91dHNpZGVDbGlja0xpc3RlbmVyOiBhbnk7XHJcblxyXG4gICAgcHJvZmlsZU1lbnVPdXRzaWRlQ2xpY2tMaXN0ZW5lcjogYW55O1xyXG5cclxuICAgIEBWaWV3Q2hpbGQoQXBwU2lkZWJhckNvbXBvbmVudCkgYXBwU2lkZWJhciE6IEFwcFNpZGViYXJDb21wb25lbnQ7XHJcblxyXG4gICAgQFZpZXdDaGlsZChBcHBUb3BCYXJDb21wb25lbnQpIGFwcFRvcGJhciE6IEFwcFRvcEJhckNvbXBvbmVudDtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcm90ZWN0ZWQgbGF5b3V0U2VydmljZTogTGF5b3V0QmFzZVNlcnZpY2UsIFxyXG4gICAgICAgIHByb3RlY3RlZCByZW5kZXJlcjogUmVuZGVyZXIyLCBcclxuICAgICAgICBwcm90ZWN0ZWQgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICApIHtcclxuICAgICAgICB0aGlzLm92ZXJsYXlNZW51T3BlblN1YnNjcmlwdGlvbiA9IHRoaXMubGF5b3V0U2VydmljZS5vdmVybGF5T3BlbiQuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgaWYgKCF0aGlzLm1lbnVPdXRzaWRlQ2xpY2tMaXN0ZW5lcikge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5tZW51T3V0c2lkZUNsaWNrTGlzdGVuZXIgPSB0aGlzLnJlbmRlcmVyLmxpc3RlbignZG9jdW1lbnQnLCAnY2xpY2snLCBldmVudCA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaXNPdXRzaWRlQ2xpY2tlZCA9ICEoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYXBwU2lkZWJhci5lbC5uYXRpdmVFbGVtZW50LmlzU2FtZU5vZGUoZXZlbnQudGFyZ2V0KSB8fCBcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hcHBTaWRlYmFyLmVsLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSB8fFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFwcFRvcGJhci5tZW51QnV0dG9uLm5hdGl2ZUVsZW1lbnQuaXNTYW1lTm9kZShldmVudC50YXJnZXQpIHx8IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFwcFRvcGJhci5tZW51QnV0dG9uLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSB8fFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoZXZlbnQudGFyZ2V0LmNsb3Nlc3QoJy5wLWF1dG9jb21wbGV0ZS1pdGVtcycpKSB8fFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoZXZlbnQudGFyZ2V0LmNsb3Nlc3QoJy5wLWF1dG9jb21wbGV0ZS1jbGVhci1pY29uJykpXHJcbiAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICBpZiAoaXNPdXRzaWRlQ2xpY2tlZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmhpZGVNZW51KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmICghdGhpcy5wcm9maWxlTWVudU91dHNpZGVDbGlja0xpc3RlbmVyKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnByb2ZpbGVNZW51T3V0c2lkZUNsaWNrTGlzdGVuZXIgPSB0aGlzLnJlbmRlcmVyLmxpc3RlbignZG9jdW1lbnQnLCAnY2xpY2snLCBldmVudCA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaXNPdXRzaWRlQ2xpY2tlZCA9ICEoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYXBwVG9wYmFyLm1lbnUubmF0aXZlRWxlbWVudC5pc1NhbWVOb2RlKGV2ZW50LnRhcmdldCkgfHwgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYXBwVG9wYmFyLm1lbnUubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQpXHJcbiAgICAgICAgICAgICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzT3V0c2lkZUNsaWNrZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5oaWRlUHJvZmlsZU1lbnUoKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMubGF5b3V0U2VydmljZS5zdGF0ZS5zdGF0aWNNZW51TW9iaWxlQWN0aXZlKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmJsb2NrQm9keVNjcm9sbCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMucm91dGVyLmV2ZW50cy5waXBlKGZpbHRlcihldmVudCA9PiBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaGlkZU1lbnUoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuaGlkZVByb2ZpbGVNZW51KCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGhpZGVNZW51KCkge1xyXG4gICAgICAgIHRoaXMubGF5b3V0U2VydmljZS5zdGF0ZS5vdmVybGF5TWVudUFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMubGF5b3V0U2VydmljZS5zdGF0ZS5zdGF0aWNNZW51TW9iaWxlQWN0aXZlID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5sYXlvdXRTZXJ2aWNlLnN0YXRlLm1lbnVIb3ZlckFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICAgIGlmICh0aGlzLm1lbnVPdXRzaWRlQ2xpY2tMaXN0ZW5lcikge1xyXG4gICAgICAgICAgICB0aGlzLm1lbnVPdXRzaWRlQ2xpY2tMaXN0ZW5lcigpO1xyXG4gICAgICAgICAgICB0aGlzLm1lbnVPdXRzaWRlQ2xpY2tMaXN0ZW5lciA9IG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMudW5ibG9ja0JvZHlTY3JvbGwoKTtcclxuICAgIH1cclxuXHJcbiAgICBoaWRlUHJvZmlsZU1lbnUoKSB7XHJcbiAgICAgICAgdGhpcy5sYXlvdXRTZXJ2aWNlLnN0YXRlLnByb2ZpbGVTaWRlYmFyVmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgICAgIGlmICh0aGlzLnByb2ZpbGVNZW51T3V0c2lkZUNsaWNrTGlzdGVuZXIpIHtcclxuICAgICAgICAgICAgdGhpcy5wcm9maWxlTWVudU91dHNpZGVDbGlja0xpc3RlbmVyKCk7XHJcbiAgICAgICAgICAgIHRoaXMucHJvZmlsZU1lbnVPdXRzaWRlQ2xpY2tMaXN0ZW5lciA9IG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGJsb2NrQm9keVNjcm9sbCgpOiB2b2lkIHtcclxuICAgICAgICBpZiAoZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QpIHtcclxuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKCdibG9ja2VkLXNjcm9sbCcpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc05hbWUgKz0gJyBibG9ja2VkLXNjcm9sbCc7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHVuYmxvY2tCb2R5U2Nyb2xsKCk6IHZvaWQge1xyXG4gICAgICAgIGlmIChkb2N1bWVudC5ib2R5LmNsYXNzTGlzdCkge1xyXG4gICAgICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoJ2Jsb2NrZWQtc2Nyb2xsJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTmFtZSA9IGRvY3VtZW50LmJvZHkuY2xhc3NOYW1lLnJlcGxhY2UobmV3IFJlZ0V4cCgnKF58XFxcXGIpJyArXHJcbiAgICAgICAgICAgICAgICAnYmxvY2tlZC1zY3JvbGwnLnNwbGl0KCcgJykuam9pbignfCcpICsgJyhcXFxcYnwkKScsICdnaScpLCAnICcpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBnZXQgY29udGFpbmVyQ2xhc3MoKSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgJ2xheW91dC10aGVtZS1saWdodCc6IHRoaXMubGF5b3V0U2VydmljZS5sYXlvdXRDb25maWcuY29sb3JTY2hlbWUgPT09ICdsaWdodCcsXHJcbiAgICAgICAgICAgICdsYXlvdXQtdGhlbWUtZGFyayc6IHRoaXMubGF5b3V0U2VydmljZS5sYXlvdXRDb25maWcuY29sb3JTY2hlbWUgPT09ICdkYXJrJyxcclxuICAgICAgICAgICAgJ2xheW91dC1vdmVybGF5JzogdGhpcy5sYXlvdXRTZXJ2aWNlLmxheW91dENvbmZpZy5tZW51TW9kZSA9PT0gJ292ZXJsYXknLFxyXG4gICAgICAgICAgICAnbGF5b3V0LXN0YXRpYyc6IHRoaXMubGF5b3V0U2VydmljZS5sYXlvdXRDb25maWcubWVudU1vZGUgPT09ICdzdGF0aWMnLFxyXG4gICAgICAgICAgICAnbGF5b3V0LXN0YXRpYy1pbmFjdGl2ZSc6IHRoaXMubGF5b3V0U2VydmljZS5zdGF0ZS5zdGF0aWNNZW51RGVza3RvcEluYWN0aXZlICYmIHRoaXMubGF5b3V0U2VydmljZS5sYXlvdXRDb25maWcubWVudU1vZGUgPT09ICdzdGF0aWMnLFxyXG4gICAgICAgICAgICAnbGF5b3V0LW92ZXJsYXktYWN0aXZlJzogdGhpcy5sYXlvdXRTZXJ2aWNlLnN0YXRlLm92ZXJsYXlNZW51QWN0aXZlLFxyXG4gICAgICAgICAgICAnbGF5b3V0LW1vYmlsZS1hY3RpdmUnOiB0aGlzLmxheW91dFNlcnZpY2Uuc3RhdGUuc3RhdGljTWVudU1vYmlsZUFjdGl2ZSxcclxuICAgICAgICAgICAgJ3AtaW5wdXQtZmlsbGVkJzogdGhpcy5sYXlvdXRTZXJ2aWNlLmxheW91dENvbmZpZy5pbnB1dFN0eWxlID09PSAnZmlsbGVkJyxcclxuICAgICAgICAgICAgJ3AtcmlwcGxlLWRpc2FibGVkJzogIXRoaXMubGF5b3V0U2VydmljZS5sYXlvdXRDb25maWcucmlwcGxlXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCkge1xyXG4gICAgICAgIGlmICh0aGlzLm92ZXJsYXlNZW51T3BlblN1YnNjcmlwdGlvbikge1xyXG4gICAgICAgICAgICB0aGlzLm92ZXJsYXlNZW51T3BlblN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMubWVudU91dHNpZGVDbGlja0xpc3RlbmVyKSB7XHJcbiAgICAgICAgICAgIHRoaXMubWVudU91dHNpZGVDbGlja0xpc3RlbmVyKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLm9uQWZ0ZXJOZ0Rlc3Ryb3koKTtcclxuICAgIH1cclxuXHJcbiAgICBvbkFmdGVyTmdEZXN0cm95ID0gKCkgPT4ge31cclxuICAgIFxyXG59XHJcblxyXG4iXX0=
|
|
@@ -23,7 +23,6 @@ import * as i12 from "primeng/checkbox";
|
|
|
23
23
|
import * as i13 from "../spiderly-buttons/spiderly-button/spiderly-button.component";
|
|
24
24
|
import * as i14 from "../../controls/spiderly-number/spiderly-number.component";
|
|
25
25
|
export class SpiderlyDataTableComponent {
|
|
26
|
-
;
|
|
27
26
|
constructor(router, dialogService, route, messageService, translocoService, locale) {
|
|
28
27
|
this.router = router;
|
|
29
28
|
this.dialogService = dialogService;
|
|
@@ -499,4 +498,4 @@ export class AllClickEvent {
|
|
|
499
498
|
this.additionalIndexes = additionalIndexes;
|
|
500
499
|
}
|
|
501
500
|
}
|
|
502
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BpZGVybHktZGF0YS10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGlkZXJseS9zcmMvbGliL2NvbXBvbmVudHMvc3BpZGVybHktZGF0YS10YWJsZS9zcGlkZXJseS1kYXRhLXRhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NwaWRlcmx5L3NyYy9saWIvY29tcG9uZW50cy9zcGlkZXJseS1kYXRhLXRhYmxlL3NwaWRlcmx5LWRhdGEtdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUs3RyxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSxrRUFBa0UsQ0FBQztBQUN2SCxPQUFPLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU3QyxPQUFPLEVBQUUsY0FBYyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBRWxELE9BQU8sRUFBRSxrQkFBa0IsRUFBb0IsTUFBTSxvQkFBb0IsQ0FBQztBQUMxRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUlqRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUVwRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7QUE0QjdELE1BQU0sT0FBTywwQkFBMEI7SUFXcUMsQ0FBQztJQTRDM0UsWUFDVSxNQUFjLEVBQ2QsYUFBNEIsRUFDNUIsS0FBcUIsRUFDckIsY0FBc0MsRUFDdEMsZ0JB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Q0FBQyxpQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQztRQUMzQyxJQUFJLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQztRQUNyQyxJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztRQUNuQyxJQUFJLENBQUMsMkJBQTJCLEdBQUcsMkJBQTJCLENBQUM7UUFDL0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDdkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDN0IsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLGFBQWE7SUFLeEIsWUFDRSxFQUNFLEtBQUssRUFDTCxFQUFFLEVBQ0YsaUJBQWlCLEtBS2YsRUFBRTtRQUVOLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDO1FBQ2IsSUFBSSxDQUFDLGlCQUFpQixHQUFHLGlCQUFpQixDQUFDO0lBQzdDLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyxhQUFhO0lBSXhCLFlBQ0UsRUFDRSxPQUFPLEVBQ1AsaUJBQWlCLEtBSWYsRUFBRTtRQUVOLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQztJQUM3QyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5qZWN0LCBJbnB1dCwgTE9DQUxFX0lELCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBTZWxlY3RJdGVtIH0gZnJvbSAncHJpbWVuZy9hcGknO1xyXG5pbXBvcnQgeyBUYWJsZSwgVGFibGVGaWx0ZXJFdmVudCwgVGFibGVMYXp5TG9hZEV2ZW50IH0gZnJvbSAncHJpbWVuZy90YWJsZSc7XHJcbmltcG9ydCB7IERpYWxvZ1NlcnZpY2UsIER5bmFtaWNEaWFsb2dSZWYgfSBmcm9tICdwcmltZW5nL2R5bmFtaWNkaWFsb2cnO1xyXG5pbXBvcnQgeyBTcGlkZXJseURlbGV0ZUNvbmZpcm1hdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uL3NwaWRlcmx5LWRlbGV0ZS1kaWFsb2cvc3BpZGVybHktZGVsZXRlLWNvbmZpcm1hdGlvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUsIGZvcm1hdERhdGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgU3BpZGVybHlNZXNzYWdlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3NwaWRlcmx5LW1lc3NhZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IGZpcnN0VmFsdWVGcm9tLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFByaW1lbmdPcHRpb24gfSBmcm9tICcuLi8uLi9lbnRpdGllcy9wcmltZW5nLW9wdGlvbic7XHJcbmltcG9ydCB7IFRyYW5zbG9jb0RpcmVjdGl2ZSwgVHJhbnNsb2NvU2VydmljZSB9IGZyb20gJ0Bqc3ZlcnNlL3RyYW5zbG9jbyc7XHJcbmltcG9ydCB7IFNwaWRlcmx5Q29udHJvbHNNb2R1bGUgfSBmcm9tICcuLi8uLi9jb250cm9scy9zcGlkZXJseS1jb250cm9scy5tb2R1bGUnO1xyXG5pbXBvcnQgeyBTcGlkZXJseUZvcm1Db250cm9sIH0gZnJvbSAnLi4vc3BpZGVybHktZm9ybS1jb250cm9sL3NwaWRlcmx5LWZvcm0tY29udHJvbCc7XHJcbmltcG9ydCB7IFRhYmxlUmVzcG9uc2UgfSBmcm9tICcuLi8uLi9lbnRpdGllcy90YWJsZS1yZXNwb25zZSc7XHJcbmltcG9ydCB7IExhenlMb2FkU2VsZWN0ZWRJZHNSZXN1bHQgfSBmcm9tICcuLi8uLi9lbnRpdGllcy9sYXp5LWxvYWQtc2VsZWN0ZWQtaWRzLXJlc3VsdCc7XHJcbmltcG9ydCB7IGV4cG9ydExpc3RUb0V4Y2VsIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvaGVscGVyLWZ1bmN0aW9ucyc7XHJcbmltcG9ydCB7IFRhYmxlRmlsdGVyIH0gZnJvbSAnLi4vLi4vZW50aXRpZXMvdGFibGUtZmlsdGVyJztcclxuaW1wb3J0IHsgUHJpbWVuZ01vZHVsZSB9IGZyb20gJy4uLy4uL21vZHVsZXMvcHJpbWVuZy5tb2R1bGUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzcGlkZXJseS1kYXRhLXRhYmxlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc3BpZGVybHktZGF0YS10YWJsZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICdzcGlkZXJseS1kYXRhLXRhYmxlLmNvbXBvbmVudC5zY3NzJyxcclxuICBzdHlsZXM6IFtgXHJcbiAgXHQ6aG9zdCB7XHJcblx0XHQgIDo6bmctZGVlcCB7XHJcblx0XHQgICAgLnJlbW92ZS1idXR0b24tYm9yZGVyLWZvY3VzOmZvY3VzLCBcclxuICAgICAgICAucmVtb3ZlLWJ1dHRvbi1ib3JkZXItZm9jdXM6ZW5hYmxlZDpmb2N1cyB7XHJcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcclxuICAgICAgICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7XHJcbiAgICAgICAgLW1vei1ib3gtc2hhZG93OiBub25lO1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWdyYXktMjAwKTtcclxuXHRcdCAgICB9XHJcblx0XHQgIH1cclxuXHQgIH1cclxuICBgXSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIFByaW1lbmdNb2R1bGUsXHJcbiAgICBUcmFuc2xvY29EaXJlY3RpdmUsXHJcbiAgICBTcGlkZXJseUNvbnRyb2xzTW9kdWxlLFxyXG4gIF0sXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNwaWRlcmx5RGF0YVRhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBAVmlld0NoaWxkKCdkdCcpIHRhYmxlOiBUYWJsZTtcclxuICBASW5wdXQoKSB0YWJsZVRpdGxlOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgdGFibGVJY29uOiBzdHJpbmcgPSAncGkgcGktbGlzdCc7XHJcbiAgQElucHV0KCkgaXRlbXM6IGFueVtdOyAvLyBGVDogUGFzcyBvbmx5IHdoZW4gaGFzTGF6eUxvYWQgPT09IGZhbHNlXHJcbiAgQElucHV0KCkgcm93czogbnVtYmVyID0gMTA7XHJcbiAgQElucHV0KCkgY29sczogQ29sdW1uW107XHJcbiAgQElucHV0KCkgc2hvd1BhZ2luYXRvcjogYm9vbGVhbiA9IHRydWU7IC8vIEZUOiBQYXNzIG9ubHkgd2hlbiBoYXNMYXp5TG9hZCA9PT0gZmFsc2VcclxuICBASW5wdXQoKSBzaG93Q2FyZFdyYXBwZXI6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHJlYWRvbmx5OiBib29sZWFuID0gZmFsc2U7XHJcbiAgdG90YWxSZWNvcmRzOiBudW1iZXI7XHJcbiAgQE91dHB1dCgpIG9uVG90YWxSZWNvcmRzQ2hhbmdlOiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTs7XHJcbiAgXHJcbiAgQElucHV0KCkgZ2V0VGFibGVEYXRhT2JzZXJ2YWJsZU1ldGhvZDogKHRhYmxlRmlsdGVyOiBUYWJsZUZpbHRlcikgPT4gT2JzZXJ2YWJsZTxUYWJsZVJlc3BvbnNlPjtcclxuICBASW5wdXQoKSBleHBvcnRUYWJsZURhdGFUb0V4Y2VsT2JzZXJ2YWJsZU1ldGhvZDogKHRhYmxlRmlsdGVyOiBUYWJsZUZpbHRlcikgPT4gT2JzZXJ2YWJsZTxhbnk+O1xyXG4gIEBJbnB1dCgpIGRlbGV0ZUl0ZW1Gcm9tVGFibGVPYnNlcnZhYmxlTWV0aG9kOiAocm93SWQ6IG51bWJlcikgPT4gT2JzZXJ2YWJsZTxhbnk+O1xyXG5cclxuICBsYXN0TGF6eUxvYWRFdmVudDogVGFibGVMYXp5TG9hZEV2ZW50O1xyXG4gIGxvYWRpbmc6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIFxyXG4gIEBJbnB1dCgpIG5ld2x5U2VsZWN0ZWRJdGVtczogbnVtYmVyW10gPSBbXTtcclxuICBmYWtlU2VsZWN0ZWRJdGVtczogbnVtYmVyW10gPSBbXTsgLy8gRlQ6IE9ubHkgZm9yIHNob3dpbmcgY2hlY2tib3hlcywgd2Ugd2lsbCBub3Qgc2VuZCB0aGlzIHRvIHRoZSBiYWNrZW5kXHJcbiAgY3VycmVudFBhZ2VTZWxlY3RlZEl0ZW1zRnJvbURiOiBudW1iZXJbXSA9IFtdOyAvLyBGVDogTWFkZSBzbyB3ZSBjYW4gYWRkIG9ubHkgbmV3bHkgc2VsZWN0ZWQgaXRlbXMgdG8gdGhlIG5ld2x5U2VsZWN0ZWRJdGVtc1xyXG4gIEBJbnB1dCgpIHVuc2VsZWN0ZWRJdGVtczogbnVtYmVyW10gPSBbXTtcclxuICBASW5wdXQoKSBzZWxlY3Rpb25Nb2RlOiAnc2luZ2xlJyB8ICdtdWx0aXBsZScgfCB1bmRlZmluZWQgfCBudWxsO1xyXG4gIEBPdXRwdXQoKSBvbkxhenlMb2FkOiBFdmVudEVtaXR0ZXI8VGFibGVGaWx0ZXI+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIHJvd3NTZWxlY3RlZE51bWJlcjogbnVtYmVyID0gMDtcclxuICBpc0FsbFNlbGVjdGVkOiBib29sZWFuID0gbnVsbDtcclxuICBmYWtlSXNBbGxTZWxlY3RlZDogYm9vbGVhbiA9IGZhbHNlOyAvLyBGVDogT25seSBmb3Igc2hvd2luZyBjaGVja2JveGVzLCB3ZSB3aWxsIG5vdCBzZW5kIHRoaXMgdG8gdGhlIGJhY2tlbmRcclxuICBpc0ZpcnN0VGltZUxhenlMb2FkOiBib29sZWFuID0gdHJ1ZTtcclxuICBAT3V0cHV0KCkgb25Jc0FsbFNlbGVjdGVkQ2hhbmdlOiBFdmVudEVtaXR0ZXI8QWxsQ2xpY2tFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQElucHV0KCkgc2VsZWN0ZWRMYXp5TG9hZE9ic2VydmFibGVNZXRob2Q6ICh0YWJsZUZpbHRlcjogVGFibGVGaWx0ZXIpID0+IE9ic2VydmFibGU8TGF6eUxvYWRTZWxlY3RlZElkc1Jlc3VsdD47XHJcbiAgQElucHV0KCkgYWRkaXRpb25hbEZpbHRlcklkTG9uZzogbnVtYmVyO1xyXG4gIFxyXG4gIG1hdGNoTW9kZURhdGVPcHRpb25zOiBTZWxlY3RJdGVtW10gPSBbXTtcclxuICBtYXRjaE1vZGVOdW1iZXJPcHRpb25zOiBTZWxlY3RJdGVtW10gPSBbXTtcclxuICBASW5wdXQoKSBzaG93QWRkQnV0dG9uOiBib29sZWFuID0gdHJ1ZTsgXHJcbiAgQElucHV0KCkgc2hvd0V4cG9ydFRvRXhjZWxCdXR0b246IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHNob3dSZWxvYWRUYWJsZUJ1dHRvbjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBkZWxldGVSZWY6IER5bmFtaWNEaWFsb2dSZWY7XHJcblxyXG4gIC8vIENsaWVudCBzaWRlIHRhYmxlXHJcbiAgLy8gQElucHV0KCkgZm9ybUFycmF5SXRlbXM6IGFueVtdOyAvLyBGVDogUGFzcyB0aGlzIG9ubHkgaWYgeW91IGhhdmUgc29tZSBhZGRpdGlvbmFsIGxvZ2ljIGZvciBzaG93aW5nIGRhdGFcclxuICBASW5wdXQoKSBnZXRGb3JtQXJyYXlJdGVtczogKGFkZGl0aW9uYWxJbmRleGVzPzogYW55KSA9PiBhbnlbXTtcclxuICBASW5wdXQoKSBoYXNMYXp5TG9hZDogYm9vbGVhbiA9IHRydWU7IFxyXG4gIHNlbGVjdGVkSXRlbUlkczogbnVtYmVyW10gPSBbXTsgLy8gRlQ6IFBhc3Mgb25seSB3aGVuIGhhc0xhenlMb2FkID09PSBmYWxzZSwgaXQncyBlbm91Z2ggaWYgdGhlIE0yTSBhc3NvY2lhdGlvbiBoYXNuJ3QgYWRkaXRpb25hbCBmaWVsZHNcclxuICBASW5wdXQoKSBnZXRBbHJlYWR5U2VsZWN0ZWRJdGVtSWRzOiAoYWRkaXRpb25hbEluZGV4ZXM/OiBhbnkpID0+IG51bWJlcltdOyAvLyBGVDogUGFzcyBvbmx5IHdoZW4gaGFzTGF6eUxvYWQgPT09IGZhbHNlLCBpdCdzIGVub3VnaCBpZiB0aGUgTTJNIGFzc29jaWF0aW9uIGhhc24ndCBhZGRpdGlvbmFsIGZpZWxkc1xyXG4gIHNlbGVjdGVkSXRlbXM6IGFueVtdID0gW107IC8vIEZUOiBQYXNzIG9ubHkgd2hlbiBoYXNMYXp5TG9hZCA9PT0gZmFsc2VcclxuICBASW5wdXQoKSBnZXRBbHJlYWR5U2VsZWN0ZWRJdGVtczogKGFkZGl0aW9uYWxJbmRleGVzPzogYW55KSA9PiBhbnlbXTsgLy8gRlQ6IFBhc3Mgb25seSB3aGVuIGhhc0xhenlMb2FkID09PSBmYWxzZSwgaXQncyBlbm91Z2ggaWYgdGhlIE0yTSBhc3NvY2lhdGlvbiBoYXNuJ3QgYWRkaXRpb25hbCBmaWVsZHNcclxuICBASW5wdXQoKSBnZXRGb3JtQ29udHJvbDogKGZvcm1Db250cm9sTmFtZTogc3RyaW5nLCBpbmRleDogbnVtYmVyLCBhZGRpdGlvbmFsSW5kZXhlcz86IGFueSkgPT4gU3BpZGVybHlGb3JtQ29udHJvbDtcclxuICBASW5wdXQoKSBhZGRpdGlvbmFsSW5kZXhlczogYW55O1xyXG4gIEBPdXRwdXQoKSBvblJvd1NlbGVjdDogRXZlbnRFbWl0dGVyPFJvd0NsaWNrRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBvblJvd1Vuc2VsZWN0OiBFdmVudEVtaXR0ZXI8Um93Q2xpY2tFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcclxuICAgIHByaXZhdGUgZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZSxcclxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgcHJpdmF0ZSBtZXNzYWdlU2VydmljZTogU3BpZGVybHlNZXNzYWdlU2VydmljZSxcclxuICAgIHByaXZhdGUgdHJhbnNsb2NvU2VydmljZTogVHJhbnNsb2NvU2VydmljZSxcclxuICAgIEBJbmplY3QoTE9DQUxFX0lEKSBwcml2YXRlIGxvY2FsZTogc3RyaW5nXHJcbiAgKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMubWF0Y2hNb2RlRGF0ZU9wdGlvbnMgPSBbXHJcbiAgICAgIHsgbGFiZWw6IHRoaXMudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ09uRGF0ZScpLCB2YWx1ZTogJ2VxdWFscycgfSxcclxuICAgICAgeyBsYWJlbDogdGhpcy50cmFuc2xvY29TZXJ2aWNlLnRyYW5zbGF0ZSgnRGF0ZXNCZWZvcmUnKSwgdmFsdWU6ICdkYXRlQmVmb3JlJyB9LFxyXG4gICAgICB7IGxhYmVsOiB0aGlzLnRyYW5zbG9jb1NlcnZpY2UudHJhbnNsYXRlKCdEYXRlc0FmdGVyJyksIHZhbHVlOiAnZGF0ZUFmdGVyJyB9LFxyXG4gICAgXTtcclxuXHJcbiAgICB0aGlzLm1hdGNoTW9kZU51bWJlck9wdGlvbnMgPSBbXHJcbiAgICAgIHsgbGFiZWw6IHRoaXMudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ0VxdWFscycpLCB2YWx1ZTogJ2VxdWFscycgfSxcclxuICAgICAgeyBsYWJlbDogdGhpcy50cmFuc2xvY29TZXJ2aWNlLnRyYW5zbGF0ZSgnTW9yZVRoYW4nKSwgdmFsdWU6ICdndGUnIH0sXHJcbiAgICAgIHsgbGFiZWw6IHRoaXMudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ0xlc3NUaGFuJyksIHZhbHVlOiAnbHRlJyB9LFxyXG4gICAgXTtcclxuXHJcbiAgICBpZiAodGhpcy5oYXNMYXp5TG9hZCA9PT0gZmFsc2UpIHtcclxuICAgICAgdGhpcy5jbGllbnRMb2FkKCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIFxyXG4gIGxhenlMb2FkKGV2ZW50OiBUYWJsZUxhenlMb2FkRXZlbnQpIHtcclxuICAgIHRoaXMubGFzdExhenlMb2FkRXZlbnQgPSBldmVudDtcclxuXHJcbiAgICBsZXQgdGFibGVGaWx0ZXI6IFRhYmxlRmlsdGVyID0gZXZlbnQgYXMgdW5rbm93biBhcyBUYWJsZUZpbHRlcjtcclxuICAgIHRhYmxlRmlsdGVyLmFkZGl0aW9uYWxGaWx0ZXJJZExvbmcgPSB0aGlzLmFkZGl0aW9uYWxGaWx0ZXJJZExvbmc7XHJcblxyXG4gICAgdGhpcy5vbkxhenlMb2FkLm5leHQodGFibGVGaWx0ZXIpO1xyXG4gICAgXHJcbiAgICB0aGlzLmdldFRhYmxlRGF0YU9ic2VydmFibGVNZXRob2QodGFibGVGaWx0ZXIpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IGFzeW5jIChyZXMpID0+IHsgXHJcbiAgICAgICAgdGhpcy5pdGVtcyA9IHJlcy5kYXRhO1xyXG4gICAgICAgIHRoaXMudG90YWxSZWNvcmRzID0gcmVzLnRvdGFsUmVjb3JkcztcclxuICAgICAgICB0aGlzLm9uVG90YWxSZWNvcmRzQ2hhbmdlLm5leHQocmVzLnRvdGFsUmVjb3Jkcyk7XHJcbiAgICAgICAgXHJcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRMYXp5TG9hZE9ic2VydmFibGVNZXRob2QgIT0gbnVsbCkge1xyXG4gICAgICAgICAgbGV0IHNlbGVjdGVkUm93c01ldGhvZFJlc3VsdDogTGF6eUxvYWRTZWxlY3RlZElkc1Jlc3VsdCA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuc2VsZWN0ZWRMYXp5TG9hZE9ic2VydmFibGVNZXRob2QodGFibGVGaWx0ZXIpKTtcclxuICBcclxuICAgICAgICAgIHRoaXMuY3VycmVudFBhZ2VTZWxlY3RlZEl0ZW1zRnJvbURiID0gWy4uLnNlbGVjdGVkUm93c01ldGhvZFJlc3VsdC5zZWxlY3RlZElkc107XHJcblxyXG4gICAgICAgICAgaWYgKHRoaXMuaXNGaXJzdFRpbWVMYXp5TG9hZCA9PSB0cnVlKSB7XHJcbiAgICAgICAgICAgIHRoaXMucm93c1NlbGVjdGVkTnVtYmVyID0gc2VsZWN0ZWRSb3dzTWV0aG9kUmVzdWx0LnRvdGFsUmVjb3Jkc1NlbGVjdGVkO1xyXG4gICAgICAgICAgICB0aGlzLnNldEZha2VJc0FsbFNlbGVjdGVkKCk7XHJcbiAgICAgICAgICAgIHRoaXMuaXNGaXJzdFRpbWVMYXp5TG9hZCA9IGZhbHNlO1xyXG4gICAgICAgICAgfVxyXG4gIFxyXG4gICAgICAgICAgaWYgKHRoaXMuaXNBbGxTZWxlY3RlZCA9PSB0cnVlKSB7XHJcbiAgICAgICAgICAgIGxldCBpZHNUb0luc2VydCA9IFsuLi50aGlzLml0ZW1zLm1hcCh4ID0+IHguaWQpXTtcclxuICAgICAgICAgICAgaWRzVG9JbnNlcnQgPSBpZHNUb0luc2VydC5maWx0ZXIoeCA9PiB0aGlzLnVuc2VsZWN0ZWRJdGVtcy5pbmNsdWRlcyh4KSA9PSBmYWxzZSk7XHJcbiAgICAgICAgICAgIHRoaXMuZmFrZVNlbGVjdGVkSXRlbXMgPSBbLi4uaWRzVG9JbnNlcnRdOyAvLyBGVDogT25seSBmb3Igc2hvd2luZyBjaGVja2JveGVzLCB3ZSB3aWxsIG5vdCBzZW5kIHRoaXMgdG8gdGhlIGJhY2tlbmRcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2UgaWYgKHRoaXMuaXNBbGxTZWxlY3RlZCA9PSBmYWxzZSkge1xyXG4gICAgICAgICAgICB0aGlzLmZha2VTZWxlY3RlZEl0ZW1zID0gWy4uLnRoaXMubmV3bHlTZWxlY3RlZEl0ZW1zXTsgLy8gRlQ6IE9ubHkgZm9yIHNob3dpbmcgY2hlY2tib3hlcywgd2Ugd2lsbCBub3Qgc2VuZCB0aGlzIHRvIHRoZSBiYWNrZW5kXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlIGlmICh0aGlzLmlzQWxsU2VsZWN0ZWQgPT0gbnVsbCkge1xyXG4gICAgICAgICAgICBsZXQgaWRzVG9JbnNlcnQgPSBbLi4uc2VsZWN0ZWRSb3dzTWV0aG9kUmVzdWx0LnNlbGVjdGVkSWRzLCAuLi50aGlzLm5ld2x5U2VsZWN0ZWRJdGVtc107XHJcbiAgICAgICAgICAgIGlkc1RvSW5zZXJ0ID0gaWRzVG9JbnNlcnQuZmlsdGVyKHggPT4gdGhpcy51bnNlbGVjdGVkSXRlbXMuaW5jbHVkZXMoeCkgPT0gZmFsc2UpO1xyXG4gICAgICAgICAgICB0aGlzLmZha2VTZWxlY3RlZEl0ZW1zID0gWy4uLmlkc1RvSW5zZXJ0XTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogKCkgPT4ge1xyXG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBjbGllbnRMb2FkKCl7XHJcbiAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuXHJcbiAgICB0aGlzLmxvYWRGb3JtQXJyYXlJdGVtcygpO1xyXG4gICAgdGhpcy50b3RhbFJlY29yZHMgPSB0aGlzLml0ZW1zLmxlbmd0aDtcclxuICAgIHRoaXMub25Ub3RhbFJlY29yZHNDaGFuZ2UubmV4dCh0aGlzLml0ZW1zLmxlbmd0aCk7XHJcblxyXG4gICAgaWYgKHRoaXMuZ2V0QWxyZWFkeVNlbGVjdGVkSXRlbUlkcykge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbUlkcyA9IHRoaXMuZ2V0QWxyZWFkeVNlbGVjdGVkSXRlbUlkcyh0aGlzLmFkZGl0aW9uYWxJbmRleGVzKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmdldEFscmVhZHlTZWxlY3RlZEl0ZW1zKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IHRoaXMuZ2V0QWxyZWFkeVNlbGVjdGVkSXRlbXModGhpcy5hZGRpdGlvbmFsSW5kZXhlcyk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnJvd3NTZWxlY3RlZE51bWJlciA9IHRoaXMuc2VsZWN0ZWRJdGVtSWRzLmxlbmd0aDtcclxuICAgIHRoaXMuc2V0RmFrZUlzQWxsU2VsZWN0ZWQoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2xpZW50RmlsdGVyQ291bnQgPSAwO1xyXG5cclxuICBmaWx0ZXIoZXZlbnQ6IFRhYmxlRmlsdGVyRXZlbnQpe1xyXG4gICAgaWYgKHRoaXMuaGFzTGF6eUxvYWQgJiYgdGhpcy5zZWxlY3Rpb25Nb2RlID09PSAnbXVsdGlwbGUnKVxyXG4gICAgICB0aGlzLnNlbGVjdEFsbChmYWxzZSk7IC8vIEZUOiBXZSBuZWVkIHRvIGRvIGl0IGxpa2UgdGhpcyBiZWNhdXNlOiB0b3RhbFJlY29yZHM6IDEgLT4gc2VsZWN0ZWRSZWNvcmRzIGZyb20gZWFybHllciBzZWxlY3Rpb24gMiAtPiB1bnNlbGVjdCBjdXJyZW50IC0+IGFsbCBjaGVja2JveCBpcyBzZXQgdG8gdHJ1ZVxyXG5cclxuICAgIGlmICh0aGlzLmhhc0xhenlMb2FkID09PSBmYWxzZSAmJiB0aGlzLnNlbGVjdGlvbk1vZGUgPT09ICdtdWx0aXBsZScpIHtcclxuICAgICAgaWYgKHRoaXMuY2xpZW50RmlsdGVyQ291bnQgPT09IDApIHtcclxuICAgICAgICB0aGlzLmxvYWRGb3JtQXJyYXlJdGVtcygpO1xyXG4gICAgICAgIHRoaXMuY2xpZW50RmlsdGVyQ291bnQrKztcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgdGhpcy5jbGllbnRGaWx0ZXJDb3VudC0tO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGxvYWRGb3JtQXJyYXlJdGVtcygpe1xyXG4gICAgdGhpcy5pdGVtcyA9IHRoaXMuZ2V0Rm9ybUFycmF5SXRlbXModGhpcy5hZGRpdGlvbmFsSW5kZXhlcyk7XHJcbiAgICB0aGlzLml0ZW1zLmZvckVhY2goKGl0ZW0sIGluZGV4KSA9PiB7XHJcbiAgICAgIGl0ZW0uaW5kZXggPSBpbmRleDtcclxuICAgIH0pO1xyXG4gIH1cclxuICBcclxuICBnZXRDb2xIZWFkZXJXaWR0aChmaWx0ZXJUeXBlOiBzdHJpbmcpIHtcclxuICAgIHN3aXRjaCAoZmlsdGVyVHlwZSkge1xyXG4gICAgICBjYXNlICd0ZXh0JzpcclxuICAgICAgICByZXR1cm4gJ21pbi13aWR0aDogMTJyZW07JztcclxuICAgICAgY2FzZSAnZGF0ZSc6XHJcbiAgICAgICAgcmV0dXJuICdtaW4td2lkdGg6IDEwcmVtOyc7XHJcbiAgICAgIGNhc2UgJ211bHRpc2VsZWN0JzpcclxuICAgICAgICByZXR1cm4gJ21pbi13aWR0aDogMTJyZW07JztcclxuICAgICAgY2FzZSAnYm9vbGVhbic6XHJcbiAgICAgICAgcmV0dXJuICdtaW4td2lkdGg6IDhyZW07JztcclxuICAgICAgY2FzZSAnbnVtZXJpYyc6XHJcbiAgICAgICAgcmV0dXJuICdtaW4td2lkdGg6IDEycmVtOyc7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuICd3aWR0aDogMHJlbTsnOyAvLyBmaXR0aW5nIGNvbnRlbnQgb2YgdGhlIHJvdyBsaWtlIHRoaXNcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldENvbE1hdGNoTW9kZU9wdGlvbnMoZmlsdGVyVHlwZTogc3RyaW5nKXtcclxuICAgIHN3aXRjaCAoZmlsdGVyVHlwZSkge1xyXG4gICAgICAgIGNhc2UgJ3RleHQnOlxyXG4gICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgY2FzZSAnZGF0ZSc6XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5tYXRjaE1vZGVEYXRlT3B0aW9ucztcclxuICAgICAgICBjYXNlICdtdWx0aXNlbGVjdCc6XHJcbiAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICBjYXNlICdib29sZWFuJzpcclxuICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIGNhc2UgJ251bWVyaWMnOlxyXG4gICAgICAgICAgcmV0dXJuIHRoaXMubWF0Y2hNb2RlTnVtYmVyT3B0aW9ucztcclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgIH1cclxuICB9XHJcbiAgXHJcbiAgZ2V0Q29sTWF0Y2hNb2RlKGZpbHRlclR5cGU6IHN0cmluZyl7XHJcbiAgICBzd2l0Y2ggKGZpbHRlclR5cGUpIHtcclxuICAgICAgICBjYXNlICd0ZXh0JzpcclxuICAgICAgICAgIHJldHVybiAnY29udGFpbnMnO1xyXG4gICAgICAgIGNhc2UgJ2RhdGUnOlxyXG4gICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgY2FzZSAnbXVsdGlzZWxlY3QnOlxyXG4gICAgICAgICAgcmV0dXJuICdpbic7XHJcbiAgICAgICAgY2FzZSAnYm9vbGVhbic6XHJcbiAgICAgICAgICByZXR1cm4gJ2VxdWFscyc7XHJcbiAgICAgICAgY2FzZSAnbnVtZXJpYyc6XHJcbiAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgIH1cclxuICB9XHJcblxyXG4gIGlzRHJvcE9yTXVsdGkoZmlsdGVyVHlwZTogc3RyaW5nKXtcclxuICAgIGlmIChmaWx0ZXJUeXBlID09ICdkcm9wZG93bicgfHwgZmlsdGVyVHlwZSA9PSAnbXVsdGlzZWxlY3QnKSB7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9IFxyXG4gICAgZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmF2aWdhdGVUb0RldGFpbHMocm93SWQ6IG51bWJlcil7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbcm93SWRdLCB7cmVsYXRpdmVUbzogdGhpcy5yb3V0ZX0pO1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlT2JqZWN0KHJvd0lkOiBudW1iZXIpe1xyXG4gICAgdGhpcy5kZWxldGVSZWYgPSB0aGlzLmRpYWxvZ1NlcnZpY2Uub3BlbihTcGlkZXJseURlbGV0ZUNvbmZpcm1hdGlvbkNvbXBvbmVudCwgXHJcbiAgICAgIHsgXHJcbiAgICAgICAgaGVhZGVyOiB0aGlzLnRyYW5zbG9jb1NlcnZpY2UudHJhbnNsYXRlKCdBcmVZb3VTdXJlJyksXHJcbiAgICAgICAgd2lkdGg6ICc0MDBweCcsXHJcbiAgICAgICAgZGF0YTp7IGRlbGV0ZUl0ZW1Gcm9tVGFibGVPYnNlcnZhYmxlTWV0aG9kOiB0aGlzLmRlbGV0ZUl0ZW1Gcm9tVGFibGVPYnNlcnZhYmxlTWV0aG9kLCBpZDogcm93SWQsIH0gXHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgdGhpcy5kZWxldGVSZWYub25DbG9zZS5zdWJzY3JpYmUoKGRlbGV0ZWRTdWNjZXNzZnVsbHk6IGJvb2xlYW4pPT57XHJcbiAgICAgICAgaWYoZGVsZXRlZFN1Y2Nlc3NmdWxseSA9PT0gdHJ1ZSl7XHJcbiAgICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLnN1Y2Nlc3NNZXNzYWdlKHRoaXMudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ1N1Y2Nlc3NmdWxseURlbGV0ZWRNZXNzYWdlJykpO1xyXG4gICAgICAgICAgdGhpcy5yZWxvYWQoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcmVsb2FkKCl7XHJcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5pdGVtcyA9IG51bGw7XHJcbiAgICB0aGlzLmxhenlMb2FkKHRoaXMubGFzdExhenlMb2FkRXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgc2hvd0FjdGlvbnMoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5jb2xzLnNvbWUoeCA9PiB4LmFjdGlvbnM/Lmxlbmd0aCA+IDApO1xyXG4gIH1cclxuXHJcbiAgZ2V0U3R5bGVGb3JCb2R5Q29sdW1uKGNvbDogQ29sdW1uPGFueT4pIHtcclxuICAgIHN3aXRjaChjb2wuZmlsdGVyVHlwZSl7XHJcbiAgICAgIGNhc2UgJ251bWVyaWMnOlxyXG4gICAgICAgIHJldHVybiAndGV4dC1hbGlnbjogcmlnaHQ7JztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldENsYXNzRm9yQWN0aW9uKGFjdGlvbjogQWN0aW9uKTogc3RyaW5ne1xyXG4gICAgc3dpdGNoKGFjdGlvbi5maWVsZCl7XHJcbiAgICAgIGNhc2UgJ0RldGFpbHMnOlxyXG4gICAgICAgIHJldHVybiAncGkgcGktcGVuY2lsIHRleHQtbGcgY3Vyc29yLXBvaW50ZXIgcHJpbWFyeS1jb2xvcic7XHJcbiAgICAgIGNhc2UgJ0RlbGV0ZSc6XHJcbiAgICAgICAgcmV0dXJuICdwaSBwaS10cmFzaCB0ZXh0LWxnIHRleHQtcmVkLTUwMCBjdXJzb3ItcG9pbnRlcic7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuIGAke2FjdGlvbi5pY29ufSAke2FjdGlvbi5zdHlsZX0gdGV4dC1sZyBjdXJzb3ItcG9pbnRlcmA7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRNZXRob2RGb3JBY3Rpb24oYWN0aW9uOiBBY3Rpb24sIHJvd0RhdGE6IGFueSl7XHJcbiAgICBzd2l0Y2goYWN0aW9uLmZpZWxkKXtcclxuICAgICAgY2FzZSAnRGV0YWlscyc6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubmF2aWdhdGVUb0RldGFpbHMocm93RGF0YS5pZCk7XHJcbiAgICAgIGNhc2UgJ0RlbGV0ZSc6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZGVsZXRlT2JqZWN0KHJvd0RhdGEuaWQpO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiBhY3Rpb24ub25DbGljayhyb3dEYXRhLmlkKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldFJvd0RhdGEocm93RGF0YTogYW55LCBjb2w6IENvbHVtbik6IHN0cmluZ3tcclxuICAgICAgc3dpdGNoIChjb2wuZmlsdGVyVHlwZSkge1xyXG4gICAgICAgIGNhc2UgJ3RleHQnOlxyXG4gICAgICAgICAgcmV0dXJuIHJvd0RhdGFbY29sLmZpZWxkXTtcclxuICAgICAgICBjYXNlICdkYXRlJzpcclxuICAgICAgICAgIGlmIChyb3dEYXRhW2NvbC5maWVsZF0gPT0gbnVsbClcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgICBcclxuICAgICAgICAgIGlmIChjb2wuc2hvd1RpbWUpXHJcbiAgICAgICAgICAgIHJldHVybiBmb3JtYXREYXRlKHJvd0RhdGFbY29sLmZpZWxkXSwgJ2RkLk1NLnl5eXkuIEhIOm1tJywgdGhpcy5sb2NhbGUpO1xyXG4gICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICByZXR1cm4gZm9ybWF0RGF0ZShyb3dEYXRhW2NvbC5maWVsZF0sICdkZC5NTS55eXl5LicsIHRoaXMubG9jYWxlKTtcclxuICAgICAgICBjYXNlICdtdWx0aXNlbGVjdCc6XHJcbiAgICAgICAgICByZXR1cm4gcm93RGF0YVtjb2wuZmllbGRdO1xyXG4gICAgICAgIGNhc2UgJ2Jvb2xlYW4nOlxyXG4gICAgICAgICAgcmV0dXJuIHJvd0RhdGFbY29sLmZpZWxkXSA9PSB0cnVlID8gdGhpcy50cmFuc2xvY29TZXJ2aWNlLnRyYW5zbGF0ZSgnWWVzJykgOiB0aGlzLnRyYW5zbG9jb1NlcnZpY2UudHJhbnNsYXRlKCdObycpO1xyXG4gICAgICAgIGNhc2UgJ251bWVyaWMnOlxyXG4gICAgICAgICAgLy8gVE9ETyBGVDogbWFrZSBkZWNpbWFsIHBpcGVcclxuICAgICAgICAgIHJldHVybiByb3dEYXRhW2NvbC5maWVsZF07XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICB9XHJcbiAgfVxyXG5cclxuICBjb2xUcmFja0J5Rm4oaW5kZXgsIGl0ZW0pe1xyXG4gICAgcmV0dXJuIGl0ZW0uZmllbGQ7XHJcbiAgfVxyXG5cclxuICBhY3Rpb25UcmFja0J5Rm4oaW5kZXgsIGl0ZW06IEFjdGlvbil7XHJcbiAgICByZXR1cm4gYCR7aW5kZXh9JHtpdGVtLmZpZWxkfWBcclxuICB9XHJcblxyXG4gIGV4cG9ydExpc3RUb0V4Y2VsKCkge1xyXG4gICAgbGV0IHRhYmxlRmlsdGVyOiBUYWJsZUZpbHRlciA9IHRoaXMubGFzdExhenlMb2FkRXZlbnQgYXMgdW5rbm93biBhcyBUYWJsZUZpbHRlcjtcclxuICAgIHRhYmxlRmlsdGVyLmFkZGl0aW9uYWxGaWx0ZXJJZExvbmcgPSB0aGlzLmFkZGl0aW9uYWxGaWx0ZXJJZExvbmc7XHJcblxyXG4gICAgZXhwb3J0TGlzdFRvRXhjZWwodGhpcy5leHBvcnRUYWJsZURhdGFUb0V4Y2VsT2JzZXJ2YWJsZU1ldGhvZCwgdGFibGVGaWx0ZXIpO1xyXG4gIH1cclxuXHJcbiAgY2xlYXIodGFibGU6IFRhYmxlKSB7XHJcbiAgICB0YWJsZS5jbGVhcigpO1xyXG4gIH1cclxuXHJcbiAgLy8jcmVnaW9uIFNlbGVjdGlvblxyXG5cclxuICBzZXRGYWtlSXNBbGxTZWxlY3RlZCgpe1xyXG4gICAgaWYodGhpcy5yb3dzU2VsZWN0ZWROdW1iZXIgPT0gdGhpcy50b3RhbFJlY29yZHMpXHJcbiAgICAgIHRoaXMuZmFrZUlzQWxsU2VsZWN0ZWQgPSB0cnVlO1xyXG4gICAgZWxzZVxyXG4gICAgICB0aGlzLmZha2VJc0FsbFNlbGVjdGVkID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RBbGwoY2hlY2tlZDogYm9vbGVhbil7XHJcbiAgICB0aGlzLnVuc2VsZWN0ZWRJdGVtcy5sZW5ndGggPSAwO1xyXG4gICAgdGhpcy5uZXdseVNlbGVjdGVkSXRlbXMubGVuZ3RoID0gMDtcclxuXHJcbiAgICBpZiAoY2hlY2tlZCA9PSB0cnVlKSB7XHJcbiAgICAgIHRoaXMuaXNBbGxTZWxlY3RlZCA9IHRydWU7XHJcbiAgICAgIHRoaXMuZmFrZUlzQWxsU2VsZWN0ZWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLm9uSXNBbGxTZWxlY3RlZENoYW5nZS5uZXh0KG5ldyBBbGxDbGlja0V2ZW50KHtjaGVja2VkOiB0cnVlLCBhZGRpdGlvbmFsSW5kZXhlczogdGhpcy5hZGRpdGlvbmFsSW5kZXhlc30pKTtcclxuICAgICAgdGhpcy5yb3dzU2VsZWN0ZWROdW1iZXIgPSB0aGlzLnRvdGFsUmVjb3JkcztcclxuICAgICAgdGhpcy5mYWtlU2VsZWN0ZWRJdGVtcyA9IFsuLi50aGlzLml0ZW1zLm1hcCh4ID0+IHguaWQpXTtcclxuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1JZHMgPSBbLi4udGhpcy5pdGVtcy5tYXAoeCA9PiB4LmlkKV1cclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIHRoaXMuaXNBbGxTZWxlY3RlZCA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmZha2VJc0FsbFNlbGVjdGVkID0gZmFsc2U7XHJcbiAgICAgIHRoaXMub25Jc0FsbFNlbGVjdGVkQ2hhbmdlLm5leHQobmV3IEFsbENsaWNrRXZlbnQoe2NoZWNrZWQ6IGZhbHNlLCBhZGRpdGlvbmFsSW5kZXhlczogdGhpcy5hZGRpdGlvbmFsSW5kZXhlc30pKTtcclxuICAgICAgdGhpcy5yb3dzU2VsZWN0ZWROdW1iZXIgPSAwO1xyXG4gICAgICB0aGlzLmZha2VTZWxlY3RlZEl0ZW1zID0gW107XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtSWRzID0gW107XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZWxlY3RSb3coaWQ6IG51bWJlciwgaW5kZXg6IG51bWJlcikge1xyXG4gICAgaWYgKHRoaXMuaXNSb3dTZWxlY3RlZChpZCkpIHtcclxuICAgICAgdGhpcy5yb3dVbnNlbGVjdChpZCk7XHJcbiAgICAgIHRoaXMub25Sb3dVbnNlbGVjdC5uZXh0KG5ldyBSb3dDbGlja0V2ZW50KHsgaW5kZXg6IGluZGV4LCBpZDogaWQsIGFkZGl0aW9uYWxJbmRleGVzOiB0aGlzLmFkZGl0aW9uYWxJbmRleGVzIH0pKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMucm93U2VsZWN0KGlkKTtcclxuICAgICAgdGhpcy5vblJvd1NlbGVjdC5uZXh0KG5ldyBSb3dDbGlja0V2ZW50KHsgaW5kZXg6IGluZGV4LCBpZDogaWQsIGFkZGl0aW9uYWxJbmRleGVzOiB0aGlzLmFkZGl0aW9uYWxJbmRleGVzIH0pKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGlzUm93U2VsZWN0ZWQoaWQ6IG51bWJlcil7XHJcbiAgICBpZiAodGhpcy5oYXNMYXp5TG9hZCl7XHJcbiAgICAgIHJldHVybiB0aGlzLmZha2VTZWxlY3RlZEl0ZW1zLmZpbmQoeCA9PiB4ID09PSBpZCkgIT0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnNlbGVjdGVkSXRlbUlkcy5maW5kKHggPT4geCA9PT0gaWQpICE9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJvd1NlbGVjdChpZDogbnVtYmVyKXtcclxuICAgIGlmICh0aGlzLmlzQWxsU2VsZWN0ZWQgPT0gZmFsc2UgfHwgdGhpcy5jdXJyZW50UGFnZVNlbGVjdGVkSXRlbXNGcm9tRGIuaW5jbHVkZXMoaWQpID09IGZhbHNlKSB7XHJcbiAgICAgIHRoaXMubmV3bHlTZWxlY3RlZEl0ZW1zLnB1c2goaWQpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmhhc0xhenlMb2FkKXtcclxuICAgICAgdGhpcy5mYWtlU2VsZWN0ZWRJdGVtcy5wdXNoKGlkKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbUlkcy5wdXNoKGlkKTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgdGhpcy5yb3dzU2VsZWN0ZWROdW1iZXIrKztcclxuXHJcbiAgICBjb25zdCBpbmRleCA9IHRoaXMudW5zZWxlY3RlZEl0ZW1zLmluZGV4T2YoaWQpO1xyXG4gICAgaWYgKGluZGV4ICE9PSAtMSkge1xyXG4gICAgICB0aGlzLnVuc2VsZWN0ZWRJdGVtcy5zcGxpY2UoaW5kZXgsIDEpOyAvLyBGVDogU3BsaWNlIGlzIG11dGF0aW5nIHRoZSBhcnJheVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc2V0RmFrZUlzQWxsU2VsZWN0ZWQoKTtcclxuICB9XHJcbiAgXHJcbiAgcm93VW5zZWxlY3QoaWQ6IG51bWJlcikge1xyXG4gICAgaWYgKHRoaXMuaXNBbGxTZWxlY3RlZCA9PSB0cnVlIHx8IHRoaXMuY3VycmVudFBhZ2VTZWxlY3RlZEl0ZW1zRnJvbURiLmluY2x1ZGVzKGlkKSA9PSB0cnVlKSB7XHJcbiAgICAgIHRoaXMudW5zZWxlY3RlZEl0ZW1zLnB1c2goaWQpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMucm93c1NlbGVjdGVkTnVtYmVyLS07XHJcblxyXG4gICAgY29uc3QgaW5kZXggPSB0aGlzLm5ld2x5U2VsZWN0ZWRJdGVtcy5pbmRleE9mKGlkKTtcclxuICAgIGNvbnN0IGZha2VJbmRleCA9IHRoaXMuZmFrZVNlbGVjdGVkSXRlbXMuaW5kZXhPZihpZCk7XHJcbiAgICBjb25zdCBub25MYXp5TG9hZEluZGV4ID0gdGhpcy5zZWxlY3RlZEl0ZW1JZHMuaW5kZXhPZihpZCk7XHJcblxyXG4gICAgaWYgKGluZGV4ICE9PSAtMSkge1xyXG4gICAgICB0aGlzLm5ld2x5U2VsZWN0ZWRJdGVtcy5zcGxpY2UoaW5kZXgsIDEpOyAvLyBGVDogU3BsaWNlIGlzIG11dGF0aW5nIHRoZSBhcnJheVxyXG4gICAgfVxyXG4gICAgaWYgKGZha2VJbmRleCAhPT0gLTEpIHtcclxuICAgICAgdGhpcy5mYWtlU2VsZWN0ZWRJdGVtcy5zcGxpY2UoZmFrZUluZGV4LCAxKTsgLy8gRlQ6IFNwbGljZSBpcyBtdXRhdGluZyB0aGUgYXJyYXlcclxuICAgIH1cclxuICAgIGlmIChub25MYXp5TG9hZEluZGV4ICE9PSAtMSkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbUlkcy5zcGxpY2Uobm9uTGF6eUxvYWRJbmRleCwgMSk7IC8vIEZUOiBTcGxpY2UgaXMgbXV0YXRpbmcgdGhlIGFycmF5XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5zZXRGYWtlSXNBbGxTZWxlY3RlZCgpO1xyXG4gIH1cclxuICAvLyNlbmRyZWdpb25cclxuXHJcbiAgLy8jcmVnaW9uIENsaWVudCBzaWRlIHRhYmxlXHJcblxyXG4gIC8vIEZUOiBDYW4gZG8gaXQgd2l0aCBJZCBhbHNvLCBiZWNhdXNlIHdlIGFyZSBuZXZlciBhZGRpbmcgdGhlIG5ldyByZWNvcmQgaW4gdGhlIHRhYmxlIGF0IHRoZSBzYW1lIHBhZ2UuXHJcbiAgZ2V0Rm9ybUFycmF5Q29udHJvbEJ5SW5kZXgoZm9ybUNvbnRyb2xOYW1lOiBzdHJpbmcsIGluZGV4OiBudW1iZXIpOiBTcGlkZXJseUZvcm1Db250cm9se1xyXG4gICAgaWYgKHRoaXMuZ2V0Rm9ybUNvbnRyb2wpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZ2V0Rm9ybUNvbnRyb2woZm9ybUNvbnRyb2xOYW1lLCBpbmRleCwgdGhpcy5hZGRpdGlvbmFsSW5kZXhlcyk7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vI2VuZHJlZ2lvblxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQWN0aW9uIHtcclxuICBuYW1lPzogc3RyaW5nO1xyXG4gIGZpZWxkPzogc3RyaW5nO1xyXG4gIGljb24/OiBzdHJpbmc7XHJcbiAgc3R5bGU/OiBzdHJpbmc7XHJcbiAgb25DbGljaz86IChpZDogbnVtYmVyKSA9PiB2b2lkO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHtcclxuICAgICAgbmFtZSxcclxuICAgICAgZmllbGQsXHJcbiAgICAgIGljb24sXHJcbiAgICAgIHN0eWxlLFxyXG4gICAgICBvbkNsaWNrLFxyXG4gICAgfTp7XHJcbiAgICAgIG5hbWU/OiBzdHJpbmc7XHJcbiAgICAgIGZpZWxkPzogc3RyaW5nO1xyXG4gICAgICBpY29uPzogc3RyaW5nO1xyXG4gICAgICBzdHlsZT86IHN0cmluZztcclxuICAgICAgb25DbGljaz86ICgpID0+IHZvaWQ7XHJcbiAgICB9ID0ge31cclxuICAgICkge1xyXG4gICAgICB0aGlzLm5hbWUgPSBuYW1lO1xyXG4gICAgICB0aGlzLmZpZWxkID0gZmllbGQ7XHJcbiAgICAgIHRoaXMuaWNvbiA9IGljb247XHJcbiAgICAgIHRoaXMuc3R5bGUgPSBzdHlsZTtcclxuICAgICAgdGhpcy5vbkNsaWNrID0gb25DbGljaztcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBDb2x1bW48VCA9IGFueT4ge1xyXG4gIG5hbWU6IHN0cmluZztcclxuICBmaWVsZD86IHN0cmluZyAmIGtleW9mIFQ7XHJcbiAgZmlsdGVyRmllbGQ/OiBzdHJpbmcgJiBrZXlvZiBUOyAvLyBGVDogTWFkZSBzcGVjaWZpY2FseSBmb3IgbXVsdGlhdXRvY29tcGxldGUsIG1heWJlIGZvciBzb21ldGhpbmcgbW9yZSBpbiB0aGUgZnV0dXJlXHJcbiAgZmlsdGVyVHlwZT86ICd0ZXh0JyB8ICdkYXRlJyB8ICdtdWx0aXNlbGVjdCcgfCAnYm9vbGVhbicgfCAnbnVtZXJpYyc7XHJcbiAgZmlsdGVyUGxhY2Vob2xkZXI/OiBzdHJpbmc7XHJcbiAgc2hvd01hdGNoTW9kZXM/OiBib29sZWFuO1xyXG4gIHNob3dBZGRCdXR0b24/OiBib29sZWFuO1xyXG4gIGRyb3Bkb3duT3JNdWx0aXNlbGVjdFZhbHVlcz86IFByaW1lbmdPcHRpb25bXTtcclxuICBhY3Rpb25zPzogQWN0aW9uW107XHJcbiAgZWRpdGFibGU/OiBib29sZWFuO1xyXG4gIHNob3dUaW1lPzogYm9vbGVhbjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICB7XHJcbiAgICAgIG5hbWUsXHJcbiAgICAgIGZpZWxkLFxyXG4gICAgICBmaWx0ZXJGaWVsZCxcclxuICAgICAgZmlsdGVyVHlwZSxcclxuICAgICAgZmlsdGVyUGxhY2Vob2xkZXIsXHJcbiAgICAgIHNob3dNYXRjaE1vZGVzLFxyXG4gICAgICBzaG93QWRkQnV0dG9uLFxyXG4gICAgICBkcm9wZG93bk9yTXVsdGlzZWxlY3RWYWx1ZXMsXHJcbiAgICAgIGFjdGlvbnMsXHJcbiAgICAgIGVkaXRhYmxlLFxyXG4gICAgICBzaG93VGltZSxcclxuICAgIH06e1xyXG4gICAgICBuYW1lPzogc3RyaW5nO1xyXG4gICAgICBmaWVsZD86IHN0cmluZyAmIGtleW9mIFQ7XHJcbiAgICAgIGZpbHRlckZpZWxkPzogc3RyaW5nICYga2V5b2YgVDsgLy8gRlQ6IE1hZGUgc3BlY2lmaWNhbHkgZm9yIG11bHRpYXV0b2NvbXBsZXRlLCBtYXliZSBmb3Igc29tZXRoaW5nIG1vcmUgaW4gdGhlIGZ1dHVyZTtcclxuICAgICAgZmlsdGVyVHlwZT86ICd0ZXh0JyB8ICdkYXRlJyB8ICdtdWx0aXNlbGVjdCcgfCAnYm9vbGVhbicgfCAnbnVtZXJpYyc7XHJcbiAgICAgIGZpbHRlclBsYWNlaG9sZGVyPzogc3RyaW5nO1xyXG4gICAgICBzaG93TWF0Y2hNb2Rlcz86IGJvb2xlYW47XHJcbiAgICAgIHNob3dBZGRCdXR0b24/OiBib29sZWFuO1xyXG4gICAgICBkcm9wZG93bk9yTXVsdGlzZWxlY3RWYWx1ZXM/OiBQcmltZW5nT3B0aW9uW107XHJcbiAgICAgIGFjdGlvbnM/OiBBY3Rpb25bXTtcclxuICAgICAgZWRpdGFibGU/OiBib29sZWFuO1xyXG4gICAgICBzaG93VGltZT86IGJvb2xlYW47XHJcbiAgICB9ID0ge31cclxuICAgICkge1xyXG4gICAgICB0aGlzLm5hbWUgPSBuYW1lO1xyXG4gICAgICB0aGlzLmZpZWxkID0gZmllbGQ7XHJcbiAgICAgIHRoaXMuZmlsdGVyRmllbGQgPSBmaWx0ZXJGaWVsZDtcclxuICAgICAgdGhpcy5maWx0ZXJUeXBlID0gZmlsdGVyVHlwZTtcclxuICAgICAgdGhpcy5maWx0ZXJQbGFjZWhvbGRlciA9IGZpbHRlclBsYWNlaG9sZGVyO1xyXG4gICAgICB0aGlzLnNob3dNYXRjaE1vZGVzID0gc2hvd01hdGNoTW9kZXM7XHJcbiAgICAgIHRoaXMuc2hvd0FkZEJ1dHRvbiA9IHNob3dBZGRCdXR0b247XHJcbiAgICAgIHRoaXMuZHJvcGRvd25Pck11bHRpc2VsZWN0VmFsdWVzID0gZHJvcGRvd25Pck11bHRpc2VsZWN0VmFsdWVzO1xyXG4gICAgICB0aGlzLmFjdGlvbnMgPSBhY3Rpb25zO1xyXG4gICAgICB0aGlzLmVkaXRhYmxlID0gZWRpdGFibGU7XHJcbiAgICAgIHRoaXMuc2hvd1RpbWUgPSBzaG93VGltZTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBSb3dDbGlja0V2ZW50IHtcclxuICBpbmRleD86IG51bWJlcjtcclxuICBpZD86IG51bWJlcjtcclxuICBhZGRpdGlvbmFsSW5kZXhlcz86IGFueTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICB7XHJcbiAgICAgIGluZGV4LCBcclxuICAgICAgaWQsIFxyXG4gICAgICBhZGRpdGlvbmFsSW5kZXhlc1xyXG4gICAgfTp7XHJcbiAgICAgIGluZGV4PzogbnVtYmVyOyBcclxuICAgICAgaWQ/OiBudW1iZXI7IFxyXG4gICAgICBhZGRpdGlvbmFsSW5kZXhlcz86IGFueTtcclxuICAgIH0gPSB7fVxyXG4gICAgKSB7XHJcbiAgICB0aGlzLmluZGV4ID0gaW5kZXg7XHJcbiAgICB0aGlzLmlkID0gaWQ7XHJcbiAgICB0aGlzLmFkZGl0aW9uYWxJbmRleGVzID0gYWRkaXRpb25hbEluZGV4ZXM7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQWxsQ2xpY2tFdmVudCB7XHJcbiAgY2hlY2tlZD86IGJvb2xlYW47XHJcbiAgYWRkaXRpb25hbEluZGV4ZXM/OiBhbnk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAge1xyXG4gICAgICBjaGVja2VkLCBcclxuICAgICAgYWRkaXRpb25hbEluZGV4ZXNcclxuICAgIH06e1xyXG4gICAgICBjaGVja2VkPzogYm9vbGVhbjsgXHJcbiAgICAgIGFkZGl0aW9uYWxJbmRleGVzPzogYW55O1xyXG4gICAgfSA9IHt9XHJcbiAgICApIHtcclxuICAgIHRoaXMuY2hlY2tlZCA9IGNoZWNrZWQ7XHJcbiAgICB0aGlzLmFkZGl0aW9uYWxJbmRleGVzID0gYWRkaXRpb25hbEluZGV4ZXM7XHJcbiAgfVxyXG59IiwiPG5nLWNvbnRhaW5lciAqdHJhbnNsb2NvPVwibGV0IHRcIj5cclxuICA8ZGl2IFtjbGFzc109XCJzaG93Q2FyZFdyYXBwZXIgPyAnY2FyZCByZXNwb25zaXZlLWNhcmQtcGFkZGluZyBvdmVyZmxvdy1hdXRvJyA6ICcnXCI+XHJcbiAgICA8cC10YWJsZSAjZHQgW3ZhbHVlXT1cIml0ZW1zXCIgW3Jvd3NdPVwicm93c1wiIFtyb3dIb3Zlcl09XCJ0cnVlXCIgc3R5bGVDbGFzcz1cInAtZGF0YXRhYmxlLWdyaWRsaW5lc1wiIFtwYWdpbmF0b3JdPVwic2hvd1BhZ2luYXRvclwiIHJlc3BvbnNpdmVMYXlvdXQ9XCJzY3JvbGxcIiBbbGF6eV09XCJoYXNMYXp5TG9hZFwiXHJcbiAgICAob25MYXp5TG9hZCk9XCJsYXp5TG9hZCgkZXZlbnQpXCIgW3RvdGFsUmVjb3Jkc109XCJ0b3RhbFJlY29yZHNcIiBjbGFzcz1cInNwaWRlcmx5LXRhYmxlXCIgW2xvYWRpbmddPVwiKGl0ZW1zID09PSB1bmRlZmluZWQgfHwgbG9hZGluZyA9PT0gdHJ1ZSlcIiBbc2VsZWN0aW9uTW9kZV09XCJzZWxlY3Rpb25Nb2RlXCIgZGF0YUtleT1cImlkXCIgXHJcbiAgICAob25GaWx0ZXIpPVwiZmlsdGVyKCRldmVudClcIj4gXHJcbiAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJjYXB0aW9uXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLWhlYWRlciBvdmVyZmxvdy1hdXRvXCI+XHJcbiAgICAgICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiA4cHg7XCI+XHJcbiAgICAgICAgICAgIDxpIGNsYXNzPVwie3t0YWJsZUljb259fSB0ZXh0LTJ4bCBwcmltYXJ5LWNvbG9yXCI+PC9pPlxyXG4gICAgICAgICAgICA8aDUgc3R5bGU9XCJtYXJnaW46IDBweDtcIj57e3RhYmxlVGl0bGV9fTwvaDU+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBnYXA6IDhweDtcIj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBwQnV0dG9uIFtsYWJlbF09XCJ0KCdDbGVhckZpbHRlcnMnKVwiIGNsYXNzPVwicC1idXR0b24tb3V0bGluZWQgcmVtb3ZlLWJ1dHRvbi1ib3JkZXItZm9jdXNcIiBzdHlsZT1cImZsZXg6IG5vbmU7XCIgaWNvbj1cInBpIHBpLWZpbHRlci1zbGFzaFwiIChjbGljayk9XCJjbGVhcihkdClcIj48L2J1dHRvbj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBwQnV0dG9uICpuZ0lmPVwic2hvd0V4cG9ydFRvRXhjZWxCdXR0b25cIiBbbGFiZWxdPVwidCgnRXhwb3J0VG9FeGNlbCcpXCIgY2xhc3M9XCJwLWJ1dHRvbi1vdXRsaW5lZCByZW1vdmUtYnV0dG9uLWJvcmRlci1mb2N1c1wiIHN0eWxlPVwiZmxleDogbm9uZTtcIiBpY29uPVwicGkgcGktZG93bmxvYWRcIiAoY2xpY2spPVwiZXhwb3J0TGlzdFRvRXhjZWwoKVwiPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8YnV0dG9uIHBCdXR0b24gKm5nSWY9XCJzaG93UmVsb2FkVGFibGVCdXR0b25cIiBbbGFiZWxdPVwidCgnUmVsb2FkJylcIiBjbGFzcz1cInAtYnV0dG9uLW91dGxpbmVkIHJlbW92ZS1idXR0b24tYm9yZGVyLWZvY3VzXCIgc3R5bGU9XCJmbGV4OiBub25lO1wiIGljb249XCJwaSBwaS1yZWZyZXNoXCIgKGNsaWNrKT1cInJlbG9hZCgpXCI+PC9idXR0b24+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRlclwiPlxyXG4gICAgICAgIDx0cj5cclxuICAgICAgICAgIDx0aCBzdHlsZT1cIndpZHRoOiAwcmVtO1wiICpuZ0lmPVwic2VsZWN0aW9uTW9kZSA9PSAnbXVsdGlwbGUnXCI+XHJcbiAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBnYXA6IDhweDtcIj5cclxuICAgICAgICAgICAgICA8cC1jaGVja2JveCBbZGlzYWJsZWRdPVwicmVhZG9ubHlcIiAob25DaGFuZ2UpPVwic2VsZWN0QWxsKCRldmVudC5jaGVja2VkKVwiIFsobmdNb2RlbCldPVwiZmFrZUlzQWxsU2VsZWN0ZWRcIiBbYmluYXJ5XT1cInRydWVcIj48L3AtY2hlY2tib3g+ICh7e3Jvd3NTZWxlY3RlZE51bWJlcn19KVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjb2wgb2YgY29sczsgdHJhY2tCeTogY29sVHJhY2tCeUZuXCI+XHJcbiAgICAgICAgICAgIDx0aCBbc3R5bGVdPVwiZ2V0Q29sSGVhZGVyV2lkdGgoY29sLmZpbHRlclR5cGUpXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgYWxpZ24taXRlbXM6IGNlbnRlcjtcIj5cclxuICAgICAgICAgICAgICAgIHt7Y29sLm5hbWV9fVxyXG4gICAgICAgICAgICAgICAgPCEtLSA8cC1zb3J0SWNvbiBmaWVsZD1cIlwiPjwvcC1zb3J0SWNvbj4gLS0+XHJcbiAgICAgICAgICAgICAgICA8IS0tIDxwLWNvbHVtbkZpbHRlciB0eXBlPVwiZGF0ZVwiIGZpZWxkPVwiZGF0ZVwiIGRpc3BsYXk9XCJtZW51XCI+PC9wLWNvbHVtbkZpbHRlcj4gLS0+XHJcbiAgICAgICAgICAgICAgICA8cC1jb2x1bW5GaWx0ZXIgKm5nSWY9XCJjb2wuZmlsdGVyVHlwZSAhPSBudWxsXCIgW3R5cGVdPVwiY29sLmZpbHRlclR5cGVcIiBbZmllbGRdPVwiY29sLmZpbHRlckZpZWxkID8/IGNvbC5maWVsZFwiIGRpc3BsYXk9XCJtZW51XCIgW3BsYWNlaG9sZGVyXT1cImNvbC5maWx0ZXJQbGFjZWhvbGRlclwiIFxyXG4gICAgICAgICAgICAgICAgW3Nob3dPcGVyYXRvcl09XCJmYWxzZVwiIFtzaG93TWF0Y2hNb2Rlc109XCJjb2wuc2hvd01hdGNoTW9kZXNcIiBbc2hvd0FkZEJ1dHRvbl09XCJjb2wuc2hvd0FkZEJ1dHRvblwiIFttYXRjaE1vZGVPcHRpb25zXT1cImdldENvbE1hdGNoTW9kZU9wdGlvbnMoY29sLmZpbHRlclR5cGUpXCJcclxuICAgICAgICAgICAgICAgIFttYXRjaE1vZGVdPVwiZ2V0Q29sTWF0Y2hNb2RlKGNvbC5maWx0ZXJUeXBlKVwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNEcm9wT3JNdWx0aShjb2wuZmlsdGVyVHlwZSlcIj5cclxuICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImZpbHRlclwiIGxldC12YWx1ZSBsZXQtZmlsdGVyPVwiZmlsdGVyQ2FsbGJhY2tcIj5cclxuICAgICAgICAgICAgICAgICAgICA8cC1tdWx0aVNlbGVjdCBbbmdNb2RlbF09XCJ2YWx1ZVwiIFtvcHRpb25zXT1cImNvbC5kcm9wZG93bk9yTXVsdGlzZWxlY3RWYWx1ZXNcIiBbcGxhY2Vob2xkZXJdPVwidCgnQWxsJylcIiAob25DaGFuZ2UpPVwiZmlsdGVyKCRldmVudC52YWx1ZSlcIiBvcHRpb25MYWJlbD1cImxhYmVsXCIgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiIFtzdHlsZV09XCJ7J3dpZHRoJzonMjQwcHgnfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1pdGVtIHBUZW1wbGF0ZT1cIml0ZW1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtbXVsdGlzZWxlY3QtcmVwcmVzZW50YXRpdmUtb3B0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtbC0yXCI+e3sgaXRlbS5sYWJlbCB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvcC1tdWx0aVNlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgIDwvcC1jb2x1bW5GaWx0ZXI+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L3RyPlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiYm9keVwiIGxldC1yb3dEYXRhIGxldC1pbmRleD1cInJvd0luZGV4XCIgbGV0LWVkaXRpbmc9XCJlZGl0aW5nXCI+XHJcbiAgICAgICAgPHRyPlxyXG4gICAgICAgICAgPHRkICpuZ0lmPVwic2VsZWN0aW9uTW9kZSA9PSAnbXVsdGlwbGUnXCI+XHJcbiAgICAgICAgICAgICAgPHAtY2hlY2tib3ggW2Rpc2FibGVkXT1cInJlYWRvbmx5XCIgKG9uQ2hhbmdlKT1cInNlbGVjdFJvdyhyb3dEYXRhLmlkLCByb3dEYXRhLmluZGV4KVwiIFtuZ01vZGVsXT1cImlzUm93U2VsZWN0ZWQocm93RGF0YS5pZClcIiBbYmluYXJ5XT1cInRydWVcIj48L3AtY2hlY2tib3g+XHJcbiAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sIG9mIGNvbHM7IHRyYWNrQnk6IGNvbFRyYWNrQnlGblwiPlxyXG4gICAgICAgICAgICA8dGQgW3BUb29sdGlwXT1cImdldFJvd0RhdGEocm93RGF0YSwgY29sKVwiIFtzdHlsZV09XCJnZXRTdHlsZUZvckJvZHlDb2x1bW4oY29sKVwiICpuZ0lmPVwiIWNvbC5lZGl0YWJsZVwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgZ2FwOiAxOHB4O1wiPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIGNvbC5hY3Rpb25zOyB0cmFja0J5OiBhY3Rpb25UcmFja0J5Rm5cIiA+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIFtwVG9vbHRpcF09XCJhY3Rpb24ubmFtZVwiIFtjbGFzc109XCJnZXRDbGFzc0ZvckFjdGlvbihhY3Rpb24pXCIgKGNsaWNrKT1cImdldE1ldGhvZEZvckFjdGlvbihhY3Rpb24sIHJvd0RhdGEpXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAge3tnZXRSb3dEYXRhKHJvd0RhdGEsIGNvbCl9fVxyXG4gICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICA8dGQgKm5nSWY9XCJjb2wuZWRpdGFibGVcIj5cclxuICAgICAgICAgICAgICA8c3BpZGVybHktbnVtYmVyIFtjb250cm9sXT1cImdldEZvcm1BcnJheUNvbnRyb2xCeUluZGV4KGNvbC5maWVsZCwgcm93RGF0YS5pbmRleClcIiBbc2hvd0xhYmVsXT1cImZhbHNlXCI+PC9zcGlkZXJseS1udW1iZXI+XHJcbiAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L3RyPlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiZW1wdHltZXNzYWdlXCI+XHJcbiAgICAgICAgPHRyPlxyXG4gICAgICAgICAgPHRkIFthdHRyLmNvbHNwYW5dPVwiY29scz8ubGVuZ3RoICsgKHNlbGVjdGlvbk1vZGUgPT09ICdtdWx0aXBsZScgPyAxIDogMClcIj57e3QoJ05vUmVjb3Jkc0ZvdW5kJyl9fTwvdGQ+XHJcbiAgICAgICAgPC90cj5cclxuICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImxvYWRpbmdib2R5XCI+XHJcbiAgICAgICAgPHRyPlxyXG4gICAgICAgICAgPHRkIFthdHRyLmNvbHNwYW5dPVwiY29scz8ubGVuZ3RoICsgKHNlbGVjdGlvbk1vZGUgPT09ICdtdWx0aXBsZScgPyAxIDogMClcIj57e3QoJ0xvYWRpbmcnKX19Li4uPC90ZD5cclxuICAgICAgICA8L3RyPlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwicGFnaW5hdG9ybGVmdFwiPlxyXG4gICAgICAgIHt7dCgnVG90YWxSZWNvcmRzJyl9fToge3t0b3RhbFJlY29yZHN9fVxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwicGFnaW5hdG9ycmlnaHRcIj5cclxuICAgICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDsganVzdGlmeS1jb250ZW50OiBlbmQ7IGdhcDogMTBweDtcIj5cclxuICAgICAgICAgIDxzcGlkZXJseS1idXR0b24gKm5nSWY9XCJzaG93QWRkQnV0dG9uXCIgW2xhYmVsXT1cInQoJ0FkZE5ldycpXCIgaWNvbj1cInBpIHBpLXBsdXNcIiAob25DbGljayk9XCJuYXZpZ2F0ZVRvRGV0YWlscygwKVwiPjwvc3BpZGVybHktYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC9wLXRhYmxlPlxyXG4gIDwvZGl2PlxyXG48L25nLWNvbnRhaW5lcj4iXX0=
|
|
501
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BpZGVybHktZGF0YS10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGlkZXJseS9zcmMvbGliL2NvbXBvbmVudHMvc3BpZGVybHktZGF0YS10YWJsZS9zcGlkZXJseS1kYXRhLXRhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NwaWRlcmx5L3NyYy9saWIvY29tcG9uZW50cy9zcGlkZXJseS1kYXRhLXRhYmxlL3NwaWRlcmx5LWRhdGEtdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUs3RyxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSxrRUFBa0UsQ0FBQztBQUN2SCxPQUFPLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU3QyxPQUFPLEVBQUUsY0FBYyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBRWxELE9BQU8sRUFBRSxrQkFBa0IsRUFBb0IsTUFBTSxvQkFBb0IsQ0FBQztBQUMxRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUlqRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUVwRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7QUE0QjdELE1BQU0sT0FBTywwQkFBMEI7SUF1RHJDLFlBQ1UsTUFBYyxFQUNkLGFBQTRCLEVBQzVCLEtBQXFCLEVBQ3JCLGNBQXNDLEVBQ3RDLGdCQUFrQyxFQUNmLE1B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LEdBQUcsaUJBQWlCLENBQUM7UUFDM0MsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUM7UUFDckMsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7UUFDbkMsSUFBSSxDQUFDLDJCQUEyQixHQUFHLDJCQUEyQixDQUFDO1FBQy9ELElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0lBQzdCLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyxhQUFhO0lBS3hCLFlBQ0UsRUFDRSxLQUFLLEVBQ0wsRUFBRSxFQUNGLGlCQUFpQixLQUtmLEVBQUU7UUFFTixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQztRQUNiLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQztJQUM3QyxDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sYUFBYTtJQUl4QixZQUNFLEVBQ0UsT0FBTyxFQUNQLGlCQUFpQixLQUlmLEVBQUU7UUFFTixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixJQUFJLENBQUMsaUJBQWlCLEdBQUcsaUJBQWlCLENBQUM7SUFDN0MsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEluamVjdCwgSW5wdXQsIExPQ0FMRV9JRCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgU2VsZWN0SXRlbSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcclxuaW1wb3J0IHsgVGFibGUsIFRhYmxlRmlsdGVyRXZlbnQsIFRhYmxlTGF6eUxvYWRFdmVudCB9IGZyb20gJ3ByaW1lbmcvdGFibGUnO1xyXG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlLCBEeW5hbWljRGlhbG9nUmVmIH0gZnJvbSAncHJpbWVuZy9keW5hbWljZGlhbG9nJztcclxuaW1wb3J0IHsgU3BpZGVybHlEZWxldGVDb25maXJtYXRpb25Db21wb25lbnQgfSBmcm9tICcuLi9zcGlkZXJseS1kZWxldGUtZGlhbG9nL3NwaWRlcmx5LWRlbGV0ZS1jb25maXJtYXRpb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBmb3JtYXREYXRlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFNwaWRlcmx5TWVzc2FnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zcGlkZXJseS1tZXNzYWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBmaXJzdFZhbHVlRnJvbSwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBQcmltZW5nT3B0aW9uIH0gZnJvbSAnLi4vLi4vZW50aXRpZXMvcHJpbWVuZy1vcHRpb24nO1xyXG5pbXBvcnQgeyBUcmFuc2xvY29EaXJlY3RpdmUsIFRyYW5zbG9jb1NlcnZpY2UgfSBmcm9tICdAanN2ZXJzZS90cmFuc2xvY28nO1xyXG5pbXBvcnQgeyBTcGlkZXJseUNvbnRyb2xzTW9kdWxlIH0gZnJvbSAnLi4vLi4vY29udHJvbHMvc3BpZGVybHktY29udHJvbHMubW9kdWxlJztcclxuaW1wb3J0IHsgU3BpZGVybHlGb3JtQ29udHJvbCB9IGZyb20gJy4uL3NwaWRlcmx5LWZvcm0tY29udHJvbC9zcGlkZXJseS1mb3JtLWNvbnRyb2wnO1xyXG5pbXBvcnQgeyBUYWJsZVJlc3BvbnNlIH0gZnJvbSAnLi4vLi4vZW50aXRpZXMvdGFibGUtcmVzcG9uc2UnO1xyXG5pbXBvcnQgeyBMYXp5TG9hZFNlbGVjdGVkSWRzUmVzdWx0IH0gZnJvbSAnLi4vLi4vZW50aXRpZXMvbGF6eS1sb2FkLXNlbGVjdGVkLWlkcy1yZXN1bHQnO1xyXG5pbXBvcnQgeyBleHBvcnRMaXN0VG9FeGNlbCB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2hlbHBlci1mdW5jdGlvbnMnO1xyXG5pbXBvcnQgeyBUYWJsZUZpbHRlciB9IGZyb20gJy4uLy4uL2VudGl0aWVzL3RhYmxlLWZpbHRlcic7XHJcbmltcG9ydCB7IFByaW1lbmdNb2R1bGUgfSBmcm9tICcuLi8uLi9tb2R1bGVzL3ByaW1lbmcubW9kdWxlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc3BpZGVybHktZGF0YS10YWJsZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3NwaWRlcmx5LWRhdGEtdGFibGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnc3BpZGVybHktZGF0YS10YWJsZS5jb21wb25lbnQuc2NzcycsXHJcbiAgc3R5bGVzOiBbYFxyXG4gIFx0Omhvc3Qge1xyXG5cdFx0ICA6Om5nLWRlZXAge1xyXG5cdFx0ICAgIC5yZW1vdmUtYnV0dG9uLWJvcmRlci1mb2N1czpmb2N1cywgXHJcbiAgICAgICAgLnJlbW92ZS1idXR0b24tYm9yZGVyLWZvY3VzOmVuYWJsZWQ6Zm9jdXMge1xyXG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XHJcbiAgICAgICAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lO1xyXG4gICAgICAgIC1tb3otYm94LXNoYWRvdzogbm9uZTtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ncmF5LTIwMCk7XHJcblx0XHQgICAgfVxyXG5cdFx0ICB9XHJcblx0ICB9XHJcbiAgYF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBQcmltZW5nTW9kdWxlLFxyXG4gICAgVHJhbnNsb2NvRGlyZWN0aXZlLFxyXG4gICAgU3BpZGVybHlDb250cm9sc01vZHVsZSxcclxuICBdLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTcGlkZXJseURhdGFUYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQFZpZXdDaGlsZCgnZHQnKSB0YWJsZTogVGFibGU7XHJcbiAgQElucHV0KCkgdGFibGVUaXRsZTogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHRhYmxlSWNvbjogc3RyaW5nID0gJ3BpIHBpLWxpc3QnO1xyXG4gIEBJbnB1dCgpIGl0ZW1zOiBhbnlbXTsgLy8gRlQ6IFBhc3Mgb25seSB3aGVuIGhhc0xhenlMb2FkID09PSBmYWxzZVxyXG4gIEBJbnB1dCgpIHJvd3M6IG51bWJlciA9IDEwO1xyXG4gIEBJbnB1dCgpIGNvbHM6IENvbHVtbltdO1xyXG4gIEBJbnB1dCgpIHNob3dQYWdpbmF0b3I6IGJvb2xlYW4gPSB0cnVlOyAvLyBGVDogUGFzcyBvbmx5IHdoZW4gaGFzTGF6eUxvYWQgPT09IGZhbHNlXHJcbiAgQElucHV0KCkgc2hvd0NhcmRXcmFwcGVyOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSByZWFkb25seTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHRvdGFsUmVjb3JkczogbnVtYmVyO1xyXG4gIEBPdXRwdXQoKSBvblRvdGFsUmVjb3Jkc0NoYW5nZTogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgXHJcbiAgQElucHV0KCkgZ2V0VGFibGVEYXRhT2JzZXJ2YWJsZU1ldGhvZDogKHRhYmxlRmlsdGVyOiBUYWJsZUZpbHRlcikgPT4gT2JzZXJ2YWJsZTxUYWJsZVJlc3BvbnNlPjtcclxuICBASW5wdXQoKSBleHBvcnRUYWJsZURhdGFUb0V4Y2VsT2JzZXJ2YWJsZU1ldGhvZDogKHRhYmxlRmlsdGVyOiBUYWJsZUZpbHRlcikgPT4gT2JzZXJ2YWJsZTxhbnk+O1xyXG4gIEBJbnB1dCgpIGRlbGV0ZUl0ZW1Gcm9tVGFibGVPYnNlcnZhYmxlTWV0aG9kOiAocm93SWQ6IG51bWJlcikgPT4gT2JzZXJ2YWJsZTxhbnk+O1xyXG5cclxuICBsYXN0TGF6eUxvYWRFdmVudDogVGFibGVMYXp5TG9hZEV2ZW50O1xyXG4gIGxvYWRpbmc6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIFxyXG4gIEBJbnB1dCgpIG5ld2x5U2VsZWN0ZWRJdGVtczogbnVtYmVyW10gPSBbXTtcclxuICBmYWtlU2VsZWN0ZWRJdGVtczogbnVtYmVyW10gPSBbXTsgLy8gRlQ6IE9ubHkgZm9yIHNob3dpbmcgY2hlY2tib3hlcywgd2Ugd2lsbCBub3Qgc2VuZCB0aGlzIHRvIHRoZSBiYWNrZW5kXHJcbiAgY3VycmVudFBhZ2VTZWxlY3RlZEl0ZW1zRnJvbURiOiBudW1iZXJbXSA9IFtdOyAvLyBGVDogTWFkZSBzbyB3ZSBjYW4gYWRkIG9ubHkgbmV3bHkgc2VsZWN0ZWQgaXRlbXMgdG8gdGhlIG5ld2x5U2VsZWN0ZWRJdGVtc1xyXG4gIEBJbnB1dCgpIHVuc2VsZWN0ZWRJdGVtczogbnVtYmVyW10gPSBbXTtcclxuICBASW5wdXQoKSBzZWxlY3Rpb25Nb2RlOiAnc2luZ2xlJyB8ICdtdWx0aXBsZScgfCB1bmRlZmluZWQgfCBudWxsO1xyXG4gIEBPdXRwdXQoKSBvbkxhenlMb2FkOiBFdmVudEVtaXR0ZXI8VGFibGVGaWx0ZXI+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIHJvd3NTZWxlY3RlZE51bWJlcjogbnVtYmVyID0gMDtcclxuICBpc0FsbFNlbGVjdGVkOiBib29sZWFuID0gbnVsbDtcclxuICBmYWtlSXNBbGxTZWxlY3RlZDogYm9vbGVhbiA9IGZhbHNlOyAvLyBGVDogT25seSBmb3Igc2hvd2luZyBjaGVja2JveGVzLCB3ZSB3aWxsIG5vdCBzZW5kIHRoaXMgdG8gdGhlIGJhY2tlbmRcclxuICBpc0ZpcnN0VGltZUxhenlMb2FkOiBib29sZWFuID0gdHJ1ZTtcclxuICBAT3V0cHV0KCkgb25Jc0FsbFNlbGVjdGVkQ2hhbmdlOiBFdmVudEVtaXR0ZXI8QWxsQ2xpY2tFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQElucHV0KCkgc2VsZWN0ZWRMYXp5TG9hZE9ic2VydmFibGVNZXRob2Q6ICh0YWJsZUZpbHRlcjogVGFibGVGaWx0ZXIpID0+IE9ic2VydmFibGU8TGF6eUxvYWRTZWxlY3RlZElkc1Jlc3VsdD47XHJcbiAgQElucHV0KCkgYWRkaXRpb25hbEZpbHRlcklkTG9uZzogbnVtYmVyO1xyXG4gIFxyXG4gIG1hdGNoTW9kZURhdGVPcHRpb25zOiBTZWxlY3RJdGVtW10gPSBbXTtcclxuICBtYXRjaE1vZGVOdW1iZXJPcHRpb25zOiBTZWxlY3RJdGVtW10gPSBbXTtcclxuICBASW5wdXQoKSBzaG93QWRkQnV0dG9uOiBib29sZWFuID0gdHJ1ZTsgXHJcbiAgQElucHV0KCkgc2hvd0V4cG9ydFRvRXhjZWxCdXR0b246IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHNob3dSZWxvYWRUYWJsZUJ1dHRvbjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBkZWxldGVSZWY6IER5bmFtaWNEaWFsb2dSZWY7XHJcblxyXG4gIC8vIENsaWVudCBzaWRlIHRhYmxlXHJcbiAgLy8gQElucHV0KCkgZm9ybUFycmF5SXRlbXM6IGFueVtdOyAvLyBGVDogUGFzcyB0aGlzIG9ubHkgaWYgeW91IGhhdmUgc29tZSBhZGRpdGlvbmFsIGxvZ2ljIGZvciBzaG93aW5nIGRhdGFcclxuICBASW5wdXQoKSBnZXRGb3JtQXJyYXlJdGVtczogKGFkZGl0aW9uYWxJbmRleGVzPzogYW55KSA9PiBhbnlbXTtcclxuICBASW5wdXQoKSBoYXNMYXp5TG9hZDogYm9vbGVhbiA9IHRydWU7IFxyXG4gIHNlbGVjdGVkSXRlbUlkczogbnVtYmVyW10gPSBbXTsgLy8gRlQ6IFBhc3Mgb25seSB3aGVuIGhhc0xhenlMb2FkID09PSBmYWxzZSwgaXQncyBlbm91Z2ggaWYgdGhlIE0yTSBhc3NvY2lhdGlvbiBoYXNuJ3QgYWRkaXRpb25hbCBmaWVsZHNcclxuICBASW5wdXQoKSBnZXRBbHJlYWR5U2VsZWN0ZWRJdGVtSWRzOiAoYWRkaXRpb25hbEluZGV4ZXM/OiBhbnkpID0+IG51bWJlcltdOyAvLyBGVDogUGFzcyBvbmx5IHdoZW4gaGFzTGF6eUxvYWQgPT09IGZhbHNlLCBpdCdzIGVub3VnaCBpZiB0aGUgTTJNIGFzc29jaWF0aW9uIGhhc24ndCBhZGRpdGlvbmFsIGZpZWxkc1xyXG4gIHNlbGVjdGVkSXRlbXM6IGFueVtdID0gW107IC8vIEZUOiBQYXNzIG9ubHkgd2hlbiBoYXNMYXp5TG9hZCA9PT0gZmFsc2VcclxuICBASW5wdXQoKSBnZXRBbHJlYWR5U2VsZWN0ZWRJdGVtczogKGFkZGl0aW9uYWxJbmRleGVzPzogYW55KSA9PiBhbnlbXTsgLy8gRlQ6IFBhc3Mgb25seSB3aGVuIGhhc0xhenlMb2FkID09PSBmYWxzZSwgaXQncyBlbm91Z2ggaWYgdGhlIE0yTSBhc3NvY2lhdGlvbiBoYXNuJ3QgYWRkaXRpb25hbCBmaWVsZHNcclxuICBASW5wdXQoKSBnZXRGb3JtQ29udHJvbDogKGZvcm1Db250cm9sTmFtZTogc3RyaW5nLCBpbmRleDogbnVtYmVyLCBhZGRpdGlvbmFsSW5kZXhlcz86IGFueSkgPT4gU3BpZGVybHlGb3JtQ29udHJvbDtcclxuICBASW5wdXQoKSBhZGRpdGlvbmFsSW5kZXhlczogYW55O1xyXG4gIEBPdXRwdXQoKSBvblJvd1NlbGVjdDogRXZlbnRFbWl0dGVyPFJvd0NsaWNrRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBvblJvd1Vuc2VsZWN0OiBFdmVudEVtaXR0ZXI8Um93Q2xpY2tFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcclxuICAgIHByaXZhdGUgZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZSxcclxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgcHJpdmF0ZSBtZXNzYWdlU2VydmljZTogU3BpZGVybHlNZXNzYWdlU2VydmljZSxcclxuICAgIHByaXZhdGUgdHJhbnNsb2NvU2VydmljZTogVHJhbnNsb2NvU2VydmljZSxcclxuICAgIEBJbmplY3QoTE9DQUxFX0lEKSBwcml2YXRlIGxvY2FsZTogc3RyaW5nXHJcbiAgKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMubWF0Y2hNb2RlRGF0ZU9wdGlvbnMgPSBbXHJcbiAgICAgIHsgbGFiZWw6IHRoaXMudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ09uRGF0ZScpLCB2YWx1ZTogJ2VxdWFscycgfSxcclxuICAgICAgeyBsYWJlbDogdGhpcy50cmFuc2xvY29TZXJ2aWNlLnRyYW5zbGF0ZSgnRGF0ZXNCZWZvcmUnKSwgdmFsdWU6ICdkYXRlQmVmb3JlJyB9LFxyXG4gICAgICB7IGxhYmVsOiB0aGlzLnRyYW5zbG9jb1NlcnZpY2UudHJhbnNsYXRlKCdEYXRlc0FmdGVyJyksIHZhbHVlOiAnZGF0ZUFmdGVyJyB9LFxyXG4gICAgXTtcclxuXHJcbiAgICB0aGlzLm1hdGNoTW9kZU51bWJlck9wdGlvbnMgPSBbXHJcbiAgICAgIHsgbGFiZWw6IHRoaXMudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ0VxdWFscycpLCB2YWx1ZTogJ2VxdWFscycgfSxcclxuICAgICAgeyBsYWJlbDogdGhpcy50cmFuc2xvY29TZXJ2aWNlLnRyYW5zbGF0ZSgnTW9yZVRoYW4nKSwgdmFsdWU6ICdndGUnIH0sXHJcbiAgICAgIHsgbGFiZWw6IHRoaXMudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ0xlc3NUaGFuJyksIHZhbHVlOiAnbHRlJyB9LFxyXG4gICAgXTtcclxuXHJcbiAgICBpZiAodGhpcy5oYXNMYXp5TG9hZCA9PT0gZmFsc2UpIHtcclxuICAgICAgdGhpcy5jbGllbnRMb2FkKCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIFxyXG4gIGxhenlMb2FkKGV2ZW50OiBUYWJsZUxhenlMb2FkRXZlbnQpIHtcclxuICAgIHRoaXMubGFzdExhenlMb2FkRXZlbnQgPSBldmVudDtcclxuXHJcbiAgICBsZXQgdGFibGVGaWx0ZXI6IFRhYmxlRmlsdGVyID0gZXZlbnQgYXMgdW5rbm93biBhcyBUYWJsZUZpbHRlcjtcclxuICAgIHRhYmxlRmlsdGVyLmFkZGl0aW9uYWxGaWx0ZXJJZExvbmcgPSB0aGlzLmFkZGl0aW9uYWxGaWx0ZXJJZExvbmc7XHJcblxyXG4gICAgdGhpcy5vbkxhenlMb2FkLm5leHQodGFibGVGaWx0ZXIpO1xyXG4gICAgXHJcbiAgICB0aGlzLmdldFRhYmxlRGF0YU9ic2VydmFibGVNZXRob2QodGFibGVGaWx0ZXIpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IGFzeW5jIChyZXMpID0+IHsgXHJcbiAgICAgICAgdGhpcy5pdGVtcyA9IHJlcy5kYXRhO1xyXG4gICAgICAgIHRoaXMudG90YWxSZWNvcmRzID0gcmVzLnRvdGFsUmVjb3JkcztcclxuICAgICAgICB0aGlzLm9uVG90YWxSZWNvcmRzQ2hhbmdlLm5leHQocmVzLnRvdGFsUmVjb3Jkcyk7XHJcbiAgICAgICAgXHJcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRMYXp5TG9hZE9ic2VydmFibGVNZXRob2QgIT0gbnVsbCkge1xyXG4gICAgICAgICAgbGV0IHNlbGVjdGVkUm93c01ldGhvZFJlc3VsdDogTGF6eUxvYWRTZWxlY3RlZElkc1Jlc3VsdCA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuc2VsZWN0ZWRMYXp5TG9hZE9ic2VydmFibGVNZXRob2QodGFibGVGaWx0ZXIpKTtcclxuICBcclxuICAgICAgICAgIHRoaXMuY3VycmVudFBhZ2VTZWxlY3RlZEl0ZW1zRnJvbURiID0gWy4uLnNlbGVjdGVkUm93c01ldGhvZFJlc3VsdC5zZWxlY3RlZElkc107XHJcblxyXG4gICAgICAgICAgaWYgKHRoaXMuaXNGaXJzdFRpbWVMYXp5TG9hZCA9PSB0cnVlKSB7XHJcbiAgICAgICAgICAgIHRoaXMucm93c1NlbGVjdGVkTnVtYmVyID0gc2VsZWN0ZWRSb3dzTWV0aG9kUmVzdWx0LnRvdGFsUmVjb3Jkc1NlbGVjdGVkO1xyXG4gICAgICAgICAgICB0aGlzLnNldEZha2VJc0FsbFNlbGVjdGVkKCk7XHJcbiAgICAgICAgICAgIHRoaXMuaXNGaXJzdFRpbWVMYXp5TG9hZCA9IGZhbHNlO1xyXG4gICAgICAgICAgfVxyXG4gIFxyXG4gICAgICAgICAgaWYgKHRoaXMuaXNBbGxTZWxlY3RlZCA9PSB0cnVlKSB7XHJcbiAgICAgICAgICAgIGxldCBpZHNUb0luc2VydCA9IFsuLi50aGlzLml0ZW1zLm1hcCh4ID0+IHguaWQpXTtcclxuICAgICAgICAgICAgaWRzVG9JbnNlcnQgPSBpZHNUb0luc2VydC5maWx0ZXIoeCA9PiB0aGlzLnVuc2VsZWN0ZWRJdGVtcy5pbmNsdWRlcyh4KSA9PSBmYWxzZSk7XHJcbiAgICAgICAgICAgIHRoaXMuZmFrZVNlbGVjdGVkSXRlbXMgPSBbLi4uaWRzVG9JbnNlcnRdOyAvLyBGVDogT25seSBmb3Igc2hvd2luZyBjaGVja2JveGVzLCB3ZSB3aWxsIG5vdCBzZW5kIHRoaXMgdG8gdGhlIGJhY2tlbmRcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2UgaWYgKHRoaXMuaXNBbGxTZWxlY3RlZCA9PSBmYWxzZSkge1xyXG4gICAgICAgICAgICB0aGlzLmZha2VTZWxlY3RlZEl0ZW1zID0gWy4uLnRoaXMubmV3bHlTZWxlY3RlZEl0ZW1zXTsgLy8gRlQ6IE9ubHkgZm9yIHNob3dpbmcgY2hlY2tib3hlcywgd2Ugd2lsbCBub3Qgc2VuZCB0aGlzIHRvIHRoZSBiYWNrZW5kXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlIGlmICh0aGlzLmlzQWxsU2VsZWN0ZWQgPT0gbnVsbCkge1xyXG4gICAgICAgICAgICBsZXQgaWRzVG9JbnNlcnQgPSBbLi4uc2VsZWN0ZWRSb3dzTWV0aG9kUmVzdWx0LnNlbGVjdGVkSWRzLCAuLi50aGlzLm5ld2x5U2VsZWN0ZWRJdGVtc107XHJcbiAgICAgICAgICAgIGlkc1RvSW5zZXJ0ID0gaWRzVG9JbnNlcnQuZmlsdGVyKHggPT4gdGhpcy51bnNlbGVjdGVkSXRlbXMuaW5jbHVkZXMoeCkgPT0gZmFsc2UpO1xyXG4gICAgICAgICAgICB0aGlzLmZha2VTZWxlY3RlZEl0ZW1zID0gWy4uLmlkc1RvSW5zZXJ0XTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogKCkgPT4ge1xyXG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBjbGllbnRMb2FkKCl7XHJcbiAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuXHJcbiAgICB0aGlzLmxvYWRGb3JtQXJyYXlJdGVtcygpO1xyXG4gICAgdGhpcy50b3RhbFJlY29yZHMgPSB0aGlzLml0ZW1zLmxlbmd0aDtcclxuICAgIHRoaXMub25Ub3RhbFJlY29yZHNDaGFuZ2UubmV4dCh0aGlzLml0ZW1zLmxlbmd0aCk7XHJcblxyXG4gICAgaWYgKHRoaXMuZ2V0QWxyZWFkeVNlbGVjdGVkSXRlbUlkcykge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbUlkcyA9IHRoaXMuZ2V0QWxyZWFkeVNlbGVjdGVkSXRlbUlkcyh0aGlzLmFkZGl0aW9uYWxJbmRleGVzKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmdldEFscmVhZHlTZWxlY3RlZEl0ZW1zKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IHRoaXMuZ2V0QWxyZWFkeVNlbGVjdGVkSXRlbXModGhpcy5hZGRpdGlvbmFsSW5kZXhlcyk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnJvd3NTZWxlY3RlZE51bWJlciA9IHRoaXMuc2VsZWN0ZWRJdGVtSWRzLmxlbmd0aDtcclxuICAgIHRoaXMuc2V0RmFrZUlzQWxsU2VsZWN0ZWQoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2xpZW50RmlsdGVyQ291bnQgPSAwO1xyXG5cclxuICBmaWx0ZXIoZXZlbnQ6IFRhYmxlRmlsdGVyRXZlbnQpe1xyXG4gICAgaWYgKHRoaXMuaGFzTGF6eUxvYWQgJiYgdGhpcy5zZWxlY3Rpb25Nb2RlID09PSAnbXVsdGlwbGUnKVxyXG4gICAgICB0aGlzLnNlbGVjdEFsbChmYWxzZSk7IC8vIEZUOiBXZSBuZWVkIHRvIGRvIGl0IGxpa2UgdGhpcyBiZWNhdXNlOiB0b3RhbFJlY29yZHM6IDEgLT4gc2VsZWN0ZWRSZWNvcmRzIGZyb20gZWFybHllciBzZWxlY3Rpb24gMiAtPiB1bnNlbGVjdCBjdXJyZW50IC0+IGFsbCBjaGVja2JveCBpcyBzZXQgdG8gdHJ1ZVxyXG5cclxuICAgIGlmICh0aGlzLmhhc0xhenlMb2FkID09PSBmYWxzZSAmJiB0aGlzLnNlbGVjdGlvbk1vZGUgPT09ICdtdWx0aXBsZScpIHtcclxuICAgICAgaWYgKHRoaXMuY2xpZW50RmlsdGVyQ291bnQgPT09IDApIHtcclxuICAgICAgICB0aGlzLmxvYWRGb3JtQXJyYXlJdGVtcygpO1xyXG4gICAgICAgIHRoaXMuY2xpZW50RmlsdGVyQ291bnQrKztcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgdGhpcy5jbGllbnRGaWx0ZXJDb3VudC0tO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGxvYWRGb3JtQXJyYXlJdGVtcygpe1xyXG4gICAgdGhpcy5pdGVtcyA9IHRoaXMuZ2V0Rm9ybUFycmF5SXRlbXModGhpcy5hZGRpdGlvbmFsSW5kZXhlcyk7XHJcbiAgICB0aGlzLml0ZW1zLmZvckVhY2goKGl0ZW0sIGluZGV4KSA9PiB7XHJcbiAgICAgIGl0ZW0uaW5kZXggPSBpbmRleDtcclxuICAgIH0pO1xyXG4gIH1cclxuICBcclxuICBnZXRDb2xIZWFkZXJXaWR0aChmaWx0ZXJUeXBlOiBzdHJpbmcpIHtcclxuICAgIHN3aXRjaCAoZmlsdGVyVHlwZSkge1xyXG4gICAgICBjYXNlICd0ZXh0JzpcclxuICAgICAgICByZXR1cm4gJ21pbi13aWR0aDogMTJyZW07JztcclxuICAgICAgY2FzZSAnZGF0ZSc6XHJcbiAgICAgICAgcmV0dXJuICdtaW4td2lkdGg6IDEwcmVtOyc7XHJcbiAgICAgIGNhc2UgJ211bHRpc2VsZWN0JzpcclxuICAgICAgICByZXR1cm4gJ21pbi13aWR0aDogMTJyZW07JztcclxuICAgICAgY2FzZSAnYm9vbGVhbic6XHJcbiAgICAgICAgcmV0dXJuICdtaW4td2lkdGg6IDhyZW07JztcclxuICAgICAgY2FzZSAnbnVtZXJpYyc6XHJcbiAgICAgICAgcmV0dXJuICdtaW4td2lkdGg6IDEycmVtOyc7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuICd3aWR0aDogMHJlbTsnOyAvLyBmaXR0aW5nIGNvbnRlbnQgb2YgdGhlIHJvdyBsaWtlIHRoaXNcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldENvbE1hdGNoTW9kZU9wdGlvbnMoZmlsdGVyVHlwZTogc3RyaW5nKXtcclxuICAgIHN3aXRjaCAoZmlsdGVyVHlwZSkge1xyXG4gICAgICAgIGNhc2UgJ3RleHQnOlxyXG4gICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgY2FzZSAnZGF0ZSc6XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5tYXRjaE1vZGVEYXRlT3B0aW9ucztcclxuICAgICAgICBjYXNlICdtdWx0aXNlbGVjdCc6XHJcbiAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICBjYXNlICdib29sZWFuJzpcclxuICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIGNhc2UgJ251bWVyaWMnOlxyXG4gICAgICAgICAgcmV0dXJuIHRoaXMubWF0Y2hNb2RlTnVtYmVyT3B0aW9ucztcclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgIH1cclxuICB9XHJcbiAgXHJcbiAgZ2V0Q29sTWF0Y2hNb2RlKGZpbHRlclR5cGU6IHN0cmluZyl7XHJcbiAgICBzd2l0Y2ggKGZpbHRlclR5cGUpIHtcclxuICAgICAgICBjYXNlICd0ZXh0JzpcclxuICAgICAgICAgIHJldHVybiAnY29udGFpbnMnO1xyXG4gICAgICAgIGNhc2UgJ2RhdGUnOlxyXG4gICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgY2FzZSAnbXVsdGlzZWxlY3QnOlxyXG4gICAgICAgICAgcmV0dXJuICdpbic7XHJcbiAgICAgICAgY2FzZSAnYm9vbGVhbic6XHJcbiAgICAgICAgICByZXR1cm4gJ2VxdWFscyc7XHJcbiAgICAgICAgY2FzZSAnbnVtZXJpYyc6XHJcbiAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgIH1cclxuICB9XHJcblxyXG4gIGlzRHJvcE9yTXVsdGkoZmlsdGVyVHlwZTogc3RyaW5nKXtcclxuICAgIGlmIChmaWx0ZXJUeXBlID09ICdkcm9wZG93bicgfHwgZmlsdGVyVHlwZSA9PSAnbXVsdGlzZWxlY3QnKSB7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9IFxyXG4gICAgZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmF2aWdhdGVUb0RldGFpbHMocm93SWQ6IG51bWJlcil7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbcm93SWRdLCB7cmVsYXRpdmVUbzogdGhpcy5yb3V0ZX0pO1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlT2JqZWN0KHJvd0lkOiBudW1iZXIpe1xyXG4gICAgdGhpcy5kZWxldGVSZWYgPSB0aGlzLmRpYWxvZ1NlcnZpY2Uub3BlbihTcGlkZXJseURlbGV0ZUNvbmZpcm1hdGlvbkNvbXBvbmVudCwgXHJcbiAgICAgIHsgXHJcbiAgICAgICAgaGVhZGVyOiB0aGlzLnRyYW5zbG9jb1NlcnZpY2UudHJhbnNsYXRlKCdBcmVZb3VTdXJlJyksXHJcbiAgICAgICAgd2lkdGg6ICc0MDBweCcsXHJcbiAgICAgICAgZGF0YTp7IGRlbGV0ZUl0ZW1Gcm9tVGFibGVPYnNlcnZhYmxlTWV0aG9kOiB0aGlzLmRlbGV0ZUl0ZW1Gcm9tVGFibGVPYnNlcnZhYmxlTWV0aG9kLCBpZDogcm93SWQsIH0gXHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgdGhpcy5kZWxldGVSZWYub25DbG9zZS5zdWJzY3JpYmUoKGRlbGV0ZWRTdWNjZXNzZnVsbHk6IGJvb2xlYW4pPT57XHJcbiAgICAgICAgaWYoZGVsZXRlZFN1Y2Nlc3NmdWxseSA9PT0gdHJ1ZSl7XHJcbiAgICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLnN1Y2Nlc3NNZXNzYWdlKHRoaXMudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ1N1Y2Nlc3NmdWxseURlbGV0ZWRNZXNzYWdlJykpO1xyXG4gICAgICAgICAgdGhpcy5yZWxvYWQoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcmVsb2FkKCl7XHJcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5pdGVtcyA9IG51bGw7XHJcbiAgICB0aGlzLmxhenlMb2FkKHRoaXMubGFzdExhenlMb2FkRXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgc2hvd0FjdGlvbnMoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5jb2xzLnNvbWUoeCA9PiB4LmFjdGlvbnM/Lmxlbmd0aCA+IDApO1xyXG4gIH1cclxuXHJcbiAgZ2V0U3R5bGVGb3JCb2R5Q29sdW1uKGNvbDogQ29sdW1uPGFueT4pIHtcclxuICAgIHN3aXRjaChjb2wuZmlsdGVyVHlwZSl7XHJcbiAgICAgIGNhc2UgJ251bWVyaWMnOlxyXG4gICAgICAgIHJldHVybiAndGV4dC1hbGlnbjogcmlnaHQ7JztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldENsYXNzRm9yQWN0aW9uKGFjdGlvbjogQWN0aW9uKTogc3RyaW5ne1xyXG4gICAgc3dpdGNoKGFjdGlvbi5maWVsZCl7XHJcbiAgICAgIGNhc2UgJ0RldGFpbHMnOlxyXG4gICAgICAgIHJldHVybiAncGkgcGktcGVuY2lsIHRleHQtbGcgY3Vyc29yLXBvaW50ZXIgcHJpbWFyeS1jb2xvcic7XHJcbiAgICAgIGNhc2UgJ0RlbGV0ZSc6XHJcbiAgICAgICAgcmV0dXJuICdwaSBwaS10cmFzaCB0ZXh0LWxnIHRleHQtcmVkLTUwMCBjdXJzb3ItcG9pbnRlcic7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuIGAke2FjdGlvbi5pY29ufSAke2FjdGlvbi5zdHlsZX0gdGV4dC1sZyBjdXJzb3ItcG9pbnRlcmA7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRNZXRob2RGb3JBY3Rpb24oYWN0aW9uOiBBY3Rpb24sIHJvd0RhdGE6IGFueSl7XHJcbiAgICBzd2l0Y2goYWN0aW9uLmZpZWxkKXtcclxuICAgICAgY2FzZSAnRGV0YWlscyc6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubmF2aWdhdGVUb0RldGFpbHMocm93RGF0YS5pZCk7XHJcbiAgICAgIGNhc2UgJ0RlbGV0ZSc6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZGVsZXRlT2JqZWN0KHJvd0RhdGEuaWQpO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiBhY3Rpb24ub25DbGljayhyb3dEYXRhLmlkKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldFJvd0RhdGEocm93RGF0YTogYW55LCBjb2w6IENvbHVtbik6IHN0cmluZ3tcclxuICAgICAgc3dpdGNoIChjb2wuZmlsdGVyVHlwZSkge1xyXG4gICAgICAgIGNhc2UgJ3RleHQnOlxyXG4gICAgICAgICAgcmV0dXJuIHJvd0RhdGFbY29sLmZpZWxkXTtcclxuICAgICAgICBjYXNlICdkYXRlJzpcclxuICAgICAgICAgIGlmIChyb3dEYXRhW2NvbC5maWVsZF0gPT0gbnVsbClcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgICBcclxuICAgICAgICAgIGlmIChjb2wuc2hvd1RpbWUpXHJcbiAgICAgICAgICAgIHJldHVybiBmb3JtYXREYXRlKHJvd0RhdGFbY29sLmZpZWxkXSwgJ2RkLk1NLnl5eXkuIEhIOm1tJywgdGhpcy5sb2NhbGUpO1xyXG4gICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICByZXR1cm4gZm9ybWF0RGF0ZShyb3dEYXRhW2NvbC5maWVsZF0sICdkZC5NTS55eXl5LicsIHRoaXMubG9jYWxlKTtcclxuICAgICAgICBjYXNlICdtdWx0aXNlbGVjdCc6XHJcbiAgICAgICAgICByZXR1cm4gcm93RGF0YVtjb2wuZmllbGRdO1xyXG4gICAgICAgIGNhc2UgJ2Jvb2xlYW4nOlxyXG4gICAgICAgICAgcmV0dXJuIHJvd0RhdGFbY29sLmZpZWxkXSA9PSB0cnVlID8gdGhpcy50cmFuc2xvY29TZXJ2aWNlLnRyYW5zbGF0ZSgnWWVzJykgOiB0aGlzLnRyYW5zbG9jb1NlcnZpY2UudHJhbnNsYXRlKCdObycpO1xyXG4gICAgICAgIGNhc2UgJ251bWVyaWMnOlxyXG4gICAgICAgICAgLy8gVE9ETyBGVDogbWFrZSBkZWNpbWFsIHBpcGVcclxuICAgICAgICAgIHJldHVybiByb3dEYXRhW2NvbC5maWVsZF07XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICB9XHJcbiAgfVxyXG5cclxuICBjb2xUcmFja0J5Rm4oaW5kZXgsIGl0ZW0pe1xyXG4gICAgcmV0dXJuIGl0ZW0uZmllbGQ7XHJcbiAgfVxyXG5cclxuICBhY3Rpb25UcmFja0J5Rm4oaW5kZXgsIGl0ZW06IEFjdGlvbil7XHJcbiAgICByZXR1cm4gYCR7aW5kZXh9JHtpdGVtLmZpZWxkfWBcclxuICB9XHJcblxyXG4gIGV4cG9ydExpc3RUb0V4Y2VsKCkge1xyXG4gICAgbGV0IHRhYmxlRmlsdGVyOiBUYWJsZUZpbHRlciA9IHRoaXMubGFzdExhenlMb2FkRXZlbnQgYXMgdW5rbm93biBhcyBUYWJsZUZpbHRlcjtcclxuICAgIHRhYmxlRmlsdGVyLmFkZGl0aW9uYWxGaWx0ZXJJZExvbmcgPSB0aGlzLmFkZGl0aW9uYWxGaWx0ZXJJZExvbmc7XHJcblxyXG4gICAgZXhwb3J0TGlzdFRvRXhjZWwodGhpcy5leHBvcnRUYWJsZURhdGFUb0V4Y2VsT2JzZXJ2YWJsZU1ldGhvZCwgdGFibGVGaWx0ZXIpO1xyXG4gIH1cclxuXHJcbiAgY2xlYXIodGFibGU6IFRhYmxlKSB7XHJcbiAgICB0YWJsZS5jbGVhcigpO1xyXG4gIH1cclxuXHJcbiAgLy8jcmVnaW9uIFNlbGVjdGlvblxyXG5cclxuICBzZXRGYWtlSXNBbGxTZWxlY3RlZCgpe1xyXG4gICAgaWYodGhpcy5yb3dzU2VsZWN0ZWROdW1iZXIgPT0gdGhpcy50b3RhbFJlY29yZHMpXHJcbiAgICAgIHRoaXMuZmFrZUlzQWxsU2VsZWN0ZWQgPSB0cnVlO1xyXG4gICAgZWxzZVxyXG4gICAgICB0aGlzLmZha2VJc0FsbFNlbGVjdGVkID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RBbGwoY2hlY2tlZDogYm9vbGVhbil7XHJcbiAgICB0aGlzLnVuc2VsZWN0ZWRJdGVtcy5sZW5ndGggPSAwO1xyXG4gICAgdGhpcy5uZXdseVNlbGVjdGVkSXRlbXMubGVuZ3RoID0gMDtcclxuXHJcbiAgICBpZiAoY2hlY2tlZCA9PSB0cnVlKSB7XHJcbiAgICAgIHRoaXMuaXNBbGxTZWxlY3RlZCA9IHRydWU7XHJcbiAgICAgIHRoaXMuZmFrZUlzQWxsU2VsZWN0ZWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLm9uSXNBbGxTZWxlY3RlZENoYW5nZS5uZXh0KG5ldyBBbGxDbGlja0V2ZW50KHtjaGVja2VkOiB0cnVlLCBhZGRpdGlvbmFsSW5kZXhlczogdGhpcy5hZGRpdGlvbmFsSW5kZXhlc30pKTtcclxuICAgICAgdGhpcy5yb3dzU2VsZWN0ZWROdW1iZXIgPSB0aGlzLnRvdGFsUmVjb3JkcztcclxuICAgICAgdGhpcy5mYWtlU2VsZWN0ZWRJdGVtcyA9IFsuLi50aGlzLml0ZW1zLm1hcCh4ID0+IHguaWQpXTtcclxuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1JZHMgPSBbLi4udGhpcy5pdGVtcy5tYXAoeCA9PiB4LmlkKV1cclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIHRoaXMuaXNBbGxTZWxlY3RlZCA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmZha2VJc0FsbFNlbGVjdGVkID0gZmFsc2U7XHJcbiAgICAgIHRoaXMub25Jc0FsbFNlbGVjdGVkQ2hhbmdlLm5leHQobmV3IEFsbENsaWNrRXZlbnQoe2NoZWNrZWQ6IGZhbHNlLCBhZGRpdGlvbmFsSW5kZXhlczogdGhpcy5hZGRpdGlvbmFsSW5kZXhlc30pKTtcclxuICAgICAgdGhpcy5yb3dzU2VsZWN0ZWROdW1iZXIgPSAwO1xyXG4gICAgICB0aGlzLmZha2VTZWxlY3RlZEl0ZW1zID0gW107XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtSWRzID0gW107XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZWxlY3RSb3coaWQ6IG51bWJlciwgaW5kZXg6IG51bWJlcikge1xyXG4gICAgaWYgKHRoaXMuaXNSb3dTZWxlY3RlZChpZCkpIHtcclxuICAgICAgdGhpcy5yb3dVbnNlbGVjdChpZCk7XHJcbiAgICAgIHRoaXMub25Sb3dVbnNlbGVjdC5uZXh0KG5ldyBSb3dDbGlja0V2ZW50KHsgaW5kZXg6IGluZGV4LCBpZDogaWQsIGFkZGl0aW9uYWxJbmRleGVzOiB0aGlzLmFkZGl0aW9uYWxJbmRleGVzIH0pKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMucm93U2VsZWN0KGlkKTtcclxuICAgICAgdGhpcy5vblJvd1NlbGVjdC5uZXh0KG5ldyBSb3dDbGlja0V2ZW50KHsgaW5kZXg6IGluZGV4LCBpZDogaWQsIGFkZGl0aW9uYWxJbmRleGVzOiB0aGlzLmFkZGl0aW9uYWxJbmRleGVzIH0pKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGlzUm93U2VsZWN0ZWQoaWQ6IG51bWJlcil7XHJcbiAgICBpZiAodGhpcy5oYXNMYXp5TG9hZCl7XHJcbiAgICAgIHJldHVybiB0aGlzLmZha2VTZWxlY3RlZEl0ZW1zLmZpbmQoeCA9PiB4ID09PSBpZCkgIT0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnNlbGVjdGVkSXRlbUlkcy5maW5kKHggPT4geCA9PT0gaWQpICE9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJvd1NlbGVjdChpZDogbnVtYmVyKXtcclxuICAgIGlmICh0aGlzLmlzQWxsU2VsZWN0ZWQgPT0gZmFsc2UgfHwgdGhpcy5jdXJyZW50UGFnZVNlbGVjdGVkSXRlbXNGcm9tRGIuaW5jbHVkZXMoaWQpID09IGZhbHNlKSB7XHJcbiAgICAgIHRoaXMubmV3bHlTZWxlY3RlZEl0ZW1zLnB1c2goaWQpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmhhc0xhenlMb2FkKXtcclxuICAgICAgdGhpcy5mYWtlU2VsZWN0ZWRJdGVtcy5wdXNoKGlkKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbUlkcy5wdXNoKGlkKTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgdGhpcy5yb3dzU2VsZWN0ZWROdW1iZXIrKztcclxuXHJcbiAgICBjb25zdCBpbmRleCA9IHRoaXMudW5zZWxlY3RlZEl0ZW1zLmluZGV4T2YoaWQpO1xyXG4gICAgaWYgKGluZGV4ICE9PSAtMSkge1xyXG4gICAgICB0aGlzLnVuc2VsZWN0ZWRJdGVtcy5zcGxpY2UoaW5kZXgsIDEpOyAvLyBGVDogU3BsaWNlIGlzIG11dGF0aW5nIHRoZSBhcnJheVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc2V0RmFrZUlzQWxsU2VsZWN0ZWQoKTtcclxuICB9XHJcbiAgXHJcbiAgcm93VW5zZWxlY3QoaWQ6IG51bWJlcikge1xyXG4gICAgaWYgKHRoaXMuaXNBbGxTZWxlY3RlZCA9PSB0cnVlIHx8IHRoaXMuY3VycmVudFBhZ2VTZWxlY3RlZEl0ZW1zRnJvbURiLmluY2x1ZGVzKGlkKSA9PSB0cnVlKSB7XHJcbiAgICAgIHRoaXMudW5zZWxlY3RlZEl0ZW1zLnB1c2goaWQpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMucm93c1NlbGVjdGVkTnVtYmVyLS07XHJcblxyXG4gICAgY29uc3QgaW5kZXggPSB0aGlzLm5ld2x5U2VsZWN0ZWRJdGVtcy5pbmRleE9mKGlkKTtcclxuICAgIGNvbnN0IGZha2VJbmRleCA9IHRoaXMuZmFrZVNlbGVjdGVkSXRlbXMuaW5kZXhPZihpZCk7XHJcbiAgICBjb25zdCBub25MYXp5TG9hZEluZGV4ID0gdGhpcy5zZWxlY3RlZEl0ZW1JZHMuaW5kZXhPZihpZCk7XHJcblxyXG4gICAgaWYgKGluZGV4ICE9PSAtMSkge1xyXG4gICAgICB0aGlzLm5ld2x5U2VsZWN0ZWRJdGVtcy5zcGxpY2UoaW5kZXgsIDEpOyAvLyBGVDogU3BsaWNlIGlzIG11dGF0aW5nIHRoZSBhcnJheVxyXG4gICAgfVxyXG4gICAgaWYgKGZha2VJbmRleCAhPT0gLTEpIHtcclxuICAgICAgdGhpcy5mYWtlU2VsZWN0ZWRJdGVtcy5zcGxpY2UoZmFrZUluZGV4LCAxKTsgLy8gRlQ6IFNwbGljZSBpcyBtdXRhdGluZyB0aGUgYXJyYXlcclxuICAgIH1cclxuICAgIGlmIChub25MYXp5TG9hZEluZGV4ICE9PSAtMSkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbUlkcy5zcGxpY2Uobm9uTGF6eUxvYWRJbmRleCwgMSk7IC8vIEZUOiBTcGxpY2UgaXMgbXV0YXRpbmcgdGhlIGFycmF5XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5zZXRGYWtlSXNBbGxTZWxlY3RlZCgpO1xyXG4gIH1cclxuICAvLyNlbmRyZWdpb25cclxuXHJcbiAgLy8jcmVnaW9uIENsaWVudCBzaWRlIHRhYmxlXHJcblxyXG4gIC8vIEZUOiBDYW4gZG8gaXQgd2l0aCBJZCBhbHNvLCBiZWNhdXNlIHdlIGFyZSBuZXZlciBhZGRpbmcgdGhlIG5ldyByZWNvcmQgaW4gdGhlIHRhYmxlIGF0IHRoZSBzYW1lIHBhZ2UuXHJcbiAgZ2V0Rm9ybUFycmF5Q29udHJvbEJ5SW5kZXgoZm9ybUNvbnRyb2xOYW1lOiBzdHJpbmcsIGluZGV4OiBudW1iZXIpOiBTcGlkZXJseUZvcm1Db250cm9se1xyXG4gICAgaWYgKHRoaXMuZ2V0Rm9ybUNvbnRyb2wpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZ2V0Rm9ybUNvbnRyb2woZm9ybUNvbnRyb2xOYW1lLCBpbmRleCwgdGhpcy5hZGRpdGlvbmFsSW5kZXhlcyk7XHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vI2VuZHJlZ2lvblxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQWN0aW9uIHtcclxuICBuYW1lPzogc3RyaW5nO1xyXG4gIGZpZWxkPzogc3RyaW5nO1xyXG4gIGljb24/OiBzdHJpbmc7XHJcbiAgc3R5bGU/OiBzdHJpbmc7XHJcbiAgb25DbGljaz86IChpZDogbnVtYmVyKSA9PiB2b2lkO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHtcclxuICAgICAgbmFtZSxcclxuICAgICAgZmllbGQsXHJcbiAgICAgIGljb24sXHJcbiAgICAgIHN0eWxlLFxyXG4gICAgICBvbkNsaWNrLFxyXG4gICAgfTp7XHJcbiAgICAgIG5hbWU/OiBzdHJpbmc7XHJcbiAgICAgIGZpZWxkPzogc3RyaW5nO1xyXG4gICAgICBpY29uPzogc3RyaW5nO1xyXG4gICAgICBzdHlsZT86IHN0cmluZztcclxuICAgICAgb25DbGljaz86ICgpID0+IHZvaWQ7XHJcbiAgICB9ID0ge31cclxuICAgICkge1xyXG4gICAgICB0aGlzLm5hbWUgPSBuYW1lO1xyXG4gICAgICB0aGlzLmZpZWxkID0gZmllbGQ7XHJcbiAgICAgIHRoaXMuaWNvbiA9IGljb247XHJcbiAgICAgIHRoaXMuc3R5bGUgPSBzdHlsZTtcclxuICAgICAgdGhpcy5vbkNsaWNrID0gb25DbGljaztcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBDb2x1bW48VCA9IGFueT4ge1xyXG4gIG5hbWU6IHN0cmluZztcclxuICBmaWVsZD86IHN0cmluZyAmIGtleW9mIFQ7XHJcbiAgZmlsdGVyRmllbGQ/OiBzdHJpbmcgJiBrZXlvZiBUOyAvLyBGVDogTWFkZSBzcGVjaWZpY2FseSBmb3IgbXVsdGlhdXRvY29tcGxldGUsIG1heWJlIGZvciBzb21ldGhpbmcgbW9yZSBpbiB0aGUgZnV0dXJlXHJcbiAgZmlsdGVyVHlwZT86ICd0ZXh0JyB8ICdkYXRlJyB8ICdtdWx0aXNlbGVjdCcgfCAnYm9vbGVhbicgfCAnbnVtZXJpYyc7XHJcbiAgZmlsdGVyUGxhY2Vob2xkZXI/OiBzdHJpbmc7XHJcbiAgc2hvd01hdGNoTW9kZXM/OiBib29sZWFuO1xyXG4gIHNob3dBZGRCdXR0b24/OiBib29sZWFuO1xyXG4gIGRyb3Bkb3duT3JNdWx0aXNlbGVjdFZhbHVlcz86IFByaW1lbmdPcHRpb25bXTtcclxuICBhY3Rpb25zPzogQWN0aW9uW107XHJcbiAgZWRpdGFibGU/OiBib29sZWFuO1xyXG4gIHNob3dUaW1lPzogYm9vbGVhbjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICB7XHJcbiAgICAgIG5hbWUsXHJcbiAgICAgIGZpZWxkLFxyXG4gICAgICBmaWx0ZXJGaWVsZCxcclxuICAgICAgZmlsdGVyVHlwZSxcclxuICAgICAgZmlsdGVyUGxhY2Vob2xkZXIsXHJcbiAgICAgIHNob3dNYXRjaE1vZGVzLFxyXG4gICAgICBzaG93QWRkQnV0dG9uLFxyXG4gICAgICBkcm9wZG93bk9yTXVsdGlzZWxlY3RWYWx1ZXMsXHJcbiAgICAgIGFjdGlvbnMsXHJcbiAgICAgIGVkaXRhYmxlLFxyXG4gICAgICBzaG93VGltZSxcclxuICAgIH06e1xyXG4gICAgICBuYW1lPzogc3RyaW5nO1xyXG4gICAgICBmaWVsZD86IHN0cmluZyAmIGtleW9mIFQ7XHJcbiAgICAgIGZpbHRlckZpZWxkPzogc3RyaW5nICYga2V5b2YgVDsgLy8gRlQ6IE1hZGUgc3BlY2lmaWNhbHkgZm9yIG11bHRpYXV0b2NvbXBsZXRlLCBtYXliZSBmb3Igc29tZXRoaW5nIG1vcmUgaW4gdGhlIGZ1dHVyZTtcclxuICAgICAgZmlsdGVyVHlwZT86ICd0ZXh0JyB8ICdkYXRlJyB8ICdtdWx0aXNlbGVjdCcgfCAnYm9vbGVhbicgfCAnbnVtZXJpYyc7XHJcbiAgICAgIGZpbHRlclBsYWNlaG9sZGVyPzogc3RyaW5nO1xyXG4gICAgICBzaG93TWF0Y2hNb2Rlcz86IGJvb2xlYW47XHJcbiAgICAgIHNob3dBZGRCdXR0b24/OiBib29sZWFuO1xyXG4gICAgICBkcm9wZG93bk9yTXVsdGlzZWxlY3RWYWx1ZXM/OiBQcmltZW5nT3B0aW9uW107XHJcbiAgICAgIGFjdGlvbnM/OiBBY3Rpb25bXTtcclxuICAgICAgZWRpdGFibGU/OiBib29sZWFuO1xyXG4gICAgICBzaG93VGltZT86IGJvb2xlYW47XHJcbiAgICB9ID0ge31cclxuICAgICkge1xyXG4gICAgICB0aGlzLm5hbWUgPSBuYW1lO1xyXG4gICAgICB0aGlzLmZpZWxkID0gZmllbGQ7XHJcbiAgICAgIHRoaXMuZmlsdGVyRmllbGQgPSBmaWx0ZXJGaWVsZDtcclxuICAgICAgdGhpcy5maWx0ZXJUeXBlID0gZmlsdGVyVHlwZTtcclxuICAgICAgdGhpcy5maWx0ZXJQbGFjZWhvbGRlciA9IGZpbHRlclBsYWNlaG9sZGVyO1xyXG4gICAgICB0aGlzLnNob3dNYXRjaE1vZGVzID0gc2hvd01hdGNoTW9kZXM7XHJcbiAgICAgIHRoaXMuc2hvd0FkZEJ1dHRvbiA9IHNob3dBZGRCdXR0b247XHJcbiAgICAgIHRoaXMuZHJvcGRvd25Pck11bHRpc2VsZWN0VmFsdWVzID0gZHJvcGRvd25Pck11bHRpc2VsZWN0VmFsdWVzO1xyXG4gICAgICB0aGlzLmFjdGlvbnMgPSBhY3Rpb25zO1xyXG4gICAgICB0aGlzLmVkaXRhYmxlID0gZWRpdGFibGU7XHJcbiAgICAgIHRoaXMuc2hvd1RpbWUgPSBzaG93VGltZTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBSb3dDbGlja0V2ZW50IHtcclxuICBpbmRleD86IG51bWJlcjtcclxuICBpZD86IG51bWJlcjtcclxuICBhZGRpdGlvbmFsSW5kZXhlcz86IGFueTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICB7XHJcbiAgICAgIGluZGV4LCBcclxuICAgICAgaWQsIFxyXG4gICAgICBhZGRpdGlvbmFsSW5kZXhlc1xyXG4gICAgfTp7XHJcbiAgICAgIGluZGV4PzogbnVtYmVyOyBcclxuICAgICAgaWQ/OiBudW1iZXI7IFxyXG4gICAgICBhZGRpdGlvbmFsSW5kZXhlcz86IGFueTtcclxuICAgIH0gPSB7fVxyXG4gICAgKSB7XHJcbiAgICB0aGlzLmluZGV4ID0gaW5kZXg7XHJcbiAgICB0aGlzLmlkID0gaWQ7XHJcbiAgICB0aGlzLmFkZGl0aW9uYWxJbmRleGVzID0gYWRkaXRpb25hbEluZGV4ZXM7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQWxsQ2xpY2tFdmVudCB7XHJcbiAgY2hlY2tlZD86IGJvb2xlYW47XHJcbiAgYWRkaXRpb25hbEluZGV4ZXM/OiBhbnk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAge1xyXG4gICAgICBjaGVja2VkLCBcclxuICAgICAgYWRkaXRpb25hbEluZGV4ZXNcclxuICAgIH06e1xyXG4gICAgICBjaGVja2VkPzogYm9vbGVhbjsgXHJcbiAgICAgIGFkZGl0aW9uYWxJbmRleGVzPzogYW55O1xyXG4gICAgfSA9IHt9XHJcbiAgICApIHtcclxuICAgIHRoaXMuY2hlY2tlZCA9IGNoZWNrZWQ7XHJcbiAgICB0aGlzLmFkZGl0aW9uYWxJbmRleGVzID0gYWRkaXRpb25hbEluZGV4ZXM7XHJcbiAgfVxyXG59IiwiPG5nLWNvbnRhaW5lciAqdHJhbnNsb2NvPVwibGV0IHRcIj5cclxuICA8ZGl2IFtjbGFzc109XCJzaG93Q2FyZFdyYXBwZXIgPyAnY2FyZCByZXNwb25zaXZlLWNhcmQtcGFkZGluZyBvdmVyZmxvdy1hdXRvJyA6ICcnXCI+XHJcbiAgICA8cC10YWJsZSAjZHQgW3ZhbHVlXT1cIml0ZW1zXCIgW3Jvd3NdPVwicm93c1wiIFtyb3dIb3Zlcl09XCJ0cnVlXCIgc3R5bGVDbGFzcz1cInAtZGF0YXRhYmxlLWdyaWRsaW5lc1wiIFtwYWdpbmF0b3JdPVwic2hvd1BhZ2luYXRvclwiIHJlc3BvbnNpdmVMYXlvdXQ9XCJzY3JvbGxcIiBbbGF6eV09XCJoYXNMYXp5TG9hZFwiXHJcbiAgICAob25MYXp5TG9hZCk9XCJsYXp5TG9hZCgkZXZlbnQpXCIgW3RvdGFsUmVjb3Jkc109XCJ0b3RhbFJlY29yZHNcIiBjbGFzcz1cInNwaWRlcmx5LXRhYmxlXCIgW2xvYWRpbmddPVwiKGl0ZW1zID09PSB1bmRlZmluZWQgfHwgbG9hZGluZyA9PT0gdHJ1ZSlcIiBbc2VsZWN0aW9uTW9kZV09XCJzZWxlY3Rpb25Nb2RlXCIgZGF0YUtleT1cImlkXCIgXHJcbiAgICAob25GaWx0ZXIpPVwiZmlsdGVyKCRldmVudClcIj4gXHJcbiAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJjYXB0aW9uXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLWhlYWRlciBvdmVyZmxvdy1hdXRvXCI+XHJcbiAgICAgICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgZ2FwOiA4cHg7XCI+XHJcbiAgICAgICAgICAgIDxpIGNsYXNzPVwie3t0YWJsZUljb259fSB0ZXh0LTJ4bCBwcmltYXJ5LWNvbG9yXCI+PC9pPlxyXG4gICAgICAgICAgICA8aDUgc3R5bGU9XCJtYXJnaW46IDBweDtcIj57e3RhYmxlVGl0bGV9fTwvaDU+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBnYXA6IDhweDtcIj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBwQnV0dG9uIFtsYWJlbF09XCJ0KCdDbGVhckZpbHRlcnMnKVwiIGNsYXNzPVwicC1idXR0b24tb3V0bGluZWQgcmVtb3ZlLWJ1dHRvbi1ib3JkZXItZm9jdXNcIiBzdHlsZT1cImZsZXg6IG5vbmU7XCIgaWNvbj1cInBpIHBpLWZpbHRlci1zbGFzaFwiIChjbGljayk9XCJjbGVhcihkdClcIj48L2J1dHRvbj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBwQnV0dG9uICpuZ0lmPVwic2hvd0V4cG9ydFRvRXhjZWxCdXR0b25cIiBbbGFiZWxdPVwidCgnRXhwb3J0VG9FeGNlbCcpXCIgY2xhc3M9XCJwLWJ1dHRvbi1vdXRsaW5lZCByZW1vdmUtYnV0dG9uLWJvcmRlci1mb2N1c1wiIHN0eWxlPVwiZmxleDogbm9uZTtcIiBpY29uPVwicGkgcGktZG93bmxvYWRcIiAoY2xpY2spPVwiZXhwb3J0TGlzdFRvRXhjZWwoKVwiPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8YnV0dG9uIHBCdXR0b24gKm5nSWY9XCJzaG93UmVsb2FkVGFibGVCdXR0b25cIiBbbGFiZWxdPVwidCgnUmVsb2FkJylcIiBjbGFzcz1cInAtYnV0dG9uLW91dGxpbmVkIHJlbW92ZS1idXR0b24tYm9yZGVyLWZvY3VzXCIgc3R5bGU9XCJmbGV4OiBub25lO1wiIGljb249XCJwaSBwaS1yZWZyZXNoXCIgKGNsaWNrKT1cInJlbG9hZCgpXCI+PC9idXR0b24+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRlclwiPlxyXG4gICAgICAgIDx0cj5cclxuICAgICAgICAgIDx0aCBzdHlsZT1cIndpZHRoOiAwcmVtO1wiICpuZ0lmPVwic2VsZWN0aW9uTW9kZSA9PSAnbXVsdGlwbGUnXCI+XHJcbiAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBnYXA6IDhweDtcIj5cclxuICAgICAgICAgICAgICA8cC1jaGVja2JveCBbZGlzYWJsZWRdPVwicmVhZG9ubHlcIiAob25DaGFuZ2UpPVwic2VsZWN0QWxsKCRldmVudC5jaGVja2VkKVwiIFsobmdNb2RlbCldPVwiZmFrZUlzQWxsU2VsZWN0ZWRcIiBbYmluYXJ5XT1cInRydWVcIj48L3AtY2hlY2tib3g+ICh7e3Jvd3NTZWxlY3RlZE51bWJlcn19KVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjb2wgb2YgY29sczsgdHJhY2tCeTogY29sVHJhY2tCeUZuXCI+XHJcbiAgICAgICAgICAgIDx0aCBbc3R5bGVdPVwiZ2V0Q29sSGVhZGVyV2lkdGgoY29sLmZpbHRlclR5cGUpXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgYWxpZ24taXRlbXM6IGNlbnRlcjtcIj5cclxuICAgICAgICAgICAgICAgIHt7Y29sLm5hbWV9fVxyXG4gICAgICAgICAgICAgICAgPCEtLSA8cC1zb3J0SWNvbiBmaWVsZD1cIlwiPjwvcC1zb3J0SWNvbj4gLS0+XHJcbiAgICAgICAgICAgICAgICA8IS0tIDxwLWNvbHVtbkZpbHRlciB0eXBlPVwiZGF0ZVwiIGZpZWxkPVwiZGF0ZVwiIGRpc3BsYXk9XCJtZW51XCI+PC9wLWNvbHVtbkZpbHRlcj4gLS0+XHJcbiAgICAgICAgICAgICAgICA8cC1jb2x1bW5GaWx0ZXIgKm5nSWY9XCJjb2wuZmlsdGVyVHlwZSAhPSBudWxsXCIgW3R5cGVdPVwiY29sLmZpbHRlclR5cGVcIiBbZmllbGRdPVwiY29sLmZpbHRlckZpZWxkID8/IGNvbC5maWVsZFwiIGRpc3BsYXk9XCJtZW51XCIgW3BsYWNlaG9sZGVyXT1cImNvbC5maWx0ZXJQbGFjZWhvbGRlclwiIFxyXG4gICAgICAgICAgICAgICAgW3Nob3dPcGVyYXRvcl09XCJmYWxzZVwiIFtzaG93TWF0Y2hNb2Rlc109XCJjb2wuc2hvd01hdGNoTW9kZXNcIiBbc2hvd0FkZEJ1dHRvbl09XCJjb2wuc2hvd0FkZEJ1dHRvblwiIFttYXRjaE1vZGVPcHRpb25zXT1cImdldENvbE1hdGNoTW9kZU9wdGlvbnMoY29sLmZpbHRlclR5cGUpXCJcclxuICAgICAgICAgICAgICAgIFttYXRjaE1vZGVdPVwiZ2V0Q29sTWF0Y2hNb2RlKGNvbC5maWx0ZXJUeXBlKVwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNEcm9wT3JNdWx0aShjb2wuZmlsdGVyVHlwZSlcIj5cclxuICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImZpbHRlclwiIGxldC12YWx1ZSBsZXQtZmlsdGVyPVwiZmlsdGVyQ2FsbGJhY2tcIj5cclxuICAgICAgICAgICAgICAgICAgICA8cC1tdWx0aVNlbGVjdCBbbmdNb2RlbF09XCJ2YWx1ZVwiIFtvcHRpb25zXT1cImNvbC5kcm9wZG93bk9yTXVsdGlzZWxlY3RWYWx1ZXNcIiBbcGxhY2Vob2xkZXJdPVwidCgnQWxsJylcIiAob25DaGFuZ2UpPVwiZmlsdGVyKCRldmVudC52YWx1ZSlcIiBvcHRpb25MYWJlbD1cImxhYmVsXCIgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiIFtzdHlsZV09XCJ7J3dpZHRoJzonMjQwcHgnfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1pdGVtIHBUZW1wbGF0ZT1cIml0ZW1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtbXVsdGlzZWxlY3QtcmVwcmVzZW50YXRpdmUtb3B0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtbC0yXCI+e3sgaXRlbS5sYWJlbCB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvcC1tdWx0aVNlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgIDwvcC1jb2x1bW5GaWx0ZXI+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L3RyPlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiYm9keVwiIGxldC1yb3dEYXRhIGxldC1pbmRleD1cInJvd0luZGV4XCIgbGV0LWVkaXRpbmc9XCJlZGl0aW5nXCI+XHJcbiAgICAgICAgPHRyPlxyXG4gICAgICAgICAgPHRkICpuZ0lmPVwic2VsZWN0aW9uTW9kZSA9PSAnbXVsdGlwbGUnXCI+XHJcbiAgICAgICAgICAgICAgPHAtY2hlY2tib3ggW2Rpc2FibGVkXT1cInJlYWRvbmx5XCIgKG9uQ2hhbmdlKT1cInNlbGVjdFJvdyhyb3dEYXRhLmlkLCByb3dEYXRhLmluZGV4KVwiIFtuZ01vZGVsXT1cImlzUm93U2VsZWN0ZWQocm93RGF0YS5pZClcIiBbYmluYXJ5XT1cInRydWVcIj48L3AtY2hlY2tib3g+XHJcbiAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sIG9mIGNvbHM7IHRyYWNrQnk6IGNvbFRyYWNrQnlGblwiPlxyXG4gICAgICAgICAgICA8dGQgW3BUb29sdGlwXT1cImdldFJvd0RhdGEocm93RGF0YSwgY29sKVwiIFtzdHlsZV09XCJnZXRTdHlsZUZvckJvZHlDb2x1bW4oY29sKVwiICpuZ0lmPVwiIWNvbC5lZGl0YWJsZVwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBhbGlnbi1pdGVtczogY2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgZ2FwOiAxOHB4O1wiPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIGNvbC5hY3Rpb25zOyB0cmFja0J5OiBhY3Rpb25UcmFja0J5Rm5cIiA+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIFtwVG9vbHRpcF09XCJhY3Rpb24ubmFtZVwiIFtjbGFzc109XCJnZXRDbGFzc0ZvckFjdGlvbihhY3Rpb24pXCIgKGNsaWNrKT1cImdldE1ldGhvZEZvckFjdGlvbihhY3Rpb24sIHJvd0RhdGEpXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAge3tnZXRSb3dEYXRhKHJvd0RhdGEsIGNvbCl9fVxyXG4gICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICA8dGQgKm5nSWY9XCJjb2wuZWRpdGFibGVcIj5cclxuICAgICAgICAgICAgICA8c3BpZGVybHktbnVtYmVyIFtjb250cm9sXT1cImdldEZvcm1BcnJheUNvbnRyb2xCeUluZGV4KGNvbC5maWVsZCwgcm93RGF0YS5pbmRleClcIiBbc2hvd0xhYmVsXT1cImZhbHNlXCI+PC9zcGlkZXJseS1udW1iZXI+XHJcbiAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L3RyPlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiZW1wdHltZXNzYWdlXCI+XHJcbiAgICAgICAgPHRyPlxyXG4gICAgICAgICAgPHRkIFthdHRyLmNvbHNwYW5dPVwiY29scz8ubGVuZ3RoICsgKHNlbGVjdGlvbk1vZGUgPT09ICdtdWx0aXBsZScgPyAxIDogMClcIj57e3QoJ05vUmVjb3Jkc0ZvdW5kJyl9fTwvdGQ+XHJcbiAgICAgICAgPC90cj5cclxuICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImxvYWRpbmdib2R5XCI+XHJcbiAgICAgICAgPHRyPlxyXG4gICAgICAgICAgPHRkIFthdHRyLmNvbHNwYW5dPVwiY29scz8ubGVuZ3RoICsgKHNlbGVjdGlvbk1vZGUgPT09ICdtdWx0aXBsZScgPyAxIDogMClcIj57e3QoJ0xvYWRpbmcnKX19Li4uPC90ZD5cclxuICAgICAgICA8L3RyPlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwicGFnaW5hdG9ybGVmdFwiPlxyXG4gICAgICAgIHt7dCgnVG90YWxSZWNvcmRzJyl9fToge3t0b3RhbFJlY29yZHN9fVxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwicGFnaW5hdG9ycmlnaHRcIj5cclxuICAgICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDsganVzdGlmeS1jb250ZW50OiBlbmQ7IGdhcDogMTBweDtcIj5cclxuICAgICAgICAgIDxzcGlkZXJseS1idXR0b24gKm5nSWY9XCJzaG93QWRkQnV0dG9uXCIgW2xhYmVsXT1cInQoJ0FkZE5ldycpXCIgaWNvbj1cInBpIHBpLXBsdXNcIiAob25DbGljayk9XCJuYXZpZ2F0ZVRvRGV0YWlscygwKVwiPjwvc3BpZGVybHktYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC9wLXRhYmxlPlxyXG4gIDwvZGl2PlxyXG48L25nLWNvbnRhaW5lcj4iXX0=
|
|
@@ -10,10 +10,10 @@ export class SpiderlyFormControl extends FormControl {
|
|
|
10
10
|
return super.getRawValue();
|
|
11
11
|
}
|
|
12
12
|
get validator() {
|
|
13
|
-
return this.
|
|
13
|
+
return this._spiderlyValidator;
|
|
14
14
|
}
|
|
15
15
|
set validator(validator) {
|
|
16
|
-
this.
|
|
16
|
+
this._spiderlyValidator = validator;
|
|
17
17
|
this.setValidators(validator);
|
|
18
18
|
}
|
|
19
19
|
}
|
|
@@ -33,4 +33,4 @@ export class SpiderlyFormArray extends FormArray {
|
|
|
33
33
|
this.controlNamesFromHtml = [];
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BpZGVybHktZm9ybS1jb250cm9sLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3BpZGVybHkvc3JjL2xpYi9jb21wb25lbnRzL3NwaWRlcmx5LWZvcm0tY29udHJvbC9zcGlkZXJseS1mb3JtLWNvbnRyb2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQXdDLFNBQVMsRUFBZSxNQUFNLGdCQUFnQixDQUFDO0FBUXRILGlHQUFpRztBQUNqRyxNQUFNLE9BQU8sbUJBQTZCLFNBQVEsV0FBYztJQU01RCxZQUFZLEtBQVUsRUFBRSxPQUF5QixJQUFJLEVBQUUsV0FBaUIsS0FBSztRQUN6RSxJQUFJLEdBQUcsSUFBSSxJQUFJLEVBQUMsUUFBUSxFQUFFLE1BQU0sRUFBQyxDQUFDO1FBQ2xDLEtBQUssQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDbkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDNUIsQ0FBQztJQUVPLFdBQVc7UUFDaEIsT0FBTyxLQUFLLENBQUMsV0FBVyxFQUFPLENBQUM7SUFDcEMsQ0FBQztJQUVELElBQW9CLFNBQVM7UUFDekIsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUM7SUFDbkMsQ0FBQztJQUVELElBQW9CLFNBQVMsQ0FBQyxTQUFxQztRQUMvRCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsU0FBUyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDbEMsQ0FBQztDQUNKO0FBRUQsTUFBTSxPQUFPLGlCQUFnQyxTQUFRLFNBQVM7SUFHMUQsWUFBWSxRQUFpRTtRQUN6RSxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFVYixpQkFBWSxHQUFzQixHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUM7UUFDN0MseUJBQW9CLEdBQWMsRUFBRSxDQUFDO0lBVjVDLENBQUM7SUFFUSxXQUFXO1FBQ2hCLE9BQU8sS0FBSyxDQUFDLFdBQVcsRUFBWSxDQUFDO0lBQ3pDLENBQUM7Q0FPSjtBQUVELE1BQU0sT0FBTyxpQkFBZ0MsU0FBUSxTQUFTO0lBQTlEOztRQUtXLHlCQUFvQixHQUFjLEVBQUUsQ0FBQztJQUNoRCxDQUFDO0NBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb3JtQXJyYXksIEZvcm1Db250cm9sLCBGb3JtQ29udHJvbE9wdGlvbnMsIEZvcm1Db250cm9sU3RhdGUsIEZvcm1Hcm91cCwgVmFsaWRhdG9yRm4gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQmFzZUVudGl0eSB9IGZyb20gJy4uLy4uL2VudGl0aWVzL2Jhc2UtZW50aXR5JztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU3BpZGVybHlWYWxpZGF0b3JGbiBleHRlbmRzIFZhbGlkYXRvckZuIHtcclxuICAgIGhhc05vdEVtcHR5UnVsZT86IGJvb2xlYW47XHJcbn1cclxuXHJcbi8vIEZUOiBJdCdzIG1hZGUgbGlrZSBnZW5lcmljIHR5cGUgYmVjYXVzZSBvZiA8bnVtYmVyPiwgPHN0cmluZz4gZXRjLiBub3QgdG8gcHV0IGNsYXNzIGxpa2UgVXNlci5cclxuZXhwb3J0IGNsYXNzIFNwaWRlcmx5Rm9ybUNvbnRyb2w8VCA9IGFueT4gZXh0ZW5kcyBGb3JtQ29udHJvbDxUPiB7XHJcbiAgICBwdWJsaWMgbGFiZWw6IHN0cmluZztcclxuICAgIHB1YmxpYyBsYWJlbEZvckRpc3BsYXk6IHN0cmluZztcclxuICAgIHB1YmxpYyByZXF1aXJlZDogYm9vbGVhbjtcclxuICAgIHByaXZhdGUgX3NwaWRlcmx5VmFsaWRhdG9yOiBTcGlkZXJseVZhbGlkYXRvckZuIHwgbnVsbDtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcih2YWx1ZTogYW55LCBvcHRzOiBGb3JtQ29udHJvbE9wdGlvbnM9bnVsbCwgcmVxdWlyZWQ6Ym9vbGVhbj1mYWxzZSkge1xyXG4gICAgICAgIG9wdHMgPSBvcHRzID8/IHt1cGRhdGVPbjogJ2JsdXInfTtcclxuICAgICAgICBzdXBlcih2YWx1ZSwgb3B0cyk7XHJcbiAgICAgICAgdGhpcy5yZXF1aXJlZCA9IHJlcXVpcmVkO1xyXG4gICAgIH1cclxuXHJcbiAgICBvdmVycmlkZSBnZXRSYXdWYWx1ZSgpOiBUIHsgLy8gRlQ6IERvaW5nIHRoaXMgYmVjYXVzZSAudmFsdWUgZ2V0cyBvbmx5IG5vdCBkaXNhYmxlZCB2YWx1ZXNcclxuICAgICAgICByZXR1cm4gc3VwZXIuZ2V0UmF3VmFsdWUoKSBhcyBUO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBvdmVycmlkZSBnZXQgdmFsaWRhdG9yKCk6IFNwaWRlcmx5VmFsaWRhdG9yRm4gfCBudWxsIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fc3BpZGVybHlWYWxpZGF0b3I7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG92ZXJyaWRlIHNldCB2YWxpZGF0b3IodmFsaWRhdG9yOiBTcGlkZXJseVZhbGlkYXRvckZuIHwgbnVsbCkge1xyXG4gICAgICAgIHRoaXMuX3NwaWRlcmx5VmFsaWRhdG9yID0gdmFsaWRhdG9yO1xyXG4gICAgICAgIHRoaXMuc2V0VmFsaWRhdG9ycyh2YWxpZGF0b3IpOyBcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFNwaWRlcmx5Rm9ybUdyb3VwPFRWYWx1ZSA9IGFueT4gZXh0ZW5kcyBGb3JtR3JvdXAge1xyXG4gICAgZGVjbGFyZSBjb250cm9sczogeyBbUCBpbiBrZXlvZiBUVmFsdWVdOiBTcGlkZXJseUZvcm1Db250cm9sPFRWYWx1ZVtQXT4gfTtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihjb250cm9sczogeyBbUCBpbiBrZXlvZiBUVmFsdWVdOiBTcGlkZXJseUZvcm1Db250cm9sPFRWYWx1ZVtQXT4gfSkge1xyXG4gICAgICAgIHN1cGVyKGNvbnRyb2xzKTtcclxuICAgIH1cclxuXHJcbiAgICBvdmVycmlkZSBnZXRSYXdWYWx1ZSgpOiBUVmFsdWUgeyAvLyBGVDogRG9pbmcgdGhpcyBiZWNhdXNlIC52YWx1ZSBnZXRzIG9ubHkgbm90IGRpc2FibGVkIHZhbHVlc1xyXG4gICAgICAgIHJldHVybiBzdXBlci5nZXRSYXdWYWx1ZSgpIGFzIFRWYWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgbmFtZT86IHN0cmluZzsgLy8gRlQ6IFVzaW5nIGZvciBuZXN0ZWQgZm9ybSBncm91cHNcclxuICAgIHB1YmxpYyBtYWluRFRPTmFtZT86IHN0cmluZztcclxuICAgIHB1YmxpYyBzYXZlT2JzZXJ2YWJsZU1ldGhvZD86IChzYXZlQm9keTogYW55KSA9PiBPYnNlcnZhYmxlPGFueT47XHJcbiAgICBwdWJsaWMgaW5pdFNhdmVCb2R5PzogKCkgPT4gQmFzZUVudGl0eSA9ICgpID0+IG51bGw7XHJcbiAgICBwdWJsaWMgY29udHJvbE5hbWVzRnJvbUh0bWw/OiBzdHJpbmdbXSA9IFtdO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgU3BpZGVybHlGb3JtQXJyYXk8VFZhbHVlID0gYW55PiBleHRlbmRzIEZvcm1BcnJheSB7XHJcbiAgICBvdmVycmlkZSB2YWx1ZTogVFZhbHVlW107IC8vIEZUOiBUaGVyZSBpcyBubyBnZXRSYXdWYWx1ZSBpbiBGb3JtQXJyYXlcclxuICAgIHB1YmxpYyByZXF1aXJlZDogYm9vbGVhbjtcclxuICAgIHB1YmxpYyBtb2RlbENvbnN0cnVjdG9yOiBUVmFsdWU7XHJcbiAgICBwdWJsaWMgdHJhbnNsYXRpb25LZXk6IHN0cmluZztcclxuICAgIHB1YmxpYyBjb250cm9sTmFtZXNGcm9tSHRtbD86IHN0cmluZ1tdID0gW107XHJcbn0iXX0=
|
package/fesm2022/spiderly.mjs
CHANGED
|
@@ -1267,10 +1267,10 @@ class SpiderlyFormControl extends FormControl {
|
|
|
1267
1267
|
return super.getRawValue();
|
|
1268
1268
|
}
|
|
1269
1269
|
get validator() {
|
|
1270
|
-
return this.
|
|
1270
|
+
return this._spiderlyValidator;
|
|
1271
1271
|
}
|
|
1272
1272
|
set validator(validator) {
|
|
1273
|
-
this.
|
|
1273
|
+
this._spiderlyValidator = validator;
|
|
1274
1274
|
this.setValidators(validator);
|
|
1275
1275
|
}
|
|
1276
1276
|
}
|
|
@@ -3682,7 +3682,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
3682
3682
|
}], ctorParameters: () => [{ type: i1$7.DynamicDialogRef }, { type: i1$7.DynamicDialogConfig }] });
|
|
3683
3683
|
|
|
3684
3684
|
class SpiderlyDataTableComponent {
|
|
3685
|
-
;
|
|
3686
3685
|
constructor(router, dialogService, route, messageService, translocoService, locale) {
|
|
3687
3686
|
this.router = router;
|
|
3688
3687
|
this.dialogService = dialogService;
|
|
@@ -4488,7 +4487,8 @@ class LayoutBaseComponent {
|
|
|
4488
4487
|
}
|
|
4489
4488
|
if (!this.profileMenuOutsideClickListener) {
|
|
4490
4489
|
this.profileMenuOutsideClickListener = this.renderer.listen('document', 'click', event => {
|
|
4491
|
-
const isOutsideClicked = !(this.appTopbar.menu.nativeElement.isSameNode(event.target) ||
|
|
4490
|
+
const isOutsideClicked = !(this.appTopbar.menu.nativeElement.isSameNode(event.target) ||
|
|
4491
|
+
this.appTopbar.menu.nativeElement.contains(event.target));
|
|
4492
4492
|
if (isOutsideClicked) {
|
|
4493
4493
|
this.hideProfileMenu();
|
|
4494
4494
|
}
|