@colijnit/transaction 255.1.2 → 255.1.3

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 (38) hide show
  1. package/bundles/colijnit-transaction.umd.js +531 -361
  2. package/bundles/colijnit-transaction.umd.js.map +1 -1
  3. package/colijnit-transaction.d.ts +311 -309
  4. package/colijnit-transaction.metadata.json +1 -1
  5. package/esm2015/colijnit-transaction.js +312 -310
  6. package/esm2015/lib/component/dialog/transaction-search/components/transaction-search-header/transaction-search-header.component.js +3 -1
  7. package/esm2015/lib/component/dialog/transaction-search/components/transaction-search-header/transaction-search-header.module.js +4 -2
  8. package/esm2015/lib/component/dialog/transaction-search/dialog-transaction-search.component.js +26 -14
  9. package/esm2015/lib/component/transaction-cash-register-order/transaction-cash-register-payment-dialog/components/transaction-cash-register-payment-cash.component.js +2 -2
  10. package/esm2015/lib/component/transaction-create-wizard/transaction-create-wizard.component.js +8 -3
  11. package/esm2015/lib/component/transaction-header/transaction-header-popup/transaction-header-popup-create-service.component.js +34 -16
  12. package/esm2015/lib/component/transaction-search/transaction-search-tile/transaction-search-sales-line-select-tile/transaction-line-tile/transaction-line-tile.component.js +42 -0
  13. package/esm2015/lib/component/transaction-search/transaction-search-tile/transaction-search-sales-line-select-tile/transaction-line-tile/transaction-line-tile.module.js +21 -0
  14. package/esm2015/lib/component/transaction-search/transaction-search-tile/transaction-search-sales-line-select-tile/transaction-search-sales-line-select-tile.component.js +34 -6
  15. package/esm2015/lib/component/transaction-search/transaction-search-tile/transaction-search-sales-line-select-tile/transaction-search-sales-line-select-tile.module.js +12 -2
  16. package/esm2015/lib/service/transaction-connector-adapter.service.js +14 -1
  17. package/esm2015/lib/service/transaction-connector.service.js +6 -1
  18. package/esm2015/lib/service/transaction-payment.service.js +2 -2
  19. package/esm2015/lib/service/transaction.service.js +6 -1
  20. package/esm2015/lib/transaction-version.js +3 -3
  21. package/fesm2015/colijnit-transaction.js +188 -41
  22. package/fesm2015/colijnit-transaction.js.map +1 -1
  23. package/lib/component/dialog/transaction-search/components/transaction-search-header/style/_layout.scss +16 -23
  24. package/lib/component/dialog/transaction-search/dialog-transaction-search.component.d.ts +6 -0
  25. package/lib/component/dialog/transaction-search/style/_layout.scss +44 -0
  26. package/lib/component/transaction-header/transaction-header-popup/transaction-header-popup-create-service.component.d.ts +10 -1
  27. package/lib/component/transaction-search/transaction-search-tile/transaction-search-sales-line-select-tile/style/_layout.scss +208 -0
  28. package/lib/component/transaction-search/transaction-search-tile/transaction-search-sales-line-select-tile/transaction-line-tile/style/_layout.scss +37 -0
  29. package/lib/component/transaction-search/transaction-search-tile/transaction-search-sales-line-select-tile/transaction-line-tile/style/_material-definition.scss +0 -0
  30. package/lib/component/transaction-search/transaction-search-tile/transaction-search-sales-line-select-tile/transaction-line-tile/style/_theme.scss +4 -0
  31. package/lib/component/transaction-search/transaction-search-tile/transaction-search-sales-line-select-tile/transaction-line-tile/style/material.scss +5 -0
  32. package/lib/component/transaction-search/transaction-search-tile/transaction-search-sales-line-select-tile/transaction-line-tile/transaction-line-tile.component.d.ts +11 -0
  33. package/lib/component/transaction-search/transaction-search-tile/transaction-search-sales-line-select-tile/transaction-line-tile/transaction-line-tile.module.d.ts +2 -0
  34. package/lib/component/transaction-search/transaction-search-tile/transaction-search-sales-line-select-tile/transaction-search-sales-line-select-tile.component.d.ts +10 -1
  35. package/lib/service/transaction-connector-adapter.service.d.ts +2 -0
  36. package/lib/service/transaction-connector.service.d.ts +2 -0
  37. package/lib/service/transaction.service.d.ts +2 -0
  38. package/package.json +2 -2
