@ieeesa-npm/presentation 0.25.5 → 0.25.6

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.
@@ -97,7 +97,8 @@ export class MultiSelectAutocompleteComponent {
97
97
  * @memberof MultiSelectAutocompleteComponent
98
98
  */
99
99
  ngAfterViewInit() {
100
- this.group?.get(this.config?.controlName)?.setErrors(null);
100
+ if (this.selectedOptions?.length)
101
+ this.group?.get(this.config?.controlName)?.setErrors(null);
101
102
  this.onValueChanges();
102
103
  this.changeDetectorRef.detectChanges();
103
104
  }
@@ -136,6 +137,7 @@ export class MultiSelectAutocompleteComponent {
136
137
  * @memberof MultiSelectAutocompleteComponent
137
138
  */
138
139
  handleFieldError() {
140
+ this.group?.controls[this.config?.controlName]?.setValue(this.selectedOptions);
139
141
  if (this.selectedOptions?.length) {
140
142
  this.group?.get(this.config?.controlName)?.setErrors({
141
143
  required: false,
@@ -316,4 +318,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
316
318
  type: ViewChild,
317
319
  args: ['autocompleteTrigger']
318
320
  }] } });
319
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktc2VsZWN0LWF1dG9jb21wbGV0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzZW50YXRpb24vc3JjL2xpYi9jb21wb25lbnRzL211bHRpLXNlbGVjdC1hdXRvY29tcGxldGUvbXVsdGktc2VsZWN0LWF1dG9jb21wbGV0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzZW50YXRpb24vc3JjL2xpYi9jb21wb25lbnRzL211bHRpLXNlbGVjdC1hdXRvY29tcGxldGUvbXVsdGktc2VsZWN0LWF1dG9jb21wbGV0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sRUFHTCxTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxFQUNULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNMLHFCQUFxQixFQUNyQixnQ0FBZ0MsR0FFakMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4QyxPQUFPLEVBQWEsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLE9BQU8sRUFB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O2dCQUN6QyxRQUFRLEVBQUU7b0JBQ1IsaUJBQWlCLEVBQUUsZ0RBQWdEO2lCQUNwRTthQUNGO1NBQ0Ysb1FDekVILHkxR0E2RkEsK3JlRHpDSSxZQUFZLDZWQUNaLG1CQUFtQixvMkJBQ25CLGtCQUFrQixpSEFDbEIsd0JBQXdCLHdJQUN4QixlQUFlLDBIQUNmLHFCQUFxQixvV0FDckIsY0FBYyx1dkJBQ2QsYUFBYSw4QkFDYixlQUFlLDJMQUNmLGlCQUFpQixnTEFDakIsY0FBYyw0NEJBQ2QsZ0JBQWdCLGdJQUNoQixzQkFBc0I7OzRGQWNiLGdDQUFnQztrQkE5QjVDLFNBQVM7K0JBQ0Usa0NBQWtDLGNBQ2hDLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3dCQUNsQix3QkFBd0I7d0JBQ3hCLGVBQWU7d0JBQ2YscUJBQXFCO3dCQUNyQixjQUFjO3dCQUNkLGFBQWE7d0JBQ2IsZUFBZTt3QkFDZixpQkFBaUI7d0JBQ2pCLGNBQWM7d0JBQ2QsZ0JBQWdCO3dCQUNoQixzQkFBc0I7cUJBQ3ZCLGFBQ1U7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGdDQUFnQzs0QkFDekMsUUFBUSxFQUFFO2dDQUNSLGlCQUFpQixFQUFFLGdEQUFnRDs2QkFDcEU7eUJBQ0Y7cUJBQ0YsaUJBR2MsaUJBQWlCLENBQUMsSUFBSTt5SUFlakMsOEJBQThCO3NCQURqQyxLQUFLO2dCQWFJLGtDQUFrQztzQkFBM0MsTUFBTTtnQkFDRyx1Q0FBdUM7c0JBQWhELE1BQU07Z0JBRUcsc0NBQXNDO3NCQUEvQyxNQUFNO2dCQUcrQix1QkFBdUI7c0JBQTVELFNBQVM7dUJBQUMseUJBQXlCO2dCQUNGLFlBQVk7c0JBQTdDLFNBQVM7dUJBQUMscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ09NTUEsIEVOVEVSIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2tleWNvZGVzJztcclxuaW1wb3J0IHtcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBFbGVtZW50UmVmLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBWaWV3Q2hpbGQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7XHJcbiAgTWF0QXV0b2NvbXBsZXRlTW9kdWxlLFxyXG4gIE1BVF9BVVRPQ09NUExFVEVfREVGQVVMVF9PUFRJT05TLFxyXG4gIE1hdEF1dG9jb21wbGV0ZVRyaWdnZXIsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xyXG5pbXBvcnQgeyBNYXRDaGVja2JveE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoZWNrYm94JztcclxuaW1wb3J0IHsgTWF0T3B0aW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XHJcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XHJcbmltcG9ydCB7IFN1YmplY3QsIGZyb21FdmVudCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAsIHRha2VVbnRpbCwgZmlsdGVyLCBkZWJvdW5jZVRpbWUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCAqIGFzIGF1dG9jb21wbGV0ZUNvbnN0SW5mbyBmcm9tICcuLi8uLi9hc3NldHMvY29uc3RhbnRzLmpzb24nO1xyXG5pbXBvcnQgeyBNYXRDaGlwSW5wdXRFdmVudCwgTWF0Q2hpcHNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGlwcyc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sVHlwZSB9IGZyb20gJy4uLy4uL21vZGVscy9mb3JtLWNvbnRyb2wtdHlwZXMubW9kZWwnO1xyXG5pbXBvcnQgeyBGb3JtVXRpbGl0eVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9mb3JtLXV0aWxpdHkuc2VydmljZSc7XHJcbmltcG9ydCB7IEF1dG9Db21wbGV0ZU9wdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscy9hdXRvY29tcGxldGUtb3B0aW9uLm1vZGVsJztcclxuaW1wb3J0IHsgU2VsZWN0T3B0aW9uIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3NlbGVjdC1vcHRpb24ubW9kZWwnO1xyXG5pbXBvcnQgeyBGaWVsZENvbmZpZyB9IGZyb20gJy4uLy4uL21vZGVscy9maWVsZC1jb25maWcubW9kZWwnO1xyXG5pbXBvcnQgeyBGb3JtRmllbGQgfSBmcm9tICcuLi8uLi9tb2RlbHMvZm9ybS1maWVsZC5tb2RlbCc7XHJcbmltcG9ydCB7IEZvcm1FcnJvckNvbXBvbmVudCB9IGZyb20gJy4uL2Zvcm0tZXJyb3IvZm9ybS1lcnJvci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGb3JtU3VwcG9ydFRleHRDb21wb25lbnQgfSBmcm9tICcuLi9mb3JtLXN1cHBvcnQtdGV4dC9mb3JtLXN1cHBvcnQtdGV4dC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XHJcbmltcG9ydCB7IFRleHRUcnVuY2F0ZWREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL3RleHQtdHJ1bmNhdGVkL3RleHQtdHJ1bmNhdGVkLmRpcmVjdGl2ZSc7XHJcbi8qKlxyXG4gKiBNdWx0aVNlbGVjdEF1dG9jb21wbGV0ZUNvbXBvbmVudCBhbGxvd3MgdG8gc2VhcmNoIHRoZSBvcHRpb24ocykgZnJvbSB0aGUgbGlzdCBhbmQgc2VsZWN0IHRoZSBvcHRpb24ocykgZnJvbSB0aGUgYXV0b2NvbXBsZXRlIHNlYXJjaCByZXN1bHRzLlxyXG4gKiBAY2xhc3MgTXVsdGlTZWxlY3RBdXRvY29tcGxldGVDb21wb25lbnRcclxuICogQGltcGxlbWVudHMge09uSW5pdH1cclxuICogQGltcGxlbWVudHMge0Zvcm1GaWVsZH1cclxuICogQGltcGxlbWVudHMge09uRGVzdHJveX1cclxuICogQGltcGxlbWVudHMge0FmdGVyVmlld0luaXR9XHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2llZWVzYS1tdWx0aS1zZWxlY3QtYXV0b2NvbXBsZXRlJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBGb3JtRXJyb3JDb21wb25lbnQsXHJcbiAgICBGb3JtU3VwcG9ydFRleHRDb21wb25lbnQsXHJcbiAgICBNYXRPcHRpb25Nb2R1bGUsXHJcbiAgICBNYXRBdXRvY29tcGxldGVNb2R1bGUsXHJcbiAgICBNYXRJbnB1dE1vZHVsZSxcclxuICAgIE1hdEljb25Nb2R1bGUsXHJcbiAgICBNYXRCdXR0b25Nb2R1bGUsXHJcbiAgICBNYXRDaGVja2JveE1vZHVsZSxcclxuICAgIE1hdENoaXBzTW9kdWxlLFxyXG4gICAgTWF0VG9vbHRpcE1vZHVsZSxcclxuICAgIFRleHRUcnVuY2F0ZWREaXJlY3RpdmUsXHJcbiAgXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTUFUX0FVVE9DT01QTEVURV9ERUZBVUxUX09QVElPTlMsXHJcbiAgICAgIHVzZVZhbHVlOiB7XHJcbiAgICAgICAgb3ZlcmxheVBhbmVsQ2xhc3M6ICdpZWVlc2EtbXVsdGktc2VsZWN0LWF1dG9jb21wbGV0ZS1vdmVybGF5LXBhbmVsJyxcclxuICAgICAgfSxcclxuICAgIH0sXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vbXVsdGktc2VsZWN0LWF1dG9jb21wbGV0ZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbXVsdGktc2VsZWN0LWF1dG9jb21wbGV0ZS5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNdWx0aVNlbGVjdEF1dG9jb21wbGV0ZUNvbXBvbmVudFxyXG4gIGltcGxlbWVudHMgT25Jbml0LCBGb3JtRmllbGQsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdFxyXG57XHJcbiAgc2VwYXJhdG9yS2V5c0NvZGVzOiBudW1iZXJbXSA9IFtFTlRFUiwgQ09NTUFdO1xyXG4gIGNvbmZpZyE6IEZpZWxkQ29uZmlnO1xyXG4gIGdyb3VwITogRm9ybUdyb3VwO1xyXG4gIHNlbGVjdGVkT3B0aW9uczogU2VsZWN0T3B0aW9uW10gPSBbXTtcclxuICBhdXRvQ29tcGxldGVPcHRpb25MaXN0ITogQXV0b0NvbXBsZXRlT3B0aW9uW107XHJcbiAgLyoqXHJcbiAgICogU2V0cyB0aGUgb3B0aW9ucyBmb3IgbXVsdGkgc2VsZWN0IGF1dG9jb21wbGV0ZS5cclxuICAgKiBAbWVtYmVyb2YgTXVsdGlTZWxlY3RBdXRvY29tcGxldGVDb21wb25lbnRcclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHNldCBtdWx0aVNlbGVjdEF1dG9Db21wbGV0ZU9wdGlvbnModmFsdWU6IEF1dG9Db21wbGV0ZU9wdGlvbltdKSB7XHJcbiAgICB0aGlzLmF1dG9Db21wbGV0ZU9wdGlvbkxpc3QgPSB2YWx1ZTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB0aGUgYXV0b2NvbXBsZXRlIG9wdGlvbnMgbGlzdC5cclxuICAgKiBAcmVhZG9ubHlcclxuICAgKiBAdHlwZSB7QXV0b0NvbXBsZXRlT3B0aW9uW119XHJcbiAgICogQG1lbWJlcm9mIE11bHRpU2VsZWN0QXV0b2NvbXBsZXRlQ29tcG9uZW50XHJcbiAgICovXHJcbiAgZ2V0IG11bHRpU2VsZWN0QXV0b0NvbXBsZXRlT3B0aW9ucygpOiBBdXRvQ29tcGxldGVPcHRpb25bXSB7XHJcbiAgICByZXR1cm4gdGhpcy5hdXRvQ29tcGxldGVPcHRpb25MaXN0O1xyXG4gIH1cclxuICBAT3V0cHV0KCkgbXVsdGlTZWxlY3RBdXRvQ29tcGxldGVTZWFyY2hWYWx1ZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIEBPdXRwdXQoKSBtdWx0aVNlbGVjdEF1dG9Db21wbGV0ZUNsZWFyU2VhcmNoVmFsdWUgPVxyXG4gICAgbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgQE91dHB1dCgpIG11bHRpU2VsZWN0QXV0b0NvbXBsZXRlT3B0aW9uc1NlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxcclxuICAgIEF1dG9Db21wbGV0ZU9wdGlvbltdXHJcbiAgPigpO1xyXG4gIEBWaWV3Q2hpbGQoJ211bHRpU2VsZWN0QXV0b0NvbXBsZXRlJykgbXVsdGlTZWxlY3RBdXRvQ29tcGxldGUhOiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ2F1dG9jb21wbGV0ZVRyaWdnZXInKSBtYXRBQ1RyaWdnZXIhOiBNYXRBdXRvY29tcGxldGVUcmlnZ2VyO1xyXG4gIGRlc3Ryb3kkOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIGF1dG9jb21wbGV0ZUNvbnN0SW5mbzogYW55ID0gYXV0b2NvbXBsZXRlQ29uc3RJbmZvO1xyXG4gIHJlbW92ZUljb25VUkwgPVxyXG4gICAgdGhpcy5hdXRvY29tcGxldGVDb25zdEluZm8/Lm11bHRpU2VsZWN0QXV0b0NvbXBsZXRlPy5pY29ucz8ucmVtb3ZlO1xyXG4gIGNsZWFyQWxsSWNvblVSTCA9XHJcbiAgICB0aGlzLmF1dG9jb21wbGV0ZUNvbnN0SW5mbz8ubXVsdGlTZWxlY3RBdXRvQ29tcGxldGU/Lmljb25zPy5jbGVhckFsbDtcclxuICBjbGVhckFsbCA9XHJcbiAgICB0aGlzLmF1dG9jb21wbGV0ZUNvbnN0SW5mbz8ubXVsdGlTZWxlY3RBdXRvQ29tcGxldGU/LmxhYmVsLmNsZWFyQWxsO1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFycywgbm8tZW1wdHktZnVuY3Rpb25cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgcHJpdmF0ZSBmb3JtVXRpbGl0eVNlcnZpY2U6IEZvcm1VdGlsaXR5U2VydmljZSxcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWVtcHR5LWZ1bmN0aW9uXHJcbiAgKSB7fVxyXG5cclxuICAvKipcclxuICAgKiBJbXBsZW1lbnRhdGlvbiBvZiBuZ09uSW5pdCBsaWZlY3ljbGUgaG9vayBtZXRob2QgdG8gaW5pdGlhbGl6ZSBjb21wb25lbnRzIGluc3RhbmNlIHByb3BlcnRpZXMuXHJcbiAgICogQG1lbWJlcm9mIE11bHRpU2VsZWN0QXV0b2NvbXBsZXRlQ29tcG9uZW50XHJcbiAgICovXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNvbmZpZyA9XHJcbiAgICAgIHRoaXMuY29uZmlnID8/XHJcbiAgICAgIHRoaXMuZm9ybVV0aWxpdHlTZXJ2aWNlLmdldEZvcm1GaWVsZENvbmZpZyhcclxuICAgICAgICAnbXVsdGlTZWxlY3RBdXRvY29tcGxldGUnLFxyXG4gICAgICAgIEZvcm1Db250cm9sVHlwZS5BVVRPX0NPTVBMRVRFXHJcbiAgICAgICk7XHJcbiAgICB0aGlzLmdyb3VwID1cclxuICAgICAgdGhpcy5ncm91cCA/P1xyXG4gICAgICB0aGlzLmZvcm1VdGlsaXR5U2VydmljZS5nZXRGb3JtR3JvdXAoJ211bHRpU2VsZWN0QXV0b2NvbXBsZXRlJyk7XHJcbiAgICB0aGlzLm11bHRpU2VsZWN0QXV0b0NvbXBsZXRlT3B0aW9ucyA9XHJcbiAgICAgIHRoaXMuY29uZmlnPy5tdWx0aVNlbGVjdEF1dG9Db21wbGV0ZU9wdGlvbnMgPz9cclxuICAgICAgdGhpcy5tdWx0aVNlbGVjdEF1dG9Db21wbGV0ZU9wdGlvbnM7XHJcbiAgICBpZiAodGhpcy5jb25maWc/LnZhbHVlKSB0aGlzLnNlbGVjdGVkT3B0aW9ucyA9IHRoaXMuY29uZmlnPy52YWx1ZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEluaXRpYWxpemUgdGhlIGZvcm0gY29udHJvbCBjaGFuZ2UgZXZlbnQgb25jZSB0aGUgZm9ybSBjb250cm9sIGlzIHJlYWR5IG9uIG5nQWZ0ZXJWaWV3SW5pdCBieSBjYWxsaW5nIG9uVmFsdWVDaGFuZ2VzIG1ldGhvZC5cclxuICAgKiBAbWVtYmVyb2YgTXVsdGlTZWxlY3RBdXRvY29tcGxldGVDb21wb25lbnRcclxuICAgKi9cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmdyb3VwPy5nZXQodGhpcy5jb25maWc/LmNvbnRyb2xOYW1lKT8uc2V0RXJyb3JzKG51bGwpO1xyXG4gICAgdGhpcy5vblZhbHVlQ2hhbmdlcygpO1xyXG4gICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBFbWl0cyBhbiBtdWx0aVNlbGVjdEF1dG9Db21wbGV0ZVNlYXJjaFZhbHVlIGNoYW5nZSBldmVudCB3aGVuIHRoZSB2YWx1ZSBpcyBjaGFuZ2VkIGFuZCB2YWx1ZSBpcyBncmVhdGVyIHRoYW4gbWluQ2hhclRvU2VhcmNoIG9yIGVxdWFsIHRvIHplcm8uXHJcbiAgICogQG1lbWJlcm9mIE11bHRpU2VsZWN0QXV0b2NvbXBsZXRlQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25WYWx1ZUNoYW5nZXMoKTogdm9pZCB7XHJcbiAgICBmcm9tRXZlbnQodGhpcy5tdWx0aVNlbGVjdEF1dG9Db21wbGV0ZT8ubmF0aXZlRWxlbWVudCwgJ2tleXVwJylcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLFxyXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgICAgbWFwKChldmVudDogYW55KSA9PiBldmVudD8udGFyZ2V0Py52YWx1ZSksXHJcbiAgICAgICAgZmlsdGVyKFxyXG4gICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgICAgICAgIChyZXM6IGFueSkgPT5cclxuICAgICAgICAgICAgcmVzPy5sZW5ndGggPFxyXG4gICAgICAgICAgICAgIHRoaXMuYXV0b2NvbXBsZXRlQ29uc3RJbmZvPy5hdXRvY29tcGxldGU/Lm1pbkNoYXJUb1NlYXJjaCAmJlxyXG4gICAgICAgICAgICByZXM/Lmxlbmd0aCAhPT0gMFxyXG4gICAgICAgICksXHJcbiAgICAgICAgZGVib3VuY2VUaW1lKHRoaXMuYXV0b2NvbXBsZXRlQ29uc3RJbmZvPy5hdXRvY29tcGxldGU/LmRlYm91bmNlVGltZSlcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKCh0ZXh0OiBzdHJpbmcpID0+IHtcclxuICAgICAgICBpZiAodGV4dCA9PT0gJycpIHRoaXMuaGFuZGxlRmllbGRFcnJvcigpO1xyXG4gICAgICAgIHRoaXMubXVsdGlTZWxlY3RBdXRvQ29tcGxldGVDbGVhclNlYXJjaFZhbHVlLmVtaXQodGV4dCk7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgIHRoaXMuZ3JvdXA/LmNvbnRyb2xzW3RoaXMuY29uZmlnPy5jb250cm9sTmFtZV0/LnZhbHVlQ2hhbmdlc1xyXG4gICAgICAucGlwZShcclxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCksXHJcbiAgICAgICAgZmlsdGVyKFxyXG4gICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgICAgICAgIChyZXM6IGFueSkgPT5cclxuICAgICAgICAgICAgcmVzPy5sZW5ndGggPj1cclxuICAgICAgICAgICAgICB0aGlzLmF1dG9jb21wbGV0ZUNvbnN0SW5mbz8uYXV0b2NvbXBsZXRlPy5taW5DaGFyVG9TZWFyY2ggfHxcclxuICAgICAgICAgICAgcmVzPy5sZW5ndGggPT09IDBcclxuICAgICAgICApLFxyXG4gICAgICAgIGRlYm91bmNlVGltZSh0aGlzLmF1dG9jb21wbGV0ZUNvbnN0SW5mbz8uYXV0b2NvbXBsZXRlPy5kZWJvdW5jZVRpbWUpXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZSgodGV4dDogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgdGhpcy5tdWx0aVNlbGVjdEF1dG9Db21wbGV0ZVNlYXJjaFZhbHVlLmVtaXQodGV4dCk7XHJcbiAgICAgICAgaWYgKHRleHQgPT09ICcnKSB0aGlzLmhhbmRsZUZpZWxkRXJyb3IoKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBIYW5kbGVzIGZpZWxkIGVycm9yIGJ5IHNldHRpbmcgdGhlIGFwcHJvcHJpYXRlIGZvcm0gY29udHJvbCBlcnJvcnMuXHJcbiAgICogQG1lbWJlcm9mIE11bHRpU2VsZWN0QXV0b2NvbXBsZXRlQ29tcG9uZW50XHJcbiAgICovXHJcbiAgaGFuZGxlRmllbGRFcnJvcigpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnNlbGVjdGVkT3B0aW9ucz8ubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMuZ3JvdXA/LmdldCh0aGlzLmNvbmZpZz8uY29udHJvbE5hbWUpPy5zZXRFcnJvcnMoe1xyXG4gICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBZGRzIGEgbmV3bHkgZW50ZXJlZCBvcHRpb24gdG8gdGhlIHNlbGVjdGVkT3B0aW9ucyBhcnJheS5cclxuICAgKiBAcGFyYW0geyp9IGV2ZW50IC1UaGUgZXZlbnQgY29udGFpbmluZyB0aGUgaW5wdXQgYW5kIHZhbHVlLlxyXG4gICAqIEBtZW1iZXJvZiBNdWx0aVNlbGVjdEF1dG9jb21wbGV0ZUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIGFkZChldmVudDogTWF0Q2hpcElucHV0RXZlbnQpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmF1dG9Db21wbGV0ZU9wdGlvbkxpc3QubGVuZ3RoKSByZXR1cm47XHJcbiAgICBjb25zdCBjb250cm9sID0gdGhpcy5ncm91cD8uZ2V0KHRoaXMuY29uZmlnPy5jb250cm9sTmFtZSk7XHJcbiAgICBjb25zdCBpbnB1dCA9IGV2ZW50Py5jaGlwSW5wdXQ/LmlucHV0RWxlbWVudDtcclxuICAgIGNvbnN0IHZhbHVlID0gKGV2ZW50Py52YWx1ZSB8fCAnJykudHJpbSgpO1xyXG4gICAgaWYgKHZhbHVlLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xyXG4gICAgY29uc3QgbWluTGVuZ3RoID0gY29udHJvbD8uZXJyb3JzPy5bJ21pbmxlbmd0aCddPy5yZXF1aXJlZExlbmd0aDtcclxuICAgIGNvbnN0IG1heExlbmd0aCA9IGNvbnRyb2w/LmVycm9ycz8uWydtYXhsZW5ndGgnXT8ucmVxdWlyZWRMZW5ndGg7XHJcbiAgICBpZiAoXHJcbiAgICAgICh2YWx1ZS5sZW5ndGggPj0gbWluTGVuZ3RoICYmIHZhbHVlLmxlbmd0aCA8PSBtYXhMZW5ndGgpIHx8XHJcbiAgICAgIChtaW5MZW5ndGggPT09IHVuZGVmaW5lZCAmJiBtYXhMZW5ndGggPT09IHVuZGVmaW5lZClcclxuICAgICkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkT3B0aW9ucy5wdXNoKHsgaWQ6ICcnLCBuYW1lOiB2YWx1ZSB9KTtcclxuICAgICAgaWYgKGlucHV0KSBpbnB1dC52YWx1ZSA9ICcnO1xyXG4gICAgICB0aGlzLmZvcm1hdFNlbGVjdGVkT3B0aW9uKHRoaXMuc2VsZWN0ZWRPcHRpb25zKTtcclxuICAgIH1cclxuICB9XHJcbiAgLyoqXHJcbiAgICogUmVtb3ZlcyBhIHNlbGVjdGVkIG9wdGlvbiBmcm9tIHRoZSBzZWxlY3RlZE9wdGlvbnMgYXJyYXkuXHJcbiAgICogQHBhcmFtIHtTZWxlY3RPcHRpb259IHJlbW92ZWRPcHRpb24gLVRoZSBvcHRpb24gdG8gcmVtb3ZlLlxyXG4gICAqIEBtZW1iZXJvZiBNdWx0aVNlbGVjdEF1dG9jb21wbGV0ZUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uT3B0aW9uUmVtb3ZlZChyZW1vdmVkT3B0aW9uOiBTZWxlY3RPcHRpb24pOiB2b2lkIHtcclxuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5zZWxlY3RlZE9wdGlvbnM/LmZpbmRJbmRleChcclxuICAgICAgKG9wdGlvbjogU2VsZWN0T3B0aW9uKSA9PiBvcHRpb24uaWQgPT09IHJlbW92ZWRPcHRpb24uaWRcclxuICAgICk7XHJcbiAgICBpZiAoaW5kZXggPj0gMCkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkT3B0aW9ucz8uc3BsaWNlKGluZGV4LCAxKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnNlbGVjdGVkT3B0aW9ucz8ubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHRoaXMuZ3JvdXAudmFsdWVbdGhpcy5jb25maWc/LmNvbnRyb2xOYW1lXSA9ICcnO1xyXG4gICAgICB0aGlzLmdyb3VwPy5jb250cm9sc1t0aGlzLmNvbmZpZz8uY29udHJvbE5hbWVdLnNldFZhbHVlKCcnKTtcclxuICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvbnMgPSBbXTtcclxuICAgICAgdGhpcy5hdXRvQ29tcGxldGVPcHRpb25MaXN0ID0gW107XHJcbiAgICAgIHRoaXMuaGFuZGxlRmllbGRFcnJvcigpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5mb3JtYXRTZWxlY3RlZE9wdGlvbih0aGlzLnNlbGVjdGVkT3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBIYW5kbGVzIHRoZSBzZWxlY3Rpb24gb2YgYW4gYXV0b2NvbXBsZXRlIG9wdGlvbi5cclxuICAgKiBAcGFyYW0ge0F1dG9Db21wbGV0ZU9wdGlvbn0gb3B0aW9uICAtVGhlIHNlbGVjdGVkIGF1dG9jb21wbGV0ZSBvcHRpb24uXHJcbiAgICogQHJldHVybiB7QXV0b0NvbXBsZXRlT3B0aW9ufVxyXG4gICAqIEBtZW1iZXJvZiBNdWx0aVNlbGVjdEF1dG9jb21wbGV0ZUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgb25DaGFuZ2Uob3B0aW9uOiBhbnkpOiBBdXRvQ29tcGxldGVPcHRpb24ge1xyXG4gICAgY29uc3QgdmFsdWUgPSBvcHRpb24/LnZhbHVlO1xyXG4gICAgaWYgKHRoaXMuaXNDaGVja2JveFNlbGVjdGVkKHZhbHVlKSkge1xyXG4gICAgICB0aGlzLm9uT3B0aW9uUmVtb3ZlZCh2YWx1ZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkT3B0aW9ucy5wdXNoKHZhbHVlKTtcclxuICAgIH1cclxuICAgIHRoaXMuZm9ybWF0U2VsZWN0ZWRPcHRpb24odGhpcy5zZWxlY3RlZE9wdGlvbnMpO1xyXG4gICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcclxuICAgICAgdGhpcy5tdWx0aVNlbGVjdEF1dG9Db21wbGV0ZT8ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gdmFsdWU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGb3JtYXRzIHRoZSBzZWxlY3RlZCBvcHRpb25zIGFuZCBlbWl0cyB0aGUgbXVsdGlTZWxlY3RBdXRvQ29tcGxldGVPcHRpb25TZWxlY3RlZCBldmVudC5cclxuICAgKiBAcGFyYW0ge1NlbGVjdE9wdGlvbltdfSBzZWxlY3RlZE9wdGlvbnMgLUFycmF5IG9mIHNlbGVjdGVkIG9wdGlvbnMuXHJcbiAgICogQG1lbWJlcm9mIE11bHRpU2VsZWN0QXV0b2NvbXBsZXRlQ29tcG9uZW50XHJcbiAgICovXHJcbiAgZm9ybWF0U2VsZWN0ZWRPcHRpb24oc2VsZWN0ZWRPcHRpb25zOiBTZWxlY3RPcHRpb25bXSkge1xyXG4gICAgY29uc3QgZm9ybWF0dGVkT3B0aW9ucyA9IHNlbGVjdGVkT3B0aW9ucz8ubWFwKChvcHRpb24pID0+IHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBpZDogb3B0aW9uLmlkLFxyXG4gICAgICAgIG5hbWU6IG9wdGlvbi5uYW1lLFxyXG4gICAgICB9O1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLm11bHRpU2VsZWN0QXV0b0NvbXBsZXRlT3B0aW9uc1NlbGVjdGVkPy5lbWl0KGZvcm1hdHRlZE9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGlzcGxheXMgdGhlIG5hbWUgb2YgdGhlIG9wdGlvblxyXG4gICAqIEBwYXJhbSB7QXV0b0NvbXBsZXRlT3B0aW9ufSBvcHRpb25cclxuICAgKiBAcmV0dXJuIHsqfSAge3N0cmluZ31cclxuICAgKiBAbWVtYmVyb2YgTXVsdGlTZWxlY3RBdXRvY29tcGxldGVDb21wb25lbnRcclxuICAgKi9cclxuICBkaXNwbGF5T3B0aW9uTmFtZShvcHRpb246IEF1dG9Db21wbGV0ZU9wdGlvbik6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gb3B0aW9uPy5uYW1lID8gb3B0aW9uLm5hbWUgOiAnJztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRyYWNrcyB0aGUgb3B0aW9uIGJ5IGl0cyBpbmRleCBvciBpZC5cclxuICAgKiBAcGFyYW0ge251bWJlcn0gaW5kZXhcclxuICAgKiBAcGFyYW0ge1NlbGVjdE9wdGlvbn0gb3B0aW9uXHJcbiAgICogQHJldHVybiB7Kn0gIHsobnVtYmVyIHwgc3RyaW5nKX1cclxuICAgKiBAbWVtYmVyb2YgTXVsdGlTZWxlY3RBdXRvY29tcGxldGVDb21wb25lbnRcclxuICAgKi9cclxuICB0cmFja0J5Rm4oaW5kZXg6IG51bWJlciwgb3B0aW9uOiBTZWxlY3RPcHRpb24pOiBudW1iZXIgfCBzdHJpbmcge1xyXG4gICAgcmV0dXJuIG9wdGlvbi5pZDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENoZWNrcyBpZiB0aGUgY2hlY2tib3ggaXMgc2VsZWN0ZWQuXHJcbiAgICogQHBhcmFtIHtBdXRvQ29tcGxldGVPcHRpb259IG9wdGlvblxyXG4gICAqIEByZXR1cm4geyp9ICB7Ym9vbGVhbn1cclxuICAgKiBAbWVtYmVyb2YgTXVsdGlTZWxlY3RBdXRvY29tcGxldGVDb21wb25lbnRcclxuICAgKi9cclxuICBpc0NoZWNrYm94U2VsZWN0ZWQob3B0aW9uOiBBdXRvQ29tcGxldGVPcHRpb24pOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkT3B0aW9ucz8uc29tZSgoaXRlbSkgPT4gaXRlbS5pZCA9PT0gb3B0aW9uLmlkKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENsZWFycyBhbGwgc2VsZWN0ZWQgb3B0aW9ucy5cclxuICAgKiBAbWVtYmVyb2YgTXVsdGlTZWxlY3RBdXRvY29tcGxldGVDb21wb25lbnRcclxuICAgKi9cclxuICBjbGVhclNlbGVjdGlvbnMoKTogdm9pZCB7XHJcbiAgICB0aGlzLmdyb3VwLnZhbHVlW3RoaXMuY29uZmlnPy5jb250cm9sTmFtZV0gPSAnJztcclxuICAgIHRoaXMuZ3JvdXA/LmNvbnRyb2xzW3RoaXMuY29uZmlnPy5jb250cm9sTmFtZV0uc2V0VmFsdWUoJycpO1xyXG4gICAgdGhpcy5zZWxlY3RlZE9wdGlvbnMgPSBbXTtcclxuICAgIHRoaXMuYXV0b0NvbXBsZXRlT3B0aW9uTGlzdCA9IFtdO1xyXG4gICAgdGhpcy5mb3JtYXRTZWxlY3RlZE9wdGlvbih0aGlzLnNlbGVjdGVkT3B0aW9ucyk7XHJcbiAgICB0aGlzLmhhbmRsZUZpZWxkRXJyb3IoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEltcGxlbWVudGF0aW9uIG9mIG5nT25EZXN0cm95IGxpZmVjeWNsZSBob29rIG1ldGhvZCB0byB1bnN1YnNjcmliZSB0aGUgb3BlbiBvYnNlcnZhYmxlIHN1YnNjcmlwdGlvbnMuXHJcbiAgICogQG1lbWJlcm9mIE11bHRpU2VsZWN0QXV0b2NvbXBsZXRlQ29tcG9uZW50XHJcbiAgICovXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXZcclxuICBjbGFzcz1cImllZWVzYS1tdWx0aS1zZWxlY3QtYXV0b2NvbXBsZXRlXCJcclxuICBbZm9ybUdyb3VwXT1cImdyb3VwXCJcclxuICAqbmdJZj1cImdyb3VwXCJcclxuICBbbmdDbGFzc109XCJcclxuICAgIGNvbmZpZy5pc0xhYmVsQWxpZ25lZExlZnRcclxuICAgICAgPyAnaWVlZXNhLW11bHRpLXNlbGVjdC1hdXRvY29tcGxldGUtZmllbGRfX2xhYmVsLWxlZnQnXHJcbiAgICAgIDogJ2llZWVzYS1tdWx0aS1zZWxlY3QtYXV0b2NvbXBsZXRlLWZpZWxkX19sYWJlbC10b3AnXHJcbiAgXCJcclxuPlxyXG4gIDxtYXQtbGFiZWwgY2xhc3M9XCJpZWVlc2EtYm9keS1zbS0xNCBpZWVlc2EtbXVsdGktc2VsZWN0LWF1dG9jb21wbGV0ZV9fbGFiZWxcIlxyXG4gICAgPnt7IGNvbmZpZy5sYWJlbCB9fTwvbWF0LWxhYmVsXHJcbiAgPlxyXG4gIDxtYXQtZm9ybS1maWVsZFxyXG4gICAgY2xhc3M9XCJpZWVlc2EtbXVsdGktc2VsZWN0LWF1dG9jb21wbGV0ZV9fbWF0LWZvcm0tZmllbGRcIlxyXG4gICAgYXBwZWFyYW5jZT1cIm91dGxpbmVcIlxyXG4gID5cclxuICAgIDxtYXQtY2hpcC1ncmlkXHJcbiAgICAgICNjaGlwR3JpZFxyXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImF1dG9jb21wbGV0ZUNvbnN0SW5mbz8ubXVsdGlTZWxlY3RBdXRvQ29tcGxldGU/LmFyaWFMYWJlbD8uc2VsZWN0ZWRPcHRpb25zXCJcclxuICAgID5cclxuICAgICAgPG1hdC1jaGlwLXJvd1xyXG4gICAgICAgICpuZ0Zvcj1cImxldCBvcHRpb24gb2Ygc2VsZWN0ZWRPcHRpb25zOyB0cmFja0J5OiB0cmFja0J5Rm5cIlxyXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwib3B0aW9uPy5uYW1lXCJcclxuICAgICAgICBbcmVtb3ZhYmxlXT1cInRydWVcIlxyXG4gICAgICAgIChyZW1vdmVkKT1cIm9uT3B0aW9uUmVtb3ZlZChvcHRpb24pXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxwXHJcbiAgICAgICAgICBpZWVlc2FUZXh0VHJ1bmNhdGVkXHJcbiAgICAgICAgICBbbWF0VG9vbHRpcF09XCJvcHRpb24ubmFtZVwiXHJcbiAgICAgICAgICBjbGFzcz1cImllZWVzYS1sYWJlbC1sZy1ib2xkLTE2IG0tMFwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAge3sgb3B0aW9uLm5hbWUgfX1cclxuICAgICAgICA8L3A+XHJcbiAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgbWF0Q2hpcFJlbW92ZVxyXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhdXRvY29tcGxldGVDb25zdEluZm8/Lm11bHRpU2VsZWN0QXV0b0NvbXBsZXRlPy5hcmlhTGFiZWw/LnJlbW92ZU9wdGlvbiArIG9wdGlvbi5uYW1lXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8c3ZnIGNsYXNzPVwiaWVlZXNhLWNoaXBfX3N2Zy1hdmF0YXJcIiBtYXRDaGlwQXZhdGFyPlxyXG4gICAgICAgICAgICA8dXNlIFthdHRyLnhsaW5rOmhyZWZdPVwicmVtb3ZlSWNvblVSTFwiPjwvdXNlPlxyXG4gICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgIDwvbWF0LWNoaXAtcm93PlxyXG4gICAgPC9tYXQtY2hpcC1ncmlkPlxyXG4gICAgPGlucHV0XHJcbiAgICAgIG1hdElucHV0XHJcbiAgICAgIGNsYXNzPVwiaWVlZXNhLW11bHRpLXNlbGVjdC1hdXRvY29tcGxldGVfX2lucHV0IGllZWVzYS10aXRsZS1zbS0xNlwiXHJcbiAgICAgIFttYXRBdXRvY29tcGxldGVdPVwibWF0QXV0b2NvbXBsZXRlXCJcclxuICAgICAgW3BsYWNlaG9sZGVyXT1cImNvbmZpZy5wbGFjZWhvbGRlciA/PyAnJ1wiXHJcbiAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiY29uZmlnLmNvbnRyb2xOYW1lXCJcclxuICAgICAgW25hbWVdPVwiY29uZmlnLmNvbnRyb2xOYW1lXCJcclxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJjb25maWcuYXJpYUxhYmVsXCJcclxuICAgICAgW2FyaWEtZGVzY3JpYmVkYnldPVwiY29uZmlnLmFyaWFEZXNjcmliZWRCeUlkID8/ICcnXCJcclxuICAgICAgI211bHRpU2VsZWN0QXV0b0NvbXBsZXRlXHJcbiAgICAgIFttYXRDaGlwSW5wdXRTZXBhcmF0b3JLZXlDb2Rlc109XCJzZXBhcmF0b3JLZXlzQ29kZXNcIlxyXG4gICAgICAobWF0Q2hpcElucHV0VG9rZW5FbmQpPVwiYWRkKCRldmVudClcIlxyXG4gICAgICBbbWF0Q2hpcElucHV0Rm9yXT1cImNoaXBHcmlkXCJcclxuICAgIC8+XHJcbiAgICA8bWF0LWF1dG9jb21wbGV0ZVxyXG4gICAgICAjbWF0QXV0b2NvbXBsZXRlPVwibWF0QXV0b2NvbXBsZXRlXCJcclxuICAgICAgKG9wdGlvblNlbGVjdGVkKT1cIm9uQ2hhbmdlKCRldmVudC5vcHRpb24pXCJcclxuICAgICAgW2Rpc3BsYXlXaXRoXT1cImRpc3BsYXlPcHRpb25OYW1lXCJcclxuICAgICAgY2xhc3M9XCJpZWVlc2EtbXVsdGktc2VsZWN0LWF1dG9jb21wbGV0ZV9fYXV0b2NvbXBsZXRlLWxpc3RcIlxyXG4gICAgPlxyXG4gICAgICA8bWF0LW9wdGlvblxyXG4gICAgICAgICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgYXV0b0NvbXBsZXRlT3B0aW9uTGlzdDsgdHJhY2tCeTogdHJhY2tCeUZuXCJcclxuICAgICAgICBbdmFsdWVdPVwib3B0aW9uXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxtYXQtY2hlY2tib3ggY29sb3I9XCJwcmltYXJ5XCIgW2NoZWNrZWRdPVwiaXNDaGVja2JveFNlbGVjdGVkKG9wdGlvbilcIj5cclxuICAgICAgICA8L21hdC1jaGVja2JveD5cclxuICAgICAgICB7eyBvcHRpb24ubmFtZSB9fVxyXG4gICAgICA8L21hdC1vcHRpb24+XHJcbiAgICA8L21hdC1hdXRvY29tcGxldGU+XHJcbiAgICA8YnV0dG9uXHJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICBtYXRTdWZmaXhcclxuICAgICAgbWF0LWljb24tYnV0dG9uXHJcbiAgICAgIFttYXRUb29sdGlwXT1cImNsZWFyQWxsXCJcclxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhdXRvY29tcGxldGVDb25zdEluZm8uYXJpYUxhYmVsLmNsZWFyXCJcclxuICAgICAgKm5nSWY9XCJzZWxlY3RlZE9wdGlvbnMubGVuZ3RoID4gMFwiXHJcbiAgICAgIChjbGljayk9XCJjbGVhclNlbGVjdGlvbnMoKVwiXHJcbiAgICA+XHJcbiAgICAgIDxzdmcgY2xhc3M9XCJpZWVlc2EtbXVsdGktc2VsZWN0LWF1dG9jb21wbGV0ZV9fc3ZnLWNsZWFyLWFsbFwiPlxyXG4gICAgICAgIDx1c2UgW2F0dHIueGxpbms6aHJlZl09XCJjbGVhckFsbEljb25VUkxcIj48L3VzZT5cclxuICAgICAgPC9zdmc+XHJcbiAgICA8L2J1dHRvbj5cclxuICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gIDxpZWVlc2EtZm9ybS1lcnJvciBbZm9ybUdyb3VwXT1cImdyb3VwXCIgW2NvbmZpZ109XCJjb25maWdcIj4gPC9pZWVlc2EtZm9ybS1lcnJvcj5cclxuICA8aWVlZXNhLWZvcm0tc3VwcG9ydC10ZXh0XHJcbiAgICBbZm9ybUdyb3VwXT1cImdyb3VwXCJcclxuICAgIFtjb25maWddPVwiY29uZmlnXCJcclxuICA+PC9pZWVlc2EtZm9ybS1zdXBwb3J0LXRleHQ+XHJcbjwvZGl2PlxyXG4iXX0=
321
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktc2VsZWN0LWF1dG9jb21wbGV0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzZW50YXRpb24vc3JjL2xpYi9jb21wb25lbnRzL211bHRpLXNlbGVjdC1hdXRvY29tcGxldGUvbXVsdGktc2VsZWN0LWF1dG9jb21wbGV0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzZW50YXRpb24vc3JjL2xpYi9jb21wb25lbnRzL211bHRpLXNlbGVjdC1hdXRvY29tcGxldGUvbXVsdGktc2VsZWN0LWF1dG9jb21wbGV0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sRUFHTCxTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxFQUNULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNMLHFCQUFxQixFQUNyQixnQ0FBZ0MsR0FFakMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4QyxPQUFPLEVBQWEsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLE9BQU8sRUFB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QkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDT01NQSwgRU5URVIgfSBmcm9tICdAYW5ndWxhci9jZGsva2V5Y29kZXMnO1xyXG5pbXBvcnQge1xyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uRGVzdHJveSxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFZpZXdDaGlsZCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHtcclxuICBNYXRBdXRvY29tcGxldGVNb2R1bGUsXHJcbiAgTUFUX0FVVE9DT01QTEVURV9ERUZBVUxUX09QVElPTlMsXHJcbiAgTWF0QXV0b2NvbXBsZXRlVHJpZ2dlcixcclxufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGUnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XHJcbmltcG9ydCB7IE1hdENoZWNrYm94TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xyXG5pbXBvcnQgeyBNYXRPcHRpb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcclxuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcclxuaW1wb3J0IHsgU3ViamVjdCwgZnJvbUV2ZW50IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IG1hcCwgdGFrZVVudGlsLCBmaWx0ZXIsIGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0ICogYXMgYXV0b2NvbXBsZXRlQ29uc3RJbmZvIGZyb20gJy4uLy4uL2Fzc2V0cy9jb25zdGFudHMuanNvbic7XHJcbmltcG9ydCB7IE1hdENoaXBJbnB1dEV2ZW50LCBNYXRDaGlwc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoaXBzJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2xUeXBlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2Zvcm0tY29udHJvbC10eXBlcy5tb2RlbCc7XHJcbmltcG9ydCB7IEZvcm1VdGlsaXR5U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2Zvcm0tdXRpbGl0eS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXV0b0NvbXBsZXRlT3B0aW9uIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2F1dG9jb21wbGV0ZS1vcHRpb24ubW9kZWwnO1xyXG5pbXBvcnQgeyBTZWxlY3RPcHRpb24gfSBmcm9tICcuLi8uLi9tb2RlbHMvc2VsZWN0LW9wdGlvbi5tb2RlbCc7XHJcbmltcG9ydCB7IEZpZWxkQ29uZmlnIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2ZpZWxkLWNvbmZpZy5tb2RlbCc7XHJcbmltcG9ydCB7IEZvcm1GaWVsZCB9IGZyb20gJy4uLy4uL21vZGVscy9mb3JtLWZpZWxkLm1vZGVsJztcclxuaW1wb3J0IHsgRm9ybUVycm9yQ29tcG9uZW50IH0gZnJvbSAnLi4vZm9ybS1lcnJvci9mb3JtLWVycm9yLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZvcm1TdXBwb3J0VGV4dENvbXBvbmVudCB9IGZyb20gJy4uL2Zvcm0tc3VwcG9ydC10ZXh0L2Zvcm0tc3VwcG9ydC10ZXh0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcclxuaW1wb3J0IHsgVGV4dFRydW5jYXRlZERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvdGV4dC10cnVuY2F0ZWQvdGV4dC10cnVuY2F0ZWQuZGlyZWN0aXZlJztcclxuLyoqXHJcbiAqIE11bHRpU2VsZWN0QXV0b2NvbXBsZXRlQ29tcG9uZW50IGFsbG93cyB0byBzZWFyY2ggdGhlIG9wdGlvbihzKSBmcm9tIHRoZSBsaXN0IGFuZCBzZWxlY3QgdGhlIG9wdGlvbihzKSBmcm9tIHRoZSBhdXRvY29tcGxldGUgc2VhcmNoIHJlc3VsdHMuXHJcbiAqIEBjbGFzcyBNdWx0aVNlbGVjdEF1dG9jb21wbGV0ZUNvbXBvbmVudFxyXG4gKiBAaW1wbGVtZW50cyB7T25Jbml0fVxyXG4gKiBAaW1wbGVtZW50cyB7Rm9ybUZpZWxkfVxyXG4gKiBAaW1wbGVtZW50cyB7T25EZXN0cm95fVxyXG4gKiBAaW1wbGVtZW50cyB7QWZ0ZXJWaWV3SW5pdH1cclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaWVlZXNhLW11bHRpLXNlbGVjdC1hdXRvY29tcGxldGUnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIEZvcm1FcnJvckNvbXBvbmVudCxcclxuICAgIEZvcm1TdXBwb3J0VGV4dENvbXBvbmVudCxcclxuICAgIE1hdE9wdGlvbk1vZHVsZSxcclxuICAgIE1hdEF1dG9jb21wbGV0ZU1vZHVsZSxcclxuICAgIE1hdElucHV0TW9kdWxlLFxyXG4gICAgTWF0SWNvbk1vZHVsZSxcclxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcclxuICAgIE1hdENoZWNrYm94TW9kdWxlLFxyXG4gICAgTWF0Q2hpcHNNb2R1bGUsXHJcbiAgICBNYXRUb29sdGlwTW9kdWxlLFxyXG4gICAgVGV4dFRydW5jYXRlZERpcmVjdGl2ZSxcclxuICBdLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBNQVRfQVVUT0NPTVBMRVRFX0RFRkFVTFRfT1BUSU9OUyxcclxuICAgICAgdXNlVmFsdWU6IHtcclxuICAgICAgICBvdmVybGF5UGFuZWxDbGFzczogJ2llZWVzYS1tdWx0aS1zZWxlY3QtYXV0b2NvbXBsZXRlLW92ZXJsYXktcGFuZWwnLFxyXG4gICAgICB9LFxyXG4gICAgfSxcclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9tdWx0aS1zZWxlY3QtYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9tdWx0aS1zZWxlY3QtYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIE11bHRpU2VsZWN0QXV0b2NvbXBsZXRlQ29tcG9uZW50XHJcbiAgaW1wbGVtZW50cyBPbkluaXQsIEZvcm1GaWVsZCwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0XHJcbntcclxuICBzZXBhcmF0b3JLZXlzQ29kZXM6IG51bWJlcltdID0gW0VOVEVSLCBDT01NQV07XHJcbiAgY29uZmlnITogRmllbGRDb25maWc7XHJcbiAgZ3JvdXAhOiBGb3JtR3JvdXA7XHJcbiAgc2VsZWN0ZWRPcHRpb25zOiBTZWxlY3RPcHRpb25bXSA9IFtdO1xyXG4gIGF1dG9Db21wbGV0ZU9wdGlvbkxpc3QhOiBBdXRvQ29tcGxldGVPcHRpb25bXTtcclxuICAvKipcclxuICAgKiBTZXRzIHRoZSBvcHRpb25zIGZvciBtdWx0aSBzZWxlY3QgYXV0b2NvbXBsZXRlLlxyXG4gICAqIEBtZW1iZXJvZiBNdWx0aVNlbGVjdEF1dG9jb21wbGV0ZUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IG11bHRpU2VsZWN0QXV0b0NvbXBsZXRlT3B0aW9ucyh2YWx1ZTogQXV0b0NvbXBsZXRlT3B0aW9uW10pIHtcclxuICAgIHRoaXMuYXV0b0NvbXBsZXRlT3B0aW9uTGlzdCA9IHZhbHVlO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSBhdXRvY29tcGxldGUgb3B0aW9ucyBsaXN0LlxyXG4gICAqIEByZWFkb25seVxyXG4gICAqIEB0eXBlIHtBdXRvQ29tcGxldGVPcHRpb25bXX1cclxuICAgKiBAbWVtYmVyb2YgTXVsdGlTZWxlY3RBdXRvY29tcGxldGVDb21wb25lbnRcclxuICAgKi9cclxuICBnZXQgbXVsdGlTZWxlY3RBdXRvQ29tcGxldGVPcHRpb25zKCk6IEF1dG9Db21wbGV0ZU9wdGlvbltdIHtcclxuICAgIHJldHVybiB0aGlzLmF1dG9Db21wbGV0ZU9wdGlvbkxpc3Q7XHJcbiAgfVxyXG4gIEBPdXRwdXQoKSBtdWx0aVNlbGVjdEF1dG9Db21wbGV0ZVNlYXJjaFZhbHVlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgQE91dHB1dCgpIG11bHRpU2VsZWN0QXV0b0NvbXBsZXRlQ2xlYXJTZWFyY2hWYWx1ZSA9XHJcbiAgICBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuICBAT3V0cHV0KCkgbXVsdGlTZWxlY3RBdXRvQ29tcGxldGVPcHRpb25zU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFxyXG4gICAgQXV0b0NvbXBsZXRlT3B0aW9uW11cclxuICA+KCk7XHJcbiAgQFZpZXdDaGlsZCgnbXVsdGlTZWxlY3RBdXRvQ29tcGxldGUnKSBtdWx0aVNlbGVjdEF1dG9Db21wbGV0ZSE6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgnYXV0b2NvbXBsZXRlVHJpZ2dlcicpIG1hdEFDVHJpZ2dlciE6IE1hdEF1dG9jb21wbGV0ZVRyaWdnZXI7XHJcbiAgZGVzdHJveSQ6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgYXV0b2NvbXBsZXRlQ29uc3RJbmZvOiBhbnkgPSBhdXRvY29tcGxldGVDb25zdEluZm87XHJcbiAgcmVtb3ZlSWNvblVSTCA9XHJcbiAgICB0aGlzLmF1dG9jb21wbGV0ZUNvbnN0SW5mbz8ubXVsdGlTZWxlY3RBdXRvQ29tcGxldGU/Lmljb25zPy5yZW1vdmU7XHJcbiAgY2xlYXJBbGxJY29uVVJMID1cclxuICAgIHRoaXMuYXV0b2NvbXBsZXRlQ29uc3RJbmZvPy5tdWx0aVNlbGVjdEF1dG9Db21wbGV0ZT8uaWNvbnM/LmNsZWFyQWxsO1xyXG4gIGNsZWFyQWxsID1cclxuICAgIHRoaXMuYXV0b2NvbXBsZXRlQ29uc3RJbmZvPy5tdWx0aVNlbGVjdEF1dG9Db21wbGV0ZT8ubGFiZWwuY2xlYXJBbGw7XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzLCBuby1lbXB0eS1mdW5jdGlvblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBwcml2YXRlIGZvcm1VdGlsaXR5U2VydmljZTogRm9ybVV0aWxpdHlTZXJ2aWNlLFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZiAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZW1wdHktZnVuY3Rpb25cclxuICApIHt9XHJcblxyXG4gIC8qKlxyXG4gICAqIEltcGxlbWVudGF0aW9uIG9mIG5nT25Jbml0IGxpZmVjeWNsZSBob29rIG1ldGhvZCB0byBpbml0aWFsaXplIGNvbXBvbmVudHMgaW5zdGFuY2UgcHJvcGVydGllcy5cclxuICAgKiBAbWVtYmVyb2YgTXVsdGlTZWxlY3RBdXRvY29tcGxldGVDb21wb25lbnRcclxuICAgKi9cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuY29uZmlnID1cclxuICAgICAgdGhpcy5jb25maWcgPz9cclxuICAgICAgdGhpcy5mb3JtVXRpbGl0eVNlcnZpY2UuZ2V0Rm9ybUZpZWxkQ29uZmlnKFxyXG4gICAgICAgICdtdWx0aVNlbGVjdEF1dG9jb21wbGV0ZScsXHJcbiAgICAgICAgRm9ybUNvbnRyb2xUeXBlLkFVVE9fQ09NUExFVEVcclxuICAgICAgKTtcclxuICAgIHRoaXMuZ3JvdXAgPVxyXG4gICAgICB0aGlzLmdyb3VwID8/XHJcbiAgICAgIHRoaXMuZm9ybVV0aWxpdHlTZXJ2aWNlLmdldEZvcm1Hcm91cCgnbXVsdGlTZWxlY3RBdXRvY29tcGxldGUnKTtcclxuICAgIHRoaXMubXVsdGlTZWxlY3RBdXRvQ29tcGxldGVPcHRpb25zID1cclxuICAgICAgdGhpcy5jb25maWc/Lm11bHRpU2VsZWN0QXV0b0NvbXBsZXRlT3B0aW9ucyA/P1xyXG4gICAgICB0aGlzLm11bHRpU2VsZWN0QXV0b0NvbXBsZXRlT3B0aW9ucztcclxuICAgIGlmICh0aGlzLmNvbmZpZz8udmFsdWUpIHRoaXMuc2VsZWN0ZWRPcHRpb25zID0gdGhpcy5jb25maWc/LnZhbHVlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSW5pdGlhbGl6ZSB0aGUgZm9ybSBjb250cm9sIGNoYW5nZSBldmVudCBvbmNlIHRoZSBmb3JtIGNvbnRyb2wgaXMgcmVhZHkgb24gbmdBZnRlclZpZXdJbml0IGJ5IGNhbGxpbmcgb25WYWx1ZUNoYW5nZXMgbWV0aG9kLlxyXG4gICAqIEBtZW1iZXJvZiBNdWx0aVNlbGVjdEF1dG9jb21wbGV0ZUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnNlbGVjdGVkT3B0aW9ucz8ubGVuZ3RoKVxyXG4gICAgICB0aGlzLmdyb3VwPy5nZXQodGhpcy5jb25maWc/LmNvbnRyb2xOYW1lKT8uc2V0RXJyb3JzKG51bGwpO1xyXG4gICAgdGhpcy5vblZhbHVlQ2hhbmdlcygpO1xyXG4gICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBFbWl0cyBhbiBtdWx0aVNlbGVjdEF1dG9Db21wbGV0ZVNlYXJjaFZhbHVlIGNoYW5nZSBldmVudCB3aGVuIHRoZSB2YWx1ZSBpcyBjaGFuZ2VkIGFuZCB2YWx1ZSBpcyBncmVhdGVyIHRoYW4gbWluQ2hhclRvU2VhcmNoIG9yIGVxdWFsIHRvIHplcm8uXHJcbiAgICogQG1lbWJlcm9mIE11bHRpU2VsZWN0QXV0b2NvbXBsZXRlQ29tcG9uZW50XHJcbiAgICovXHJcbiAgb25WYWx1ZUNoYW5nZXMoKTogdm9pZCB7XHJcbiAgICBmcm9tRXZlbnQodGhpcy5tdWx0aVNlbGVjdEF1dG9Db21wbGV0ZT8ubmF0aXZlRWxlbWVudCwgJ2tleXVwJylcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLFxyXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgICAgbWFwKChldmVudDogYW55KSA9PiBldmVudD8udGFyZ2V0Py52YWx1ZSksXHJcbiAgICAgICAgZmlsdGVyKFxyXG4gICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgICAgICAgIChyZXM6IGFueSkgPT5cclxuICAgICAgICAgICAgcmVzPy5sZW5ndGggPFxyXG4gICAgICAgICAgICAgIHRoaXMuYXV0b2NvbXBsZXRlQ29uc3RJbmZvPy5hdXRvY29tcGxldGU/Lm1pbkNoYXJUb1NlYXJjaCAmJlxyXG4gICAgICAgICAgICByZXM/Lmxlbmd0aCAhPT0gMFxyXG4gICAgICAgICksXHJcbiAgICAgICAgZGVib3VuY2VUaW1lKHRoaXMuYXV0b2NvbXBsZXRlQ29uc3RJbmZvPy5hdXRvY29tcGxldGU/LmRlYm91bmNlVGltZSlcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKCh0ZXh0OiBzdHJpbmcpID0+IHtcclxuICAgICAgICBpZiAodGV4dCA9PT0gJycpIHRoaXMuaGFuZGxlRmllbGRFcnJvcigpO1xyXG4gICAgICAgIHRoaXMubXVsdGlTZWxlY3RBdXRvQ29tcGxldGVDbGVhclNlYXJjaFZhbHVlLmVtaXQodGV4dCk7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgIHRoaXMuZ3JvdXA/LmNvbnRyb2xzW3RoaXMuY29uZmlnPy5jb250cm9sTmFtZV0/LnZhbHVlQ2hhbmdlc1xyXG4gICAgICAucGlwZShcclxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCksXHJcbiAgICAgICAgZmlsdGVyKFxyXG4gICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgICAgICAgIChyZXM6IGFueSkgPT5cclxuICAgICAgICAgICAgcmVzPy5sZW5ndGggPj1cclxuICAgICAgICAgICAgICB0aGlzLmF1dG9jb21wbGV0ZUNvbnN0SW5mbz8uYXV0b2NvbXBsZXRlPy5taW5DaGFyVG9TZWFyY2ggfHxcclxuICAgICAgICAgICAgcmVzPy5sZW5ndGggPT09IDBcclxuICAgICAgICApLFxyXG4gICAgICAgIGRlYm91bmNlVGltZSh0aGlzLmF1dG9jb21wbGV0ZUNvbnN0SW5mbz8uYXV0b2NvbXBsZXRlPy5kZWJvdW5jZVRpbWUpXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZSgodGV4dDogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgdGhpcy5tdWx0aVNlbGVjdEF1dG9Db21wbGV0ZVNlYXJjaFZhbHVlLmVtaXQodGV4dCk7XHJcbiAgICAgICAgaWYgKHRleHQgPT09ICcnKSB0aGlzLmhhbmRsZUZpZWxkRXJyb3IoKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBIYW5kbGVzIGZpZWxkIGVycm9yIGJ5IHNldHRpbmcgdGhlIGFwcHJvcHJpYXRlIGZvcm0gY29udHJvbCBlcnJvcnMuXHJcbiAgICogQG1lbWJlcm9mIE11bHRpU2VsZWN0QXV0b2NvbXBsZXRlQ29tcG9uZW50XHJcbiAgICovXHJcbiAgaGFuZGxlRmllbGRFcnJvcigpOiB2b2lkIHtcclxuICAgIHRoaXMuZ3JvdXA/LmNvbnRyb2xzW3RoaXMuY29uZmlnPy5jb250cm9sTmFtZV0/LnNldFZhbHVlKFxyXG4gICAgICB0aGlzLnNlbGVjdGVkT3B0aW9uc1xyXG4gICAgKTtcclxuICAgIGlmICh0aGlzLnNlbGVjdGVkT3B0aW9ucz8ubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMuZ3JvdXA/LmdldCh0aGlzLmNvbmZpZz8uY29udHJvbE5hbWUpPy5zZXRFcnJvcnMoe1xyXG4gICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBZGRzIGEgbmV3bHkgZW50ZXJlZCBvcHRpb24gdG8gdGhlIHNlbGVjdGVkT3B0aW9ucyBhcnJheS5cclxuICAgKiBAcGFyYW0geyp9IGV2ZW50IC1UaGUgZXZlbnQgY29udGFpbmluZyB0aGUgaW5wdXQgYW5kIHZhbHVlLlxyXG4gICAqIEBtZW1iZXJvZiBNdWx0aVNlbGVjdEF1dG9jb21wbGV0ZUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIGFkZChldmVudDogTWF0Q2hpcElucHV0RXZlbnQpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmF1dG9Db21wbGV0ZU9wdGlvbkxpc3QubGVuZ3RoKSByZXR1cm47XHJcbiAgICBjb25zdCBjb250cm9sID0gdGhpcy5ncm91cD8uZ2V0KHRoaXMuY29uZmlnPy5jb250cm9sTmFtZSk7XHJcbiAgICBjb25zdCBpbnB1dCA9IGV2ZW50Py5jaGlwSW5wdXQ/LmlucHV0RWxlbWVudDtcclxuICAgIGNvbnN0IHZhbHVlID0gKGV2ZW50Py52YWx1ZSB8fCAnJykudHJpbSgpO1xyXG4gICAgaWYgKHZhbHVlLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xyXG4gICAgY29uc3QgbWluTGVuZ3RoID0gY29udHJvbD8uZXJyb3JzPy5bJ21pbmxlbmd0aCddPy5yZXF1aXJlZExlbmd0aDtcclxuICAgIGNvbnN0IG1heExlbmd0aCA9IGNvbnRyb2w/LmVycm9ycz8uWydtYXhsZW5ndGgnXT8ucmVxdWlyZWRMZW5ndGg7XHJcbiAgICBpZiAoXHJcbiAgICAgICh2YWx1ZS5sZW5ndGggPj0gbWluTGVuZ3RoICYmIHZhbHVlLmxlbmd0aCA8PSBtYXhMZW5ndGgpIHx8XHJcbiAgICAgIChtaW5MZW5ndGggPT09IHVuZGVmaW5lZCAmJiBtYXhMZW5ndGggPT09IHVuZGVmaW5lZClcclxuICAgICkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkT3B0aW9ucy5wdXNoKHsgaWQ6ICcnLCBuYW1lOiB2YWx1ZSB9KTtcclxuICAgICAgaWYgKGlucHV0KSBpbnB1dC52YWx1ZSA9ICcnO1xyXG4gICAgICB0aGlzLmZvcm1hdFNlbGVjdGVkT3B0aW9uKHRoaXMuc2VsZWN0ZWRPcHRpb25zKTtcclxuICAgIH1cclxuICB9XHJcbiAgLyoqXHJcbiAgICogUmVtb3ZlcyBhIHNlbGVjdGVkIG9wdGlvbiBmcm9tIHRoZSBzZWxlY3RlZE9wdGlvbnMgYXJyYXkuXHJcbiAgICogQHBhcmFtIHtTZWxlY3RPcHRpb259IHJlbW92ZWRPcHRpb24gLVRoZSBvcHRpb24gdG8gcmVtb3ZlLlxyXG4gICAqIEBtZW1iZXJvZiBNdWx0aVNlbGVjdEF1dG9jb21wbGV0ZUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG9uT3B0aW9uUmVtb3ZlZChyZW1vdmVkT3B0aW9uOiBTZWxlY3RPcHRpb24pOiB2b2lkIHtcclxuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5zZWxlY3RlZE9wdGlvbnM/LmZpbmRJbmRleChcclxuICAgICAgKG9wdGlvbjogU2VsZWN0T3B0aW9uKSA9PiBvcHRpb24uaWQgPT09IHJlbW92ZWRPcHRpb24uaWRcclxuICAgICk7XHJcbiAgICBpZiAoaW5kZXggPj0gMCkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkT3B0aW9ucz8uc3BsaWNlKGluZGV4LCAxKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnNlbGVjdGVkT3B0aW9ucz8ubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHRoaXMuZ3JvdXAudmFsdWVbdGhpcy5jb25maWc/LmNvbnRyb2xOYW1lXSA9ICcnO1xyXG4gICAgICB0aGlzLmdyb3VwPy5jb250cm9sc1t0aGlzLmNvbmZpZz8uY29udHJvbE5hbWVdLnNldFZhbHVlKCcnKTtcclxuICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvbnMgPSBbXTtcclxuICAgICAgdGhpcy5hdXRvQ29tcGxldGVPcHRpb25MaXN0ID0gW107XHJcbiAgICAgIHRoaXMuaGFuZGxlRmllbGRFcnJvcigpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5mb3JtYXRTZWxlY3RlZE9wdGlvbih0aGlzLnNlbGVjdGVkT3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBIYW5kbGVzIHRoZSBzZWxlY3Rpb24gb2YgYW4gYXV0b2NvbXBsZXRlIG9wdGlvbi5cclxuICAgKiBAcGFyYW0ge0F1dG9Db21wbGV0ZU9wdGlvbn0gb3B0aW9uICAtVGhlIHNlbGVjdGVkIGF1dG9jb21wbGV0ZSBvcHRpb24uXHJcbiAgICogQHJldHVybiB7QXV0b0NvbXBsZXRlT3B0aW9ufVxyXG4gICAqIEBtZW1iZXJvZiBNdWx0aVNlbGVjdEF1dG9jb21wbGV0ZUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgb25DaGFuZ2Uob3B0aW9uOiBhbnkpOiBBdXRvQ29tcGxldGVPcHRpb24ge1xyXG4gICAgY29uc3QgdmFsdWUgPSBvcHRpb24/LnZhbHVlO1xyXG4gICAgaWYgKHRoaXMuaXNDaGVja2JveFNlbGVjdGVkKHZhbHVlKSkge1xyXG4gICAgICB0aGlzLm9uT3B0aW9uUmVtb3ZlZCh2YWx1ZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkT3B0aW9ucy5wdXNoKHZhbHVlKTtcclxuICAgIH1cclxuICAgIHRoaXMuZm9ybWF0U2VsZWN0ZWRPcHRpb24odGhpcy5zZWxlY3RlZE9wdGlvbnMpO1xyXG4gICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcclxuICAgICAgdGhpcy5tdWx0aVNlbGVjdEF1dG9Db21wbGV0ZT8ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gdmFsdWU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGb3JtYXRzIHRoZSBzZWxlY3RlZCBvcHRpb25zIGFuZCBlbWl0cyB0aGUgbXVsdGlTZWxlY3RBdXRvQ29tcGxldGVPcHRpb25TZWxlY3RlZCBldmVudC5cclxuICAgKiBAcGFyYW0ge1NlbGVjdE9wdGlvbltdfSBzZWxlY3RlZE9wdGlvbnMgLUFycmF5IG9mIHNlbGVjdGVkIG9wdGlvbnMuXHJcbiAgICogQG1lbWJlcm9mIE11bHRpU2VsZWN0QXV0b2NvbXBsZXRlQ29tcG9uZW50XHJcbiAgICovXHJcbiAgZm9ybWF0U2VsZWN0ZWRPcHRpb24oc2VsZWN0ZWRPcHRpb25zOiBTZWxlY3RPcHRpb25bXSkge1xyXG4gICAgY29uc3QgZm9ybWF0dGVkT3B0aW9ucyA9IHNlbGVjdGVkT3B0aW9ucz8ubWFwKChvcHRpb24pID0+IHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBpZDogb3B0aW9uLmlkLFxyXG4gICAgICAgIG5hbWU6IG9wdGlvbi5uYW1lLFxyXG4gICAgICB9O1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLm11bHRpU2VsZWN0QXV0b0NvbXBsZXRlT3B0aW9uc1NlbGVjdGVkPy5lbWl0KGZvcm1hdHRlZE9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGlzcGxheXMgdGhlIG5hbWUgb2YgdGhlIG9wdGlvblxyXG4gICAqIEBwYXJhbSB7QXV0b0NvbXBsZXRlT3B0aW9ufSBvcHRpb25cclxuICAgKiBAcmV0dXJuIHsqfSAge3N0cmluZ31cclxuICAgKiBAbWVtYmVyb2YgTXVsdGlTZWxlY3RBdXRvY29tcGxldGVDb21wb25lbnRcclxuICAgKi9cclxuICBkaXNwbGF5T3B0aW9uTmFtZShvcHRpb246IEF1dG9Db21wbGV0ZU9wdGlvbik6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gb3B0aW9uPy5uYW1lID8gb3B0aW9uLm5hbWUgOiAnJztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRyYWNrcyB0aGUgb3B0aW9uIGJ5IGl0cyBpbmRleCBvciBpZC5cclxuICAgKiBAcGFyYW0ge251bWJlcn0gaW5kZXhcclxuICAgKiBAcGFyYW0ge1NlbGVjdE9wdGlvbn0gb3B0aW9uXHJcbiAgICogQHJldHVybiB7Kn0gIHsobnVtYmVyIHwgc3RyaW5nKX1cclxuICAgKiBAbWVtYmVyb2YgTXVsdGlTZWxlY3RBdXRvY29tcGxldGVDb21wb25lbnRcclxuICAgKi9cclxuICB0cmFja0J5Rm4oaW5kZXg6IG51bWJlciwgb3B0aW9uOiBTZWxlY3RPcHRpb24pOiBudW1iZXIgfCBzdHJpbmcge1xyXG4gICAgcmV0dXJuIG9wdGlvbi5pZDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENoZWNrcyBpZiB0aGUgY2hlY2tib3ggaXMgc2VsZWN0ZWQuXHJcbiAgICogQHBhcmFtIHtBdXRvQ29tcGxldGVPcHRpb259IG9wdGlvblxyXG4gICAqIEByZXR1cm4geyp9ICB7Ym9vbGVhbn1cclxuICAgKiBAbWVtYmVyb2YgTXVsdGlTZWxlY3RBdXRvY29tcGxldGVDb21wb25lbnRcclxuICAgKi9cclxuICBpc0NoZWNrYm94U2VsZWN0ZWQob3B0aW9uOiBBdXRvQ29tcGxldGVPcHRpb24pOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkT3B0aW9ucz8uc29tZSgoaXRlbSkgPT4gaXRlbS5pZCA9PT0gb3B0aW9uLmlkKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENsZWFycyBhbGwgc2VsZWN0ZWQgb3B0aW9ucy5cclxuICAgKiBAbWVtYmVyb2YgTXVsdGlTZWxlY3RBdXRvY29tcGxldGVDb21wb25lbnRcclxuICAgKi9cclxuICBjbGVhclNlbGVjdGlvbnMoKTogdm9pZCB7XHJcbiAgICB0aGlzLmdyb3VwLnZhbHVlW3RoaXMuY29uZmlnPy5jb250cm9sTmFtZV0gPSAnJztcclxuICAgIHRoaXMuZ3JvdXA/LmNvbnRyb2xzW3RoaXMuY29uZmlnPy5jb250cm9sTmFtZV0uc2V0VmFsdWUoJycpO1xyXG4gICAgdGhpcy5zZWxlY3RlZE9wdGlvbnMgPSBbXTtcclxuICAgIHRoaXMuYXV0b0NvbXBsZXRlT3B0aW9uTGlzdCA9IFtdO1xyXG4gICAgdGhpcy5mb3JtYXRTZWxlY3RlZE9wdGlvbih0aGlzLnNlbGVjdGVkT3B0aW9ucyk7XHJcbiAgICB0aGlzLmhhbmRsZUZpZWxkRXJyb3IoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEltcGxlbWVudGF0aW9uIG9mIG5nT25EZXN0cm95IGxpZmVjeWNsZSBob29rIG1ldGhvZCB0byB1bnN1YnNjcmliZSB0aGUgb3BlbiBvYnNlcnZhYmxlIHN1YnNjcmlwdGlvbnMuXHJcbiAgICogQG1lbWJlcm9mIE11bHRpU2VsZWN0QXV0b2NvbXBsZXRlQ29tcG9uZW50XHJcbiAgICovXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXZcclxuICBjbGFzcz1cImllZWVzYS1tdWx0aS1zZWxlY3QtYXV0b2NvbXBsZXRlXCJcclxuICBbZm9ybUdyb3VwXT1cImdyb3VwXCJcclxuICAqbmdJZj1cImdyb3VwXCJcclxuICBbbmdDbGFzc109XCJcclxuICAgIGNvbmZpZy5pc0xhYmVsQWxpZ25lZExlZnRcclxuICAgICAgPyAnaWVlZXNhLW11bHRpLXNlbGVjdC1hdXRvY29tcGxldGUtZmllbGRfX2xhYmVsLWxlZnQnXHJcbiAgICAgIDogJ2llZWVzYS1tdWx0aS1zZWxlY3QtYXV0b2NvbXBsZXRlLWZpZWxkX19sYWJlbC10b3AnXHJcbiAgXCJcclxuPlxyXG4gIDxtYXQtbGFiZWwgY2xhc3M9XCJpZWVlc2EtYm9keS1zbS0xNCBpZWVlc2EtbXVsdGktc2VsZWN0LWF1dG9jb21wbGV0ZV9fbGFiZWxcIlxyXG4gICAgPnt7IGNvbmZpZy5sYWJlbCB9fTwvbWF0LWxhYmVsXHJcbiAgPlxyXG4gIDxtYXQtZm9ybS1maWVsZFxyXG4gICAgY2xhc3M9XCJpZWVlc2EtbXVsdGktc2VsZWN0LWF1dG9jb21wbGV0ZV9fbWF0LWZvcm0tZmllbGRcIlxyXG4gICAgYXBwZWFyYW5jZT1cIm91dGxpbmVcIlxyXG4gID5cclxuICAgIDxtYXQtY2hpcC1ncmlkXHJcbiAgICAgICNjaGlwR3JpZFxyXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImF1dG9jb21wbGV0ZUNvbnN0SW5mbz8ubXVsdGlTZWxlY3RBdXRvQ29tcGxldGU/LmFyaWFMYWJlbD8uc2VsZWN0ZWRPcHRpb25zXCJcclxuICAgID5cclxuICAgICAgPG1hdC1jaGlwLXJvd1xyXG4gICAgICAgICpuZ0Zvcj1cImxldCBvcHRpb24gb2Ygc2VsZWN0ZWRPcHRpb25zOyB0cmFja0J5OiB0cmFja0J5Rm5cIlxyXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwib3B0aW9uPy5uYW1lXCJcclxuICAgICAgICBbcmVtb3ZhYmxlXT1cInRydWVcIlxyXG4gICAgICAgIChyZW1vdmVkKT1cIm9uT3B0aW9uUmVtb3ZlZChvcHRpb24pXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxwXHJcbiAgICAgICAgICBpZWVlc2FUZXh0VHJ1bmNhdGVkXHJcbiAgICAgICAgICBbbWF0VG9vbHRpcF09XCJvcHRpb24ubmFtZVwiXHJcbiAgICAgICAgICBjbGFzcz1cImllZWVzYS1sYWJlbC1sZy1ib2xkLTE2IG0tMFwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAge3sgb3B0aW9uLm5hbWUgfX1cclxuICAgICAgICA8L3A+XHJcbiAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgbWF0Q2hpcFJlbW92ZVxyXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhdXRvY29tcGxldGVDb25zdEluZm8/Lm11bHRpU2VsZWN0QXV0b0NvbXBsZXRlPy5hcmlhTGFiZWw/LnJlbW92ZU9wdGlvbiArIG9wdGlvbi5uYW1lXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8c3ZnIGNsYXNzPVwiaWVlZXNhLWNoaXBfX3N2Zy1hdmF0YXJcIiBtYXRDaGlwQXZhdGFyPlxyXG4gICAgICAgICAgICA8dXNlIFthdHRyLnhsaW5rOmhyZWZdPVwicmVtb3ZlSWNvblVSTFwiPjwvdXNlPlxyXG4gICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgIDwvbWF0LWNoaXAtcm93PlxyXG4gICAgPC9tYXQtY2hpcC1ncmlkPlxyXG4gICAgPGlucHV0XHJcbiAgICAgIG1hdElucHV0XHJcbiAgICAgIGNsYXNzPVwiaWVlZXNhLW11bHRpLXNlbGVjdC1hdXRvY29tcGxldGVfX2lucHV0IGllZWVzYS10aXRsZS1zbS0xNlwiXHJcbiAgICAgIFttYXRBdXRvY29tcGxldGVdPVwibWF0QXV0b2NvbXBsZXRlXCJcclxuICAgICAgW3BsYWNlaG9sZGVyXT1cImNvbmZpZy5wbGFjZWhvbGRlciA/PyAnJ1wiXHJcbiAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiY29uZmlnLmNvbnRyb2xOYW1lXCJcclxuICAgICAgW25hbWVdPVwiY29uZmlnLmNvbnRyb2xOYW1lXCJcclxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJjb25maWcuYXJpYUxhYmVsXCJcclxuICAgICAgW2FyaWEtZGVzY3JpYmVkYnldPVwiY29uZmlnLmFyaWFEZXNjcmliZWRCeUlkID8/ICcnXCJcclxuICAgICAgI211bHRpU2VsZWN0QXV0b0NvbXBsZXRlXHJcbiAgICAgIFttYXRDaGlwSW5wdXRTZXBhcmF0b3JLZXlDb2Rlc109XCJzZXBhcmF0b3JLZXlzQ29kZXNcIlxyXG4gICAgICAobWF0Q2hpcElucHV0VG9rZW5FbmQpPVwiYWRkKCRldmVudClcIlxyXG4gICAgICBbbWF0Q2hpcElucHV0Rm9yXT1cImNoaXBHcmlkXCJcclxuICAgIC8+XHJcbiAgICA8bWF0LWF1dG9jb21wbGV0ZVxyXG4gICAgICAjbWF0QXV0b2NvbXBsZXRlPVwibWF0QXV0b2NvbXBsZXRlXCJcclxuICAgICAgKG9wdGlvblNlbGVjdGVkKT1cIm9uQ2hhbmdlKCRldmVudC5vcHRpb24pXCJcclxuICAgICAgW2Rpc3BsYXlXaXRoXT1cImRpc3BsYXlPcHRpb25OYW1lXCJcclxuICAgICAgY2xhc3M9XCJpZWVlc2EtbXVsdGktc2VsZWN0LWF1dG9jb21wbGV0ZV9fYXV0b2NvbXBsZXRlLWxpc3RcIlxyXG4gICAgPlxyXG4gICAgICA8bWF0LW9wdGlvblxyXG4gICAgICAgICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgYXV0b0NvbXBsZXRlT3B0aW9uTGlzdDsgdHJhY2tCeTogdHJhY2tCeUZuXCJcclxuICAgICAgICBbdmFsdWVdPVwib3B0aW9uXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxtYXQtY2hlY2tib3ggY29sb3I9XCJwcmltYXJ5XCIgW2NoZWNrZWRdPVwiaXNDaGVja2JveFNlbGVjdGVkKG9wdGlvbilcIj5cclxuICAgICAgICA8L21hdC1jaGVja2JveD5cclxuICAgICAgICB7eyBvcHRpb24ubmFtZSB9fVxyXG4gICAgICA8L21hdC1vcHRpb24+XHJcbiAgICA8L21hdC1hdXRvY29tcGxldGU+XHJcbiAgICA8YnV0dG9uXHJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICBtYXRTdWZmaXhcclxuICAgICAgbWF0LWljb24tYnV0dG9uXHJcbiAgICAgIFttYXRUb29sdGlwXT1cImNsZWFyQWxsXCJcclxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhdXRvY29tcGxldGVDb25zdEluZm8uYXJpYUxhYmVsLmNsZWFyXCJcclxuICAgICAgKm5nSWY9XCJzZWxlY3RlZE9wdGlvbnMubGVuZ3RoID4gMFwiXHJcbiAgICAgIChjbGljayk9XCJjbGVhclNlbGVjdGlvbnMoKVwiXHJcbiAgICA+XHJcbiAgICAgIDxzdmcgY2xhc3M9XCJpZWVlc2EtbXVsdGktc2VsZWN0LWF1dG9jb21wbGV0ZV9fc3ZnLWNsZWFyLWFsbFwiPlxyXG4gICAgICAgIDx1c2UgW2F0dHIueGxpbms6aHJlZl09XCJjbGVhckFsbEljb25VUkxcIj48L3VzZT5cclxuICAgICAgPC9zdmc+XHJcbiAgICA8L2J1dHRvbj5cclxuICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gIDxpZWVlc2EtZm9ybS1lcnJvciBbZm9ybUdyb3VwXT1cImdyb3VwXCIgW2NvbmZpZ109XCJjb25maWdcIj4gPC9pZWVlc2EtZm9ybS1lcnJvcj5cclxuICA8aWVlZXNhLWZvcm0tc3VwcG9ydC10ZXh0XHJcbiAgICBbZm9ybUdyb3VwXT1cImdyb3VwXCJcclxuICAgIFtjb25maWddPVwiY29uZmlnXCJcclxuICA+PC9pZWVlc2EtZm9ybS1zdXBwb3J0LXRleHQ+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -3853,7 +3853,8 @@ class MultiSelectAutocompleteComponent {
3853
3853
  * @memberof MultiSelectAutocompleteComponent
3854
3854
  */
3855
3855
  ngAfterViewInit() {
3856
- this.group?.get(this.config?.controlName)?.setErrors(null);
3856
+ if (this.selectedOptions?.length)
3857
+ this.group?.get(this.config?.controlName)?.setErrors(null);
3857
3858
  this.onValueChanges();
3858
3859
  this.changeDetectorRef.detectChanges();
3859
3860
  }
@@ -3892,6 +3893,7 @@ class MultiSelectAutocompleteComponent {
3892
3893
  * @memberof MultiSelectAutocompleteComponent
3893
3894
  */
3894
3895
  handleFieldError() {
3896
+ this.group?.controls[this.config?.controlName]?.setValue(this.selectedOptions);
3895
3897
  if (this.selectedOptions?.length) {
3896
3898
  this.group?.get(this.config?.controlName)?.setErrors({
3897
3899
  required: false,