trm-tmpl 3.1.4 → 3.1.5
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/app/pages/components/constructor-form/components/constructor-field-iframe/constructor-field-iframe.component.mjs +20 -2
- package/esm2022/lib/app/pages/components/constructor-form/constructor-form.component.mjs +3 -2
- package/esm2022/lib/app/pages/components/constructor-form/services/constructor-form.service.mjs +4 -1
- package/fesm2022/trm-tmpl.mjs +24 -2
- package/fesm2022/trm-tmpl.mjs.map +1 -1
- package/lib/app/pages/components/constructor-form/components/constructor-field-iframe/constructor-field-iframe.component.d.ts +2 -1
- package/lib/app/pages/components/constructor-form/services/constructor-form.service.d.ts +1 -0
- package/package.json +1 -1
|
@@ -28,6 +28,7 @@ export class ConstructorFieldIframeComponent {
|
|
|
28
28
|
this.loading = false;
|
|
29
29
|
this.cd.detectChanges();
|
|
30
30
|
};
|
|
31
|
+
this._ready = false;
|
|
31
32
|
this._finished = false;
|
|
32
33
|
this.submitted = false;
|
|
33
34
|
}
|
|
@@ -52,6 +53,8 @@ export class ConstructorFieldIframeComponent {
|
|
|
52
53
|
.addEventListener('load', this._iframeOnLoadHandler);
|
|
53
54
|
this._sdk
|
|
54
55
|
.onError((code) => this._onError(code));
|
|
56
|
+
this._sdk.onInputPending(() => this._ready = false);
|
|
57
|
+
this._sdk.onInputReady(() => this._ready = true);
|
|
55
58
|
this._sdk
|
|
56
59
|
.onInputSubmitted(() => {
|
|
57
60
|
this._finished = true;
|
|
@@ -78,7 +81,22 @@ export class ConstructorFieldIframeComponent {
|
|
|
78
81
|
}
|
|
79
82
|
submit() {
|
|
80
83
|
this.submitted = true;
|
|
81
|
-
|
|
84
|
+
const subscriptions = [];
|
|
85
|
+
return new Promise((resolve) => {
|
|
86
|
+
if (!this._ready) {
|
|
87
|
+
resolve(false);
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
subscriptions.push(this._sdk.onInputPending(() => resolve(false)));
|
|
91
|
+
subscriptions.push(this._sdk.onError(() => resolve(false)));
|
|
92
|
+
subscriptions.push(this._sdk.onInputSubmitted(() => resolve(true)));
|
|
93
|
+
}
|
|
94
|
+
this._sdk.submit();
|
|
95
|
+
})
|
|
96
|
+
.then((result) => {
|
|
97
|
+
subscriptions.map(s => s.unsubscribe());
|
|
98
|
+
return result;
|
|
99
|
+
});
|
|
82
100
|
}
|
|
83
101
|
_onError(code) {
|
|
84
102
|
let codeError = I18N_KEY.ERROR_OCCUR;
|
|
@@ -115,4 +133,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImpor
|
|
|
115
133
|
}], tabIndex: [{
|
|
116
134
|
type: Input
|
|
117
135
|
}] } });
|
|
118
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RydWN0b3ItZmllbGQtaWZyYW1lLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rlcm1pbmFsLXRlbXBsYXRlL3NyYy9saWIvYXBwL3BhZ2VzL2NvbXBvbmVudHMvY29uc3RydWN0b3ItZm9ybS9jb21wb25lbnRzL2NvbnN0cnVjdG9yLWZpZWxkLWlmcmFtZS9jb25zdHJ1Y3Rvci1maWVsZC1pZnJhbWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGVybWluYWwtdGVtcGxhdGUvc3JjL2xpYi9hcHAvcGFnZXMvY29tcG9uZW50cy9jb25zdHJ1Y3Rvci1mb3JtL2NvbXBvbmVudHMvY29uc3RydWN0b3ItZmllbGQtaWZyYW1lL2NvbnN0cnVjdG9yLWZpZWxkLWlmcmFtZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBRUwsTUFBTSxFQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNqRCxPQUFPLEVBQW1CLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDeEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFFaEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXZELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDOztBQVV6RCxNQUFNLE9BQU8sK0JBQStCO0lBc0J4QyxJQUFJLFFBQVE7UUFDUixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDMUIsQ0FBQztJQUtEO1FBNUJRLGlCQUFZLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDeEMsZUFBVSxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3ZDLE9BQUUsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUMvQixvQkFBZSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUV0QyxxQkFBZ0IsR0FBRyxlQUFlLENBQUM7UUFFcEMsaUJBQVksR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQzNDLFlBQU8sR0FBRyxJQUFJLENBQUM7UUFFZixhQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ1YsVUFBSyxHQUFHLElBQUksWUFBWSxFQUFZLENBQUM7UUFDckMsU0FBSSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDaEMsVUFBSyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFFbkMseUJBQW9CLEdBQWUsR0FBRyxFQUFFO1lBQzVDLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1lBQ3JCLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDNUIsQ0FBQyxDQUFBO1FBRU8sY0FBUyxHQUFHLEtBQUssQ0FBQztRQWdFbEIsY0FBUyxHQUFHLEtBQUssQ0FBQztJQXZEMUIsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsZUFBZTthQUNqQixXQUFXLENBQUMsU0FBUyxDQUFDO2FBQ3RCLElBQUksQ0FDSCxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQ2xCLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FDdEIsQ0FBQztJQUNOLENBQUM7SUFFRCxJQUFJLElBQUk7UUFDSixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxJQUFZLE1BQU07UUFDZCxPQUFPLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDO0lBQzdCLENBQUM7SUFFTyxLQUFLO1FBQ1QsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNuRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNoQixPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksQ0FBQyxNQUFNO2FBQ04sZ0JBQWdCLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ3pELElBQUksQ0FBQyxJQUFJO2FBQ0osT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDNUMsSUFBSSxDQUFDLElBQUk7YUFDSixnQkFBZ0IsQ0FBQyxHQUFHLEVBQUU7WUFDbkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7WUFDdEIsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQ2pCLElBQUksQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQztnQkFDckMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNyQixDQUFDO2lCQUFNLENBQUM7Z0JBQ0osSUFBSSxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUMsMkJBQTJCLENBQUM7WUFDdkQsQ0FBQztZQUNELElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDNUIsQ0FBQyxDQUFDLENBQUM7UUFDUCxJQUFJLENBQUMsSUFBSTthQUNKLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDO1FBQ25FLElBQUksQ0FBQyxZQUFZO2FBQ1osWUFBWTthQUNaLElBQUksQ0FDRCxTQUFTLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUMvQjthQUNBLFNBQVMsQ0FBQyxDQUFDLE9BQXdCLEVBQUUsRUFBRTtZQUNwQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNoQixPQUFPO1lBQ1gsQ0FBQztZQUNELElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwQyxDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7SUFJRCxNQUFNO1FBQ0YsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDdEIsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRU8sUUFBUSxDQUFDLElBQXNCO1FBQ25DLElBQUksU0FBUyxHQUFHLFFBQVEsQ0FBQyxXQUFXLENBQUM7UUFDckMsSUFBSSxJQUFJLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDakIsU0FBUyxHQUFHLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQztRQUMxQyxDQUFDO2FBQU0sSUFBSSxJQUFJLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDeEIsU0FBUyxHQUFHLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQztRQUMxQyxDQUFDO2FBQU0sSUFBSSxJQUFJLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDeEIsU0FBUyxHQUFHLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQztRQUMxQyxDQUFDO1FBQ0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDckIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsTUFBTSxFQUFFLG1CQUFtQixDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUNwRSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDaEMsSUFBSSxDQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsQ0FBQztJQUM3QixDQUFDOzhHQTlHUSwrQkFBK0I7a0dBQS9CLCtCQUErQixxTEM5QjVDLCtnQkFrQkEsa0tEVVksa0JBQWtCLDhDQUFFLG1CQUFtQjs7MkZBRXRDLCtCQUErQjtrQkFSM0MsU0FBUzsrQkFDSSw4QkFBOEIsbUJBR3ZCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNULENBQUMsa0JBQWtCLEVBQUUsbUJBQW1CLENBQUM7d0RBY3RDLEtBQUs7c0JBQWQsTUFBTTtnQkFDRyxJQUFJO3NCQUFiLE1BQU07Z0JBQ0csS0FBSztzQkFBZCxNQUFNO2dCQUNFLFFBQVE7c0JBQWhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBpbmplY3QsXHJcbiAgSW5wdXQsXHJcbiAgT25EZXN0cm95LFxyXG4gIE91dHB1dFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJMThOX0tFWSB9IGZyb20gJy4vLi4vLi4vLi4vLi4vLi4vaTE4bic7XHJcbmltcG9ydCB7IExhbmdDaGFuZ2VFdmVudCwgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XHJcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgU2Vzc2lvbkRhdGFTb3VyY2UgfSBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vc2VydmljZXMvc2Vzc2lvbi5kYXRhLXNvdXJjZVwiO1xyXG5pbXBvcnQgeyBDZGVUZXJtaW5hbFNkayB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL21vZGVscyc7XHJcbmltcG9ydCB7IFNjcmlwdExvYWRlciB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3NlcnZpY2VzJztcclxuXHJcbmltcG9ydCB7IFRyYW5zbGF0ZUJ5S2V5UGlwZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3NoYXJlZC9waXBlcy90cmFuc2xhdGUtYnkta2V5LnBpcGUnO1xyXG5pbXBvcnQgeyBHbVNrZWxldG9uQ29tcG9uZW50IH0gZnJvbSAnQGdtbW9uZXkvZ20tdWkta2l0JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdhcHAtY29uc3RydWN0b3ItZmllbGQtaWZyYW1lJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9jb25zdHJ1Y3Rvci1maWVsZC1pZnJhbWUuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vY29uc3RydWN0b3ItZmllbGQtaWZyYW1lLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1RyYW5zbGF0ZUJ5S2V5UGlwZSwgR21Ta2VsZXRvbkNvbXBvbmVudF1cclxufSlcclxuZXhwb3J0IGNsYXNzIENvbnN0cnVjdG9yRmllbGRJZnJhbWVDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGVTcnYgPSBpbmplY3QoVHJhbnNsYXRlU2VydmljZSk7XHJcbiAgICBwcml2YXRlIHNlc3Npb25TcnYgPSBpbmplY3QoU2Vzc2lvbkRhdGFTb3VyY2UpO1xyXG4gICAgcHJpdmF0ZSBjZCA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XHJcbiAgICBwcml2YXRlIHNjcmlwdExvYWRlclNydiA9IGluamVjdChTY3JpcHRMb2FkZXIpO1xyXG5cclxuICAgIHJlYWRvbmx5IElEX0NERV9DT05UQUlORVIgPSAnY2RlLWNvbnRhaW5lcic7XHJcbiAgICBwcml2YXRlIF9zZGs6IENkZVRlcm1pbmFsU2RrO1xyXG4gICAgcHJpdmF0ZSB1blN1YnNjcmliZXIgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gICAgbG9hZGluZyA9IHRydWU7XHJcbiAgICBzdGF0dXM6IEkxOE5fS0VZO1xyXG4gICAgSTE4Tl9LRVkgPSBJMThOX0tFWTtcclxuICAgIEBPdXRwdXQoKSBlcnJvciA9IG5ldyBFdmVudEVtaXR0ZXI8STE4Tl9LRVk+KCk7XHJcbiAgICBAT3V0cHV0KCkgcGFpZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuICAgIEBPdXRwdXQoKSByZWFkeSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuICAgIEBJbnB1dCgpIHRhYkluZGV4O1xyXG4gICAgcHJpdmF0ZSBfaWZyYW1lT25Mb2FkSGFuZGxlcjogKCkgPT4gdm9pZCA9ICgpID0+IHtcclxuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9maW5pc2hlZCA9IGZhbHNlO1xyXG4gICAgZ2V0IGZpbmlzaGVkKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9maW5pc2hlZDtcclxuICAgIH1cclxuXHJcbiAgICAvKiogSW5zZXJ0ZWQgYnkgQW5ndWxhciBpbmplY3QoKSBtaWdyYXRpb24gZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5ICovXHJcbiAgICBjb25zdHJ1Y3RvciguLi5hcmdzOiB1bmtub3duW10pO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgfVxyXG5cclxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgICAgdGhpcy5zY3JpcHRMb2FkZXJTcnZcclxuICAgICAgICAuZmV0Y2hTY3JpcHQoJ2NkZV9zZGsnKVxyXG4gICAgICAgIC50aGVuKFxyXG4gICAgICAgICAgKCkgPT4gdGhpcy5faW5pdCgpLFxyXG4gICAgICAgICAgKCkgPT4gdGhpcy5fb25FcnJvcigpXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgbGFuZygpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTcnYuY3VycmVudExhbmc7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXQgaWZyYW1lKCk6IEhUTUxJRnJhbWVFbGVtZW50IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fc2RrPy5pZnJhbWU7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfaW5pdCgpIHtcclxuICAgICAgICB0aGlzLl9zZGsgPSB0aGlzLnNlc3Npb25TcnYuY3JlYXRlQ2FyZFRlcm1pbmFsU2RrKHRoaXMubGFuZywgdGhpcy5JRF9DREVfQ09OVEFJTkVSLCB0aGlzLnRhYkluZGV4KTtcclxuICAgICAgICBpZiAoIXRoaXMuaWZyYW1lKSB7XHJcbiAgICAgICAgICB0aGlzLl9vbkVycm9yKCk7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuaWZyYW1lXHJcbiAgICAgICAgICAgIC5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgdGhpcy5faWZyYW1lT25Mb2FkSGFuZGxlcik7XHJcbiAgICAgICAgdGhpcy5fc2RrXHJcbiAgICAgICAgICAgIC5vbkVycm9yKChjb2RlKSA9PiB0aGlzLl9vbkVycm9yKGNvZGUpKTtcclxuICAgICAgICB0aGlzLl9zZGtcclxuICAgICAgICAgICAgLm9uSW5wdXRTdWJtaXR0ZWQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fZmluaXNoZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuc3VibWl0dGVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0dXMgPSBJMThOX0tFWS5DREVfQ0FSRF9QQUlEO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucGFpZC5lbWl0KCk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdHVzID0gSTE4Tl9LRVkuQ0RFX0NBUkRfRVJST1JfQUxSRUFEWV9QQUlEO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuX3Nka1xyXG4gICAgICAgICAgICAub25UaW1lb3V0KCgpID0+IHRoaXMuZXJyb3IuZW1pdChJMThOX0tFWS5DREVfQ0FSRF9FUlJPUl81MDQpKTtcclxuICAgICAgICB0aGlzLnRyYW5zbGF0ZVNydlxyXG4gICAgICAgICAgICAub25MYW5nQ2hhbmdlXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMudW5TdWJzY3JpYmVyKVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKG9wdGlvbnM6IExhbmdDaGFuZ2VFdmVudCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKCFvcHRpb25zLmxhbmcpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9zZGsudXNlTGFuZyhvcHRpb25zLmxhbmcpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHN1Ym1pdHRlZCA9IGZhbHNlO1xyXG5cclxuICAgIHN1Ym1pdCgpIHtcclxuICAgICAgICB0aGlzLnN1Ym1pdHRlZCA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5fc2RrLnN1Ym1pdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX29uRXJyb3IoY29kZT86IDUwMCB8IDUwMSB8IDUwNCkge1xyXG4gICAgICAgIGxldCBjb2RlRXJyb3IgPSBJMThOX0tFWS5FUlJPUl9PQ0NVUjtcclxuICAgICAgICBpZiAoY29kZSA9PT0gNTAxKSB7XHJcbiAgICAgICAgICBjb2RlRXJyb3IgPSBJMThOX0tFWS5DREVfQ0FSRF9FUlJPUl81MDE7XHJcbiAgICAgICAgfSBlbHNlIGlmIChjb2RlID09PSA1MDApIHtcclxuICAgICAgICAgIGNvZGVFcnJvciA9IEkxOE5fS0VZLkNERV9DQVJEX0VSUk9SXzUwMDtcclxuICAgICAgICB9IGVsc2UgaWYgKGNvZGUgPT09IDUwNCkge1xyXG4gICAgICAgICAgY29kZUVycm9yID0gSTE4Tl9LRVkuQ0RFX0NBUkRfRVJST1JfNTA0O1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmVycm9yLmVtaXQoY29kZUVycm9yKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpIHtcclxuICAgICAgICB0aGlzLmlmcmFtZT8ucmVtb3ZlRXZlbnRMaXN0ZW5lcignbG9hZCcsIHRoaXMuX2lmcmFtZU9uTG9hZEhhbmRsZXIpO1xyXG4gICAgICAgIHRoaXMudW5TdWJzY3JpYmVyLm5leHQoKTtcclxuICAgICAgICB0aGlzLnVuU3Vic2NyaWJlci51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgIHRoaXMuX3Nkaz8udW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxufVxyXG4iLCJAaWYgKCFzdGF0dXMpIHtcclxuICA8ZGl2IFtpZF09XCJJRF9DREVfQ09OVEFJTkVSXCJcclxuICAgIFtoaWRkZW5dPVwibG9hZGluZ1wiXHJcbiAgPjwvZGl2PlxyXG59IEBlbHNlIHtcclxuICA8cCBjbGFzcz1cImlmcmFtZS13YXJuaW5nIHRleHQtLXdhcm5cIj4ge3sgc3RhdHVzIHwgdHJhbnN9fTwvcD5cclxufVxyXG5cclxuQGlmIChsb2FkaW5nKSB7XHJcbiAgPGRpdiBjbGFzcz1cInRybS1za2VsZXRvbi1maWVsZHNcIj5cclxuICAgIEBmb3IgKGkgb2YgWzEsMl07IHRyYWNrIGkpIHtcclxuICAgICAgPGRpdiBjbGFzcz1cInRybS1za2VsZXRvbi1maWVsZFwiPlxyXG4gICAgICAgIDxnbS1za2VsZXRvbiBbY291bnRdPVwiMVwiIFtzaGFwZV09XCIncmVjdC1tZCdcIiBbc2l6ZV09XCIxOFwiPjwvZ20tc2tlbGV0b24+XHJcbiAgICAgICAgPGdtLXNrZWxldG9uIFtjb3VudF09XCIxXCIgW3NpemVdPVwiNTBcIj48L2dtLXNrZWxldG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIH1cclxuICA8L2Rpdj5cclxufVxyXG4iXX0=
|
|
136
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RydWN0b3ItZmllbGQtaWZyYW1lLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rlcm1pbmFsLXRlbXBsYXRlL3NyYy9saWIvYXBwL3BhZ2VzL2NvbXBvbmVudHMvY29uc3RydWN0b3ItZm9ybS9jb21wb25lbnRzL2NvbnN0cnVjdG9yLWZpZWxkLWlmcmFtZS9jb25zdHJ1Y3Rvci1maWVsZC1pZnJhbWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGVybWluYWwtdGVtcGxhdGUvc3JjL2xpYi9hcHAvcGFnZXMvY29tcG9uZW50cy9jb25zdHJ1Y3Rvci1mb3JtL2NvbXBvbmVudHMvY29uc3RydWN0b3ItZmllbGQtaWZyYW1lL2NvbnN0cnVjdG9yLWZpZWxkLWlmcmFtZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBRUwsTUFBTSxFQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNqRCxPQUFPLEVBQW1CLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDeEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFFaEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXZELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxt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LElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNoQyxJQUFJLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxDQUFDO0lBQzdCLENBQUM7OEdBL0hRLCtCQUErQjtrR0FBL0IsK0JBQStCLHFMQzlCNUMsK2dCQWtCQSxrS0RVWSxrQkFBa0IsOENBQUUsbUJBQW1COzsyRkFFdEMsK0JBQStCO2tCQVIzQyxTQUFTOytCQUNJLDhCQUE4QixtQkFHdkIsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1QsQ0FBQyxrQkFBa0IsRUFBRSxtQkFBbUIsQ0FBQzt3REFjdEMsS0FBSztzQkFBZCxNQUFNO2dCQUNHLElBQUk7c0JBQWIsTUFBTTtnQkFDRyxLQUFLO3NCQUFkLE1BQU07Z0JBQ0UsUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIGluamVjdCxcclxuICBJbnB1dCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT3V0cHV0XHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEkxOE5fS0VZIH0gZnJvbSAnLi8uLi8uLi8uLi8uLi8uLi9pMThuJztcclxuaW1wb3J0IHsgTGFuZ0NoYW5nZUV2ZW50LCBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcclxuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBTZXNzaW9uRGF0YVNvdXJjZSB9IGZyb20gXCIuLi8uLi8uLi8uLi8uLi9zZXJ2aWNlcy9zZXNzaW9uLmRhdGEtc291cmNlXCI7XHJcbmltcG9ydCB7IENkZVRlcm1pbmFsU2RrIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vbW9kZWxzJztcclxuaW1wb3J0IHsgU2NyaXB0TG9hZGVyIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vc2VydmljZXMnO1xyXG5cclxuaW1wb3J0IHsgVHJhbnNsYXRlQnlLZXlQaXBlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vc2hhcmVkL3BpcGVzL3RyYW5zbGF0ZS1ieS1rZXkucGlwZSc7XHJcbmltcG9ydCB7IEdtU2tlbGV0b25Db21wb25lbnQgfSBmcm9tICdAZ21tb25leS9nbS11aS1raXQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2FwcC1jb25zdHJ1Y3Rvci1maWVsZC1pZnJhbWUnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NvbnN0cnVjdG9yLWZpZWxkLWlmcmFtZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9jb25zdHJ1Y3Rvci1maWVsZC1pZnJhbWUuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbVHJhbnNsYXRlQnlLZXlQaXBlLCBHbVNrZWxldG9uQ29tcG9uZW50XVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29uc3RydWN0b3JGaWVsZElmcmFtZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XHJcbiAgICBwcml2YXRlIHRyYW5zbGF0ZVNydiA9IGluamVjdChUcmFuc2xhdGVTZXJ2aWNlKTtcclxuICAgIHByaXZhdGUgc2Vzc2lvblNydiA9IGluamVjdChTZXNzaW9uRGF0YVNvdXJjZSk7XHJcbiAgICBwcml2YXRlIGNkID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcclxuICAgIHByaXZhdGUgc2NyaXB0TG9hZGVyU3J2ID0gaW5qZWN0KFNjcmlwdExvYWRlcik7XHJcblxyXG4gICAgcmVhZG9ubHkgSURfQ0RFX0NPTlRBSU5FUiA9ICdjZGUtY29udGFpbmVyJztcclxuICAgIHByaXZhdGUgX3NkazogQ2RlVGVybWluYWxTZGs7XHJcbiAgICBwcml2YXRlIHVuU3Vic2NyaWJlciA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgICBsb2FkaW5nID0gdHJ1ZTtcclxuICAgIHN0YXR1czogSTE4Tl9LRVk7XHJcbiAgICBJMThOX0tFWSA9IEkxOE5fS0VZO1xyXG4gICAgQE91dHB1dCgpIGVycm9yID0gbmV3IEV2ZW50RW1pdHRlcjxJMThOX0tFWT4oKTtcclxuICAgIEBPdXRwdXQoKSBwYWlkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG4gICAgQE91dHB1dCgpIHJlYWR5ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG4gICAgQElucHV0KCkgdGFiSW5kZXg7XHJcbiAgICBwcml2YXRlIF9pZnJhbWVPbkxvYWRIYW5kbGVyOiAoKSA9PiB2b2lkID0gKCkgPT4ge1xyXG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfVxyXG4gICAgcHJpdmF0ZSBfcmVhZHkgPSBmYWxzZTtcclxuXHJcbiAgICBwcml2YXRlIF9maW5pc2hlZCA9IGZhbHNlO1xyXG4gICAgZ2V0IGZpbmlzaGVkKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9maW5pc2hlZDtcclxuICAgIH1cclxuXHJcbiAgICAvKiogSW5zZXJ0ZWQgYnkgQW5ndWxhciBpbmplY3QoKSBtaWdyYXRpb24gZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5ICovXHJcbiAgICBjb25zdHJ1Y3RvciguLi5hcmdzOiB1bmtub3duW10pO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgfVxyXG5cclxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgICAgdGhpcy5zY3JpcHRMb2FkZXJTcnZcclxuICAgICAgICAuZmV0Y2hTY3JpcHQoJ2NkZV9zZGsnKVxyXG4gICAgICAgIC50aGVuKFxyXG4gICAgICAgICAgKCkgPT4gdGhpcy5faW5pdCgpLFxyXG4gICAgICAgICAgKCkgPT4gdGhpcy5fb25FcnJvcigpXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgbGFuZygpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTcnYuY3VycmVudExhbmc7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXQgaWZyYW1lKCk6IEhUTUxJRnJhbWVFbGVtZW50IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fc2RrPy5pZnJhbWU7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfaW5pdCgpIHtcclxuICAgICAgICB0aGlzLl9zZGsgPSB0aGlzLnNlc3Npb25TcnYuY3JlYXRlQ2FyZFRlcm1pbmFsU2RrKHRoaXMubGFuZywgdGhpcy5JRF9DREVfQ09OVEFJTkVSLCB0aGlzLnRhYkluZGV4KTtcclxuICAgICAgICBpZiAoIXRoaXMuaWZyYW1lKSB7XHJcbiAgICAgICAgICB0aGlzLl9vbkVycm9yKCk7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuaWZyYW1lXHJcbiAgICAgICAgICAgIC5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgdGhpcy5faWZyYW1lT25Mb2FkSGFuZGxlcik7XHJcbiAgICAgICAgdGhpcy5fc2RrXHJcbiAgICAgICAgICAgIC5vbkVycm9yKChjb2RlKSA9PiB0aGlzLl9vbkVycm9yKGNvZGUpKTtcclxuICAgICAgICB0aGlzLl9zZGsub25JbnB1dFBlbmRpbmcoKCkgPT4gdGhpcy5fcmVhZHkgPSBmYWxzZSk7XHJcbiAgICAgICAgdGhpcy5fc2RrLm9uSW5wdXRSZWFkeSgoKSA9PiB0aGlzLl9yZWFkeSA9IHRydWUpO1xyXG4gICAgICAgIHRoaXMuX3Nka1xyXG4gICAgICAgICAgICAub25JbnB1dFN1Ym1pdHRlZCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9maW5pc2hlZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5zdWJtaXR0ZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXR1cyA9IEkxOE5fS0VZLkNERV9DQVJEX1BBSUQ7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wYWlkLmVtaXQoKTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0dXMgPSBJMThOX0tFWS5DREVfQ0FSRF9FUlJPUl9BTFJFQURZX1BBSUQ7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5fc2RrXHJcbiAgICAgICAgICAgIC5vblRpbWVvdXQoKCkgPT4gdGhpcy5lcnJvci5lbWl0KEkxOE5fS0VZLkNERV9DQVJEX0VSUk9SXzUwNCkpO1xyXG4gICAgICAgIHRoaXMudHJhbnNsYXRlU3J2XHJcbiAgICAgICAgICAgIC5vbkxhbmdDaGFuZ2VcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy51blN1YnNjcmliZXIpXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgob3B0aW9uczogTGFuZ0NoYW5nZUV2ZW50KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoIW9wdGlvbnMubGFuZykge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHRoaXMuX3Nkay51c2VMYW5nKG9wdGlvbnMubGFuZyk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc3VibWl0dGVkID0gZmFsc2U7XHJcblxyXG4gICAgc3VibWl0KCkge1xyXG4gICAgICAgIHRoaXMuc3VibWl0dGVkID0gdHJ1ZTtcclxuICAgICAgICBjb25zdCBzdWJzY3JpcHRpb25zOiB7dW5zdWJzY3JpYmU6ICgpID0+IHZvaWR9W10gPSBbXTtcclxuICAgICAgICByZXR1cm4gbmV3IFByb21pc2U8Ym9vbGVhbj4oKHJlc29sdmUpID0+IHtcclxuICAgICAgICAgIGlmICghdGhpcy5fcmVhZHkpIHtcclxuICAgICAgICAgICAgcmVzb2x2ZShmYWxzZSk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBzdWJzY3JpcHRpb25zLnB1c2godGhpcy5fc2RrLm9uSW5wdXRQZW5kaW5nKCgpID0+IHJlc29sdmUoZmFsc2UpKSk7XHJcbiAgICAgICAgICAgIHN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLl9zZGsub25FcnJvcigoKSA9PiByZXNvbHZlKGZhbHNlKSkpO1xyXG4gICAgICAgICAgICBzdWJzY3JpcHRpb25zLnB1c2godGhpcy5fc2RrLm9uSW5wdXRTdWJtaXR0ZWQoKCkgPT4gcmVzb2x2ZSh0cnVlKSkpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5fc2RrLnN1Ym1pdCgpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICAgICAudGhlbigocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgICAgIHN1YnNjcmlwdGlvbnMubWFwKHMgPT4gcy51bnN1YnNjcmliZSgpKTtcclxuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX29uRXJyb3IoY29kZT86IDUwMCB8IDUwMSB8IDUwNCkge1xyXG4gICAgICAgIGxldCBjb2RlRXJyb3IgPSBJMThOX0tFWS5FUlJPUl9PQ0NVUjtcclxuICAgICAgICBpZiAoY29kZSA9PT0gNTAxKSB7XHJcbiAgICAgICAgICBjb2RlRXJyb3IgPSBJMThOX0tFWS5DREVfQ0FSRF9FUlJPUl81MDE7XHJcbiAgICAgICAgfSBlbHNlIGlmIChjb2RlID09PSA1MDApIHtcclxuICAgICAgICAgIGNvZGVFcnJvciA9IEkxOE5fS0VZLkNERV9DQVJEX0VSUk9SXzUwMDtcclxuICAgICAgICB9IGVsc2UgaWYgKGNvZGUgPT09IDUwNCkge1xyXG4gICAgICAgICAgY29kZUVycm9yID0gSTE4Tl9LRVkuQ0RFX0NBUkRfRVJST1JfNTA0O1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmVycm9yLmVtaXQoY29kZUVycm9yKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpIHtcclxuICAgICAgICB0aGlzLmlmcmFtZT8ucmVtb3ZlRXZlbnRMaXN0ZW5lcignbG9hZCcsIHRoaXMuX2lmcmFtZU9uTG9hZEhhbmRsZXIpO1xyXG4gICAgICAgIHRoaXMudW5TdWJzY3JpYmVyLm5leHQoKTtcclxuICAgICAgICB0aGlzLnVuU3Vic2NyaWJlci51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgIHRoaXMuX3Nkaz8udW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxufVxyXG4iLCJAaWYgKCFzdGF0dXMpIHtcclxuICA8ZGl2IFtpZF09XCJJRF9DREVfQ09OVEFJTkVSXCJcclxuICAgIFtoaWRkZW5dPVwibG9hZGluZ1wiXHJcbiAgPjwvZGl2PlxyXG59IEBlbHNlIHtcclxuICA8cCBjbGFzcz1cImlmcmFtZS13YXJuaW5nIHRleHQtLXdhcm5cIj4ge3sgc3RhdHVzIHwgdHJhbnN9fTwvcD5cclxufVxyXG5cclxuQGlmIChsb2FkaW5nKSB7XHJcbiAgPGRpdiBjbGFzcz1cInRybS1za2VsZXRvbi1maWVsZHNcIj5cclxuICAgIEBmb3IgKGkgb2YgWzEsMl07IHRyYWNrIGkpIHtcclxuICAgICAgPGRpdiBjbGFzcz1cInRybS1za2VsZXRvbi1maWVsZFwiPlxyXG4gICAgICAgIDxnbS1za2VsZXRvbiBbY291bnRdPVwiMVwiIFtzaGFwZV09XCIncmVjdC1tZCdcIiBbc2l6ZV09XCIxOFwiPjwvZ20tc2tlbGV0b24+XHJcbiAgICAgICAgPGdtLXNrZWxldG9uIFtjb3VudF09XCIxXCIgW3NpemVdPVwiNTBcIj48L2dtLXNrZWxldG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIH1cclxuICA8L2Rpdj5cclxufVxyXG4iXX0=
|
|
@@ -224,7 +224,8 @@ export class ConstructorFormComponent {
|
|
|
224
224
|
if (this.form.methodName === 'card' && !this.cardIframe?.finished) {
|
|
225
225
|
this.form.continueLoaderOn();
|
|
226
226
|
this.cd.detectChanges();
|
|
227
|
-
this.cardIframe?.submit()
|
|
227
|
+
this.cardIframe?.submit()
|
|
228
|
+
.then(success => !success && this.form.continueLoaderOff());
|
|
228
229
|
return;
|
|
229
230
|
}
|
|
230
231
|
this.send();
|
|
@@ -332,4 +333,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImpor
|
|
|
332
333
|
type: ViewChild,
|
|
333
334
|
args: ['cardIframe', { static: false }]
|
|
334
335
|
}] } });
|
|
335
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RydWN0b3ItZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90ZXJtaW5hbC10ZW1wbGF0ZS9zcmMvbGliL2FwcC9wYWdlcy9jb21wb25lbnRzL2NvbnN0cnVjdG9yLWZvcm0vY29uc3RydWN0b3ItZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90ZXJtaW5hbC10ZW1wbGF0ZS9zcmMvbGliL2FwcC9wYWdlcy9jb21wb25lbnRzL2NvbnN0cnVjdG9yLWZvcm0vY29uc3RydWN0b3ItZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBRVQsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBR0wsTUFBTSxFQUVOLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQWdCLG9CQUFvQixFQUFFLFlBQVksRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUM1RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQVE3RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM3RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDdkUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENB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QkFBaEIsS0FBSztnQkFJRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0ksSUFBSTtzQkFBYixNQUFNO2dCQUNHLE9BQU87c0JBQWhCLE1BQU07Z0JBQ0csT0FBTztzQkFBaEIsTUFBTTtnQkFDRyxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBQ0UsUUFBUTtzQkFBaEIsS0FBSztnQkFFMkMsVUFBVTtzQkFBMUQsU0FBUzt1QkFBQyxtQkFBbUIsRUFBRSxFQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUM7Z0JBQ0wsVUFBVTtzQkFBbkQsU0FBUzt1QkFBQyxZQUFZLEVBQUUsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFDO2dCQUNFLFVBQVU7c0JBQW5ELFNBQVM7dUJBQUMsWUFBWSxFQUFFLEVBQUMsTUFBTSxFQUFFLEtBQUssRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgRWxlbWVudFJlZixcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgaW5qZWN0LFxyXG4gIElucHV0LFxyXG4gIE9uQ2hhbmdlcyxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT3V0cHV0LFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgVmlld0NoaWxkXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFBheW1lbnRGaWVsZCwgUGF5bWVudEZpZWxkVHlwZUVudW0sIFRlcm1pbmFsU3RlcCB9IGZyb20gJy4vbW9kZWxzJztcclxuaW1wb3J0IHsgQ29uc3RydWN0b3JGb3JtU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvY29uc3RydWN0b3ItZm9ybS5zZXJ2aWNlJztcclxuaW1wb3J0IHtcclxuICBNZXRob2RUeXBlLFxyXG4gIE1ldGhvZFR5cGVUeXBlLFxyXG4gIFRlcm1pbmFsUGF5bWVudENvbmZpcm1SZXNwb25zZSxcclxuICBUZXJtaW5hbFBheW1lbnRQcmVwYXJlUmVzcG9uc2UsXHJcbiAgVGVybWluYWxQYXltZW50UHJlcGFyZVJlcXVlc3RcclxufSBmcm9tICcuLi8uLi8uLi8uLi9jb2RlZ2VuL21vZGVsL21vZGVscyc7XHJcbmltcG9ydCB7IGluc2VydFJlbW92ZVRyaWdnZXIgfSBmcm9tICcuLy4uLy4uLy4uL2hlbHBlcnMvaW5zZXJ0UmVtb3ZlVHJpZ2dlcic7XHJcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IENvdW50cmllc1NvcnRQaXBlIH0gZnJvbSAnLi4vLi4vLi4vcGlwZXMvY291bnRyaWVzLXNvcnQucGlwZSc7XHJcbmltcG9ydCB7IE5nU2Nyb2xsYmFyIH0gZnJvbSAnbmd4LXNjcm9sbGJhcic7XHJcbmltcG9ydCB7IEkxOE5fS0VZIH0gZnJvbSAnLi8uLi8uLi8uLi9pMThuJztcclxuaW1wb3J0IHtcclxuICBDb25zdHJ1Y3RvckZpZWxkSWZyYW1lQ29tcG9uZW50XHJcbn0gZnJvbSBcIi4vY29tcG9uZW50cy9jb25zdHJ1Y3Rvci1maWVsZC1pZnJhbWUvY29uc3RydWN0b3ItZmllbGQtaWZyYW1lLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBDb3VudHJ5VHJhbnNsYXRlUGlwZSB9IGZyb20gJy4uLy4uLy4uL3BpcGVzL2NvdW50cnktdHJhbnNsYXRlLnBpcGUnO1xyXG5pbXBvcnQgeyBURVJNSU5BTF9WRVJTSU9OX1NFUlZJQ0VfVE9LRU4gfSBmcm9tICcuLi8uLi8uLi8uLi9jb25zdCc7XHJcbmltcG9ydCB7IFZlcnNpb25TZXJ2aWNlSW50ZXJmYWNlIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE5nQ2xhc3MsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBUcm1TZWxlY3RDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvY29tcG9uZW50cy90cm0tc2VsZWN0L3RybS1zZWxlY3QuY29tcG9uZW50JztcclxuaW1wb3J0IHtcclxuICBUcm1TZWxlY3RMYWJlbFRlbXBsYXRlRGlyZWN0aXZlXHJcbn0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2NvbXBvbmVudHMvdHJtLXNlbGVjdC90cm0tc2VsZWN0LWxhYmVsLXRlbXBsYXRlLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFBzU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3BzLXNlbGVjdC9wcy1zZWxlY3QuY29tcG9uZW50JztcclxuaW1wb3J0IHtcclxuICBDb25zdHJ1Y3RvckZpZWxkU2VsZWN0Q29tcG9uZW50XHJcbn0gZnJvbSAnLi9jb21wb25lbnRzL2NvbnN0cnVjdG9yLWZpZWxkLXNlbGVjdC9jb25zdHJ1Y3Rvci1maWVsZC1zZWxlY3QuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29uc3RydWN0b3JGaWVsZFRleHRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY29uc3RydWN0b3ItZmllbGQtdGV4dC9jb25zdHJ1Y3Rvci1maWVsZC10ZXh0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1ldGhvZEFtb3VudEhpbnRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbWV0aG9kLWFtb3VudC1oaW50L21ldGhvZC1hbW91bnQtaGludC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb25zdHJ1Y3RvckZpZWxkRGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jb25zdHJ1Y3Rvci1maWVsZC1kYXRlL2NvbnN0cnVjdG9yLWZpZWxkLWRhdGUuY29tcG9uZW50JztcclxuaW1wb3J0IHtcclxuICBDb25zdHJ1Y3RvclByZXBhcmF0aW9uQ29tcG9uZW50XHJcbn0gZnJvbSAnLi9jb21wb25lbnRzL2NvbnN0cnVjdG9yLXByZXBhcmF0aW9uL2NvbnN0cnVjdG9yLXByZXBhcmF0aW9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRhYkluZGV4Rm9jdXNEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL3RhYi1pbmRleC1mb2N1cy5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVCeUtleVBpcGUgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvcGlwZXMvdHJhbnNsYXRlLWJ5LWtleS5waXBlJztcclxuaW1wb3J0IHsgR21Ta2VsZXRvbkNvbXBvbmVudCB9IGZyb20gJ0BnbW1vbmV5L2dtLXVpLWtpdCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1jb25zdHJ1Y3Rvci1mb3JtJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY29uc3RydWN0b3ItZm9ybS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY29uc3RydWN0b3ItZm9ybS5jb21wb25lbnQuc2NzcyddLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIGFuaW1hdGlvbnM6IFtpbnNlcnRSZW1vdmVUcmlnZ2VyXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIENvbnN0cnVjdG9yRm9ybVNlcnZpY2UsXHJcbiAgICBDb3VudHJ5VHJhbnNsYXRlUGlwZSwgQ291bnRyaWVzU29ydFBpcGVcclxuICBdLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0NvdW50cnlUcmFuc2xhdGVQaXBlLCBDb3VudHJpZXNTb3J0UGlwZSwgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIFRybVNlbGVjdENvbXBvbmVudCwgVHJtU2VsZWN0TGFiZWxUZW1wbGF0ZURpcmVjdGl2ZSwgTmdDbGFzcywgUHNTZWxlY3RDb21wb25lbnQsIE5nVGVtcGxhdGVPdXRsZXQsIENvbnN0cnVjdG9yRmllbGRJZnJhbWVDb21wb25lbnQsIENvbnN0cnVjdG9yRmllbGRTZWxlY3RDb21wb25lbnQsIENvbnN0cnVjdG9yRmllbGRUZXh0Q29tcG9uZW50LCBNZXRob2RBbW91bnRIaW50Q29tcG9uZW50LCBDb25zdHJ1Y3RvckZpZWxkRGF0ZUNvbXBvbmVudCwgQ29uc3RydWN0b3JQcmVwYXJhdGlvbkNvbXBvbmVudCwgVGFiSW5kZXhGb2N1c0RpcmVjdGl2ZSwgQ291bnRyeVRyYW5zbGF0ZVBpcGUsIFRyYW5zbGF0ZUJ5S2V5UGlwZSwgR21Ta2VsZXRvbkNvbXBvbmVudF1cclxufSlcclxuZXhwb3J0IGNsYXNzIENvbnN0cnVjdG9yRm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcclxuICBwcml2YXRlIGNkID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcclxuICBmb3JtID0gaW5qZWN0KENvbnN0cnVjdG9yRm9ybVNlcnZpY2UpO1xyXG4gIHByaXZhdGUgdHJhbnNsYXRlU3J2ID0gaW5qZWN0KFRyYW5zbGF0ZVNlcnZpY2UpO1xyXG4gIHByaXZhdGUgY291bnRyaWVzU29ydFBpcGUgPSBpbmplY3QoQ291bnRyaWVzU29ydFBpcGUpO1xyXG4gIHByaXZhdGUgY291bnRyeVRyYW5zbGF0ZVBpcGUgPSBpbmplY3QoQ291bnRyeVRyYW5zbGF0ZVBpcGUpO1xyXG4gIHByaXZhdGUgbmdTY3JvbGxCYXIgPSBpbmplY3QoTmdTY3JvbGxiYXIpO1xyXG4gIHByaXZhdGUgdmVyc2lvblNydiA9IGluamVjdDxWZXJzaW9uU2VydmljZUludGVyZmFjZT4oVEVSTUlOQUxfVkVSU0lPTl9TRVJWSUNFX1RPS0VOKTtcclxuXHJcbiAgcHJpdmF0ZSB1blN1YnNjcmliZXIgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIFRFUk1JTkFMX1NURVAgPSBUZXJtaW5hbFN0ZXA7XHJcbiAgQElucHV0KCkgc3RlcDogVGVybWluYWxTdGVwO1xyXG4gIEBJbnB1dCgpIGVycm9yPzogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHJlc3BvbnNlOiBUZXJtaW5hbFBheW1lbnRQcmVwYXJlUmVzcG9uc2UgJiBUZXJtaW5hbFBheW1lbnRDb25maXJtUmVzcG9uc2UgJiB7XHJcbiAgICB0eXBlSWQ/OiBudW1iZXI7XHJcbiAgfTtcclxuICBDT05TVFJVQ1RPUl9GSUVMRF9UWVBFUyA9IFBheW1lbnRGaWVsZFR5cGVFbnVtO1xyXG4gIEBJbnB1dCgpIGN1cnJlbmN5OiBzdHJpbmc7XHJcbiAgQElucHV0KCkgdXNlckN1cnJlbmN5OiBzdHJpbmdbXTtcclxuICBASW5wdXQoKSBsb2FkaW5nID0gZmFsc2U7XHJcbiAgQElucHV0KCkgdHlwZXM6IE1ldGhvZFR5cGVbXSA9IFtdO1xyXG4gIEBJbnB1dCgpIGNhblJldHVyblRvUHJvamVjdCA9IHRydWU7XHJcbiAgQE91dHB1dCgpIGJhY2s6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuICBAT3V0cHV0KCkgcHJlcGFyZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KCkgY29uZmlybTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KCkgb25QYXltZW50Q2hhbmdlZDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG4gIEBJbnB1dCgpIHRhYkluZGV4OiBudW1iZXI7XHJcbiAgY291bnRyeVNlYXJjaFN0cmluZzogc3RyaW5nO1xyXG4gIEBWaWV3Q2hpbGQoJ3BheW1lbnRSZXF1aXNpdGVzJywge3N0YXRpYzogZmFsc2V9KSByZXF1aXNpdGVzOiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ2hpbnRNZXRob2QnLCB7c3RhdGljOiBmYWxzZX0pIGhpbnRNZXRob2Q6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgnY2FyZElmcmFtZScsIHtzdGF0aWM6IGZhbHNlfSkgY2FyZElmcmFtZTogQ29uc3RydWN0b3JGaWVsZElmcmFtZUNvbXBvbmVudDtcclxuICBtYXNrZWRXYWxsZXQ6IHN0cmluZztcclxuXHJcbiAgSTE4Tl9LRVkgPSBJMThOX0tFWTtcclxuXHJcbiAgZ2V0IGNvdW50cmllc0xpc3QoKTogc3RyaW5nW10ge1xyXG4gICAgcmV0dXJuIHRoaXMuY291bnRyaWVzU29ydFBpcGVcclxuICAgICAgLnRyYW5zZm9ybShcclxuICAgICAgICB0aGlzLnR5cGVzXHJcbiAgICAgICAgICAubWFwKHR5cGUgPT4gdHlwZS5jb3VudHJ5SVNPQ29kZSlcclxuICAgICAgICAgIC5maWx0ZXIoKHZhbHVlLCBpbmRleCwgc2VsZikgPT4gc2VsZi5pbmRleE9mKHZhbHVlKSA9PT0gaW5kZXgpXHJcbiAgICAgIClcclxuICAgICAgLmZpbHRlcigobTogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmNvdW50cnlTZWFyY2hTdHJpbmcpIHtcclxuICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBjb25zdCB0aXRsZTogc3RyaW5nID0gdGhpcy5jb3VudHJ5VHJhbnNsYXRlUGlwZS50cmFuc2Zvcm0obSk7XHJcbiAgICAgICAgICByZXR1cm4gdGl0bGUudG9Mb3dlckNhc2UoKVxyXG4gICAgICAgICAgICAuc3BsaXQoJyAnKS5zb21lKFxyXG4gICAgICAgICAgICAgIHRzID0+IHRoaXMuY291bnRyeVNlYXJjaFN0cmluZy50b0xvd2VyQ2FzZSgpLnNwbGl0KCcgJykuc29tZShzID0+IHRzLmluY2x1ZGVzKHMpKVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXQgbWV0aG9kc0xpc3QoKTogTWV0aG9kVHlwZVR5cGVbXSB7XHJcbiAgICByZXR1cm4gdGhpcy50eXBlc1xyXG4gICAgICAuZmlsdGVyKHR5cGUgPT4gdHlwZS5jb3VudHJ5SVNPQ29kZSA9PT0gdGhpcy5mb3JtLmNvdW50cnkudmFsdWUpXHJcbiAgICAgIC8vIGRpc3RpbmN0XHJcbiAgICAgIC5maWx0ZXIoKHR5cGUsIGluZGV4LCBzZWxmKSA9PiBzZWxmLm1hcChtID0+IG0udHlwZS5pZCkuaW5kZXhPZih0eXBlLnR5cGUuaWQpID09PSBpbmRleClcclxuICAgICAgLy9zb3J0aW5nIGJ5IHRoZSBwcmlvcml0eVxyXG4gICAgICAuc29ydCgobTEsIG0yKSA9PiBtMS5wcmlvcml0eSA+IG0yLnByaW9yaXR5ID8gMSA6ICgobTEucHJpb3JpdHkgPT09IG0yLnByaW9yaXR5KSA/IDAgOiAtMSkpXHJcbiAgICAgIC5tYXAodHlwZSA9PiB0eXBlLnR5cGUpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGN1cnJlbmNpZXNMaXN0KCkge1xyXG4gICAgcmV0dXJuIHRoaXMudHlwZXNcclxuICAgICAgLmZpbHRlcih0eXBlID0+IHR5cGUuY291bnRyeUlTT0NvZGUgPT09IHRoaXMuZm9ybS5jb3VudHJ5LnZhbHVlICYmIHR5cGUudHlwZS5pZCA9PT0gdGhpcy5mb3JtLm1ldGhvZC52YWx1ZSlcclxuICAgICAgLm1hcCh0eXBlID0+IHR5cGUuY3VycmVuY3kpXHJcbiAgfVxyXG5cclxuICBnZXQgdXNlckN1cnJlbmNpZXNMaXN0KCkge1xyXG4gICAgY29uc3QgZmlsdGVyZWRUeXBlcyA9IHRoaXMuY3VycmVuY2llc0xpc3Q7XHJcblxyXG4gICAgaWYgKCF0aGlzLnVzZXJDdXJyZW5jeSkge1xyXG4gICAgICByZXR1cm4gZmlsdGVyZWRUeXBlcztcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy51c2VyQ3VycmVuY3lcclxuICAgICAgLmZpbHRlcih1c2VyQ3VycmVuY3kgPT4gZmlsdGVyZWRUeXBlcy5pbmNsdWRlcyh1c2VyQ3VycmVuY3kpKVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRDdXJyZW5jeVZhbHVlKCkge1xyXG4gICAgbGV0IGRlZmF1bHRDdXJyZW5jeSA9IHRoaXMuZm9ybS5kZWZhdWx0Q3VycmVuY3k7XHJcblxyXG4gICAgbGV0IGN1cnJlbmNpZXMgPSB0aGlzLmN1cnJlbmNpZXNMaXN0O1xyXG4gICAgbGV0IGN1cnJlbmN5ID0gY3VycmVuY2llc1swXTtcclxuICAgIGlmIChkZWZhdWx0Q3VycmVuY3kgJiYgdGhpcy5jdXJyZW5jaWVzTGlzdC5pbmNsdWRlcyhkZWZhdWx0Q3VycmVuY3kpKSB7XHJcbiAgICAgIGN1cnJlbmN5ID0gZGVmYXVsdEN1cnJlbmN5O1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmN1cnJlbmN5ICYmIHRoaXMuY3VycmVuY2llc0xpc3QuaW5jbHVkZXModGhpcy5jdXJyZW5jeSkpIHtcclxuICAgICAgY3VycmVuY3kgPSB0aGlzLmN1cnJlbmN5O1xyXG4gICAgfVxyXG4gICAgdGhpcy5mb3JtLmN1cnJlbmN5LnNldFZhbHVlKGN1cnJlbmN5KTtcclxuXHJcbiAgICBjdXJyZW5jaWVzID0gdGhpcy51c2VyQ3VycmVuY2llc0xpc3Q7XHJcbiAgICBjdXJyZW5jeSA9IGN1cnJlbmNpZXNbMF07XHJcbiAgICBpZiAoZGVmYXVsdEN1cnJlbmN5ICYmIHRoaXMudXNlckN1cnJlbmNpZXNMaXN0LmluY2x1ZGVzKGRlZmF1bHRDdXJyZW5jeSkpIHtcclxuICAgICAgY3VycmVuY3kgPSBkZWZhdWx0Q3VycmVuY3k7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuY3VycmVuY3kgJiYgdGhpcy51c2VyQ3VycmVuY2llc0xpc3QuaW5jbHVkZXModGhpcy5jdXJyZW5jeSkpIHtcclxuICAgICAgY3VycmVuY3kgPSB0aGlzLmN1cnJlbmN5O1xyXG4gICAgfVxyXG4gICAgdGhpcy5mb3JtLnVzZXJDdXJyZW5jeS5zZXRWYWx1ZShjdXJyZW5jeSwge2VtaXRFdmVudDogZmFsc2V9KTtcclxuICAgIGlmIChjdXJyZW5jaWVzLmxlbmd0aCA9PT0gMSAmJiBjdXJyZW5jeSAmJiB0aGlzLmZvcm0ubWV0aG9kLmRpc2FibGVkKSB7XHJcbiAgICAgIHRoaXMuZm9ybS51c2VyQ3VycmVuY3kuZGlzYWJsZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGFzRmVlSGludChmaWVsZDogUGF5bWVudEZpZWxkKSB7XHJcbiAgICByZXR1cm4gZmllbGQudHlwZSA9PT0gdGhpcy5DT05TVFJVQ1RPUl9GSUVMRF9UWVBFUy5BbW91bnQgJiYgKGZpZWxkLm9wdGlvbnMuZmVlIHx8IGZpZWxkLm9wdGlvbnMuZml4ZWRGZWUgfHwgZmllbGQub3B0aW9ucy5taW4gfHwgZmllbGQub3B0aW9ucy5tYXgpO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgfVxyXG5cclxuICBnZXQgaGFzQ3VycmVuY3lNZXRob2RTZWxlY3RvcigpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnZlcnNpb25TcnYuaGFzQ3VycmVuY3lNZXRob2RTZWxlY3RvciA9PT0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGdldCBsYW5nKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTcnYuY3VycmVudExhbmc7XHJcbiAgfVxyXG5cclxuICBnZXQgc2tlbGV0b25MZW5ndGgoKSB7XHJcbiAgICByZXR1cm4gbmV3IEFycmF5KHRoaXMuZm9ybS5maWVsZHM/Lmxlbmd0aCB8fCAzKS5maWxsKDApO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgaWYgKGNoYW5nZXMudHlwZXMgJiYgdGhpcy50eXBlcz8ubGVuZ3RoIHx8IGNoYW5nZXMuY3VycmVuY3kgJiYgdGhpcy5jdXJyZW5jeSkge1xyXG4gICAgICAvLyBHZXQgY29uZmlndXJhdGlvbiBmaWVsZHNcclxuICAgICAgY29uc3QgY291bnRyaWVzID0gdGhpcy5jb3VudHJpZXNMaXN0O1xyXG4gICAgICBjb25zdCBkZWZhdWx0Q291bnRyeSA9IHRoaXMuZm9ybS5kZWZhdWx0Q291bnRyeTtcclxuICAgICAgdGhpcy5mb3JtLmNvdW50cnkuc2V0VmFsdWUoY291bnRyaWVzLmluY2x1ZGVzKGRlZmF1bHRDb3VudHJ5KSA/IGRlZmF1bHRDb3VudHJ5IDogY291bnRyaWVzWzBdKTtcclxuICAgICAgaWYgKGNvdW50cmllcy5sZW5ndGggPT09IDEgJiYgdGhpcy5mb3JtLmNvdW50cnkudmFsdWUpIHtcclxuICAgICAgICB0aGlzLmZvcm0uY291bnRyeS5kaXNhYmxlKCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbnN0IG1ldGhvZHMgPSB0aGlzLm1ldGhvZHNMaXN0O1xyXG4gICAgICBjb25zdCBkZWZhdWx0TWV0aG9kTmFtZSA9IHRoaXMuZm9ybS5kZWZhdWx0TWV0aG9kTmFtZTtcclxuICAgICAgY29uc3QgZGVmYXVsdE1ldGhvZCA9IG1ldGhvZHMuZmluZChtID0+IG0ubmFtZSA9PT0gZGVmYXVsdE1ldGhvZE5hbWUpPy5pZDtcclxuICAgICAgdGhpcy5mb3JtLm1ldGhvZC5zZXRWYWx1ZShkZWZhdWx0TWV0aG9kIHx8IG1ldGhvZHNbMF0/LmlkKTtcclxuXHJcbiAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICBpZiAobWV0aG9kcy5sZW5ndGggPT09IDEgJiYgdGhpcy5mb3JtLmNvdW50cnkuZGlzYWJsZWQpIHtcclxuICAgICAgICB0aGlzLmZvcm0ubWV0aG9kLmRpc2FibGUoKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgdGhpcy5zZXRDdXJyZW5jeVZhbHVlKCk7XHJcbiAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICB0aGlzLmZldGNoRm9ybSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5mb3JtXHJcbiAgICAgIC5jb3VudHJ5XHJcbiAgICAgIC52YWx1ZUNoYW5nZXNcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKGEsYikgPT4gIGEgPT09IGIpLFxyXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLnVuU3Vic2NyaWJlcilcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICB0aGlzLmZvcm0uc2F2ZURlZmF1bHRDb3VudHJ5KCk7XHJcbiAgICAgICAgdGhpcy5mb3JtLm1ldGhvZC5zZXRWYWx1ZSh0aGlzLm1ldGhvZHNMaXN0WzBdLmlkLCB7ZW1pdEV2ZW50OiBmYWxzZX0pO1xyXG5cclxuICAgICAgICBjb25zdCBtZXRob2RzID0gdGhpcy5tZXRob2RzTGlzdDtcclxuICAgICAgICBjb25zdCBkZWZhdWx0TWV0aG9kTmFtZSA9IHRoaXMuZm9ybS5kZWZhdWx0TWV0aG9kTmFtZTtcclxuICAgICAgICBjb25zdCBkZWZhdWx0TWV0aG9kID0gbWV0aG9kcy5maW5kKG0gPT4gbS5uYW1lID09PSBkZWZhdWx0TWV0aG9kTmFtZSk/LmlkO1xyXG4gICAgICAgIHRoaXMuZm9ybS5tZXRob2Quc2V0VmFsdWUoZGVmYXVsdE1ldGhvZCB8fCBtZXRob2RzWzBdLmlkLCB7ZW1pdEV2ZW50OiBmYWxzZX0pO1xyXG4gICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG5cclxuICAgICAgICB0aGlzLnNldEN1cnJlbmN5VmFsdWUoKTtcclxuICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuXHJcbiAgICAgICAgdGhpcy5mZXRjaEZvcm0oKTtcclxuICAgICAgfSk7XHJcbiAgICB0aGlzLmZvcm1cclxuICAgICAgLm1ldGhvZFxyXG4gICAgICAudmFsdWVDaGFuZ2VzXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKChhLGIpID0+ICBhID09PSBiKSxcclxuICAgICAgICB0YWtlVW50aWwodGhpcy51blN1YnNjcmliZXIpXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5mb3JtLm1ldGhvZC5jbGVhclZhbGlkYXRvcnMoKTtcclxuICAgICAgICB0aGlzLmZvcm0uc2F2ZURlZmF1bHRNZXRob2ROYW1lKCk7XHJcbiAgICAgICAgdGhpcy5zZXRDdXJyZW5jeVZhbHVlKCk7XHJcbiAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgdGhpcy5mZXRjaEZvcm0oKTtcclxuICAgICAgfSlcclxuICAgIHRoaXMuZm9ybVxyXG4gICAgICAuY3VycmVuY3lcclxuICAgICAgLnZhbHVlQ2hhbmdlc1xyXG4gICAgICAucGlwZShcclxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgoYSxiKSA9PiAgYSA9PT0gYiksXHJcbiAgICAgICAgdGFrZVVudGlsKHRoaXMudW5TdWJzY3JpYmVyKVxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuZmV0Y2hGb3JtKCk7XHJcbiAgICAgICAgdGhpcy5mb3JtLnNhdmVEZWZhdWx0Q3VycmVuY3koKTtcclxuICAgICAgfSk7XHJcbiAgICB0aGlzLmZvcm0ucGF5bWVudC52YWx1ZUNoYW5nZXNcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgZGVib3VuY2VUaW1lKDMwMCksXHJcbiAgICAgICAgdGFrZVVudGlsKHRoaXMudW5TdWJzY3JpYmVyKVxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5vblBheW1lbnRDaGFuZ2VkLmVtaXQoKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZldGNoRm9ybSgpIHtcclxuICAgIHRoaXMuZm9ybS5jYW5jZWxSZXF1ZXN0cygpO1xyXG4gICAgaWYgKHRoaXMuc3RlcCAhPT0gdGhpcy5URVJNSU5BTF9TVEVQLlByZXBhcmUpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5mb3JtLnJlbW92ZVBheW1lbnRGb3JtQ29udHJvbHMoKTtcclxuICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgdGhpcy5mb3JtXHJcbiAgICAgIC5pbml0KClcclxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmZvcm0uaGFzV2hhdFRvRmlsbCgpKSB7XHJcbiAgICAgICAgICB0aGlzLnNlbmQoKTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgdGhpcy5zY3JvbGxUb1JlcXVpc2l0cygpO1xyXG4gICAgICAgIHRoaXMuZm9ybS5tYXNrZWRXYWxsZXQgPSAnJztcclxuICAgICAgfSwgKGVycikgPT4ge1xyXG4gICAgICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzY3JvbGxUb1JlcXVpc2l0cygpIHtcclxuICAgIGlmICh0aGlzLnJlcXVpc2l0ZXMgfHwgdGhpcy5oaW50TWV0aG9kKSB7XHJcbiAgICAgIHRoaXMubmdTY3JvbGxCYXI/LnNjcm9sbFRvRWxlbWVudCh0aGlzLmhpbnRNZXRob2Q/Lm5hdGl2ZUVsZW1lbnQgfHwgdGhpcy5yZXF1aXNpdGVzLm5hdGl2ZUVsZW1lbnQsIHtcclxuICAgICAgICBkdXJhdGlvbjogNTAwLFxyXG4gICAgICAgIHRvcDogLTc1XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0IGRlc2NyaXB0aW9uKCkge1xyXG4gICAgcmV0dXJuIHR5cGVvZiB0aGlzLmZvcm0uY29uZmlnPy5kZXNjcmlwdGlvbiA9PT0gJ2Z1bmN0aW9uJyA/IHRoaXMuZm9ybS5jb25maWc/LmRlc2NyaXB0aW9uKHRoaXMuZm9ybS5nZXRSYXdWYWx1ZSgpKSA6IHRoaXMuZm9ybS5jb25maWc/LmRlc2NyaXB0aW9uO1xyXG4gIH1cclxuXHJcbiAgc3VibWl0KCkge1xyXG4gICAgaWYgKCF0aGlzLmNoZWNrKCkgJiYgIXRoaXMubG9hZGluZykge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5mb3JtLm1ldGhvZE5hbWUgPT09ICdjYXJkJyAmJiAhdGhpcy5jYXJkSWZyYW1lPy5maW5pc2hlZCkge1xyXG4gICAgICB0aGlzLmZvcm0uY29udGludWVMb2FkZXJPbigpO1xyXG4gICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgdGhpcy5jYXJkSWZyYW1lPy5zdWJtaXQoKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZW5kKCk7XHJcbiAgfVxyXG5cclxuICBjYXJkUGFpZCgpIHtcclxuICAgIGlmICghdGhpcy5jaGVjaygpKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuc2VuZCgpO1xyXG4gIH1cclxuXHJcbiAgaWZyYW1lRXJyb3IoY29kZTogSTE4Tl9LRVkpIHtcclxuICAgIHRoaXMuZm9ybS5zZXRDREVFcnJvcihjb2RlKTtcclxuICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjaGVjaygpIHtcclxuICAgIGlmICh0aGlzLnN0ZXAgPT09IFRlcm1pbmFsU3RlcC5Db25maXJtYXRpb24pIHtcclxuICAgICAgdGhpcy5jb25maXJtLmVtaXQoKTtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuZm9ybS5jb25maWcgPT09IG51bGwpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgaWYgKCF0aGlzLmZvcm0udmFsaWQgfHwgdGhpcy5lcnJvcikge1xyXG4gICAgICBPYmplY3QudmFsdWVzKHRoaXMuZm9ybS5wYXltZW50LmNvbnRyb2xzKVxyXG4gICAgICAgIC5mb3JFYWNoKChjb250cm9sKSA9PiB7XHJcbiAgICAgICAgICBjb250cm9sLm1hcmtBc0RpcnR5KCk7XHJcbiAgICAgICAgICBjb250cm9sLm1hcmtBc1RvdWNoZWQoKTtcclxuICAgICAgICAgIGNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7ZW1pdEV2ZW50OiBmYWxzZX0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZW5kKCkge1xyXG4gICAgY29uc3QgZGF0YTogVGVybWluYWxQYXltZW50UHJlcGFyZVJlcXVlc3QgPSB0aGlzLmZvcm0uZ2V0UGF5bWVudFZhbHVlKCk7XHJcbiAgICB0aGlzLm1hc2tlZFdhbGxldCA9IHRoaXMuZm9ybS5tYXNrZWRXYWxsZXQ7XHJcbiAgICB0aGlzLnByZXBhcmUuZW1pdChkYXRhKTtcclxuICB9XHJcblxyXG4gIHNlYXJjaENvdW50cnkodmFsdWUpIHtcclxuICAgIHRoaXMuY291bnRyeVNlYXJjaFN0cmluZyA9IHZhbHVlO1xyXG4gICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcclxuICB9XHJcblxyXG4gIGdldCBiYWNrQnRuTGFiZWwoKTogc3RyaW5nIHtcclxuICAgIGlmICh0aGlzLnN0ZXAgPT09IFRlcm1pbmFsU3RlcC5QcmVwYXJlKSB7XHJcbiAgICAgIHJldHVybiBJMThOX0tFWS5DT05TVFJVQ1RPUl9MQUJFTF9DQU5DRUxfUkVUVVJOO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIEkxOE5fS0VZLkNPTlNUUlVDVE9SX0xBQkVMX1JFVFVSTjtcclxuICB9XHJcblxyXG4gIGNoYW5nZVRleHRGaWVsZFZhbHVlKG1hc2tlZFZhbHVlLCBmaWVsZDogUGF5bWVudEZpZWxkKSB7XHJcbiAgICBpZiAoZmllbGQud2FsbGV0KSB7XHJcbiAgICAgIHRoaXMuZm9ybS5tYXNrZWRXYWxsZXQgPSBtYXNrZWRWYWx1ZTtcclxuICAgICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMudW5TdWJzY3JpYmVyLm5leHQoKTtcclxuICAgIHRoaXMudW5TdWJzY3JpYmVyLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxmb3JtIGNsYXNzPVwiY29uc3RydWN0b3JcIlxyXG4gIFtmb3JtR3JvdXBdPVwiZm9ybVwiXHJcbiAgKG5nU3VibWl0KT1cInN1Ym1pdCgpXCJcclxuICA+XHJcbiAgQGlmIChsb2FkaW5nICE9PSBudWxsKSB7XHJcbiAgICBAaWYgKHN0ZXAgPT09IFRFUk1JTkFMX1NURVAuUHJlcGFyZSkge1xyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29uc3RydWN0b3JfX2ZpZWxkc1wiPlxyXG4gICAgICAgIEBpZiAoY291bnRyeVNlYXJjaFN0cmluZyB8fCBjb3VudHJpZXNMaXN0Lmxlbmd0aCA+IDEpIHtcclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb25zdHJ1Y3Rvcl9fZmllbGRcIj5cclxuICAgICAgICAgICAgPGFwcC10cm0tc2VsZWN0IFtkYXRhXT1cImNvdW50cmllc0xpc3RcIlxyXG4gICAgICAgICAgICAgIG5hbWU9XCJjb3VudHJ5XCJcclxuICAgICAgICAgICAgICBbbGFiZWxdPVwiSTE4Tl9LRVkuQ09OU1RSVUNUT1JfTEFCRUxfQ09VTlRSWSB8IHRyYW5zXCJcclxuICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJjb3VudHJ5XCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImMtZmllbGQtc2VsZWN0IHRybS1mb3JtLWZpZWxkXCJcclxuICAgICAgICAgICAgICAoc2VhcmNoKT1cInNlYXJjaENvdW50cnkoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgW3RhYkluZGV4XT1cInRhYkluZGV4XCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIHRybVNlbGVjdExhYmVsVGVtcGxhdGUgbGV0LWl0ZW09XCJpdGVtXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZpXCJcclxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIidmaS0nICsgaXRlbS50b0xvd2VyQ2FzZSgpXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZXRob2RfX25hbWVcIj57e2l0ZW0gfCBjb3VudHJ5X3RyYW5zbGF0ZTogbGFuZ319PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDwvYXBwLXRybS1zZWxlY3Q+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICB9XHJcbiAgICAgICAgQGlmIChmb3JtLmNvdW50cnkudmFsdWUpIHtcclxuICAgICAgICAgIDxhcHAtcHMtc2VsZWN0IFttZXRob2RzXT1cIm1ldGhvZHNMaXN0XCJcclxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibWV0aG9kXCJcclxuICAgICAgICAgICAgW3RhYkluZGV4XT1cInRhYkluZGV4XCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICBAaWYgKGZvcm0uY29uZmlnPy5kZXNjcmlwdGlvbikge1xyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb25zdHJ1Y3Rvcl9faGludCB0ZXh0LS13YXJuXCJcclxuICAgICAgICAgICAgICAgIGFwcC1wcy1zZWxlY3QtaGludFxyXG4gICAgICAgICAgICAgICAgI2hpbnRNZXRob2RcclxuICAgICAgICAgICAgICAgIEBpbnNlcnRSZW1vdmVcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIHt7ZGVzY3JpcHRpb24gfCB0cmFucyB9fVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIEBpZiAoZm9ybS5pc0NERUZhaWxlZCkge1xyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb25zdHJ1Y3Rvcl9faGludCBjZGUtZXJyb3JcIlxyXG4gICAgICAgICAgICAgICAgYXBwLXBzLXNlbGVjdC1oaW50XHJcbiAgICAgICAgICAgICAgICBAaW5zZXJ0UmVtb3ZlXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICB7e2Zvcm0uZ2V0RXJyb3IoJ2NkZV9lcnJvcicpIHwgdHJhbnMgfX1cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgPC9hcHAtcHMtc2VsZWN0PlxyXG4gICAgICAgIH1cclxuICAgICAgICBAaWYgKCFmb3JtLm1ldGhvZEluZm9Mb2FkaW5nKSB7XHJcbiAgICAgICAgICBAaWYgKGZvcm0ucGF5bWVudEZvcm1GaWVsZE5hbWVzLmxlbmd0aCkge1xyXG4gICAgICAgICAgICA8ZGl2IGZvcm1Hcm91cE5hbWU9XCJwYXltZW50XCJcclxuICAgICAgICAgICAgICAjcGF5bWVudFJlcXVpc2l0ZXNcclxuICAgICAgICAgICAgICBjbGFzcz1cImNvbnN0cnVjdG9yX19maWVsZHMgY29uc3RydWN0b3JfX2ZpZWxkcy0tcmV2ZXJzZVwiPlxyXG4gICAgICAgICAgICAgIEBpZiAoZm9ybS5hbW91bnREeW5hbWljKSB7XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY3VycmVuY3lUcGw7IGNvbnRleHQ6IHtsYWJlbDogSTE4Tl9LRVkuQ09OU1RSVUNUT1JfTEFCRUxfQ1VSUkVOQ1kgfCB0cmFucywgdGFiSW5kZXg6IDB9XCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIEBmb3IgKGZpZWxkIG9mIGZvcm0uZmllbGRzOyB0cmFjayBmaWVsZC5uYW1lOyBsZXQgaSA9ICRpbmRleCkge1xyXG4gICAgICAgICAgICAgICAgQGlmIChmaWVsZC50eXBlID09PSBDT05TVFJVQ1RPUl9GSUVMRF9UWVBFUy5JZnJhbWUpIHtcclxuICAgICAgICAgICAgICAgICAgPGFwcC1jb25zdHJ1Y3Rvci1maWVsZC1pZnJhbWVcclxuICAgICAgICAgICAgICAgICAgICBbaGlkZGVuXT1cImZvcm0uaXNDREVGYWlsZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgIChwYWlkKT1cImNhcmRQYWlkKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICNjYXJkSWZyYW1lXHJcbiAgICAgICAgICAgICAgICAgICAgKGVycm9yKT1cImlmcmFtZUVycm9yKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgIFt0YWJJbmRleF09XCJmb3JtLmZpZWxkcy5sZW5ndGggLSBpICsgdGFiSW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgPC9hcHAtY29uc3RydWN0b3ItZmllbGQtaWZyYW1lPlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgQGlmIChmaWVsZC50eXBlID09PSBDT05TVFJVQ1RPUl9GSUVMRF9UWVBFUy5TZWxlY3QpIHtcclxuICAgICAgICAgICAgICAgICAgPGFwcC1jb25zdHJ1Y3Rvci1maWVsZC1zZWxlY3RcclxuICAgICAgICAgICAgICAgICAgICBbY29uZmlnXT1cImZpZWxkXCJcclxuICAgICAgICAgICAgICAgICAgICBbaXRlbXNdPVwiZmllbGQ/Lm9wdGlvbnM/Lml0ZW1zXCJcclxuICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImZpZWxkLm5hbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFt0YWJJbmRleF09XCJmb3JtLmZpZWxkcy5sZW5ndGggLSBpICsgdGFiSW5kZXhcIlxyXG4gICAgICAgICAgICAgICAgICA+PC9hcHAtY29uc3RydWN0b3ItZmllbGQtc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgQGlmIChbQ09OU1RSVUNUT1JfRklFTERfVFlQRVMuVGV4dCwgQ09OU1RSVUNUT1JfRklFTERfVFlQRVMuTnVtYmVyLCBDT05TVFJVQ1RPUl9GSUVMRF9UWVBFUy5FbWFpbF0uaW5jbHVkZXMoZmllbGQudHlwZSkpIHtcclxuICAgICAgICAgICAgICAgICAgPGFwcC1jb25zdHJ1Y3Rvci1maWVsZC10ZXh0XHJcbiAgICAgICAgICAgICAgICAgICAgW2NvbmZpZ109XCJmaWVsZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJmaWVsZC5uYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAobWFza2VkVmFsdWVDaGFuZ2UpPVwiY2hhbmdlVGV4dEZpZWxkVmFsdWUoJGV2ZW50LCBmaWVsZClcIlxyXG4gICAgICAgICAgICAgICAgICBbdGFiSW5kZXhdPVwiZm9ybS5maWVsZHMubGVuZ3RoIC0gaSArIHRhYkluZGV4XCI+PC9hcHAtY29uc3RydWN0b3ItZmllbGQtdGV4dD5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIEBpZiAoZmllbGQudHlwZSA9PT0gQ09OU1RSVUNUT1JfRklFTERfVFlQRVMuQW1vdW50KSB7XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtY29uc3RydWN0b3ItZmllbGQtdGV4dFxyXG4gICAgICAgICAgICAgICAgICAgIFtjb25maWddPVwiZmllbGRcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiZmllbGQubmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3RhYkluZGV4XT1cImZvcm0uZmllbGRzLmxlbmd0aCAtIGkgKyB0YWJJbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIEBpZiAoaGFzRmVlSGludChmaWVsZCkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgIDxhcHAtbWV0aG9kLWFtb3VudC1oaW50IGFwcC1jLXRleHQtaGludFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNvbnN0cnVjdG9yX19oaW50XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2ZlZV09XCJmaWVsZC5vcHRpb25zLmZlZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtmaXhlZEZlZV09XCJmaWVsZC5vcHRpb25zLmZpeGVkRmVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW21heF09XCJmaWVsZC5vcHRpb25zLm1heFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFttaW5dPVwiZmllbGQub3B0aW9ucy5taW5cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbY3VycmVuY3ldPVwiZmllbGQub3B0aW9ucy5jdXJyZW5jeVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICA+PC9hcHAtbWV0aG9kLWFtb3VudC1oaW50PlxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGFwcC1jLXRleHQtc3VmZml4XHJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNvbnN0cnVjdG9yX19jdXJyZW5jeVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuY29uc3RydWN0b3JfX2N1cnJlbmN5LS10cmFuc3BhcmVudF09XCJmb3JtLmlzQW1vdW50RWRpdGFibGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImN1cnJlbmN5VHBsOyBjb250ZXh0OiB7dGFiSW5kZXg6IGZvcm0uZmllbGRzLmxlbmd0aCAtIGkgKyB0YWJJbmRleH1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9hcHAtY29uc3RydWN0b3ItZmllbGQtdGV4dD5cclxuICAgICAgICAgICAgICAgICAgQGlmIChoYXNDdXJyZW5jeU1ldGhvZFNlbGVjdG9yKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgPGFwcC10cm0tc2VsZWN0XHJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNvbnN0cnVjdG9yLWZpZWxkXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJJMThOX0tFWS5DT05TVFJVQ1RPUl9MQUJFTF9DVVJSRU5DWSB8IHRyYW5zXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJmb3JtLmN1cnJlbmN5XCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtzZWFyY2hhYmxlXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtkYXRhXT1cImN1cnJlbmNpZXNMaXN0XCJcclxuICAgICAgICAgICAgICAgICAgICAgIFt0YWJJbmRleF09XCJmb3JtLmZpZWxkcy5sZW5ndGggLSBpICsgdGFiSW5kZXhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIHRybVNlbGVjdExhYmVsVGVtcGxhdGUgbGV0LWl0ZW09XCJpdGVtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidHJtLWljb25cIiBbbmdDbGFzc109XCIndHJtLWN1cnItJyArIGl0ZW0udG9Mb3dlckNhc2UoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCJpdGVtXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7e2l0ZW19fVxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICA8L2FwcC10cm0tc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBAaWYgKGZpZWxkLnR5cGUgPT09IENPTlNUUlVDVE9SX0ZJRUxEX1RZUEVTLkRhdGUpIHtcclxuICAgICAgICAgICAgICAgICAgPGFwcC1jb25zdHJ1Y3Rvci1maWVsZC1kYXRlXHJcbiAgICAgICAgICAgICAgICAgICAgW2NvbmZpZ109XCJmaWVsZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJmaWVsZC5uYW1lXCJcclxuICAgICAgICAgICAgICAgICAgW3RhYkluZGV4XT1cImZvcm0uZmllbGRzLmxlbmd0aCAtIGkgKyB0YWJJbmRleFwiPjwvYXBwLWNvbnN0cnVjdG9yLWZpZWxkLWRhdGU+XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjY3VycmVuY3lUcGwgbGV0LWxhYmVsPVwibGFiZWxcIiBsZXQtdGFiSW5kZXg9XCJ0YWJJbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgPGFwcC10cm0tc2VsZWN0XHJcbiAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJsYWJlbFwiXHJcbiAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJmb3JtLnVzZXJDdXJyZW5jeVwiXHJcbiAgICAgICAgICAgICAgICAgIFtzZWFyY2hhYmxlXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgW2RhdGFdPVwidXNlckN1cnJlbmNpZXNMaXN0XCJcclxuICAgICAgICAgICAgICAgICAgW3RhYkluZGV4XT1cInRhYkluZGV4XCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgdHJtU2VsZWN0TGFiZWxUZW1wbGF0ZSBsZXQtaXRlbT1cIml0ZW1cIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRybS1pY29uXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIid0cm0tY3Vyci0nICsgaXRlbS50b0xvd2VyQ2FzZSgpXCJcclxuICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiaXRlbVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICB7e2l0ZW19fVxyXG4gICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgPC9hcHAtdHJtLXNlbGVjdD5cclxuICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIH1cclxuICAgICAgICB9IEBlbHNlIHtcclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0cm0tc2tlbGV0b24tZmllbGRzXCI+XHJcbiAgICAgICAgICAgIEBmb3IgKGkgb2Ygc2tlbGV0b25MZW5ndGg7IHRyYWNrICRpbmRleCkge1xyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0cm0tc2tlbGV0b24tZmllbGRcIj5cclxuICAgICAgICAgICAgICAgIDxnbS1za2VsZXRvbiBbY291bnRdPVwiMVwiIFtzaGFwZV09XCIncmVjdC1tZCdcIiBbc2l6ZV09XCIxOFwiPjwvZ20tc2tlbGV0b24+XHJcbiAgICAgICAgICAgICAgICA8Z20tc2tlbGV0b24gW2NvdW50XT1cIjFcIiBbc2l6ZV09XCI1MFwiPjwvZ20tc2tlbGV0b24+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIH1cclxuICAgICAgICBAaWYgKGVycm9yICYmICFmb3JtLm1ldGhvZEluZm9Mb2FkaW5nKSB7XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidHJtLWVycm9yXCJcclxuICAgICAgICAgICAgQGluc2VydFJlbW92ZVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgIHt7IGVycm9yIHwgdHJhbnMgfX1cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIH1cclxuICAgICAgPC9kaXY+XHJcbiAgICB9XHJcbiAgICBAaWYgKHN0ZXAgPT09IFRFUk1JTkFMX1NURVAuQ29uZmlybWF0aW9uKSB7XHJcbiAgICAgIDxhcHAtY29uc3RydWN0b3ItcHJlcGFyYXRpb25cclxuICAgICAgICBbY3VycmVuY3ldPVwicmVzcG9uc2U/LmN1cnJlbmN5XCJcclxuICAgICAgICBbbWV0aG9kTmFtZV09XCJmb3JtLmdldFR5cGVOYW1lQnlJZChyZXNwb25zZS50eXBlSWQpXCJcclxuICAgICAgICBbd2FsbGV0XT1cInJlc3BvbnNlLndhbGxldFwiXHJcbiAgICAgICAgW21hc2tlZFdhbGxldF09XCJtYXNrZWRXYWxsZXRcIlxyXG4gICAgICAgIFthbW91bnRdPVwicmVzcG9uc2UuYW1vdW50XCJcclxuICAgICAgICBbdG90YWxdPVwicmVzcG9uc2UudG90YWxcIlxyXG4gICAgICAgIFtjb25maXJtYXRpb25UZXh0XT1cImZvcm0uY29uZmlnPy5jb25maXJtYXRpb25cIlxyXG4gICAgICAgID5cclxuICAgICAgICBAaWYgKGVycm9yICYmICFmb3JtLnBheW1lbnQucGVuZGluZykge1xyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRybS1lcnJvclwiXHJcbiAgICAgICAgICAgIGFwcC1jb25zdHJ1Y3Rvci1wcmVwYXJhdGlvbi1lcnJvclxyXG4gICAgICAgICAgICBAaW5zZXJ0UmVtb3ZlXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAge3sgZXJyb3IgfCB0cmFucyB9fVxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgfVxyXG4gICAgICA8L2FwcC1jb25zdHJ1Y3Rvci1wcmVwYXJhdGlvbj5cclxuICAgIH1cclxuICAgIDxkaXYgY2xhc3M9XCJjb25zdHJ1Y3Rvcl9fYWN0aW9uc1wiPlxyXG4gICAgICA8YnV0dG9uIGNsYXNzPVwidHJtLWJ1dHRvbiB0cm0tYnV0dG9uLS1wcmltYXJ5IGNvbnN0cnVjdG9yX19hY3Rpb25zLWNvbnRpbnVlXCJcclxuICAgICAgICB0eXBlPVwic3VibWl0XCJcclxuICAgICAgICBbdGFiaW5kZXhdPVwiZm9ybS5maWVsZHMubGVuZ3RoICsgdGFiSW5kZXhcIj5cclxuICAgICAgICB7e0kxOE5fS0VZLkNPTlNUUlVDVE9SX0xBQkVMX0NPTlRJTlVFIHwgdHJhbnN9fVxyXG4gICAgICAgIEBpZiAobG9hZGluZykge1xyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0cm0tc3Bpbm5lciB0cm0tc3Bpbm5lci13aGl0ZVwiPjwvc3Bhbj5cclxuICAgICAgICB9XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8YnV0dG9uIGNsYXNzPVwidHJtLWJ1dHRvbiB0cm0tYnV0dG9uLS1zZWNvbmRhcnkgY29uc3RydWN0b3JfX2FjdGlvbnMtYmFja1wiXHJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgW3RhYmluZGV4XT1cImZvcm0uZmllbGRzLmxlbmd0aCArIHRhYkluZGV4XCJcclxuICAgICAgKGNsaWNrKT1cImJhY2suZW1pdCgpXCI+IHt7IGJhY2tCdG5MYWJlbCB8IHRyYW5zfX08L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gIH0gQGVsc2Uge1xyXG4gICAgPGRpdiBjbGFzcz1cInRybS1za2VsZXRvbi1ncm91cFwiPlxyXG4gICAgICA8Z20tc2tlbGV0b24gW2NvdW50XT1cIjRcIiBbZ2FwXT1cIjIwXCIgW3NpemVdPVwiODBcIj48L2dtLXNrZWxldG9uPlxyXG4gICAgICA8Z20tc2tlbGV0b24gW2NvdW50XT1cIjJcIiBbZ2FwXT1cIjEwXCIgW3NpemVdPVwiNDhcIj48L2dtLXNrZWxldG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgfVxyXG48L2Zvcm0+XHJcbiJdfQ==
|
|
336
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RydWN0b3ItZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90ZXJtaW5hbC10ZW1wbGF0ZS9zcmMvbGliL2FwcC9wYWdlcy9jb21wb25lbnRzL2NvbnN0cnVjdG9yLWZvcm0vY29uc3RydWN0b3ItZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90ZXJtaW5hbC10ZW1wbGF0ZS9zcmMvbGliL2FwcC9wYWdlcy9jb21wb25lbnRzL2NvbnN0cnVjdG9yLWZvcm0vY29uc3RydWN0b3ItZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBRVQsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBR0wsTUFBTSxFQUVOLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQWdCLG9CQUFvQixFQUFFLFlBQVksRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUM1RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQVE3RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM3RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDdkUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENB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b0IsRUFBRSxrQkFBa0IsRUFBRSxtQkFBbUIsQ0FBQzt3REFhamMsSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUlHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDSSxJQUFJO3NCQUFiLE1BQU07Z0JBQ0csT0FBTztzQkFBaEIsTUFBTTtnQkFDRyxPQUFPO3NCQUFoQixNQUFNO2dCQUNHLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFDRSxRQUFRO3NCQUFoQixLQUFLO2dCQUUyQyxVQUFVO3NCQUExRCxTQUFTO3VCQUFDLG1CQUFtQixFQUFFLEVBQUMsTUFBTSxFQUFFLEtBQUssRUFBQztnQkFDTCxVQUFVO3NCQUFuRCxTQUFTO3VCQUFDLFlBQVksRUFBRSxFQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUM7Z0JBQ0UsVUFBVTtzQkFBbkQsU0FBUzt1QkFBQyxZQUFZLEVBQUUsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBFbGVtZW50UmVmLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBpbmplY3QsXHJcbiAgSW5wdXQsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIE9uRGVzdHJveSxcclxuICBPdXRwdXQsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBWaWV3Q2hpbGRcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUGF5bWVudEZpZWxkLCBQYXltZW50RmllbGRUeXBlRW51bSwgVGVybWluYWxTdGVwIH0gZnJvbSAnLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBDb25zdHJ1Y3RvckZvcm1TZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9jb25zdHJ1Y3Rvci1mb3JtLnNlcnZpY2UnO1xyXG5pbXBvcnQge1xyXG4gIE1ldGhvZFR5cGUsXHJcbiAgTWV0aG9kVHlwZVR5cGUsXHJcbiAgVGVybWluYWxQYXltZW50Q29uZmlybVJlc3BvbnNlLFxyXG4gIFRlcm1pbmFsUGF5bWVudFByZXBhcmVSZXNwb25zZSxcclxuICBUZXJtaW5hbFBheW1lbnRQcmVwYXJlUmVxdWVzdFxyXG59IGZyb20gJy4uLy4uLy4uLy4uL2NvZGVnZW4vbW9kZWwvbW9kZWxzJztcclxuaW1wb3J0IHsgaW5zZXJ0UmVtb3ZlVHJpZ2dlciB9IGZyb20gJy4vLi4vLi4vLi4vaGVscGVycy9pbnNlcnRSZW1vdmVUcmlnZ2VyJztcclxuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IHsgQ291bnRyaWVzU29ydFBpcGUgfSBmcm9tICcuLi8uLi8uLi9waXBlcy9jb3VudHJpZXMtc29ydC5waXBlJztcclxuaW1wb3J0IHsgTmdTY3JvbGxiYXIgfSBmcm9tICduZ3gtc2Nyb2xsYmFyJztcclxuaW1wb3J0IHsgSTE4Tl9LRVkgfSBmcm9tICcuLy4uLy4uLy4uL2kxOG4nO1xyXG5pbXBvcnQge1xyXG4gIENvbnN0cnVjdG9yRmllbGRJZnJhbWVDb21wb25lbnRcclxufSBmcm9tIFwiLi9jb21wb25lbnRzL2NvbnN0cnVjdG9yLWZpZWxkLWlmcmFtZS9jb25zdHJ1Y3Rvci1maWVsZC1pZnJhbWUuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IENvdW50cnlUcmFuc2xhdGVQaXBlIH0gZnJvbSAnLi4vLi4vLi4vcGlwZXMvY291bnRyeS10cmFuc2xhdGUucGlwZSc7XHJcbmltcG9ydCB7IFRFUk1JTkFMX1ZFUlNJT05fU0VSVklDRV9UT0tFTiB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbnN0JztcclxuaW1wb3J0IHsgVmVyc2lvblNlcnZpY2VJbnRlcmZhY2UgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTmdDbGFzcywgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFRybVNlbGVjdENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9jb21wb25lbnRzL3RybS1zZWxlY3QvdHJtLXNlbGVjdC5jb21wb25lbnQnO1xyXG5pbXBvcnQge1xyXG4gIFRybVNlbGVjdExhYmVsVGVtcGxhdGVEaXJlY3RpdmVcclxufSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvY29tcG9uZW50cy90cm0tc2VsZWN0L3RybS1zZWxlY3QtbGFiZWwtdGVtcGxhdGUuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgUHNTZWxlY3RDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHMtc2VsZWN0L3BzLXNlbGVjdC5jb21wb25lbnQnO1xyXG5pbXBvcnQge1xyXG4gIENvbnN0cnVjdG9yRmllbGRTZWxlY3RDb21wb25lbnRcclxufSBmcm9tICcuL2NvbXBvbmVudHMvY29uc3RydWN0b3ItZmllbGQtc2VsZWN0L2NvbnN0cnVjdG9yLWZpZWxkLXNlbGVjdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb25zdHJ1Y3RvckZpZWxkVGV4dENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jb25zdHJ1Y3Rvci1maWVsZC10ZXh0L2NvbnN0cnVjdG9yLWZpZWxkLXRleHQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWV0aG9kQW1vdW50SGludENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9tZXRob2QtYW1vdW50LWhpbnQvbWV0aG9kLWFtb3VudC1oaW50LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvbnN0cnVjdG9yRmllbGREYXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NvbnN0cnVjdG9yLWZpZWxkLWRhdGUvY29uc3RydWN0b3ItZmllbGQtZGF0ZS5jb21wb25lbnQnO1xyXG5pbXBvcnQge1xyXG4gIENvbnN0cnVjdG9yUHJlcGFyYXRpb25Db21wb25lbnRcclxufSBmcm9tICcuL2NvbXBvbmVudHMvY29uc3RydWN0b3ItcHJlcGFyYXRpb24vY29uc3RydWN0b3ItcHJlcGFyYXRpb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGFiSW5kZXhGb2N1c0RpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvdGFiLWluZGV4LWZvY3VzLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZUJ5S2V5UGlwZSB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9waXBlcy90cmFuc2xhdGUtYnkta2V5LnBpcGUnO1xyXG5pbXBvcnQgeyBHbVNrZWxldG9uQ29tcG9uZW50IH0gZnJvbSAnQGdtbW9uZXkvZ20tdWkta2l0JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWNvbnN0cnVjdG9yLWZvcm0nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb25zdHJ1Y3Rvci1mb3JtLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jb25zdHJ1Y3Rvci1mb3JtLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgYW5pbWF0aW9uczogW2luc2VydFJlbW92ZVRyaWdnZXJdLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAgQ29uc3RydWN0b3JGb3JtU2VydmljZSxcclxuICAgIENvdW50cnlUcmFuc2xhdGVQaXBlLCBDb3VudHJpZXNTb3J0UGlwZVxyXG4gIF0sXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbQ291bnRyeVRyYW5zbGF0ZVBpcGUsIENvdW50cmllc1NvcnRQaXBlLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgVHJtU2VsZWN0Q29tcG9uZW50LCBUcm1TZWxlY3RMYWJlbFRlbXBsYXRlRGlyZWN0aXZlLCBOZ0NsYXNzLCBQc1NlbGVjdENvbXBvbmVudCwgTmdUZW1wbGF0ZU91dGxldCwgQ29uc3RydWN0b3JGaWVsZElmcmFtZUNvbXBvbmVudCwgQ29uc3RydWN0b3JGaWVsZFNlbGVjdENvbXBvbmVudCwgQ29uc3RydWN0b3JGaWVsZFRleHRDb21wb25lbnQsIE1ldGhvZEFtb3VudEhpbnRDb21wb25lbnQsIENvbnN0cnVjdG9yRmllbGREYXRlQ29tcG9uZW50LCBDb25zdHJ1Y3RvclByZXBhcmF0aW9uQ29tcG9uZW50LCBUYWJJbmRleEZvY3VzRGlyZWN0aXZlLCBDb3VudHJ5VHJhbnNsYXRlUGlwZSwgVHJhbnNsYXRlQnlLZXlQaXBlLCBHbVNrZWxldG9uQ29tcG9uZW50XVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29uc3RydWN0b3JGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG4gIHByaXZhdGUgY2QgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gIGZvcm0gPSBpbmplY3QoQ29uc3RydWN0b3JGb3JtU2VydmljZSk7XHJcbiAgcHJpdmF0ZSB0cmFuc2xhdGVTcnYgPSBpbmplY3QoVHJhbnNsYXRlU2VydmljZSk7XHJcbiAgcHJpdmF0ZSBjb3VudHJpZXNTb3J0UGlwZSA9IGluamVjdChDb3VudHJpZXNTb3J0UGlwZSk7XHJcbiAgcHJpdmF0ZSBjb3VudHJ5VHJhbnNsYXRlUGlwZSA9IGluamVjdChDb3VudHJ5VHJhbnNsYXRlUGlwZSk7XHJcbiAgcHJpdmF0ZSBuZ1Njcm9sbEJhciA9IGluamVjdChOZ1Njcm9sbGJhcik7XHJcbiAgcHJpdmF0ZSB2ZXJzaW9uU3J2ID0gaW5qZWN0PFZlcnNpb25TZXJ2aWNlSW50ZXJmYWNlPihURVJNSU5BTF9WRVJTSU9OX1NFUlZJQ0VfVE9LRU4pO1xyXG5cclxuICBwcml2YXRlIHVuU3Vic2NyaWJlciA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgVEVSTUlOQUxfU1RFUCA9IFRlcm1pbmFsU3RlcDtcclxuICBASW5wdXQoKSBzdGVwOiBUZXJtaW5hbFN0ZXA7XHJcbiAgQElucHV0KCkgZXJyb3I/OiBzdHJpbmc7XHJcbiAgQElucHV0KCkgcmVzcG9uc2U6IFRlcm1pbmFsUGF5bWVudFByZXBhcmVSZXNwb25zZSAmIFRlcm1pbmFsUGF5bWVudENvbmZpcm1SZXNwb25zZSAmIHtcclxuICAgIHR5cGVJZD86IG51bWJlcjtcclxuICB9O1xyXG4gIENPTlNUUlVDVE9SX0ZJRUxEX1RZUEVTID0gUGF5bWVudEZpZWxkVHlwZUVudW07XHJcbiAgQElucHV0KCkgY3VycmVuY3k6IHN0cmluZztcclxuICBASW5wdXQoKSB1c2VyQ3VycmVuY3k6IHN0cmluZ1tdO1xyXG4gIEBJbnB1dCgpIGxvYWRpbmcgPSBmYWxzZTtcclxuICBASW5wdXQoKSB0eXBlczogTWV0aG9kVHlwZVtdID0gW107XHJcbiAgQElucHV0KCkgY2FuUmV0dXJuVG9Qcm9qZWN0ID0gdHJ1ZTtcclxuICBAT3V0cHV0KCkgYmFjazogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG4gIEBPdXRwdXQoKSBwcmVwYXJlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBPdXRwdXQoKSBjb25maXJtOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBPdXRwdXQoKSBvblBheW1lbnRDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcbiAgQElucHV0KCkgdGFiSW5kZXg6IG51bWJlcjtcclxuICBjb3VudHJ5U2VhcmNoU3RyaW5nOiBzdHJpbmc7XHJcbiAgQFZpZXdDaGlsZCgncGF5bWVudFJlcXVpc2l0ZXMnLCB7c3RhdGljOiBmYWxzZX0pIHJlcXVpc2l0ZXM6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgnaGludE1ldGhvZCcsIHtzdGF0aWM6IGZhbHNlfSkgaGludE1ldGhvZDogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKCdjYXJkSWZyYW1lJywge3N0YXRpYzogZmFsc2V9KSBjYXJkSWZyYW1lOiBDb25zdHJ1Y3RvckZpZWxkSWZyYW1lQ29tcG9uZW50O1xyXG4gIG1hc2tlZFdhbGxldDogc3RyaW5nO1xyXG5cclxuICBJMThOX0tFWSA9IEkxOE5fS0VZO1xyXG5cclxuICBnZXQgY291bnRyaWVzTGlzdCgpOiBzdHJpbmdbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5jb3VudHJpZXNTb3J0UGlwZVxyXG4gICAgICAudHJhbnNmb3JtKFxyXG4gICAgICAgIHRoaXMudHlwZXNcclxuICAgICAgICAgIC5tYXAodHlwZSA9PiB0eXBlLmNvdW50cnlJU09Db2RlKVxyXG4gICAgICAgICAgLmZpbHRlcigodmFsdWUsIGluZGV4LCBzZWxmKSA9PiBzZWxmLmluZGV4T2YodmFsdWUpID09PSBpbmRleClcclxuICAgICAgKVxyXG4gICAgICAuZmlsdGVyKChtOiBzdHJpbmcpID0+IHtcclxuICAgICAgICBpZiAoIXRoaXMuY291bnRyeVNlYXJjaFN0cmluZykge1xyXG4gICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGNvbnN0IHRpdGxlOiBzdHJpbmcgPSB0aGlzLmNvdW50cnlUcmFuc2xhdGVQaXBlLnRyYW5zZm9ybShtKTtcclxuICAgICAgICAgIHJldHVybiB0aXRsZS50b0xvd2VyQ2FzZSgpXHJcbiAgICAgICAgICAgIC5zcGxpdCgnICcpLnNvbWUoXHJcbiAgICAgICAgICAgICAgdHMgPT4gdGhpcy5jb3VudHJ5U2VhcmNoU3RyaW5nLnRvTG93ZXJDYXNlKCkuc3BsaXQoJyAnKS5zb21lKHMgPT4gdHMuaW5jbHVkZXMocykpXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldCBtZXRob2RzTGlzdCgpOiBNZXRob2RUeXBlVHlwZVtdIHtcclxuICAgIHJldHVybiB0aGlzLnR5cGVzXHJcbiAgICAgIC5maWx0ZXIodHlwZSA9PiB0eXBlLmNvdW50cnlJU09Db2RlID09PSB0aGlzLmZvcm0uY291bnRyeS52YWx1ZSlcclxuICAgICAgLy8gZGlzdGluY3RcclxuICAgICAgLmZpbHRlcigodHlwZSwgaW5kZXgsIHNlbGYpID0+IHNlbGYubWFwKG0gPT4gbS50eXBlLmlkKS5pbmRleE9mKHR5cGUudHlwZS5pZCkgPT09IGluZGV4KVxyXG4gICAgICAvL3NvcnRpbmcgYnkgdGhlIHByaW9yaXR5XHJcbiAgICAgIC5zb3J0KChtMSwgbTIpID0+IG0xLnByaW9yaXR5ID4gbTIucHJpb3JpdHkgPyAxIDogKChtMS5wcmlvcml0eSA9PT0gbTIucHJpb3JpdHkpID8gMCA6IC0xKSlcclxuICAgICAgLm1hcCh0eXBlID0+IHR5cGUudHlwZSk7XHJcbiAgfVxyXG5cclxuICBnZXQgY3VycmVuY2llc0xpc3QoKSB7XHJcbiAgICByZXR1cm4gdGhpcy50eXBlc1xyXG4gICAgICAuZmlsdGVyKHR5cGUgPT4gdHlwZS5jb3VudHJ5SVNPQ29kZSA9PT0gdGhpcy5mb3JtLmNvdW50cnkudmFsdWUgJiYgdHlwZS50eXBlLmlkID09PSB0aGlzLmZvcm0ubWV0aG9kLnZhbHVlKVxyXG4gICAgICAubWFwKHR5cGUgPT4gdHlwZS5jdXJyZW5jeSlcclxuICB9XHJcblxyXG4gIGdldCB1c2VyQ3VycmVuY2llc0xpc3QoKSB7XHJcbiAgICBjb25zdCBmaWx0ZXJlZFR5cGVzID0gdGhpcy5jdXJyZW5jaWVzTGlzdDtcclxuXHJcbiAgICBpZiAoIXRoaXMudXNlckN1cnJlbmN5KSB7XHJcbiAgICAgIHJldHVybiBmaWx0ZXJlZFR5cGVzO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLnVzZXJDdXJyZW5jeVxyXG4gICAgICAuZmlsdGVyKHVzZXJDdXJyZW5jeSA9PiBmaWx0ZXJlZFR5cGVzLmluY2x1ZGVzKHVzZXJDdXJyZW5jeSkpXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldEN1cnJlbmN5VmFsdWUoKSB7XHJcbiAgICBsZXQgZGVmYXVsdEN1cnJlbmN5ID0gdGhpcy5mb3JtLmRlZmF1bHRDdXJyZW5jeTtcclxuXHJcbiAgICBsZXQgY3VycmVuY2llcyA9IHRoaXMuY3VycmVuY2llc0xpc3Q7XHJcbiAgICBsZXQgY3VycmVuY3kgPSBjdXJyZW5jaWVzWzBdO1xyXG4gICAgaWYgKGRlZmF1bHRDdXJyZW5jeSAmJiB0aGlzLmN1cnJlbmNpZXNMaXN0LmluY2x1ZGVzKGRlZmF1bHRDdXJyZW5jeSkpIHtcclxuICAgICAgY3VycmVuY3kgPSBkZWZhdWx0Q3VycmVuY3k7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuY3VycmVuY3kgJiYgdGhpcy5jdXJyZW5jaWVzTGlzdC5pbmNsdWRlcyh0aGlzLmN1cnJlbmN5KSkge1xyXG4gICAgICBjdXJyZW5jeSA9IHRoaXMuY3VycmVuY3k7XHJcbiAgICB9XHJcbiAgICB0aGlzLmZvcm0uY3VycmVuY3kuc2V0VmFsdWUoY3VycmVuY3kpO1xyXG5cclxuICAgIGN1cnJlbmNpZXMgPSB0aGlzLnVzZXJDdXJyZW5jaWVzTGlzdDtcclxuICAgIGN1cnJlbmN5ID0gY3VycmVuY2llc1swXTtcclxuICAgIGlmIChkZWZhdWx0Q3VycmVuY3kgJiYgdGhpcy51c2VyQ3VycmVuY2llc0xpc3QuaW5jbHVkZXMoZGVmYXVsdEN1cnJlbmN5KSkge1xyXG4gICAgICBjdXJyZW5jeSA9IGRlZmF1bHRDdXJyZW5jeTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5jdXJyZW5jeSAmJiB0aGlzLnVzZXJDdXJyZW5jaWVzTGlzdC5pbmNsdWRlcyh0aGlzLmN1cnJlbmN5KSkge1xyXG4gICAgICBjdXJyZW5jeSA9IHRoaXMuY3VycmVuY3k7XHJcbiAgICB9XHJcbiAgICB0aGlzLmZvcm0udXNlckN1cnJlbmN5LnNldFZhbHVlKGN1cnJlbmN5LCB7ZW1pdEV2ZW50OiBmYWxzZX0pO1xyXG4gICAgaWYgKGN1cnJlbmNpZXMubGVuZ3RoID09PSAxICYmIGN1cnJlbmN5ICYmIHRoaXMuZm9ybS5tZXRob2QuZGlzYWJsZWQpIHtcclxuICAgICAgdGhpcy5mb3JtLnVzZXJDdXJyZW5jeS5kaXNhYmxlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBoYXNGZWVIaW50KGZpZWxkOiBQYXltZW50RmllbGQpIHtcclxuICAgIHJldHVybiBmaWVsZC50eXBlID09PSB0aGlzLkNPTlNUUlVDVE9SX0ZJRUxEX1RZUEVTLkFtb3VudCAmJiAoZmllbGQub3B0aW9ucy5mZWUgfHwgZmllbGQub3B0aW9ucy5maXhlZEZlZSB8fCBmaWVsZC5vcHRpb25zLm1pbiB8fCBmaWVsZC5vcHRpb25zLm1heCk7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICB9XHJcblxyXG4gIGdldCBoYXNDdXJyZW5jeU1ldGhvZFNlbGVjdG9yKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMudmVyc2lvblNydi5oYXNDdXJyZW5jeU1ldGhvZFNlbGVjdG9yID09PSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGxhbmcoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZVNydi5jdXJyZW50TGFuZztcclxuICB9XHJcblxyXG4gIGdldCBza2VsZXRvbkxlbmd0aCgpIHtcclxuICAgIHJldHVybiBuZXcgQXJyYXkodGhpcy5mb3JtLmZpZWxkcz8ubGVuZ3RoIHx8IDMpLmZpbGwoMCk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICBpZiAoY2hhbmdlcy50eXBlcyAmJiB0aGlzLnR5cGVzPy5sZW5ndGggfHwgY2hhbmdlcy5jdXJyZW5jeSAmJiB0aGlzLmN1cnJlbmN5KSB7XHJcbiAgICAgIC8vIEdldCBjb25maWd1cmF0aW9uIGZpZWxkc1xyXG4gICAgICBjb25zdCBjb3VudHJpZXMgPSB0aGlzLmNvdW50cmllc0xpc3Q7XHJcbiAgICAgIGNvbnN0IGRlZmF1bHRDb3VudHJ5ID0gdGhpcy5mb3JtLmRlZmF1bHRDb3VudHJ5O1xyXG4gICAgICB0aGlzLmZvcm0uY291bnRyeS5zZXRWYWx1ZShjb3VudHJpZXMuaW5jbHVkZXMoZGVmYXVsdENvdW50cnkpID8gZGVmYXVsdENvdW50cnkgOiBjb3VudHJpZXNbMF0pO1xyXG4gICAgICBpZiAoY291bnRyaWVzLmxlbmd0aCA9PT0gMSAmJiB0aGlzLmZvcm0uY291bnRyeS52YWx1ZSkge1xyXG4gICAgICAgIHRoaXMuZm9ybS5jb3VudHJ5LmRpc2FibGUoKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgY29uc3QgbWV0aG9kcyA9IHRoaXMubWV0aG9kc0xpc3Q7XHJcbiAgICAgIGNvbnN0IGRlZmF1bHRNZXRob2ROYW1lID0gdGhpcy5mb3JtLmRlZmF1bHRNZXRob2ROYW1lO1xyXG4gICAgICBjb25zdCBkZWZhdWx0TWV0aG9kID0gbWV0aG9kcy5maW5kKG0gPT4gbS5uYW1lID09PSBkZWZhdWx0TWV0aG9kTmFtZSk/LmlkO1xyXG4gICAgICB0aGlzLmZvcm0ubWV0aG9kLnNldFZhbHVlKGRlZmF1bHRNZXRob2QgfHwgbWV0aG9kc1swXT8uaWQpO1xyXG5cclxuICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIGlmIChtZXRob2RzLmxlbmd0aCA9PT0gMSAmJiB0aGlzLmZvcm0uY291bnRyeS5kaXNhYmxlZCkge1xyXG4gICAgICAgIHRoaXMuZm9ybS5tZXRob2QuZGlzYWJsZSgpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICB0aGlzLnNldEN1cnJlbmN5VmFsdWUoKTtcclxuICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIHRoaXMuZmV0Y2hGb3JtKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLmZvcm1cclxuICAgICAgLmNvdW50cnlcclxuICAgICAgLnZhbHVlQ2hhbmdlc1xyXG4gICAgICAucGlwZShcclxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgoYSxiKSA9PiAgYSA9PT0gYiksXHJcbiAgICAgICAgdGFrZVVudGlsKHRoaXMudW5TdWJzY3JpYmVyKVxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIHRoaXMuZm9ybS5zYXZlRGVmYXVsdENvdW50cnkoKTtcclxuICAgICAgICB0aGlzLmZvcm0ubWV0aG9kLnNldFZhbHVlKHRoaXMubWV0aG9kc0xpc3RbMF0uaWQsIHtlbWl0RXZlbnQ6IGZhbHNlfSk7XHJcblxyXG4gICAgICAgIGNvbnN0IG1ldGhvZHMgPSB0aGlzLm1ldGhvZHNMaXN0O1xyXG4gICAgICAgIGNvbnN0IGRlZmF1bHRNZXRob2ROYW1lID0gdGhpcy5mb3JtLmRlZmF1bHRNZXRob2ROYW1lO1xyXG4gICAgICAgIGNvbnN0IGRlZmF1bHRNZXRob2QgPSBtZXRob2RzLmZpbmQobSA9PiBtLm5hbWUgPT09IGRlZmF1bHRNZXRob2ROYW1lKT8uaWQ7XHJcbiAgICAgICAgdGhpcy5mb3JtLm1ldGhvZC5zZXRWYWx1ZShkZWZhdWx0TWV0aG9kIHx8IG1ldGhvZHNbMF0uaWQsIHtlbWl0RXZlbnQ6IGZhbHNlfSk7XHJcbiAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcblxyXG4gICAgICAgIHRoaXMuc2V0Q3VycmVuY3lWYWx1ZSgpO1xyXG4gICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG5cclxuICAgICAgICB0aGlzLmZldGNoRm9ybSgpO1xyXG4gICAgICB9KTtcclxuICAgIHRoaXMuZm9ybVxyXG4gICAgICAubWV0aG9kXHJcbiAgICAgIC52YWx1ZUNoYW5nZXNcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKGEsYikgPT4gIGEgPT09IGIpLFxyXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLnVuU3Vic2NyaWJlcilcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB0aGlzLmZvcm0ubWV0aG9kLmNsZWFyVmFsaWRhdG9ycygpO1xyXG4gICAgICAgIHRoaXMuZm9ybS5zYXZlRGVmYXVsdE1ldGhvZE5hbWUoKTtcclxuICAgICAgICB0aGlzLnNldEN1cnJlbmN5VmFsdWUoKTtcclxuICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICB0aGlzLmZldGNoRm9ybSgpO1xyXG4gICAgICB9KVxyXG4gICAgdGhpcy5mb3JtXHJcbiAgICAgIC5jdXJyZW5jeVxyXG4gICAgICAudmFsdWVDaGFuZ2VzXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKChhLGIpID0+ICBhID09PSBiKSxcclxuICAgICAgICB0YWtlVW50aWwodGhpcy51blN1YnNjcmliZXIpXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5mZXRjaEZvcm0oKTtcclxuICAgICAgICB0aGlzLmZvcm0uc2F2ZURlZmF1bHRDdXJyZW5jeSgpO1xyXG4gICAgICB9KTtcclxuICAgIHRoaXMuZm9ybS5wYXltZW50LnZhbHVlQ2hhbmdlc1xyXG4gICAgICAucGlwZShcclxuICAgICAgICBkZWJvdW5jZVRpbWUoMzAwKSxcclxuICAgICAgICB0YWtlVW50aWwodGhpcy51blN1YnNjcmliZXIpXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLm9uUGF5bWVudENoYW5nZWQuZW1pdCgpKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZmV0Y2hGb3JtKCkge1xyXG4gICAgdGhpcy5mb3JtLmNhbmNlbFJlcXVlc3RzKCk7XHJcbiAgICBpZiAodGhpcy5zdGVwICE9PSB0aGlzLlRFUk1JTkFMX1NURVAuUHJlcGFyZSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLmZvcm0ucmVtb3ZlUGF5bWVudEZvcm1Db250cm9scygpO1xyXG4gICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB0aGlzLmZvcm1cclxuICAgICAgLmluaXQoKVxyXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICBpZiAoIXRoaXMuZm9ybS5oYXNXaGF0VG9GaWxsKCkpIHtcclxuICAgICAgICAgIHRoaXMuc2VuZCgpO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICB0aGlzLnNjcm9sbFRvUmVxdWlzaXRzKCk7XHJcbiAgICAgICAgdGhpcy5mb3JtLm1hc2tlZFdhbGxldCA9ICcnO1xyXG4gICAgICB9LCAoZXJyKSA9PiB7XHJcbiAgICAgICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNjcm9sbFRvUmVxdWlzaXRzKCkge1xyXG4gICAgaWYgKHRoaXMucmVxdWlzaXRlcyB8fCB0aGlzLmhpbnRNZXRob2QpIHtcclxuICAgICAgdGhpcy5uZ1Njcm9sbEJhcj8uc2Nyb2xsVG9FbGVtZW50KHRoaXMuaGludE1ldGhvZD8ubmF0aXZlRWxlbWVudCB8fCB0aGlzLnJlcXVpc2l0ZXMubmF0aXZlRWxlbWVudCwge1xyXG4gICAgICAgIGR1cmF0aW9uOiA1MDAsXHJcbiAgICAgICAgdG9wOiAtNzVcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXQgZGVzY3JpcHRpb24oKSB7XHJcbiAgICByZXR1cm4gdHlwZW9mIHRoaXMuZm9ybS5jb25maWc/LmRlc2NyaXB0aW9uID09PSAnZnVuY3Rpb24nID8gdGhpcy5mb3JtLmNvbmZpZz8uZGVzY3JpcHRpb24odGhpcy5mb3JtLmdldFJhd1ZhbHVlKCkpIDogdGhpcy5mb3JtLmNvbmZpZz8uZGVzY3JpcHRpb247XHJcbiAgfVxyXG5cclxuICBzdWJtaXQoKSB7XHJcbiAgICBpZiAoIXRoaXMuY2hlY2soKSAmJiAhdGhpcy5sb2FkaW5nKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmZvcm0ubWV0aG9kTmFtZSA9PT0gJ2NhcmQnICYmICF0aGlzLmNhcmRJZnJhbWU/LmZpbmlzaGVkKSB7XHJcbiAgICAgIHRoaXMuZm9ybS5jb250aW51ZUxvYWRlck9uKCk7XHJcbiAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICB0aGlzLmNhcmRJZnJhbWU/LnN1Ym1pdCgpXHJcbiAgICAgICAgLnRoZW4oc3VjY2VzcyA9PiAhc3VjY2VzcyAmJiB0aGlzLmZvcm0uY29udGludWVMb2FkZXJPZmYoKSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuc2VuZCgpO1xyXG4gIH1cclxuXHJcbiAgY2FyZFBhaWQoKSB7XHJcbiAgICBpZiAoIXRoaXMuY2hlY2soKSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLnNlbmQoKTtcclxuICB9XHJcblxyXG4gIGlmcmFtZUVycm9yKGNvZGU6IEkxOE5fS0VZKSB7XHJcbiAgICB0aGlzLmZvcm0uc2V0Q0RFRXJyb3IoY29kZSk7XHJcbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2hlY2soKSB7XHJcbiAgICBpZiAodGhpcy5zdGVwID09PSBUZXJtaW5hbFN0ZXAuQ29uZmlybWF0aW9uKSB7XHJcbiAgICAgIHRoaXMuY29uZmlybS5lbWl0KCk7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmZvcm0uY29uZmlnID09PSBudWxsKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIGlmICghdGhpcy5mb3JtLnZhbGlkIHx8IHRoaXMuZXJyb3IpIHtcclxuICAgICAgT2JqZWN0LnZhbHVlcyh0aGlzLmZvcm0ucGF5bWVudC5jb250cm9scylcclxuICAgICAgICAuZm9yRWFjaCgoY29udHJvbCkgPT4ge1xyXG4gICAgICAgICAgY29udHJvbC5tYXJrQXNEaXJ0eSgpO1xyXG4gICAgICAgICAgY29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XHJcbiAgICAgICAgICBjb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoe2VtaXRFdmVudDogZmFsc2V9KTtcclxuICAgICAgICB9KTtcclxuICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2VuZCgpIHtcclxuICAgIGNvbnN0IGRhdGE6IFRlcm1pbmFsUGF5bWVudFByZXBhcmVSZXF1ZXN0ID0gdGhpcy5mb3JtLmdldFBheW1lbnRWYWx1ZSgpO1xyXG4gICAgdGhpcy5tYXNrZWRXYWxsZXQgPSB0aGlzLmZvcm0ubWFza2VkV2FsbGV0O1xyXG4gICAgdGhpcy5wcmVwYXJlLmVtaXQoZGF0YSk7XHJcbiAgfVxyXG5cclxuICBzZWFyY2hDb3VudHJ5KHZhbHVlKSB7XHJcbiAgICB0aGlzLmNvdW50cnlTZWFyY2hTdHJpbmcgPSB2YWx1ZTtcclxuICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XHJcbiAgfVxyXG5cclxuICBnZXQgYmFja0J0bkxhYmVsKCk6IHN0cmluZyB7XHJcbiAgICBpZiAodGhpcy5zdGVwID09PSBUZXJtaW5hbFN0ZXAuUHJlcGFyZSkge1xyXG4gICAgICByZXR1cm4gSTE4Tl9LRVkuQ09OU1RSVUNUT1JfTEFCRUxfQ0FOQ0VMX1JFVFVSTjtcclxuICAgIH1cclxuICAgIHJldHVybiBJMThOX0tFWS5DT05TVFJVQ1RPUl9MQUJFTF9SRVRVUk47XHJcbiAgfVxyXG5cclxuICBjaGFuZ2VUZXh0RmllbGRWYWx1ZShtYXNrZWRWYWx1ZSwgZmllbGQ6IFBheW1lbnRGaWVsZCkge1xyXG4gICAgaWYgKGZpZWxkLndhbGxldCkge1xyXG4gICAgICB0aGlzLmZvcm0ubWFza2VkV2FsbGV0ID0gbWFza2VkVmFsdWU7XHJcbiAgICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLnVuU3Vic2NyaWJlci5uZXh0KCk7XHJcbiAgICB0aGlzLnVuU3Vic2NyaWJlci51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxufVxyXG4iLCI8Zm9ybSBjbGFzcz1cImNvbnN0cnVjdG9yXCJcclxuICBbZm9ybUdyb3VwXT1cImZvcm1cIlxyXG4gIChuZ1N1Ym1pdCk9XCJzdWJtaXQoKVwiXHJcbiAgPlxyXG4gIEBpZiAobG9hZGluZyAhPT0gbnVsbCkge1xyXG4gICAgQGlmIChzdGVwID09PSBURVJNSU5BTF9TVEVQLlByZXBhcmUpIHtcclxuICAgICAgPGRpdiBjbGFzcz1cImNvbnN0cnVjdG9yX19maWVsZHNcIj5cclxuICAgICAgICBAaWYgKGNvdW50cnlTZWFyY2hTdHJpbmcgfHwgY291bnRyaWVzTGlzdC5sZW5ndGggPiAxKSB7XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29uc3RydWN0b3JfX2ZpZWxkXCI+XHJcbiAgICAgICAgICAgIDxhcHAtdHJtLXNlbGVjdCBbZGF0YV09XCJjb3VudHJpZXNMaXN0XCJcclxuICAgICAgICAgICAgICBuYW1lPVwiY291bnRyeVwiXHJcbiAgICAgICAgICAgICAgW2xhYmVsXT1cIkkxOE5fS0VZLkNPTlNUUlVDVE9SX0xBQkVMX0NPVU5UUlkgfCB0cmFuc1wiXHJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiY291bnRyeVwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJjLWZpZWxkLXNlbGVjdCB0cm0tZm9ybS1maWVsZFwiXHJcbiAgICAgICAgICAgICAgKHNlYXJjaCk9XCJzZWFyY2hDb3VudHJ5KCRldmVudClcIlxyXG4gICAgICAgICAgICAgIFt0YWJJbmRleF09XCJ0YWJJbmRleFwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSB0cm1TZWxlY3RMYWJlbFRlbXBsYXRlIGxldC1pdGVtPVwiaXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmaVwiXHJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCInZmktJyArIGl0ZW0udG9Mb3dlckNhc2UoKVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWV0aG9kX19uYW1lXCI+e3tpdGVtIHwgY291bnRyeV90cmFuc2xhdGU6IGxhbmd9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8L2FwcC10cm0tc2VsZWN0PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgfVxyXG4gICAgICAgIEBpZiAoZm9ybS5jb3VudHJ5LnZhbHVlKSB7XHJcbiAgICAgICAgICA8YXBwLXBzLXNlbGVjdCBbbWV0aG9kc109XCJtZXRob2RzTGlzdFwiXHJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cIm1ldGhvZFwiXHJcbiAgICAgICAgICAgIFt0YWJJbmRleF09XCJ0YWJJbmRleFwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgQGlmIChmb3JtLmNvbmZpZz8uZGVzY3JpcHRpb24pIHtcclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29uc3RydWN0b3JfX2hpbnQgdGV4dC0td2FyblwiXHJcbiAgICAgICAgICAgICAgICBhcHAtcHMtc2VsZWN0LWhpbnRcclxuICAgICAgICAgICAgICAgICNoaW50TWV0aG9kXHJcbiAgICAgICAgICAgICAgICBAaW5zZXJ0UmVtb3ZlXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICB7e2Rlc2NyaXB0aW9uIHwgdHJhbnMgfX1cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBAaWYgKGZvcm0uaXNDREVGYWlsZWQpIHtcclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29uc3RydWN0b3JfX2hpbnQgY2RlLWVycm9yXCJcclxuICAgICAgICAgICAgICAgIGFwcC1wcy1zZWxlY3QtaGludFxyXG4gICAgICAgICAgICAgICAgQGluc2VydFJlbW92ZVxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAge3tmb3JtLmdldEVycm9yKCdjZGVfZXJyb3InKSB8IHRyYW5zIH19XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIDwvYXBwLXBzLXNlbGVjdD5cclxuICAgICAgICB9XHJcbiAgICAgICAgQGlmICghZm9ybS5tZXRob2RJbmZvTG9hZGluZykge1xyXG4gICAgICAgICAgQGlmIChmb3JtLnBheW1lbnRGb3JtRmllbGROYW1lcy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgPGRpdiBmb3JtR3JvdXBOYW1lPVwicGF5bWVudFwiXHJcbiAgICAgICAgICAgICAgI3BheW1lbnRSZXF1aXNpdGVzXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJjb25zdHJ1Y3Rvcl9fZmllbGRzIGNvbnN0cnVjdG9yX19maWVsZHMtLXJldmVyc2VcIj5cclxuICAgICAgICAgICAgICBAaWYgKGZvcm0uYW1vdW50RHluYW1pYykge1xyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImN1cnJlbmN5VHBsOyBjb250ZXh0OiB7bGFiZWw6IEkxOE5fS0VZLkNPTlNUUlVDVE9SX0xBQkVMX0NVUlJFTkNZIHwgdHJhbnMsIHRhYkluZGV4OiAwfVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBAZm9yIChmaWVsZCBvZiBmb3JtLmZpZWxkczsgdHJhY2sgZmllbGQubmFtZTsgbGV0IGkgPSAkaW5kZXgpIHtcclxuICAgICAgICAgICAgICAgIEBpZiAoZmllbGQudHlwZSA9PT0gQ09OU1RSVUNUT1JfRklFTERfVFlQRVMuSWZyYW1lKSB7XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtY29uc3RydWN0b3ItZmllbGQtaWZyYW1lXHJcbiAgICAgICAgICAgICAgICAgICAgW2hpZGRlbl09XCJmb3JtLmlzQ0RFRmFpbGVkXCJcclxuICAgICAgICAgICAgICAgICAgICAocGFpZCk9XCJjYXJkUGFpZCgpXCJcclxuICAgICAgICAgICAgICAgICAgICAjY2FyZElmcmFtZVxyXG4gICAgICAgICAgICAgICAgICAgIChlcnJvcik9XCJpZnJhbWVFcnJvcigkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICBbdGFiSW5kZXhdPVwiZm9ybS5maWVsZHMubGVuZ3RoIC0gaSArIHRhYkluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgIDwvYXBwLWNvbnN0cnVjdG9yLWZpZWxkLWlmcmFtZT5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIEBpZiAoZmllbGQudHlwZSA9PT0gQ09OU1RSVUNUT1JfRklFTERfVFlQRVMuU2VsZWN0KSB7XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtY29uc3RydWN0b3ItZmllbGQtc2VsZWN0XHJcbiAgICAgICAgICAgICAgICAgICAgW2NvbmZpZ109XCJmaWVsZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2l0ZW1zXT1cImZpZWxkPy5vcHRpb25zPy5pdGVtc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJmaWVsZC5uYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICBbdGFiSW5kZXhdPVwiZm9ybS5maWVsZHMubGVuZ3RoIC0gaSArIHRhYkluZGV4XCJcclxuICAgICAgICAgICAgICAgICAgPjwvYXBwLWNvbnN0cnVjdG9yLWZpZWxkLXNlbGVjdD5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIEBpZiAoW0NPTlNUUlVDVE9SX0ZJRUxEX1RZUEVTLlRleHQsIENPTlNUUlVDVE9SX0ZJRUxEX1RZUEVTLk51bWJlciwgQ09OU1RSVUNUT1JfRklFTERfVFlQRVMuRW1haWxdLmluY2x1ZGVzKGZpZWxkLnR5cGUpKSB7XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtY29uc3RydWN0b3ItZmllbGQtdGV4dFxyXG4gICAgICAgICAgICAgICAgICAgIFtjb25maWddPVwiZmllbGRcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiZmllbGQubmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKG1hc2tlZFZhbHVlQ2hhbmdlKT1cImNoYW5nZVRleHRGaWVsZFZhbHVlKCRldmVudCwgZmllbGQpXCJcclxuICAgICAgICAgICAgICAgICAgW3RhYkluZGV4XT1cImZvcm0uZmllbGRzLmxlbmd0aCAtIGkgKyB0YWJJbmRleFwiPjwvYXBwLWNvbnN0cnVjdG9yLWZpZWxkLXRleHQ+XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBAaWYgKGZpZWxkLnR5cGUgPT09IENPTlNUUlVDVE9SX0ZJRUxEX1RZUEVTLkFtb3VudCkge1xyXG4gICAgICAgICAgICAgICAgICA8YXBwLWNvbnN0cnVjdG9yLWZpZWxkLXRleHRcclxuICAgICAgICAgICAgICAgICAgICBbY29uZmlnXT1cImZpZWxkXCJcclxuICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImZpZWxkLm5hbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFt0YWJJbmRleF09XCJmb3JtLmZpZWxkcy5sZW5ndGggLSBpICsgdGFiSW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICBAaWYgKGhhc0ZlZUhpbnQoZmllbGQpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YXBwLW1ldGhvZC1hbW91bnQtaGludCBhcHAtYy10ZXh0LWhpbnRcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb25zdHJ1Y3Rvcl9faGludFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtmZWVdPVwiZmllbGQub3B0aW9ucy5mZWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbZml4ZWRGZWVdPVwiZmllbGQub3B0aW9ucy5maXhlZEZlZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFttYXhdPVwiZmllbGQub3B0aW9ucy5tYXhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbbWluXT1cImZpZWxkLm9wdGlvbnMubWluXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2N1cnJlbmN5XT1cImZpZWxkLm9wdGlvbnMuY3VycmVuY3lcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgPjwvYXBwLW1ldGhvZC1hbW91bnQtaGludD5cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBhcHAtYy10ZXh0LXN1ZmZpeFxyXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb25zdHJ1Y3Rvcl9fY3VycmVuY3lcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmNvbnN0cnVjdG9yX19jdXJyZW5jeS0tdHJhbnNwYXJlbnRdPVwiZm9ybS5pc0Ftb3VudEVkaXRhYmxlXCJcclxuICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjdXJyZW5jeVRwbDsgY29udGV4dDoge3RhYkluZGV4OiBmb3JtLmZpZWxkcy5sZW5ndGggLSBpICsgdGFiSW5kZXh9XCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvYXBwLWNvbnN0cnVjdG9yLWZpZWxkLXRleHQ+XHJcbiAgICAgICAgICAgICAgICAgIEBpZiAoaGFzQ3VycmVuY3lNZXRob2RTZWxlY3Rvcikge1xyXG4gICAgICAgICAgICAgICAgICAgIDxhcHAtdHJtLXNlbGVjdFxyXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb25zdHJ1Y3Rvci1maWVsZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiSTE4Tl9LRVkuQ09OU1RSVUNUT1JfTEFCRUxfQ1VSUkVOQ1kgfCB0cmFuc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiZm9ybS5jdXJyZW5jeVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbc2VhcmNoYWJsZV09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbZGF0YV09XCJjdXJyZW5jaWVzTGlzdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbdGFiSW5kZXhdPVwiZm9ybS5maWVsZHMubGVuZ3RoIC0gaSArIHRhYkluZGV4XCJcclxuICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSB0cm1TZWxlY3RMYWJlbFRlbXBsYXRlIGxldC1pdGVtPVwiaXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRybS1pY29uXCIgW25nQ2xhc3NdPVwiJ3RybS1jdXJyLScgKyBpdGVtLnRvTG93ZXJDYXNlKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiaXRlbVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3tpdGVtfX1cclxuICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9hcHAtdHJtLXNlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgQGlmIChmaWVsZC50eXBlID09PSBDT05TVFJVQ1RPUl9GSUVMRF9UWVBFUy5EYXRlKSB7XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtY29uc3RydWN0b3ItZmllbGQtZGF0ZVxyXG4gICAgICAgICAgICAgICAgICAgIFtjb25maWddPVwiZmllbGRcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiZmllbGQubmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgIFt0YWJJbmRleF09XCJmb3JtLmZpZWxkcy5sZW5ndGggLSBpICsgdGFiSW5kZXhcIj48L2FwcC1jb25zdHJ1Y3Rvci1maWVsZC1kYXRlPlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2N1cnJlbmN5VHBsIGxldC1sYWJlbD1cImxhYmVsXCIgbGV0LXRhYkluZGV4PVwidGFiSW5kZXhcIj5cclxuICAgICAgICAgICAgICAgIDxhcHAtdHJtLXNlbGVjdFxyXG4gICAgICAgICAgICAgICAgICBbbGFiZWxdPVwibGFiZWxcIlxyXG4gICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiZm9ybS51c2VyQ3VycmVuY3lcIlxyXG4gICAgICAgICAgICAgICAgICBbc2VhcmNoYWJsZV09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgIFtkYXRhXT1cInVzZXJDdXJyZW5jaWVzTGlzdFwiXHJcbiAgICAgICAgICAgICAgICAgIFt0YWJJbmRleF09XCJ0YWJJbmRleFwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIHRybVNlbGVjdExhYmVsVGVtcGxhdGUgbGV0LWl0ZW09XCJpdGVtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0cm0taWNvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCIndHJtLWN1cnItJyArIGl0ZW0udG9Mb3dlckNhc2UoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIml0ZW1cIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAge3tpdGVtfX1cclxuICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgIDwvYXBwLXRybS1zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidHJtLXNrZWxldG9uLWZpZWxkc1wiPlxyXG4gICAgICAgICAgICBAZm9yIChpIG9mIHNrZWxldG9uTGVuZ3RoOyB0cmFjayAkaW5kZXgpIHtcclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHJtLXNrZWxldG9uLWZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICA8Z20tc2tlbGV0b24gW2NvdW50XT1cIjFcIiBbc2hhcGVdPVwiJ3JlY3QtbWQnXCIgW3NpemVdPVwiMThcIj48L2dtLXNrZWxldG9uPlxyXG4gICAgICAgICAgICAgICAgPGdtLXNrZWxldG9uIFtjb3VudF09XCIxXCIgW3NpemVdPVwiNTBcIj48L2dtLXNrZWxldG9uPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICB9XHJcbiAgICAgICAgQGlmIChlcnJvciAmJiAhZm9ybS5tZXRob2RJbmZvTG9hZGluZykge1xyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRybS1lcnJvclwiXHJcbiAgICAgICAgICAgIEBpbnNlcnRSZW1vdmVcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICB7eyBlcnJvciB8IHRyYW5zIH19XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICB9XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgfVxyXG4gICAgQGlmIChzdGVwID09PSBURVJNSU5BTF9TVEVQLkNvbmZpcm1hdGlvbikge1xyXG4gICAgICA8YXBwLWNvbnN0cnVjdG9yLXByZXBhcmF0aW9uXHJcbiAgICAgICAgW2N1cnJlbmN5XT1cInJlc3BvbnNlPy5jdXJyZW5jeVwiXHJcbiAgICAgICAgW21ldGhvZE5hbWVdPVwiZm9ybS5nZXRUeXBlTmFtZUJ5SWQocmVzcG9uc2UudHlwZUlkKVwiXHJcbiAgICAgICAgW3dhbGxldF09XCJyZXNwb25zZS53YWxsZXRcIlxyXG4gICAgICAgIFttYXNrZWRXYWxsZXRdPVwibWFza2VkV2FsbGV0XCJcclxuICAgICAgICBbYW1vdW50XT1cInJlc3BvbnNlLmFtb3VudFwiXHJcbiAgICAgICAgW3RvdGFsXT1cInJlc3BvbnNlLnRvdGFsXCJcclxuICAgICAgICBbY29uZmlybWF0aW9uVGV4dF09XCJmb3JtLmNvbmZpZz8uY29uZmlybWF0aW9uXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgQGlmIChlcnJvciAmJiAhZm9ybS5wYXltZW50LnBlbmRpbmcpIHtcclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0cm0tZXJyb3JcIlxyXG4gICAgICAgICAgICBhcHAtY29uc3RydWN0b3ItcHJlcGFyYXRpb24tZXJyb3JcclxuICAgICAgICAgICAgQGluc2VydFJlbW92ZVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgIHt7IGVycm9yIHwgdHJhbnMgfX1cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIH1cclxuICAgICAgPC9hcHAtY29uc3RydWN0b3ItcHJlcGFyYXRpb24+XHJcbiAgICB9XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29uc3RydWN0b3JfX2FjdGlvbnNcIj5cclxuICAgICAgPGJ1dHRvbiBjbGFzcz1cInRybS1idXR0b24gdHJtLWJ1dHRvbi0tcHJpbWFyeSBjb25zdHJ1Y3Rvcl9fYWN0aW9ucy1jb250aW51ZVwiXHJcbiAgICAgICAgdHlwZT1cInN1Ym1pdFwiXHJcbiAgICAgICAgW3RhYmluZGV4XT1cImZvcm0uZmllbGRzLmxlbmd0aCArIHRhYkluZGV4XCI+XHJcbiAgICAgICAge3tJMThOX0tFWS5DT05TVFJVQ1RPUl9MQUJFTF9DT05USU5VRSB8IHRyYW5zfX1cclxuICAgICAgICBAaWYgKGxvYWRpbmcpIHtcclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwidHJtLXNwaW5uZXIgdHJtLXNwaW5uZXItd2hpdGVcIj48L3NwYW4+XHJcbiAgICAgICAgfVxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgPGJ1dHRvbiBjbGFzcz1cInRybS1idXR0b24gdHJtLWJ1dHRvbi0tc2Vjb25kYXJ5IGNvbnN0cnVjdG9yX19hY3Rpb25zLWJhY2tcIlxyXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgIFt0YWJpbmRleF09XCJmb3JtLmZpZWxkcy5sZW5ndGggKyB0YWJJbmRleFwiXHJcbiAgICAgIChjbGljayk9XCJiYWNrLmVtaXQoKVwiPiB7eyBiYWNrQnRuTGFiZWwgfCB0cmFuc319PC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICB9IEBlbHNlIHtcclxuICAgIDxkaXYgY2xhc3M9XCJ0cm0tc2tlbGV0b24tZ3JvdXBcIj5cclxuICAgICAgPGdtLXNrZWxldG9uIFtjb3VudF09XCI0XCIgW2dhcF09XCIyMFwiIFtzaXplXT1cIjgwXCI+PC9nbS1za2VsZXRvbj5cclxuICAgICAgPGdtLXNrZWxldG9uIFtjb3VudF09XCIyXCIgW2dhcF09XCIxMFwiIFtzaXplXT1cIjQ4XCI+PC9nbS1za2VsZXRvbj5cclxuICAgIDwvZGl2PlxyXG4gIH1cclxuPC9mb3JtPlxyXG4iXX0=
|
package/esm2022/lib/app/pages/components/constructor-form/services/constructor-form.service.mjs
CHANGED
|
@@ -30,6 +30,9 @@ export class ConstructorFormService extends FormGroup {
|
|
|
30
30
|
continueLoaderOn() {
|
|
31
31
|
this.sessionDS.loadingConfirm$.next(true);
|
|
32
32
|
}
|
|
33
|
+
continueLoaderOff() {
|
|
34
|
+
this.sessionDS.loadingConfirm$.next(false);
|
|
35
|
+
}
|
|
33
36
|
get paymentFormFieldNames() {
|
|
34
37
|
return Object.keys(this.payment.controls);
|
|
35
38
|
}
|
|
@@ -282,4 +285,4 @@ export class ConstructorFormService extends FormGroup {
|
|
|
282
285
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ConstructorFormService, decorators: [{
|
|
283
286
|
type: Injectable
|
|
284
287
|
}], ctorParameters: () => [] });
|
|
285
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RydWN0b3ItZm9ybS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGVybWluYWwtdGVtcGxhdGUvc3JjL2xpYi9hcHAvcGFnZXMvY29tcG9uZW50cy9jb25zdHJ1Y3Rvci1mb3JtL3NlcnZpY2VzL2NvbnN0cnVjdG9yLWZvcm0uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUNqRixPQUFPLEVBQW1CLFdBQVcsRUFBRSxTQUFTLEVBQWUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEcsT0FBTyxFQUNMLGNBQWMsRUFDZCw2QkFBNkIsRUFDN0IsOEJBQThCLEVBQzlCLDRCQUE0QixFQUk1QixvQkFBb0IsRUFDckIsTUFBTSxXQUFXLENBQUM7QUFDbkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDN0UsT0FBTyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWxFLE9BQU8sRUFBYyxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBRTdFLE9BQU8sRUFBRSxxQ0FBcUMsRUFBRSxNQUFNLHNCQUFzQixDQUFDOztBQUc3RSxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsU0FBcUQ7SUFXN0Y7UUFDSSxLQUFLLENBQUM7WUFDRixPQUFPLEVBQUUsSUFBSSxXQUFXLEVBQUU7WUFDMUIsYUFBYSxFQUFFLElBQUksV0FBVyxFQUFFO1lBQ2hDLE1BQU0sRUFBRSxJQUFJLFdBQVcsRUFBRTtZQUN6QixRQUFRLEVBQUUsSUFBSSxXQUFXLEVBQUU7WUFD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RyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDNUMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsV0FBVyxDQUFDLElBQWM7UUFDdEIsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxFQUFFO1lBQ3BCLElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxNQUFNLEVBQUUsQ0FBQztnQkFDN0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQztZQUMvQixDQUFDO1lBQ0QsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsc0JBQXNCLENBQUMsRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFDLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ1gsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFTSxXQUFXO1FBQ2QsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2hDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyQyxJQUFJLENBQUMsd0JBQXdCLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDaEQsQ0FBQzs4R0F0VFEsc0JBQXNCO2tIQUF0QixzQkFBc0I7OzJGQUF0QixzQkFBc0I7a0JBRGxDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgaW5qZWN0LCBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0b3JGbiwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHtcclxuICBDb2xsZWN0aW9uVHlwZSxcclxuICBERUZBVUxUX0NPVU5UUllfTE9DQUxIT1NUX0tFWSxcclxuICBERUZBVUxUX0NVUlJFTkNZX0xPQ0FMSE9TVF9LRVksXHJcbiAgREVGQVVMVF9NRVRIT0RfTE9DQUxIT1NUX0tFWSxcclxuICBQYXltZW50RmllbGQsXHJcbiAgUGF5bWVudEZpZWxkT3B0aW9uc0l0ZW0sXHJcbiAgUGF5bWVudEZpZWxkcyxcclxuICBQYXltZW50RmllbGRUeXBlRW51bVxyXG59IGZyb20gJy4uL21vZGVscyc7XHJcbmltcG9ydCB7IFNlc3Npb25EYXRhU291cmNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvc2Vzc2lvbi5kYXRhLXNvdXJjZSc7XHJcbmltcG9ydCB7IGZpcnN0LCBtYXAsIHN3aXRjaE1hcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBNZXRob2RJbmZvLCBUZXJtaW5hbFBheW1lbnRQcmVwYXJlUmVxdWVzdCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2NvZGVnZW4vbW9kZWwvbW9kZWxzJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgcmVtb3ZlRW1wdHlQcm9wcyB9IGZyb20gXCIuLi8uLi8uLi8uLi8uLi9oZWxwZXJzL3JlbW92ZS1lbXB0eS1wcm9wc1wiO1xyXG5pbXBvcnQgeyBJMThOX0tFWSB9IGZyb20gXCIuLy4uLy4uLy4uLy4uL2kxOG5cIjtcclxuaW1wb3J0IHsgVEVSTUlOQUxfTUVUSE9EX0NPTkZJR1VSQVRJT05fRkFDVE9SWSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2NvbnN0JztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIENvbnN0cnVjdG9yRm9ybVNlcnZpY2UgZXh0ZW5kcyBGb3JtR3JvdXA8eyBba2V5OiBzdHJpbmddOiBGb3JtQ29udHJvbCB8IEZvcm1Hcm91cCB9PiBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcbiAgICBwcml2YXRlIHNlc3Npb25EUyA9IGluamVjdChTZXNzaW9uRGF0YVNvdXJjZSk7XHJcbiAgICBwcml2YXRlIGNkID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcclxuICAgIHByaXZhdGUgY29uZmlndXJhdGlvbkZhY3RvcnkgPSBpbmplY3QoVEVSTUlOQUxfTUVUSE9EX0NPTkZJR1VSQVRJT05fRkFDVE9SWSwgeyBvcHRpb25hbDogdHJ1ZSB9KSB8fCAoKG1ldGhvZDogc3RyaW5nLCBkZWZhdWx0Q29uZmlnOiBQYXltZW50RmllbGRzKSA9PiBkZWZhdWx0Q29uZmlnKTtcclxuXHJcbiAgICBwcml2YXRlIGNhbmNlbFJlcXVlc3RzU3Vic2NyaWJlciA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgICBwcml2YXRlIHVuU3Vic2NyaWJlciA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgICBjb25maWc6IFBheW1lbnRGaWVsZHM7XHJcbiAgICBmaWVsZHM6IFBheW1lbnRGaWVsZFtdID0gW107XHJcbiAgICBtYXNrZWRXYWxsZXQ6IHN0cmluZztcclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICBzdXBlcih7XHJcbiAgICAgICAgICAgIGNvdW50cnk6IG5ldyBGb3JtQ29udHJvbCgpLFxyXG4gICAgICAgICAgICB1c2VyX2N1cnJlbmN5OiBuZXcgRm9ybUNvbnRyb2woKSxcclxuICAgICAgICAgICAgbWV0aG9kOiBuZXcgRm9ybUNvbnRyb2woKSxcclxuICAgICAgICAgICAgY3VycmVuY3k6IG5ldyBGb3JtQ29udHJvbCgpLFxyXG4gICAgICAgICAgICBwYXltZW50OiBuZXcgRm9ybUdyb3VwKHt9KVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBtZXRob2RJbmZvTG9hZGluZygpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuc2Vzc2lvbkRTLmxvYWRpbmdNZXRob2RJbmZvJC5nZXRWYWx1ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnRpbnVlTG9hZGVyT24oKSB7XHJcbiAgICAgIHRoaXMuc2Vzc2lvbkRTLmxvYWRpbmdDb25maXJtJC5uZXh0KHRydWUpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBwYXltZW50Rm9ybUZpZWxkTmFtZXMoKSB7XHJcbiAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKHRoaXMucGF5bWVudC5jb250cm9scyk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVtb3ZlUGF5bWVudEZvcm1Db250cm9scygpIHtcclxuICAgICAgICB0aGlzLnBheW1lbnRGb3JtRmllbGROYW1lc1xyXG4gICAgICAgICAgICAuZm9yRWFjaCgoY29udHJvbE5hbWU6IHN0cmluZykgPT4gdGhpcy5wYXltZW50LnJlbW92ZUNvbnRyb2woY29udHJvbE5hbWUpKTtcclxuICAgIH1cclxuXHJcbiAgICBpbml0KCkge1xyXG4gICAgICAgIGlmICh0aGlzLmNvbmZpZ3VyYXRpb25GYWN0b3J5KSB7XHJcbiAgICAgICAgICB0aGlzLmNvbmZpZyA9IHRoaXMuY29uZmlndXJhdGlvbkZhY3RvcnkoXHJcbiAgICAgICAgICAgIHRoaXMubWV0aG9kTmFtZSxcclxuICAgICAgICAgICAgdGhpcy5zZXNzaW9uRFMuZ2V0Q29uZmlndXJhdGlvbih0aGlzLm1ldGhvZE5hbWUpXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLmNvbmZpZyA9IHRoaXMuc2Vzc2lvbkRTLmdldENvbmZpZ3VyYXRpb24odGhpcy5tZXRob2ROYW1lKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuZmllbGRzID0gWy4uLnRoaXMuY29uZmlnLmZpZWxkc107XHJcbiAgICAgICAgLy8gdGhhdCB0cmljayBmb3Igei1pbmRleCBvcmRlciBpbiBwYWdlIChyZXZlcnNlIGFycmF5ICsgcmV2ZXJzZSBmbGV4LWRpcmVjdGlvbilcclxuICAgICAgICB0aGlzLmZpZWxkcy5yZXZlcnNlKCk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2Vzc2lvbkRTXHJcbiAgICAgICAgICAgIC5nZXRNZXRob2RJbmZvKFxyXG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW5jeS52YWx1ZSxcclxuICAgICAgICAgICAgICAgIHRoaXMubWV0aG9kLnZhbHVlXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoKG1ldGhvZEluZm8pID0+IHRoaXMuZ2VuZXJhdGVGaWVsZHMobWV0aG9kSW5mbykpLFxyXG4gICAgICAgICAgICAgICAgZmlyc3QoKSxcclxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmNhbmNlbFJlcXVlc3RzU3Vic2NyaWJlcilcclxuICAgICAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYW1vdW50RHluYW1pYyA9IGZhbHNlO1xyXG5cclxuICAgIHByaXZhdGUgYXN5bmMgZ2VuZXJhdGVGaWVsZHMobWV0aG9kSW5mbzogTWV0aG9kSW5mbykge1xyXG4gICAgICAgIHRoaXMuZmllbGRzXHJcbiAgICAgICAgICAgIC5mb3JFYWNoKChmaWVsZDogUGF5bWVudEZpZWxkKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoIWZpZWxkLm5hbWUpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjb25zdCBjb250cm9sID0gbmV3IEZvcm1Db250cm9sPHN0cmluZyB8IG51bWJlcj4odW5kZWZpbmVkKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHZhbGlkYXRvcnM6IFZhbGlkYXRvckZuW10gPSBbXTtcclxuICAgICAgICAgICAgICAgIHRoaXMuYW1vdW50RHluYW1pYyA9IG1ldGhvZEluZm8uYW1vdW50RHluYW1pYztcclxuICAgICAgICAgICAgICAgIGNvbnN0IGlzRWRpdGFibGUgPSAhbWV0aG9kSW5mby5hbW91bnREeW5hbWljICYmIHRoaXMuaXNBbW91bnRFZGl0YWJsZSgpO1xyXG4gICAgICAgICAgICAgICAgZmllbGQucGxhY2Vob2xkZXIgPSBmaWVsZC5wbGFjZWhvbGRlciB8fCAnJztcclxuICAgICAgICAgICAgICAgIGlmIChmaWVsZC50eXBlID09PSBQYXltZW50RmllbGRUeXBlRW51bS5BbW91bnQpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAobWV0aG9kSW5mby5kZWZhdWx0QW1vdW50IHx8IG1ldGhvZEluZm8uZGVmYXVsdEFtb3VudCA9PT0gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250cm9sLnNldFZhbHVlKG1ldGhvZEluZm8uZGVmYXVsdEFtb3VudCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmICghaXNFZGl0YWJsZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWVsZC5yZWFkb25seSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2wubWFya0FzRGlydHkoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZmllbGQucmVhZG9ubHkgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdG9ycy5wdXNoKChjb250cm9sKSA9PiArY29udHJvbC52YWx1ZSA9PT0gMCA/IHtyZXF1aXJlZDogdHJ1ZX0gOiBudWxsKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZmllbGQub3B0aW9ucyA9IGZpZWxkLm9wdGlvbnMgfHwge307XHJcbiAgICAgICAgICAgICAgICAgICAgZmllbGQub3B0aW9ucy5jdXJyZW5jeSA9IHRoaXMuY3VycmVuY3kudmFsdWU7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKG1ldGhvZEluZm8uZmVlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkLm9wdGlvbnMuZmVlID0gbWV0aG9kSW5mby5mZWU7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZmllbGQub3B0aW9ucy5mZWUgPSAwO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAobWV0aG9kSW5mby5maXhlZEZlZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWVsZC5vcHRpb25zLmZpeGVkRmVlID0gbWV0aG9kSW5mby5maXhlZEZlZTtcclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWVsZC5vcHRpb25zLmZpeGVkRmVlID0gMDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFtZXRob2RJbmZvLmFtb3VudER5bmFtaWMgJiYgbWV0aG9kSW5mby5saW1pdHM/Lm1heCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWVsZC5vcHRpb25zLm1heCA9IG1ldGhvZEluZm8ubGltaXRzLm1heDtcclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBkZWxldGUgZmllbGQub3B0aW9ucy5tYXg7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmICghbWV0aG9kSW5mby5hbW91bnREeW5hbWljICYmIG1ldGhvZEluZm8ubGltaXRzPy5taW4pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZmllbGQub3B0aW9ucy5taW4gPSBtZXRob2RJbmZvLmxpbWl0cy5taW47XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRlIGZpZWxkLm9wdGlvbnMubWluO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmIChmaWVsZC53YWxsZXQgJiYgbWV0aG9kSW5mby5kZWZhdWx0V2FsbGV0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29udHJvbC5zZXRWYWx1ZShtZXRob2RJbmZvLmRlZmF1bHRXYWxsZXQpO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChtZXRob2RJbmZvLmVtYWlsICYmIGZpZWxkLnR5cGUgPT09IFBheW1lbnRGaWVsZFR5cGVFbnVtLkVtYWlsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29udHJvbC5zZXRWYWx1ZShtZXRob2RJbmZvLmVtYWlsKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmIChmaWVsZC5yZXF1aXJlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKGZpZWxkLnBhdHRlcm4pIHtcclxuICAgICAgICAgICAgICAgICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5wYXR0ZXJuKG5ldyBSZWdFeHAoZmllbGQucGF0dGVybikpKTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBpZiAoZmllbGQudHlwZSA9PT0gUGF5bWVudEZpZWxkVHlwZUVudW0uRW1haWwpIHtcclxuICAgICAgICAgICAgICAgICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5lbWFpbCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAoZmllbGQub3B0aW9ucz8ubWF4ICYmIHR5cGVvZiBmaWVsZC5vcHRpb25zPy5tYXggPT09ICdudW1iZXInKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMubWF4KGZpZWxkLm9wdGlvbnM/Lm1heCkpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKGZpZWxkLm9wdGlvbnM/Lm1pbiAmJiB0eXBlb2YgZmllbGQub3B0aW9ucz8ubWluID09PSAnbnVtYmVyJykge1xyXG4gICAgICAgICAgICAgICAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLm1pbihmaWVsZC5vcHRpb25zPy5taW4pKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmIChmaWVsZC5vcHRpb25zPy5tYXhMZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5tYXhMZW5ndGgoZmllbGQub3B0aW9ucz8ubWF4TGVuZ3RoKSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAoZmllbGQub3B0aW9ucz8ubWluTGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMubWluTGVuZ3RoKGZpZWxkLm9wdGlvbnM/Lm1pbkxlbmd0aCkpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKGZpZWxkLnR5cGUgPT09IFBheW1lbnRGaWVsZFR5cGVFbnVtLkFtb3VudCAmJiBtZXRob2RJbmZvLmFtb3VudER5bmFtaWMpIHtcclxuICAgICAgICAgICAgICAgICAgICB2YWxpZGF0b3JzLmxlbmd0aCA9IDA7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGZpZWxkLnZhbGlkYXRvciA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICAgICAgICAgICAgICAgIHZhbGlkYXRvcnMucHVzaChmaWVsZC52YWxpZGF0b3IodGhpcy5wYXltZW50KSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjb250cm9sLnNldFZhbGlkYXRvcnModmFsaWRhdG9ycyk7XHJcbiAgICAgICAgICAgICAgICBpZiAoZmllbGQubmFtZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucGF5bWVudC5hZGRDb250cm9sKGZpZWxkLm5hbWUsIGNvbnRyb2wpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhpcy5mZXRjaENvbGxlY3Rpb24oZmllbGQpXHJcbiAgICAgICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4gbWV0aG9kSW5mbztcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGZldGNoQ29sbGVjdGlvbihmaWVsZDogUGF5bWVudEZpZWxkKTogT2JzZXJ2YWJsZTxQYXltZW50RmllbGRPcHRpb25zSXRlbVtdPiB7XHJcbiAgICAgICAgY29uc3QgRU1QVFlfTElTVCA9IG9mKFtdKS5waXBlKGZpcnN0KCkpO1xyXG4gICAgICAgIGlmICghZmllbGQub3B0aW9ucz8uY29sbGVjdGlvbikge1xyXG4gICAgICAgICAgICByZXR1cm4gRU1QVFlfTElTVDtcclxuICAgICAgICB9XHJcbiAgICAgICAgc3dpdGNoIChmaWVsZC5vcHRpb25zLmNvbGxlY3Rpb24pIHtcclxuICAgICAgICAgICAgY2FzZSBDb2xsZWN0aW9uVHlwZS5CYW5rczpcclxuICAgICAgICAgICAgICAgIGZpZWxkLm9wdGlvbnMuaXRlbXMgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnNlc3Npb25EU1xyXG4gICAgICAgICAgICAgICAgICAgIC5nZXRCYW5rcyh0aGlzLm1ldGhvZC52YWx1ZSlcclxuICAgICAgICAgICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgICAgICAgICAgbWFwKCh7ZGF0YX0pID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkLm9wdGlvbnMuaXRlbXMgPSBkYXRhO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZGF0YTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICBjYXNlIENvbGxlY3Rpb25UeXBlLkRvY3VtZW50czpcclxuICAgICAgICAgICAgICAgIGZpZWxkLm9wdGlvbnMuaXRlbXMgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnNlc3Npb25EU1xyXG4gICAgICAgICAgICAgICAgICAgIC5nZXREb2N1bWVudHModGhpcy5tZXRob2QudmFsdWUpXHJcbiAgICAgICAgICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcCgoe2RhdGF9KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZC5vcHRpb25zLml0ZW1zID0gZGF0YTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGRhdGE7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgIHJldHVybiBFTVBUWV9MSVNUO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBnZXQgY291bnRyeSgpOiBBYnN0cmFjdENvbnRyb2wge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdldCgnY291bnRyeScpIGFzIEFic3RyYWN0Q29udHJvbDtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgbWV0aG9kKCk6IEFic3RyYWN0Q29udHJvbCB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0KCdtZXRob2QnKSBhcyBBYnN0cmFjdENvbnRyb2w7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGN1cnJlbmN5KCk6IEZvcm1Db250cm9sIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5nZXQoJ2N1cnJlbmN5JykgYXMgRm9ybUNvbnRyb2w7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHVzZXJDdXJyZW5jeSgpOiBGb3JtQ29udHJvbCB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0KCd1c2VyX2N1cnJlbmN5JykgYXMgRm9ybUNvbnRyb2w7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHBheW1lbnQoKTogRm9ybUdyb3VwIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5nZXQoJ3BheW1lbnQnKSBhcyBGb3JtR3JvdXA7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGFtb3VudCgpOiBBYnN0cmFjdENvbnRyb2wge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnBheW1lbnQuZ2V0KHRoaXMuZmllbGRzLmZpbmQoZmllbGQgPT4gZmllbGQudHlwZSA9PT0gUGF5bWVudEZpZWxkVHlwZUVudW0uQW1vdW50KS5uYW1lKSBhcyBBYnN0cmFjdENvbnRyb2w7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBtZXRob2ROYW1lKCk6IHN0cmluZyB7XHJcbiAgICAgICAgaWYgKCF0aGlzLm1ldGhvZC52YWx1ZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2Vzc2lvbkRTLmdldFR5cGVOYW1lQnlJZCh0aGlzLm1ldGhvZC52YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0VHlwZU5hbWVCeUlkKGlkKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2Vzc2lvbkRTLmdldFR5cGVOYW1lQnlJZChpZCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNhdmVEZWZhdWx0Q291bnRyeSgpIHtcclxuICAgICAgICB0aGlzLnNlc3Npb25EUy5kb2N1bWVudC5kZWZhdWx0Vmlldy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbShERUZBVUxUX0NPVU5UUllfTE9DQUxIT1NUX0tFWSwgdGhpcy5jb3VudHJ5LnZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IGRlZmF1bHRDb3VudHJ5KCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnNlc3Npb25EUy5kb2N1bWVudC5kZWZhdWx0Vmlldy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShERUZBVUxUX0NPVU5UUllfTE9DQUxIT1NUX0tFWSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNhdmVEZWZhdWx0TWV0aG9kTmFtZSgpIHtcclxuICAgICAgICB0aGlzLnNlc3Npb25EUy5kb2N1bWVudC5kZWZhdWx0Vmlldy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbShERUZBVUxUX01FVEhPRF9MT0NBTEhPU1RfS0VZLCB0aGlzLm1ldGhvZE5hbWUpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgZGVmYXVsdE1ldGhvZE5hbWUoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2Vzc2lvbkRTLmRvY3VtZW50LmRlZmF1bHRWaWV3LmxvY2FsU3RvcmFnZS5nZXRJdGVtKERFRkFVTFRfTUVUSE9EX0xPQ0FMSE9TVF9LRVkpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzYXZlRGVmYXVsdEN1cnJlbmN5KCkge1xyXG4gICAgICAgIHRoaXMuc2Vzc2lvbkRTLmRvY3VtZW50LmRlZmF1bHRWaWV3LmxvY2FsU3RvcmFnZS5zZXRJdGVtKERFRkFVTFRfQ1VSUkVOQ1lfTE9DQUxIT1NUX0tFWSwgdGhpcy5jdXJyZW5jeS52YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBkZWZhdWx0Q3VycmVuY3koKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2Vzc2lvbkRTLmRvY3VtZW50LmRlZmF1bHRWaWV3LmxvY2FsU3RvcmFnZS5nZXRJdGVtKERFRkFVTFRfQ1VSUkVOQ1lfTE9DQUxIT1NUX0tFWSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGNhbmNlbFJlcXVlc3RzKCkge1xyXG4gICAgICAgIHRoaXMuY2FuY2VsUmVxdWVzdHNTdWJzY3JpYmVyLm5leHQoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0UGF5bWVudFZhbHVlKCkge1xyXG4gICAgICAgIGNvbnN0IGRhdGE6IFRlcm1pbmFsUGF5bWVudFByZXBhcmVSZXF1ZXN0ID0ge1xyXG4gICAgICAgICAgICB0eXBlSWQ6IHRoaXMubWV0aG9kLnZhbHVlLFxyXG4gICAgICAgICAgICBjdXJyZW5jeTogdGhpcy5jdXJyZW5jeS52YWx1ZSxcclxuICAgICAgICAgICAgdHlwZTogdGhpcy5nZXRUeXBlTmFtZUJ5SWQodGhpcy5tZXRob2QudmFsdWUpLFxyXG4gICAgICAgICAgICB1c2VyX2N1cnJlbmN5OiB0aGlzLnVzZXJDdXJyZW5jeS52YWx1ZSxcclxuICAgICAgICAgICAgLi4udGhpcy5wYXltZW50LmdldFJhd1ZhbHVlKClcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5maWVsZHMuZm9yRWFjaCgoZmllbGQ6IFBheW1lbnRGaWVsZCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoZmllbGQudHlwZSA9PT0gUGF5bWVudEZpZWxkVHlwZUVudW0uQW1vdW50KSB7XHJcbiAgICAgICAgICAgICAgICBkYXRhW2ZpZWxkLm5hbWVdID0gK2RhdGFbZmllbGQubmFtZV07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4gcmVtb3ZlRW1wdHlQcm9wcyhkYXRhKTtcclxuICAgIH1cclxuXHJcbiAgICBpc0Ftb3VudEVkaXRhYmxlKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnNlc3Npb25EUy5nZXRTZXNzaW9uVmFsdWUoKS5hbW91bnRFZGl0YWJsZVxyXG4gICAgfVxyXG5cclxuICAgIGhhc1doYXRUb0ZpbGwoKSB7XHJcbiAgICAgICAgY29uc3QgX2hhc1doYXRUb0ZpbGwgPSB0aGlzLmNvdW50cnkuZW5hYmxlZCB8fCB0aGlzLm1ldGhvZC5lbmFibGVkIHx8IHRoaXMuY3VycmVuY3kuZW5hYmxlZCB8fCB0aGlzLmlzQW1vdW50RWRpdGFibGUoKTtcclxuICAgICAgICBjb25zdCBmaWVsZHMgPSB0aGlzLmZpZWxkcztcclxuICAgICAgICBpZiAoX2hhc1doYXRUb0ZpbGwpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghZmllbGRzLmxlbmd0aCkge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBmaWVsZHMuc29tZSgoZikgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBjb250cm9sID0gdGhpcy5wYXltZW50LmdldChmLm5hbWUpO1xyXG4gICAgICAgICAgICBpZiAoZi50eXBlID09PSBQYXltZW50RmllbGRUeXBlRW51bS5BbW91bnQpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiAhY29udHJvbC52YWxpZDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5wYXltZW50LmdldChmLm5hbWUpLmVuYWJsZWQ7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0Q0RFRXJyb3IoY29kZTogSTE4Tl9LRVkpIHtcclxuICAgICAgICB0aGlzLmNsZWFyVmFsaWRhdG9ycygpO1xyXG4gICAgICAgIHRoaXMuc2V0VmFsaWRhdG9ycygoKSA9PiB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLm1ldGhvZE5hbWUgPT09ICdjYXJkJykge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgY2RlX2Vycm9yOiBjb2RlIH07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHtlbWl0RXZlbnQ6IGZhbHNlfSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGlzQ0RFRmFpbGVkKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmhhc0Vycm9yKCdjZGVfZXJyb3InKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAgICAgdGhpcy51blN1YnNjcmliZXIubmV4dCgpO1xyXG4gICAgICAgIHRoaXMudW5TdWJzY3JpYmVyLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgdGhpcy5jYW5jZWxSZXF1ZXN0c1N1YnNjcmliZXIubmV4dCgpO1xyXG4gICAgICAgIHRoaXMuY2FuY2VsUmVxdWVzdHNTdWJzY3JpYmVyLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
288
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RydWN0b3ItZm9ybS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGVybWluYWwtdGVtcGxhdGUvc3JjL2xpYi9hcHAvcGFnZXMvY29tcG9uZW50cy9jb25zdHJ1Y3Rvci1mb3JtL3NlcnZpY2VzL2NvbnN0cnVjdG9yLWZvcm0uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUNqRixPQUFPLEVBQW1CLFdBQVcsRUFBRSxTQUFTLEVBQWUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEcsT0FBTyxFQUNMLGNBQWMsRUFDZCw2QkFBNkIsRUFDN0IsOEJBQThCLEVBQzlCLDRCQUE0QixFQUk1QixvQkFBb0IsRUFDckIsTUFBTSxXQUFXLENBQUM7QUFDbkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDN0UsT0FBTyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWxFLE9BQU8sRUFBYyxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBRTdFLE9BQU8sRUFBRSxxQ0FBcUMsRUFBRSxNQUFNLHNCQUFzQixDQUFDOztBQUc3RSxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsU0FBcUQ7SUFXN0Y7UUFDSSxLQUFLLENBQUM7WUFDRixPQUFPLEVBQUUsSUFBSSxXQUFXLEVBQUU7WUFDMUIsYUFBYSxFQUFFLElBQUksV0FBVyxFQUFFO1lBQ2hDLE1BQU0sRUFBRSxJQUFJLFdBQVcsRUFBRTtZQUN6QixRQUFRLEVBQUUsSUFBSSxXQUFXLEVBQUU7WUFD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QztnQkFDekMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7WUFDMUIsQ0FBQztZQUNELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQztRQUM1QyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxXQUFXLENBQUMsSUFBYztRQUN0QixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLEVBQUU7WUFDcEIsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLE1BQU0sRUFBRSxDQUFDO2dCQUM3QixPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDO1lBQy9CLENBQUM7WUFDRCxPQUFPLElBQUksQ0FBQztRQUNoQixDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUMsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDWCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVNLFdBQVc7UUFDZCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDaEMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNoRCxDQUFDOzhHQTFUUSxzQkFBc0I7a0hBQXRCLHNCQUFzQjs7MkZBQXRCLHNCQUFzQjtrQkFEbEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBpbmplY3QsIEluamVjdGFibGUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIFZhbGlkYXRvckZuLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQge1xyXG4gIENvbGxlY3Rpb25UeXBlLFxyXG4gIERFRkFVTFRfQ09VTlRSWV9MT0NBTEhPU1RfS0VZLFxyXG4gIERFRkFVTFRfQ1VSUkVOQ1lfTE9DQUxIT1NUX0tFWSxcclxuICBERUZBVUxUX01FVEhPRF9MT0NBTEhPU1RfS0VZLFxyXG4gIFBheW1lbnRGaWVsZCxcclxuICBQYXltZW50RmllbGRPcHRpb25zSXRlbSxcclxuICBQYXltZW50RmllbGRzLFxyXG4gIFBheW1lbnRGaWVsZFR5cGVFbnVtXHJcbn0gZnJvbSAnLi4vbW9kZWxzJztcclxuaW1wb3J0IHsgU2Vzc2lvbkRhdGFTb3VyY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy9zZXNzaW9uLmRhdGEtc291cmNlJztcclxuaW1wb3J0IHsgZmlyc3QsIG1hcCwgc3dpdGNoTWFwLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IE1ldGhvZEluZm8sIFRlcm1pbmFsUGF5bWVudFByZXBhcmVSZXF1ZXN0IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vY29kZWdlbi9tb2RlbC9tb2RlbHMnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyByZW1vdmVFbXB0eVByb3BzIH0gZnJvbSBcIi4uLy4uLy4uLy4uLy4uL2hlbHBlcnMvcmVtb3ZlLWVtcHR5LXByb3BzXCI7XHJcbmltcG9ydCB7IEkxOE5fS0VZIH0gZnJvbSBcIi4vLi4vLi4vLi4vLi4vaTE4blwiO1xyXG5pbXBvcnQgeyBURVJNSU5BTF9NRVRIT0RfQ09ORklHVVJBVElPTl9GQUNUT1JZIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vY29uc3QnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgQ29uc3RydWN0b3JGb3JtU2VydmljZSBleHRlbmRzIEZvcm1Hcm91cDx7IFtrZXk6IHN0cmluZ106IEZvcm1Db250cm9sIHwgRm9ybUdyb3VwIH0+IGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuICAgIHByaXZhdGUgc2Vzc2lvbkRTID0gaW5qZWN0KFNlc3Npb25EYXRhU291cmNlKTtcclxuICAgIHByaXZhdGUgY2QgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gICAgcHJpdmF0ZSBjb25maWd1cmF0aW9uRmFjdG9yeSA9IGluamVjdChURVJNSU5BTF9NRVRIT0RfQ09ORklHVVJBVElPTl9GQUNUT1JZLCB7IG9wdGlvbmFsOiB0cnVlIH0pIHx8ICgobWV0aG9kOiBzdHJpbmcsIGRlZmF1bHRDb25maWc6IFBheW1lbnRGaWVsZHMpID0+IGRlZmF1bHRDb25maWcpO1xyXG5cclxuICAgIHByaXZhdGUgY2FuY2VsUmVxdWVzdHNTdWJzY3JpYmVyID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICAgIHByaXZhdGUgdW5TdWJzY3JpYmVyID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICAgIGNvbmZpZzogUGF5bWVudEZpZWxkcztcclxuICAgIGZpZWxkczogUGF5bWVudEZpZWxkW10gPSBbXTtcclxuICAgIG1hc2tlZFdhbGxldDogc3RyaW5nO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgICAgIHN1cGVyKHtcclxuICAgICAgICAgICAgY291bnRyeTogbmV3IEZvcm1Db250cm9sKCksXHJcbiAgICAgICAgICAgIHVzZXJfY3VycmVuY3k6IG5ldyBGb3JtQ29udHJvbCgpLFxyXG4gICAgICAgICAgICBtZXRob2Q6IG5ldyBGb3JtQ29udHJvbCgpLFxyXG4gICAgICAgICAgICBjdXJyZW5jeTogbmV3IEZvcm1Db250cm9sKCksXHJcbiAgICAgICAgICAgIHBheW1lbnQ6IG5ldyBGb3JtR3JvdXAoe30pXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IG1ldGhvZEluZm9Mb2FkaW5nKCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5zZXNzaW9uRFMubG9hZGluZ01ldGhvZEluZm8kLmdldFZhbHVlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgY29udGludWVMb2FkZXJPbigpIHtcclxuICAgICAgdGhpcy5zZXNzaW9uRFMubG9hZGluZ0NvbmZpcm0kLm5leHQodHJ1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgY29udGludWVMb2FkZXJPZmYoKSB7XHJcbiAgICAgIHRoaXMuc2Vzc2lvbkRTLmxvYWRpbmdDb25maXJtJC5uZXh0KGZhbHNlKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgcGF5bWVudEZvcm1GaWVsZE5hbWVzKCkge1xyXG4gICAgICAgIHJldHVybiBPYmplY3Qua2V5cyh0aGlzLnBheW1lbnQuY29udHJvbHMpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbW92ZVBheW1lbnRGb3JtQ29udHJvbHMoKSB7XHJcbiAgICAgICAgdGhpcy5wYXltZW50Rm9ybUZpZWxkTmFtZXNcclxuICAgICAgICAgICAgLmZvckVhY2goKGNvbnRyb2xOYW1lOiBzdHJpbmcpID0+IHRoaXMucGF5bWVudC5yZW1vdmVDb250cm9sKGNvbnRyb2xOYW1lKSk7XHJcbiAgICB9XHJcblxyXG4gICAgaW5pdCgpIHtcclxuICAgICAgICBpZiAodGhpcy5jb25maWd1cmF0aW9uRmFjdG9yeSkge1xyXG4gICAgICAgICAgdGhpcy5jb25maWcgPSB0aGlzLmNvbmZpZ3VyYXRpb25GYWN0b3J5KFxyXG4gICAgICAgICAgICB0aGlzLm1ldGhvZE5hbWUsXHJcbiAgICAgICAgICAgIHRoaXMuc2Vzc2lvbkRTLmdldENvbmZpZ3VyYXRpb24odGhpcy5tZXRob2ROYW1lKVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5jb25maWcgPSB0aGlzLnNlc3Npb25EUy5nZXRDb25maWd1cmF0aW9uKHRoaXMubWV0aG9kTmFtZSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmZpZWxkcyA9IFsuLi50aGlzLmNvbmZpZy5maWVsZHNdO1xyXG4gICAgICAgIC8vIHRoYXQgdHJpY2sgZm9yIHotaW5kZXggb3JkZXIgaW4gcGFnZSAocmV2ZXJzZSBhcnJheSArIHJldmVyc2UgZmxleC1kaXJlY3Rpb24pXHJcbiAgICAgICAgdGhpcy5maWVsZHMucmV2ZXJzZSgpO1xyXG4gICAgICAgIHJldHVybiB0aGlzLnNlc3Npb25EU1xyXG4gICAgICAgICAgICAuZ2V0TWV0aG9kSW5mbyhcclxuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVuY3kudmFsdWUsXHJcbiAgICAgICAgICAgICAgICB0aGlzLm1ldGhvZC52YWx1ZVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKChtZXRob2RJbmZvKSA9PiB0aGlzLmdlbmVyYXRlRmllbGRzKG1ldGhvZEluZm8pKSxcclxuICAgICAgICAgICAgICAgIGZpcnN0KCksXHJcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5jYW5jZWxSZXF1ZXN0c1N1YnNjcmliZXIpXHJcbiAgICAgICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFtb3VudER5bmFtaWMgPSBmYWxzZTtcclxuXHJcbiAgICBwcml2YXRlIGFzeW5jIGdlbmVyYXRlRmllbGRzKG1ldGhvZEluZm86IE1ldGhvZEluZm8pIHtcclxuICAgICAgICB0aGlzLmZpZWxkc1xyXG4gICAgICAgICAgICAuZm9yRWFjaCgoZmllbGQ6IFBheW1lbnRGaWVsZCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKCFmaWVsZC5uYW1lKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgY29uc3QgY29udHJvbCA9IG5ldyBGb3JtQ29udHJvbDxzdHJpbmcgfCBudW1iZXI+KHVuZGVmaW5lZCk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCB2YWxpZGF0b3JzOiBWYWxpZGF0b3JGbltdID0gW107XHJcbiAgICAgICAgICAgICAgICB0aGlzLmFtb3VudER5bmFtaWMgPSBtZXRob2RJbmZvLmFtb3VudER5bmFtaWM7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBpc0VkaXRhYmxlID0gIW1ldGhvZEluZm8uYW1vdW50RHluYW1pYyAmJiB0aGlzLmlzQW1vdW50RWRpdGFibGUoKTtcclxuICAgICAgICAgICAgICAgIGZpZWxkLnBsYWNlaG9sZGVyID0gZmllbGQucGxhY2Vob2xkZXIgfHwgJyc7XHJcbiAgICAgICAgICAgICAgICBpZiAoZmllbGQudHlwZSA9PT0gUGF5bWVudEZpZWxkVHlwZUVudW0uQW1vdW50KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKG1ldGhvZEluZm8uZGVmYXVsdEFtb3VudCB8fCBtZXRob2RJbmZvLmRlZmF1bHRBbW91bnQgPT09IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29udHJvbC5zZXRWYWx1ZShtZXRob2RJbmZvLmRlZmF1bHRBbW91bnQpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAoIWlzRWRpdGFibGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZmllbGQucmVhZG9ubHkgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250cm9sLm1hcmtBc0RpcnR5KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkLnJlYWRvbmx5ID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRvcnMucHVzaCgoY29udHJvbCkgPT4gK2NvbnRyb2wudmFsdWUgPT09IDAgPyB7cmVxdWlyZWQ6IHRydWV9IDogbnVsbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGZpZWxkLm9wdGlvbnMgPSBmaWVsZC5vcHRpb25zIHx8IHt9O1xyXG4gICAgICAgICAgICAgICAgICAgIGZpZWxkLm9wdGlvbnMuY3VycmVuY3kgPSB0aGlzLmN1cnJlbmN5LnZhbHVlO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChtZXRob2RJbmZvLmZlZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWVsZC5vcHRpb25zLmZlZSA9IG1ldGhvZEluZm8uZmVlO1xyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkLm9wdGlvbnMuZmVlID0gMDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKG1ldGhvZEluZm8uZml4ZWRGZWUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZmllbGQub3B0aW9ucy5maXhlZEZlZSA9IG1ldGhvZEluZm8uZml4ZWRGZWU7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZmllbGQub3B0aW9ucy5maXhlZEZlZSA9IDA7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmICghbWV0aG9kSW5mby5hbW91bnREeW5hbWljICYmIG1ldGhvZEluZm8ubGltaXRzPy5tYXgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZmllbGQub3B0aW9ucy5tYXggPSBtZXRob2RJbmZvLmxpbWl0cy5tYXg7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRlIGZpZWxkLm9wdGlvbnMubWF4O1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAoIW1ldGhvZEluZm8uYW1vdW50RHluYW1pYyAmJiBtZXRob2RJbmZvLmxpbWl0cz8ubWluKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkLm9wdGlvbnMubWluID0gbWV0aG9kSW5mby5saW1pdHMubWluO1xyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBmaWVsZC5vcHRpb25zLm1pbjtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAoZmllbGQud2FsbGV0ICYmIG1ldGhvZEluZm8uZGVmYXVsdFdhbGxldCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnRyb2wuc2V0VmFsdWUobWV0aG9kSW5mby5kZWZhdWx0V2FsbGV0KTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobWV0aG9kSW5mby5lbWFpbCAmJiBmaWVsZC50eXBlID09PSBQYXltZW50RmllbGRUeXBlRW51bS5FbWFpbCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnRyb2wuc2V0VmFsdWUobWV0aG9kSW5mby5lbWFpbCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAoZmllbGQucmVxdWlyZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmIChmaWVsZC5wYXR0ZXJuKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMucGF0dGVybihuZXcgUmVnRXhwKGZpZWxkLnBhdHRlcm4pKSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKGZpZWxkLnR5cGUgPT09IFBheW1lbnRGaWVsZFR5cGVFbnVtLkVtYWlsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMuZW1haWwpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKGZpZWxkLm9wdGlvbnM/Lm1heCAmJiB0eXBlb2YgZmllbGQub3B0aW9ucz8ubWF4ID09PSAnbnVtYmVyJykge1xyXG4gICAgICAgICAgICAgICAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLm1heChmaWVsZC5vcHRpb25zPy5tYXgpKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmIChmaWVsZC5vcHRpb25zPy5taW4gJiYgdHlwZW9mIGZpZWxkLm9wdGlvbnM/Lm1pbiA9PT0gJ251bWJlcicpIHtcclxuICAgICAgICAgICAgICAgICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5taW4oZmllbGQub3B0aW9ucz8ubWluKSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAoZmllbGQub3B0aW9ucz8ubWF4TGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMubWF4TGVuZ3RoKGZpZWxkLm9wdGlvbnM/Lm1heExlbmd0aCkpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKGZpZWxkLm9wdGlvbnM/Lm1pbkxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLm1pbkxlbmd0aChmaWVsZC5vcHRpb25zPy5taW5MZW5ndGgpKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmIChmaWVsZC50eXBlID09PSBQYXltZW50RmllbGRUeXBlRW51bS5BbW91bnQgJiYgbWV0aG9kSW5mby5hbW91bnREeW5hbWljKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFsaWRhdG9ycy5sZW5ndGggPSAwO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBmaWVsZC52YWxpZGF0b3IgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICAgICAgICAgICAgICB2YWxpZGF0b3JzLnB1c2goZmllbGQudmFsaWRhdG9yKHRoaXMucGF5bWVudCkpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgY29udHJvbC5zZXRWYWxpZGF0b3JzKHZhbGlkYXRvcnMpO1xyXG4gICAgICAgICAgICAgICAgaWYgKGZpZWxkLm5hbWUpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnBheW1lbnQuYWRkQ29udHJvbChmaWVsZC5uYW1lLCBjb250cm9sKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHRoaXMuZmV0Y2hDb2xsZWN0aW9uKGZpZWxkKVxyXG4gICAgICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuIG1ldGhvZEluZm87XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBmZXRjaENvbGxlY3Rpb24oZmllbGQ6IFBheW1lbnRGaWVsZCk6IE9ic2VydmFibGU8UGF5bWVudEZpZWxkT3B0aW9uc0l0ZW1bXT4ge1xyXG4gICAgICAgIGNvbnN0IEVNUFRZX0xJU1QgPSBvZihbXSkucGlwZShmaXJzdCgpKTtcclxuICAgICAgICBpZiAoIWZpZWxkLm9wdGlvbnM/LmNvbGxlY3Rpb24pIHtcclxuICAgICAgICAgICAgcmV0dXJuIEVNUFRZX0xJU1Q7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHN3aXRjaCAoZmllbGQub3B0aW9ucy5jb2xsZWN0aW9uKSB7XHJcbiAgICAgICAgICAgIGNhc2UgQ29sbGVjdGlvblR5cGUuQmFua3M6XHJcbiAgICAgICAgICAgICAgICBmaWVsZC5vcHRpb25zLml0ZW1zID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5zZXNzaW9uRFNcclxuICAgICAgICAgICAgICAgICAgICAuZ2V0QmFua3ModGhpcy5tZXRob2QudmFsdWUpXHJcbiAgICAgICAgICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcCgoe2RhdGF9KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZC5vcHRpb25zLml0ZW1zID0gZGF0YTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGRhdGE7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgY2FzZSBDb2xsZWN0aW9uVHlwZS5Eb2N1bWVudHM6XHJcbiAgICAgICAgICAgICAgICBmaWVsZC5vcHRpb25zLml0ZW1zID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5zZXNzaW9uRFNcclxuICAgICAgICAgICAgICAgICAgICAuZ2V0RG9jdW1lbnRzKHRoaXMubWV0aG9kLnZhbHVlKVxyXG4gICAgICAgICAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXAoKHtkYXRhfSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmllbGQub3B0aW9ucy5pdGVtcyA9IGRhdGE7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBkYXRhO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gRU1QVFlfTElTVDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGNvdW50cnkoKTogQWJzdHJhY3RDb250cm9sIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5nZXQoJ2NvdW50cnknKSBhcyBBYnN0cmFjdENvbnRyb2w7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IG1ldGhvZCgpOiBBYnN0cmFjdENvbnRyb2wge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdldCgnbWV0aG9kJykgYXMgQWJzdHJhY3RDb250cm9sO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBjdXJyZW5jeSgpOiBGb3JtQ29udHJvbCB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0KCdjdXJyZW5jeScpIGFzIEZvcm1Db250cm9sO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCB1c2VyQ3VycmVuY3koKTogRm9ybUNvbnRyb2wge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdldCgndXNlcl9jdXJyZW5jeScpIGFzIEZvcm1Db250cm9sO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBwYXltZW50KCk6IEZvcm1Hcm91cCB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0KCdwYXltZW50JykgYXMgRm9ybUdyb3VwO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBhbW91bnQoKTogQWJzdHJhY3RDb250cm9sIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5wYXltZW50LmdldCh0aGlzLmZpZWxkcy5maW5kKGZpZWxkID0+IGZpZWxkLnR5cGUgPT09IFBheW1lbnRGaWVsZFR5cGVFbnVtLkFtb3VudCkubmFtZSkgYXMgQWJzdHJhY3RDb250cm9sO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgbWV0aG9kTmFtZSgpOiBzdHJpbmcge1xyXG4gICAgICAgIGlmICghdGhpcy5tZXRob2QudmFsdWUpIHtcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLnNlc3Npb25EUy5nZXRUeXBlTmFtZUJ5SWQodGhpcy5tZXRob2QudmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFR5cGVOYW1lQnlJZChpZCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnNlc3Npb25EUy5nZXRUeXBlTmFtZUJ5SWQoaWQpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzYXZlRGVmYXVsdENvdW50cnkoKSB7XHJcbiAgICAgICAgdGhpcy5zZXNzaW9uRFMuZG9jdW1lbnQuZGVmYXVsdFZpZXcubG9jYWxTdG9yYWdlLnNldEl0ZW0oREVGQVVMVF9DT1VOVFJZX0xPQ0FMSE9TVF9LRVksIHRoaXMuY291bnRyeS52YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBkZWZhdWx0Q291bnRyeSgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zZXNzaW9uRFMuZG9jdW1lbnQuZGVmYXVsdFZpZXcubG9jYWxTdG9yYWdlLmdldEl0ZW0oREVGQVVMVF9DT1VOVFJZX0xPQ0FMSE9TVF9LRVkpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzYXZlRGVmYXVsdE1ldGhvZE5hbWUoKSB7XHJcbiAgICAgICAgdGhpcy5zZXNzaW9uRFMuZG9jdW1lbnQuZGVmYXVsdFZpZXcubG9jYWxTdG9yYWdlLnNldEl0ZW0oREVGQVVMVF9NRVRIT0RfTE9DQUxIT1NUX0tFWSwgdGhpcy5tZXRob2ROYW1lKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IGRlZmF1bHRNZXRob2ROYW1lKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnNlc3Npb25EUy5kb2N1bWVudC5kZWZhdWx0Vmlldy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShERUZBVUxUX01FVEhPRF9MT0NBTEhPU1RfS0VZKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2F2ZURlZmF1bHRDdXJyZW5jeSgpIHtcclxuICAgICAgICB0aGlzLnNlc3Npb25EUy5kb2N1bWVudC5kZWZhdWx0Vmlldy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbShERUZBVUxUX0NVUlJFTkNZX0xPQ0FMSE9TVF9LRVksIHRoaXMuY3VycmVuY3kudmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgZGVmYXVsdEN1cnJlbmN5KCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnNlc3Npb25EUy5kb2N1bWVudC5kZWZhdWx0Vmlldy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShERUZBVUxUX0NVUlJFTkNZX0xPQ0FMSE9TVF9LRVkpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBjYW5jZWxSZXF1ZXN0cygpIHtcclxuICAgICAgICB0aGlzLmNhbmNlbFJlcXVlc3RzU3Vic2NyaWJlci5uZXh0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldFBheW1lbnRWYWx1ZSgpIHtcclxuICAgICAgICBjb25zdCBkYXRhOiBUZXJtaW5hbFBheW1lbnRQcmVwYXJlUmVxdWVzdCA9IHtcclxuICAgICAgICAgICAgdHlwZUlkOiB0aGlzLm1ldGhvZC52YWx1ZSxcclxuICAgICAgICAgICAgY3VycmVuY3k6IHRoaXMuY3VycmVuY3kudmFsdWUsXHJcbiAgICAgICAgICAgIHR5cGU6IHRoaXMuZ2V0VHlwZU5hbWVCeUlkKHRoaXMubWV0aG9kLnZhbHVlKSxcclxuICAgICAgICAgICAgdXNlcl9jdXJyZW5jeTogdGhpcy51c2VyQ3VycmVuY3kudmFsdWUsXHJcbiAgICAgICAgICAgIC4uLnRoaXMucGF5bWVudC5nZXRSYXdWYWx1ZSgpXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuZmllbGRzLmZvckVhY2goKGZpZWxkOiBQYXltZW50RmllbGQpID0+IHtcclxuICAgICAgICAgICAgaWYgKGZpZWxkLnR5cGUgPT09IFBheW1lbnRGaWVsZFR5cGVFbnVtLkFtb3VudCkge1xyXG4gICAgICAgICAgICAgICAgZGF0YVtmaWVsZC5uYW1lXSA9ICtkYXRhW2ZpZWxkLm5hbWVdO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuIHJlbW92ZUVtcHR5UHJvcHMoZGF0YSk7XHJcbiAgICB9XHJcblxyXG4gICAgaXNBbW91bnRFZGl0YWJsZSgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zZXNzaW9uRFMuZ2V0U2Vzc2lvblZhbHVlKCkuYW1vdW50RWRpdGFibGVcclxuICAgIH1cclxuXHJcbiAgICBoYXNXaGF0VG9GaWxsKCkge1xyXG4gICAgICAgIGNvbnN0IF9oYXNXaGF0VG9GaWxsID0gdGhpcy5jb3VudHJ5LmVuYWJsZWQgfHwgdGhpcy5tZXRob2QuZW5hYmxlZCB8fCB0aGlzLmN1cnJlbmN5LmVuYWJsZWQgfHwgdGhpcy5pc0Ftb3VudEVkaXRhYmxlKCk7XHJcbiAgICAgICAgY29uc3QgZmllbGRzID0gdGhpcy5maWVsZHM7XHJcbiAgICAgICAgaWYgKF9oYXNXaGF0VG9GaWxsKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoIWZpZWxkcy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZmllbGRzLnNvbWUoKGYpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMucGF5bWVudC5nZXQoZi5uYW1lKTtcclxuICAgICAgICAgICAgaWYgKGYudHlwZSA9PT0gUGF5bWVudEZpZWxkVHlwZUVudW0uQW1vdW50KSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gIWNvbnRyb2wudmFsaWQ7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMucGF5bWVudC5nZXQoZi5uYW1lKS5lbmFibGVkO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHNldENERUVycm9yKGNvZGU6IEkxOE5fS0VZKSB7XHJcbiAgICAgICAgdGhpcy5jbGVhclZhbGlkYXRvcnMoKTtcclxuICAgICAgICB0aGlzLnNldFZhbGlkYXRvcnMoKCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5tZXRob2ROYW1lID09PSAnY2FyZCcpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB7IGNkZV9lcnJvcjogY29kZSB9O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7ZW1pdEV2ZW50OiBmYWxzZX0pO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBpc0NERUZhaWxlZCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5oYXNFcnJvcignY2RlX2Vycm9yJyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG5nT25EZXN0cm95KCkge1xyXG4gICAgICAgIHRoaXMudW5TdWJzY3JpYmVyLm5leHQoKTtcclxuICAgICAgICB0aGlzLnVuU3Vic2NyaWJlci51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgIHRoaXMuY2FuY2VsUmVxdWVzdHNTdWJzY3JpYmVyLm5leHQoKTtcclxuICAgICAgICB0aGlzLmNhbmNlbFJlcXVlc3RzU3Vic2NyaWJlci51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
package/fesm2022/trm-tmpl.mjs
CHANGED
|
@@ -4392,6 +4392,9 @@ class ConstructorFormService extends FormGroup {
|
|
|
4392
4392
|
continueLoaderOn() {
|
|
4393
4393
|
this.sessionDS.loadingConfirm$.next(true);
|
|
4394
4394
|
}
|
|
4395
|
+
continueLoaderOff() {
|
|
4396
|
+
this.sessionDS.loadingConfirm$.next(false);
|
|
4397
|
+
}
|
|
4395
4398
|
get paymentFormFieldNames() {
|
|
4396
4399
|
return Object.keys(this.payment.controls);
|
|
4397
4400
|
}
|
|
@@ -4714,6 +4717,7 @@ class ConstructorFieldIframeComponent {
|
|
|
4714
4717
|
this.loading = false;
|
|
4715
4718
|
this.cd.detectChanges();
|
|
4716
4719
|
};
|
|
4720
|
+
this._ready = false;
|
|
4717
4721
|
this._finished = false;
|
|
4718
4722
|
this.submitted = false;
|
|
4719
4723
|
}
|
|
@@ -4738,6 +4742,8 @@ class ConstructorFieldIframeComponent {
|
|
|
4738
4742
|
.addEventListener('load', this._iframeOnLoadHandler);
|
|
4739
4743
|
this._sdk
|
|
4740
4744
|
.onError((code) => this._onError(code));
|
|
4745
|
+
this._sdk.onInputPending(() => this._ready = false);
|
|
4746
|
+
this._sdk.onInputReady(() => this._ready = true);
|
|
4741
4747
|
this._sdk
|
|
4742
4748
|
.onInputSubmitted(() => {
|
|
4743
4749
|
this._finished = true;
|
|
@@ -4764,7 +4770,22 @@ class ConstructorFieldIframeComponent {
|
|
|
4764
4770
|
}
|
|
4765
4771
|
submit() {
|
|
4766
4772
|
this.submitted = true;
|
|
4767
|
-
|
|
4773
|
+
const subscriptions = [];
|
|
4774
|
+
return new Promise((resolve) => {
|
|
4775
|
+
if (!this._ready) {
|
|
4776
|
+
resolve(false);
|
|
4777
|
+
}
|
|
4778
|
+
else {
|
|
4779
|
+
subscriptions.push(this._sdk.onInputPending(() => resolve(false)));
|
|
4780
|
+
subscriptions.push(this._sdk.onError(() => resolve(false)));
|
|
4781
|
+
subscriptions.push(this._sdk.onInputSubmitted(() => resolve(true)));
|
|
4782
|
+
}
|
|
4783
|
+
this._sdk.submit();
|
|
4784
|
+
})
|
|
4785
|
+
.then((result) => {
|
|
4786
|
+
subscriptions.map(s => s.unsubscribe());
|
|
4787
|
+
return result;
|
|
4788
|
+
});
|
|
4768
4789
|
}
|
|
4769
4790
|
_onError(code) {
|
|
4770
4791
|
let codeError = I18N_KEY.ERROR_OCCUR;
|
|
@@ -5660,7 +5681,8 @@ class ConstructorFormComponent {
|
|
|
5660
5681
|
if (this.form.methodName === 'card' && !this.cardIframe?.finished) {
|
|
5661
5682
|
this.form.continueLoaderOn();
|
|
5662
5683
|
this.cd.detectChanges();
|
|
5663
|
-
this.cardIframe?.submit()
|
|
5684
|
+
this.cardIframe?.submit()
|
|
5685
|
+
.then(success => !success && this.form.continueLoaderOff());
|
|
5664
5686
|
return;
|
|
5665
5687
|
}
|
|
5666
5688
|
this.send();
|