@@ -39,7 +39,7 @@ export class TransactionPaymentService {
39
39
  handlePayment() {
40
40
  return __awaiter(this, void 0, void 0, function* () {
41
41
  if (this.amountToPay === 0) {
42
- return;
42
+ this._handlePayment();
43
43
  }
44
44
  this.statusMessage = "";
45
45
  this.cancelUrl = "";
@@ -203,4 +203,4 @@ TransactionPaymentService.ctorParameters = () => [
203
203
  { type: DictionaryService },
204
204
  { type: HttpClient }
205
205
  ];
206
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tcGF5bWVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJhbnNhY3Rpb24vc3JjL2xpYi9zZXJ2aWNlL3RyYW5zYWN0aW9uLXBheW1lbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFVBQVUsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUNwRCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSx5REFBeUQsQ0FBQztBQUV6RixPQUFPLEVBQUMsa0NBQWtDLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUczRixPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxtRUFBbUUsQ0FBQztBQUN4RyxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzdCLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBR3BFLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUtoRCxNQUFNLE9BQU8seUJBQXlCO0lBNENwQyxZQUNVLHdCQUFpRCxFQUNqRCx3QkFBNEQsRUFDNUQsa0JBQXFDLEVBQ3JDLEtBQWlCO1FBSGpCLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBeUI7UUFDakQsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUFvQztRQUM1RCx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW1CO1FBQ3JDLFVBQUssR0FBTCxLQUFLLENBQVk7UUE5Q3BCLFdBQU0sR0FBVyxDQUFDLENBQUM7UUFDbkIsZ0JBQVcsR0FBVyxDQUFDLENBQUM7UUFzQnhCLGtCQUFhLEdBQVksS0FBSyxDQUFDO1FBQy9CLHFCQUFnQixHQUFZLElBQUksQ0FBQztRQUdqQyxVQUFLLEdBQWtCLElBQUksT0FBTyxFQUFRLENBQUM7UUFDM0Msa0JBQWEsR0FBa0IsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUNuRCw0QkFBdUIsR0FBa0IsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUM3RCwwQkFBcUIsR0FBa0IsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUUzRCxzQ0FBaUMsR0FBWSxLQUFLLENBQUM7UUFNbEQsaUNBQTRCLEdBQVcsSUFBSSxDQUFDO1FBQzVDLGtDQUE2QixHQUFXLEVBQUUsQ0FBQztRQUMzQyxvQ0FBK0IsR0FBVyxDQUFDLENBQUM7SUFRcEQsQ0FBQztJQTFDRCxJQUFXLG9CQUFvQixDQUFDLEtBQW9CO1FBQ2xELElBQUksQ0FBQyxxQkFBcUIsR0FBRyxLQUFLLENBQUM7UUFDbkMsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUNELElBQVcsb0JBQW9CO1FBQzdCLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixDQUFDO0lBQ3BDLENBQUM7SUFzQ0QsV0FBVztRQUNULElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRVksYUFBYTs7WUFDeEIsSUFBSSxJQUFJLENBQUMsV0FBVyxLQUFLLENBQUMsRUFBRTtnQkFDMUIsT0FBTzthQUNSO1lBQ0QsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7WUFDcEIsTUFBTSxPQUFPLEdBQXFCLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztZQUN6RCxPQUFPLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7WUFDL0IsT0FBTyxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUM7WUFDM0QsT0FBTyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1lBQ2xDLE9BQU8sQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztZQUNyQyxPQUFPLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7WUFDN0MsT0FBTyxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztZQUN2RCxPQUFPLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDO1lBQ3pELElBQUksSUFBSSxDQUFDLG9CQUFvQixJQUFJLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLGNBQWM7Z0JBQzNGLElBQUksa0JBQWtCLEdBQVcsRUFBRSxDQUFDO2dCQUNwQyxJQUFJLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxXQUFXLEVBQUU7b0JBQ3pDLGtCQUFrQixHQUFHLE1BQU0sSUFBSSxDQUFDLHdCQUF3QixDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztpQkFDN0U7cUJBQU07b0JBQ0wsSUFBSSxDQUFDLGNBQWMsR0FBRyxNQUFNLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyw4QkFBOEIsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDO29CQUNqSyxJQUFJLElBQUksQ0FBQyxjQUFjLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUU7d0JBQzFELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLFdBQVcsQ0FBQyxDQUFDO3dCQUN2RixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDO3dCQUN6QyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQzt3QkFDMUIsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQztxQkFDN0Q7aUJBQ0Y7Z0JBQ0QsSUFBSSxrQkFBa0IsRUFBRTtvQkFDdEIsSUFBSSxDQUFDLCtCQUErQixHQUFHLENBQUMsQ0FBQztvQkFDekMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLGtCQUFrQixDQUFDLENBQUM7aUJBQ25EO2FBQ0Y7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLHdCQUF3QixDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBUyxFQUFFO29CQUMvRCxNQUFNLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO29CQUNoQyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUMzQixJQUFJLElBQUksQ0FBQyxXQUFXLEtBQUssQ0FBQyxFQUFFO3dCQUMxQixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7cUJBQ3ZCO2dCQUNILENBQUMsQ0FBQSxDQUFDLENBQUM7YUFDSjtRQUNILENBQUM7S0FBQTtJQUVNLGFBQWE7UUFDbEIsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxTQUFTLENBQUM7Z0JBQzVDLGtCQUFrQjtnQkFDbEIsdUJBQXVCO2dCQUN2QixLQUFLO2dCQUNMLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRTtvQkFDYixPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN2QixDQUFDO2FBQ0YsQ0FBQyxDQUFBO1NBQ0g7SUFDSCxDQUFDO0lBRVksa0JBQWtCOztZQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRTtnQkFDekIsT0FBTzthQUNSO1lBQ0QsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7Z0JBQ3pCLE1BQU0sSUFBSSxHQUFrQyxNQUFNLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7Z0JBQzVILElBQUksSUFBSSxFQUFFO29CQUNSLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDO2lCQUNoRDthQUNGO2lCQUFNLElBQUksSUFBSSxDQUFDLGlDQUFpQyxFQUFDO2dCQUNoRCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7YUFDaEM7aUJBQU07Z0JBQ0wsTUFBTSxJQUFJLEdBQXFDLE1BQU0sSUFBSSxDQUFDLHdCQUF3QixDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztnQkFDbEksSUFBSSxJQUFJLEVBQUU7b0JBQ1IsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7aUJBQ25EO2FBQ0Y7UUFDSCxDQUFDO0tBQUE7SUFFYSx3QkFBd0IsQ0FBQyxrQkFBMEI7O1lBQy9ELElBQUksa0JBQWtCLEVBQUU7Z0JBQ3RCLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDcEMsTUFBTSxTQUFTLEdBQXlCLE1BQU0sSUFBSSxDQUFDLHdCQUF3QixDQUFDLHVCQUF1QixDQUFDLGtCQUFrQixDQUFDLENBQUM7Z0JBQ3hILElBQUksU0FBUyxJQUFJLFNBQVMsQ0FBQyxNQUFNLEVBQUU7b0JBQ2pDLElBQUksQ0FBQyxhQUFhLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUM7b0JBQ2xELElBQUksU0FBUyxDQUFDLFNBQVMsRUFBRTt3QkFDdkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDO3FCQUN0QztpQkFDRjtnQkFDRCxJQUFJLFNBQVMsSUFBSSxTQUFTLENBQUMsVUFBVSxJQUFJLFNBQVMsQ0FBQyxNQUFNLElBQUksU0FBUyxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUU7b0JBQ3ZGLElBQUksU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUsscUJBQXFCLENBQUMsSUFBSSxFQUFFO3dCQUN4RCxNQUFNLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO3dCQUNoQyxJQUFJLElBQUksQ0FBQyxXQUFXLEtBQUssQ0FBQyxFQUFFOzRCQUMxQixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7NEJBQ3RCLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQzs0QkFDbEMsT0FBTzt5QkFDUjtxQkFDRjtpQkFDRjtnQkFDRCxJQUFJLENBQUMsK0JBQStCLEVBQUUsQ0FBQztnQkFDdkMsSUFBSSxDQUFDLHNCQUFzQixHQUFHLFdBQVcsQ0FBQyxHQUFTLEVBQUU7b0JBQ25ELElBQUksSUFBSSxDQUFDLCtCQUErQixJQUFJLElBQUksQ0FBQyw2QkFBNkIsRUFBRTt3QkFDOUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO3dCQUN0QixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztxQkFDN0I7eUJBQU07d0JBQ0wsTUFBTSxTQUFTLEdBQXlCLE1BQU0sSUFBSSxDQUFDLHdCQUF3QixDQUFDLHVCQUF1QixDQUFDLGtCQUFrQixDQUFDLENBQUM7d0JBQ3hILElBQUksU0FBUyxJQUFJLFNBQVMsQ0FBQyxNQUFNLEVBQUU7NEJBQ2pDLElBQUksQ0FBQyxhQUFhLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUM7NEJBQ2xELElBQUksU0FBUyxDQUFDLFNBQVMsRUFBRTtnQ0FDdkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDOzZCQUN0Qzt5QkFDRjt3QkFDRCxJQUFJLFNBQVMsSUFBSSxTQUFTLENBQUMsVUFBVSxJQUFJLFNBQVMsQ0FBQyxNQUFNLElBQUksU0FBUyxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUU7NEJBQ3ZGLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDOzRCQUNwQixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7NEJBQ3RCLElBQUksU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUsscUJBQXFCLENBQUMsSUFBSSxFQUFFO2dDQUN4RCxNQUFNLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO2dDQUNoQyxJQUFJLElBQUksQ0FBQyxXQUFXLEtBQUssQ0FBQyxFQUFFO29DQUMxQixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7aUNBQ3ZCOzZCQUNGO2lDQUFNO2dDQUNMLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDOzZCQUM3Qjt5QkFDRjt3QkFDRCxJQUFJLENBQUMsK0JBQStCLEVBQUUsQ0FBQztxQkFDeEM7Z0JBQ0gsQ0FBQyxDQUFBLEVBQUUsSUFBSSxDQUFDLDRCQUE0QixDQUFDLENBQUM7YUFDdkM7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO2FBQ3ZCO1FBQ0gsQ0FBQztLQUFBO0lBRU8sY0FBYyxDQUFDLFlBQXFCLElBQUk7UUFDOUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2xDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUM1RCxJQUFJLFNBQVMsRUFBRTtZQUNiLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDbkI7UUFDRCxJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRU8sb0JBQW9CO1FBQzFCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3BFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNsQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFTyxjQUFjO1FBQ3BCLGFBQWEsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMsc0JBQXNCLEdBQUcsU0FBUyxDQUFDO0lBQzFDLENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxHQUFXLEVBQUUsUUFBZ0I7UUFDcEQsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sR0FBRyxRQUFRLEdBQUcsVUFBVSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQzFELENBQUM7OztZQS9NRixVQUFVOzs7WUFSSCx1QkFBdUI7WUFMdkIsa0NBQWtDO1lBUWxDLGlCQUFpQjtZQUNqQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlLCBPbkRlc3Ryb3l9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0RvUGF5bWVudFJlcXVlc3R9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9kby1wYXltZW50LXJlcXVlc3QnO1xyXG5pbXBvcnQge1BheW1lbnRNZXRob2R9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9wYXltZW50LW1ldGhvZC5ibyc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25QYXltZW50Q29ubmVjdG9yU2VydmljZX0gZnJvbSAnLi90cmFuc2FjdGlvbi1wYXltZW50LWNvbm5lY3Rvci5zZXJ2aWNlJztcclxuaW1wb3J0IHtDcmVhdGVQYXltZW50TGlua1Jlc3VsdH0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2NyZWF0ZS1wYXltZW50LWxpbmstcmVzdWx0LmJvJztcclxuaW1wb3J0IHtQc3BUcmFuc2FjdGlvblN0YXR1c30gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3BzcC10cmFuc2FjdGlvbi1zdGF0dXMuYm8nO1xyXG5pbXBvcnQge0lvbmVQYXltZW50U3RhdHVzQ29kZX0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL2VudW0vaW9uZS1wYXltZW50LXN0YXR1cy1jb2RlLmVudW0nO1xyXG5pbXBvcnQge1N1YmplY3R9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlfSBmcm9tICcuL3RyYW5zYWN0aW9uLWV2ZW50LnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uRGVwb3NpdFBheW1lbnRJbmZvfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24tZGVwb3NpdC1wYXltZW50LWluZm8uYm8nO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uUmVnaXN0ZXJlZFBheW1lbnRJbmZvfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24tcmVnaXN0ZXJlZC1wYXltZW50LWluZm8uYm8nO1xyXG5pbXBvcnQge0RpY3Rpb25hcnlTZXJ2aWNlfSBmcm9tICcuL2RpY3Rpb25hcnkuc2VydmljZSc7XHJcbmltcG9ydCB7SHR0cENsaWVudH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQge1JlcG9ydExheW91dFNlbGVjdGlvblByaW50fSBmcm9tICdAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9yZXBvcnQtbGF5b3V0LXNlbGVjdGlvbi1wcmludC5ibyc7XHJcbmltcG9ydCB7UmVwb3J0TGF5b3V0U2VsZWN0aW9uRW1haWx9IGZyb20gJ0Bjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL3JlcG9ydC1sYXlvdXQtc2VsZWN0aW9uLWVtYWlsLmJvJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uUGF5bWVudFNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG5cclxuICBwdWJsaWMgYW1vdW50OiBudW1iZXIgPSAwO1xyXG4gIHB1YmxpYyBhbW91bnRUb1BheTogbnVtYmVyID0gMDtcclxuICBwdWJsaWMgc3RhdHVzTWVzc2FnZTogc3RyaW5nO1xyXG4gIHB1YmxpYyBicmFuY2g6IHN0cmluZztcclxuICBwdWJsaWMgdHJhbnNJZDogbnVtYmVyO1xyXG4gIHB1YmxpYyB0cmFuc2FjdGlvblV1aWQ6IHN0cmluZztcclxuICBwdWJsaWMgc2V0IGN1cnJlbnRQYXltZW50TWV0aG9kKHZhbHVlOiBQYXltZW50TWV0aG9kKSB7XHJcbiAgICB0aGlzLl9jdXJyZW50UGF5bWVudE1ldGhvZCA9IHZhbHVlO1xyXG4gICAgdGhpcy5zdGF0dXNNZXNzYWdlID0gXCJcIjtcclxuICB9XHJcbiAgcHVibGljIGdldCBjdXJyZW50UGF5bWVudE1ldGhvZCgpOiBQYXltZW50TWV0aG9kIHtcclxuICAgIHJldHVybiB0aGlzLl9jdXJyZW50UGF5bWVudE1ldGhvZDtcclxuICB9XHJcbiAgcHVibGljIGN1cnJlbmN5SWQ6IG51bWJlcjtcclxuICBwdWJsaWMgY2FzaFJlZ2lzdGVyTnI6IG51bWJlcjtcclxuICBwdWJsaWMgY2FzaFJlZ2lzdGVyR3JvdXBJZDogbnVtYmVyO1xyXG4gIHB1YmxpYyBjYXNoUmVnaXN0ZXJEcmF3ZXJJZDogbnVtYmVyO1xyXG4gIHB1YmxpYyBwcmludGVyTmFtZTogc3RyaW5nO1xyXG4gIHB1YmxpYyBwcmludGVyTGF5b3V0OiBSZXBvcnRMYXlvdXRTZWxlY3Rpb25QcmludDtcclxuICBwdWJsaWMgZW1haWxMYXlvdXQ6IFJlcG9ydExheW91dFNlbGVjdGlvbkVtYWlsO1xyXG5cclxuICBwdWJsaWMgcXJDb2RlSW1hZ2U6IHN0cmluZztcclxuICBwdWJsaWMgcXJDb2RlVXJsOiBzdHJpbmc7XHJcbiAgcHVibGljIHNob3dQc3BRckNvZGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgZ2V0RGVwb3NpdEFtb3VudDogYm9vbGVhbiA9IHRydWU7XHJcbiAgcHVibGljIGNhbmNlbFVybDogc3RyaW5nO1xyXG5cclxuICBwdWJsaWMgcGF5ZWQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIHB1YmxpYyBwYXltZW50RmFpbGVkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBwdWJsaWMgcG9sbGluZ0ZvclN0YXR1c1N0YXJ0ZWQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIHB1YmxpYyBwb2xsaW5nRm9yU3RhdHVzRW5kZWQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cclxuICBwdWJsaWMgZG9Ob3RGZXRjaEFtb3VudFRvUGF5Rm9yUmVtYWluaW5nOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG5cclxuICBwcml2YXRlIF9jdXJyZW50UGF5bWVudE1ldGhvZDogUGF5bWVudE1ldGhvZDtcclxuICBwcml2YXRlIF9wYXltZW50UmVzdWx0OiBDcmVhdGVQYXltZW50TGlua1Jlc3VsdDtcclxuICBwcml2YXRlIF9wYXltZW50U3RhdHVzSW50ZXJ2YWw6IGFueTtcclxuICBwcml2YXRlIF9wYXltZW50U3RhdHVzUG9sbEludGVydmFsTXM6IG51bWJlciA9IDUwMDA7XHJcbiAgcHJpdmF0ZSBfcGF5bWVudFN0YXR1c01heFBvbGxJbnRlcnZhbDogbnVtYmVyID0gNjA7XHJcbiAgcHJpdmF0ZSBfcGF5bWVudFN0YXR1c1BvbGxJbnRlcnZhbENvdW50OiBudW1iZXIgPSAwO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX3RyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlOiBUcmFuc2FjdGlvbkV2ZW50U2VydmljZSxcclxuICAgIHByaXZhdGUgX3BheW1lbnRDb25uZWN0b3JTZXJ2aWNlOiBUcmFuc2FjdGlvblBheW1lbnRDb25uZWN0b3JTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfZGljdGlvbmFyeVNlcnZpY2U6IERpY3Rpb25hcnlTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfaHR0cDogSHR0cENsaWVudFxyXG4gICkge1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLl9jbGVhckludGVydmFsKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgaGFuZGxlUGF5bWVudCgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGlmICh0aGlzLmFtb3VudFRvUGF5ID09PSAwKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuc3RhdHVzTWVzc2FnZSA9IFwiXCI7XHJcbiAgICB0aGlzLmNhbmNlbFVybCA9IFwiXCI7XHJcbiAgICBjb25zdCByZXF1ZXN0OiBEb1BheW1lbnRSZXF1ZXN0ID0gbmV3IERvUGF5bWVudFJlcXVlc3QoKTtcclxuICAgIHJlcXVlc3QudHJhbnNJZCA9IHRoaXMudHJhbnNJZDtcclxuICAgIHJlcXVlc3QucGF5bWVudE1ldGhvZENvZGUgPSB0aGlzLmN1cnJlbnRQYXltZW50TWV0aG9kLmNvZGU7XHJcbiAgICByZXF1ZXN0LmFtb3VudCA9IHRoaXMuYW1vdW50VG9QYXk7XHJcbiAgICByZXF1ZXN0LmN1cnJlbmN5SWQgPSB0aGlzLmN1cnJlbmN5SWQ7XHJcbiAgICByZXF1ZXN0LmNhc2hSZWdpc3Rlck5yID0gdGhpcy5jYXNoUmVnaXN0ZXJOcjtcclxuICAgIHJlcXVlc3QuY2FzaFJlZ2lzdGVyR3JvdXBJZCA9IHRoaXMuY2FzaFJlZ2lzdGVyR3JvdXBJZDtcclxuICAgIHJlcXVlc3QuY2FzaFJlZ2lzdGVyRHJhd2VySWQgPSB0aGlzLmNhc2hSZWdpc3RlckRyYXdlcklkO1xyXG4gICAgaWYgKHRoaXMuY3VycmVudFBheW1lbnRNZXRob2QgJiYgdGhpcy5jdXJyZW50UGF5bWVudE1ldGhvZC5leHRlcm5hbFNvdXJjZUlkKSB7IC8vIHBzcCBwYXltZW50XHJcbiAgICAgIGxldCBwc3BUcmFuc2FjdGlvblV1aWQ6IHN0cmluZyA9IFwiXCI7XHJcbiAgICAgIGlmICh0aGlzLmN1cnJlbnRQYXltZW50TWV0aG9kLnBpblRlcm1pbmFsKSB7XHJcbiAgICAgICAgcHNwVHJhbnNhY3Rpb25VdWlkID0gYXdhaXQgdGhpcy5fcGF5bWVudENvbm5lY3RvclNlcnZpY2UuZG9QYXltZW50KHJlcXVlc3QpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuX3BheW1lbnRSZXN1bHQgPSBhd2FpdCB0aGlzLl9wYXltZW50Q29ubmVjdG9yU2VydmljZS5jcmVhdGVJb25lUGF5bWVudExpbmtBbmRRUkNvZGUodGhpcy50cmFuc2FjdGlvblV1aWQsIHRoaXMuYW1vdW50VG9QYXksIHRoaXMuY3VycmVudFBheW1lbnRNZXRob2QuY29kZSk7XHJcbiAgICAgICAgaWYgKHRoaXMuX3BheW1lbnRSZXN1bHQgJiYgdGhpcy5fcGF5bWVudFJlc3VsdC5pbWFnZUJhc2U2NCkge1xyXG4gICAgICAgICAgdGhpcy5xckNvZGVJbWFnZSA9IHRoaXMuX2RhdGFVcmlUb0Jhc2U2NCh0aGlzLl9wYXltZW50UmVzdWx0LmltYWdlQmFzZTY0LCAnaW1hZ2UvcG5nJyk7XHJcbiAgICAgICAgICB0aGlzLnFyQ29kZVVybCA9IHRoaXMuX3BheW1lbnRSZXN1bHQudXJsO1xyXG4gICAgICAgICAgdGhpcy5zaG93UHNwUXJDb2RlID0gdHJ1ZTtcclxuICAgICAgICAgIHBzcFRyYW5zYWN0aW9uVXVpZCA9IHRoaXMuX3BheW1lbnRSZXN1bHQucHNwVHJhbnNhY3Rpb25VVUlEO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZiAocHNwVHJhbnNhY3Rpb25VdWlkKSB7XHJcbiAgICAgICAgdGhpcy5fcGF5bWVudFN0YXR1c1BvbGxJbnRlcnZhbENvdW50ID0gMDtcclxuICAgICAgICB0aGlzLl93YWl0Rm9yUGluUGF5bWVudFN0YXR1cyhwc3BUcmFuc2FjdGlvblV1aWQpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9wYXltZW50Q29ubmVjdG9yU2VydmljZS5kb1BheW1lbnQocmVxdWVzdCkudGhlbihhc3luYyAoKSA9PiB7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5wcmVwYXJlUGF5bWVudEluZm8oKTtcclxuICAgICAgICB0aGlzLl9oYW5kbGVQYXltZW50KGZhbHNlKTtcclxuICAgICAgICBpZiAodGhpcy5hbW91bnRUb1BheSA9PT0gMCkge1xyXG4gICAgICAgICAgdGhpcy5faGFuZGxlUGF5bWVudCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2FuY2VsUGF5bWVudCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmNhbmNlbFVybCkge1xyXG4gICAgICB0aGlzLl9odHRwLmdldDxhbnk+KHRoaXMuY2FuY2VsVXJsKS5zdWJzY3JpYmUoe1xyXG4gICAgICAgIC8vIG5leHQ6IGRhdGEgPT4ge1xyXG4gICAgICAgIC8vICAgY29uc29sZS5sb2coZGF0YSk7XHJcbiAgICAgICAgLy8gfSxcclxuICAgICAgICBlcnJvcjogZXJyb3IgPT4ge1xyXG4gICAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIHByZXBhcmVQYXltZW50SW5mbygpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGlmICghdGhpcy50cmFuc2FjdGlvblV1aWQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuZ2V0RGVwb3NpdEFtb3VudCkge1xyXG4gICAgICBjb25zdCBpbmZvOiBUcmFuc2FjdGlvbkRlcG9zaXRQYXltZW50SW5mbyA9IGF3YWl0IHRoaXMuX3BheW1lbnRDb25uZWN0b3JTZXJ2aWNlLmdldERlcG9zaXRQYXltZW50SW5mbyh0aGlzLnRyYW5zYWN0aW9uVXVpZCk7XHJcbiAgICAgIGlmIChpbmZvKSB7XHJcbiAgICAgICAgdGhpcy5hbW91bnRUb1BheSA9IGluZm8uZGVwb3NpdFJlbWFpbmRlckFtb3VudDtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIGlmICh0aGlzLmRvTm90RmV0Y2hBbW91bnRUb1BheUZvclJlbWFpbmluZyl7XHJcbiAgICAgIHRoaXMuYW1vdW50VG9QYXkgPSB0aGlzLmFtb3VudDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IGluZm86IFRyYW5zYWN0aW9uUmVnaXN0ZXJlZFBheW1lbnRJbmZvID0gYXdhaXQgdGhpcy5fcGF5bWVudENvbm5lY3RvclNlcnZpY2UuZ2V0UmVnaXN0ZXJlZFBheW1lbnRJbmZvKHRoaXMudHJhbnNhY3Rpb25VdWlkKTtcclxuICAgICAgaWYgKGluZm8pIHtcclxuICAgICAgICB0aGlzLmFtb3VudFRvUGF5ID0gdGhpcy5hbW91bnQgLSBpbmZvLnRvdGFsQW1vdW50O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIF93YWl0Rm9yUGluUGF5bWVudFN0YXR1cyhwc3BUcmFuc2FjdGlvblV1aWQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYgKHBzcFRyYW5zYWN0aW9uVXVpZCkge1xyXG4gICAgICB0aGlzLnBvbGxpbmdGb3JTdGF0dXNTdGFydGVkLm5leHQoKTtcclxuICAgICAgY29uc3QgcGluU3RhdHVzOiBQc3BUcmFuc2FjdGlvblN0YXR1cyA9IGF3YWl0IHRoaXMuX3BheW1lbnRDb25uZWN0b3JTZXJ2aWNlLmdldFBzcFRyYW5zYWN0aW9uU3RhdHVzKHBzcFRyYW5zYWN0aW9uVXVpZCk7XHJcbiAgICAgIGlmIChwaW5TdGF0dXMgJiYgcGluU3RhdHVzLnN0YXR1cykge1xyXG4gICAgICAgIHRoaXMuc3RhdHVzTWVzc2FnZSA9IHBpblN0YXR1cy5zdGF0dXMuZGVzY3JpcHRpb247XHJcbiAgICAgICAgaWYgKHBpblN0YXR1cy5jYW5jZWxVcmwpIHtcclxuICAgICAgICAgIHRoaXMuY2FuY2VsVXJsID0gcGluU3RhdHVzLmNhbmNlbFVybDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHBpblN0YXR1cyAmJiBwaW5TdGF0dXMuc3RhdHVzRGF0ZSAmJiBwaW5TdGF0dXMuc3RhdHVzICYmIHBpblN0YXR1cy5zdGF0dXMuZW5kU3RhdHVzKSB7XHJcbiAgICAgICAgaWYgKHBpblN0YXR1cy5zdGF0dXMuY29kZSA9PT0gSW9uZVBheW1lbnRTdGF0dXNDb2RlLlBBSUQpIHtcclxuICAgICAgICAgIGF3YWl0IHRoaXMucHJlcGFyZVBheW1lbnRJbmZvKCk7XHJcbiAgICAgICAgICBpZiAodGhpcy5hbW91bnRUb1BheSA9PT0gMCkge1xyXG4gICAgICAgICAgICB0aGlzLl9oYW5kbGVQYXltZW50KCk7XHJcbiAgICAgICAgICAgIHRoaXMucG9sbGluZ0ZvclN0YXR1c0VuZGVkLm5leHQoKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICB0aGlzLl9wYXltZW50U3RhdHVzUG9sbEludGVydmFsQ291bnQrKztcclxuICAgICAgdGhpcy5fcGF5bWVudFN0YXR1c0ludGVydmFsID0gc2V0SW50ZXJ2YWwoYXN5bmMgKCkgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLl9wYXltZW50U3RhdHVzUG9sbEludGVydmFsQ291bnQgPj0gdGhpcy5fcGF5bWVudFN0YXR1c01heFBvbGxJbnRlcnZhbCkge1xyXG4gICAgICAgICAgdGhpcy5fY2xlYXJJbnRlcnZhbCgpO1xyXG4gICAgICAgICAgdGhpcy5faGFuZGxlUGF5bWVudEZhaWxlZCgpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBjb25zdCBwaW5TdGF0dXM6IFBzcFRyYW5zYWN0aW9uU3RhdHVzID0gYXdhaXQgdGhpcy5fcGF5bWVudENvbm5lY3RvclNlcnZpY2UuZ2V0UHNwVHJhbnNhY3Rpb25TdGF0dXMocHNwVHJhbnNhY3Rpb25VdWlkKTtcclxuICAgICAgICAgIGlmIChwaW5TdGF0dXMgJiYgcGluU3RhdHVzLnN0YXR1cykge1xyXG4gICAgICAgICAgICB0aGlzLnN0YXR1c01lc3NhZ2UgPSBwaW5TdGF0dXMuc3RhdHVzLmRlc2NyaXB0aW9uO1xyXG4gICAgICAgICAgICBpZiAocGluU3RhdHVzLmNhbmNlbFVybCkge1xyXG4gICAgICAgICAgICAgIHRoaXMuY2FuY2VsVXJsID0gcGluU3RhdHVzLmNhbmNlbFVybDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKHBpblN0YXR1cyAmJiBwaW5TdGF0dXMuc3RhdHVzRGF0ZSAmJiBwaW5TdGF0dXMuc3RhdHVzICYmIHBpblN0YXR1cy5zdGF0dXMuZW5kU3RhdHVzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2FuY2VsVXJsID0gXCJcIjtcclxuICAgICAgICAgICAgdGhpcy5fY2xlYXJJbnRlcnZhbCgpO1xyXG4gICAgICAgICAgICBpZiAocGluU3RhdHVzLnN0YXR1cy5jb2RlID09PSBJb25lUGF5bWVudFN0YXR1c0NvZGUuUEFJRCkge1xyXG4gICAgICAgICAgICAgIGF3YWl0IHRoaXMucHJlcGFyZVBheW1lbnRJbmZvKCk7XHJcbiAgICAgICAgICAgICAgaWYgKHRoaXMuYW1vdW50VG9QYXkgPT09IDApIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2hhbmRsZVBheW1lbnQoKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5faGFuZGxlUGF5bWVudEZhaWxlZCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLl9wYXltZW50U3RhdHVzUG9sbEludGVydmFsQ291bnQrKztcclxuICAgICAgICB9XHJcbiAgICAgIH0sIHRoaXMuX3BheW1lbnRTdGF0dXNQb2xsSW50ZXJ2YWxNcyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9jbGVhckludGVydmFsKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9oYW5kbGVQYXltZW50KGVtaXRQYXllZDogYm9vbGVhbiA9IHRydWUpOiB2b2lkIHtcclxuICAgIHRoaXMucG9sbGluZ0ZvclN0YXR1c0VuZGVkLm5leHQoKTtcclxuICAgIHRoaXMuX3RyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLnRyYW5zYWN0aW9uUGF5bWVudERvbmUubmV4dCgpO1xyXG4gICAgaWYgKGVtaXRQYXllZCkge1xyXG4gICAgICB0aGlzLnBheWVkLm5leHQoKTtcclxuICAgIH1cclxuICAgIHRoaXMuY2FuY2VsVXJsID0gXCJcIjtcclxuICAgIHRoaXMuc3RhdHVzTWVzc2FnZSA9IFwiXCI7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9oYW5kbGVQYXltZW50RmFpbGVkKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdGF0dXNNZXNzYWdlID0gdGhpcy5fZGljdGlvbmFyeVNlcnZpY2UuZ2V0KCdQQVlNRU5UX1RJTUVPVVQnKTtcclxuICAgIHRoaXMucG9sbGluZ0ZvclN0YXR1c0VuZGVkLm5leHQoKTtcclxuICAgIHRoaXMucGF5bWVudEZhaWxlZC5uZXh0KCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9jbGVhckludGVydmFsKCk6IHZvaWQge1xyXG4gICAgY2xlYXJJbnRlcnZhbCh0aGlzLl9wYXltZW50U3RhdHVzSW50ZXJ2YWwpO1xyXG4gICAgdGhpcy5fcGF5bWVudFN0YXR1c0ludGVydmFsID0gdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfZGF0YVVyaVRvQmFzZTY0KHVyaTogc3RyaW5nLCBtaW1lVHlwZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB1cmkgPyBcImRhdGE6XCIgKyBtaW1lVHlwZSArIFwiO2Jhc2U2NCxcIiArIHVyaSA6IFwiXCI7XHJcbiAgfVxyXG59XHJcbiJdfQ==
206
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tcGF5bWVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJhbnNhY3Rpb24vc3JjL2xpYi9zZXJ2aWNlL3RyYW5zYWN0aW9uLXBheW1lbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFVBQVUsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUNwRCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSx5REFBeUQsQ0FBQztBQUV6RixPQUFPLEVBQUMsa0NBQWtDLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUczRixPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxtRUFBbUUsQ0FBQztBQUN4RyxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzdCLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBR3BFLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUtoRCxNQUFNLE9BQU8seUJBQXlCO0lBNENwQyxZQUNVLHdCQUFpRCxFQUNqRCx3QkFBNEQsRUFDNUQsa0JBQXFDLEVBQ3JDLEtBQWlCO1FBSGpCLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBeUI7UUFDakQsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUFvQztRQUM1RCx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW1CO1FBQ3JDLFVBQUssR0FBTCxLQUFLLENBQVk7UUE5Q3BCLFdBQU0sR0FBVyxDQUFDLENBQUM7UUFDbkIsZ0JBQVcsR0FBVyxDQUFDLENBQUM7UUFzQnhCLGtCQUFhLEdBQVksS0FBSyxDQUFDO1FBQy9CLHFCQUFnQixHQUFZLElBQUksQ0FBQztRQUdqQyxVQUFLLEdBQWtCLElBQUksT0FBTyxFQUFRLENBQUM7UUFDM0Msa0JBQWEs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a0NBQWtDO1lBUWxDLGlCQUFpQjtZQUNqQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlLCBPbkRlc3Ryb3l9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0RvUGF5bWVudFJlcXVlc3R9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9kby1wYXltZW50LXJlcXVlc3QnO1xyXG5pbXBvcnQge1BheW1lbnRNZXRob2R9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9wYXltZW50LW1ldGhvZC5ibyc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25QYXltZW50Q29ubmVjdG9yU2VydmljZX0gZnJvbSAnLi90cmFuc2FjdGlvbi1wYXltZW50LWNvbm5lY3Rvci5zZXJ2aWNlJztcclxuaW1wb3J0IHtDcmVhdGVQYXltZW50TGlua1Jlc3VsdH0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2NyZWF0ZS1wYXltZW50LWxpbmstcmVzdWx0LmJvJztcclxuaW1wb3J0IHtQc3BUcmFuc2FjdGlvblN0YXR1c30gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3BzcC10cmFuc2FjdGlvbi1zdGF0dXMuYm8nO1xyXG5pbXBvcnQge0lvbmVQYXltZW50U3RhdHVzQ29kZX0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL2VudW0vaW9uZS1wYXltZW50LXN0YXR1cy1jb2RlLmVudW0nO1xyXG5pbXBvcnQge1N1YmplY3R9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlfSBmcm9tICcuL3RyYW5zYWN0aW9uLWV2ZW50LnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uRGVwb3NpdFBheW1lbnRJbmZvfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24tZGVwb3NpdC1wYXltZW50LWluZm8uYm8nO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uUmVnaXN0ZXJlZFBheW1lbnRJbmZvfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24tcmVnaXN0ZXJlZC1wYXltZW50LWluZm8uYm8nO1xyXG5pbXBvcnQge0RpY3Rpb25hcnlTZXJ2aWNlfSBmcm9tICcuL2RpY3Rpb25hcnkuc2VydmljZSc7XHJcbmltcG9ydCB7SHR0cENsaWVudH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQge1JlcG9ydExheW91dFNlbGVjdGlvblByaW50fSBmcm9tICdAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9yZXBvcnQtbGF5b3V0LXNlbGVjdGlvbi1wcmludC5ibyc7XHJcbmltcG9ydCB7UmVwb3J0TGF5b3V0U2VsZWN0aW9uRW1haWx9IGZyb20gJ0Bjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL3JlcG9ydC1sYXlvdXQtc2VsZWN0aW9uLWVtYWlsLmJvJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uUGF5bWVudFNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG5cclxuICBwdWJsaWMgYW1vdW50OiBudW1iZXIgPSAwO1xyXG4gIHB1YmxpYyBhbW91bnRUb1BheTogbnVtYmVyID0gMDtcclxuICBwdWJsaWMgc3RhdHVzTWVzc2FnZTogc3RyaW5nO1xyXG4gIHB1YmxpYyBicmFuY2g6IHN0cmluZztcclxuICBwdWJsaWMgdHJhbnNJZDogbnVtYmVyO1xyXG4gIHB1YmxpYyB0cmFuc2FjdGlvblV1aWQ6IHN0cmluZztcclxuICBwdWJsaWMgc2V0IGN1cnJlbnRQYXltZW50TWV0aG9kKHZhbHVlOiBQYXltZW50TWV0aG9kKSB7XHJcbiAgICB0aGlzLl9jdXJyZW50UGF5bWVudE1ldGhvZCA9IHZhbHVlO1xyXG4gICAgdGhpcy5zdGF0dXNNZXNzYWdlID0gXCJcIjtcclxuICB9XHJcbiAgcHVibGljIGdldCBjdXJyZW50UGF5bWVudE1ldGhvZCgpOiBQYXltZW50TWV0aG9kIHtcclxuICAgIHJldHVybiB0aGlzLl9jdXJyZW50UGF5bWVudE1ldGhvZDtcclxuICB9XHJcbiAgcHVibGljIGN1cnJlbmN5SWQ6IG51bWJlcjtcclxuICBwdWJsaWMgY2FzaFJlZ2lzdGVyTnI6IG51bWJlcjtcclxuICBwdWJsaWMgY2FzaFJlZ2lzdGVyR3JvdXBJZDogbnVtYmVyO1xyXG4gIHB1YmxpYyBjYXNoUmVnaXN0ZXJEcmF3ZXJJZDogbnVtYmVyO1xyXG4gIHB1YmxpYyBwcmludGVyTmFtZTogc3RyaW5nO1xyXG4gIHB1YmxpYyBwcmludGVyTGF5b3V0OiBSZXBvcnRMYXlvdXRTZWxlY3Rpb25QcmludDtcclxuICBwdWJsaWMgZW1haWxMYXlvdXQ6IFJlcG9ydExheW91dFNlbGVjdGlvbkVtYWlsO1xyXG5cclxuICBwdWJsaWMgcXJDb2RlSW1hZ2U6IHN0cmluZztcclxuICBwdWJsaWMgcXJDb2RlVXJsOiBzdHJpbmc7XHJcbiAgcHVibGljIHNob3dQc3BRckNvZGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgZ2V0RGVwb3NpdEFtb3VudDogYm9vbGVhbiA9IHRydWU7XHJcbiAgcHVibGljIGNhbmNlbFVybDogc3RyaW5nO1xyXG5cclxuICBwdWJsaWMgcGF5ZWQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIHB1YmxpYyBwYXltZW50RmFpbGVkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBwdWJsaWMgcG9sbGluZ0ZvclN0YXR1c1N0YXJ0ZWQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIHB1YmxpYyBwb2xsaW5nRm9yU3RhdHVzRW5kZWQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cclxuICBwdWJsaWMgZG9Ob3RGZXRjaEFtb3VudFRvUGF5Rm9yUmVtYWluaW5nOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG5cclxuICBwcml2YXRlIF9jdXJyZW50UGF5bWVudE1ldGhvZDogUGF5bWVudE1ldGhvZDtcclxuICBwcml2YXRlIF9wYXltZW50UmVzdWx0OiBDcmVhdGVQYXltZW50TGlua1Jlc3VsdDtcclxuICBwcml2YXRlIF9wYXltZW50U3RhdHVzSW50ZXJ2YWw6IGFueTtcclxuICBwcml2YXRlIF9wYXltZW50U3RhdHVzUG9sbEludGVydmFsTXM6IG51bWJlciA9IDUwMDA7XHJcbiAgcHJpdmF0ZSBfcGF5bWVudFN0YXR1c01heFBvbGxJbnRlcnZhbDogbnVtYmVyID0gNjA7XHJcbiAgcHJpdmF0ZSBfcGF5bWVudFN0YXR1c1BvbGxJbnRlcnZhbENvdW50OiBudW1iZXIgPSAwO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX3RyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlOiBUcmFuc2FjdGlvbkV2ZW50U2VydmljZSxcclxuICAgIHByaXZhdGUgX3BheW1lbnRDb25uZWN0b3JTZXJ2aWNlOiBUcmFuc2FjdGlvblBheW1lbnRDb25uZWN0b3JTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfZGljdGlvbmFyeVNlcnZpY2U6IERpY3Rpb25hcnlTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfaHR0cDogSHR0cENsaWVudFxyXG4gICkge1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLl9jbGVhckludGVydmFsKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgaGFuZGxlUGF5bWVudCgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGlmICh0aGlzLmFtb3VudFRvUGF5ID09PSAwKSB7XHJcbiAgICAgIHRoaXMuX2hhbmRsZVBheW1lbnQoKTtcclxuICAgIH1cclxuICAgIHRoaXMuc3RhdHVzTWVzc2FnZSA9IFwiXCI7XHJcbiAgICB0aGlzLmNhbmNlbFVybCA9IFwiXCI7XHJcbiAgICBjb25zdCByZXF1ZXN0OiBEb1BheW1lbnRSZXF1ZXN0ID0gbmV3IERvUGF5bWVudFJlcXVlc3QoKTtcclxuICAgIHJlcXVlc3QudHJhbnNJZCA9IHRoaXMudHJhbnNJZDtcclxuICAgIHJlcXVlc3QucGF5bWVudE1ldGhvZENvZGUgPSB0aGlzLmN1cnJlbnRQYXltZW50TWV0aG9kLmNvZGU7XHJcbiAgICByZXF1ZXN0LmFtb3VudCA9IHRoaXMuYW1vdW50VG9QYXk7XHJcbiAgICByZXF1ZXN0LmN1cnJlbmN5SWQgPSB0aGlzLmN1cnJlbmN5SWQ7XHJcbiAgICByZXF1ZXN0LmNhc2hSZWdpc3Rlck5yID0gdGhpcy5jYXNoUmVnaXN0ZXJOcjtcclxuICAgIHJlcXVlc3QuY2FzaFJlZ2lzdGVyR3JvdXBJZCA9IHRoaXMuY2FzaFJlZ2lzdGVyR3JvdXBJZDtcclxuICAgIHJlcXVlc3QuY2FzaFJlZ2lzdGVyRHJhd2VySWQgPSB0aGlzLmNhc2hSZWdpc3RlckRyYXdlcklkO1xyXG4gICAgaWYgKHRoaXMuY3VycmVudFBheW1lbnRNZXRob2QgJiYgdGhpcy5jdXJyZW50UGF5bWVudE1ldGhvZC5leHRlcm5hbFNvdXJjZUlkKSB7IC8vIHBzcCBwYXltZW50XHJcbiAgICAgIGxldCBwc3BUcmFuc2FjdGlvblV1aWQ6IHN0cmluZyA9IFwiXCI7XHJcbiAgICAgIGlmICh0aGlzLmN1cnJlbnRQYXltZW50TWV0aG9kLnBpblRlcm1pbmFsKSB7XHJcbiAgICAgICAgcHNwVHJhbnNhY3Rpb25VdWlkID0gYXdhaXQgdGhpcy5fcGF5bWVudENvbm5lY3RvclNlcnZpY2UuZG9QYXltZW50KHJlcXVlc3QpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuX3BheW1lbnRSZXN1bHQgPSBhd2FpdCB0aGlzLl9wYXltZW50Q29ubmVjdG9yU2VydmljZS5jcmVhdGVJb25lUGF5bWVudExpbmtBbmRRUkNvZGUodGhpcy50cmFuc2FjdGlvblV1aWQsIHRoaXMuYW1vdW50VG9QYXksIHRoaXMuY3VycmVudFBheW1lbnRNZXRob2QuY29kZSk7XHJcbiAgICAgICAgaWYgKHRoaXMuX3BheW1lbnRSZXN1bHQgJiYgdGhpcy5fcGF5bWVudFJlc3VsdC5pbWFnZUJhc2U2NCkge1xyXG4gICAgICAgICAgdGhpcy5xckNvZGVJbWFnZSA9IHRoaXMuX2RhdGFVcmlUb0Jhc2U2NCh0aGlzLl9wYXltZW50UmVzdWx0LmltYWdlQmFzZTY0LCAnaW1hZ2UvcG5nJyk7XHJcbiAgICAgICAgICB0aGlzLnFyQ29kZVVybCA9IHRoaXMuX3BheW1lbnRSZXN1bHQudXJsO1xyXG4gICAgICAgICAgdGhpcy5zaG93UHNwUXJDb2RlID0gdHJ1ZTtcclxuICAgICAgICAgIHBzcFRyYW5zYWN0aW9uVXVpZCA9IHRoaXMuX3BheW1lbnRSZXN1bHQucHNwVHJhbnNhY3Rpb25VVUlEO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZiAocHNwVHJhbnNhY3Rpb25VdWlkKSB7XHJcbiAgICAgICAgdGhpcy5fcGF5bWVudFN0YXR1c1BvbGxJbnRlcnZhbENvdW50ID0gMDtcclxuICAgICAgICB0aGlzLl93YWl0Rm9yUGluUGF5bWVudFN0YXR1cyhwc3BUcmFuc2FjdGlvblV1aWQpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9wYXltZW50Q29ubmVjdG9yU2VydmljZS5kb1BheW1lbnQocmVxdWVzdCkudGhlbihhc3luYyAoKSA9PiB7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5wcmVwYXJlUGF5bWVudEluZm8oKTtcclxuICAgICAgICB0aGlzLl9oYW5kbGVQYXltZW50KGZhbHNlKTtcclxuICAgICAgICBpZiAodGhpcy5hbW91bnRUb1BheSA9PT0gMCkge1xyXG4gICAgICAgICAgdGhpcy5faGFuZGxlUGF5bWVudCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2FuY2VsUGF5bWVudCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmNhbmNlbFVybCkge1xyXG4gICAgICB0aGlzLl9odHRwLmdldDxhbnk+KHRoaXMuY2FuY2VsVXJsKS5zdWJzY3JpYmUoe1xyXG4gICAgICAgIC8vIG5leHQ6IGRhdGEgPT4ge1xyXG4gICAgICAgIC8vICAgY29uc29sZS5sb2coZGF0YSk7XHJcbiAgICAgICAgLy8gfSxcclxuICAgICAgICBlcnJvcjogZXJyb3IgPT4ge1xyXG4gICAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIHByZXBhcmVQYXltZW50SW5mbygpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGlmICghdGhpcy50cmFuc2FjdGlvblV1aWQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuZ2V0RGVwb3NpdEFtb3VudCkge1xyXG4gICAgICBjb25zdCBpbmZvOiBUcmFuc2FjdGlvbkRlcG9zaXRQYXltZW50SW5mbyA9IGF3YWl0IHRoaXMuX3BheW1lbnRDb25uZWN0b3JTZXJ2aWNlLmdldERlcG9zaXRQYXltZW50SW5mbyh0aGlzLnRyYW5zYWN0aW9uVXVpZCk7XHJcbiAgICAgIGlmIChpbmZvKSB7XHJcbiAgICAgICAgdGhpcy5hbW91bnRUb1BheSA9IGluZm8uZGVwb3NpdFJlbWFpbmRlckFtb3VudDtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIGlmICh0aGlzLmRvTm90RmV0Y2hBbW91bnRUb1BheUZvclJlbWFpbmluZyl7XHJcbiAgICAgIHRoaXMuYW1vdW50VG9QYXkgPSB0aGlzLmFtb3VudDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IGluZm86IFRyYW5zYWN0aW9uUmVnaXN0ZXJlZFBheW1lbnRJbmZvID0gYXdhaXQgdGhpcy5fcGF5bWVudENvbm5lY3RvclNlcnZpY2UuZ2V0UmVnaXN0ZXJlZFBheW1lbnRJbmZvKHRoaXMudHJhbnNhY3Rpb25VdWlkKTtcclxuICAgICAgaWYgKGluZm8pIHtcclxuICAgICAgICB0aGlzLmFtb3VudFRvUGF5ID0gdGhpcy5hbW91bnQgLSBpbmZvLnRvdGFsQW1vdW50O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIF93YWl0Rm9yUGluUGF5bWVudFN0YXR1cyhwc3BUcmFuc2FjdGlvblV1aWQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYgKHBzcFRyYW5zYWN0aW9uVXVpZCkge1xyXG4gICAgICB0aGlzLnBvbGxpbmdGb3JTdGF0dXNTdGFydGVkLm5leHQoKTtcclxuICAgICAgY29uc3QgcGluU3RhdHVzOiBQc3BUcmFuc2FjdGlvblN0YXR1cyA9IGF3YWl0IHRoaXMuX3BheW1lbnRDb25uZWN0b3JTZXJ2aWNlLmdldFBzcFRyYW5zYWN0aW9uU3RhdHVzKHBzcFRyYW5zYWN0aW9uVXVpZCk7XHJcbiAgICAgIGlmIChwaW5TdGF0dXMgJiYgcGluU3RhdHVzLnN0YXR1cykge1xyXG4gICAgICAgIHRoaXMuc3RhdHVzTWVzc2FnZSA9IHBpblN0YXR1cy5zdGF0dXMuZGVzY3JpcHRpb247XHJcbiAgICAgICAgaWYgKHBpblN0YXR1cy5jYW5jZWxVcmwpIHtcclxuICAgICAgICAgIHRoaXMuY2FuY2VsVXJsID0gcGluU3RhdHVzLmNhbmNlbFVybDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHBpblN0YXR1cyAmJiBwaW5TdGF0dXMuc3RhdHVzRGF0ZSAmJiBwaW5TdGF0dXMuc3RhdHVzICYmIHBpblN0YXR1cy5zdGF0dXMuZW5kU3RhdHVzKSB7XHJcbiAgICAgICAgaWYgKHBpblN0YXR1cy5zdGF0dXMuY29kZSA9PT0gSW9uZVBheW1lbnRTdGF0dXNDb2RlLlBBSUQpIHtcclxuICAgICAgICAgIGF3YWl0IHRoaXMucHJlcGFyZVBheW1lbnRJbmZvKCk7XHJcbiAgICAgICAgICBpZiAodGhpcy5hbW91bnRUb1BheSA9PT0gMCkge1xyXG4gICAgICAgICAgICB0aGlzLl9oYW5kbGVQYXltZW50KCk7XHJcbiAgICAgICAgICAgIHRoaXMucG9sbGluZ0ZvclN0YXR1c0VuZGVkLm5leHQoKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICB0aGlzLl9wYXltZW50U3RhdHVzUG9sbEludGVydmFsQ291bnQrKztcclxuICAgICAgdGhpcy5fcGF5bWVudFN0YXR1c0ludGVydmFsID0gc2V0SW50ZXJ2YWwoYXN5bmMgKCkgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLl9wYXltZW50U3RhdHVzUG9sbEludGVydmFsQ291bnQgPj0gdGhpcy5fcGF5bWVudFN0YXR1c01heFBvbGxJbnRlcnZhbCkge1xyXG4gICAgICAgICAgdGhpcy5fY2xlYXJJbnRlcnZhbCgpO1xyXG4gICAgICAgICAgdGhpcy5faGFuZGxlUGF5bWVudEZhaWxlZCgpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBjb25zdCBwaW5TdGF0dXM6IFBzcFRyYW5zYWN0aW9uU3RhdHVzID0gYXdhaXQgdGhpcy5fcGF5bWVudENvbm5lY3RvclNlcnZpY2UuZ2V0UHNwVHJhbnNhY3Rpb25TdGF0dXMocHNwVHJhbnNhY3Rpb25VdWlkKTtcclxuICAgICAgICAgIGlmIChwaW5TdGF0dXMgJiYgcGluU3RhdHVzLnN0YXR1cykge1xyXG4gICAgICAgICAgICB0aGlzLnN0YXR1c01lc3NhZ2UgPSBwaW5TdGF0dXMuc3RhdHVzLmRlc2NyaXB0aW9uO1xyXG4gICAgICAgICAgICBpZiAocGluU3RhdHVzLmNhbmNlbFVybCkge1xyXG4gICAgICAgICAgICAgIHRoaXMuY2FuY2VsVXJsID0gcGluU3RhdHVzLmNhbmNlbFVybDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKHBpblN0YXR1cyAmJiBwaW5TdGF0dXMuc3RhdHVzRGF0ZSAmJiBwaW5TdGF0dXMuc3RhdHVzICYmIHBpblN0YXR1cy5zdGF0dXMuZW5kU3RhdHVzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2FuY2VsVXJsID0gXCJcIjtcclxuICAgICAgICAgICAgdGhpcy5fY2xlYXJJbnRlcnZhbCgpO1xyXG4gICAgICAgICAgICBpZiAocGluU3RhdHVzLnN0YXR1cy5jb2RlID09PSBJb25lUGF5bWVudFN0YXR1c0NvZGUuUEFJRCkge1xyXG4gICAgICAgICAgICAgIGF3YWl0IHRoaXMucHJlcGFyZVBheW1lbnRJbmZvKCk7XHJcbiAgICAgICAgICAgICAgaWYgKHRoaXMuYW1vdW50VG9QYXkgPT09IDApIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2hhbmRsZVBheW1lbnQoKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5faGFuZGxlUGF5bWVudEZhaWxlZCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLl9wYXltZW50U3RhdHVzUG9sbEludGVydmFsQ291bnQrKztcclxuICAgICAgICB9XHJcbiAgICAgIH0sIHRoaXMuX3BheW1lbnRTdGF0dXNQb2xsSW50ZXJ2YWxNcyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9jbGVhckludGVydmFsKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9oYW5kbGVQYXltZW50KGVtaXRQYXllZDogYm9vbGVhbiA9IHRydWUpOiB2b2lkIHtcclxuICAgIHRoaXMucG9sbGluZ0ZvclN0YXR1c0VuZGVkLm5leHQoKTtcclxuICAgIHRoaXMuX3RyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLnRyYW5zYWN0aW9uUGF5bWVudERvbmUubmV4dCgpO1xyXG4gICAgaWYgKGVtaXRQYXllZCkge1xyXG4gICAgICB0aGlzLnBheWVkLm5leHQoKTtcclxuICAgIH1cclxuICAgIHRoaXMuY2FuY2VsVXJsID0gXCJcIjtcclxuICAgIHRoaXMuc3RhdHVzTWVzc2FnZSA9IFwiXCI7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9oYW5kbGVQYXltZW50RmFpbGVkKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdGF0dXNNZXNzYWdlID0gdGhpcy5fZGljdGlvbmFyeVNlcnZpY2UuZ2V0KCdQQVlNRU5UX1RJTUVPVVQnKTtcclxuICAgIHRoaXMucG9sbGluZ0ZvclN0YXR1c0VuZGVkLm5leHQoKTtcclxuICAgIHRoaXMucGF5bWVudEZhaWxlZC5uZXh0KCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9jbGVhckludGVydmFsKCk6IHZvaWQge1xyXG4gICAgY2xlYXJJbnRlcnZhbCh0aGlzLl9wYXltZW50U3RhdHVzSW50ZXJ2YWwpO1xyXG4gICAgdGhpcy5fcGF5bWVudFN0YXR1c0ludGVydmFsID0gdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfZGF0YVVyaVRvQmFzZTY0KHVyaTogc3RyaW5nLCBtaW1lVHlwZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB1cmkgPyBcImRhdGE6XCIgKyBtaW1lVHlwZSArIFwiO2Jhc2U2NCxcIiArIHVyaSA6IFwiXCI7XHJcbiAgfVxyXG59XHJcbiJdfQ==