@xsolla/payment-client-core 0.2.100 → 0.2.102

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.
Files changed (26) hide show
  1. package/esm2022/lib/core/payment/actions/next-action.interface.mjs +1 -1
  2. package/esm2022/lib/core/payment/actions/next-actions.mjs +3 -1
  3. package/esm2022/lib/core/payment/actions/server-error/server-error.action.class.mjs +22 -0
  4. package/esm2022/lib/core/payment/actions/server-error/server-error.action.type.mjs +2 -0
  5. package/esm2022/lib/core/payment/requests/initialize/initialize.service.mjs +17 -7
  6. package/esm2022/lib/core/payment/requests/submit/submit.service.mjs +16 -4
  7. package/esm2022/lib/core/payment/requests/sync/sync.service.mjs +20 -7
  8. package/esm2022/lib/core/sdk-payment-systems/apple-pay/apple-pay.service.mjs +1 -6
  9. package/esm2022/lib/core/sdk-payment-systems/apple-pay/commands-for-pages.enum.mjs +1 -1
  10. package/esm2022/lib/core/sdk-payment-systems/apple-pay/external-window-communication/external-window-communication.service.mjs +1 -5
  11. package/fesm2022/xsolla-payment-client-core.mjs +97 -57
  12. package/fesm2022/xsolla-payment-client-core.mjs.map +1 -1
  13. package/lib/core/payment/actions/next-action.interface.d.ts +2 -1
  14. package/lib/core/payment/actions/server-error/server-error.action.class.d.ts +10 -0
  15. package/lib/core/payment/actions/server-error/server-error.action.type.d.ts +7 -0
  16. package/lib/core/payment/requests/initialize/initialize.service.d.ts +3 -1
  17. package/lib/core/payment/requests/submit/submit.service.d.ts +5 -1
  18. package/lib/core/payment/requests/sync/sync.service.d.ts +3 -1
  19. package/lib/core/sdk-payment-systems/apple-pay/apple-pay.service.d.ts +0 -2
  20. package/lib/core/sdk-payment-systems/apple-pay/commands-for-pages.enum.d.ts +1 -2
  21. package/lib/core/sdk-payment-systems/apple-pay/external-window-communication/external-window-communication.service.d.ts +0 -2
  22. package/package.json +1 -1
  23. package/xsolla-payment-client-core-0.2.102.tgz +0 -0
  24. package/esm2022/lib/core/sdk-payment-systems/apple-pay/socket-messages/window-open-message.interface.mjs +0 -2
  25. package/lib/core/sdk-payment-systems/apple-pay/socket-messages/window-open-message.interface.d.ts +0 -5
  26. package/xsolla-payment-client-core-0.2.100.tgz +0 -0
@@ -58,11 +58,6 @@ export class ApplePayService {
58
58
  .getWindowClose$()
59
59
  .pipe(takeUntil(this.destroy$));
60
60
  }
61
- get getWindowOpen$() {
62
- return this.externalWindowCommunicationService
63
- .getWindowOpen$()
64
- .pipe(takeUntil(this.destroy$));
65
- }
66
61
  get getWindowReturnMessage$() {
67
62
  return this.externalWindowCommunicationService
68
63
  .getWindowReturnMessage$()
@@ -275,4 +270,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
275
270
  type: Inject,
276
271
  args: [windowToken]
277
272
  }] }, { type: i1.SummaryFinanceDetailsAdapterService }, { type: i2.BraintreeHandler }, { type: i3.CheckoutHandler }, { type: i4.ApplePayParamsBuilderService }, { type: i5.LoggerService }, { type: i6.ApplePaySdkService }, { type: i7.ApplePayExternalWindowCommunicationService }, { type: i8.UserBehaviourAnalyticsService }, { type: i9.SettingsService }] });
