@quadrel-enterprise-ui/framework 18.24.0 → 18.24.1

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.
@@ -397,13 +397,13 @@ export class QdMultiInputComponent {
397
397
  return this.optionsListForView.findIndex(option => this.getTranslation(option) === optionName);
398
398
  }
399
399
  addItem(option) {
400
+ this.filterOptions = '';
400
401
  if (this.formArray) {
401
402
  this.formArray.push(option.value);
402
403
  this.formArray.markAsTouched();
403
404
  return;
404
405
  }
405
406
  this.multiInputService.addSelectedItem(option);
406
- this.filterOptions = '';
407
407
  this.changeValue();
408
408
  this.writeValue(this.multiInputService.getItemValues());
409
409
  }
@@ -537,4 +537,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
537
537
  type: HostListener,
538
538
  args: ['document:click', ['$event']]
539
539
  }] } });
540
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9xZC11aS9zcmMvbGliL2Zvcm1zL211bHRpLWlucHV0L211bHRpLWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcWQtdWkvc3JjL2xpYi9mb3Jtcy9tdWx0aS1pbnB1dC9tdWx0aS1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvQkFBb0I7QUFDcEIsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osVUFBVSxFQUNWLElBQUksRUFDSixXQUFXLEVBQ1gsWUFBWSxFQUNaLEtBQUssRUFLTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLFNBQVMsRUFDVCxRQUFRLEVBQ1IsU0FBUyxFQUNULFlBQVksRUFDYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsZ0JBQWdCLEVBR2hCLGlCQUFpQixFQUVsQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sT0FBTyxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFFLEVBQUUsSUFBSSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHbEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBQ2xHLE9BQU8sRUFDTCxXQUFXLEVBQ1gsYUFBYSxFQUNiLFFBQVEsRUFDUixvQkFBb0IsRUFDcEIsV0FBVyxFQUNYLGlCQUFpQixFQUNqQixXQUFXLEVBQ1gsaUJBQWlCLEVBQ2xCLE1BQU0saUNBQWlDLENBQUM7QUFDekMsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0s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QTJCOztzQkFDdkMsV0FBVzt1QkFBQyxtQ0FBbUM7Z0JBTWhELFFBQVE7c0JBSFAsV0FBVzt1QkFBQyx3QkFBd0I7O3NCQUNwQyxXQUFXO3VCQUFDLCtCQUErQjs7c0JBQzNDLFdBQVc7dUJBQUMsb0NBQW9DO2dCQUlqRCxRQUFRO3NCQURQLFdBQVc7dUJBQUMsNEJBQTRCO2dCQUtyQyxRQUFRO3NCQUZYLFdBQVc7dUJBQUMscUJBQXFCOztzQkFDakMsV0FBVzt1QkFBQyw0QkFBNEI7Z0JBS0csWUFBWTtzQkFBdkQsWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1zdHJpY3QtaWdub3JlXG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBmb3J3YXJkUmVmLFxuICBIb3N0LFxuICBIb3N0QmluZGluZyxcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgTmdJdGVyYWJsZSxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBTa2lwU2VsZixcbiAgVmlld0NoaWxkLFxuICBWaWV3Q2hpbGRyZW5cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBDb250cm9sQ29udGFpbmVyLFxuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgRm9ybUNvbnRyb2wsXG4gIE5HX1ZBTFVFX0FDQ0VTU09SLFxuICBVbnR5cGVkRm9ybUNvbnRyb2xcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IGlzRXF1YWwgZnJvbSAnbG9kYXNoL2lzRXF1YWwnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB2NCBhcyB1dWlkIH0gZnJvbSAndXVpZCc7XG5cbmltcG9ydCB7IFFkRm9ybU11bHRpSW5wdXRDb25maWd1cmF0aW9uLCBRZE11bHRpSW5wdXRPcHRpb24gfSBmcm9tICcuLi9tb2RlbC9mb3Jtcy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUWRGb3JtQXJyYXkgfSBmcm9tICcuLi9yZWFjdGl2ZS1mb3Jtcy9jb250cm9scy9mb3JtLWFycmF5JztcbmltcG9ydCB7IFFkRm9ybUFycmF5RmFjdG9yeVNlcnZpY2UgfSBmcm9tICcuLi9yZWFjdGl2ZS1mb3Jtcy9jb250cm9scy9mb3JtLWFycmF5LWZhY3Rvcnkuc2VydmljZSc7XG5pbXBvcnQge1xuICBnZXREaXNhYmxlZCxcbiAgZ2V0SGludEFjdGlvbixcbiAgZ2V0TGFiZWwsXG4gIGdldE11bHRpSW5wdXRPcHRpb25zLFxuICBnZXRSZWFkb25seSxcbiAgZ2V0UmVhZG9ubHlBY3Rpb24sXG4gIGdldFZpZXdvbmx5LFxuICBnZXRWaWV3b25seUFjdGlvblxufSBmcm9tICcuLi9zaGFyZWQvaGVscGVycy9mb3Jtcy5oZWxwZXJzJztcbmltcG9ydCB7IFFkRm9ybXNBY3Rpb25FbWl0dGVyU2VydmljZSB9IGZyb20gJy4uL3NoYXJlZC9zZXJ2aWNlcy9hY3Rpb24tZW1pdHRlci5zZXJ2aWNlJztcbmltcG9ydCB7IFFkTXVsdGlJbnB1dFNlcnZpY2UgfSBmcm9tICcuL211bHRpLWlucHV0LXNlcnZpY2UvbXVsdGktaW5wdXQuc2VydmljZSc7XG5pbXBvcnQgeyBRZFBvcG92ZXJPbkNsaWNrRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vY29yZS9wb3BvdmVyL3BvcG92ZXItb24tY2xpY2svcG9wb3Zlci1vbi1jbGljay5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgUWRNdWx0aUlucHV0TWVudUNvbXBvbmVudCB9IGZyb20gJy4vbXVsdGktaW5wdXQtbWVudS9tdWx0aS1pbnB1dC1tZW51LmNvbXBvbmVudCc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBRZEV2ZW50QnJva2VyU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvZXZlbnQtYnJva2VyLnNlcnZpY2UnO1xuXG4vKipcbiAqIFRoZSAqKlFkTXVsdGlJbnB1dCoqIGlzIGEgY29tcG9uZW50IHRoYXQgcHJvdmlkZXMgYSB1c2VyIGludGVyZmFjZSBmb3IgZW50ZXJpbmcgbXVsdGlwbGUgaW5wdXRzLjxiciAvPlxuICogSXQgaXMgZGVzaWduZWQgdG8gZW5oYW5jZSB0aGUgdXNlciBleHBlcmllbmNlIHdoZW4gZGVhbGluZyB3aXRoIG11bHRpcGxlIGlucHV0cyBhbmQgY2FuIGJlIHVzZWQgd2l0aCBRdWFkcmVsIFJlYWN0aXZlIEZvcm1zIG9yIHdpdGggbW9kZWwgYmluZGluZy5cbiAqXG4gKiAjIyMjKipVc2FnZSB3aXRoIFJlYWN0aXZlIEZvcm1zKipcbiAqXG4gKiBgYGB0c1xuICogZm9ybSA9IG5ldyBRZEZvcm1Hcm91cCh7XG4gKiAgIG11bHRpSW5wdXQ6IG5ldyBRZEZvcm1BcnJheSgpXG4gKiB9KTtcbiAqIGBgYFxuICogYGBgaHRtbFxuICogPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCI+XG4gKiAgIDxxZC1tdWx0aS1pbnB1dCBbZm9ybUFycmF5TmFtZV09XCJtdWx0aUlucHV0XCIgW2NvbmZpZ109XCJjb25maWdcIj48L3FkLW11bHRpLWlucHV0PlxuICogPC9mb3JtPlxuICogYGBgXG4gKlxuICogIyMjIyoqVXNhZ2Ugd2l0aCBNb2RlbCBCaW5kaW5nKipcbiAqIGBgYHRzXG4gKiB2YWx1ZXM7XG4gKiBgYGBcbiAqIGBgYGh0bWxcbiAqIDxxZC1tdWx0aS1pbnB1dCBbKHZhbHVlcyldPVwidmFsdWVzXCIgW2NvbmZpZ109XCJjb25maWdcIj48L3FkLW11bHRpLWlucHV0PlxuICogYGBgXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3FkLW11bHRpLWlucHV0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL211bHRpLWlucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbXVsdGktaW5wdXQuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogUWRNdWx0aUlucHV0Q29tcG9uZW50LFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9LFxuICAgIFFkTXVsdGlJbnB1dFNlcnZpY2UsXG4gICAgUWRGb3Jtc0FjdGlvbkVtaXR0ZXJTZXJ2aWNlXG4gIF0sXG4gIGhvc3Q6IHsgY2xhc3M6ICdxZC1tdWx0aS1pbnB1dCcgfSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgUWRNdWx0aUlucHV0Q29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uRGVzdHJveSB7XG4gIC8qKlxuICAgKiBIZXJlIGFuIGlkIGNhbiBiZSBhc3NpZ25lZCwgd2l0aCB3aGljaCBhIHZhbHVlIGNhbiBiZSBsaW5rZWQgdG8gYSBjb3JyZXNwb25kaW5nIGxhYmVsLlxuICAgKi9cbiAgQElucHV0KCkgaWQ7XG5cbiAgLyoqXG4gICAqIFRoZSBjdXJyZW50IGZvcm0gaXRlbSB2YWx1ZXMsIGlmIHlvdSBhcmUgd29ya2luZyB3aXRoIE1vZGVsIEJpbmRpbmcuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIDxxZC1tdWx0aS1pbnB1dCBbKHZhbHVlcyldPVwidmFsdWVzXCIgW2NvbmZpZ109XCJjb25maWdcIj48L3FkLW11bHRpLWlucHV0PlxuICAgKi9cbiAgQElucHV0KCkgc2V0IHZhbHVlcyh2YWx1ZXM6IHN0cmluZ1tdKSB7XG4gICAgdGhpcy5fdmFsdWVzID0gdmFsdWVzO1xuICB9XG5cbiAgZ2V0IHZhbHVlcygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlcztcbiAgfVxuXG4gIC8qKlxuICAgKiAqIEBkZXByZWNhdGVkXG4gICAqIFRPRE8gcmVtb3ZlIGxvZ2ljIGZvciBzdXBwb3J0IG9mIFtmb3JtQ29udHJvbE5hbWVdIGRpcmVjdGl2ZSBhbmQgRm9ybUNvbnRyb2wgd2l0aCBhbmd1bGFyIDE0IHVwZGF0ZVxuICAgKi9cbiAgQElucHV0KCkgc2V0IGZvcm1Db250cm9sTmFtZShmb3JtQ29udHJvbE5hbWU6IHN0cmluZykge1xuICAgIGNvbnNvbGUud2FybihcbiAgICAgICdRRC1VSSB8IFFkTXVsdGlJbnB1dENvbXBvbmVudCAtIFBsZWFzZSB1c2UgdGhlIE11bHRpSW5wdXQgd2l0aCB0aGUgUWRGb3JtQXJyYXkgZm9ybSBjb250cm9sIGFuZCB0aGUgW2Zvcm1BcnJheU5hbWVdIGRpcmVjdGl2ZSEnXG4gICAgKTtcbiAgICB0aGlzLl9mb3JtQ29udHJvbE5hbWUgPSBmb3JtQ29udHJvbE5hbWU7XG4gIH1cblxuICBnZXQgZm9ybUNvbnRyb2xOYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2Zvcm1Db250cm9sTmFtZTtcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBmb3JtQXJyYXlOYW1lKGZvcm1BcnJheU5hbWU6IHN0cmluZykge1xuICAgIHRoaXMuX2Zvcm1BcnJheU5hbWUgPSBmb3JtQXJyYXlOYW1lO1xuICB9XG5cbiAgZ2V0IGZvcm1BcnJheU5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fZm9ybUFycmF5TmFtZSB8fCB0aGlzLmZvcm1Db250cm9sTmFtZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgY29uZmlndXJhdGlvbiBmb3IgdGhpcyBmb3JtIGl0ZW1cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICoge1xuICAgKiAgIGxhYmVsOiB7IGkxOG46ICdteS1sYWJlbCcgfSxcbiAgICogICBoaW50OiB7IGkxOG46ICdteS1oaW50JyB9LFxuICAgKiAgIG9wdGlvbnM6IFtcbiAgICogICAgIHsgaTE4bjogJ2kxOG4ucWQuZXhhbXBsZUZvcm1GaWVsZC5nb29kc0RlY2xhcmF0aW9uLmltcG9ydCcsIHZhbHVlOiAnaW1wb3J0JyB9LFxuICAgKiAgICAgeyBpMThuOiAnaTE4bi5xZC5leGFtcGxlRm9ybUZpZWxkLmdvb2RzRGVjbGFyYXRpb24uZXhwb3J0JywgdmFsdWU6ICdleHBvcnQnIH0sXG4gICAqICAgICB7IGkxOG46ICdpMThuLnFkLmV4YW1wbGVGb3JtRmllbGQuZ29vZHNEZWNsYXJhdGlvbi50cmFuc2l0JywgdmFsdWU6ICd0cmFuc2l0JyB9XG4gICAqICAgXVxuICAgKiB9O1xuICAgKi9cbiAgQElucHV0KCkgY29uZmlnOiBRZEZvcm1NdWx0aUlucHV0Q29uZmlndXJhdGlvbjtcblxuICAvKipcbiAgICogQSBzdGF0aWMgdGVzdCBJRCBmb3IgaW50ZWdyYXRpb24gdGVzdHMgY2FuIGJlIHNldC4gPGJyIC8+XG4gICAqIFRoZSB2YWx1ZSBmb3IgdGhlIEhUTUwgYXR0cmlidXRlIFtkYXRhLXRlc3QtaWRdLlxuICAgKi9cbiAgQElucHV0KCdkYXRhLXRlc3QtaWQnKSB0ZXN0SWQgPSAnbXVsdGktaW5wdXQnO1xuXG4gIC8qKlxuICAgKiBFbWl0cyBldmVudCB3aGVuIHRoZSB2YWx1ZXMgY2hhbmdlLiBSZXR1cm4gdmFsdWVzIG1hdGNoIHRoZSBjdXJyZW50IHZhbHVlcy5cbiAgICovXG4gIEBPdXRwdXQoKSByZWFkb25seSB2YWx1ZXNDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZ1tdPigpO1xuXG4gIC8qKlxuICAgKiBFbWl0cyBldmVudCB3aGVuIHRoZSBoaW50IGlzIGNsaWNrZWQvdGFwcGVkLiBgaGludEFjdGlvbmAgbXVzdCBiZSBzZXQgdG8gYHRydWVgIGZvciB0aGlzLlxuICAgKi9cbiAgQE91dHB1dCgpIHJlYWRvbmx5IGNsaWNrSGludCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAvKipcbiAgICogRW1pdHMgZXZlbnQgd2hlbiBhIHJlYWRvbmx5IHZhbHVlIGlzIGNsaWNrZWQvdGFwcGVkLiBgY2xpY2tSZWFkb25seSBgIG11c3QgYmUgc2V0IHRvIGB0cnVlYCBmb3IgdGhpcy5cbiAgICovXG4gIEBPdXRwdXQoKSByZWFkb25seSBjbGlja1JlYWRvbmx5ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIC8qKlxuICAgKiBFbWl0cyBldmVudCB3aGVuIGEgdmlld29ubHkgdmFsdWUgaXMgY2xpY2tlZC90YXBwZWQuIGBjbGlja1ZpZXdvbmx5IGAgbXVzdCBiZSBzZXQgdG8gYHRydWVgIGZvciB0aGlzLlxuICAgKi9cbiAgQE91dHB1dCgpIHJlYWRvbmx5IGNsaWNrVmlld29ubHkgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQFZpZXdDaGlsZCgnaW5wdXQnKSBpbnB1dEZpZWxkOiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKGZvcndhcmRSZWYoKCkgPT4gUWRNdWx0aUlucHV0TWVudUNvbXBvbmVudCkpIG11bHRpSW5wdXRNZW51OiBRZE11bHRpSW5wdXRNZW51Q29tcG9uZW50O1xuICBAVmlld0NoaWxkKFFkUG9wb3Zlck9uQ2xpY2tEaXJlY3RpdmUpIHBvcG92ZXJPbkNsaWNrRGlyZWN0aXZlOiBRZFBvcG92ZXJPbkNsaWNrRGlyZWN0aXZlO1xuICBAVmlld0NoaWxkcmVuKCdlcnJvclRvb2x0aXBzJykgZXJyb3JUb29sdGlwczogUXVlcnlMaXN0PEVsZW1lbnRSZWY+O1xuICBAVmlld0NoaWxkcmVuKCdkcm9wZG93bk9wdGlvbicpIGRyb3Bkb3duT3B0aW9uczogUXVlcnlMaXN0PEVsZW1lbnRSZWY+O1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MucWQtbXVsdGktaW5wdXQtcmVhZG9ubHknKVxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnFkLW11bHRpLWlucHV0LWNoaXAtcmVhZG9ubHknKVxuICByZWFkb25seSA9IGZhbHNlO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MucWQtbXVsdGktaW5wdXQtLXJlYWRvbmx5LWFjdGlvbicpXG4gIHJlYWRvbmx5QWN0aW9uID0gZmFsc2U7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5xZC1tdWx0aS1pbnB1dC12aWV3b25seScpXG4gIEBIb3N0QmluZGluZygnY2xhc3MucWQtbXVsdGktaW5wdXQtY2hpcC12aWV3b25seScpXG4gIHZpZXdvbmx5ID0gZmFsc2U7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5xZC1tdWx0aS1pbnB1dC0tdmlld29ubHktYWN0aW9uJylcbiAgdmlld29ubHlBY3Rpb24gPSBmYWxzZTtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnFkLWZvcm0taGludC1hY3Rpb24nKVxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnFkLW11bHRpLWlucHV0LS1oaW50LWFjdGlvbicpXG4gIGhpbnRBY3Rpb24gPSBmYWxzZTtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnFkLWZvcm0tZGlzYWJsZWQnKVxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnFkLW11bHRpLWlucHV0LWRpc2FibGVkJylcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5xZC1tdWx0aS1pbnB1dC1jaGlwLWRpc2FibGVkJylcbiAgZGlzYWJsZWQgPSBmYWxzZTtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnFkLW11bHRpLWlucHV0LWZvY3VzJylcbiAgaGFzRm9jdXMgPSBmYWxzZTtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnFkLWZvcm0tZXJyb3InKVxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnFkLW11bHRpLWlucHV0LWVycm9yJylcbiAgZ2V0IGhhc0Vycm9yKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmZvcm1BcnJheSA/IHRoaXMuZm9ybUFycmF5LnRvdWNoZWQgJiYgdGhpcy5mb3JtQXJyYXkuaW52YWxpZCA6IGZhbHNlO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6Y2xpY2snLCBbJyRldmVudCddKSBjbGlja091dHNpZGUoJGV2ZW50KTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgdHlwZW9mICRldmVudC50YXJnZXQuY2xhc3NOYW1lID09PSAnc3RyaW5nJyAmJlxuICAgICAgISRldmVudC50YXJnZXQuY2xhc3NOYW1lLmluY2x1ZGVzKCdxZC1tdWx0aS1pbnB1dCcpICYmXG4gICAgICB0aGlzLm9wZW5cbiAgICApIHtcbiAgICAgIHRoaXMuX29uVG91Y2goKTtcbiAgICAgIGlmICgkZXZlbnQ/LnBvaW50ZXJJZCAhPT0gLTEpIHRoaXMuY2xvc2VQb3BvdmVyKCk7XG4gICAgfVxuICB9XG5cbiAgbGFiZWw6IHN0cmluZztcbiAgb3B0aW9uczogUWRNdWx0aUlucHV0T3B0aW9uW107XG4gIG9wZW4gPSBmYWxzZTtcbiAgb3B0aW9uc0xpc3RGb3JWaWV3OiBRZE11bHRpSW5wdXRPcHRpb25bXTtcbiAgZmlsdGVyT3B0aW9uczogc3RyaW5nO1xuICBmb3JtQXJyYXk6IFFkRm9ybUFycmF5PHN0cmluZz47XG5cbiAgcHJpdmF0ZSBfdmFsdWVzOiBzdHJpbmdbXTtcbiAgcHJpdmF0ZSBfZm9ybUNvbnRyb2xOYW1lOiBzdHJpbmc7XG4gIHByaXZhdGUgX2Zvcm1BcnJheU5hbWU6IHN0cmluZztcbiAgcHJpdmF0ZSBfb25EaXNhYmxlZENoYW5nZTtcbiAgcHJpdmF0ZSBfc3VicyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcbiAgcHJpdmF0ZSBfcmVzaXplT2JzZXJ2ZXI6IFJlc2l6ZU9ic2VydmVyO1xuICBwcml2YXRlIF9vbkNoYW5nZTogYW55ID0gKCkgPT4ge307XG4gIHByaXZhdGUgX29uVG91Y2g6IGFueSA9ICgpID0+IHt9O1xuXG4gIGdldCBoYXNIaW50KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5oaW50ICYmIHRoaXMuY29uZmlnLmhpbnQuaTE4biAmJiAhdGhpcy5jb25maWcuaGludC5kaXNhYmxlZDtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgaG9zdFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgcHJpdmF0ZSByZWFkb25seSBtdWx0aUlucHV0U2VydmljZTogUWRNdWx0aUlucHV0U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFjdGlvbkVtaXR0ZXJTZXJ2aWNlOiBRZEZvcm1zQWN0aW9uRW1pdHRlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBxZEZvcm1BcnJheUZhY3RvcnlTZXJ2aWNlOiBRZEZvcm1BcnJheUZhY3RvcnlTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIEBIb3N0KCkgQFNraXBTZWxmKCkgcHJpdmF0ZSByZWFkb25seSBjb250cm9sQ29udGFpbmVyOiBDb250cm9sQ29udGFpbmVyLFxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgcmVhZG9ubHkgZXZlbnRCcm9rZXJTZXJ2aWNlOiBRZEV2ZW50QnJva2VyU2VydmljZVxuICApIHtcbiAgICBpZiAoIXRoaXMuaWQpIHRoaXMuaWQgPSB1dWlkKCk7XG5cbiAgICB0aGlzLm11bHRpSW5wdXRTZXJ2aWNlLm9wdGlvbnNMaXN0Rm9yVmlldyQucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQoKSkuc3Vic2NyaWJlKGxpc3QgPT4ge1xuICAgICAgdGhpcy5vcHRpb25zTGlzdEZvclZpZXcgPSBsaXN0O1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVDb25maWd1cmF0aW9uKCk7XG5cbiAgICB0aGlzLm11bHRpSW5wdXRTZXJ2aWNlLnNldE9wdGlvbnNMaXN0KHRoaXMub3B0aW9ucyk7XG4gICAgdGhpcy5tdWx0aUlucHV0U2VydmljZS5zZXRTZWxlY3RlZEl0ZW1zKHRoaXMudmFsdWVzKTtcblxuICAgIHRoaXMuX3N1YnMuYWRkKHRoaXMuYWN0aW9uRW1pdHRlclNlcnZpY2UuaGludEV2ZW50RW1pdHRlciQuc3Vic2NyaWJlKCgpID0+IHRoaXMuY2xpY2tIaW50LmVtaXQoKSkpO1xuICAgIHRoaXMuX3N1YnMuYWRkKHRoaXMuYWN0aW9uRW1pdHRlclNlcnZpY2UucmVhZG9ubHlFdmVudEVtaXR0ZXIkLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNsaWNrUmVhZG9ubHkuZW1pdCgpKSk7XG4gICAgdGhpcy5fc3Vicy5hZGQodGhpcy5hY3Rpb25FbWl0dGVyU2VydmljZS52aWV3b25seUV2ZW50RW1pdHRlciQuc3Vic2NyaWJlKCgpID0+IHRoaXMuY2xpY2tWaWV3b25seS5lbWl0KCkpKTtcbiAgICB0aGlzLl9zdWJzLmFkZCh0aGlzLmluaXRPcE1vZGVTdWJzY3JpcHRpb24oKSk7XG5cbiAgICBpZiAoIXRoaXMuY29udHJvbENvbnRhaW5lcikgcmV0dXJuO1xuXG4gICAgaWYgKHRoaXMuZm9ybUFycmF5TmFtZSkge1xuICAgICAgY29uc3QgZm9ybUFycmF5ID0gdGhpcy5jb250cm9sQ29udGFpbmVyLmNvbnRyb2wuZ2V0KHRoaXMuZm9ybUFycmF5TmFtZSk7XG5cbiAgICAgIC8vIFVwZGF0aW5nIGZvcm0gYXJyYXkgcHJvZ3JhbW1hdGljYWxseSBmcm9tIG91dHNpZGVcbiAgICAgIHRoaXMuX3N1YnMuYWRkKFxuICAgICAgICBmb3JtQXJyYXkudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5tdWx0aUlucHV0U2VydmljZS5zZXRTZWxlY3RlZEl0ZW1zKHRoaXMuZm9ybUFycmF5LnZhbHVlKTtcbiAgICAgICAgICB0aGlzLnZhbHVlc0NoYW5nZS5lbWl0KHRoaXMuZm9ybUFycmF5LnZhbHVlKTtcbiAgICAgICAgfSlcbiAgICAgICk7XG5cbiAgICAgIGlmIChmb3JtQXJyYXkgaW5zdGFuY2VvZiBRZEZvcm1BcnJheSkge1xuICAgICAgICB0aGlzLmZvcm1BcnJheSA9IGZvcm1BcnJheTtcbiAgICAgICAgdGhpcy5tdWx0aUlucHV0U2VydmljZS5zZXRTZWxlY3RlZEl0ZW1zKHRoaXMuZm9ybUFycmF5LnZhbHVlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFRPRE8gcmVtb3ZlIGxvZ2ljIGZvciBzdXBwb3J0IG9mIEFuZ3VsYXIgRm9ybUNvbnRyb2wgd2l0aCBhbmd1bGFyIDE5IHVwZGF0ZVxuICAgICAgICB0aGlzLmZvcm1BcnJheSA9IHRoaXMucWRGb3JtQXJyYXlGYWN0b3J5U2VydmljZS5jcmVhdGVRZEZvcm1BcnJheUZyb21Gb3JtQ29udHJvbChcbiAgICAgICAgICBmb3JtQXJyYXkgYXMgVW50eXBlZEZvcm1Db250cm9sXG4gICAgICAgICk7XG4gICAgICAgIGNvbnNvbGUud2FybignUUQtVUkgfCBRZE11bHRpSW5wdXRDb21wb25lbnQgLSBQbGVhc2UgdXNlIHRoZSBNdWx0aUlucHV0IHdpdGggdGhlIFFkRm9ybUFycmF5IGZvcm0gY29udHJvbCEnKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuZGlzYWJsZWQgPSBmb3JtQXJyYXkuZGlzYWJsZWQ7XG4gICAgICB0aGlzLl9vbkRpc2FibGVkQ2hhbmdlID0gKGRpc2FibGVkKTogdm9pZCA9PiB7XG4gICAgICAgIHRoaXMuZGlzYWJsZWQgPSBkaXNhYmxlZDtcbiAgICAgIH07XG4gICAgICB0aGlzLmZvcm1BcnJheS5yZWdpc3Rlck9uRGlzYWJsZWRDaGFuZ2UodGhpcy5fb25EaXNhYmxlZENoYW5nZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgJ1FELVVJIHwgUWRNdWx0aUlucHV0Q29tcG9uZW50IC0gTWlzc2luZyBbZm9ybUFycmF5TmFtZV0gZGlyZWN0aXZlIGZyb20gaG9zdCBlbGVtZW50IG9mIHRoZSBjb21wb25lbnQnXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlcy5jb25maWcpIHtcbiAgICAgIHRoaXMudXBkYXRlQ29uZmlndXJhdGlvbigpO1xuICAgICAgaWYgKHRoaXMuaGF2ZU9wdGlvbnNDaGFuZ2VkKGNoYW5nZXMpKSB7XG4gICAgICAgIHRoaXMubXVsdGlJbnB1dFNlcnZpY2Uuc2V0T3B0aW9uc0xpc3QodGhpcy5vcHRpb25zKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmNsaWNrT3V0c2lkZSA9ICgpOiB2b2lkID0+IHt9O1xuICAgIHRoaXMuX3N1YnM/LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5fcmVzaXplT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcblxuICAgIGlmICh0aGlzLmZvcm1BcnJheSAmJiB0aGlzLl9vbkRpc2FibGVkQ2hhbmdlKSB0aGlzLmZvcm1BcnJheS5fdW5yZWdpc3Rlck9uRGlzYWJsZWRDaGFuZ2UodGhpcy5fb25EaXNhYmxlZENoYW5nZSk7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAoXzogYW55KSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5fb25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLl9vblRvdWNoID0gZm47XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlczogc3RyaW5nW10pOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuY29udHJvbENvbnRhaW5lcikgdGhpcy5nZXRJdGVtcygpO1xuXG4gICAgdGhpcy52YWx1ZXMgPSB2YWx1ZXM7XG4gICAgdGhpcy52YWx1ZXNDaGFuZ2UuZW1pdCh0aGlzLnZhbHVlcyk7XG4gIH1cblxuICBnZXRJdGVtcygpOiBRZE11bHRpSW5wdXRPcHRpb25bXSB7XG4gICAgcmV0dXJuIHRoaXMubXVsdGlJbnB1dFNlcnZpY2UuZ2V0SXRlbXMoKTtcbiAgfVxuXG4gIGhhc0l0ZW1zKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm11bHRpSW5wdXRTZXJ2aWNlLmdldEl0ZW1zKCkubGVuZ3RoID4gMDtcbiAgfVxuXG4gIGdldFRyYW5zbGF0aW9uKG9wdGlvbjogUWRNdWx0aUlucHV0T3B0aW9uKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5tdWx0aUlucHV0U2VydmljZS5nZXRUcmFuc2xhdGlvbihvcHRpb24pO1xuICB9XG5cbiAgb3BlblBvcG92ZXIoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucmVhZG9ubHkgfHwgdGhpcy52aWV3b25seSB8fCB0aGlzLmRpc2FibGVkIHx8IHRoaXMub3B0aW9ucy5sZW5ndGggPT09IDApIHJldHVybjtcblxuICAgIHRoaXMucG9wb3Zlck9uQ2xpY2tEaXJlY3RpdmU/Lm9wZW4oKTtcbiAgfVxuXG4gIGNsb3NlUG9wb3ZlcigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5yZWFkb25seSB8fCB0aGlzLnZpZXdvbmx5IHx8IHRoaXMuZGlzYWJsZWQpIHJldHVybjtcblxuICAgIHRoaXMucG9wb3Zlck9uQ2xpY2tEaXJlY3RpdmU/LmNsb3NlKCk7XG4gIH1cblxuICBoYW5kbGVDbGljayhvcHRpb246IFFkTXVsdGlJbnB1dE9wdGlvbik6IHZvaWQge1xuICAgIGlmICghb3B0aW9uLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLmFkZEl0ZW0ob3B0aW9uKTtcbiAgICAgIHRoaXMuY2xvc2VQb3BvdmVyKCk7XG4gICAgfVxuXG4gICAgdGhpcy5mb2N1cygpO1xuICB9XG5cbiAgaGFuZGxlQmx1cigpOiB2b2lkIHtcbiAgICB0aGlzLmhhc0ZvY3VzID0gZmFsc2U7XG4gIH1cblxuICBvbktleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBzd2l0Y2ggKGV2ZW50LmtleSkge1xuICAgICAgY2FzZSAnRW50ZXInOiB7XG4gICAgICAgIGNvbnN0IG5ld09wdGlvbiA9IHRoaXMubXVsdGlJbnB1dE1lbnU/LmtleU1hbmFnZXI/LmFjdGl2ZUl0ZW0/Lm9wdGlvbjtcbiAgICAgICAgaWYgKG5ld09wdGlvbj8uZGlzYWJsZWQpIHJldHVybjtcbiAgICAgICAgY29uc3Qgb3B0aW9uID0gdGhpcy5vcHRpb25zTGlzdEZvclZpZXcuZmluZChzID0+IHMudmFsdWUgPT09IG5ld09wdGlvbj8udmFsdWUpIHx8IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5hZGRDaGlwKG9wdGlvbik7XG4gICAgICAgIHRoaXMub3BlblBvcG92ZXIoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdFc2NhcGUnOlxuICAgICAgICB0aGlzLmNsb3NlUG9wb3ZlcigpO1xuICAgICAgICB0aGlzLmJsdXIoKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ0Fycm93VXAnOlxuICAgICAgICB0aGlzLm9wZW5Qb3BvdmVyKCk7XG4gICAgICAgIHRoaXMubXVsdGlJbnB1dE1lbnU/LmhhbmRsZUFycm93S2V5KCd1cCcsIGV2ZW50KTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ0Fycm93RG93bic6XG4gICAgICAgIHRoaXMub3BlblBvcG92ZXIoKTtcbiAgICAgICAgdGhpcy5tdWx0aUlucHV0TWVudT8uaGFuZGxlQXJyb3dLZXkoJ2Rvd24nLCBldmVudCk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aGlzLm9wZW5Qb3BvdmVyKCk7XG4gICAgfVxuICB9XG5cbiAgY2hhbmdlVmFsdWUoKTogdm9pZCB7XG4gICAgdGhpcy5tdWx0aUlucHV0U2VydmljZS5zZXRDdXJyZW50SW5wdXQodGhpcy5maWx0ZXJPcHRpb25zKTtcbiAgICB0aGlzLm9wZW5Qb3BvdmVyKCk7XG4gICAgdGhpcy5tdWx0aUlucHV0TWVudT8ucmVzZXRDaGVja2VkT3B0aW9uKCk7XG4gICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBjbG9zZShpbmRleCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmZvcm1BcnJheSkge1xuICAgICAgdGhpcy5mb3JtQXJyYXkucmVtb3ZlQXQoaW5kZXgpO1xuICAgICAgdGhpcy5mb3JtQXJyYXkubWFya0FzVG91Y2hlZCgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMubXVsdGlJbnB1dFNlcnZpY2UucmVtb3ZlSXRlbUF0SW5kZXgoaW5kZXgpO1xuICAgIHRoaXMud3JpdGVWYWx1ZSh0aGlzLm11bHRpSW5wdXRTZXJ2aWNlLmdldEl0ZW1WYWx1ZXMoKSk7XG4gICAgdGhpcy5mb2N1cygpO1xuICB9XG5cbiAgZ2V0SXRlcmFibGVFbGVtZW50cygpOiBOZ0l0ZXJhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmdldEl0ZW1zQXJyYXkoKTtcbiAgfVxuXG4gIGdldFZhbHVlcygpOiBRZE11bHRpSW5wdXRPcHRpb25bXSB7XG4gICAgY29uc3QgdmFsdWVzID0gdGhpcy5nZXRJdGVtc0FycmF5KCkubWFwKGkgPT4gdGhpcy5tdWx0aUlucHV0U2VydmljZS5maW5kT3B0aW9uKGkudmFsdWUpKTtcbiAgICByZXR1cm4gdmFsdWVzO1xuICB9XG5cbiAgaGFuZGxlQ2hpcENsaWNrKCRldmVudCk6IHZvaWQge1xuICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLmZvY3VzKCk7XG4gICAgaWYgKHRoaXMucmVhZG9ubHlBY3Rpb24pIHRoaXMuaGFuZGxlUmVhZE9ubHlBY3Rpb24oJGV2ZW50KTtcbiAgICBpZiAodGhpcy52aWV3b25seUFjdGlvbikgdGhpcy5oYW5kbGVWaWV3T25seUFjdGlvbigkZXZlbnQpO1xuICB9XG5cbiAgaGFuZGxlUmVhZE9ubHlBY3Rpb24oJGV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5jbGlja1JlYWRvbmx5LmVtaXQoJGV2ZW50LnRhcmdldC5kYXRhc2V0LnZhbHVlKTtcbiAgfVxuXG4gIGhhbmRsZVZpZXdPbmx5QWN0aW9uKCRldmVudCk6IHZvaWQge1xuICAgIHRoaXMuY2xpY2tWaWV3b25seS5lbWl0KCRldmVudC50YXJnZXQuZGF0YXNldC52YWx1ZSk7XG4gIH1cblxuICBmb2N1cygpOiB2b2lkIHtcbiAgICB0aGlzLmlucHV0RmllbGQ/Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlQ29uZmlndXJhdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLmxhYmVsID0gZ2V0TGFiZWwodGhpcy5jb25maWcpO1xuICAgIHRoaXMucmVhZG9ubHkgPSBnZXRSZWFkb25seSh0aGlzLmNvbmZpZywgdGhpcy5yZWFkb25seSk7XG4gICAgdGhpcy52aWV3b25seSA9IGdldFZpZXdvbmx5KHRoaXMuY29uZmlnLCB0aGlzLnZpZXdvbmx5KTtcbiAgICB0aGlzLmhpbnRBY3Rpb24gPSBnZXRIaW50QWN0aW9uKHRoaXMuY29uZmlnKTtcbiAgICB0aGlzLnJlYWRvbmx5QWN0aW9uID0gZ2V0UmVhZG9ubHlBY3Rpb24odGhpcy5jb25maWcpO1xuICAgIHRoaXMudmlld29ubHlBY3Rpb24gPSBnZXRWaWV3b25seUFjdGlvbih0aGlzLmNvbmZpZyk7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGdldERpc2FibGVkKHRoaXMuY29uZmlnKSB8fCAhIXRoaXMuZm9ybUFycmF5Py5kaXNhYmxlZDtcbiAgICB0aGlzLm9wdGlvbnMgPSBnZXRNdWx0aUlucHV0T3B0aW9ucyh0aGlzLmNvbmZpZyk7XG4gIH1cblxuICBwcml2YXRlIGFkZENoaXAob3B0aW9uPzogUWRNdWx0aUlucHV0T3B0aW9uKTogdm9pZCB7XG4gICAgaWYgKCFvcHRpb24gfHwgIXRoaXMub3B0aW9uc0xpc3RGb3JWaWV3Lm1hcChvcHRpb25zID0+IG9wdGlvbnMudmFsdWUpLmluY2x1ZGVzKG9wdGlvbi52YWx1ZSkpIHtcbiAgICAgIGlmICh0aGlzLmlucHV0RmllbGQubmF0aXZlRWxlbWVudC52YWx1ZSA9PT0gJycpIHJldHVybjtcblxuICAgICAgdGhpcy5oYW5kbGVVc2VySW5wdXQoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5hZGRJdGVtKG9wdGlvbik7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVVc2VySW5wdXQoKTogdm9pZCB7XG4gICAgY29uc3QgaXRlbXM6IFFkTXVsdGlJbnB1dE9wdGlvbltdID0gW107XG4gICAgaWYgKHRoaXMuZmlsdGVyT3B0aW9ucyAhPT0gJycgJiYgIXRoaXMuY29uZmlnLmRpc2FibGVGcmVldGV4dCkge1xuICAgICAgY29uc3Qgb3B0aW9uSW5kZXggPSB0aGlzLmZpbmRPcHRpb25JbmRleCh0aGlzLmZpbHRlck9wdGlvbnMpO1xuICAgICAgaWYgKG9wdGlvbkluZGV4ID09PSAtMSkge1xuICAgICAgICBpdGVtcy5wdXNoKC4uLnRoaXMuZ2V0U3BsaXRPcHRpb25zKCkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaXRlbXMucHVzaCh0aGlzLm9wdGlvbnNMaXN0Rm9yVmlld1tvcHRpb25JbmRleF0pO1xuICAgICAgfVxuICAgICAgdGhpcy5hZGRJdGVtc1RvQ2hpcFNldChpdGVtcyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhZGRJdGVtc1RvQ2hpcFNldChpdGVtczogUWRNdWx0aUlucHV0T3B0aW9uW10pOiB2b2lkIHtcbiAgICBpZiAodGhpcy5mb3JtQXJyYXkpIHtcbiAgICAgIGl0ZW1zLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgIHRoaXMuZm9ybUFycmF5LnB1c2goaXRlbS52YWx1ZSk7XG4gICAgICAgIHRoaXMubXVsdGlJbnB1dFNlcnZpY2UuYWRkU2VsZWN0ZWRJdGVtKGl0ZW0pO1xuICAgICAgfSk7XG4gICAgICB0aGlzLmZpbHRlck9wdGlvbnMgPSAnJztcbiAgICAgIHRoaXMuY2hhbmdlVmFsdWUoKTtcbiAgICAgIHRoaXMuZm9ybUFycmF5Lm1hcmtBc1RvdWNoZWQoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaXRlbXMuZm9yRWFjaChpdGVtID0+IHRoaXMuYWRkSXRlbShpdGVtKSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRTcGxpdE9wdGlvbnMoKTogUWRNdWx0aUlucHV0T3B0aW9uW10ge1xuICAgIHJldHVybiB0aGlzLm11bHRpSW5wdXRTZXJ2aWNlLnNwbGl0RmlsdGVyT3B0aW9ucyh0aGlzLmZpbHRlck9wdGlvbnMsIHRoaXMuY29uZmlnLmlucHV0U3BsaXR0ZXJzKTtcbiAgfVxuXG4gIHByaXZhdGUgZmluZE9wdGlvbkluZGV4KG9wdGlvbk5hbWU6IHN0cmluZyk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMub3B0aW9uc0xpc3RGb3JWaWV3LmZpbmRJbmRleChvcHRpb24gPT4gdGhpcy5nZXRUcmFuc2xhdGlvbihvcHRpb24pID09PSBvcHRpb25OYW1lKTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkSXRlbShvcHRpb246IFFkTXVsdGlJbnB1dE9wdGlvbik6IHZvaWQge1xuICAgIGlmICh0aGlzLmZvcm1BcnJheSkge1xuICAgICAgdGhpcy5mb3JtQXJyYXkucHVzaChvcHRpb24udmFsdWUpO1xuICAgICAgdGhpcy5mb3JtQXJyYXkubWFya0FzVG91Y2hlZCgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMubXVsdGlJbnB1dFNlcnZpY2UuYWRkU2VsZWN0ZWRJdGVtKG9wdGlvbik7XG4gICAgdGhpcy5maWx0ZXJPcHRpb25zID0gJyc7XG4gICAgdGhpcy5jaGFuZ2VWYWx1ZSgpO1xuICAgIHRoaXMud3JpdGVWYWx1ZSh0aGlzLm11bHRpSW5wdXRTZXJ2aWNlLmdldEl0ZW1WYWx1ZXMoKSk7XG4gIH1cblxuICBwcml2YXRlIGhhdmVPcHRpb25zQ2hhbmdlZChjaGFuZ2VzKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICFpc0VxdWFsKGNoYW5nZXMuY29uZmlnLnByZXZpb3VzVmFsdWU/Lm9wdGlvbnMsIGNoYW5nZXMuY29uZmlnLmN1cnJlbnRWYWx1ZT8ub3B0aW9ucyk7XG4gIH1cblxuICBwcml2YXRlIGJsdXIoKTogdm9pZCB7XG4gICAgdGhpcy5pbnB1dEZpZWxkPy5uYXRpdmVFbGVtZW50LmJsdXIoKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0SXRlbXNBcnJheSgpOiAoRm9ybUNvbnRyb2wgfCBRZE11bHRpSW5wdXRPcHRpb24pW10ge1xuICAgIHJldHVybiB0aGlzLmZvcm1BcnJheSA/ICh0aGlzLmZvcm1BcnJheS5jb250cm9scyBhcyBGb3JtQ29udHJvbFtdKSA6IHRoaXMuZ2V0SXRlbXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdE9wTW9kZVN1YnNjcmlwdGlvbigpOiBTdWJzY3JpcHRpb24gfCB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZXZlbnRCcm9rZXJTZXJ2aWNlKSByZXR1cm47XG5cbiAgICByZXR1cm4gdGhpcy5ldmVudEJyb2tlclNlcnZpY2UuY29uc3VtZTx7IGlzVmlld29ubHk6IGJvb2xlYW4gfT4oJ29wZXJhdGlvbl9tb2RlX2NoYW5nZWQnKS5zdWJzY3JpYmUodG9waWMgPT4ge1xuICAgICAgaWYgKHR5cGVvZiB0aGlzLmNvbmZpZy52aWV3b25seSA9PT0gJ2Jvb2xlYW4nKSByZXR1cm47XG5cbiAgICAgIHRoaXMudmlld29ubHkgPSBnZXRWaWV3b25seSh0aGlzLmNvbmZpZywgdG9waWMucGF5bG9hZC5pc1ZpZXdvbmx5KTtcbiAgICB9KTtcbiAgfVxufVxuIiwiPHFkLWZvcm0tbGFiZWxcbiAgW2xhYmVsXT1cImxhYmVsXCJcbiAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcbiAgW3ZpZXdvbmx5XT1cInZpZXdvbmx5XCJcbiAgW2NvbnRyb2xdPVwiZm9ybUFycmF5XCJcbiAgW3Rvb2x0aXBdPVwiY29uZmlnPy50b29sdGlwXCJcbiAgW2RhdGEtdGVzdC1pZF09XCJ0ZXN0SWRcIlxuPjwvcWQtZm9ybS1sYWJlbD5cblxuPGRpdlxuICAqbmdJZj1cIiFyZWFkb25seSAmJiAhdmlld29ubHlcIlxuICBjbGFzcz1cInFkLW11bHRpLWlucHV0X19pbnB1dC1jaGlwLWJveFwiXG4gIChjbGljayk9XCJmb2N1cygpXCJcbiAgKG9wZW5lZCk9XCJvcGVuID0gdHJ1ZVwiXG4gIChjbG9zZWQpPVwib3BlbiA9IGZhbHNlXCJcbiAgW3FkUG9wb3Zlck9uQ2xpY2tdPVwibWVudVwiXG4gIFtxZFBvcG92ZXJDbG9zZVN0cmF0ZWd5XT1cIidvbk91dHNpZGVDbGljaydcIlxuICBbcWRQb3BvdmVyRGlzYWJsZWRdPVwib3B0aW9ucy5sZW5ndGggPT09IDBcIlxuICBbcWRQb3BvdmVyQXV0b1NpemVdPVwieyB3aWR0aDogdHJ1ZSB9XCJcbiAgW3FkUG9wb3ZlckJhY2tncm91bmRDb2xvcl09XCIndHJhbnNwYXJlbnQnXCJcbiAgW3Bvc2l0aW9uU3RyYXRlZ3ldPVwiW1xuICAgIHtcbiAgICAgIG9yaWdpblg6ICdzdGFydCcsXG4gICAgICBvcmlnaW5ZOiAnYm90dG9tJyxcbiAgICAgIG92ZXJsYXlYOiAnc3RhcnQnLFxuICAgICAgb3ZlcmxheVk6ICd0b3AnLFxuICAgICAgb2Zmc2V0WDogLTJcbiAgICB9LFxuICAgIHtcbiAgICAgIG9yaWdpblg6ICdzdGFydCcsXG4gICAgICBvcmlnaW5ZOiAndG9wJyxcbiAgICAgIG92ZXJsYXlYOiAnc3RhcnQnLFxuICAgICAgb3ZlcmxheVk6ICdib3R0b20nLFxuICAgICAgd2VpZ2h0OiAwLjgsXG4gICAgICBvZmZzZXRYOiAtMlxuICAgIH1cbiAgXVwiXG4+XG4gIDxkaXYgW25nQ2xhc3NdPVwiaGFzSXRlbXMoKSA/ICdxZC1tdWx0aS1pbnB1dF9fY2hpcC1tYXJnaW4nIDogJydcIj5cbiAgICA8cWQtbXVsdGktaW5wdXQtY2hpcFxuICAgICAgKm5nRm9yPVwibGV0IGVsZW1lbnQgb2YgZ2V0SXRlcmFibGVFbGVtZW50cygpOyBsZXQgaW5kZXggPSBpbmRleFwiXG4gICAgICBbY2xvc2VdPVwiIWRpc2FibGVkICYmICFyZWFkb25seSAmJiAhdmlld29ubHlcIlxuICAgICAgW2l0ZW1Db250cm9sXT1cImZvcm1BcnJheSA/IGVsZW1lbnQgOiB1bmRlZmluZWRcIlxuICAgICAgW3ZhbHVlXT1cImZvcm1BcnJheSA/IHVuZGVmaW5lZCA6IGdldFRyYW5zbGF0aW9uKGVsZW1lbnQpXCJcbiAgICAgIChjbG9zZUNsaWNrRW1pdHRlcik9XCJjbG9zZShpbmRleClcIlxuICAgICAgKGNsaWNrKT1cImhhbmRsZUNoaXBDbGljaygkZXZlbnQpXCJcbiAgICA+XG4gICAgPC9xZC1tdWx0aS1pbnB1dC1jaGlwPlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwicWQtbXVsdGktaW5wdXRfX3dyYXBwZXJcIj5cbiAgICA8aW5wdXRcbiAgICAgICNpbnB1dFxuICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgY2xhc3M9XCJxZC1tdWx0aS1pbnB1dF9fYm94XCJcbiAgICAgICpuZ0lmPVwiIXJlYWRvbmx5ICYmICF2aWV3b25seVwiXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgWyhuZ01vZGVsKV09XCJmaWx0ZXJPcHRpb25zXCJcbiAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImNoYW5nZVZhbHVlKClcIlxuICAgICAgKGtleWRvd24pPVwib25LZXlEb3duKCRldmVudClcIlxuICAgICAgKGZvY3VzKT1cImhhc0ZvY3VzID0gdHJ1ZVwiXG4gICAgICAoYmx1cik9XCJoYW5kbGVCbHVyKClcIlxuICAgICAgW25nQ2xhc3NdPVwib3BlbiA/ICdxZC1tdWx0aS1pbnB1dF9fYm94LS1vcGVuJyA6ICcnXCJcbiAgICAgIFthdHRyLmRhdGEtdGVzdC1pZF09XCJ0ZXN0SWQgKyAnLWlucHV0J1wiXG4gICAgLz5cblxuICAgIDxkaXYgY2xhc3M9XCJxZC1tdWx0aS1pbnB1dF9fYm94IHFkLW11bHRpLWlucHV0X19ib3gtLXJlYWRvbmx5XCIgKm5nSWY9XCJyZWFkb25seSAmJiAhaGFzSXRlbXMoKVwiPiZuYnNwOzwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cInFkLW11bHRpLWlucHV0X19ib3ggcWQtbXVsdGktaW5wdXRfX2JveC0tdmlld29ubHlcIiAqbmdJZj1cInZpZXdvbmx5ICYmICFoYXNJdGVtcygpXCI+Jm5ic3A7PC9kaXY+XG5cbiAgICA8bmctdGVtcGxhdGUgI21lbnU+XG4gICAgICA8cWQtbXVsdGktaW5wdXQtbWVudVxuICAgICAgICBbb3B0aW9uc0xpc3RGb3JWaWV3XT1cIm9wdGlvbnNMaXN0Rm9yVmlld1wiXG4gICAgICAgIFtpZF09XCJpZFwiXG4gICAgICAgIFtkYXRhLXRlc3QtaWRdPVwidGVzdElkXCJcbiAgICAgICAgKGl0ZW1DbGljayk9XCJoYW5kbGVDbGljaygkZXZlbnQpXCJcbiAgICAgID48L3FkLW11bHRpLWlucHV0LW1lbnU+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbmZpZyAmJiAhcmVhZG9ubHkgJiYgIXZpZXdvbmx5XCI+XG4gIDxxZC1mb3JtLWhpbnRcbiAgICBbaGludF09XCJoYXNIaW50ID8gY29uZmlnLmhpbnQuaTE4biA6ICcnXCJcbiAgICBbY29udHJvbF09XCJmb3JtQXJyYXlcIlxuICAgIFtoYXNFcnJvcl09XCJoYXNFcnJvclwiXG4gICAgW2hpbnRBY3Rpb25dPVwiaGludEFjdGlvblwiXG4gICAgW2RhdGEtdGVzdC1pZF09XCJ0ZXN0SWRcIlxuICA+PC9xZC1mb3JtLWhpbnQ+XG48L25nLWNvbnRhaW5lcj5cblxuPHFkLWZvcm0tcmVhZG9ubHlcbiAgKm5nSWY9XCJyZWFkb25seVwiXG4gIFt2YWx1ZXNdPVwiZ2V0VmFsdWVzKClcIlxuICBbcmVhZG9ubHlBY3Rpb25dPVwicmVhZG9ubHlBY3Rpb25cIlxuICBbZGF0YS10ZXN0LWlkXT1cInRlc3RJZFwiXG4+PC9xZC1mb3JtLXJlYWRvbmx5PlxuXG48cWQtZm9ybS12aWV3b25seVxuICAqbmdJZj1cInZpZXdvbmx5XCJcbiAgW3ZhbHVlc109XCJnZXRWYWx1ZXMoKVwiXG4gIFt2aWV3b25seUFjdGlvbl09XCJ2aWV3b25seUFjdGlvblwiXG4gIFtkYXRhLXRlc3QtaWRdPVwidGVzdElkXCJcbj48L3FkLWZvcm0tdmlld29ubHk+XG4iXX0=
540
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9xZC11aS9zcmMvbGliL2Zvcm1zL211bHRpLWlucHV0L211bHRpLWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcWQtdWkvc3JjL2xpYi9mb3Jtcy9tdWx0aS1pbnB1dC9tdWx0aS1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvQkFBb0I7QUFDcEIsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osVUFBVSxFQUNWLElBQUksRUFDSixXQUFXLEVBQ1gsWUFBWSxFQUNaLEtBQUssRUFLTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLFNBQVMsRUFDVCxRQUFRLEVBQ1IsU0FBUyxFQUNULFlBQVksRUFDYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsZ0JBQWdCLEVBR2hCLGlCQUFpQixFQUVsQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sT0FBTyxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFFLEVBQUUsSUFBSSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHbEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBQ2xHLE9BQU8sRUFDTCxXQUFXLEVBQ1gsYUFBYSxFQUNiLFFBQVEsRUFDUixvQkFBb0IsRUFDcEIsV0FBVyxFQUNYLGlCQUFpQixFQUNqQixXQUFXLEVBQ1gsaUJBQWlCLEVBQ2xCLE1BQU0saUNBQWlDLENBQUM7QUFDekMsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0s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QTJCOztzQkFDdkMsV0FBVzt1QkFBQyxtQ0FBbUM7Z0JBTWhELFFBQVE7c0JBSFAsV0FBVzt1QkFBQyx3QkFBd0I7O3NCQUNwQyxXQUFXO3VCQUFDLCtCQUErQjs7c0JBQzNDLFdBQVc7dUJBQUMsb0NBQW9DO2dCQUlqRCxRQUFRO3NCQURQLFdBQVc7dUJBQUMsNEJBQTRCO2dCQUtyQyxRQUFRO3NCQUZYLFdBQVc7dUJBQUMscUJBQXFCOztzQkFDakMsV0FBVzt1QkFBQyw0QkFBNEI7Z0JBS0csWUFBWTtzQkFBdkQsWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1zdHJpY3QtaWdub3JlXG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBmb3J3YXJkUmVmLFxuICBIb3N0LFxuICBIb3N0QmluZGluZyxcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgTmdJdGVyYWJsZSxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBTa2lwU2VsZixcbiAgVmlld0NoaWxkLFxuICBWaWV3Q2hpbGRyZW5cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBDb250cm9sQ29udGFpbmVyLFxuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgRm9ybUNvbnRyb2wsXG4gIE5HX1ZBTFVFX0FDQ0VTU09SLFxuICBVbnR5cGVkRm9ybUNvbnRyb2xcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IGlzRXF1YWwgZnJvbSAnbG9kYXNoL2lzRXF1YWwnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB2NCBhcyB1dWlkIH0gZnJvbSAndXVpZCc7XG5cbmltcG9ydCB7IFFkRm9ybU11bHRpSW5wdXRDb25maWd1cmF0aW9uLCBRZE11bHRpSW5wdXRPcHRpb24gfSBmcm9tICcuLi9tb2RlbC9mb3Jtcy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUWRGb3JtQXJyYXkgfSBmcm9tICcuLi9yZWFjdGl2ZS1mb3Jtcy9jb250cm9scy9mb3JtLWFycmF5JztcbmltcG9ydCB7IFFkRm9ybUFycmF5RmFjdG9yeVNlcnZpY2UgfSBmcm9tICcuLi9yZWFjdGl2ZS1mb3Jtcy9jb250cm9scy9mb3JtLWFycmF5LWZhY3Rvcnkuc2VydmljZSc7XG5pbXBvcnQge1xuICBnZXREaXNhYmxlZCxcbiAgZ2V0SGludEFjdGlvbixcbiAgZ2V0TGFiZWwsXG4gIGdldE11bHRpSW5wdXRPcHRpb25zLFxuICBnZXRSZWFkb25seSxcbiAgZ2V0UmVhZG9ubHlBY3Rpb24sXG4gIGdldFZpZXdvbmx5LFxuICBnZXRWaWV3b25seUFjdGlvblxufSBmcm9tICcuLi9zaGFyZWQvaGVscGVycy9mb3Jtcy5oZWxwZXJzJztcbmltcG9ydCB7IFFkRm9ybXNBY3Rpb25FbWl0dGVyU2VydmljZSB9IGZyb20gJy4uL3NoYXJlZC9zZXJ2aWNlcy9hY3Rpb24tZW1pdHRlci5zZXJ2aWNlJztcbmltcG9ydCB7IFFkTXVsdGlJbnB1dFNlcnZpY2UgfSBmcm9tICcuL211bHRpLWlucHV0LXNlcnZpY2UvbXVsdGktaW5wdXQuc2VydmljZSc7XG5pbXBvcnQgeyBRZFBvcG92ZXJPbkNsaWNrRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vY29yZS9wb3BvdmVyL3BvcG92ZXItb24tY2xpY2svcG9wb3Zlci1vbi1jbGljay5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgUWRNdWx0aUlucHV0TWVudUNvbXBvbmVudCB9IGZyb20gJy4vbXVsdGktaW5wdXQtbWVudS9tdWx0aS1pbnB1dC1tZW51LmNvbXBvbmVudCc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBRZEV2ZW50QnJva2VyU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvZXZlbnQtYnJva2VyLnNlcnZpY2UnO1xuXG4vKipcbiAqIFRoZSAqKlFkTXVsdGlJbnB1dCoqIGlzIGEgY29tcG9uZW50IHRoYXQgcHJvdmlkZXMgYSB1c2VyIGludGVyZmFjZSBmb3IgZW50ZXJpbmcgbXVsdGlwbGUgaW5wdXRzLjxiciAvPlxuICogSXQgaXMgZGVzaWduZWQgdG8gZW5oYW5jZSB0aGUgdXNlciBleHBlcmllbmNlIHdoZW4gZGVhbGluZyB3aXRoIG11bHRpcGxlIGlucHV0cyBhbmQgY2FuIGJlIHVzZWQgd2l0aCBRdWFkcmVsIFJlYWN0aXZlIEZvcm1zIG9yIHdpdGggbW9kZWwgYmluZGluZy5cbiAqXG4gKiAjIyMjKipVc2FnZSB3aXRoIFJlYWN0aXZlIEZvcm1zKipcbiAqXG4gKiBgYGB0c1xuICogZm9ybSA9IG5ldyBRZEZvcm1Hcm91cCh7XG4gKiAgIG11bHRpSW5wdXQ6IG5ldyBRZEZvcm1BcnJheSgpXG4gKiB9KTtcbiAqIGBgYFxuICogYGBgaHRtbFxuICogPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCI+XG4gKiAgIDxxZC1tdWx0aS1pbnB1dCBbZm9ybUFycmF5TmFtZV09XCJtdWx0aUlucHV0XCIgW2NvbmZpZ109XCJjb25maWdcIj48L3FkLW11bHRpLWlucHV0PlxuICogPC9mb3JtPlxuICogYGBgXG4gKlxuICogIyMjIyoqVXNhZ2Ugd2l0aCBNb2RlbCBCaW5kaW5nKipcbiAqIGBgYHRzXG4gKiB2YWx1ZXM7XG4gKiBgYGBcbiAqIGBgYGh0bWxcbiAqIDxxZC1tdWx0aS1pbnB1dCBbKHZhbHVlcyldPVwidmFsdWVzXCIgW2NvbmZpZ109XCJjb25maWdcIj48L3FkLW11bHRpLWlucHV0PlxuICogYGBgXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3FkLW11bHRpLWlucHV0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL211bHRpLWlucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbXVsdGktaW5wdXQuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogUWRNdWx0aUlucHV0Q29tcG9uZW50LFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9LFxuICAgIFFkTXVsdGlJbnB1dFNlcnZpY2UsXG4gICAgUWRGb3Jtc0FjdGlvbkVtaXR0ZXJTZXJ2aWNlXG4gIF0sXG4gIGhvc3Q6IHsgY2xhc3M6ICdxZC1tdWx0aS1pbnB1dCcgfSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgUWRNdWx0aUlucHV0Q29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uRGVzdHJveSB7XG4gIC8qKlxuICAgKiBIZXJlIGFuIGlkIGNhbiBiZSBhc3NpZ25lZCwgd2l0aCB3aGljaCBhIHZhbHVlIGNhbiBiZSBsaW5rZWQgdG8gYSBjb3JyZXNwb25kaW5nIGxhYmVsLlxuICAgKi9cbiAgQElucHV0KCkgaWQ7XG5cbiAgLyoqXG4gICAqIFRoZSBjdXJyZW50IGZvcm0gaXRlbSB2YWx1ZXMsIGlmIHlvdSBhcmUgd29ya2luZyB3aXRoIE1vZGVsIEJpbmRpbmcuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIDxxZC1tdWx0aS1pbnB1dCBbKHZhbHVlcyldPVwidmFsdWVzXCIgW2NvbmZpZ109XCJjb25maWdcIj48L3FkLW11bHRpLWlucHV0PlxuICAgKi9cbiAgQElucHV0KCkgc2V0IHZhbHVlcyh2YWx1ZXM6IHN0cmluZ1tdKSB7XG4gICAgdGhpcy5fdmFsdWVzID0gdmFsdWVzO1xuICB9XG5cbiAgZ2V0IHZhbHVlcygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlcztcbiAgfVxuXG4gIC8qKlxuICAgKiAqIEBkZXByZWNhdGVkXG4gICAqIFRPRE8gcmVtb3ZlIGxvZ2ljIGZvciBzdXBwb3J0IG9mIFtmb3JtQ29udHJvbE5hbWVdIGRpcmVjdGl2ZSBhbmQgRm9ybUNvbnRyb2wgd2l0aCBhbmd1bGFyIDE0IHVwZGF0ZVxuICAgKi9cbiAgQElucHV0KCkgc2V0IGZvcm1Db250cm9sTmFtZShmb3JtQ29udHJvbE5hbWU6IHN0cmluZykge1xuICAgIGNvbnNvbGUud2FybihcbiAgICAgICdRRC1VSSB8IFFkTXVsdGlJbnB1dENvbXBvbmVudCAtIFBsZWFzZSB1c2UgdGhlIE11bHRpSW5wdXQgd2l0aCB0aGUgUWRGb3JtQXJyYXkgZm9ybSBjb250cm9sIGFuZCB0aGUgW2Zvcm1BcnJheU5hbWVdIGRpcmVjdGl2ZSEnXG4gICAgKTtcbiAgICB0aGlzLl9mb3JtQ29udHJvbE5hbWUgPSBmb3JtQ29udHJvbE5hbWU7XG4gIH1cblxuICBnZXQgZm9ybUNvbnRyb2xOYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2Zvcm1Db250cm9sTmFtZTtcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBmb3JtQXJyYXlOYW1lKGZvcm1BcnJheU5hbWU6IHN0cmluZykge1xuICAgIHRoaXMuX2Zvcm1BcnJheU5hbWUgPSBmb3JtQXJyYXlOYW1lO1xuICB9XG5cbiAgZ2V0IGZvcm1BcnJheU5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fZm9ybUFycmF5TmFtZSB8fCB0aGlzLmZvcm1Db250cm9sTmFtZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgY29uZmlndXJhdGlvbiBmb3IgdGhpcyBmb3JtIGl0ZW1cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICoge1xuICAgKiAgIGxhYmVsOiB7IGkxOG46ICdteS1sYWJlbCcgfSxcbiAgICogICBoaW50OiB7IGkxOG46ICdteS1oaW50JyB9LFxuICAgKiAgIG9wdGlvbnM6IFtcbiAgICogICAgIHsgaTE4bjogJ2kxOG4ucWQuZXhhbXBsZUZvcm1GaWVsZC5nb29kc0RlY2xhcmF0aW9uLmltcG9ydCcsIHZhbHVlOiAnaW1wb3J0JyB9LFxuICAgKiAgICAgeyBpMThuOiAnaTE4bi5xZC5leGFtcGxlRm9ybUZpZWxkLmdvb2RzRGVjbGFyYXRpb24uZXhwb3J0JywgdmFsdWU6ICdleHBvcnQnIH0sXG4gICAqICAgICB7IGkxOG46ICdpMThuLnFkLmV4YW1wbGVGb3JtRmllbGQuZ29vZHNEZWNsYXJhdGlvbi50cmFuc2l0JywgdmFsdWU6ICd0cmFuc2l0JyB9XG4gICAqICAgXVxuICAgKiB9O1xuICAgKi9cbiAgQElucHV0KCkgY29uZmlnOiBRZEZvcm1NdWx0aUlucHV0Q29uZmlndXJhdGlvbjtcblxuICAvKipcbiAgICogQSBzdGF0aWMgdGVzdCBJRCBmb3IgaW50ZWdyYXRpb24gdGVzdHMgY2FuIGJlIHNldC4gPGJyIC8+XG4gICAqIFRoZSB2YWx1ZSBmb3IgdGhlIEhUTUwgYXR0cmlidXRlIFtkYXRhLXRlc3QtaWRdLlxuICAgKi9cbiAgQElucHV0KCdkYXRhLXRlc3QtaWQnKSB0ZXN0SWQgPSAnbXVsdGktaW5wdXQnO1xuXG4gIC8qKlxuICAgKiBFbWl0cyBldmVudCB3aGVuIHRoZSB2YWx1ZXMgY2hhbmdlLiBSZXR1cm4gdmFsdWVzIG1hdGNoIHRoZSBjdXJyZW50IHZhbHVlcy5cbiAgICovXG4gIEBPdXRwdXQoKSByZWFkb25seSB2YWx1ZXNDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZ1tdPigpO1xuXG4gIC8qKlxuICAgKiBFbWl0cyBldmVudCB3aGVuIHRoZSBoaW50IGlzIGNsaWNrZWQvdGFwcGVkLiBgaGludEFjdGlvbmAgbXVzdCBiZSBzZXQgdG8gYHRydWVgIGZvciB0aGlzLlxuICAgKi9cbiAgQE91dHB1dCgpIHJlYWRvbmx5IGNsaWNrSGludCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAvKipcbiAgICogRW1pdHMgZXZlbnQgd2hlbiBhIHJlYWRvbmx5IHZhbHVlIGlzIGNsaWNrZWQvdGFwcGVkLiBgY2xpY2tSZWFkb25seSBgIG11c3QgYmUgc2V0IHRvIGB0cnVlYCBmb3IgdGhpcy5cbiAgICovXG4gIEBPdXRwdXQoKSByZWFkb25seSBjbGlja1JlYWRvbmx5ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIC8qKlxuICAgKiBFbWl0cyBldmVudCB3aGVuIGEgdmlld29ubHkgdmFsdWUgaXMgY2xpY2tlZC90YXBwZWQuIGBjbGlja1ZpZXdvbmx5IGAgbXVzdCBiZSBzZXQgdG8gYHRydWVgIGZvciB0aGlzLlxuICAgKi9cbiAgQE91dHB1dCgpIHJlYWRvbmx5IGNsaWNrVmlld29ubHkgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQFZpZXdDaGlsZCgnaW5wdXQnKSBpbnB1dEZpZWxkOiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKGZvcndhcmRSZWYoKCkgPT4gUWRNdWx0aUlucHV0TWVudUNvbXBvbmVudCkpIG11bHRpSW5wdXRNZW51OiBRZE11bHRpSW5wdXRNZW51Q29tcG9uZW50O1xuICBAVmlld0NoaWxkKFFkUG9wb3Zlck9uQ2xpY2tEaXJlY3RpdmUpIHBvcG92ZXJPbkNsaWNrRGlyZWN0aXZlOiBRZFBvcG92ZXJPbkNsaWNrRGlyZWN0aXZlO1xuICBAVmlld0NoaWxkcmVuKCdlcnJvclRvb2x0aXBzJykgZXJyb3JUb29sdGlwczogUXVlcnlMaXN0PEVsZW1lbnRSZWY+O1xuICBAVmlld0NoaWxkcmVuKCdkcm9wZG93bk9wdGlvbicpIGRyb3Bkb3duT3B0aW9uczogUXVlcnlMaXN0PEVsZW1lbnRSZWY+O1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MucWQtbXVsdGktaW5wdXQtcmVhZG9ubHknKVxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnFkLW11bHRpLWlucHV0LWNoaXAtcmVhZG9ubHknKVxuICByZWFkb25seSA9IGZhbHNlO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MucWQtbXVsdGktaW5wdXQtLXJlYWRvbmx5LWFjdGlvbicpXG4gIHJlYWRvbmx5QWN0aW9uID0gZmFsc2U7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5xZC1tdWx0aS1pbnB1dC12aWV3b25seScpXG4gIEBIb3N0QmluZGluZygnY2xhc3MucWQtbXVsdGktaW5wdXQtY2hpcC12aWV3b25seScpXG4gIHZpZXdvbmx5ID0gZmFsc2U7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5xZC1tdWx0aS1pbnB1dC0tdmlld29ubHktYWN0aW9uJylcbiAgdmlld29ubHlBY3Rpb24gPSBmYWxzZTtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnFkLWZvcm0taGludC1hY3Rpb24nKVxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnFkLW11bHRpLWlucHV0LS1oaW50LWFjdGlvbicpXG4gIGhpbnRBY3Rpb24gPSBmYWxzZTtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnFkLWZvcm0tZGlzYWJsZWQnKVxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnFkLW11bHRpLWlucHV0LWRpc2FibGVkJylcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5xZC1tdWx0aS1pbnB1dC1jaGlwLWRpc2FibGVkJylcbiAgZGlzYWJsZWQgPSBmYWxzZTtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnFkLW11bHRpLWlucHV0LWZvY3VzJylcbiAgaGFzRm9jdXMgPSBmYWxzZTtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnFkLWZvcm0tZXJyb3InKVxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnFkLW11bHRpLWlucHV0LWVycm9yJylcbiAgZ2V0IGhhc0Vycm9yKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmZvcm1BcnJheSA/IHRoaXMuZm9ybUFycmF5LnRvdWNoZWQgJiYgdGhpcy5mb3JtQXJyYXkuaW52YWxpZCA6IGZhbHNlO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6Y2xpY2snLCBbJyRldmVudCddKSBjbGlja091dHNpZGUoJGV2ZW50KTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgdHlwZW9mICRldmVudC50YXJnZXQuY2xhc3NOYW1lID09PSAnc3RyaW5nJyAmJlxuICAgICAgISRldmVudC50YXJnZXQuY2xhc3NOYW1lLmluY2x1ZGVzKCdxZC1tdWx0aS1pbnB1dCcpICYmXG4gICAgICB0aGlzLm9wZW5cbiAgICApIHtcbiAgICAgIHRoaXMuX29uVG91Y2goKTtcbiAgICAgIGlmICgkZXZlbnQ/LnBvaW50ZXJJZCAhPT0gLTEpIHRoaXMuY2xvc2VQb3BvdmVyKCk7XG4gICAgfVxuICB9XG5cbiAgbGFiZWw6IHN0cmluZztcbiAgb3B0aW9uczogUWRNdWx0aUlucHV0T3B0aW9uW107XG4gIG9wZW4gPSBmYWxzZTtcbiAgb3B0aW9uc0xpc3RGb3JWaWV3OiBRZE11bHRpSW5wdXRPcHRpb25bXTtcbiAgZmlsdGVyT3B0aW9uczogc3RyaW5nO1xuICBmb3JtQXJyYXk6IFFkRm9ybUFycmF5PHN0cmluZz47XG5cbiAgcHJpdmF0ZSBfdmFsdWVzOiBzdHJpbmdbXTtcbiAgcHJpdmF0ZSBfZm9ybUNvbnRyb2xOYW1lOiBzdHJpbmc7XG4gIHByaXZhdGUgX2Zvcm1BcnJheU5hbWU6IHN0cmluZztcbiAgcHJpdmF0ZSBfb25EaXNhYmxlZENoYW5nZTtcbiAgcHJpdmF0ZSBfc3VicyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcbiAgcHJpdmF0ZSBfcmVzaXplT2JzZXJ2ZXI6IFJlc2l6ZU9ic2VydmVyO1xuICBwcml2YXRlIF9vbkNoYW5nZTogYW55ID0gKCkgPT4ge307XG4gIHByaXZhdGUgX29uVG91Y2g6IGFueSA9ICgpID0+IHt9O1xuXG4gIGdldCBoYXNIaW50KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZy5oaW50ICYmIHRoaXMuY29uZmlnLmhpbnQuaTE4biAmJiAhdGhpcy5jb25maWcuaGludC5kaXNhYmxlZDtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgaG9zdFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgcHJpdmF0ZSByZWFkb25seSBtdWx0aUlucHV0U2VydmljZTogUWRNdWx0aUlucHV0U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFjdGlvbkVtaXR0ZXJTZXJ2aWNlOiBRZEZvcm1zQWN0aW9uRW1pdHRlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBxZEZvcm1BcnJheUZhY3RvcnlTZXJ2aWNlOiBRZEZvcm1BcnJheUZhY3RvcnlTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIEBIb3N0KCkgQFNraXBTZWxmKCkgcHJpdmF0ZSByZWFkb25seSBjb250cm9sQ29udGFpbmVyOiBDb250cm9sQ29udGFpbmVyLFxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgcmVhZG9ubHkgZXZlbnRCcm9rZXJTZXJ2aWNlOiBRZEV2ZW50QnJva2VyU2VydmljZVxuICApIHtcbiAgICBpZiAoIXRoaXMuaWQpIHRoaXMuaWQgPSB1dWlkKCk7XG5cbiAgICB0aGlzLm11bHRpSW5wdXRTZXJ2aWNlLm9wdGlvbnNMaXN0Rm9yVmlldyQucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQoKSkuc3Vic2NyaWJlKGxpc3QgPT4ge1xuICAgICAgdGhpcy5vcHRpb25zTGlzdEZvclZpZXcgPSBsaXN0O1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVDb25maWd1cmF0aW9uKCk7XG5cbiAgICB0aGlzLm11bHRpSW5wdXRTZXJ2aWNlLnNldE9wdGlvbnNMaXN0KHRoaXMub3B0aW9ucyk7XG4gICAgdGhpcy5tdWx0aUlucHV0U2VydmljZS5zZXRTZWxlY3RlZEl0ZW1zKHRoaXMudmFsdWVzKTtcblxuICAgIHRoaXMuX3N1YnMuYWRkKHRoaXMuYWN0aW9uRW1pdHRlclNlcnZpY2UuaGludEV2ZW50RW1pdHRlciQuc3Vic2NyaWJlKCgpID0+IHRoaXMuY2xpY2tIaW50LmVtaXQoKSkpO1xuICAgIHRoaXMuX3N1YnMuYWRkKHRoaXMuYWN0aW9uRW1pdHRlclNlcnZpY2UucmVhZG9ubHlFdmVudEVtaXR0ZXIkLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNsaWNrUmVhZG9ubHkuZW1pdCgpKSk7XG4gICAgdGhpcy5fc3Vicy5hZGQodGhpcy5hY3Rpb25FbWl0dGVyU2VydmljZS52aWV3b25seUV2ZW50RW1pdHRlciQuc3Vic2NyaWJlKCgpID0+IHRoaXMuY2xpY2tWaWV3b25seS5lbWl0KCkpKTtcbiAgICB0aGlzLl9zdWJzLmFkZCh0aGlzLmluaXRPcE1vZGVTdWJzY3JpcHRpb24oKSk7XG5cbiAgICBpZiAoIXRoaXMuY29udHJvbENvbnRhaW5lcikgcmV0dXJuO1xuXG4gICAgaWYgKHRoaXMuZm9ybUFycmF5TmFtZSkge1xuICAgICAgY29uc3QgZm9ybUFycmF5ID0gdGhpcy5jb250cm9sQ29udGFpbmVyLmNvbnRyb2wuZ2V0KHRoaXMuZm9ybUFycmF5TmFtZSk7XG5cbiAgICAgIC8vIFVwZGF0aW5nIGZvcm0gYXJyYXkgcHJvZ3JhbW1hdGljYWxseSBmcm9tIG91dHNpZGVcbiAgICAgIHRoaXMuX3N1YnMuYWRkKFxuICAgICAgICBmb3JtQXJyYXkudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5tdWx0aUlucHV0U2VydmljZS5zZXRTZWxlY3RlZEl0ZW1zKHRoaXMuZm9ybUFycmF5LnZhbHVlKTtcbiAgICAgICAgICB0aGlzLnZhbHVlc0NoYW5nZS5lbWl0KHRoaXMuZm9ybUFycmF5LnZhbHVlKTtcbiAgICAgICAgfSlcbiAgICAgICk7XG5cbiAgICAgIGlmIChmb3JtQXJyYXkgaW5zdGFuY2VvZiBRZEZvcm1BcnJheSkge1xuICAgICAgICB0aGlzLmZvcm1BcnJheSA9IGZvcm1BcnJheTtcbiAgICAgICAgdGhpcy5tdWx0aUlucHV0U2VydmljZS5zZXRTZWxlY3RlZEl0ZW1zKHRoaXMuZm9ybUFycmF5LnZhbHVlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFRPRE8gcmVtb3ZlIGxvZ2ljIGZvciBzdXBwb3J0IG9mIEFuZ3VsYXIgRm9ybUNvbnRyb2wgd2l0aCBhbmd1bGFyIDE5IHVwZGF0ZVxuICAgICAgICB0aGlzLmZvcm1BcnJheSA9IHRoaXMucWRGb3JtQXJyYXlGYWN0b3J5U2VydmljZS5jcmVhdGVRZEZvcm1BcnJheUZyb21Gb3JtQ29udHJvbChcbiAgICAgICAgICBmb3JtQXJyYXkgYXMgVW50eXBlZEZvcm1Db250cm9sXG4gICAgICAgICk7XG4gICAgICAgIGNvbnNvbGUud2FybignUUQtVUkgfCBRZE11bHRpSW5wdXRDb21wb25lbnQgLSBQbGVhc2UgdXNlIHRoZSBNdWx0aUlucHV0IHdpdGggdGhlIFFkRm9ybUFycmF5IGZvcm0gY29udHJvbCEnKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuZGlzYWJsZWQgPSBmb3JtQXJyYXkuZGlzYWJsZWQ7XG4gICAgICB0aGlzLl9vbkRpc2FibGVkQ2hhbmdlID0gKGRpc2FibGVkKTogdm9pZCA9PiB7XG4gICAgICAgIHRoaXMuZGlzYWJsZWQgPSBkaXNhYmxlZDtcbiAgICAgIH07XG4gICAgICB0aGlzLmZvcm1BcnJheS5yZWdpc3Rlck9uRGlzYWJsZWRDaGFuZ2UodGhpcy5fb25EaXNhYmxlZENoYW5nZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgJ1FELVVJIHwgUWRNdWx0aUlucHV0Q29tcG9uZW50IC0gTWlzc2luZyBbZm9ybUFycmF5TmFtZV0gZGlyZWN0aXZlIGZyb20gaG9zdCBlbGVtZW50IG9mIHRoZSBjb21wb25lbnQnXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlcy5jb25maWcpIHtcbiAgICAgIHRoaXMudXBkYXRlQ29uZmlndXJhdGlvbigpO1xuICAgICAgaWYgKHRoaXMuaGF2ZU9wdGlvbnNDaGFuZ2VkKGNoYW5nZXMpKSB7XG4gICAgICAgIHRoaXMubXVsdGlJbnB1dFNlcnZpY2Uuc2V0T3B0aW9uc0xpc3QodGhpcy5vcHRpb25zKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmNsaWNrT3V0c2lkZSA9ICgpOiB2b2lkID0+IHt9O1xuICAgIHRoaXMuX3N1YnM/LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5fcmVzaXplT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcblxuICAgIGlmICh0aGlzLmZvcm1BcnJheSAmJiB0aGlzLl9vbkRpc2FibGVkQ2hhbmdlKSB0aGlzLmZvcm1BcnJheS5fdW5yZWdpc3Rlck9uRGlzYWJsZWRDaGFuZ2UodGhpcy5fb25EaXNhYmxlZENoYW5nZSk7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAoXzogYW55KSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5fb25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLl9vblRvdWNoID0gZm47XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlczogc3RyaW5nW10pOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuY29udHJvbENvbnRhaW5lcikgdGhpcy5nZXRJdGVtcygpO1xuXG4gICAgdGhpcy52YWx1ZXMgPSB2YWx1ZXM7XG4gICAgdGhpcy52YWx1ZXNDaGFuZ2UuZW1pdCh0aGlzLnZhbHVlcyk7XG4gIH1cblxuICBnZXRJdGVtcygpOiBRZE11bHRpSW5wdXRPcHRpb25bXSB7XG4gICAgcmV0dXJuIHRoaXMubXVsdGlJbnB1dFNlcnZpY2UuZ2V0SXRlbXMoKTtcbiAgfVxuXG4gIGhhc0l0ZW1zKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm11bHRpSW5wdXRTZXJ2aWNlLmdldEl0ZW1zKCkubGVuZ3RoID4gMDtcbiAgfVxuXG4gIGdldFRyYW5zbGF0aW9uKG9wdGlvbjogUWRNdWx0aUlucHV0T3B0aW9uKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5tdWx0aUlucHV0U2VydmljZS5nZXRUcmFuc2xhdGlvbihvcHRpb24pO1xuICB9XG5cbiAgb3BlblBvcG92ZXIoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucmVhZG9ubHkgfHwgdGhpcy52aWV3b25seSB8fCB0aGlzLmRpc2FibGVkIHx8IHRoaXMub3B0aW9ucy5sZW5ndGggPT09IDApIHJldHVybjtcblxuICAgIHRoaXMucG9wb3Zlck9uQ2xpY2tEaXJlY3RpdmU/Lm9wZW4oKTtcbiAgfVxuXG4gIGNsb3NlUG9wb3ZlcigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5yZWFkb25seSB8fCB0aGlzLnZpZXdvbmx5IHx8IHRoaXMuZGlzYWJsZWQpIHJldHVybjtcblxuICAgIHRoaXMucG9wb3Zlck9uQ2xpY2tEaXJlY3RpdmU/LmNsb3NlKCk7XG4gIH1cblxuICBoYW5kbGVDbGljayhvcHRpb246IFFkTXVsdGlJbnB1dE9wdGlvbik6IHZvaWQge1xuICAgIGlmICghb3B0aW9uLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLmFkZEl0ZW0ob3B0aW9uKTtcbiAgICAgIHRoaXMuY2xvc2VQb3BvdmVyKCk7XG4gICAgfVxuXG4gICAgdGhpcy5mb2N1cygpO1xuICB9XG5cbiAgaGFuZGxlQmx1cigpOiB2b2lkIHtcbiAgICB0aGlzLmhhc0ZvY3VzID0gZmFsc2U7XG4gIH1cblxuICBvbktleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBzd2l0Y2ggKGV2ZW50LmtleSkge1xuICAgICAgY2FzZSAnRW50ZXInOiB7XG4gICAgICAgIGNvbnN0IG5ld09wdGlvbiA9IHRoaXMubXVsdGlJbnB1dE1lbnU/LmtleU1hbmFnZXI/LmFjdGl2ZUl0ZW0/Lm9wdGlvbjtcbiAgICAgICAgaWYgKG5ld09wdGlvbj8uZGlzYWJsZWQpIHJldHVybjtcbiAgICAgICAgY29uc3Qgb3B0aW9uID0gdGhpcy5vcHRpb25zTGlzdEZvclZpZXcuZmluZChzID0+IHMudmFsdWUgPT09IG5ld09wdGlvbj8udmFsdWUpIHx8IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5hZGRDaGlwKG9wdGlvbik7XG4gICAgICAgIHRoaXMub3BlblBvcG92ZXIoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdFc2NhcGUnOlxuICAgICAgICB0aGlzLmNsb3NlUG9wb3ZlcigpO1xuICAgICAgICB0aGlzLmJsdXIoKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ0Fycm93VXAnOlxuICAgICAgICB0aGlzLm9wZW5Qb3BvdmVyKCk7XG4gICAgICAgIHRoaXMubXVsdGlJbnB1dE1lbnU/LmhhbmRsZUFycm93S2V5KCd1cCcsIGV2ZW50KTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ0Fycm93RG93bic6XG4gICAgICAgIHRoaXMub3BlblBvcG92ZXIoKTtcbiAgICAgICAgdGhpcy5tdWx0aUlucHV0TWVudT8uaGFuZGxlQXJyb3dLZXkoJ2Rvd24nLCBldmVudCk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aGlzLm9wZW5Qb3BvdmVyKCk7XG4gICAgfVxuICB9XG5cbiAgY2hhbmdlVmFsdWUoKTogdm9pZCB7XG4gICAgdGhpcy5tdWx0aUlucHV0U2VydmljZS5zZXRDdXJyZW50SW5wdXQodGhpcy5maWx0ZXJPcHRpb25zKTtcbiAgICB0aGlzLm9wZW5Qb3BvdmVyKCk7XG4gICAgdGhpcy5tdWx0aUlucHV0TWVudT8ucmVzZXRDaGVja2VkT3B0aW9uKCk7XG4gICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBjbG9zZShpbmRleCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmZvcm1BcnJheSkge1xuICAgICAgdGhpcy5mb3JtQXJyYXkucmVtb3ZlQXQoaW5kZXgpO1xuICAgICAgdGhpcy5mb3JtQXJyYXkubWFya0FzVG91Y2hlZCgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMubXVsdGlJbnB1dFNlcnZpY2UucmVtb3ZlSXRlbUF0SW5kZXgoaW5kZXgpO1xuICAgIHRoaXMud3JpdGVWYWx1ZSh0aGlzLm11bHRpSW5wdXRTZXJ2aWNlLmdldEl0ZW1WYWx1ZXMoKSk7XG4gICAgdGhpcy5mb2N1cygpO1xuICB9XG5cbiAgZ2V0SXRlcmFibGVFbGVtZW50cygpOiBOZ0l0ZXJhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmdldEl0ZW1zQXJyYXkoKTtcbiAgfVxuXG4gIGdldFZhbHVlcygpOiBRZE11bHRpSW5wdXRPcHRpb25bXSB7XG4gICAgY29uc3QgdmFsdWVzID0gdGhpcy5nZXRJdGVtc0FycmF5KCkubWFwKGkgPT4gdGhpcy5tdWx0aUlucHV0U2VydmljZS5maW5kT3B0aW9uKGkudmFsdWUpKTtcbiAgICByZXR1cm4gdmFsdWVzO1xuICB9XG5cbiAgaGFuZGxlQ2hpcENsaWNrKCRldmVudCk6IHZvaWQge1xuICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLmZvY3VzKCk7XG4gICAgaWYgKHRoaXMucmVhZG9ubHlBY3Rpb24pIHRoaXMuaGFuZGxlUmVhZE9ubHlBY3Rpb24oJGV2ZW50KTtcbiAgICBpZiAodGhpcy52aWV3b25seUFjdGlvbikgdGhpcy5oYW5kbGVWaWV3T25seUFjdGlvbigkZXZlbnQpO1xuICB9XG5cbiAgaGFuZGxlUmVhZE9ubHlBY3Rpb24oJGV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5jbGlja1JlYWRvbmx5LmVtaXQoJGV2ZW50LnRhcmdldC5kYXRhc2V0LnZhbHVlKTtcbiAgfVxuXG4gIGhhbmRsZVZpZXdPbmx5QWN0aW9uKCRldmVudCk6IHZvaWQge1xuICAgIHRoaXMuY2xpY2tWaWV3b25seS5lbWl0KCRldmVudC50YXJnZXQuZGF0YXNldC52YWx1ZSk7XG4gIH1cblxuICBmb2N1cygpOiB2b2lkIHtcbiAgICB0aGlzLmlucHV0RmllbGQ/Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlQ29uZmlndXJhdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLmxhYmVsID0gZ2V0TGFiZWwodGhpcy5jb25maWcpO1xuICAgIHRoaXMucmVhZG9ubHkgPSBnZXRSZWFkb25seSh0aGlzLmNvbmZpZywgdGhpcy5yZWFkb25seSk7XG4gICAgdGhpcy52aWV3b25seSA9IGdldFZpZXdvbmx5KHRoaXMuY29uZmlnLCB0aGlzLnZpZXdvbmx5KTtcbiAgICB0aGlzLmhpbnRBY3Rpb24gPSBnZXRIaW50QWN0aW9uKHRoaXMuY29uZmlnKTtcbiAgICB0aGlzLnJlYWRvbmx5QWN0aW9uID0gZ2V0UmVhZG9ubHlBY3Rpb24odGhpcy5jb25maWcpO1xuICAgIHRoaXMudmlld29ubHlBY3Rpb24gPSBnZXRWaWV3b25seUFjdGlvbih0aGlzLmNvbmZpZyk7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGdldERpc2FibGVkKHRoaXMuY29uZmlnKSB8fCAhIXRoaXMuZm9ybUFycmF5Py5kaXNhYmxlZDtcbiAgICB0aGlzLm9wdGlvbnMgPSBnZXRNdWx0aUlucHV0T3B0aW9ucyh0aGlzLmNvbmZpZyk7XG4gIH1cblxuICBwcml2YXRlIGFkZENoaXAob3B0aW9uPzogUWRNdWx0aUlucHV0T3B0aW9uKTogdm9pZCB7XG4gICAgaWYgKCFvcHRpb24gfHwgIXRoaXMub3B0aW9uc0xpc3RGb3JWaWV3Lm1hcChvcHRpb25zID0+IG9wdGlvbnMudmFsdWUpLmluY2x1ZGVzKG9wdGlvbi52YWx1ZSkpIHtcbiAgICAgIGlmICh0aGlzLmlucHV0RmllbGQubmF0aXZlRWxlbWVudC52YWx1ZSA9PT0gJycpIHJldHVybjtcblxuICAgICAgdGhpcy5oYW5kbGVVc2VySW5wdXQoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5hZGRJdGVtKG9wdGlvbik7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVVc2VySW5wdXQoKTogdm9pZCB7XG4gICAgY29uc3QgaXRlbXM6IFFkTXVsdGlJbnB1dE9wdGlvbltdID0gW107XG4gICAgaWYgKHRoaXMuZmlsdGVyT3B0aW9ucyAhPT0gJycgJiYgIXRoaXMuY29uZmlnLmRpc2FibGVGcmVldGV4dCkge1xuICAgICAgY29uc3Qgb3B0aW9uSW5kZXggPSB0aGlzLmZpbmRPcHRpb25JbmRleCh0aGlzLmZpbHRlck9wdGlvbnMpO1xuICAgICAgaWYgKG9wdGlvbkluZGV4ID09PSAtMSkge1xuICAgICAgICBpdGVtcy5wdXNoKC4uLnRoaXMuZ2V0U3BsaXRPcHRpb25zKCkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaXRlbXMucHVzaCh0aGlzLm9wdGlvbnNMaXN0Rm9yVmlld1tvcHRpb25JbmRleF0pO1xuICAgICAgfVxuICAgICAgdGhpcy5hZGRJdGVtc1RvQ2hpcFNldChpdGVtcyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhZGRJdGVtc1RvQ2hpcFNldChpdGVtczogUWRNdWx0aUlucHV0T3B0aW9uW10pOiB2b2lkIHtcbiAgICBpZiAodGhpcy5mb3JtQXJyYXkpIHtcbiAgICAgIGl0ZW1zLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgIHRoaXMuZm9ybUFycmF5LnB1c2goaXRlbS52YWx1ZSk7XG4gICAgICAgIHRoaXMubXVsdGlJbnB1dFNlcnZpY2UuYWRkU2VsZWN0ZWRJdGVtKGl0ZW0pO1xuICAgICAgfSk7XG4gICAgICB0aGlzLmZpbHRlck9wdGlvbnMgPSAnJztcbiAgICAgIHRoaXMuY2hhbmdlVmFsdWUoKTtcbiAgICAgIHRoaXMuZm9ybUFycmF5Lm1hcmtBc1RvdWNoZWQoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaXRlbXMuZm9yRWFjaChpdGVtID0+IHRoaXMuYWRkSXRlbShpdGVtKSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRTcGxpdE9wdGlvbnMoKTogUWRNdWx0aUlucHV0T3B0aW9uW10ge1xuICAgIHJldHVybiB0aGlzLm11bHRpSW5wdXRTZXJ2aWNlLnNwbGl0RmlsdGVyT3B0aW9ucyh0aGlzLmZpbHRlck9wdGlvbnMsIHRoaXMuY29uZmlnLmlucHV0U3BsaXR0ZXJzKTtcbiAgfVxuXG4gIHByaXZhdGUgZmluZE9wdGlvbkluZGV4KG9wdGlvbk5hbWU6IHN0cmluZyk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMub3B0aW9uc0xpc3RGb3JWaWV3LmZpbmRJbmRleChvcHRpb24gPT4gdGhpcy5nZXRUcmFuc2xhdGlvbihvcHRpb24pID09PSBvcHRpb25OYW1lKTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkSXRlbShvcHRpb246IFFkTXVsdGlJbnB1dE9wdGlvbik6IHZvaWQge1xuICAgIHRoaXMuZmlsdGVyT3B0aW9ucyA9ICcnO1xuXG4gICAgaWYgKHRoaXMuZm9ybUFycmF5KSB7XG4gICAgICB0aGlzLmZvcm1BcnJheS5wdXNoKG9wdGlvbi52YWx1ZSk7XG4gICAgICB0aGlzLmZvcm1BcnJheS5tYXJrQXNUb3VjaGVkKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5tdWx0aUlucHV0U2VydmljZS5hZGRTZWxlY3RlZEl0ZW0ob3B0aW9uKTtcbiAgICB0aGlzLmNoYW5nZVZhbHVlKCk7XG4gICAgdGhpcy53cml0ZVZhbHVlKHRoaXMubXVsdGlJbnB1dFNlcnZpY2UuZ2V0SXRlbVZhbHVlcygpKTtcbiAgfVxuXG4gIHByaXZhdGUgaGF2ZU9wdGlvbnNDaGFuZ2VkKGNoYW5nZXMpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIWlzRXF1YWwoY2hhbmdlcy5jb25maWcucHJldmlvdXNWYWx1ZT8ub3B0aW9ucywgY2hhbmdlcy5jb25maWcuY3VycmVudFZhbHVlPy5vcHRpb25zKTtcbiAgfVxuXG4gIHByaXZhdGUgYmx1cigpOiB2b2lkIHtcbiAgICB0aGlzLmlucHV0RmllbGQ/Lm5hdGl2ZUVsZW1lbnQuYmx1cigpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRJdGVtc0FycmF5KCk6IChGb3JtQ29udHJvbCB8IFFkTXVsdGlJbnB1dE9wdGlvbilbXSB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybUFycmF5ID8gKHRoaXMuZm9ybUFycmF5LmNvbnRyb2xzIGFzIEZvcm1Db250cm9sW10pIDogdGhpcy5nZXRJdGVtcygpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0T3BNb2RlU3Vic2NyaXB0aW9uKCk6IFN1YnNjcmlwdGlvbiB8IHZvaWQge1xuICAgIGlmICghdGhpcy5ldmVudEJyb2tlclNlcnZpY2UpIHJldHVybjtcblxuICAgIHJldHVybiB0aGlzLmV2ZW50QnJva2VyU2VydmljZS5jb25zdW1lPHsgaXNWaWV3b25seTogYm9vbGVhbiB9Pignb3BlcmF0aW9uX21vZGVfY2hhbmdlZCcpLnN1YnNjcmliZSh0b3BpYyA9PiB7XG4gICAgICBpZiAodHlwZW9mIHRoaXMuY29uZmlnLnZpZXdvbmx5ID09PSAnYm9vbGVhbicpIHJldHVybjtcblxuICAgICAgdGhpcy52aWV3b25seSA9IGdldFZpZXdvbmx5KHRoaXMuY29uZmlnLCB0b3BpYy5wYXlsb2FkLmlzVmlld29ubHkpO1xuICAgIH0pO1xuICB9XG59XG4iLCI8cWQtZm9ybS1sYWJlbFxuICBbbGFiZWxdPVwibGFiZWxcIlxuICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICBbdmlld29ubHldPVwidmlld29ubHlcIlxuICBbY29udHJvbF09XCJmb3JtQXJyYXlcIlxuICBbdG9vbHRpcF09XCJjb25maWc/LnRvb2x0aXBcIlxuICBbZGF0YS10ZXN0LWlkXT1cInRlc3RJZFwiXG4+PC9xZC1mb3JtLWxhYmVsPlxuXG48ZGl2XG4gICpuZ0lmPVwiIXJlYWRvbmx5ICYmICF2aWV3b25seVwiXG4gIGNsYXNzPVwicWQtbXVsdGktaW5wdXRfX2lucHV0LWNoaXAtYm94XCJcbiAgKGNsaWNrKT1cImZvY3VzKClcIlxuICAob3BlbmVkKT1cIm9wZW4gPSB0cnVlXCJcbiAgKGNsb3NlZCk9XCJvcGVuID0gZmFsc2VcIlxuICBbcWRQb3BvdmVyT25DbGlja109XCJtZW51XCJcbiAgW3FkUG9wb3ZlckNsb3NlU3RyYXRlZ3ldPVwiJ29uT3V0c2lkZUNsaWNrJ1wiXG4gIFtxZFBvcG92ZXJEaXNhYmxlZF09XCJvcHRpb25zLmxlbmd0aCA9PT0gMFwiXG4gIFtxZFBvcG92ZXJBdXRvU2l6ZV09XCJ7IHdpZHRoOiB0cnVlIH1cIlxuICBbcWRQb3BvdmVyQmFja2dyb3VuZENvbG9yXT1cIid0cmFuc3BhcmVudCdcIlxuICBbcG9zaXRpb25TdHJhdGVneV09XCJbXG4gICAge1xuICAgICAgb3JpZ2luWDogJ3N0YXJ0JyxcbiAgICAgIG9yaWdpblk6ICdib3R0b20nLFxuICAgICAgb3ZlcmxheVg6ICdzdGFydCcsXG4gICAgICBvdmVybGF5WTogJ3RvcCcsXG4gICAgICBvZmZzZXRYOiAtMlxuICAgIH0sXG4gICAge1xuICAgICAgb3JpZ2luWDogJ3N0YXJ0JyxcbiAgICAgIG9yaWdpblk6ICd0b3AnLFxuICAgICAgb3ZlcmxheVg6ICdzdGFydCcsXG4gICAgICBvdmVybGF5WTogJ2JvdHRvbScsXG4gICAgICB3ZWlnaHQ6IDAuOCxcbiAgICAgIG9mZnNldFg6IC0yXG4gICAgfVxuICBdXCJcbj5cbiAgPGRpdiBbbmdDbGFzc109XCJoYXNJdGVtcygpID8gJ3FkLW11bHRpLWlucHV0X19jaGlwLW1hcmdpbicgOiAnJ1wiPlxuICAgIDxxZC1tdWx0aS1pbnB1dC1jaGlwXG4gICAgICAqbmdGb3I9XCJsZXQgZWxlbWVudCBvZiBnZXRJdGVyYWJsZUVsZW1lbnRzKCk7IGxldCBpbmRleCA9IGluZGV4XCJcbiAgICAgIFtjbG9zZV09XCIhZGlzYWJsZWQgJiYgIXJlYWRvbmx5ICYmICF2aWV3b25seVwiXG4gICAgICBbaXRlbUNvbnRyb2xdPVwiZm9ybUFycmF5ID8gZWxlbWVudCA6IHVuZGVmaW5lZFwiXG4gICAgICBbdmFsdWVdPVwiZm9ybUFycmF5ID8gdW5kZWZpbmVkIDogZ2V0VHJhbnNsYXRpb24oZWxlbWVudClcIlxuICAgICAgKGNsb3NlQ2xpY2tFbWl0dGVyKT1cImNsb3NlKGluZGV4KVwiXG4gICAgICAoY2xpY2spPVwiaGFuZGxlQ2hpcENsaWNrKCRldmVudClcIlxuICAgID5cbiAgICA8L3FkLW11bHRpLWlucHV0LWNoaXA+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJxZC1tdWx0aS1pbnB1dF9fd3JhcHBlclwiPlxuICAgIDxpbnB1dFxuICAgICAgI2lucHV0XG4gICAgICB0eXBlPVwidGV4dFwiXG4gICAgICBjbGFzcz1cInFkLW11bHRpLWlucHV0X19ib3hcIlxuICAgICAgKm5nSWY9XCIhcmVhZG9ubHkgJiYgIXZpZXdvbmx5XCJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICBbKG5nTW9kZWwpXT1cImZpbHRlck9wdGlvbnNcIlxuICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiY2hhbmdlVmFsdWUoKVwiXG4gICAgICAoa2V5ZG93bik9XCJvbktleURvd24oJGV2ZW50KVwiXG4gICAgICAoZm9jdXMpPVwiaGFzRm9jdXMgPSB0cnVlXCJcbiAgICAgIChibHVyKT1cImhhbmRsZUJsdXIoKVwiXG4gICAgICBbbmdDbGFzc109XCJvcGVuID8gJ3FkLW11bHRpLWlucHV0X19ib3gtLW9wZW4nIDogJydcIlxuICAgICAgW2F0dHIuZGF0YS10ZXN0LWlkXT1cInRlc3RJZCArICctaW5wdXQnXCJcbiAgICAvPlxuXG4gICAgPGRpdiBjbGFzcz1cInFkLW11bHRpLWlucHV0X19ib3ggcWQtbXVsdGktaW5wdXRfX2JveC0tcmVhZG9ubHlcIiAqbmdJZj1cInJlYWRvbmx5ICYmICFoYXNJdGVtcygpXCI+Jm5ic3A7PC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwicWQtbXVsdGktaW5wdXRfX2JveCBxZC1tdWx0aS1pbnB1dF9fYm94LS12aWV3b25seVwiICpuZ0lmPVwidmlld29ubHkgJiYgIWhhc0l0ZW1zKClcIj4mbmJzcDs8L2Rpdj5cblxuICAgIDxuZy10ZW1wbGF0ZSAjbWVudT5cbiAgICAgIDxxZC1tdWx0aS1pbnB1dC1tZW51XG4gICAgICAgIFtvcHRpb25zTGlzdEZvclZpZXddPVwib3B0aW9uc0xpc3RGb3JWaWV3XCJcbiAgICAgICAgW2lkXT1cImlkXCJcbiAgICAgICAgW2RhdGEtdGVzdC1pZF09XCJ0ZXN0SWRcIlxuICAgICAgICAoaXRlbUNsaWNrKT1cImhhbmRsZUNsaWNrKCRldmVudClcIlxuICAgICAgPjwvcWQtbXVsdGktaW5wdXQtbWVudT5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48bmctY29udGFpbmVyICpuZ0lmPVwiY29uZmlnICYmICFyZWFkb25seSAmJiAhdmlld29ubHlcIj5cbiAgPHFkLWZvcm0taGludFxuICAgIFtoaW50XT1cImhhc0hpbnQgPyBjb25maWcuaGludC5pMThuIDogJydcIlxuICAgIFtjb250cm9sXT1cImZvcm1BcnJheVwiXG4gICAgW2hhc0Vycm9yXT1cImhhc0Vycm9yXCJcbiAgICBbaGludEFjdGlvbl09XCJoaW50QWN0aW9uXCJcbiAgICBbZGF0YS10ZXN0LWlkXT1cInRlc3RJZFwiXG4gID48L3FkLWZvcm0taGludD5cbjwvbmctY29udGFpbmVyPlxuXG48cWQtZm9ybS1yZWFkb25seVxuICAqbmdJZj1cInJlYWRvbmx5XCJcbiAgW3ZhbHVlc109XCJnZXRWYWx1ZXMoKVwiXG4gIFtyZWFkb25seUFjdGlvbl09XCJyZWFkb25seUFjdGlvblwiXG4gIFtkYXRhLXRlc3QtaWRdPVwidGVzdElkXCJcbj48L3FkLWZvcm0tcmVhZG9ubHk+XG5cbjxxZC1mb3JtLXZpZXdvbmx5XG4gICpuZ0lmPVwidmlld29ubHlcIlxuICBbdmFsdWVzXT1cImdldFZhbHVlcygpXCJcbiAgW3ZpZXdvbmx5QWN0aW9uXT1cInZpZXdvbmx5QWN0aW9uXCJcbiAgW2RhdGEtdGVzdC1pZF09XCJ0ZXN0SWRcIlxuPjwvcWQtZm9ybS12aWV3b25seT5cbiJdfQ==
@@ -14747,13 +14747,13 @@ class QdMultiInputComponent {
14747
14747
  return this.optionsListForView.findIndex(option => this.getTranslation(option) === optionName);
14748
14748
  }
14749
14749
  addItem(option) {
14750
+ this.filterOptions = '';
14750
14751
  if (this.formArray) {
14751
14752
  this.formArray.push(option.value);
14752
14753
  this.formArray.markAsTouched();
14753
14754
  return;
14754
14755
  }
14755
14756
  this.multiInputService.addSelectedItem(option);
14756
- this.filterOptions = '';
14757
14757
  this.changeValue();
14758
14758
  this.writeValue(this.multiInputService.getItemValues());
14759
14759
  }