@dsivd/prestations-ng 17.8.0-beta.1 → 17.8.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -154,7 +154,7 @@ export class GesdemActionRecoveryRegistrationComponent {
154
154
  this.eventsLoggerService.addEvent(SdkEventType.RECOVERY_REGISTERED);
155
155
  // the form could have been updated by the backend on recovery registration
156
156
  this.gesdemService
157
- .retrieve(this.reference, this.dispatchFormErrors)
157
+ .retrieve(this.reference, null, this.dispatchFormErrors)
158
158
  // eslint-disable-next-line rxjs-angular/prefer-async-pipe
159
159
  .subscribe();
160
160
  }
@@ -218,4 +218,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
218
218
  type: ViewChild,
219
219
  args: [FoehnFormComponent]
220
220
  }] } });
221
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VzZGVtLWFjdGlvbi1yZWNvdmVyeS1yZWdpc3RyYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL2dlc2RlbS1hY3Rpb24tcmVjb3ZlcnkvZ2VzZGVtLWFjdGlvbi1yZWNvdmVyeS1yZWdpc3RyYXRpb24vZ2VzZGVtLWFjdGlvbi1yZWNvdmVyeS1yZWdpc3RyYXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL2dlc2RlbS1hY3Rpb24tcmVjb3ZlcnkvZ2VzZGVtLWFjdGlvbi1yZWNvdmVyeS1yZWdpc3RyYXRpb24vZ2VzZGVtLWFjdGlvbi1yZWNvdmVyeS1yZWdpc3RyYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFFVCxLQUFLLEVBR0wsU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBYyxFQUFFLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQzFFLE9BQU8sRUFDSCxvQkFBb0IsRUFDcEIsTUFBTSxFQUNOLEtBQUssRUFDTCxHQUFHLEVBQ0gsU0FBUyxFQUNULEdBQUcsRUFDTixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBTTNFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUt0RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBUTlDLE1BQU0sT0FBTyx5Q0FBeUM7SUFvQ2xELFlBQ1kscUJBQWtELEVBQ2xELGlCQUEyQyxFQUMz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LENBQUM7WUFDcEIsT0FBTyxnQkFBZ0IsSUFBSSxnQkFBZ0IsQ0FBQyxlQUFlLENBQUM7UUFDaEUsQ0FBQztRQUVELDJFQUEyRTtRQUMzRSxRQUFRO1FBQ1IsT0FBTyxDQUNILGdCQUFnQjtZQUNoQixnQkFBZ0IsQ0FBQyxhQUFhO2dCQUMxQixnQkFBZ0IsQ0FBQyxrQkFBa0IsQ0FDMUMsQ0FBQztJQUNOLENBQUM7SUFFTyxXQUFXO1FBQ2YsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNqRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzVDLENBQUM7SUFDTCxDQUFDOytHQWpSUSx5Q0FBeUM7bUdBQXpDLHlDQUF5QyxvZUFxQnZDLGtCQUFrQixnREMzRGpDLGc5TkErTEE7OzRGRHpKYSx5Q0FBeUM7a0JBTnJELFNBQVM7K0JBRUkscUNBQXFDO21XQVEvQyxrQkFBa0I7c0JBRGpCLEtBQUs7Z0JBSU4sa0JBQWtCO3NCQURqQixLQUFLO2dCQUlOLG1DQUFtQztzQkFEbEMsS0FBSztnQkFJTiwyQkFBMkI7c0JBRDFCLEtBQUs7Z0JBSU4sbUJBQW1CO3NCQURsQixLQUFLO2dCQUlOLFlBQVk7c0JBRFgsU0FBUzt1QkFBQyxjQUFjO2dCQUl6QixJQUFJO3NCQURILFNBQVM7dUJBQUMsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5hdmlnYXRpb25TdGFydCwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIG1lcmdlLCBPYnNlcnZhYmxlLCBvZiwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuICAgIGZpbHRlcixcbiAgICBmaXJzdCxcbiAgICBtYXAsXG4gICAgc3dpdGNoTWFwLFxuICAgIHRhcFxufSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEZvZWhuRm9ybUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2ZvZWhuLWZvcm0vZm9laG4tZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9laG5QYWdlU2VydmljZSB9IGZyb20gJy4uLy4uL2ZvZWhuLXBhZ2UvZm9laG4tcGFnZS5zZXJ2aWNlJztcbmltcG9ydCB7IEdlc2RlbUV2ZW50U2VydmljZSB9IGZyb20gJy4uLy4uL2dlc2RlbS9nZXNkZW0tZXZlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBHZXNkZW1IYW5kbGVyU2VydmljZSB9IGZyb20gJy4uLy4uL2dlc2RlbS9nZXNkZW0taGFuZGxlci5zZXJ2aWNlJztcbmltcG9ydCB7IEV0YXBlSW5mbyB9IGZyb20gJy4uLy4uL3Nkay1hcHBpbmZvL2FwcGxpY2F0aW9uLWluZm8nO1xuaW1wb3J0IHsgQXBwbGljYXRpb25JbmZvU2VydmljZSB9IGZyb20gJy4uLy4uL3Nkay1hcHBpbmZvL2FwcGxpY2F0aW9uLWluZm8uc2VydmljZSc7XG5pbXBvcnQgeyBTZGtFdmVudFR5cGUgfSBmcm9tICcuLi8uLi9zZGstZXZlbnRzLWxvZ2dlci9zZGstZXZlbnQtdHlwZSc7XG5pbXBvcnQgeyBTZGtFdmVudHNMb2dnZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2RrLWV2ZW50cy1sb2dnZXIvc2RrLWV2ZW50cy1sb2dnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBTZXNzaW9uSW5mbyB9IGZyb20gJy4uLy4uL3Nkay1zZXNzaW9uLWluZm8vc2Vzc2lvbi1pbmZvLnNlcnZpY2UnO1xuaW1wb3J0IHsgVmFsaWRhdGlvbkhhbmRsZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdmFsaWRhdGlvbi92YWxpZGF0aW9uLWhhbmRsZXIuc2VydmljZSc7XG5pbXBvcnQgeyBHZXNkZW1BY3Rpb25SZWNvdmVyeVNlcnZpY2UgfSBmcm9tICcuLi9nZXNkZW0tYWN0aW9uLXJlY292ZXJ5LnNlcnZpY2UnO1xuaW1wb3J0IHsgUmVwcmlzZUluZm8gfSBmcm9tICcuLi9yZXByaXNlLWluZm8nO1xuXG5AQ29tcG9uZW50KHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnZ2VzZGVtLWFjdGlvbi1yZWNvdmVyeS1yZWdpc3RyYXRpb24nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9nZXNkZW0tYWN0aW9uLXJlY292ZXJ5LXJlZ2lzdHJhdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZ2VzZGVtLWFjdGlvbi1yZWNvdmVyeS1yZWdpc3RyYXRpb24uY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIEdlc2RlbUFjdGlvblJlY292ZXJ5UmVnaXN0cmF0aW9uQ29tcG9uZW50XG4gICAgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveVxue1xuICAgIEBJbnB1dCgpXG4gICAgZGlzcGF0Y2hGb3JtRXJyb3JzID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIGNvbnRpbnVlTGF0ZXJMYWJlbDogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBjb250aW51ZUxhdGVyQWxyZWFkeVJlZ2lzdGVyZWRMYWJlbDogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBjb250aW51ZUxhdGVyQ29ubmVjdGVkTGFiZWw6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgdHJpZ2dlck9uUGFnZUNoYW5nZSA9IGZhbHNlO1xuXG4gICAgQFZpZXdDaGlsZCgnbW9kYWxUcmlnZ2VyJylcbiAgICBtb2RhbFRyaWdnZXI6IEVsZW1lbnRSZWY7XG5cbiAgICBAVmlld0NoaWxkKEZvZWhuRm9ybUNvbXBvbmVudClcbiAgICBmb3JtOiBGb2VobkZvcm1Db21wb25lbnQ7XG5cbiAgICBtb2RlbCA9IG5ldyBSZXByaXNlSW5mbygpO1xuICAgIG1haWxTZW50ID0gZmFsc2U7XG5cbiAgICBjYW5Db250aW51ZUxhdGVyOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAgIGlzQ29ubmVjdGVkQ3liZXI6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gICAgY3VycmVudEluZm9SZXByaXNlOiBPYnNlcnZhYmxlPFJlcHJpc2VJbmZvPjtcbiAgICBjdXJyZW50RXRhcGVJbmZvOiBPYnNlcnZhYmxlPEV0YXBlSW5mbz47XG4gICAgdHJpZ2dlckF1dG9tYXRpY2FsbHlTdWI6IFN1YnNjcmlwdGlvbjtcbiAgICBtb2RhbFRyaWdnZXJMYWJlbDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuXG4gICAgcHJpdmF0ZSBpc1Zpc2libGUgPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGFjdGlvblJlY292ZXJ5U2VydmljZTogR2VzZGVtQWN0aW9uUmVjb3ZlcnlTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHZhbGlkYXRpb25IYW5kbGVyOiBWYWxpZGF0aW9uSGFuZGxlclNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgZm9laG5QYWdlU2VydmljZTogRm9laG5QYWdlU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBnZXNkZW1FdmVudFNlcnZpY2U6IEdlc2RlbUV2ZW50U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBnZXNkZW1TZXJ2aWNlOiBHZXNkZW1IYW5kbGVyU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBhcHBJbmZvU2VydmljZTogQXBwbGljYXRpb25JbmZvU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBzZXNzaW9uSW5mb1NlcnZpY2U6IFNlc3Npb25JbmZvLFxuICAgICAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgICAgICBwcml2YXRlIGV2ZW50c0xvZ2dlclNlcnZpY2U6IFNka0V2ZW50c0xvZ2dlclNlcnZpY2VcbiAgICApIHtcbiAgICAgICAgdGhpcy5jdXJyZW50SW5mb1JlcHJpc2UgPSBtZXJnZShcbiAgICAgICAgICAgIG9mKHVuZGVmaW5lZCksXG4gICAgICAgICAgICB0aGlzLmdlc2RlbUV2ZW50U2VydmljZS5mb3JtSW5pdGlhbGl6YXRpb25PYnNlcnZhYmxlKClcbiAgICAgICAgKS5waXBlKG1hcCgoKSA9PiB0aGlzLmdlc2RlbVNlcnZpY2UubGFzdFJlc3BvbnNlPy5tZXRhPy5pbmZvUmVwcmlzZSkpO1xuXG4gICAgICAgIHRoaXMuY3VycmVudEV0YXBlSW5mbyA9IHRoaXMuYXBwSW5mb1NlcnZpY2UuY3VycmVudEV0YXBlSW5mbztcbiAgICB9XG5cbiAgICBnZXQgaXNNb2RhbFZpc2libGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzVmlzaWJsZTtcbiAgICB9XG5cbiAgICBnZXQgcmVmZXJlbmNlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmdlc2RlbVNlcnZpY2UubGFzdFJlc3BvbnNlPy5tZXRhPy5yZWZlcmVuY2U7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNDb25uZWN0ZWRDeWJlciA9IHRoaXMuc2Vzc2lvbkluZm9TZXJ2aWNlLmRhdGEucGlwZShcbiAgICAgICAgICAgIG1hcChzZXNzaW9uSW5mbyA9PiAhIXNlc3Npb25JbmZvICYmICEhc2Vzc2lvbkluZm8uY29udGV4dClcbiAgICAgICAgKTtcblxuICAgICAgICBjb25zdCBpc0Nvbm5lY3RlZElhbUFjdiA9IHRoaXMuc2Vzc2lvbkluZm9TZXJ2aWNlLmRhdGEucGlwZShcbiAgICAgICAgICAgIG1hcChzZXNzaW9uSW5mbyA9PiAhIXNlc3Npb25JbmZvICYmICFzZXNzaW9uSW5mby5jb250ZXh0KVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuY2FuQ29udGludWVMYXRlciA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50RXRhcGVJbmZvLFxuICAgICAgICAgICAgdGhpcy5pc0Nvbm5lY3RlZEN5YmVyLFxuICAgICAgICAgICAgaXNDb25uZWN0ZWRJYW1BY3ZcbiAgICAgICAgXSkucGlwZShcbiAgICAgICAgICAgIG1hcCgoW2N1cnJlbnRFdGFwZUluZm8sIGlzQ29ubmVjdGVkQ3liZXIsIGNvbm5lY3RlZElhbUFjdl0pID0+XG4gICAgICAgICAgICAgICAgdGhpcy5jYW5Db250aW51ZUxhdGVyRm9yRXRhcGUoXG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRFdGFwZUluZm8sXG4gICAgICAgICAgICAgICAgICAgIGlzQ29ubmVjdGVkQ3liZXIsXG4gICAgICAgICAgICAgICAgICAgIGNvbm5lY3RlZElhbUFjdlxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLm1vZGFsVHJpZ2dlckxhYmVsID0gY29tYmluZUxhdGVzdChbXG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRJbmZvUmVwcmlzZS5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChyZXByaXNlSW5mbyA9PiAhIXJlcHJpc2VJbmZvKSxcbiAgICAgICAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgdGhpcy5pc0Nvbm5lY3RlZEN5YmVyXG4gICAgICAgIF0pLnBpcGUoXG4gICAgICAgICAgICBtYXAoKFtoYXNJbmZvUmVwcmlzZSwgaXNDb25uZWN0ZWRDeWJlcl0pID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoaXNDb25uZWN0ZWRDeWJlcikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jb250aW51ZUxhdGVyQ29ubmVjdGVkTGFiZWw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChoYXNJbmZvUmVwcmlzZSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jb250aW51ZUxhdGVyQWxyZWFkeVJlZ2lzdGVyZWRMYWJlbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY29udGludWVMYXRlckxhYmVsO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAodGhpcy50cmlnZ2VyT25QYWdlQ2hhbmdlKSB7XG4gICAgICAgICAgICBsZXQgcmVjb3ZlcnlTdWdnZXN0ZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMudHJpZ2dlckF1dG9tYXRpY2FsbHlTdWIgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgICAgICAgICB0aGlzLmNhbkNvbnRpbnVlTGF0ZXIucGlwZShmaXJzdCgpKSxcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRJbmZvUmVwcmlzZS5waXBlKFxuICAgICAgICAgICAgICAgICAgICBtYXAocmVwcmlzZUluZm8gPT4gISFyZXByaXNlSW5mbyksXG4gICAgICAgICAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKClcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIHRoaXMuaXNDb25uZWN0ZWRDeWJlcixcbiAgICAgICAgICAgICAgICB0aGlzLnJvdXRlci5ldmVudHMucGlwZShcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyKGUgPT4gZSBpbnN0YW5jZW9mIE5hdmlnYXRpb25TdGFydClcbiAgICAgICAgICAgICAgICApXG5cbiAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcnhqcy1hbmd1bGFyL3ByZWZlci1hc3luYy1waXBlXG4gICAgICAgICAgICBdKS5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgICAgKFtjYW5Db250aW51ZUxhdGVyLCBoYXNJbmZvUmVwcmlzZSwgaXNDb25uZWN0ZWRDeWJlcl0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzQ29ubmVjdGVkQ3liZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGhhc0JlZW5TYXZlZCA9XG4gICAgICAgICAgICAgICAgICAgICAgICAhIXRoaXMuZ2VzZGVtU2VydmljZS5sYXN0UmVzcG9uc2U/Lm1ldGE/LnJlZmVyZW5jZTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgY2FuQ29udGludWVMYXRlciAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgIWhhc0luZm9SZXByaXNlICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBoYXNCZWVuU2F2ZWQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICFyZWNvdmVyeVN1Z2dlc3RlZFxuICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHN0b3AgbGlzdGVuaW5nIHRvIHJvdXRlciBldmVudCBvZiB0eXBlIE5hdmlnYXRpb25TdGFydCwgc2luY2Ugd2Ugd2lsbCB0cmlnZ2VyIG9uZSBvbiBuZXh0IGxpbmVcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudHJpZ2dlckF1dG9tYXRpY2FsbHlTdWIudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHByZXZlbnQgbmF2aWdhdGlvbiB0byBuZXh0IHBhZ2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtdKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub3Blbk1vZGFsKGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlY292ZXJ5U3VnZ2VzdGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy50cmlnZ2VyQXV0b21hdGljYWxseVN1Yj8udW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICBzYXZlQW5kT3Blbk1vZGFsKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNsZWFyRXJyb3JzKCk7XG4gICAgICAgIHRoaXMuZ2VzZGVtRXZlbnRTZXJ2aWNlXG4gICAgICAgICAgICAuZm9ybVNlbnRPYnNlcnZhYmxlKClcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIGZpcnN0KCksXG4gICAgICAgICAgICAgICAgZmlsdGVyKHJlc3AgPT4gISFyZXNwLm1ldGEucmVmZXJlbmNlKSxcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5pc0Nvbm5lY3RlZEN5YmVyKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJ4anMtYW5ndWxhci9wcmVmZXItYXN5bmMtcGlwZVxuICAgICAgICAgICAgLnN1YnNjcmliZShpc0Nvbm5lY3RlZEN5YmVyID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLm9wZW5Nb2RhbChpc0Nvbm5lY3RlZEN5YmVyKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuZm9laG5QYWdlU2VydmljZS5yZXF1ZXN0Rm9ybVNhdmUoKTtcbiAgICB9XG5cbiAgICBvcGVuTW9kYWwoaXNDb25uZWN0ZWRDeWJlcjogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLmNsZWFyRXJyb3JzKCk7XG4gICAgICAgIHRoaXMubWFpbFNlbnQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5pc1Zpc2libGUgPSB0cnVlO1xuXG4gICAgICAgIHRoaXMuZXZlbnRzTG9nZ2VyU2VydmljZS5hZGRFdmVudChTZGtFdmVudFR5cGUuUkVDT1ZFUllfTU9EQUxfT1BFTkVEKTtcblxuICAgICAgICBpZiAoIWlzQ29ubmVjdGVkQ3liZXIpIHtcbiAgICAgICAgICAgIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgICAgICAgIHRoaXMuYWN0aW9uUmVjb3ZlcnlTZXJ2aWNlLmdldERlZmF1bHRSZWNvdmVyeVZhbHVlKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlZmVyZW5jZVxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50SW5mb1JlcHJpc2VcbiAgICAgICAgICAgIF0pIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByeGpzLWFuZ3VsYXIvcHJlZmVyLWFzeW5jLXBpcGVcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKChbZGVmYXVsdFJlcHJpc2VJbmZvLCBjdXJyZW50UmVwcmlzZUluZm9dKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubW9kZWwgPSBjdXJyZW50UmVwcmlzZUluZm8gfHwgZGVmYXVsdFJlcHJpc2VJbmZvO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5tb2RlbCA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjbG9zZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jbGVhckVycm9ycygpO1xuICAgICAgICB0aGlzLnVwZGF0ZVZpc2liaWxpdHlTdGF0dXMoZmFsc2UpO1xuICAgIH1cblxuICAgIHNlbmRBbmRDbG9zZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hY3Rpb25SZWNvdmVyeVNlcnZpY2VcbiAgICAgICAgICAgIC5yZWdpc3RlckZvclJlY292ZXJ5KHRoaXMucmVmZXJlbmNlLCB0aGlzLm1vZGVsKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgdGFwKGZvcm1SZWNvdmVyeUVycm9ycyA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybS5yZXNldCgpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25IYW5kbGVyLnNob3VsZERpc3BsYXlFcnJvcnModHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmRpc3BhdGNoRm9ybUVycm9ycykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9uSGFuZGxlci51cGRhdGVFcnJvcnMoW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLmZvcm1SZWNvdmVyeUVycm9ycyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi50aGlzLmdlc2RlbVNlcnZpY2UubGFzdFJlc3BvbnNlLmVycm9yc1xuICAgICAgICAgICAgICAgICAgICAgICAgXSk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25IYW5kbGVyLnVwZGF0ZUVycm9ycyhmb3JtUmVjb3ZlcnlFcnJvcnMpO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtLmZvY3VzRmlyc3RJbkVycm9yKCk7XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVnaXN0cmF0aW9uU3VjY2Vzc2Z1bGwgPSAhZm9ybVJlY292ZXJ5RXJyb3JzLmxlbmd0aDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tYWlsU2VudCA9IHJlZ2lzdHJhdGlvblN1Y2Nlc3NmdWxsO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZWdpc3RyYXRpb25TdWNjZXNzZnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ldmVudHNMb2dnZXJTZXJ2aWNlLmFkZEV2ZW50KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNka0V2ZW50VHlwZS5SRUNPVkVSWV9SRUdJU1RFUkVEXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhlIGZvcm0gY291bGQgaGF2ZSBiZWVuIHVwZGF0ZWQgYnkgdGhlIGJhY2tlbmQgb24gcmVjb3ZlcnkgcmVnaXN0cmF0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmdlc2RlbVNlcnZpY2VcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAucmV0cmlldmUodGhpcy5yZWZlcmVuY2UsIHRoaXMuZGlzcGF0Y2hGb3JtRXJyb3JzKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByeGpzLWFuZ3VsYXIvcHJlZmVyLWFzeW5jLXBpcGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJ4anMtYW5ndWxhci9wcmVmZXItYXN5bmMtcGlwZVxuICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIHVwZGF0ZVZpc2liaWxpdHlTdGF0dXMoc3RhdHVzOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIC8vIFN0b3JlIHRoZSBwcmV2aW91cyB2YWx1ZSB0byBoYW5kbGUgdHJhbnNpdGlvbnMgZnJvbSBvbmUgc3RhdGUgdG8gYW5vdGhlci5cbiAgICAgICAgY29uc3Qgd2FzT3BlbiA9IHRoaXMuaXNWaXNpYmxlO1xuXG4gICAgICAgIC8vIEluIGNhc2UgdGhlIG1vZGFsIGlzIGNsb3NlZCBieSBhbm90aGVyIG1lYW4uXG4gICAgICAgIHRoaXMuaXNWaXNpYmxlID0gc3RhdHVzO1xuXG4gICAgICAgIC8vIEZvY3VzIGJhY2sgb24gdGhlIHRyaWdnZXIuIE5vIG5lZWQgZm9yIGEgc2V0VGltZW91dCBhcyB0aGUgdHJpZ2dlciBzaG91bGQgc3RpbGwgYmUgaW4gdGhlIERPTS5cbiAgICAgICAgLy8gT25seSBkb2VzIGl0IHdoZW4gdGhlIG1vZGFsIGlzIGNsb3NlZCBmcm9tIGEgb3BlbiBzdGF0ZSB0byBhdm9pZCB0byBzZXRcbiAgICAgICAgLy8gdGhlIGZvY3VzIHdoZW4gdGhlIHBhZ2UgbG9hZHMuXG4gICAgICAgIGlmICh3YXNPcGVuICYmICF0aGlzLmlzVmlzaWJsZSAmJiB0aGlzLm1vZGFsVHJpZ2dlcikge1xuICAgICAgICAgICAgdGhpcy5tb2RhbFRyaWdnZXIubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjYW5Db250aW51ZUxhdGVyRm9yRXRhcGUoXG4gICAgICAgIGN1cnJlbnRFdGFwZUluZm86IEV0YXBlSW5mbyxcbiAgICAgICAgaXNDb25uZWN0ZWRDeWJlcjogYm9vbGVhbixcbiAgICAgICAgaXNDb25uZWN0ZWRJYW1BY3Y6IGJvb2xlYW5cbiAgICApOiBib29sZWFuIHtcbiAgICAgICAgaWYgKGlzQ29ubmVjdGVkSWFtQWN2KSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBJZiBub3QgY29ubmVjdGVkLCB0YWtlIHRoZSBcInJlcHJpc2VQb3NzaWJsZVwiIGZsYWcgZnJvbSBDYXRQcmVzdFxuICAgICAgICAvLyBpbnRvIGFjY291bnQuXG4gICAgICAgIGlmICghaXNDb25uZWN0ZWRDeWJlcikge1xuICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnRFdGFwZUluZm8gJiYgY3VycmVudEV0YXBlSW5mby5yZXByaXNlUG9zc2libGU7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBJZiBjb25uZWN0ZWQsIG9ubHkgZGlzcGxheSB0aGUgYnV0dG9uIGlmIHRoZSBjdXJyZW50IHN0ZXAgaWYgdGhlIGluaXRpYWxcbiAgICAgICAgLy8gc3RlcC5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIGN1cnJlbnRFdGFwZUluZm8gJiZcbiAgICAgICAgICAgIGN1cnJlbnRFdGFwZUluZm8uaWRNZXRpZXJFdGFwZSA9PT1cbiAgICAgICAgICAgICAgICBjdXJyZW50RXRhcGVJbmZvLmlkTWV0aWVyUHJlc3RhdGlvblxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2xlYXJFcnJvcnMoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5kaXNwYXRjaEZvcm1FcnJvcnMpIHtcbiAgICAgICAgICAgIHRoaXMudmFsaWRhdGlvbkhhbmRsZXIuc2hvdWxkRGlzcGxheUVycm9ycyh0cnVlKTtcbiAgICAgICAgICAgIHRoaXMudmFsaWRhdGlvbkhhbmRsZXIudXBkYXRlRXJyb3JzKFtdKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxidXR0b25cbiAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICBpZD1cImNvbnRpbnVlTGF0ZXJCdXR0b25cIlxuICAgIGNsYXNzPVwiYnRuIGJ0bi1saW5rIHBlLTAgcHMtMCBuby10ZXh0LXRyYW5zZm9ybVwiXG4gICAgKm5nSWY9XCJjYW5Db250aW51ZUxhdGVyIHwgYXN5bmNcIlxuICAgIFtpbm5lckhUTUxdPVwibW9kYWxUcmlnZ2VyTGFiZWwgfCBhc3luY1wiXG4gICAgKGNsaWNrKT1cInNhdmVBbmRPcGVuTW9kYWwoKVwiXG4gICAgI21vZGFsVHJpZ2dlclxuPjwvYnV0dG9uPlxuXG48bmctY29udGFpbmVyICpuZ0lmPVwiY3VycmVudEluZm9SZXByaXNlIHwgYXN5bmMgYXMgY3VycmVudEluZm9cIj5cbiAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwic21hbGxcIlxuICAgICAgICBbaW5uZXJIVE1MXT1cIlxuICAgICAgICAgICAgJ2dlc2RlbS1hY3Rpb24tcmVjb3ZlcnktcmVnaXN0cmF0aW9uLmN1cnJlbnQtaW5mby5wcmV2aWV3J1xuICAgICAgICAgICAgICAgIHwgZnJvbURpY3Rpb25hcnlcbiAgICAgICAgICAgICAgICAgICAgOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJlY292ZXJ5TWFpbDogY3VycmVudEluZm8uZW1haWwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGxhc3RSZWdpc3RyYXRpb246XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY3VycmVudEluZm8ubGFzdFVwZGF0ZSB8IGRpc3BsYXlEYXRlKVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgXCJcbiAgICA+PC9kaXY+XG48L25nLWNvbnRhaW5lcj5cblxuPGZvZWhuLW1vZGFsXG4gICAgKm5nSWY9XCJjdXJyZW50RXRhcGVJbmZvIHwgYXN5bmMgYXMgZXRhcGVJbmZvXCJcbiAgICBpZD1cImFjdGlvbi1yZWNvdmVyeS1yZWdpc3RyYXRpb24tbW9kYWxcIlxuICAgIFttb2RhbFNpemVdPVwiIShpc0Nvbm5lY3RlZEN5YmVyIHwgYXN5bmMpID8gJ21vZGFsLWxnJyA6ICdtb2RhbC1tZCdcIlxuICAgIFttb2RhbEhlYWRlclRleHRdPVwiXG4gICAgICAgICdnZXNkZW0tYWN0aW9uLXJlY292ZXJ5LXJlZ2lzdHJhdGlvbi5tb2RhbEhlYWRlclRleHQnIHwgZnJvbURpY3Rpb25hcnlcbiAgICBcIlxuICAgIFtpc01vZGFsVmlzaWJsZV09XCJpc01vZGFsVmlzaWJsZVwiXG4gICAgKGlzTW9kYWxWaXNpYmxlQ2hhbmdlKT1cInVwZGF0ZVZpc2liaWxpdHlTdGF0dXMoJGV2ZW50KVwiXG4+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiEhKGlzQ29ubmVjdGVkQ3liZXIgfCBhc3luYylcIj5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAgIFtpbm5lckhUTUxdPVwiXG4gICAgICAgICAgICAgICAgJ2dlc2RlbS1hY3Rpb24tcmVjb3ZlcnktcmVnaXN0cmF0aW9uLmNvbm5lY3RlZC5pbmZvJ1xuICAgICAgICAgICAgICAgICAgICB8IGZyb21EaWN0aW9uYXJ5XG4gICAgICAgICAgICBcIlxuICAgICAgICA+PC9zcGFuPlxuXG4gICAgICAgIDxhIGhyZWY9XCIvMTAwMDAyL2RlbWFuZGVzL3NlYXJjaC9NSU5FL0lOSVRJQUxcIj5cbiAgICAgICAgICAgIDxmb2Vobi1pY29uLXBlbmNpbFxuICAgICAgICAgICAgICAgIGNsYXNzPVwiaDNcIlxuICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgW3RpdGxlXT1cIlxuICAgICAgICAgICAgICAgICAgICAnZ2VzZGVtLWFjdGlvbi1yZWNvdmVyeS1yZWdpc3RyYXRpb24uY29ubmVjdGVkLmluZm8uZHJhZnQtbGluay10ZXh0J1xuICAgICAgICAgICAgICAgICAgICAgICAgfCBmcm9tRGljdGlvbmFyeVxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICA+PC9mb2Vobi1pY29uLXBlbmNpbD5cbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJcbiAgICAgICAgICAgICAgICAgICAgJ2dlc2RlbS1hY3Rpb24tcmVjb3ZlcnktcmVnaXN0cmF0aW9uLmNvbm5lY3RlZC5pbmZvLmRyYWZ0LWxpbmstdGV4dCdcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgZnJvbURpY3Rpb25hcnlcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgPjwvc3Bhbj5cbiAgICAgICAgPC9hPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiEoaXNDb25uZWN0ZWRDeWJlciB8IGFzeW5jKVwiPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAgIGN1cnJlbnRJbmZvUmVwcmlzZSB8IGFzeW5jIGFzIGN1cnJlbnRJbmZvO1xuICAgICAgICAgICAgICAgIGVsc2Ugbm9DdXJyZW50SW5mb1xuICAgICAgICAgICAgXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYWxlcnQgYWxlcnQtaW5mb1wiXG4gICAgICAgICAgICAgICAgKm5nSWY9XCIhbWFpbFNlbnRcIlxuICAgICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwiXG4gICAgICAgICAgICAgICAgICAgICdnZXNkZW0tYWN0aW9uLXJlY292ZXJ5LXJlZ2lzdHJhdGlvbi5ub3QtY29ubmVjdGVkLmN1cnJlbnQtaW5mbydcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgZnJvbURpY3Rpb25hcnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXN0UmVnaXN0cmF0aW9uOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY3VycmVudEluZm8ubGFzdFVwZGF0ZSB8IGRpc3BsYXlEYXRlKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkcmFmdERlbVJldGVudGlvbkRheXNQdWJsaWM6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV0YXBlSW5mby5kcmFmdERlbVJldGVudGlvbkRheXNQdWJsaWM/LnRvU3RyaW5nKClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgPjwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJhbGVydCBhbGVydC1pbmZvXCJcbiAgICAgICAgICAgICAgICAqbmdJZj1cIm1haWxTZW50XCJcbiAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cIlxuICAgICAgICAgICAgICAgICAgICAnZ2VzZGVtLWFjdGlvbi1yZWNvdmVyeS1yZWdpc3RyYXRpb24ubm90LWNvbm5lY3RlZC5pbmZvLnNlbnQnXG4gICAgICAgICAgICAgICAgICAgICAgICB8IGZyb21EaWN0aW9uYXJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVjb3ZlcnlNYWlsOiBjdXJyZW50SW5mby5lbWFpbCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWNvdmVyeU1vYmlsZTogY3VycmVudEluZm8ubW9iaWxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRyYWZ0RGVtUmV0ZW50aW9uRGF5c1B1YmxpYzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXRhcGVJbmZvLmRyYWZ0RGVtUmV0ZW50aW9uRGF5c1B1YmxpYz8udG9TdHJpbmcoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICA+PC9kaXY+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxmb2Vobi1mb3JtICpuZ0lmPVwiIW1haWxTZW50XCIgW3Nob3VsZERpc3BsYXlBbGVydFN1bW1hcnldPVwiZmFsc2VcIj5cbiAgICAgICAgICAgIDxmb2Vobi1pbnB1dC1lbWFpbFxuICAgICAgICAgICAgICAgIFtsYWJlbF09XCJcbiAgICAgICAgICAgICAgICAgICAgJ2dlc2RlbS1hY3Rpb24tcmVjb3ZlcnktcmVnaXN0cmF0aW9uLm5vdC1jb25uZWN0ZWQuZW1haWwubGFiZWwnXG4gICAgICAgICAgICAgICAgICAgICAgICB8IGZyb21EaWN0aW9uYXJ5XG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICBbaGVscFRleHRdPVwiXG4gICAgICAgICAgICAgICAgICAgICdnZXNkZW0tYWN0aW9uLXJlY292ZXJ5LXJlZ2lzdHJhdGlvbi5ub3QtY29ubmVjdGVkLmVtYWlsLmhlbHAtdGV4dCdcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgZnJvbURpY3Rpb25hcnlcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgIFsobW9kZWwpXT1cIm1vZGVsLmVtYWlsXCJcbiAgICAgICAgICAgICAgICBuYW1lPVwiZW1haWxcIlxuICAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgID48L2ZvZWhuLWlucHV0LWVtYWlsPlxuXG4gICAgICAgICAgICA8Zm9laG4taW5wdXQtcGhvbmVcbiAgICAgICAgICAgICAgICBbbGFiZWxdPVwiXG4gICAgICAgICAgICAgICAgICAgICdnZXNkZW0tYWN0aW9uLXJlY292ZXJ5LXJlZ2lzdHJhdGlvbi5ub3QtY29ubmVjdGVkLm1vYmlsZS5sYWJlbCdcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgZnJvbURpY3Rpb25hcnlcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgIFthY2NlcHRJbnRlcm5hdGlvbmFsXT1cInRydWVcIlxuICAgICAgICAgICAgICAgIFthY2NlcHRNb2JpbGVQaG9uZV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBbYWNjZXB0UGhvbmVdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgIFsobW9kZWwpXT1cIm1vZGVsLm1vYmlsZVwiXG4gICAgICAgICAgICAgICAgbmFtZT1cIm1vYmlsZVwiXG4gICAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cInRydWVcIlxuICAgICAgICAgICAgPjwvZm9laG4taW5wdXQtcGhvbmU+XG5cbiAgICAgICAgICAgIDxmb2Vobi1pbnB1dC10ZXh0XG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cIlxuICAgICAgICAgICAgICAgICAgICAnZ2VzZGVtLWFjdGlvbi1yZWNvdmVyeS1yZWdpc3RyYXRpb24ubm90LWNvbm5lY3RlZC5yZWZlcmVuY2UtaW50ZXJuZS5sYWJlbCdcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgZnJvbURpY3Rpb25hcnlcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgIFtoZWxwVGV4dF09XCJcbiAgICAgICAgICAgICAgICAgICAgJ2dlc2RlbS1hY3Rpb24tcmVjb3ZlcnktcmVnaXN0cmF0aW9uLm5vdC1jb25uZWN0ZWQucmVmZXJlbmNlLWludGVybmUuaGVscC10ZXh0J1xuICAgICAgICAgICAgICAgICAgICAgICAgfCBmcm9tRGljdGlvbmFyeVxuICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgWyhtb2RlbCldPVwibW9kZWwucmVmZXJlbmNlSW50ZXJuZVwiXG4gICAgICAgICAgICAgICAgbmFtZT1cInJlZmVyZW5jZUludGVybmVcIlxuICAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJmYWxzZVwiXG4gICAgICAgICAgICA+PC9mb2Vobi1pbnB1dC10ZXh0PlxuICAgICAgICA8L2ZvZWhuLWZvcm0+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8ZGl2IG1vZGFsLWZvb3RlciBjbGFzcz1cInctMTAwXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLW1kLWZsZXhcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtcy1tZC1hdXRvIG1lLW1kLTIgbWItMiBtdC0yXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBpZD1cImNvbnRpbnVlTGF0ZXJNb2RhbENhbmNlbEJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2xvc2UoKVwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnkgdy0xMDBcIlxuICAgICAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgJ2dlc2RlbS1hY3Rpb24tcmVjb3ZlcnktcmVnaXN0cmF0aW9uLmNhbmNlbC5idXR0b24nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBmcm9tRGljdGlvbmFyeVxuICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICpuZ0lmPVwiIShpc0Nvbm5lY3RlZEN5YmVyIHwgYXN5bmMpXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm1zLW1kLTAgbWUtbWQtMiBtYi0yIG10LTJcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJjb250aW51ZUxhdGVyTW9kYWxTYXZlQnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZW5kQW5kQ2xvc2UoKVwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1zdWNjZXNzIHctMTAwXCJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhbWFpbFNlbnRcIlxuICAgICAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgJ2dlc2RlbS1hY3Rpb24tcmVjb3ZlcnktcmVnaXN0cmF0aW9uLnNhdmUuYnV0dG9uJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZnJvbURpY3Rpb25hcnlcbiAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2ZvZWhuLW1vZGFsPlxuXG48bmctdGVtcGxhdGUgI25vQ3VycmVudEluZm8+XG4gICAgPGRpdlxuICAgICAgICBjbGFzcz1cImFsZXJ0IGFsZXJ0LWluZm9cIlxuICAgICAgICBbaW5uZXJIVE1MXT1cIlxuICAgICAgICAgICAgJ2dlc2RlbS1hY3Rpb24tcmVjb3ZlcnktcmVnaXN0cmF0aW9uLm5vdC1jb25uZWN0ZWQubm90LXJlZ2lzdGVyZWQuaW5mbydcbiAgICAgICAgICAgICAgICB8IGZyb21EaWN0aW9uYXJ5XG4gICAgICAgICAgICAgICAgICAgIDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBkcmFmdERlbVJldGVudGlvbkRheXNQdWJsaWM6IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRFdGFwZUluZm8gfCBhc3luY1xuICAgICAgICAgICAgICAgICAgICAgICAgICApLmRyYWZ0RGVtUmV0ZW50aW9uRGF5c1B1YmxpYz8udG9TdHJpbmcoKVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgXCJcbiAgICA+PC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
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=
@@ -1834,12 +1834,15 @@ class GesdemErrorHandlerService {
1834
1834
  this.router = router;
1835
1835
  this.iamExpiredInterceptorService = iamExpiredInterceptorService;
1836
1836
  }
