@sd-angular/core 0.0.896 → 0.0.900

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.
Files changed (37) hide show
  1. package/bundles/sd-angular-core-date-range.umd.js +1 -1
  2. package/bundles/sd-angular-core-date-range.umd.min.js +1 -1
  3. package/bundles/sd-angular-core-date-range.umd.min.js.map +1 -1
  4. package/bundles/sd-angular-core-date-time.umd.js +1 -1
  5. package/bundles/sd-angular-core-date-time.umd.min.js +2 -2
  6. package/bundles/sd-angular-core-date-time.umd.min.js.map +1 -1
  7. package/bundles/sd-angular-core-modal.umd.js +1 -0
  8. package/bundles/sd-angular-core-modal.umd.js.map +1 -1
  9. package/bundles/sd-angular-core-modal.umd.min.js +1 -1
  10. package/bundles/sd-angular-core-modal.umd.min.js.map +1 -1
  11. package/bundles/sd-angular-core-select.umd.js +28 -12
  12. package/bundles/sd-angular-core-select.umd.js.map +1 -1
  13. package/bundles/sd-angular-core-select.umd.min.js +2 -2
  14. package/bundles/sd-angular-core-select.umd.min.js.map +1 -1
  15. package/bundles/sd-angular-core-upload-excel.umd.js +1 -13
  16. package/bundles/sd-angular-core-upload-excel.umd.js.map +1 -1
  17. package/bundles/sd-angular-core-upload-excel.umd.min.js +1 -1
  18. package/bundles/sd-angular-core-upload-excel.umd.min.js.map +1 -1
  19. package/date-range/sd-angular-core-date-range.metadata.json +1 -1
  20. package/date-time/sd-angular-core-date-time.metadata.json +1 -1
  21. package/esm2015/date-range/src/lib/date-range.component.js +1 -1
  22. package/esm2015/date-time/src/lib/date-time.component.js +1 -1
  23. package/esm2015/modal/src/lib/modal/modal.component.js +2 -1
  24. package/esm2015/select/src/lib/select.component.js +29 -13
  25. package/esm2015/upload-excel/src/lib/upload-excel.component.js +2 -14
  26. package/fesm2015/sd-angular-core-date-range.js +1 -1
  27. package/fesm2015/sd-angular-core-date-time.js +1 -1
  28. package/fesm2015/sd-angular-core-modal.js +1 -0
  29. package/fesm2015/sd-angular-core-modal.js.map +1 -1
  30. package/fesm2015/sd-angular-core-select.js +28 -12
  31. package/fesm2015/sd-angular-core-select.js.map +1 -1
  32. package/fesm2015/sd-angular-core-upload-excel.js +1 -13
  33. package/fesm2015/sd-angular-core-upload-excel.js.map +1 -1
  34. package/package.json +1 -1
  35. package/{sd-angular-core-0.0.896.tgz → sd-angular-core-0.0.900.tgz} +0 -0
  36. package/select/sd-angular-core-select.metadata.json +1 -1
  37. package/select/src/lib/select.component.d.ts +2 -2
@@ -180,7 +180,7 @@ SdDateRange.decorators = [
180
180
  selector: 'sd-date-range',
181
181
  template: "<mat-form-field class=\"sd-md\" [ngClass]=\"{'sd-sm': size === 'sm'}\" appearance=\"outline\">\r\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\r\n <mat-date-range-input [max]=\"max\" [min]=\"min\" [rangePicker]=\"picker\" [disabled]=\"disabled\">\r\n <input [id]=\"id1\" autocomplete=\"off\" autocorrect=\"off\" matStartDate [formControl]=\"control1\"\r\n (dateInput)=\"onStartChange($event)\" [placeholder]=\"'Start' | sdTranslate\">\r\n <input [id]=\"id2\" [autocomplete]=\"id2\" autocorrect=\"off\" matEndDate [formControl]=\"control2\" (dateInput)=\"onEndChange($event)\" [placeholder]=\"'End' | sdTranslate\">\r\n </mat-date-range-input>\r\n <mat-icon *ngIf=\"control1?.value || control2?.value\" class=\"pointer sd-suffix-icon\" (click)=\"clear()\" matSuffix>cancel\r\n </mat-icon>\r\n <mat-icon class=\"pointer sd-suffix-icon\" (click)=\"!disabled && picker.open()\" matSuffix>today\r\n </mat-icon>\r\n <mat-date-range-picker [touchUi]=\"isMobileOrTablet\" #picker></mat-date-range-picker>\r\n</mat-form-field>",
182
182
  providers: [{ provide: MAT_DATE_FORMATS, useValue: ɵ0 }],
183
- styles: [":host{display:block;padding-top:5px}:host ::ng-deep .mat-form-field.mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-outline{background:#f6f6f6;color:#e9e9e9}:host ::ng-deep .mat-form-field input.mat-end-date:disabled,:host ::ng-deep .mat-form-field input.mat-start-date:disabled{color:#4d4d4d!important}:host ::ng-deep .mat-form-field .mat-placeholder-required{color:red}"]
183
+ styles: [":host{display:block;padding-top:5px}:host ::ng-deep .mat-form-field.mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-outline{background:#f6f6f6;color:#e9e9e9}:host ::ng-deep .mat-form-field input.mat-end-date:disabled,:host ::ng-deep .mat-form-field input.mat-start-date:disabled{color:#4d4d4d!important}:host ::ng-deep .mat-form-field .mat-placeholder-required{color:#f82c13}"]
184
184
  },] }
185
185
  ];
186
186
  SdDateRange.ctorParameters = () => [
@@ -189,7 +189,7 @@ SdDateTime.decorators = [
189
189
  { provide: MAT_DATE_FORMATS, useValue: ɵ0 },
190
190
  { provide: NGX_MAT_DATE_FORMATS, useValue: ɵ1 }
191
191
  ],
192
- styles: [":host{display:block;padding-top:5px}:host ::ng-deep .mat-form-field.no-padding-wrapper .mat-form-field-wrapper{padding-bottom:0}:host ::ng-deep .mat-form-field.mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-outline{background:#f6f6f6;color:#e9e9e9}:host ::ng-deep .mat-form-field input.mat-input-element:disabled{color:#4d4d4d!important}"]
192
+ styles: [":host{display:block;padding-top:5px}:host ::ng-deep .mat-form-field.no-padding-wrapper .mat-form-field-wrapper{padding-bottom:0}:host ::ng-deep .mat-form-field.mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-outline{background:#f6f6f6;color:#e9e9e9}:host ::ng-deep .mat-form-field input.mat-input-element:disabled{color:#4d4d4d!important}:host ::ng-deep .mat-form-field .mat-placeholder-required{color:#f82c13}"]
193
193
  },] }
194
194
  ];