278
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGUtcGF5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wYXltZW50LWNsaWVudC1jb3JlL3NyYy9saWIvY29yZS9zZGstcGF5bWVudC1zeXN0ZW1zL2FwcGxlLXBheS9hcHBsZS1wYXkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQWMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUd0RCxPQUFPLEVBQ0wsY0FBYyxFQUNkLG9CQUFvQixHQUNyQixNQUFNLHVEQUF1RCxDQUFDO0FBQy9ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx5RUFBeUUsQ0FBQztBQUNyRyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNkRBQTZELENBQUM7QUFDMUYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRzVELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRCxPQUFPLEVBRUwsdUJBQXVCLEdBQ3hCLE1BQU0sOEJBQThCLENBQUM7QUFFdEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQU16RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sdURBQXVELENBQUM7QUFJbEYsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFZekYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBRWxGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLCtEQUErRCxDQUFDOzs7Ozs7Ozs7OztBQU12RyxNQUFNLE9BQU8sZUFBZTtJQWlCMUIsSUFBVyxpQkFBaUI7UUFD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QXFDO1FBRXJDLDBCQUEwQjtRQUMxQixPQUFPLElBQUksQ0FBQyxlQUFlLElBQUksNEJBQTRCO1lBQ3pELENBQUMsQ0FBQyx1QkFBdUIsQ0FBQyxNQUFNO1lBQ2hDLENBQUMsQ0FBQyx1QkFBdUIsQ0FBQyxRQUFRLENBQUM7SUFDdkMsQ0FBQztJQUVPLGtCQUFrQixDQUFDLDRCQUFxQztRQUM5RCwwQkFBMEI7UUFDMUIsSUFDRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsNEJBQTRCLENBQUM7WUFDbkQsdUJBQXVCLENBQUMsTUFBTTtZQUNoQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsbUJBQW1CLEVBQzNDLENBQUM7WUFDRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDL0IsQ0FBQztJQUNILENBQUM7OEdBOVZVLGVBQWUsa0JBMEVoQixXQUFXO2tIQTFFVixlQUFlLGNBRmQsTUFBTTs7MkZBRVAsZUFBZTtrQkFIM0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQTJFSSxNQUFNOzJCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQXBwbGVQYXksIGFwcGxlUGF5LCBjbGllbnQgfSBmcm9tICdicmFpbnRyZWUtd2ViJztcbmltcG9ydCB7IEV4dGVuZGVkV2luZG93IH0gZnJvbSAnLi4vLi4vZXh0ZW5kZWQtd2luZG93LmludGVyZmFjZSc7XG5pbXBvcnQge1xuICBwYXlTdGF0aW9uNFVybCxcbiAgc2FuZGJveFBheVN0YXRpb25VcmwsXG59IGZyb20gJy4uLy4uL3BheW1lbnQvYWN0aW9ucy9yZWRpcmVjdC9wYXktc3RhdGlvbjQtdXJsLmNvbnN0JztcbmltcG9ydCB7IGFwcGxlUGF5SWQgfSBmcm9tICcuLi8uLi9wYXltZW50L2FjdGlvbnMvcmVkaXJlY3QvcHM0LXBhZ2VzL3BhZ2VzLXBheW1lbnQtbWV0aG9kcy1pZC5jb25zdCc7XG5pbXBvcnQgeyBwYWdlc1JvdXRlcyB9IGZyb20gJy4uLy4uL3BheW1lbnQvYWN0aW9ucy9yZWRpcmVjdC9wczQtcGFnZXMvcGFnZXMtcm91dGVzLmNvbnN0JztcbmltcG9ydCB7IEZpZWxkTmFtZXMgfSBmcm9tICcuLi8uLi9wYXltZW50L2ZpZWxkLW5hbWVzLmVudW0nO1xuaW1wb3J0IHsgU3VtbWFyeUZpbmFuY2VEZXRhaWxzQWRhcHRlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9wYXltZW50L2ZpbmFuY2UtZGV0YWlscy9zdW1tYXJ5L3N1bW1hcnktZmluYW5jZS1kZXRhaWxzLWFkYXB0ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBYcHNSZXNwb25zZSB9IGZyb20gJy4uLy4uL3BheW1lbnQveHBzLXJlc3BvbnNlLmludGVyZmFjZSc7XG5pbXBvcnQgeyB3aW5kb3dUb2tlbiB9IGZyb20gJy4uLy4uL3dpbmRvdy50b2tlbic7XG5pbXBvcnQge1xuICBBcHBsZVBheUludGVncmF0aW9uLFxuICBBcHBsZVBheUludGVncmF0aW9uVHlwZSxcbn0gZnJvbSAnLi9hcHBsZS1wYXktaW50ZWdyYXRpb24udHlwZSc7XG5pbXBvcnQgeyBBcHBsZVBheVBhcmFtcyB9IGZyb20gJy4vYXBwbGUtcGF5LXBhcmFtcy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgYXBwbGVQYXlWZXJzaW9uIH0gZnJvbSAnLi9hcHBsZS1wYXkuY29uc3QnO1xuaW1wb3J0IHsgQXBwbGVQYXlFcnJvcnMgfSBmcm9tICcuL2FwcGxlLXBheS5lcnJvcnMuZW51bSc7XG5pbXBvcnQgeyBCcmFpbnRyZWVIYW5kbGVyIH0gZnJvbSAnLi9zZXNzaW9uLWhhbmRsZXJzL2JyYWludHJlZS5oYW5kbGVyJztcbmltcG9ydCB7IENoZWNrb3V0SGFuZGxlciB9IGZyb20gJy4vc2Vzc2lvbi1oYW5kbGVycy9jaGVja291dC5oYW5kbGVyJztcbmltcG9ydCB7IEFwcGxlUGF5U2Vzc2lvbkhhbmRsZXIgfSBmcm9tICcuL3Nlc3Npb24taGFuZGxlcnMvc2Vzc2lvbi1oYW5kbGVyLnR5cGUnO1xuaW1wb3J0IHsgUGF5bWVudEZvcm0gfSBmcm9tICcuLi8uLi9wYXltZW50L3BheW1lbnQtZm9ybS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQXBwbGVQYXlQYXJhbXNCdWlsZGVyU2VydmljZSB9IGZyb20gJy4vcGFyYW1zLWJ1aWxkZXIvYXBwbGUtcGF5LXBhcmFtcy1idWlsZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgRXJyb3JUYWdzIH0gZnJvbSAnLi4vLi4vZXhjZXB0aW9ucy1oYW5kbGluZy9lcnJvcnMvZWxrLWVycm9yLXR5cGVzLmVudW0nO1xuaW1wb3J0IHsgU3RhcnRTZXNzaW9uUGFyYW1zIH0gZnJvbSAnLi9zZXNzaW9uLWhhbmRsZXJzL3N0YXJ0LXNlc3Npb24tcGFyYW1zLmludGVyZmFjZSc7XG5pbXBvcnQgeyBBcHBsZVBheVNka1NlcnZpY2UgfSBmcm9tICcuL2FwcGxlLXBheS1zZGsuc2VydmljZSc7XG5pbXBvcnQgeyBBcHBsZVBheUV4dGVybmFsV2luZG93Q29tbXVuaWNhdGlvblNlcnZpY2UgfSBmcm9tICcuL2V4dGVybmFsLXdpbmRvdy1jb21tdW5pY2F0aW9uL2V4dGVybmFsLXdpbmRvdy1jb21tdW5pY2F0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgbWFwU2hpcHBpbmdBZGRyZXNzVG9Db250YWN0IH0gZnJvbSAnLi9tYXAtc2hpcHBpbmctYWRkcmVzcy10by1jb250YWN0LmZ1bmN0aW9uJztcbmltcG9ydCB7IFJlY2FsY3VsYXRlQ2FydE1lc3NhZ2UgfSBmcm9tICcuL3NvY2tldC1tZXNzYWdlcy9yZWNhbGN1bGF0ZS1jYXJ0LW1lc3NhZ2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IEFwcGxlUGF5U2VuZFRva2VuTWVzc2FnZSB9IGZyb20gJy4vc29ja2V0LW1lc3NhZ2VzL3NlbmQtdG9rZW4tbWVzc2FnZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgV2luZG93Q2xvc2VNZXNzYWdlIH0gZnJvbSAnLi9zb2NrZXQtbWVzc2FnZXMvd2luZG93LWNsb3NlLW1lc3NhZ2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IFJldHVybk1lc3NhZ2UgfSBmcm9tICcuL3NvY2tldC1tZXNzYWdlcy9yZXR1cm4tbWVzc2FnZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgU2V0dGluZ3NTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2V0dGluZ3Mvc2V0dGluZ3Muc2VydmljZSc7XG5pbXBvcnQgeyBTaGlwcGluZ0FkZHJlc3MgfSBmcm9tICcuL3NoaXBwaW5nLWFkZHJlc3MuaW50ZXJmYWNlJztcbmltcG9ydCB7IEFwcGxlUGF5U2hpcHBpbmdDb250YWN0IH0gZnJvbSAnLi9zZXNzaW9uLWhhbmRsZXJzL2FwcGxlLXBheS1zZXNzaW9uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBVcGRhdGVkUHJpY2UgfSBmcm9tICcuL3VwZGF0ZWQtcHJpY2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IFVwZGF0ZVByaWNlTWVzc2FnZSB9IGZyb20gJy4vc29ja2V0LW1lc3NhZ2VzL3VwZGF0ZS1wcmljZS1tZXNzYWdlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBDb21tYW5kc0ZvclBhZ2VzIH0gZnJvbSAnLi9jb21tYW5kcy1mb3ItcGFnZXMuZW51bSc7XG5pbXBvcnQgeyBMb2dnZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZXhjZXB0aW9ucy1oYW5kbGluZy9sb2dnZXIvbG9nZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgVGFnZ2VkRXJyb3IgfSBmcm9tICcuLi8uLi9leGNlcHRpb25zLWhhbmRsaW5nL2Vycm9ycy90YWdnZWQtZXJyb3IuY2xhc3MnO1xuaW1wb3J0IHsgVXNlckJlaGF2aW91ckFuYWx5dGljc1NlcnZpY2UgfSBmcm9tICcuLi8uLi91c2VyLWJlaGF2aW91ci1hbmFseXRpY3MvdXNlci1iZWhhdmlvdXItYW5hbHl0aWNzLnNlcnZpY2UnO1xuaW1wb3J0IHsgVXNlckJlaGF2aW91ckV2ZW50TmFtZSB9IGZyb20gJy4uLy4uL3VzZXItYmVoYXZpb3VyLWFuYWx5dGljcy91c2VyLWJlaGF2aW91ci1ldmVudC1uYW1lLmVudW0nO1xuaW1wb3J0IHsgV2luZG93T3Blbk1lc3NhZ2UgfSBmcm9tICcuL3NvY2tldC1tZXNzYWdlcy93aW5kb3ctb3Blbi1tZXNzYWdlLmludGVyZmFjZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBBcHBsZVBheVNlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IHBheW1lbnQ6IFN1YmplY3Q8c3RyaW5nPiA9IG5ldyBTdWJqZWN0KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZXJyb3I6IFN1YmplY3Q8QXBwbGVQYXlFcnJvcnM+ID0gbmV3IFN1YmplY3QoKTtcbiAgcHJpdmF0ZSByZWFkb25seSBpbnRlZ3JhdGlvblR5cGU6IFN1YmplY3Q8QXBwbGVQYXlJbnRlZ3JhdGlvbj4gPVxuICAgIG5ldyBTdWJqZWN0KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgYXBwbGVQYXlRck9wZW5lZDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHByaXZhdGUgcGF5bWVudENsaWVudDogQXBwbGVQYXkgfCBudWxsID0gbnVsbDtcblxuICBwcml2YXRlIHJlYWRvbmx5IGFwaTogUHJvbWlzZTx7XG4gICAgYXBwbGVQYXk6IHR5cGVvZiBhcHBsZVBheTtcbiAgICBjbGllbnQ6IHR5cGVvZiBjbGllbnQ7XG4gIH0+O1xuICBwcml2YXRlIGFwcGxlUGF5UGFyYW1zOiBBcHBsZVBheVBhcmFtcyB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIG9yZGVyPzogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgcHVibGljIGdldCBwYXltZW50UGFyYW1ldGVycygpOiBBcHBsZVBheVBhcmFtcyB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLmFwcGxlUGF5UGFyYW1zO1xuICB9XG5cbiAgcHVibGljIGdldCBwYXltZW50JCgpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLnBheW1lbnQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGVycm9yJCgpOiBPYnNlcnZhYmxlPEFwcGxlUGF5RXJyb3JzPiB7XG4gICAgcmV0dXJuIHRoaXMuZXJyb3IuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICBwdWJsaWMgZ2V0IGFwcGxlUGF5UXJPcGVuZWQkKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmFwcGxlUGF5UXJPcGVuZWQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICBwdWJsaWMgZ2V0IHdpbmRvd0Nsb3NpbmckKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmFwcGxlUGF5U2RrU2VydmljZS53aW5kb3dDbG9zaW5nJDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaW50ZWdyYXRpb25UeXBlJCgpOiBPYnNlcnZhYmxlPEFwcGxlUGF5SW50ZWdyYXRpb24+IHtcbiAgICByZXR1cm4gdGhpcy5pbnRlZ3JhdGlvblR5cGUuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGdldENhcnRSZWNhbGN1bGF0aW9uTWVzc2FnZSQoKTogT2JzZXJ2YWJsZTxSZWNhbGN1bGF0ZUNhcnRNZXNzYWdlPiB7XG4gICAgcmV0dXJuIHRoaXMuZXh0ZXJuYWxXaW5kb3dDb21tdW5pY2F0aW9uU2VydmljZVxuICAgICAgLmdldENhcnRSZWNhbGN1bGF0aW9uTWVzc2FnZSQoKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZ2V0V2luZG93U2VuZFRva2VuTWVzc2FnZSQoKTogT2JzZXJ2YWJsZTxBcHBsZVBheVNlbmRUb2tlbk1lc3NhZ2U+IHtcbiAgICByZXR1cm4gdGhpcy5leHRlcm5hbFdpbmRvd0NvbW11bmljYXRpb25TZXJ2aWNlXG4gICAgICAuZ2V0V2luZG93U2VuZFRva2VuTWVzc2FnZSQoKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZ2V0V2luZG93Q2xvc2UkKCk6IE9ic2VydmFibGU8V2luZG93Q2xvc2VNZXNzYWdlPiB7XG4gICAgcmV0dXJuIHRoaXMuZXh0ZXJuYWxXaW5kb3dDb21tdW5pY2F0aW9uU2VydmljZVxuICAgICAgLmdldFdpbmRvd0Nsb3NlJCgpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpO1xuICB9XG5cbiAgcHVibGljIGdldCBnZXRXaW5kb3dPcGVuJCgpOiBPYnNlcnZhYmxlPFdpbmRvd09wZW5NZXNzYWdlPiB7XG4gICAgcmV0dXJuIHRoaXMuZXh0ZXJuYWxXaW5kb3dDb21tdW5pY2F0aW9uU2VydmljZVxuICAgICAgLmdldFdpbmRvd09wZW4kKClcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGdldFdpbmRvd1JldHVybk1lc3NhZ2UkKCk6IE9ic2VydmFibGU8UmV0dXJuTWVzc2FnZT4ge1xuICAgIHJldHVybiB0aGlzLmV4dGVybmFsV2luZG93Q29tbXVuaWNhdGlvblNlcnZpY2VcbiAgICAgIC5nZXRXaW5kb3dSZXR1cm5NZXNzYWdlJCgpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpO1xuICB9XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3Qod2luZG93VG9rZW4pIHByaXZhdGUgcmVhZG9ubHkgd2luZG93OiBFeHRlbmRlZFdpbmRvdyxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN1bW1hcnlGaW5hbmNlRGV0YWlsc0FkYXB0ZXJTZXJ2aWNlOiBTdW1tYXJ5RmluYW5jZURldGFpbHNBZGFwdGVyU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGJyYWludHJlZUhhbmRsZXI6IEJyYWludHJlZUhhbmRsZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjaGVja291dEhhbmRsZXI6IENoZWNrb3V0SGFuZGxlcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFwcGxlUGFyYW1zQnVpbGRlcjogQXBwbGVQYXlQYXJhbXNCdWlsZGVyU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlclNlcnZpY2U6IExvZ2dlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBhcHBsZVBheVNka1NlcnZpY2U6IEFwcGxlUGF5U2RrU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGV4dGVybmFsV2luZG93Q29tbXVuaWNhdGlvblNlcnZpY2U6IEFwcGxlUGF5RXh0ZXJuYWxXaW5kb3dDb21tdW5pY2F0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHVzZXJCZWhhdmlvdXJBbmFseXRpY3NTZXJ2aWNlOiBVc2VyQmVoYXZpb3VyQW5hbHl0aWNzU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHNldHRpbmdzU2VydmljZTogU2V0dGluZ3NTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuYXBpID0gdGhpcy5sb2FkQnJhaW50cmVlKCk7XG5cbiAgICB0aGlzLnN1YnNjcmliZVRvSGFuZGxlcnMoKTtcbiAgfVxuXG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIHB1YmxpYyBhZGRBcHBsZVBheVNka0pzKCk6IHZvaWQge1xuICAgIHRoaXMuYXBwbGVQYXlTZGtTZXJ2aWNlLmFkZEFwcGxlUGF5U2RrSnMoKTtcbiAgfVxuXG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIHB1YmxpYyByZW1vdmVMaXN0ZW5lcnMoKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgIHRoaXMuYXBwbGVQYXlTZGtTZXJ2aWNlLnJlbW92ZUxpc3RlbmVycygpO1xuICB9XG5cbiAgcHVibGljIHNldEFwcGxlUGF5UGFyYW1zKGRhdGE6IHsgcGF5bWVudEZvcm06IFBheW1lbnRGb3JtIH0pOiB2b2lkIHtcbiAgICBjb25zdCBwYXltZW50Rm9ybSA9IGRhdGE/LnBheW1lbnRGb3JtO1xuICAgIGNvbnN0IGZvcm1GaWVsZHMgPSBwYXltZW50Rm9ybT8uZmllbGRzO1xuICAgIGNvbnN0IHN1bW1hcnkgPSBwYXltZW50Rm9ybT8uc3VtbWFyeTtcblxuICAgIGlmICghZm9ybUZpZWxkcyB8fCAhc3VtbWFyeSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuYXBwbGVQYXlQYXJhbXMgPSB0aGlzLmFwcGxlUGFyYW1zQnVpbGRlci5idWlsZFBhcmFtcyhwYXltZW50Rm9ybSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgaW5pdEJyYWludHJlZUxpYnJhcnkodG9rZW5LZXk6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBhcGkgPSBhd2FpdCB0aGlzLmFwaTtcbiAgICAgIGNvbnN0IGNsaWVudEluc3RhbmNlID0gYXdhaXQgYXBpLmNsaWVudC5jcmVhdGUoe1xuICAgICAgICBhdXRob3JpemF0aW9uOiB0b2tlbktleSxcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLnBheW1lbnRDbGllbnQgPSBhd2FpdCBhcGkuYXBwbGVQYXkuY3JlYXRlKHtcbiAgICAgICAgY2xpZW50OiBjbGllbnRJbnN0YW5jZSxcbiAgICAgIH0pO1xuICAgICAgdGhpcy5icmFpbnRyZWVIYW5kbGVyLnNldENsaWVudCh0aGlzLnBheW1lbnRDbGllbnQpO1xuICAgIH0gY2F0Y2ggKGVycm9yOiB1bmtub3duKSB7XG4gICAgICBjb25zb2xlLmVycm9yKEFwcGxlUGF5RXJyb3JzLmJyYWludHJlZUluaXRpYWxpemVFcnJvciwgZXJyb3IpO1xuICAgICAgdGhpcy5sb2dnZXJTZXJ2aWNlLmVycm9yKFxuICAgICAgICBuZXcgVGFnZ2VkRXJyb3IoQXBwbGVQYXlFcnJvcnMuYnJhaW50cmVlSW5pdGlhbGl6ZUVycm9yLCBbXG4gICAgICAgICAgRXJyb3JUYWdzLkFQUExFUEFZLFxuICAgICAgICBdKVxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMucGF5bWVudENsaWVudCB8fCAhdGhpcy5pc0RldmljZUNhcGFibGUpIHtcbiAgICAgIHRoaXMuZW1pdEVycm9yKEFwcGxlUGF5RXJyb3JzLmRldmljZUlzTm90Q2FwYWJsZUVycm9yKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgaW5pdEFwcGxlUGF5KFxuICAgIHRva2VuS2V5OiBzdHJpbmcsXG4gICAgaXNBcHBsZVBheUluc3RhbnRGbG93RW5hYmxlZDogYm9vbGVhblxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAodGhpcy5hcHBsZVBheVBhcmFtcz8uYWNxdWlyZXIgPT09ICdicmFpbnRyZWUnKSB7XG4gICAgICBhd2FpdCB0aGlzLmluaXRCcmFpbnRyZWVMaWJyYXJ5KHRva2VuS2V5KTtcbiAgICB9XG5cbiAgICB0aGlzLmVtaXRJbnRlZ3JhdGlvblR5cGUoaXNBcHBsZVBheUluc3RhbnRGbG93RW5hYmxlZCk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgc3RhcnRXaW5kb3dDb21tdW5pY2F0aW9uKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMuZXh0ZXJuYWxXaW5kb3dDb21tdW5pY2F0aW9uU2VydmljZS5vcGVuV2ViU29ja2V0Q29ubmVjdGlvbihcbiAgICAgIHRoaXMuc2V0dGluZ3NTZXJ2aWNlLnRva2VuXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBzZW5kVXBkYXRlZFByaWNlVmlhV2luZG93Q29tbXVuaWNhdGlvbihcbiAgICB1cGRhdGVkUHJpY2U6IFVwZGF0ZWRQcmljZVxuICApOiB2b2lkIHtcbiAgICB2b2lkIHRoaXMuZXh0ZXJuYWxXaW5kb3dDb21tdW5pY2F0aW9uU2VydmljZS5zZW5kTWVzc2FnZVRvQW5vdGhlcldpbmRvdzxcbiAgICAgIFVwZGF0ZVByaWNlTWVzc2FnZVsnZGF0YSddXG4gICAgPihDb21tYW5kc0ZvclBhZ2VzLkFQUExFX1BBWV9VUERBVEVfUFJJQ0UsIHtcbiAgICAgIG5ld0NhcnRQcmljaW5nOiB1cGRhdGVkUHJpY2UsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgcmVkaXJlY3RUb1BheW1lbnRQYWdlKFxuICAgIHBhcmFtZXRlcnM6IEFwcGxlUGF5UGFyYW1zLFxuICAgIHRva2VuOiBzdHJpbmcsXG4gICAgaXNTYW5kYm94PzogYm9vbGVhblxuICApOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IHJvdXRlID0gcGFnZXNSb3V0ZXMuZ2V0KGFwcGxlUGF5SWQpO1xuICAgIGlmICghcm91dGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBxdWVyeSA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoe1xuICAgICAgLi4ucGFyYW1ldGVycyxcbiAgICAgIG1lcmNoYW50Q2FwYWJpbGl0aWVzOiBKU09OLnN0cmluZ2lmeShwYXJhbWV0ZXJzLm1lcmNoYW50Q2FwYWJpbGl0aWVzKSxcbiAgICAgIHN1cHBvcnRlZE5ldHdvcmtzOiBKU09OLnN0cmluZ2lmeShwYXJhbWV0ZXJzLnN1cHBvcnRlZE5ldHdvcmtzKSxcbiAgICAgIHJlcXVpcmVkQmlsbGluZ0NvbnRhY3RGaWVsZHM6IEpTT04uc3RyaW5naWZ5KFxuICAgICAgICBwYXJhbWV0ZXJzPy5yZXF1aXJlZEJpbGxpbmdDb250YWN0RmllbGRzXG4gICAgICApLFxuICAgICAgcmVxdWlyZWRTaGlwcGluZ0NvbnRhY3RGaWVsZHM6IEpTT04uc3RyaW5naWZ5KFxuICAgICAgICBwYXJhbWV0ZXJzPy5yZXF1aXJlZFNoaXBwaW5nQ29udGFjdEZpZWxkc1xuICAgICAgKSxcbiAgICAgIGFncmVlbWVudHM6IEpTT04uc3RyaW5naWZ5KHBhcmFtZXRlcnMuYWdyZWVtZW50cyksXG4gICAgICB0b2tlbixcbiAgICB9KTtcblxuICAgIGlmICh0aGlzLm9yZGVyKSB7XG4gICAgICBxdWVyeS5hcHBlbmQoJ29yZGVyJywgdGhpcy5vcmRlcik7XG4gICAgfVxuXG4gICAgY29uc3QgcGF5U3RhdGlvblVybCA9IGlzU2FuZGJveCA/IHNhbmRib3hQYXlTdGF0aW9uVXJsIDogcGF5U3RhdGlvbjRVcmw7XG4gICAgcmV0dXJuIGAke3BheVN0YXRpb25Vcmx9L2VuJHtyb3V0ZX0/JHtxdWVyeS50b1N0cmluZygpfWA7XG4gIH1cblxuICBwdWJsaWMgc2V0T3JkZXIoZGF0YTogeyBwYXltZW50Rm9ybTogUGF5bWVudEZvcm0gfSk6IHZvaWQge1xuICAgIGNvbnN0IHN1bW1hcnkgPSBkYXRhPy5wYXltZW50Rm9ybT8uc3VtbWFyeTtcbiAgICBpZiAoIXN1bW1hcnkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBmaW5hbmNlRGV0YWlscyA9XG4gICAgICB0aGlzLnN1bW1hcnlGaW5hbmNlRGV0YWlsc0FkYXB0ZXJTZXJ2aWNlLmdldEZpbmFuY2VEZXRhaWxzKHN1bW1hcnkpO1xuXG4gICAgaWYgKGZpbmFuY2VEZXRhaWxzPy5wdXJjaGFzZSAmJiBmaW5hbmNlRGV0YWlscz8uZmluYW5jZSkge1xuICAgICAgY29uc3QgY2FydEl0ZW1zID0gZmluYW5jZURldGFpbHMuY2FydEl0ZW1zO1xuICAgICAgdGhpcy5vcmRlciA9IGNhcnRJdGVtcz8ucmVkdWNlKChjdXJyLCBpdGVtKSA9PiB7XG4gICAgICAgIGlmIChjdXJyKSB7XG4gICAgICAgICAgcmV0dXJuIGN1cnIgKyBgOyAke2l0ZW0udGl0bGV9YDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjdXJyICsgaXRlbS50aXRsZTtcbiAgICAgIH0sICcnKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzRGV2aWNlQ2FwYWJsZSgpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5hcHBsZVBheVNka1NlcnZpY2UubmVlZFRvQWRkQXBwbGVQYXlKcykge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBCb29sZWFuKFxuICAgICAgICB0aGlzLndpbmRvdy5BcHBsZVBheVNlc3Npb24/LnN1cHBvcnRzVmVyc2lvbihhcHBsZVBheVZlcnNpb24pICYmXG4gICAgICAgICAgdGhpcy53aW5kb3cuQXBwbGVQYXlTZXNzaW9uPy5jYW5NYWtlUGF5bWVudHMoKVxuICAgICAgKTtcbiAgICB9IGNhdGNoIChlcnJvcjogdW5rbm93bikge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXRUb2tlbk5vbmNlRmllbGREYXRhKHRva2VuTm9uY2U6IHN0cmluZyk6IHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgdmFsdWU6IHN0cmluZztcbiAgfSB7XG4gICAgY29uc3QgbmFtZSA9IEZpZWxkTmFtZXMudG9rZW5BcHBsZVBheTtcbiAgICBjb25zdCB2YWx1ZSA9IGJ0b2EodG9rZW5Ob25jZSk7XG4gICAgcmV0dXJuIHsgbmFtZSwgdmFsdWUgfTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVBcHBsZVBheVBhcmFtcyhkYXRhOiB1bmtub3duKTogdm9pZCB7XG4gICAgY29uc3Qgc3VtbWFyeSA9IChkYXRhIGFzIFhwc1Jlc3BvbnNlKT8uc3VtbWFyeTtcbiAgICBpZiAoIXRoaXMuYXBwbGVQYXlQYXJhbXMgfHwgIXN1bW1hcnkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmFwcGxlUGF5UGFyYW1zID0gdGhpcy5hcHBsZVBhcmFtc0J1aWxkZXIudXBkYXRlUGFyYW1zKFxuICAgICAgdGhpcy5hcHBsZVBheVBhcmFtcyxcbiAgICAgIHN1bW1hcnlcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHByb2NlZWRDaGVja291dChcbiAgICBwYXJhbWV0ZXJzOiBBcHBsZVBheVBhcmFtcyxcbiAgICBhZGRpdGlvbmFsUGFyYW1zOiBTdGFydFNlc3Npb25QYXJhbXNcbiAgKTogdm9pZCB7XG4gICAgdGhpcy51c2VyQmVoYXZpb3VyQW5hbHl0aWNzU2VydmljZS5zZW5kKFxuICAgICAgVXNlckJlaGF2aW91ckV2ZW50TmFtZS5hcHBsZVBheUFjcXVpcmVyLFxuICAgICAgJ21hbnVhbCcsXG4gICAgICB7IHZhbHVlOiBwYXJhbWV0ZXJzLmFjcXVpcmVyIH1cbiAgICApO1xuXG4gICAgY29uc3Qgc2Vzc2lvbkhhbmRsZXIgPSB0aGlzLmdldFNlc3Npb25IYW5kbGVyKHBhcmFtZXRlcnMuYWNxdWlyZXIpO1xuXG4gICAgaWYgKCFzZXNzaW9uSGFuZGxlcikge1xuICAgICAgY29uc29sZS5lcnJvcignQXBwbGUgUGF5OiBVbnN1cHBvcnRlZCBhY3F1aXJlcjonLCBwYXJhbWV0ZXJzLmFjcXVpcmVyKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBzZXNzaW9uSGFuZGxlci5zdGFydFNlc3Npb24ocGFyYW1ldGVycywgYWRkaXRpb25hbFBhcmFtcywgKCkgPT5cbiAgICAgIHRoaXMuYXBwbGVQYXlTZGtTZXJ2aWNlLmVtaXRXaW5kb3dDbG9zaW5nKClcbiAgICApO1xuICAgIHRoaXMuZW1pdEFwcGxlUGF5T3BlbmVkKFxuICAgICAgYWRkaXRpb25hbFBhcmFtcy5pc0FwcGxlUGF5SW5zdGFudEZsb3dFbmFibGVkID8/IGZhbHNlXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBtYXBTaGlwcGluZ0FkZHJlc3NUb0NvbnRhY3QoXG4gICAgc2hpcHBpbmdBZGRyZXNzOiBTaGlwcGluZ0FkZHJlc3NcbiAgKTogQXBwbGVQYXlTaGlwcGluZ0NvbnRhY3Qge1xuICAgIHJldHVybiBtYXBTaGlwcGluZ0FkZHJlc3NUb0NvbnRhY3Qoc2hpcHBpbmdBZGRyZXNzKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRUb2tlbih0b2tlbjogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5wYXltZW50Lm5leHQodG9rZW4pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRTZXNzaW9uSGFuZGxlcihcbiAgICBhY3F1aXJlcjogc3RyaW5nXG4gICk6IEFwcGxlUGF5U2Vzc2lvbkhhbmRsZXIgfCB1bmRlZmluZWQge1xuICAgIHN3aXRjaCAoYWNxdWlyZXIpIHtcbiAgICAgIGNhc2UgJ2JyYWludHJlZSc6XG4gICAgICAgIHJldHVybiB0aGlzLmJyYWludHJlZUhhbmRsZXI7XG4gICAgICBjYXNlICdjaGVja291dCc6XG4gICAgICAgIHJldHVybiB0aGlzLmNoZWNrb3V0SGFuZGxlcjtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBsb2FkQnJhaW50cmVlKCk6IFByb21pc2U8e1xuICAgIGFwcGxlUGF5OiB0eXBlb2YgYXBwbGVQYXk7XG4gICAgY2xpZW50OiB0eXBlb2YgY2xpZW50O1xuICB9PiB7XG4gICAgY29uc3QgYXBpID0gYXdhaXQgaW1wb3J0KCdicmFpbnRyZWUtd2ViJyk7XG4gICAgcmV0dXJuIGFwaTtcbiAgfVxuXG4gIHByaXZhdGUgZW1pdEVycm9yKGVycm9yOiBBcHBsZVBheUVycm9ycyk6IHZvaWQge1xuICAgIHRoaXMuZXJyb3IubmV4dChlcnJvcik7XG4gIH1cblxuICBwcml2YXRlIGVtaXRJbnRlZ3JhdGlvblR5cGUoaXNBcHBsZVBheUluc3RhbnRGbG93RW5hYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuaW50ZWdyYXRpb25UeXBlLm5leHQoXG4gICAgICB0aGlzLmdldEludGVncmF0aW9uVHlwZShpc0FwcGxlUGF5SW5zdGFudEZsb3dFbmFibGVkKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHN1YnNjcmliZVRvSGFuZGxlcnMoKTogdm9pZCB7XG4gICAgY29uc3QgaGFuZGxlcnMgPSBbdGhpcy5icmFpbnRyZWVIYW5kbGVyLCB0aGlzLmNoZWNrb3V0SGFuZGxlcl07XG5cbiAgICBoYW5kbGVycy5mb3JFYWNoKChoYW5kbGVyKSA9PiB7XG4gICAgICBoYW5kbGVyLmVycm9yJC5zdWJzY3JpYmUoKGVycm9yKSA9PiB0aGlzLmVtaXRFcnJvcihlcnJvcikpO1xuICAgICAgaGFuZGxlci5wYXltZW50JC5zdWJzY3JpYmUoKHRva2VuKSA9PiB7XG4gICAgICAgIHRoaXMucGF5bWVudC5uZXh0KHRva2VuKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRJbnRlZ3JhdGlvblR5cGUoXG4gICAgaXNBcHBsZVBheUluc3RhbnRGbG93RW5hYmxlZDogYm9vbGVhblxuICApOiBBcHBsZVBheUludGVncmF0aW9uVHlwZSB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICByZXR1cm4gdGhpcy5pc0RldmljZUNhcGFibGUgJiYgaXNBcHBsZVBheUluc3RhbnRGbG93RW5hYmxlZFxuICAgICAgPyBBcHBsZVBheUludGVncmF0aW9uVHlwZS5uYXRpdmVcbiAgICAgIDogQXBwbGVQYXlJbnRlZ3JhdGlvblR5cGUucmVkaXJlY3Q7XG4gIH1cblxuICBwcml2YXRlIGVtaXRBcHBsZVBheU9wZW5lZChpc0FwcGxlUGF5SW5zdGFudEZsb3dFbmFibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICBpZiAoXG4gICAgICB0aGlzLmdldEludGVncmF0aW9uVHlwZShpc0FwcGxlUGF5SW5zdGFudEZsb3dFbmFibGVkKSA9PT1cbiAgICAgICAgQXBwbGVQYXlJbnRlZ3JhdGlvblR5cGUubmF0aXZlICYmXG4gICAgICB0aGlzLmFwcGxlUGF5U2RrU2VydmljZS5uZWVkVG9BZGRBcHBsZVBheUpzXG4gICAgKSB7XG4gICAgICB0aGlzLmFwcGxlUGF5UXJPcGVuZWQubmV4dCgpO1xuICAgIH1cbiAgfVxufVxuIl19
273
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGUtcGF5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wYXltZW50LWNsaWVudC1jb3JlL3NyYy9saWIvY29yZS9zZGstcGF5bWVudC1zeXN0ZW1zL2FwcGxlLXBheS9hcHBsZS1wYXkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQWMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUd0RCxPQUFPLEVBQ0wsY0FBYyxFQUNkLG9CQUFvQixHQUNyQixNQUFNLHVEQUF1RCxDQUFDO0FBQy9ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx5RUFBeUUsQ0FBQztBQUNyRyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNkRBQTZELENBQUM7QUFDMUYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRzVELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRCxPQUFPLEVBRUwsdUJBQXVCLEdBQ3hCLE1BQU0sOEJBQThCLENBQUM7QUFFdEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQU16RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sdURBQXVELENBQUM7QUFJbEYsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFZekYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBRWxGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLCtEQUErRCxDQUFDOzs7Ozs7Ozs7OztBQUt2RyxNQUFNLE9BQU8sZUFBZTtJQWlCMUIsSUFBVyxpQkFBaUI7UUFD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SUFDdkMsQ0FBQztJQUVPLGtCQUFrQixDQUFDLDRCQUFxQztRQUM5RCwwQkFBMEI7UUFDMUIsSUFDRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsNEJBQTRCLENBQUM7WUFDbkQsdUJBQXVCLENBQUMsTUFBTTtZQUNoQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsbUJBQW1CLEVBQzNDLENBQUM7WUFDRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDL0IsQ0FBQztJQUNILENBQUM7OEdBeFZVLGVBQWUsa0JBb0VoQixXQUFXO2tIQXBFVixlQUFlLGNBRmQsTUFBTTs7MkZBRVAsZUFBZTtrQkFIM0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQXFFSSxNQUFNOzJCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQXBwbGVQYXksIGFwcGxlUGF5LCBjbGllbnQgfSBmcm9tICdicmFpbnRyZWUtd2ViJztcbmltcG9ydCB7IEV4dGVuZGVkV2luZG93IH0gZnJvbSAnLi4vLi4vZXh0ZW5kZWQtd2luZG93LmludGVyZmFjZSc7XG5pbXBvcnQge1xuICBwYXlTdGF0aW9uNFVybCxcbiAgc2FuZGJveFBheVN0YXRpb25VcmwsXG59IGZyb20gJy4uLy4uL3BheW1lbnQvYWN0aW9ucy9yZWRpcmVjdC9wYXktc3RhdGlvbjQtdXJsLmNvbnN0JztcbmltcG9ydCB7IGFwcGxlUGF5SWQgfSBmcm9tICcuLi8uLi9wYXltZW50L2FjdGlvbnMvcmVkaXJlY3QvcHM0LXBhZ2VzL3BhZ2VzLXBheW1lbnQtbWV0aG9kcy1pZC5jb25zdCc7XG5pbXBvcnQgeyBwYWdlc1JvdXRlcyB9IGZyb20gJy4uLy4uL3BheW1lbnQvYWN0aW9ucy9yZWRpcmVjdC9wczQtcGFnZXMvcGFnZXMtcm91dGVzLmNvbnN0JztcbmltcG9ydCB7IEZpZWxkTmFtZXMgfSBmcm9tICcuLi8uLi9wYXltZW50L2ZpZWxkLW5hbWVzLmVudW0nO1xuaW1wb3J0IHsgU3VtbWFyeUZpbmFuY2VEZXRhaWxzQWRhcHRlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9wYXltZW50L2ZpbmFuY2UtZGV0YWlscy9zdW1tYXJ5L3N1bW1hcnktZmluYW5jZS1kZXRhaWxzLWFkYXB0ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBYcHNSZXNwb25zZSB9IGZyb20gJy4uLy4uL3BheW1lbnQveHBzLXJlc3BvbnNlLmludGVyZmFjZSc7XG5pbXBvcnQgeyB3aW5kb3dUb2tlbiB9IGZyb20gJy4uLy4uL3dpbmRvdy50b2tlbic7XG5pbXBvcnQge1xuICBBcHBsZVBheUludGVncmF0aW9uLFxuICBBcHBsZVBheUludGVncmF0aW9uVHlwZSxcbn0gZnJvbSAnLi9hcHBsZS1wYXktaW50ZWdyYXRpb24udHlwZSc7XG5pbXBvcnQgeyBBcHBsZVBheVBhcmFtcyB9IGZyb20gJy4vYXBwbGUtcGF5LXBhcmFtcy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgYXBwbGVQYXlWZXJzaW9uIH0gZnJvbSAnLi9hcHBsZS1wYXkuY29uc3QnO1xuaW1wb3J0IHsgQXBwbGVQYXlFcnJvcnMgfSBmcm9tICcuL2FwcGxlLXBheS5lcnJvcnMuZW51bSc7XG5pbXBvcnQgeyBCcmFpbnRyZWVIYW5kbGVyIH0gZnJvbSAnLi9zZXNzaW9uLWhhbmRsZXJzL2JyYWludHJlZS5oYW5kbGVyJztcbmltcG9ydCB7IENoZWNrb3V0SGFuZGxlciB9IGZyb20gJy4vc2Vzc2lvbi1oYW5kbGVycy9jaGVja291dC5oYW5kbGVyJztcbmltcG9ydCB7IEFwcGxlUGF5U2Vzc2lvbkhhbmRsZXIgfSBmcm9tICcuL3Nlc3Npb24taGFuZGxlcnMvc2Vzc2lvbi1oYW5kbGVyLnR5cGUnO1xuaW1wb3J0IHsgUGF5bWVudEZvcm0gfSBmcm9tICcuLi8uLi9wYXltZW50L3BheW1lbnQtZm9ybS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQXBwbGVQYXlQYXJhbXNCdWlsZGVyU2VydmljZSB9IGZyb20gJy4vcGFyYW1zLWJ1aWxkZXIvYXBwbGUtcGF5LXBhcmFtcy1idWlsZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgRXJyb3JUYWdzIH0gZnJvbSAnLi4vLi4vZXhjZXB0aW9ucy1oYW5kbGluZy9lcnJvcnMvZWxrLWVycm9yLXR5cGVzLmVudW0nO1xuaW1wb3J0IHsgU3RhcnRTZXNzaW9uUGFyYW1zIH0gZnJvbSAnLi9zZXNzaW9uLWhhbmRsZXJzL3N0YXJ0LXNlc3Npb24tcGFyYW1zLmludGVyZmFjZSc7XG5pbXBvcnQgeyBBcHBsZVBheVNka1NlcnZpY2UgfSBmcm9tICcuL2FwcGxlLXBheS1zZGsuc2VydmljZSc7XG5pbXBvcnQgeyBBcHBsZVBheUV4dGVybmFsV2luZG93Q29tbXVuaWNhdGlvblNlcnZpY2UgfSBmcm9tICcuL2V4dGVybmFsLXdpbmRvdy1jb21tdW5pY2F0aW9uL2V4dGVybmFsLXdpbmRvdy1jb21tdW5pY2F0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgbWFwU2hpcHBpbmdBZGRyZXNzVG9Db250YWN0IH0gZnJvbSAnLi9tYXAtc2hpcHBpbmctYWRkcmVzcy10by1jb250YWN0LmZ1bmN0aW9uJztcbmltcG9ydCB7IFJlY2FsY3VsYXRlQ2FydE1lc3NhZ2UgfSBmcm9tICcuL3NvY2tldC1tZXNzYWdlcy9yZWNhbGN1bGF0ZS1jYXJ0LW1lc3NhZ2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IEFwcGxlUGF5U2VuZFRva2VuTWVzc2FnZSB9IGZyb20gJy4vc29ja2V0LW1lc3NhZ2VzL3NlbmQtdG9rZW4tbWVzc2FnZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgV2luZG93Q2xvc2VNZXNzYWdlIH0gZnJvbSAnLi9zb2NrZXQtbWVzc2FnZXMvd2luZG93LWNsb3NlLW1lc3NhZ2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IFJldHVybk1lc3NhZ2UgfSBmcm9tICcuL3NvY2tldC1tZXNzYWdlcy9yZXR1cm4tbWVzc2FnZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgU2V0dGluZ3NTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2V0dGluZ3Mvc2V0dGluZ3Muc2VydmljZSc7XG5pbXBvcnQgeyBTaGlwcGluZ0FkZHJlc3MgfSBmcm9tICcuL3NoaXBwaW5nLWFkZHJlc3MuaW50ZXJmYWNlJztcbmltcG9ydCB7IEFwcGxlUGF5U2hpcHBpbmdDb250YWN0IH0gZnJvbSAnLi9zZXNzaW9uLWhhbmRsZXJzL2FwcGxlLXBheS1zZXNzaW9uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBVcGRhdGVkUHJpY2UgfSBmcm9tICcuL3VwZGF0ZWQtcHJpY2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IFVwZGF0ZVByaWNlTWVzc2FnZSB9IGZyb20gJy4vc29ja2V0LW1lc3NhZ2VzL3VwZGF0ZS1wcmljZS1tZXNzYWdlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBDb21tYW5kc0ZvclBhZ2VzIH0gZnJvbSAnLi9jb21tYW5kcy1mb3ItcGFnZXMuZW51bSc7XG5pbXBvcnQgeyBMb2dnZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZXhjZXB0aW9ucy1oYW5kbGluZy9sb2dnZXIvbG9nZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgVGFnZ2VkRXJyb3IgfSBmcm9tICcuLi8uLi9leGNlcHRpb25zLWhhbmRsaW5nL2Vycm9ycy90YWdnZWQtZXJyb3IuY2xhc3MnO1xuaW1wb3J0IHsgVXNlckJlaGF2aW91ckFuYWx5dGljc1NlcnZpY2UgfSBmcm9tICcuLi8uLi91c2VyLWJlaGF2aW91ci1hbmFseXRpY3MvdXNlci1iZWhhdmlvdXItYW5hbHl0aWNzLnNlcnZpY2UnO1xuaW1wb3J0IHsgVXNlckJlaGF2aW91ckV2ZW50TmFtZSB9IGZyb20gJy4uLy4uL3VzZXItYmVoYXZpb3VyLWFuYWx5dGljcy91c2VyLWJlaGF2aW91ci1ldmVudC1uYW1lLmVudW0nO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQXBwbGVQYXlTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBwYXltZW50OiBTdWJqZWN0PHN0cmluZz4gPSBuZXcgU3ViamVjdCgpO1xuICBwcml2YXRlIHJlYWRvbmx5IGVycm9yOiBTdWJqZWN0PEFwcGxlUGF5RXJyb3JzPiA9IG5ldyBTdWJqZWN0KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgaW50ZWdyYXRpb25UeXBlOiBTdWJqZWN0PEFwcGxlUGF5SW50ZWdyYXRpb24+ID1cbiAgICBuZXcgU3ViamVjdCgpO1xuICBwcml2YXRlIHJlYWRvbmx5IGFwcGxlUGF5UXJPcGVuZWQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBwcml2YXRlIHBheW1lbnRDbGllbnQ6IEFwcGxlUGF5IHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBhcGk6IFByb21pc2U8e1xuICAgIGFwcGxlUGF5OiB0eXBlb2YgYXBwbGVQYXk7XG4gICAgY2xpZW50OiB0eXBlb2YgY2xpZW50O1xuICB9PjtcbiAgcHJpdmF0ZSBhcHBsZVBheVBhcmFtczogQXBwbGVQYXlQYXJhbXMgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBvcmRlcj86IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIHB1YmxpYyBnZXQgcGF5bWVudFBhcmFtZXRlcnMoKTogQXBwbGVQYXlQYXJhbXMgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5hcHBsZVBheVBhcmFtcztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcGF5bWVudCQoKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5wYXltZW50LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBlcnJvciQoKTogT2JzZXJ2YWJsZTxBcHBsZVBheUVycm9ycz4ge1xuICAgIHJldHVybiB0aGlzLmVycm9yLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgcHVibGljIGdldCBhcHBsZVBheVFyT3BlbmVkJCgpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5hcHBsZVBheVFyT3BlbmVkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgcHVibGljIGdldCB3aW5kb3dDbG9zaW5nJCgpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5hcHBsZVBheVNka1NlcnZpY2Uud2luZG93Q2xvc2luZyQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGludGVncmF0aW9uVHlwZSQoKTogT2JzZXJ2YWJsZTxBcHBsZVBheUludGVncmF0aW9uPiB7XG4gICAgcmV0dXJuIHRoaXMuaW50ZWdyYXRpb25UeXBlLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBnZXRDYXJ0UmVjYWxjdWxhdGlvbk1lc3NhZ2UkKCk6IE9ic2VydmFibGU8UmVjYWxjdWxhdGVDYXJ0TWVzc2FnZT4ge1xuICAgIHJldHVybiB0aGlzLmV4dGVybmFsV2luZG93Q29tbXVuaWNhdGlvblNlcnZpY2VcbiAgICAgIC5nZXRDYXJ0UmVjYWxjdWxhdGlvbk1lc3NhZ2UkKClcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGdldFdpbmRvd1NlbmRUb2tlbk1lc3NhZ2UkKCk6IE9ic2VydmFibGU8QXBwbGVQYXlTZW5kVG9rZW5NZXNzYWdlPiB7XG4gICAgcmV0dXJuIHRoaXMuZXh0ZXJuYWxXaW5kb3dDb21tdW5pY2F0aW9uU2VydmljZVxuICAgICAgLmdldFdpbmRvd1NlbmRUb2tlbk1lc3NhZ2UkKClcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGdldFdpbmRvd0Nsb3NlJCgpOiBPYnNlcnZhYmxlPFdpbmRvd0Nsb3NlTWVzc2FnZT4ge1xuICAgIHJldHVybiB0aGlzLmV4dGVybmFsV2luZG93Q29tbXVuaWNhdGlvblNlcnZpY2VcbiAgICAgIC5nZXRXaW5kb3dDbG9zZSQoKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZ2V0V2luZG93UmV0dXJuTWVzc2FnZSQoKTogT2JzZXJ2YWJsZTxSZXR1cm5NZXNzYWdlPiB7XG4gICAgcmV0dXJuIHRoaXMuZXh0ZXJuYWxXaW5kb3dDb21tdW5pY2F0aW9uU2VydmljZVxuICAgICAgLmdldFdpbmRvd1JldHVybk1lc3NhZ2UkKClcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSk7XG4gIH1cblxuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgQEluamVjdCh3aW5kb3dUb2tlbikgcHJpdmF0ZSByZWFkb25seSB3aW5kb3c6IEV4dGVuZGVkV2luZG93LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc3VtbWFyeUZpbmFuY2VEZXRhaWxzQWRhcHRlclNlcnZpY2U6IFN1bW1hcnlGaW5hbmNlRGV0YWlsc0FkYXB0ZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYnJhaW50cmVlSGFuZGxlcjogQnJhaW50cmVlSGFuZGxlcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNoZWNrb3V0SGFuZGxlcjogQ2hlY2tvdXRIYW5kbGVyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYXBwbGVQYXJhbXNCdWlsZGVyOiBBcHBsZVBheVBhcmFtc0J1aWxkZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyU2VydmljZTogTG9nZ2VyU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFwcGxlUGF5U2RrU2VydmljZTogQXBwbGVQYXlTZGtTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZXh0ZXJuYWxXaW5kb3dDb21tdW5pY2F0aW9uU2VydmljZTogQXBwbGVQYXlFeHRlcm5hbFdpbmRvd0NvbW11bmljYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdXNlckJlaGF2aW91ckFuYWx5dGljc1NlcnZpY2U6IFVzZXJCZWhhdmlvdXJBbmFseXRpY3NTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc2V0dGluZ3NTZXJ2aWNlOiBTZXR0aW5nc1NlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5hcGkgPSB0aGlzLmxvYWRCcmFpbnRyZWUoKTtcblxuICAgIHRoaXMuc3Vic2NyaWJlVG9IYW5kbGVycygpO1xuICB9XG5cbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgcHVibGljIGFkZEFwcGxlUGF5U2RrSnMoKTogdm9pZCB7XG4gICAgdGhpcy5hcHBsZVBheVNka1NlcnZpY2UuYWRkQXBwbGVQYXlTZGtKcygpO1xuICB9XG5cbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgcHVibGljIHJlbW92ZUxpc3RlbmVycygpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5hcHBsZVBheVNka1NlcnZpY2UucmVtb3ZlTGlzdGVuZXJzKCk7XG4gIH1cblxuICBwdWJsaWMgc2V0QXBwbGVQYXlQYXJhbXMoZGF0YTogeyBwYXltZW50Rm9ybTogUGF5bWVudEZvcm0gfSk6IHZvaWQge1xuICAgIGNvbnN0IHBheW1lbnRGb3JtID0gZGF0YT8ucGF5bWVudEZvcm07XG4gICAgY29uc3QgZm9ybUZpZWxkcyA9IHBheW1lbnRGb3JtPy5maWVsZHM7XG4gICAgY29uc3Qgc3VtbWFyeSA9IHBheW1lbnRGb3JtPy5zdW1tYXJ5O1xuXG4gICAgaWYgKCFmb3JtRmllbGRzIHx8ICFzdW1tYXJ5KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5hcHBsZVBheVBhcmFtcyA9IHRoaXMuYXBwbGVQYXJhbXNCdWlsZGVyLmJ1aWxkUGFyYW1zKHBheW1lbnRGb3JtKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBpbml0QnJhaW50cmVlTGlicmFyeSh0b2tlbktleTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGFwaSA9IGF3YWl0IHRoaXMuYXBpO1xuICAgICAgY29uc3QgY2xpZW50SW5zdGFuY2UgPSBhd2FpdCBhcGkuY2xpZW50LmNyZWF0ZSh7XG4gICAgICAgIGF1dGhvcml6YXRpb246IHRva2VuS2V5LFxuICAgICAgfSk7XG5cbiAgICAgIHRoaXMucGF5bWVudENsaWVudCA9IGF3YWl0IGFwaS5hcHBsZVBheS5jcmVhdGUoe1xuICAgICAgICBjbGllbnQ6IGNsaWVudEluc3RhbmNlLFxuICAgICAgfSk7XG4gICAgICB0aGlzLmJyYWludHJlZUhhbmRsZXIuc2V0Q2xpZW50KHRoaXMucGF5bWVudENsaWVudCk7XG4gICAgfSBjYXRjaCAoZXJyb3I6IHVua25vd24pIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoQXBwbGVQYXlFcnJvcnMuYnJhaW50cmVlSW5pdGlhbGl6ZUVycm9yLCBlcnJvcik7XG4gICAgICB0aGlzLmxvZ2dlclNlcnZpY2UuZXJyb3IoXG4gICAgICAgIG5ldyBUYWdnZWRFcnJvcihBcHBsZVBheUVycm9ycy5icmFpbnRyZWVJbml0aWFsaXplRXJyb3IsIFtcbiAgICAgICAgICBFcnJvclRhZ3MuQVBQTEVQQVksXG4gICAgICAgIF0pXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5wYXltZW50Q2xpZW50IHx8ICF0aGlzLmlzRGV2aWNlQ2FwYWJsZSkge1xuICAgICAgdGhpcy5lbWl0RXJyb3IoQXBwbGVQYXlFcnJvcnMuZGV2aWNlSXNOb3RDYXBhYmxlRXJyb3IpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBpbml0QXBwbGVQYXkoXG4gICAgdG9rZW5LZXk6IHN0cmluZyxcbiAgICBpc0FwcGxlUGF5SW5zdGFudEZsb3dFbmFibGVkOiBib29sZWFuXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLmFwcGxlUGF5UGFyYW1zPy5hY3F1aXJlciA9PT0gJ2JyYWludHJlZScpIHtcbiAgICAgIGF3YWl0IHRoaXMuaW5pdEJyYWludHJlZUxpYnJhcnkodG9rZW5LZXkpO1xuICAgIH1cblxuICAgIHRoaXMuZW1pdEludGVncmF0aW9uVHlwZShpc0FwcGxlUGF5SW5zdGFudEZsb3dFbmFibGVkKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBzdGFydFdpbmRvd0NvbW11bmljYXRpb24oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5leHRlcm5hbFdpbmRvd0NvbW11bmljYXRpb25TZXJ2aWNlLm9wZW5XZWJTb2NrZXRDb25uZWN0aW9uKFxuICAgICAgdGhpcy5zZXR0aW5nc1NlcnZpY2UudG9rZW5cbiAgICApO1xuICB9XG5cbiAgcHVibGljIHNlbmRVcGRhdGVkUHJpY2VWaWFXaW5kb3dDb21tdW5pY2F0aW9uKFxuICAgIHVwZGF0ZWRQcmljZTogVXBkYXRlZFByaWNlXG4gICk6IHZvaWQge1xuICAgIHZvaWQgdGhpcy5leHRlcm5hbFdpbmRvd0NvbW11bmljYXRpb25TZXJ2aWNlLnNlbmRNZXNzYWdlVG9Bbm90aGVyV2luZG93PFxuICAgICAgVXBkYXRlUHJpY2VNZXNzYWdlWydkYXRhJ11cbiAgICA+KENvbW1hbmRzRm9yUGFnZXMuQVBQTEVfUEFZX1VQREFURV9QUklDRSwge1xuICAgICAgbmV3Q2FydFByaWNpbmc6IHVwZGF0ZWRQcmljZSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyByZWRpcmVjdFRvUGF5bWVudFBhZ2UoXG4gICAgcGFyYW1ldGVyczogQXBwbGVQYXlQYXJhbXMsXG4gICAgdG9rZW46IHN0cmluZyxcbiAgICBpc1NhbmRib3g/OiBib29sZWFuXG4gICk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3Qgcm91dGUgPSBwYWdlc1JvdXRlcy5nZXQoYXBwbGVQYXlJZCk7XG4gICAgaWYgKCFyb3V0ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHF1ZXJ5ID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh7XG4gICAgICAuLi5wYXJhbWV0ZXJzLFxuICAgICAgbWVyY2hhbnRDYXBhYmlsaXRpZXM6IEpTT04uc3RyaW5naWZ5KHBhcmFtZXRlcnMubWVyY2hhbnRDYXBhYmlsaXRpZXMpLFxuICAgICAgc3VwcG9ydGVkTmV0d29ya3M6IEpTT04uc3RyaW5naWZ5KHBhcmFtZXRlcnMuc3VwcG9ydGVkTmV0d29ya3MpLFxuICAgICAgcmVxdWlyZWRCaWxsaW5nQ29udGFjdEZpZWxkczogSlNPTi5zdHJpbmdpZnkoXG4gICAgICAgIHBhcmFtZXRlcnM/LnJlcXVpcmVkQmlsbGluZ0NvbnRhY3RGaWVsZHNcbiAgICAgICksXG4gICAgICByZXF1aXJlZFNoaXBwaW5nQ29udGFjdEZpZWxkczogSlNPTi5zdHJpbmdpZnkoXG4gICAgICAgIHBhcmFtZXRlcnM/LnJlcXVpcmVkU2hpcHBpbmdDb250YWN0RmllbGRzXG4gICAgICApLFxuICAgICAgYWdyZWVtZW50czogSlNPTi5zdHJpbmdpZnkocGFyYW1ldGVycy5hZ3JlZW1lbnRzKSxcbiAgICAgIHRva2VuLFxuICAgIH0pO1xuXG4gICAgaWYgKHRoaXMub3JkZXIpIHtcbiAgICAgIHF1ZXJ5LmFwcGVuZCgnb3JkZXInLCB0aGlzLm9yZGVyKTtcbiAgICB9XG5cbiAgICBjb25zdCBwYXlTdGF0aW9uVXJsID0gaXNTYW5kYm94ID8gc2FuZGJveFBheVN0YXRpb25VcmwgOiBwYXlTdGF0aW9uNFVybDtcbiAgICByZXR1cm4gYCR7cGF5U3RhdGlvblVybH0vZW4ke3JvdXRlfT8ke3F1ZXJ5LnRvU3RyaW5nKCl9YDtcbiAgfVxuXG4gIHB1YmxpYyBzZXRPcmRlcihkYXRhOiB7IHBheW1lbnRGb3JtOiBQYXltZW50Rm9ybSB9KTogdm9pZCB7XG4gICAgY29uc3Qgc3VtbWFyeSA9IGRhdGE/LnBheW1lbnRGb3JtPy5zdW1tYXJ5O1xuICAgIGlmICghc3VtbWFyeSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGZpbmFuY2VEZXRhaWxzID1cbiAgICAgIHRoaXMuc3VtbWFyeUZpbmFuY2VEZXRhaWxzQWRhcHRlclNlcnZpY2UuZ2V0RmluYW5jZURldGFpbHMoc3VtbWFyeSk7XG5cbiAgICBpZiAoZmluYW5jZURldGFpbHM/LnB1cmNoYXNlICYmIGZpbmFuY2VEZXRhaWxzPy5maW5hbmNlKSB7XG4gICAgICBjb25zdCBjYXJ0SXRlbXMgPSBmaW5hbmNlRGV0YWlscy5jYXJ0SXRlbXM7XG4gICAgICB0aGlzLm9yZGVyID0gY2FydEl0ZW1zPy5yZWR1Y2UoKGN1cnIsIGl0ZW0pID0+IHtcbiAgICAgICAgaWYgKGN1cnIpIHtcbiAgICAgICAgICByZXR1cm4gY3VyciArIGA7ICR7aXRlbS50aXRsZX1gO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGN1cnIgKyBpdGVtLnRpdGxlO1xuICAgICAgfSwgJycpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNEZXZpY2VDYXBhYmxlKCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLmFwcGxlUGF5U2RrU2VydmljZS5uZWVkVG9BZGRBcHBsZVBheUpzKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgcmV0dXJuIEJvb2xlYW4oXG4gICAgICAgIHRoaXMud2luZG93LkFwcGxlUGF5U2Vzc2lvbj8uc3VwcG9ydHNWZXJzaW9uKGFwcGxlUGF5VmVyc2lvbikgJiZcbiAgICAgICAgICB0aGlzLndpbmRvdy5BcHBsZVBheVNlc3Npb24/LmNhbk1ha2VQYXltZW50cygpXG4gICAgICApO1xuICAgIH0gY2F0Y2ggKGVycm9yOiB1bmtub3duKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldFRva2VuTm9uY2VGaWVsZERhdGEodG9rZW5Ob25jZTogc3RyaW5nKToge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB2YWx1ZTogc3RyaW5nO1xuICB9IHtcbiAgICBjb25zdCBuYW1lID0gRmllbGROYW1lcy50b2tlbkFwcGxlUGF5O1xuICAgIGNvbnN0IHZhbHVlID0gYnRvYSh0b2tlbk5vbmNlKTtcbiAgICByZXR1cm4geyBuYW1lLCB2YWx1ZSB9O1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZUFwcGxlUGF5UGFyYW1zKGRhdGE6IHVua25vd24pOiB2b2lkIHtcbiAgICBjb25zdCBzdW1tYXJ5ID0gKGRhdGEgYXMgWHBzUmVzcG9uc2UpPy5zdW1tYXJ5O1xuICAgIGlmICghdGhpcy5hcHBsZVBheVBhcmFtcyB8fCAhc3VtbWFyeSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuYXBwbGVQYXlQYXJhbXMgPSB0aGlzLmFwcGxlUGFyYW1zQnVpbGRlci51cGRhdGVQYXJhbXMoXG4gICAgICB0aGlzLmFwcGxlUGF5UGFyYW1zLFxuICAgICAgc3VtbWFyeVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgcHJvY2VlZENoZWNrb3V0KFxuICAgIHBhcmFtZXRlcnM6IEFwcGxlUGF5UGFyYW1zLFxuICAgIGFkZGl0aW9uYWxQYXJhbXM6IFN0YXJ0U2Vzc2lvblBhcmFtc1xuICApOiB2b2lkIHtcbiAgICB0aGlzLnVzZXJCZWhhdmlvdXJBbmFseXRpY3NTZXJ2aWNlLnNlbmQoXG4gICAgICBVc2VyQmVoYXZpb3VyRXZlbnROYW1lLmFwcGxlUGF5QWNxdWlyZXIsXG4gICAgICAnbWFudWFsJyxcbiAgICAgIHsgdmFsdWU6IHBhcmFtZXRlcnMuYWNxdWlyZXIgfVxuICAgICk7XG5cbiAgICBjb25zdCBzZXNzaW9uSGFuZGxlciA9IHRoaXMuZ2V0U2Vzc2lvbkhhbmRsZXIocGFyYW1ldGVycy5hY3F1aXJlcik7XG5cbiAgICBpZiAoIXNlc3Npb25IYW5kbGVyKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdBcHBsZSBQYXk6IFVuc3VwcG9ydGVkIGFjcXVpcmVyOicsIHBhcmFtZXRlcnMuYWNxdWlyZXIpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHNlc3Npb25IYW5kbGVyLnN0YXJ0U2Vzc2lvbihwYXJhbWV0ZXJzLCBhZGRpdGlvbmFsUGFyYW1zLCAoKSA9PlxuICAgICAgdGhpcy5hcHBsZVBheVNka1NlcnZpY2UuZW1pdFdpbmRvd0Nsb3NpbmcoKVxuICAgICk7XG4gICAgdGhpcy5lbWl0QXBwbGVQYXlPcGVuZWQoXG4gICAgICBhZGRpdGlvbmFsUGFyYW1zLmlzQXBwbGVQYXlJbnN0YW50Rmxvd0VuYWJsZWQgPz8gZmFsc2VcbiAgICApO1xuICB9XG5cbiAgcHVibGljIG1hcFNoaXBwaW5nQWRkcmVzc1RvQ29udGFjdChcbiAgICBzaGlwcGluZ0FkZHJlc3M6IFNoaXBwaW5nQWRkcmVzc1xuICApOiBBcHBsZVBheVNoaXBwaW5nQ29udGFjdCB7XG4gICAgcmV0dXJuIG1hcFNoaXBwaW5nQWRkcmVzc1RvQ29udGFjdChzaGlwcGluZ0FkZHJlc3MpO1xuICB9XG5cbiAgcHVibGljIHNldFRva2VuKHRva2VuOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnBheW1lbnQubmV4dCh0b2tlbik7XG4gIH1cblxuICBwcml2YXRlIGdldFNlc3Npb25IYW5kbGVyKFxuICAgIGFjcXVpcmVyOiBzdHJpbmdcbiAgKTogQXBwbGVQYXlTZXNzaW9uSGFuZGxlciB8IHVuZGVmaW5lZCB7XG4gICAgc3dpdGNoIChhY3F1aXJlcikge1xuICAgICAgY2FzZSAnYnJhaW50cmVlJzpcbiAgICAgICAgcmV0dXJuIHRoaXMuYnJhaW50cmVlSGFuZGxlcjtcbiAgICAgIGNhc2UgJ2NoZWNrb3V0JzpcbiAgICAgICAgcmV0dXJuIHRoaXMuY2hlY2tvdXRIYW5kbGVyO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGxvYWRCcmFpbnRyZWUoKTogUHJvbWlzZTx7XG4gICAgYXBwbGVQYXk6IHR5cGVvZiBhcHBsZVBheTtcbiAgICBjbGllbnQ6IHR5cGVvZiBjbGllbnQ7XG4gIH0+IHtcbiAgICBjb25zdCBhcGkgPSBhd2FpdCBpbXBvcnQoJ2JyYWludHJlZS13ZWInKTtcbiAgICByZXR1cm4gYXBpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0RXJyb3IoZXJyb3I6IEFwcGxlUGF5RXJyb3JzKTogdm9pZCB7XG4gICAgdGhpcy5lcnJvci5uZXh0KGVycm9yKTtcbiAgfVxuXG4gIHByaXZhdGUgZW1pdEludGVncmF0aW9uVHlwZShpc0FwcGxlUGF5SW5zdGFudEZsb3dFbmFibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5pbnRlZ3JhdGlvblR5cGUubmV4dChcbiAgICAgIHRoaXMuZ2V0SW50ZWdyYXRpb25UeXBlKGlzQXBwbGVQYXlJbnN0YW50Rmxvd0VuYWJsZWQpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgc3Vic2NyaWJlVG9IYW5kbGVycygpOiB2b2lkIHtcbiAgICBjb25zdCBoYW5kbGVycyA9IFt0aGlzLmJyYWludHJlZUhhbmRsZXIsIHRoaXMuY2hlY2tvdXRIYW5kbGVyXTtcblxuICAgIGhhbmRsZXJzLmZvckVhY2goKGhhbmRsZXIpID0+IHtcbiAgICAgIGhhbmRsZXIuZXJyb3IkLnN1YnNjcmliZSgoZXJyb3IpID0+IHRoaXMuZW1pdEVycm9yKGVycm9yKSk7XG4gICAgICBoYW5kbGVyLnBheW1lbnQkLnN1YnNjcmliZSgodG9rZW4pID0+IHtcbiAgICAgICAgdGhpcy5wYXltZW50Lm5leHQodG9rZW4pO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldEludGVncmF0aW9uVHlwZShcbiAgICBpc0FwcGxlUGF5SW5zdGFudEZsb3dFbmFibGVkOiBib29sZWFuXG4gICk6IEFwcGxlUGF5SW50ZWdyYXRpb25UeXBlIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIHJldHVybiB0aGlzLmlzRGV2aWNlQ2FwYWJsZSAmJiBpc0FwcGxlUGF5SW5zdGFudEZsb3dFbmFibGVkXG4gICAgICA/IEFwcGxlUGF5SW50ZWdyYXRpb25UeXBlLm5hdGl2ZVxuICAgICAgOiBBcHBsZVBheUludGVncmF0aW9uVHlwZS5yZWRpcmVjdDtcbiAgfVxuXG4gIHByaXZhdGUgZW1pdEFwcGxlUGF5T3BlbmVkKGlzQXBwbGVQYXlJbnN0YW50Rmxvd0VuYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIGlmIChcbiAgICAgIHRoaXMuZ2V0SW50ZWdyYXRpb25UeXBlKGlzQXBwbGVQYXlJbnN0YW50Rmxvd0VuYWJsZWQpID09PVxuICAgICAgICBBcHBsZVBheUludGVncmF0aW9uVHlwZS5uYXRpdmUgJiZcbiAgICAgIHRoaXMuYXBwbGVQYXlTZGtTZXJ2aWNlLm5lZWRUb0FkZEFwcGxlUGF5SnNcbiAgICApIHtcbiAgICAgIHRoaXMuYXBwbGVQYXlRck9wZW5lZC5uZXh0KCk7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZHMtZm9yLXBhZ2VzLmVudW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wYXltZW50LWNsaWVudC1jb3JlL3NyYy9saWIvY29yZS9zZGstcGF5bWVudC1zeXN0ZW1zL2FwcGxlLXBheS9jb21tYW5kcy1mb3ItcGFnZXMuZW51bS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGVudW0gQ29tbWFuZHNGb3JQYWdlcyB7XG4gIEFQUExFX1BBWV9VUERBVEVfUFJJQ0UgPSAnYXBwbGUtcGF5LXVwZGF0ZS1wcmljZScsXG4gIEFQUExFX1BBWV9SRUNBTENVTEFURV9DQVJUID0gJ2FwcGxlLXBheS1yZWNhbGN1bGF0ZS1jYXJ0JyxcbiAgQVBQTEVfUEFZX1NFTkRfVE9LRU4gPSAnYXBwbGUtcGF5LXNlbmQtdG9rZW4nLFxuICBBUFBMRV9QQVlfUkVUVVJOID0gJ2FwcGxlLXBheS1yZXR1cm4nLFxuICBBUFBMRV9QQVlfV0lORE9XX0NMT1NFID0gJ2FwcGxlLXBheS13aW5kb3ctY2xvc2UnLFxuICBBUFBMRV9QQVlfV0lORE9XX09QRU4gPSAnYXBwbGUtcGF5LXdpbmRvdy1vcGVuJyxcbn1cbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZHMtZm9yLXBhZ2VzLmVudW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wYXltZW50LWNsaWVudC1jb3JlL3NyYy9saWIvY29yZS9zZGstcGF5bWVudC1zeXN0ZW1zL2FwcGxlLXBheS9jb21tYW5kcy1mb3ItcGFnZXMuZW51bS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGVudW0gQ29tbWFuZHNGb3JQYWdlcyB7XG4gIEFQUExFX1BBWV9VUERBVEVfUFJJQ0UgPSAnYXBwbGUtcGF5LXVwZGF0ZS1wcmljZScsXG4gIEFQUExFX1BBWV9SRUNBTENVTEFURV9DQVJUID0gJ2FwcGxlLXBheS1yZWNhbGN1bGF0ZS1jYXJ0JyxcbiAgQVBQTEVfUEFZX1NFTkRfVE9LRU4gPSAnYXBwbGUtcGF5LXNlbmQtdG9rZW4nLFxuICBBUFBMRV9QQVlfUkVUVVJOID0gJ2FwcGxlLXBheS1yZXR1cm4nLFxuICBBUFBMRV9QQVlfV0lORE9XX0NMT1NFID0gJ2FwcGxlLXBheS13aW5kb3ctY2xvc2UnLFxufVxuIl19
@@ -20,10 +20,6 @@ export class ApplePayExternalWindowCommunicationService {
20
20
  this.window.focus();
21
21
  }));
