@sd-angular/core 1.0.75 → 1.0.78
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.
- package/autocomplete/sd-angular-core-autocomplete.metadata.json +1 -1
- package/autocomplete/src/lib/autocomplete.component.d.ts +1 -1
- package/bundles/sd-angular-core-autocomplete.umd.js +8 -11
- package/bundles/sd-angular-core-autocomplete.umd.js.map +1 -1
- package/bundles/sd-angular-core-autocomplete.umd.min.js +1 -1
- package/bundles/sd-angular-core-autocomplete.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-common.umd.js +3 -3
- package/bundles/sd-angular-core-common.umd.js.map +1 -1
- package/bundles/sd-angular-core-common.umd.min.js +1 -1
- package/bundles/sd-angular-core-common.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-date-month.umd.js +2 -1
- package/bundles/sd-angular-core-date-month.umd.js.map +1 -1
- package/bundles/sd-angular-core-date-month.umd.min.js +2 -2
- package/bundles/sd-angular-core-date-month.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-date-time.umd.js +2 -1
- package/bundles/sd-angular-core-date-time.umd.js.map +1 -1
- package/bundles/sd-angular-core-date-time.umd.min.js +1 -1
- package/bundles/sd-angular-core-date-time.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-input-currency.umd.js +2 -1
- package/bundles/sd-angular-core-input-currency.umd.js.map +1 -1
- package/bundles/sd-angular-core-input-currency.umd.min.js +1 -1
- package/bundles/sd-angular-core-input-currency.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-input.umd.js +3 -2
- package/bundles/sd-angular-core-input.umd.js.map +1 -1
- package/bundles/sd-angular-core-input.umd.min.js +1 -1
- package/bundles/sd-angular-core-input.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-select-editor.umd.js +3 -1
- package/bundles/sd-angular-core-select-editor.umd.js.map +1 -1
- package/bundles/sd-angular-core-select-editor.umd.min.js +1 -1
- package/bundles/sd-angular-core-select-editor.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-select.umd.js +2 -1
- package/bundles/sd-angular-core-select.umd.js.map +1 -1
- package/bundles/sd-angular-core-select.umd.min.js +2 -2
- package/bundles/sd-angular-core-select.umd.min.js.map +1 -1
- package/bundles/sd-angular-core-textarea.umd.js +2 -1
- package/bundles/sd-angular-core-textarea.umd.js.map +1 -1
- package/bundles/sd-angular-core-textarea.umd.min.js +1 -1
- package/bundles/sd-angular-core-textarea.umd.min.js.map +1 -1
- package/common/src/lib/models/sd-form-control.d.ts +1 -1
- package/esm2015/autocomplete/src/lib/autocomplete.component.js +11 -14
- package/esm2015/common/src/lib/models/sd-form-control.js +4 -4
- package/esm2015/date-month/src/lib/date-month.component.js +3 -2
- package/esm2015/date-time/src/lib/date-time.component.js +3 -2
- package/esm2015/input/src/lib/input.component.js +4 -3
- package/esm2015/input-currency/src/lib/input-currency.component.js +3 -2
- package/esm2015/select/src/lib/select.component.js +3 -2
- package/esm2015/select-editor/src/lib/select-editor.component.js +4 -2
- package/esm2015/textarea/src/lib/textarea.component.js +3 -2
- package/fesm2015/sd-angular-core-autocomplete.js +10 -13
- package/fesm2015/sd-angular-core-autocomplete.js.map +1 -1
- package/fesm2015/sd-angular-core-common.js +3 -3
- package/fesm2015/sd-angular-core-common.js.map +1 -1
- package/fesm2015/sd-angular-core-date-month.js +2 -1
- package/fesm2015/sd-angular-core-date-month.js.map +1 -1
- package/fesm2015/sd-angular-core-date-time.js +2 -1
- package/fesm2015/sd-angular-core-date-time.js.map +1 -1
- package/fesm2015/sd-angular-core-input-currency.js +2 -1
- package/fesm2015/sd-angular-core-input-currency.js.map +1 -1
- package/fesm2015/sd-angular-core-input.js +3 -2
- package/fesm2015/sd-angular-core-input.js.map +1 -1
- package/fesm2015/sd-angular-core-select-editor.js +3 -1
- package/fesm2015/sd-angular-core-select-editor.js.map +1 -1
- package/fesm2015/sd-angular-core-select.js +2 -1
- package/fesm2015/sd-angular-core-select.js.map +1 -1
- package/fesm2015/sd-angular-core-textarea.js +2 -1
- package/fesm2015/sd-angular-core-textarea.js.map +1 -1
- package/input/sd-angular-core-input.metadata.json +1 -1
- package/package.json +1 -1
- package/{sd-angular-core-1.0.75.tgz → sd-angular-core-1.0.78.tgz} +0 -0
|
@@ -216,7 +216,8 @@ export class SdInput {
|
|
|
216
216
|
this.copyable = (val === '') || val;
|
|
217
217
|
}
|
|
218
218
|
ngOnInit() {
|
|
219
|
-
__classPrivateFieldGet(this, _subscription).add(this.formControl.
|
|
219
|
+
__classPrivateFieldGet(this, _subscription).add(this.formControl.sdChanges.subscribe(() => {
|
|
220
|
+
this.formControl.updateValueAndValidity();
|
|
220
221
|
this.ref.markForCheck();
|
|
221
222
|
}));
|
|
222
223
|
}
|
|
@@ -245,7 +246,7 @@ _name = new WeakMap(), _form = new WeakMap(), _blurOnEnter_1 = new WeakMap(), _m
|
|
|
245
246
|
SdInput.decorators = [
|
|
246
247
|
{ type: Component, args: [{
|
|
247
248
|
selector: 'sd-input',
|
|
248
|
-
template: "<div class=\"d-flex align-items-center\" [class.sd-view]=\"sdView?.templateRef\" [class.c-focused]=\"isFocused\"\r\n [class.c-disabled]=\"formControl.disabled\" (click)=\"onClick()\">\r\n <ng-container *ngIf=\"sdView?.templateRef && !isFocused; else default\">\r\n <ng-container *ngTemplateOutlet=\"sdView.templateRef;context: { value: formControl.value }\">\r\n </ng-container>\r\n </ng-container>\r\n <ng-template #default>\r\n <mat-form-field class=\"sd-md\"\r\n [ngClass]=\"{'sd-form-tooltip':tooltip, 'sd-sm': size === 'sm', 'no-padding-wrapper': disableErrorMessage}\"\r\n appearance=\"outline\">\r\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\r\n <input [id]=\"id\" [formControl]=\"formControl\" [type]=\"type\" #control matInput [placeholder]=\"placeholder || label\"\r\n (keyup.enter)=\"onKeyupEnter()\" (focus)=\"onFocus()\" (blur)=\"onBlur()\" [required]=\"isRequired\"\r\n [readonly]=\"isReadonly\" [autocomplete]=\"id\" autocorrect=\"off\">\r\n <button #btnCopy *ngIf=\"copyable\" matSuffix mat-flat-button aria-label=\"Clear\" class=\"btn-copy\"\r\n (click)=\"copyText()\">\r\n Copy\r\n </button>\r\n <span class=\"mr-1\" *ngIf=\"maxlength\" matSuffix>{{formControl.value?.length || 0}}/{{maxlength}}</span>\r\n <ng-container *ngIf=\"sdInputSuffix?.templateRef\" matSuffix>\r\n <ng-container *ngTemplateOutlet=\"sdInputSuffix.templateRef\">\r\n </ng-container>\r\n </ng-container>\r\n <mat-icon *ngIf=\"!hideIcon && sdClickIcon?.observers?.length\" (click)=\"onClickIcon($event)\"\r\n class=\"pointer sd-suffix-icon\" matSuffix>\r\n {{icon}}\r\n </mat-icon>\r\n <mat-error *ngIf=\"formControl.errors?.required
|
|
249
|
+
template: "<div class=\"d-flex align-items-center\" [class.sd-view]=\"sdView?.templateRef\" [class.c-focused]=\"isFocused\"\r\n [class.c-disabled]=\"formControl.disabled\" (click)=\"onClick()\">\r\n <ng-container *ngIf=\"sdView?.templateRef && !isFocused; else default\">\r\n <ng-container *ngTemplateOutlet=\"sdView.templateRef;context: { value: formControl.value }\">\r\n </ng-container>\r\n </ng-container>\r\n <ng-template #default>\r\n <mat-form-field class=\"sd-md\"\r\n [ngClass]=\"{'sd-form-tooltip':tooltip, 'sd-sm': size === 'sm', 'no-padding-wrapper': disableErrorMessage}\"\r\n appearance=\"outline\">\r\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\r\n <input [id]=\"id\" [formControl]=\"formControl\" [type]=\"type\" #control matInput [placeholder]=\"placeholder || label\"\r\n (keyup.enter)=\"onKeyupEnter()\" (focus)=\"onFocus()\" (blur)=\"onBlur()\" [required]=\"isRequired\"\r\n [readonly]=\"isReadonly\" [autocomplete]=\"id\" autocorrect=\"off\">\r\n <button #btnCopy *ngIf=\"copyable\" matSuffix mat-flat-button aria-label=\"Clear\" class=\"btn-copy\"\r\n (click)=\"copyText()\">\r\n Copy\r\n </button>\r\n <span class=\"mr-1\" *ngIf=\"maxlength\" matSuffix>{{formControl.value?.length || 0}}/{{maxlength}}</span>\r\n <ng-container *ngIf=\"sdInputSuffix?.templateRef\" matSuffix>\r\n <ng-container *ngTemplateOutlet=\"sdInputSuffix.templateRef\">\r\n </ng-container>\r\n </ng-container>\r\n <mat-icon *ngIf=\"!hideIcon && sdClickIcon?.observers?.length\" (click)=\"onClickIcon($event)\"\r\n class=\"pointer sd-suffix-icon\" matSuffix>\r\n {{icon}}\r\n </mat-icon>\r\n <ng-container *ngIf=\"!disableErrorMessage && formControl.touched\">\r\n <mat-error *ngIf=\"formControl.errors?.required\">\r\n {{'This field is required' | sdTranslate}}\r\n </mat-error>\r\n <mat-error *ngIf=\"formControl.errors?.maxlength\">\r\n {{'Max length' | sdTranslate}} <strong>{{maxlength}}</strong>\r\n </mat-error>\r\n <mat-error *ngIf=\"formControl.errors?.pattern\">\r\n {{'Pattern error' | sdTranslate}}\r\n </mat-error>\r\n <mat-error *ngIf=\"formControl.errors?.customValidator\">\r\n <strong>{{formControl.errors?.customValidator}}</strong>\r\n </mat-error>\r\n </ng-container>\r\n </mat-form-field>\r\n <div *ngIf=\"tooltip\" class=\"sd-tooltip\">\r\n <mat-icon (click)=\"sdTooltip.toggle()\" [matTooltip]=\"formControl.value | sdInputTooltipPipe:tooltip\" matSuffix\r\n #sdTooltip=\"matTooltip\">info</mat-icon>\r\n </div>\r\n </ng-template>\r\n</div>",
|
|
249
250
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
250
251
|
styles: [":host ::ng-deep .mat-form-field.sd-form-tooltip{width:calc(100% - 30px)}: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}.sd-view:not(.c-focused):not(.c-disabled):hover{background-color:#ebecf0}.sd-tooltip{display:inline-block;margin:auto;text-align:center;width:30px}:host{display:block;padding-top:5px}.sd-md:hover .btn-copy{visibility:visible}.btn-copy{background:#e9e9e9!important;font-size:12px;line-height:26px!important;margin-bottom:3px;visibility:hidden}"]
|
|
251
252
|
},] }
|
|
@@ -286,4 +287,4 @@ SdInput.propDecorators = {
|
|
|
286
287
|
btnCopy: [{ type: ViewChild, args: ['btnCopy', { read: ElementRef },] }],
|
|
287
288
|
_copyable: [{ type: Input, args: ['copyable',] }]
|
|
288
289
|
};
|
|
289
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IkM6L1VzZXJzL25naGlhdHQxNV9vbmVtb3VudC9Eb2N1bWVudHMvbGliLWNvcmUtdWkvcHJvamVjdHMvc2QtY29yZS9pbnB1dC8iLCJzb3VyY2VzIjpbInNyYy9saWIvaW5wdXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsU0FBUyxFQUNULE1BQU0sRUFDTixZQUFZLEVBQ1osaUJBQWlCLEVBR2pCLFVBQVUsRUFFVixZQUFZLEVBQ1osdUJBQXVCLEVBRXhCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBbUIsTUFBTSxFQUFlLFVBQVUsRUFBK0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvRyxPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFPNUQsTUFBTSxPQUFPLE9BQU87SUEyR2xCLFlBQ1MsR0FBc0IsRUFDckIsY0FBZ0M7UUFEakMsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDckIsbUJBQWMsR0FBZCxjQUFjLENBQWtCO1FBNUcxQyxPQUFFLEdBQUcsSUFBSSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQztRQUNyQixnQkFBUSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUM7UUFPbEIsd0JBQWlCO1FBWVIsU0FBSSxHQUE2QyxN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WUFDZCxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDO1lBQzlDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN0RCxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDWCxDQUFDOzs7O1lBaFFGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsVUFBVTtnQkFDcEIsMG5GQUFxQztnQkFFckMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07O2FBQ2hEOzs7WUF0QkMsaUJBQWlCO1lBZ0JWLGdCQUFnQjs7O21CQVV0QixLQUFLO21CQUtMLEtBQUs7bUJBRUwsS0FBSztvQkFTTCxLQUFLOzBCQUNMLEtBQUs7bUJBQ0wsS0FBSzttQ0FFTCxLQUFLLFNBQUMscUJBQXFCOzJCQUkzQixLQUFLLFNBQUMsYUFBYTtvQkFJbkIsS0FBSzswQkFRTCxNQUFNO3VCQUlOLEtBQUs7dUJBTUwsS0FBSzt5QkFLTCxLQUFLLFNBQUMsV0FBVzt5QkFLakIsS0FBSyxTQUFDLFdBQVc7c0JBS2pCLEtBQUs7d0JBS0wsS0FBSzt1QkFNTCxLQUFLO21CQVFMLEtBQUs7d0JBRUwsS0FBSyxTQUFDLFVBQVU7MEJBSWhCLE1BQU07c0JBQ04sS0FBSzt1QkFDTCxNQUFNO3NCQUNOLE1BQU07K0JBQ04sTUFBTTt5QkFDTixNQUFNO3NCQUVOLFNBQVMsU0FBQyxTQUFTOzRCQUNuQixZQUFZLFNBQUMsc0JBQXNCO3FCQUduQyxZQUFZLFNBQUMsa0JBQWtCO3NCQUUvQixTQUFTLFNBQUMsU0FBUyxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTt3QkFFekMsS0FBSyxTQUFDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBJbnB1dCxcclxuICBWaWV3Q2hpbGQsXHJcbiAgT3V0cHV0LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBPbkRlc3Ryb3ksXHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBFbGVtZW50UmVmLFxyXG4gIE9uSW5pdCxcclxuICBDb250ZW50Q2hpbGQsXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgSG9zdExpc3RlbmVyXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgTmdGb3JtLCBWYWxpZGF0b3JGbiwgVmFsaWRhdG9ycywgQXN5bmNWYWxpZGF0b3JGbiwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgKiBhcyB1dWlkIGZyb20gJ3V1aWQnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBTZElucHV0U3VmZml4RGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2lucHV0LXN1ZmZpeC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBTZEZvcm1Db250cm9sIH0gZnJvbSAnQHNkLWFuZ3VsYXIvY29yZS9jb21tb24nO1xyXG5pbXBvcnQgeyBTZFZpZXdEZWZEaXJlY3RpdmUgfSBmcm9tICdAc2QtYW5ndWxhci9jb3JlL2NvbW1vbic7XHJcbmltcG9ydCB7IFNkVXRpbGl0eVNlcnZpY2UgfSBmcm9tICdAc2QtYW5ndWxhci9jb3JlL3V0aWxpdHknO1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NkLWlucHV0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2lucHV0LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIFNkSW5wdXQgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgaWQgPSBgSSR7dXVpZC52NCgpfWA7XHJcbiAgI25hbWUgPSB1dWlkLnY0KCk7XHJcbiAgQElucHV0KCkgc2V0IG5hbWUodmFsOiBzdHJpbmcpIHtcclxuICAgIGlmICh2YWwpIHtcclxuICAgICAgdGhpcy4jbmFtZSA9IHZhbDtcclxuICAgIH1cclxuICB9XHJcbiAgQElucHV0KCkgc2l6ZTogJ3NtJyB8ICdsZyc7XHJcbiAgI2Zvcm06IEZvcm1Hcm91cDtcclxuICBASW5wdXQoKSBzZXQgZm9ybSh2YWw6IE5nRm9ybSB8IEZvcm1Hcm91cCkge1xyXG4gICAgaWYgKHZhbCkge1xyXG4gICAgICBpZiAodmFsIGluc3RhbmNlb2YgTmdGb3JtKSB7XHJcbiAgICAgICAgdGhpcy4jZm9ybSA9IHZhbC5mb3JtO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuI2Zvcm0gPSB2YWw7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZztcclxuICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHR5cGU6ICd0ZXh0JyB8ICdudW1iZXInIHwgJ3Bhc3N3b3JkJyB8ICdlbWFpbCcgPSAndGV4dCc7XHJcbiAgZGlzYWJsZUVycm9yTWVzc2FnZSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgnZGlzYWJsZUVycm9yTWVzc2FnZScpIHNldCBfZGlzYWJsZUVycm9yTWVzc2FnZSh2YWw6IGJvb2xlYW4gfCAnJykge1xyXG4gICAgdGhpcy5kaXNhYmxlRXJyb3JNZXNzYWdlID0gKHZhbCA9PT0gJycpIHx8IHZhbDtcclxuICB9XHJcbiAgI2JsdXJPbkVudGVyID0gZmFsc2U7XHJcbiAgQElucHV0KCdibHVyT25FbnRlcicpIHNldCBfYmx1ck9uRW50ZXIodmFsOiBib29sZWFuIHwgJycpIHtcclxuICAgIHRoaXMuI2JsdXJPbkVudGVyID0gKHZhbCA9PT0gJycpIHx8IHZhbDtcclxuICB9XHJcbiAgI21vZGVsOiBhbnk7XHJcbiAgQElucHV0KCkgc2V0IG1vZGVsKHZhbHVlOiBhbnkpIHtcclxuICAgIGlmICh0aGlzLiNtb2RlbCAhPT0gdmFsdWUpIHtcclxuICAgICAgdGhpcy4jbW9kZWwgPSB2YWx1ZTtcclxuICAgICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWx1ZSh2YWx1ZSwge1xyXG4gICAgICAgIGVtaXRFdmVudDogZmFsc2VcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIEBPdXRwdXQoKSBtb2RlbENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgLy8gVmFsaWRhdG9yXHJcbiAgaXNSZXF1aXJlZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNldCByZXF1aXJlZCh2YWw6IGJvb2xlYW4gfCAnJykge1xyXG4gICAgdGhpcy5pc1JlcXVpcmVkID0gKHZhbCA9PT0gJycpIHx8IHZhbDtcclxuICAgIHRoaXMuI3VwZGF0ZVZhbGlkYXRvcigpO1xyXG4gIH1cclxuXHJcbiAgaXNSZWFkb25seSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNldCByZWFkb25seSh2YWw6IGJvb2xlYW4gfCAnJykge1xyXG4gICAgdGhpcy5pc1JlYWRvbmx5ID0gKHZhbCA9PT0gJycpIHx8IHZhbDtcclxuICB9XHJcblxyXG4gIG1pbmxlbmd0aDogbnVtYmVyO1xyXG4gIEBJbnB1dCgnbWlubGVuZ3RoJykgc2V0IHBNaW5sZW5ndGgodmFsOiBudW1iZXIpIHtcclxuICAgIHRoaXMubWlubGVuZ3RoID0gK3ZhbDtcclxuICAgIHRoaXMuI3VwZGF0ZVZhbGlkYXRvcigpO1xyXG4gIH1cclxuICBtYXhsZW5ndGg6IG51bWJlcjtcclxuICBASW5wdXQoJ21heGxlbmd0aCcpIHNldCBwTWF4bGVuZ3RoKHZhbDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLm1heGxlbmd0aCA9ICt2YWw7XHJcbiAgICB0aGlzLiN1cGRhdGVWYWxpZGF0b3IoKTtcclxuICB9XHJcbiAgI3BhdHRlcm46IHN0cmluZztcclxuICBASW5wdXQoKSBzZXQgcGF0dGVybih2YWw6IHN0cmluZykge1xyXG4gICAgdGhpcy4jcGF0dGVybiA9IHZhbDtcclxuICAgIHRoaXMuI3VwZGF0ZVZhbGlkYXRvcigpO1xyXG4gIH1cclxuICAjdmFsaWRhdG9yOiAodmFsdWU6IGFueSkgPT4gc3RyaW5nIHwgUHJvbWlzZTxzdHJpbmc+O1xyXG4gIEBJbnB1dCgpIHNldCB2YWxpZGF0b3IodmFsaWRhdG9yOiAodmFsdWU6IGFueSkgPT4gc3RyaW5nIHwgUHJvbWlzZTxzdHJpbmc+KSB7XHJcbiAgICB0aGlzLiN2YWxpZGF0b3IgPSB2YWxpZGF0b3I7XHJcbiAgICB0aGlzLiN1cGRhdGVWYWxpZGF0b3IoKTtcclxuICB9XHJcblxyXG4gIC8vIE9wdGlvbmFsXHJcbiAgQElucHV0KCkgc2V0IGRpc2FibGVkKHZhbDogYm9vbGVhbiB8ICcnKSB7XHJcbiAgICB2YWwgPSAodmFsID09PSAnJykgfHwgdmFsO1xyXG4gICAgaWYgKHZhbCkge1xyXG4gICAgICB0aGlzLmZvcm1Db250cm9sLmRpc2FibGUoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wuZW5hYmxlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIEBJbnB1dCgpIGljb24gPSAnc2VhcmNoJztcclxuICBoaWRlSWNvbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgnaGlkZUljb24nKSBzZXQgX2hpZGVJY29uKHZhbDogYm9vbGVhbiB8ICcnKSB7XHJcbiAgICB0aGlzLmhpZGVJY29uID0gKHZhbCA9PT0gJycpIHx8IHZhbDtcclxuICAgIHZhbCA9ICh2YWwgPT09ICcnKSB8fCB2YWw7XHJcbiAgfVxyXG4gIEBPdXRwdXQoKSBzZENsaWNrSWNvbiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBJbnB1dCgpIHRvb2x0aXA6IHN0cmluZyB8ICgoaW5wdXRWYWx1ZTogc3RyaW5nKSA9PiBzdHJpbmcpO1xyXG4gIEBPdXRwdXQoKSBzZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBPdXRwdXQoKSBzZEZvY3VzID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQE91dHB1dCgpIHNkRm9jdXNGb3JjZUJsdXIgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KCkga2V5dXBFbnRlciA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQFZpZXdDaGlsZCgnY29udHJvbCcpIGNvbnRyb2w6IEVsZW1lbnRSZWY7XHJcbiAgQENvbnRlbnRDaGlsZChTZElucHV0U3VmZml4RGlyZWN0aXZlKSBzZElucHV0U3VmZml4OiBTZElucHV0U3VmZml4RGlyZWN0aXZlO1xyXG4gIGZvcm1Db250cm9sID0gbmV3IFNkRm9ybUNvbnRyb2woKTtcclxuICAjc3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xyXG4gIEBDb250ZW50Q2hpbGQoU2RWaWV3RGVmRGlyZWN0aXZlKSBzZFZpZXc6IFNkVmlld0RlZkRpcmVjdGl2ZTtcclxuICBpc0ZvY3VzZWQgPSBmYWxzZTtcclxuICBAVmlld0NoaWxkKCdidG5Db3B5JywgeyByZWFkOiBFbGVtZW50UmVmIH0pIGJ0bkNvcHk6IEVsZW1lbnRSZWY7XHJcbiAgY29weWFibGUgPSBmYWxzZTtcclxuICBASW5wdXQoJ2NvcHlhYmxlJykgc2V0IF9jb3B5YWJsZSh2YWw6IGJvb2xlYW4gfCAnJykge1xyXG4gICAgdGhpcy5jb3B5YWJsZSA9ICh2YWwgPT09ICcnKSB8fCB2YWw7XHJcbiAgfVxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIHJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIHV0aWxpdHlTZXJ2aWNlOiBTZFV0aWxpdHlTZXJ2aWNlKSB7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuI3N1YnNjcmlwdGlvbi5hZGQodGhpcy5mb3JtQ29udHJvbC5jaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIHRoaXMucmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgfSkpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy4jc3Vic2NyaXB0aW9uLmFkZCh0aGlzLmZvcm1Db250cm9sLnZhbHVlQ2hhbmdlcy5waXBlKGRlYm91bmNlVGltZSgyMDApKS5zdWJzY3JpYmUodGhpcy4jb25DaGFuZ2UpKTtcclxuICAgIHRoaXMuI2Zvcm0/LmFkZENvbnRyb2wodGhpcy4jbmFtZSwgdGhpcy5mb3JtQ29udHJvbCk7XHJcbiAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuI2Zvcm0/LnJlbW92ZUNvbnRyb2wodGhpcy4jbmFtZSk7XHJcbiAgICB0aGlzLiNzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIHJlVmFsaWRhdGUgPSAoKSA9PiB7XHJcbiAgICB0aGlzLmZvcm1Db250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICB9XHJcblxyXG4gICN1cGRhdGVWYWxpZGF0b3IgPSAoKSA9PiB7XHJcbiAgICB0aGlzLmZvcm1Db250cm9sLmNsZWFyVmFsaWRhdG9ycygpO1xyXG4gICAgdGhpcy5mb3JtQ29udHJvbC5jbGVhckFzeW5jVmFsaWRhdG9ycygpO1xyXG4gICAgY29uc3QgdmFsaWRhdG9yczogVmFsaWRhdG9yRm5bXSA9IFtdO1xyXG4gICAgY29uc3QgYXN5bmNWYWxpZGF0b3JzOiBBc3luY1ZhbGlkYXRvckZuW10gPSBbXTtcclxuICAgIGlmICh0aGlzLmlzUmVxdWlyZWQpIHtcclxuICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMubWlubGVuZ3RoID4gMCkge1xyXG4gICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5taW5MZW5ndGgodGhpcy5taW5sZW5ndGgpKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLm1heGxlbmd0aCA+IDApIHtcclxuICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMubWF4TGVuZ3RoKHRoaXMubWF4bGVuZ3RoKSk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy4jcGF0dGVybikge1xyXG4gICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5wYXR0ZXJuKHRoaXMuI3BhdHRlcm4pKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLiN2YWxpZGF0b3IpIHtcclxuICAgICAgYXN5bmNWYWxpZGF0b3JzLnB1c2godGhpcy4jY3VzdG9tVmFsaWRhdG9yKHRoaXMuI3ZhbGlkYXRvcikpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWxpZGF0b3JzKHZhbGlkYXRvcnMpO1xyXG4gICAgdGhpcy5mb3JtQ29udHJvbC5zZXRBc3luY1ZhbGlkYXRvcnMoYXN5bmNWYWxpZGF0b3JzKTtcclxuICAgIHRoaXMuZm9ybUNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gIH1cclxuXHJcbiAgI29uQ2hhbmdlID0gKHZhbHVlOiBhbnkpID0+IHtcclxuICAgIHRoaXMubW9kZWxDaGFuZ2UuZW1pdCh2YWx1ZSk7XHJcbiAgICB0aGlzLnNkQ2hhbmdlLmVtaXQodmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgb25LZXl1cEVudGVyID0gKCkgPT4ge1xyXG4gICAgY29uc3QgdmFsOiBzdHJpbmcgPSAodGhpcy5mb3JtQ29udHJvbC52YWx1ZSA/PyAnJykudG9TdHJpbmcoKTtcclxuICAgIGlmICh2YWwubGVuZ3RoID4gdmFsLnRyaW0oKS5sZW5ndGgpIHtcclxuICAgICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWx1ZSh2YWwudHJpbSgpKTtcclxuICAgIH1cclxuICAgIHRoaXMua2V5dXBFbnRlci5lbWl0KHRoaXMuZm9ybUNvbnRyb2wudmFsdWUpO1xyXG4gICAgaWYgKHRoaXMuI2JsdXJPbkVudGVyKSB7XHJcbiAgICAgIHRoaXMuYmx1cigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25DbGlja0ljb24gPSAoZXZlbnQ6IEV2ZW50KSA9PiB7XHJcbiAgICBldmVudD8ucHJldmVudERlZmF1bHQoKTtcclxuICAgIGV2ZW50Py5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIHRoaXMuc2RDbGlja0ljb24uZW1pdCh0aGlzLmZvcm1Db250cm9sLnZhbHVlKTtcclxuICB9XHJcblxyXG4gIG9uRm9jdXMgPSAoKSA9PiB7XHJcbiAgICB0aGlzLmlzRm9jdXNlZCA9IHRydWU7XHJcbiAgICB0aGlzLnNkRm9jdXMuZW1pdCgpO1xyXG4gICAgaWYgKHRoaXMuc2RGb2N1c0ZvcmNlQmx1ci5vYnNlcnZlcnM/Lmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5ibHVyKCk7XHJcbiAgICAgIHRoaXMuc2RGb2N1c0ZvcmNlQmx1ci5lbWl0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkJsdXIgPSAoKSA9PiB7XHJcbiAgICB0aGlzLmlzRm9jdXNlZCA9IGZhbHNlO1xyXG4gICAgY29uc3QgdmFsOiBzdHJpbmcgPSAodGhpcy5mb3JtQ29udHJvbC52YWx1ZSA/PyAnJykudG9TdHJpbmcoKTtcclxuICAgIGlmICh2YWwubGVuZ3RoID4gdmFsLnRyaW0oKS5sZW5ndGgpIHtcclxuICAgICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWx1ZSh2YWwudHJpbSgpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uQ2xpY2sgPSAoKSA9PiB7XHJcbiAgICBpZiAodGhpcy5zZFZpZXc/LnRlbXBsYXRlUmVmKSB7XHJcbiAgICAgIGlmICghdGhpcy5mb3JtQ29udHJvbC5kaXNhYmxlZCAmJiAhdGhpcy5pc0ZvY3VzZWQpIHtcclxuICAgICAgICB0aGlzLmZvY3VzKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGJsdXIgPSAoKSA9PiB7XHJcbiAgICB0aGlzLmlzRm9jdXNlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5jb250cm9sPy5uYXRpdmVFbGVtZW50Py5ibHVyKCk7XHJcbiAgfVxyXG5cclxuICBmb2N1cyA9ICgpID0+IHtcclxuICAgIHRoaXMuaXNGb2N1c2VkID0gdHJ1ZTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLmNvbnRyb2w/Lm5hdGl2ZUVsZW1lbnQ/LmZvY3VzKCk7XHJcbiAgICB9LCAxMDApO1xyXG4gIH1cclxuXHJcbiAgI2N1c3RvbVZhbGlkYXRvciA9IChmdW5jOiAodmFsdWU6IGFueSkgPT4gc3RyaW5nIHwgUHJvbWlzZTxzdHJpbmc+KTogQXN5bmNWYWxpZGF0b3JGbiA9PiB7XHJcbiAgICByZXR1cm4gYXN5bmMgKGM6IEFic3RyYWN0Q29udHJvbCk6IFByb21pc2U8eyBba2V5OiBzdHJpbmddOiBhbnkgfSB8IG51bGw+ID0+IHtcclxuICAgICAgY29uc3QgdmFsdWUgPSBjLnZhbHVlIHx8IG51bGw7XHJcbiAgICAgIGlmIChmdW5jICYmIHR5cGVvZiAoZnVuYykgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICBjb25zdCByZXN1bHQgPSBmdW5jKHZhbHVlKTtcclxuICAgICAgICBpZiAocmVzdWx0IGluc3RhbmNlb2YgUHJvbWlzZSkge1xyXG4gICAgICAgICAgY29uc3QgbWVzc2FnZSA9IGF3YWl0IHJlc3VsdDtcclxuICAgICAgICAgIGlmIChtZXNzYWdlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgY3VzdG9tVmFsaWRhdG9yOiBtZXNzYWdlXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHJlc3VsdCkge1xyXG4gICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgY3VzdG9tVmFsaWRhdG9yOiByZXN1bHRcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIGNvcHlUZXh0KCkge1xyXG4gICAgdGhpcy51dGlsaXR5U2VydmljZS5jb3B5VG9DbGlwYm9hcmQodGhpcy4jbW9kZWwpO1xyXG4gICAgdGhpcy5idG5Db3B5Lm5hdGl2ZUVsZW1lbnQuaW5uZXJUZXh0ID0gJ0NvcGllZCc7XHJcbiAgICB0aGlzLmJ0bkNvcHkubmF0aXZlRWxlbWVudC5zZXRBdHRyaWJ1dGUoJ3N0eWxlJywgJ2NvbG9yOiAjNGNhZjUwOycpO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuYnRuQ29weS5uYXRpdmVFbGVtZW50LmlubmVyVGV4dCA9ICdDb3B5JztcclxuICAgICAgdGhpcy5idG5Db3B5Lm5hdGl2ZUVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKCdzdHlsZScpO1xyXG4gICAgfSwgMjAwMCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
290
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IkM6L1VzZXJzL25naGlhdHQxNV9vbmVtb3VudC9Eb2N1bWVudHMvbGliLWNvcmUtdWkvcHJvamVjdHMvc2QtY29yZS9pbnB1dC8iLCJzb3VyY2VzIjpbInNyYy9saWIvaW5wdXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsU0FBUyxFQUNULE1BQU0sRUFDTixZQUFZLEVBQ1osaUJBQWlCLEVBR2pCLFVBQVUsRUFFVixZQUFZLEVBQ1osdUJBQXVCLEVBRXhCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBbUIsTUFBTSxFQUFlLFVBQVUsRUFBK0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvRyxPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFPNUQsTUFBTSxPQUFPLE9BQU87SUEyR2xCLFlBQ1MsR0FBc0IsRUFDckIsY0FBZ0M7UUFEakMsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDckIsbUJBQWMsR0FBZCxjQUFjLENBQWtCO1FBNUcxQyxPQUFFLEdBQUcsSUFBSSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQztRQUNyQixnQkFBUSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUM7UUFPbEIsd0JBQWlCO1FBWVIsU0FBSSxHQUE2QyxN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aUJBQWlCLENBQUMsQ0FBQztRQUNwRSxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQztZQUM5QyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdEQsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ1gsQ0FBQzs7OztZQWpRRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLFVBQVU7Z0JBQ3BCLHlwRkFBcUM7Z0JBRXJDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNOzthQUNoRDs7O1lBdEJDLGlCQUFpQjtZQWdCVixnQkFBZ0I7OzttQkFVdEIsS0FBSzttQkFLTCxLQUFLO21CQUVMLEtBQUs7b0JBU0wsS0FBSzswQkFDTCxLQUFLO21CQUNMLEtBQUs7bUNBRUwsS0FBSyxTQUFDLHFCQUFxQjsyQkFJM0IsS0FBSyxTQUFDLGFBQWE7b0JBSW5CLEtBQUs7MEJBUUwsTUFBTTt1QkFJTixLQUFLO3VCQU1MLEtBQUs7eUJBS0wsS0FBSyxTQUFDLFdBQVc7eUJBS2pCLEtBQUssU0FBQyxXQUFXO3NCQUtqQixLQUFLO3dCQUtMLEtBQUs7dUJBTUwsS0FBSzttQkFRTCxLQUFLO3dCQUVMLEtBQUssU0FBQyxVQUFVOzBCQUloQixNQUFNO3NCQUNOLEtBQUs7dUJBQ0wsTUFBTTtzQkFDTixNQUFNOytCQUNOLE1BQU07eUJBQ04sTUFBTTtzQkFFTixTQUFTLFNBQUMsU0FBUzs0QkFDbkIsWUFBWSxTQUFDLHNCQUFzQjtxQkFHbkMsWUFBWSxTQUFDLGtCQUFrQjtzQkFFL0IsU0FBUyxTQUFDLFNBQVMsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7d0JBRXpDLEtBQUssU0FBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgSW5wdXQsXHJcbiAgVmlld0NoaWxkLFxyXG4gIE91dHB1dCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgT25EZXN0cm95LFxyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgRWxlbWVudFJlZixcclxuICBPbkluaXQsXHJcbiAgQ29udGVudENoaWxkLFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIEhvc3RMaXN0ZW5lclxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIE5nRm9ybSwgVmFsaWRhdG9yRm4sIFZhbGlkYXRvcnMsIEFzeW5jVmFsaWRhdG9yRm4sIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0ICogYXMgdXVpZCBmcm9tICd1dWlkJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgU2RJbnB1dFN1ZmZpeERpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9pbnB1dC1zdWZmaXguZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgU2RGb3JtQ29udHJvbCB9IGZyb20gJ0BzZC1hbmd1bGFyL2NvcmUvY29tbW9uJztcclxuaW1wb3J0IHsgU2RWaWV3RGVmRGlyZWN0aXZlIH0gZnJvbSAnQHNkLWFuZ3VsYXIvY29yZS9jb21tb24nO1xyXG5pbXBvcnQgeyBTZFV0aWxpdHlTZXJ2aWNlIH0gZnJvbSAnQHNkLWFuZ3VsYXIvY29yZS91dGlsaXR5JztcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzZC1pbnB1dCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9pbnB1dC5jb21wb25lbnQuc2NzcyddLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZElucHV0IGltcGxlbWVudHMgT25EZXN0cm95LCBPbkluaXQsIEFmdGVyVmlld0luaXQge1xyXG4gIGlkID0gYEkke3V1aWQudjQoKX1gO1xyXG4gICNuYW1lID0gdXVpZC52NCgpO1xyXG4gIEBJbnB1dCgpIHNldCBuYW1lKHZhbDogc3RyaW5nKSB7XHJcbiAgICBpZiAodmFsKSB7XHJcbiAgICAgIHRoaXMuI25hbWUgPSB2YWw7XHJcbiAgICB9XHJcbiAgfVxyXG4gIEBJbnB1dCgpIHNpemU6ICdzbScgfCAnbGcnO1xyXG4gICNmb3JtOiBGb3JtR3JvdXA7XHJcbiAgQElucHV0KCkgc2V0IGZvcm0odmFsOiBOZ0Zvcm0gfCBGb3JtR3JvdXApIHtcclxuICAgIGlmICh2YWwpIHtcclxuICAgICAgaWYgKHZhbCBpbnN0YW5jZW9mIE5nRm9ybSkge1xyXG4gICAgICAgIHRoaXMuI2Zvcm0gPSB2YWwuZm9ybTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLiNmb3JtID0gdmFsO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZztcclxuICBASW5wdXQoKSB0eXBlOiAndGV4dCcgfCAnbnVtYmVyJyB8ICdwYXNzd29yZCcgfCAnZW1haWwnID0gJ3RleHQnO1xyXG4gIGRpc2FibGVFcnJvck1lc3NhZ2UgPSBmYWxzZTtcclxuICBASW5wdXQoJ2Rpc2FibGVFcnJvck1lc3NhZ2UnKSBzZXQgX2Rpc2FibGVFcnJvck1lc3NhZ2UodmFsOiBib29sZWFuIHwgJycpIHtcclxuICAgIHRoaXMuZGlzYWJsZUVycm9yTWVzc2FnZSA9ICh2YWwgPT09ICcnKSB8fCB2YWw7XHJcbiAgfVxyXG4gICNibHVyT25FbnRlciA9IGZhbHNlO1xyXG4gIEBJbnB1dCgnYmx1ck9uRW50ZXInKSBzZXQgX2JsdXJPbkVudGVyKHZhbDogYm9vbGVhbiB8ICcnKSB7XHJcbiAgICB0aGlzLiNibHVyT25FbnRlciA9ICh2YWwgPT09ICcnKSB8fCB2YWw7XHJcbiAgfVxyXG4gICNtb2RlbDogYW55O1xyXG4gIEBJbnB1dCgpIHNldCBtb2RlbCh2YWx1ZTogYW55KSB7XHJcbiAgICBpZiAodGhpcy4jbW9kZWwgIT09IHZhbHVlKSB7XHJcbiAgICAgIHRoaXMuI21vZGVsID0gdmFsdWU7XHJcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUodmFsdWUsIHtcclxuICAgICAgICBlbWl0RXZlbnQ6IGZhbHNlXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuICBAT3V0cHV0KCkgbW9kZWxDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIC8vIFZhbGlkYXRvclxyXG4gIGlzUmVxdWlyZWQgPSBmYWxzZTtcclxuICBASW5wdXQoKSBzZXQgcmVxdWlyZWQodmFsOiBib29sZWFuIHwgJycpIHtcclxuICAgIHRoaXMuaXNSZXF1aXJlZCA9ICh2YWwgPT09ICcnKSB8fCB2YWw7XHJcbiAgICB0aGlzLiN1cGRhdGVWYWxpZGF0b3IoKTtcclxuICB9XHJcblxyXG4gIGlzUmVhZG9ubHkgPSBmYWxzZTtcclxuICBASW5wdXQoKSBzZXQgcmVhZG9ubHkodmFsOiBib29sZWFuIHwgJycpIHtcclxuICAgIHRoaXMuaXNSZWFkb25seSA9ICh2YWwgPT09ICcnKSB8fCB2YWw7XHJcbiAgfVxyXG5cclxuICBtaW5sZW5ndGg6IG51bWJlcjtcclxuICBASW5wdXQoJ21pbmxlbmd0aCcpIHNldCBwTWlubGVuZ3RoKHZhbDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLm1pbmxlbmd0aCA9ICt2YWw7XHJcbiAgICB0aGlzLiN1cGRhdGVWYWxpZGF0b3IoKTtcclxuICB9XHJcbiAgbWF4bGVuZ3RoOiBudW1iZXI7XHJcbiAgQElucHV0KCdtYXhsZW5ndGgnKSBzZXQgcE1heGxlbmd0aCh2YWw6IG51bWJlcikge1xyXG4gICAgdGhpcy5tYXhsZW5ndGggPSArdmFsO1xyXG4gICAgdGhpcy4jdXBkYXRlVmFsaWRhdG9yKCk7XHJcbiAgfVxyXG4gICNwYXR0ZXJuOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgc2V0IHBhdHRlcm4odmFsOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuI3BhdHRlcm4gPSB2YWw7XHJcbiAgICB0aGlzLiN1cGRhdGVWYWxpZGF0b3IoKTtcclxuICB9XHJcbiAgI3ZhbGlkYXRvcjogKHZhbHVlOiBhbnkpID0+IHN0cmluZyB8IFByb21pc2U8c3RyaW5nPjtcclxuICBASW5wdXQoKSBzZXQgdmFsaWRhdG9yKHZhbGlkYXRvcjogKHZhbHVlOiBhbnkpID0+IHN0cmluZyB8IFByb21pc2U8c3RyaW5nPikge1xyXG4gICAgdGhpcy4jdmFsaWRhdG9yID0gdmFsaWRhdG9yO1xyXG4gICAgdGhpcy4jdXBkYXRlVmFsaWRhdG9yKCk7XHJcbiAgfVxyXG5cclxuICAvLyBPcHRpb25hbFxyXG4gIEBJbnB1dCgpIHNldCBkaXNhYmxlZCh2YWw6IGJvb2xlYW4gfCAnJykge1xyXG4gICAgdmFsID0gKHZhbCA9PT0gJycpIHx8IHZhbDtcclxuICAgIGlmICh2YWwpIHtcclxuICAgICAgdGhpcy5mb3JtQ29udHJvbC5kaXNhYmxlKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmZvcm1Db250cm9sLmVuYWJsZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuICBASW5wdXQoKSBpY29uID0gJ3NlYXJjaCc7XHJcbiAgaGlkZUljb24gPSBmYWxzZTtcclxuICBASW5wdXQoJ2hpZGVJY29uJykgc2V0IF9oaWRlSWNvbih2YWw6IGJvb2xlYW4gfCAnJykge1xyXG4gICAgdGhpcy5oaWRlSWNvbiA9ICh2YWwgPT09ICcnKSB8fCB2YWw7XHJcbiAgICB2YWwgPSAodmFsID09PSAnJykgfHwgdmFsO1xyXG4gIH1cclxuICBAT3V0cHV0KCkgc2RDbGlja0ljb24gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBASW5wdXQoKSB0b29sdGlwOiBzdHJpbmcgfCAoKGlucHV0VmFsdWU6IHN0cmluZykgPT4gc3RyaW5nKTtcclxuICBAT3V0cHV0KCkgc2RDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KCkgc2RGb2N1cyA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBPdXRwdXQoKSBzZEZvY3VzRm9yY2VCbHVyID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQE91dHB1dCgpIGtleXVwRW50ZXIgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2NvbnRyb2wnKSBjb250cm9sOiBFbGVtZW50UmVmO1xyXG4gIEBDb250ZW50Q2hpbGQoU2RJbnB1dFN1ZmZpeERpcmVjdGl2ZSkgc2RJbnB1dFN1ZmZpeDogU2RJbnB1dFN1ZmZpeERpcmVjdGl2ZTtcclxuICBmb3JtQ29udHJvbCA9IG5ldyBTZEZvcm1Db250cm9sKCk7XHJcbiAgI3N1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcclxuICBAQ29udGVudENoaWxkKFNkVmlld0RlZkRpcmVjdGl2ZSkgc2RWaWV3OiBTZFZpZXdEZWZEaXJlY3RpdmU7XHJcbiAgaXNGb2N1c2VkID0gZmFsc2U7XHJcbiAgQFZpZXdDaGlsZCgnYnRuQ29weScsIHsgcmVhZDogRWxlbWVudFJlZiB9KSBidG5Db3B5OiBFbGVtZW50UmVmO1xyXG4gIGNvcHlhYmxlID0gZmFsc2U7XHJcbiAgQElucHV0KCdjb3B5YWJsZScpIHNldCBfY29weWFibGUodmFsOiBib29sZWFuIHwgJycpIHtcclxuICAgIHRoaXMuY29weWFibGUgPSAodmFsID09PSAnJykgfHwgdmFsO1xyXG4gIH1cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyByZWY6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHJpdmF0ZSB1dGlsaXR5U2VydmljZTogU2RVdGlsaXR5U2VydmljZSkge1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLiNzdWJzY3JpcHRpb24uYWRkKHRoaXMuZm9ybUNvbnRyb2wuc2RDaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgICB0aGlzLnJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICAgIH0pKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuI3N1YnNjcmlwdGlvbi5hZGQodGhpcy5mb3JtQ29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShkZWJvdW5jZVRpbWUoMjAwKSkuc3Vic2NyaWJlKHRoaXMuI29uQ2hhbmdlKSk7XHJcbiAgICB0aGlzLiNmb3JtPy5hZGRDb250cm9sKHRoaXMuI25hbWUsIHRoaXMuZm9ybUNvbnRyb2wpO1xyXG4gICAgdGhpcy5yZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLiNmb3JtPy5yZW1vdmVDb250cm9sKHRoaXMuI25hbWUpO1xyXG4gICAgdGhpcy4jc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICByZVZhbGlkYXRlID0gKCkgPT4ge1xyXG4gICAgdGhpcy5mb3JtQ29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgfVxyXG5cclxuICAjdXBkYXRlVmFsaWRhdG9yID0gKCkgPT4ge1xyXG4gICAgdGhpcy5mb3JtQ29udHJvbC5jbGVhclZhbGlkYXRvcnMoKTtcclxuICAgIHRoaXMuZm9ybUNvbnRyb2wuY2xlYXJBc3luY1ZhbGlkYXRvcnMoKTtcclxuICAgIGNvbnN0IHZhbGlkYXRvcnM6IFZhbGlkYXRvckZuW10gPSBbXTtcclxuICAgIGNvbnN0IGFzeW5jVmFsaWRhdG9yczogQXN5bmNWYWxpZGF0b3JGbltdID0gW107XHJcbiAgICBpZiAodGhpcy5pc1JlcXVpcmVkKSB7XHJcbiAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLm1pbmxlbmd0aCA+IDApIHtcclxuICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMubWluTGVuZ3RoKHRoaXMubWlubGVuZ3RoKSk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5tYXhsZW5ndGggPiAwKSB7XHJcbiAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLm1heExlbmd0aCh0aGlzLm1heGxlbmd0aCkpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuI3BhdHRlcm4pIHtcclxuICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMucGF0dGVybih0aGlzLiNwYXR0ZXJuKSk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy4jdmFsaWRhdG9yKSB7XHJcbiAgICAgIGFzeW5jVmFsaWRhdG9ycy5wdXNoKHRoaXMuI2N1c3RvbVZhbGlkYXRvcih0aGlzLiN2YWxpZGF0b3IpKTtcclxuICAgIH1cclxuICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsaWRhdG9ycyh2YWxpZGF0b3JzKTtcclxuICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0QXN5bmNWYWxpZGF0b3JzKGFzeW5jVmFsaWRhdG9ycyk7XHJcbiAgICB0aGlzLmZvcm1Db250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICB9XHJcblxyXG4gICNvbkNoYW5nZSA9ICh2YWx1ZTogYW55KSA9PiB7XHJcbiAgICB0aGlzLm1vZGVsQ2hhbmdlLmVtaXQodmFsdWUpO1xyXG4gICAgdGhpcy5zZENoYW5nZS5lbWl0KHZhbHVlKTtcclxuICB9XHJcblxyXG4gIG9uS2V5dXBFbnRlciA9ICgpID0+IHtcclxuICAgIGNvbnN0IHZhbDogc3RyaW5nID0gKHRoaXMuZm9ybUNvbnRyb2wudmFsdWUgPz8gJycpLnRvU3RyaW5nKCk7XHJcbiAgICBpZiAodmFsLmxlbmd0aCA+IHZhbC50cmltKCkubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUodmFsLnRyaW0oKSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmtleXVwRW50ZXIuZW1pdCh0aGlzLmZvcm1Db250cm9sLnZhbHVlKTtcclxuICAgIGlmICh0aGlzLiNibHVyT25FbnRlcikge1xyXG4gICAgICB0aGlzLmJsdXIoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uQ2xpY2tJY29uID0gKGV2ZW50OiBFdmVudCkgPT4ge1xyXG4gICAgZXZlbnQ/LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICBldmVudD8uc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB0aGlzLnNkQ2xpY2tJY29uLmVtaXQodGhpcy5mb3JtQ29udHJvbC52YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBvbkZvY3VzID0gKCkgPT4ge1xyXG4gICAgdGhpcy5pc0ZvY3VzZWQgPSB0cnVlO1xyXG4gICAgdGhpcy5zZEZvY3VzLmVtaXQoKTtcclxuICAgIGlmICh0aGlzLnNkRm9jdXNGb3JjZUJsdXIub2JzZXJ2ZXJzPy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMuYmx1cigpO1xyXG4gICAgICB0aGlzLnNkRm9jdXNGb3JjZUJsdXIuZW1pdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25CbHVyID0gKCkgPT4ge1xyXG4gICAgdGhpcy5pc0ZvY3VzZWQgPSBmYWxzZTtcclxuICAgIGNvbnN0IHZhbDogc3RyaW5nID0gKHRoaXMuZm9ybUNvbnRyb2wudmFsdWUgPz8gJycpLnRvU3RyaW5nKCk7XHJcbiAgICBpZiAodmFsLmxlbmd0aCA+IHZhbC50cmltKCkubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUodmFsLnRyaW0oKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkNsaWNrID0gKCkgPT4ge1xyXG4gICAgaWYgKHRoaXMuc2RWaWV3Py50ZW1wbGF0ZVJlZikge1xyXG4gICAgICBpZiAoIXRoaXMuZm9ybUNvbnRyb2wuZGlzYWJsZWQgJiYgIXRoaXMuaXNGb2N1c2VkKSB7XHJcbiAgICAgICAgdGhpcy5mb2N1cygpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBibHVyID0gKCkgPT4ge1xyXG4gICAgdGhpcy5pc0ZvY3VzZWQgPSBmYWxzZTtcclxuICAgIHRoaXMuY29udHJvbD8ubmF0aXZlRWxlbWVudD8uYmx1cigpO1xyXG4gIH1cclxuXHJcbiAgZm9jdXMgPSAoKSA9PiB7XHJcbiAgICB0aGlzLmlzRm9jdXNlZCA9IHRydWU7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5jb250cm9sPy5uYXRpdmVFbGVtZW50Py5mb2N1cygpO1xyXG4gICAgfSwgMTAwKTtcclxuICB9XHJcblxyXG4gICNjdXN0b21WYWxpZGF0b3IgPSAoZnVuYzogKHZhbHVlOiBhbnkpID0+IHN0cmluZyB8IFByb21pc2U8c3RyaW5nPik6IEFzeW5jVmFsaWRhdG9yRm4gPT4ge1xyXG4gICAgcmV0dXJuIGFzeW5jIChjOiBBYnN0cmFjdENvbnRyb2wpOiBQcm9taXNlPHsgW2tleTogc3RyaW5nXTogYW55IH0gfCBudWxsPiA9PiB7XHJcbiAgICAgIGNvbnN0IHZhbHVlID0gYy52YWx1ZSB8fCBudWxsO1xyXG4gICAgICBpZiAoZnVuYyAmJiB0eXBlb2YgKGZ1bmMpID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gZnVuYyh2YWx1ZSk7XHJcbiAgICAgICAgaWYgKHJlc3VsdCBpbnN0YW5jZW9mIFByb21pc2UpIHtcclxuICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBhd2FpdCByZXN1bHQ7XHJcbiAgICAgICAgICBpZiAobWVzc2FnZSkge1xyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgIGN1c3RvbVZhbGlkYXRvcjogbWVzc2FnZVxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChyZXN1bHQpIHtcclxuICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGN1c3RvbVZhbGlkYXRvcjogcmVzdWx0XHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBjb3B5VGV4dCgpIHtcclxuICAgIHRoaXMudXRpbGl0eVNlcnZpY2UuY29weVRvQ2xpcGJvYXJkKHRoaXMuI21vZGVsKTtcclxuICAgIHRoaXMuYnRuQ29weS5uYXRpdmVFbGVtZW50LmlubmVyVGV4dCA9ICdDb3BpZWQnO1xyXG4gICAgdGhpcy5idG5Db3B5Lm5hdGl2ZUVsZW1lbnQuc2V0QXR0cmlidXRlKCdzdHlsZScsICdjb2xvcjogIzRjYWY1MDsnKTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLmJ0bkNvcHkubmF0aXZlRWxlbWVudC5pbm5lclRleHQgPSAnQ29weSc7XHJcbiAgICAgIHRoaXMuYnRuQ29weS5uYXRpdmVFbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSgnc3R5bGUnKTtcclxuICAgIH0sIDIwMDApO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -203,7 +203,8 @@ export class SdInputCurrency {
|
|
|
203
203
|
}
|
|
204
204
|
}
|
|
205
205
|
ngOnInit() {
|
|
206
|
-
__classPrivateFieldGet(this, _subscription).add(this.formControl.
|
|
206
|
+
__classPrivateFieldGet(this, _subscription).add(this.formControl.sdChanges.subscribe(() => {
|
|
207
|
+
this.formControl.updateValueAndValidity();
|
|
207
208
|
this.ref.markForCheck();
|
|
208
209
|
}));
|
|
209
210
|
__classPrivateFieldGet(this, _generateOption).call(this);
|
|
@@ -261,4 +262,4 @@ SdInputCurrency.propDecorators = {
|
|
|
261
262
|
keyupEnter: [{ type: Output }],
|
|
262
263
|
control: [{ type: ViewChild, args: ['control',] }]
|
|
263
264
|
};
|
|
264
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtY3VycmVuY3kuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IkM6L1VzZXJzL25naGlhdHQxNV9vbmVtb3VudC9Eb2N1bWVudHMvbGliLWNvcmUtdWkvcHJvamVjdHMvc2QtY29yZS9pbnB1dC1jdXJyZW5jeS8iLCJzb3VyY2VzIjpbInNyYy9saWIvaW5wdXQtY3VycmVuY3kuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsU0FBUyxFQUNULE1BQU0sRUFDTixZQUFZLEVBQ1osaUJBQWlCLEVBS2pCLFlBQVksRUFDYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQWdDLE1BQU0sRUFBZSxVQUFVLEVBQStCLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUgsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7QUFDN0IsT0FBTyxFQUFFLFlBQVksRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3JELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQU81RCxNQUFNLE9BQU8sZUFBZTtJQXNJMUIsWUFBb0IsR0FBc0I7UUFBdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFySTFDLGdCQUFRLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBQztRQU1sQix3QkFBbUIsR0FBRyxLQUFLLENBQUM7UUFNNUIsd0JBQWlCO1FBYWpCLHlCQUFZO1FBU0YsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRTNDLGlCQUEyQixNQUFNLEVBQUM7UUFNbEMseUJBQWlCLElBQUksRUFBQztRQU10QixtQkFBc0IsR0FBRyxFQUFDO1FBTTFC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LEtBQUs7NEJBTUwsS0FBSztzQkFNTCxLQUFLO3dCQU1MLEtBQUs7cUJBTUwsS0FBSztxQkFNTCxLQUFLO3dCQU1MLEtBQUs7dUJBTUwsS0FBSztrQkFNTCxLQUFLO2tCQU1MLEtBQUs7dUJBT0wsS0FBSztzQkFNTCxLQUFLO3dCQUtMLEtBQUs7dUJBTUwsS0FBSzt1QkFRTCxZQUFZLFNBQUMsaUJBQWlCO3NCQUM5QixLQUFLO3VCQUNMLE1BQU07c0JBQ04sTUFBTTt5QkFDTixNQUFNO3NCQUVOLFNBQVMsU0FBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgSW5wdXQsXHJcbiAgVmlld0NoaWxkLFxyXG4gIE91dHB1dCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgT25EZXN0cm95LFxyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgRWxlbWVudFJlZixcclxuICBPbkluaXQsXHJcbiAgQ29udGVudENoaWxkXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgRm9ybUNvbnRyb2wsIE5nRm9ybSwgVmFsaWRhdG9yRm4sIFZhbGlkYXRvcnMsIEFzeW5jVmFsaWRhdG9yRm4sIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0ICogYXMgdXVpZCBmcm9tICd1dWlkJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBzdGFydFdpdGggfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBDdXJyZW5jeU1hc2tJbnB1dE1vZGUgfSBmcm9tICduZ3gtY3VycmVuY3knO1xyXG5pbXBvcnQgeyBTZEZvcm1Db250cm9sIH0gZnJvbSAnQHNkLWFuZ3VsYXIvY29yZS9jb21tb24nO1xyXG5pbXBvcnQgeyBTZFN1ZmZpeERpcmVjdGl2ZSB9IGZyb20gJ0BzZC1hbmd1bGFyL2NvcmUvY29tbW9uJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc2QtaW5wdXQtY3VycmVuY3knLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC1jdXJyZW5jeS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vaW5wdXQtY3VycmVuY3kuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2RJbnB1dEN1cnJlbmN5IGltcGxlbWVudHMgT25EZXN0cm95LCBPbkluaXQsIEFmdGVyVmlld0luaXQge1xyXG4gICNuYW1lID0gdXVpZC52NCgpO1xyXG4gIEBJbnB1dCgpIHNldCBuYW1lKHZhbDogc3RyaW5nKSB7XHJcbiAgICBpZiAodmFsKSB7XHJcbiAgICAgIHRoaXMuI25hbWUgPSB2YWw7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGRpc2FibGVFcnJvck1lc3NhZ2UgPSBmYWxzZTtcclxuICBASW5wdXQoJ2Rpc2FibGVFcnJvck1lc3NhZ2UnKSBzZXQgX2Rpc2FibGVFcnJvck1lc3NhZ2UodmFsOiBib29sZWFuIHwgJycpIHtcclxuICAgIHRoaXMuZGlzYWJsZUVycm9yTWVzc2FnZSA9ICh2YWwgPT09ICcnKSB8fCB2YWw7XHJcbiAgICB2YWwgPSAodmFsID09PSAnJykgfHwgdmFsO1xyXG4gIH1cclxuICBASW5wdXQoKSBzaXplOiAnc20nIHwgJ2xnJztcclxuICAjZm9ybTogRm9ybUdyb3VwO1xyXG4gIEBJbnB1dCgpIHNldCBmb3JtKHZhbDogTmdGb3JtIHwgRm9ybUdyb3VwKSB7XHJcbiAgICBpZiAodmFsKSB7XHJcbiAgICAgIGlmICh2YWwgaW5zdGFuY2VvZiBOZ0Zvcm0pIHtcclxuICAgICAgICB0aGlzLiNmb3JtID0gdmFsLmZvcm07XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy4jZm9ybSA9IHZhbDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmc7XHJcblxyXG4gICNtb2RlbDogYW55O1xyXG4gIEBJbnB1dCgpIHNldCBtb2RlbCh2YWx1ZTogYW55KSB7XHJcbiAgICBpZiAodGhpcy4jbW9kZWwgIT09IHZhbHVlKSB7XHJcbiAgICAgIHRoaXMuI21vZGVsID0gdmFsdWU7XHJcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUodmFsdWUpO1xyXG4gICAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAT3V0cHV0KCkgbW9kZWxDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gICNhbGlnbjogJ2xlZnQnIHwgJ3JpZ2h0JyA9ICdsZWZ0JztcclxuICBASW5wdXQoKSBzZXQgYWxpZ24odmFsOiAnbGVmdCcgfCAncmlnaHQnIHwgJycpIHtcclxuICAgIHRoaXMuI2FsaWduID0gdmFsIHx8ICdsZWZ0JztcclxuICAgIHRoaXMuI2dlbmVyYXRlT3B0aW9uKCk7XHJcbiAgfVxyXG5cclxuICAjYWxsb3dOZWdhdGl2ZSA9IHRydWU7XHJcbiAgQElucHV0KCkgc2V0IGFsbG93TmVnYXRpdmUodmFsOiBib29sZWFuIHwgJycpIHtcclxuICAgIHRoaXMuI2FsbG93TmVnYXRpdmUgPSAodmFsID09PSAnJykgfHwgdmFsO1xyXG4gICAgdGhpcy4jZ2VuZXJhdGVPcHRpb24oKTtcclxuICB9XHJcblxyXG4gICNkZWNpbWFsOiAnLicgfCAnLCcgPSAnLCc7XHJcbiAgQElucHV0KCkgc2V0IGRlY2ltYWwodmFsOiAnLicgfCAnLCcgfCAnJykge1xyXG4gICAgdGhpcy4jZGVjaW1hbCA9IHZhbCB8fCAnLCc7XHJcbiAgICB0aGlzLiNnZW5lcmF0ZU9wdGlvbigpO1xyXG4gIH1cclxuXHJcbiAgI3ByZWNpc2lvbjogbnVtYmVyID0gMDtcclxuICBASW5wdXQoKSBzZXQgcHJlY2lzaW9uKHZhbDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLiNwcmVjaXNpb24gPSB2YWwgfHwgMDtcclxuICAgIHRoaXMuI2dlbmVyYXRlT3B0aW9uKCk7XHJcbiAgfVxyXG5cclxuICAjcHJlZml4OiBzdHJpbmc7XHJcbiAgQElucHV0KCkgc2V0IHByZWZpeCh2YWw6IHN0cmluZykge1xyXG4gICAgdGhpcy4jcHJlZml4ID0gdmFsO1xyXG4gICAgdGhpcy4jZ2VuZXJhdGVPcHRpb24oKTtcclxuICB9XHJcblxyXG4gICNzdWZmaXg6IHN0cmluZztcclxuICBASW5wdXQoKSBzZXQgc3VmZml4KHZhbDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLiNzdWZmaXggPSB2YWw7XHJcbiAgICB0aGlzLiNnZW5lcmF0ZU9wdGlvbigpO1xyXG4gIH1cclxuXHJcbiAgI3Rob3VzYW5kczogJy4nIHwgJywnID0gJy4nO1xyXG4gIEBJbnB1dCgpIHNldCB0aG91c2FuZHModmFsOiAnLicgfCAnLCcgfCAnJykge1xyXG4gICAgdGhpcy4jdGhvdXNhbmRzID0gdmFsIHx8ICcuJztcclxuICAgIHRoaXMuI2dlbmVyYXRlT3B0aW9uKCk7XHJcbiAgfVxyXG5cclxuICAjbnVsbGFibGU6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgc2V0IG51bGxhYmxlKHZhbDogYm9vbGVhbiB8IGZhbHNlKSB7XHJcbiAgICB0aGlzLiNudWxsYWJsZSA9IHZhbDtcclxuICAgIHRoaXMuI2dlbmVyYXRlT3B0aW9uKCk7XHJcbiAgfVxyXG5cclxuICAjbWluOiBudW1iZXI7XHJcbiAgQElucHV0KCkgc2V0IG1pbih2YWw6IG51bWJlcikge1xyXG4gICAgdGhpcy4jbWluID0gdmFsO1xyXG4gICAgdGhpcy4jZ2VuZXJhdGVPcHRpb24oKTtcclxuICB9XHJcblxyXG4gICNtYXg6IG51bWJlcjtcclxuICBASW5wdXQoKSBzZXQgbWF4KHZhbDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLiNtYXggPSB2YWw7XHJcbiAgICB0aGlzLiNnZW5lcmF0ZU9wdGlvbigpO1xyXG4gIH1cclxuXHJcbiAgLy8gVmFsaWRhdG9yXHJcbiAgaXNSZXF1aXJlZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNldCByZXF1aXJlZCh2YWw6IGJvb2xlYW4gfCAnJykge1xyXG4gICAgdGhpcy5pc1JlcXVpcmVkID0gKHZhbCA9PT0gJycpIHx8IHZhbDtcclxuICAgIHRoaXMuI3VwZGF0ZVZhbGlkYXRvcigpO1xyXG4gIH1cclxuXHJcbiAgI3BhdHRlcm46IHN0cmluZztcclxuICBASW5wdXQoKSBzZXQgcGF0dGVybih2YWw6IHN0cmluZykge1xyXG4gICAgdGhpcy4jcGF0dGVybiA9IHZhbDtcclxuICAgIHRoaXMuI3VwZGF0ZVZhbGlkYXRvcigpO1xyXG4gIH1cclxuICAjdmFsaWRhdG9yOiAodmFsdWU6IGFueSkgPT4gc3RyaW5nIHwgUHJvbWlzZTxzdHJpbmc+O1xyXG4gIEBJbnB1dCgpIHNldCB2YWxpZGF0b3IodmFsaWRhdG9yOiAodmFsdWU6IGFueSkgPT4gc3RyaW5nIHwgUHJvbWlzZTxzdHJpbmc+KSB7XHJcbiAgICB0aGlzLiN2YWxpZGF0b3IgPSB2YWxpZGF0b3I7XHJcbiAgICB0aGlzLiN1cGRhdGVWYWxpZGF0b3IoKTtcclxuICB9XHJcblxyXG4gIC8vIE9wdGlvbmFsXHJcbiAgQElucHV0KCkgc2V0IGRpc2FibGVkKHZhbDogYm9vbGVhbiB8ICcnKSB7XHJcbiAgICB2YWwgPSAodmFsID09PSAnJykgfHwgdmFsO1xyXG4gICAgaWYgKHZhbCkge1xyXG4gICAgICB0aGlzLmZvcm1Db250cm9sLmRpc2FibGUoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wuZW5hYmxlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIEBDb250ZW50Q2hpbGQoU2RTdWZmaXhEaXJlY3RpdmUpIHNkU3VmZml4OiBTZFN1ZmZpeERpcmVjdGl2ZTtcclxuICBASW5wdXQoKSB0b29sdGlwOiBzdHJpbmcgfCAoKGlucHV0VmFsdWU6IHN0cmluZykgPT4gc3RyaW5nKTtcclxuICBAT3V0cHV0KCkgc2RDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KCkgc2RGb2N1cyA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBPdXRwdXQoKSBrZXl1cEVudGVyID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBAVmlld0NoaWxkKCdjb250cm9sJykgY29udHJvbDogRWxlbWVudFJlZjtcclxuICBmb3JtQ29udHJvbCA9IG5ldyBTZEZvcm1Db250cm9sKCk7XHJcbiAgI3N1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcclxuICBvcHRpb25zID0ge307XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWY6IENoYW5nZURldGVjdG9yUmVmKSB7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuI3N1YnNjcmlwdGlvbi5hZGQodGhpcy5mb3JtQ29udHJvbC5jaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIHRoaXMucmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgfSkpO1xyXG4gICAgdGhpcy4jZ2VuZXJhdGVPcHRpb24oKTtcclxuICB9XHJcblxyXG4gICNnZW5lcmF0ZU9wdGlvbiA9ICgpID0+IHtcclxuICAgIHRoaXMub3B0aW9ucyA9IHtcclxuICAgICAgYWxpZ246IHRoaXMuI2FsaWduIHx8ICcnLFxyXG4gICAgICBhbGxvd05lZ2F0aXZlOiB0aGlzLiNhbGxvd05lZ2F0aXZlLFxyXG4gICAgICBkZWNpbWFsOiB0aGlzLiNkZWNpbWFsLFxyXG4gICAgICBwcmVjaXNpb246IHRoaXMuI3ByZWNpc2lvbixcclxuICAgICAgcHJlZml4OiB0aGlzLiNwcmVmaXggfHwgJycsXHJcbiAgICAgIHN1ZmZpeDogdGhpcy4jc3VmZml4IHx8ICcnLFxyXG4gICAgICB0aG91c2FuZHM6IHRoaXMuI3Rob3VzYW5kcyxcclxuICAgICAgbnVsbGFibGU6IHRoaXMuI251bGxhYmxlLFxyXG4gICAgICBtaW46IHRoaXMuI21pbixcclxuICAgICAgbWF4OiB0aGlzLiNtYXgsXHJcbiAgICAgIGlucHV0TW9kZTogQ3VycmVuY3lNYXNrSW5wdXRNb2RlLk5BVFVSQUxcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuI3N1YnNjcmlwdGlvbi5hZGQodGhpcy5mb3JtQ29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShkZWJvdW5jZVRpbWUoMjAwKSkuc3Vic2NyaWJlKHRoaXMuI29uQ2hhbmdlKSk7XHJcbiAgICB0aGlzLiNmb3JtPy5hZGRDb250cm9sKHRoaXMuI25hbWUsIHRoaXMuZm9ybUNvbnRyb2wpO1xyXG4gICAgdGhpcy5yZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLiNmb3JtPy5yZW1vdmVDb250cm9sKHRoaXMuI25hbWUpO1xyXG4gICAgdGhpcy4jc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICByZVZhbGlkYXRlID0gKCkgPT4ge1xyXG4gICAgdGhpcy5mb3JtQ29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgfVxyXG5cclxuICAjdXBkYXRlVmFsaWRhdG9yID0gKCkgPT4ge1xyXG4gICAgdGhpcy5mb3JtQ29udHJvbC5jbGVhclZhbGlkYXRvcnMoKTtcclxuICAgIHRoaXMuZm9ybUNvbnRyb2wuY2xlYXJBc3luY1ZhbGlkYXRvcnMoKTtcclxuICAgIGNvbnN0IHZhbGlkYXRvcnM6IFZhbGlkYXRvckZuW10gPSBbXTtcclxuICAgIGNvbnN0IGFzeW5jVmFsaWRhdG9yczogQXN5bmNWYWxpZGF0b3JGbltdID0gW107XHJcbiAgICBpZiAodGhpcy5pc1JlcXVpcmVkKSB7XHJcbiAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLiNwYXR0ZXJuKSB7XHJcbiAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLnBhdHRlcm4odGhpcy4jcGF0dGVybikpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuI3ZhbGlkYXRvcikge1xyXG4gICAgICBhc3luY1ZhbGlkYXRvcnMucHVzaCh0aGlzLiNjdXN0b21WYWxpZGF0b3IodGhpcy4jdmFsaWRhdG9yKSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbGlkYXRvcnModmFsaWRhdG9ycyk7XHJcbiAgICB0aGlzLmZvcm1Db250cm9sLnNldEFzeW5jVmFsaWRhdG9ycyhhc3luY1ZhbGlkYXRvcnMpO1xyXG4gICAgdGhpcy5mb3JtQ29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgfVxyXG5cclxuICAjb25DaGFuZ2UgPSBhc3luYyAodmFsdWU6IGFueSkgPT4ge1xyXG4gICAgdGhpcy5tb2RlbENoYW5nZS5lbWl0KHZhbHVlKTtcclxuICAgIHRoaXMuc2RDaGFuZ2UuZW1pdCh2YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBvbktleXVwRW50ZXIgPSAoKSA9PiB7XHJcbiAgICB0aGlzLmtleXVwRW50ZXIuZW1pdCh0aGlzLmZvcm1Db250cm9sLnZhbHVlKTtcclxuICB9XHJcblxyXG4gIG9uRm9jdXMgPSAoKSA9PiB7XHJcbiAgICB0aGlzLnNkRm9jdXMuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgb25CbHVyID0gKCkgPT4ge1xyXG4gICAgY29uc3QgdmFsOiBzdHJpbmcgPSAodGhpcy5mb3JtQ29udHJvbC52YWx1ZSA/PyAnJykudG9TdHJpbmcoKTtcclxuICAgIGlmICh2YWwubGVuZ3RoID4gdmFsLnRyaW0oKS5sZW5ndGgpIHtcclxuICAgICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWx1ZSh2YWwudHJpbSgpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICNjdXN0b21WYWxpZGF0b3IgPSAoZnVuYzogKHZhbHVlOiBhbnkpID0+IHN0cmluZyB8IFByb21pc2U8c3RyaW5nPik6IEFzeW5jVmFsaWRhdG9yRm4gPT4ge1xyXG4gICAgcmV0dXJuIGFzeW5jIChjOiBBYnN0cmFjdENvbnRyb2wpOiBQcm9taXNlPHsgW2tleTogc3RyaW5nXTogYW55IH0gfCBudWxsPiA9PiB7XHJcbiAgICAgIGNvbnN0IHZhbHVlID0gYy52YWx1ZSB8fCBudWxsO1xyXG4gICAgICBpZiAoZnVuYyAmJiB0eXBlb2YgKGZ1bmMpID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gZnVuYyh2YWx1ZSk7XHJcbiAgICAgICAgaWYgKHJlc3VsdCBpbnN0YW5jZW9mIFByb21pc2UpIHtcclxuICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBhd2FpdCByZXN1bHQ7XHJcbiAgICAgICAgICBpZiAobWVzc2FnZSkge1xyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgIGN1c3RvbVZhbGlkYXRvcjogbWVzc2FnZVxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChyZXN1bHQpIHtcclxuICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGN1c3RvbVZhbGlkYXRvcjogcmVzdWx0XHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH07XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
265
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtY3VycmVuY3kuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IkM6L1VzZXJzL25naGlhdHQxNV9vbmVtb3VudC9Eb2N1bWVudHMvbGliLWNvcmUtdWkvcHJvamVjdHMvc2QtY29yZS9pbnB1dC1jdXJyZW5jeS8iLCJzb3VyY2VzIjpbInNyYy9saWIvaW5wdXQtY3VycmVuY3kuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsU0FBUyxFQUNULE1BQU0sRUFDTixZQUFZLEVBQ1osaUJBQWlCLEVBS2pCLFlBQVksRUFDYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQWdDLE1BQU0sRUFBZSxVQUFVLEVBQStCLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUgsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7QUFDN0IsT0FBTyxFQUFFLFlBQVksRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3JELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQU81RCxNQUFNLE9BQU8sZUFBZTtJQXNJMUIsWUFBb0IsR0FBc0I7UUFBdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFySTFDLGdCQUFRLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBQztRQU1sQix3QkFBbUIsR0FBRyxLQUFLLENBQUM7UUFNNUIsd0JBQWlCO1FBYWpCLHlCQUFZO1FBU0YsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRTNDLGlCQUEyQixNQUFNLEVBQUM7UUFNbEMseUJBQWlCLElBQUksRUFBQztRQU10QixtQkFBc0IsR0FBRyxFQUFDO1FBTTFC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S0FBSzswQkFDTCxLQUFLO29CQUdMLEtBQUs7MEJBUUwsTUFBTTtvQkFHTixLQUFLOzRCQU1MLEtBQUs7c0JBTUwsS0FBSzt3QkFNTCxLQUFLO3FCQU1MLEtBQUs7cUJBTUwsS0FBSzt3QkFNTCxLQUFLO3VCQU1MLEtBQUs7a0JBTUwsS0FBSztrQkFNTCxLQUFLO3VCQU9MLEtBQUs7c0JBTUwsS0FBSzt3QkFLTCxLQUFLO3VCQU1MLEtBQUs7dUJBUUwsWUFBWSxTQUFDLGlCQUFpQjtzQkFDOUIsS0FBSzt1QkFDTCxNQUFNO3NCQUNOLE1BQU07eUJBQ04sTUFBTTtzQkFFTixTQUFTLFNBQUMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIElucHV0LFxyXG4gIFZpZXdDaGlsZCxcclxuICBPdXRwdXQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIE9uRGVzdHJveSxcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgT25Jbml0LFxyXG4gIENvbnRlbnRDaGlsZFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1Db250cm9sLCBOZ0Zvcm0sIFZhbGlkYXRvckZuLCBWYWxpZGF0b3JzLCBBc3luY1ZhbGlkYXRvckZuLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCAqIGFzIHV1aWQgZnJvbSAndXVpZCc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgc3RhcnRXaXRoIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQ3VycmVuY3lNYXNrSW5wdXRNb2RlIH0gZnJvbSAnbmd4LWN1cnJlbmN5JztcclxuaW1wb3J0IHsgU2RGb3JtQ29udHJvbCB9IGZyb20gJ0BzZC1hbmd1bGFyL2NvcmUvY29tbW9uJztcclxuaW1wb3J0IHsgU2RTdWZmaXhEaXJlY3RpdmUgfSBmcm9tICdAc2QtYW5ndWxhci9jb3JlL2NvbW1vbic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NkLWlucHV0LWN1cnJlbmN5JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQtY3VycmVuY3kuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2lucHV0LWN1cnJlbmN5LmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFNkSW5wdXRDdXJyZW5jeSBpbXBsZW1lbnRzIE9uRGVzdHJveSwgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcclxuICAjbmFtZSA9IHV1aWQudjQoKTtcclxuICBASW5wdXQoKSBzZXQgbmFtZSh2YWw6IHN0cmluZykge1xyXG4gICAgaWYgKHZhbCkge1xyXG4gICAgICB0aGlzLiNuYW1lID0gdmFsO1xyXG4gICAgfVxyXG4gIH1cclxuICBkaXNhYmxlRXJyb3JNZXNzYWdlID0gZmFsc2U7XHJcbiAgQElucHV0KCdkaXNhYmxlRXJyb3JNZXNzYWdlJykgc2V0IF9kaXNhYmxlRXJyb3JNZXNzYWdlKHZhbDogYm9vbGVhbiB8ICcnKSB7XHJcbiAgICB0aGlzLmRpc2FibGVFcnJvck1lc3NhZ2UgPSAodmFsID09PSAnJykgfHwgdmFsO1xyXG4gICAgdmFsID0gKHZhbCA9PT0gJycpIHx8IHZhbDtcclxuICB9XHJcbiAgQElucHV0KCkgc2l6ZTogJ3NtJyB8ICdsZyc7XHJcbiAgI2Zvcm06IEZvcm1Hcm91cDtcclxuICBASW5wdXQoKSBzZXQgZm9ybSh2YWw6IE5nRm9ybSB8IEZvcm1Hcm91cCkge1xyXG4gICAgaWYgKHZhbCkge1xyXG4gICAgICBpZiAodmFsIGluc3RhbmNlb2YgTmdGb3JtKSB7XHJcbiAgICAgICAgdGhpcy4jZm9ybSA9IHZhbC5mb3JtO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuI2Zvcm0gPSB2YWw7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZztcclxuICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nO1xyXG5cclxuICAjbW9kZWw6IGFueTtcclxuICBASW5wdXQoKSBzZXQgbW9kZWwodmFsdWU6IGFueSkge1xyXG4gICAgaWYgKHRoaXMuI21vZGVsICE9PSB2YWx1ZSkge1xyXG4gICAgICB0aGlzLiNtb2RlbCA9IHZhbHVlO1xyXG4gICAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbHVlKHZhbHVlKTtcclxuICAgICAgdGhpcy5yZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQE91dHB1dCgpIG1vZGVsQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICAjYWxpZ246ICdsZWZ0JyB8ICdyaWdodCcgPSAnbGVmdCc7XHJcbiAgQElucHV0KCkgc2V0IGFsaWduKHZhbDogJ2xlZnQnIHwgJ3JpZ2h0JyB8ICcnKSB7XHJcbiAgICB0aGlzLiNhbGlnbiA9IHZhbCB8fCAnbGVmdCc7XHJcbiAgICB0aGlzLiNnZW5lcmF0ZU9wdGlvbigpO1xyXG4gIH1cclxuXHJcbiAgI2FsbG93TmVnYXRpdmUgPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHNldCBhbGxvd05lZ2F0aXZlKHZhbDogYm9vbGVhbiB8ICcnKSB7XHJcbiAgICB0aGlzLiNhbGxvd05lZ2F0aXZlID0gKHZhbCA9PT0gJycpIHx8IHZhbDtcclxuICAgIHRoaXMuI2dlbmVyYXRlT3B0aW9uKCk7XHJcbiAgfVxyXG5cclxuICAjZGVjaW1hbDogJy4nIHwgJywnID0gJywnO1xyXG4gIEBJbnB1dCgpIHNldCBkZWNpbWFsKHZhbDogJy4nIHwgJywnIHwgJycpIHtcclxuICAgIHRoaXMuI2RlY2ltYWwgPSB2YWwgfHwgJywnO1xyXG4gICAgdGhpcy4jZ2VuZXJhdGVPcHRpb24oKTtcclxuICB9XHJcblxyXG4gICNwcmVjaXNpb246IG51bWJlciA9IDA7XHJcbiAgQElucHV0KCkgc2V0IHByZWNpc2lvbih2YWw6IG51bWJlcikge1xyXG4gICAgdGhpcy4jcHJlY2lzaW9uID0gdmFsIHx8IDA7XHJcbiAgICB0aGlzLiNnZW5lcmF0ZU9wdGlvbigpO1xyXG4gIH1cclxuXHJcbiAgI3ByZWZpeDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHNldCBwcmVmaXgodmFsOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuI3ByZWZpeCA9IHZhbDtcclxuICAgIHRoaXMuI2dlbmVyYXRlT3B0aW9uKCk7XHJcbiAgfVxyXG5cclxuICAjc3VmZml4OiBzdHJpbmc7XHJcbiAgQElucHV0KCkgc2V0IHN1ZmZpeCh2YWw6IHN0cmluZykge1xyXG4gICAgdGhpcy4jc3VmZml4ID0gdmFsO1xyXG4gICAgdGhpcy4jZ2VuZXJhdGVPcHRpb24oKTtcclxuICB9XHJcblxyXG4gICN0aG91c2FuZHM6ICcuJyB8ICcsJyA9ICcuJztcclxuICBASW5wdXQoKSBzZXQgdGhvdXNhbmRzKHZhbDogJy4nIHwgJywnIHwgJycpIHtcclxuICAgIHRoaXMuI3Rob3VzYW5kcyA9IHZhbCB8fCAnLic7XHJcbiAgICB0aGlzLiNnZW5lcmF0ZU9wdGlvbigpO1xyXG4gIH1cclxuXHJcbiAgI251bGxhYmxlOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIHNldCBudWxsYWJsZSh2YWw6IGJvb2xlYW4gfCBmYWxzZSkge1xyXG4gICAgdGhpcy4jbnVsbGFibGUgPSB2YWw7XHJcbiAgICB0aGlzLiNnZW5lcmF0ZU9wdGlvbigpO1xyXG4gIH1cclxuXHJcbiAgI21pbjogbnVtYmVyO1xyXG4gIEBJbnB1dCgpIHNldCBtaW4odmFsOiBudW1iZXIpIHtcclxuICAgIHRoaXMuI21pbiA9IHZhbDtcclxuICAgIHRoaXMuI2dlbmVyYXRlT3B0aW9uKCk7XHJcbiAgfVxyXG5cclxuICAjbWF4OiBudW1iZXI7XHJcbiAgQElucHV0KCkgc2V0IG1heCh2YWw6IG51bWJlcikge1xyXG4gICAgdGhpcy4jbWF4ID0gdmFsO1xyXG4gICAgdGhpcy4jZ2VuZXJhdGVPcHRpb24oKTtcclxuICB9XHJcblxyXG4gIC8vIFZhbGlkYXRvclxyXG4gIGlzUmVxdWlyZWQgPSBmYWxzZTtcclxuICBASW5wdXQoKSBzZXQgcmVxdWlyZWQodmFsOiBib29sZWFuIHwgJycpIHtcclxuICAgIHRoaXMuaXNSZXF1aXJlZCA9ICh2YWwgPT09ICcnKSB8fCB2YWw7XHJcbiAgICB0aGlzLiN1cGRhdGVWYWxpZGF0b3IoKTtcclxuICB9XHJcblxyXG4gICNwYXR0ZXJuOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgc2V0IHBhdHRlcm4odmFsOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuI3BhdHRlcm4gPSB2YWw7XHJcbiAgICB0aGlzLiN1cGRhdGVWYWxpZGF0b3IoKTtcclxuICB9XHJcbiAgI3ZhbGlkYXRvcjogKHZhbHVlOiBhbnkpID0+IHN0cmluZyB8IFByb21pc2U8c3RyaW5nPjtcclxuICBASW5wdXQoKSBzZXQgdmFsaWRhdG9yKHZhbGlkYXRvcjogKHZhbHVlOiBhbnkpID0+IHN0cmluZyB8IFByb21pc2U8c3RyaW5nPikge1xyXG4gICAgdGhpcy4jdmFsaWRhdG9yID0gdmFsaWRhdG9yO1xyXG4gICAgdGhpcy4jdXBkYXRlVmFsaWRhdG9yKCk7XHJcbiAgfVxyXG5cclxuICAvLyBPcHRpb25hbFxyXG4gIEBJbnB1dCgpIHNldCBkaXNhYmxlZCh2YWw6IGJvb2xlYW4gfCAnJykge1xyXG4gICAgdmFsID0gKHZhbCA9PT0gJycpIHx8IHZhbDtcclxuICAgIGlmICh2YWwpIHtcclxuICAgICAgdGhpcy5mb3JtQ29udHJvbC5kaXNhYmxlKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmZvcm1Db250cm9sLmVuYWJsZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuICBAQ29udGVudENoaWxkKFNkU3VmZml4RGlyZWN0aXZlKSBzZFN1ZmZpeDogU2RTdWZmaXhEaXJlY3RpdmU7XHJcbiAgQElucHV0KCkgdG9vbHRpcDogc3RyaW5nIHwgKChpbnB1dFZhbHVlOiBzdHJpbmcpID0+IHN0cmluZyk7XHJcbiAgQE91dHB1dCgpIHNkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQE91dHB1dCgpIHNkRm9jdXMgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KCkga2V5dXBFbnRlciA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQFZpZXdDaGlsZCgnY29udHJvbCcpIGNvbnRyb2w6IEVsZW1lbnRSZWY7XHJcbiAgZm9ybUNvbnRyb2wgPSBuZXcgU2RGb3JtQ29udHJvbCgpO1xyXG4gICNzdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XHJcbiAgb3B0aW9ucyA9IHt9O1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLiNzdWJzY3JpcHRpb24uYWRkKHRoaXMuZm9ybUNvbnRyb2wuc2RDaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgICB0aGlzLnJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICAgIH0pKTtcclxuICAgIHRoaXMuI2dlbmVyYXRlT3B0aW9uKCk7XHJcbiAgfVxyXG5cclxuICAjZ2VuZXJhdGVPcHRpb24gPSAoKSA9PiB7XHJcbiAgICB0aGlzLm9wdGlvbnMgPSB7XHJcbiAgICAgIGFsaWduOiB0aGlzLiNhbGlnbiB8fCAnJyxcclxuICAgICAgYWxsb3dOZWdhdGl2ZTogdGhpcy4jYWxsb3dOZWdhdGl2ZSxcclxuICAgICAgZGVjaW1hbDogdGhpcy4jZGVjaW1hbCxcclxuICAgICAgcHJlY2lzaW9uOiB0aGlzLiNwcmVjaXNpb24sXHJcbiAgICAgIHByZWZpeDogdGhpcy4jcHJlZml4IHx8ICcnLFxyXG4gICAgICBzdWZmaXg6IHRoaXMuI3N1ZmZpeCB8fCAnJyxcclxuICAgICAgdGhvdXNhbmRzOiB0aGlzLiN0aG91c2FuZHMsXHJcbiAgICAgIG51bGxhYmxlOiB0aGlzLiNudWxsYWJsZSxcclxuICAgICAgbWluOiB0aGlzLiNtaW4sXHJcbiAgICAgIG1heDogdGhpcy4jbWF4LFxyXG4gICAgICBpbnB1dE1vZGU6IEN1cnJlbmN5TWFza0lucHV0TW9kZS5OQVRVUkFMXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLiNzdWJzY3JpcHRpb24uYWRkKHRoaXMuZm9ybUNvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUoZGVib3VuY2VUaW1lKDIwMCkpLnN1YnNjcmliZSh0aGlzLiNvbkNoYW5nZSkpO1xyXG4gICAgdGhpcy4jZm9ybT8uYWRkQ29udHJvbCh0aGlzLiNuYW1lLCB0aGlzLmZvcm1Db250cm9sKTtcclxuICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy4jZm9ybT8ucmVtb3ZlQ29udHJvbCh0aGlzLiNuYW1lKTtcclxuICAgIHRoaXMuI3N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgcmVWYWxpZGF0ZSA9ICgpID0+IHtcclxuICAgIHRoaXMuZm9ybUNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gIH1cclxuXHJcbiAgI3VwZGF0ZVZhbGlkYXRvciA9ICgpID0+IHtcclxuICAgIHRoaXMuZm9ybUNvbnRyb2wuY2xlYXJWYWxpZGF0b3JzKCk7XHJcbiAgICB0aGlzLmZvcm1Db250cm9sLmNsZWFyQXN5bmNWYWxpZGF0b3JzKCk7XHJcbiAgICBjb25zdCB2YWxpZGF0b3JzOiBWYWxpZGF0b3JGbltdID0gW107XHJcbiAgICBjb25zdCBhc3luY1ZhbGlkYXRvcnM6IEFzeW5jVmFsaWRhdG9yRm5bXSA9IFtdO1xyXG4gICAgaWYgKHRoaXMuaXNSZXF1aXJlZCkge1xyXG4gICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5yZXF1aXJlZCk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy4jcGF0dGVybikge1xyXG4gICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5wYXR0ZXJuKHRoaXMuI3BhdHRlcm4pKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLiN2YWxpZGF0b3IpIHtcclxuICAgICAgYXN5bmNWYWxpZGF0b3JzLnB1c2godGhpcy4jY3VzdG9tVmFsaWRhdG9yKHRoaXMuI3ZhbGlkYXRvcikpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWxpZGF0b3JzKHZhbGlkYXRvcnMpO1xyXG4gICAgdGhpcy5mb3JtQ29udHJvbC5zZXRBc3luY1ZhbGlkYXRvcnMoYXN5bmNWYWxpZGF0b3JzKTtcclxuICAgIHRoaXMuZm9ybUNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gIH1cclxuXHJcbiAgI29uQ2hhbmdlID0gYXN5bmMgKHZhbHVlOiBhbnkpID0+IHtcclxuICAgIHRoaXMubW9kZWxDaGFuZ2UuZW1pdCh2YWx1ZSk7XHJcbiAgICB0aGlzLnNkQ2hhbmdlLmVtaXQodmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgb25LZXl1cEVudGVyID0gKCkgPT4ge1xyXG4gICAgdGhpcy5rZXl1cEVudGVyLmVtaXQodGhpcy5mb3JtQ29udHJvbC52YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBvbkZvY3VzID0gKCkgPT4ge1xyXG4gICAgdGhpcy5zZEZvY3VzLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIG9uQmx1ciA9ICgpID0+IHtcclxuICAgIGNvbnN0IHZhbDogc3RyaW5nID0gKHRoaXMuZm9ybUNvbnRyb2wudmFsdWUgPz8gJycpLnRvU3RyaW5nKCk7XHJcbiAgICBpZiAodmFsLmxlbmd0aCA+IHZhbC50cmltKCkubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUodmFsLnRyaW0oKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAjY3VzdG9tVmFsaWRhdG9yID0gKGZ1bmM6ICh2YWx1ZTogYW55KSA9PiBzdHJpbmcgfCBQcm9taXNlPHN0cmluZz4pOiBBc3luY1ZhbGlkYXRvckZuID0+IHtcclxuICAgIHJldHVybiBhc3luYyAoYzogQWJzdHJhY3RDb250cm9sKTogUHJvbWlzZTx7IFtrZXk6IHN0cmluZ106IGFueSB9IHwgbnVsbD4gPT4ge1xyXG4gICAgICBjb25zdCB2YWx1ZSA9IGMudmFsdWUgfHwgbnVsbDtcclxuICAgICAgaWYgKGZ1bmMgJiYgdHlwZW9mIChmdW5jKSA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGZ1bmModmFsdWUpO1xyXG4gICAgICAgIGlmIChyZXN1bHQgaW5zdGFuY2VvZiBQcm9taXNlKSB7XHJcbiAgICAgICAgICBjb25zdCBtZXNzYWdlID0gYXdhaXQgcmVzdWx0O1xyXG4gICAgICAgICAgaWYgKG1lc3NhZ2UpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICBjdXN0b21WYWxpZGF0b3I6IG1lc3NhZ2VcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAocmVzdWx0KSB7XHJcbiAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBjdXN0b21WYWxpZGF0b3I6IHJlc3VsdFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9O1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -272,7 +272,8 @@ export class SdSelect {
|
|
|
272
272
|
this.selectAll = (val === '') || val;
|
|
273
273
|
}
|
|
274
274
|
ngOnInit() {
|
|
275
|
-
__classPrivateFieldGet(this, _subscription).add(this.formControl.
|
|
275
|
+
__classPrivateFieldGet(this, _subscription).add(this.formControl.sdChanges.subscribe(() => {
|
|
276
|
+
this.formControl.updateValueAndValidity();
|
|
276
277
|
this.ref.markForCheck();
|
|
277
278
|
}));
|
|
278
279
|
__classPrivateFieldSet(this, _allItems, combineLatest([
|
|
@@ -401,4 +402,4 @@ SdSelect.propDecorators = {
|
|
|
401
402
|
sdSelection: [{ type: Output }],
|
|
402
403
|
sdView: [{ type: ContentChild, args: [SdViewDefDirective,] }]
|
|
403
404
|
};
|
|
404
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJDOi9Vc2Vycy9uZ2hpYXR0MTVfb25lbW91bnQvRG9jdW1lbnRzL2xpYi1jb3JlLXVpL3Byb2plY3RzL3NkLWNvcmUvc2VsZWN0LyIsInNvdXJjZXMiOlsic3JjL2xpYi9zZWxlY3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBb0MsU0FBUyxFQUFFLHVCQUF1QixFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5SyxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBNkQsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvRyxPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUU3QixPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBa0IsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3RixPQUFPLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ25ELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxhQUFhLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQVE1RSxNQUFNLE9BQU8sUUFBUTtJQXFIbkIsWUFDVSxHQUFzQjtRQUF0QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQXJIaEMseUJBQWlCO1FBUWpCLGdCQUFRLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBQztRQU1sQix3QkFBbUIsR0FBRyxLQUFLLENBQUM7UUFLNUIsZ0JBQVcsR0FBRyxJQUFJLGFBQWEsRUFBRSxDQUFDO1FBRWxDLGdCQUFXLEdBQUcsSUFBSSxPQUFP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QUFLLFNBQUMscUJBQXFCO21CQVEzQixLQUFLO21CQUVMLEtBQUs7b0JBU0wsS0FBSzswQkFDTCxLQUFLO29CQUlMLEtBQUs7b0JBTUwsS0FBSzt5QkFZTCxLQUFLOzJCQUNMLEtBQUs7dUJBU0wsS0FBSzt3QkFJTCxLQUFLO3VCQUtMLEtBQUs7d0JBU0wsS0FBSyxTQUFDLFVBQVU7b0JBR2hCLEtBQUs7d0JBRUwsS0FBSyxTQUFDLFVBQVU7K0JBR2hCLFlBQVksU0FBQywyQkFBMkI7eUJBRXhDLEtBQUssU0FBQyxXQUFXOzBCQUlqQixNQUFNO3VCQUNOLE1BQU07MEJBQ04sTUFBTTtxQkFZTixZQUFZLFNBQUMsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIENoYW5nZURldGVjdG9yUmVmLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0NoaWxkLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29udGVudENoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5nRm9ybSwgVmFsaWRhdG9ycywgVmFsaWRhdG9yRm4sIEFic3RyYWN0Q29udHJvbCwgQXN5bmNWYWxpZGF0b3JGbiwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgKiBhcyB1dWlkIGZyb20gJ3V1aWQnO1xyXG5pbXBvcnQgeyBNYXRTZWxlY3QsIE1hdFNlbGVjdENoYW5nZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSwgb2YsIFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIG1hcCwgc3RhcnRXaXRoLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IE1hdElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xyXG5pbXBvcnQgeyBTZFNlbGVjdERpc3BsYXlEZWZEaXJlY3RpdmUgfSBmcm9tICcuL3NlbGVjdC1kaXNwbGF5LWRlZi5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBTZEZvcm1Db250cm9sLCBTZFZpZXdEZWZEaXJlY3RpdmUgfSBmcm9tICdAc2QtYW5ndWxhci9jb3JlL2NvbW1vbic7XHJcbmltcG9ydCB7IE1hdFRvb2x0aXAgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzZC1zZWxlY3QnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3NlbGVjdC5jb21wb25lbnQuc2NzcyddLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZFNlbGVjdCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcclxuICAjaW5wdXQ6IE1hdElucHV0O1xyXG4gIEBWaWV3Q2hpbGQoTWF0SW5wdXQpIHNldCBpbnB1dChpbnB1dDogTWF0SW5wdXQpIHtcclxuICAgIGlmICh0aGlzLiNpbnB1dCAhPT0gaW5wdXQpIHtcclxuICAgICAgdGhpcy4jaW5wdXQgPSBpbnB1dDtcclxuICAgICAgdGhpcy4jaW5wdXQudmFsdWUgPSBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuICBAVmlld0NoaWxkKCdzZWxlY3QnKSBzZWxlY3Q6IE1hdFNlbGVjdDtcclxuICAjbmFtZSA9IHV1aWQudjQoKTtcclxuICBASW5wdXQoKSBzZXQgbmFtZSh2YWw6IHN0cmluZykge1xyXG4gICAgaWYgKHZhbCkge1xyXG4gICAgICB0aGlzLiNuYW1lID0gdmFsO1xyXG4gICAgfVxyXG4gIH1cclxuICBkaXNhYmxlRXJyb3JNZXNzYWdlID0gZmFsc2U7XHJcbiAgQElucHV0KCdkaXNhYmxlRXJyb3JNZXNzYWdlJykgc2V0IF9kaXNhYmxlRXJyb3JNZXNzYWdlKHZhbDogYm9vbGVhbiB8ICcnKSB7XHJcbiAgICB0aGlzLmRpc2FibGVFcnJvck1lc3NhZ2UgPSAodmFsID09PSAnJykgfHwgdmFsO1xyXG4gICAgdmFsID0gKHZhbCA9PT0gJycpIHx8IHZhbDtcclxuICB9XHJcbiAgZm9ybUNvbnRyb2wgPSBuZXcgU2RGb3JtQ29udHJvbCgpO1xyXG5cclxuICBzZWFyY2hUZXJtJCA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKTtcclxuXHJcbiAgQElucHV0KCkgc2l6ZTogJ3NtJyB8ICdsZyc7XHJcbiAgI2Zvcm06IEZvcm1Hcm91cDtcclxuICBASW5wdXQoKSBzZXQgZm9ybSh2YWw6IE5nRm9ybSB8IEZvcm1Hcm91cCkge1xyXG4gICAgaWYgKHZhbCkge1xyXG4gICAgICBpZiAodmFsIGluc3RhbmNlb2YgTmdGb3JtKSB7XHJcbiAgICAgICAgdGhpcy4jZm9ybSA9IHZhbC5mb3JtO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuI2Zvcm0gPSB2YWw7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZztcclxuICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nO1xyXG5cclxuICAvLyBNb2RlbFxyXG4gIGRpc3BsYXk6IE9ic2VydmFibGU8c3RyaW5nPjtcclxuICBASW5wdXQoKSBzZXQgbW9kZWwodmFsdWU6IHVuZGVmaW5lZCB8IGJvb2xlYW4gfCBudW1iZXIgfCBzdHJpbmcgfCAobnVtYmVyIHwgc3RyaW5nKVtdKSB7XHJcbiAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbHVlKHZhbHVlKTtcclxuICB9XHJcbiAgLy8gSXRlbXNcclxuXHJcbiAgI2l0ZW1zQ2hhbmdlcyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55W10gfCBTZWFyY2hGdW5jPihbXSk7XHJcbiAgQElucHV0KCkgc2V0IGl0ZW1zKGl0ZW1zOiB1bmRlZmluZWQgfCBhbnlbXSB8IFNlYXJjaEZ1bmMpIHtcclxuICAgIHRoaXMuI2RlbGF5ID0gMDtcclxuICAgIGlmICghaXRlbXMpIHtcclxuICAgICAgdGhpcy4jaXRlbXNDaGFuZ2VzLm5leHQoW10pO1xyXG4gICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KGl0ZW1zKSkge1xyXG4gICAgICB0aGlzLiNpdGVtc0NoYW5nZXMubmV4dChpdGVtcy5maWx0ZXIoZSA9PiBlICE9PSBudWxsICYmIGUgIT09IHVuZGVmaW5lZCkpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy4jZGVsYXkgPSA1MDA7XHJcbiAgICAgIHRoaXMuI2l0ZW1zQ2hhbmdlcy5uZXh0KGl0ZW1zKTtcclxuICAgIH1cclxuICAgIHRoaXMuc2VhcmNoVGVybSQubmV4dCgnJyk7XHJcbiAgfVxyXG4gIEBJbnB1dCgpIHZhbHVlRmllbGQ6IHN0cmluZztcclxuICBASW5wdXQoKSBkaXNwbGF5RmllbGQ6IHN0cmluZztcclxuXHJcbiAgLy8gU2VydmVyIHNlYXJjaFxyXG4gIGxvYWRpbmcgPSBmYWxzZTtcclxuICAjZGVsYXkgPSAyMDA7IC8vIFNhdSBraG/huqNuZyB0aOG7nWkgZ2lhbiBkZWxheSBu4bq/dSBraMO0bmcgY8OzIHRoYXkgxJHhu5VpIHRow6wgdGjDrCBt4bubaSBi4bqvdCDEkeG6p3UgdGjhu7FjIGhp4buHbiBn4buNaSBow6BtXHJcblxyXG4gIC8vIFZhbGlkYXRvclxyXG4gIGlzUmVxdWlyZWQgPSBmYWxzZTtcclxuICAjdmFsaWRhdG9yOiAodmFsdWU6IGFueSkgPT4gc3RyaW5nIHwgUHJvbWlzZTxzdHJpbmc+O1xyXG4gIEBJbnB1dCgpIHNldCByZXF1aXJlZCh2YWw6IGJvb2xlYW4gfCAnJykge1xyXG4gICAgdGhpcy5pc1JlcXVpcmVkID0gKHZhbCA9PT0gJycpIHx8IHZhbDtcclxuICAgIHRoaXMuI3VwZGF0ZVZhbGlkYXRvcigpO1xyXG4gIH1cclxuICBASW5wdXQoKSBzZXQgdmFsaWRhdG9yKHZhbGlkYXRvcjogKHZhbHVlOiBhbnkpID0+IHN0cmluZyB8IFByb21pc2U8c3RyaW5nPikge1xyXG4gICAgdGhpcy4jdmFsaWRhdG9yID0gdmFsaWRhdG9yO1xyXG4gICAgdGhpcy4jdXBkYXRlVmFsaWRhdG9yKCk7XHJcbiAgfVxyXG4gIC8vIE9wdGlvbmFsXHJcbiAgQElucHV0KCkgc2V0IGRpc2FibGVkKHZhbDogYm9vbGVhbiB8ICcnKSB7XHJcbiAgICB2YWwgPSAodmFsID09PSAnJykgfHwgdmFsO1xyXG4gICAgaWYgKHZhbCkge1xyXG4gICAgICB0aGlzLmZvcm1Db250cm9sLmRpc2FibGUoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wuZW5hYmxlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIG11bHRpcGxlID0gZmFsc2U7XHJcbiAgQElucHV0KCdtdWx0aXBsZScpIHNldCBfbXVsdGlwbGUodmFsOiBib29sZWFuIHwgJycpIHtcclxuICAgIHRoaXMubXVsdGlwbGUgPSAodmFsID09PSAnJykgfHwgdmFsO1xyXG4gIH1cclxuICBASW5wdXQoKSBsaW1pdCA9IDEwMDtcclxuICBmaWx0ZXJlZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgnZmlsdGVyZWQnKSBzZXQgX2ZpbHRlcmVkKHZhbDogYm9vbGVhbiB8ICcnKSB7XHJcbiAgICB0aGlzLmZpbHRlcmVkID0gKHZhbCA9PT0gJycpIHx8IHZhbDtcclxuICB9XHJcbiAgQENvbnRlbnRDaGlsZChTZFNlbGVjdERpc3BsYXlEZWZEaXJlY3RpdmUpIHNlbGVjdERpc3BsYXlEZWY6IFNkU2VsZWN0RGlzcGxheURlZkRpcmVjdGl2ZTtcclxuICBzZWxlY3RBbGwgPSBmYWxzZTtcclxuICBASW5wdXQoJ3NlbGVjdEFsbCcpIHNldCBfc2VsZWN0QWxsKHZhbDogYm9vbGVhbiB8ICcnKSB7XHJcbiAgICB0aGlzLnNlbGVjdEFsbCA9ICh2YWwgPT09ICcnKSB8fCB2YWw7XHJcbiAgfVxyXG5cclxuICBAT3V0cHV0KCkgbW9kZWxDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIHNkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBzZFNlbGVjdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXI8eyB2YWx1ZTogYW55IHwgYW55W10sIGl0ZW0/OiBhbnksIGl0ZW1zPzogYW55W10gfT4oKTtcclxuICAjc3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xyXG4gIHNlbGVjdGVkSXRlbXM6IE9ic2VydmFibGU8YW55W10+O1xyXG4gICNhbGxJdGVtczogT2JzZXJ2YWJsZTxhbnlbXT47XHJcbiAgZmlsdGVyZWRJdGVtczogT2JzZXJ2YWJsZTxhbnlbXT47XHJcbiAgI2FsbEl0ZW06IHtcclxuICAgIFtrZXk6IHN0cmluZ106IGFueVxyXG4gIH0gPSB7fTtcclxuICBhbGxTZWxlY3RlZCA9IGZhbHNlO1xyXG4gICNjYWNoZToge1xyXG4gICAgW2tleTogc3RyaW5nXTogYW55W11cclxuICB9ID0ge307XHJcbiAgQENvbnRlbnRDaGlsZChTZFZpZXdEZWZEaXJlY3RpdmUpIHNkVmlldzogU2RWaWV3RGVmRGlyZWN0aXZlO1xyXG4gIGlzRm9jdXNlZCA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVmOiBDaGFuZ2VEZXRlY3RvclJlZikgeyB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy4jc3Vic2NyaXB0aW9uLmFkZCh0aGlzLmZvcm1Db250cm9sLmNoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgdGhpcy5yZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgICB9KSk7XHJcbiAgICB0aGlzLiNhbGxJdGVtcyA9IGNvbWJpbmVMYXRlc3QoW1xyXG4gICAgICB0aGlzLiNpdGVtc0NoYW5nZXMuYXNPYnNlcnZhYmxlKCksXHJcbiAgICAgIHRoaXMuc2VhcmNoVGVybSQuYXNPYnNlcnZhYmxlKCkucGlwZShzdGFydFdpdGgoJycpLCBkZWJvdW5jZVRpbWUodGhpcy4jZGVsYXkpKSxcclxuICAgICAgdGhpcy5mb3JtQ29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShzdGFydFdpdGgodGhpcy5mb3JtQ29udHJvbC52YWx1ZSkpXSkucGlwZShcclxuICAgICAgICBzd2l0Y2hNYXAoYXN5bmMgKFtpdGVtcywgdmFsLCBmb3JtVmFsdWVdKSA9PiB7XHJcbiAgICAgICAgICBpZiAodHlwZW9mIChpdGVtcykgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuI2xvYWRJdGVtcyh2YWwsIGl0ZW1zKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMuI2FsbEl0ZW0gPSBpdGVtcy50b09iamVjdCh0aGlzLnZhbHVlRmllbGQpO1xyXG4gICAgICAgICAgY29uc3QgaXNBcnJheSA9IEFycmF5LmlzQXJyYXkoZm9ybVZhbHVlKTtcclxuICAgICAgICAgIGNvbnN0IGhhc0ZpZWxkcyA9ICEhdGhpcy52YWx1ZUZpZWxkICYmICEhdGhpcy5kaXNwbGF5RmllbGQ7XHJcbiAgICAgICAgICBjb25zdCBmaWx0ZXJlZEl0ZW1zID0gaXRlbXMuZmlsdGVyKGl0ZW0gPT4ge1xyXG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGhhc0ZpZWxkcyA/IGl0ZW1bdGhpcy52YWx1ZUZpZWxkXSA6IGl0ZW07XHJcbiAgICAgICAgICAgIGNvbnN0IGRpc3BsYXkgPSBoYXNGaWVsZHMgPyBpdGVtW3RoaXMuZGlzcGxheUZpZWxkXSA6IGl0ZW07XHJcbiAgICAgICAgICAgIGlmIChTdHJpbmcuYWxpYXNJbmNsdWRlcyh2YWx1ZSwgdmFsKSB8fCBTdHJpbmcuYWxpYXNJbmNsdWRlcyhkaXNwbGF5LCB2YWwpKSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGlzQXJyYXkpIHtcclxuICAgICAgICAgICAgICByZXR1cm4gZm9ybVZhbHVlLnNvbWUoZSA9PiBlID09PSB2YWx1ZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIGZvcm1WYWx1ZSA9PT0gdmFsdWU7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIGlmIChpdGVtcy5sZW5ndGggPD0gdGhpcy5saW1pdCkge1xyXG4gICAgICAgICAgICByZXR1cm4gZmlsdGVyZWRJdGVtcztcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIC8vIMSQxrBhIG5o4buvbmcgc2VsZWN0ZWRJdGVtcyBsw6puIMSR4bqndSBu4bq/dSBraMO0bmcgbWF0LXNlbGVjdC10cmlnZ2VyIHPhur0ga2jDtG5nIHdvcmtcclxuICAgICAgICAgIHJldHVybiBmaWx0ZXJlZEl0ZW1zLnNvcnQoKGN1cnJlbnQsIG5leHQpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgdmFsdWUxID0gaGFzRmllbGRzID8gY3VycmVudFt0aGlzLnZhbHVlRmllbGRdIDogY3VycmVudDtcclxuICAgICAgICAgICAgY29uc3QgdmFsdWUyID0gaGFzRmllbGRzID8gbmV4dFt0aGlzLnZhbHVlRmllbGRdIDogbmV4dDtcclxuICAgICAgICAgICAgbGV0IGZsYWcxID0gMDtcclxuICAgICAgICAgICAgbGV0IGZsYWcyID0gMDtcclxuICAgICAgICAgICAgaWYgKGlzQXJyYXkpIHtcclxuICAgICAgICAgICAgICBmbGFnMSA9IGZvcm1WYWx1ZS5zb21lKGUgPT4gZSA9PT0gdmFsdWUxKSA/IDEgOiAwO1xyXG4gICAgICAgICAgICAgIGZsYWcyID0gZm9ybVZhbHVlLnNvbWUoZSA9PiBlID09PSB2YWx1ZTIpID8gMSA6IDA7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIGZsYWcyIC0gZmxhZzE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZmxhZzEgPSBmb3JtVmFsdWUgPT09IHZhbHVlMSA/IDEgOiAwO1xyXG4gICAgICAgICAgICBmbGFnMiA9IGZvcm1WYWx1ZSA9PT0gdmFsdWUyID8gMSA6IDA7XHJcbiAgICAgICAgICAgIHJldHVybiBmbGFnMiAtIGZsYWcxO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSkpO1xyXG4gICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0gY29tYmluZUxhdGVzdChbXHJcbiAgICAgIHRoaXMuI2l0ZW1zQ2hhbmdlcy5hc09ic2VydmFibGUoKSxcclxuICAgICAgdGhpcy5mb3JtQ29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShzdGFydFdpdGgodGhpcy5mb3JtQ29udHJvbC52YWx1ZSkpXSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgc3dpdGNoTWFwKGFzeW5jIChbaXRlbXMsIHZhbF0pID0+IHtcclxuICAgICAgICAgIC8vIFbDrCBt4buZdCBz4buRIGzDvSBkbyBjaMawYSB4w6FjIMSR4buLbmggbcOgIGtoaSBz4butIGThu6VuZyBzZFZpZXdEZWYgdGjDrCBraGkgY2h1eeG7g24gc2FuZyBk4bqhbmcgdmlldyBz4bq9IHRyaWdnZXIgdmFsID0gbnVsbFxyXG4gICAgICAgICAgLy8gTmjGsG5nIGZvcm1Db250cm9sLnZhbHVlIHbhuqtuIGPDsyBnacOhIHRy4buLIMSRw7puZyBuw6puIHRo4buxYyBoaeG7h24gZ8OhbiB2YWwgPSB0aGlzLmZvcm1Db250cm9sLnZhbHVlO1xyXG4gICAgICAgICAgdmFsID0gdGhpcy5mb3JtQ29udHJvbC52YWx1ZTtcclxuICAgICAgICAgIGlmICghdmFsPy50b1N0cmluZygpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBbXTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGNvbnN0IHZhbHVlcyA9IEFycmF5LmlzQXJyYXkodmFsKSA/IHZhbCA6IFt2YWxdO1xyXG4gICAgICAgICAgaWYgKCF0aGlzLnZhbHVlRmllbGQpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlcztcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmICh0eXBlb2YgKGl0ZW1zKSA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy4jbG9hZFNlbGVjdGVkSXRlbXModmFsLCBpdGVtcyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICByZXR1cm4gdmFsdWVzLm1hcCh2YWx1ZSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiBpdGVtcz8uZmluZChpdGVtID0+IGl0ZW1bdGhpcy52YWx1ZUZpZWxkXSA9PT0gdmFsdWUpIHx8IHtcclxuICAgICAgICAgICAgICBbdGhpcy52YWx1ZUZpZWxkXTogdmFsdWUsXHJcbiAgICAgICAgICAgICAgW3RoaXMuZGlzcGxheUZpZWxkXTogdmFsdWVcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgICB0aGlzLmZpbHRlcmVkSXRlbXMgPSB0aGlzLiNhbGxJdGVtcy5waXBlKG1hcChhbGxJdGVtcyA9PiBhbGxJdGVtcy5wYWdpbmcodGhpcy5saW1pdCkpKTtcclxuICAgIHRoaXMuZGlzcGxheSA9IHRoaXMuc2VsZWN0ZWRJdGVtcy5waXBlKFxyXG4gICAgICBtYXAoc2VsZWN0ZWRJdGVtcyA9PiBzZWxlY3RlZEl0ZW1zPy5tYXAoaXRlbSA9PiB0aGlzLmRpc3BsYXlGaWVsZCA/IGl0ZW1bdGhpcy5kaXNwbGF5RmllbGRdIDogaXRlbSk/LmpvaW4oJywgJykpKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuI2Zvcm0/LmFkZENvbnRyb2wodGhpcy4jbmFtZSwgdGhpcy5mb3JtQ29udHJvbCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuI2Zvcm0/LnJlbW92ZUNvbnRyb2wodGhpcy4jbmFtZSk7XHJcbiAgICB0aGlzLiNzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gICN1cGRhdGVWYWxpZGF0b3IgPSAoKSA9PiB7XHJcbiAgICB0aGlzLmZvcm1Db250cm9sLmNsZWFyVmFsaWRhdG9ycygpO1xyXG4gICAgdGhpcy5mb3JtQ29udHJvbC5jbGVhckFzeW5jVmFsaWRhdG9ycygpO1xyXG4gICAgY29uc3QgdmFsaWRhdG9yczogVmFsaWRhdG9yRm5bXSA9IFtdO1xyXG4gICAgY29uc3QgYXN5bmNWYWxpZGF0b3JzOiBBc3luY1ZhbGlkYXRvckZuW10gPSBbXTtcclxuICAgIGlmICh0aGlzLmlzUmVxdWlyZWQpIHtcclxuICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuI3ZhbGlkYXRvcikge1xyXG4gICAgICBhc3luY1ZhbGlkYXRvcnMucHVzaCh0aGlzLiNjdXN0b21WYWxpZGF0b3IodGhpcy4jdmFsaWRhdG9yKSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbGlkYXRvcnModmFsaWRhdG9ycyk7XHJcbiAgICB0aGlzLmZvcm1Db250cm9sLnNldEFzeW5jVmFsaWRhdG9ycyhhc3luY1ZhbGlkYXRvcnMpO1xyXG4gICAgdGhpcy5mb3JtQ29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgfVxyXG5cclxuICAjbG9hZFNlbGVjdGVkSXRlbXMgPSBhc3luYyAodmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdLCBpdGVtczogU2VhcmNoRnVuYykgPT4ge1xyXG4gICAgaWYgKCF2YWx1ZT8udG9TdHJpbmcoKSkge1xyXG4gICAgICByZXR1cm4gW107XHJcbiAgICB9XHJcbiAgICBjb25zdCB2YWx1ZXMgPSBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogW3ZhbHVlXTtcclxuICAgIGlmICghdGhpcy52YWx1ZUZpZWxkICYmICF0aGlzLmRpc3BsYXlGaWVsZCkge1xyXG4gICAgICByZXR1cm4gdmFsdWVzO1xyXG4gICAgfVxyXG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuICAgIGlmICh2YWx1ZXMuc29tZSh2YWwgPT4gdGhpcy4jYWxsSXRlbVt2YWxdID09PSB1bmRlZmluZWQpKSB7XHJcbiAgICAgIGNvbnN0IHJlc3VsdHMgPSBhd2FpdCBpdGVtcyh2YWx1ZSwgdHJ1ZSkuY2F0Y2goKCkgPT4gW10pLmZpbmFsbHkoKCkgPT4gdGhpcy5sb2FkaW5nID0gZmFsc2UpO1xyXG4gICAgICBjb25zdCBvYmpJdGVtID0gQXJyYXkudG9PYmplY3QocmVzdWx0cywgdGhpcy52YWx1ZUZpZWxkKTtcclxuICAgICAgY29uc3Qgb2JqVmFsdWUgPSBBcnJheS50b09iamVjdChcclxuICAgICAgICB2YWx1ZXMubWFwKHZhbCA9PiAoeyBbdmFsPy50b1N0cmluZygpXTogeyBbdGhpcy52YWx1ZUZpZWxkXTogdmFsLCBbdGhpcy5kaXNwbGF5RmllbGRdOiB2YWwgfSB9KSksIHRoaXMudmFsdWVGaWVsZCk7XHJcbiAgICAgIHRoaXMuI2FsbEl0ZW0gPSB7XHJcbiAgICAgICAgLi4ub2JqVmFsdWUsXHJcbiAgICAgICAgLi4udGhpcy4jYWxsSXRlbSxcclxuICAgICAgICAuLi5vYmpJdGVtXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdmFsdWVzLm1hcCh2YWwgPT4gdGhpcy4jYWxsSXRlbVt2YWw/LnRvU3RyaW5nKCldID8/IHsgW3RoaXMudmFsdWVGaWVsZF06IHZhbCwgW3RoaXMuZGlzcGxheUZpZWxkXTogdmFsIH0pO1xyXG4gIH1cclxuXHJcbiAgI2xvYWRJdGVtcyA9IGFzeW5jIChzZWFyY2hUZXh0OiBzdHJpbmcsIGl0ZW1zOiBTZWFyY2hGdW5jKSA9PiB7XHJcbiAgICBzZWFyY2hUZXh0ID0gc2VhcmNoVGV4dD8udG9TdHJpbmcoKSB8fCAnJztcclxuICAgIGlmICh0aGlzLiNjYWNoZVtzZWFyY2hUZXh0XSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICAgIGNvbnN0IHJlc3VsdHMgPSBhd2FpdCBpdGVtcyhzZWFyY2hUZXh0KS5jYXRjaCgoKSA9PiBbXSkuZmluYWxseSgoKSA9PiB0aGlzLmxvYWRpbmcgPSBmYWxzZSk7XHJcbiAgICAgIGNvbnN0IG9iakl0ZW0gPSBBcnJheS50b09iamVjdChyZXN1bHRzLCB0aGlzLnZhbHVlRmllbGQpO1xyXG4gICAgICB0aGlzLiNhbGxJdGVtID0ge1xyXG4gICAgICAgIC4uLnRoaXMuI2FsbEl0ZW0sXHJcbiAgICAgICAgLi4ub2JqSXRlbVxyXG4gICAgICB9O1xyXG4gICAgICB0aGlzLiNjYWNoZVtzZWFyY2hUZXh0XSA9IHJlc3VsdHMudW5pb24odGhpcy52YWx1ZUZpZWxkKTtcclxuICAgIH1cclxuICAgIGlmICghdGhpcy5tdWx0aXBsZSkge1xyXG4gICAgICByZXR1cm4gdGhpcy4jY2FjaGVbc2VhcmNoVGV4dF07XHJcbiAgICB9XHJcbiAgICBjb25zdCBzZWxlY3RlZEl0ZW1zID0gYXdhaXQgdGhpcy4jbG9hZFNlbGVjdGVkSXRlbXModGhpcy5mb3JtQ29udHJvbC52YWx1ZSwgaXRlbXMpO1xyXG4gICAgLy8gxJDGsGEgbmjhu69uZyBzZWxlY3RlZEl0ZW1zIGzDqm4gxJHhuqd1IG7hur91IGtow7RuZyBtYXQtc2VsZWN0LXRyaWdnZXIgc+G6vSBraMO0bmcgd29ya1xyXG4gICAgcmV0dXJuIFsuLi5zZWxlY3RlZEl0ZW1zLCAuLi50aGlzLiNjYWNoZVtzZWFyY2hUZXh0XV0udW5pb24odGhpcy52YWx1ZUZpZWxkKTtcclxuICB9XHJcblxyXG4gIG9uU2VsZWN0aW9uQ2hhbmdlID0gKGNoYW5nZTogTWF0U2VsZWN0Q2hhbmdlKSA9PiB7XHJcbiAgICB0aGlzLmFsbFNlbGVjdGVkID0gIXRoaXMuc2VsZWN0Lm9wdGlvbnMuc29tZShlID0+ICFlLnNlbGVjdGVkKTtcclxuICAgIGNvbnN0IHZhbHVlID0gY2hhbmdlPy52YWx1ZSA/PyAnJztcclxuICAgIGlmICh0aGlzLm11bHRpcGxlKSB7XHJcbiAgICAgIHRoaXMuI29uQ2hhbmdlKHZhbHVlIHx8IFtdKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2VhcmNoVGVybSQubmV4dCgnJyk7XHJcbiAgICAgIHRoaXMuI29uQ2hhbmdlKHZhbHVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uU2VsZWN0QWxsKCkge1xyXG4gICAgaWYgKHRoaXMuYWxsU2VsZWN0ZWQpIHtcclxuICAgICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWx1ZSh0aGlzLnNlbGVjdC5vcHRpb25zLm1hcChlID0+IGUudmFsdWUpKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUoW10pO1xyXG4gICAgfVxyXG4gICAgdGhpcy4jb25DaGFuZ2UodGhpcy5mb3JtQ29udHJvbC52YWx1ZSk7XHJcbiAgfVxyXG5cclxuICByZVZhbGlkYXRlID0gKCkgPT4ge1xyXG4gICAgdGhpcy5mb3JtQ29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHsgZW1pdEV2ZW50OiB0cnVlIH0pO1xyXG4gIH1cclxuXHJcbiAgI29uQ2hhbmdlID0gYXN5bmMgKHZhbHVlOiBib29sZWFuIHwgbnVtYmVyIHwgc3RyaW5nIHwgKG51bWJlciB8IHN0cmluZylbXSkgPT4ge1xyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XHJcbiAgICAgIHRoaXMubW9kZWxDaGFuZ2UuZW1pdCh2YWx1ZSk7XHJcbiAgICAgIHRoaXMuc2RDaGFuZ2UuZW1pdCh2YWx1ZSk7XHJcbiAgICAgIHRoaXMuc2RTZWxlY3Rpb24uZW1pdCh7XHJcbiAgICAgICAgdmFsdWU6IHZhbHVlLFxyXG4gICAgICAgIGl0ZW1zOiB2YWx1ZS5tYXAodmFsID0+IHRoaXMuI2FsbEl0ZW1bdmFsPy50b1N0cmluZygpXSlcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLm1vZGVsQ2hhbmdlLmVtaXQodmFsdWUpO1xyXG4gICAgICB0aGlzLnNkQ2hhbmdlLmVtaXQodmFsdWUpO1xyXG4gICAgICB0aGlzLnNkU2VsZWN0aW9uLmVtaXQoe1xyXG4gICAgICAgIHZhbHVlOiB2YWx1ZSxcclxuICAgICAgICBpdGVtOiB0aGlzLiNhbGxJdGVtW3ZhbHVlPy50b1N0cmluZygpXVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNsZWFyID0gKCRldmVudD86IGFueSkgPT4ge1xyXG4gICAgJGV2ZW50Py5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIGlmICh0aGlzLm11bHRpcGxlKSB7XHJcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUoW10pO1xyXG4gICAgICB0aGlzLm1vZGVsQ2hhbmdlLmVtaXQoW10pO1xyXG4gICAgICB0aGlzLnNkQ2hhbmdlLmVtaXQoW10pO1xyXG4gICAgICB0aGlzLnNkU2VsZWN0aW9uLmVtaXQoe1xyXG4gICAgICAgIHZhbHVlOiBbXSxcclxuICAgICAgICBpdGVtczogW11cclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbHVlKG51bGwpO1xyXG4gICAgICB0aGlzLm1vZGVsQ2hhbmdlLmVtaXQobnVsbCk7XHJcbiAgICAgIHRoaXMuc2RDaGFuZ2UuZW1pdChudWxsKTtcclxuICAgICAgdGhpcy5zZFNlbGVjdGlvbi5lbWl0KHtcclxuICAgICAgICB2YWx1ZTogbnVsbCxcclxuICAgICAgICBpdGVtOiBudWxsXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25DbGljayA9ICgpID0+IHtcclxuICAgIGlmICh0aGlzLnNkVmlldz8udGVtcGxhdGVSZWYpIHtcclxuICAgICAgaWYgKCF0aGlzLmZvcm1Db250cm9sLmRpc2FibGVkICYmICF0aGlzLmlzRm9jdXNlZCkge1xyXG4gICAgICAgIHRoaXMuZm9jdXMoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZm9jdXMgPSAoKSA9PiB7XHJcbiAgICB0aGlzLmlzRm9jdXNlZCA9IHRydWU7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5zZWxlY3Q/LmZvY3VzKCk7XHJcbiAgICAgIHRoaXMuc2VsZWN0Py5vcGVuKCk7XHJcbiAgICB9LCAxMDApO1xyXG4gIH1cclxuXHJcbiAgI2N1c3RvbVZhbGlkYXRvciA9IChmdW5jOiAodmFsdWU6IGFueSkgPT4gc3RyaW5nIHwgUHJvbWlzZTxzdHJpbmc+KTogQXN5bmNWYWxpZGF0b3JGbiA9PiB7XHJcbiAgICByZXR1cm4gYXN5bmMgKGM6IEFic3RyYWN0Q29udHJvbCk6IFByb21pc2U8eyBba2V5OiBzdHJpbmddOiBhbnkgfSB8IG51bGw+ID0+IHtcclxuICAgICAgY29uc3QgdmFsdWUgPSBjLnZhbHVlIHx8IG51bGw7XHJcbiAgICAgIGlmIChmdW5jICYmIHR5cGVvZiAoZnVuYykgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICBjb25zdCByZXN1bHQgPSBmdW5jKHZhbHVlKTtcclxuICAgICAgICBpZiAocmVzdWx0IGluc3RhbmNlb2YgUHJvbWlzZSkge1xyXG4gICAgICAgICAgY29uc3QgbWVzc2FnZSA9IGF3YWl0IHJlc3VsdDtcclxuICAgICAgICAgIGlmIChtZXNzYWdlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgY3VzdG9tVmFsaWRhdG9yOiBtZXNzYWdlXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHJlc3VsdCkge1xyXG4gICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgY3VzdG9tVmFsaWRhdG9yOiByZXN1bHRcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIG9uT3BlbkNoYW5nZSA9IChpc09wZW5lZDogYm9vbGVhbikgPT4ge1xyXG4gICAgaWYgKGlzT3BlbmVkKSB7XHJcbiAgICAgIHRoaXMuaXNGb2N1c2VkID0gdHJ1ZTtcclxuICAgICAgaWYgKHRoaXMuI2lucHV0KSB7XHJcbiAgICAgICAgdGhpcy4jaW5wdXQudmFsdWUgPSBudWxsO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuc2VhcmNoVGVybSQubmV4dCgnJyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmlzRm9jdXNlZCA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25PcHRpb25DaGFuZ2UgPSAodG9vbHRpcDogTWF0VG9vbHRpcCkgPT4ge1xyXG4gICAgdG9vbHRpcD8uaGlkZSgpO1xyXG4gIH1cclxuXHJcbiAgdHJhY2tCeUtleSA9IChpbmRleCwgaXRlbSkgPT4ge1xyXG4gICAgaWYgKHRoaXMudmFsdWVGaWVsZCkge1xyXG4gICAgICByZXR1cm4gaXRlbT8uW3RoaXMudmFsdWVGaWVsZF07XHJcbiAgICB9XHJcbiAgICByZXR1cm4gaXRlbTtcclxuICB9XHJcbn1cclxuXHJcbnR5cGUgU2VhcmNoRnVuYyA9IChzZWFyY2hUZXh0Pzogc3RyaW5nIHwgc3RyaW5nW10sIGlzRm9ybVZhbHVlPzogYm9vbGVhbikgPT4gUHJvbWlzZTxhbnlbXT47Il19
|
|
405
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJDOi9Vc2Vycy9uZ2hpYXR0MTVfb25lbW91bnQvRG9jdW1lbnRzL2xpYi1jb3JlLXVpL3Byb2plY3RzL3NkLWNvcmUvc2VsZWN0LyIsInNvdXJjZXMiOlsic3JjL2xpYi9zZWxlY3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBb0MsU0FBUyxFQUFFLHVCQUF1QixFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5SyxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBNkQsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvRyxPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUU3QixPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBa0IsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3RixPQUFPLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ25ELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxhQUFhLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQVE1RSxNQUFNLE9BQU8sUUFBUTtJQXFIbkIsWUFDVSxHQUFzQjtRQUF0QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQXJIaEMseUJBQWlCO1FBUWpCLGdCQUFRLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBQztRQU1sQix3QkFBbUIsR0FBRyxLQUFLLENBQUM7UUFLNUIsZ0JBQVcsR0FBRyxJQUFJLGFBQWEsRUFBRSxDQUFDO1FBRWxDLGdCQUFXLEdBQUcsSUFBSSxPQUFP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UTtxQkFNbEIsU0FBUyxTQUFDLFFBQVE7bUJBRWxCLEtBQUs7bUNBTUwsS0FBSyxTQUFDLHFCQUFxQjttQkFRM0IsS0FBSzttQkFFTCxLQUFLO29CQVNMLEtBQUs7MEJBQ0wsS0FBSztvQkFJTCxLQUFLO29CQU1MLEtBQUs7eUJBWUwsS0FBSzsyQkFDTCxLQUFLO3VCQVNMLEtBQUs7d0JBSUwsS0FBSzt1QkFLTCxLQUFLO3dCQVNMLEtBQUssU0FBQyxVQUFVO29CQUdoQixLQUFLO3dCQUVMLEtBQUssU0FBQyxVQUFVOytCQUdoQixZQUFZLFNBQUMsMkJBQTJCO3lCQUV4QyxLQUFLLFNBQUMsV0FBVzswQkFJakIsTUFBTTt1QkFDTixNQUFNOzBCQUNOLE1BQU07cUJBWU4sWUFBWSxTQUFDLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBDaGFuZ2VEZXRlY3RvclJlZiwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbnRlbnRDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOZ0Zvcm0sIFZhbGlkYXRvcnMsIFZhbGlkYXRvckZuLCBBYnN0cmFjdENvbnRyb2wsIEFzeW5jVmFsaWRhdG9yRm4sIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0ICogYXMgdXVpZCBmcm9tICd1dWlkJztcclxuaW1wb3J0IHsgTWF0U2VsZWN0LCBNYXRTZWxlY3RDaGFuZ2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUsIG9mLCBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBtYXAsIHN0YXJ0V2l0aCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBNYXRJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcclxuaW1wb3J0IHsgU2RTZWxlY3REaXNwbGF5RGVmRGlyZWN0aXZlIH0gZnJvbSAnLi9zZWxlY3QtZGlzcGxheS1kZWYuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgU2RGb3JtQ29udHJvbCwgU2RWaWV3RGVmRGlyZWN0aXZlIH0gZnJvbSAnQHNkLWFuZ3VsYXIvY29yZS9jb21tb24nO1xyXG5pbXBvcnQgeyBNYXRUb29sdGlwIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc2Qtc2VsZWN0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9zZWxlY3QuY29tcG9uZW50LnNjc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2RTZWxlY3QgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XHJcbiAgI2lucHV0OiBNYXRJbnB1dDtcclxuICBAVmlld0NoaWxkKE1hdElucHV0KSBzZXQgaW5wdXQoaW5wdXQ6IE1hdElucHV0KSB7XHJcbiAgICBpZiAodGhpcy4jaW5wdXQgIT09IGlucHV0KSB7XHJcbiAgICAgIHRoaXMuI2lucHV0ID0gaW5wdXQ7XHJcbiAgICAgIHRoaXMuI2lucHV0LnZhbHVlID0gbnVsbDtcclxuICAgIH1cclxuICB9XHJcbiAgQFZpZXdDaGlsZCgnc2VsZWN0Jykgc2VsZWN0OiBNYXRTZWxlY3Q7XHJcbiAgI25hbWUgPSB1dWlkLnY0KCk7XHJcbiAgQElucHV0KCkgc2V0IG5hbWUodmFsOiBzdHJpbmcpIHtcclxuICAgIGlmICh2YWwpIHtcclxuICAgICAgdGhpcy4jbmFtZSA9IHZhbDtcclxuICAgIH1cclxuICB9XHJcbiAgZGlzYWJsZUVycm9yTWVzc2FnZSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgnZGlzYWJsZUVycm9yTWVzc2FnZScpIHNldCBfZGlzYWJsZUVycm9yTWVzc2FnZSh2YWw6IGJvb2xlYW4gfCAnJykge1xyXG4gICAgdGhpcy5kaXNhYmxlRXJyb3JNZXNzYWdlID0gKHZhbCA9PT0gJycpIHx8IHZhbDtcclxuICAgIHZhbCA9ICh2YWwgPT09ICcnKSB8fCB2YWw7XHJcbiAgfVxyXG4gIGZvcm1Db250cm9sID0gbmV3IFNkRm9ybUNvbnRyb2woKTtcclxuXHJcbiAgc2VhcmNoVGVybSQgPSBuZXcgU3ViamVjdDxzdHJpbmc+KCk7XHJcblxyXG4gIEBJbnB1dCgpIHNpemU6ICdzbScgfCAnbGcnO1xyXG4gICNmb3JtOiBGb3JtR3JvdXA7XHJcbiAgQElucHV0KCkgc2V0IGZvcm0odmFsOiBOZ0Zvcm0gfCBGb3JtR3JvdXApIHtcclxuICAgIGlmICh2YWwpIHtcclxuICAgICAgaWYgKHZhbCBpbnN0YW5jZW9mIE5nRm9ybSkge1xyXG4gICAgICAgIHRoaXMuI2Zvcm0gPSB2YWwuZm9ybTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLiNmb3JtID0gdmFsO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZztcclxuXHJcbiAgLy8gTW9kZWxcclxuICBkaXNwbGF5OiBPYnNlcnZhYmxlPHN0cmluZz47XHJcbiAgQElucHV0KCkgc2V0IG1vZGVsKHZhbHVlOiB1bmRlZmluZWQgfCBib29sZWFuIHwgbnVtYmVyIHwgc3RyaW5nIHwgKG51bWJlciB8IHN0cmluZylbXSkge1xyXG4gICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWx1ZSh2YWx1ZSk7XHJcbiAgfVxyXG4gIC8vIEl0ZW1zXHJcblxyXG4gICNpdGVtc0NoYW5nZXMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueVtdIHwgU2VhcmNoRnVuYz4oW10pO1xyXG4gIEBJbnB1dCgpIHNldCBpdGVtcyhpdGVtczogdW5kZWZpbmVkIHwgYW55W10gfCBTZWFyY2hGdW5jKSB7XHJcbiAgICB0aGlzLiNkZWxheSA9IDA7XHJcbiAgICBpZiAoIWl0ZW1zKSB7XHJcbiAgICAgIHRoaXMuI2l0ZW1zQ2hhbmdlcy5uZXh0KFtdKTtcclxuICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShpdGVtcykpIHtcclxuICAgICAgdGhpcy4jaXRlbXNDaGFuZ2VzLm5leHQoaXRlbXMuZmlsdGVyKGUgPT4gZSAhPT0gbnVsbCAmJiBlICE9PSB1bmRlZmluZWQpKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuI2RlbGF5ID0gNTAwO1xyXG4gICAgICB0aGlzLiNpdGVtc0NoYW5nZXMubmV4dChpdGVtcyk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNlYXJjaFRlcm0kLm5leHQoJycpO1xyXG4gIH1cclxuICBASW5wdXQoKSB2YWx1ZUZpZWxkOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgZGlzcGxheUZpZWxkOiBzdHJpbmc7XHJcblxyXG4gIC8vIFNlcnZlciBzZWFyY2hcclxuICBsb2FkaW5nID0gZmFsc2U7XHJcbiAgI2RlbGF5ID0gMjAwOyAvLyBTYXUga2hv4bqjbmcgdGjhu51pIGdpYW4gZGVsYXkgbuG6v3Uga2jDtG5nIGPDsyB0aGF5IMSR4buVaSB0aMOsIHRow6wgbeG7m2kgYuG6r3QgxJHhuqd1IHRo4buxYyBoaeG7h24gZ+G7jWkgaMOgbVxyXG5cclxuICAvLyBWYWxpZGF0b3JcclxuICBpc1JlcXVpcmVkID0gZmFsc2U7XHJcbiAgI3ZhbGlkYXRvcjogKHZhbHVlOiBhbnkpID0+IHN0cmluZyB8IFByb21pc2U8c3RyaW5nPjtcclxuICBASW5wdXQoKSBzZXQgcmVxdWlyZWQodmFsOiBib29sZWFuIHwgJycpIHtcclxuICAgIHRoaXMuaXNSZXF1aXJlZCA9ICh2YWwgPT09ICcnKSB8fCB2YWw7XHJcbiAgICB0aGlzLiN1cGRhdGVWYWxpZGF0b3IoKTtcclxuICB9XHJcbiAgQElucHV0KCkgc2V0IHZhbGlkYXRvcih2YWxpZGF0b3I6ICh2YWx1ZTogYW55KSA9PiBzdHJpbmcgfCBQcm9taXNlPHN0cmluZz4pIHtcclxuICAgIHRoaXMuI3ZhbGlkYXRvciA9IHZhbGlkYXRvcjtcclxuICAgIHRoaXMuI3VwZGF0ZVZhbGlkYXRvcigpO1xyXG4gIH1cclxuICAvLyBPcHRpb25hbFxyXG4gIEBJbnB1dCgpIHNldCBkaXNhYmxlZCh2YWw6IGJvb2xlYW4gfCAnJykge1xyXG4gICAgdmFsID0gKHZhbCA9PT0gJycpIHx8IHZhbDtcclxuICAgIGlmICh2YWwpIHtcclxuICAgICAgdGhpcy5mb3JtQ29udHJvbC5kaXNhYmxlKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmZvcm1Db250cm9sLmVuYWJsZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuICBtdWx0aXBsZSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgnbXVsdGlwbGUnKSBzZXQgX211bHRpcGxlKHZhbDogYm9vbGVhbiB8ICcnKSB7XHJcbiAgICB0aGlzLm11bHRpcGxlID0gKHZhbCA9PT0gJycpIHx8IHZhbDtcclxuICB9XHJcbiAgQElucHV0KCkgbGltaXQgPSAxMDA7XHJcbiAgZmlsdGVyZWQgPSBmYWxzZTtcclxuICBASW5wdXQoJ2ZpbHRlcmVkJykgc2V0IF9maWx0ZXJlZCh2YWw6IGJvb2xlYW4gfCAnJykge1xyXG4gICAgdGhpcy5maWx0ZXJlZCA9ICh2YWwgPT09ICcnKSB8fCB2YWw7XHJcbiAgfVxyXG4gIEBDb250ZW50Q2hpbGQoU2RTZWxlY3REaXNwbGF5RGVmRGlyZWN0aXZlKSBzZWxlY3REaXNwbGF5RGVmOiBTZFNlbGVjdERpc3BsYXlEZWZEaXJlY3RpdmU7XHJcbiAgc2VsZWN0QWxsID0gZmFsc2U7XHJcbiAgQElucHV0KCdzZWxlY3RBbGwnKSBzZXQgX3NlbGVjdEFsbCh2YWw6IGJvb2xlYW4gfCAnJykge1xyXG4gICAgdGhpcy5zZWxlY3RBbGwgPSAodmFsID09PSAnJykgfHwgdmFsO1xyXG4gIH1cclxuXHJcbiAgQE91dHB1dCgpIG1vZGVsQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBzZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgc2RTZWxlY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyPHsgdmFsdWU6IGFueSB8IGFueVtdLCBpdGVtPzogYW55LCBpdGVtcz86IGFueVtdIH0+KCk7XHJcbiAgI3N1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcclxuICBzZWxlY3RlZEl0ZW1zOiBPYnNlcnZhYmxlPGFueVtdPjtcclxuICAjYWxsSXRlbXM6IE9ic2VydmFibGU8YW55W10+O1xyXG4gIGZpbHRlcmVkSXRlbXM6IE9ic2VydmFibGU8YW55W10+O1xyXG4gICNhbGxJdGVtOiB7XHJcbiAgICBba2V5OiBzdHJpbmddOiBhbnlcclxuICB9ID0ge307XHJcbiAgYWxsU2VsZWN0ZWQgPSBmYWxzZTtcclxuICAjY2FjaGU6IHtcclxuICAgIFtrZXk6IHN0cmluZ106IGFueVtdXHJcbiAgfSA9IHt9O1xyXG4gIEBDb250ZW50Q2hpbGQoU2RWaWV3RGVmRGlyZWN0aXZlKSBzZFZpZXc6IFNkVmlld0RlZkRpcmVjdGl2ZTtcclxuICBpc0ZvY3VzZWQgPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuI3N1YnNjcmlwdGlvbi5hZGQodGhpcy5mb3JtQ29udHJvbC5zZENoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgdGhpcy5mb3JtQ29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICAgIHRoaXMucmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgfSkpO1xyXG4gICAgdGhpcy4jYWxsSXRlbXMgPSBjb21iaW5lTGF0ZXN0KFtcclxuICAgICAgdGhpcy4jaXRlbXNDaGFuZ2VzLmFzT2JzZXJ2YWJsZSgpLFxyXG4gICAgICB0aGlzLnNlYXJjaFRlcm0kLmFzT2JzZXJ2YWJsZSgpLnBpcGUoc3RhcnRXaXRoKCcnKSwgZGVib3VuY2VUaW1lKHRoaXMuI2RlbGF5KSksXHJcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUoc3RhcnRXaXRoKHRoaXMuZm9ybUNvbnRyb2wudmFsdWUpKV0pLnBpcGUoXHJcbiAgICAgICAgc3dpdGNoTWFwKGFzeW5jIChbaXRlbXMsIHZhbCwgZm9ybVZhbHVlXSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHR5cGVvZiAoaXRlbXMpID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBhd2FpdCB0aGlzLiNsb2FkSXRlbXModmFsLCBpdGVtcyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLiNhbGxJdGVtID0gaXRlbXMudG9PYmplY3QodGhpcy52YWx1ZUZpZWxkKTtcclxuICAgICAgICAgIGNvbnN0IGlzQXJyYXkgPSBBcnJheS5pc0FycmF5KGZvcm1WYWx1ZSk7XHJcbiAgICAgICAgICBjb25zdCBoYXNGaWVsZHMgPSAhIXRoaXMudmFsdWVGaWVsZCAmJiAhIXRoaXMuZGlzcGxheUZpZWxkO1xyXG4gICAgICAgICAgY29uc3QgZmlsdGVyZWRJdGVtcyA9IGl0ZW1zLmZpbHRlcihpdGVtID0+IHtcclxuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBoYXNGaWVsZHMgPyBpdGVtW3RoaXMudmFsdWVGaWVsZF0gOiBpdGVtO1xyXG4gICAgICAgICAgICBjb25zdCBkaXNwbGF5ID0gaGFzRmllbGRzID8gaXRlbVt0aGlzLmRpc3BsYXlGaWVsZF0gOiBpdGVtO1xyXG4gICAgICAgICAgICBpZiAoU3RyaW5nLmFsaWFzSW5jbHVkZXModmFsdWUsIHZhbCkgfHwgU3RyaW5nLmFsaWFzSW5jbHVkZXMoZGlzcGxheSwgdmFsKSkge1xyXG4gICAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChpc0FycmF5KSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIGZvcm1WYWx1ZS5zb21lKGUgPT4gZSA9PT0gdmFsdWUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiBmb3JtVmFsdWUgPT09IHZhbHVlO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICBpZiAoaXRlbXMubGVuZ3RoIDw9IHRoaXMubGltaXQpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZpbHRlcmVkSXRlbXM7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAvLyDEkMawYSBuaOG7r25nIHNlbGVjdGVkSXRlbXMgbMOqbiDEkeG6p3UgbuG6v3Uga2jDtG5nIG1hdC1zZWxlY3QtdHJpZ2dlciBz4bq9IGtow7RuZyB3b3JrXHJcbiAgICAgICAgICByZXR1cm4gZmlsdGVyZWRJdGVtcy5zb3J0KChjdXJyZW50LCBuZXh0KSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlMSA9IGhhc0ZpZWxkcyA/IGN1cnJlbnRbdGhpcy52YWx1ZUZpZWxkXSA6IGN1cnJlbnQ7XHJcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlMiA9IGhhc0ZpZWxkcyA/IG5leHRbdGhpcy52YWx1ZUZpZWxkXSA6IG5leHQ7XHJcbiAgICAgICAgICAgIGxldCBmbGFnMSA9IDA7XHJcbiAgICAgICAgICAgIGxldCBmbGFnMiA9IDA7XHJcbiAgICAgICAgICAgIGlmIChpc0FycmF5KSB7XHJcbiAgICAgICAgICAgICAgZmxhZzEgPSBmb3JtVmFsdWUuc29tZShlID0+IGUgPT09IHZhbHVlMSkgPyAxIDogMDtcclxuICAgICAgICAgICAgICBmbGFnMiA9IGZvcm1WYWx1ZS5zb21lKGUgPT4gZSA9PT0gdmFsdWUyKSA/IDEgOiAwO1xyXG4gICAgICAgICAgICAgIHJldHVybiBmbGFnMiAtIGZsYWcxO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGZsYWcxID0gZm9ybVZhbHVlID09PSB2YWx1ZTEgPyAxIDogMDtcclxuICAgICAgICAgICAgZmxhZzIgPSBmb3JtVmFsdWUgPT09IHZhbHVlMiA/IDEgOiAwO1xyXG4gICAgICAgICAgICByZXR1cm4gZmxhZzIgLSBmbGFnMTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pKTtcclxuICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IGNvbWJpbmVMYXRlc3QoW1xyXG4gICAgICB0aGlzLiNpdGVtc0NoYW5nZXMuYXNPYnNlcnZhYmxlKCksXHJcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUoc3RhcnRXaXRoKHRoaXMuZm9ybUNvbnRyb2wudmFsdWUpKV0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIHN3aXRjaE1hcChhc3luYyAoW2l0ZW1zLCB2YWxdKSA9PiB7XHJcbiAgICAgICAgICAvLyBWw6wgbeG7mXQgc+G7kSBsw70gZG8gY2jGsGEgeMOhYyDEkeG7i25oIG3DoCBraGkgc+G7rSBk4bulbmcgc2RWaWV3RGVmIHRow6wga2hpIGNodXnhu4NuIHNhbmcgZOG6oW5nIHZpZXcgc+G6vSB0cmlnZ2VyIHZhbCA9IG51bGxcclxuICAgICAgICAgIC8vIE5oxrBuZyBmb3JtQ29udHJvbC52YWx1ZSB24bqrbiBjw7MgZ2nDoSB0cuG7iyDEkcO6bmcgbsOqbiB0aOG7sWMgaGnhu4duIGfDoW4gdmFsID0gdGhpcy5mb3JtQ29udHJvbC52YWx1ZTtcclxuICAgICAgICAgIHZhbCA9IHRoaXMuZm9ybUNvbnRyb2wudmFsdWU7XHJcbiAgICAgICAgICBpZiAoIXZhbD8udG9TdHJpbmcoKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gW107XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBjb25zdCB2YWx1ZXMgPSBBcnJheS5pc0FycmF5KHZhbCkgPyB2YWwgOiBbdmFsXTtcclxuICAgICAgICAgIGlmICghdGhpcy52YWx1ZUZpZWxkKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZXM7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAodHlwZW9mIChpdGVtcykgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuI2xvYWRTZWxlY3RlZEl0ZW1zKHZhbCwgaXRlbXMpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmV0dXJuIHZhbHVlcy5tYXAodmFsdWUgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gaXRlbXM/LmZpbmQoaXRlbSA9PiBpdGVtW3RoaXMudmFsdWVGaWVsZF0gPT09IHZhbHVlKSB8fCB7XHJcbiAgICAgICAgICAgICAgW3RoaXMudmFsdWVGaWVsZF06IHZhbHVlLFxyXG4gICAgICAgICAgICAgIFt0aGlzLmRpc3BsYXlGaWVsZF06IHZhbHVlXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gICAgdGhpcy5maWx0ZXJlZEl0ZW1zID0gdGhpcy4jYWxsSXRlbXMucGlwZShtYXAoYWxsSXRlbXMgPT4gYWxsSXRlbXMucGFnaW5nKHRoaXMubGltaXQpKSk7XHJcbiAgICB0aGlzLmRpc3BsYXkgPSB0aGlzLnNlbGVjdGVkSXRlbXMucGlwZShcclxuICAgICAgbWFwKHNlbGVjdGVkSXRlbXMgPT4gc2VsZWN0ZWRJdGVtcz8ubWFwKGl0ZW0gPT4gdGhpcy5kaXNwbGF5RmllbGQgPyBpdGVtW3RoaXMuZGlzcGxheUZpZWxkXSA6IGl0ZW0pPy5qb2luKCcsICcpKSk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLiNmb3JtPy5hZGRDb250cm9sKHRoaXMuI25hbWUsIHRoaXMuZm9ybUNvbnRyb2wpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLiNmb3JtPy5yZW1vdmVDb250cm9sKHRoaXMuI25hbWUpO1xyXG4gICAgdGhpcy4jc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICAjdXBkYXRlVmFsaWRhdG9yID0gKCkgPT4ge1xyXG4gICAgdGhpcy5mb3JtQ29udHJvbC5jbGVhclZhbGlkYXRvcnMoKTtcclxuICAgIHRoaXMuZm9ybUNvbnRyb2wuY2xlYXJBc3luY1ZhbGlkYXRvcnMoKTtcclxuICAgIGNvbnN0IHZhbGlkYXRvcnM6IFZhbGlkYXRvckZuW10gPSBbXTtcclxuICAgIGNvbnN0IGFzeW5jVmFsaWRhdG9yczogQXN5bmNWYWxpZGF0b3JGbltdID0gW107XHJcbiAgICBpZiAodGhpcy5pc1JlcXVpcmVkKSB7XHJcbiAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLiN2YWxpZGF0b3IpIHtcclxuICAgICAgYXN5bmNWYWxpZGF0b3JzLnB1c2godGhpcy4jY3VzdG9tVmFsaWRhdG9yKHRoaXMuI3ZhbGlkYXRvcikpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWxpZGF0b3JzKHZhbGlkYXRvcnMpO1xyXG4gICAgdGhpcy5mb3JtQ29udHJvbC5zZXRBc3luY1ZhbGlkYXRvcnMoYXN5bmNWYWxpZGF0b3JzKTtcclxuICAgIHRoaXMuZm9ybUNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gIH1cclxuXHJcbiAgI2xvYWRTZWxlY3RlZEl0ZW1zID0gYXN5bmMgKHZhbHVlOiBzdHJpbmcgfCBzdHJpbmdbXSwgaXRlbXM6IFNlYXJjaEZ1bmMpID0+IHtcclxuICAgIGlmICghdmFsdWU/LnRvU3RyaW5nKCkpIHtcclxuICAgICAgcmV0dXJuIFtdO1xyXG4gICAgfVxyXG4gICAgY29uc3QgdmFsdWVzID0gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFt2YWx1ZV07XHJcbiAgICBpZiAoIXRoaXMudmFsdWVGaWVsZCAmJiAhdGhpcy5kaXNwbGF5RmllbGQpIHtcclxuICAgICAgcmV0dXJuIHZhbHVlcztcclxuICAgIH1cclxuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICBpZiAodmFsdWVzLnNvbWUodmFsID0+IHRoaXMuI2FsbEl0ZW1bdmFsXSA9PT0gdW5kZWZpbmVkKSkge1xyXG4gICAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgaXRlbXModmFsdWUsIHRydWUpLmNhdGNoKCgpID0+IFtdKS5maW5hbGx5KCgpID0+IHRoaXMubG9hZGluZyA9IGZhbHNlKTtcclxuICAgICAgY29uc3Qgb2JqSXRlbSA9IEFycmF5LnRvT2JqZWN0KHJlc3VsdHMsIHRoaXMudmFsdWVGaWVsZCk7XHJcbiAgICAgIGNvbnN0IG9ialZhbHVlID0gQXJyYXkudG9PYmplY3QoXHJcbiAgICAgICAgdmFsdWVzLm1hcCh2YWwgPT4gKHsgW3ZhbD8udG9TdHJpbmcoKV06IHsgW3RoaXMudmFsdWVGaWVsZF06IHZhbCwgW3RoaXMuZGlzcGxheUZpZWxkXTogdmFsIH0gfSkpLCB0aGlzLnZhbHVlRmllbGQpO1xyXG4gICAgICB0aGlzLiNhbGxJdGVtID0ge1xyXG4gICAgICAgIC4uLm9ialZhbHVlLFxyXG4gICAgICAgIC4uLnRoaXMuI2FsbEl0ZW0sXHJcbiAgICAgICAgLi4ub2JqSXRlbVxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHZhbHVlcy5tYXAodmFsID0+IHRoaXMuI2FsbEl0ZW1bdmFsPy50b1N0cmluZygpXSA/PyB7IFt0aGlzLnZhbHVlRmllbGRdOiB2YWwsIFt0aGlzLmRpc3BsYXlGaWVsZF06IHZhbCB9KTtcclxuICB9XHJcblxyXG4gICNsb2FkSXRlbXMgPSBhc3luYyAoc2VhcmNoVGV4dDogc3RyaW5nLCBpdGVtczogU2VhcmNoRnVuYykgPT4ge1xyXG4gICAgc2VhcmNoVGV4dCA9IHNlYXJjaFRleHQ/LnRvU3RyaW5nKCkgfHwgJyc7XHJcbiAgICBpZiAodGhpcy4jY2FjaGVbc2VhcmNoVGV4dF0gPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgaXRlbXMoc2VhcmNoVGV4dCkuY2F0Y2goKCkgPT4gW10pLmZpbmFsbHkoKCkgPT4gdGhpcy5sb2FkaW5nID0gZmFsc2UpO1xyXG4gICAgICBjb25zdCBvYmpJdGVtID0gQXJyYXkudG9PYmplY3QocmVzdWx0cywgdGhpcy52YWx1ZUZpZWxkKTtcclxuICAgICAgdGhpcy4jYWxsSXRlbSA9IHtcclxuICAgICAgICAuLi50aGlzLiNhbGxJdGVtLFxyXG4gICAgICAgIC4uLm9iakl0ZW1cclxuICAgICAgfTtcclxuICAgICAgdGhpcy4jY2FjaGVbc2VhcmNoVGV4dF0gPSByZXN1bHRzLnVuaW9uKHRoaXMudmFsdWVGaWVsZCk7XHJcbiAgICB9XHJcbiAgICBpZiAoIXRoaXMubXVsdGlwbGUpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuI2NhY2hlW3NlYXJjaFRleHRdO1xyXG4gICAgfVxyXG4gICAgY29uc3Qgc2VsZWN0ZWRJdGVtcyA9IGF3YWl0IHRoaXMuI2xvYWRTZWxlY3RlZEl0ZW1zKHRoaXMuZm9ybUNvbnRyb2wudmFsdWUsIGl0ZW1zKTtcclxuICAgIC8vIMSQxrBhIG5o4buvbmcgc2VsZWN0ZWRJdGVtcyBsw6puIMSR4bqndSBu4bq/dSBraMO0bmcgbWF0LXNlbGVjdC10cmlnZ2VyIHPhur0ga2jDtG5nIHdvcmtcclxuICAgIHJldHVybiBbLi4uc2VsZWN0ZWRJdGVtcywgLi4udGhpcy4jY2FjaGVbc2VhcmNoVGV4dF1dLnVuaW9uKHRoaXMudmFsdWVGaWVsZCk7XHJcbiAgfVxyXG5cclxuICBvblNlbGVjdGlvbkNoYW5nZSA9IChjaGFuZ2U6IE1hdFNlbGVjdENoYW5nZSkgPT4ge1xyXG4gICAgdGhpcy5hbGxTZWxlY3RlZCA9ICF0aGlzLnNlbGVjdC5vcHRpb25zLnNvbWUoZSA9PiAhZS5zZWxlY3RlZCk7XHJcbiAgICBjb25zdCB2YWx1ZSA9IGNoYW5nZT8udmFsdWUgPz8gJyc7XHJcbiAgICBpZiAodGhpcy5tdWx0aXBsZSkge1xyXG4gICAgICB0aGlzLiNvbkNoYW5nZSh2YWx1ZSB8fCBbXSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNlYXJjaFRlcm0kLm5leHQoJycpO1xyXG4gICAgICB0aGlzLiNvbkNoYW5nZSh2YWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvblNlbGVjdEFsbCgpIHtcclxuICAgIGlmICh0aGlzLmFsbFNlbGVjdGVkKSB7XHJcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUodGhpcy5zZWxlY3Qub3B0aW9ucy5tYXAoZSA9PiBlLnZhbHVlKSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbHVlKFtdKTtcclxuICAgIH1cclxuICAgIHRoaXMuI29uQ2hhbmdlKHRoaXMuZm9ybUNvbnRyb2wudmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgcmVWYWxpZGF0ZSA9ICgpID0+IHtcclxuICAgIHRoaXMuZm9ybUNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7IGVtaXRFdmVudDogdHJ1ZSB9KTtcclxuICB9XHJcblxyXG4gICNvbkNoYW5nZSA9IGFzeW5jICh2YWx1ZTogYm9vbGVhbiB8IG51bWJlciB8IHN0cmluZyB8IChudW1iZXIgfCBzdHJpbmcpW10pID0+IHtcclxuICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xyXG4gICAgICB0aGlzLm1vZGVsQ2hhbmdlLmVtaXQodmFsdWUpO1xyXG4gICAgICB0aGlzLnNkQ2hhbmdlLmVtaXQodmFsdWUpO1xyXG4gICAgICB0aGlzLnNkU2VsZWN0aW9uLmVtaXQoe1xyXG4gICAgICAgIHZhbHVlOiB2YWx1ZSxcclxuICAgICAgICBpdGVtczogdmFsdWUubWFwKHZhbCA9PiB0aGlzLiNhbGxJdGVtW3ZhbD8udG9TdHJpbmcoKV0pXHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5tb2RlbENoYW5nZS5lbWl0KHZhbHVlKTtcclxuICAgICAgdGhpcy5zZENoYW5nZS5lbWl0KHZhbHVlKTtcclxuICAgICAgdGhpcy5zZFNlbGVjdGlvbi5lbWl0KHtcclxuICAgICAgICB2YWx1ZTogdmFsdWUsXHJcbiAgICAgICAgaXRlbTogdGhpcy4jYWxsSXRlbVt2YWx1ZT8udG9TdHJpbmcoKV1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjbGVhciA9ICgkZXZlbnQ/OiBhbnkpID0+IHtcclxuICAgICRldmVudD8uc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICBpZiAodGhpcy5tdWx0aXBsZSkge1xyXG4gICAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbHVlKFtdKTtcclxuICAgICAgdGhpcy5tb2RlbENoYW5nZS5lbWl0KFtdKTtcclxuICAgICAgdGhpcy5zZENoYW5nZS5lbWl0KFtdKTtcclxuICAgICAgdGhpcy5zZFNlbGVjdGlvbi5lbWl0KHtcclxuICAgICAgICB2YWx1ZTogW10sXHJcbiAgICAgICAgaXRlbXM6IFtdXHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWx1ZShudWxsKTtcclxuICAgICAgdGhpcy5tb2RlbENoYW5nZS5lbWl0KG51bGwpO1xyXG4gICAgICB0aGlzLnNkQ2hhbmdlLmVtaXQobnVsbCk7XHJcbiAgICAgIHRoaXMuc2RTZWxlY3Rpb24uZW1pdCh7XHJcbiAgICAgICAgdmFsdWU6IG51bGwsXHJcbiAgICAgICAgaXRlbTogbnVsbFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uQ2xpY2sgPSAoKSA9PiB7XHJcbiAgICBpZiAodGhpcy5zZFZpZXc/LnRlbXBsYXRlUmVmKSB7XHJcbiAgICAgIGlmICghdGhpcy5mb3JtQ29udHJvbC5kaXNhYmxlZCAmJiAhdGhpcy5pc0ZvY3VzZWQpIHtcclxuICAgICAgICB0aGlzLmZvY3VzKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZvY3VzID0gKCkgPT4ge1xyXG4gICAgdGhpcy5pc0ZvY3VzZWQgPSB0cnVlO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuc2VsZWN0Py5mb2N1cygpO1xyXG4gICAgICB0aGlzLnNlbGVjdD8ub3BlbigpO1xyXG4gICAgfSwgMTAwKTtcclxuICB9XHJcblxyXG4gICNjdXN0b21WYWxpZGF0b3IgPSAoZnVuYzogKHZhbHVlOiBhbnkpID0+IHN0cmluZyB8IFByb21pc2U8c3RyaW5nPik6IEFzeW5jVmFsaWRhdG9yRm4gPT4ge1xyXG4gICAgcmV0dXJuIGFzeW5jIChjOiBBYnN0cmFjdENvbnRyb2wpOiBQcm9taXNlPHsgW2tleTogc3RyaW5nXTogYW55IH0gfCBudWxsPiA9PiB7XHJcbiAgICAgIGNvbnN0IHZhbHVlID0gYy52YWx1ZSB8fCBudWxsO1xyXG4gICAgICBpZiAoZnVuYyAmJiB0eXBlb2YgKGZ1bmMpID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gZnVuYyh2YWx1ZSk7XHJcbiAgICAgICAgaWYgKHJlc3VsdCBpbnN0YW5jZW9mIFByb21pc2UpIHtcclxuICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBhd2FpdCByZXN1bHQ7XHJcbiAgICAgICAgICBpZiAobWVzc2FnZSkge1xyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgIGN1c3RvbVZhbGlkYXRvcjogbWVzc2FnZVxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChyZXN1bHQpIHtcclxuICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGN1c3RvbVZhbGlkYXRvcjogcmVzdWx0XHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBvbk9wZW5DaGFuZ2UgPSAoaXNPcGVuZWQ6IGJvb2xlYW4pID0+IHtcclxuICAgIGlmIChpc09wZW5lZCkge1xyXG4gICAgICB0aGlzLmlzRm9jdXNlZCA9IHRydWU7XHJcbiAgICAgIGlmICh0aGlzLiNpbnB1dCkge1xyXG4gICAgICAgIHRoaXMuI2lucHV0LnZhbHVlID0gbnVsbDtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnNlYXJjaFRlcm0kLm5leHQoJycpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5pc0ZvY3VzZWQgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uT3B0aW9uQ2hhbmdlID0gKHRvb2x0aXA6IE1hdFRvb2x0aXApID0+IHtcclxuICAgIHRvb2x0aXA/LmhpZGUoKTtcclxuICB9XHJcblxyXG4gIHRyYWNrQnlLZXkgPSAoaW5kZXgsIGl0ZW0pID0+IHtcclxuICAgIGlmICh0aGlzLnZhbHVlRmllbGQpIHtcclxuICAgICAgcmV0dXJuIGl0ZW0/Llt0aGlzLnZhbHVlRmllbGRdO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGl0ZW07XHJcbiAgfVxyXG59XHJcblxyXG50eXBlIFNlYXJjaEZ1bmMgPSAoc2VhcmNoVGV4dD86IHN0cmluZyB8IHN0cmluZ1tdLCBpc0Zvcm1WYWx1ZT86IGJvb2xlYW4pID0+IFByb21pc2U8YW55W10+OyJdfQ==
|
|
@@ -182,7 +182,9 @@ export class SdSelectEditor {
|
|
|
182
182
|
}
|
|
183
183
|
}
|
|
184
184
|
ngOnInit() {
|
|
185
|
-
|
|
185
|
+
this.formControl.statusChanges;
|
|
186
|
+
__classPrivateFieldGet(this, _subscription).add(this.formControl.sdChanges.subscribe(() => {
|
|
187
|
+
this.formControl.updateValueAndValidity();
|
|
186
188
|
this.ref.markForCheck();
|
|
187
189
|
}));
|
|
188
190
|
}
|
|
@@ -249,4 +251,4 @@ SdSelectEditor.propDecorators = {
|
|
|
249
251
|
sdEdit: [{ type: Output }],
|
|
250
252
|
sdDelete: [{ type: Output }]
|
|
251
253
|
};
|
|
252
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWVkaXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiQzovVXNlcnMvbmdoaWF0dDE1X29uZW1vdW50L0RvY3VtZW50cy9saWItY29yZS11aS9wcm9qZWN0cy9zZC1jb3JlL3NlbGVjdC1lZGl0b3IvIiwic291cmNlcyI6WyJzcmMvbGliL3NlbGVjdC1lZGl0b3IuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBb0MsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZJLE9BQU8sRUFBRSxNQUFNLEVBQWUsVUFBVSxFQUE2RCxNQUFNLGdCQUFnQixDQUFDO0FBQzVILE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBQzdCLE9BQU8sRUFBbUIsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdEUsT0FBTyxFQUFjLE9BQU8sRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBT3hELE1BQU0sT0FBTyxjQUFjO0lBMEZ6QixZQUNVLEdBQXNCO1FBQXRCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBMUZoQyxnQkFBUSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUM7UUFDbEIsZ0JBQVcsR0FBRyxJQUFJLGFBQWEsRUFBRSxDQUFDO1FBc0JsQyx3QkFBaUI7UUFlakIsUUFBUTtRQUNSLHlCQUF3QjtRQVF4QixRQUFRO1FBQ1IsaUJBQWdCLEVBQUUsRUFBQztRQVFuQixZQUFZO1FBQ1osZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNuQiw2QkFBcUQ7UUFxQnJELHdCQUFnQixJQUFJLE9BQU8sRUFBTyxFQUFDO1FBQ25DLHdCQUFnQixJQUFJLE9BQU8sRUFBUyxFQUFDO1FBRTNCLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUN0QyxhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUNuQyxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUE4QixDQUFDO1FBQzdELFVBQUssR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzNCLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ2pDLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQzdDLHdCQUFnQixJQUFJLFlBQVksRUFBRSxFQUFDO1FBd0NuQywyQkFBbUIsR0FBRyxFQUFFO1lBQ3RCLElBQUksQ0FBQyxXQUFXLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDbkMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1lBQ3hDLE1BQU0sVUFBVSxHQUFrQixFQUFFLENBQUM7WUFDckMsTUFBTSxlQUFlLEdBQXVCLEVBQUUsQ0FBQztZQUMvQyxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7Z0JBQ25CLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQ3RDO1lBQ0QsOENBQXFCO2dCQUNuQixlQUFlLENBQUMsSUFBSSxDQUFDLG9EQUFBLElBQUksMkNBQWtDLENBQUMsQ0FBQzthQUM5RDtZQUNELElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQzNDLElBQUksQ0FBQyxXQUFXLENBQUMsa0JBQWtCLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDckQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1FBQzVDLENBQUMsRUFBQTtRQUVELHNCQUFpQixHQUFHLENBQUMsTUFBdUIsRUFBRSxFQUFFO1lBQzlDLE1BQU0sS0FBSyxHQUFHLENBQUEsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLEtBQUssS0FBSSxFQUFFLENBQUM7WUFDbEMsNkNBQUEsSUFBSSxFQUFXLEtBQUssQ0FBQyxDQUFDO1FBQ3hCLENBQUMsQ0FBQTtRQUVELGVBQVUsR0FBRyxHQUFHLEVBQUU7WUFDaEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQy9ELENBQUMsQ0FBQTtRQUVELG9CQUFZLENBQUMsS0FBc0IsRUFBRSxFQUFFOztZQUNyQyxJQUFJLEdBQUcsR0FBRyxLQUFLLENBQUM7WUFDaEIsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQzNDLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQzthQUNkO1lBQ0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDM0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDeEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7Z0JBQ3BCLEtBQUssRUFBRSxHQUFHO2dCQUNWLElBQUksc0ZBQWUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLFdBQUMsT0FBQSxDQUFBLEdBQUcsYUFBSCxHQUFHLHVCQUFILEdBQUcsQ0FBRSxRQUFRLGVBQU8sQ0FBQyxhQUFELENBQUMsdUJBQUQsQ0FBQyxDQUFHLElBQUksQ0FBQyxVQUFVLDJDQUFHLFFBQVEsR0FBRSxDQUFBLEVBQUEsQ0FBQzthQUNuRixDQUFDLENBQUM7UUFDTCxDQUFDLEVBQUE7UUFDRCxVQUFLLEdBQUcsQ0FBQyxNQUFjLEVBQUUsRUFBRTtZQUN6QixNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsZUFBZSxHQUFHO1lBQzFCLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2hDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzVCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3pCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO2dCQUNwQixLQUFLLEVBQUUsSUFBSTtnQkFDWCxJQUFJLEVBQUUsSUFBSTthQUNYLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQTtRQUVELDJCQUFtQixDQUFDLElBQThDLEVBQW9CLEVBQUU7WUFDdEYsT0FBTyxDQUFPLENBQWtCLEVBQTBDLEVBQUU7Z0JBQzFFLE1BQU0sS0FBSyxHQUFHLENBQUMsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDO2dCQUM5QixJQUFJLElBQUksSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssVUFBVSxFQUFFO29CQUN4QyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQzNCLElBQUksTUFBTSxZQUFZLE9BQU8sRUFBRTt3QkFDN0IsTUFBTSxPQUFPLEdBQUcsTUFBTSxNQUFNLENBQUM7d0JBQzdCLElBQUksT0FBTyxFQUFFOzRCQUNYLE9BQU87Z0NBQ0wsZUFBZSxFQUFFLE9BQU87NkJBQ3pCLENBQUM7eUJBQ0g7d0JBQ0QsT0FBTyxJQUFJLENBQUM7cUJBQ2I7b0JBQ0QsSUFBSSxNQUFNLEVBQUU7d0JBQ1YsT0FBTzs0QkFDTCxlQUFlLEVBQUUsTUFBTTt5QkFDeEIsQ0FBQztxQkFDSDtvQkFDRCxPQUFPLElBQUksQ0FBQztpQkFDYjtnQkFDRCxPQUFPLElBQUksQ0FBQztZQUNkLENBQUMsQ0FBQSxDQUFDO1FBQ0osQ0FBQyxFQUFBO1FBRUQsVUFBSyxHQUFHLENBQUMsTUFBYSxFQUFFLEVBQUU7O1lBQ3hCLE1BQU0sQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN6QixNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsY0FBYyxHQUFHO1lBQ3pCLE1BQUEsSUFBSSxDQUFDLFNBQVMsMENBQUUsS0FBSyxHQUFHO1lBQ3hCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDcEIsQ0FBQyxDQUFBO1FBRUQsV0FBTSxHQUFHLENBQUMsTUFBYSxFQUFFLElBQVMsRUFBRSxFQUFFOztZQUNwQyxNQUFNLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDekIsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLGNBQWMsR0FBRztZQUN6QixNQUFBLElBQUksQ0FBQyxTQUFTLDBDQUFFLEtBQUssR0FBRztZQUN4QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QixDQUFDLENBQUE7UUFFRCxhQUFRLEdBQUcsQ0FBQyxNQUFhLEVBQUUsSUFBUyxFQUFFLEVBQUU7O1lBQ3RDLE1BQU0sQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN6QixNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsY0FBYyxHQUFHO1lBQ3pCLE1BQUEsSUFBSSxDQUFDLFNBQVMsMENBQUUsS0FBSyxHQUFHO1lBQ3hCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNCLENBQUMsQ0FBQTtJQWxJbUMsQ0FBQztJQXZGckMsSUFBSSxRQUFROztRQUNWLElBQUksS0FBSyxDQUFDLE9BQU8sc0NBQWEsRUFBRTtZQUM5QixJQUFJLHFDQUFZLE1BQU0sRUFBRTtnQkFDdEIsT0FBTyxPQUFPLENBQUMscUNBQVksQ0FBQyxDQUFDLENBQUMsS0FBSyxRQUFRLENBQUM7YUFDN0M7U0FDRjthQUFNO1lBQ0wsSUFBSSx3Q0FBZSx5Q0FBZ0IsQ0FBQyxFQUFFO2dCQUNwQyxPQUFPLE9BQU8sc0NBQWEsS0FBSyxRQUFRLENBQUM7YUFDMUM7U0FDRjtRQUNELHdGQUFpQixNQUFNLEVBQUU7WUFDdkIsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUNuQixPQUFPLE9BQU8sQ0FBQyxxQ0FBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsS0FBSyxRQUFRLENBQUM7YUFDOUQ7aUJBQU07Z0JBQ0wsT0FBTyxPQUFPLENBQUMscUNBQVksQ0FBQyxDQUFDLENBQUMsS0FBSyxRQUFRLENBQUM7YUFDN0M7U0FDRjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUdELElBQWEsSUFBSSxDQUFDLEdBQXVCO1FBQ3ZDLElBQUksR0FBRyxFQUFFO1lBQ1AsSUFBSSxHQUFHLFlBQVksTUFBTSxFQUFFO2dCQUN6Qix1QkFBQSxJQUFJLFNBQVMsR0FBRyxDQUFDLElBQUksRUFBQzthQUN2QjtpQkFBTTtnQkFDTCx1QkFBQSxJQUFJLFNBQVMsR0FBRyxFQUFDO2FBQ2xCO1NBQ0Y7SUFDSCxDQUFDO0lBUUQsSUFBYSxLQUFLLENBQUMsS0FBa0M7UUFDbkQsdUJBQUEsSUFBSSxVQUFVLEtBQUssRUFBQztRQUNwQixLQUFLLEdBQUcsQ0FBQyxLQUFLLGFBQUwsS0FBSyxjQUFMLEtBQUssR0FBSSxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDM0IsSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUU7WUFDcEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDbEM7SUFDSCxDQUFDO0lBR0QsSUFBYSxLQUFLLENBQUMsS0FBd0I7UUFDekMsdUJBQUEsSUFBSSxVQUFVLENBQUEsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLFNBQVMsTUFBSyxFQUFFLEVBQUM7UUFDdEUsNENBQW1CLElBQUksc0NBQWEsQ0FBQztJQUN2QyxDQUFDO0lBT0QsSUFBYSxRQUFRLENBQUMsR0FBaUI7UUFDckMsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLEdBQUcsS0FBSyxFQUFFLENBQUMsSUFBSSxHQUFHLENBQUM7UUFDdEMsb0RBQUEsSUFBSSxDQUFtQixDQUFDO0lBQzFCLENBQUM7SUFDRCxJQUFhLFNBQVMsQ0FBQyxTQUFtRDtRQUN4RSx1QkFBQSxJQUFJLGNBQWMsU0FBUyxFQUFDO1FBQzVCLG9EQUFBLElBQUksQ0FBbUIsQ0FBQztJQUMxQixDQUFDO0lBQ0QsV0FBVztJQUNYLElBQWEsUUFBUSxDQUFDLEdBQWlCO1FBQ3JDLEdBQUcsR0FBRyxDQUFDLEdBQUcsS0FBSyxFQUFFLENBQUMsSUFBSSxHQUFHLENBQUM7UUFDMUIsSUFBSSxHQUFHLEVBQUU7WUFDUCxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxDQUFDO1NBQzVCO2FBQU07WUFDTCxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQzNCO0lBQ0gsQ0FBQztJQWlCRCxRQUFRO1FBQ04sNENBQW1CLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQzdELElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDMUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNOLENBQUM7SUFFRCxlQUFlOztRQUNiLElBQUksQ0FBQyxhQUFhLEdBQUcsNENBQW1CLElBQUksQ0FBQyxTQUFTLHNDQUFhLEVBQUUsR0FBRyxDQUFDLENBQUMsS0FBWSxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFOztZQUN2RyxJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtnQkFDeEMsdUNBQ0ssQ0FBQyxLQUNKLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsUUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQywwQ0FBRSxRQUFRLE1BQ3BEO2FBQ0g7WUFDRCxPQUFPLENBQUMsYUFBRCxDQUFDLHVCQUFELENBQUMsQ0FBRSxRQUFRLEdBQUc7UUFDdkIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ0wsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLDhDQUFxQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRTs7WUFDbkcsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFO2dCQUMzQixPQUFPLEVBQUUsQ0FBQzthQUNYO1lBQ0QsSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7Z0JBQ3hDLE1BQU0sWUFBWSx1RkFBZ0IsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLGVBQUMsT0FBQSxPQUFBLENBQUMsYUFBRCxDQUFDLHVCQUFELENBQUMsQ0FBRyxJQUFJLENBQUMsVUFBVSwyQ0FBRyxRQUFRLGVBQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLDBDQUFFLFFBQVEsR0FBRSxDQUFBLEVBQUEsQ0FBQyxDQUFDO2dCQUNySCxhQUFPLFlBQVksYUFBWixZQUFZLHVCQUFaLFlBQVksQ0FBRyxJQUFJLENBQUMsWUFBWSxvQ0FBSyxFQUFFLENBQUM7YUFDaEQ7WUFDRCxNQUFNLFlBQVksdUZBQWdCLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxXQUFDLE9BQUEsQ0FBQSxDQUFDLGFBQUQsQ0FBQyx1QkFBRCxDQUFDLENBQUUsUUFBUSxlQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSywwQ0FBRSxRQUFRLEdBQUUsQ0FBQSxFQUFBLENBQUMsQ0FBQztZQUNsRyxPQUFPLFlBQVksYUFBWixZQUFZLGNBQVosWUFBWSxHQUFJLEVBQUUsQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ0osbUZBQVksVUFBVSxzQ0FBYSxJQUFJLENBQUMsV0FBVyxFQUFFO0lBQ3ZELENBQUM7SUFFRCxXQUFXOztRQUNULDRDQUFtQixXQUFXLEVBQUUsQ0FBQztRQUNqQyxtRkFBWSxhQUFhLHNDQUFhO1FBQ3RDLDRDQUFtQixXQUFXLEVBQUUsQ0FBQztJQUNuQyxDQUFDOzs7O1lBcElGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsa0JBQWtCO2dCQUM1QixtbkdBQTZDOzthQUU5Qzs7O1lBWmdELGlCQUFpQjs7O3dCQWdCL0QsU0FBUyxTQUFDLFNBQVM7bUJBb0JuQixLQUFLO21CQUVMLEtBQUs7b0JBU0wsS0FBSzswQkFDTCxLQUFLO3dCQUNMLEtBQUs7NEJBQ0wsS0FBSztvQkFJTCxLQUFLO29CQVNMLEtBQUs7eUJBSUwsS0FBSzsyQkFDTCxLQUFLO3VCQUtMLEtBQUs7d0JBSUwsS0FBSzt1QkFLTCxLQUFLOzBCQWNMLE1BQU07dUJBQ04sTUFBTTswQkFDTixNQUFNO29CQUNOLE1BQU07cUJBQ04sTUFBTTt1QkFDTixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIENoYW5nZURldGVjdG9yUmVmLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5nRm9ybSwgRm9ybUNvbnRyb2wsIFZhbGlkYXRvcnMsIFZhbGlkYXRvckZuLCBBYnN0cmFjdENvbnRyb2wsIEZvcm1Hcm91cCwgQXN5bmNWYWxpZGF0b3JGbiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0ICogYXMgdXVpZCBmcm9tICd1dWlkJztcclxuaW1wb3J0IHsgTWF0U2VsZWN0Q2hhbmdlLCBNYXRTZWxlY3QgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0LCBtZXJnZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHN0YXJ0V2l0aCwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBTZEZvcm1Db250cm9sIH0gZnJvbSAnQHNkLWFuZ3VsYXIvY29yZS9jb21tb24nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzZC1zZWxlY3QtZWRpdG9yJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc2VsZWN0LWVkaXRvci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vc2VsZWN0LWVkaXRvci5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZFNlbGVjdEVkaXRvciBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcclxuICAjbmFtZSA9IHV1aWQudjQoKTtcclxuICBmb3JtQ29udHJvbCA9IG5ldyBTZEZvcm1Db250cm9sKCk7XHJcbiAgQFZpZXdDaGlsZChNYXRTZWxlY3QpIG1hdFNlbGVjdDogTWF0U2VsZWN0O1xyXG4gIGdldCBpc051bWJlcigpIHtcclxuICAgIGlmIChBcnJheS5pc0FycmF5KHRoaXMuI21vZGVsKSkge1xyXG4gICAgICBpZiAodGhpcy4jbW9kZWwubGVuZ3RoKSB7XHJcbiAgICAgICAgcmV0dXJuIHR5cGVvZiAodGhpcy4jbW9kZWxbMF0pID09PSAnbnVtYmVyJztcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHRoaXMuI21vZGVsIHx8IHRoaXMuI21vZGVsID09PSAwKSB7XHJcbiAgICAgICAgcmV0dXJuIHR5cGVvZiAodGhpcy4jbW9kZWwpID09PSAnbnVtYmVyJztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuI2l0ZW1zPy5sZW5ndGgpIHtcclxuICAgICAgaWYgKHRoaXMudmFsdWVGaWVsZCkge1xyXG4gICAgICAgIHJldHVybiB0eXBlb2YgKHRoaXMuI2l0ZW1zWzBdW3RoaXMudmFsdWVGaWVsZF0pID09PSAnbnVtYmVyJztcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gdHlwZW9mICh0aGlzLiNpdGVtc1swXSkgPT09ICdudW1iZXInO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG4gIEBJbnB1dCgpIHNpemU6ICdzbScgfCAnbGcnO1xyXG4gICNmb3JtOiBGb3JtR3JvdXA7XHJcbiAgQElucHV0KCkgc2V0IGZvcm0odmFsOiBOZ0Zvcm0gfCBGb3JtR3JvdXApIHtcclxuICAgIGlmICh2YWwpIHtcclxuICAgICAgaWYgKHZhbCBpbnN0YW5jZW9mIE5nRm9ybSkge1xyXG4gICAgICAgIHRoaXMuI2Zvcm0gPSB2YWwuZm9ybTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLiNmb3JtID0gdmFsO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZztcclxuICBASW5wdXQoKSBsZWZ0TGFiZWw6IHN0cmluZztcclxuICBASW5wdXQoKSBsYWJlbE1pbldpZHRoOiBzdHJpbmc7XHJcblxyXG4gIC8vIE1vZGVsXHJcbiAgI21vZGVsOiBudW1iZXIgfCBzdHJpbmc7XHJcbiAgQElucHV0KCkgc2V0IG1vZGVsKHZhbHVlOiB1bmRlZmluZWQgfCBudW1iZXIgfCBzdHJpbmcpIHtcclxuICAgIHRoaXMuI21vZGVsID0gdmFsdWU7XHJcbiAgICB2YWx1ZSA9ICh2YWx1ZSA/PyAnJykgKyAnJztcclxuICAgIGlmICh2YWx1ZSAhPT0gdGhpcy5mb3JtQ29udHJvbC52YWx1ZSkge1xyXG4gICAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbHVlKHZhbHVlKTtcclxuICAgIH1cclxuICB9XHJcbiAgLy8gSXRlbXNcclxuICAjaXRlbXM6IGFueVtdID0gW107XHJcbiAgQElucHV0KCkgc2V0IGl0ZW1zKGl0ZW1zOiB1bmRlZmluZWQgfCBhbnlbXSkge1xyXG4gICAgdGhpcy4jaXRlbXMgPSBpdGVtcz8uZmlsdGVyKGUgPT4gZSAhPT0gbnVsbCAmJiBlICE9PSB1bmRlZmluZWQpIHx8IFtdO1xyXG4gICAgdGhpcy4jaXRlbXNDaGFuZ2VzLm5leHQodGhpcy4jaXRlbXMpO1xyXG4gIH1cclxuICBASW5wdXQoKSB2YWx1ZUZpZWxkOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgZGlzcGxheUZpZWxkOiBzdHJpbmc7XHJcblxyXG4gIC8vIFZhbGlkYXRvclxyXG4gIGlzUmVxdWlyZWQgPSBmYWxzZTtcclxuICAjdmFsaWRhdG9yOiAodmFsdWU6IGFueSkgPT4gc3RyaW5nIHwgUHJvbWlzZTxzdHJpbmc+O1xyXG4gIEBJbnB1dCgpIHNldCByZXF1aXJlZCh2YWw6IGJvb2xlYW4gfCAnJykge1xyXG4gICAgdGhpcy5pc1JlcXVpcmVkID0gKHZhbCA9PT0gJycpIHx8IHZhbDtcclxuICAgIHRoaXMuI3VwZGF0ZVZhbGlkYXRvcigpO1xyXG4gIH1cclxuICBASW5wdXQoKSBzZXQgdmFsaWRhdG9yKHZhbGlkYXRvcjogKHZhbHVlOiBhbnkpID0+IHN0cmluZyB8IFByb21pc2U8c3RyaW5nPikge1xyXG4gICAgdGhpcy4jdmFsaWRhdG9yID0gdmFsaWRhdG9yO1xyXG4gICAgdGhpcy4jdXBkYXRlVmFsaWRhdG9yKCk7XHJcbiAgfVxyXG4gIC8vIE9wdGlvbmFsXHJcbiAgQElucHV0KCkgc2V0IGRpc2FibGVkKHZhbDogYm9vbGVhbiB8ICcnKSB7XHJcbiAgICB2YWwgPSAodmFsID09PSAnJykgfHwgdmFsO1xyXG4gICAgaWYgKHZhbCkge1xyXG4gICAgICB0aGlzLmZvcm1Db250cm9sLmRpc2FibGUoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wuZW5hYmxlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmaWx0ZXJlZEl0ZW1zOiBPYnNlcnZhYmxlPGFueVtdPjtcclxuICBkaXNwbGF5OiBPYnNlcnZhYmxlPHN0cmluZz47XHJcbiAgI21vZGVsQ2hhbmdlcyA9IG5ldyBTdWJqZWN0PGFueT4oKTtcclxuICAjaXRlbXNDaGFuZ2VzID0gbmV3IFN1YmplY3Q8YW55W10+KCk7XHJcblxyXG4gIEBPdXRwdXQoKSBtb2RlbENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBPdXRwdXQoKSBzZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBPdXRwdXQoKSBzZFNlbGVjdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXI8eyB2YWx1ZTogYW55LCBpdGVtPzogYW55IH0+KCk7XHJcbiAgQE91dHB1dCgpIHNkQWRkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBzZEVkaXQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KCkgc2REZWxldGUgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICAjc3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZWY6IENoYW5nZURldGVjdG9yUmVmKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLiNzdWJzY3JpcHRpb24uYWRkKHRoaXMuZm9ybUNvbnRyb2wuY2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLnJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICAgIH0pKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuZmlsdGVyZWRJdGVtcyA9IHRoaXMuI2l0ZW1zQ2hhbmdlcy5waXBlKHN0YXJ0V2l0aCh0aGlzLiNpdGVtcyksIG1hcCgoaXRlbXM6IGFueVtdKSA9PiBpdGVtcy5tYXAoZSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLnZhbHVlRmllbGQgJiYgdGhpcy5kaXNwbGF5RmllbGQpIHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgLi4uZSxcclxuICAgICAgICAgIFtgJHt0aGlzLnZhbHVlRmllbGR9YF06IGVbdGhpcy52YWx1ZUZpZWxkXT8udG9TdHJpbmcoKVxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIGU/LnRvU3RyaW5nKCk7XHJcbiAgICB9KSkpO1xyXG4gICAgdGhpcy5kaXNwbGF5ID0gbWVyZ2UodGhpcy5mb3JtQ29udHJvbC52YWx1ZUNoYW5nZXMsIHRoaXMuI2l0ZW1zQ2hhbmdlcykucGlwZShzdGFydFdpdGgoW10pLCBtYXAoKCkgPT4ge1xyXG4gICAgICBpZiAoIXRoaXMuZm9ybUNvbnRyb2wudmFsdWUpIHtcclxuICAgICAgICByZXR1cm4gJyc7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMudmFsdWVGaWVsZCAmJiB0aGlzLmRpc3BsYXlGaWVsZCkge1xyXG4gICAgICAgIGNvbnN0IHNlbGVjdGVkSXRlbSA9IHRoaXMuI2l0ZW1zPy5maW5kKGUgPT4gZT8uW3RoaXMudmFsdWVGaWVsZF0/LnRvU3RyaW5nKCkgPT09IHRoaXMuZm9ybUNvbnRyb2wudmFsdWU/LnRvU3RyaW5nKCkpO1xyXG4gICAgICAgIHJldHVybiBzZWxlY3RlZEl0ZW0/Llt0aGlzLmRpc3BsYXlGaWVsZF0gPz8gJyc7XHJcbiAgICAgIH1cclxuICAgICAgY29uc3Qgc2VsZWN0ZWRJdGVtID0gdGhpcy4jaXRlbXM/LmZpbmQoZSA9PiBlPy50b1N0cmluZygpID09PSB0aGlzLmZvcm1Db250cm9sLnZhbHVlPy50b1N0cmluZygpKTtcclxuICAgICAgcmV0dXJuIHNlbGVjdGVkSXRlbSA/PyAnJztcclxuICAgIH0pKTtcclxuICAgIHRoaXMuI2Zvcm0/LmFkZENvbnRyb2wodGhpcy4jbmFtZSwgdGhpcy5mb3JtQ29udHJvbCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuI2l0ZW1zQ2hhbmdlcy51bnN1YnNjcmliZSgpO1xyXG4gICAgdGhpcy4jZm9ybT8ucmVtb3ZlQ29udHJvbCh0aGlzLiNuYW1lKTtcclxuICAgIHRoaXMuI3N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgI3VwZGF0ZVZhbGlkYXRvciA9ICgpID0+IHtcclxuICAgIHRoaXMuZm9ybUNvbnRyb2wuY2xlYXJWYWxpZGF0b3JzKCk7XHJcbiAgICB0aGlzLmZvcm1Db250cm9sLmNsZWFyQXN5bmNWYWxpZGF0b3JzKCk7XHJcbiAgICBjb25zdCB2YWxpZGF0b3JzOiBWYWxpZGF0b3JGbltdID0gW107XHJcbiAgICBjb25zdCBhc3luY1ZhbGlkYXRvcnM6IEFzeW5jVmFsaWRhdG9yRm5bXSA9IFtdO1xyXG4gICAgaWYgKHRoaXMuaXNSZXF1aXJlZCkge1xyXG4gICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5yZXF1aXJlZCk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy4jdmFsaWRhdG9yKSB7XHJcbiAgICAgIGFzeW5jVmFsaWRhdG9ycy5wdXNoKHRoaXMuI2N1c3RvbVZhbGlkYXRvcih0aGlzLiN2YWxpZGF0b3IpKTtcclxuICAgIH1cclxuICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsaWRhdG9ycyh2YWxpZGF0b3JzKTtcclxuICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0QXN5bmNWYWxpZGF0b3JzKGFzeW5jVmFsaWRhdG9ycyk7XHJcbiAgICB0aGlzLmZvcm1Db250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICB9XHJcblxyXG4gIG9uU2VsZWN0aW9uQ2hhbmdlID0gKGNoYW5nZTogTWF0U2VsZWN0Q2hhbmdlKSA9PiB7XHJcbiAgICBjb25zdCB2YWx1ZSA9IGNoYW5nZT8udmFsdWUgfHwgJyc7XHJcbiAgICB0aGlzLiNvbkNoYW5nZSh2YWx1ZSk7XHJcbiAgfVxyXG5cclxuICByZVZhbGlkYXRlID0gKCkgPT4ge1xyXG4gICAgdGhpcy5mb3JtQ29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHsgZW1pdEV2ZW50OiB0cnVlIH0pO1xyXG4gIH1cclxuXHJcbiAgI29uQ2hhbmdlID0gKHZhbHVlOiBudW1iZXIgfCBzdHJpbmcpID0+IHtcclxuICAgIGxldCB2YWwgPSB2YWx1ZTtcclxuICAgIGlmICh0aGlzLmlzTnVtYmVyICYmIE51bWJlci5pc051bWJlcih2YWx1ZSkpIHtcclxuICAgICAgdmFsID0gK3ZhbHVlO1xyXG4gICAgfVxyXG4gICAgdGhpcy5tb2RlbENoYW5nZS5lbWl0KHZhbCk7XHJcbiAgICB0aGlzLnNkQ2hhbmdlLmVtaXQodmFsKTtcclxuICAgIHRoaXMuc2RTZWxlY3Rpb24uZW1pdCh7XHJcbiAgICAgIHZhbHVlOiB2YWwsXHJcbiAgICAgIGl0ZW06IHRoaXMuI2l0ZW1zPy5maW5kKGUgPT4gdmFsPy50b1N0cmluZygpID09PSBlPy5bdGhpcy52YWx1ZUZpZWxkXT8udG9TdHJpbmcoKSlcclxuICAgIH0pO1xyXG4gIH1cclxuICBjbGVhciA9ICgkZXZlbnQ/OiBFdmVudCkgPT4ge1xyXG4gICAgJGV2ZW50Py5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUobnVsbCk7XHJcbiAgICB0aGlzLm1vZGVsQ2hhbmdlLmVtaXQobnVsbCk7XHJcbiAgICB0aGlzLnNkQ2hhbmdlLmVtaXQobnVsbCk7XHJcbiAgICB0aGlzLnNkU2VsZWN0aW9uLmVtaXQoe1xyXG4gICAgICB2YWx1ZTogbnVsbCxcclxuICAgICAgaXRlbTogbnVsbFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAjY3VzdG9tVmFsaWRhdG9yID0gKGZ1bmM6ICh2YWx1ZTogYW55KSA9PiBzdHJpbmcgfCBQcm9taXNlPHN0cmluZz4pOiBBc3luY1ZhbGlkYXRvckZuID0+IHtcclxuICAgIHJldHVybiBhc3luYyAoYzogQWJzdHJhY3RDb250cm9sKTogUHJvbWlzZTx7IFtrZXk6IHN0cmluZ106IGFueSB9IHwgbnVsbD4gPT4ge1xyXG4gICAgICBjb25zdCB2YWx1ZSA9IGMudmFsdWUgfHwgbnVsbDtcclxuICAgICAgaWYgKGZ1bmMgJiYgdHlwZW9mIChmdW5jKSA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGZ1bmModmFsdWUpO1xyXG4gICAgICAgIGlmIChyZXN1bHQgaW5zdGFuY2VvZiBQcm9taXNlKSB7XHJcbiAgICAgICAgICBjb25zdCBtZXNzYWdlID0gYXdhaXQgcmVzdWx0O1xyXG4gICAgICAgICAgaWYgKG1lc3NhZ2UpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICBjdXN0b21WYWxpZGF0b3I6IG1lc3NhZ2VcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAocmVzdWx0KSB7XHJcbiAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBjdXN0b21WYWxpZGF0b3I6IHJlc3VsdFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgb25BZGQgPSAoJGV2ZW50OiBFdmVudCkgPT4ge1xyXG4gICAgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgJGV2ZW50Py5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgdGhpcy5tYXRTZWxlY3Q/LmNsb3NlKCk7XHJcbiAgICB0aGlzLnNkQWRkLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIG9uRWRpdCA9ICgkZXZlbnQ6IEV2ZW50LCBpdGVtOiBhbnkpID0+IHtcclxuICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICRldmVudD8ucHJldmVudERlZmF1bHQoKTtcclxuICAgIHRoaXMubWF0U2VsZWN0Py5jbG9zZSgpO1xyXG4gICAgdGhpcy5zZEVkaXQuZW1pdChpdGVtKTtcclxuICB9XHJcblxyXG4gIG9uRGVsZXRlID0gKCRldmVudDogRXZlbnQsIGl0ZW06IGFueSkgPT4ge1xyXG4gICAgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgJGV2ZW50Py5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgdGhpcy5tYXRTZWxlY3Q/LmNsb3NlKCk7XHJcbiAgICB0aGlzLnNkRGVsZXRlLmVtaXQoaXRlbSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
254
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWVkaXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiQzovVXNlcnMvbmdoaWF0dDE1X29uZW1vdW50L0RvY3VtZW50cy9saWItY29yZS11aS9wcm9qZWN0cy9zZC1jb3JlL3NlbGVjdC1lZGl0b3IvIiwic291cmNlcyI6WyJzcmMvbGliL3NlbGVjdC1lZGl0b3IuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBb0MsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZJLE9BQU8sRUFBRSxNQUFNLEVBQWUsVUFBVSxFQUE2RCxNQUFNLGdCQUFnQixDQUFDO0FBQzVILE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBQzdCLE9BQU8sRUFBbUIsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdEUsT0FBTyxFQUFjLE9BQU8sRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBT3hELE1BQU0sT0FBTyxjQUFjO0lBMEZ6QixZQUNVLEdBQXNCO1FBQXRCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBMUZoQyxnQkFBUSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUM7UUFDbEIsZ0JBQVcsR0FBRyxJQUFJLGFBQWEsRUFBRSxDQUFDO1FBc0JsQyx3QkFBaUI7UUFlakIsUUFBUTtRQUNSLHlCQUF3QjtRQVF4QixRQUFRO1FBQ1IsaUJBQWdCLEVBQUUsRUFBQztRQVFuQixZQUFZO1FBQ1osZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNuQiw2QkFBcUQ7UUFxQnJELHdCQUFnQixJQUFJLE9BQU8sRUFBTyxFQUFDO1FB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QUM7Z0JBQ1QsUUFBUSxFQUFFLGtCQUFrQjtnQkFDNUIsbW5HQUE2Qzs7YUFFOUM7OztZQVpnRCxpQkFBaUI7Ozt3QkFnQi9ELFNBQVMsU0FBQyxTQUFTO21CQW9CbkIsS0FBSzttQkFFTCxLQUFLO29CQVNMLEtBQUs7MEJBQ0wsS0FBSzt3QkFDTCxLQUFLOzRCQUNMLEtBQUs7b0JBSUwsS0FBSztvQkFTTCxLQUFLO3lCQUlMLEtBQUs7MkJBQ0wsS0FBSzt1QkFLTCxLQUFLO3dCQUlMLEtBQUs7dUJBS0wsS0FBSzswQkFjTCxNQUFNO3VCQUNOLE1BQU07MEJBQ04sTUFBTTtvQkFDTixNQUFNO3FCQUNOLE1BQU07dUJBQ04sTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBDaGFuZ2VEZXRlY3RvclJlZiwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOZ0Zvcm0sIEZvcm1Db250cm9sLCBWYWxpZGF0b3JzLCBWYWxpZGF0b3JGbiwgQWJzdHJhY3RDb250cm9sLCBGb3JtR3JvdXAsIEFzeW5jVmFsaWRhdG9yRm4gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCAqIGFzIHV1aWQgZnJvbSAndXVpZCc7XHJcbmltcG9ydCB7IE1hdFNlbGVjdENoYW5nZSwgTWF0U2VsZWN0IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgbWVyZ2UsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBzdGFydFdpdGgsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgU2RGb3JtQ29udHJvbCB9IGZyb20gJ0BzZC1hbmd1bGFyL2NvcmUvY29tbW9uJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc2Qtc2VsZWN0LWVkaXRvcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjdC1lZGl0b3IuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3NlbGVjdC1lZGl0b3IuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2RTZWxlY3RFZGl0b3IgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XHJcbiAgI25hbWUgPSB1dWlkLnY0KCk7XHJcbiAgZm9ybUNvbnRyb2wgPSBuZXcgU2RGb3JtQ29udHJvbCgpO1xyXG4gIEBWaWV3Q2hpbGQoTWF0U2VsZWN0KSBtYXRTZWxlY3Q6IE1hdFNlbGVjdDtcclxuICBnZXQgaXNOdW1iZXIoKSB7XHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLiNtb2RlbCkpIHtcclxuICAgICAgaWYgKHRoaXMuI21vZGVsLmxlbmd0aCkge1xyXG4gICAgICAgIHJldHVybiB0eXBlb2YgKHRoaXMuI21vZGVsWzBdKSA9PT0gJ251bWJlcic7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmICh0aGlzLiNtb2RlbCB8fCB0aGlzLiNtb2RlbCA9PT0gMCkge1xyXG4gICAgICAgIHJldHVybiB0eXBlb2YgKHRoaXMuI21vZGVsKSA9PT0gJ251bWJlcic7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmICh0aGlzLiNpdGVtcz8ubGVuZ3RoKSB7XHJcbiAgICAgIGlmICh0aGlzLnZhbHVlRmllbGQpIHtcclxuICAgICAgICByZXR1cm4gdHlwZW9mICh0aGlzLiNpdGVtc1swXVt0aGlzLnZhbHVlRmllbGRdKSA9PT0gJ251bWJlcic7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIHR5cGVvZiAodGhpcy4jaXRlbXNbMF0pID09PSAnbnVtYmVyJztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuICBASW5wdXQoKSBzaXplOiAnc20nIHwgJ2xnJztcclxuICAjZm9ybTogRm9ybUdyb3VwO1xyXG4gIEBJbnB1dCgpIHNldCBmb3JtKHZhbDogTmdGb3JtIHwgRm9ybUdyb3VwKSB7XHJcbiAgICBpZiAodmFsKSB7XHJcbiAgICAgIGlmICh2YWwgaW5zdGFuY2VvZiBOZ0Zvcm0pIHtcclxuICAgICAgICB0aGlzLiNmb3JtID0gdmFsLmZvcm07XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy4jZm9ybSA9IHZhbDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgbGVmdExhYmVsOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgbGFiZWxNaW5XaWR0aDogc3RyaW5nO1xyXG5cclxuICAvLyBNb2RlbFxyXG4gICNtb2RlbDogbnVtYmVyIHwgc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHNldCBtb2RlbCh2YWx1ZTogdW5kZWZpbmVkIHwgbnVtYmVyIHwgc3RyaW5nKSB7XHJcbiAgICB0aGlzLiNtb2RlbCA9IHZhbHVlO1xyXG4gICAgdmFsdWUgPSAodmFsdWUgPz8gJycpICsgJyc7XHJcbiAgICBpZiAodmFsdWUgIT09IHRoaXMuZm9ybUNvbnRyb2wudmFsdWUpIHtcclxuICAgICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWx1ZSh2YWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8vIEl0ZW1zXHJcbiAgI2l0ZW1zOiBhbnlbXSA9IFtdO1xyXG4gIEBJbnB1dCgpIHNldCBpdGVtcyhpdGVtczogdW5kZWZpbmVkIHwgYW55W10pIHtcclxuICAgIHRoaXMuI2l0ZW1zID0gaXRlbXM/LmZpbHRlcihlID0+IGUgIT09IG51bGwgJiYgZSAhPT0gdW5kZWZpbmVkKSB8fCBbXTtcclxuICAgIHRoaXMuI2l0ZW1zQ2hhbmdlcy5uZXh0KHRoaXMuI2l0ZW1zKTtcclxuICB9XHJcbiAgQElucHV0KCkgdmFsdWVGaWVsZDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGRpc3BsYXlGaWVsZDogc3RyaW5nO1xyXG5cclxuICAvLyBWYWxpZGF0b3JcclxuICBpc1JlcXVpcmVkID0gZmFsc2U7XHJcbiAgI3ZhbGlkYXRvcjogKHZhbHVlOiBhbnkpID0+IHN0cmluZyB8IFByb21pc2U8c3RyaW5nPjtcclxuICBASW5wdXQoKSBzZXQgcmVxdWlyZWQodmFsOiBib29sZWFuIHwgJycpIHtcclxuICAgIHRoaXMuaXNSZXF1aXJlZCA9ICh2YWwgPT09ICcnKSB8fCB2YWw7XHJcbiAgICB0aGlzLiN1cGRhdGVWYWxpZGF0b3IoKTtcclxuICB9XHJcbiAgQElucHV0KCkgc2V0IHZhbGlkYXRvcih2YWxpZGF0b3I6ICh2YWx1ZTogYW55KSA9PiBzdHJpbmcgfCBQcm9taXNlPHN0cmluZz4pIHtcclxuICAgIHRoaXMuI3ZhbGlkYXRvciA9IHZhbGlkYXRvcjtcclxuICAgIHRoaXMuI3VwZGF0ZVZhbGlkYXRvcigpO1xyXG4gIH1cclxuICAvLyBPcHRpb25hbFxyXG4gIEBJbnB1dCgpIHNldCBkaXNhYmxlZCh2YWw6IGJvb2xlYW4gfCAnJykge1xyXG4gICAgdmFsID0gKHZhbCA9PT0gJycpIHx8IHZhbDtcclxuICAgIGlmICh2YWwpIHtcclxuICAgICAgdGhpcy5mb3JtQ29udHJvbC5kaXNhYmxlKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmZvcm1Db250cm9sLmVuYWJsZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZmlsdGVyZWRJdGVtczogT2JzZXJ2YWJsZTxhbnlbXT47XHJcbiAgZGlzcGxheTogT2JzZXJ2YWJsZTxzdHJpbmc+O1xyXG4gICNtb2RlbENoYW5nZXMgPSBuZXcgU3ViamVjdDxhbnk+KCk7XHJcbiAgI2l0ZW1zQ2hhbmdlcyA9IG5ldyBTdWJqZWN0PGFueVtdPigpO1xyXG5cclxuICBAT3V0cHV0KCkgbW9kZWxDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KCkgc2RDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KCkgc2RTZWxlY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyPHsgdmFsdWU6IGFueSwgaXRlbT86IGFueSB9PigpO1xyXG4gIEBPdXRwdXQoKSBzZEFkZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgc2RFZGl0ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQE91dHB1dCgpIHNkRGVsZXRlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgI3N1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVmOiBDaGFuZ2VEZXRlY3RvclJlZikgeyB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5mb3JtQ29udHJvbC5zdGF0dXNDaGFuZ2VzXHJcbiAgICB0aGlzLiNzdWJzY3JpcHRpb24uYWRkKHRoaXMuZm9ybUNvbnRyb2wuc2RDaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgICB0aGlzLnJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICAgIH0pKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuZmlsdGVyZWRJdGVtcyA9IHRoaXMuI2l0ZW1zQ2hhbmdlcy5waXBlKHN0YXJ0V2l0aCh0aGlzLiNpdGVtcyksIG1hcCgoaXRlbXM6IGFueVtdKSA9PiBpdGVtcy5tYXAoZSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLnZhbHVlRmllbGQgJiYgdGhpcy5kaXNwbGF5RmllbGQpIHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgLi4uZSxcclxuICAgICAgICAgIFtgJHt0aGlzLnZhbHVlRmllbGR9YF06IGVbdGhpcy52YWx1ZUZpZWxkXT8udG9TdHJpbmcoKVxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIGU/LnRvU3RyaW5nKCk7XHJcbiAgICB9KSkpO1xyXG4gICAgdGhpcy5kaXNwbGF5ID0gbWVyZ2UodGhpcy5mb3JtQ29udHJvbC52YWx1ZUNoYW5nZXMsIHRoaXMuI2l0ZW1zQ2hhbmdlcykucGlwZShzdGFydFdpdGgoW10pLCBtYXAoKCkgPT4ge1xyXG4gICAgICBpZiAoIXRoaXMuZm9ybUNvbnRyb2wudmFsdWUpIHtcclxuICAgICAgICByZXR1cm4gJyc7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMudmFsdWVGaWVsZCAmJiB0aGlzLmRpc3BsYXlGaWVsZCkge1xyXG4gICAgICAgIGNvbnN0IHNlbGVjdGVkSXRlbSA9IHRoaXMuI2l0ZW1zPy5maW5kKGUgPT4gZT8uW3RoaXMudmFsdWVGaWVsZF0/LnRvU3RyaW5nKCkgPT09IHRoaXMuZm9ybUNvbnRyb2wudmFsdWU/LnRvU3RyaW5nKCkpO1xyXG4gICAgICAgIHJldHVybiBzZWxlY3RlZEl0ZW0/Llt0aGlzLmRpc3BsYXlGaWVsZF0gPz8gJyc7XHJcbiAgICAgIH1cclxuICAgICAgY29uc3Qgc2VsZWN0ZWRJdGVtID0gdGhpcy4jaXRlbXM/LmZpbmQoZSA9PiBlPy50b1N0cmluZygpID09PSB0aGlzLmZvcm1Db250cm9sLnZhbHVlPy50b1N0cmluZygpKTtcclxuICAgICAgcmV0dXJuIHNlbGVjdGVkSXRlbSA/PyAnJztcclxuICAgIH0pKTtcclxuICAgIHRoaXMuI2Zvcm0/LmFkZENvbnRyb2wodGhpcy4jbmFtZSwgdGhpcy5mb3JtQ29udHJvbCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuI2l0ZW1zQ2hhbmdlcy51bnN1YnNjcmliZSgpO1xyXG4gICAgdGhpcy4jZm9ybT8ucmVtb3ZlQ29udHJvbCh0aGlzLiNuYW1lKTtcclxuICAgIHRoaXMuI3N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgI3VwZGF0ZVZhbGlkYXRvciA9ICgpID0+IHtcclxuICAgIHRoaXMuZm9ybUNvbnRyb2wuY2xlYXJWYWxpZGF0b3JzKCk7XHJcbiAgICB0aGlzLmZvcm1Db250cm9sLmNsZWFyQXN5bmNWYWxpZGF0b3JzKCk7XHJcbiAgICBjb25zdCB2YWxpZGF0b3JzOiBWYWxpZGF0b3JGbltdID0gW107XHJcbiAgICBjb25zdCBhc3luY1ZhbGlkYXRvcnM6IEFzeW5jVmFsaWRhdG9yRm5bXSA9IFtdO1xyXG4gICAgaWYgKHRoaXMuaXNSZXF1aXJlZCkge1xyXG4gICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5yZXF1aXJlZCk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy4jdmFsaWRhdG9yKSB7XHJcbiAgICAgIGFzeW5jVmFsaWRhdG9ycy5wdXNoKHRoaXMuI2N1c3RvbVZhbGlkYXRvcih0aGlzLiN2YWxpZGF0b3IpKTtcclxuICAgIH1cclxuICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsaWRhdG9ycyh2YWxpZGF0b3JzKTtcclxuICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0QXN5bmNWYWxpZGF0b3JzKGFzeW5jVmFsaWRhdG9ycyk7XHJcbiAgICB0aGlzLmZvcm1Db250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICB9XHJcblxyXG4gIG9uU2VsZWN0aW9uQ2hhbmdlID0gKGNoYW5nZTogTWF0U2VsZWN0Q2hhbmdlKSA9PiB7XHJcbiAgICBjb25zdCB2YWx1ZSA9IGNoYW5nZT8udmFsdWUgfHwgJyc7XHJcbiAgICB0aGlzLiNvbkNoYW5nZSh2YWx1ZSk7XHJcbiAgfVxyXG5cclxuICByZVZhbGlkYXRlID0gKCkgPT4ge1xyXG4gICAgdGhpcy5mb3JtQ29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHsgZW1pdEV2ZW50OiB0cnVlIH0pO1xyXG4gIH1cclxuXHJcbiAgI29uQ2hhbmdlID0gKHZhbHVlOiBudW1iZXIgfCBzdHJpbmcpID0+IHtcclxuICAgIGxldCB2YWwgPSB2YWx1ZTtcclxuICAgIGlmICh0aGlzLmlzTnVtYmVyICYmIE51bWJlci5pc051bWJlcih2YWx1ZSkpIHtcclxuICAgICAgdmFsID0gK3ZhbHVlO1xyXG4gICAgfVxyXG4gICAgdGhpcy5tb2RlbENoYW5nZS5lbWl0KHZhbCk7XHJcbiAgICB0aGlzLnNkQ2hhbmdlLmVtaXQodmFsKTtcclxuICAgIHRoaXMuc2RTZWxlY3Rpb24uZW1pdCh7XHJcbiAgICAgIHZhbHVlOiB2YWwsXHJcbiAgICAgIGl0ZW06IHRoaXMuI2l0ZW1zPy5maW5kKGUgPT4gdmFsPy50b1N0cmluZygpID09PSBlPy5bdGhpcy52YWx1ZUZpZWxkXT8udG9TdHJpbmcoKSlcclxuICAgIH0pO1xyXG4gIH1cclxuICBjbGVhciA9ICgkZXZlbnQ/OiBFdmVudCkgPT4ge1xyXG4gICAgJGV2ZW50Py5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUobnVsbCk7XHJcbiAgICB0aGlzLm1vZGVsQ2hhbmdlLmVtaXQobnVsbCk7XHJcbiAgICB0aGlzLnNkQ2hhbmdlLmVtaXQobnVsbCk7XHJcbiAgICB0aGlzLnNkU2VsZWN0aW9uLmVtaXQoe1xyXG4gICAgICB2YWx1ZTogbnVsbCxcclxuICAgICAgaXRlbTogbnVsbFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAjY3VzdG9tVmFsaWRhdG9yID0gKGZ1bmM6ICh2YWx1ZTogYW55KSA9PiBzdHJpbmcgfCBQcm9taXNlPHN0cmluZz4pOiBBc3luY1ZhbGlkYXRvckZuID0+IHtcclxuICAgIHJldHVybiBhc3luYyAoYzogQWJzdHJhY3RDb250cm9sKTogUHJvbWlzZTx7IFtrZXk6IHN0cmluZ106IGFueSB9IHwgbnVsbD4gPT4ge1xyXG4gICAgICBjb25zdCB2YWx1ZSA9IGMudmFsdWUgfHwgbnVsbDtcclxuICAgICAgaWYgKGZ1bmMgJiYgdHlwZW9mIChmdW5jKSA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGZ1bmModmFsdWUpO1xyXG4gICAgICAgIGlmIChyZXN1bHQgaW5zdGFuY2VvZiBQcm9taXNlKSB7XHJcbiAgICAgICAgICBjb25zdCBtZXNzYWdlID0gYXdhaXQgcmVzdWx0O1xyXG4gICAgICAgICAgaWYgKG1lc3NhZ2UpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICBjdXN0b21WYWxpZGF0b3I6IG1lc3NhZ2VcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAocmVzdWx0KSB7XHJcbiAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBjdXN0b21WYWxpZGF0b3I6IHJlc3VsdFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgb25BZGQgPSAoJGV2ZW50OiBFdmVudCkgPT4ge1xyXG4gICAgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgJGV2ZW50Py5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgdGhpcy5tYXRTZWxlY3Q/LmNsb3NlKCk7XHJcbiAgICB0aGlzLnNkQWRkLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIG9uRWRpdCA9ICgkZXZlbnQ6IEV2ZW50LCBpdGVtOiBhbnkpID0+IHtcclxuICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICRldmVudD8ucHJldmVudERlZmF1bHQoKTtcclxuICAgIHRoaXMubWF0U2VsZWN0Py5jbG9zZSgpO1xyXG4gICAgdGhpcy5zZEVkaXQuZW1pdChpdGVtKTtcclxuICB9XHJcblxyXG4gIG9uRGVsZXRlID0gKCRldmVudDogRXZlbnQsIGl0ZW06IGFueSkgPT4ge1xyXG4gICAgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgJGV2ZW50Py5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgdGhpcy5tYXRTZWxlY3Q/LmNsb3NlKCk7XHJcbiAgICB0aGlzLnNkRGVsZXRlLmVtaXQoaXRlbSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|