195
195
  SdDateTime.ctorParameters = () => [
@@ -28,6 +28,7 @@ export class SdModal {
28
28
  else {
29
29
  this.dialogRef = this.dialog.open(this.templateRef, {
30
30
  width: this.width,
31
+ maxWidth: this.width,
31
32
  disableClose: true
32
33
  });
33
34
  this.subcription.add(this.dialogRef.afterClosed().subscribe(() => {
@@ -89,4 +90,4 @@ SdModal.propDecorators = {
89
90
  lazyLoadContent: [{ type: Input }],
90
91
  modal: [{ type: ViewChild, args: ['modal',] }]
91
92
  };
92
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IkM6L1VzZXJzL3VzZXIvRG9jdW1lbnRzL2xpYi1jb3JlLXVpL3Byb2plY3RzL3NkLWNvcmUvbW9kYWwvIiwic291cmNlcyI6WyJzcmMvbGliL21vZGFsL21vZGFsLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLEtBQUssRUFBRSxTQUFTLEVBQWtDLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNILE9BQU8sRUFBRSxTQUFTLEVBQWdCLE1BQU0sMEJBQTBCLENBQUM7QUFDbkUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRWhFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFRcEMsTUFBTSxPQUFPLE9BQU87SUFpQmxCLFlBQ1UsTUFBaUIsRUFDakIsV0FBMkIsRUFDbkMsYUFBb0M7UUFGNUIsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUNqQixnQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7UUFaNUIsV0FBTSxHQUFHLE1BQU0sQ0FBQztRQUVoQixvQkFBZSxHQUFHLElBQUksQ0FBQztRQUVoQyxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQUdqQixnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUE2QnpDLFNBQUksR0FBRyxHQUFTLEVBQUU7WUFDaEIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUNqQixPQUFPO2FBQ1I7WUFDRCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztZQUMxQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztZQUNyQixJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssYUFBYSxFQUFFO2dCQUN4RSxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDOUQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO29CQUN2RSxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztnQkFDeEIsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNMO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtvQkFDbEQsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO29CQUNqQixZQUFZLEVBQUUsSUFBSTtpQkFDbkIsQ0FBQyxDQUFDO2dCQUNILElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtvQkFDL0QsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7Z0JBQ3hCLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDTDtRQUNILENBQUMsQ0FBQTtRQUVELFVBQUssR0FBRyxHQUFTLEVBQUU7O1lBQ2pCLE1BQUEsSUFBSSxDQUFDLGNBQWMsMENBQUUsT0FBTyxHQUFHO1lBQy9CLE1BQUEsSUFBSSxDQUFDLFNBQVMsMENBQUUsS0FBSyxHQUFHO1FBQzFCLENBQUMsQ0FBQTtRQWpEQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxhQUFhLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDckQsQ0FBQztJQUNELFFBQVE7UUFDTixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLElBQUksU0FBUyxDQUFDO1FBQ25DLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssSUFBSSxNQUFNLENBQUM7UUFDbEMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUMxQixRQUFRLElBQUksQ0FBQyxLQUFLLEVBQUU7Z0JBQ2xCLEtBQUssSUFBSTtvQkFDUCxJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQztvQkFDcEIsTUFBTTtnQkFDUixLQUFLLElBQUk7b0JBQ1AsSUFBSSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUM7b0JBQ3BCLE1BQU07Z0JBQ1IsS0FBSyxJQUFJO29CQUNQLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDO29CQUNwQixNQUFNO2FBQ1Q7U0FDRjtJQUNILENBQUM7SUFFRCxXQUFXOztRQUNULE1BQUEsSUFBSSxDQUFDLFdBQVcsMENBQUUsV0FBVyxHQUFHO0lBQ2xDLENBQUM7O0FBMUNNLGFBQUssR0FBRyxDQUFDLENBQUM7O1lBUGxCLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsVUFBVTtnQkFDcEIsK2lCQUFxQztnQkFFckMsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7O2FBQ3RDOzs7WUFYUSxTQUFTO1lBRVQsY0FBYztZQURkLHFCQUFxQjs7OzBCQWEzQixTQUFTLFNBQUMsYUFBYTtvQkFDdkIsS0FBSztzQkFDTCxLQUFLO21CQUNMLEtBQUs7b0JBQ0wsS0FBSztxQkFDTCxLQUFLO21CQUNMLEtBQUs7OEJBQ0wsS0FBSztvQkFDTCxTQUFTLFNBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIFZpZXdDaGlsZCwgT25Jbml0LCBPbkRlc3Ryb3ksIFRlbXBsYXRlUmVmLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2csIE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IERldmljZURldGVjdG9yU2VydmljZSB9IGZyb20gJ25neC1kZXZpY2UtZGV0ZWN0b3InO1xyXG5pbXBvcnQgeyBNYXRCb3R0b21TaGVldCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2JvdHRvbS1zaGVldCc7XHJcbmltcG9ydCB7IE1hdEJvdHRvbVNoZWV0UmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYm90dG9tLXNoZWV0JztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NkLW1vZGFsJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbW9kYWwuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL21vZGFsLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2RNb2RhbCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBzdGF0aWMgaW5kZXggPSAwO1xyXG4gIEBWaWV3Q2hpbGQoJ3RlbXBsYXRlUmVmJykgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgQElucHV0KCkgdGl0bGU6IHN0cmluZztcclxuICBASW5wdXQoKSBub0Nsb3NlOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIHR5cGU6ICdwcmltYXJ5JyB8ICdpbmZvJyB8ICdzdWNjZXNzJyB8ICd3YXJuaW5nJyB8ICdkYW5nZXInO1xyXG4gIEBJbnB1dCgpIHdpZHRoOiAnbGcnIHwgJ21kJyB8ICdzbScgfCBzdHJpbmc7XHJcbiAgQElucHV0KCkgaGVpZ2h0ID0gJ2F1dG8nO1xyXG4gIEBJbnB1dCgpIHZpZXc6ICdkaWFsb2cnIHwgJ2JvdHRvbVNoZWV0JztcclxuICBASW5wdXQoKSBsYXp5TG9hZENvbnRlbnQgPSB0cnVlO1xyXG4gIEBWaWV3Q2hpbGQoJ21vZGFsJykgbW9kYWw6IEVsZW1lbnRSZWY7XHJcbiAgaXNPcGVuZWQgPSBmYWxzZTtcclxuICBhbHJlYWR5T3BlbmVkID0gZmFsc2U7XHJcbiAgaXNNb2JpbGVPclRhYmxldCA9IGZhbHNlO1xyXG4gIHByaXZhdGUgYm90dG9tU2hlZXRSZWY6IE1hdEJvdHRvbVNoZWV0UmVmPGFueT47XHJcbiAgcHJpdmF0ZSBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxhbnk+O1xyXG4gIHByaXZhdGUgc3ViY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nLFxyXG4gICAgcHJpdmF0ZSBib3R0b21TaGVldDogTWF0Qm90dG9tU2hlZXQsXHJcbiAgICBkZXZpY2VTZXJ2aWNlOiBEZXZpY2VEZXRlY3RvclNlcnZpY2UpIHtcclxuICAgIHRoaXMuaXNNb2JpbGVPclRhYmxldCA9ICFkZXZpY2VTZXJ2aWNlLmlzRGVza3RvcCgpO1xyXG4gIH1cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMudHlwZSA9IHRoaXMudHlwZSB8fCAncHJpbWFyeSc7XHJcbiAgICB0aGlzLndpZHRoID0gdGhpcy53aWR0aCB8fCAnODB2dyc7XHJcbiAgICBpZiAoIXRoaXMuaXNNb2JpbGVPclRhYmxldCkge1xyXG4gICAgICBzd2l0Y2ggKHRoaXMud2lkdGgpIHtcclxuICAgICAgICBjYXNlICdsZyc6XHJcbiAgICAgICAgICB0aGlzLndpZHRoID0gJzgwdncnO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnbWQnOlxyXG4gICAgICAgICAgdGhpcy53aWR0aCA9ICc2MHZ3JztcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ3NtJzpcclxuICAgICAgICAgIHRoaXMud2lkdGggPSAnNDB2dyc7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLnN1YmNyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgb3BlbiA9ICgpOiB2b2lkID0+IHtcclxuICAgIGlmICh0aGlzLmlzT3BlbmVkKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuYWxyZWFkeU9wZW5lZCA9IHRydWU7XHJcbiAgICB0aGlzLmlzT3BlbmVkID0gdHJ1ZTtcclxuICAgIGlmICgoIXRoaXMudmlldyAmJiB0aGlzLmlzTW9iaWxlT3JUYWJsZXQpIHx8IHRoaXMudmlldyA9PT0gJ2JvdHRvbVNoZWV0Jykge1xyXG4gICAgICB0aGlzLmJvdHRvbVNoZWV0UmVmID0gdGhpcy5ib3R0b21TaGVldC5vcGVuKHRoaXMudGVtcGxhdGVSZWYpO1xyXG4gICAgICB0aGlzLnN1YmNyaXB0aW9uLmFkZCh0aGlzLmJvdHRvbVNoZWV0UmVmLmFmdGVyRGlzbWlzc2VkKCkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB0aGlzLmlzT3BlbmVkID0gZmFsc2U7XHJcbiAgICAgIH0pKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3Blbih0aGlzLnRlbXBsYXRlUmVmLCB7XHJcbiAgICAgICAgd2lkdGg6IHRoaXMud2lkdGgsXHJcbiAgICAgICAgZGlzYWJsZUNsb3NlOiB0cnVlXHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLnN1YmNyaXB0aW9uLmFkZCh0aGlzLmRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5pc09wZW5lZCA9IGZhbHNlO1xyXG4gICAgICB9KSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjbG9zZSA9ICgpOiB2b2lkID0+IHtcclxuICAgIHRoaXMuYm90dG9tU2hlZXRSZWY/LmRpc21pc3MoKTtcclxuICAgIHRoaXMuZGlhbG9nUmVmPy5jbG9zZSgpO1xyXG4gIH1cclxufVxyXG4iXX0=
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IkM6L1VzZXJzL3VzZXIvRG9jdW1lbnRzL2xpYi1jb3JlLXVpL3Byb2plY3RzL3NkLWNvcmUvbW9kYWwvIiwic291cmNlcyI6WyJzcmMvbGliL21vZGFsL21vZGFsLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLEtBQUssRUFBRSxTQUFTLEVBQWtDLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNILE9BQU8sRUFBRSxTQUFTLEVBQWdCLE1BQU0sMEJBQTBCLENBQUM7QUFDbkUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRWhFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFRcEMsTUFBTSxPQUFPLE9BQU87SUFpQmxCLFlBQ1UsTUFBaUIsRUFDakIsV0FBMkIsRUFDbkMsYUFBb0M7UUFGNUIsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUNqQixnQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7UUFaNUIsV0FBTSxHQUFHLE1BQU0sQ0FBQztRQUVoQixvQkFBZSxHQUFHLElBQUksQ0FBQztRQUVoQyxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQUdqQixnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUE2QnpDLFNBQUksR0FBRyxHQUFTLEVBQUU7WUFDaEIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUNqQixPQUFPO2FBQ1I7WUFDRCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztZQUMxQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztZQUNyQixJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssYUFBYSxFQUFFO2dCQUN4RSxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDOUQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO29CQUN2RSxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztnQkFDeEIsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNMO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtvQkFDbEQsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO29CQUNqQixRQUFRLEVBQUUsSUFBSSxDQUFDLEtBQUs7b0JBQ3BCLFlBQVksRUFBRSxJQUFJO2lCQUNuQixDQUFDLENBQUM7Z0JBQ0gsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO29CQUMvRCxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztnQkFDeEIsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNMO1FBQ0gsQ0FBQyxDQUFBO1FBRUQsVUFBSyxHQUFHLEdBQVMsRUFBRTs7WUFDakIsTUFBQSxJQUFJLENBQUMsY0FBYywwQ0FBRSxPQUFPLEdBQUc7WUFDL0IsTUFBQSxJQUFJLENBQUMsU0FBUywwQ0FBRSxLQUFLLEdBQUc7UUFDMUIsQ0FBQyxDQUFBO1FBbERDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLGFBQWEsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNyRCxDQUFDO0lBQ0QsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksSUFBSSxTQUFTLENBQUM7UUFDbkMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxJQUFJLE1BQU0sQ0FBQztRQUNsQyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQzFCLFFBQVEsSUFBSSxDQUFDLEtBQUssRUFBRTtnQkFDbEIsS0FBSyxJQUFJO29CQUNQLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDO29CQUNwQixNQUFNO2dCQUNSLEtBQUssSUFBSTtvQkFDUCxJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQztvQkFDcEIsTUFBTTtnQkFDUixLQUFLLElBQUk7b0JBQ1AsSUFBSSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUM7b0JBQ3BCLE1BQU07YUFDVDtTQUNGO0lBQ0gsQ0FBQztJQUVELFdBQVc7O1FBQ1QsTUFBQSxJQUFJLENBQUMsV0FBVywwQ0FBRSxXQUFXLEdBQUc7SUFDbEMsQ0FBQzs7QUExQ00sYUFBSyxHQUFHLENBQUMsQ0FBQzs7WUFQbEIsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxVQUFVO2dCQUNwQiwraUJBQXFDO2dCQUVyQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTs7YUFDdEM7OztZQVhRLFNBQVM7WUFFVCxjQUFjO1lBRGQscUJBQXFCOzs7MEJBYTNCLFNBQVMsU0FBQyxhQUFhO29CQUN2QixLQUFLO3NCQUNMLEtBQUs7bUJBQ0wsS0FBSztvQkFDTCxLQUFLO3FCQUNMLEtBQUs7bUJBQ0wsS0FBSzs4QkFDTCxLQUFLO29CQUNMLFNBQVMsU0FBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgVmlld0NoaWxkLCBPbkluaXQsIE9uRGVzdHJveSwgVGVtcGxhdGVSZWYsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdERpYWxvZywgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgRGV2aWNlRGV0ZWN0b3JTZXJ2aWNlIH0gZnJvbSAnbmd4LWRldmljZS1kZXRlY3Rvcic7XHJcbmltcG9ydCB7IE1hdEJvdHRvbVNoZWV0IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYm90dG9tLXNoZWV0JztcclxuaW1wb3J0IHsgTWF0Qm90dG9tU2hlZXRSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9ib3R0b20tc2hlZXQnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc2QtbW9kYWwnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9tb2RhbC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbW9kYWwuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZE1vZGFsIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIHN0YXRpYyBpbmRleCA9IDA7XHJcbiAgQFZpZXdDaGlsZCgndGVtcGxhdGVSZWYnKSB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PjtcclxuICBASW5wdXQoKSB0aXRsZTogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIG5vQ2xvc2U6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgdHlwZTogJ3ByaW1hcnknIHwgJ2luZm8nIHwgJ3N1Y2Nlc3MnIHwgJ3dhcm5pbmcnIHwgJ2Rhbmdlcic7XHJcbiAgQElucHV0KCkgd2lkdGg6ICdsZycgfCAnbWQnIHwgJ3NtJyB8IHN0cmluZztcclxuICBASW5wdXQoKSBoZWlnaHQgPSAnYXV0byc7XHJcbiAgQElucHV0KCkgdmlldzogJ2RpYWxvZycgfCAnYm90dG9tU2hlZXQnO1xyXG4gIEBJbnB1dCgpIGxhenlMb2FkQ29udGVudCA9IHRydWU7XHJcbiAgQFZpZXdDaGlsZCgnbW9kYWwnKSBtb2RhbDogRWxlbWVudFJlZjtcclxuICBpc09wZW5lZCA9IGZhbHNlO1xyXG4gIGFscmVhZHlPcGVuZWQgPSBmYWxzZTtcclxuICBpc01vYmlsZU9yVGFibGV0ID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBib3R0b21TaGVldFJlZjogTWF0Qm90dG9tU2hlZXRSZWY8YW55PjtcclxuICBwcml2YXRlIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPGFueT47XHJcbiAgcHJpdmF0ZSBzdWJjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZGlhbG9nOiBNYXREaWFsb2csXHJcbiAgICBwcml2YXRlIGJvdHRvbVNoZWV0OiBNYXRCb3R0b21TaGVldCxcclxuICAgIGRldmljZVNlcnZpY2U6IERldmljZURldGVjdG9yU2VydmljZSkge1xyXG4gICAgdGhpcy5pc01vYmlsZU9yVGFibGV0ID0gIWRldmljZVNlcnZpY2UuaXNEZXNrdG9wKCk7XHJcbiAgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy50eXBlID0gdGhpcy50eXBlIHx8ICdwcmltYXJ5JztcclxuICAgIHRoaXMud2lkdGggPSB0aGlzLndpZHRoIHx8ICc4MHZ3JztcclxuICAgIGlmICghdGhpcy5pc01vYmlsZU9yVGFibGV0KSB7XHJcbiAgICAgIHN3aXRjaCAodGhpcy53aWR0aCkge1xyXG4gICAgICAgIGNhc2UgJ2xnJzpcclxuICAgICAgICAgIHRoaXMud2lkdGggPSAnODB2dyc7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdtZCc6XHJcbiAgICAgICAgICB0aGlzLndpZHRoID0gJzYwdncnO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnc20nOlxyXG4gICAgICAgICAgdGhpcy53aWR0aCA9ICc0MHZ3JztcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuc3ViY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICBvcGVuID0gKCk6IHZvaWQgPT4ge1xyXG4gICAgaWYgKHRoaXMuaXNPcGVuZWQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5hbHJlYWR5T3BlbmVkID0gdHJ1ZTtcclxuICAgIHRoaXMuaXNPcGVuZWQgPSB0cnVlO1xyXG4gICAgaWYgKCghdGhpcy52aWV3ICYmIHRoaXMuaXNNb2JpbGVPclRhYmxldCkgfHwgdGhpcy52aWV3ID09PSAnYm90dG9tU2hlZXQnKSB7XHJcbiAgICAgIHRoaXMuYm90dG9tU2hlZXRSZWYgPSB0aGlzLmJvdHRvbVNoZWV0Lm9wZW4odGhpcy50ZW1wbGF0ZVJlZik7XHJcbiAgICAgIHRoaXMuc3ViY3JpcHRpb24uYWRkKHRoaXMuYm90dG9tU2hlZXRSZWYuYWZ0ZXJEaXNtaXNzZWQoKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuaXNPcGVuZWQgPSBmYWxzZTtcclxuICAgICAgfSkpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5kaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKHRoaXMudGVtcGxhdGVSZWYsIHtcclxuICAgICAgICB3aWR0aDogdGhpcy53aWR0aCxcclxuICAgICAgICBtYXhXaWR0aDogdGhpcy53aWR0aCxcclxuICAgICAgICBkaXNhYmxlQ2xvc2U6IHRydWVcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMuc3ViY3JpcHRpb24uYWRkKHRoaXMuZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB0aGlzLmlzT3BlbmVkID0gZmFsc2U7XHJcbiAgICAgIH0pKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNsb3NlID0gKCk6IHZvaWQgPT4ge1xyXG4gICAgdGhpcy5ib3R0b21TaGVldFJlZj8uZGlzbWlzcygpO1xyXG4gICAgdGhpcy5kaWFsb2dSZWY/LmNsb3NlKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -98,7 +98,7 @@ export class SdSelect {
98
98
  var _a, _b;
99
99
  if (Array.isArray(value)) {
100
100
  let vals = value;
101
- if (this.isNumber && value.every(val => Number.isNumber(val))) {
101
+ if (this.dataType === 'number' && value.every(val => Number.isNumber(val))) {
102
102
  vals = value.map(e => +e);
103
103
  }
104
104
  this.modelChange.emit(vals);
@@ -110,9 +110,12 @@ export class SdSelect {
110
110
  }
111
111
  else {
112
112
  let val = value;
113
- if (this.isNumber && Number.isNumber(value)) {
113
+ if (this.dataType === 'number' && Number.isNumber(value)) {
114
114
  val = +value;
115
115
  }
116
+ if (this.dataType === 'boolean') {
117
+ val = !!value;
118
+ }
116
119
  this.modelChange.emit(val);
117
120
  this.sdChange.emit(val);
118
121
  this.sdSelection.emit({
@@ -176,27 +179,40 @@ export class SdSelect {
176
179
  this.disableErrorMessage = (val === '') || val;
177
180
  val = (val === '') || val;
178
181
  }
179
- get isNumber() {
182
+ get dataType() {
180
183
  var _a;
181
184
  if (Array.isArray(__classPrivateFieldGet(this, _model))) {
182
- if (__classPrivateFieldGet(this, _model).length) {
183
- return typeof (__classPrivateFieldGet(this, _model)[0]) === 'number';
185
+ if (__classPrivateFieldGet(this, _model).length && typeof (__classPrivateFieldGet(this, _model)[0]) === 'number') {
186
+ return 'number';
187
+ }
188
+ if (__classPrivateFieldGet(this, _model).length && typeof (__classPrivateFieldGet(this, _model)[0]) === 'boolean') {
189
+ return 'boolean';
184
190
  }
191
+ return 'string';
185
192
  }
186
193
  else {
187
- if (__classPrivateFieldGet(this, _model) || __classPrivateFieldGet(this, _model) === 0) {
188
- return typeof (__classPrivateFieldGet(this, _model)) === 'number';
194
+ if ((__classPrivateFieldGet(this, _model) && typeof (__classPrivateFieldGet(this, _model)) === 'number') || __classPrivateFieldGet(this, _model) === 0) {
195
+ return 'number';
196
+ }
197
+ if ((__classPrivateFieldGet(this, _model) && typeof (__classPrivateFieldGet(this, _model)) === 'boolean') || __classPrivateFieldGet(this, _model) === false) {
198
+ return 'boolean';
189
199
  }
190
200
  }
191
201
  if ((_a = __classPrivateFieldGet(this, _currentItems)) === null || _a === void 0 ? void 0 : _a.length) {
192
- if (this.valueField) {
193
- return typeof (__classPrivateFieldGet(this, _currentItems)[0][this.valueField]) === 'number';
202
+ if (this.valueField && typeof (__classPrivateFieldGet(this, _currentItems)[0][this.valueField]) === 'number') {
203
+ return 'number';
194
204
  }
195
- else {
196
- return typeof (__classPrivateFieldGet(this, _currentItems)[0]) === 'number';
205
+ else if (this.valueField && typeof (__classPrivateFieldGet(this, _currentItems)[0][this.valueField]) === 'boolean') {
206
+ return 'boolean';
207
+ }
208
+ else if (typeof (__classPrivateFieldGet(this, _currentItems)[0]) === 'number') {
209
+ return 'number';
210
+ }
211
+ else if (typeof (__classPrivateFieldGet(this, _currentItems)[0]) === 'boolean') {
212
+ return 'boolean';
197
213
  }
198
214
  }
199
- return false;
215
+ return 'string';
200
216
  }
201
217
  set form(val) {
202
218
  if (val) {
@@ -383,4 +399,4 @@ SdSelect.propDecorators = {
383
399
  sdChange: [{ type: Output }],
384
400
  sdSelection: [{ type: Output }]
385
401
  };
386
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJDOi9Vc2Vycy91c2VyL0RvY3VtZW50cy9saWItY29yZS11aS9wcm9qZWN0cy9zZC1jb3JlL3NlbGVjdC8iLCJzb3VyY2VzIjpbInNyYy9saWIvc2VsZWN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQW9DLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2SSxPQUFPLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQTZELE1BQU0sZ0JBQWdCLENBQUM7QUFDNUgsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7QUFHN0IsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFPNUQsTUFBTSxPQUFPLFFBQVE7SUE0SG5CLFlBQ1UsR0FBc0IsRUFDdEIsY0FBZ0M7UUFEaEMsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIsbUJBQWMsR0FBZCxjQUFjLENBQWtCO1FBNUgxQyxnQkFBUSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUM7UUFNbEIsd0JBQW1CLEdBQUcsS0FBSyxDQUFDO1FBSzVCLGdCQUFXLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUNoQyxpQkFBWSxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7UUFxQmpDLHdCQUFpQjtRQWFqQixRQUFRO1FBQ1IseUJBQThDO1FBYzlDLFFBQVE7UUFDUixpQkFBNEQsRUFBRSxFQUFDO1FBQy9ELHdCQUF1QixFQUFFLEVBQUM7UUFDMUIsbUJBRUksRUFBRSxFQUFDO1FBY1AsZ0JBQWdCO1FBQ2hCLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDaEIsaUJBQVMsR0FB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LENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVELGVBQWU7O1FBQ2IsbUZBQVksVUFBVSxzQ0FBYSxJQUFJLENBQUMsV0FBVyxFQUFFO0lBQ3ZELENBQUM7SUFFRCxXQUFXOztRQUNULG1GQUFZLGFBQWEsc0NBQWE7SUFDeEMsQ0FBQztJQTBERCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3BCLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1NBQ2xFO2FBQU07WUFDTCxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUMvQjtRQUNELDZDQUFBLElBQUksRUFBVyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pDLENBQUM7Ozs7WUFyUkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxXQUFXO2dCQUNyQixza0ZBQXNDOzthQUV2Qzs7O1lBWmdELGlCQUFpQjtZQU16RCxnQkFBZ0I7OztxQkFRdEIsU0FBUyxTQUFDLFFBQVE7bUJBRWxCLEtBQUs7bUNBTUwsS0FBSyxTQUFDLHFCQUFxQjttQkF5QjNCLEtBQUs7bUJBRUwsS0FBSztvQkFTTCxLQUFLOzBCQUNMLEtBQUs7b0JBSUwsS0FBSztvQkFtQkwsS0FBSzt5QkFVTCxLQUFLOzJCQUNMLEtBQUs7dUJBU0wsS0FBSzt3QkFJTCxLQUFLO3VCQUtMLEtBQUs7d0JBU0wsS0FBSyxTQUFDLFVBQVU7b0JBR2hCLEtBQUs7d0JBRUwsS0FBSyxTQUFDLFVBQVU7eUJBSWhCLEtBQUssU0FBQyxXQUFXOzBCQUtqQixNQUFNO3VCQUNOLE1BQU07MEJBQ04sTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBDaGFuZ2VEZXRlY3RvclJlZiwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOZ0Zvcm0sIEZvcm1Db250cm9sLCBWYWxpZGF0b3JzLCBWYWxpZGF0b3JGbiwgQWJzdHJhY3RDb250cm9sLCBBc3luY1ZhbGlkYXRvckZuLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCAqIGFzIHV1aWQgZnJvbSAndXVpZCc7XHJcbmltcG9ydCB7IE1hdFNlbGVjdCwgTWF0U2VsZWN0Q2hhbmdlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIHN0YXJ0V2l0aCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBTZFV0aWxpdHlTZXJ2aWNlIH0gZnJvbSAnQHNkLWFuZ3VsYXIvY29yZS91dGlsaXR5JztcclxuaW1wb3J0IHsgTWF0T3B0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZS9vcHRpb24nO1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NkLXNlbGVjdCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vc2VsZWN0LmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFNkU2VsZWN0IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG4gIEBWaWV3Q2hpbGQoJ3NlbGVjdCcpIHNlbGVjdDogTWF0U2VsZWN0O1xyXG4gICNuYW1lID0gdXVpZC52NCgpO1xyXG4gIEBJbnB1dCgpIHNldCBuYW1lKHZhbDogc3RyaW5nKSB7XHJcbiAgICBpZiAodmFsKSB7XHJcbiAgICAgIHRoaXMuI25hbWUgPSB2YWw7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGRpc2FibGVFcnJvck1lc3NhZ2UgPSBmYWxzZTtcclxuICBASW5wdXQoJ2Rpc2FibGVFcnJvck1lc3NhZ2UnKSBzZXQgX2Rpc2FibGVFcnJvck1lc3NhZ2UodmFsOiBib29sZWFuIHwgJycpIHtcclxuICAgIHRoaXMuZGlzYWJsZUVycm9yTWVzc2FnZSA9ICh2YWwgPT09ICcnKSB8fCB2YWw7XHJcbiAgICB2YWwgPSAodmFsID09PSAnJykgfHwgdmFsO1xyXG4gIH1cclxuICBmb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgpO1xyXG4gIGlucHV0Q29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgpO1xyXG4gIGdldCBpc051bWJlcigpIHtcclxuICAgIGlmIChBcnJheS5pc0FycmF5KHRoaXMuI21vZGVsKSkge1xyXG4gICAgICBpZiAodGhpcy4jbW9kZWwubGVuZ3RoKSB7XHJcbiAgICAgICAgcmV0dXJuIHR5cGVvZiAodGhpcy4jbW9kZWxbMF0pID09PSAnbnVtYmVyJztcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHRoaXMuI21vZGVsIHx8IHRoaXMuI21vZGVsID09PSAwKSB7XHJcbiAgICAgICAgcmV0dXJuIHR5cGVvZiAodGhpcy4jbW9kZWwpID09PSAnbnVtYmVyJztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuI2N1cnJlbnRJdGVtcz8ubGVuZ3RoKSB7XHJcbiAgICAgIGlmICh0aGlzLnZhbHVlRmllbGQpIHtcclxuICAgICAgICByZXR1cm4gdHlwZW9mICh0aGlzLiNjdXJyZW50SXRlbXNbMF1bdGhpcy52YWx1ZUZpZWxkXSkgPT09ICdudW1iZXInO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiB0eXBlb2YgKHRoaXMuI2N1cnJlbnRJdGVtc1swXSkgPT09ICdudW1iZXInO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG4gIEBJbnB1dCgpIHNpemU6ICdzbScgfCAnbGcnO1xyXG4gICNmb3JtOiBGb3JtR3JvdXA7XHJcbiAgQElucHV0KCkgc2V0IGZvcm0odmFsOiBOZ0Zvcm0gfCBGb3JtR3JvdXApIHtcclxuICAgIGlmICh2YWwpIHtcclxuICAgICAgaWYgKHZhbCBpbnN0YW5jZW9mIE5nRm9ybSkge1xyXG4gICAgICAgIHRoaXMuI2Zvcm0gPSB2YWwuZm9ybTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLiNmb3JtID0gdmFsO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZztcclxuXHJcbiAgLy8gTW9kZWxcclxuICAjbW9kZWw6IG51bWJlciB8IHN0cmluZyB8IChudW1iZXIgfCBzdHJpbmcpW107XHJcbiAgQElucHV0KCkgc2V0IG1vZGVsKHZhbHVlOiB1bmRlZmluZWQgfCBudW1iZXIgfCBzdHJpbmcgfCAobnVtYmVyIHwgc3RyaW5nKVtdKSB7XHJcbiAgICB0aGlzLiNtb2RlbCA9IHZhbHVlO1xyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XHJcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUodmFsdWUubWFwKHZhbCA9PiAodmFsID8/ICcnKSArICcnKSwge1xyXG4gICAgICAgIGVtaXRFdmVudDogZmFsc2VcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbHVlKCh2YWx1ZSA/PyAnJykgKyAnJywge1xyXG4gICAgICAgIGVtaXRFdmVudDogZmFsc2VcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG4gIC8vIEl0ZW1zXHJcbiAgI2l0ZW1zOiBhbnlbXSB8ICgoc2VhcmNoVGV4dD86IHN0cmluZykgPT4gUHJvbWlzZTxhbnlbXT4pID0gW107XHJcbiAgI2N1cnJlbnRJdGVtczogYW55W10gPSBbXTtcclxuICAjYWxsSXRlbToge1xyXG4gICAgW2tleTogc3RyaW5nXTogYW55XHJcbiAgfSA9IHt9O1xyXG4gIEBJbnB1dCgpIHNldCBpdGVtcyhpdGVtczogdW5kZWZpbmVkIHwgYW55W10gfCAoKHNlYXJjaFRleHQ/OiBzdHJpbmcpID0+IFByb21pc2U8YW55W10+KSkge1xyXG4gICAgaWYgKCFpdGVtcykge1xyXG4gICAgICB0aGlzLiNpdGVtcyA9IFtdO1xyXG4gICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KGl0ZW1zKSkge1xyXG4gICAgICB0aGlzLiNpdGVtcyA9IGl0ZW1zLmZpbHRlcihlID0+IGUgIT09IG51bGwgJiYgZSAhPT0gdW5kZWZpbmVkKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuI2l0ZW1zID0gaXRlbXM7XHJcbiAgICB9XHJcbiAgICB0aGlzLmlucHV0Q29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgfVxyXG4gIEBJbnB1dCgpIHZhbHVlRmllbGQ6IHN0cmluZztcclxuICBASW5wdXQoKSBkaXNwbGF5RmllbGQ6IHN0cmluZztcclxuXHJcbiAgLy8gU2VydmVyIHNlYXJjaFxyXG4gIGxvYWRpbmcgPSBmYWxzZTtcclxuICAjZGVsYXkgPSA1MDA7IC8vIFNhdSBraG/huqNuZyB0aOG7nWkgZ2lhbiBkZWxheSBu4bq/dSBraMO0bmcgY8OzIHRoYXkgxJHhu5VpIHRow6wgdGjDrCBt4bubaSBi4bqvdCDEkeG6p3UgdGjhu7FjIGhp4buHbiBn4buNaSBow6BtXHJcblxyXG4gIC8vIFZhbGlkYXRvclxyXG4gIGlzUmVxdWlyZWQgPSBmYWxzZTtcclxuICAjdmFsaWRhdG9yOiAodmFsdWU6IGFueSkgPT4gc3RyaW5nIHwgUHJvbWlzZTxzdHJpbmc+O1xyXG4gIEBJbnB1dCgpIHNldCByZXF1aXJlZCh2YWw6IGJvb2xlYW4gfCAnJykge1xyXG4gICAgdGhpcy5pc1JlcXVpcmVkID0gKHZhbCA9PT0gJycpIHx8IHZhbDtcclxuICAgIHRoaXMuI3VwZGF0ZVZhbGlkYXRvcigpO1xyXG4gIH1cclxuICBASW5wdXQoKSBzZXQgdmFsaWRhdG9yKHZhbGlkYXRvcjogKHZhbHVlOiBhbnkpID0+IHN0cmluZyB8IFByb21pc2U8c3RyaW5nPikge1xyXG4gICAgdGhpcy4jdmFsaWRhdG9yID0gdmFsaWRhdG9yO1xyXG4gICAgdGhpcy4jdXBkYXRlVmFsaWRhdG9yKCk7XHJcbiAgfVxyXG4gIC8vIE9wdGlvbmFsXHJcbiAgQElucHV0KCkgc2V0IGRpc2FibGVkKHZhbDogYm9vbGVhbiB8ICcnKSB7XHJcbiAgICB2YWwgPSAodmFsID09PSAnJykgfHwgdmFsO1xyXG4gICAgaWYgKHZhbCkge1xyXG4gICAgICB0aGlzLmZvcm1Db250cm9sLmRpc2FibGUoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wuZW5hYmxlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIG11bHRpcGxlID0gZmFsc2U7XHJcbiAgQElucHV0KCdtdWx0aXBsZScpIHNldCBfbXVsdGlwbGUodmFsOiBib29sZWFuIHwgJycpIHtcclxuICAgIHRoaXMubXVsdGlwbGUgPSAodmFsID09PSAnJykgfHwgdmFsO1xyXG4gIH1cclxuICBASW5wdXQoKSBsaW1pdCA9IDEwMDtcclxuICBmaWx0ZXJlZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgnZmlsdGVyZWQnKSBzZXQgX2ZpbHRlcmVkKHZhbDogYm9vbGVhbiB8ICcnKSB7XHJcbiAgICB0aGlzLmZpbHRlcmVkID0gKHZhbCA9PT0gJycpIHx8IHZhbDtcclxuICB9XHJcbiAgc2VsZWN0QWxsID0gZmFsc2U7XHJcbiAgQElucHV0KCdzZWxlY3RBbGwnKSBzZXQgX3NlbGVjdEFsbCh2YWw6IGJvb2xlYW4gfCAnJykge1xyXG4gICAgdGhpcy5zZWxlY3RBbGwgPSAodmFsID09PSAnJykgfHwgdmFsO1xyXG4gIH1cclxuICBmaWx0ZXJlZEl0ZW1zOiBPYnNlcnZhYmxlPGFueVtdPjtcclxuICBhbGxTZWxlY3RlZCA9IGZhbHNlO1xyXG4gIEBPdXRwdXQoKSBtb2RlbENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgc2RDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIHNkU2VsZWN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjx7IHZhbHVlOiBhbnkgfCBhbnlbXSwgaXRlbT86IGFueSwgaXRlbXM/OiBhbnlbXSB9PigpO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZWY6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHJpdmF0ZSB1dGlsaXR5U2VydmljZTogU2RVdGlsaXR5U2VydmljZSkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5maWx0ZXJlZEl0ZW1zID0gdGhpcy5pbnB1dENvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUoXHJcbiAgICAgIHN0YXJ0V2l0aCgnJyksXHJcbiAgICAgIGRlYm91bmNlVGltZSh0eXBlb2YgKHRoaXMuI2l0ZW1zKSA9PT0gJ2Z1bmN0aW9uJyA/IHRoaXMuI2RlbGF5IDogMCksXHJcbiAgICAgIC8vIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksIETDuW5nIHPhur0gZ8OieSByYSBidWcga2hpIGl0ZW1zIGNoYW5nZXNcclxuICAgICAgc3dpdGNoTWFwKGFzeW5jICh2YWw6IHN0cmluZykgPT4ge1xyXG4gICAgICAgIGlmICh0eXBlb2YgKHRoaXMuI2l0ZW1zKSA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICAgICAgY29uc3QgaXRlbXMgPSBhd2FpdCB0aGlzLiNsb2FkSXRlbXModmFsLCB0aGlzLiNpdGVtcyk7XHJcbiAgICAgICAgICB0aGlzLiNjdXJyZW50SXRlbXMgPSBpdGVtcy5maWx0ZXIoKGl0ZW0sIGluZGV4KSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGZvcm1WYWx1ZTogYW55IHwgYW55W10gPSB0aGlzLmZvcm1Db250cm9sLnZhbHVlO1xyXG4gICAgICAgICAgICBsZXQgdmFsdWUgPSBpdGVtPy50b1N0cmluZygpIHx8ICcnO1xyXG4gICAgICAgICAgICBpZiAodGhpcy52YWx1ZUZpZWxkICYmIHRoaXMuZGlzcGxheUZpZWxkKSB7XHJcbiAgICAgICAgICAgICAgdmFsdWUgPSBpdGVtW3RoaXMudmFsdWVGaWVsZF0/LnRvU3RyaW5nKCkgfHwgJyc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIChBcnJheS5pc0FycmF5KGZvcm1WYWx1ZSkgPyBmb3JtVmFsdWUuc29tZShlID0+IGU/LnRvU3RyaW5nKCkgPT09IHZhbHVlKSA6IGZvcm1WYWx1ZT8udG9TdHJpbmcoKSA9PT0gdmFsdWUpXHJcbiAgICAgICAgICAgICAgfHwgaW5kZXggPCB0aGlzLmxpbWl0O1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy4jY3VycmVudEl0ZW1zLm1hcChlID0+IHtcclxuICAgICAgICAgICAgaWYgKHRoaXMudmFsdWVGaWVsZCAmJiB0aGlzLmRpc3BsYXlGaWVsZCkge1xyXG4gICAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICAuLi5lLFxyXG4gICAgICAgICAgICAgICAgW2Ake3RoaXMudmFsdWVGaWVsZH1gXTogZVt0aGlzLnZhbHVlRmllbGRdPy50b1N0cmluZygpXHJcbiAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gZT8udG9TdHJpbmcoKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgLy8gcmV0dXJuIHRoaXMuI2N1cnJlbnRJdGVtcy5tYXAoZSA9PiB7XHJcbiAgICAgICAgICAvLyAgIGlmICh0aGlzLnZhbHVlRmllbGQgJiYgdGhpcy5kaXNwbGF5RmllbGQpIHtcclxuICAgICAgICAgIC8vICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgLy8gICAgICAgLi4uZSxcclxuICAgICAgICAgIC8vICAgICAgIFtgJHt0aGlzLnZhbHVlRmllbGR9YF06IGVbdGhpcy5kaXNwbGF5RmllbGRdPy50b1N0cmluZygpID8/IGVbdGhpcy52YWx1ZUZpZWxkXT8udG9TdHJpbmcoKVxyXG4gICAgICAgICAgLy8gICAgIH07XHJcbiAgICAgICAgICAvLyAgIH1cclxuICAgICAgICAgIC8vICAgcmV0dXJuIGU/LnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAvLyB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgeyBjaGFuZ2VBbGlhc0xvd2VyQ2FzZSB9ID0gdGhpcy51dGlsaXR5U2VydmljZTtcclxuICAgICAgICB0aGlzLiNjdXJyZW50SXRlbXMgPSB0aGlzLiNpdGVtcy5maWx0ZXIoaXRlbSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBzZWFyY2hUZXh0ID0gY2hhbmdlQWxpYXNMb3dlckNhc2UodmFsKTtcclxuICAgICAgICAgIGNvbnN0IGZvcm1WYWx1ZTogYW55IHwgYW55W10gPSB0aGlzLmZvcm1Db250cm9sLnZhbHVlO1xyXG4gICAgICAgICAgaWYgKHRoaXMudmFsdWVGaWVsZCAmJiB0aGlzLmRpc3BsYXlGaWVsZCkge1xyXG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGl0ZW1bdGhpcy52YWx1ZUZpZWxkXT8udG9TdHJpbmcoKSB8fCAnJztcclxuICAgICAgICAgICAgY29uc3QgZGlzcGxheSA9IGl0ZW1bdGhpcy5kaXNwbGF5RmllbGRdPy50b1N0cmluZygpIHx8ICcnO1xyXG4gICAgICAgICAgICByZXR1cm4gKEFycmF5LmlzQXJyYXkoZm9ybVZhbHVlKSA/IGZvcm1WYWx1ZS5zb21lKGUgPT4gZT8udG9TdHJpbmcoKSA9PT0gdmFsdWUpIDogZm9ybVZhbHVlPy50b1N0cmluZygpID09PSB2YWx1ZSlcclxuICAgICAgICAgICAgICB8fCBjaGFuZ2VBbGlhc0xvd2VyQ2FzZSh2YWx1ZSkuaW5kZXhPZihzZWFyY2hUZXh0KSAhPT0gLTFcclxuICAgICAgICAgICAgICB8fCBjaGFuZ2VBbGlhc0xvd2VyQ2FzZShkaXNwbGF5KS5pbmRleE9mKHNlYXJjaFRleHQpICE9PSAtMTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gaXRlbT8udG9TdHJpbmcoKSB8fCAnJztcclxuICAgICAgICAgICAgcmV0dXJuIChBcnJheS5pc0FycmF5KGZvcm1WYWx1ZSkgPyBmb3JtVmFsdWUuc29tZShlID0+IGU/LnRvU3RyaW5nKCkgPT09IHZhbHVlKSA6IGZvcm1WYWx1ZT8udG9TdHJpbmcoKSA9PT0gdmFsdWUpXHJcbiAgICAgICAgICAgICAgfHwgY2hhbmdlQWxpYXNMb3dlckNhc2UodmFsdWUpLmluZGV4T2Yoc2VhcmNoVGV4dCkgIT09IC0xO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pLmZpbHRlcigoaXRlbSwgaW5kZXgpID0+IHtcclxuICAgICAgICAgIGNvbnN0IGZvcm1WYWx1ZTogYW55IHwgYW55W10gPSB0aGlzLmZvcm1Db250cm9sLnZhbHVlO1xyXG4gICAgICAgICAgbGV0IHZhbHVlID0gaXRlbT8udG9TdHJpbmcoKSB8fCAnJztcclxuICAgICAgICAgIGlmICh0aGlzLnZhbHVlRmllbGQgJiYgdGhpcy5kaXNwbGF5RmllbGQpIHtcclxuICAgICAgICAgICAgdmFsdWUgPSBpdGVtW3RoaXMudmFsdWVGaWVsZF0/LnRvU3RyaW5nKCkgfHwgJyc7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICByZXR1cm4gKEFycmF5LmlzQXJyYXkoZm9ybVZhbHVlKSA/IGZvcm1WYWx1ZS5zb21lKGUgPT4gZT8udG9TdHJpbmcoKSA9PT0gdmFsdWUpIDogZm9ybVZhbHVlPy50b1N0cmluZygpID09PSB2YWx1ZSlcclxuICAgICAgICAgICAgfHwgaW5kZXggPCB0aGlzLmxpbWl0O1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiB0aGlzLiNjdXJyZW50SXRlbXMubWFwKGUgPT4ge1xyXG4gICAgICAgICAgaWYgKHRoaXMudmFsdWVGaWVsZCAmJiB0aGlzLmRpc3BsYXlGaWVsZCkge1xyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgIC4uLmUsXHJcbiAgICAgICAgICAgICAgW2Ake3RoaXMudmFsdWVGaWVsZH1gXTogZVt0aGlzLnZhbHVlRmllbGRdPy50b1N0cmluZygpXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICByZXR1cm4gZT8udG9TdHJpbmcoKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLiNmb3JtPy5hZGRDb250cm9sKHRoaXMuI25hbWUsIHRoaXMuZm9ybUNvbnRyb2wpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLiNmb3JtPy5yZW1vdmVDb250cm9sKHRoaXMuI25hbWUpO1xyXG4gIH1cclxuXHJcbiAgI3VwZGF0ZVZhbGlkYXRvciA9ICgpID0+IHtcclxuICAgIHRoaXMuZm9ybUNvbnRyb2wuY2xlYXJWYWxpZGF0b3JzKCk7XHJcbiAgICB0aGlzLmZvcm1Db250cm9sLmNsZWFyQXN5bmNWYWxpZGF0b3JzKCk7XHJcbiAgICBjb25zdCB2YWxpZGF0b3JzOiBWYWxpZGF0b3JGbltdID0gW107XHJcbiAgICBjb25zdCBhc3luY1ZhbGlkYXRvcnM6IEFzeW5jVmFsaWRhdG9yRm5bXSA9IFtdO1xyXG4gICAgaWYgKHRoaXMuaXNSZXF1aXJlZCkge1xyXG4gICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5yZXF1aXJlZCk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy4jdmFsaWRhdG9yKSB7XHJcbiAgICAgIGFzeW5jVmFsaWRhdG9ycy5wdXNoKHRoaXMuI2N1c3RvbVZhbGlkYXRvcih0aGlzLiN2YWxpZGF0b3IpKTtcclxuICAgIH1cclxuICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsaWRhdG9ycyh2YWxpZGF0b3JzKTtcclxuICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0QXN5bmNWYWxpZGF0b3JzKGFzeW5jVmFsaWRhdG9ycyk7XHJcbiAgICB0aGlzLmZvcm1Db250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICB9XHJcblxyXG4gICNsb2FkSXRlbXMgPSBhc3luYyAoc2VhcmNoVGV4dDogc3RyaW5nLCBpdGVtczogKHNlYXJjaFRleHQ/OiBzdHJpbmcpID0+IFByb21pc2U8YW55W10+KSA9PiB7XHJcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgY29uc3QgcmVzdWx0cyA9IGF3YWl0IGl0ZW1zKHNlYXJjaFRleHQpLmZpbmFsbHkoKCkgPT4gdGhpcy5sb2FkaW5nID0gZmFsc2UpO1xyXG4gICAgaWYgKHRoaXMubXVsdGlwbGUpIHtcclxuICAgICAgbGV0IG9iakl0ZW0gPSB7fTtcclxuICAgICAgaWYgKHRoaXMudmFsdWVGaWVsZCkge1xyXG4gICAgICAgIG9iakl0ZW0gPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmFycmF5VG9PYmplY3QocmVzdWx0cywgdGhpcy52YWx1ZUZpZWxkKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXN1bHRzLmZvckVhY2goaXRlbSA9PiBvYmpJdGVtW2l0ZW0/LnRvU3RyaW5nKCldID0gaXRlbSk7XHJcbiAgICAgIH1cclxuICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLiNhbGxJdGVtLCBvYmpJdGVtKTtcclxuICAgICAgY29uc3QgdmFsdWVzOiAobnVtYmVyIHwgc3RyaW5nKVtdID0gdGhpcy5mb3JtQ29udHJvbC52YWx1ZSB8fCBbXTtcclxuICAgICAgdmFsdWVzLmZvckVhY2godmFsID0+IHtcclxuICAgICAgICBpZiAoIW9iakl0ZW1bdmFsXSkge1xyXG4gICAgICAgICAgaWYgKHRoaXMuI2FsbEl0ZW1bdmFsXSkge1xyXG4gICAgICAgICAgICByZXN1bHRzLnB1c2godGhpcy4jYWxsSXRlbVt2YWxdKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJlc3VsdHMucHVzaCh7XHJcbiAgICAgICAgICAgICAgW3RoaXMudmFsdWVGaWVsZF06IHZhbCxcclxuICAgICAgICAgICAgICBbdGhpcy5kaXNwbGF5RmllbGRdOiB2YWxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgIHJldHVybiByZXN1bHRzO1xyXG4gIH1cclxuXHJcbiAgb25TZWxlY3Rpb25DaGFuZ2UgPSAoY2hhbmdlOiBNYXRTZWxlY3RDaGFuZ2UpID0+IHtcclxuICAgIHRoaXMuYWxsU2VsZWN0ZWQgPSAhdGhpcy5zZWxlY3Qub3B0aW9ucy5zb21lKGUgPT4gIWUuc2VsZWN0ZWQpO1xyXG4gICAgY29uc3QgdmFsdWUgPSBjaGFuZ2U/LnZhbHVlIHx8ICcnO1xyXG4gICAgaWYgKHRoaXMubXVsdGlwbGUpIHtcclxuICAgICAgdGhpcy4jb25DaGFuZ2UodmFsdWUgfHwgW10pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5pbnB1dENvbnRyb2w/LnNldFZhbHVlKCcnKTtcclxuICAgICAgdGhpcy4jb25DaGFuZ2UodmFsdWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25TZWxlY3RBbGwoKSB7XHJcbiAgICBpZiAodGhpcy5hbGxTZWxlY3RlZCkge1xyXG4gICAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbHVlKHRoaXMuc2VsZWN0Lm9wdGlvbnMubWFwKGUgPT4gZS52YWx1ZSkpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWx1ZShbXSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLiNvbkNoYW5nZSh0aGlzLmZvcm1Db250cm9sLnZhbHVlKTtcclxuICB9XHJcblxyXG4gIHJlVmFsaWRhdGUgPSAoKSA9PiB7XHJcbiAgICB0aGlzLmZvcm1Db250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoeyBlbWl0RXZlbnQ6IHRydWUgfSk7XHJcbiAgfVxyXG5cclxuICAjb25DaGFuZ2UgPSAodmFsdWU6IG51bWJlciB8IHN0cmluZyB8IChudW1iZXIgfCBzdHJpbmcpW10pID0+IHtcclxuICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xyXG4gICAgICBsZXQgdmFscyA9IHZhbHVlO1xyXG4gICAgICBpZiAodGhpcy5pc051bWJlciAmJiB2YWx1ZS5ldmVyeSh2YWwgPT4gTnVtYmVyLmlzTnVtYmVyKHZhbCkpKSB7XHJcbiAgICAgICAgdmFscyA9IHZhbHVlLm1hcChlID0+ICtlKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLm1vZGVsQ2hhbmdlLmVtaXQodmFscyk7XHJcbiAgICAgIHRoaXMuc2RDaGFuZ2UuZW1pdCh2YWxzKTtcclxuICAgICAgdGhpcy5zZFNlbGVjdGlvbi5lbWl0KHtcclxuICAgICAgICB2YWx1ZTogdmFscyxcclxuICAgICAgICBpdGVtczogdGhpcy4jY3VycmVudEl0ZW1zPy5maWx0ZXIoZSA9PiB2YWxzLnNvbWUoZTEgPT4gZTE/LnRvU3RyaW5nKCkgPT09IGU/Llt0aGlzLnZhbHVlRmllbGRdPy50b1N0cmluZygpKSlcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBsZXQgdmFsID0gdmFsdWU7XHJcbiAgICAgIGlmICh0aGlzLmlzTnVtYmVyICYmIE51bWJlci5pc051bWJlcih2YWx1ZSkpIHtcclxuICAgICAgICB2YWwgPSArdmFsdWU7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5tb2RlbENoYW5nZS5lbWl0KHZhbCk7XHJcbiAgICAgIHRoaXMuc2RDaGFuZ2UuZW1pdCh2YWwpO1xyXG4gICAgICB0aGlzLnNkU2VsZWN0aW9uLmVtaXQoe1xyXG4gICAgICAgIHZhbHVlOiB2YWwsXHJcbiAgICAgICAgaXRlbTogdGhpcy4jY3VycmVudEl0ZW1zPy5maW5kKGUgPT4gdmFsPy50b1N0cmluZygpID09PSBlPy5bdGhpcy52YWx1ZUZpZWxkXT8udG9TdHJpbmcoKSlcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjbGVhciA9ICgkZXZlbnQ/OiBhbnkpID0+IHtcclxuICAgICRldmVudD8uc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICBpZiAodGhpcy5tdWx0aXBsZSkge1xyXG4gICAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbHVlKFtdKTtcclxuICAgICAgdGhpcy5tb2RlbENoYW5nZS5lbWl0KFtdKTtcclxuICAgICAgdGhpcy5zZENoYW5nZS5lbWl0KFtdKTtcclxuICAgICAgdGhpcy5zZFNlbGVjdGlvbi5lbWl0KHtcclxuICAgICAgICB2YWx1ZTogW10sXHJcbiAgICAgICAgaXRlbXM6IFtdXHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWx1ZShudWxsKTtcclxuICAgICAgdGhpcy5tb2RlbENoYW5nZS5lbWl0KG51bGwpO1xyXG4gICAgICB0aGlzLnNkQ2hhbmdlLmVtaXQobnVsbCk7XHJcbiAgICAgIHRoaXMuc2RTZWxlY3Rpb24uZW1pdCh7XHJcbiAgICAgICAgdmFsdWU6IG51bGwsXHJcbiAgICAgICAgaXRlbTogbnVsbFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICNjdXN0b21WYWxpZGF0b3IgPSAoZnVuYzogKHZhbHVlOiBhbnkpID0+IHN0cmluZyB8IFByb21pc2U8c3RyaW5nPik6IEFzeW5jVmFsaWRhdG9yRm4gPT4ge1xyXG4gICAgcmV0dXJuIGFzeW5jIChjOiBBYnN0cmFjdENvbnRyb2wpOiBQcm9taXNlPHsgW2tleTogc3RyaW5nXTogYW55IH0gfCBudWxsPiA9PiB7XHJcbiAgICAgIGNvbnN0IHZhbHVlID0gYy52YWx1ZSB8fCBudWxsO1xyXG4gICAgICBpZiAoZnVuYyAmJiB0eXBlb2YgKGZ1bmMpID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gZnVuYyh2YWx1ZSk7XHJcbiAgICAgICAgaWYgKHJlc3VsdCBpbnN0YW5jZW9mIFByb21pc2UpIHtcclxuICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBhd2FpdCByZXN1bHQ7XHJcbiAgICAgICAgICBpZiAobWVzc2FnZSkge1xyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgIGN1c3RvbVZhbGlkYXRvcjogbWVzc2FnZVxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChyZXN1bHQpIHtcclxuICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGN1c3RvbVZhbGlkYXRvcjogcmVzdWx0XHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH07XHJcbiAgfVxyXG59XHJcbiJdfQ==
402
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJDOi9Vc2Vycy91c2VyL0RvY3VtZW50cy9saWItY29yZS11aS9wcm9qZWN0cy9zZC1jb3JlL3NlbGVjdC8iLCJzb3VyY2VzIjpbInNyYy9saWIvc2VsZWN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQW9DLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2SSxPQUFPLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQTZELE1BQU0sZ0JBQWdCLENBQUM7QUFDNUgsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7QUFHN0IsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFPNUQsTUFBTSxPQUFPLFFBQVE7SUF1SW5CLFlBQ1UsR0FBc0IsRUFDdEIsY0FBZ0M7UUFEaEMsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIsbUJBQWMsR0FBZCxjQUFjLENBQWtCO1FBdkkxQyxnQkFBUSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUM7UUFNbEIsd0JBQW1CLEdBQUcsS0FBSyxDQUFDO1FBSzVCLGdCQUFXLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUNoQyxpQkFBWSxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7UUFnQ2pDLHdCQUFpQjtRQWFqQixRQUFRO1FBQ1IseUJBQXdEO1FBY3hELFFBQVE7UUFDUixpQkFBNEQsRUFBRSxFQUFDO1FBQy9ELHdCQUF1QixFQUFFLEVBQUM7UUFDMUIsbUJBRUksRUFBRSxFQUFDO1FBY1AsZ0JBQWdCO1FBQ2hCLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDaEIsaUJBQVMsR0FB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bEU7YUFBTTtZQUNMLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQy9CO1FBQ0QsNkNBQUEsSUFBSSxFQUFXLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekMsQ0FBQzs7OztZQWhTRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLFdBQVc7Z0JBQ3JCLHNrRkFBc0M7O2FBRXZDOzs7WUFaZ0QsaUJBQWlCO1lBTXpELGdCQUFnQjs7O3FCQVF0QixTQUFTLFNBQUMsUUFBUTttQkFFbEIsS0FBSzttQ0FNTCxLQUFLLFNBQUMscUJBQXFCO21CQW9DM0IsS0FBSzttQkFFTCxLQUFLO29CQVNMLEtBQUs7MEJBQ0wsS0FBSztvQkFJTCxLQUFLO29CQW1CTCxLQUFLO3lCQVVMLEtBQUs7MkJBQ0wsS0FBSzt1QkFTTCxLQUFLO3dCQUlMLEtBQUs7dUJBS0wsS0FBSzt3QkFTTCxLQUFLLFNBQUMsVUFBVTtvQkFHaEIsS0FBSzt3QkFFTCxLQUFLLFNBQUMsVUFBVTt5QkFJaEIsS0FBSyxTQUFDLFdBQVc7MEJBS2pCLE1BQU07dUJBQ04sTUFBTTswQkFDTixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIENoYW5nZURldGVjdG9yUmVmLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5nRm9ybSwgRm9ybUNvbnRyb2wsIFZhbGlkYXRvcnMsIFZhbGlkYXRvckZuLCBBYnN0cmFjdENvbnRyb2wsIEFzeW5jVmFsaWRhdG9yRm4sIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0ICogYXMgdXVpZCBmcm9tICd1dWlkJztcclxuaW1wb3J0IHsgTWF0U2VsZWN0LCBNYXRTZWxlY3RDaGFuZ2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgc3RhcnRXaXRoLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFNkVXRpbGl0eVNlcnZpY2UgfSBmcm9tICdAc2QtYW5ndWxhci9jb3JlL3V0aWxpdHknO1xyXG5pbXBvcnQgeyBNYXRPcHRpb24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlL29wdGlvbic7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc2Qtc2VsZWN0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9zZWxlY3QuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2RTZWxlY3QgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XHJcbiAgQFZpZXdDaGlsZCgnc2VsZWN0Jykgc2VsZWN0OiBNYXRTZWxlY3Q7XHJcbiAgI25hbWUgPSB1dWlkLnY0KCk7XHJcbiAgQElucHV0KCkgc2V0IG5hbWUodmFsOiBzdHJpbmcpIHtcclxuICAgIGlmICh2YWwpIHtcclxuICAgICAgdGhpcy4jbmFtZSA9IHZhbDtcclxuICAgIH1cclxuICB9XHJcbiAgZGlzYWJsZUVycm9yTWVzc2FnZSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgnZGlzYWJsZUVycm9yTWVzc2FnZScpIHNldCBfZGlzYWJsZUVycm9yTWVzc2FnZSh2YWw6IGJvb2xlYW4gfCAnJykge1xyXG4gICAgdGhpcy5kaXNhYmxlRXJyb3JNZXNzYWdlID0gKHZhbCA9PT0gJycpIHx8IHZhbDtcclxuICAgIHZhbCA9ICh2YWwgPT09ICcnKSB8fCB2YWw7XHJcbiAgfVxyXG4gIGZvcm1Db250cm9sID0gbmV3IEZvcm1Db250cm9sKCk7XHJcbiAgaW5wdXRDb250cm9sID0gbmV3IEZvcm1Db250cm9sKCk7XHJcbiAgZ2V0IGRhdGFUeXBlKCk6ICdib29sZWFuJyB8ICdudW1iZXInIHwgJ3N0cmluZycge1xyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy4jbW9kZWwpKSB7XHJcbiAgICAgIGlmICh0aGlzLiNtb2RlbC5sZW5ndGggJiYgdHlwZW9mICh0aGlzLiNtb2RlbFswXSkgPT09ICdudW1iZXInKSB7XHJcbiAgICAgICAgcmV0dXJuICdudW1iZXInO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLiNtb2RlbC5sZW5ndGggJiYgdHlwZW9mICh0aGlzLiNtb2RlbFswXSkgPT09ICdib29sZWFuJykge1xyXG4gICAgICAgIHJldHVybiAnYm9vbGVhbic7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuICdzdHJpbmcnO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKCh0aGlzLiNtb2RlbCAmJiB0eXBlb2YgKHRoaXMuI21vZGVsKSA9PT0gJ251bWJlcicpIHx8IHRoaXMuI21vZGVsID09PSAwKSB7XHJcbiAgICAgICAgcmV0dXJuICdudW1iZXInO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICgodGhpcy4jbW9kZWwgJiYgdHlwZW9mICh0aGlzLiNtb2RlbCkgPT09ICdib29sZWFuJykgfHwgdGhpcy4jbW9kZWwgPT09IGZhbHNlKSB7XHJcbiAgICAgICAgcmV0dXJuICdib29sZWFuJztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuI2N1cnJlbnRJdGVtcz8ubGVuZ3RoKSB7XHJcbiAgICAgIGlmICh0aGlzLnZhbHVlRmllbGQgJiYgdHlwZW9mICh0aGlzLiNjdXJyZW50SXRlbXNbMF1bdGhpcy52YWx1ZUZpZWxkXSkgPT09ICdudW1iZXInKSB7XHJcbiAgICAgICAgcmV0dXJuICdudW1iZXInO1xyXG4gICAgICB9IGVsc2UgaWYgKHRoaXMudmFsdWVGaWVsZCAmJiB0eXBlb2YgKHRoaXMuI2N1cnJlbnRJdGVtc1swXVt0aGlzLnZhbHVlRmllbGRdKSA9PT0gJ2Jvb2xlYW4nKSB7XHJcbiAgICAgICAgcmV0dXJuICdib29sZWFuJztcclxuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgKHRoaXMuI2N1cnJlbnRJdGVtc1swXSkgPT09ICdudW1iZXInKSB7XHJcbiAgICAgICAgcmV0dXJuICdudW1iZXInO1xyXG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiAodGhpcy4jY3VycmVudEl0ZW1zWzBdKSA9PT0gJ2Jvb2xlYW4nKSB7XHJcbiAgICAgICAgcmV0dXJuICdib29sZWFuJztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuICdzdHJpbmcnO1xyXG4gIH1cclxuICBASW5wdXQoKSBzaXplOiAnc20nIHwgJ2xnJztcclxuICAjZm9ybTogRm9ybUdyb3VwO1xyXG4gIEBJbnB1dCgpIHNldCBmb3JtKHZhbDogTmdGb3JtIHwgRm9ybUdyb3VwKSB7XHJcbiAgICBpZiAodmFsKSB7XHJcbiAgICAgIGlmICh2YWwgaW5zdGFuY2VvZiBOZ0Zvcm0pIHtcclxuICAgICAgICB0aGlzLiNmb3JtID0gdmFsLmZvcm07XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy4jZm9ybSA9IHZhbDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmc7XHJcblxyXG4gIC8vIE1vZGVsXHJcbiAgI21vZGVsOiBib29sZWFuIHwgbnVtYmVyIHwgc3RyaW5nIHwgKG51bWJlciB8IHN0cmluZylbXTtcclxuICBASW5wdXQoKSBzZXQgbW9kZWwodmFsdWU6IHVuZGVmaW5lZCB8IGJvb2xlYW4gfCBudW1iZXIgfCBzdHJpbmcgfCAobnVtYmVyIHwgc3RyaW5nKVtdKSB7XHJcbiAgICB0aGlzLiNtb2RlbCA9IHZhbHVlO1xyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XHJcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUodmFsdWUubWFwKHZhbCA9PiAodmFsID8/ICcnKSArICcnKSwge1xyXG4gICAgICAgIGVtaXRFdmVudDogZmFsc2VcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbHVlKCh2YWx1ZSA/PyAnJykgKyAnJywge1xyXG4gICAgICAgIGVtaXRFdmVudDogZmFsc2VcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG4gIC8vIEl0ZW1zXHJcbiAgI2l0ZW1zOiBhbnlbXSB8ICgoc2VhcmNoVGV4dD86IHN0cmluZykgPT4gUHJvbWlzZTxhbnlbXT4pID0gW107XHJcbiAgI2N1cnJlbnRJdGVtczogYW55W10gPSBbXTtcclxuICAjYWxsSXRlbToge1xyXG4gICAgW2tleTogc3RyaW5nXTogYW55XHJcbiAgfSA9IHt9O1xyXG4gIEBJbnB1dCgpIHNldCBpdGVtcyhpdGVtczogdW5kZWZpbmVkIHwgYW55W10gfCAoKHNlYXJjaFRleHQ/OiBzdHJpbmcpID0+IFByb21pc2U8YW55W10+KSkge1xyXG4gICAgaWYgKCFpdGVtcykge1xyXG4gICAgICB0aGlzLiNpdGVtcyA9IFtdO1xyXG4gICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KGl0ZW1zKSkge1xyXG4gICAgICB0aGlzLiNpdGVtcyA9IGl0ZW1zLmZpbHRlcihlID0+IGUgIT09IG51bGwgJiYgZSAhPT0gdW5kZWZpbmVkKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuI2l0ZW1zID0gaXRlbXM7XHJcbiAgICB9XHJcbiAgICB0aGlzLmlucHV0Q29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgfVxyXG4gIEBJbnB1dCgpIHZhbHVlRmllbGQ6IHN0cmluZztcclxuICBASW5wdXQoKSBkaXNwbGF5RmllbGQ6IHN0cmluZztcclxuXHJcbiAgLy8gU2VydmVyIHNlYXJjaFxyXG4gIGxvYWRpbmcgPSBmYWxzZTtcclxuICAjZGVsYXkgPSA1MDA7IC8vIFNhdSBraG/huqNuZyB0aOG7nWkgZ2lhbiBkZWxheSBu4bq/dSBraMO0bmcgY8OzIHRoYXkgxJHhu5VpIHRow6wgdGjDrCBt4bubaSBi4bqvdCDEkeG6p3UgdGjhu7FjIGhp4buHbiBn4buNaSBow6BtXHJcblxyXG4gIC8vIFZhbGlkYXRvclxyXG4gIGlzUmVxdWlyZWQgPSBmYWxzZTtcclxuICAjdmFsaWRhdG9yOiAodmFsdWU6IGFueSkgPT4gc3RyaW5nIHwgUHJvbWlzZTxzdHJpbmc+O1xyXG4gIEBJbnB1dCgpIHNldCByZXF1aXJlZCh2YWw6IGJvb2xlYW4gfCAnJykge1xyXG4gICAgdGhpcy5pc1JlcXVpcmVkID0gKHZhbCA9PT0gJycpIHx8IHZhbDtcclxuICAgIHRoaXMuI3VwZGF0ZVZhbGlkYXRvcigpO1xyXG4gIH1cclxuICBASW5wdXQoKSBzZXQgdmFsaWRhdG9yKHZhbGlkYXRvcjogKHZhbHVlOiBhbnkpID0+IHN0cmluZyB8IFByb21pc2U8c3RyaW5nPikge1xyXG4gICAgdGhpcy4jdmFsaWRhdG9yID0gdmFsaWRhdG9yO1xyXG4gICAgdGhpcy4jdXBkYXRlVmFsaWRhdG9yKCk7XHJcbiAgfVxyXG4gIC8vIE9wdGlvbmFsXHJcbiAgQElucHV0KCkgc2V0IGRpc2FibGVkKHZhbDogYm9vbGVhbiB8ICcnKSB7XHJcbiAgICB2YWwgPSAodmFsID09PSAnJykgfHwgdmFsO1xyXG4gICAgaWYgKHZhbCkge1xyXG4gICAgICB0aGlzLmZvcm1Db250cm9sLmRpc2FibGUoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wuZW5hYmxlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIG11bHRpcGxlID0gZmFsc2U7XHJcbiAgQElucHV0KCdtdWx0aXBsZScpIHNldCBfbXVsdGlwbGUodmFsOiBib29sZWFuIHwgJycpIHtcclxuICAgIHRoaXMubXVsdGlwbGUgPSAodmFsID09PSAnJykgfHwgdmFsO1xyXG4gIH1cclxuICBASW5wdXQoKSBsaW1pdCA9IDEwMDtcclxuICBmaWx0ZXJlZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgnZmlsdGVyZWQnKSBzZXQgX2ZpbHRlcmVkKHZhbDogYm9vbGVhbiB8ICcnKSB7XHJcbiAgICB0aGlzLmZpbHRlcmVkID0gKHZhbCA9PT0gJycpIHx8IHZhbDtcclxuICB9XHJcbiAgc2VsZWN0QWxsID0gZmFsc2U7XHJcbiAgQElucHV0KCdzZWxlY3RBbGwnKSBzZXQgX3NlbGVjdEFsbCh2YWw6IGJvb2xlYW4gfCAnJykge1xyXG4gICAgdGhpcy5zZWxlY3RBbGwgPSAodmFsID09PSAnJykgfHwgdmFsO1xyXG4gIH1cclxuICBmaWx0ZXJlZEl0ZW1zOiBPYnNlcnZhYmxlPGFueVtdPjtcclxuICBhbGxTZWxlY3RlZCA9IGZhbHNlO1xyXG4gIEBPdXRwdXQoKSBtb2RlbENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgc2RDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIHNkU2VsZWN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjx7IHZhbHVlOiBhbnkgfCBhbnlbXSwgaXRlbT86IGFueSwgaXRlbXM/OiBhbnlbXSB9PigpO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZWY6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHJpdmF0ZSB1dGlsaXR5U2VydmljZTogU2RVdGlsaXR5U2VydmljZSkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5maWx0ZXJlZEl0ZW1zID0gdGhpcy5pbnB1dENvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUoXHJcbiAgICAgIHN0YXJ0V2l0aCgnJyksXHJcbiAgICAgIGRlYm91bmNlVGltZSh0eXBlb2YgKHRoaXMuI2l0ZW1zKSA9PT0gJ2Z1bmN0aW9uJyA/IHRoaXMuI2RlbGF5IDogMCksXHJcbiAgICAgIC8vIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksIETDuW5nIHPhur0gZ8OieSByYSBidWcga2hpIGl0ZW1zIGNoYW5nZXNcclxuICAgICAgc3dpdGNoTWFwKGFzeW5jICh2YWw6IHN0cmluZykgPT4ge1xyXG4gICAgICAgIGlmICh0eXBlb2YgKHRoaXMuI2l0ZW1zKSA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICAgICAgY29uc3QgaXRlbXMgPSBhd2FpdCB0aGlzLiNsb2FkSXRlbXModmFsLCB0aGlzLiNpdGVtcyk7XHJcbiAgICAgICAgICB0aGlzLiNjdXJyZW50SXRlbXMgPSBpdGVtcy5maWx0ZXIoKGl0ZW0sIGluZGV4KSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGZvcm1WYWx1ZTogYW55IHwgYW55W10gPSB0aGlzLmZvcm1Db250cm9sLnZhbHVlO1xyXG4gICAgICAgICAgICBsZXQgdmFsdWUgPSBpdGVtPy50b1N0cmluZygpIHx8ICcnO1xyXG4gICAgICAgICAgICBpZiAodGhpcy52YWx1ZUZpZWxkICYmIHRoaXMuZGlzcGxheUZpZWxkKSB7XHJcbiAgICAgICAgICAgICAgdmFsdWUgPSBpdGVtW3RoaXMudmFsdWVGaWVsZF0/LnRvU3RyaW5nKCkgfHwgJyc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIChBcnJheS5pc0FycmF5KGZvcm1WYWx1ZSkgPyBmb3JtVmFsdWUuc29tZShlID0+IGU/LnRvU3RyaW5nKCkgPT09IHZhbHVlKSA6IGZvcm1WYWx1ZT8udG9TdHJpbmcoKSA9PT0gdmFsdWUpXHJcbiAgICAgICAgICAgICAgfHwgaW5kZXggPCB0aGlzLmxpbWl0O1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy4jY3VycmVudEl0ZW1zLm1hcChlID0+IHtcclxuICAgICAgICAgICAgaWYgKHRoaXMudmFsdWVGaWVsZCAmJiB0aGlzLmRpc3BsYXlGaWVsZCkge1xyXG4gICAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICAuLi5lLFxyXG4gICAgICAgICAgICAgICAgW2Ake3RoaXMudmFsdWVGaWVsZH1gXTogZVt0aGlzLnZhbHVlRmllbGRdPy50b1N0cmluZygpXHJcbiAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gZT8udG9TdHJpbmcoKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgLy8gcmV0dXJuIHRoaXMuI2N1cnJlbnRJdGVtcy5tYXAoZSA9PiB7XHJcbiAgICAgICAgICAvLyAgIGlmICh0aGlzLnZhbHVlRmllbGQgJiYgdGhpcy5kaXNwbGF5RmllbGQpIHtcclxuICAgICAgICAgIC8vICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgLy8gICAgICAgLi4uZSxcclxuICAgICAgICAgIC8vICAgICAgIFtgJHt0aGlzLnZhbHVlRmllbGR9YF06IGVbdGhpcy5kaXNwbGF5RmllbGRdPy50b1N0cmluZygpID8/IGVbdGhpcy52YWx1ZUZpZWxkXT8udG9TdHJpbmcoKVxyXG4gICAgICAgICAgLy8gICAgIH07XHJcbiAgICAgICAgICAvLyAgIH1cclxuICAgICAgICAgIC8vICAgcmV0dXJuIGU/LnRvU3RyaW5nKCk7XHJcbiAgICAgICAgICAvLyB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgeyBjaGFuZ2VBbGlhc0xvd2VyQ2FzZSB9ID0gdGhpcy51dGlsaXR5U2VydmljZTtcclxuICAgICAgICB0aGlzLiNjdXJyZW50SXRlbXMgPSB0aGlzLiNpdGVtcy5maWx0ZXIoaXRlbSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBzZWFyY2hUZXh0ID0gY2hhbmdlQWxpYXNMb3dlckNhc2UodmFsKTtcclxuICAgICAgICAgIGNvbnN0IGZvcm1WYWx1ZTogYW55IHwgYW55W10gPSB0aGlzLmZvcm1Db250cm9sLnZhbHVlO1xyXG4gICAgICAgICAgaWYgKHRoaXMudmFsdWVGaWVsZCAmJiB0aGlzLmRpc3BsYXlGaWVsZCkge1xyXG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGl0ZW1bdGhpcy52YWx1ZUZpZWxkXT8udG9TdHJpbmcoKSB8fCAnJztcclxuICAgICAgICAgICAgY29uc3QgZGlzcGxheSA9IGl0ZW1bdGhpcy5kaXNwbGF5RmllbGRdPy50b1N0cmluZygpIHx8ICcnO1xyXG4gICAgICAgICAgICByZXR1cm4gKEFycmF5LmlzQXJyYXkoZm9ybVZhbHVlKSA/IGZvcm1WYWx1ZS5zb21lKGUgPT4gZT8udG9TdHJpbmcoKSA9PT0gdmFsdWUpIDogZm9ybVZhbHVlPy50b1N0cmluZygpID09PSB2YWx1ZSlcclxuICAgICAgICAgICAgICB8fCBjaGFuZ2VBbGlhc0xvd2VyQ2FzZSh2YWx1ZSkuaW5kZXhPZihzZWFyY2hUZXh0KSAhPT0gLTFcclxuICAgICAgICAgICAgICB8fCBjaGFuZ2VBbGlhc0xvd2VyQ2FzZShkaXNwbGF5KS5pbmRleE9mKHNlYXJjaFRleHQpICE9PSAtMTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gaXRlbT8udG9TdHJpbmcoKSB8fCAnJztcclxuICAgICAgICAgICAgcmV0dXJuIChBcnJheS5pc0FycmF5KGZvcm1WYWx1ZSkgPyBmb3JtVmFsdWUuc29tZShlID0+IGU/LnRvU3RyaW5nKCkgPT09IHZhbHVlKSA6IGZvcm1WYWx1ZT8udG9TdHJpbmcoKSA9PT0gdmFsdWUpXHJcbiAgICAgICAgICAgICAgfHwgY2hhbmdlQWxpYXNMb3dlckNhc2UodmFsdWUpLmluZGV4T2Yoc2VhcmNoVGV4dCkgIT09IC0xO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pLmZpbHRlcigoaXRlbSwgaW5kZXgpID0+IHtcclxuICAgICAgICAgIGNvbnN0IGZvcm1WYWx1ZTogYW55IHwgYW55W10gPSB0aGlzLmZvcm1Db250cm9sLnZhbHVlO1xyXG4gICAgICAgICAgbGV0IHZhbHVlID0gaXRlbT8udG9TdHJpbmcoKSB8fCAnJztcclxuICAgICAgICAgIGlmICh0aGlzLnZhbHVlRmllbGQgJiYgdGhpcy5kaXNwbGF5RmllbGQpIHtcclxuICAgICAgICAgICAgdmFsdWUgPSBpdGVtW3RoaXMudmFsdWVGaWVsZF0/LnRvU3RyaW5nKCkgfHwgJyc7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICByZXR1cm4gKEFycmF5LmlzQXJyYXkoZm9ybVZhbHVlKSA/IGZvcm1WYWx1ZS5zb21lKGUgPT4gZT8udG9TdHJpbmcoKSA9PT0gdmFsdWUpIDogZm9ybVZhbHVlPy50b1N0cmluZygpID09PSB2YWx1ZSlcclxuICAgICAgICAgICAgfHwgaW5kZXggPCB0aGlzLmxpbWl0O1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiB0aGlzLiNjdXJyZW50SXRlbXMubWFwKGUgPT4ge1xyXG4gICAgICAgICAgaWYgKHRoaXMudmFsdWVGaWVsZCAmJiB0aGlzLmRpc3BsYXlGaWVsZCkge1xyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgIC4uLmUsXHJcbiAgICAgICAgICAgICAgW2Ake3RoaXMudmFsdWVGaWVsZH1gXTogZVt0aGlzLnZhbHVlRmllbGRdPy50b1N0cmluZygpXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICByZXR1cm4gZT8udG9TdHJpbmcoKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLiNmb3JtPy5hZGRDb250cm9sKHRoaXMuI25hbWUsIHRoaXMuZm9ybUNvbnRyb2wpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLiNmb3JtPy5yZW1vdmVDb250cm9sKHRoaXMuI25hbWUpO1xyXG4gIH1cclxuXHJcbiAgI3VwZGF0ZVZhbGlkYXRvciA9ICgpID0+IHtcclxuICAgIHRoaXMuZm9ybUNvbnRyb2wuY2xlYXJWYWxpZGF0b3JzKCk7XHJcbiAgICB0aGlzLmZvcm1Db250cm9sLmNsZWFyQXN5bmNWYWxpZGF0b3JzKCk7XHJcbiAgICBjb25zdCB2YWxpZGF0b3JzOiBWYWxpZGF0b3JGbltdID0gW107XHJcbiAgICBjb25zdCBhc3luY1ZhbGlkYXRvcnM6IEFzeW5jVmFsaWRhdG9yRm5bXSA9IFtdO1xyXG4gICAgaWYgKHRoaXMuaXNSZXF1aXJlZCkge1xyXG4gICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5yZXF1aXJlZCk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy4jdmFsaWRhdG9yKSB7XHJcbiAgICAgIGFzeW5jVmFsaWRhdG9ycy5wdXNoKHRoaXMuI2N1c3RvbVZhbGlkYXRvcih0aGlzLiN2YWxpZGF0b3IpKTtcclxuICAgIH1cclxuICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsaWRhdG9ycyh2YWxpZGF0b3JzKTtcclxuICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0QXN5bmNWYWxpZGF0b3JzKGFzeW5jVmFsaWRhdG9ycyk7XHJcbiAgICB0aGlzLmZvcm1Db250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICB9XHJcblxyXG4gICNsb2FkSXRlbXMgPSBhc3luYyAoc2VhcmNoVGV4dDogc3RyaW5nLCBpdGVtczogKHNlYXJjaFRleHQ/OiBzdHJpbmcpID0+IFByb21pc2U8YW55W10+KSA9PiB7XHJcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgY29uc3QgcmVzdWx0cyA9IGF3YWl0IGl0ZW1zKHNlYXJjaFRleHQpLmZpbmFsbHkoKCkgPT4gdGhpcy5sb2FkaW5nID0gZmFsc2UpO1xyXG4gICAgaWYgKHRoaXMubXVsdGlwbGUpIHtcclxuICAgICAgbGV0IG9iakl0ZW0gPSB7fTtcclxuICAgICAgaWYgKHRoaXMudmFsdWVGaWVsZCkge1xyXG4gICAgICAgIG9iakl0ZW0gPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmFycmF5VG9PYmplY3QocmVzdWx0cywgdGhpcy52YWx1ZUZpZWxkKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXN1bHRzLmZvckVhY2goaXRlbSA9PiBvYmpJdGVtW2l0ZW0/LnRvU3RyaW5nKCldID0gaXRlbSk7XHJcbiAgICAgIH1cclxuICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLiNhbGxJdGVtLCBvYmpJdGVtKTtcclxuICAgICAgY29uc3QgdmFsdWVzOiAobnVtYmVyIHwgc3RyaW5nKVtdID0gdGhpcy5mb3JtQ29udHJvbC52YWx1ZSB8fCBbXTtcclxuICAgICAgdmFsdWVzLmZvckVhY2godmFsID0+IHtcclxuICAgICAgICBpZiAoIW9iakl0ZW1bdmFsXSkge1xyXG4gICAgICAgICAgaWYgKHRoaXMuI2FsbEl0ZW1bdmFsXSkge1xyXG4gICAgICAgICAgICByZXN1bHRzLnB1c2godGhpcy4jYWxsSXRlbVt2YWxdKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJlc3VsdHMucHVzaCh7XHJcbiAgICAgICAgICAgICAgW3RoaXMudmFsdWVGaWVsZF06IHZhbCxcclxuICAgICAgICAgICAgICBbdGhpcy5kaXNwbGF5RmllbGRdOiB2YWxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgIHJldHVybiByZXN1bHRzO1xyXG4gIH1cclxuXHJcbiAgb25TZWxlY3Rpb25DaGFuZ2UgPSAoY2hhbmdlOiBNYXRTZWxlY3RDaGFuZ2UpID0+IHtcclxuICAgIHRoaXMuYWxsU2VsZWN0ZWQgPSAhdGhpcy5zZWxlY3Qub3B0aW9ucy5zb21lKGUgPT4gIWUuc2VsZWN0ZWQpO1xyXG4gICAgY29uc3QgdmFsdWUgPSBjaGFuZ2U/LnZhbHVlIHx8ICcnO1xyXG4gICAgaWYgKHRoaXMubXVsdGlwbGUpIHtcclxuICAgICAgdGhpcy4jb25DaGFuZ2UodmFsdWUgfHwgW10pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5pbnB1dENvbnRyb2w/LnNldFZhbHVlKCcnKTtcclxuICAgICAgdGhpcy4jb25DaGFuZ2UodmFsdWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25TZWxlY3RBbGwoKSB7XHJcbiAgICBpZiAodGhpcy5hbGxTZWxlY3RlZCkge1xyXG4gICAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbHVlKHRoaXMuc2VsZWN0Lm9wdGlvbnMubWFwKGUgPT4gZS52YWx1ZSkpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWx1ZShbXSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLiNvbkNoYW5nZSh0aGlzLmZvcm1Db250cm9sLnZhbHVlKTtcclxuICB9XHJcblxyXG4gIHJlVmFsaWRhdGUgPSAoKSA9PiB7XHJcbiAgICB0aGlzLmZvcm1Db250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoeyBlbWl0RXZlbnQ6IHRydWUgfSk7XHJcbiAgfVxyXG5cclxuICAjb25DaGFuZ2UgPSAodmFsdWU6IGJvb2xlYW4gfCBudW1iZXIgfCBzdHJpbmcgfCAobnVtYmVyIHwgc3RyaW5nKVtdKSA9PiB7XHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcclxuICAgICAgbGV0IHZhbHMgPSB2YWx1ZTtcclxuICAgICAgaWYgKHRoaXMuZGF0YVR5cGUgPT09ICdudW1iZXInICYmIHZhbHVlLmV2ZXJ5KHZhbCA9PiBOdW1iZXIuaXNOdW1iZXIodmFsKSkpIHtcclxuICAgICAgICB2YWxzID0gdmFsdWUubWFwKGUgPT4gK2UpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMubW9kZWxDaGFuZ2UuZW1pdCh2YWxzKTtcclxuICAgICAgdGhpcy5zZENoYW5nZS5lbWl0KHZhbHMpO1xyXG4gICAgICB0aGlzLnNkU2VsZWN0aW9uLmVtaXQoe1xyXG4gICAgICAgIHZhbHVlOiB2YWxzLFxyXG4gICAgICAgIGl0ZW1zOiB0aGlzLiNjdXJyZW50SXRlbXM/LmZpbHRlcihlID0+IHZhbHMuc29tZShlMSA9PiBlMT8udG9TdHJpbmcoKSA9PT0gZT8uW3RoaXMudmFsdWVGaWVsZF0/LnRvU3RyaW5nKCkpKVxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGxldCB2YWwgPSB2YWx1ZTtcclxuICAgICAgaWYgKHRoaXMuZGF0YVR5cGUgPT09ICdudW1iZXInICYmIE51bWJlci5pc051bWJlcih2YWx1ZSkpIHtcclxuICAgICAgICB2YWwgPSArdmFsdWU7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuZGF0YVR5cGUgPT09ICdib29sZWFuJykge1xyXG4gICAgICAgIHZhbCA9ICEhdmFsdWU7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5tb2RlbENoYW5nZS5lbWl0KHZhbCk7XHJcbiAgICAgIHRoaXMuc2RDaGFuZ2UuZW1pdCh2YWwpO1xyXG4gICAgICB0aGlzLnNkU2VsZWN0aW9uLmVtaXQoe1xyXG4gICAgICAgIHZhbHVlOiB2YWwsXHJcbiAgICAgICAgaXRlbTogdGhpcy4jY3VycmVudEl0ZW1zPy5maW5kKGUgPT4gdmFsPy50b1N0cmluZygpID09PSBlPy5bdGhpcy52YWx1ZUZpZWxkXT8udG9TdHJpbmcoKSlcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjbGVhciA9ICgkZXZlbnQ/OiBhbnkpID0+IHtcclxuICAgICRldmVudD8uc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICBpZiAodGhpcy5tdWx0aXBsZSkge1xyXG4gICAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbHVlKFtdKTtcclxuICAgICAgdGhpcy5tb2RlbENoYW5nZS5lbWl0KFtdKTtcclxuICAgICAgdGhpcy5zZENoYW5nZS5lbWl0KFtdKTtcclxuICAgICAgdGhpcy5zZFNlbGVjdGlvbi5lbWl0KHtcclxuICAgICAgICB2YWx1ZTogW10sXHJcbiAgICAgICAgaXRlbXM6IFtdXHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWx1ZShudWxsKTtcclxuICAgICAgdGhpcy5tb2RlbENoYW5nZS5lbWl0KG51bGwpO1xyXG4gICAgICB0aGlzLnNkQ2hhbmdlLmVtaXQobnVsbCk7XHJcbiAgICAgIHRoaXMuc2RTZWxlY3Rpb24uZW1pdCh7XHJcbiAgICAgICAgdmFsdWU6IG51bGwsXHJcbiAgICAgICAgaXRlbTogbnVsbFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICNjdXN0b21WYWxpZGF0b3IgPSAoZnVuYzogKHZhbHVlOiBhbnkpID0+IHN0cmluZyB8IFByb21pc2U8c3RyaW5nPik6IEFzeW5jVmFsaWRhdG9yRm4gPT4ge1xyXG4gICAgcmV0dXJuIGFzeW5jIChjOiBBYnN0cmFjdENvbnRyb2wpOiBQcm9taXNlPHsgW2tleTogc3RyaW5nXTogYW55IH0gfCBudWxsPiA9PiB7XHJcbiAgICAgIGNvbnN0IHZhbHVlID0gYy52YWx1ZSB8fCBudWxsO1xyXG4gICAgICBpZiAoZnVuYyAmJiB0eXBlb2YgKGZ1bmMpID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gZnVuYyh2YWx1ZSk7XHJcbiAgICAgICAgaWYgKHJlc3VsdCBpbnN0YW5jZW9mIFByb21pc2UpIHtcclxuICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBhd2FpdCByZXN1bHQ7XHJcbiAgICAgICAgICBpZiAobWVzc2FnZSkge1xyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgIGN1c3RvbVZhbGlkYXRvcjogbWVzc2FnZVxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChyZXN1bHQpIHtcclxuICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGN1c3RvbVZhbGlkYXRvcjogcmVzdWx0XHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH07XHJcbiAgfVxyXG59XHJcbiJdfQ==