@bizdoc/core 1.14.5 → 1.14.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/esm2020/lib/admin/document-trace/document-trace.component.mjs +2 -2
  2. package/esm2020/lib/admin/form/workflow/workflow.component.mjs +2 -2
  3. package/esm2020/lib/admin/profiler/profiler.component.mjs +3 -11
  4. package/esm2020/lib/browse/browse.pane.component.mjs +3 -4
  5. package/esm2020/lib/compose/compose.pane.component.mjs +3 -2
  6. package/esm2020/lib/compose/trace/trace.pane.component.mjs +2 -2
  7. package/esm2020/lib/core/slots/pane-ref.mjs +25 -24
  8. package/esm2020/lib/core/slots/router.directive.mjs +3 -5
  9. package/esm2020/lib/core/slots/router.service.mjs +1 -4
  10. package/esm2020/lib/core/slots/slots.component.mjs +128 -92
  11. package/esm2020/lib/cube/cube-view.component.mjs +2 -2
  12. package/esm2020/lib/cube/matrix/matrix.base.mjs +1 -1
  13. package/esm2020/lib/cube/matrix/matrix.pane.component.mjs +1 -1
  14. package/esm2020/lib/cube/view.pane.component.mjs +5 -5
  15. package/esm2020/lib/dashboard/dashboard.component.mjs +25 -17
  16. package/esm2020/lib/dashboard/widget-item.component.mjs +2 -1
  17. package/esm2020/lib/reports/report-viewer.component.mjs +1 -1
  18. package/esm2020/lib/reports/report.pane.component.mjs +2 -2
  19. package/esm2020/lib/scheduler/scheduler.pane.component.mjs +2 -2
  20. package/esm2020/lib/views/view-item.component.mjs +3 -2
  21. package/esm2020/lib/views/views.component.mjs +11 -3
  22. package/esm2020/lib/views/views.pane.component.mjs +14 -10
  23. package/esm2020/public-api.mjs +2 -2
  24. package/fesm2015/bizdoc-core.mjs +249 -212
  25. package/fesm2015/bizdoc-core.mjs.map +1 -1
  26. package/fesm2020/bizdoc-core.mjs +250 -211
  27. package/fesm2020/bizdoc-core.mjs.map +1 -1
  28. package/lib/admin/profiler/profiler.component.d.ts +0 -1
  29. package/lib/core/slots/pane-ref.d.ts +41 -43
  30. package/lib/core/slots/router.service.d.ts +2 -3
  31. package/lib/core/slots/slots.component.d.ts +21 -14
  32. package/lib/cube/matrix/matrix.base.d.ts +2 -2
  33. package/lib/cube/matrix/matrix.pane.component.d.ts +14 -1
  34. package/lib/dashboard/dashboard.component.d.ts +6 -2
  35. package/lib/dashboard/widget-item.component.d.ts +2 -0
  36. package/lib/views/view-item.component.d.ts +2 -0
  37. package/lib/views/views.component.d.ts +4 -0
  38. package/lib/views/views.pane.component.d.ts +3 -2
  39. package/package.json +1 -1
  40. package/public-api.d.ts +1 -1
@@ -113,7 +113,7 @@ let ProfilerComponent = class ProfilerComponent {
113
113
  const { userId } = p;
114
114
  userId && this._open(userId);
115
115
  });
116
- this._pane.resize.pipe(takeUntil(this._destroy)).subscribe(this.resize.bind(this));
116
+ this._pane.resized.pipe(takeUntil(this._destroy)).subscribe(() => this.chart?.chartResize());
117
117
  this.users$ = this.search.valueChanges.pipe(takeUntil(this._destroy), debounceTime(250), filter(v => !isObject(v)), switchMap(v => this._accounts.findAll(v)));
118
118
  }
