@c8y/ngx-components 1018.0.255 → 1018.0.258

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.
@@ -25,7 +25,7 @@ export class RangeDisplayComponent {
25
25
  if (!this.config.min) {
26
26
  this.config.min = 0;
27
27
  }
28
- if (!this.config.max) {
28
+ if (!this.config.max && this.config.max !== 0) {
29
29
  this.config.max = 100;
30
30
  }
31
31
  if (this.config.fractionSize !== undefined) {
@@ -144,10 +144,10 @@ export class RangeDisplayComponent {
144
144
  }
145
145
  }
146
146
  RangeDisplayComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: RangeDisplayComponent, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });
147
- RangeDisplayComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: RangeDisplayComponent, selector: "c8y-range-display", inputs: { config: "config", display: "display" }, host: { properties: { "attr.style": "this.inlineStyle" } }, viewQueries: [{ propertyName: "rangeDisplay", first: true, predicate: ["rangeDisplay"], descendants: true }, { propertyName: "currentRangeElement", first: true, predicate: ["currentRangeElement"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div\n [ngClass]=\"{\n 'range-display--vertical': config.orientation === 'vertical',\n 'range-display--compact': display === 'compact',\n 'range-display--inline': display === 'inline'\n }\"\n attr.data-label=\"{{ config.unit }}\"\n>\n <div\n class=\"range-display\"\n #rangeDisplay\n >\n <div class=\"range-display__range\">\n <div class=\"range-display__range__unit\">\n {{ config.unit }}\n </div>\n <div\n *ngIf=\"isYellowRangeDisplayed()\"\n class=\"range-display__range__min\"\n ></div>\n <div\n *ngIf=\"isRedRangeDisplayed()\"\n class=\"range-display__range__max\"\n ></div>\n <div\n *ngIf=\"checkTarget()\"\n class=\"range-display__range__target\"\n attr.data-label=\"{{ config.target }} {{ config.unit }}\"\n title=\"{{ 'Target' | translate }}: {{ config.target }} {{ config.unit }}\"\n ></div>\n <div\n [ngStyle]=\"{\n display:\n config.current != undefined &&\n config.current >= config.min &&\n config.current <= config.max\n ? 'block'\n : 'none'\n }\"\n #currentRangeElement\n class=\"range-display__range__current\"\n attr.data-label=\"{{ config.current }} {{ config.unit }} &#xa;{{ config.time | c8yDate }}\"\n title=\"{{ 'Current' | translate }}: {{ config.current }} {{ config.unit }} | {{\n config.time | c8yDate\n }}\"\n ></div>\n </div>\n <div class=\"range-display__ruler\">\n <div\n *ngFor=\"let x of [].constructor(10); let index = index; trackBy: trackByIndex\"\n attr.data-label=\"{{ rulerCalc(index) }}\"\n class=\"range-display__tick\"\n ></div>\n <div\n attr.data-label=\"{{ config.max || 100 | number }}\"\n class=\"range-display__tick\"\n ></div>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "pipe", type: i3.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i2.DecimalPipe, name: "number" }, { kind: "pipe", type: i4.DatePipe, name: "c8yDate" }] });
147
+ RangeDisplayComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: RangeDisplayComponent, selector: "c8y-range-display", inputs: { config: "config", display: "display" }, host: { properties: { "attr.style": "this.inlineStyle" } }, viewQueries: [{ propertyName: "rangeDisplay", first: true, predicate: ["rangeDisplay"], descendants: true }, { propertyName: "currentRangeElement", first: true, predicate: ["currentRangeElement"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div\n [ngClass]=\"{\n 'range-display--vertical': config.orientation === 'vertical',\n 'range-display--compact': display === 'compact',\n 'range-display--inline': display === 'inline'\n }\"\n attr.data-label=\"{{ config.unit }}\"\n>\n <div\n class=\"range-display\"\n #rangeDisplay\n >\n <div class=\"range-display__range\">\n <div class=\"range-display__range__unit\">\n {{ config.unit }}\n </div>\n <div\n *ngIf=\"isYellowRangeDisplayed()\"\n class=\"range-display__range__min\"\n ></div>\n <div\n *ngIf=\"isRedRangeDisplayed()\"\n class=\"range-display__range__max\"\n ></div>\n <div\n *ngIf=\"checkTarget()\"\n class=\"range-display__range__target\"\n attr.data-label=\"{{ config.target }} {{ config.unit }}\"\n title=\"{{ 'Target' | translate }}: {{ config.target }} {{ config.unit }}\"\n ></div>\n <div\n [ngStyle]=\"{\n display:\n config.current != undefined &&\n config.current >= config.min &&\n config.current <= config.max\n ? 'block'\n : 'none'\n }\"\n #currentRangeElement\n class=\"range-display__range__current\"\n attr.data-label=\"{{ config.current }} {{ config.unit }} &#xa;{{ config.time | c8yDate }}\"\n title=\"{{ 'Current' | translate }}: {{ config.current }} {{ config.unit }} | {{\n config.time | c8yDate\n }}\"\n ></div>\n </div>\n <div class=\"range-display__ruler\">\n <div\n *ngFor=\"let x of [].constructor(10); let index = index; trackBy: trackByIndex\"\n attr.data-label=\"{{ rulerCalc(index) }}\"\n class=\"range-display__tick\"\n ></div>\n <div\n attr.data-label=\"{{ config.max ?? 100 | number }}\"\n class=\"range-display__tick\"\n ></div>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "pipe", type: i3.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i2.DecimalPipe, name: "number" }, { kind: "pipe", type: i4.DatePipe, name: "c8yDate" }] });
148
148
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: RangeDisplayComponent, decorators: [{
149
149
  type: Component,
150
- args: [{ selector: 'c8y-range-display', template: "<div\n [ngClass]=\"{\n 'range-display--vertical': config.orientation === 'vertical',\n 'range-display--compact': display === 'compact',\n 'range-display--inline': display === 'inline'\n }\"\n attr.data-label=\"{{ config.unit }}\"\n>\n <div\n class=\"range-display\"\n #rangeDisplay\n >\n <div class=\"range-display__range\">\n <div class=\"range-display__range__unit\">\n {{ config.unit }}\n </div>\n <div\n *ngIf=\"isYellowRangeDisplayed()\"\n class=\"range-display__range__min\"\n ></div>\n <div\n *ngIf=\"isRedRangeDisplayed()\"\n class=\"range-display__range__max\"\n ></div>\n <div\n *ngIf=\"checkTarget()\"\n class=\"range-display__range__target\"\n attr.data-label=\"{{ config.target }} {{ config.unit }}\"\n title=\"{{ 'Target' | translate }}: {{ config.target }} {{ config.unit }}\"\n ></div>\n <div\n [ngStyle]=\"{\n display:\n config.current != undefined &&\n config.current >= config.min &&\n config.current <= config.max\n ? 'block'\n : 'none'\n }\"\n #currentRangeElement\n class=\"range-display__range__current\"\n attr.data-label=\"{{ config.current }} {{ config.unit }} &#xa;{{ config.time | c8yDate }}\"\n title=\"{{ 'Current' | translate }}: {{ config.current }} {{ config.unit }} | {{\n config.time | c8yDate\n }}\"\n ></div>\n </div>\n <div class=\"range-display__ruler\">\n <div\n *ngFor=\"let x of [].constructor(10); let index = index; trackBy: trackByIndex\"\n attr.data-label=\"{{ rulerCalc(index) }}\"\n class=\"range-display__tick\"\n ></div>\n <div\n attr.data-label=\"{{ config.max || 100 | number }}\"\n class=\"range-display__tick\"\n ></div>\n </div>\n </div>\n</div>\n" }]
150
+ args: [{ selector: 'c8y-range-display', template: "<div\n [ngClass]=\"{\n 'range-display--vertical': config.orientation === 'vertical',\n 'range-display--compact': display === 'compact',\n 'range-display--inline': display === 'inline'\n }\"\n attr.data-label=\"{{ config.unit }}\"\n>\n <div\n class=\"range-display\"\n #rangeDisplay\n >\n <div class=\"range-display__range\">\n <div class=\"range-display__range__unit\">\n {{ config.unit }}\n </div>\n <div\n *ngIf=\"isYellowRangeDisplayed()\"\n class=\"range-display__range__min\"\n ></div>\n <div\n *ngIf=\"isRedRangeDisplayed()\"\n class=\"range-display__range__max\"\n ></div>\n <div\n *ngIf=\"checkTarget()\"\n class=\"range-display__range__target\"\n attr.data-label=\"{{ config.target }} {{ config.unit }}\"\n title=\"{{ 'Target' | translate }}: {{ config.target }} {{ config.unit }}\"\n ></div>\n <div\n [ngStyle]=\"{\n display:\n config.current != undefined &&\n config.current >= config.min &&\n config.current <= config.max\n ? 'block'\n : 'none'\n }\"\n #currentRangeElement\n class=\"range-display__range__current\"\n attr.data-label=\"{{ config.current }} {{ config.unit }} &#xa;{{ config.time | c8yDate }}\"\n title=\"{{ 'Current' | translate }}: {{ config.current }} {{ config.unit }} | {{\n config.time | c8yDate\n }}\"\n ></div>\n </div>\n <div class=\"range-display__ruler\">\n <div\n *ngFor=\"let x of [].constructor(10); let index = index; trackBy: trackByIndex\"\n attr.data-label=\"{{ rulerCalc(index) }}\"\n class=\"range-display__tick\"\n ></div>\n <div\n attr.data-label=\"{{ config.max ?? 100 | number }}\"\n class=\"range-display__tick\"\n ></div>\n </div>\n </div>\n</div>\n" }]
151
151
  }], ctorParameters: function () { return [{ type: i1.DomSanitizer }]; }, propDecorators: { config: [{
152
152
  type: Input
153
153
  }], display: [{
@@ -162,4 +162,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
162
162
  type: ViewChild,
163
163
  args: ['currentRangeElement', { static: false }]
164
164
  }] } });
165
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFuZ2UtZGlzcGxheS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jb3JlL3JhbmdlLWRpc3BsYXkvcmFuZ2UtZGlzcGxheS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9jb3JlL3JhbmdlLWRpc3BsYXkvcmFuZ2UtZGlzcGxheS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUNULFVBQVUsRUFDVixXQUFXLEVBQ1gsS0FBSyxFQUdMLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7O0FBT3BGLE1BQU0sT0FBTyxxQkFBcUI7SUEyRGhDLFlBQW9CLFNBQXVCO1FBQXZCLGNBQVMsR0FBVCxTQUFTLENBQWM7UUExRGxDLFdBQU0sR0FBaUIsRUFBRSxDQUFDO1FBQzFCLFlBQU8sR0FBa0MsTUFBTSxDQUFDO1FBRWpELDZCQUF3QixHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7UUFDMUQsNEdBQTRHO1FBQzNGLHdDQUFtQyxHQUFHLEdBQUcsQ0FBQztRQUMxQywwQkFBcUIsR0FBRyxLQUFLLENBQUM7UUFDOUIsc0JBQWlCLEdBQUcsRUFBRSxDQUFDO1FBQ2hDLGlCQUFZLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDO1FBaUQxQyxlQUFVLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQUNLLENBQUM7SUFqRC9DLElBQ0ksV0FBVztRQUNiLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUM7UUFDaEMsSUFBSSxDQUFDLElB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RUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RCaW5kaW5nLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERvbVNhbml0aXplciB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBSYW5nZURpc3BsYXkgfSBmcm9tICcuL3JhbmdlLWRpc3BsYXkubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktcmFuZ2UtZGlzcGxheScsXG4gIHRlbXBsYXRlVXJsOiAnLi9yYW5nZS1kaXNwbGF5LmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBSYW5nZURpc3BsYXlDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3ksIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIGNvbmZpZzogUmFuZ2VEaXNwbGF5ID0ge307XG4gIEBJbnB1dCgpIGRpc3BsYXk6ICdmdWxsJyB8ICdjb21wYWN0JyB8ICdpbmxpbmUnID0gJ2Z1bGwnO1xuICBwcml2YXRlIGN1cnJlbnRSYW5nZVdpZHRoT2JzZXJ2ZXI6IFJlc2l6ZU9ic2VydmVyO1xuICBwcml2YXRlIGN1cnJlbnRSYW5nZVdpZHRoQ2hhbmdlZCA9IG5ldyBTdWJqZWN0PEVsZW1lbnQ+KCk7XG4gIC8vIHdpZHRoIG9mIGN1cnJlbnQgcmFuZ2UgaXMgY2hhbmdpbmcgd2l0aGluIDE1MG1zLCBzZWUgc3R5bGUgZGVjbGFyYXRpb24gZm9yIC5yYW5nZS1kaXNwbGF5X19yYW5nZV9fY3VycmVudFxuICBwcml2YXRlIHJlYWRvbmx5IENVUlJFTlRfUkFOR0VfV0lEVEhfVFJBTlNJVElPTl9USU1FID0gMTUwO1xuICBwcml2YXRlIHJlYWRvbmx5IERFRkFVTFRfVE9PTFRJUF9TSElGVCA9ICc1MCUnO1xuICBwcml2YXRlIHJlYWRvbmx5IE1JTl9UT09MVElQX1NISUZUID0gMTA7XG4gIHByaXZhdGUgdG9vbHRpcFNoaWZ0ID0gdGhpcy5ERUZBVUxUX1RPT0xUSVBfU0hJRlQ7XG4gIEBIb3N0QmluZGluZygnYXR0ci5zdHlsZScpXG4gIGdldCBpbmxpbmVTdHlsZSgpIHtcbiAgICB0aGlzLmNvbmZpZyA9IHRoaXMuY29uZmlnIHx8IHt9O1xuICAgIGlmICghdGhpcy5jb25maWcubWluKSB7XG4gICAgICB0aGlzLmNvbmZpZy5taW4gPSAwO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuY29uZmlnLm1heCkge1xuICAgICAgdGhpcy5jb25maWcubWF4ID0gMTAwO1xuICAgIH1cbiAgICBpZiAodGhpcy5jb25maWcuZnJhY3Rpb25TaXplICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuY29uZmlnLmN1cnJlbnQgPSBwYXJzZUZsb2F0KHRoaXMuY29uZmlnLmN1cnJlbnQudG9GaXhlZCh0aGlzLmNvbmZpZy5mcmFjdGlvblNpemUpKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RTdHlsZShcbiAgICAgIGBcbiAgICAgICAgICAtLXJhbmdlLW1pbjogJHt0aGlzLmNvbmZpZy5taW59O1xuICAgICAgICAgIC0tcmFuZ2UtbWF4OiAke3RoaXMuY29uZmlnLm1heH07XG4gICAgICAgICAgLS1yYW5nZS1kaXNwbGF5LXRvb2x0aXAtdHJhbnNsYXRlOiB0cmFuc2xhdGUoJHt0aGlzLnRvb2x0aXBTaGlmdH0sIC01NnB4KTtcbiAgICAgICAgICAtLXJhbmdlLWRpc3BsYXktdG9vbHRpcC1iZzogdmFyKCR7dGhpcy5nZXRUb29sdGlwQmFja2dyb3VuZCgpfSk7XG4gICAgICAgICAgLS1mdWxsLXJhbmdlOiAke3RoaXMuY29uZmlnLm1heCAtIHRoaXMuY29uZmlnLm1pbn07XG4gICAgICAgICAgLS1tZWFzdXJlbWVudC10YXJnZXQ6ICR7XG4gICAgICAgICAgICAoKHRoaXMuY29uZmlnLnRhcmdldCAtIHRoaXMuY29uZmlnLm1pbikgKiAxMDApIC8gKHRoaXMuY29uZmlnLm1heCAtIHRoaXMuY29uZmlnLm1pbilcbiAgICAgICAgICB9JTtcbiAgICAgICAgICAtLW1lYXN1cmVtZW50LWN1cnJlbnQ6ICR7XG4gICAgICAgICAgICAoKHRoaXMuY29uZmlnLmN1cnJlbnQgLSB0aGlzLmNvbmZpZy5taW4pICogMTAwKSAvICh0aGlzLmNvbmZpZy5tYXggLSB0aGlzLmNvbmZpZy5taW4pXG4gICAgICAgICAgfSU7XG4gICAgICAgICAgLS1yYW5nZS15LW1pbjogJHtcbiAgICAgICAgICAgICgodGhpcy5jb25maWcueWVsbG93UmFuZ2VNaW4gLSB0aGlzLmNvbmZpZy5taW4pICogMTAwKSAvXG4gICAgICAgICAgICAodGhpcy5jb25maWcubWF4IC0gdGhpcy5jb25maWcubWluKVxuICAgICAgICAgIH0lO1xuICAgICAgICAgIC0tcmFuZ2UteS1tYXg6ICR7XG4gICAgICAgICAgICAoKHRoaXMuY29uZmlnLnllbGxvd1JhbmdlTWF4IC0gdGhpcy5jb25maWcubWluKSAvICh0aGlzLmNvbmZpZy5tYXggLSB0aGlzLmNvbmZpZy5taW4pKSAqXG4gICAgICAgICAgICAxMDBcbiAgICAgICAgICB9JTtcbiAgICAgICAgICAtLXJhbmdlLXItbWluOiAke1xuICAgICAgICAgICAgKCh0aGlzLmNvbmZpZy5yZWRSYW5nZU1pbiAtIHRoaXMuY29uZmlnLm1pbikgKiAxMDApIC9cbiAgICAgICAgICAgICh0aGlzLmNvbmZpZy5tYXggLSB0aGlzLmNvbmZpZy5taW4pXG4gICAgICAgICAgfSU7XG4gICAgICAgICAgLS1yYW5nZS1yLW1heDogJHtcbiAgICAgICAgICAgICgodGhpcy5jb25maWcucmVkUmFuZ2VNYXggLSB0aGlzLmNvbmZpZy5taW4pIC8gKHRoaXMuY29uZmlnLm1heCAtIHRoaXMuY29uZmlnLm1pbikpICpcbiAgICAgICAgICAgIDEwMFxuICAgICAgICAgIH0lO1xuICAgICAgICBgXG4gICAgKTtcbiAgfVxuICBAVmlld0NoaWxkKCdyYW5nZURpc3BsYXknLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgcHJpdmF0ZSByYW5nZURpc3BsYXk6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoJ2N1cnJlbnRSYW5nZUVsZW1lbnQnLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgcHJpdmF0ZSBjdXJyZW50UmFuZ2VFbGVtZW50OiBFbGVtZW50UmVmO1xuICBwcml2YXRlIGRlc3Ryb3llZCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHNhbml0aXplcjogRG9tU2FuaXRpemVyKSB7fVxuXG4gIG5nT25DaGFuZ2VzKCkge1xuICAgIC8vIEl0J3MgbmVjZXNzYXJ5IHRvIGhhbmRsZSB0b29sdGlwIHNoaWZ0aW5nIGJvdGggaW4gT25DaGFuZ2VzIGFuZCBBZnRlclZpZXdJbml0LiBJbiBjYXNlIG9mIExpbmVhciBnYXVnZSB3aWRnZXQsIHZpZXcgaXNcbiAgICAvLyByZW5kZXJlZCBmaXJzdCAoc28gYXMgZWxlbWVudHMgbmVlZGVkIGZvciBjYWxjdWxhdGluZyBzaGlmdGluZykgYW5kIGNvbmZpZyBvcmllbnRhdGlvbiBpcyBzZXQgbGF0ZXIgb24uXG4gICAgLy8gSW4gb3RoZXIgY2FzZXMgaXQncyBwb3NzaWJsZSB0aGF0IG9yaWVudGF0aW9uIGlzIGRlZmluZWQgb24gaW5pdGlhbGl6YXRpb24gb2YgY2xhc3MgYW5kIHZpZXcgZWxlbWVudHMgYXJlIHJlbmRlcmVkIGxhdGVyLlxuICAgIHRoaXMuc2V0dXBUb29sdGlwU2hpZnRpbmdJZlBvc3NpYmxlKCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5zZXR1cFRvb2x0aXBTaGlmdGluZ0lmUG9zc2libGUoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuY3VycmVudFJhbmdlV2lkdGhPYnNlcnZlcj8uZGlzY29ubmVjdCgpO1xuICAgIHRoaXMuZGVzdHJveWVkJC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95ZWQkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBjaGVja1RhcmdldCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5jb25maWcudGFyZ2V0ICE9PSB1bmRlZmluZWQgJiZcbiAgICAgIHRoaXMuY29uZmlnLnRhcmdldCAhPT0gbnVsbCAmJlxuICAgICAgdGhpcy5jb25maWcudGFyZ2V0ID49IHRoaXMuY29uZmlnLm1pbiAmJlxuICAgICAgdGhpcy5jb25maWcudGFyZ2V0IDw9IHRoaXMuY29uZmlnLm1heFxuICAgICk7XG4gIH1cblxuICBydWxlckNhbGMoaW5kZXgpIHtcbiAgICBjb25zdCBudW06IG51bWJlciA9IHRoaXMuY29uZmlnLm1pbiArICgodGhpcy5jb25maWcubWF4IC0gdGhpcy5jb25maWcubWluKSAvIDEwKSAqIGluZGV4O1xuICAgIGlmICh0aGlzLmNvbmZpZy5mcmFjdGlvblNpemUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIHBhcnNlRmxvYXQobnVtLnRvRml4ZWQodGhpcy5jb25maWcuZnJhY3Rpb25TaXplKSk7XG4gICAgfVxuICAgIHJldHVybiBwYXJzZUZsb2F0KG51bS50b0ZpeGVkKDIpKTtcbiAgfVxuXG4gIHRyYWNrQnlJbmRleChpbmRleDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICByZXR1cm4gaW5kZXg7XG4gIH1cblxuICBpc1JlZFJhbmdlRGlzcGxheWVkKCkge1xuICAgIGNvbnN0IHsgcmVkUmFuZ2VNaW4sIHJlZFJhbmdlTWF4IH0gPSB0aGlzLmNvbmZpZztcbiAgICByZXR1cm4gdGhpcy5pc1JhbmdlRGlzcGxheWVkKHJlZFJhbmdlTWluLCByZWRSYW5nZU1heCk7XG4gIH1cblxuICBpc1llbGxvd1JhbmdlRGlzcGxheWVkKCkge1xuICAgIGNvbnN0IHsgeWVsbG93UmFuZ2VNaW4sIHllbGxvd1JhbmdlTWF4IH0gPSB0aGlzLmNvbmZpZztcbiAgICByZXR1cm4gdGhpcy5pc1JhbmdlRGlzcGxheWVkKHllbGxvd1JhbmdlTWluLCB5ZWxsb3dSYW5nZU1heCk7XG4gIH1cblxuICBpc1JhbmdlRGlzcGxheWVkKHJhbmdlTWluLCByYW5nZU1heCkge1xuICAgIHJldHVybiByYW5nZU1pbiA9PT0gMCB8fCByYW5nZU1heCA9PT0gMCB8fCAocmFuZ2VNaW4gJiYgcmFuZ2VNYXgpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXR1cFRvb2x0aXBTaGlmdGluZygpIHtcbiAgICB0aGlzLmN1cnJlbnRSYW5nZVdpZHRoT2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIoKFt2YWxdKSA9PiB7XG4gICAgICBpZiAoZ2V0Q29tcHV0ZWRTdHlsZSh2YWwudGFyZ2V0LCBudWxsKS5kaXNwbGF5ID09PSAnYmxvY2snKSB7XG4gICAgICAgIHRoaXMuY3VycmVudFJhbmdlV2lkdGhDaGFuZ2VkLm5leHQodmFsLnRhcmdldCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLmN1cnJlbnRSYW5nZVdpZHRoT2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLmN1cnJlbnRSYW5nZUVsZW1lbnQubmF0aXZlRWxlbWVudCk7XG5cbiAgICB0aGlzLmN1cnJlbnRSYW5nZVdpZHRoQ2hhbmdlZFxuICAgICAgLnBpcGUoXG4gICAgICAgIGRlYm91bmNlVGltZSh0aGlzLkNVUlJFTlRfUkFOR0VfV0lEVEhfVFJBTlNJVElPTl9USU1FKSxcbiAgICAgICAgbWFwKChyYW5nZUVsZW1lbnQ6IEVsZW1lbnQpID0+IHBhcnNlSW50KGdldENvbXB1dGVkU3R5bGUocmFuZ2VFbGVtZW50LCBudWxsKS53aWR0aCkpLFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZShyYW5nZUVsZW1lbnRXaWR0aCA9PiB7XG4gICAgICAgIHRoaXMuc2V0VG9vbHRpcFNoaWZ0VmFsdWUocmFuZ2VFbGVtZW50V2lkdGgpO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHNldFRvb2x0aXBTaGlmdFZhbHVlKHJhbmdlRWxlbWVudFdpZHRoOiBudW1iZXIpIHtcbiAgICBjb25zdCB0b29sdGlwV2lkdGggPSBwYXJzZUludChcbiAgICAgIGdldENvbXB1dGVkU3R5bGUodGhpcy5jdXJyZW50UmFuZ2VFbGVtZW50Lm5hdGl2ZUVsZW1lbnQsICc6YWZ0ZXInKS53aWR0aFxuICAgICk7XG4gICAgY29uc3QgY3VycmVudFJhbmdlV2lkdGggPSByYW5nZUVsZW1lbnRXaWR0aDtcbiAgICBjb25zdCByYW5nZURpc3BsYXlXaWR0aCA9IHBhcnNlSW50KFxuICAgICAgZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLnJhbmdlRGlzcGxheS5uYXRpdmVFbGVtZW50LCBudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKCd3aWR0aCcpXG4gICAgKTtcbiAgICBjb25zdCByYW5nZURpc3BsYXlQYWRkaW5nTGVmdCA9IHBhcnNlSW50KFxuICAgICAgZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLnJhbmdlRGlzcGxheS5uYXRpdmVFbGVtZW50LCBudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKCdwYWRkaW5nLWxlZnQnKVxuICAgICk7XG4gICAgY29uc3QgdG9vbHRpcE92ZXJmbG93c0xlZnRFZGdlID0gdG9vbHRpcFdpZHRoIC8gMiA+IHJhbmdlRGlzcGxheVBhZGRpbmdMZWZ0ICsgY3VycmVudFJhbmdlV2lkdGg7XG4gICAgY29uc3QgdG9vbHRpcE92ZXJmbG93c1JpZ2h0RWRnZSA9XG4gICAgICB0b29sdGlwV2lkdGggLyAyID4gcmFuZ2VEaXNwbGF5V2lkdGggLSByYW5nZURpc3BsYXlQYWRkaW5nTGVmdCAtIGN1cnJlbnRSYW5nZVdpZHRoO1xuICAgIGlmICh0b29sdGlwT3ZlcmZsb3dzTGVmdEVkZ2UpIHtcbiAgICAgIHRoaXMudG9vbHRpcFNoaWZ0ID0gYCR7dG9vbHRpcFdpZHRoIC0gdGhpcy5NSU5fVE9PTFRJUF9TSElGVH1weGA7XG4gICAgfSBlbHNlIGlmICh0b29sdGlwT3ZlcmZsb3dzUmlnaHRFZGdlKSB7XG4gICAgICB0aGlzLnRvb2x0aXBTaGlmdCA9IGAke3RoaXMuTUlOX1RPT0xUSVBfU0hJRlR9cHhgO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnRvb2x0aXBTaGlmdCA9IHRoaXMuREVGQVVMVF9UT09MVElQX1NISUZUO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0dXBUb29sdGlwU2hpZnRpbmdJZlBvc3NpYmxlKCkge1xuICAgIGlmIChcbiAgICAgIHRoaXMuY29uZmlnPy5vcmllbnRhdGlvbiA9PT0gJ2hvcml6b250YWwnICYmXG4gICAgICAhdGhpcy5jdXJyZW50UmFuZ2VXaWR0aE9ic2VydmVyICYmXG4gICAgICB0aGlzLnJhbmdlRGlzcGxheSAmJlxuICAgICAgdGhpcy5jdXJyZW50UmFuZ2VFbGVtZW50XG4gICAgKSB7XG4gICAgICB0aGlzLnNldHVwVG9vbHRpcFNoaWZ0aW5nKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRUb29sdGlwQmFja2dyb3VuZCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IGN1cnJlbnQgPSB0aGlzLmNvbmZpZy5jdXJyZW50O1xuICAgIHN3aXRjaCAodHJ1ZSkge1xuICAgICAgY2FzZSB0aGlzLmlzVmFsdWVJblJhbmdlKGN1cnJlbnQsIHRoaXMuY29uZmlnLnJlZFJhbmdlTWluLCB0aGlzLmNvbmZpZy5yZWRSYW5nZU1heCk6XG4gICAgICAgIHJldHVybiAnLS1jOHktcGFsZXR0ZS1zdGF0dXMtZGFuZ2VyJztcbiAgICAgIGNhc2UgdGhpcy5pc1ZhbHVlSW5SYW5nZShjdXJyZW50LCB0aGlzLmNvbmZpZy55ZWxsb3dSYW5nZU1pbiwgdGhpcy5jb25maWcueWVsbG93UmFuZ2VNYXgpOlxuICAgICAgICByZXR1cm4gJy0tYzh5LXBhbGV0dGUtc3RhdHVzLXdhcm5pbmcnO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuICctLWM4eS1wYWxldHRlLWdyYXktMzAnO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaXNWYWx1ZUluUmFuZ2UodmFsdWU6IG51bWJlciwgbWluOiBudW1iZXIsIG1heDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIG1pbiAhPSBudWxsICYmIG1heCAhPSBudWxsICYmIHZhbHVlID49IG1pbiAmJiB2YWx1ZSA8PSBtYXg7XG4gIH1cbn1cbiIsIjxkaXZcbiAgW25nQ2xhc3NdPVwie1xuICAgICdyYW5nZS1kaXNwbGF5LS12ZXJ0aWNhbCc6IGNvbmZpZy5vcmllbnRhdGlvbiA9PT0gJ3ZlcnRpY2FsJyxcbiAgICAncmFuZ2UtZGlzcGxheS0tY29tcGFjdCc6IGRpc3BsYXkgPT09ICdjb21wYWN0JyxcbiAgICAncmFuZ2UtZGlzcGxheS0taW5saW5lJzogZGlzcGxheSA9PT0gJ2lubGluZSdcbiAgfVwiXG4gIGF0dHIuZGF0YS1sYWJlbD1cInt7IGNvbmZpZy51bml0IH19XCJcbj5cbiAgPGRpdlxuICAgIGNsYXNzPVwicmFuZ2UtZGlzcGxheVwiXG4gICAgI3JhbmdlRGlzcGxheVxuICA+XG4gICAgPGRpdiBjbGFzcz1cInJhbmdlLWRpc3BsYXlfX3JhbmdlXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwicmFuZ2UtZGlzcGxheV9fcmFuZ2VfX3VuaXRcIj5cbiAgICAgICAge3sgY29uZmlnLnVuaXQgfX1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICAqbmdJZj1cImlzWWVsbG93UmFuZ2VEaXNwbGF5ZWQoKVwiXG4gICAgICAgIGNsYXNzPVwicmFuZ2UtZGlzcGxheV9fcmFuZ2VfX21pblwiXG4gICAgICA+PC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgICpuZ0lmPVwiaXNSZWRSYW5nZURpc3BsYXllZCgpXCJcbiAgICAgICAgY2xhc3M9XCJyYW5nZS1kaXNwbGF5X19yYW5nZV9fbWF4XCJcbiAgICAgID48L2Rpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgKm5nSWY9XCJjaGVja1RhcmdldCgpXCJcbiAgICAgICAgY2xhc3M9XCJyYW5nZS1kaXNwbGF5X19yYW5nZV9fdGFyZ2V0XCJcbiAgICAgICAgYXR0ci5kYXRhLWxhYmVsPVwie3sgY29uZmlnLnRhcmdldCB9fSB7eyBjb25maWcudW5pdCB9fVwiXG4gICAgICAgIHRpdGxlPVwie3sgJ1RhcmdldCcgfCB0cmFuc2xhdGUgfX06IHt7IGNvbmZpZy50YXJnZXQgfX0ge3sgY29uZmlnLnVuaXQgfX1cIlxuICAgICAgPjwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICBbbmdTdHlsZV09XCJ7XG4gICAgICAgICAgZGlzcGxheTpcbiAgICAgICAgICAgIGNvbmZpZy5jdXJyZW50ICE9IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgY29uZmlnLmN1cnJlbnQgPj0gY29uZmlnLm1pbiAmJlxuICAgICAgICAgICAgY29uZmlnLmN1cnJlbnQgPD0gY29uZmlnLm1heFxuICAgICAgICAgICAgICA/ICdibG9jaydcbiAgICAgICAgICAgICAgOiAnbm9uZSdcbiAgICAgICAgfVwiXG4gICAgICAgICNjdXJyZW50UmFuZ2VFbGVtZW50XG4gICAgICAgIGNsYXNzPVwicmFuZ2UtZGlzcGxheV9fcmFuZ2VfX2N1cnJlbnRcIlxuICAgICAgICBhdHRyLmRhdGEtbGFiZWw9XCJ7eyBjb25maWcuY3VycmVudCB9fSB7eyBjb25maWcudW5pdCB9fSAmI3hhO3t7IGNvbmZpZy50aW1lIHwgYzh5RGF0ZSB9fVwiXG4gICAgICAgIHRpdGxlPVwie3sgJ0N1cnJlbnQnIHwgdHJhbnNsYXRlIH19OiB7eyBjb25maWcuY3VycmVudCB9fSB7eyBjb25maWcudW5pdCB9fSB8IHt7XG4gICAgICAgICAgY29uZmlnLnRpbWUgfCBjOHlEYXRlXG4gICAgICAgIH19XCJcbiAgICAgID48L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwicmFuZ2UtZGlzcGxheV9fcnVsZXJcIj5cbiAgICAgIDxkaXZcbiAgICAgICAgKm5nRm9yPVwibGV0IHggb2YgW10uY29uc3RydWN0b3IoMTApOyBsZXQgaW5kZXggPSBpbmRleDsgdHJhY2tCeTogdHJhY2tCeUluZGV4XCJcbiAgICAgICAgYXR0ci5kYXRhLWxhYmVsPVwie3sgcnVsZXJDYWxjKGluZGV4KSB9fVwiXG4gICAgICAgIGNsYXNzPVwicmFuZ2UtZGlzcGxheV9fdGlja1wiXG4gICAgICA+PC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgIGF0dHIuZGF0YS1sYWJlbD1cInt7IGNvbmZpZy5tYXggfHwgMTAwIHwgbnVtYmVyIH19XCJcbiAgICAgICAgY2xhc3M9XCJyYW5nZS1kaXNwbGF5X190aWNrXCJcbiAgICAgID48L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
165
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFuZ2UtZGlzcGxheS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jb3JlL3JhbmdlLWRpc3BsYXkvcmFuZ2UtZGlzcGxheS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9jb3JlL3JhbmdlLWRpc3BsYXkvcmFuZ2UtZGlzcGxheS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUNULFVBQVUsRUFDVixXQUFXLEVBQ1gsS0FBSyxFQUdMLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7O0FBT3BGLE1BQU0sT0FBTyxxQkFBcUI7SUEyRGhDLFlBQW9CLFNBQXVCO1FBQXZCLGNBQVMsR0FBVCxTQUFTLENBQWM7UUExRGxDLFdBQU0sR0FBaUIsRUFBRSxDQUFDO1FBQzFCLFlBQU8sR0FBa0MsTUFBTSxDQUFDO1FBRWpELDZCQUF3QixHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7UUFDMUQsNEdBQTRHO1FBQzNGLHdDQUFtQyxHQUFHLEdBQUcsQ0FBQztRQUMxQywwQkFBcUIsR0FBRyxLQUFLLENBQUM7UUFDOUIsc0JBQWlCLEdBQUcsRUFBRSxDQUFDO1FBQ2hDLGlCQUFZLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDO1FBaUQxQyxlQUFVLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQUNLLENBQUM7SUFqRC9DLElBQ0ksV0FBVztRQUNiLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUM7UUFDaEMsSUFBSSxDQUFDLElB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O2dCQUdwQyxtQkFBbUI7c0JBRDFCLFNBQVM7dUJBQUMscUJBQXFCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBIb3N0QmluZGluZyxcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgUmFuZ2VEaXNwbGF5IH0gZnJvbSAnLi9yYW5nZS1kaXNwbGF5Lm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LXJhbmdlLWRpc3BsYXknLFxuICB0ZW1wbGF0ZVVybDogJy4vcmFuZ2UtZGlzcGxheS5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgUmFuZ2VEaXNwbGF5Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95LCBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBjb25maWc6IFJhbmdlRGlzcGxheSA9IHt9O1xuICBASW5wdXQoKSBkaXNwbGF5OiAnZnVsbCcgfCAnY29tcGFjdCcgfCAnaW5saW5lJyA9ICdmdWxsJztcbiAgcHJpdmF0ZSBjdXJyZW50UmFuZ2VXaWR0aE9ic2VydmVyOiBSZXNpemVPYnNlcnZlcjtcbiAgcHJpdmF0ZSBjdXJyZW50UmFuZ2VXaWR0aENoYW5nZWQgPSBuZXcgU3ViamVjdDxFbGVtZW50PigpO1xuICAvLyB3aWR0aCBvZiBjdXJyZW50IHJhbmdlIGlzIGNoYW5naW5nIHdpdGhpbiAxNTBtcywgc2VlIHN0eWxlIGRlY2xhcmF0aW9uIGZvciAucmFuZ2UtZGlzcGxheV9fcmFuZ2VfX2N1cnJlbnRcbiAgcHJpdmF0ZSByZWFkb25seSBDVVJSRU5UX1JBTkdFX1dJRFRIX1RSQU5TSVRJT05fVElNRSA9IDE1MDtcbiAgcHJpdmF0ZSByZWFkb25seSBERUZBVUxUX1RPT0xUSVBfU0hJRlQgPSAnNTAlJztcbiAgcHJpdmF0ZSByZWFkb25seSBNSU5fVE9PTFRJUF9TSElGVCA9IDEwO1xuICBwcml2YXRlIHRvb2x0aXBTaGlmdCA9IHRoaXMuREVGQVVMVF9UT09MVElQX1NISUZUO1xuICBASG9zdEJpbmRpbmcoJ2F0dHIuc3R5bGUnKVxuICBnZXQgaW5saW5lU3R5bGUoKSB7XG4gICAgdGhpcy5jb25maWcgPSB0aGlzLmNvbmZpZyB8fCB7fTtcbiAgICBpZiAoIXRoaXMuY29uZmlnLm1pbikge1xuICAgICAgdGhpcy5jb25maWcubWluID0gMDtcbiAgICB9XG4gICAgaWYgKCF0aGlzLmNvbmZpZy5tYXggJiYgdGhpcy5jb25maWcubWF4ICE9PSAwKSB7XG4gICAgICB0aGlzLmNvbmZpZy5tYXggPSAxMDA7XG4gICAgfVxuICAgIGlmICh0aGlzLmNvbmZpZy5mcmFjdGlvblNpemUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5jb25maWcuY3VycmVudCA9IHBhcnNlRmxvYXQodGhpcy5jb25maWcuY3VycmVudC50b0ZpeGVkKHRoaXMuY29uZmlnLmZyYWN0aW9uU2l6ZSkpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFN0eWxlKFxuICAgICAgYFxuICAgICAgICAgIC0tcmFuZ2UtbWluOiAke3RoaXMuY29uZmlnLm1pbn07XG4gICAgICAgICAgLS1yYW5nZS1tYXg6ICR7dGhpcy5jb25maWcubWF4fTtcbiAgICAgICAgICAtLXJhbmdlLWRpc3BsYXktdG9vbHRpcC10cmFuc2xhdGU6IHRyYW5zbGF0ZSgke3RoaXMudG9vbHRpcFNoaWZ0fSwgLTU2cHgpO1xuICAgICAgICAgIC0tcmFuZ2UtZGlzcGxheS10b29sdGlwLWJnOiB2YXIoJHt0aGlzLmdldFRvb2x0aXBCYWNrZ3JvdW5kKCl9KTtcbiAgICAgICAgICAtLWZ1bGwtcmFuZ2U6ICR7dGhpcy5jb25maWcubWF4IC0gdGhpcy5jb25maWcubWlufTtcbiAgICAgICAgICAtLW1lYXN1cmVtZW50LXRhcmdldDogJHtcbiAgICAgICAgICAgICgodGhpcy5jb25maWcudGFyZ2V0IC0gdGhpcy5jb25maWcubWluKSAqIDEwMCkgLyAodGhpcy5jb25maWcubWF4IC0gdGhpcy5jb25maWcubWluKVxuICAgICAgICAgIH0lO1xuICAgICAgICAgIC0tbWVhc3VyZW1lbnQtY3VycmVudDogJHtcbiAgICAgICAgICAgICgodGhpcy5jb25maWcuY3VycmVudCAtIHRoaXMuY29uZmlnLm1pbikgKiAxMDApIC8gKHRoaXMuY29uZmlnLm1heCAtIHRoaXMuY29uZmlnLm1pbilcbiAgICAgICAgICB9JTtcbiAgICAgICAgICAtLXJhbmdlLXktbWluOiAke1xuICAgICAgICAgICAgKCh0aGlzLmNvbmZpZy55ZWxsb3dSYW5nZU1pbiAtIHRoaXMuY29uZmlnLm1pbikgKiAxMDApIC9cbiAgICAgICAgICAgICh0aGlzLmNvbmZpZy5tYXggLSB0aGlzLmNvbmZpZy5taW4pXG4gICAgICAgICAgfSU7XG4gICAgICAgICAgLS1yYW5nZS15LW1heDogJHtcbiAgICAgICAgICAgICgodGhpcy5jb25maWcueWVsbG93UmFuZ2VNYXggLSB0aGlzLmNvbmZpZy5taW4pIC8gKHRoaXMuY29uZmlnLm1heCAtIHRoaXMuY29uZmlnLm1pbikpICpcbiAgICAgICAgICAgIDEwMFxuICAgICAgICAgIH0lO1xuICAgICAgICAgIC0tcmFuZ2Utci1taW46ICR7XG4gICAgICAgICAgICAoKHRoaXMuY29uZmlnLnJlZFJhbmdlTWluIC0gdGhpcy5jb25maWcubWluKSAqIDEwMCkgL1xuICAgICAgICAgICAgKHRoaXMuY29uZmlnLm1heCAtIHRoaXMuY29uZmlnLm1pbilcbiAgICAgICAgICB9JTtcbiAgICAgICAgICAtLXJhbmdlLXItbWF4OiAke1xuICAgICAgICAgICAgKCh0aGlzLmNvbmZpZy5yZWRSYW5nZU1heCAtIHRoaXMuY29uZmlnLm1pbikgLyAodGhpcy5jb25maWcubWF4IC0gdGhpcy5jb25maWcubWluKSkgKlxuICAgICAgICAgICAgMTAwXG4gICAgICAgICAgfSU7XG4gICAgICAgIGBcbiAgICApO1xuICB9XG4gIEBWaWV3Q2hpbGQoJ3JhbmdlRGlzcGxheScsIHsgc3RhdGljOiBmYWxzZSB9KVxuICBwcml2YXRlIHJhbmdlRGlzcGxheTogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgnY3VycmVudFJhbmdlRWxlbWVudCcsIHsgc3RhdGljOiBmYWxzZSB9KVxuICBwcml2YXRlIGN1cnJlbnRSYW5nZUVsZW1lbnQ6IEVsZW1lbnRSZWY7XG4gIHByaXZhdGUgZGVzdHJveWVkJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc2FuaXRpemVyOiBEb21TYW5pdGl6ZXIpIHt9XG5cbiAgbmdPbkNoYW5nZXMoKSB7XG4gICAgLy8gSXQncyBuZWNlc3NhcnkgdG8gaGFuZGxlIHRvb2x0aXAgc2hpZnRpbmcgYm90aCBpbiBPbkNoYW5nZXMgYW5kIEFmdGVyVmlld0luaXQuIEluIGNhc2Ugb2YgTGluZWFyIGdhdWdlIHdpZGdldCwgdmlldyBpc1xuICAgIC8vIHJlbmRlcmVkIGZpcnN0IChzbyBhcyBlbGVtZW50cyBuZWVkZWQgZm9yIGNhbGN1bGF0aW5nIHNoaWZ0aW5nKSBhbmQgY29uZmlnIG9yaWVudGF0aW9uIGlzIHNldCBsYXRlciBvbi5cbiAgICAvLyBJbiBvdGhlciBjYXNlcyBpdCdzIHBvc3NpYmxlIHRoYXQgb3JpZW50YXRpb24gaXMgZGVmaW5lZCBvbiBpbml0aWFsaXphdGlvbiBvZiBjbGFzcyBhbmQgdmlldyBlbGVtZW50cyBhcmUgcmVuZGVyZWQgbGF0ZXIuXG4gICAgdGhpcy5zZXR1cFRvb2x0aXBTaGlmdGluZ0lmUG9zc2libGUoKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLnNldHVwVG9vbHRpcFNoaWZ0aW5nSWZQb3NzaWJsZSgpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5jdXJyZW50UmFuZ2VXaWR0aE9ic2VydmVyPy5kaXNjb25uZWN0KCk7XG4gICAgdGhpcy5kZXN0cm95ZWQkLm5leHQoKTtcbiAgICB0aGlzLmRlc3Ryb3llZCQuY29tcGxldGUoKTtcbiAgfVxuXG4gIGNoZWNrVGFyZ2V0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLmNvbmZpZy50YXJnZXQgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgdGhpcy5jb25maWcudGFyZ2V0ICE9PSBudWxsICYmXG4gICAgICB0aGlzLmNvbmZpZy50YXJnZXQgPj0gdGhpcy5jb25maWcubWluICYmXG4gICAgICB0aGlzLmNvbmZpZy50YXJnZXQgPD0gdGhpcy5jb25maWcubWF4XG4gICAgKTtcbiAgfVxuXG4gIHJ1bGVyQ2FsYyhpbmRleCkge1xuICAgIGNvbnN0IG51bTogbnVtYmVyID0gdGhpcy5jb25maWcubWluICsgKCh0aGlzLmNvbmZpZy5tYXggLSB0aGlzLmNvbmZpZy5taW4pIC8gMTApICogaW5kZXg7XG4gICAgaWYgKHRoaXMuY29uZmlnLmZyYWN0aW9uU2l6ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gcGFyc2VGbG9hdChudW0udG9GaXhlZCh0aGlzLmNvbmZpZy5mcmFjdGlvblNpemUpKTtcbiAgICB9XG4gICAgcmV0dXJuIHBhcnNlRmxvYXQobnVtLnRvRml4ZWQoMikpO1xuICB9XG5cbiAgdHJhY2tCeUluZGV4KGluZGV4OiBudW1iZXIpOiBudW1iZXIge1xuICAgIHJldHVybiBpbmRleDtcbiAgfVxuXG4gIGlzUmVkUmFuZ2VEaXNwbGF5ZWQoKSB7XG4gICAgY29uc3QgeyByZWRSYW5nZU1pbiwgcmVkUmFuZ2VNYXggfSA9IHRoaXMuY29uZmlnO1xuICAgIHJldHVybiB0aGlzLmlzUmFuZ2VEaXNwbGF5ZWQocmVkUmFuZ2VNaW4sIHJlZFJhbmdlTWF4KTtcbiAgfVxuXG4gIGlzWWVsbG93UmFuZ2VEaXNwbGF5ZWQoKSB7XG4gICAgY29uc3QgeyB5ZWxsb3dSYW5nZU1pbiwgeWVsbG93UmFuZ2VNYXggfSA9IHRoaXMuY29uZmlnO1xuICAgIHJldHVybiB0aGlzLmlzUmFuZ2VEaXNwbGF5ZWQoeWVsbG93UmFuZ2VNaW4sIHllbGxvd1JhbmdlTWF4KTtcbiAgfVxuXG4gIGlzUmFuZ2VEaXNwbGF5ZWQocmFuZ2VNaW4sIHJhbmdlTWF4KSB7XG4gICAgcmV0dXJuIHJhbmdlTWluID09PSAwIHx8IHJhbmdlTWF4ID09PSAwIHx8IChyYW5nZU1pbiAmJiByYW5nZU1heCk7XG4gIH1cblxuICBwcml2YXRlIHNldHVwVG9vbHRpcFNoaWZ0aW5nKCkge1xuICAgIHRoaXMuY3VycmVudFJhbmdlV2lkdGhPYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcigoW3ZhbF0pID0+IHtcbiAgICAgIGlmIChnZXRDb21wdXRlZFN0eWxlKHZhbC50YXJnZXQsIG51bGwpLmRpc3BsYXkgPT09ICdibG9jaycpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50UmFuZ2VXaWR0aENoYW5nZWQubmV4dCh2YWwudGFyZ2V0KTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMuY3VycmVudFJhbmdlV2lkdGhPYnNlcnZlci5vYnNlcnZlKHRoaXMuY3VycmVudFJhbmdlRWxlbWVudC5uYXRpdmVFbGVtZW50KTtcblxuICAgIHRoaXMuY3VycmVudFJhbmdlV2lkdGhDaGFuZ2VkXG4gICAgICAucGlwZShcbiAgICAgICAgZGVib3VuY2VUaW1lKHRoaXMuQ1VSUkVOVF9SQU5HRV9XSURUSF9UUkFOU0lUSU9OX1RJTUUpLFxuICAgICAgICBtYXAoKHJhbmdlRWxlbWVudDogRWxlbWVudCkgPT4gcGFyc2VJbnQoZ2V0Q29tcHV0ZWRTdHlsZShyYW5nZUVsZW1lbnQsIG51bGwpLndpZHRoKSksXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKHJhbmdlRWxlbWVudFdpZHRoID0+IHtcbiAgICAgICAgdGhpcy5zZXRUb29sdGlwU2hpZnRWYWx1ZShyYW5nZUVsZW1lbnRXaWR0aCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0VG9vbHRpcFNoaWZ0VmFsdWUocmFuZ2VFbGVtZW50V2lkdGg6IG51bWJlcikge1xuICAgIGNvbnN0IHRvb2x0aXBXaWR0aCA9IHBhcnNlSW50KFxuICAgICAgZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLmN1cnJlbnRSYW5nZUVsZW1lbnQubmF0aXZlRWxlbWVudCwgJzphZnRlcicpLndpZHRoXG4gICAgKTtcbiAgICBjb25zdCBjdXJyZW50UmFuZ2VXaWR0aCA9IHJhbmdlRWxlbWVudFdpZHRoO1xuICAgIGNvbnN0IHJhbmdlRGlzcGxheVdpZHRoID0gcGFyc2VJbnQoXG4gICAgICBnZXRDb21wdXRlZFN0eWxlKHRoaXMucmFuZ2VEaXNwbGF5Lm5hdGl2ZUVsZW1lbnQsIG51bGwpLmdldFByb3BlcnR5VmFsdWUoJ3dpZHRoJylcbiAgICApO1xuICAgIGNvbnN0IHJhbmdlRGlzcGxheVBhZGRpbmdMZWZ0ID0gcGFyc2VJbnQoXG4gICAgICBnZXRDb21wdXRlZFN0eWxlKHRoaXMucmFuZ2VEaXNwbGF5Lm5hdGl2ZUVsZW1lbnQsIG51bGwpLmdldFByb3BlcnR5VmFsdWUoJ3BhZGRpbmctbGVmdCcpXG4gICAgKTtcbiAgICBjb25zdCB0b29sdGlwT3ZlcmZsb3dzTGVmdEVkZ2UgPSB0b29sdGlwV2lkdGggLyAyID4gcmFuZ2VEaXNwbGF5UGFkZGluZ0xlZnQgKyBjdXJyZW50UmFuZ2VXaWR0aDtcbiAgICBjb25zdCB0b29sdGlwT3ZlcmZsb3dzUmlnaHRFZGdlID1cbiAgICAgIHRvb2x0aXBXaWR0aCAvIDIgPiByYW5nZURpc3BsYXlXaWR0aCAtIHJhbmdlRGlzcGxheVBhZGRpbmdMZWZ0IC0gY3VycmVudFJhbmdlV2lkdGg7XG4gICAgaWYgKHRvb2x0aXBPdmVyZmxvd3NMZWZ0RWRnZSkge1xuICAgICAgdGhpcy50b29sdGlwU2hpZnQgPSBgJHt0b29sdGlwV2lkdGggLSB0aGlzLk1JTl9UT09MVElQX1NISUZUfXB4YDtcbiAgICB9IGVsc2UgaWYgKHRvb2x0aXBPdmVyZmxvd3NSaWdodEVkZ2UpIHtcbiAgICAgIHRoaXMudG9vbHRpcFNoaWZ0ID0gYCR7dGhpcy5NSU5fVE9PTFRJUF9TSElGVH1weGA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudG9vbHRpcFNoaWZ0ID0gdGhpcy5ERUZBVUxUX1RPT0xUSVBfU0hJRlQ7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXR1cFRvb2x0aXBTaGlmdGluZ0lmUG9zc2libGUoKSB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5jb25maWc/Lm9yaWVudGF0aW9uID09PSAnaG9yaXpvbnRhbCcgJiZcbiAgICAgICF0aGlzLmN1cnJlbnRSYW5nZVdpZHRoT2JzZXJ2ZXIgJiZcbiAgICAgIHRoaXMucmFuZ2VEaXNwbGF5ICYmXG4gICAgICB0aGlzLmN1cnJlbnRSYW5nZUVsZW1lbnRcbiAgICApIHtcbiAgICAgIHRoaXMuc2V0dXBUb29sdGlwU2hpZnRpbmcoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldFRvb2x0aXBCYWNrZ3JvdW5kKCk6IHN0cmluZyB7XG4gICAgY29uc3QgY3VycmVudCA9IHRoaXMuY29uZmlnLmN1cnJlbnQ7XG4gICAgc3dpdGNoICh0cnVlKSB7XG4gICAgICBjYXNlIHRoaXMuaXNWYWx1ZUluUmFuZ2UoY3VycmVudCwgdGhpcy5jb25maWcucmVkUmFuZ2VNaW4sIHRoaXMuY29uZmlnLnJlZFJhbmdlTWF4KTpcbiAgICAgICAgcmV0dXJuICctLWM4eS1wYWxldHRlLXN0YXR1cy1kYW5nZXInO1xuICAgICAgY2FzZSB0aGlzLmlzVmFsdWVJblJhbmdlKGN1cnJlbnQsIHRoaXMuY29uZmlnLnllbGxvd1JhbmdlTWluLCB0aGlzLmNvbmZpZy55ZWxsb3dSYW5nZU1heCk6XG4gICAgICAgIHJldHVybiAnLS1jOHktcGFsZXR0ZS1zdGF0dXMtd2FybmluZyc7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gJy0tYzh5LXBhbGV0dGUtZ3JheS0zMCc7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpc1ZhbHVlSW5SYW5nZSh2YWx1ZTogbnVtYmVyLCBtaW46IG51bWJlciwgbWF4OiBudW1iZXIpOiBib29sZWFuIHtcbiAgICByZXR1cm4gbWluICE9IG51bGwgJiYgbWF4ICE9IG51bGwgJiYgdmFsdWUgPj0gbWluICYmIHZhbHVlIDw9IG1heDtcbiAgfVxufVxuIiwiPGRpdlxuICBbbmdDbGFzc109XCJ7XG4gICAgJ3JhbmdlLWRpc3BsYXktLXZlcnRpY2FsJzogY29uZmlnLm9yaWVudGF0aW9uID09PSAndmVydGljYWwnLFxuICAgICdyYW5nZS1kaXNwbGF5LS1jb21wYWN0JzogZGlzcGxheSA9PT0gJ2NvbXBhY3QnLFxuICAgICdyYW5nZS1kaXNwbGF5LS1pbmxpbmUnOiBkaXNwbGF5ID09PSAnaW5saW5lJ1xuICB9XCJcbiAgYXR0ci5kYXRhLWxhYmVsPVwie3sgY29uZmlnLnVuaXQgfX1cIlxuPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJyYW5nZS1kaXNwbGF5XCJcbiAgICAjcmFuZ2VEaXNwbGF5XG4gID5cbiAgICA8ZGl2IGNsYXNzPVwicmFuZ2UtZGlzcGxheV9fcmFuZ2VcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJyYW5nZS1kaXNwbGF5X19yYW5nZV9fdW5pdFwiPlxuICAgICAgICB7eyBjb25maWcudW5pdCB9fVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgICpuZ0lmPVwiaXNZZWxsb3dSYW5nZURpc3BsYXllZCgpXCJcbiAgICAgICAgY2xhc3M9XCJyYW5nZS1kaXNwbGF5X19yYW5nZV9fbWluXCJcbiAgICAgID48L2Rpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgKm5nSWY9XCJpc1JlZFJhbmdlRGlzcGxheWVkKClcIlxuICAgICAgICBjbGFzcz1cInJhbmdlLWRpc3BsYXlfX3JhbmdlX19tYXhcIlxuICAgICAgPjwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICAqbmdJZj1cImNoZWNrVGFyZ2V0KClcIlxuICAgICAgICBjbGFzcz1cInJhbmdlLWRpc3BsYXlfX3JhbmdlX190YXJnZXRcIlxuICAgICAgICBhdHRyLmRhdGEtbGFiZWw9XCJ7eyBjb25maWcudGFyZ2V0IH19IHt7IGNvbmZpZy51bml0IH19XCJcbiAgICAgICAgdGl0bGU9XCJ7eyAnVGFyZ2V0JyB8IHRyYW5zbGF0ZSB9fToge3sgY29uZmlnLnRhcmdldCB9fSB7eyBjb25maWcudW5pdCB9fVwiXG4gICAgICA+PC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgIFtuZ1N0eWxlXT1cIntcbiAgICAgICAgICBkaXNwbGF5OlxuICAgICAgICAgICAgY29uZmlnLmN1cnJlbnQgIT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgICBjb25maWcuY3VycmVudCA+PSBjb25maWcubWluICYmXG4gICAgICAgICAgICBjb25maWcuY3VycmVudCA8PSBjb25maWcubWF4XG4gICAgICAgICAgICAgID8gJ2Jsb2NrJ1xuICAgICAgICAgICAgICA6ICdub25lJ1xuICAgICAgICB9XCJcbiAgICAgICAgI2N1cnJlbnRSYW5nZUVsZW1lbnRcbiAgICAgICAgY2xhc3M9XCJyYW5nZS1kaXNwbGF5X19yYW5nZV9fY3VycmVudFwiXG4gICAgICAgIGF0dHIuZGF0YS1sYWJlbD1cInt7IGNvbmZpZy5jdXJyZW50IH19IHt7IGNvbmZpZy51bml0IH19ICYjeGE7e3sgY29uZmlnLnRpbWUgfCBjOHlEYXRlIH19XCJcbiAgICAgICAgdGl0bGU9XCJ7eyAnQ3VycmVudCcgfCB0cmFuc2xhdGUgfX06IHt7IGNvbmZpZy5jdXJyZW50IH19IHt7IGNvbmZpZy51bml0IH19IHwge3tcbiAgICAgICAgICBjb25maWcudGltZSB8IGM4eURhdGVcbiAgICAgICAgfX1cIlxuICAgICAgPjwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJyYW5nZS1kaXNwbGF5X19ydWxlclwiPlxuICAgICAgPGRpdlxuICAgICAgICAqbmdGb3I9XCJsZXQgeCBvZiBbXS5jb25zdHJ1Y3RvcigxMCk7IGxldCBpbmRleCA9IGluZGV4OyB0cmFja0J5OiB0cmFja0J5SW5kZXhcIlxuICAgICAgICBhdHRyLmRhdGEtbGFiZWw9XCJ7eyBydWxlckNhbGMoaW5kZXgpIH19XCJcbiAgICAgICAgY2xhc3M9XCJyYW5nZS1kaXNwbGF5X190aWNrXCJcbiAgICAgID48L2Rpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgYXR0ci5kYXRhLWxhYmVsPVwie3sgY29uZmlnLm1heCA/PyAxMDAgfCBudW1iZXIgfX1cIlxuICAgICAgICBjbGFzcz1cInJhbmdlLWRpc3BsYXlfX3RpY2tcIlxuICAgICAgPjwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -38,6 +38,7 @@ export class UploadArchiveComponent {
38
38
  try {
39
39
  await this.ecosystemService.validateArchiveToAppCompatibility(file, this.application);
40
40
  const isCustomMicroservice = this.ecosystemService.isCustomMicroservice(this.application);
41
+ const isPackage = this.ecosystemService.isPackage(this.application);
41
42
  this.archives = isCustomMicroservice
42
43
  ? []
43
44
  : await this.ecosystemService.listArchives(this.application.id);
@@ -46,7 +47,7 @@ export class UploadArchiveComponent {
46
47
  });
47
48
  this.uploadInProgress = true;
48
49
  this.uploadProgress.next(0);
49
- if (this.archives.length === 6 && !isCustomMicroservice) {
50
+ if (this.archives.length === 6 && !isCustomMicroservice && !isPackage) {
50
51
  await this.ecosystemService.removeOldestArchive(this.application, this.archives);
51
52
  }
52
53
  const app = await this.ecosystemService.uploadArchiveToApp(file, this.application, this.uploadNewVersion);
@@ -81,4 +82,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
81
82
  }], refresh: [{
82
83
  type: Output
83
84
  }] } });
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLWFyY2hpdmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vZWNvc3lzdGVtL3NoYXJlZC91cGxvYWQtYXJjaGl2ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9lY29zeXN0ZW0vc2hhcmVkL3VwbG9hZC1hcmNoaXZlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkUsT0FBTyxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUU1RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7QUFNdkQsTUFBTSxPQUFPLHNCQUFzQjtJQWVqQyxZQUFvQixnQkFBa0MsRUFBVSxZQUEwQjtRQUF0RSxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQVUsaUJBQVksR0FBWixZQUFZLENBQWM7UUFiakYscUJBQWdCLEdBQUcsS0FBSyxDQUFDO1FBRXhCLHNCQUFpQixHQUErQixJQUFJLFlBQVksRUFBZ0IsQ0FBQztRQUNqRixZQUFPLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFMUQsYUFBUSxHQUF5QixFQUFFLENBQUM7UUFLcEMscUJBQWdCLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLGtCQUFhLEdBQUcsS0FBSyxDQUFDO0lBRXVFLENBQUM7SUFFOUYsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQztJQUN4QyxDQUFDO0lBRUQsS0FBSyxDQUFDLGtCQUFrQixDQUFDLEtBQUs7UUFDNUIsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7WUFDMUIsSUFBSTtnQkFDRixNQUFNLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO2FBQ2hDO1lBQUMsT0FB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T3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJQXBwbGljYXRpb24sIElBcHBsaWNhdGlvbkJpbmFyeSB9IGZyb20gJ0BjOHkvY2xpZW50JztcbmltcG9ydCB7IEFsZXJ0U2VydmljZSwgZ2V0dGV4dCB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBFY29zeXN0ZW1TZXJ2aWNlIH0gZnJvbSAnLi9lY29zeXN0ZW0uc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS11cGxvYWQtYXJjaGl2ZScsXG4gIHRlbXBsYXRlVXJsOiAndXBsb2FkLWFyY2hpdmUuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFVwbG9hZEFyY2hpdmVDb21wb25lbnQge1xuICBASW5wdXQoKSBhcHBsaWNhdGlvbjogSUFwcGxpY2F0aW9uO1xuICBASW5wdXQoKSB1cGxvYWROZXdWZXJzaW9uID0gZmFsc2U7XG4gIEBJbnB1dCgpIHByZVVwbG9hZENhbGxiYWNrOiAoKSA9PiBQcm9taXNlPGFueT47XG4gIEBPdXRwdXQoKSBhcHBsaWNhdGlvbkNoYW5nZTogRXZlbnRFbWl0dGVyPElBcHBsaWNhdGlvbj4gPSBuZXcgRXZlbnRFbWl0dGVyPElBcHBsaWNhdGlvbj4oKTtcbiAgQE91dHB1dCgpIHJlZnJlc2g6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGFyY2hpdmVzOiBJQXBwbGljYXRpb25CaW5hcnlbXSA9IFtdO1xuICB0b0FjdGl2YXRlVmVyc2lvbklkOiBzdHJpbmc7XG4gIGxhc3Q6IElBcHBsaWNhdGlvbkJpbmFyeTtcbiAgaXNMb2FkaW5nOiBib29sZWFuO1xuICBmaWxlTGlzdDogRmlsZUxpc3Q7XG4gIHVwbG9hZEluUHJvZ3Jlc3MgPSBmYWxzZTtcbiAgY2FuUmVhY3RpdmF0ZSA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWNvc3lzdGVtU2VydmljZTogRWNvc3lzdGVtU2VydmljZSwgcHJpdmF0ZSBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZSkge31cblxuICBnZXQgdXBsb2FkUHJvZ3Jlc3MoKTogQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4ge1xuICAgIHJldHVybiB0aGlzLmVjb3N5c3RlbVNlcnZpY2UucHJvZ3Jlc3M7XG4gIH1cblxuICBhc3luYyBvbkZpbGVEcm9wcGVkRXZlbnQoZXZlbnQpIHtcbiAgICBpZiAodGhpcy5wcmVVcGxvYWRDYWxsYmFjaykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgdGhpcy5wcmVVcGxvYWRDYWxsYmFjaygpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAvLyBkbyBub3RoaW5nLCBpLmUuIHdoZW4gY29uZmlybSBtb2RhbCBjYW5jZWxzIGFuZCB0aHJvd3MgdW5kZWZpbmVkXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGV2ZW50ICYmIGV2ZW50Lmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGZpbGUgPSBldmVudFswXS5maWxlO1xuICAgICAgdGhpcy5vbkZpbGUoZmlsZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBvbkZpbGUoZmlsZTogRmlsZSk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLmVjb3N5c3RlbVNlcnZpY2UudmFsaWRhdGVBcmNoaXZlVG9BcHBDb21wYXRpYmlsaXR5KGZpbGUsIHRoaXMuYXBwbGljYXRpb24pO1xuICAgICAgY29uc3QgaXNDdXN0b21NaWNyb3NlcnZpY2UgPSB0aGlzLmVjb3N5c3RlbVNlcnZpY2UuaXNDdXN0b21NaWNyb3NlcnZpY2UodGhpcy5hcHBsaWNhdGlvbik7XG4gICAgICB0aGlzLmFyY2hpdmVzID0gaXNDdXN0b21NaWNyb3NlcnZpY2VcbiAgICAgICAgPyBbXVxuICAgICAgICA6IGF3YWl0IHRoaXMuZWNvc3lzdGVtU2VydmljZS5saXN0QXJjaGl2ZXModGhpcy5hcHBsaWNhdGlvbi5pZCk7XG4gICAgICB0aGlzLmFyY2hpdmVzLnNvcnQoKGEsIGIpID0+IHtcbiAgICAgICAgcmV0dXJuIChuZXcgRGF0ZShiLmNyZWF0ZWQpIGFzIGFueSkgLSAobmV3IERhdGUoYS5jcmVhdGVkKSBhcyBhbnkpO1xuICAgICAgfSk7XG4gICAgICB0aGlzLnVwbG9hZEluUHJvZ3Jlc3MgPSB0cnVlO1xuICAgICAgdGhpcy51cGxvYWRQcm9ncmVzcy5uZXh0KDApO1xuICAgICAgaWYgKHRoaXMuYXJjaGl2ZXMubGVuZ3RoID09PSA2ICYmICFpc0N1c3RvbU1pY3Jvc2VydmljZSkge1xuICAgICAgICBhd2FpdCB0aGlzLmVjb3N5c3RlbVNlcnZpY2UucmVtb3ZlT2xkZXN0QXJjaGl2ZSh0aGlzLmFwcGxpY2F0aW9uLCB0aGlzLmFyY2hpdmVzKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGFwcCA9IGF3YWl0IHRoaXMuZWNvc3lzdGVtU2VydmljZS51cGxvYWRBcmNoaXZlVG9BcHAoXG4gICAgICAgIGZpbGUsXG4gICAgICAgIHRoaXMuYXBwbGljYXRpb24sXG4gICAgICAgIHRoaXMudXBsb2FkTmV3VmVyc2lvblxuICAgICAgKTtcbiAgICAgIHRoaXMuYXBwbGljYXRpb25DaGFuZ2UuZW1pdChhcHApO1xuICAgICAgdGhpcy51cGxvYWRQcm9ncmVzcy5uZXh0KDEwMCk7XG4gICAgICB0aGlzLnVwbG9hZEluUHJvZ3Jlc3MgPSBmYWxzZTtcbiAgICAgIHRoaXMucmVmcmVzaC5lbWl0KCk7XG4gICAgICBpZiAodGhpcy51cGxvYWROZXdWZXJzaW9uKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLnN1Y2Nlc3MoZ2V0dGV4dCgnQXJjaGl2ZSB1cGxvYWRlZCBhbmQgYWN0aXZhdGVkLicpKTtcbiAgICB9IGNhdGNoIChleCkge1xuICAgICAgdGhpcy51cGxvYWRJblByb2dyZXNzID0gZmFsc2U7XG4gICAgICB0aGlzLmVjb3N5c3RlbVNlcnZpY2UuYWxlcnRFcnJvcihleCk7XG4gICAgfVxuICB9XG59XG4iLCI8Yzh5LWRyb3AtYXJlYVxuICAoZHJvcHBlZCk9XCJvbkZpbGVEcm9wcGVkRXZlbnQoJGV2ZW50KVwiXG4gIFthY2NlcHRdPVwiJy56aXAnXCJcbiAgW2xvYWRpbmddPVwidXBsb2FkSW5Qcm9ncmVzc1wiXG4gIFttYXhBbGxvd2VkRmlsZXNdPVwiMVwiXG4gIFttZXNzYWdlXT1cIidVcGxvYWQgYSAqLnppcCBmaWxlJyB8IHRyYW5zbGF0ZVwiXG4gIFtwcm9ncmVzc109XCJ1cGxvYWRQcm9ncmVzcyB8IGFzeW5jXCJcbiAgW2ZvcmNlSGlkZUxpc3RdPVwidHJ1ZVwiXG4gIGNsYXNzPVwiZHJvcC1hcmVhLXNtXCJcbj5cbjwvYzh5LWRyb3AtYXJlYT5cbiJdfQ==
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLWFyY2hpdmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vZWNvc3lzdGVtL3NoYXJlZC91cGxvYWQtYXJjaGl2ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9lY29zeXN0ZW0vc2hhcmVkL3VwbG9hZC1hcmNoaXZlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkUsT0FBTyxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUU1RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7QUFNdkQsTUFBTSxPQUFPLHNCQUFzQjtJQWVqQyxZQUFvQixnQkFBa0MsRUFBVSxZQUEwQjtRQUF0RSxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQVUsaUJBQVksR0FBWixZQUFZLENBQWM7UUFiakYscUJBQWdCLEdBQUcsS0FBSyxDQUFDO1FBRXhCLHNCQUFpQixHQUErQixJQUFJLFlBQVksRUFBZ0IsQ0FBQztRQUNqRixZQUFPLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFMUQsYUFBUSxHQUF5QixFQUFFLENBQUM7UUFLcEMscUJBQWdCLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLGtCQUFhLEdBQUcsS0FBSyxDQUFDO0lBRXVFLENBQUM7SUFFOUYsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQztJQUN4QyxDQUFDO0lBRUQsS0FBSyxDQUFDLGtCQUFrQixDQUFDLEtBQUs7UUFDNUIsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7WUFDMUIsSUFBSTtnQkFDRixNQUFNLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO2FBQ2hDO1lBQUMsT0FB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QTFCLE1BQU07Z0JBQ0csT0FBTztzQkFBaEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJQXBwbGljYXRpb24sIElBcHBsaWNhdGlvbkJpbmFyeSB9IGZyb20gJ0BjOHkvY2xpZW50JztcbmltcG9ydCB7IEFsZXJ0U2VydmljZSwgZ2V0dGV4dCB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBFY29zeXN0ZW1TZXJ2aWNlIH0gZnJvbSAnLi9lY29zeXN0ZW0uc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS11cGxvYWQtYXJjaGl2ZScsXG4gIHRlbXBsYXRlVXJsOiAndXBsb2FkLWFyY2hpdmUuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFVwbG9hZEFyY2hpdmVDb21wb25lbnQge1xuICBASW5wdXQoKSBhcHBsaWNhdGlvbjogSUFwcGxpY2F0aW9uO1xuICBASW5wdXQoKSB1cGxvYWROZXdWZXJzaW9uID0gZmFsc2U7XG4gIEBJbnB1dCgpIHByZVVwbG9hZENhbGxiYWNrOiAoKSA9PiBQcm9taXNlPGFueT47XG4gIEBPdXRwdXQoKSBhcHBsaWNhdGlvbkNoYW5nZTogRXZlbnRFbWl0dGVyPElBcHBsaWNhdGlvbj4gPSBuZXcgRXZlbnRFbWl0dGVyPElBcHBsaWNhdGlvbj4oKTtcbiAgQE91dHB1dCgpIHJlZnJlc2g6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGFyY2hpdmVzOiBJQXBwbGljYXRpb25CaW5hcnlbXSA9IFtdO1xuICB0b0FjdGl2YXRlVmVyc2lvbklkOiBzdHJpbmc7XG4gIGxhc3Q6IElBcHBsaWNhdGlvbkJpbmFyeTtcbiAgaXNMb2FkaW5nOiBib29sZWFuO1xuICBmaWxlTGlzdDogRmlsZUxpc3Q7XG4gIHVwbG9hZEluUHJvZ3Jlc3MgPSBmYWxzZTtcbiAgY2FuUmVhY3RpdmF0ZSA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWNvc3lzdGVtU2VydmljZTogRWNvc3lzdGVtU2VydmljZSwgcHJpdmF0ZSBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZSkge31cblxuICBnZXQgdXBsb2FkUHJvZ3Jlc3MoKTogQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4ge1xuICAgIHJldHVybiB0aGlzLmVjb3N5c3RlbVNlcnZpY2UucHJvZ3Jlc3M7XG4gIH1cblxuICBhc3luYyBvbkZpbGVEcm9wcGVkRXZlbnQoZXZlbnQpIHtcbiAgICBpZiAodGhpcy5wcmVVcGxvYWRDYWxsYmFjaykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgdGhpcy5wcmVVcGxvYWRDYWxsYmFjaygpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAvLyBkbyBub3RoaW5nLCBpLmUuIHdoZW4gY29uZmlybSBtb2RhbCBjYW5jZWxzIGFuZCB0aHJvd3MgdW5kZWZpbmVkXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGV2ZW50ICYmIGV2ZW50Lmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGZpbGUgPSBldmVudFswXS5maWxlO1xuICAgICAgdGhpcy5vbkZpbGUoZmlsZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBvbkZpbGUoZmlsZTogRmlsZSk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLmVjb3N5c3RlbVNlcnZpY2UudmFsaWRhdGVBcmNoaXZlVG9BcHBDb21wYXRpYmlsaXR5KGZpbGUsIHRoaXMuYXBwbGljYXRpb24pO1xuICAgICAgY29uc3QgaXNDdXN0b21NaWNyb3NlcnZpY2UgPSB0aGlzLmVjb3N5c3RlbVNlcnZpY2UuaXNDdXN0b21NaWNyb3NlcnZpY2UodGhpcy5hcHBsaWNhdGlvbik7XG4gICAgICBjb25zdCBpc1BhY2thZ2UgPSB0aGlzLmVjb3N5c3RlbVNlcnZpY2UuaXNQYWNrYWdlKHRoaXMuYXBwbGljYXRpb24pO1xuICAgICAgdGhpcy5hcmNoaXZlcyA9IGlzQ3VzdG9tTWljcm9zZXJ2aWNlXG4gICAgICAgID8gW11cbiAgICAgICAgOiBhd2FpdCB0aGlzLmVjb3N5c3RlbVNlcnZpY2UubGlzdEFyY2hpdmVzKHRoaXMuYXBwbGljYXRpb24uaWQpO1xuICAgICAgdGhpcy5hcmNoaXZlcy5zb3J0KChhLCBiKSA9PiB7XG4gICAgICAgIHJldHVybiAobmV3IERhdGUoYi5jcmVhdGVkKSBhcyBhbnkpIC0gKG5ldyBEYXRlKGEuY3JlYXRlZCkgYXMgYW55KTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy51cGxvYWRJblByb2dyZXNzID0gdHJ1ZTtcbiAgICAgIHRoaXMudXBsb2FkUHJvZ3Jlc3MubmV4dCgwKTtcbiAgICAgIGlmICh0aGlzLmFyY2hpdmVzLmxlbmd0aCA9PT0gNiAmJiAhaXNDdXN0b21NaWNyb3NlcnZpY2UgJiYgIWlzUGFja2FnZSkge1xuICAgICAgICBhd2FpdCB0aGlzLmVjb3N5c3RlbVNlcnZpY2UucmVtb3ZlT2xkZXN0QXJjaGl2ZSh0aGlzLmFwcGxpY2F0aW9uLCB0aGlzLmFyY2hpdmVzKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGFwcCA9IGF3YWl0IHRoaXMuZWNvc3lzdGVtU2VydmljZS51cGxvYWRBcmNoaXZlVG9BcHAoXG4gICAgICAgIGZpbGUsXG4gICAgICAgIHRoaXMuYXBwbGljYXRpb24sXG4gICAgICAgIHRoaXMudXBsb2FkTmV3VmVyc2lvblxuICAgICAgKTtcbiAgICAgIHRoaXMuYXBwbGljYXRpb25DaGFuZ2UuZW1pdChhcHApO1xuICAgICAgdGhpcy51cGxvYWRQcm9ncmVzcy5uZXh0KDEwMCk7XG4gICAgICB0aGlzLnVwbG9hZEluUHJvZ3Jlc3MgPSBmYWxzZTtcbiAgICAgIHRoaXMucmVmcmVzaC5lbWl0KCk7XG4gICAgICBpZiAodGhpcy51cGxvYWROZXdWZXJzaW9uKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLnN1Y2Nlc3MoZ2V0dGV4dCgnQXJjaGl2ZSB1cGxvYWRlZCBhbmQgYWN0aXZhdGVkLicpKTtcbiAgICB9IGNhdGNoIChleCkge1xuICAgICAgdGhpcy51cGxvYWRJblByb2dyZXNzID0gZmFsc2U7XG4gICAgICB0aGlzLmVjb3N5c3RlbVNlcnZpY2UuYWxlcnRFcnJvcihleCk7XG4gICAgfVxuICB9XG59XG4iLCI8Yzh5LWRyb3AtYXJlYVxuICAoZHJvcHBlZCk9XCJvbkZpbGVEcm9wcGVkRXZlbnQoJGV2ZW50KVwiXG4gIFthY2NlcHRdPVwiJy56aXAnXCJcbiAgW2xvYWRpbmddPVwidXBsb2FkSW5Qcm9ncmVzc1wiXG4gIFttYXhBbGxvd2VkRmlsZXNdPVwiMVwiXG4gIFttZXNzYWdlXT1cIidVcGxvYWQgYSAqLnppcCBmaWxlJyB8IHRyYW5zbGF0ZVwiXG4gIFtwcm9ncmVzc109XCJ1cGxvYWRQcm9ncmVzcyB8IGFzeW5jXCJcbiAgW2ZvcmNlSGlkZUxpc3RdPVwidHJ1ZVwiXG4gIGNsYXNzPVwiZHJvcC1hcmVhLXNtXCJcbj5cbjwvYzh5LWRyb3AtYXJlYT5cbiJdfQ==
@@ -176,6 +176,9 @@ export class SubAssetsGridComponent {
176
176
  trackByName(_index, column) {
177
177
  return column.name;
178
178
  }
179
+ onReload() {
180
+ this.assetNodeService.rootNode.refresh();
181
+ }
179
182
  async onDataSourceModifier(dataSourceModifier) {
180
183
  const promises = [];
181
184
  let counters;
@@ -216,7 +219,7 @@ SubAssetsGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0",
216
219
  provide: DATA_GRID_CONFIGURATION_CONTEXT_PROVIDER,
217
220
  useExisting: SubAssetsGridComponent
218
221
  }
219
- ], viewQueries: [{ propertyName: "dataGrid", first: true, predicate: DataGridComponent, descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<c8y-data-grid\n [title]=\"title\"\n [loadingItemsLabel]=\"loadingItemsLabel\"\n [columns]=\"columns\"\n [pagination]=\"pagination\"\n [actionControls]=\"actionControls\"\n [selectable]=\"selectable\"\n [bulkActionControls]=\"bulkActionControls\"\n [serverSideDataCallback]=\"serverSideDataCallback\"\n [infiniteScroll]=\"getInfiniteScrollMode\"\n [showCounterWarning]=\"showCounterWarning\"\n [refresh]=\"refresh\"\n [showSearch]=\"showSearch\"\n [displayOptions]=\"displayOptions\"\n (itemsSelect)=\"itemsSelect.emit($event)\"\n c8yProductExperience\n [actionName]=\"PRODUCT_EXPERIENCE.EVENT\"\n>\n <c8y-ui-empty-state\n [icon]=\"'c8y-group-add'\"\n [title]=\"'No items to display.' | translate\"\n [subtitle]=\"emptyStateText | translate\"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n\n <ng-container *ngFor=\"let column of columns; trackBy: trackByName\">\n <c8y-column [name]=\"column.name\"></c8y-column>\n </ng-container>\n</c8y-data-grid>\n", dependencies: [{ kind: "component", type: i6.EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "directive", type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.ColumnDirective, selector: "c8y-column", inputs: ["name"] }, { kind: "component", type: i6.DataGridComponent, selector: "c8y-data-grid", inputs: ["title", "loadMoreItemsLabel", "loadingItemsLabel", "showSearch", "refresh", "columns", "rows", "pagination", "infiniteScroll", "serverSideDataCallback", "selectable", "selectionPrimaryKey", "displayOptions", "actionControls", "bulkActionControls", "headerActionControls", "searchText", "configureColumnsEnabled", "showCounterWarning"], outputs: ["rowMouseOver", "rowMouseLeave", "rowClick", "onConfigChange", "onBeforeFilter", "onBeforeSearch", "onFilter", "itemsSelect", "onReload", "onAddCustomColumn", "onRemoveCustomColumn", "onColumnFilterReset", "onSort", "onPageSizeChange", "onColumnReordered", "onColumnVisibilityChange"] }, { kind: "directive", type: i6.ProductExperienceDirective, selector: "[c8yProductExperience]", inputs: ["actionName", "actionData", "inherit", "suppressDataOverriding"] }, { kind: "pipe", type: i6.C8yTranslatePipe, name: "translate" }] });
222
+ ], viewQueries: [{ propertyName: "dataGrid", first: true, predicate: DataGridComponent, descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<c8y-data-grid\n [title]=\"title\"\n [loadingItemsLabel]=\"loadingItemsLabel\"\n [columns]=\"columns\"\n [pagination]=\"pagination\"\n [actionControls]=\"actionControls\"\n [selectable]=\"selectable\"\n [bulkActionControls]=\"bulkActionControls\"\n [serverSideDataCallback]=\"serverSideDataCallback\"\n [infiniteScroll]=\"getInfiniteScrollMode\"\n [showCounterWarning]=\"showCounterWarning\"\n [refresh]=\"refresh\"\n [showSearch]=\"showSearch\"\n [displayOptions]=\"displayOptions\"\n (itemsSelect)=\"itemsSelect.emit($event)\"\n c8yProductExperience\n [actionName]=\"PRODUCT_EXPERIENCE.EVENT\"\n (onReload)=\"onReload()\"\n>\n <c8y-ui-empty-state\n [icon]=\"'c8y-group-add'\"\n [title]=\"'No items to display.' | translate\"\n [subtitle]=\"emptyStateText | translate\"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n\n <ng-container *ngFor=\"let column of columns; trackBy: trackByName\">\n <c8y-column [name]=\"column.name\"></c8y-column>\n </ng-container>\n</c8y-data-grid>\n", dependencies: [{ kind: "component", type: i6.EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "directive", type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.ColumnDirective, selector: "c8y-column", inputs: ["name"] }, { kind: "component", type: i6.DataGridComponent, selector: "c8y-data-grid", inputs: ["title", "loadMoreItemsLabel", "loadingItemsLabel", "showSearch", "refresh", "columns", "rows", "pagination", "infiniteScroll", "serverSideDataCallback", "selectable", "selectionPrimaryKey", "displayOptions", "actionControls", "bulkActionControls", "headerActionControls", "searchText", "configureColumnsEnabled", "showCounterWarning"], outputs: ["rowMouseOver", "rowMouseLeave", "rowClick", "onConfigChange", "onBeforeFilter", "onBeforeSearch", "onFilter", "itemsSelect", "onReload", "onAddCustomColumn", "onRemoveCustomColumn", "onColumnFilterReset", "onSort", "onPageSizeChange", "onColumnReordered", "onColumnVisibilityChange"] }, { kind: "directive", type: i6.ProductExperienceDirective, selector: "[c8yProductExperience]", inputs: ["actionName", "actionData", "inherit", "suppressDataOverriding"] }, { kind: "pipe", type: i6.C8yTranslatePipe, name: "translate" }] });
220
223
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: SubAssetsGridComponent, decorators: [{
221
224
  type: Component,
222
225
  args: [{ selector: 'c8y-sub-assets-grid', providers: [
@@ -236,7 +239,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
236
239
  provide: DATA_GRID_CONFIGURATION_CONTEXT_PROVIDER,
237
240
  useExisting: SubAssetsGridComponent
238
241
  }
239
- ], template: "<c8y-data-grid\n [title]=\"title\"\n [loadingItemsLabel]=\"loadingItemsLabel\"\n [columns]=\"columns\"\n [pagination]=\"pagination\"\n [actionControls]=\"actionControls\"\n [selectable]=\"selectable\"\n [bulkActionControls]=\"bulkActionControls\"\n [serverSideDataCallback]=\"serverSideDataCallback\"\n [infiniteScroll]=\"getInfiniteScrollMode\"\n [showCounterWarning]=\"showCounterWarning\"\n [refresh]=\"refresh\"\n [showSearch]=\"showSearch\"\n [displayOptions]=\"displayOptions\"\n (itemsSelect)=\"itemsSelect.emit($event)\"\n c8yProductExperience\n [actionName]=\"PRODUCT_EXPERIENCE.EVENT\"\n>\n <c8y-ui-empty-state\n [icon]=\"'c8y-group-add'\"\n [title]=\"'No items to display.' | translate\"\n [subtitle]=\"emptyStateText | translate\"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n\n <ng-container *ngFor=\"let column of columns; trackBy: trackByName\">\n <c8y-column [name]=\"column.name\"></c8y-column>\n </ng-container>\n</c8y-data-grid>\n" }]
242
+ ], template: "<c8y-data-grid\n [title]=\"title\"\n [loadingItemsLabel]=\"loadingItemsLabel\"\n [columns]=\"columns\"\n [pagination]=\"pagination\"\n [actionControls]=\"actionControls\"\n [selectable]=\"selectable\"\n [bulkActionControls]=\"bulkActionControls\"\n [serverSideDataCallback]=\"serverSideDataCallback\"\n [infiniteScroll]=\"getInfiniteScrollMode\"\n [showCounterWarning]=\"showCounterWarning\"\n [refresh]=\"refresh\"\n [showSearch]=\"showSearch\"\n [displayOptions]=\"displayOptions\"\n (itemsSelect)=\"itemsSelect.emit($event)\"\n c8yProductExperience\n [actionName]=\"PRODUCT_EXPERIENCE.EVENT\"\n (onReload)=\"onReload()\"\n>\n <c8y-ui-empty-state\n [icon]=\"'c8y-group-add'\"\n [title]=\"'No items to display.' | translate\"\n [subtitle]=\"emptyStateText | translate\"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n\n <ng-container *ngFor=\"let column of columns; trackBy: trackByName\">\n <c8y-column [name]=\"column.name\"></c8y-column>\n </ng-container>\n</c8y-data-grid>\n" }]
240
243
  }], ctorParameters: function () { return [{ type: i1.SubAssetsService }, { type: i2.BsModalService }, { type: i3.SmartGroupsService }, { type: i4.DeviceGridService }, { type: i5.AssetNodeService }]; }, propDecorators: { parentGroup: [{
241
244
  type: Input,
242
245
  args: ['parent-group']
@@ -280,4 +283,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
280
283
  type: Input,
281
284
  args: ['displayOptions']
282
285
  }] } });
