ng-easycommerce 0.0.627 → 0.0.629

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.
@@ -16,8 +16,8 @@ export class PriceRangeFilter extends Filter {
16
16
  };
17
17
  // Método para actualizar los valores seleccionados
18
18
  this.setSelected = (min, max) => {
19
- this.currentMinPrice = min;
20
- this.currentMaxPrice = max;
19
+ this.currentMinPrice = (min !== this.minPrice) ? min : null;
20
+ this.currentMaxPrice = (max !== this.maxPrice) ? max : null;
21
21
  };
22
22
  // Retorna los valores seleccionados (rango de precios)
23
23
  this.getSelectedRange = () => {
@@ -46,6 +46,12 @@ export class PriceRangeFilter extends Filter {
46
46
  updatePrices(min, max) {
47
47
  this.minPrice = min;
48
48
  this.maxPrice = max;
49
+ if (this.currentMinPrice !== null && (this.currentMinPrice < min || this.currentMinPrice > max)) {
50
+ this.currentMinPrice = null;
51
+ }
52
+ if (this.currentMaxPrice !== null && (this.currentMaxPrice > max || this.currentMaxPrice < min)) {
53
+ this.currentMaxPrice = null;
54
+ }
49
55
  }
50
56
  }
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHJpY2VSYW5nZUZpbHRlci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25nLWVhc3ljb21tZXJjZS8iLCJzb3VyY2VzIjpbImxpYi9jbGFzc2VzL2ZpbHRlcnMvUHJpY2VSYW5nZUZpbHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBR2xDLE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxNQUFNO0lBQTVDOztRQUVJLGFBQVEsR0FBVyxDQUFDLENBQUM7UUFDckIsYUFBUSxHQUFXLElBQUksQ0FBQztRQUN4QixvQkFBZSxHQUFXLElBQUksQ0FBQztRQUMvQixvQkFBZSxHQUFXLElBQUksQ0FBQztRQUUvQixTQUFJLEdBQUcsR0FBZSxFQUFFLENBQUMsYUFBYSxDQUFDO1FBRXZDLHFEQUFxRDtRQUNyRCxlQUFVLEdBQUcsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUNyQixJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUNsRCxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUNsRCxJQUFJLENBQUMsZUFBZSxHQUFHLE9BQU8sQ0FBQyxlQUFlLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUNoRSxJQUFJLENBQUMsZUFBZSxHQUFHLE9BQU8sQ0FBQyxlQUFlLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUNwRSxDQUFDLENBQUE7UUFPRCxtREFBbUQ7UUFDbkQsZ0JBQVcsR0FBRyxDQUFDLEdBQVcsRUFBRSxHQUFXLEVBQVEsRUFBRTtZQUM3QyxJQUFJLENBQUMsZUFBZSxHQUFHLEdBQUcsQ0FBQztZQUMzQixJQUFJLENBQUMsZUFBZSxHQUFHLEdBQUcsQ0FBQztRQUMvQixDQUFDLENBQUE7UUFFRCx1REFBdUQ7UUFDdkQscUJBQWdCLEdBQUcsR0FBaUMsRUFBRTtZQUNsRCxPQUFPO2dCQUNILEdBQUcsRUFBRSxJQUFJLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQyxRQUFRO2dCQUMxQyxHQUFHLEVBQUUsSUFBSSxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUMsUUFBUTthQUM3QyxDQUFDO1FBQ04sQ0FBQyxDQUFBO1FBRUQsMkVBQTJFO1FBQzNFLGdCQUFXLEdBQUcsR0FBVyxFQUFFO1lBQ3ZCLElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQztZQUVoQixJQUFJLElBQUksQ0FBQyxlQUFlLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxlQUFlLEtBQUssSUFBSSxDQUFDLFFBQVEsRUFBRTtnQkFDekUsTUFBTSxJQUFJLGNBQWMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO2FBQ2xEO1lBRUQsSUFBSSxJQUFJLENBQUMsZUFBZSxLQUFLLElBQUksSUFBSSxJQUFJLENBQUMsZUFBZSxLQUFLLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQ3pFLE1BQU0sSUFBSSxjQUFjLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQzthQUNsRDtZQUVELE9BQU8sTUFBTSxDQUFDO1FBQ2xCLENBQUMsQ0FBQTtRQUVELGlEQUFpRDtRQUNqRCxVQUFLLEdBQUcsR0FBUyxFQUFFO1lBQ2YsSUFBSSxDQUFDLGVBQWUsR0FBRyxDQUFDLENBQUM7WUFDekIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ3pDLENBQUMsQ0FBQTtJQUNMLENBQUM7SUF2Q0csWUFBWSxDQUFDLEdBQVcsRUFBRSxHQUFXO1FBQ2pDLElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBRyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBRyxDQUFDO0lBQ3hCLENBQUM7Q0FvQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGaWx0ZXIgfSBmcm9tIFwiLi9GaWx0ZXJcIjtcbmltcG9ydCB7IEZpbHRlckVsZW1lbnQsIEZpbHRlclR5cGUgfSBmcm9tIFwiLi4vLi4vaW50ZXJmYWNlcy9maWx0ZXJcIjtcblxuZXhwb3J0IGNsYXNzIFByaWNlUmFuZ2VGaWx0ZXIgZXh0ZW5kcyBGaWx0ZXIge1xuXG4gICAgbWluUHJpY2U6IG51bWJlciA9IDA7XG4gICAgbWF4UHJpY2U6IG51bWJlciA9IDEwMDA7XG4gICAgY3VycmVudE1pblByaWNlOiBudW1iZXIgPSBudWxsO1xuICAgIGN1cnJlbnRNYXhQcmljZTogbnVtYmVyID0gbnVsbDtcblxuICAgIHR5cGUgPSAoKTogRmlsdGVyVHlwZSA9PiAncHJpY2VfcmFuZ2UnO1xuXG4gICAgLy8gTcOpdG9kbyBwYXJhIGNvbmZpZ3VyYXIgZWwgcmFuZ28gZGUgcHJlY2lvcyBpbmljaWFsXG4gICAgc2V0Q29udGVudCA9IChvcHRpb25zKSA9PiB7XG4gICAgICAgIHRoaXMubWluUHJpY2UgPSBvcHRpb25zLm1pblByaWNlIHx8IHRoaXMubWluUHJpY2U7XG4gICAgICAgIHRoaXMubWF4UHJpY2UgPSBvcHRpb25zLm1heFByaWNlIHx8IHRoaXMubWF4UHJpY2U7XG4gICAgICAgIHRoaXMuY3VycmVudE1pblByaWNlID0gb3B0aW9ucy5jdXJyZW50TWluUHJpY2UgfHwgdGhpcy5taW5QcmljZTtcbiAgICAgICAgdGhpcy5jdXJyZW50TWF4UHJpY2UgPSBvcHRpb25zLmN1cnJlbnRNYXhQcmljZSB8fCB0aGlzLm1heFByaWNlO1xuICAgIH1cblxuICAgIHVwZGF0ZVByaWNlcyhtaW46IG51bWJlciwgbWF4OiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5taW5QcmljZSA9IG1pbjtcbiAgICAgICAgdGhpcy5tYXhQcmljZSA9IG1heDtcbiAgICB9XG5cbiAgICAvLyBNw6l0b2RvIHBhcmEgYWN0dWFsaXphciBsb3MgdmFsb3JlcyBzZWxlY2Npb25hZG9zXG4gICAgc2V0U2VsZWN0ZWQgPSAobWluOiBudW1iZXIsIG1heDogbnVtYmVyKTogdm9pZCA9PiB7XG4gICAgICAgIHRoaXMuY3VycmVudE1pblByaWNlID0gbWluO1xuICAgICAgICB0aGlzLmN1cnJlbnRNYXhQcmljZSA9IG1heDtcbiAgICB9XG5cbiAgICAvLyBSZXRvcm5hIGxvcyB2YWxvcmVzIHNlbGVjY2lvbmFkb3MgKHJhbmdvIGRlIHByZWNpb3MpXG4gICAgZ2V0U2VsZWN0ZWRSYW5nZSA9ICgpOiB7IG1pbjogbnVtYmVyLCBtYXg6IG51bWJlciB9ID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG1pbjogdGhpcy5jdXJyZW50TWluUHJpY2UgfHwgdGhpcy5taW5QcmljZSxcbiAgICAgICAgICAgIG1heDogdGhpcy5jdXJyZW50TWF4UHJpY2UgfHwgdGhpcy5tYXhQcmljZSxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICAvLyBHZW5lcmEgbG9zIHBhcsOhbWV0cm9zIGRlIGxhIFVSTCBlbiBiYXNlIGFsIHJhbmdvIGRlIHByZWNpb3Mgc2VsZWNjaW9uYWRvXG4gICAgdG9VcmxQYXJhbXMgPSAoKTogc3RyaW5nID0+IHtcbiAgICAgICAgbGV0IHBhcmFtcyA9ICcnO1xuXG4gICAgICAgIGlmICh0aGlzLmN1cnJlbnRNaW5QcmljZSAhPT0gbnVsbCAmJiB0aGlzLmN1cnJlbnRNaW5QcmljZSAhPT0gdGhpcy5taW5QcmljZSkge1xuICAgICAgICAgICAgcGFyYW1zICs9IGAmcHJpY2VfbWluPSR7dGhpcy5jdXJyZW50TWluUHJpY2V9YDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmN1cnJlbnRNYXhQcmljZSAhPT0gbnVsbCAmJiB0aGlzLmN1cnJlbnRNYXhQcmljZSAhPT0gdGhpcy5tYXhQcmljZSkge1xuICAgICAgICAgICAgcGFyYW1zICs9IGAmcHJpY2VfbWF4PSR7dGhpcy5jdXJyZW50TWF4UHJpY2V9YDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBwYXJhbXM7XG4gICAgfVxuXG4gICAgLy8gUmVzdGFibGVjZSBlbCBmaWx0cm8gYSBsb3MgdmFsb3JlcyBwb3IgZGVmZWN0b1xuICAgIHJlc2V0ID0gKCk6IHZvaWQgPT4ge1xuICAgICAgICB0aGlzLmN1cnJlbnRNaW5QcmljZSA9IDA7XG4gICAgICAgIHRoaXMuY3VycmVudE1heFByaWNlID0gdGhpcy5tYXhQcmljZTtcbiAgICB9XG59XG4iXX0=
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHJpY2VSYW5nZUZpbHRlci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25nLWVhc3ljb21tZXJjZS8iLCJzb3VyY2VzIjpbImxpYi9jbGFzc2VzL2ZpbHRlcnMvUHJpY2VSYW5nZUZpbHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBR2xDLE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxNQUFNO0lBQTVDOztRQUVJLGFBQVEsR0FBVyxDQUFDLENBQUM7UUFDckIsYUFBUSxHQUFXLElBQUksQ0FBQztRQUN4QixvQkFBZSxHQUFXLElBQUksQ0FBQztRQUMvQixvQkFBZSxHQUFXLElBQUksQ0FBQztRQUUvQixTQUFJLEdBQUcsR0FBZSxFQUFFLENBQUMsYUFBYSxDQUFDO1FBRXZDLHFEQUFxRDtRQUNyRCxlQUFVLEdBQUcsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUNyQixJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUNsRCxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUNsRCxJQUFJLENBQUMsZUFBZSxHQUFHLE9BQU8sQ0FBQyxlQUFlLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUNoRSxJQUFJLENBQUMsZUFBZSxHQUFHLE9BQU8sQ0FBQyxlQUFlLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUNwRSxDQUFDLENBQUE7UUFjRCxtREFBbUQ7UUFDbkQsZ0JBQVcsR0FBRyxDQUFDLEdBQVcsRUFBRSxHQUFXLEVBQVEsRUFBRTtZQUM3QyxJQUFJLENBQUMsZUFBZSxHQUFHLENBQUMsR0FBRyxLQUFLLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFDNUQsSUFBSSxDQUFDLGVBQWUsR0FBRyxDQUFDLEdBQUcsS0FBSyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ2hFLENBQUMsQ0FBQTtRQUVELHVEQUF1RDtRQUN2RCxxQkFBZ0IsR0FBRyxHQUFpQyxFQUFFO1lBQ2xELE9BQU87Z0JBQ0gsR0FBRyxFQUFFLElBQUksQ0FBQyxlQUFlLElBQUksSUFBSSxDQUFDLFFBQVE7Z0JBQzFDLEdBQUcsRUFBRSxJQUFJLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQyxRQUFRO2FBQzdDLENBQUM7UUFDTixDQUFDLENBQUE7UUFFRCwyRUFBMkU7UUFDM0UsZ0JBQVcsR0FBRyxHQUFXLEVBQUU7WUFDdkIsSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDO1lBRWhCLElBQUksSUFBSSxDQUFDLGVBQWUsS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLGVBQWUsS0FBSyxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUN6RSxNQUFNLElBQUksY0FBYyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7YUFDbEQ7WUFFRCxJQUFJLElBQUksQ0FBQyxlQUFlLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxlQUFlLEtBQUssSUFBSSxDQUFDLFFBQVEsRUFBRTtnQkFDekUsTUFBTSxJQUFJLGNBQWMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO2FBQ2xEO1lBRUQsT0FBTyxNQUFNLENBQUM7UUFDbEIsQ0FBQyxDQUFBO1FBRUQsaURBQWlEO1FBQ2pELFVBQUssR0FBRyxHQUFTLEVBQUU7WUFDZixJQUFJLENBQUMsZUFBZSxHQUFHLENBQUMsQ0FBQztZQUN6QixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDekMsQ0FBQyxDQUFBO0lBQ0wsQ0FBQztJQTlDRyxZQUFZLENBQUMsR0FBVyxFQUFFLEdBQVc7UUFDakMsSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHLENBQUM7UUFDcEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHLENBQUM7UUFDcEIsSUFBSSxJQUFJLENBQUMsZUFBZSxLQUFLLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEdBQUcsR0FBRyxJQUFJLElBQUksQ0FBQyxlQUFlLEdBQUcsR0FBRyxDQUFDLEVBQUU7WUFDN0YsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7U0FDL0I7UUFFRCxJQUFJLElBQUksQ0FBQyxlQUFlLEtBQUssSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsR0FBRyxHQUFHLElBQUksSUFBSSxDQUFDLGVBQWUsR0FBRyxHQUFHLENBQUMsRUFBRTtZQUM3RixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztTQUMvQjtJQUNMLENBQUM7Q0FvQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGaWx0ZXIgfSBmcm9tIFwiLi9GaWx0ZXJcIjtcbmltcG9ydCB7IEZpbHRlckVsZW1lbnQsIEZpbHRlclR5cGUgfSBmcm9tIFwiLi4vLi4vaW50ZXJmYWNlcy9maWx0ZXJcIjtcblxuZXhwb3J0IGNsYXNzIFByaWNlUmFuZ2VGaWx0ZXIgZXh0ZW5kcyBGaWx0ZXIge1xuXG4gICAgbWluUHJpY2U6IG51bWJlciA9IDA7XG4gICAgbWF4UHJpY2U6IG51bWJlciA9IDEwMDA7XG4gICAgY3VycmVudE1pblByaWNlOiBudW1iZXIgPSBudWxsO1xuICAgIGN1cnJlbnRNYXhQcmljZTogbnVtYmVyID0gbnVsbDtcblxuICAgIHR5cGUgPSAoKTogRmlsdGVyVHlwZSA9PiAncHJpY2VfcmFuZ2UnO1xuXG4gICAgLy8gTcOpdG9kbyBwYXJhIGNvbmZpZ3VyYXIgZWwgcmFuZ28gZGUgcHJlY2lvcyBpbmljaWFsXG4gICAgc2V0Q29udGVudCA9IChvcHRpb25zKSA9PiB7XG4gICAgICAgIHRoaXMubWluUHJpY2UgPSBvcHRpb25zLm1pblByaWNlIHx8IHRoaXMubWluUHJpY2U7XG4gICAgICAgIHRoaXMubWF4UHJpY2UgPSBvcHRpb25zLm1heFByaWNlIHx8IHRoaXMubWF4UHJpY2U7XG4gICAgICAgIHRoaXMuY3VycmVudE1pblByaWNlID0gb3B0aW9ucy5jdXJyZW50TWluUHJpY2UgfHwgdGhpcy5taW5QcmljZTtcbiAgICAgICAgdGhpcy5jdXJyZW50TWF4UHJpY2UgPSBvcHRpb25zLmN1cnJlbnRNYXhQcmljZSB8fCB0aGlzLm1heFByaWNlO1xuICAgIH1cblxuICAgIHVwZGF0ZVByaWNlcyhtaW46IG51bWJlciwgbWF4OiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5taW5QcmljZSA9IG1pbjtcbiAgICAgICAgdGhpcy5tYXhQcmljZSA9IG1heDtcbiAgICAgICAgaWYgKHRoaXMuY3VycmVudE1pblByaWNlICE9PSBudWxsICYmICh0aGlzLmN1cnJlbnRNaW5QcmljZSA8IG1pbiB8fCB0aGlzLmN1cnJlbnRNaW5QcmljZSA+IG1heCkpIHtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudE1pblByaWNlID0gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmN1cnJlbnRNYXhQcmljZSAhPT0gbnVsbCAmJiAodGhpcy5jdXJyZW50TWF4UHJpY2UgPiBtYXggfHwgdGhpcy5jdXJyZW50TWF4UHJpY2UgPCBtaW4pKSB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRNYXhQcmljZSA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBNw6l0b2RvIHBhcmEgYWN0dWFsaXphciBsb3MgdmFsb3JlcyBzZWxlY2Npb25hZG9zXG4gICAgc2V0U2VsZWN0ZWQgPSAobWluOiBudW1iZXIsIG1heDogbnVtYmVyKTogdm9pZCA9PiB7XG4gICAgICAgIHRoaXMuY3VycmVudE1pblByaWNlID0gKG1pbiAhPT0gdGhpcy5taW5QcmljZSkgPyBtaW4gOiBudWxsO1xuICAgICAgICB0aGlzLmN1cnJlbnRNYXhQcmljZSA9IChtYXggIT09IHRoaXMubWF4UHJpY2UpID8gbWF4IDogbnVsbDtcbiAgICB9XG5cbiAgICAvLyBSZXRvcm5hIGxvcyB2YWxvcmVzIHNlbGVjY2lvbmFkb3MgKHJhbmdvIGRlIHByZWNpb3MpXG4gICAgZ2V0U2VsZWN0ZWRSYW5nZSA9ICgpOiB7IG1pbjogbnVtYmVyLCBtYXg6IG51bWJlciB9ID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG1pbjogdGhpcy5jdXJyZW50TWluUHJpY2UgfHwgdGhpcy5taW5QcmljZSxcbiAgICAgICAgICAgIG1heDogdGhpcy5jdXJyZW50TWF4UHJpY2UgfHwgdGhpcy5tYXhQcmljZSxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICAvLyBHZW5lcmEgbG9zIHBhcsOhbWV0cm9zIGRlIGxhIFVSTCBlbiBiYXNlIGFsIHJhbmdvIGRlIHByZWNpb3Mgc2VsZWNjaW9uYWRvXG4gICAgdG9VcmxQYXJhbXMgPSAoKTogc3RyaW5nID0+IHtcbiAgICAgICAgbGV0IHBhcmFtcyA9ICcnO1xuXG4gICAgICAgIGlmICh0aGlzLmN1cnJlbnRNaW5QcmljZSAhPT0gbnVsbCAmJiB0aGlzLmN1cnJlbnRNaW5QcmljZSAhPT0gdGhpcy5taW5QcmljZSkge1xuICAgICAgICAgICAgcGFyYW1zICs9IGAmcHJpY2VfbWluPSR7dGhpcy5jdXJyZW50TWluUHJpY2V9YDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmN1cnJlbnRNYXhQcmljZSAhPT0gbnVsbCAmJiB0aGlzLmN1cnJlbnRNYXhQcmljZSAhPT0gdGhpcy5tYXhQcmljZSkge1xuICAgICAgICAgICAgcGFyYW1zICs9IGAmcHJpY2VfbWF4PSR7dGhpcy5jdXJyZW50TWF4UHJpY2V9YDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBwYXJhbXM7XG4gICAgfVxuXG4gICAgLy8gUmVzdGFibGVjZSBlbCBmaWx0cm8gYSBsb3MgdmFsb3JlcyBwb3IgZGVmZWN0b1xuICAgIHJlc2V0ID0gKCk6IHZvaWQgPT4ge1xuICAgICAgICB0aGlzLmN1cnJlbnRNaW5QcmljZSA9IDA7XG4gICAgICAgIHRoaXMuY3VycmVudE1heFByaWNlID0gdGhpcy5tYXhQcmljZTtcbiAgICB9XG59XG4iXX0=
@@ -80,7 +80,7 @@ let ProductDetailEcComponent = class ProductDetailEcComponent extends ComponentH
80
80
  * @param changeAmount cantidad que se quiere restar.
81
81
  * @param forceMultiple si es true, obliga a que el resultado sea múltiplo de changeAmount.
82
82
  */
83
- this.less = (changeAmount = 1, forceMultiple = false) => {
83
+ this.less = (changeAmount = 1, minimum = 1, forceMultiple = false) => {
84
84
  let newQuantity = this.quantity - changeAmount;
85
85
  if (forceMultiple && changeAmount > 0) {
86
86
  if (this.quantity <= changeAmount) {
@@ -93,9 +93,12 @@ let ProductDetailEcComponent = class ProductDetailEcComponent extends ComponentH
93
93
  newQuantity = changeAmount;
94
94
  }
95
95
  }
96
- if (newQuantity >= 1) {
96
+ if (newQuantity >= minimum) {
97
97
  this.quantity = newQuantity;
98
98
  }
99
+ else {
100
+ this.quantity = minimum;
101
+ }
99
102
  };
100
103
  this.showContact = () => this.show = true;
101
104
  this.hideContact = () => this.show = false;
@@ -187,4 +190,4 @@ ProductDetailEcComponent = __decorate([
187
190
  })
188
191
  ], ProductDetailEcComponent);
189
192
  export { ProductDetailEcComponent };
190
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1kZXRhaWwtZWMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmctZWFzeWNvbW1lcmNlLyIsInNvdXJjZXMiOlsibGliL2VjLWNvbXBvbmVudC9wcm9kdWN0LWRldGFpbC1lYy9wcm9kdWN0LWRldGFpbC1lYy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxTQUFTLEVBQWMsTUFBTSxlQUFlLENBQUM7QUFDekUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFTN0UsSUFBYSx3QkFBd0IsR0FBckMsTUFBYSx3QkFBeUIsU0FBUSxlQUFlO0lBa0J6RCxZQUNXLGNBQW9DLEVBQ3BDLE1BQWlCLEVBQ2QsWUFBNEIsRUFDL0IsV0FBd0IsRUFDeEIsY0FBOEIsRUFDOUIsZUFBZ0MsRUFDaEMsZ0JBQWtDLEVBQ2xDLE1BQWMsRUFDWCxhQUEyQixFQUM3QixJQUFVLEVBQ1gsUUFBa0I7UUFDekIsS0FBSyxFQUFFLENBQUM7UUFYRCxtQkFBYyxHQUFkLGNBQWMsQ0FBc0I7UUFDcEMsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUNkLGlCQUFZLEdBQVosWUFBWSxDQUFnQjtRQUMvQixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNYLGtCQUFhLEdBQWIsYUFBYSxDQUFjO1FBQzdCLFNBQUksR0FBSixJQUFJLENBQU07UUFDWCxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBekJ0QixTQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ2IsYUFBUSxHQUFHLENBQUMsQ0FBQztRQUNiLGVBQVUsR0FBRyxFQUFFLENBQUM7UUFFaEIsU0FBSSxHQUFHLElBQUksQ0FBQztRQUNaLGVBQVUsR0FBVyxJQUFJLENBQUE7UUFDekIsZUFBVSxHQUFHLEVBQUUsQ0FBQTtRQUNmLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBQzdCLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFDNUIsNEJBQXVCLEdBQW1CLElBQUksQ0FBQztRQXNFdEQsY0FBUyxHQUFHLEdBQUcsRUFBRTtZQUNiLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN0RSxDQUFDLENBQUE7UUFFRCwwQkFBcUIsR0FBRyxHQUFHLEVBQUU7O1lBQ3pCLElBQUksS0FBSyxTQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsd0JBQXdCLDBDQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtZQUM3SCxPQUFBLEtBQUssMENBQUUsTUFBTSxLQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ3pELENBQUMsQ0FBQTtRQU9ELFlBQU8sR0FBRyxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ25CLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQzdCLENBQUMsQ0FBQTtRQUVEOzs7OztXQUtHO1FBQ0gsU0FBSSxHQUFHLENBQUMsS0FBYyxFQUFFLGVBQXVCLENBQUMsRUFBRSxnQkFBeUIsS0FBSyxFQUFFLEVBQUU7WUFDaEYsSUFBSSxXQUFXLEdBQUcsSUFBSSxDQUFDLFFBQVEsR0FBRyxZQUFZLENBQUM7WUFFL0MsSUFBSSxhQUFhLElBQUksWUFBWSxHQUFHLENBQUMsRUFBRTtnQkFDbkMsSUFBSSxJQUFJLENBQUMsUUFBUSxHQUFHLFlBQVksRUFBRTtvQkFDOUIsV0FBVyxHQUFHLFlBQVksQ0FBQztpQkFDOUI7cUJBQU07b0JBQ0gsV0FBVyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxHQUFHLFlBQVksQ0FBQyxHQUFHLFlBQVksQ0FBQztpQkFDdEU7YUFDSjtZQUNELElBQUksQ0FBQyxLQUFLLElBQUksV0FBVyxJQUFJLEtBQUssRUFBRTtnQkFDaEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxXQUFXLENBQUM7YUFDL0I7aUJBQU07Z0JBQ0gsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsQ0FBQzthQUNwRDtRQUNMLENBQUMsQ0FBQTtRQUVEOzs7O1dBSUc7UUFDSCxTQUFJLEdBQUcsQ0FBQyxlQUF1QixDQUFDLEVBQUUsZ0JBQXlCLEtBQUssRUFBRSxFQUFFO1lBQ2hFLElBQUksV0FBVyxHQUFHLElBQUksQ0FBQyxRQUFRLEdBQUcsWUFBWSxDQUFDO1lBRS9DLElBQUksYUFBYSxJQUFJLFlBQVksR0FBRyxDQUFDLEVBQUU7Z0JBQ25DLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxZQUFZLEVBQUU7b0JBQy9CLFdBQVcsR0FBRyxZQUFZLENBQUM7aUJBQzlCO3FCQUFNO29CQUNILFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsR0FBRyxZQUFZLENBQUMsR0FBRyxZQUFZLENBQUM7aUJBQ3ZFO2dCQUVELElBQUksV0FBVyxHQUFHLFlBQVksRUFBRTtvQkFDNUIsV0FBVyxHQUFHLFlBQVksQ0FBQztpQkFDOUI7YUFDSjtZQUVELElBQUksV0FBVyxJQUFJLENBQUMsRUFBRTtnQkFDbEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxXQUFXLENBQUM7YUFDL0I7UUFDTCxDQUFDLENBQUE7UUFFRCxnQkFBVyxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ3JDLGdCQUFXLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7UUFFdEMsb0JBQWUsR0FBRyxDQUFDLE9BQVksRUFBRSxFQUFFOztZQUMvQixJQUFJLE1BQU0sQ0FBQztZQUNYLElBQUksT0FBQSxPQUFPLDBDQUFFLFlBQVksWUFBSSxPQUFPLDBDQUFFLFlBQVksQ0FBQyxNQUFNLENBQUEsRUFBRTtnQkFDdkQsTUFBTSxlQUFHLE9BQU8sMENBQUUsWUFBWSwwQ0FBRSxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsSUFBSSxJQUFJLFdBQVcsQ0FBQyxDQUFDO2FBQzFGO1lBQ0QsT0FBTyxNQUFNLENBQUM7UUFDbEIsQ0FBQyxDQUFBO1FBRUQsbUJBQWMsR0FBRyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ3JCLElBQUksQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFBO1FBQ3pCLENBQUMsQ0FBQTtRQW5JRyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDdkMsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxFQUFFO1lBQzdDLElBQUksT0FBTyxHQUFRLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1lBQzdFLElBQUksSUFBSSxHQUFHLFdBQVcsQ0FBQyxFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQy9DLElBQUksQ0FBQyxJQUFJLEdBQUcsV0FBVyxDQUFDLEVBQUUsQ0FBQTtRQUM5QixDQUFDLENBQUMsQ0FBQTtRQUNGLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUN6QyxJQUFJLEdBQUcsSUFBSSxJQUFJLEVBQUU7Z0JBQ2IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFBO2FBQzlCO2lCQUFNO2dCQUNILElBQUksQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO2dCQUNuQixNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDcEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUMzRSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFO29CQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztvQkFDMUUsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7b0JBQ3hHLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7b0JBQ2pILElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztvQkFDakUsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7aUJBQzlFO2FBQ0o7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLEVBQUUsSUFBSSxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUN4RixDQUFDLFlBQVksRUFBRSxFQUFFO1lBQ2IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxXQUFXLGtDQUFPLFlBQVksS0FBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxJQUFHLENBQUE7WUFDdEcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDeEQsQ0FBQyxDQUNKLENBQUE7UUFDRCxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUU7O1lBQ3ZFLElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQztZQUN2QyxJQUFJLENBQUMsVUFBVSxlQUFHLE9BQU8sMENBQUUsVUFBVSx1Q0FBSSxLQUFLLEVBQUEsQ0FBQztRQUNuRCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO1lBQ2hELElBQUksQ0FBQyx1QkFBdUIsR0FBRyxTQUFTLENBQUM7UUFDN0MsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUE7SUFFeEIsQ0FBQztJQUVELFVBQVUsQ0FBQyxNQUFjO1FBQ3JCLCtDQUErQztRQUMvQyxNQUFNLGdCQUFnQixHQUFHLFVBQVUsQ0FBQztRQUNwQywwREFBMEQ7UUFDMUQsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLGdCQUFnQixFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCxRQUFRO1FBQ0osSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFBO0lBQ25CLENBQUM7SUFXRCxNQUFNO1FBQ0YsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUE0QixDQUFDO1FBQ25ELEVBQUUsQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN4QixDQUFDO0NBb0VKLENBQUE7O1lBaEo4QixvQkFBb0I7WUFDNUIsU0FBUztZQUNBLGNBQWM7WUFDbEIsV0FBVztZQUNSLGNBQWM7WUFDYixlQUFlO1lBQ2QsZ0JBQWdCO1lBQzFCLE1BQU07WUFDSSxZQUFZO1lBQ3ZCLElBQUk7WUFDRCxRQUFROztBQWJQO0lBQXJCLFNBQVMsQ0FBQyxTQUFTLENBQUM7eURBQXFCO0FBaEJqQyx3QkFBd0I7SUFOcEMsU0FBUyxDQUFDO1FBQ1AsUUFBUSxFQUFFLHVCQUF1QjtRQUNqQyxZQUFpRDtRQUVqRCxTQUFTLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQzs7S0FDcEMsQ0FBQztHQUNXLHdCQUF3QixDQW1LcEM7U0FuS1ksd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBDb21wb25lbnRIZWxwZXIgfSBmcm9tICcuLi8uLi9jbGFzc2VzL2NvbXBvbmVudC1oZWxwZXInO1xuaW1wb3J0IHsgQ29uc3RhbnRzIH0gZnJvbSAnLi4vLi4vY29yZS5jb25zdHMnO1xuaW1wb3J0IHsgQW5hbHl0aWNzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2FuYWx5dGljcy5zZXJ2aWNlJztcbmltcG9ydCB7IENhcnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY2FydC5zZXJ2aWNlJztcbmltcG9ydCB7IE9wdGlvbnNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvb3B0aW9ucy5zZXJ2aWNlJztcbmltcG9ydCB7IFByb2R1Y3REZXRhaWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcHJvZHVjdHMvcHJvZHVjdC1kZXRhaWwuc2VydmljZSc7XG5pbXBvcnQgeyBQcm9kdWN0c1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9wcm9kdWN0cy9wcm9kdWN0cy5zZXJ2aWNlJztcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJy4uLy4uL3V0aWxzL3RvYXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgTWV0YSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENoYW5uZWxDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY2hhbm5lbC1jb25maWcuc2VydmljZSc7XG5cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhcHAtcHJvZHVjdC1kZXRhaWwtZWMnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9wcm9kdWN0LWRldGFpbC1lYy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vcHJvZHVjdC1kZXRhaWwtZWMuY29tcG9uZW50LnNjc3MnXSxcbiAgICBwcm92aWRlcnM6IFtQcm9kdWN0RGV0YWlsU2VydmljZV1cbn0pXG5leHBvcnQgY2xhc3MgUHJvZHVjdERldGFpbEVjQ29tcG9uZW50IGV4dGVuZHMgQ29tcG9uZW50SGVscGVyIGltcGxlbWVudHMgT25Jbml0IHtcblxuICAgIHB1YmxpYyBwcm9kdWN0OiBhbnk7XG4gICAgcHVibGljIG1lZGlhVXJsO1xuICAgIHB1YmxpYyBzaG93ID0gZmFsc2U7XG4gICAgcHVibGljIHF1YW50aXR5ID0gMTtcbiAgICBwdWJsaWMgYnJlYWRjcnVtYiA9IFtdO1xuICAgIHB1YmxpYyBjYXJvdXNlbDogYW55O1xuICAgIHB1YmxpYyBjb2RlID0gbnVsbDtcbiAgICBwdWJsaWMgZm9jdXNJbWFnZTogc3RyaW5nID0gbnVsbFxuICAgIHB1YmxpYyBvd2xPcHRpb25zID0ge31cbiAgICBwdWJsaWMgc2hvd1Jldmlld3M6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBwdWJsaWMgaGlkZVByaWNlczogYm9vbGVhbiA9IGZhbHNlO1xuICAgIHB1YmxpYyBjcmVkaXRBY2NvdW50U2hvd1ByaWNlczogYm9vbGVhbiB8IG51bGwgPSBudWxsO1xuXG5cbiAgICBAVmlld0NoaWxkKCdjb250YWN0JykgY29udGFjdDogRWxlbWVudFJlZjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgcHJvZHVjdFNlcnZpY2U6IFByb2R1Y3REZXRhaWxTZXJ2aWNlLFxuICAgICAgICBwdWJsaWMgY29uc3RzOiBDb25zdGFudHMsXG4gICAgICAgIHByb3RlY3RlZCBhY3RpdmVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgICAgICBwdWJsaWMgY2FydFNlcnZpY2U6IENhcnRTZXJ2aWNlLFxuICAgICAgICBwdWJsaWMgb3B0aW9uc1NlcnZpY2U6IE9wdGlvbnNTZXJ2aWNlLFxuICAgICAgICBwdWJsaWMgcHJvZHVjdHNTZXJ2aWNlOiBQcm9kdWN0c1NlcnZpY2UsXG4gICAgICAgIHB1YmxpYyBhbmFseXRpY3NTZXJ2aWNlOiBBbmFseXRpY3NTZXJ2aWNlLFxuICAgICAgICBwdWJsaWMgcm91dGVyOiBSb3V0ZXIsXG4gICAgICAgIHByb3RlY3RlZCB0b2FzdHJTZXJ2aWNlOiBUb2FzdFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgbWV0YTogTWV0YSxcbiAgICAgICAgcHVibGljIGluamVjdG9yOiBJbmplY3Rvcikge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLm1lZGlhVXJsID0gdGhpcy5jb25zdHMubWVkaWFVcmwoKTtcbiAgICAgICAgdGhpcy5hY3RpdmVkUm91dGUucGFyYW1zLnN1YnNjcmliZShxdWVyeVBhcmFtcyA9PiB7XG4gICAgICAgICAgICBsZXQgdmFyaWFudDogYW55ID0gKHRoaXMuYWN0aXZlZFJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1NYXAuZ2V0KCd2YXJpYW50JykpO1xuICAgICAgICAgICAgbGV0IGNvZGUgPSBxdWVyeVBhcmFtcy5pZDtcbiAgICAgICAgICAgIHRoaXMucHJvZHVjdFNlcnZpY2UubG9hZFByb2R1Y3QoY29kZSwgdmFyaWFudCk7XG4gICAgICAgICAgICB0aGlzLmNvZGUgPSBxdWVyeVBhcmFtcy5pZFxuICAgICAgICB9KVxuICAgICAgICB0aGlzLnByb2R1Y3RTZXJ2aWNlLnByb2R1Y3QkLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICAgICAgaWYgKHJlcyA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvJ10pXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMucHJvZHVjdCA9IHJlcztcbiAgICAgICAgICAgICAgICB3aW5kb3cuc2Nyb2xsKDAsIDApO1xuICAgICAgICAgICAgICAgIHRoaXMuYnJlYWRjcnVtYiA9IHRoaXMub3B0aW9uc1NlcnZpY2UuZ2V0QnJlYWRjcnVtYih0aGlzLnByb2R1Y3QuY2F0ZWdvcnkpO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLnByb2R1Y3QubmFtZSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm1ldGEudXBkYXRlVGFnKHsgcHJvcGVydHk6ICdvZzp0aXRsZScsIGNvbnRlbnQ6IHRoaXMucHJvZHVjdC5uYW1lIH0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm1ldGEudXBkYXRlVGFnKHsgcHJvcGVydHk6ICdvZzpkZXNjcmlwdGlvbicsIGNvbnRlbnQ6IHRoaXMuZGVsZXRlSFRNTCh0aGlzLnByb2R1Y3QuZGVzY3JpcHRpb24pIH0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm1ldGEudXBkYXRlVGFnKHsgcHJvcGVydHk6ICdvZzppbWFnZScsIGNvbnRlbnQ6IHRoaXMuY29uc3RzLm1lZGlhVXJsKCkgKyB0aGlzLnByb2R1Y3QucGljdHVyZXNkZWZhdWx0WzBdIH0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm1ldGEudXBkYXRlVGFnKHsgcHJvcGVydHk6ICdvZzp0eXBlJywgY29udGVudDogJ3Byb2R1Y3QnIH0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm1ldGEudXBkYXRlVGFnKHsgcHJvcGVydHk6ICdvZzp1cmwnLCBjb250ZW50OiB3aW5kb3cubG9jYXRpb24uaHJlZiB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnByb2R1Y3RTZXJ2aWNlLnByb2R1Y3QkLnBpcGUoZmlsdGVyKGRhdGEgPT4gZGF0YSAmJiBkYXRhLmlkICYmIGRhdGEuaWQgIT0gMCkpLnN1YnNjcmliZShcbiAgICAgICAgICAgIChwcm9kdWN0UGFyYW0pID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmFuYWx5dGljc1NlcnZpY2UuY2FsbEV2ZW50KCd2aWV3X2l0ZW0nLCB7IC4uLnByb2R1Y3RQYXJhbSwgY3VycmVuY3k6IHRoaXMuY29uc3RzLmN1cnJlbmN5LmNvZGUgfSlcbiAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZUltZ0ZvY3VzKHByb2R1Y3RQYXJhbS5waWN0dXJlc2RlZmF1bHRbMF0pXG4gICAgICAgICAgICB9XG4gICAgICAgIClcbiAgICAgICAgdGhpcy5pbmplY3Rvci5nZXQoQ2hhbm5lbENvbmZpZ1NlcnZpY2UpLmNoYW5uZWxDb25maWckLnN1YnNjcmliZShjaGFubmVsID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2hvd1Jldmlld3MgPSBjaGFubmVsLnNob3dSZXZpZXdzO1xuICAgICAgICAgICAgdGhpcy5oaWRlUHJpY2VzID0gY2hhbm5lbD8uaGlkZVByaWNlcyA/PyBmYWxzZTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5jYXJ0U2VydmljZS5zaG93UHJpY2UkLnN1YnNjcmliZSgoc2hvd1ByaWNlKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNyZWRpdEFjY291bnRTaG93UHJpY2VzID0gc2hvd1ByaWNlO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5lY09uQ29uc3RydWN0KClcblxuICAgIH1cblxuICAgIGRlbGV0ZUhUTUwoY2FkZW5hOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICAvLyBFeHByZXNpw7NuIHJlZ3VsYXIgcGFyYSBidXNjYXIgZXRpcXVldGFzIEhUTUxcbiAgICAgICAgY29uc3QgZXhwcmVzaW9uUmVndWxhciA9IC88W14+XSo+L2c7XG4gICAgICAgIC8vIFJlZW1wbGF6YSB0b2RhcyBsYXMgZXRpcXVldGFzIEhUTUwgcG9yIHVuYSBjYWRlbmEgdmFjw61hXG4gICAgICAgIHJldHVybiBjYWRlbmEucmVwbGFjZShleHByZXNpb25SZWd1bGFyLCAnJyk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZWNPbkluaXQoKVxuICAgIH1cblxuICAgIGFkZFRvQ2FydCA9ICgpID0+IHtcbiAgICAgICAgdGhpcy5xdWFudGl0eSA+IDAgJiYgdGhpcy5wcm9kdWN0U2VydmljZS5hZGRUb0NhcnQodGhpcy5xdWFudGl0eSk7XG4gICAgfVxuXG4gICAgYWRkQWxsUHJvZHVjdG9zVG9DYXJ0ID0gKCkgPT4ge1xuICAgICAgICBsZXQgaXRlbXMgPSB0aGlzLnByb2R1Y3QucHJvZHVjdFdpdGhVbmlxdWVWYXJpYW50Py5maWx0ZXIocHJvZCA9PiBwcm9kLnByb2R1Y3RUb0NhcnRJdGVtKS5tYXAocHJvZCA9PiBwcm9kLnByb2R1Y3RUb0NhcnRJdGVtKVxuICAgICAgICBpdGVtcz8ubGVuZ3RoICYmIHRoaXMuY2FydFNlcnZpY2UuYWRkQWxsVG9DYXJ0KGl0ZW1zKVxuICAgIH1cblxuICAgIHNjcm9sbCgpIHtcbiAgICAgICAgbGV0IGVsID0gdGhpcy5jb250YWN0Lm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgIGVsLnNjcm9sbEludG9WaWV3KCk7XG4gICAgfVxuXG4gICAgc2F2ZVJlZiA9IChjYXJvdXNlbCkgPT4ge1xuICAgICAgICB0aGlzLmNhcm91c2VsID0gY2Fyb3VzZWw7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIGFjdHVhbGl6YSBsYSB2YXJpYWJsZSBxdWFudGl0eSBzdW1hbmRvbGUgJ3gnIGNvbnRlbmlkby5cbiAgICAgKiBAcGFyYW0gc3RvY2sgbsO6bWVybyBtw6F4aW1vIGRpc3BvbmlibGUgZW4gc3RvY2suXG4gICAgICogQHBhcmFtIGNoYW5nZUFtb3VudCBjYW50aWRhZCBxdWUgc2UgcXVpZXJlIHN1bWFyLlxuICAgICAqIEBwYXJhbSBmb3JjZU11bHRpcGxlIHNpIGVzIHRydWUsIG9ibGlnYSBhIHF1ZSBlbCByZXN1bHRhZG8gc2VhIG3Dumx0aXBsbyBkZSBjaGFuZ2VBbW91bnQuXG4gICAgICovXG4gICAgcGx1cyA9IChzdG9jaz86IG51bWJlciwgY2hhbmdlQW1vdW50OiBudW1iZXIgPSAxLCBmb3JjZU11bHRpcGxlOiBib29sZWFuID0gZmFsc2UpID0+IHsgICAgICAgIFxuICAgICAgICBsZXQgbmV3UXVhbnRpdHkgPSB0aGlzLnF1YW50aXR5ICsgY2hhbmdlQW1vdW50O1xuXG4gICAgICAgIGlmIChmb3JjZU11bHRpcGxlICYmIGNoYW5nZUFtb3VudCA+IDApIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnF1YW50aXR5IDwgY2hhbmdlQW1vdW50KSB7XG4gICAgICAgICAgICAgICAgbmV3UXVhbnRpdHkgPSBjaGFuZ2VBbW91bnQ7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG5ld1F1YW50aXR5ID0gTWF0aC5jZWlsKG5ld1F1YW50aXR5IC8gY2hhbmdlQW1vdW50KSAqIGNoYW5nZUFtb3VudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoIXN0b2NrIHx8IG5ld1F1YW50aXR5IDw9IHN0b2NrKSB7XG4gICAgICAgICAgICB0aGlzLnF1YW50aXR5ID0gbmV3UXVhbnRpdHk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnRvYXN0clNlcnZpY2Uuc2hvdygnb3V0LW9mLXN0b2NrLWFjdHVhbGx5Jyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gYWN0dWFsaXphIGxhIHZhcmlhYmxlIHF1YW50aXR5IHJlc3RhbmRvbGUgJ3gnIGNvbnRlbmlkby5cbiAgICAgKiBAcGFyYW0gY2hhbmdlQW1vdW50IGNhbnRpZGFkIHF1ZSBzZSBxdWllcmUgcmVzdGFyLlxuICAgICAqIEBwYXJhbSBmb3JjZU11bHRpcGxlIHNpIGVzIHRydWUsIG9ibGlnYSBhIHF1ZSBlbCByZXN1bHRhZG8gc2VhIG3Dumx0aXBsbyBkZSBjaGFuZ2VBbW91bnQuXG4gICAgICovXG4gICAgbGVzcyA9IChjaGFuZ2VBbW91bnQ6IG51bWJlciA9IDEsIGZvcmNlTXVsdGlwbGU6IGJvb2xlYW4gPSBmYWxzZSkgPT4geyAgICAgICAgXG4gICAgICAgIGxldCBuZXdRdWFudGl0eSA9IHRoaXMucXVhbnRpdHkgLSBjaGFuZ2VBbW91bnQ7XG5cbiAgICAgICAgaWYgKGZvcmNlTXVsdGlwbGUgJiYgY2hhbmdlQW1vdW50ID4gMCkge1xuICAgICAgICAgICAgaWYgKHRoaXMucXVhbnRpdHkgPD0gY2hhbmdlQW1vdW50KSB7XG4gICAgICAgICAgICAgICAgbmV3UXVhbnRpdHkgPSBjaGFuZ2VBbW91bnQ7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG5ld1F1YW50aXR5ID0gTWF0aC5mbG9vcihuZXdRdWFudGl0eSAvIGNoYW5nZUFtb3VudCkgKiBjaGFuZ2VBbW91bnQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChuZXdRdWFudGl0eSA8IGNoYW5nZUFtb3VudCkge1xuICAgICAgICAgICAgICAgIG5ld1F1YW50aXR5ID0gY2hhbmdlQW1vdW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG5ld1F1YW50aXR5ID49IDEpIHtcbiAgICAgICAgICAgIHRoaXMucXVhbnRpdHkgPSBuZXdRdWFudGl0eTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNob3dDb250YWN0ID0gKCkgPT4gdGhpcy5zaG93ID0gdHJ1ZTtcbiAgICBoaWRlQ29udGFjdCA9ICgpID0+IHRoaXMuc2hvdyA9IGZhbHNlO1xuXG4gICAgdGhlcmVJc01vcmVJbmZvID0gKHByb2R1Y3Q6IGFueSkgPT4ge1xuICAgICAgICBsZXQgcmVzdWx0O1xuICAgICAgICBpZiAocHJvZHVjdD8uc3BlY2lhbF9tYXJrICYmIHByb2R1Y3Q/LnNwZWNpYWxfbWFyay5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJlc3VsdCA9IHByb2R1Y3Q/LnNwZWNpYWxfbWFyaz8uZmluZChzcGVjaWFsX21hcmsgPT4gc3BlY2lhbF9tYXJrLnR5cGUgPT0gJ21vcmVfaW5mbycpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgY2hhbmdlSW1nRm9jdXMgPSAoaW1nKSA9PiB7XG4gICAgICAgIHRoaXMuZm9jdXNJbWFnZSA9IGltZ1xuICAgIH1cbn1cbiJdfQ==
193
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1kZXRhaWwtZWMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmctZWFzeWNvbW1lcmNlLyIsInNvdXJjZXMiOlsibGliL2VjLWNvbXBvbmVudC9wcm9kdWN0LWRldGFpbC1lYy9wcm9kdWN0LWRldGFpbC1lYy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxTQUFTLEVBQWMsTUFBTSxlQUFlLENBQUM7QUFDekUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFTN0UsSUFBYSx3QkFBd0IsR0FBckMsTUFBYSx3QkFBeUIsU0FBUSxlQUFlO0lBa0J6RCxZQUNXLGNBQW9DLEVBQ3BDLE1BQWlCLEVB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QkFBdUI7UUFDakMsWUFBaUQ7UUFFakQsU0FBUyxFQUFFLENBQUMsb0JBQW9CLENBQUM7O0tBQ3BDLENBQUM7R0FDVyx3QkFBd0IsQ0FxS3BDO1NBcktZLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQ29tcG9uZW50SGVscGVyIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9jb21wb25lbnQtaGVscGVyJztcbmltcG9ydCB7IENvbnN0YW50cyB9IGZyb20gJy4uLy4uL2NvcmUuY29uc3RzJztcbmltcG9ydCB7IEFuYWx5dGljc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hbmFseXRpY3Muc2VydmljZSc7XG5pbXBvcnQgeyBDYXJ0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NhcnQuc2VydmljZSc7XG5pbXBvcnQgeyBPcHRpb25zU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL29wdGlvbnMuc2VydmljZSc7XG5pbXBvcnQgeyBQcm9kdWN0RGV0YWlsU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3Byb2R1Y3RzL3Byb2R1Y3QtZGV0YWlsLnNlcnZpY2UnO1xuaW1wb3J0IHsgUHJvZHVjdHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcHJvZHVjdHMvcHJvZHVjdHMuc2VydmljZSc7XG5pbXBvcnQgeyBUb2FzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi91dGlscy90b2FzdC5zZXJ2aWNlJztcbmltcG9ydCB7IE1ldGEgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDaGFubmVsQ29uZmlnU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NoYW5uZWwtY29uZmlnLnNlcnZpY2UnO1xuXG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYXBwLXByb2R1Y3QtZGV0YWlsLWVjJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vcHJvZHVjdC1kZXRhaWwtZWMuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3Byb2R1Y3QtZGV0YWlsLWVjLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgcHJvdmlkZXJzOiBbUHJvZHVjdERldGFpbFNlcnZpY2VdXG59KVxuZXhwb3J0IGNsYXNzIFByb2R1Y3REZXRhaWxFY0NvbXBvbmVudCBleHRlbmRzIENvbXBvbmVudEhlbHBlciBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgICBwdWJsaWMgcHJvZHVjdDogYW55O1xuICAgIHB1YmxpYyBtZWRpYVVybDtcbiAgICBwdWJsaWMgc2hvdyA9IGZhbHNlO1xuICAgIHB1YmxpYyBxdWFudGl0eSA9IDE7XG4gICAgcHVibGljIGJyZWFkY3J1bWIgPSBbXTtcbiAgICBwdWJsaWMgY2Fyb3VzZWw6IGFueTtcbiAgICBwdWJsaWMgY29kZSA9IG51bGw7XG4gICAgcHVibGljIGZvY3VzSW1hZ2U6IHN0cmluZyA9IG51bGxcbiAgICBwdWJsaWMgb3dsT3B0aW9ucyA9IHt9XG4gICAgcHVibGljIHNob3dSZXZpZXdzOiBib29sZWFuID0gZmFsc2U7XG4gICAgcHVibGljIGhpZGVQcmljZXM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBwdWJsaWMgY3JlZGl0QWNjb3VudFNob3dQcmljZXM6IGJvb2xlYW4gfCBudWxsID0gbnVsbDtcblxuXG4gICAgQFZpZXdDaGlsZCgnY29udGFjdCcpIGNvbnRhY3Q6IEVsZW1lbnRSZWY7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIHByb2R1Y3RTZXJ2aWNlOiBQcm9kdWN0RGV0YWlsU2VydmljZSxcbiAgICAgICAgcHVibGljIGNvbnN0czogQ29uc3RhbnRzLFxuICAgICAgICBwcm90ZWN0ZWQgYWN0aXZlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICAgICAgcHVibGljIGNhcnRTZXJ2aWNlOiBDYXJ0U2VydmljZSxcbiAgICAgICAgcHVibGljIG9wdGlvbnNTZXJ2aWNlOiBPcHRpb25zU2VydmljZSxcbiAgICAgICAgcHVibGljIHByb2R1Y3RzU2VydmljZTogUHJvZHVjdHNTZXJ2aWNlLFxuICAgICAgICBwdWJsaWMgYW5hbHl0aWNzU2VydmljZTogQW5hbHl0aWNzU2VydmljZSxcbiAgICAgICAgcHVibGljIHJvdXRlcjogUm91dGVyLFxuICAgICAgICBwcm90ZWN0ZWQgdG9hc3RyU2VydmljZTogVG9hc3RTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIG1ldGE6IE1ldGEsXG4gICAgICAgIHB1YmxpYyBpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5tZWRpYVVybCA9IHRoaXMuY29uc3RzLm1lZGlhVXJsKCk7XG4gICAgICAgIHRoaXMuYWN0aXZlZFJvdXRlLnBhcmFtcy5zdWJzY3JpYmUocXVlcnlQYXJhbXMgPT4ge1xuICAgICAgICAgICAgbGV0IHZhcmlhbnQ6IGFueSA9ICh0aGlzLmFjdGl2ZWRSb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtTWFwLmdldCgndmFyaWFudCcpKTtcbiAgICAgICAgICAgIGxldCBjb2RlID0gcXVlcnlQYXJhbXMuaWQ7XG4gICAgICAgICAgICB0aGlzLnByb2R1Y3RTZXJ2aWNlLmxvYWRQcm9kdWN0KGNvZGUsIHZhcmlhbnQpO1xuICAgICAgICAgICAgdGhpcy5jb2RlID0gcXVlcnlQYXJhbXMuaWRcbiAgICAgICAgfSlcbiAgICAgICAgdGhpcy5wcm9kdWN0U2VydmljZS5wcm9kdWN0JC5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgICAgIGlmIChyZXMgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnLyddKVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnByb2R1Y3QgPSByZXM7XG4gICAgICAgICAgICAgICAgd2luZG93LnNjcm9sbCgwLCAwKTtcbiAgICAgICAgICAgICAgICB0aGlzLmJyZWFkY3J1bWIgPSB0aGlzLm9wdGlvbnNTZXJ2aWNlLmdldEJyZWFkY3J1bWIodGhpcy5wcm9kdWN0LmNhdGVnb3J5KTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5wcm9kdWN0Lm5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tZXRhLnVwZGF0ZVRhZyh7IHByb3BlcnR5OiAnb2c6dGl0bGUnLCBjb250ZW50OiB0aGlzLnByb2R1Y3QubmFtZSB9KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tZXRhLnVwZGF0ZVRhZyh7IHByb3BlcnR5OiAnb2c6ZGVzY3JpcHRpb24nLCBjb250ZW50OiB0aGlzLmRlbGV0ZUhUTUwodGhpcy5wcm9kdWN0LmRlc2NyaXB0aW9uKSB9KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tZXRhLnVwZGF0ZVRhZyh7IHByb3BlcnR5OiAnb2c6aW1hZ2UnLCBjb250ZW50OiB0aGlzLmNvbnN0cy5tZWRpYVVybCgpICsgdGhpcy5wcm9kdWN0LnBpY3R1cmVzZGVmYXVsdFswXSB9KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tZXRhLnVwZGF0ZVRhZyh7IHByb3BlcnR5OiAnb2c6dHlwZScsIGNvbnRlbnQ6ICdwcm9kdWN0JyB9KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tZXRhLnVwZGF0ZVRhZyh7IHByb3BlcnR5OiAnb2c6dXJsJywgY29udGVudDogd2luZG93LmxvY2F0aW9uLmhyZWYgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5wcm9kdWN0U2VydmljZS5wcm9kdWN0JC5waXBlKGZpbHRlcihkYXRhID0+IGRhdGEgJiYgZGF0YS5pZCAmJiBkYXRhLmlkICE9IDApKS5zdWJzY3JpYmUoXG4gICAgICAgICAgICAocHJvZHVjdFBhcmFtKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5hbmFseXRpY3NTZXJ2aWNlLmNhbGxFdmVudCgndmlld19pdGVtJywgeyAuLi5wcm9kdWN0UGFyYW0sIGN1cnJlbmN5OiB0aGlzLmNvbnN0cy5jdXJyZW5jeS5jb2RlIH0pXG4gICAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VJbWdGb2N1cyhwcm9kdWN0UGFyYW0ucGljdHVyZXNkZWZhdWx0WzBdKVxuICAgICAgICAgICAgfVxuICAgICAgICApXG4gICAgICAgIHRoaXMuaW5qZWN0b3IuZ2V0KENoYW5uZWxDb25maWdTZXJ2aWNlKS5jaGFubmVsQ29uZmlnJC5zdWJzY3JpYmUoY2hhbm5lbCA9PiB7XG4gICAgICAgICAgICB0aGlzLnNob3dSZXZpZXdzID0gY2hhbm5lbC5zaG93UmV2aWV3cztcbiAgICAgICAgICAgIHRoaXMuaGlkZVByaWNlcyA9IGNoYW5uZWw/LmhpZGVQcmljZXMgPz8gZmFsc2U7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuY2FydFNlcnZpY2Uuc2hvd1ByaWNlJC5zdWJzY3JpYmUoKHNob3dQcmljZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5jcmVkaXRBY2NvdW50U2hvd1ByaWNlcyA9IHNob3dQcmljZTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuZWNPbkNvbnN0cnVjdCgpXG5cbiAgICB9XG5cbiAgICBkZWxldGVIVE1MKGNhZGVuYTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgLy8gRXhwcmVzacOzbiByZWd1bGFyIHBhcmEgYnVzY2FyIGV0aXF1ZXRhcyBIVE1MXG4gICAgICAgIGNvbnN0IGV4cHJlc2lvblJlZ3VsYXIgPSAvPFtePl0qPi9nO1xuICAgICAgICAvLyBSZWVtcGxhemEgdG9kYXMgbGFzIGV0aXF1ZXRhcyBIVE1MIHBvciB1bmEgY2FkZW5hIHZhY8OtYVxuICAgICAgICByZXR1cm4gY2FkZW5hLnJlcGxhY2UoZXhwcmVzaW9uUmVndWxhciwgJycpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmVjT25Jbml0KClcbiAgICB9XG5cbiAgICBhZGRUb0NhcnQgPSAoKSA9PiB7XG4gICAgICAgIHRoaXMucXVhbnRpdHkgPiAwICYmIHRoaXMucHJvZHVjdFNlcnZpY2UuYWRkVG9DYXJ0KHRoaXMucXVhbnRpdHkpO1xuICAgIH1cblxuICAgIGFkZEFsbFByb2R1Y3Rvc1RvQ2FydCA9ICgpID0+IHtcbiAgICAgICAgbGV0IGl0ZW1zID0gdGhpcy5wcm9kdWN0LnByb2R1Y3RXaXRoVW5pcXVlVmFyaWFudD8uZmlsdGVyKHByb2QgPT4gcHJvZC5wcm9kdWN0VG9DYXJ0SXRlbSkubWFwKHByb2QgPT4gcHJvZC5wcm9kdWN0VG9DYXJ0SXRlbSlcbiAgICAgICAgaXRlbXM/Lmxlbmd0aCAmJiB0aGlzLmNhcnRTZXJ2aWNlLmFkZEFsbFRvQ2FydChpdGVtcylcbiAgICB9XG5cbiAgICBzY3JvbGwoKSB7XG4gICAgICAgIGxldCBlbCA9IHRoaXMuY29udGFjdC5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuICAgICAgICBlbC5zY3JvbGxJbnRvVmlldygpO1xuICAgIH1cblxuICAgIHNhdmVSZWYgPSAoY2Fyb3VzZWwpID0+IHtcbiAgICAgICAgdGhpcy5jYXJvdXNlbCA9IGNhcm91c2VsO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBhY3R1YWxpemEgbGEgdmFyaWFibGUgcXVhbnRpdHkgc3VtYW5kb2xlICd4JyBjb250ZW5pZG8uXG4gICAgICogQHBhcmFtIHN0b2NrIG7Dum1lcm8gbcOheGltbyBkaXNwb25pYmxlIGVuIHN0b2NrLlxuICAgICAqIEBwYXJhbSBjaGFuZ2VBbW91bnQgY2FudGlkYWQgcXVlIHNlIHF1aWVyZSBzdW1hci5cbiAgICAgKiBAcGFyYW0gZm9yY2VNdWx0aXBsZSBzaSBlcyB0cnVlLCBvYmxpZ2EgYSBxdWUgZWwgcmVzdWx0YWRvIHNlYSBtw7psdGlwbG8gZGUgY2hhbmdlQW1vdW50LlxuICAgICAqL1xuICAgIHBsdXMgPSAoc3RvY2s/OiBudW1iZXIsIGNoYW5nZUFtb3VudDogbnVtYmVyID0gMSwgZm9yY2VNdWx0aXBsZTogYm9vbGVhbiA9IGZhbHNlKSA9PiB7ICAgICAgICBcbiAgICAgICAgbGV0IG5ld1F1YW50aXR5ID0gdGhpcy5xdWFudGl0eSArIGNoYW5nZUFtb3VudDtcblxuICAgICAgICBpZiAoZm9yY2VNdWx0aXBsZSAmJiBjaGFuZ2VBbW91bnQgPiAwKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5xdWFudGl0eSA8IGNoYW5nZUFtb3VudCkge1xuICAgICAgICAgICAgICAgIG5ld1F1YW50aXR5ID0gY2hhbmdlQW1vdW50O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBuZXdRdWFudGl0eSA9IE1hdGguY2VpbChuZXdRdWFudGl0eSAvIGNoYW5nZUFtb3VudCkgKiBjaGFuZ2VBbW91bnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFzdG9jayB8fCBuZXdRdWFudGl0eSA8PSBzdG9jaykge1xuICAgICAgICAgICAgdGhpcy5xdWFudGl0eSA9IG5ld1F1YW50aXR5O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy50b2FzdHJTZXJ2aWNlLnNob3coJ291dC1vZi1zdG9jay1hY3R1YWxseScpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIGFjdHVhbGl6YSBsYSB2YXJpYWJsZSBxdWFudGl0eSByZXN0YW5kb2xlICd4JyBjb250ZW5pZG8uXG4gICAgICogQHBhcmFtIGNoYW5nZUFtb3VudCBjYW50aWRhZCBxdWUgc2UgcXVpZXJlIHJlc3Rhci5cbiAgICAgKiBAcGFyYW0gZm9yY2VNdWx0aXBsZSBzaSBlcyB0cnVlLCBvYmxpZ2EgYSBxdWUgZWwgcmVzdWx0YWRvIHNlYSBtw7psdGlwbG8gZGUgY2hhbmdlQW1vdW50LlxuICAgICAqL1xuICAgIGxlc3MgPSAoY2hhbmdlQW1vdW50OiBudW1iZXIgPSAxLCBtaW5pbXVtOiBudW1iZXIgPSAxLCBmb3JjZU11bHRpcGxlOiBib29sZWFuID0gZmFsc2UpID0+IHtcbiAgICAgICAgbGV0IG5ld1F1YW50aXR5ID0gdGhpcy5xdWFudGl0eSAtIGNoYW5nZUFtb3VudDtcblxuICAgICAgICBpZiAoZm9yY2VNdWx0aXBsZSAmJiBjaGFuZ2VBbW91bnQgPiAwKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5xdWFudGl0eSA8PSBjaGFuZ2VBbW91bnQpIHtcbiAgICAgICAgICAgICAgICBuZXdRdWFudGl0eSA9IGNoYW5nZUFtb3VudDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbmV3UXVhbnRpdHkgPSBNYXRoLmZsb29yKG5ld1F1YW50aXR5IC8gY2hhbmdlQW1vdW50KSAqIGNoYW5nZUFtb3VudDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKG5ld1F1YW50aXR5IDwgY2hhbmdlQW1vdW50KSB7XG4gICAgICAgICAgICAgICAgbmV3UXVhbnRpdHkgPSBjaGFuZ2VBbW91bnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobmV3UXVhbnRpdHkgPj0gbWluaW11bSkge1xuICAgICAgICAgICAgdGhpcy5xdWFudGl0eSA9IG5ld1F1YW50aXR5O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5xdWFudGl0eSA9IG1pbmltdW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzaG93Q29udGFjdCA9ICgpID0+IHRoaXMuc2hvdyA9IHRydWU7XG4gICAgaGlkZUNvbnRhY3QgPSAoKSA9PiB0aGlzLnNob3cgPSBmYWxzZTtcblxuICAgIHRoZXJlSXNNb3JlSW5mbyA9IChwcm9kdWN0OiBhbnkpID0+IHtcbiAgICAgICAgbGV0IHJlc3VsdDtcbiAgICAgICAgaWYgKHByb2R1Y3Q/LnNwZWNpYWxfbWFyayAmJiBwcm9kdWN0Py5zcGVjaWFsX21hcmsubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXN1bHQgPSBwcm9kdWN0Py5zcGVjaWFsX21hcms/LmZpbmQoc3BlY2lhbF9tYXJrID0+IHNwZWNpYWxfbWFyay50eXBlID09ICdtb3JlX2luZm8nKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIGNoYW5nZUltZ0ZvY3VzID0gKGltZykgPT4ge1xuICAgICAgICB0aGlzLmZvY3VzSW1hZ2UgPSBpbWdcbiAgICB9XG59XG4iXX0=
@@ -262,7 +262,9 @@ let ProductsService = class ProductsService {
262
262
  this.getTotal = () => this.pagination.total;
263
263
  // Suscribirse a los cambios en el rango de precios
264
264
  this.pagination.priceRange$.subscribe(range => {
265
- this.updatePriceRangeFilter(range.price_min, range.price_max);
265
+ let min = Math.floor(range.price_min);
266
+ let max = Math.ceil(range.price_max);
267
+ this.updatePriceRangeFilter(min, max);
266
268
  });
267
269
  }
268
270
  updatePriceRangeFilter(min, max) {
@@ -285,4 +287,4 @@ ProductsService = __decorate([
285
287
  Injectable()
286
288
  ], ProductsService);
287
289
  export { ProductsService };
288
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25nLWVhc3ljb21tZXJjZS8iLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlcy9wcm9kdWN0cy9wcm9kdWN0cy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLE9BQU8sRUFBVSxVQUFVLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLGVBQWUsRUFBYyxFQUFFLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDbkUsT0FBTyx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFJOUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDdEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRTlELE9BQU8seUJBQXlCLENBQUM7QUFFakMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBRzFFLGdDQUFnQztBQUNoQyxJQUFJLFFBQVEsR0FBUSxFQUFFLENBQUM7QUFJdkIsSUFBYSxlQUFlLEdBQTVCLE1BQWEsZUFBZTtJQThCeEIsWUFBb0IsVUFBNkIsRUFDckMsU0FBb0IsRUFDcEIsVUFBNkIsRUFDN0IsT0FBdUIsRUFDeEIsY0FBOEI7UUFKckIsZUFBVSxHQUFWLFVB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QixnQkFBcUMsQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQzlELElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1NBQzNDO0lBQ0wsQ0FBQztDQUNKLENBQUE7O1lBcFJtQyxpQkFBaUI7WUFDMUIsU0FBUztZQUNSLGlCQUFpQjtZQUNwQixjQUFjO1lBQ1IsY0FBYzs7QUFsQ2hDLGVBQWU7SUFEM0IsVUFBVSxFQUFFO0dBQ0EsZUFBZSxDQWtUM0I7U0FsVFksZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBvZiwgU3Vic2NyaWJlciB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgJ3J4anMvYWRkL29wZXJhdG9yL21hcCc7XHJcbmltcG9ydCB7IENvbm5lY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vYXBpL2Nvbm5lY3Rpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IENvbnN0YW50cyB9IGZyb20gJy4uLy4uL2NvcmUuY29uc3RzJztcclxuaW1wb3J0IHsgUHJvZHVjdCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvcHJvZHVjdCc7XHJcbmltcG9ydCB7IEZpbHRlck9wdGlvblZhbHVlLCBGaWx0ZXJPcHRpb24gfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2Nob29zZS1vcHRpb25zL2ZpbHRlci1vcHRpb24nO1xyXG5pbXBvcnQgeyBGaWx0ZXJUeXBlLCBGaWx0ZXJFbGVtZW50LCBEZWZhdWx0RmlsdGVyIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9maWx0ZXInO1xyXG5pbXBvcnQgeyBQYWdpbmF0aW9uU2VydmljZSB9IGZyb20gJy4uL3BhZ2luYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IENhdGVnb3J5RmlsdGVyIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9maWx0ZXJzL0NhdGVnb3J5RmlsdGVyJztcclxuaW1wb3J0IHsgT3B0aW9uc1NlcnZpY2UgfSBmcm9tICcuLi9vcHRpb25zLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBdHRyaWJ1dGVzRmlsdGVyIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9maWx0ZXJzL0F0dHJpYnV0ZXNGaWx0ZXInO1xyXG5pbXBvcnQgeyBEeW5hbWljc0ZpbHRlciB9IGZyb20gJy4uLy4uL2NsYXNzZXMvZmlsdGVycy9EaW5hbXljc0ZpbHRlcic7XHJcbmltcG9ydCB7IFNvcnRGaWx0ZXIgfSBmcm9tICcuLi8uLi9jbGFzc2VzL2ZpbHRlcnMvU29ydEZpbHRlcic7XHJcbmltcG9ydCB7IEZpbHRlciB9IGZyb20gJy4uLy4uL2NsYXNzZXMvZmlsdGVycy9GaWx0ZXInO1xyXG5pbXBvcnQgJ3J4anMvYWRkL29wZXJhdG9yL2NhdGNoJztcclxuaW1wb3J0IHsgUGFyYW1zUHJvZHVjdHNXaXRoVW5pcXVlVmFyaWFudCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvcGFyYW1zSW50ZXJmYWNlcy9wYXJhbXNQcm9kdWN0c1dpdGhVbmlxdWVWYXJpYW50JztcclxuaW1wb3J0IHsgRmlsdGVyc1NlcnZpY2UgfSBmcm9tICcuLi9maWx0ZXJzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQcmljZVJhbmdlRmlsdGVyIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9maWx0ZXJzL1ByaWNlUmFuZ2VGaWx0ZXInO1xyXG5cclxuXHJcbi8vIEdldCBwcm9kdWN0IGZyb20gTG9jYWxzdG9yYWdlXHJcbmxldCBwcm9kdWN0czogYW55ID0ge307XHJcbnR5cGUgb3JkZXJfdHlwZSA9ICdhc2MnIHwgJ2Rlc2MnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgUHJvZHVjdHNTZXJ2aWNlIHtcclxuXHJcbiAgICAvKiogQVRUUklCVVRFUyAqL1xyXG4gICAgcHJpdmF0ZSBzdWJzY3JpcHRpb247XHJcbiAgICBwcml2YXRlIHByb2R1Y3RzU3ViamVjdDogQmVoYXZpb3JTdWJqZWN0PFByb2R1Y3RbXT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KFtdKTtcclxuICAgIHByaXZhdGUgZmlsdGVyc1N1YmplY3Q6IEJlaGF2aW9yU3ViamVjdDxGaWx0ZXJbXT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KFtdKTtcclxuICAgIHByaXZhdGUgZmlsdGVyc0luVmlld1N1YmplY3Q6IEJlaGF2aW9yU3ViamVjdDxGaWx0ZXJFbGVtZW50PiA9IG5ldyBCZWhhdmlvclN1YmplY3QobnVsbClcclxuXHJcbiAgICBwdWJsaWMgY3VycmVuY3kgPSAnVVNEJztcclxuICAgIHB1YmxpYyBjYXRhbG9nTW9kZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgcHVibGljIHByb2R1Y3RzJCA9IHRoaXMucHJvZHVjdHNTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xyXG4gICAgcHVibGljIGZpbHRlcnMkID0gdGhpcy5maWx0ZXJzU3ViamVjdC5hc09ic2VydmFibGUoKTtcclxuICAgIHB1YmxpYyBmaWx0ZXJzSW5WaWV3JCA9IHRoaXMuZmlsdGVyc0luVmlld1N1YmplY3QuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG4gICAgcHJpdmF0ZSBzZWFyY2hfdmFsdWU6IFN0cmluZztcclxuXHJcbiAgICAvKiogQVBJUyAqL1xyXG5cclxuICAgIGxhdGVzdFByb2R1Y3RzQnlDYXRlZ29yeUFwaSA9IChjYXRlZ29yeSkgPT4gJ3Nob3AtYXBpLycgKyB0aGlzLmNvbnN0YW50cy5nZXRDaGFubmVsKCkgKyAnL3RheG9uLXByb2R1Y3RzL2J5LWNvZGUvJyArIGNhdGVnb3J5O1xyXG4gICAgbGF0ZXN0UHJvZHVjdHNBcGkgPSAoKSA9PiAnc2hvcC1hcGkvJyArIHRoaXMuY29uc3RhbnRzLmdldENoYW5uZWwoKSArICcvcHJvZHVjdC1sYXRlc3QvJztcclxuICAgIHNwZWNpZmljUHJvZHVjdEFwaSA9IChjb2RlLCB2YXJpYW50KSA9PiAnc2hvcC1hcGkvJyArIHRoaXMuY29uc3RhbnRzLmdldENoYW5uZWwoKSArICcvcHJvZHVjdHMvYnktY29kZS8nICsgKHZhcmlhbnQgPyAndmFyaWFudC8nIDogJycpICsgY29kZSArICc/bG9jYWxlPScgKyB0aGlzLmNvbnN0YW50cy5nZXRMb2NhbGUoKTtcclxuICAgIHByb2R1Y3RzQnlTcGVjaWFsTWFya0FwaSA9IChzcGVjaWFsbWFyaykgPT4gJ3Nob3AtYXBpLycgKyB0aGlzLmNvbnN0YW50cy5nZXRWZXJzaW9uKCkgKyAnLycgKyB0aGlzLmNvbnN0YW50cy5nZXRDaGFubmVsKCkgKyAnL3NwZWNpYWwtbWFya3MvJyArIHNwZWNpYWxtYXJrICsgJy9wcm9kdWN0cy8nO1xyXG4gICAgcmVsYXRlZFByb2R1Y3RzQXBpID0gKGtleSkgPT4gJ3Nob3AtYXBpLycgKyB0aGlzLmNvbnN0YW50cy5nZXRDaGFubmVsKCkgKyAnL3Byb2R1Y3RzL3JlbGF0ZWQvYnktY29kZS8nICsga2V5ICsgJz9sb2NhbGU9JyArIHRoaXMuY29uc3RhbnRzLmdldExvY2FsZSgpO1xyXG4gICAgcHJvZHVjdFZhcmlhbnRBcGkgPSAoY29kZSkgPT4gJ3Nob3AtYXBpLycgKyB0aGlzLmNvbnN0YW50cy5nZXRDaGFubmVsKCkgKyAnL3Byb2R1Y3RzL2J5LWNvZGUvdmFyaWFudC8nICsgY29kZTtcclxuICAgIGxhdGVzdFByb2R1Y3RzQnlBdHRyaWJ1dGVBcGkgPSAoYXR0cmlidXRlKSA9PiAnc2hvcC1hcGkvJyArIHRoaXMuY29uc3RhbnRzLmdldENoYW5uZWwoKSArICcvcHJvZHVjdHMvYnktYXR0cmlidXRlLycgKyBhdHRyaWJ1dGU7XHJcbiAgICBwcm9kdWN0U2VhcmNoQXBpID0gKCkgPT4gJ3Nob3AtYXBpLycgKyB0aGlzLmNvbnN0YW50cy5nZXRDaGFubmVsKCkgKyAnL3Byb2R1Y3Qtc2VhcmNoLyc7XHJcbiAgICBjbXNSZWxhdGVkUHJvZHVjdHNBcGkgPSAocGFnZSkgPT4gJ2Ntcy8nICsgdGhpcy5jb25zdGFudHMuZ2V0TG9jYWxlKCkgKyAnLycgKyB0aGlzLmNvbnN0YW50cy5nZXRDaGFubmVsKCkgKyAnL3BhZ2UvJyArIHBhZ2UgKyAnL3Byb2R1Y3QtcmVsYXRlZCc7XHJcbiAgICBwcm9kdWN0c0ZpbHRlckFwaSA9IChmaWx0ZXJzID0gJycpID0+ICdzaG9wLWFwaS8nICsgdGhpcy5jb25zdGFudHMuZ2V0Q2hhbm5lbCgpICsgJy9wcm9kdWN0LXNlYXJjaC8nICsgJz9sb2NhbGU9JyArIHRoaXMuY29uc3RhbnRzLmdldExvY2FsZSgpICsgZmlsdGVycztcclxuICAgIHNhdmVQcm9kdWN0UmV2aWV3c0FwaSA9IChjb2RlKSA9PiAnc2hvcC1hcGkvJyArIHRoaXMuY29uc3RhbnRzLmdldENoYW5uZWwoKSArICcvcHJvZHVjdHMvYnktY29kZS8nICsgY29kZSArICcvcmV2aWV3cyc7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBjb25uZWN0aW9uOiBDb25uZWN0aW9uU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIGNvbnN0YW50czogQ29uc3RhbnRzLFxyXG4gICAgICAgIHByaXZhdGUgcGFnaW5hdGlvbjogUGFnaW5hdGlvblNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBvcHRpb25zOiBPcHRpb25zU2VydmljZSxcclxuICAgICAgICBwdWJsaWMgZmlsdGVyc1NlcnZpY2U6IEZpbHRlcnNTZXJ2aWNlKSB7XHJcbiAgICAgICAgLy8gU3VzY3JpYmlyc2UgYSBsb3MgY2FtYmlvcyBlbiBlbCByYW5nbyBkZSBwcmVjaW9zXHJcbiAgICAgICAgdGhpcy5wYWdpbmF0aW9uLnByaWNlUmFuZ2UkLnN1YnNjcmliZShyYW5nZSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlUHJpY2VSYW5nZUZpbHRlcihyYW5nZS5wcmljZV9taW4sIHJhbmdlLnByaWNlX21heCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIEZVTkNUSU9OUyAqL1xyXG5cclxuICAgIGdldExhdGVzdFByb2R1Y3RzID0gKGxpbWl0OiBzdHJpbmcgPSAnMCcpOiBPYnNlcnZhYmxlPGFueT4gPT5cclxuICAgICAgICBsaW1pdCA9PSAnMCcgPyB0aGlzLmNvbm5lY3Rpb24uZ2V0KHRoaXMubGF0ZXN0UHJvZHVjdHNBcGkoKSkgOlxyXG4gICAgICAgICAgICB0aGlzLmNvbm5lY3Rpb24uZ2V0V2l0aExpbWl0KHRoaXMubGF0ZXN0UHJvZHVjdHNBcGkoKSwgbGltaXQpO1xyXG5cclxuICAgIGdldExhdGVzdFByb2R1Y3RzQnlDYXRlZ29yeSA9IChjYXRlZ29yeTogc3RyaW5nLCBsaW1pdDogc3RyaW5nID0gJzAnKTogT2JzZXJ2YWJsZTxhbnk+ID0+XHJcbiAgICAgICAgbGltaXQgPT0gJzAnID8gdGhpcy5jb25uZWN0aW9uLmdldCh0aGlzLmxhdGVzdFByb2R1Y3RzQnlDYXRlZ29yeUFwaShjYXRlZ29yeSkpIDpcclxuICAgICAgICAgICAgdGhpcy5jb25uZWN0aW9uLmdldFdpdGhMaW1pdCh0aGlzLmxhdGVzdFByb2R1Y3RzQnlDYXRlZ29yeUFwaShjYXRlZ29yeSksIGxpbWl0KTtcclxuXHJcbiAgICBnZXRQYWdpbmF0ZWQgPSAobGltaXQ6IHN0cmluZywgcGFnZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+ID0+XHJcbiAgICAgICAgdGhpcy5jb25uZWN0aW9uLmdldFBhZ2luYXRlZCh0aGlzLmxhdGVzdFByb2R1Y3RzQXBpKCksIGxpbWl0LCBwYWdlKTtcclxuXHJcbiAgICBnZXRTcGVjaWZpY1Byb2R1Y3QgPSAoY29kZTogc3RyaW5nLCB2YXJpYW50OiBib29sZWFuKTogT2JzZXJ2YWJsZTxhbnk+ID0+XHJcbiAgICAgICAgdGhpcy5jb25uZWN0aW9uLmdldCh0aGlzLnNwZWNpZmljUHJvZHVjdEFwaShjb2RlLCB2YXJpYW50KSk7XHJcblxyXG4gICAgZ2V0UHJvZHVjdHNCeVNwZWNpYWxNYXJrID0gKHNwZWNpYWxtYXJrLCBsaW1pdDogc3RyaW5nID0gJzAnKTogT2JzZXJ2YWJsZTxhbnk+ID0+XHJcbiAgICAgICAgbGltaXQgPT0gJzAnID8gdGhpcy5jb25uZWN0aW9uLmdldCh0aGlzLnByb2R1Y3RzQnlTcGVjaWFsTWFya0FwaShzcGVjaWFsbWFyaykpIDpcclxuICAgICAgICAgICAgdGhpcy5jb25uZWN0aW9uLmdldFdpdGhMaW1pdCh0aGlzLnByb2R1Y3RzQnlTcGVjaWFsTWFya0FwaShzcGVjaWFsbWFyayksIGxpbWl0KTtcclxuXHJcbiAgICBnZXRSZWxhdGVkUHJvZHVjdHMgPSAoa2V5OiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4gPT5cclxuICAgICAgICB0aGlzLmNvbm5lY3Rpb24uZ2V0KHRoaXMucmVsYXRlZFByb2R1Y3RzQXBpKGtleSkpO1xyXG5cclxuICAgIGdldFByb2R1Y3RWYXJpYW50ID0gKGNvZGU6IHN0cmluZykgPT5cclxuICAgICAgICB0aGlzLmNvbm5lY3Rpb24uZ2V0KHRoaXMucHJvZHVjdFZhcmlhbnRBcGkoY29kZSkpO1xyXG5cclxuICAgIGdldGxhdGVzdFByb2R1Y3RzQnlBdHRyaWJ1dGUgPSAoYXR0cmlidXRlKSA9PlxyXG4gICAgICAgIHRoaXMuY29ubmVjdGlvbi5nZXQodGhpcy5sYXRlc3RQcm9kdWN0c0J5QXR0cmlidXRlQXBpKGF0dHJpYnV0ZSkpO1xyXG5cclxuICAgIGdldFNlYXJjaGVkUHJvZHVjdHMgPSAoY29udGVudCkgPT4ge1xyXG4gICAgICAgIHRoaXMucHJvZHVjdHNTdWJqZWN0Lm5leHQoW10pO1xyXG4gICAgICAgIHRoaXMucGFnaW5hdGlvbi5pbml0aWFsaXplKHRoaXMuZ2VuZXJhdGVGaW5hbEFwaShjb250ZW50KSwgcHJvZHVjdHM/LmxpbWl0IHx8IDgpO1xyXG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdGhpcy5wYWdpbmF0aW9uLm5leHQuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICByZXMgPT4gdGhpcy5wcm9kdWN0c1N1YmplY3QubmV4dChyZXMpLFxyXG4gICAgICAgICAgICBlcnIgPT4gdGhpcy5wcm9kdWN0c1N1YmplY3QubmV4dChudWxsKVxyXG4gICAgICAgIClcclxuICAgIH1cclxuXHJcbiAgICBnZXRDTVNSZWxhdGVkUHJvZHVjdHMgPSAocGFnZSkgPT5cclxuICAgICAgICB0aGlzLmNvbm5lY3Rpb24uZ2V0KHRoaXMuY21zUmVsYXRlZFByb2R1Y3RzQXBpKHBhZ2UpKS5jYXRjaCgoZXJyKSA9PiBvZihudWxsKSk7XHJcblxyXG4gICAgZ2V0UHJvZHVjdHNTZWFyY2hlZCA9IChzZWFyY2hfdmFsdWUsIGZpbHRlcnM/OiBGaWx0ZXJUeXBlW10pID0+IHtcclxuICAgICAgICB0aGlzLmdldFByb2R1Y3RzRm9yRmlsdGVyKG51bGwsIGZpbHRlcnMsIHNlYXJjaF92YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAZGVzY3JpcHRpb24gR3VhcmRhIGxhIHJlc2XDsWEgZGUgdW4gcHJvZHVjdG8uXHJcbiAgICAgKiBAcGFyYW0gY29kZVxyXG4gICAgICogQHBhcmFtIGZvcm1fZGF0YVxyXG4gICAgICogQHJldHVybnNcclxuICAgICAqL1xyXG4gICAgc2F2ZVJldmlld3MgPSAoY29kZTogc3RyaW5nLCBmb3JtX2RhdGE6IGFueSkgPT4gdGhpcy5jb25uZWN0aW9uLnBvc3QodGhpcy5zYXZlUHJvZHVjdFJldmlld3NBcGkoY29kZSksIGZvcm1fZGF0YSlcclxuXHJcbiAgICAvKipcclxuICAgICAqIEBwYXJhbSBwcm9kdWN0c1xyXG4gICAgICogQHBhcmFtIGZpbHRlcnNcclxuICAgICAqIEBwYXJhbSBzZWFyY2hfdmFsdWVcclxuICAgICAqIEBwYXJhbSBkZWZhdWx0RmlsdGVyc1xyXG4gICAgICovXHJcbiAgICBnZXRQcm9kdWN0c0ZvckZpbHRlciA9IChwcm9kdWN0cz86IHsgdHlwZT86IHN0cmluZywgdmFsdWU/OiBzdHJpbmcsIGxpbWl0PzogbnVtYmVyLCBsYXRlc3Q/OiBib29sZWFuIH0sIGZpbHRlcnM/OiBGaWx0ZXJUeXBlW10sIHNlYXJjaF92YWx1ZT8sIGRlZmF1bHRGaWx0ZXJzPzogRGVmYXVsdEZpbHRlcltdKSA9PiB7XHJcbiAgICAgICAgdGhpcy5wcm9kdWN0c1N1YmplY3QubmV4dChbXSk7XHJcbiAgICAgICAgc2VhcmNoX3ZhbHVlID8gdGhpcy5zZWFyY2hfdmFsdWUgPSBzZWFyY2hfdmFsdWUgOiB0aGlzLnNlYXJjaF92YWx1ZSA9ICcnO1xyXG4gICAgICAgIGZpbHRlcnMgJiYgdGhpcy5zZXRGaWx0ZXJzKHByb2R1Y3RzLCBmaWx0ZXJzLCBkZWZhdWx0RmlsdGVycyk7XHJcbiAgICAgICAgdGhpcy5wYWdpbmF0aW9uLmluaXRpYWxpemUodGhpcy5nZW5lcmF0ZUZpbmFsQXBpKHNlYXJjaF92YWx1ZSksIHByb2R1Y3RzPy5saW1pdCB8fCA4KTtcclxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbiAmJiB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdGhpcy5wYWdpbmF0aW9uLm5leHQuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICByZXMgPT4gdGhpcy5wcm9kdWN0c1N1YmplY3QubmV4dChyZXMpLFxyXG4gICAgICAgICAgICBlcnIgPT4gdGhpcy5wcm9kdWN0c1N1YmplY3QubmV4dChudWxsKVxyXG4gICAgICAgIClcclxuICAgICAgICB0aGlzLmZpbHRlcnNTdWJqZWN0LnZhbHVlLnNvbWUoZmlsdGVyID0+IGZpbHRlci50eXBlKCkgPT0gJ2R5bmFtaWNzJylcclxuICAgICAgICAgICAgPyB0aGlzLnBhZ2luYXRpb24uZ2V0TmV4dCh0aGlzLnVwZGF0ZUR5bmFtaWNGaWx0ZXJzKVxyXG4gICAgICAgICAgICA6IHRoaXMucGFnaW5hdGlvbi5nZXROZXh0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0RmlsdGVycyA9IChwcm9kdWN0cywgZmlsdGVyczogRmlsdGVyVHlwZVtdLCBkZWZhdWx0RmlsdGVycz86IERlZmF1bHRGaWx0ZXJbXSkgPT4ge1xyXG4gICAgICAgIGxldCBmaW5hbF9maWx0ZXJzOiBGaWx0ZXJbXSA9IFtdO1xyXG4gICAgICAgIGlmIChmaWx0ZXJzPy5pbmNsdWRlcygnYWxsJykpIGZpbHRlcnMgPSBbJ2F0dHJpYnV0ZXMnLCAnY2F0ZWdvcnknLCAnZHluYW1pY3MnLCAncHJpY2VfcmFuZ2UnLCAnc29ydCddO1xyXG4gICAgICAgIGZpbHRlcnM/LmZvckVhY2goZmlsdGVyID0+IGZpbmFsX2ZpbHRlcnMucHVzaCh0aGlzLmdldEZpbHRlckluc3RhbmNlKGZpbHRlciwgcHJvZHVjdHMpKSk7XHJcbiAgICAgICAgZGVmYXVsdEZpbHRlcnM/LmZvckVhY2goZmlsdGVyRGVmYXVsdCA9PiB7XHJcbiAgICAgICAgICAgIGxldCBmaWx0ZXIgPSBmaW5hbF9maWx0ZXJzLmZpbmQoZmlsdGVyID0+IGZpbHRlci50eXBlKCkgPT0gZmlsdGVyRGVmYXVsdC5maWx0ZXJfdHlwZSk7XHJcbiAgICAgICAgICAgIGZpbHRlciAmJiBmaWx0ZXJEZWZhdWx0LmNvZGVzLmZvckVhY2godmFsdWUgPT4gZmlsdGVyLnNldFNlbGVjdGVkKHZhbHVlKSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICB0aGlzLmZpbHRlcnNTdWJqZWN0Lm5leHQoZmluYWxfZmlsdGVycyk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0RmlsdGVySW5zdGFuY2UgPSAoZmlsdGVyOiBzdHJpbmcsIHByb2R1Y3RzPyk6IEZpbHRlciA9PiB7XHJcbiAgICAgICAgbGV0IGluc3RhbmNlOiBGaWx0ZXI7XHJcbiAgICAgICAgc3dpdGNoIChmaWx0ZXIpIHtcclxuICAgICAgICAgICAgY2FzZSAnY2F0ZWdvcnknOiBpbnN0YW5jZSA9IG5ldyBDYXRlZ29yeUZpbHRlcih0aGlzLm9wdGlvbnMuY2F0ZWdvcmllcywgdGhpcy5vcHRpb25zLmdlbmVyYXRlTWVudSwgcHJvZHVjdHMgPyAocHJvZHVjdHMudHlwZSA9PSAnY2F0ZWdvcmllcycgJiYgcHJvZHVjdHMudmFsdWUpIDogbnVsbCk7IGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdhdHRyaWJ1dGVzJzogaW5zdGFuY2UgPSBuZXcgQXR0cmlidXRlc0ZpbHRlcih0aGlzLm9wdGlvbnMuYXR0cmlidXRlcywgdGhpcy5vcHRpb25zLmdlbmVyYXRlTWVudSwgcHJvZHVjdHMgPyAocHJvZHVjdHMudHlwZSA9PSAnYXR0cmlidXRlcycgJiYgcHJvZHVjdHMudmFsdWUpIDogbnVsbCk7IGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdzb3J0JzogaW5zdGFuY2UgPSBuZXcgU29ydEZpbHRlcih0aGlzLmNvbnN0YW50cyk7IGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdkeW5hbWljcyc6IGluc3RhbmNlID0gbmV3IER5bmFtaWNzRmlsdGVyKCk7IGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdwcmljZV9yYW5nZSc6IGluc3RhbmNlID0gbmV3IFByaWNlUmFuZ2VGaWx0ZXIoKTsgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBpbnN0YW5jZTtcclxuICAgIH1cclxuXHJcbiAgICB1cGRhdGVEeW5hbWljRmlsdGVycyA9IChyZXF1ZXN0KSA9PiB7XHJcbiAgICAgICAgaWYgKCFyZXF1ZXN0Lm9wdGlvbnMpIHJldHVybjtcclxuICAgICAgICBsZXQgZmluYWxfZmlsdGVyczogRmlsdGVyW10gPSB0aGlzLmZpbHRlcnNTdWJqZWN0LnZhbHVlO1xyXG4gICAgICAgIGxldCBpbmRleCA9IGZpbmFsX2ZpbHRlcnMuZmluZEluZGV4KGZpbHRlciA9PiBmaWx0ZXIudHlwZSgpID09ICdkeW5hbWljcycpO1xyXG4gICAgICAgIGluZGV4ICYmIGZpbmFsX2ZpbHRlcnNbaW5kZXhdLnNldENvbnRlbnQocmVxdWVzdC5vcHRpb25zKTtcclxuICAgICAgICB0aGlzLmZpbHRlcnNTdWJqZWN0Lm5leHQoZmluYWxfZmlsdGVycyk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0TmV4dCA9ICgpOiBib29sZWFuID0+ICF0aGlzLnBhZ2luYXRpb24uaXNGaW5pc2hlZCgpICYmIHRoaXMucGFnaW5hdGlvbi5nZXROZXh0KCk7XHJcblxyXG4gICAgc2V0RmlsdGVyU2VsZWN0ZWQgPSAoZmlsdGVyT2JqOiBGaWx0ZXIsIGZpbHRlckVsZW06IEZpbHRlckVsZW1lbnQpID0+IHtcclxuICAgICAgICBsZXQgZmluYWxfZmlsdGVyczogRmlsdGVyW10gPSB0aGlzLmZpbHRlcnNTdWJqZWN0LnZhbHVlO1xyXG4gICAgICAgIGlmIChmaWx0ZXJPYmoudHlwZSgpICE9PSAncHJpY2VfcmFuZ2UnKSB7XHJcbiAgICAgICAgICAgIGxldCBpbmRleCA9IGZpbmFsX2ZpbHRlcnMuZmluZEluZGV4KGZpbHRlciA9PiBmaWx0ZXIudHlwZSgpID09IGZpbHRlck9iai50eXBlKCkpO1xyXG4gICAgICAgICAgICBmaW5hbF9maWx0ZXJzW2luZGV4XS5zZXRTZWxlY3RlZChmaWx0ZXJFbGVtLCBmaWx0ZXJFbGVtLnZhbHVlKTtcclxuICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBFc3RhIHBhcnRlIGRlbCBjb2RpZ28gbG8gcXVlIGhhY2UgZXMgY2hlcXVlYXIgc2Ugc2VhIHVuIGZpbHRybyBkZSBsYSB2aXN0YSwgcGFyYSBjYXJnYXIgZWwgb2JzZXJ2YWJsZVxyXG4gICAgICAgICAgICAgKiBjb24gbG9zIGRhdG9zIGRlbCBtaXNtby4gRGUgbG8gY29udHJhcmlvIHNlIGxvIGNhcmdhIGNvbiBudWxsLiBFc3RlIG9ic2VydmFibGUgZXN0YSBoZWNobyBwYXJhIHF1ZSBlbiBjb2xsZWN0aW9uIHNlXHJcbiAgICAgICAgICAgICAqIHB1ZWRhIGRldGVjdGFyIHNpIGVzIG5lY2VzYXJpbyBoYWNlciB1biBmaWx0cmFkbyBlbiBsYSB2aXN0YS5cclxuICAgICAgICAgICAgICogQWNsYXJhY2nDs246IGhhY2VyIGVzdGUgdGlwbyBkZSBmaWx0cmFkb3MgZXN0YSBtYWwsIHNpIGNyZWNlIG11Y2hvIGxhIHBlcmZvcm1hbmNlIHZhIGEgYmFqYXIsIGxvIGlkZWFsIHNlcmlhIHF1ZVxyXG4gICAgICAgICAgICAgKiBkZXNkZSBiYWNrZW5kIHNlIHB1ZWRhbiBwcm92ZWVyIGVuZHBvaW50cyBwYXJhIHBvZGVyIGZpbHRyYXIgc29icmUgbG9zIGNhbXBvcyBkZXNlYWRvcyB5IG1hbnRlbmVyIGxhIG1pc21hIGxvZ2ljYSBjb25cclxuICAgICAgICAgICAgICogbGEgcXVlIHNlIHZpZW5lIHRyYWJhamFuZG8uXHJcbiAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgIChmaWx0ZXJFbGVtLm5vVXJsICE9IHVuZGVmaW5lZCAmJiBmaWx0ZXJFbGVtLm5vVXJsKSA/IHRoaXMuZmlsdGVyc0luVmlld1N1YmplY3QubmV4dChmaWx0ZXJFbGVtKSA6IHRoaXMuZmlsdGVyc0luVmlld1N1YmplY3QubmV4dChudWxsKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuZmlsdGVyc1N1YmplY3QubmV4dChmaW5hbF9maWx0ZXJzKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZVByb2R1Y3RzRm9yRmlsdGVyKCk7XHJcbiAgICB9XHJcblxyXG4gICAgdXBkYXRlUHJvZHVjdHNGb3JGaWx0ZXIgPSAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5wYWdpbmF0aW9uLndhaXRpbmcgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMucHJvZHVjdHNTdWJqZWN0Lm5leHQoW10pO1xyXG4gICAgICAgIHRoaXMucGFnaW5hdGlvbi5pbml0aWFsaXplKHRoaXMuc2VhcmNoX3ZhbHVlID8gdGhpcy5nZW5lcmF0ZUZpbmFsQXBpKHRoaXMuc2VhcmNoX3ZhbHVlKSA6IHRoaXMuZ2VuZXJhdGVGaW5hbEFwaSgpKTtcclxuICAgICAgICB0aGlzLnBhZ2luYXRpb24uZ2V0TmV4dCgpO1xyXG4gICAgICAgIC8vIFNJIFNFIEFDVFVBTElaQVJBTiBMT1MgRklMVFJPUyBESU5BTUlDT1MgRU4gRUwgRlVUVVJPXHJcbiAgICAgICAgLy8gbGV0IGZpbHRlcnNPYmogPSB0aGlzLmZpbHRlcnNTdWJqZWN0LnZhbHVlO1xyXG4gICAgICAgIC8vIGZpbHRlcnNPYmouc29tZShmaWx0ZXIgPT4gZmlsdGVyLnR5cGUoKSA9PSAnZHluYW1pY3MnKVxyXG4gICAgICAgIC8vICAgICAgPyB0aGlzLnBhZ2luYXRpb24uZ2V0TmV4dCh0aGlzLnVwZGF0ZUR5bmFtaWNGaWx0ZXJzKVxyXG4gICAgICAgIC8vICAgICAgOiB0aGlzLnBhZ2luYXRpb24uZ2V0TmV4dCgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBwcm9kdWN0cyAgQXJyYXkuIExpc3RhIGRlIHByb2R1Y3Rvcy5cclxuICAgICAqIEBwYXJhbSB3aXRoT3B0aW9uICd0eXBlJyB0aXBvIGRlIG9wY2nDs24sIGNvZGU6IGPDs2RpZ28gZGUgbGEgb3BjacOzbi4gJ2RlZmF1bHRGaXJzdE9wdGlvbic6IGVuIGNhc28gZGUgcXVlIG5vIHNlIHB1ZWRhIGRlc2RvYmxhciBwb3IgbGEgb3BjacOzbiBpbmRpY2FkYSBzaSBlbCB2YWxvciBlcyB2ZXJkYWRlcm8gc2UgaW50ZW50YXJhIGRlc2RvYmxhciBwb3IgbGEgcHJpbWVyYSBvcGNpw7NuIGFzb2NpYWRhIGFsIHByb2R1Y3RvLlxyXG4gICAgICogJ2NoZWNrSWZTdG9jayc6IGVuIGNhc28gZGUgcXVlIGVzdGEgdmFsb3Igc2VhIHZlcmRhZGVybyBzZSByZWFsaXphIHVuIGNvbnRyb2wgZGUgcXVlIGxhIHZhcmlhbnRlcyBjdWVudGVuIGNvbiBzdG9jayBwYXJhIHNlciB1biBwcm9kdWN0byBkZXNkb2JsYWRvIHBvciBsYSB2YXJpYW50ZSwgc2kgZWwgdmFsb3IgZXMgZmFsc28gbm8gc2UgcmVhbGl6YSBkaWNobyBjb250cm9sIHkgZWwgcHJvZHVjdG8gc2UgZGVzZG9ibGFyYSBjb24gc3RvY2sgZW4gMC5cclxuICAgICAqIEByZXR1cm5zIGFycmVnbG8gY29uIGxvcyBwcm9kdWN0b3MgZGVzZG9ibGFkb3MgcG9yIGxhIG9wY2nDs24gc29saWNpdGFkYS5cclxuICAgICAqIChvcGNpw7NuIHBvciBkZWZlY3RvIHF1ZSBzZSBpbnRlbnRhIGhhY2VyIGVsIGRlc2RvYmxhbWllbnRvICdjb2xvcicsIG8gYmllbiBzaSBlbiBsZSBwYXLDoW1ldHJvIHdpdGhPcHRpb24gZWwgYXRyaWJ1dG8gJ2RlZmF1bHRGaXJzdE9wdGlvbicgZXMgdmVyZGFkZXJvIHNlIGRlc2RvYmxhIHBvciBsYSBwcmltZXJhIG9wY2nDs24gYXNvY2lhZGEgYWwgcHJvZHVjdG8gKVxyXG4gICAgICpcclxuICAgICAqIEBkZXNjcmlwdGlvbiBSZWNpYmUgdW5hIGxpc3RhIGRlIHByb2R1Y3RvcyB5IHJldG9ybmEgbG9zIG1pc21vcyBwcm9kdWN0b3MgdGFudGFzIHZlY2VzIGNvbW8gdmFyaWFudGVzIHRlbmdhLlxyXG4gICAgICogY2FkYSBwcm9kdWN0byByZXRvcm5hZG8gdGVuZHLDoSB1bmEgw7puaWNhIHZhcmlhbnRlLlxyXG4gICAgICovXHJcbiAgICBnZXRQcm9kdWN0c1dpdGhVbmlxdWVWYXJpYW50ID0gKHByb2R1Y3RzLCB3aXRoT3B0aW9uOiBQYXJhbXNQcm9kdWN0c1dpdGhVbmlxdWVWYXJpYW50ID0geyB0eXBlOiAnY29sb3InLCBjb2RlOiAnY29sb3InLCBkZWZhdWx0Rmlyc3RPcHRpb246IGZhbHNlLCBjaGVja0lmU3RvY2s6IHRydWUgfSkgPT4ge1xyXG5cclxuICAgICAgICAhd2l0aE9wdGlvblsnY29kZSddICYmIHdpdGhPcHRpb25bJ3R5cGUnXSAmJiAod2l0aE9wdGlvblsnY29kZSddID0gd2l0aE9wdGlvblsndHlwZSddKSB8fCAhd2l0aE9wdGlvblsnY29kZSddICYmICh3aXRoT3B0aW9uWydjb2RlJ10gPSAnY29sb3InKVxyXG4gICAgICAgICF3aXRoT3B0aW9uWyd0eXBlJ10gJiYgd2l0aE9wdGlvblsnY29kZSddICYmICh3aXRoT3B0aW9uWyd0eXBlJ10gPSB3aXRoT3B0aW9uWydjb2RlJ10pIHx8ICF3aXRoT3B0aW9uWyd0eXBlJ10gJiYgKHdpdGhPcHRpb25bJ3R5cGUnXSA9ICdjb2xvcicpXHJcbiAgICAgICAgIXdpdGhPcHRpb24uaGFzT3duUHJvcGVydHkoJ2RlZmF1bHRGaXJzdE9wdGlvbicpICYmICh3aXRoT3B0aW9uWydkZWZhdWx0Rmlyc3RPcHRpb24nXSA9IGZhbHNlKVxyXG4gICAgICAgICF3aXRoT3B0aW9uLmhhc093blByb3BlcnR5KCdjaGVja0lmU3RvY2snKSAmJiAod2l0aE9wdGlvblsnY2hlY2tJZlN0b2NrJ10gPSB0cnVlKVxyXG5cclxuICAgICAgICBsZXQgcHJvZHVjdHNVbmlxdWVWYXJpYW50ID0gW107XHJcbiAgICAgICAgcHJvZHVjdHMuZm9yRWFjaChwcm9kdWN0ID0+IHtcclxuICAgICAgICAgICAgbGV0IHZhcmlhbnRzID0gWy4uLnByb2R1Y3Q/LnZhcmlhbnRzXTtcclxuICAgICAgICAgICAgbGV0IG9wdGlvbiA9IHByb2R1Y3Qub3B0aW9ucy5maW5kKG9wdCA9PiBvcHQudHlwZS50b0xvd2VyQ2FzZSgpID09PSB3aXRoT3B0aW9uLnR5cGUudG9Mb3dlckNhc2UoKSk7XHJcblxyXG4gICAgICAgICAgICBpZiAob3B0aW9uKSB7XHJcbiAgICAgICAgICAgICAgICBvcHRpb24udmFsdWVzLmZvckVhY2gob3B0aW9uVmFsdWUgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBtb2RpZmllZF9wcm9kdWN0ID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShwcm9kdWN0KSk7XHJcbiAgICAgICAgICAgICAgICAgICAgbW9kaWZpZWRfcHJvZHVjdC5vcHRpb25zLmZpbmQob3B0aW9uID0+IG9wdGlvbi50eXBlLnRvTG93ZXJDYXNlKCkgPT0gd2l0aE9wdGlvbi50eXBlLnRvTG93ZXJDYXNlKCkpLnZhbHVlcyA9IFt7IGNvZGU6IG9wdGlvblZhbHVlLmNvZGUsIG5hbWU6IG9wdGlvblZhbHVlLm5hbWUgfV07XHJcbiAgICAgICAgICAgICAgICAgICAgLy9idXNjbyB1bmEgdmFyaWFudGUgY29uIGVzZSBjb2RlIHBhcmEgYXNpZ25hcmxlIGxhIGxpc3RhIGRlIGltYWdlbmVzXHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IHZhcmlhbnRBdXggPSB2YXJpYW50cy5maW5kKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50ID0+ICgod2l0aE9wdGlvbi5jaGVja0lmU3RvY2sgJiYgdmFyaWFudC5zdG9jayA+IDApIHx8IHdpdGhPcHRpb24uY2hlY2tJZlN0b2NrID09IGZhbHNlKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgdmFyaWFudC5vcHRpb25zLmxlbmd0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgdmFyaWFudC5vcHRpb25zLnNvbWUob3AgPT4gKG9wLmhhc093blByb3BlcnR5KHdpdGhPcHRpb24uY29kZS50b0xvd2VyQ2FzZSgpKSB8fCBvcC5oYXNPd25Qcm9wZXJ0eSh3aXRoT3B0aW9uLmNvZGUudG9VcHBlckNhc2UoKSkpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgKG9wW3dpdGhPcHRpb24uY29kZS50b0xvd2VyQ2FzZSgpXSB8fCBvcFt3aXRoT3B0aW9uLmNvZGUudG9VcHBlckNhc2UoKV0pID09PSBvcHRpb25WYWx1ZS5jb2RlKVxyXG5cclxuICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICAgIHZhcmlhbnRBdXggJiYgcHJvZHVjdHNVbmlxdWVWYXJpYW50LnB1c2godGhpcy5wcm9kdWN0V2l0aFZhcmlhbnRWYWx1ZXMobW9kaWZpZWRfcHJvZHVjdCwgdmFyaWFudEF1eCwgb3B0aW9uVmFsdWUpKTtcclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAvKipcclxuICAgICAgICAgICAgICAgICAqIHNlIG1vZGlmaWNhIGVsIGNhc28gcGFyYSBjdWFuZG8gc2UgdG9tYSBlbCBwcmltZXIgYG9wdGlvbmAgZGVsIHByb2R1Y3RvIHBhcmFcclxuICAgICAgICAgICAgICAgICAqIGFybWFyIGxhIGxpc3RhIGRlIHByb2R1Y3RvcyBjb24gdmFyaWFudGVzLlxyXG4gICAgICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgICAgICBpZiAod2l0aE9wdGlvbi5kZWZhdWx0Rmlyc3RPcHRpb24gJiYgcHJvZHVjdC5vcHRpb25zPy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgZmlyc3RPcHRpb25zID0gcHJvZHVjdC5vcHRpb25zWzBdXHJcbiAgICAgICAgICAgICAgICAgICAgcHJvZHVjdC5vcHRpb25zWzBdLnZhbHVlcy5mb3JFYWNoKG9wdGlvblZhbHVlID0+IHtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtb2RpZmllZF9wcm9kdWN0ID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShwcm9kdWN0KSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVkX3Byb2R1Y3Qub3B0aW9ucy5maW5kKG9wdGlvbiA9PiBvcHRpb24udHlwZSA9PSBmaXJzdE9wdGlvbnMudHlwZSkudmFsdWVzID0gW3sgY29kZTogb3B0aW9uVmFsdWUuY29kZSwgbmFtZTogb3B0aW9uVmFsdWUubmFtZSB9XTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2YXJpYW50QXV4ID0gdmFyaWFudHMuZmluZCh2YXJpYW50ID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB2YXJpYW50Lm9wdGlvbnMuZmluZChlbGVtID0+IGVsZW1bZmlyc3RPcHRpb25zLmNvZGVdID09IG9wdGlvblZhbHVlLmNvZGUpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFyaWFudEF1eCAmJiB2YXJpYW50QXV4LmltYWdlcy5sZW5ndGggPT0gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudEF1eC5pbWFnZXMgPSBwcm9kdWN0LnBpY3R1cmVzZGVmYXVsdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAod2l0aE9wdGlvbi5jaGVja0lmU3RvY2spIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2YXJpYW50QXV4ICYmIHZhcmlhbnRBdXguc3RvY2sgPiAwKSA/IHByb2R1Y3RzVW5pcXVlVmFyaWFudC5wdXNoKHRoaXMucHJvZHVjdFdpdGhWYXJpYW50VmFsdWVzKG1vZGlmaWVkX3Byb2R1Y3QsIHZhcmlhbnRBdXgsIG9wdGlvblZhbHVlKSkgOiBudWxsO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudEF1eCAmJiBwcm9kdWN0c1VuaXF1ZVZhcmlhbnQucHVzaCh0aGlzLnByb2R1Y3RXaXRoVmFyaWFudFZhbHVlcyhtb2RpZmllZF9wcm9kdWN0LCB2YXJpYW50QXV4LCBvcHRpb25WYWx1ZSkpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcHJvZHVjdHNVbmlxdWVWYXJpYW50LnB1c2gocHJvZHVjdClcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgICAgIHJldHVybiBwcm9kdWN0c1VuaXF1ZVZhcmlhbnQubGVuZ3RoID4gMCA/IHByb2R1Y3RzVW5pcXVlVmFyaWFudCA6IHByb2R1Y3RzO1xyXG4gICAgfVxyXG5cclxuICAgIHByb2R1Y3RXaXRoVmFyaWFudFZhbHVlcyA9IChwcm9kdWN0LCB2YXJpYW50LCBvcHRpb25WYWx1ZSkgPT4ge1xyXG4gICAgICAgIHByb2R1Y3QucGljdHVyZXNkZWZhdWx0ID0gdmFyaWFudC5pbWFnZXNcclxuICAgICAgICBwcm9kdWN0LnZhcmlhbnRfaWQgPSB2YXJpYW50LmNvZGU7IC8vbG8gZGVqbyBhY2EgaGFzdGEgYXNlZ3VyYXJub3MgZGUgcXVlIG5vIHNlIGVzdGFiYSB1c2FuZG8gZW4gb3RyYSBwYXJ0ZS5cclxuICAgICAgICBwcm9kdWN0LnN0b2NrID0gdmFyaWFudC5zdG9jayB8fCAwOyAvL2xvIGRlam8gYWNhIGhhc3RhIGFzZWd1cmFybm9zIGRlIHF1ZSBubyBzZSBlc3RhYmEgdXNhbmRvIGVuIG90cmEgcGFydGUuXHJcbiAgICAgICAgcHJvZHVjdC5jdXJyZW50T3B0aW9uID0ge1xyXG4gICAgICAgICAgICAuLi5vcHRpb25WYWx1ZSxcclxuICAgICAgICAgICAgcHJvZHVjdENvZGU6IHByb2R1Y3QuaWQsXHJcbiAgICAgICAgICAgIHZhcmlhbnRDb2RlOiB2YXJpYW50LmNvZGUsXHJcbiAgICAgICAgICAgIHN0b2NrOiB2YXJpYW50LnN0b2NrIHx8IDAsXHJcbiAgICAgICAgICAgIGZpbmFsUHJpY2U6IHZhcmlhbnQuc2FsZXByaWNlIHx8IHZhcmlhbnQucHJpY2UgfHwgMCxcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHByb2R1Y3RcclxuICAgIH1cclxuXHJcblxyXG4gICAgY2xlYW5BbGxGaWx0ZXJzID0gKCkgPT4ge1xyXG4gICAgICAgIGxldCBmaW5hbF9maWx0ZXJzOiBGaWx0ZXJbXSA9IHRoaXMuZmlsdGVyc1N1YmplY3QudmFsdWU7XHJcbiAgICAgICAgZmluYWxfZmlsdGVycy5mb3JFYWNoKGZpbHRlciA9PiBmaWx0ZXIucmVzZXQoKSk7XHJcbiAgICAgICAgdGhpcy5maWx0ZXJzU3ViamVjdC5uZXh0KGZpbmFsX2ZpbHRlcnMpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlUHJvZHVjdHNGb3JGaWx0ZXIoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogVVRJTFMgQU5EIEZJTFRFUklORyAqL1xyXG5cclxuICAgIGlzV2FpdGluZyA9ICgpID0+IHRoaXMucGFnaW5hdGlvbi53YWl0aW5nO1xyXG4gICAgaXNGaW5pc2hlZCA9ICgpID0+IHRoaXMucGFnaW5hdGlvbi5pc0ZpbmlzaGVkKCk7XHJcblxyXG4gICAgZ2VuZXJhdGVGaW5hbEFwaSA9IChzZWFyY2hfdmFsdWU/KSA9PiB7XHJcbiAgICAgICAgbGV0IGV4dHJhX3BhcmFtcyA9ICcnO1xyXG4gICAgICAgIHRoaXMuZmlsdGVyc1N1YmplY3QudmFsdWUuZm9yRWFjaChmaWx0ZXIgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBleHRyYSA9IGZpbHRlci50b1VybFBhcmFtcygpO1xyXG4gICAgICAgICAgICBleHRyYS5zcGxpdCgnPScpWzFdICE9ICcnID8gZXh0cmFfcGFyYW1zICs9IGV4dHJhIDogbnVsbDtcclxuICAgICAgICB9KVxyXG4gICAgICAgIGlmIChzZWFyY2hfdmFsdWUpIGV4dHJhX3BhcmFtcyArPSAoJyZjcml0ZXJpYVtzZWFyY2hdW3R5cGVdPWNvbnRhaW5zJmNyaXRlcmlhW3NlYXJjaF1bdmFsdWVdPScgKyBzZWFyY2hfdmFsdWUpO1xyXG4gICAgICAgIGlmIChleHRyYV9wYXJhbXMgIT0gJycgJiYgIWV4dHJhX3BhcmFtcy5pbmNsdWRlcygnYXR0cmlidXRlQ29kZXMnKSkge1xyXG4gICAgICAgICAgICB0aGlzLm9wdGlvbnMuZ2V0QXR0cmlidXRlczIoZXh0cmFfcGFyYW1zKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvZHVjdHNGaWx0ZXJBcGkoZXh0cmFfcGFyYW1zKTtcclxuICAgIH1cclxuXHJcbiAgICBmaW5pc2hlZCA9ICgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0+IHRoaXMucGFnaW5hdGlvbi5maW5pc2hlZCQ7XHJcblxyXG4gICAgZ2V0VG90YWwgPSAoKSA9PiB0aGlzLnBhZ2luYXRpb24udG90YWw7XHJcblxyXG4gICAgcHJpdmF0ZSB1cGRhdGVQcmljZVJhbmdlRmlsdGVyKG1pbjogbnVtYmVyLCBtYXg6IG51bWJlcikge1xyXG4gICAgICAgIGNvbnN0IGZpbmFsX2ZpbHRlcnM6IEZpbHRlcltdID0gdGhpcy5maWx0ZXJzU3ViamVjdC52YWx1ZTtcclxuICAgICAgICBjb25zdCBwcmljZVJhbmdlRmlsdGVyID0gZmluYWxfZmlsdGVycy5maW5kKGZpbHRlciA9PiBmaWx0ZXIgaW5zdGFuY2VvZiBQcmljZVJhbmdlRmlsdGVyKTtcclxuXHJcbiAgICAgICAgaWYgKHByaWNlUmFuZ2VGaWx0ZXIpIHtcclxuICAgICAgICAgICAgKHByaWNlUmFuZ2VGaWx0ZXIgYXMgUHJpY2VSYW5nZUZpbHRlcikudXBkYXRlUHJpY2VzKG1pbiwgbWF4KTtcclxuICAgICAgICAgICAgdGhpcy5maWx0ZXJzU3ViamVjdC5uZXh0KGZpbmFsX2ZpbHRlcnMpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXX0=
290
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25nLWVhc3ljb21tZXJjZS8iLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlcy9wcm9kdWN0cy9wcm9kdWN0cy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLE9BQU8sRUFBVSxVQUFVLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLGVBQWUsRUFBYyxFQUFFLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDbkUsT0FBTyx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFJOUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDdEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRTlELE9BQU8seUJBQXlCLENBQUM7QUFFakMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBRzFFLGdDQUFnQztBQUNoQyxJQUFJLFFBQVEsR0FBUSxFQUFFLENBQUM7QUFJdkIsSUFBYSxlQUFlLEdBQTVCLE1BQWEsZUFBZTtJQThCeEIsWUFBb0IsVUFBNkIsRUFDckMsU0FBb0IsRUFDcEIsVUFBNkIsRUFDN0IsT0FBdUIsRUFDeEIsY0FBOEI7UUFKckIsZUFBVSxHQUFWLFVB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LE1BQU0sZ0JBQWdCLEdBQUcsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sWUFBWSxnQkFBZ0IsQ0FBQyxDQUFDO1FBRTFGLElBQUksZ0JBQWdCLEVBQUU7WUFDakIsZ0JBQXFDLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUM5RCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztTQUMzQztJQUNMLENBQUM7Q0FDSixDQUFBOztZQXRSbUMsaUJBQWlCO1lBQzFCLFNBQVM7WUFDUixpQkFBaUI7WUFDcEIsY0FBYztZQUNSLGNBQWM7O0FBbENoQyxlQUFlO0lBRDNCLFVBQVUsRUFBRTtHQUNBLGVBQWUsQ0FvVDNCO1NBcFRZLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgb2YsIFN1YnNjcmliZXIgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0ICdyeGpzL2FkZC9vcGVyYXRvci9tYXAnO1xyXG5pbXBvcnQgeyBDb25uZWN0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL2FwaS9jb25uZWN0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb25zdGFudHMgfSBmcm9tICcuLi8uLi9jb3JlLmNvbnN0cyc7XHJcbmltcG9ydCB7IFByb2R1Y3QgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3Byb2R1Y3QnO1xyXG5pbXBvcnQgeyBGaWx0ZXJPcHRpb25WYWx1ZSwgRmlsdGVyT3B0aW9uIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9jaG9vc2Utb3B0aW9ucy9maWx0ZXItb3B0aW9uJztcclxuaW1wb3J0IHsgRmlsdGVyVHlwZSwgRmlsdGVyRWxlbWVudCwgRGVmYXVsdEZpbHRlciB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvZmlsdGVyJztcclxuaW1wb3J0IHsgUGFnaW5hdGlvblNlcnZpY2UgfSBmcm9tICcuLi9wYWdpbmF0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDYXRlZ29yeUZpbHRlciB9IGZyb20gJy4uLy4uL2NsYXNzZXMvZmlsdGVycy9DYXRlZ29yeUZpbHRlcic7XHJcbmltcG9ydCB7IE9wdGlvbnNTZXJ2aWNlIH0gZnJvbSAnLi4vb3B0aW9ucy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXR0cmlidXRlc0ZpbHRlciB9IGZyb20gJy4uLy4uL2NsYXNzZXMvZmlsdGVycy9BdHRyaWJ1dGVzRmlsdGVyJztcclxuaW1wb3J0IHsgRHluYW1pY3NGaWx0ZXIgfSBmcm9tICcuLi8uLi9jbGFzc2VzL2ZpbHRlcnMvRGluYW15Y3NGaWx0ZXInO1xyXG5pbXBvcnQgeyBTb3J0RmlsdGVyIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9maWx0ZXJzL1NvcnRGaWx0ZXInO1xyXG5pbXBvcnQgeyBGaWx0ZXIgfSBmcm9tICcuLi8uLi9jbGFzc2VzL2ZpbHRlcnMvRmlsdGVyJztcclxuaW1wb3J0ICdyeGpzL2FkZC9vcGVyYXRvci9jYXRjaCc7XHJcbmltcG9ydCB7IFBhcmFtc1Byb2R1Y3RzV2l0aFVuaXF1ZVZhcmlhbnQgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3BhcmFtc0ludGVyZmFjZXMvcGFyYW1zUHJvZHVjdHNXaXRoVW5pcXVlVmFyaWFudCc7XHJcbmltcG9ydCB7IEZpbHRlcnNTZXJ2aWNlIH0gZnJvbSAnLi4vZmlsdGVycy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUHJpY2VSYW5nZUZpbHRlciB9IGZyb20gJy4uLy4uL2NsYXNzZXMvZmlsdGVycy9QcmljZVJhbmdlRmlsdGVyJztcclxuXHJcblxyXG4vLyBHZXQgcHJvZHVjdCBmcm9tIExvY2Fsc3RvcmFnZVxyXG5sZXQgcHJvZHVjdHM6IGFueSA9IHt9O1xyXG50eXBlIG9yZGVyX3R5cGUgPSAnYXNjJyB8ICdkZXNjJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFByb2R1Y3RzU2VydmljZSB7XHJcblxyXG4gICAgLyoqIEFUVFJJQlVURVMgKi9cclxuICAgIHByaXZhdGUgc3Vic2NyaXB0aW9uO1xyXG4gICAgcHJpdmF0ZSBwcm9kdWN0c1N1YmplY3Q6IEJlaGF2aW9yU3ViamVjdDxQcm9kdWN0W10+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChbXSk7XHJcbiAgICBwcml2YXRlIGZpbHRlcnNTdWJqZWN0OiBCZWhhdmlvclN1YmplY3Q8RmlsdGVyW10+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChbXSk7XHJcbiAgICBwcml2YXRlIGZpbHRlcnNJblZpZXdTdWJqZWN0OiBCZWhhdmlvclN1YmplY3Q8RmlsdGVyRWxlbWVudD4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KG51bGwpXHJcblxyXG4gICAgcHVibGljIGN1cnJlbmN5ID0gJ1VTRCc7XHJcbiAgICBwdWJsaWMgY2F0YWxvZ01vZGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHB1YmxpYyBwcm9kdWN0cyQgPSB0aGlzLnByb2R1Y3RzU3ViamVjdC5hc09ic2VydmFibGUoKTtcclxuICAgIHB1YmxpYyBmaWx0ZXJzJCA9IHRoaXMuZmlsdGVyc1N1YmplY3QuYXNPYnNlcnZhYmxlKCk7XHJcbiAgICBwdWJsaWMgZmlsdGVyc0luVmlldyQgPSB0aGlzLmZpbHRlcnNJblZpZXdTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuICAgIHByaXZhdGUgc2VhcmNoX3ZhbHVlOiBTdHJpbmc7XHJcblxyXG4gICAgLyoqIEFQSVMgKi9cclxuXHJcbiAgICBsYXRlc3RQcm9kdWN0c0J5Q2F0ZWdvcnlBcGkgPSAoY2F0ZWdvcnkpID0+ICdzaG9wLWFwaS8nICsgdGhpcy5jb25zdGFudHMuZ2V0Q2hhbm5lbCgpICsgJy90YXhvbi1wcm9kdWN0cy9ieS1jb2RlLycgKyBjYXRlZ29yeTtcclxuICAgIGxhdGVzdFByb2R1Y3RzQXBpID0gKCkgPT4gJ3Nob3AtYXBpLycgKyB0aGlzLmNvbnN0YW50cy5nZXRDaGFubmVsKCkgKyAnL3Byb2R1Y3QtbGF0ZXN0Lyc7XHJcbiAgICBzcGVjaWZpY1Byb2R1Y3RBcGkgPSAoY29kZSwgdmFyaWFudCkgPT4gJ3Nob3AtYXBpLycgKyB0aGlzLmNvbnN0YW50cy5nZXRDaGFubmVsKCkgKyAnL3Byb2R1Y3RzL2J5LWNvZGUvJyArICh2YXJpYW50ID8gJ3ZhcmlhbnQvJyA6ICcnKSArIGNvZGUgKyAnP2xvY2FsZT0nICsgdGhpcy5jb25zdGFudHMuZ2V0TG9jYWxlKCk7XHJcbiAgICBwcm9kdWN0c0J5U3BlY2lhbE1hcmtBcGkgPSAoc3BlY2lhbG1hcmspID0+ICdzaG9wLWFwaS8nICsgdGhpcy5jb25zdGFudHMuZ2V0VmVyc2lvbigpICsgJy8nICsgdGhpcy5jb25zdGFudHMuZ2V0Q2hhbm5lbCgpICsgJy9zcGVjaWFsLW1hcmtzLycgKyBzcGVjaWFsbWFyayArICcvcHJvZHVjdHMvJztcclxuICAgIHJlbGF0ZWRQcm9kdWN0c0FwaSA9IChrZXkpID0+ICdzaG9wLWFwaS8nICsgdGhpcy5jb25zdGFudHMuZ2V0Q2hhbm5lbCgpICsgJy9wcm9kdWN0cy9yZWxhdGVkL2J5LWNvZGUvJyArIGtleSArICc/bG9jYWxlPScgKyB0aGlzLmNvbnN0YW50cy5nZXRMb2NhbGUoKTtcclxuICAgIHByb2R1Y3RWYXJpYW50QXBpID0gKGNvZGUpID0+ICdzaG9wLWFwaS8nICsgdGhpcy5jb25zdGFudHMuZ2V0Q2hhbm5lbCgpICsgJy9wcm9kdWN0cy9ieS1jb2RlL3ZhcmlhbnQvJyArIGNvZGU7XHJcbiAgICBsYXRlc3RQcm9kdWN0c0J5QXR0cmlidXRlQXBpID0gKGF0dHJpYnV0ZSkgPT4gJ3Nob3AtYXBpLycgKyB0aGlzLmNvbnN0YW50cy5nZXRDaGFubmVsKCkgKyAnL3Byb2R1Y3RzL2J5LWF0dHJpYnV0ZS8nICsgYXR0cmlidXRlO1xyXG4gICAgcHJvZHVjdFNlYXJjaEFwaSA9ICgpID0+ICdzaG9wLWFwaS8nICsgdGhpcy5jb25zdGFudHMuZ2V0Q2hhbm5lbCgpICsgJy9wcm9kdWN0LXNlYXJjaC8nO1xyXG4gICAgY21zUmVsYXRlZFByb2R1Y3RzQXBpID0gKHBhZ2UpID0+ICdjbXMvJyArIHRoaXMuY29uc3RhbnRzLmdldExvY2FsZSgpICsgJy8nICsgdGhpcy5jb25zdGFudHMuZ2V0Q2hhbm5lbCgpICsgJy9wYWdlLycgKyBwYWdlICsgJy9wcm9kdWN0LXJlbGF0ZWQnO1xyXG4gICAgcHJvZHVjdHNGaWx0ZXJBcGkgPSAoZmlsdGVycyA9ICcnKSA9PiAnc2hvcC1hcGkvJyArIHRoaXMuY29uc3RhbnRzLmdldENoYW5uZWwoKSArICcvcHJvZHVjdC1zZWFyY2gvJyArICc/bG9jYWxlPScgKyB0aGlzLmNvbnN0YW50cy5nZXRMb2NhbGUoKSArIGZpbHRlcnM7XHJcbiAgICBzYXZlUHJvZHVjdFJldmlld3NBcGkgPSAoY29kZSkgPT4gJ3Nob3AtYXBpLycgKyB0aGlzLmNvbnN0YW50cy5nZXRDaGFubmVsKCkgKyAnL3Byb2R1Y3RzL2J5LWNvZGUvJyArIGNvZGUgKyAnL3Jldmlld3MnO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgY29ubmVjdGlvbjogQ29ubmVjdGlvblNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBjb25zdGFudHM6IENvbnN0YW50cyxcclxuICAgICAgICBwcml2YXRlIHBhZ2luYXRpb246IFBhZ2luYXRpb25TZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgb3B0aW9uczogT3B0aW9uc1NlcnZpY2UsXHJcbiAgICAgICAgcHVibGljIGZpbHRlcnNTZXJ2aWNlOiBGaWx0ZXJzU2VydmljZSkge1xyXG4gICAgICAgIC8vIFN1c2NyaWJpcnNlIGEgbG9zIGNhbWJpb3MgZW4gZWwgcmFuZ28gZGUgcHJlY2lvc1xyXG4gICAgICAgIHRoaXMucGFnaW5hdGlvbi5wcmljZVJhbmdlJC5zdWJzY3JpYmUocmFuZ2UgPT4ge1xyXG4gICAgICAgICAgICBsZXQgbWluID0gTWF0aC5mbG9vcihyYW5nZS5wcmljZV9taW4pO1xyXG4gICAgICAgICAgICBsZXQgbWF4ID0gTWF0aC5jZWlsKHJhbmdlLnByaWNlX21heCk7XHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlUHJpY2VSYW5nZUZpbHRlcihtaW4sIG1heCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIEZVTkNUSU9OUyAqL1xyXG5cclxuICAgIGdldExhdGVzdFByb2R1Y3RzID0gKGxpbWl0OiBzdHJpbmcgPSAnMCcpOiBPYnNlcnZhYmxlPGFueT4gPT5cclxuICAgICAgICBsaW1pdCA9PSAnMCcgPyB0aGlzLmNvbm5lY3Rpb24uZ2V0KHRoaXMubGF0ZXN0UHJvZHVjdHNBcGkoKSkgOlxyXG4gICAgICAgICAgICB0aGlzLmNvbm5lY3Rpb24uZ2V0V2l0aExpbWl0KHRoaXMubGF0ZXN0UHJvZHVjdHNBcGkoKSwgbGltaXQpO1xyXG5cclxuICAgIGdldExhdGVzdFByb2R1Y3RzQnlDYXRlZ29yeSA9IChjYXRlZ29yeTogc3RyaW5nLCBsaW1pdDogc3RyaW5nID0gJzAnKTogT2JzZXJ2YWJsZTxhbnk+ID0+XHJcbiAgICAgICAgbGltaXQgPT0gJzAnID8gdGhpcy5jb25uZWN0aW9uLmdldCh0aGlzLmxhdGVzdFByb2R1Y3RzQnlDYXRlZ29yeUFwaShjYXRlZ29yeSkpIDpcclxuICAgICAgICAgICAgdGhpcy5jb25uZWN0aW9uLmdldFdpdGhMaW1pdCh0aGlzLmxhdGVzdFByb2R1Y3RzQnlDYXRlZ29yeUFwaShjYXRlZ29yeSksIGxpbWl0KTtcclxuXHJcbiAgICBnZXRQYWdpbmF0ZWQgPSAobGltaXQ6IHN0cmluZywgcGFnZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+ID0+XHJcbiAgICAgICAgdGhpcy5jb25uZWN0aW9uLmdldFBhZ2luYXRlZCh0aGlzLmxhdGVzdFByb2R1Y3RzQXBpKCksIGxpbWl0LCBwYWdlKTtcclxuXHJcbiAgICBnZXRTcGVjaWZpY1Byb2R1Y3QgPSAoY29kZTogc3RyaW5nLCB2YXJpYW50OiBib29sZWFuKTogT2JzZXJ2YWJsZTxhbnk+ID0+XHJcbiAgICAgICAgdGhpcy5jb25uZWN0aW9uLmdldCh0aGlzLnNwZWNpZmljUHJvZHVjdEFwaShjb2RlLCB2YXJpYW50KSk7XHJcblxyXG4gICAgZ2V0UHJvZHVjdHNCeVNwZWNpYWxNYXJrID0gKHNwZWNpYWxtYXJrLCBsaW1pdDogc3RyaW5nID0gJzAnKTogT2JzZXJ2YWJsZTxhbnk+ID0+XHJcbiAgICAgICAgbGltaXQgPT0gJzAnID8gdGhpcy5jb25uZWN0aW9uLmdldCh0aGlzLnByb2R1Y3RzQnlTcGVjaWFsTWFya0FwaShzcGVjaWFsbWFyaykpIDpcclxuICAgICAgICAgICAgdGhpcy5jb25uZWN0aW9uLmdldFdpdGhMaW1pdCh0aGlzLnByb2R1Y3RzQnlTcGVjaWFsTWFya0FwaShzcGVjaWFsbWFyayksIGxpbWl0KTtcclxuXHJcbiAgICBnZXRSZWxhdGVkUHJvZHVjdHMgPSAoa2V5OiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4gPT5cclxuICAgICAgICB0aGlzLmNvbm5lY3Rpb24uZ2V0KHRoaXMucmVsYXRlZFByb2R1Y3RzQXBpKGtleSkpO1xyXG5cclxuICAgIGdldFByb2R1Y3RWYXJpYW50ID0gKGNvZGU6IHN0cmluZykgPT5cclxuICAgICAgICB0aGlzLmNvbm5lY3Rpb24uZ2V0KHRoaXMucHJvZHVjdFZhcmlhbnRBcGkoY29kZSkpO1xyXG5cclxuICAgIGdldGxhdGVzdFByb2R1Y3RzQnlBdHRyaWJ1dGUgPSAoYXR0cmlidXRlKSA9PlxyXG4gICAgICAgIHRoaXMuY29ubmVjdGlvbi5nZXQodGhpcy5sYXRlc3RQcm9kdWN0c0J5QXR0cmlidXRlQXBpKGF0dHJpYnV0ZSkpO1xyXG5cclxuICAgIGdldFNlYXJjaGVkUHJvZHVjdHMgPSAoY29udGVudCkgPT4ge1xyXG4gICAgICAgIHRoaXMucHJvZHVjdHNTdWJqZWN0Lm5leHQoW10pO1xyXG4gICAgICAgIHRoaXMucGFnaW5hdGlvbi5pbml0aWFsaXplKHRoaXMuZ2VuZXJhdGVGaW5hbEFwaShjb250ZW50KSwgcHJvZHVjdHM/LmxpbWl0IHx8IDgpO1xyXG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdGhpcy5wYWdpbmF0aW9uLm5leHQuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICByZXMgPT4gdGhpcy5wcm9kdWN0c1N1YmplY3QubmV4dChyZXMpLFxyXG4gICAgICAgICAgICBlcnIgPT4gdGhpcy5wcm9kdWN0c1N1YmplY3QubmV4dChudWxsKVxyXG4gICAgICAgIClcclxuICAgIH1cclxuXHJcbiAgICBnZXRDTVNSZWxhdGVkUHJvZHVjdHMgPSAocGFnZSkgPT5cclxuICAgICAgICB0aGlzLmNvbm5lY3Rpb24uZ2V0KHRoaXMuY21zUmVsYXRlZFByb2R1Y3RzQXBpKHBhZ2UpKS5jYXRjaCgoZXJyKSA9PiBvZihudWxsKSk7XHJcblxyXG4gICAgZ2V0UHJvZHVjdHNTZWFyY2hlZCA9IChzZWFyY2hfdmFsdWUsIGZpbHRlcnM/OiBGaWx0ZXJUeXBlW10pID0+IHtcclxuICAgICAgICB0aGlzLmdldFByb2R1Y3RzRm9yRmlsdGVyKG51bGwsIGZpbHRlcnMsIHNlYXJjaF92YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAZGVzY3JpcHRpb24gR3VhcmRhIGxhIHJlc2XDsWEgZGUgdW4gcHJvZHVjdG8uXHJcbiAgICAgKiBAcGFyYW0gY29kZVxyXG4gICAgICogQHBhcmFtIGZvcm1fZGF0YVxyXG4gICAgICogQHJldHVybnNcclxuICAgICAqL1xyXG4gICAgc2F2ZVJldmlld3MgPSAoY29kZTogc3RyaW5nLCBmb3JtX2RhdGE6IGFueSkgPT4gdGhpcy5jb25uZWN0aW9uLnBvc3QodGhpcy5zYXZlUHJvZHVjdFJldmlld3NBcGkoY29kZSksIGZvcm1fZGF0YSlcclxuXHJcbiAgICAvKipcclxuICAgICAqIEBwYXJhbSBwcm9kdWN0c1xyXG4gICAgICogQHBhcmFtIGZpbHRlcnNcclxuICAgICAqIEBwYXJhbSBzZWFyY2hfdmFsdWVcclxuICAgICAqIEBwYXJhbSBkZWZhdWx0RmlsdGVyc1xyXG4gICAgICovXHJcbiAgICBnZXRQcm9kdWN0c0ZvckZpbHRlciA9IChwcm9kdWN0cz86IHsgdHlwZT86IHN0cmluZywgdmFsdWU/OiBzdHJpbmcsIGxpbWl0PzogbnVtYmVyLCBsYXRlc3Q/OiBib29sZWFuIH0sIGZpbHRlcnM/OiBGaWx0ZXJUeXBlW10sIHNlYXJjaF92YWx1ZT8sIGRlZmF1bHRGaWx0ZXJzPzogRGVmYXVsdEZpbHRlcltdKSA9PiB7XHJcbiAgICAgICAgdGhpcy5wcm9kdWN0c1N1YmplY3QubmV4dChbXSk7XHJcbiAgICAgICAgc2VhcmNoX3ZhbHVlID8gdGhpcy5zZWFyY2hfdmFsdWUgPSBzZWFyY2hfdmFsdWUgOiB0aGlzLnNlYXJjaF92YWx1ZSA9ICcnO1xyXG4gICAgICAgIGZpbHRlcnMgJiYgdGhpcy5zZXRGaWx0ZXJzKHByb2R1Y3RzLCBmaWx0ZXJzLCBkZWZhdWx0RmlsdGVycyk7XHJcbiAgICAgICAgdGhpcy5wYWdpbmF0aW9uLmluaXRpYWxpemUodGhpcy5nZW5lcmF0ZUZpbmFsQXBpKHNlYXJjaF92YWx1ZSksIHByb2R1Y3RzPy5saW1pdCB8fCA4KTtcclxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbiAmJiB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdGhpcy5wYWdpbmF0aW9uLm5leHQuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICByZXMgPT4gdGhpcy5wcm9kdWN0c1N1YmplY3QubmV4dChyZXMpLFxyXG4gICAgICAgICAgICBlcnIgPT4gdGhpcy5wcm9kdWN0c1N1YmplY3QubmV4dChudWxsKVxyXG4gICAgICAgIClcclxuICAgICAgICB0aGlzLmZpbHRlcnNTdWJqZWN0LnZhbHVlLnNvbWUoZmlsdGVyID0+IGZpbHRlci50eXBlKCkgPT0gJ2R5bmFtaWNzJylcclxuICAgICAgICAgICAgPyB0aGlzLnBhZ2luYXRpb24uZ2V0TmV4dCh0aGlzLnVwZGF0ZUR5bmFtaWNGaWx0ZXJzKVxyXG4gICAgICAgICAgICA6IHRoaXMucGFnaW5hdGlvbi5nZXROZXh0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0RmlsdGVycyA9IChwcm9kdWN0cywgZmlsdGVyczogRmlsdGVyVHlwZVtdLCBkZWZhdWx0RmlsdGVycz86IERlZmF1bHRGaWx0ZXJbXSkgPT4ge1xyXG4gICAgICAgIGxldCBmaW5hbF9maWx0ZXJzOiBGaWx0ZXJbXSA9IFtdO1xyXG4gICAgICAgIGlmIChmaWx0ZXJzPy5pbmNsdWRlcygnYWxsJykpIGZpbHRlcnMgPSBbJ2F0dHJpYnV0ZXMnLCAnY2F0ZWdvcnknLCAnZHluYW1pY3MnLCAncHJpY2VfcmFuZ2UnLCAnc29ydCddO1xyXG4gICAgICAgIGZpbHRlcnM/LmZvckVhY2goZmlsdGVyID0+IGZpbmFsX2ZpbHRlcnMucHVzaCh0aGlzLmdldEZpbHRlckluc3RhbmNlKGZpbHRlciwgcHJvZHVjdHMpKSk7XHJcbiAgICAgICAgZGVmYXVsdEZpbHRlcnM/LmZvckVhY2goZmlsdGVyRGVmYXVsdCA9PiB7XHJcbiAgICAgICAgICAgIGxldCBmaWx0ZXIgPSBmaW5hbF9maWx0ZXJzLmZpbmQoZmlsdGVyID0+IGZpbHRlci50eXBlKCkgPT0gZmlsdGVyRGVmYXVsdC5maWx0ZXJfdHlwZSk7XHJcbiAgICAgICAgICAgIGZpbHRlciAmJiBmaWx0ZXJEZWZhdWx0LmNvZGVzLmZvckVhY2godmFsdWUgPT4gZmlsdGVyLnNldFNlbGVjdGVkKHZhbHVlKSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgICB0aGlzLmZpbHRlcnNTdWJqZWN0Lm5leHQoZmluYWxfZmlsdGVycyk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0RmlsdGVySW5zdGFuY2UgPSAoZmlsdGVyOiBzdHJpbmcsIHByb2R1Y3RzPyk6IEZpbHRlciA9PiB7XHJcbiAgICAgICAgbGV0IGluc3RhbmNlOiBGaWx0ZXI7XHJcbiAgICAgICAgc3dpdGNoIChmaWx0ZXIpIHtcclxuICAgICAgICAgICAgY2FzZSAnY2F0ZWdvcnknOiBpbnN0YW5jZSA9IG5ldyBDYXRlZ29yeUZpbHRlcih0aGlzLm9wdGlvbnMuY2F0ZWdvcmllcywgdGhpcy5vcHRpb25zLmdlbmVyYXRlTWVudSwgcHJvZHVjdHMgPyAocHJvZHVjdHMudHlwZSA9PSAnY2F0ZWdvcmllcycgJiYgcHJvZHVjdHMudmFsdWUpIDogbnVsbCk7IGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdhdHRyaWJ1dGVzJzogaW5zdGFuY2UgPSBuZXcgQXR0cmlidXRlc0ZpbHRlcih0aGlzLm9wdGlvbnMuYXR0cmlidXRlcywgdGhpcy5vcHRpb25zLmdlbmVyYXRlTWVudSwgcHJvZHVjdHMgPyAocHJvZHVjdHMudHlwZSA9PSAnYXR0cmlidXRlcycgJiYgcHJvZHVjdHMudmFsdWUpIDogbnVsbCk7IGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdzb3J0JzogaW5zdGFuY2UgPSBuZXcgU29ydEZpbHRlcih0aGlzLmNvbnN0YW50cyk7IGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdkeW5hbWljcyc6IGluc3RhbmNlID0gbmV3IER5bmFtaWNzRmlsdGVyKCk7IGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdwcmljZV9yYW5nZSc6IGluc3RhbmNlID0gbmV3IFByaWNlUmFuZ2VGaWx0ZXIoKTsgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBpbnN0YW5jZTtcclxuICAgIH1cclxuXHJcbiAgICB1cGRhdGVEeW5hbWljRmlsdGVycyA9IChyZXF1ZXN0KSA9PiB7XHJcbiAgICAgICAgaWYgKCFyZXF1ZXN0Lm9wdGlvbnMpIHJldHVybjtcclxuICAgICAgICBsZXQgZmluYWxfZmlsdGVyczogRmlsdGVyW10gPSB0aGlzLmZpbHRlcnNTdWJqZWN0LnZhbHVlO1xyXG4gICAgICAgIGxldCBpbmRleCA9IGZpbmFsX2ZpbHRlcnMuZmluZEluZGV4KGZpbHRlciA9PiBmaWx0ZXIudHlwZSgpID09ICdkeW5hbWljcycpO1xyXG4gICAgICAgIGluZGV4ICYmIGZpbmFsX2ZpbHRlcnNbaW5kZXhdLnNldENvbnRlbnQocmVxdWVzdC5vcHRpb25zKTtcclxuICAgICAgICB0aGlzLmZpbHRlcnNTdWJqZWN0Lm5leHQoZmluYWxfZmlsdGVycyk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0TmV4dCA9ICgpOiBib29sZWFuID0+ICF0aGlzLnBhZ2luYXRpb24uaXNGaW5pc2hlZCgpICYmIHRoaXMucGFnaW5hdGlvbi5nZXROZXh0KCk7XHJcblxyXG4gICAgc2V0RmlsdGVyU2VsZWN0ZWQgPSAoZmlsdGVyT2JqOiBGaWx0ZXIsIGZpbHRlckVsZW06IEZpbHRlckVsZW1lbnQpID0+IHtcclxuICAgICAgICBsZXQgZmluYWxfZmlsdGVyczogRmlsdGVyW10gPSB0aGlzLmZpbHRlcnNTdWJqZWN0LnZhbHVlO1xyXG4gICAgICAgIGlmIChmaWx0ZXJPYmoudHlwZSgpICE9PSAncHJpY2VfcmFuZ2UnKSB7XHJcbiAgICAgICAgICAgIGxldCBpbmRleCA9IGZpbmFsX2ZpbHRlcnMuZmluZEluZGV4KGZpbHRlciA9PiBmaWx0ZXIudHlwZSgpID09IGZpbHRlck9iai50eXBlKCkpO1xyXG4gICAgICAgICAgICBmaW5hbF9maWx0ZXJzW2luZGV4XS5zZXRTZWxlY3RlZChmaWx0ZXJFbGVtLCBmaWx0ZXJFbGVtLnZhbHVlKTtcclxuICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAqIEBkZXNjcmlwdGlvbiBFc3RhIHBhcnRlIGRlbCBjb2RpZ28gbG8gcXVlIGhhY2UgZXMgY2hlcXVlYXIgc2Ugc2VhIHVuIGZpbHRybyBkZSBsYSB2aXN0YSwgcGFyYSBjYXJnYXIgZWwgb2JzZXJ2YWJsZVxyXG4gICAgICAgICAgICAgKiBjb24gbG9zIGRhdG9zIGRlbCBtaXNtby4gRGUgbG8gY29udHJhcmlvIHNlIGxvIGNhcmdhIGNvbiBudWxsLiBFc3RlIG9ic2VydmFibGUgZXN0YSBoZWNobyBwYXJhIHF1ZSBlbiBjb2xsZWN0aW9uIHNlXHJcbiAgICAgICAgICAgICAqIHB1ZWRhIGRldGVjdGFyIHNpIGVzIG5lY2VzYXJpbyBoYWNlciB1biBmaWx0cmFkbyBlbiBsYSB2aXN0YS5cclxuICAgICAgICAgICAgICogQWNsYXJhY2nDs246IGhhY2VyIGVzdGUgdGlwbyBkZSBmaWx0cmFkb3MgZXN0YSBtYWwsIHNpIGNyZWNlIG11Y2hvIGxhIHBlcmZvcm1hbmNlIHZhIGEgYmFqYXIsIGxvIGlkZWFsIHNlcmlhIHF1ZVxyXG4gICAgICAgICAgICAgKiBkZXNkZSBiYWNrZW5kIHNlIHB1ZWRhbiBwcm92ZWVyIGVuZHBvaW50cyBwYXJhIHBvZGVyIGZpbHRyYXIgc29icmUgbG9zIGNhbXBvcyBkZXNlYWRvcyB5IG1hbnRlbmVyIGxhIG1pc21hIGxvZ2ljYSBjb25cclxuICAgICAgICAgICAgICogbGEgcXVlIHNlIHZpZW5lIHRyYWJhamFuZG8uXHJcbiAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgIChmaWx0ZXJFbGVtLm5vVXJsICE9IHVuZGVmaW5lZCAmJiBmaWx0ZXJFbGVtLm5vVXJsKSA/IHRoaXMuZmlsdGVyc0luVmlld1N1YmplY3QubmV4dChmaWx0ZXJFbGVtKSA6IHRoaXMuZmlsdGVyc0luVmlld1N1YmplY3QubmV4dChudWxsKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuZmlsdGVyc1N1YmplY3QubmV4dChmaW5hbF9maWx0ZXJzKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZVByb2R1Y3RzRm9yRmlsdGVyKCk7XHJcbiAgICB9XHJcblxyXG4gICAgdXBkYXRlUHJvZHVjdHNGb3JGaWx0ZXIgPSAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5wYWdpbmF0aW9uLndhaXRpbmcgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMucHJvZHVjdHNTdWJqZWN0Lm5leHQoW10pO1xyXG4gICAgICAgIHRoaXMucGFnaW5hdGlvbi5pbml0aWFsaXplKHRoaXMuc2VhcmNoX3ZhbHVlID8gdGhpcy5nZW5lcmF0ZUZpbmFsQXBpKHRoaXMuc2VhcmNoX3ZhbHVlKSA6IHRoaXMuZ2VuZXJhdGVGaW5hbEFwaSgpKTtcclxuICAgICAgICB0aGlzLnBhZ2luYXRpb24uZ2V0TmV4dCgpO1xyXG4gICAgICAgIC8vIFNJIFNFIEFDVFVBTElaQVJBTiBMT1MgRklMVFJPUyBESU5BTUlDT1MgRU4gRUwgRlVUVVJPXHJcbiAgICAgICAgLy8gbGV0IGZpbHRlcnNPYmogPSB0aGlzLmZpbHRlcnNTdWJqZWN0LnZhbHVlO1xyXG4gICAgICAgIC8vIGZpbHRlcnNPYmouc29tZShmaWx0ZXIgPT4gZmlsdGVyLnR5cGUoKSA9PSAnZHluYW1pY3MnKVxyXG4gICAgICAgIC8vICAgICAgPyB0aGlzLnBhZ2luYXRpb24uZ2V0TmV4dCh0aGlzLnVwZGF0ZUR5bmFtaWNGaWx0ZXJzKVxyXG4gICAgICAgIC8vICAgICAgOiB0aGlzLnBhZ2luYXRpb24uZ2V0TmV4dCgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBwcm9kdWN0cyAgQXJyYXkuIExpc3RhIGRlIHByb2R1Y3Rvcy5cclxuICAgICAqIEBwYXJhbSB3aXRoT3B0aW9uICd0eXBlJyB0aXBvIGRlIG9wY2nDs24sIGNvZGU6IGPDs2RpZ28gZGUgbGEgb3BjacOzbi4gJ2RlZmF1bHRGaXJzdE9wdGlvbic6IGVuIGNhc28gZGUgcXVlIG5vIHNlIHB1ZWRhIGRlc2RvYmxhciBwb3IgbGEgb3BjacOzbiBpbmRpY2FkYSBzaSBlbCB2YWxvciBlcyB2ZXJkYWRlcm8gc2UgaW50ZW50YXJhIGRlc2RvYmxhciBwb3IgbGEgcHJpbWVyYSBvcGNpw7NuIGFzb2NpYWRhIGFsIHByb2R1Y3RvLlxyXG4gICAgICogJ2NoZWNrSWZTdG9jayc6IGVuIGNhc28gZGUgcXVlIGVzdGEgdmFsb3Igc2VhIHZlcmRhZGVybyBzZSByZWFsaXphIHVuIGNvbnRyb2wgZGUgcXVlIGxhIHZhcmlhbnRlcyBjdWVudGVuIGNvbiBzdG9jayBwYXJhIHNlciB1biBwcm9kdWN0byBkZXNkb2JsYWRvIHBvciBsYSB2YXJpYW50ZSwgc2kgZWwgdmFsb3IgZXMgZmFsc28gbm8gc2UgcmVhbGl6YSBkaWNobyBjb250cm9sIHkgZWwgcHJvZHVjdG8gc2UgZGVzZG9ibGFyYSBjb24gc3RvY2sgZW4gMC5cclxuICAgICAqIEByZXR1cm5zIGFycmVnbG8gY29uIGxvcyBwcm9kdWN0b3MgZGVzZG9ibGFkb3MgcG9yIGxhIG9wY2nDs24gc29saWNpdGFkYS5cclxuICAgICAqIChvcGNpw7NuIHBvciBkZWZlY3RvIHF1ZSBzZSBpbnRlbnRhIGhhY2VyIGVsIGRlc2RvYmxhbWllbnRvICdjb2xvcicsIG8gYmllbiBzaSBlbiBsZSBwYXLDoW1ldHJvIHdpdGhPcHRpb24gZWwgYXRyaWJ1dG8gJ2RlZmF1bHRGaXJzdE9wdGlvbicgZXMgdmVyZGFkZXJvIHNlIGRlc2RvYmxhIHBvciBsYSBwcmltZXJhIG9wY2nDs24gYXNvY2lhZGEgYWwgcHJvZHVjdG8gKVxyXG4gICAgICpcclxuICAgICAqIEBkZXNjcmlwdGlvbiBSZWNpYmUgdW5hIGxpc3RhIGRlIHByb2R1Y3RvcyB5IHJldG9ybmEgbG9zIG1pc21vcyBwcm9kdWN0b3MgdGFudGFzIHZlY2VzIGNvbW8gdmFyaWFudGVzIHRlbmdhLlxyXG4gICAgICogY2FkYSBwcm9kdWN0byByZXRvcm5hZG8gdGVuZHLDoSB1bmEgw7puaWNhIHZhcmlhbnRlLlxyXG4gICAgICovXHJcbiAgICBnZXRQcm9kdWN0c1dpdGhVbmlxdWVWYXJpYW50ID0gKHByb2R1Y3RzLCB3aXRoT3B0aW9uOiBQYXJhbXNQcm9kdWN0c1dpdGhVbmlxdWVWYXJpYW50ID0geyB0eXBlOiAnY29sb3InLCBjb2RlOiAnY29sb3InLCBkZWZhdWx0Rmlyc3RPcHRpb246IGZhbHNlLCBjaGVja0lmU3RvY2s6IHRydWUgfSkgPT4ge1xyXG5cclxuICAgICAgICAhd2l0aE9wdGlvblsnY29kZSddICYmIHdpdGhPcHRpb25bJ3R5cGUnXSAmJiAod2l0aE9wdGlvblsnY29kZSddID0gd2l0aE9wdGlvblsndHlwZSddKSB8fCAhd2l0aE9wdGlvblsnY29kZSddICYmICh3aXRoT3B0aW9uWydjb2RlJ10gPSAnY29sb3InKVxyXG4gICAgICAgICF3aXRoT3B0aW9uWyd0eXBlJ10gJiYgd2l0aE9wdGlvblsnY29kZSddICYmICh3aXRoT3B0aW9uWyd0eXBlJ10gPSB3aXRoT3B0aW9uWydjb2RlJ10pIHx8ICF3aXRoT3B0aW9uWyd0eXBlJ10gJiYgKHdpdGhPcHRpb25bJ3R5cGUnXSA9ICdjb2xvcicpXHJcbiAgICAgICAgIXdpdGhPcHRpb24uaGFzT3duUHJvcGVydHkoJ2RlZmF1bHRGaXJzdE9wdGlvbicpICYmICh3aXRoT3B0aW9uWydkZWZhdWx0Rmlyc3RPcHRpb24nXSA9IGZhbHNlKVxyXG4gICAgICAgICF3aXRoT3B0aW9uLmhhc093blByb3BlcnR5KCdjaGVja0lmU3RvY2snKSAmJiAod2l0aE9wdGlvblsnY2hlY2tJZlN0b2NrJ10gPSB0cnVlKVxyXG5cclxuICAgICAgICBsZXQgcHJvZHVjdHNVbmlxdWVWYXJpYW50ID0gW107XHJcbiAgICAgICAgcHJvZHVjdHMuZm9yRWFjaChwcm9kdWN0ID0+IHtcclxuICAgICAgICAgICAgbGV0IHZhcmlhbnRzID0gWy4uLnByb2R1Y3Q/LnZhcmlhbnRzXTtcclxuICAgICAgICAgICAgbGV0IG9wdGlvbiA9IHByb2R1Y3Qub3B0aW9ucy5maW5kKG9wdCA9PiBvcHQudHlwZS50b0xvd2VyQ2FzZSgpID09PSB3aXRoT3B0aW9uLnR5cGUudG9Mb3dlckNhc2UoKSk7XHJcblxyXG4gICAgICAgICAgICBpZiAob3B0aW9uKSB7XHJcbiAgICAgICAgICAgICAgICBvcHRpb24udmFsdWVzLmZvckVhY2gob3B0aW9uVmFsdWUgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBtb2RpZmllZF9wcm9kdWN0ID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShwcm9kdWN0KSk7XHJcbiAgICAgICAgICAgICAgICAgICAgbW9kaWZpZWRfcHJvZHVjdC5vcHRpb25zLmZpbmQob3B0aW9uID0+IG9wdGlvbi50eXBlLnRvTG93ZXJDYXNlKCkgPT0gd2l0aE9wdGlvbi50eXBlLnRvTG93ZXJDYXNlKCkpLnZhbHVlcyA9IFt7IGNvZGU6IG9wdGlvblZhbHVlLmNvZGUsIG5hbWU6IG9wdGlvblZhbHVlLm5hbWUgfV07XHJcbiAgICAgICAgICAgICAgICAgICAgLy9idXNjbyB1bmEgdmFyaWFudGUgY29uIGVzZSBjb2RlIHBhcmEgYXNpZ25hcmxlIGxhIGxpc3RhIGRlIGltYWdlbmVzXHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IHZhcmlhbnRBdXggPSB2YXJpYW50cy5maW5kKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50ID0+ICgod2l0aE9wdGlvbi5jaGVja0lmU3RvY2sgJiYgdmFyaWFudC5zdG9jayA+IDApIHx8IHdpdGhPcHRpb24uY2hlY2tJZlN0b2NrID09IGZhbHNlKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgdmFyaWFudC5vcHRpb25zLmxlbmd0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgdmFyaWFudC5vcHRpb25zLnNvbWUob3AgPT4gKG9wLmhhc093blByb3BlcnR5KHdpdGhPcHRpb24uY29kZS50b0xvd2VyQ2FzZSgpKSB8fCBvcC5oYXNPd25Qcm9wZXJ0eSh3aXRoT3B0aW9uLmNvZGUudG9VcHBlckNhc2UoKSkpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgKG9wW3dpdGhPcHRpb24uY29kZS50b0xvd2VyQ2FzZSgpXSB8fCBvcFt3aXRoT3B0aW9uLmNvZGUudG9VcHBlckNhc2UoKV0pID09PSBvcHRpb25WYWx1ZS5jb2RlKVxyXG5cclxuICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICAgIHZhcmlhbnRBdXggJiYgcHJvZHVjdHNVbmlxdWVWYXJpYW50LnB1c2godGhpcy5wcm9kdWN0V2l0aFZhcmlhbnRWYWx1ZXMobW9kaWZpZWRfcHJvZHVjdCwgdmFyaWFudEF1eCwgb3B0aW9uVmFsdWUpKTtcclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAvKipcclxuICAgICAgICAgICAgICAgICAqIHNlIG1vZGlmaWNhIGVsIGNhc28gcGFyYSBjdWFuZG8gc2UgdG9tYSBlbCBwcmltZXIgYG9wdGlvbmAgZGVsIHByb2R1Y3RvIHBhcmFcclxuICAgICAgICAgICAgICAgICAqIGFybWFyIGxhIGxpc3RhIGRlIHByb2R1Y3RvcyBjb24gdmFyaWFudGVzLlxyXG4gICAgICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgICAgICBpZiAod2l0aE9wdGlvbi5kZWZhdWx0Rmlyc3RPcHRpb24gJiYgcHJvZHVjdC5vcHRpb25zPy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgZmlyc3RPcHRpb25zID0gcHJvZHVjdC5vcHRpb25zWzBdXHJcbiAgICAgICAgICAgICAgICAgICAgcHJvZHVjdC5vcHRpb25zWzBdLnZhbHVlcy5mb3JFYWNoKG9wdGlvblZhbHVlID0+IHtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtb2RpZmllZF9wcm9kdWN0ID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShwcm9kdWN0KSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlmaWVkX3Byb2R1Y3Qub3B0aW9ucy5maW5kKG9wdGlvbiA9PiBvcHRpb24udHlwZSA9PSBmaXJzdE9wdGlvbnMudHlwZSkudmFsdWVzID0gW3sgY29kZTogb3B0aW9uVmFsdWUuY29kZSwgbmFtZTogb3B0aW9uVmFsdWUubmFtZSB9XTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2YXJpYW50QXV4ID0gdmFyaWFudHMuZmluZCh2YXJpYW50ID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB2YXJpYW50Lm9wdGlvbnMuZmluZChlbGVtID0+IGVsZW1bZmlyc3RPcHRpb25zLmNvZGVdID09IG9wdGlvblZhbHVlLmNvZGUpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFyaWFudEF1eCAmJiB2YXJpYW50QXV4LmltYWdlcy5sZW5ndGggPT0gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudEF1eC5pbWFnZXMgPSBwcm9kdWN0LnBpY3R1cmVzZGVmYXVsdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAod2l0aE9wdGlvbi5jaGVja0lmU3RvY2spIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2YXJpYW50QXV4ICYmIHZhcmlhbnRBdXguc3RvY2sgPiAwKSA/IHByb2R1Y3RzVW5pcXVlVmFyaWFudC5wdXNoKHRoaXMucHJvZHVjdFdpdGhWYXJpYW50VmFsdWVzKG1vZGlmaWVkX3Byb2R1Y3QsIHZhcmlhbnRBdXgsIG9wdGlvblZhbHVlKSkgOiBudWxsO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudEF1eCAmJiBwcm9kdWN0c1VuaXF1ZVZhcmlhbnQucHVzaCh0aGlzLnByb2R1Y3RXaXRoVmFyaWFudFZhbHVlcyhtb2RpZmllZF9wcm9kdWN0LCB2YXJpYW50QXV4LCBvcHRpb25WYWx1ZSkpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcHJvZHVjdHNVbmlxdWVWYXJpYW50LnB1c2gocHJvZHVjdClcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgICAgIHJldHVybiBwcm9kdWN0c1VuaXF1ZVZhcmlhbnQubGVuZ3RoID4gMCA/IHByb2R1Y3RzVW5pcXVlVmFyaWFudCA6IHByb2R1Y3RzO1xyXG4gICAgfVxyXG5cclxuICAgIHByb2R1Y3RXaXRoVmFyaWFudFZhbHVlcyA9IChwcm9kdWN0LCB2YXJpYW50LCBvcHRpb25WYWx1ZSkgPT4ge1xyXG4gICAgICAgIHByb2R1Y3QucGljdHVyZXNkZWZhdWx0ID0gdmFyaWFudC5pbWFnZXNcclxuICAgICAgICBwcm9kdWN0LnZhcmlhbnRfaWQgPSB2YXJpYW50LmNvZGU7IC8vbG8gZGVqbyBhY2EgaGFzdGEgYXNlZ3VyYXJub3MgZGUgcXVlIG5vIHNlIGVzdGFiYSB1c2FuZG8gZW4gb3RyYSBwYXJ0ZS5cclxuICAgICAgICBwcm9kdWN0LnN0b2NrID0gdmFyaWFudC5zdG9jayB8fCAwOyAvL2xvIGRlam8gYWNhIGhhc3RhIGFzZWd1cmFybm9zIGRlIHF1ZSBubyBzZSBlc3RhYmEgdXNhbmRvIGVuIG90cmEgcGFydGUuXHJcbiAgICAgICAgcHJvZHVjdC5jdXJyZW50T3B0aW9uID0ge1xyXG4gICAgICAgICAgICAuLi5vcHRpb25WYWx1ZSxcclxuICAgICAgICAgICAgcHJvZHVjdENvZGU6IHByb2R1Y3QuaWQsXHJcbiAgICAgICAgICAgIHZhcmlhbnRDb2RlOiB2YXJpYW50LmNvZGUsXHJcbiAgICAgICAgICAgIHN0b2NrOiB2YXJpYW50LnN0b2NrIHx8IDAsXHJcbiAgICAgICAgICAgIGZpbmFsUHJpY2U6IHZhcmlhbnQuc2FsZXByaWNlIHx8IHZhcmlhbnQucHJpY2UgfHwgMCxcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHByb2R1Y3RcclxuICAgIH1cclxuXHJcblxyXG4gICAgY2xlYW5BbGxGaWx0ZXJzID0gKCkgPT4ge1xyXG4gICAgICAgIGxldCBmaW5hbF9maWx0ZXJzOiBGaWx0ZXJbXSA9IHRoaXMuZmlsdGVyc1N1YmplY3QudmFsdWU7XHJcbiAgICAgICAgZmluYWxfZmlsdGVycy5mb3JFYWNoKGZpbHRlciA9PiBmaWx0ZXIucmVzZXQoKSk7XHJcbiAgICAgICAgdGhpcy5maWx0ZXJzU3ViamVjdC5uZXh0KGZpbmFsX2ZpbHRlcnMpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlUHJvZHVjdHNGb3JGaWx0ZXIoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogVVRJTFMgQU5EIEZJTFRFUklORyAqL1xyXG5cclxuICAgIGlzV2FpdGluZyA9ICgpID0+IHRoaXMucGFnaW5hdGlvbi53YWl0aW5nO1xyXG4gICAgaXNGaW5pc2hlZCA9ICgpID0+IHRoaXMucGFnaW5hdGlvbi5pc0ZpbmlzaGVkKCk7XHJcblxyXG4gICAgZ2VuZXJhdGVGaW5hbEFwaSA9IChzZWFyY2hfdmFsdWU/KSA9PiB7XHJcbiAgICAgICAgbGV0IGV4dHJhX3BhcmFtcyA9ICcnO1xyXG4gICAgICAgIHRoaXMuZmlsdGVyc1N1YmplY3QudmFsdWUuZm9yRWFjaChmaWx0ZXIgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBleHRyYSA9IGZpbHRlci50b1VybFBhcmFtcygpO1xyXG4gICAgICAgICAgICBleHRyYS5zcGxpdCgnPScpWzFdICE9ICcnID8gZXh0cmFfcGFyYW1zICs9IGV4dHJhIDogbnVsbDtcclxuICAgICAgICB9KVxyXG4gICAgICAgIGlmIChzZWFyY2hfdmFsdWUpIGV4dHJhX3BhcmFtcyArPSAoJyZjcml0ZXJpYVtzZWFyY2hdW3R5cGVdPWNvbnRhaW5zJmNyaXRlcmlhW3NlYXJjaF1bdmFsdWVdPScgKyBzZWFyY2hfdmFsdWUpO1xyXG4gICAgICAgIGlmIChleHRyYV9wYXJhbXMgIT0gJycgJiYgIWV4dHJhX3BhcmFtcy5pbmNsdWRlcygnYXR0cmlidXRlQ29kZXMnKSkge1xyXG4gICAgICAgICAgICB0aGlzLm9wdGlvbnMuZ2V0QXR0cmlidXRlczIoZXh0cmFfcGFyYW1zKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvZHVjdHNGaWx0ZXJBcGkoZXh0cmFfcGFyYW1zKTtcclxuICAgIH1cclxuXHJcbiAgICBmaW5pc2hlZCA9ICgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0+IHRoaXMucGFnaW5hdGlvbi5maW5pc2hlZCQ7XHJcblxyXG4gICAgZ2V0VG90YWwgPSAoKSA9PiB0aGlzLnBhZ2luYXRpb24udG90YWw7XHJcblxyXG4gICAgcHJpdmF0ZSB1cGRhdGVQcmljZVJhbmdlRmlsdGVyKG1pbjogbnVtYmVyLCBtYXg6IG51bWJlcikge1xyXG4gICAgICAgIGNvbnN0IGZpbmFsX2ZpbHRlcnM6IEZpbHRlcltdID0gdGhpcy5maWx0ZXJzU3ViamVjdC52YWx1ZTtcclxuICAgICAgICBjb25zdCBwcmljZVJhbmdlRmlsdGVyID0gZmluYWxfZmlsdGVycy5maW5kKGZpbHRlciA9PiBmaWx0ZXIgaW5zdGFuY2VvZiBQcmljZVJhbmdlRmlsdGVyKTtcclxuXHJcbiAgICAgICAgaWYgKHByaWNlUmFuZ2VGaWx0ZXIpIHtcclxuICAgICAgICAgICAgKHByaWNlUmFuZ2VGaWx0ZXIgYXMgUHJpY2VSYW5nZUZpbHRlcikudXBkYXRlUHJpY2VzKG1pbiwgbWF4KTtcclxuICAgICAgICAgICAgdGhpcy5maWx0ZXJzU3ViamVjdC5uZXh0KGZpbmFsX2ZpbHRlcnMpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXX0=
@@ -30,8 +30,8 @@ var PriceRangeFilter = /** @class */ (function (_super) {
30
30
  };
31
31
  // Método para actualizar los valores seleccionados
32
32
  _this.setSelected = function (min, max) {
33
- _this.currentMinPrice = min;
34
- _this.currentMaxPrice = max;
33
+ _this.currentMinPrice = (min !== _this.minPrice) ? min : null;
34
+ _this.currentMaxPrice = (max !== _this.maxPrice) ? max : null;
35
35
  };
36
36
  // Retorna los valores seleccionados (rango de precios)
37
37
  _this.getSelectedRange = function () {
@@ -61,8 +61,14 @@ var PriceRangeFilter = /** @class */ (function (_super) {
61
61
  PriceRangeFilter.prototype.updatePrices = function (min, max) {
62
62
  this.minPrice = min;
63
63
  this.maxPrice = max;
64
+ if (this.currentMinPrice !== null && (this.currentMinPrice < min || this.currentMinPrice > max)) {
65
+ this.currentMinPrice = null;
66
+ }
67
+ if (this.currentMaxPrice !== null && (this.currentMaxPrice > max || this.currentMaxPrice < min)) {
68
+ this.currentMaxPrice = null;
69
+ }
64
70
  };
65
71
  return PriceRangeFilter;
66
72
  }(Filter));
67
73
  export { PriceRangeFilter };
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHJpY2VSYW5nZUZpbHRlci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25nLWVhc3ljb21tZXJjZS8iLCJzb3VyY2VzIjpbImxpYi9jbGFzc2VzL2ZpbHRlcnMvUHJpY2VSYW5nZUZpbHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUdsQztJQUFzQyxvQ0FBTTtJQUE1QztRQUFBLHFFQXdEQztRQXRERyxjQUFRLEdBQVcsQ0FBQyxDQUFDO1FBQ3JCLGNBQVEsR0FBVyxJQUFJLENBQUM7UUFDeEIscUJBQWUsR0FBVyxJQUFJLENBQUM7UUFDL0IscUJBQWUsR0FBVyxJQUFJLENBQUM7UUFFL0IsVUFBSSxHQUFHLGNBQWtCLE9BQUEsYUFBYSxFQUFiLENBQWEsQ0FBQztRQUV2QyxxREFBcUQ7UUFDckQsZ0JBQVUsR0FBRyxVQUFDLE9BQU87WUFDakIsS0FBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsUUFBUSxJQUFJLEtBQUksQ0FBQyxRQUFRLENBQUM7WUFDbEQsS0FBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsUUFBUSxJQUFJLEtBQUksQ0FBQyxRQUFRLENBQUM7WUFDbEQsS0FBSSxDQUFDLGVBQWUsR0FBRyxPQUFPLENBQUMsZUFBZSxJQUFJLEtBQUksQ0FBQyxRQUFRLENBQUM7WUFDaEUsS0FBSSxDQUFDLGVBQWUsR0FBRyxPQUFPLENBQUMsZUFBZSxJQUFJLEtBQUksQ0FBQyxRQUFRLENBQUM7UUFDcEUsQ0FBQyxDQUFBO1FBT0QsbURBQW1EO1FBQ25ELGlCQUFXLEdBQUcsVUFBQyxHQUFXLEVBQUUsR0FBVztZQUNuQyxLQUFJLENBQUMsZUFBZSxHQUFHLEdBQUcsQ0FBQztZQUMzQixLQUFJLENBQUMsZUFBZSxHQUFHLEdBQUcsQ0FBQztRQUMvQixDQUFDLENBQUE7UUFFRCx1REFBdUQ7UUFDdkQsc0JBQWdCLEdBQUc7WUFDZixPQUFPO2dCQUNILEdBQUcsRUFBRSxLQUFJLENBQUMsZUFBZSxJQUFJLEtBQUksQ0FBQyxRQUFRO2dCQUMxQyxHQUFHLEVBQUUsS0FBSSxDQUFDLGVBQWUsSUFBSSxLQUFJLENBQUMsUUFBUTthQUM3QyxDQUFDO1FBQ04sQ0FBQyxDQUFBO1FBRUQsMkVBQTJFO1FBQzNFLGlCQUFXLEdBQUc7WUFDVixJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUM7WUFFaEIsSUFBSSxLQUFJLENBQUMsZUFBZSxLQUFLLElBQUksSUFBSSxLQUFJLENBQUMsZUFBZSxLQUFLLEtBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQ3pFLE1BQU0sSUFBSSxnQkFBYyxLQUFJLENBQUMsZUFBaUIsQ0FBQzthQUNsRDtZQUVELElBQUksS0FBSSxDQUFDLGVBQWUsS0FBSyxJQUFJLElBQUksS0FBSSxDQUFDLGVBQWUsS0FBSyxLQUFJLENBQUMsUUFBUSxFQUFFO2dCQUN6RSxNQUFNLElBQUksZ0JBQWMsS0FBSSxDQUFDLGVBQWlCLENBQUM7YUFDbEQ7WUFFRCxPQUFPLE1BQU0sQ0FBQztRQUNsQixDQUFDLENBQUE7UUFFRCxpREFBaUQ7UUFDakQsV0FBSyxHQUFHO1lBQ0osS0FBSSxDQUFDLGVBQWUsR0FBRyxDQUFDLENBQUM7WUFDekIsS0FBSSxDQUFDLGVBQWUsR0FBRyxLQUFJLENBQUMsUUFBUSxDQUFDO1FBQ3pDLENBQUMsQ0FBQTs7SUFDTCxDQUFDO0lBdkNHLHVDQUFZLEdBQVosVUFBYSxHQUFXLEVBQUUsR0FBVztRQUNqQyxJQUFJLENBQUMsUUFBUSxHQUFHLEdBQUcsQ0FBQztRQUNwQixJQUFJLENBQUMsUUFBUSxHQUFHLEdBQUcsQ0FBQztJQUN4QixDQUFDO0lBb0NMLHVCQUFDO0FBQUQsQ0FBQyxBQXhERCxDQUFzQyxNQUFNLEdBd0QzQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZpbHRlciB9IGZyb20gXCIuL0ZpbHRlclwiO1xuaW1wb3J0IHsgRmlsdGVyRWxlbWVudCwgRmlsdGVyVHlwZSB9IGZyb20gXCIuLi8uLi9pbnRlcmZhY2VzL2ZpbHRlclwiO1xuXG5leHBvcnQgY2xhc3MgUHJpY2VSYW5nZUZpbHRlciBleHRlbmRzIEZpbHRlciB7XG5cbiAgICBtaW5QcmljZTogbnVtYmVyID0gMDtcbiAgICBtYXhQcmljZTogbnVtYmVyID0gMTAwMDtcbiAgICBjdXJyZW50TWluUHJpY2U6IG51bWJlciA9IG51bGw7XG4gICAgY3VycmVudE1heFByaWNlOiBudW1iZXIgPSBudWxsO1xuXG4gICAgdHlwZSA9ICgpOiBGaWx0ZXJUeXBlID0+ICdwcmljZV9yYW5nZSc7XG5cbiAgICAvLyBNw6l0b2RvIHBhcmEgY29uZmlndXJhciBlbCByYW5nbyBkZSBwcmVjaW9zIGluaWNpYWxcbiAgICBzZXRDb250ZW50ID0gKG9wdGlvbnMpID0+IHtcbiAgICAgICAgdGhpcy5taW5QcmljZSA9IG9wdGlvbnMubWluUHJpY2UgfHwgdGhpcy5taW5QcmljZTtcbiAgICAgICAgdGhpcy5tYXhQcmljZSA9IG9wdGlvbnMubWF4UHJpY2UgfHwgdGhpcy5tYXhQcmljZTtcbiAgICAgICAgdGhpcy5jdXJyZW50TWluUHJpY2UgPSBvcHRpb25zLmN1cnJlbnRNaW5QcmljZSB8fCB0aGlzLm1pblByaWNlO1xuICAgICAgICB0aGlzLmN1cnJlbnRNYXhQcmljZSA9IG9wdGlvbnMuY3VycmVudE1heFByaWNlIHx8IHRoaXMubWF4UHJpY2U7XG4gICAgfVxuXG4gICAgdXBkYXRlUHJpY2VzKG1pbjogbnVtYmVyLCBtYXg6IG51bWJlcikge1xuICAgICAgICB0aGlzLm1pblByaWNlID0gbWluO1xuICAgICAgICB0aGlzLm1heFByaWNlID0gbWF4O1xuICAgIH1cblxuICAgIC8vIE3DqXRvZG8gcGFyYSBhY3R1YWxpemFyIGxvcyB2YWxvcmVzIHNlbGVjY2lvbmFkb3NcbiAgICBzZXRTZWxlY3RlZCA9IChtaW46IG51bWJlciwgbWF4OiBudW1iZXIpOiB2b2lkID0+IHtcbiAgICAgICAgdGhpcy5jdXJyZW50TWluUHJpY2UgPSBtaW47XG4gICAgICAgIHRoaXMuY3VycmVudE1heFByaWNlID0gbWF4O1xuICAgIH1cblxuICAgIC8vIFJldG9ybmEgbG9zIHZhbG9yZXMgc2VsZWNjaW9uYWRvcyAocmFuZ28gZGUgcHJlY2lvcylcbiAgICBnZXRTZWxlY3RlZFJhbmdlID0gKCk6IHsgbWluOiBudW1iZXIsIG1heDogbnVtYmVyIH0gPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbWluOiB0aGlzLmN1cnJlbnRNaW5QcmljZSB8fCB0aGlzLm1pblByaWNlLFxuICAgICAgICAgICAgbWF4OiB0aGlzLmN1cnJlbnRNYXhQcmljZSB8fCB0aGlzLm1heFByaWNlLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8vIEdlbmVyYSBsb3MgcGFyw6FtZXRyb3MgZGUgbGEgVVJMIGVuIGJhc2UgYWwgcmFuZ28gZGUgcHJlY2lvcyBzZWxlY2Npb25hZG9cbiAgICB0b1VybFBhcmFtcyA9ICgpOiBzdHJpbmcgPT4ge1xuICAgICAgICBsZXQgcGFyYW1zID0gJyc7XG5cbiAgICAgICAgaWYgKHRoaXMuY3VycmVudE1pblByaWNlICE9PSBudWxsICYmIHRoaXMuY3VycmVudE1pblByaWNlICE9PSB0aGlzLm1pblByaWNlKSB7XG4gICAgICAgICAgICBwYXJhbXMgKz0gYCZwcmljZV9taW49JHt0aGlzLmN1cnJlbnRNaW5QcmljZX1gO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuY3VycmVudE1heFByaWNlICE9PSBudWxsICYmIHRoaXMuY3VycmVudE1heFByaWNlICE9PSB0aGlzLm1heFByaWNlKSB7XG4gICAgICAgICAgICBwYXJhbXMgKz0gYCZwcmljZV9tYXg9JHt0aGlzLmN1cnJlbnRNYXhQcmljZX1gO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHBhcmFtcztcbiAgICB9XG5cbiAgICAvLyBSZXN0YWJsZWNlIGVsIGZpbHRybyBhIGxvcyB2YWxvcmVzIHBvciBkZWZlY3RvXG4gICAgcmVzZXQgPSAoKTogdm9pZCA9PiB7XG4gICAgICAgIHRoaXMuY3VycmVudE1pblByaWNlID0gMDtcbiAgICAgICAgdGhpcy5jdXJyZW50TWF4UHJpY2UgPSB0aGlzLm1heFByaWNlO1xuICAgIH1cbn1cbiJdfQ==
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHJpY2VSYW5nZUZpbHRlci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25nLWVhc3ljb21tZXJjZS8iLCJzb3VyY2VzIjpbImxpYi9jbGFzc2VzL2ZpbHRlcnMvUHJpY2VSYW5nZUZpbHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUdsQztJQUFzQyxvQ0FBTTtJQUE1QztRQUFBLHFFQStEQztRQTdERyxjQUFRLEdBQVcsQ0FBQyxDQUFDO1FBQ3JCLGNBQVEsR0FBVyxJQUFJLENBQUM7UUFDeEIscUJBQWUsR0FBVyxJQUFJLENBQUM7UUFDL0IscUJBQWUsR0FBVyxJQUFJLENBQUM7UUFFL0IsVUFBSSxHQUFHLGNBQWtCLE9BQUEsYUFBYSxFQUFiLENBQWEsQ0FBQztRQUV2QyxxREFBcUQ7UUFDckQsZ0JBQVUsR0FBRyxVQUFDLE9BQU87WUFDakIsS0FBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsUUFBUSxJQUFJLEtBQUksQ0FBQyxRQUFRLENBQUM7WUFDbEQsS0FBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsUUFBUSxJQUFJLEtBQUksQ0FBQyxRQUFRLENBQUM7WUFDbEQsS0FBSSxDQUFDLGVBQWUsR0FBRyxPQUFPLENBQUMsZUFBZSxJQUFJLEtBQUksQ0FBQyxRQUFRLENBQUM7WUFDaEUsS0FBSSxDQUFDLGVBQWUsR0FBRyxPQUFPLENBQUMsZUFBZSxJQUFJLEtBQUksQ0FBQyxRQUFRLENBQUM7UUFDcEUsQ0FBQyxDQUFBO1FBY0QsbURBQW1EO1FBQ25ELGlCQUFXLEdBQUcsVUFBQyxHQUFXLEVBQUUsR0FBVztZQUNuQyxLQUFJLENBQUMsZUFBZSxHQUFHLENBQUMsR0FBRyxLQUFLLEtBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFDNUQsS0FBSSxDQUFDLGVBQWUsR0FBRyxDQUFDLEdBQUcsS0FBSyxLQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ2hFLENBQUMsQ0FBQTtRQUVELHVEQUF1RDtRQUN2RCxzQkFBZ0IsR0FBRztZQUNmLE9BQU87Z0JBQ0gsR0FBRyxFQUFFLEtBQUksQ0FBQyxlQUFlLElBQUksS0FBSSxDQUFDLFFBQVE7Z0JBQzFDLEdBQUcsRUFBRSxLQUFJLENBQUMsZUFBZSxJQUFJLEtBQUksQ0FBQyxRQUFRO2FBQzdDLENBQUM7UUFDTixDQUFDLENBQUE7UUFFRCwyRUFBMkU7UUFDM0UsaUJBQVcsR0FBRztZQUNWLElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQztZQUVoQixJQUFJLEtBQUksQ0FBQyxlQUFlLEtBQUssSUFBSSxJQUFJLEtBQUksQ0FBQyxlQUFlLEtBQUssS0FBSSxDQUFDLFFBQVEsRUFBRTtnQkFDekUsTUFBTSxJQUFJLGdCQUFjLEtBQUksQ0FBQyxlQUFpQixDQUFDO2FBQ2xEO1lBRUQsSUFBSSxLQUFJLENBQUMsZUFBZSxLQUFLLElBQUksSUFBSSxLQUFJLENBQUMsZUFBZSxLQUFLLEtBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQ3pFLE1BQU0sSUFBSSxnQkFBYyxLQUFJLENBQUMsZUFBaUIsQ0FBQzthQUNsRDtZQUVELE9BQU8sTUFBTSxDQUFDO1FBQ2xCLENBQUMsQ0FBQTtRQUVELGlEQUFpRDtRQUNqRCxXQUFLLEdBQUc7WUFDSixLQUFJLENBQUMsZUFBZSxHQUFHLENBQUMsQ0FBQztZQUN6QixLQUFJLENBQUMsZUFBZSxHQUFHLEtBQUksQ0FBQyxRQUFRLENBQUM7UUFDekMsQ0FBQyxDQUFBOztJQUNMLENBQUM7SUE5Q0csdUNBQVksR0FBWixVQUFhLEdBQVcsRUFBRSxHQUFXO1FBQ2pDLElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBRyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBRyxDQUFDO1FBQ3BCLElBQUksSUFBSSxDQUFDLGVBQWUsS0FBSyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxHQUFHLEdBQUcsSUFBSSxJQUFJLENBQUMsZUFBZSxHQUFHLEdBQUcsQ0FBQyxFQUFFO1lBQzdGLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO1NBQy9CO1FBRUQsSUFBSSxJQUFJLENBQUMsZUFBZSxLQUFLLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEdBQUcsR0FBRyxJQUFJLElBQUksQ0FBQyxlQUFlLEdBQUcsR0FBRyxDQUFDLEVBQUU7WUFDN0YsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7U0FDL0I7SUFDTCxDQUFDO0lBb0NMLHVCQUFDO0FBQUQsQ0FBQyxBQS9ERCxDQUFzQyxNQUFNLEdBK0QzQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZpbHRlciB9IGZyb20gXCIuL0ZpbHRlclwiO1xuaW1wb3J0IHsgRmlsdGVyRWxlbWVudCwgRmlsdGVyVHlwZSB9IGZyb20gXCIuLi8uLi9pbnRlcmZhY2VzL2ZpbHRlclwiO1xuXG5leHBvcnQgY2xhc3MgUHJpY2VSYW5nZUZpbHRlciBleHRlbmRzIEZpbHRlciB7XG5cbiAgICBtaW5QcmljZTogbnVtYmVyID0gMDtcbiAgICBtYXhQcmljZTogbnVtYmVyID0gMTAwMDtcbiAgICBjdXJyZW50TWluUHJpY2U6IG51bWJlciA9IG51bGw7XG4gICAgY3VycmVudE1heFByaWNlOiBudW1iZXIgPSBudWxsO1xuXG4gICAgdHlwZSA9ICgpOiBGaWx0ZXJUeXBlID0+ICdwcmljZV9yYW5nZSc7XG5cbiAgICAvLyBNw6l0b2RvIHBhcmEgY29uZmlndXJhciBlbCByYW5nbyBkZSBwcmVjaW9zIGluaWNpYWxcbiAgICBzZXRDb250ZW50ID0gKG9wdGlvbnMpID0+IHtcbiAgICAgICAgdGhpcy5taW5QcmljZSA9IG9wdGlvbnMubWluUHJpY2UgfHwgdGhpcy5taW5QcmljZTtcbiAgICAgICAgdGhpcy5tYXhQcmljZSA9IG9wdGlvbnMubWF4UHJpY2UgfHwgdGhpcy5tYXhQcmljZTtcbiAgICAgICAgdGhpcy5jdXJyZW50TWluUHJpY2UgPSBvcHRpb25zLmN1cnJlbnRNaW5QcmljZSB8fCB0aGlzLm1pblByaWNlO1xuICAgICAgICB0aGlzLmN1cnJlbnRNYXhQcmljZSA9IG9wdGlvbnMuY3VycmVudE1heFByaWNlIHx8IHRoaXMubWF4UHJpY2U7XG4gICAgfVxuXG4gICAgdXBkYXRlUHJpY2VzKG1pbjogbnVtYmVyLCBtYXg6IG51bWJlcikge1xuICAgICAgICB0aGlzLm1pblByaWNlID0gbWluO1xuICAgICAgICB0aGlzLm1heFByaWNlID0gbWF4O1xuICAgICAgICBpZiAodGhpcy5jdXJyZW50TWluUHJpY2UgIT09IG51bGwgJiYgKHRoaXMuY3VycmVudE1pblByaWNlIDwgbWluIHx8IHRoaXMuY3VycmVudE1pblByaWNlID4gbWF4KSkge1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50TWluUHJpY2UgPSBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuY3VycmVudE1heFByaWNlICE9PSBudWxsICYmICh0aGlzLmN1cnJlbnRNYXhQcmljZSA+IG1heCB8fCB0aGlzLmN1cnJlbnRNYXhQcmljZSA8IG1pbikpIHtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudE1heFByaWNlID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIE3DqXRvZG8gcGFyYSBhY3R1YWxpemFyIGxvcyB2YWxvcmVzIHNlbGVjY2lvbmFkb3NcbiAgICBzZXRTZWxlY3RlZCA9IChtaW46IG51bWJlciwgbWF4OiBudW1iZXIpOiB2b2lkID0+IHtcbiAgICAgICAgdGhpcy5jdXJyZW50TWluUHJpY2UgPSAobWluICE9PSB0aGlzLm1pblByaWNlKSA/IG1pbiA6IG51bGw7XG4gICAgICAgIHRoaXMuY3VycmVudE1heFByaWNlID0gKG1heCAhPT0gdGhpcy5tYXhQcmljZSkgPyBtYXggOiBudWxsO1xuICAgIH1cblxuICAgIC8vIFJldG9ybmEgbG9zIHZhbG9yZXMgc2VsZWNjaW9uYWRvcyAocmFuZ28gZGUgcHJlY2lvcylcbiAgICBnZXRTZWxlY3RlZFJhbmdlID0gKCk6IHsgbWluOiBudW1iZXIsIG1heDogbnVtYmVyIH0gPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbWluOiB0aGlzLmN1cnJlbnRNaW5QcmljZSB8fCB0aGlzLm1pblByaWNlLFxuICAgICAgICAgICAgbWF4OiB0aGlzLmN1cnJlbnRNYXhQcmljZSB8fCB0aGlzLm1heFByaWNlLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8vIEdlbmVyYSBsb3MgcGFyw6FtZXRyb3MgZGUgbGEgVVJMIGVuIGJhc2UgYWwgcmFuZ28gZGUgcHJlY2lvcyBzZWxlY2Npb25hZG9cbiAgICB0b1VybFBhcmFtcyA9ICgpOiBzdHJpbmcgPT4ge1xuICAgICAgICBsZXQgcGFyYW1zID0gJyc7XG5cbiAgICAgICAgaWYgKHRoaXMuY3VycmVudE1pblByaWNlICE9PSBudWxsICYmIHRoaXMuY3VycmVudE1pblByaWNlICE9PSB0aGlzLm1pblByaWNlKSB7XG4gICAgICAgICAgICBwYXJhbXMgKz0gYCZwcmljZV9taW49JHt0aGlzLmN1cnJlbnRNaW5QcmljZX1gO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuY3VycmVudE1heFByaWNlICE9PSBudWxsICYmIHRoaXMuY3VycmVudE1heFByaWNlICE9PSB0aGlzLm1heFByaWNlKSB7XG4gICAgICAgICAgICBwYXJhbXMgKz0gYCZwcmljZV9tYXg9JHt0aGlzLmN1cnJlbnRNYXhQcmljZX1gO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHBhcmFtcztcbiAgICB9XG5cbiAgICAvLyBSZXN0YWJsZWNlIGVsIGZpbHRybyBhIGxvcyB2YWxvcmVzIHBvciBkZWZlY3RvXG4gICAgcmVzZXQgPSAoKTogdm9pZCA9PiB7XG4gICAgICAgIHRoaXMuY3VycmVudE1pblByaWNlID0gMDtcbiAgICAgICAgdGhpcy5jdXJyZW50TWF4UHJpY2UgPSB0aGlzLm1heFByaWNlO1xuICAgIH1cbn1cbiJdfQ==
@@ -107,8 +107,9 @@ var ProductDetailEcComponent = /** @class */ (function (_super) {
107
107
  * @param changeAmount cantidad que se quiere restar.
108
108
  * @param forceMultiple si es true, obliga a que el resultado sea múltiplo de changeAmount.
109
109
  */
110
- _this.less = function (changeAmount, forceMultiple) {
110
+ _this.less = function (changeAmount, minimum, forceMultiple) {
111
111
  if (changeAmount === void 0) { changeAmount = 1; }
112
+ if (minimum === void 0) { minimum = 1; }
112
113
  if (forceMultiple === void 0) { forceMultiple = false; }
113
114
  var newQuantity = _this.quantity - changeAmount;
114
115
  if (forceMultiple && changeAmount > 0) {
@@ -122,9 +123,12 @@ var ProductDetailEcComponent = /** @class */ (function (_super) {
122
123
  newQuantity = changeAmount;
123
124
  }
124
125
  }
125
- if (newQuantity >= 1) {
126
+ if (newQuantity >= minimum) {
126
127
  _this.quantity = newQuantity;
127
128
  }
129
+ else {
130
+ _this.quantity = minimum;
131
+ }
128
132
  };
129
133
  _this.showContact = function () { return _this.show = true; };
130
134
  _this.hideContact = function () { return _this.show = false; };
@@ -218,4 +222,4 @@ var ProductDetailEcComponent = /** @class */ (function (_super) {
218
222
  return ProductDetailEcComponent;
219
223
  }(ComponentHelper));
220
224
  export { ProductDetailEcComponent };
221
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1kZXRhaWwtZWMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmctZWFzeWNvbW1lcmNlLyIsInNvdXJjZXMiOlsibGliL2VjLWNvbXBvbmVudC9wcm9kdWN0LWRldGFpbC1lYy9wcm9kdWN0LWRldGFpbC1lYy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxTQUFTLEVBQWMsTUFBTSxlQUFlLENBQUM7QUFDekUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFTN0U7SUFBOEMsNENBQWU7SUFrQnpELGtDQUNXLGNBQW9DLEVBQ3BDLE1BQWlCLEVBQ2Qs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QUFpRDtZQUVqRCxTQUFTLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQzs7U0FDcEMsQ0FBQztPQUNXLHdCQUF3QixDQW1LcEM7SUFBRCwrQkFBQztDQUFBLEFBbktELENBQThDLGVBQWUsR0FtSzVEO1NBbktZLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQ29tcG9uZW50SGVscGVyIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9jb21wb25lbnQtaGVscGVyJztcbmltcG9ydCB7IENvbnN0YW50cyB9IGZyb20gJy4uLy4uL2NvcmUuY29uc3RzJztcbmltcG9ydCB7IEFuYWx5dGljc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hbmFseXRpY3Muc2VydmljZSc7XG5pbXBvcnQgeyBDYXJ0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NhcnQuc2VydmljZSc7XG5pbXBvcnQgeyBPcHRpb25zU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL29wdGlvbnMuc2VydmljZSc7XG5pbXBvcnQgeyBQcm9kdWN0RGV0YWlsU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3Byb2R1Y3RzL3Byb2R1Y3QtZGV0YWlsLnNlcnZpY2UnO1xuaW1wb3J0IHsgUHJvZHVjdHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcHJvZHVjdHMvcHJvZHVjdHMuc2VydmljZSc7XG5pbXBvcnQgeyBUb2FzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi91dGlscy90b2FzdC5zZXJ2aWNlJztcbmltcG9ydCB7IE1ldGEgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDaGFubmVsQ29uZmlnU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NoYW5uZWwtY29uZmlnLnNlcnZpY2UnO1xuXG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYXBwLXByb2R1Y3QtZGV0YWlsLWVjJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vcHJvZHVjdC1kZXRhaWwtZWMuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3Byb2R1Y3QtZGV0YWlsLWVjLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgcHJvdmlkZXJzOiBbUHJvZHVjdERldGFpbFNlcnZpY2VdXG59KVxuZXhwb3J0IGNsYXNzIFByb2R1Y3REZXRhaWxFY0NvbXBvbmVudCBleHRlbmRzIENvbXBvbmVudEhlbHBlciBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgICBwdWJsaWMgcHJvZHVjdDogYW55O1xuICAgIHB1YmxpYyBtZWRpYVVybDtcbiAgICBwdWJsaWMgc2hvdyA9IGZhbHNlO1xuICAgIHB1YmxpYyBxdWFudGl0eSA9IDE7XG4gICAgcHVibGljIGJyZWFkY3J1bWIgPSBbXTtcbiAgICBwdWJsaWMgY2Fyb3VzZWw6IGFueTtcbiAgICBwdWJsaWMgY29kZSA9IG51bGw7XG4gICAgcHVibGljIGZvY3VzSW1hZ2U6IHN0cmluZyA9IG51bGxcbiAgICBwdWJsaWMgb3dsT3B0aW9ucyA9IHt9XG4gICAgcHVibGljIHNob3dSZXZpZXdzOiBib29sZWFuID0gZmFsc2U7XG4gICAgcHVibGljIGhpZGVQcmljZXM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBwdWJsaWMgY3JlZGl0QWNjb3VudFNob3dQcmljZXM6IGJvb2xlYW4gfCBudWxsID0gbnVsbDtcblxuXG4gICAgQFZpZXdDaGlsZCgnY29udGFjdCcpIGNvbnRhY3Q6IEVsZW1lbnRSZWY7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIHByb2R1Y3RTZXJ2aWNlOiBQcm9kdWN0RGV0YWlsU2VydmljZSxcbiAgICAgICAgcHVibGljIGNvbnN0czogQ29uc3RhbnRzLFxuICAgICAgICBwcm90ZWN0ZWQgYWN0aXZlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICAgICAgcHVibGljIGNhcnRTZXJ2aWNlOiBDYXJ0U2VydmljZSxcbiAgICAgICAgcHVibGljIG9wdGlvbnNTZXJ2aWNlOiBPcHRpb25zU2VydmljZSxcbiAgICAgICAgcHVibGljIHByb2R1Y3RzU2VydmljZTogUHJvZHVjdHNTZXJ2aWNlLFxuICAgICAgICBwdWJsaWMgYW5hbHl0aWNzU2VydmljZTogQW5hbHl0aWNzU2VydmljZSxcbiAgICAgICAgcHVibGljIHJvdXRlcjogUm91dGVyLFxuICAgICAgICBwcm90ZWN0ZWQgdG9hc3RyU2VydmljZTogVG9hc3RTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIG1ldGE6IE1ldGEsXG4gICAgICAgIHB1YmxpYyBpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5tZWRpYVVybCA9IHRoaXMuY29uc3RzLm1lZGlhVXJsKCk7XG4gICAgICAgIHRoaXMuYWN0aXZlZFJvdXRlLnBhcmFtcy5zdWJzY3JpYmUocXVlcnlQYXJhbXMgPT4ge1xuICAgICAgICAgICAgbGV0IHZhcmlhbnQ6IGFueSA9ICh0aGlzLmFjdGl2ZWRSb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtTWFwLmdldCgndmFyaWFudCcpKTtcbiAgICAgICAgICAgIGxldCBjb2RlID0gcXVlcnlQYXJhbXMuaWQ7XG4gICAgICAgICAgICB0aGlzLnByb2R1Y3RTZXJ2aWNlLmxvYWRQcm9kdWN0KGNvZGUsIHZhcmlhbnQpO1xuICAgICAgICAgICAgdGhpcy5jb2RlID0gcXVlcnlQYXJhbXMuaWRcbiAgICAgICAgfSlcbiAgICAgICAgdGhpcy5wcm9kdWN0U2VydmljZS5wcm9kdWN0JC5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgICAgIGlmIChyZXMgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnLyddKVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnByb2R1Y3QgPSByZXM7XG4gICAgICAgICAgICAgICAgd2luZG93LnNjcm9sbCgwLCAwKTtcbiAgICAgICAgICAgICAgICB0aGlzLmJyZWFkY3J1bWIgPSB0aGlzLm9wdGlvbnNTZXJ2aWNlLmdldEJyZWFkY3J1bWIodGhpcy5wcm9kdWN0LmNhdGVnb3J5KTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5wcm9kdWN0Lm5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tZXRhLnVwZGF0ZVRhZyh7IHByb3BlcnR5OiAnb2c6dGl0bGUnLCBjb250ZW50OiB0aGlzLnByb2R1Y3QubmFtZSB9KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tZXRhLnVwZGF0ZVRhZyh7IHByb3BlcnR5OiAnb2c6ZGVzY3JpcHRpb24nLCBjb250ZW50OiB0aGlzLmRlbGV0ZUhUTUwodGhpcy5wcm9kdWN0LmRlc2NyaXB0aW9uKSB9KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tZXRhLnVwZGF0ZVRhZyh7IHByb3BlcnR5OiAnb2c6aW1hZ2UnLCBjb250ZW50OiB0aGlzLmNvbnN0cy5tZWRpYVVybCgpICsgdGhpcy5wcm9kdWN0LnBpY3R1cmVzZGVmYXVsdFswXSB9KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tZXRhLnVwZGF0ZVRhZyh7IHByb3BlcnR5OiAnb2c6dHlwZScsIGNvbnRlbnQ6ICdwcm9kdWN0JyB9KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tZXRhLnVwZGF0ZVRhZyh7IHByb3BlcnR5OiAnb2c6dXJsJywgY29udGVudDogd2luZG93LmxvY2F0aW9uLmhyZWYgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5wcm9kdWN0U2VydmljZS5wcm9kdWN0JC5waXBlKGZpbHRlcihkYXRhID0+IGRhdGEgJiYgZGF0YS5pZCAmJiBkYXRhLmlkICE9IDApKS5zdWJzY3JpYmUoXG4gICAgICAgICAgICAocHJvZHVjdFBhcmFtKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5hbmFseXRpY3NTZXJ2aWNlLmNhbGxFdmVudCgndmlld19pdGVtJywgeyAuLi5wcm9kdWN0UGFyYW0sIGN1cnJlbmN5OiB0aGlzLmNvbnN0cy5jdXJyZW5jeS5jb2RlIH0pXG4gICAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VJbWdGb2N1cyhwcm9kdWN0UGFyYW0ucGljdHVyZXNkZWZhdWx0WzBdKVxuICAgICAgICAgICAgfVxuICAgICAgICApXG4gICAgICAgIHRoaXMuaW5qZWN0b3IuZ2V0KENoYW5uZWxDb25maWdTZXJ2aWNlKS5jaGFubmVsQ29uZmlnJC5zdWJzY3JpYmUoY2hhbm5lbCA9PiB7XG4gICAgICAgICAgICB0aGlzLnNob3dSZXZpZXdzID0gY2hhbm5lbC5zaG93UmV2aWV3cztcbiAgICAgICAgICAgIHRoaXMuaGlkZVByaWNlcyA9IGNoYW5uZWw/LmhpZGVQcmljZXMgPz8gZmFsc2U7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuY2FydFNlcnZpY2Uuc2hvd1ByaWNlJC5zdWJzY3JpYmUoKHNob3dQcmljZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5jcmVkaXRBY2NvdW50U2hvd1ByaWNlcyA9IHNob3dQcmljZTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuZWNPbkNvbnN0cnVjdCgpXG5cbiAgICB9XG5cbiAgICBkZWxldGVIVE1MKGNhZGVuYTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgLy8gRXhwcmVzacOzbiByZWd1bGFyIHBhcmEgYnVzY2FyIGV0aXF1ZXRhcyBIVE1MXG4gICAgICAgIGNvbnN0IGV4cHJlc2lvblJlZ3VsYXIgPSAvPFtePl0qPi9nO1xuICAgICAgICAvLyBSZWVtcGxhemEgdG9kYXMgbGFzIGV0aXF1ZXRhcyBIVE1MIHBvciB1bmEgY2FkZW5hIHZhY8OtYVxuICAgICAgICByZXR1cm4gY2FkZW5hLnJlcGxhY2UoZXhwcmVzaW9uUmVndWxhciwgJycpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmVjT25Jbml0KClcbiAgICB9XG5cbiAgICBhZGRUb0NhcnQgPSAoKSA9PiB7XG4gICAgICAgIHRoaXMucXVhbnRpdHkgPiAwICYmIHRoaXMucHJvZHVjdFNlcnZpY2UuYWRkVG9DYXJ0KHRoaXMucXVhbnRpdHkpO1xuICAgIH1cblxuICAgIGFkZEFsbFByb2R1Y3Rvc1RvQ2FydCA9ICgpID0+IHtcbiAgICAgICAgbGV0IGl0ZW1zID0gdGhpcy5wcm9kdWN0LnByb2R1Y3RXaXRoVW5pcXVlVmFyaWFudD8uZmlsdGVyKHByb2QgPT4gcHJvZC5wcm9kdWN0VG9DYXJ0SXRlbSkubWFwKHByb2QgPT4gcHJvZC5wcm9kdWN0VG9DYXJ0SXRlbSlcbiAgICAgICAgaXRlbXM/Lmxlbmd0aCAmJiB0aGlzLmNhcnRTZXJ2aWNlLmFkZEFsbFRvQ2FydChpdGVtcylcbiAgICB9XG5cbiAgICBzY3JvbGwoKSB7XG4gICAgICAgIGxldCBlbCA9IHRoaXMuY29udGFjdC5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuICAgICAgICBlbC5zY3JvbGxJbnRvVmlldygpO1xuICAgIH1cblxuICAgIHNhdmVSZWYgPSAoY2Fyb3VzZWwpID0+IHtcbiAgICAgICAgdGhpcy5jYXJvdXNlbCA9IGNhcm91c2VsO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBhY3R1YWxpemEgbGEgdmFyaWFibGUgcXVhbnRpdHkgc3VtYW5kb2xlICd4JyBjb250ZW5pZG8uXG4gICAgICogQHBhcmFtIHN0b2NrIG7Dum1lcm8gbcOheGltbyBkaXNwb25pYmxlIGVuIHN0b2NrLlxuICAgICAqIEBwYXJhbSBjaGFuZ2VBbW91bnQgY2FudGlkYWQgcXVlIHNlIHF1aWVyZSBzdW1hci5cbiAgICAgKiBAcGFyYW0gZm9yY2VNdWx0aXBsZSBzaSBlcyB0cnVlLCBvYmxpZ2EgYSBxdWUgZWwgcmVzdWx0YWRvIHNlYSBtw7psdGlwbG8gZGUgY2hhbmdlQW1vdW50LlxuICAgICAqL1xuICAgIHBsdXMgPSAoc3RvY2s/OiBudW1iZXIsIGNoYW5nZUFtb3VudDogbnVtYmVyID0gMSwgZm9yY2VNdWx0aXBsZTogYm9vbGVhbiA9IGZhbHNlKSA9PiB7ICAgICAgICBcbiAgICAgICAgbGV0IG5ld1F1YW50aXR5ID0gdGhpcy5xdWFudGl0eSArIGNoYW5nZUFtb3VudDtcblxuICAgICAgICBpZiAoZm9yY2VNdWx0aXBsZSAmJiBjaGFuZ2VBbW91bnQgPiAwKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5xdWFudGl0eSA8IGNoYW5nZUFtb3VudCkge1xuICAgICAgICAgICAgICAgIG5ld1F1YW50aXR5ID0gY2hhbmdlQW1vdW50O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBuZXdRdWFudGl0eSA9IE1hdGguY2VpbChuZXdRdWFudGl0eSAvIGNoYW5nZUFtb3VudCkgKiBjaGFuZ2VBbW91bnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFzdG9jayB8fCBuZXdRdWFudGl0eSA8PSBzdG9jaykge1xuICAgICAgICAgICAgdGhpcy5xdWFudGl0eSA9IG5ld1F1YW50aXR5O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy50b2FzdHJTZXJ2aWNlLnNob3coJ291dC1vZi1zdG9jay1hY3R1YWxseScpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIGFjdHVhbGl6YSBsYSB2YXJpYWJsZSBxdWFudGl0eSByZXN0YW5kb2xlICd4JyBjb250ZW5pZG8uXG4gICAgICogQHBhcmFtIGNoYW5nZUFtb3VudCBjYW50aWRhZCBxdWUgc2UgcXVpZXJlIHJlc3Rhci5cbiAgICAgKiBAcGFyYW0gZm9yY2VNdWx0aXBsZSBzaSBlcyB0cnVlLCBvYmxpZ2EgYSBxdWUgZWwgcmVzdWx0YWRvIHNlYSBtw7psdGlwbG8gZGUgY2hhbmdlQW1vdW50LlxuICAgICAqL1xuICAgIGxlc3MgPSAoY2hhbmdlQW1vdW50OiBudW1iZXIgPSAxLCBmb3JjZU11bHRpcGxlOiBib29sZWFuID0gZmFsc2UpID0+IHsgICAgICAgIFxuICAgICAgICBsZXQgbmV3UXVhbnRpdHkgPSB0aGlzLnF1YW50aXR5IC0gY2hhbmdlQW1vdW50O1xuXG4gICAgICAgIGlmIChmb3JjZU11bHRpcGxlICYmIGNoYW5nZUFtb3VudCA+IDApIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnF1YW50aXR5IDw9IGNoYW5nZUFtb3VudCkge1xuICAgICAgICAgICAgICAgIG5ld1F1YW50aXR5ID0gY2hhbmdlQW1vdW50O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBuZXdRdWFudGl0eSA9IE1hdGguZmxvb3IobmV3UXVhbnRpdHkgLyBjaGFuZ2VBbW91bnQpICogY2hhbmdlQW1vdW50O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAobmV3UXVhbnRpdHkgPCBjaGFuZ2VBbW91bnQpIHtcbiAgICAgICAgICAgICAgICBuZXdRdWFudGl0eSA9IGNoYW5nZUFtb3VudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChuZXdRdWFudGl0eSA+PSAxKSB7XG4gICAgICAgICAgICB0aGlzLnF1YW50aXR5ID0gbmV3UXVhbnRpdHk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzaG93Q29udGFjdCA9ICgpID0+IHRoaXMuc2hvdyA9IHRydWU7XG4gICAgaGlkZUNvbnRhY3QgPSAoKSA9PiB0aGlzLnNob3cgPSBmYWxzZTtcblxuICAgIHRoZXJlSXNNb3JlSW5mbyA9IChwcm9kdWN0OiBhbnkpID0+IHtcbiAgICAgICAgbGV0IHJlc3VsdDtcbiAgICAgICAgaWYgKHByb2R1Y3Q/LnNwZWNpYWxfbWFyayAmJiBwcm9kdWN0Py5zcGVjaWFsX21hcmsubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXN1bHQgPSBwcm9kdWN0Py5zcGVjaWFsX21hcms/LmZpbmQoc3BlY2lhbF9tYXJrID0+IHNwZWNpYWxfbWFyay50eXBlID09ICdtb3JlX2luZm8nKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIGNoYW5nZUltZ0ZvY3VzID0gKGltZykgPT4ge1xuICAgICAgICB0aGlzLmZvY3VzSW1hZ2UgPSBpbWdcbiAgICB9XG59XG4iXX0=
225
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1kZXRhaWwtZWMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmctZWFzeWNvbW1lcmNlLyIsInNvdXJjZXMiOlsibGliL2VjLWNvbXBvbmVudC9wcm9kdWN0LWRldGFpbC1lYy9wcm9kdWN0LWRldGFpbC1lYy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxTQUFTLEVBQWMsTUFBTSxlQUFlLENBQUM7QUFDekUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFTN0U7SUFBOEMsNENBQWU7SUFrQnpELGtDQUNXLGNBQW9DLEVBQ3BDLE1BQWlCLEVBQ2QsWUFBNEIsRUFDL0IsV0FBd0IsRUFDeEIsY0FBOEIsRUFDOUIsZUFBZ0MsRUFDaEMsZ0JBQWtDLEVBQ2xDLE1BQWMsRUFDWCxhQUEyQixFQUM3QixJQUFVLEVBQ1gsUUFBa0I7UUFYN0IsWUFZSSxpQkFBTyxTQXdDVjtRQW5EVSxvQkFBYyxHQUFkLGNBQWMsQ0FBc0I7UUFDcEMsWUFBTSxHQUFOLE1BQU0sQ0FBVztRQUNkLGtCQUFZLEdBQVosWUFBWSxDQUFnQjtRQUMvQixpQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixvQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIscUJBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLHNCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsWUFBTSxHQUFOLE1BQU0sQ0FBUTtRQUNYLG1CQUFhLEdBQWIsYUFBYSxDQUFjO1FBQzdCLFVBQUksR0FBSixJQUFJLENBQU07UUFDWCxjQUFRLEdBQVIsUUFBUSxDQUFVO1FBekJ0QixVQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ2IsY0FBUSxHQUFHLENBQUMsQ0FBQztRQUNiLGdCQUFVLEdBQUcsRUFBRSxDQUFDO1FBRWhCLFVBQUksR0FBRyxJQUFJLENBQUM7UUFDWixnQkFBVSxHQUFXLElBQUksQ0FBQTtRQUN6QixnQkFBVSxHQUFHLEVBQUUsQ0FBQTtRQUNmLGlCQUFXLEdBQVksS0FBSyxDQUFDO1FBQzdCLGdCQUFVLEdBQVksS0FBSyxDQUFDO1FBQzVCLDZCQUF1QixHQUFtQixJQUFJLENBQUM7UUFzRXRELGVBQVMsR0FBRztZQUNSLEtBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxJQUFJLEtBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLEtBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN0RSxDQUFDLENBQUE7UUFFRCwyQkFBcUIsR0FBRzs7WUFDcEIsSUFBSSxLQUFLLFNBQUcsS0FBSSxDQUFDLE9BQU8sQ0FBQyx3QkFBd0IsMENBQUUsTUFBTSxDQUFDLFVBQUEsSUFBSSxJQUFJLE9BQUEsSUFBSSxDQUFDLGlCQUFpQixFQUF0QixDQUFzQixFQUFFLEdBQUcsQ0FBQyxVQUFBLElBQUksSUFBSSxPQUFBLElBQUksQ0FBQyxpQkFBaUIsRUFBdEIsQ0FBc0IsQ0FBQyxDQUFBO1lBQzdILE9BQUEsS0FBSywwQ0FBRSxNQUFNLEtBQUksS0FBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDekQsQ0FBQyxDQUFBO1FBT0QsYUFBTyxHQUFHLFVBQUMsUUFBUTtZQUNmLEtBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQzdCLENBQUMsQ0FBQTtRQUVEOzs7OztXQUtHO1FBQ0gsVUFBSSxHQUFHLFVBQUMsS0FBYyxFQUFFLFlBQXdCLEVBQUUsYUFBOEI7WUFBeEQsNkJBQUEsRUFBQSxnQkFBd0I7WUFBRSw4QkFBQSxFQUFBLHFCQUE4QjtZQUM1RSxJQUFJLFdBQVcsR0FBRyxLQUFJLENBQUMsUUFBUSxHQUFHLFlBQVksQ0FBQztZQUUvQyxJQUFJLGFBQWEsSUFBSSxZQUFZLEdBQUcsQ0FBQyxFQUFFO2dCQUNuQyxJQUFJLEtBQUksQ0FBQyxRQUFRLEdBQUcsWUFBWSxFQUFFO29CQUM5QixXQUFXLEdBQUcsWUFBWSxDQUFDO2lCQUM5QjtxQkFBTTtvQkFDSCxXQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEdBQUcsWUFBWSxDQUFDLEdBQUcsWUFBWSxDQUFDO2lCQUN0RTthQUNKO1lBQ0QsSUFBSSxDQUFDLEtBQUssSUFBSSxXQUFXLElBQUksS0FBSyxFQUFFO2dCQUNoQyxLQUFJLENBQUMsUUFBUSxHQUFHLFdBQVcsQ0FBQzthQUMvQjtpQkFBTTtnQkFDSCxLQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO2FBQ3BEO1FBQ0wsQ0FBQyxDQUFBO1FBRUQ7Ozs7V0FJRztRQUNILFVBQUksR0FBRyxVQUFDLFlBQXdCLEVBQUUsT0FBbUIsRUFBRSxhQUE4QjtZQUE3RSw2QkFBQSxFQUFBLGdCQUF3QjtZQUFFLHdCQUFBLEVBQUEsV0FBbUI7WUFBRSw4QkFBQSxFQUFBLHFCQUE4QjtZQUNqRixJQUFJLFdBQVcsR0FBRyxLQUFJLENBQUMsUUFBUSxHQUFHLFlBQVksQ0FBQztZQUUvQyxJQUFJLGFBQWEsSUFBSSxZQUFZLEdBQUcsQ0FBQyxFQUFFO2dCQUNuQyxJQUFJLEtBQUksQ0FBQyxRQUFRLElBQUksWUFBWSxFQUFFO29CQUMvQixXQUFXLEdBQUcsWUFBWSxDQUFDO2lCQUM5QjtxQkFBTTtvQkFDSCxXQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEdBQUcsWUFBWSxDQUFDLEdBQUcsWUFBWSxDQUFDO2lCQUN2RTtnQkFFRCxJQUFJLFdBQVcsR0FBRyxZQUFZLEVBQUU7b0JBQzVCLFdBQVcsR0FBRyxZQUFZLENBQUM7aUJBQzlCO2FBQ0o7WUFFRCxJQUFJLFdBQVcsSUFBSSxPQUFPLEVBQUU7Z0JBQ3hCLEtBQUksQ0FBQyxRQUFRLEdBQUcsV0FBVyxDQUFDO2FBQy9CO2lCQUFNO2dCQUNILEtBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO2FBQzNCO1FBQ0wsQ0FBQyxDQUFBO1FBRUQsaUJBQVcsR0FBRyxjQUFNLE9BQUEsS0FBSSxDQUFDLElBQUksR0FBRyxJQUFJLEVBQWhCLENBQWdCLENBQUM7UUFDckMsaUJBQVcsR0FBRyxjQUFNLE9BQUEsS0FBSSxDQUFDLElBQUksR0FBRyxLQUFLLEVBQWpCLENBQWlCLENBQUM7UUFFdEMscUJBQWUsR0FBRyxVQUFDLE9BQVk7O1lBQzNCLElBQUksTUFBTSxDQUFDO1lBQ1gsSUFBSSxPQUFBLE9BQU8sMENBQUUsWUFBWSxZQUFJLE9BQU8sMENBQUUsWUFBWSxDQUFDLE1BQU0sQ0FBQSxFQUFFO2dCQUN2RCxNQUFNLGVBQUcsT0FBTywwQ0FBRSxZQUFZLDBDQUFFLElBQUksQ0FBQyxVQUFBLFlBQVksSUFBSSxPQUFBLFlBQVksQ0FBQyxJQUFJLElBQUksV0FBVyxFQUFoQyxDQUFnQyxDQUFDLENBQUM7YUFDMUY7WUFDRCxPQUFPLE1BQU0sQ0FBQztRQUNsQixDQUFDLENBQUE7UUFFRCxvQkFBYyxHQUFHLFVBQUMsR0FBRztZQUNqQixLQUFJLENBQUMsVUFBVSxHQUFHLEdBQUcsQ0FBQTtRQUN6QixDQUFDLENBQUE7UUFySUcsS0FBSSxDQUFDLFFBQVEsR0FBRyxLQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3ZDLEtBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxVQUFBLFdBQVc7WUFDMUMsSUFBSSxPQUFPLEdBQVEsQ0FBQyxLQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDN0UsSUFBSSxJQUFJLEdBQUcsV0FBVyxDQUFDLEVBQUUsQ0FBQztZQUMxQixLQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDL0MsS0FBSSxDQUFDLElBQUksR0FBRyxXQUFXLENBQUMsRUFBRSxDQUFBO1FBQzlCLENBQUMsQ0FBQyxDQUFBO1FBQ0YsS0FBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLFVBQUEsR0FBRztZQUN0QyxJQUFJLEdBQUcsSUFBSSxJQUFJLEVBQUU7Z0JBQ2IsS0FBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFBO2FBQzlCO2lCQUFNO2dCQUNILEtBQUksQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO2dCQUNuQixNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDcEIsS0FBSSxDQUFDLFVBQVUsR0FBRyxLQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxLQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUMzRSxJQUFJLEtBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFO29CQUNuQixLQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLEtBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztvQkFDMUUsS0FBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsT0FBTyxFQUFFLEtBQUksQ0FBQyxVQUFVLENBQUMsS0FBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7b0JBQ3hHLEtBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsS0FBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsR0FBRyxLQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7b0JBQ2pILEtBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztvQkFDakUsS0FBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7aUJBQzlFO2FBQ0o7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUNILEtBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBQSxJQUFJLElBQUksT0FBQSxJQUFJLElBQUksSUFBSSxDQUFDLEVBQUUsSUFBSSxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsRUFBL0IsQ0FBK0IsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUN4RixVQUFDLFlBQVk7WUFDVCxLQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLFdBQVcsd0JBQU8sWUFBWSxLQUFFLFFBQVEsRUFBRSxLQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLElBQUcsQ0FBQTtZQUN0RyxLQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUN4RCxDQUFDLENBQ0osQ0FBQTtRQUNELEtBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxVQUFBLE9BQU87O1lBQ3BFLEtBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQztZQUN2QyxLQUFJLENBQUMsVUFBVSxlQUFHLE9BQU8sMENBQUUsVUFBVSx1Q0FBSSxLQUFLLEVBQUEsQ0FBQztRQUNuRCxDQUFDLENBQUMsQ0FBQztRQUVILEtBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxVQUFDLFNBQVM7WUFDNUMsS0FBSSxDQUFDLHVCQUF1QixHQUFHLFNBQVMsQ0FBQztRQUM3QyxDQUFDLENBQUMsQ0FBQztRQUNILEtBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQTs7SUFFeEIsQ0FBQztJQUVELDZDQUFVLEdBQVYsVUFBVyxNQUFjO1FBQ3JCLCtDQUErQztRQUMvQyxJQUFNLGdCQUFnQixHQUFHLFVBQVUsQ0FBQztRQUNwQywwREFBMEQ7UUFDMUQsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLGdCQUFnQixFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCwyQ0FBUSxHQUFSO1FBQ0ksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFBO0lBQ25CLENBQUM7SUFXRCx5Q0FBTSxHQUFOO1FBQ0ksSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUE0QixDQUFDO1FBQ25ELEVBQUUsQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN4QixDQUFDOztnQkE1RTBCLG9CQUFvQjtnQkFDNUIsU0FBUztnQkFDQSxjQUFjO2dCQUNsQixXQUFXO2dCQUNSLGNBQWM7Z0JBQ2IsZUFBZTtnQkFDZCxnQkFBZ0I7Z0JBQzFCLE1BQU07Z0JBQ0ksWUFBWTtnQkFDdkIsSUFBSTtnQkFDRCxRQUFROztJQWJQO1FBQXJCLFNBQVMsQ0FBQyxTQUFTLENBQUM7NkRBQXFCO0lBaEJqQyx3QkFBd0I7UUFOcEMsU0FBUyxDQUFDO1lBQ1AsUUFBUSxFQUFFLHVCQUF1QjtZQUNqQyxZQUFpRDtZQUVqRCxTQUFTLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQzs7U0FDcEMsQ0FBQztPQUNXLHdCQUF3QixDQXFLcEM7SUFBRCwrQkFBQztDQUFBLEFBcktELENBQThDLGVBQWUsR0FxSzVEO1NBcktZLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQ29tcG9uZW50SGVscGVyIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9jb21wb25lbnQtaGVscGVyJztcbmltcG9ydCB7IENvbnN0YW50cyB9IGZyb20gJy4uLy4uL2NvcmUuY29uc3RzJztcbmltcG9ydCB7IEFuYWx5dGljc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hbmFseXRpY3Muc2VydmljZSc7XG5pbXBvcnQgeyBDYXJ0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NhcnQuc2VydmljZSc7XG5pbXBvcnQgeyBPcHRpb25zU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL29wdGlvbnMuc2VydmljZSc7XG5pbXBvcnQgeyBQcm9kdWN0RGV0YWlsU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3Byb2R1Y3RzL3Byb2R1Y3QtZGV0YWlsLnNlcnZpY2UnO1xuaW1wb3J0IHsgUHJvZHVjdHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcHJvZHVjdHMvcHJvZHVjdHMuc2VydmljZSc7XG5pbXBvcnQgeyBUb2FzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi91dGlscy90b2FzdC5zZXJ2aWNlJztcbmltcG9ydCB7IE1ldGEgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDaGFubmVsQ29uZmlnU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NoYW5uZWwtY29uZmlnLnNlcnZpY2UnO1xuXG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYXBwLXByb2R1Y3QtZGV0YWlsLWVjJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vcHJvZHVjdC1kZXRhaWwtZWMuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3Byb2R1Y3QtZGV0YWlsLWVjLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgcHJvdmlkZXJzOiBbUHJvZHVjdERldGFpbFNlcnZpY2VdXG59KVxuZXhwb3J0IGNsYXNzIFByb2R1Y3REZXRhaWxFY0NvbXBvbmVudCBleHRlbmRzIENvbXBvbmVudEhlbHBlciBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgICBwdWJsaWMgcHJvZHVjdDogYW55O1xuICAgIHB1YmxpYyBtZWRpYVVybDtcbiAgICBwdWJsaWMgc2hvdyA9IGZhbHNlO1xuICAgIHB1YmxpYyBxdWFudGl0eSA9IDE7XG4gICAgcHVibGljIGJyZWFkY3J1bWIgPSBbXTtcbiAgICBwdWJsaWMgY2Fyb3VzZWw6IGFueTtcbiAgICBwdWJsaWMgY29kZSA9IG51bGw7XG4gICAgcHVibGljIGZvY3VzSW1hZ2U6IHN0cmluZyA9IG51bGxcbiAgICBwdWJsaWMgb3dsT3B0aW9ucyA9IHt9XG4gICAgcHVibGljIHNob3dSZXZpZXdzOiBib29sZWFuID0gZmFsc2U7XG4gICAgcHVibGljIGhpZGVQcmljZXM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBwdWJsaWMgY3JlZGl0QWNjb3VudFNob3dQcmljZXM6IGJvb2xlYW4gfCBudWxsID0gbnVsbDtcblxuXG4gICAgQFZpZXdDaGlsZCgnY29udGFjdCcpIGNvbnRhY3Q6IEVsZW1lbnRSZWY7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIHByb2R1Y3RTZXJ2aWNlOiBQcm9kdWN0RGV0YWlsU2VydmljZSxcbiAgICAgICAgcHVibGljIGNvbnN0czogQ29uc3RhbnRzLFxuICAgICAgICBwcm90ZWN0ZWQgYWN0aXZlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICAgICAgcHVibGljIGNhcnRTZXJ2aWNlOiBDYXJ0U2VydmljZSxcbiAgICAgICAgcHVibGljIG9wdGlvbnNTZXJ2aWNlOiBPcHRpb25zU2VydmljZSxcbiAgICAgICAgcHVibGljIHByb2R1Y3RzU2VydmljZTogUHJvZHVjdHNTZXJ2aWNlLFxuICAgICAgICBwdWJsaWMgYW5hbHl0aWNzU2VydmljZTogQW5hbHl0aWNzU2VydmljZSxcbiAgICAgICAgcHVibGljIHJvdXRlcjogUm91dGVyLFxuICAgICAgICBwcm90ZWN0ZWQgdG9hc3RyU2VydmljZTogVG9hc3RTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIG1ldGE6IE1ldGEsXG4gICAgICAgIHB1YmxpYyBpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5tZWRpYVVybCA9IHRoaXMuY29uc3RzLm1lZGlhVXJsKCk7XG4gICAgICAgIHRoaXMuYWN0aXZlZFJvdXRlLnBhcmFtcy5zdWJzY3JpYmUocXVlcnlQYXJhbXMgPT4ge1xuICAgICAgICAgICAgbGV0IHZhcmlhbnQ6IGFueSA9ICh0aGlzLmFjdGl2ZWRSb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtTWFwLmdldCgndmFyaWFudCcpKTtcbiAgICAgICAgICAgIGxldCBjb2RlID0gcXVlcnlQYXJhbXMuaWQ7XG4gICAgICAgICAgICB0aGlzLnByb2R1Y3RTZXJ2aWNlLmxvYWRQcm9kdWN0KGNvZGUsIHZhcmlhbnQpO1xuICAgICAgICAgICAgdGhpcy5jb2RlID0gcXVlcnlQYXJhbXMuaWRcbiAgICAgICAgfSlcbiAgICAgICAgdGhpcy5wcm9kdWN0U2VydmljZS5wcm9kdWN0JC5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgICAgIGlmIChyZXMgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnLyddKVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnByb2R1Y3QgPSByZXM7XG4gICAgICAgICAgICAgICAgd2luZG93LnNjcm9sbCgwLCAwKTtcbiAgICAgICAgICAgICAgICB0aGlzLmJyZWFkY3J1bWIgPSB0aGlzLm9wdGlvbnNTZXJ2aWNlLmdldEJyZWFkY3J1bWIodGhpcy5wcm9kdWN0LmNhdGVnb3J5KTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5wcm9kdWN0Lm5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tZXRhLnVwZGF0ZVRhZyh7IHByb3BlcnR5OiAnb2c6dGl0bGUnLCBjb250ZW50OiB0aGlzLnByb2R1Y3QubmFtZSB9KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tZXRhLnVwZGF0ZVRhZyh7IHByb3BlcnR5OiAnb2c6ZGVzY3JpcHRpb24nLCBjb250ZW50OiB0aGlzLmRlbGV0ZUhUTUwodGhpcy5wcm9kdWN0LmRlc2NyaXB0aW9uKSB9KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tZXRhLnVwZGF0ZVRhZyh7IHByb3BlcnR5OiAnb2c6aW1hZ2UnLCBjb250ZW50OiB0aGlzLmNvbnN0cy5tZWRpYVVybCgpICsgdGhpcy5wcm9kdWN0LnBpY3R1cmVzZGVmYXVsdFswXSB9KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tZXRhLnVwZGF0ZVRhZyh7IHByb3BlcnR5OiAnb2c6dHlwZScsIGNvbnRlbnQ6ICdwcm9kdWN0JyB9KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tZXRhLnVwZGF0ZVRhZyh7IHByb3BlcnR5OiAnb2c6dXJsJywgY29udGVudDogd2luZG93LmxvY2F0aW9uLmhyZWYgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5wcm9kdWN0U2VydmljZS5wcm9kdWN0JC5waXBlKGZpbHRlcihkYXRhID0+IGRhdGEgJiYgZGF0YS5pZCAmJiBkYXRhLmlkICE9IDApKS5zdWJzY3JpYmUoXG4gICAgICAgICAgICAocHJvZHVjdFBhcmFtKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5hbmFseXRpY3NTZXJ2aWNlLmNhbGxFdmVudCgndmlld19pdGVtJywgeyAuLi5wcm9kdWN0UGFyYW0sIGN1cnJlbmN5OiB0aGlzLmNvbnN0cy5jdXJyZW5jeS5jb2RlIH0pXG4gICAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VJbWdGb2N1cyhwcm9kdWN0UGFyYW0ucGljdHVyZXNkZWZhdWx0WzBdKVxuICAgICAgICAgICAgfVxuICAgICAgICApXG4gICAgICAgIHRoaXMuaW5qZWN0b3IuZ2V0KENoYW5uZWxDb25maWdTZXJ2aWNlKS5jaGFubmVsQ29uZmlnJC5zdWJzY3JpYmUoY2hhbm5lbCA9PiB7XG4gICAgICAgICAgICB0aGlzLnNob3dSZXZpZXdzID0gY2hhbm5lbC5zaG93UmV2aWV3cztcbiAgICAgICAgICAgIHRoaXMuaGlkZVByaWNlcyA9IGNoYW5uZWw/LmhpZGVQcmljZXMgPz8gZmFsc2U7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuY2FydFNlcnZpY2Uuc2hvd1ByaWNlJC5zdWJzY3JpYmUoKHNob3dQcmljZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5jcmVkaXRBY2NvdW50U2hvd1ByaWNlcyA9IHNob3dQcmljZTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuZWNPbkNvbnN0cnVjdCgpXG5cbiAgICB9XG5cbiAgICBkZWxldGVIVE1MKGNhZGVuYTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgLy8gRXhwcmVzacOzbiByZWd1bGFyIHBhcmEgYnVzY2FyIGV0aXF1ZXRhcyBIVE1MXG4gICAgICAgIGNvbnN0IGV4cHJlc2lvblJlZ3VsYXIgPSAvPFtePl0qPi9nO1xuICAgICAgICAvLyBSZWVtcGxhemEgdG9kYXMgbGFzIGV0aXF1ZXRhcyBIVE1MIHBvciB1bmEgY2FkZW5hIHZhY8OtYVxuICAgICAgICByZXR1cm4gY2FkZW5hLnJlcGxhY2UoZXhwcmVzaW9uUmVndWxhciwgJycpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmVjT25Jbml0KClcbiAgICB9XG5cbiAgICBhZGRUb0NhcnQgPSAoKSA9PiB7XG4gICAgICAgIHRoaXMucXVhbnRpdHkgPiAwICYmIHRoaXMucHJvZHVjdFNlcnZpY2UuYWRkVG9DYXJ0KHRoaXMucXVhbnRpdHkpO1xuICAgIH1cblxuICAgIGFkZEFsbFByb2R1Y3Rvc1RvQ2FydCA9ICgpID0+IHtcbiAgICAgICAgbGV0IGl0ZW1zID0gdGhpcy5wcm9kdWN0LnByb2R1Y3RXaXRoVW5pcXVlVmFyaWFudD8uZmlsdGVyKHByb2QgPT4gcHJvZC5wcm9kdWN0VG9DYXJ0SXRlbSkubWFwKHByb2QgPT4gcHJvZC5wcm9kdWN0VG9DYXJ0SXRlbSlcbiAgICAgICAgaXRlbXM/Lmxlbmd0aCAmJiB0aGlzLmNhcnRTZXJ2aWNlLmFkZEFsbFRvQ2FydChpdGVtcylcbiAgICB9XG5cbiAgICBzY3JvbGwoKSB7XG4gICAgICAgIGxldCBlbCA9IHRoaXMuY29udGFjdC5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuICAgICAgICBlbC5zY3JvbGxJbnRvVmlldygpO1xuICAgIH1cblxuICAgIHNhdmVSZWYgPSAoY2Fyb3VzZWwpID0+IHtcbiAgICAgICAgdGhpcy5jYXJvdXNlbCA9IGNhcm91c2VsO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBhY3R1YWxpemEgbGEgdmFyaWFibGUgcXVhbnRpdHkgc3VtYW5kb2xlICd4JyBjb250ZW5pZG8uXG4gICAgICogQHBhcmFtIHN0b2NrIG7Dum1lcm8gbcOheGltbyBkaXNwb25pYmxlIGVuIHN0b2NrLlxuICAgICAqIEBwYXJhbSBjaGFuZ2VBbW91bnQgY2FudGlkYWQgcXVlIHNlIHF1aWVyZSBzdW1hci5cbiAgICAgKiBAcGFyYW0gZm9yY2VNdWx0aXBsZSBzaSBlcyB0cnVlLCBvYmxpZ2EgYSBxdWUgZWwgcmVzdWx0YWRvIHNlYSBtw7psdGlwbG8gZGUgY2hhbmdlQW1vdW50LlxuICAgICAqL1xuICAgIHBsdXMgPSAoc3RvY2s/OiBudW1iZXIsIGNoYW5nZUFtb3VudDogbnVtYmVyID0gMSwgZm9yY2VNdWx0aXBsZTogYm9vbGVhbiA9IGZhbHNlKSA9PiB7ICAgICAgICBcbiAgICAgICAgbGV0IG5ld1F1YW50aXR5ID0gdGhpcy5xdWFudGl0eSArIGNoYW5nZUFtb3VudDtcblxuICAgICAgICBpZiAoZm9yY2VNdWx0aXBsZSAmJiBjaGFuZ2VBbW91bnQgPiAwKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5xdWFudGl0eSA8IGNoYW5nZUFtb3VudCkge1xuICAgICAgICAgICAgICAgIG5ld1F1YW50aXR5ID0gY2hhbmdlQW1vdW50O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBuZXdRdWFudGl0eSA9IE1hdGguY2VpbChuZXdRdWFudGl0eSAvIGNoYW5nZUFtb3VudCkgKiBjaGFuZ2VBbW91bnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFzdG9jayB8fCBuZXdRdWFudGl0eSA8PSBzdG9jaykge1xuICAgICAgICAgICAgdGhpcy5xdWFudGl0eSA9IG5ld1F1YW50aXR5O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy50b2FzdHJTZXJ2aWNlLnNob3coJ291dC1vZi1zdG9jay1hY3R1YWxseScpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIGFjdHVhbGl6YSBsYSB2YXJpYWJsZSBxdWFudGl0eSByZXN0YW5kb2xlICd4JyBjb250ZW5pZG8uXG4gICAgICogQHBhcmFtIGNoYW5nZUFtb3VudCBjYW50aWRhZCBxdWUgc2UgcXVpZXJlIHJlc3Rhci5cbiAgICAgKiBAcGFyYW0gZm9yY2VNdWx0aXBsZSBzaSBlcyB0cnVlLCBvYmxpZ2EgYSBxdWUgZWwgcmVzdWx0YWRvIHNlYSBtw7psdGlwbG8gZGUgY2hhbmdlQW1vdW50LlxuICAgICAqL1xuICAgIGxlc3MgPSAoY2hhbmdlQW1vdW50OiBudW1iZXIgPSAxLCBtaW5pbXVtOiBudW1iZXIgPSAxLCBmb3JjZU11bHRpcGxlOiBib29sZWFuID0gZmFsc2UpID0+IHtcbiAgICAgICAgbGV0IG5ld1F1YW50aXR5ID0gdGhpcy5xdWFudGl0eSAtIGNoYW5nZUFtb3VudDtcblxuICAgICAgICBpZiAoZm9yY2VNdWx0aXBsZSAmJiBjaGFuZ2VBbW91bnQgPiAwKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5xdWFudGl0eSA8PSBjaGFuZ2VBbW91bnQpIHtcbiAgICAgICAgICAgICAgICBuZXdRdWFudGl0eSA9IGNoYW5nZUFtb3VudDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbmV3UXVhbnRpdHkgPSBNYXRoLmZsb29yKG5ld1F1YW50aXR5IC8gY2hhbmdlQW1vdW50KSAqIGNoYW5nZUFtb3VudDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKG5ld1F1YW50aXR5IDwgY2hhbmdlQW1vdW50KSB7XG4gICAgICAgICAgICAgICAgbmV3UXVhbnRpdHkgPSBjaGFuZ2VBbW91bnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobmV3UXVhbnRpdHkgPj0gbWluaW11bSkge1xuICAgICAgICAgICAgdGhpcy5xdWFudGl0eSA9IG5ld1F1YW50aXR5O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5xdWFudGl0eSA9IG1pbmltdW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzaG93Q29udGFjdCA9ICgpID0+IHRoaXMuc2hvdyA9IHRydWU7XG4gICAgaGlkZUNvbnRhY3QgPSAoKSA9PiB0aGlzLnNob3cgPSBmYWxzZTtcblxuICAgIHRoZXJlSXNNb3JlSW5mbyA9IChwcm9kdWN0OiBhbnkpID0+IHtcbiAgICAgICAgbGV0IHJlc3VsdDtcbiAgICAgICAgaWYgKHByb2R1Y3Q/LnNwZWNpYWxfbWFyayAmJiBwcm9kdWN0Py5zcGVjaWFsX21hcmsubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXN1bHQgPSBwcm9kdWN0Py5zcGVjaWFsX21hcms/LmZpbmQoc3BlY2lhbF9tYXJrID0+IHNwZWNpYWxfbWFyay50eXBlID09ICdtb3JlX2luZm8nKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIGNoYW5nZUltZ0ZvY3VzID0gKGltZykgPT4ge1xuICAgICAgICB0aGlzLmZvY3VzSW1hZ2UgPSBpbWdcbiAgICB9XG59XG4iXX0=