22
22
  }
23
- getWindowOpen$() {
24
- const isWindowOpenMessage = (message) => message.command === "apple-pay-window-open" /* CommandsForPages.APPLE_PAY_WINDOW_OPEN */;
25
- return this.getEventSource(isWindowOpenMessage);
26
- }
27
23
  getWindowReturnMessage$() {
28
24
  const isReturnMessage = (message) => message.command === "apple-pay-return" /* CommandsForPages.APPLE_PAY_RETURN */;
29
25
  const eventSource$ = this.getEventSource(isReturnMessage);
@@ -70,4 +66,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
70
66
  type: Inject,
71
67
  args: [windowToken]
72
68
  }] }, { type: i1.WebSocketFactory }, { type: i2.SocketBridgeService }, { type: i3.UserBehaviourAnalyticsService }] });
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZXJuYWwtd2luZG93LWNvbW11bmljYXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3BheW1lbnQtY2xpZW50LWNvcmUvc3JjL2xpYi9jb3JlL3Nkay1wYXltZW50LXN5c3RlbXMvYXBwbGUtcGF5L2V4dGVybmFsLXdpbmRvdy1jb21tdW5pY2F0aW9uL2V4dGVybmFsLXdpbmRvdy1jb21tdW5pY2F0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHbkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBV3BELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGtFQUFrRSxDQUFDOzs7OztBQU0xRyxNQUFNLE9BQU8sMENBQTBDO0lBR3JELFlBQ3dDLE1BQXNCLEVBQzNDLGdCQUFrQyxFQUNsQyxtQkFBd0MsRUFDeEMsNkJBQTREO1FBSHZDLFdBQU0sR0FBTixNQUFNLENBQWdCO1FBQzNDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4QyxrQ0FBNkIsR0FBN0IsNkJBQTZCLENBQStCO0lBQzVFLENBQUM7SUFFRyxlQUFlO1FBQ3BCLE1BQU0sb0JBQW9CLEdBQUcsQ0FDM0IsT0FBc0IsRUFDUyxFQUFFLENBQ2pDLE9BQU8sQ0FBQyxPQUFPLDJFQUE0QyxDQUFDO1FBRTlELE1BQU0sWUFBWSxHQUNoQixJQUFJLENBQUMsY0FBYyxDQUFxQixvQkFBb0IsQ0FBQyxDQUFDO1FBRWhFLE9BQU8sWUFBWSxDQUFDLElBQUksQ0FDdEIsR0FBRyxDQUFDLEdBQUcsRUFB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MkZBRVAsMENBQTBDO2tCQUh0RCxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBS0ksTUFBTTsyQkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCBtYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgV2ViU29ja2V0RmFjdG9yeSB9IGZyb20gJy4uLy4uLy4uL3dlYi1zb2NrZXQvd2ViLXNvY2tldC5mYWN0b3J5JztcbmltcG9ydCB7IFdlYlNvY2tldENsaWVudCB9IGZyb20gJy4uLy4uLy4uL3dlYi1zb2NrZXQvd2ViLXNvY2tldC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgd2luZG93VG9rZW4gfSBmcm9tICcuLi8uLi8uLi93aW5kb3cudG9rZW4nO1xuaW1wb3J0IHsgRXh0ZW5kZWRXaW5kb3cgfSBmcm9tICcuLi8uLi8uLi9leHRlbmRlZC13aW5kb3cuaW50ZXJmYWNlJztcbmltcG9ydCB7IFNvY2tldEJyaWRnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi93ZWItc29ja2V0L3NvY2tldC1icmlkZ2Uvc29ja2V0LWJyaWRnZS5zZXJ2aWNlJztcbmltcG9ydCB7IFdpbmRvd0Nsb3NlTWVzc2FnZSB9IGZyb20gJy4uL3NvY2tldC1tZXNzYWdlcy93aW5kb3ctY2xvc2UtbWVzc2FnZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgV2luZG93Q29tbWFuZCB9IGZyb20gJy4uLy4uLy4uL3dpbmRvdy1jb21tYW5kLmludGVyZmFjZSc7XG5pbXBvcnQgeyBDb21tYW5kc0ZvclBhZ2VzIH0gZnJvbSAnLi4vY29tbWFuZHMtZm9yLXBhZ2VzLmVudW0nO1xuaW1wb3J0IHsgQnJpZGdlQ29tbWFuZCB9IGZyb20gJy4uLy4uLy4uL3dlYi1zb2NrZXQvc29ja2V0LWJyaWRnZS9icmlkZ2UtY29tbWFuZC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUmVjYWxjdWxhdGVDYXJ0TWVzc2FnZSB9IGZyb20gJy4uL3NvY2tldC1tZXNzYWdlcy9yZWNhbGN1bGF0ZS1jYXJ0LW1lc3NhZ2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IEFwcGxlUGF5U2VuZFRva2VuTWVzc2FnZSB9IGZyb20gJy4uL3NvY2tldC1tZXNzYWdlcy9zZW5kLXRva2VuLW1lc3NhZ2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IFJldHVybk1lc3NhZ2UgfSBmcm9tICcuLi9zb2NrZXQtbWVzc2FnZXMvcmV0dXJuLW1lc3NhZ2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IFVzZXJCZWhhdmlvdXJBbmFseXRpY3NTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vdXNlci1iZWhhdmlvdXItYW5hbHl0aWNzL3VzZXItYmVoYXZpb3VyLWFuYWx5dGljcy5zZXJ2aWNlJztcbmltcG9ydCB7IFVzZXJCZWhhdmlvdXJFdmVudE5hbWUgfSBmcm9tICcuLi8uLi8uLi91c2VyLWJlaGF2aW91ci1hbmFseXRpY3MvdXNlci1iZWhhdmlvdXItZXZlbnQtbmFtZS5lbnVtJztcbmltcG9ydCB7IFdpbmRvd09wZW5NZXNzYWdlIH0gZnJvbSAnLi4vc29ja2V0LW1lc3NhZ2VzL3dpbmRvdy1vcGVuLW1lc3NhZ2UuaW50ZXJmYWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEFwcGxlUGF5RXh0ZXJuYWxXaW5kb3dDb21tdW5pY2F0aW9uU2VydmljZSB7XG4gIHByaXZhdGUgd2Vic29ja2V0Q2xpZW50ITogV2ViU29ja2V0Q2xpZW50O1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KHdpbmRvd1Rva2VuKSBwcml2YXRlIHJlYWRvbmx5IHdpbmRvdzogRXh0ZW5kZWRXaW5kb3csXG4gICAgcHJpdmF0ZSByZWFkb25seSB3ZWJTb2NrZXRGYWN0b3J5OiBXZWJTb2NrZXRGYWN0b3J5LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc29ja2V0QnJpZGdlU2VydmljZTogU29ja2V0QnJpZGdlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHVzZXJCZWhhdmlvdXJBbmFseXRpY3NTZXJ2aWNlOiBVc2VyQmVoYXZpb3VyQW5hbHl0aWNzU2VydmljZVxuICApIHt9XG5cbiAgcHVibGljIGdldFdpbmRvd0Nsb3NlJCgpOiBPYnNlcnZhYmxlPFdpbmRvd0Nsb3NlTWVzc2FnZT4ge1xuICAgIGNvbnN0IGlzV2luZG93Q2xvc2VNZXNzYWdlID0gKFxuICAgICAgbWVzc2FnZTogV2luZG93Q29tbWFuZFxuICAgICk6IG1lc3NhZ2UgaXMgV2luZG93Q2xvc2VNZXNzYWdlID0+XG4gICAgICBtZXNzYWdlLmNvbW1hbmQgPT09IENvbW1hbmRzRm9yUGFnZXMuQVBQTEVfUEFZX1dJTkRPV19DTE9TRTtcblxuICAgIGNvbnN0IGV2ZW50U291cmNlJCA9XG4gICAgICB0aGlzLmdldEV2ZW50U291cmNlPFdpbmRvd0Nsb3NlTWVzc2FnZT4oaXNXaW5kb3dDbG9zZU1lc3NhZ2UpO1xuXG4gICAgcmV0dXJuIGV2ZW50U291cmNlJC5waXBlKFxuICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgdGhpcy53aW5kb3cuZm9jdXMoKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRXaW5kb3dPcGVuJCgpOiBPYnNlcnZhYmxlPFdpbmRvd09wZW5NZXNzYWdlPiB7XG4gICAgY29uc3QgaXNXaW5kb3dPcGVuTWVzc2FnZSA9IChcbiAgICAgIG1lc3NhZ2U6IFdpbmRvd0NvbW1hbmRcbiAgICApOiBtZXNzYWdlIGlzIFdpbmRvd09wZW5NZXNzYWdlID0+XG4gICAgICBtZXNzYWdlLmNvbW1hbmQgPT09IENvbW1hbmRzRm9yUGFnZXMuQVBQTEVfUEFZX1dJTkRPV19PUEVOO1xuXG4gICAgcmV0dXJuIHRoaXMuZ2V0RXZlbnRTb3VyY2U8V2luZG93T3Blbk1lc3NhZ2U+KGlzV2luZG93T3Blbk1lc3NhZ2UpO1xuICB9XG5cbiAgcHVibGljIGdldFdpbmRvd1JldHVybk1lc3NhZ2UkKCk6IE9ic2VydmFibGU8UmV0dXJuTWVzc2FnZT4ge1xuICAgIGNvbnN0IGlzUmV0dXJuTWVzc2FnZSA9IChcbiAgICAgIG1lc3NhZ2U6IFdpbmRvd0NvbW1hbmRcbiAgICApOiBtZXNzYWdlIGlzIFJldHVybk1lc3NhZ2UgPT5cbiAgICAgIG1lc3NhZ2UuY29tbWFuZCA9PT0gQ29tbWFuZHNGb3JQYWdlcy5BUFBMRV9QQVlfUkVUVVJOO1xuXG4gICAgY29uc3QgZXZlbnRTb3VyY2UkID0gdGhpcy5nZXRFdmVudFNvdXJjZTxSZXR1cm5NZXNzYWdlPihpc1JldHVybk1lc3NhZ2UpO1xuXG4gICAgcmV0dXJuIGV2ZW50U291cmNlJC5waXBlKFxuICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgLy8gVE9ETzogc2VuZCBjbG9zZSBldmVudCB0byBzZGtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRXaW5kb3dTZW5kVG9rZW5NZXNzYWdlJCgpOiBPYnNlcnZhYmxlPEFwcGxlUGF5U2VuZFRva2VuTWVzc2FnZT4ge1xuICAgIGNvbnN0IGlzU2VuZFRva2VuTWVzc2FnZSA9IChcbiAgICAgIG1lc3NhZ2U6IFdpbmRvd0NvbW1hbmRcbiAgICApOiBtZXNzYWdlIGlzIEFwcGxlUGF5U2VuZFRva2VuTWVzc2FnZSA9PlxuICAgICAgbWVzc2FnZS5jb21tYW5kID09PSBDb21tYW5kc0ZvclBhZ2VzLkFQUExFX1BBWV9TRU5EX1RPS0VOO1xuXG4gICAgcmV0dXJuIHRoaXMuZ2V0RXZlbnRTb3VyY2U8QXBwbGVQYXlTZW5kVG9rZW5NZXNzYWdlPihpc1NlbmRUb2tlbk1lc3NhZ2UpO1xuICB9XG5cbiAgcHVibGljIGdldENhcnRSZWNhbGN1bGF0aW9uTWVzc2FnZSQoKTogT2JzZXJ2YWJsZTxSZWNhbGN1bGF0ZUNhcnRNZXNzYWdlPiB7XG4gICAgY29uc3QgaXNSZWNhbGN1bGF0ZUNhcnRNZXNzYWdlID0gKFxuICAgICAgbWVzc2FnZTogV2luZG93Q29tbWFuZFxuICAgICk6IG1lc3NhZ2UgaXMgUmVjYWxjdWxhdGVDYXJ0TWVzc2FnZSA9PlxuICAgICAgbWVzc2FnZS5jb21tYW5kID09PSBDb21tYW5kc0ZvclBhZ2VzLkFQUExFX1BBWV9SRUNBTENVTEFURV9DQVJUO1xuXG4gICAgcmV0dXJuIHRoaXMuZ2V0RXZlbnRTb3VyY2U8UmVjYWxjdWxhdGVDYXJ0TWVzc2FnZT4oXG4gICAgICBpc1JlY2FsY3VsYXRlQ2FydE1lc3NhZ2VcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIG9wZW5XZWJTb2NrZXRDb25uZWN0aW9uKHRva2VuOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLnVzZXJCZWhhdmlvdXJBbmFseXRpY3NTZXJ2aWNlLnNlbmQoXG4gICAgICBVc2VyQmVoYXZpb3VyRXZlbnROYW1lLmFwcGxlUGF5T3BlbldlYlNvY2tldENvbm5lY3Rpb24sXG4gICAgICAnbWFudWFsJ1xuICAgICk7XG5cbiAgICBjb25zdCBicmlkZ2VJbmZvID1cbiAgICAgIGF3YWl0IHRoaXMuc29ja2V0QnJpZGdlU2VydmljZS5nZXRCcmlkZ2VDb25uZWN0aW9uQ2hhbm5lbCh0b2tlbik7XG5cbiAgICBpZiAodGhpcy53ZWJzb2NrZXRDbGllbnQpIHtcbiAgICAgIHRoaXMud2Vic29ja2V0Q2xpZW50LmNsb3NlKCk7XG4gICAgfVxuXG4gICAgdGhpcy53ZWJzb2NrZXRDbGllbnQgPSB0aGlzLndlYlNvY2tldEZhY3RvcnkuY3JlYXRlV2ViU29ja2V0Q2xpZW50KFxuICAgICAgYnJpZGdlSW5mby5zdWJzY3JpYmVVcmwsXG4gICAgICBicmlkZ2VJbmZvLmNsaWVudFR5cGVcbiAgICApO1xuXG4gICAgYXdhaXQgdGhpcy53ZWJzb2NrZXRDbGllbnQub3BlbihcbiAgICAgIGJyaWRnZUluZm8uc3Vic2NyaWJlVXJsLFxuICAgICAgYnJpZGdlSW5mby5jaGFubmVsTmFtZVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgc2VuZE1lc3NhZ2VUb0Fub3RoZXJXaW5kb3c8UCBleHRlbmRzIHsgW2tleTogc3RyaW5nXTogdW5rbm93biB9PihcbiAgICBjb21tYW5kOiBDb21tYW5kc0ZvclBhZ2VzLFxuICAgIHBheWxvYWQ/OiBQXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMudXNlckJlaGF2aW91ckFuYWx5dGljc1NlcnZpY2Uuc2VuZChcbiAgICAgIFVzZXJCZWhhdmlvdXJFdmVudE5hbWUuYXBwbGVQYXlTZW5kTWVzc2FnZVRvQW5vdGhlcldpbmRvdyxcbiAgICAgICdtYW51YWwnLFxuICAgICAgeyB2YWx1ZTogY29tbWFuZCB9XG4gICAgKTtcblxuICAgIGF3YWl0IHRoaXMuc29ja2V0QnJpZGdlU2VydmljZS5wdWJsaXNoTWVzc2FnZTxQPihjb21tYW5kLCBwYXlsb2FkKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RXZlbnRTb3VyY2U8VCBleHRlbmRzIFdpbmRvd0NvbW1hbmQ+KFxuICAgIGV2ZW50SGFuZGxlcjogKG1lc3NhZ2U6IFdpbmRvd0NvbW1hbmQpID0+IG1lc3NhZ2UgaXMgVFxuICApOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICByZXR1cm4gdGhpcy53ZWJzb2NrZXRDbGllbnQubWVzc2FnZXMkLnBpcGUoXG4gICAgICBtYXA8c3RyaW5nLCBCcmlkZ2VDb21tYW5kPigobWVzc2FnZSkgPT4ge1xuICAgICAgICBjb25zb2xlLmluZm8oJ3dlYnNvY2tldCBtZXNzYWdlJywgbWVzc2FnZSk7XG4gICAgICAgIHJldHVybiBKU09OLnBhcnNlKG1lc3NhZ2UpIGFzIEJyaWRnZUNvbW1hbmQ7XG4gICAgICB9KSxcbiAgICAgIGZpbHRlcjxCcmlkZ2VDb21tYW5kLCBUPihldmVudEhhbmRsZXIpXG4gICAgKTtcbiAgfVxufVxuIl19
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZXJuYWwtd2luZG93LWNvbW11bmljYXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3BheW1lbnQtY2xpZW50LWNvcmUvc3JjL2xpYi9jb3JlL3Nkay1wYXltZW50LXN5c3RlbXMvYXBwbGUtcGF5L2V4dGVybmFsLXdpbmRvdy1jb21tdW5pY2F0aW9uL2V4dGVybmFsLXdpbmRvdy1jb21tdW5pY2F0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHbkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBV3BELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGtFQUFrRSxDQUFDOzs7OztBQUsxRyxNQUFNLE9BQU8sMENBQTBDO0lBR3JELFlBQ3dDLE1BQXNCLEVBQzNDLGdCQUFrQyxFQUNsQyxtQkFBd0MsRUFDeEMsNkJBQTREO1FBSHZDLFdBQU0sR0FBTixNQUFNLENBQWdCO1FBQzNDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4QyxrQ0FBNkIsR0FBN0IsNkJBQTZCLENBQStCO0lBQzVFLENBQUM7SUFFRyxlQUFlO1FBQ3BCLE1BQU0sb0JBQW9CLEdBQUcsQ0FDM0IsT0FBc0IsRUFDUyxFQUFFLENBQ2pDLE9BQU8sQ0FBQyxPQUFPLDJFQUE0QyxDQUFDO1FBRTlELE1BQU0sWUFBWSxHQUNoQixJQUFJLENBQUMsY0FBYyxDQUFxQixvQkFBb0IsQ0FBQyxDQUFDO1FBRWhFLE9BQU8sWUFBWSxDQUFDLElBQUksQ0FDdEIsR0FBRyxDQUFDLEdBQUcsRUFB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aWx0ZXIsIG1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBXZWJTb2NrZXRGYWN0b3J5IH0gZnJvbSAnLi4vLi4vLi4vd2ViLXNvY2tldC93ZWItc29ja2V0LmZhY3RvcnknO1xuaW1wb3J0IHsgV2ViU29ja2V0Q2xpZW50IH0gZnJvbSAnLi4vLi4vLi4vd2ViLXNvY2tldC93ZWItc29ja2V0LmludGVyZmFjZSc7XG5pbXBvcnQgeyB3aW5kb3dUb2tlbiB9IGZyb20gJy4uLy4uLy4uL3dpbmRvdy50b2tlbic7XG5pbXBvcnQgeyBFeHRlbmRlZFdpbmRvdyB9IGZyb20gJy4uLy4uLy4uL2V4dGVuZGVkLXdpbmRvdy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgU29ja2V0QnJpZGdlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3dlYi1zb2NrZXQvc29ja2V0LWJyaWRnZS9zb2NrZXQtYnJpZGdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgV2luZG93Q2xvc2VNZXNzYWdlIH0gZnJvbSAnLi4vc29ja2V0LW1lc3NhZ2VzL3dpbmRvdy1jbG9zZS1tZXNzYWdlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBXaW5kb3dDb21tYW5kIH0gZnJvbSAnLi4vLi4vLi4vd2luZG93LWNvbW1hbmQuaW50ZXJmYWNlJztcbmltcG9ydCB7IENvbW1hbmRzRm9yUGFnZXMgfSBmcm9tICcuLi9jb21tYW5kcy1mb3ItcGFnZXMuZW51bSc7XG5pbXBvcnQgeyBCcmlkZ2VDb21tYW5kIH0gZnJvbSAnLi4vLi4vLi4vd2ViLXNvY2tldC9zb2NrZXQtYnJpZGdlL2JyaWRnZS1jb21tYW5kLmludGVyZmFjZSc7XG5pbXBvcnQgeyBSZWNhbGN1bGF0ZUNhcnRNZXNzYWdlIH0gZnJvbSAnLi4vc29ja2V0LW1lc3NhZ2VzL3JlY2FsY3VsYXRlLWNhcnQtbWVzc2FnZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQXBwbGVQYXlTZW5kVG9rZW5NZXNzYWdlIH0gZnJvbSAnLi4vc29ja2V0LW1lc3NhZ2VzL3NlbmQtdG9rZW4tbWVzc2FnZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUmV0dXJuTWVzc2FnZSB9IGZyb20gJy4uL3NvY2tldC1tZXNzYWdlcy9yZXR1cm4tbWVzc2FnZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgVXNlckJlaGF2aW91ckFuYWx5dGljc1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi91c2VyLWJlaGF2aW91ci1hbmFseXRpY3MvdXNlci1iZWhhdmlvdXItYW5hbHl0aWNzLnNlcnZpY2UnO1xuaW1wb3J0IHsgVXNlckJlaGF2aW91ckV2ZW50TmFtZSB9IGZyb20gJy4uLy4uLy4uL3VzZXItYmVoYXZpb3VyLWFuYWx5dGljcy91c2VyLWJlaGF2aW91ci1ldmVudC1uYW1lLmVudW0nO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQXBwbGVQYXlFeHRlcm5hbFdpbmRvd0NvbW11bmljYXRpb25TZXJ2aWNlIHtcbiAgcHJpdmF0ZSB3ZWJzb2NrZXRDbGllbnQhOiBXZWJTb2NrZXRDbGllbnQ7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3Qod2luZG93VG9rZW4pIHByaXZhdGUgcmVhZG9ubHkgd2luZG93OiBFeHRlbmRlZFdpbmRvdyxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHdlYlNvY2tldEZhY3Rvcnk6IFdlYlNvY2tldEZhY3RvcnksXG4gICAgcHJpdmF0ZSByZWFkb25seSBzb2NrZXRCcmlkZ2VTZXJ2aWNlOiBTb2NrZXRCcmlkZ2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdXNlckJlaGF2aW91ckFuYWx5dGljc1NlcnZpY2U6IFVzZXJCZWhhdmlvdXJBbmFseXRpY3NTZXJ2aWNlXG4gICkge31cblxuICBwdWJsaWMgZ2V0V2luZG93Q2xvc2UkKCk6IE9ic2VydmFibGU8V2luZG93Q2xvc2VNZXNzYWdlPiB7XG4gICAgY29uc3QgaXNXaW5kb3dDbG9zZU1lc3NhZ2UgPSAoXG4gICAgICBtZXNzYWdlOiBXaW5kb3dDb21tYW5kXG4gICAgKTogbWVzc2FnZSBpcyBXaW5kb3dDbG9zZU1lc3NhZ2UgPT5cbiAgICAgIG1lc3NhZ2UuY29tbWFuZCA9PT0gQ29tbWFuZHNGb3JQYWdlcy5BUFBMRV9QQVlfV0lORE9XX0NMT1NFO1xuXG4gICAgY29uc3QgZXZlbnRTb3VyY2UkID1cbiAgICAgIHRoaXMuZ2V0RXZlbnRTb3VyY2U8V2luZG93Q2xvc2VNZXNzYWdlPihpc1dpbmRvd0Nsb3NlTWVzc2FnZSk7XG5cbiAgICByZXR1cm4gZXZlbnRTb3VyY2UkLnBpcGUoXG4gICAgICB0YXAoKCkgPT4ge1xuICAgICAgICB0aGlzLndpbmRvdy5mb2N1cygpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldFdpbmRvd1JldHVybk1lc3NhZ2UkKCk6IE9ic2VydmFibGU8UmV0dXJuTWVzc2FnZT4ge1xuICAgIGNvbnN0IGlzUmV0dXJuTWVzc2FnZSA9IChcbiAgICAgIG1lc3NhZ2U6IFdpbmRvd0NvbW1hbmRcbiAgICApOiBtZXNzYWdlIGlzIFJldHVybk1lc3NhZ2UgPT5cbiAgICAgIG1lc3NhZ2UuY29tbWFuZCA9PT0gQ29tbWFuZHNGb3JQYWdlcy5BUFBMRV9QQVlfUkVUVVJOO1xuXG4gICAgY29uc3QgZXZlbnRTb3VyY2UkID0gdGhpcy5nZXRFdmVudFNvdXJjZTxSZXR1cm5NZXNzYWdlPihpc1JldHVybk1lc3NhZ2UpO1xuXG4gICAgcmV0dXJuIGV2ZW50U291cmNlJC5waXBlKFxuICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgLy8gVE9ETzogc2VuZCBjbG9zZSBldmVudCB0byBzZGtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRXaW5kb3dTZW5kVG9rZW5NZXNzYWdlJCgpOiBPYnNlcnZhYmxlPEFwcGxlUGF5U2VuZFRva2VuTWVzc2FnZT4ge1xuICAgIGNvbnN0IGlzU2VuZFRva2VuTWVzc2FnZSA9IChcbiAgICAgIG1lc3NhZ2U6IFdpbmRvd0NvbW1hbmRcbiAgICApOiBtZXNzYWdlIGlzIEFwcGxlUGF5U2VuZFRva2VuTWVzc2FnZSA9PlxuICAgICAgbWVzc2FnZS5jb21tYW5kID09PSBDb21tYW5kc0ZvclBhZ2VzLkFQUExFX1BBWV9TRU5EX1RPS0VOO1xuXG4gICAgcmV0dXJuIHRoaXMuZ2V0RXZlbnRTb3VyY2U8QXBwbGVQYXlTZW5kVG9rZW5NZXNzYWdlPihpc1NlbmRUb2tlbk1lc3NhZ2UpO1xuICB9XG5cbiAgcHVibGljIGdldENhcnRSZWNhbGN1bGF0aW9uTWVzc2FnZSQoKTogT2JzZXJ2YWJsZTxSZWNhbGN1bGF0ZUNhcnRNZXNzYWdlPiB7XG4gICAgY29uc3QgaXNSZWNhbGN1bGF0ZUNhcnRNZXNzYWdlID0gKFxuICAgICAgbWVzc2FnZTogV2luZG93Q29tbWFuZFxuICAgICk6IG1lc3NhZ2UgaXMgUmVjYWxjdWxhdGVDYXJ0TWVzc2FnZSA9PlxuICAgICAgbWVzc2FnZS5jb21tYW5kID09PSBDb21tYW5kc0ZvclBhZ2VzLkFQUExFX1BBWV9SRUNBTENVTEFURV9DQVJUO1xuXG4gICAgcmV0dXJuIHRoaXMuZ2V0RXZlbnRTb3VyY2U8UmVjYWxjdWxhdGVDYXJ0TWVzc2FnZT4oXG4gICAgICBpc1JlY2FsY3VsYXRlQ2FydE1lc3NhZ2VcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIG9wZW5XZWJTb2NrZXRDb25uZWN0aW9uKHRva2VuOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLnVzZXJCZWhhdmlvdXJBbmFseXRpY3NTZXJ2aWNlLnNlbmQoXG4gICAgICBVc2VyQmVoYXZpb3VyRXZlbnROYW1lLmFwcGxlUGF5T3BlbldlYlNvY2tldENvbm5lY3Rpb24sXG4gICAgICAnbWFudWFsJ1xuICAgICk7XG5cbiAgICBjb25zdCBicmlkZ2VJbmZvID1cbiAgICAgIGF3YWl0IHRoaXMuc29ja2V0QnJpZGdlU2VydmljZS5nZXRCcmlkZ2VDb25uZWN0aW9uQ2hhbm5lbCh0b2tlbik7XG5cbiAgICBpZiAodGhpcy53ZWJzb2NrZXRDbGllbnQpIHtcbiAgICAgIHRoaXMud2Vic29ja2V0Q2xpZW50LmNsb3NlKCk7XG4gICAgfVxuXG4gICAgdGhpcy53ZWJzb2NrZXRDbGllbnQgPSB0aGlzLndlYlNvY2tldEZhY3RvcnkuY3JlYXRlV2ViU29ja2V0Q2xpZW50KFxuICAgICAgYnJpZGdlSW5mby5zdWJzY3JpYmVVcmwsXG4gICAgICBicmlkZ2VJbmZvLmNsaWVudFR5cGVcbiAgICApO1xuXG4gICAgYXdhaXQgdGhpcy53ZWJzb2NrZXRDbGllbnQub3BlbihcbiAgICAgIGJyaWRnZUluZm8uc3Vic2NyaWJlVXJsLFxuICAgICAgYnJpZGdlSW5mby5jaGFubmVsTmFtZVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgc2VuZE1lc3NhZ2VUb0Fub3RoZXJXaW5kb3c8UCBleHRlbmRzIHsgW2tleTogc3RyaW5nXTogdW5rbm93biB9PihcbiAgICBjb21tYW5kOiBDb21tYW5kc0ZvclBhZ2VzLFxuICAgIHBheWxvYWQ/OiBQXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMudXNlckJlaGF2aW91ckFuYWx5dGljc1NlcnZpY2Uuc2VuZChcbiAgICAgIFVzZXJCZWhhdmlvdXJFdmVudE5hbWUuYXBwbGVQYXlTZW5kTWVzc2FnZVRvQW5vdGhlcldpbmRvdyxcbiAgICAgICdtYW51YWwnLFxuICAgICAgeyB2YWx1ZTogY29tbWFuZCB9XG4gICAgKTtcblxuICAgIGF3YWl0IHRoaXMuc29ja2V0QnJpZGdlU2VydmljZS5wdWJsaXNoTWVzc2FnZTxQPihjb21tYW5kLCBwYXlsb2FkKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RXZlbnRTb3VyY2U8VCBleHRlbmRzIFdpbmRvd0NvbW1hbmQ+KFxuICAgIGV2ZW50SGFuZGxlcjogKG1lc3NhZ2U6IFdpbmRvd0NvbW1hbmQpID0+IG1lc3NhZ2UgaXMgVFxuICApOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICByZXR1cm4gdGhpcy53ZWJzb2NrZXRDbGllbnQubWVzc2FnZXMkLnBpcGUoXG4gICAgICBtYXA8c3RyaW5nLCBCcmlkZ2VDb21tYW5kPigobWVzc2FnZSkgPT4ge1xuICAgICAgICBjb25zb2xlLmluZm8oJ3dlYnNvY2tldCBtZXNzYWdlJywgbWVzc2FnZSk7XG4gICAgICAgIHJldHVybiBKU09OLnBhcnNlKG1lc3NhZ2UpIGFzIEJyaWRnZUNvbW1hbmQ7XG4gICAgICB9KSxcbiAgICAgIGZpbHRlcjxCcmlkZ2VDb21tYW5kLCBUPihldmVudEhhbmRsZXIpXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -1632,6 +1632,45 @@ const isGooglePaySettingsGuard = (settings) => {
1632
1632
  return settings.paymentMethodId === googlePayPid;
1633
1633
  };
