@hmcts/ccpay-web-component 5.0.6 → 5.0.7-beta04

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 (46) hide show
  1. package/bundles/hmcts-ccpay-web-component.umd.js +268 -20
  2. package/bundles/hmcts-ccpay-web-component.umd.js.map +1 -1
  3. package/bundles/hmcts-ccpay-web-component.umd.min.js +1 -1
  4. package/bundles/hmcts-ccpay-web-component.umd.min.js.map +1 -1
  5. package/esm2015/lib/components/add-remission/add-remission.component.js +29 -7
  6. package/esm2015/lib/components/case-transactions/case-transactions.component.js +10 -2
  7. package/esm2015/lib/components/fee-summary/fee-summary.component.js +43 -5
  8. package/esm2015/lib/components/payment-view/payment-view.component.js +62 -3
  9. package/esm2015/lib/components/refund-status/refund-status.component.js +7 -1
  10. package/esm2015/lib/components/reports/reports.component.js +74 -7
  11. package/esm2015/lib/components/service-request/service-request.component.js +8 -2
  12. package/esm2015/lib/components/unprocessed-payments/unprocessed-payments.component.js +17 -1
  13. package/esm2015/lib/interfaces/IPaymentFailure.js +33 -0
  14. package/esm2015/lib/payment-lib.component.js +20 -3
  15. package/esm2015/lib/services/payment-view/payment-view.service.js +20 -1
  16. package/esm2015/lib/services/xl-file/xl-file.service.js +29 -1
  17. package/esm5/lib/components/add-remission/add-remission.component.js +29 -7
  18. package/esm5/lib/components/case-transactions/case-transactions.component.js +10 -2
  19. package/esm5/lib/components/fee-summary/fee-summary.component.js +43 -5
  20. package/esm5/lib/components/payment-view/payment-view.component.js +70 -3
  21. package/esm5/lib/components/refund-status/refund-status.component.js +7 -1
  22. package/esm5/lib/components/reports/reports.component.js +80 -7
  23. package/esm5/lib/components/service-request/service-request.component.js +8 -2
  24. package/esm5/lib/components/unprocessed-payments/unprocessed-payments.component.js +17 -1
  25. package/esm5/lib/interfaces/IPaymentFailure.js +33 -0
  26. package/esm5/lib/payment-lib.component.js +15 -2
  27. package/esm5/lib/services/payment-view/payment-view.service.js +29 -1
  28. package/esm5/lib/services/xl-file/xl-file.service.js +34 -1
  29. package/fesm2015/hmcts-ccpay-web-component.js +254 -22
  30. package/fesm2015/hmcts-ccpay-web-component.js.map +1 -1
  31. package/fesm5/hmcts-ccpay-web-component.js +277 -21
  32. package/fesm5/hmcts-ccpay-web-component.js.map +1 -1
  33. package/hmcts-ccpay-web-component.metadata.json +1 -1
  34. package/lib/components/add-remission/add-remission.component.d.ts +2 -0
  35. package/lib/components/case-transactions/case-transactions.component.d.ts +2 -0
  36. package/lib/components/fee-summary/fee-summary.component.d.ts +2 -0
  37. package/lib/components/payment-view/payment-view.component.d.ts +9 -0
  38. package/lib/components/refund-status/refund-status.component.d.ts +2 -0
  39. package/lib/components/reports/reports.component.d.ts +3 -0
  40. package/lib/components/service-request/service-request.component.d.ts +2 -0
  41. package/lib/components/unprocessed-payments/unprocessed-payments.component.d.ts +4 -0
  42. package/lib/interfaces/IPaymentFailure.d.ts +13 -0
  43. package/lib/payment-lib.component.d.ts +5 -0
  44. package/lib/services/payment-view/payment-view.service.d.ts +2 -0
  45. package/lib/services/xl-file/xl-file.service.d.ts +1 -0
  46. package/package.json +1 -1