283
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ViLWFzc2V0cy1ncmlkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3N1Yi1hc3NldHMvc3ViLWFzc2V0cy1ncmlkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uL3N1Yi1hc3NldHMvc3ViLWFzc2V0cy1ncmlkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBRU4sU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBa0Isa0JBQWtCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDakUsT0FBTyxFQUtMLGlCQUFpQixFQUVqQix3Q0FBd0MsRUFDeEMsZ0NBQWdDLEVBRWhDLE9BQU8sRUFLUCxvQ0FBb0MsRUFDckMsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFckQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDakcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDL0QsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDeEcsT0FBTyxFQUVMLGtDQUFrQyxFQUNuQyxNQUFNLGtEQUFrRCxDQUFDO0FBQzFELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGtEQUFrRCxDQUFDOzs7Ozs7Ozs7QUF1QjFGLE1BQU0sT0FBTyxzQkFBc0I7SUFrRmpDLFlBQ1Msb0JBQXNDLEVBQ3JDLGNBQThCLEVBQzlCLGtC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O3VCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElNYW5hZ2VkT2JqZWN0LCBTbWFydEdyb3Vwc1NlcnZpY2UgfSBmcm9tICdAYzh5L2NsaWVudCc7XG5pbXBvcnQge1xuICBBY3Rpb25Db250cm9sLFxuICBCdWlsdEluQWN0aW9uVHlwZSxcbiAgQnVsa0FjdGlvbkNvbnRyb2wsXG4gIENvbHVtbixcbiAgRGF0YUdyaWRDb21wb25lbnQsXG4gIERhdGFTb3VyY2VNb2RpZmllcixcbiAgREFUQV9HUklEX0NPTkZJR1VSQVRJT05fQ09OVEVYVF9QUk9WSURFUixcbiAgREFUQV9HUklEX0NPTkZJR1VSQVRJT05fU1RSQVRFR1ksXG4gIERpc3BsYXlPcHRpb25zLFxuICBnZXR0ZXh0LFxuICBHcmlkQ29uZmlnQ29udGV4dFByb3ZpZGVyLFxuICBQYWdpbmF0aW9uLFxuICBSb3csXG4gIFNlcnZlclNpZGVEYXRhUmVzdWx0LFxuICBVc2VyUHJlZmVyZW5jZXNDb25maWd1cmF0aW9uU3RyYXRlZ3lcbn0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBBc3NldE5vZGVTZXJ2aWNlIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9hc3NldHMtbmF2aWdhdG9yJztcbmltcG9ydCB7IERldmljZUdyaWRTZXJ2aWNlIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cy9kZXZpY2UtZ3JpZCc7XG5pbXBvcnQgeyBCc01vZGFsU2VydmljZSB9IGZyb20gJ25neC1ib290c3RyYXAvbW9kYWwnO1xuaW1wb3J0IHsgRGVsZXRlTW9kYWxDaGVja2JveGVzIH0gZnJvbSAnLi9kZWxldGUtYXNzZXRzLW1vZGFsJztcbmltcG9ydCB7IERlbGV0ZUFzc2V0c01vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi9kZWxldGUtYXNzZXRzLW1vZGFsL2RlbGV0ZS1hc3NldHMtbW9kYWwuY29tcG9uZW50JztcbmltcG9ydCB7IFBST0RVQ1RfRVhQRVJJRU5DRSB9IGZyb20gJy4vc2hhcmVkL3N1Yi1hc3NldHMubW9kZWwnO1xuaW1wb3J0IHsgU21hcnRHcm91cEdyaWRDb25maWd1cmF0aW9uU3RyYXRlZ3kgfSBmcm9tICcuL3NtYXJ0LWdyb3VwLWdyaWQtY29uZmlndXJhdGlvbi1zdHJhdGVneS5zZXJ2aWNlJztcbmltcG9ydCB7XG4gIFN1YkFzc2V0c0dyaWRDb25maWdDb250ZXh0LFxuICBTdWJBc3NldHNHcmlkQ29uZmlndXJhdGlvblN0cmF0ZWd5XG59IGZyb20gJy4vc3ViLWFzc2V0cy1ncmlkLWNvbmZpZ3VyYXRpb24tc3RyYXRlZ3kuc2VydmljZSc7XG5pbXBvcnQgeyBTdWJBc3NldHNTZXJ2aWNlIH0gZnJvbSAnLi9zdWItYXNzZXRzLnNlcnZpY2UnO1xuaW1wb3J0IHsgVW5hc3NpZ25Nb2RhbENvbXBvbmVudCB9IGZyb20gJy4vdW5hc3NpZ24tYXNzZXRzLW1vZGFsL3VuYXNzaWduLW1vZGFsLmNvbXBvbmVudCc7XG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktc3ViLWFzc2V0cy1ncmlkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3N1Yi1hc3NldHMtZ3JpZC5jb21wb25lbnQuaHRtbCcsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IFVzZXJQcmVmZXJlbmNlc0NvbmZpZ3VyYXRpb25TdHJhdGVneSxcbiAgICAgIHVzZUNsYXNzOiBVc2VyUHJlZmVyZW5jZXNDb25maWd1cmF0aW9uU3RyYXRlZ3lcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IFNtYXJ0R3JvdXBHcmlkQ29uZmlndXJhdGlvblN0cmF0ZWd5LFxuICAgICAgdXNlQ2xhc3M6IFNtYXJ0R3JvdXBHcmlkQ29uZmlndXJhdGlvblN0cmF0ZWd5XG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBEQVRBX0dSSURfQ09ORklHVVJBVElPTl9TVFJBVEVHWSxcbiAgICAgIHVzZUNsYXNzOiBTdWJBc3NldHNHcmlkQ29uZmlndXJhdGlvblN0cmF0ZWd5XG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBEQVRBX0dSSURfQ09ORklHVVJBVElPTl9DT05URVhUX1BST1ZJREVSLFxuICAgICAgdXNlRXhpc3Rpbmc6IFN1YkFzc2V0c0dyaWRDb21wb25lbnRcbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgU3ViQXNzZXRzR3JpZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgR3JpZENvbmZpZ0NvbnRleHRQcm92aWRlciB7XG4gIFBST0RVQ1RfRVhQRVJJRU5DRSA9IFBST0RVQ1RfRVhQRVJJRU5DRTtcbiAgQElucHV0KCdwYXJlbnQtZ3JvdXAnKSBwYXJlbnRHcm91cDogSU1hbmFnZWRPYmplY3Q7XG4gIEBJbnB1dCgpIHJlZnJlc2g6IEV2ZW50RW1pdHRlcjxhbnk+O1xuICBASW5wdXQoKSB0aXRsZTogc3RyaW5nID0gZ2V0dGV4dCgnU3ViYXNzZXRzJyk7XG4gIEBJbnB1dCgpIGVtcHR5U3RhdGVUZXh0OiBzdHJpbmcgPSBnZXR0ZXh0KFxuICAgICdBZGQgeW91ciBmaXJzdCBncm91cCBvciBhc3NpZ24gZGV2aWNlcyB1c2luZyB0aGUgYnV0dG9ucyBvbiB0aGUgYWN0aW9uIGJhci4nXG4gICk7XG4gIEBJbnB1dCgpIGxvYWRpbmdJdGVtc0xhYmVsOiBzdHJpbmcgPSBnZXR0ZXh0KCdMb2FkaW5nIGFzc2V0c+KApicpO1xuICAvKiogVGhlIG5hbWUgb2YgdGhlIGtleSB3aGVyZSBjb2x1bW5zIGNvbmZpZ3VyYXRpb24gd2lsbCBiZSBzdG9yZWQuICovXG4gIEBJbnB1dCgpIGNvbHVtbnNDb25maWdLZXk6IHN0cmluZztcblxuICBnZXQgY29sdW1ucygpIHtcbiAgICByZXR1cm4gdGhpcy5fY29sdW1ucztcbiAgfVxuICBASW5wdXQoKSBzZXQgY29sdW1ucyh2YWx1ZTogQ29sdW1uW10pIHtcbiAgICB0aGlzLl9jb2x1bW5zID0gdmFsdWUgPz8gdGhpcy5zdWJBc3NldHNHcmlkU2VydmljZS5nZXREZWZhdWx0Q29sdW1ucygpO1xuICB9XG4gIEBJbnB1dCgncGFnaW5hdGlvbicpIHNldCBfcGFnaW5hdGlvbih2YWx1ZTogUGFnaW5hdGlvbikge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5wYWdpbmF0aW9uID0gdmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucGFnaW5hdGlvbiA9IHRoaXMuc3ViQXNzZXRzR3JpZFNlcnZpY2UuZ2V0RGVmYXVsdFBhZ2luYXRpb24oKTtcbiAgICB9XG4gIH1cbiAgQElucHV0KCdhY3Rpb25Db250cm9scycpIHNldCBfYWN0aW9uQ29udHJvbHModmFsdWU6IEFjdGlvbkNvbnRyb2xbXSkge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5hY3Rpb25Db250cm9scyA9IHZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmFjdGlvbkNvbnRyb2xzID0gdGhpcy5zdWJBc3NldHNHcmlkU2VydmljZS5nZXREZWZhdWx0QWN0aW9uQ29udHJvbHMoKTtcbiAgICB9XG4gIH1cbiAgQElucHV0KCkgc2VsZWN0YWJsZSA9IGZhbHNlO1xuICBASW5wdXQoKSBiYXNlUXVlcnk6IGFueSA9IHt9O1xuICBASW5wdXQoJ2J1bGtBY3Rpb25Db250cm9scycpIHNldCBfYnVsa0FjdGlvbkNvbnRyb2xzKHZhbHVlOiBCdWxrQWN0aW9uQ29udHJvbFtdKSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLmJ1bGtBY3Rpb25Db250cm9scyA9IHZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmJ1bGtBY3Rpb25Db250cm9scyA9IHRoaXMuc3ViQXNzZXRzR3JpZFNlcnZpY2UuZ2V0RGVmYXVsdEJ1bGtBY3Rpb25Db250cm9scygpO1xuICAgIH1cbiAgfVxuICBASW5wdXQoKSBmaWx0ZXJhYmxlID0gdHJ1ZTtcbiAgQElucHV0KCkgc29ydGFibGUgPSB0cnVlO1xuICBAT3V0cHV0KCkgb25Db2x1bW5zQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q29sdW1uW10+ID0gbmV3IEV2ZW50RW1pdHRlcjxDb2x1bW5bXT4oKTtcbiAgQE91dHB1dCgpIGl0ZW1zU2VsZWN0OiBFdmVudEVtaXR0ZXI8c3RyaW5nW10+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmdbXT4oKTtcblxuICBwYWdpbmF0aW9uOiBQYWdpbmF0aW9uID0gdGhpcy5zdWJBc3NldHNHcmlkU2VydmljZS5nZXREZWZhdWx0UGFnaW5hdGlvbigpO1xuICBzaG93Q291bnRlcldhcm5pbmcgPSBmYWxzZTtcbiAgYWN0aW9uQ29udHJvbHM6IEFjdGlvbkNvbnRyb2xbXTtcbiAgYnVsa0FjdGlvbkNvbnRyb2xzOiBCdWxrQWN0aW9uQ29udHJvbFtdID1cbiAgICB0aGlzLnN1YkFzc2V0c0dyaWRTZXJ2aWNlLmdldERlZmF1bHRCdWxrQWN0aW9uQ29udHJvbHMoKTtcbiAgc2VydmVyU2lkZURhdGFDYWxsYmFjazogYW55O1xuXG4gIEBWaWV3Q2hpbGQoRGF0YUdyaWRDb21wb25lbnQsIHsgc3RhdGljOiB0cnVlIH0pXG4gIGRhdGFHcmlkOiBEYXRhR3JpZENvbXBvbmVudDtcblxuICBkaXNwbGF5T3B0aW9uczogRGlzcGxheU9wdGlvbnMgPSB7XG4gICAgc3RyaXBlZDogdHJ1ZSxcbiAgICBib3JkZXJlZDogZmFsc2UsXG4gICAgZ3JpZEhlYWRlcjogdHJ1ZSxcbiAgICBmaWx0ZXI6IHRydWVcbiAgfTtcblxuICBzaG93U2VhcmNoID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBfY29sdW1uczogQ29sdW1uW107XG5cbiAgZ2V0IGlzUm9vdEdyb3VwKCkge1xuICAgIHJldHVybiAhdGhpcy5wYXJlbnRHcm91cDtcbiAgfVxuXG4gIGdldCBnZXRJbmZpbml0ZVNjcm9sbE1vZGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNSb290R3JvdXAgJiYgdGhpcy5zdWJBc3NldHNHcmlkU2VydmljZS5pc1VzaW5nSW52ZW50b3J5Um9sZXMoKVxuICAgICAgPyAnYXV0bydcbiAgICAgIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgQElucHV0KCdkaXNwbGF5T3B0aW9ucycpXG4gIHNldCBfZGlzcGxheU9wdGlvbnMoZGlzcGxheU9wdGlvbnMpIHtcbiAgICB0aGlzLmRpc3BsYXlPcHRpb25zID0geyAuLi50aGlzLmRpc3BsYXlPcHRpb25zLCAuLi5kaXNwbGF5T3B0aW9ucyB9O1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHN1YkFzc2V0c0dyaWRTZXJ2aWNlOiBTdWJBc3NldHNTZXJ2aWNlLFxuICAgIHByaXZhdGUgYnNNb2RhbFNlcnZpY2U6IEJzTW9kYWxTZXJ2aWNlLFxuICAgIHByaXZhdGUgc21hcnRHcm91cHNTZXJ2aWNlOiBTbWFydEdyb3Vwc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBkZXZpY2VHcmlkU2VydmljZTogRGV2aWNlR3JpZFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhc3NldE5vZGVTZXJ2aWNlOiBBc3NldE5vZGVTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuc2VydmVyU2lkZURhdGFDYWxsYmFjayA9IHRoaXMub25EYXRhU291cmNlTW9kaWZpZXIuYmluZCh0aGlzKTtcbiAgfVxuXG4gIGdldEdyaWRDb25maWdDb250ZXh0KCk6IFN1YkFzc2V0c0dyaWRDb25maWdDb250ZXh0IHtcbiAgICBpZiAoISF0aGlzLmNvbHVtbnNDb25maWdLZXkpIHtcbiAgICAgIHJldHVybiB7IGtleTogdGhpcy5jb2x1bW5zQ29uZmlnS2V5LCBncm91cDogdGhpcy5wYXJlbnRHcm91cCB9O1xuICAgIH1cbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGNvbnN0IGlzRHluYW1pY0dyb3VwID1cbiAgICAgICEhdGhpcy5wYXJlbnRHcm91cCAmJiB0aGlzLmFzc2V0Tm9kZVNlcnZpY2UuaXNEeW5hbWljR3JvdXAodGhpcy5wYXJlbnRHcm91cCk7XG4gICAgdGhpcy5jb2x1bW5zID0gaXNEeW5hbWljR3JvdXBcbiAgICAgID8gdGhpcy5kZXZpY2VHcmlkU2VydmljZS5nZXREZWZhdWx0Q29sdW1ucygpXG4gICAgICA6IHRoaXMuc3ViQXNzZXRzR3JpZFNlcnZpY2UuZ2V0RGVmYXVsdENvbHVtbnModGhpcy5maWx0ZXJhYmxlLCB0aGlzLnNvcnRhYmxlKTtcbiAgICBpZiAoIXRoaXMuZmlsdGVyYWJsZSB8fCAhdGhpcy5zb3J0YWJsZSkge1xuICAgICAgdGhpcy5kaXNwbGF5T3B0aW9ucy5maWx0ZXIgPSB0aGlzLmZpbHRlcmFibGU7XG4gICAgICB0aGlzLmNvbHVtbnMuZm9yRWFjaChjb2x1bW4gPT4ge1xuICAgICAgICBjb2x1bW4uZmlsdGVyYWJsZSA9IHRoaXMuZmlsdGVyYWJsZTtcbiAgICAgICAgY29sdW1uLnNvcnRhYmxlID0gdGhpcy5zb3J0YWJsZTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLnNldEFjdGlvbkNvbnRyb2xzKCk7XG4gICAgdGhpcy5zaG93U2VhcmNoID0gaXNEeW5hbWljR3JvdXAgfHwgIXRoaXMucGFyZW50R3JvdXA7XG4gIH1cblxuICBhc3luYyBzZXRBY3Rpb25Db250cm9scygpIHtcbiAgICBjb25zdCBhY3Rpb25Db250cm9sczogQWN0aW9uQ29udHJvbFtdID0gW107XG4gICAgY29uc3QgeyBkYXRhOiBpc01pY3Jvc2VydmljZUluc3RhbGxlZCB9ID1cbiAgICAgIGF3YWl0IHRoaXMuc21hcnRHcm91cHNTZXJ2aWNlLmlzU21hcnRHcm91cHNWMk1pY3Jvc2VydmljZUluc3RhbGxlZCgpO1xuXG4gICAgY29uc3QgZGVsZXRlQWN0aW9uOiBBY3Rpb25Db250cm9sID0ge1xuICAgICAgdHlwZTogQnVpbHRJbkFjdGlvblR5cGUuRGVsZXRlLFxuICAgICAgY2FsbGJhY2s6IChhc3NldDogUm93KSA9PiB0aGlzLm9uRGVsZXRlQXNzZXQoYXNzZXQgYXMgSU1hbmFnZWRPYmplY3QsIHRoaXMucGFyZW50R3JvdXApLFxuICAgICAgc2hvd0lmOiAoYXNzZXQ6IFJvdykgPT4ge1xuICAgICAgICBpZiAodGhpcy5zbWFydEdyb3Vwc1NlcnZpY2UuaXNTbWFydEdyb3VwVjIoYXNzZXQgYXMgSU1hbmFnZWRPYmplY3QpKSB7XG4gICAgICAgICAgcmV0dXJuIGlzTWljcm9zZXJ2aWNlSW5zdGFsbGVkID8gdGhpcy5zdWJBc3NldHNHcmlkU2VydmljZS5jYW5EZWxldGVTbWFydEdyb3VwKCkgOiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnNtYXJ0R3JvdXBzU2VydmljZS5pc1NtYXJ0R3JvdXAoYXNzZXQgYXMgSU1hbmFnZWRPYmplY3QpKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuc3ViQXNzZXRzR3JpZFNlcnZpY2UuY2FuRGVsZXRlU21hcnRHcm91cCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGFjdGlvbkNvbnRyb2xzLnB1c2goZGVsZXRlQWN0aW9uKTtcblxuICAgIGNvbnN0IHVuYXNzaWduQWN0aW9uOiBBY3Rpb25Db250cm9sID0ge1xuICAgICAgdHlwZTogJ1VOQVNTSUdOJyxcbiAgICAgIGljb246ICd1bmxpbmsnLFxuICAgICAgdGV4dDogZ2V0dGV4dCgnVW5hc3NpZ24nKSxcbiAgICAgIGNhbGxiYWNrOiAoYXNzZXQ6IFJvdykgPT4gdGhpcy5vblVuYXNzaWduQXNzZXQoYXNzZXQgYXMgSU1hbmFnZWRPYmplY3QsIHRoaXMucGFyZW50R3JvdXApLFxuICAgICAgc2hvd0lmOiAoYXNzZXQ6IFJvdykgPT5cbiAgICAgICAgdGhpcy5zdWJBc3NldHNHcmlkU2VydmljZS5pc0RldmljZShhc3NldCBhcyBJTWFuYWdlZE9iamVjdCkgJiZcbiAgICAgICAgIXRoaXMuc3ViQXNzZXRzR3JpZFNlcnZpY2UuaXNTbWFydEdyb3VwKHRoaXMucGFyZW50R3JvdXAgYXMgSU1hbmFnZWRPYmplY3QpXG4gICAgfTtcblxuICAgIGFjdGlvbkNvbnRyb2xzLnB1c2godW5hc3NpZ25BY3Rpb24pO1xuXG4gICAgaWYgKCF0aGlzLmFjdGlvbkNvbnRyb2xzKSB7XG4gICAgICB0aGlzLmFjdGlvbkNvbnRyb2xzID0gYWN0aW9uQ29udHJvbHM7XG4gICAgfVxuICB9XG5cbiAgb25VbmFzc2lnbkFzc2V0KGFzc2V0OiBJTWFuYWdlZE9iamVjdCwgcGFyZW50UmVmOiBJTWFuYWdlZE9iamVjdCkge1xuICAgIGNvbnN0IGluaXRpYWxTdGF0ZSA9IHtcbiAgICAgIGFzc2V0XG4gICAgfTtcbiAgICBjb25zdCBtb2RhbFJlZiA9IHRoaXMuYnNNb2RhbFNlcnZpY2Uuc2hvdyhVbmFzc2lnbk1vZGFsQ29tcG9uZW50LCB7IGluaXRpYWxTdGF0ZSB9KTtcblxuICAgIG1vZGFsUmVmLmNvbnRlbnQuY2xvc2VTdWJqZWN0LnN1YnNjcmliZShhc3luYyAocmVzdWx0OiBib29sZWFuKSA9PiB7XG4gICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgIGF3YWl0IHRoaXMuc3ViQXNzZXRzR3JpZFNlcnZpY2UudW5hc3NpZ25Bc3NldChhc3NldCwgcGFyZW50UmVmKTtcbiAgICAgICAgdGhpcy5yZWZyZXNoLmVtaXQoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIG9uRGVsZXRlQXNzZXQoYXNzZXQ6IElNYW5hZ2VkT2JqZWN0LCBwYXJlbnRSZWY6IElNYW5hZ2VkT2JqZWN0KSB7XG4gICAgY29uc3QgaW5pdGlhbFN0YXRlID0ge1xuICAgICAgc2hvd1dpdGhEZXZpY2VVc2VyQ2hlY2tib3g6IHRoaXMuc3ViQXNzZXRzR3JpZFNlcnZpY2Uuc2hvdWxkU2hvd1dpdGhEZXZpY2VVc2VyQ2hlY2tib3goYXNzZXQpLFxuICAgICAgYXNzZXQsXG4gICAgICBzaG93V2l0aENhc2NhZGVDaGVja2JveDpcbiAgICAgICAgIXRoaXMuc21hcnRHcm91cHNTZXJ2aWNlLmlzU21hcnRHcm91cChhc3NldCkgJiZcbiAgICAgICAgIXRoaXMuc21hcnRHcm91cHNTZXJ2aWNlLmlzU21hcnRHcm91cFYyKGFzc2V0KVxuICAgIH07XG5cbiAgICBjb25zdCBtb2RhbFJlZiA9IHRoaXMuYnNNb2RhbFNlcnZpY2Uuc2hvdyhEZWxldGVBc3NldHNNb2RhbENvbXBvbmVudCwgeyBpbml0aWFsU3RhdGUgfSk7XG5cbiAgICBtb2RhbFJlZi5jb250ZW50LmNsb3NlU3ViamVjdC5zdWJzY3JpYmUoYXN5bmMgKHJlc3VsdDogRGVsZXRlTW9kYWxDaGVja2JveGVzKSA9PiB7XG4gICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgIGF3YWl0IHRoaXMuc3ViQXNzZXRzR3JpZFNlcnZpY2UuZGVsZXRlQXNzZXQoYXNzZXQsIHBhcmVudFJlZiwgcmVzdWx0KTtcbiAgICAgICAgaWYgKHJlc3VsdC5jYXNjYWRlKSB7XG4gICAgICAgICAgdGhpcy5zaG93Q291bnRlcldhcm5pbmcgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVmcmVzaC5lbWl0KCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXMucGFyZW50R3JvdXAgJiYgIWNoYW5nZXMucGFyZW50R3JvdXAuZmlyc3RDaGFuZ2UpIHtcbiAgICAgIHRoaXMuZGF0YUdyaWQucmVsb2FkKCk7XG4gICAgfVxuICB9XG5cbiAgdHJhY2tCeU5hbWUoX2luZGV4LCBjb2x1bW46IENvbHVtbik6IHN0cmluZyB7XG4gICAgcmV0dXJuIGNvbHVtbi5uYW1lO1xuICB9XG5cbiAgYXN5bmMgb25EYXRhU291cmNlTW9kaWZpZXIoXG4gICAgZGF0YVNvdXJjZU1vZGlmaWVyOiBEYXRhU291cmNlTW9kaWZpZXJcbiAgKTogUHJvbWlzZTxTZXJ2ZXJTaWRlRGF0YVJlc3VsdD4ge1xuICAgIGNvbnN0IHByb21pc2VzID0gW107XG4gICAgbGV0IGNvdW50ZXJzO1xuXG4gICAgcHJvbWlzZXMucHVzaChcbiAgICAgIHRoaXMuc3ViQXNzZXRzR3JpZFNlcnZpY2UuZ2V0RGF0YShcbiAgICAgICAgZGF0YVNvdXJjZU1vZGlmaWVyLmNvbHVtbnMsXG4gICAgICAgIGRhdGFTb3VyY2VNb2RpZmllci5wYWdpbmF0aW9uLFxuICAgICAgICB0aGlzLnBhcmVudEdyb3VwLFxuICAgICAgICB0aGlzLmJhc2VRdWVyeSxcbiAgICAgICAgZGF0YVNvdXJjZU1vZGlmaWVyLnNlYXJjaFRleHRcbiAgICAgIClcbiAgICApO1xuXG4gICAgcHJvbWlzZXMucHVzaCh0aGlzLnN1YkFzc2V0c0dyaWRTZXJ2aWNlLmdldFRvdGFsKHRoaXMucGFyZW50R3JvdXAsIHRoaXMuYmFzZVF1ZXJ5KSk7XG4gICAgcHJvbWlzZXMucHVzaChcbiAgICAgIHRoaXMuc3ViQXNzZXRzR3JpZFNlcnZpY2UuZ2V0Q291bnQoXG4gICAgICAgIGRhdGFTb3VyY2VNb2RpZmllci5jb2x1bW5zLFxuICAgICAgICBkYXRhU291cmNlTW9kaWZpZXIucGFnaW5hdGlvbixcbiAgICAgICAgdGhpcy5wYXJlbnRHcm91cCxcbiAgICAgICAgdGhpcy5iYXNlUXVlcnksXG4gICAgICAgIGRhdGFTb3VyY2VNb2RpZmllci5zZWFyY2hUZXh0XG4gICAgICApXG4gICAgKTtcblxuICAgIGNvbnN0IFtkYXRhUmVzcG9uc2UsIHNpemUsIGZpbHRlcmVkU2l6ZV0gPSBhd2FpdCBQcm9taXNlLmFsbChwcm9taXNlcyk7XG4gICAgaWYgKCFjb3VudGVycykge1xuICAgICAgY291bnRlcnMgPSB7XG4gICAgICAgIHNpemUsXG4gICAgICAgIGZpbHRlcmVkU2l6ZVxuICAgICAgfTtcbiAgICB9XG4gICAgdGhpcy5vbkNvbHVtbnNDaGFuZ2UuZW1pdChkYXRhU291cmNlTW9kaWZpZXIuY29sdW1ucyk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgcmVzOiBkYXRhUmVzcG9uc2UucmVzLFxuICAgICAgZGF0YTogZGF0YVJlc3BvbnNlLmRhdGEsXG4gICAgICBwYWdpbmc6IGRhdGFSZXNwb25zZS5wYWdpbmcsXG4gICAgICAuLi5jb3VudGVyc1xuICAgIH07XG4gIH1cbn1cbiIsIjxjOHktZGF0YS1ncmlkXG4gIFt0aXRsZV09XCJ0aXRsZVwiXG4gIFtsb2FkaW5nSXRlbXNMYWJlbF09XCJsb2FkaW5nSXRlbXNMYWJlbFwiXG4gIFtjb2x1bW5zXT1cImNvbHVtbnNcIlxuICBbcGFnaW5hdGlvbl09XCJwYWdpbmF0aW9uXCJcbiAgW2FjdGlvbkNvbnRyb2xzXT1cImFjdGlvbkNvbnRyb2xzXCJcbiAgW3NlbGVjdGFibGVdPVwic2VsZWN0YWJsZVwiXG4gIFtidWxrQWN0aW9uQ29udHJvbHNdPVwiYnVsa0FjdGlvbkNvbnRyb2xzXCJcbiAgW3NlcnZlclNpZGVEYXRhQ2FsbGJhY2tdPVwic2VydmVyU2lkZURhdGFDYWxsYmFja1wiXG4gIFtpbmZpbml0ZVNjcm9sbF09XCJnZXRJbmZpbml0ZVNjcm9sbE1vZGVcIlxuICBbc2hvd0NvdW50ZXJXYXJuaW5nXT1cInNob3dDb3VudGVyV2FybmluZ1wiXG4gIFtyZWZyZXNoXT1cInJlZnJlc2hcIlxuICBbc2hvd1NlYXJjaF09XCJzaG93U2VhcmNoXCJcbiAgW2Rpc3BsYXlPcHRpb25zXT1cImRpc3BsYXlPcHRpb25zXCJcbiAgKGl0ZW1zU2VsZWN0KT1cIml0ZW1zU2VsZWN0LmVtaXQoJGV2ZW50KVwiXG4gIGM4eVByb2R1Y3RFeHBlcmllbmNlXG4gIFthY3Rpb25OYW1lXT1cIlBST0RVQ1RfRVhQRVJJRU5DRS5FVkVOVFwiXG4+XG4gIDxjOHktdWktZW1wdHktc3RhdGVcbiAgICBbaWNvbl09XCInYzh5LWdyb3VwLWFkZCdcIlxuICAgIFt0aXRsZV09XCInTm8gaXRlbXMgdG8gZGlzcGxheS4nIHwgdHJhbnNsYXRlXCJcbiAgICBbc3VidGl0bGVdPVwiZW1wdHlTdGF0ZVRleHQgfCB0cmFuc2xhdGVcIlxuICAgIFtob3Jpem9udGFsXT1cInRydWVcIlxuICA+PC9jOHktdWktZW1wdHktc3RhdGU+XG5cbiAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNvbHVtbnM7IHRyYWNrQnk6IHRyYWNrQnlOYW1lXCI+XG4gICAgPGM4eS1jb2x1bW4gW25hbWVdPVwiY29sdW1uLm5hbWVcIj48L2M4eS1jb2x1bW4+XG4gIDwvbmctY29udGFpbmVyPlxuPC9jOHktZGF0YS1ncmlkPlxuIl19
286
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ViLWFzc2V0cy1ncmlkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3N1Yi1hc3NldHMvc3ViLWFzc2V0cy1ncmlkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uL3N1Yi1hc3NldHMvc3ViLWFzc2V0cy1ncmlkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBRU4sU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBa0Isa0JBQWtCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDakUsT0FBTyxFQUtMLGlCQUFpQixFQUVqQix3Q0FBd0MsRUFDeEMsZ0NBQWdDLEVBRWhDLE9BQU8sRUFLUCxvQ0FBb0MsRUFDckMsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFckQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDakcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDL0QsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDeEcsT0FBTyxFQUVMLGtDQUFrQyxFQUNuQyxNQUFNLGtEQUFrRCxDQUFDO0FBQzFELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGtEQUFrRCxDQUFDOzs7Ozs7Ozs7QUF1QjFGLE1BQU0sT0FBTyxzQkFBc0I7SUFrRmpDLFlBQ1Msb0JBQXNDLEVBQ3JDLGNBQThCLEVBQzlCLGtC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LFNBQVM7dUJBQUMsaUJBQWlCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQXlCMUMsZUFBZTtzQkFEbEIsS0FBSzt1QkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJTWFuYWdlZE9iamVjdCwgU21hcnRHcm91cHNTZXJ2aWNlIH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHtcbiAgQWN0aW9uQ29udHJvbCxcbiAgQnVpbHRJbkFjdGlvblR5cGUsXG4gIEJ1bGtBY3Rpb25Db250cm9sLFxuICBDb2x1bW4sXG4gIERhdGFHcmlkQ29tcG9uZW50LFxuICBEYXRhU291cmNlTW9kaWZpZXIsXG4gIERBVEFfR1JJRF9DT05GSUdVUkFUSU9OX0NPTlRFWFRfUFJPVklERVIsXG4gIERBVEFfR1JJRF9DT05GSUdVUkFUSU9OX1NUUkFURUdZLFxuICBEaXNwbGF5T3B0aW9ucyxcbiAgZ2V0dGV4dCxcbiAgR3JpZENvbmZpZ0NvbnRleHRQcm92aWRlcixcbiAgUGFnaW5hdGlvbixcbiAgUm93LFxuICBTZXJ2ZXJTaWRlRGF0YVJlc3VsdCxcbiAgVXNlclByZWZlcmVuY2VzQ29uZmlndXJhdGlvblN0cmF0ZWd5XG59IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgQXNzZXROb2RlU2VydmljZSB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvYXNzZXRzLW5hdmlnYXRvcic7XG5pbXBvcnQgeyBEZXZpY2VHcmlkU2VydmljZSB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvZGV2aWNlLWdyaWQnO1xuaW1wb3J0IHsgQnNNb2RhbFNlcnZpY2UgfSBmcm9tICduZ3gtYm9vdHN0cmFwL21vZGFsJztcbmltcG9ydCB7IERlbGV0ZU1vZGFsQ2hlY2tib3hlcyB9IGZyb20gJy4vZGVsZXRlLWFzc2V0cy1tb2RhbCc7XG5pbXBvcnQgeyBEZWxldGVBc3NldHNNb2RhbENvbXBvbmVudCB9IGZyb20gJy4vZGVsZXRlLWFzc2V0cy1tb2RhbC9kZWxldGUtYXNzZXRzLW1vZGFsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQUk9EVUNUX0VYUEVSSUVOQ0UgfSBmcm9tICcuL3NoYXJlZC9zdWItYXNzZXRzLm1vZGVsJztcbmltcG9ydCB7IFNtYXJ0R3JvdXBHcmlkQ29uZmlndXJhdGlvblN0cmF0ZWd5IH0gZnJvbSAnLi9zbWFydC1ncm91cC1ncmlkLWNvbmZpZ3VyYXRpb24tc3RyYXRlZ3kuc2VydmljZSc7XG5pbXBvcnQge1xuICBTdWJBc3NldHNHcmlkQ29uZmlnQ29udGV4dCxcbiAgU3ViQXNzZXRzR3JpZENvbmZpZ3VyYXRpb25TdHJhdGVneVxufSBmcm9tICcuL3N1Yi1hc3NldHMtZ3JpZC1jb25maWd1cmF0aW9uLXN0cmF0ZWd5LnNlcnZpY2UnO1xuaW1wb3J0IHsgU3ViQXNzZXRzU2VydmljZSB9IGZyb20gJy4vc3ViLWFzc2V0cy5zZXJ2aWNlJztcbmltcG9ydCB7IFVuYXNzaWduTW9kYWxDb21wb25lbnQgfSBmcm9tICcuL3VuYXNzaWduLWFzc2V0cy1tb2RhbC91bmFzc2lnbi1tb2RhbC5jb21wb25lbnQnO1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYzh5LXN1Yi1hc3NldHMtZ3JpZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9zdWItYXNzZXRzLWdyaWQuY29tcG9uZW50Lmh0bWwnLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBVc2VyUHJlZmVyZW5jZXNDb25maWd1cmF0aW9uU3RyYXRlZ3ksXG4gICAgICB1c2VDbGFzczogVXNlclByZWZlcmVuY2VzQ29uZmlndXJhdGlvblN0cmF0ZWd5XG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBTbWFydEdyb3VwR3JpZENvbmZpZ3VyYXRpb25TdHJhdGVneSxcbiAgICAgIHVzZUNsYXNzOiBTbWFydEdyb3VwR3JpZENvbmZpZ3VyYXRpb25TdHJhdGVneVxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogREFUQV9HUklEX0NPTkZJR1VSQVRJT05fU1RSQVRFR1ksXG4gICAgICB1c2VDbGFzczogU3ViQXNzZXRzR3JpZENvbmZpZ3VyYXRpb25TdHJhdGVneVxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogREFUQV9HUklEX0NPTkZJR1VSQVRJT05fQ09OVEVYVF9QUk9WSURFUixcbiAgICAgIHVzZUV4aXN0aW5nOiBTdWJBc3NldHNHcmlkQ29tcG9uZW50XG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFN1YkFzc2V0c0dyaWRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEdyaWRDb25maWdDb250ZXh0UHJvdmlkZXIge1xuICBQUk9EVUNUX0VYUEVSSUVOQ0UgPSBQUk9EVUNUX0VYUEVSSUVOQ0U7XG4gIEBJbnB1dCgncGFyZW50LWdyb3VwJykgcGFyZW50R3JvdXA6IElNYW5hZ2VkT2JqZWN0O1xuICBASW5wdXQoKSByZWZyZXNoOiBFdmVudEVtaXR0ZXI8YW55PjtcbiAgQElucHV0KCkgdGl0bGU6IHN0cmluZyA9IGdldHRleHQoJ1N1YmFzc2V0cycpO1xuICBASW5wdXQoKSBlbXB0eVN0YXRlVGV4dDogc3RyaW5nID0gZ2V0dGV4dChcbiAgICAnQWRkIHlvdXIgZmlyc3QgZ3JvdXAgb3IgYXNzaWduIGRldmljZXMgdXNpbmcgdGhlIGJ1dHRvbnMgb24gdGhlIGFjdGlvbiBiYXIuJ1xuICApO1xuICBASW5wdXQoKSBsb2FkaW5nSXRlbXNMYWJlbDogc3RyaW5nID0gZ2V0dGV4dCgnTG9hZGluZyBhc3NldHPigKYnKTtcbiAgLyoqIFRoZSBuYW1lIG9mIHRoZSBrZXkgd2hlcmUgY29sdW1ucyBjb25maWd1cmF0aW9uIHdpbGwgYmUgc3RvcmVkLiAqL1xuICBASW5wdXQoKSBjb2x1bW5zQ29uZmlnS2V5OiBzdHJpbmc7XG5cbiAgZ2V0IGNvbHVtbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbHVtbnM7XG4gIH1cbiAgQElucHV0KCkgc2V0IGNvbHVtbnModmFsdWU6IENvbHVtbltdKSB7XG4gICAgdGhpcy5fY29sdW1ucyA9IHZhbHVlID8/IHRoaXMuc3ViQXNzZXRzR3JpZFNlcnZpY2UuZ2V0RGVmYXVsdENvbHVtbnMoKTtcbiAgfVxuICBASW5wdXQoJ3BhZ2luYXRpb24nKSBzZXQgX3BhZ2luYXRpb24odmFsdWU6IFBhZ2luYXRpb24pIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMucGFnaW5hdGlvbiA9IHZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnBhZ2luYXRpb24gPSB0aGlzLnN1YkFzc2V0c0dyaWRTZXJ2aWNlLmdldERlZmF1bHRQYWdpbmF0aW9uKCk7XG4gICAgfVxuICB9XG4gIEBJbnB1dCgnYWN0aW9uQ29udHJvbHMnKSBzZXQgX2FjdGlvbkNvbnRyb2xzKHZhbHVlOiBBY3Rpb25Db250cm9sW10pIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuYWN0aW9uQ29udHJvbHMgPSB2YWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5hY3Rpb25Db250cm9scyA9IHRoaXMuc3ViQXNzZXRzR3JpZFNlcnZpY2UuZ2V0RGVmYXVsdEFjdGlvbkNvbnRyb2xzKCk7XG4gICAgfVxuICB9XG4gIEBJbnB1dCgpIHNlbGVjdGFibGUgPSBmYWxzZTtcbiAgQElucHV0KCkgYmFzZVF1ZXJ5OiBhbnkgPSB7fTtcbiAgQElucHV0KCdidWxrQWN0aW9uQ29udHJvbHMnKSBzZXQgX2J1bGtBY3Rpb25Db250cm9scyh2YWx1ZTogQnVsa0FjdGlvbkNvbnRyb2xbXSkge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5idWxrQWN0aW9uQ29udHJvbHMgPSB2YWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5idWxrQWN0aW9uQ29udHJvbHMgPSB0aGlzLnN1YkFzc2V0c0dyaWRTZXJ2aWNlLmdldERlZmF1bHRCdWxrQWN0aW9uQ29udHJvbHMoKTtcbiAgICB9XG4gIH1cbiAgQElucHV0KCkgZmlsdGVyYWJsZSA9IHRydWU7XG4gIEBJbnB1dCgpIHNvcnRhYmxlID0gdHJ1ZTtcbiAgQE91dHB1dCgpIG9uQ29sdW1uc0NoYW5nZTogRXZlbnRFbWl0dGVyPENvbHVtbltdPiA9IG5ldyBFdmVudEVtaXR0ZXI8Q29sdW1uW10+KCk7XG4gIEBPdXRwdXQoKSBpdGVtc1NlbGVjdDogRXZlbnRFbWl0dGVyPHN0cmluZ1tdPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nW10+KCk7XG5cbiAgcGFnaW5hdGlvbjogUGFnaW5hdGlvbiA9IHRoaXMuc3ViQXNzZXRzR3JpZFNlcnZpY2UuZ2V0RGVmYXVsdFBhZ2luYXRpb24oKTtcbiAgc2hvd0NvdW50ZXJXYXJuaW5nID0gZmFsc2U7XG4gIGFjdGlvbkNvbnRyb2xzOiBBY3Rpb25Db250cm9sW107XG4gIGJ1bGtBY3Rpb25Db250cm9sczogQnVsa0FjdGlvbkNvbnRyb2xbXSA9XG4gICAgdGhpcy5zdWJBc3NldHNHcmlkU2VydmljZS5nZXREZWZhdWx0QnVsa0FjdGlvbkNvbnRyb2xzKCk7XG4gIHNlcnZlclNpZGVEYXRhQ2FsbGJhY2s6IGFueTtcblxuICBAVmlld0NoaWxkKERhdGFHcmlkQ29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBkYXRhR3JpZDogRGF0YUdyaWRDb21wb25lbnQ7XG5cbiAgZGlzcGxheU9wdGlvbnM6IERpc3BsYXlPcHRpb25zID0ge1xuICAgIHN0cmlwZWQ6IHRydWUsXG4gICAgYm9yZGVyZWQ6IGZhbHNlLFxuICAgIGdyaWRIZWFkZXI6IHRydWUsXG4gICAgZmlsdGVyOiB0cnVlXG4gIH07XG5cbiAgc2hvd1NlYXJjaCA9IGZhbHNlO1xuXG4gIHByaXZhdGUgX2NvbHVtbnM6IENvbHVtbltdO1xuXG4gIGdldCBpc1Jvb3RHcm91cCgpIHtcbiAgICByZXR1cm4gIXRoaXMucGFyZW50R3JvdXA7XG4gIH1cblxuICBnZXQgZ2V0SW5maW5pdGVTY3JvbGxNb2RlKCkge1xuICAgIHJldHVybiB0aGlzLmlzUm9vdEdyb3VwICYmIHRoaXMuc3ViQXNzZXRzR3JpZFNlcnZpY2UuaXNVc2luZ0ludmVudG9yeVJvbGVzKClcbiAgICAgID8gJ2F1dG8nXG4gICAgICA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIEBJbnB1dCgnZGlzcGxheU9wdGlvbnMnKVxuICBzZXQgX2Rpc3BsYXlPcHRpb25zKGRpc3BsYXlPcHRpb25zKSB7XG4gICAgdGhpcy5kaXNwbGF5T3B0aW9ucyA9IHsgLi4udGhpcy5kaXNwbGF5T3B0aW9ucywgLi4uZGlzcGxheU9wdGlvbnMgfTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBzdWJBc3NldHNHcmlkU2VydmljZTogU3ViQXNzZXRzU2VydmljZSxcbiAgICBwcml2YXRlIGJzTW9kYWxTZXJ2aWNlOiBCc01vZGFsU2VydmljZSxcbiAgICBwcml2YXRlIHNtYXJ0R3JvdXBzU2VydmljZTogU21hcnRHcm91cHNTZXJ2aWNlLFxuICAgIHByaXZhdGUgZGV2aWNlR3JpZFNlcnZpY2U6IERldmljZUdyaWRTZXJ2aWNlLFxuICAgIHByaXZhdGUgYXNzZXROb2RlU2VydmljZTogQXNzZXROb2RlU2VydmljZVxuICApIHtcbiAgICB0aGlzLnNlcnZlclNpZGVEYXRhQ2FsbGJhY2sgPSB0aGlzLm9uRGF0YVNvdXJjZU1vZGlmaWVyLmJpbmQodGhpcyk7XG4gIH1cblxuICBnZXRHcmlkQ29uZmlnQ29udGV4dCgpOiBTdWJBc3NldHNHcmlkQ29uZmlnQ29udGV4dCB7XG4gICAgaWYgKCEhdGhpcy5jb2x1bW5zQ29uZmlnS2V5KSB7XG4gICAgICByZXR1cm4geyBrZXk6IHRoaXMuY29sdW1uc0NvbmZpZ0tleSwgZ3JvdXA6IHRoaXMucGFyZW50R3JvdXAgfTtcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBjb25zdCBpc0R5bmFtaWNHcm91cCA9XG4gICAgICAhIXRoaXMucGFyZW50R3JvdXAgJiYgdGhpcy5hc3NldE5vZGVTZXJ2aWNlLmlzRHluYW1pY0dyb3VwKHRoaXMucGFyZW50R3JvdXApO1xuICAgIHRoaXMuY29sdW1ucyA9IGlzRHluYW1pY0dyb3VwXG4gICAgICA/IHRoaXMuZGV2aWNlR3JpZFNlcnZpY2UuZ2V0RGVmYXVsdENvbHVtbnMoKVxuICAgICAgOiB0aGlzLnN1YkFzc2V0c0dyaWRTZXJ2aWNlLmdldERlZmF1bHRDb2x1bW5zKHRoaXMuZmlsdGVyYWJsZSwgdGhpcy5zb3J0YWJsZSk7XG4gICAgaWYgKCF0aGlzLmZpbHRlcmFibGUgfHwgIXRoaXMuc29ydGFibGUpIHtcbiAgICAgIHRoaXMuZGlzcGxheU9wdGlvbnMuZmlsdGVyID0gdGhpcy5maWx0ZXJhYmxlO1xuICAgICAgdGhpcy5jb2x1bW5zLmZvckVhY2goY29sdW1uID0+IHtcbiAgICAgICAgY29sdW1uLmZpbHRlcmFibGUgPSB0aGlzLmZpbHRlcmFibGU7XG4gICAgICAgIGNvbHVtbi5zb3J0YWJsZSA9IHRoaXMuc29ydGFibGU7XG4gICAgICB9KTtcbiAgICB9XG4gICAgdGhpcy5zZXRBY3Rpb25Db250cm9scygpO1xuICAgIHRoaXMuc2hvd1NlYXJjaCA9IGlzRHluYW1pY0dyb3VwIHx8ICF0aGlzLnBhcmVudEdyb3VwO1xuICB9XG5cbiAgYXN5bmMgc2V0QWN0aW9uQ29udHJvbHMoKSB7XG4gICAgY29uc3QgYWN0aW9uQ29udHJvbHM6IEFjdGlvbkNvbnRyb2xbXSA9IFtdO1xuICAgIGNvbnN0IHsgZGF0YTogaXNNaWNyb3NlcnZpY2VJbnN0YWxsZWQgfSA9XG4gICAgICBhd2FpdCB0aGlzLnNtYXJ0R3JvdXBzU2VydmljZS5pc1NtYXJ0R3JvdXBzVjJNaWNyb3NlcnZpY2VJbnN0YWxsZWQoKTtcblxuICAgIGNvbnN0IGRlbGV0ZUFjdGlvbjogQWN0aW9uQ29udHJvbCA9IHtcbiAgICAgIHR5cGU6IEJ1aWx0SW5BY3Rpb25UeXBlLkRlbGV0ZSxcbiAgICAgIGNhbGxiYWNrOiAoYXNzZXQ6IFJvdykgPT4gdGhpcy5vbkRlbGV0ZUFzc2V0KGFzc2V0IGFzIElNYW5hZ2VkT2JqZWN0LCB0aGlzLnBhcmVudEdyb3VwKSxcbiAgICAgIHNob3dJZjogKGFzc2V0OiBSb3cpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuc21hcnRHcm91cHNTZXJ2aWNlLmlzU21hcnRHcm91cFYyKGFzc2V0IGFzIElNYW5hZ2VkT2JqZWN0KSkge1xuICAgICAgICAgIHJldHVybiBpc01pY3Jvc2VydmljZUluc3RhbGxlZCA/IHRoaXMuc3ViQXNzZXRzR3JpZFNlcnZpY2UuY2FuRGVsZXRlU21hcnRHcm91cCgpIDogZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5zbWFydEdyb3Vwc1NlcnZpY2UuaXNTbWFydEdyb3VwKGFzc2V0IGFzIElNYW5hZ2VkT2JqZWN0KSkge1xuICAgICAgICAgIHJldHVybiB0aGlzLnN1YkFzc2V0c0dyaWRTZXJ2aWNlLmNhbkRlbGV0ZVNtYXJ0R3JvdXAoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBhY3Rpb25Db250cm9scy5wdXNoKGRlbGV0ZUFjdGlvbik7XG5cbiAgICBjb25zdCB1bmFzc2lnbkFjdGlvbjogQWN0aW9uQ29udHJvbCA9IHtcbiAgICAgIHR5cGU6ICdVTkFTU0lHTicsXG4gICAgICBpY29uOiAndW5saW5rJyxcbiAgICAgIHRleHQ6IGdldHRleHQoJ1VuYXNzaWduJyksXG4gICAgICBjYWxsYmFjazogKGFzc2V0OiBSb3cpID0+IHRoaXMub25VbmFzc2lnbkFzc2V0KGFzc2V0IGFzIElNYW5hZ2VkT2JqZWN0LCB0aGlzLnBhcmVudEdyb3VwKSxcbiAgICAgIHNob3dJZjogKGFzc2V0OiBSb3cpID0+XG4gICAgICAgIHRoaXMuc3ViQXNzZXRzR3JpZFNlcnZpY2UuaXNEZXZpY2UoYXNzZXQgYXMgSU1hbmFnZWRPYmplY3QpICYmXG4gICAgICAgICF0aGlzLnN1YkFzc2V0c0dyaWRTZXJ2aWNlLmlzU21hcnRHcm91cCh0aGlzLnBhcmVudEdyb3VwIGFzIElNYW5hZ2VkT2JqZWN0KVxuICAgIH07XG5cbiAgICBhY3Rpb25Db250cm9scy5wdXNoKHVuYXNzaWduQWN0aW9uKTtcblxuICAgIGlmICghdGhpcy5hY3Rpb25Db250cm9scykge1xuICAgICAgdGhpcy5hY3Rpb25Db250cm9scyA9IGFjdGlvbkNvbnRyb2xzO1xuICAgIH1cbiAgfVxuXG4gIG9uVW5hc3NpZ25Bc3NldChhc3NldDogSU1hbmFnZWRPYmplY3QsIHBhcmVudFJlZjogSU1hbmFnZWRPYmplY3QpIHtcbiAgICBjb25zdCBpbml0aWFsU3RhdGUgPSB7XG4gICAgICBhc3NldFxuICAgIH07XG4gICAgY29uc3QgbW9kYWxSZWYgPSB0aGlzLmJzTW9kYWxTZXJ2aWNlLnNob3coVW5hc3NpZ25Nb2RhbENvbXBvbmVudCwgeyBpbml0aWFsU3RhdGUgfSk7XG5cbiAgICBtb2RhbFJlZi5jb250ZW50LmNsb3NlU3ViamVjdC5zdWJzY3JpYmUoYXN5bmMgKHJlc3VsdDogYm9vbGVhbikgPT4ge1xuICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICBhd2FpdCB0aGlzLnN1YkFzc2V0c0dyaWRTZXJ2aWNlLnVuYXNzaWduQXNzZXQoYXNzZXQsIHBhcmVudFJlZik7XG4gICAgICAgIHRoaXMucmVmcmVzaC5lbWl0KCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBvbkRlbGV0ZUFzc2V0KGFzc2V0OiBJTWFuYWdlZE9iamVjdCwgcGFyZW50UmVmOiBJTWFuYWdlZE9iamVjdCkge1xuICAgIGNvbnN0IGluaXRpYWxTdGF0ZSA9IHtcbiAgICAgIHNob3dXaXRoRGV2aWNlVXNlckNoZWNrYm94OiB0aGlzLnN1YkFzc2V0c0dyaWRTZXJ2aWNlLnNob3VsZFNob3dXaXRoRGV2aWNlVXNlckNoZWNrYm94KGFzc2V0KSxcbiAgICAgIGFzc2V0LFxuICAgICAgc2hvd1dpdGhDYXNjYWRlQ2hlY2tib3g6XG4gICAgICAgICF0aGlzLnNtYXJ0R3JvdXBzU2VydmljZS5pc1NtYXJ0R3JvdXAoYXNzZXQpICYmXG4gICAgICAgICF0aGlzLnNtYXJ0R3JvdXBzU2VydmljZS5pc1NtYXJ0R3JvdXBWMihhc3NldClcbiAgICB9O1xuXG4gICAgY29uc3QgbW9kYWxSZWYgPSB0aGlzLmJzTW9kYWxTZXJ2aWNlLnNob3coRGVsZXRlQXNzZXRzTW9kYWxDb21wb25lbnQsIHsgaW5pdGlhbFN0YXRlIH0pO1xuXG4gICAgbW9kYWxSZWYuY29udGVudC5jbG9zZVN1YmplY3Quc3Vic2NyaWJlKGFzeW5jIChyZXN1bHQ6IERlbGV0ZU1vZGFsQ2hlY2tib3hlcykgPT4ge1xuICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICBhd2FpdCB0aGlzLnN1YkFzc2V0c0dyaWRTZXJ2aWNlLmRlbGV0ZUFzc2V0KGFzc2V0LCBwYXJlbnRSZWYsIHJlc3VsdCk7XG4gICAgICAgIGlmIChyZXN1bHQuY2FzY2FkZSkge1xuICAgICAgICAgIHRoaXMuc2hvd0NvdW50ZXJXYXJuaW5nID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJlZnJlc2guZW1pdCgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzLnBhcmVudEdyb3VwICYmICFjaGFuZ2VzLnBhcmVudEdyb3VwLmZpcnN0Q2hhbmdlKSB7XG4gICAgICB0aGlzLmRhdGFHcmlkLnJlbG9hZCgpO1xuICAgIH1cbiAgfVxuXG4gIHRyYWNrQnlOYW1lKF9pbmRleCwgY29sdW1uOiBDb2x1bW4pOiBzdHJpbmcge1xuICAgIHJldHVybiBjb2x1bW4ubmFtZTtcbiAgfVxuXG4gIG9uUmVsb2FkKCkge1xuICAgIHRoaXMuYXNzZXROb2RlU2VydmljZS5yb290Tm9kZS5yZWZyZXNoKCk7XG4gIH1cblxuICBhc3luYyBvbkRhdGFTb3VyY2VNb2RpZmllcihcbiAgICBkYXRhU291cmNlTW9kaWZpZXI6IERhdGFTb3VyY2VNb2RpZmllclxuICApOiBQcm9taXNlPFNlcnZlclNpZGVEYXRhUmVzdWx0PiB7XG4gICAgY29uc3QgcHJvbWlzZXMgPSBbXTtcbiAgICBsZXQgY291bnRlcnM7XG5cbiAgICBwcm9taXNlcy5wdXNoKFxuICAgICAgdGhpcy5zdWJBc3NldHNHcmlkU2VydmljZS5nZXREYXRhKFxuICAgICAgICBkYXRhU291cmNlTW9kaWZpZXIuY29sdW1ucyxcbiAgICAgICAgZGF0YVNvdXJjZU1vZGlmaWVyLnBhZ2luYXRpb24sXG4gICAgICAgIHRoaXMucGFyZW50R3JvdXAsXG4gICAgICAgIHRoaXMuYmFzZVF1ZXJ5LFxuICAgICAgICBkYXRhU291cmNlTW9kaWZpZXIuc2VhcmNoVGV4dFxuICAgICAgKVxuICAgICk7XG5cbiAgICBwcm9taXNlcy5wdXNoKHRoaXMuc3ViQXNzZXRzR3JpZFNlcnZpY2UuZ2V0VG90YWwodGhpcy5wYXJlbnRHcm91cCwgdGhpcy5iYXNlUXVlcnkpKTtcbiAgICBwcm9taXNlcy5wdXNoKFxuICAgICAgdGhpcy5zdWJBc3NldHNHcmlkU2VydmljZS5nZXRDb3VudChcbiAgICAgICAgZGF0YVNvdXJjZU1vZGlmaWVyLmNvbHVtbnMsXG4gICAgICAgIGRhdGFTb3VyY2VNb2RpZmllci5wYWdpbmF0aW9uLFxuICAgICAgICB0aGlzLnBhcmVudEdyb3VwLFxuICAgICAgICB0aGlzLmJhc2VRdWVyeSxcbiAgICAgICAgZGF0YVNvdXJjZU1vZGlmaWVyLnNlYXJjaFRleHRcbiAgICAgIClcbiAgICApO1xuXG4gICAgY29uc3QgW2RhdGFSZXNwb25zZSwgc2l6ZSwgZmlsdGVyZWRTaXplXSA9IGF3YWl0IFByb21pc2UuYWxsKHByb21pc2VzKTtcbiAgICBpZiAoIWNvdW50ZXJzKSB7XG4gICAgICBjb3VudGVycyA9IHtcbiAgICAgICAgc2l6ZSxcbiAgICAgICAgZmlsdGVyZWRTaXplXG4gICAgICB9O1xuICAgIH1cbiAgICB0aGlzLm9uQ29sdW1uc0NoYW5nZS5lbWl0KGRhdGFTb3VyY2VNb2RpZmllci5jb2x1bW5zKTtcblxuICAgIHJldHVybiB7XG4gICAgICByZXM6IGRhdGFSZXNwb25zZS5yZXMsXG4gICAgICBkYXRhOiBkYXRhUmVzcG9uc2UuZGF0YSxcbiAgICAgIHBhZ2luZzogZGF0YVJlc3BvbnNlLnBhZ2luZyxcbiAgICAgIC4uLmNvdW50ZXJzXG4gICAgfTtcbiAgfVxufVxuIiwiPGM4eS1kYXRhLWdyaWRcbiAgW3RpdGxlXT1cInRpdGxlXCJcbiAgW2xvYWRpbmdJdGVtc0xhYmVsXT1cImxvYWRpbmdJdGVtc0xhYmVsXCJcbiAgW2NvbHVtbnNdPVwiY29sdW1uc1wiXG4gIFtwYWdpbmF0aW9uXT1cInBhZ2luYXRpb25cIlxuICBbYWN0aW9uQ29udHJvbHNdPVwiYWN0aW9uQ29udHJvbHNcIlxuICBbc2VsZWN0YWJsZV09XCJzZWxlY3RhYmxlXCJcbiAgW2J1bGtBY3Rpb25Db250cm9sc109XCJidWxrQWN0aW9uQ29udHJvbHNcIlxuICBbc2VydmVyU2lkZURhdGFDYWxsYmFja109XCJzZXJ2ZXJTaWRlRGF0YUNhbGxiYWNrXCJcbiAgW2luZmluaXRlU2Nyb2xsXT1cImdldEluZmluaXRlU2Nyb2xsTW9kZVwiXG4gIFtzaG93Q291bnRlcldhcm5pbmddPVwic2hvd0NvdW50ZXJXYXJuaW5nXCJcbiAgW3JlZnJlc2hdPVwicmVmcmVzaFwiXG4gIFtzaG93U2VhcmNoXT1cInNob3dTZWFyY2hcIlxuICBbZGlzcGxheU9wdGlvbnNdPVwiZGlzcGxheU9wdGlvbnNcIlxuICAoaXRlbXNTZWxlY3QpPVwiaXRlbXNTZWxlY3QuZW1pdCgkZXZlbnQpXCJcbiAgYzh5UHJvZHVjdEV4cGVyaWVuY2VcbiAgW2FjdGlvbk5hbWVdPVwiUFJPRFVDVF9FWFBFUklFTkNFLkVWRU5UXCJcbiAgKG9uUmVsb2FkKT1cIm9uUmVsb2FkKClcIlxuPlxuICA8Yzh5LXVpLWVtcHR5LXN0YXRlXG4gICAgW2ljb25dPVwiJ2M4eS1ncm91cC1hZGQnXCJcbiAgICBbdGl0bGVdPVwiJ05vIGl0ZW1zIHRvIGRpc3BsYXkuJyB8IHRyYW5zbGF0ZVwiXG4gICAgW3N1YnRpdGxlXT1cImVtcHR5U3RhdGVUZXh0IHwgdHJhbnNsYXRlXCJcbiAgICBbaG9yaXpvbnRhbF09XCJ0cnVlXCJcbiAgPjwvYzh5LXVpLWVtcHR5LXN0YXRlPlxuXG4gIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBjb2x1bW5zOyB0cmFja0J5OiB0cmFja0J5TmFtZVwiPlxuICAgIDxjOHktY29sdW1uIFtuYW1lXT1cImNvbHVtbi5uYW1lXCI+PC9jOHktY29sdW1uPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvYzh5LWRhdGEtZ3JpZD5cbiJdfQ==
@@ -1607,6 +1607,7 @@ class UploadArchiveComponent {
1607
1607
  try {
1608
1608
  yield this.ecosystemService.validateArchiveToAppCompatibility(file, this.application);
1609
1609
  const isCustomMicroservice = this.ecosystemService.isCustomMicroservice(this.application);
1610
+ const isPackage = this.ecosystemService.isPackage(this.application);
1610
1611
  this.archives = isCustomMicroservice
1611
1612
  ? []
1612
1613
  : yield this.ecosystemService.listArchives(this.application.id);
@@ -1615,7 +1616,7 @@ class UploadArchiveComponent {
1615
1616
  });
1616
1617
  this.uploadInProgress = true;
1617
1618
  this.uploadProgress.next(0);
1618
- if (this.archives.length === 6 && !isCustomMicroservice) {
1619
+ if (this.archives.length === 6 && !isCustomMicroservice && !isPackage) {
1619
1620
  yield this.ecosystemService.removeOldestArchive(this.application, this.archives);
1620
1621
  }
1621
1622
  const app = yield this.ecosystemService.uploadArchiveToApp(file, this.application, this.uploadNewVersion);