1634
1634
 
1635
+ class HttpError extends AppError {
1636
+ constructor(error, req) {
1637
+ super(error.message);
1638
+ this.RESTRICTED_KEYS_REGEXP = new RegExp('.*(card_number|number|cvv|cvn|month|year|cardholdername|client_data|dfp|password).*', 'i');
1639
+ this.httpErrorData = {
1640
+ request: {
1641
+ url: req.url,
1642
+ method: req.method,
1643
+ headers: req.headers,
1644
+ },
1645
+ response: {
1646
+ status: error.status,
1647
+ headers: error.headers,
1648
+ },
1649
+ };
1650
+ if (req.body) {
1651
+ this.httpErrorData.request.data = this.cleanPersonalData(req.body);
1652
+ }
1653
+ if (error.statusText) {
1654
+ const errorData = error.error;
1655
+ this.httpErrorData.response.data = {
1656
+ statusText: error.statusText,
1657
+ errors: errorData?.errors ?? [],
1658
+ };
1659
+ }
1660
+ }
1661
+ getHttpErrorData() {
1662
+ return this.httpErrorData;
1663
+ }
1664
+ cleanPersonalData(data) {
1665
+ return Object.entries(data).reduce((acc, [key, val]) => {
1666
+ return {
1667
+ ...acc,
1668
+ [key]: this.RESTRICTED_KEYS_REGEXP.test(key) ? '***' : val,
1669
+ };
1670
+ }, {});
1671
+ }
1672
+ }
1673
+
1635
1674
  const initializeResponseFactoryToken = new InjectionToken('InitializeResponse');
