@colijnit/transaction 255.1.28 → 255.1.30

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.
@@ -83,7 +83,7 @@ export class TransactionPaymentBaseComponent {
83
83
  }
84
84
  set cashRegisterDrawerId(value) {
85
85
  this._cashRegisterDrawerId = value;
86
- this.paymentService.cashRegisterDrawerId = this._cashRegisterDrawerId;
86
+ this.paymentService.cashRegisterDrawerNr = this._cashRegisterDrawerId;
87
87
  }
88
88
  get cashRegisterDrawerId() {
89
89
  return this._cashRegisterDrawerId;
@@ -154,7 +154,7 @@ export class TransactionPaymentBaseComponent {
154
154
  this.cashRegisterIdx = index;
155
155
  this.cashRegisterNr = cashRegister.nr;
156
156
  this.cashRegisterGroupId = cashRegister.group;
157
- this.cashRegisterDrawerId = +cashRegister.defaultDrawerNumber;
157
+ this.cashRegisterDrawerId = cashRegister.defaultDrawerNumber;
158
158
  this.paymentService.printerName = cashRegister.defaultPrinter;
159
159
  }
160
160
  handlePayment() {
@@ -194,7 +194,7 @@ export class TransactionPaymentBaseComponent {
194
194
  if (currentCashRegister) {
195
195
  this.cashRegisterNr = currentCashRegister.nr;
196
196
  this.cashRegisterGroupId = currentCashRegister.group;
197
- this.cashRegisterDrawerId = +currentCashRegister.defaultDrawerNumber;
197
+ this.cashRegisterDrawerId = currentCashRegister.defaultDrawerNumber;
198
198
  this.prepareCashDrawers(currentCashRegister.group);
199
199
  this.paymentService.printerName = currentCashRegister.defaultPrinter;
200
200
  }
@@ -242,4 +242,4 @@ TransactionPaymentBaseComponent.propDecorators = {
242
242
  doNotFetchAmountToPayForRemaining: [{ type: Input }],
243
243
  payed: [{ type: Output }]
244
244
  };
245
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tcGF5bWVudC1iYXNlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RyYW5zYWN0aW9uL3NyYy9saWIvY29tcG9uZW50L2NvcmUvYmFzZS90cmFuc2FjdGlvbi1wYXltZW50LWJhc2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFFUCxNQUFNLGVBQWUsQ0FBQztBQUl2QixPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFFN0MsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFDeEUsT0FBTyxFQUFDLGtDQUFrQyxFQUFDLE1BQU0sd0RBQXdELENBQUM7QUFDMUcsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sNENBQTRDLENBQUM7QUFDbkYsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDckUsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sOENBQThDLENBQUM7QUFLdkYsTUFBTSxPQUFnQiwrQkFBK0I7SUFtTG5ELFlBQ1ksa0JBQXNDLEVBQ3RDLHVCQUEyRCxFQUMzRCx1QkFBZ0QsRUFDaEQsY0FBaUMsRUFDcEMsY0FBeUMsRUFDekMsZ0JBQWtDO1FBTC9CLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUFvQztRQUMzRCw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQXlCO1FBQ2hELG1CQUFjLEdBQWQsY0FBYyxDQUFtQjtRQUNwQyxtQkFBYyxHQUFkLGNBQWMsQ0FBMkI7UUFDekMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQXhMM0IsVUFBSyxHQUFnQixJQUFJLENBQUM7UUFpSG5DLGVBQVUsR0FBWSxJQUFJLENBQUM7UUFZMUIsc0JBQWlCLEdBQVksS0FBSyxDQUFDO1FBdUJwQyxVQUFLLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7UUFFckQscUJBQWdCLEdBQVcsQ0FBQyxDQUFDO1FBQzdCLG9CQUFlLEdBQVcsQ0FBQyxDQUFDO1FBQzVCLG1CQUFjLEdBQXVCLEVBQUUsQ0FBQztRQUN4QyxrQkFBYSxHQUFVLEVBQUUsQ0FBQztRQUMxQixzQkFBaUIsR0FBWSxLQUFLLENBQUM7UUFDbkMscUJBQWdCLEdBQVksSUFBSSxDQUFDO1FBQ3hDLHlDQUF5QztRQUN6Qyw4QkFBOEI7UUFDdkIsZUFBVSxHQUFZLElBQUksQ0FBQztRQUNsQyxrQ0FBa0M7UUFDbEMscUNBQXFDO1FBRTNCLFNBQUksR0FBbUIsRUFBRSxDQUFDO1FBSzVCLFlBQU8sR0FBVyxDQUFDLENBQUM7SUFtQjVCLENBQUM7SUF4TEQsSUFDVyxPQUFPLENBQUMsS0FBYTtRQUM5QixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQzlDLENBQUM7SUFFRCxJQUFXLE9BQU87UUFDaEIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxJQUNXLGVBQWUsQ0FBQyxLQUFhO1FBQ3RDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFDOUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQzlELENBQUM7SUFFRCxJQUFXLGVBQWU7UUFDeEIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7SUFDL0IsQ0FBQztJQUVELElBQ1csTUFBTSxDQUFDLEtBQWE7UUFDN0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDckIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUM1QyxDQUFDO0lBRUQsSUFBVyxNQUFNO1FBQ2YsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxJQUNXLE1BQU0sQ0FBQyxLQUFhO1FBQzdCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDNUMsQ0FBQztJQUVELElBQVcsTUFBTTtRQUNmLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBRUQsSUFDVyxVQUFVLENBQUMsS0FBYTtRQUNqQyxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUN6QixJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQ3BELENBQUM7SUFFRCxJQUFXLFVBQVU7UUFDbkIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUNXLGNBQWMsQ0FBQyxLQUFhO1FBQ3JDLElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO1FBQzdCLElBQUksQ0FBQyxjQUFjLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDNUQsQ0FBQztJQUVELElBQVcsY0FBYztRQUN2QixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQ1csbUJBQW1CLENBQUMsS0FBYTtRQUMxQyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsS0FBSyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxjQUFjLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDO0lBQ3RFLENBQUM7SUFFRCxJQUFXLG1CQUFtQjtRQUM1QixPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztJQUNuQyxDQUFDO0lBRUQsSUFDVyxvQkFBb0IsQ0FBQyxLQUFhO1FBQzNDLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxLQUFLLENBQUM7UUFDbkMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUM7SUFDeEUsQ0FBQztJQUVELElBQVcsb0JBQW9CO1FBQzdCLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixDQUFDO0lBQ3BDLENBQUM7SUFFRCxJQUNXLFdBQVcsQ0FBQyxLQUFhO1FBQ2xDLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1FBQzFCLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDdEQsQ0FBQztJQUVELElBQVcsV0FBVztRQUNwQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQ1csV0FBVyxDQUFDLEtBQWlDO1FBQ3RELElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1FBQzFCLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDdEQsQ0FBQztJQUVELElBQVcsV0FBVztRQUNwQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQ1csYUFBYSxDQUFDLEtBQWlDO1FBQ3hELElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO1FBQzVCLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDMUQsQ0FBQztJQUVELElBQVcsYUFBYTtRQUN0QixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDN0IsQ0FBQztJQUtELElBQ1csZ0JBQWdCLENBQUMsS0FBYztRQUN4QyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFDO1FBQy9CLElBQUksQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUM7SUFDakUsQ0FBQztJQUVELElBQVcsZ0JBQWdCO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDO0lBQ2hDLENBQUM7SUFJRCxJQUNXLG9CQUFvQixDQUFDLEtBQW9CO1FBQ2xELElBQUksQ0FBQyxxQkFBcUIsR0FBRyxLQUFLLENBQUM7UUFDbkMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUM7SUFDeEUsQ0FBQztJQUVELElBQVcsb0JBQW9CO1FBQzdCLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixDQUFDO0lBQ3BDLENBQUM7SUFFRCxJQUNXLGlDQUFpQyxDQUFDLEtBQWM7UUFDekQsSUFBSSxDQUFDLGtDQUFrQyxHQUFHLEtBQUssQ0FBQztRQUNoRCxJQUFJLENBQUMsY0FBYyxDQUFDLGlDQUFpQyxHQUFHLElBQUksQ0FBQyxrQ0FBa0MsQ0FBQztJQUNsRyxDQUFDO0lBRUQsSUFBVyxpQ0FBaUM7UUFDMUMsT0FBTyxJQUFJLENBQUMsa0NBQWtDLENBQUM7SUFDakQsQ0FBQztJQTJDSyxRQUFROztZQUNaLGtDQUFrQztZQUNsQyx1SEFBdUg7WUFDdkgsSUFBSTtZQUNKLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUNaLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLENBQzdELENBQUE7WUFDRCxNQUFNLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1lBQ3hCLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQy9DLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBQzdCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQzFCLENBQUM7S0FBQTtJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFTSxxQkFBcUIsQ0FBQyxNQUFxQixFQUFFLEtBQWE7UUFDL0QsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQztRQUM5QixJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRU0sb0JBQW9CLENBQUMsWUFBMEIsRUFBRSxLQUFhO1FBQ25FLElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO1FBQzdCLElBQUksQ0FBQyxjQUFjLEdBQUcsWUFBWSxDQUFDLEVBQUUsQ0FBQztRQUN0QyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQztRQUM5QyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsQ0FBQyxZQUFZLENBQUMsbUJBQW1CLENBQUM7UUFDOUQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEdBQUcsWUFBWSxDQUFDLGNBQWMsQ0FBQztJQUNoRSxDQUFDO0lBRU0sYUFBYTtRQUNsQixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDN0MsQ0FBQztJQUVNLHVCQUF1QixDQUFDLEtBQWE7UUFDMUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO0lBQzFDLENBQUM7SUFFUyxnQkFBZ0I7SUFFMUIsQ0FBQztJQUVTLGtCQUFrQixDQUFDLEtBQWE7SUFFMUMsQ0FBQztJQUVEOzs7T0FHRztJQUNLLHFCQUFxQjtRQUMzQixJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQzFCLE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLE9BQU8sQ0FBQztRQUMvRSxJQUFJLElBQUksQ0FBQyxvQkFBb0IsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGdCQUFnQixJQUFJLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUN2SCxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7WUFDOUIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ2hELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUM5QyxDQUFDLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUM7U0FDL0I7YUFBTTtZQUNMLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUM7U0FDaEM7SUFDSCxDQUFDO0lBRU8saUJBQWlCLENBQUMsTUFBZSxFQUFFLEtBQWM7UUFDdkQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxhQUE2QixFQUFFLEVBQUU7WUFDN0YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsR0FBRyxhQUFhLENBQUMsQ0FBQztZQUMxQyxNQUFNLG1CQUFtQixHQUFpQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUNuRixJQUFJLG1CQUFtQixFQUFFO2dCQUN2QixJQUFJLENBQUMsY0FBYyxHQUFHLG1CQUFtQixDQUFDLEVBQUUsQ0FBQztnQkFDN0MsSUFBSSxDQUFDLG1CQUFtQixHQUFHLG1CQUFtQixDQUFDLEtBQUssQ0FBQztnQkFDckQsSUFBSSxDQUFDLG9CQUFvQixHQUFHLENBQUMsbUJBQW1CLENBQUMsbUJBQW1CLENBQUM7Z0JBQ3JFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDbkQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEdBQUcsbUJBQW1CLENBQUMsY0FBYyxDQUFDO2FBQ3RFO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sa0JBQWtCO1FBQ3hCLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFpQixFQUFFLEVBQUU7WUFDdkMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBQy9CLElBQUksQ0FBQyx1QkFBdUIsQ0FBQywyQkFBMkIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBMkIsRUFBRSxFQUFFO2dCQUN6RyxJQUFJLENBQUMsY0FBYyxHQUFHLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDdEMsSUFBSSxJQUFJLENBQUMsb0JBQW9CLEVBQUU7b0JBQzdCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztpQkFDL0c7Z0JBQ0QsT0FBTyxFQUFFLENBQUM7WUFDWixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7O1lBMVJGLFNBQVM7OztZQVJGLGtCQUFrQjtZQUNsQixrQ0FBa0M7WUFDbEMsdUJBQXVCO1lBaEI3QixpQkFBaUI7WUFrQlgseUJBQXlCO1lBRHpCLGdCQUFnQjs7O3NCQVNyQixLQUFLOzhCQVVMLEtBQUs7cUJBVUwsS0FBSztxQkFVTCxLQUFLO3lCQVVMLEtBQUs7NkJBVUwsS0FBSztrQ0FVTCxLQUFLO21DQVVMLEtBQUs7MEJBVUwsS0FBSzswQkFVTCxLQUFLOzRCQVVMLEtBQUs7eUJBVUwsS0FBSzsrQkFHTCxLQUFLO21DQVlMLEtBQUs7Z0RBVUwsS0FBSztvQkFVTCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBEaXJlY3RpdmUsXHJcbiAgRXZlbnRFbWl0dGVyLCBIb3N0LFxyXG4gIElucHV0LFxyXG4gIE9uRGVzdHJveSxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFNraXBTZWxmXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7Q2FzaFJlZ2lzdGVyfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvY2FzaC1yZWdpc3Rlcic7XHJcbmltcG9ydCB7UGF5bWVudE1ldGhvZH0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3BheW1lbnQtbWV0aG9kLmJvJztcclxuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge0ljb259IGZyb20gJy4uLy4uLy4uL2VudW0vaWNvbi5lbnVtJztcclxuaW1wb3J0IHtQYXltZW50Vmlld21vZGVsfSBmcm9tICcuLi8uLi8uLi9tb2RlbC9wYXltZW50LnZpZXdtb2RlbCc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uUGF5bWVudENvbm5lY3RvclNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tcGF5bWVudC1jb25uZWN0b3Iuc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25FdmVudFNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tZXZlbnQuc2VydmljZSc7XHJcbmltcG9ydCB7SWNvbkNhY2hlU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS9pY29uLWNhY2hlLnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uUGF5bWVudFNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tcGF5bWVudC5zZXJ2aWNlJztcclxuaW1wb3J0IHtSZXBvcnRMYXlvdXRTZWxlY3Rpb25QcmludH0gZnJvbSAnQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvcmVwb3J0LWxheW91dC1zZWxlY3Rpb24tcHJpbnQuYm8nO1xyXG5pbXBvcnQge1JlcG9ydExheW91dFNlbGVjdGlvbkVtYWlsfSBmcm9tICdAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9yZXBvcnQtbGF5b3V0LXNlbGVjdGlvbi1lbWFpbC5ibyc7XHJcblxyXG5ARGlyZWN0aXZlKClcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFRyYW5zYWN0aW9uUGF5bWVudEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgcHVibGljIHJlYWRvbmx5IGljb25zOiB0eXBlb2YgSWNvbiA9IEljb247XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCB0cmFuc0lkKHZhbHVlOiBudW1iZXIpIHtcclxuICAgIHRoaXMuX3RyYW5zSWQgPSB2YWx1ZTtcclxuICAgIHRoaXMucGF5bWVudFNlcnZpY2UudHJhbnNJZCA9IHRoaXMuX3RyYW5zSWQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHRyYW5zSWQoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl90cmFuc0lkO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IHRyYW5zYWN0aW9uVXVpZCh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl90cmFuc2FjdGlvblV1aWQgPSB2YWx1ZTtcclxuICAgIHRoaXMucGF5bWVudFNlcnZpY2UudHJhbnNhY3Rpb25VdWlkID0gdGhpcy5fdHJhbnNhY3Rpb25VdWlkO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCB0cmFuc2FjdGlvblV1aWQoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl90cmFuc2FjdGlvblV1aWQ7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgYnJhbmNoKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX2JyYW5jaCA9IHZhbHVlO1xyXG4gICAgdGhpcy5wYXltZW50U2VydmljZS5icmFuY2ggPSB0aGlzLl9icmFuY2g7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGJyYW5jaCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2JyYW5jaDtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBhbW91bnQodmFsdWU6IG51bWJlcikge1xyXG4gICAgdGhpcy5fYW1vdW50ID0gdmFsdWU7XHJcbiAgICB0aGlzLnBheW1lbnRTZXJ2aWNlLmFtb3VudCA9IHRoaXMuX2Ftb3VudDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgYW1vdW50KCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5fYW1vdW50O1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IGN1cnJlbmN5SWQodmFsdWU6IG51bWJlcikge1xyXG4gICAgdGhpcy5fY3VycmVuY3lJZCA9IHZhbHVlO1xyXG4gICAgdGhpcy5wYXltZW50U2VydmljZS5jdXJyZW5jeUlkID0gdGhpcy5fY3VycmVuY3lJZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgY3VycmVuY3lJZCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX2N1cnJlbmN5SWQ7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgY2FzaFJlZ2lzdGVyTnIodmFsdWU6IG51bWJlcikge1xyXG4gICAgdGhpcy5fY2FzaFJlZ2lzdGVyTnIgPSB2YWx1ZTtcclxuICAgIHRoaXMucGF5bWVudFNlcnZpY2UuY2FzaFJlZ2lzdGVyTnIgPSB0aGlzLl9jYXNoUmVnaXN0ZXJOcjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgY2FzaFJlZ2lzdGVyTnIoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9jYXNoUmVnaXN0ZXJOcjtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBjYXNoUmVnaXN0ZXJHcm91cElkKHZhbHVlOiBudW1iZXIpIHtcclxuICAgIHRoaXMuX2Nhc2hSZWdpc3Rlckdyb3VwSWQgPSB2YWx1ZTtcclxuICAgIHRoaXMucGF5bWVudFNlcnZpY2UuY2FzaFJlZ2lzdGVyR3JvdXBJZCA9IHRoaXMuX2Nhc2hSZWdpc3Rlckdyb3VwSWQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGNhc2hSZWdpc3Rlckdyb3VwSWQoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9jYXNoUmVnaXN0ZXJHcm91cElkO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IGNhc2hSZWdpc3RlckRyYXdlcklkKHZhbHVlOiBudW1iZXIpIHtcclxuICAgIHRoaXMuX2Nhc2hSZWdpc3RlckRyYXdlcklkID0gdmFsdWU7XHJcbiAgICB0aGlzLnBheW1lbnRTZXJ2aWNlLmNhc2hSZWdpc3RlckRyYXdlcklkID0gdGhpcy5fY2FzaFJlZ2lzdGVyRHJhd2VySWQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGNhc2hSZWdpc3RlckRyYXdlcklkKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5fY2FzaFJlZ2lzdGVyRHJhd2VySWQ7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgcHJpbnRlck5hbWUodmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5fcHJpbnRlck5hbWUgPSB2YWx1ZTtcclxuICAgIHRoaXMucGF5bWVudFNlcnZpY2UucHJpbnRlck5hbWUgPSB0aGlzLl9wcmludGVyTmFtZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgcHJpbnRlck5hbWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9wcmludGVyTmFtZTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBlbWFpbExheW91dCh2YWx1ZTogUmVwb3J0TGF5b3V0U2VsZWN0aW9uRW1haWwpIHtcclxuICAgIHRoaXMuX2VtYWlsTGF5b3V0ID0gdmFsdWU7XHJcbiAgICB0aGlzLnBheW1lbnRTZXJ2aWNlLmVtYWlsTGF5b3V0ID0gdGhpcy5fZW1haWxMYXlvdXQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGVtYWlsTGF5b3V0KCk6IFJlcG9ydExheW91dFNlbGVjdGlvbkVtYWlsIHtcclxuICAgIHJldHVybiB0aGlzLl9lbWFpbExheW91dDtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBwcmludGVyTGF5b3V0KHZhbHVlOiBSZXBvcnRMYXlvdXRTZWxlY3Rpb25QcmludCkge1xyXG4gICAgdGhpcy5fcHJpbnRlckxheW91dCA9IHZhbHVlO1xyXG4gICAgdGhpcy5wYXltZW50U2VydmljZS5wcmludGVyTGF5b3V0ID0gdGhpcy5fcHJpbnRlckxheW91dDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgcHJpbnRlckxheW91dCgpOiBSZXBvcnRMYXlvdXRTZWxlY3Rpb25QcmludCB7XHJcbiAgICByZXR1cm4gdGhpcy5fcHJpbnRlckxheW91dDtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNob3dLZXlQYWQ6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgcmVtYWluaW5nUGF5bWVudCh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fcmVtYWluaW5nUGF5bWVudCA9IHZhbHVlO1xyXG4gICAgdGhpcy5wYXltZW50U2VydmljZS5nZXREZXBvc2l0QW1vdW50ID0gIXRoaXMuX3JlbWFpbmluZ1BheW1lbnQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHJlbWFpbmluZ1BheW1lbnQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fcmVtYWluaW5nUGF5bWVudDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3JlbWFpbmluZ1BheW1lbnQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IGN1cnJlbnRQYXltZW50TWV0aG9kKHZhbHVlOiBQYXltZW50TWV0aG9kKSB7XHJcbiAgICB0aGlzLl9jdXJyZW50UGF5bWVudE1ldGhvZCA9IHZhbHVlO1xyXG4gICAgdGhpcy5wYXltZW50U2VydmljZS5jdXJyZW50UGF5bWVudE1ldGhvZCA9IHRoaXMuX2N1cnJlbnRQYXltZW50TWV0aG9kO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBjdXJyZW50UGF5bWVudE1ldGhvZCgpOiBQYXltZW50TWV0aG9kIHtcclxuICAgIHJldHVybiB0aGlzLl9jdXJyZW50UGF5bWVudE1ldGhvZDtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBkb05vdEZldGNoQW1vdW50VG9QYXlGb3JSZW1haW5pbmcodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX2RvTm90RmV0Y2hBbW91bnRUb1BheUZvclJlbWFpbmluZyA9IHZhbHVlO1xyXG4gICAgdGhpcy5wYXltZW50U2VydmljZS5kb05vdEZldGNoQW1vdW50VG9QYXlGb3JSZW1haW5pbmcgPSB0aGlzLl9kb05vdEZldGNoQW1vdW50VG9QYXlGb3JSZW1haW5pbmc7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGRvTm90RmV0Y2hBbW91bnRUb1BheUZvclJlbWFpbmluZygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9kb05vdEZldGNoQW1vdW50VG9QYXlGb3JSZW1haW5pbmc7XHJcbiAgfVxyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgcGF5ZWQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgcHVibGljIHBheW1lbnRNZXRob2RJZHg6IG51bWJlciA9IDA7XHJcbiAgcHVibGljIGNhc2hSZWdpc3RlcklkeDogbnVtYmVyID0gMDtcclxuICBwdWJsaWMgcGF5bWVudE1ldGhvZHM6IFBheW1lbnRWaWV3bW9kZWxbXSA9IFtdO1xyXG4gIHB1YmxpYyBjYXNoUmVnaXN0ZXJzOiBhbnlbXSA9IFtdO1xyXG4gIHB1YmxpYyBzaG93Q2FzaFJlZ2lzdGVyczogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyB1c2VDYXNoUmVnaXN0ZXJzOiBib29sZWFuID0gdHJ1ZTtcclxuICAvLyBwdWJsaWMgc2hvd1BzcFFyQ29kZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIC8vIHB1YmxpYyBxckNvZGVJbWFnZTogc3RyaW5nO1xyXG4gIHB1YmxpYyBzaG93TG9hZGVyOiBib29sZWFuID0gdHJ1ZTtcclxuICAvLyBwdWJsaWMgYW1vdW50VG9QYXk6IG51bWJlciA9IDA7XHJcbiAgLy8gcHVibGljIHN0YXR1c01lc3NhZ2U6IHN0cmluZyA9IFwiXCI7XHJcblxyXG4gIHByb3RlY3RlZCBzdWJzOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG5cclxuICBwcml2YXRlIF90cmFuc0lkOiBudW1iZXI7XHJcbiAgcHJpdmF0ZSBfdHJhbnNhY3Rpb25VdWlkOiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSBfYnJhbmNoOiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSBfYW1vdW50OiBudW1iZXIgPSAwO1xyXG4gIHByaXZhdGUgX2N1cnJlbmN5SWQ6IG51bWJlcjtcclxuICBwcml2YXRlIF9jYXNoUmVnaXN0ZXJOcjogbnVtYmVyO1xyXG4gIHByaXZhdGUgX2Nhc2hSZWdpc3Rlckdyb3VwSWQ6IG51bWJlcjtcclxuICBwcml2YXRlIF9jYXNoUmVnaXN0ZXJEcmF3ZXJJZDogbnVtYmVyO1xyXG4gIHByaXZhdGUgX2N1cnJlbnRQYXltZW50TWV0aG9kOiBQYXltZW50TWV0aG9kO1xyXG4gIHByaXZhdGUgX2RvTm90RmV0Y2hBbW91bnRUb1BheUZvclJlbWFpbmluZzogYm9vbGVhbjtcclxuICBwcml2YXRlIF9wcmludGVyTmFtZTogc3RyaW5nO1xyXG4gIHByaXZhdGUgX3ByaW50ZXJMYXlvdXQ6IFJlcG9ydExheW91dFNlbGVjdGlvblByaW50O1xyXG4gIHByaXZhdGUgX2VtYWlsTGF5b3V0OiBSZXBvcnRMYXlvdXRTZWxlY3Rpb25FbWFpbDtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcm90ZWN0ZWQgdHJhbnNhY3Rpb25TZXJ2aWNlOiBUcmFuc2FjdGlvblNlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgcGF5bWVudENvbm5lY3RvclNlcnZpY2U6IFRyYW5zYWN0aW9uUGF5bWVudENvbm5lY3RvclNlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgdHJhbnNhY3Rpb25FdmVudFNlcnZpY2U6IFRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLFxyXG4gICAgcHJvdGVjdGVkIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHB1YmxpYyBwYXltZW50U2VydmljZTogVHJhbnNhY3Rpb25QYXltZW50U2VydmljZSxcclxuICAgIHB1YmxpYyBpY29uQ2FjaGVTZXJ2aWNlOiBJY29uQ2FjaGVTZXJ2aWNlXHJcbiAgKXtcclxuICB9XHJcblxyXG4gIGFzeW5jIG5nT25Jbml0KCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgLy8gaWYgKHRoaXMudXBkYXRlRGVwb3NpdEFtb3VudCkge1xyXG4gICAgLy8gICBhd2FpdCB0aGlzLl90cmFuc2FjdGlvblNlcnZpY2UudXBkYXRlSGVhZGVyVHJhbnNhY3Rpb25EZXBvc2l0QW1vdW50KHRoaXMudHJhbnNhY3Rpb25VdWlkLCB0aGlzLmFtb3VudFRvUGF5LCB0cnVlKTtcclxuICAgIC8vIH1cclxuICAgIHRoaXMuc3Vicy5wdXNoKFxyXG4gICAgICB0aGlzLnBheW1lbnRTZXJ2aWNlLnBheWVkLnN1YnNjcmliZSgoKSA9PiB0aGlzLnBheWVkLmVtaXQoKSlcclxuICAgIClcclxuICAgIGF3YWl0IHRoaXMuX2dldFBheW1lbnRNZXRob2RzKCk7XHJcbiAgICB0aGlzLnNob3dMb2FkZXIgPSBmYWxzZTtcclxuICAgIGF3YWl0IHRoaXMucGF5bWVudFNlcnZpY2UucHJlcGFyZVBheW1lbnRJbmZvKCk7XHJcbiAgICB0aGlzLl9wcmVwYXJlQ2FzaFJlZ2lzdGVycygpO1xyXG4gICAgdGhpcy5wYXltZW50SW5mb1JlYWR5KCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuc3Vicy5mb3JFYWNoKHMgPT4gcy51bnN1YnNjcmliZSgpKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBwYXltZW50TWV0aG9kU2VsZWN0ZWQobWV0aG9kOiBQYXltZW50TWV0aG9kLCBpbmRleDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICB0aGlzLnBheW1lbnRNZXRob2RJZHggPSBpbmRleDtcclxuICAgIHRoaXMuX3ByZXBhcmVDYXNoUmVnaXN0ZXJzKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2FzaFJlZ2lzdGVyU2VsZWN0ZWQoY2FzaFJlZ2lzdGVyOiBDYXNoUmVnaXN0ZXIsIGluZGV4OiBudW1iZXIpOiB2b2lkIHtcclxuICAgIHRoaXMuY2FzaFJlZ2lzdGVySWR4ID0gaW5kZXg7XHJcbiAgICB0aGlzLmNhc2hSZWdpc3Rlck5yID0gY2FzaFJlZ2lzdGVyLm5yO1xyXG4gICAgdGhpcy5jYXNoUmVnaXN0ZXJHcm91cElkID0gY2FzaFJlZ2lzdGVyLmdyb3VwO1xyXG4gICAgdGhpcy5jYXNoUmVnaXN0ZXJEcmF3ZXJJZCA9ICtjYXNoUmVnaXN0ZXIuZGVmYXVsdERyYXdlck51bWJlcjtcclxuICAgIHRoaXMucGF5bWVudFNlcnZpY2UucHJpbnRlck5hbWUgPSBjYXNoUmVnaXN0ZXIuZGVmYXVsdFByaW50ZXI7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlUGF5bWVudCgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHJldHVybiB0aGlzLnBheW1lbnRTZXJ2aWNlLmhhbmRsZVBheW1lbnQoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVLZXlQYWRNb2RlbENoYW5nZShtb2RlbDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICB0aGlzLnBheW1lbnRTZXJ2aWNlLmFtb3VudFRvUGF5ID0gbW9kZWw7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgcGF5bWVudEluZm9SZWFkeSgpOiB2b2lkIHtcclxuXHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgcHJlcGFyZUNhc2hEcmF3ZXJzKGdyb3VwOiBudW1iZXIpOiB2b2lkIHtcclxuXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKlxyXG4gICAqIEBwcml2YXRlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBfcHJlcGFyZUNhc2hSZWdpc3RlcnMoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMudXNlQ2FzaFJlZ2lzdGVycykge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLmN1cnJlbnRQYXltZW50TWV0aG9kID0gdGhpcy5wYXltZW50TWV0aG9kc1t0aGlzLnBheW1lbnRNZXRob2RJZHhdLnBheW1lbnQ7XHJcbiAgICBpZiAodGhpcy5jdXJyZW50UGF5bWVudE1ldGhvZCAmJiAoIXRoaXMuY3VycmVudFBheW1lbnRNZXRob2QuZXh0ZXJuYWxTb3VyY2VJZCB8fCB0aGlzLmN1cnJlbnRQYXltZW50TWV0aG9kLnBpblRlcm1pbmFsKSkge1xyXG4gICAgICB0aGlzLmNhc2hSZWdpc3RlcnMubGVuZ3RoID0gMDtcclxuICAgICAgdGhpcy5jdXJyZW50UGF5bWVudE1ldGhvZC5wb3NHcm91cHMuZm9yRWFjaChjcmcgPT4ge1xyXG4gICAgICAgIHRoaXMuX2dldENhc2hSZWdpc3RlcnModGhpcy5icmFuY2gsIGNyZy5pZCk7XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLnNob3dDYXNoUmVnaXN0ZXJzID0gdHJ1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2hvd0Nhc2hSZWdpc3RlcnMgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2dldENhc2hSZWdpc3RlcnMoYnJhbmNoPzogc3RyaW5nLCBncm91cD86IG51bWJlcik6IHZvaWQge1xyXG4gICAgdGhpcy50cmFuc2FjdGlvblNlcnZpY2UuZ2V0Q2FzaFJlZ2lzdGVycyhicmFuY2gsIGdyb3VwKS50aGVuKChjYXNoUmVnaXN0ZXJzOiBDYXNoUmVnaXN0ZXJbXSkgPT4ge1xyXG4gICAgICB0aGlzLmNhc2hSZWdpc3RlcnMucHVzaCguLi5jYXNoUmVnaXN0ZXJzKTtcclxuICAgICAgY29uc3QgY3VycmVudENhc2hSZWdpc3RlcjogQ2FzaFJlZ2lzdGVyID0gdGhpcy5jYXNoUmVnaXN0ZXJzW3RoaXMuY2FzaFJlZ2lzdGVySWR4XTtcclxuICAgICAgaWYgKGN1cnJlbnRDYXNoUmVnaXN0ZXIpIHtcclxuICAgICAgICB0aGlzLmNhc2hSZWdpc3Rlck5yID0gY3VycmVudENhc2hSZWdpc3Rlci5ucjtcclxuICAgICAgICB0aGlzLmNhc2hSZWdpc3Rlckdyb3VwSWQgPSBjdXJyZW50Q2FzaFJlZ2lzdGVyLmdyb3VwO1xyXG4gICAgICAgIHRoaXMuY2FzaFJlZ2lzdGVyRHJhd2VySWQgPSArY3VycmVudENhc2hSZWdpc3Rlci5kZWZhdWx0RHJhd2VyTnVtYmVyO1xyXG4gICAgICAgIHRoaXMucHJlcGFyZUNhc2hEcmF3ZXJzKGN1cnJlbnRDYXNoUmVnaXN0ZXIuZ3JvdXApO1xyXG4gICAgICAgIHRoaXMucGF5bWVudFNlcnZpY2UucHJpbnRlck5hbWUgPSBjdXJyZW50Q2FzaFJlZ2lzdGVyLmRlZmF1bHRQcmludGVyO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2dldFBheW1lbnRNZXRob2RzKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbikgPT4ge1xyXG4gICAgICB0aGlzLnBheW1lbnRNZXRob2RzLmxlbmd0aCA9IDA7XHJcbiAgICAgIHRoaXMucGF5bWVudENvbm5lY3RvclNlcnZpY2UuZ2V0UGF5bWVudE1ldGhvZHNWaWV3TW9kZWxzKHRoaXMuYnJhbmNoKS50aGVuKChtZXRob2RzOiBQYXltZW50Vmlld21vZGVsW10pID0+IHtcclxuICAgICAgICB0aGlzLnBheW1lbnRNZXRob2RzID0gbWV0aG9kcy5zbGljZSgpO1xyXG4gICAgICAgIGlmICh0aGlzLmN1cnJlbnRQYXltZW50TWV0aG9kKSB7XHJcbiAgICAgICAgICB0aGlzLnBheW1lbnRNZXRob2RJZHggPSB0aGlzLnBheW1lbnRNZXRob2RzLmZpbmRJbmRleChwID0+IHAucGF5bWVudC5jb2RlID09PSB0aGlzLmN1cnJlbnRQYXltZW50TWV0aG9kLmNvZGUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXNvbHZlKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
245
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tcGF5bWVudC1iYXNlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RyYW5zYWN0aW9uL3NyYy9saWIvY29tcG9uZW50L2NvcmUvYmFzZS90cmFuc2FjdGlvbi1wYXltZW50LWJhc2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFFUCxNQUFNLGVBQWUsQ0FBQztBQUl2QixPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFFN0MsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFDeEUsT0FBTyxFQUFDLGtDQUFrQyxFQUFDLE1BQU0sd0RBQXdELENBQUM7QUFDMUcsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sNENBQTRDLENBQUM7QUFDbkYsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDckUsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sOENBQThDLENBQUM7QUFLdkYsTUFBTSxPQUFnQiwrQkFBK0I7SUFtTG5ELFlBQ1ksa0JBQXNDLEVBQ3RDLHVCQUEyRCxFQUMzRCx1QkFBZ0QsRUFDaEQsY0FBaUMsRUFDcEMsY0FBeUMsRUFDekMsZ0JBQWtDO1FBTC9CLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUFvQztRQUMzRCw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQXlCO1FBQ2hELG1CQUFjLEdBQWQsY0FBYyxDQUFtQjtRQUNwQyxtQkFBYyxHQUFkLGNBQWMsQ0FBMkI7UUFDekMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQXhMM0IsVUFBSyxHQUFnQixJQUFJLENBQUM7UUFpSG5DLGVB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RyxDQUFDLENBQUM7WUFDL0IsSUFBSSxDQUFDLHVCQUF1QixDQUFDLDJCQUEyQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUEyQixFQUFFLEVBQUU7Z0JBQ3pHLElBQUksQ0FBQyxjQUFjLEdBQUcsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUN0QyxJQUFJLElBQUksQ0FBQyxvQkFBb0IsRUFBRTtvQkFDN0IsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUMvRztnQkFDRCxPQUFPLEVBQUUsQ0FBQztZQUNaLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzs7WUExUkYsU0FBUzs7O1lBUkYsa0JBQWtCO1lBQ2xCLGtDQUFrQztZQUNsQyx1QkFBdUI7WUFoQjdCLGlCQUFpQjtZQWtCWCx5QkFBeUI7WUFEekIsZ0JBQWdCOzs7c0JBU3JCLEtBQUs7OEJBVUwsS0FBSztxQkFVTCxLQUFLO3FCQVVMLEtBQUs7eUJBVUwsS0FBSzs2QkFVTCxLQUFLO2tDQVVMLEtBQUs7bUNBVUwsS0FBSzswQkFVTCxLQUFLOzBCQVVMLEtBQUs7NEJBVUwsS0FBSzt5QkFVTCxLQUFLOytCQUdMLEtBQUs7bUNBWUwsS0FBSztnREFVTCxLQUFLO29CQVVMLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIERpcmVjdGl2ZSxcclxuICBFdmVudEVtaXR0ZXIsIEhvc3QsXHJcbiAgSW5wdXQsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgU2tpcFNlbGZcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtDYXNoUmVnaXN0ZXJ9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9jYXNoLXJlZ2lzdGVyJztcclxuaW1wb3J0IHtQYXltZW50TWV0aG9kfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcGF5bWVudC1tZXRob2QuYm8nO1xyXG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7SWNvbn0gZnJvbSAnLi4vLi4vLi4vZW51bS9pY29uLmVudW0nO1xyXG5pbXBvcnQge1BheW1lbnRWaWV3bW9kZWx9IGZyb20gJy4uLy4uLy4uL21vZGVsL3BheW1lbnQudmlld21vZGVsJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24uc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25QYXltZW50Q29ubmVjdG9yU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1wYXltZW50LWNvbm5lY3Rvci5zZXJ2aWNlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkV2ZW50U2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1ldmVudC5zZXJ2aWNlJztcclxuaW1wb3J0IHtJY29uQ2FjaGVTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL2ljb24tY2FjaGUuc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25QYXltZW50U2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1wYXltZW50LnNlcnZpY2UnO1xyXG5pbXBvcnQge1JlcG9ydExheW91dFNlbGVjdGlvblByaW50fSBmcm9tICdAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9yZXBvcnQtbGF5b3V0LXNlbGVjdGlvbi1wcmludC5ibyc7XHJcbmltcG9ydCB7UmVwb3J0TGF5b3V0U2VsZWN0aW9uRW1haWx9IGZyb20gJ0Bjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL3JlcG9ydC1sYXlvdXQtc2VsZWN0aW9uLWVtYWlsLmJvJztcclxuXHJcbkBEaXJlY3RpdmUoKVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgVHJhbnNhY3Rpb25QYXltZW50QmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBwdWJsaWMgcmVhZG9ubHkgaWNvbnM6IHR5cGVvZiBJY29uID0gSWNvbjtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IHRyYW5zSWQodmFsdWU6IG51bWJlcikge1xyXG4gICAgdGhpcy5fdHJhbnNJZCA9IHZhbHVlO1xyXG4gICAgdGhpcy5wYXltZW50U2VydmljZS50cmFuc0lkID0gdGhpcy5fdHJhbnNJZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgdHJhbnNJZCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX3RyYW5zSWQ7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgdHJhbnNhY3Rpb25VdWlkKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX3RyYW5zYWN0aW9uVXVpZCA9IHZhbHVlO1xyXG4gICAgdGhpcy5wYXltZW50U2VydmljZS50cmFuc2FjdGlvblV1aWQgPSB0aGlzLl90cmFuc2FjdGlvblV1aWQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHRyYW5zYWN0aW9uVXVpZCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX3RyYW5zYWN0aW9uVXVpZDtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBicmFuY2godmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5fYnJhbmNoID0gdmFsdWU7XHJcbiAgICB0aGlzLnBheW1lbnRTZXJ2aWNlLmJyYW5jaCA9IHRoaXMuX2JyYW5jaDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgYnJhbmNoKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fYnJhbmNoO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IGFtb3VudCh2YWx1ZTogbnVtYmVyKSB7XHJcbiAgICB0aGlzLl9hbW91bnQgPSB2YWx1ZTtcclxuICAgIHRoaXMucGF5bWVudFNlcnZpY2UuYW1vdW50ID0gdGhpcy5fYW1vdW50O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBhbW91bnQoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9hbW91bnQ7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgY3VycmVuY3lJZCh2YWx1ZTogbnVtYmVyKSB7XHJcbiAgICB0aGlzLl9jdXJyZW5jeUlkID0gdmFsdWU7XHJcbiAgICB0aGlzLnBheW1lbnRTZXJ2aWNlLmN1cnJlbmN5SWQgPSB0aGlzLl9jdXJyZW5jeUlkO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBjdXJyZW5jeUlkKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5fY3VycmVuY3lJZDtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBjYXNoUmVnaXN0ZXJOcih2YWx1ZTogbnVtYmVyKSB7XHJcbiAgICB0aGlzLl9jYXNoUmVnaXN0ZXJOciA9IHZhbHVlO1xyXG4gICAgdGhpcy5wYXltZW50U2VydmljZS5jYXNoUmVnaXN0ZXJOciA9IHRoaXMuX2Nhc2hSZWdpc3Rlck5yO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBjYXNoUmVnaXN0ZXJOcigpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX2Nhc2hSZWdpc3Rlck5yO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IGNhc2hSZWdpc3Rlckdyb3VwSWQodmFsdWU6IG51bWJlcikge1xyXG4gICAgdGhpcy5fY2FzaFJlZ2lzdGVyR3JvdXBJZCA9IHZhbHVlO1xyXG4gICAgdGhpcy5wYXltZW50U2VydmljZS5jYXNoUmVnaXN0ZXJHcm91cElkID0gdGhpcy5fY2FzaFJlZ2lzdGVyR3JvdXBJZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgY2FzaFJlZ2lzdGVyR3JvdXBJZCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX2Nhc2hSZWdpc3Rlckdyb3VwSWQ7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgY2FzaFJlZ2lzdGVyRHJhd2VySWQodmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5fY2FzaFJlZ2lzdGVyRHJhd2VySWQgPSB2YWx1ZTtcclxuICAgIHRoaXMucGF5bWVudFNlcnZpY2UuY2FzaFJlZ2lzdGVyRHJhd2VyTnIgPSB0aGlzLl9jYXNoUmVnaXN0ZXJEcmF3ZXJJZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgY2FzaFJlZ2lzdGVyRHJhd2VySWQoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9jYXNoUmVnaXN0ZXJEcmF3ZXJJZDtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBwcmludGVyTmFtZSh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl9wcmludGVyTmFtZSA9IHZhbHVlO1xyXG4gICAgdGhpcy5wYXltZW50U2VydmljZS5wcmludGVyTmFtZSA9IHRoaXMuX3ByaW50ZXJOYW1lO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBwcmludGVyTmFtZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX3ByaW50ZXJOYW1lO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IGVtYWlsTGF5b3V0KHZhbHVlOiBSZXBvcnRMYXlvdXRTZWxlY3Rpb25FbWFpbCkge1xyXG4gICAgdGhpcy5fZW1haWxMYXlvdXQgPSB2YWx1ZTtcclxuICAgIHRoaXMucGF5bWVudFNlcnZpY2UuZW1haWxMYXlvdXQgPSB0aGlzLl9lbWFpbExheW91dDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZW1haWxMYXlvdXQoKTogUmVwb3J0TGF5b3V0U2VsZWN0aW9uRW1haWwge1xyXG4gICAgcmV0dXJuIHRoaXMuX2VtYWlsTGF5b3V0O1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IHByaW50ZXJMYXlvdXQodmFsdWU6IFJlcG9ydExheW91dFNlbGVjdGlvblByaW50KSB7XHJcbiAgICB0aGlzLl9wcmludGVyTGF5b3V0ID0gdmFsdWU7XHJcbiAgICB0aGlzLnBheW1lbnRTZXJ2aWNlLnByaW50ZXJMYXlvdXQgPSB0aGlzLl9wcmludGVyTGF5b3V0O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBwcmludGVyTGF5b3V0KCk6IFJlcG9ydExheW91dFNlbGVjdGlvblByaW50IHtcclxuICAgIHJldHVybiB0aGlzLl9wcmludGVyTGF5b3V0O1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2hvd0tleVBhZDogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCByZW1haW5pbmdQYXltZW50KHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9yZW1haW5pbmdQYXltZW50ID0gdmFsdWU7XHJcbiAgICB0aGlzLnBheW1lbnRTZXJ2aWNlLmdldERlcG9zaXRBbW91bnQgPSAhdGhpcy5fcmVtYWluaW5nUGF5bWVudDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgcmVtYWluaW5nUGF5bWVudCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9yZW1haW5pbmdQYXltZW50O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfcmVtYWluaW5nUGF5bWVudDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgY3VycmVudFBheW1lbnRNZXRob2QodmFsdWU6IFBheW1lbnRNZXRob2QpIHtcclxuICAgIHRoaXMuX2N1cnJlbnRQYXltZW50TWV0aG9kID0gdmFsdWU7XHJcbiAgICB0aGlzLnBheW1lbnRTZXJ2aWNlLmN1cnJlbnRQYXltZW50TWV0aG9kID0gdGhpcy5fY3VycmVudFBheW1lbnRNZXRob2Q7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGN1cnJlbnRQYXltZW50TWV0aG9kKCk6IFBheW1lbnRNZXRob2Qge1xyXG4gICAgcmV0dXJuIHRoaXMuX2N1cnJlbnRQYXltZW50TWV0aG9kO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2V0IGRvTm90RmV0Y2hBbW91bnRUb1BheUZvclJlbWFpbmluZyh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fZG9Ob3RGZXRjaEFtb3VudFRvUGF5Rm9yUmVtYWluaW5nID0gdmFsdWU7XHJcbiAgICB0aGlzLnBheW1lbnRTZXJ2aWNlLmRvTm90RmV0Y2hBbW91bnRUb1BheUZvclJlbWFpbmluZyA9IHRoaXMuX2RvTm90RmV0Y2hBbW91bnRUb1BheUZvclJlbWFpbmluZztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZG9Ob3RGZXRjaEFtb3VudFRvUGF5Rm9yUmVtYWluaW5nKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2RvTm90RmV0Y2hBbW91bnRUb1BheUZvclJlbWFpbmluZztcclxuICB9XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBwYXllZDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICBwdWJsaWMgcGF5bWVudE1ldGhvZElkeDogbnVtYmVyID0gMDtcclxuICBwdWJsaWMgY2FzaFJlZ2lzdGVySWR4OiBudW1iZXIgPSAwO1xyXG4gIHB1YmxpYyBwYXltZW50TWV0aG9kczogUGF5bWVudFZpZXdtb2RlbFtdID0gW107XHJcbiAgcHVibGljIGNhc2hSZWdpc3RlcnM6IGFueVtdID0gW107XHJcbiAgcHVibGljIHNob3dDYXNoUmVnaXN0ZXJzOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHVzZUNhc2hSZWdpc3RlcnM6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIC8vIHB1YmxpYyBzaG93UHNwUXJDb2RlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgLy8gcHVibGljIHFyQ29kZUltYWdlOiBzdHJpbmc7XHJcbiAgcHVibGljIHNob3dMb2FkZXI6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIC8vIHB1YmxpYyBhbW91bnRUb1BheTogbnVtYmVyID0gMDtcclxuICAvLyBwdWJsaWMgc3RhdHVzTWVzc2FnZTogc3RyaW5nID0gXCJcIjtcclxuXHJcbiAgcHJvdGVjdGVkIHN1YnM6IFN1YnNjcmlwdGlvbltdID0gW107XHJcblxyXG4gIHByaXZhdGUgX3RyYW5zSWQ6IG51bWJlcjtcclxuICBwcml2YXRlIF90cmFuc2FjdGlvblV1aWQ6IHN0cmluZztcclxuICBwcml2YXRlIF9icmFuY2g6IHN0cmluZztcclxuICBwcml2YXRlIF9hbW91bnQ6IG51bWJlciA9IDA7XHJcbiAgcHJpdmF0ZSBfY3VycmVuY3lJZDogbnVtYmVyO1xyXG4gIHByaXZhdGUgX2Nhc2hSZWdpc3Rlck5yOiBudW1iZXI7XHJcbiAgcHJpdmF0ZSBfY2FzaFJlZ2lzdGVyR3JvdXBJZDogbnVtYmVyO1xyXG4gIHByaXZhdGUgX2Nhc2hSZWdpc3RlckRyYXdlcklkOiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSBfY3VycmVudFBheW1lbnRNZXRob2Q6IFBheW1lbnRNZXRob2Q7XHJcbiAgcHJpdmF0ZSBfZG9Ob3RGZXRjaEFtb3VudFRvUGF5Rm9yUmVtYWluaW5nOiBib29sZWFuO1xyXG4gIHByaXZhdGUgX3ByaW50ZXJOYW1lOiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSBfcHJpbnRlckxheW91dDogUmVwb3J0TGF5b3V0U2VsZWN0aW9uUHJpbnQ7XHJcbiAgcHJpdmF0ZSBfZW1haWxMYXlvdXQ6IFJlcG9ydExheW91dFNlbGVjdGlvbkVtYWlsO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByb3RlY3RlZCB0cmFuc2FjdGlvblNlcnZpY2U6IFRyYW5zYWN0aW9uU2VydmljZSxcclxuICAgIHByb3RlY3RlZCBwYXltZW50Q29ubmVjdG9yU2VydmljZTogVHJhbnNhY3Rpb25QYXltZW50Q29ubmVjdG9yU2VydmljZSxcclxuICAgIHByb3RlY3RlZCB0cmFuc2FjdGlvbkV2ZW50U2VydmljZTogVHJhbnNhY3Rpb25FdmVudFNlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHVibGljIHBheW1lbnRTZXJ2aWNlOiBUcmFuc2FjdGlvblBheW1lbnRTZXJ2aWNlLFxyXG4gICAgcHVibGljIGljb25DYWNoZVNlcnZpY2U6IEljb25DYWNoZVNlcnZpY2VcclxuICApe1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgbmdPbkluaXQoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICAvLyBpZiAodGhpcy51cGRhdGVEZXBvc2l0QW1vdW50KSB7XHJcbiAgICAvLyAgIGF3YWl0IHRoaXMuX3RyYW5zYWN0aW9uU2VydmljZS51cGRhdGVIZWFkZXJUcmFuc2FjdGlvbkRlcG9zaXRBbW91bnQodGhpcy50cmFuc2FjdGlvblV1aWQsIHRoaXMuYW1vdW50VG9QYXksIHRydWUpO1xyXG4gICAgLy8gfVxyXG4gICAgdGhpcy5zdWJzLnB1c2goXHJcbiAgICAgIHRoaXMucGF5bWVudFNlcnZpY2UucGF5ZWQuc3Vic2NyaWJlKCgpID0+IHRoaXMucGF5ZWQuZW1pdCgpKVxyXG4gICAgKVxyXG4gICAgYXdhaXQgdGhpcy5fZ2V0UGF5bWVudE1ldGhvZHMoKTtcclxuICAgIHRoaXMuc2hvd0xvYWRlciA9IGZhbHNlO1xyXG4gICAgYXdhaXQgdGhpcy5wYXltZW50U2VydmljZS5wcmVwYXJlUGF5bWVudEluZm8oKTtcclxuICAgIHRoaXMuX3ByZXBhcmVDYXNoUmVnaXN0ZXJzKCk7XHJcbiAgICB0aGlzLnBheW1lbnRJbmZvUmVhZHkoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdWJzLmZvckVhY2gocyA9PiBzLnVuc3Vic2NyaWJlKCkpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHBheW1lbnRNZXRob2RTZWxlY3RlZChtZXRob2Q6IFBheW1lbnRNZXRob2QsIGluZGV4OiBudW1iZXIpOiB2b2lkIHtcclxuICAgIHRoaXMucGF5bWVudE1ldGhvZElkeCA9IGluZGV4O1xyXG4gICAgdGhpcy5fcHJlcGFyZUNhc2hSZWdpc3RlcnMoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjYXNoUmVnaXN0ZXJTZWxlY3RlZChjYXNoUmVnaXN0ZXI6IENhc2hSZWdpc3RlciwgaW5kZXg6IG51bWJlcik6IHZvaWQge1xyXG4gICAgdGhpcy5jYXNoUmVnaXN0ZXJJZHggPSBpbmRleDtcclxuICAgIHRoaXMuY2FzaFJlZ2lzdGVyTnIgPSBjYXNoUmVnaXN0ZXIubnI7XHJcbiAgICB0aGlzLmNhc2hSZWdpc3Rlckdyb3VwSWQgPSBjYXNoUmVnaXN0ZXIuZ3JvdXA7XHJcbiAgICB0aGlzLmNhc2hSZWdpc3RlckRyYXdlcklkID0gY2FzaFJlZ2lzdGVyLmRlZmF1bHREcmF3ZXJOdW1iZXI7XHJcbiAgICB0aGlzLnBheW1lbnRTZXJ2aWNlLnByaW50ZXJOYW1lID0gY2FzaFJlZ2lzdGVyLmRlZmF1bHRQcmludGVyO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZVBheW1lbnQoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICByZXR1cm4gdGhpcy5wYXltZW50U2VydmljZS5oYW5kbGVQYXltZW50KCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlS2V5UGFkTW9kZWxDaGFuZ2UobW9kZWw6IG51bWJlcik6IHZvaWQge1xyXG4gICAgdGhpcy5wYXltZW50U2VydmljZS5hbW91bnRUb1BheSA9IG1vZGVsO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIHBheW1lbnRJbmZvUmVhZHkoKTogdm9pZCB7XHJcblxyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIHByZXBhcmVDYXNoRHJhd2Vycyhncm91cDogbnVtYmVyKTogdm9pZCB7XHJcblxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICpcclxuICAgKiBAcHJpdmF0ZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgX3ByZXBhcmVDYXNoUmVnaXN0ZXJzKCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLnVzZUNhc2hSZWdpc3RlcnMpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jdXJyZW50UGF5bWVudE1ldGhvZCA9IHRoaXMucGF5bWVudE1ldGhvZHNbdGhpcy5wYXltZW50TWV0aG9kSWR4XS5wYXltZW50O1xyXG4gICAgaWYgKHRoaXMuY3VycmVudFBheW1lbnRNZXRob2QgJiYgKCF0aGlzLmN1cnJlbnRQYXltZW50TWV0aG9kLmV4dGVybmFsU291cmNlSWQgfHwgdGhpcy5jdXJyZW50UGF5bWVudE1ldGhvZC5waW5UZXJtaW5hbCkpIHtcclxuICAgICAgdGhpcy5jYXNoUmVnaXN0ZXJzLmxlbmd0aCA9IDA7XHJcbiAgICAgIHRoaXMuY3VycmVudFBheW1lbnRNZXRob2QucG9zR3JvdXBzLmZvckVhY2goY3JnID0+IHtcclxuICAgICAgICB0aGlzLl9nZXRDYXNoUmVnaXN0ZXJzKHRoaXMuYnJhbmNoLCBjcmcuaWQpO1xyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5zaG93Q2FzaFJlZ2lzdGVycyA9IHRydWU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNob3dDYXNoUmVnaXN0ZXJzID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9nZXRDYXNoUmVnaXN0ZXJzKGJyYW5jaD86IHN0cmluZywgZ3JvdXA/OiBudW1iZXIpOiB2b2lkIHtcclxuICAgIHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLmdldENhc2hSZWdpc3RlcnMoYnJhbmNoLCBncm91cCkudGhlbigoY2FzaFJlZ2lzdGVyczogQ2FzaFJlZ2lzdGVyW10pID0+IHtcclxuICAgICAgdGhpcy5jYXNoUmVnaXN0ZXJzLnB1c2goLi4uY2FzaFJlZ2lzdGVycyk7XHJcbiAgICAgIGNvbnN0IGN1cnJlbnRDYXNoUmVnaXN0ZXI6IENhc2hSZWdpc3RlciA9IHRoaXMuY2FzaFJlZ2lzdGVyc1t0aGlzLmNhc2hSZWdpc3RlcklkeF07XHJcbiAgICAgIGlmIChjdXJyZW50Q2FzaFJlZ2lzdGVyKSB7XHJcbiAgICAgICAgdGhpcy5jYXNoUmVnaXN0ZXJOciA9IGN1cnJlbnRDYXNoUmVnaXN0ZXIubnI7XHJcbiAgICAgICAgdGhpcy5jYXNoUmVnaXN0ZXJHcm91cElkID0gY3VycmVudENhc2hSZWdpc3Rlci5ncm91cDtcclxuICAgICAgICB0aGlzLmNhc2hSZWdpc3RlckRyYXdlcklkID0gY3VycmVudENhc2hSZWdpc3Rlci5kZWZhdWx0RHJhd2VyTnVtYmVyO1xyXG4gICAgICAgIHRoaXMucHJlcGFyZUNhc2hEcmF3ZXJzKGN1cnJlbnRDYXNoUmVnaXN0ZXIuZ3JvdXApO1xyXG4gICAgICAgIHRoaXMucGF5bWVudFNlcnZpY2UucHJpbnRlck5hbWUgPSBjdXJyZW50Q2FzaFJlZ2lzdGVyLmRlZmF1bHRQcmludGVyO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2dldFBheW1lbnRNZXRob2RzKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbikgPT4ge1xyXG4gICAgICB0aGlzLnBheW1lbnRNZXRob2RzLmxlbmd0aCA9IDA7XHJcbiAgICAgIHRoaXMucGF5bWVudENvbm5lY3RvclNlcnZpY2UuZ2V0UGF5bWVudE1ldGhvZHNWaWV3TW9kZWxzKHRoaXMuYnJhbmNoKS50aGVuKChtZXRob2RzOiBQYXltZW50Vmlld21vZGVsW10pID0+IHtcclxuICAgICAgICB0aGlzLnBheW1lbnRNZXRob2RzID0gbWV0aG9kcy5zbGljZSgpO1xyXG4gICAgICAgIGlmICh0aGlzLmN1cnJlbnRQYXltZW50TWV0aG9kKSB7XHJcbiAgICAgICAgICB0aGlzLnBheW1lbnRNZXRob2RJZHggPSB0aGlzLnBheW1lbnRNZXRob2RzLmZpbmRJbmRleChwID0+IHAucGF5bWVudC5jb2RlID09PSB0aGlzLmN1cnJlbnRQYXltZW50TWV0aG9kLmNvZGUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXNvbHZlKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -8,13 +8,18 @@ import { TransactionEventService } from './transaction-event.service';
8
8
  import { DictionaryService } from './dictionary.service';
9
9
  import { HttpClient } from '@angular/common/http';
10
10
  import { DialogService } from "./dialog.service";
11
+ import { TransactionService } from "./transaction.service";
12
+ import { CashDrawersRequest } from "@colijnit/transactionapi/build/model/cash-drawers-request";
13
+ import { DatePipe } from "@angular/common";
11
14
  export class TransactionPaymentService {
12
- constructor(_transactionEventService, _paymentConnectorService, _dictionaryService, _dialogService, _http) {
15
+ constructor(_transactionEventService, _paymentConnectorService, _dictionaryService, _dialogService, _http, _transactionService, _datePipe) {
13
16
  this._transactionEventService = _transactionEventService;
14
17
  this._paymentConnectorService = _paymentConnectorService;
15
18
  this._dictionaryService = _dictionaryService;
16
19
  this._dialogService = _dialogService;
17
20
  this._http = _http;
21
+ this._transactionService = _transactionService;
22
+ this._datePipe = _datePipe;
18
23
  this.amount = 0;
19
24
  this.amountToPay = 0;
20
25
  this.showPspQrCode = false;
@@ -35,6 +40,13 @@ export class TransactionPaymentService {
35
40
  get currentPaymentMethod() {
36
41
  return this._currentPaymentMethod;
37
42
  }
43
+ set cashRegisterDrawerNr(value) {
44
+ this._cashRegisterDrawerNr = value;
45
+ this.setCashDrawerIdIfValifDrawer(this._cashRegisterDrawerNr);
46
+ }
47
+ get cashRegisterDrawerNr() {
48
+ return this._cashRegisterDrawerNr;
49
+ }
38
50
  ngOnDestroy() {
39
51
  this._clearInterval();
40
52
  }
@@ -52,9 +64,9 @@ export class TransactionPaymentService {
52
64
  request.currencyId = this.currencyId;
53
65
  request.cashRegisterNr = this.cashRegisterNr;
54
66
  request.cashRegisterGroupId = this.cashRegisterGroupId;
55
- request.cashRegisterDrawerId = this.cashRegisterDrawerId;
56
- //All payments need a cash drawer. Otherwise financial reports will be wrong.
57
- if (!this.cashRegisterDrawerId) {
67
+ request.cashRegisterDrawerId = this._cashRegisterDrawerId;
68
+ //All payments need a valid, currently available cash drawer. Otherwise financial reports will be wrong.
69
+ if (!this._cashRegisterDrawerId) {
58
70
  this._dialogService.showInformation('NEED_REGISTER_DRAWER_MESSAGE', true);
59
71
  return;
60
72
  }
@@ -218,6 +230,25 @@ export class TransactionPaymentService {
218
230
  _dataUriToBase64(uri, mimeType) {
219
231
  return uri ? "data:" + mimeType + ";base64," + uri : "";
220
232
  }
233
+ setCashDrawerIdIfValifDrawer(drawerNr) {
234
+ return __awaiter(this, void 0, void 0, function* () {
235
+ this._cashRegisterDrawerId = NaN;
236
+ if (!drawerNr) {
237
+ return;
238
+ }
239
+ let request = new CashDrawersRequest();
240
+ request.group = this.cashRegisterGroupId;
241
+ request.date = "?='" + this._datePipe.transform(new Date(), "dd-MM-yyyy") + "'";
242
+ let drawers = yield this._transactionService.getCashDrawers(request);
243
+ if (drawers && drawers.length !== 0) {
244
+ drawers.forEach(d => {
245
+ if (d.nr === drawerNr) {
246
+ this._cashRegisterDrawerId = d.id;
247
+ }
248
+ });
249
+ }
250
+ });
251
+ }
221
252
  }
222
253
  TransactionPaymentService.decorators = [
223
254
  { type: Injectable }
@@ -227,6 +258,8 @@ TransactionPaymentService.ctorParameters = () => [
227
258
  { type: TransactionPaymentConnectorService },
228
259
  { type: DictionaryService },
229
260
  { type: DialogService },
230
- { type: HttpClient }
261
+ { type: HttpClient },
262
+ { type: TransactionService },
263
+ { type: DatePipe }
231
264
  ];
232
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tcGF5bWVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJhbnNhY3Rpb24vc3JjL2xpYi9zZXJ2aWNlL3RyYW5zYWN0aW9uLXBheW1lbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFVBQVUsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUNwRCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSx5REFBeUQsQ0FBQztBQUV6RixPQUFPLEVBQUMsa0NBQWtDLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUczRixPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxtRUFBbUUsQ0FBQztBQUN4RyxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzdCLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBR3BFLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUdoRCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFHL0MsTUFBTSxPQUFPLHlCQUF5QjtJQTRDcEMsWUFDVSx3QkFBaUQsRUFDakQsd0JBQTRELEVBQzVELGtCQUFxQyxFQUNyQyxjQUE2QixFQUM3QixLQUFpQjtRQUpqQiw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQXlCO1FBQ2pELDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBb0M7UUFDNUQsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFtQjtRQUNyQyxtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQUM3QixVQUFLLEdBQUwsS0FBSyxDQUFZO1FBL0NwQixXQUFNLEdBQVcsQ0FBQyxDQUFDO1FBQ25CLGdCQUFXLEdBQVcsQ0FBQyxDQUFDO1FBc0J4QixrQkFBYSxHQUFZLEtBQUss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STtRQUM5QyxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDbEMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLHNCQUFzQixDQUFDLElBQUksRUFBRSxDQUFDO1FBQzVELElBQUksU0FBUyxFQUFFO1lBQ2IsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUNuQjtRQUNELElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFTyxvQkFBb0I7UUFDMUIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDcEUsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVPLGNBQWM7UUFDcEIsYUFBYSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBQzNDLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxTQUFTLENBQUM7SUFDMUMsQ0FBQztJQUVPLGdCQUFnQixDQUFDLEdBQVcsRUFBRSxRQUFnQjtRQUNwRCxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxHQUFHLFFBQVEsR0FBRyxVQUFVLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDMUQsQ0FBQzs7O1lBdk9GLFVBQVU7OztZQVRILHVCQUF1QjtZQUx2QixrQ0FBa0M7WUFRbEMsaUJBQWlCO1lBSWpCLGFBQWE7WUFIYixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlLCBPbkRlc3Ryb3l9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0RvUGF5bWVudFJlcXVlc3R9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9kby1wYXltZW50LXJlcXVlc3QnO1xyXG5pbXBvcnQge1BheW1lbnRNZXRob2R9IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9wYXltZW50LW1ldGhvZC5ibyc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25QYXltZW50Q29ubmVjdG9yU2VydmljZX0gZnJvbSAnLi90cmFuc2FjdGlvbi1wYXltZW50LWNvbm5lY3Rvci5zZXJ2aWNlJztcclxuaW1wb3J0IHtDcmVhdGVQYXltZW50TGlua1Jlc3VsdH0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2NyZWF0ZS1wYXltZW50LWxpbmstcmVzdWx0LmJvJztcclxuaW1wb3J0IHtQc3BUcmFuc2FjdGlvblN0YXR1c30gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3BzcC10cmFuc2FjdGlvbi1zdGF0dXMuYm8nO1xyXG5pbXBvcnQge0lvbmVQYXltZW50U3RhdHVzQ29kZX0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL2VudW0vaW9uZS1wYXltZW50LXN0YXR1cy1jb2RlLmVudW0nO1xyXG5pbXBvcnQge1N1YmplY3R9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlfSBmcm9tICcuL3RyYW5zYWN0aW9uLWV2ZW50LnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uRGVwb3NpdFBheW1lbnRJbmZvfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24tZGVwb3NpdC1wYXltZW50LWluZm8uYm8nO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uUmVnaXN0ZXJlZFBheW1lbnRJbmZvfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24tcmVnaXN0ZXJlZC1wYXltZW50LWluZm8uYm8nO1xyXG5pbXBvcnQge0RpY3Rpb25hcnlTZXJ2aWNlfSBmcm9tICcuL2RpY3Rpb25hcnkuc2VydmljZSc7XHJcbmltcG9ydCB7SHR0cENsaWVudH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQge1JlcG9ydExheW91dFNlbGVjdGlvblByaW50fSBmcm9tICdAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9yZXBvcnQtbGF5b3V0LXNlbGVjdGlvbi1wcmludC5ibyc7XHJcbmltcG9ydCB7UmVwb3J0TGF5b3V0U2VsZWN0aW9uRW1haWx9IGZyb20gJ0Bjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL3JlcG9ydC1sYXlvdXQtc2VsZWN0aW9uLWVtYWlsLmJvJztcclxuaW1wb3J0IHtEaWFsb2dTZXJ2aWNlfSBmcm9tIFwiLi9kaWFsb2cuc2VydmljZVwiO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb25QYXltZW50U2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcblxyXG4gIHB1YmxpYyBhbW91bnQ6IG51bWJlciA9IDA7XHJcbiAgcHVibGljIGFtb3VudFRvUGF5OiBudW1iZXIgPSAwO1xyXG4gIHB1YmxpYyBzdGF0dXNNZXNzYWdlOiBzdHJpbmc7XHJcbiAgcHVibGljIGJyYW5jaDogc3RyaW5nO1xyXG4gIHB1YmxpYyB0cmFuc0lkOiBudW1iZXI7XHJcbiAgcHVibGljIHRyYW5zYWN0aW9uVXVpZDogc3RyaW5nO1xyXG4gIHB1YmxpYyBzZXQgY3VycmVudFBheW1lbnRNZXRob2QodmFsdWU6IFBheW1lbnRNZXRob2QpIHtcclxuICAgIHRoaXMuX2N1cnJlbnRQYXltZW50TWV0aG9kID0gdmFsdWU7XHJcbiAgICB0aGlzLnN0YXR1c01lc3NhZ2UgPSBcIlwiO1xyXG4gIH1cclxuICBwdWJsaWMgZ2V0IGN1cnJlbnRQYXltZW50TWV0aG9kKCk6IFBheW1lbnRNZXRob2Qge1xyXG4gICAgcmV0dXJuIHRoaXMuX2N1cnJlbnRQYXltZW50TWV0aG9kO1xyXG4gIH1cclxuICBwdWJsaWMgY3VycmVuY3lJZDogbnVtYmVyO1xyXG4gIHB1YmxpYyBjYXNoUmVnaXN0ZXJOcjogbnVtYmVyO1xyXG4gIHB1YmxpYyBjYXNoUmVnaXN0ZXJHcm91cElkOiBudW1iZXI7XHJcbiAgcHVibGljIGNhc2hSZWdpc3RlckRyYXdlcklkOiBudW1iZXI7XHJcbiAgcHVibGljIHByaW50ZXJOYW1lOiBzdHJpbmc7XHJcbiAgcHVibGljIHByaW50ZXJMYXlvdXQ6IFJlcG9ydExheW91dFNlbGVjdGlvblByaW50O1xyXG4gIHB1YmxpYyBlbWFpbExheW91dDogUmVwb3J0TGF5b3V0U2VsZWN0aW9uRW1haWw7XHJcblxyXG4gIHB1YmxpYyBxckNvZGVJbWFnZTogc3RyaW5nO1xyXG4gIHB1YmxpYyBxckNvZGVVcmw6IHN0cmluZztcclxuICBwdWJsaWMgc2hvd1BzcFFyQ29kZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBnZXREZXBvc2l0QW1vdW50OiBib29sZWFuID0gdHJ1ZTtcclxuICBwdWJsaWMgY2FuY2VsVXJsOiBzdHJpbmc7XHJcblxyXG4gIHB1YmxpYyBwYXllZDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgcHVibGljIHBheW1lbnRGYWlsZWQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIHB1YmxpYyBwb2xsaW5nRm9yU3RhdHVzU3RhcnRlZDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgcHVibGljIHBvbGxpbmdGb3JTdGF0dXNFbmRlZDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG4gIHB1YmxpYyBkb05vdEZldGNoQW1vdW50VG9QYXlGb3JSZW1haW5pbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcblxyXG4gIHByaXZhdGUgX2N1cnJlbnRQYXltZW50TWV0aG9kOiBQYXltZW50TWV0aG9kO1xyXG4gIHByaXZhdGUgX3BheW1lbnRSZXN1bHQ6IENyZWF0ZVBheW1lbnRMaW5rUmVzdWx0O1xyXG4gIHByaXZhdGUgX3BheW1lbnRTdGF0dXNJbnRlcnZhbDogYW55O1xyXG4gIHByaXZhdGUgX3BheW1lbnRTdGF0dXNQb2xsSW50ZXJ2YWxNczogbnVtYmVyID0gNTAwMDtcclxuICBwcml2YXRlIF9wYXltZW50U3RhdHVzTWF4UG9sbEludGVydmFsOiBudW1iZXIgPSA2MDtcclxuICBwcml2YXRlIF9wYXltZW50U3RhdHVzUG9sbEludGVydmFsQ291bnQ6IG51bWJlciA9IDA7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfdHJhbnNhY3Rpb25FdmVudFNlcnZpY2U6IFRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfcGF5bWVudENvbm5lY3RvclNlcnZpY2U6IFRyYW5zYWN0aW9uUGF5bWVudENvbm5lY3RvclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9kaWN0aW9uYXJ5U2VydmljZTogRGljdGlvbmFyeVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9kaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfaHR0cDogSHR0cENsaWVudFxyXG4gICkge1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLl9jbGVhckludGVydmFsKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgaGFuZGxlUGF5bWVudCgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGlmICh0aGlzLmFtb3VudFRvUGF5ID09PSAwKSB7XHJcbiAgICAgIHRoaXMuX2hhbmRsZVBheW1lbnQoKTtcclxuICAgIH1cclxuICAgIHRoaXMuc3RhdHVzTWVzc2FnZSA9IFwiXCI7XHJcbiAgICB0aGlzLmNhbmNlbFVybCA9IFwiXCI7XHJcbiAgICBjb25zdCByZXF1ZXN0OiBEb1BheW1lbnRSZXF1ZXN0ID0gbmV3IERvUGF5bWVudFJlcXVlc3QoKTtcclxuICAgIHJlcXVlc3QudHJhbnNJZCA9IHRoaXMudHJhbnNJZDtcclxuICAgIHJlcXVlc3QucGF5bWVudE1ldGhvZENvZGUgPSB0aGlzLmN1cnJlbnRQYXltZW50TWV0aG9kLmNvZGU7XHJcbiAgICByZXF1ZXN0LmFtb3VudCA9IHRoaXMuYW1vdW50VG9QYXk7XHJcbiAgICByZXF1ZXN0LmN1cnJlbmN5SWQgPSB0aGlzLmN1cnJlbmN5SWQ7XHJcbiAgICByZXF1ZXN0LmNhc2hSZWdpc3Rlck5yID0gdGhpcy5jYXNoUmVnaXN0ZXJOcjtcclxuICAgIHJlcXVlc3QuY2FzaFJlZ2lzdGVyR3JvdXBJZCA9IHRoaXMuY2FzaFJlZ2lzdGVyR3JvdXBJZDtcclxuICAgIHJlcXVlc3QuY2FzaFJlZ2lzdGVyRHJhd2VySWQgPSB0aGlzLmNhc2hSZWdpc3RlckRyYXdlcklkO1xyXG5cclxuICAgIC8vQWxsIHBheW1lbnRzIG5lZWQgYSBjYXNoIGRyYXdlci4gT3RoZXJ3aXNlIGZpbmFuY2lhbCByZXBvcnRzIHdpbGwgYmUgd3JvbmcuXHJcbiAgICBpZiAoIXRoaXMuY2FzaFJlZ2lzdGVyRHJhd2VySWQpIHtcclxuICAgICAgdGhpcy5fZGlhbG9nU2VydmljZS5zaG93SW5mb3JtYXRpb24oJ05FRURfUkVHSVNURVJfRFJBV0VSX01FU1NBR0UnLCB0cnVlKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmN1cnJlbnRQYXltZW50TWV0aG9kICYmIHRoaXMuY3VycmVudFBheW1lbnRNZXRob2QuZXh0ZXJuYWxTb3VyY2VJZCkgeyAvLyBwc3AgcGF5bWVudFxyXG4gICAgICBsZXQgcHNwVHJhbnNhY3Rpb25VdWlkOiBzdHJpbmcgPSBcIlwiO1xyXG4gICAgICBpZiAodGhpcy5jdXJyZW50UGF5bWVudE1ldGhvZC5vcGVuQ2FzaERyYXdlcikge1xyXG4gICAgICAgIGlmKHRoaXMucHJpbnRlck5hbWUpIHtcclxuICAgICAgICAgIGF3YWl0IHRoaXMuX3BheW1lbnRDb25uZWN0b3JTZXJ2aWNlLm9wZW5EcmF3ZXIodGhpcy5wcmludGVyTmFtZSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuX2RpYWxvZ1NlcnZpY2Uuc2hvd0luZm9ybWF0aW9uKCdPUEVOX0RSQVdFUl9OT19QUklOVEVSX01FU1NBR0UnLCB0cnVlKVxyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5jdXJyZW50UGF5bWVudE1ldGhvZC5waW5UZXJtaW5hbCkge1xyXG4gICAgICAgIHBzcFRyYW5zYWN0aW9uVXVpZCA9IGF3YWl0IHRoaXMuX3BheW1lbnRDb25uZWN0b3JTZXJ2aWNlLmRvUGF5bWVudChyZXF1ZXN0KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLl9wYXltZW50UmVzdWx0ID0gYXdhaXQgdGhpcy5fcGF5bWVudENvbm5lY3RvclNlcnZpY2UuY3JlYXRlSW9uZVBheW1lbnRMaW5rQW5kUVJDb2RlKHRoaXMudHJhbnNhY3Rpb25VdWlkLCB0aGlzLmFtb3VudFRvUGF5LCB0aGlzLmN1cnJlbnRQYXltZW50TWV0aG9kLmNvZGUpO1xyXG4gICAgICAgIGlmICh0aGlzLl9wYXltZW50UmVzdWx0ICYmIHRoaXMuX3BheW1lbnRSZXN1bHQuaW1hZ2VCYXNlNjQpIHtcclxuICAgICAgICAgIHRoaXMucXJDb2RlSW1hZ2UgPSB0aGlzLl9kYXRhVXJpVG9CYXNlNjQodGhpcy5fcGF5bWVudFJlc3VsdC5pbWFnZUJhc2U2NCwgJ2ltYWdlL3BuZycpO1xyXG4gICAgICAgICAgdGhpcy5xckNvZGVVcmwgPSB0aGlzLl9wYXltZW50UmVzdWx0LnVybDtcclxuICAgICAgICAgIHRoaXMuc2hvd1BzcFFyQ29kZSA9IHRydWU7XHJcbiAgICAgICAgICBwc3BUcmFuc2FjdGlvblV1aWQgPSB0aGlzLl9wYXltZW50UmVzdWx0LnBzcFRyYW5zYWN0aW9uVVVJRDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHBzcFRyYW5zYWN0aW9uVXVpZCkge1xyXG4gICAgICAgIHRoaXMuX3BheW1lbnRTdGF0dXNQb2xsSW50ZXJ2YWxDb3VudCA9IDA7XHJcbiAgICAgICAgdGhpcy5fd2FpdEZvclBpblBheW1lbnRTdGF0dXMocHNwVHJhbnNhY3Rpb25VdWlkKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHRoaXMuY3VycmVudFBheW1lbnRNZXRob2Qub3BlbkNhc2hEcmF3ZXIpIHtcclxuICAgICAgICBpZih0aGlzLnByaW50ZXJOYW1lKSB7XHJcbiAgICAgICAgICBhd2FpdCB0aGlzLl9wYXltZW50Q29ubmVjdG9yU2VydmljZS5vcGVuRHJhd2VyKHRoaXMucHJpbnRlck5hbWUpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLl9kaWFsb2dTZXJ2aWNlLnNob3dJbmZvcm1hdGlvbignT1BFTl9EUkFXRVJfTk9fUFJJTlRFUl9NRVNTQUdFJywgdHJ1ZSlcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5fcGF5bWVudENvbm5lY3RvclNlcnZpY2UuZG9QYXltZW50KHJlcXVlc3QpLnRoZW4oYXN5bmMgKCkgPT4ge1xyXG4gICAgICAgIGF3YWl0IHRoaXMucHJlcGFyZVBheW1lbnRJbmZvKCk7XHJcbiAgICAgICAgdGhpcy5faGFuZGxlUGF5bWVudChmYWxzZSk7XHJcbiAgICAgICAgaWYgKHRoaXMuYW1vdW50VG9QYXkgPT09IDApIHtcclxuICAgICAgICAgIHRoaXMuX2hhbmRsZVBheW1lbnQoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGNhbmNlbFBheW1lbnQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5jYW5jZWxVcmwpIHtcclxuICAgICAgdGhpcy5faHR0cC5nZXQ8YW55Pih0aGlzLmNhbmNlbFVybCkuc3Vic2NyaWJlKHtcclxuICAgICAgICAvLyBuZXh0OiBkYXRhID0+IHtcclxuICAgICAgICAvLyAgIGNvbnNvbGUubG9nKGRhdGEpO1xyXG4gICAgICAgIC8vIH0sXHJcbiAgICAgICAgZXJyb3I6IGVycm9yID0+IHtcclxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBwcmVwYXJlUGF5bWVudEluZm8oKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAoIXRoaXMudHJhbnNhY3Rpb25VdWlkKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmdldERlcG9zaXRBbW91bnQpIHtcclxuICAgICAgY29uc3QgaW5mbzogVHJhbnNhY3Rpb25EZXBvc2l0UGF5bWVudEluZm8gPSBhd2FpdCB0aGlzLl9wYXltZW50Q29ubmVjdG9yU2VydmljZS5nZXREZXBvc2l0UGF5bWVudEluZm8odGhpcy50cmFuc2FjdGlvblV1aWQpO1xyXG4gICAgICBpZiAoaW5mbykge1xyXG4gICAgICAgIHRoaXMuYW1vdW50VG9QYXkgPSBpbmZvLmRlcG9zaXRSZW1haW5kZXJBbW91bnQ7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAodGhpcy5kb05vdEZldGNoQW1vdW50VG9QYXlGb3JSZW1haW5pbmcpe1xyXG4gICAgICB0aGlzLmFtb3VudFRvUGF5ID0gdGhpcy5hbW91bnQ7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCBpbmZvOiBUcmFuc2FjdGlvblJlZ2lzdGVyZWRQYXltZW50SW5mbyA9IGF3YWl0IHRoaXMuX3BheW1lbnRDb25uZWN0b3JTZXJ2aWNlLmdldFJlZ2lzdGVyZWRQYXltZW50SW5mbyh0aGlzLnRyYW5zYWN0aW9uVXVpZCk7XHJcbiAgICAgIGlmIChpbmZvKSB7XHJcbiAgICAgICAgdGhpcy5hbW91bnRUb1BheSA9IHRoaXMuYW1vdW50IC0gaW5mby50b3RhbEFtb3VudDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBfd2FpdEZvclBpblBheW1lbnRTdGF0dXMocHNwVHJhbnNhY3Rpb25VdWlkOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGlmIChwc3BUcmFuc2FjdGlvblV1aWQpIHtcclxuICAgICAgdGhpcy5wb2xsaW5nRm9yU3RhdHVzU3RhcnRlZC5uZXh0KCk7XHJcbiAgICAgIGNvbnN0IHBpblN0YXR1czogUHNwVHJhbnNhY3Rpb25TdGF0dXMgPSBhd2FpdCB0aGlzLl9wYXltZW50Q29ubmVjdG9yU2VydmljZS5nZXRQc3BUcmFuc2FjdGlvblN0YXR1cyhwc3BUcmFuc2FjdGlvblV1aWQpO1xyXG4gICAgICBpZiAocGluU3RhdHVzICYmIHBpblN0YXR1cy5zdGF0dXMpIHtcclxuICAgICAgICB0aGlzLnN0YXR1c01lc3NhZ2UgPSBwaW5TdGF0dXMuc3RhdHVzLmRlc2NyaXB0aW9uO1xyXG4gICAgICAgIGlmIChwaW5TdGF0dXMuY2FuY2VsVXJsKSB7XHJcbiAgICAgICAgICB0aGlzLmNhbmNlbFVybCA9IHBpblN0YXR1cy5jYW5jZWxVcmw7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGlmIChwaW5TdGF0dXMgJiYgcGluU3RhdHVzLnN0YXR1c0RhdGUgJiYgcGluU3RhdHVzLnN0YXR1cyAmJiBwaW5TdGF0dXMuc3RhdHVzLmVuZFN0YXR1cykge1xyXG4gICAgICAgIGlmIChwaW5TdGF0dXMuc3RhdHVzLmNvZGUgPT09IElvbmVQYXltZW50U3RhdHVzQ29kZS5QQUlEKSB7XHJcbiAgICAgICAgICBhd2FpdCB0aGlzLnByZXBhcmVQYXltZW50SW5mbygpO1xyXG4gICAgICAgICAgaWYgKHRoaXMuYW1vdW50VG9QYXkgPT09IDApIHtcclxuICAgICAgICAgICAgdGhpcy5faGFuZGxlUGF5bWVudCgpO1xyXG4gICAgICAgICAgICB0aGlzLnBvbGxpbmdGb3JTdGF0dXNFbmRlZC5uZXh0KCk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5fcGF5bWVudFN0YXR1c1BvbGxJbnRlcnZhbENvdW50Kys7XHJcbiAgICAgIHRoaXMuX3BheW1lbnRTdGF0dXNJbnRlcnZhbCA9IHNldEludGVydmFsKGFzeW5jICgpID0+IHtcclxuICAgICAgICBpZiAodGhpcy5fcGF5bWVudFN0YXR1c1BvbGxJbnRlcnZhbENvdW50ID49IHRoaXMuX3BheW1lbnRTdGF0dXNNYXhQb2xsSW50ZXJ2YWwpIHtcclxuICAgICAgICAgIHRoaXMuX2NsZWFySW50ZXJ2YWwoKTtcclxuICAgICAgICAgIHRoaXMuX2hhbmRsZVBheW1lbnRGYWlsZWQoKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY29uc3QgcGluU3RhdHVzOiBQc3BUcmFuc2FjdGlvblN0YXR1cyA9IGF3YWl0IHRoaXMuX3BheW1lbnRDb25uZWN0b3JTZXJ2aWNlLmdldFBzcFRyYW5zYWN0aW9uU3RhdHVzKHBzcFRyYW5zYWN0aW9uVXVpZCk7XHJcbiAgICAgICAgICBpZiAocGluU3RhdHVzICYmIHBpblN0YXR1cy5zdGF0dXMpIHtcclxuICAgICAgICAgICAgdGhpcy5zdGF0dXNNZXNzYWdlID0gcGluU3RhdHVzLnN0YXR1cy5kZXNjcmlwdGlvbjtcclxuICAgICAgICAgICAgaWYgKHBpblN0YXR1cy5jYW5jZWxVcmwpIHtcclxuICAgICAgICAgICAgICB0aGlzLmNhbmNlbFVybCA9IHBpblN0YXR1cy5jYW5jZWxVcmw7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChwaW5TdGF0dXMgJiYgcGluU3RhdHVzLnN0YXR1c0RhdGUgJiYgcGluU3RhdHVzLnN0YXR1cyAmJiBwaW5TdGF0dXMuc3RhdHVzLmVuZFN0YXR1cykge1xyXG4gICAgICAgICAgICB0aGlzLmNhbmNlbFVybCA9IFwiXCI7XHJcbiAgICAgICAgICAgIHRoaXMuX2NsZWFySW50ZXJ2YWwoKTtcclxuICAgICAgICAgICAgaWYgKHBpblN0YXR1cy5zdGF0dXMuY29kZSA9PT0gSW9uZVBheW1lbnRTdGF0dXNDb2RlLlBBSUQpIHtcclxuICAgICAgICAgICAgICBhd2FpdCB0aGlzLnByZXBhcmVQYXltZW50SW5mbygpO1xyXG4gICAgICAgICAgICAgIGlmICh0aGlzLmFtb3VudFRvUGF5ID09PSAwKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9oYW5kbGVQYXltZW50KCk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHRoaXMuX2hhbmRsZVBheW1lbnRGYWlsZWQoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5fcGF5bWVudFN0YXR1c1BvbGxJbnRlcnZhbENvdW50Kys7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LCB0aGlzLl9wYXltZW50U3RhdHVzUG9sbEludGVydmFsTXMpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5fY2xlYXJJbnRlcnZhbCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfaGFuZGxlUGF5bWVudChlbWl0UGF5ZWQ6IGJvb2xlYW4gPSB0cnVlKTogdm9pZCB7XHJcbiAgICB0aGlzLnBvbGxpbmdGb3JTdGF0dXNFbmRlZC5uZXh0KCk7XHJcbiAgICB0aGlzLl90cmFuc2FjdGlvbkV2ZW50U2VydmljZS50cmFuc2FjdGlvblBheW1lbnREb25lLm5leHQoKTtcclxuICAgIGlmIChlbWl0UGF5ZWQpIHtcclxuICAgICAgdGhpcy5wYXllZC5uZXh0KCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNhbmNlbFVybCA9IFwiXCI7XHJcbiAgICB0aGlzLnN0YXR1c01lc3NhZ2UgPSBcIlwiO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfaGFuZGxlUGF5bWVudEZhaWxlZCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc3RhdHVzTWVzc2FnZSA9IHRoaXMuX2RpY3Rpb25hcnlTZXJ2aWNlLmdldCgnUEFZTUVOVF9USU1FT1VUJyk7XHJcbiAgICB0aGlzLnBvbGxpbmdGb3JTdGF0dXNFbmRlZC5uZXh0KCk7XHJcbiAgICB0aGlzLnBheW1lbnRGYWlsZWQubmV4dCgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfY2xlYXJJbnRlcnZhbCgpOiB2b2lkIHtcclxuICAgIGNsZWFySW50ZXJ2YWwodGhpcy5fcGF5bWVudFN0YXR1c0ludGVydmFsKTtcclxuICAgIHRoaXMuX3BheW1lbnRTdGF0dXNJbnRlcnZhbCA9IHVuZGVmaW5lZDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2RhdGFVcmlUb0Jhc2U2NCh1cmk6IHN0cmluZywgbWltZVR5cGU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdXJpID8gXCJkYXRhOlwiICsgbWltZVR5cGUgKyBcIjtiYXNlNjQsXCIgKyB1cmkgOiBcIlwiO1xyXG4gIH1cclxufVxyXG4iXX0=
265
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tcGF5bWVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJhbnNhY3Rpb24vc3JjL2xpYi9zZXJ2aWNlL3RyYW5zYWN0aW9uLXBheW1lbnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFVBQVUsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUNwRCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSx5REFBeUQsQ0FBQztBQUV6RixPQUFPLEVBQUMsa0NBQWtDLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUczRixPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxtRUFBbUUsQ0FBQztBQUN4RyxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzdCLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBR3BFLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUdoRCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDL0MsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDekQsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sMkRBQTJELENBQUM7QUFDN0YsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBSXpDLE1BQU0sT0FBTyx5QkFBeUI7SUFzRHBDLFlBQ1Usd0JBQWlELEVBQ2pELHdCQUE0RCxFQUM1RCxrQkFBcUMsRUFDckMsY0FBNkIsRUFDN0IsS0FBaUIsRUFDakIsbUJBQXVDLEVBQ3ZDLFNBQW1CO1FBTm5CLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBeUI7UUFDakQsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUFvQztRQUM1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dCI6WyJpbXBvcnQge0luamVjdGFibGUsIE9uRGVzdHJveX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7RG9QYXltZW50UmVxdWVzdH0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2RvLXBheW1lbnQtcmVxdWVzdCc7XHJcbmltcG9ydCB7UGF5bWVudE1ldGhvZH0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3BheW1lbnQtbWV0aG9kLmJvJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvblBheW1lbnRDb25uZWN0b3JTZXJ2aWNlfSBmcm9tICcuL3RyYW5zYWN0aW9uLXBheW1lbnQtY29ubmVjdG9yLnNlcnZpY2UnO1xyXG5pbXBvcnQge0NyZWF0ZVBheW1lbnRMaW5rUmVzdWx0fSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvY3JlYXRlLXBheW1lbnQtbGluay1yZXN1bHQuYm8nO1xyXG5pbXBvcnQge1BzcFRyYW5zYWN0aW9uU3RhdHVzfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcHNwLXRyYW5zYWN0aW9uLXN0YXR1cy5ibyc7XHJcbmltcG9ydCB7SW9uZVBheW1lbnRTdGF0dXNDb2RlfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvZW51bS9pb25lLXBheW1lbnQtc3RhdHVzLWNvZGUuZW51bSc7XHJcbmltcG9ydCB7U3ViamVjdH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25FdmVudFNlcnZpY2V9IGZyb20gJy4vdHJhbnNhY3Rpb24tZXZlbnQuc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25EZXBvc2l0UGF5bWVudEluZm99IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1kZXBvc2l0LXBheW1lbnQtaW5mby5ibyc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25SZWdpc3RlcmVkUGF5bWVudEluZm99IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1yZWdpc3RlcmVkLXBheW1lbnQtaW5mby5ibyc7XHJcbmltcG9ydCB7RGljdGlvbmFyeVNlcnZpY2V9IGZyb20gJy4vZGljdGlvbmFyeS5zZXJ2aWNlJztcclxuaW1wb3J0IHtIdHRwQ2xpZW50fSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7UmVwb3J0TGF5b3V0U2VsZWN0aW9uUHJpbnR9IGZyb20gJ0Bjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL3JlcG9ydC1sYXlvdXQtc2VsZWN0aW9uLXByaW50LmJvJztcclxuaW1wb3J0IHtSZXBvcnRMYXlvdXRTZWxlY3Rpb25FbWFpbH0gZnJvbSAnQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvcmVwb3J0LWxheW91dC1zZWxlY3Rpb24tZW1haWwuYm8nO1xyXG5pbXBvcnQge0RpYWxvZ1NlcnZpY2V9IGZyb20gXCIuL2RpYWxvZy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TZXJ2aWNlfSBmcm9tIFwiLi90cmFuc2FjdGlvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7Q2FzaERyYXdlcnNSZXF1ZXN0fSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2Nhc2gtZHJhd2Vycy1yZXF1ZXN0XCI7XHJcbmltcG9ydCB7RGF0ZVBpcGV9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHtDYXNoRHJhd2VyfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2Nhc2gtZHJhd2VyLmJvXCI7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvblBheW1lbnRTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuXHJcbiAgcHVibGljIGFtb3VudDogbnVtYmVyID0gMDtcclxuICBwdWJsaWMgYW1vdW50VG9QYXk6IG51bWJlciA9IDA7XHJcbiAgcHVibGljIHN0YXR1c01lc3NhZ2U6IHN0cmluZztcclxuICBwdWJsaWMgYnJhbmNoOiBzdHJpbmc7XHJcbiAgcHVibGljIHRyYW5zSWQ6IG51bWJlcjtcclxuICBwdWJsaWMgdHJhbnNhY3Rpb25VdWlkOiBzdHJpbmc7XHJcbiAgcHVibGljIHNldCBjdXJyZW50UGF5bWVudE1ldGhvZCh2YWx1ZTogUGF5bWVudE1ldGhvZCkge1xyXG4gICAgdGhpcy5fY3VycmVudFBheW1lbnRNZXRob2QgPSB2YWx1ZTtcclxuICAgIHRoaXMuc3RhdHVzTWVzc2FnZSA9IFwiXCI7XHJcbiAgfVxyXG4gIHB1YmxpYyBnZXQgY3VycmVudFBheW1lbnRNZXRob2QoKTogUGF5bWVudE1ldGhvZCB7XHJcbiAgICByZXR1cm4gdGhpcy5fY3VycmVudFBheW1lbnRNZXRob2Q7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0IGNhc2hSZWdpc3RlckRyYXdlck5yKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgICAgdGhpcy5fY2FzaFJlZ2lzdGVyRHJhd2VyTnIgPSB2YWx1ZTtcclxuICAgICAgdGhpcy5zZXRDYXNoRHJhd2VySWRJZlZhbGlmRHJhd2VyKHRoaXMuX2Nhc2hSZWdpc3RlckRyYXdlck5yKTtcclxuICB9XHJcbiAgcHVibGljIGdldCBjYXNoUmVnaXN0ZXJEcmF3ZXJOcigpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2Nhc2hSZWdpc3RlckRyYXdlck5yO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGN1cnJlbmN5SWQ6IG51bWJlcjtcclxuICBwdWJsaWMgY2FzaFJlZ2lzdGVyTnI6IG51bWJlcjtcclxuICBwdWJsaWMgY2FzaFJlZ2lzdGVyR3JvdXBJZDogbnVtYmVyO1xyXG5cclxuICBwdWJsaWMgcHJpbnRlck5hbWU6IHN0cmluZztcclxuICBwdWJsaWMgcHJpbnRlckxheW91dDogUmVwb3J0TGF5b3V0U2VsZWN0aW9uUHJpbnQ7XHJcbiAgcHVibGljIGVtYWlsTGF5b3V0OiBSZXBvcnRMYXlvdXRTZWxlY3Rpb25FbWFpbDtcclxuXHJcbiAgcHVibGljIHFyQ29kZUltYWdlOiBzdHJpbmc7XHJcbiAgcHVibGljIHFyQ29kZVVybDogc3RyaW5nO1xyXG4gIHB1YmxpYyBzaG93UHNwUXJDb2RlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIGdldERlcG9zaXRBbW91bnQ6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIHB1YmxpYyBjYW5jZWxVcmw6IHN0cmluZztcclxuXHJcbiAgcHVibGljIHBheWVkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBwdWJsaWMgcGF5bWVudEZhaWxlZDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgcHVibGljIHBvbGxpbmdGb3JTdGF0dXNTdGFydGVkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBwdWJsaWMgcG9sbGluZ0ZvclN0YXR1c0VuZGVkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgcHVibGljIGRvTm90RmV0Y2hBbW91bnRUb1BheUZvclJlbWFpbmluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwcml2YXRlIF9jYXNoUmVnaXN0ZXJEcmF3ZXJOcjogc3RyaW5nO1xyXG4gIHByaXZhdGUgX2Nhc2hSZWdpc3RlckRyYXdlcklkOiBudW1iZXI7XHJcbiAgcHJpdmF0ZSBfY3VycmVudFBheW1lbnRNZXRob2Q6IFBheW1lbnRNZXRob2Q7XHJcbiAgcHJpdmF0ZSBfcGF5bWVudFJlc3VsdDogQ3JlYXRlUGF5bWVudExpbmtSZXN1bHQ7XHJcbiAgcHJpdmF0ZSBfcGF5bWVudFN0YXR1c0ludGVydmFsOiBhbnk7XHJcbiAgcHJpdmF0ZSBfcGF5bWVudFN0YXR1c1BvbGxJbnRlcnZhbE1zOiBudW1iZXIgPSA1MDAwO1xyXG4gIHByaXZhdGUgX3BheW1lbnRTdGF0dXNNYXhQb2xsSW50ZXJ2YWw6IG51bWJlciA9IDYwO1xyXG4gIHByaXZhdGUgX3BheW1lbnRTdGF0dXNQb2xsSW50ZXJ2YWxDb3VudDogbnVtYmVyID0gMDtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF90cmFuc2FjdGlvbkV2ZW50U2VydmljZTogVHJhbnNhY3Rpb25FdmVudFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9wYXltZW50Q29ubmVjdG9yU2VydmljZTogVHJhbnNhY3Rpb25QYXltZW50Q29ubmVjdG9yU2VydmljZSxcclxuICAgIHByaXZhdGUgX2RpY3Rpb25hcnlTZXJ2aWNlOiBEaWN0aW9uYXJ5U2VydmljZSxcclxuICAgIHByaXZhdGUgX2RpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9odHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgcHJpdmF0ZSBfdHJhbnNhY3Rpb25TZXJ2aWNlOiBUcmFuc2FjdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9kYXRlUGlwZTogRGF0ZVBpcGUsXHJcbiAgKSB7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuX2NsZWFySW50ZXJ2YWwoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBoYW5kbGVQYXltZW50KCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYgKHRoaXMuYW1vdW50VG9QYXkgPT09IDApIHtcclxuICAgICAgdGhpcy5faGFuZGxlUGF5bWVudCgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zdGF0dXNNZXNzYWdlID0gXCJcIjtcclxuICAgIHRoaXMuY2FuY2VsVXJsID0gXCJcIjtcclxuICAgIGNvbnN0IHJlcXVlc3Q6IERvUGF5bWVudFJlcXVlc3QgPSBuZXcgRG9QYXltZW50UmVxdWVzdCgpO1xyXG4gICAgcmVxdWVzdC50cmFuc0lkID0gdGhpcy50cmFuc0lkO1xyXG4gICAgcmVxdWVzdC5wYXltZW50TWV0aG9kQ29kZSA9IHRoaXMuY3VycmVudFBheW1lbnRNZXRob2QuY29kZTtcclxuICAgIHJlcXVlc3QuYW1vdW50ID0gdGhpcy5hbW91bnRUb1BheTtcclxuICAgIHJlcXVlc3QuY3VycmVuY3lJZCA9IHRoaXMuY3VycmVuY3lJZDtcclxuICAgIHJlcXVlc3QuY2FzaFJlZ2lzdGVyTnIgPSB0aGlzLmNhc2hSZWdpc3Rlck5yO1xyXG4gICAgcmVxdWVzdC5jYXNoUmVnaXN0ZXJHcm91cElkID0gdGhpcy5jYXNoUmVnaXN0ZXJHcm91cElkO1xyXG4gICAgcmVxdWVzdC5jYXNoUmVnaXN0ZXJEcmF3ZXJJZCA9IHRoaXMuX2Nhc2hSZWdpc3RlckRyYXdlcklkO1xyXG5cclxuICAgIC8vQWxsIHBheW1lbnRzIG5lZWQgYSB2YWxpZCwgY3VycmVudGx5IGF2YWlsYWJsZSBjYXNoIGRyYXdlci4gT3RoZXJ3aXNlIGZpbmFuY2lhbCByZXBvcnRzIHdpbGwgYmUgd3JvbmcuXHJcbiAgICBpZiAoIXRoaXMuX2Nhc2hSZWdpc3RlckRyYXdlcklkKSB7XHJcbiAgICAgIHRoaXMuX2RpYWxvZ1NlcnZpY2Uuc2hvd0luZm9ybWF0aW9uKCdORUVEX1JFR0lTVEVSX0RSQVdFUl9NRVNTQUdFJywgdHJ1ZSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5jdXJyZW50UGF5bWVudE1ldGhvZCAmJiB0aGlzLmN1cnJlbnRQYXltZW50TWV0aG9kLmV4dGVybmFsU291cmNlSWQpIHsgLy8gcHNwIHBheW1lbnRcclxuICAgICAgbGV0IHBzcFRyYW5zYWN0aW9uVXVpZDogc3RyaW5nID0gXCJcIjtcclxuICAgICAgaWYgKHRoaXMuY3VycmVudFBheW1lbnRNZXRob2Qub3BlbkNhc2hEcmF3ZXIpIHtcclxuICAgICAgICBpZih0aGlzLnByaW50ZXJOYW1lKSB7XHJcbiAgICAgICAgICBhd2FpdCB0aGlzLl9wYXltZW50Q29ubmVjdG9yU2VydmljZS5vcGVuRHJhd2VyKHRoaXMucHJpbnRlck5hbWUpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLl9kaWFsb2dTZXJ2aWNlLnNob3dJbmZvcm1hdGlvbignT1BFTl9EUkFXRVJfTk9fUFJJTlRFUl9NRVNTQUdFJywgdHJ1ZSlcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuY3VycmVudFBheW1lbnRNZXRob2QucGluVGVybWluYWwpIHtcclxuICAgICAgICBwc3BUcmFuc2FjdGlvblV1aWQgPSBhd2FpdCB0aGlzLl9wYXltZW50Q29ubmVjdG9yU2VydmljZS5kb1BheW1lbnQocmVxdWVzdCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5fcGF5bWVudFJlc3VsdCA9IGF3YWl0IHRoaXMuX3BheW1lbnRDb25uZWN0b3JTZXJ2aWNlLmNyZWF0ZUlvbmVQYXltZW50TGlua0FuZFFSQ29kZSh0aGlzLnRyYW5zYWN0aW9uVXVpZCwgdGhpcy5hbW91bnRUb1BheSwgdGhpcy5jdXJyZW50UGF5bWVudE1ldGhvZC5jb2RlKTtcclxuICAgICAgICBpZiAodGhpcy5fcGF5bWVudFJlc3VsdCAmJiB0aGlzLl9wYXltZW50UmVzdWx0LmltYWdlQmFzZTY0KSB7XHJcbiAgICAgICAgICB0aGlzLnFyQ29kZUltYWdlID0gdGhpcy5fZGF0YVVyaVRvQmFzZTY0KHRoaXMuX3BheW1lbnRSZXN1bHQuaW1hZ2VCYXNlNjQsICdpbWFnZS9wbmcnKTtcclxuICAgICAgICAgIHRoaXMucXJDb2RlVXJsID0gdGhpcy5fcGF5bWVudFJlc3VsdC51cmw7XHJcbiAgICAgICAgICB0aGlzLnNob3dQc3BRckNvZGUgPSB0cnVlO1xyXG4gICAgICAgICAgcHNwVHJhbnNhY3Rpb25VdWlkID0gdGhpcy5fcGF5bWVudFJlc3VsdC5wc3BUcmFuc2FjdGlvblVVSUQ7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGlmIChwc3BUcmFuc2FjdGlvblV1aWQpIHtcclxuICAgICAgICB0aGlzLl9wYXltZW50U3RhdHVzUG9sbEludGVydmFsQ291bnQgPSAwO1xyXG4gICAgICAgIHRoaXMuX3dhaXRGb3JQaW5QYXltZW50U3RhdHVzKHBzcFRyYW5zYWN0aW9uVXVpZCk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmICh0aGlzLmN1cnJlbnRQYXltZW50TWV0aG9kLm9wZW5DYXNoRHJhd2VyKSB7XHJcbiAgICAgICAgaWYodGhpcy5wcmludGVyTmFtZSkge1xyXG4gICAgICAgICAgYXdhaXQgdGhpcy5fcGF5bWVudENvbm5lY3RvclNlcnZpY2Uub3BlbkRyYXdlcih0aGlzLnByaW50ZXJOYW1lKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5fZGlhbG9nU2VydmljZS5zaG93SW5mb3JtYXRpb24oJ09QRU5fRFJBV0VSX05PX1BSSU5URVJfTUVTU0FHRScsIHRydWUpXHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuX3BheW1lbnRDb25uZWN0b3JTZXJ2aWNlLmRvUGF5bWVudChyZXF1ZXN0KS50aGVuKGFzeW5jICgpID0+IHtcclxuICAgICAgICBhd2FpdCB0aGlzLnByZXBhcmVQYXltZW50SW5mbygpO1xyXG4gICAgICAgIHRoaXMuX2hhbmRsZVBheW1lbnQoZmFsc2UpO1xyXG4gICAgICAgIGlmICh0aGlzLmFtb3VudFRvUGF5ID09PSAwKSB7XHJcbiAgICAgICAgICB0aGlzLl9oYW5kbGVQYXltZW50KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBjYW5jZWxQYXltZW50KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuY2FuY2VsVXJsKSB7XHJcbiAgICAgIHRoaXMuX2h0dHAuZ2V0PGFueT4odGhpcy5jYW5jZWxVcmwpLnN1YnNjcmliZSh7XHJcbiAgICAgICAgLy8gbmV4dDogZGF0YSA9PiB7XHJcbiAgICAgICAgLy8gICBjb25zb2xlLmxvZyhkYXRhKTtcclxuICAgICAgICAvLyB9LFxyXG4gICAgICAgIGVycm9yOiBlcnJvciA9PiB7XHJcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgcHJlcGFyZVBheW1lbnRJbmZvKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYgKCF0aGlzLnRyYW5zYWN0aW9uVXVpZCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5nZXREZXBvc2l0QW1vdW50KSB7XHJcbiAgICAgIGNvbnN0IGluZm86IFRyYW5zYWN0aW9uRGVwb3NpdFBheW1lbnRJbmZvID0gYXdhaXQgdGhpcy5fcGF5bWVudENvbm5lY3RvclNlcnZpY2UuZ2V0RGVwb3NpdFBheW1lbnRJbmZvKHRoaXMudHJhbnNhY3Rpb25VdWlkKTtcclxuICAgICAgaWYgKGluZm8pIHtcclxuICAgICAgICB0aGlzLmFtb3VudFRvUGF5ID0gaW5mby5kZXBvc2l0UmVtYWluZGVyQW1vdW50O1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuZG9Ob3RGZXRjaEFtb3VudFRvUGF5Rm9yUmVtYWluaW5nKXtcclxuICAgICAgdGhpcy5hbW91bnRUb1BheSA9IHRoaXMuYW1vdW50O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgaW5mbzogVHJhbnNhY3Rpb25SZWdpc3RlcmVkUGF5bWVudEluZm8gPSBhd2FpdCB0aGlzLl9wYXltZW50Q29ubmVjdG9yU2VydmljZS5nZXRSZWdpc3RlcmVkUGF5bWVudEluZm8odGhpcy50cmFuc2FjdGlvblV1aWQpO1xyXG4gICAgICBpZiAoaW5mbykge1xyXG4gICAgICAgIHRoaXMuYW1vdW50VG9QYXkgPSB0aGlzLmFtb3VudCAtIGluZm8udG90YWxBbW91bnQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgX3dhaXRGb3JQaW5QYXltZW50U3RhdHVzKHBzcFRyYW5zYWN0aW9uVXVpZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAocHNwVHJhbnNhY3Rpb25VdWlkKSB7XHJcbiAgICAgIHRoaXMucG9sbGluZ0ZvclN0YXR1c1N0YXJ0ZWQubmV4dCgpO1xyXG4gICAgICBjb25zdCBwaW5TdGF0dXM6IFBzcFRyYW5zYWN0aW9uU3RhdHVzID0gYXdhaXQgdGhpcy5fcGF5bWVudENvbm5lY3RvclNlcnZpY2UuZ2V0UHNwVHJhbnNhY3Rpb25TdGF0dXMocHNwVHJhbnNhY3Rpb25VdWlkKTtcclxuICAgICAgaWYgKHBpblN0YXR1cyAmJiBwaW5TdGF0dXMuc3RhdHVzKSB7XHJcbiAgICAgICAgdGhpcy5zdGF0dXNNZXNzYWdlID0gcGluU3RhdHVzLnN0YXR1cy5kZXNjcmlwdGlvbjtcclxuICAgICAgICBpZiAocGluU3RhdHVzLmNhbmNlbFVybCkge1xyXG4gICAgICAgICAgdGhpcy5jYW5jZWxVcmwgPSBwaW5TdGF0dXMuY2FuY2VsVXJsO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZiAocGluU3RhdHVzICYmIHBpblN0YXR1cy5zdGF0dXNEYXRlICYmIHBpblN0YXR1cy5zdGF0dXMgJiYgcGluU3RhdHVzLnN0YXR1cy5lbmRTdGF0dXMpIHtcclxuICAgICAgICBpZiAocGluU3RhdHVzLnN0YXR1cy5jb2RlID09PSBJb25lUGF5bWVudFN0YXR1c0NvZGUuUEFJRCkge1xyXG4gICAgICAgICAgYXdhaXQgdGhpcy5wcmVwYXJlUGF5bWVudEluZm8oKTtcclxuICAgICAgICAgIGlmICh0aGlzLmFtb3VudFRvUGF5ID09PSAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2hhbmRsZVBheW1lbnQoKTtcclxuICAgICAgICAgICAgdGhpcy5wb2xsaW5nRm9yU3RhdHVzRW5kZWQubmV4dCgpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuX3BheW1lbnRTdGF0dXNQb2xsSW50ZXJ2YWxDb3VudCsrO1xyXG4gICAgICB0aGlzLl9wYXltZW50U3RhdHVzSW50ZXJ2YWwgPSBzZXRJbnRlcnZhbChhc3luYyAoKSA9PiB7XHJcbiAgICAgICAgaWYgKHRoaXMuX3BheW1lbnRTdGF0dXNQb2xsSW50ZXJ2YWxDb3VudCA+PSB0aGlzLl9wYXltZW50U3RhdHVzTWF4UG9sbEludGVydmFsKSB7XHJcbiAgICAgICAgICB0aGlzLl9jbGVhckludGVydmFsKCk7XHJcbiAgICAgICAgICB0aGlzLl9oYW5kbGVQYXltZW50RmFpbGVkKCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGNvbnN0IHBpblN0YXR1czogUHNwVHJhbnNhY3Rpb25TdGF0dXMgPSBhd2FpdCB0aGlzLl9wYXltZW50Q29ubmVjdG9yU2VydmljZS5nZXRQc3BUcmFuc2FjdGlvblN0YXR1cyhwc3BUcmFuc2FjdGlvblV1aWQpO1xyXG4gICAgICAgICAgaWYgKHBpblN0YXR1cyAmJiBwaW5TdGF0dXMuc3RhdHVzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3RhdHVzTWVzc2FnZSA9IHBpblN0YXR1cy5zdGF0dXMuZGVzY3JpcHRpb247XHJcbiAgICAgICAgICAgIGlmIChwaW5TdGF0dXMuY2FuY2VsVXJsKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5jYW5jZWxVcmwgPSBwaW5TdGF0dXMuY2FuY2VsVXJsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAocGluU3RhdHVzICYmIHBpblN0YXR1cy5zdGF0dXNEYXRlICYmIHBpblN0YXR1cy5zdGF0dXMgJiYgcGluU3RhdHVzLnN0YXR1cy5lbmRTdGF0dXMpIHtcclxuICAgICAgICAgICAgdGhpcy5jYW5jZWxVcmwgPSBcIlwiO1xyXG4gICAgICAgICAgICB0aGlzLl9jbGVhckludGVydmFsKCk7XHJcbiAgICAgICAgICAgIGlmIChwaW5TdGF0dXMuc3RhdHVzLmNvZGUgPT09IElvbmVQYXltZW50U3RhdHVzQ29kZS5QQUlEKSB7XHJcbiAgICAgICAgICAgICAgYXdhaXQgdGhpcy5wcmVwYXJlUGF5bWVudEluZm8oKTtcclxuICAgICAgICAgICAgICBpZiAodGhpcy5hbW91bnRUb1BheSA9PT0gMCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5faGFuZGxlUGF5bWVudCgpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB0aGlzLl9oYW5kbGVQYXltZW50RmFpbGVkKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMuX3BheW1lbnRTdGF0dXNQb2xsSW50ZXJ2YWxDb3VudCsrO1xyXG4gICAgICAgIH1cclxuICAgICAgfSwgdGhpcy5fcGF5bWVudFN0YXR1c1BvbGxJbnRlcnZhbE1zKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX2NsZWFySW50ZXJ2YWwoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2hhbmRsZVBheW1lbnQoZW1pdFBheWVkOiBib29sZWFuID0gdHJ1ZSk6IHZvaWQge1xyXG4gICAgdGhpcy5wb2xsaW5nRm9yU3RhdHVzRW5kZWQubmV4dCgpO1xyXG4gICAgdGhpcy5fdHJhbnNhY3Rpb25FdmVudFNlcnZpY2UudHJhbnNhY3Rpb25QYXltZW50RG9uZS5uZXh0KCk7XHJcbiAgICBpZiAoZW1pdFBheWVkKSB7XHJcbiAgICAgIHRoaXMucGF5ZWQubmV4dCgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jYW5jZWxVcmwgPSBcIlwiO1xyXG4gICAgdGhpcy5zdGF0dXNNZXNzYWdlID0gXCJcIjtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2hhbmRsZVBheW1lbnRGYWlsZWQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnN0YXR1c01lc3NhZ2UgPSB0aGlzLl9kaWN0aW9uYXJ5U2VydmljZS5nZXQoJ1BBWU1FTlRfVElNRU9VVCcpO1xyXG4gICAgdGhpcy5wb2xsaW5nRm9yU3RhdHVzRW5kZWQubmV4dCgpO1xyXG4gICAgdGhpcy5wYXltZW50RmFpbGVkLm5leHQoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2NsZWFySW50ZXJ2YWwoKTogdm9pZCB7XHJcbiAgICBjbGVhckludGVydmFsKHRoaXMuX3BheW1lbnRTdGF0dXNJbnRlcnZhbCk7XHJcbiAgICB0aGlzLl9wYXltZW50U3RhdHVzSW50ZXJ2YWwgPSB1bmRlZmluZWQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9kYXRhVXJpVG9CYXNlNjQodXJpOiBzdHJpbmcsIG1pbWVUeXBlOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHVyaSA/IFwiZGF0YTpcIiArIG1pbWVUeXBlICsgXCI7YmFzZTY0LFwiICsgdXJpIDogXCJcIjtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgc2V0Q2FzaERyYXdlcklkSWZWYWxpZkRyYXdlcihkcmF3ZXJOcjogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0aGlzLl9jYXNoUmVnaXN0ZXJEcmF3ZXJJZCA9IE5hTjtcclxuICAgIGlmICghZHJhd2VyTnIpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCByZXF1ZXN0OkNhc2hEcmF3ZXJzUmVxdWVzdCA9IG5ldyBDYXNoRHJhd2Vyc1JlcXVlc3QoKTtcclxuICAgIHJlcXVlc3QuZ3JvdXAgPSB0aGlzLmNhc2hSZWdpc3Rlckdyb3VwSWQ7XHJcbiAgICByZXF1ZXN0LmRhdGUgPSBcIj89J1wiICsgdGhpcy5fZGF0ZVBpcGUudHJhbnNmb3JtKG5ldyBEYXRlKCksIFwiZGQtTU0teXl5eVwiKSArIFwiJ1wiO1xyXG5cclxuICAgIGxldCBkcmF3ZXJzOiBDYXNoRHJhd2VyW10gPSBhd2FpdCB0aGlzLl90cmFuc2FjdGlvblNlcnZpY2UuZ2V0Q2FzaERyYXdlcnMocmVxdWVzdCk7XHJcbiAgICBpZiAoZHJhd2VycyAmJiBkcmF3ZXJzLmxlbmd0aCAhPT0gMCkge1xyXG4gICAgICBkcmF3ZXJzLmZvckVhY2goZCA9PiB7XHJcbiAgICAgICAgaWYoZC5uciA9PT0gZHJhd2VyTnIpIHtcclxuICAgICAgICAgIHRoaXMuX2Nhc2hSZWdpc3RlckRyYXdlcklkID0gZC5pZFxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -3,8 +3,8 @@ export class Version {
3
3
  constructor() {
4
4
  this.name = "@colijnit/transaction";
5
5
  this.description = "Colijn IT transaction package";
6
- this.symVer = "255.1.28";
7
- this.publishDate = "30-8-2024 13:29:05";
6
+ this.symVer = "255.1.30";
7
+ this.publishDate = "30-8-2024 18:01:40";
8
8
  }
9
9
  }
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tdmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3RyYW5zYWN0aW9uL3NyYy9saWIvdHJhbnNhY3Rpb24tdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFDdkQsTUFBTSxPQUFPLE9BQU87SUFBcEI7UUFDUyxTQUFJLEdBQUcsdUJBQXVCLENBQUM7UUFDL0IsZ0JBQVcsR0FBRywrQkFBK0IsQ0FBQztRQUM5QyxXQUFNLEdBQUcsVUFBVSxDQUFDO1FBQ3BCLGdCQUFXLEdBQUcsb0JBQW9CLENBQUM7SUFDNUMsQ0FBQztDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLy8gdGhpcyBmaWxlIGlzIGR5bmFtaWNhbGx5IGNyZWF0ZWQsIGRvIG5vdCBjaGFuZ2UgdGhpc1xuZXhwb3J0IGNsYXNzIFZlcnNpb24ge1xuICBwdWJsaWMgbmFtZSA9IFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uXCI7XG4gIHB1YmxpYyBkZXNjcmlwdGlvbiA9IFwiQ29saWpuIElUIHRyYW5zYWN0aW9uIHBhY2thZ2VcIjtcbiAgcHVibGljIHN5bVZlciA9IFwiMjU1LjEuMjhcIjtcbiAgcHVibGljIHB1Ymxpc2hEYXRlID0gXCIzMC04LTIwMjQgMTM6Mjk6MDVcIjtcbn0iXX0=
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tdmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3RyYW5zYWN0aW9uL3NyYy9saWIvdHJhbnNhY3Rpb24tdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFDdkQsTUFBTSxPQUFPLE9BQU87SUFBcEI7UUFDUyxTQUFJLEdBQUcsdUJBQXVCLENBQUM7UUFDL0IsZ0JBQVcsR0FBRywrQkFBK0IsQ0FBQztRQUM5QyxXQUFNLEdBQUcsVUFBVSxDQUFDO1FBQ3BCLGdCQUFXLEdBQUcsb0JBQW9CLENBQUM7SUFDNUMsQ0FBQztDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLy8gdGhpcyBmaWxlIGlzIGR5bmFtaWNhbGx5IGNyZWF0ZWQsIGRvIG5vdCBjaGFuZ2UgdGhpc1xuZXhwb3J0IGNsYXNzIFZlcnNpb24ge1xuICBwdWJsaWMgbmFtZSA9IFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uXCI7XG4gIHB1YmxpYyBkZXNjcmlwdGlvbiA9IFwiQ29saWpuIElUIHRyYW5zYWN0aW9uIHBhY2thZ2VcIjtcbiAgcHVibGljIHN5bVZlciA9IFwiMjU1LjEuMzBcIjtcbiAgcHVibGljIHB1Ymxpc2hEYXRlID0gXCIzMC04LTIwMjQgMTg6MDE6NDBcIjtcbn0iXX0=
@@ -219,6 +219,7 @@ import { PurchaseAdviceFilters } from '@colijnit/transactionapi/build/model/purc
219
219
  import { CatalogFilterModule, CatalogService, CatalogEventService, CatalogSearchModule, CatalogExternalSourceModule } from '@colijnit/catalog';
220
220
  import { DoPaymentRequest } from '@colijnit/transactionapi/build/model/do-payment-request';
221
221
  import { IonePaymentStatusCode } from '@colijnit/transactionapi/build/enum/ione-payment-status-code.enum';
222
+ import { CashDrawersRequest } from '@colijnit/transactionapi/build/model/cash-drawers-request';
222
223
  import { GenderType } from '@colijnit/relationapi/build/enum/gender-type.enum';
223
224
  import { ContactOption } from '@colijnit/relationapi/build/model/contact-option.bo';
224
225
  import { BusinessObjectUtils } from '@colijnit/ioneconnector/build/utils/business-object-utils';
@@ -260,7 +261,6 @@ import { TransactionAddPaymentLineRequest } from '@colijnit/transactionapi/build
260
261
  import { take } from 'rxjs/operators';
261
262
  import { TagCategory } from '@colijnit/mainapi/build/enum/tab-category.enum';
262
263
  import { CssUtils } from '@colijnit/mainapi/build/utils/css-utils';
263
- import { CashDrawersRequest } from '@colijnit/transactionapi/build/model/cash-drawers-request';
264
264
  import { CoDocument as CoDocument$1 } from '@colijnit/sharedapi/build/model/co-document.bo';
265
265
 
266
266
  // this file is dynamically created, do not change this
@@ -268,8 +268,8 @@ class Version {
268
268
  constructor() {
269
269
  this.name = "@colijnit/transaction";
270
270
  this.description = "Colijn IT transaction package";
271
- this.symVer = "255.1.28";
272
- this.publishDate = "30-8-2024 13:29:05";
271
+ this.symVer = "255.1.30";
272
+ this.publishDate = "30-8-2024 18:01:40";
273
273
  }
274
274
  }
275
275
 
@@ -30424,12 +30424,14 @@ DeliveryTypeTileModule.decorators = [
30424
30424
  ];
30425
30425
 
30426
30426
  class TransactionPaymentService {
30427
- constructor(_transactionEventService, _paymentConnectorService, _dictionaryService, _dialogService, _http) {
30427
+ constructor(_transactionEventService, _paymentConnectorService, _dictionaryService, _dialogService, _http, _transactionService, _datePipe) {
30428
30428
  this._transactionEventService = _transactionEventService;
30429
30429
  this._paymentConnectorService = _paymentConnectorService;
30430
30430
  this._dictionaryService = _dictionaryService;
30431
30431
  this._dialogService = _dialogService;
30432
30432
  this._http = _http;
30433
+ this._transactionService = _transactionService;
30434
+ this._datePipe = _datePipe;
30433
30435
  this.amount = 0;
30434
30436
  this.amountToPay = 0;
30435
30437
  this.showPspQrCode = false;
@@ -30450,6 +30452,13 @@ class TransactionPaymentService {
30450
30452
  get currentPaymentMethod() {
30451
30453
  return this._currentPaymentMethod;
30452
30454
  }
30455
+ set cashRegisterDrawerNr(value) {
30456
+ this._cashRegisterDrawerNr = value;
30457
+ this.setCashDrawerIdIfValifDrawer(this._cashRegisterDrawerNr);
30458
+ }
30459
+ get cashRegisterDrawerNr() {
30460
+ return this._cashRegisterDrawerNr;
30461
+ }
30453
30462
  ngOnDestroy() {
30454
30463
  this._clearInterval();
30455
30464
  }
@@ -30467,9 +30476,9 @@ class TransactionPaymentService {
30467
30476
  request.currencyId = this.currencyId;
30468
30477
  request.cashRegisterNr = this.cashRegisterNr;
30469
30478
  request.cashRegisterGroupId = this.cashRegisterGroupId;
30470
- request.cashRegisterDrawerId = this.cashRegisterDrawerId;
30471
- //All payments need a cash drawer. Otherwise financial reports will be wrong.
30472
- if (!this.cashRegisterDrawerId) {
30479
+ request.cashRegisterDrawerId = this._cashRegisterDrawerId;
30480
+ //All payments need a valid, currently available cash drawer. Otherwise financial reports will be wrong.
30481
+ if (!this._cashRegisterDrawerId) {
30473
30482
  this._dialogService.showInformation('NEED_REGISTER_DRAWER_MESSAGE', true);
30474
30483
  return;
30475
30484
  }
@@ -30633,6 +30642,25 @@ class TransactionPaymentService {
30633
30642
  _dataUriToBase64(uri, mimeType) {
30634
30643
  return uri ? "data:" + mimeType + ";base64," + uri : "";
30635
30644
  }
30645
+ setCashDrawerIdIfValifDrawer(drawerNr) {
30646
+ return __awaiter(this, void 0, void 0, function* () {
30647
+ this._cashRegisterDrawerId = NaN;
30648
+ if (!drawerNr) {
30649
+ return;
30650
+ }
30651
+ let request = new CashDrawersRequest();
30652
+ request.group = this.cashRegisterGroupId;
30653
+ request.date = "?='" + this._datePipe.transform(new Date(), "dd-MM-yyyy") + "'";
30654
+ let drawers = yield this._transactionService.getCashDrawers(request);
30655
+ if (drawers && drawers.length !== 0) {
30656
+ drawers.forEach(d => {
30657
+ if (d.nr === drawerNr) {
30658
+ this._cashRegisterDrawerId = d.id;
30659
+ }
30660
+ });
30661
+ }
30662
+ });
30663
+ }
30636
30664
  }
30637
30665
  TransactionPaymentService.decorators = [
30638
30666
  { type: Injectable }
@@ -30642,7 +30670,9 @@ TransactionPaymentService.ctorParameters = () => [
30642
30670
  { type: TransactionPaymentConnectorService },
30643
30671
  { type: DictionaryService },
30644
30672
  { type: DialogService },
30645
- { type: HttpClient }
30673
+ { type: HttpClient },
30674
+ { type: TransactionService },
30675
+ { type: DatePipe }
30646
30676
  ];
30647
30677
 
30648
30678
  class TransactionPaymentBaseComponent {
@@ -30722,7 +30752,7 @@ class TransactionPaymentBaseComponent {
30722
30752
  }
30723
30753
  set cashRegisterDrawerId(value) {
30724
30754
  this._cashRegisterDrawerId = value;
30725
- this.paymentService.cashRegisterDrawerId = this._cashRegisterDrawerId;
30755
+ this.paymentService.cashRegisterDrawerNr = this._cashRegisterDrawerId;
30726
30756
  }
30727
30757
  get cashRegisterDrawerId() {
30728
30758
  return this._cashRegisterDrawerId;
@@ -30793,7 +30823,7 @@ class TransactionPaymentBaseComponent {
30793
30823
  this.cashRegisterIdx = index;
30794
30824
  this.cashRegisterNr = cashRegister.nr;
30795
30825
  this.cashRegisterGroupId = cashRegister.group;
30796
- this.cashRegisterDrawerId = +cashRegister.defaultDrawerNumber;
30826
+ this.cashRegisterDrawerId = cashRegister.defaultDrawerNumber;
30797
30827
  this.paymentService.printerName = cashRegister.defaultPrinter;
30798
30828
  }
30799
30829
  handlePayment() {
@@ -30833,7 +30863,7 @@ class TransactionPaymentBaseComponent {
30833
30863
  if (currentCashRegister) {
30834
30864
  this.cashRegisterNr = currentCashRegister.nr;
30835
30865
  this.cashRegisterGroupId = currentCashRegister.group;
30836
- this.cashRegisterDrawerId = +currentCashRegister.defaultDrawerNumber;
30866
+ this.cashRegisterDrawerId = currentCashRegister.defaultDrawerNumber;
30837
30867
  this.prepareCashDrawers(currentCashRegister.group);
30838
30868
  this.paymentService.printerName = currentCashRegister.defaultPrinter;
30839
30869
  }