ngx-beacon-notify 1.2.1 → 1.2.3
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/beacon/beacon.component.mjs +7 -6
- package/esm2022/lib/beacon-notify.service.mjs +8 -2
- package/esm2022/lib/types/interfaces/index.mjs +1 -1
- package/fesm2022/ngx-beacon-notify.mjs +13 -6
- package/fesm2022/ngx-beacon-notify.mjs.map +1 -1
- package/lib/beacon-notify.service.d.ts +3 -1
- package/lib/types/interfaces/index.d.ts +3 -0
- package/package.json +1 -1
|
@@ -60,7 +60,7 @@ export class BeaconNotifyComponent {
|
|
|
60
60
|
case 1:
|
|
61
61
|
// Check for callback
|
|
62
62
|
if (this.beacon?.buttons?.one?.callback)
|
|
63
|
-
this.beacon?.buttons?.one?.callback(this.beacon?.buttons?.one?.callbackArgs);
|
|
63
|
+
this.beacon?.buttons?.one?.callback(...(this.beacon?.buttons?.one?.callbackArgs || []));
|
|
64
64
|
// Check if can dismiss
|
|
65
65
|
if (this.beacon?.buttons?.one?.canDismiss)
|
|
66
66
|
this.closeBeacon(this.beaconDOM, this.beacon);
|
|
@@ -68,7 +68,7 @@ export class BeaconNotifyComponent {
|
|
|
68
68
|
case 2:
|
|
69
69
|
// Check for callback
|
|
70
70
|
if (this.beacon?.buttons?.two?.callback)
|
|
71
|
-
this.beacon?.buttons?.two?.callback(this.beacon?.buttons?.two?.callbackArgs);
|
|
71
|
+
this.beacon?.buttons?.two?.callback(...(this.beacon?.buttons?.two?.callbackArgs || []));
|
|
72
72
|
// Check if can dismiss
|
|
73
73
|
if (this.beacon?.buttons?.two?.canDismiss)
|
|
74
74
|
this.closeBeacon(this.beaconDOM, this.beacon);
|
|
@@ -107,12 +107,13 @@ export class BeaconNotifyComponent {
|
|
|
107
107
|
beacon.style.zIndex = '9003';
|
|
108
108
|
// Check if beacon should be centered
|
|
109
109
|
if (this.beacon.shine) {
|
|
110
|
+
const scale = this.beacon.shineScale && String(this.beacon.shineScale).match(/(\d+)\.(\d+)/) ? this.beacon.shineScale : '1.5';
|
|
110
111
|
beacon.style.position = 'fixed';
|
|
111
112
|
beacon.style.right = '0';
|
|
112
113
|
beacon.style.left = '0';
|
|
113
114
|
beacon.style.bottom = '50%';
|
|
114
115
|
beacon.style.margin = 'auto';
|
|
115
|
-
beacon.style.transform = 'scale(
|
|
116
|
+
beacon.style.transform = 'scale(' + scale + ')';
|
|
116
117
|
}
|
|
117
118
|
// Create overlay
|
|
118
119
|
if (createOverlay)
|
|
@@ -131,12 +132,12 @@ export class BeaconNotifyComponent {
|
|
|
131
132
|
}
|
|
132
133
|
}
|
|
133
134
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: BeaconNotifyComponent, deps: [{ token: i1.BeaconNotifyService }, { token: i2.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });
|
|
134
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.2", type: BeaconNotifyComponent, selector: "app-beacon", inputs: { beacon: "beacon" }, ngImport: i0, template: "<div #beaconControl \n\t\t[id]=\"'bc_' + beacon.bid\"\n\t\t(mouseenter)=\"autoClose(false, beaconControl)\" \n\t\t(mouseleave)=\"autoClose(true, beaconControl)\"\n\t\t(click)=\"beacon.preventClickClose ? null : closeBeacon(beaconControl, beacon)\"\n\t\t[attr.data-beacon-static]=\"beacon.static\"\n\t\tclass=\"beacon-message-control {{ (beacon.static !== true && beacon.fixed !== true) ? beacon.animationClass : '' }} {{ beacon.replacementClass || beacon.type }} {{ beacon.styleClass }}\"\n\t\t[class.beacon-message-control-no-hover-effect]=\"beacon.noHoverEffect\">\n\t<div class=\"beacon-message-header\">\n\t\t<div>\n\t\t\t<span *ngIf=\"beacon.fontIcon\"><i [class]=\"beacon.icon\"></i></span>\n\t\t\t<span *ngIf=\"!beacon.fontIcon && beaconDefaultIconKeys.includes(beacon.icon)\" class=\"beacon-message-svg-control\">\n\t\t\t\t<app-beacon-icon-alert *ngIf=\"beacon.icon | beaconTypeResolve:'alert'\"></app-beacon-icon-alert>\n\t\t\t\t<app-beacon-icon-error *ngIf=\"beacon.icon | beaconTypeResolve:'error'\"></app-beacon-icon-error>\n\t\t\t\t<app-beacon-icon-info *ngIf=\"beacon.icon | beaconTypeResolve:'info'\"></app-beacon-icon-info>\n\t\t\t\t<app-beacon-icon-success *ngIf=\"beacon.icon | beaconTypeResolve:'success'\"></app-beacon-icon-success>\n\t\t\t\t<app-beacon-icon-warning *ngIf=\"beacon.icon | beaconTypeResolve:'warning'\"></app-beacon-icon-warning>\n\t\t\t</span>\n\t\t\t<span *ngIf=\"!beacon.fontIcon && beacon.icon && !beaconDefaultIconKeys.includes(beacon.icon)\" class=\"beacon-message-svg-control\" [innerHTML]=\"beacon.svgIcon\"></span>\n\t\t\t{{ beacon.title }}\n\t\t</div>\n\t\t<div>\n\t\t\t<div *ngIf=\"!beacon.fixed\" class=\"beacon-message-close\" (click)=\"closeBeacon(beaconControl, beacon)\">\n\t\t\t\t<svg width=\"10\" height=\"10\" viewBox=\"0 0 78 78\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t\t <rect y=\"7.07104\" width=\"10\" height=\"100\" rx=\"5\" transform=\"rotate(-45 0 7.07104)\" />\n\t\t\t <rect x=\"70.7109\" width=\"10\" height=\"100\" rx=\"5\" transform=\"rotate(45 70.7109 0)\" />\n\t\t\t\t</svg>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n\t<div class=\"beacon-message-divider\"></div>\n\t<div class=\"beacon-message-body\" [innerHTML]=\"beacon.bodyHtml\"></div>\n\t<div class=\"beacon-message-divider\" *ngIf=\"beacon.buttons?.one || beacon.buttons?.two\"></div>\n\n\t<div class=\"beacon-message-footer\" *ngIf=\"beacon.buttons && beacon.buttons?.one && beacon.buttons?.two\">\n\t\t<div><button (click)=\"beaconButtonClick($event, 1)\">{{ beacon.buttons?.one?.text }}</button></div>\n\t\t<div><button (click)=\"beaconButtonClick($event, 2)\">{{ beacon.buttons?.two?.text }}</button></div>\n\t</div>\n\n\t<div class=\"beacon-message-footer\" *ngIf=\"beacon.buttons && beacon.buttons?.one && !beacon?.buttons?.two\">\n\t\t<div [class]=\"beacon.buttons?.one?.position ? ('beacon-message-button-container-' + beacon?.buttons?.one?.position) : ''\">\n\t\t\t<button (click)=\"beaconButtonClick($event, 1)\">{{ beacon.buttons?.one?.text }}</button>\n\t\t</div>\n\t</div>\n\n</div>", styles: [".beacon-message-control{width:270px;height:auto;background:#eee;margin:6px;border-radius:4px;position:relative;z-index:4000;cursor:pointer}.beacon-message-control:hover{box-shadow:0 0 20px #4443}.beacon-message-control-no-hover-effect{box-shadow:none!important}.beacon-message-control-animate{-webkit-animation:beacon-fade-out .5s 7s linear forwards;animation:beacon-fade-out .5s 7s linear forwards}.beacon-message-header,.beacon-message-body,.beacon-message-footer{padding:8px;font-size:
|
|
135
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.2", type: BeaconNotifyComponent, selector: "app-beacon", inputs: { beacon: "beacon" }, ngImport: i0, template: "<div #beaconControl \n\t\t[id]=\"'bc_' + beacon.bid\"\n\t\t(mouseenter)=\"autoClose(false, beaconControl)\" \n\t\t(mouseleave)=\"autoClose(true, beaconControl)\"\n\t\t(click)=\"beacon.preventClickClose ? null : closeBeacon(beaconControl, beacon)\"\n\t\t[attr.data-beacon-static]=\"beacon.static\"\n\t\tclass=\"beacon-message-control {{ (beacon.static !== true && beacon.fixed !== true) ? beacon.animationClass : '' }} {{ beacon.replacementClass || beacon.type }} {{ beacon.styleClass }}\"\n\t\t[class.beacon-message-control-no-hover-effect]=\"beacon.noHoverEffect\">\n\t<div class=\"beacon-message-header\">\n\t\t<div>\n\t\t\t<span *ngIf=\"beacon.fontIcon\"><i [class]=\"beacon.icon\"></i></span>\n\t\t\t<span *ngIf=\"!beacon.fontIcon && beaconDefaultIconKeys.includes(beacon.icon)\" class=\"beacon-message-svg-control\">\n\t\t\t\t<app-beacon-icon-alert *ngIf=\"beacon.icon | beaconTypeResolve:'alert'\"></app-beacon-icon-alert>\n\t\t\t\t<app-beacon-icon-error *ngIf=\"beacon.icon | beaconTypeResolve:'error'\"></app-beacon-icon-error>\n\t\t\t\t<app-beacon-icon-info *ngIf=\"beacon.icon | beaconTypeResolve:'info'\"></app-beacon-icon-info>\n\t\t\t\t<app-beacon-icon-success *ngIf=\"beacon.icon | beaconTypeResolve:'success'\"></app-beacon-icon-success>\n\t\t\t\t<app-beacon-icon-warning *ngIf=\"beacon.icon | beaconTypeResolve:'warning'\"></app-beacon-icon-warning>\n\t\t\t</span>\n\t\t\t<span *ngIf=\"!beacon.fontIcon && beacon.icon && !beaconDefaultIconKeys.includes(beacon.icon)\" class=\"beacon-message-svg-control\" [innerHTML]=\"beacon.svgIcon\"></span>\n\t\t\t{{ beacon.title }}\n\t\t</div>\n\t\t<div>\n\t\t\t<div *ngIf=\"!beacon.fixed\" class=\"beacon-message-close\" (click)=\"closeBeacon(beaconControl, beacon)\">\n\t\t\t\t<svg width=\"10\" height=\"10\" viewBox=\"0 0 78 78\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t\t <rect y=\"7.07104\" width=\"10\" height=\"100\" rx=\"5\" transform=\"rotate(-45 0 7.07104)\" />\n\t\t\t <rect x=\"70.7109\" width=\"10\" height=\"100\" rx=\"5\" transform=\"rotate(45 70.7109 0)\" />\n\t\t\t\t</svg>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n\t<div class=\"beacon-message-divider\"></div>\n\t<div class=\"beacon-message-body\" [innerHTML]=\"beacon.bodyHtml\"></div>\n\t<div class=\"beacon-message-divider\" *ngIf=\"beacon.buttons?.one || beacon.buttons?.two\"></div>\n\n\t<div class=\"beacon-message-footer\" *ngIf=\"beacon.buttons && beacon.buttons?.one && beacon.buttons?.two\">\n\t\t<div><button (click)=\"beaconButtonClick($event, 1)\">{{ beacon.buttons?.one?.text }}</button></div>\n\t\t<div><button (click)=\"beaconButtonClick($event, 2)\">{{ beacon.buttons?.two?.text }}</button></div>\n\t</div>\n\n\t<div class=\"beacon-message-footer\" *ngIf=\"beacon.buttons && beacon.buttons?.one && !beacon?.buttons?.two\">\n\t\t<div [class]=\"beacon.buttons?.one?.position ? ('beacon-message-button-container-' + beacon?.buttons?.one?.position) : ''\">\n\t\t\t<button (click)=\"beaconButtonClick($event, 1)\">{{ beacon.buttons?.one?.text }}</button>\n\t\t</div>\n\t</div>\n\n</div>", styles: [".beacon-message-control{width:270px;height:auto;background:#eee;margin:6px;border-radius:4px;position:relative;z-index:4000;cursor:pointer}.beacon-message-control:hover{box-shadow:0 0 20px #4443}.beacon-message-control-no-hover-effect{box-shadow:none!important}.beacon-message-control-animate{-webkit-animation:beacon-fade-out .5s 7s linear forwards;animation:beacon-fade-out .5s 7s linear forwards}.beacon-message-header,.beacon-message-body,.beacon-message-footer{padding:8px;font-size:15px}.beacon-message-header{font-weight:700;display:flex;font-size:15px}.beacon-message-header>div:first-child{flex-grow:1;display:flex;place-items:flex-start;word-break:break-all}.beacon-message-header>div:first-child i{font-size:20px;margin-right:7px;margin-top:2px}.beacon-message-header>div:last-child{flex-grow:0}.beacon-message-divider{border-top:1px solid #44444433}.beacon-message-close{height:22px;width:22px;border:1px solid #444444;display:flex;place-items:center;place-content:center;border-radius:100%;cursor:pointer;opacity:.3}.beacon-message-close svg rect{fill:#444}.beacon-message-close:hover{opacity:.7}.beacon-message-alert{background:#eee;color:#5e5e5e}.beacon-message-alert .beacon-message-footer button{border:1px solid #5E5E5E;color:#5e5e5e}.beacon-message-alert .beacon-message-footer button:hover{background:#5e5e5e;color:#fff}.beacon-message-success{background:#f0fff0;color:#698b69}.beacon-message-success .beacon-message-divider{border-color:#698b6933}.beacon-message-success .beacon-message-footer button{border:1px solid #698B69;color:#698b69}.beacon-message-success .beacon-message-footer button:hover{background:#698b69;color:#fff}.beacon-message-error{background:#ffe4e1;color:#b22222}.beacon-message-error .beacon-message-divider{border-color:#ee3b3b33}.beacon-message-error .beacon-message-footer button{border:1px solid #B22222;color:#b22222}.beacon-message-error .beacon-message-footer button:hover{background:#b22222;color:#fff}.beacon-message-warning{background:#fffacd;color:#b8860b}.beacon-message-warning .beacon-message-divider{border-color:#ffd70088}.beacon-message-warning .beacon-message-footer button{border:1px solid #B8860B;color:#b8860b}.beacon-message-warning .beacon-message-footer button:hover{background:#b8860b;color:#fff}.beacon-message-info{background:#bfefff;color:#4a708b}.beacon-message-info .beacon-message-divider{border-color:#5cacee33}.beacon-message-info .beacon-message-footer button{border:1px solid #4A708B;color:#4a708b}.beacon-message-info .beacon-message-footer button:hover{background:#4a708b;color:#fff}.beacon-message-footer{display:flex}.beacon-message-footer>div:first-child{flex-grow:1}.beacon-message-footer>div:last-child{flex-grow:1;text-align:right}.beacon-message-footer button{padding:4px 7px;border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;background:transparent;cursor:pointer}.beacon-message-footer .beacon-message-button-container-left{text-align:left!important}.beacon-message-footer .beacon-message-button-container-center{text-align:center!important}.beacon-message-footer .beacon-message-button-container-right{text-align:right!important}@keyframes beacon-fade-out{90%{opacity:0;display:none}to{opacity:0;display:none}}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.BeaconIconAlertComponent, selector: "app-beacon-icon-alert" }, { kind: "component", type: i5.BeaconIconErrorComponent, selector: "app-beacon-icon-error" }, { kind: "component", type: i6.BeaconIconInfoComponent, selector: "app-beacon-icon-info" }, { kind: "component", type: i7.BeaconIconSuccessComponent, selector: "app-beacon-icon-success" }, { kind: "component", type: i8.BeaconIconWarningComponent, selector: "app-beacon-icon-warning" }, { kind: "pipe", type: i9.BeaconTypeResolvePipe, name: "beaconTypeResolve" }] });
|
|
135
136
|
}
|
|
136
137
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: BeaconNotifyComponent, decorators: [{
|
|
137
138
|
type: Component,
|
|
138
|
-
args: [{ selector: 'app-beacon', template: "<div #beaconControl \n\t\t[id]=\"'bc_' + beacon.bid\"\n\t\t(mouseenter)=\"autoClose(false, beaconControl)\" \n\t\t(mouseleave)=\"autoClose(true, beaconControl)\"\n\t\t(click)=\"beacon.preventClickClose ? null : closeBeacon(beaconControl, beacon)\"\n\t\t[attr.data-beacon-static]=\"beacon.static\"\n\t\tclass=\"beacon-message-control {{ (beacon.static !== true && beacon.fixed !== true) ? beacon.animationClass : '' }} {{ beacon.replacementClass || beacon.type }} {{ beacon.styleClass }}\"\n\t\t[class.beacon-message-control-no-hover-effect]=\"beacon.noHoverEffect\">\n\t<div class=\"beacon-message-header\">\n\t\t<div>\n\t\t\t<span *ngIf=\"beacon.fontIcon\"><i [class]=\"beacon.icon\"></i></span>\n\t\t\t<span *ngIf=\"!beacon.fontIcon && beaconDefaultIconKeys.includes(beacon.icon)\" class=\"beacon-message-svg-control\">\n\t\t\t\t<app-beacon-icon-alert *ngIf=\"beacon.icon | beaconTypeResolve:'alert'\"></app-beacon-icon-alert>\n\t\t\t\t<app-beacon-icon-error *ngIf=\"beacon.icon | beaconTypeResolve:'error'\"></app-beacon-icon-error>\n\t\t\t\t<app-beacon-icon-info *ngIf=\"beacon.icon | beaconTypeResolve:'info'\"></app-beacon-icon-info>\n\t\t\t\t<app-beacon-icon-success *ngIf=\"beacon.icon | beaconTypeResolve:'success'\"></app-beacon-icon-success>\n\t\t\t\t<app-beacon-icon-warning *ngIf=\"beacon.icon | beaconTypeResolve:'warning'\"></app-beacon-icon-warning>\n\t\t\t</span>\n\t\t\t<span *ngIf=\"!beacon.fontIcon && beacon.icon && !beaconDefaultIconKeys.includes(beacon.icon)\" class=\"beacon-message-svg-control\" [innerHTML]=\"beacon.svgIcon\"></span>\n\t\t\t{{ beacon.title }}\n\t\t</div>\n\t\t<div>\n\t\t\t<div *ngIf=\"!beacon.fixed\" class=\"beacon-message-close\" (click)=\"closeBeacon(beaconControl, beacon)\">\n\t\t\t\t<svg width=\"10\" height=\"10\" viewBox=\"0 0 78 78\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t\t <rect y=\"7.07104\" width=\"10\" height=\"100\" rx=\"5\" transform=\"rotate(-45 0 7.07104)\" />\n\t\t\t <rect x=\"70.7109\" width=\"10\" height=\"100\" rx=\"5\" transform=\"rotate(45 70.7109 0)\" />\n\t\t\t\t</svg>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n\t<div class=\"beacon-message-divider\"></div>\n\t<div class=\"beacon-message-body\" [innerHTML]=\"beacon.bodyHtml\"></div>\n\t<div class=\"beacon-message-divider\" *ngIf=\"beacon.buttons?.one || beacon.buttons?.two\"></div>\n\n\t<div class=\"beacon-message-footer\" *ngIf=\"beacon.buttons && beacon.buttons?.one && beacon.buttons?.two\">\n\t\t<div><button (click)=\"beaconButtonClick($event, 1)\">{{ beacon.buttons?.one?.text }}</button></div>\n\t\t<div><button (click)=\"beaconButtonClick($event, 2)\">{{ beacon.buttons?.two?.text }}</button></div>\n\t</div>\n\n\t<div class=\"beacon-message-footer\" *ngIf=\"beacon.buttons && beacon.buttons?.one && !beacon?.buttons?.two\">\n\t\t<div [class]=\"beacon.buttons?.one?.position ? ('beacon-message-button-container-' + beacon?.buttons?.one?.position) : ''\">\n\t\t\t<button (click)=\"beaconButtonClick($event, 1)\">{{ beacon.buttons?.one?.text }}</button>\n\t\t</div>\n\t</div>\n\n</div>", styles: [".beacon-message-control{width:270px;height:auto;background:#eee;margin:6px;border-radius:4px;position:relative;z-index:4000;cursor:pointer}.beacon-message-control:hover{box-shadow:0 0 20px #4443}.beacon-message-control-no-hover-effect{box-shadow:none!important}.beacon-message-control-animate{-webkit-animation:beacon-fade-out .5s 7s linear forwards;animation:beacon-fade-out .5s 7s linear forwards}.beacon-message-header,.beacon-message-body,.beacon-message-footer{padding:8px;font-size:
|
|
139
|
+
args: [{ selector: 'app-beacon', template: "<div #beaconControl \n\t\t[id]=\"'bc_' + beacon.bid\"\n\t\t(mouseenter)=\"autoClose(false, beaconControl)\" \n\t\t(mouseleave)=\"autoClose(true, beaconControl)\"\n\t\t(click)=\"beacon.preventClickClose ? null : closeBeacon(beaconControl, beacon)\"\n\t\t[attr.data-beacon-static]=\"beacon.static\"\n\t\tclass=\"beacon-message-control {{ (beacon.static !== true && beacon.fixed !== true) ? beacon.animationClass : '' }} {{ beacon.replacementClass || beacon.type }} {{ beacon.styleClass }}\"\n\t\t[class.beacon-message-control-no-hover-effect]=\"beacon.noHoverEffect\">\n\t<div class=\"beacon-message-header\">\n\t\t<div>\n\t\t\t<span *ngIf=\"beacon.fontIcon\"><i [class]=\"beacon.icon\"></i></span>\n\t\t\t<span *ngIf=\"!beacon.fontIcon && beaconDefaultIconKeys.includes(beacon.icon)\" class=\"beacon-message-svg-control\">\n\t\t\t\t<app-beacon-icon-alert *ngIf=\"beacon.icon | beaconTypeResolve:'alert'\"></app-beacon-icon-alert>\n\t\t\t\t<app-beacon-icon-error *ngIf=\"beacon.icon | beaconTypeResolve:'error'\"></app-beacon-icon-error>\n\t\t\t\t<app-beacon-icon-info *ngIf=\"beacon.icon | beaconTypeResolve:'info'\"></app-beacon-icon-info>\n\t\t\t\t<app-beacon-icon-success *ngIf=\"beacon.icon | beaconTypeResolve:'success'\"></app-beacon-icon-success>\n\t\t\t\t<app-beacon-icon-warning *ngIf=\"beacon.icon | beaconTypeResolve:'warning'\"></app-beacon-icon-warning>\n\t\t\t</span>\n\t\t\t<span *ngIf=\"!beacon.fontIcon && beacon.icon && !beaconDefaultIconKeys.includes(beacon.icon)\" class=\"beacon-message-svg-control\" [innerHTML]=\"beacon.svgIcon\"></span>\n\t\t\t{{ beacon.title }}\n\t\t</div>\n\t\t<div>\n\t\t\t<div *ngIf=\"!beacon.fixed\" class=\"beacon-message-close\" (click)=\"closeBeacon(beaconControl, beacon)\">\n\t\t\t\t<svg width=\"10\" height=\"10\" viewBox=\"0 0 78 78\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t\t <rect y=\"7.07104\" width=\"10\" height=\"100\" rx=\"5\" transform=\"rotate(-45 0 7.07104)\" />\n\t\t\t <rect x=\"70.7109\" width=\"10\" height=\"100\" rx=\"5\" transform=\"rotate(45 70.7109 0)\" />\n\t\t\t\t</svg>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n\t<div class=\"beacon-message-divider\"></div>\n\t<div class=\"beacon-message-body\" [innerHTML]=\"beacon.bodyHtml\"></div>\n\t<div class=\"beacon-message-divider\" *ngIf=\"beacon.buttons?.one || beacon.buttons?.two\"></div>\n\n\t<div class=\"beacon-message-footer\" *ngIf=\"beacon.buttons && beacon.buttons?.one && beacon.buttons?.two\">\n\t\t<div><button (click)=\"beaconButtonClick($event, 1)\">{{ beacon.buttons?.one?.text }}</button></div>\n\t\t<div><button (click)=\"beaconButtonClick($event, 2)\">{{ beacon.buttons?.two?.text }}</button></div>\n\t</div>\n\n\t<div class=\"beacon-message-footer\" *ngIf=\"beacon.buttons && beacon.buttons?.one && !beacon?.buttons?.two\">\n\t\t<div [class]=\"beacon.buttons?.one?.position ? ('beacon-message-button-container-' + beacon?.buttons?.one?.position) : ''\">\n\t\t\t<button (click)=\"beaconButtonClick($event, 1)\">{{ beacon.buttons?.one?.text }}</button>\n\t\t</div>\n\t</div>\n\n</div>", styles: [".beacon-message-control{width:270px;height:auto;background:#eee;margin:6px;border-radius:4px;position:relative;z-index:4000;cursor:pointer}.beacon-message-control:hover{box-shadow:0 0 20px #4443}.beacon-message-control-no-hover-effect{box-shadow:none!important}.beacon-message-control-animate{-webkit-animation:beacon-fade-out .5s 7s linear forwards;animation:beacon-fade-out .5s 7s linear forwards}.beacon-message-header,.beacon-message-body,.beacon-message-footer{padding:8px;font-size:15px}.beacon-message-header{font-weight:700;display:flex;font-size:15px}.beacon-message-header>div:first-child{flex-grow:1;display:flex;place-items:flex-start;word-break:break-all}.beacon-message-header>div:first-child i{font-size:20px;margin-right:7px;margin-top:2px}.beacon-message-header>div:last-child{flex-grow:0}.beacon-message-divider{border-top:1px solid #44444433}.beacon-message-close{height:22px;width:22px;border:1px solid #444444;display:flex;place-items:center;place-content:center;border-radius:100%;cursor:pointer;opacity:.3}.beacon-message-close svg rect{fill:#444}.beacon-message-close:hover{opacity:.7}.beacon-message-alert{background:#eee;color:#5e5e5e}.beacon-message-alert .beacon-message-footer button{border:1px solid #5E5E5E;color:#5e5e5e}.beacon-message-alert .beacon-message-footer button:hover{background:#5e5e5e;color:#fff}.beacon-message-success{background:#f0fff0;color:#698b69}.beacon-message-success .beacon-message-divider{border-color:#698b6933}.beacon-message-success .beacon-message-footer button{border:1px solid #698B69;color:#698b69}.beacon-message-success .beacon-message-footer button:hover{background:#698b69;color:#fff}.beacon-message-error{background:#ffe4e1;color:#b22222}.beacon-message-error .beacon-message-divider{border-color:#ee3b3b33}.beacon-message-error .beacon-message-footer button{border:1px solid #B22222;color:#b22222}.beacon-message-error .beacon-message-footer button:hover{background:#b22222;color:#fff}.beacon-message-warning{background:#fffacd;color:#b8860b}.beacon-message-warning .beacon-message-divider{border-color:#ffd70088}.beacon-message-warning .beacon-message-footer button{border:1px solid #B8860B;color:#b8860b}.beacon-message-warning .beacon-message-footer button:hover{background:#b8860b;color:#fff}.beacon-message-info{background:#bfefff;color:#4a708b}.beacon-message-info .beacon-message-divider{border-color:#5cacee33}.beacon-message-info .beacon-message-footer button{border:1px solid #4A708B;color:#4a708b}.beacon-message-info .beacon-message-footer button:hover{background:#4a708b;color:#fff}.beacon-message-footer{display:flex}.beacon-message-footer>div:first-child{flex-grow:1}.beacon-message-footer>div:last-child{flex-grow:1;text-align:right}.beacon-message-footer button{padding:4px 7px;border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;background:transparent;cursor:pointer}.beacon-message-footer .beacon-message-button-container-left{text-align:left!important}.beacon-message-footer .beacon-message-button-container-center{text-align:center!important}.beacon-message-footer .beacon-message-button-container-right{text-align:right!important}@keyframes beacon-fade-out{90%{opacity:0;display:none}to{opacity:0;display:none}}\n"] }]
|
|
139
140
|
}], ctorParameters: () => [{ type: i1.BeaconNotifyService }, { type: i2.DomSanitizer }], propDecorators: { beacon: [{
|
|
140
141
|
type: Input
|
|
141
142
|
}] } });
|
|
142
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVhY29uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvYmVhY29uL2JlYWNvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvbGliL2JlYWNvbi9iZWFjb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQWlCLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7OztBQVVoRSxNQUFNLE9BQU8scUJBQXFCO0lBS1o7SUFDVjtJQUxELE1BQU0sQ0FBZ0I7SUFDdkIsU0FBUyxDQUFjO0lBQ3hCLHFCQUFxQixDQUFXO0lBRXZDLFlBQW9CLGFBQWtDLEVBQzVDLFNBQXVCO1FBRGIsa0JBQWEsR0FBYixhQUFhLENBQXFCO1FBQzVDLGNBQVMsR0FBVCxTQUFTLENBQWM7UUFDL0IsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsd0JBQXdCLENBQUE7SUFDMUUsQ0FBQztJQUVELFFBQVE7UUFDTixtQkFBbUI7UUFDbkIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUM7WUFDNUMsS0FBSyxFQUFFLElBQUk7WUFDWCxFQUFFLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHO1NBQ3BCLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxlQUFlO1FBQ2IsYUFBYTtRQUNiLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFBO1FBQzNILG9DQUFvQztRQUNwQyxJQUFJLENBQUMsNkJBQTZCLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDMUMsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLHdCQUF3QjtZ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YSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQztnQkFDNUMsTUFBTSxFQUFFLElBQUk7Z0JBQ1osRUFBRSxFQUFFLGFBQWEsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUM7YUFDeEQsQ0FBQyxDQUFBO1FBQ0osQ0FBQztJQUNILENBQUM7dUdBbElVLHFCQUFxQjsyRkFBckIscUJBQXFCLGdGQ1ZsQyxrK0ZBNkNNOzsyRkRuQ08scUJBQXFCO2tCQUxqQyxTQUFTOytCQUNFLFlBQVk7bUhBS2IsTUFBTTtzQkFBZCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgQWZ0ZXJWaWV3SW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVhY29uTm90aWZ5U2VydmljZSB9IGZyb20gJy4uL2JlYWNvbi1ub3RpZnkuc2VydmljZSc7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIsIFNhZmVIdG1sIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBJQmVhY29uQ29uZmlnLCBJQmVhY29uRXZlbnRNZXNzYWdlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtYmVhY29uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2JlYWNvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2JlYWNvbi5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQmVhY29uTm90aWZ5Q29tcG9uZW50IHtcbiAgQElucHV0KCkgYmVhY29uITogSUJlYWNvbkNvbmZpZ1xuICBwcml2YXRlIGJlYWNvbkRPTSE6IEhUTUxFbGVtZW50XG4gIHB1YmxpYyBiZWFjb25EZWZhdWx0SWNvbktleXMhOiBzdHJpbmdbXVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYmVhY29uU2VydmljZTogQmVhY29uTm90aWZ5U2VydmljZSxcbiAgICBwcml2YXRlIHNhbml0aXplcjogRG9tU2FuaXRpemVyKXtcbiAgICB0aGlzLmJlYWNvbkRlZmF1bHRJY29uS2V5cyA9IHRoaXMuYmVhY29uU2VydmljZS5nZXRCZWFjb25EZWZhdWx0SWNvbktleXNcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIC8vIEZpcmUgbW91bnQgZXZlbnRcbiAgICB0aGlzLmJlYWNvblNlcnZpY2UuYmVhY29uRXZlbnRUYXNrTWFzdGVyLmVtaXQoe1xuICAgICAgbW91bnQ6IHRydWUsXG4gICAgICBpZDogdGhpcy5iZWFjb24uYmlkXG4gICAgfSlcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAvLyBHZXQgYmVhY29uXG4gICAgY29uc3QgYmVhY29uID0gdGhpcy5iZWFjb25ET00gPSB0aGlzLmJlYWNvblNlcnZpY2UuZ2V0QmVhY29uQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcihgI2JjXyR7dGhpcy5iZWFjb24uYmlkfWApXG4gICAgLy8gUmVzb2x2ZSBwb3NzaWJsZSBmb2N1cyBmb3IgYmVhY29uXG4gICAgdGhpcy5yZXNvbHZlUG9zc2libGVGb2N1c0ZvckJlYWNvbihiZWFjb24pXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAvLyBSZXNvbHZlIGRlbGF5IHNldHRpbmdcbiAgICAgIHRoaXMucmVzb2x2ZURlbGF5Rm9yQmVhY29uKGJlYWNvbiwgdHJ1ZSlcbiAgICAgIC8vIFNldCBiZWFjb24gbGlzdGVuZXJcbiAgICAgIHRoaXMuc2V0TGlzdGVuZXJGb3JCZWFjb24oYmVhY29uLCB0aGlzLmJlYWNvbilcblxuICAgICAgLy8gU2FuaXRpemUgc3ZnIGNvbnRlbnQgaWYgbm90IGZvbnQgaWNvblxuICAgICAgaWYgKHRoaXMuYmVhY29uLnN2Z0ljb24pIHtcbiAgICAgICAgY29uc3QgYmVhY29uU3ZnSWNvbiA9IGJlYWNvbi5xdWVyeVNlbGVjdG9yKCdzcGFuLmJlYWNvbi1tZXNzYWdlLXN2Zy1jb250cm9sIHN2ZycpXG4gICAgICAgIGJlYWNvblN2Z0ljb24uc3R5bGUud2lkdGggPSAnMjBweCdcbiAgICAgICAgYmVhY29uU3ZnSWNvbi5zdHlsZS5oZWlnaHQgPSAnMjBweCdcbiAgICAgICAgYmVhY29uU3ZnSWNvbi5zdHlsZS5tYXJnaW5SaWdodCA9ICc3cHgnXG4gICAgICAgIGJlYWNvblN2Z0ljb24uc3R5bGUubWFyZ2luVG9wID0gJy0ycHgnXG4gICAgICB9XG4gICAgfSwgMClcblxuICAgIC8vIExpc3RlbiBmb3IgZXZlbnRcbiAgICB0aGlzLmJlYWNvblNlcnZpY2UuYmVhY29uRXZlbnRUYXNrTWFzdGVyLnN1YnNjcmliZSgobWVzc2FnZTogSUJlYWNvbkV2ZW50TWVzc2FnZSkgPT4ge1xuICAgICAgLy8gQ2hlY2sgZm9yIG5leHQgZm9yIGZvY3VzIGV2ZW50XG4gICAgICBpZiAobWVzc2FnZS5hdXRvRGV0ZWN0TmV4dEZvY3VzQmVhY29uKVxuICAgICAgICB0aGlzLnJlc29sdmVQb3NzaWJsZUZvY3VzRm9yQmVhY29uKHRoaXMuYmVhY29uRE9NLCBmYWxzZSlcbiAgICB9KVxuICB9XG5cbiAgLy8gV2hlbiBiZWFjb24gYnV0dG9uIGlzIGNsaWNrZWRcbiAgYmVhY29uQnV0dG9uQ2xpY2soZTogRXZlbnQsIG5vOiBudW1iZXIpOiB2b2lkIHtcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpXG4gICAgc3dpdGNoIChubykge1xuICAgICAgY2FzZSAxOlxuICAgICAgICAvLyBDaGVjayBmb3IgY2FsbGJhY2tcbiAgICAgICAgaWYgKHRoaXMuYmVhY29uPy5idXR0b25zPy5vbmU/LmNhbGxiYWNrKVxuICAgICAgICAgIHRoaXMuYmVhY29uPy5idXR0b25zPy5vbmU/LmNhbGxiYWNrKHRoaXMuYmVhY29uPy5idXR0b25zPy5vbmU/LmNhbGxiYWNrQXJncylcbiAgICAgICAgXG4gICAgICAgIC8vIENoZWNrIGlmIGNhbiBkaXNtaXNzXG4gICAgICAgIGlmICh0aGlzLmJlYWNvbj8uYnV0dG9ucz8ub25lPy5jYW5EaXNtaXNzKVxuICAgICAgICAgIHRoaXMuY2xvc2VCZWFjb24odGhpcy5iZWFjb25ET00sIHRoaXMuYmVhY29uKVxuICAgICAgICBicmVha1xuICAgICAgY2FzZSAyOlxuICAgICAgICAvLyBDaGVjayBmb3IgY2FsbGJhY2tcbiAgICAgICAgaWYgKHRoaXMuYmVhY29uPy5idXR0b25zPy50d28/LmNhbGxiYWNrKVxuICAgICAgICAgIHRoaXMuYmVhY29uPy5idXR0b25zPy50d28/LmNhbGxiYWNrKHRoaXMuYmVhY29uPy5idXR0b25zPy50d28/LmNhbGxiYWNrQXJncylcblxuICAgICAgICAvLyBDaGVjayBpZiBjYW4gZGlzbWlzc1xuICAgICAgICBpZiAodGhpcy5iZWFjb24/LmJ1dHRvbnM/LnR3bz8uY2FuRGlzbWlzcylcbiAgICAgICAgICB0aGlzLmNsb3NlQmVhY29uKHRoaXMuYmVhY29uRE9NLCB0aGlzLmJlYWNvbilcbiAgICAgICAgYnJlYWtcbiAgICB9XG4gIH1cblxuICAvLyBTZXQgbGlzdGVuZXIgZm9yIGJlYWNvbiBjaGFuZ2VzXG4gIHNldExpc3RlbmVyRm9yQmVhY29uKGJlYWNvbjogRWxlbWVudCwgYmVhY29uRGF0YTogSUJlYWNvbkNvbmZpZyk6IHZvaWQge1xuICAgICgoYiwgZCkgPT4ge1xuICAgICAgYmVhY29uPy5hZGRFdmVudExpc3RlbmVyKCdhbmltYXRpb25lbmQnLCAoZSkgPT4gdGhpcy5jbG9zZUJlYWNvbihiLCBkKSlcbiAgICAgIGJlYWNvbj8uYWRkRXZlbnRMaXN0ZW5lcignd2Via2l0QW5pbWF0aW9uRW5kJywgKGUpID0+IHRoaXMuY2xvc2VCZWFjb24oYiwgZCkpXG4gICAgICBiZWFjb24/LmFkZEV2ZW50TGlzdGVuZXIoJ29BbmltYXRpb25FbmQnLCAoZSkgPT4gdGhpcy5jbG9zZUJlYWNvbihiLCBkKSlcbiAgICB9KShiZWFjb24sIGJlYWNvbkRhdGEpXG4gIH1cblxuICAvLyBUb2dnbGUgYXV0by1jbG9zZVxuICBhdXRvQ2xvc2Uoc3RhdHVzOiBib29sZWFuLCBjb250cm9sOiBIVE1MRWxlbWVudCk6IHZvaWQge1xuICAgIHN0YXR1c1xuICAgICAgPyAoY29udHJvbC5nZXRBdHRyaWJ1dGUoJ2RhdGEtYmVhY29uLXN0YXRpYycpICE9ICd0cnVlJyAmJiB0aGlzLnJlc29sdmVEZWxheUZvckJlYWNvbihjb250cm9sLCBmYWxzZSkpXG4gICAgICA6IGNvbnRyb2wuY2xhc3NMaXN0LnJlbW92ZShTdHJpbmcodGhpcy5iZWFjb24uYW5pbWF0aW9uQ2xhc3MpKVxuICB9XG5cbiAgLy8gUmVzb2x2ZSBkZWxheSBmb3IgYmVhY29uXG4gIHJlc29sdmVEZWxheUZvckJlYWNvbihiZWFjb246IEhUTUxFbGVtZW50LCBvbkxvYWQ/OiBib29sZWFuKTogdm9pZCB7XG4gICAgLy8gQ2hlY2sgaWYgZGVsYXkgc2V0XG4gICAgaWYgKHRoaXMuYmVhY29uLnN0YXRpYyAmJiB0eXBlb2YgdGhpcy5iZWFjb24uc3RhdGljID09ICdudW1iZXInKSB7XG4gICAgICBiZWFjb24gJiYgKGJlYWNvbi5zdHlsZS5hbmltYXRpb25EZWxheSA9IHRoaXMuYmVhY29uLnN0YXRpYyArICdzJylcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKG9uTG9hZCA9PSAhMSAmJiB0aGlzLmJlYWNvbj8uZml4ZWQgIT0gdHJ1ZSlcbiAgICAgICAgYmVhY29uLmNsYXNzTGlzdC5hZGQoU3RyaW5nKHRoaXMuYmVhY29uLmFuaW1hdGlvbkNsYXNzKSlcbiAgICB9XG4gIH1cblxuICAvLyBSZXNvbHZlIGZvY3VzIGJlYWNvblxuICByZXNvbHZlUG9zc2libGVGb2N1c0ZvckJlYWNvbihiZWFjb246IEhUTUxFbGVtZW50LCBjcmVhdGVPdmVybGF5OiBib29sZWFuID0gdHJ1ZSk6IHZvaWQge1xuICAgIGNvbnN0IGFjdGl2ZUZvY3VzQmVhY29uSWQgPSB0aGlzLmJlYWNvblNlcnZpY2UuZ2V0QWN0aXZlRm9jdXNCZWFjb25JZFxuICAgIGlmIChhY3RpdmVGb2N1c0JlYWNvbklkID09IHRoaXMuYmVhY29uLmJpZCkge1xuICAgICAgYmVhY29uLnN0eWxlLnpJbmRleCA9ICc5MDAzJ1xuICAgICAgXG4gICAgICAvLyBDaGVjayBpZiBiZWFjb24gc2hvdWxkIGJlIGNlbnRlcmVkXG4gICAgICBpZiAodGhpcy5iZWFjb24uc2hpbmUpIHtcbiAgICAgICAgYmVhY29uLnN0eWxlLnBvc2l0aW9uID0gJ2ZpeGVkJ1xuICAgICAgICBiZWFjb24uc3R5bGUucmlnaHQgPSAnMCdcbiAgICAgICAgYmVhY29uLnN0eWxlLmxlZnQgPSAnMCdcbiAgICAgICAgYmVhY29uLnN0eWxlLmJvdHRvbSA9ICc1MCUnXG4gICAgICAgIGJlYWNvbi5zdHlsZS5tYXJnaW4gPSAnYXV0bydcbiAgICAgICAgYmVhY29uLnN0eWxlLnRyYW5zZm9ybSA9ICdzY2FsZSgxLjYpJ1xuICAgICAgfVxuXG4gICAgICAvLyBDcmVhdGUgb3ZlcmxheVxuICAgICAgaWYgKGNyZWF0ZU92ZXJsYXkpXG4gICAgICAgIHRoaXMuYmVhY29uU2VydmljZS5jcmVhdGVCZWFjb25Gb2N1c092ZXJsYXkodGhpcy5iZWFjb24ub3ZlcmxheUNvbG9yKVxuICAgICAgZWxzZSB0aGlzLmJlYWNvblNlcnZpY2UucmVwYWludEJlYWNvbkZvY3VzT3ZlcmxheSh0aGlzLmJlYWNvbi5vdmVybGF5Q29sb3IpXG4gICAgfVxuICB9XG5cbiAgLy8gVHJpZ2dlciBjbG9zZSBiZWFjb25cbiAgY2xvc2VCZWFjb24oYmVhY29uQ29udHJvbDogYW55LCBiZWFjb25EYXRhOiBJQmVhY29uQ29uZmlnKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmJlYWNvbj8uZml4ZWQpIHtcbiAgICAgIHRoaXMuYmVhY29uU2VydmljZS5iZWFjb25FdmVudFRhc2tNYXN0ZXIuZW1pdCh7XG4gICAgICAgIGRlbGV0ZTogdHJ1ZSxcbiAgICAgICAgaWQ6IGJlYWNvbkNvbnRyb2wuZ2V0QXR0cmlidXRlKCdpZCcpLnJlcGxhY2UoL2JjXy8sICcnKVxuICAgICAgfSlcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgI2JlYWNvbkNvbnRyb2wgXG5cdFx0W2lkXT1cIidiY18nICsgYmVhY29uLmJpZFwiXG5cdFx0KG1vdXNlZW50ZXIpPVwiYXV0b0Nsb3NlKGZhbHNlLCBiZWFjb25Db250cm9sKVwiIFxuXHRcdChtb3VzZWxlYXZlKT1cImF1dG9DbG9zZSh0cnVlLCBiZWFjb25Db250cm9sKVwiXG5cdFx0KGNsaWNrKT1cImJlYWNvbi5wcmV2ZW50Q2xpY2tDbG9zZSA/IG51bGwgOiBjbG9zZUJlYWNvbihiZWFjb25Db250cm9sLCBiZWFjb24pXCJcblx0XHRbYXR0ci5kYXRhLWJlYWNvbi1zdGF0aWNdPVwiYmVhY29uLnN0YXRpY1wiXG5cdFx0Y2xhc3M9XCJiZWFjb24tbWVzc2FnZS1jb250cm9sIHt7IChiZWFjb24uc3RhdGljICE9PSB0cnVlICYmIGJlYWNvbi5maXhlZCAhPT0gdHJ1ZSkgPyBiZWFjb24uYW5pbWF0aW9uQ2xhc3MgOiAnJyB9fSB7eyBiZWFjb24ucmVwbGFjZW1lbnRDbGFzcyB8fCBiZWFjb24udHlwZSB9fSB7eyBiZWFjb24uc3R5bGVDbGFzcyB9fVwiXG5cdFx0W2NsYXNzLmJlYWNvbi1tZXNzYWdlLWNvbnRyb2wtbm8taG92ZXItZWZmZWN0XT1cImJlYWNvbi5ub0hvdmVyRWZmZWN0XCI+XG5cdDxkaXYgY2xhc3M9XCJiZWFjb24tbWVzc2FnZS1oZWFkZXJcIj5cblx0XHQ8ZGl2PlxuXHRcdFx0PHNwYW4gKm5nSWY9XCJiZWFjb24uZm9udEljb25cIj48aSBbY2xhc3NdPVwiYmVhY29uLmljb25cIj48L2k+PC9zcGFuPlxuXHRcdFx0PHNwYW4gKm5nSWY9XCIhYmVhY29uLmZvbnRJY29uICYmIGJlYWNvbkRlZmF1bHRJY29uS2V5cy5pbmNsdWRlcyhiZWFjb24uaWNvbilcIiBjbGFzcz1cImJlYWNvbi1tZXNzYWdlLXN2Zy1jb250cm9sXCI+XG5cdFx0XHRcdDxhcHAtYmVhY29uLWljb24tYWxlcnQgKm5nSWY9XCJiZWFjb24uaWNvbiB8IGJlYWNvblR5cGVSZXNvbHZlOidhbGVydCdcIj48L2FwcC1iZWFjb24taWNvbi1hbGVydD5cblx0XHRcdFx0PGFwcC1iZWFjb24taWNvbi1lcnJvciAqbmdJZj1cImJlYWNvbi5pY29uIHwgYmVhY29uVHlwZVJlc29sdmU6J2Vycm9yJ1wiPjwvYXBwLWJlYWNvbi1pY29uLWVycm9yPlxuXHRcdFx0XHQ8YXBwLWJlYWNvbi1pY29uLWluZm8gKm5nSWY9XCJiZWFjb24uaWNvbiB8IGJlYWNvblR5cGVSZXNvbHZlOidpbmZvJ1wiPjwvYXBwLWJlYWNvbi1pY29uLWluZm8+XG5cdFx0XHRcdDxhcHAtYmVhY29uLWljb24tc3VjY2VzcyAqbmdJZj1cImJlYWNvbi5pY29uIHwgYmVhY29uVHlwZVJlc29sdmU6J3N1Y2Nlc3MnXCI+PC9hcHAtYmVhY29uLWljb24tc3VjY2Vzcz5cblx0XHRcdFx0PGFwcC1iZWFjb24taWNvbi13YXJuaW5nICpuZ0lmPVwiYmVhY29uLmljb24gfCBiZWFjb25UeXBlUmVzb2x2ZTond2FybmluZydcIj48L2FwcC1iZWFjb24taWNvbi13YXJuaW5nPlxuXHRcdFx0PC9zcGFuPlxuXHRcdFx0PHNwYW4gKm5nSWY9XCIhYmVhY29uLmZvbnRJY29uICYmIGJlYWNvbi5pY29uICYmICFiZWFjb25EZWZhdWx0SWNvbktleXMuaW5jbHVkZXMoYmVhY29uLmljb24pXCIgY2xhc3M9XCJiZWFjb24tbWVzc2FnZS1zdmctY29udHJvbFwiIFtpbm5lckhUTUxdPVwiYmVhY29uLnN2Z0ljb25cIj48L3NwYW4+XG5cdFx0XHR7eyBiZWFjb24udGl0bGUgfX1cblx0XHQ8L2Rpdj5cblx0XHQ8ZGl2PlxuXHRcdFx0PGRpdiAqbmdJZj1cIiFiZWFjb24uZml4ZWRcIiBjbGFzcz1cImJlYWNvbi1tZXNzYWdlLWNsb3NlXCIgKGNsaWNrKT1cImNsb3NlQmVhY29uKGJlYWNvbkNvbnRyb2wsIGJlYWNvbilcIj5cblx0XHRcdFx0PHN2ZyB3aWR0aD1cIjEwXCIgaGVpZ2h0PVwiMTBcIiB2aWV3Qm94PVwiMCAwIDc4IDc4XCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG5cdFx0XHQgICAgPHJlY3QgeT1cIjcuMDcxMDRcIiB3aWR0aD1cIjEwXCIgaGVpZ2h0PVwiMTAwXCIgcng9XCI1XCIgdHJhbnNmb3JtPVwicm90YXRlKC00NSAwIDcuMDcxMDQpXCIgLz5cblx0XHRcdCAgICA8cmVjdCB4PVwiNzAuNzEwOVwiIHdpZHRoPVwiMTBcIiBoZWlnaHQ9XCIxMDBcIiByeD1cIjVcIiB0cmFuc2Zvcm09XCJyb3RhdGUoNDUgNzAuNzEwOSAwKVwiIC8+XG5cdFx0XHRcdDwvc3ZnPlxuXHRcdFx0PC9kaXY+XG5cdFx0PC9kaXY+XG5cdDwvZGl2PlxuXHQ8ZGl2IGNsYXNzPVwiYmVhY29uLW1lc3NhZ2UtZGl2aWRlclwiPjwvZGl2PlxuXHQ8ZGl2IGNsYXNzPVwiYmVhY29uLW1lc3NhZ2UtYm9keVwiIFtpbm5lckhUTUxdPVwiYmVhY29uLmJvZHlIdG1sXCI+PC9kaXY+XG5cdDxkaXYgY2xhc3M9XCJiZWFjb24tbWVzc2FnZS1kaXZpZGVyXCIgKm5nSWY9XCJiZWFjb24uYnV0dG9ucz8ub25lIHx8IGJlYWNvbi5idXR0b25zPy50d29cIj48L2Rpdj5cblxuXHQ8ZGl2IGNsYXNzPVwiYmVhY29uLW1lc3NhZ2UtZm9vdGVyXCIgKm5nSWY9XCJiZWFjb24uYnV0dG9ucyAmJiBiZWFjb24uYnV0dG9ucz8ub25lICYmIGJlYWNvbi5idXR0b25zPy50d29cIj5cblx0XHQ8ZGl2PjxidXR0b24gKGNsaWNrKT1cImJlYWNvbkJ1dHRvbkNsaWNrKCRldmVudCwgMSlcIj57eyBiZWFjb24uYnV0dG9ucz8ub25lPy50ZXh0IH19PC9idXR0b24+PC9kaXY+XG5cdFx0PGRpdj48YnV0dG9uIChjbGljayk9XCJiZWFjb25CdXR0b25DbGljaygkZXZlbnQsIDIpXCI+e3sgYmVhY29uLmJ1dHRvbnM/LnR3bz8udGV4dCB9fTwvYnV0dG9uPjwvZGl2PlxuXHQ8L2Rpdj5cblxuXHQ8ZGl2IGNsYXNzPVwiYmVhY29uLW1lc3NhZ2UtZm9vdGVyXCIgKm5nSWY9XCJiZWFjb24uYnV0dG9ucyAmJiBiZWFjb24uYnV0dG9ucz8ub25lICYmICFiZWFjb24/LmJ1dHRvbnM/LnR3b1wiPlxuXHRcdDxkaXYgW2NsYXNzXT1cImJlYWNvbi5idXR0b25zPy5vbmU/LnBvc2l0aW9uID8gKCdiZWFjb24tbWVzc2FnZS1idXR0b24tY29udGFpbmVyLScgKyBiZWFjb24/LmJ1dHRvbnM/Lm9uZT8ucG9zaXRpb24pIDogJydcIj5cblx0XHRcdDxidXR0b24gKGNsaWNrKT1cImJlYWNvbkJ1dHRvbkNsaWNrKCRldmVudCwgMSlcIj57eyBiZWFjb24uYnV0dG9ucz8ub25lPy50ZXh0IH19PC9idXR0b24+XG5cdFx0PC9kaXY+XG5cdDwvZGl2PlxuXG48L2Rpdj4iXX0=
|
|
143
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVhY29uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvYmVhY29uL2JlYWNvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvbGliL2JlYWNvbi9iZWFjb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQWlCLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7OztBQVVoRSxNQUFNLE9BQU8scUJBQXFCO0lBS1o7SUFDVjtJQUxELE1BQU0sQ0FBZ0I7SUFDdkIsU0FBUyxDQUFjO0lBQ3hCLHFCQUFxQixDQUFXO0lBRXZDLFlBQW9CLGFBQWtDLEVBQzVDLFNBQXVCO1FBRGIsa0JBQWEsR0FBYixhQUFhLENBQXFCO1FBQzVDLGNBQVMsR0FBVCxTQUFTLENBQWM7UUFDL0IsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsd0JBQXdCLENBQUE7SUFDMUUsQ0FBQztJQUVELFFBQVE7UUFDTixtQkFBbUI7UUFDbkIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUM7WUFDNUMsS0FBSyxFQUFFLElBQUk7WUFDWCxFQUFFLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHO1NBQ3BCLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxlQUFlO1FBQ2IsYUFBYTtRQUNiLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFBO1FBQzNILG9DQUFvQztRQUNwQyxJQUFJLENBQUMsNkJBQTZCLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDMUMsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLHdCQUF3QjtZ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LENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQTs7Z0JBQ2xFLElBQUksQ0FBQyxhQUFhLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQTtRQUM3RSxDQUFDO0lBQ0gsQ0FBQztJQUVELHVCQUF1QjtJQUN2QixXQUFXLENBQUMsYUFBa0IsRUFBRSxVQUF5QjtRQUN2RCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsYUFBYSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQztnQkFDNUMsTUFBTSxFQUFFLElBQUk7Z0JBQ1osRUFBRSxFQUFFLGFBQWEsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUM7YUFDeEQsQ0FBQyxDQUFBO1FBQ0osQ0FBQztJQUNILENBQUM7dUdBbklVLHFCQUFxQjsyRkFBckIscUJBQXFCLGdGQ1ZsQyxrK0ZBNkNNOzsyRkRuQ08scUJBQXFCO2tCQUxqQyxTQUFTOytCQUNFLFlBQVk7bUhBS2IsTUFBTTtzQkFBZCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgQWZ0ZXJWaWV3SW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVhY29uTm90aWZ5U2VydmljZSB9IGZyb20gJy4uL2JlYWNvbi1ub3RpZnkuc2VydmljZSc7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIsIFNhZmVIdG1sIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBJQmVhY29uQ29uZmlnLCBJQmVhY29uRXZlbnRNZXNzYWdlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtYmVhY29uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2JlYWNvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2JlYWNvbi5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQmVhY29uTm90aWZ5Q29tcG9uZW50IHtcbiAgQElucHV0KCkgYmVhY29uITogSUJlYWNvbkNvbmZpZ1xuICBwcml2YXRlIGJlYWNvbkRPTSE6IEhUTUxFbGVtZW50XG4gIHB1YmxpYyBiZWFjb25EZWZhdWx0SWNvbktleXMhOiBzdHJpbmdbXVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYmVhY29uU2VydmljZTogQmVhY29uTm90aWZ5U2VydmljZSxcbiAgICBwcml2YXRlIHNhbml0aXplcjogRG9tU2FuaXRpemVyKXtcbiAgICB0aGlzLmJlYWNvbkRlZmF1bHRJY29uS2V5cyA9IHRoaXMuYmVhY29uU2VydmljZS5nZXRCZWFjb25EZWZhdWx0SWNvbktleXNcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIC8vIEZpcmUgbW91bnQgZXZlbnRcbiAgICB0aGlzLmJlYWNvblNlcnZpY2UuYmVhY29uRXZlbnRUYXNrTWFzdGVyLmVtaXQoe1xuICAgICAgbW91bnQ6IHRydWUsXG4gICAgICBpZDogdGhpcy5iZWFjb24uYmlkXG4gICAgfSlcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAvLyBHZXQgYmVhY29uXG4gICAgY29uc3QgYmVhY29uID0gdGhpcy5iZWFjb25ET00gPSB0aGlzLmJlYWNvblNlcnZpY2UuZ2V0QmVhY29uQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcihgI2JjXyR7dGhpcy5iZWFjb24uYmlkfWApXG4gICAgLy8gUmVzb2x2ZSBwb3NzaWJsZSBmb2N1cyBmb3IgYmVhY29uXG4gICAgdGhpcy5yZXNvbHZlUG9zc2libGVGb2N1c0ZvckJlYWNvbihiZWFjb24pXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAvLyBSZXNvbHZlIGRlbGF5IHNldHRpbmdcbiAgICAgIHRoaXMucmVzb2x2ZURlbGF5Rm9yQmVhY29uKGJlYWNvbiwgdHJ1ZSlcbiAgICAgIC8vIFNldCBiZWFjb24gbGlzdGVuZXJcbiAgICAgIHRoaXMuc2V0TGlzdGVuZXJGb3JCZWFjb24oYmVhY29uLCB0aGlzLmJlYWNvbilcblxuICAgICAgLy8gU2FuaXRpemUgc3ZnIGNvbnRlbnQgaWYgbm90IGZvbnQgaWNvblxuICAgICAgaWYgKHRoaXMuYmVhY29uLnN2Z0ljb24pIHtcbiAgICAgICAgY29uc3QgYmVhY29uU3ZnSWNvbiA9IGJlYWNvbi5xdWVyeVNlbGVjdG9yKCdzcGFuLmJlYWNvbi1tZXNzYWdlLXN2Zy1jb250cm9sIHN2ZycpXG4gICAgICAgIGJlYWNvblN2Z0ljb24uc3R5bGUud2lkdGggPSAnMjBweCdcbiAgICAgICAgYmVhY29uU3ZnSWNvbi5zdHlsZS5oZWlnaHQgPSAnMjBweCdcbiAgICAgICAgYmVhY29uU3ZnSWNvbi5zdHlsZS5tYXJnaW5SaWdodCA9ICc3cHgnXG4gICAgICAgIGJlYWNvblN2Z0ljb24uc3R5bGUubWFyZ2luVG9wID0gJy0ycHgnXG4gICAgICB9XG4gICAgfSwgMClcblxuICAgIC8vIExpc3RlbiBmb3IgZXZlbnRcbiAgICB0aGlzLmJlYWNvblNlcnZpY2UuYmVhY29uRXZlbnRUYXNrTWFzdGVyLnN1YnNjcmliZSgobWVzc2FnZTogSUJlYWNvbkV2ZW50TWVzc2FnZSkgPT4ge1xuICAgICAgLy8gQ2hlY2sgZm9yIG5leHQgZm9yIGZvY3VzIGV2ZW50XG4gICAgICBpZiAobWVzc2FnZS5hdXRvRGV0ZWN0TmV4dEZvY3VzQmVhY29uKVxuICAgICAgICB0aGlzLnJlc29sdmVQb3NzaWJsZUZvY3VzRm9yQmVhY29uKHRoaXMuYmVhY29uRE9NLCBmYWxzZSlcbiAgICB9KVxuICB9XG5cbiAgLy8gV2hlbiBiZWFjb24gYnV0dG9uIGlzIGNsaWNrZWRcbiAgYmVhY29uQnV0dG9uQ2xpY2soZTogRXZlbnQsIG5vOiBudW1iZXIpOiB2b2lkIHtcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpXG4gICAgc3dpdGNoIChubykge1xuICAgICAgY2FzZSAxOlxuICAgICAgICAvLyBDaGVjayBmb3IgY2FsbGJhY2tcbiAgICAgICAgaWYgKHRoaXMuYmVhY29uPy5idXR0b25zPy5vbmU/LmNhbGxiYWNrKVxuICAgICAgICAgIHRoaXMuYmVhY29uPy5idXR0b25zPy5vbmU/LmNhbGxiYWNrKC4uLih0aGlzLmJlYWNvbj8uYnV0dG9ucz8ub25lPy5jYWxsYmFja0FyZ3MgfHwgW10pKVxuICAgICAgICBcbiAgICAgICAgLy8gQ2hlY2sgaWYgY2FuIGRpc21pc3NcbiAgICAgICAgaWYgKHRoaXMuYmVhY29uPy5idXR0b25zPy5vbmU/LmNhbkRpc21pc3MpXG4gICAgICAgICAgdGhpcy5jbG9zZUJlYWNvbih0aGlzLmJlYWNvbkRPTSwgdGhpcy5iZWFjb24pXG4gICAgICAgIGJyZWFrXG4gICAgICBjYXNlIDI6XG4gICAgICAgIC8vIENoZWNrIGZvciBjYWxsYmFja1xuICAgICAgICBpZiAodGhpcy5iZWFjb24/LmJ1dHRvbnM/LnR3bz8uY2FsbGJhY2spXG4gICAgICAgICAgdGhpcy5iZWFjb24/LmJ1dHRvbnM/LnR3bz8uY2FsbGJhY2soLi4uKHRoaXMuYmVhY29uPy5idXR0b25zPy50d28/LmNhbGxiYWNrQXJncyB8fCBbXSkpXG5cbiAgICAgICAgLy8gQ2hlY2sgaWYgY2FuIGRpc21pc3NcbiAgICAgICAgaWYgKHRoaXMuYmVhY29uPy5idXR0b25zPy50d28/LmNhbkRpc21pc3MpXG4gICAgICAgICAgdGhpcy5jbG9zZUJlYWNvbih0aGlzLmJlYWNvbkRPTSwgdGhpcy5iZWFjb24pXG4gICAgICAgIGJyZWFrXG4gICAgfVxuICB9XG5cbiAgLy8gU2V0IGxpc3RlbmVyIGZvciBiZWFjb24gY2hhbmdlc1xuICBzZXRMaXN0ZW5lckZvckJlYWNvbihiZWFjb246IEVsZW1lbnQsIGJlYWNvbkRhdGE6IElCZWFjb25Db25maWcpOiB2b2lkIHtcbiAgICAoKGIsIGQpID0+IHtcbiAgICAgIGJlYWNvbj8uYWRkRXZlbnRMaXN0ZW5lcignYW5pbWF0aW9uZW5kJywgKGUpID0+IHRoaXMuY2xvc2VCZWFjb24oYiwgZCkpXG4gICAgICBiZWFjb24/LmFkZEV2ZW50TGlzdGVuZXIoJ3dlYmtpdEFuaW1hdGlvbkVuZCcsIChlKSA9PiB0aGlzLmNsb3NlQmVhY29uKGIsIGQpKVxuICAgICAgYmVhY29uPy5hZGRFdmVudExpc3RlbmVyKCdvQW5pbWF0aW9uRW5kJywgKGUpID0+IHRoaXMuY2xvc2VCZWFjb24oYiwgZCkpXG4gICAgfSkoYmVhY29uLCBiZWFjb25EYXRhKVxuICB9XG5cbiAgLy8gVG9nZ2xlIGF1dG8tY2xvc2VcbiAgYXV0b0Nsb3NlKHN0YXR1czogYm9vbGVhbiwgY29udHJvbDogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICBzdGF0dXNcbiAgICAgID8gKGNvbnRyb2wuZ2V0QXR0cmlidXRlKCdkYXRhLWJlYWNvbi1zdGF0aWMnKSAhPSAndHJ1ZScgJiYgdGhpcy5yZXNvbHZlRGVsYXlGb3JCZWFjb24oY29udHJvbCwgZmFsc2UpKVxuICAgICAgOiBjb250cm9sLmNsYXNzTGlzdC5yZW1vdmUoU3RyaW5nKHRoaXMuYmVhY29uLmFuaW1hdGlvbkNsYXNzKSlcbiAgfVxuXG4gIC8vIFJlc29sdmUgZGVsYXkgZm9yIGJlYWNvblxuICByZXNvbHZlRGVsYXlGb3JCZWFjb24oYmVhY29uOiBIVE1MRWxlbWVudCwgb25Mb2FkPzogYm9vbGVhbik6IHZvaWQge1xuICAgIC8vIENoZWNrIGlmIGRlbGF5IHNldFxuICAgIGlmICh0aGlzLmJlYWNvbi5zdGF0aWMgJiYgdHlwZW9mIHRoaXMuYmVhY29uLnN0YXRpYyA9PSAnbnVtYmVyJykge1xuICAgICAgYmVhY29uICYmIChiZWFjb24uc3R5bGUuYW5pbWF0aW9uRGVsYXkgPSB0aGlzLmJlYWNvbi5zdGF0aWMgKyAncycpXG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChvbkxvYWQgPT0gITEgJiYgdGhpcy5iZWFjb24/LmZpeGVkICE9IHRydWUpXG4gICAgICAgIGJlYWNvbi5jbGFzc0xpc3QuYWRkKFN0cmluZyh0aGlzLmJlYWNvbi5hbmltYXRpb25DbGFzcykpXG4gICAgfVxuICB9XG5cbiAgLy8gUmVzb2x2ZSBmb2N1cyBiZWFjb25cbiAgcmVzb2x2ZVBvc3NpYmxlRm9jdXNGb3JCZWFjb24oYmVhY29uOiBIVE1MRWxlbWVudCwgY3JlYXRlT3ZlcmxheTogYm9vbGVhbiA9IHRydWUpOiB2b2lkIHtcbiAgICBjb25zdCBhY3RpdmVGb2N1c0JlYWNvbklkID0gdGhpcy5iZWFjb25TZXJ2aWNlLmdldEFjdGl2ZUZvY3VzQmVhY29uSWRcbiAgICBpZiAoYWN0aXZlRm9jdXNCZWFjb25JZCA9PSB0aGlzLmJlYWNvbi5iaWQpIHtcbiAgICAgIGJlYWNvbi5zdHlsZS56SW5kZXggPSAnOTAwMydcbiAgICAgIFxuICAgICAgLy8gQ2hlY2sgaWYgYmVhY29uIHNob3VsZCBiZSBjZW50ZXJlZFxuICAgICAgaWYgKHRoaXMuYmVhY29uLnNoaW5lKSB7XG4gICAgICAgIGNvbnN0IHNjYWxlID0gdGhpcy5iZWFjb24uc2hpbmVTY2FsZSAmJiBTdHJpbmcodGhpcy5iZWFjb24uc2hpbmVTY2FsZSkubWF0Y2goLyhcXGQrKVxcLihcXGQrKS8pID8gdGhpcy5iZWFjb24uc2hpbmVTY2FsZSA6ICcxLjUnXG4gICAgICAgIGJlYWNvbi5zdHlsZS5wb3NpdGlvbiA9ICdmaXhlZCdcbiAgICAgICAgYmVhY29uLnN0eWxlLnJpZ2h0ID0gJzAnXG4gICAgICAgIGJlYWNvbi5zdHlsZS5sZWZ0ID0gJzAnXG4gICAgICAgIGJlYWNvbi5zdHlsZS5ib3R0b20gPSAnNTAlJ1xuICAgICAgICBiZWFjb24uc3R5bGUubWFyZ2luID0gJ2F1dG8nXG4gICAgICAgIGJlYWNvbi5zdHlsZS50cmFuc2Zvcm0gPSAnc2NhbGUoJyArIHNjYWxlICsgJyknXG4gICAgICB9XG5cbiAgICAgIC8vIENyZWF0ZSBvdmVybGF5XG4gICAgICBpZiAoY3JlYXRlT3ZlcmxheSlcbiAgICAgICAgdGhpcy5iZWFjb25TZXJ2aWNlLmNyZWF0ZUJlYWNvbkZvY3VzT3ZlcmxheSh0aGlzLmJlYWNvbi5vdmVybGF5Q29sb3IpXG4gICAgICBlbHNlIHRoaXMuYmVhY29uU2VydmljZS5yZXBhaW50QmVhY29uRm9jdXNPdmVybGF5KHRoaXMuYmVhY29uLm92ZXJsYXlDb2xvcilcbiAgICB9XG4gIH1cblxuICAvLyBUcmlnZ2VyIGNsb3NlIGJlYWNvblxuICBjbG9zZUJlYWNvbihiZWFjb25Db250cm9sOiBhbnksIGJlYWNvbkRhdGE6IElCZWFjb25Db25maWcpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuYmVhY29uPy5maXhlZCkge1xuICAgICAgdGhpcy5iZWFjb25TZXJ2aWNlLmJlYWNvbkV2ZW50VGFza01hc3Rlci5lbWl0KHtcbiAgICAgICAgZGVsZXRlOiB0cnVlLFxuICAgICAgICBpZDogYmVhY29uQ29udHJvbC5nZXRBdHRyaWJ1dGUoJ2lkJykucmVwbGFjZSgvYmNfLywgJycpXG4gICAgICB9KVxuICAgIH1cbiAgfVxufVxuIiwiPGRpdiAjYmVhY29uQ29udHJvbCBcblx0XHRbaWRdPVwiJ2JjXycgKyBiZWFjb24uYmlkXCJcblx0XHQobW91c2VlbnRlcik9XCJhdXRvQ2xvc2UoZmFsc2UsIGJlYWNvbkNvbnRyb2wpXCIgXG5cdFx0KG1vdXNlbGVhdmUpPVwiYXV0b0Nsb3NlKHRydWUsIGJlYWNvbkNvbnRyb2wpXCJcblx0XHQoY2xpY2spPVwiYmVhY29uLnByZXZlbnRDbGlja0Nsb3NlID8gbnVsbCA6IGNsb3NlQmVhY29uKGJlYWNvbkNvbnRyb2wsIGJlYWNvbilcIlxuXHRcdFthdHRyLmRhdGEtYmVhY29uLXN0YXRpY109XCJiZWFjb24uc3RhdGljXCJcblx0XHRjbGFzcz1cImJlYWNvbi1tZXNzYWdlLWNvbnRyb2wge3sgKGJlYWNvbi5zdGF0aWMgIT09IHRydWUgJiYgYmVhY29uLmZpeGVkICE9PSB0cnVlKSA/IGJlYWNvbi5hbmltYXRpb25DbGFzcyA6ICcnIH19IHt7IGJlYWNvbi5yZXBsYWNlbWVudENsYXNzIHx8IGJlYWNvbi50eXBlIH19IHt7IGJlYWNvbi5zdHlsZUNsYXNzIH19XCJcblx0XHRbY2xhc3MuYmVhY29uLW1lc3NhZ2UtY29udHJvbC1uby1ob3Zlci1lZmZlY3RdPVwiYmVhY29uLm5vSG92ZXJFZmZlY3RcIj5cblx0PGRpdiBjbGFzcz1cImJlYWNvbi1tZXNzYWdlLWhlYWRlclwiPlxuXHRcdDxkaXY+XG5cdFx0XHQ8c3BhbiAqbmdJZj1cImJlYWNvbi5mb250SWNvblwiPjxpIFtjbGFzc109XCJiZWFjb24uaWNvblwiPjwvaT48L3NwYW4+XG5cdFx0XHQ8c3BhbiAqbmdJZj1cIiFiZWFjb24uZm9udEljb24gJiYgYmVhY29uRGVmYXVsdEljb25LZXlzLmluY2x1ZGVzKGJlYWNvbi5pY29uKVwiIGNsYXNzPVwiYmVhY29uLW1lc3NhZ2Utc3ZnLWNvbnRyb2xcIj5cblx0XHRcdFx0PGFwcC1iZWFjb24taWNvbi1hbGVydCAqbmdJZj1cImJlYWNvbi5pY29uIHwgYmVhY29uVHlwZVJlc29sdmU6J2FsZXJ0J1wiPjwvYXBwLWJlYWNvbi1pY29uLWFsZXJ0PlxuXHRcdFx0XHQ8YXBwLWJlYWNvbi1pY29uLWVycm9yICpuZ0lmPVwiYmVhY29uLmljb24gfCBiZWFjb25UeXBlUmVzb2x2ZTonZXJyb3InXCI+PC9hcHAtYmVhY29uLWljb24tZXJyb3I+XG5cdFx0XHRcdDxhcHAtYmVhY29uLWljb24taW5mbyAqbmdJZj1cImJlYWNvbi5pY29uIHwgYmVhY29uVHlwZVJlc29sdmU6J2luZm8nXCI+PC9hcHAtYmVhY29uLWljb24taW5mbz5cblx0XHRcdFx0PGFwcC1iZWFjb24taWNvbi1zdWNjZXNzICpuZ0lmPVwiYmVhY29uLmljb24gfCBiZWFjb25UeXBlUmVzb2x2ZTonc3VjY2VzcydcIj48L2FwcC1iZWFjb24taWNvbi1zdWNjZXNzPlxuXHRcdFx0XHQ8YXBwLWJlYWNvbi1pY29uLXdhcm5pbmcgKm5nSWY9XCJiZWFjb24uaWNvbiB8IGJlYWNvblR5cGVSZXNvbHZlOid3YXJuaW5nJ1wiPjwvYXBwLWJlYWNvbi1pY29uLXdhcm5pbmc+XG5cdFx0XHQ8L3NwYW4+XG5cdFx0XHQ8c3BhbiAqbmdJZj1cIiFiZWFjb24uZm9udEljb24gJiYgYmVhY29uLmljb24gJiYgIWJlYWNvbkRlZmF1bHRJY29uS2V5cy5pbmNsdWRlcyhiZWFjb24uaWNvbilcIiBjbGFzcz1cImJlYWNvbi1tZXNzYWdlLXN2Zy1jb250cm9sXCIgW2lubmVySFRNTF09XCJiZWFjb24uc3ZnSWNvblwiPjwvc3Bhbj5cblx0XHRcdHt7IGJlYWNvbi50aXRsZSB9fVxuXHRcdDwvZGl2PlxuXHRcdDxkaXY+XG5cdFx0XHQ8ZGl2ICpuZ0lmPVwiIWJlYWNvbi5maXhlZFwiIGNsYXNzPVwiYmVhY29uLW1lc3NhZ2UtY2xvc2VcIiAoY2xpY2spPVwiY2xvc2VCZWFjb24oYmVhY29uQ29udHJvbCwgYmVhY29uKVwiPlxuXHRcdFx0XHQ8c3ZnIHdpZHRoPVwiMTBcIiBoZWlnaHQ9XCIxMFwiIHZpZXdCb3g9XCIwIDAgNzggNzhcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cblx0XHRcdCAgICA8cmVjdCB5PVwiNy4wNzEwNFwiIHdpZHRoPVwiMTBcIiBoZWlnaHQ9XCIxMDBcIiByeD1cIjVcIiB0cmFuc2Zvcm09XCJyb3RhdGUoLTQ1IDAgNy4wNzEwNClcIiAvPlxuXHRcdFx0ICAgIDxyZWN0IHg9XCI3MC43MTA5XCIgd2lkdGg9XCIxMFwiIGhlaWdodD1cIjEwMFwiIHJ4PVwiNVwiIHRyYW5zZm9ybT1cInJvdGF0ZSg0NSA3MC43MTA5IDApXCIgLz5cblx0XHRcdFx0PC9zdmc+XG5cdFx0XHQ8L2Rpdj5cblx0XHQ8L2Rpdj5cblx0PC9kaXY+XG5cdDxkaXYgY2xhc3M9XCJiZWFjb24tbWVzc2FnZS1kaXZpZGVyXCI+PC9kaXY+XG5cdDxkaXYgY2xhc3M9XCJiZWFjb24tbWVzc2FnZS1ib2R5XCIgW2lubmVySFRNTF09XCJiZWFjb24uYm9keUh0bWxcIj48L2Rpdj5cblx0PGRpdiBjbGFzcz1cImJlYWNvbi1tZXNzYWdlLWRpdmlkZXJcIiAqbmdJZj1cImJlYWNvbi5idXR0b25zPy5vbmUgfHwgYmVhY29uLmJ1dHRvbnM/LnR3b1wiPjwvZGl2PlxuXG5cdDxkaXYgY2xhc3M9XCJiZWFjb24tbWVzc2FnZS1mb290ZXJcIiAqbmdJZj1cImJlYWNvbi5idXR0b25zICYmIGJlYWNvbi5idXR0b25zPy5vbmUgJiYgYmVhY29uLmJ1dHRvbnM/LnR3b1wiPlxuXHRcdDxkaXY+PGJ1dHRvbiAoY2xpY2spPVwiYmVhY29uQnV0dG9uQ2xpY2soJGV2ZW50LCAxKVwiPnt7IGJlYWNvbi5idXR0b25zPy5vbmU/LnRleHQgfX08L2J1dHRvbj48L2Rpdj5cblx0XHQ8ZGl2PjxidXR0b24gKGNsaWNrKT1cImJlYWNvbkJ1dHRvbkNsaWNrKCRldmVudCwgMilcIj57eyBiZWFjb24uYnV0dG9ucz8udHdvPy50ZXh0IH19PC9idXR0b24+PC9kaXY+XG5cdDwvZGl2PlxuXG5cdDxkaXYgY2xhc3M9XCJiZWFjb24tbWVzc2FnZS1mb290ZXJcIiAqbmdJZj1cImJlYWNvbi5idXR0b25zICYmIGJlYWNvbi5idXR0b25zPy5vbmUgJiYgIWJlYWNvbj8uYnV0dG9ucz8udHdvXCI+XG5cdFx0PGRpdiBbY2xhc3NdPVwiYmVhY29uLmJ1dHRvbnM/Lm9uZT8ucG9zaXRpb24gPyAoJ2JlYWNvbi1tZXNzYWdlLWJ1dHRvbi1jb250YWluZXItJyArIGJlYWNvbj8uYnV0dG9ucz8ub25lPy5wb3NpdGlvbikgOiAnJ1wiPlxuXHRcdFx0PGJ1dHRvbiAoY2xpY2spPVwiYmVhY29uQnV0dG9uQ2xpY2soJGV2ZW50LCAxKVwiPnt7IGJlYWNvbi5idXR0b25zPy5vbmU/LnRleHQgfX08L2J1dHRvbj5cblx0XHQ8L2Rpdj5cblx0PC9kaXY+XG5cbjwvZGl2PiJdfQ==
|
|
@@ -29,6 +29,7 @@ export class BeaconNotifyService {
|
|
|
29
29
|
beaconAllowDuplicate;
|
|
30
30
|
beaconFocus;
|
|
31
31
|
beaconFocusShine;
|
|
32
|
+
beaconFocusShineScale;
|
|
32
33
|
beaconOverlayColor;
|
|
33
34
|
beaconStyleClass;
|
|
34
35
|
beaconReplacementClass;
|
|
@@ -40,6 +41,7 @@ export class BeaconNotifyService {
|
|
|
40
41
|
beaconGlobalPreventClickClose;
|
|
41
42
|
beaconGlobalDuplicate;
|
|
42
43
|
beaconGlobalNoHoverEffect;
|
|
44
|
+
beaconGlobalFocusShineScale;
|
|
43
45
|
beaconGlobalPositioning;
|
|
44
46
|
beaconGlobalFocusOverlayColor;
|
|
45
47
|
beaconContainer;
|
|
@@ -87,6 +89,7 @@ export class BeaconNotifyService {
|
|
|
87
89
|
globalConfig.animationClass && this.resolveGlobalPropertyConfig(globalConfig.animationClass, 'animation');
|
|
88
90
|
globalConfig.position && (this.beaconGlobalPositioning = globalConfig.position);
|
|
89
91
|
globalConfig.noHoverEffect && (this.beaconGlobalNoHoverEffect = globalConfig.noHoverEffect);
|
|
92
|
+
globalConfig.shineScale && (this.beaconGlobalFocusShineScale = globalConfig.shineScale);
|
|
90
93
|
}
|
|
91
94
|
// Resolve global config / for property
|
|
92
95
|
resolveGlobalPropertyConfig(config, property) {
|
|
@@ -367,9 +370,10 @@ export class BeaconNotifyService {
|
|
|
367
370
|
return this;
|
|
368
371
|
}
|
|
369
372
|
// Focus beacon on center screen
|
|
370
|
-
shine(overlayColor) {
|
|
373
|
+
shine(scale, overlayColor) {
|
|
371
374
|
overlayColor && (this.beaconOverlayColor = overlayColor);
|
|
372
375
|
this.beaconFocusShine = this.beaconFocus = true;
|
|
376
|
+
scale && (this.beaconFocusShineScale = scale);
|
|
373
377
|
return this;
|
|
374
378
|
}
|
|
375
379
|
// Add button for beacon
|
|
@@ -421,6 +425,7 @@ export class BeaconNotifyService {
|
|
|
421
425
|
config.animationClass && (this.beaconAnimationClass = config.animationClass);
|
|
422
426
|
config.overlayColor && (this.beaconOverlayColor = config.overlayColor);
|
|
423
427
|
config.noHoverEffect && (this.beaconNoHoverEffect = config.noHoverEffect);
|
|
428
|
+
config.shineScale && (this.beaconFocusShineScale = config.shineScale);
|
|
424
429
|
return this;
|
|
425
430
|
}
|
|
426
431
|
// create notification beacon
|
|
@@ -454,6 +459,7 @@ export class BeaconNotifyService {
|
|
|
454
459
|
focus: this.beaconFocus,
|
|
455
460
|
shine: this.beaconFocusShine,
|
|
456
461
|
noHoverEffect: this.beaconNoHoverEffect || this.beaconGlobalNoHoverEffect,
|
|
462
|
+
shineScale: this.beaconFocusShineScale || this.beaconGlobalFocusShineScale,
|
|
457
463
|
signature
|
|
458
464
|
};
|
|
459
465
|
// Sanitize icon if passed
|
|
@@ -602,4 +608,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImpor
|
|
|
602
608
|
type: Inject,
|
|
603
609
|
args: [BEACON_GLOBAL_CONFIG]
|
|
604
610
|
}] }] });
|
|
605
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVhY29uLW5vdGlmeS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9iZWFjb24tbm90aWZ5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQWEsWUFBWSxFQUFjLE1BQU0sZUFBZSxDQUFDO0FBR3hGLE9BQU8sRUFXTCxvQkFBb0IsRUFDcEIsb0JBQW9CLEVBQ3BCLGlCQUFpQixFQUNqQixnQkFBZ0IsRUFDakIsTUFBTSxTQUFTLENBQUM7OztBQUtqQixNQUFNLE9BQU8sbUJBQW1CO0lBcURWO0lBQ29CO0lBckRoQyxxQkFBcUIsR0FBRyxnQkFBZ0IsQ0FBQTtJQUN4QyxlQUFlLEdBQWlEO1FBQ3RFLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsc0JBQXNCLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRTtRQUN6SixLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLHNCQUFzQixFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUU7UUFDekosSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxxQkFBcUIsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUs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TUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxRQUFRLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ2xLLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxRQUFRLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ2xLLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQzNKLE1BQU0sRUFBRSxPQUFPLEVBQUUsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxRQUFRLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQzFLLE1BQU0sRUFBRSxPQUFPLEVBQUUsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxD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TSxFQUFFLElBQUk7Z0JBQ1osRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHO2FBQ1YsQ0FBQyxDQUFBO1lBRUYsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQ2pCLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELCtCQUErQjtJQUN2QixxQkFBcUIsQ0FBQyxTQUFpQjtRQUM3QyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLElBQUksU0FBUyxDQUFDLENBQUE7UUFDeEUsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLFVBQVUsU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUE7UUFDM0YsT0FBTyxPQUFPLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLElBQUksR0FBRyxDQUFDLENBQUE7SUFDMUUsQ0FBQzt1R0Fub0JVLG1CQUFtQiw4Q0FzRHBCLG9CQUFvQjsyR0F0RG5CLG1CQUFtQixjQUZsQixNQUFNOzsyRkFFUCxtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkF1REksTUFBTTsyQkFBQyxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3QsIFZpZXdDaGlsZCwgRXZlbnRFbWl0dGVyLCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIsIFNhZmVIdG1sIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBCZWFjb25Ob3RpZnlDb21wb25lbnQgfSBmcm9tICcuL2JlYWNvbi9iZWFjb24uY29tcG9uZW50JztcbmltcG9ydCB7XG4gIElCZWFjb25Db25maWcsXG4gIElCZWFjb25JbmxpbmVDb25maWcsXG4gIElCZWFjb25HbG9iYWxDb25maWcsXG4gIElCZWFjb25UeXBlLFxuICBJQmVhY29uUG9zaXRpb25Db25maWcsXG4gIElCZWFjb25FdmVudCxcbiAgSUJlYWNvbldhdGNoZWRFdmVudCxcbiAgSUJlYWNvbkV2ZW50TWVzc2FnZSxcbiAgSUJlYWNvblR5cGVJY29uLFxuICBJQmVhY29uQnV0dG9uVHlwZSxcbiAgQkVBQ09OX0dMT0JBTF9DT05GSUcsXG4gIEJFQUNPTl9PVkVSTEFZX0NPTE9SLFxuICBCRUFDT05fT1ZFUkxBWV9JRCxcbiAgQkVBQ09OX1RZUEVfS0VZU1xufSBmcm9tICcuL3R5cGVzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQmVhY29uTm90aWZ5U2VydmljZSB7XG4gIHByaXZhdGUgYmVhY29uRGVmYXVsdEljb25LZXlzID0gQkVBQ09OX1RZUEVfS0VZU1xuICBwcml2YXRlIGJlYWNvbkNvbmZpZ01hcDogeyBba2V5OiBzdHJpbmddOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9IH0gPSB7XG4gICAgYWxlcnQ6IHsgaWNvbjogdGhpcy5iZWFjb25EZWZhdWx0SWNvbktleXNbMF0sIGZvbnRJY29uOiAnZmFsc2UnLCBjbGFzczogJ2JlYWNvbi1tZXNzYWdlLWFsZXJ0JywgdGl0bGU6ICdBbGVydCcsIHN0eWxlOiAnJywgYW5pbWF0aW9uOiAnJywgdHlwZTogJ2FsZXJ0JyB9LFxuICAgIGVycm9yOiB7IGljb246IHRoaXMuYmVhY29uRGVmYXVsdEljb25LZXlzWzFdLCBmb250SWNvbjogJ2ZhbHNlJywgY2xhc3M6ICdiZWFjb24tbWVzc2FnZS1lcnJvcicsIHRpdGxlOiAnRXJyb3InLCBzdHlsZTogJycsIGFuaW1hdGlvbjogJycsIHR5cGU6ICdlcnJvcicgfSxcbiAgICBpbmZvOiB7IGljb246IHRoaXMuYmVhY29uRGVmYXVsdEljb25LZXlzWzJdLCBmb250SWNvbjogJ2ZhbHNlJywgY2xhc3M6ICdiZWFjb24tbWVzc2FnZS1pbmZvJywgdGl0bGU6ICdJbmZvcm1hdGlvbicsIHN0eWxlOiAnJywgYW5pbWF0aW9uOiAnJywgdHlwZTogJ2luZm8nIH0sXG4gICAgc3VjY2VzczogeyBpY29uOiB0aGlzLmJlYWNvbkRlZmF1bHRJY29uS2V5c1szXSwgZm9udEljb246ICdmYWxzZScsIGNsYXNzOiAnYmVhY29uLW1lc3NhZ2Utc3VjY2VzcycsIHRpdGxlOiAnU3VjY2VzcycsIHN0eWxlOiAnJywgYW5pbWF0aW9uOiAnJywgdHlwZTogJ3N1Y2Nlc3MnIH0sXG4gICAgd2FybmluZzogeyBpY29uOiB0aGlzLmJlYWNvbkRlZmF1bHRJY29uS2V5c1s0XSwgZm9udEljb246ICdmYWxzZScsIGNsYXNzOiAnYmVhY29uLW1lc3NhZ2Utd2FybmluZycsIHRpdGxlOiAnV2FybmluZycsIHN0eWxlOiAnJywgYW5pbWF0aW9uOiAnJywgdHlwZTogJ3dhcm5pbmcnIH1cbiAgfVxuICBwcml2YXRlIGJlYWNvblR5cGVNYXA6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7XG4gICAgYTogJ3N1Y2Nlc3MnLCBiOiAnZXJyb3InLCBjOiAnd2FybmluZycsIGQ6ICdpbmZvJywgZTogJ2FsZXJ0J1xuICB9XG4gIHByaXZhdGUgYmVhY29uVGl0bGU/OiBzdHJpbmdcbiAgcHJpdmF0ZSBiZWFjb25NZXNzYWdlPzogc3RyaW5nXG4gIHByaXZhdGUgYmVhY29uSWNvbj86IHN0cmluZ1xuICBwcml2YXRlIGJlYWNvbk1hbnVhbElkPzogc3RyaW5nXG4gIHByaXZhdGUgYmVhY29uU2VsZWN0ZWRNYW51YWxJZD86IHN0cmluZ1xuICBwcml2YXRlIGJlYWNvbkljb25Gcm9tRm9udD86IHRydWVcbiAgcHJpdmF0ZSBiZWFjb25TdGF0aWM/OiB0cnVlIHwgbnVtYmVyXG4gIHByaXZhdGUgYmVhY29uRml4ZWQ/OiB0cnVlXG4gIHByaXZhdGUgYmVhY29uQmxvY2tPdGhlcnM/OiB0cnVlXG4gIHByaXZhdGUgYmVhY29uUHJldmVudENsaWNrQ2xvc2U/OiB0cnVlXG4gIHByaXZhdGUgYmVhY29uQWxsb3dEdXBsaWNhdGU/OiB0cnVlXG4gIHByaXZhdGUgYmVhY29uRm9jdXM/OiB0cnVlXG4gIHByaXZhdGUgYmVhY29uRm9jdXNTaGluZT86IHRydWVcbiAgcHJpdmF0ZSBiZWFjb25PdmVybGF5Q29sb3I/OiBzdHJpbmdcbiAgcHJpdmF0ZSBiZWFjb25TdHlsZUNsYXNzPzogc3RyaW5nXG4gIHByaXZhdGUgYmVhY29uUmVwbGFjZW1lbnRDbGFzcz86IHN0cmluZ1xuICBwcml2YXRlIGJlYWNvbkFuaW1hdGlvbkNsYXNzPzogc3RyaW5nXG4gIHByaXZhdGUgYmVhY29uTm9Ib3ZlckVmZmVjdD86IHRydWVcbiAgcHJpdmF0ZSBiZWFjb25HbG9iYWxTdGF0aWM/OiB0cnVlIHwgbnVtYmVyXG4gIHByaXZhdGUgYmVhY29uR2xvYmFsRml4ZWQ/OiB0cnVlXG4gIHByaXZhdGUgYmVhY29uR2xvYmFsQmxvY2tPdGhlcnM/OiB0cnVlXG4gIHByaXZhdGUgYmVhY29uR2xvYmFsUHJldmVudENsaWNrQ2xvc2U/OiB0cnVlXG4gIHByaXZhdGUgYmVhY29uR2xvYmFsRHVwbGljYXRlPzogYm9vbGVhblxuICBwcml2YXRlIGJlYWNvbkdsb2JhbE5vSG92ZXJFZmZlY3Q/OiB0cnVlXG4gIHByaXZhdGUgYmVhY29uR2xvYmFsUG9zaXRpb25pbmc/OiBJQmVhY29uUG9zaXRpb25Db25maWdcbiAgcHJpdmF0ZSBiZWFjb25HbG9iYWxGb2N1c092ZXJsYXlDb2xvcj86IHN0cmluZ1xuICBwcml2YXRlIGJlYWNvbkNvbnRhaW5lciE6IEVsZW1lbnRSZWZcbiAgcHJpdmF0ZSBiZWFjb25EZWZhdWx0QW5pbWF0aW9uQ2xhc3NOYW1lOiBzdHJpbmcgPSAnYmVhY29uLW1lc3NhZ2UtY29udHJvbC1hbmltYXRlJ1xuICBwcml2YXRlIGJlYWNvblN1Y2Nlc3NvckJsb2NrZXJBdXRvSWQ/OiBzdHJpbmdcbiAgcHJpdmF0ZSBiZWFjb25XaXRoQWN0aXZlRm9jdXNBdXRvSWQ/OiBzdHJpbmdcbiAgcHJpdmF0ZSBiZWFjb25CdXR0b25zOiBJQmVhY29uQnV0dG9uVHlwZSA9IHt9XG4gIHByaXZhdGUgYmVhY29uRm9jdXNPcmRlckxpYnJhcnk6IEFycmF5PHN0cmluZz4gPSBbXVxuICBwcml2YXRlIGJlYWNvblN1YnNjcmliZWRFdmVudExpYnJhcnk6IHsgW2tleTogc3RyaW5nXTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfCBFdmVudEVtaXR0ZXI8SUJlYWNvbkV2ZW50PiB9IH0gPSB7fVxuICBwcml2YXRlIGJlYWNvbldhdGNoZWRFdmVudExpYnJhcnk6IE1hcDxzdHJpbmcsIHN0cmluZz4gPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nPihbXSlcbiAgcHJpdmF0ZSBiZWFjb25XYXRjaGVkRXZlbnRUYXNrTWFzdGVyOiBFdmVudEVtaXR0ZXI8SUJlYWNvbldhdGNoZWRFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPElCZWFjb25XYXRjaGVkRXZlbnQ+KClcbiAgcHJpdmF0ZSBiZWFjb25BbGxFdmVudFRhc2tNYXN0ZXI6IEV2ZW50RW1pdHRlcjxJQmVhY29uV2F0Y2hlZEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8SUJlYWNvbldhdGNoZWRFdmVudD4oKVxuICBwcml2YXRlIGJlYWNvbkZvY3VzT3ZlcmxheURPTT86IEhUTUxFbGVtZW50XG4gIHB1YmxpYyBiZWFjb25FdmVudFRhc2tNYXN0ZXI6IEV2ZW50RW1pdHRlcjx7IFtrZXk6IHN0cmluZ106IGJvb2xlYW58IHN0cmluZyB9PiA9IG5ldyBFdmVudEVtaXR0ZXI8eyBba2V5OiBzdHJpbmddOiBib29sZWFuIHwgc3RyaW5nIH0+KClcbiAgcHVibGljIGJlYWNvbkxpYnJhcnk6IEFycmF5PElCZWFjb25Db25maWc+ID0gW11cbiAgcHVibGljIGJlYWNvbkxpYnJhcnlRdWV1ZTogQXJyYXk8SUJlYWNvbkNvbmZpZz4gPSBbXVxuICBcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzYW5pdGl6ZXI6IERvbVNhbml0aXplcixcbiAgICBASW5qZWN0KEJFQUNPTl9HTE9CQUxfQ09ORklHKSBwcml2YXRlIGdsb2JhbENvbmZpZz86IElCZWFjb25HbG9iYWxDb25maWcpIHtcbiAgICB0aGlzLmdsb2JhbENvbmZpZyAmJiB0aGlzLnJlc29sdmVHbG9iYWxDb25maWcodGhpcy5nbG9iYWxDb25maWcpXG4gICAgLy8gUmVzb2x2ZSBldmVudHNcbiAgICB0aGlzLnJlc29sdmVCZWFjb25FdmVudHMoKVxuICB9XG5cbiAgLy8gUmVzb2x2ZSBnbG9iYWwgY29uZmlnXG4gIHByaXZhdGUgcmVzb2x2ZUdsb2JhbENvbmZpZyhnbG9iYWxDb25maWc6IElCZWFjb25HbG9iYWxDb25maWcpOiB2b2lkIHtcbiAgICBpZiAoZ2xvYmFsQ29uZmlnLnN0YXRpYykge1xuICAgICAgaWYgKHR5cGVvZiBnbG9iYWxDb25maWcuc3RhdGljID09ICdib29sZWFuJykge1xuICAgICAgICB0aGlzLmJlYWNvbkdsb2JhbEZpeGVkID0gdW5kZWZpbmVkXG4gICAgICAgIHRoaXMuYmVhY29uR2xvYmFsU3RhdGljID0gdHJ1ZVxuICAgICAgfSBlbHNlIHRoaXMuYmVhY29uR2xvYmFsU3RhdGljID0gZ2xvYmFsQ29uZmlnLnN0YXRpY1xuICAgIH1cblxuICAgIGlmIChnbG9iYWxDb25maWcuZml4ZWQpIHtcbiAgICAgIHRoaXMuYmVhY29uR2xvYmFsU3RhdGljID0gdW5kZWZpbmVkXG4gICAgICB0aGlzLmJlYWNvbkdsb2JhbEZpeGVkID0gdHJ1ZVxuICAgIH1cblxuICAgIGdsb2JhbENvbmZpZy5wcmV2ZW50Q2xpY2tDbG9zZSAmJiAodGhpcy5iZWFjb25HbG9iYWxQcmV2ZW50Q2xpY2tDbG9zZSA9IGdsb2JhbENvbmZpZy5wcmV2ZW50Q2xpY2tDbG9zZSlcbiAgICBnbG9iYWxDb25maWcuYmxvY2tPdGhlcnMgJiYgKHRoaXMuYmVhY29uR2xvYmFsQmxvY2tPdGhlcnMgPSBnbG9iYWxDb25maWcuYmxvY2tPdGhlcnMpXG4gICAgZ2xvYmFsQ29uZmlnLm92ZXJsYXlDb2xvciAmJiAodGhpcy5iZWFjb25HbG9iYWxGb2N1c092ZXJsYXlDb2xvciA9IGdsb2JhbENvbmZpZy5vdmVybGF5Q29sb3IpXG4gICAgZ2xvYmFsQ29uZmlnLmR1cGxpY2F0ZSAmJiAodGhpcy5iZWFjb25HbG9iYWxEdXBsaWNhdGUgPSBnbG9iYWxDb25maWcuZHVwbGljYXRlKVxuICAgIGdsb2JhbENvbmZpZy5pY29uICYmIHRoaXMucmVzb2x2ZUdsb2JhbEljb25Db25maWcoZ2xvYmFsQ29uZmlnLmljb24pXG4gICAgZ2xvYmFsQ29uZmlnLnN0eWxlQ2xhc3MgJiYgdGhpcy5yZXNvbHZlR2xvYmFsUHJvcGVydHlDb25maWcoZ2xvYmFsQ29uZmlnLnN0eWxlQ2xhc3MsICdzdHlsZScpXG4gICAgZ2xvYmFsQ29uZmlnLnJlcGxhY2VtZW50Q2xhc3MgJiYgdGhpcy5yZXNvbHZlR2xvYmFsUHJvcGVydHlDb25maWcoZ2xvYmFsQ29uZmlnLnJlcGxhY2VtZW50Q2xhc3MsICdjbGFzcycpXG4gICAgZ2xvYmFsQ29uZmlnLmFuaW1hdGlvbkNsYXNzICYmIHRoaXMucmVzb2x2ZUdsb2JhbFByb3BlcnR5Q29uZmlnKGdsb2JhbENvbmZpZy5hbmltYXRpb25DbGFzcywgJ2FuaW1hdGlvbicpXG4gICAgZ2xvYmFsQ29uZmlnLnBvc2l0aW9uICYmICh0aGlzLmJlYWNvbkdsb2JhbFBvc2l0aW9uaW5nID0gZ2xvYmFsQ29uZmlnLnBvc2l0aW9uKVxuICAgIGdsb2JhbENvbmZpZy5ub0hvdmVyRWZmZWN0ICYmICh0aGlzLmJlYWNvbkdsb2JhbE5vSG92ZXJFZmZlY3QgPSBnbG9iYWxDb25maWcubm9Ib3ZlckVmZmVjdClcbiAgfVxuXG4gIC8vIFJlc29sdmUgZ2xvYmFsIGNvbmZpZyAvIGZvciBwcm9wZXJ0eVxuICBwcml2YXRlIHJlc29sdmVHbG9iYWxQcm9wZXJ0eUNvbmZpZyhjb25maWc6IElCZWFjb25UeXBlLCBwcm9wZXJ0eTogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uZmlnLmFsZXJ0ICYmICh0aGlzLmJlYWNvbkNvbmZpZ01hcC5hbGVydFtwcm9wZXJ0eV0gPSBjb25maWcuYWxlcnQpXG4gICAgY29uZmlnLmVycm9yICYmICh0aGlzLmJlYWNvbkNvbmZpZ01hcC5lcnJvcltwcm9wZXJ0eV0gPSBjb25maWcuZXJyb3IpXG4gICAgY29uZmlnLmluZm8gJiYgKHRoaXMuYmVhY29uQ29uZmlnTWFwLmluZm9bcHJvcGVydHldID0gY29uZmlnLmluZm8pXG4gICAgY29uZmlnLnN1Y2Nlc3MgJiYgKHRoaXMuYmVhY29uQ29uZmlnTWFwLnN1Y2Nlc3NbcHJvcGVydHldID0gY29uZmlnLnN1Y2Nlc3MpXG4gICAgY29uZmlnLndhcm5pbmcgJiYgKHRoaXMuYmVhY29uQ29uZmlnTWFwLndhcm5pbmdbcHJvcGVydHldID0gY29uZmlnLndhcm5pbmcpXG4gIH1cblxuICAvLyBSZXNvbHZlIGdsb2JhbCBjb25maWcgLyBmb3IgaWNvbnNcbiAgcHJpdmF0ZSByZXNvbHZlR2xvYmFsSWNvbkNvbmZpZyhjb25maWc6IElCZWFjb25UeXBlSWNvbik6IHZvaWQge1xuICAgIGNvbmZpZz8uYWxlcnQ/Lmljb24gJiYgKHRoaXMuYmVhY29uQ29uZmlnTWFwLmFsZXJ0Lmljb24gPSBjb25maWcuYWxlcnQuaWNvbikgJiYgKHRoaXMuYmVhY29uQ29uZmlnTWFwLmFsZXJ0LmZvbnRJY29uID0gU3RyaW5nKChjb25maWc/LmFsZXJ0Py5mb250SWNvbiB8fCBmYWxzZSkpKVxuICAgIGNvbmZpZz8uZXJyb3I/Lmljb24gJiYgKHRoaXMuYmVhY29uQ29uZmlnTWFwLmVycm9yLmljb24gPSBjb25maWcuZXJyb3IuaWNvbikgJiYgKHRoaXMuYmVhY29uQ29uZmlnTWFwLmVycm9yLmZvbnRJY29uID0gU3RyaW5nKChjb25maWc/LmVycm9yPy5mb250SWNvbiB8fCBmYWxzZSkpKVxuICAgIGNvbmZpZz8uaW5mbz8uaWNvbiAmJiAodGhpcy5iZWFjb25Db25maWdNYXAuaW5mby5pY29uID0gY29uZmlnLmluZm8uaWNvbikgJiYgKHRoaXMuYmVhY29uQ29uZmlnTWFwLmluZm8uZm9udEljb24gPSBTdHJpbmcoKGNvbmZpZy5pbmZvLmZvbnRJY29uIHx8IGZhbHNlKSkpXG4gICAgY29uZmlnPy5zdWNjZXNzPy5pY29uICYmICh0aGlzLmJlYWNvbkNvbmZpZ01hcC5zdWNjZXNzLmljb24gPSBjb25maWcuc3VjY2Vzcy5pY29uKSAmJiAodGhpcy5iZWFjb25Db25maWdNYXAuc3VjY2Vzcy5mb250SWNvbiA9IFN0cmluZygoY29uZmlnLnN1Y2Nlc3MuZm9udEljb24gfHwgZmFsc2UpKSlcbiAgICBjb25maWc/Lndhcm5pbmc/Lmljb24gJiYgKHRoaXMuYmVhY29uQ29uZmlnTWFwLndhcm5pbmcuaWNvbiA9IGNvbmZpZy53YXJuaW5nLmljb24pICYmICh0aGlzLmJlYWNvbkNvbmZpZ01hcC53YXJuaW5nLmZvbnRJY29uID0gU3RyaW5nKChjb25maWcud2FybmluZy5mb250SWNvbiB8fCBmYWxzZSkpKVxuICB9XG5cbiAgLy8gUmVzb2x2ZSBiZWFjb24gZXZlbnRzXG4gIHByaXZhdGUgcmVzb2x2ZUJlYWNvbkV2ZW50cygpOiB2b2lkIHtcbiAgICB0aGlzLmJlYWNvbkV2ZW50VGFza01hc3Rlci5zdWJzY3JpYmUoKG1lc3NhZ2U6IElCZWFjb25FdmVudE1lc3NhZ2UpID0+IHtcbiAgICAgIGNvbnN0IGlkID0gU3RyaW5nKG1lc3NhZ2UuaWQpXG4gICAgICBpZiAobWVzc2FnZS5kZWxldGUpIHtcbiAgICAgICAgdGhpcy5yZXNvbHZlUG9zc2libGVCbG9ja2VkQmVhY29ucyhpZClcbiAgICAgICAgdGhpcy5yZXNvbHZlUG9zc2libGVRdWV1ZWRGb2N1cyhpZClcbiAgICAgICAgdGhpcy5wZXJmb3JtRXZlbnRUYXNrKGlkLCB7IG9uOiBmYWxzZSwgb2ZmOiB0cnVlIH0pXG4gICAgICAgIGRlbGV0ZSB0aGlzLmJlYWNvblN1YnNjcmliZWRFdmVudExpYnJhcnlbaWRdXG4gICAgICB9IGVsc2UgaWYgKG1lc3NhZ2UubW91bnQpIHtcbiAgICAgICAgdGhpcy5wZXJmb3JtRXZlbnRUYXNrKGlkLCB7IG9uOiB0cnVlLCBvZmY6IGZhbHNlIH0pXG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIC8vIFBlcmZvcm0gZXZlbnQgdGFza1xuICBwcml2YXRlIHBlcmZvcm1FdmVudFRhc2soaWQ6IHN0cmluZywgZXZlbnRPYmplY3Q6IElCZWFjb25FdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHN0YW1wID0gdGhpcy5iZWFjb25TdWJzY3JpYmVkRXZlbnRMaWJyYXJ5W2lkXVxuICAgIGNvbnN0IGV2ZW50ID0gPEV2ZW50RW1pdHRlcjxJQmVhY29uRXZlbnQ+PnN0YW1wLmV2ZW50XG4gICAgY29uc3QgbWFudWFsSWQgPSBzdGFtcD8ubWFudWFsSWQ/LnRvU3RyaW5nKCkucmVwbGFjZSgvdW5kZWZpbmVkLywgJycpXG4gICAgZXZlbnQuZW1pdChldmVudE9iamVjdClcbiAgICB0aGlzLmJlYWNvbkFsbEV2ZW50VGFza01hc3Rlci5lbWl0KHsgaWQ6IG1hbnVhbElkIHx8IG51bGwsIHR5cGU6IFN0cmluZyhzdGFtcC50eXBlKSwgLi4uZXZlbnRPYmplY3QgfSlcblxuICAgIC8vIENoZWNrIGlmIHRoaXMgbWFudWFsIGlkIGlzIHdhdGNoZWRcbiAgICBpZiAobWFudWFsSWQgJiYgdGhpcy5iZWFjb25XYXRjaGVkRXZlbnRMaWJyYXJ5LmhhcyhtYW51YWxJZCkpIHtcbiAgICAgIHRoaXMuYmVhY29uV2F0Y2hlZEV2ZW50VGFza01hc3Rlci5lbWl0KHsgaWQ6IG1hbnVhbElkLCB0eXBlOiBTdHJpbmcoc3RhbXAudHlwZSksIC4uLmV2ZW50T2JqZWN0IH0pXG4gICAgICAvLyBDaGVjayBpZiBiZWFjb24gaXMgb2ZmXG4gICAgICBpZiAoZXZlbnRPYmplY3Qub2ZmKSBcbiAgICAgICAgdGhpcy5iZWFjb25XYXRjaGVkRXZlbnRMaWJyYXJ5LmRlbGV0ZShtYW51YWxJZClcbiAgICB9XG4gIH1cblxuICAvLyBSZXNvbHZlIHBvc3NpYmxlIGJsb2NrZWQgYmVhY29uc1xuICBwcml2YXRlIHJlc29sdmVQb3NzaWJsZUJsb2NrZWRCZWFjb25zKGlkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAvLyBDaGVjayBpZiB0aGlzIGlkIGlzIGJsb2NraW5nIG90aGVyc1xuICAgIGlmIChpZCA9PSB0aGlzLmJlYWNvblN1Y2Nlc3NvckJsb2NrZXJBdXRvSWQpIHtcbiAgICAgIGlmICh0aGlzLmJlYWNvbkxpYnJhcnlRdWV1ZS5sZW5ndGgpIHtcbiAgICAgICAgY29uc3QgcXVldWVMZW5ndGggPSB0aGlzLmJlYWNvbkxpYnJhcnlRdWV1ZS5sZW5ndGhcbiAgICAgICAgLy8gTG9vcCB0aHJvdWdoIHF1ZXVlXG4gICAgICAgIGZvciAobGV0IHggPSAwOyB4IDwgcXVldWVMZW5ndGg7IHgrKykge1xuICAgICAgICAgIGNvbnN0IG5leHRJbkxpbmUgPSA8SUJlYWNvbkNvbmZpZz50aGlzLmJlYWNvbkxpYnJhcnlRdWV1ZS5zaGlmdCgpXG5cbiAgICAgICAgICAvLyBBZGQgbWVzc2FnZSB0byBsaWJyYXJ5XG4gICAgICAgICAgaWYgKHRoaXMuZ2V0QmVhY29uR2xvYmFsUG9zaXRpb25Db25maWc/LnRvcEJvdHRvbSA9PSAndG9wJylcbiAgICAgICAgICAgIHRoaXMuYmVhY29uTGlicmFyeS51bnNoaWZ0KG5leHRJbkxpbmUpXG4gICAgICAgICAgZWxzZSB0aGlzLmJlYWNvbkxpYnJhcnkucHVzaChuZXh0SW5MaW5lKSAgICBcblxuICAgICAgICAgIC8vIENoZWNrIGlmIHNldCB0byBibG9ja1xuICAgICAgICAgIGlmIChuZXh0SW5MaW5lLmJsb2NrT3RoZXJzKSB7XG4gICAgICAgICAgICB0aGlzLmJlYWNvblN1Y2Nlc3NvckJsb2NrZXJBdXRvSWQgPSBuZXh0SW5MaW5lLmJpZFxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBDaGVjayBpZiBubyBuZXcgYmVhY29uIGlzIHNldCBhcyBibG9ja2VyIGFuZCB1bnNldCBwcmV2aW91cyB2YWx1ZVxuICAgICAgICBpZiAoaWQgPT0gdGhpcy5iZWFjb25TdWNjZXNzb3JCbG9ja2VyQXV0b0lkKSBcbiAgICAgICAgICB0aGlzLmJlYWNvblN1Y2Nlc3NvckJsb2NrZXJBdXRvSWQgPSB1bmRlZmluZWRcbiAgICAgIH1cbiAgICAgIGVsc2UgdGhpcy5iZWFjb25TdWNjZXNzb3JCbG9ja2VyQXV0b0lkID0gdW5kZWZpbmVkXG4gICAgfVxuICB9XG5cbiAgLy8gUmVzb2x2ZSBxdWV1ZWQgYmVhY29uIGZvY3VzXG4gIHByaXZhdGUgcmVzb2x2ZVBvc3NpYmxlUXVldWVkRm9jdXMoaWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIC8vIENoZWNrIGlmIHRoaXMgaWQgaXMgYWN0aXZlIGZvY3VzIGJlYWNvblxuICAgIGlmIChpZCA9PSB0aGlzLmJlYWNvbldpdGhBY3RpdmVGb2N1c0F1dG9JZCkge1xuICAgICAgaWYgKHRoaXMuYmVhY29uRm9jdXNPcmRlckxpYnJhcnkubGVuZ3RoKSB7XG4gICAgICAgIC8vIFBhc3MgdGhlIG5leHQgZm9jdXNcbiAgICAgICAgdGhpcy5iZWFjb25XaXRoQWN0aXZlRm9jdXNBdXRvSWQgPSB0aGlzLmJlYWNvbkZvY3VzT3JkZXJMaWJyYXJ5LnNoaWZ0KClcbiAgICAgICAgdGhpcy5iZWFjb25FdmVudFRhc2tNYXN0ZXIuZW1pdCh7IGF1dG9EZXRlY3ROZXh0Rm9jdXNCZWFjb246IHRydWUgfSlcbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuICAgICAgICB0aGlzLmJlYWNvbldpdGhBY3RpdmVGb2N1c0F1dG9JZCA9IHVuZGVmaW5lZFxuICAgICAgICB0aGlzLmRlc3Ryb3lCZWFjb25Gb2N1c092ZXJsYXkoKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIEdlbmVyYXRlIHVuaXF1ZSBpZCBmb3IgaXRlbVxuICBwcml2YXRlIGdldCBnZXRJZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBjcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKG5ldyBVaW50MzJBcnJheSgyKSkudG9TdHJpbmcoKS5zcGxpdCgnLCcpLmpvaW4oJycpXG4gIH1cblxuICAvLyBTZXQgYmVhY29uIGNvbnRhaW5lclxuICBwdWJsaWMgc2V0QmVhY29uQ29udGFpbmVyKGNvbnRhaW5lcjogRWxlbWVudFJlZik6IHZvaWQge1xuICAgIHRoaXMuYmVhY29uQ29udGFpbmVyID0gY29udGFpbmVyXG4gIH1cblxuICAvLyBHZXQgYmVhY29uIGNvbnRhaW5lclxuICBwdWJsaWMgZ2V0IGdldEJlYWNvbkNvbnRhaW5lcigpOiBFbGVtZW50UmVmIHtcbiAgICByZXR1cm4gdGhpcy5iZWFjb25Db250YWluZXJcbiAgfVxuXG4gIC8vIEdldCBiZWFjb24gZ2xvYmFsIHBvc2l0aW9uIGNvbmZpZ1xuICBwdWJsaWMgZ2V0IGdldEJlYWNvbkdsb2JhbFBvc2l0aW9uQ29uZmlnKCk6IElCZWFjb25Qb3NpdGlvbkNvbmZpZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuYmVhY29uR2xvYmFsUG9zaXRpb25pbmdcbiAgfVxuXG4gIC8vIEdldCBkZWZhdWx0IGljb24ga2V5c1xuICBwdWJsaWMgZ2V0IGdldEJlYWNvbkRlZmF1bHRJY29uS2V5cygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuYmVhY29uRGVmYXVsdEljb25LZXlzXG4gIH1cblxuICAvLyBHZXQgYWN0aXZlIGZvY3VzIGJlYWNvbiBpZFxuICBwdWJsaWMgZ2V0IGdldEFjdGl2ZUZvY3VzQmVhY29uSWQoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5iZWFjb25XaXRoQWN0aXZlRm9jdXNBdXRvSWRcbiAgfVxuXG4gIC8vIENyZWF0ZSBvdmVybGF5IGZvciBmb2N1c2VkIGJlYWNvblxuICBwdWJsaWMgY3JlYXRlQmVhY29uRm9jdXNPdmVybGF5KG92ZXJsYXlDb2xvcj86IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IG92ZXJsYXkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKVxuICAgIG92ZXJsYXkuc2V0QXR0cmlidXRlKCdpZCcsIEJFQUNPTl9PVkVSTEFZX0lEKVxuICAgIG92ZXJsYXkuc3R5bGUucG9zaXRpb24gPSAnZml4ZWQnXG4gICAgb3ZlcmxheS5zdHlsZS50b3AgPSAnMCdcbiAgICBvdmVybGF5LnN0eWxlLmJvdHRvbSA9ICcwJ1xuICAgIG92ZXJsYXkuc3R5bGUucmlnaHQgPSAnMCdcbiAgICBvdmVybGF5LnN0eWxlLmxlZnQgPSAnMCdcbiAgICBvdmVybGF5LnN0eWxlLnpJbmRleCA9ICc5MDAyJ1xuICAgIG92ZXJsYXkuc3R5bGUuYmFja2dyb3VuZCA9IG92ZXJsYXlDb2xvciB8fCB0aGlzLmJlYWNvbkdsb2JhbEZvY3VzT3ZlcmxheUNvbG9yIHx8IEJFQUNPTl9PVkVSTEFZX0NPTE9SXG4gICAgZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdyA9ICdoaWRkZW4nXG5cbiAgICAvLyBQYXNzIG92ZXJsYXkgZWxlbWVudFxuICAgIHRoaXMuYmVhY29uRm9jdXNPdmVybGF5RE9NID0gb3ZlcmxheVxuXG4gICAgdGhpcy5iZWFjb25Db250YWluZXIubmF0aXZlRWxlbWVudC5hcHBlbmRDaGlsZChvdmVybGF5KVxuICB9XG5cbiAgLy8gUmVwYWludCBvdmVybGF5IGZvciBmb2N1c2VkIGJlYWNvblxuICBwdWJsaWMgcmVwYWludEJlYWNvbkZvY3VzT3ZlcmxheShvdmVybGF5Q29sb3I/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5iZWFjb25Gb2N1c092ZXJsYXlET00pXG4gICAgICB0aGlzLmJlYWNvbkZvY3VzT3ZlcmxheURPTS5zdHlsZS5iYWNrZ3JvdW5kID0gb3ZlcmxheUNvbG9yIHx8IHRoaXMuYmVhY29uR2xvYmFsRm9jdXNPdmVybGF5Q29sb3IgfHwgQkVBQ09OX09WRVJMQVlfQ09MT1JcbiAgfVxuXG4gIC8vIERlc3Ryb3kgb3ZlcmxheSBmb3IgZm9jdXNlZCBiZWFjb25cbiAgcHVibGljIGRlc3Ryb3lCZWFjb25Gb2N1c092ZXJsYXkoKTogdm9pZCB7XG4gICAgZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdyA9ICdhdXRvJ1xuICAgIHRoaXMuYmVhY29uQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignZGl2IycgKyBCRUFDT05fT1ZFUkxBWV9JRCkucmVtb3ZlKClcbiAgICB0aGlzLmJlYWNvbkZvY3VzT3ZlcmxheURPTSA9IHVuZGVmaW5lZFxuICB9XG5cbiAgLy8gU2V0IGlkIGZvciBiZWFjb25cbiAgcHVibGljIGlkKGlkOiBzdHJpbmcpOiBCZWFjb25Ob3RpZnlTZXJ2aWNlIHtcbiAgICBpZCAmJiAodGhpcy5iZWFjb25NYW51YWxJZCA9IGlkKVxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICAvLyBTZXQgbm90aWZpY2F0aW9uIHRpdGxlXG4gIHB1YmxpYyB0aXRsZSh0aXRsZTogc3RyaW5nKTogQmVhY29uTm90aWZ5U2VydmljZSB7XG4gICAgdGl0bGUgJiYgKHRoaXMuYmVhY29uVGl0bGUgPSB0aXRsZSlcbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbiAgLy8gU2V0IG5vdGlmaWNhdGlvbiBtZXNzYWdlXG4gIHB1YmxpYyBtZXNzYWdlKG1lc3NhZ2U6IHN0cmluZyk6IEJlYWNvbk5vdGlmeVNlcnZpY2Uge1xuICAgIG1lc3NhZ2UgJiYgKHRoaXMuYmVhY29uTWVzc2FnZSA9IG1lc3NhZ2UpXG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIC8vIEhpZ2hsaWdodCBpZCBvZiBiZWFjb24gdG8gdXBkYXRlXG4gIHB1YmxpYyBzZWxlY3QoaWQ6IHN0cmluZyk6IEJlYWNvbk5vdGlmeVNlcnZpY2Uge1xuICAgIGlkICYmICh0aGlzLmJlYWNvblNlbGVjdGVkTWFudWFsSWQgPSBpZClcbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbiAgLy8gQ2hhbmdlIG5vdGlmaWNhdGlvbiB0aXRsZVxuICBwdWJsaWMgc2V0VGl0bGUodGl0bGU6IHN0cmluZyk6IHZvaWQge1xuICAgIC8vIENoZWNrIGZvciBhY3RpdmUgbWFudWFsIGlkIC8gYW5kIGlmIGEgYmVhY29uIGlzIHRpZWQgdG8gaXRcbiAgICBpZiAodGhpcy5iZWFjb25TZWxlY3RlZE1hbnVhbElkKSB7XG4gICAgICBjb25zdCBiZWFjb25JbmRleCA9IHRoaXMuYmVhY29uTGlicmFyeS5maW5kSW5kZXgoeCA9PiB4Lm1pZCA9PSB0aGlzLmJlYWNvblNlbGVjdGVkTWFudWFsSWQpXG4gICAgICBpZiAoYmVhY29uSW5kZXggPj0gMClcbiAgICAgICAgdGhpcy5iZWFjb25MaWJyYXJ5W2JlYWNvbkluZGV4XS50aXRsZSA9IHRpdGxlXG4gICAgfVxuICB9XG5cbiAgLy8gQ2hhbmdlIG5vdGlmaWNhdGlvbiBtZXNzYWdlXG4gIHB1YmxpYyBzZXRNZXNzYWdlKG1lc3NhZ2U6IHN0cmluZyk6IHZvaWQge1xuICAgIC8vIENoZWNrIGZvciBhY3RpdmUgbWFudWFsIGlkIC8gYW5kIGlmIGEgYmVhY29uIGlzIHRpZWQgdG8gaXRcbiAgICBpZiAodGhpcy5iZWFjb25TZWxlY3RlZE1hbnVhbElkKSB7XG4gICAgICBjb25zdCBiZWFjb25JbmRleCA9IHRoaXMuYmVhY29uTGlicmFyeS5maW5kSW5kZXgoeCA9PiB4Lm1pZCA9PSB0aGlzLmJlYWNvblNlbGVjdGVkTWFudWFsSWQpXG4gICAgICBpZiAoYmVhY29uSW5kZXggPj0gMClcbiAgICAgICAgdGhpcy5iZWFjb25MaWJyYXJ5W2JlYWNvbkluZGV4XS5ib2R5ID0gbWVzc2FnZVxuICAgIH1cbiAgfVxuXG4gIC8vIENoYW5nZSBub3RpZmljYXRpb24gdGl0bGUgJiBtZXNzYWdlXG4gIHB1YmxpYyBzZXRDb250ZW50KHRpdGxlOiBzdHJpbmcsIG1lc3NhZ2U6IHN0cmluZyk6IHZvaWQge1xuICAgIC8vIENoZWNrIGZvciBhY3RpdmUgbWFudWFsIGlkIC8gYW5kIGlmIGEgYmVhY29uIGlzIHRpZWQgdG8gaXRcbiAgICBpZiAodGhpcy5iZWFjb25TZWxlY3RlZE1hbnVhbElkKSB7XG4gICAgICBjb25zdCBiZWFjb25JbmRleCA9IHRoaXMuYmVhY29uTGlicmFyeS5maW5kSW5kZXgoeCA9PiB4Lm1pZCA9PSB0aGlzLmJlYWNvblNlbGVjdGVkTWFudWFsSWQpXG4gICAgICBpZiAoYmVhY29uSW5kZXggPj0gMClcbiAgICAgICAgdGhpcy5iZWFjb25MaWJyYXJ5W2JlYWNvbkluZGV4XS50aXRsZSA9IHRpdGxlXG4gICAgICAgIHRoaXMuYmVhY29uTGlicmFyeVtiZWFjb25JbmRleF0uYm9keSA9IG1lc3NhZ2VcbiAgICB9XG4gIH1cblxuICAvLyBVcGRhdGUgYmVhY29uIGJ1dHRvbiAxXG4gIHB1YmxpYyBzZXRCdXR0b25PbmUodGV4dDogc3RyaW5nLCBjYW5EaXNtaXNzPzogYm9vbGVhbiB8IG51bGwsIGNhbGxiYWNrPzogYW55LCBjYWxsYmFja0FyZ3M/OiBhbnlbXSB8IG51bGwsIHBvc2l0aW9uPzogJ2xlZnQnIHwgJ2NlbnRlcicgfCAncmlnaHQnKTogdm9pZCB7XG4gICAgLy8gQ2hlY2sgZm9yIGFjdGl2ZSBtYW51YWwgaWQgLyBhbmQgaWYgYSBiZWFjb24gaXMgdGllZCB0byBpdFxuICAgIGlmICh0aGlzLmJlYWNvblNlbGVjdGVkTWFudWFsSWQpIHtcbiAgICAgIGNvbnN0IGJlYWNvbkluZGV4ID0gdGhpcy5iZWFjb25MaWJyYXJ5LmZpbmRJbmRleCh4ID0+IHgubWlkID09IHRoaXMuYmVhY29uU2VsZWN0ZWRNYW51YWxJZClcbiAgICAgIGlmIChiZWFjb25JbmRleCA+PSAwKSB7XG4gICAgICAgICg8SUJlYWNvbkJ1dHRvblR5cGU+dGhpcy5iZWFjb25MaWJyYXJ5W2JlYWNvbkluZGV4XS5idXR0b25zKS5vbmUgPSB7XG4gICAgICAgICAgdGV4dDogdGV4dC5zdWJzdHJpbmcoMCwgMTUpLFxuICAgICAgICAgIGNhbkRpc21pc3MsXG4gICAgICAgICAgY2FsbGJhY2ssXG4gICAgICAgICAgY2FsbGJhY2tBcmdzLFxuICAgICAgICAgIHBvc2l0aW9uXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBVcGRhdGUgYmVhY29uIGJ1dHRvbiAyXG4gIHB1YmxpYyBzZXRCdXR0b25Ud28odGV4dDogc3RyaW5nLCBjYW5EaXNtaXNzPzogYm9vbGVhbiB8IG51bGwsIGNhbGxiYWNrPzogYW55LCBjYWxsYmFja0FyZ3M/OiBhbnlbXSB8IG51bGwsIHBvc2l0aW9uPzogJ2xlZnQnIHwgJ2NlbnRlcicgfCAncmlnaHQnKTogdm9pZCB7XG4gICAgLy8gQ2hlY2sgZm9yIGFjdGl2ZSBtYW51YWwgaWQgLyBhbmQgaWYgYSBiZWFjb24gaXMgdGllZCB0byBpdFxuICAgIGlmICh0aGlzLmJlYWNvblNlbGVjdGVkTWFudWFsSWQpIHtcbiAgICAgIGNvbnN0IGJlYWNvbkluZGV4ID0gdGhpcy5iZWFjb25MaWJyYXJ5LmZpbmRJbmRleCh4ID0+IHgubWlkID09IHRoaXMuYmVhY29uU2VsZWN0ZWRNYW51YWxJZClcbiAgICAgIGlmIChiZWFjb25JbmRleCA+PSAwKSB7XG4gICAgICAgIGlmICh0aGlzLmJlYWNvbkxpYnJhcnlbYmVhY29uSW5kZXhdLmJ1dHRvbnM/Lm9uZSkge1xuICAgICAgICAgICg8SUJlYWNvbkJ1dHRvblR5cGU+dGhpcy5iZWFjb25MaWJyYXJ5W2JlYWNvbkluZGV4XS5idXR0b25zKS50d28gPSB7XG4gICAgICAgICAgICB0ZXh0OiB0ZXh0LnN1YnN0cmluZygwLCAxNSksXG4gICAgICAgICAgICBjYW5EaXNtaXNzLFxuICAgICAgICAgICAgY2FsbGJhY2ssXG4gICAgICAgICAgICBjYWxsYmFja0FyZ3MsXG4gICAgICAgICAgICBwb3NpdGlvblxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHRoaXMuc2V0QnV0dG9uT25lKHRleHQsIGNhbkRpc21pc3MsIGNhbGxiYWNrLCBjYWxsYmFja0FyZ3MsIHBvc2l0aW9uKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFJlbW92ZSBiZWFjb24gYnV0dG9uIDFcbiAgcHVibGljIHJlbW92ZUJ1dHRvbk9uZSgpOiB2b2lkIHtcbiAgICAvLyBDaGVjayBmb3IgYWN0aXZlIG1hbnVhbCBpZCAvIGFuZCBpZiBhIGJlYWNvbiBpcyB0aWVkIHRvIGl0XG4gICAgaWYgKHRoaXMuYmVhY29uU2VsZWN0ZWRNYW51YWxJZCkge1xuICAgICAgY29uc3QgYmVhY29uSW5kZXggPSB0aGlzLmJlYWNvbkxpYnJhcnkuZmluZEluZGV4KHggPT4geC5taWQgPT0gdGhpcy5iZWFjb25TZWxlY3RlZE1hbnVhbElkKVxuICAgICAgaWYgKGJlYWNvbkluZGV4ID49IDApIHtcbiAgICAgICAgKDxJQmVhY29uQnV0dG9uVHlwZT50aGlzLmJlYWNvbkxpYnJhcnlbYmVhY29uSW5kZXhdLmJ1dHRvbnMpLm9uZSA9IHVuZGVmaW5lZFxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFJlbW92ZSBiZWFjb24gYnV0dG9uIDJcbiAgcHVibGljIHJlbW92ZUJ1dHRvblR3bygpOiB2b2lkIHtcbiAgICAvLyBDaGVjayBmb3IgYWN0aXZlIG1hbnVhbCBpZCAvIGFuZCBpZiBhIGJlYWNvbiBpcyB0aWVkIHRvIGl0XG4gICAgaWYgKHRoaXMuYmVhY29uU2VsZWN0ZWRNYW51YWxJZCkge1xuICAgICAgY29uc3QgYmVhY29uSW5kZXggPSB0aGlzLmJlYWNvbkxpYnJhcnkuZmluZEluZGV4KHggPT4geC5taWQgPT0gdGhpcy5iZWFjb25TZWxlY3RlZE1hbnVhbElkKVxuICAgICAgaWYgKGJlYWNvbkluZGV4ID49IDApIHtcbiAgICAgICAgKDxJQmVhY29uQnV0dG9uVHlwZT50aGlzLmJlYWNvbkxpYnJhcnlbYmVhY29uSW5kZXhdLmJ1dHRvbnMpLnR3byA9IHVuZGVmaW5lZFxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFJlbW92ZSBiZWFjb24gYnV0dG9uc1xuICBwdWJsaWMgcmVtb3ZlQnV0dG9ucygpOiB2b2lkIHtcbiAgICAvLyBDaGVjayBmb3IgYWN0aXZlIG1hbnVhbCBpZCAvIGFuZCBpZiBhIGJlYWNvbiBpcyB0aWVkIHRvIGl0XG4gICAgaWYgKHRoaXMuYmVhY29uU2VsZWN0ZWRNYW51YWxJZCkge1xuICAgICAgY29uc3QgYmVhY29uSW5kZXggPSB0aGlzLmJlYWNvbkxpYnJhcnkuZmluZEluZGV4KHggPT4geC5taWQgPT0gdGhpcy5iZWFjb25TZWxlY3RlZE1hbnVhbElkKVxuICAgICAgaWYgKGJlYWNvbkluZGV4ID49IDApIHtcbiAgICAgICAgKDxJQmVhY29uQnV0dG9uVHlwZT50aGlzLmJlYWNvbkxpYnJhcnlbYmVhY29uSW5kZXhdLmJ1dHRvbnMpLm9uZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgKDxJQmVhY29uQnV0dG9uVHlwZT50aGlzLmJlYWNvbkxpYnJhcnlbYmVhY29uSW5kZXhdLmJ1dHRvbnMpLnR3byA9IHVuZGVmaW5lZFxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFNldCBiZWFjb24gYXMgc3RhdGljIG9yIHdpdGggZGVsYXlcbiAgcHVibGljIHN0YXRpYyhkZWxheT86IG51bWJlcik6IEJlYWNvbk5vdGlmeVNlcnZpY2Uge1xuICAgIHRoaXMuYmVhY29uU3RhdGljID0gZGVsYXkgfHwgdHJ1ZVxuICAgIHRoaXMuYmVhY29uRml4ZWQgPSB1bmRlZmluZWRcbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbiAgLy8gU2V0IGJlYWNvbiBhcyBmaXhlZCB3aGljaCByZW1vdmVzIHRoZSBjbG9zZSBidXR0b24gYW5kIGRpc2FsbG93cyBjbG9zZSBvbiBjbGlja1xuICBwdWJsaWMgZml4ZWQoKTogQmVhY29uTm90aWZ5U2VydmljZSB7XG4gICAgdGhpcy5iZWFjb25TdGF0aWMgPSB1bmRlZmluZWRcbiAgICB0aGlzLmJlYWNvbkZpeGVkID0gdHJ1ZVxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICAvLyBBbGxvdyBiZWFjb24gdG8gYmxvY2sgb3RoZXJzXG4gIHB1YmxpYyBibG9jaygpOiBCZWFjb25Ob3RpZnlTZXJ2aWNlIHtcbiAgICB0aGlzLmJlYWNvbkJsb2NrT3RoZXJzID0gdHJ1ZVxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICAvLyBGb2N1cyBvbiBiZWFjb25cbiAgcHVibGljIGZvY3VzKG92ZXJsYXlDb2xvcj86IHN0cmluZyk6IEJlYWNvbk5vdGlmeVNlcnZpY2Uge1xuICAgIG92ZXJsYXlDb2xvciAmJiAodGhpcy5iZWFjb25PdmVybGF5Q29sb3IgPSBvdmVybGF5Q29sb3IpXG4gICAgdGhpcy5iZWFjb25Gb2N1cyA9IHRydWVcbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbiAgLy8gRm9jdXMgYmVhY29uIG9uIGNlbnRlciBzY3JlZW5cbiAgcHVibGljIHNoaW5lKG92ZXJsYXlDb2xvcj86IHN0cmluZyk6IEJlYWNvbk5vdGlmeVNlcnZpY2Uge1xuICAgIG92ZXJsYXlDb2xvciAmJiAodGhpcy5iZWFjb25PdmVybGF5Q29sb3IgPSBvdmVybGF5Q29sb3IpXG4gICAgdGhpcy5iZWFjb25Gb2N1c1NoaW5lID0gdGhpcy5iZWFjb25Gb2N1cyA9IHRydWVcbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbiAgLy8gQWRkIGJ1dHRvbiBmb3IgYmVhY29uXG4gIHB1YmxpYyBidXR0b24odGV4dDogc3RyaW5nLCBjYW5EaXNtaXNzPzogYm9vbGVhbiB8IG51bGwsIGNhbGxiYWNrPzogYW55LCBjYWxsYmFja0FyZ3M/OiBhbnlbXSB8IG51bGwsIHBvc2l0aW9uPzogJ2xlZnQnIHwgJ2NlbnRlcicgfCAncmlnaHQnKTogQmVhY29uTm90aWZ5U2VydmljZSB7XG4gICAgaWYgKCF0aGlzLmJlYWNvbkJ1dHRvbnM/Lm9uZSkge1xuICAgICAgdGhpcy5iZWFjb25CdXR0b25zLm9uZSA9IHtcbiAgICAgICAgdGV4dDogdGV4dC5zdWJzdHJpbmcoMCwgMTUpLFxuICAgICAgICBjYW5EaXNtaXNzLFxuICAgICAgICBjYWxsYmFjayxcbiAgICAgICAgY2FsbGJhY2tBcmdzLFxuICAgICAgICBwb3NpdGlvblxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodGhpcy5iZWFjb25CdXR0b25zLm9uZSAmJiAhdGhpcy5iZWFjb25CdXR0b25zLnR3bykge1xuICAgICAgdGhpcy5iZWFjb25CdXR0b25zLnR3byA9IHtcbiAgICAgICAgdGV4dDogdGV4dC5zdWJzdHJpbmcoMCwgMTUpLFxuICAgICAgICBjYW5EaXNtaXNzLFxuICAgICAgICBjYWxsYmFjayxcbiAgICAgICAgY2FsbGJhY2tBcmdzLFxuICAgICAgICBwb3NpdGlvblxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICAvLyBBbGxvdyBkdXBsaWNhdGUgZm9yIGJlYWNvblxuICBwdWJsaWMgZHVwbGljYXRlKCk6IEJlYWNvbk5vdGlmeVNlcnZpY2Uge1xuICAgIHRoaXMuYmVhY29uQWxsb3dEdXBsaWNhdGUgPSB0cnVlXG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIC8vIFNldCBjb25maWcgdmFsdWVzIGZvciBiZWFjb25cbiAgcHVibGljIGJ1aWxkKGNvbmZpZzogSUJlYWNvbklubGluZUNvbmZpZyk6IEJlYWNvbk5vdGlmeVNlcnZpY2Uge1xuICAgIGlmIChjb25maWcuc3RhdGljKSB7XG4gICAgICBpZiAodHlwZW9mIGNvbmZpZy5zdGF0aWMgPT0gJ2Jvb2xlYW4nKVxuICAgICAgICB0aGlzLnN0YXRpYygpXG4gICAgICBlbHNlIHRoaXMuc3RhdGljKE51bWJlcihjb25maWcuc3RhdGljKSlcbiAgICB9XG5cbiAgICBjb25maWcuZml4ZWQgJiYgdGhpcy5maXhlZCgpXG4gICAgY29uZmlnLmR1cGxpY2F0ZSAmJiB0aGlzLmR1cGxpY2F0ZSgpXG4gICAgY29uZmlnLnByZXZlbnRDbGlja0Nsb3NlICYmICh0aGlzLmJlYWNvblByZXZlbnRDbGlja0Nsb3NlID0gY29uZmlnLnByZXZlbnRDbGlja0Nsb3NlKVxuICAgIGNvbmZpZy5ibG9ja090aGVycyAmJiAodGhpcy5iZWFjb25CbG9ja090aGVycyA9IGNvbmZpZy5ibG9ja090aGVycylcbiAgICBjb25maWcuZm9jdXMgJiYgKHRoaXMuYmVhY29uRm9jdXMgPSBjb25maWcuZm9jdXMpXG4gICAgY29uZmlnLnNoaW5lICYmICh0aGlzLmJlYWNvbkZvY3VzU2hpbmUgPSB0aGlzLmJlYWNvbkZvY3VzID0gY29uZmlnLnNoaW5lKVxuICAgIGNvbmZpZy5pY29uICYmICh0aGlzLmJlYWNvbkljb24gPSBjb25maWcuaWNvbilcbiAgICBjb25maWcuZm9udEljb24gJiYgKHRoaXMuYmVhY29uSWNvbkZyb21Gb250ID0gY29uZmlnLmZvbnRJY29uKVxuICAgIGNvbmZpZy5zdHlsZUNsYXNzICYmICh0aGlzLmJlYWNvblN0eWxlQ2xhc3MgPSBjb25maWcuc3R5bGVDbGFzcylcbiAgICBjb25maWcucmVwbGFjZW1lbnRDbGFzcyAmJiAodGhpcy5iZWFjb25SZXBsYWNlbWVudENsYXNzID0gY29uZmlnLnJlcGxhY2VtZW50Q2xhc3MpXG4gICAgY29uZmlnLmFuaW1hdGlvbkNsYXNzICYmICh0aGlzLmJlYWNvbkFuaW1hdGlvbkNsYXNzID0gY29uZmlnLmFuaW1hdGlvbkNsYXNzKVxuICAgIGNvbmZpZy5hbmltYXRpb25DbGFzcyAmJiAodGhpcy5iZWFjb25BbmltYXRpb25DbGFzcyA9IGNvbmZpZy5hbmltYXRpb25DbGFzcylcbiAgICBjb25maWcub3ZlcmxheUNvbG9yICYmICh0aGlzLmJlYWNvbk92ZXJsYXlDb2xvciA9IGNvbmZpZy5vdmVybGF5Q29sb3IpXG4gICAgY29uZmlnLm5vSG92ZXJFZmZlY3QgJiYgKHRoaXMuYmVhY29uTm9Ib3ZlckVmZmVjdCA9IGNvbmZpZy5ub0hvdmVyRWZmZWN0KVxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICAvLyBjcmVhdGUgbm90aWZpY2F0aW9uIGJlYWNvblxuICBwcml2YXRlIGJlYWNvbihtZXNzYWdlOiBzdHJpbmcsIHR5cGU6IHN0cmluZyk6IEV2ZW50RW1pdHRlcjxJQmVhY29uRXZlbnQ+IHtcbiAgICAvLyBHZXQgc2lnbmF0dXJlXG4gICAgY29uc3Qgc2lnbmF0dXJlID0gd2luZG93LmJ0b2EoKHRoaXMuYmVhY29uVGl0bGUgfHwgdGhpcy5iZWFjb25Db25maWdNYXBbdHlwZV0udGl0bGUpICsgJy4nICsgbWVzc2FnZSlcbiAgICAvLyBHZW5lcmF0ZSBiZWFjb24gaWRcbiAgICBjb25zdCBiZWFjb25JZCA9IHRoaXMuZ2V0SWRcbiAgICAvLyBSZWdpc3RlciBiZWFjb24gaW4gZXZlbnQgbGlicmFyeVxuICAgIHRoaXMuYmVhY29uU3Vic2NyaWJlZEV2ZW50TGlicmFyeVtiZWFjb25JZF0gPSBPYmplY3QuY3JlYXRlKHt9KVxuICAgIC8vIENoZWNrIGZvciBkdXBsaWNhdGUgaWYgc2V0IHRvIHByZXZlbnQgb3IgcHJvY2VlZCBpZiB0dXJuZWQgb2ZmXG4gICAgaWYgKHRoaXMuYmVhY29uQWxsb3dEdXBsaWNhdGUgfHwgKChbdW5kZWZpbmVkLCBmYWxzZV0uaW5jbHVkZXModGhpcy5iZWFjb25HbG9iYWxEdXBsaWNhdGUpICYmIHRoaXMuaXNOZXdCZWFjb25BRHVwbGljYXRlKHNpZ25hdHVyZSkgPT0gITEpIHx8IHRoaXMuYmVhY29uR2xvYmFsRHVwbGljYXRlKSkge1xuICAgICAgY29uc3QgYmVhY29uT2JqZWN0OiBJQmVhY29uQ29uZmlnID0ge1xuICAgICAgICBiaWQ6IGJlYWNvbklkLFxuICAgICAgICBtaWQ6IHRoaXMuYmVhY29uTWFudWFsSWQsXG4gICAgICAgIHR5cGU6IHRoaXMuYmVhY29uQ29uZmlnTWFwW3R5cGVdLmNsYXNzLFxuICAgICAgICBpY29uOiB0aGlzLmJlYWNvbkljb24gfHwgdGhpcy5iZWFjb25Db25maWdNYXBbdHlwZV0uaWNvbixcbiAgICAgICAgZm9udEljb246IHRoaXMuYmVhY29uSWNvbkZyb21Gb250IHx8ICh0aGlzLmJlYWNvbkNvbmZpZ01hcFt0eXBlXS5mb250SWNvbiA9PSAndHJ1ZScgPyB0cnVlIDogdW5kZWZpbmVkKSxcbiAgICAgICAgdGl0bGU6IHRoaXMuYmVhY29uVGl0bGUgfHwgdGhpcy5iZWFjb25Db25maWdNYXBbdHlwZV0udGl0bGUsXG4gICAgICAgIHN0YXRpYzogdGhpcy5iZWFjb25TdGF0aWMgfHwgdGhpcy5iZWFjb25HbG9iYWxTdGF0aWMsXG4gICAgICAgIGZpeGVkOiB0aGlzLmJlYWNvbkZpeGVkIHx8IHRoaXMuYmVhY29uR2xvYmFsRml4ZWQsXG4gICAgICAgIHByZXZlbnRDbGlja0Nsb3NlOiB0aGlzLmJlYWNvblByZXZlbnRDbGlja0Nsb3NlIHx8IHRoaXMuYmVhY29uR2xvYmFsUHJldmVudENsaWNrQ2xvc2UsXG4gICAgICAgIHN0eWxlQ2xhc3M6IHRoaXMuYmVhY29uU3R5bGVDbGFzcyB8fCB0aGlzLmJlYWNvbkNvbmZpZ01hcFt0eXBlXS5zdHlsZSxcbiAgICAgICAgcmVwbGFjZW1lbnRDbGFzczogdGhpcy5iZWFjb25SZXBsYWNlbWVudENsYXNzLFxuICAgICAgICBhbmltYXRpb25DbGFzczogdGhpcy5iZWFjb25BbmltYXRpb25DbGFzcyB8fCB0aGlzLmJlYWNvbkNvbmZpZ01hcFt0eXBlXS5hbmltYXRpb24gfHwgdGhpcy5iZWFjb25EZWZhdWx0QW5pbWF0aW9uQ2xhc3NOYW1lLFxuICAgICAgICBibG9ja090aGVyczogdGhpcy5iZWFjb25CbG9ja090aGVycyB8fCB0aGlzLmJlYWNvbkdsb2JhbEJsb2NrT3RoZXJzLFxuICAgICAgICBidXR0b25zOiB0aGlzLmJlYWNvbkJ1dHRvbnMsXG4gICAgICAgIG92ZXJsYXlDb2xvcjogdGhpcy5iZWFjb25PdmVybGF5Q29sb3IsXG4gICAgICAgIGJvZHlIdG1sOiA8U2FmZUh0bWw+dGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwobWVzc2FnZSksXG4gICAgICAgIGJvZHk6IG1lc3NhZ2UsXG4gICAgICAgIGZvY3VzOiB0aGlzLmJlYWNvbkZvY3VzLFxuICAgICAgICBzaGluZTogdGhpcy5iZWFjb25Gb2N1c1NoaW5lLFxuICAgICAgICBub0hvdmVyRWZmZWN0OiB0aGlzLmJlYWNvbk5vSG92ZXJFZmZlY3QgfHwgdGhpcy5iZWFjb25HbG9iYWxOb0hvdmVyRWZmZWN0LFxuICAgICAgICBzaWduYXR1cmVcbiAgICAgIH1cblxuICAgICAgLy8gU2FuaXRpemUgaWNvbiBpZiBwYXNzZWRcbiAgICAgIGlmICghYmVhY29uT2JqZWN0LmZvbnRJY29uICYmIGJlYWNvbk9iamVjdC5pY29uICYmICF0aGlzLmJlYWNvbkRlZmF1bHRJY29uS2V5cy5pbmNsdWRlcyhiZWFjb25PYmplY3QuaWNvbikpIHtcbiAgICAgICAgYmVhY29uT2JqZWN0LnN2Z0ljb24gPSA8U2FmZUh0bWw+dGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwoYmVhY29uT2JqZWN0Lmljb24pXG4gICAgICB9XG5cbiAgICAgIC8vIENoZWNrIGlmIHRoZXJlIGlzIGFuIGFjdGl2ZSBiZWFjb24gYmxvY2tpbmcgb3RoZXJzIGFuZCBhZGQgYnVpbGQgYmVhY29uIHRvIHF1ZXVlXG4gICAgICBpZiAodGhpcy5iZWFjb25TdWNjZXNzb3JCbG9ja2VyQXV0b0lkKSB7XG4gICAgICAgIHRoaXMuYmVhY29uTGlicmFyeVF1ZXVlLnB1c2goYmVhY29uT2JqZWN0KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gQ2hlY2sgaWYgYmVhY29uIGNhbiBibG9jayBhbmQgcmVnaXN0ZXIgaWRcbiAgICAgICAgaWYgKGJlYWNvbk9iamVjdC5ibG9ja090aGVycylcbiAgICAgICAgICB0aGlzLmJlYWNvblN1Y2Nlc3NvckJsb2NrZXJBdXRvSWQgPSBiZWFjb25PYmplY3QuYmlkXG5cbiAgICAgICAgLy8gQWRkIG1lc3NhZ2UgdG8gbGlicmFyeVxuICAgICAgICBpZiAodGhpcy5nZXRCZWFjb25HbG9iYWxQb3NpdGlvbkNvbmZpZz8udG9wQm90dG9tID09ICd0b3AnKVxuICAgICAgICAgIHRoaXMuYmVhY29uTGlicmFyeS51bnNoaWZ0KGJlYWNvbk9iamVjdClcbiAgICAgICAgZWxzZSB0aGlzLmJlYWNvbkxpYnJhcnkucHVzaChiZWFjb25PYmplY3QpXG4gICAgICB9XG5cbiAgICAgIC8vIENoZWNrIGlmIGJlYWNvbiBoYXMgZm9jdXNcbiAgICAgIGlmICh0aGlzLmJlYWNvbkZvY3VzKSB7XG4gICAgICAgIGlmICh0aGlzLmJlYWNvbldpdGhBY3RpdmVGb2N1c0F1dG9JZClcbiAgICAgICAgICB0aGlzLmJlYWNvbkZvY3VzT3JkZXJMaWJyYXJ5LnB1c2goYmVhY29uT2JqZWN0LmJpZClcbiAgICAgICAgZWxzZVxuICAgICAgICAgIHRoaXMuYmVhY29uV2l0aEFjdGl2ZUZvY3VzQXV0b0lkID0gYmVhY29uT2JqZWN0LmJpZFxuICAgICAgfVxuXG4gICAgICAvLyBDaGVjayBpZiBpZCBpcyBzZXQgYW5kIHJlZ2lzdGVyIGl0XG4gICAgICBpZiAodGhpcy5iZWFjb25NYW51YWxJZCkge1xuICAgICAgICB0aGlzLmJlYWNvblN1YnNjcmliZWRFdmVudExpYnJhcnlbYmVhY29uSWRdLm1hbnVhbElkID0gdGhpcy5iZWFjb25NYW51YWxJZFxuICAgICAgICAvLyBNYXAgdGhlIGRlZmluZWQgaWQgdG8gdGhlIGF1dG8tZ2VuIGlkXG4gICAgICAgIHRoaXMuYmVhY29uV2F0Y2hlZEV2ZW50TGlicmFyeS5zZXQodGhpcy5iZWFjb25NYW51YWxJZCwgYmVhY29uSWQpXG4gICAgICB9XG5cbiAgICAgIC8vIFJlZ2lzdGVyIGJlYWNvbiB0eXBlIFxuICAgICAgdGhpcy5iZWFjb25TdWJzY3JpYmVkRXZlbnRMaWJyYXJ5W2JlYWNvbklkXS50eXBlID0gdGhpcy5iZWFjb25Db25maWdNYXBbdHlwZV0udHlwZVxuICAgIH1cblxuICAgIC8vIFJlZ2lzdGVyIGV2ZW50IGZvciBiZWFjb25cbiAgICB0aGlzLmJlYWNvblN1YnNjcmliZWRFdmVudExpYnJhcnlbYmVhY29uSWRdLmV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxJQmVhY29uRXZlbnQ+KClcblxuICAgIC8vIFJlc2V0XG4gICAgdGhpcy5iZWFjb25UaXRsZSA9IHVuZGVmaW5lZFxuICAgIHRoaXMuYmVhY29uTWVzc2FnZSA9IHVuZGVmaW5lZFxuICAgIHRoaXMuYmVhY29uU3RhdGljID0gdW5kZWZpbmVkXG4gICAgdGhpcy5iZWFjb25GaXhlZCA9IHVuZGVmaW5lZFxuICAgIHRoaXMuYmVhY29uQmxvY2tPdGhlcnMgPSB1bmRlZmluZWRcbiAgICB0aGlzLmJlYWNvbk1hbnVhbElkID0gdW5kZWZpbmVkXG4gICAgdGhpcy5iZWFjb25Gb2N1cyA9IHVuZGVmaW5lZFxuICAgIHRoaXMuYmVhY29uRm9jdXNTaGluZSA9IHVuZGVmaW5lZFxuICAgIHRoaXMuYmVhY29uT3ZlcmxheUNvbG9yID0gdW5kZWZpbmVkXG4gICAgdGhpcy5iZWFjb25BbGxvd0R1cGxpY2F0ZSA9IHVuZGVmaW5lZFxuICAgIHRoaXMuYmVhY29uTm9Ib3ZlckVmZmVjdCA9IHVuZGVmaW5lZFxuICAgIHRoaXMuYmVhY29uSWNvbiA9IHVuZGVmaW5lZFxuICAgIHRoaXMuYmVhY29uSWNvbkZyb21Gb250ID0gdW5kZWZpbmVkXG4gICAgdGhpcy5iZWFjb25TdHlsZUNsYXNzID0gdW5kZWZpbmVkXG4gICAgdGhpcy5iZWFjb25SZXBsYWNlbWVudENsYXNzID0gdW5kZWZpbmVkXG4gICAgdGhpcy5iZWFjb25BbmltYXRpb25DbGFzcyA9IHVuZGVmaW5lZFxuICAgIHRoaXMuYmVhY29uQnV0dG9ucyA9IHt9XG5cbiAgICByZXR1cm4gPEV2ZW50RW1pdHRlcjxJQmVhY29uRXZlbnQ+PnRoaXMuYmVhY29uU3Vic2NyaWJlZEV2ZW50TGlicmFyeVtiZWFjb25JZF0uZXZlbnRcbiAgfVxuXG4gIC8vIFNldCBub3RpZmljYXRpb24gbWVzc2FnZSAvIHN1Y2Nlc3NcbiAgcHVibGljIHN1Y2Nlc3MoLi4ubWVzc2FnZTogc3RyaW5nW10pOiBFdmVudEVtaXR0ZXI8SUJlYWNvbkV2ZW50PiB7XG4gICAgLy8gU2V0IHRpdGxlXG4gICAgKG1lc3NhZ2UubGVuZ3RoID4gMSkgJiYgbWVzc2FnZVswXSAmJiB0aGlzLnRpdGxlKG1lc3NhZ2VbMF0pXG4gICAgLy8gU2V0IGJvZHlcbiAgICByZXR1cm4gdGhpcy5iZWFjb24obWVzc2FnZVsxXSB8fCBtZXNzYWdlWzBdIHx8IHRoaXMuYmVhY29uTWVzc2FnZSB8fCB0aGlzLmJlYWNvbkNvbmZpZ01hcC5zdWNjZXNzLnRpdGxlLCB0aGlzLmJlYWNvblR5cGVNYXAuYSlcbiAgfVxuXG4gIC8vIFNldCBub3RpZmljYXRpb24gbWVzc2FnZSAvIGVycm9yXG4gIHB1YmxpYyBlcnJvciguLi5tZXNzYWdlOiBzdHJpbmdbXSk6IEV2ZW50RW1pdHRlcjxJQmVhY29uRXZlbnQ+IHtcbiAgICAvLyBTZXQgdGl0bGVcbiAgICAobWVzc2FnZS5sZW5ndGggPiAxKSAmJiBtZXNzYWdlWzBdICYmIHRoaXMudGl0bGUobWVzc2FnZVswXSlcbiAgICAvLyBTZXQgYm9keVxuICAgIHJldHVybiB0aGlzLmJlYWNvbihtZXNzYWdlWzFdIHx8IG1lc3NhZ2VbMF0gfHwgdGhpcy5iZWFjb25NZXNzYWdlIHx8IHRoaXMuYmVhY29uQ29uZmlnTWFwLmVycm9yLnRpdGxlLCB0aGlzLmJlYWNvblR5cGVNYXAuYilcbiAgfVxuXG4gIC8vIFNldCBub3RpZmljYXRpb24gbWVzc2FnZSAvIHdhcm5pbmdcbiAgcHVibGljIHdhcm5pbmcoLi4ubWVzc2FnZTogc3RyaW5nW10pOiBFdmVudEVtaXR0ZXI8SUJlYWNvbkV2ZW50PiB7XG4gICAgLy8gU2V0IHRpdGxlXG4gICAgKG1lc3NhZ2UubGVuZ3RoID4gMSkgJiYgbWVzc2FnZVswXSAmJiB0aGlzLnRpdGxlKG1lc3NhZ2VbMF0pXG4gICAgLy8gU2V0IGJvZHlcbiAgICByZXR1cm4gdGhpcy5iZWFjb24obWVzc2FnZVsxXSB8fCBtZXNzYWdlWzBdIHx8IHRoaXMuYmVhY29uTWVzc2FnZSB8fCB0aGlzLmJlYWNvbkNvbmZpZ01hcC53YXJuaW5nLnRpdGxlLCB0aGlzLmJlYWNvblR5cGVNYXAuYylcbiAgfVxuXG4gIC8vIFNldCBub3RpZmljYXRpb24gbWVzc2FnZSAvIGluZm9cbiAgcHVibGljIGluZm8oLi4ubWVzc2FnZTogc3RyaW5nW10pOiBFdmVudEVtaXR0ZXI8SUJlYWNvbkV2ZW50PiB7XG4gICAgLy8gU2V0IHRpdGxlXG4gICAgKG1lc3NhZ2UubGVuZ3RoID4gMSkgJiYgbWVzc2FnZVswXSAmJiB0aGlzLnRpdGxlKG1lc3NhZ2VbMF0pXG4gICAgLy8gU2V0IGJvZHlcbiAgICByZXR1cm4gdGhpcy5iZWFjb24obWVzc2FnZVsxXSB8fCBtZXNzYWdlWzBdIHx8IHRoaXMuYmVhY29uTWVzc2FnZSB8fCB0aGlzLmJlYWNvbkNvbmZpZ01hcC5pbmZvLnRpdGxlLCB0aGlzLmJlYWNvblR5cGVNYXAuZClcbiAgfVxuXG4gIC8vIFNldCBub3RpZmljYXRpb24gbWVzc2FnZSAvIGFsZXJ0XG4gIHB1YmxpYyBhbGVydCguLi5tZXNzYWdlOiBzdHJpbmdbXSk6IEV2ZW50RW1pdHRlcjxJQmVhY29uRXZlbnQ+IHtcbiAgICAvLyBTZXQgdGl0bGVcbiAgICAobWVzc2FnZS5sZW5ndGggPiAxKSAmJiBtZXNzYWdlWzBdICYmIHRoaXMudGl0bGUobWVzc2FnZVswXSlcbiAgICAvLyBTZXQgYm9keVxuICAgIHJldHVybiB0aGlzLmJlYWNvbihtZXNzYWdlWzFdIHx8IG1lc3NhZ2VbMF0gfHwgdGhpcy5iZWFjb25NZXNzYWdlIHx8IHRoaXMuYmVhY29uQ29uZmlnTWFwLmFsZXJ0LnRpdGxlLCB0aGlzLmJlYWNvblR5cGVNYXAuZSlcbiAgfVxuXG4gIC8vIFdhdGNoIGV2ZW50cyBmb3IgYmVhY29uIHdpdGggc3BlY2lmaWVkIGlkXG4gIHB1YmxpYyB3YXRjaChpZDogc3RyaW5nIHwgc3RyaW5nW10pOiBFdmVudEVtaXR0ZXI8SUJlYWNvbldhdGNoZWRFdmVudD4ge1xuICAgIC8vIFJlZ2lzdGVyIHdhdGNoZWQgaWRcbiAgICBpZiAoQXJyYXkuaXNBcnJheShpZCkpXG4gICAgICBpZC5mb3JFYWNoKGsgPT4gdGhpcy5iZWFjb25XYXRjaGVkRXZlbnRMaWJyYXJ5LnNldChrLCBTdHJpbmcoKSkpXG4gICAgZWxzZSB0aGlzLmJlYWNvbldhdGNoZWRFdmVudExpYnJhcnkuc2V0KGlkLCBTdHJpbmcoKSlcblxuICAgIHJldHVybiB0aGlzLmJlYWNvbldhdGNoZWRFdmVudFRhc2tNYXN0ZXJcbiAgfVxuXG4gIC8vIFdhdGNoIGV2ZW50cyBmb3IgYWxsIGJlYWNvbnNcbiAgcHVibGljIGV2ZW50cygpOiBFdmVudEVtaXR0ZXI8SUJlYWNvbldhdGNoZWRFdmVudD4ge1xuICAgIHJldHVybiB0aGlzLmJlYWNvbkFsbEV2ZW50VGFza01hc3RlclxuICB9XG5cbiAgLy8gQ2xvc2UgYmVhY29uIHdpdGggaWRcbiAgcHVibGljIGNsb3NlT25lKGlkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5iZWFjb25XYXRjaGVkRXZlbnRMaWJyYXJ5LmhhcyhpZCkpIHtcbiAgICAgIGNvbnN0IGF1dG9JZCA9IDxzdHJpbmc+dGhpcy5iZWFjb25XYXRjaGVkRXZlbnRMaWJyYXJ5LmdldChpZClcblxuICAgICAgLy8gUmVtb3ZlIHRoZSBiZWFjb25cbiAgICAgIHRoaXMuYmVhY29uTGlicmFyeSA9IHRoaXMuYmVhY29uTGlicmFyeS5maWx0ZXIoeCA9PiB7XG4gICAgICAgIHJldHVybiAoeC5iaWQgIT0gYXV0b0lkKVxuICAgICAgfSlcblxuICAgICAgdGhpcy5iZWFjb25FdmVudFRhc2tNYXN0ZXIuZW1pdCh7XG4gICAgICAgIGRlbGV0ZTogdHJ1ZSxcbiAgICAgICAgaWQ6IGF1dG9JZFxuICAgICAgfSlcbiAgICB9XG4gIH1cblxuICAvLyBDbG9zZSBhbGwgYmVhY29uc1xuICBwdWJsaWMgY2xvc2VBbGwoKTogdm9pZCB7XG4gICAgdGhpcy5iZWFjb25MaWJyYXJ5ID0gdGhpcy5iZWFjb25MaWJyYXJ5LmZpbHRlcih4ID0+IHtcbiAgICAgIHRoaXMuYmVhY29uRXZlbnRUYXNrTWFzdGVyLmVtaXQoe1xuICAgICAgICBkZWxldGU6IHRydWUsXG4gICAgICAgIGlkOiB4LmJpZFxuICAgICAgfSlcblxuICAgICAgcmV0dXJuICEoeC5iaWQpXG4gICAgfSlcbiAgfVxuXG4gIC8vIENoZWNrIGZvciBwb3NzaWJsZSBkdXBsaWNhdGVcbiAgcHJpdmF0ZSBpc05ld0JlYWNvbkFEdXBsaWNhdGUoc2lnbmF0dXJlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBjb25zdCBkdXBsaWNhdGUgPSB0aGlzLmJlYWNvbkxpYnJhcnkuZmluZCh4ID0+IHguc2lnbmF0dXJlID09IHNpZ25hdHVyZSlcbiAgICBjb25zdCBiZWFjb24gPSB0aGlzLmJlYWNvbkNvbnRhaW5lci5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoYGRpdiNiY18ke2R1cGxpY2F0ZT8uYmlkfWApXG4gICAgcmV0dXJuIEJvb2xlYW4oYmVhY29uICYmIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGJlYWNvbikub3BhY2l0eSA9PSAnMScpXG4gIH1cbn0iXX0=
|
|
611
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVhY29uLW5vdGlmeS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9iZWFjb24tbm90aWZ5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQWEsWUFBWSxFQUFjLE1BQU0sZUFBZSxDQUFDO0FBR3hGLE9BQU8sRUFXTCxvQkFBb0IsRUFDcEIsb0JBQW9CLEVBQ3BCLGlCQUFpQixFQUNqQixnQkFBZ0IsRUFDakIsTUFBTSxTQUFTLENBQUM7OztBQUtqQixNQUFNLE9BQU8sbUJBQW1CO0lBdURWO0lBQ29CO0lBdkRoQyxxQkFBcUIsR0FBRyxnQkFBZ0IsQ0FBQTtJQUN4QyxlQUFlLEdBQWlEO1FBQ3RFLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsc0JBQXNCLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRTtRQUN6SixLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLHNCQUFzQixFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUU7UUFDekosSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxxQkFBcUIsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUs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QUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxRQUFRLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ2xLLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxRQUFRLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ2xLLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQzNKLE1BQU0sRUFBRSxPQUFPLEVBQUUsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxRQUFRLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQzFLLE1BQU0sRUFBRSxPQUFPLEVB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O2lCQUNuQjs7MEJBeURJLE1BQU07MkJBQUMsb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0LCBWaWV3Q2hpbGQsIEV2ZW50RW1pdHRlciwgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyLCBTYWZlSHRtbCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgQmVhY29uTm90aWZ5Q29tcG9uZW50IH0gZnJvbSAnLi9iZWFjb24vYmVhY29uLmNvbXBvbmVudCc7XG5pbXBvcnQge1xuICBJQmVhY29uQ29uZmlnLFxuICBJQmVhY29uSW5saW5lQ29uZmlnLFxuICBJQmVhY29uR2xvYmFsQ29uZmlnLFxuICBJQmVhY29uVHlwZSxcbiAgSUJlYWNvblBvc2l0aW9uQ29uZmlnLFxuICBJQmVhY29uRXZlbnQsXG4gIElCZWFjb25XYXRjaGVkRXZlbnQsXG4gIElCZWFjb25FdmVudE1lc3NhZ2UsXG4gIElCZWFjb25UeXBlSWNvbixcbiAgSUJlYWNvbkJ1dHRvblR5cGUsXG4gIEJFQUNPTl9HTE9CQUxfQ09ORklHLFxuICBCRUFDT05fT1ZFUkxBWV9DT0xPUixcbiAgQkVBQ09OX09WRVJMQVlfSUQsXG4gIEJFQUNPTl9UWVBFX0tFWVNcbn0gZnJvbSAnLi90eXBlcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEJlYWNvbk5vdGlmeVNlcnZpY2Uge1xuICBwcml2YXRlIGJlYWNvbkRlZmF1bHRJY29uS2V5cyA9IEJFQUNPTl9UWVBFX0tFWVNcbiAgcHJpdmF0ZSBiZWFjb25Db25maWdNYXA6IHsgW2tleTogc3RyaW5nXTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSB9ID0ge1xuICAgIGFsZXJ0OiB7IGljb246IHRoaXMuYmVhY29uRGVmYXVsdEljb25LZXlzWzBdLCBmb250SWNvbjogJ2ZhbHNlJywgY2xhc3M6ICdiZWFjb24tbWVzc2FnZS1hbGVydCcsIHRpdGxlOiAnQWxlcnQnLCBzdHlsZTogJycsIGFuaW1hdGlvbjogJycsIHR5cGU6ICdhbGVydCcgfSxcbiAgICBlcnJvcjogeyBpY29uOiB0aGlzLmJlYWNvbkRlZmF1bHRJY29uS2V5c1sxXSwgZm9udEljb246ICdmYWxzZScsIGNsYXNzOiAnYmVhY29uLW1lc3NhZ2UtZXJyb3InLCB0aXRsZTogJ0Vycm9yJywgc3R5bGU6ICcnLCBhbmltYXRpb246ICcnLCB0eXBlOiAnZXJyb3InIH0sXG4gICAgaW5mbzogeyBpY29uOiB0aGlzLmJlYWNvbkRlZmF1bHRJY29uS2V5c1syXSwgZm9udEljb246ICdmYWxzZScsIGNsYXNzOiAnYmVhY29uLW1lc3NhZ2UtaW5mbycsIHRpdGxlOiAnSW5mb3JtYXRpb24nLCBzdHlsZTogJycsIGFuaW1hdGlvbjogJycsIHR5cGU6ICdpbmZvJyB9LFxuICAgIHN1Y2Nlc3M6IHsgaWNvbjogdGhpcy5iZWFjb25EZWZhdWx0SWNvbktleXNbM10sIGZvbnRJY29uOiAnZmFsc2UnLCBjbGFzczogJ2JlYWNvbi1tZXNzYWdlLXN1Y2Nlc3MnLCB0aXRsZTogJ1N1Y2Nlc3MnLCBzdHlsZTogJycsIGFuaW1hdGlvbjogJycsIHR5cGU6ICdzdWNjZXNzJyB9LFxuICAgIHdhcm5pbmc6IHsgaWNvbjogdGhpcy5iZWFjb25EZWZhdWx0SWNvbktleXNbNF0sIGZvbnRJY29uOiAnZmFsc2UnLCBjbGFzczogJ2JlYWNvbi1tZXNzYWdlLXdhcm5pbmcnLCB0aXRsZTogJ1dhcm5pbmcnLCBzdHlsZTogJycsIGFuaW1hdGlvbjogJycsIHR5cGU6ICd3YXJuaW5nJyB9XG4gIH1cbiAgcHJpdmF0ZSBiZWFjb25UeXBlTWFwOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge1xuICAgIGE6ICdzdWNjZXNzJywgYjogJ2Vycm9yJywgYzogJ3dhcm5pbmcnLCBkOiAnaW5mbycsIGU6ICdhbGVydCdcbiAgfVxuICBwcml2YXRlIGJlYWNvblRpdGxlPzogc3RyaW5nXG4gIHByaXZhdGUgYmVhY29uTWVzc2FnZT86IHN0cmluZ1xuICBwcml2YXRlIGJlYWNvbkljb24/OiBzdHJpbmdcbiAgcHJpdmF0ZSBiZWFjb25NYW51YWxJZD86IHN0cmluZ1xuICBwcml2YXRlIGJlYWNvblNlbGVjdGVkTWFudWFsSWQ/OiBzdHJpbmdcbiAgcHJpdmF0ZSBiZWFjb25JY29uRnJvbUZvbnQ/OiB0cnVlXG4gIHByaXZhdGUgYmVhY29uU3RhdGljPzogdHJ1ZSB8IG51bWJlclxuICBwcml2YXRlIGJlYWNvbkZpeGVkPzogdHJ1ZVxuICBwcml2YXRlIGJlYWNvbkJsb2NrT3RoZXJzPzogdHJ1ZVxuICBwcml2YXRlIGJlYWNvblByZXZlbnRDbGlja0Nsb3NlPzogdHJ1ZVxuICBwcml2YXRlIGJlYWNvbkFsbG93RHVwbGljYXRlPzogdHJ1ZVxuICBwcml2YXRlIGJlYWNvbkZvY3VzPzogdHJ1ZVxuICBwcml2YXRlIGJlYWNvbkZvY3VzU2hpbmU/OiB0cnVlXG4gIHByaXZhdGUgYmVhY29uRm9jdXNTaGluZVNjYWxlPzogc3RyaW5nXG4gIHByaXZhdGUgYmVhY29uT3ZlcmxheUNvbG9yPzogc3RyaW5nXG4gIHByaXZhdGUgYmVhY29uU3R5bGVDbGFzcz86IHN0cmluZ1xuICBwcml2YXRlIGJlYWNvblJlcGxhY2VtZW50Q2xhc3M/OiBzdHJpbmdcbiAgcHJpdmF0ZSBiZWFjb25BbmltYXRpb25DbGFzcz86IHN0cmluZ1xuICBwcml2YXRlIGJlYWNvbk5vSG92ZXJFZmZlY3Q/OiB0cnVlXG4gIHByaXZhdGUgYmVhY29uR2xvYmFsU3RhdGljPzogdHJ1ZSB8IG51bWJlclxuICBwcml2YXRlIGJlYWNvbkdsb2JhbEZpeGVkPzogdHJ1ZVxuICBwcml2YXRlIGJlYWNvbkdsb2JhbEJsb2NrT3RoZXJzPzogdHJ1ZVxuICBwcml2YXRlIGJlYWNvbkdsb2JhbFByZXZlbnRDbGlja0Nsb3NlPzogdHJ1ZVxuICBwcml2YXRlIGJlYWNvbkdsb2JhbER1cGxpY2F0ZT86IGJvb2xlYW5cbiAgcHJpdmF0ZSBiZWFjb25HbG9iYWxOb0hvdmVyRWZmZWN0PzogdHJ1ZVxuICBwcml2YXRlIGJlYWNvbkdsb2JhbEZvY3VzU2hpbmVTY2FsZT86IHN0cmluZ1xuICBwcml2YXRlIGJlYWNvbkdsb2JhbFBvc2l0aW9uaW5nPzogSUJlYWNvblBvc2l0aW9uQ29uZmlnXG4gIHByaXZhdGUgYmVhY29uR2xvYmFsRm9jdXNPdmVybGF5Q29sb3I/OiBzdHJpbmdcbiAgcHJpdmF0ZSBiZWFjb25Db250YWluZXIhOiBFbGVtZW50UmVmXG4gIHByaXZhdGUgYmVhY29uRGVmYXVsdEFuaW1hdGlvbkNsYXNzTmFtZTogc3RyaW5nID0gJ2JlYWNvbi1tZXNzYWdlLWNvbnRyb2wtYW5pbWF0ZSdcbiAgcHJpdmF0ZSBiZWFjb25TdWNjZXNzb3JCbG9ja2VyQXV0b0lkPzogc3RyaW5nXG4gIHByaXZhdGUgYmVhY29uV2l0aEFjdGl2ZUZvY3VzQXV0b0lkPzogc3RyaW5nXG4gIHByaXZhdGUgYmVhY29uQnV0dG9uczogSUJlYWNvbkJ1dHRvblR5cGUgPSB7fVxuICBwcml2YXRlIGJlYWNvbkZvY3VzT3JkZXJMaWJyYXJ5OiBBcnJheTxzdHJpbmc+ID0gW11cbiAgcHJpdmF0ZSBiZWFjb25TdWJzY3JpYmVkRXZlbnRMaWJyYXJ5OiB7IFtrZXk6IHN0cmluZ106IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIHwgRXZlbnRFbWl0dGVyPElCZWFjb25FdmVudD4gfSB9ID0ge31cbiAgcHJpdmF0ZSBiZWFjb25XYXRjaGVkRXZlbnRMaWJyYXJ5OiBNYXA8c3RyaW5nLCBzdHJpbmc+ID0gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oW10pXG4gIHByaXZhdGUgYmVhY29uV2F0Y2hlZEV2ZW50VGFza01hc3RlcjogRXZlbnRFbWl0dGVyPElCZWFjb25XYXRjaGVkRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxJQmVhY29uV2F0Y2hlZEV2ZW50PigpXG4gIHByaXZhdGUgYmVhY29uQWxsRXZlbnRUYXNrTWFzdGVyOiBFdmVudEVtaXR0ZXI8SUJlYWNvbldhdGNoZWRFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPElCZWFjb25XYXRjaGVkRXZlbnQ+KClcbiAgcHJpdmF0ZSBiZWFjb25Gb2N1c092ZXJsYXlET00/OiBIVE1MRWxlbWVudFxuICBwdWJsaWMgYmVhY29uRXZlbnRUYXNrTWFzdGVyOiBFdmVudEVtaXR0ZXI8eyBba2V5OiBzdHJpbmddOiBib29sZWFufCBzdHJpbmcgfT4gPSBuZXcgRXZlbnRFbWl0dGVyPHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB8IHN0cmluZyB9PigpXG4gIHB1YmxpYyBiZWFjb25MaWJyYXJ5OiBBcnJheTxJQmVhY29uQ29uZmlnPiA9IFtdXG4gIHB1YmxpYyBiZWFjb25MaWJyYXJ5UXVldWU6IEFycmF5PElCZWFjb25Db25maWc+ID0gW11cbiAgXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc2FuaXRpemVyOiBEb21TYW5pdGl6ZXIsXG4gICAgQEluamVjdChCRUFDT05fR0xPQkFMX0NPTkZJRykgcHJpdmF0ZSBnbG9iYWxDb25maWc/OiBJQmVhY29uR2xvYmFsQ29uZmlnKSB7XG4gICAgdGhpcy5nbG9iYWxDb25maWcgJiYgdGhpcy5yZXNvbHZlR2xvYmFsQ29uZmlnKHRoaXMuZ2xvYmFsQ29uZmlnKVxuICAgIC8vIFJlc29sdmUgZXZlbnRzXG4gICAgdGhpcy5yZXNvbHZlQmVhY29uRXZlbnRzKClcbiAgfVxuXG4gIC8vIFJlc29sdmUgZ2xvYmFsIGNvbmZpZ1xuICBwcml2YXRlIHJlc29sdmVHbG9iYWxDb25maWcoZ2xvYmFsQ29uZmlnOiBJQmVhY29uR2xvYmFsQ29uZmlnKTogdm9pZCB7XG4gICAgaWYgKGdsb2JhbENvbmZpZy5zdGF0aWMpIHtcbiAgICAgIGlmICh0eXBlb2YgZ2xvYmFsQ29uZmlnLnN0YXRpYyA9PSAnYm9vbGVhbicpIHtcbiAgICAgICAgdGhpcy5iZWFjb25HbG9iYWxGaXhlZCA9IHVuZGVmaW5lZFxuICAgICAgICB0aGlzLmJlYWNvbkdsb2JhbFN0YXRpYyA9IHRydWVcbiAgICAgIH0gZWxzZSB0aGlzLmJlYWNvbkdsb2JhbFN0YXRpYyA9IGdsb2JhbENvbmZpZy5zdGF0aWNcbiAgICB9XG5cbiAgICBpZiAoZ2xvYmFsQ29uZmlnLmZpeGVkKSB7XG4gICAgICB0aGlzLmJlYWNvbkdsb2JhbFN0YXRpYyA9IHVuZGVmaW5lZFxuICAgICAgdGhpcy5iZWFjb25HbG9iYWxGaXhlZCA9IHRydWVcbiAgICB9XG5cbiAgICBnbG9iYWxDb25maWcucHJldmVudENsaWNrQ2xvc2UgJiYgKHRoaXMuYmVhY29uR2xvYmFsUHJldmVudENsaWNrQ2xvc2UgPSBnbG9iYWxDb25maWcucHJldmVudENsaWNrQ2xvc2UpXG4gICAgZ2xvYmFsQ29uZmlnLmJsb2NrT3RoZXJzICYmICh0aGlzLmJlYWNvbkdsb2JhbEJsb2NrT3RoZXJzID0gZ2xvYmFsQ29uZmlnLmJsb2NrT3RoZXJzKVxuICAgIGdsb2JhbENvbmZpZy5vdmVybGF5Q29sb3IgJiYgKHRoaXMuYmVhY29uR2xvYmFsRm9jdXNPdmVybGF5Q29sb3IgPSBnbG9iYWxDb25maWcub3ZlcmxheUNvbG9yKVxuICAgIGdsb2JhbENvbmZpZy5kdXBsaWNhdGUgJiYgKHRoaXMuYmVhY29uR2xvYmFsRHVwbGljYXRlID0gZ2xvYmFsQ29uZmlnLmR1cGxpY2F0ZSlcbiAgICBnbG9iYWxDb25maWcuaWNvbiAmJiB0aGlzLnJlc29sdmVHbG9iYWxJY29uQ29uZmlnKGdsb2JhbENvbmZpZy5pY29uKVxuICAgIGdsb2JhbENvbmZpZy5zdHlsZUNsYXNzICYmIHRoaXMucmVzb2x2ZUdsb2JhbFByb3BlcnR5Q29uZmlnKGdsb2JhbENvbmZpZy5zdHlsZUNsYXNzLCAnc3R5bGUnKVxuICAgIGdsb2JhbENvbmZpZy5yZXBsYWNlbWVudENsYXNzICYmIHRoaXMucmVzb2x2ZUdsb2JhbFByb3BlcnR5Q29uZmlnKGdsb2JhbENvbmZpZy5yZXBsYWNlbWVudENsYXNzLCAnY2xhc3MnKVxuICAgIGdsb2JhbENvbmZpZy5hbmltYXRpb25DbGFzcyAmJiB0aGlzLnJlc29sdmVHbG9iYWxQcm9wZXJ0eUNvbmZpZyhnbG9iYWxDb25maWcuYW5pbWF0aW9uQ2xhc3MsICdhbmltYXRpb24nKVxuICAgIGdsb2JhbENvbmZpZy5wb3NpdGlvbiAmJiAodGhpcy5iZWFjb25HbG9iYWxQb3NpdGlvbmluZyA9IGdsb2JhbENvbmZpZy5wb3NpdGlvbilcbiAgICBnbG9iYWxDb25maWcubm9Ib3ZlckVmZmVjdCAmJiAodGhpcy5iZWFjb25HbG9iYWxOb0hvdmVyRWZmZWN0ID0gZ2xvYmFsQ29uZmlnLm5vSG92ZXJFZmZlY3QpXG4gICAgZ2xvYmFsQ29uZmlnLnNoaW5lU2NhbGUgJiYgKHRoaXMuYmVhY29uR2xvYmFsRm9jdXNTaGluZVNjYWxlID0gZ2xvYmFsQ29uZmlnLnNoaW5lU2NhbGUpXG4gIH1cblxuICAvLyBSZXNvbHZlIGdsb2JhbCBjb25maWcgLyBmb3IgcHJvcGVydHlcbiAgcHJpdmF0ZSByZXNvbHZlR2xvYmFsUHJvcGVydHlDb25maWcoY29uZmlnOiBJQmVhY29uVHlwZSwgcHJvcGVydHk6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbmZpZy5hbGVydCAmJiAodGhpcy5iZWFjb25Db25maWdNYXAuYWxlcnRbcHJvcGVydHldID0gY29uZmlnLmFsZXJ0KVxuICAgIGNvbmZpZy5lcnJvciAmJiAodGhpcy5iZWFjb25Db25maWdNYXAuZXJyb3JbcHJvcGVydHldID0gY29uZmlnLmVycm9yKVxuICAgIGNvbmZpZy5pbmZvICYmICh0aGlzLmJlYWNvbkNvbmZpZ01hcC5pbmZvW3Byb3BlcnR5XSA9IGNvbmZpZy5pbmZvKVxuICAgIGNvbmZpZy5zdWNjZXNzICYmICh0aGlzLmJlYWNvbkNvbmZpZ01hcC5zdWNjZXNzW3Byb3BlcnR5XSA9IGNvbmZpZy5zdWNjZXNzKVxuICAgIGNvbmZpZy53YXJuaW5nICYmICh0aGlzLmJlYWNvbkNvbmZpZ01hcC53YXJuaW5nW3Byb3BlcnR5XSA9IGNvbmZpZy53YXJuaW5nKVxuICB9XG5cbiAgLy8gUmVzb2x2ZSBnbG9iYWwgY29uZmlnIC8gZm9yIGljb25zXG4gIHByaXZhdGUgcmVzb2x2ZUdsb2JhbEljb25Db25maWcoY29uZmlnOiBJQmVhY29uVHlwZUljb24pOiB2b2lkIHtcbiAgICBjb25maWc/LmFsZXJ0Py5pY29uICYmICh0aGlzLmJlYWNvbkNvbmZpZ01hcC5hbGVydC5pY29uID0gY29uZmlnLmFsZXJ0Lmljb24pICYmICh0aGlzLmJlYWNvbkNvbmZpZ01hcC5hbGVydC5mb250SWNvbiA9IFN0cmluZygoY29uZmlnPy5hbGVydD8uZm9udEljb24gfHwgZmFsc2UpKSlcbiAgICBjb25maWc/LmVycm9yPy5pY29uICYmICh0aGlzLmJlYWNvbkNvbmZpZ01hcC5lcnJvci5pY29uID0gY29uZmlnLmVycm9yLmljb24pICYmICh0aGlzLmJlYWNvbkNvbmZpZ01hcC5lcnJvci5mb250SWNvbiA9IFN0cmluZygoY29uZmlnPy5lcnJvcj8uZm9udEljb24gfHwgZmFsc2UpKSlcbiAgICBjb25maWc/LmluZm8/Lmljb24gJiYgKHRoaXMuYmVhY29uQ29uZmlnTWFwLmluZm8uaWNvbiA9IGNvbmZpZy5pbmZvLmljb24pICYmICh0aGlzLmJlYWNvbkNvbmZpZ01hcC5pbmZvLmZvbnRJY29uID0gU3RyaW5nKChjb25maWcuaW5mby5mb250SWNvbiB8fCBmYWxzZSkpKVxuICAgIGNvbmZpZz8uc3VjY2Vzcz8uaWNvbiAmJiAodGhpcy5iZWFjb25Db25maWdNYXAuc3VjY2Vzcy5pY29uID0gY29uZmlnLnN1Y2Nlc3MuaWNvbikgJiYgKHRoaXMuYmVhY29uQ29uZmlnTWFwLnN1Y2Nlc3MuZm9udEljb24gPSBTdHJpbmcoKGNvbmZpZy5zdWNjZXNzLmZvbnRJY29uIHx8IGZhbHNlKSkpXG4gICAgY29uZmlnPy53YXJuaW5nPy5pY29uICYmICh0aGlzLmJlYWNvbkNvbmZpZ01hcC53YXJuaW5nLmljb24gPSBjb25maWcud2FybmluZy5pY29uKSAmJiAodGhpcy5iZWFjb25Db25maWdNYXAud2FybmluZy5mb250SWNvbiA9IFN0cmluZygoY29uZmlnLndhcm5pbmcuZm9udEljb24gfHwgZmFsc2UpKSlcbiAgfVxuXG4gIC8vIFJlc29sdmUgYmVhY29uIGV2ZW50c1xuICBwcml2YXRlIHJlc29sdmVCZWFjb25FdmVudHMoKTogdm9pZCB7XG4gICAgdGhpcy5iZWFjb25FdmVudFRhc2tNYXN0ZXIuc3Vic2NyaWJlKChtZXNzYWdlOiBJQmVhY29uRXZlbnRNZXNzYWdlKSA9PiB7XG4gICAgICBjb25zdCBpZCA9IFN0cmluZyhtZXNzYWdlLmlkKVxuICAgICAgaWYgKG1lc3NhZ2UuZGVsZXRlKSB7XG4gICAgICAgIHRoaXMucmVzb2x2ZVBvc3NpYmxlQmxvY2tlZEJlYWNvbnMoaWQpXG4gICAgICAgIHRoaXMucmVzb2x2ZVBvc3NpYmxlUXVldWVkRm9jdXMoaWQpXG4gICAgICAgIHRoaXMucGVyZm9ybUV2ZW50VGFzayhpZCwgeyBvbjogZmFsc2UsIG9mZjogdHJ1ZSB9KVxuICAgICAgICBkZWxldGUgdGhpcy5iZWFjb25TdWJzY3JpYmVkRXZlbnRMaWJyYXJ5W2lkXVxuICAgICAgfSBlbHNlIGlmIChtZXNzYWdlLm1vdW50KSB7XG4gICAgICAgIHRoaXMucGVyZm9ybUV2ZW50VGFzayhpZCwgeyBvbjogdHJ1ZSwgb2ZmOiBmYWxzZSB9KVxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICAvLyBQZXJmb3JtIGV2ZW50IHRhc2tcbiAgcHJpdmF0ZSBwZXJmb3JtRXZlbnRUYXNrKGlkOiBzdHJpbmcsIGV2ZW50T2JqZWN0OiBJQmVhY29uRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBzdGFtcCA9IHRoaXMuYmVhY29uU3Vic2NyaWJlZEV2ZW50TGlicmFyeVtpZF1cbiAgICBjb25zdCBldmVudCA9IDxFdmVudEVtaXR0ZXI8SUJlYWNvbkV2ZW50Pj5zdGFtcC5ldmVudFxuICAgIGNvbnN0IG1hbnVhbElkID0gc3RhbXA/Lm1hbnVhbElkPy50b1N0cmluZygpLnJlcGxhY2UoL3VuZGVmaW5lZC8sICcnKVxuICAgIGV2ZW50LmVtaXQoZXZlbnRPYmplY3QpXG4gICAgdGhpcy5iZWFjb25BbGxFdmVudFRhc2tNYXN0ZXIuZW1pdCh7IGlkOiBtYW51YWxJZCB8fCBudWxsLCB0eXBlOiBTdHJpbmcoc3RhbXAudHlwZSksIC4uLmV2ZW50T2JqZWN0IH0pXG5cbiAgICAvLyBDaGVjayBpZiB0aGlzIG1hbnVhbCBpZCBpcyB3YXRjaGVkXG4gICAgaWYgKG1hbnVhbElkICYmIHRoaXMuYmVhY29uV2F0Y2hlZEV2ZW50TGlicmFyeS5oYXMobWFudWFsSWQpKSB7XG4gICAgICB0aGlzLmJlYWNvbldhdGNoZWRFdmVudFRhc2tNYXN0ZXIuZW1pdCh7IGlkOiBtYW51YWxJZCwgdHlwZTogU3RyaW5nKHN0YW1wLnR5cGUpLCAuLi5ldmVudE9iamVjdCB9KVxuICAgICAgLy8gQ2hlY2sgaWYgYmVhY29uIGlzIG9mZlxuICAgICAgaWYgKGV2ZW50T2JqZWN0Lm9mZikgXG4gICAgICAgIHRoaXMuYmVhY29uV2F0Y2hlZEV2ZW50TGlicmFyeS5kZWxldGUobWFudWFsSWQpXG4gICAgfVxuICB9XG5cbiAgLy8gUmVzb2x2ZSBwb3NzaWJsZSBibG9ja2VkIGJlYWNvbnNcbiAgcHJpdmF0ZSByZXNvbHZlUG9zc2libGVCbG9ja2VkQmVhY29ucyhpZDogc3RyaW5nKTogdm9pZCB7XG4gICAgLy8gQ2hlY2sgaWYgdGhpcyBpZCBpcyBibG9ja2luZyBvdGhlcnNcbiAgICBpZiAoaWQgPT0gdGhpcy5iZWFjb25TdWNjZXNzb3JCbG9ja2VyQXV0b0lkKSB7XG4gICAgICBpZiAodGhpcy5iZWFjb25MaWJyYXJ5UXVldWUubGVuZ3RoKSB7XG4gICAgICAgIGNvbnN0IHF1ZXVlTGVuZ3RoID0gdGhpcy5iZWFjb25MaWJyYXJ5UXVldWUubGVuZ3RoXG4gICAgICAgIC8vIExvb3AgdGhyb3VnaCBxdWV1ZVxuICAgICAgICBmb3IgKGxldCB4ID0gMDsgeCA8IHF1ZXVlTGVuZ3RoOyB4KyspIHtcbiAgICAgICAgICBjb25zdCBuZXh0SW5MaW5lID0gPElCZWFjb25Db25maWc+dGhpcy5iZWFjb25MaWJyYXJ5UXVldWUuc2hpZnQoKVxuXG4gICAgICAgICAgLy8gQWRkIG1lc3NhZ2UgdG8gbGlicmFyeVxuICAgICAgICAgIGlmICh0aGlzLmdldEJlYWNvbkdsb2JhbFBvc2l0aW9uQ29uZmlnPy50b3BCb3R0b20gPT0gJ3RvcCcpXG4gICAgICAgICAgICB0aGlzLmJlYWNvbkxpYnJhcnkudW5zaGlmdChuZXh0SW5MaW5lKVxuICAgICAgICAgIGVsc2UgdGhpcy5iZWFjb25MaWJyYXJ5LnB1c2gobmV4dEluTGluZSkgICAgXG5cbiAgICAgICAgICAvLyBDaGVjayBpZiBzZXQgdG8gYmxvY2tcbiAgICAgICAgICBpZiAobmV4dEluTGluZS5ibG9ja090aGVycykge1xuICAgICAgICAgICAgdGhpcy5iZWFjb25TdWNjZXNzb3JCbG9ja2VyQXV0b0lkID0gbmV4dEluTGluZS5iaWRcbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gQ2hlY2sgaWYgbm8gbmV3IGJlYWNvbiBpcyBzZXQgYXMgYmxvY2tlciBhbmQgdW5zZXQgcHJldmlvdXMgdmFsdWVcbiAgICAgICAgaWYgKGlkID09IHRoaXMuYmVhY29uU3VjY2Vzc29yQmxvY2tlckF1dG9JZCkgXG4gICAgICAgICAgdGhpcy5iZWFjb25TdWNjZXNzb3JCbG9ja2VyQXV0b0lkID0gdW5kZWZpbmVkXG4gICAgICB9XG4gICAgICBlbHNlIHRoaXMuYmVhY29uU3VjY2Vzc29yQmxvY2tlckF1dG9JZCA9IHVuZGVmaW5lZFxuICAgIH1cbiAgfVxuXG4gIC8vIFJlc29sdmUgcXVldWVkIGJlYWNvbiBmb2N1c1xuICBwcml2YXRlIHJlc29sdmVQb3NzaWJsZVF1ZXVlZEZvY3VzKGlkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAvLyBDaGVjayBpZiB0aGlzIGlkIGlzIGFjdGl2ZSBmb2N1cyBiZWFjb25cbiAgICBpZiAoaWQgPT0gdGhpcy5iZWFjb25XaXRoQWN0aXZlRm9jdXNBdXRvSWQpIHtcbiAgICAgIGlmICh0aGlzLmJlYWNvbkZvY3VzT3JkZXJMaWJyYXJ5Lmxlbmd0aCkge1xuICAgICAgICAvLyBQYXNzIHRoZSBuZXh0IGZvY3VzXG4gICAgICAgIHRoaXMuYmVhY29uV2l0aEFjdGl2ZUZvY3VzQXV0b0lkID0gdGhpcy5iZWFjb25Gb2N1c09yZGVyTGlicmFyeS5zaGlmdCgpXG4gICAgICAgIHRoaXMuYmVhY29uRXZlbnRUYXNrTWFzdGVyLmVtaXQoeyBhdXRvRGV0ZWN0TmV4dEZvY3VzQmVhY29uOiB0cnVlIH0pXG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgdGhpcy5iZWFjb25XaXRoQWN0aXZlRm9jdXNBdXRvSWQgPSB1bmRlZmluZWRcbiAgICAgICAgdGhpcy5kZXN0cm95QmVhY29uRm9jdXNPdmVybGF5KClcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBHZW5lcmF0ZSB1bmlxdWUgaWQgZm9yIGl0ZW1cbiAgcHJpdmF0ZSBnZXQgZ2V0SWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gY3J5cHRvLmdldFJhbmRvbVZhbHVlcyhuZXcgVWludDMyQXJyYXkoMikpLnRvU3RyaW5nKCkuc3BsaXQoJywnKS5qb2luKCcnKVxuICB9XG5cbiAgLy8gU2V0IGJlYWNvbiBjb250YWluZXJcbiAgcHVibGljIHNldEJlYWNvbkNvbnRhaW5lcihjb250YWluZXI6IEVsZW1lbnRSZWYpOiB2b2lkIHtcbiAgICB0aGlzLmJlYWNvbkNvbnRhaW5lciA9IGNvbnRhaW5lclxuICB9XG5cbiAgLy8gR2V0IGJlYWNvbiBjb250YWluZXJcbiAgcHVibGljIGdldCBnZXRCZWFjb25Db250YWluZXIoKTogRWxlbWVudFJlZiB7XG4gICAgcmV0dXJuIHRoaXMuYmVhY29uQ29udGFpbmVyXG4gIH1cblxuICAvLyBHZXQgYmVhY29uIGdsb2JhbCBwb3NpdGlvbiBjb25maWdcbiAgcHVibGljIGdldCBnZXRCZWFjb25HbG9iYWxQb3NpdGlvbkNvbmZpZygpOiBJQmVhY29uUG9zaXRpb25Db25maWcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmJlYWNvbkdsb2JhbFBvc2l0aW9uaW5nXG4gIH1cblxuICAvLyBHZXQgZGVmYXVsdCBpY29uIGtleXNcbiAgcHVibGljIGdldCBnZXRCZWFjb25EZWZhdWx0SWNvbktleXMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLmJlYWNvbkRlZmF1bHRJY29uS2V5c1xuICB9XG5cbiAgLy8gR2V0IGFjdGl2ZSBmb2N1cyBiZWFjb24gaWRcbiAgcHVibGljIGdldCBnZXRBY3RpdmVGb2N1c0JlYWNvbklkKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuYmVhY29uV2l0aEFjdGl2ZUZvY3VzQXV0b0lkXG4gIH1cblxuICAvLyBDcmVhdGUgb3ZlcmxheSBmb3IgZm9jdXNlZCBiZWFjb25cbiAgcHVibGljIGNyZWF0ZUJlYWNvbkZvY3VzT3ZlcmxheShvdmVybGF5Q29sb3I/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBvdmVybGF5ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2JylcbiAgICBvdmVybGF5LnNldEF0dHJpYnV0ZSgnaWQnLCBCRUFDT05fT1ZFUkxBWV9JRClcbiAgICBvdmVybGF5LnN0eWxlLnBvc2l0aW9uID0gJ2ZpeGVkJ1xuICAgIG92ZXJsYXkuc3R5bGUudG9wID0gJzAnXG4gICAgb3ZlcmxheS5zdHlsZS5ib3R0b20gPSAnMCdcbiAgICBvdmVybGF5LnN0eWxlLnJpZ2h0ID0gJzAnXG4gICAgb3ZlcmxheS5zdHlsZS5sZWZ0ID0gJzAnXG4gICAgb3ZlcmxheS5zdHlsZS56SW5kZXggPSAnOTAwMidcbiAgICBvdmVybGF5LnN0eWxlLmJhY2tncm91bmQgPSBvdmVybGF5Q29sb3IgfHwgdGhpcy5iZWFjb25HbG9iYWxGb2N1c092ZXJsYXlDb2xvciB8fCBCRUFDT05fT1ZFUkxBWV9DT0xPUlxuICAgIGRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3cgPSAnaGlkZGVuJ1xuXG4gICAgLy8gUGFzcyBvdmVybGF5IGVsZW1lbnRcbiAgICB0aGlzLmJlYWNvbkZvY3VzT3ZlcmxheURPTSA9IG92ZXJsYXlcblxuICAgIHRoaXMuYmVhY29uQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuYXBwZW5kQ2hpbGQob3ZlcmxheSlcbiAgfVxuXG4gIC8vIFJlcGFpbnQgb3ZlcmxheSBmb3IgZm9jdXNlZCBiZWFjb25cbiAgcHVibGljIHJlcGFpbnRCZWFjb25Gb2N1c092ZXJsYXkob3ZlcmxheUNvbG9yPzogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuYmVhY29uRm9jdXNPdmVybGF5RE9NKVxuICAgICAgdGhpcy5iZWFjb25Gb2N1c092ZXJsYXlET00uc3R5bGUuYmFja2dyb3VuZCA9IG92ZXJsYXlDb2xvciB8fCB0aGlzLmJlYWNvbkdsb2JhbEZvY3VzT3ZlcmxheUNvbG9yIHx8IEJFQUNPTl9PVkVSTEFZX0NPTE9SXG4gIH1cblxuICAvLyBEZXN0cm95IG92ZXJsYXkgZm9yIGZvY3VzZWQgYmVhY29uXG4gIHB1YmxpYyBkZXN0cm95QmVhY29uRm9jdXNPdmVybGF5KCk6IHZvaWQge1xuICAgIGRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3cgPSAnYXV0bydcbiAgICB0aGlzLmJlYWNvbkNvbnRhaW5lci5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ2RpdiMnICsgQkVBQ09OX09WRVJMQVlfSUQpLnJlbW92ZSgpXG4gICAgdGhpcy5iZWFjb25Gb2N1c092ZXJsYXlET00gPSB1bmRlZmluZWRcbiAgfVxuXG4gIC8vIFNldCBpZCBmb3IgYmVhY29uXG4gIHB1YmxpYyBpZChpZDogc3RyaW5nKTogQmVhY29uTm90aWZ5U2VydmljZSB7XG4gICAgaWQgJiYgKHRoaXMuYmVhY29uTWFudWFsSWQgPSBpZClcbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbiAgLy8gU2V0IG5vdGlmaWNhdGlvbiB0aXRsZVxuICBwdWJsaWMgdGl0bGUodGl0bGU6IHN0cmluZyk6IEJlYWNvbk5vdGlmeVNlcnZpY2Uge1xuICAgIHRpdGxlICYmICh0aGlzLmJlYWNvblRpdGxlID0gdGl0bGUpXG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIC8vIFNldCBub3RpZmljYXRpb24gbWVzc2FnZVxuICBwdWJsaWMgbWVzc2FnZShtZXNzYWdlOiBzdHJpbmcpOiBCZWFjb25Ob3RpZnlTZXJ2aWNlIHtcbiAgICBtZXNzYWdlICYmICh0aGlzLmJlYWNvbk1lc3NhZ2UgPSBtZXNzYWdlKVxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICAvLyBIaWdobGlnaHQgaWQgb2YgYmVhY29uIHRvIHVwZGF0ZVxuICBwdWJsaWMgc2VsZWN0KGlkOiBzdHJpbmcpOiBCZWFjb25Ob3RpZnlTZXJ2aWNlIHtcbiAgICBpZCAmJiAodGhpcy5iZWFjb25TZWxlY3RlZE1hbnVhbElkID0gaWQpXG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIC8vIENoYW5nZSBub3RpZmljYXRpb24gdGl0bGVcbiAgcHVibGljIHNldFRpdGxlKHRpdGxlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAvLyBDaGVjayBmb3IgYWN0aXZlIG1hbnVhbCBpZCAvIGFuZCBpZiBhIGJlYWNvbiBpcyB0aWVkIHRvIGl0XG4gICAgaWYgKHRoaXMuYmVhY29uU2VsZWN0ZWRNYW51YWxJZCkge1xuICAgICAgY29uc3QgYmVhY29uSW5kZXggPSB0aGlzLmJlYWNvbkxpYnJhcnkuZmluZEluZGV4KHggPT4geC5taWQgPT0gdGhpcy5iZWFjb25TZWxlY3RlZE1hbnVhbElkKVxuICAgICAgaWYgKGJlYWNvbkluZGV4ID49IDApXG4gICAgICAgIHRoaXMuYmVhY29uTGlicmFyeVtiZWFjb25JbmRleF0udGl0bGUgPSB0aXRsZVxuICAgIH1cbiAgfVxuXG4gIC8vIENoYW5nZSBub3RpZmljYXRpb24gbWVzc2FnZVxuICBwdWJsaWMgc2V0TWVzc2FnZShtZXNzYWdlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAvLyBDaGVjayBmb3IgYWN0aXZlIG1hbnVhbCBpZCAvIGFuZCBpZiBhIGJlYWNvbiBpcyB0aWVkIHRvIGl0XG4gICAgaWYgKHRoaXMuYmVhY29uU2VsZWN0ZWRNYW51YWxJZCkge1xuICAgICAgY29uc3QgYmVhY29uSW5kZXggPSB0aGlzLmJlYWNvbkxpYnJhcnkuZmluZEluZGV4KHggPT4geC5taWQgPT0gdGhpcy5iZWFjb25TZWxlY3RlZE1hbnVhbElkKVxuICAgICAgaWYgKGJlYWNvbkluZGV4ID49IDApXG4gICAgICAgIHRoaXMuYmVhY29uTGlicmFyeVtiZWFjb25JbmRleF0uYm9keSA9IG1lc3NhZ2VcbiAgICB9XG4gIH1cblxuICAvLyBDaGFuZ2Ugbm90aWZpY2F0aW9uIHRpdGxlICYgbWVzc2FnZVxuICBwdWJsaWMgc2V0Q29udGVudCh0aXRsZTogc3RyaW5nLCBtZXNzYWdlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAvLyBDaGVjayBmb3IgYWN0aXZlIG1hbnVhbCBpZCAvIGFuZCBpZiBhIGJlYWNvbiBpcyB0aWVkIHRvIGl0XG4gICAgaWYgKHRoaXMuYmVhY29uU2VsZWN0ZWRNYW51YWxJZCkge1xuICAgICAgY29uc3QgYmVhY29uSW5kZXggPSB0aGlzLmJlYWNvbkxpYnJhcnkuZmluZEluZGV4KHggPT4geC5taWQgPT0gdGhpcy5iZWFjb25TZWxlY3RlZE1hbnVhbElkKVxuICAgICAgaWYgKGJlYWNvbkluZGV4ID49IDApXG4gICAgICAgIHRoaXMuYmVhY29uTGlicmFyeVtiZWFjb25JbmRleF0udGl0bGUgPSB0aXRsZVxuICAgICAgICB0aGlzLmJlYWNvbkxpYnJhcnlbYmVhY29uSW5kZXhdLmJvZHkgPSBtZXNzYWdlXG4gICAgfVxuICB9XG5cbiAgLy8gVXBkYXRlIGJlYWNvbiBidXR0b24gMVxuICBwdWJsaWMgc2V0QnV0dG9uT25lKHRleHQ6IHN0cmluZywgY2FuRGlzbWlzcz86IGJvb2xlYW4gfCBudWxsLCBjYWxsYmFjaz86IGFueSwgY2FsbGJhY2tBcmdzPzogYW55W10gfCBudWxsLCBwb3NpdGlvbj86ICdsZWZ0JyB8ICdjZW50ZXInIHwgJ3JpZ2h0Jyk6IHZvaWQge1xuICAgIC8vIENoZWNrIGZvciBhY3RpdmUgbWFudWFsIGlkIC8gYW5kIGlmIGEgYmVhY29uIGlzIHRpZWQgdG8gaXRcbiAgICBpZiAodGhpcy5iZWFjb25TZWxlY3RlZE1hbnVhbElkKSB7XG4gICAgICBjb25zdCBiZWFjb25JbmRleCA9IHRoaXMuYmVhY29uTGlicmFyeS5maW5kSW5kZXgoeCA9PiB4Lm1pZCA9PSB0aGlzLmJlYWNvblNlbGVjdGVkTWFudWFsSWQpXG4gICAgICBpZiAoYmVhY29uSW5kZXggPj0gMCkge1xuICAgICAgICAoPElCZWFjb25CdXR0b25UeXBlPnRoaXMuYmVhY29uTGlicmFyeVtiZWFjb25JbmRleF0uYnV0dG9ucykub25lID0ge1xuICAgICAgICAgIHRleHQ6IHRleHQuc3Vic3RyaW5nKDAsIDE1KSxcbiAgICAgICAgICBjYW5EaXNtaXNzLFxuICAgICAgICAgIGNhbGxiYWNrLFxuICAgICAgICAgIGNhbGxiYWNrQXJncyxcbiAgICAgICAgICBwb3NpdGlvblxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gVXBkYXRlIGJlYWNvbiBidXR0b24gMlxuICBwdWJsaWMgc2V0QnV0dG9uVHdvKHRleHQ6IHN0cmluZywgY2FuRGlzbWlzcz86IGJvb2xlYW4gfCBudWxsLCBjYWxsYmFjaz86IGFueSwgY2FsbGJhY2tBcmdzPzogYW55W10gfCBudWxsLCBwb3NpdGlvbj86ICdsZWZ0JyB8ICdjZW50ZXInIHwgJ3JpZ2h0Jyk6IHZvaWQge1xuICAgIC8vIENoZWNrIGZvciBhY3RpdmUgbWFudWFsIGlkIC8gYW5kIGlmIGEgYmVhY29uIGlzIHRpZWQgdG8gaXRcbiAgICBpZiAodGhpcy5iZWFjb25TZWxlY3RlZE1hbnVhbElkKSB7XG4gICAgICBjb25zdCBiZWFjb25JbmRleCA9IHRoaXMuYmVhY29uTGlicmFyeS5maW5kSW5kZXgoeCA9PiB4Lm1pZCA9PSB0aGlzLmJlYWNvblNlbGVjdGVkTWFudWFsSWQpXG4gICAgICBpZiAoYmVhY29uSW5kZXggPj0gMCkge1xuICAgICAgICBpZiAodGhpcy5iZWFjb25MaWJyYXJ5W2JlYWNvbkluZGV4XS5idXR0b25zPy5vbmUpIHtcbiAgICAgICAgICAoPElCZWFjb25CdXR0b25UeXBlPnRoaXMuYmVhY29uTGlicmFyeVtiZWFjb25JbmRleF0uYnV0dG9ucykudHdvID0ge1xuICAgICAgICAgICAgdGV4dDogdGV4dC5zdWJzdHJpbmcoMCwgMTUpLFxuICAgICAgICAgICAgY2FuRGlzbWlzcyxcbiAgICAgICAgICAgIGNhbGxiYWNrLFxuICAgICAgICAgICAgY2FsbGJhY2tBcmdzLFxuICAgICAgICAgICAgcG9zaXRpb25cbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB0aGlzLnNldEJ1dHRvbk9uZSh0ZXh0LCBjYW5EaXNtaXNzLCBjYWxsYmFjaywgY2FsbGJhY2tBcmdzLCBwb3NpdGlvbilcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBSZW1vdmUgYmVhY29uIGJ1dHRvbiAxXG4gIHB1YmxpYyByZW1vdmVCdXR0b25PbmUoKTogdm9pZCB7XG4gICAgLy8gQ2hlY2sgZm9yIGFjdGl2ZSBtYW51YWwgaWQgLyBhbmQgaWYgYSBiZWFjb24gaXMgdGllZCB0byBpdFxuICAgIGlmICh0aGlzLmJlYWNvblNlbGVjdGVkTWFudWFsSWQpIHtcbiAgICAgIGNvbnN0IGJlYWNvbkluZGV4ID0gdGhpcy5iZWFjb25MaWJyYXJ5LmZpbmRJbmRleCh4ID0+IHgubWlkID09IHRoaXMuYmVhY29uU2VsZWN0ZWRNYW51YWxJZClcbiAgICAgIGlmIChiZWFjb25JbmRleCA+PSAwKSB7XG4gICAgICAgICg8SUJlYWNvbkJ1dHRvblR5cGU+dGhpcy5iZWFjb25MaWJyYXJ5W2JlYWNvbkluZGV4XS5idXR0b25zKS5vbmUgPSB1bmRlZmluZWRcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBSZW1vdmUgYmVhY29uIGJ1dHRvbiAyXG4gIHB1YmxpYyByZW1vdmVCdXR0b25Ud28oKTogdm9pZCB7XG4gICAgLy8gQ2hlY2sgZm9yIGFjdGl2ZSBtYW51YWwgaWQgLyBhbmQgaWYgYSBiZWFjb24gaXMgdGllZCB0byBpdFxuICAgIGlmICh0aGlzLmJlYWNvblNlbGVjdGVkTWFudWFsSWQpIHtcbiAgICAgIGNvbnN0IGJlYWNvbkluZGV4ID0gdGhpcy5iZWFjb25MaWJyYXJ5LmZpbmRJbmRleCh4ID0+IHgubWlkID09IHRoaXMuYmVhY29uU2VsZWN0ZWRNYW51YWxJZClcbiAgICAgIGlmIChiZWFjb25JbmRleCA+PSAwKSB7XG4gICAgICAgICg8SUJlYWNvbkJ1dHRvblR5cGU+dGhpcy5iZWFjb25MaWJyYXJ5W2JlYWNvbkluZGV4XS5idXR0b25zKS50d28gPSB1bmRlZmluZWRcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBSZW1vdmUgYmVhY29uIGJ1dHRvbnNcbiAgcHVibGljIHJlbW92ZUJ1dHRvbnMoKTogdm9pZCB7XG4gICAgLy8gQ2hlY2sgZm9yIGFjdGl2ZSBtYW51YWwgaWQgLyBhbmQgaWYgYSBiZWFjb24gaXMgdGllZCB0byBpdFxuICAgIGlmICh0aGlzLmJlYWNvblNlbGVjdGVkTWFudWFsSWQpIHtcbiAgICAgIGNvbnN0IGJlYWNvbkluZGV4ID0gdGhpcy5iZWFjb25MaWJyYXJ5LmZpbmRJbmRleCh4ID0+IHgubWlkID09IHRoaXMuYmVhY29uU2VsZWN0ZWRNYW51YWxJZClcbiAgICAgIGlmIChiZWFjb25JbmRleCA+PSAwKSB7XG4gICAgICAgICg8SUJlYWNvbkJ1dHRvblR5cGU+dGhpcy5iZWFjb25MaWJyYXJ5W2JlYWNvbkluZGV4XS5idXR0b25zKS5vbmUgPSB1bmRlZmluZWQ7XG4gICAgICAgICg8SUJlYWNvbkJ1dHRvblR5cGU+dGhpcy5iZWFjb25MaWJyYXJ5W2JlYWNvbkluZGV4XS5idXR0b25zKS50d28gPSB1bmRlZmluZWRcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBTZXQgYmVhY29uIGFzIHN0YXRpYyBvciB3aXRoIGRlbGF5XG4gIHB1YmxpYyBzdGF0aWMoZGVsYXk/OiBudW1iZXIpOiBCZWFjb25Ob3RpZnlTZXJ2aWNlIHtcbiAgICB0aGlzLmJlYWNvblN0YXRpYyA9IGRlbGF5IHx8IHRydWVcbiAgICB0aGlzLmJlYWNvbkZpeGVkID0gdW5kZWZpbmVkXG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIC8vIFNldCBiZWFjb24gYXMgZml4ZWQgd2hpY2ggcmVtb3ZlcyB0aGUgY2xvc2UgYnV0dG9uIGFuZCBkaXNhbGxvd3MgY2xvc2Ugb24gY2xpY2tcbiAgcHVibGljIGZpeGVkKCk6IEJlYWNvbk5vdGlmeVNlcnZpY2Uge1xuICAgIHRoaXMuYmVhY29uU3RhdGljID0gdW5kZWZpbmVkXG4gICAgdGhpcy5iZWFjb25GaXhlZCA9IHRydWVcbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbiAgLy8gQWxsb3cgYmVhY29uIHRvIGJsb2NrIG90aGVyc1xuICBwdWJsaWMgYmxvY2soKTogQmVhY29uTm90aWZ5U2VydmljZSB7XG4gICAgdGhpcy5iZWFjb25CbG9ja090aGVycyA9IHRydWVcbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbiAgLy8gRm9jdXMgb24gYmVhY29uXG4gIHB1YmxpYyBmb2N1cyhvdmVybGF5Q29sb3I/OiBzdHJpbmcpOiBCZWFjb25Ob3RpZnlTZXJ2aWNlIHtcbiAgICBvdmVybGF5Q29sb3IgJiYgKHRoaXMuYmVhY29uT3ZlcmxheUNvbG9yID0gb3ZlcmxheUNvbG9yKVxuICAgIHRoaXMuYmVhY29uRm9jdXMgPSB0cnVlXG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIC8vIEZvY3VzIGJlYWNvbiBvbiBjZW50ZXIgc2NyZWVuXG4gIHB1YmxpYyBzaGluZShzY2FsZT86IHN0cmluZywgb3ZlcmxheUNvbG9yPzogc3RyaW5nKTogQmVhY29uTm90aWZ5U2VydmljZSB7XG4gICAgb3ZlcmxheUNvbG9yICYmICh0aGlzLmJlYWNvbk92ZXJsYXlDb2xvciA9IG92ZXJsYXlDb2xvcilcbiAgICB0aGlzLmJlYWNvbkZvY3VzU2hpbmUgPSB0aGlzLmJlYWNvbkZvY3VzID0gdHJ1ZVxuICAgIHNjYWxlICYmICh0aGlzLmJlYWNvbkZvY3VzU2hpbmVTY2FsZSA9IHNjYWxlKVxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICAvLyBBZGQgYnV0dG9uIGZvciBiZWFjb25cbiAgcHVibGljIGJ1dHRvbih0ZXh0OiBzdHJpbmcsIGNhbkRpc21pc3M/OiBib29sZWFuIHwgbnVsbCwgY2FsbGJhY2s/OiBhbnksIGNhbGxiYWNrQXJncz86IGFueVtdIHwgbnVsbCwgcG9zaXRpb24/OiAnbGVmdCcgfCAnY2VudGVyJyB8ICdyaWdodCcpOiBCZWFjb25Ob3RpZnlTZXJ2aWNlIHtcbiAgICBpZiAoIXRoaXMuYmVhY29uQnV0dG9ucz8ub25lKSB7XG4gICAgICB0aGlzLmJlYWNvbkJ1dHRvbnMub25lID0ge1xuICAgICAgICB0ZXh0OiB0ZXh0LnN1YnN0cmluZygwLCAxNSksXG4gICAgICAgIGNhbkRpc21pc3MsXG4gICAgICAgIGNhbGxiYWNrLFxuICAgICAgICBjYWxsYmFja0FyZ3MsXG4gICAgICAgIHBvc2l0aW9uXG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0aGlzLmJlYWNvbkJ1dHRvbnMub25lICYmICF0aGlzLmJlYWNvbkJ1dHRvbnMudHdvKSB7XG4gICAgICB0aGlzLmJlYWNvbkJ1dHRvbnMudHdvID0ge1xuICAgICAgICB0ZXh0OiB0ZXh0LnN1YnN0cmluZygwLCAxNSksXG4gICAgICAgIGNhbkRpc21pc3MsXG4gICAgICAgIGNhbGxiYWNrLFxuICAgICAgICBjYWxsYmFja0FyZ3MsXG4gICAgICAgIHBvc2l0aW9uXG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIC8vIEFsbG93IGR1cGxpY2F0ZSBmb3IgYmVhY29uXG4gIHB1YmxpYyBkdXBsaWNhdGUoKTogQmVhY29uTm90aWZ5U2VydmljZSB7XG4gICAgdGhpcy5iZWFjb25BbGxvd0R1cGxpY2F0ZSA9IHRydWVcbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbiAgLy8gU2V0IGNvbmZpZyB2YWx1ZXMgZm9yIGJlYWNvblxuICBwdWJsaWMgYnVpbGQoY29uZmlnOiBJQmVhY29uSW5saW5lQ29uZmlnKTogQmVhY29uTm90aWZ5U2VydmljZSB7XG4gICAgaWYgKGNvbmZpZy5zdGF0aWMpIHtcbiAgICAgIGlmICh0eXBlb2YgY29uZmlnLnN0YXRpYyA9PSAnYm9vbGVhbicpXG4gICAgICAgIHRoaXMuc3RhdGljKClcbiAgICAgIGVsc2UgdGhpcy5zdGF0aWMoTnVtYmVyKGNvbmZpZy5zdGF0aWMpKVxuICAgIH1cblxuICAgIGNvbmZpZy5maXhlZCAmJiB0aGlzLmZpeGVkKClcbiAgICBjb25maWcuZHVwbGljYXRlICYmIHRoaXMuZHVwbGljYXRlKClcbiAgICBjb25maWcucHJldmVudENsaWNrQ2xvc2UgJiYgKHRoaXMuYmVhY29uUHJldmVudENsaWNrQ2xvc2UgPSBjb25maWcucHJldmVudENsaWNrQ2xvc2UpXG4gICAgY29uZmlnLmJsb2NrT3RoZXJzICYmICh0aGlzLmJlYWNvbkJsb2NrT3RoZXJzID0gY29uZmlnLmJsb2NrT3RoZXJzKVxuICAgIGNvbmZpZy5mb2N1cyAmJiAodGhpcy5iZWFjb25Gb2N1cyA9IGNvbmZpZy5mb2N1cylcbiAgICBjb25maWcuc2hpbmUgJiYgKHRoaXMuYmVhY29uRm9jdXNTaGluZSA9IHRoaXMuYmVhY29uRm9jdXMgPSBjb25maWcuc2hpbmUpXG4gICAgY29uZmlnLmljb24gJiYgKHRoaXMuYmVhY29uSWNvbiA9IGNvbmZpZy5pY29uKVxuICAgIGNvbmZpZy5mb250SWNvbiAmJiAodGhpcy5iZWFjb25JY29uRnJvbUZvbnQgPSBjb25maWcuZm9udEljb24pXG4gICAgY29uZmlnLnN0eWxlQ2xhc3MgJiYgKHRoaXMuYmVhY29uU3R5bGVDbGFzcyA9IGNvbmZpZy5zdHlsZUNsYXNzKVxuICAgIGNvbmZpZy5yZXBsYWNlbWVudENsYXNzICYmICh0aGlzLmJlYWNvblJlcGxhY2VtZW50Q2xhc3MgPSBjb25maWcucmVwbGFjZW1lbnRDbGFzcylcbiAgICBjb25maWcuYW5pbWF0aW9uQ2xhc3MgJiYgKHRoaXMuYmVhY29uQW5pbWF0aW9uQ2xhc3MgPSBjb25maWcuYW5pbWF0aW9uQ2xhc3MpXG4gICAgY29uZmlnLmFuaW1hdGlvbkNsYXNzICYmICh0aGlzLmJlYWNvbkFuaW1hdGlvbkNsYXNzID0gY29uZmlnLmFuaW1hdGlvbkNsYXNzKVxuICAgIGNvbmZpZy5vdmVybGF5Q29sb3IgJiYgKHRoaXMuYmVhY29uT3ZlcmxheUNvbG9yID0gY29uZmlnLm92ZXJsYXlDb2xvcilcbiAgICBjb25maWcubm9Ib3ZlckVmZmVjdCAmJiAodGhpcy5iZWFjb25Ob0hvdmVyRWZmZWN0ID0gY29uZmlnLm5vSG92ZXJFZmZlY3QpXG4gICAgY29uZmlnLnNoaW5lU2NhbGUgJiYgKHRoaXMuYmVhY29uRm9jdXNTaGluZVNjYWxlID0gY29uZmlnLnNoaW5lU2NhbGUpXG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIC8vIGNyZWF0ZSBub3RpZmljYXRpb24gYmVhY29uXG4gIHByaXZhdGUgYmVhY29uKG1lc3NhZ2U6IHN0cmluZywgdHlwZTogc3RyaW5nKTogRXZlbnRFbWl0dGVyPElCZWFjb25FdmVudD4ge1xuICAgIC8vIEdldCBzaWduYXR1cmVcbiAgICBjb25zdCBzaWduYXR1cmUgPSB3aW5kb3cuYnRvYSgodGhpcy5iZWFjb25UaXRsZSB8fCB0aGlzLmJlYWNvbkNvbmZpZ01hcFt0eXBlXS50aXRsZSkgKyAnLicgKyBtZXNzYWdlKVxuICAgIC8vIEdlbmVyYXRlIGJlYWNvbiBpZFxuICAgIGNvbnN0IGJlYWNvbklkID0gdGhpcy5nZXRJZFxuICAgIC8vIFJlZ2lzdGVyIGJlYWNvbiBpbiBldmVudCBsaWJyYXJ5XG4gICAgdGhpcy5iZWFjb25TdWJzY3JpYmVkRXZlbnRMaWJyYXJ5W2JlYWNvbklkXSA9IE9iamVjdC5jcmVhdGUoe30pXG4gICAgLy8gQ2hlY2sgZm9yIGR1cGxpY2F0ZSBpZiBzZXQgdG8gcHJldmVudCBvciBwcm9jZWVkIGlmIHR1cm5lZCBvZmZcbiAgICBpZiAodGhpcy5iZWFjb25BbGxvd0R1cGxpY2F0ZSB8fCAoKFt1bmRlZmluZWQsIGZhbHNlXS5pbmNsdWRlcyh0aGlzLmJlYWNvbkdsb2JhbER1cGxpY2F0ZSkgJiYgdGhpcy5pc05ld0JlYWNvbkFEdXBsaWNhdGUoc2lnbmF0dXJlKSA9PSAhMSkgfHwgdGhpcy5iZWFjb25HbG9iYWxEdXBsaWNhdGUpKSB7XG4gICAgICBjb25zdCBiZWFjb25PYmplY3Q6IElCZWFjb25Db25maWcgPSB7XG4gICAgICAgIGJpZDogYmVhY29uSWQsXG4gICAgICAgIG1pZDogdGhpcy5iZWFjb25NYW51YWxJZCxcbiAgICAgICAgdHlwZTogdGhpcy5iZWFjb25Db25maWdNYXBbdHlwZV0uY2xhc3MsXG4gICAgICAgIGljb246IHRoaXMuYmVhY29uSWNvbiB8fCB0aGlzLmJlYWNvbkNvbmZpZ01hcFt0eXBlXS5pY29uLFxuICAgICAgICBmb250SWNvbjogdGhpcy5iZWFjb25JY29uRnJvbUZvbnQgfHwgKHRoaXMuYmVhY29uQ29uZmlnTWFwW3R5cGVdLmZvbnRJY29uID09ICd0cnVlJyA/IHRydWUgOiB1bmRlZmluZWQpLFxuICAgICAgICB0aXRsZTogdGhpcy5iZWFjb25UaXRsZSB8fCB0aGlzLmJlYWNvbkNvbmZpZ01hcFt0eXBlXS50aXRsZSxcbiAgICAgICAgc3RhdGljOiB0aGlzLmJlYWNvblN0YXRpYyB8fCB0aGlzLmJlYWNvbkdsb2JhbFN0YXRpYyxcbiAgICAgICAgZml4ZWQ6IHRoaXMuYmVhY29uRml4ZWQgfHwgdGhpcy5iZWFjb25HbG9iYWxGaXhlZCxcbiAgICAgICAgcHJldmVudENsaWNrQ2xvc2U6IHRoaXMuYmVhY29uUHJldmVudENsaWNrQ2xvc2UgfHwgdGhpcy5iZWFjb25HbG9iYWxQcmV2ZW50Q2xpY2tDbG9zZSxcbiAgICAgICAgc3R5bGVDbGFzczogdGhpcy5iZWFjb25TdHlsZUNsYXNzIHx8IHRoaXMuYmVhY29uQ29uZmlnTWFwW3R5cGVdLnN0eWxlLFxuICAgICAgICByZXBsYWNlbWVudENsYXNzOiB0aGlzLmJlYWNvblJlcGxhY2VtZW50Q2xhc3MsXG4gICAgICAgIGFuaW1hdGlvbkNsYXNzOiB0aGlzLmJlYWNvbkFuaW1hdGlvbkNsYXNzIHx8IHRoaXMuYmVhY29uQ29uZmlnTWFwW3R5cGVdLmFuaW1hdGlvbiB8fCB0aGlzLmJlYWNvbkRlZmF1bHRBbmltYXRpb25DbGFzc05hbWUsXG4gICAgICAgIGJsb2NrT3RoZXJzOiB0aGlzLmJlYWNvbkJsb2NrT3RoZXJzIHx8IHRoaXMuYmVhY29uR2xvYmFsQmxvY2tPdGhlcnMsXG4gICAgICAgIGJ1dHRvbnM6IHRoaXMuYmVhY29uQnV0dG9ucyxcbiAgICAgICAgb3ZlcmxheUNvbG9yOiB0aGlzLmJlYWNvbk92ZXJsYXlDb2xvcixcbiAgICAgICAgYm9keUh0bWw6IDxTYWZlSHRtbD50aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChtZXNzYWdlKSxcbiAgICAgICAgYm9keTogbWVzc2FnZSxcbiAgICAgICAgZm9jdXM6IHRoaXMuYmVhY29uRm9jdXMsXG4gICAgICAgIHNoaW5lOiB0aGlzLmJlYWNvbkZvY3VzU2hpbmUsXG4gICAgICAgIG5vSG92ZXJFZmZlY3Q6IHRoaXMuYmVhY29uTm9Ib3ZlckVmZmVjdCB8fCB0aGlzLmJlYWNvbkdsb2JhbE5vSG92ZXJFZmZlY3QsXG4gICAgICAgIHNoaW5lU2NhbGU6IHRoaXMuYmVhY29uRm9jdXNTaGluZVNjYWxlIHx8IHRoaXMuYmVhY29uR2xvYmFsRm9jdXNTaGluZVNjYWxlLFxuICAgICAgICBzaWduYXR1cmVcbiAgICAgIH1cblxuICAgICAgLy8gU2FuaXRpemUgaWNvbiBpZiBwYXNzZWRcbiAgICAgIGlmICghYmVhY29uT2JqZWN0LmZvbnRJY29uICYmIGJlYWNvbk9iamVjdC5pY29uICYmICF0aGlzLmJlYWNvbkRlZmF1bHRJY29uS2V5cy5pbmNsdWRlcyhiZWFjb25PYmplY3QuaWNvbikpIHtcbiAgICAgICAgYmVhY29uT2JqZWN0LnN2Z0ljb24gPSA8U2FmZUh0bWw+dGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwoYmVhY29uT2JqZWN0Lmljb24pXG4gICAgICB9XG5cbiAgICAgIC8vIENoZWNrIGlmIHRoZXJlIGlzIGFuIGFjdGl2ZSBiZWFjb24gYmxvY2tpbmcgb3RoZXJzIGFuZCBhZGQgYnVpbGQgYmVhY29uIHRvIHF1ZXVlXG4gICAgICBpZiAodGhpcy5iZWFjb25TdWNjZXNzb3JCbG9ja2VyQXV0b0lkKSB7XG4gICAgICAgIHRoaXMuYmVhY29uTGlicmFyeVF1ZXVlLnB1c2goYmVhY29uT2JqZWN0KVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gQ2hlY2sgaWYgYmVhY29uIGNhbiBibG9jayBhbmQgcmVnaXN0ZXIgaWRcbiAgICAgICAgaWYgKGJlYWNvbk9iamVjdC5ibG9ja090aGVycylcbiAgICAgICAgICB0aGlzLmJlYWNvblN1Y2Nlc3NvckJsb2NrZXJBdXRvSWQgPSBiZWFjb25PYmplY3QuYmlkXG5cbiAgICAgICAgLy8gQWRkIG1lc3NhZ2UgdG8gbGlicmFyeVxuICAgICAgICBpZiAodGhpcy5nZXRCZWFjb25HbG9iYWxQb3NpdGlvbkNvbmZpZz8udG9wQm90dG9tID09ICd0b3AnKVxuICAgICAgICAgIHRoaXMuYmVhY29uTGlicmFyeS51bnNoaWZ0KGJlYWNvbk9iamVjdClcbiAgICAgICAgZWxzZSB0aGlzLmJlYWNvbkxpYnJhcnkucHVzaChiZWFjb25PYmplY3QpXG4gICAgICB9XG5cbiAgICAgIC8vIENoZWNrIGlmIGJlYWNvbiBoYXMgZm9jdXNcbiAgICAgIGlmICh0aGlzLmJlYWNvbkZvY3VzKSB7XG4gICAgICAgIGlmICh0aGlzLmJlYWNvbldpdGhBY3RpdmVGb2N1c0F1dG9JZClcbiAgICAgICAgICB0aGlzLmJlYWNvbkZvY3VzT3JkZXJMaWJyYXJ5LnB1c2goYmVhY29uT2JqZWN0LmJpZClcbiAgICAgICAgZWxzZVxuICAgICAgICAgIHRoaXMuYmVhY29uV2l0aEFjdGl2ZUZvY3VzQXV0b0lkID0gYmVhY29uT2JqZWN0LmJpZFxuICAgICAgfVxuXG4gICAgICAvLyBDaGVjayBpZiBpZCBpcyBzZXQgYW5kIHJlZ2lzdGVyIGl0XG4gICAgICBpZiAodGhpcy5iZWFjb25NYW51YWxJZCkge1xuICAgICAgICB0aGlzLmJlYWNvblN1YnNjcmliZWRFdmVudExpYnJhcnlbYmVhY29uSWRdLm1hbnVhbElkID0gdGhpcy5iZWFjb25NYW51YWxJZFxuICAgICAgICAvLyBNYXAgdGhlIGRlZmluZWQgaWQgdG8gdGhlIGF1dG8tZ2VuIGlkXG4gICAgICAgIHRoaXMuYmVhY29uV2F0Y2hlZEV2ZW50TGlicmFyeS5zZXQodGhpcy5iZWFjb25NYW51YWxJZCwgYmVhY29uSWQpXG4gICAgICB9XG5cbiAgICAgIC8vIFJlZ2lzdGVyIGJlYWNvbiB0eXBlIFxuICAgICAgdGhpcy5iZWFjb25TdWJzY3JpYmVkRXZlbnRMaWJyYXJ5W2JlYWNvbklkXS50eXBlID0gdGhpcy5iZWFjb25Db25maWdNYXBbdHlwZV0udHlwZVxuICAgIH1cblxuICAgIC8vIFJlZ2lzdGVyIGV2ZW50IGZvciBiZWFjb25cbiAgICB0aGlzLmJlYWNvblN1YnNjcmliZWRFdmVudExpYnJhcnlbYmVhY29uSWRdLmV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxJQmVhY29uRXZlbnQ+KClcblxuICAgIC8vIFJlc2V0XG4gICAgdGhpcy5iZWFjb25UaXRsZSA9IHVuZGVmaW5lZFxuICAgIHRoaXMuYmVhY29uTWVzc2FnZSA9IHVuZGVmaW5lZFxuICAgIHRoaXMuYmVhY29uU3RhdGljID0gdW5kZWZpbmVkXG4gICAgdGhpcy5iZWFjb25GaXhlZCA9IHVuZGVmaW5lZFxuICAgIHRoaXMuYmVhY29uQmxvY2tPdGhlcnMgPSB1bmRlZmluZWRcbiAgICB0aGlzLmJlYWNvbk1hbnVhbElkID0gdW5kZWZpbmVkXG4gICAgdGhpcy5iZWFjb25Gb2N1cyA9IHVuZGVmaW5lZFxuICAgIHRoaXMuYmVhY29uRm9jdXNTaGluZSA9IHVuZGVmaW5lZFxuICAgIHRoaXMuYmVhY29uT3ZlcmxheUNvbG9yID0gdW5kZWZpbmVkXG4gICAgdGhpcy5iZWFjb25BbGxvd0R1cGxpY2F0ZSA9IHVuZGVmaW5lZFxuICAgIHRoaXMuYmVhY29uTm9Ib3ZlckVmZmVjdCA9IHVuZGVmaW5lZFxuICAgIHRoaXMuYmVhY29uSWNvbiA9IHVuZGVmaW5lZFxuICAgIHRoaXMuYmVhY29uSWNvbkZyb21Gb250ID0gdW5kZWZpbmVkXG4gICAgdGhpcy5iZWFjb25TdHlsZUNsYXNzID0gdW5kZWZpbmVkXG4gICAgdGhpcy5iZWFjb25SZXBsYWNlbWVudENsYXNzID0gdW5kZWZpbmVkXG4gICAgdGhpcy5iZWFjb25BbmltYXRpb25DbGFzcyA9IHVuZGVmaW5lZFxuICAgIHRoaXMuYmVhY29uQnV0dG9ucyA9IHt9XG5cbiAgICByZXR1cm4gPEV2ZW50RW1pdHRlcjxJQmVhY29uRXZlbnQ+PnRoaXMuYmVhY29uU3Vic2NyaWJlZEV2ZW50TGlicmFyeVtiZWFjb25JZF0uZXZlbnRcbiAgfVxuXG4gIC8vIFNldCBub3RpZmljYXRpb24gbWVzc2FnZSAvIHN1Y2Nlc3NcbiAgcHVibGljIHN1Y2Nlc3MoLi4ubWVzc2FnZTogc3RyaW5nW10pOiBFdmVudEVtaXR0ZXI8SUJlYWNvbkV2ZW50PiB7XG4gICAgLy8gU2V0IHRpdGxlXG4gICAgKG1lc3NhZ2UubGVuZ3RoID4gMSkgJiYgbWVzc2FnZVswXSAmJiB0aGlzLnRpdGxlKG1lc3NhZ2VbMF0pXG4gICAgLy8gU2V0IGJvZHlcbiAgICByZXR1cm4gdGhpcy5iZWFjb24obWVzc2FnZVsxXSB8fCBtZXNzYWdlWzBdIHx8IHRoaXMuYmVhY29uTWVzc2FnZSB8fCB0aGlzLmJlYWNvbkNvbmZpZ01hcC5zdWNjZXNzLnRpdGxlLCB0aGlzLmJlYWNvblR5cGVNYXAuYSlcbiAgfVxuXG4gIC8vIFNldCBub3RpZmljYXRpb24gbWVzc2FnZSAvIGVycm9yXG4gIHB1YmxpYyBlcnJvciguLi5tZXNzYWdlOiBzdHJpbmdbXSk6IEV2ZW50RW1pdHRlcjxJQmVhY29uRXZlbnQ+IHtcbiAgICAvLyBTZXQgdGl0bGVcbiAgICAobWVzc2FnZS5sZW5ndGggPiAxKSAmJiBtZXNzYWdlWzBdICYmIHRoaXMudGl0bGUobWVzc2FnZVswXSlcbiAgICAvLyBTZXQgYm9keVxuICAgIHJldHVybiB0aGlzLmJlYWNvbihtZXNzYWdlWzFdIHx8IG1lc3NhZ2VbMF0gfHwgdGhpcy5iZWFjb25NZXNzYWdlIHx8IHRoaXMuYmVhY29uQ29uZmlnTWFwLmVycm9yLnRpdGxlLCB0aGlzLmJlYWNvblR5cGVNYXAuYilcbiAgfVxuXG4gIC8vIFNldCBub3RpZmljYXRpb24gbWVzc2FnZSAvIHdhcm5pbmdcbiAgcHVibGljIHdhcm5pbmcoLi4ubWVzc2FnZTogc3RyaW5nW10pOiBFdmVudEVtaXR0ZXI8SUJlYWNvbkV2ZW50PiB7XG4gICAgLy8gU2V0IHRpdGxlXG4gICAgKG1lc3NhZ2UubGVuZ3RoID4gMSkgJiYgbWVzc2FnZVswXSAmJiB0aGlzLnRpdGxlKG1lc3NhZ2VbMF0pXG4gICAgLy8gU2V0IGJvZHlcbiAgICByZXR1cm4gdGhpcy5iZWFjb24obWVzc2FnZVsxXSB8fCBtZXNzYWdlWzBdIHx8IHRoaXMuYmVhY29uTWVzc2FnZSB8fCB0aGlzLmJlYWNvbkNvbmZpZ01hcC53YXJuaW5nLnRpdGxlLCB0aGlzLmJlYWNvblR5cGVNYXAuYylcbiAgfVxuXG4gIC8vIFNldCBub3RpZmljYXRpb24gbWVzc2FnZSAvIGluZm9cbiAgcHVibGljIGluZm8oLi4ubWVzc2FnZTogc3RyaW5nW10pOiBFdmVudEVtaXR0ZXI8SUJlYWNvbkV2ZW50PiB7XG4gICAgLy8gU2V0IHRpdGxlXG4gICAgKG1lc3NhZ2UubGVuZ3RoID4gMSkgJiYgbWVzc2FnZVswXSAmJiB0aGlzLnRpdGxlKG1lc3NhZ2VbMF0pXG4gICAgLy8gU2V0IGJvZHlcbiAgICByZXR1cm4gdGhpcy5iZWFjb24obWVzc2FnZVsxXSB8fCBtZXNzYWdlWzBdIHx8IHRoaXMuYmVhY29uTWVzc2FnZSB8fCB0aGlzLmJlYWNvbkNvbmZpZ01hcC5pbmZvLnRpdGxlLCB0aGlzLmJlYWNvblR5cGVNYXAuZClcbiAgfVxuXG4gIC8vIFNldCBub3RpZmljYXRpb24gbWVzc2FnZSAvIGFsZXJ0XG4gIHB1YmxpYyBhbGVydCguLi5tZXNzYWdlOiBzdHJpbmdbXSk6IEV2ZW50RW1pdHRlcjxJQmVhY29uRXZlbnQ+IHtcbiAgICAvLyBTZXQgdGl0bGVcbiAgICAobWVzc2FnZS5sZW5ndGggPiAxKSAmJiBtZXNzYWdlWzBdICYmIHRoaXMudGl0bGUobWVzc2FnZVswXSlcbiAgICAvLyBTZXQgYm9keVxuICAgIHJldHVybiB0aGlzLmJlYWNvbihtZXNzYWdlWzFdIHx8IG1lc3NhZ2VbMF0gfHwgdGhpcy5iZWFjb25NZXNzYWdlIHx8IHRoaXMuYmVhY29uQ29uZmlnTWFwLmFsZXJ0LnRpdGxlLCB0aGlzLmJlYWNvblR5cGVNYXAuZSlcbiAgfVxuXG4gIC8vIFdhdGNoIGV2ZW50cyBmb3IgYmVhY29uIHdpdGggc3BlY2lmaWVkIGlkXG4gIHB1YmxpYyB3YXRjaChpZDogc3RyaW5nIHwgc3RyaW5nW10pOiBFdmVudEVtaXR0ZXI8SUJlYWNvbldhdGNoZWRFdmVudD4ge1xuICAgIC8vIFJlZ2lzdGVyIHdhdGNoZWQgaWRcbiAgICBpZiAoQXJyYXkuaXNBcnJheShpZCkpXG4gICAgICBpZC5mb3JFYWNoKGsgPT4gdGhpcy5iZWFjb25XYXRjaGVkRXZlbnRMaWJyYXJ5LnNldChrLCBTdHJpbmcoKSkpXG4gICAgZWxzZSB0aGlzLmJlYWNvbldhdGNoZWRFdmVudExpYnJhcnkuc2V0KGlkLCBTdHJpbmcoKSlcblxuICAgIHJldHVybiB0aGlzLmJlYWNvbldhdGNoZWRFdmVudFRhc2tNYXN0ZXJcbiAgfVxuXG4gIC8vIFdhdGNoIGV2ZW50cyBmb3IgYWxsIGJlYWNvbnNcbiAgcHVibGljIGV2ZW50cygpOiBFdmVudEVtaXR0ZXI8SUJlYWNvbldhdGNoZWRFdmVudD4ge1xuICAgIHJldHVybiB0aGlzLmJlYWNvbkFsbEV2ZW50VGFza01hc3RlclxuICB9XG5cbiAgLy8gQ2xvc2UgYmVhY29uIHdpdGggaWRcbiAgcHVibGljIGNsb3NlT25lKGlkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5iZWFjb25XYXRjaGVkRXZlbnRMaWJyYXJ5LmhhcyhpZCkpIHtcbiAgICAgIGNvbnN0IGF1dG9JZCA9IDxzdHJpbmc+dGhpcy5iZWFjb25XYXRjaGVkRXZlbnRMaWJyYXJ5LmdldChpZClcblxuICAgICAgLy8gUmVtb3ZlIHRoZSBiZWFjb25cbiAgICAgIHRoaXMuYmVhY29uTGlicmFyeSA9IHRoaXMuYmVhY29uTGlicmFyeS5maWx0ZXIoeCA9PiB7XG4gICAgICAgIHJldHVybiAoeC5iaWQgIT0gYXV0b0lkKVxuICAgICAgfSlcblxuICAgICAgdGhpcy5iZWFjb25FdmVudFRhc2tNYXN0ZXIuZW1pdCh7XG4gICAgICAgIGRlbGV0ZTogdHJ1ZSxcbiAgICAgICAgaWQ6IGF1dG9JZFxuICAgICAgfSlcbiAgICB9XG4gIH1cblxuICAvLyBDbG9zZSBhbGwgYmVhY29uc1xuICBwdWJsaWMgY2xvc2VBbGwoKTogdm9pZCB7XG4gICAgdGhpcy5iZWFjb25MaWJyYXJ5ID0gdGhpcy5iZWFjb25MaWJyYXJ5LmZpbHRlcih4ID0+IHtcbiAgICAgIHRoaXMuYmVhY29uRXZlbnRUYXNrTWFzdGVyLmVtaXQoe1xuICAgICAgICBkZWxldGU6IHRydWUsXG4gICAgICAgIGlkOiB4LmJpZFxuICAgICAgfSlcblxuICAgICAgcmV0dXJuICEoeC5iaWQpXG4gICAgfSlcbiAgfVxuXG4gIC8vIENoZWNrIGZvciBwb3NzaWJsZSBkdXBsaWNhdGVcbiAgcHJpdmF0ZSBpc05ld0JlYWNvbkFEdXBsaWNhdGUoc2lnbmF0dXJlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBjb25zdCBkdXBsaWNhdGUgPSB0aGlzLmJlYWNvbkxpYnJhcnkuZmluZCh4ID0+IHguc2lnbmF0dXJlID09IHNpZ25hdHVyZSlcbiAgICBjb25zdCBiZWFjb24gPSB0aGlzLmJlYWNvbkNvbnRhaW5lci5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoYGRpdiNiY18ke2R1cGxpY2F0ZT8uYmlkfWApXG4gICAgcmV0dXJuIEJvb2xlYW4oYmVhY29uICYmIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGJlYWNvbikub3BhY2l0eSA9PSAnMScpXG4gIH1cbn0iXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL3R5cGVzL2ludGVyZmFjZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgSUJlYWNvblR5cGUge1xyXG4gIGFsZXJ0Pzogc3RyaW5nXHJcbiAgZXJyb3I/OiBzdHJpbmdcclxuICBpbmZvPzogc3RyaW5nXHJcbiAgc3VjY2Vzcz86IHN0cmluZ1xyXG4gIHdhcm5pbmc/OiBzdHJpbmdcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJQmVhY29uSWNvbkNvbmZpZyB7XHJcbiAgaWNvbj86IHN0cmluZ1xyXG4gIGZvbnRJY29uPzogdHJ1ZVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElCZWFjb25UeXBlSWNvbiB7XHJcbiAgYWxlcnQ/OiBJQmVhY29uSWNvbkNvbmZpZ1xyXG4gIGVycm9yPzogSUJlYWNvbkljb25Db25maWdcclxuICBpbmZvPzogSUJlYWNvbkljb25Db25maWdcclxuICBzdWNjZXNzPzogSUJlYWNvbkljb25Db25maWdcclxuICB3YXJuaW5nPzogSUJlYWNvbkljb25Db25maWdcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJQmVhY29uUG9zaXRpb25Db25maWcge1xyXG4gIGxlZnRSaWdodD86ICdsZWZ0JyB8ICdjZW50ZXInIHwgJ3JpZ2h0J1xyXG4gIHRvcEJvdHRvbT86ICd0b3AnIHwgJ2JvdHRvbSdcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJQmVhY29uQ29uZmlnIHtcclxuICBiaWQ6IHN0cmluZ1xyXG4gIG1pZD86IHN0cmluZ1xyXG4gIHR5cGU6IHN0cmluZ1xyXG4gIGljb246IHN0cmluZ1xyXG4gIHN2Z0ljb24/OiBhbnlcclxuICBmb250SWNvbj86IHRydWUsXHJcbiAgdGl0bGU6IHN0cmluZ1xyXG4gIGJvZHk6IHN0cmluZ1xyXG4gIGJvZHlIdG1sOiBhbnlcclxuICBzaWduYXR1cmU/OiBzdHJpbmdcclxuICBzdGF0aWM/OiB0cnVlIHwgbnVtYmVyXHJcbiAgZml4ZWQ/OiB0cnVlXHJcbiAgZm9jdXM/OiB0cnVlXHJcbiAgc2hpbmU/OiB0cnVlXHJcbiAgcHJldmVudENsaWNrQ2xvc2U/OiB0cnVlXHJcbiAgYmxvY2tPdGhlcnM/OiB0cnVlXHJcbiAgZHVwbGljYXRlPzogdHJ1ZVxyXG4gIHN0eWxlQ2xhc3M/OiBzdHJpbmdcclxuICByZXBsYWNlbWVudENsYXNzPzogc3RyaW5nXHJcbiAgYW5pbWF0aW9uQ2xhc3M/OiBzdHJpbmdcclxuICBidXR0b25zPzogSUJlYWNvbkJ1dHRvblR5cGVcclxuICBvdmVybGF5Q29sb3I/
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL3R5cGVzL2ludGVyZmFjZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgSUJlYWNvblR5cGUge1xyXG4gIGFsZXJ0Pzogc3RyaW5nXHJcbiAgZXJyb3I/OiBzdHJpbmdcclxuICBpbmZvPzogc3RyaW5nXHJcbiAgc3VjY2Vzcz86IHN0cmluZ1xyXG4gIHdhcm5pbmc/OiBzdHJpbmdcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJQmVhY29uSWNvbkNvbmZpZyB7XHJcbiAgaWNvbj86IHN0cmluZ1xyXG4gIGZvbnRJY29uPzogdHJ1ZVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElCZWFjb25UeXBlSWNvbiB7XHJcbiAgYWxlcnQ/OiBJQmVhY29uSWNvbkNvbmZpZ1xyXG4gIGVycm9yPzogSUJlYWNvbkljb25Db25maWdcclxuICBpbmZvPzogSUJlYWNvbkljb25Db25maWdcclxuICBzdWNjZXNzPzogSUJlYWNvbkljb25Db25maWdcclxuICB3YXJuaW5nPzogSUJlYWNvbkljb25Db25maWdcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJQmVhY29uUG9zaXRpb25Db25maWcge1xyXG4gIGxlZnRSaWdodD86ICdsZWZ0JyB8ICdjZW50ZXInIHwgJ3JpZ2h0J1xyXG4gIHRvcEJvdHRvbT86ICd0b3AnIHwgJ2JvdHRvbSdcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJQmVhY29uQ29uZmlnIHtcclxuICBiaWQ6IHN0cmluZ1xyXG4gIG1pZD86IHN0cmluZ1xyXG4gIHR5cGU6IHN0cmluZ1xyXG4gIGljb246IHN0cmluZ1xyXG4gIHN2Z0ljb24/OiBhbnlcclxuICBmb250SWNvbj86IHRydWUsXHJcbiAgdGl0bGU6IHN0cmluZ1xyXG4gIGJvZHk6IHN0cmluZ1xyXG4gIGJvZHlIdG1sOiBhbnlcclxuICBzaWduYXR1cmU/OiBzdHJpbmdcclxuICBzdGF0aWM/OiB0cnVlIHwgbnVtYmVyXHJcbiAgZml4ZWQ/OiB0cnVlXHJcbiAgZm9jdXM/OiB0cnVlXHJcbiAgc2hpbmU/OiB0cnVlXHJcbiAgcHJldmVudENsaWNrQ2xvc2U/OiB0cnVlXHJcbiAgYmxvY2tPdGhlcnM/OiB0cnVlXHJcbiAgZHVwbGljYXRlPzogdHJ1ZVxyXG4gIHN0eWxlQ2xhc3M/OiBzdHJpbmdcclxuICByZXBsYWNlbWVudENsYXNzPzogc3RyaW5nXHJcbiAgYW5pbWF0aW9uQ2xhc3M/OiBzdHJpbmdcclxuICBidXR0b25zPzogSUJlYWNvbkJ1dHRvblR5cGVcclxuICBvdmVybGF5Q29sb3I/OiBzdHJpbmdcclxuICBub0hvdmVyRWZmZWN0PzogdHJ1ZVxyXG4gIHNoaW5lU2NhbGU/OiBzdHJpbmdcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJQmVhY29uSW5saW5lQ29uZmlnIHtcclxuICBzdGF0aWM/OiB0cnVlIHwgbnVtYmVyXHJcbiAgZml4ZWQ/OiB0cnVlXHJcbiAgZm9jdXM/OiB0cnVlXHJcbiAgc2hpbmU/OiB0cnVlXHJcbiAgcHJldmVudENsaWNrQ2xvc2U/OiB0cnVlXHJcbiAgYmxvY2tPdGhlcnM/OiB0cnVlXHJcbiAgZHVwbGljYXRlPzogdHJ1ZVxyXG4gIGljb24/OiBzdHJpbmdcclxuICBmb250SWNvbj86IHRydWVcclxuICBzdHlsZUNsYXNzPzogc3RyaW5nXHJcbiAgcmVwbGFjZW1lbnRDbGFzcz86IHN0cmluZ1xyXG4gIGFuaW1hdGlvbkNsYXNzPzogc3RyaW5nXHJcbiAgb3ZlcmxheUNvbG9yPzogc3RyaW5nXHJcbiAgbm9Ib3ZlckVmZmVjdD86IHRydWVcclxuICBzaGluZVNjYWxlPzogc3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSUJlYWNvbkdsb2JhbENvbmZpZyB7XHJcbiAgc3RhdGljPzogdHJ1ZSB8IG51bWJlclxyXG4gIGZpeGVkPzogdHJ1ZVxyXG4gIHByZXZlbnRDbGlja0Nsb3NlPzogdHJ1ZVxyXG4gIGJsb2NrT3RoZXJzPzogdHJ1ZVxyXG4gIG92ZXJsYXlDb2xvcj86IHN0cmluZ1xyXG4gIGR1cGxpY2F0ZT86IHRydWVcclxuICBpY29uPzogSUJlYWNvblR5cGVJY29uXHJcbiAgc3R5bGVDbGFzcz86IElCZWFjb25UeXBlXHJcbiAgcmVwbGFjZW1lbnRDbGFzcz86IElCZWFjb25UeXBlXHJcbiAgYW5pbWF0aW9uQ2xhc3M/OiBJQmVhY29uVHlwZVxyXG4gIHBvc2l0aW9uPzogSUJlYWNvblBvc2l0aW9uQ29uZmlnXHJcbiAgbm9Ib3ZlckVmZmVjdD86IHRydWVcclxuICBzaGluZVNjYWxlPzogc3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSUJlYWNvbkV2ZW50IHtcclxuICBvbjogYm9vbGVhblxyXG4gIG9mZjogYm9vbGVhblxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElCZWFjb25XYXRjaGVkRXZlbnQgZXh0ZW5kcyBJQmVhY29uRXZlbnQge1xyXG4gIGlkOiBzdHJpbmcgfCBudWxsXHJcbiAgdHlwZTogc3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSUJlYWNvbkV2ZW50TWVzc2FnZSB7XHJcbiAgW2tleTogc3RyaW5nXTogc3RyaW5nIHwgYm9vbGVhblxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElCZWFjb25CdXR0b25UeXBlIHtcclxuICBvbmU/OiBJQmVhY29uQnV0dG9uQ29uZmlnXHJcbiAgdHdvPzogSUJlYWNvbkJ1dHRvbkNvbmZpZ1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElCZWFjb25CdXR0b25Db25maWcge1xyXG4gIHRleHQ6IHN0cmluZ1xyXG4gIGNhbkRpc21pc3M/OiBib29sZWFuIHwgbnVsbFxyXG4gIGNhbGxiYWNrPzogYW55XHJcbiAgY2FsbGJhY2tBcmdzPzogYW55W10gfCBudWxsXHJcbiAgcG9zaXRpb24/OiBzdHJpbmdcclxufSJdfQ==
|