1636
1675
  const initializeResponseFactoryProvider = {
1637
1676
  provide: initializeResponseFactoryToken,
@@ -2279,6 +2318,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
2279
2318
  type: Injectable
2280
2319
  }] });
2281
2320
 
2321
+ class ServerErrorActionCreator {
2322
+ constructor() {
2323
+ this.type = 'server_error';
2324
+ }
2325
+ getActionData(data) {
2326
+ return {
2327
+ type: this.type,
2328
+ data,
2329
+ };
2330
+ }
2331
+ isSuitable() {
2332
+ return false;
2333
+ }
2334
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: ServerErrorActionCreator, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
2335
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: ServerErrorActionCreator }); }
2336
+ }
2337
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: ServerErrorActionCreator, decorators: [{
2338
+ type: Injectable
2339
+ }] });
2340
+
2282
2341
  const nextActionsToken = new InjectionToken('Action');
2283
2342
  const nextActions = [
2284
2343
  GoogleThreeDsRedirectActionCreator,
@@ -2296,6 +2355,7 @@ const flowUpdateNextActions = [
2296
2355
  StatusUpdatedActionCreator,
2297
2356
  ThreeDsActionCreator,
2298
2357
  ThreeDsRedirectActionCreator,
2358
+ ServerErrorActionCreator,
2299
2359
  ];
2300
2360
 
2301
2361
  const oneTimeAnalyticsEvents = new Set([]);
@@ -3220,7 +3280,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
3220
3280
  }] }, { type: SettingsService }] });