119
119
  guide(evt) {
@@ -196,11 +196,6 @@ let ProfilerComponent = class ProfilerComponent {
196
196
  const action = this._session.profile.actions.find(a => a.name === name);
197
197
  return action ? action.past || action.title : name;
198
198
  }
199
- resize() {
200
- // const { width, height } = getComputedStyle(this.chartElement.nativeElement.parentElement);
201
- // this.chart.width = width;
202
- // this.chart.height = height;
203
- }
204
199
  pointClick(evt) {
205
200
  const { id } = evt.series.dataSource[evt.pointIndex];
206
201
  this._documentInfo.open(id);
@@ -259,7 +254,7 @@ let ProfilerComponent = class ProfilerComponent {
259
254
  }
260
255
  };
261
256
  ProfilerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: ProfilerComponent, deps: [{ token: i1.PromptService }, { token: i2.UtilityRef }, { token: i3.SessionService }, { token: i4.MatDialog }, { token: i5.DocumentInfo }, { token: i6.MediaObserver }, { token: i7.ChatInfo }, { token: i8.GuideService }, { token: i9.PanesRouter }, { token: i0.ChangeDetectorRef }, { token: i10.PaneRef }, { token: i11.TranslateService }, { token: i12.AccountService }, { token: i13.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
262
- ProfilerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.1", type: ProfilerComponent, selector: "ng-component", host: { listeners: { "window:keydown.f1": "guide($event)", "window:resize": "resize()" }, classAttribute: "pane" }, viewQueries: [{ propertyName: "chart", first: true, predicate: ["activity"], descendants: true }, { propertyName: "chartElement", first: true, predicate: ["activity"], descendants: true, read: ElementRef }, { propertyName: "assignTpl", first: true, predicate: ["assignTpl"], descendants: true }], ngImport: i0, template: "<mat-toolbar>\r\n <mat-icon (click)=\"null\" class=\"mat-icon-rtl-mirror\">search</mat-icon>\r\n <input matInput type=\"search\" [matAutocomplete]=\"auto\" [formControl]=\"search\" data-help=\"search\" width=\"20\" />\r\n <mat-autocomplete #auto=\"matAutocomplete\" [displayWith]=\"userDisplay\"\r\n (optionSelected)=\"change($event)\">\r\n <mat-option *ngFor=\"let u of users$ | async\" [value]=\"u\">\r\n <span>{{u.name}}</span>\r\n </mat-option>\r\n </mat-autocomplete>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"guide()\" [bizdocTooltip]=\"'Help' | translate\"><mat-icon>help_outline</mat-icon></button>\r\n</mat-toolbar>\r\n<div *ngIf=\"data\" fxLayout=\"row wrap\">\r\n <!-- info -->\r\n <mat-card fxFlex>\r\n <mat-card-header>\r\n <mat-card-title>\r\n <span>{{data.info.name}}</span>\r\n </mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content>\r\n <br />\r\n </mat-card-content>\r\n <mat-card-actions>\r\n <button mat-icon-button (click)=\"chat()\" [bizdocTooltip]=\"'Chat' | translate\" [disabled]=\"!data\"><mat-icon>chat</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"settings()\" [bizdocTooltip]=\"'Settings' | translate\" [disabled]=\"!data\" data-help=\"settings\"><mat-icon>settings</mat-icon></button>\r\n </mat-card-actions>\r\n </mat-card>\r\n <mat-card fxFlex data-help=\"activity\">\r\n <mat-card-header>\r\n <mat-card-title>\r\n {{'Activity' | translate}}\r\n </mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content>\r\n <ejs-chart #activity [primaryXAxis]=\"primaryXAxis\" [primaryYAxis]=\"primaryYAxis\" [zoomSettings]=\"zoomSettings\" [tooltip]='tooltip' (tooltipRender)=\"tooltipRender($event)\" [palettes]=\"palettes\" background=\"transparent\" [theme]='theme' [border]=\"border\" (pointClick)=\"pointClick($event)\">\r\n <e-series-collection>\r\n </e-series-collection>\r\n </ejs-chart>\r\n </mat-card-content>\r\n </mat-card>\r\n <!-- pending -->\r\n <mat-card fxFlex data-help=\"pending\">\r\n <mat-card-header>\r\n <mat-card-title>\r\n {{'Pending' | translate}}\r\n </mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content>\r\n <table class=\"mat-table\" *ngIf=\"data.pending.length; else none\">\r\n <thead>\r\n <tr class=\"mat-row\">\r\n <td class=\"mat-header-cell\"></td>\r\n <td class=\"mat-header-cell\"></td>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let r of data.pending\" class=\"mat-row\">\r\n <td class=\"mat-cell\"><a (click)=\"trace(r.id)\">{{r.number}}</a></td>\r\n <td class=\"mat-cell\">{{ r.received | amDifference : null : 's' | amDuration : 's'}}</td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </mat-card-content>\r\n </mat-card>\r\n <!-- positions -->\r\n <mat-card fxFlex data-help=\"positions\">\r\n <mat-card-header>\r\n <mat-card-title>\r\n {{'Positions' | translate}}\r\n </mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content>\r\n <table class=\"mat-table\" *ngIf=\"data.positions.length; else none\">\r\n <tr *ngFor=\"let p of data.positions\" class=\"mat-row\">\r\n <td class=\"mat-cell\">{{p.value }}</td>\r\n <td class=\"mat-cell\">{{p.role | role}}</td>\r\n <td class=\"mat-cell\">\r\n <button mat-icon-button (click)=\"reassign(p)\" [bizdocTooltip]=\"'Reassign' | translate\"><mat-icon>swap_horiz</mat-icon></button>\r\n </td>\r\n </tr>\r\n </table>\r\n </mat-card-content>\r\n <mat-card-actions>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"reassign()\" [bizdocTooltip]=\"'ReassignAll' | translate\" [disabled]=\"!data || !data.positions.length\" data-help=\"reassign\"><mat-icon>swap_horiz</mat-icon></button>\r\n </mat-card-actions>\r\n </mat-card>\r\n</div>\r\n<!-- assign dialog -->\r\n<ng-template #assignTpl>\r\n <h2 mat-dialog-title>{{'Reassign' | translate }}</h2>\r\n <mat-dialog-content>\r\n <form autocomplete=\"off\" fxLayout=\"column\">\r\n <mat-form-field>\r\n <mat-select placeholder=\"{{'Who' | translate}}\" [formControl]=\"who\" required>\r\n <mat-option *ngFor=\"let u of assignable$ | async\" [value]=\"u.id\">{{u.name}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </form>\r\n </mat-dialog-content>\r\n <mat-dialog-actions>\r\n <button mat-button [mat-dialog-close]=\"who.value\" color=\"primary\" [disabled]=\"!who.valid\">{{'OK' | translate}}</button>\r\n <button mat-button mat-dialog-close>{{'Cancel' | translate}}</button>\r\n </mat-dialog-actions>\r\n</ng-template>\r\n<ng-template #none>\r\n <span class=\"mat-body-2\">{{'None' | translate }}</span>\r\n</ng-template>\r\n", styles: [":host{min-width:560px;display:block}.mat-card{margin:5px}.mat-card:hover{box-shadow:0 3px 3px -2px #0003,0 3px 4px #00000024,0 1px 8px #0000001f}.mat-table{width:100%}\n"], components: [{ type: i14.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { type: i15.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i16.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { type: i17.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { type: i18.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i19.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { type: i19.MatCardHeader, selector: "mat-card-header" }, { type: i20.ChartComponent, selector: "ejs-chart", inputs: ["allowExport", "allowMultiSelection", "annotations", "axes", "background", "backgroundImage", "border", "chartArea", "columns", "crosshair", "currencyCode", "dataSource", "description", "enableAnimation", "enableAutoIntervalOnBothAxis", "enableCanvas", "enableExport", "enablePersistence", "enableRtl", "enableSideBySidePlacement", "height", "highlightColor", "highlightMode", "highlightPattern", "indicators", "isMultiSelect", "isTransposed", "legendSettings", "locale", "margin", "palettes", "primaryXAxis", "primaryYAxis", "rangeColorSettings", "rows", "selectedDataIndexes", "selectionMode", "selectionPattern", "series", "subTitle", "subTitleStyle", "tabIndex", "theme", "title", "titleStyle", "tooltip", "useGroupingSeparator", "width", "zoomSettings"], outputs: ["afterExport", "animationComplete", "annotationRender", "axisLabelClick", "axisLabelRender", "axisMultiLabelRender", "axisRangeCalculated", "beforeExport", "beforePrint", "beforeResize", "chartDoubleClick", "chartMouseClick", "chartMouseDown", "chartMouseLeave", "chartMouseMove", "chartMouseUp", "drag", "dragComplete", "dragEnd", "dragStart", "legendClick", "legendRender", "load", "loaded", "multiLevelLabelClick", "onZooming", "pointClick", "pointDoubleClick", "pointMove", "pointRender", "resized", "scrollChanged", "scrollEnd", "scrollStart", "selectionComplete", "seriesRender", "sharedTooltipRender", "textRender", "tooltipRender", "zoomComplete", "dataSourceChange"] }, { type: i21.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i22.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }], directives: [{ type: i23.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i16.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { type: i13.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i13.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i13.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i24.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i25.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { type: i24.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i26.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i26.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { type: i19.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { type: i19.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { type: i19.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { type: i20.SeriesCollectionDirective, selector: "ej-chart>e-series-collection" }, { type: i4.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i4.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i13.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i13.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i13.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i4.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }, { type: i4.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }], pipes: { "async": i24.AsyncPipe, "translate": i27.TranslatePipe, "amDuration": i28.DurationPipe, "amDifference": i29.DifferencePipe, "role": i30.RolePipe } });
257
+ ProfilerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.1", type: ProfilerComponent, selector: "ng-component", host: { listeners: { "window:keydown.f1": "guide($event)" }, classAttribute: "pane" }, viewQueries: [{ propertyName: "chart", first: true, predicate: ["activity"], descendants: true }, { propertyName: "chartElement", first: true, predicate: ["activity"], descendants: true, read: ElementRef }, { propertyName: "assignTpl", first: true, predicate: ["assignTpl"], descendants: true }], ngImport: i0, template: "<mat-toolbar>\r\n <mat-icon (click)=\"null\" class=\"mat-icon-rtl-mirror\">search</mat-icon>\r\n <input matInput type=\"search\" [matAutocomplete]=\"auto\" [formControl]=\"search\" data-help=\"search\" width=\"20\" />\r\n <mat-autocomplete #auto=\"matAutocomplete\" [displayWith]=\"userDisplay\"\r\n (optionSelected)=\"change($event)\">\r\n <mat-option *ngFor=\"let u of users$ | async\" [value]=\"u\">\r\n <span>{{u.name}}</span>\r\n </mat-option>\r\n </mat-autocomplete>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"guide()\" [bizdocTooltip]=\"'Help' | translate\"><mat-icon>help_outline</mat-icon></button>\r\n</mat-toolbar>\r\n<div *ngIf=\"data\" fxLayout=\"row wrap\">\r\n <!-- info -->\r\n <mat-card fxFlex>\r\n <mat-card-header>\r\n <mat-card-title>\r\n <span>{{data.info.name}}</span>\r\n </mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content>\r\n <br />\r\n </mat-card-content>\r\n <mat-card-actions>\r\n <button mat-icon-button (click)=\"chat()\" [bizdocTooltip]=\"'Chat' | translate\" [disabled]=\"!data\"><mat-icon>chat</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"settings()\" [bizdocTooltip]=\"'Settings' | translate\" [disabled]=\"!data\" data-help=\"settings\"><mat-icon>settings</mat-icon></button>\r\n </mat-card-actions>\r\n </mat-card>\r\n <mat-card fxFlex data-help=\"activity\">\r\n <mat-card-header>\r\n <mat-card-title>\r\n {{'Activity' | translate}}\r\n </mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content>\r\n <ejs-chart #activity [primaryXAxis]=\"primaryXAxis\" [primaryYAxis]=\"primaryYAxis\" [zoomSettings]=\"zoomSettings\" [tooltip]='tooltip' (tooltipRender)=\"tooltipRender($event)\" [palettes]=\"palettes\" background=\"transparent\" [theme]='theme' [border]=\"border\" (pointClick)=\"pointClick($event)\">\r\n <e-series-collection>\r\n </e-series-collection>\r\n </ejs-chart>\r\n </mat-card-content>\r\n </mat-card>\r\n <!-- pending -->\r\n <mat-card fxFlex data-help=\"pending\">\r\n <mat-card-header>\r\n <mat-card-title>\r\n {{'Pending' | translate}}\r\n </mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content>\r\n <table class=\"mat-table\" *ngIf=\"data.pending.length; else none\">\r\n <thead>\r\n <tr class=\"mat-row\">\r\n <td class=\"mat-header-cell\"></td>\r\n <td class=\"mat-header-cell\"></td>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let r of data.pending\" class=\"mat-row\">\r\n <td class=\"mat-cell\"><a (click)=\"trace(r.id)\">{{r.number}}</a></td>\r\n <td class=\"mat-cell\">{{ r.received | amDifference : null : 's' | amDuration : 's'}}</td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </mat-card-content>\r\n </mat-card>\r\n <!-- positions -->\r\n <mat-card fxFlex data-help=\"positions\">\r\n <mat-card-header>\r\n <mat-card-title>\r\n {{'Positions' | translate}}\r\n </mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content>\r\n <table class=\"mat-table\" *ngIf=\"data.positions.length; else none\">\r\n <tr *ngFor=\"let p of data.positions\" class=\"mat-row\">\r\n <td class=\"mat-cell\">{{p.value }}</td>\r\n <td class=\"mat-cell\">{{p.role | role}}</td>\r\n <td class=\"mat-cell\">\r\n <button mat-icon-button (click)=\"reassign(p)\" [bizdocTooltip]=\"'Reassign' | translate\"><mat-icon>swap_horiz</mat-icon></button>\r\n </td>\r\n </tr>\r\n </table>\r\n </mat-card-content>\r\n <mat-card-actions>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"reassign()\" [bizdocTooltip]=\"'ReassignAll' | translate\" [disabled]=\"!data || !data.positions.length\" data-help=\"reassign\"><mat-icon>swap_horiz</mat-icon></button>\r\n </mat-card-actions>\r\n </mat-card>\r\n</div>\r\n<!-- assign dialog -->\r\n<ng-template #assignTpl>\r\n <h2 mat-dialog-title>{{'Reassign' | translate }}</h2>\r\n <mat-dialog-content>\r\n <form autocomplete=\"off\" fxLayout=\"column\">\r\n <mat-form-field>\r\n <mat-select placeholder=\"{{'Who' | translate}}\" [formControl]=\"who\" required>\r\n <mat-option *ngFor=\"let u of assignable$ | async\" [value]=\"u.id\">{{u.name}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </form>\r\n </mat-dialog-content>\r\n <mat-dialog-actions>\r\n <button mat-button [mat-dialog-close]=\"who.value\" color=\"primary\" [disabled]=\"!who.valid\">{{'OK' | translate}}</button>\r\n <button mat-button mat-dialog-close>{{'Cancel' | translate}}</button>\r\n </mat-dialog-actions>\r\n</ng-template>\r\n<ng-template #none>\r\n <span class=\"mat-body-2\">{{'None' | translate }}</span>\r\n</ng-template>\r\n", styles: [":host{min-width:560px;display:block}.mat-card{margin:5px}.mat-card:hover{box-shadow:0 3px 3px -2px #0003,0 3px 4px #00000024,0 1px 8px #0000001f}.mat-table{width:100%}\n"], components: [{ type: i14.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { type: i15.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i16.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { type: i17.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { type: i18.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i19.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { type: i19.MatCardHeader, selector: "mat-card-header" }, { type: i20.ChartComponent, selector: "ejs-chart", inputs: ["allowExport", "allowMultiSelection", "annotations", "axes", "background", "backgroundImage", "border", "chartArea", "columns", "crosshair", "currencyCode", "dataSource", "description", "enableAnimation", "enableAutoIntervalOnBothAxis", "enableCanvas", "enableExport", "enablePersistence", "enableRtl", "enableSideBySidePlacement", "height", "highlightColor", "highlightMode", "highlightPattern", "indicators", "isMultiSelect", "isTransposed", "legendSettings", "locale", "margin", "palettes", "primaryXAxis", "primaryYAxis", "rangeColorSettings", "rows", "selectedDataIndexes", "selectionMode", "selectionPattern", "series", "subTitle", "subTitleStyle", "tabIndex", "theme", "title", "titleStyle", "tooltip", "useGroupingSeparator", "width", "zoomSettings"], outputs: ["afterExport", "animationComplete", "annotationRender", "axisLabelClick", "axisLabelRender", "axisMultiLabelRender", "axisRangeCalculated", "beforeExport", "beforePrint", "beforeResize", "chartDoubleClick", "chartMouseClick", "chartMouseDown", "chartMouseLeave", "chartMouseMove", "chartMouseUp", "drag", "dragComplete", "dragEnd", "dragStart", "legendClick", "legendRender", "load", "loaded", "multiLevelLabelClick", "onZooming", "pointClick", "pointDoubleClick", "pointMove", "pointRender", "resized", "scrollChanged", "scrollEnd", "scrollStart", "selectionComplete", "seriesRender", "sharedTooltipRender", "textRender", "tooltipRender", "zoomComplete", "dataSourceChange"] }, { type: i21.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i22.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }], directives: [{ type: i23.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i16.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { type: i13.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i13.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i13.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i24.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i25.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { type: i24.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i26.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i26.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { type: i19.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { type: i19.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { type: i19.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { type: i20.SeriesCollectionDirective, selector: "ej-chart>e-series-collection" }, { type: i4.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i4.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i13.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i13.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i13.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i4.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }, { type: i4.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }], pipes: { "async": i24.AsyncPipe, "translate": i27.TranslatePipe, "amDuration": i28.DurationPipe, "amDifference": i29.DifferencePipe, "role": i30.RolePipe } });
263
258
  ProfilerComponent = __decorate([
264
259
  BizDoc({ selector: 'bizdoc-user-profiler' })
265
260
  /** component*/
@@ -282,8 +277,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImpor
282
277
  }], guide: [{
283
278
  type: HostListener,
284
279
  args: ['window:keydown.f1', ['$event']]
285
- }], resize: [{
286
- type: HostListener,
287
- args: ['window:resize']
288
280
  }] } });
289
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9hZG1pbi9wcm9maWxlci9wcm9maWxlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2FkbWluL3Byb2ZpbGVyL3Byb2ZpbGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBa0MsVUFBVSxFQUFFLFlBQVksRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDbEksT0FBTyxFQUFlLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3pELE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBR2hFLE9BQU8sRUFBRSxPQUFPLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRixPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQVMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFJaEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxxQkFBcUIsRUFBbUIsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUFZcEUsaUJBQWlCLFNBQWpCLGlCQUFpQjtJQW9ENUIsV0FBVztJQUNYLFlBQW9CLEdBQWtCLEVBQzVC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SSxFQUFFLFVBQVUsRUFBRTtnQkFDbkIsU0FBUztzQkFBaEMsU0FBUzt1QkFBQyxXQUFXO2dCQWlGdEIsS0FBSztzQkFESixZQUFZO3VCQUFDLG1CQUFtQixFQUFFLENBQUMsUUFBUSxDQUFDO2dCQWtGN0MsTUFBTTtzQkFETCxZQUFZO3VCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIFZpZXdDaGlsZCwgT25Jbml0LCBPbkRlc3Ryb3ksIFRlbXBsYXRlUmVmLCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIENoYW5nZURldGVjdG9yUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBNYXRBdXRvY29tcGxldGVTZWxlY3RlZEV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlJztcclxuaW1wb3J0IHsgQ09NTUEsIEVOVEVSLCBTRU1JQ09MT04gfSBmcm9tICdAYW5ndWxhci9jZGsva2V5Y29kZXMnO1xyXG5pbXBvcnQgeyBNZWRpYU9ic2VydmVyIH0gZnJvbSAnQGFuZ3VsYXIvZmxleC1sYXlvdXQnO1xyXG5pbXBvcnQgeyBBeGlzTW9kZWwsIEJvcmRlck1vZGVsLCBDaGFydENvbXBvbmVudCwgSVBvaW50RXZlbnRBcmdzLCBJVG9vbHRpcFJlbmRlckV2ZW50QXJncywgTGVnZW5kU2VyaWVzTW9kZWwsIE1hcmtlck9wdGlvbnNNb2RlbCwgU2VyaWVzTW9kZWwsIFRvb2x0aXBTZXR0aW5nc01vZGVsLCBab29tU2V0dGluZ3NNb2RlbCB9IGZyb20gJ0BzeW5jZnVzaW9uL2VqMi1hbmd1bGFyLWNoYXJ0cyc7XHJcbmltcG9ydCB7IFN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgdGFrZVVudGlsLCBkZWJvdW5jZVRpbWUsIHN3aXRjaE1hcCwgZmlsdGVyLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCBkYXlqcyBmcm9tICdkYXlqcyc7XHJcbmltcG9ydCB7IGlzT2JqZWN0IH0gZnJvbSAnLi4vLi4vY29yZS9mdW5jdGlvbnMnO1xyXG5pbXBvcnQgeyBCaXpEb2MgfSBmcm9tICcuLi8uLi9jb3JlL2RlY29yYXRvcnMnO1xyXG5pbXBvcnQgeyBHcmFudFNldHRpbmdzLCBHdWlkZVN0ZXAsIE91dE9mT2ZmaWNlU2V0dGluZ3MsIFVzZXJJbmZvIH0gZnJvbSAnLi4vLi4vY29yZS9tb2RlbHMnO1xyXG5pbXBvcnQgeyBVdGlsaXR5UmVmIH0gZnJvbSAnLi4vdXRpbGl0eS1yZWYnO1xyXG5pbXBvcnQgeyBQcm9tcHRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9wcm9tcHQuc2VydmljZSc7XHJcbmltcG9ydCB7IEFjY291bnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9hY2NvdW50LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBEb2N1bWVudEluZm8gfSBmcm9tICcuLi8uLi9jb3JlL2luZm8vZG9jdW1lbnQtaW5mby5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU2Vzc2lvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3Nlc3Npb24uc2VydmljZSc7XHJcbmltcG9ydCB7IEd1aWRlU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvZ3VpZGUvZ3VpZGUuc2VydmljZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3RyYW5zbGF0ZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRk9OVF9GQU1JTFkgfSBmcm9tICcuLi8uLi9jb3JlL2NvbG9ycyc7XHJcbmltcG9ydCB7IFBhbmVzUm91dGVyIH0gZnJvbSAnLi4vLi4vY29yZS9zbG90cy9yb3V0ZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IENoYXRJbmZvIH0gZnJvbSAnLi4vLi4vY2hhdC9jaGF0LWluZm8nO1xyXG5pbXBvcnQgeyBQYW5lUmVmIH0gZnJvbSAnLi4vLi4vY29yZS9zbG90cy9wYW5lLXJlZic7XHJcbmltcG9ydCB7IE9wZW5Qb2xpY3kgfSBmcm9tICcuLi8uLi9jb3JlL2NvbmZpZ3VyYXRpb24nO1xyXG5pbXBvcnQgeyBQcm9maWxlU2V0dGluZ3NEaWFsb2csIE91dE9mT2ZmaWNlRGF0YSB9IGZyb20gJy4vb3V0b2ZvZmZpY2UuY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9maWxlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vcHJvZmlsZXIuY29tcG9uZW50LnNjc3MnXSxcclxuICBob3N0OiB7XHJcbiAgICBjbGFzczogJ3BhbmUnXHJcbiAgfSxcclxuICBlbnRyeUNvbXBvbmVudHM6IFtQcm9maWxlU2V0dGluZ3NEaWFsb2ddXHJcbn0pXHJcbkBCaXpEb2MoeyBzZWxlY3RvcjogJ2JpemRvYy11c2VyLXByb2ZpbGVyJyB9KVxyXG4vKiogY29tcG9uZW50Ki9cclxuZXhwb3J0IGNsYXNzIFByb2ZpbGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIHJlYWRvbmx5IHNlYXJjaCA9IHRoaXMuX2ZiLmNvbnRyb2wobnVsbCk7XHJcbiAgQFZpZXdDaGlsZCgnYWN0aXZpdHknKSBjaGFydDogQ2hhcnRDb21wb25lbnQ7XHJcbiAgQFZpZXdDaGlsZCgnYWN0aXZpdHknLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSkgY2hhcnRFbGVtZW50OiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ2Fzc2lnblRwbCcpIGFzc2lnblRwbDogVGVtcGxhdGVSZWY8YW55PjtcclxuICByZWFkb25seSB3aG8gPSB0aGlzLl9mYi5jb250cm9sKG51bGwsIFZhbGlkYXRvcnMucmVxdWlyZWQpO1xyXG4gIHJlYWRvbmx5IHByaW1hcnlYQXhpcyA9IHtcclxuICAgIHZhbHVlVHlwZTogJ0RhdGVUaW1lJyxcclxuICAgIGxhYmVsRm9ybWF0OiAnTU1NIGRkJyxcclxuICAgIGxhYmVsU3R5bGU6IHtcclxuICAgICAgZm9udEZhbWlseTogRk9OVF9GQU1JTFlcclxuICAgIH1cclxuICB9IGFzIEF4aXNNb2RlbDtcclxuICByZWFkb25seSBwcmltYXJ5WUF4aXMgPSB7XHJcbiAgICBsYWJlbFN0eWxlOiB7XHJcbiAgICAgIHNpemU6ICcwcHgnXHJcbiAgICB9LFxyXG4gIH0gYXMgQXhpc01vZGVsO1xyXG4gIHJlYWRvbmx5IHpvb21TZXR0aW5nczogWm9vbVNldHRpbmdzTW9kZWwgPSB7XHJcbiAgICBlbmFibGVNb3VzZVdoZWVsWm9vbWluZzogdHJ1ZSxcclxuICAgIGVuYWJsZVBpbmNoWm9vbWluZzogdHJ1ZSxcclxuICAgIHRvb2xiYXJJdGVtczogW10sXHJcbiAgICBlbmFibGVTZWxlY3Rpb25ab29taW5nOiBmYWxzZSxcclxuICAgIGVuYWJsZVNjcm9sbGJhcjogdHJ1ZVxyXG4gIH07XHJcbiAgcmVhZG9ubHkgdG9vbHRpcDogVG9vbHRpcFNldHRpbmdzTW9kZWwgPSB7XHJcbiAgICBlbmFibGU6IHRydWUsXHJcbiAgICBzaGFyZWQ6IHRydWUsXHJcbiAgICB0ZXh0U3R5bGU6IHtcclxuICAgICAgZm9udEZhbWlseTogRk9OVF9GQU1JTFlcclxuICAgIH1cclxuICB9O1xyXG4gIHJlYWRvbmx5IGxlZ2VuZDogTGVnZW5kU2VyaWVzTW9kZWwgPSB7XHJcbiAgICB2aXNpYmxlOiBmYWxzZSxcclxuICAgIHRleHRTdHlsZToge1xyXG4gICAgICBmb250RmFtaWx5OiBGT05UX0ZBTUlMWVxyXG4gICAgfVxyXG4gIH07XHJcbiAgcmVhZG9ubHkgYm9yZGVyID0geyB3aWR0aDogMCB9IGFzIEJvcmRlck1vZGVsO1xyXG4gIHJlYWRvbmx5IG1hcmtlcjogTWFya2VyT3B0aW9uc01vZGVsID0ge1xyXG4gICAgdmlzaWJsZTogdHJ1ZSxcclxuICAgIHdpZHRoOiAxMCxcclxuICAgIGhlaWdodDogMTBcclxuICB9XHJcbiAgdXNlcnMkOiBPYnNlcnZhYmxlPFVzZXJJbmZvW10+O1xyXG4gIGFzc2lnbmFibGUkOiBPYnNlcnZhYmxlPFVzZXJJbmZvW10+O1xyXG4gIHBhbGV0dGVzOiBzdHJpbmdbXSA9IHRoaXMuX3Nlc3Npb24uYWNjZW50UGFsZXR0ZTtcclxuICB0aGVtZTogJ01hdGVyaWFsJyB8ICdNYXRlcmlhbERhcmsnID0gdGhpcy5fc2Vzc2lvbi50aGVtZS5kYXJrID8gJ01hdGVyaWFsRGFyaycgOiAnTWF0ZXJpYWwnO1xyXG4gIGRhdGE6IFByb2ZpbGVJbmZvO1xyXG4gIGNvbHMgPSAyO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3kgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIHJlYWRvbmx5IHNlcGFyYXRvcktleXNDb2RlczogbnVtYmVyW10gPSBbRU5URVIsIENPTU1BLCBTRU1JQ09MT05dO1xyXG4gIC8qKiBjdG9yICovXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfc2I6IFByb21wdFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF91dGlsaXR5UmVmOiBVdGlsaXR5UmVmPGJvb2xlYW4sIFByb2ZpbGVyTW9kZWwsIFByb2ZpbGVJbmZvLCBzdHJpbmc+LFxyXG4gICAgcHJpdmF0ZSBfc2Vzc2lvbjogU2Vzc2lvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9kaWFsb2c6IE1hdERpYWxvZyxcclxuICAgIHByaXZhdGUgX2RvY3VtZW50SW5mbzogRG9jdW1lbnRJbmZvLFxyXG4gICAgbWVkaWE6IE1lZGlhT2JzZXJ2ZXIsXHJcbiAgICBwcml2YXRlIF9jaGF0OiBDaGF0SW5mbyxcclxuICAgIHByaXZhdGUgX2d1aWRlOiBHdWlkZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9yb3V0ZXI6IFBhbmVzUm91dGVyLFxyXG4gICAgcHJpdmF0ZSBfY2Q6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHJpdmF0ZSBfcGFuZTogUGFuZVJlZjxQcm9maWxlckNvbXBvbmVudD4sXHJcbiAgICBwcml2YXRlIF90cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9hY2NvdW50czogQWNjb3VudFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9mYjogRm9ybUJ1aWxkZXIpIHtcclxuICAgIG1lZGlhLm1lZGlhJC5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSkuc3Vic2NyaWJlKG0gPT4gdGhpcy5jb2xzID0gbS5tcUFsaWFzID09PSAnc20nIHx8IG0ubXFBbGlhcyA9PT0gJ3htJyA/IDEgOiAyKTtcclxuICAgIF9zZXNzaW9uLnRoZW1lQ2hhbmdlLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpKS5zdWJzY3JpYmUodCA9PiB7XHJcbiAgICAgIHRoaXMudGhlbWUgPSB0LmRhcmsgPyAnTWF0ZXJpYWxEYXJrJyA6ICdNYXRlcmlhbCc7XHJcbiAgICAgIHRoaXMucGFsZXR0ZXMgPSBfc2Vzc2lvbi5hY2NlbnRQYWxldHRlO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fcGFuZS5xdWVyeVBhcmFtc0NoYW5nZS5zdWJzY3JpYmUocCA9PiB7XHJcbiAgICAgIGNvbnN0IHsgdXNlcklkIH0gPSBwO1xyXG4gICAgICB1c2VySWQgJiYgdGhpcy5fb3Blbih1c2VySWQpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLl9wYW5lLnJlc2l6ZS5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSkuc3Vic2NyaWJlKHRoaXMucmVzaXplLmJpbmQodGhpcykpO1xyXG4gICAgdGhpcy51c2VycyQgPSB0aGlzLnNlYXJjaC52YWx1ZUNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSksXHJcbiAgICAgIGRlYm91bmNlVGltZSgyNTApLFxyXG4gICAgICBmaWx0ZXIodiA9PiAhaXNPYmplY3QodikpLFxyXG4gICAgICBzd2l0Y2hNYXAodiA9PiB0aGlzLl9hY2NvdW50cy5maW5kQWxsKHYpKSk7XHJcbiAgfVxyXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzprZXlkb3duLmYxJywgWyckZXZlbnQnXSlcclxuICBndWlkZShldnQ/OiBFdmVudCB8IEtleWJvYXJkRXZlbnQpIHtcclxuICAgIGNvbnN0IHN0ZXBzOiBHdWlkZVN0ZXBbXSA9IFtdO1xyXG4gICAgaWYgKHRoaXMuZGF0YSkge1xyXG4gICAgICBzdGVwcy5wdXNoKHtcclxuICAgICAgICBzZWxlY3RvcjogJ1tkYXRhLWhlbHA9c2V0dGluZ3NdJyxcclxuICAgICAgICBjb250ZW50OiB0aGlzLl90cmFuc2xhdGUuZ2V0KCdPdXRPZk9mZmljZUhlbHAnKVxyXG4gICAgICB9KTtcclxuICAgICAgT2JqZWN0LmtleXModGhpcy5kYXRhLmFjdGl2aXR5KS5sZW5ndGggJiZcclxuICAgICAgICBzdGVwcy5wdXNoKHtcclxuICAgICAgICAgIHNlbGVjdG9yOiAnW2RhdGEtaGVscD1hY3Rpdml0eV0nLFxyXG4gICAgICAgICAgY29udGVudDogdGhpcy5fdHJhbnNsYXRlLmdldCgnQWN0aXZpdHlIZWxwJylcclxuICAgICAgICB9KTtcclxuICAgICAgdGhpcy5kYXRhLnBlbmRpbmcubGVuZ3RoICYmXHJcbiAgICAgICAgc3RlcHMucHVzaCh7XHJcbiAgICAgICAgICBzZWxlY3RvcjogJ1tkYXRhLWhlbHA9cGVuZGluZ10nLFxyXG4gICAgICAgICAgY29udGVudDogdGhpcy5fdHJhbnNsYXRlLmdldCgnUGVuZGluZ0hlbHAnKVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB0aGlzLmRhdGEucG9zaXRpb25zLmxlbmd0aCAmJlxyXG4gICAgICAgIHN0ZXBzLnB1c2goe1xyXG4gICAgICAgICAgc2VsZWN0b3I6ICdbZGF0YS1oZWxwPXBvc2l0aW9uc10nLFxyXG4gICAgICAgICAgY29udGVudDogdGhpcy5fdHJhbnNsYXRlLmdldCgnUG9zaXRpb25zSGVscCcpXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIHN0ZXBzLnB1c2goe1xyXG4gICAgICAgIHNlbGVjdG9yOiAnW2RhdGEtaGVscD1yZWFzc2lnbl0nLFxyXG4gICAgICAgIGNvbnRlbnQ6IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ1JlYXNzaWduSGVscCcpXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgZWxzZSBzdGVwcy5wdXNoKHtcclxuICAgICAgc2VsZWN0b3I6ICdbZGF0YS1oZWxwPXNlYXJjaF0nLFxyXG4gICAgICBwb3NpdGlvbjogJ0JlbG93JyxcclxuICAgICAgY29udGVudDogdGhpcy5fdHJhbnNsYXRlLmdldCgnUHJvZmlsZXJTZWFyY2hIZWxwJylcclxuICAgIH0pO1xyXG4gICAgdGhpcy5fZ3VpZGUuc3RhcnQoe1xyXG4gICAgICBuYW1lOiAncHJvZmlsZXInLFxyXG4gICAgICBzdGVwc1xyXG4gICAgfSk7XHJcbiAgICBldnQgJiYgZXZ0LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgfVxyXG4gIGNoYW5nZShldnQ6IE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQpIHtcclxuICAgIGNvbnN0IHsgaWQ6IHVzZXJJZCB9ID0gZXZ0Lm9wdGlvbi52YWx1ZTtcclxuICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZShbXSwgeyBxdWVyeVBhcmFtczogeyB1c2VySWQgfSB9KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIHVzZXJJZFxyXG4gICAqL1xyXG4gIHByaXZhdGUgX29wZW4odXNlcklkOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX3V0aWxpdHlSZWYucG9wdWxhdGUodXNlcklkKS5zdWJzY3JpYmUoZSA9PiB7XHJcbiAgICAgIHRoaXMuZGF0YSA9IGU7XHJcbiAgICAgIHRoaXMuc2VhcmNoLnJlc2V0KG51bGwsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICAgICAgdGhpcy5fY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICB3aGlsZSAodGhpcy5jaGFydC5zZXJpZXMubGVuZ3RoKVxyXG4gICAgICAgIHRoaXMuY2hhcnQ/LnJlbW92ZVNlcmllcygwKTtcclxuICAgICAgdGhpcy5jaGFydD8uYWRkU2VyaWVzKHRoaXMuX3NlcmllcygpKTtcclxuICAgIH0sICgpID0+IHRoaXMuX3NiLmVycm9yKCkpO1xyXG4gIH1cclxuICAvKiogKi9cclxuICBwcml2YXRlIF9zZXJpZXMoKTogU2VyaWVzTW9kZWxbXSB7XHJcbiAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy5kYXRhLmFjdGl2aXR5KS5tYXAoYSA9PiB7XHJcbiAgICAgIGNvbnN0IGxvZyA9IHRoaXMuZGF0YS5hY3Rpdml0eVthXTtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICB0eXBlOiAnU2NhdHRlcicsXHJcbiAgICAgICAgbmFtZTogdGhpcy5fYWN0aW9uTmFtZShhKSxcclxuICAgICAgICB4TmFtZTogJ3RpbWUnLFxyXG4gICAgICAgIHlOYW1lOiAnZHVyYXRpb24nLFxyXG4gICAgICAgIGRhdGFTb3VyY2U6IGxvZy5tYXAobCA9PiB7XHJcbiAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBpZDogbC5pZCxcclxuICAgICAgICAgICAgdGltZTogbmV3IERhdGUobC50aW1lKSxcclxuICAgICAgICAgICAgZHVyYXRpb246IGwuZHVyYXRpb25cclxuICAgICAgICAgIH07XHJcbiAgICAgICAgfSlcclxuICAgICAgfTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfYWN0aW9uTmFtZShuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgYWN0aW9uID0gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmFjdGlvbnMuZmluZChhID0+IGEubmFtZSA9PT0gbmFtZSk7XHJcbiAgICByZXR1cm4gYWN0aW9uID8gYWN0aW9uLnBhc3QgfHwgYWN0aW9uLnRpdGxlIDogbmFtZTtcclxuICB9XHJcbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScpXHJcbiAgcmVzaXplKCkge1xyXG4gICAgLy8gIGNvbnN0IHsgd2lkdGgsIGhlaWdodCB9ID0gZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLmNoYXJ0RWxlbWVudC5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQpO1xyXG4gICAgLy8gIHRoaXMuY2hhcnQud2lkdGggPSB3aWR0aDtcclxuICAgIC8vICB0aGlzLmNoYXJ0LmhlaWdodCA9IGhlaWdodDtcclxuICB9XHJcbiAgcG9pbnRDbGljayhldnQ6IElQb2ludEV2ZW50QXJncykge1xyXG4gICAgY29uc3QgeyBpZCB9ID0gZXZ0LnNlcmllcy5kYXRhU291cmNlW2V2dC5wb2ludEluZGV4XTtcclxuICAgIHRoaXMuX2RvY3VtZW50SW5mby5vcGVuKGlkKTtcclxuICB9XHJcbiAgdXNlckRpc3BsYXkoaXRlbTogVXNlckluZm8pIHtcclxuICAgIHJldHVybiBpdGVtID8gaXRlbS5uYW1lIDogbnVsbDtcclxuICB9XHJcbiAgdHJhY2UoaWQ6IG51bWJlcikge1xyXG4gICAgdGhpcy5fcm91dGVyLm5hdmlnYXRlKFsnYWRtaW4nLCAndXRpbGl0aWVzJywgJ2RvY3VtZW50LXRyYWNlJ10sIHtcclxuICAgICAgcXVlcnlQYXJhbXM6IHsgZG9jdW1lbnRJZDogaWQuZW5jb2RlSWQoKSB9LFxyXG4gICAgICBwb2xpY3k6IE9wZW5Qb2xpY3kuRGVmZXIgfCBPcGVuUG9saWN5LlBpbm5hYmxlXHJcbiAgICB9KTtcclxuICB9XHJcbiAgY2hhdCgpIHtcclxuICAgIHRoaXMuX2NoYXQub3Blbih0aGlzLmRhdGEuaW5mby5pZCk7XHJcbiAgfVxyXG4gIHJlYXNzaWduKHBvc2l0aW9uPzogUG9zaXRpb25JbmZvKSB7XHJcbiAgICB0aGlzLmFzc2lnbmFibGUkID0gdGhpcy5fYWNjb3VudHMuZmluZEFsbCgpLnBpcGUobWFwKHUgPT4gdS5maWx0ZXIodSA9PiB1LmlkICE9PSB0aGlzLmRhdGEuaW5mby5pZCkpKTtcclxuICAgIHRoaXMuX2RpYWxvZy5vcGVuKHRoaXMuYXNzaWduVHBsLCB7fSkuYWZ0ZXJDbG9zZWQoKS5cclxuICAgICAgc3Vic2NyaWJlKHUgPT5cclxuICAgICAgICB1ICYmIHRoaXMuX3JlYXNzaWduKHUsIHBvc2l0aW9uKVxyXG4gICAgICApO1xyXG4gIH1cclxuICBzZXR0aW5ncygpIHtcclxuICAgIHRoaXMuX2RpYWxvZy5vcGVuKFByb2ZpbGVTZXR0aW5nc0RpYWxvZywge1xyXG4gICAgICBjbG9zZU9uTmF2aWdhdGlvbjogdHJ1ZSxcclxuICAgICAgZGF0YToge1xyXG4gICAgICAgIHVzZXJJZDogdGhpcy5kYXRhLmluZm8uaWQsXHJcbiAgICAgICAgZ3JhbnRBY2Nlc3M6IHRoaXMuZGF0YS5ncmFudEFjY2VzcyxcclxuICAgICAgICBvdXRPZk9mZmljZTogdGhpcy5kYXRhLm91dE9mT2ZmaWNlXHJcbiAgICAgIH0gYXMgT3V0T2ZPZmZpY2VEYXRhXHJcbiAgICB9KS5hZnRlckNsb3NlZCgpLlxyXG4gICAgICBzdWJzY3JpYmUodiA9PlxyXG4gICAgICAgIHYgJiYgdGhpcy5fdXRpbGl0eVJlZi5leGVjdXRlKHtcclxuICAgICAgICAgIG91dE9mT2ZmaWNlOiB2Lm91dE9mT2ZmaWNlLFxyXG4gICAgICAgICAgZ3JhbnRBY2Nlc3M6IHYuZ3JhbnRBY2Nlc3MsXHJcbiAgICAgICAgICB1c2VySWQ6IHRoaXMuZGF0YS5pbmZvLmlkXHJcbiAgICAgICAgfSkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5kYXRhKTtcclxuICAgICAgICAgIHRoaXMuX3NiLnRvYXN0KCdDaGFuZ2VzU2F2ZWQnKTtcclxuICAgICAgICB9LCAoKSA9PlxyXG4gICAgICAgICAgdGhpcy5fc2IuZXJyb3IoKSkpO1xyXG4gIH1cclxuICAvKiogKi9cclxuICBwcml2YXRlIF9yZWFzc2lnbih3aG86IHN0cmluZywgcG9zaXRpb24/OiBQb3NpdGlvbkluZm8pIHtcclxuICAgIHRoaXMuX3V0aWxpdHlSZWYuZXhlY3V0ZSh7IHJlYXNzaWduOiB7IHdobywgLi4ucG9zaXRpb24gfSwgdXNlcklkOiB0aGlzLmRhdGEuaW5mby5pZCB9KS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLl9zYi50b2FzdCgnQXNzaWduZWQnKTtcclxuICAgICAgaWYgKHBvc2l0aW9uKVxyXG4gICAgICAgIHRoaXMuZGF0YS5wb3NpdGlvbnMucmVtb3ZlKHBvc2l0aW9uKTtcclxuICAgICAgZWxzZVxyXG4gICAgICAgIHRoaXMuZGF0YS5wb3NpdGlvbnMgPSBbXTtcclxuICAgIH0sICgpID0+XHJcbiAgICAgIHRoaXMuX3NiLmVycm9yKCkpO1xyXG4gIH1cclxuICB0b29sdGlwUmVuZGVyKGU6IElUb29sdGlwUmVuZGVyRXZlbnRBcmdzKSB7XHJcbiAgICBlLnRleHQgPSBgJHtkYXlqcy5kdXJhdGlvbihlLnBvaW50LnkgYXMgbnVtYmVyLCAncycpLmh1bWFuaXplKCl9YDtcclxuICB9XHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9kZXN0cm95Lm5leHQoKTtcclxuICAgIHRoaXMuX2Rlc3Ryb3kuY29tcGxldGUoKTtcclxuICB9XHJcbn1cclxuXHJcbmludGVyZmFjZSBQcm9maWxlSW5mbyB7XHJcbiAgb3V0T2ZPZmZpY2U6IE91dE9mT2ZmaWNlU2V0dGluZ3M7XHJcbiAgZ3JhbnRBY2Nlc3M6IEdyYW50U2V0dGluZ3M7XHJcbiAgcG9zaXRpb25zOiBQb3NpdGlvbkluZm9bXTtcclxuICBhY3Rpdml0eToge1xyXG4gICAgW2FjdGlvbjogc3RyaW5nXToge1xyXG4gICAgICBpZDogbnVtYmVyO1xyXG4gICAgICAvKiogc2Vjb25kcyAqL1xyXG4gICAgICBkdXJhdGlvbjogbnVtYmVyO1xyXG4gICAgICBudW1iZXI6IHN0cmluZztcclxuICAgICAgdGltZTogRGF0ZTtcclxuICAgIH1bXVxyXG4gIH07XHJcbiAgcGVuZGluZzoge1xyXG4gICAgaWQ6IG51bWJlcjtcclxuICAgIHJlY2VpdmVkOiBEYXRlO1xyXG4gICAgbnVtYmVyOiBzdHJpbmc7XHJcbiAgfVtdO1xyXG4gIGluZm86IFVzZXJJbmZvO1xyXG59XHJcbmludGVyZmFjZSBQb3NpdGlvbkluZm8ge1xyXG4gIHR5cGU6IHN0cmluZztcclxuICBrZXk6IHN0cmluZztcclxuICB2YWx1ZTogc3RyaW5nO1xyXG4gIHJvbGU6IHN0cmluZztcclxufVxyXG5pbnRlcmZhY2UgUHJvZmlsZXJNb2RlbCB7XHJcbiAgb3V0T2ZPZmZpY2U/OiBPdXRPZk9mZmljZVNldHRpbmdzO1xyXG4gIGdyYW50QWNjZXNzPzogR3JhbnRTZXR0aW5ncztcclxuICB1c2VySWQ6IHN0cmluZztcclxuICByZWFzc2lnbj86IHtcclxuICAgIHdobzogc3RyaW5nO1xyXG4gICAgcm9sZT86IHN0cmluZztcclxuICAgIGtleT86IGFueTtcclxuICB9XHJcbn1cclxuXHJcbiIsIjxtYXQtdG9vbGJhcj5cclxuICA8bWF0LWljb24gKGNsaWNrKT1cIm51bGxcIiBjbGFzcz1cIm1hdC1pY29uLXJ0bC1taXJyb3JcIj5zZWFyY2g8L21hdC1pY29uPlxyXG4gIDxpbnB1dCBtYXRJbnB1dCB0eXBlPVwic2VhcmNoXCIgW21hdEF1dG9jb21wbGV0ZV09XCJhdXRvXCIgW2Zvcm1Db250cm9sXT1cInNlYXJjaFwiIGRhdGEtaGVscD1cInNlYXJjaFwiIHdpZHRoPVwiMjBcIiAvPlxyXG4gIDxtYXQtYXV0b2NvbXBsZXRlICNhdXRvPVwibWF0QXV0b2NvbXBsZXRlXCIgW2Rpc3BsYXlXaXRoXT1cInVzZXJEaXNwbGF5XCJcclxuICAgICAgICAgICAgICAgICAgICAob3B0aW9uU2VsZWN0ZWQpPVwiY2hhbmdlKCRldmVudClcIj5cclxuICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCB1IG9mIHVzZXJzJCB8IGFzeW5jXCIgW3ZhbHVlXT1cInVcIj5cclxuICAgICAgPHNwYW4+e3t1Lm5hbWV9fTwvc3Bhbj5cclxuICAgIDwvbWF0LW9wdGlvbj5cclxuICA8L21hdC1hdXRvY29tcGxldGU+XHJcbiAgPHNwYW4gY2xhc3M9XCJkaXZpZGVyXCI+PC9zcGFuPlxyXG4gIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJndWlkZSgpXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ0hlbHAnIHwgdHJhbnNsYXRlXCI+PG1hdC1pY29uPmhlbHBfb3V0bGluZTwvbWF0LWljb24+PC9idXR0b24+XHJcbjwvbWF0LXRvb2xiYXI+XHJcbjxkaXYgKm5nSWY9XCJkYXRhXCIgZnhMYXlvdXQ9XCJyb3cgd3JhcFwiPlxyXG4gIDwhLS0gaW5mbyAtLT5cclxuICA8bWF0LWNhcmQgZnhGbGV4PlxyXG4gICAgPG1hdC1jYXJkLWhlYWRlcj5cclxuICAgICAgPG1hdC1jYXJkLXRpdGxlPlxyXG4gICAgICAgIDxzcGFuPnt7ZGF0YS5pbmZvLm5hbWV9fTwvc3Bhbj5cclxuICAgICAgPC9tYXQtY2FyZC10aXRsZT5cclxuICAgIDwvbWF0LWNhcmQtaGVhZGVyPlxyXG4gICAgPG1hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgIDxiciAvPlxyXG4gICAgPC9tYXQtY2FyZC1jb250ZW50PlxyXG4gICAgPG1hdC1jYXJkLWFjdGlvbnM+XHJcbiAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJjaGF0KClcIiBbYml6ZG9jVG9vbHRpcF09XCInQ2hhdCcgfCB0cmFuc2xhdGVcIiBbZGlzYWJsZWRdPVwiIWRhdGFcIj48bWF0LWljb24+Y2hhdDwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwiZGl2aWRlclwiPjwvc3Bhbj5cclxuICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cInNldHRpbmdzKClcIiBbYml6ZG9jVG9vbHRpcF09XCInU2V0dGluZ3MnIHwgdHJhbnNsYXRlXCIgW2Rpc2FibGVkXT1cIiFkYXRhXCIgZGF0YS1oZWxwPVwic2V0dGluZ3NcIj48bWF0LWljb24+c2V0dGluZ3M8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gICAgPC9tYXQtY2FyZC1hY3Rpb25zPlxyXG4gIDwvbWF0LWNhcmQ+XHJcbiAgPG1hdC1jYXJkIGZ4RmxleCBkYXRhLWhlbHA9XCJhY3Rpdml0eVwiPlxyXG4gICAgPG1hdC1jYXJkLWhlYWRlcj5cclxuICAgICAgPG1hdC1jYXJkLXRpdGxlPlxyXG4gICAgICAgIHt7J0FjdGl2aXR5JyB8IHRyYW5zbGF0ZX19XHJcbiAgICAgIDwvbWF0LWNhcmQtdGl0bGU+XHJcbiAgICA8L21hdC1jYXJkLWhlYWRlcj5cclxuICAgIDxtYXQtY2FyZC1jb250ZW50PlxyXG4gICAgICA8ZWpzLWNoYXJ0ICNhY3Rpdml0eSBbcHJpbWFyeVhBeGlzXT1cInByaW1hcnlYQXhpc1wiIFtwcmltYXJ5WUF4aXNdPVwicHJpbWFyeVlBeGlzXCIgW3pvb21TZXR0aW5nc109XCJ6b29tU2V0dGluZ3NcIiBbdG9vbHRpcF09J3Rvb2x0aXAnICh0b29sdGlwUmVuZGVyKT1cInRvb2x0aXBSZW5kZXIoJGV2ZW50KVwiIFtwYWxldHRlc109XCJwYWxldHRlc1wiIGJhY2tncm91bmQ9XCJ0cmFuc3BhcmVudFwiIFt0aGVtZV09J3RoZW1lJyBbYm9yZGVyXT1cImJvcmRlclwiIChwb2ludENsaWNrKT1cInBvaW50Q2xpY2soJGV2ZW50KVwiPlxyXG4gICAgICAgIDxlLXNlcmllcy1jb2xsZWN0aW9uPlxyXG4gICAgICAgIDwvZS1zZXJpZXMtY29sbGVjdGlvbj5cclxuICAgICAgPC9lanMtY2hhcnQ+XHJcbiAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgPC9tYXQtY2FyZD5cclxuICA8IS0tIHBlbmRpbmcgLS0+XHJcbiAgPG1hdC1jYXJkIGZ4RmxleCBkYXRhLWhlbHA9XCJwZW5kaW5nXCI+XHJcbiAgICA8bWF0LWNhcmQtaGVhZGVyPlxyXG4gICAgICA8bWF0LWNhcmQtdGl0bGU+XHJcbiAgICAgICAge3snUGVuZGluZycgfCB0cmFuc2xhdGV9fVxyXG4gICAgICA8L21hdC1jYXJkLXRpdGxlPlxyXG4gICAgPC9tYXQtY2FyZC1oZWFkZXI+XHJcbiAgICA8bWF0LWNhcmQtY29udGVudD5cclxuICAgICAgPHRhYmxlIGNsYXNzPVwibWF0LXRhYmxlXCIgKm5nSWY9XCJkYXRhLnBlbmRpbmcubGVuZ3RoOyBlbHNlIG5vbmVcIj5cclxuICAgICAgICA8dGhlYWQ+XHJcbiAgICAgICAgICA8dHIgY2xhc3M9XCJtYXQtcm93XCI+XHJcbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cIm1hdC1oZWFkZXItY2VsbFwiPjwvdGQ+XHJcbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cIm1hdC1oZWFkZXItY2VsbFwiPjwvdGQ+XHJcbiAgICAgICAgICA8L3RyPlxyXG4gICAgICAgIDwvdGhlYWQ+XHJcbiAgICAgICAgPHRib2R5PlxyXG4gICAgICAgICAgPHRyICpuZ0Zvcj1cImxldCByIG9mIGRhdGEucGVuZGluZ1wiIGNsYXNzPVwibWF0LXJvd1wiPlxyXG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJtYXQtY2VsbFwiPjxhIChjbGljayk9XCJ0cmFjZShyLmlkKVwiPnt7ci5udW1iZXJ9fTwvYT48L3RkPlxyXG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJtYXQtY2VsbFwiPnt7IHIucmVjZWl2ZWQgfCBhbURpZmZlcmVuY2UgOiBudWxsIDogJ3MnIHwgYW1EdXJhdGlvbiA6ICdzJ319PC90ZD5cclxuICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgPC90Ym9keT5cclxuICAgICAgPC90YWJsZT5cclxuICAgIDwvbWF0LWNhcmQtY29udGVudD5cclxuICA8L21hdC1jYXJkPlxyXG4gIDwhLS0gcG9zaXRpb25zIC0tPlxyXG4gIDxtYXQtY2FyZCBmeEZsZXggZGF0YS1oZWxwPVwicG9zaXRpb25zXCI+XHJcbiAgICA8bWF0LWNhcmQtaGVhZGVyPlxyXG4gICAgICA8bWF0LWNhcmQtdGl0bGU+XHJcbiAgICAgICAge3snUG9zaXRpb25zJyB8IHRyYW5zbGF0ZX19XHJcbiAgICAgIDwvbWF0LWNhcmQtdGl0bGU+XHJcbiAgICA8L21hdC1jYXJkLWhlYWRlcj5cclxuICAgIDxtYXQtY2FyZC1jb250ZW50PlxyXG4gICAgICA8dGFibGUgY2xhc3M9XCJtYXQtdGFibGVcIiAqbmdJZj1cImRhdGEucG9zaXRpb25zLmxlbmd0aDsgZWxzZSBub25lXCI+XHJcbiAgICAgICAgPHRyICpuZ0Zvcj1cImxldCBwIG9mIGRhdGEucG9zaXRpb25zXCIgY2xhc3M9XCJtYXQtcm93XCI+XHJcbiAgICAgICAgICA8dGQgY2xhc3M9XCJtYXQtY2VsbFwiPnt7cC52YWx1ZSB9fTwvdGQ+XHJcbiAgICAgICAgICA8dGQgY2xhc3M9XCJtYXQtY2VsbFwiPnt7cC5yb2xlIHwgcm9sZX19PC90ZD5cclxuICAgICAgICAgIDx0ZCBjbGFzcz1cIm1hdC1jZWxsXCI+XHJcbiAgICAgICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJyZWFzc2lnbihwKVwiIFtiaXpkb2NUb29sdGlwXT1cIidSZWFzc2lnbicgfCB0cmFuc2xhdGVcIj48bWF0LWljb24+c3dhcF9ob3JpejwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgICAgICAgICA8L3RkPlxyXG4gICAgICAgIDwvdHI+XHJcbiAgICAgIDwvdGFibGU+XHJcbiAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICA8bWF0LWNhcmQtYWN0aW9ucz5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJkaXZpZGVyXCI+PC9zcGFuPlxyXG4gICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwicmVhc3NpZ24oKVwiIFtiaXpkb2NUb29sdGlwXT1cIidSZWFzc2lnbkFsbCcgfCB0cmFuc2xhdGVcIiBbZGlzYWJsZWRdPVwiIWRhdGEgfHwgIWRhdGEucG9zaXRpb25zLmxlbmd0aFwiIGRhdGEtaGVscD1cInJlYXNzaWduXCI+PG1hdC1pY29uPnN3YXBfaG9yaXo8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gICAgPC9tYXQtY2FyZC1hY3Rpb25zPlxyXG4gIDwvbWF0LWNhcmQ+XHJcbjwvZGl2PlxyXG48IS0tIGFzc2lnbiBkaWFsb2cgLS0+XHJcbjxuZy10ZW1wbGF0ZSAjYXNzaWduVHBsPlxyXG4gIDxoMiBtYXQtZGlhbG9nLXRpdGxlPnt7J1JlYXNzaWduJyB8IHRyYW5zbGF0ZSB9fTwvaDI+XHJcbiAgPG1hdC1kaWFsb2ctY29udGVudD5cclxuICAgIDxmb3JtIGF1dG9jb21wbGV0ZT1cIm9mZlwiIGZ4TGF5b3V0PVwiY29sdW1uXCI+XHJcbiAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICA8bWF0LXNlbGVjdCBwbGFjZWhvbGRlcj1cInt7J1dobycgfCB0cmFuc2xhdGV9fVwiIFtmb3JtQ29udHJvbF09XCJ3aG9cIiByZXF1aXJlZD5cclxuICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCB1IG9mIGFzc2lnbmFibGUkIHwgYXN5bmNcIiBbdmFsdWVdPVwidS5pZFwiPnt7dS5uYW1lfX08L21hdC1vcHRpb24+XHJcbiAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgPC9mb3JtPlxyXG4gIDwvbWF0LWRpYWxvZy1jb250ZW50PlxyXG4gIDxtYXQtZGlhbG9nLWFjdGlvbnM+XHJcbiAgICA8YnV0dG9uIG1hdC1idXR0b24gW21hdC1kaWFsb2ctY2xvc2VdPVwid2hvLnZhbHVlXCIgY29sb3I9XCJwcmltYXJ5XCIgW2Rpc2FibGVkXT1cIiF3aG8udmFsaWRcIj57eydPSycgfCB0cmFuc2xhdGV9fTwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvbiBtYXQtYnV0dG9uIG1hdC1kaWFsb2ctY2xvc2U+e3snQ2FuY2VsJyB8IHRyYW5zbGF0ZX19PC9idXR0b24+XHJcbiAgPC9tYXQtZGlhbG9nLWFjdGlvbnM+XHJcbjwvbmctdGVtcGxhdGU+XHJcbjxuZy10ZW1wbGF0ZSAjbm9uZT5cclxuICA8c3BhbiBjbGFzcz1cIm1hdC1ib2R5LTJcIj57eydOb25lJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
281
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9hZG1pbi9wcm9maWxlci9wcm9maWxlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2FkbWluL3Byb2ZpbGVyL3Byb2ZpbGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBa0MsVUFBVSxFQUFFLFlBQVksRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDbEksT0FBTyxFQUFlLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3pELE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBR2hFLE9BQU8sRUFBRSxPQUFPLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRixPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQVMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFJaEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxxQkFBcUIsRUFBbUIsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUFZcEUsaUJBQWlCLFNBQWpCLGlCQUFpQjtJQW9ENUIsV0FBVztJQUNYLFlBQW9CLEdBQWtCLEVBQzVC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QWlGdEIsS0FBSztzQkFESixZQUFZO3VCQUFDLG1CQUFtQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBWaWV3Q2hpbGQsIE9uSW5pdCwgT25EZXN0cm95LCBUZW1wbGF0ZVJlZiwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBDaGFuZ2VEZXRlY3RvclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZSc7XHJcbmltcG9ydCB7IENPTU1BLCBFTlRFUiwgU0VNSUNPTE9OIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2tleWNvZGVzJztcclxuaW1wb3J0IHsgTWVkaWFPYnNlcnZlciB9IGZyb20gJ0Bhbmd1bGFyL2ZsZXgtbGF5b3V0JztcclxuaW1wb3J0IHsgQXhpc01vZGVsLCBCb3JkZXJNb2RlbCwgQ2hhcnRDb21wb25lbnQsIElQb2ludEV2ZW50QXJncywgSVRvb2x0aXBSZW5kZXJFdmVudEFyZ3MsIExlZ2VuZFNlcmllc01vZGVsLCBNYXJrZXJPcHRpb25zTW9kZWwsIFNlcmllc01vZGVsLCBUb29sdGlwU2V0dGluZ3NNb2RlbCwgWm9vbVNldHRpbmdzTW9kZWwgfSBmcm9tICdAc3luY2Z1c2lvbi9lajItYW5ndWxhci1jaGFydHMnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHRha2VVbnRpbCwgZGVib3VuY2VUaW1lLCBzd2l0Y2hNYXAsIGZpbHRlciwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgZGF5anMgZnJvbSAnZGF5anMnO1xyXG5pbXBvcnQgeyBpc09iamVjdCB9IGZyb20gJy4uLy4uL2NvcmUvZnVuY3Rpb25zJztcclxuaW1wb3J0IHsgQml6RG9jIH0gZnJvbSAnLi4vLi4vY29yZS9kZWNvcmF0b3JzJztcclxuaW1wb3J0IHsgR3JhbnRTZXR0aW5ncywgR3VpZGVTdGVwLCBPdXRPZk9mZmljZVNldHRpbmdzLCBVc2VySW5mbyB9IGZyb20gJy4uLy4uL2NvcmUvbW9kZWxzJztcclxuaW1wb3J0IHsgVXRpbGl0eVJlZiB9IGZyb20gJy4uL3V0aWxpdHktcmVmJztcclxuaW1wb3J0IHsgUHJvbXB0U2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvcHJvbXB0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBY2NvdW50U2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvYWNjb3VudC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRG9jdW1lbnRJbmZvIH0gZnJvbSAnLi4vLi4vY29yZS9pbmZvL2RvY3VtZW50LWluZm8uc2VydmljZSc7XHJcbmltcG9ydCB7IFNlc3Npb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9zZXNzaW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBHdWlkZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL2d1aWRlL2d1aWRlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS90cmFuc2xhdGUuc2VydmljZSc7XHJcbmltcG9ydCB7IEZPTlRfRkFNSUxZIH0gZnJvbSAnLi4vLi4vY29yZS9jb2xvcnMnO1xyXG5pbXBvcnQgeyBQYW5lc1JvdXRlciB9IGZyb20gJy4uLy4uL2NvcmUvc2xvdHMvcm91dGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDaGF0SW5mbyB9IGZyb20gJy4uLy4uL2NoYXQvY2hhdC1pbmZvJztcclxuaW1wb3J0IHsgUGFuZVJlZiB9IGZyb20gJy4uLy4uL2NvcmUvc2xvdHMvcGFuZS1yZWYnO1xyXG5pbXBvcnQgeyBPcGVuUG9saWN5IH0gZnJvbSAnLi4vLi4vY29yZS9jb25maWd1cmF0aW9uJztcclxuaW1wb3J0IHsgUHJvZmlsZVNldHRpbmdzRGlhbG9nLCBPdXRPZk9mZmljZURhdGEgfSBmcm9tICcuL291dG9mb2ZmaWNlLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICB0ZW1wbGF0ZVVybDogJy4vcHJvZmlsZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3Byb2ZpbGVyLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgaG9zdDoge1xyXG4gICAgY2xhc3M6ICdwYW5lJ1xyXG4gIH0sXHJcbiAgZW50cnlDb21wb25lbnRzOiBbUHJvZmlsZVNldHRpbmdzRGlhbG9nXVxyXG59KVxyXG5AQml6RG9jKHsgc2VsZWN0b3I6ICdiaXpkb2MtdXNlci1wcm9maWxlcicgfSlcclxuLyoqIGNvbXBvbmVudCovXHJcbmV4cG9ydCBjbGFzcyBQcm9maWxlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICByZWFkb25seSBzZWFyY2ggPSB0aGlzLl9mYi5jb250cm9sKG51bGwpO1xyXG4gIEBWaWV3Q2hpbGQoJ2FjdGl2aXR5JykgY2hhcnQ6IENoYXJ0Q29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoJ2FjdGl2aXR5JywgeyByZWFkOiBFbGVtZW50UmVmIH0pIGNoYXJ0RWxlbWVudDogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKCdhc3NpZ25UcGwnKSBhc3NpZ25UcGw6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgcmVhZG9ubHkgd2hvID0gdGhpcy5fZmIuY29udHJvbChudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuICByZWFkb25seSBwcmltYXJ5WEF4aXMgPSB7XHJcbiAgICB2YWx1ZVR5cGU6ICdEYXRlVGltZScsXHJcbiAgICBsYWJlbEZvcm1hdDogJ01NTSBkZCcsXHJcbiAgICBsYWJlbFN0eWxlOiB7XHJcbiAgICAgIGZvbnRGYW1pbHk6IEZPTlRfRkFNSUxZXHJcbiAgICB9XHJcbiAgfSBhcyBBeGlzTW9kZWw7XHJcbiAgcmVhZG9ubHkgcHJpbWFyeVlBeGlzID0ge1xyXG4gICAgbGFiZWxTdHlsZToge1xyXG4gICAgICBzaXplOiAnMHB4J1xyXG4gICAgfSxcclxuICB9IGFzIEF4aXNNb2RlbDtcclxuICByZWFkb25seSB6b29tU2V0dGluZ3M6IFpvb21TZXR0aW5nc01vZGVsID0ge1xyXG4gICAgZW5hYmxlTW91c2VXaGVlbFpvb21pbmc6IHRydWUsXHJcbiAgICBlbmFibGVQaW5jaFpvb21pbmc6IHRydWUsXHJcbiAgICB0b29sYmFySXRlbXM6IFtdLFxyXG4gICAgZW5hYmxlU2VsZWN0aW9uWm9vbWluZzogZmFsc2UsXHJcbiAgICBlbmFibGVTY3JvbGxiYXI6IHRydWVcclxuICB9O1xyXG4gIHJlYWRvbmx5IHRvb2x0aXA6IFRvb2x0aXBTZXR0aW5nc01vZGVsID0ge1xyXG4gICAgZW5hYmxlOiB0cnVlLFxyXG4gICAgc2hhcmVkOiB0cnVlLFxyXG4gICAgdGV4dFN0eWxlOiB7XHJcbiAgICAgIGZvbnRGYW1pbHk6IEZPTlRfRkFNSUxZXHJcbiAgICB9XHJcbiAgfTtcclxuICByZWFkb25seSBsZWdlbmQ6IExlZ2VuZFNlcmllc01vZGVsID0ge1xyXG4gICAgdmlzaWJsZTogZmFsc2UsXHJcbiAgICB0ZXh0U3R5bGU6IHtcclxuICAgICAgZm9udEZhbWlseTogRk9OVF9GQU1JTFlcclxuICAgIH1cclxuICB9O1xyXG4gIHJlYWRvbmx5IGJvcmRlciA9IHsgd2lkdGg6IDAgfSBhcyBCb3JkZXJNb2RlbDtcclxuICByZWFkb25seSBtYXJrZXI6IE1hcmtlck9wdGlvbnNNb2RlbCA9IHtcclxuICAgIHZpc2libGU6IHRydWUsXHJcbiAgICB3aWR0aDogMTAsXHJcbiAgICBoZWlnaHQ6IDEwXHJcbiAgfVxyXG4gIHVzZXJzJDogT2JzZXJ2YWJsZTxVc2VySW5mb1tdPjtcclxuICBhc3NpZ25hYmxlJDogT2JzZXJ2YWJsZTxVc2VySW5mb1tdPjtcclxuICBwYWxldHRlczogc3RyaW5nW10gPSB0aGlzLl9zZXNzaW9uLmFjY2VudFBhbGV0dGU7XHJcbiAgdGhlbWU6ICdNYXRlcmlhbCcgfCAnTWF0ZXJpYWxEYXJrJyA9IHRoaXMuX3Nlc3Npb24udGhlbWUuZGFyayA/ICdNYXRlcmlhbERhcmsnIDogJ01hdGVyaWFsJztcclxuICBkYXRhOiBQcm9maWxlSW5mbztcclxuICBjb2xzID0gMjtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICByZWFkb25seSBzZXBhcmF0b3JLZXlzQ29kZXM6IG51bWJlcltdID0gW0VOVEVSLCBDT01NQSwgU0VNSUNPTE9OXTtcclxuICAvKiogY3RvciAqL1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX3NiOiBQcm9tcHRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfdXRpbGl0eVJlZjogVXRpbGl0eVJlZjxib29sZWFuLCBQcm9maWxlck1vZGVsLCBQcm9maWxlSW5mbywgc3RyaW5nPixcclxuICAgIHByaXZhdGUgX3Nlc3Npb246IFNlc3Npb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfZGlhbG9nOiBNYXREaWFsb2csXHJcbiAgICBwcml2YXRlIF9kb2N1bWVudEluZm86IERvY3VtZW50SW5mbyxcclxuICAgIG1lZGlhOiBNZWRpYU9ic2VydmVyLFxyXG4gICAgcHJpdmF0ZSBfY2hhdDogQ2hhdEluZm8sXHJcbiAgICBwcml2YXRlIF9ndWlkZTogR3VpZGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfcm91dGVyOiBQYW5lc1JvdXRlcixcclxuICAgIHByaXZhdGUgX2NkOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgX3BhbmU6IFBhbmVSZWY8UHJvZmlsZXJDb21wb25lbnQ+LFxyXG4gICAgcHJpdmF0ZSBfdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfYWNjb3VudHM6IEFjY291bnRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfZmI6IEZvcm1CdWlsZGVyKSB7XHJcbiAgICBtZWRpYS5tZWRpYSQucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSkpLnN1YnNjcmliZShtID0+IHRoaXMuY29scyA9IG0ubXFBbGlhcyA9PT0gJ3NtJyB8fCBtLm1xQWxpYXMgPT09ICd4bScgPyAxIDogMik7XHJcbiAgICBfc2Vzc2lvbi50aGVtZUNoYW5nZS5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSkuc3Vic2NyaWJlKHQgPT4ge1xyXG4gICAgICB0aGlzLnRoZW1lID0gdC5kYXJrID8gJ01hdGVyaWFsRGFyaycgOiAnTWF0ZXJpYWwnO1xyXG4gICAgICB0aGlzLnBhbGV0dGVzID0gX3Nlc3Npb24uYWNjZW50UGFsZXR0ZTtcclxuICAgIH0pO1xyXG4gIH1cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3BhbmUucXVlcnlQYXJhbXNDaGFuZ2Uuc3Vic2NyaWJlKHAgPT4ge1xyXG4gICAgICBjb25zdCB7IHVzZXJJZCB9ID0gcDtcclxuICAgICAgdXNlcklkICYmIHRoaXMuX29wZW4odXNlcklkKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5fcGFuZS5yZXNpemVkLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jaGFydD8uY2hhcnRSZXNpemUoKSk7XHJcbiAgICB0aGlzLnVzZXJzJCA9IHRoaXMuc2VhcmNoLnZhbHVlQ2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSxcclxuICAgICAgZGVib3VuY2VUaW1lKDI1MCksIFxyXG4gICAgICBmaWx0ZXIodiA9PiAhaXNPYmplY3QodikpLFxyXG4gICAgICBzd2l0Y2hNYXAodiA9PiB0aGlzLl9hY2NvdW50cy5maW5kQWxsKHYpKSk7XHJcbiAgfVxyXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzprZXlkb3duLmYxJywgWyckZXZlbnQnXSlcclxuICBndWlkZShldnQ/OiBFdmVudCB8IEtleWJvYXJkRXZlbnQpIHtcclxuICAgIGNvbnN0IHN0ZXBzOiBHdWlkZVN0ZXBbXSA9IFtdO1xyXG4gICAgaWYgKHRoaXMuZGF0YSkge1xyXG4gICAgICBzdGVwcy5wdXNoKHtcclxuICAgICAgICBzZWxlY3RvcjogJ1tkYXRhLWhlbHA9c2V0dGluZ3NdJyxcclxuICAgICAgICBjb250ZW50OiB0aGlzLl90cmFuc2xhdGUuZ2V0KCdPdXRPZk9mZmljZUhlbHAnKVxyXG4gICAgICB9KTtcclxuICAgICAgT2JqZWN0LmtleXModGhpcy5kYXRhLmFjdGl2aXR5KS5sZW5ndGggJiZcclxuICAgICAgICBzdGVwcy5wdXNoKHtcclxuICAgICAgICAgIHNlbGVjdG9yOiAnW2RhdGEtaGVscD1hY3Rpdml0eV0nLFxyXG4gICAgICAgICAgY29udGVudDogdGhpcy5fdHJhbnNsYXRlLmdldCgnQWN0aXZpdHlIZWxwJylcclxuICAgICAgICB9KTtcclxuICAgICAgdGhpcy5kYXRhLnBlbmRpbmcubGVuZ3RoICYmXHJcbiAgICAgICAgc3RlcHMucHVzaCh7XHJcbiAgICAgICAgICBzZWxlY3RvcjogJ1tkYXRhLWhlbHA9cGVuZGluZ10nLFxyXG4gICAgICAgICAgY29udGVudDogdGhpcy5fdHJhbnNsYXRlLmdldCgnUGVuZGluZ0hlbHAnKVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB0aGlzLmRhdGEucG9zaXRpb25zLmxlbmd0aCAmJlxyXG4gICAgICAgIHN0ZXBzLnB1c2goe1xyXG4gICAgICAgICAgc2VsZWN0b3I6ICdbZGF0YS1oZWxwPXBvc2l0aW9uc10nLFxyXG4gICAgICAgICAgY29udGVudDogdGhpcy5fdHJhbnNsYXRlLmdldCgnUG9zaXRpb25zSGVscCcpXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIHN0ZXBzLnB1c2goe1xyXG4gICAgICAgIHNlbGVjdG9yOiAnW2RhdGEtaGVscD1yZWFzc2lnbl0nLFxyXG4gICAgICAgIGNvbnRlbnQ6IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ1JlYXNzaWduSGVscCcpXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgZWxzZSBzdGVwcy5wdXNoKHtcclxuICAgICAgc2VsZWN0b3I6ICdbZGF0YS1oZWxwPXNlYXJjaF0nLFxyXG4gICAgICBwb3NpdGlvbjogJ0JlbG93JyxcclxuICAgICAgY29udGVudDogdGhpcy5fdHJhbnNsYXRlLmdldCgnUHJvZmlsZXJTZWFyY2hIZWxwJylcclxuICAgIH0pO1xyXG4gICAgdGhpcy5fZ3VpZGUuc3RhcnQoe1xyXG4gICAgICBuYW1lOiAncHJvZmlsZXInLFxyXG4gICAgICBzdGVwc1xyXG4gICAgfSk7XHJcbiAgICBldnQgJiYgZXZ0LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgfVxyXG4gIGNoYW5nZShldnQ6IE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQpIHtcclxuICAgIGNvbnN0IHsgaWQ6IHVzZXJJZCB9ID0gZXZ0Lm9wdGlvbi52YWx1ZTtcclxuICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZShbXSwgeyBxdWVyeVBhcmFtczogeyB1c2VySWQgfSB9KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIHVzZXJJZFxyXG4gICAqL1xyXG4gIHByaXZhdGUgX29wZW4odXNlcklkOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX3V0aWxpdHlSZWYucG9wdWxhdGUodXNlcklkKS5zdWJzY3JpYmUoZSA9PiB7XHJcbiAgICAgIHRoaXMuZGF0YSA9IGU7XHJcbiAgICAgIHRoaXMuc2VhcmNoLnJlc2V0KG51bGwsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICAgICAgdGhpcy5fY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICB3aGlsZSAodGhpcy5jaGFydC5zZXJpZXMubGVuZ3RoKVxyXG4gICAgICAgIHRoaXMuY2hhcnQ/LnJlbW92ZVNlcmllcygwKTtcclxuICAgICAgdGhpcy5jaGFydD8uYWRkU2VyaWVzKHRoaXMuX3NlcmllcygpKTtcclxuICAgIH0sICgpID0+IHRoaXMuX3NiLmVycm9yKCkpO1xyXG4gIH1cclxuICAvKiogKi9cclxuICBwcml2YXRlIF9zZXJpZXMoKTogU2VyaWVzTW9kZWxbXSB7XHJcbiAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy5kYXRhLmFjdGl2aXR5KS5tYXAoYSA9PiB7XHJcbiAgICAgIGNvbnN0IGxvZyA9IHRoaXMuZGF0YS5hY3Rpdml0eVthXTtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICB0eXBlOiAnU2NhdHRlcicsXHJcbiAgICAgICAgbmFtZTogdGhpcy5fYWN0aW9uTmFtZShhKSxcclxuICAgICAgICB4TmFtZTogJ3RpbWUnLFxyXG4gICAgICAgIHlOYW1lOiAnZHVyYXRpb24nLFxyXG4gICAgICAgIGRhdGFTb3VyY2U6IGxvZy5tYXAobCA9PiB7XHJcbiAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBpZDogbC5pZCxcclxuICAgICAgICAgICAgdGltZTogbmV3IERhdGUobC50aW1lKSxcclxuICAgICAgICAgICAgZHVyYXRpb246IGwuZHVyYXRpb25cclxuICAgICAgICAgIH07XHJcbiAgICAgICAgfSlcclxuICAgICAgfTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfYWN0aW9uTmFtZShuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgYWN0aW9uID0gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmFjdGlvbnMuZmluZChhID0+IGEubmFtZSA9PT0gbmFtZSk7XHJcbiAgICByZXR1cm4gYWN0aW9uID8gYWN0aW9uLnBhc3QgfHwgYWN0aW9uLnRpdGxlIDogbmFtZTtcclxuICB9XHJcbiAgcG9pbnRDbGljayhldnQ6IElQb2ludEV2ZW50QXJncykge1xyXG4gICAgY29uc3QgeyBpZCB9ID0gZXZ0LnNlcmllcy5kYXRhU291cmNlW2V2dC5wb2ludEluZGV4XTtcclxuICAgIHRoaXMuX2RvY3VtZW50SW5mby5vcGVuKGlkKTtcclxuICB9XHJcbiAgdXNlckRpc3BsYXkoaXRlbTogVXNlckluZm8pIHtcclxuICAgIHJldHVybiBpdGVtID8gaXRlbS5uYW1lIDogbnVsbDtcclxuICB9XHJcbiAgdHJhY2UoaWQ6IG51bWJlcikge1xyXG4gICAgdGhpcy5fcm91dGVyLm5hdmlnYXRlKFsnYWRtaW4nLCAndXRpbGl0aWVzJywgJ2RvY3VtZW50LXRyYWNlJ10sIHtcclxuICAgICAgcXVlcnlQYXJhbXM6IHsgZG9jdW1lbnRJZDogaWQuZW5jb2RlSWQoKSB9LFxyXG4gICAgICBwb2xpY3k6IE9wZW5Qb2xpY3kuRGVmZXIgfCBPcGVuUG9saWN5LlBpbm5hYmxlXHJcbiAgICB9KTtcclxuICB9XHJcbiAgY2hhdCgpIHtcclxuICAgIHRoaXMuX2NoYXQub3Blbih0aGlzLmRhdGEuaW5mby5pZCk7XHJcbiAgfVxyXG4gIHJlYXNzaWduKHBvc2l0aW9uPzogUG9zaXRpb25JbmZvKSB7XHJcbiAgICB0aGlzLmFzc2lnbmFibGUkID0gdGhpcy5fYWNjb3VudHMuZmluZEFsbCgpLnBpcGUobWFwKHUgPT4gdS5maWx0ZXIodSA9PiB1LmlkICE9PSB0aGlzLmRhdGEuaW5mby5pZCkpKTtcclxuICAgIHRoaXMuX2RpYWxvZy5vcGVuKHRoaXMuYXNzaWduVHBsLCB7fSkuYWZ0ZXJDbG9zZWQoKS5cclxuICAgICAgc3Vic2NyaWJlKHUgPT5cclxuICAgICAgICB1ICYmIHRoaXMuX3JlYXNzaWduKHUsIHBvc2l0aW9uKVxyXG4gICAgICApO1xyXG4gIH1cclxuICBzZXR0aW5ncygpIHtcclxuICAgIHRoaXMuX2RpYWxvZy5vcGVuKFByb2ZpbGVTZXR0aW5nc0RpYWxvZywge1xyXG4gICAgICBjbG9zZU9uTmF2aWdhdGlvbjogdHJ1ZSxcclxuICAgICAgZGF0YToge1xyXG4gICAgICAgIHVzZXJJZDogdGhpcy5kYXRhLmluZm8uaWQsXHJcbiAgICAgICAgZ3JhbnRBY2Nlc3M6IHRoaXMuZGF0YS5ncmFudEFjY2VzcyxcclxuICAgICAgICBvdXRPZk9mZmljZTogdGhpcy5kYXRhLm91dE9mT2ZmaWNlXHJcbiAgICAgIH0gYXMgT3V0T2ZPZmZpY2VEYXRhXHJcbiAgICB9KS5hZnRlckNsb3NlZCgpLlxyXG4gICAgICBzdWJzY3JpYmUodiA9PlxyXG4gICAgICAgIHYgJiYgdGhpcy5fdXRpbGl0eVJlZi5leGVjdXRlKHtcclxuICAgICAgICAgIG91dE9mT2ZmaWNlOiB2Lm91dE9mT2ZmaWNlLFxyXG4gICAgICAgICAgZ3JhbnRBY2Nlc3M6IHYuZ3JhbnRBY2Nlc3MsXHJcbiAgICAgICAgICB1c2VySWQ6IHRoaXMuZGF0YS5pbmZvLmlkXHJcbiAgICAgICAgfSkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5kYXRhKTtcclxuICAgICAgICAgIHRoaXMuX3NiLnRvYXN0KCdDaGFuZ2VzU2F2ZWQnKTtcclxuICAgICAgICB9LCAoKSA9PlxyXG4gICAgICAgICAgdGhpcy5fc2IuZXJyb3IoKSkpO1xyXG4gIH1cclxuICAvKiogKi9cclxuICBwcml2YXRlIF9yZWFzc2lnbih3aG86IHN0cmluZywgcG9zaXRpb24/OiBQb3NpdGlvbkluZm8pIHtcclxuICAgIHRoaXMuX3V0aWxpdHlSZWYuZXhlY3V0ZSh7IHJlYXNzaWduOiB7IHdobywgLi4ucG9zaXRpb24gfSwgdXNlcklkOiB0aGlzLmRhdGEuaW5mby5pZCB9KS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLl9zYi50b2FzdCgnQXNzaWduZWQnKTtcclxuICAgICAgaWYgKHBvc2l0aW9uKVxyXG4gICAgICAgIHRoaXMuZGF0YS5wb3NpdGlvbnMucmVtb3ZlKHBvc2l0aW9uKTtcclxuICAgICAgZWxzZVxyXG4gICAgICAgIHRoaXMuZGF0YS5wb3NpdGlvbnMgPSBbXTtcclxuICAgIH0sICgpID0+XHJcbiAgICAgIHRoaXMuX3NiLmVycm9yKCkpO1xyXG4gIH1cclxuICB0b29sdGlwUmVuZGVyKGU6IElUb29sdGlwUmVuZGVyRXZlbnRBcmdzKSB7XHJcbiAgICBlLnRleHQgPSBgJHtkYXlqcy5kdXJhdGlvbihlLnBvaW50LnkgYXMgbnVtYmVyLCAncycpLmh1bWFuaXplKCl9YDtcclxuICB9XHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9kZXN0cm95Lm5leHQoKTtcclxuICAgIHRoaXMuX2Rlc3Ryb3kuY29tcGxldGUoKTtcclxuICB9XHJcbn1cclxuXHJcbmludGVyZmFjZSBQcm9maWxlSW5mbyB7XHJcbiAgb3V0T2ZPZmZpY2U6IE91dE9mT2ZmaWNlU2V0dGluZ3M7XHJcbiAgZ3JhbnRBY2Nlc3M6IEdyYW50U2V0dGluZ3M7XHJcbiAgcG9zaXRpb25zOiBQb3NpdGlvbkluZm9bXTtcclxuICBhY3Rpdml0eToge1xyXG4gICAgW2FjdGlvbjogc3RyaW5nXToge1xyXG4gICAgICBpZDogbnVtYmVyO1xyXG4gICAgICAvKiogc2Vjb25kcyAqL1xyXG4gICAgICBkdXJhdGlvbjogbnVtYmVyO1xyXG4gICAgICBudW1iZXI6IHN0cmluZztcclxuICAgICAgdGltZTogRGF0ZTtcclxuICAgIH1bXVxyXG4gIH07XHJcbiAgcGVuZGluZzoge1xyXG4gICAgaWQ6IG51bWJlcjtcclxuICAgIHJlY2VpdmVkOiBEYXRlO1xyXG4gICAgbnVtYmVyOiBzdHJpbmc7XHJcbiAgfVtdO1xyXG4gIGluZm86IFVzZXJJbmZvO1xyXG59XHJcbmludGVyZmFjZSBQb3NpdGlvbkluZm8ge1xyXG4gIHR5cGU6IHN0cmluZztcclxuICBrZXk6IHN0cmluZztcclxuICB2YWx1ZTogc3RyaW5nO1xyXG4gIHJvbGU6IHN0cmluZztcclxufVxyXG5pbnRlcmZhY2UgUHJvZmlsZXJNb2RlbCB7XHJcbiAgb3V0T2ZPZmZpY2U/OiBPdXRPZk9mZmljZVNldHRpbmdzO1xyXG4gIGdyYW50QWNjZXNzPzogR3JhbnRTZXR0aW5ncztcclxuICB1c2VySWQ6IHN0cmluZztcclxuICByZWFzc2lnbj86IHtcclxuICAgIHdobzogc3RyaW5nO1xyXG4gICAgcm9sZT86IHN0cmluZztcclxuICAgIGtleT86IGFueTtcclxuICB9XHJcbn1cclxuXHJcbiIsIjxtYXQtdG9vbGJhcj5cclxuICA8bWF0LWljb24gKGNsaWNrKT1cIm51bGxcIiBjbGFzcz1cIm1hdC1pY29uLXJ0bC1taXJyb3JcIj5zZWFyY2g8L21hdC1pY29uPlxyXG4gIDxpbnB1dCBtYXRJbnB1dCB0eXBlPVwic2VhcmNoXCIgW21hdEF1dG9jb21wbGV0ZV09XCJhdXRvXCIgW2Zvcm1Db250cm9sXT1cInNlYXJjaFwiIGRhdGEtaGVscD1cInNlYXJjaFwiIHdpZHRoPVwiMjBcIiAvPlxyXG4gIDxtYXQtYXV0b2NvbXBsZXRlICNhdXRvPVwibWF0QXV0b2NvbXBsZXRlXCIgW2Rpc3BsYXlXaXRoXT1cInVzZXJEaXNwbGF5XCJcclxuICAgICAgICAgICAgICAgICAgICAob3B0aW9uU2VsZWN0ZWQpPVwiY2hhbmdlKCRldmVudClcIj5cclxuICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCB1IG9mIHVzZXJzJCB8IGFzeW5jXCIgW3ZhbHVlXT1cInVcIj5cclxuICAgICAgPHNwYW4+e3t1Lm5hbWV9fTwvc3Bhbj5cclxuICAgIDwvbWF0LW9wdGlvbj5cclxuICA8L21hdC1hdXRvY29tcGxldGU+XHJcbiAgPHNwYW4gY2xhc3M9XCJkaXZpZGVyXCI+PC9zcGFuPlxyXG4gIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJndWlkZSgpXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ0hlbHAnIHwgdHJhbnNsYXRlXCI+PG1hdC1pY29uPmhlbHBfb3V0bGluZTwvbWF0LWljb24+PC9idXR0b24+XHJcbjwvbWF0LXRvb2xiYXI+XHJcbjxkaXYgKm5nSWY9XCJkYXRhXCIgZnhMYXlvdXQ9XCJyb3cgd3JhcFwiPlxyXG4gIDwhLS0gaW5mbyAtLT5cclxuICA8bWF0LWNhcmQgZnhGbGV4PlxyXG4gICAgPG1hdC1jYXJkLWhlYWRlcj5cclxuICAgICAgPG1hdC1jYXJkLXRpdGxlPlxyXG4gICAgICAgIDxzcGFuPnt7ZGF0YS5pbmZvLm5hbWV9fTwvc3Bhbj5cclxuICAgICAgPC9tYXQtY2FyZC10aXRsZT5cclxuICAgIDwvbWF0LWNhcmQtaGVhZGVyPlxyXG4gICAgPG1hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgIDxiciAvPlxyXG4gICAgPC9tYXQtY2FyZC1jb250ZW50PlxyXG4gICAgPG1hdC1jYXJkLWFjdGlvbnM+XHJcbiAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJjaGF0KClcIiBbYml6ZG9jVG9vbHRpcF09XCInQ2hhdCcgfCB0cmFuc2xhdGVcIiBbZGlzYWJsZWRdPVwiIWRhdGFcIj48bWF0LWljb24+Y2hhdDwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwiZGl2aWRlclwiPjwvc3Bhbj5cclxuICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cInNldHRpbmdzKClcIiBbYml6ZG9jVG9vbHRpcF09XCInU2V0dGluZ3MnIHwgdHJhbnNsYXRlXCIgW2Rpc2FibGVkXT1cIiFkYXRhXCIgZGF0YS1oZWxwPVwic2V0dGluZ3NcIj48bWF0LWljb24+c2V0dGluZ3M8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gICAgPC9tYXQtY2FyZC1hY3Rpb25zPlxyXG4gIDwvbWF0LWNhcmQ+XHJcbiAgPG1hdC1jYXJkIGZ4RmxleCBkYXRhLWhlbHA9XCJhY3Rpdml0eVwiPlxyXG4gICAgPG1hdC1jYXJkLWhlYWRlcj5cclxuICAgICAgPG1hdC1jYXJkLXRpdGxlPlxyXG4gICAgICAgIHt7J0FjdGl2aXR5JyB8IHRyYW5zbGF0ZX19XHJcbiAgICAgIDwvbWF0LWNhcmQtdGl0bGU+XHJcbiAgICA8L21hdC1jYXJkLWhlYWRlcj5cclxuICAgIDxtYXQtY2FyZC1jb250ZW50PlxyXG4gICAgICA8ZWpzLWNoYXJ0ICNhY3Rpdml0eSBbcHJpbWFyeVhBeGlzXT1cInByaW1hcnlYQXhpc1wiIFtwcmltYXJ5WUF4aXNdPVwicHJpbWFyeVlBeGlzXCIgW3pvb21TZXR0aW5nc109XCJ6b29tU2V0dGluZ3NcIiBbdG9vbHRpcF09J3Rvb2x0aXAnICh0b29sdGlwUmVuZGVyKT1cInRvb2x0aXBSZW5kZXIoJGV2ZW50KVwiIFtwYWxldHRlc109XCJwYWxldHRlc1wiIGJhY2tncm91bmQ9XCJ0cmFuc3BhcmVudFwiIFt0aGVtZV09J3RoZW1lJyBbYm9yZGVyXT1cImJvcmRlclwiIChwb2ludENsaWNrKT1cInBvaW50Q2xpY2soJGV2ZW50KVwiPlxyXG4gICAgICAgIDxlLXNlcmllcy1jb2xsZWN0aW9uPlxyXG4gICAgICAgIDwvZS1zZXJpZXMtY29sbGVjdGlvbj5cclxuICAgICAgPC9lanMtY2hhcnQ+XHJcbiAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgPC9tYXQtY2FyZD5cclxuICA8IS0tIHBlbmRpbmcgLS0+XHJcbiAgPG1hdC1jYXJkIGZ4RmxleCBkYXRhLWhlbHA9XCJwZW5kaW5nXCI+XHJcbiAgICA8bWF0LWNhcmQtaGVhZGVyPlxyXG4gICAgICA8bWF0LWNhcmQtdGl0bGU+XHJcbiAgICAgICAge3snUGVuZGluZycgfCB0cmFuc2xhdGV9fVxyXG4gICAgICA8L21hdC1jYXJkLXRpdGxlPlxyXG4gICAgPC9tYXQtY2FyZC1oZWFkZXI+XHJcbiAgICA8bWF0LWNhcmQtY29udGVudD5cclxuICAgICAgPHRhYmxlIGNsYXNzPVwibWF0LXRhYmxlXCIgKm5nSWY9XCJkYXRhLnBlbmRpbmcubGVuZ3RoOyBlbHNlIG5vbmVcIj5cclxuICAgICAgICA8dGhlYWQ+XHJcbiAgICAgICAgICA8dHIgY2xhc3M9XCJtYXQtcm93XCI+XHJcbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cIm1hdC1oZWFkZXItY2VsbFwiPjwvdGQ+XHJcbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cIm1hdC1oZWFkZXItY2VsbFwiPjwvdGQ+XHJcbiAgICAgICAgICA8L3RyPlxyXG4gICAgICAgIDwvdGhlYWQ+XHJcbiAgICAgICAgPHRib2R5PlxyXG4gICAgICAgICAgPHRyICpuZ0Zvcj1cImxldCByIG9mIGRhdGEucGVuZGluZ1wiIGNsYXNzPVwibWF0LXJvd1wiPlxyXG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJtYXQtY2VsbFwiPjxhIChjbGljayk9XCJ0cmFjZShyLmlkKVwiPnt7ci5udW1iZXJ9fTwvYT48L3RkPlxyXG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJtYXQtY2VsbFwiPnt7IHIucmVjZWl2ZWQgfCBhbURpZmZlcmVuY2UgOiBudWxsIDogJ3MnIHwgYW1EdXJhdGlvbiA6ICdzJ319PC90ZD5cclxuICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgPC90Ym9keT5cclxuICAgICAgPC90YWJsZT5cclxuICAgIDwvbWF0LWNhcmQtY29udGVudD5cclxuICA8L21hdC1jYXJkPlxyXG4gIDwhLS0gcG9zaXRpb25zIC0tPlxyXG4gIDxtYXQtY2FyZCBmeEZsZXggZGF0YS1oZWxwPVwicG9zaXRpb25zXCI+XHJcbiAgICA8bWF0LWNhcmQtaGVhZGVyPlxyXG4gICAgICA8bWF0LWNhcmQtdGl0bGU+XHJcbiAgICAgICAge3snUG9zaXRpb25zJyB8IHRyYW5zbGF0ZX19XHJcbiAgICAgIDwvbWF0LWNhcmQtdGl0bGU+XHJcbiAgICA8L21hdC1jYXJkLWhlYWRlcj5cclxuICAgIDxtYXQtY2FyZC1jb250ZW50PlxyXG4gICAgICA8dGFibGUgY2xhc3M9XCJtYXQtdGFibGVcIiAqbmdJZj1cImRhdGEucG9zaXRpb25zLmxlbmd0aDsgZWxzZSBub25lXCI+XHJcbiAgICAgICAgPHRyICpuZ0Zvcj1cImxldCBwIG9mIGRhdGEucG9zaXRpb25zXCIgY2xhc3M9XCJtYXQtcm93XCI+XHJcbiAgICAgICAgICA8dGQgY2xhc3M9XCJtYXQtY2VsbFwiPnt7cC52YWx1ZSB9fTwvdGQ+XHJcbiAgICAgICAgICA8dGQgY2xhc3M9XCJtYXQtY2VsbFwiPnt7cC5yb2xlIHwgcm9sZX19PC90ZD5cclxuICAgICAgICAgIDx0ZCBjbGFzcz1cIm1hdC1jZWxsXCI+XHJcbiAgICAgICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJyZWFzc2lnbihwKVwiIFtiaXpkb2NUb29sdGlwXT1cIidSZWFzc2lnbicgfCB0cmFuc2xhdGVcIj48bWF0LWljb24+c3dhcF9ob3JpejwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgICAgICAgICA8L3RkPlxyXG4gICAgICAgIDwvdHI+XHJcbiAgICAgIDwvdGFibGU+XHJcbiAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICA8bWF0LWNhcmQtYWN0aW9ucz5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJkaXZpZGVyXCI+PC9zcGFuPlxyXG4gICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwicmVhc3NpZ24oKVwiIFtiaXpkb2NUb29sdGlwXT1cIidSZWFzc2lnbkFsbCcgfCB0cmFuc2xhdGVcIiBbZGlzYWJsZWRdPVwiIWRhdGEgfHwgIWRhdGEucG9zaXRpb25zLmxlbmd0aFwiIGRhdGEtaGVscD1cInJlYXNzaWduXCI+PG1hdC1pY29uPnN3YXBfaG9yaXo8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gICAgPC9tYXQtY2FyZC1hY3Rpb25zPlxyXG4gIDwvbWF0LWNhcmQ+XHJcbjwvZGl2PlxyXG48IS0tIGFzc2lnbiBkaWFsb2cgLS0+XHJcbjxuZy10ZW1wbGF0ZSAjYXNzaWduVHBsPlxyXG4gIDxoMiBtYXQtZGlhbG9nLXRpdGxlPnt7J1JlYXNzaWduJyB8IHRyYW5zbGF0ZSB9fTwvaDI+XHJcbiAgPG1hdC1kaWFsb2ctY29udGVudD5cclxuICAgIDxmb3JtIGF1dG9jb21wbGV0ZT1cIm9mZlwiIGZ4TGF5b3V0PVwiY29sdW1uXCI+XHJcbiAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICA8bWF0LXNlbGVjdCBwbGFjZWhvbGRlcj1cInt7J1dobycgfCB0cmFuc2xhdGV9fVwiIFtmb3JtQ29udHJvbF09XCJ3aG9cIiByZXF1aXJlZD5cclxuICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCB1IG9mIGFzc2lnbmFibGUkIHwgYXN5bmNcIiBbdmFsdWVdPVwidS5pZFwiPnt7dS5uYW1lfX08L21hdC1vcHRpb24+XHJcbiAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgPC9mb3JtPlxyXG4gIDwvbWF0LWRpYWxvZy1jb250ZW50PlxyXG4gIDxtYXQtZGlhbG9nLWFjdGlvbnM+XHJcbiAgICA8YnV0dG9uIG1hdC1idXR0b24gW21hdC1kaWFsb2ctY2xvc2VdPVwid2hvLnZhbHVlXCIgY29sb3I9XCJwcmltYXJ5XCIgW2Rpc2FibGVkXT1cIiF3aG8udmFsaWRcIj57eydPSycgfCB0cmFuc2xhdGV9fTwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvbiBtYXQtYnV0dG9uIG1hdC1kaWFsb2ctY2xvc2U+e3snQ2FuY2VsJyB8IHRyYW5zbGF0ZX19PC9idXR0b24+XHJcbiAgPC9tYXQtZGlhbG9nLWFjdGlvbnM+XHJcbjwvbmctdGVtcGxhdGU+XHJcbjxuZy10ZW1wbGF0ZSAjbm9uZT5cclxuICA8c3BhbiBjbGFzcz1cIm1hdC1ib2R5LTJcIj57eydOb25lJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
@@ -3,7 +3,7 @@ import { Subject } from 'rxjs';
3
3
  import { debounceTime, filter, takeUntil } from 'rxjs/operators';
4
4
  import { ActionDialog } from '../compose/action/action.dialog';
5
5
  import { BrowseFilterComponent } from './filter/filter.component';
6
- import { NavigationSelected, NavigationStart, ParamNavigation } from '../core/slots/pane-ref';
6
+ import { NavigationFocus, NavigationStart, ParamNavigation } from '../core/slots/pane-ref';
7
7
  import { BrowseItemsComponent } from './browse-items.component';
8
8
  import { ComposePaneComponent } from '../compose/compose.pane.component';
9
9
  import { FormControl } from '@angular/forms';
@@ -58,8 +58,7 @@ export class BrowsePaneComponent {
58
58
  this._pane.title = this._translate.get('Tags');
59
59
  this.filters = p;
60
60
  });
61
- const events = this._router.events.pipe(takeUntil(this._destroy));
62
- events.pipe(filter(e => (e instanceof ParamNavigation || e instanceof NavigationStart || e instanceof NavigationSelected)
61
+ this._router.events.pipe(takeUntil(this._destroy), filter(e => (e instanceof ParamNavigation || e instanceof NavigationStart || e instanceof NavigationFocus)
63
62
  && e.pane.component === ComposePaneComponent)).
64
63
  subscribe((e) => this.items.select(e.pane.data.item.id));
65
64
  this.contains.valueChanges.pipe(takeUntil(this._destroy), debounceTime(200)).subscribe(v => this.filters = { ...this.filters, contains: v });
@@ -146,4 +145,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImpor
146
145
  type: HostListener,
147
146
  args: ['document:keydown', ['$event']]
148
147
  }] } });
149
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJvd3NlLnBhbmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9icm93c2UvYnJvd3NlLnBhbmUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9icm93c2UvYnJvd3NlLnBhbmUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFVLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2RixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBS2pFLE9BQU8sRUFBRSxZQUFZLEVBQW9CLE1BQU0saUNBQWlDLENBQUM7QUFDakYsT0FBTyxFQUFvQixxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3BGLE9BQU8sRUFBRSxrQkFBa0IsRUFBc0IsZUFBZSxFQUFFLGVBQWUsRUFBVyxNQUFNLHdCQUF3QixDQUFDO0FBQzNILE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRWhFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRXpFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFZckQsc0JBQXNCO0FBQ3RCLE1BQU0sT0FBTyxtQkFBbUI7SUFVOUIsa0JBQWtCO0lBQ2xCLFlBQ1UsS0FBbUMsRUFDbkMsUUFBd0IsRUFDeEIsTUFBYSxFQUNiLE9BQW9CLEVBQ3BCLGVBQStCLEVBQy9CLFVBQTRCLEVBQzVC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SUFBSSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQixDQUFDOztnSEE5R1UsbUJBQW1CO29HQUFuQixtQkFBbUIsK0xBQ25CLG9CQUFvQixpSUFDRyxVQUFVLDZCQy9COUMsbXlJQTJDQSwyMEdEcEJjLENBQUMsZUFBZSxDQUFDOzJGQU1sQixtQkFBbUI7a0JBVi9CLFNBQVM7K0JBQ0Usb0JBQW9CLGNBR2xCLENBQUMsZUFBZSxDQUFDLFFBQ3ZCO3dCQUNKLEtBQUssRUFBRSxNQUFNO3FCQUNkOzZQQUlrRCxLQUFLO3NCQUF2RCxTQUFTO3VCQUFDLG9CQUFvQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFDRCxNQUFNO3NCQUFyRCxTQUFTO3VCQUFDLGFBQWEsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7Z0JBeUQ5QyxhQUFhO3NCQURaLFlBQVk7dUJBQUMsa0JBQWtCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGZpbHRlciwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBEaXJlY3Rpb25hbGl0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9iaWRpJztcclxuaW1wb3J0IHsgRm9sZGVyLCBSZWNpcGllbnRNb2RlbCB9IGZyb20gJy4uL2NvcmUvbW9kZWxzJztcclxuaW1wb3J0IHsgUGFuZXNSb3V0ZXIgfSBmcm9tICcuLi9jb3JlL3Nsb3RzL3JvdXRlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRmlsdGVyVHlwZSB9IGZyb20gJy4uL2NvcmUvbWFpbGJveC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQWN0aW9uRGlhbG9nLCBBY3Rpb25EaWFsb2dEYXRhIH0gZnJvbSAnLi4vY29tcG9zZS9hY3Rpb24vYWN0aW9uLmRpYWxvZyc7XHJcbmltcG9ydCB7IEJyb3dzZUZpbHRlckFyZ3MsIEJyb3dzZUZpbHRlckNvbXBvbmVudCB9IGZyb20gJy4vZmlsdGVyL2ZpbHRlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBOYXZpZ2F0aW9uU2VsZWN0ZWQsIE5hdmlnYXRpb25QYW5lQmFzZSwgTmF2aWdhdGlvblN0YXJ0LCBQYXJhbU5hdmlnYXRpb24sIFBhbmVSZWYgfSBmcm9tICcuLi9jb3JlL3Nsb3RzL3BhbmUtcmVmJztcclxuaW1wb3J0IHsgQnJvd3NlSXRlbXNDb21wb25lbnQgfSBmcm9tICcuL2Jyb3dzZS1pdGVtcy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBQb3B1cCB9IGZyb20gJy4uL2NvcmUvcG9wdXAvcG9wdXAuc2VydmljZSc7XHJcbmltcG9ydCB7IENvbXBvc2VQYW5lQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9zZS9jb21wb3NlLnBhbmUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU2Vzc2lvblNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL3Nlc3Npb24uc2VydmljZSc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBzZWFyY2hBbmltYXRpb24gfSBmcm9tICcuLi9jb3JlL2FuaW1hdGlvbnMnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vY29yZS90cmFuc2xhdGUuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2JpemRvYy1icm93c2UucGFuZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2Jyb3dzZS5wYW5lLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9icm93c2UucGFuZS5jb21wb25lbnQuc2NzcyddLFxyXG4gIGFuaW1hdGlvbnM6IFtzZWFyY2hBbmltYXRpb25dLFxyXG4gIGhvc3Q6IHtcclxuICAgIGNsYXNzOiAncGFuZSdcclxuICB9XHJcbn0pXHJcbi8qKiBicm93c2UgY29tcG9uZW50Ki9cclxuZXhwb3J0IGNsYXNzIEJyb3dzZVBhbmVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBWaWV3Q2hpbGQoQnJvd3NlSXRlbXNDb21wb25lbnQsIHsgc3RhdGljOiB0cnVlIH0pIGl0ZW1zOiBCcm93c2VJdGVtc0NvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKCdzZWFyY2hJbnB1dCcsIHsgcmVhZDogRWxlbWVudFJlZiB9KSBzZWFyY2g6IEVsZW1lbnRSZWY7XHJcbiAgZm9sZGVySWQ6IHN0cmluZztcclxuICBmaWx0ZXJUeXBlOiBGaWx0ZXJUeXBlO1xyXG4gIGZpbHRlcnM6IEJyb3dzZUZpbHRlckFyZ3M7XHJcbiAgc2VhcmNoaW5nID0gZmFsc2U7XHJcbiAgcGFnZVNpemU6IG51bWJlcjtcclxuICByZWFkb25seSBjb250YWlucyA9IG5ldyBGb3JtQ29udHJvbCgpO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3kgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIC8qKiBicm93c2UgY3RvciAqL1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfcGFuZTogUGFuZVJlZjxCcm93c2VQYW5lQ29tcG9uZW50PixcclxuICAgIHByaXZhdGUgX3Nlc3Npb246IFNlc3Npb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfcG9wdXA6IFBvcHVwLFxyXG4gICAgcHJpdmF0ZSBfcm91dGVyOiBQYW5lc1JvdXRlcixcclxuICAgIHByaXZhdGUgX2RpcmVjdGlvbmFsaXR5OiBEaXJlY3Rpb25hbGl0eSxcclxuICAgIHByaXZhdGUgX3RyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgX2RpYWxvZzogTWF0RGlhbG9nKSB7XHJcbiAgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fcGFuZS5wYXJhbXNDaGFuZ2Uuc3Vic2NyaWJlKHAgPT4ge1xyXG4gICAgICB0aGlzLmZvbGRlcklkID0gcFsnaWQnXTtcclxuICAgICAgaWYgKHRoaXMuZm9sZGVySWQpIHRoaXMuX3BhbmUudGl0bGUgPSB0aGlzLmZvbGRlci50aXRsZTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5fcGFuZS5xdWVyeVBhcmFtc0NoYW5nZS5zdWJzY3JpYmUocCA9PiB7XHJcbiAgICAgIHRoaXMuZmlsdGVyVHlwZSA9IHBbJ3R5cGUnXTtcclxuICAgICAgaWYgKHRoaXMuZmlsdGVyVHlwZSA9PT0gJ2ZsYWdnZWQnKVxyXG4gICAgICAgIHRoaXMuX3BhbmUudGl0bGUgPSB0aGlzLl90cmFuc2xhdGUuZ2V0KCdGbGFnZ2VkJyk7XHJcbiAgICAgIGVsc2UgXHJcbiAgICAgICAgaWYgKHBbJ3RhZyddKVxyXG4gICAgICAgIHRoaXMuX3BhbmUudGl0bGUgPSB0aGlzLl90cmFuc2xhdGUuZ2V0KCdUYWdzJyk7XHJcbiAgICAgIHRoaXMuZmlsdGVycyA9IHA7XHJcbiAgICB9KTtcclxuICAgIGNvbnN0IGV2ZW50cyA9IHRoaXMuX3JvdXRlci5ldmVudHMucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSkpO1xyXG4gICAgZXZlbnRzLnBpcGUoZmlsdGVyKGUgPT4gKGUgaW5zdGFuY2VvZiBQYXJhbU5hdmlnYXRpb24gfHwgZSBpbnN0YW5jZW9mIE5hdmlnYXRpb25TdGFydCB8fCBlIGluc3RhbmNlb2YgTmF2aWdhdGlvblNlbGVjdGVkKVxyXG4gICAgICAmJiBlLnBhbmUuY29tcG9uZW50ID09PSBDb21wb3NlUGFuZUNvbXBvbmVudCkpLlxyXG4gICAgICBzdWJzY3JpYmUoKGU6IE5hdmlnYXRpb25QYW5lQmFzZSkgPT5cclxuICAgICAgICB0aGlzLml0ZW1zLnNlbGVjdChlLnBhbmUuZGF0YS5pdGVtLmlkKVxyXG4gICAgKTtcclxuICAgIHRoaXMuY29udGFpbnMudmFsdWVDaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpLCBkZWJvdW5jZVRpbWUoMjAwKSkuc3Vic2NyaWJlKHYgPT4gdGhpcy5maWx0ZXJzID0geyAuLi50aGlzLmZpbHRlcnMsIGNvbnRhaW5zOiB2IH0pO1xyXG4gIH1cclxuICBnZXQgZm9sZGVyKCk6IEZvbGRlciB7IHJldHVybiB0aGlzLl9zZXNzaW9uLnByb2ZpbGUuZm9sZGVycy5maW5kKGYgPT4gZi5uYW1lID09PSB0aGlzLmZvbGRlcklkKTsgfVxyXG5cclxuICBvcGVuRmlsdGVyKGV2dDogRXZlbnQpIHtcclxuICAgIC8vdGhpcy5maWx0ZXJFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuc2Nyb2xsSW50b1ZpZXcoeyBiZWhhdmlvcjogJ3Ntb290aCcgfSk7XHJcbiAgICB0aGlzLl9wb3B1cC5vcGVuKEJyb3dzZUZpbHRlckNvbXBvbmVudCwgZXZ0LnNyY0VsZW1lbnQgYXMgSFRNTEVsZW1lbnQsIHsgcG9zaXRpb246ICdlbmQnIH0pLlxyXG4gICAgICBvcGVuZWQuc3Vic2NyaWJlKGUgPT4ge1xyXG4gICAgICAgIGUuZm9sZGVySWQgPSB0aGlzLmZvbGRlcklkO1xyXG4gICAgICAgIGUudmFsdWVzID0gdGhpcy5maWx0ZXJzO1xyXG4gICAgICAgIGUuZXhjbHVkZSA9IFsnY29udGFpbnMnXTtcclxuICAgICAgICBlLnZhbHVlc0NoYW5nZS5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSkuc3Vic2NyaWJlKHYgPT4gdGhpcy5maWx0ZXJzID0gdik7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuICAvKipcclxuICogQ3RybC1mXHJcbiAqIEBwYXJhbSBldmVudFxyXG4gKi9cclxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXlkb3duJywgWyckZXZlbnQnXSlcclxuICBoYW5kbGVLZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICBpZiAoZXZlbnQuY3RybEtleSAmJiAoZXZlbnQud2hpY2ggPT09IDcwIHx8IGV2ZW50LndoaWNoID09PSAxMDIpKSB7XHJcbiAgICAgIHRoaXMuc2VhcmNoLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcclxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIH1cclxuICB9XHJcbiAgb3BlblNlYXJjaCgpIHtcclxuICAgIHRoaXMuc2VhcmNoaW5nID0gIXRoaXMuc2VhcmNoaW5nO1xyXG4gICAgdGhpcy5zZWFyY2hpbmcgJiZcclxuICAgICAgdGhpcy5zZWFyY2gubmF0aXZlRWxlbWVudC5mb2N1cygpO1xyXG4gIH1cclxuICBjbGVhclNlYXJjaChldnQ/OiBFdmVudCkge1xyXG4gICAgdGhpcy5jb250YWlucy5zZXRWYWx1ZShudWxsKTtcclxuICAgIGlmIChldnQpIHtcclxuICAgICAgZXZ0LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICB0aGlzLnNlYXJjaGluZyA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuICBvcGVuKGl0ZW06IFJlY2lwaWVudE1vZGVsPGFueT4pIHtcclxuICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZShbJ21haWxib3gvaScsIGl0ZW0uaWQuZW5jb2RlSWQoKV0sXHJcbiAgICAgIHtcclxuICAgICAgICBzdGF0ZToge1xyXG4gICAgICAgICAgaXRlbTogeyAuLi5pdGVtIH1cclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICB9XHJcbiAgdmlldyhpdGVtOiBSZWNpcGllbnRNb2RlbDxhbnk+KSB7XHJcbiAgICB0aGlzLl9yb3V0ZXIubmF2aWdhdGUoWydtYWlsYm94L2knLCBpdGVtLmlkLmVuY29kZUlkKCksICd2aWV3cyddLFxyXG4gICAgICB7XHJcbiAgICAgICAgc3RhdGU6IHtcclxuICAgICAgICAgIGl0ZW06IHsgLi4uaXRlbSB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gIH1cclxuICBzZW5kQWxsKGFjdGlvbjogc3RyaW5nKSB7XHJcbiAgICBjb25zdCB7IHNlbGVjdGVkIH0gPSB0aGlzLml0ZW1zLnNlbGVjdGlvbjtcclxuICAgIGNvbnN0IGRhdGE6IEFjdGlvbkRpYWxvZ0RhdGEgPSB7XHJcbiAgICAgIGFjdGlvbixcclxuICAgICAgaXRlbXM6IHNlbGVjdGVkIGFzIFJlY2lwaWVudE1vZGVsW11cclxuICAgIH07XHJcbiAgICB0aGlzLl9kaWFsb2cub3BlbihBY3Rpb25EaWFsb2csIHtcclxuICAgICAgZGF0YSxcclxuICAgICAgZGlyZWN0aW9uOiB0aGlzLl9kaXJlY3Rpb25hbGl0eS52YWx1ZSxcclxuICAgICAgcmVzdG9yZUZvY3VzOiBmYWxzZVxyXG4gICAgfSkuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoYXJncyA9PlxyXG4gICAgICBhcmdzICYmXHJcbiAgICAgIHRoaXMuaXRlbXMuc2VuZEFsbChhY3Rpb24sIGFyZ3MpKTtcclxuICB9XHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9kZXN0cm95Lm5leHQoKTtcclxuICAgIHRoaXMuX2Rlc3Ryb3kuY29tcGxldGUoKTtcclxuICB9XHJcbn1cclxuIiwiPG1hdC10b29sYmFyIGNsYXNzPVwibmF2LXRvb2xiYXJcIiA+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpdGVtcy5zZWxlY3Rpb24uaXNFbXB0eSgpOyBlbHNlIHNlYXJjaFwiPlxyXG4gICAgPCEtLTxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJpdGVtcy5yZWZyZXNoKClcIiBbYml6ZG9jVG9vbHRpcF09XCInUmVmcmVzaCcgfCB0cmFuc2xhdGVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cIidSZWZyZXNoJyB8IHRyYW5zbGF0ZVwiPjxtYXQtaWNvbiBtYXRBbmltYXRlPVwicm90YXRlXCI+YXV0b3JlbmV3PC9tYXQtaWNvbj48L2J1dHRvbj4tLT5cclxuICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uICpuZ0lmPVwiaXRlbXMuaXNBbGxEcmFmdCgpXCIgKGNsaWNrKT1cIml0ZW1zLmRpc2NhcmRBbGwoKVwiIFtiaXpkb2NUb29sdGlwXT1cIidEaXNjYXJkU2VsZWN0ZWQnIHwgdHJhbnNsYXRlIDogaXRlbXMuc2VsZWN0aW9uLnNlbGVjdGVkLmxlbmd0aFwiIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0Rpc2NhcmRTZWxlY3RlZCcgfCB0cmFuc2xhdGUgOiBpdGVtcy5zZWxlY3Rpb24uc2VsZWN0ZWQubGVuZ3RoXCI+PG1hdC1pY29uPmRlbGV0ZV9zd2VlcDwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgICA8YnV0dG9uIG1hdC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgZnhTaG93IFtmeFNob3cueHNdPVwiZmFsc2VcIiAqbmdJZj1cIml0ZW1zLmlzQWxsRHJhZnQoKVwiIChjbGljayk9XCJpdGVtcy5zdWJtaXRBbGwoKVwiPnt7J1N1Ym1pdFNlbGVjdGVkJyB8IHRyYW5zbGF0ZSA6IGl0ZW1zLnNlbGVjdGlvbi5zZWxlY3RlZC5sZW5ndGggfX08L2J1dHRvbj5cclxuICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIGZ4SGlkZSBbZnhIaWRlLnhzXT1cImZhbHNlXCIgKm5nSWY9XCJpdGVtcy5pc0FsbERyYWZ0KClcIiAoY2xpY2spPVwiaXRlbXMuc3VibWl0QWxsKClcIiBbYml6ZG9jVG9vbHRpcF09XCInU3VibWl0JyB8IHRyYW5zbGF0ZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwiJ1N1Ym1pdCcgfCB0cmFuc2xhdGVcIj48bWF0LWljb24+c2VuZDwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgICA8YnV0dG9uIG1hdC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKm5nSWY9XCJpdGVtcy5zaGFyZWRBY3Rpb25zLmxlbmd0aCA9PT0gMVwiIChjbGljayk9XCJzZW5kQWxsKGl0ZW1zLnNoYXJlZEFjdGlvbnNbMF0ubmFtZSlcIiBbYml6ZG9jVG9vbHRpcF09XCJpdGVtcy5zaGFyZWRBY3Rpb25zWzBdLnRpdGxlXCI+PG1hdC1pY29uICpuZ0lmPVwiaXRlbXMuc2hhcmVkQWN0aW9uc1swXS5pY29uXCI+e3tpdGVtcy5zaGFyZWRBY3Rpb25zWzBdLmljb259fTwvbWF0LWljb24+e3snU2VuZFNlbGVjdGVkJyB8IHRyYW5zbGF0ZSA6IGl0ZW1zLnNlbGVjdGlvbi5zZWxlY3RlZC5sZW5ndGh9fTwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvbiBtYXQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiICpuZ0lmPVwiaXRlbXMuc2hhcmVkQWN0aW9ucy5sZW5ndGggPiAxXCIgW21hdE1lbnVUcmlnZ2VyRm9yXT1cImFjdGlvblwiIFtiaXpkb2NUb29sdGlwXT1cIidTZW5kJyB8IHRyYW5zbGF0ZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwiJ1NlbmQnIHwgdHJhbnNsYXRlXCI+XHJcbiAgICAgIHt7J1NlbmRTZWxlY3RlZCd8IHRyYW5zbGF0ZSA6IGl0ZW1zLnNlbGVjdGlvbi5zZWxlY3RlZC5sZW5ndGggfX1cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgPG1hdC1tZW51ICNhY3Rpb24+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGEgb2YgaXRlbXMuc2hhcmVkQWN0aW9ucyB8IHNvcnQgOiAnZ3JvdXAnOyBsZXQgaSA9IGluZGV4XCI+XHJcbiAgICAgICAgPG1hdC1kaXZpZGVyICpuZ0lmPVwiaT4wICYmIGl0ZW1zLnNoYXJlZEFjdGlvbnNbaS0xXS5ncm91cCAhPT0gYS5ncm91cFwiPlxyXG4gICAgICAgIDwvbWF0LWRpdmlkZXI+XHJcbiAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJzZW5kQWxsKGEubmFtZSlcIiBbYXR0ci5hcmlhLWxhYmVsXT1cImEudGl0bGVcIj5cclxuICAgICAgICAgIHt7IGEudGl0bGUgfX1cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L21hdC1tZW51PlxyXG4gICAgPCEtLTxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJpdGVtcy5wYWdpbmF0b3IucHJldmlvdXNQYWdlKClcIiBbYml6ZG9jVG9vbHRpcF09XCInUHJldlBhZ2UnIHwgdHJhbnNsYXRlXCIgW2F0dHIuYXJpYS1sYWJlbF09XCInUHJldlBhZ2UnIHwgdHJhbnNsYXRlXCIgW2Rpc2FibGVkXT1cIiFpdGVtcy5wYWdpbmF0b3IuaGFzUHJldmlvdXNQYWdlKClcIj48bWF0LWljb24gY2xhc3M9XCJtYXQtaWNvbi1ydGwtbWlycm9yXCI+a2V5Ym9hcmRfYXJyb3dfbGVmdDwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cIml0ZW1zLnBhZ2luYXRvci5uZXh0UGFnZSgpXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ05leHRQYWdlJyB8IHRyYW5zbGF0ZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwiJ05leHRQYWdlJyB8IHRyYW5zbGF0ZVwiIFtkaXNhYmxlZF09XCIhaXRlbXMucGFnaW5hdG9yLmhhc05leHRQYWdlKClcIj48bWF0LWljb24gY2xhc3M9XCJtYXQtaWNvbi1ydGwtbWlycm9yXCI+a2V5Ym9hcmRfYXJyb3dfcmlnaHQ8L21hdC1pY29uPjwvYnV0dG9uPi0tPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG48L21hdC10b29sYmFyPlxyXG48Yml6ZG9jLWJyb3dzZS1pdGVtcyBbZmlsdGVyc109XCJmaWx0ZXJzXCIgW2ZvbGRlcklkXT1cImZvbGRlcklkXCIgW2ZpbHRlclR5cGVdPVwiZmlsdGVyVHlwZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgIChvcGVuKT1cIm9wZW4oJGV2ZW50KVwiICh2aWV3KT1cInZpZXcoJGV2ZW50KSBcIiAjaXRlbXM+PC9iaXpkb2MtYnJvd3NlLWl0ZW1zPlxyXG48bmctdGVtcGxhdGUgI3NlYXJjaD5cclxuICA8IS0tPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cIm9wZW5TZWFyY2goKVwiXHJcbiAgICAgICAgICBbYml6ZG9jVG9vbHRpcF09XCInU2VhcmNoJ3x0cmFuc2xhdGVcIiBjbGFzcz1cInRvb2xcIj5cclxuICAgIDxtYXQtaWNvbj5zZWFyY2g8L21hdC1pY29uPlxyXG4gIDwvYnV0dG9uPlxyXG4gIFtAc2VhcmNoXT1cInNlYXJjaGluZ1wiXHJcbiAgKEBzZWFyY2guZG9uZSk9XCJzZWFyY2hpbmcgJiYgZm9jdXMoKVwiLS0+XHJcbiAgPGlucHV0IG1hdElucHV0XHJcbiAgICAgICAgIFtmb3JtQ29udHJvbF09XCJjb250YWluc1wiIGF1dG9jb21wbGV0ZT1cIm9mZlwiIHBsYWNlaG9sZGVyPVwie3snU2VhcmNoJyB8IHRyYW5zbGF0ZX19XCJcclxuICAgICAgICAgY2xhc3M9XCJzZWFyY2gtYm94XCJcclxuICAgICAgICAgI3NlYXJjaElucHV0XHJcbiAgICAgICAgIChrZXlkb3duLmVzY2FwZSk9XCJjbGVhclNlYXJjaCgkZXZlbnQpXCI+XHJcbiAgPG1hdC1pY29uICpuZ0lmPVwiY29udGFpbnMudmFsdWVcIiAoY2xpY2spPVwiY2xlYXJTZWFyY2goKVwiPmNsb3NlPC9tYXQtaWNvbj5cclxuICA8c3BhbiBjbGFzcz1cImRpdmlkZXJcIj48L3NwYW4+XHJcbiAgPCEtLTxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJpdGVtcy5wYWdpbmF0b3IucHJldmlvdXNQYWdlKClcIiBbYml6ZG9jVG9vbHRpcF09XCInUHJldlBhZ2UnIHwgdHJhbnNsYXRlXCIgW2F0dHIuYXJpYS1sYWJlbF09XCInUHJldlBhZ2UnIHwgdHJhbnNsYXRlXCIgW2Rpc2FibGVkXT1cIiFpdGVtcy5wYWdpbmF0b3IuaGFzUHJldmlvdXNQYWdlKClcIj48bWF0LWljb24gY2xhc3M9XCJtYXQtaWNvbi1ydGwtbWlycm9yXCI+a2V5Ym9hcmRfYXJyb3dfbGVmdDwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cIml0ZW1zLnBhZ2luYXRvci5uZXh0UGFnZSgpXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ05leHRQYWdlJyB8IHRyYW5zbGF0ZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwiJ05leHRQYWdlJyB8IHRyYW5zbGF0ZVwiIFtkaXNhYmxlZF09XCIhaXRlbXMucGFnaW5hdG9yLmhhc05leHRQYWdlKClcIj48bWF0LWljb24gY2xhc3M9XCJtYXQtaWNvbi1ydGwtbWlycm9yXCI+a2V5Ym9hcmRfYXJyb3dfcmlnaHQ8L21hdC1pY29uPjwvYnV0dG9uPi0tPlxyXG4gIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJvcGVuRmlsdGVyKCRldmVudClcIiBbYml6ZG9jVG9vbHRpcF09XCInRmlsdGVyJyB8IHRyYW5zbGF0ZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0ZpbHRlcicgfCB0cmFuc2xhdGVcIj48bWF0LWljb24+ZmlsdGVyX2xpc3Q8L21hdC1pY29uPjwvYnV0dG9uPlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
148
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJvd3NlLnBhbmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9icm93c2UvYnJvd3NlLnBhbmUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9icm93c2UvYnJvd3NlLnBhbmUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFVLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2RixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBS2pFLE9BQU8sRUFBRSxZQUFZLEVBQW9CLE1BQU0saUNBQWlDLENBQUM7QUFDakYsT0FBTyxFQUFvQixxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3BGLE9BQU8sRUFBRSxlQUFlLEVBQXNCLGVBQWUsRUFBRSxlQUFlLEVBQVcsTUFBTSx3QkFBd0IsQ0FBQztBQUN4SCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVoRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUV6RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBWXJELHNCQUFzQjtBQUN0QixNQUFNLE9BQU8sbUJBQW1CO0lBVTlCLGtCQUFrQjtJQUNsQixZQUNVLEtBQW1DLEVBQ25DLFFBQXdCLEVBQ3hCLE1BQWEsRUFDYixPQUFvQixFQUNwQixlQUErQixFQUMvQixVQUE0QixFQUM1QixP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RSxDQUFDO0lBQzNCLENBQUM7O2dIQTlHVSxtQkFBbUI7b0dBQW5CLG1CQUFtQiwrTEFDbkIsb0JBQW9CLGlJQUNHLFVBQVUsNkJDL0I5QyxteUlBMkNBLDIwR0RwQmMsQ0FBQyxlQUFlLENBQUM7MkZBTWxCLG1CQUFtQjtrQkFWL0IsU0FBUzsrQkFDRSxvQkFBb0IsY0FHbEIsQ0FBQyxlQUFlLENBQUMsUUFDdkI7d0JBQ0osS0FBSyxFQUFFLE1BQU07cUJBQ2Q7NlBBSWtELEtBQUs7c0JBQXZELFNBQVM7dUJBQUMsb0JBQW9CLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUNELE1BQU07c0JBQXJELFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtnQkF5RDlDLGFBQWE7c0JBRFosWUFBWTt1QkFBQyxrQkFBa0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZmlsdGVyLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IERpcmVjdGlvbmFsaXR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2JpZGknO1xyXG5pbXBvcnQgeyBGb2xkZXIsIFJlY2lwaWVudE1vZGVsIH0gZnJvbSAnLi4vY29yZS9tb2RlbHMnO1xyXG5pbXBvcnQgeyBQYW5lc1JvdXRlciB9IGZyb20gJy4uL2NvcmUvc2xvdHMvcm91dGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGaWx0ZXJUeXBlIH0gZnJvbSAnLi4vY29yZS9tYWlsYm94LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBY3Rpb25EaWFsb2csIEFjdGlvbkRpYWxvZ0RhdGEgfSBmcm9tICcuLi9jb21wb3NlL2FjdGlvbi9hY3Rpb24uZGlhbG9nJztcclxuaW1wb3J0IHsgQnJvd3NlRmlsdGVyQXJncywgQnJvd3NlRmlsdGVyQ29tcG9uZW50IH0gZnJvbSAnLi9maWx0ZXIvZmlsdGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE5hdmlnYXRpb25Gb2N1cywgTmF2aWdhdGlvblBhbmVCYXNlLCBOYXZpZ2F0aW9uU3RhcnQsIFBhcmFtTmF2aWdhdGlvbiwgUGFuZVJlZiB9IGZyb20gJy4uL2NvcmUvc2xvdHMvcGFuZS1yZWYnO1xyXG5pbXBvcnQgeyBCcm93c2VJdGVtc0NvbXBvbmVudCB9IGZyb20gJy4vYnJvd3NlLWl0ZW1zLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFBvcHVwIH0gZnJvbSAnLi4vY29yZS9wb3B1cC9wb3B1cC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29tcG9zZVBhbmVDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb3NlL2NvbXBvc2UucGFuZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTZXNzaW9uU2VydmljZSB9IGZyb20gJy4uL2NvcmUvc2Vzc2lvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IHNlYXJjaEFuaW1hdGlvbiB9IGZyb20gJy4uL2NvcmUvYW5pbWF0aW9ucyc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL3RyYW5zbGF0ZS5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYml6ZG9jLWJyb3dzZS5wYW5lJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYnJvd3NlLnBhbmUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2Jyb3dzZS5wYW5lLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgYW5pbWF0aW9uczogW3NlYXJjaEFuaW1hdGlvbl0sXHJcbiAgaG9zdDoge1xyXG4gICAgY2xhc3M6ICdwYW5lJ1xyXG4gIH1cclxufSlcclxuLyoqIGJyb3dzZSBjb21wb25lbnQqL1xyXG5leHBvcnQgY2xhc3MgQnJvd3NlUGFuZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQFZpZXdDaGlsZChCcm93c2VJdGVtc0NvbXBvbmVudCwgeyBzdGF0aWM6IHRydWUgfSkgaXRlbXM6IEJyb3dzZUl0ZW1zQ29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoJ3NlYXJjaElucHV0JywgeyByZWFkOiBFbGVtZW50UmVmIH0pIHNlYXJjaDogRWxlbWVudFJlZjtcclxuICBmb2xkZXJJZDogc3RyaW5nO1xyXG4gIGZpbHRlclR5cGU6IEZpbHRlclR5cGU7XHJcbiAgZmlsdGVyczogQnJvd3NlRmlsdGVyQXJncztcclxuICBzZWFyY2hpbmcgPSBmYWxzZTtcclxuICBwYWdlU2l6ZTogbnVtYmVyO1xyXG4gIHJlYWRvbmx5IGNvbnRhaW5zID0gbmV3IEZvcm1Db250cm9sKCk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgLyoqIGJyb3dzZSBjdG9yICovXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9wYW5lOiBQYW5lUmVmPEJyb3dzZVBhbmVDb21wb25lbnQ+LFxyXG4gICAgcHJpdmF0ZSBfc2Vzc2lvbjogU2Vzc2lvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9wb3B1cDogUG9wdXAsXHJcbiAgICBwcml2YXRlIF9yb3V0ZXI6IFBhbmVzUm91dGVyLFxyXG4gICAgcHJpdmF0ZSBfZGlyZWN0aW9uYWxpdHk6IERpcmVjdGlvbmFsaXR5LFxyXG4gICAgcHJpdmF0ZSBfdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfZGlhbG9nOiBNYXREaWFsb2cpIHtcclxuICB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9wYW5lLnBhcmFtc0NoYW5nZS5zdWJzY3JpYmUocCA9PiB7XHJcbiAgICAgIHRoaXMuZm9sZGVySWQgPSBwWydpZCddO1xyXG4gICAgICBpZiAodGhpcy5mb2xkZXJJZCkgdGhpcy5fcGFuZS50aXRsZSA9IHRoaXMuZm9sZGVyLnRpdGxlO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLl9wYW5lLnF1ZXJ5UGFyYW1zQ2hhbmdlLnN1YnNjcmliZShwID0+IHtcclxuICAgICAgdGhpcy5maWx0ZXJUeXBlID0gcFsndHlwZSddO1xyXG4gICAgICBpZiAodGhpcy5maWx0ZXJUeXBlID09PSAnZmxhZ2dlZCcpXHJcbiAgICAgICAgdGhpcy5fcGFuZS50aXRsZSA9IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ0ZsYWdnZWQnKTtcclxuICAgICAgZWxzZSBcclxuICAgICAgICBpZiAocFsndGFnJ10pXHJcbiAgICAgICAgdGhpcy5fcGFuZS50aXRsZSA9IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ1RhZ3MnKTtcclxuICAgICAgdGhpcy5maWx0ZXJzID0gcDtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5fcm91dGVyLmV2ZW50cy5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSxcclxuICAgICAgZmlsdGVyKGUgPT4gKGUgaW5zdGFuY2VvZiBQYXJhbU5hdmlnYXRpb24gfHwgZSBpbnN0YW5jZW9mIE5hdmlnYXRpb25TdGFydCB8fCBlIGluc3RhbmNlb2YgTmF2aWdhdGlvbkZvY3VzKVxyXG4gICAgICAmJiBlLnBhbmUuY29tcG9uZW50ID09PSBDb21wb3NlUGFuZUNvbXBvbmVudCkpLlxyXG4gICAgICBzdWJzY3JpYmUoKGU6IE5hdmlnYXRpb25QYW5lQmFzZTxDb21wb3NlUGFuZUNvbXBvbmVudD4pID0+XHJcbiAgICAgICAgdGhpcy5pdGVtcy5zZWxlY3QoZS5wYW5lLmRhdGEuaXRlbS5pZClcclxuICAgICk7XHJcbiAgICB0aGlzLmNvbnRhaW5zLnZhbHVlQ2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSwgZGVib3VuY2VUaW1lKDIwMCkpLnN1YnNjcmliZSh2ID0+IHRoaXMuZmlsdGVycyA9IHsgLi4udGhpcy5maWx0ZXJzLCBjb250YWluczogdiB9KTtcclxuICB9XHJcbiAgZ2V0IGZvbGRlcigpOiBGb2xkZXIgeyByZXR1cm4gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmZvbGRlcnMuZmluZChmID0+IGYubmFtZSA9PT0gdGhpcy5mb2xkZXJJZCk7IH1cclxuXHJcbiAgb3BlbkZpbHRlcihldnQ6IEV2ZW50KSB7XHJcbiAgICAvL3RoaXMuZmlsdGVyRWxlbWVudC5uYXRpdmVFbGVtZW50LnNjcm9sbEludG9WaWV3KHsgYmVoYXZpb3I6ICdzbW9vdGgnIH0pO1xyXG4gICAgdGhpcy5fcG9wdXAub3BlbihCcm93c2VGaWx0ZXJDb21wb25lbnQsIGV2dC5zcmNFbGVtZW50IGFzIEhUTUxFbGVtZW50LCB7IHBvc2l0aW9uOiAnZW5kJyB9KS5cclxuICAgICAgb3BlbmVkLnN1YnNjcmliZShlID0+IHtcclxuICAgICAgICBlLmZvbGRlcklkID0gdGhpcy5mb2xkZXJJZDtcclxuICAgICAgICBlLnZhbHVlcyA9IHRoaXMuZmlsdGVycztcclxuICAgICAgICBlLmV4Y2x1ZGUgPSBbJ2NvbnRhaW5zJ107XHJcbiAgICAgICAgZS52YWx1ZXNDaGFuZ2UucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSkpLnN1YnNjcmliZSh2ID0+IHRoaXMuZmlsdGVycyA9IHYpO1xyXG4gICAgICB9KTtcclxuICB9XHJcbiAgLyoqXHJcbiAqIEN0cmwtZlxyXG4gKiBAcGFyYW0gZXZlbnRcclxuICovXHJcbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5ZG93bicsIFsnJGV2ZW50J10pXHJcbiAgaGFuZGxlS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCkge1xyXG4gICAgaWYgKGV2ZW50LmN0cmxLZXkgJiYgKGV2ZW50LndoaWNoID09PSA3MCB8fCBldmVudC53aGljaCA9PT0gMTAyKSkge1xyXG4gICAgICB0aGlzLnNlYXJjaC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XHJcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIG9wZW5TZWFyY2goKSB7XHJcbiAgICB0aGlzLnNlYXJjaGluZyA9ICF0aGlzLnNlYXJjaGluZztcclxuICAgIHRoaXMuc2VhcmNoaW5nICYmXHJcbiAgICAgIHRoaXMuc2VhcmNoLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcclxuICB9XHJcbiAgY2xlYXJTZWFyY2goZXZ0PzogRXZlbnQpIHtcclxuICAgIHRoaXMuY29udGFpbnMuc2V0VmFsdWUobnVsbCk7XHJcbiAgICBpZiAoZXZ0KSB7XHJcbiAgICAgIGV2dC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgdGhpcy5zZWFyY2hpbmcgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcbiAgb3BlbihpdGVtOiBSZWNpcGllbnRNb2RlbDxhbnk+KSB7XHJcbiAgICB0aGlzLl9yb3V0ZXIubmF2aWdhdGUoWydtYWlsYm94L2knLCBpdGVtLmlkLmVuY29kZUlkKCldLFxyXG4gICAgICB7XHJcbiAgICAgICAgc3RhdGU6IHtcclxuICAgICAgICAgIGl0ZW06IHsgLi4uaXRlbSB9XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIHZpZXcoaXRlbTogUmVjaXBpZW50TW9kZWw8YW55Pikge1xyXG4gICAgdGhpcy5fcm91dGVyLm5hdmlnYXRlKFsnbWFpbGJveC9pJywgaXRlbS5pZC5lbmNvZGVJZCgpLCAndmlld3MnXSxcclxuICAgICAge1xyXG4gICAgICAgIHN0YXRlOiB7XHJcbiAgICAgICAgICBpdGVtOiB7IC4uLml0ZW0gfVxyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICB9XHJcbiAgc2VuZEFsbChhY3Rpb246IHN0cmluZykge1xyXG4gICAgY29uc3QgeyBzZWxlY3RlZCB9ID0gdGhpcy5pdGVtcy5zZWxlY3Rpb247XHJcbiAgICBjb25zdCBkYXRhOiBBY3Rpb25EaWFsb2dEYXRhID0ge1xyXG4gICAgICBhY3Rpb24sXHJcbiAgICAgIGl0ZW1zOiBzZWxlY3RlZCBhcyBSZWNpcGllbnRNb2RlbFtdXHJcbiAgICB9O1xyXG4gICAgdGhpcy5fZGlhbG9nLm9wZW4oQWN0aW9uRGlhbG9nLCB7XHJcbiAgICAgIGRhdGEsXHJcbiAgICAgIGRpcmVjdGlvbjogdGhpcy5fZGlyZWN0aW9uYWxpdHkudmFsdWUsXHJcbiAgICAgIHJlc3RvcmVGb2N1czogZmFsc2VcclxuICAgIH0pLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKGFyZ3MgPT5cclxuICAgICAgYXJncyAmJlxyXG4gICAgICB0aGlzLml0ZW1zLnNlbmRBbGwoYWN0aW9uLCBhcmdzKSk7XHJcbiAgfVxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fZGVzdHJveS5uZXh0KCk7XHJcbiAgICB0aGlzLl9kZXN0cm95LmNvbXBsZXRlKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxtYXQtdG9vbGJhciBjbGFzcz1cIm5hdi10b29sYmFyXCIgPlxyXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXRlbXMuc2VsZWN0aW9uLmlzRW1wdHkoKTsgZWxzZSBzZWFyY2hcIj5cclxuICAgIDwhLS08YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiaXRlbXMucmVmcmVzaCgpXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ1JlZnJlc2gnIHwgdHJhbnNsYXRlXCIgW2F0dHIuYXJpYS1sYWJlbF09XCInUmVmcmVzaCcgfCB0cmFuc2xhdGVcIj48bWF0LWljb24gbWF0QW5pbWF0ZT1cInJvdGF0ZVwiPmF1dG9yZW5ldzwvbWF0LWljb24+PC9idXR0b24+LS0+XHJcbiAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAqbmdJZj1cIml0ZW1zLmlzQWxsRHJhZnQoKVwiIChjbGljayk9XCJpdGVtcy5kaXNjYXJkQWxsKClcIiBbYml6ZG9jVG9vbHRpcF09XCInRGlzY2FyZFNlbGVjdGVkJyB8IHRyYW5zbGF0ZSA6IGl0ZW1zLnNlbGVjdGlvbi5zZWxlY3RlZC5sZW5ndGhcIiBbYXR0ci5hcmlhLWxhYmVsXT1cIidEaXNjYXJkU2VsZWN0ZWQnIHwgdHJhbnNsYXRlIDogaXRlbXMuc2VsZWN0aW9uLnNlbGVjdGVkLmxlbmd0aFwiPjxtYXQtaWNvbj5kZWxldGVfc3dlZXA8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvbiBtYXQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIGZ4U2hvdyBbZnhTaG93LnhzXT1cImZhbHNlXCIgKm5nSWY9XCJpdGVtcy5pc0FsbERyYWZ0KClcIiAoY2xpY2spPVwiaXRlbXMuc3VibWl0QWxsKClcIj57eydTdWJtaXRTZWxlY3RlZCcgfCB0cmFuc2xhdGUgOiBpdGVtcy5zZWxlY3Rpb24uc2VsZWN0ZWQubGVuZ3RoIH19PC9idXR0b24+XHJcbiAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiBmeEhpZGUgW2Z4SGlkZS54c109XCJmYWxzZVwiICpuZ0lmPVwiaXRlbXMuaXNBbGxEcmFmdCgpXCIgKGNsaWNrKT1cIml0ZW1zLnN1Ym1pdEFsbCgpXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ1N1Ym1pdCcgfCB0cmFuc2xhdGVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cIidTdWJtaXQnIHwgdHJhbnNsYXRlXCI+PG1hdC1pY29uPnNlbmQ8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvbiBtYXQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiICpuZ0lmPVwiaXRlbXMuc2hhcmVkQWN0aW9ucy5sZW5ndGggPT09IDFcIiAoY2xpY2spPVwic2VuZEFsbChpdGVtcy5zaGFyZWRBY3Rpb25zWzBdLm5hbWUpXCIgW2JpemRvY1Rvb2x0aXBdPVwiaXRlbXMuc2hhcmVkQWN0aW9uc1swXS50aXRsZVwiPjxtYXQtaWNvbiAqbmdJZj1cIml0ZW1zLnNoYXJlZEFjdGlvbnNbMF0uaWNvblwiPnt7aXRlbXMuc2hhcmVkQWN0aW9uc1swXS5pY29ufX08L21hdC1pY29uPnt7J1NlbmRTZWxlY3RlZCcgfCB0cmFuc2xhdGUgOiBpdGVtcy5zZWxlY3Rpb24uc2VsZWN0ZWQubGVuZ3RofX08L2J1dHRvbj5cclxuICAgIDxidXR0b24gbWF0LWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAqbmdJZj1cIml0ZW1zLnNoYXJlZEFjdGlvbnMubGVuZ3RoID4gMVwiIFttYXRNZW51VHJpZ2dlckZvcl09XCJhY3Rpb25cIiBbYml6ZG9jVG9vbHRpcF09XCInU2VuZCcgfCB0cmFuc2xhdGVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cIidTZW5kJyB8IHRyYW5zbGF0ZVwiPlxyXG4gICAgICB7eydTZW5kU2VsZWN0ZWQnfCB0cmFuc2xhdGUgOiBpdGVtcy5zZWxlY3Rpb24uc2VsZWN0ZWQubGVuZ3RoIH19XHJcbiAgICA8L2J1dHRvbj5cclxuICAgIDxtYXQtbWVudSAjYWN0aW9uPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBhIG9mIGl0ZW1zLnNoYXJlZEFjdGlvbnMgfCBzb3J0IDogJ2dyb3VwJzsgbGV0IGkgPSBpbmRleFwiPlxyXG4gICAgICAgIDxtYXQtZGl2aWRlciAqbmdJZj1cImk+MCAmJiBpdGVtcy5zaGFyZWRBY3Rpb25zW2ktMV0uZ3JvdXAgIT09IGEuZ3JvdXBcIj5cclxuICAgICAgICA8L21hdC1kaXZpZGVyPlxyXG4gICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwic2VuZEFsbChhLm5hbWUpXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJhLnRpdGxlXCI+XHJcbiAgICAgICAgICB7eyBhLnRpdGxlIH19XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9tYXQtbWVudT5cclxuICAgIDwhLS08YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiaXRlbXMucGFnaW5hdG9yLnByZXZpb3VzUGFnZSgpXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ1ByZXZQYWdlJyB8IHRyYW5zbGF0ZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwiJ1ByZXZQYWdlJyB8IHRyYW5zbGF0ZVwiIFtkaXNhYmxlZF09XCIhaXRlbXMucGFnaW5hdG9yLmhhc1ByZXZpb3VzUGFnZSgpXCI+PG1hdC1pY29uIGNsYXNzPVwibWF0LWljb24tcnRsLW1pcnJvclwiPmtleWJvYXJkX2Fycm93X2xlZnQ8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJpdGVtcy5wYWdpbmF0b3IubmV4dFBhZ2UoKVwiIFtiaXpkb2NUb29sdGlwXT1cIidOZXh0UGFnZScgfCB0cmFuc2xhdGVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cIidOZXh0UGFnZScgfCB0cmFuc2xhdGVcIiBbZGlzYWJsZWRdPVwiIWl0ZW1zLnBhZ2luYXRvci5oYXNOZXh0UGFnZSgpXCI+PG1hdC1pY29uIGNsYXNzPVwibWF0LWljb24tcnRsLW1pcnJvclwiPmtleWJvYXJkX2Fycm93X3JpZ2h0PC9tYXQtaWNvbj48L2J1dHRvbj4tLT5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuPC9tYXQtdG9vbGJhcj5cclxuPGJpemRvYy1icm93c2UtaXRlbXMgW2ZpbHRlcnNdPVwiZmlsdGVyc1wiIFtmb2xkZXJJZF09XCJmb2xkZXJJZFwiIFtmaWx0ZXJUeXBlXT1cImZpbHRlclR5cGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAob3Blbik9XCJvcGVuKCRldmVudClcIiAodmlldyk9XCJ2aWV3KCRldmVudCkgXCIgI2l0ZW1zPjwvYml6ZG9jLWJyb3dzZS1pdGVtcz5cclxuPG5nLXRlbXBsYXRlICNzZWFyY2g+XHJcbiAgPCEtLTxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJvcGVuU2VhcmNoKClcIlxyXG4gICAgICAgICAgW2JpemRvY1Rvb2x0aXBdPVwiJ1NlYXJjaCd8dHJhbnNsYXRlXCIgY2xhc3M9XCJ0b29sXCI+XHJcbiAgICA8bWF0LWljb24+c2VhcmNoPC9tYXQtaWNvbj5cclxuICA8L2J1dHRvbj5cclxuICBbQHNlYXJjaF09XCJzZWFyY2hpbmdcIlxyXG4gIChAc2VhcmNoLmRvbmUpPVwic2VhcmNoaW5nICYmIGZvY3VzKClcIi0tPlxyXG4gIDxpbnB1dCBtYXRJbnB1dFxyXG4gICAgICAgICBbZm9ybUNvbnRyb2xdPVwiY29udGFpbnNcIiBhdXRvY29tcGxldGU9XCJvZmZcIiBwbGFjZWhvbGRlcj1cInt7J1NlYXJjaCcgfCB0cmFuc2xhdGV9fVwiXHJcbiAgICAgICAgIGNsYXNzPVwic2VhcmNoLWJveFwiXHJcbiAgICAgICAgICNzZWFyY2hJbnB1dFxyXG4gICAgICAgICAoa2V5ZG93bi5lc2NhcGUpPVwiY2xlYXJTZWFyY2goJGV2ZW50KVwiPlxyXG4gIDxtYXQtaWNvbiAqbmdJZj1cImNvbnRhaW5zLnZhbHVlXCIgKGNsaWNrKT1cImNsZWFyU2VhcmNoKClcIj5jbG9zZTwvbWF0LWljb24+XHJcbiAgPHNwYW4gY2xhc3M9XCJkaXZpZGVyXCI+PC9zcGFuPlxyXG4gIDwhLS08YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiaXRlbXMucGFnaW5hdG9yLnByZXZpb3VzUGFnZSgpXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ1ByZXZQYWdlJyB8IHRyYW5zbGF0ZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwiJ1ByZXZQYWdlJyB8IHRyYW5zbGF0ZVwiIFtkaXNhYmxlZF09XCIhaXRlbXMucGFnaW5hdG9yLmhhc1ByZXZpb3VzUGFnZSgpXCI+PG1hdC1pY29uIGNsYXNzPVwibWF0LWljb24tcnRsLW1pcnJvclwiPmtleWJvYXJkX2Fycm93X2xlZnQ8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJpdGVtcy5wYWdpbmF0b3IubmV4dFBhZ2UoKVwiIFtiaXpkb2NUb29sdGlwXT1cIidOZXh0UGFnZScgfCB0cmFuc2xhdGVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cIidOZXh0UGFnZScgfCB0cmFuc2xhdGVcIiBbZGlzYWJsZWRdPVwiIWl0ZW1zLnBhZ2luYXRvci5oYXNOZXh0UGFnZSgpXCI+PG1hdC1pY29uIGNsYXNzPVwibWF0LWljb24tcnRsLW1pcnJvclwiPmtleWJvYXJkX2Fycm93X3JpZ2h0PC9tYXQtaWNvbj48L2J1dHRvbj4tLT5cclxuICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwib3BlbkZpbHRlcigkZXZlbnQpXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ0ZpbHRlcicgfCB0cmFuc2xhdGVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cIidGaWx0ZXInIHwgdHJhbnNsYXRlXCI+PG1hdC1pY29uPmZpbHRlcl9saXN0PC9tYXQtaWNvbj48L2J1dHRvbj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
@@ -68,7 +68,8 @@ export class ComposePaneComponent {
68
68
  else
69
69
  container.classList.remove('drag');
70
70
  });
71
- this._pane.fullscreenChange.subscribe(f => this.expendable = !f);
71
+ this.expendable = !this._pane.expanded;
72
+ this._pane.expandeding.subscribe(e => this.expendable = !e);
72
73
  }
73
74
  close() {
74
75
  this._pane.close();
@@ -201,4 +202,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImpor
201
202
  type: HostListener,
202
203
  args: ['document:keydown', ['$event']]
203
204
  }] } });
204
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9zZS5wYW5lLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvY29tcG9zZS9jb21wb3NlLnBhbmUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jb21wb3NlL2NvbXBvc2UucGFuZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBYSxTQUFTLEVBQUUsVUFBVSxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUszQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUl4RCxPQUFPLEVBQWdCLGFBQWEsRUFBRSxVQUFVLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7OztBQVVoRix1REFBdUQ7QUFDdkQsTUFBTSxPQUFPLG9CQUFvQjtJQWEvQixtQkFBbUI7SUFDbkIsWUFDVSxRQUF3QixFQUN4QixRQUF3QixFQUN4QixLQUFvQyxFQUNwQyxPQUFvQixFQUNMLE1BQW9CO1FBSm5DLGFBQVEsR0FBUixRQUFRLENBQWdCO1FBQ3hCLGFBQVEsR0FBUixRQUFRLENBQWdCO1FBQ3hCLFVBQUssR0FBTCxLQUFLLENBQStCO1FBQ3BDLFlBQU8sR0FBUCxPQUFPLENBQWE7UUFQYixjQUFTLEdBQUcsSUFBSSxPQUFPLEVBQVcsQ0FBQztRQUNuQyxhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQVE5QyxJQUFJLENBQUMsY0FBYyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDbEMsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxJQUFJO2dCQUFFLE9BQU87WUFDakMsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQ3BCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDakYsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztZQUM1QixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFO2dCQUNwQixJQUFJLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQztnQkFDdEIsc0NBQXNDO2FBQ3ZDOztnQkFFQyxJQUFJLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQztZQUN4QixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUM7WUFDbEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2hFLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDekMsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztZQUNuQixJQUFJLElBQUksS0FBSyxTQUFTLEVBQUU7Z0JBQ3RCLGtDQUFrQztnQkFDbEMsb0RBQW9EO2FBQ3JEO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNqRSxJQUFJLENBQUMsQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUMzQyxJQUFJLENBQUMsQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDLFFBQVEsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVE7b0JBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO2FBQ3JFO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUNqRSxDQUFDLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTztZQUNwQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQ2QsQ0FBQztRQUNGLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDO1FBQ3JELElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQzVCLElBQUksRUFBRTtnQkFBRSxTQUFTLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQzs7Z0JBQ25DLFNBQVMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzFDLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FDeEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFDRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBQ0QsSUFBSTtRQUNGLElBQUksQ0FBQyxJQUFJLEdBQUcsU0FBUyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFDRCxNQUFNO1FBQ0osSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBQ0QsTUFBTTtRQUNKLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUNELElBQUk7UUFDRixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFDRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBQ0QsV0FBVztRQUNULElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ3ZDLE9BQU8sQ0FBQyxRQUFrQyxDQUFDLFFBQVEsQ0FBQyxNQUFNO2dCQUN6RCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FDNUMsSUFBSSxDQUFDLGdCQUFnQixHQUFJLE9BQU8sQ0FBQyxRQUFrQztnQkFDakUsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ2pDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELFFBQVE7UUFDTixJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQ3pCLENBQUM7SUFDTyxTQUFTLENBQUMsT0FBZTtRQUMvQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDdEMsUUFBUSxFQUFFLFVBQVU7WUFDcEIsVUFBVSxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ3RCLE1BQU0sRUFBRSxVQUFVLENBQUMsTUFBTTtTQUMxQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsa0JBQWtCLENBQUMsS0FBb0I7UUFDckMsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQWdCO1FBQ3pCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzQixNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQztRQUNyQyxNQUFNLEdBQUcsR0FBVyxFQUFFLENBQUM7UUFDdkIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDckMsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2xDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDaEI7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQWdCO1FBQzFCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQWdCO1FBQzFCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQWdCO1FBQ3pCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBQ0Q7OztPQUdHO0lBRUgsYUFBYSxDQUFDLEtBQW9CO1FBQ2hDLElBQUksS0FBSyxDQUFDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEtBQUssRUFBRSxJQUFJLEtBQUssQ0FBQyxLQUFLLEtBQUssR0FBRyxDQUFDLEVBQUU7WUFDaEUsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU87Z0JBQzdCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNkLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztTQUN4QjtJQUNILENBQUM7SUFDRCxPQUFPO1FBQ0wsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTtJQUN2RCxDQUFDO0lBQ0QsSUFBSSxDQUFDLE1BQWM7UUFDakIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUNELE1BQU07UUFDSixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQ3RELENBQUM7SUFDTyxNQUFNO1FBQ1osSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUNELFdBQVc7UUFDVCxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRTFCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBQ0QsSUFBSTtRQUNGLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDekIsQ0FBQzs7aUhBcEtVLG9CQUFvQixnSUFtQnJCLGFBQWE7cUdBbkJaLG9CQUFvQixzWEFDcEIsb0JBQW9CLHVJQUNjLFVBQVUsMkNDeEJ6RCw0NEpBb0VBOzJGRDlDYSxvQkFBb0I7a0JBVGhDLFNBQVM7K0JBQ0UscUJBQXFCLFFBR3pCO3dCQUNKLEtBQUssRUFBRSxNQUFNO3FCQUNkOzswQkFzQkUsTUFBTTsyQkFBQyxhQUFhOzRDQWxCNEIsSUFBSTtzQkFBdEQsU0FBUzt1QkFBQyxvQkFBb0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ1UsZUFBZTtzQkFBekUsU0FBUzt1QkFBQyxVQUFVLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7Z0JBa0d6RCxrQkFBa0I7c0JBRGpCLFlBQVk7dUJBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQU16QyxVQUFVO3NCQURULFlBQVk7dUJBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQWFoQyxXQUFXO3NCQURWLFlBQVk7dUJBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQU1yQyxXQUFXO3NCQURWLFlBQVk7dUJBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQU1yQyxVQUFVO3NCQURULFlBQVk7dUJBQUMsVUFBVSxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQVVwQyxhQUFhO3NCQURaLFlBQVk7dUJBQUMsa0JBQWtCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEhvc3RMaXN0ZW5lciwgT25EZXN0cm95LCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYsIE9uSW5pdCwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBSZWNpcGllbnRNb2RlbCB9IGZyb20gJy4uL2NvcmUvbW9kZWxzJztcclxuaW1wb3J0IHsgUGFuZXNSb3V0ZXIgfSBmcm9tICcuLi9jb3JlL3Nsb3RzL3JvdXRlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUGFuZVJlZiB9IGZyb20gJy4uL2NvcmUvc2xvdHMvcGFuZS1yZWYnO1xyXG5pbXBvcnQgeyBDb21tZW50c1BhbmVDb21wb25lbnQgfSBmcm9tICcuL2NvbW1lbnRzL0NvbW1lbnRzLnBhbmUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29tcG9zZUZvcm1Db21wb25lbnQgfSBmcm9tICcuL2Zvcm0uY29tcG9uZW50JztcclxuaW1wb3J0IHsgVmlld01vZGUgfSBmcm9tICcuLi9jb3JlL2Jhc2UnO1xyXG5pbXBvcnQgeyBNYWlsYm94U2VydmljZSB9IGZyb20gJy4uL2NvcmUvbWFpbGJveC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU2Vzc2lvblNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL3Nlc3Npb24uc2VydmljZSc7XHJcbmltcG9ydCB7IEJpekRvY0NvbmZpZywgQklaRE9DX0NPTkZJRywgT3BlblBvbGljeSB9IGZyb20gJy4uL2NvcmUvY29uZmlndXJhdGlvbic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2JpemRvYy1jb21wb3NlLnBhbmUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb21wb3NlLnBhbmUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NvbXBvc2UucGFuZS5jb21wb25lbnQuc2NzcyddLFxyXG4gIGhvc3Q6IHtcclxuICAgIGNsYXNzOiAncGFuZSdcclxuICB9XHJcbn0pXHJcbi8qKiBjb21wb3NlIGNvbXBvbmVudCByZXNwb25zaWJsZSBmb3IgZWRpdGluZyBhIGZvcm0gKi9cclxuZXhwb3J0IGNsYXNzIENvbXBvc2VQYW5lQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIEBWaWV3Q2hpbGQoQ29tcG9zZUZvcm1Db21wb25lbnQsIHsgc3RhdGljOiB0cnVlIH0pIGZvcm06IENvbXBvc2VGb3JtQ29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoJ2Ryb3BhYmxlJywgeyBzdGF0aWM6IHRydWUsIHJlYWQ6IEVsZW1lbnRSZWYgfSkgZHJvcGFibGVFbGVtZW50OiBFbGVtZW50UmVmO1xyXG4gIG1vZGVsOiBSZWNpcGllbnRNb2RlbDxhbnk+O1xyXG4gIG5ld0NvbW1lbnRzQ291bnQ6IG51bWJlcjtcclxuICB3b3JraW5nOiBib29sZWFuO1xyXG4gIGRpcnR5OiBib29sZWFuO1xyXG4gIHZhbGlkOiBib29sZWFuO1xyXG4gIG1vZGU6IFZpZXdNb2RlO1xyXG4gIGV4cGVuZGFibGU6IGJvb2xlYW47XHJcbiAgcmVhZG9ubHkgZW5hYmxlQW5hbHlzaXM6IGJvb2xlYW47XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfZHJhZ0Ryb3AgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3kgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIC8qKiBjb21wb3NlIGN0b3IgKi9cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX3Nlc3Npb246IFNlc3Npb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfbWFpbGJveDogTWFpbGJveFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9wYW5lOiBQYW5lUmVmPENvbXBvc2VQYW5lQ29tcG9uZW50PixcclxuICAgIHByaXZhdGUgX3JvdXRlcjogUGFuZXNSb3V0ZXIsXHJcbiAgICBASW5qZWN0KEJJWkRPQ19DT05GSUcpIGNvbmZpZzogQml6RG9jQ29uZmlnKSB7XHJcbiAgICB0aGlzLmVuYWJsZUFuYWx5c2lzID0gX3Nlc3Npb24ucHJvZmlsZS52aWV3cy5sZW5ndGggPiAwO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9wYW5lLmRhdGFDaGFuZ2Uuc3Vic2NyaWJlKGQgPT4ge1xyXG4gICAgICBpZiAodGhpcy5tb2RlbCA9PSBkLml0ZW0pIHJldHVybjtcclxuICAgICAgdGhpcy5tb2RlbCA9IGQuaXRlbTtcclxuICAgICAgY29uc3QgZm9ybSA9IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5mb3Jtcy5maW5kKGYgPT4gZi5uYW1lID09PSB0aGlzLm1vZGVsLmZvcm1JZCk7XHJcbiAgICAgIHRoaXMuX3BhbmUuaWNvbiA9IGZvcm0uaWNvbjtcclxuICAgICAgaWYgKHRoaXMubW9kZWwuZHJhZnQpIHtcclxuICAgICAgICB0aGlzLm1vZGUgPSAnY29tcG9zZSc7XHJcbiAgICAgICAgLy9zZXRUaW1lb3V0KCgpPT50aGlzLl9wYW5lLmV4cGFuZCgpKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlXHJcbiAgICAgICAgdGhpcy5tb2RlID0gJ3ByZXZpZXcnO1xyXG4gICAgICB0aGlzLm5ld0NvbW1lbnRzQ291bnQgPSB0aGlzLm1vZGVsLnVucmVhZENvbW1lbnRzO1xyXG4gICAgICB0aGlzLl9wYW5lLnRpdGxlID0gdGhpcy5fcGFuZS5ncm91cCA9IGAjJHt0aGlzLm1vZGVsLm51bWJlcn1gO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLl9wYW5lLnF1ZXJ5UGFyYW1zQ2hhbmdlLnN1YnNjcmliZShwID0+IHtcclxuICAgICAgY29uc3QgeyBwYWdlIH0gPSBwO1xyXG4gICAgICBpZiAocGFnZSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgLy8gICBjb25zdCBwYWdlbiA9IHBhcnNlSW50KHBhZ2UpO1xyXG4gICAgICAgIC8vICB0aGlzLmZvcm0ubmF2aWdhdGUoaXNOYU4ocGFnZW4pID8gcGFnZSA6IHBhZ2VuKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICB0aGlzLl9tYWlsYm94LmNoYW5nZWQucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSkpLnN1YnNjcmliZShlID0+IHtcclxuICAgICAgaWYgKGUuaWQgPT09IHRoaXMubW9kZWwuaWQgJiYgIXRoaXMud29ya2luZykge1xyXG4gICAgICAgIGlmIChlLmZvbGRlcklkICYmIGUuZm9sZGVySWQgIT09IHRoaXMubW9kZWwuZm9sZGVySWQpIHRoaXMuX2Nsb3NlKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5fbWFpbGJveC5kZWxldGVkLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpKS5zdWJzY3JpYmUoZSA9PlxyXG4gICAgICBlID09PSB0aGlzLm1vZGVsLmlkICYmICF0aGlzLndvcmtpbmcgJiZcclxuICAgICAgdGhpcy5fY2xvc2UoKVxyXG4gICAgKTtcclxuICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMuZHJvcGFibGVFbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICB0aGlzLl9kcmFnRHJvcC5zdWJzY3JpYmUob2sgPT4ge1xyXG4gICAgICBpZiAob2spIGNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCdkcmFnJyk7XHJcbiAgICAgIGVsc2UgY29udGFpbmVyLmNsYXNzTGlzdC5yZW1vdmUoJ2RyYWcnKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5fcGFuZS5mdWxsc2NyZWVuQ2hhbmdlLnN1YnNjcmliZShmID0+XHJcbiAgICAgIHRoaXMuZXhwZW5kYWJsZSA9ICFmKTtcclxuICB9XHJcbiAgY2xvc2UoKSB7XHJcbiAgICB0aGlzLl9wYW5lLmNsb3NlKCk7XHJcbiAgfVxyXG4gIGVkaXQoKSB7XHJcbiAgICB0aGlzLm1vZGUgPSAnY29tcG9zZSc7XHJcbiAgICB0aGlzLmV4cGVuZGFibGUgJiYgdGhpcy5leHBhbmQoKTtcclxuICB9XHJcbiAgZXhwYW5kKCkge1xyXG4gICAgdGhpcy5fcGFuZS5leHBhbmQoKTtcclxuICB9XHJcbiAgY2hhbmdlKCkge1xyXG4gICAgdGhpcy5fcGFuZS5mb2N1cygpO1xyXG4gIH1cclxuICBzYXZlKCkge1xyXG4gICAgdGhpcy5mb3JtLnNhdmUoKS5zdWJzY3JpYmUoKTtcclxuICB9XHJcbiAgc2F2ZWQoKSB7XHJcbiAgICB0aGlzLl9wYW5lLnJlZnJlc2goKTtcclxuICB9XHJcbiAgbmF2Q29tbWVudHMoKSB7XHJcbiAgICB0aGlzLl9uYXZpZ2F0ZSgnY29tbWVudHMnKS50aGVuKHBhbmVSZWYgPT4ge1xyXG4gICAgICAocGFuZVJlZi5pbnN0YW5jZSBhcyBDb21tZW50c1BhbmVDb21wb25lbnQpLmNvbW1lbnRzLmNoYW5nZS5cclxuICAgICAgICBwaXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSkuc3Vic2NyaWJlKCgpID0+XHJcbiAgICAgICAgICB0aGlzLm5ld0NvbW1lbnRzQ291bnQgPSAocGFuZVJlZi5pbnN0YW5jZSBhcyBDb21tZW50c1BhbmVDb21wb25lbnQpLlxyXG4gICAgICAgICAgICBjb21tZW50cy51bnJlYWRDb21tZW50cyk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgbmF2VHJhY2UoKSB7XHJcbiAgICB0aGlzLl9uYXZpZ2F0ZSgndHJhY2UnKVxyXG4gIH1cclxuICBwcml2YXRlIF9uYXZpZ2F0ZShjb21tYW5kOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLl9yb3V0ZXIubmF2aWdhdGUoW2NvbW1hbmRdLCB7XHJcbiAgICAgIHBhdGhNb2RlOiAncmVsYXRpdmUnLFxyXG4gICAgICByZWxhdGl2ZVRvOiB0aGlzLl9wYW5lLFxyXG4gICAgICBwb2xpY3k6IE9wZW5Qb2xpY3kuVG9nZ2xlXHJcbiAgICB9KTtcclxuICB9XHJcbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6ZHJvcCcsIFsnJGV2ZW50J10pXHJcbiAgaGFuZGxlRG9jdW1lbnREcm9wKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgfVxyXG4gIEBIb3N0TGlzdGVuZXIoJ2Ryb3AnLCBbJyRldmVudCddKVxyXG4gIGhhbmRsZURyb3AoZXZlbnQ6IERyYWdFdmVudCkge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIHRoaXMuX2RyYWdEcm9wLm5leHQoZmFsc2UpO1xyXG4gICAgY29uc3QgeyBpdGVtcyB9ID0gZXZlbnQuZGF0YVRyYW5zZmVyO1xyXG4gICAgY29uc3QgYXJyOiBGaWxlW10gPSBbXTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaXRlbXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgY29uc3QgZmlsZSA9IGl0ZW1zW2ldLmdldEFzRmlsZSgpO1xyXG4gICAgICBhcnIucHVzaChmaWxlKTtcclxuICAgIH1cclxuICAgIHRoaXMuZm9ybS51cGxvYWQoYXJyKS5zdWJzY3JpYmUoKTtcclxuICB9XHJcbiAgQEhvc3RMaXN0ZW5lcignZHJhZ2VudGVyJywgWyckZXZlbnQnXSlcclxuICBoYW5kbGVFbnRlcihldmVudDogRHJhZ0V2ZW50KSB7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgdGhpcy5fZHJhZ0Ryb3AubmV4dCh0cnVlKTtcclxuICB9XHJcbiAgQEhvc3RMaXN0ZW5lcignZHJhZ2xlYXZlJywgWyckZXZlbnQnXSlcclxuICBoYW5kbGVMZWF2ZShldmVudDogRHJhZ0V2ZW50KSB7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgdGhpcy5fZHJhZ0Ryb3AubmV4dChmYWxzZSk7XHJcbiAgfVxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RyYWdvdmVyJywgWyckZXZlbnQnXSlcclxuICBoYW5kbGVPdmVyKGV2ZW50OiBEcmFnRXZlbnQpIHtcclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICB0aGlzLl9kcmFnRHJvcC5uZXh0KHRydWUpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBDdHJsLXMgc2F2ZVxyXG4gICAqIEBwYXJhbSBldmVudFxyXG4gICAqL1xyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleWRvd24nLCBbJyRldmVudCddKVxyXG4gIGhhbmRsZUtleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcclxuICAgIGlmIChldmVudC5jdHJsS2V5ICYmIChldmVudC53aGljaCA9PT0gODMgfHwgZXZlbnQud2hpY2ggPT09IDExNSkpIHtcclxuICAgICAgaWYgKHRoaXMuZGlydHkgJiYgIXRoaXMud29ya2luZylcclxuICAgICAgICB0aGlzLnNhdmUoKTtcclxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIH1cclxuICB9XHJcbiAgZGlzY2FyZCgpIHtcclxuICAgIHRoaXMuZm9ybS5kaXNjYXJkKCkuc3Vic2NyaWJlKHRoaXMuX2Nsb3NlLmJpbmQodGhpcykpXHJcbiAgfVxyXG4gIHNlbmQoYWN0aW9uOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuZm9ybS5zZW5kKGFjdGlvbikuc3Vic2NyaWJlKHRoaXMuX2Nsb3NlLmJpbmQodGhpcykpO1xyXG4gIH1cclxuICBzdWJtaXQoKSB7XHJcbiAgICB0aGlzLmZvcm0uc3VibWl0KCkuc3Vic2NyaWJlKHRoaXMuX2Nsb3NlLmJpbmQodGhpcykpXHJcbiAgfVxyXG4gIHByaXZhdGUgX2Nsb3NlKCkge1xyXG4gICAgdGhpcy5mb3JtLmRpcnR5ID0gZmFsc2U7XHJcbiAgICB0aGlzLl9wYW5lLmNsb3NlKCk7XHJcbiAgfVxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fZHJhZ0Ryb3AuY29tcGxldGUoKTtcclxuXHJcbiAgICB0aGlzLl9kZXN0cm95Lm5leHQoKTtcclxuICAgIHRoaXMuX2Rlc3Ryb3kuY29tcGxldGUoKTtcclxuICB9XHJcbiAgdmlldygpIHtcclxuICAgIHRoaXMuX25hdmlnYXRlKCd2aWV3cycpXHJcbiAgfVxyXG59XHJcbiIsIjxtYXQtdG9vbGJhciBjbGFzcz1cIm5hdi10b29sYmFyXCI+XHJcbiAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cImZvcm0uYmFjaygpXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ0JhY2snfHRyYW5zbGF0ZVwiICpuZ0lmPVwiZm9ybS5wYWdlICE9PSB1bmRlZmluZWRcIiB0YWJpbmRleD1cIjFcIj5cclxuICAgIDxtYXQtaWNvbiBjbGFzcz1cIm1hdC1pY29uLXJ0bC1taXJyb3JcIj5hcnJvd19iYWNrPC9tYXQtaWNvbj5cclxuICA8L2J1dHRvbj5cclxuICA8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAqbmdJZj1cIm1vZGVsLmRyYWZ0XCIgZGF0YS1oZWxwPVwic3VibWl0XCJcclxuICAgICAgICAgIChjbGljayk9XCJzdWJtaXQoKVwiIFtkaXNhYmxlZF09XCIhdmFsaWR8fHdvcmtpbmdcIj5cclxuICAgIDxzcGFuPnt7J1N1Ym1pdCcgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cclxuICA8L2J1dHRvbj5cclxuICA8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAqbmdJZj1cImZvcm0uYWN0aW9ucy5sZW5ndGggPT09IDFcIiBbYXR0ci5kYXRhLWhlbHBdPVwiJ2FjdGlvbi0nK2Zvcm0uYWN0aW9uc1swXS5uYW1lXCIgKGNsaWNrKT1cInNlbmQobW9kZWwuYWN0aW9uc1swXSlcIiBbZGlzYWJsZWRdPVwiIXZhbGlkfHx3b3JraW5nXCI+XHJcbiAgICA8c3Bhbj57e2Zvcm0uYWN0aW9uc1swXS50aXRsZX19PC9zcGFuPlxyXG4gIDwvYnV0dG9uPlxyXG4gIDxidXR0b24gbWF0LXN0cm9rZWQtYnV0dG9uIGRhdGEtaGVscD1cInNlbmRcIiBjb2xvcj1cInByaW1hcnlcIiAqbmdJZj1cImZvcm0uYWN0aW9ucy5sZW5ndGggPiAxXCIgW21hdE1lbnVUcmlnZ2VyRm9yXT1cImFjdGlvbk1lbnVcIiBbZGlzYWJsZWRdPVwiIXZhbGlkfHx3b3JraW5nXCI+XHJcbiAgICA8c3Bhbj57eydTZW5kJyB8IHRyYW5zbGF0ZX19PC9zcGFuPlxyXG4gIDwvYnV0dG9uPlxyXG4gIDwhLS0gYWN0aW9uIC0tPlxyXG4gIDxtYXQtbWVudSAjYWN0aW9uTWVudT5cclxuICAgIDxuZy10ZW1wbGF0ZSBtYXRNZW51Q29udGVudD5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYSBvZiBmb3JtLmFjdGlvbnM7IGxldCBpID0gaW5kZXhcIj5cclxuICAgICAgICA8bWF0LWRpdmlkZXIgKm5nSWY9XCJpID4gMCAmJiBmb3JtLmFjdGlvbnNbaSAtIDFdLmdyb3VwICE9PSBhLmdyb3VwXCI+PC9tYXQtZGl2aWRlcj5cclxuICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cInNlbmQoYS5uYW1lKVwiPnt7YS50aXRsZX19PC9idXR0b24+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICA8L21hdC1tZW51PlxyXG4gIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJzYXZlKClcIiBkYXRhLWhlbHA9XCJzYXZlXCIgW2Rpc2FibGVkXT1cIiFkaXJ0eXx8d29ya2luZ1wiIFtiaXpkb2NUb29sdGlwXT1cIidTYXZlJ3x0cmFuc2xhdGVcIiAqbmdJZj1cIm1vZGUgPT09ICdjb21wb3NlJ1wiPlxyXG4gICAgPG1hdC1pY29uPnNhdmU8L21hdC1pY29uPlxyXG4gIDwvYnV0dG9uPlxyXG4gIDxidXR0b24gbWF0LWljb24tYnV0dG9uIGRhdGEtaGVscD1cInRhZ1wiIChjbGljayk9XCJmb3JtLnRhZygkZXZlbnQpXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ1RhZ3MnIHwgdHJhbnNsYXRlXCIgW2Rpc2FibGVkXT1cIndvcmtpbmdcIj48bWF0LWljb24gY2xhc3M9XCJmaWxsZWRcIj57e21vZGVsLnRhZ3MgJiYgbW9kZWwudGFncy5sZW5ndGggPydib29rbWFyayc6J2Jvb2ttYXJrX2JvcmRlcid9fTwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gZGF0YS1oZWxwPVwiZmxhZ1wiIFtiaXpkb2NUb29sdGlwXT1cIidGbGFnZ2VkJ3wgdHJhbnNsYXRlXCIgW2Rpc2FibGVkXT1cIndvcmtpbmdcIiAoY2xpY2spPVwiZm9ybS5mbGFnKClcIj48bWF0LWljb24gW2NsYXNzLmRvY3VtZW50LWZsYWddPVwibW9kZWwuZmxhZ1wiPnt7bW9kZWwuZmxhZyA/ICdzdGFyJyA6ICdzdGFyX2JvcmRlcid9fTwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cImZvcm0uYXR0YWNoKClcIiBkYXRhLWhlbHA9XCJhdHRhY2hcIiBbYml6ZG9jVG9vbHRpcF09XCInQXR0YWNoRmlsZScgfCB0cmFuc2xhdGVcIiBbZGlzYWJsZWRdPVwid29ya2luZ1wiPjxtYXQtaWNvbj5hdHRhY2hfZmlsZTwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gW2Rpc2FibGVkXT1cIndvcmtpbmdcIiBkYXRhLWhlbHA9XCJlZGl0XCIgKGNsaWNrKT1cImVkaXQoKVwiIFtiaXpkb2NUb29sdGlwXT1cIidFZGl0JyB8IHRyYW5zbGF0ZVwiICpuZ0lmPVwibW9kZSAhPT0gJ2NvbXBvc2UnICYmIG1vZGVsLnBlbmRpbmcgJiYgIW1vZGVsLmNvbXBsZXRlZFwiPjxtYXQtaWNvbj5jcmVhdGU8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gIDxzcGFuIGNsYXNzPVwiZGl2aWRlclwiPjwvc3Bhbj5cclxuICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwibmF2VHJhY2UoKVwiIFtiaXpkb2NUb29sdGlwXT1cIidUcmFjZScgfCB0cmFuc2xhdGVcIiB0YWJpbmRleD1cIjFcIj48bWF0LWljb24+dGltZWxpbmU8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJuYXZDb21tZW50cygpXCIgZGF0YS1oZWxwPVwiY29tbWVudHNcIiBbYml6ZG9jVG9vbHRpcF09XCInQ29tbWVudHMnIHwgdHJhbnNsYXRlXCIgW21hdEJhZGdlXT1cIm5ld0NvbW1lbnRzQ291bnRcIiBbbWF0QmFkZ2VIaWRkZW5dPVwiIW5ld0NvbW1lbnRzQ291bnRcIiBtYXRCYWRnZUNvbG9yPVwiYWNjZW50XCI+XHJcbiAgICA8bWF0LWljb24gW2NsYXNzLmZpbGxlZF09XCJtb2RlbC5jb21tZW50cy5sZW5ndGggPiAwXCI+Zm9ybWF0X3F1b3RlPC9tYXQtaWNvbj5cclxuICA8L2J1dHRvbj5cclxuICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwidmlldygpXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ1ZpZXcnIHwgdHJhbnNsYXRlXCIgW2F0dHIuYXJpYS1sYWJlbF09XCInVmlldycgfCB0cmFuc2xhdGVcIiAqbmdJZj1cImVuYWJsZUFuYWx5c2lzXCIgY2xhc3M9XCJ0b29sXCI+PG1hdC1pY29uPmRhdGFfdXNhZ2U8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJleHBhbmQoKVwiIFtiaXpkb2NUb29sdGlwXT1cIidFeHBhbmQnIHwgdHJhbnNsYXRlXCIgKm5nSWY9XCJleHBlbmRhYmxlXCIgW2F0dHIuYXJpYS1sYWJlbF09XCInRXhwYW5kJyB8IHRyYW5zbGF0ZVwiPjxtYXQtaWNvbj5vcGVuX2luX25ldzwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm9wdGlvbnNNZW51XCIgW2JpemRvY1Rvb2x0aXBdPVwiJ09wdGlvbnMnIHwgdHJhbnNsYXRlXCIgW2F0dHIuYXJpYS1sYWJlbF09XCInT3B0aW9ucycgfCB0cmFuc2xhdGVcIj48bWF0LWljb24+bW9yZV92ZXJ0PC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICA8bWF0LW1lbnUgI29wdGlvbnNNZW51PVwibWF0TWVudVwiPlxyXG4gICAgPG5nLXRlbXBsYXRlIG1hdE1lbnVDb250ZW50PlxyXG4gICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cImZvcm0uY29weSgpXCIgW2Rpc2FibGVkXT1cIndvcmtpbmdcIj5cclxuICAgICAgICA8IS0tPG1hdC1pY29uPmNvbnRlbnRfY29weTwvbWF0LWljb24+LS0+XHJcbiAgICAgICAgPHNwYW4+e3snQ29weScgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwiZGlzY2FyZCgpXCIgKm5nSWY9XCJtb2RlbC5kcmFmdCAmJiAhbW9kZWwuaXNzdWVkXCIgW2Rpc2FibGVkXT1cIndvcmtpbmdcIj5cclxuICAgICAgICA8IS0tPG1hdC1pY29uPmRlbGV0ZV9vdXRsaW5lZDwvbWF0LWljb24+LS0+XHJcbiAgICAgICAgPHNwYW4+e3snRGlzY2FyZCcgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmb3JtLmhlbHBcIj5cclxuICAgICAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cclxuICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cImZvcm0uZ3VpZGUoZm9ybS5oZWxwKVwiPlxyXG4gICAgICAgICAgPCEtLTxtYXQtaWNvbj5oZWxwX291dGxpbmU8L21hdC1pY29uPi0tPlxyXG4gICAgICAgICAgPHNwYW4+e3snSGVscCcgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxyXG4gICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cImNsb3NlKClcIj48IS0tPG1hdC1pY29uPjwvbWF0LWljb24+LS0+PHNwYW4+e3snQ2xvc2UnfCB0cmFuc2xhdGV9fTwvc3Bhbj48L2J1dHRvbj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgPC9tYXQtbWVudT5cclxuPC9tYXQtdG9vbGJhcj5cclxuPGRpdiBjbGFzcz1cImZpbGUtZHJvcGFibGVcIiAjZHJvcGFibGU+XHJcbiAgPGJpemRvYy1mb3JtIFttb2RlbF09bW9kZWwgI2Zvcm1cclxuICAgICAgICAgICAgICAgKG1vZGVsQ2hhbmdlKT1cImNoYW5nZSgpXCJcclxuICAgICAgICAgICAgICAgKHNhdmVkKT1cInNhdmVkKClcIlxyXG4gICAgICAgICAgICAgICAodmFsaWRDaGFuZ2UpPVwidmFsaWQ9JGV2ZW50XCJcclxuICAgICAgICAgICAgICAgKHdvcmtpbmdDaGFuZ2UpPVwid29ya2luZz0kZXZlbnRcIlxyXG4gICAgICAgICAgICAgICAoZGlydHlDaGFuZ2UpPVwiZGlydHk9JGV2ZW50XCIgW21vZGVdPVwibW9kZVwiPjwvYml6ZG9jLWZvcm0+XHJcbjwvZGl2PlxyXG4iXX0=
205
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9zZS5wYW5lLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvY29tcG9zZS9jb21wb3NlLnBhbmUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jb21wb3NlL2NvbXBvc2UucGFuZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBYSxTQUFTLEVBQUUsVUFBVSxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUszQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUl4RCxPQUFPLEVBQWdCLGFBQWEsRUFBRSxVQUFVLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7OztBQVVoRix1REFBdUQ7QUFDdkQsTUFBTSxPQUFPLG9CQUFvQjtJQWEvQixtQkFBbUI7SUFDbkIsWUFDVSxRQUF3QixFQUN4QixRQUF3QixFQUN4QixLQUFvQyxFQUNwQyxPQUFvQixFQUNMLE1BQW9CO1FBSm5DLGFBQVEsR0FBUixRQUFRLENBQWdCO1FBQ3hCLGFBQVEsR0FBUixRQUFRLENBQWdCO1FBQ3hCLFVBQUssR0FBTCxLQUFLLENBQStCO1FBQ3BDLFlBQU8sR0FBUCxPQUFPLENBQWE7UUFQYixjQUFTLEdBQUcsSUFBSSxPQUFPLEVBQVcsQ0FBQztRQUNuQyxhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQVE5QyxJQUFJLENBQUMsY0FBYyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDMUQs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Vmlld0NoaWxkLCBFbGVtZW50UmVmLCBPbkluaXQsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgUmVjaXBpZW50TW9kZWwgfSBmcm9tICcuLi9jb3JlL21vZGVscyc7XHJcbmltcG9ydCB7IFBhbmVzUm91dGVyIH0gZnJvbSAnLi4vY29yZS9zbG90cy9yb3V0ZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IFBhbmVSZWYgfSBmcm9tICcuLi9jb3JlL3Nsb3RzL3BhbmUtcmVmJztcclxuaW1wb3J0IHsgQ29tbWVudHNQYW5lQ29tcG9uZW50IH0gZnJvbSAnLi9jb21tZW50cy9Db21tZW50cy5wYW5lLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvbXBvc2VGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9mb3JtLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFZpZXdNb2RlIH0gZnJvbSAnLi4vY29yZS9iYXNlJztcclxuaW1wb3J0IHsgTWFpbGJveFNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL21haWxib3guc2VydmljZSc7XHJcbmltcG9ydCB7IFNlc3Npb25TZXJ2aWNlIH0gZnJvbSAnLi4vY29yZS9zZXNzaW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBCaXpEb2NDb25maWcsIEJJWkRPQ19DT05GSUcsIE9wZW5Qb2xpY3kgfSBmcm9tICcuLi9jb3JlL2NvbmZpZ3VyYXRpb24nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdiaXpkb2MtY29tcG9zZS5wYW5lJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY29tcG9zZS5wYW5lLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jb21wb3NlLnBhbmUuY29tcG9uZW50LnNjc3MnXSxcclxuICBob3N0OiB7XHJcbiAgICBjbGFzczogJ3BhbmUnXHJcbiAgfVxyXG59KVxyXG4vKiogY29tcG9zZSBjb21wb25lbnQgcmVzcG9uc2libGUgZm9yIGVkaXRpbmcgYSBmb3JtICovXHJcbmV4cG9ydCBjbGFzcyBDb21wb3NlUGFuZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBAVmlld0NoaWxkKENvbXBvc2VGb3JtQ29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KSBmb3JtOiBDb21wb3NlRm9ybUNvbXBvbmVudDtcclxuICBAVmlld0NoaWxkKCdkcm9wYWJsZScsIHsgc3RhdGljOiB0cnVlLCByZWFkOiBFbGVtZW50UmVmIH0pIGRyb3BhYmxlRWxlbWVudDogRWxlbWVudFJlZjtcclxuICBtb2RlbDogUmVjaXBpZW50TW9kZWw8YW55PjtcclxuICBuZXdDb21tZW50c0NvdW50OiBudW1iZXI7XHJcbiAgd29ya2luZzogYm9vbGVhbjtcclxuICBkaXJ0eTogYm9vbGVhbjtcclxuICB2YWxpZDogYm9vbGVhbjtcclxuICBtb2RlOiBWaWV3TW9kZTtcclxuICBleHBlbmRhYmxlOiBib29sZWFuO1xyXG4gIHJlYWRvbmx5IGVuYWJsZUFuYWx5c2lzOiBib29sZWFuO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2RyYWdEcm9wID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICAvKiogY29tcG9zZSBjdG9yICovXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9zZXNzaW9uOiBTZXNzaW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgX21haWxib3g6IE1haWxib3hTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfcGFuZTogUGFuZVJlZjxDb21wb3NlUGFuZUNvbXBvbmVudD4sXHJcbiAgICBwcml2YXRlIF9yb3V0ZXI6IFBhbmVzUm91dGVyLFxyXG4gICAgQEluamVjdChCSVpET0NfQ09ORklHKSBjb25maWc6IEJpekRvY0NvbmZpZykge1xyXG4gICAgdGhpcy5lbmFibGVBbmFseXNpcyA9IF9zZXNzaW9uLnByb2ZpbGUudmlld3MubGVuZ3RoID4gMDtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fcGFuZS5kYXRhQ2hhbmdlLnN1YnNjcmliZShkID0+IHtcclxuICAgICAgaWYgKHRoaXMubW9kZWwgPT0gZC5pdGVtKSByZXR1cm47XHJcbiAgICAgIHRoaXMubW9kZWwgPSBkLml0ZW07XHJcbiAgICAgIGNvbnN0IGZvcm0gPSB0aGlzLl9zZXNzaW9uLnByb2ZpbGUuZm9ybXMuZmluZChmID0+IGYubmFtZSA9PT0gdGhpcy5tb2RlbC5mb3JtSWQpO1xyXG4gICAgICB0aGlzLl9wYW5lLmljb24gPSBmb3JtLmljb247XHJcbiAgICAgIGlmICh0aGlzLm1vZGVsLmRyYWZ0KSB7XHJcbiAgICAgICAgdGhpcy5tb2RlID0gJ2NvbXBvc2UnO1xyXG4gICAgICAgIC8vc2V0VGltZW91dCgoKT0+dGhpcy5fcGFuZS5leHBhbmQoKSk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZVxyXG4gICAgICAgIHRoaXMubW9kZSA9ICdwcmV2aWV3JztcclxuICAgICAgdGhpcy5uZXdDb21tZW50c0NvdW50ID0gdGhpcy5tb2RlbC51bnJlYWRDb21tZW50cztcclxuICAgICAgdGhpcy5fcGFuZS50aXRsZSA9IHRoaXMuX3BhbmUuZ3JvdXAgPSBgIyR7dGhpcy5tb2RlbC5udW1iZXJ9YDtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5fcGFuZS5xdWVyeVBhcmFtc0NoYW5nZS5zdWJzY3JpYmUocCA9PiB7XHJcbiAgICAgIGNvbnN0IHsgcGFnZSB9ID0gcDtcclxuICAgICAgaWYgKHBhZ2UgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIC8vICAgY29uc3QgcGFnZW4gPSBwYXJzZUludChwYWdlKTtcclxuICAgICAgICAvLyAgdGhpcy5mb3JtLm5hdmlnYXRlKGlzTmFOKHBhZ2VuKSA/IHBhZ2UgOiBwYWdlbik7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5fbWFpbGJveC5jaGFuZ2VkLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpKS5zdWJzY3JpYmUoZSA9PiB7XHJcbiAgICAgIGlmIChlLmlkID09PSB0aGlzLm1vZGVsLmlkICYmICF0aGlzLndvcmtpbmcpIHtcclxuICAgICAgICBpZiAoZS5mb2xkZXJJZCAmJiBlLmZvbGRlcklkICE9PSB0aGlzLm1vZGVsLmZvbGRlcklkKSB0aGlzLl9jbG9zZSgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMuX21haWxib3guZGVsZXRlZC5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSkuc3Vic2NyaWJlKGUgPT5cclxuICAgICAgZSA9PT0gdGhpcy5tb2RlbC5pZCAmJiAhdGhpcy53b3JraW5nICYmXHJcbiAgICAgIHRoaXMuX2Nsb3NlKClcclxuICAgICk7XHJcbiAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmRyb3BhYmxlRWxlbWVudC5uYXRpdmVFbGVtZW50O1xyXG4gICAgdGhpcy5fZHJhZ0Ryb3Auc3Vic2NyaWJlKG9rID0+IHtcclxuICAgICAgaWYgKG9rKSBjb250YWluZXIuY2xhc3NMaXN0LmFkZCgnZHJhZycpO1xyXG4gICAgICBlbHNlIGNvbnRhaW5lci5jbGFzc0xpc3QucmVtb3ZlKCdkcmFnJyk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuZXhwZW5kYWJsZSA9ICF0aGlzLl9wYW5lLmV4cGFuZGVkO1xyXG4gICAgdGhpcy5fcGFuZS5leHBhbmRlZGluZy5zdWJzY3JpYmUoZSA9PiB0aGlzLmV4cGVuZGFibGUgPSAhZSk7XHJcbiAgfVxyXG4gIGNsb3NlKCkge1xyXG4gICAgdGhpcy5fcGFuZS5jbG9zZSgpO1xyXG4gIH1cclxuICBlZGl0KCkge1xyXG4gICAgdGhpcy5tb2RlID0gJ2NvbXBvc2UnO1xyXG4gICAgdGhpcy5leHBlbmRhYmxlICYmIHRoaXMuZXhwYW5kKCk7XHJcbiAgfVxyXG4gIGV4cGFuZCgpIHtcclxuICAgIHRoaXMuX3BhbmUuZXhwYW5kKCk7XHJcbiAgfVxyXG4gIGNoYW5nZSgpIHtcclxuICAgIHRoaXMuX3BhbmUuZm9jdXMoKTtcclxuICB9XHJcbiAgc2F2ZSgpIHtcclxuICAgIHRoaXMuZm9ybS5zYXZlKCkuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG4gIHNhdmVkKCkge1xyXG4gICAgdGhpcy5fcGFuZS5yZWZyZXNoKCk7XHJcbiAgfVxyXG4gIG5hdkNvbW1lbnRzKCkge1xyXG4gICAgdGhpcy5fbmF2aWdhdGUoJ2NvbW1lbnRzJykudGhlbihwYW5lUmVmID0+IHtcclxuICAgICAgKHBhbmVSZWYuaW5zdGFuY2UgYXMgQ29tbWVudHNQYW5lQ29tcG9uZW50KS5jb21tZW50cy5jaGFuZ2UuXHJcbiAgICAgICAgcGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSkpLnN1YnNjcmliZSgoKSA9PlxyXG4gICAgICAgICAgdGhpcy5uZXdDb21tZW50c0NvdW50ID0gKHBhbmVSZWYuaW5zdGFuY2UgYXMgQ29tbWVudHNQYW5lQ29tcG9uZW50KS5cclxuICAgICAgICAgICAgY29tbWVudHMudW5yZWFkQ29tbWVudHMpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIG5hdlRyYWNlKCkge1xyXG4gICAgdGhpcy5fbmF2aWdhdGUoJ3RyYWNlJylcclxuICB9XHJcbiAgcHJpdmF0ZSBfbmF2aWdhdGUoY29tbWFuZDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fcm91dGVyLm5hdmlnYXRlKFtjb21tYW5kXSwge1xyXG4gICAgICBwYXRoTW9kZTogJ3JlbGF0aXZlJyxcclxuICAgICAgcmVsYXRpdmVUbzogdGhpcy5fcGFuZSxcclxuICAgICAgcG9saWN5OiBPcGVuUG9saWN5LlRvZ2dsZVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmRyb3AnLCBbJyRldmVudCddKVxyXG4gIGhhbmRsZURvY3VtZW50RHJvcChldmVudDogS2V5Ym9hcmRFdmVudCkge1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gIH1cclxuICBASG9zdExpc3RlbmVyKCdkcm9wJywgWyckZXZlbnQnXSlcclxuICBoYW5kbGVEcm9wKGV2ZW50OiBEcmFnRXZlbnQpIHtcclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICB0aGlzLl9kcmFnRHJvcC5uZXh0KGZhbHNlKTtcclxuICAgIGNvbnN0IHsgaXRlbXMgfSA9IGV2ZW50LmRhdGFUcmFuc2ZlcjtcclxuICAgIGNvbnN0IGFycjogRmlsZVtdID0gW107XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGl0ZW1zLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGNvbnN0IGZpbGUgPSBpdGVtc1tpXS5nZXRBc0ZpbGUoKTtcclxuICAgICAgYXJyLnB1c2goZmlsZSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmZvcm0udXBsb2FkKGFycikuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RyYWdlbnRlcicsIFsnJGV2ZW50J10pXHJcbiAgaGFuZGxlRW50ZXIoZXZlbnQ6IERyYWdFdmVudCkge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIHRoaXMuX2RyYWdEcm9wLm5leHQodHJ1ZSk7XHJcbiAgfVxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RyYWdsZWF2ZScsIFsnJGV2ZW50J10pXHJcbiAgaGFuZGxlTGVhdmUoZXZlbnQ6IERyYWdFdmVudCkge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIHRoaXMuX2RyYWdEcm9wLm5leHQoZmFsc2UpO1xyXG4gIH1cclxuICBASG9zdExpc3RlbmVyKCdkcmFnb3ZlcicsIFsnJGV2ZW50J10pXHJcbiAgaGFuZGxlT3ZlcihldmVudDogRHJhZ0V2ZW50KSB7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgdGhpcy5fZHJhZ0Ryb3AubmV4dCh0cnVlKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogQ3RybC1zIHNhdmVcclxuICAgKiBAcGFyYW0gZXZlbnRcclxuICAgKi9cclxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXlkb3duJywgWyckZXZlbnQnXSlcclxuICBoYW5kbGVLZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICBpZiAoZXZlbnQuY3RybEtleSAmJiAoZXZlbnQud2hpY2ggPT09IDgzIHx8IGV2ZW50LndoaWNoID09PSAxMTUpKSB7XHJcbiAgICAgIGlmICh0aGlzLmRpcnR5ICYmICF0aGlzLndvcmtpbmcpXHJcbiAgICAgICAgdGhpcy5zYXZlKCk7XHJcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGRpc2NhcmQoKSB7XHJcbiAgICB0aGlzLmZvcm0uZGlzY2FyZCgpLnN1YnNjcmliZSh0aGlzLl9jbG9zZS5iaW5kKHRoaXMpKVxyXG4gIH1cclxuICBzZW5kKGFjdGlvbjogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmZvcm0uc2VuZChhY3Rpb24pLnN1YnNjcmliZSh0aGlzLl9jbG9zZS5iaW5kKHRoaXMpKTtcclxuICB9XHJcbiAgc3VibWl0KCkge1xyXG4gICAgdGhpcy5mb3JtLnN1Ym1pdCgpLnN1YnNjcmliZSh0aGlzLl9jbG9zZS5iaW5kKHRoaXMpKVxyXG4gIH1cclxuICBwcml2YXRlIF9jbG9zZSgpIHtcclxuICAgIHRoaXMuZm9ybS5kaXJ0eSA9IGZhbHNlO1xyXG4gICAgdGhpcy5fcGFuZS5jbG9zZSgpO1xyXG4gIH1cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2RyYWdEcm9wLmNvbXBsZXRlKCk7XHJcblxyXG4gICAgdGhpcy5fZGVzdHJveS5uZXh0KCk7XHJcbiAgICB0aGlzLl9kZXN0cm95LmNvbXBsZXRlKCk7XHJcbiAgfVxyXG4gIHZpZXcoKSB7XHJcbiAgICB0aGlzLl9uYXZpZ2F0ZSgndmlld3MnKVxyXG4gIH1cclxufVxyXG4iLCI8bWF0LXRvb2xiYXIgY2xhc3M9XCJuYXYtdG9vbGJhclwiPlxyXG4gIDxidXR0b24gbWF0LWljb24tYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJmb3JtLmJhY2soKVwiIFtiaXpkb2NUb29sdGlwXT1cIidCYWNrJ3x0cmFuc2xhdGVcIiAqbmdJZj1cImZvcm0ucGFnZSAhPT0gdW5kZWZpbmVkXCIgdGFiaW5kZXg9XCIxXCI+XHJcbiAgICA8bWF0LWljb24gY2xhc3M9XCJtYXQtaWNvbi1ydGwtbWlycm9yXCI+YXJyb3dfYmFjazwvbWF0LWljb24+XHJcbiAgPC9idXR0b24+XHJcbiAgPGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKm5nSWY9XCJtb2RlbC5kcmFmdFwiIGRhdGEtaGVscD1cInN1Ym1pdFwiXHJcbiAgICAgICAgICAoY2xpY2spPVwic3VibWl0KClcIiBbZGlzYWJsZWRdPVwiIXZhbGlkfHx3b3JraW5nXCI+XHJcbiAgICA8c3Bhbj57eydTdWJtaXQnIHwgdHJhbnNsYXRlfX08L3NwYW4+XHJcbiAgPC9idXR0b24+XHJcbiAgPGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKm5nSWY9XCJmb3JtLmFjdGlvbnMubGVuZ3RoID09PSAxXCIgW2F0dHIuZGF0YS1oZWxwXT1cIidhY3Rpb24tJytmb3JtLmFjdGlvbnNbMF0ubmFtZVwiIChjbGljayk9XCJzZW5kKG1vZGVsLmFjdGlvbnNbMF0pXCIgW2Rpc2FibGVkXT1cIiF2YWxpZHx8d29ya2luZ1wiPlxyXG4gICAgPHNwYW4+e3tmb3JtLmFjdGlvbnNbMF0udGl0bGV9fTwvc3Bhbj5cclxuICA8L2J1dHRvbj5cclxuICA8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiBkYXRhLWhlbHA9XCJzZW5kXCIgY29sb3I9XCJwcmltYXJ5XCIgKm5nSWY9XCJmb3JtLmFjdGlvbnMubGVuZ3RoID4gMVwiIFttYXRNZW51VHJpZ2dlckZvcl09XCJhY3Rpb25NZW51XCIgW2Rpc2FibGVkXT1cIiF2YWxpZHx8d29ya2luZ1wiPlxyXG4gICAgPHNwYW4+e3snU2VuZCcgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cclxuICA8L2J1dHRvbj5cclxuICA8IS0tIGFjdGlvbiAtLT5cclxuICA8bWF0LW1lbnUgI2FjdGlvbk1lbnU+XHJcbiAgICA8bmctdGVtcGxhdGUgbWF0TWVudUNvbnRlbnQ+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGEgb2YgZm9ybS5hY3Rpb25zOyBsZXQgaSA9IGluZGV4XCI+XHJcbiAgICAgICAgPG1hdC1kaXZpZGVyICpuZ0lmPVwiaSA+IDAgJiYgZm9ybS5hY3Rpb25zW2kgLSAxXS5ncm91cCAhPT0gYS5ncm91cFwiPjwvbWF0LWRpdmlkZXI+XHJcbiAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJzZW5kKGEubmFtZSlcIj57e2EudGl0bGV9fTwvYnV0dG9uPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgPC9tYXQtbWVudT5cclxuICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwic2F2ZSgpXCIgZGF0YS1oZWxwPVwic2F2ZVwiIFtkaXNhYmxlZF09XCIhZGlydHl8fHdvcmtpbmdcIiBbYml6ZG9jVG9vbHRpcF09XCInU2F2ZSd8dHJhbnNsYXRlXCIgKm5nSWY9XCJtb2RlID09PSAnY29tcG9zZSdcIj5cclxuICAgIDxtYXQtaWNvbj5zYXZlPC9tYXQtaWNvbj5cclxuICA8L2J1dHRvbj5cclxuICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBkYXRhLWhlbHA9XCJ0YWdcIiAoY2xpY2spPVwiZm9ybS50YWcoJGV2ZW50KVwiIFtiaXpkb2NUb29sdGlwXT1cIidUYWdzJyB8IHRyYW5zbGF0ZVwiIFtkaXNhYmxlZF09XCJ3b3JraW5nXCI+PG1hdC1pY29uIGNsYXNzPVwiZmlsbGVkXCI+e3ttb2RlbC50YWdzICYmIG1vZGVsLnRhZ3MubGVuZ3RoID8nYm9va21hcmsnOidib29rbWFya19ib3JkZXInfX08L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gIDxidXR0b24gbWF0LWljb24tYnV0dG9uIGRhdGEtaGVscD1cImZsYWdcIiBbYml6ZG9jVG9vbHRpcF09XCInRmxhZ2dlZCd8IHRyYW5zbGF0ZVwiIFtkaXNhYmxlZF09XCJ3b3JraW5nXCIgKGNsaWNrKT1cImZvcm0uZmxhZygpXCI+PG1hdC1pY29uIFtjbGFzcy5kb2N1bWVudC1mbGFnXT1cIm1vZGVsLmZsYWdcIj57e21vZGVsLmZsYWcgPyAnc3RhcicgOiAnc3Rhcl9ib3JkZXInfX08L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJmb3JtLmF0dGFjaCgpXCIgZGF0YS1oZWxwPVwiYXR0YWNoXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ0F0dGFjaEZpbGUnIHwgdHJhbnNsYXRlXCIgW2Rpc2FibGVkXT1cIndvcmtpbmdcIj48bWF0LWljb24+YXR0YWNoX2ZpbGU8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gIDxidXR0b24gbWF0LWljb24tYnV0dG9uIFtkaXNhYmxlZF09XCJ3b3JraW5nXCIgZGF0YS1oZWxwPVwiZWRpdFwiIChjbGljayk9XCJlZGl0KClcIiBbYml6ZG9jVG9vbHRpcF09XCInRWRpdCcgfCB0cmFuc2xhdGVcIiAqbmdJZj1cIm1vZGUgIT09ICdjb21wb3NlJyAmJiBtb2RlbC5wZW5kaW5nICYmICFtb2RlbC5jb21wbGV0ZWRcIj48bWF0LWljb24+Y3JlYXRlPC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICA8c3BhbiBjbGFzcz1cImRpdmlkZXJcIj48L3NwYW4+XHJcbiAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cIm5hdlRyYWNlKClcIiBbYml6ZG9jVG9vbHRpcF09XCInVHJhY2UnIHwgdHJhbnNsYXRlXCIgdGFiaW5kZXg9XCIxXCI+PG1hdC1pY29uPnRpbWVsaW5lPC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwibmF2Q29tbWVudHMoKVwiIGRhdGEtaGVscD1cImNvbW1lbnRzXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ0NvbW1lbnRzJyB8IHRyYW5zbGF0ZVwiIFttYXRCYWRnZV09XCJuZXdDb21tZW50c0NvdW50XCIgW21hdEJhZGdlSGlkZGVuXT1cIiFuZXdDb21tZW50c0NvdW50XCIgbWF0QmFkZ2VDb2xvcj1cImFjY2VudFwiPlxyXG4gICAgPG1hdC1pY29uIFtjbGFzcy5maWxsZWRdPVwibW9kZWwuY29tbWVudHMubGVuZ3RoID4gMFwiPmZvcm1hdF9xdW90ZTwvbWF0LWljb24+XHJcbiAgPC9idXR0b24+XHJcbiAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cInZpZXcoKVwiIFtiaXpkb2NUb29sdGlwXT1cIidWaWV3JyB8IHRyYW5zbGF0ZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwiJ1ZpZXcnIHwgdHJhbnNsYXRlXCIgKm5nSWY9XCJlbmFibGVBbmFseXNpc1wiIGNsYXNzPVwidG9vbFwiPjxtYXQtaWNvbj5kYXRhX3VzYWdlPC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiZXhwYW5kKClcIiBbYml6ZG9jVG9vbHRpcF09XCInRXhwYW5kJyB8IHRyYW5zbGF0ZVwiICpuZ0lmPVwiZXhwZW5kYWJsZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0V4cGFuZCcgfCB0cmFuc2xhdGVcIj48bWF0LWljb24+b3Blbl9pbl9uZXc8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gIDxidXR0b24gbWF0LWljb24tYnV0dG9uIFttYXRNZW51VHJpZ2dlckZvcl09XCJvcHRpb25zTWVudVwiIFtiaXpkb2NUb29sdGlwXT1cIidPcHRpb25zJyB8IHRyYW5zbGF0ZVwiIFthdHRyLmFyaWEtbGFiZWxdPVwiJ09wdGlvbnMnIHwgdHJhbnNsYXRlXCI+PG1hdC1pY29uPm1vcmVfdmVydDwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgPG1hdC1tZW51ICNvcHRpb25zTWVudT1cIm1hdE1lbnVcIj5cclxuICAgIDxuZy10ZW1wbGF0ZSBtYXRNZW51Q29udGVudD5cclxuICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJmb3JtLmNvcHkoKVwiIFtkaXNhYmxlZF09XCJ3b3JraW5nXCI+XHJcbiAgICAgICAgPCEtLTxtYXQtaWNvbj5jb250ZW50X2NvcHk8L21hdC1pY29uPi0tPlxyXG4gICAgICAgIDxzcGFuPnt7J0NvcHknIHwgdHJhbnNsYXRlfX08L3NwYW4+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cImRpc2NhcmQoKVwiICpuZ0lmPVwibW9kZWwuZHJhZnQgJiYgIW1vZGVsLmlzc3VlZFwiIFtkaXNhYmxlZF09XCJ3b3JraW5nXCI+XHJcbiAgICAgICAgPCEtLTxtYXQtaWNvbj5kZWxldGVfb3V0bGluZWQ8L21hdC1pY29uPi0tPlxyXG4gICAgICAgIDxzcGFuPnt7J0Rpc2NhcmQnIHwgdHJhbnNsYXRlfX08L3NwYW4+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZm9ybS5oZWxwXCI+XHJcbiAgICAgICAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XHJcbiAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJmb3JtLmd1aWRlKGZvcm0uaGVscClcIj5cclxuICAgICAgICAgIDwhLS08bWF0LWljb24+aGVscF9vdXRsaW5lPC9tYXQtaWNvbj4tLT5cclxuICAgICAgICAgIDxzcGFuPnt7J0hlbHAnIHwgdHJhbnNsYXRlfX08L3NwYW4+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cclxuICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJjbG9zZSgpXCI+PCEtLTxtYXQtaWNvbj48L21hdC1pY29uPi0tPjxzcGFuPnt7J0Nsb3NlJ3wgdHJhbnNsYXRlfX08L3NwYW4+PC9idXR0b24+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gIDwvbWF0LW1lbnU+XHJcbjwvbWF0LXRvb2xiYXI+XHJcbjxkaXYgY2xhc3M9XCJmaWxlLWRyb3BhYmxlXCIgI2Ryb3BhYmxlPlxyXG4gIDxiaXpkb2MtZm9ybSBbbW9kZWxdPW1vZGVsICNmb3JtXHJcbiAgICAgICAgICAgICAgIChtb2RlbENoYW5nZSk9XCJjaGFuZ2UoKVwiXHJcbiAgICAgICAgICAgICAgIChzYXZlZCk9XCJzYXZlZCgpXCJcclxuICAgICAgICAgICAgICAgKHZhbGlkQ2hhbmdlKT1cInZhbGlkPSRldmVudFwiXHJcbiAgICAgICAgICAgICAgICh3b3JraW5nQ2hhbmdlKT1cIndvcmtpbmc9JGV2ZW50XCJcclxuICAgICAgICAgICAgICAgKGRpcnR5Q2hhbmdlKT1cImRpcnR5PSRldmVudFwiIFttb2RlXT1cIm1vZGVcIj48L2JpemRvYy1mb3JtPlxyXG48L2Rpdj5cclxuIl19
@@ -22,7 +22,7 @@ export class TracePaneComponent {
22
22
  this.model = d['item'];
23
23
  this._pane.group = `#${this.model.number}`;
24
24
  });
25
- this._pane.resize.subscribe(() => {
25
+ this._pane.resized.subscribe(() => {
26
26
  this.flow.resize();
27
27
  });
28
28
  }
@@ -49,4 +49,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImpor
49
49
  type: ViewChild,
50
50
  args: [FlowViewComponent, { static: true }]
51
51
  }] } });
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhY2UucGFuZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2NvbXBvc2UvdHJhY2UvdHJhY2UucGFuZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2NvbXBvc2UvdHJhY2UvdHJhY2UucGFuZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUs3RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7Ozs7OztBQVN2RCxNQUFNLE9BQU8sa0JBQWtCO0lBSTdCLFlBQVksU0FBMkIsRUFDN0IsS0FBa0MsRUFDbEMsT0FBb0I7UUFEcEIsVUFBSyxHQUFMLEtBQUssQ0FBNkI7UUFDbEMsWUFBTyxHQUFQLE9BQU8sQ0FBYTtRQUU1QixLQUFLLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUNELFFBQVE7UUFDTixJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDbEMsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRTtnQkFDM0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDckIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQzthQUNyQjtZQUNELElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUM3QyxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDL0IsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNyQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxPQUFPLENBQUMsSUFBVTtRQUNoQixJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksRUFBRSxTQUFTLEVBQUUsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsRUFBRTtZQUM1RSxVQUFVLEVBQUUsSUFBSSxDQUFDLEtBQUs7WUFDdEIsS0FBSyxFQUFFO2dCQUNMLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSzthQUNqQjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7OytHQTlCVSxrQkFBa0I7bUdBQWxCLGtCQUFrQiw2SEFFbEIsa0JBQWtCLHFGQUNsQixpQkFBaUIsOERDbEI5QixnSkFHQTsyRkRZYSxrQkFBa0I7a0JBUDlCLFNBQVM7MkJBR0Y7d0JBQ0osS0FBSyxFQUFFLE1BQU07cUJBQ2Q7dUpBSWdELEtBQUs7c0JBQXJELFNBQVM7dUJBQUMsa0JBQWtCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUNDLElBQUk7c0JBQW5ELFNBQVM7dUJBQUMsaUJBQWlCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEb2N1bWVudE1vZGVsIH0gZnJvbSAnLi4vLi4vY29yZS9tb2RlbHMnO1xyXG5pbXBvcnQgeyBQYW5lc1JvdXRlciB9IGZyb20gJy4uLy4uL2NvcmUvc2xvdHMvcm91dGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQYW5lUmVmIH0gZnJvbSAnLi4vLi4vY29yZS9zbG90cy9wYW5lLXJlZic7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3RyYW5zbGF0ZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRmxvd1ZpZXdDb21wb25lbnQgfSBmcm9tICcuL2Zsb3cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVHJhY2VWaWV3Q29tcG9uZW50IH0gZnJvbSAnLi90cmFjZS5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RyYWNlLnBhbmUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RyYWNlLnBhbmUuY29tcG9uZW50LnNjc3MnXSxcclxuICBob3N0OiB7XHJcbiAgICBjbGFzczogJ3BhbmUnXHJcbiAgfVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJhY2VQYW5lQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBtb2RlbDogRG9jdW1lbnRNb2RlbDxhbnk+O1xyXG4gIEBWaWV3Q2hpbGQoVHJhY2VWaWV3Q29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KSB0cmFjZTogVHJhY2VWaWV3Q29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoRmxvd1ZpZXdDb21wb25lbnQsIHsgc3RhdGljOiB0cnVlIH0pIGZsb3c6IEZsb3dWaWV3Q29tcG9uZW50O1xyXG4gIGNvbnN0cnVjdG9yKHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgX3BhbmU6IFBhbmVSZWY8VHJhY2VQYW5lQ29tcG9uZW50PixcclxuICAgIHByaXZhdGUgX3JvdXRlcjogUGFuZXNSb3V0ZXJcclxuICApIHtcclxuICAgIF9wYW5lLnRpdGxlID0gdHJhbnNsYXRlLmdldCgnVHJhY2UnKTtcclxuICB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9wYW5lLmRhdGFDaGFuZ2Uuc3Vic2NyaWJlKGQgPT4ge1xyXG4gICAgICBpZiAodGhpcy5tb2RlbCA9PSBkWydpdGVtJ10pIHtcclxuICAgICAgICB0aGlzLnRyYWNlLnJlZnJlc2goKTtcclxuICAgICAgICB0aGlzLmZsb3cucmVmcmVzaCgpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMubW9kZWwgPSBkWydpdGVtJ107XHJcbiAgICAgIHRoaXMuX3BhbmUuZ3JvdXAgPSBgIyR7dGhpcy5tb2RlbC5udW1iZXJ9YDtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5fcGFuZS5yZXNpemUuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgdGhpcy5mbG93LnJlc2l6ZSgpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHZlcnNpb24odGltZTogRGF0ZSkge1xyXG4gICAgdGhpcy5fcm91dGVyLm5hdmlnYXRlKFsnLi4nLCAndmVyc2lvbicsIG5ldyBEYXRlKHRpbWUpLnZhbHVlT2YoKS5lbmNvZGVJZCgpXSwge1xyXG4gICAgICByZWxhdGl2ZVRvOiB0aGlzLl9wYW5lLFxyXG4gICAgICBzdGF0ZToge1xyXG4gICAgICAgIGl0ZW06IHRoaXMubW9kZWxcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiIsIjxiaXpkb2MtdHJhY2UgW21vZGVsXT1cIm1vZGVsXCIgKHZlcnNpb25TZWxlY3RlZCk9XCJ2ZXJzaW9uKCRldmVudClcIj48L2JpemRvYy10cmFjZT5cclxuXHJcbjxiaXpkb2MtZmxvdyBbbW9kZWxdPVwibW9kZWxcIj48L2JpemRvYy1mbG93PlxyXG4iXX0=
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhY2UucGFuZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2NvbXBvc2UvdHJhY2UvdHJhY2UucGFuZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2NvbXBvc2UvdHJhY2UvdHJhY2UucGFuZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUs3RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7Ozs7OztBQVN2RCxNQUFNLE9BQU8sa0JBQWtCO0lBSTdCLFlBQVksU0FBMkIsRUFDN0IsS0FBa0MsRUFDbEMsT0FBb0I7UUFEcEIsVUFBSyxHQUFMLEtBQUssQ0FBNkI7UUFDbEMsWUFBTyxHQUFQLE9BQU8sQ0FBYTtRQUU1QixLQUFLLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUNELFFBQVE7UUFDTixJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDbEMsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRTtnQkFDM0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDckIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQzthQUNyQjtZQUNELElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUM3QyxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNyQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxPQUFPLENBQUMsSUFBVTtRQUNoQixJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksRUFBRSxTQUFTLEVBQUUsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsRUFBRTtZQUM1RSxVQUFVLEVBQUUsSUFBSSxDQUFDLEtBQUs7WUFDdEIsS0FBSyxFQUFFO2dCQUNMLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSzthQUNqQjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7OytHQTlCVSxrQkFBa0I7bUdBQWxCLGtCQUFrQiw2SEFFbEIsa0JBQWtCLHFGQUNsQixpQkFBaUIsOERDbEI5QixnSkFHQTsyRkRZYSxrQkFBa0I7a0JBUDlCLFNBQVM7MkJBR0Y7d0JBQ0osS0FBSyxFQUFFLE1BQU07cUJBQ2Q7dUpBSWdELEtBQUs7c0JBQXJELFNBQVM7dUJBQUMsa0JBQWtCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUNDLElBQUk7c0JBQW5ELFNBQVM7dUJBQUMsaUJBQWlCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEb2N1bWVudE1vZGVsIH0gZnJvbSAnLi4vLi4vY29yZS9tb2RlbHMnO1xyXG5pbXBvcnQgeyBQYW5lc1JvdXRlciB9IGZyb20gJy4uLy4uL2NvcmUvc2xvdHMvcm91dGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQYW5lUmVmIH0gZnJvbSAnLi4vLi4vY29yZS9zbG90cy9wYW5lLXJlZic7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3RyYW5zbGF0ZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRmxvd1ZpZXdDb21wb25lbnQgfSBmcm9tICcuL2Zsb3cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVHJhY2VWaWV3Q29tcG9uZW50IH0gZnJvbSAnLi90cmFjZS5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RyYWNlLnBhbmUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RyYWNlLnBhbmUuY29tcG9uZW50LnNjc3MnXSxcclxuICBob3N0OiB7XHJcbiAgICBjbGFzczogJ3BhbmUnXHJcbiAgfVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJhY2VQYW5lQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBtb2RlbDogRG9jdW1lbnRNb2RlbDxhbnk+O1xyXG4gIEBWaWV3Q2hpbGQoVHJhY2VWaWV3Q29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KSB0cmFjZTogVHJhY2VWaWV3Q29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoRmxvd1ZpZXdDb21wb25lbnQsIHsgc3RhdGljOiB0cnVlIH0pIGZsb3c6IEZsb3dWaWV3Q29tcG9uZW50O1xyXG4gIGNvbnN0cnVjdG9yKHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgX3BhbmU6IFBhbmVSZWY8VHJhY2VQYW5lQ29tcG9uZW50PixcclxuICAgIHByaXZhdGUgX3JvdXRlcjogUGFuZXNSb3V0ZXJcclxuICApIHtcclxuICAgIF9wYW5lLnRpdGxlID0gdHJhbnNsYXRlLmdldCgnVHJhY2UnKTtcclxuICB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9wYW5lLmRhdGFDaGFuZ2Uuc3Vic2NyaWJlKGQgPT4ge1xyXG4gICAgICBpZiAodGhpcy5tb2RlbCA9PSBkWydpdGVtJ10pIHtcclxuICAgICAgICB0aGlzLnRyYWNlLnJlZnJlc2goKTtcclxuICAgICAgICB0aGlzLmZsb3cucmVmcmVzaCgpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMubW9kZWwgPSBkWydpdGVtJ107XHJcbiAgICAgIHRoaXMuX3BhbmUuZ3JvdXAgPSBgIyR7dGhpcy5tb2RlbC5udW1iZXJ9YDtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5fcGFuZS5yZXNpemVkLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIHRoaXMuZmxvdy5yZXNpemUoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuICB2ZXJzaW9uKHRpbWU6IERhdGUpIHtcclxuICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZShbJy4uJywgJ3ZlcnNpb24nLCBuZXcgRGF0ZSh0aW1lKS52YWx1ZU9mKCkuZW5jb2RlSWQoKV0sIHtcclxuICAgICAgcmVsYXRpdmVUbzogdGhpcy5fcGFuZSxcclxuICAgICAgc3RhdGU6IHtcclxuICAgICAgICBpdGVtOiB0aGlzLm1vZGVsXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iLCI8Yml6ZG9jLXRyYWNlIFttb2RlbF09XCJtb2RlbFwiICh2ZXJzaW9uU2VsZWN0ZWQpPVwidmVyc2lvbigkZXZlbnQpXCI+PC9iaXpkb2MtdHJhY2U+XHJcblxyXG48Yml6ZG9jLWZsb3cgW21vZGVsXT1cIm1vZGVsXCI+PC9iaXpkb2MtZmxvdz5cclxuIl19