@dsivd/prestations-ng 17.10.0-beta.1 → 17.10.0
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/CHANGELOG.md +7 -2
- package/dsivd-prestations-ng-17.10.0.tgz +0 -0
- package/esm2022/foehn-autocomplete/foehn-autocomplete.component.mjs +3 -2
- package/esm2022/foehn-checkables/foehn-checkable-group.component.mjs +5 -21
- package/esm2022/foehn-input/foehn-input.component.mjs +10 -1
- package/esm2022/gesdem-action-recovery/gesdem-action-recovery-registration/gesdem-action-recovery-registration.component.mjs +20 -15
- package/esm2022/helpers/object.helper.mjs +17 -1
- package/esm2022/sdk-dictionary/default-dictionary.mjs +5 -4
- package/esm2022/sdk-dictionary/sdk-dictionary.service.mjs +7 -1
- package/fesm2022/dsivd-prestations-ng.mjs +49 -29
- package/fesm2022/dsivd-prestations-ng.mjs.map +1 -1
- package/foehn-checkables/foehn-checkable-group.component.d.ts +0 -1
- package/gesdem-action-recovery/gesdem-action-recovery-registration/gesdem-action-recovery-registration.component.d.ts +4 -1
- package/helpers/object.helper.d.ts +1 -0
- package/package.json +1 -1
- package/sdk-dictionary/sdk-dictionary.service.d.ts +1 -0
- package/dsivd-prestations-ng-17.10.0-beta.1.tgz +0 -0
|
@@ -120,6 +120,15 @@ export class FoehnInputComponent {
|
|
|
120
120
|
return this.isErrorInherited;
|
|
121
121
|
}
|
|
122
122
|
isPristine() {
|
|
123
|
+
if (!this.inputModelList && !this.subComponents) {
|
|
124
|
+
return true;
|
|
125
|
+
}
|
|
126
|
+
if (this.inputModelList && !this.subComponents) {
|
|
127
|
+
return this.inputModelList.filter(m => !m.pristine).length === 0;
|
|
128
|
+
}
|
|
129
|
+
if (!this.inputModelList && this.subComponents) {
|
|
130
|
+
return this.subComponents.filter(c => !c.isPristine()).length === 0;
|
|
131
|
+
}
|
|
123
132
|
return (this.inputModelList.filter(m => !m.pristine).length === 0 &&
|
|
124
133
|
this.subComponents.filter(c => !c.isPristine()).length === 0);
|
|
125
134
|
}
|
|
@@ -406,4 +415,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
406
415
|
}], disabled: [{
|
|
407
416
|
type: Input
|
|
408
417
|
}] } });
|
|
409
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4taW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL2ZvZWhuLWlucHV0L2ZvZWhuLWlucHV0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsU0FBUyxFQUVULFlBQVksRUFDWixVQUFVLEVBQ1YsV0FBVyxFQUNYLEtBQUssRUFHTCxNQUFNLEVBRU4sU0FBUyxFQUNULFlBQVksRUFDZixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekMsT0FBTyxFQUFFLGFBQWEsRUFBYyxPQUFPLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxZQUFZLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFHakYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRCwyQ0FBMkM7QUFDM0MsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMENBQTBDLENBQUM7O0FBRXBGLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLEtBQUssQ0FBQztBQUc1QyxNQUFNLE9BQWdCLG1CQUFtQjtJQXNKckM7UUFuSEEsaUJBQVksR0FBOEIsRUFBRSxDQUFDO1FBTTdDLDRCQUF1QixHQUFHLEtBQUssQ0FBQztRQWdCaEMsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFHckIsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFFcEI7O1dBRUc7UUFFSCw0QkFBdUIsR0FBRyxLQUFLLENBQUM7UUFFaEM7O1dBRUc7UUFFSCw4QkFBeUIsR0FBRyxLQUFLLENBQUM7UUFHbEMscUJBQWdC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QURSLEtBQUs7Z0JBSU4sdUJBQXVCO3NCQUR0QixLQUFLO2dCQUlOLEdBQUc7c0JBREYsS0FBSztnQkFJTixHQUFHO3NCQURGLEtBQUs7Z0JBUU4sWUFBWTtzQkFEWCxLQUFLO2dCQUlOLFlBQVk7c0JBRFgsS0FBSztnQkFJTixXQUFXO3NCQURWLEtBQUs7Z0JBT04sdUJBQXVCO3NCQUR0QixLQUFLO2dCQU9OLHlCQUF5QjtzQkFEeEIsS0FBSztnQkFJTixnQkFBZ0I7c0JBRGYsS0FBSztnQkFPTixxQkFBcUI7c0JBRHBCLEtBQUs7Z0JBU04sY0FBYztzQkFEYixLQUFLO2dCQU9OLHVCQUF1QjtzQkFEdEIsS0FBSztnQkFJTixTQUFTO3NCQURSLEtBQUs7Z0JBSU4sY0FBYztzQkFEYixZQUFZO3VCQUFDLE9BQU87Z0JBSXJCLFlBQVk7c0JBRFgsU0FBUzt1QkFBQyxnQkFBZ0I7O1FBSTNCLDhEQUE4RDtRQUM5RCxhQUFhO3NCQUZaLFlBQVk7dUJBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLG1CQUFtQixDQUFDO2dCQVFuRCxXQUFXO3NCQURWLE1BQU07Z0JBT1AsU0FBUztzQkFEUixNQUFNO2dCQUtQLFdBQVc7c0JBRFYsTUFBTTt1QkFBQyxNQUFNO2dCQUtkLFlBQVk7c0JBRFgsTUFBTTt1QkFBQyxPQUFPO2dCQUlmLE1BQU07c0JBREwsV0FBVzt1QkFBQyxTQUFTO2dCQWtEbEIsS0FBSztzQkFEUixLQUFLO2dCQVdGLFFBQVE7c0JBRFgsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBEaXJlY3RpdmUsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgZm9yd2FyZFJlZixcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBRdWVyeUxpc3QsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdDaGlsZHJlblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nTW9kZWwgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBSZWdpc3Rlck5nTW9kZWxTZXJ2aWNlIH0gZnJvbSAnLi4vZm9laG4tZm9ybS9yZWdpc3Rlci1uZy1tb2RlbC5zZXJ2aWNlJztcbmltcG9ydCB7IEhlbHBNb2RhbCB9IGZyb20gJy4uL2ZvZWhuLWhlbHAtbW9kYWwvZm9laG4taGVscC1tb2RhbC50eXBlJztcbmltcG9ydCB7IEZvcm1FcnJvciB9IGZyb20gJy4uL2Zvcm0tZXJyb3InO1xuaW1wb3J0IHsgT2JqZWN0SGVscGVyIH0gZnJvbSAnLi4vaGVscGVycy9vYmplY3QuaGVscGVyJztcbmltcG9ydCB7IFNlcnZpY2VMb2NhdG9yIH0gZnJvbSAnLi4vc2VydmljZS1sb2NhdG9yJztcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tY3ljbGVcbmltcG9ydCB7IFZhbGlkYXRpb25IYW5kbGVyU2VydmljZSB9IGZyb20gJy4uL3ZhbGlkYXRpb24vdmFsaWRhdGlvbi1oYW5kbGVyLnNlcnZpY2UnO1xuXG5leHBvcnQgY29uc3QgR0VTREVNX01BWF9EQVRBX0xFTkdUSCA9IDEwMDAwO1xuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBGb2VobklucHV0Q29tcG9uZW50PFQ+XG4gICAgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdFxue1xuICAgIEBJbnB1dCgpXG4gICAgaWQ6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgcmVxdWlyZWQ6IGJvb2xlYW47XG5cbiAgICBASW5wdXQoKVxuICAgIGxhYmVsOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBXaGVuIFRSVUUsIGFkZHMgY2xhc3MgJ3Zpc3VhbGx5LWhpZGRlbicgKG9ubHkgZm9yIHNjcmVlbiByZWFkZXJzKSBvbiB0YWcgPGxhYmVsPiBvciA8bGVnZW5kPlxuICAgICAqIGRlcGVuZGluZyBvbiBjb21wb25lbnQgZXh0ZW5kaW5nIHRoaXMgY2xhc3NcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGlzTGFiZWxTck9ubHk6IGJvb2xlYW47XG5cbiAgICBASW5wdXQoKVxuICAgIHN0YW5kYXJkSGVscFRleHQ6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgaGVscFRleHQ6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgbmFtZTogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBwYXR0ZXJuOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIGxhYmVsU3R5bGVNb2RpZmllcjogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBjdXN0b21FcnJvcnM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcblxuICAgIEBJbnB1dCgpXG4gICAgbWF4bGVuZ3RoOiBudW1iZXI7XG5cbiAgICBASW5wdXQoKVxuICAgIG92ZXJyaWRlR2VzZGVtTWF4bGVuZ3RoID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIG1pbjogbnVtYmVyO1xuXG4gICAgQElucHV0KClcbiAgICBtYXg6IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIFRoZSBhdHRyaWJ1dGUgbXVzdCB0YWtlIG9uZSBvZiB0aGUgZm9sbG93aW5nIHZhbHVlczpcbiAgICAgKiBTZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZnIvZG9jcy9XZWIvSFRNTC9BdHRyaWJ1dGVzL2F1dG9jb21wbGV0ZVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgYXV0b2NvbXBsZXRlOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIHByZXZlbnRQYXN0ZSA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBjbGVhckJ1dHRvbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogRXhjbHVkZSB0aGUgY29tcG9uZW50IGZyb20gdGhlIGVycm9yIHN1bW1hcnkgaWYgdGhlIGNvbXBvbmVudCBoYXMgYW4gZXJyb3IuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBleGNsdWRlRnJvbUVycm9yU3VtbWFyeSA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogSGlkZSB0aGUgJ2ZhY3VsdGF0aWYnIGV4dHJhIGxhYmVsLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgaGlkZU5vdFJlcXVpcmVkRXh0cmFMYWJlbCA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBpc0Vycm9ySW5oZXJpdGVkID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBXaGVuIHNldCB0byBUUlVFOiBTaG93cyBlcnJvciBldmVuIGlmIGlucHV0IGlzIGRpc2FibGVkXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzaG93RXJyb3JXaGVuRGlzYWJsZWQgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBhdXRvY2FwaXRhbGl6ZSBhdHRyaWJ1dGUgbmV2ZXIgY2F1c2VzIGF1dG9jYXBpdGFsaXphdGlvbiB0byBiZSBlbmFibGVkIGZvclxuICAgICAqIGFuIDxpbnB1dD4gZWxlbWVudCB3aXRoIGEgdHlwZSBhdHRyaWJ1dGUgd2hvc2UgdmFsdWUgaXMgdXJsLCBlbWFpbCwgb3IgcGFzc3dvcmQuXG4gICAgICogaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZnIvZG9jcy9XZWIvSFRNTC9HbG9iYWxfYXR0cmlidXRlcy9hdXRvY2FwaXRhbGl6ZVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgYXV0b2NhcGl0YWxpemU6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFdoZW4gc2V0IHRvIFRSVUU6IEFsbG93cyBtb2RlbCB1cGRhdGUgdG8gYmUgZW1pdHRlZFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgdXBkYXRlTW9kZWxXaGVuRGlzYWJsZWQgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgaGVscE1vZGFsOiBIZWxwTW9kYWw7XG5cbiAgICBAVmlld0NoaWxkcmVuKE5nTW9kZWwpXG4gICAgaW5wdXRNb2RlbExpc3Q6IFF1ZXJ5TGlzdDxOZ01vZGVsPjtcblxuICAgIEBWaWV3Q2hpbGQoJ2VudHJ5Q29tcG9uZW50JylcbiAgICBpbnB1dEVsZW1lbnQ6IEVsZW1lbnRSZWY7XG5cbiAgICBAVmlld0NoaWxkcmVuKGZvcndhcmRSZWYoKCkgPT4gRm9laG5JbnB1dENvbXBvbmVudCkpXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICBzdWJDb21wb25lbnRzOiBRdWVyeUxpc3Q8Rm9laG5JbnB1dENvbXBvbmVudDxhbnk+PjtcblxuICAgIC8qKlxuICAgICAqIEZpcmVkIHdoZW4gdGhlIG1vZGVsIGNoYW5nZXMgZm9yIGFueSByZWFzb25cbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBtb2RlbENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8VD4oKTtcblxuICAgIC8qKlxuICAgICAqIEZpcmVkIHdoZW4gdGhlIHVzZXIgY2hhbmdlcyBhIHZhbHVlLCBhZnRlciB0aGUgbW9kZWwgaXMgdXBkYXRlZC5cbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICB1c2VySW5wdXQgPSBuZXcgRXZlbnRFbWl0dGVyPFQ+KCk7XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1uYXRpdmUsQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1yZW5hbWVcbiAgICBAT3V0cHV0KCdibHVyJylcbiAgICBibHVySGFuZGxlciA9IG5ldyBFdmVudEVtaXR0ZXI8Rm9jdXNFdmVudD4oKTtcblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LW5hdGl2ZSxAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LXJlbmFtZVxuICAgIEBPdXRwdXQoJ2ZvY3VzJylcbiAgICBmb2N1c0hhbmRsZXIgPSBuZXcgRXZlbnRFbWl0dGVyPEZvY3VzRXZlbnQ+KCk7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuaWQnKVxuICAgIGhvc3RJZDogc3RyaW5nO1xuXG4gICAgdHlwZTogc3RyaW5nO1xuXG4gICAgdmFsaWRhdGlvbkhhbmRsZXJTZXJ2aWNlOiBWYWxpZGF0aW9uSGFuZGxlclNlcnZpY2U7XG5cbiAgICBtb2RlbF86IFQ7XG5cbiAgICBwcml2YXRlIF9lcnJvcnM6IEZvcm1FcnJvcltdO1xuXG4gICAgcHJpdmF0ZSB2YWxpZGF0aW9uRXJyb3JzU3ViamVjdFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICAgIHByaXZhdGUgcmVnaXN0ZXJOZ01vZGVsU2VydmljZTogUmVnaXN0ZXJOZ01vZGVsU2VydmljZTtcblxuICAgIHByaXZhdGUgc2hvd0NsZWFyQnV0dG9uOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAgIHByaXZhdGUgdXNlcklucHV0U3ViamVjdCA9IG5ldyBTdWJqZWN0PFQ+KCk7XG4gICAgcHJpdmF0ZSB1c2VySW5wdXRTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICAgIHByaXZhdGUgX2Rpc2FibGVkOiBib29sZWFuO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMudmFsaWRhdGlvbkhhbmRsZXJTZXJ2aWNlID0gU2VydmljZUxvY2F0b3IuaW5qZWN0b3IuZ2V0KFxuICAgICAgICAgICAgVmFsaWRhdGlvbkhhbmRsZXJTZXJ2aWNlXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMucmVnaXN0ZXJOZ01vZGVsU2VydmljZSA9IFNlcnZpY2VMb2NhdG9yLmluamVjdG9yLmdldChcbiAgICAgICAgICAgIFJlZ2lzdGVyTmdNb2RlbFNlcnZpY2VcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5yZXF1aXJlZCA9IGZhbHNlO1xuXG4gICAgICAgIHRoaXMudmFsaWRhdGlvbkVycm9yc1N1YmplY3RTdWJzY3JpcHRpb24gPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgICAgIHRoaXMudmFsaWRhdGlvbkhhbmRsZXJTZXJ2aWNlLnZhbGlkYXRpb25FcnJvcnNTdWJqZWN0LFxuICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9uSGFuZGxlclNlcnZpY2UudmFsaWRhdGlvbkRpc3BsYXlTdWJqZWN0XG4gICAgICAgIF0pLnN1YnNjcmliZSh2YWx1ZXMgPT4ge1xuICAgICAgICAgICAgdGhpcy5yZWZyZXNoRXJyb3JzKHZhbHVlcyk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGdldCBlcnJvcnMoKTogRm9ybUVycm9yW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZXJyb3JzPy5zb3J0KChhLCBiKSA9PlxuICAgICAgICAgICAgT2JqZWN0SGVscGVyLnN0cmlwSHRtbChhLm1lc3NhZ2UpLmxvY2FsZUNvbXBhcmUoXG4gICAgICAgICAgICAgICAgT2JqZWN0SGVscGVyLnN0cmlwSHRtbChiLm1lc3NhZ2UpXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2V0IG1vZGVsKCk6IFQge1xuICAgICAgICByZXR1cm4gdGhpcy5tb2RlbF87XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBzZXQgbW9kZWwodmFsdWU6IFQpIHtcbiAgICAgICAgdGhpcy5vbk1vZGVsQ2hhbmdlKHZhbHVlKTtcbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L21lbWJlci1vcmRlcmluZ1xuICAgIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX2Rpc2FibGVkID0gdmFsdWU7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIC8vIEVuc3VyZXMgdGhhdCB0aGUgaG9zdCBoYXMgYW4gSWQgZm9yIGluc3RydW1lbnRhbGl6YXRpb24gb2YgdGhlIERPTSBieSBhdXRvbWF0ZWQgdGVzdHMuXG4gICAgICAgIHRoaXMuaG9zdElkID0gdGhpcy5idWlsZElkKCk7XG5cbiAgICAgICAgdGhpcy5zaG93Q2xlYXJCdXR0b24gPSB0aGlzLm1vZGVsQ2hhbmdlXG4gICAgICAgICAgICAuYXNPYnNlcnZhYmxlKClcbiAgICAgICAgICAgIC5waXBlKG1hcChtb2RlbCA9PiB0aGlzLmNsZWFyQnV0dG9uICYmICEhbW9kZWwgJiYgIXRoaXMuX2Rpc2FibGVkKSk7XG5cbiAgICAgICAgdGhpcy51c2VySW5wdXRTdWJzY3JpcHRpb24gPSB0aGlzLnVzZXJJbnB1dFN1YmplY3RcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgdXNlZCB0byBlbnN1cmUgdGhhdCB3ZSBvbmx5IGNhdGNoIHRoZSBsYXRlc3Qgb2YgbXVsdGlwbGVcbiAgICAgICAgICAgICAgICAvLyBxdWljayB1cGRhdGVzLCBhbmQgdG8gbWFrZSBzdXJlIHRoZSB1c2VySW5wdXQgaXMgZmlyZWQgd2hlblxuICAgICAgICAgICAgICAgIC8vIHRoZSBjb21wb25lbnQgaXMgZG9uZSB1cGRhdGluZy5cbiAgICAgICAgICAgICAgICBkZWJvdW5jZVRpbWUoMClcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUodmFsdWUgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudXNlcklucHV0LmVtaXQodmFsdWUpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnZhbGlkYXRpb25FcnJvcnNTdWJqZWN0U3Vic2NyaXB0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25FcnJvcnNTdWJqZWN0U3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy51c2VySW5wdXRTdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIHRoaXMudXNlcklucHV0U3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3ViQ29tcG9uZW50cy5jaGFuZ2VzLnN1YnNjcmliZSgoKSA9PlxuICAgICAgICAgICAgdGhpcy5yZWdpc3Rlck5nTW9kZWxTZXJ2aWNlLnVwZGF0ZVJlZ2lzdGVyZWROZ01vZGVscygpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgb25Nb2RlbENoYW5nZSh2YWx1ZTogVCk6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZU5nTW9kZWwodmFsdWUpO1xuICAgIH1cblxuICAgIGhhbmRsZUNoYW5nZSh2YWx1ZTogVCk6IHZvaWQge1xuICAgICAgICB0aGlzLnRyaWdnZXJVc2VySW5wdXQodmFsdWUpO1xuICAgIH1cblxuICAgIHVwZGF0ZU5nTW9kZWwodmFsdWU6IFQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tb2RlbF8gPSB2YWx1ZTtcbiAgICAgICAgaWYgKCF0aGlzLl9kaXNhYmxlZCB8fCB0aGlzLnVwZGF0ZU1vZGVsV2hlbkRpc2FibGVkKSB7XG4gICAgICAgICAgICB0aGlzLm1vZGVsQ2hhbmdlLmVtaXQodmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaGFzRXJyb3JzVG9EaXNwbGF5KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdGhpcy5oYXNFcnJvcnMoKSAmJiAoIXRoaXMuX2Rpc2FibGVkIHx8IHRoaXMuc2hvd0Vycm9yV2hlbkRpc2FibGVkKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGhhc0Vycm9ycygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Vycm9ycyAmJiB0aGlzLl9lcnJvcnMubGVuZ3RoID4gMCAmJiB0aGlzLmlzUHJpc3RpbmUoKTtcbiAgICB9XG5cbiAgICBoYXNJbmhlcml0RXJyb3JGcm9tUGFyZW50KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pc0Vycm9ySW5oZXJpdGVkO1xuICAgIH1cblxuICAgIGlzUHJpc3RpbmUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLmlucHV0TW9kZWxMaXN0LmZpbHRlcihtID0+ICFtLnByaXN0aW5lKS5sZW5ndGggPT09IDAgJiZcbiAgICAgICAgICAgIHRoaXMuc3ViQ29tcG9uZW50cy5maWx0ZXIoYyA9PiAhYy5pc1ByaXN0aW5lKCkpLmxlbmd0aCA9PT0gMFxuICAgICAgICApO1xuICAgIH1cblxuICAgIG1hcmtBc0RpcnR5KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlucHV0TW9kZWxMaXN0LmZvckVhY2gobmdNb2RlbCA9PiB7XG4gICAgICAgICAgICBuZ01vZGVsLmNvbnRyb2wubWFya0FzRGlydHkoKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuc3ViQ29tcG9uZW50cy5mb3JFYWNoKGMgPT4ge1xuICAgICAgICAgICAgYy5tYXJrQXNEaXJ0eSgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBtYXJrQXNQcmlzdGluZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbnB1dE1vZGVsTGlzdC5mb3JFYWNoKG5nTW9kZWwgPT4ge1xuICAgICAgICAgICAgbmdNb2RlbC5jb250cm9sLm1hcmtBc1ByaXN0aW5lKCk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnN1YkNvbXBvbmVudHMuZm9yRWFjaChjID0+IHtcbiAgICAgICAgICAgIGMubWFya0FzUHJpc3RpbmUoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0TmF0aXZlSW5wdXRMaXN0KCk6IE5nTW9kZWxbXSB7XG4gICAgICAgIGxldCByZXN1bHQ6IE5nTW9kZWxbXSA9IHRoaXMuaW5wdXRNb2RlbExpc3QudG9BcnJheSgpO1xuICAgICAgICB0aGlzLnN1YkNvbXBvbmVudHMuZm9yRWFjaChjID0+IHtcbiAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdC5jb25jYXQoYy5nZXROYXRpdmVJbnB1dExpc3QoKSk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgZ2V0TWVBbmRTdWJDb21wb25lbnRzKCk6IEZvZWhuSW5wdXRDb21wb25lbnQ8YW55PltdIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgICAgbGV0IHJlc3VsdDogRm9laG5JbnB1dENvbXBvbmVudDxhbnk+W10gPSBbdGhpc107XG4gICAgICAgIGlmICh0aGlzLnN1YkNvbXBvbmVudHMpIHtcbiAgICAgICAgICAgIHRoaXMuc3ViQ29tcG9uZW50cy5mb3JFYWNoKGMgPT4ge1xuICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdC5jb25jYXQoYy5nZXRNZUFuZFN1YkNvbXBvbmVudHMoKSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgcmVmcmVzaEVycm9ycyhyZXN1bHRzOiBhbnlbXSk6IHZvaWQge1xuICAgICAgICBjb25zdCBlcnJvcnM6IEZvcm1FcnJvcltdID0gcmVzdWx0c1swXTtcbiAgICAgICAgY29uc3Qgc2hvdWxkRGlzcGxheUVycm9yczogYm9vbGVhbiA9IHJlc3VsdHNbMV07XG4gICAgICAgIGlmIChzaG91bGREaXNwbGF5RXJyb3JzKSB7XG4gICAgICAgICAgICB0aGlzLl9lcnJvcnMgPSBlcnJvcnMuZmlsdGVyKGUgPT4gZS5uYW1lID09PSB0aGlzLm5hbWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZm9jdXMoKTogdm9pZCB7XG4gICAgICAgIGxldCBlbGVtZW50Q29udGFpbmVyOiBIVE1MRWxlbWVudDtcbiAgICAgICAgaWYgKHRoaXMuaW5wdXRFbGVtZW50ICYmIHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIGVsZW1lbnRDb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcbiAgICAgICAgICAgICAgICB0aGlzLmJ1aWxkSWQoJ0NvbnRhaW5lcicpXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgaWYgKGVsZW1lbnRDb250YWluZXIpIHtcbiAgICAgICAgICAgICAgICAvLyBTY3JvbGwgaW4gdmlldyBzaG91bGQgYmUgZG9uZSBvbiBpbnB1dCBjb250YWluZXJcbiAgICAgICAgICAgICAgICBlbGVtZW50Q29udGFpbmVyLnNjcm9sbEludG9WaWV3KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBGb2N1cyBzaG91bGQgYmUgb24gdGhlIGlucHV0IGl0c2VsZlxuICAgICAgICAgICAgdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgICAgdGhpcy5zdWJDb21wb25lbnRzICYmXG4gICAgICAgICAgICB0aGlzLmdldEZpcnN0SW5wdXRDb21wb25lbnRFbmFibGVkKHRoaXMuc3ViQ29tcG9uZW50cylcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBjb25zdCBpbnB1dENvbXBvbmVudCA9IHRoaXMuZ2V0Rmlyc3RJbnB1dENvbXBvbmVudEVuYWJsZWQoXG4gICAgICAgICAgICAgICAgdGhpcy5zdWJDb21wb25lbnRzXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgZWxlbWVudENvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFxuICAgICAgICAgICAgICAgIGlucHV0Q29tcG9uZW50LmJ1aWxkSWQoJ0NvbnRhaW5lcicpXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgaWYgKGVsZW1lbnRDb250YWluZXIpIHtcbiAgICAgICAgICAgICAgICAvLyBTY3JvbGwgaW4gdmlldyBzaG91bGQgYmUgZG9uZSBvbiBpbnB1dCBjb250YWluZXJcbiAgICAgICAgICAgICAgICBlbGVtZW50Q29udGFpbmVyLnNjcm9sbEludG9WaWV3KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBGb2N1cyBzaG91bGQgYmUgb24gdGhlIGlucHV0IGl0c2VsZlxuICAgICAgICAgICAgaW5wdXRDb21wb25lbnQuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIENhc2UgZm9yIGNvbXBvbmVudCB3aG8gZG8gbm90IGhhdmUgYW55ICcjZW50cnlDb21wb25lbnQnIGluIHRoZWlyIGh0bWwgdGVtcGxhdGUgKGkuZS4gZm9laG4tcmFkaW8sIGZvZWhuLWNoZWNrYm94LC4uLilcbiAgICAgICAgICAgIGVsZW1lbnRDb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcbiAgICAgICAgICAgICAgICB0aGlzLmJ1aWxkSWQoJ0NvbnRhaW5lcicpXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgaWYgKGVsZW1lbnRDb250YWluZXIpIHtcbiAgICAgICAgICAgICAgICAvLyBTY3JvbGwgaW4gdmlldyBzaG91bGQgYmUgZG9uZSBvbiBpbnB1dCBjb250YWluZXJcbiAgICAgICAgICAgICAgICBlbGVtZW50Q29udGFpbmVyLnNjcm9sbEludG9WaWV3KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBlbGVtZW50Tm9kZUxpc3RPZiA9IGVsZW1lbnRDb250YWluZXIucXVlcnlTZWxlY3RvckFsbChcbiAgICAgICAgICAgICAgICBgaW5wdXRbaWRePVwiJHt0aGlzLm5hbWV9XCJdYFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGlmIChlbGVtZW50Tm9kZUxpc3RPZiAmJiBlbGVtZW50Tm9kZUxpc3RPZi5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaW5wdXRFbGVtZW50ID1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5maW5kRmlyc3RIdG1sSW5wdXRFbGVtZW50RW5hYmxlZChlbGVtZW50Tm9kZUxpc3RPZik7XG4gICAgICAgICAgICAgICAgaWYgKGlucHV0RWxlbWVudCkge1xuICAgICAgICAgICAgICAgICAgICAvLyBGb2N1cyBzaG91bGQgYmUgb24gdGhlIGlucHV0IGl0c2VsZlxuICAgICAgICAgICAgICAgICAgICBpbnB1dEVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRNYXhMZW5ndGgoKTogbnVtYmVyIHtcbiAgICAgICAgaWYgKCF0aGlzLm1heGxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIEdFU0RFTV9NQVhfREFUQV9MRU5HVEg7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aGlzLm1heGxlbmd0aCA+IEdFU0RFTV9NQVhfREFUQV9MRU5HVEggJiZcbiAgICAgICAgICAgICF0aGlzLm92ZXJyaWRlR2VzZGVtTWF4bGVuZ3RoXG4gICAgICAgICkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coXG4gICAgICAgICAgICAgICAgYG1heExlbmd0aCBpbiAke3RoaXMubmFtZX0gY2Fubm90IGJlIG1vcmUgdGhhbiAke0dFU0RFTV9NQVhfREFUQV9MRU5HVEh9ICFgXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgcmV0dXJuIEdFU0RFTV9NQVhfREFUQV9MRU5HVEg7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5tYXhsZW5ndGg7XG4gICAgfVxuXG4gICAgYnVpbGRJZChzdWZmaXg6IHN0cmluZyA9ICcnKTogc3RyaW5nIHtcbiAgICAgICAgLy8gVGhlIGJhc2VJZCBpcyBlaXRoZXIgYW4gaWQgZ2l2ZW4gYnkgdGhlIHVzZXIgb3IgdGhlIHZhbHVlIG9mIHRoZSBuYW1lLlxuICAgICAgICAvLyBGb3IgaW50ZWdyYXRpb24gcHVycG9zZXMsIHRoZSBjb250YWluZXIgZm9laG4tKiBtdXN0IGhhdmUgYW4gSWQuXG4gICAgICAgIGNvbnN0IGJhc2VJZCA9IHRoaXMuaWQgfHwgdGhpcy5uYW1lO1xuICAgICAgICBpZiAoIWJhc2VJZCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYCR7YmFzZUlkfSR7c3VmZml4fWA7XG4gICAgfVxuXG4gICAgYnVpbGRDaGlsZElkKHN1ZmZpeDogc3RyaW5nID0gJycpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5idWlsZElkKGBDaGlsZCR7c3VmZml4fWApO1xuICAgIH1cblxuICAgIGJ1aWxkQ2hpbGROYW1lKHN1ZmZpeDogc3RyaW5nID0gJycpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYCR7dGhpcy5uYW1lfUNoaWxkJHtzdWZmaXh9YDtcbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgb25LZXlkb3duKGtleTogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICAvLyBEbyBub3RoaW5nLCBvdmVycmlkZW4gYnkgc3ViY29tcG9uZW50XG4gICAgfVxuXG4gICAgcmVzZXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBkYXRlTmdNb2RlbChudWxsKTtcbiAgICB9XG5cbiAgICBvblBhc3RlKGU6IENsaXBib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnByZXZlbnRQYXN0ZSA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25CbHVyKGU6IEZvY3VzRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5ibHVySGFuZGxlci5lbWl0KGUpO1xuICAgIH1cblxuICAgIG9uRm9jdXMoZTogRm9jdXNFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLmZvY3VzSGFuZGxlci5lbWl0KGUpO1xuICAgIH1cblxuICAgIG9uQ2xlYXIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBkYXRlTmdNb2RlbChudWxsKTtcbiAgICAgICAgdGhpcy5oYW5kbGVDaGFuZ2UobnVsbCk7XG4gICAgICAgIHRoaXMuZm9jdXMoKTtcbiAgICAgICAgdGhpcy5tYXJrQXNEaXJ0eSgpO1xuICAgIH1cblxuICAgIGRpc3BsYXlDbGVhckJ1dHRvbigpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICAgICAgLy8gVGhpcyBoYXMgdG8gYmUgYW4gb2JzZXJ2YWJsZSB0byByZWFjdCB0byB0aGUgY2hhbmdlIG9mIG1vZGVsIHZhbHVlLlxuICAgICAgICByZXR1cm4gdGhpcy5zaG93Q2xlYXJCdXR0b247XG4gICAgfVxuXG4gICAgZ2V0RGVzY3JpYmVkQnkoKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgaGVscFRleHRJZCA9IHRoaXMuaGVscFRleHQgPyBgJHt0aGlzLmJ1aWxkQ2hpbGRJZCgpfUhlbHBgIDogbnVsbDtcbiAgICAgICAgY29uc3QgZXJyb3JJZCA9IHRoaXMuaGFzRXJyb3JzVG9EaXNwbGF5KClcbiAgICAgICAgICAgID8gYCR7dGhpcy5idWlsZElkKCl9RXJyb3JzQ29udGFpbmVyYFxuICAgICAgICAgICAgOiBudWxsO1xuXG4gICAgICAgIC8vIGFyaWEtZGVzY3JpYmVkYnkgY2FuIGJlIGxpbmtlZCB0byBtdWx0aXBsZSBJZHMgc2VwYXJhdGVkIGJ5IGEgY29tbWEuXG4gICAgICAgIHJldHVybiBbaGVscFRleHRJZCwgZXJyb3JJZF0uZmlsdGVyKGlkID0+ICEhaWQpLmpvaW4oJywnKSB8fCBudWxsO1xuICAgIH1cblxuICAgIGdldEF1dG9Db21wbGV0ZSgpOiBzdHJpbmcge1xuICAgICAgICAvLyByZXRybyBjb21wYXRpYmlsaXR5IChhdXRvY29tcGxldGUgdXNlZCB0byBiZSBhIGJvb2xlYW4pXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXRzLWNvbW1lbnRcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICBpZiAodGhpcy5hdXRvY29tcGxldGUgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICByZXR1cm4gJ29mZic7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1jb21tZW50XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgaWYgKHRoaXMuYXV0b2NvbXBsZXRlID09PSB0cnVlKSB7XG4gICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5hdXRvY29tcGxldGU7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldEZpcnN0SW5wdXRDb21wb25lbnRFbmFibGVkKFxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgICBzdWJDb21wb25lbnRzOiBRdWVyeUxpc3Q8Rm9laG5JbnB1dENvbXBvbmVudDxhbnk+PlxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICk6IEZvZWhuSW5wdXRDb21wb25lbnQ8YW55PiB7XG4gICAgICAgIGNvbnN0IGZvZWhuSW5wdXRDb21wb25lbnRzID0gc3ViQ29tcG9uZW50cy5maWx0ZXIoXG4gICAgICAgICAgICBpdGVtID0+XG4gICAgICAgICAgICAgICAgaXRlbS5pbnB1dEVsZW1lbnQgJiZcbiAgICAgICAgICAgICAgICBpdGVtLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50ICYmXG4gICAgICAgICAgICAgICAgIWl0ZW0uX2Rpc2FibGVkXG4gICAgICAgICk7XG5cbiAgICAgICAgaWYgKCEhZm9laG5JbnB1dENvbXBvbmVudHMgJiYgZm9laG5JbnB1dENvbXBvbmVudHMubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4gZm9laG5JbnB1dENvbXBvbmVudHNbMF07XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZmluZEZpcnN0SHRtbElucHV0RWxlbWVudEVuYWJsZWQoXG4gICAgICAgIGVsZW1lbnROb2RlTGlzdE9mOiBOb2RlTGlzdE9mPEVsZW1lbnQ+XG4gICAgKTogSFRNTElucHV0RWxlbWVudCB7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZWxlbWVudE5vZGVMaXN0T2YubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IGh0bWxJbnB1dEVsZW1lbnQgPSBlbGVtZW50Tm9kZUxpc3RPZi5pdGVtKFxuICAgICAgICAgICAgICAgIGlcbiAgICAgICAgICAgICkgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICAgICAgICAgIGlmICghaHRtbElucHV0RWxlbWVudC5kaXNhYmxlZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBodG1sSW5wdXRFbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgcHJvdGVjdGVkIGlzRW1wdHkoZGF0YTogYW55KTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBkYXRhID09PSBudWxsIHx8IGRhdGEgPT09IHVuZGVmaW5lZCB8fCBkYXRhID09PSAnJztcbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIHByb3RlY3RlZCBpc0VtcHR5V2hlblRyaW1tZWRJZlN0cmluZyhkYXRhOiBhbnkpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHR5cGVvZiBkYXRhID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaXNFbXB0eSghIWRhdGEgPyBkYXRhLnRyaW0oKSA6IGRhdGEpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuaXNFbXB0eShkYXRhKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgdHJpZ2dlclVzZXJJbnB1dCh2YWx1ZTogVCk6IHZvaWQge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICAvLyBJZiB0aGUgY2FsbGJhY2sgaXMgZGVmaW5lZFxuICAgICAgICAgICAgISF0aGlzLnVzZXJJbnB1dCAmJlxuICAgICAgICAgICAgLy8gSWYgdGhlIHZhbHVlIGlzIGFjdHVhbGx5IHNvbWV0aGluZyAoVCBvciBudWxsKVxuICAgICAgICAgICAgdHlwZW9mIHZhbHVlICE9PSAndW5kZWZpbmVkJyAmJlxuICAgICAgICAgICAgLy8gSWYgaW5wdXQgaXNuJ3QgZGlzYWJsZWRcbiAgICAgICAgICAgICF0aGlzLl9kaXNhYmxlZFxuICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMudXNlcklucHV0U3ViamVjdC5uZXh0KHZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
|
|
418
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4taW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL2ZvZWhuLWlucHV0L2ZvZWhuLWlucHV0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsU0FBUyxFQUVULFlBQVksRUFDWixVQUFVLEVBQ1YsV0FBVyxFQUNYLEtBQUssRUFHTCxNQUFNLEVBRU4sU0FBUyxFQUNULFlBQVksRUFDZixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekMsT0FBTyxFQUFFLGFBQWEsRUFBYyxPQUFPLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxZQUFZLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFHakYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRCwyQ0FBMkM7QUFDM0MsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMENBQTBDLENBQUM7O0FBRXBGLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLEtBQUssQ0FBQztBQUc1QyxNQUFNLE9BQWdCLG1CQUFtQjtJQXNKckM7UUFuSEEsaUJBQVksR0FBOEIsRUFBRSxDQUFDO1FBTTdDLDRCQUF1QixHQUFHLEtBQUssQ0FBQztRQWdCaEMsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFHckIsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFFcEI7O1dBRUc7UUFFSCw0QkFBdUIsR0FBRyxLQUFLLENBQUM7UUFFaEM7O1dBRUc7UUFFSCw4QkFBeUIsR0FBRyxLQUFLLENBQUM7UUFHbEMscUJBQWdC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QUFHLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztnQkFRbkQsV0FBVztzQkFEVixNQUFNO2dCQU9QLFNBQVM7c0JBRFIsTUFBTTtnQkFLUCxXQUFXO3NCQURWLE1BQU07dUJBQUMsTUFBTTtnQkFLZCxZQUFZO3NCQURYLE1BQU07dUJBQUMsT0FBTztnQkFJZixNQUFNO3NCQURMLFdBQVc7dUJBQUMsU0FBUztnQkFrRGxCLEtBQUs7c0JBRFIsS0FBSztnQkFXRixRQUFRO3NCQURYLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgRGlyZWN0aXZlLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgUXVlcnlMaXN0LFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3Q2hpbGRyZW5cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ01vZGVsIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSwgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgUmVnaXN0ZXJOZ01vZGVsU2VydmljZSB9IGZyb20gJy4uL2ZvZWhuLWZvcm0vcmVnaXN0ZXItbmctbW9kZWwuc2VydmljZSc7XG5pbXBvcnQgeyBIZWxwTW9kYWwgfSBmcm9tICcuLi9mb2Vobi1oZWxwLW1vZGFsL2ZvZWhuLWhlbHAtbW9kYWwudHlwZSc7XG5pbXBvcnQgeyBGb3JtRXJyb3IgfSBmcm9tICcuLi9mb3JtLWVycm9yJztcbmltcG9ydCB7IE9iamVjdEhlbHBlciB9IGZyb20gJy4uL2hlbHBlcnMvb2JqZWN0LmhlbHBlcic7XG5pbXBvcnQgeyBTZXJ2aWNlTG9jYXRvciB9IGZyb20gJy4uL3NlcnZpY2UtbG9jYXRvcic7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L25vLWN5Y2xlXG5pbXBvcnQgeyBWYWxpZGF0aW9uSGFuZGxlclNlcnZpY2UgfSBmcm9tICcuLi92YWxpZGF0aW9uL3ZhbGlkYXRpb24taGFuZGxlci5zZXJ2aWNlJztcblxuZXhwb3J0IGNvbnN0IEdFU0RFTV9NQVhfREFUQV9MRU5HVEggPSAxMDAwMDtcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRm9laG5JbnB1dENvbXBvbmVudDxUPlxuICAgIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXRcbntcbiAgICBASW5wdXQoKVxuICAgIGlkOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIHJlcXVpcmVkOiBib29sZWFuO1xuXG4gICAgQElucHV0KClcbiAgICBsYWJlbDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogV2hlbiBUUlVFLCBhZGRzIGNsYXNzICd2aXN1YWxseS1oaWRkZW4nIChvbmx5IGZvciBzY3JlZW4gcmVhZGVycykgb24gdGFnIDxsYWJlbD4gb3IgPGxlZ2VuZD5cbiAgICAgKiBkZXBlbmRpbmcgb24gY29tcG9uZW50IGV4dGVuZGluZyB0aGlzIGNsYXNzXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBpc0xhYmVsU3JPbmx5OiBib29sZWFuO1xuXG4gICAgQElucHV0KClcbiAgICBzdGFuZGFyZEhlbHBUZXh0OiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIGhlbHBUZXh0OiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIG5hbWU6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgcGF0dGVybjogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBsYWJlbFN0eWxlTW9kaWZpZXI6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgY3VzdG9tRXJyb3JzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge307XG5cbiAgICBASW5wdXQoKVxuICAgIG1heGxlbmd0aDogbnVtYmVyO1xuXG4gICAgQElucHV0KClcbiAgICBvdmVycmlkZUdlc2RlbU1heGxlbmd0aCA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBtaW46IG51bWJlcjtcblxuICAgIEBJbnB1dCgpXG4gICAgbWF4OiBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYXR0cmlidXRlIG11c3QgdGFrZSBvbmUgb2YgdGhlIGZvbGxvd2luZyB2YWx1ZXM6XG4gICAgICogU2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2ZyL2RvY3MvV2ViL0hUTUwvQXR0cmlidXRlcy9hdXRvY29tcGxldGVcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGF1dG9jb21wbGV0ZTogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBwcmV2ZW50UGFzdGUgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgY2xlYXJCdXR0b24gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEV4Y2x1ZGUgdGhlIGNvbXBvbmVudCBmcm9tIHRoZSBlcnJvciBzdW1tYXJ5IGlmIHRoZSBjb21wb25lbnQgaGFzIGFuIGVycm9yLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZXhjbHVkZUZyb21FcnJvclN1bW1hcnkgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEhpZGUgdGhlICdmYWN1bHRhdGlmJyBleHRyYSBsYWJlbC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGhpZGVOb3RSZXF1aXJlZEV4dHJhTGFiZWwgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgaXNFcnJvckluaGVyaXRlZCA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogV2hlbiBzZXQgdG8gVFJVRTogU2hvd3MgZXJyb3IgZXZlbiBpZiBpbnB1dCBpcyBkaXNhYmxlZFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2hvd0Vycm9yV2hlbkRpc2FibGVkID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgYXV0b2NhcGl0YWxpemUgYXR0cmlidXRlIG5ldmVyIGNhdXNlcyBhdXRvY2FwaXRhbGl6YXRpb24gdG8gYmUgZW5hYmxlZCBmb3JcbiAgICAgKiBhbiA8aW5wdXQ+IGVsZW1lbnQgd2l0aCBhIHR5cGUgYXR0cmlidXRlIHdob3NlIHZhbHVlIGlzIHVybCwgZW1haWwsIG9yIHBhc3N3b3JkLlxuICAgICAqIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2ZyL2RvY3MvV2ViL0hUTUwvR2xvYmFsX2F0dHJpYnV0ZXMvYXV0b2NhcGl0YWxpemVcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGF1dG9jYXBpdGFsaXplOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBXaGVuIHNldCB0byBUUlVFOiBBbGxvd3MgbW9kZWwgdXBkYXRlIHRvIGJlIGVtaXR0ZWRcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHVwZGF0ZU1vZGVsV2hlbkRpc2FibGVkID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIGhlbHBNb2RhbDogSGVscE1vZGFsO1xuXG4gICAgQFZpZXdDaGlsZHJlbihOZ01vZGVsKVxuICAgIGlucHV0TW9kZWxMaXN0OiBRdWVyeUxpc3Q8TmdNb2RlbD47XG5cbiAgICBAVmlld0NoaWxkKCdlbnRyeUNvbXBvbmVudCcpXG4gICAgaW5wdXRFbGVtZW50OiBFbGVtZW50UmVmO1xuXG4gICAgQFZpZXdDaGlsZHJlbihmb3J3YXJkUmVmKCgpID0+IEZvZWhuSW5wdXRDb21wb25lbnQpKVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgc3ViQ29tcG9uZW50czogUXVlcnlMaXN0PEZvZWhuSW5wdXRDb21wb25lbnQ8YW55Pj47XG5cbiAgICAvKipcbiAgICAgKiBGaXJlZCB3aGVuIHRoZSBtb2RlbCBjaGFuZ2VzIGZvciBhbnkgcmVhc29uXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgbW9kZWxDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFQ+KCk7XG5cbiAgICAvKipcbiAgICAgKiBGaXJlZCB3aGVuIHRoZSB1c2VyIGNoYW5nZXMgYSB2YWx1ZSwgYWZ0ZXIgdGhlIG1vZGVsIGlzIHVwZGF0ZWQuXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgdXNlcklucHV0ID0gbmV3IEV2ZW50RW1pdHRlcjxUPigpO1xuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtbmF0aXZlLEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtcmVuYW1lXG4gICAgQE91dHB1dCgnYmx1cicpXG4gICAgYmx1ckhhbmRsZXIgPSBuZXcgRXZlbnRFbWl0dGVyPEZvY3VzRXZlbnQ+KCk7XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1uYXRpdmUsQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1yZW5hbWVcbiAgICBAT3V0cHV0KCdmb2N1cycpXG4gICAgZm9jdXNIYW5kbGVyID0gbmV3IEV2ZW50RW1pdHRlcjxGb2N1c0V2ZW50PigpO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmlkJylcbiAgICBob3N0SWQ6IHN0cmluZztcblxuICAgIHR5cGU6IHN0cmluZztcblxuICAgIHZhbGlkYXRpb25IYW5kbGVyU2VydmljZTogVmFsaWRhdGlvbkhhbmRsZXJTZXJ2aWNlO1xuXG4gICAgbW9kZWxfOiBUO1xuXG4gICAgcHJpdmF0ZSBfZXJyb3JzOiBGb3JtRXJyb3JbXTtcblxuICAgIHByaXZhdGUgdmFsaWRhdGlvbkVycm9yc1N1YmplY3RTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgICBwcml2YXRlIHJlZ2lzdGVyTmdNb2RlbFNlcnZpY2U6IFJlZ2lzdGVyTmdNb2RlbFNlcnZpY2U7XG5cbiAgICBwcml2YXRlIHNob3dDbGVhckJ1dHRvbjogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgICBwcml2YXRlIHVzZXJJbnB1dFN1YmplY3QgPSBuZXcgU3ViamVjdDxUPigpO1xuICAgIHByaXZhdGUgdXNlcklucHV0U3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgICBwcml2YXRlIF9kaXNhYmxlZDogYm9vbGVhbjtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLnZhbGlkYXRpb25IYW5kbGVyU2VydmljZSA9IFNlcnZpY2VMb2NhdG9yLmluamVjdG9yLmdldChcbiAgICAgICAgICAgIFZhbGlkYXRpb25IYW5kbGVyU2VydmljZVxuICAgICAgICApO1xuICAgICAgICB0aGlzLnJlZ2lzdGVyTmdNb2RlbFNlcnZpY2UgPSBTZXJ2aWNlTG9jYXRvci5pbmplY3Rvci5nZXQoXG4gICAgICAgICAgICBSZWdpc3Rlck5nTW9kZWxTZXJ2aWNlXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMucmVxdWlyZWQgPSBmYWxzZTtcblxuICAgICAgICB0aGlzLnZhbGlkYXRpb25FcnJvcnNTdWJqZWN0U3Vic2NyaXB0aW9uID0gY29tYmluZUxhdGVzdChbXG4gICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25IYW5kbGVyU2VydmljZS52YWxpZGF0aW9uRXJyb3JzU3ViamVjdCxcbiAgICAgICAgICAgIHRoaXMudmFsaWRhdGlvbkhhbmRsZXJTZXJ2aWNlLnZhbGlkYXRpb25EaXNwbGF5U3ViamVjdFxuICAgICAgICBdKS5zdWJzY3JpYmUodmFsdWVzID0+IHtcbiAgICAgICAgICAgIHRoaXMucmVmcmVzaEVycm9ycyh2YWx1ZXMpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBnZXQgZXJyb3JzKCk6IEZvcm1FcnJvcltdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Vycm9ycz8uc29ydCgoYSwgYikgPT5cbiAgICAgICAgICAgIE9iamVjdEhlbHBlci5zdHJpcEh0bWwoYS5tZXNzYWdlKS5sb2NhbGVDb21wYXJlKFxuICAgICAgICAgICAgICAgIE9iamVjdEhlbHBlci5zdHJpcEh0bWwoYi5tZXNzYWdlKVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldCBtb2RlbCgpOiBUIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubW9kZWxfO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IG1vZGVsKHZhbHVlOiBUKSB7XG4gICAgICAgIHRoaXMub25Nb2RlbENoYW5nZSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9tZW1iZXItb3JkZXJpbmdcbiAgICBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZDtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9kaXNhYmxlZCA9IHZhbHVlO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICAvLyBFbnN1cmVzIHRoYXQgdGhlIGhvc3QgaGFzIGFuIElkIGZvciBpbnN0cnVtZW50YWxpemF0aW9uIG9mIHRoZSBET00gYnkgYXV0b21hdGVkIHRlc3RzLlxuICAgICAgICB0aGlzLmhvc3RJZCA9IHRoaXMuYnVpbGRJZCgpO1xuXG4gICAgICAgIHRoaXMuc2hvd0NsZWFyQnV0dG9uID0gdGhpcy5tb2RlbENoYW5nZVxuICAgICAgICAgICAgLmFzT2JzZXJ2YWJsZSgpXG4gICAgICAgICAgICAucGlwZShtYXAobW9kZWwgPT4gdGhpcy5jbGVhckJ1dHRvbiAmJiAhIW1vZGVsICYmICF0aGlzLl9kaXNhYmxlZCkpO1xuXG4gICAgICAgIHRoaXMudXNlcklucHV0U3Vic2NyaXB0aW9uID0gdGhpcy51c2VySW5wdXRTdWJqZWN0XG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICAvLyBUaGlzIGlzIHVzZWQgdG8gZW5zdXJlIHRoYXQgd2Ugb25seSBjYXRjaCB0aGUgbGF0ZXN0IG9mIG11bHRpcGxlXG4gICAgICAgICAgICAgICAgLy8gcXVpY2sgdXBkYXRlcywgYW5kIHRvIG1ha2Ugc3VyZSB0aGUgdXNlcklucHV0IGlzIGZpcmVkIHdoZW5cbiAgICAgICAgICAgICAgICAvLyB0aGUgY29tcG9uZW50IGlzIGRvbmUgdXBkYXRpbmcuXG4gICAgICAgICAgICAgICAgZGVib3VuY2VUaW1lKDApXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnVzZXJJbnB1dC5lbWl0KHZhbHVlKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy52YWxpZGF0aW9uRXJyb3JzU3ViamVjdFN1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9uRXJyb3JzU3ViamVjdFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMudXNlcklucHV0U3Vic2NyaXB0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLnVzZXJJbnB1dFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnN1YkNvbXBvbmVudHMuY2hhbmdlcy5zdWJzY3JpYmUoKCkgPT5cbiAgICAgICAgICAgIHRoaXMucmVnaXN0ZXJOZ01vZGVsU2VydmljZS51cGRhdGVSZWdpc3RlcmVkTmdNb2RlbHMoKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIG9uTW9kZWxDaGFuZ2UodmFsdWU6IFQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVOZ01vZGVsKHZhbHVlKTtcbiAgICB9XG5cbiAgICBoYW5kbGVDaGFuZ2UodmFsdWU6IFQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy50cmlnZ2VyVXNlcklucHV0KHZhbHVlKTtcbiAgICB9XG5cbiAgICB1cGRhdGVOZ01vZGVsKHZhbHVlOiBUKTogdm9pZCB7XG4gICAgICAgIHRoaXMubW9kZWxfID0gdmFsdWU7XG4gICAgICAgIGlmICghdGhpcy5fZGlzYWJsZWQgfHwgdGhpcy51cGRhdGVNb2RlbFdoZW5EaXNhYmxlZCkge1xuICAgICAgICAgICAgdGhpcy5tb2RlbENoYW5nZS5lbWl0KHZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGhhc0Vycm9yc1RvRGlzcGxheSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMuaGFzRXJyb3JzKCkgJiYgKCF0aGlzLl9kaXNhYmxlZCB8fCB0aGlzLnNob3dFcnJvcldoZW5EaXNhYmxlZClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBoYXNFcnJvcnMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lcnJvcnMgJiYgdGhpcy5fZXJyb3JzLmxlbmd0aCA+IDAgJiYgdGhpcy5pc1ByaXN0aW5lKCk7XG4gICAgfVxuXG4gICAgaGFzSW5oZXJpdEVycm9yRnJvbVBhcmVudCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNFcnJvckluaGVyaXRlZDtcbiAgICB9XG5cbiAgICBpc1ByaXN0aW5lKCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIXRoaXMuaW5wdXRNb2RlbExpc3QgJiYgIXRoaXMuc3ViQ29tcG9uZW50cykge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuaW5wdXRNb2RlbExpc3QgJiYgIXRoaXMuc3ViQ29tcG9uZW50cykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaW5wdXRNb2RlbExpc3QuZmlsdGVyKG0gPT4gIW0ucHJpc3RpbmUpLmxlbmd0aCA9PT0gMDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMuaW5wdXRNb2RlbExpc3QgJiYgdGhpcy5zdWJDb21wb25lbnRzKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zdWJDb21wb25lbnRzLmZpbHRlcihjID0+ICFjLmlzUHJpc3RpbmUoKSkubGVuZ3RoID09PSAwO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLmlucHV0TW9kZWxMaXN0LmZpbHRlcihtID0+ICFtLnByaXN0aW5lKS5sZW5ndGggPT09IDAgJiZcbiAgICAgICAgICAgIHRoaXMuc3ViQ29tcG9uZW50cy5maWx0ZXIoYyA9PiAhYy5pc1ByaXN0aW5lKCkpLmxlbmd0aCA9PT0gMFxuICAgICAgICApO1xuICAgIH1cblxuICAgIG1hcmtBc0RpcnR5KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlucHV0TW9kZWxMaXN0LmZvckVhY2gobmdNb2RlbCA9PiB7XG4gICAgICAgICAgICBuZ01vZGVsLmNvbnRyb2wubWFya0FzRGlydHkoKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuc3ViQ29tcG9uZW50cy5mb3JFYWNoKGMgPT4ge1xuICAgICAgICAgICAgYy5tYXJrQXNEaXJ0eSgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBtYXJrQXNQcmlzdGluZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbnB1dE1vZGVsTGlzdC5mb3JFYWNoKG5nTW9kZWwgPT4ge1xuICAgICAgICAgICAgbmdNb2RlbC5jb250cm9sLm1hcmtBc1ByaXN0aW5lKCk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnN1YkNvbXBvbmVudHMuZm9yRWFjaChjID0+IHtcbiAgICAgICAgICAgIGMubWFya0FzUHJpc3RpbmUoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0TmF0aXZlSW5wdXRMaXN0KCk6IE5nTW9kZWxbXSB7XG4gICAgICAgIGxldCByZXN1bHQ6IE5nTW9kZWxbXSA9IHRoaXMuaW5wdXRNb2RlbExpc3QudG9BcnJheSgpO1xuICAgICAgICB0aGlzLnN1YkNvbXBvbmVudHMuZm9yRWFjaChjID0+IHtcbiAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdC5jb25jYXQoYy5nZXROYXRpdmVJbnB1dExpc3QoKSk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgZ2V0TWVBbmRTdWJDb21wb25lbnRzKCk6IEZvZWhuSW5wdXRDb21wb25lbnQ8YW55PltdIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAgICAgbGV0IHJlc3VsdDogRm9laG5JbnB1dENvbXBvbmVudDxhbnk+W10gPSBbdGhpc107XG4gICAgICAgIGlmICh0aGlzLnN1YkNvbXBvbmVudHMpIHtcbiAgICAgICAgICAgIHRoaXMuc3ViQ29tcG9uZW50cy5mb3JFYWNoKGMgPT4ge1xuICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdC5jb25jYXQoYy5nZXRNZUFuZFN1YkNvbXBvbmVudHMoKSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgcmVmcmVzaEVycm9ycyhyZXN1bHRzOiBhbnlbXSk6IHZvaWQge1xuICAgICAgICBjb25zdCBlcnJvcnM6IEZvcm1FcnJvcltdID0gcmVzdWx0c1swXTtcbiAgICAgICAgY29uc3Qgc2hvdWxkRGlzcGxheUVycm9yczogYm9vbGVhbiA9IHJlc3VsdHNbMV07XG4gICAgICAgIGlmIChzaG91bGREaXNwbGF5RXJyb3JzKSB7XG4gICAgICAgICAgICB0aGlzLl9lcnJvcnMgPSBlcnJvcnMuZmlsdGVyKGUgPT4gZS5uYW1lID09PSB0aGlzLm5hbWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZm9jdXMoKTogdm9pZCB7XG4gICAgICAgIGxldCBlbGVtZW50Q29udGFpbmVyOiBIVE1MRWxlbWVudDtcbiAgICAgICAgaWYgKHRoaXMuaW5wdXRFbGVtZW50ICYmIHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIGVsZW1lbnRDb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcbiAgICAgICAgICAgICAgICB0aGlzLmJ1aWxkSWQoJ0NvbnRhaW5lcicpXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgaWYgKGVsZW1lbnRDb250YWluZXIpIHtcbiAgICAgICAgICAgICAgICAvLyBTY3JvbGwgaW4gdmlldyBzaG91bGQgYmUgZG9uZSBvbiBpbnB1dCBjb250YWluZXJcbiAgICAgICAgICAgICAgICBlbGVtZW50Q29udGFpbmVyLnNjcm9sbEludG9WaWV3KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBGb2N1cyBzaG91bGQgYmUgb24gdGhlIGlucHV0IGl0c2VsZlxuICAgICAgICAgICAgdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgICAgdGhpcy5zdWJDb21wb25lbnRzICYmXG4gICAgICAgICAgICB0aGlzLmdldEZpcnN0SW5wdXRDb21wb25lbnRFbmFibGVkKHRoaXMuc3ViQ29tcG9uZW50cylcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBjb25zdCBpbnB1dENvbXBvbmVudCA9IHRoaXMuZ2V0Rmlyc3RJbnB1dENvbXBvbmVudEVuYWJsZWQoXG4gICAgICAgICAgICAgICAgdGhpcy5zdWJDb21wb25lbnRzXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgZWxlbWVudENvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFxuICAgICAgICAgICAgICAgIGlucHV0Q29tcG9uZW50LmJ1aWxkSWQoJ0NvbnRhaW5lcicpXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgaWYgKGVsZW1lbnRDb250YWluZXIpIHtcbiAgICAgICAgICAgICAgICAvLyBTY3JvbGwgaW4gdmlldyBzaG91bGQgYmUgZG9uZSBvbiBpbnB1dCBjb250YWluZXJcbiAgICAgICAgICAgICAgICBlbGVtZW50Q29udGFpbmVyLnNjcm9sbEludG9WaWV3KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBGb2N1cyBzaG91bGQgYmUgb24gdGhlIGlucHV0IGl0c2VsZlxuICAgICAgICAgICAgaW5wdXRDb21wb25lbnQuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIENhc2UgZm9yIGNvbXBvbmVudCB3aG8gZG8gbm90IGhhdmUgYW55ICcjZW50cnlDb21wb25lbnQnIGluIHRoZWlyIGh0bWwgdGVtcGxhdGUgKGkuZS4gZm9laG4tcmFkaW8sIGZvZWhuLWNoZWNrYm94LC4uLilcbiAgICAgICAgICAgIGVsZW1lbnRDb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcbiAgICAgICAgICAgICAgICB0aGlzLmJ1aWxkSWQoJ0NvbnRhaW5lcicpXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgaWYgKGVsZW1lbnRDb250YWluZXIpIHtcbiAgICAgICAgICAgICAgICAvLyBTY3JvbGwgaW4gdmlldyBzaG91bGQgYmUgZG9uZSBvbiBpbnB1dCBjb250YWluZXJcbiAgICAgICAgICAgICAgICBlbGVtZW50Q29udGFpbmVyLnNjcm9sbEludG9WaWV3KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBlbGVtZW50Tm9kZUxpc3RPZiA9IGVsZW1lbnRDb250YWluZXIucXVlcnlTZWxlY3RvckFsbChcbiAgICAgICAgICAgICAgICBgaW5wdXRbaWRePVwiJHt0aGlzLm5hbWV9XCJdYFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGlmIChlbGVtZW50Tm9kZUxpc3RPZiAmJiBlbGVtZW50Tm9kZUxpc3RPZi5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaW5wdXRFbGVtZW50ID1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5maW5kRmlyc3RIdG1sSW5wdXRFbGVtZW50RW5hYmxlZChlbGVtZW50Tm9kZUxpc3RPZik7XG4gICAgICAgICAgICAgICAgaWYgKGlucHV0RWxlbWVudCkge1xuICAgICAgICAgICAgICAgICAgICAvLyBGb2N1cyBzaG91bGQgYmUgb24gdGhlIGlucHV0IGl0c2VsZlxuICAgICAgICAgICAgICAgICAgICBpbnB1dEVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRNYXhMZW5ndGgoKTogbnVtYmVyIHtcbiAgICAgICAgaWYgKCF0aGlzLm1heGxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIEdFU0RFTV9NQVhfREFUQV9MRU5HVEg7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aGlzLm1heGxlbmd0aCA+IEdFU0RFTV9NQVhfREFUQV9MRU5HVEggJiZcbiAgICAgICAgICAgICF0aGlzLm92ZXJyaWRlR2VzZGVtTWF4bGVuZ3RoXG4gICAgICAgICkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coXG4gICAgICAgICAgICAgICAgYG1heExlbmd0aCBpbiAke3RoaXMubmFtZX0gY2Fubm90IGJlIG1vcmUgdGhhbiAke0dFU0RFTV9NQVhfREFUQV9MRU5HVEh9ICFgXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgcmV0dXJuIEdFU0RFTV9NQVhfREFUQV9MRU5HVEg7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5tYXhsZW5ndGg7XG4gICAgfVxuXG4gICAgYnVpbGRJZChzdWZmaXg6IHN0cmluZyA9ICcnKTogc3RyaW5nIHtcbiAgICAgICAgLy8gVGhlIGJhc2VJZCBpcyBlaXRoZXIgYW4gaWQgZ2l2ZW4gYnkgdGhlIHVzZXIgb3IgdGhlIHZhbHVlIG9mIHRoZSBuYW1lLlxuICAgICAgICAvLyBGb3IgaW50ZWdyYXRpb24gcHVycG9zZXMsIHRoZSBjb250YWluZXIgZm9laG4tKiBtdXN0IGhhdmUgYW4gSWQuXG4gICAgICAgIGNvbnN0IGJhc2VJZCA9IHRoaXMuaWQgfHwgdGhpcy5uYW1lO1xuICAgICAgICBpZiAoIWJhc2VJZCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gYCR7YmFzZUlkfSR7c3VmZml4fWA7XG4gICAgfVxuXG4gICAgYnVpbGRDaGlsZElkKHN1ZmZpeDogc3RyaW5nID0gJycpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5idWlsZElkKGBDaGlsZCR7c3VmZml4fWApO1xuICAgIH1cblxuICAgIGJ1aWxkQ2hpbGROYW1lKHN1ZmZpeDogc3RyaW5nID0gJycpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYCR7dGhpcy5uYW1lfUNoaWxkJHtzdWZmaXh9YDtcbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgb25LZXlkb3duKGtleTogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICAvLyBEbyBub3RoaW5nLCBvdmVycmlkZW4gYnkgc3ViY29tcG9uZW50XG4gICAgfVxuXG4gICAgcmVzZXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBkYXRlTmdNb2RlbChudWxsKTtcbiAgICB9XG5cbiAgICBvblBhc3RlKGU6IENsaXBib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnByZXZlbnRQYXN0ZSA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25CbHVyKGU6IEZvY3VzRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5ibHVySGFuZGxlci5lbWl0KGUpO1xuICAgIH1cblxuICAgIG9uRm9jdXMoZTogRm9jdXNFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLmZvY3VzSGFuZGxlci5lbWl0KGUpO1xuICAgIH1cblxuICAgIG9uQ2xlYXIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBkYXRlTmdNb2RlbChudWxsKTtcbiAgICAgICAgdGhpcy5oYW5kbGVDaGFuZ2UobnVsbCk7XG4gICAgICAgIHRoaXMuZm9jdXMoKTtcbiAgICAgICAgdGhpcy5tYXJrQXNEaXJ0eSgpO1xuICAgIH1cblxuICAgIGRpc3BsYXlDbGVhckJ1dHRvbigpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICAgICAgLy8gVGhpcyBoYXMgdG8gYmUgYW4gb2JzZXJ2YWJsZSB0byByZWFjdCB0byB0aGUgY2hhbmdlIG9mIG1vZGVsIHZhbHVlLlxuICAgICAgICByZXR1cm4gdGhpcy5zaG93Q2xlYXJCdXR0b247XG4gICAgfVxuXG4gICAgZ2V0RGVzY3JpYmVkQnkoKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgaGVscFRleHRJZCA9IHRoaXMuaGVscFRleHQgPyBgJHt0aGlzLmJ1aWxkQ2hpbGRJZCgpfUhlbHBgIDogbnVsbDtcbiAgICAgICAgY29uc3QgZXJyb3JJZCA9IHRoaXMuaGFzRXJyb3JzVG9EaXNwbGF5KClcbiAgICAgICAgICAgID8gYCR7dGhpcy5idWlsZElkKCl9RXJyb3JzQ29udGFpbmVyYFxuICAgICAgICAgICAgOiBudWxsO1xuXG4gICAgICAgIC8vIGFyaWEtZGVzY3JpYmVkYnkgY2FuIGJlIGxpbmtlZCB0byBtdWx0aXBsZSBJZHMgc2VwYXJhdGVkIGJ5IGEgY29tbWEuXG4gICAgICAgIHJldHVybiBbaGVscFRleHRJZCwgZXJyb3JJZF0uZmlsdGVyKGlkID0+ICEhaWQpLmpvaW4oJywnKSB8fCBudWxsO1xuICAgIH1cblxuICAgIGdldEF1dG9Db21wbGV0ZSgpOiBzdHJpbmcge1xuICAgICAgICAvLyByZXRybyBjb21wYXRpYmlsaXR5IChhdXRvY29tcGxldGUgdXNlZCB0byBiZSBhIGJvb2xlYW4pXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXRzLWNvbW1lbnRcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICBpZiAodGhpcy5hdXRvY29tcGxldGUgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICByZXR1cm4gJ29mZic7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10cy1jb21tZW50XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgaWYgKHRoaXMuYXV0b2NvbXBsZXRlID09PSB0cnVlKSB7XG4gICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5hdXRvY29tcGxldGU7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldEZpcnN0SW5wdXRDb21wb25lbnRFbmFibGVkKFxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgICBzdWJDb21wb25lbnRzOiBRdWVyeUxpc3Q8Rm9laG5JbnB1dENvbXBvbmVudDxhbnk+PlxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICk6IEZvZWhuSW5wdXRDb21wb25lbnQ8YW55PiB7XG4gICAgICAgIGNvbnN0IGZvZWhuSW5wdXRDb21wb25lbnRzID0gc3ViQ29tcG9uZW50cy5maWx0ZXIoXG4gICAgICAgICAgICBpdGVtID0+XG4gICAgICAgICAgICAgICAgaXRlbS5pbnB1dEVsZW1lbnQgJiZcbiAgICAgICAgICAgICAgICBpdGVtLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50ICYmXG4gICAgICAgICAgICAgICAgIWl0ZW0uX2Rpc2FibGVkXG4gICAgICAgICk7XG5cbiAgICAgICAgaWYgKCEhZm9laG5JbnB1dENvbXBvbmVudHMgJiYgZm9laG5JbnB1dENvbXBvbmVudHMubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4gZm9laG5JbnB1dENvbXBvbmVudHNbMF07XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZmluZEZpcnN0SHRtbElucHV0RWxlbWVudEVuYWJsZWQoXG4gICAgICAgIGVsZW1lbnROb2RlTGlzdE9mOiBOb2RlTGlzdE9mPEVsZW1lbnQ+XG4gICAgKTogSFRNTElucHV0RWxlbWVudCB7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZWxlbWVudE5vZGVMaXN0T2YubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IGh0bWxJbnB1dEVsZW1lbnQgPSBlbGVtZW50Tm9kZUxpc3RPZi5pdGVtKFxuICAgICAgICAgICAgICAgIGlcbiAgICAgICAgICAgICkgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICAgICAgICAgIGlmICghaHRtbElucHV0RWxlbWVudC5kaXNhYmxlZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBodG1sSW5wdXRFbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgcHJvdGVjdGVkIGlzRW1wdHkoZGF0YTogYW55KTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBkYXRhID09PSBudWxsIHx8IGRhdGEgPT09IHVuZGVmaW5lZCB8fCBkYXRhID09PSAnJztcbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIHByb3RlY3RlZCBpc0VtcHR5V2hlblRyaW1tZWRJZlN0cmluZyhkYXRhOiBhbnkpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHR5cGVvZiBkYXRhID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaXNFbXB0eSghIWRhdGEgPyBkYXRhLnRyaW0oKSA6IGRhdGEpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuaXNFbXB0eShkYXRhKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgdHJpZ2dlclVzZXJJbnB1dCh2YWx1ZTogVCk6IHZvaWQge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICAvLyBJZiB0aGUgY2FsbGJhY2sgaXMgZGVmaW5lZFxuICAgICAgICAgICAgISF0aGlzLnVzZXJJbnB1dCAmJlxuICAgICAgICAgICAgLy8gSWYgdGhlIHZhbHVlIGlzIGFjdHVhbGx5IHNvbWV0aGluZyAoVCBvciBudWxsKVxuICAgICAgICAgICAgdHlwZW9mIHZhbHVlICE9PSAndW5kZWZpbmVkJyAmJlxuICAgICAgICAgICAgLy8gSWYgaW5wdXQgaXNuJ3QgZGlzYWJsZWRcbiAgICAgICAgICAgICF0aGlzLl9kaXNhYmxlZFxuICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMudXNlcklucHV0U3ViamVjdC5uZXh0KHZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
|
|
@@ -15,17 +15,18 @@ import * as i6 from "../../sdk-appinfo/application-info.service";
|
|
|
15
15
|
import * as i7 from "../../sdk-session-info/session-info.service";
|
|
16
16
|
import * as i8 from "@angular/router";
|
|
17
17
|
import * as i9 from "../../sdk-events-logger/sdk-events-logger.service";
|
|
18
|
-
import * as i10 from "
|
|
19
|
-
import * as i11 from "
|
|
20
|
-
import * as i12 from "../../foehn-input/foehn-input-
|
|
21
|
-
import * as i13 from "../../foehn-input/foehn-input-
|
|
22
|
-
import * as i14 from "../../foehn-
|
|
23
|
-
import * as i15 from "../../foehn-
|
|
24
|
-
import * as i16 from "../../foehn-
|
|
25
|
-
import * as i17 from "../../
|
|
26
|
-
import * as i18 from "../../
|
|
18
|
+
import * as i10 from "../../sdk-dictionary/sdk-dictionary.service";
|
|
19
|
+
import * as i11 from "@angular/common";
|
|
20
|
+
import * as i12 from "../../foehn-input/foehn-input-text.component";
|
|
21
|
+
import * as i13 from "../../foehn-input/foehn-input-email.component";
|
|
22
|
+
import * as i14 from "../../foehn-input/foehn-input-phone.component";
|
|
23
|
+
import * as i15 from "../../foehn-icons/foehn-icon-pencil.component";
|
|
24
|
+
import * as i16 from "../../foehn-form/foehn-form.component";
|
|
25
|
+
import * as i17 from "../../foehn-modal/foehn-modal.component";
|
|
26
|
+
import * as i18 from "../../sdk-dictionary/sdk-dictionary.pipe";
|
|
27
|
+
import * as i19 from "../../pipes/date.pipe";
|
|
27
28
|
export class GesdemActionRecoveryRegistrationComponent {
|
|
28
|
-
constructor(actionRecoveryService, validationHandler, foehnPageService, gesdemEventService, gesdemService, appInfoService, sessionInfoService, router, eventsLoggerService) {
|
|
29
|
+
constructor(actionRecoveryService, validationHandler, foehnPageService, gesdemEventService, gesdemService, appInfoService, sessionInfoService, router, eventsLoggerService, dictionaryService) {
|
|
29
30
|
this.actionRecoveryService = actionRecoveryService;
|
|
30
31
|
this.validationHandler = validationHandler;
|
|
31
32
|
this.foehnPageService = foehnPageService;
|
|
@@ -35,6 +36,7 @@ export class GesdemActionRecoveryRegistrationComponent {
|
|
|
35
36
|
this.sessionInfoService = sessionInfoService;
|
|
36
37
|
this.router = router;
|
|
37
38
|
this.eventsLoggerService = eventsLoggerService;
|
|
39
|
+
this.dictionaryService = dictionaryService;
|
|
38
40
|
this.dispatchFormErrors = false;
|
|
39
41
|
this.triggerOnPageChange = false;
|
|
40
42
|
this.model = new RepriseInfo();
|
|
@@ -174,6 +176,9 @@ export class GesdemActionRecoveryRegistrationComponent {
|
|
|
174
176
|
this.modalTrigger.nativeElement.focus();
|
|
175
177
|
}
|
|
176
178
|
}
|
|
179
|
+
getPluralMarker(count) {
|
|
180
|
+
return this.dictionaryService.getPluralMarkerSync(count);
|
|
181
|
+
}
|
|
177
182
|
canContinueLaterForEtape(currentEtapeInfo, isConnectedCyber, isConnectedIamAcv) {
|
|
178
183
|
if (isConnectedIamAcv) {
|
|
179
184
|
return false;
|
|
@@ -195,13 +200,13 @@ export class GesdemActionRecoveryRegistrationComponent {
|
|
|
195
200
|
this.validationHandler.updateErrors([]);
|
|
196
201
|
}
|
|
197
202
|
}
|
|
198
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: GesdemActionRecoveryRegistrationComponent, deps: [{ token: i1.GesdemActionRecoveryService }, { token: i2.ValidationHandlerService }, { token: i3.FoehnPageService }, { token: i4.GesdemEventService }, { token: i5.GesdemHandlerService }, { token: i6.ApplicationInfoService }, { token: i7.SessionInfo }, { token: i8.Router }, { token: i9.SdkEventsLoggerService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
199
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: GesdemActionRecoveryRegistrationComponent, selector: "gesdem-action-recovery-registration", inputs: { dispatchFormErrors: "dispatchFormErrors", continueLaterLabel: "continueLaterLabel", continueLaterAlreadyRegisteredLabel: "continueLaterAlreadyRegisteredLabel", continueLaterConnectedLabel: "continueLaterConnectedLabel", triggerOnPageChange: "triggerOnPageChange" }, viewQueries: [{ propertyName: "modalTrigger", first: true, predicate: ["modalTrigger"], descendants: true }, { propertyName: "form", first: true, predicate: FoehnFormComponent, descendants: true }], ngImport: i0, template: "<button\n type=\"button\"\n id=\"continueLaterButton\"\n class=\"btn btn-link pe-0 ps-0 no-text-transform\"\n *ngIf=\"canContinueLater | async\"\n [innerHTML]=\"modalTriggerLabel | async\"\n (click)=\"saveAndOpenModal()\"\n #modalTrigger\n></button>\n\n<ng-container *ngIf=\"currentInfoReprise | async as currentInfo\">\n <div\n class=\"small\"\n [innerHTML]=\"\n 'gesdem-action-recovery-registration.current-info.preview'\n | fromDictionary\n : {\n recoveryMail: currentInfo.email,\n lastRegistration:\n (currentInfo.lastUpdate | displayDate)\n }\n \"\n ></div>\n</ng-container>\n\n<foehn-modal\n *ngIf=\"currentEtapeInfo | async as etapeInfo\"\n id=\"action-recovery-registration-modal\"\n [modalSize]=\"!(isConnectedCyber | async) ? 'modal-lg' : 'modal-md'\"\n [modalHeaderText]=\"\n 'gesdem-action-recovery-registration.modalHeaderText' | fromDictionary\n \"\n [isModalVisible]=\"isModalVisible\"\n (isModalVisibleChange)=\"updateVisibilityStatus($event)\"\n>\n <ng-container *ngIf=\"!!(isConnectedCyber | async)\">\n <span\n [innerHTML]=\"\n 'gesdem-action-recovery-registration.connected.info'\n | fromDictionary\n \"\n ></span>\n\n <a href=\"/100002/demandes/search/MINE/INITIAL\">\n <foehn-icon-pencil\n class=\"h3\"\n aria-hidden=\"true\"\n [title]=\"\n 'gesdem-action-recovery-registration.connected.info.draft-link-text'\n | fromDictionary\n \"\n ></foehn-icon-pencil>\n <span\n [innerHTML]=\"\n 'gesdem-action-recovery-registration.connected.info.draft-link-text'\n | fromDictionary\n \"\n ></span>\n </a>\n </ng-container>\n\n <ng-container *ngIf=\"!(isConnectedCyber | async)\">\n <ng-container\n *ngIf=\"\n currentInfoReprise | async as currentInfo;\n else noCurrentInfo\n \"\n >\n <div\n class=\"alert alert-info\"\n *ngIf=\"!mailSent\"\n [innerHTML]=\"\n 'gesdem-action-recovery-registration.not-connected.current-info'\n | fromDictionary\n : {\n lastRegistration:\n (currentInfo.lastUpdate | displayDate),\n draftDemRetentionDaysPublic:\n etapeInfo.draftDemRetentionDaysPublic?.toString()\n }\n \"\n ></div>\n\n <div\n class=\"alert alert-info\"\n *ngIf=\"mailSent\"\n [innerHTML]=\"\n 'gesdem-action-recovery-registration.not-connected.info.sent'\n | fromDictionary\n : {\n recoveryMail: currentInfo.email,\n recoveryMobile: currentInfo.mobile,\n draftDemRetentionDaysPublic:\n etapeInfo.draftDemRetentionDaysPublic?.toString()\n }\n \"\n ></div>\n </ng-container>\n\n <foehn-form *ngIf=\"!mailSent\" [shouldDisplayAlertSummary]=\"false\">\n <foehn-input-email\n [label]=\"\n 'gesdem-action-recovery-registration.not-connected.email.label'\n | fromDictionary\n \"\n [helpText]=\"\n 'gesdem-action-recovery-registration.not-connected.email.help-text'\n | fromDictionary\n \"\n [(model)]=\"model.email\"\n name=\"email\"\n [required]=\"true\"\n ></foehn-input-email>\n\n <foehn-input-phone\n [label]=\"\n 'gesdem-action-recovery-registration.not-connected.mobile.label'\n | fromDictionary\n \"\n [acceptInternational]=\"true\"\n [acceptMobilePhone]=\"true\"\n [acceptPhone]=\"false\"\n [(model)]=\"model.mobile\"\n name=\"mobile\"\n [required]=\"true\"\n ></foehn-input-phone>\n\n <foehn-input-text\n [label]=\"\n 'gesdem-action-recovery-registration.not-connected.reference-interne.label'\n | fromDictionary\n \"\n [helpText]=\"\n 'gesdem-action-recovery-registration.not-connected.reference-interne.help-text'\n | fromDictionary\n \"\n [(model)]=\"model.referenceInterne\"\n name=\"referenceInterne\"\n [required]=\"false\"\n ></foehn-input-text>\n </foehn-form>\n </ng-container>\n\n <div modal-footer class=\"w-100\">\n <div class=\"d-md-flex\">\n <div class=\"ms-md-auto me-md-2 mb-2 mt-2\">\n <button\n id=\"continueLaterModalCancelButton\"\n type=\"button\"\n (click)=\"close()\"\n class=\"btn btn-secondary w-100\"\n [innerHTML]=\"\n 'gesdem-action-recovery-registration.cancel.button'\n | fromDictionary\n \"\n ></button>\n </div>\n <div\n *ngIf=\"!(isConnectedCyber | async)\"\n class=\"ms-md-0 me-md-2 mb-2 mt-2\"\n >\n <button\n id=\"continueLaterModalSaveButton\"\n type=\"submit\"\n (click)=\"sendAndClose()\"\n class=\"btn btn-success w-100\"\n *ngIf=\"!mailSent\"\n [innerHTML]=\"\n 'gesdem-action-recovery-registration.save.button'\n | fromDictionary\n \"\n ></button>\n </div>\n </div>\n </div>\n</foehn-modal>\n\n<ng-template #noCurrentInfo>\n <div\n class=\"alert alert-info\"\n [innerHTML]=\"\n 'gesdem-action-recovery-registration.not-connected.not-registered.info'\n | fromDictionary\n : {\n draftDemRetentionDaysPublic: (\n currentEtapeInfo | async\n ).draftDemRetentionDaysPublic?.toString()\n }\n \"\n ></div>\n</ng-template>\n", styles: [".no-text-transform{text-transform:none;cursor:pointer}:host ::ng-deep foehn-icon-pencil .svg-inline--fa{color:#4a4a4b!important;margin-right:10px}\n"], dependencies: [{ kind: "directive", type:
|
|
203
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: GesdemActionRecoveryRegistrationComponent, deps: [{ token: i1.GesdemActionRecoveryService }, { token: i2.ValidationHandlerService }, { token: i3.FoehnPageService }, { token: i4.GesdemEventService }, { token: i5.GesdemHandlerService }, { token: i6.ApplicationInfoService }, { token: i7.SessionInfo }, { token: i8.Router }, { token: i9.SdkEventsLoggerService }, { token: i10.SdkDictionaryService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
204
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: GesdemActionRecoveryRegistrationComponent, selector: "gesdem-action-recovery-registration", inputs: { dispatchFormErrors: "dispatchFormErrors", continueLaterLabel: "continueLaterLabel", continueLaterAlreadyRegisteredLabel: "continueLaterAlreadyRegisteredLabel", continueLaterConnectedLabel: "continueLaterConnectedLabel", triggerOnPageChange: "triggerOnPageChange" }, viewQueries: [{ propertyName: "modalTrigger", first: true, predicate: ["modalTrigger"], descendants: true }, { propertyName: "form", first: true, predicate: FoehnFormComponent, descendants: true }], ngImport: i0, template: "<button\n type=\"button\"\n id=\"continueLaterButton\"\n class=\"btn btn-link pe-0 ps-0 no-text-transform\"\n *ngIf=\"canContinueLater | async\"\n [innerHTML]=\"modalTriggerLabel | async\"\n (click)=\"saveAndOpenModal()\"\n #modalTrigger\n></button>\n\n<ng-container *ngIf=\"currentInfoReprise | async as currentInfo\">\n <div\n class=\"small\"\n [innerHTML]=\"\n 'gesdem-action-recovery-registration.current-info.preview'\n | fromDictionary\n : {\n recoveryMail: currentInfo.email,\n lastRegistration:\n (currentInfo.lastUpdate | displayDate)\n }\n \"\n ></div>\n</ng-container>\n\n<foehn-modal\n *ngIf=\"currentEtapeInfo | async as etapeInfo\"\n id=\"action-recovery-registration-modal\"\n [modalSize]=\"!(isConnectedCyber | async) ? 'modal-lg' : 'modal-md'\"\n [modalHeaderText]=\"\n 'gesdem-action-recovery-registration.modalHeaderText' | fromDictionary\n \"\n [isModalVisible]=\"isModalVisible\"\n (isModalVisibleChange)=\"updateVisibilityStatus($event)\"\n>\n <ng-container *ngIf=\"!!(isConnectedCyber | async)\">\n <span\n [innerHTML]=\"\n 'gesdem-action-recovery-registration.connected.info'\n | fromDictionary\n \"\n ></span>\n\n <a href=\"/100002/demandes/search/MINE/INITIAL\">\n <foehn-icon-pencil\n class=\"h3\"\n aria-hidden=\"true\"\n [title]=\"\n 'gesdem-action-recovery-registration.connected.info.draft-link-text'\n | fromDictionary\n \"\n ></foehn-icon-pencil>\n <span\n [innerHTML]=\"\n 'gesdem-action-recovery-registration.connected.info.draft-link-text'\n | fromDictionary\n \"\n ></span>\n </a>\n </ng-container>\n\n <ng-container *ngIf=\"!(isConnectedCyber | async)\">\n <ng-container\n *ngIf=\"\n currentInfoReprise | async as currentInfo;\n else noCurrentInfo\n \"\n >\n <div\n class=\"alert alert-info\"\n *ngIf=\"!mailSent\"\n [innerHTML]=\"\n 'gesdem-action-recovery-registration.not-connected.current-info'\n | fromDictionary\n : {\n lastRegistration:\n (currentInfo.lastUpdate | displayDate),\n draftDemRetentionDaysPublic:\n etapeInfo.draftDemRetentionDaysPublic?.toString(),\n plural: getPluralMarker(\n etapeInfo.draftDemRetentionDaysPublic\n )\n }\n \"\n ></div>\n\n <div\n class=\"alert alert-info\"\n *ngIf=\"mailSent\"\n [innerHTML]=\"\n 'gesdem-action-recovery-registration.not-connected.info.sent'\n | fromDictionary\n : {\n recoveryMail: currentInfo.email,\n recoveryMobile: currentInfo.mobile,\n draftDemRetentionDaysPublic:\n etapeInfo.draftDemRetentionDaysPublic?.toString(),\n plural: getPluralMarker(\n etapeInfo.draftDemRetentionDaysPublic\n )\n }\n \"\n ></div>\n </ng-container>\n\n <foehn-form *ngIf=\"!mailSent\" [shouldDisplayAlertSummary]=\"false\">\n <foehn-input-email\n [label]=\"\n 'gesdem-action-recovery-registration.not-connected.email.label'\n | fromDictionary\n \"\n [helpText]=\"\n 'gesdem-action-recovery-registration.not-connected.email.help-text'\n | fromDictionary\n \"\n [(model)]=\"model.email\"\n name=\"email\"\n [required]=\"true\"\n ></foehn-input-email>\n\n <foehn-input-phone\n [label]=\"\n 'gesdem-action-recovery-registration.not-connected.mobile.label'\n | fromDictionary\n \"\n [acceptInternational]=\"true\"\n [acceptMobilePhone]=\"true\"\n [acceptPhone]=\"false\"\n [(model)]=\"model.mobile\"\n name=\"mobile\"\n [required]=\"true\"\n ></foehn-input-phone>\n\n <foehn-input-text\n [label]=\"\n 'gesdem-action-recovery-registration.not-connected.reference-interne.label'\n | fromDictionary\n \"\n [helpText]=\"\n 'gesdem-action-recovery-registration.not-connected.reference-interne.help-text'\n | fromDictionary\n \"\n [(model)]=\"model.referenceInterne\"\n name=\"referenceInterne\"\n [required]=\"false\"\n ></foehn-input-text>\n </foehn-form>\n </ng-container>\n\n <div modal-footer class=\"w-100\">\n <div class=\"d-md-flex\">\n <div class=\"ms-md-auto me-md-2 mb-2 mt-2\">\n <button\n id=\"continueLaterModalCancelButton\"\n type=\"button\"\n (click)=\"close()\"\n class=\"btn btn-secondary w-100\"\n [innerHTML]=\"\n 'gesdem-action-recovery-registration.cancel.button'\n | fromDictionary\n \"\n ></button>\n </div>\n <div\n *ngIf=\"!(isConnectedCyber | async)\"\n class=\"ms-md-0 me-md-2 mb-2 mt-2\"\n >\n <button\n id=\"continueLaterModalSaveButton\"\n type=\"submit\"\n (click)=\"sendAndClose()\"\n class=\"btn btn-success w-100\"\n *ngIf=\"!mailSent\"\n [innerHTML]=\"\n 'gesdem-action-recovery-registration.save.button'\n | fromDictionary\n \"\n ></button>\n </div>\n </div>\n </div>\n</foehn-modal>\n\n<ng-template #noCurrentInfo>\n <div\n class=\"alert alert-info\"\n [innerHTML]=\"\n 'gesdem-action-recovery-registration.not-connected.not-registered.info'\n | fromDictionary\n : {\n draftDemRetentionDaysPublic: (\n currentEtapeInfo | async\n ).draftDemRetentionDaysPublic?.toString(),\n plural: getPluralMarker(\n (currentEtapeInfo | async)\n .draftDemRetentionDaysPublic\n )\n }\n \"\n ></div>\n</ng-template>\n", styles: [".no-text-transform{text-transform:none;cursor:pointer}:host ::ng-deep foehn-icon-pencil .svg-inline--fa{color:#4a4a4b!important;margin-right:10px}\n"], dependencies: [{ kind: "directive", type: i11.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i12.FoehnInputTextComponent, selector: "foehn-input-text", inputs: ["numberOnly"] }, { kind: "component", type: i13.FoehnInputEmailComponent, selector: "foehn-input-email" }, { kind: "component", type: i14.FoehnInputPhoneComponent, selector: "foehn-input-phone", inputs: ["acceptInternational", "acceptMobilePhone", "acceptPhone"] }, { kind: "component", type: i15.FoehnIconPencilComponent, selector: "foehn-icon-pencil" }, { kind: "component", type: i16.FoehnFormComponent, selector: "foehn-form", inputs: ["shouldDisplayAlertSummary"] }, { kind: "component", type: i17.FoehnModalComponent, selector: "foehn-modal", inputs: ["id", "name", "modalSize", "modalBodyText", "modalHeaderText", "closeable", "modalTriggerHtmlElement", "isModalVisible"], outputs: ["isModalVisibleChange"] }, { kind: "pipe", type: i11.AsyncPipe, name: "async" }, { kind: "pipe", type: i18.SdkDictionaryPipe, name: "fromDictionary" }, { kind: "pipe", type: i19.DisplayDatePipe, name: "displayDate" }] }); }
|
|
200
205
|
}
|
|
201
206
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: GesdemActionRecoveryRegistrationComponent, decorators: [{
|
|
202
207
|
type: Component,
|
|
203
|
-
args: [{ selector: 'gesdem-action-recovery-registration', template: "<button\n type=\"button\"\n id=\"continueLaterButton\"\n class=\"btn btn-link pe-0 ps-0 no-text-transform\"\n *ngIf=\"canContinueLater | async\"\n [innerHTML]=\"modalTriggerLabel | async\"\n (click)=\"saveAndOpenModal()\"\n #modalTrigger\n></button>\n\n<ng-container *ngIf=\"currentInfoReprise | async as currentInfo\">\n <div\n class=\"small\"\n [innerHTML]=\"\n 'gesdem-action-recovery-registration.current-info.preview'\n | fromDictionary\n : {\n recoveryMail: currentInfo.email,\n lastRegistration:\n (currentInfo.lastUpdate | displayDate)\n }\n \"\n ></div>\n</ng-container>\n\n<foehn-modal\n *ngIf=\"currentEtapeInfo | async as etapeInfo\"\n id=\"action-recovery-registration-modal\"\n [modalSize]=\"!(isConnectedCyber | async) ? 'modal-lg' : 'modal-md'\"\n [modalHeaderText]=\"\n 'gesdem-action-recovery-registration.modalHeaderText' | fromDictionary\n \"\n [isModalVisible]=\"isModalVisible\"\n (isModalVisibleChange)=\"updateVisibilityStatus($event)\"\n>\n <ng-container *ngIf=\"!!(isConnectedCyber | async)\">\n <span\n [innerHTML]=\"\n 'gesdem-action-recovery-registration.connected.info'\n | fromDictionary\n \"\n ></span>\n\n <a href=\"/100002/demandes/search/MINE/INITIAL\">\n <foehn-icon-pencil\n class=\"h3\"\n aria-hidden=\"true\"\n [title]=\"\n 'gesdem-action-recovery-registration.connected.info.draft-link-text'\n | fromDictionary\n \"\n ></foehn-icon-pencil>\n <span\n [innerHTML]=\"\n 'gesdem-action-recovery-registration.connected.info.draft-link-text'\n | fromDictionary\n \"\n ></span>\n </a>\n </ng-container>\n\n <ng-container *ngIf=\"!(isConnectedCyber | async)\">\n <ng-container\n *ngIf=\"\n currentInfoReprise | async as currentInfo;\n else noCurrentInfo\n \"\n >\n <div\n class=\"alert alert-info\"\n *ngIf=\"!mailSent\"\n [innerHTML]=\"\n 'gesdem-action-recovery-registration.not-connected.current-info'\n | fromDictionary\n : {\n lastRegistration:\n (currentInfo.lastUpdate | displayDate),\n draftDemRetentionDaysPublic:\n etapeInfo.draftDemRetentionDaysPublic?.toString()\n }\n \"\n ></div>\n\n <div\n class=\"alert alert-info\"\n *ngIf=\"mailSent\"\n [innerHTML]=\"\n 'gesdem-action-recovery-registration.not-connected.info.sent'\n | fromDictionary\n : {\n recoveryMail: currentInfo.email,\n recoveryMobile: currentInfo.mobile,\n draftDemRetentionDaysPublic:\n etapeInfo.draftDemRetentionDaysPublic?.toString()\n }\n \"\n ></div>\n </ng-container>\n\n <foehn-form *ngIf=\"!mailSent\" [shouldDisplayAlertSummary]=\"false\">\n <foehn-input-email\n [label]=\"\n 'gesdem-action-recovery-registration.not-connected.email.label'\n | fromDictionary\n \"\n [helpText]=\"\n 'gesdem-action-recovery-registration.not-connected.email.help-text'\n | fromDictionary\n \"\n [(model)]=\"model.email\"\n name=\"email\"\n [required]=\"true\"\n ></foehn-input-email>\n\n <foehn-input-phone\n [label]=\"\n 'gesdem-action-recovery-registration.not-connected.mobile.label'\n | fromDictionary\n \"\n [acceptInternational]=\"true\"\n [acceptMobilePhone]=\"true\"\n [acceptPhone]=\"false\"\n [(model)]=\"model.mobile\"\n name=\"mobile\"\n [required]=\"true\"\n ></foehn-input-phone>\n\n <foehn-input-text\n [label]=\"\n 'gesdem-action-recovery-registration.not-connected.reference-interne.label'\n | fromDictionary\n \"\n [helpText]=\"\n 'gesdem-action-recovery-registration.not-connected.reference-interne.help-text'\n | fromDictionary\n \"\n [(model)]=\"model.referenceInterne\"\n name=\"referenceInterne\"\n [required]=\"false\"\n ></foehn-input-text>\n </foehn-form>\n </ng-container>\n\n <div modal-footer class=\"w-100\">\n <div class=\"d-md-flex\">\n <div class=\"ms-md-auto me-md-2 mb-2 mt-2\">\n <button\n id=\"continueLaterModalCancelButton\"\n type=\"button\"\n (click)=\"close()\"\n class=\"btn btn-secondary w-100\"\n [innerHTML]=\"\n 'gesdem-action-recovery-registration.cancel.button'\n | fromDictionary\n \"\n ></button>\n </div>\n <div\n *ngIf=\"!(isConnectedCyber | async)\"\n class=\"ms-md-0 me-md-2 mb-2 mt-2\"\n >\n <button\n id=\"continueLaterModalSaveButton\"\n type=\"submit\"\n (click)=\"sendAndClose()\"\n class=\"btn btn-success w-100\"\n *ngIf=\"!mailSent\"\n [innerHTML]=\"\n 'gesdem-action-recovery-registration.save.button'\n | fromDictionary\n \"\n ></button>\n </div>\n </div>\n </div>\n</foehn-modal>\n\n<ng-template #noCurrentInfo>\n <div\n class=\"alert alert-info\"\n [innerHTML]=\"\n 'gesdem-action-recovery-registration.not-connected.not-registered.info'\n | fromDictionary\n : {\n draftDemRetentionDaysPublic: (\n currentEtapeInfo | async\n ).draftDemRetentionDaysPublic?.toString()\n }\n \"\n ></div>\n</ng-template>\n", styles: [".no-text-transform{text-transform:none;cursor:pointer}:host ::ng-deep foehn-icon-pencil .svg-inline--fa{color:#4a4a4b!important;margin-right:10px}\n"] }]
|
|
204
|
-
}], ctorParameters: () => [{ type: i1.GesdemActionRecoveryService }, { type: i2.ValidationHandlerService }, { type: i3.FoehnPageService }, { type: i4.GesdemEventService }, { type: i5.GesdemHandlerService }, { type: i6.ApplicationInfoService }, { type: i7.SessionInfo }, { type: i8.Router }, { type: i9.SdkEventsLoggerService }], propDecorators: { dispatchFormErrors: [{
|
|
208
|
+
args: [{ selector: 'gesdem-action-recovery-registration', template: "<button\n type=\"button\"\n id=\"continueLaterButton\"\n class=\"btn btn-link pe-0 ps-0 no-text-transform\"\n *ngIf=\"canContinueLater | async\"\n [innerHTML]=\"modalTriggerLabel | async\"\n (click)=\"saveAndOpenModal()\"\n #modalTrigger\n></button>\n\n<ng-container *ngIf=\"currentInfoReprise | async as currentInfo\">\n <div\n class=\"small\"\n [innerHTML]=\"\n 'gesdem-action-recovery-registration.current-info.preview'\n | fromDictionary\n : {\n recoveryMail: currentInfo.email,\n lastRegistration:\n (currentInfo.lastUpdate | displayDate)\n }\n \"\n ></div>\n</ng-container>\n\n<foehn-modal\n *ngIf=\"currentEtapeInfo | async as etapeInfo\"\n id=\"action-recovery-registration-modal\"\n [modalSize]=\"!(isConnectedCyber | async) ? 'modal-lg' : 'modal-md'\"\n [modalHeaderText]=\"\n 'gesdem-action-recovery-registration.modalHeaderText' | fromDictionary\n \"\n [isModalVisible]=\"isModalVisible\"\n (isModalVisibleChange)=\"updateVisibilityStatus($event)\"\n>\n <ng-container *ngIf=\"!!(isConnectedCyber | async)\">\n <span\n [innerHTML]=\"\n 'gesdem-action-recovery-registration.connected.info'\n | fromDictionary\n \"\n ></span>\n\n <a href=\"/100002/demandes/search/MINE/INITIAL\">\n <foehn-icon-pencil\n class=\"h3\"\n aria-hidden=\"true\"\n [title]=\"\n 'gesdem-action-recovery-registration.connected.info.draft-link-text'\n | fromDictionary\n \"\n ></foehn-icon-pencil>\n <span\n [innerHTML]=\"\n 'gesdem-action-recovery-registration.connected.info.draft-link-text'\n | fromDictionary\n \"\n ></span>\n </a>\n </ng-container>\n\n <ng-container *ngIf=\"!(isConnectedCyber | async)\">\n <ng-container\n *ngIf=\"\n currentInfoReprise | async as currentInfo;\n else noCurrentInfo\n \"\n >\n <div\n class=\"alert alert-info\"\n *ngIf=\"!mailSent\"\n [innerHTML]=\"\n 'gesdem-action-recovery-registration.not-connected.current-info'\n | fromDictionary\n : {\n lastRegistration:\n (currentInfo.lastUpdate | displayDate),\n draftDemRetentionDaysPublic:\n etapeInfo.draftDemRetentionDaysPublic?.toString(),\n plural: getPluralMarker(\n etapeInfo.draftDemRetentionDaysPublic\n )\n }\n \"\n ></div>\n\n <div\n class=\"alert alert-info\"\n *ngIf=\"mailSent\"\n [innerHTML]=\"\n 'gesdem-action-recovery-registration.not-connected.info.sent'\n | fromDictionary\n : {\n recoveryMail: currentInfo.email,\n recoveryMobile: currentInfo.mobile,\n draftDemRetentionDaysPublic:\n etapeInfo.draftDemRetentionDaysPublic?.toString(),\n plural: getPluralMarker(\n etapeInfo.draftDemRetentionDaysPublic\n )\n }\n \"\n ></div>\n </ng-container>\n\n <foehn-form *ngIf=\"!mailSent\" [shouldDisplayAlertSummary]=\"false\">\n <foehn-input-email\n [label]=\"\n 'gesdem-action-recovery-registration.not-connected.email.label'\n | fromDictionary\n \"\n [helpText]=\"\n 'gesdem-action-recovery-registration.not-connected.email.help-text'\n | fromDictionary\n \"\n [(model)]=\"model.email\"\n name=\"email\"\n [required]=\"true\"\n ></foehn-input-email>\n\n <foehn-input-phone\n [label]=\"\n 'gesdem-action-recovery-registration.not-connected.mobile.label'\n | fromDictionary\n \"\n [acceptInternational]=\"true\"\n [acceptMobilePhone]=\"true\"\n [acceptPhone]=\"false\"\n [(model)]=\"model.mobile\"\n name=\"mobile\"\n [required]=\"true\"\n ></foehn-input-phone>\n\n <foehn-input-text\n [label]=\"\n 'gesdem-action-recovery-registration.not-connected.reference-interne.label'\n | fromDictionary\n \"\n [helpText]=\"\n 'gesdem-action-recovery-registration.not-connected.reference-interne.help-text'\n | fromDictionary\n \"\n [(model)]=\"model.referenceInterne\"\n name=\"referenceInterne\"\n [required]=\"false\"\n ></foehn-input-text>\n </foehn-form>\n </ng-container>\n\n <div modal-footer class=\"w-100\">\n <div class=\"d-md-flex\">\n <div class=\"ms-md-auto me-md-2 mb-2 mt-2\">\n <button\n id=\"continueLaterModalCancelButton\"\n type=\"button\"\n (click)=\"close()\"\n class=\"btn btn-secondary w-100\"\n [innerHTML]=\"\n 'gesdem-action-recovery-registration.cancel.button'\n | fromDictionary\n \"\n ></button>\n </div>\n <div\n *ngIf=\"!(isConnectedCyber | async)\"\n class=\"ms-md-0 me-md-2 mb-2 mt-2\"\n >\n <button\n id=\"continueLaterModalSaveButton\"\n type=\"submit\"\n (click)=\"sendAndClose()\"\n class=\"btn btn-success w-100\"\n *ngIf=\"!mailSent\"\n [innerHTML]=\"\n 'gesdem-action-recovery-registration.save.button'\n | fromDictionary\n \"\n ></button>\n </div>\n </div>\n </div>\n</foehn-modal>\n\n<ng-template #noCurrentInfo>\n <div\n class=\"alert alert-info\"\n [innerHTML]=\"\n 'gesdem-action-recovery-registration.not-connected.not-registered.info'\n | fromDictionary\n : {\n draftDemRetentionDaysPublic: (\n currentEtapeInfo | async\n ).draftDemRetentionDaysPublic?.toString(),\n plural: getPluralMarker(\n (currentEtapeInfo | async)\n .draftDemRetentionDaysPublic\n )\n }\n \"\n ></div>\n</ng-template>\n", styles: [".no-text-transform{text-transform:none;cursor:pointer}:host ::ng-deep foehn-icon-pencil .svg-inline--fa{color:#4a4a4b!important;margin-right:10px}\n"] }]
|
|
209
|
+
}], ctorParameters: () => [{ type: i1.GesdemActionRecoveryService }, { type: i2.ValidationHandlerService }, { type: i3.FoehnPageService }, { type: i4.GesdemEventService }, { type: i5.GesdemHandlerService }, { type: i6.ApplicationInfoService }, { type: i7.SessionInfo }, { type: i8.Router }, { type: i9.SdkEventsLoggerService }, { type: i10.SdkDictionaryService }], propDecorators: { dispatchFormErrors: [{
|
|
205
210
|
type: Input
|
|
206
211
|
}], continueLaterLabel: [{
|
|
207
212
|
type: Input
|
|
@@ -218,4 +223,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
218
223
|
type: ViewChild,
|
|
219
224
|
args: [FoehnFormComponent]
|
|
220
225
|
}] } });
|
|
221
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VzZGVtLWFjdGlvbi1yZWNvdmVyeS1yZWdpc3RyYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL2dlc2RlbS1hY3Rpb24tcmVjb3ZlcnkvZ2VzZGVtLWFjdGlvbi1yZWNvdmVyeS1yZWdpc3RyYXRpb24vZ2VzZGVtLWFjdGlvbi1yZWNvdmVyeS1yZWdpc3RyYXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL2dlc2RlbS1hY3Rpb24tcmVjb3ZlcnkvZ2VzZGVtLWFjdGlvbi1yZWNvdmVyeS1yZWdpc3RyYXRpb24vZ2VzZGVtLWFjdGlvbi1yZWNvdmVyeS1yZWdpc3RyYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFFVCxLQUFLLEVBR0wsU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBYyxFQUFFLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQzFFLE9BQU8sRUFDSCxvQkFBb0IsRUFDcEIsTUFBTSxFQUNOLEtBQUssRUFDTCxHQUFHLEVBQ0gsU0FBUyxFQUNULEdBQUcsRUFDTixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBTTNFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUt0RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBUTlDLE1BQU0sT0FBTyx5Q0FBeUM7SUFvQ2xELFlBQ1kscUJBQWtELEVBQ2xELGlCQUEyQyxFQUMz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QkFBZ0IsRUFBRSxDQUFDO1lBQ3BCLE9BQU8sZ0JBQWdCLElBQUksZ0JBQWdCLENBQUMsZUFBZSxDQUFDO1FBQ2hFLENBQUM7UUFFRCwyRUFBMkU7UUFDM0UsUUFBUTtRQUNSLE9BQU8sQ0FDSCxnQkFBZ0I7WUFDaEIsZ0JBQWdCLENBQUMsYUFBYTtnQkFDMUIsZ0JBQWdCLENBQUMsa0JBQWtCLENBQzFDLENBQUM7SUFDTixDQUFDO0lBRU8sV0FBVztRQUNmLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsaUJBQWlCLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDakQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM1QyxDQUFDO0lBQ0wsQ0FBQzsrR0FyUlEseUNBQXlDO21HQUF6Qyx5Q0FBeUMsb2VBcUJ2QyxrQkFBa0IsZ0RDM0RqQyxnOU5BK0xBOzs0RkR6SmEseUNBQXlDO2tCQU5yRCxTQUFTOytCQUVJLHFDQUFxQzttV0FRL0Msa0JBQWtCO3NCQURqQixLQUFLO2dCQUlOLGtCQUFrQjtzQkFEakIsS0FBSztnQkFJTixtQ0FBbUM7c0JBRGxDLEtBQUs7Z0JBSU4sMkJBQTJCO3NCQUQxQixLQUFLO2dCQUlOLG1CQUFtQjtzQkFEbEIsS0FBSztnQkFJTixZQUFZO3NCQURYLFNBQVM7dUJBQUMsY0FBYztnQkFJekIsSUFBSTtzQkFESCxTQUFTO3VCQUFDLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uU3RhcnQsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBtZXJnZSwgT2JzZXJ2YWJsZSwgb2YsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCxcbiAgICBmaWx0ZXIsXG4gICAgZmlyc3QsXG4gICAgbWFwLFxuICAgIHN3aXRjaE1hcCxcbiAgICB0YXBcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBGb2VobkZvcm1Db21wb25lbnQgfSBmcm9tICcuLi8uLi9mb2Vobi1mb3JtL2ZvZWhuLWZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IEZvZWhuUGFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9mb2Vobi1wYWdlL2ZvZWhuLXBhZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBHZXNkZW1FdmVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi9nZXNkZW0vZ2VzZGVtLWV2ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgR2VzZGVtSGFuZGxlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9nZXNkZW0vZ2VzZGVtLWhhbmRsZXIuc2VydmljZSc7XG5pbXBvcnQgeyBFdGFwZUluZm8gfSBmcm9tICcuLi8uLi9zZGstYXBwaW5mby9hcHBsaWNhdGlvbi1pbmZvJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uSW5mb1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZGstYXBwaW5mby9hcHBsaWNhdGlvbi1pbmZvLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2RrRXZlbnRUeXBlIH0gZnJvbSAnLi4vLi4vc2RrLWV2ZW50cy1sb2dnZXIvc2RrLWV2ZW50LXR5cGUnO1xuaW1wb3J0IHsgU2RrRXZlbnRzTG9nZ2VyU2VydmljZSB9IGZyb20gJy4uLy4uL3Nkay1ldmVudHMtbG9nZ2VyL3Nkay1ldmVudHMtbG9nZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2Vzc2lvbkluZm8gfSBmcm9tICcuLi8uLi9zZGstc2Vzc2lvbi1pbmZvL3Nlc3Npb24taW5mby5zZXJ2aWNlJztcbmltcG9ydCB7IFZhbGlkYXRpb25IYW5kbGVyU2VydmljZSB9IGZyb20gJy4uLy4uL3ZhbGlkYXRpb24vdmFsaWRhdGlvbi1oYW5kbGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgR2VzZGVtQWN0aW9uUmVjb3ZlcnlTZXJ2aWNlIH0gZnJvbSAnLi4vZ2VzZGVtLWFjdGlvbi1yZWNvdmVyeS5zZXJ2aWNlJztcbmltcG9ydCB7IFJlcHJpc2VJbmZvIH0gZnJvbSAnLi4vcmVwcmlzZS1pbmZvJztcblxuQENvbXBvbmVudCh7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogJ2dlc2RlbS1hY3Rpb24tcmVjb3ZlcnktcmVnaXN0cmF0aW9uJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZ2VzZGVtLWFjdGlvbi1yZWNvdmVyeS1yZWdpc3RyYXRpb24uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2dlc2RlbS1hY3Rpb24tcmVjb3ZlcnktcmVnaXN0cmF0aW9uLmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBHZXNkZW1BY3Rpb25SZWNvdmVyeVJlZ2lzdHJhdGlvbkNvbXBvbmVudFxuICAgIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3lcbntcbiAgICBASW5wdXQoKVxuICAgIGRpc3BhdGNoRm9ybUVycm9ycyA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBjb250aW51ZUxhdGVyTGFiZWw6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgY29udGludWVMYXRlckFscmVhZHlSZWdpc3RlcmVkTGFiZWw6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgY29udGludWVMYXRlckNvbm5lY3RlZExhYmVsOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIHRyaWdnZXJPblBhZ2VDaGFuZ2UgPSBmYWxzZTtcblxuICAgIEBWaWV3Q2hpbGQoJ21vZGFsVHJpZ2dlcicpXG4gICAgbW9kYWxUcmlnZ2VyOiBFbGVtZW50UmVmO1xuXG4gICAgQFZpZXdDaGlsZChGb2VobkZvcm1Db21wb25lbnQpXG4gICAgZm9ybTogRm9laG5Gb3JtQ29tcG9uZW50O1xuXG4gICAgbW9kZWwgPSBuZXcgUmVwcmlzZUluZm8oKTtcbiAgICBtYWlsU2VudCA9IGZhbHNlO1xuXG4gICAgY2FuQ29udGludWVMYXRlcjogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgICBpc0Nvbm5lY3RlZEN5YmVyOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAgIGN1cnJlbnRJbmZvUmVwcmlzZTogT2JzZXJ2YWJsZTxSZXByaXNlSW5mbz47XG4gICAgY3VycmVudEV0YXBlSW5mbzogT2JzZXJ2YWJsZTxFdGFwZUluZm8+O1xuICAgIHRyaWdnZXJBdXRvbWF0aWNhbGx5U3ViOiBTdWJzY3JpcHRpb247XG4gICAgbW9kYWxUcmlnZ2VyTGFiZWw6IE9ic2VydmFibGU8c3RyaW5nPjtcblxuICAgIHByaXZhdGUgaXNWaXNpYmxlID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBhY3Rpb25SZWNvdmVyeVNlcnZpY2U6IEdlc2RlbUFjdGlvblJlY292ZXJ5U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSB2YWxpZGF0aW9uSGFuZGxlcjogVmFsaWRhdGlvbkhhbmRsZXJTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGZvZWhuUGFnZVNlcnZpY2U6IEZvZWhuUGFnZVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgZ2VzZGVtRXZlbnRTZXJ2aWNlOiBHZXNkZW1FdmVudFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgZ2VzZGVtU2VydmljZTogR2VzZGVtSGFuZGxlclNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgYXBwSW5mb1NlcnZpY2U6IEFwcGxpY2F0aW9uSW5mb1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgc2Vzc2lvbkluZm9TZXJ2aWNlOiBTZXNzaW9uSW5mbyxcbiAgICAgICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICAgICAgcHJpdmF0ZSBldmVudHNMb2dnZXJTZXJ2aWNlOiBTZGtFdmVudHNMb2dnZXJTZXJ2aWNlXG4gICAgKSB7XG4gICAgICAgIHRoaXMuY3VycmVudEluZm9SZXByaXNlID0gbWVyZ2UoXG4gICAgICAgICAgICBvZih1bmRlZmluZWQpLFxuICAgICAgICAgICAgdGhpcy5nZXNkZW1FdmVudFNlcnZpY2UuZm9ybUluaXRpYWxpemF0aW9uT2JzZXJ2YWJsZSgpXG4gICAgICAgICkucGlwZShtYXAoKCkgPT4gdGhpcy5nZXNkZW1TZXJ2aWNlLmxhc3RSZXNwb25zZT8ubWV0YT8uaW5mb1JlcHJpc2UpKTtcblxuICAgICAgICB0aGlzLmN1cnJlbnRFdGFwZUluZm8gPSB0aGlzLmFwcEluZm9TZXJ2aWNlLmN1cnJlbnRFdGFwZUluZm87XG4gICAgfVxuXG4gICAgZ2V0IGlzTW9kYWxWaXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pc1Zpc2libGU7XG4gICAgfVxuXG4gICAgZ2V0IHJlZmVyZW5jZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXNkZW1TZXJ2aWNlLmxhc3RSZXNwb25zZT8ubWV0YT8ucmVmZXJlbmNlO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzQ29ubmVjdGVkQ3liZXIgPSB0aGlzLnNlc3Npb25JbmZvU2VydmljZS5kYXRhLnBpcGUoXG4gICAgICAgICAgICBtYXAoc2Vzc2lvbkluZm8gPT4gISFzZXNzaW9uSW5mbyAmJiAhIXNlc3Npb25JbmZvLmNvbnRleHQpXG4gICAgICAgICk7XG5cbiAgICAgICAgY29uc3QgaXNDb25uZWN0ZWRJYW1BY3YgPSB0aGlzLnNlc3Npb25JbmZvU2VydmljZS5kYXRhLnBpcGUoXG4gICAgICAgICAgICBtYXAoc2Vzc2lvbkluZm8gPT4gISFzZXNzaW9uSW5mbyAmJiAhc2Vzc2lvbkluZm8uY29udGV4dClcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLmNhbkNvbnRpbnVlTGF0ZXIgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudEV0YXBlSW5mbyxcbiAgICAgICAgICAgIHRoaXMuaXNDb25uZWN0ZWRDeWJlcixcbiAgICAgICAgICAgIGlzQ29ubmVjdGVkSWFtQWN2XG4gICAgICAgIF0pLnBpcGUoXG4gICAgICAgICAgICBtYXAoKFtjdXJyZW50RXRhcGVJbmZvLCBpc0Nvbm5lY3RlZEN5YmVyLCBjb25uZWN0ZWRJYW1BY3ZdKSA9PlxuICAgICAgICAgICAgICAgIHRoaXMuY2FuQ29udGludWVMYXRlckZvckV0YXBlKFxuICAgICAgICAgICAgICAgICAgICBjdXJyZW50RXRhcGVJbmZvLFxuICAgICAgICAgICAgICAgICAgICBpc0Nvbm5lY3RlZEN5YmVyLFxuICAgICAgICAgICAgICAgICAgICBjb25uZWN0ZWRJYW1BY3ZcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5tb2RhbFRyaWdnZXJMYWJlbCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50SW5mb1JlcHJpc2UucGlwZShcbiAgICAgICAgICAgICAgICBtYXAocmVwcmlzZUluZm8gPT4gISFyZXByaXNlSW5mbyksXG4gICAgICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHRoaXMuaXNDb25uZWN0ZWRDeWJlclxuICAgICAgICBdKS5waXBlKFxuICAgICAgICAgICAgbWFwKChbaGFzSW5mb1JlcHJpc2UsIGlzQ29ubmVjdGVkQ3liZXJdKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGlzQ29ubmVjdGVkQ3liZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY29udGludWVMYXRlckNvbm5lY3RlZExhYmVsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoaGFzSW5mb1JlcHJpc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY29udGludWVMYXRlckFscmVhZHlSZWdpc3RlcmVkTGFiZWw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbnRpbnVlTGF0ZXJMYWJlbDtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG5cbiAgICAgICAgaWYgKHRoaXMudHJpZ2dlck9uUGFnZUNoYW5nZSkge1xuICAgICAgICAgICAgbGV0IHJlY292ZXJ5U3VnZ2VzdGVkID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLnRyaWdnZXJBdXRvbWF0aWNhbGx5U3ViID0gY29tYmluZUxhdGVzdChbXG4gICAgICAgICAgICAgICAgdGhpcy5jYW5Db250aW51ZUxhdGVyLnBpcGUoZmlyc3QoKSksXG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50SW5mb1JlcHJpc2UucGlwZShcbiAgICAgICAgICAgICAgICAgICAgbWFwKHJlcHJpc2VJbmZvID0+ICEhcmVwcmlzZUluZm8pLFxuICAgICAgICAgICAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICB0aGlzLmlzQ29ubmVjdGVkQ3liZXIsXG4gICAgICAgICAgICAgICAgdGhpcy5yb3V0ZXIuZXZlbnRzLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIGZpbHRlcihlID0+IGUgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uU3RhcnQpXG4gICAgICAgICAgICAgICAgKVxuXG4gICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJ4anMtYW5ndWxhci9wcmVmZXItYXN5bmMtcGlwZVxuICAgICAgICAgICAgXSkuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgIChbY2FuQ29udGludWVMYXRlciwgaGFzSW5mb1JlcHJpc2UsIGlzQ29ubmVjdGVkQ3liZXJdKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpc0Nvbm5lY3RlZEN5YmVyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBjb25zdCBoYXNCZWVuU2F2ZWQgPVxuICAgICAgICAgICAgICAgICAgICAgICAgISF0aGlzLmdlc2RlbVNlcnZpY2UubGFzdFJlc3BvbnNlPy5tZXRhPy5yZWZlcmVuY2U7XG4gICAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhbkNvbnRpbnVlTGF0ZXIgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICFoYXNJbmZvUmVwcmlzZSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgaGFzQmVlblNhdmVkICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAhcmVjb3ZlcnlTdWdnZXN0ZWRcbiAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBzdG9wIGxpc3RlbmluZyB0byByb3V0ZXIgZXZlbnQgb2YgdHlwZSBOYXZpZ2F0aW9uU3RhcnQsIHNpbmNlIHdlIHdpbGwgdHJpZ2dlciBvbmUgb24gbmV4dCBsaW5lXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRyaWdnZXJBdXRvbWF0aWNhbGx5U3ViLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBwcmV2ZW50IG5hdmlnYXRpb24gdG8gbmV4dCBwYWdlXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9wZW5Nb2RhbChmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWNvdmVyeVN1Z2dlc3RlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMudHJpZ2dlckF1dG9tYXRpY2FsbHlTdWI/LnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgc2F2ZUFuZE9wZW5Nb2RhbCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jbGVhckVycm9ycygpO1xuICAgICAgICB0aGlzLmdlc2RlbUV2ZW50U2VydmljZVxuICAgICAgICAgICAgLmZvcm1TZW50T2JzZXJ2YWJsZSgpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBmaXJzdCgpLFxuICAgICAgICAgICAgICAgIGZpbHRlcihyZXNwID0+ICEhcmVzcC5tZXRhLnJlZmVyZW5jZSksXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMuaXNDb25uZWN0ZWRDeWJlcilcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByeGpzLWFuZ3VsYXIvcHJlZmVyLWFzeW5jLXBpcGVcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoaXNDb25uZWN0ZWRDeWJlciA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5vcGVuTW9kYWwoaXNDb25uZWN0ZWRDeWJlcik7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmZvZWhuUGFnZVNlcnZpY2UucmVxdWVzdEZvcm1TYXZlKCk7XG4gICAgfVxuXG4gICAgb3Blbk1vZGFsKGlzQ29ubmVjdGVkQ3liZXI6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jbGVhckVycm9ycygpO1xuICAgICAgICB0aGlzLm1haWxTZW50ID0gZmFsc2U7XG4gICAgICAgIHRoaXMuaXNWaXNpYmxlID0gdHJ1ZTtcblxuICAgICAgICB0aGlzLmV2ZW50c0xvZ2dlclNlcnZpY2UuYWRkRXZlbnQoU2RrRXZlbnRUeXBlLlJFQ09WRVJZX01PREFMX09QRU5FRCk7XG5cbiAgICAgICAgaWYgKCFpc0Nvbm5lY3RlZEN5YmVyKSB7XG4gICAgICAgICAgICBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgICAgICAgICB0aGlzLmFjdGlvblJlY292ZXJ5U2VydmljZS5nZXREZWZhdWx0UmVjb3ZlcnlWYWx1ZShcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWZlcmVuY2VcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudEluZm9SZXByaXNlXG4gICAgICAgICAgICBdKSAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcnhqcy1hbmd1bGFyL3ByZWZlci1hc3luYy1waXBlXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoW2RlZmF1bHRSZXByaXNlSW5mbywgY3VycmVudFJlcHJpc2VJbmZvXSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm1vZGVsID0gY3VycmVudFJlcHJpc2VJbmZvIHx8IGRlZmF1bHRSZXByaXNlSW5mbztcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMubW9kZWwgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY2xvc2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2xlYXJFcnJvcnMoKTtcbiAgICAgICAgdGhpcy51cGRhdGVWaXNpYmlsaXR5U3RhdHVzKGZhbHNlKTtcbiAgICB9XG5cbiAgICBzZW5kQW5kQ2xvc2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYWN0aW9uUmVjb3ZlcnlTZXJ2aWNlXG4gICAgICAgICAgICAucmVnaXN0ZXJGb3JSZWNvdmVyeSh0aGlzLnJlZmVyZW5jZSwgdGhpcy5tb2RlbClcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHRhcChmb3JtUmVjb3ZlcnlFcnJvcnMgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm0ucmVzZXQoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9uSGFuZGxlci5zaG91bGREaXNwbGF5RXJyb3JzKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5kaXNwYXRjaEZvcm1FcnJvcnMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudmFsaWRhdGlvbkhhbmRsZXIudXBkYXRlRXJyb3JzKFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5mb3JtUmVjb3ZlcnlFcnJvcnMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4udGhpcy5nZXNkZW1TZXJ2aWNlLmxhc3RSZXNwb25zZS5lcnJvcnNcbiAgICAgICAgICAgICAgICAgICAgICAgIF0pO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9uSGFuZGxlci51cGRhdGVFcnJvcnMoZm9ybVJlY292ZXJ5RXJyb3JzKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybS5mb2N1c0ZpcnN0SW5FcnJvcigpO1xuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlZ2lzdHJhdGlvblN1Y2Nlc3NmdWxsID0gIWZvcm1SZWNvdmVyeUVycm9ycy5sZW5ndGg7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubWFpbFNlbnQgPSByZWdpc3RyYXRpb25TdWNjZXNzZnVsbDtcblxuICAgICAgICAgICAgICAgICAgICBpZiAocmVnaXN0cmF0aW9uU3VjY2Vzc2Z1bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZXZlbnRzTG9nZ2VyU2VydmljZS5hZGRFdmVudChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTZGtFdmVudFR5cGUuUkVDT1ZFUllfUkVHSVNURVJFRFxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBmb3JtIGNvdWxkIGhhdmUgYmVlbiB1cGRhdGVkIGJ5IHRoZSBiYWNrZW5kIG9uIHJlY292ZXJ5IHJlZ2lzdHJhdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXNkZW1TZXJ2aWNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnJldHJpZXZlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlZmVyZW5jZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kaXNwYXRjaEZvcm1FcnJvcnNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJ4anMtYW5ndWxhci9wcmVmZXItYXN5bmMtcGlwZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcnhqcy1hbmd1bGFyL3ByZWZlci1hc3luYy1waXBlXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgdXBkYXRlVmlzaWJpbGl0eVN0YXR1cyhzdGF0dXM6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgLy8gU3RvcmUgdGhlIHByZXZpb3VzIHZhbHVlIHRvIGhhbmRsZSB0cmFuc2l0aW9ucyBmcm9tIG9uZSBzdGF0ZSB0byBhbm90aGVyLlxuICAgICAgICBjb25zdCB3YXNPcGVuID0gdGhpcy5pc1Zpc2libGU7XG5cbiAgICAgICAgLy8gSW4gY2FzZSB0aGUgbW9kYWwgaXMgY2xvc2VkIGJ5IGFub3RoZXIgbWVhbi5cbiAgICAgICAgdGhpcy5pc1Zpc2libGUgPSBzdGF0dXM7XG5cbiAgICAgICAgLy8gRm9jdXMgYmFjayBvbiB0aGUgdHJpZ2dlci4gTm8gbmVlZCBmb3IgYSBzZXRUaW1lb3V0IGFzIHRoZSB0cmlnZ2VyIHNob3VsZCBzdGlsbCBiZSBpbiB0aGUgRE9NLlxuICAgICAgICAvLyBPbmx5IGRvZXMgaXQgd2hlbiB0aGUgbW9kYWwgaXMgY2xvc2VkIGZyb20gYSBvcGVuIHN0YXRlIHRvIGF2b2lkIHRvIHNldFxuICAgICAgICAvLyB0aGUgZm9jdXMgd2hlbiB0aGUgcGFnZSBsb2Fkcy5cbiAgICAgICAgaWYgKHdhc09wZW4gJiYgIXRoaXMuaXNWaXNpYmxlICYmIHRoaXMubW9kYWxUcmlnZ2VyKSB7XG4gICAgICAgICAgICB0aGlzLm1vZGFsVHJpZ2dlci5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGNhbkNvbnRpbnVlTGF0ZXJGb3JFdGFwZShcbiAgICAgICAgY3VycmVudEV0YXBlSW5mbzogRXRhcGVJbmZvLFxuICAgICAgICBpc0Nvbm5lY3RlZEN5YmVyOiBib29sZWFuLFxuICAgICAgICBpc0Nvbm5lY3RlZElhbUFjdjogYm9vbGVhblxuICAgICk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoaXNDb25uZWN0ZWRJYW1BY3YpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIElmIG5vdCBjb25uZWN0ZWQsIHRha2UgdGhlIFwicmVwcmlzZVBvc3NpYmxlXCIgZmxhZyBmcm9tIENhdFByZXN0XG4gICAgICAgIC8vIGludG8gYWNjb3VudC5cbiAgICAgICAgaWYgKCFpc0Nvbm5lY3RlZEN5YmVyKSB7XG4gICAgICAgICAgICByZXR1cm4gY3VycmVudEV0YXBlSW5mbyAmJiBjdXJyZW50RXRhcGVJbmZvLnJlcHJpc2VQb3NzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIElmIGNvbm5lY3RlZCwgb25seSBkaXNwbGF5IHRoZSBidXR0b24gaWYgdGhlIGN1cnJlbnQgc3RlcCBpZiB0aGUgaW5pdGlhbFxuICAgICAgICAvLyBzdGVwLlxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgY3VycmVudEV0YXBlSW5mbyAmJlxuICAgICAgICAgICAgY3VycmVudEV0YXBlSW5mby5pZE1ldGllckV0YXBlID09PVxuICAgICAgICAgICAgICAgIGN1cnJlbnRFdGFwZUluZm8uaWRNZXRpZXJQcmVzdGF0aW9uXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjbGVhckVycm9ycygpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmRpc3BhdGNoRm9ybUVycm9ycykge1xuICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9uSGFuZGxlci5zaG91bGREaXNwbGF5RXJyb3JzKHRydWUpO1xuICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9uSGFuZGxlci51cGRhdGVFcnJvcnMoW10pO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGJ1dHRvblxuICAgIHR5cGU9XCJidXR0b25cIlxuICAgIGlkPVwiY29udGludWVMYXRlckJ1dHRvblwiXG4gICAgY2xhc3M9XCJidG4gYnRuLWxpbmsgcGUtMCBwcy0wIG5vLXRleHQtdHJhbnNmb3JtXCJcbiAgICAqbmdJZj1cImNhbkNvbnRpbnVlTGF0ZXIgfCBhc3luY1wiXG4gICAgW2lubmVySFRNTF09XCJtb2RhbFRyaWdnZXJMYWJlbCB8IGFzeW5jXCJcbiAgICAoY2xpY2spPVwic2F2ZUFuZE9wZW5Nb2RhbCgpXCJcbiAgICAjbW9kYWxUcmlnZ2VyXG4+PC9idXR0b24+XG5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJjdXJyZW50SW5mb1JlcHJpc2UgfCBhc3luYyBhcyBjdXJyZW50SW5mb1wiPlxuICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJzbWFsbFwiXG4gICAgICAgIFtpbm5lckhUTUxdPVwiXG4gICAgICAgICAgICAnZ2VzZGVtLWFjdGlvbi1yZWNvdmVyeS1yZWdpc3RyYXRpb24uY3VycmVudC1pbmZvLnByZXZpZXcnXG4gICAgICAgICAgICAgICAgfCBmcm9tRGljdGlvbmFyeVxuICAgICAgICAgICAgICAgICAgICA6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmVjb3ZlcnlNYWlsOiBjdXJyZW50SW5mby5lbWFpbCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbGFzdFJlZ2lzdHJhdGlvbjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjdXJyZW50SW5mby5sYXN0VXBkYXRlIHwgZGlzcGxheURhdGUpXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICBcIlxuICAgID48L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuXG48Zm9laG4tbW9kYWxcbiAgICAqbmdJZj1cImN1cnJlbnRFdGFwZUluZm8gfCBhc3luYyBhcyBldGFwZUluZm9cIlxuICAgIGlkPVwiYWN0aW9uLXJlY292ZXJ5LXJlZ2lzdHJhdGlvbi1tb2RhbFwiXG4gICAgW21vZGFsU2l6ZV09XCIhKGlzQ29ubmVjdGVkQ3liZXIgfCBhc3luYykgPyAnbW9kYWwtbGcnIDogJ21vZGFsLW1kJ1wiXG4gICAgW21vZGFsSGVhZGVyVGV4dF09XCJcbiAgICAgICAgJ2dlc2RlbS1hY3Rpb24tcmVjb3ZlcnktcmVnaXN0cmF0aW9uLm1vZGFsSGVhZGVyVGV4dCcgfCBmcm9tRGljdGlvbmFyeVxuICAgIFwiXG4gICAgW2lzTW9kYWxWaXNpYmxlXT1cImlzTW9kYWxWaXNpYmxlXCJcbiAgICAoaXNNb2RhbFZpc2libGVDaGFuZ2UpPVwidXBkYXRlVmlzaWJpbGl0eVN0YXR1cygkZXZlbnQpXCJcbj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiISEoaXNDb25uZWN0ZWRDeWJlciB8IGFzeW5jKVwiPlxuICAgICAgICA8c3BhblxuICAgICAgICAgICAgW2lubmVySFRNTF09XCJcbiAgICAgICAgICAgICAgICAnZ2VzZGVtLWFjdGlvbi1yZWNvdmVyeS1yZWdpc3RyYXRpb24uY29ubmVjdGVkLmluZm8nXG4gICAgICAgICAgICAgICAgICAgIHwgZnJvbURpY3Rpb25hcnlcbiAgICAgICAgICAgIFwiXG4gICAgICAgID48L3NwYW4+XG5cbiAgICAgICAgPGEgaHJlZj1cIi8xMDAwMDIvZGVtYW5kZXMvc2VhcmNoL01JTkUvSU5JVElBTFwiPlxuICAgICAgICAgICAgPGZvZWhuLWljb24tcGVuY2lsXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJoM1wiXG4gICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBbdGl0bGVdPVwiXG4gICAgICAgICAgICAgICAgICAgICdnZXNkZW0tYWN0aW9uLXJlY292ZXJ5LXJlZ2lzdHJhdGlvbi5jb25uZWN0ZWQuaW5mby5kcmFmdC1saW5rLXRleHQnXG4gICAgICAgICAgICAgICAgICAgICAgICB8IGZyb21EaWN0aW9uYXJ5XG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgID48L2ZvZWhuLWljb24tcGVuY2lsPlxuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cIlxuICAgICAgICAgICAgICAgICAgICAnZ2VzZGVtLWFjdGlvbi1yZWNvdmVyeS1yZWdpc3RyYXRpb24uY29ubmVjdGVkLmluZm8uZHJhZnQtbGluay10ZXh0J1xuICAgICAgICAgICAgICAgICAgICAgICAgfCBmcm9tRGljdGlvbmFyeVxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICA+PC9zcGFuPlxuICAgICAgICA8L2E+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIShpc0Nvbm5lY3RlZEN5YmVyIHwgYXN5bmMpXCI+XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgY3VycmVudEluZm9SZXByaXNlIHwgYXN5bmMgYXMgY3VycmVudEluZm87XG4gICAgICAgICAgICAgICAgZWxzZSBub0N1cnJlbnRJbmZvXG4gICAgICAgICAgICBcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJhbGVydCBhbGVydC1pbmZvXCJcbiAgICAgICAgICAgICAgICAqbmdJZj1cIiFtYWlsU2VudFwiXG4gICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJcbiAgICAgICAgICAgICAgICAgICAgJ2dlc2RlbS1hY3Rpb24tcmVjb3ZlcnktcmVnaXN0cmF0aW9uLm5vdC1jb25uZWN0ZWQuY3VycmVudC1pbmZvJ1xuICAgICAgICAgICAgICAgICAgICAgICAgfCBmcm9tRGljdGlvbmFyeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhc3RSZWdpc3RyYXRpb246XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjdXJyZW50SW5mby5sYXN0VXBkYXRlIHwgZGlzcGxheURhdGUpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRyYWZ0RGVtUmV0ZW50aW9uRGF5c1B1YmxpYzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXRhcGVJbmZvLmRyYWZ0RGVtUmV0ZW50aW9uRGF5c1B1YmxpYz8udG9TdHJpbmcoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICA+PC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cImFsZXJ0IGFsZXJ0LWluZm9cIlxuICAgICAgICAgICAgICAgICpuZ0lmPVwibWFpbFNlbnRcIlxuICAgICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwiXG4gICAgICAgICAgICAgICAgICAgICdnZXNkZW0tYWN0aW9uLXJlY292ZXJ5LXJlZ2lzdHJhdGlvbi5ub3QtY29ubmVjdGVkLmluZm8uc2VudCdcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgZnJvbURpY3Rpb25hcnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWNvdmVyeU1haWw6IGN1cnJlbnRJbmZvLmVtYWlsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlY292ZXJ5TW9iaWxlOiBjdXJyZW50SW5mby5tb2JpbGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHJhZnREZW1SZXRlbnRpb25EYXlzUHVibGljOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldGFwZUluZm8uZHJhZnREZW1SZXRlbnRpb25EYXlzUHVibGljPy50b1N0cmluZygpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgID48L2Rpdj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPGZvZWhuLWZvcm0gKm5nSWY9XCIhbWFpbFNlbnRcIiBbc2hvdWxkRGlzcGxheUFsZXJ0U3VtbWFyeV09XCJmYWxzZVwiPlxuICAgICAgICAgICAgPGZvZWhuLWlucHV0LWVtYWlsXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cIlxuICAgICAgICAgICAgICAgICAgICAnZ2VzZGVtLWFjdGlvbi1yZWNvdmVyeS1yZWdpc3RyYXRpb24ubm90LWNvbm5lY3RlZC5lbWFpbC5sYWJlbCdcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgZnJvbURpY3Rpb25hcnlcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgIFtoZWxwVGV4dF09XCJcbiAgICAgICAgICAgICAgICAgICAgJ2dlc2RlbS1hY3Rpb24tcmVjb3ZlcnktcmVnaXN0cmF0aW9uLm5vdC1jb25uZWN0ZWQuZW1haWwuaGVscC10ZXh0J1xuICAgICAgICAgICAgICAgICAgICAgICAgfCBmcm9tRGljdGlvbmFyeVxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgWyhtb2RlbCldPVwibW9kZWwuZW1haWxcIlxuICAgICAgICAgICAgICAgIG5hbWU9XCJlbWFpbFwiXG4gICAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cInRydWVcIlxuICAgICAgICAgICAgPjwvZm9laG4taW5wdXQtZW1haWw+XG5cbiAgICAgICAgICAgIDxmb2Vobi1pbnB1dC1waG9uZVxuICAgICAgICAgICAgICAgIFtsYWJlbF09XCJcbiAgICAgICAgICAgICAgICAgICAgJ2dlc2RlbS1hY3Rpb24tcmVjb3ZlcnktcmVnaXN0cmF0aW9uLm5vdC1jb25uZWN0ZWQubW9iaWxlLmxhYmVsJ1xuICAgICAgICAgICAgICAgICAgICAgICAgfCBmcm9tRGljdGlvbmFyeVxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgW2FjY2VwdEludGVybmF0aW9uYWxdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgW2FjY2VwdE1vYmlsZVBob25lXT1cInRydWVcIlxuICAgICAgICAgICAgICAgIFthY2NlcHRQaG9uZV09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgWyhtb2RlbCldPVwibW9kZWwubW9iaWxlXCJcbiAgICAgICAgICAgICAgICBuYW1lPVwibW9iaWxlXCJcbiAgICAgICAgICAgICAgICBbcmVxdWlyZWRdPVwidHJ1ZVwiXG4gICAgICAgICAgICA+PC9mb2Vobi1pbnB1dC1waG9uZT5cblxuICAgICAgICAgICAgPGZvZWhuLWlucHV0LXRleHRcbiAgICAgICAgICAgICAgICBbbGFiZWxdPVwiXG4gICAgICAgICAgICAgICAgICAgICdnZXNkZW0tYWN0aW9uLXJlY292ZXJ5LXJlZ2lzdHJhdGlvbi5ub3QtY29ubmVjdGVkLnJlZmVyZW5jZS1pbnRlcm5lLmxhYmVsJ1xuICAgICAgICAgICAgICAgICAgICAgICAgfCBmcm9tRGljdGlvbmFyeVxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgW2hlbHBUZXh0XT1cIlxuICAgICAgICAgICAgICAgICAgICAnZ2VzZGVtLWFjdGlvbi1yZWNvdmVyeS1yZWdpc3RyYXRpb24ubm90LWNvbm5lY3RlZC5yZWZlcmVuY2UtaW50ZXJuZS5oZWxwLXRleHQnXG4gICAgICAgICAgICAgICAgICAgICAgICB8IGZyb21EaWN0aW9uYXJ5XG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICBbKG1vZGVsKV09XCJtb2RlbC5yZWZlcmVuY2VJbnRlcm5lXCJcbiAgICAgICAgICAgICAgICBuYW1lPVwicmVmZXJlbmNlSW50ZXJuZVwiXG4gICAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cImZhbHNlXCJcbiAgICAgICAgICAgID48L2ZvZWhuLWlucHV0LXRleHQ+XG4gICAgICAgIDwvZm9laG4tZm9ybT5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxkaXYgbW9kYWwtZm9vdGVyIGNsYXNzPVwidy0xMDBcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImQtbWQtZmxleFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1zLW1kLWF1dG8gbWUtbWQtMiBtYi0yIG10LTJcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGlkPVwiY29udGludWVMYXRlck1vZGFsQ2FuY2VsQnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjbG9zZSgpXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeSB3LTEwMFwiXG4gICAgICAgICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAnZ2VzZGVtLWFjdGlvbi1yZWNvdmVyeS1yZWdpc3RyYXRpb24uY2FuY2VsLmJ1dHRvbidcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGZyb21EaWN0aW9uYXJ5XG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgKm5nSWY9XCIhKGlzQ29ubmVjdGVkQ3liZXIgfCBhc3luYylcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwibXMtbWQtMCBtZS1tZC0yIG1iLTIgbXQtMlwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBpZD1cImNvbnRpbnVlTGF0ZXJNb2RhbFNhdmVCdXR0b25cIlxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwic3VibWl0XCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbmRBbmRDbG9zZSgpXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXN1Y2Nlc3Mgdy0xMDBcIlxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiFtYWlsU2VudFwiXG4gICAgICAgICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAnZ2VzZGVtLWFjdGlvbi1yZWNvdmVyeS1yZWdpc3RyYXRpb24uc2F2ZS5idXR0b24nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBmcm9tRGljdGlvbmFyeVxuICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZm9laG4tbW9kYWw+XG5cbjxuZy10ZW1wbGF0ZSAjbm9DdXJyZW50SW5mbz5cbiAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiYWxlcnQgYWxlcnQtaW5mb1wiXG4gICAgICAgIFtpbm5lckhUTUxdPVwiXG4gICAgICAgICAgICAnZ2VzZGVtLWFjdGlvbi1yZWNvdmVyeS1yZWdpc3RyYXRpb24ubm90LWNvbm5lY3RlZC5ub3QtcmVnaXN0ZXJlZC5pbmZvJ1xuICAgICAgICAgICAgICAgIHwgZnJvbURpY3Rpb25hcnlcbiAgICAgICAgICAgICAgICAgICAgOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRyYWZ0RGVtUmV0ZW50aW9uRGF5c1B1YmxpYzogKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudEV0YXBlSW5mbyB8IGFzeW5jXG4gICAgICAgICAgICAgICAgICAgICAgICAgICkuZHJhZnREZW1SZXRlbnRpb25EYXlzUHVibGljPy50b1N0cmluZygpXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICBcIlxuICAgID48L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
226
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VzZGVtLWFjdGlvbi1yZWNvdmVyeS1yZWdpc3RyYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL2dlc2RlbS1hY3Rpb24tcmVjb3ZlcnkvZ2VzZGVtLWFjdGlvbi1yZWNvdmVyeS1yZWdpc3RyYXRpb24vZ2VzZGVtLWFjdGlvbi1yZWNvdmVyeS1yZWdpc3RyYXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL2dlc2RlbS1hY3Rpb24tcmVjb3ZlcnkvZ2VzZGVtLWFjdGlvbi1yZWNvdmVyeS1yZWdpc3RyYXRpb24vZ2VzZGVtLWFjdGlvbi1yZWNvdmVyeS1yZWdpc3RyYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFFVCxLQUFLLEVBR0wsU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBYyxFQUFFLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQzFFLE9BQU8sRUFDSCxvQkFBb0IsRUFDcEIsTUFBTSxFQUNOLEtBQUssRUFDTCxHQUFHLEVBQ0gsU0FBUyxFQUNULEdBQUcsRUFDTixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBTzNFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUt0RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVE5QyxNQUFNLE9BQU8seUNBQXlDO0lBb0NsRCxZQUNZLHFCQUFrRCxFQUNsRCxpQkFBMkMsRUFD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QixnQkFBMkIsRUFDM0IsZ0JBQXlCLEVBQ3pCLGlCQUEwQjtRQUUxQixJQUFJLGlCQUFpQixFQUFFLENBQUM7WUFDcEIsT0FBTyxLQUFLLENBQUM7UUFDakIsQ0FBQztRQUVELGtFQUFrRTtRQUNsRSxnQkFBZ0I7UUFDaEIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDcEIsT0FBTyxnQkFBZ0IsSUFBSSxnQkFBZ0IsQ0FBQyxlQUFlLENBQUM7UUFDaEUsQ0FBQztRQUVELDJFQUEyRTtRQUMzRSxRQUFRO1FBQ1IsT0FBTyxDQUNILGdCQUFnQjtZQUNoQixnQkFBZ0IsQ0FBQyxhQUFhO2dCQUMxQixnQkFBZ0IsQ0FBQyxrQkFBa0IsQ0FDMUMsQ0FBQztJQUNOLENBQUM7SUFFTyxXQUFXO1FBQ2YsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNqRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzVDLENBQUM7SUFDTCxDQUFDOytHQTFSUSx5Q0FBeUM7bUdBQXpDLHlDQUF5QyxvZUFxQnZDLGtCQUFrQixnREM1RGpDLDAvT0F5TUE7OzRGRGxLYSx5Q0FBeUM7a0JBTnJELFNBQVM7K0JBRUkscUNBQXFDO3VZQVEvQyxrQkFBa0I7c0JBRGpCLEtBQUs7Z0JBSU4sa0JBQWtCO3NCQURqQixLQUFLO2dCQUlOLG1DQUFtQztzQkFEbEMsS0FBSztnQkFJTiwyQkFBMkI7c0JBRDFCLEtBQUs7Z0JBSU4sbUJBQW1CO3NCQURsQixLQUFLO2dCQUlOLFlBQVk7c0JBRFgsU0FBUzt1QkFBQyxjQUFjO2dCQUl6QixJQUFJO3NCQURILFNBQVM7dUJBQUMsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5hdmlnYXRpb25TdGFydCwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIG1lcmdlLCBPYnNlcnZhYmxlLCBvZiwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuICAgIGZpbHRlcixcbiAgICBmaXJzdCxcbiAgICBtYXAsXG4gICAgc3dpdGNoTWFwLFxuICAgIHRhcFxufSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEZvZWhuRm9ybUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2ZvZWhuLWZvcm0vZm9laG4tZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9laG5QYWdlU2VydmljZSB9IGZyb20gJy4uLy4uL2ZvZWhuLXBhZ2UvZm9laG4tcGFnZS5zZXJ2aWNlJztcbmltcG9ydCB7IEdlc2RlbUV2ZW50U2VydmljZSB9IGZyb20gJy4uLy4uL2dlc2RlbS9nZXNkZW0tZXZlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBHZXNkZW1IYW5kbGVyU2VydmljZSB9IGZyb20gJy4uLy4uL2dlc2RlbS9nZXNkZW0taGFuZGxlci5zZXJ2aWNlJztcbmltcG9ydCB7IEV0YXBlSW5mbyB9IGZyb20gJy4uLy4uL3Nkay1hcHBpbmZvL2FwcGxpY2F0aW9uLWluZm8nO1xuaW1wb3J0IHsgQXBwbGljYXRpb25JbmZvU2VydmljZSB9IGZyb20gJy4uLy4uL3Nkay1hcHBpbmZvL2FwcGxpY2F0aW9uLWluZm8uc2VydmljZSc7XG5pbXBvcnQgeyBTZGtEaWN0aW9uYXJ5U2VydmljZSB9IGZyb20gJy4uLy4uL3Nkay1kaWN0aW9uYXJ5L3Nkay1kaWN0aW9uYXJ5LnNlcnZpY2UnO1xuaW1wb3J0IHsgU2RrRXZlbnRUeXBlIH0gZnJvbSAnLi4vLi4vc2RrLWV2ZW50cy1sb2dnZXIvc2RrLWV2ZW50LXR5cGUnO1xuaW1wb3J0IHsgU2RrRXZlbnRzTG9nZ2VyU2VydmljZSB9IGZyb20gJy4uLy4uL3Nkay1ldmVudHMtbG9nZ2VyL3Nkay1ldmVudHMtbG9nZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2Vzc2lvbkluZm8gfSBmcm9tICcuLi8uLi9zZGstc2Vzc2lvbi1pbmZvL3Nlc3Npb24taW5mby5zZXJ2aWNlJztcbmltcG9ydCB7IFZhbGlkYXRpb25IYW5kbGVyU2VydmljZSB9IGZyb20gJy4uLy4uL3ZhbGlkYXRpb24vdmFsaWRhdGlvbi1oYW5kbGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgR2VzZGVtQWN0aW9uUmVjb3ZlcnlTZXJ2aWNlIH0gZnJvbSAnLi4vZ2VzZGVtLWFjdGlvbi1yZWNvdmVyeS5zZXJ2aWNlJztcbmltcG9ydCB7IFJlcHJpc2VJbmZvIH0gZnJvbSAnLi4vcmVwcmlzZS1pbmZvJztcblxuQENvbXBvbmVudCh7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogJ2dlc2RlbS1hY3Rpb24tcmVjb3ZlcnktcmVnaXN0cmF0aW9uJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZ2VzZGVtLWFjdGlvbi1yZWNvdmVyeS1yZWdpc3RyYXRpb24uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2dlc2RlbS1hY3Rpb24tcmVjb3ZlcnktcmVnaXN0cmF0aW9uLmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBHZXNkZW1BY3Rpb25SZWNvdmVyeVJlZ2lzdHJhdGlvbkNvbXBvbmVudFxuICAgIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3lcbntcbiAgICBASW5wdXQoKVxuICAgIGRpc3BhdGNoRm9ybUVycm9ycyA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBjb250aW51ZUxhdGVyTGFiZWw6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgY29udGludWVMYXRlckFscmVhZHlSZWdpc3RlcmVkTGFiZWw6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgY29udGludWVMYXRlckNvbm5lY3RlZExhYmVsOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIHRyaWdnZXJPblBhZ2VDaGFuZ2UgPSBmYWxzZTtcblxuICAgIEBWaWV3Q2hpbGQoJ21vZGFsVHJpZ2dlcicpXG4gICAgbW9kYWxUcmlnZ2VyOiBFbGVtZW50UmVmO1xuXG4gICAgQFZpZXdDaGlsZChGb2VobkZvcm1Db21wb25lbnQpXG4gICAgZm9ybTogRm9laG5Gb3JtQ29tcG9uZW50O1xuXG4gICAgbW9kZWwgPSBuZXcgUmVwcmlzZUluZm8oKTtcbiAgICBtYWlsU2VudCA9IGZhbHNlO1xuXG4gICAgY2FuQ29udGludWVMYXRlcjogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgICBpc0Nvbm5lY3RlZEN5YmVyOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAgIGN1cnJlbnRJbmZvUmVwcmlzZTogT2JzZXJ2YWJsZTxSZXByaXNlSW5mbz47XG4gICAgY3VycmVudEV0YXBlSW5mbzogT2JzZXJ2YWJsZTxFdGFwZUluZm8+O1xuICAgIHRyaWdnZXJBdXRvbWF0aWNhbGx5U3ViOiBTdWJzY3JpcHRpb247XG4gICAgbW9kYWxUcmlnZ2VyTGFiZWw6IE9ic2VydmFibGU8c3RyaW5nPjtcblxuICAgIHByaXZhdGUgaXNWaXNpYmxlID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBhY3Rpb25SZWNvdmVyeVNlcnZpY2U6IEdlc2RlbUFjdGlvblJlY292ZXJ5U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSB2YWxpZGF0aW9uSGFuZGxlcjogVmFsaWRhdGlvbkhhbmRsZXJTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGZvZWhuUGFnZVNlcnZpY2U6IEZvZWhuUGFnZVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgZ2VzZGVtRXZlbnRTZXJ2aWNlOiBHZXNkZW1FdmVudFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgZ2VzZGVtU2VydmljZTogR2VzZGVtSGFuZGxlclNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgYXBwSW5mb1NlcnZpY2U6IEFwcGxpY2F0aW9uSW5mb1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgc2Vzc2lvbkluZm9TZXJ2aWNlOiBTZXNzaW9uSW5mbyxcbiAgICAgICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICAgICAgcHJpdmF0ZSBldmVudHNMb2dnZXJTZXJ2aWNlOiBTZGtFdmVudHNMb2dnZXJTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGRpY3Rpb25hcnlTZXJ2aWNlOiBTZGtEaWN0aW9uYXJ5U2VydmljZVxuICAgICkge1xuICAgICAgICB0aGlzLmN1cnJlbnRJbmZvUmVwcmlzZSA9IG1lcmdlKFxuICAgICAgICAgICAgb2YodW5kZWZpbmVkKSxcbiAgICAgICAgICAgIHRoaXMuZ2VzZGVtRXZlbnRTZXJ2aWNlLmZvcm1Jbml0aWFsaXphdGlvbk9ic2VydmFibGUoKVxuICAgICAgICApLnBpcGUobWFwKCgpID0+IHRoaXMuZ2VzZGVtU2VydmljZS5sYXN0UmVzcG9uc2U/Lm1ldGE/LmluZm9SZXByaXNlKSk7XG5cbiAgICAgICAgdGhpcy5jdXJyZW50RXRhcGVJbmZvID0gdGhpcy5hcHBJbmZvU2VydmljZS5jdXJyZW50RXRhcGVJbmZvO1xuICAgIH1cblxuICAgIGdldCBpc01vZGFsVmlzaWJsZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNWaXNpYmxlO1xuICAgIH1cblxuICAgIGdldCByZWZlcmVuY2UoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2VzZGVtU2VydmljZS5sYXN0UmVzcG9uc2U/Lm1ldGE/LnJlZmVyZW5jZTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc0Nvbm5lY3RlZEN5YmVyID0gdGhpcy5zZXNzaW9uSW5mb1NlcnZpY2UuZGF0YS5waXBlKFxuICAgICAgICAgICAgbWFwKHNlc3Npb25JbmZvID0+ICEhc2Vzc2lvbkluZm8gJiYgISFzZXNzaW9uSW5mby5jb250ZXh0KVxuICAgICAgICApO1xuXG4gICAgICAgIGNvbnN0IGlzQ29ubmVjdGVkSWFtQWN2ID0gdGhpcy5zZXNzaW9uSW5mb1NlcnZpY2UuZGF0YS5waXBlKFxuICAgICAgICAgICAgbWFwKHNlc3Npb25JbmZvID0+ICEhc2Vzc2lvbkluZm8gJiYgIXNlc3Npb25JbmZvLmNvbnRleHQpXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5jYW5Db250aW51ZUxhdGVyID0gY29tYmluZUxhdGVzdChbXG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRFdGFwZUluZm8sXG4gICAgICAgICAgICB0aGlzLmlzQ29ubmVjdGVkQ3liZXIsXG4gICAgICAgICAgICBpc0Nvbm5lY3RlZElhbUFjdlxuICAgICAgICBdKS5waXBlKFxuICAgICAgICAgICAgbWFwKChbY3VycmVudEV0YXBlSW5mbywgaXNDb25uZWN0ZWRDeWJlciwgY29ubmVjdGVkSWFtQWN2XSkgPT5cbiAgICAgICAgICAgICAgICB0aGlzLmNhbkNvbnRpbnVlTGF0ZXJGb3JFdGFwZShcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudEV0YXBlSW5mbyxcbiAgICAgICAgICAgICAgICAgICAgaXNDb25uZWN0ZWRDeWJlcixcbiAgICAgICAgICAgICAgICAgICAgY29ubmVjdGVkSWFtQWN2XG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMubW9kYWxUcmlnZ2VyTGFiZWwgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudEluZm9SZXByaXNlLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKHJlcHJpc2VJbmZvID0+ICEhcmVwcmlzZUluZm8pLFxuICAgICAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKClcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICB0aGlzLmlzQ29ubmVjdGVkQ3liZXJcbiAgICAgICAgXSkucGlwZShcbiAgICAgICAgICAgIG1hcCgoW2hhc0luZm9SZXByaXNlLCBpc0Nvbm5lY3RlZEN5YmVyXSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChpc0Nvbm5lY3RlZEN5YmVyKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbnRpbnVlTGF0ZXJDb25uZWN0ZWRMYWJlbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGhhc0luZm9SZXByaXNlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbnRpbnVlTGF0ZXJBbHJlYWR5UmVnaXN0ZXJlZExhYmVsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jb250aW51ZUxhdGVyTGFiZWw7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuXG4gICAgICAgIGlmICh0aGlzLnRyaWdnZXJPblBhZ2VDaGFuZ2UpIHtcbiAgICAgICAgICAgIGxldCByZWNvdmVyeVN1Z2dlc3RlZCA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy50cmlnZ2VyQXV0b21hdGljYWxseVN1YiA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgICAgICAgIHRoaXMuY2FuQ29udGludWVMYXRlci5waXBlKGZpcnN0KCkpLFxuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudEluZm9SZXByaXNlLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIG1hcChyZXByaXNlSW5mbyA9PiAhIXJlcHJpc2VJbmZvKSxcbiAgICAgICAgICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgdGhpcy5pc0Nvbm5lY3RlZEN5YmVyLFxuICAgICAgICAgICAgICAgIHRoaXMucm91dGVyLmV2ZW50cy5waXBlKFxuICAgICAgICAgICAgICAgICAgICBmaWx0ZXIoZSA9PiBlIGluc3RhbmNlb2YgTmF2aWdhdGlvblN0YXJ0KVxuICAgICAgICAgICAgICAgIClcblxuICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByeGpzLWFuZ3VsYXIvcHJlZmVyLWFzeW5jLXBpcGVcbiAgICAgICAgICAgIF0pLnN1YnNjcmliZShcbiAgICAgICAgICAgICAgICAoW2NhbkNvbnRpbnVlTGF0ZXIsIGhhc0luZm9SZXByaXNlLCBpc0Nvbm5lY3RlZEN5YmVyXSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXNDb25uZWN0ZWRDeWJlcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaGFzQmVlblNhdmVkID1cbiAgICAgICAgICAgICAgICAgICAgICAgICEhdGhpcy5nZXNkZW1TZXJ2aWNlLmxhc3RSZXNwb25zZT8ubWV0YT8ucmVmZXJlbmNlO1xuICAgICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICBjYW5Db250aW51ZUxhdGVyICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAhaGFzSW5mb1JlcHJpc2UgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGhhc0JlZW5TYXZlZCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgIXJlY292ZXJ5U3VnZ2VzdGVkXG4gICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gc3RvcCBsaXN0ZW5pbmcgdG8gcm91dGVyIGV2ZW50IG9mIHR5cGUgTmF2aWdhdGlvblN0YXJ0LCBzaW5jZSB3ZSB3aWxsIHRyaWdnZXIgb25lIG9uIG5leHQgbGluZVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50cmlnZ2VyQXV0b21hdGljYWxseVN1Yi51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gcHJldmVudCBuYXZpZ2F0aW9uIHRvIG5leHQgcGFnZVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW10pO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vcGVuTW9kYWwoZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVjb3ZlcnlTdWdnZXN0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnRyaWdnZXJBdXRvbWF0aWNhbGx5U3ViPy51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIHNhdmVBbmRPcGVuTW9kYWwoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2xlYXJFcnJvcnMoKTtcbiAgICAgICAgdGhpcy5nZXNkZW1FdmVudFNlcnZpY2VcbiAgICAgICAgICAgIC5mb3JtU2VudE9ic2VydmFibGUoKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgZmlyc3QoKSxcbiAgICAgICAgICAgICAgICBmaWx0ZXIocmVzcCA9PiAhIXJlc3AubWV0YS5yZWZlcmVuY2UpLFxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLmlzQ29ubmVjdGVkQ3liZXIpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcnhqcy1hbmd1bGFyL3ByZWZlci1hc3luYy1waXBlXG4gICAgICAgICAgICAuc3Vic2NyaWJlKGlzQ29ubmVjdGVkQ3liZXIgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMub3Blbk1vZGFsKGlzQ29ubmVjdGVkQ3liZXIpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5mb2VoblBhZ2VTZXJ2aWNlLnJlcXVlc3RGb3JtU2F2ZSgpO1xuICAgIH1cblxuICAgIG9wZW5Nb2RhbChpc0Nvbm5lY3RlZEN5YmVyOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2xlYXJFcnJvcnMoKTtcbiAgICAgICAgdGhpcy5tYWlsU2VudCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmlzVmlzaWJsZSA9IHRydWU7XG5cbiAgICAgICAgdGhpcy5ldmVudHNMb2dnZXJTZXJ2aWNlLmFkZEV2ZW50KFNka0V2ZW50VHlwZS5SRUNPVkVSWV9NT0RBTF9PUEVORUQpO1xuXG4gICAgICAgIGlmICghaXNDb25uZWN0ZWRDeWJlcikge1xuICAgICAgICAgICAgY29tYmluZUxhdGVzdChbXG4gICAgICAgICAgICAgICAgdGhpcy5hY3Rpb25SZWNvdmVyeVNlcnZpY2UuZ2V0RGVmYXVsdFJlY292ZXJ5VmFsdWUoXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVmZXJlbmNlXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRJbmZvUmVwcmlzZVxuICAgICAgICAgICAgXSkgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJ4anMtYW5ndWxhci9wcmVmZXItYXN5bmMtcGlwZVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKFtkZWZhdWx0UmVwcmlzZUluZm8sIGN1cnJlbnRSZXByaXNlSW5mb10pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tb2RlbCA9IGN1cnJlbnRSZXByaXNlSW5mbyB8fCBkZWZhdWx0UmVwcmlzZUluZm87XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm1vZGVsID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNsb3NlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNsZWFyRXJyb3JzKCk7XG4gICAgICAgIHRoaXMudXBkYXRlVmlzaWJpbGl0eVN0YXR1cyhmYWxzZSk7XG4gICAgfVxuXG4gICAgc2VuZEFuZENsb3NlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmFjdGlvblJlY292ZXJ5U2VydmljZVxuICAgICAgICAgICAgLnJlZ2lzdGVyRm9yUmVjb3ZlcnkodGhpcy5yZWZlcmVuY2UsIHRoaXMubW9kZWwpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICB0YXAoZm9ybVJlY292ZXJ5RXJyb3JzID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtLnJlc2V0KCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmFsaWRhdGlvbkhhbmRsZXIuc2hvdWxkRGlzcGxheUVycm9ycyh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuZGlzcGF0Y2hGb3JtRXJyb3JzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25IYW5kbGVyLnVwZGF0ZUVycm9ycyhbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uZm9ybVJlY292ZXJ5RXJyb3JzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLnRoaXMuZ2VzZGVtU2VydmljZS5sYXN0UmVzcG9uc2UuZXJyb3JzXG4gICAgICAgICAgICAgICAgICAgICAgICBdKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudmFsaWRhdGlvbkhhbmRsZXIudXBkYXRlRXJyb3JzKGZvcm1SZWNvdmVyeUVycm9ycyk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm0uZm9jdXNGaXJzdEluRXJyb3IoKTtcblxuICAgICAgICAgICAgICAgICAgICBjb25zdCByZWdpc3RyYXRpb25TdWNjZXNzZnVsbCA9ICFmb3JtUmVjb3ZlcnlFcnJvcnMubGVuZ3RoO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm1haWxTZW50ID0gcmVnaXN0cmF0aW9uU3VjY2Vzc2Z1bGw7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlZ2lzdHJhdGlvblN1Y2Nlc3NmdWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmV2ZW50c0xvZ2dlclNlcnZpY2UuYWRkRXZlbnQoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgU2RrRXZlbnRUeXBlLlJFQ09WRVJZX1JFR0lTVEVSRURcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGUgZm9ybSBjb3VsZCBoYXZlIGJlZW4gdXBkYXRlZCBieSB0aGUgYmFja2VuZCBvbiByZWNvdmVyeSByZWdpc3RyYXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZ2VzZGVtU2VydmljZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5yZXRyaWV2ZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWZlcmVuY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hGb3JtRXJyb3JzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByeGpzLWFuZ3VsYXIvcHJlZmVyLWFzeW5jLXBpcGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJ4anMtYW5ndWxhci9wcmVmZXItYXN5bmMtcGlwZVxuICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIHVwZGF0ZVZpc2liaWxpdHlTdGF0dXMoc3RhdHVzOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIC8vIFN0b3JlIHRoZSBwcmV2aW91cyB2YWx1ZSB0byBoYW5kbGUgdHJhbnNpdGlvbnMgZnJvbSBvbmUgc3RhdGUgdG8gYW5vdGhlci5cbiAgICAgICAgY29uc3Qgd2FzT3BlbiA9IHRoaXMuaXNWaXNpYmxlO1xuXG4gICAgICAgIC8vIEluIGNhc2UgdGhlIG1vZGFsIGlzIGNsb3NlZCBieSBhbm90aGVyIG1lYW4uXG4gICAgICAgIHRoaXMuaXNWaXNpYmxlID0gc3RhdHVzO1xuXG4gICAgICAgIC8vIEZvY3VzIGJhY2sgb24gdGhlIHRyaWdnZXIuIE5vIG5lZWQgZm9yIGEgc2V0VGltZW91dCBhcyB0aGUgdHJpZ2dlciBzaG91bGQgc3RpbGwgYmUgaW4gdGhlIERPTS5cbiAgICAgICAgLy8gT25seSBkb2VzIGl0IHdoZW4gdGhlIG1vZGFsIGlzIGNsb3NlZCBmcm9tIGEgb3BlbiBzdGF0ZSB0byBhdm9pZCB0byBzZXRcbiAgICAgICAgLy8gdGhlIGZvY3VzIHdoZW4gdGhlIHBhZ2UgbG9hZHMuXG4gICAgICAgIGlmICh3YXNPcGVuICYmICF0aGlzLmlzVmlzaWJsZSAmJiB0aGlzLm1vZGFsVHJpZ2dlcikge1xuICAgICAgICAgICAgdGhpcy5tb2RhbFRyaWdnZXIubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0UGx1cmFsTWFya2VyKGNvdW50OiBudW1iZXIpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5kaWN0aW9uYXJ5U2VydmljZS5nZXRQbHVyYWxNYXJrZXJTeW5jKGNvdW50KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNhbkNvbnRpbnVlTGF0ZXJGb3JFdGFwZShcbiAgICAgICAgY3VycmVudEV0YXBlSW5mbzogRXRhcGVJbmZvLFxuICAgICAgICBpc0Nvbm5lY3RlZEN5YmVyOiBib29sZWFuLFxuICAgICAgICBpc0Nvbm5lY3RlZElhbUFjdjogYm9vbGVhblxuICAgICk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoaXNDb25uZWN0ZWRJYW1BY3YpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIElmIG5vdCBjb25uZWN0ZWQsIHRha2UgdGhlIFwicmVwcmlzZVBvc3NpYmxlXCIgZmxhZyBmcm9tIENhdFByZXN0XG4gICAgICAgIC8vIGludG8gYWNjb3VudC5cbiAgICAgICAgaWYgKCFpc0Nvbm5lY3RlZEN5YmVyKSB7XG4gICAgICAgICAgICByZXR1cm4gY3VycmVudEV0YXBlSW5mbyAmJiBjdXJyZW50RXRhcGVJbmZvLnJlcHJpc2VQb3NzaWJsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIElmIGNvbm5lY3RlZCwgb25seSBkaXNwbGF5IHRoZSBidXR0b24gaWYgdGhlIGN1cnJlbnQgc3RlcCBpZiB0aGUgaW5pdGlhbFxuICAgICAgICAvLyBzdGVwLlxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgY3VycmVudEV0YXBlSW5mbyAmJlxuICAgICAgICAgICAgY3VycmVudEV0YXBlSW5mby5pZE1ldGllckV0YXBlID09PVxuICAgICAgICAgICAgICAgIGN1cnJlbnRFdGFwZUluZm8uaWRNZXRpZXJQcmVzdGF0aW9uXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjbGVhckVycm9ycygpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmRpc3BhdGNoRm9ybUVycm9ycykge1xuICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9uSGFuZGxlci5zaG91bGREaXNwbGF5RXJyb3JzKHRydWUpO1xuICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9uSGFuZGxlci51cGRhdGVFcnJvcnMoW10pO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGJ1dHRvblxuICAgIHR5cGU9XCJidXR0b25cIlxuICAgIGlkPVwiY29udGludWVMYXRlckJ1dHRvblwiXG4gICAgY2xhc3M9XCJidG4gYnRuLWxpbmsgcGUtMCBwcy0wIG5vLXRleHQtdHJhbnNmb3JtXCJcbiAgICAqbmdJZj1cImNhbkNvbnRpbnVlTGF0ZXIgfCBhc3luY1wiXG4gICAgW2lubmVySFRNTF09XCJtb2RhbFRyaWdnZXJMYWJlbCB8IGFzeW5jXCJcbiAgICAoY2xpY2spPVwic2F2ZUFuZE9wZW5Nb2RhbCgpXCJcbiAgICAjbW9kYWxUcmlnZ2VyXG4+PC9idXR0b24+XG5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJjdXJyZW50SW5mb1JlcHJpc2UgfCBhc3luYyBhcyBjdXJyZW50SW5mb1wiPlxuICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJzbWFsbFwiXG4gICAgICAgIFtpbm5lckhUTUxdPVwiXG4gICAgICAgICAgICAnZ2VzZGVtLWFjdGlvbi1yZWNvdmVyeS1yZWdpc3RyYXRpb24uY3VycmVudC1pbmZvLnByZXZpZXcnXG4gICAgICAgICAgICAgICAgfCBmcm9tRGljdGlvbmFyeVxuICAgICAgICAgICAgICAgICAgICA6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmVjb3ZlcnlNYWlsOiBjdXJyZW50SW5mby5lbWFpbCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbGFzdFJlZ2lzdHJhdGlvbjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjdXJyZW50SW5mby5sYXN0VXBkYXRlIHwgZGlzcGxheURhdGUpXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICBcIlxuICAgID48L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuXG48Zm9laG4tbW9kYWxcbiAgICAqbmdJZj1cImN1cnJlbnRFdGFwZUluZm8gfCBhc3luYyBhcyBldGFwZUluZm9cIlxuICAgIGlkPVwiYWN0aW9uLXJlY292ZXJ5LXJlZ2lzdHJhdGlvbi1tb2RhbFwiXG4gICAgW21vZGFsU2l6ZV09XCIhKGlzQ29ubmVjdGVkQ3liZXIgfCBhc3luYykgPyAnbW9kYWwtbGcnIDogJ21vZGFsLW1kJ1wiXG4gICAgW21vZGFsSGVhZGVyVGV4dF09XCJcbiAgICAgICAgJ2dlc2RlbS1hY3Rpb24tcmVjb3ZlcnktcmVnaXN0cmF0aW9uLm1vZGFsSGVhZGVyVGV4dCcgfCBmcm9tRGljdGlvbmFyeVxuICAgIFwiXG4gICAgW2lzTW9kYWxWaXNpYmxlXT1cImlzTW9kYWxWaXNpYmxlXCJcbiAgICAoaXNNb2RhbFZpc2libGVDaGFuZ2UpPVwidXBkYXRlVmlzaWJpbGl0eVN0YXR1cygkZXZlbnQpXCJcbj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiISEoaXNDb25uZWN0ZWRDeWJlciB8IGFzeW5jKVwiPlxuICAgICAgICA8c3BhblxuICAgICAgICAgICAgW2lubmVySFRNTF09XCJcbiAgICAgICAgICAgICAgICAnZ2VzZGVtLWFjdGlvbi1yZWNvdmVyeS1yZWdpc3RyYXRpb24uY29ubmVjdGVkLmluZm8nXG4gICAgICAgICAgICAgICAgICAgIHwgZnJvbURpY3Rpb25hcnlcbiAgICAgICAgICAgIFwiXG4gICAgICAgID48L3NwYW4+XG5cbiAgICAgICAgPGEgaHJlZj1cIi8xMDAwMDIvZGVtYW5kZXMvc2VhcmNoL01JTkUvSU5JVElBTFwiPlxuICAgICAgICAgICAgPGZvZWhuLWljb24tcGVuY2lsXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJoM1wiXG4gICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBbdGl0bGVdPVwiXG4gICAgICAgICAgICAgICAgICAgICdnZXNkZW0tYWN0aW9uLXJlY292ZXJ5LXJlZ2lzdHJhdGlvbi5jb25uZWN0ZWQuaW5mby5kcmFmdC1saW5rLXRleHQnXG4gICAgICAgICAgICAgICAgICAgICAgICB8IGZyb21EaWN0aW9uYXJ5XG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgID48L2ZvZWhuLWljb24tcGVuY2lsPlxuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cIlxuICAgICAgICAgICAgICAgICAgICAnZ2VzZGVtLWFjdGlvbi1yZWNvdmVyeS1yZWdpc3RyYXRpb24uY29ubmVjdGVkLmluZm8uZHJhZnQtbGluay10ZXh0J1xuICAgICAgICAgICAgICAgICAgICAgICAgfCBmcm9tRGljdGlvbmFyeVxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICA+PC9zcGFuPlxuICAgICAgICA8L2E+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIShpc0Nvbm5lY3RlZEN5YmVyIHwgYXN5bmMpXCI+XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgY3VycmVudEluZm9SZXByaXNlIHwgYXN5bmMgYXMgY3VycmVudEluZm87XG4gICAgICAgICAgICAgICAgZWxzZSBub0N1cnJlbnRJbmZvXG4gICAgICAgICAgICBcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJhbGVydCBhbGVydC1pbmZvXCJcbiAgICAgICAgICAgICAgICAqbmdJZj1cIiFtYWlsU2VudFwiXG4gICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJcbiAgICAgICAgICAgICAgICAgICAgJ2dlc2RlbS1hY3Rpb24tcmVjb3ZlcnktcmVnaXN0cmF0aW9uLm5vdC1jb25uZWN0ZWQuY3VycmVudC1pbmZvJ1xuICAgICAgICAgICAgICAgICAgICAgICAgfCBmcm9tRGljdGlvbmFyeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhc3RSZWdpc3RyYXRpb246XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjdXJyZW50SW5mby5sYXN0VXBkYXRlIHwgZGlzcGxheURhdGUpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRyYWZ0RGVtUmV0ZW50aW9uRGF5c1B1YmxpYzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXRhcGVJbmZvLmRyYWZ0RGVtUmV0ZW50aW9uRGF5c1B1YmxpYz8udG9TdHJpbmcoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbHVyYWw6IGdldFBsdXJhbE1hcmtlcihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXRhcGVJbmZvLmRyYWZ0RGVtUmV0ZW50aW9uRGF5c1B1YmxpY1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgPjwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJhbGVydCBhbGVydC1pbmZvXCJcbiAgICAgICAgICAgICAgICAqbmdJZj1cIm1haWxTZW50XCJcbiAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cIlxuICAgICAgICAgICAgICAgICAgICAnZ2VzZGVtLWFjdGlvbi1yZWNvdmVyeS1yZWdpc3RyYXRpb24ubm90LWNvbm5lY3RlZC5pbmZvLnNlbnQnXG4gICAgICAgICAgICAgICAgICAgICAgICB8IGZyb21EaWN0aW9uYXJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVjb3ZlcnlNYWlsOiBjdXJyZW50SW5mby5lbWFpbCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWNvdmVyeU1vYmlsZTogY3VycmVudEluZm8ubW9iaWxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRyYWZ0RGVtUmV0ZW50aW9uRGF5c1B1YmxpYzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXRhcGVJbmZvLmRyYWZ0RGVtUmV0ZW50aW9uRGF5c1B1YmxpYz8udG9TdHJpbmcoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbHVyYWw6IGdldFBsdXJhbE1hcmtlcihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXRhcGVJbmZvLmRyYWZ0RGVtUmV0ZW50aW9uRGF5c1B1YmxpY1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgPjwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8Zm9laG4tZm9ybSAqbmdJZj1cIiFtYWlsU2VudFwiIFtzaG91bGREaXNwbGF5QWxlcnRTdW1tYXJ5XT1cImZhbHNlXCI+XG4gICAgICAgICAgICA8Zm9laG4taW5wdXQtZW1haWxcbiAgICAgICAgICAgICAgICBbbGFiZWxdPVwiXG4gICAgICAgICAgICAgICAgICAgICdnZXNkZW0tYWN0aW9uLXJlY292ZXJ5LXJlZ2lzdHJhdGlvbi5ub3QtY29ubmVjdGVkLmVtYWlsLmxhYmVsJ1xuICAgICAgICAgICAgICAgICAgICAgICAgfCBmcm9tRGljdGlvbmFyeVxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgW2hlbHBUZXh0XT1cIlxuICAgICAgICAgICAgICAgICAgICAnZ2VzZGVtLWFjdGlvbi1yZWNvdmVyeS1yZWdpc3RyYXRpb24ubm90LWNvbm5lY3RlZC5lbWFpbC5oZWxwLXRleHQnXG4gICAgICAgICAgICAgICAgICAgICAgICB8IGZyb21EaWN0aW9uYXJ5XG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICBbKG1vZGVsKV09XCJtb2RlbC5lbWFpbFwiXG4gICAgICAgICAgICAgICAgbmFtZT1cImVtYWlsXCJcbiAgICAgICAgICAgICAgICBbcmVxdWlyZWRdPVwidHJ1ZVwiXG4gICAgICAgICAgICA+PC9mb2Vobi1pbnB1dC1lbWFpbD5cblxuICAgICAgICAgICAgPGZvZWhuLWlucHV0LXBob25lXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cIlxuICAgICAgICAgICAgICAgICAgICAnZ2VzZGVtLWFjdGlvbi1yZWNvdmVyeS1yZWdpc3RyYXRpb24ubm90LWNvbm5lY3RlZC5tb2JpbGUubGFiZWwnXG4gICAgICAgICAgICAgICAgICAgICAgICB8IGZyb21EaWN0aW9uYXJ5XG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICBbYWNjZXB0SW50ZXJuYXRpb25hbF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBbYWNjZXB0TW9iaWxlUGhvbmVdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgW2FjY2VwdFBob25lXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICBbKG1vZGVsKV09XCJtb2RlbC5tb2JpbGVcIlxuICAgICAgICAgICAgICAgIG5hbWU9XCJtb2JpbGVcIlxuICAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgID48L2ZvZWhuLWlucHV0LXBob25lPlxuXG4gICAgICAgICAgICA8Zm9laG4taW5wdXQtdGV4dFxuICAgICAgICAgICAgICAgIFtsYWJlbF09XCJcbiAgICAgICAgICAgICAgICAgICAgJ2dlc2RlbS1hY3Rpb24tcmVjb3ZlcnktcmVnaXN0cmF0aW9uLm5vdC1jb25uZWN0ZWQucmVmZXJlbmNlLWludGVybmUubGFiZWwnXG4gICAgICAgICAgICAgICAgICAgICAgICB8IGZyb21EaWN0aW9uYXJ5XG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICBbaGVscFRleHRdPVwiXG4gICAgICAgICAgICAgICAgICAgICdnZXNkZW0tYWN0aW9uLXJlY292ZXJ5LXJlZ2lzdHJhdGlvbi5ub3QtY29ubmVjdGVkLnJlZmVyZW5jZS1pbnRlcm5lLmhlbHAtdGV4dCdcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgZnJvbURpY3Rpb25hcnlcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgIFsobW9kZWwpXT1cIm1vZGVsLnJlZmVyZW5jZUludGVybmVcIlxuICAgICAgICAgICAgICAgIG5hbWU9XCJyZWZlcmVuY2VJbnRlcm5lXCJcbiAgICAgICAgICAgICAgICBbcmVxdWlyZWRdPVwiZmFsc2VcIlxuICAgICAgICAgICAgPjwvZm9laG4taW5wdXQtdGV4dD5cbiAgICAgICAgPC9mb2Vobi1mb3JtPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPGRpdiBtb2RhbC1mb290ZXIgY2xhc3M9XCJ3LTEwMFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1tZC1mbGV4XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXMtbWQtYXV0byBtZS1tZC0yIG1iLTIgbXQtMlwiPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJjb250aW51ZUxhdGVyTW9kYWxDYW5jZWxCdXR0b25cIlxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNsb3NlKClcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tc2Vjb25kYXJ5IHctMTAwXCJcbiAgICAgICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICdnZXNkZW0tYWN0aW9uLXJlY292ZXJ5LXJlZ2lzdHJhdGlvbi5jYW5jZWwuYnV0dG9uJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZnJvbURpY3Rpb25hcnlcbiAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAqbmdJZj1cIiEoaXNDb25uZWN0ZWRDeWJlciB8IGFzeW5jKVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJtcy1tZC0wIG1lLW1kLTIgbWItMiBtdC0yXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGlkPVwiY29udGludWVMYXRlck1vZGFsU2F2ZUJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VuZEFuZENsb3NlKClcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tc3VjY2VzcyB3LTEwMFwiXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIW1haWxTZW50XCJcbiAgICAgICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICdnZXNkZW0tYWN0aW9uLXJlY292ZXJ5LXJlZ2lzdHJhdGlvbi5zYXZlLmJ1dHRvbidcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGZyb21EaWN0aW9uYXJ5XG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9mb2Vobi1tb2RhbD5cblxuPG5nLXRlbXBsYXRlICNub0N1cnJlbnRJbmZvPlxuICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJhbGVydCBhbGVydC1pbmZvXCJcbiAgICAgICAgW2lubmVySFRNTF09XCJcbiAgICAgICAgICAgICdnZXNkZW0tYWN0aW9uLXJlY292ZXJ5LXJlZ2lzdHJhdGlvbi5ub3QtY29ubmVjdGVkLm5vdC1yZWdpc3RlcmVkLmluZm8nXG4gICAgICAgICAgICAgICAgfCBmcm9tRGljdGlvbmFyeVxuICAgICAgICAgICAgICAgICAgICA6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZHJhZnREZW1SZXRlbnRpb25EYXlzUHVibGljOiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50RXRhcGVJbmZvIHwgYXN5bmNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKS5kcmFmdERlbVJldGVudGlvbkRheXNQdWJsaWM/LnRvU3RyaW5nKCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHBsdXJhbDogZ2V0UGx1cmFsTWFya2VyKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGN1cnJlbnRFdGFwZUluZm8gfCBhc3luYylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZHJhZnREZW1SZXRlbnRpb25EYXlzUHVibGljXG4gICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgIFwiXG4gICAgPjwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
@@ -104,5 +104,21 @@ export class ObjectHelper {
|
|
|
104
104
|
const doc = new DOMParser().parseFromString(html, 'text/html');
|
|
105
105
|
return doc.body.textContent || '';
|
|
106
106
|
}
|
|
107
|
+
static getNestedProperty(obj, key) {
|
|
108
|
+
for (const property in obj) {
|
|
109
|
+
if (obj.hasOwnProperty(property)) {
|
|
110
|
+
// in case it is an object
|
|
111
|
+
if (typeof obj[property] === 'object') {
|
|
112
|
+
const result = this.getNestedProperty(obj[property], key.split('.').slice(1).join('.'));
|
|
113
|
+
if (typeof result !== 'undefined') {
|
|
114
|
+
return result;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
else if (property === key) {
|
|
118
|
+
return obj[key]; // returns the value
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
107
123
|
}
|
|
108
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LmhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9oZWxwZXJzL29iamVjdC5oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE1BQU0sT0FBTyxZQUFZO0lBQ3JCOzs7Ozs7Ozs7T0FTRztJQUNILE1BQU0sQ0FBQyxPQUFPLENBQ1YsTUFBZSxFQUNmLE1BQWUsRUFDZiwwQkFBbUMsSUFBSTtRQUV2QyxJQUNJLE1BQU07WUFDTixNQUFNO1lBQ04sT0FBTyxNQUFNLEtBQUssUUFBUTtZQUMxQixPQUFPLE1BQU0sS0FBSyxRQUFRLEVBQzVCLENBQUM7WUFDQyxNQUFNLE9BQU8sR0FBRyxDQUFDLEdBQVEsRUFBRSxNQUFXLEVBQVcsRUFBRSxDQUMvQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sS0FBSyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU07Z0JBQ3RELE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFO29CQUM1QixJQUFJLEdBQUcsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQzt3QkFDMUIsSUFDSSxHQUFHLENBQUMsR0FBRyxDQUFDOzRCQUNSLE1BQU0sQ0FBQyxHQUFHLENBQUM7NEJBQ1gsT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssVUFBVTs0QkFDOUIsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssVUFBVSxFQUNuQyxDQUFDOzRCQUNDLElBQUksdUJBQXVCLEVBQUUsQ0FBQztnQ0FDMUIsT0FBTyxJQUFJLENBQUM7NEJBQ2hCLENBQUM7NEJBQ0QsOENBQThDOzRCQUM5QyxPQUFPLENBQ0gsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxLQUFLLE1B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LE1BQU0sRUFBRSxDQUFDO1lBQ3hCLElBQUksR0FBRyxFQUFFLENBQUM7WUFDVixLQUFLLE1BQU0sSUFBSSxJQUFJLEdBQUcsRUFBRSxDQUFDO2dCQUNyQixJQUFJLEdBQUcsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztvQkFDM0IsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLFlBQVksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7Z0JBQ2xELENBQUM7WUFDTCxDQUFDO1lBQ0QsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQztRQUVELE1BQU0sSUFBSSxLQUFLLENBQUMseUNBQXlDLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRUQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFZO1FBQ3pCLE1BQU0sR0FBRyxHQUFHLElBQUksU0FBUyxFQUFFLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQztRQUMvRCxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG5leHBvcnQgY2xhc3MgT2JqZWN0SGVscGVyIHtcbiAgICAvKipcbiAgICAgKiBBbmd1bGFyIHVzZXMgb2JqZWN0IGlkZW50aXR5IHRvIHNlbGVjdCBvcHRpb24uIEl0J3MgcG9zc2libGUgZm9yIHRoZSBpZGVudGl0aWVzIG9mIGl0ZW1zIHRvIGNoYW5nZSB3aGlsZSB0aGUgZGF0YSBkb2VzIG5vdC5cbiAgICAgKiBUaGlzIGNhbiBoYXBwZW4sIGZvciBleGFtcGxlLCBpZiB0aGUgaXRlbXMgYXJlIHByb2R1Y2VkIGZyb20gYW4gUlBDIHRvIHRoZSBzZXJ2ZXIsIGFuZCB0aGF0IFJQQyBpcyByZS1ydW4uXG4gICAgICogRXZlbiBpZiB0aGUgZGF0YSBoYXNuJ3QgY2hhbmdlZCwgdGhlIHNlY29uZCByZXNwb25zZSB3aWxsIHByb2R1Y2Ugb2JqZWN0cyB3aXRoIGRpZmZlcmVudCBpZGVudGl0aWVzLlxuICAgICAqIChzZWU6IGh0dHBzOi8vYW5ndWxhci5pby9hcGkvZm9ybXMvU2VsZWN0Q29udHJvbFZhbHVlQWNjZXNzb3IjY3VzdG9taXppbmctb3B0aW9uLXNlbGVjdGlvbilcbiAgICAgKiBAcGFyYW0gdmFsdWUxIGFzIGZpcnN0IHZhbHVlIHRvIGNvbXBhcmUgdG9cbiAgICAgKiBAcGFyYW0gdmFsdWUyIGFzIHZhbHVlIHRvIGJlIGNvbXBhcmVkIHRvXG4gICAgICogQHBhcmFtIHNraXBGdW5jdGlvblR5cGVDb21wYXJlIGJvb2xlYW4gKGRlZmF1bHQgdHJ1ZSkgKHdoZW4gc2V0IHRvIGZhbHNlIGNvbXBhcmVzIGZ1bmN0aW9ucylcbiAgICAgKiBAcmV0dXJucyBib29sZWFuXG4gICAgICovXG4gICAgc3RhdGljIGlzRXF1YWwoXG4gICAgICAgIHZhbHVlMTogdW5rbm93bixcbiAgICAgICAgdmFsdWUyOiB1bmtub3duLFxuICAgICAgICBza2lwRnVuY3Rpb25UeXBlQ29tcGFyZTogYm9vbGVhbiA9IHRydWVcbiAgICApOiBib29sZWFuIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgdmFsdWUxICYmXG4gICAgICAgICAgICB2YWx1ZTIgJiZcbiAgICAgICAgICAgIHR5cGVvZiB2YWx1ZTEgPT09ICdvYmplY3QnICYmXG4gICAgICAgICAgICB0eXBlb2YgdmFsdWUyID09PSAnb2JqZWN0J1xuICAgICAgICApIHtcbiAgICAgICAgICAgIGNvbnN0IG1hdGNoZXMgPSAob2JqOiBhbnksIHNvdXJjZTogYW55KTogYm9vbGVhbiA9PlxuICAgICAgICAgICAgICAgIE9iamVjdC5rZXlzKHNvdXJjZSkubGVuZ3RoID09PSBPYmplY3Qua2V5cyhvYmopLmxlbmd0aCAmJlxuICAgICAgICAgICAgICAgIE9iamVjdC5rZXlzKHNvdXJjZSkuZXZlcnkoa2V5ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JqW2tleV0gJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2Vba2V5XSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVvZiBvYmpba2V5XSA9PT0gJ2Z1bmN0aW9uJyAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVvZiBzb3VyY2Vba2V5XSA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNraXBGdW5jdGlvblR5cGVDb21wYXJlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBEaWRuJ3QgZmluZCBiZXR0ZXIgdG8gY29tcGFyZSB0d28gZnVuY3Rpb25zXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JqW2tleV0udG9TdHJpbmcoKSA9PT0gc291cmNlW2tleV0udG9TdHJpbmcoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JqW2tleV0gJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2Vba2V5XSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVvZiBvYmpba2V5XSA9PT0gJ29iamVjdCcgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlb2Ygc291cmNlW2tleV0gPT09ICdvYmplY3QnXG4gICAgICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbWF0Y2hlcyhvYmpba2V5XSwgc291cmNlW2tleV0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9ialtrZXldID09PSBzb3VyY2Vba2V5XTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHJldHVybiBtYXRjaGVzKHZhbHVlMSwgdmFsdWUyKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFsdWUxID09PSB2YWx1ZTI7XG4gICAgfVxuXG4gICAgc3RhdGljIGlzRGlmZmVyZW50KFxuICAgICAgICB2YWx1ZTE6IHVua25vd24sXG4gICAgICAgIHZhbHVlMjogdW5rbm93bixcbiAgICAgICAgc2tpcEZ1bmN0aW9uVHlwZTogYm9vbGVhbiA9IHRydWVcbiAgICApOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICFPYmplY3RIZWxwZXIuaXNFcXVhbCh2YWx1ZTEsIHZhbHVlMiwgc2tpcEZ1bmN0aW9uVHlwZSk7XG4gICAgfVxuXG4gICAgc3RhdGljIGhhc0FueVZhbHVlKHZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIC8vIGRvIG5vdCBzaW1wbGlmeSB3aXRoIGFuIGlubGluZSB2YXJpYWJsZSByZXN1bHQgZHVlIHRvIGNvbXBpbGF0aW9uIGVycm9yXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IE9iamVjdC5rZXlzKHZhbHVlKS5zb21lKGtleSA9PiB7XG4gICAgICAgICAgICBpZiAodmFsdWVba2V5XSAmJiB0eXBlb2YgdmFsdWVba2V5XSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gT2JqZWN0SGVscGVyLmhhc0FueVZhbHVlKHZhbHVlW2tleV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuICEhdmFsdWVba2V5XTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgc3RhdGljIGlzRW1wdHkodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIU9iamVjdEhlbHBlci5oYXNBbnlWYWx1ZSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGVlcCBjb3B5IGlzIGEgdHJ1ZSBjb3B5IGZvciBuZXN0ZWQgb2JqZWN0c1xuICAgICAqIE9mdGVuLCBzaGFsbG93IGNvcHkgaXMgZ29vZCBlbm91Z2ggYW5kIHlvdSB3aWxsIG5vdCBuZWVkIGEgZGVlcCBjb3B5LlxuICAgICAqIEEgc2hhbGxvdyBjb3B5IG1lYW5zIHRoZSBmaXJzdCBsZXZlbCBpcyBjb3BpZWQsIGRlZXBlciBsZXZlbHMgYXJlIHJlZmVyZW5jZWQuXG4gICAgICpcbiAgICAgKiBFeGFtcGxlcyBvZiBzaGFsbG93IGNvcHkgOlxuICAgICAqIGNvbnN0IHNoYWxsb3dDbG9uZSA9IHsgLi4ubmVzdGVkT2JqZWN0IH07XG4gICAgICogY29uc3Qgc2hhbGxvd0Nsb25lID0gT2JqZWN0LmFzc2lnbih7fSwgbmVzdGVkT2JqZWN0KTtcbiAgICAgKiBAcGFyYW0gb2JqIGlzIHRoZSBvYmplY3QgdG8gY29waWVkXG4gICAgICogQHJldHVybnMgb2JqXG4gICAgICovXG4gICAgc3RhdGljIGRlZXBDb3B5KG9iajogYW55KTogYW55IHtcbiAgICAgICAgaWYgKCFvYmogfHwgdHlwZW9mIG9iaiAhPT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgIHJldHVybiBvYmo7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgY29weTogYW55O1xuXG4gICAgICAgIGlmIChvYmogaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICAgICAgICBjb3B5ID0gbmV3IERhdGUoKTtcbiAgICAgICAgICAgIGNvcHkuc2V0VGltZShvYmouZ2V0VGltZSgpKTtcbiAgICAgICAgICAgIHJldHVybiBjb3B5O1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG9iaiBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICAgICAgICBjb3B5ID0gW107XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMCwgbGVuID0gb2JqLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICAgICAgICAgICAgY29weVtpXSA9IE9iamVjdEhlbHBlci5kZWVwQ29weShvYmpbaV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGNvcHk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAob2JqIGluc3RhbmNlb2YgT2JqZWN0KSB7XG4gICAgICAgICAgICBjb3B5ID0ge307XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGF0dHIgaW4gb2JqKSB7XG4gICAgICAgICAgICAgICAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eShhdHRyKSkge1xuICAgICAgICAgICAgICAgICAgICBjb3B5W2F0dHJdID0gT2JqZWN0SGVscGVyLmRlZXBDb3B5KG9ialthdHRyXSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGNvcHk7XG4gICAgICAgIH1cblxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1VuYWJsZSB0byBjb3B5IG9iaiEgVHlwZSBub3Qgc3VwcG9ydGVkLicpO1xuICAgIH1cblxuICAgIHN0YXRpYyBzdHJpcEh0bWwoaHRtbDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgZG9jID0gbmV3IERPTVBhcnNlcigpLnBhcnNlRnJvbVN0cmluZyhodG1sLCAndGV4dC9odG1sJyk7XG4gICAgICAgIHJldHVybiBkb2MuYm9keS50ZXh0Q29udGVudCB8fCAnJztcbiAgICB9XG59XG4iXX0=
|
|
124
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LmhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9oZWxwZXJzL29iamVjdC5oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE1BQU0sT0FBTyxZQUFZO0lBQ3JCOzs7Ozs7Ozs7T0FTRztJQUNILE1BQU0sQ0FBQyxPQUFPLENBQ1YsTUFBZSxFQUNmLE1BQWUsRUFDZiwwQkFBbUMsSUFBSTtRQUV2QyxJQUNJLE1BQU07WUFDTixNQUFNO1lBQ04sT0FBTyxNQUFNLEtBQUssUUFBUTtZQUMxQixPQUFPLE1BQU0sS0FBSyxRQUFRLEVBQzVCLENBQUM7WUFDQyxNQUFNLE9BQU8sR0FBRyxDQUFDLEdBQVEsRUFBRSxNQUFXLEVBQVcsRUFBRSxDQUMvQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sS0FBSyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU07Z0JBQ3RELE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFO29CQUM1QixJQUFJLEdBQUcsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQzt3QkFDMUIsSUFDSSxHQUFHLENBQUMsR0FBRyxDQUFDOzRCQUNSLE1BQU0sQ0FBQyxHQUFHLENBQUM7NEJBQ1gsT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssVUFBVTs0QkFDOUIsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssVUFBVSxFQUNuQyxDQUFDOzRCQUNDLElBQUksdUJBQXVCLEVBQUUsQ0FBQztnQ0FDMUIsT0FBTyxJQUFJLENBQUM7NEJBQ2hCLENBQUM7NEJBQ0QsOENBQThDOzRCQUM5QyxPQUFPLENBQ0gsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxLQUFLLE1B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Q2hDLE9BQU8sTUFBTSxDQUFDO29CQUNsQixDQUFDO2dCQUNMLENBQUM7cUJBQU0sSUFBSSxRQUFRLEtBQUssR0FBRyxFQUFFLENBQUM7b0JBQzFCLE9BQU8sR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsb0JBQW9CO2dCQUN6QyxDQUFDO1lBQ0wsQ0FBQztRQUNMLENBQUM7SUFDTCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG5leHBvcnQgY2xhc3MgT2JqZWN0SGVscGVyIHtcbiAgICAvKipcbiAgICAgKiBBbmd1bGFyIHVzZXMgb2JqZWN0IGlkZW50aXR5IHRvIHNlbGVjdCBvcHRpb24uIEl0J3MgcG9zc2libGUgZm9yIHRoZSBpZGVudGl0aWVzIG9mIGl0ZW1zIHRvIGNoYW5nZSB3aGlsZSB0aGUgZGF0YSBkb2VzIG5vdC5cbiAgICAgKiBUaGlzIGNhbiBoYXBwZW4sIGZvciBleGFtcGxlLCBpZiB0aGUgaXRlbXMgYXJlIHByb2R1Y2VkIGZyb20gYW4gUlBDIHRvIHRoZSBzZXJ2ZXIsIGFuZCB0aGF0IFJQQyBpcyByZS1ydW4uXG4gICAgICogRXZlbiBpZiB0aGUgZGF0YSBoYXNuJ3QgY2hhbmdlZCwgdGhlIHNlY29uZCByZXNwb25zZSB3aWxsIHByb2R1Y2Ugb2JqZWN0cyB3aXRoIGRpZmZlcmVudCBpZGVudGl0aWVzLlxuICAgICAqIChzZWU6IGh0dHBzOi8vYW5ndWxhci5pby9hcGkvZm9ybXMvU2VsZWN0Q29udHJvbFZhbHVlQWNjZXNzb3IjY3VzdG9taXppbmctb3B0aW9uLXNlbGVjdGlvbilcbiAgICAgKiBAcGFyYW0gdmFsdWUxIGFzIGZpcnN0IHZhbHVlIHRvIGNvbXBhcmUgdG9cbiAgICAgKiBAcGFyYW0gdmFsdWUyIGFzIHZhbHVlIHRvIGJlIGNvbXBhcmVkIHRvXG4gICAgICogQHBhcmFtIHNraXBGdW5jdGlvblR5cGVDb21wYXJlIGJvb2xlYW4gKGRlZmF1bHQgdHJ1ZSkgKHdoZW4gc2V0IHRvIGZhbHNlIGNvbXBhcmVzIGZ1bmN0aW9ucylcbiAgICAgKiBAcmV0dXJucyBib29sZWFuXG4gICAgICovXG4gICAgc3RhdGljIGlzRXF1YWwoXG4gICAgICAgIHZhbHVlMTogdW5rbm93bixcbiAgICAgICAgdmFsdWUyOiB1bmtub3duLFxuICAgICAgICBza2lwRnVuY3Rpb25UeXBlQ29tcGFyZTogYm9vbGVhbiA9IHRydWVcbiAgICApOiBib29sZWFuIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgdmFsdWUxICYmXG4gICAgICAgICAgICB2YWx1ZTIgJiZcbiAgICAgICAgICAgIHR5cGVvZiB2YWx1ZTEgPT09ICdvYmplY3QnICYmXG4gICAgICAgICAgICB0eXBlb2YgdmFsdWUyID09PSAnb2JqZWN0J1xuICAgICAgICApIHtcbiAgICAgICAgICAgIGNvbnN0IG1hdGNoZXMgPSAob2JqOiBhbnksIHNvdXJjZTogYW55KTogYm9vbGVhbiA9PlxuICAgICAgICAgICAgICAgIE9iamVjdC5rZXlzKHNvdXJjZSkubGVuZ3RoID09PSBPYmplY3Qua2V5cyhvYmopLmxlbmd0aCAmJlxuICAgICAgICAgICAgICAgIE9iamVjdC5rZXlzKHNvdXJjZSkuZXZlcnkoa2V5ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JqW2tleV0gJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2Vba2V5XSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVvZiBvYmpba2V5XSA9PT0gJ2Z1bmN0aW9uJyAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVvZiBzb3VyY2Vba2V5XSA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNraXBGdW5jdGlvblR5cGVDb21wYXJlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBEaWRuJ3QgZmluZCBiZXR0ZXIgdG8gY29tcGFyZSB0d28gZnVuY3Rpb25zXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JqW2tleV0udG9TdHJpbmcoKSA9PT0gc291cmNlW2tleV0udG9TdHJpbmcoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JqW2tleV0gJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2Vba2V5XSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVvZiBvYmpba2V5XSA9PT0gJ29iamVjdCcgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlb2Ygc291cmNlW2tleV0gPT09ICdvYmplY3QnXG4gICAgICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbWF0Y2hlcyhvYmpba2V5XSwgc291cmNlW2tleV0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9ialtrZXldID09PSBzb3VyY2Vba2V5XTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHJldHVybiBtYXRjaGVzKHZhbHVlMSwgdmFsdWUyKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFsdWUxID09PSB2YWx1ZTI7XG4gICAgfVxuXG4gICAgc3RhdGljIGlzRGlmZmVyZW50KFxuICAgICAgICB2YWx1ZTE6IHVua25vd24sXG4gICAgICAgIHZhbHVlMjogdW5rbm93bixcbiAgICAgICAgc2tpcEZ1bmN0aW9uVHlwZTogYm9vbGVhbiA9IHRydWVcbiAgICApOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICFPYmplY3RIZWxwZXIuaXNFcXVhbCh2YWx1ZTEsIHZhbHVlMiwgc2tpcEZ1bmN0aW9uVHlwZSk7XG4gICAgfVxuXG4gICAgc3RhdGljIGhhc0FueVZhbHVlKHZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIC8vIGRvIG5vdCBzaW1wbGlmeSB3aXRoIGFuIGlubGluZSB2YXJpYWJsZSByZXN1bHQgZHVlIHRvIGNvbXBpbGF0aW9uIGVycm9yXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IE9iamVjdC5rZXlzKHZhbHVlKS5zb21lKGtleSA9PiB7XG4gICAgICAgICAgICBpZiAodmFsdWVba2V5XSAmJiB0eXBlb2YgdmFsdWVba2V5XSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gT2JqZWN0SGVscGVyLmhhc0FueVZhbHVlKHZhbHVlW2tleV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuICEhdmFsdWVba2V5XTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgc3RhdGljIGlzRW1wdHkodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIU9iamVjdEhlbHBlci5oYXNBbnlWYWx1ZSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGVlcCBjb3B5IGlzIGEgdHJ1ZSBjb3B5IGZvciBuZXN0ZWQgb2JqZWN0c1xuICAgICAqIE9mdGVuLCBzaGFsbG93IGNvcHkgaXMgZ29vZCBlbm91Z2ggYW5kIHlvdSB3aWxsIG5vdCBuZWVkIGEgZGVlcCBjb3B5LlxuICAgICAqIEEgc2hhbGxvdyBjb3B5IG1lYW5zIHRoZSBmaXJzdCBsZXZlbCBpcyBjb3BpZWQsIGRlZXBlciBsZXZlbHMgYXJlIHJlZmVyZW5jZWQuXG4gICAgICpcbiAgICAgKiBFeGFtcGxlcyBvZiBzaGFsbG93IGNvcHkgOlxuICAgICAqIGNvbnN0IHNoYWxsb3dDbG9uZSA9IHsgLi4ubmVzdGVkT2JqZWN0IH07XG4gICAgICogY29uc3Qgc2hhbGxvd0Nsb25lID0gT2JqZWN0LmFzc2lnbih7fSwgbmVzdGVkT2JqZWN0KTtcbiAgICAgKiBAcGFyYW0gb2JqIGlzIHRoZSBvYmplY3QgdG8gY29waWVkXG4gICAgICogQHJldHVybnMgb2JqXG4gICAgICovXG4gICAgc3RhdGljIGRlZXBDb3B5KG9iajogYW55KTogYW55IHtcbiAgICAgICAgaWYgKCFvYmogfHwgdHlwZW9mIG9iaiAhPT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgIHJldHVybiBvYmo7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgY29weTogYW55O1xuXG4gICAgICAgIGlmIChvYmogaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICAgICAgICBjb3B5ID0gbmV3IERhdGUoKTtcbiAgICAgICAgICAgIGNvcHkuc2V0VGltZShvYmouZ2V0VGltZSgpKTtcbiAgICAgICAgICAgIHJldHVybiBjb3B5O1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG9iaiBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICAgICAgICBjb3B5ID0gW107XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMCwgbGVuID0gb2JqLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICAgICAgICAgICAgY29weVtpXSA9IE9iamVjdEhlbHBlci5kZWVwQ29weShvYmpbaV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGNvcHk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAob2JqIGluc3RhbmNlb2YgT2JqZWN0KSB7XG4gICAgICAgICAgICBjb3B5ID0ge307XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGF0dHIgaW4gb2JqKSB7XG4gICAgICAgICAgICAgICAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eShhdHRyKSkge1xuICAgICAgICAgICAgICAgICAgICBjb3B5W2F0dHJdID0gT2JqZWN0SGVscGVyLmRlZXBDb3B5KG9ialthdHRyXSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGNvcHk7XG4gICAgICAgIH1cblxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1VuYWJsZSB0byBjb3B5IG9iaiEgVHlwZSBub3Qgc3VwcG9ydGVkLicpO1xuICAgIH1cblxuICAgIHN0YXRpYyBzdHJpcEh0bWwoaHRtbDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgZG9jID0gbmV3IERPTVBhcnNlcigpLnBhcnNlRnJvbVN0cmluZyhodG1sLCAndGV4dC9odG1sJyk7XG4gICAgICAgIHJldHVybiBkb2MuYm9keS50ZXh0Q29udGVudCB8fCAnJztcbiAgICB9XG5cbiAgICBzdGF0aWMgZ2V0TmVzdGVkUHJvcGVydHkob2JqOiBhbnksIGtleTogc3RyaW5nKTogYW55IHtcbiAgICAgICAgZm9yIChjb25zdCBwcm9wZXJ0eSBpbiBvYmopIHtcbiAgICAgICAgICAgIGlmIChvYmouaGFzT3duUHJvcGVydHkocHJvcGVydHkpKSB7XG4gICAgICAgICAgICAgICAgLy8gaW4gY2FzZSBpdCBpcyBhbiBvYmplY3RcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIG9ialtwcm9wZXJ0eV0gPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuZ2V0TmVzdGVkUHJvcGVydHkoXG4gICAgICAgICAgICAgICAgICAgICAgICBvYmpbcHJvcGVydHldLFxuICAgICAgICAgICAgICAgICAgICAgICAga2V5LnNwbGl0KCcuJykuc2xpY2UoMSkuam9pbignLicpXG4gICAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiByZXN1bHQgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwcm9wZXJ0eSA9PT0ga2V5KSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvYmpba2V5XTsgLy8gcmV0dXJucyB0aGUgdmFsdWVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
|