3221
3281
 
3222
3282
  class InitializeService {
3223
- constructor(responseFactory, xpsApiService, settingsService, countryService, nextActionService, xpsResponseErrorsMappingService, encryptCreditCardService, showErrorsActionCreator, userBehaviourAnalyticsService, paymentSettingsService, sessionService) {
3283
+ constructor(responseFactory, xpsApiService, settingsService, countryService, nextActionService, xpsResponseErrorsMappingService, encryptCreditCardService, showErrorsActionCreator, serverErrorActionCreator, userBehaviourAnalyticsService, paymentSettingsService, sessionService) {
3224
3284
  this.responseFactory = responseFactory;
3225
3285
  this.xpsApiService = xpsApiService;
3226
3286
  this.settingsService = settingsService;
@@ -3229,6 +3289,7 @@ class InitializeService {
3229
3289
  this.xpsResponseErrorsMappingService = xpsResponseErrorsMappingService;
3230
3290
  this.encryptCreditCardService = encryptCreditCardService;
3231
3291
  this.showErrorsActionCreator = showErrorsActionCreator;
3292
+ this.serverErrorActionCreator = serverErrorActionCreator;
3232
3293
  this.userBehaviourAnalyticsService = userBehaviourAnalyticsService;
3233
3294
  this.paymentSettingsService = paymentSettingsService;
3234
3295
  this.sessionService = sessionService;
@@ -3273,6 +3334,13 @@ class InitializeService {
3273
3334
  return initializeResponse;
3274
3335
  })
3275
3336
  .catch((error) => {
3337
+ if (error instanceof HttpError) {
3338
+ const httpErrorData = error.getHttpErrorData();
3339
+ this.nextActionService.emitFlowUpdates(this.serverErrorActionCreator.getActionData({
3340
+ status: httpErrorData.response.status,
3341
+ message: error.message,
3342
+ }));
3343
+ }
3276
3344
  throw new ResponseError(error.message);
3277
3345
  });
3278
3346
  }
@@ -3283,7 +3351,7 @@ class InitializeService {
3283
3351
  }
3284
3352
  this.encryptCreditCardService.setPublicKey(atob(publicKeyField.value));
3285
3353
  }
3286
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: InitializeService, deps: [{ token: initializeResponseFactoryToken }, { token: XpsApiService }, { token: SettingsService }, { token: CountryService }, { token: NextActionService }, { token: XpsResponseErrorsMappingService }, { token: EncryptCreditCardService }, { token: ShowErrorsActionCreator }, { token: UserBehaviourAnalyticsService }, { token: PaymentSettingsService }, { token: SessionService }], target: i0.ɵɵFactoryTarget.Injectable }); }
3354
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: InitializeService, deps: [{ token: initializeResponseFactoryToken }, { token: XpsApiService }, { token: SettingsService }, { token: CountryService }, { token: NextActionService }, { token: XpsResponseErrorsMappingService }, { token: EncryptCreditCardService }, { token: ShowErrorsActionCreator }, { token: ServerErrorActionCreator }, { token: UserBehaviourAnalyticsService }, { token: PaymentSettingsService }, { token: SessionService }], target: i0.ɵɵFactoryTarget.Injectable }); }
3287
3355
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: InitializeService, providedIn: 'root' }); }
3288
3356
  }