1837
- handleGesdemError(prefix, reference,
1837
+ handleGesdemError(prefix, reference, reCaptchaByPassUUID,
1838
1838
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
1839
1839
  response) {
1840
1840
  const isPdfGenerationError = response.status === 500 &&
1841
1841
  response.error &&
1842
1842
  response.error.code === 'PDF_GENERATION_ERROR';
1843
+ if (isPdfGenerationError) {
1844
+ return this.onPdfGenerationError(response.error.message);
1845
+ }
1843
1846
  const isSessionExpired = response.status === 401 &&
1844
1847
  response.error &&
1845
1848
  response.error.code === 'Unauthorized';
@@ -1848,9 +1851,6 @@ class GesdemErrorHandlerService {
1848
1851
  : response.error
1849
1852
  ? response.error.code
1850
1853
  : null;
1851
- if (isPdfGenerationError) {
1852
- return this.onPdfGenerationError(response.error.message);
1853
- }
1854
1854
  return this.iamExpiredInterceptorService.isIamSessionExpired.pipe(switchMap$1(isIamSessionExpired => {
1855
1855
  if (isIamSessionExpired) {
1856
1856
  // iamExpiredInterceptorService will display the modal (RedirectComponent)
@@ -1858,7 +1858,7 @@ class GesdemErrorHandlerService {
1858
1858
  return throwError(() => true);
1859
1859
  }
1860
1860
  else {
1861
- return this.onOtherError(prefix, reference, errorCode);
1861
+ return this.onOtherError(prefix, reference, errorCode, reCaptchaByPassUUID);
1862
1862
  }
1863
1863
  }));
1864
1864
  }
@@ -1869,7 +1869,7 @@ class GesdemErrorHandlerService {
1869
1869
  this.growlService.addWithType(GrowlType.DANGER, message);
1870
1870
  return throwError(() => true);
1871
1871
  }
1872
- onOtherError(prefix, reference, errorCode) {
1872
+ onOtherError(prefix, reference, errorCode, reCaptchaByPassUUID) {
1873
1873
  // redirect to error page while preserving reference in URL
1874
1874
  const commands = [];
1875
1875
  if (prefix) {
@@ -1879,9 +1879,12 @@ class GesdemErrorHandlerService {
1879
1879
  commands.push(reference);
1880
1880
  }
1881
1881
  commands.push('erreur');
1882
- let params = null;
1882
+ const params = {};
1883
1883
  if (errorCode) {
1884
- params = { errorCode };
1884
+ params.errorCode = errorCode;
1885
+ }
1886
+ if (!!reCaptchaByPassUUID) {
1887
+ params.reCaptchaByPassUUID = reCaptchaByPassUUID;
1885
1888
  }
1886
1889
  this.router.navigate(commands, {
1887
1890
  replaceUrl: true,
@@ -1959,11 +1962,12 @@ class GesdemHandlerService {
1959
1962
  /**
1960
1963
  *
1961
1964
  * @param reference de la demande
1965
+ * @param reCaptchaByPassUUID
1962
1966
  * @param forceRefreshIfNew allows to force the cleaning if reference is null
1963
1967
  * @param byPassEmitResponse boolean used to emit or not gesdem last response (default is false)
1964
1968
  * @returns Observable
1965
1969
  */
1966
- require(reference, forceRefreshIfNew, byPassEmitResponse
1970
+ require(reference, reCaptchaByPassUUID, forceRefreshIfNew, byPassEmitResponse
1967
1971
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
1968
1972
  ) {
1969
1973
  const isNewReference = !!reference &&
@@ -1975,7 +1979,7 @@ class GesdemHandlerService {
1975
1979
  this._lastResponse = null;
1976
1980
  }
1977
1981
  if (reference && !this._lastResponse) {
1978
- return this.retrieve(reference);
1982
+ return this.retrieve(reference, reCaptchaByPassUUID);
1979
1983
  }
1980
1984
  if (this._lastResponse && !byPassEmitResponse) {
1981
1985
  this.emitResponse(this._lastResponse);
@@ -1991,11 +1995,11 @@ class GesdemHandlerService {
1991
1995
  if (this._lastResponse) {
1992
1996
  url += `?reference=${this._lastResponse.meta.reference}`;
1993
1997
  }
1994
- return this.http.post(url, null).pipe(tap(this.emitResponse.bind(this)), map(() => true), catchError((response) => this.handleGesdemError(null, response)));
1998
+ return this.http.post(url, null).pipe(tap(this.emitResponse.bind(this)), map(() => true), catchError((response) => this.handleGesdemError(null, null, response)));
1995
1999
  }
1996
2000
  retrieve(
1997
2001
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
1998
- reference, shouldDispatchErrors = true
2002
+ reference, reCaptchaByPassUUID, shouldDispatchErrors = true
1999
2003
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
2000
2004
  ) {
2001
2005
  let url = 'api';
@@ -2005,7 +2009,7 @@ class GesdemHandlerService {
2005
2009
  url = `${url}/validated/${reference}`;
2006
2010
  return this.http.get(url).pipe(
2007
2011
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
2008
- tap((resp) => this.emitResponse(resp, shouldDispatchErrors)), map(() => true), catchError((response) => this.handleGesdemError(reference, response)));
2012
+ tap((resp) => this.emitResponse(resp, shouldDispatchErrors)), map(() => true), catchError((response) => this.handleGesdemError(reference, reCaptchaByPassUUID, response)));
2009
2013
  }
2010
2014
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
2011
2015
  retrieveActionStatut(reference) {
@@ -2014,7 +2018,7 @@ class GesdemHandlerService {
2014
2018
  url = `api/${this.prefix}`;
2015
2019
  }
2016
2020
  url = `${url}/${reference}/action-statut`;
2017
- return this.http.get(url).pipe(map(status => status), catchError((response) => this.handleGesdemError(reference, response)));
2021
+ return this.http.get(url).pipe(map(status => status), catchError((response) => this.handleGesdemError(reference, null, response)));
2018
2022
  }
2019
2023
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
2020
2024
  validate(form) {
@@ -2029,9 +2033,10 @@ class GesdemHandlerService {
2029
2033
  form, url, displaySuccessMessage
2030
2034
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
2031
2035
  ) {
2036
+ const reCaptchaByPassUUID = this.route.snapshot.queryParams.reCaptchaByPassUUID;
2032
2037
  let params = new HttpParams();
2033
- if (!!this.route.snapshot.queryParams.reCaptchaByPassUUID) {
2034
- params = params.set('reCaptchaByPassUUID', this.route.snapshot.queryParams.reCaptchaByPassUUID);
2038
+ if (!!reCaptchaByPassUUID) {
2039
+ params = params.set('reCaptchaByPassUUID', reCaptchaByPassUUID);
2035
2040
  }
2036
2041
  if (!!this._lastResponse?.meta?.reference) {
2037
2042
  params = params.set('reference', this._lastResponse.meta.reference);
@@ -2039,7 +2044,7 @@ class GesdemHandlerService {
2039
2044
  if (this._captchaToken) {
2040
2045
  params = params.set('reCaptchaToken', this._captchaToken);
2041
2046
  }
2042
- return this.http.post(url, form, { params }).pipe(tap(this.emitResponse.bind(this)), catchError((response) => this.handleGesdemError(null, response)), switchMap((resp) => forkJoin([
2047
+ return this.http.post(url, form, { params }).pipe(tap(this.emitResponse.bind(this)), catchError((response) => this.handleGesdemError(null, reCaptchaByPassUUID, response)), switchMap((resp) => forkJoin([
2043
2048
  this.sessionInfo.data.pipe(first(), map(data => !!data)),
2044
2049
  of(resp)
2045
2050
  ])), tap(([isConnected, resp]) => {
@@ -2065,13 +2070,13 @@ class GesdemHandlerService {
2065
2070
  }
2066
2071
  this.validationHandlerService.updateErrors(shouldDispatchErrors ? response.errors : []);
2067
2072
  }
2068
- handleGesdemError(requestedReference,
2073
+ handleGesdemError(requestedReference, reCaptchaByPassUUID,
2069
2074
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
2070
2075
  response) {
2071
2076
  const reference = this._lastResponse
2072
2077
  ? this._lastResponse.meta.reference
2073
2078
  : requestedReference;
2074
- return this.errorHandlerService.handleGesdemError(this.prefix, reference, response);
2079
+ return this.errorHandlerService.handleGesdemError(this.prefix, reference, reCaptchaByPassUUID, response);
2075
2080
  }
2076
2081
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: GesdemHandlerService, deps: [{ token: i1.HttpClient }, { token: GrowlBrokerService }, { token: ValidationHandlerService }, { token: i1$1.ActivatedRoute }, { token: GesdemErrorHandlerService }, { token: SessionInfo }, { token: SdkDictionaryService }], target: i0.ɵɵFactoryTarget.Injectable }); }
2077
2082
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: GesdemHandlerService, providedIn: 'root' }); }
@@ -3820,7 +3825,7 @@ const gesdemLoaderGuard = (next) => {
3820
3825
  return of(true);
3821
3826
  }
3822
3827
  return gesdemService
3823
- .require(next.params.reference, true, true)
3828
+ .require(next.params.reference, next.queryParams?.reCaptchaByPassUUID, true, true)
3824
3829
  .pipe(catchError(() => of(true)));
3825
3830
  };
3826
3831
 
@@ -4949,7 +4954,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
4949
4954
  }] } });
4950
4955
 
4951
4956
  class GesdemActionRecoveryLoginComponent {
4952
- constructor(recoveryService, growlService, confirmModalService, validationHandler, applicationInfoService, gesDemHandlerService, dictionaryService, router, eventsLoggerService) {
4957
+ constructor(recoveryService, growlService, confirmModalService, validationHandler, applicationInfoService, gesDemHandlerService, dictionaryService, router, route, eventsLoggerService) {
4953
4958
  this.recoveryService = recoveryService;
4954
4959
  this.growlService = growlService;
4955
4960
  this.confirmModalService = confirmModalService;
@@ -4958,6 +4963,7 @@ class GesdemActionRecoveryLoginComponent {
4958
4963
  this.gesDemHandlerService = gesDemHandlerService;
4959
4964
  this.dictionaryService = dictionaryService;
4960
4965
  this.router = router;
4966
+ this.route = route;
4961
4967
  this.eventsLoggerService = eventsLoggerService;
4962
4968
  this.missingRecoveryInfos = false;
4963
4969
  this.alreadyTransferred = false;
@@ -4992,7 +4998,8 @@ class GesdemActionRecoveryLoginComponent {
4992
4998
  }
4993
4999
  validateOtp() {
4994
5000
  this.eventsLoggerService.addEvent(SdkEventType.RECOVERY_LOGIN_STARTED);
4995
- if (!this.recoveryService.hasCaptchaToken()) {
5001
+ if (!this.route.snapshot.queryParams.reCaptchaByPassUUID &&
5002
+ !this.recoveryService.hasCaptchaToken()) {
4996
5003
  this.loginForm.reset();
4997
5004
  this.validationHandler.shouldDisplayErrors(true);
4998
5005
  this.validationHandler.updateErrors([
@@ -5014,7 +5021,7 @@ class GesdemActionRecoveryLoginComponent {
5014
5021
  if (isPasswordValid) {
5015
5022
  this.eventsLoggerService.addEvent(SdkEventType.RECOVERY_LOGIN_SUCCESS);
5016
5023
  this.gesDemHandlerService
5017
- .retrieve(this.reference)
5024
+ .retrieve(this.reference, null)
5018
5025
  // eslint-disable-next-line rxjs/no-nested-subscribe,rxjs-angular/prefer-async-pipe
5019
5026
  .subscribe((response) => {
5020
5027
  if (response) {
@@ -5077,13 +5084,13 @@ class GesdemActionRecoveryLoginComponent {
5077
5084
  // eslint-disable-next-line rxjs-angular/prefer-async-pipe
5078
5085
  .subscribe(otpRecipient => (this.otpRecipient = otpRecipient));
5079
5086
  }
5080
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: GesdemActionRecoveryLoginComponent, deps: [{ token: GesdemActionRecoveryService }, { token: GrowlBrokerService }, { token: FoehnConfirmModalService }, { token: ValidationHandlerService }, { token: ApplicationInfoService }, { token: GesdemHandlerService }, { token: SdkDictionaryService }, { token: i1$1.Router }, { token: SdkEventsLoggerService }], target: i0.ɵɵFactoryTarget.Component }); }
5087
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: GesdemActionRecoveryLoginComponent, deps: [{ token: GesdemActionRecoveryService }, { token: GrowlBrokerService }, { token: FoehnConfirmModalService }, { token: ValidationHandlerService }, { token: ApplicationInfoService }, { token: GesdemHandlerService }, { token: SdkDictionaryService }, { token: i1$1.Router }, { token: i1$1.ActivatedRoute }, { token: SdkEventsLoggerService }], target: i0.ɵɵFactoryTarget.Component }); }
5081
5088
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: GesdemActionRecoveryLoginComponent, selector: "gesdem-action-recovery-login", inputs: { reference: "reference", redirectTarget: "redirectTarget" }, viewQueries: [{ propertyName: "loginForm", first: true, predicate: FoehnFormComponent, descendants: true }, { propertyName: "recaptchaComponent", first: true, predicate: SdkRecaptchaComponent, descendants: true }], ngImport: i0, template: "<div class=\"container mt-5\">\n <div class=\"alert alert-danger\" *ngIf=\"missingRecoveryInfos\">\n Vous n'avez pas indiqu\u00E9 d'informations de contact pour la reprise de\n cette demande, merci de contacter le support.\n </div>\n <div class=\"alert alert-danger\" *ngIf=\"alreadyTransferred\">\n La demande que vous essayez de reprendre a d\u00E9j\u00E0 \u00E9t\u00E9 transmise, elle\n n'est plus modifiable.\n </div>\n\n <foehn-form [shouldDisplayAlertSummary]=\"false\" *ngIf=\"otpRecipient\">\n <div class=\"row\">\n <div class=\"col-md-8\">\n <foehn-input-text\n [label]=\"\n 'Veuillez saisir le code envoy\u00E9 par SMS au num\u00E9ro ' +\n otpRecipient\n \"\n [(model)]=\"otp\"\n name=\"otp\"\n [required]=\"true\"\n ></foehn-input-text>\n </div>\n </div>\n\n <div class=\"row\">\n <div class=\"col-md-8\">\n Pour obtenir un nouveau code, vous devez recliquer sur le\n <a [href]=\"redirectTarget\">lien</a>\n de reprise de la demande\n </div>\n </div>\n\n <br />\n\n <div class=\"row\">\n <div class=\"col-md-8\">\n <captcha></captcha>\n\n <button\n id=\"nextButton\"\n type=\"submit\"\n class=\"btn btn-dark float-end\"\n (click)=\"validateOtp()\"\n >\n Suivant\n </button>\n </div>\n </div>\n </foehn-form>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FoehnInputTextComponent, selector: "foehn-input-text", inputs: ["numberOnly"] }, { kind: "component", type: FoehnFormComponent, selector: "foehn-form", inputs: ["shouldDisplayAlertSummary"] }, { kind: "component", type: SdkRecaptchaComponent, selector: "captcha" }] }); }
5082
5089
  }
5083
5090
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: GesdemActionRecoveryLoginComponent, decorators: [{
5084
5091
  type: Component,
5085
5092
  args: [{ selector: 'gesdem-action-recovery-login', template: "<div class=\"container mt-5\">\n <div class=\"alert alert-danger\" *ngIf=\"missingRecoveryInfos\">\n Vous n'avez pas indiqu\u00E9 d'informations de contact pour la reprise de\n cette demande, merci de contacter le support.\n </div>\n <div class=\"alert alert-danger\" *ngIf=\"alreadyTransferred\">\n La demande que vous essayez de reprendre a d\u00E9j\u00E0 \u00E9t\u00E9 transmise, elle\n n'est plus modifiable.\n </div>\n\n <foehn-form [shouldDisplayAlertSummary]=\"false\" *ngIf=\"otpRecipient\">\n <div class=\"row\">\n <div class=\"col-md-8\">\n <foehn-input-text\n [label]=\"\n 'Veuillez saisir le code envoy\u00E9 par SMS au num\u00E9ro ' +\n otpRecipient\n \"\n [(model)]=\"otp\"\n name=\"otp\"\n [required]=\"true\"\n ></foehn-input-text>\n </div>\n </div>\n\n <div class=\"row\">\n <div class=\"col-md-8\">\n Pour obtenir un nouveau code, vous devez recliquer sur le\n <a [href]=\"redirectTarget\">lien</a>\n de reprise de la demande\n </div>\n </div>\n\n <br />\n\n <div class=\"row\">\n <div class=\"col-md-8\">\n <captcha></captcha>\n\n <button\n id=\"nextButton\"\n type=\"submit\"\n class=\"btn btn-dark float-end\"\n (click)=\"validateOtp()\"\n >\n Suivant\n </button>\n </div>\n </div>\n </foehn-form>\n</div>\n" }]
5086
- }], ctorParameters: () => [{ type: GesdemActionRecoveryService }, { type: GrowlBrokerService }, { type: FoehnConfirmModalService }, { type: ValidationHandlerService }, { type: ApplicationInfoService }, { type: GesdemHandlerService }, { type: SdkDictionaryService }, { type: i1$1.Router }, { type: SdkEventsLoggerService }], propDecorators: { reference: [{
5093
+ }], ctorParameters: () => [{ type: GesdemActionRecoveryService }, { type: GrowlBrokerService }, { type: FoehnConfirmModalService }, { type: ValidationHandlerService }, { type: ApplicationInfoService }, { type: GesdemHandlerService }, { type: SdkDictionaryService }, { type: i1$1.Router }, { type: i1$1.ActivatedRoute }, { type: SdkEventsLoggerService }], propDecorators: { reference: [{
5087
5094
  type: Input
5088
5095
  }], redirectTarget: [{
5089
5096
  type: Input
@@ -12738,7 +12745,7 @@ class GesdemActionRecoveryRegistrationComponent {
12738
12745
  this.eventsLoggerService.addEvent(SdkEventType.RECOVERY_REGISTERED);
12739
12746
  // the form could have been updated by the backend on recovery registration
12740
12747
  this.gesdemService
12741
- .retrieve(this.reference, this.dispatchFormErrors)
12748
+ .retrieve(this.reference, null, this.dispatchFormErrors)
12742
12749
  // eslint-disable-next-line rxjs-angular/prefer-async-pipe
12743
12750
  .subscribe();
12744
12751
  }