@@ -48,6 +48,8 @@ export class UnprocessedPaymentsComponent {
48
48
  this.dcnNumber = this.paymentLibComponent.DCN_NUMBER;
49
49
  this.isBulkScanEnable = this.paymentLibComponent.ISBSENABLE;
50
50
  this.isTurnOff = this.paymentLibComponent.ISTURNOFF;
51
+ this.isNewpcipaloff = this.paymentLibComponent.ISNEWPCIPALOFF;
52
+ this.isOldpcipaloff = this.paymentLibComponent.ISOLDPCIPALOFF;
51
53
  this.isStFixEnable = this.paymentLibComponent.ISSFENABLE;
52
54
  this.OrderslistService.getFeeExists().subscribe((/**
53
55
  * @param {?} data
@@ -157,6 +159,8 @@ export class UnprocessedPaymentsComponent {
157
159
  url += this.ISTURNOFF ? '&isTurnOff=Enable' : '&isTurnOff=Disable';
158
160
  url += this.isStFixEnable ? '&isStFixEnable=Enable' : '&isStFixEnable=Disable';
159
161
  url += `&caseType=${this.paymentLibComponent.CASETYPE}`;
162
+ url += this.isOldpcipaloff ? '&isOldPcipalOff=Enable' : '&isOldPcipalOff=Disable';
163
+ url += this.isNewpcipaloff ? '&isNewPcipalOff=Enable' : '&isNewPcipalOff=Disable';
160
164
  this.router.navigateByUrl(`/fee-search?selectedOption=${this.selectedOption}&ccdCaseNumber=${this.ccdCaseNumber}&dcn=${this.recordId}${url}`);
161
165
  }
162
166
  /**
@@ -195,6 +199,8 @@ export class UnprocessedPaymentsComponent {
195
199
  this.paymentLibComponent.bspaymentdcn = dcn_reference;
196
200
  this.paymentLibComponent.unProcessedPaymentServiceId = this.serviceId;
197
201
  this.paymentLibComponent.isTurnOff = this.ISTURNOFF;
202
+ this.paymentLibComponent.isNewPcipalOff = this.ISNEWPCIPALOFF;
203
+ this.paymentLibComponent.isOldPcipalOff = this.ISOLDPCIPALOFF;
198
204
  this.paymentLibComponent.ISSFENABLE = this.isStFixEnable;
199
205
  if (this.ISTURNOFF) {
200
206
  this.paymentLibComponent.paymentGroupReference = this.PAYMENTREF;
@@ -273,6 +279,8 @@ UnprocessedPaymentsComponent.propDecorators = {
273
279
  ISTURNOFF: [{ type: Input, args: ['ISTURNOFF',] }],
274
280
  IS_BUTTON_ENABLE: [{ type: Input, args: ['IS_BUTTON_ENABLE',] }],
275
281
  IS_OS_AMT_AVAILABLE: [{ type: Input, args: ['IS_OS_AMT_AVAILABLE',] }],
282
+ ISNEWPCIPALOFF: [{ type: Input, args: ['ISNEWPCIPALOFF',] }],
283
+ ISOLDPCIPALOFF: [{ type: Input, args: ['ISOLDPCIPALOFF',] }],
276
284
  ISSFENABLE: [{ type: Input, args: ['ISSFENABLE',] }],
277
285
  PAYMENTSLENGTH: [{ type: Input, args: ['PAYMENTSLENGTH',] }],
278
286
  LEVEL: [{ type: Input, args: ['LEVEL',] }],
@@ -291,6 +299,10 @@ if (false) {
291
299
  /** @type {?} */
292
300
  UnprocessedPaymentsComponent.prototype.IS_OS_AMT_AVAILABLE;
293
301
  /** @type {?} */
302
+ UnprocessedPaymentsComponent.prototype.ISNEWPCIPALOFF;
303
+ /** @type {?} */
304
+ UnprocessedPaymentsComponent.prototype.ISOLDPCIPALOFF;
305
+ /** @type {?} */
294
306
  UnprocessedPaymentsComponent.prototype.ISSFENABLE;
295
307
  /** @type {?} */
296
308
  UnprocessedPaymentsComponent.prototype.PAYMENTSLENGTH;
@@ -331,6 +343,10 @@ if (false) {
331
343
  /** @type {?} */
332
344
  UnprocessedPaymentsComponent.prototype.isBulkScanEnable;
333
345
  /** @type {?} */
346
+ UnprocessedPaymentsComponent.prototype.isNewpcipaloff;
347
+ /** @type {?} */
348
+ UnprocessedPaymentsComponent.prototype.isOldpcipaloff;
349
+ /** @type {?} */
334
350
  UnprocessedPaymentsComponent.prototype.isTurnOff;
335
351
  /** @type {?} */
336
352
  UnprocessedPaymentsComponent.prototype.isStFixEnable;
@@ -366,4 +382,4 @@ if (false) {
366
382
  */
367
383
  UnprocessedPaymentsComponent.prototype.OrderslistService;
368
384
  }
369
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5wcm9jZXNzZWQtcGF5bWVudHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGhtY3RzL2NjcGF5LXdlYi1jb21wb25lbnQvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy91bnByb2Nlc3NlZC1wYXltZW50cy91bnByb2Nlc3NlZC1wYXltZW50cy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxFQUFDLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sa0VBQWtFLENBQUM7QUFDN0csT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFbEUsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBT3RFLE1BQU0sT0FBTyw0QkFBNEI7Ozs7Ozs7O0lBbUN2QyxZQUFvQixNQUFjLEVBQ3hCLHlCQUFvRCxFQUNwRCxtQkFBd0MsRUFDeEMsa0JBQXNDLEVBQ3RDLGlCQUFvQztRQUoxQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ3hCLDhCQUF5QixHQUF6Qix5QkFBeUIsQ0FBMkI7UUFDcEQsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4Qyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3RDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUE1QnBDLGdDQUEyQixHQUF5QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3ZFLDJCQUFzQixHQUF5QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRTVFLGVBQVUsR0FBRyxNQUFNLENBQUM7UUFFcEIsMEJBQXFCLEdBQVcsSUFBSSxDQUFDO1FBRXJD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dXRwdXQsSW5wdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQnVsa1NjYW5pbmdQYXltZW50U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2J1bGstc2NhbmluZy1wYXltZW50L2J1bGstc2NhbmluZy1wYXltZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgUGF5bWVudExpYkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3BheW1lbnQtbGliLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJQlNQYXltZW50cyB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvSUJTUGF5bWVudHMnO1xuaW1wb3J0IHtSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBQYXltZW50Vmlld1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9wYXltZW50LXZpZXcvcGF5bWVudC12aWV3LnNlcnZpY2UnO1xuaW1wb3J0IHsgT3JkZXJzbGlzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9vcmRlcnNsaXN0LnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjY3BheS1hcHAtdW5wcm9jZXNzZWQtcGF5bWVudHMnLFxuICB0ZW1wbGF0ZVVybDogJy4vdW5wcm9jZXNzZWQtcGF5bWVudHMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi91bnByb2Nlc3NlZC1wYXltZW50cy5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFVucHJvY2Vzc2VkUGF5bWVudHNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBJbnB1dCgnRkVFX1JFQ09SRFNfRVhJU1RTJykgRkVFX1JFQ09SRFNfRVhJU1RTOiBib29sZWFuO1xuICBASW5wdXQoJ1BBWU1FTlRSRUYnKSBQQVlNRU5UUkVGOiBzdHJpbmc7XG4gIEBJbnB1dCgnSVNUVVJOT0ZGJykgSVNUVVJOT0ZGOiBib29sZWFuO1xuICBASW5wdXQoJ0lTX0JVVFRPTl9FTkFCTEUnKSBJU19CVVRUT05fRU5BQkxFOiBib29sZWFuO1xuICBASW5wdXQoJ0lTX09TX0FNVF9BVkFJTEFCTEUnKSBJU19PU19BTVRfQVZBSUxBQkxFOiBib29sZWFuO1xuICBASW5wdXQoJ0lTU0ZFTkFCTEUnKSBJU1NGRU5BQkxFOiBib29sZWFuO1xuICBASW5wdXQoJ1BBWU1FTlRTTEVOR1RIJykgUEFZTUVOVFNMRU5HVEg6TnVtYmVyO1xuICBASW5wdXQoJ0xFVkVMJylMRVZFTDpOdW1iZXI7XG5cbiAgQE91dHB1dCgpIHNlbGVjdGVkVW5wcm9jZXNzZWRGZWVFdmVudDogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBnZXRVbnByb2Nlc3NlZEZlZUNvdW50OiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICB2aWV3U3RhdHVzID0gJ21haW4nO1xuICB1bmFzc2lnbmVkUmVjb3JkTGlzdDogSUJTUGF5bWVudHM7XG4gIHVwUGF5bWVudEVycm9yTWVzc2FnZTogc3RyaW5nID0gbnVsbDtcbiAgY2NkQ2FzZU51bWJlcjogc3RyaW5nO1xuICByZWNvcmRJZDogc3RyaW5nID0gbnVsbDtcbiAgaXNSZWNvcmRFeGlzdDogYm9vbGVhbiA9IGZhbHNlO1xuICBkY25OdW1iZXI6IHN0cmluZyA9IG51bGw7XG4gIHNlbGVjdGVkT3B0aW9uOiBzdHJpbmc7XG4gIGlzVW5wcm9jZXNzZWRSZWNvcmRTZWxlY3RlZDogYm9vbGVhbiA9IHRydWU7XG4gIGlzQWxsb2NhdGVUb0V4aXN0aW5nRmVlYnRuRW5hYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBpc01hcmtBc1VuaWRlbnRpZmllZGJ0bkVuYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXNBbGxvY2F0ZWRUb05ld0ZlZWJ0bkVuYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXNFeGNlcHRpb25DYXNlOiBib29sZWFuID0gZmFsc2U7XG4gIHNlcnZpY2VJZDogc3RyaW5nID0gbnVsbDtcbiAgaXNCdWxrU2NhbkVuYWJsZTtcbiAgaXNUdXJuT2ZmOiBib29sZWFuID0gdHJ1ZTtcbiAgaXNTdEZpeEVuYWJsZTtcbiAgdW5hc3NpZ25lZFJlY29yZFNlbGVjdGVkTGlzdDogSUJTUGF5bWVudHM7XG4gIHVuYXNzaWduZWRSZWNvcmRMaXN0TGVuZ3RoOiBudW1iZXIgPSAwO1xuICBzaG93Q29udGVudDogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgYnVsa1NjYW5pbmdQYXltZW50U2VydmljZTogQnVsa1NjYW5pbmdQYXltZW50U2VydmljZSxcbiAgICBwcml2YXRlIHBheW1lbnRMaWJDb21wb25lbnQ6IFBheW1lbnRMaWJDb21wb25lbnQsXG4gICAgcHJpdmF0ZSBwYXltZW50Vmlld1NlcnZpY2U6IFBheW1lbnRWaWV3U2VydmljZSxcbiAgICBwcml2YXRlIE9yZGVyc2xpc3RTZXJ2aWNlOiBPcmRlcnNsaXN0U2VydmljZVxuICAgICkgeyB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgLy8gVG9kbyAuLi5cbiAgICB0aGlzLmNjZENhc2VOdW1iZXIgPSB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuQ0NEX0NBU0VfTlVNQkVSO1xuICAgIHRoaXMuc2VsZWN0ZWRPcHRpb24gPSB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuU0VMRUNURURfT1BUSU9OLnRvTG9jYWxlTG93ZXJDYXNlKCk7XG4gICAgdGhpcy5kY25OdW1iZXIgPSB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuRENOX05VTUJFUjtcbiAgICB0aGlzLmlzQnVsa1NjYW5FbmFibGUgPSB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuSVNCU0VOQUJMRTtcbiAgICB0aGlzLmlzVHVybk9mZiA9IHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5JU1RVUk5PRkY7XG4gICAgdGhpcy5pc1N0Rml4RW5hYmxlID0gdGhpcy5wYXltZW50TGliQ29tcG9uZW50LklTU0ZFTkFCTEU7XG4gICAgdGhpcy5PcmRlcnNsaXN0U2VydmljZS5nZXRGZWVFeGlzdHMoKS5zdWJzY3JpYmUoIChkYXRhKSA9PiB0aGlzLkZFRV9SRUNPUkRTX0VYSVNUUyA9IGRhdGEpO1xuICAgIHRoaXMuZ2V0VW5hc3NpZ25lZFBheW1lbnRsaXN0KCk7XG5cbiAgfVxuXG4gIGdldFVuYXNzaWduZWRQYXltZW50bGlzdCgpIHtcbiAgICAgaWYgKHRoaXMuc2VsZWN0ZWRPcHRpb24gPT09ICdkY24nKSB7XG4gICAgICAgIHRoaXMuYnVsa1NjYW5pbmdQYXltZW50U2VydmljZS5nZXRCU1BheW1lbnRzQnlEQ04odGhpcy5kY25OdW1iZXIpLnN1YnNjcmliZShcbiAgICAgICAgdW5hc3NpZ25lZFBheW1lbnRzID0+IHtcbiAgICAgICAgIC8vICB1bmFzc2lnbmVkUGF5bWVudHNbJ2RhdGEnXS5tYXAoZGF0YSA9PiBkYXRhLmV4cGFuZGFibGU9ZmFsc2UpO1xuICAgICAgICBpZih1bmFzc2lnbmVkUGF5bWVudHNbJ2RhdGEnXSAmJiB1bmFzc2lnbmVkUGF5bWVudHNbJ2RhdGEnXS5wYXltZW50cykge1xuICAgICAgICAgICAgdGhpcy5zZXRWYWx1ZXNGb3JVbmFzc2lnbmVkUmVjb3JkKHVuYXNzaWduZWRQYXltZW50c1snZGF0YSddKTtcbiAgICAgICAgICB9IGVsc2UgaWYodW5hc3NpZ25lZFBheW1lbnRzWydwYXltZW50cyddKSB7XG4gICAgICAgICAgICB0aGlzLnNldFZhbHVlc0ZvclVuYXNzaWduZWRSZWNvcmQodW5hc3NpZ25lZFBheW1lbnRzKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy51cFBheW1lbnRFcnJvck1lc3NhZ2UgPSAnZXJyb3InO1xuICAgICAgICAgICAgdGhpcy5nZXRVbnByb2Nlc3NlZEZlZUNvdW50LmVtaXQoJzAnKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIChlcnJvcjogYW55KSA9PiB7XG4gICAgICAgICAgdGhpcy51cFBheW1lbnRFcnJvck1lc3NhZ2UgPSBlcnJvcjtcbiAgICAgICAgICB0aGlzLmdldFVucHJvY2Vzc2VkRmVlQ291bnQuZW1pdCgnMCcpO1xuICAgICAgICB9XG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuYnVsa1NjYW5pbmdQYXltZW50U2VydmljZS5nZXRCU1BheW1lbnRzQnlDQ0QodGhpcy5jY2RDYXNlTnVtYmVyKS5zdWJzY3JpYmUoXG4gICAgICAgIHVuYXNzaWduZWRQYXltZW50cyA9PiB7XG4gICAgICAgICAvLyAgdW5hc3NpZ25lZFBheW1lbnRzWydkYXRhJ10ubWFwKGRhdGEgPT4gZGF0YS5leHBhbmRhYmxlPWZhbHNlKTtcbiAgICAgICAgICBpZih1bmFzc2lnbmVkUGF5bWVudHNbJ2RhdGEnXSAmJiB1bmFzc2lnbmVkUGF5bWVudHNbJ2RhdGEnXS5wYXltZW50cykge1xuICAgICAgICAgICAgdGhpcy5zZXRWYWx1ZXNGb3JVbmFzc2lnbmVkUmVjb3JkKHVuYXNzaWduZWRQYXltZW50c1snZGF0YSddKTtcbiAgICAgICAgICB9IGVsc2UgaWYodW5hc3NpZ25lZFBheW1lbnRzWydwYXltZW50cyddKSB7XG4gICAgICAgICAgICB0aGlzLnNldFZhbHVlc0ZvclVuYXNzaWduZWRSZWNvcmQodW5hc3NpZ25lZFBheW1lbnRzKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy51cFBheW1lbnRFcnJvck1lc3NhZ2UgPSAnZXJyb3InO1xuICAgICAgICAgICAgdGhpcy5nZXRVbnByb2Nlc3NlZEZlZUNvdW50LmVtaXQoJzAnKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIChlcnJvcjogYW55KSA9PiB7XG4gICAgICAgICAgdGhpcy51cFBheW1lbnRFcnJvck1lc3NhZ2UgPSBlcnJvcjtcbiAgICAgICAgICB0aGlzLmdldFVucHJvY2Vzc2VkRmVlQ291bnQuZW1pdCgnMCcpO1xuICAgICAgICB9XG4gICAgICApO1xuICAgIH1cblxuICB9XG5cbiAgc2V0VmFsdWVzRm9yVW5hc3NpZ25lZFJlY29yZCh1bmFzc2lnbmVkUGF5bWVudHMpIHtcblxuICAgIHRoaXMudW5hc3NpZ25lZFJlY29yZExpc3QgPSB1bmFzc2lnbmVkUGF5bWVudHMucGF5bWVudHM7XG4gICAgaWYodGhpcy51bmFzc2lnbmVkUmVjb3JkTGlzdCl7XG4gICAgICAgICAgdGhpcy51bmFzc2lnbmVkUmVjb3JkTGlzdExlbmd0aCA9IHVuYXNzaWduZWRQYXltZW50cy5wYXltZW50cy5sZW5ndGhcbiAgICB9XG4gICAgdGhpcy5zZXJ2aWNlSWQgPSB1bmFzc2lnbmVkUGF5bWVudHMucmVzcG9uc2libGVfc2VydmljZV9pZDtcbiAgICBpZiAodW5hc3NpZ25lZFBheW1lbnRzWydjY2RfcmVmZXJlbmNlJ10gPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5pc0V4Y2VwdGlvbkNhc2UgPSB0cnVlO1xuICAgIH1cbiAgICAvLyB0aGlzLmlzUmVjb3JkRXhpc3QgPSAgdGhpcy51bmFzc2lnbmVkUmVjb3JkTGlzdC5sZW5ndGggPT09IDA7XG4gICAgdGhpcy5nZXRVbnByb2Nlc3NlZEZlZUNvdW50LmVtaXQoPGFueT50aGlzLnVuYXNzaWduZWRSZWNvcmRMaXN0Lmxlbmd0aCk7XG4gICAgdGhpcy51bnByb2Nlc3NlZFBheW1lbnRTZWxlY3RFdmVudCh0aGlzLnVuYXNzaWduZWRSZWNvcmRMaXN0KTtcbiAgfVxuXG4gIGZvcm1hdFVuYXNzaWduZWRSZWNvcmRJZChJRDogTnVtYmVyKSB7XG4gICAgcmV0dXJuIGB1bmFzc2lnbnJlY29yZC0ke0lEfWA7XG4gIH1cblxuICB0cmltVW5kZXJzY29yZShtZXRob2Q6IHN0cmluZyl7XG4gICAgcmV0dXJuIHRoaXMuYnVsa1NjYW5pbmdQYXltZW50U2VydmljZS5yZW1vdmVVbndhbnRlZFN0cmluZyhtZXRob2QsJyAnKTtcbiAgfVxuXG4gIHJlZGlyZWN0VG9GZWVTZWFyY2hQYWdlKGV2ZW50OiBhbnksIGRjbl9yZWZlcmVuY2U6YW55KSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLnJlY29yZElkID0gZGNuX3JlZmVyZW5jZTtcbiAgICBsZXQgdXJsID0gdGhpcy5pc0J1bGtTY2FuRW5hYmxlID8gJyZpc0J1bGtTY2FubmluZz1FbmFibGUnIDogJyZpc0J1bGtTY2FubmluZz1EaXNhYmxlJztcbiAgICB1cmwgKz0gdGhpcy5JU1RVUk5PRkYgPyAnJmlzVHVybk9mZj1FbmFibGUnIDogJyZpc1R1cm5PZmY9RGlzYWJsZSc7XG4gICAgdXJsICs9IHRoaXMuaXNTdEZpeEVuYWJsZSA/ICcmaXNTdEZpeEVuYWJsZT1FbmFibGUnIDogJyZpc1N0Rml4RW5hYmxlPURpc2FibGUnO1xuICAgIHVybCArPWAmY2FzZVR5cGU9JHt0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuQ0FTRVRZUEV9YDtcblxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoYC9mZWUtc2VhcmNoP3NlbGVjdGVkT3B0aW9uPSR7dGhpcy5zZWxlY3RlZE9wdGlvbn0mY2NkQ2FzZU51bWJlcj0ke3RoaXMuY2NkQ2FzZU51bWJlcn0mZGNuPSR7dGhpcy5yZWNvcmRJZH0ke3VybH1gKTtcbiAgfVxuXG4gIGxvYWRVbnNvbGljaXRlZFBhZ2Uodmlld05hbWU6IHN0cmluZywgZGNuX3JlZmVyZW5jZTphbnkpIHtcbiAgICB0aGlzLnJlY29yZElkID0gZGNuX3JlZmVyZW5jZTtcbiAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuYnNwYXltZW50ZGNuID0gdGhpcy5yZWNvcmRJZDtcbiAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQudmlld05hbWUgPSB2aWV3TmFtZTtcbiAgfVxuXG4gIHVucHJvY2Vzc2VkUGF5bWVudFNlbGVjdEV2ZW50KHNlbGVjdGVkUmVjb3JkUmVmZXJlbmNlOiBhbnkpIHtcbiAgIHRoaXMuaXNVbnByb2Nlc3NlZFJlY29yZFNlbGVjdGVkID0gdHJ1ZTtcbiAgIHRoaXMudmFsaWRhdGVCdXR0b25zKCk7XG4gICB0aGlzLnNlbGVjdGVkVW5wcm9jZXNzZWRGZWVFdmVudC5lbWl0KHNlbGVjdGVkUmVjb3JkUmVmZXJlbmNlKTtcbiAgfVxuXG4gIHJlc2V0QnV0dG9ucygpIHtcbiAgICB0aGlzLmlzVW5wcm9jZXNzZWRSZWNvcmRTZWxlY3RlZCA9IGZhbHNlO1xuICAgIHRoaXMuaXNBbGxvY2F0ZVRvRXhpc3RpbmdGZWVidG5FbmFibGVkICA9IGZhbHNlO1xuICAgIHRoaXMuaXNNYXJrQXNVbmlkZW50aWZpZWRidG5FbmFibGVkICA9IGZhbHNlO1xuICAgIHRoaXMuaXNBbGxvY2F0ZWRUb05ld0ZlZWJ0bkVuYWJsZWQgPSBmYWxzZTtcbiAgfVxuXG4gIGdvVG9BbGxvY2F0ZVBhZ2UoZGNuX3JlZmVyZW5jZTphbnkpIHtcbiAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuYnNwYXltZW50ZGNuID0gZGNuX3JlZmVyZW5jZTtcbiAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQudW5Qcm9jZXNzZWRQYXltZW50U2VydmljZUlkID0gdGhpcy5zZXJ2aWNlSWRcbiAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuaXNUdXJuT2ZmID0gdGhpcy5JU1RVUk5PRkY7XG4gICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LklTU0ZFTkFCTEUgPSB0aGlzLmlzU3RGaXhFbmFibGU7XG5cbiAgICBpZih0aGlzLklTVFVSTk9GRikge1xuICAgICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LnBheW1lbnRHcm91cFJlZmVyZW5jZSA9IHRoaXMuUEFZTUVOVFJFRjtcbiAgICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC52aWV3TmFtZSA9ICdmZWUtc3VtbWFyeSc7XG4gICAgfWVsc2Uge1xuICAgICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LnBheW1lbnRHcm91cFJlZmVyZW5jZSA9IG51bGw7XG4gICAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQudmlld05hbWUgPSAnYWxsb2NhdGUtcGF5bWVudHMnO1xuICAgIH1cblxuICB9XG5cbiAgdmFsaWRhdGVCdXR0b25zKCkge1xuICBpZiAoIHRoaXMuaXNVbnByb2Nlc3NlZFJlY29yZFNlbGVjdGVkICAmJiB0aGlzLmlzRXhjZXB0aW9uQ2FzZSkge1xuICAgICAgICB0aGlzLmlzTWFya0FzVW5pZGVudGlmaWVkYnRuRW5hYmxlZCA9IHRydWU7XG4gICAgfSBlbHNlIGlmICggdGhpcy5pc1VucHJvY2Vzc2VkUmVjb3JkU2VsZWN0ZWQgICYmICF0aGlzLmlzRXhjZXB0aW9uQ2FzZSAmJiAhdGhpcy5GRUVfUkVDT1JEU19FWElTVFMpIHtcbiAgICAgIHRoaXMuaXNBbGxvY2F0ZVRvRXhpc3RpbmdGZWVidG5FbmFibGVkID0gZmFsc2U7XG4gICAgICB0aGlzLmlzQWxsb2NhdGVkVG9OZXdGZWVidG5FbmFibGVkID0gdHJ1ZTtcbiAgICB9IGVsc2UgaWYoIHRoaXMuaXNVbnByb2Nlc3NlZFJlY29yZFNlbGVjdGVkICYmICF0aGlzLmlzRXhjZXB0aW9uQ2FzZSAmJiB0aGlzLkZFRV9SRUNPUkRTX0VYSVNUUyApIHtcbiAgICAgIGlmKCF0aGlzLklTVFVSTk9GRikge1xuICAgICAgICB0aGlzLmlzQWxsb2NhdGVUb0V4aXN0aW5nRmVlYnRuRW5hYmxlZCA9IHRydWU7XG4gICAgICAgIHRoaXMuaXNBbGxvY2F0ZWRUb05ld0ZlZWJ0bkVuYWJsZWQgPSBmYWxzZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuaXNBbGxvY2F0ZVRvRXhpc3RpbmdGZWVidG5FbmFibGVkID0gdGhpcy5JU19PU19BTVRfQVZBSUxBQkxFO1xuICAgICAgICB0aGlzLmlzQWxsb2NhdGVkVG9OZXdGZWVidG5FbmFibGVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB1bnByb2Nlc3NlZFBheW1lbnRVblNlbGVjdEV2ZW50KGV2ZW50OiBhbnkpIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMucmVjb3JkSWQgPSBudWxsO1xuICAgIHRoaXMuaXNVbnByb2Nlc3NlZFJlY29yZFNlbGVjdGVkID0gZmFsc2U7XG4gICAgdGhpcy5pc0FsbG9jYXRlVG9FeGlzdGluZ0ZlZWJ0bkVuYWJsZWQgPSBmYWxzZTtcbiAgICB0aGlzLmlzQWxsb2NhdGVkVG9OZXdGZWVidG5FbmFibGVkID0gZmFsc2U7XG4gICAgdGhpcy5pc01hcmtBc1VuaWRlbnRpZmllZGJ0bkVuYWJsZWQgPSBmYWxzZTtcbiAgICAvL3RoaXMudmFsaWRhdGVCdXR0b25zKCk7XG4gICAgdGhpcy5zZWxlY3RlZFVucHJvY2Vzc2VkRmVlRXZlbnQuZW1pdCgnJyk7XG4gIH1cblxuICBzaG93RGV0YWlsUm93KGV2ZW50OiBhbnksb2JqOiBhbnksIGk6IGFueSkge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICB0aGlzLnVuYXNzaWduZWRSZWNvcmRTZWxlY3RlZExpc3QgPSBvYmo7XG5cbiAgfVxufVxuIl19
385
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5wcm9jZXNzZWQtcGF5bWVudHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGhtY3RzL2NjcGF5LXdlYi1jb21wb25lbnQvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy91bnByb2Nlc3NlZC1wYXltZW50cy91bnByb2Nlc3NlZC1wYXltZW50cy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxFQUFDLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sa0VBQWtFLENBQUM7QUFDN0csT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFbEUsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBT3RFLE1BQU0sT0FBTyw0QkFBNEI7Ozs7Ozs7O0lBdUN2QyxZQUFvQixNQUFjLEVBQ3hCLHlCQUFvRCxFQUNwRCxtQkFBd0MsRUFDeEMsa0JBQXNDLEVBQ3RDLGlCQUFvQztRQUoxQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ3hCLDhCQUF5QixHQUF6Qix5QkFBeUIsQ0FBMkI7UUFDcEQsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4Qyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3RDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUE5QnBDLGdDQUEyQixHQUF5QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3ZFLDJCQUFzQixHQUF5QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRTVFLGVBQVUsR0FBRyxNQUFNLENBQUM7UUFFcEIsMEJBQXFCLEdBQVcsSUFBSSxDQUFDO1FBRXJD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OztJQUN6QyxzREFBK0M7O0lBQy9DLDZDQUE0Qjs7SUFFNUIsbUVBQWlGOztJQUNqRiw4REFBNEU7O0lBRTVFLGtEQUFvQjs7SUFDcEIsNERBQWtDOztJQUNsQyw2REFBcUM7O0lBQ3JDLHFEQUFzQjs7SUFDdEIsZ0RBQXdCOztJQUN4QixxREFBK0I7O0lBQy9CLGlEQUF5Qjs7SUFDekIsc0RBQXVCOztJQUN2QixtRUFBNEM7O0lBQzVDLHlFQUFtRDs7SUFDbkQsc0VBQWdEOztJQUNoRCxxRUFBK0M7O0lBQy9DLHVEQUFpQzs7SUFDakMsaURBQXlCOztJQUN6Qix3REFBaUI7O0lBQ2pCLHNEQUFlOztJQUNmLHNEQUFlOztJQUNmLGlEQUEwQjs7SUFDMUIscURBQWM7O0lBQ2Qsb0VBQTBDOztJQUMxQyxrRUFBdUM7O0lBQ3ZDLG1EQUFxQjs7Ozs7SUFFVCw4Q0FBc0I7Ozs7O0lBQ2hDLGlFQUE0RDs7Ozs7SUFDNUQsMkRBQWdEOzs7OztJQUNoRCwwREFBOEM7Ozs7O0lBQzlDLHlEQUE0QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBPdXRwdXQsSW5wdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQnVsa1NjYW5pbmdQYXltZW50U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2J1bGstc2NhbmluZy1wYXltZW50L2J1bGstc2NhbmluZy1wYXltZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgUGF5bWVudExpYkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3BheW1lbnQtbGliLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJQlNQYXltZW50cyB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvSUJTUGF5bWVudHMnO1xuaW1wb3J0IHtSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBQYXltZW50Vmlld1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9wYXltZW50LXZpZXcvcGF5bWVudC12aWV3LnNlcnZpY2UnO1xuaW1wb3J0IHsgT3JkZXJzbGlzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9vcmRlcnNsaXN0LnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjY3BheS1hcHAtdW5wcm9jZXNzZWQtcGF5bWVudHMnLFxuICB0ZW1wbGF0ZVVybDogJy4vdW5wcm9jZXNzZWQtcGF5bWVudHMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi91bnByb2Nlc3NlZC1wYXltZW50cy5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFVucHJvY2Vzc2VkUGF5bWVudHNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBJbnB1dCgnRkVFX1JFQ09SRFNfRVhJU1RTJykgRkVFX1JFQ09SRFNfRVhJU1RTOiBib29sZWFuO1xuICBASW5wdXQoJ1BBWU1FTlRSRUYnKSBQQVlNRU5UUkVGOiBzdHJpbmc7XG4gIEBJbnB1dCgnSVNUVVJOT0ZGJykgSVNUVVJOT0ZGOiBib29sZWFuO1xuICBASW5wdXQoJ0lTX0JVVFRPTl9FTkFCTEUnKSBJU19CVVRUT05fRU5BQkxFOiBib29sZWFuO1xuICBASW5wdXQoJ0lTX09TX0FNVF9BVkFJTEFCTEUnKSBJU19PU19BTVRfQVZBSUxBQkxFOiBib29sZWFuO1xuICBASW5wdXQoJ0lTTkVXUENJUEFMT0ZGJykgSVNORVdQQ0lQQUxPRkY6IGJvb2xlYW47XG4gIEBJbnB1dCgnSVNPTERQQ0lQQUxPRkYnKSBJU09MRFBDSVBBTE9GRjogYm9vbGVhbjtcbiAgQElucHV0KCdJU1NGRU5BQkxFJykgSVNTRkVOQUJMRTogYm9vbGVhbjtcbiAgQElucHV0KCdQQVlNRU5UU0xFTkdUSCcpIFBBWU1FTlRTTEVOR1RIOk51bWJlcjtcbiAgQElucHV0KCdMRVZFTCcpTEVWRUw6TnVtYmVyO1xuXG4gIEBPdXRwdXQoKSBzZWxlY3RlZFVucHJvY2Vzc2VkRmVlRXZlbnQ6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgZ2V0VW5wcm9jZXNzZWRGZWVDb3VudDogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgdmlld1N0YXR1cyA9ICdtYWluJztcbiAgdW5hc3NpZ25lZFJlY29yZExpc3Q6IElCU1BheW1lbnRzO1xuICB1cFBheW1lbnRFcnJvck1lc3NhZ2U6IHN0cmluZyA9IG51bGw7XG4gIGNjZENhc2VOdW1iZXI6IHN0cmluZztcbiAgcmVjb3JkSWQ6IHN0cmluZyA9IG51bGw7XG4gIGlzUmVjb3JkRXhpc3Q6IGJvb2xlYW4gPSBmYWxzZTtcbiAgZGNuTnVtYmVyOiBzdHJpbmcgPSBudWxsO1xuICBzZWxlY3RlZE9wdGlvbjogc3RyaW5nO1xuICBpc1VucHJvY2Vzc2VkUmVjb3JkU2VsZWN0ZWQ6IGJvb2xlYW4gPSB0cnVlO1xuICBpc0FsbG9jYXRlVG9FeGlzdGluZ0ZlZWJ0bkVuYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXNNYXJrQXNVbmlkZW50aWZpZWRidG5FbmFibGVkOiBib29sZWFuID0gZmFsc2U7XG4gIGlzQWxsb2NhdGVkVG9OZXdGZWVidG5FbmFibGVkOiBib29sZWFuID0gZmFsc2U7XG4gIGlzRXhjZXB0aW9uQ2FzZTogYm9vbGVhbiA9IGZhbHNlO1xuICBzZXJ2aWNlSWQ6IHN0cmluZyA9IG51bGw7XG4gIGlzQnVsa1NjYW5FbmFibGU7XG4gIGlzTmV3cGNpcGFsb2ZmO1xuICBpc09sZHBjaXBhbG9mZjtcbiAgaXNUdXJuT2ZmOiBib29sZWFuID0gdHJ1ZTtcbiAgaXNTdEZpeEVuYWJsZTtcbiAgdW5hc3NpZ25lZFJlY29yZFNlbGVjdGVkTGlzdDogSUJTUGF5bWVudHM7XG4gIHVuYXNzaWduZWRSZWNvcmRMaXN0TGVuZ3RoOiBudW1iZXIgPSAwO1xuICBzaG93Q29udGVudDogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgYnVsa1NjYW5pbmdQYXltZW50U2VydmljZTogQnVsa1NjYW5pbmdQYXltZW50U2VydmljZSxcbiAgICBwcml2YXRlIHBheW1lbnRMaWJDb21wb25lbnQ6IFBheW1lbnRMaWJDb21wb25lbnQsXG4gICAgcHJpdmF0ZSBwYXltZW50Vmlld1NlcnZpY2U6IFBheW1lbnRWaWV3U2VydmljZSxcbiAgICBwcml2YXRlIE9yZGVyc2xpc3RTZXJ2aWNlOiBPcmRlcnNsaXN0U2VydmljZVxuICAgICkgeyB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgLy8gVG9kbyAuLi5cbiAgICB0aGlzLmNjZENhc2VOdW1iZXIgPSB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuQ0NEX0NBU0VfTlVNQkVSO1xuICAgIHRoaXMuc2VsZWN0ZWRPcHRpb24gPSB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuU0VMRUNURURfT1BUSU9OLnRvTG9jYWxlTG93ZXJDYXNlKCk7XG4gICAgdGhpcy5kY25OdW1iZXIgPSB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuRENOX05VTUJFUjtcbiAgICB0aGlzLmlzQnVsa1NjYW5FbmFibGUgPSB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuSVNCU0VOQUJMRTtcbiAgICB0aGlzLmlzVHVybk9mZiA9IHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5JU1RVUk5PRkY7XG4gICAgdGhpcy5pc05ld3BjaXBhbG9mZiA9IHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5JU05FV1BDSVBBTE9GRjtcbiAgICB0aGlzLmlzT2xkcGNpcGFsb2ZmID0gdGhpcy5wYXltZW50TGliQ29tcG9uZW50LklTT0xEUENJUEFMT0ZGO1xuICAgIHRoaXMuaXNTdEZpeEVuYWJsZSA9IHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5JU1NGRU5BQkxFO1xuICAgIHRoaXMuT3JkZXJzbGlzdFNlcnZpY2UuZ2V0RmVlRXhpc3RzKCkuc3Vic2NyaWJlKCAoZGF0YSkgPT4gdGhpcy5GRUVfUkVDT1JEU19FWElTVFMgPSBkYXRhKTtcbiAgICB0aGlzLmdldFVuYXNzaWduZWRQYXltZW50bGlzdCgpO1xuXG4gIH1cblxuICBnZXRVbmFzc2lnbmVkUGF5bWVudGxpc3QoKSB7XG4gICAgIGlmICh0aGlzLnNlbGVjdGVkT3B0aW9uID09PSAnZGNuJykge1xuICAgICAgICB0aGlzLmJ1bGtTY2FuaW5nUGF5bWVudFNlcnZpY2UuZ2V0QlNQYXltZW50c0J5RENOKHRoaXMuZGNuTnVtYmVyKS5zdWJzY3JpYmUoXG4gICAgICAgIHVuYXNzaWduZWRQYXltZW50cyA9PiB7XG4gICAgICAgICAvLyAgdW5hc3NpZ25lZFBheW1lbnRzWydkYXRhJ10ubWFwKGRhdGEgPT4gZGF0YS5leHBhbmRhYmxlPWZhbHNlKTtcbiAgICAgICAgaWYodW5hc3NpZ25lZFBheW1lbnRzWydkYXRhJ10gJiYgdW5hc3NpZ25lZFBheW1lbnRzWydkYXRhJ10ucGF5bWVudHMpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0VmFsdWVzRm9yVW5hc3NpZ25lZFJlY29yZCh1bmFzc2lnbmVkUGF5bWVudHNbJ2RhdGEnXSk7XG4gICAgICAgICAgfSBlbHNlIGlmKHVuYXNzaWduZWRQYXltZW50c1sncGF5bWVudHMnXSkge1xuICAgICAgICAgICAgdGhpcy5zZXRWYWx1ZXNGb3JVbmFzc2lnbmVkUmVjb3JkKHVuYXNzaWduZWRQYXltZW50cyk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudXBQYXltZW50RXJyb3JNZXNzYWdlID0gJ2Vycm9yJztcbiAgICAgICAgICAgIHRoaXMuZ2V0VW5wcm9jZXNzZWRGZWVDb3VudC5lbWl0KCcwJyk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICAoZXJyb3I6IGFueSkgPT4ge1xuICAgICAgICAgIHRoaXMudXBQYXltZW50RXJyb3JNZXNzYWdlID0gZXJyb3I7XG4gICAgICAgICAgdGhpcy5nZXRVbnByb2Nlc3NlZEZlZUNvdW50LmVtaXQoJzAnKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmJ1bGtTY2FuaW5nUGF5bWVudFNlcnZpY2UuZ2V0QlNQYXltZW50c0J5Q0NEKHRoaXMuY2NkQ2FzZU51bWJlcikuc3Vic2NyaWJlKFxuICAgICAgICB1bmFzc2lnbmVkUGF5bWVudHMgPT4ge1xuICAgICAgICAgLy8gIHVuYXNzaWduZWRQYXltZW50c1snZGF0YSddLm1hcChkYXRhID0+IGRhdGEuZXhwYW5kYWJsZT1mYWxzZSk7XG4gICAgICAgICAgaWYodW5hc3NpZ25lZFBheW1lbnRzWydkYXRhJ10gJiYgdW5hc3NpZ25lZFBheW1lbnRzWydkYXRhJ10ucGF5bWVudHMpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0VmFsdWVzRm9yVW5hc3NpZ25lZFJlY29yZCh1bmFzc2lnbmVkUGF5bWVudHNbJ2RhdGEnXSk7XG4gICAgICAgICAgfSBlbHNlIGlmKHVuYXNzaWduZWRQYXltZW50c1sncGF5bWVudHMnXSkge1xuICAgICAgICAgICAgdGhpcy5zZXRWYWx1ZXNGb3JVbmFzc2lnbmVkUmVjb3JkKHVuYXNzaWduZWRQYXltZW50cyk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudXBQYXltZW50RXJyb3JNZXNzYWdlID0gJ2Vycm9yJztcbiAgICAgICAgICAgIHRoaXMuZ2V0VW5wcm9jZXNzZWRGZWVDb3VudC5lbWl0KCcwJyk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICAoZXJyb3I6IGFueSkgPT4ge1xuICAgICAgICAgIHRoaXMudXBQYXltZW50RXJyb3JNZXNzYWdlID0gZXJyb3I7XG4gICAgICAgICAgdGhpcy5nZXRVbnByb2Nlc3NlZEZlZUNvdW50LmVtaXQoJzAnKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9XG5cbiAgfVxuXG4gIHNldFZhbHVlc0ZvclVuYXNzaWduZWRSZWNvcmQodW5hc3NpZ25lZFBheW1lbnRzKSB7XG4gICBcbiAgICB0aGlzLnVuYXNzaWduZWRSZWNvcmRMaXN0ID0gdW5hc3NpZ25lZFBheW1lbnRzLnBheW1lbnRzO1xuICAgIGlmKHRoaXMudW5hc3NpZ25lZFJlY29yZExpc3Qpe1xuICAgICAgICAgIHRoaXMudW5hc3NpZ25lZFJlY29yZExpc3RMZW5ndGggPSB1bmFzc2lnbmVkUGF5bWVudHMucGF5bWVudHMubGVuZ3RoXG4gICAgfVxuICAgIHRoaXMuc2VydmljZUlkID0gdW5hc3NpZ25lZFBheW1lbnRzLnJlc3BvbnNpYmxlX3NlcnZpY2VfaWQ7XG4gICAgaWYgKHVuYXNzaWduZWRQYXltZW50c1snY2NkX3JlZmVyZW5jZSddID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuaXNFeGNlcHRpb25DYXNlID0gdHJ1ZTtcbiAgICB9XG4gICAgLy8gdGhpcy5pc1JlY29yZEV4aXN0ID0gIHRoaXMudW5hc3NpZ25lZFJlY29yZExpc3QubGVuZ3RoID09PSAwO1xuICAgIHRoaXMuZ2V0VW5wcm9jZXNzZWRGZWVDb3VudC5lbWl0KDxhbnk+dGhpcy51bmFzc2lnbmVkUmVjb3JkTGlzdC5sZW5ndGgpO1xuICAgIHRoaXMudW5wcm9jZXNzZWRQYXltZW50U2VsZWN0RXZlbnQodGhpcy51bmFzc2lnbmVkUmVjb3JkTGlzdCk7XG4gIH1cblxuICBmb3JtYXRVbmFzc2lnbmVkUmVjb3JkSWQoSUQ6IE51bWJlcikge1xuICAgIHJldHVybiBgdW5hc3NpZ25yZWNvcmQtJHtJRH1gO1xuICB9XG5cbiAgdHJpbVVuZGVyc2NvcmUobWV0aG9kOiBzdHJpbmcpe1xuICAgIHJldHVybiB0aGlzLmJ1bGtTY2FuaW5nUGF5bWVudFNlcnZpY2UucmVtb3ZlVW53YW50ZWRTdHJpbmcobWV0aG9kLCcgJyk7XG4gIH1cblxuICByZWRpcmVjdFRvRmVlU2VhcmNoUGFnZShldmVudDogYW55LCBkY25fcmVmZXJlbmNlOmFueSkge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgdGhpcy5yZWNvcmRJZCA9IGRjbl9yZWZlcmVuY2U7XG4gICAgbGV0IHVybCA9IHRoaXMuaXNCdWxrU2NhbkVuYWJsZSA/ICcmaXNCdWxrU2Nhbm5pbmc9RW5hYmxlJyA6ICcmaXNCdWxrU2Nhbm5pbmc9RGlzYWJsZSc7XG4gICAgdXJsICs9IHRoaXMuSVNUVVJOT0ZGID8gJyZpc1R1cm5PZmY9RW5hYmxlJyA6ICcmaXNUdXJuT2ZmPURpc2FibGUnO1xuICAgIHVybCArPSB0aGlzLmlzU3RGaXhFbmFibGUgPyAnJmlzU3RGaXhFbmFibGU9RW5hYmxlJyA6ICcmaXNTdEZpeEVuYWJsZT1EaXNhYmxlJztcbiAgICB1cmwgKz1gJmNhc2VUeXBlPSR7dGhpcy5wYXltZW50TGliQ29tcG9uZW50LkNBU0VUWVBFfWA7XG4gICAgdXJsICs9IHRoaXMuaXNPbGRwY2lwYWxvZmYgPyAnJmlzT2xkUGNpcGFsT2ZmPUVuYWJsZScgOiAnJmlzT2xkUGNpcGFsT2ZmPURpc2FibGUnO1xuICAgIHVybCArPSB0aGlzLmlzTmV3cGNpcGFsb2ZmID8gJyZpc05ld1BjaXBhbE9mZj1FbmFibGUnIDogJyZpc05ld1BjaXBhbE9mZj1EaXNhYmxlJztcblxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoYC9mZWUtc2VhcmNoP3NlbGVjdGVkT3B0aW9uPSR7dGhpcy5zZWxlY3RlZE9wdGlvbn0mY2NkQ2FzZU51bWJlcj0ke3RoaXMuY2NkQ2FzZU51bWJlcn0mZGNuPSR7dGhpcy5yZWNvcmRJZH0ke3VybH1gKTtcbiAgfVxuXG4gIGxvYWRVbnNvbGljaXRlZFBhZ2Uodmlld05hbWU6IHN0cmluZywgZGNuX3JlZmVyZW5jZTphbnkpIHtcbiAgICB0aGlzLnJlY29yZElkID0gZGNuX3JlZmVyZW5jZTtcbiAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuYnNwYXltZW50ZGNuID0gdGhpcy5yZWNvcmRJZDtcbiAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQudmlld05hbWUgPSB2aWV3TmFtZTtcbiAgfVxuXG4gIHVucHJvY2Vzc2VkUGF5bWVudFNlbGVjdEV2ZW50KHNlbGVjdGVkUmVjb3JkUmVmZXJlbmNlOiBhbnkpIHtcbiAgIHRoaXMuaXNVbnByb2Nlc3NlZFJlY29yZFNlbGVjdGVkID0gdHJ1ZTtcbiAgIHRoaXMudmFsaWRhdGVCdXR0b25zKCk7XG4gICB0aGlzLnNlbGVjdGVkVW5wcm9jZXNzZWRGZWVFdmVudC5lbWl0KHNlbGVjdGVkUmVjb3JkUmVmZXJlbmNlKTtcbiAgfVxuXG4gIHJlc2V0QnV0dG9ucygpIHtcbiAgICB0aGlzLmlzVW5wcm9jZXNzZWRSZWNvcmRTZWxlY3RlZCA9IGZhbHNlO1xuICAgIHRoaXMuaXNBbGxvY2F0ZVRvRXhpc3RpbmdGZWVidG5FbmFibGVkICA9IGZhbHNlO1xuICAgIHRoaXMuaXNNYXJrQXNVbmlkZW50aWZpZWRidG5FbmFibGVkICA9IGZhbHNlO1xuICAgIHRoaXMuaXNBbGxvY2F0ZWRUb05ld0ZlZWJ0bkVuYWJsZWQgPSBmYWxzZTtcbiAgfVxuXG4gIGdvVG9BbGxvY2F0ZVBhZ2UoZGNuX3JlZmVyZW5jZTphbnkpIHtcbiAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuYnNwYXltZW50ZGNuID0gZGNuX3JlZmVyZW5jZTtcbiAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQudW5Qcm9jZXNzZWRQYXltZW50U2VydmljZUlkID0gdGhpcy5zZXJ2aWNlSWRcbiAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuaXNUdXJuT2ZmID0gdGhpcy5JU1RVUk5PRkY7XG4gICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LmlzTmV3UGNpcGFsT2ZmID0gdGhpcy5JU05FV1BDSVBBTE9GRjtcbiAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQuaXNPbGRQY2lwYWxPZmYgPSB0aGlzLklTT0xEUENJUEFMT0ZGO1xuICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5JU1NGRU5BQkxFID0gdGhpcy5pc1N0Rml4RW5hYmxlO1xuXG4gICAgaWYodGhpcy5JU1RVUk5PRkYpIHtcbiAgICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5wYXltZW50R3JvdXBSZWZlcmVuY2UgPSB0aGlzLlBBWU1FTlRSRUY7XG4gICAgICB0aGlzLnBheW1lbnRMaWJDb21wb25lbnQudmlld05hbWUgPSAnZmVlLXN1bW1hcnknO1xuICAgIH1lbHNlIHtcbiAgICAgIHRoaXMucGF5bWVudExpYkNvbXBvbmVudC5wYXltZW50R3JvdXBSZWZlcmVuY2UgPSBudWxsO1xuICAgICAgdGhpcy5wYXltZW50TGliQ29tcG9uZW50LnZpZXdOYW1lID0gJ2FsbG9jYXRlLXBheW1lbnRzJztcbiAgICB9XG5cbiAgfVxuXG4gIHZhbGlkYXRlQnV0dG9ucygpIHtcbiAgaWYgKCB0aGlzLmlzVW5wcm9jZXNzZWRSZWNvcmRTZWxlY3RlZCAgJiYgdGhpcy5pc0V4Y2VwdGlvbkNhc2UpIHtcbiAgICAgICAgdGhpcy5pc01hcmtBc1VuaWRlbnRpZmllZGJ0bkVuYWJsZWQgPSB0cnVlO1xuICAgIH0gZWxzZSBpZiAoIHRoaXMuaXNVbnByb2Nlc3NlZFJlY29yZFNlbGVjdGVkICAmJiAhdGhpcy5pc0V4Y2VwdGlvbkNhc2UgJiYgIXRoaXMuRkVFX1JFQ09SRFNfRVhJU1RTKSB7XG4gICAgICB0aGlzLmlzQWxsb2NhdGVUb0V4aXN0aW5nRmVlYnRuRW5hYmxlZCA9IGZhbHNlO1xuICAgICAgdGhpcy5pc0FsbG9jYXRlZFRvTmV3RmVlYnRuRW5hYmxlZCA9IHRydWU7XG4gICAgfSBlbHNlIGlmKCB0aGlzLmlzVW5wcm9jZXNzZWRSZWNvcmRTZWxlY3RlZCAmJiAhdGhpcy5pc0V4Y2VwdGlvbkNhc2UgJiYgdGhpcy5GRUVfUkVDT1JEU19FWElTVFMgKSB7XG4gICAgICBpZighdGhpcy5JU1RVUk5PRkYpIHtcbiAgICAgICAgdGhpcy5pc0FsbG9jYXRlVG9FeGlzdGluZ0ZlZWJ0bkVuYWJsZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLmlzQWxsb2NhdGVkVG9OZXdGZWVidG5FbmFibGVkID0gZmFsc2U7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmlzQWxsb2NhdGVUb0V4aXN0aW5nRmVlYnRuRW5hYmxlZCA9IHRoaXMuSVNfT1NfQU1UX0FWQUlMQUJMRTtcbiAgICAgICAgdGhpcy5pc0FsbG9jYXRlZFRvTmV3RmVlYnRuRW5hYmxlZCA9IHRydWU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdW5wcm9jZXNzZWRQYXltZW50VW5TZWxlY3RFdmVudChldmVudDogYW55KSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLnJlY29yZElkID0gbnVsbDtcbiAgICB0aGlzLmlzVW5wcm9jZXNzZWRSZWNvcmRTZWxlY3RlZCA9IGZhbHNlO1xuICAgIHRoaXMuaXNBbGxvY2F0ZVRvRXhpc3RpbmdGZWVidG5FbmFibGVkID0gZmFsc2U7XG4gICAgdGhpcy5pc0FsbG9jYXRlZFRvTmV3RmVlYnRuRW5hYmxlZCA9IGZhbHNlO1xuICAgIHRoaXMuaXNNYXJrQXNVbmlkZW50aWZpZWRidG5FbmFibGVkID0gZmFsc2U7XG4gICAgLy90aGlzLnZhbGlkYXRlQnV0dG9ucygpO1xuICAgIHRoaXMuc2VsZWN0ZWRVbnByb2Nlc3NlZEZlZUV2ZW50LmVtaXQoJycpO1xuICB9XG5cbiAgc2hvd0RldGFpbFJvdyhldmVudDogYW55LG9iajogYW55LCBpOiBhbnkpIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIFxuICAgIHRoaXMudW5hc3NpZ25lZFJlY29yZFNlbGVjdGVkTGlzdCA9IG9iajtcbiAgICBcbiAgfVxufVxuIl19
@@ -0,0 +1,33 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
+ */
5
+ /**
6
+ * @record
7
+ */
8
+ export function IPaymentFailure() { }
9
+ if (false) {
10
+ /** @type {?} */
11
+ IPaymentFailure.prototype.additional_reference;
12
+ /** @type {?} */
13
+ IPaymentFailure.prototype.disputed_amount;
14
+ /** @type {?} */
15
+ IPaymentFailure.prototype.failure_event_date_time;
16
+ /** @type {?} */
17
+ IPaymentFailure.prototype.failure_reason;
18
+ /** @type {?} */
19
+ IPaymentFailure.prototype.failure_reference;
20
+ /** @type {?} */
21
+ IPaymentFailure.prototype.failure_type;
22
+ /** @type {?} */
23
+ IPaymentFailure.prototype.payment_reference;
24
+ /** @type {?} */
25
+ IPaymentFailure.prototype.representment_date;
26
+ /** @type {?} */
27
+ IPaymentFailure.prototype.representment_status;
28
+ /** @type {?|undefined} */
29
+ IPaymentFailure.prototype.has_amount_debited;
30
+ /** @type {?} */
31
+ IPaymentFailure.prototype.status;
32
+ }
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSVBheW1lbnRGYWlsdXJlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGhtY3RzL2NjcGF5LXdlYi1jb21wb25lbnQvIiwic291cmNlcyI6WyJsaWIvaW50ZXJmYWNlcy9JUGF5bWVudEZhaWx1cmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLHFDQVlDOzs7SUFYQywrQ0FBNkI7O0lBQzdCLDBDQUF3Qjs7SUFDeEIsa0RBQWdDOztJQUNoQyx5Q0FBdUI7O0lBQ3ZCLDRDQUEwQjs7SUFDMUIsdUNBQXFCOztJQUNyQiw0Q0FBMEI7O0lBQzFCLDZDQUEyQjs7SUFDM0IsK0NBQTZCOztJQUM3Qiw2Q0FBNEI7O0lBQzVCLGlDQUFlIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBJUGF5bWVudEZhaWx1cmUge1xuICBhZGRpdGlvbmFsX3JlZmVyZW5jZTogc3RyaW5nO1xuICBkaXNwdXRlZF9hbW91bnQ6IG51bWJlcjtcbiAgZmFpbHVyZV9ldmVudF9kYXRlX3RpbWU6IHN0cmluZztcbiAgZmFpbHVyZV9yZWFzb246IHN0cmluZztcbiAgZmFpbHVyZV9yZWZlcmVuY2U6IHN0cmluZztcbiAgZmFpbHVyZV90eXBlOiBzdHJpbmc7XG4gIHBheW1lbnRfcmVmZXJlbmNlOiBzdHJpbmc7XG4gIHJlcHJlc2VudG1lbnRfZGF0ZTogc3RyaW5nO1xuICByZXByZXNlbnRtZW50X3N0YXR1czogc3RyaW5nO1xuICBoYXNfYW1vdW50X2RlYml0ZWQ/OiBzdHJpbmc7XG4gIHN0YXR1czogc3RyaW5nO1xufVxuIl19
@@ -75,7 +75,9 @@ PaymentLibComponent.decorators = [
75
75
  *ngIf="viewName === 'refundstatuslist'"> </ccpay-refund-status >
76
76
  <ccpay-payment-view [LOGGEDINUSERROLES]="LOGGEDINUSERROLES" *ngIf="viewName === 'payment-view'"
77
77
  [isTurnOff]="ISTURNOFF" [isTakePayment]="TAKEPAYMENT" [caseType]="CASETYPE"
78
- ></ccpay-payment-view>
78
+ [isOldPcipalOff]="ISOLDPCIPALOFF"
79
+ [ISPAYMENTSTATUSENABLED] = "ISPAYMENTSTATUSENABLED"
80
+ [isNewPcipalOff]="ISNEWPCIPALOFF"></ccpay-payment-view>
79
81
 
80
82
  <ccpay-process-refund *ngIf="viewName === 'process-refund'"
81
83
  [refundReference]="refundReference"
@@ -94,10 +96,12 @@ PaymentLibComponent.decorators = [
94
96
  [caseType]="CASETYPE"
95
97
  ></app-allocate-payments>
96
98
  <ccpay-fee-summary *ngIf="viewName === 'fee-summary'"
97
- [ccdCaseNumber]="CCD_CASE_NUMBER"
99
+ [ccdCaseNumber]="CCD_CASE_NUMBER"
98
100
  [paymentGroupRef]="paymentGroupReference"
99
101
  [isTurnOff]="ISTURNOFF"
100
102
  [caseType]="CASETYPE"
103
+ [isOldPcipalOff]="ISOLDPCIPALOFF"
104
+ [isNewPcipalOff]="ISNEWPCIPALOFF"
101
105
  ></ccpay-fee-summary>
102
106
  <ccpay-reports *ngIf="viewName === 'reports'"></ccpay-reports>
103
107
  `
@@ -128,6 +132,9 @@ PaymentLibComponent.propDecorators = {
128
132
  ISSFENABLE: [{ type: Input, args: ['ISSFENABLE',] }],
129
133
  ISTURNOFF: [{ type: Input, args: ['ISTURNOFF',] }],
130
134
  CASETYPE: [{ type: Input, args: ['CASETYPE',] }],
135
+ ISOLDPCIPALOFF: [{ type: Input, args: ['ISOLDPCIPALOFF',] }],
136
+ ISNEWPCIPALOFF: [{ type: Input, args: ['ISNEWPCIPALOFF',] }],
137
+ ISPAYMENTSTATUSENABLED: [{ type: Input, args: ['ISPAYMENTSTATUSENABLED',] }],
131
138
  rootUrl: [{ type: Input, args: ['rootUrl',] }],
132
139
  REFUNDLIST: [{ type: Input, args: ['REFUNDLIST',] }],
133
140
  USERID: [{ type: Input, args: ['USERID',] }],
@@ -173,6 +180,12 @@ if (false) {
173
180
  /** @type {?} */
174
181
  PaymentLibComponent.prototype.CASETYPE;
175
182
  /** @type {?} */
183
+ PaymentLibComponent.prototype.ISOLDPCIPALOFF;
184
+ /** @type {?} */
185
+ PaymentLibComponent.prototype.ISNEWPCIPALOFF;
186
+ /** @type {?} */
187
+ PaymentLibComponent.prototype.ISPAYMENTSTATUSENABLED;
188
+ /** @type {?} */
176
189
  PaymentLibComponent.prototype.rootUrl;
177
190
  /** @type {?} */
178
191
  PaymentLibComponent.prototype.REFUNDLIST;
@@ -205,6 +218,10 @@ if (false) {
205
218
  /** @type {?} */
206
219
  PaymentLibComponent.prototype.caseType;
207
220
  /** @type {?} */
221
+ PaymentLibComponent.prototype.isOldPcipalOff;
222
+ /** @type {?} */
223
+ PaymentLibComponent.prototype.isNewPcipalOff;
224
+ /** @type {?} */
208
225
  PaymentLibComponent.prototype.unProcessedPayment;
209
226
  /** @type {?} */
210
227
  PaymentLibComponent.prototype.isRefundStatusView;
@@ -262,4 +279,4 @@ if (false) {
262
279
  */
263
280
  PaymentLibComponent.prototype.OrderslistService;
264
281
  }
265
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudC1saWIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGhtY3RzL2NjcGF5LXdlYi1jb21wb25lbnQvIiwic291cmNlcyI6WyJsaWIvcGF5bWVudC1saWIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUM1RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUUxRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQTBDbEUsTUFBTSxPQUFPLG1CQUFtQjs7Ozs7O0lBMkQ5QixZQUFvQixpQkFBb0MsRUFDOUMsRUFBcUIsRUFDckIsaUJBQW9DO1FBRjFCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDOUMsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUFDckIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQWpDOUMsZ0NBQTJCLEdBQVcsSUFBSSxDQUFDO1FBUTNDLHVCQUFrQixHQUFnQixJQUFJLENBQUM7UUFrQnZDLG1CQUFjLEdBQVcsSUFBSSxDQUFDO1FBQzlCLHdCQUFtQixHQUFXLElBQUksQ0FBQztRQUNuQyx1QkFBa0IsR0FBVyxJQUFJLENBQUM7UUFDbEMseUJBQW9CLEdBQVcsSUFBSSxDQUFDO0lBSWMsQ0FBQzs7OztJQUNuRCxxQkFBcUI7UUFDbkIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUMzQixDQUFDOzs7O0lBR0EsUUFBUTtRQUNOLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNyRSxJQUFJLENBQUMsaUJBQWlCLENBQUMs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SUFDdkMsdUNBQW9DOztJQUNwQyxzQ0FBbUM7O0lBQ25DLHlDQUF3Qzs7SUFDeEMscUNBQWdDOztJQUNoQyxnREFBcUQ7O0lBQ3JELGdEQUFzRDs7SUFDdEQsdURBQXFFOztJQUVyRSw0Q0FBc0I7O0lBQ3RCLDJDQUFxQjs7SUFDckIsMERBQTJDOztJQUMzQyxvREFBOEI7O0lBQzlCLCtDQUF5Qjs7SUFDekIsOENBQXdCOztJQUN4QiwrQ0FBc0I7O0lBQ3RCLHVDQUFpQjs7SUFDakIsd0NBQW1COztJQUNuQix1Q0FBaUI7O0lBQ2pCLGlEQUF1Qzs7SUFDdkMsaURBQTRCOztJQUM1QixnRUFBMEM7O0lBQzFDLG1EQUE4Qjs7SUFDOUIscURBQWdDOztJQUNoQyw4Q0FBMEI7O0lBQzFCLHNEQUFpQzs7SUFDakMsNkNBQXlCOztJQUN6Qiw0Q0FBdUI7O0lBRXZCLDBDQUFtQjs7SUFDbkIsdUNBQWlCOztJQUNqQiwwQ0FBb0I7O0lBQ3BCLHlDQUFtQjs7SUFDbkIsMkNBQW1COztJQUNuQiw0Q0FBc0I7O0lBQ3RCLGtEQUE0Qjs7SUFDNUIsZ0RBQTJCOztJQUMzQiw2Q0FBOEI7O0lBQzlCLGtEQUFtQzs7SUFDbkMsaURBQWtDOztJQUNsQyxtREFBb0M7Ozs7O0lBRXhCLGdEQUE0Qzs7Ozs7SUFDdEQsaUNBQTZCOzs7OztJQUM3QixnREFBNEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQYXltZW50TGliU2VydmljZSB9IGZyb20gJy4vcGF5bWVudC1saWIuc2VydmljZSc7XG5pbXBvcnQgeyBJQlNQYXltZW50cyB9IGZyb20gJy4vaW50ZXJmYWNlcy9JQlNQYXltZW50cyc7XG5pbXBvcnQgeyBPcmRlcnNsaXN0U2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvb3JkZXJzbGlzdC5zZXJ2aWNlJztcbmltcG9ydCB7IElQYXltZW50IH0gZnJvbSAnLi9pbnRlcmZhY2VzL0lQYXltZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2NwYXktcGF5bWVudC1saWInLFxuICB0ZW1wbGF0ZTogYFxuICA8Y2NwYXktcmVmdW5kLWxpc3QgW1VTRVJJRF09XCJVU0VSSURcIiBbTE9HR0VESU5VU0VSUk9MRVNdPVwiTE9HR0VESU5VU0VSUk9MRVNcIiBbTE9HR0VESU5VU0VSRU1BSUxdPVwiTE9HR0VESU5VU0VSRU1BSUxcIiAqbmdJZj1cInZpZXdOYW1lID09PSAncmVmdW5kLWxpc3QnXCI+PC9jY3BheS1yZWZ1bmQtbGlzdD5cbiAgICA8Y2NwYXktcGF5bWVudC1saXN0ICpuZ0lmPVwidmlld05hbWUgPT09ICdwYXltZW50LWxpc3QnXCI+PC9jY3BheS1wYXltZW50LWxpc3Q+XG4gICAgPGNjcGF5LXJlZnVuZC1zdGF0dXNcbiAgICBbTE9HR0VESU5VU0VSUk9MRVNdPVwiTE9HR0VESU5VU0VSUk9MRVNcIlxuICAgIFtBUElfUk9PVF09XCJBUElfUk9PVFwiXG4gICAgKm5nSWY9XCJ2aWV3TmFtZSA9PT0gJ3JlZnVuZHN0YXR1c2xpc3QnXCI+IDwvY2NwYXktcmVmdW5kLXN0YXR1cyA+XG4gICAgPGNjcGF5LXBheW1lbnQtdmlldyBbTE9HR0VESU5VU0VSUk9MRVNdPVwiTE9HR0VESU5VU0VSUk9MRVNcIiAqbmdJZj1cInZpZXdOYW1lID09PSAncGF5bWVudC12aWV3J1wiXG4gICAgW2lzVHVybk9mZl09XCJJU1RVUk5PRkZcIiBbaXNUYWtlUGF5bWVudF09XCJUQUtFUEFZTUVOVFwiICBbY2FzZVR5cGVdPVwiQ0FTRVRZUEVcIlxuICAgID48L2NjcGF5LXBheW1lbnQtdmlldz5cblxuICAgIDxjY3BheS1wcm9jZXNzLXJlZnVuZCAqbmdJZj1cInZpZXdOYW1lID09PSAncHJvY2Vzcy1yZWZ1bmQnXCJcbiAgICBbcmVmdW5kUmVmZXJlbmNlXT1cInJlZnVuZFJlZmVyZW5jZVwiXG4gICAgW3JlZnVuZGxpc3Rzb3VyY2VdPVwicmVmdW5kbGlzdHNvdXJjZVwiXG4gICAgPjwvY2NwYXktcHJvY2Vzcy1yZWZ1bmQ+XG4gICAgPGNjcGF5LXBiYS1wYXltZW50ICpuZ0lmPVwidmlld05hbWUgPT09ICdwYmEtcGF5bWVudCdcIlxuICAgIFtwYmFQYXlPcmRlclJlZl09XCJwYmFQYXlPcmRlclJlZlwiXG4gICAgPjwvY2NwYXktcGJhLXBheW1lbnQ+XG4gICAgPGNjcGF5LWNhc2UtdHJhbnNhY3Rpb25zIFtpc1Rha2VQYXltZW50XT1cImlzVGFrZVBheW1lbnRcIiBbTE9HR0VESU5VU0VSUk9MRVNdPVwiTE9HR0VESU5VU0VSUk9MRVNcIiAqbmdJZj1cInZpZXdOYW1lID09PSAnY2FzZS10cmFuc2FjdGlvbnMnXCI+PC9jY3BheS1jYXNlLXRyYW5zYWN0aW9ucz5cbiAgICA8YXBwLW1hcmstdW5pZGVudGlmaWVkLXBheW1lbnQgKm5nSWY9XCJ2aWV3TmFtZSA9PT0gJ3VuaWRlbnRpZmllZFBhZ2UnXCJcbiAgICBbY2FzZVR5cGVdPVwiQ0FTRVRZUEVcIj48L2FwcC1tYXJrLXVuaWRlbnRpZmllZC1wYXltZW50PlxuICAgIDxhcHAtbWFyay11bnNvbGljaXRlZC1wYXltZW50ICpuZ0lmPVwidmlld05hbWUgPT09ICd1bnNvbGljaXRlZFBhZ2UnXCJcbiAgICBbY2FzZVR5cGVdPVwiQ0FTRVRZUEVcIj48L2FwcC1tYXJrLXVuc29saWNpdGVkLXBheW1lbnQ+XG4gICAgPGFwcC1hbGxvY2F0ZS1wYXltZW50cyAqbmdJZj1cInZpZXdOYW1lID09PSAnYWxsb2NhdGUtcGF5bWVudHMnXCJcbiAgICBbaXNUdXJuT2ZmXT1cIklTVFVSTk9GRlwiXG4gICAgW2Nhc2VUeXBlXT1cIkNBU0VUWVBFXCJcbiAgICA+PC9hcHAtYWxsb2NhdGUtcGF5bWVudHM+XG4gICAgPGNjcGF5LWZlZS1zdW1tYXJ5ICpuZ0lmPVwidmlld05hbWUgPT09ICdmZWUtc3VtbWFyeSdcIlxuICAgICAgW2NjZENhc2VOdW1iZXJdPVwiQ0NEX0NBU0VfTlVNQkVSXCJcbiAgICAgIFtwYXltZW50R3JvdXBSZWZdPVwicGF5bWVudEdyb3VwUmVmZXJlbmNlXCJcbiAgICAgIFtpc1R1cm5PZmZdPVwiSVNUVVJOT0ZGXCJcbiAgICAgIFtjYXNlVHlwZV09XCJDQVNFVFlQRVwiXG4gICAgICA+PC9jY3BheS1mZWUtc3VtbWFyeT5cbiAgICA8Y2NwYXktcmVwb3J0cyAqbmdJZj1cInZpZXdOYW1lID09PSAncmVwb3J0cydcIj48L2NjcGF5LXJlcG9ydHM+XG4gICAgYFxufSlcblxuZXhwb3J0IGNsYXNzIFBheW1lbnRMaWJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoJ0FQSV9ST09UJykgQVBJX1JPT1Q6IHN0cmluZztcbiAgQElucHV0KCdCVUxLU0NBTl9BUElfUk9PVCcpIEJVTEtTQ0FOX0FQSV9ST09UOiBzdHJpbmc7XG4gIEBJbnB1dCgnUkVGVU5EU19BUElfUk9PVCcpIFJFRlVORFNfQVBJX1JPT1Q6IHN0cmluZztcbiAgQElucHV0KCdDQVJEUEFZTUVOVFJFVFVSTlVSTCcpIENBUkRQQVlNRU5UUkVUVVJOVVJMOiBzdHJpbmc7XG4gIEBJbnB1dCgnQ0NEX0NBU0VfTlVNQkVSJykgQ0NEX0NBU0VfTlVNQkVSOiBzdHJpbmc7XG4gIEBJbnB1dCgnRVhDX1JFRkVSRU5DRScpIEVYQ19SRUZFUkVOQ0U6IHN0cmluZztcbiAgQElucHV0KCdQQVlNRU5UX01FVEhPRCcpIFBBWU1FTlRfTUVUSE9EOiBzdHJpbmc7XG4gIEBJbnB1dCgnVklFVycpIFZJRVc6IHN0cmluZztcbiAgQElucHV0KCdWSUVXU0VSVklDRScpIFZJRVdTRVJWSUNFOiBzdHJpbmc7XG4gIEBJbnB1dCgnUEFZTUVOVF9HUk9VUF9SRUYnKSBQQVlNRU5UX0dST1VQX1JFRj86IHN0cmluZztcbiAgQElucHV0KCdUQUtFUEFZTUVOVCcpIFRBS0VQQVlNRU5UOiBib29sZWFuO1xuICBASW5wdXQoJ1NFUlZJQ0VSRVFVRVNUJykgU0VSVklDRVJFUVVFU1Q6IHN0cmluZztcbiAgQElucHV0KCdEQ05fTlVNQkVSJykgRENOX05VTUJFUjogc3RyaW5nO1xuICBASW5wdXQoJ1NFTEVDVEVEX09QVElPTicpIFNFTEVDVEVEX09QVElPTjogc3RyaW5nO1xuICBASW5wdXQoJ0lTQlNFTkFCTEUnKSBJU0JTRU5BQkxFOiBCb29sZWFuO1xuICBASW5wdXQoJ0lTU0ZFTkFCTEUnKSBJU1NGRU5BQkxFOiBib29sZWFuO1xuICBASW5wdXQoJ0lTVFVSTk9GRicpIElTVFVSTk9GRjogYm9vbGVhbjtcbiAgQElucHV0KCdDQVNFVFlQRScpIENBU0VUWVBFOiBzdHJpbmc7XG4gIEBJbnB1dCgncm9vdFVybCcpIHJvb3RVcmw6IGJvb2xlYW47XG4gIEBJbnB1dCgnUkVGVU5ETElTVCcpIFJFRlVORExJU1Q6IHN0cmluZztcbiAgQElucHV0KCdVU0VSSUQnKSBVU0VSSUQ6IHN0cmluZztcbiAgQElucHV0KCdMT0dHRURJTlVTRVJST0xFUycpIExPR0dFRElOVVNFUlJPTEVTOiBhbnlbXTtcbiAgQElucHV0KCdMT0dHRURJTlVTRVJFTUFJTCcpIExPR0dFRElOVVNFUkVNQUlMOiBzdHJpbmc7XG4gIEBJbnB1dCgnaXNGcm9tU2VydmljZVJlcXVlc3RQYWdlJykgaXNGcm9tU2VydmljZVJlcXVlc3RQYWdlOiBib29sZWFuO1xuXG4gIHBheW1lbnRNZXRob2Q6IHN0cmluZztcbiAgYnNwYXltZW50ZGNuOiBzdHJpbmc7XG4gIHVuUHJvY2Vzc2VkUGF5bWVudFNlcnZpY2VJZDogc3RyaW5nID0gbnVsbDtcbiAgcGF5bWVudEdyb3VwUmVmZXJlbmNlOiBzdHJpbmc7XG4gIHBheW1lbnRSZWZlcmVuY2U6IHN0cmluZztcbiAgcmVmdW5kUmVmZXJlbmNlOiBzdHJpbmc7XG4gIHJlZnVuZGxpc3Rzb3VyY2U6IGFueTtcbiAgdmlld05hbWU6IHN0cmluZztcbiAgaXNUdXJuT2ZmOiBib29sZWFuO1xuICBjYXNlVHlwZTogc3RyaW5nO1xuICB1blByb2Nlc3NlZFBheW1lbnQ6IElCU1BheW1lbnRzID0gbnVsbDtcbiAgaXNSZWZ1bmRTdGF0dXNWaWV3OiBib29sZWFuO1xuICBpc1JlZGlyZWN0RnJvbUNhc2VUcmFuc2FjdGlvblBhZ2U6IHN0cmluZztcbiAgaXNDYWxsRnJvbVJlZnVuZExpc3Q6IGJvb2xlYW47XG4gIGlzRnJvbVJlZnVuZFN0YXR1c1BhZ2U6IGJvb2xlYW47XG4gIGlzY2FuY2VsQ2xpY2tlZCA6IGJvb2xlYW47XG4gIGlzRnJvbVBheW1lbnREZXRhaWxQYWdlOiBib29sZWFuO1xuICBwYmFQYXlPcmRlclJlZjogSVBheW1lbnQ7XG4gIGlzVGFrZVBheW1lbnQ6IGJvb2xlYW47XG5cbiAgb3JkZXJEZXRhaWw6IGFueVtdO1xuICBvcmRlclJlZjogc3RyaW5nO1xuICBvcmRlclN0YXR1czogc3RyaW5nO1xuICBvcmRlclBhcnR5OiBzdHJpbmc7XG4gIG9yZGVyQ3JlYXRlZDogRGF0ZTtcbiAgb3JkZXJDQ0RFdmVudDogc3RyaW5nO1xuICBzZXJ2aWNlUmVxdWVzdFZhbHVlOiBzdHJpbmc7XG4gIG9yZGVyQWRkQnRuRW5hYmxlOiBib29sZWFuO1xuICBvcmRlckZlZXNUb3RhbDogbnVtYmVyID0gMC4wMDtcbiAgb3JkZXJSZW1pc3Npb25Ub3RhbDogbnVtYmVyID0gMC4wMDtcbiAgb3JkZXJUb3RhbFBheW1lbnRzOiBudW1iZXIgPSAwLjAwO1xuICBvcmRlclBlbmRpbmdQYXltZW50czogbnVtYmVyID0gMC4wMDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHBheW1lbnRMaWJTZXJ2aWNlOiBQYXltZW50TGliU2VydmljZSxcbiAgICBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIE9yZGVyc2xpc3RTZXJ2aWNlOiBPcmRlcnNsaXN0U2VydmljZSkgeyB9XG4gIG5nQWZ0ZXJDb250ZW50Q2hlY2tlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiB9XG5cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnBheW1lbnRMaWJTZXJ2aWNlLnNldEFwaVJvb3RVcmwodGhpcy5BUElfUk9PVCk7XG4gICAgdGhpcy5wYXltZW50TGliU2VydmljZS5zZXRCdWxrU2NhbkFwaVJvb3RVcmwodGhpcy5CVUxLU0NBTl9BUElfUk9PVCk7XG4gICAgdGhpcy5wYXltZW50TGliU2VydmljZS5zZXRSZWZ1bmRuZHNBcGlSb290VXJsKHRoaXMuUkVGVU5EU19BUElfUk9PVCk7XG4gICAgdGhpcy5wYXltZW50TGliU2VydmljZS5zZXRDYXJkUGF5bWVudFJldHVyblVybCh0aGlzLkNBUkRQQVlNRU5UUkVUVVJOVVJMKTtcblxuICAgIGlmKHRoaXMuTE9HR0VESU5VU0VSUk9MRVMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5PcmRlcnNsaXN0U2VydmljZS5zZXRVc2VyUm9sZXNMaXN0KHRoaXMuTE9HR0VESU5VU0VSUk9MRVMpO1xuICAgIH1cbiAgICBpZiAodGhpcy5QQVlNRU5UX0dST1VQX1JFRikge1xuICAgICAgdGhpcy5wYXltZW50R3JvdXBSZWZlcmVuY2UgPSB0aGlzLlBBWU1FTlRfR1JPVVBfUkVGO1xuICAgIH1cbiAgICBpZiAodGhpcy5EQ05fTlVNQkVSKSB7XG4gICAgICB0aGlzLmJzcGF5bWVudGRjbiA9IHRoaXMuRENOX05VTUJFUjtcbiAgICB9XG4gICAgaWYgKHRoaXMuUkVGVU5ETElTVCA9PT0gXCJ0cnVlXCIpIHtcbiAgICAgIHRoaXMuVklFVyA9ICdyZWZ1bmQtbGlzdCc7XG4gICAgICB0aGlzLnZpZXdOYW1lID0gdGhpcy5WSUVXO1xuICAgIH1cbiAgICBpZiAodGhpcy5WSUVXID09PSAnZmVlLXN1bW1hcnknKSB7XG4gICAgICB0aGlzLnZpZXdOYW1lID0gJ2ZlZS1zdW1tYXJ5JztcbiAgICB9IGVsc2UgaWYgKHRoaXMuVklFVyAhPT0gJ3JlcG9ydHMnICYmIHRoaXMuVklFVyAhPT0gJ3JlZnVuZC1saXN0Jykge1xuICAgICAgdGhpcy52aWV3TmFtZSA9ICdjYXNlLXRyYW5zYWN0aW9ucyc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudmlld05hbWUgPSB0aGlzLlZJRVc7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaXNUYWtlUGF5bWVudCkge1xuICAgICAgdGhpcy5UQUtFUEFZTUVOVCA9IHRydWU7XG4gICAgfVxuICB9XG59XG4iXX0=
282
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudC1saWIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGhtY3RzL2NjcGF5LXdlYi1jb21wb25lbnQvIiwic291cmNlcyI6WyJsaWIvcGF5bWVudC1saWIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUM1RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUUxRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQThDbEUsTUFBTSxPQUFPLG1CQUFtQjs7Ozs7O0lBZ0U5QixZQUFvQixpQkFBb0MsRUFDOUMsRUFBcUIsRUFDckIsaUJBQW9DO1FBRjFCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDOUMsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUFDckIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQW5DOUMsZ0NBQTJCLEdBQVcsSUFBSSxDQUFDO1FBVTNDLHVCQUFrQixHQUFnQixJQUFJLENBQUM7UUFrQnZDLG1CQUFjLEdBQVcsSUFBSSxDQUFDO1FBQzlCLHdCQUFtQixHQUFXLElBQUksQ0FBQztRQUNuQyx1QkFBa0IsR0FBVyxJQUFJLENBQUM7UUFDbEMseUJBQW9CLEdBQVcsSUFBSSxDQUFDO0lBSWMsQ0FBQzs7OztJQUNuRCxxQkFBcUI7UUFDbkIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUMzQixDQUFDOzs7O0lBR0EsUUFBUTtRQUNOLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNyRSxJQUFJLENBQUMsaUJBQWlCLENBQUMs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QUFnRDs7SUFDaEQseUNBQXdDOztJQUN4Qyw4Q0FBa0Q7O0lBQ2xELHlDQUF5Qzs7SUFDekMseUNBQXlDOztJQUN6Qyx3Q0FBdUM7O0lBQ3ZDLHVDQUFvQzs7SUFDcEMsNkNBQWlEOztJQUNqRCw2Q0FBaUQ7O0lBQ2pELHFEQUFpRTs7SUFDakUsc0NBQW1DOztJQUNuQyx5Q0FBd0M7O0lBQ3hDLHFDQUFnQzs7SUFDaEMsZ0RBQXFEOztJQUNyRCxnREFBc0Q7O0lBQ3RELHVEQUFxRTs7SUFFckUsNENBQXNCOztJQUN0QiwyQ0FBcUI7O0lBQ3JCLDBEQUEyQzs7SUFDM0Msb0RBQThCOztJQUM5QiwrQ0FBeUI7O0lBQ3pCLDhDQUF3Qjs7SUFDeEIsK0NBQXNCOztJQUN0Qix1Q0FBaUI7O0lBQ2pCLHdDQUFtQjs7SUFDbkIsdUNBQWlCOztJQUNqQiw2Q0FBd0I7O0lBQ3hCLDZDQUF3Qjs7SUFDeEIsaURBQXVDOztJQUN2QyxpREFBNEI7O0lBQzVCLGdFQUEwQzs7SUFDMUMsbURBQThCOztJQUM5QixxREFBZ0M7O0lBQ2hDLDhDQUEwQjs7SUFDMUIsc0RBQWlDOztJQUNqQyw2Q0FBeUI7O0lBQ3pCLDRDQUF1Qjs7SUFFdkIsMENBQW1COztJQUNuQix1Q0FBaUI7O0lBQ2pCLDBDQUFvQjs7SUFDcEIseUNBQW1COztJQUNuQiwyQ0FBbUI7O0lBQ25CLDRDQUFzQjs7SUFDdEIsa0RBQTRCOztJQUM1QixnREFBMkI7O0lBQzNCLDZDQUE4Qjs7SUFDOUIsa0RBQW1DOztJQUNuQyxpREFBa0M7O0lBQ2xDLG1EQUFvQzs7Ozs7SUFFeEIsZ0RBQTRDOzs7OztJQUN0RCxpQ0FBNkI7Ozs7O0lBQzdCLGdEQUE0QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFBheW1lbnRMaWJTZXJ2aWNlIH0gZnJvbSAnLi9wYXltZW50LWxpYi5zZXJ2aWNlJztcbmltcG9ydCB7IElCU1BheW1lbnRzIH0gZnJvbSAnLi9pbnRlcmZhY2VzL0lCU1BheW1lbnRzJztcbmltcG9ydCB7IE9yZGVyc2xpc3RTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9vcmRlcnNsaXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgSVBheW1lbnQgfSBmcm9tICcuL2ludGVyZmFjZXMvSVBheW1lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjY3BheS1wYXltZW50LWxpYicsXG4gIHRlbXBsYXRlOiBgXG4gIDxjY3BheS1yZWZ1bmQtbGlzdCBbVVNFUklEXT1cIlVTRVJJRFwiIFtMT0dHRURJTlVTRVJST0xFU109XCJMT0dHRURJTlVTRVJST0xFU1wiIFtMT0dHRURJTlVTRVJFTUFJTF09XCJMT0dHRURJTlVTRVJFTUFJTFwiICpuZ0lmPVwidmlld05hbWUgPT09ICdyZWZ1bmQtbGlzdCdcIj48L2NjcGF5LXJlZnVuZC1saXN0PlxuICAgIDxjY3BheS1wYXltZW50LWxpc3QgKm5nSWY9XCJ2aWV3TmFtZSA9PT0gJ3BheW1lbnQtbGlzdCdcIj48L2NjcGF5LXBheW1lbnQtbGlzdD5cbiAgICA8Y2NwYXktcmVmdW5kLXN0YXR1c1xuICAgIFtMT0dHRURJTlVTRVJST0xFU109XCJMT0dHRURJTlVTRVJST0xFU1wiXG4gICAgW0FQSV9ST09UXT1cIkFQSV9ST09UXCJcbiAgICAqbmdJZj1cInZpZXdOYW1lID09PSAncmVmdW5kc3RhdHVzbGlzdCdcIj4gPC9jY3BheS1yZWZ1bmQtc3RhdHVzID5cbiAgICA8Y2NwYXktcGF5bWVudC12aWV3IFtMT0dHRURJTlVTRVJST0xFU109XCJMT0dHRURJTlVTRVJST0xFU1wiICpuZ0lmPVwidmlld05hbWUgPT09ICdwYXltZW50LXZpZXcnXCJcbiAgICBbaXNUdXJuT2ZmXT1cIklTVFVSTk9GRlwiIFtpc1Rha2VQYXltZW50XT1cIlRBS0VQQVlNRU5UXCIgIFtjYXNlVHlwZV09XCJDQVNFVFlQRVwiXG4gICAgW2lzT2xkUGNpcGFsT2ZmXT1cIklTT0xEUENJUEFMT0ZGXCJcbiAgICBbSVNQQVlNRU5UU1RBVFVTRU5BQkxFRF0gPSBcIklTUEFZTUVOVFNUQVRVU0VOQUJMRURcIlxuICAgIFtpc05ld1BjaXBhbE9mZl09XCJJU05FV1BDSVBBTE9GRlwiPjwvY2NwYXktcGF5bWVudC12aWV3PlxuXG4gICAgPGNjcGF5LXByb2Nlc3MtcmVmdW5kICpuZ0lmPVwidmlld05hbWUgPT09ICdwcm9jZXNzLXJlZnVuZCdcIlxuICAgIFtyZWZ1bmRSZWZlcmVuY2VdPVwicmVmdW5kUmVmZXJlbmNlXCJcbiAgICBbcmVmdW5kbGlzdHNvdXJjZV09XCJyZWZ1bmRsaXN0c291cmNlXCJcbiAgICA+PC9jY3BheS1wcm9jZXNzLXJlZnVuZD5cbiAgICA8Y2NwYXktcGJhLXBheW1lbnQgKm5nSWY9XCJ2aWV3TmFtZSA9PT0gJ3BiYS1wYXltZW50J1wiXG4gICAgW3BiYVBheU9yZGVyUmVmXT1cInBiYVBheU9yZGVyUmVmXCJcbiAgICA+PC9jY3BheS1wYmEtcGF5bWVudD5cbiAgICA8Y2NwYXktY2FzZS10cmFuc2FjdGlvbnMgW2lzVGFrZVBheW1lbnRdPVwiaXNUYWtlUGF5bWVudFwiIFtMT0dHRURJTlVTRVJST0xFU109XCJMT0dHRURJTlVTRVJST0xFU1wiICpuZ0lmPVwidmlld05hbWUgPT09ICdjYXNlLXRyYW5zYWN0aW9ucydcIj48L2NjcGF5LWNhc2UtdHJhbnNhY3Rpb25zPlxuICAgIDxhcHAtbWFyay11bmlkZW50aWZpZWQtcGF5bWVudCAqbmdJZj1cInZpZXdOYW1lID09PSAndW5pZGVudGlmaWVkUGFnZSdcIlxuICAgIFtjYXNlVHlwZV09XCJDQVNFVFlQRVwiPjwvYXBwLW1hcmstdW5pZGVudGlmaWVkLXBheW1lbnQ+XG4gICAgPGFwcC1tYXJrLXVuc29saWNpdGVkLXBheW1lbnQgKm5nSWY9XCJ2aWV3TmFtZSA9PT0gJ3Vuc29saWNpdGVkUGFnZSdcIlxuICAgIFtjYXNlVHlwZV09XCJDQVNFVFlQRVwiPjwvYXBwLW1hcmstdW5zb2xpY2l0ZWQtcGF5bWVudD5cbiAgICA8YXBwLWFsbG9jYXRlLXBheW1lbnRzICpuZ0lmPVwidmlld05hbWUgPT09ICdhbGxvY2F0ZS1wYXltZW50cydcIlxuICAgIFtpc1R1cm5PZmZdPVwiSVNUVVJOT0ZGXCJcbiAgICBbY2FzZVR5cGVdPVwiQ0FTRVRZUEVcIlxuICAgID48L2FwcC1hbGxvY2F0ZS1wYXltZW50cz5cbiAgICA8Y2NwYXktZmVlLXN1bW1hcnkgKm5nSWY9XCJ2aWV3TmFtZSA9PT0gJ2ZlZS1zdW1tYXJ5J1wiXG4gICAgICBbY2NkQ2FzZU51bWJlcl09XCJDQ0RfQ0FTRV9OVU1CRVJcIiBcbiAgICAgIFtwYXltZW50R3JvdXBSZWZdPVwicGF5bWVudEdyb3VwUmVmZXJlbmNlXCJcbiAgICAgIFtpc1R1cm5PZmZdPVwiSVNUVVJOT0ZGXCJcbiAgICAgIFtjYXNlVHlwZV09XCJDQVNFVFlQRVwiXG4gICAgICBbaXNPbGRQY2lwYWxPZmZdPVwiSVNPTERQQ0lQQUxPRkZcIlxuICAgICAgW2lzTmV3UGNpcGFsT2ZmXT1cIklTTkVXUENJUEFMT0ZGXCJcbiAgICAgID48L2NjcGF5LWZlZS1zdW1tYXJ5PlxuICAgIDxjY3BheS1yZXBvcnRzICpuZ0lmPVwidmlld05hbWUgPT09ICdyZXBvcnRzJ1wiPjwvY2NwYXktcmVwb3J0cz5cbiAgICBgXG59KVxuXG5leHBvcnQgY2xhc3MgUGF5bWVudExpYkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgnQVBJX1JPT1QnKSBBUElfUk9PVDogc3RyaW5nO1xuICBASW5wdXQoJ0JVTEtTQ0FOX0FQSV9ST09UJykgQlVMS1NDQU5fQVBJX1JPT1Q6IHN0cmluZztcbiAgQElucHV0KCdSRUZVTkRTX0FQSV9ST09UJykgUkVGVU5EU19BUElfUk9PVDogc3RyaW5nO1xuICBASW5wdXQoJ0NBUkRQQVlNRU5UUkVUVVJOVVJMJykgQ0FSRFBBWU1FTlRSRVRVUk5VUkw6IHN0cmluZztcbiAgQElucHV0KCdDQ0RfQ0FTRV9OVU1CRVInKSBDQ0RfQ0FTRV9OVU1CRVI6IHN0cmluZztcbiAgQElucHV0KCdFWENfUkVGRVJFTkNFJykgRVhDX1JFRkVSRU5DRTogc3RyaW5nO1xuICBASW5wdXQoJ1BBWU1FTlRfTUVUSE9EJykgUEFZTUVOVF9NRVRIT0Q6IHN0cmluZztcbiAgQElucHV0KCdWSUVXJykgVklFVzogc3RyaW5nO1xuICBASW5wdXQoJ1ZJRVdTRVJWSUNFJykgVklFV1NFUlZJQ0U6IHN0cmluZztcbiAgQElucHV0KCdQQVlNRU5UX0dST1VQX1JFRicpIFBBWU1FTlRfR1JPVVBfUkVGPzogc3RyaW5nO1xuICBASW5wdXQoJ1RBS0VQQVlNRU5UJykgVEFLRVBBWU1FTlQ6IGJvb2xlYW47XG4gIEBJbnB1dCgnU0VSVklDRVJFUVVFU1QnKSBTRVJWSUNFUkVRVUVTVDogc3RyaW5nO1xuICBASW5wdXQoJ0RDTl9OVU1CRVInKSBEQ05fTlVNQkVSOiBzdHJpbmc7XG4gIEBJbnB1dCgnU0VMRUNURURfT1BUSU9OJykgU0VMRUNURURfT1BUSU9OOiBzdHJpbmc7XG4gIEBJbnB1dCgnSVNCU0VOQUJMRScpIElTQlNFTkFCTEU6IEJvb2xlYW47XG4gIEBJbnB1dCgnSVNTRkVOQUJMRScpIElTU0ZFTkFCTEU6IGJvb2xlYW47XG4gIEBJbnB1dCgnSVNUVVJOT0ZGJykgSVNUVVJOT0ZGOiBib29sZWFuO1xuICBASW5wdXQoJ0NBU0VUWVBFJykgQ0FTRVRZUEU6IHN0cmluZztcbiAgQElucHV0KCdJU09MRFBDSVBBTE9GRicpIElTT0xEUENJUEFMT0ZGOiBib29sZWFuO1xuICBASW5wdXQoJ0lTTkVXUENJUEFMT0ZGJykgSVNORVdQQ0lQQUxPRkY6IGJvb2xlYW47XG4gIEBJbnB1dCgnSVNQQVlNRU5UU1RBVFVTRU5BQkxFRCcpIElTUEFZTUVOVFNUQVRVU0VOQUJMRUQ6IGJvb2xlYW47XG4gIEBJbnB1dCgncm9vdFVybCcpIHJvb3RVcmw6IGJvb2xlYW47XG4gIEBJbnB1dCgnUkVGVU5ETElTVCcpIFJFRlVORExJU1Q6IHN0cmluZztcbiAgQElucHV0KCdVU0VSSUQnKSBVU0VSSUQ6IHN0cmluZztcbiAgQElucHV0KCdMT0dHRURJTlVTRVJST0xFUycpIExPR0dFRElOVVNFUlJPTEVTOiBhbnlbXTtcbiAgQElucHV0KCdMT0dHRURJTlVTRVJFTUFJTCcpIExPR0dFRElOVVNFUkVNQUlMOiBzdHJpbmc7XG4gIEBJbnB1dCgnaXNGcm9tU2VydmljZVJlcXVlc3RQYWdlJykgaXNGcm9tU2VydmljZVJlcXVlc3RQYWdlOiBib29sZWFuO1xuXG4gIHBheW1lbnRNZXRob2Q6IHN0cmluZztcbiAgYnNwYXltZW50ZGNuOiBzdHJpbmc7XG4gIHVuUHJvY2Vzc2VkUGF5bWVudFNlcnZpY2VJZDogc3RyaW5nID0gbnVsbDtcbiAgcGF5bWVudEdyb3VwUmVmZXJlbmNlOiBzdHJpbmc7XG4gIHBheW1lbnRSZWZlcmVuY2U6IHN0cmluZztcbiAgcmVmdW5kUmVmZXJlbmNlOiBzdHJpbmc7XG4gIHJlZnVuZGxpc3Rzb3VyY2U6IGFueTtcbiAgdmlld05hbWU6IHN0cmluZztcbiAgaXNUdXJuT2ZmOiBib29sZWFuO1xuICBjYXNlVHlwZTogc3RyaW5nO1xuICBpc09sZFBjaXBhbE9mZjogYm9vbGVhbjtcbiAgaXNOZXdQY2lwYWxPZmY6IGJvb2xlYW47XG4gIHVuUHJvY2Vzc2VkUGF5bWVudDogSUJTUGF5bWVudHMgPSBudWxsO1xuICBpc1JlZnVuZFN0YXR1c1ZpZXc6IGJvb2xlYW47XG4gIGlzUmVkaXJlY3RGcm9tQ2FzZVRyYW5zYWN0aW9uUGFnZTogc3RyaW5nO1xuICBpc0NhbGxGcm9tUmVmdW5kTGlzdDogYm9vbGVhbjtcbiAgaXNGcm9tUmVmdW5kU3RhdHVzUGFnZTogYm9vbGVhbjtcbiAgaXNjYW5jZWxDbGlja2VkIDogYm9vbGVhbjtcbiAgaXNGcm9tUGF5bWVudERldGFpbFBhZ2U6IGJvb2xlYW47XG4gIHBiYVBheU9yZGVyUmVmOiBJUGF5bWVudDtcbiAgaXNUYWtlUGF5bWVudDogYm9vbGVhbjtcblxuICBvcmRlckRldGFpbDogYW55W107XG4gIG9yZGVyUmVmOiBzdHJpbmc7XG4gIG9yZGVyU3RhdHVzOiBzdHJpbmc7XG4gIG9yZGVyUGFydHk6IHN0cmluZztcbiAgb3JkZXJDcmVhdGVkOiBEYXRlO1xuICBvcmRlckNDREV2ZW50OiBzdHJpbmc7XG4gIHNlcnZpY2VSZXF1ZXN0VmFsdWU6IHN0cmluZztcbiAgb3JkZXJBZGRCdG5FbmFibGU6IGJvb2xlYW47XG4gIG9yZGVyRmVlc1RvdGFsOiBudW1iZXIgPSAwLjAwO1xuICBvcmRlclJlbWlzc2lvblRvdGFsOiBudW1iZXIgPSAwLjAwO1xuICBvcmRlclRvdGFsUGF5bWVudHM6IG51bWJlciA9IDAuMDA7XG4gIG9yZGVyUGVuZGluZ1BheW1lbnRzOiBudW1iZXIgPSAwLjAwO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcGF5bWVudExpYlNlcnZpY2U6IFBheW1lbnRMaWJTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgT3JkZXJzbGlzdFNlcnZpY2U6IE9yZGVyc2xpc3RTZXJ2aWNlKSB7IH1cbiAgbmdBZnRlckNvbnRlbnRDaGVja2VkKCk6IHZvaWQge1xuICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuIH0gIFxuXG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5wYXltZW50TGliU2VydmljZS5zZXRBcGlSb290VXJsKHRoaXMuQVBJX1JPT1QpO1xuICAgIHRoaXMucGF5bWVudExpYlNlcnZpY2Uuc2V0QnVsa1NjYW5BcGlSb290VXJsKHRoaXMuQlVMS1NDQU5fQVBJX1JPT1QpO1xuICAgIHRoaXMucGF5bWVudExpYlNlcnZpY2Uuc2V0UmVmdW5kbmRzQXBpUm9vdFVybCh0aGlzLlJFRlVORFNfQVBJX1JPT1QpO1xuICAgIHRoaXMucGF5bWVudExpYlNlcnZpY2Uuc2V0Q2FyZFBheW1lbnRSZXR1cm5VcmwodGhpcy5DQVJEUEFZTUVOVFJFVFVSTlVSTCk7XG5cbiAgICBpZih0aGlzLkxPR0dFRElOVVNFUlJPTEVTLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuT3JkZXJzbGlzdFNlcnZpY2Uuc2V0VXNlclJvbGVzTGlzdCh0aGlzLkxPR0dFRElOVVNFUlJPTEVTKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuUEFZTUVOVF9HUk9VUF9SRUYpIHtcbiAgICAgIHRoaXMucGF5bWVudEdyb3VwUmVmZXJlbmNlID0gdGhpcy5QQVlNRU5UX0dST1VQX1JFRjtcbiAgICB9XG4gICAgaWYgKHRoaXMuRENOX05VTUJFUikge1xuICAgICAgdGhpcy5ic3BheW1lbnRkY24gPSB0aGlzLkRDTl9OVU1CRVI7XG4gICAgfVxuICAgIGlmICh0aGlzLlJFRlVORExJU1QgPT09IFwidHJ1ZVwiKSB7XG4gICAgICB0aGlzLlZJRVcgPSAncmVmdW5kLWxpc3QnO1xuICAgICAgdGhpcy52aWV3TmFtZSA9IHRoaXMuVklFVztcbiAgICB9XG4gICAgaWYgKHRoaXMuVklFVyA9PT0gJ2ZlZS1zdW1tYXJ5Jykge1xuICAgICAgdGhpcy52aWV3TmFtZSA9ICdmZWUtc3VtbWFyeSc7XG4gICAgfSBlbHNlIGlmICh0aGlzLlZJRVcgIT09ICdyZXBvcnRzJyAmJiB0aGlzLlZJRVcgIT09ICdyZWZ1bmQtbGlzdCcpIHtcbiAgICAgIHRoaXMudmlld05hbWUgPSAnY2FzZS10cmFuc2FjdGlvbnMnO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnZpZXdOYW1lID0gdGhpcy5WSUVXO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmlzVGFrZVBheW1lbnQpIHtcbiAgICAgIHRoaXMuVEFLRVBBWU1FTlQgPSB0cnVlO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -174,6 +174,16 @@ export class PaymentViewService {
174
174
  const url = `${this.paymentLibService.API_ROOT}/report/data?date_from=${startDate}&date_to=${endDate}&report_type=${reportName}`;
175
175
  return this.https.get(url, { withCredentials: true }).pipe(catchError(this.errorHandlerService.handleError));
176
176
  }
177
+ /**
178
+ * @param {?} startDate
179
+ * @param {?} endDate
180
+ * @return {?}
181
+ */
182
+ downloadFailureReport(startDate, endDate) {
183
+ /** @type {?} */
184
+ const url = `${this.paymentLibService.API_ROOT}/payment-failures/failure-report?date_from=${startDate}&date_to=${endDate}`;
185
+ return this.https.get(url, { withCredentials: true }).pipe(catchError(this.errorHandlerService.handleError));
186
+ }
177
187
  /**
178
188
  * @return {?}
179
189
  */
@@ -233,6 +243,15 @@ export class PaymentViewService {
233
243
  postRefundRetroRemission(body) {
234
244
  return this.https.post(`${this.paymentLibService.API_ROOT}/refund-retro-remission`, body).pipe(catchError(this.errorHandlerService.handleError));
235
245
  }
246
+ /**
247
+ * @param {?} paymentReference
248
+ * @return {?}
249
+ */
250
+ getPaymentFailure(paymentReference) {
251
+ return this.https.get(`${this.paymentLibService.API_ROOT}/payment-failures/${paymentReference}`, {
252
+ withCredentials: true
253
+ }).pipe(catchError(this.errorHandlerService.handleError));
254
+ }
236
255
  }
237
256
  PaymentViewService.decorators = [
238
257
  { type: Injectable, args: [{
@@ -285,4 +304,4 @@ if (false) {
285
304
  */
286
305
  PaymentViewService.prototype.paymentLibService;
287
306
  }
288
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudC12aWV3LnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AaG1jdHMvY2NwYXktd2ViLWNvbXBvbmVudC8iLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlcy9wYXltZW50LXZpZXcvcGF5bWVudC12aWV3LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFVBQVUsRUFBZSxNQUFNLHNCQUFzQixDQUFDO0FBSS9ELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFXaEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7OztBQVl2QyxNQUFNLE9BQU8sa0JBQWtCOzs7Ozs7OztJQUs3QixZQUFvQixJQUFnQixFQUNoQixLQUE2QixFQUM3QixNQUFxQixFQUNyQixtQkFBd0MsRUFDeEMsaUJBQW9DO1FBSnBDLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsVUFBSyxHQUFMLEtBQUssQ0FBd0I7UUFDN0IsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUNyQix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFSaEQsZUFBVSxHQUFJLG1CQUF1QyxJQUFJLGVBQWUsQ0FBQyxFQUFFLENBQUMsRUFBQSxDQUFDO0lBUXpCLENBQUM7Ozs7OztJQUU3RCxpQkFBaUIsQ0FBQyxnQkFBd0IsRUFBRSxhQUFxQjtRQUMvRCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyw4Q0FBOEMsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBRW5GLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQVcsYUFBYSxLQUFLLE1BQU0sSUFBSSxhQUFhLEtBQUssTUFBTSxJQUFJLGFBQWEsS0FBSyxRQUFRLElBQUksYUFBYSxLQUFLLGNBQWMsQ0FBQyxDQUFDO1lBQ2pKLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsa0JBQWtCLGdCQUFnQixFQUFFLENBQUMsQ0FBQztZQUN4RSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLDRCQUE0QixnQkFBZ0IsRUFBRSxFQUFFO1lBQ3BGLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUM7YUFDRCxJQUFJLENBQ0gsVUFBVSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsQ0FDakQsQ0FBQztJQUNOLENBQUM7Ozs7O0lBRUQsc0JBQXNCLENBQUMscUJBQTZCO1FBQ2xELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLG1EQUFtRCxFQUFFLHFCQUFxQixDQUFDLENBQUM7UUFFN0YsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBVyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLG1CQUFtQixxQkFBcUIsRUFBRSxFQUFFO1lBQzNHLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUM7YUFDQyxJQUFJLENBQ0gsVUFBVSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsQ0FDakQsQ0FBQztJQUNOLENBQUM7Ozs7O0lBQ0QsMEJBQTBCLENBQUMsZ0JBQXdCO1FBQ2pELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLG1EQUFtRCxFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFFeEYsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBVyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLHFDQUFxQyxnQkFBZ0IsRUFBRSxFQUFFO1lBQ3hILGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUM7YUFDQyxJQUFJLENBQ0gsVUFBVSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsQ0FDakQsQ0FBQztJQUNOLENBQUM7Ozs7SUFDRCxvQkFBb0I7O2NBQ1osR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsZUFBZTtRQUM3RCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FDckQsVUFBVSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsQ0FDakQsQ0FBQztJQUNOLENBQUM7Ozs7OztJQUVELHVCQUF1QixDQUFDLFVBQWtCLEVBQUUsSUFBZ0M7O2NBQ3BFLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLG9CQUFvQixVQUFVLGdCQUFnQjs7Y0FDdEYsSUFBSSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztRQUM3RSxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsR0FBRyxJQUFJLFVBQVUsQ0FBQztRQUN2QyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQ3BDLFVBQVUsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxDQUFDLENBQ2pELENBQUM7SUFDSixDQUFDOzs7Ozs7SUFFRCxxQkFBcUIsQ0FBQyxVQUFrQixFQUFFLElBQStCOztZQUNuRSxTQUFTLEdBQUcsV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztRQUMzRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxTQUFTLENBQUM7O2NBQzlCLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLG9CQUFvQixVQUFVLGVBQWU7UUFDM0YsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDcEMsQ0FBQzs7Ozs7SUFFRCxjQUFjLENBQUMsSUFBNEI7UUFDekMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLG9DQUFvQyxFQUFFLElBQUksQ0FBQyxDQUFDLElBQUksQ0FDdkcsVUFBVSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsQ0FDakQsQ0FBQztJQUNKLENBQUM7Ozs7O0lBQ0QsMEJBQTBCLENBQUMsSUFBaUM7UUFDMUQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLHNCQUFzQixFQUFFLElBQUksQ0FBQyxDQUFDLElBQUksQ0FDekYsVUFBVSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsQ0FDakQsQ0FBQztJQUNKLENBQUM7Ozs7O0lBQ0QseUJBQXlCLENBQUMsSUFBZ0M7UUFDeEQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLHNCQUFzQixFQUFFLElBQUksQ0FBQyxDQUFDLElBQUksQ0FDekYsVUFBVSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsQ0FDakQsQ0FBQztJQUNKLENBQUM7Ozs7O0lBQ0Qsd0JBQXdCLENBQUMsSUFBZ0M7UUFDdkQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLHNCQUFzQixFQUFFLElBQUksQ0FBQyxDQUFDLElBQUksQ0FDekYsVUFBVSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsQ0FDakQsQ0FBQztJQUNKLENBQUM7Ozs7Ozs7SUFFRCw4QkFBOEIsQ0FBQyxxQkFBNkIsRUFBRSxLQUFhLEVBQUUsSUFBeUI7UUFDcEcsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLG1CQUFtQixxQkFBcUIsU0FBUyxLQUFLLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQ3RJLFVBQVUsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxDQUFDLENBQ2pELENBQUM7SUFDSixDQUFDOzs7OztJQUVELHlCQUF5QixDQUFDLEtBQWE7UUFDakMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsc0RBQXNELEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDcEYsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLFNBQVMsS0FBSyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQy9FLFVBQVUsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxDQUFDLENBQ2pELENBQUM7SUFDSixDQUFDOzs7Ozs7SUFDRCxtQkFBbUIsQ0FBQyxJQUE0QixFQUFFLGVBQXVCO1FBQ3ZFLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxtQkFBbUIsZUFBZSxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQ3JILFVBQVUsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxDQUFDLENBQ2pELENBQUM7SUFDSixDQUFDOzs7Ozs7SUFFRCwwQkFBMEIsQ0FBQyxJQUEwQixFQUFFLGVBQXVCO1FBQzVFLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxtQkFBbUIsZUFBZSwwQkFBMEIsRUFBRSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQy9ILFVBQVUsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxDQUFDLENBQ2pELENBQUM7SUFDSixDQUFDOzs7Ozs7O0lBQ0Qsc0JBQXNCLENBQUMsVUFBa0IsRUFBRSxTQUFpQixFQUFFLE9BQWM7O2NBQ3BFLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLDBCQUEwQixTQUFTLFlBQVksT0FBTyxnQkFBZ0IsVUFBVSxFQUFFO1FBQ2hJLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUNoSCxDQUFDOzs7O0lBQ0QsWUFBWTtRQUNWLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsdUNBQXVDLEVBQUUsRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQ3BKLENBQUM7Ozs7SUFDRCxTQUFTO1FBQ1AsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQywwQ0FBMEMsRUFBRSxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBRSxVQUFVLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFDdkosQ0FBQzs7Ozs7SUFDRCxlQUFlLENBQUMsVUFBa0I7O2NBQzFCLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLGlDQUFpQyxVQUFVLEVBQUU7UUFDM0YsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQ2hILENBQUM7Ozs7O0lBRUQsYUFBYSxDQUFDLGNBQW9DO1FBQ2hELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLGNBQWMsQ0FBQyxDQUFDLENBQUM7SUFDNUQsQ0FBQzs7OztJQUNDLGFBQWE7UUFDWCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQzs7Ozs7O0lBR0QsaUJBQWlCLENBQUMsSUFBOEI7UUFDOUMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLHFCQUFxQixFQUFFLElBQUksQ0FBQyxDQUFDLElBQUksQ0FDeEYsVUFBVSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsQ0FDakQsQ0FBQztJQUNKLENBQUM7Ozs7Ozs7O0lBR0QsbUNBQW1DLENBQUMscUJBQTZCLEVBQUUsS0FBYSxFQUFFLElBQThCO1FBQzlHLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxtQkFBbUIscUJBQXFCLFNBQVMsS0FBSyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQzNJLFVBQVUsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxDQUFDLENBQ2pELENBQUM7SUFDSixDQUFDOzs7OztJQUVELHdCQUF3QixDQUFDLElBQWtDO1FBQ3pELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSx5QkFBeUIsRUFBRSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQzVGLFVBQVUsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxDQUFDLENBQ2pELENBQUM7SUFDSixDQUFDOzs7WUExSkYsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7O1lBOUJRLFVBQVU7WUFLVixzQkFBc0I7WUFHdEIsYUFBYTtZQUZiLG1CQUFtQjtZQUZwQixpQkFBaUI7Ozs7Ozs7O0lBNEJ2Qix3Q0FBcUY7Ozs7O0lBRXJGLGtDQUFtQjs7Ozs7SUFFUCxrQ0FBd0I7Ozs7O0lBQ3hCLG1DQUFxQzs7Ozs7SUFDckMsb0NBQTZCOzs7OztJQUM3QixpREFBZ0Q7Ozs7O0lBQ2hELCtDQUE0QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMvaW50ZXJuYWwvT2JzZXJ2YWJsZSc7XG5pbXBvcnQgeyB2NCBhcyB1dWlkdjQgfSBmcm9tICd1dWlkJztcbmltcG9ydCB7SVBheW1lbnR9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvSVBheW1lbnQnO1xuaW1wb3J0IHtQYXltZW50TGliU2VydmljZX0gZnJvbSAnLi4vLi4vcGF5bWVudC1saWIuc2VydmljZSc7XG5pbXBvcnQgeyBXZWJDb21wb25lbnRIdHRwQ2xpZW50IH0gZnJvbSAnLi4vc2hhcmVkL2h0dHBjbGllbnQvd2ViY29tcG9uZW50Lmh0dHAuY2xpZW50JztcbmltcG9ydCB7IEVycm9ySGFuZGxlclNlcnZpY2UgfSBmcm9tICcuLi9zaGFyZWQvZXJyb3ItaGFuZGxlci5zZXJ2aWNlJztcbmltcG9ydCB7IGNhdGNoRXJyb3IgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBMb2dnZXJTZXJ2aWNlIH0gZnJvbSAnLi4vc2hhcmVkL2xvZ2dlci9sb2dnZXIuc2VydmljZSc7XG5pbXBvcnQge0lQYXltZW50R3JvdXB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvSVBheW1lbnRHcm91cCc7XG5pbXBvcnQgeyBBZGRSZW1pc3Npb25SZXF1ZXN0IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9BZGRSZW1pc3Npb25SZXF1ZXN0JztcbmltcG9ydCB7IFBheW1lbnRUb1BheWh1YlJlcXVlc3QgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL1BheW1lbnRUb1BheWh1YlJlcXVlc3QnO1xuaW1wb3J0IHsgUGF5aHViQW50ZW5uYVJlcXVlc3QgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL1BheWh1YkFudGVubmFSZXF1ZXN0JztcbmltcG9ydCB7IFVuaWRlbnRpZmllZFBheW1lbnRzUmVxdWVzdCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvVW5pZGVudGlmaWVkUGF5bWVudHNSZXF1ZXN0JztcbmltcG9ydCB7IFVuc29saWNpdGVkUGF5bWVudHNSZXF1ZXN0IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9VbnNvbGljaXRlZFBheW1lbnRzUmVxdWVzdCc7XG5pbXBvcnQgeyBNZXRhIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBBbGxvY2F0ZVBheW1lbnRSZXF1ZXN0IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9BbGxvY2F0ZVBheW1lbnRSZXF1ZXN0JztcbmltcG9ydCB7IElBbGxvY2F0aW9uUGF5bWVudHNSZXF1ZXN0IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9JQWxsb2NhdGlvblBheW1lbnRzUmVxdWVzdCc7XG5pbXBvcnQge0lPcmRlclJlZmVyZW5jZUZlZX0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9JT3JkZXJSZWZlcmVuY2VGZWUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBJc2VydmljZVJlcXVlc3RQYmFQYXltZW50IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9Jc2VydmljZVJlcXVlc3RQYmFQYXltZW50JztcbmltcG9ydCB7IElzZXJ2aWNlUmVxdWVzdENhcmRQYXltZW50IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9Jc2VydmljZVJlcXVlc3RDYXJkUGF5bWVudCc7XG5pbXBvcnQgeyBSZWZ1bmRzUmVxdWVzdCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvUmVmdW5kc1JlcXVlc3QnO1xuaW1wb3J0IHsgQWRkUmV0cm9SZW1pc3Npb25SZXF1ZXN0IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9BZGRSZXRyb1JlbWlzc2lvblJlcXVlc3QnO1xuaW1wb3J0IHsgUG9zdFJlZnVuZFJldHJvUmVtaXNzaW9uIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9Qb3N0UmVmdW5kUmV0cm9SZW1pc3Npb24nO1xuaW1wb3J0IHsgUG9zdElzc3VlUmVmdW5kUmV0cm9SZW1pc3Npb24gfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL1Bvc3RJc3N1ZVJlZnVuZFJldHJvUmVtaXNzaW9uJztcbmltcG9ydCB7IGVycm9yIH0gZnJvbSAnQGFuZ3VsYXIvY29tcGlsZXIvc3JjL3V0aWwnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBQYXltZW50Vmlld1NlcnZpY2Uge1xuICBwcml2YXRlIG9yZGVyc0xpc3QgID0gPEJlaGF2aW9yU3ViamVjdDxJT3JkZXJSZWZlcmVuY2VGZWVbXT4+bmV3IEJlaGF2aW9yU3ViamVjdChbXSk7XG5cbiAgcHJpdmF0ZSBtZXRhOiBNZXRhO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBodHRwczogV2ViQ29tcG9uZW50SHR0cENsaWVudCxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBsb2dnZXI6IExvZ2dlclNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgZXJyb3JIYW5kbGVyU2VydmljZTogRXJyb3JIYW5kbGVyU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBwYXltZW50TGliU2VydmljZTogUGF5bWVudExpYlNlcnZpY2UpIHsgfVxuXG4gIGdldFBheW1lbnREZXRhaWxzKHBheW1lbnRSZWZlcmVuY2U6IHN0cmluZywgcGF5bWVudE1ldGhvZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxJUGF5bWVudD4ge1xuICAgIHRoaXMubG9nZ2VyLmluZm8oJ1BheW1lbnQtdmlldy1zZXJ2aWNlIGdldFBheW1lbnREZXRhaWxzIGZvcjogJywgcGF5bWVudFJlZmVyZW5jZSk7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxJUGF5bWVudD4ocGF5bWVudE1ldGhvZCA9PT0gJ2NhcmQnIHx8IHBheW1lbnRNZXRob2QgPT09ICdjYXNoJyB8fCBwYXltZW50TWV0aG9kID09PSAnY2hlcXVlJyB8fCBwYXltZW50TWV0aG9kID09PSAncG9zdGFsIG9yZGVyJyA/XG4gICAgICAgICAgYCR7dGhpcy5wYXltZW50TGliU2VydmljZS5BUElfUk9PVH0vY2FyZC1wYXltZW50cy8ke3BheW1lbnRSZWZlcmVuY2V9YCA6XG4gICAgICAgICAgYCR7dGhpcy5wYXltZW50TGliU2VydmljZS5BUElfUk9PVH0vY3JlZGl0LWFjY291bnQtcGF5bWVudHMvJHtwYXltZW50UmVmZXJlbmNlfWAsIHtcbiAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlXG4gICAgICB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIGNhdGNoRXJyb3IodGhpcy5lcnJvckhhbmRsZXJTZXJ2aWNlLmhhbmRsZUVycm9yKVxuICAgICAgKTtcbiAgfVxuXG4gIGdldFBheW1lbnRHcm91cERldGFpbHMocGF5bWVudEdyb3VwUmVmZXJlbmNlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPElQYXltZW50R3JvdXA+IHtcbiAgICB0aGlzLmxvZ2dlci5pbmZvKCdQYXltZW50LXZpZXctc2VydmljZSBnZXRQYXltZW50R3JvdXBEZXRhaWxzIGZvcjogJywgcGF5bWVudEdyb3VwUmVmZXJlbmNlKTtcblxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PElQYXltZW50PihgJHt0aGlzLnBheW1lbnRMaWJTZXJ2aWNlLkFQSV9ST09UfS9wYXltZW50LWdyb3Vwcy8ke3BheW1lbnRHcm91cFJlZmVyZW5jZX1gLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWVcbiAgICB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIGNhdGNoRXJyb3IodGhpcy5lcnJvckhhbmRsZXJTZXJ2aWNlLmhhbmRsZUVycm9yKVxuICAgICAgKTtcbiAgfVxuICBnZXRBcHBvcnRpb25QYXltZW50RGV0YWlscyhwYXltZW50UmVmZXJlbmNlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPElQYXltZW50R3JvdXA+IHtcbiAgICB0aGlzLmxvZ2dlci5pbmZvKCdQYXltZW50LXZpZXctc2VydmljZSBnZXRQYXltZW50R3JvdXBEZXRhaWxzIGZvcjogJywgcGF5bWVudFJlZmVyZW5jZSk7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxJUGF5bWVudD4oYCR7dGhpcy5wYXltZW50TGliU2VydmljZS5BUElfUk9PVH0vcGF5bWVudC1ncm91cHMvZmVlLXBheS1hcHBvcnRpb24vJHtwYXltZW50UmVmZXJlbmNlfWAsIHtcbiAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZVxuICAgIH0pXG4gICAgICAucGlwZShcbiAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmVycm9ySGFuZGxlclNlcnZpY2UuaGFuZGxlRXJyb3IpXG4gICAgICApO1xuICB9XG4gIGdldFBCQWFjY291bnREZXRhaWxzKCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5wYXltZW50TGliU2VydmljZS5BUElfUk9PVH0vcGJhLWFjY291bnRzYDtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldCh1cmwsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pLnBpcGUoXG4gICAgICAgIGNhdGNoRXJyb3IodGhpcy5lcnJvckhhbmRsZXJTZXJ2aWNlLmhhbmRsZUVycm9yKVxuICAgICAgKTtcbiAgfVxuXG4gIHBvc3RXYXlzMlBheUNhcmRQYXltZW50KHNlcnZpY2VSZWY6IHN0cmluZywgYm9keTogSXNlcnZpY2VSZXF1ZXN0Q2FyZFBheW1lbnQpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IHVybCA9IGAke3RoaXMucGF5bWVudExpYlNlcnZpY2UuQVBJX1JPT1R9L3NlcnZpY2UtcmVxdWVzdC8ke3NlcnZpY2VSZWZ9L2NhcmQtcGF5bWVudHNgO1xuICAgIGNvbnN0IHJ1cmwgPSB0aGlzLnBheW1lbnRMaWJTZXJ2aWNlLkNBUkRQQVlNRU5UUkVUVVJOVVJMLnJlcGxhY2UoJy5wcm9kJywgJycpO1xuICAgIGJvZHlbJ3JldHVybi11cmwnXSA9IGAke3J1cmx9L3BheW1lbnRgO1xuICAgIHJldHVybiB0aGlzLmh0dHBzLnBvc3QodXJsLCBib2R5KS5waXBlKFxuICAgICAgY2F0Y2hFcnJvcih0aGlzLmVycm9ySGFuZGxlclNlcnZpY2UuaGFuZGxlRXJyb3IpXG4gICAgKTtcbiAgfVxuICBcbiAgcG9zdFBCQWFjY291bnRQYXltZW50KHNlcnZpY2VSZWY6IHN0cmluZywgYm9keTogSXNlcnZpY2VSZXF1ZXN0UGJhUGF5bWVudCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgbGV0IHJhbmRvbUtleSA9ICdpZGFtLWtleS0nICsgTWF0aC5yYW5kb20oKS50b1N0cmluZygpLnNwbGl0KCcuJykuam9pbignLScpO1xuICAgIGJvZHlbJ2lkZW1wb3RlbmN5X2tleSddID0gcmFuZG9tS2V5OyBcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLnBheW1lbnRMaWJTZXJ2aWNlLkFQSV9ST09UfS9zZXJ2aWNlLXJlcXVlc3QvJHtzZXJ2aWNlUmVmfS9wYmEtcGF5bWVudHNgO1xuICAgIHJldHVybiB0aGlzLmh0dHBzLnBvc3QodXJsLCBib2R5KTtcbiAgfVxuXG4gIHBvc3RCU1BheW1lbnRzKGJvZHk6IEFsbG9jYXRlUGF5bWVudFJlcXVlc3QpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBzLnBvc3QoYCR7dGhpcy5wYXltZW50TGliU2VydmljZS5BUElfUk9PVH0vcGF5bWVudC1ncm91cHMvYnVsay1zY2FuLXBheW1lbnRzYCwgYm9keSkucGlwZShcbiAgICAgIGNhdGNoRXJyb3IodGhpcy5lcnJvckhhbmRsZXJTZXJ2aWNlLmhhbmRsZUVycm9yKVxuICAgICk7XG4gIH1cbiAgcG9zdEJTVW5pZGVudGlmaWVkUGF5bWVudHMoYm9keTogVW5pZGVudGlmaWVkUGF5bWVudHNSZXF1ZXN0KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwcy5wb3N0KGAke3RoaXMucGF5bWVudExpYlNlcnZpY2UuQVBJX1JPT1R9L3BheW1lbnQtYWxsb2NhdGlvbnNgLCBib2R5KS5waXBlKFxuICAgICAgY2F0Y2hFcnJvcih0aGlzLmVycm9ySGFuZGxlclNlcnZpY2UuaGFuZGxlRXJyb3IpXG4gICAgKTtcbiAgfVxuICBwb3N0QlNVbnNvbGljaXRlZFBheW1lbnRzKGJvZHk6IFVuc29saWNpdGVkUGF5bWVudHNSZXF1ZXN0KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwcy5wb3N0KGAke3RoaXMucGF5bWVudExpYlNlcnZpY2UuQVBJX1JPT1R9L3BheW1lbnQtYWxsb2NhdGlvbnNgLCBib2R5KS5waXBlKFxuICAgICAgY2F0Y2hFcnJvcih0aGlzLmVycm9ySGFuZGxlclNlcnZpY2UuaGFuZGxlRXJyb3IpXG4gICAgKTtcbiAgfVxuICBwb3N0QlNBbGxvY2F0aW9uUGF5bWVudHMoYm9keTogSUFsbG9jYXRpb25QYXltZW50c1JlcXVlc3QpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBzLnBvc3QoYCR7dGhpcy5wYXltZW50TGliU2VydmljZS5BUElfUk9PVH0vcGF5bWVudC1hbGxvY2F0aW9uc2AsIGJvZHkpLnBpcGUoXG4gICAgICBjYXRjaEVycm9yKHRoaXMuZXJyb3JIYW5kbGVyU2VydmljZS5oYW5kbGVFcnJvcilcbiAgICApO1xuICB9XG5cbiAgcG9zdFBheW1lbnRHcm91cFdpdGhSZW1pc3Npb25zKHBheW1lbnRHcm91cFJlZmVyZW5jZTogc3RyaW5nLCBmZWVJZDogbnVtYmVyLCBib2R5OiBBZGRSZW1pc3Npb25SZXF1ZXN0KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwcy5wb3N0KGAke3RoaXMucGF5bWVudExpYlNlcnZpY2UuQVBJX1JPT1R9L3BheW1lbnQtZ3JvdXBzLyR7cGF5bWVudEdyb3VwUmVmZXJlbmNlfS9mZWVzLyR7ZmVlSWR9L3JlbWlzc2lvbnNgLCBib2R5KS5waXBlKFxuICAgICAgY2F0Y2hFcnJvcih0aGlzLmVycm9ySGFuZGxlclNlcnZpY2UuaGFuZGxlRXJyb3IpXG4gICAgKTtcbiAgfVxuXG4gIGRlbGV0ZUZlZUZyb21QYXltZW50R3JvdXAoZmVlSWQ6IG51bWJlcik6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmluZm8oJ1BheW1lbnQtdmlldy1zZXJ2aWNlIGRlbGV0ZUZlZUZyb21QYXltZW50R3JvdXAgZm9yOiAnLCBmZWVJZCk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cHMuZGVsZXRlKGAke3RoaXMucGF5bWVudExpYlNlcnZpY2UuQVBJX1JPT1R9L2ZlZXMvJHtmZWVJZH1gKS5waXBlKFxuICAgICAgY2F0Y2hFcnJvcih0aGlzLmVycm9ySGFuZGxlclNlcnZpY2UuaGFuZGxlRXJyb3IpXG4gICAgKTtcbiAgfVxuICBwb3N0UGF5bWVudFRvUGF5SHViKGJvZHk6IFBheW1lbnRUb1BheWh1YlJlcXVlc3QsIHBheW1lbnRHcm91cFJlZjogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwcy5wb3N0KGAke3RoaXMucGF5bWVudExpYlNlcnZpY2UuQVBJX1JPT1R9L3BheW1lbnQtZ3JvdXBzLyR7cGF5bWVudEdyb3VwUmVmfS9jYXJkLXBheW1lbnRzYCwgYm9keSkucGlwZShcbiAgICAgIGNhdGNoRXJyb3IodGhpcy5lcnJvckhhbmRsZXJTZXJ2aWNlLmhhbmRsZUVycm9yKVxuICAgICk7XG4gIH1cblxuICBwb3N0UGF5bWVudEFudGVubmFUb1BheUh1Yihib2R5OiBQYXlodWJBbnRlbm5hUmVxdWVzdCwgcGF5bWVudEdyb3VwUmVmOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBzLnBvc3QoYCR7dGhpcy5wYXltZW50TGliU2VydmljZS5BUElfUk9PVH0vcGF5bWVudC1ncm91cHMvJHtwYXltZW50R3JvdXBSZWZ9L3RlbGVwaG9ueS1jYXJkLXBheW1lbnRzYCwgYm9keSkucGlwZShcbiAgICAgIGNhdGNoRXJyb3IodGhpcy5lcnJvckhhbmRsZXJTZXJ2aWNlLmhhbmRsZUVycm9yKVxuICAgICk7XG4gIH1cbiAgZG93bmxvYWRTZWxlY3RlZFJlcG9ydChyZXBvcnROYW1lOiBzdHJpbmcsIHN0YXJ0RGF0ZTogc3RyaW5nLCBlbmREYXRlOnN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5wYXltZW50TGliU2VydmljZS5BUElfUk9PVH0vcmVwb3J0L2RhdGE/ZGF0ZV9mcm9tPSR7c3RhcnREYXRlfSZkYXRlX3RvPSR7ZW5kRGF0ZX0mcmVwb3J0X3R5cGU9JHtyZXBvcnROYW1lfWA7XG4gICAgcmV0dXJuIHRoaXMuaHR0cHMuZ2V0KHVybCwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSkucGlwZSggY2F0Y2hFcnJvcih0aGlzLmVycm9ySGFuZGxlclNlcnZpY2UuaGFuZGxlRXJyb3IpKTtcbiAgfVxuICBnZXRCU2ZlYXR1cmUoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwcy5nZXQoJ2FwaS9wYXltZW50LWhpc3RvcnkvYnVsay1zY2FuLWZlYXR1cmUnLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KS5waXBlKCBjYXRjaEVycm9yKHRoaXMuZXJyb3JIYW5kbGVyU2VydmljZS5oYW5kbGVFcnJvcikpO1xuICB9XG4gIGdldFNpdGVJRCgpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBzLmdldCgnYXBpL3BheW1lbnQtaGlzdG9yeS9yZWZkYXRhL2xlZ2FjeS1zaXRlcycsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pLnBpcGUoIGNhdGNoRXJyb3IodGhpcy5lcnJvckhhbmRsZXJTZXJ2aWNlLmhhbmRsZUVycm9yKSk7XG4gIH1cbiAgZ2V0UGFydHlEZXRhaWxzKGNhc2VOdW1iZXI6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5wYXltZW50TGliU2VydmljZS5BUElfUk9PVH0vY2FzZS1wYXltZW50LW9yZGVycz9jYXNlX2lkcz0ke2Nhc2VOdW1iZXJ9YDtcbiAgICByZXR1cm4gdGhpcy5odHRwcy5nZXQodXJsLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KS5waXBlKCBjYXRjaEVycm9yKHRoaXMuZXJyb3JIYW5kbGVyU2VydmljZS5oYW5kbGVFcnJvcikpO1xuICB9XG4gIFxuICBzZXRPcmRlcnNMaXN0KG9yZGVyTGV2ZWxGZWVzOiBJT3JkZXJSZWZlcmVuY2VGZWVbXSk6IHZvaWQge1xuICAgIHRoaXMub3JkZXJzTGlzdC5uZXh0KE9iamVjdC5hc3NpZ24oW10sIG9yZGVyTGV2ZWxGZWVzKSk7XG59XG4gIGdldE9yZGVyc0xpc3QoKSB7XG4gICAgcmV0dXJuIHRoaXMub3JkZXJzTGlzdDtcbiAgfVxuXG4gIC8vaXNzdWUgcmVmdW5kXG4gIHBvc3RSZWZ1bmRzUmVhc29uKGJvZHk6IFBvc3RSZWZ1bmRSZXRyb1JlbWlzc2lvbik6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cHMucG9zdChgJHt0aGlzLnBheW1lbnRMaWJTZXJ2aWNlLkFQSV9ST09UfS9yZWZ1bmQtZm9yLXBheW1lbnRgLCBib2R5KS5waXBlKFxuICAgICAgY2F0Y2hFcnJvcih0aGlzLmVycm9ySGFuZGxlclNlcnZpY2UuaGFuZGxlRXJyb3IpXG4gICAgKTtcbiAgfVxuXG4gIC8vIHJldHJvIHJlbWlzc2lvbnNcbiAgcG9zdFBheW1lbnRHcm91cFdpdGhSZXRyb1JlbWlzc2lvbnMocGF5bWVudEdyb3VwUmVmZXJlbmNlOiBzdHJpbmcsIGZlZUlkOiBudW1iZXIsIGJvZHk6IEFkZFJldHJvUmVtaXNzaW9uUmVxdWVzdCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cHMucG9zdChgJHt0aGlzLnBheW1lbnRMaWJTZXJ2aWNlLkFQSV9ST09UfS9wYXltZW50LWdyb3Vwcy8ke3BheW1lbnRHcm91cFJlZmVyZW5jZX0vZmVlcy8ke2ZlZUlkfS9yZXRyby1yZW1pc3Npb25gLCBib2R5KS5waXBlKFxuICAgICAgY2F0Y2hFcnJvcih0aGlzLmVycm9ySGFuZGxlclNlcnZpY2UuaGFuZGxlRXJyb3IpXG4gICAgKTtcbiAgfVxuXG4gIHBvc3RSZWZ1bmRSZXRyb1JlbWlzc2lvbihib2R5OlBvc3RJc3N1ZVJlZnVuZFJldHJvUmVtaXNzaW9uKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cHMucG9zdChgJHt0aGlzLnBheW1lbnRMaWJTZXJ2aWNlLkFQSV9ST09UfS9yZWZ1bmQtcmV0cm8tcmVtaXNzaW9uYCwgYm9keSkucGlwZShcbiAgICAgIGNhdGNoRXJyb3IodGhpcy5lcnJvckhhbmRsZXJTZXJ2aWNlLmhhbmRsZUVycm9yKVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
307
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudC12aWV3LnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AaG1jdHMvY2NwYXktd2ViLWNvbXBvbmVudC8iLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlcy9wYXltZW50LXZpZXcvcGF5bWVudC12aWV3LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFVBQVUsRUFBZSxNQUFNLHNCQUFzQixDQUFDO0FBSS9ELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFXaEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7OztBQVl2QyxNQUFNLE9BQU8sa0JBQWtCOzs7Ozs7OztJQUs3QixZQUFvQixJQUFnQixFQUNoQixLQUE2QixFQUM3QixNQUFxQixFQUNyQixtQkFBd0MsRUFDeEMsaUJBQW9DO1FBSnBDLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsVUFBSyxHQUFMLEtBQUssQ0FBd0I7UUFDN0IsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUNyQix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFSaEQsZUFBVSxHQUFJLG1CQUF1QyxJQUFJLGVBQWUsQ0FBQyxFQUFFLENBQUMsRUFBQSxDQUFDO0lBUXpCLENBQUM7Ozs7OztJQUU3RCxpQkFBaUIsQ0FBQyxnQkFBd0IsRUFBRSxhQUFxQjtRQUMvRCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyw4Q0FBOEMsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBRW5GLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQVcsYUFBYSxLQUFLLE1BQU0sSUFBSSxhQUFhLEtBQUssTUFBTSxJQUFJLGFBQWEsS0FBSyxRQUFRLElBQUksYUFBYSxLQUFLLGNBQWMsQ0FBQyxDQUFDO1lBQ2pKLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsa0JBQWtCLGdCQUFnQixFQUFFLENBQUMsQ0FBQztZQUN4RSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLDRCQUE0QixnQkFBZ0IsRUFBRSxFQUFFO1lBQ3BGLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUM7YUFDRCxJQUFJLENBQ0gsVUFBVSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsQ0FDakQsQ0FBQztJQUNOLENBQUM7Ozs7O0lBRUQsc0JBQXNCLENBQUMscUJBQTZCO1FBQ2xELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLG1EQUFtRCxFQUFFLHFCQUFxQixDQUFDLENBQUM7UUFFN0YsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBVyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLG1CQUFtQixxQkFBcUIsRUFBRSxFQUFFO1lBQzNHLGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUM7YUFDQyxJQUFJLENBQ0gsVUFBVSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsQ0FDakQsQ0FBQztJQUNOLENBQUM7Ozs7O0lBQ0QsMEJBQTBCLENBQUMsZ0JBQXdCO1FBQ2pELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLG1EQUFtRCxFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFFeEYsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBVyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLHFDQUFxQyxnQkFBZ0IsRUFBRSxFQUFFO1lBQ3hILGVBQWUsRUFBRSxJQUFJO1NBQ3RCLENBQUM7YUFDQyxJQUFJLENBQ0gsVUFBVSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsQ0FDakQsQ0FBQztJQUNOLENBQUM7Ozs7SUFDRCxvQkFBb0I7O2NBQ1osR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsZUFBZTtRQUM3RCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FDckQsVUFBVSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsQ0FDakQsQ0FBQztJQUNOLENBQUM7Ozs7OztJQUVELHVCQUF1QixDQUFDLFVBQWtCLEVBQUUsSUFBZ0M7O2NBQ3BFLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLG9CQUFvQixVQUFVLGdCQUFnQjs7Y0FDdEYsSUFBSSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztRQUM3RSxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsR0FBRyxJQUFJLFVBQVUsQ0FBQztRQUN2QyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQ3BDLFVBQVUsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxDQUFDLENBQ2pELENBQUM7SUFDSixDQUFDOzs7Ozs7SUFFRCxxQkFBcUIsQ0FBQyxVQUFrQixFQUFFLElBQStCOztZQUNuRSxTQUFTLEdBQUcsV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztRQUMzRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxTQUFTLENBQUM7O2NBQzlCLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLG9CQUFvQixVQUFVLGVBQWU7UUFDM0YsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDcEMsQ0FBQzs7Ozs7SUFFRCxjQUFjLENBQUMsSUFBNEI7UUFDekMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLG9DQUFvQyxFQUFFLElBQUksQ0FBQyxDQUFDLElBQUksQ0FDdkcsVUFBVSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsQ0FDakQsQ0FBQztJQUNKLENBQUM7Ozs7O0lBQ0QsMEJBQTBCLENBQUMsSUFBaUM7UUFDMUQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLHNCQUFzQixFQUFFLElBQUksQ0FBQyxDQUFDLElBQUksQ0FDekYsVUFBVSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsQ0FDakQsQ0FBQztJQUNKLENBQUM7Ozs7O0lBQ0QseUJBQXlCLENBQUMsSUFBZ0M7UUFDeEQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLHNCQUFzQixFQUFFLElBQUksQ0FBQyxDQUFDLElBQUksQ0FDekYsVUFBVSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsQ0FDakQsQ0FBQztJQUNKLENBQUM7Ozs7O0lBQ0Qsd0JBQXdCLENBQUMsSUFBZ0M7UUFDdkQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLHNCQUFzQixFQUFFLElBQUksQ0FBQyxDQUFDLElBQUksQ0FDekYsVUFBVSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsQ0FDakQsQ0FBQztJQUNKLENBQUM7Ozs7Ozs7SUFFRCw4QkFBOEIsQ0FBQyxxQkFBNkIsRUFBRSxLQUFhLEVBQUUsSUFBeUI7UUFDcEcsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLG1CQUFtQixxQkFBcUIsU0FBUyxLQUFLLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQ3RJLFVBQVUsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxDQUFDLENBQ2pELENBQUM7SUFDSixDQUFDOzs7OztJQUVELHlCQUF5QixDQUFDLEtBQWE7UUFDakMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsc0RBQXNELEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDcEYsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLFNBQVMsS0FBSyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQy9FLFVBQVUsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxDQUFDLENBQ2pELENBQUM7SUFDSixDQUFDOzs7Ozs7SUFDRCxtQkFBbUIsQ0FBQyxJQUE0QixFQUFFLGVBQXVCO1FBQ3ZFLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxtQkFBbUIsZUFBZSxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQ3JILFVBQVUsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxDQUFDLENBQ2pELENBQUM7SUFDSixDQUFDOzs7Ozs7SUFFRCwwQkFBMEIsQ0FBQyxJQUEwQixFQUFFLGVBQXVCO1FBQzVFLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxtQkFBbUIsZUFBZSwwQkFBMEIsRUFBRSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQy9ILFVBQVUsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxDQUFDLENBQ2pELENBQUM7SUFDSixDQUFDOzs7Ozs7O0lBQ0Qsc0JBQXNCLENBQUMsVUFBa0IsRUFBRSxTQUFpQixFQUFFLE9BQWM7O2NBQ3BFLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLDBCQUEwQixTQUFTLFlBQVksT0FBTyxnQkFBZ0IsVUFBVSxFQUFFO1FBQ2hJLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUNoSCxDQUFDOzs7Ozs7SUFDRCxxQkFBcUIsQ0FBQyxTQUFpQixFQUFFLE9BQWM7O2NBQy9DLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLDhDQUE4QyxTQUFTLFlBQVksT0FBTyxFQUFFO1FBQzFILE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUNoSCxDQUFDOzs7O0lBQ0QsWUFBWTtRQUNWLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsdUNBQXVDLEVBQUUsRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQ3BKLENBQUM7Ozs7SUFDRCxTQUFTO1FBQ1AsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQywwQ0FBMEMsRUFBRSxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBRSxVQUFVLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFDdkosQ0FBQzs7Ozs7SUFDRCxlQUFlLENBQUMsVUFBa0I7O2NBQzFCLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLGlDQUFpQyxVQUFVLEVBQUU7UUFDM0YsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUUsVUFBVSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQ2hILENBQUM7Ozs7O0lBRUQsYUFBYSxDQUFDLGNBQW9DO1FBQ2hELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLGNBQWMsQ0FBQyxDQUFDLENBQUM7SUFDNUQsQ0FBQzs7OztJQUNDLGFBQWE7UUFDWCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQzs7Ozs7O0lBR0QsaUJBQWlCLENBQUMsSUFBOEI7UUFDOUMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLHFCQUFxQixFQUFFLElBQUksQ0FBQyxDQUFDLElBQUksQ0FDeEYsVUFBVSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsQ0FDakQsQ0FBQztJQUNKLENBQUM7Ozs7Ozs7O0lBR0QsbUNBQW1DLENBQUMscUJBQTZCLEVBQUUsS0FBYSxFQUFFLElBQThCO1FBQzlHLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxtQkFBbUIscUJBQXFCLFNBQVMsS0FBSyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQzNJLFVBQVUsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxDQUFDLENBQ2pELENBQUM7SUFDSixDQUFDOzs7OztJQUVELHdCQUF3QixDQUFDLElBQWtDO1FBQ3pELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSx5QkFBeUIsRUFBRSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQzVGLFVBQVUsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxDQUFDLENBQ2pELENBQUM7SUFDSixDQUFDOzs7OztJQUNGLGlCQUFpQixDQUFDLGdCQUF3QjtRQUN2QyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEscUJBQXFCLGdCQUFnQixFQUFFLEVBQUU7WUFDL0YsZUFBZSxFQUFFLElBQUk7U0FDdEIsQ0FBQyxDQUFDLElBQUksQ0FDTCxVQUFVLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsQ0FBQyxDQUNqRCxDQUFDO0lBQ0osQ0FBQzs7O1lBcktGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7OztZQTlCUSxVQUFVO1lBS1Ysc0JBQXNCO1lBR3RCLGFBQWE7WUFGYixtQkFBbUI7WUFGcEIsaUJBQWlCOzs7Ozs7OztJQTRCdkIsd0NBQXFGOzs7OztJQUVyRixrQ0FBbUI7Ozs7O0lBRVAsa0NBQXdCOzs7OztJQUN4QixtQ0FBcUM7Ozs7O0lBQ3JDLG9DQUE2Qjs7Ozs7SUFDN0IsaURBQWdEOzs7OztJQUNoRCwrQ0FBNEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzL2ludGVybmFsL09ic2VydmFibGUnO1xuaW1wb3J0IHsgdjQgYXMgdXVpZHY0IH0gZnJvbSAndXVpZCc7XG5pbXBvcnQge0lQYXltZW50fSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL0lQYXltZW50JztcbmltcG9ydCB7UGF5bWVudExpYlNlcnZpY2V9IGZyb20gJy4uLy4uL3BheW1lbnQtbGliLnNlcnZpY2UnO1xuaW1wb3J0IHsgV2ViQ29tcG9uZW50SHR0cENsaWVudCB9IGZyb20gJy4uL3NoYXJlZC9odHRwY2xpZW50L3dlYmNvbXBvbmVudC5odHRwLmNsaWVudCc7XG5pbXBvcnQgeyBFcnJvckhhbmRsZXJTZXJ2aWNlIH0gZnJvbSAnLi4vc2hhcmVkL2Vycm9yLWhhbmRsZXIuc2VydmljZSc7XG5pbXBvcnQgeyBjYXRjaEVycm9yIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgTG9nZ2VyU2VydmljZSB9IGZyb20gJy4uL3NoYXJlZC9sb2dnZXIvbG9nZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHtJUGF5bWVudEdyb3VwfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL0lQYXltZW50R3JvdXAnO1xuaW1wb3J0IHsgQWRkUmVtaXNzaW9uUmVxdWVzdCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvQWRkUmVtaXNzaW9uUmVxdWVzdCc7XG5pbXBvcnQgeyBQYXltZW50VG9QYXlodWJSZXF1ZXN0IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9QYXltZW50VG9QYXlodWJSZXF1ZXN0JztcbmltcG9ydCB7IFBheWh1YkFudGVubmFSZXF1ZXN0IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9QYXlodWJBbnRlbm5hUmVxdWVzdCc7XG5pbXBvcnQgeyBVbmlkZW50aWZpZWRQYXltZW50c1JlcXVlc3QgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL1VuaWRlbnRpZmllZFBheW1lbnRzUmVxdWVzdCc7XG5pbXBvcnQgeyBVbnNvbGljaXRlZFBheW1lbnRzUmVxdWVzdCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvVW5zb2xpY2l0ZWRQYXltZW50c1JlcXVlc3QnO1xuaW1wb3J0IHsgTWV0YSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgQWxsb2NhdGVQYXltZW50UmVxdWVzdCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvQWxsb2NhdGVQYXltZW50UmVxdWVzdCc7XG5pbXBvcnQgeyBJQWxsb2NhdGlvblBheW1lbnRzUmVxdWVzdCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvSUFsbG9jYXRpb25QYXltZW50c1JlcXVlc3QnO1xuaW1wb3J0IHtJT3JkZXJSZWZlcmVuY2VGZWV9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvSU9yZGVyUmVmZXJlbmNlRmVlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSXNlcnZpY2VSZXF1ZXN0UGJhUGF5bWVudCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvSXNlcnZpY2VSZXF1ZXN0UGJhUGF5bWVudCc7XG5pbXBvcnQgeyBJc2VydmljZVJlcXVlc3RDYXJkUGF5bWVudCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvSXNlcnZpY2VSZXF1ZXN0Q2FyZFBheW1lbnQnO1xuaW1wb3J0IHsgUmVmdW5kc1JlcXVlc3QgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL1JlZnVuZHNSZXF1ZXN0JztcbmltcG9ydCB7IEFkZFJldHJvUmVtaXNzaW9uUmVxdWVzdCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvQWRkUmV0cm9SZW1pc3Npb25SZXF1ZXN0JztcbmltcG9ydCB7IFBvc3RSZWZ1bmRSZXRyb1JlbWlzc2lvbiB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvUG9zdFJlZnVuZFJldHJvUmVtaXNzaW9uJztcbmltcG9ydCB7IFBvc3RJc3N1ZVJlZnVuZFJldHJvUmVtaXNzaW9uIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9Qb3N0SXNzdWVSZWZ1bmRSZXRyb1JlbWlzc2lvbic7XG5pbXBvcnQgeyBlcnJvciB9IGZyb20gJ0Bhbmd1bGFyL2NvbXBpbGVyL3NyYy91dGlsJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgUGF5bWVudFZpZXdTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBvcmRlcnNMaXN0ICA9IDxCZWhhdmlvclN1YmplY3Q8SU9yZGVyUmVmZXJlbmNlRmVlW10+Pm5ldyBCZWhhdmlvclN1YmplY3QoW10pO1xuXG4gIHByaXZhdGUgbWV0YTogTWV0YTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgICAgICAgICAgIHByaXZhdGUgaHR0cHM6IFdlYkNvbXBvbmVudEh0dHBDbGllbnQsXG4gICAgICAgICAgICAgIHByaXZhdGUgbG9nZ2VyOiBMb2dnZXJTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIGVycm9ySGFuZGxlclNlcnZpY2U6IEVycm9ySGFuZGxlclNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgcGF5bWVudExpYlNlcnZpY2U6IFBheW1lbnRMaWJTZXJ2aWNlKSB7IH1cblxuICBnZXRQYXltZW50RGV0YWlscyhwYXltZW50UmVmZXJlbmNlOiBzdHJpbmcsIHBheW1lbnRNZXRob2Q6IHN0cmluZyk6IE9ic2VydmFibGU8SVBheW1lbnQ+IHtcbiAgICB0aGlzLmxvZ2dlci5pbmZvKCdQYXltZW50LXZpZXctc2VydmljZSBnZXRQYXltZW50RGV0YWlscyBmb3I6ICcsIHBheW1lbnRSZWZlcmVuY2UpO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8SVBheW1lbnQ+KHBheW1lbnRNZXRob2QgPT09ICdjYXJkJyB8fCBwYXltZW50TWV0aG9kID09PSAnY2FzaCcgfHwgcGF5bWVudE1ldGhvZCA9PT0gJ2NoZXF1ZScgfHwgcGF5bWVudE1ldGhvZCA9PT0gJ3Bvc3RhbCBvcmRlcicgP1xuICAgICAgICAgIGAke3RoaXMucGF5bWVudExpYlNlcnZpY2UuQVBJX1JPT1R9L2NhcmQtcGF5bWVudHMvJHtwYXltZW50UmVmZXJlbmNlfWAgOlxuICAgICAgICAgIGAke3RoaXMucGF5bWVudExpYlNlcnZpY2UuQVBJX1JPT1R9L2NyZWRpdC1hY2NvdW50LXBheW1lbnRzLyR7cGF5bWVudFJlZmVyZW5jZX1gLCB7XG4gICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZVxuICAgICAgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBjYXRjaEVycm9yKHRoaXMuZXJyb3JIYW5kbGVyU2VydmljZS5oYW5kbGVFcnJvcilcbiAgICAgICk7XG4gIH1cblxuICBnZXRQYXltZW50R3JvdXBEZXRhaWxzKHBheW1lbnRHcm91cFJlZmVyZW5jZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxJUGF5bWVudEdyb3VwPiB7XG4gICAgdGhpcy5sb2dnZXIuaW5mbygnUGF5bWVudC12aWV3LXNlcnZpY2UgZ2V0UGF5bWVudEdyb3VwRGV0YWlscyBmb3I6ICcsIHBheW1lbnRHcm91cFJlZmVyZW5jZSk7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxJUGF5bWVudD4oYCR7dGhpcy5wYXltZW50TGliU2VydmljZS5BUElfUk9PVH0vcGF5bWVudC1ncm91cHMvJHtwYXltZW50R3JvdXBSZWZlcmVuY2V9YCwge1xuICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlXG4gICAgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBjYXRjaEVycm9yKHRoaXMuZXJyb3JIYW5kbGVyU2VydmljZS5oYW5kbGVFcnJvcilcbiAgICAgICk7XG4gIH1cbiAgZ2V0QXBwb3J0aW9uUGF5bWVudERldGFpbHMocGF5bWVudFJlZmVyZW5jZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxJUGF5bWVudEdyb3VwPiB7XG4gICAgdGhpcy5sb2dnZXIuaW5mbygnUGF5bWVudC12aWV3LXNlcnZpY2UgZ2V0UGF5bWVudEdyb3VwRGV0YWlscyBmb3I6ICcsIHBheW1lbnRSZWZlcmVuY2UpO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8SVBheW1lbnQ+KGAke3RoaXMucGF5bWVudExpYlNlcnZpY2UuQVBJX1JPT1R9L3BheW1lbnQtZ3JvdXBzL2ZlZS1wYXktYXBwb3J0aW9uLyR7cGF5bWVudFJlZmVyZW5jZX1gLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWVcbiAgICB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIGNhdGNoRXJyb3IodGhpcy5lcnJvckhhbmRsZXJTZXJ2aWNlLmhhbmRsZUVycm9yKVxuICAgICAgKTtcbiAgfVxuICBnZXRQQkFhY2NvdW50RGV0YWlscygpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IHVybCA9IGAke3RoaXMucGF5bWVudExpYlNlcnZpY2UuQVBJX1JPT1R9L3BiYS1hY2NvdW50c2A7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQodXJsLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KS5waXBlKFxuICAgICAgICBjYXRjaEVycm9yKHRoaXMuZXJyb3JIYW5kbGVyU2VydmljZS5oYW5kbGVFcnJvcilcbiAgICAgICk7XG4gIH1cblxuICBwb3N0V2F5czJQYXlDYXJkUGF5bWVudChzZXJ2aWNlUmVmOiBzdHJpbmcsIGJvZHk6IElzZXJ2aWNlUmVxdWVzdENhcmRQYXltZW50KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLnBheW1lbnRMaWJTZXJ2aWNlLkFQSV9ST09UfS9zZXJ2aWNlLXJlcXVlc3QvJHtzZXJ2aWNlUmVmfS9jYXJkLXBheW1lbnRzYDtcbiAgICBjb25zdCBydXJsID0gdGhpcy5wYXltZW50TGliU2VydmljZS5DQVJEUEFZTUVOVFJFVFVSTlVSTC5yZXBsYWNlKCcucHJvZCcsICcnKTtcbiAgICBib2R5WydyZXR1cm4tdXJsJ10gPSBgJHtydXJsfS9wYXltZW50YDtcbiAgICByZXR1cm4gdGhpcy5odHRwcy5wb3N0KHVybCwgYm9keSkucGlwZShcbiAgICAgIGNhdGNoRXJyb3IodGhpcy5lcnJvckhhbmRsZXJTZXJ2aWNlLmhhbmRsZUVycm9yKVxuICAgICk7XG4gIH1cbiAgXG4gIHBvc3RQQkFhY2NvdW50UGF5bWVudChzZXJ2aWNlUmVmOiBzdHJpbmcsIGJvZHk6IElzZXJ2aWNlUmVxdWVzdFBiYVBheW1lbnQpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCByYW5kb21LZXkgPSAnaWRhbS1rZXktJyArIE1hdGgucmFuZG9tKCkudG9TdHJpbmcoKS5zcGxpdCgnLicpLmpvaW4oJy0nKTtcbiAgICBib2R5WydpZGVtcG90ZW5jeV9rZXknXSA9IHJhbmRvbUtleTsgXG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5wYXltZW50TGliU2VydmljZS5BUElfUk9PVH0vc2VydmljZS1yZXF1ZXN0LyR7c2VydmljZVJlZn0vcGJhLXBheW1lbnRzYDtcbiAgICByZXR1cm4gdGhpcy5odHRwcy5wb3N0KHVybCwgYm9keSk7XG4gIH1cblxuICBwb3N0QlNQYXltZW50cyhib2R5OiBBbGxvY2F0ZVBheW1lbnRSZXF1ZXN0KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwcy5wb3N0KGAke3RoaXMucGF5bWVudExpYlNlcnZpY2UuQVBJX1JPT1R9L3BheW1lbnQtZ3JvdXBzL2J1bGstc2Nhbi1wYXltZW50c2AsIGJvZHkpLnBpcGUoXG4gICAgICBjYXRjaEVycm9yKHRoaXMuZXJyb3JIYW5kbGVyU2VydmljZS5oYW5kbGVFcnJvcilcbiAgICApO1xuICB9XG4gIHBvc3RCU1VuaWRlbnRpZmllZFBheW1lbnRzKGJvZHk6IFVuaWRlbnRpZmllZFBheW1lbnRzUmVxdWVzdCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cHMucG9zdChgJHt0aGlzLnBheW1lbnRMaWJTZXJ2aWNlLkFQSV9ST09UfS9wYXltZW50LWFsbG9jYXRpb25zYCwgYm9keSkucGlwZShcbiAgICAgIGNhdGNoRXJyb3IodGhpcy5lcnJvckhhbmRsZXJTZXJ2aWNlLmhhbmRsZUVycm9yKVxuICAgICk7XG4gIH1cbiAgcG9zdEJTVW5zb2xpY2l0ZWRQYXltZW50cyhib2R5OiBVbnNvbGljaXRlZFBheW1lbnRzUmVxdWVzdCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cHMucG9zdChgJHt0aGlzLnBheW1lbnRMaWJTZXJ2aWNlLkFQSV9ST09UfS9wYXltZW50LWFsbG9jYXRpb25zYCwgYm9keSkucGlwZShcbiAgICAgIGNhdGNoRXJyb3IodGhpcy5lcnJvckhhbmRsZXJTZXJ2aWNlLmhhbmRsZUVycm9yKVxuICAgICk7XG4gIH1cbiAgcG9zdEJTQWxsb2NhdGlvblBheW1lbnRzKGJvZHk6IElBbGxvY2F0aW9uUGF5bWVudHNSZXF1ZXN0KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwcy5wb3N0KGAke3RoaXMucGF5bWVudExpYlNlcnZpY2UuQVBJX1JPT1R9L3BheW1lbnQtYWxsb2NhdGlvbnNgLCBib2R5KS5waXBlKFxuICAgICAgY2F0Y2hFcnJvcih0aGlzLmVycm9ySGFuZGxlclNlcnZpY2UuaGFuZGxlRXJyb3IpXG4gICAgKTtcbiAgfVxuXG4gIHBvc3RQYXltZW50R3JvdXBXaXRoUmVtaXNzaW9ucyhwYXltZW50R3JvdXBSZWZlcmVuY2U6IHN0cmluZywgZmVlSWQ6IG51bWJlciwgYm9keTogQWRkUmVtaXNzaW9uUmVxdWVzdCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cHMucG9zdChgJHt0aGlzLnBheW1lbnRMaWJTZXJ2aWNlLkFQSV9ST09UfS9wYXltZW50LWdyb3Vwcy8ke3BheW1lbnRHcm91cFJlZmVyZW5jZX0vZmVlcy8ke2ZlZUlkfS9yZW1pc3Npb25zYCwgYm9keSkucGlwZShcbiAgICAgIGNhdGNoRXJyb3IodGhpcy5lcnJvckhhbmRsZXJTZXJ2aWNlLmhhbmRsZUVycm9yKVxuICAgICk7XG4gIH1cblxuICBkZWxldGVGZWVGcm9tUGF5bWVudEdyb3VwKGZlZUlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICB0aGlzLmxvZ2dlci5pbmZvKCdQYXltZW50LXZpZXctc2VydmljZSBkZWxldGVGZWVGcm9tUGF5bWVudEdyb3VwIGZvcjogJywgZmVlSWQpO1xuICAgIHJldHVybiB0aGlzLmh0dHBzLmRlbGV0ZShgJHt0aGlzLnBheW1lbnRMaWJTZXJ2aWNlLkFQSV9ST09UfS9mZWVzLyR7ZmVlSWR9YCkucGlwZShcbiAgICAgIGNhdGNoRXJyb3IodGhpcy5lcnJvckhhbmRsZXJTZXJ2aWNlLmhhbmRsZUVycm9yKVxuICAgICk7XG4gIH1cbiAgcG9zdFBheW1lbnRUb1BheUh1Yihib2R5OiBQYXltZW50VG9QYXlodWJSZXF1ZXN0LCBwYXltZW50R3JvdXBSZWY6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cHMucG9zdChgJHt0aGlzLnBheW1lbnRMaWJTZXJ2aWNlLkFQSV9ST09UfS9wYXltZW50LWdyb3Vwcy8ke3BheW1lbnRHcm91cFJlZn0vY2FyZC1wYXltZW50c2AsIGJvZHkpLnBpcGUoXG4gICAgICBjYXRjaEVycm9yKHRoaXMuZXJyb3JIYW5kbGVyU2VydmljZS5oYW5kbGVFcnJvcilcbiAgICApO1xuICB9XG5cbiAgcG9zdFBheW1lbnRBbnRlbm5hVG9QYXlIdWIoYm9keTogUGF5aHViQW50ZW5uYVJlcXVlc3QsIHBheW1lbnRHcm91cFJlZjogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwcy5wb3N0KGAke3RoaXMucGF5bWVudExpYlNlcnZpY2UuQVBJX1JPT1R9L3BheW1lbnQtZ3JvdXBzLyR7cGF5bWVudEdyb3VwUmVmfS90ZWxlcGhvbnktY2FyZC1wYXltZW50c2AsIGJvZHkpLnBpcGUoXG4gICAgICBjYXRjaEVycm9yKHRoaXMuZXJyb3JIYW5kbGVyU2VydmljZS5oYW5kbGVFcnJvcilcbiAgICApO1xuICB9XG4gIGRvd25sb2FkU2VsZWN0ZWRSZXBvcnQocmVwb3J0TmFtZTogc3RyaW5nLCBzdGFydERhdGU6IHN0cmluZywgZW5kRGF0ZTpzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IHVybCA9IGAke3RoaXMucGF5bWVudExpYlNlcnZpY2UuQVBJX1JPT1R9L3JlcG9ydC9kYXRhP2RhdGVfZnJvbT0ke3N0YXJ0RGF0ZX0mZGF0ZV90bz0ke2VuZERhdGV9JnJlcG9ydF90eXBlPSR7cmVwb3J0TmFtZX1gO1xuICAgIHJldHVybiB0aGlzLmh0dHBzLmdldCh1cmwsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pLnBpcGUoIGNhdGNoRXJyb3IodGhpcy5lcnJvckhhbmRsZXJTZXJ2aWNlLmhhbmRsZUVycm9yKSk7XG4gIH1cbiAgZG93bmxvYWRGYWlsdXJlUmVwb3J0KHN0YXJ0RGF0ZTogc3RyaW5nLCBlbmREYXRlOnN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5wYXltZW50TGliU2VydmljZS5BUElfUk9PVH0vcGF5bWVudC1mYWlsdXJlcy9mYWlsdXJlLXJlcG9ydD9kYXRlX2Zyb209JHtzdGFydERhdGV9JmRhdGVfdG89JHtlbmREYXRlfWA7XG4gICAgcmV0dXJuIHRoaXMuaHR0cHMuZ2V0KHVybCwgeyB3aXRoQ3JlZGVudGlhbHM6IHRydWUgfSkucGlwZSggY2F0Y2hFcnJvcih0aGlzLmVycm9ySGFuZGxlclNlcnZpY2UuaGFuZGxlRXJyb3IpKTtcbiAgfVxuICBnZXRCU2ZlYXR1cmUoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwcy5nZXQoJ2FwaS9wYXltZW50LWhpc3RvcnkvYnVsay1zY2FuLWZlYXR1cmUnLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KS5waXBlKCBjYXRjaEVycm9yKHRoaXMuZXJyb3JIYW5kbGVyU2VydmljZS5oYW5kbGVFcnJvcikpO1xuICB9XG4gIGdldFNpdGVJRCgpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBzLmdldCgnYXBpL3BheW1lbnQtaGlzdG9yeS9yZWZkYXRhL2xlZ2FjeS1zaXRlcycsIHsgd2l0aENyZWRlbnRpYWxzOiB0cnVlIH0pLnBpcGUoIGNhdGNoRXJyb3IodGhpcy5lcnJvckhhbmRsZXJTZXJ2aWNlLmhhbmRsZUVycm9yKSk7XG4gIH1cbiAgZ2V0UGFydHlEZXRhaWxzKGNhc2VOdW1iZXI6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5wYXltZW50TGliU2VydmljZS5BUElfUk9PVH0vY2FzZS1wYXltZW50LW9yZGVycz9jYXNlX2lkcz0ke2Nhc2VOdW1iZXJ9YDtcbiAgICByZXR1cm4gdGhpcy5odHRwcy5nZXQodXJsLCB7IHdpdGhDcmVkZW50aWFsczogdHJ1ZSB9KS5waXBlKCBjYXRjaEVycm9yKHRoaXMuZXJyb3JIYW5kbGVyU2VydmljZS5oYW5kbGVFcnJvcikpO1xuICB9XG4gIFxuICBzZXRPcmRlcnNMaXN0KG9yZGVyTGV2ZWxGZWVzOiBJT3JkZXJSZWZlcmVuY2VGZWVbXSk6IHZvaWQge1xuICAgIHRoaXMub3JkZXJzTGlzdC5uZXh0KE9iamVjdC5hc3NpZ24oW10sIG9yZGVyTGV2ZWxGZWVzKSk7XG59XG4gIGdldE9yZGVyc0xpc3QoKSB7XG4gICAgcmV0dXJuIHRoaXMub3JkZXJzTGlzdDtcbiAgfVxuXG4gIC8vaXNzdWUgcmVmdW5kXG4gIHBvc3RSZWZ1bmRzUmVhc29uKGJvZHk6IFBvc3RSZWZ1bmRSZXRyb1JlbWlzc2lvbik6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cHMucG9zdChgJHt0aGlzLnBheW1lbnRMaWJTZXJ2aWNlLkFQSV9ST09UfS9yZWZ1bmQtZm9yLXBheW1lbnRgLCBib2R5KS5waXBlKFxuICAgICAgY2F0Y2hFcnJvcih0aGlzLmVycm9ySGFuZGxlclNlcnZpY2UuaGFuZGxlRXJyb3IpXG4gICAgKTtcbiAgfVxuXG4gIC8vIHJldHJvIHJlbWlzc2lvbnNcbiAgcG9zdFBheW1lbnRHcm91cFdpdGhSZXRyb1JlbWlzc2lvbnMocGF5bWVudEdyb3VwUmVmZXJlbmNlOiBzdHJpbmcsIGZlZUlkOiBudW1iZXIsIGJvZHk6IEFkZFJldHJvUmVtaXNzaW9uUmVxdWVzdCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cHMucG9zdChgJHt0aGlzLnBheW1lbnRMaWJTZXJ2aWNlLkFQSV9ST09UfS9wYXltZW50LWdyb3Vwcy8ke3BheW1lbnRHcm91cFJlZmVyZW5jZX0vZmVlcy8ke2ZlZUlkfS9yZXRyby1yZW1pc3Npb25gLCBib2R5KS5waXBlKFxuICAgICAgY2F0Y2hFcnJvcih0aGlzLmVycm9ySGFuZGxlclNlcnZpY2UuaGFuZGxlRXJyb3IpXG4gICAgKTtcbiAgfVxuXG4gIHBvc3RSZWZ1bmRSZXRyb1JlbWlzc2lvbihib2R5OlBvc3RJc3N1ZVJlZnVuZFJldHJvUmVtaXNzaW9uKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cHMucG9zdChgJHt0aGlzLnBheW1lbnRMaWJTZXJ2aWNlLkFQSV9ST09UfS9yZWZ1bmQtcmV0cm8tcmVtaXNzaW9uYCwgYm9keSkucGlwZShcbiAgICAgIGNhdGNoRXJyb3IodGhpcy5lcnJvckhhbmRsZXJTZXJ2aWNlLmhhbmRsZUVycm9yKVxuICAgICk7XG4gIH1cbiBnZXRQYXltZW50RmFpbHVyZShwYXltZW50UmVmZXJlbmNlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBzLmdldChgJHt0aGlzLnBheW1lbnRMaWJTZXJ2aWNlLkFQSV9ST09UfS9wYXltZW50LWZhaWx1cmVzLyR7cGF5bWVudFJlZmVyZW5jZX1gLCB7XG4gICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWVcbiAgICB9KS5waXBlKFxuICAgICAgY2F0Y2hFcnJvcih0aGlzLmVycm9ySGFuZGxlclNlcnZpY2UuaGFuZGxlRXJyb3IpXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -21,6 +21,7 @@ export class XlFileService {
21
21
  let worksheet;
22
22
  /** @type {?} */
23
23
  let workbook;
24
+ console.log(excelFileName);
24
25
  if (excelFileName.match('Data_Loss') !== null) {
25
26
  worksheet = XLSX.utils.json_to_sheet(json, { header: ['loss_resp', 'payment_asset_dcn', 'env_ref', 'env_item', 'resp_service_id', 'resp_service_name', 'date_banked', 'bgc_batch', 'payment_method', 'amount'] });
26
27
  worksheet = this.setDataLossReportHeaders(worksheet);
@@ -36,6 +37,11 @@ export class XlFileService {
36
37
  worksheet = this.setProcessedUnallocatedReportHeaders(worksheet);
37
38
  worksheet = this.autoFitColumns(worksheet, json);
38
39
  }
40
+ else if (excelFileName.match('Payment failure') !== null) {
41
+ worksheet = XLSX.utils.json_to_sheet(json, { header: ['payment_reference', 'ccd_reference', 'org_id', 'service_name', 'failure_reference', 'failure_reason', 'disputed_amount', 'event_name', 'event_date', 'representment_status', 'representment_date', 'refund_references', 'refund_amount', 'refund_date'] });
42
+ worksheet = this.setPaymentFailureReportHeaders(worksheet);
43
+ worksheet = this.autoFitColumns(worksheet, json);
44
+ }
39
45
  else {
40
46
  worksheet = XLSX.utils.json_to_sheet(json, { header: ['resp_service_id', 'resp_service_name', 'surplus_shortfall', 'balance', 'payment_amount', 'ccd_case_reference', 'ccd_exception_reference', 'processed_date', 'reason', 'explanation', 'user_name'] });
41
47
  worksheet = this.setShortFallReportHeaders(worksheet);
@@ -140,6 +146,28 @@ export class XlFileService {
140
146
  worksheet.N1.v = "Amount";
141
147
  return worksheet;
142
148
  }
149
+ /**
150
+ * @private
151
+ * @param {?} worksheet
152
+ * @return {?}
153
+ */
154
+ setPaymentFailureReportHeaders(worksheet) {
155
+ worksheet.A1.v = "Payment reference";
156
+ worksheet.B1.v = "CCD reference";
157
+ worksheet.C1.v = "OrgID";
158
+ worksheet.D1.v = "Service name";
159
+ worksheet.E1.v = "Failure reference";
160
+ worksheet.F1.v = "Failure reason";
161
+ worksheet.G1.v = "Disputed amount";
162
+ worksheet.H1.v = "Event name";
163
+ worksheet.I1.v = "Event date";
164
+ worksheet.J1.v = "Representment status";
165
+ worksheet.K1.v = "Representment date";
166
+ worksheet.L1.v = "Refund reference";
167
+ worksheet.M1.v = "Refund amount";
168
+ worksheet.N1.v = "Refund date";
169
+ return worksheet;
170
+ }
143
171
  /**
144
172
  * @private
145
173
  * @param {?} worksheet
@@ -178,4 +206,4 @@ XlFileService.decorators = [
178
206
  ];
179
207
  /** @nocollapse */
180
208
  XlFileService.ctorParameters = () => [];
181
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieGwtZmlsZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGhtY3RzL2NjcGF5LXdlYi1jb21wb25lbnQvIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMveGwtZmlsZS94bC1maWxlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxLQUFLLFNBQVMsTUFBTSxZQUFZLENBQUM7QUFDeEMsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7O01BSXZCLFVBQVUsR0FBRyxpRkFBaUY7O01BQzlGLGVBQWUsR0FBRyxPQUFPO0FBRy9CLE1BQU0sT0FBTyxhQUFhO0lBRXhCLGdCQUFnQixDQUFDOzs7Ozs7SUFFVixpQkFBaUIsQ0FBQyxJQUFXLEVBQUUsYUFBcUI7O1lBQ3JELFNBQXlCOztZQUN6QixRQUF1QjtRQUUzQixJQUFHLGFBQWEsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLEtBQUksSUFBSSxFQUFDO1lBQzNDLFNBQVMsR0FBSSxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUMsRUFBQyxNQUFNLEVBQUMsQ0FBQyxXQUFXLEVBQUMsbUJBQW1CLEVBQUMsU0FBUyxFQUFDLFVBQVUsRUFBQyxpQkFBaUIsRUFBQyxtQkFBbUIsRUFBQyxhQUFhLEVBQUMsV0FBVyxFQUFDLGdCQUFnQixFQUFDLFFBQVEsQ0FBQyxFQUFDLENBQUMsQ0FBQztZQUN0TSxTQUFTLEdBQUksSUFBSSxDQUFDLHdCQUF3QixDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3RELFNBQVMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsRUFBQyxJQUFJLENBQUMsQ0FBQztTQUMvQzthQUFNLElBQUcsYUFBYSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsS0FBSSxJQUFJLEVBQUM7WUFDckQsU0FBUyxHQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsYUFB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ZSxDQUFDO1FBQ2pDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLGdCQUFnQixDQUFDO1FBQ2xDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLFFBQVEsQ0FBQztRQUMxQixTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxhQUFhLENBQUM7UUFDL0IsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsY0FBYyxDQUFDO1FBQ2hDLE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7Ozs7Ozs7SUFFTyxlQUFlLENBQUMsTUFBVyxFQUFFLFFBQWdCOztjQUMzQyxJQUFJLEdBQVMsSUFBSSxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNwQyxJQUFJLEVBQUUsVUFBVTtTQUNqQixDQUFDO1FBQ0YsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsUUFBUSxHQUFHLGVBQWUsQ0FBQyxDQUFDO0lBQ3JELENBQUM7OztZQTdIRixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0ICogYXMgRmlsZVNhdmVyIGZyb20gJ2ZpbGUtc2F2ZXInO1xuaW1wb3J0ICogYXMgWExTWCBmcm9tICd4bHN4JztcbmltcG9ydCAqIGFzIFhMU1hTdHlsZSBmcm9tICd4bHN4LXN0eWxlJztcblxuXG5jb25zdCBFWENFTF9UWVBFID0gJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0O2NoYXJzZXQ9VVRGLTgnO1xuY29uc3QgRVhDRUxfRVhURU5TSU9OID0gJy54bHN4JztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFhsRmlsZVNlcnZpY2Uge1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgcHVibGljIGV4cG9ydEFzRXhjZWxGaWxlKGpzb246IGFueVtdLCBleGNlbEZpbGVOYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBsZXQgd29ya3NoZWV0OiBYTFNYLldvcmtTaGVldDsgXG4gICAgbGV0IHdvcmtib29rOiBYTFNYLldvcmtCb29rOyBcblxuICAgIGlmKGV4Y2VsRmlsZU5hbWUubWF0Y2goJ0RhdGFfTG9zcycpIT09IG51bGwpe1xuICAgICB3b3Jrc2hlZXQgPSAgWExTWC51dGlscy5qc29uX3RvX3NoZWV0KGpzb24se2hlYWRlcjpbJ2xvc3NfcmVzcCcsJ3BheW1lbnRfYXNzZXRfZGNuJywnZW52X3JlZicsJ2Vudl9pdGVtJywncmVzcF9zZXJ2aWNlX2lkJywncmVzcF9zZXJ2aWNlX25hbWUnLCdkYXRlX2JhbmtlZCcsJ2JnY19iYXRjaCcsJ3BheW1lbnRfbWV0aG9kJywnYW1vdW50J119KTtcbiAgICAgd29ya3NoZWV0ID0gIHRoaXMuc2V0RGF0YUxvc3NSZXBvcnRIZWFkZXJzKHdvcmtzaGVldCk7XG4gICAgIHdvcmtzaGVldCA9IHRoaXMuYXV0b0ZpdENvbHVtbnMod29ya3NoZWV0LGpzb24pO1xuICAgICB9IGVsc2UgaWYoZXhjZWxGaWxlTmFtZS5tYXRjaCgnVW5wcm9jZXNzZWQnKSE9PSBudWxsKXtcbiAgICAgd29ya3NoZWV0ID0gIFhMU1gudXRpbHMuanNvbl90b19zaGVldChqc29uLHtoZWFkZXI6WydyZXNwX3NlcnZpY2VfaWQnLCdyZXNwX3NlcnZpY2VfbmFtZScsJ2V4Y2VwdGlvbl9yZWYnLCdjY2RfcmVmJywnZGF0ZV9iYW5rZWQnLCdiZ2NfYmF0Y2gnLCdwYXltZW50X2Fzc2V0X2RjbicsJ2Vudl9yZWYnLCdlbnZfaXRlbScsJ3BheW1lbnRfbWV0aG9kJywnYW1vdW50J119KTtcbiAgICAgd29ya3NoZWV0ID0gIHRoaXMuc2V0VW5wcm9jZXNzZWRSZXBvcnRIZWFkZXJzKHdvcmtzaGVldCk7XG4gICAgIHdvcmtzaGVldCA9IHRoaXMuYXV0b0ZpdENvbHVtbnMod29ya3NoZWV0LGpzb24pO1xuICAgIH0gZWxzZSBpZihleGNlbEZpbGVOYW1lLm1hdGNoKCdQcm9jZXNzZWRfVW5hbGxvY2F0ZWQnKSE9PSBudWxsKXtcbiAgICAgIHdvcmtzaGVldCA9ICBYTFNYLnV0aWxzLmpzb25fdG9fc2hlZXQoanNvbix7aGVhZGVyOlsncmVzcF9zZXJ2aWNlX2lkJywncmVzcF9zZXJ2aWNlX25hbWUnLCdhbGxvY2F0aW9uX3N0YXR1cycsJ3JlY2VpdmluZ19vZmZpY2UnLCdhbGxvY2F0aW9uX3JlYXNvbicsJ2NjZF9leGNlcHRpb25fcmVmZXJlbmNlJywnY2NkX2Nhc2VfcmVmZXJlbmNlJywncGF5bWVudF9hc3NldF9kY24nLCdlbnZfcmVmJywnZW52X2l0ZW0nLCdkYXRlX2JhbmtlZCcsJ2JnY19iYXRjaCcsJ3BheW1lbnRfbWV0aG9kJywnYW1vdW50J119KTtcbiAgICAgIHdvcmtzaGVldCA9ICB0aGlzLnNldFByb2Nlc3NlZFVuYWxsb2NhdGVkUmVwb3J0SGVhZGVycyh3b3Jrc2hlZXQpO1xuICAgICAgd29ya3NoZWV0ID0gdGhpcy5hdXRvRml0Q29sdW1ucyh3b3Jrc2hlZXQsanNvbik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHdvcmtzaGVldCA9ICBYTFNYLnV0aWxzLmpzb25fdG9fc2hlZXQoanNvbix7aGVhZGVyOlsncmVzcF9zZXJ2aWNlX2lkJywncmVzcF9zZXJ2aWNlX25hbWUnLCdzdXJwbHVzX3Nob3J0ZmFsbCcsJ2JhbGFuY2UnLCdwYXltZW50X2Ftb3VudCcsJ2NjZF9jYXNlX3JlZmVyZW5jZScsICdjY2RfZXhjZXB0aW9uX3JlZmVyZW5jZScsICdwcm9jZXNzZWRfZGF0ZScsICdyZWFzb24nLCAnZXhwbGFuYXRpb24nLCAndXNlcl9uYW1lJ119KTtcbiAgICAgIHdvcmtzaGVldCA9ICB0aGlzLnNldFNob3J0RmFsbFJlcG9ydEhlYWRlcnMod29ya3NoZWV0KTtcbiAgICAgIHdvcmtzaGVldCA9IHRoaXMuYXV0b0ZpdENvbHVtbnMod29ya3NoZWV0LGpzb24pO1xuICAgIH1cbiAgICB3b3JrYm9vayA9IHsgU2hlZXRzOiB7ICdkYXRhJzogd29ya3NoZWV0IH0sIFNoZWV0TmFtZXM6IFsnZGF0YSddIH07XG4gICAgY29uc3QgZXhjZWxCdWZmZXI6IGFueSA9IFhMU1gud3JpdGUod29ya2Jvb2ssIHsgYm9va1R5cGU6ICd4bHN4JywgdHlwZTogJ2FycmF5JyB9KTtcbiAgICB0aGlzLnNhdmVBc0V4Y2VsRmlsZShleGNlbEJ1ZmZlciwgZXhjZWxGaWxlTmFtZSk7XG4gIH1cblxuXG5wcml2YXRlIGF1dG9GaXRDb2x1bW5zICh3b3Jrc2hlZXQ6IFhMU1guV29ya1NoZWV0LGpzb246YW55KSA6IFhMU1guV29ya1NoZWV0IHtcbiAgbGV0IG9iamVjdE1heExlbmd0aCA9IFtdOyBcbiAgbGV0IENvbFdpZHRoID0gW107XG4gIGxldCBvYmogPSA8YW55Pk9iamVjdDtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGpzb24ubGVuZ3RoOyBpKyspIHtcbiAgICAgIGxldCB2YWx1ZSA9IG9iai52YWx1ZXMoanNvbltpXSk7XG4gICAgICBsZXQga2V5ID0gb2JqLmtleXMoanNvbltpXSk7XG4gICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHZhbHVlLmxlbmd0aDsgaisrKSB7XG4gICAgICAgIGlmKHZhbHVlW2pdID09PSBudWxsKXtcbiAgICAgICAgICB2YWx1ZVtqXSA9ICcnO1xuICAgICAgICB9XG4gICAgICAgIG9iamVjdE1heExlbmd0aFtqXSA9XG4gICAgICAgICAga2V5W2pdLmxlbmd0aCA+PSB2YWx1ZVtqXS5sZW5ndGhcbiAgICAgICAgICAgID8ga2V5W2pdLmxlbmd0aCsyXG4gICAgICAgICAgICA6IHZhbHVlW2pdLmxlbmd0aCsxO1xuICAgICAgICAgICAgaWYoIHZhbHVlW2pdLmxlbmd0aCA9PT0gdW5kZWZpbmVkKXtcbiAgICAgICAgICAgICAgb2JqZWN0TWF4TGVuZ3RoW2pdID0gIGtleVtqXS5sZW5ndGgrMjtcbiAgICAgICAgICAgIH1cbiAgICAgIENvbFdpZHRoLnB1c2goeyd3aWR0aCc6ICtvYmplY3RNYXhMZW5ndGhbal19KTtcbiAgICAgIH1cbiAgICB9XG4gICAgd29ya3NoZWV0WychY29scyddID0gQ29sV2lkdGg7XG4gICAgcmV0dXJuIHdvcmtzaGVldDtcbn1cblxuXG5wcml2YXRlIHNldERhdGFMb3NzUmVwb3J0SGVhZGVycyAod29ya3NoZWV0OiBYTFNYLldvcmtTaGVldCk6IFhMU1guV29ya1NoZWV0IHtcbiAgd29ya3NoZWV0LkExLnYgPSBcIkxvc3NfUmVzcFwiO1xuICB3b3Jrc2hlZXQuQjEudiA9IFwiUGF5bWVudF9Bc3NldF9EQ05cIjtcbiAgd29ya3NoZWV0LkMxLnYgPSBcIkVudmVsb3BlX1JlZlwiO1xuICB3b3Jrc2hlZXQuRDEudiA9IFwiRW52ZWxvcGVfSXRlbVwiO1xuICB3b3Jrc2hlZXQuRTEudiA9IFwiUmVzcF9TZXJ2aWNlIElEXCI7XG4gIHdvcmtzaGVldC5GMS52ID0gXCJSZXNwX1NlcnZpY2UgTmFtZVwiO1xuICB3b3Jrc2hlZXQuRzEudiA9IFwiRGF0ZV9CYW5rZWRcIjtcbiAgd29ya3NoZWV0LkgxLnYgPSBcIkJHQ19CYXRjaFwiO1xuICB3b3Jrc2hlZXQuSTEudiA9IFwiUGF5bWVudF9NZXRob2RcIjtcbiAgd29ya3NoZWV0LkoxLnYgPSBcIkFtb3VudFwiO1xuICByZXR1cm4gd29ya3NoZWV0O1xufVxuXG5wcml2YXRlIHNldFVucHJvY2Vzc2VkUmVwb3J0SGVhZGVycyAod29ya3NoZWV0OiBYTFNYLldvcmtTaGVldCk6IFhMU1guV29ya1NoZWV0IHtcbiAgd29ya3NoZWV0LkExLnYgPSBcIlJlc3BfU2VydmljZSBJRFwiO1xuICB3b3Jrc2hlZXQuQjEudiA9IFwiUmVzcF9TZXJ2aWNlIE5hbWVcIjtcbiAgd29ya3NoZWV0LkMxLnYgPSBcIkV4Y2VwdGlvbl9SZWZcIjtcbiAgd29ya3NoZWV0LkQxLnYgPSBcIkNDRF9SZWZcIjtcbiAgd29ya3NoZWV0LkUxLnYgPSBcIkRhdGVfQmFua2VkXCI7XG4gIHdvcmtzaGVldC5GMS52ID0gXCJCR0NfQmF0Y2hcIjtcbiAgd29ya3NoZWV0LkcxLnYgPSBcIlBheW1lbnRfQXNzZXRfRENOXCI7XG4gIHdvcmtzaGVldC5IMS52ID0gXCJFbnZlbG9wZV9SZWZcIjtcbiAgd29ya3NoZWV0LkkxLnYgPSBcIkVudmVsb3BlX0l0ZW1cIjtcbiAgd29ya3NoZWV0LkoxLnYgPSBcIlBheW1lbnRfTWV0aG9kXCI7XG4gIHdvcmtzaGVldC5LMS52ID0gXCJBbW91bnRcIjtcbiAgcmV0dXJuIHdvcmtzaGVldDtcbn1cblxucHJpdmF0ZSBzZXRQcm9jZXNzZWRVbmFsbG9jYXRlZFJlcG9ydEhlYWRlcnMgKHdvcmtzaGVldDogWExTWC5Xb3JrU2hlZXQpOiBYTFNYLldvcmtTaGVldCB7XG4gIHdvcmtzaGVldC5BMS52ID0gXCJSZXNwX1NlcnZpY2UgSURcIjtcbiAgd29ya3NoZWV0LkIxLnYgPSBcIlJlc3BfU2VydmljZSBOYW1lXCI7XG4gIHdvcmtzaGVldC5DMS52ID0gXCJBbGxvY2F0aW9uX1N0YXR1c1wiO1xuICB3b3Jrc2hlZXQuRDEudiA9IFwiUmVjZWl2aW5nX09mZmljZVwiO1xuICB3b3Jrc2hlZXQuRTEudiA9IFwiQWxsb2NhdGlvbl9SZWFzb25cIjtcbiAgd29ya3NoZWV0LkYxLnYgPSBcIkNDRF9FeGNlcHRpb25fUmVmXCI7XG4gIHdvcmtzaGVldC5HMS52ID0gXCJDQ0RfQ2FzZV9SZWZcIjtcbiAgd29ya3NoZWV0LkgxLnYgPSBcIlBheW1lbnRfQXNzZXRfRENOXCI7XG4gIHdvcmtzaGVldC5JMS52ID0gXCJFbnZlbG9wZV9SZWZcIjtcbiAgd29ya3NoZWV0LkoxLnYgPSBcIkVudmVsb3BlX0l0ZW1cIjtcbiAgd29ya3NoZWV0LksxLnYgPSBcIkRhdGVfQmFua2VkXCI7XG4gIHdvcmtzaGVldC5MMS52ID0gXCJCR0NfQmF0Y2hcIjtcbiAgd29ya3NoZWV0Lk0xLnYgPSBcIlBheW1lbnRfTWV0aG9kXCI7XG4gIHdvcmtzaGVldC5OMS52ID0gXCJBbW91bnRcIjtcbiAgcmV0dXJuIHdvcmtzaGVldDtcbn1cblxucHJpdmF0ZSBzZXRTaG9ydEZhbGxSZXBvcnRIZWFkZXJzICh3b3Jrc2hlZXQ6IFhMU1guV29ya1NoZWV0KTogWExTWC5Xb3JrU2hlZXQge1xuICB3b3Jrc2hlZXQuQTEudiA9IFwiUmVzcF9TZXJ2aWNlIElEXCI7XG4gIHdvcmtzaGVldC5CMS52ID0gXCJSZXNwX1NlcnZpY2UgTmFtZVwiO1xuICB3b3Jrc2hlZXQuQzEudiA9IFwiT3ZlciBQYXltZW50X1VuZGVyIFBheW1lbnRcIjtcbiAgd29ya3NoZWV0LkQxLnYgPSBcIkJhbGFuY2VcIjtcbiAgd29ya3NoZWV0LkUxLnYgPSBcIlBheW1lbnRfQW1vdW50XCI7XG4gIHdvcmtzaGVldC5GMS52ID0gXCJDQ0RfQ2FzZV9SZWZcIjtcbiAgd29ya3NoZWV0LkcxLnYgPSBcIkV4Y2VwdGlvbl9SZWZcIjtcbiAgd29ya3NoZWV0LkgxLnYgPSBcIlByb2Nlc3NlZF9EYXRlXCI7XG4gIHdvcmtzaGVldC5JMS52ID0gXCJSZWFzb25cIjtcbiAgd29ya3NoZWV0LkoxLnYgPSBcIkV4cGxhbmF0aW9uXCI7XG4gIHdvcmtzaGVldC5LMS52ID0gXCJVcGRhdGVkIE5hbWVcIjtcbiAgcmV0dXJuIHdvcmtzaGVldDtcbn1cblxucHJpdmF0ZSBzYXZlQXNFeGNlbEZpbGUoYnVmZmVyOiBhbnksIGZpbGVOYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBkYXRhOiBCbG9iID0gbmV3IEJsb2IoW2J1ZmZlcl0sIHtcbiAgICAgIHR5cGU6IEVYQ0VMX1RZUEVcbiAgICB9KTtcbiAgICBGaWxlU2F2ZXIuc2F2ZUFzKGRhdGEsIGZpbGVOYW1lICsgRVhDRUxfRVhURU5TSU9OKTtcbiAgfVxufVxuIl19
209
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieGwtZmlsZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGhtY3RzL2NjcGF5LXdlYi1jb21wb25lbnQvIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMveGwtZmlsZS94bC1maWxlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxLQUFLLFNBQVMsTUFBTSxZQUFZLENBQUM7QUFDeEMsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7O01BSXZCLFVBQVUsR0FBRyxpRkFBaUY7O01BQzlGLGVBQWUsR0FBRyxPQUFPO0FBRy9CLE1BQU0sT0FBTyxhQUFhO0lBRXhCLGdCQUFnQixDQUFDOzs7Ozs7SUFFVixpQkFBaUIsQ0FBQyxJQUFXLEVBQUUsYUFBcUI7O1lBQ3JELFNBQXlCOztZQUN6QixRQUF1QjtRQUMzQixPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRTNCLElBQUcsYUFBYSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsS0FBSSxJQUFJLEVBQUM7WUFDM0MsU0FBUyxHQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLElBQUksRUFBQyxFQUFDLE1BQU0sRUFBQyxDQUFDLFdBQVcsRUFBQyxtQkFBbUIsRUFBQyxTQUFTLEVBQUMsVUFBVSxFQUFDLGlCQUFpQixFQUFDLG1CQUFtQixFQUFDLGFBQWEsRUFBQyxXQUFXLEVBQUMsZ0JBQWdCLEVBQUMsUUFBUSxDQUFDLEVBQUMsQ0FBQyxDQUFDO1lBQ3RNLFNBQVMsR0FBSSxJQUFJLENBQUMsd0JBQXdCLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDdEQsU0FBUyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxFQUFDLElBQUksQ0FBQyxDQUFDO1NBQy9DO2FBQU0sSUFBRyxhQUFhLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxLQUFJLElBQUksRUFB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LENBQUM7UUFDbkMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsbUJBQW1CLENBQUM7UUFDckMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsNEJBQTRCLENBQUM7UUFDOUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDO1FBQzNCLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLGdCQUFnQixDQUFDO1FBQ2xDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLGNBQWMsQ0FBQztRQUNoQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxlQUFlLENBQUM7UUFDakMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsZ0JBQWdCLENBQUM7UUFDbEMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsUUFBUSxDQUFDO1FBQzFCLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLGFBQWEsQ0FBQztRQUMvQixTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxjQUFjLENBQUM7UUFDaEMsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQzs7Ozs7OztJQUVPLGVBQWUsQ0FBQyxNQUFXLEVBQUUsUUFBZ0I7O2NBQzNDLElBQUksR0FBUyxJQUFJLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3BDLElBQUksRUFBRSxVQUFVO1NBQ2pCLENBQUM7UUFDRixTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxRQUFRLEdBQUcsZUFBZSxDQUFDLENBQUM7SUFDckQsQ0FBQzs7O1lBbkpGLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgKiBhcyBGaWxlU2F2ZXIgZnJvbSAnZmlsZS1zYXZlcic7XG5pbXBvcnQgKiBhcyBYTFNYIGZyb20gJ3hsc3gnO1xuaW1wb3J0ICogYXMgWExTWFN0eWxlIGZyb20gJ3hsc3gtc3R5bGUnO1xuXG5cbmNvbnN0IEVYQ0VMX1RZUEUgPSAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQ7Y2hhcnNldD1VVEYtOCc7XG5jb25zdCBFWENFTF9FWFRFTlNJT04gPSAnLnhsc3gnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgWGxGaWxlU2VydmljZSB7XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cblxuICBwdWJsaWMgZXhwb3J0QXNFeGNlbEZpbGUoanNvbjogYW55W10sIGV4Y2VsRmlsZU5hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgIGxldCB3b3Jrc2hlZXQ6IFhMU1guV29ya1NoZWV0OyBcbiAgICBsZXQgd29ya2Jvb2s6IFhMU1guV29ya0Jvb2s7IFxuICAgIGNvbnNvbGUubG9nKGV4Y2VsRmlsZU5hbWUpO1xuXG4gICAgaWYoZXhjZWxGaWxlTmFtZS5tYXRjaCgnRGF0YV9Mb3NzJykhPT0gbnVsbCl7XG4gICAgIHdvcmtzaGVldCA9ICBYTFNYLnV0aWxzLmpzb25fdG9fc2hlZXQoanNvbix7aGVhZGVyOlsnbG9zc19yZXNwJywncGF5bWVudF9hc3NldF9kY24nLCdlbnZfcmVmJywnZW52X2l0ZW0nLCdyZXNwX3NlcnZpY2VfaWQnLCdyZXNwX3NlcnZpY2VfbmFtZScsJ2RhdGVfYmFua2VkJywnYmdjX2JhdGNoJywncGF5bWVudF9tZXRob2QnLCdhbW91bnQnXX0pO1xuICAgICB3b3Jrc2hlZXQgPSAgdGhpcy5zZXREYXRhTG9zc1JlcG9ydEhlYWRlcnMod29ya3NoZWV0KTtcbiAgICAgd29ya3NoZWV0ID0gdGhpcy5hdXRvRml0Q29sdW1ucyh3b3Jrc2hlZXQsanNvbik7XG4gICAgIH0gZWxzZSBpZihleGNlbEZpbGVOYW1lLm1hdGNoKCdVbnByb2Nlc3NlZCcpIT09IG51bGwpe1xuICAgICB3b3Jrc2hlZXQgPSAgWExTWC51dGlscy5qc29uX3RvX3NoZWV0KGpzb24se2hlYWRlcjpbJ3Jlc3Bfc2VydmljZV9pZCcsJ3Jlc3Bfc2VydmljZV9uYW1lJywnZXhjZXB0aW9uX3JlZicsJ2NjZF9yZWYnLCdkYXRlX2JhbmtlZCcsJ2JnY19iYXRjaCcsJ3BheW1lbnRfYXNzZXRfZGNuJywnZW52X3JlZicsJ2Vudl9pdGVtJywncGF5bWVudF9tZXRob2QnLCdhbW91bnQnXX0pO1xuICAgICB3b3Jrc2hlZXQgPSAgdGhpcy5zZXRVbnByb2Nlc3NlZFJlcG9ydEhlYWRlcnMod29ya3NoZWV0KTtcbiAgICAgd29ya3NoZWV0ID0gdGhpcy5hdXRvRml0Q29sdW1ucyh3b3Jrc2hlZXQsanNvbik7XG4gICAgfSBlbHNlIGlmKGV4Y2VsRmlsZU5hbWUubWF0Y2goJ1Byb2Nlc3NlZF9VbmFsbG9jYXRlZCcpIT09IG51bGwpe1xuICAgICAgd29ya3NoZWV0ID0gIFhMU1gudXRpbHMuanNvbl90b19zaGVldChqc29uLHtoZWFkZXI6WydyZXNwX3NlcnZpY2VfaWQnLCdyZXNwX3NlcnZpY2VfbmFtZScsJ2FsbG9jYXRpb25fc3RhdHVzJywncmVjZWl2aW5nX29mZmljZScsJ2FsbG9jYXRpb25fcmVhc29uJywnY2NkX2V4Y2VwdGlvbl9yZWZlcmVuY2UnLCdjY2RfY2FzZV9yZWZlcmVuY2UnLCdwYXltZW50X2Fzc2V0X2RjbicsJ2Vudl9yZWYnLCdlbnZfaXRlbScsJ2RhdGVfYmFua2VkJywnYmdjX2JhdGNoJywncGF5bWVudF9tZXRob2QnLCdhbW91bnQnXX0pO1xuICAgICAgd29ya3NoZWV0ID0gIHRoaXMuc2V0UHJvY2Vzc2VkVW5hbGxvY2F0ZWRSZXBvcnRIZWFkZXJzKHdvcmtzaGVldCk7XG4gICAgICB3b3Jrc2hlZXQgPSB0aGlzLmF1dG9GaXRDb2x1bW5zKHdvcmtzaGVldCxqc29uKTtcbiAgICB9IGVsc2UgaWYoZXhjZWxGaWxlTmFtZS5tYXRjaCgnUGF5bWVudCBmYWlsdXJlJykhPT0gbnVsbCl7XG4gICAgICB3b3Jrc2hlZXQgPSAgWExTWC51dGlscy5qc29uX3RvX3NoZWV0KGpzb24se2hlYWRlcjpbJ3BheW1lbnRfcmVmZXJlbmNlJywnY2NkX3JlZmVyZW5jZScsJ29yZ19pZCcsJ3NlcnZpY2VfbmFtZScsJ2ZhaWx1cmVfcmVmZXJlbmNlJywnZmFpbHVyZV9yZWFzb24nLCdkaXNwdXRlZF9hbW91bnQnLCdldmVudF9uYW1lJywnZXZlbnRfZGF0ZScsJ3JlcHJlc2VudG1lbnRfc3RhdHVzJywncmVwcmVzZW50bWVudF9kYXRlJywncmVmdW5kX3JlZmVyZW5jZXMnLCdyZWZ1bmRfYW1vdW50JywncmVmdW5kX2RhdGUnXX0pO1xuICAgICAgd29ya3NoZWV0ID0gIHRoaXMuc2V0UGF5bWVudEZhaWx1cmVSZXBvcnRIZWFkZXJzKHdvcmtzaGVldCk7XG4gICAgICB3b3Jrc2hlZXQgPSB0aGlzLmF1dG9GaXRDb2x1bW5zKHdvcmtzaGVldCxqc29uKTtcbiAgICB9IGVsc2Uge1xuICAgICAgd29ya3NoZWV0ID0gIFhMU1gudXRpbHMuanNvbl90b19zaGVldChqc29uLHtoZWFkZXI6WydyZXNwX3NlcnZpY2VfaWQnLCdyZXNwX3NlcnZpY2VfbmFtZScsJ3N1cnBsdXNfc2hvcnRmYWxsJywnYmFsYW5jZScsJ3BheW1lbnRfYW1vdW50JywnY2NkX2Nhc2VfcmVmZXJlbmNlJywgJ2NjZF9leGNlcHRpb25fcmVmZXJlbmNlJywgJ3Byb2Nlc3NlZF9kYXRlJywgJ3JlYXNvbicsICdleHBsYW5hdGlvbicsICd1c2VyX25hbWUnXX0pO1xuICAgICAgd29ya3NoZWV0ID0gIHRoaXMuc2V0U2hvcnRGYWxsUmVwb3J0SGVhZGVycyh3b3Jrc2hlZXQpO1xuICAgICAgd29ya3NoZWV0ID0gdGhpcy5hdXRvRml0Q29sdW1ucyh3b3Jrc2hlZXQsanNvbik7XG4gICAgfVxuICAgIHdvcmtib29rID0geyBTaGVldHM6IHsgJ2RhdGEnOiB3b3Jrc2hlZXQgfSwgU2hlZXROYW1lczogWydkYXRhJ10gfTtcbiAgICBjb25zdCBleGNlbEJ1ZmZlcjogYW55ID0gWExTWC53cml0ZSh3b3JrYm9vaywgeyBib29rVHlwZTogJ3hsc3gnLCB0eXBlOiAnYXJyYXknIH0pO1xuICAgIHRoaXMuc2F2ZUFzRXhjZWxGaWxlKGV4Y2VsQnVmZmVyLCBleGNlbEZpbGVOYW1lKTtcbiAgfVxuXG5cbnByaXZhdGUgYXV0b0ZpdENvbHVtbnMgKHdvcmtzaGVldDogWExTWC5Xb3JrU2hlZXQsanNvbjphbnkpIDogWExTWC5Xb3JrU2hlZXQge1xuICBsZXQgb2JqZWN0TWF4TGVuZ3RoID0gW107IFxuICBsZXQgQ29sV2lkdGggPSBbXTtcbiAgbGV0IG9iaiA9IDxhbnk+T2JqZWN0O1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwganNvbi5sZW5ndGg7IGkrKykge1xuICAgICAgbGV0IHZhbHVlID0gb2JqLnZhbHVlcyhqc29uW2ldKTtcbiAgICAgIGxldCBrZXkgPSBvYmoua2V5cyhqc29uW2ldKTtcbiAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgdmFsdWUubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgaWYodmFsdWVbal0gPT09IG51bGwpe1xuICAgICAgICAgIHZhbHVlW2pdID0gJyc7XG4gICAgICAgIH1cbiAgICAgICAgb2JqZWN0TWF4TGVuZ3RoW2pdID1cbiAgICAgICAgICBrZXlbal0ubGVuZ3RoID49IHZhbHVlW2pdLmxlbmd0aFxuICAgICAgICAgICAgPyBrZXlbal0ubGVuZ3RoKzJcbiAgICAgICAgICAgIDogdmFsdWVbal0ubGVuZ3RoKzE7XG4gICAgICAgICAgICBpZiggdmFsdWVbal0ubGVuZ3RoID09PSB1bmRlZmluZWQpe1xuICAgICAgICAgICAgICBvYmplY3RNYXhMZW5ndGhbal0gPSAga2V5W2pdLmxlbmd0aCsyO1xuICAgICAgICAgICAgfVxuICAgICAgQ29sV2lkdGgucHVzaCh7J3dpZHRoJzogK29iamVjdE1heExlbmd0aFtqXX0pO1xuICAgICAgfVxuICAgIH1cbiAgICB3b3Jrc2hlZXRbJyFjb2xzJ10gPSBDb2xXaWR0aDtcbiAgICByZXR1cm4gd29ya3NoZWV0O1xufVxuXG5cbnByaXZhdGUgc2V0RGF0YUxvc3NSZXBvcnRIZWFkZXJzICh3b3Jrc2hlZXQ6IFhMU1guV29ya1NoZWV0KTogWExTWC5Xb3JrU2hlZXQge1xuICB3b3Jrc2hlZXQuQTEudiA9IFwiTG9zc19SZXNwXCI7XG4gIHdvcmtzaGVldC5CMS52ID0gXCJQYXltZW50X0Fzc2V0X0RDTlwiO1xuICB3b3Jrc2hlZXQuQzEudiA9IFwiRW52ZWxvcGVfUmVmXCI7XG4gIHdvcmtzaGVldC5EMS52ID0gXCJFbnZlbG9wZV9JdGVtXCI7XG4gIHdvcmtzaGVldC5FMS52ID0gXCJSZXNwX1NlcnZpY2UgSURcIjtcbiAgd29ya3NoZWV0LkYxLnYgPSBcIlJlc3BfU2VydmljZSBOYW1lXCI7XG4gIHdvcmtzaGVldC5HMS52ID0gXCJEYXRlX0JhbmtlZFwiO1xuICB3b3Jrc2hlZXQuSDEudiA9IFwiQkdDX0JhdGNoXCI7XG4gIHdvcmtzaGVldC5JMS52ID0gXCJQYXltZW50X01ldGhvZFwiO1xuICB3b3Jrc2hlZXQuSjEudiA9IFwiQW1vdW50XCI7XG4gIHJldHVybiB3b3Jrc2hlZXQ7XG59XG5cbnByaXZhdGUgc2V0VW5wcm9jZXNzZWRSZXBvcnRIZWFkZXJzICh3b3Jrc2hlZXQ6IFhMU1guV29ya1NoZWV0KTogWExTWC5Xb3JrU2hlZXQge1xuICB3b3Jrc2hlZXQuQTEudiA9IFwiUmVzcF9TZXJ2aWNlIElEXCI7XG4gIHdvcmtzaGVldC5CMS52ID0gXCJSZXNwX1NlcnZpY2UgTmFtZVwiO1xuICB3b3Jrc2hlZXQuQzEudiA9IFwiRXhjZXB0aW9uX1JlZlwiO1xuICB3b3Jrc2hlZXQuRDEudiA9IFwiQ0NEX1JlZlwiO1xuICB3b3Jrc2hlZXQuRTEudiA9IFwiRGF0ZV9CYW5rZWRcIjtcbiAgd29ya3NoZWV0LkYxLnYgPSBcIkJHQ19CYXRjaFwiO1xuICB3b3Jrc2hlZXQuRzEudiA9IFwiUGF5bWVudF9Bc3NldF9EQ05cIjtcbiAgd29ya3NoZWV0LkgxLnYgPSBcIkVudmVsb3BlX1JlZlwiO1xuICB3b3Jrc2hlZXQuSTEudiA9IFwiRW52ZWxvcGVfSXRlbVwiO1xuICB3b3Jrc2hlZXQuSjEudiA9IFwiUGF5bWVudF9NZXRob2RcIjtcbiAgd29ya3NoZWV0LksxLnYgPSBcIkFtb3VudFwiO1xuICByZXR1cm4gd29ya3NoZWV0O1xufVxuXG5wcml2YXRlIHNldFByb2Nlc3NlZFVuYWxsb2NhdGVkUmVwb3J0SGVhZGVycyAod29ya3NoZWV0OiBYTFNYLldvcmtTaGVldCk6IFhMU1guV29ya1NoZWV0IHtcbiAgd29ya3NoZWV0LkExLnYgPSBcIlJlc3BfU2VydmljZSBJRFwiO1xuICB3b3Jrc2hlZXQuQjEudiA9IFwiUmVzcF9TZXJ2aWNlIE5hbWVcIjtcbiAgd29ya3NoZWV0LkMxLnYgPSBcIkFsbG9jYXRpb25fU3RhdHVzXCI7XG4gIHdvcmtzaGVldC5EMS52ID0gXCJSZWNlaXZpbmdfT2ZmaWNlXCI7XG4gIHdvcmtzaGVldC5FMS52ID0gXCJBbGxvY2F0aW9uX1JlYXNvblwiO1xuICB3b3Jrc2hlZXQuRjEudiA9IFwiQ0NEX0V4Y2VwdGlvbl9SZWZcIjtcbiAgd29ya3NoZWV0LkcxLnYgPSBcIkNDRF9DYXNlX1JlZlwiO1xuICB3b3Jrc2hlZXQuSDEudiA9IFwiUGF5bWVudF9Bc3NldF9EQ05cIjtcbiAgd29ya3NoZWV0LkkxLnYgPSBcIkVudmVsb3BlX1JlZlwiO1xuICB3b3Jrc2hlZXQuSjEudiA9IFwiRW52ZWxvcGVfSXRlbVwiO1xuICB3b3Jrc2hlZXQuSzEudiA9IFwiRGF0ZV9CYW5rZWRcIjtcbiAgd29ya3NoZWV0LkwxLnYgPSBcIkJHQ19CYXRjaFwiO1xuICB3b3Jrc2hlZXQuTTEudiA9IFwiUGF5bWVudF9NZXRob2RcIjtcbiAgd29ya3NoZWV0Lk4xLnYgPSBcIkFtb3VudFwiO1xuICByZXR1cm4gd29ya3NoZWV0O1xufVxuXG5wcml2YXRlIHNldFBheW1lbnRGYWlsdXJlUmVwb3J0SGVhZGVycyAod29ya3NoZWV0OiBYTFNYLldvcmtTaGVldCk6IFhMU1guV29ya1NoZWV0IHtcbiAgd29ya3NoZWV0LkExLnYgPSBcIlBheW1lbnQgcmVmZXJlbmNlXCI7XG4gIHdvcmtzaGVldC5CMS52ID0gXCJDQ0QgcmVmZXJlbmNlXCI7XG4gIHdvcmtzaGVldC5DMS52ID0gXCJPcmdJRFwiO1xuICB3b3Jrc2hlZXQuRDEudiA9IFwiU2VydmljZSBuYW1lXCI7XG4gIHdvcmtzaGVldC5FMS52ID0gXCJGYWlsdXJlIHJlZmVyZW5jZVwiO1xuICB3b3Jrc2hlZXQuRjEudiA9IFwiRmFpbHVyZSByZWFzb25cIjtcbiAgd29ya3NoZWV0LkcxLnYgPSBcIkRpc3B1dGVkIGFtb3VudFwiO1xuICB3b3Jrc2hlZXQuSDEudiA9IFwiRXZlbnQgbmFtZVwiO1xuICB3b3Jrc2hlZXQuSTEudiA9IFwiRXZlbnQgZGF0ZVwiO1xuICB3b3Jrc2hlZXQuSjEudiA9IFwiUmVwcmVzZW50bWVudCBzdGF0dXNcIjtcbiAgd29ya3NoZWV0LksxLnYgPSBcIlJlcHJlc2VudG1lbnQgZGF0ZVwiO1xuICB3b3Jrc2hlZXQuTDEudiA9IFwiUmVmdW5kIHJlZmVyZW5jZVwiO1xuICB3b3Jrc2hlZXQuTTEudiA9IFwiUmVmdW5kIGFtb3VudFwiO1xuICB3b3Jrc2hlZXQuTjEudiA9IFwiUmVmdW5kIGRhdGVcIjtcbiAgcmV0dXJuIHdvcmtzaGVldDtcbn1cbnByaXZhdGUgc2V0U2hvcnRGYWxsUmVwb3J0SGVhZGVycyAod29ya3NoZWV0OiBYTFNYLldvcmtTaGVldCk6IFhMU1guV29ya1NoZWV0IHtcbiAgd29ya3NoZWV0LkExLnYgPSBcIlJlc3BfU2VydmljZSBJRFwiO1xuICB3b3Jrc2hlZXQuQjEudiA9IFwiUmVzcF9TZXJ2aWNlIE5hbWVcIjtcbiAgd29ya3NoZWV0LkMxLnYgPSBcIk92ZXIgUGF5bWVudF9VbmRlciBQYXltZW50XCI7XG4gIHdvcmtzaGVldC5EMS52ID0gXCJCYWxhbmNlXCI7XG4gIHdvcmtzaGVldC5FMS52ID0gXCJQYXltZW50X0Ftb3VudFwiO1xuICB3b3Jrc2hlZXQuRjEudiA9IFwiQ0NEX0Nhc2VfUmVmXCI7XG4gIHdvcmtzaGVldC5HMS52ID0gXCJFeGNlcHRpb25fUmVmXCI7XG4gIHdvcmtzaGVldC5IMS52ID0gXCJQcm9jZXNzZWRfRGF0ZVwiO1xuICB3b3Jrc2hlZXQuSTEudiA9IFwiUmVhc29uXCI7XG4gIHdvcmtzaGVldC5KMS52ID0gXCJFeHBsYW5hdGlvblwiO1xuICB3b3Jrc2hlZXQuSzEudiA9IFwiVXBkYXRlZCBOYW1lXCI7XG4gIHJldHVybiB3b3Jrc2hlZXQ7XG59XG5cbnByaXZhdGUgc2F2ZUFzRXhjZWxGaWxlKGJ1ZmZlcjogYW55LCBmaWxlTmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgZGF0YTogQmxvYiA9IG5ldyBCbG9iKFtidWZmZXJdLCB7XG4gICAgICB0eXBlOiBFWENFTF9UWVBFXG4gICAgfSk7XG4gICAgRmlsZVNhdmVyLnNhdmVBcyhkYXRhLCBmaWxlTmFtZSArIEVYQ0VMX0VYVEVOU0lPTik7XG4gIH1cbn1cbiJdfQ==