3289
3357
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: InitializeService, decorators: [{
@@ -3294,7 +3362,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
3294
3362
  }], ctorParameters: () => [{ type: undefined, decorators: [{
3295
3363
  type: Inject,
3296
3364
  args: [initializeResponseFactoryToken]
3297
- }] }, { type: XpsApiService }, { type: SettingsService }, { type: CountryService }, { type: NextActionService }, { type: XpsResponseErrorsMappingService }, { type: EncryptCreditCardService }, { type: ShowErrorsActionCreator }, { type: UserBehaviourAnalyticsService }, { type: PaymentSettingsService }, { type: SessionService }] });
3365
+ }] }, { type: XpsApiService }, { type: SettingsService }, { type: CountryService }, { type: NextActionService }, { type: XpsResponseErrorsMappingService }, { type: EncryptCreditCardService }, { type: ShowErrorsActionCreator }, { type: ServerErrorActionCreator }, { type: UserBehaviourAnalyticsService }, { type: PaymentSettingsService }, { type: SessionService }] });
3298
3366
 
3299
3367
  class XpsApiPartRequest {
3300
3368
  addXpsParameters(parameters) {
@@ -3425,7 +3493,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
3425
3493
  }], ctorParameters: () => [{ type: SettingsService }] });
3426
3494
 
3427
3495
  class SubmitService {
3428
- constructor(requestFactory, responseFactory, settingsService, deviceFingerPrintService, xpsApiService, xpsResponseErrorsMappingService, encryptCreditCardService, userBehaviourAnalyticsService, paymentSettingsService) {
3496
+ constructor(requestFactory, responseFactory, settingsService, deviceFingerPrintService, xpsApiService, xpsResponseErrorsMappingService, encryptCreditCardService, userBehaviourAnalyticsService, paymentSettingsService, nextActionService, serverErrorActionCreator) {
3429
3497
  this.requestFactory = requestFactory;
3430
3498
  this.responseFactory = responseFactory;
3431
3499
  this.settingsService = settingsService;
@@ -3435,6 +3503,8 @@ class SubmitService {
3435
3503
  this.encryptCreditCardService = encryptCreditCardService;
3436
3504
  this.userBehaviourAnalyticsService = userBehaviourAnalyticsService;
3437
3505
  this.paymentSettingsService = paymentSettingsService;
3506
+ this.nextActionService = nextActionService;
3507
+ this.serverErrorActionCreator = serverErrorActionCreator;
3438
3508
  }
3439
3509
  // NB: Never add 'async' statement for this method!
3440
3510
  // 'Async' statement wraps current promise into another.
@@ -3469,6 +3539,13 @@ class SubmitService {
3469
3539
  return this.responseFactory(response);
3470
3540
  })
3471
3541
  .catch((error) => {
3542
+ if (error instanceof HttpError) {
3543
+ const httpErrorData = error.getHttpErrorData();
3544
+ this.nextActionService.emitFlowUpdates(this.serverErrorActionCreator.getActionData({
3545
+ status: httpErrorData.response.status,
3546
+ message: error.message,
3547
+ }));
3548
+ }
3472
3549
  throw new ResponseError(error.message);
3473
3550
  });
3474
3551
  }));
@@ -3479,7 +3556,7 @@ class SubmitService {
3479
3556
  fields: Object.keys(xpsResponse.form).map((key) => xpsResponse.form[key]),
3480
3557
  });
3481
3558
  }
3482
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: SubmitService, deps: [{ token: submitRequestFactoryToken }, { token: submitResponseFactoryToken }, { token: SettingsService }, { token: DeviceFingerPrintService }, { token: XpsApiService }, { token: XpsResponseErrorsMappingService }, { token: EncryptCreditCardService }, { token: UserBehaviourAnalyticsService }, { token: PaymentSettingsService }], target: i0.ɵɵFactoryTarget.Injectable }); }
3559
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: SubmitService, deps: [{ token: submitRequestFactoryToken }, { token: submitResponseFactoryToken }, { token: SettingsService }, { token: DeviceFingerPrintService }, { token: XpsApiService }, { token: XpsResponseErrorsMappingService }, { token: EncryptCreditCardService }, { token: UserBehaviourAnalyticsService }, { token: PaymentSettingsService }, { token: NextActionService }, { token: ServerErrorActionCreator }], target: i0.ɵɵFactoryTarget.Injectable }); }
3483
3560
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: SubmitService, providedIn: 'root' }); }
3484
3561
  }
3485
3562
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: SubmitService, decorators: [{
@@ -3491,7 +3568,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
3491
3568
  }] }, { type: undefined, decorators: [{
3492
3569
  type: Inject,
3493
3570
  args: [submitResponseFactoryToken]
3494
- }] }, { type: SettingsService }, { type: DeviceFingerPrintService }, { type: XpsApiService }, { type: XpsResponseErrorsMappingService }, { type: EncryptCreditCardService }, { type: UserBehaviourAnalyticsService }, { type: PaymentSettingsService }] });
3571
+ }] }, { type: SettingsService }, { type: DeviceFingerPrintService }, { type: XpsApiService }, { type: XpsResponseErrorsMappingService }, { type: EncryptCreditCardService }, { type: UserBehaviourAnalyticsService }, { type: PaymentSettingsService }, { type: NextActionService }, { type: ServerErrorActionCreator }] });
3495
3572
 
3496
3573
  class EmitDataService {
3497
3574
  constructor() {
@@ -3566,7 +3643,7 @@ const syncResponseFactoryProvider = {
3566
3643
  };
3567
3644
 
3568
3645
  class SyncService extends EmitDataService {
3569
- constructor(requestFactory, responseFactory, xpsApiService, nextActionService, settingsService, xpsResponseErrorsMappingService, encryptCreditCardService, showErrorsActionCreator, userBehaviourAnalyticsService, paymentSettingsService, sessionService) {
3646
+ constructor(requestFactory, responseFactory, xpsApiService, nextActionService, settingsService, xpsResponseErrorsMappingService, encryptCreditCardService, showErrorsActionCreator, serverErrorActionCreator, userBehaviourAnalyticsService, paymentSettingsService, sessionService) {
3570
3647
  super();
3571
3648
  this.requestFactory = requestFactory;
3572
3649
  this.responseFactory = responseFactory;
@@ -3576,6 +3653,7 @@ class SyncService extends EmitDataService {
3576
3653
  this.xpsResponseErrorsMappingService = xpsResponseErrorsMappingService;
3577
3654
  this.encryptCreditCardService = encryptCreditCardService;
3578
3655
  this.showErrorsActionCreator = showErrorsActionCreator;
3656
+ this.serverErrorActionCreator = serverErrorActionCreator;
3579
3657
  this.userBehaviourAnalyticsService = userBehaviourAnalyticsService;
3580
3658
  this.paymentSettingsService = paymentSettingsService;
3581
3659
  this.sessionService = sessionService;
@@ -3687,6 +3765,16 @@ class SyncService extends EmitDataService {
3687
3765
  this.emitFormErrors(response);
3688
3766
  this.emit(response);
3689
3767
  return this.responseFactory(field, response);
3768
+ })
3769
+ .catch((error) => {
3770
+ if (error instanceof HttpError) {
3771
+ const httpErrorData = error.getHttpErrorData();
3772
+ this.nextActionService.emitFlowUpdates(this.serverErrorActionCreator.getActionData({
3773
+ status: httpErrorData.response.status,
3774
+ message: error.message,
3775
+ }));
3776
+ }
3777
+ throw error;
3690
3778
  });
3691
3779
  }
3692
3780
  isReadyField(field) {
@@ -3719,7 +3807,7 @@ class SyncService extends EmitDataService {
3719
3807
  }
3720
3808
  this.fieldSyncTimers[field.name] = timerId;
3721
3809
  }
3722
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: SyncService, deps: [{ token: syncRequestFactoryToken }, { token: syncResponseFactoryToken }, { token: XpsApiService }, { token: NextActionService }, { token: SettingsService }, { token: XpsResponseErrorsMappingService }, { token: EncryptCreditCardService }, { token: ShowErrorsActionCreator }, { token: UserBehaviourAnalyticsService }, { token: PaymentSettingsService }, { token: SessionService }], target: i0.ɵɵFactoryTarget.Injectable }); }
3810
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: SyncService, deps: [{ token: syncRequestFactoryToken }, { token: syncResponseFactoryToken }, { token: XpsApiService }, { token: NextActionService }, { token: SettingsService }, { token: XpsResponseErrorsMappingService }, { token: EncryptCreditCardService }, { token: ShowErrorsActionCreator }, { token: ServerErrorActionCreator }, { token: UserBehaviourAnalyticsService }, { token: PaymentSettingsService }, { token: SessionService }], target: i0.ɵɵFactoryTarget.Injectable }); }
3723
3811
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: SyncService, providedIn: 'root' }); }
3724
3812
  }
3725
3813
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: SyncService, decorators: [{
@@ -3733,7 +3821,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
3733
3821
  }] }, { type: undefined, decorators: [{
3734
3822
  type: Inject,
3735
3823
  args: [syncResponseFactoryToken]
3736
- }] }, { type: XpsApiService }, { type: NextActionService }, { type: SettingsService }, { type: XpsResponseErrorsMappingService }, { type: EncryptCreditCardService }, { type: ShowErrorsActionCreator }, { type: UserBehaviourAnalyticsService }, { type: PaymentSettingsService }, { type: SessionService }] });
3824
+ }] }, { type: XpsApiService }, { type: NextActionService }, { type: SettingsService }, { type: XpsResponseErrorsMappingService }, { type: EncryptCreditCardService }, { type: ShowErrorsActionCreator }, { type: ServerErrorActionCreator }, { type: UserBehaviourAnalyticsService }, { type: PaymentSettingsService }, { type: SessionService }] });
3737
3825
 
3738
3826
  function isObject(value) {
3739
3827
  return typeof value === 'object' && value !== null && !Array.isArray(value);
@@ -8872,45 +8960,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
8872
8960
  }]
8873
8961
  }], ctorParameters: () => [{ type: SettingsService }, { type: LoggerService }, { type: CountryService }, { type: PaymentMethodsService }, { type: SavedMethodsService }, { type: UserBalanceService }, { type: PaymentConfigService }, { type: PaymentService }, { type: DeviceFingerPrintService }, { type: FinanceDetailsService }, { type: LegalService }, { type: StatusService }, { type: NextActionService }, { type: CreditCardService }, { type: CreditCardStateService }, { type: FormMessagesService }, { type: EditSavedMethodsService }, { type: UserBehaviourAnalyticsService }, { type: PerformanceService }, { type: CombinedPaymentMethodsService }, { type: CountriesApiService }, { type: SendInstructionService }, { type: ScriptTrackerService }, { type: i19.TranslateService }, { type: CommonLogAttributesService }] });
8874
8962
 
8875
- class HttpError extends AppError {
8876
- constructor(error, req) {
8877
- super(error.message);
8878
- this.RESTRICTED_KEYS_REGEXP = new RegExp('.*(card_number|number|cvv|cvn|month|year|cardholdername|client_data|dfp|password).*', 'i');
8879
- this.httpErrorData = {
8880
- request: {
8881
- url: req.url,
8882
- method: req.method,
8883
- headers: req.headers,
8884
- },
8885
- response: {
8886
- status: error.status,
8887
- headers: error.headers,
8888
- },
8889
- };
8890
- if (req.body) {
8891
- this.httpErrorData.request.data = this.cleanPersonalData(req.body);
8892
- }
8893
- if (error.statusText) {
8894
- const errorData = error.error;
8895
- this.httpErrorData.response.data = {
8896
- statusText: error.statusText,
8897
- errors: errorData?.errors ?? [],
8898
- };
8899
- }
8900
- }
8901
- getHttpErrorData() {
8902
- return this.httpErrorData;
8903
- }
8904
- cleanPersonalData(data) {
8905
- return Object.entries(data).reduce((acc, [key, val]) => {
8906
- return {
8907
- ...acc,
8908
- [key]: this.RESTRICTED_KEYS_REGEXP.test(key) ? '***' : val,
8909
- };
8910
- }, {});
8911
- }
8912
- }
8913
-
8914
8963
  class HttpExceptionsInterceptor {
8915
8964
  constructor(router) {
8916
8965
  this.router = router;
@@ -10288,10 +10337,6 @@ class ApplePayExternalWindowCommunicationService {
10288
10337
  this.window.focus();
10289
10338
  }));
10290
10339
  }
10291
- getWindowOpen$() {
10292
- const isWindowOpenMessage = (message) => message.command === "apple-pay-window-open" /* CommandsForPages.APPLE_PAY_WINDOW_OPEN */;
10293
- return this.getEventSource(isWindowOpenMessage);
10294
- }
10295
10340
  getWindowReturnMessage$() {
10296
10341
  const isReturnMessage = (message) => message.command === "apple-pay-return" /* CommandsForPages.APPLE_PAY_RETURN */;
10297
10342
  const eventSource$ = this.getEventSource(isReturnMessage);
@@ -10375,11 +10420,6 @@ class ApplePayService {
10375
10420
  .getWindowClose$()
10376
10421
  .pipe(takeUntil(this.destroy$));
10377
10422
  }
10378
- get getWindowOpen$() {
10379
- return this.externalWindowCommunicationService
10380
- .getWindowOpen$()
10381
- .pipe(takeUntil(this.destroy$));
10382
- }
10383
10423
  get getWindowReturnMessage$() {
10384
10424
  return this.externalWindowCommunicationService
10385
10425
  .getWindowReturnMessage$()