@bizdoc/core 1.16.12 → 1.16.15

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 (73) hide show
  1. package/esm2020/lib/admin/configuration-designer/cube-axes-filter.component.mjs +12 -30
  2. package/esm2020/lib/admin/configuration-designer/declarations.mjs +16 -6
  3. package/esm2020/lib/admin/configuration-designer/designer-element.component.mjs +60 -65
  4. package/esm2020/lib/admin/configuration-designer/designer-privileges.component.mjs +93 -0
  5. package/esm2020/lib/admin/configuration-designer/designer.base.mjs +55 -45
  6. package/esm2020/lib/admin/configuration-designer/designer.component.mjs +31 -6
  7. package/esm2020/lib/admin/configuration-designer/elements/analysis-view.component.mjs +5 -5
  8. package/esm2020/lib/admin/configuration-designer/elements/analysis-widget.component.mjs +5 -5
  9. package/esm2020/lib/admin/configuration-designer/elements/anomaly-rule.component.mjs +1 -1
  10. package/esm2020/lib/admin/configuration-designer/elements/configuration-datasource.component.mjs +6 -6
  11. package/esm2020/lib/admin/configuration-designer/elements/cube-view.component.mjs +3 -3
  12. package/esm2020/lib/admin/configuration-designer/elements/cube.component.mjs +22 -42
  13. package/esm2020/lib/admin/configuration-designer/elements/documents-report.component.mjs +5 -4
  14. package/esm2020/lib/admin/configuration-designer/elements/documents-widget.component.mjs +15 -16
  15. package/esm2020/lib/admin/configuration-designer/elements/explore-view.component.mjs +7 -6
  16. package/esm2020/lib/admin/configuration-designer/elements/folder.component.mjs +3 -3
  17. package/esm2020/lib/admin/configuration-designer/elements/form.component.mjs +5 -5
  18. package/esm2020/lib/admin/configuration-designer/elements/guide.component.mjs +17 -18
  19. package/esm2020/lib/admin/configuration-designer/elements/matrix-view.component.mjs +27 -14
  20. package/esm2020/lib/admin/configuration-designer/elements/parallel-view.component.mjs +6 -8
  21. package/esm2020/lib/admin/configuration-designer/elements/performance-widget.component.mjs +5 -4
  22. package/esm2020/lib/admin/configuration-designer/elements/pivot-view.component.mjs +3 -3
  23. package/esm2020/lib/admin/configuration-designer/elements/report.component.mjs +3 -3
  24. package/esm2020/lib/admin/configuration-designer/elements/role.component.mjs +2 -2
  25. package/esm2020/lib/admin/configuration-designer/elements/sum-view.component.mjs +3 -3
  26. package/esm2020/lib/admin/configuration-designer/elements/tasks-report.component.mjs +6 -5
  27. package/esm2020/lib/admin/configuration-designer/elements/usage-report.component.mjs +3 -3
  28. package/esm2020/lib/admin/form/workflow/node.component.mjs +3 -3
  29. package/esm2020/lib/admin/indices/manage-cube-index.component.mjs +2 -2
  30. package/esm2020/lib/admin/patterns/patterns.component.mjs +4 -4
  31. package/esm2020/lib/compose/action/action.pane.dialog.exp.mjs +2 -1
  32. package/esm2020/lib/core/controls/combination-pool.mjs +2 -2
  33. package/esm2020/lib/core/functions.mjs +3 -2
  34. package/esm2020/lib/core/layout/layout.component.mjs +10 -12
  35. package/esm2020/lib/core/models.mjs +1 -1
  36. package/esm2020/lib/core/translations.mjs +12 -2
  37. package/esm2020/lib/cube/explore/explore-items.component.mjs +2 -2
  38. package/esm2020/lib/cube/filter/filter.component.mjs +3 -3
  39. package/esm2020/lib/cube/view-base.mjs +1 -2
  40. package/esm2020/lib/dashboard/cube/filter/filter.component.mjs +2 -2
  41. package/esm2020/lib/dashboard/widget-item.component.mjs +3 -4
  42. package/esm2020/lib/notifications/types/cube-anomaly.notification.mjs +2 -2
  43. package/esm2020/lib/reports/arguments-component.mjs +3 -3
  44. package/esm2020/lib/reports/cube/usage-args.component.mjs +3 -3
  45. package/esm2020/lib/reports/cube/usage-base.mjs +2 -2
  46. package/esm2020/lib/reports/cube/usage-pivot.component.mjs +2 -2
  47. package/esm2020/lib/system.module.mjs +4 -3
  48. package/esm2020/lib/views/cube/view.component.mjs +2 -2
  49. package/fesm2015/bizdoc-core.mjs +481 -382
  50. package/fesm2015/bizdoc-core.mjs.map +1 -1
  51. package/fesm2020/bizdoc-core.mjs +477 -379
  52. package/fesm2020/bizdoc-core.mjs.map +1 -1
  53. package/lib/admin/configuration-designer/cube-axes-filter.component.d.ts +4 -8
  54. package/lib/admin/configuration-designer/declarations.d.ts +13 -3
  55. package/lib/admin/configuration-designer/designer-element.component.d.ts +12 -8
  56. package/lib/admin/configuration-designer/designer-privileges.component.d.ts +34 -0
  57. package/lib/admin/configuration-designer/designer.base.d.ts +17 -16
  58. package/lib/admin/configuration-designer/designer.component.d.ts +2 -1
  59. package/lib/admin/configuration-designer/elements/analysis-view.component.d.ts +1 -1
  60. package/lib/admin/configuration-designer/elements/analysis-widget.component.d.ts +2 -2
  61. package/lib/admin/configuration-designer/elements/anomaly-rule.component.d.ts +1 -4
  62. package/lib/admin/configuration-designer/elements/cube.component.d.ts +4 -14
  63. package/lib/admin/configuration-designer/elements/documents-widget.component.d.ts +2 -3
  64. package/lib/admin/configuration-designer/elements/explore-view.component.d.ts +2 -2
  65. package/lib/admin/configuration-designer/elements/form.component.d.ts +6 -6
  66. package/lib/admin/configuration-designer/elements/guide.component.d.ts +2 -3
  67. package/lib/admin/configuration-designer/elements/matrix-view.component.d.ts +1 -1
  68. package/lib/admin/configuration-designer/elements/parallel-view.component.d.ts +2 -2
  69. package/lib/core/layout/layout.component.d.ts +3 -3
  70. package/lib/core/models.d.ts +0 -1
  71. package/lib/core/translations.d.ts +11 -1
  72. package/lib/system.module.d.ts +65 -64
  73. package/package.json +1 -1
@@ -1,7 +1,7 @@
1
1
  import { Component, Input } from '@angular/core';
2
2
  import { Subject } from 'rxjs';
3
3
  import { debounceTime, takeUntil, filter, map } from 'rxjs/operators';
4
- import { isArray, mapToArray } from '../../core/functions';
4
+ import { cleanup, mapToArray } from '../../core/functions';
5
5
  import { AXIS_VALUE_PATTERN } from '../../cube/cube.service';
6
6
  import * as i0 from "@angular/core";
7
7
  import * as i1 from "../../cube/cube.service";
@@ -31,9 +31,8 @@ export class DesignerCubeFilterComponent {
31
31
  this._ancestors = {};
32
32
  this._destroy = new Subject();
33
33
  }
34
- ngOnInit() {
35
- if (!this.model)
36
- this.model = {};
34
+ ngOnChanges(_changes) {
35
+ Object.keys(this.form.controls).forEach(k => this.form.removeControl(k, { emitEvent: false }));
37
36
  this.cube.axes.forEach(a => {
38
37
  if (a.hidden || a.selectionMode === 'None')
39
38
  return;
@@ -52,39 +51,24 @@ export class DesignerCubeFilterComponent {
52
51
  descendentOf = axis.descendentOf;
53
52
  }
54
53
  }
55
- const ctrl = this._fb.control(this.model[a.name]);
54
+ if (!this.sources[a.name] && a.selectionMode !== 'Pattern') {
55
+ this.sources[a.name] = this._service.values(this.cube.name, a.name).pipe(map(mapToArray));
56
+ }
57
+ const ctrl = this._fb.control(this);
56
58
  this.form.addControl(a.name, ctrl, { emitEvent: false });
57
59
  ctrl.valueChanges.pipe(filter(() => ctrl.valid), debounceTime(200), takeUntil(this._destroy)).subscribe(v => {
58
- if (v === null || v === undefined || (isArray(v) && !v.length))
59
- delete this.model[a.name];
60
- else
61
- this.model[a.name] = v;
62
60
  if (this._decendents[a.name])
63
61
  for (let axis of this._decendents[a.name]) {
64
62
  let deps = {};
65
63
  for (let name of this._ancestors[axis])
66
- if (this.model[name])
67
- deps[name] = this.model[name];
64
+ deps[name] = this.form.get(name).value;
65
+ cleanup(deps);
68
66
  this.sources[axis] = this._service.values(this.cube.name, axis, deps).
69
67
  pipe(map(mapToArray));
70
68
  }
71
69
  });
72
70
  });
73
71
  this.form.updateValueAndValidity({ emitEvent: false });
74
- this._initialize();
75
- }
76
- ngOnChanges(changes) {
77
- changes['exclude'] && !changes['exclude'].firstChange && this._initialize();
78
- }
79
- _initialize() {
80
- const values = {};
81
- this.cube?.axes?.forEach(a => {
82
- if (!this.sources[a.name] && a.selectionMode !== 'Pattern') {
83
- this.sources[a.name] = this._service.values(this.cube.name, a.name).pipe(map(mapToArray));
84
- }
85
- values[a.name] = this.model[a.name] || null;
86
- });
87
- this.form && this.form.patchValue(values, { emitEvent: false });
88
72
  }
89
73
  display(keyValue) {
90
74
  return keyValue ? keyValue.value : null;
@@ -98,15 +82,13 @@ export class DesignerCubeFilterComponent {
98
82
  }
99
83
  }
100
84
  DesignerCubeFilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: DesignerCubeFilterComponent, deps: [{ token: i1.CubeService }, { token: i2.DesignerRef }, { token: i3.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
101
- DesignerCubeFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: DesignerCubeFilterComponent, selector: "bizdoc-designer-cube-filter", inputs: { cube: "cube", model: "model", form: "form" }, usesOnChanges: true, ngImport: i0, template: "<div [formGroup]=\"form\" fxLayout=\"column\">\r\n <mat-form-field *ngFor=\"let a of cube.axes\" [ngSwitch]=\"a.selectionMode\" [attr.data-help]=\"'axis-'+a.name\">\r\n <ng-container *ngSwitchCase=\"'Pattern'\">\r\n <input matInput autocomplete=\"off\"\r\n [pattern]=\"pattern\" [autofocus]\r\n [formControlName]=\"a.name\" [placeholder]=\"a.title||a.name\" />\r\n <mat-error *ngIf=\"form.controls[a.name].invalid\">{{'SimplePatternErr' |translate}}</mat-error>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'Search'\">\r\n <input matInput autocomplete=\"off\" type=\"search\"\r\n [matAutocomplete]=\"segment\" #inp\r\n [placeholder]=\"a.title||a.name\" />\r\n <mat-autocomplete #segment [displayWith]=\"display\"\r\n (optionSelected)=\"change(a.name, $event)\">\r\n <mat-option *ngFor=\"let r of sources[a.name] | async | filter : 'value' : inp.value | slice:0:50\" [value]=\"r\">{{r.value}}</mat-option>\r\n </mat-autocomplete>\r\n <button mat-icon-button *ngIf=\"inp.value\" matSuffix aria-label=\"\" (click)=\"inp.value = ''; form.controls[a.name].setValue(null)\"><mat-icon>close</mat-icon></button>\r\n <mat-error *ngIf=\"form.controls[a.name].invalid\">{{'SimplePatternErr' |translate}}</mat-error>\r\n </ng-container>\r\n <mat-select [formControlName]=\"a.name\" [placeholder]=\"a.title||a.name\" [multiple]=\"a.selectionMode === 'Multiple'\" *ngSwitchDefault>\r\n <mat-option *ngIf=\"a.selectionMode !== 'Multiple'\">{{'All' | translate}}</mat-option>\r\n <mat-option *ngFor=\"let r of sources[a.name] | async\" [value]=\"r.key\">{{r.value}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n</div>\r\n", styles: ["form{padding:8px}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i4.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i4.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i5.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"] }, { kind: "component", type: i6.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { kind: "directive", type: i6.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i7.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i8.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i8.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i8.MatSuffix, selector: "[matSuffix]" }, { kind: "component", type: i9.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i10.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"] }, { kind: "directive", type: i11.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"] }, { kind: "component", type: i12.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.SlicePipe, name: "slice" }, { kind: "pipe", type: i13.FilterPipe, name: "filter" }, { kind: "pipe", type: i14.TranslatePipe, name: "translate" }] });
85
+ DesignerCubeFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: DesignerCubeFilterComponent, selector: "bizdoc-designer-cube-filter", inputs: { cube: "cube", form: "form" }, usesOnChanges: true, ngImport: i0, template: "<h2 class=\"mat-title\">{{'Filters'|translate}}</h2>\r\n<div [formGroup]=\"form\" fxLayout=\"column\">\r\n <mat-form-field *ngFor=\"let a of cube.axes\" [ngSwitch]=\"a.selectionMode\" [attr.data-help]=\"'axis-'+a.name\">\r\n <ng-container *ngSwitchCase=\"'Pattern'\">\r\n <input matInput autocomplete=\"off\"\r\n [pattern]=\"pattern\" [autofocus]\r\n [formControlName]=\"a.name\" [placeholder]=\"a.title||a.name\" />\r\n <mat-error *ngIf=\"form.controls[a.name].invalid\">{{'SimplePatternErr' |translate}}</mat-error>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'Search'\">\r\n <input matInput autocomplete=\"off\" type=\"search\"\r\n [matAutocomplete]=\"segment\" #inp\r\n [placeholder]=\"a.title||a.name\" />\r\n <mat-autocomplete #segment [displayWith]=\"display\"\r\n (optionSelected)=\"change(a.name, $event)\">\r\n <mat-option *ngFor=\"let r of sources[a.name] | async | filter : 'value' : inp.value | slice:0:50\" [value]=\"r\">{{r.value}}</mat-option>\r\n </mat-autocomplete>\r\n <button mat-icon-button *ngIf=\"inp.value\" matSuffix aria-label=\"\" (click)=\"inp.value = ''; form.controls[a.name].setValue(null)\"><mat-icon>close</mat-icon></button>\r\n <mat-error *ngIf=\"form.controls[a.name].invalid\">{{'SimplePatternErr' |translate}}</mat-error>\r\n </ng-container>\r\n <mat-select [formControlName]=\"a.name\" [placeholder]=\"a.title||a.name\" [multiple]=\"a.selectionMode === 'Multiple'\" *ngSwitchDefault>\r\n <mat-option *ngIf=\"a.selectionMode !== 'Multiple'\">{{'All' | translate}}</mat-option>\r\n <mat-option *ngFor=\"let r of sources[a.name] | async\" [value]=\"r.key\">{{r.value}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n</div>\r\n", styles: ["form{padding:8px}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i4.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i4.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i5.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"] }, { kind: "component", type: i6.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { kind: "directive", type: i6.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i7.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i8.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i8.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i8.MatSuffix, selector: "[matSuffix]" }, { kind: "component", type: i9.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i10.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"] }, { kind: "directive", type: i11.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"] }, { kind: "component", type: i12.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.SlicePipe, name: "slice" }, { kind: "pipe", type: i13.FilterPipe, name: "filter" }, { kind: "pipe", type: i14.TranslatePipe, name: "translate" }] });
102
86
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: DesignerCubeFilterComponent, decorators: [{
103
87
  type: Component,
104
- args: [{ selector: 'bizdoc-designer-cube-filter', template: "<div [formGroup]=\"form\" fxLayout=\"column\">\r\n <mat-form-field *ngFor=\"let a of cube.axes\" [ngSwitch]=\"a.selectionMode\" [attr.data-help]=\"'axis-'+a.name\">\r\n <ng-container *ngSwitchCase=\"'Pattern'\">\r\n <input matInput autocomplete=\"off\"\r\n [pattern]=\"pattern\" [autofocus]\r\n [formControlName]=\"a.name\" [placeholder]=\"a.title||a.name\" />\r\n <mat-error *ngIf=\"form.controls[a.name].invalid\">{{'SimplePatternErr' |translate}}</mat-error>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'Search'\">\r\n <input matInput autocomplete=\"off\" type=\"search\"\r\n [matAutocomplete]=\"segment\" #inp\r\n [placeholder]=\"a.title||a.name\" />\r\n <mat-autocomplete #segment [displayWith]=\"display\"\r\n (optionSelected)=\"change(a.name, $event)\">\r\n <mat-option *ngFor=\"let r of sources[a.name] | async | filter : 'value' : inp.value | slice:0:50\" [value]=\"r\">{{r.value}}</mat-option>\r\n </mat-autocomplete>\r\n <button mat-icon-button *ngIf=\"inp.value\" matSuffix aria-label=\"\" (click)=\"inp.value = ''; form.controls[a.name].setValue(null)\"><mat-icon>close</mat-icon></button>\r\n <mat-error *ngIf=\"form.controls[a.name].invalid\">{{'SimplePatternErr' |translate}}</mat-error>\r\n </ng-container>\r\n <mat-select [formControlName]=\"a.name\" [placeholder]=\"a.title||a.name\" [multiple]=\"a.selectionMode === 'Multiple'\" *ngSwitchDefault>\r\n <mat-option *ngIf=\"a.selectionMode !== 'Multiple'\">{{'All' | translate}}</mat-option>\r\n <mat-option *ngFor=\"let r of sources[a.name] | async\" [value]=\"r.key\">{{r.value}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n</div>\r\n", styles: ["form{padding:8px}\n"] }]
88
+ args: [{ selector: 'bizdoc-designer-cube-filter', template: "<h2 class=\"mat-title\">{{'Filters'|translate}}</h2>\r\n<div [formGroup]=\"form\" fxLayout=\"column\">\r\n <mat-form-field *ngFor=\"let a of cube.axes\" [ngSwitch]=\"a.selectionMode\" [attr.data-help]=\"'axis-'+a.name\">\r\n <ng-container *ngSwitchCase=\"'Pattern'\">\r\n <input matInput autocomplete=\"off\"\r\n [pattern]=\"pattern\" [autofocus]\r\n [formControlName]=\"a.name\" [placeholder]=\"a.title||a.name\" />\r\n <mat-error *ngIf=\"form.controls[a.name].invalid\">{{'SimplePatternErr' |translate}}</mat-error>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'Search'\">\r\n <input matInput autocomplete=\"off\" type=\"search\"\r\n [matAutocomplete]=\"segment\" #inp\r\n [placeholder]=\"a.title||a.name\" />\r\n <mat-autocomplete #segment [displayWith]=\"display\"\r\n (optionSelected)=\"change(a.name, $event)\">\r\n <mat-option *ngFor=\"let r of sources[a.name] | async | filter : 'value' : inp.value | slice:0:50\" [value]=\"r\">{{r.value}}</mat-option>\r\n </mat-autocomplete>\r\n <button mat-icon-button *ngIf=\"inp.value\" matSuffix aria-label=\"\" (click)=\"inp.value = ''; form.controls[a.name].setValue(null)\"><mat-icon>close</mat-icon></button>\r\n <mat-error *ngIf=\"form.controls[a.name].invalid\">{{'SimplePatternErr' |translate}}</mat-error>\r\n </ng-container>\r\n <mat-select [formControlName]=\"a.name\" [placeholder]=\"a.title||a.name\" [multiple]=\"a.selectionMode === 'Multiple'\" *ngSwitchDefault>\r\n <mat-option *ngIf=\"a.selectionMode !== 'Multiple'\">{{'All' | translate}}</mat-option>\r\n <mat-option *ngFor=\"let r of sources[a.name] | async\" [value]=\"r.key\">{{r.value}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n</div>\r\n", styles: ["form{padding:8px}\n"] }]
105
89
  }], ctorParameters: function () { return [{ type: i1.CubeService }, { type: i2.DesignerRef }, { type: i3.FormBuilder }]; }, propDecorators: { cube: [{
106
90
  type: Input
107
- }], model: [{
108
- type: Input
109
91
  }], form: [{
110
92
  type: Input
111
93
  }] } });
112
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3ViZS1heGVzLWZpbHRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2FkbWluL2NvbmZpZ3VyYXRpb24tZGVzaWduZXIvY3ViZS1heGVzLWZpbHRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2FkbWluL2NvbmZpZ3VyYXRpb24tZGVzaWduZXIvY3ViZS1heGVzLWZpbHRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBNkQsTUFBTSxlQUFlLENBQUM7QUFFcEgsT0FBTyxFQUFFLE9BQU8sRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUczRCxPQUFPLEVBQUUsa0JBQWtCLEVBQWUsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7OztBQVExRSxzQkFBc0I7QUFDdEIsTUFBTSxPQUFPLDJCQUEyQjtJQTREdEMsa0JBQWtCO0lBQ2xCLFlBQTZCLFFBQXFCLEVBQ3hDLElBQWlCLEVBQ1IsR0FBZ0I7UUFGTixhQUFRLEdBQVIsUUFBUSxDQUFhO1FBQ3hDLFNBQUksR0FBSixJQUFJLENBQWE7UUFDUixRQUFHLEdBQUgsR0FBRyxDQUFhO1FBOUQxQixZQUFPLEdBQUcsa0JBQWtCLENBQUM7UUFJN0IsWUFBTyxHQUEyRCxFQUFFLENBQUM7UUFDN0QsZ0JBQVcsR0FBRyxFQUFrQyxDQUFDO1FBQ2pELGVBQVUsR0FBRyxFQUFrQyxDQUFDO1FBQ2hELGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFD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Q0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFNRCxPQUFPLENBQUMsUUFBUTtRQUNkLE9BQU8sUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDMUMsQ0FBQztJQUNELE1BQU0sQ0FBQyxJQUFZLEVBQUUsR0FBaUM7UUFDcEQsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFDRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzNCLENBQUM7O3dIQTFFVSwyQkFBMkI7NEdBQTNCLDJCQUEyQixnSkNoQnhDLDB1REF5QkE7MkZEVGEsMkJBQTJCO2tCQU52QyxTQUFTOytCQUNFLDZCQUE2QjtzSkFPOUIsSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIE91dHB1dCwgT25EZXN0cm95LCBFdmVudEVtaXR0ZXIsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAsIEZvcm1CdWlsZGVyIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgdGFrZVVudGlsLCBmaWx0ZXIsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgaXNBcnJheSwgbWFwVG9BcnJheSB9IGZyb20gJy4uLy4uL2NvcmUvZnVuY3Rpb25zJztcclxuaW1wb3J0IHsgQXhlc01hcCB9IGZyb20gJy4uLy4uL2NvcmUvbW9kZWxzJztcclxuaW1wb3J0IHsgTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZSc7XHJcbmltcG9ydCB7IEFYSVNfVkFMVUVfUEFUVEVSTiwgQ3ViZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9jdWJlL2N1YmUuc2VydmljZSc7XHJcbmltcG9ydCB7IERlc2lnbmVyUmVmLCBFbGVtZW50TW9kZWwgfSBmcm9tICcuL2RlY2xhcmF0aW9ucyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2JpemRvYy1kZXNpZ25lci1jdWJlLWZpbHRlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2N1YmUtYXhlcy1maWx0ZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2N1YmUtYXhlcy1maWx0ZXIuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG4vKiogZmlsdGVyIGNvbXBvbmVudCovXHJcbmV4cG9ydCBjbGFzcyBEZXNpZ25lckN1YmVGaWx0ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcclxuICByZWFkb25seSBwYXR0ZXJuID0gQVhJU19WQUxVRV9QQVRURVJOO1xyXG4gIEBJbnB1dCgpIGN1YmUhOiBFbGVtZW50TW9kZWw7XHJcbiAgQElucHV0KCkgbW9kZWw6IEF4ZXNNYXA7XHJcbiAgQElucHV0KCkgZm9ybSE6IEZvcm1Hcm91cDtcclxuICByZWFkb25seSBzb3VyY2VzOiB7IFtheGlzOiBzdHJpbmddOiBPYnNlcnZhYmxlPHsgW2tleTogc3RyaW5nXTogYW55IH0+IH0gPSB7fTtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9kZWNlbmRlbnRzID0ge30gYXMgeyBbbmFtZTogc3RyaW5nXTogc3RyaW5nW10gfTtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9hbmNlc3RvcnMgPSB7fSBhcyB7IFtuYW1lOiBzdHJpbmddOiBzdHJpbmdbXSB9O1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3kgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLm1vZGVsKSB0aGlzLm1vZGVsID0ge307XHJcbiAgICB0aGlzLmN1YmUuYXhlcy5mb3JFYWNoKGEgPT4ge1xyXG4gICAgICBpZiAoYS5oaWRkZW4gfHwgYS5zZWxlY3Rpb25Nb2RlID09PSAnTm9uZScpIHJldHVybjtcclxuICAgICAgbGV0IHsgZGVzY2VuZGVudE9mIH0gPSBhO1xyXG4gICAgICBpZiAoZGVzY2VuZGVudE9mKSB7XHJcbiAgICAgICAgbGV0IGFuY2VzdG9ycyA9IHRoaXMuX2FuY2VzdG9yc1thLm5hbWVdID0gW107XHJcbiAgICAgICAgd2hpbGUgKGRlc2NlbmRlbnRPZikge1xyXG4gICAgICAgICAgbGV0IGF4aXMgPSB0aGlzLmN1YmUuYXhlcy5maW5kKGEgPT4gYS5uYW1lID09PSBkZXNjZW5kZW50T2YpO1xyXG4gICAgICAgICAgYW5jZXN0b3JzLnB1c2goYXhpcy5uYW1lKTtcclxuICAgICAgICAgIGlmIChhLnNlbGVjdGlvbk1vZGUgIT09ICdQYXR0ZXJuJykge1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMuX2RlY2VuZGVudHNbZGVzY2VuZGVudE9mXSkgdGhpcy5fZGVjZW5kZW50c1tkZXNjZW5kZW50T2ZdID0gW2EubmFtZV07XHJcbiAgICAgICAgICAgIGVsc2UgdGhpcy5fZGVjZW5kZW50c1tkZXNjZW5kZW50T2ZdLnB1c2goYS5uYW1lKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGRlc2NlbmRlbnRPZiA9IGF4aXMuZGVzY2VuZGVudE9mO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBjb25zdCBjdHJsID0gdGhpcy5fZmIuY29udHJvbCh0aGlzLm1vZGVsW2EubmFtZV0pO1xyXG4gICAgICB0aGlzLmZvcm0uYWRkQ29udHJvbChhLm5hbWUsIGN0cmwsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICAgICAgY3RybC52YWx1ZUNoYW5nZXMucGlwZShmaWx0ZXIoKCkgPT4gY3RybC52YWxpZCksIGRlYm91bmNlVGltZSgyMDApLFxyXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSkuc3Vic2NyaWJlKHYgPT4ge1xyXG4gICAgICAgICAgaWYgKHYgPT09IG51bGwgfHwgdiA9PT0gdW5kZWZpbmVkIHx8IChpc0FycmF5KHYpICYmICF2Lmxlbmd0aCkpXHJcbiAgICAgICAgICAgIGRlbGV0ZSB0aGlzLm1vZGVsW2EubmFtZV07XHJcbiAgICAgICAgICBlbHNlXHJcbiAgICAgICAgICAgIHRoaXMubW9kZWxbYS5uYW1lXSA9IHY7XHJcbiAgICAgICAgICBpZiAodGhpcy5fZGVjZW5kZW50c1thLm5hbWVdKVxyXG4gICAgICAgICAgICBmb3IgKGxldCBheGlzIG9mIHRoaXMuX2RlY2VuZGVudHNbYS5uYW1lXSkge1xyXG4gICAgICAgICAgICAgIGxldCBkZXBzID0ge307XHJcbiAgICAgICAgICAgICAgZm9yIChsZXQgbmFtZSBvZiB0aGlzLl9hbmNlc3RvcnNbYXhpc10pXHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5tb2RlbFtuYW1lXSkgZGVwc1tuYW1lXSA9IHRoaXMubW9kZWxbbmFtZV07XHJcbiAgICAgICAgICAgICAgdGhpcy5zb3VyY2VzW2F4aXNdID0gdGhpcy5fc2VydmljZS52YWx1ZXModGhpcy5jdWJlLm5hbWUsIGF4aXMsIGRlcHMpLlxyXG4gICAgICAgICAgICAgICAgcGlwZShtYXAobWFwVG9BcnJheSkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuZm9ybS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICAgIHRoaXMuX2luaXRpYWxpemUoKTtcclxuICB9XHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgY2hhbmdlc1snZXhjbHVkZSddICYmICFjaGFuZ2VzWydleGNsdWRlJ10uZmlyc3RDaGFuZ2UgJiYgdGhpcy5faW5pdGlhbGl6ZSgpO1xyXG4gIH1cclxuICBwcml2YXRlIF9pbml0aWFsaXplKCkge1xyXG4gICAgY29uc3QgdmFsdWVzID0ge307XHJcbiAgICB0aGlzLmN1YmU/LmF4ZXM/LmZvckVhY2goYSA9PiB7XHJcbiAgICAgIGlmICghdGhpcy5zb3VyY2VzW2EubmFtZV0gJiYgYS5zZWxlY3Rpb25Nb2RlICE9PSAnUGF0dGVybicpIHtcclxuICAgICAgICB0aGlzLnNvdXJjZXNbYS5uYW1lXSA9IHRoaXMuX3NlcnZpY2UudmFsdWVzKHRoaXMuY3ViZS5uYW1lLCBhLm5hbWUpLnBpcGUobWFwKG1hcFRvQXJyYXkpKTtcclxuICAgICAgfVxyXG4gICAgICB2YWx1ZXNbYS5uYW1lXSA9IHRoaXMubW9kZWxbYS5uYW1lXSB8fCBudWxsO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLmZvcm0gJiYgdGhpcy5mb3JtLnBhdGNoVmFsdWUodmFsdWVzLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcbiAgfVxyXG4gIC8qKiBmaWx0ZXIgY3RvciAqL1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgX3NlcnZpY2U6IEN1YmVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfcmVmOiBEZXNpZ25lclJlZixcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2ZiOiBGb3JtQnVpbGRlcikge1xyXG4gIH1cclxuICBkaXNwbGF5KGtleVZhbHVlKSB7XHJcbiAgICByZXR1cm4ga2V5VmFsdWUgPyBrZXlWYWx1ZS52YWx1ZSA6IG51bGw7XHJcbiAgfVxyXG4gIGNoYW5nZShheGlzOiBzdHJpbmcsIGV2dDogTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCkge1xyXG4gICAgdGhpcy5mb3JtLmNvbnRyb2xzW2F4aXNdLnNldFZhbHVlKGV2dC5vcHRpb24udmFsdWUua2V5KTtcclxuICB9XHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9kZXN0cm95Lm5leHQoKTtcclxuICAgIHRoaXMuX2Rlc3Ryb3kuY29tcGxldGUoKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBbZm9ybUdyb3VwXT1cImZvcm1cIiBmeExheW91dD1cImNvbHVtblwiPlxyXG4gIDxtYXQtZm9ybS1maWVsZCAqbmdGb3I9XCJsZXQgYSBvZiBjdWJlLmF4ZXNcIiBbbmdTd2l0Y2hdPVwiYS5zZWxlY3Rpb25Nb2RlXCIgW2F0dHIuZGF0YS1oZWxwXT1cIidheGlzLScrYS5uYW1lXCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInUGF0dGVybidcIj5cclxuICAgICAgPGlucHV0IG1hdElucHV0IGF1dG9jb21wbGV0ZT1cIm9mZlwiXHJcbiAgICAgICAgICAgICBbcGF0dGVybl09XCJwYXR0ZXJuXCIgW2F1dG9mb2N1c11cclxuICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiYS5uYW1lXCIgW3BsYWNlaG9sZGVyXT1cImEudGl0bGV8fGEubmFtZVwiIC8+XHJcbiAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJmb3JtLmNvbnRyb2xzW2EubmFtZV0uaW52YWxpZFwiPnt7J1NpbXBsZVBhdHRlcm5FcnInIHx0cmFuc2xhdGV9fTwvbWF0LWVycm9yPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInU2VhcmNoJ1wiPlxyXG4gICAgICA8aW5wdXQgbWF0SW5wdXQgYXV0b2NvbXBsZXRlPVwib2ZmXCIgdHlwZT1cInNlYXJjaFwiXHJcbiAgICAgICAgICAgICBbbWF0QXV0b2NvbXBsZXRlXT1cInNlZ21lbnRcIiAjaW5wXHJcbiAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiYS50aXRsZXx8YS5uYW1lXCIgLz5cclxuICAgICAgPG1hdC1hdXRvY29tcGxldGUgI3NlZ21lbnQgW2Rpc3BsYXlXaXRoXT1cImRpc3BsYXlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAob3B0aW9uU2VsZWN0ZWQpPVwiY2hhbmdlKGEubmFtZSwgJGV2ZW50KVwiPlxyXG4gICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCByIG9mIHNvdXJjZXNbYS5uYW1lXSB8IGFzeW5jIHwgZmlsdGVyIDogJ3ZhbHVlJyA6IGlucC52YWx1ZSB8IHNsaWNlOjA6NTBcIiBbdmFsdWVdPVwiclwiPnt7ci52YWx1ZX19PC9tYXQtb3B0aW9uPlxyXG4gICAgICA8L21hdC1hdXRvY29tcGxldGU+XHJcbiAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uICpuZ0lmPVwiaW5wLnZhbHVlXCIgbWF0U3VmZml4IGFyaWEtbGFiZWw9XCJcIiAoY2xpY2spPVwiaW5wLnZhbHVlID0gJyc7IGZvcm0uY29udHJvbHNbYS5uYW1lXS5zZXRWYWx1ZShudWxsKVwiPjxtYXQtaWNvbj5jbG9zZTwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJmb3JtLmNvbnRyb2xzW2EubmFtZV0uaW52YWxpZFwiPnt7J1NpbXBsZVBhdHRlcm5FcnInIHx0cmFuc2xhdGV9fTwvbWF0LWVycm9yPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8bWF0LXNlbGVjdCBbZm9ybUNvbnRyb2xOYW1lXT1cImEubmFtZVwiIFtwbGFjZWhvbGRlcl09XCJhLnRpdGxlfHxhLm5hbWVcIiBbbXVsdGlwbGVdPVwiYS5zZWxlY3Rpb25Nb2RlID09PSAnTXVsdGlwbGUnXCIgKm5nU3dpdGNoRGVmYXVsdD5cclxuICAgICAgPG1hdC1vcHRpb24gKm5nSWY9XCJhLnNlbGVjdGlvbk1vZGUgIT09ICdNdWx0aXBsZSdcIj57eydBbGwnIHwgdHJhbnNsYXRlfX08L21hdC1vcHRpb24+XHJcbiAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCByIG9mIHNvdXJjZXNbYS5uYW1lXSB8IGFzeW5jXCIgW3ZhbHVlXT1cInIua2V5XCI+e3tyLnZhbHVlfX08L21hdC1vcHRpb24+XHJcbiAgICA8L21hdC1zZWxlY3Q+XHJcbiAgPC9tYXQtZm9ybS1maWVsZD5cclxuPC9kaXY+XHJcbiJdfQ==
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3ViZS1heGVzLWZpbHRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2FkbWluL2NvbmZpZ3VyYXRpb24tZGVzaWduZXIvY3ViZS1heGVzLWZpbHRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2FkbWluL2NvbmZpZ3VyYXRpb24tZGVzaWduZXIvY3ViZS1heGVzLWZpbHRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBdUMsTUFBTSxlQUFlLENBQUM7QUFFdEYsT0FBTyxFQUFFLE9BQU8sRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUUzRCxPQUFPLEVBQUUsa0JBQWtCLEVBQWUsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7OztBQVExRSxzQkFBc0I7QUFDdEIsTUFBTSxPQUFPLDJCQUEyQjtJQTZDdEMsa0JBQWtCO0lBQ2xCLFlBQTZCLFFBQXFCLEVBQ3hDLElBQWlCLEVBQ1IsR0FBZ0I7UUFGTixhQUFRLEdBQVIsUUFBUSxDQUFhO1FBQ3hDLFNBQUksR0FBSixJQUFJLENBQWE7UUFDUixRQUFHLEdBQUgsR0FBRyxDQUFhO1FBL0MxQixZQUFPLEdBQUcsa0JBQWtCLENBQUM7UUFHN0IsWUFBTyxHQUEyRCxFQUFFLENBQUM7UUFDN0QsZ0JBQVcsR0FBRyxFQUFrQyxDQUFDO1FBQ2pELGVBQVUsR0FBRyxFQUFrQyxDQUFDO1FBQ2hELGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBMENoRCxDQUFDO0lBekNELFdBQVcsQ0FBQyxRQUF1QjtRQUNqQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxFQUFFLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUM5RixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDekIsSUFBSSxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxhQUFhLEtBQUssTUFBTTtnQkFBRSxPQUFPO1lBQ25ELElBQUksRUFBRSxZQUFZLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDekIsSUFBSSxZQUFZLEVBQUU7Z0JBQ2hCLElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztnQkFDN0MsT0FBTyxZQUFZLEVBQUU7b0JBQ25CLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssWUFBWSxDQUFDLENBQUM7b0JBQzdELFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUMxQixJQUFJLENBQUMsQ0FBQyxhQUFhLEtBQUssU0FBUyxFQUFFO3dCQUNqQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUM7NEJBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQzs7NEJBQzFFLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztxQkFDbEQ7b0JBQ0QsWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7aUJBQ2xDO2FBQ0Y7WUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLGFBQWEsS0FBSyxTQUFTLEVBQUU7Z0JBQzFELElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7YUFDM0Y7WUFDRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNwQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1lBQ3pELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsWUFBWSxDQUFDLEdBQUcsQ0FBQyxFQUNoRSxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUN0QyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztvQkFDMUIsS0FBSyxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRTt3QkFDekMsSUFBSSxJQUFJLEdBQUcsRUFBRSxDQUFDO3dCQUNkLEtBQUssSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUM7NEJBQ3BDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQWlCLENBQUMsS0FBSyxDQUFDO3dCQUMxRCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7d0JBQ2QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDOzRCQUNuRSxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7cUJBQ3pCO1lBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBTUQsT0FBTyxDQUFDLFFBQVE7UUFDZCxPQUFPLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQzFDLENBQUM7SUFDRCxNQUFNLENBQUMsSUFBWSxFQUFFLEdBQWlDO1FBQ3BELElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBQ0QsV0FBVztRQUNULElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQixDQUFDOzt3SEEzRFUsMkJBQTJCOzRHQUEzQiwyQkFBMkIsZ0lDZnhDLGt5REEwQkE7MkZEWGEsMkJBQTJCO2tCQU52QyxTQUFTOytCQUNFLDZCQUE2QjtzSkFPOUIsSUFBSTtzQkFBWixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCwgRm9ybUJ1aWxkZXIsIEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgdGFrZVVudGlsLCBmaWx0ZXIsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgY2xlYW51cCwgbWFwVG9BcnJheSB9IGZyb20gJy4uLy4uL2NvcmUvZnVuY3Rpb25zJztcclxuaW1wb3J0IHsgTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZSc7XHJcbmltcG9ydCB7IEFYSVNfVkFMVUVfUEFUVEVSTiwgQ3ViZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9jdWJlL2N1YmUuc2VydmljZSc7XHJcbmltcG9ydCB7IERlc2lnbmVyUmVmLCBFbGVtZW50TW9kZWwgfSBmcm9tICcuL2RlY2xhcmF0aW9ucyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2JpemRvYy1kZXNpZ25lci1jdWJlLWZpbHRlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2N1YmUtYXhlcy1maWx0ZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2N1YmUtYXhlcy1maWx0ZXIuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG4vKiogZmlsdGVyIGNvbXBvbmVudCovXHJcbmV4cG9ydCBjbGFzcyBEZXNpZ25lckN1YmVGaWx0ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XHJcbiAgcmVhZG9ubHkgcGF0dGVybiA9IEFYSVNfVkFMVUVfUEFUVEVSTjtcclxuICBASW5wdXQoKSBjdWJlITogRWxlbWVudE1vZGVsO1xyXG4gIEBJbnB1dCgpIGZvcm0hOiBGb3JtR3JvdXA7XHJcbiAgcmVhZG9ubHkgc291cmNlczogeyBbYXhpczogc3RyaW5nXTogT2JzZXJ2YWJsZTx7IFtrZXk6IHN0cmluZ106IGFueSB9PiB9ID0ge307XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfZGVjZW5kZW50cyA9IHt9IGFzIHsgW25hbWU6IHN0cmluZ106IHN0cmluZ1tdIH07XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfYW5jZXN0b3JzID0ge30gYXMgeyBbbmFtZTogc3RyaW5nXTogc3RyaW5nW10gfTtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBuZ09uQ2hhbmdlcyhfY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgT2JqZWN0LmtleXModGhpcy5mb3JtLmNvbnRyb2xzKS5mb3JFYWNoKGsgPT4gdGhpcy5mb3JtLnJlbW92ZUNvbnRyb2woaywgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pKVxyXG4gICAgdGhpcy5jdWJlLmF4ZXMuZm9yRWFjaChhID0+IHtcclxuICAgICAgaWYgKGEuaGlkZGVuIHx8IGEuc2VsZWN0aW9uTW9kZSA9PT0gJ05vbmUnKSByZXR1cm47XHJcbiAgICAgIGxldCB7IGRlc2NlbmRlbnRPZiB9ID0gYTtcclxuICAgICAgaWYgKGRlc2NlbmRlbnRPZikge1xyXG4gICAgICAgIGxldCBhbmNlc3RvcnMgPSB0aGlzLl9hbmNlc3RvcnNbYS5uYW1lXSA9IFtdO1xyXG4gICAgICAgIHdoaWxlIChkZXNjZW5kZW50T2YpIHtcclxuICAgICAgICAgIGxldCBheGlzID0gdGhpcy5jdWJlLmF4ZXMuZmluZChhID0+IGEubmFtZSA9PT0gZGVzY2VuZGVudE9mKTtcclxuICAgICAgICAgIGFuY2VzdG9ycy5wdXNoKGF4aXMubmFtZSk7XHJcbiAgICAgICAgICBpZiAoYS5zZWxlY3Rpb25Nb2RlICE9PSAnUGF0dGVybicpIHtcclxuICAgICAgICAgICAgaWYgKCF0aGlzLl9kZWNlbmRlbnRzW2Rlc2NlbmRlbnRPZl0pIHRoaXMuX2RlY2VuZGVudHNbZGVzY2VuZGVudE9mXSA9IFthLm5hbWVdO1xyXG4gICAgICAgICAgICBlbHNlIHRoaXMuX2RlY2VuZGVudHNbZGVzY2VuZGVudE9mXS5wdXNoKGEubmFtZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBkZXNjZW5kZW50T2YgPSBheGlzLmRlc2NlbmRlbnRPZjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgaWYgKCF0aGlzLnNvdXJjZXNbYS5uYW1lXSAmJiBhLnNlbGVjdGlvbk1vZGUgIT09ICdQYXR0ZXJuJykge1xyXG4gICAgICAgIHRoaXMuc291cmNlc1thLm5hbWVdID0gdGhpcy5fc2VydmljZS52YWx1ZXModGhpcy5jdWJlLm5hbWUsIGEubmFtZSkucGlwZShtYXAobWFwVG9BcnJheSkpO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IGN0cmwgPSB0aGlzLl9mYi5jb250cm9sKHRoaXMpO1xyXG4gICAgICB0aGlzLmZvcm0uYWRkQ29udHJvbChhLm5hbWUsIGN0cmwsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICAgICAgY3RybC52YWx1ZUNoYW5nZXMucGlwZShmaWx0ZXIoKCkgPT4gY3RybC52YWxpZCksIGRlYm91bmNlVGltZSgyMDApLFxyXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSkuc3Vic2NyaWJlKHYgPT4ge1xyXG4gICAgICAgICAgaWYgKHRoaXMuX2RlY2VuZGVudHNbYS5uYW1lXSlcclxuICAgICAgICAgICAgZm9yIChsZXQgYXhpcyBvZiB0aGlzLl9kZWNlbmRlbnRzW2EubmFtZV0pIHtcclxuICAgICAgICAgICAgICBsZXQgZGVwcyA9IHt9O1xyXG4gICAgICAgICAgICAgIGZvciAobGV0IG5hbWUgb2YgdGhpcy5fYW5jZXN0b3JzW2F4aXNdKVxyXG4gICAgICAgICAgICAgICAgZGVwc1tuYW1lXSA9ICh0aGlzLmZvcm0uZ2V0KG5hbWUpIGFzIEZvcm1Db250cm9sKS52YWx1ZTtcclxuICAgICAgICAgICAgICBjbGVhbnVwKGRlcHMpO1xyXG4gICAgICAgICAgICAgIHRoaXMuc291cmNlc1theGlzXSA9IHRoaXMuX3NlcnZpY2UudmFsdWVzKHRoaXMuY3ViZS5uYW1lLCBheGlzLCBkZXBzKS5cclxuICAgICAgICAgICAgICAgIHBpcGUobWFwKG1hcFRvQXJyYXkpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLmZvcm0udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcbiAgfVxyXG4gIC8qKiBmaWx0ZXIgY3RvciAqL1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgX3NlcnZpY2U6IEN1YmVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfcmVmOiBEZXNpZ25lclJlZixcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2ZiOiBGb3JtQnVpbGRlcikge1xyXG4gIH1cclxuICBkaXNwbGF5KGtleVZhbHVlKSB7XHJcbiAgICByZXR1cm4ga2V5VmFsdWUgPyBrZXlWYWx1ZS52YWx1ZSA6IG51bGw7XHJcbiAgfVxyXG4gIGNoYW5nZShheGlzOiBzdHJpbmcsIGV2dDogTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCkge1xyXG4gICAgdGhpcy5mb3JtLmNvbnRyb2xzW2F4aXNdLnNldFZhbHVlKGV2dC5vcHRpb24udmFsdWUua2V5KTtcclxuICB9XHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9kZXN0cm95Lm5leHQoKTtcclxuICAgIHRoaXMuX2Rlc3Ryb3kuY29tcGxldGUoKTtcclxuICB9XHJcbn1cclxuIiwiPGgyIGNsYXNzPVwibWF0LXRpdGxlXCI+e3snRmlsdGVycyd8dHJhbnNsYXRlfX08L2gyPlxyXG48ZGl2IFtmb3JtR3JvdXBdPVwiZm9ybVwiIGZ4TGF5b3V0PVwiY29sdW1uXCI+XHJcbiAgPG1hdC1mb3JtLWZpZWxkICpuZ0Zvcj1cImxldCBhIG9mIGN1YmUuYXhlc1wiIFtuZ1N3aXRjaF09XCJhLnNlbGVjdGlvbk1vZGVcIiBbYXR0ci5kYXRhLWhlbHBdPVwiJ2F4aXMtJythLm5hbWVcIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidQYXR0ZXJuJ1wiPlxyXG4gICAgICA8aW5wdXQgbWF0SW5wdXQgYXV0b2NvbXBsZXRlPVwib2ZmXCJcclxuICAgICAgICAgICAgIFtwYXR0ZXJuXT1cInBhdHRlcm5cIiBbYXV0b2ZvY3VzXVxyXG4gICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJhLm5hbWVcIiBbcGxhY2Vob2xkZXJdPVwiYS50aXRsZXx8YS5uYW1lXCIgLz5cclxuICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImZvcm0uY29udHJvbHNbYS5uYW1lXS5pbnZhbGlkXCI+e3snU2ltcGxlUGF0dGVybkVycicgfHRyYW5zbGF0ZX19PC9tYXQtZXJyb3I+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidTZWFyY2gnXCI+XHJcbiAgICAgIDxpbnB1dCBtYXRJbnB1dCBhdXRvY29tcGxldGU9XCJvZmZcIiB0eXBlPVwic2VhcmNoXCJcclxuICAgICAgICAgICAgIFttYXRBdXRvY29tcGxldGVdPVwic2VnbWVudFwiICNpbnBcclxuICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJhLnRpdGxlfHxhLm5hbWVcIiAvPlxyXG4gICAgICA8bWF0LWF1dG9jb21wbGV0ZSAjc2VnbWVudCBbZGlzcGxheVdpdGhdPVwiZGlzcGxheVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChvcHRpb25TZWxlY3RlZCk9XCJjaGFuZ2UoYS5uYW1lLCAkZXZlbnQpXCI+XHJcbiAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IHIgb2Ygc291cmNlc1thLm5hbWVdIHwgYXN5bmMgfCBmaWx0ZXIgOiAndmFsdWUnIDogaW5wLnZhbHVlIHwgc2xpY2U6MDo1MFwiIFt2YWx1ZV09XCJyXCI+e3tyLnZhbHVlfX08L21hdC1vcHRpb24+XHJcbiAgICAgIDwvbWF0LWF1dG9jb21wbGV0ZT5cclxuICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKm5nSWY9XCJpbnAudmFsdWVcIiBtYXRTdWZmaXggYXJpYS1sYWJlbD1cIlwiIChjbGljayk9XCJpbnAudmFsdWUgPSAnJzsgZm9ybS5jb250cm9sc1thLm5hbWVdLnNldFZhbHVlKG51bGwpXCI+PG1hdC1pY29uPmNsb3NlPC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImZvcm0uY29udHJvbHNbYS5uYW1lXS5pbnZhbGlkXCI+e3snU2ltcGxlUGF0dGVybkVycicgfHRyYW5zbGF0ZX19PC9tYXQtZXJyb3I+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDxtYXQtc2VsZWN0IFtmb3JtQ29udHJvbE5hbWVdPVwiYS5uYW1lXCIgW3BsYWNlaG9sZGVyXT1cImEudGl0bGV8fGEubmFtZVwiIFttdWx0aXBsZV09XCJhLnNlbGVjdGlvbk1vZGUgPT09ICdNdWx0aXBsZSdcIiAqbmdTd2l0Y2hEZWZhdWx0PlxyXG4gICAgICA8bWF0LW9wdGlvbiAqbmdJZj1cImEuc2VsZWN0aW9uTW9kZSAhPT0gJ011bHRpcGxlJ1wiPnt7J0FsbCcgfCB0cmFuc2xhdGV9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IHIgb2Ygc291cmNlc1thLm5hbWVdIHwgYXN5bmNcIiBbdmFsdWVdPVwici5rZXlcIj57e3IudmFsdWV9fTwvbWF0LW9wdGlvbj5cclxuICAgIDwvbWF0LXNlbGVjdD5cclxuICA8L21hdC1mb3JtLWZpZWxkPlxyXG48L2Rpdj5cclxuIl19
@@ -1,6 +1,6 @@
1
1
  import { Injector } from "@angular/core";
2
2
  import { isString } from "../../core/functions";
3
- import { Subject } from "rxjs";
3
+ import { BehaviorSubject, Subject } from "rxjs";
4
4
  export const FAMILY_SVG = {
5
5
  "Azure": `<svg width="34" height="34" viewBox="0 0 96 96" xmlns="http://www.w3.org/2000/svg">
6
6
  <defs>
@@ -25,7 +25,15 @@ export const FAMILY_SVG = {
25
25
  <path fill="url(#ac2a6fc2-ca48-4327-9a3c-d4dcc3256e15)" d="M33.338 6.544a4.118 4.118 0 0 0-3.943 2.879L4.252 83.917a4.14 4.14 0 0 0 3.908 5.538h20.787a4.443 4.443 0 0 0 3.41-2.9l5.014-14.777 17.91 16.705a4.237 4.237 0 0 0 2.666.972H81.24L71.024 60.261l-29.781.007L59.47 6.544z"/>
26
26
  <path fill="url(#a7fee970-a784-4bb1-af8d-63d18e5f7db9)" d="M66.595 9.364a4.145 4.145 0 0 0-3.928-2.82H33.648a4.146 4.146 0 0 1 3.928 2.82l25.184 74.62a4.146 4.146 0 0 1-3.928 5.472h29.02a4.146 4.146 0 0 0 3.927-5.472z"/>
27
27
  </svg>`,
28
- 'SAP': '<svg xmlns="http://www.w3.org/2000/svg" width="92" height="34" viewBox="0 0 92 45"><linearGradient id="a" gradientUnits="userSpaceOnUse" x1="45.483" x2="45.483" y2="45.001"><stop offset="0" stop-color="#00AEEF"/><stop offset=".212" stop-color="#0097DC"/><stop offset=".519" stop-color="#007CC5"/><stop offset=".792" stop-color="#006CB8"/><stop offset="1" stop-color="#0066B3"/></linearGradient><path fill-rule="evenodd" clip-rule="evenodd" fill="url(#a)" d="M0 45h45.974L90.966 0H0v45"/><path fill-rule="evenodd" clip-rule="evenodd" fill="#fff" d="M53.984 9H45l.03 21.13-7.823-21.137H29.45l-6.678 17.653c-.71-4.492-5.354-6.042-9.008-7.203-2.413-.775-4.974-1.915-4.948-3.175.02-1.034 1.37-1.993 4.053-1.85 1.8.097 3.39.242 6.553 1.77l3.11-5.42C19.648 9.3 15.66 8.373 12.39 8.37h-.02c-3.813 0-6.988 1.235-8.956 3.27-1.372 1.42-2.112 3.226-2.142 5.223-.05 2.748.957 4.696 3.073 6.253 1.788 1.31 4.075 2.16 6.09 2.784 2.485.77 4.515 1.44 4.49 2.866-.02.52-.216 1.006-.59 1.398-.62.64-1.57.88-2.885.906-2.537.054-4.417-.345-7.413-2.116L1.27 34.444C4.263 36.146 7.44 37 11.05 37l.812-.006c3.142-.057 5.692-.81 7.718-2.44.116-.093.22-.187.328-.282l-.34 1.752 7.58-.024 1.36-3.482c1.43.488 3.056.758 4.782.758 1.682 0 3.264-.256 4.667-.716l.948 3.44 13.6.013.033-7.938h2.894c6.995 0 11.13-3.56 11.13-9.53C66.56 11.896 62.54 9 53.984 9zM33.29 27.062c-1.045 0-2.025-.182-2.868-.502l2.836-8.955h.055l2.79 8.98c-.84.3-1.797.477-2.814.477zm21.22-5.145h-1.974V14.7h1.975c2.63 0 4.73.876 4.73 3.562-.002 2.78-2.1 3.655-4.73 3.655"/><path fill="none" d="M0 0h92v45H0z"/></svg>',
28
+ 'SAP': `<svg height="45" viewBox="0 0 192.756 192.756" xmlns="http://www.w3.org/2000/svg">
29
+ <defs></defs>
30
+ <path fill="#fff" d="M 0 0 L 192.756 0 L 192.756 192.756 L 0 192.756 L 0 0 Z" fill-rule="evenodd" clip-rule="evenodd"></path>
31
+ <path d="M 183.727 66.775 C 187.006 66.775 189.922 63.861 189.922 60.217 C 189.922 56.756 187.006 54.023 183.727 54.023 C 180.266 54.023 177.17 56.755 177.17 60.217 C 177.17 63.861 180.266 66.775 183.727 66.775 Z M 183.727 65.865 C 180.45 65.865 178.081 63.497 178.081 60.218 C 178.081 57.303 180.45 54.935 183.727 54.935 C 186.644 54.937 189.008 57.301 189.01 60.218 C 189.01 63.497 186.643 65.865 183.727 65.865 Z" fill="#234b8d" fill-rule="evenodd" clip-rule="evenodd"></path>
32
+ <path d="M 182.088 60.946 L 184.274 60.946 C 185.186 60.946 185.368 61.492 185.368 62.039 C 185.368 62.222 185.368 63.314 185.55 63.861 L 186.644 63.861 L 186.644 63.497 C 186.462 63.314 186.279 63.314 186.279 62.95 L 186.279 61.857 C 186.279 60.946 185.916 60.764 185.55 60.582 C 186.097 60.218 186.462 59.853 186.462 58.761 C 186.462 57.486 185.368 56.939 184.274 56.939 L 181.178 56.939 L 181.178 63.862 L 182.088 63.862 L 182.088 60.946 L 182.088 60.946 Z M 182.088 57.85 L 184.274 57.85 C 184.821 57.85 185.549 57.85 185.549 58.943 C 185.549 59.854 184.82 60.036 184.092 60.036 L 182.088 60.036 L 182.088 57.85 L 182.088 57.85 Z M 3.381 53.842 L 87.178 53.842 L 87.178 137.821 L 3.381 137.821 L 3.381 53.842 Z M 174.801 53.842 L 90.822 53.842 L 90.822 137.821 L 174.801 53.842 Z" fill="#234b8d" fill-rule="evenodd" clip-rule="evenodd"></path>
33
+ <path d="M 69.508 129.26 L 76.066 129.26 C 85.721 129.26 87.543 121.062 87.178 118.694 C 86.632 112.865 82.26 109.221 76.248 109.221 L 60.217 109.221 L 60.217 138.55 L 69.508 138.55 L 69.508 129.26 Z M 69.508 122.337 L 69.508 115.961 L 73.515 115.961 C 76.794 115.961 78.069 116.69 78.069 119.058 C 78.069 120.151 78.069 122.337 74.426 122.337 L 69.508 122.337 L 69.508 122.337 Z" fill="#fff" fill-rule="evenodd" clip-rule="evenodd"></path>
34
+ <path d="M 39.997 132.356 L 49.288 132.356 L 51.656 138.549 L 61.493 138.549 L 50.38 109.221 L 39.268 109.221 L 27.974 138.55 L 37.447 138.55 L 39.997 132.356 L 39.997 132.356 Z M 44.916 117.419 L 48.195 126.162 L 41.82 126.162 L 44.916 117.419 Z" fill="#fff" fill-rule="evenodd" clip-rule="evenodd"></path>
35
+ <path d="M 2.834 129.26 L 2.834 130.9 C 2.834 136.729 9.938 138.915 16.679 138.915 C 25.787 138.915 31.253 135.636 31.253 129.261 C 31.253 119.059 13.036 122.156 13.036 116.145 C 13.036 113.958 14.676 113.23 17.226 113.23 C 18.865 113.23 19.412 113.594 19.958 113.959 C 21.051 114.688 21.051 115.599 21.051 117.238 L 30.706 117.238 L 30.706 116.509 C 30.706 112.137 26.88 108.493 17.226 108.493 C 6.66 108.493 3.381 112.501 3.381 117.237 C 3.381 127.621 21.598 124.341 21.598 130.717 C 21.598 131.992 20.505 133.814 16.679 133.814 C 13.582 133.814 12.489 132.357 12.489 130.17 L 12.489 129.26 L 2.834 129.26 L 2.834 129.26 Z" fill="#fff" fill-rule="evenodd" clip-rule="evenodd"></path>
36
+ </svg>`,
29
37
  'Mfg': `<svg height="34" viewBox="0 0 100 50" xmlns="http://www.w3.org/2000/svg">
30
38
  <defs></defs>
31
39
  <rect width="93" height="38" style="fill: rgb(216, 216, 216);"></rect>
@@ -59,7 +67,8 @@ export const FAMILY_SVG = {
59
67
  <path d="M 215.401 75.194 C 215.429 75.258 215.456 75.322 215.48 75.388 C 215.51 75.322 215.534 75.253 215.564 75.19 C 215.589 75.124 215.618 75.066 215.65 75.004 L 216.84 72.781 C 216.855 72.752 216.868 72.73 216.884 72.717 C 216.901 72.697 216.921 72.685 216.939 72.678 C 216.956 72.669 216.98 72.668 217.003 72.665 C 217.023 72.663 217.057 72.662 217.089 72.662 L 217.653 72.662 L 217.653 76.676 L 216.994 76.676 L 216.994 74.082 C 216.994 74.033 216.995 73.98 216.999 73.926 C 217.002 73.866 217.005 73.809 217.011 73.751 L 215.799 76.026 C 215.77 76.075 215.734 76.117 215.689 76.146 C 215.646 76.175 215.594 76.187 215.534 76.187 L 215.433 76.187 C 215.373 76.187 215.319 76.175 215.275 76.146 C 215.233 76.117 215.195 76.075 215.165 76.026 L 213.941 73.742 C 213.947 73.803 213.95 73.861 213.953 73.92 C 213.957 73.978 213.958 74.032 213.958 74.082 L 213.958 76.676 L 213.299 76.676 L 213.299 72.662 L 213.866 72.662 C 213.899 72.662 213.924 72.663 213.95 72.665 C 213.974 72.668 213.992 72.669 214.015 72.678 C 214.035 72.685 214.052 72.697 214.067 72.717 C 214.089 72.73 214.103 72.752 214.116 72.781 L 215.314 75.009 C 215.348 75.068 215.375 75.133 215.401 75.194 Z" fill="#000"/>
60
68
  </g>
61
69
  </g>
62
- </svg>`
70
+ </svg>`,
71
+ 'Active Directory': `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 954.1 158.2" height="42"><style>.st0{fill:#00aaf2}</style><title id="title4">active-directory</title><g id="Layer_2_1_" transform="translate(0 -33.561)"><g id="Layer_1-2"><path id="path6" class="st0" d="M158.6 154.2v33.3c0 3.9-1.2 4.7-4.9 4.1-24.8-3.7-49.9-7.1-74.9-10.6-4.5-.6-6.1-2.2-6.1-7.1.4-17.7.2-35.5 0-53.4 0-3.9 1.2-5.1 5.1-5.1 25.6.2 50.8.2 75.9.2 4.1 0 5.1 1.6 5.1 5.3-.4 11.2-.2 22.2-.2 33.3z"/><path id="path8" class="st0" d="M116.1 109.2c-12.6 0-25.2-.2-37.8 0-3.9 0-5.5-.8-5.5-5.3.2-18.1.2-35.9 0-53.8 0-3.5 1.2-4.7 4.5-5.3 25.8-3.7 51.6-7.3 77.4-11.2 4.5-.6 3.7 2.4 3.7 4.9 0 16 .2 32.3 0 48.3 0 5.9-.2 11.8 0 17.7.2 3.7-1.2 4.7-4.7 4.7-12.4-.2-25 0-37.6 0z"/><path id="path10" class="st0" d="M32.7 115.9h28.2c3 0 4.3 1 4.3 4.1v55.6c0 3.2-1.4 3.5-4.3 3.2-18.7-2.8-37.4-5.5-56-8.1-3.7-.6-4.9-1.8-4.9-5.7.2-14.8.2-29.6 0-44.7 0-3.7 1-4.7 4.7-4.7 9.5.3 18.6.3 28 .3z"/><path id="path12" class="st0" d="M32.7 109.2H4.9c-3.5 0-4.7-1.2-4.7-4.9.2-14.6.2-29.2 0-43.9 0-3.5 1-4.7 4.7-5.3 18.7-2.4 37.4-5.1 56-8.1 4.3-.6 4.7.8 4.7 4.3v53.2c0 3.9-1.6 4.5-5.1 4.5-9.3 0-18.7.2-27.8.2z"/><path id="path14" class="st0" d="M228.8 64.7c-.2-3-.4-6.9-.4-9.7h-.2c-.6 2.6-1.8 5.7-2.8 8.7l-3.9 10.8h-2.2l-3.5-10.6c-1-2.8-1.8-5.9-2.6-8.7-.2 2.6-.2 6.5-.4 9.9l-.6 9.5h-2.6l1.6-22.5h3.7l3.9 11c1 2.6 1.6 5.3 2.2 7.7h.2c.6-2.2 1.4-4.9 2.4-7.7l4.1-11h3.7l1.4 22.5h-3.2l-.8-9.9z"/><path id="path16" class="st0" d="M240.4 53.9c0 1-.8 1.8-1.8 1.8h-.2c-1 0-1.8-.8-1.8-1.8s.8-1.8 1.8-1.8c1.2 0 2 .8 2 1.8zm-3.2 20.8v-16h3v16h-3z"/><path id="path18" class="st0" d="M256.4 74c-1.4.6-3 1-4.7 1-4.9 0-8.1-3.2-8.1-8.3-.2-4.7 3.2-8.5 7.9-8.7h.8c1.4 0 2.8.2 4.1.8l-.6 2.2c-1-.4-2.2-.8-3.5-.6-3.7 0-5.7 2.6-5.7 6.1 0 3.9 2.4 6.1 5.7 6.1 1.2 0 2.4-.2 3.5-.8l.6 2.2z"/><path id="path20" class="st0" d="M259.7 63.5c0-1.8-.2-3.5-.2-4.9h2.6l.2 3.2h.2c.6-2 2.4-3.5 4.5-3.5.2 0 .6 0 .8.2v2.6c-.2-.2-.6-.2-1-.2-2 0-3.5 1.6-3.9 3.9 0 .4-.2.8-.2 1.2v8.7h-2.8l-.2-11.2z"/><path id="path22" class="st0" d="M285.1 66.5c.2 4.3-3 8.1-7.3 8.3h-.6c-4.3 0-7.7-3.2-7.7-8.3 0-5.5 3.7-8.5 8.1-8.5 4 0 7.5 3.5 7.5 8.5zm-12.8 0c0 3.2 1.6 6.1 4.9 6.1 3.2 0 4.9-3 4.9-6.1 0-2.8-1.2-6.3-4.9-6.3-3.9.2-4.9 3.5-4.9 6.3z"/><path id="path24" class="st0" d="M288.3 71.6c1.2.8 2.4 1.2 3.9 1.2 2 0 3-1 3-2.4 0-1.2-.8-2-3-3-2.8-1-4.3-2.6-4.3-4.7 0-2.6 2-4.7 5.5-4.7 1.4 0 2.8.4 4.1 1l-.6 2c-1-.6-2.2-1-3.2-1-1.4-.2-2.6.8-2.6 2.2 0 1.2 1 1.8 3 2.6 2.6 1 4.3 2.4 4.3 4.9 0 2.8-2.2 4.9-6.1 4.9-1.6 0-3-.4-4.5-1.2l.5-1.8z"/><path id="path26" class="st0" d="M316.5 66.5c.2 4.3-3 8.1-7.3 8.3h-.6c-4.3 0-7.7-3.2-7.7-8.3 0-5.5 3.7-8.5 8.1-8.5 4.1 0 7.5 3.5 7.5 8.5zm-12.7 0c0 3.2 1.6 6.1 4.9 6.1s4.9-3 4.9-6.1c0-2.8-1.2-6.3-4.9-6.3s-4.9 3.5-4.9 6.3z"/><path id="path28" class="st0" d="M320.4 74.7v-14h-2.2v-2.2h2.2v-.8c-.2-2 .4-4.1 1.8-5.7 1-1 2.4-1.6 3.9-1.6.8 0 1.6.2 2.4.4l-.4 2.2c-.6-.2-1.2-.4-1.8-.4-2.4 0-3 2.2-3 4.7v1h3.9v2.2h-3.9v13.8l-2.9.4z"/><path id="path30" class="st0" d="M333.8 53.7v4.7h4.3v2.2h-4.3v8.7c0 2 .6 3 2.2 3 .6 0 1.2 0 1.6-.2l.2 2.2c-.8.4-1.6.4-2.6.4-1.2 0-2.2-.4-3.2-1.2-.8-1.2-1.2-2.8-1-4.3v-8.9h-2.4v-2.2h2.4v-3.9l2.8-.5z"/><path id="path32" class="st0" d="M227 135.8l-7.7 23.8h-10.2L234.9 84h11.6l25.8 75.5h-10.4l-8.1-23.8H227zm24.8-7.5l-7.3-21.7c-1.6-4.9-2.8-9.5-3.9-13.8h-.4c-1 4.5-2.2 9.1-3.7 13.6l-7.3 21.9h22.6z"/><path id="path34" class="st0" d="M320.2 157.7c-4.9 2.2-10.2 3.2-15.6 3.2-16.2 0-27-11.2-27-27.6s11.6-28.8 29-28.8c4.7 0 9.3.8 13.6 2.8l-2.2 7.5c-3.5-1.8-7.5-2.6-11.6-2.6-12.4 0-19.1 9.3-19.1 20.5 0 12.6 8.1 20.3 18.9 20.3 4.1 0 8.3-.8 12-2.6l2 7.3z"/><path id="path36" class="st0" d="M345.2 89.9v15.6h14v7.3h-14V142c0 6.7 1.8 10.6 7.3 10.6 1.8 0 3.9-.2 5.7-.6l.4 7.3c-1.8 1-4.9 1.4-8.9 1.4-4.1.2-7.9-1.4-10.6-4.1-2.6-3.2-3.7-7.7-3.7-14.2v-29.6h-8.5v-7.3h8.3V92.3l10-2.4z"/><path id="path38" class="st0" d="M381.3 90.3c0 3.2-2.4 5.9-5.7 6.1h-.4c-3.2 0-5.9-2.4-5.9-5.5v-.4c-.2-3.2 2.4-6.1 5.7-6.1h.4c3.3-.4 5.9 2.4 5.9 5.9 0-.2 0-.2 0 0zm-10.9 69.4v-54.2h9.7v54h-9.7v.2z"/><path id="path40" class="st0" d="M400.4 105.5L411 136c1.8 4.9 3.2 9.5 4.5 14h.4c1.2-4.5 2.8-9.1 4.5-14l10.6-30.5h10.4l-21.3 54h-9.5l-20.5-54h10.3z"/><path id="path42" class="st0" d="M454.8 134.3c.2 13.4 8.7 18.9 18.5 18.9 7.1 0 11.6-1.2 15-2.8l1.6 7.1c-5.7 2.4-11.8 3.7-18.1 3.5-16.6 0-26.6-11.2-26.6-27.4 0-16.4 9.5-29.2 25.6-29.2 17.7 0 22.3 15.4 22.3 25.4 0 1.6-.2 3-.4 4.7h-37.9v-.2zm28.8-7.1c.2-6.1-2.6-15.8-13.6-15.8-9.9 0-14.4 9.1-15.2 15.8h28.8z"/><path id="path44" class="st0" d="M529.3 85.2c6.9-1 13.8-1.6 20.9-1.6 14 0 24 3.2 30.5 9.5 6.7 6.1 10.6 15 10.6 27 0 12.4-3.9 22.3-11 29.4-7.1 7.1-18.7 11-33.3 11-5.9 0-12-.2-17.9-1l.2-74.3zm10 66.8c3.2.4 6.5.6 9.7.6 20.9 0 32.3-11.6 32.3-32.1.2-17.9-9.9-29-30.5-29-3.9 0-7.7.4-11.6 1l.1 59.5z"/><path id="path46" class="st0" d="M615 90.3c0 3.2-2.4 5.9-5.7 6.1h-.4c-3.2 0-5.9-2.4-5.9-5.5v-.4c-.2-3.2 2.4-6.1 5.7-6.1h.4c3.1-.4 5.9 2.4 5.9 5.9 0-.2 0-.2 0 0zm-11.1 69.4v-54.2h9.7v54h-9.7v.2z"/><path id="path48" class="st0" d="M630 122.4c0-6.3-.2-11.8-.4-16.9h8.7l.4 10.6h.4c2.6-7.3 8.7-11.8 15.2-11.8 1 0 1.8 0 2.6.2v9.3c-1-.2-2-.4-3.2-.4-7.1 0-11.8 5.3-13.2 12.6-.4 1.4-.4 3-.4 4.5v29h-9.7l-.4-37.1z"/><path id="path50" class="st0" d="M671.1 134.3c.2 13.4 8.7 18.9 18.5 18.9 7.1 0 11.6-1.2 15-2.8l1.6 7.1c-5.7 2.4-11.8 3.7-18.1 3.5-16.6 0-26.6-11.2-26.6-27.4 0-16.4 9.5-29.2 25.6-29.2 17.7 0 22.3 15.4 22.3 25.4 0 1.6-.2 3-.4 4.7h-37.9v-.2zm28.8-7.1c.2-6.1-2.6-15.8-13.6-15.8-9.9 0-14.4 9.1-15.2 15.8h28.8z"/><path id="path52" class="st0" d="M760.2 157.7c-4.9 2.2-10.2 3.2-15.6 3.2-16.2 0-27-11.2-27-27.6s11.6-28.8 29-28.8c4.7 0 9.3.8 13.6 2.8l-2.2 7.5c-3.5-1.8-7.5-2.6-11.6-2.6-12.4 0-19.1 9.3-19.1 20.5 0 12.6 8.1 20.3 18.9 20.3 4.1 0 8.3-.8 12-2.6l2 7.3z"/><path id="path54" class="st0" d="M785.2 89.9v15.6h14v7.3h-14V142c0 6.7 1.8 10.6 7.3 10.6 1.8 0 3.9-.2 5.7-.6l.4 7.3c-1.8 1-4.9 1.4-8.9 1.4-4.1.2-7.9-1.4-10.6-4.1-2.6-3.2-3.7-7.7-3.7-14.2v-29.6h-8.3v-7.3h8.3V92.3l9.8-2.4z"/><path id="path56" class="st0" d="M858.7 132.5c0 19.9-14.6 28.4-27.2 28.4-14.2 0-25.8-10.6-25.8-28.2 0-18.1 12.4-28.4 27-28.4 15.2 0 26 10.8 26 28.2zm-42.9.2c0 11 5.5 20.7 16.4 20.7 10.8 0 16.6-9.7 16.6-20.9 0-9.5-4.5-21.1-16.6-21.1-12.1 0-16.4 11.6-16.4 21.3z"/><path id="path58" class="st0" d="M871.1 122.4c0-6.3-.2-11.8-.4-16.9h8.7l.4 10.6h.4c2.6-7.3 8.7-11.8 15.2-11.8 1 0 1.8 0 2.6.2v9.3c-1-.2-2-.4-3.2-.4-7.1 0-11.8 5.3-13.2 12.6-.4 1.4-.4 3-.4 4.5v29h-9.7l-.4-37.1z"/><path id="path60" class="st0" d="M914.1 105.5l11.8 31.9c1.2 3.5 2.6 7.7 3.5 11.2h.2c1-3.2 2-7.3 3.5-11.2l10.8-31.9h10.4l-14.8 38.6c-7.1 18.5-11.8 28.2-18.5 34.1-3.5 3-7.5 5.1-12 6.3l-2.4-8.3c3.2-1 6.1-2.6 8.7-4.9 3.5-3 6.3-6.7 8.1-11 .4-.8.8-1.6.8-2.4 0-1-.4-1.8-.8-2.6l-19.9-49.7h10.6z"/></g></g></svg>`
63
72
  };
64
73
  /** */
65
74
  export class DesignerRef {
@@ -68,12 +77,13 @@ export class DesignerRef {
68
77
  this._element = _element;
69
78
  this.mode = mode;
70
79
  this._unlock$ = new Subject();
71
- this._state$ = new Subject();
80
+ this._state$ = new BehaviorSubject(null);
72
81
  }
73
82
  get designer() { return this._designer; }
74
83
  get model() { return this._element; }
75
84
  get unlock() { return this._unlock$.asObservable(); }
76
- get state() { return this._state$.asObservable(); }
85
+ get state() { return this._state$.value; }
86
+ set state(val) { this._state$.next(val); }
77
87
  create(element, template) {
78
88
  const ref = new DesignerRef(this._designer, element, 'widget');
79
89
  const injector = Injector.create([{
@@ -105,4 +115,4 @@ export function programName(name) {
105
115
  replace(NAME_CHAR, (c, i) => (i > 0 && name.charAt(i - 1) !== '-' ? '-' : '') + c.toLowerCase()).
106
116
  replace(NON_NAME_CHAR, '_');
107
117
  }
108
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjbGFyYXRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9hZG1pbi9jb25maWd1cmF0aW9uLWRlc2lnbmVyL2RlY2xhcmF0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3pDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVoRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRztJQUN4QixPQUFPLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FzQko7SUFDTCxLQUFLLEVBQUUsMGhEQUEwaEQ7SUFDamlELEtBQUssRUFBRTs7Ozs7Ozs7Ozs7Ozs7O09BZUY7SUFDTCxVQUFVLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7O09BaUJQO0NBQ04sQ0FBQztBQUNGLE1BQU07QUFDTixNQUFNLE9BQU8sV0FBVztJQUd0QixZQUFvQixTQUF3QixFQUNsQyxRQUFzQixFQUN2QixJQUFnQjtRQUZMLGNBQVMsR0FBVCxTQUFTLENBQWU7UUFDbEMsYUFBUSxHQUFSLFFBQVEsQ0FBYztRQUN2QixTQUFJLEdBQUosSUFBSSxDQUFZO1FBSnpCLGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBVyxDQUFDO1FBQ2xDLFlBQU8sR0FBRyxJQUFJLE9BQU8sRUFBTyxDQUFDO0lBR0EsQ0FBQztJQUM5QixJQUFJLFFBQVEsS0FBbUIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUN2RCxJQUFJLEtBQUssS0FBcUIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUNyRCxJQUFJLE1BQU0sS0FBSyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3JELElBQUksS0FBSyxLQUFLLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDbkQsTUFBTSxDQUFDLE9BQW9CLEVBQUUsUUFBaUI7UUFDNUMsTUFBTSxHQUFHLEdBQUcsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxPQUF1QixFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQy9FLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDaEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsR0FBRzthQUNwQyxDQUFDLEVBQUcsSUFBSSxDQUFDLFFBQXlCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDN0MsT0FBd0IsQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQzdDLE9BQXdCLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUM5QyxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0NBQ0Y7QUFRRCxNQUFNLFVBQVUsS0FBSyxDQUFDLE9BQXFCO0lBQ3pDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7QUFDN0MsQ0FBQztBQUNELE1BQU0sVUFBVSxPQUFPLENBQUMsR0FBc0I7SUFDNUMsSUFBSSxDQUFDLEdBQUc7UUFBRSxPQUFPLEVBQUUsQ0FBQztJQUNwQixJQUFJLFFBQVEsQ0FBQyxHQUFHLENBQUM7UUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDaEMsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDO0FBRUQsTUFBTSxTQUFTLEdBQUcsU0FBUyxFQUN6QixhQUFhLEdBQUcsU0FBUyxDQUFDO0FBQzVCOzs7R0FHRztBQUNILE1BQU0sVUFBVSxXQUFXLENBQUMsSUFBWTtJQUN0QyxPQUFPLElBQUk7UUFDVCxPQUFPLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQztRQUNqQixPQUFPLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDaEcsT0FBTyxDQUFDLGFBQWEsRUFBRSxHQUFHLENBQUMsQ0FBQztBQUNoQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0b3IgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHsgU2NvcGVUeXBlIH0gZnJvbSBcIi4uLy4uL2NvcmUvY29uZmlndXJhdGlvblwiO1xyXG5pbXBvcnQgeyBpc1N0cmluZyB9IGZyb20gXCIuLi8uLi9jb3JlL2Z1bmN0aW9uc1wiO1xyXG5pbXBvcnQgeyBBeGVzTWFwLCBDaGFydFR5cGUsIEN1YmVGaWx0ZXIsIEZpZWxkSW5mbywgRm9sZGVyQ29sdW1uLCBHdWlkZVN0ZXAsIFBvc2l0aW9uUG9saWN5LCBWaWV3VHlwZSB9IGZyb20gXCIuLi8uLi9jb3JlL21vZGVsc1wiO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcclxuZXhwb3J0IGNvbnN0IEZBTUlMWV9TVkcgPSB7XHJcbiAgXCJBenVyZVwiOiBgPHN2ZyB3aWR0aD1cIjM0XCIgaGVpZ2h0PVwiMzRcIiB2aWV3Qm94PVwiMCAwIDk2IDk2XCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgPGRlZnM+XHJcbiAgICAgICAgPGxpbmVhckdyYWRpZW50IGlkPVwiZTM5OWMxOWYtYjY4Zi00MjlkLWIxNzYtMThjMjExN2ZmNzNjXCIgeDE9XCItMTAzMi4xNzJcIiB4Mj1cIi0xMDU5LjIxM1wiIHkxPVwiMTQ1LjMxMlwiIHkyPVwiNjUuNDI2XCIgZ3JhZGllbnRUcmFuc2Zvcm09XCJtYXRyaXgoMSAwIDAgLTEgMTA3NSAxNTgpXCIgZ3JhZGllbnRVbml0cz1cInVzZXJTcGFjZU9uVXNlXCI+XHJcbiAgICAgICAgICAgIDxzdG9wIG9mZnNldD1cIjBcIiBzdG9wLWNvbG9yPVwiIzExNGE4YlwiLz5cclxuICAgICAgICAgICAgPHN0b3Agb2Zmc2V0PVwiMVwiIHN0b3AtY29sb3I9XCIjMDY2OWJjXCIvPlxyXG4gICAgICAgIDwvbGluZWFyR3JhZGllbnQ+XHJcbiAgICAgICAgPGxpbmVhckdyYWRpZW50IGlkPVwiYWMyYTZmYzItY2E0OC00MzI3LTlhM2MtZDRkY2MzMjU2ZTE1XCIgeDE9XCItMTAyMy43MjVcIiB4Mj1cIi0xMDI5Ljk4XCIgeTE9XCIxMDguMDgzXCIgeTI9XCIxMDUuOTY4XCIgZ3JhZGllbnRUcmFuc2Zvcm09XCJtYXRyaXgoMSAwIDAgLTEgMTA3NSAxNTgpXCIgZ3JhZGllbnRVbml0cz1cInVzZXJTcGFjZU9uVXNlXCI+XHJcbiAgICAgICAgICAgIDxzdG9wIG9mZnNldD1cIjBcIiBzdG9wLW9wYWNpdHk9XCIuM1wiLz5cclxuICAgICAgICAgICAgPHN0b3Agb2Zmc2V0PVwiLjA3MVwiIHN0b3Atb3BhY2l0eT1cIi4yXCIvPlxyXG4gICAgICAgICAgICA8c3RvcCBvZmZzZXQ9XCIuMzIxXCIgc3RvcC1vcGFjaXR5PVwiLjFcIi8+XHJcbiAgICAgICAgICAgIDxzdG9wIG9mZnNldD1cIi42MjNcIiBzdG9wLW9wYWNpdHk9XCIuMDVcIi8+XHJcbiAgICAgICAgICAgIDxzdG9wIG9mZnNldD1cIjFcIiBzdG9wLW9wYWNpdHk9XCIwXCIvPlxyXG4gICAgICAgIDwvbGluZWFyR3JhZGllbnQ+XHJcbiAgICAgICAgPGxpbmVhckdyYWRpZW50IGlkPVwiYTdmZWU5NzAtYTc4NC00YmIxLWFmOGQtNjNkMThlNWY3ZGI5XCIgeDE9XCItMTAyNy4xNjVcIiB4Mj1cIi05OTcuNDgyXCIgeTE9XCIxNDcuNjQyXCIgeTI9XCI2OC41NjFcIiBncmFkaWVudFRyYW5zZm9ybT1cIm1hdHJpeCgxIDAgMCAtMSAxMDc1IDE1OClcIiBncmFkaWVudFVuaXRzPVwidXNlclNwYWNlT25Vc2VcIj5cclxuICAgICAgICAgICAgPHN0b3Agb2Zmc2V0PVwiMFwiIHN0b3AtY29sb3I9XCIjM2NjYmY0XCIvPlxyXG4gICAgICAgICAgICA8c3RvcCBvZmZzZXQ9XCIxXCIgc3RvcC1jb2xvcj1cIiMyODkyZGZcIi8+XHJcbiAgICAgICAgPC9saW5lYXJHcmFkaWVudD5cclxuICAgIDwvZGVmcz5cclxuICAgIDxwYXRoIGZpbGw9XCJ1cmwoI2UzOTljMTlmLWI2OGYtNDI5ZC1iMTc2LTE4YzIxMTdmZjczYylcIiBkPVwiTTMzLjMzOCA2LjU0NGgyNi4wMzhsLTI3LjAzIDgwLjA4N2E0LjE1MiA0LjE1MiAwIDAgMS0zLjkzMyAyLjgyNEg4LjE0OWE0LjE0NSA0LjE0NSAwIDAgMS0zLjkyOC01LjQ3TDI5LjQwNCA5LjM2OGE0LjE1MiA0LjE1MiAwIDAgMSAzLjkzNC0yLjgyNXpcIi8+XHJcbiAgICA8cGF0aCBmaWxsPVwiIzAwNzhkNFwiIGQ9XCJNNzEuMTc1IDYwLjI2MWgtNDEuMjlhMS45MTEgMS45MTEgMCAwIDAtMS4zMDUgMy4zMDlsMjYuNTMyIDI0Ljc2NGE0LjE3MSA0LjE3MSAwIDAgMCAyLjg0NiAxLjEyMWgyMy4zOHpcIi8+XHJcbiAgICA8cGF0aCBmaWxsPVwidXJsKCNhYzJhNmZjMi1jYTQ4LTQzMjctOWEzYy1kNGRjYzMyNTZlMTUpXCIgZD1cIk0zMy4zMzggNi41NDRhNC4xMTggNC4xMTggMCAwIDAtMy45NDMgMi44NzlMNC4yNTIgODMuOTE3YTQuMTQgNC4xNCAwIDAgMCAzLjkwOCA1LjUzOGgyMC43ODdhNC40NDMgNC40NDMgMCAwIDAgMy40MS0yLjlsNS4wMTQtMTQuNzc3IDE3LjkxIDE2LjcwNWE0LjIzNyA0LjIzNyAwIDAgMCAyLjY2Ni45NzJIODEuMjRMNzEuMDI0IDYwLjI2MWwtMjkuNzgxLjAwN0w1OS40NyA2LjU0NHpcIi8+XHJcbiAgICA8cGF0aCBmaWxsPVwidXJsKCNhN2ZlZTk3MC1hNzg0LTRiYjEtYWY4ZC02M2QxOGU1ZjdkYjkpXCIgZD1cIk02Ni41OTUgOS4zNjRhNC4xNDUgNC4xNDUgMCAwIDAtMy45MjgtMi44MkgzMy42NDhhNC4xNDYgNC4xNDYgMCAwIDEgMy45MjggMi44MmwyNS4xODQgNzQuNjJhNC4xNDYgNC4xNDYgMCAwIDEtMy45MjggNS40NzJoMjkuMDJhNC4xNDYgNC4xNDYgMCAwIDAgMy45MjctNS40NzJ6XCIvPlxyXG48L3N2Zz5gLFxyXG4gICdTQVAnOiAnPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCI5MlwiIGhlaWdodD1cIjM0XCIgdmlld0JveD1cIjAgMCA5MiA0NVwiPjxsaW5lYXJHcmFkaWVudCBpZD1cImFcIiBncmFkaWVudFVuaXRzPVwidXNlclNwYWNlT25Vc2VcIiB4MT1cIjQ1LjQ4M1wiIHgyPVwiNDUuNDgzXCIgeTI9XCI0NS4wMDFcIj48c3RvcCBvZmZzZXQ9XCIwXCIgc3RvcC1jb2xvcj1cIiMwMEFFRUZcIi8+PHN0b3Agb2Zmc2V0PVwiLjIxMlwiIHN0b3AtY29sb3I9XCIjMDA5N0RDXCIvPjxzdG9wIG9mZnNldD1cIi41MTlcIiBzdG9wLWNvbG9yPVwiIzAwN0NDNVwiLz48c3RvcCBvZmZzZXQ9XCIuNzkyXCIgc3RvcC1jb2xvcj1cIiMwMDZDQjhcIi8+PHN0b3Agb2Zmc2V0PVwiMVwiIHN0b3AtY29sb3I9XCIjMDA2NkIzXCIvPjwvbGluZWFyR3JhZGllbnQ+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGNsaXAtcnVsZT1cImV2ZW5vZGRcIiBmaWxsPVwidXJsKCNhKVwiIGQ9XCJNMCA0NWg0NS45NzRMOTAuOTY2IDBIMHY0NVwiLz48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgY2xpcC1ydWxlPVwiZXZlbm9kZFwiIGZpbGw9XCIjZmZmXCIgZD1cIk01My45ODQgOUg0NWwuMDMgMjEuMTMtNy44MjMtMjEuMTM3SDI5LjQ1bC02LjY3OCAxNy42NTNjLS43MS00LjQ5Mi01LjM1NC02LjA0Mi05LjAwOC03LjIwMy0yLjQxMy0uNzc1LTQuOTc0LTEuOTE1LTQuOTQ4LTMuMTc1LjAyLTEuMDM0IDEuMzctMS45OTMgNC4wNTMtMS44NSAxLjguMDk3IDMuMzkuMjQyIDYuNTUzIDEuNzdsMy4xMS01LjQyQzE5LjY0OCA5LjMgMTUuNjYgOC4zNzMgMTIuMzkgOC4zN2gtLjAyYy0zLjgxMyAwLTYuOTg4IDEuMjM1LTguOTU2IDMuMjctMS4zNzIgMS40Mi0yLjExMiAzLjIyNi0yLjE0MiA1LjIyMy0uMDUgMi43NDguOTU3IDQuNjk2IDMuMDczIDYuMjUzIDEuNzg4IDEuMzEgNC4wNzUgMi4xNiA2LjA5IDIuNzg0IDIuNDg1Ljc3IDQuNTE1IDEuNDQgNC40OSAyLjg2Ni0uMDIuNTItLjIxNiAxLjAwNi0uNTkgMS4zOTgtLjYyLjY0LTEuNTcuODgtMi44ODUuOTA2LTIuNTM3LjA1NC00LjQxNy0uMzQ1LTcuNDEzLTIuMTE2TDEuMjcgMzQuNDQ0QzQuMjYzIDM2LjE0NiA3LjQ0IDM3IDExLjA1IDM3bC44MTItLjAwNmMzLjE0Mi0uMDU3IDUuNjkyLS44MSA3LjcxOC0yLjQ0LjExNi0uMDkzLjIyLS4xODcuMzI4LS4yODJsLS4zNCAxLjc1MiA3LjU4LS4wMjQgMS4zNi0zLjQ4MmMxLjQzLjQ4OCAzLjA1Ni43NTggNC43ODIuNzU4IDEuNjgyIDAgMy4yNjQtLjI1NiA0LjY2Ny0uNzE2bC45NDggMy40NCAxMy42LjAxMy4wMzMtNy45MzhoMi44OTRjNi45OTUgMCAxMS4xMy0zLjU2IDExLjEzLTkuNTNDNjYuNTYgMTEuODk2IDYyLjU0IDkgNTMuOTg0IDl6TTMzLjI5IDI3LjA2MmMtMS4wNDUgMC0yLjAyNS0uMTgyLTIuODY4LS41MDJsMi44MzYtOC45NTVoLjA1NWwyLjc5IDguOThjLS44NC4zLTEuNzk3LjQ3Ny0yLjgxNC40Nzd6bTIxLjIyLTUuMTQ1aC0xLjk3NFYxNC43aDEuOTc1YzIuNjMgMCA0LjczLjg3NiA0LjczIDMuNTYyLS4wMDIgMi43OC0yLjEgMy42NTUtNC43MyAzLjY1NVwiLz48cGF0aCBmaWxsPVwibm9uZVwiIGQ9XCJNMCAwaDkydjQ1SDB6XCIvPjwvc3ZnPicsXHJcbiAgJ01mZyc6IGA8c3ZnIGhlaWdodD1cIjM0XCIgdmlld0JveD1cIjAgMCAxMDAgNTBcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgPGRlZnM+PC9kZWZzPlxyXG4gIDxyZWN0IHdpZHRoPVwiOTNcIiBoZWlnaHQ9XCIzOFwiIHN0eWxlPVwiZmlsbDogcmdiKDIxNiwgMjE2LCAyMTYpO1wiPjwvcmVjdD5cclxuICA8ZyB0cmFuc2Zvcm09XCJtYXRyaXgoMSwgMCwgMCwgMSwgNSwgNilcIj5cclxuICAgIDxnPlxyXG4gICAgICA8Zz5cclxuICAgICAgICA8cGF0aCBmaWxsPVwiI0ZGRkZGRlwiIGQ9XCJNNDEuMSwxLjhsMTMuMSwyMC41aC0zLjhMNDcsMTcuMUgzNS42bC0zLjEsNS4yaC0zLjhMNDEuMSwxLjh6IE0zNy4yLDE0LjVoOC4xbC00LjItNi42TDM3LjIsMTQuNXpcIj48L3BhdGg+XHJcbiAgICAgICAgPHBhdGggZmlsbD1cIiNGRkZGRkZcIiBkPVwiTTU5LjMsMi41aDkuM2M4LjgsMCwxMi43LDUuMiwxMi43LDkuOWMwLDUuMS00LjgsOS45LTEyLjYsOS45aC05LjNWMi41eiBNNjIuNywxOS43aDUuNFxyXG5cdFx0XHRcdGM3LjgsMCw5LjUtNC45LDkuNS03LjRjMC00LTMtNy40LTkuNy03LjRoLTUuM1YxOS43elwiPjwvcGF0aD5cclxuICAgICAgICA8cGF0aCBmaWxsPVwiI0ZGRkZGRlwiIGQ9XCJNMjUuNywxMi4zYzAtNS44LTUuNC0xMC4xLTEyLjUtMTAuMUM1LjQsMi4yLDAsNi40LDAsMTIuNGMwLDYsNS40LDEwLjIsMTMuMSwxMC4yYzEuNCwwLDIuNi0wLjIsMy44LTAuNVxyXG5cdFx0XHRcdGwzLjMsMi42aDVsLTQuOS0zLjlDMjMuNiwxOSwyNS43LDE1LjksMjUuNywxMi4zeiBNMTMuMSwyMGMtNi40LDAtOS41LTMuNS05LjUtNy41YzAtMywyLjMtNy42LDkuNS03LjZjNS4zLDAsOS4yLDMuMyw5LjIsNy43XHJcblx0XHRcdFx0QzIyLjEsMTYuNSwxOC40LDIwLDEzLjEsMjB6XCI+PC9wYXRoPlxyXG4gICAgICA8L2c+XHJcbiAgICA8L2c+XHJcbiAgPC9nPlxyXG48L3N2Zz5gLFxyXG4gICdQcmlvcml0eSc6IGA8c3ZnIGZpbGw9XCJub25lXCIgaGVpZ2h0PVwiNjBcIiB2aWV3Qm94PVwiMCAwIDI0MCAxMzNcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgPGc+XHJcbiAgICA8cGF0aCBkPVwiTSAwIDAgTCAyNDAgMCBMIDI0MCA4MC40NyBMIDAgODAuNDcgTCAwIDAgWlwiIGZpbGw9XCIjZmZmXCIgc3R5bGU9XCJcIi8+XHJcbiAgICA8ZyB0cmFuc2Zvcm09XCJtYXRyaXgoMSwgMCwgMCwgMSwgLTEyLjUyNDg0MSwgLTI0LjU5MTQ0NClcIj5cclxuICAgICAgPHBhdGggZD1cIk0gMTc3Ljc0OCA1MC42NzMgTCAxNzMuNjQyIDUwLjY3MyBMIDE3My42NDIgNTUuMDIyIEwgMTc3Ljc0OCA1NS4wMjIgTCAxNzcuNzQ4IDUwLjY3MyBaXCIgZmlsbD1cIiMwMGFlZWZcIi8+XHJcbiAgICAgIDxwYXRoIGQ9XCJNIDYyLjczNCA1Ni41NzggQyA2Mi43MzQgNTUuNDQgNjIuNDIzIDU1LjA3NyA2MS40MzcgNTUuMDI2IEwgNTkuMjYzIDU0Ljg2OSBMIDU5LjI2MyA1MC42NzQgTCA2OC4wMTkgNTAuNjc0IEwgNjguMDE5IDU0LjU1OCBDIDY5LjIxMSA1MS45NjggNzEuOTU2IDQ5Ljg5NiA3NS4zNzMgNDkuODk2IEMgNzcuMDg2IDQ5Ljg5NiA3OC42NCA1MC4yMDcgODAuMzQ4IDUxLjAzNSBMIDgwLjM0OCA1OC43NTUgTCA3NS41MzEgNTkuMTE3IEwgNzUuNTMxIDU2LjczNCBDIDc1LjUzMSA1Ni4xMTMgNzUuNDI4IDU1LjY0NyA3NS4wMTIgNTUuNDQgQyA3NC41NDQgNTUuMjMyIDc0LjE4IDU1LjE4IDczLjYxMyA1NS4xOCBDIDcwLjgxNSA1NS4xOCA2OC44OTggNTcuNDA5IDY4Ljg5OCA2MC40MTQgTCA2OC44OTggNzIuNDMxIEwgNzMuNDA4IDcyLjYzNiBMIDczLjQwOCA3Ni43MyBMIDU5LjUyIDc2LjczIEwgNTkuNTIgNzIuNzk1IEwgNjEuMjMyIDcyLjYzNiBDIDYyLjIxNyA3Mi41MzMgNjIuNzM0IDcyLjIyNCA2Mi43MzQgNzAuOTI5IEwgNjIuNzM0IDU2LjU3OCBaXCIgZmlsbD1cIiMwMDBcIi8+XHJcbiAgICAgIDxwYXRoIGQ9XCJNIDExNS40NjkgNjMuODMyIEMgMTE1LjQ2OSA1OC4wMzEgMTE0LjA3NCA1NC40NTYgMTA5LjkzIDU0LjQ1NiBDIDEwNS44MzMgNTQuNDU2IDEwNC4xNzcgNTcuOTc4IDEwNC4xNzcgNjIuOTUyIEMgMTA0LjE3NyA2Ny43NjggMTA0Ljg1IDcyLjk0NiAxMDkuODI1IDcyLjk0NiBDIDExMy44NjUgNzIuOTQ2IDExNS40NjkgNjkuMjIxIDExNS40NjkgNjMuODMyIFogTSAxMTAuMjM5IDQ5Ljg5NiBDIDExNC4wNzQgNDkuODk2IDEyMS43ODkgNTEuMDg1IDEyMS43ODkgNjMuMDAzIEMgMTIxLjc4OSA3Mi45NDYgMTE2LjI0NyA3Ny41MDcgMTA5LjQxIDc3LjUwNyBDIDEwMi40NjcgNzcuNTA3IDk3LjkwOSA3My4wNTMgOTcuOTA5IDYzLjY3NCBDIDk3LjkwOSA1Mi45MDIgMTA0LjkwNCA0OS44OTYgMTEwLjIzOSA0OS44OTYgWlwiIGZpbGw9XCIjMDAwXCIvPlxyXG4gICAgICA8cGF0aCBkPVwiTSAxMjcuNTQzIDU2LjU3OCBDIDEyNy41NDMgNTUuNDQgMTI3LjIzNSA1NS4wNzcgMTI2LjI1IDU1LjAyNiBMIDEyNC4wNzIgNTQuODY5IEwgMTI0LjA3MiA1MC42NzQgTCAxMzIuODMgNTAuNjc0IEwgMTMyLjgzIDU0LjU1OCBDIDEzNC4wMTkgNTEuOTY4IDEzNi43NjYgNDkuODk2IDE0MC4xODcgNDkuODk2IEMgMTQxLjg5NCA0OS44OTYgMTQzLjQ0OSA1MC4yMDcgMTQ1LjE1OCA1MS4wMzUgTCAxNDUuMTU4IDU4Ljc1NSBMIDE0MC4zNDEgNTkuMTE3IEwgMTQwLjM0MSA1Ni43MzQgQyAxNDAuMzQxIDU2LjExMyAxNDAuMjM4IDU1LjY0NyAxMzkuODIyIDU1LjQ0IEMgMTM5LjM1NiA1NS4yMzIgMTM4Ljk5NSA1NS4xOCAxMzguNDI1IDU1LjE4IEMgMTM1LjYyNSA1NS4xOCAxMzMuNzEgNTcuNDA5IDEzMy43MSA2MC40MTQgTCAxMzMuNzEgNzIuNDMxIEwgMTM4LjIxNSA3Mi42MzYgTCAxMzguMjE1IDc2LjczIEwgMTI0LjMzMyA3Ni43MyBMIDEyNC4zMzMgNzIuNzk1IEwgMTI2LjA0MiA3Mi42MzYgQyAxMjcuMDI2IDcyLjUzMyAxMjcuNTQzIDcyLjIyNCAxMjcuNTQzIDcwLjkyOSBMIDEyNy41NDMgNTYuNTc4IFpcIiBmaWxsPVwiIzAwMFwiLz5cclxuICAgICAgPHBhdGggZD1cIk0gMjAyLjAxNiA3MS44MTIgQyAyMDAuMjAzIDc0LjQgMTk3LjA0NiA3NS44NTEgMTkzLjYyMiA3NS44NTEgQyAxODguNDQzIDc1Ljg1MSAxODUuNTk0IDczLjAwMSAxODUuNTk0IDY2Ljg4NyBMIDE4NS41OTQgNTYuNDc3IEMgMTg1LjU5NCA1NS4zODYgMTg1LjE3OCA1NS4wNzggMTg0LjMwMSA1NS4wMjMgTCAxODIuNjM5IDU0LjkyMSBMIDE4Mi42MzkgNTAuNjczIEwgMTkxLjc1NiA1MC42NzMgTCAxOTEuNzU2IDY1LjU0MSBDIDE5MS43NTYgNjguNyAxOTIuMjc0IDcxLjA4NCAxOTUuNTkxIDcxLjA4NCBDIDE5OS4yMiA3MS4wODQgMjAxLjEzNiA2OC42NDcgMjAxLjEzNiA2NS45NTcgTCAyMDEuMTM2IDU2LjU3OCBDIDIwMS4xMzYgNTUuNDQgMjAwLjgyMiA1NS4wMjMgMTk5LjgzNyA1NS4wMjMgTCAxOTguMTgyIDU0LjkyMSBMIDE5OC4xODIgNTAuNjczIEwgMjA3LjI5NyA1MC42NzMgTCAyMDcuMjk3IDc1Ljc0NyBDIDIwNy4yOTcgODQuMjk2IDIwMyA4Ny44MTcgMTk1LjI3OCA4Ny44MTcgQyAxOTIuMDE2IDg3LjgxNyAxODcuNzE5IDg3LjE5NiAxODUuNTQ0IDg2LjEwOSBMIDE4NS41NDQgODAuNjk0IEwgMTkwLjQ2MyA4MC4yNzggTCAxOTAuNDYzIDgwLjk3OCBDIDE5MC40NjMgODEuOTYyIDE5MC43MjEgODIuNDgyIDE5MS42NTcgODIuODQzIEMgMTkyLjYzOSA4My4yMDcgMTkzLjc4MSA4My4zNjIgMTk1LjMzNCA4My4zNjIgQyAyMDAuMDk5IDgzLjM2MiAyMDIuMDE2IDgwLjQ2MSAyMDIuMDE2IDc1Ljc0NyBMIDIwMi4wMTYgNzEuODEyIFpcIiBmaWxsPVwiIzAwMFwiLz5cclxuICAgICAgPHBhdGggZD1cIk0gMTU3LjY3MSA3Mi40MyBMIDE1Ny42NzEgNTAuNjc0IEwgMTQ4LjM5OCA1MC42NzQgTCAxNDguMzk4IDU0Ljk3MiBMIDE1MC4yMSA1NS4wNzcgQyAxNTEuMTkzIDU1LjA3NyAxNTEuNTA4IDU1LjQzOSAxNTEuNTA4IDU2LjU3NyBMIDE1MS41MzUgNzYuNzMgTCAxNjAuNjIyIDc2LjczIEwgMTYwLjYyMiA3Mi41ODYgTCAxNTcuNjcxIDcyLjQzIFpcIiBmaWxsPVwiIzAwMFwiLz5cclxuICAgICAgPHBhdGggZD1cIk0gOTIuODYgNzIuNDMgTCA5Mi44NiA1MC42NzQgTCA4My41ODkgNTAuNjc0IEwgODMuNTg5IDU0Ljk3MiBMIDg1LjM5OSA1NS4wNzcgQyA4Ni4zODYgNTUuMDc3IDg2LjY5NyA1NS40MzkgODYuNjk3IDU2LjU3NyBMIDg2LjY2OSA3Ni43MyBMIDk1LjgxNCA3Ni43MyBMIDk1LjgxNCA3Mi41ODYgTCA5Mi44NiA3Mi40MyBaXCIgZmlsbD1cIiMwMDBcIi8+XHJcbiAgICAgIDxwYXRoIGQ9XCJNIDE3OS4xNzEgNzEuNjUzIEMgMTc4LjM0NiA3Mi4xNzMgMTc3LjA0OCA3Mi43NDEgMTc1LjY1MyA3Mi43NDEgQyAxNzMuNTI0IDcyLjc0MSAxNzIuMjgxIDcxLjgxMSAxNzIuMjgxIDY4LjY0NyBMIDE3Mi4yODEgNDUuMTgzIEwgMTY4LjkxNiA0NS4xODMgQyAxNjcuODI4IDQ4LjEzNCAxNjYuNTg2IDUwLjkzMyAxNjIuOTU4IDUxLjI0MiBMIDE2Mi40NDIgNTUuMDIzIEwgMTY2LjEyIDU1LjAyMyBMIDE2Ni4xMiA2OC44NTUgQyAxNjYuMTIgNzIuNDgxIDE2Ni4wNjYgNzcuNDU1IDE3NC4xNDQgNzcuNDU1IEMgMTc2LjU4MiA3Ny40NTUgMTc5LjE3MSA3Ni43MyAxODAuNzI4IDc1LjY0NCBMIDE3OS4xNzEgNzEuNjUzIFpcIiBmaWxsPVwiIzAwMFwiLz5cclxuICAgICAgPHBhdGggZD1cIk0gNDQuMzMyIDcyLjU4NyBDIDQyLjk4NiA3Mi41ODcgNDEuMTIxIDcyLjE3MyAzOS43NzUgNzEuMjkxIEwgMzkuNzc1IDU5LjM3NyBDIDM5Ljc3NSA1Ni45OTUgNDIuMDUzIDU0LjkyIDQ1LjAwNyA1NC45MiBDIDQ3Ljc1MSA1NC45MiA1MC4yNDIgNTYuNjg0IDUwLjI0MiA2My41NzIgQyA1MC4yNDIgNjguMDc3IDQ4LjczNyA3Mi41ODcgNDQuMzMyIDcyLjU4NyBaIE0gNDcuMjg5IDQ5Ljg5NiBDIDQyLjg4NCA0OS44OTYgNDAuMDM2IDUyLjI3OSAzOS4xMDMgNTQuMDQgTCAzOS4xMDMgNTAuNjc1IEwgMzAuMzQ3IDUwLjY3NSBMIDMwLjM0NyA1NC44NjggTCAzMi41MjUgNTUuMDIzIEMgMzMuNTA3IDU1LjAyMyAzMy44MTYgNTUuNDQgMzMuODE2IDU2LjU3OCBMIDMzLjc4MSA4Ny40NTUgTCA0My45NjggODcuNDU1IEwgNDMuOTY4IDgzLjM2MiBMIDM5Ljc3NSA4My4xNTMgTCAzOS43NzUgNzYuMDA1IEMgNDEuMTIxIDc2LjgzMyA0My4yOTYgNzcuNTA3IDQ1LjMxNyA3Ny41MDcgQyA1Mi4xNTggNzcuNTA3IDU2LjY2MiA3Mi41ODcgNTYuNjYyIDYzLjA1NSBDIDU2LjY2MiA1My43ODMgNTMuMDM4IDQ5Ljg5NiA0Ny4yODkgNDkuODk2IFpcIiBmaWxsPVwiIzAwMFwiLz5cclxuICAgICAgPHBhdGggZD1cIk0gMjEyLjg4MiA3Mi42NjIgTCAyMTIuODgyIDczLjI3MiBMIDIxMS42NzQgNzMuMjcyIEwgMjExLjY3NCA3Ni42NzYgTCAyMTAuOTI3IDc2LjY3NiBMIDIxMC45MjcgNzMuMjcyIEwgMjA5LjcxNyA3My4yNzIgTCAyMDkuNzE3IDcyLjY2MiBMIDIxMi44ODIgNzIuNjYyIFpcIiBmaWxsPVwiIzAwMFwiLz5cclxuICAgICAgPHBhdGggZD1cIk0gMjE1LjQwMSA3NS4xOTQgQyAyMTUuNDI5IDc1LjI1OCAyMTUuNDU2IDc1LjMyMiAyMTUuNDggNzUuMzg4IEMgMjE1LjUxIDc1LjMyMiAyMTUuNTM0IDc1LjI1MyAyMTUuNTY0IDc1LjE5IEMgMjE1LjU4OSA3NS4xMjQgMjE1LjYxOCA3NS4wNjYgMjE1LjY1IDc1LjAwNCBMIDIxNi44NCA3Mi43ODEgQyAyMTYuODU1IDcyLjc1MiAyMTYuODY4IDcyLjczIDIxNi44ODQgNzIuNzE3IEMgMjE2LjkwMSA3Mi42OTcgMjE2LjkyMSA3Mi42ODUgMjE2LjkzOSA3Mi42NzggQyAyMTYuOTU2IDcyLjY2OSAyMTYuOTggNzIuNjY4IDIxNy4wMDMgNzIuNjY1IEMgMjE3LjAyMyA3Mi42NjMgMjE3LjA1NyA3Mi42NjIgMjE3LjA4OSA3Mi42NjIgTCAyMTcuNjUzIDcyLjY2MiBMIDIxNy42NTMgNzYuNjc2IEwgMjE2Ljk5NCA3Ni42NzYgTCAyMTYuOTk0IDc0LjA4MiBDIDIxNi45OTQgNzQuMDMzIDIxNi45OTUgNzMuOTggMjE2Ljk5OSA3My45MjYgQyAyMTcuMDAyIDczLjg2NiAyMTcuMDA1IDczLjgwOSAyMTcuMDExIDczLjc1MSBMIDIxNS43OTkgNzYuMDI2IEMgMjE1Ljc3IDc2LjA3NSAyMTUuNzM0IDc2LjExNyAyMTUuNjg5IDc2LjE0NiBDIDIxNS42NDYgNzYuMTc1IDIxNS41OTQgNzYuMTg3IDIxNS41MzQgNzYuMTg3IEwgMjE1LjQzMyA3Ni4xODcgQyAyMTUuMzczIDc2LjE4NyAyMTUuMzE5IDc2LjE3NSAyMTUuMjc1IDc2LjE0NiBDIDIxNS4yMzMgNzYuMTE3IDIxNS4xOTUgNzYuMDc1IDIxNS4xNjUgNzYuMDI2IEwgMjEzLjk0MSA3My43NDIgQyAyMTMuOTQ3IDczLjgwMyAyMTMuOTUgNzMuODYxIDIxMy45NTMgNzMuOTIgQyAyMTMuOTU3IDczLjk3OCAyMTMuOTU4IDc0LjAzMiAyMTMuOTU4IDc0LjA4MiBMIDIxMy45NTggNzYuNjc2IEwgMjEzLjI5OSA3Ni42NzYgTCAyMTMuMjk5IDcyLjY2MiBMIDIxMy44NjYgNzIuNjYyIEMgMjEzLjg5OSA3Mi42NjIgMjEzLjkyNCA3Mi42NjMgMjEzLjk1IDcyLjY2NSBDIDIxMy45NzQgNzIuNjY4IDIxMy45OTIgNzIuNjY5IDIxNC4wMTUgNzIuNjc4IEMgMjE0LjAzNSA3Mi42ODUgMjE0LjA1MiA3Mi42OTcgMjE0LjA2NyA3Mi43MTcgQyAyMTQuMDg5IDcyLjczIDIxNC4xMDMgNzIuNzUyIDIxNC4xMTYgNzIuNzgxIEwgMjE1LjMxNCA3NS4wMDkgQyAyMTUuMzQ4IDc1LjA2OCAyMTUuMzc1IDc1LjEzMyAyMTUuNDAxIDc1LjE5NCBaXCIgZmlsbD1cIiMwMDBcIi8+XHJcbiAgICA8L2c+XHJcbiAgPC9nPlxyXG48L3N2Zz5gXHJcbn07XHJcbi8qKiAqL1xyXG5leHBvcnQgY2xhc3MgRGVzaWduZXJSZWY8TyA9IGFueT4ge1xyXG4gIF91bmxvY2skID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcclxuICBfc3RhdGUkID0gbmV3IFN1YmplY3Q8YW55PigpO1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2Rlc2lnbmVyOiBEZXNpZ25lck1vZGVsLFxyXG4gICAgcHJpdmF0ZSBfZWxlbWVudDogRWxlbWVudE1vZGVsLFxyXG4gICAgcHVibGljIG1vZGU6IERlc2lnbk1vZGUpIHsgfVxyXG4gIGdldCBkZXNpZ25lcigpOiBEZXNpZ25lckluZm8geyByZXR1cm4gdGhpcy5fZGVzaWduZXI7IH1cclxuICBnZXQgbW9kZWwoKTogRWxlbWVudEluZm88Tz4geyByZXR1cm4gdGhpcy5fZWxlbWVudDsgfVxyXG4gIGdldCB1bmxvY2soKSB7IHJldHVybiB0aGlzLl91bmxvY2skLmFzT2JzZXJ2YWJsZSgpOyB9XHJcbiAgZ2V0IHN0YXRlKCkgeyByZXR1cm4gdGhpcy5fc3RhdGUkLmFzT2JzZXJ2YWJsZSgpOyB9XHJcbiAgY3JlYXRlKGVsZW1lbnQ6IEVsZW1lbnRJbmZvLCB0ZW1wbGF0ZT86IHN0cmluZykge1xyXG4gICAgY29uc3QgcmVmID0gbmV3IERlc2lnbmVyUmVmKHRoaXMuX2Rlc2lnbmVyLCBlbGVtZW50IGFzIEVsZW1lbnRNb2RlbCwgJ3dpZGdldCcpO1xyXG4gICAgY29uc3QgaW5qZWN0b3IgPSBJbmplY3Rvci5jcmVhdGUoW3tcclxuICAgICAgcHJvdmlkZTogRGVzaWduZXJSZWYsIHVzZVZhbHVlOiByZWZcclxuICAgIH1dLCAodGhpcy5fZWxlbWVudCBhcyBFbGVtZW50TW9kZWwpLmluamVjdG9yKTtcclxuICAgIChlbGVtZW50IGFzIEVsZW1lbnRNb2RlbCkudGVtcGxhdGUgPSB0ZW1wbGF0ZTtcclxuICAgIChlbGVtZW50IGFzIEVsZW1lbnRNb2RlbCkuaW5qZWN0b3IgPSBpbmplY3RvcjtcclxuICAgIHJldHVybiBlbGVtZW50O1xyXG4gIH1cclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIERlc2lnbmVyRWxlbWVudENvbXBvbmVudDxUPiB7XHJcbiAgbW9kZWw6IEVsZW1lbnRJbmZvPFQ+O1xyXG4gIG1vZGU6IERlc2lnbk1vZGU7XHJcbiAgZm9ybTogRm9ybUdyb3VwO1xyXG4gIG9uQ29udGludWU/KCk7XHJcbn1cclxuZXhwb3J0IGRlY2xhcmUgdHlwZSBEZXNpZ25Nb2RlID0gJ2FkZCcgfCAnZWRpdCcgfCAnd2lkZ2V0JztcclxuZXhwb3J0IGZ1bmN0aW9uIGNsb25lKGVsZW1lbnQ6IEVsZW1lbnRNb2RlbCkge1xyXG4gIHJldHVybiBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGVsZW1lbnQpKTtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gYXJyYXlPZih2YWw6IHN0cmluZyB8IHN0cmluZ1tdKSB7XHJcbiAgaWYgKCF2YWwpIHJldHVybiBbXTtcclxuICBpZiAoaXNTdHJpbmcodmFsKSkgcmV0dXJuIFt2YWxdO1xyXG4gIHJldHVybiB2YWw7XHJcbn1cclxuXHJcbmNvbnN0IE5BTUVfQ0hBUiA9IC9bQS1aXSsvZyxcclxuICBOT05fTkFNRV9DSEFSID0gL1teXFx3XSsvZztcclxuLyoqXHJcbiAqIFxyXG4gKiBAcGFyYW0gbmFtZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHByb2dyYW1OYW1lKG5hbWU6IHN0cmluZykge1xyXG4gIHJldHVybiBuYW1lLlxyXG4gICAgcmVwbGFjZSgnICcsICctJykuXHJcbiAgICByZXBsYWNlKE5BTUVfQ0hBUiwgKGMsIGkpID0+IChpID4gMCAmJiBuYW1lLmNoYXJBdChpIC0gMSkgIT09ICctJyA/ICctJyA6ICcnKSArIGMudG9Mb3dlckNhc2UoKSkuXHJcbiAgICByZXBsYWNlKE5PTl9OQU1FX0NIQVIsICdfJyk7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBEZXNpZ25lck1vZGVsIHtcclxuICB0eXBlczogRWxlbWVudE1vZGVsPGFueT5bXTtcclxuICB0VHlwZXM6IFRlbXBsYXRlSW5mb1tdO1xyXG4gIGd1aWRlczogRWxlbWVudE1vZGVsPGFueT5bXTtcclxuICByZXBvcnRzOiBFbGVtZW50TW9kZWw8YW55PltdO1xyXG4gIHRSZXBvcnRzOiBUZW1wbGF0ZUluZm9bXTtcclxuICBmb3JtczogRWxlbWVudE1vZGVsPGFueT5bXTtcclxuICB0Rm9ybXM6IFRlbXBsYXRlSW5mb1tdO1xyXG4gIGN1YmVzOiBFbGVtZW50TW9kZWw8YW55PltdO1xyXG4gIHRDdWJlczogVGVtcGxhdGVJbmZvW107XHJcbiAgdXRpbGl0aWVzOiBFbGVtZW50TW9kZWw8YW55PltdO1xyXG4gIHRVdGlsaXRpZXM6IFRlbXBsYXRlSW5mb1tdO1xyXG4gIGZvbGRlcnM6IEVsZW1lbnRNb2RlbDxhbnk+W107XHJcbiAgcm9sZXM6IEVsZW1lbnRNb2RlbDxhbnk+W107XHJcbiAgcnVsZXM6IEVsZW1lbnRNb2RlbDxhbnk+W107XHJcbiAgdFJ1bGVzOiBUZW1wbGF0ZUluZm9bXTtcclxuICB2aWV3czogRWxlbWVudE1vZGVsPGFueT5bXTtcclxuICB0Vmlld3M6IFRlbXBsYXRlSW5mb1tdO1xyXG4gIHdpZGdldHM6IEVsZW1lbnRNb2RlbDxhbnk+W107XHJcbiAgdFdpZGdldHM6IFRlbXBsYXRlSW5mb1tdO1xyXG4gIGFjdGlvbnM6IEVsZW1lbnRNb2RlbDxhbnk+W107XHJcbiAgdEFjdGlvbnM6IFRlbXBsYXRlSW5mb1tdO1xyXG4gIHN0YXRlczogRWxlbWVudE1vZGVsPGFueT5bXTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFRlbXBsYXRlSW5mbyB7XHJcbiAgdGVtcGxhdGU/OiBzdHJpbmc7XHJcbiAgdGl0bGU/OiBzdHJpbmc7XHJcbiAga2V5Pzogc3RyaW5nO1xyXG4gIGljb24/OiBzdHJpbmc7XHJcbiAgZmFtaWx5Pzogc3RyaW5nO1xyXG4gIGhlbHA/OiBzdHJpbmc7XHJcbiAgdHlwZT86IHN0cmluZztcclxuICBhcmd1bWVudHM/OiBGaWVsZEluZm9bXTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIEVsZW1lbnRNb2RlbDxUID0gYW55PiB7XHJcbiAga2V5Pzogc3RyaW5nO1xyXG4gIGluamVjdG9yOiBJbmplY3RvcjtcclxuICBvcmRpbmFsPzogbnVtYmVyO1xyXG4gIGhlbHA/OiBzdHJpbmc7XHJcbiAgY29uZmlndXJhdGlvbkZpbGU/OiBzdHJpbmc7XHJcbiAgdGVtcGxhdGU/OiBzdHJpbmc7XHJcbiAgaWNvbj86IHN0cmluZztcclxuICByZXNvdXJjZT86IHN0cmluZztcclxuICBjb3B5T2Y/OiBzdHJpbmc7XHJcbiAgZmFtaWx5Pzogc3RyaW5nO1xyXG4gIHR5cGU/OiBzdHJpbmc7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xyXG4gIGRyYWZ0PzogYm9vbGVhbjtcclxuICBlbXB0eT86IGJvb2xlYW47XHJcbiAgb3B0aW9ucz86IFQ7XHJcbiAgYXJndW1lbnRzPzogRmllbGRJbmZvW107XHJcbiAgcHJpdmlsZWdlcz86IFByaXZpbGVnZXNNb2RlbDtcclxuICBmaWx0ZXJzPzogQ3ViZUZpbHRlcjtcclxuICBjb2x1bW5zPzogRm9sZGVyQ29sdW1uW107XHJcbiAgYW5vbWFseT86IEFub21hbHlQb2xpY3k7XHJcbiAgdmVyYj86IHN0cmluZztcclxuICB5b3U/OiBzdHJpbmc7XHJcbiAgeW91TWFsZT86IHN0cmluZztcclxuICB5b3VGZW1hbGU/OiBzdHJpbmc7XHJcbiAgcGFzdD86IHN0cmluZztcclxuICBwYXN0TWFsZT86IHN0cmluZztcclxuICBwYXN0RmVtYWxlPzogc3RyaW5nO1xyXG4gIGFkamVjdGl2ZT86IHN0cmluZztcclxuICBsb2dnYWJsZT86IGJvb2xlYW47XHJcbiAgYWRqZWN0aXZlUGx1cmFsPzogc3RyaW5nO1xyXG4gIGFzc2lnbmFibGU/OiBib29sZWFuO1xyXG4gIHBvc2l0aW9uPzogUG9zaXRpb25Qb2xpY3k7XHJcbiAgbXVsdGlwbGU/OiBib29sZWFuO1xyXG4gIHNoYXBlPzogc3RyaW5nO1xyXG4gIGdyb3VwPzogbnVtYmVyO1xyXG4gIGRhdGFUeXBlPzogc3RyaW5nO1xyXG4gIHN0ZXBzPzogR3VpZGVTdGVwW107XHJcbiAgY3VycmVuY3lDb2RlPzogc3RyaW5nO1xyXG4gIGF4ZXM/OiBDdWJlQXhpc01vZGVsW107XHJcbiAgdmlld3M/OiBDdWJlVmlld01vZGVsW107XHJcbiAgaW5kaWNlcz86IEN1YmVJbmRleE1vZGVsW107XHJcbiAgc2NvcGU/OiBTY29wZVR5cGU7XHJcbiAgY29sb3I/OiBzdHJpbmc7XHJcbiAgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xyXG4gIHJ1bGVzPzogUGVybWlzc2lvbk1vZGVsW107XHJcbiAgcG9zaXRpb25zPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmdbXSB9O1xyXG4gIHBhdHRlcm5zPzogUGF0dGVybk1vZGVsW107XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBDdWJlSW5kZXhNb2RlbCB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIGFjY3VtdWxhdGU/OiBib29sZWFuO1xyXG4gIGhpZGRlbj86IGJvb2xlYW47XHJcbiAgdGl0bGU6IHN0cmluZztcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIEN1YmVWaWV3TW9kZWwge1xyXG4gIHByaXZpbGVnZXM/OiBQcml2aWxlZ2VzTW9kZWw7XHJcbiAgeEF4aXM6IHN0cmluZ1tdO1xyXG4gIHNlcmllcz86IHN0cmluZ1tdO1xyXG4gIGZpbHRlcnM/OiBBeGVzTWFwO1xyXG4gIGluZGljZXM/OiBzdHJpbmdbXTtcclxuICBpY29uPzogc3RyaW5nO1xyXG4gIGd1aWRlPzogc3RyaW5nO1xyXG4gIG5hbWU6IHN0cmluZztcclxuICB0aXRsZTogc3RyaW5nO1xyXG4gIHR5cGU6IFZpZXdUeXBlO1xyXG4gIGNoYXJ0VHlwZT86IENoYXJ0VHlwZTtcclxuICBpbmRpY2VzQ2hhcnRUeXBlPzogQ2hhcnRUeXBlO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgQ3ViZUF4aXNNb2RlbCB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgZGF0YVR5cGU6IHN0cmluZztcclxuICBoaWRkZW4/OiBib29sZWFuO1xyXG4gIGNvbWJpbmF0aW9uPzogYm9vbGVhbjtcclxuICBpbmRleGFibGU/OiBib29sZWFuO1xyXG4gIHNlbnNpdGl2ZT86IGJvb2xlYW47XHJcbiAgcmVzb3VyY2VUeXBlPzogc3RyaW5nO1xyXG4gIHNlbGVjdGlvbk1vZGU/OiAnU2luZ2xlJyB8ICdQYXR0ZXJuJyB8ICdNdWx0aXBsZScgfCAnU2VhcmNoJyB8ICdOb25lJztcclxuICBkZXNjZW5kZW50T2Y/OiBzdHJpbmc7XHJcbn1cclxuZXhwb3J0IHR5cGUgQW5vbWFseVBvbGljeSA9ICdQb3NpdGlvbnMnIHwgJ1JlY2lwaWVudHMnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBQYXR0ZXJuTW9kZWwge1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgcmVzb3VyY2VUeXBlPzogc3RyaW5nO1xyXG4gIGF4ZXM6IEF4ZXNNYXA7XHJcbiAgcnVsZT86IHN0cmluZztcclxuICByb2xlcz86IHN0cmluZ1tdO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgUGVybWlzc2lvbk1vZGVsIHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICBydWxlPzogc3RyaW5nO1xyXG4gIHJvbGVzPzogc3RyaW5nW107XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBQcml2aWxlZ2VzTW9kZWwge1xyXG4gIHJ1bGU/OiBzdHJpbmc7XHJcbiAgcm9sZXM/OiBzdHJpbmdbXTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIERlc2lnbmVySW5mbyB7XHJcbiAgdHlwZXM6IEVsZW1lbnRJbmZvW107XHJcbiAgZ3VpZGVzOiBFbGVtZW50SW5mb1tdO1xyXG4gIHJlcG9ydHM6IEVsZW1lbnRJbmZvW107XHJcbiAgdFJlcG9ydHM6IFRlbXBsYXRlSW5mb1tdO1xyXG4gIGZvcm1zOiBFbGVtZW50SW5mb1tdO1xyXG4gIGN1YmVzOiBFbGVtZW50SW5mb1tdO1xyXG4gIHV0aWxpdGllczogRWxlbWVudEluZm9bXTtcclxuICBmb2xkZXJzOiBFbGVtZW50SW5mb1tdO1xyXG4gIHJvbGVzOiBFbGVtZW50SW5mb1tdO1xyXG4gIHJ1bGVzOiBFbGVtZW50SW5mb1tdO1xyXG4gIHZpZXdzOiBFbGVtZW50SW5mb1tdO1xyXG4gIHdpZGdldHM6IEVsZW1lbnRJbmZvW107XHJcbiAgYWN0aW9uczogRWxlbWVudEluZm9bXTtcclxuICBzdGF0ZXM6IEVsZW1lbnRJbmZvW107XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBFbGVtZW50SW5mbzxUID0gYW55PiB7XHJcbiAgZmFtaWx5Pzogc3RyaW5nO1xyXG4gIHR5cGU/OiBzdHJpbmc7XHJcbiAga2V5Pzogc3RyaW5nO1xyXG4gIG5hbWU6IHN0cmluZztcclxuICB0aXRsZTogc3RyaW5nO1xyXG4gIGRpc2FibGVkPzogYm9vbGVhbjtcclxuICBkcmFmdD86IGJvb2xlYW47XHJcbiAgZW1wdHk/OiBib29sZWFuO1xyXG4gIG9wdGlvbnM/OiBUO1xyXG59XHJcbiJdfQ==
118
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjbGFyYXRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9hZG1pbi9jb25maWd1cmF0aW9uLWRlc2lnbmVyL2RlY2xhcmF0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3pDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVoRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRCxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUc7SUFDeEIsT0FBTyxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09Bc0JKO0lBQ0wsS0FBSyxFQUFFOzs7Ozs7OztPQVFGO0lBQ0wsS0FBSyxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7T0FlRjtJQUNMLFVBQVUsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FpQlA7SUFDTCxrQkFBa0IsRUFBRSxxa05BQXFrTjtDQUMxbE4sQ0FBQztBQUNGLE1BQU07QUFDTixNQUFNLE9BQU8sV0FBVztJQUd0QixZQUFvQixTQUF3QixFQUNsQyxRQUFzQixFQUN2QixJQUFnQjtRQUZMLGNBQVMsR0FBVCxTQUFTLENBQWU7UUFDbEMsYUFBUSxHQUFSLFFBQVEsQ0FBYztRQUN2QixTQUFJLEdBQUosSUFBSSxDQUFZO1FBSnpCLGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBVyxDQUFDO1FBQ2xDLFlBQU8sR0FBRyxJQUFJLGVBQWUsQ0FBTSxJQUFJLENBQUMsQ0FBQztJQUdaLENBQUM7SUFDOUIsSUFBSSxRQUFRLEtBQW1CLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDdkQsSUFBSSxLQUFLLEtBQXFCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDckQsSUFBSSxNQUFNLEtBQUssT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNyRCxJQUFJLEtBQUssS0FBSyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUMxQyxJQUFJLEtBQUssQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzFDLE1BQU0sQ0FBQyxPQUFvQixFQUFFLFFBQWlCO1FBQzVDLE1BQU0sR0FBRyxHQUFHLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsT0FBdUIsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUMvRSxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ2hDLE9BQU8sRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLEdBQUc7YUFDcEMsQ0FBQyxFQUFHLElBQUksQ0FBQyxRQUF5QixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzdDLE9BQXdCLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUM3QyxPQUF3QixDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDOUMsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztDQUNGO0FBU0QsTUFBTSxVQUFVLEtBQUssQ0FBQyxPQUFxQjtJQUN6QyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0FBQzdDLENBQUM7QUFDRCxNQUFNLFVBQVUsT0FBTyxDQUFDLEdBQXNCO0lBQzVDLElBQUksQ0FBQyxHQUFHO1FBQUUsT0FBTyxFQUFFLENBQUM7SUFDcEIsSUFBSSxRQUFRLENBQUMsR0FBRyxDQUFDO1FBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2hDLE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQztBQUVELE1BQU0sU0FBUyxHQUFHLFNBQVMsRUFDekIsYUFBYSxHQUFHLFNBQVMsQ0FBQztBQUM1Qjs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsV0FBVyxDQUFDLElBQVk7SUFDdEMsT0FBTyxJQUFJO1FBQ1QsT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUM7UUFDakIsT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2hHLE9BQU8sQ0FBQyxhQUFhLEVBQUUsR0FBRyxDQUFDLENBQUM7QUFDaEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdG9yIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IFNjb3BlVHlwZSB9IGZyb20gXCIuLi8uLi9jb3JlL2NvbmZpZ3VyYXRpb25cIjtcclxuaW1wb3J0IHsgaXNTdHJpbmcgfSBmcm9tIFwiLi4vLi4vY29yZS9mdW5jdGlvbnNcIjtcclxuaW1wb3J0IHsgQXhlc01hcCwgQ2hhcnRUeXBlLCBDdWJlRmlsdGVyLCBGaWVsZEluZm8sIEZvbGRlckNvbHVtbiwgR3VpZGVTdGVwLCBQb3NpdGlvblBvbGljeSwgVmlld1R5cGUgfSBmcm9tIFwiLi4vLi4vY29yZS9tb2RlbHNcIjtcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcclxuZXhwb3J0IGNvbnN0IEZBTUlMWV9TVkcgPSB7XHJcbiAgXCJBenVyZVwiOiBgPHN2ZyB3aWR0aD1cIjM0XCIgaGVpZ2h0PVwiMzRcIiB2aWV3Qm94PVwiMCAwIDk2IDk2XCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgPGRlZnM+XHJcbiAgICAgICAgPGxpbmVhckdyYWRpZW50IGlkPVwiZTM5OWMxOWYtYjY4Zi00MjlkLWIxNzYtMThjMjExN2ZmNzNjXCIgeDE9XCItMTAzMi4xNzJcIiB4Mj1cIi0xMDU5LjIxM1wiIHkxPVwiMTQ1LjMxMlwiIHkyPVwiNjUuNDI2XCIgZ3JhZGllbnRUcmFuc2Zvcm09XCJtYXRyaXgoMSAwIDAgLTEgMTA3NSAxNTgpXCIgZ3JhZGllbnRVbml0cz1cInVzZXJTcGFjZU9uVXNlXCI+XHJcbiAgICAgICAgICAgIDxzdG9wIG9mZnNldD1cIjBcIiBzdG9wLWNvbG9yPVwiIzExNGE4YlwiLz5cclxuICAgICAgICAgICAgPHN0b3Agb2Zmc2V0PVwiMVwiIHN0b3AtY29sb3I9XCIjMDY2OWJjXCIvPlxyXG4gICAgICAgIDwvbGluZWFyR3JhZGllbnQ+XHJcbiAgICAgICAgPGxpbmVhckdyYWRpZW50IGlkPVwiYWMyYTZmYzItY2E0OC00MzI3LTlhM2MtZDRkY2MzMjU2ZTE1XCIgeDE9XCItMTAyMy43MjVcIiB4Mj1cIi0xMDI5Ljk4XCIgeTE9XCIxMDguMDgzXCIgeTI9XCIxMDUuOTY4XCIgZ3JhZGllbnRUcmFuc2Zvcm09XCJtYXRyaXgoMSAwIDAgLTEgMTA3NSAxNTgpXCIgZ3JhZGllbnRVbml0cz1cInVzZXJTcGFjZU9uVXNlXCI+XHJcbiAgICAgICAgICAgIDxzdG9wIG9mZnNldD1cIjBcIiBzdG9wLW9wYWNpdHk9XCIuM1wiLz5cclxuICAgICAgICAgICAgPHN0b3Agb2Zmc2V0PVwiLjA3MVwiIHN0b3Atb3BhY2l0eT1cIi4yXCIvPlxyXG4gICAgICAgICAgICA8c3RvcCBvZmZzZXQ9XCIuMzIxXCIgc3RvcC1vcGFjaXR5PVwiLjFcIi8+XHJcbiAgICAgICAgICAgIDxzdG9wIG9mZnNldD1cIi42MjNcIiBzdG9wLW9wYWNpdHk9XCIuMDVcIi8+XHJcbiAgICAgICAgICAgIDxzdG9wIG9mZnNldD1cIjFcIiBzdG9wLW9wYWNpdHk9XCIwXCIvPlxyXG4gICAgICAgIDwvbGluZWFyR3JhZGllbnQ+XHJcbiAgICAgICAgPGxpbmVhckdyYWRpZW50IGlkPVwiYTdmZWU5NzAtYTc4NC00YmIxLWFmOGQtNjNkMThlNWY3ZGI5XCIgeDE9XCItMTAyNy4xNjVcIiB4Mj1cIi05OTcuNDgyXCIgeTE9XCIxNDcuNjQyXCIgeTI9XCI2OC41NjFcIiBncmFkaWVudFRyYW5zZm9ybT1cIm1hdHJpeCgxIDAgMCAtMSAxMDc1IDE1OClcIiBncmFkaWVudFVuaXRzPVwidXNlclNwYWNlT25Vc2VcIj5cclxuICAgICAgICAgICAgPHN0b3Agb2Zmc2V0PVwiMFwiIHN0b3AtY29sb3I9XCIjM2NjYmY0XCIvPlxyXG4gICAgICAgICAgICA8c3RvcCBvZmZzZXQ9XCIxXCIgc3RvcC1jb2xvcj1cIiMyODkyZGZcIi8+XHJcbiAgICAgICAgPC9saW5lYXJHcmFkaWVudD5cclxuICAgIDwvZGVmcz5cclxuICAgIDxwYXRoIGZpbGw9XCJ1cmwoI2UzOTljMTlmLWI2OGYtNDI5ZC1iMTc2LTE4YzIxMTdmZjczYylcIiBkPVwiTTMzLjMzOCA2LjU0NGgyNi4wMzhsLTI3LjAzIDgwLjA4N2E0LjE1MiA0LjE1MiAwIDAgMS0zLjkzMyAyLjgyNEg4LjE0OWE0LjE0NSA0LjE0NSAwIDAgMS0zLjkyOC01LjQ3TDI5LjQwNCA5LjM2OGE0LjE1MiA0LjE1MiAwIDAgMSAzLjkzNC0yLjgyNXpcIi8+XHJcbiAgICA8cGF0aCBmaWxsPVwiIzAwNzhkNFwiIGQ9XCJNNzEuMTc1IDYwLjI2MWgtNDEuMjlhMS45MTEgMS45MTEgMCAwIDAtMS4zMDUgMy4zMDlsMjYuNTMyIDI0Ljc2NGE0LjE3MSA0LjE3MSAwIDAgMCAyLjg0NiAxLjEyMWgyMy4zOHpcIi8+XHJcbiAgICA8cGF0aCBmaWxsPVwidXJsKCNhYzJhNmZjMi1jYTQ4LTQzMjctOWEzYy1kNGRjYzMyNTZlMTUpXCIgZD1cIk0zMy4zMzggNi41NDRhNC4xMTggNC4xMTggMCAwIDAtMy45NDMgMi44NzlMNC4yNTIgODMuOTE3YTQuMTQgNC4xNCAwIDAgMCAzLjkwOCA1LjUzOGgyMC43ODdhNC40NDMgNC40NDMgMCAwIDAgMy40MS0yLjlsNS4wMTQtMTQuNzc3IDE3LjkxIDE2LjcwNWE0LjIzNyA0LjIzNyAwIDAgMCAyLjY2Ni45NzJIODEuMjRMNzEuMDI0IDYwLjI2MWwtMjkuNzgxLjAwN0w1OS40NyA2LjU0NHpcIi8+XHJcbiAgICA8cGF0aCBmaWxsPVwidXJsKCNhN2ZlZTk3MC1hNzg0LTRiYjEtYWY4ZC02M2QxOGU1ZjdkYjkpXCIgZD1cIk02Ni41OTUgOS4zNjRhNC4xNDUgNC4xNDUgMCAwIDAtMy45MjgtMi44MkgzMy42NDhhNC4xNDYgNC4xNDYgMCAwIDEgMy45MjggMi44MmwyNS4xODQgNzQuNjJhNC4xNDYgNC4xNDYgMCAwIDEtMy45MjggNS40NzJoMjkuMDJhNC4xNDYgNC4xNDYgMCAwIDAgMy45MjctNS40NzJ6XCIvPlxyXG48L3N2Zz5gLFxyXG4gICdTQVAnOiBgPHN2ZyBoZWlnaHQ9XCI0NVwiIHZpZXdCb3g9XCIwIDAgMTkyLjc1NiAxOTIuNzU2XCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gIDxkZWZzPjwvZGVmcz5cclxuICA8cGF0aCBmaWxsPVwiI2ZmZlwiIGQ9XCJNIDAgMCBMIDE5Mi43NTYgMCBMIDE5Mi43NTYgMTkyLjc1NiBMIDAgMTkyLjc1NiBMIDAgMCBaXCIgZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGNsaXAtcnVsZT1cImV2ZW5vZGRcIj48L3BhdGg+XHJcbiAgPHBhdGggZD1cIk0gMTgzLjcyNyA2Ni43NzUgQyAxODcuMDA2IDY2Ljc3NSAxODkuOTIyIDYzLjg2MSAxODkuOTIyIDYwLjIxNyBDIDE4OS45MjIgNTYuNzU2IDE4Ny4wMDYgNTQuMDIzIDE4My43MjcgNTQuMDIzIEMgMTgwLjI2NiA1NC4wMjMgMTc3LjE3IDU2Ljc1NSAxNzcuMTcgNjAuMjE3IEMgMTc3LjE3IDYzLjg2MSAxODAuMjY2IDY2Ljc3NSAxODMuNzI3IDY2Ljc3NSBaIE0gMTgzLjcyNyA2NS44NjUgQyAxODAuNDUgNjUuODY1IDE3OC4wODEgNjMuNDk3IDE3OC4wODEgNjAuMjE4IEMgMTc4LjA4MSA1Ny4zMDMgMTgwLjQ1IDU0LjkzNSAxODMuNzI3IDU0LjkzNSBDIDE4Ni42NDQgNTQuOTM3IDE4OS4wMDggNTcuMzAxIDE4OS4wMSA2MC4yMTggQyAxODkuMDEgNjMuNDk3IDE4Ni42NDMgNjUuODY1IDE4My43MjcgNjUuODY1IFpcIiBmaWxsPVwiIzIzNGI4ZFwiIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBjbGlwLXJ1bGU9XCJldmVub2RkXCI+PC9wYXRoPlxyXG4gIDxwYXRoIGQ9XCJNIDE4Mi4wODggNjAuOTQ2IEwgMTg0LjI3NCA2MC45NDYgQyAxODUuMTg2IDYwLjk0NiAxODUuMzY4IDYxLjQ5MiAxODUuMzY4IDYyLjAzOSBDIDE4NS4zNjggNjIuMjIyIDE4NS4zNjggNjMuMzE0IDE4NS41NSA2My44NjEgTCAxODYuNjQ0IDYzLjg2MSBMIDE4Ni42NDQgNjMuNDk3IEMgMTg2LjQ2MiA2My4zMTQgMTg2LjI3OSA2My4zMTQgMTg2LjI3OSA2Mi45NSBMIDE4Ni4yNzkgNjEuODU3IEMgMTg2LjI3OSA2MC45NDYgMTg1LjkxNiA2MC43NjQgMTg1LjU1IDYwLjU4MiBDIDE4Ni4wOTcgNjAuMjE4IDE4Ni40NjIgNTkuODUzIDE4Ni40NjIgNTguNzYxIEMgMTg2LjQ2MiA1Ny40ODYgMTg1LjM2OCA1Ni45MzkgMTg0LjI3NCA1Ni45MzkgTCAxODEuMTc4IDU2LjkzOSBMIDE4MS4xNzggNjMuODYyIEwgMTgyLjA4OCA2My44NjIgTCAxODIuMDg4IDYwLjk0NiBMIDE4Mi4wODggNjAuOTQ2IFogTSAxODIuMDg4IDU3Ljg1IEwgMTg0LjI3NCA1Ny44NSBDIDE4NC44MjEgNTcuODUgMTg1LjU0OSA1Ny44NSAxODUuNTQ5IDU4Ljk0MyBDIDE4NS41NDkgNTkuODU0IDE4NC44MiA2MC4wMzYgMTg0LjA5MiA2MC4wMzYgTCAxODIuMDg4IDYwLjAzNiBMIDE4Mi4wODggNTcuODUgTCAxODIuMDg4IDU3Ljg1IFogTSAzLjM4MSA1My44NDIgTCA4Ny4xNzggNTMuODQyIEwgODcuMTc4IDEzNy44MjEgTCAzLjM4MSAxMzcuODIxIEwgMy4zODEgNTMuODQyIFogTSAxNzQuODAxIDUzLjg0MiBMIDkwLjgyMiA1My44NDIgTCA5MC44MjIgMTM3LjgyMSBMIDE3NC44MDEgNTMuODQyIFpcIiBmaWxsPVwiIzIzNGI4ZFwiIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBjbGlwLXJ1bGU9XCJldmVub2RkXCI+PC9wYXRoPlxyXG4gIDxwYXRoIGQ9XCJNIDY5LjUwOCAxMjkuMjYgTCA3Ni4wNjYgMTI5LjI2IEMgODUuNzIxIDEyOS4yNiA4Ny41NDMgMTIxLjA2MiA4Ny4xNzggMTE4LjY5NCBDIDg2LjYzMiAxMTIuODY1IDgyLjI2IDEwOS4yMjEgNzYuMjQ4IDEwOS4yMjEgTCA2MC4yMTcgMTA5LjIyMSBMIDYwLjIxNyAxMzguNTUgTCA2OS41MDggMTM4LjU1IEwgNjkuNTA4IDEyOS4yNiBaIE0gNjkuNTA4IDEyMi4zMzcgTCA2OS41MDggMTE1Ljk2MSBMIDczLjUxNSAxMTUuOTYxIEMgNzYuNzk0IDExNS45NjEgNzguMDY5IDExNi42OSA3OC4wNjkgMTE5LjA1OCBDIDc4LjA2OSAxMjAuMTUxIDc4LjA2OSAxMjIuMzM3IDc0LjQyNiAxMjIuMzM3IEwgNjkuNTA4IDEyMi4zMzcgTCA2OS41MDggMTIyLjMzNyBaXCIgZmlsbD1cIiNmZmZcIiBmaWxsLXJ1bGU9XCJldmVub2RkXCIgY2xpcC1ydWxlPVwiZXZlbm9kZFwiPjwvcGF0aD5cclxuICA8cGF0aCBkPVwiTSAzOS45OTcgMTMyLjM1NiBMIDQ5LjI4OCAxMzIuMzU2IEwgNTEuNjU2IDEzOC41NDkgTCA2MS40OTMgMTM4LjU0OSBMIDUwLjM4IDEwOS4yMjEgTCAzOS4yNjggMTA5LjIyMSBMIDI3Ljk3NCAxMzguNTUgTCAzNy40NDcgMTM4LjU1IEwgMzkuOTk3IDEzMi4zNTYgTCAzOS45OTcgMTMyLjM1NiBaIE0gNDQuOTE2IDExNy40MTkgTCA0OC4xOTUgMTI2LjE2MiBMIDQxLjgyIDEyNi4xNjIgTCA0NC45MTYgMTE3LjQxOSBaXCIgZmlsbD1cIiNmZmZcIiBmaWxsLXJ1bGU9XCJldmVub2RkXCIgY2xpcC1ydWxlPVwiZXZlbm9kZFwiPjwvcGF0aD5cclxuICA8cGF0aCBkPVwiTSAyLjgzNCAxMjkuMjYgTCAyLjgzNCAxMzAuOSBDIDIuODM0IDEzNi43MjkgOS45MzggMTM4LjkxNSAxNi42NzkgMTM4LjkxNSBDIDI1Ljc4NyAxMzguOTE1IDMxLjI1MyAxMzUuNjM2IDMxLjI1MyAxMjkuMjYxIEMgMzEuMjUzIDExOS4wNTkgMTMuMDM2IDEyMi4xNTYgMTMuMDM2IDExNi4xNDUgQyAxMy4wMzYgMTEzLjk1OCAxNC42NzYgMTEzLjIzIDE3LjIyNiAxMTMuMjMgQyAxOC44NjUgMTEzLjIzIDE5LjQxMiAxMTMuNTk0IDE5Ljk1OCAxMTMuOTU5IEMgMjEuMDUxIDExNC42ODggMjEuMDUxIDExNS41OTkgMjEuMDUxIDExNy4yMzggTCAzMC43MDYgMTE3LjIzOCBMIDMwLjcwNiAxMTYuNTA5IEMgMzAuNzA2IDExMi4xMzcgMjYuODggMTA4LjQ5MyAxNy4yMjYgMTA4LjQ5MyBDIDYuNjYgMTA4LjQ5MyAzLjM4MSAxMTIuNTAxIDMuMzgxIDExNy4yMzcgQyAzLjM4MSAxMjcuNjIxIDIxLjU5OCAxMjQuMzQxIDIxLjU5OCAxMzAuNzE3IEMgMjEuNTk4IDEzMS45OTIgMjAuNTA1IDEzMy44MTQgMTYuNjc5IDEzMy44MTQgQyAxMy41ODIgMTMzLjgxNCAxMi40ODkgMTMyLjM1NyAxMi40ODkgMTMwLjE3IEwgMTIuNDg5IDEyOS4yNiBMIDIuODM0IDEyOS4yNiBMIDIuODM0IDEyOS4yNiBaXCIgZmlsbD1cIiNmZmZcIiBmaWxsLXJ1bGU9XCJldmVub2RkXCIgY2xpcC1ydWxlPVwiZXZlbm9kZFwiPjwvcGF0aD5cclxuPC9zdmc+YCxcclxuICAnTWZnJzogYDxzdmcgaGVpZ2h0PVwiMzRcIiB2aWV3Qm94PVwiMCAwIDEwMCA1MFwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICA8ZGVmcz48L2RlZnM+XHJcbiAgPHJlY3Qgd2lkdGg9XCI5M1wiIGhlaWdodD1cIjM4XCIgc3R5bGU9XCJmaWxsOiByZ2IoMjE2LCAyMTYsIDIxNik7XCI+PC9yZWN0PlxyXG4gIDxnIHRyYW5zZm9ybT1cIm1hdHJpeCgxLCAwLCAwLCAxLCA1LCA2KVwiPlxyXG4gICAgPGc+XHJcbiAgICAgIDxnPlxyXG4gICAgICAgIDxwYXRoIGZpbGw9XCIjRkZGRkZGXCIgZD1cIk00MS4xLDEuOGwxMy4xLDIwLjVoLTMuOEw0NywxNy4xSDM1LjZsLTMuMSw1LjJoLTMuOEw0MS4xLDEuOHogTTM3LjIsMTQuNWg4LjFsLTQuMi02LjZMMzcuMiwxNC41elwiPjwvcGF0aD5cclxuICAgICAgICA8cGF0aCBmaWxsPVwiI0ZGRkZGRlwiIGQ9XCJNNTkuMywyLjVoOS4zYzguOCwwLDEyLjcsNS4yLDEyLjcsOS45YzAsNS4xLTQuOCw5LjktMTIuNiw5LjloLTkuM1YyLjV6IE02Mi43LDE5LjdoNS40XHJcblx0XHRcdFx0YzcuOCwwLDkuNS00LjksOS41LTcuNGMwLTQtMy03LjQtOS43LTcuNGgtNS4zVjE5Ljd6XCI+PC9wYXRoPlxyXG4gICAgICAgIDxwYXRoIGZpbGw9XCIjRkZGRkZGXCIgZD1cIk0yNS43LDEyLjNjMC01LjgtNS40LTEwLjEtMTIuNS0xMC4xQzUuNCwyLjIsMCw2LjQsMCwxMi40YzAsNiw1LjQsMTAuMiwxMy4xLDEwLjJjMS40LDAsMi42LTAuMiwzLjgtMC41XHJcblx0XHRcdFx0bDMuMywyLjZoNWwtNC45LTMuOUMyMy42LDE5LDI1LjcsMTUuOSwyNS43LDEyLjN6IE0xMy4xLDIwYy02LjQsMC05LjUtMy41LTkuNS03LjVjMC0zLDIuMy03LjYsOS41LTcuNmM1LjMsMCw5LjIsMy4zLDkuMiw3LjdcclxuXHRcdFx0XHRDMjIuMSwxNi41LDE4LjQsMjAsMTMuMSwyMHpcIj48L3BhdGg+XHJcbiAgICAgIDwvZz5cclxuICAgIDwvZz5cclxuICA8L2c+XHJcbjwvc3ZnPmAsXHJcbiAgJ1ByaW9yaXR5JzogYDxzdmcgZmlsbD1cIm5vbmVcIiBoZWlnaHQ9XCI2MFwiIHZpZXdCb3g9XCIwIDAgMjQwIDEzM1wiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICA8Zz5cclxuICAgIDxwYXRoIGQ9XCJNIDAgMCBMIDI0MCAwIEwgMjQwIDgwLjQ3IEwgMCA4MC40NyBMIDAgMCBaXCIgZmlsbD1cIiNmZmZcIiBzdHlsZT1cIlwiLz5cclxuICAgIDxnIHRyYW5zZm9ybT1cIm1hdHJpeCgxLCAwLCAwLCAxLCAtMTIuNTI0ODQxLCAtMjQuNTkxNDQ0KVwiPlxyXG4gICAgICA8cGF0aCBkPVwiTSAxNzcuNzQ4IDUwLjY3MyBMIDE3My42NDIgNTAuNjczIEwgMTczLjY0MiA1NS4wMjIgTCAxNzcuNzQ4IDU1LjAyMiBMIDE3Ny43NDggNTAuNjczIFpcIiBmaWxsPVwiIzAwYWVlZlwiLz5cclxuICAgICAgPHBhdGggZD1cIk0gNjIuNzM0IDU2LjU3OCBDIDYyLjczNCA1NS40NCA2Mi40MjMgNTUuMDc3IDYxLjQzNyA1NS4wMjYgTCA1OS4yNjMgNTQuODY5IEwgNTkuMjYzIDUwLjY3NCBMIDY4LjAxOSA1MC42NzQgTCA2OC4wMTkgNTQuNTU4IEMgNjkuMjExIDUxLjk2OCA3MS45NTYgNDkuODk2IDc1LjM3MyA0OS44OTYgQyA3Ny4wODYgNDkuODk2IDc4LjY0IDUwLjIwNyA4MC4zNDggNTEuMDM1IEwgODAuMzQ4IDU4Ljc1NSBMIDc1LjUzMSA1OS4xMTcgTCA3NS41MzEgNTYuNzM0IEMgNzUuNTMxIDU2LjExMyA3NS40MjggNTUuNjQ3IDc1LjAxMiA1NS40NCBDIDc0LjU0NCA1NS4yMzIgNzQuMTggNTUuMTggNzMuNjEzIDU1LjE4IEMgNzAuODE1IDU1LjE4IDY4Ljg5OCA1Ny40MDkgNjguODk4IDYwLjQxNCBMIDY4Ljg5OCA3Mi40MzEgTCA3My40MDggNzIuNjM2IEwgNzMuNDA4IDc2LjczIEwgNTkuNTIgNzYuNzMgTCA1OS41MiA3Mi43OTUgTCA2MS4yMzIgNzIuNjM2IEMgNjIuMjE3IDcyLjUzMyA2Mi43MzQgNzIuMjI0IDYyLjczNCA3MC45MjkgTCA2Mi43MzQgNTYuNTc4IFpcIiBmaWxsPVwiIzAwMFwiLz5cclxuICAgICAgPHBhdGggZD1cIk0gMTE1LjQ2OSA2My44MzIgQyAxMTUuNDY5IDU4LjAzMSAxMTQuMDc0IDU0LjQ1NiAxMDkuOTMgNTQuNDU2IEMgMTA1LjgzMyA1NC40NTYgMTA0LjE3NyA1Ny45NzggMTA0LjE3NyA2Mi45NTIgQyAxMDQuMTc3IDY3Ljc2OCAxMDQuODUgNzIuOTQ2IDEwOS44MjUgNzIuOTQ2IEMgMTEzLjg2NSA3Mi45NDYgMTE1LjQ2OSA2OS4yMjEgMTE1LjQ2OSA2My44MzIgWiBNIDExMC4yMzkgNDkuODk2IEMgMTE0LjA3NCA0OS44OTYgMTIxLjc4OSA1MS4wODUgMTIxLjc4OSA2My4wMDMgQyAxMjEuNzg5IDcyLjk0NiAxMTYuMjQ3IDc3LjUwNyAxMDkuNDEgNzcuNTA3IEMgMTAyLjQ2NyA3Ny41MDcgOTcuOTA5IDczLjA1MyA5Ny45MDkgNjMuNjc0IEMgOTcuOTA5IDUyLjkwMiAxMDQuOTA0IDQ5Ljg5NiAxMTAuMjM5IDQ5Ljg5NiBaXCIgZmlsbD1cIiMwMDBcIi8+XHJcbiAgICAgIDxwYXRoIGQ9XCJNIDEyNy41NDMgNTYuNTc4IEMgMTI3LjU0MyA1NS40NCAxMjcuMjM1IDU1LjA3NyAxMjYuMjUgNTUuMDI2IEwgMTI0LjA3MiA1NC44NjkgTCAxMjQuMDcyIDUwLjY3NCBMIDEzMi44MyA1MC42NzQgTCAxMzIuODMgNTQuNTU4IEMgMTM0LjAxOSA1MS45NjggMTM2Ljc2NiA0OS44OTYgMTQwLjE4NyA0OS44OTYgQyAxNDEuODk0IDQ5Ljg5NiAxNDMuNDQ5IDUwLjIwNyAxNDUuMTU4IDUxLjAzNSBMIDE0NS4xNTggNTguNzU1IEwgMTQwLjM0MSA1OS4xMTcgTCAxNDAuMzQxIDU2LjczNCBDIDE0MC4zNDEgNTYuMTEzIDE0MC4yMzggNTUuNjQ3IDEzOS44MjIgNTUuNDQgQyAxMzkuMzU2IDU1LjIzMiAxMzguOTk1IDU1LjE4IDEzOC40MjUgNTUuMTggQyAxMzUuNjI1IDU1LjE4IDEzMy43MSA1Ny40MDkgMTMzLjcxIDYwLjQxNCBMIDEzMy43MSA3Mi40MzEgTCAxMzguMjE1IDcyLjYzNiBMIDEzOC4yMTUgNzYuNzMgTCAxMjQuMzMzIDc2LjczIEwgMTI0LjMzMyA3Mi43OTUgTCAxMjYuMDQyIDcyLjYzNiBDIDEyNy4wMjYgNzIuNTMzIDEyNy41NDMgNzIuMjI0IDEyNy41NDMgNzAuOTI5IEwgMTI3LjU0MyA1Ni41NzggWlwiIGZpbGw9XCIjMDAwXCIvPlxyXG4gICAgICA8cGF0aCBkPVwiTSAyMDIuMDE2IDcxLjgxMiBDIDIwMC4yMDMgNzQuNCAxOTcuMDQ2IDc1Ljg1MSAxOTMuNjIyIDc1Ljg1MSBDIDE4OC40NDMgNzUuODUxIDE4NS41OTQgNzMuMDAxIDE4NS41OTQgNjYuODg3IEwgMTg1LjU5NCA1Ni40NzcgQyAxODUuNTk0IDU1LjM4NiAxODUuMTc4IDU1LjA3OCAxODQuMzAxIDU1LjAyMyBMIDE4Mi42MzkgNTQuOTIxIEwgMTgyLjYzOSA1MC42NzMgTCAxOTEuNzU2IDUwLjY3MyBMIDE5MS43NTYgNjUuNTQxIEMgMTkxLjc1NiA2OC43IDE5Mi4yNzQgNzEuMDg0IDE5NS41OTEgNzEuMDg0IEMgMTk5LjIyIDcxLjA4NCAyMDEuMTM2IDY4LjY0NyAyMDEuMTM2IDY1Ljk1NyBMIDIwMS4xMzYgNTYuNTc4IEMgMjAxLjEzNiA1NS40NCAyMDAuODIyIDU1LjAyMyAxOTkuODM3IDU1LjAyMyBMIDE5OC4xODIgNTQuOTIxIEwgMTk4LjE4MiA1MC42NzMgTCAyMDcuMjk3IDUwLjY3MyBMIDIwNy4yOTcgNzUuNzQ3IEMgMjA3LjI5NyA4NC4yOTYgMjAzIDg3LjgxNyAxOTUuMjc4IDg3LjgxNyBDIDE5Mi4wMTYgODcuODE3IDE4Ny43MTkgODcuMTk2IDE4NS41NDQgODYuMTA5IEwgMTg1LjU0NCA4MC42OTQgTCAxOTAuNDYzIDgwLjI3OCBMIDE5MC40NjMgODAuOTc4IEMgMTkwLjQ2MyA4MS45NjIgMTkwLjcyMSA4Mi40ODIgMTkxLjY1NyA4Mi44NDMgQyAxOTIuNjM5IDgzLjIwNyAxOTMuNzgxIDgzLjM2MiAxOTUuMzM0IDgzLjM2MiBDIDIwMC4wOTkgODMuMzYyIDIwMi4wMTYgODAuNDYxIDIwMi4wMTYgNzUuNzQ3IEwgMjAyLjAxNiA3MS44MTIgWlwiIGZpbGw9XCIjMDAwXCIvPlxyXG4gICAgICA8cGF0aCBkPVwiTSAxNTcuNjcxIDcyLjQzIEwgMTU3LjY3MSA1MC42NzQgTCAxNDguMzk4IDUwLjY3NCBMIDE0OC4zOTggNTQuOTcyIEwgMTUwLjIxIDU1LjA3NyBDIDE1MS4xOTMgNTUuMDc3IDE1MS41MDggNTUuNDM5IDE1MS41MDggNTYuNTc3IEwgMTUxLjUzNSA3Ni43MyBMIDE2MC42MjIgNzYuNzMgTCAxNjAuNjIyIDcyLjU4NiBMIDE1Ny42NzEgNzIuNDMgWlwiIGZpbGw9XCIjMDAwXCIvPlxyXG4gICAgICA8cGF0aCBkPVwiTSA5Mi44NiA3Mi40MyBMIDkyLjg2IDUwLjY3NCBMIDgzLjU4OSA1MC42NzQgTCA4My41ODkgNTQuOTcyIEwgODUuMzk5IDU1LjA3NyBDIDg2LjM4NiA1NS4wNzcgODYuNjk3IDU1LjQzOSA4Ni42OTcgNTYuNTc3IEwgODYuNjY5IDc2LjczIEwgOTUuODE0IDc2LjczIEwgOTUuODE0IDcyLjU4NiBMIDkyLjg2IDcyLjQzIFpcIiBmaWxsPVwiIzAwMFwiLz5cclxuICAgICAgPHBhdGggZD1cIk0gMTc5LjE3MSA3MS42NTMgQyAxNzguMzQ2IDcyLjE3MyAxNzcuMDQ4IDcyLjc0MSAxNzUuNjUzIDcyLjc0MSBDIDE3My41MjQgNzIuNzQxIDE3Mi4yODEgNzEuODExIDE3Mi4yODEgNjguNjQ3IEwgMTcyLjI4MSA0NS4xODMgTCAxNjguOTE2IDQ1LjE4MyBDIDE2Ny44MjggNDguMTM0IDE2Ni41ODYgNTAuOTMzIDE2Mi45NTggNTEuMjQyIEwgMTYyLjQ0MiA1NS4wMjMgTCAxNjYuMTIgNTUuMDIzIEwgMTY2LjEyIDY4Ljg1NSBDIDE2Ni4xMiA3Mi40ODEgMTY2LjA2NiA3Ny40NTUgMTc0LjE0NCA3Ny40NTUgQyAxNzYuNTgyIDc3LjQ1NSAxNzkuMTcxIDc2LjczIDE4MC43MjggNzUuNjQ0IEwgMTc5LjE3MSA3MS42NTMgWlwiIGZpbGw9XCIjMDAwXCIvPlxyXG4gICAgICA8cGF0aCBkPVwiTSA0NC4zMzIgNzIuNTg3IEMgNDIuOTg2IDcyLjU4NyA0MS4xMjEgNzIuMTczIDM5Ljc3NSA3MS4yOTEgTCAzOS43NzUgNTkuMzc3IEMgMzkuNzc1IDU2Ljk5NSA0Mi4wNTMgNTQuOTIgNDUuMDA3IDU0LjkyIEMgNDcuNzUxIDU0LjkyIDUwLjI0MiA1Ni42ODQgNTAuMjQyIDYzLjU3MiBDIDUwLjI0MiA2OC4wNzcgNDguNzM3IDcyLjU4NyA0NC4zMzIgNzIuNTg3IFogTSA0Ny4yODkgNDkuODk2IEMgNDIuODg0IDQ5Ljg5NiA0MC4wMzYgNTIuMjc5IDM5LjEwMyA1NC4wNCBMIDM5LjEwMyA1MC42NzUgTCAzMC4zNDcgNTAuNjc1IEwgMzAuMzQ3IDU0Ljg2OCBMIDMyLjUyNSA1NS4wMjMgQyAzMy41MDcgNTUuMDIzIDMzLjgxNiA1NS40NCAzMy44MTYgNTYuNTc4IEwgMzMuNzgxIDg3LjQ1NSBMIDQzLjk2OCA4Ny40NTUgTCA0My45NjggODMuMzYyIEwgMzkuNzc1IDgzLjE1MyBMIDM5Ljc3NSA3Ni4wMDUgQyA0MS4xMjEgNzYuODMzIDQzLjI5NiA3Ny41MDcgNDUuMzE3IDc3LjUwNyBDIDUyLjE1OCA3Ny41MDcgNTYuNjYyIDcyLjU4NyA1Ni42NjIgNjMuMDU1IEMgNTYuNjYyIDUzLjc4MyA1My4wMzggNDkuODk2IDQ3LjI4OSA0OS44OTYgWlwiIGZpbGw9XCIjMDAwXCIvPlxyXG4gICAgICA8cGF0aCBkPVwiTSAyMTIuODgyIDcyLjY2MiBMIDIxMi44ODIgNzMuMjcyIEwgMjExLjY3NCA3My4yNzIgTCAyMTEuNjc0IDc2LjY3NiBMIDIxMC45MjcgNzYuNjc2IEwgMjEwLjkyNyA3My4yNzIgTCAyMDkuNzE3IDczLjI3MiBMIDIwOS43MTcgNzIuNjYyIEwgMjEyLjg4MiA3Mi42NjIgWlwiIGZpbGw9XCIjMDAwXCIvPlxyXG4gICAgICA8cGF0aCBkPVwiTSAyMTUuNDAxIDc1LjE5NCBDIDIxNS40MjkgNzUuMjU4IDIxNS40NTYgNzUuMzIyIDIxNS40OCA3NS4zODggQyAyMTUuNTEgNzUuMzIyIDIxNS41MzQgNzUuMjUzIDIxNS41NjQgNzUuMTkgQyAyMTUuNTg5IDc1LjEyNCAyMTUuNjE4IDc1LjA2NiAyMTUuNjUgNzUuMDA0IEwgMjE2Ljg0IDcyLjc4MSBDIDIxNi44NTUgNzIuNzUyIDIxNi44NjggNzIuNzMgMjE2Ljg4NCA3Mi43MTcgQyAyMTYuOTAxIDcyLjY5NyAyMTYuOTIxIDcyLjY4NSAyMTYuOTM5IDcyLjY3OCBDIDIxNi45NTYgNzIuNjY5IDIxNi45OCA3Mi42NjggMjE3LjAwMyA3Mi42NjUgQyAyMTcuMDIzIDcyLjY2MyAyMTcuMDU3IDcyLjY2MiAyMTcuMDg5IDcyLjY2MiBMIDIxNy42NTMgNzIuNjYyIEwgMjE3LjY1MyA3Ni42NzYgTCAyMTYuOTk0IDc2LjY3NiBMIDIxNi45OTQgNzQuMDgyIEMgMjE2Ljk5NCA3NC4wMzMgMjE2Ljk5NSA3My45OCAyMTYuOTk5IDczLjkyNiBDIDIxNy4wMDIgNzMuODY2IDIxNy4wMDUgNzMuODA5IDIxNy4wMTEgNzMuNzUxIEwgMjE1Ljc5OSA3Ni4wMjYgQyAyMTUuNzcgNzYuMDc1IDIxNS43MzQgNzYuMTE3IDIxNS42ODkgNzYuMTQ2IEMgMjE1LjY0NiA3Ni4xNzUgMjE1LjU5NCA3Ni4xODcgMjE1LjUzNCA3Ni4xODcgTCAyMTUuNDMzIDc2LjE4NyBDIDIxNS4zNzMgNzYuMTg3IDIxNS4zMTkgNzYuMTc1IDIxNS4yNzUgNzYuMTQ2IEMgMjE1LjIzMyA3Ni4xMTcgMjE1LjE5NSA3Ni4wNzUgMjE1LjE2NSA3Ni4wMjYgTCAyMTMuOTQxIDczLjc0MiBDIDIxMy45NDcgNzMuODAzIDIxMy45NSA3My44NjEgMjEzLjk1MyA3My45MiBDIDIxMy45NTcgNzMuOTc4IDIxMy45NTggNzQuMDMyIDIxMy45NTggNzQuMDgyIEwgMjEzLjk1OCA3Ni42NzYgTCAyMTMuMjk5IDc2LjY3NiBMIDIxMy4yOTkgNzIuNjYyIEwgMjEzLjg2NiA3Mi42NjIgQyAyMTMuODk5IDcyLjY2MiAyMTMuOTI0IDcyLjY2MyAyMTMuOTUgNzIuNjY1IEMgMjEzLjk3NCA3Mi42NjggMjEzLjk5MiA3Mi42NjkgMjE0LjAxNSA3Mi42NzggQyAyMTQuMDM1IDcyLjY4NSAyMTQuMDUyIDcyLjY5NyAyMTQuMDY3IDcyLjcxNyBDIDIxNC4wODkgNzIuNzMgMjE0LjEwMyA3Mi43NTIgMjE0LjExNiA3Mi43ODEgTCAyMTUuMzE0IDc1LjAwOSBDIDIxNS4zNDggNzUuMDY4IDIxNS4zNzUgNzUuMTMzIDIxNS40MDEgNzUuMTk0IFpcIiBmaWxsPVwiIzAwMFwiLz5cclxuICAgIDwvZz5cclxuICA8L2c+XHJcbjwvc3ZnPmAsXHJcbiAgJ0FjdGl2ZSBEaXJlY3RvcnknOiBgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCA5NTQuMSAxNTguMlwiIGhlaWdodD1cIjQyXCI+PHN0eWxlPi5zdDB7ZmlsbDojMDBhYWYyfTwvc3R5bGU+PHRpdGxlIGlkPVwidGl0bGU0XCI+YWN0aXZlLWRpcmVjdG9yeTwvdGl0bGU+PGcgaWQ9XCJMYXllcl8yXzFfXCIgdHJhbnNmb3JtPVwidHJhbnNsYXRlKDAgLTMzLjU2MSlcIj48ZyBpZD1cIkxheWVyXzEtMlwiPjxwYXRoIGlkPVwicGF0aDZcIiBjbGFzcz1cInN0MFwiIGQ9XCJNMTU4LjYgMTU0LjJ2MzMuM2MwIDMuOS0xLjIgNC43LTQuOSA0LjEtMjQuOC0zLjctNDkuOS03LjEtNzQuOS0xMC42LTQuNS0uNi02LjEtMi4yLTYuMS03LjEuNC0xNy43LjItMzUuNSAwLTUzLjQgMC0zLjkgMS4yLTUuMSA1LjEtNS4xIDI1LjYuMiA1MC44LjIgNzUuOS4yIDQuMSAwIDUuMSAxLjYgNS4xIDUuMy0uNCAxMS4yLS4yIDIyLjItLjIgMzMuM3pcIi8+PHBhdGggaWQ9XCJwYXRoOFwiIGNsYXNzPVwic3QwXCIgZD1cIk0xMTYuMSAxMDkuMmMtMTIuNiAwLTI1LjItLjItMzcuOCAwLTMuOSAwLTUuNS0uOC01LjUtNS4zLjItMTguMS4yLTM1LjkgMC01My44IDAtMy41IDEuMi00LjcgNC41LTUuMyAyNS44LTMuNyA1MS42LTcuMyA3Ny40LTExLjIgNC41LS42IDMuNyAyLjQgMy43IDQuOSAwIDE2IC4yIDMyLjMgMCA0OC4zIDAgNS45LS4yIDExLjggMCAxNy43LjIgMy43LTEuMiA0LjctNC43IDQuNy0xMi40LS4yLTI1IDAtMzcuNiAwelwiLz48cGF0aCBpZD1cInBhdGgxMFwiIGNsYXNzPVwic3QwXCIgZD1cIk0zMi43IDExNS45aDI4LjJjMyAwIDQuMyAxIDQuMyA0LjF2NTUuNmMwIDMuMi0xLjQgMy41LTQuMyAzLjItMTguNy0yLjgtMzcuNC01LjUtNTYtOC4xLTMuNy0uNi00LjktMS44LTQuOS01LjcuMi0xNC44LjItMjkuNiAwLTQ0LjcgMC0zLjcgMS00LjcgNC43LTQuNyA5LjUuMyAxOC42LjMgMjggLjN6XCIvPjxwYXRoIGlkPVwicGF0aDEyXCIgY2xhc3M9XCJzdDBcIiBkPVwiTTMyLjcgMTA5LjJINC45Yy0zLjUgMC00LjctMS4yLTQuNy00LjkuMi0xNC42LjItMjkuMiAwLTQzLjkgMC0zLjUgMS00LjcgNC43LTUuMyAxOC43LTIuNCAzNy40LTUuMSA1Ni04LjEgNC4zLS42IDQuNy44IDQuNyA0LjN2NTMuMmMwIDMuOS0xLjYgNC41LTUuMSA0LjUtOS4zIDAtMTguNy4yLTI3LjguMnpcIi8+PHBhdGggaWQ9XCJwYXRoMTRcIiBjbGFzcz1cInN0MFwiIGQ9XCJNMjI4LjggNjQuN2MtLjItMy0uNC02LjktLjQtOS43aC0uMmMtLjYgMi42LTEuOCA1LjctMi44IDguN2wtMy45IDEwLjhoLTIuMmwtMy41LTEwLjZjLTEtMi44LTEuOC01LjktMi42LTguNy0uMiAyLjYtLjIgNi41LS40IDkuOWwtLjYgOS41aC0yLjZsMS42LTIyLjVoMy43bDMuOSAxMWMxIDIuNiAxLjYgNS4zIDIuMiA3LjdoLjJjLjYtMi4yIDEuNC00LjkgMi40LTcuN2w0LjEtMTFoMy43bDEuNCAyMi41aC0zLjJsLS44LTkuOXpcIi8+PHBhdGggaWQ9XCJwYXRoMTZcIiBjbGFzcz1cInN0MFwiIGQ9XCJNMjQwLjQgNTMuOWMwIDEtLjggMS44LTEuOCAxLjhoLS4yYy0xIDAtMS44LS44LTEuOC0xLjhzLjgtMS44IDEuOC0xLjhjMS4yIDAgMiAuOCAyIDEuOHptLTMuMiAyMC44di0xNmgzdjE2aC0zelwiLz48cGF0aCBpZD1cInBhdGgxOFwiIGNsYXNzPVwic3QwXCIgZD1cIk0yNTYuNCA3NGMtMS40LjYtMyAxLTQuNyAxLTQuOSAwLTguMS0zLjItOC4xLTguMy0uMi00LjcgMy4yLTguNSA3LjktOC43aC44YzEuNCAwIDIuOC4yIDQuMS44bC0uNiAyLjJjLTEtLjQtMi4yLS44LTMuNS0uNi0zLjcgMC01LjcgMi42LTUuNyA2LjEgMCAzLjkgMi40IDYuMSA1LjcgNi4xIDEuMiAwIDIuNC0uMiAzLjUtLjhsLjYgMi4yelwiLz48cGF0aCBpZD1cInBhdGgyMFwiIGNsYXNzPVwic3QwXCIgZD1cIk0yNTkuNyA2My41YzAtMS44LS4yLTMuNS0uMi00LjloMi42bC4yIDMuMmguMmMuNi0yIDIuNC0zLjUgNC41LTMuNS4yIDAgLjYgMCAuOC4ydjIuNmMtLjItLjItLjYtLjItMS0uMi0yIDAtMy41IDEuNi0zLjkgMy45IDAgLjQtLjIuOC0uMiAxLjJ2OC43aC0yLjhsLS4yLTExLjJ6XCIvPjxwYXRoIGlkPVwicGF0aDIyXCIgY2xhc3M9XCJzdDBcIiBkPVwiTTI4NS4xIDY2LjVjLjIgNC4zLTMgOC4xLTcuMyA4LjNoLS42Yy00LjMgMC03LjctMy4yLTcuNy04LjMgMC01LjUgMy43LTguNSA4LjEtOC41IDQgMCA3LjUgMy41IDcuNSA4LjV6bS0xMi44IDBjMCAzLjIgMS42IDYuMSA0LjkgNi4xIDMuMiAwIDQuOS0zIDQuOS02LjEgMC0yLjgtMS4yLTYuMy00LjktNi4zLTMuOS4yLTQuOSAzLjUtNC45IDYuM3pcIi8+PHBhdGggaWQ9XCJwYXRoMjRcIiBjbGFzcz1cInN0MFwiIGQ9XCJNMjg4LjMgNzEuNmMxLjIuOCAyLjQgMS4yIDMuOSAxLjIgMiAwIDMtMSAzLTIuNCAwLTEuMi0uOC0yLTMtMy0yLjgtMS00LjMtMi42LTQuMy00LjcgMC0yLjYgMi00LjcgNS41LTQuNyAxLjQgMCAyLjguNCA0LjEgMWwtLjYgMmMtMS0uNi0yLjItMS0zLjItMS0xLjQtLjItMi42LjgtMi42IDIuMiAwIDEuMiAxIDEuOCAzIDIuNiAyLjYgMSA0LjMgMi40IDQuMyA0LjkgMCAyLjgtMi4yIDQuOS02LjEgNC45LTEuNiAwLTMtLjQtNC41LTEuMmwuNS0xLjh6XCIvPjxwYXRoIGlkPVwicGF0aDI2XCIgY2xhc3M9XCJzdDBcIiBkPVwiTTMxNi41IDY2LjVjLjIgNC4zLTMgOC4xLTcuMyA4LjNoLS42Yy00LjMgMC03LjctMy4yLTcuNy04LjMgMC01LjUgMy43LTguNSA4LjEtOC41IDQuMSAwIDcuNSAzLjUgNy41IDguNXptLTEyLjcgMGMwIDMuMiAxLjYgNi4xIDQuOSA2LjFzNC45LTMgNC45LTYuMWMwLTIuOC0xLjItNi4zLTQuOS02LjNzLTQuOSAzLjUtNC45IDYuM3pcIi8+PHBhdGggaWQ9XCJwYXRoMjhcIiBjbGFzcz1cInN0MFwiIGQ9XCJNMzIwLjQgNzQuN3YtMTRoLTIuMnYtMi4yaDIuMnYtLjhjLS4yLTIgLjQtNC4xIDEuOC01LjcgMS0xIDIuNC0xLjYgMy45LTEuNi44IDAgMS42LjIgMi40LjRsLS40IDIuMmMtLjYtLjItMS4yLS40LTEuOC0uNC0yLjQgMC0zIDIuMi0zIDQuN3YxaDMuOXYyLjJoLTMuOXYxMy44bC0yLjkuNHpcIi8+PHBhdGggaWQ9XCJwYXRoMzBcIiBjbGFzcz1cInN0MFwiIGQ9XCJNMzMzLjggNTMuN3Y0LjdoNC4zdjIuMmgtNC4zdjguN2MwIDIgLjYgMyAyLjIgMyAuNiAwIDEuMiAwIDEuNi0uMmwuMiAyLjJjLS44LjQtMS42LjQtMi42LjQtMS4yIDAtMi4yLS40LTMuMi0xLjItLjgtMS4yLTEuMi0yLjgtMS00LjN2LTguOWgtMi40di0yLjJoMi40di0zLjlsMi44LS41elwiLz48cGF0aCBpZD1cInBhdGgzMlwiIGNsYXNzPVwic3QwXCIgZD1cIk0yMjcgMTM1LjhsLTcuNyAyMy44aC0xMC4yTDIzNC45IDg0aDExLjZsMjUuOCA3NS41aC0xMC40bC04LjEtMjMuOEgyMjd6bTI0LjgtNy41bC03LjMtMjEuN2MtMS42LTQuOS0yLjgtOS41LTMuOS0xMy44aC0uNGMtMSA0LjUtMi4yIDkuMS0zLjcgMTMuNmwtNy4zIDIxLjloMjIuNnpcIi8+PHBhdGggaWQ9XCJwYXRoMzRcIiBjbGFzcz1cInN0MFwiIGQ9XCJNMzIwLjIgMTU3LjdjLTQuOSAyLjItMTAuMiAzLjItMTUuNiAzLjItMTYuMiAwLTI3LTExLjItMjctMjcuNnMxMS42LTI4LjggMjktMjguOGM0LjcgMCA5LjMuOCAxMy42IDIuOGwtMi4yIDcuNWMtMy41LTEuOC03LjUtMi42LTExLjYtMi42LTEyLjQgMC0xOS4xIDkuMy0xOS4xIDIwLjUgMCAxMi42IDguMSAyMC4zIDE4LjkgMjAuMyA0LjEgMCA4LjMtLjggMTItMi42bDIgNy4zelwiLz48cGF0aCBpZD1cInBhdGgzNlwiIGNsYXNzPVwic3QwXCIgZD1cIk0zNDUuMiA4OS45djE1LjZoMTR2Ny4zaC0xNFYxNDJjMCA2LjcgMS44IDEwLjYgNy4zIDEwLjYgMS44IDAgMy45LS4yIDUuNy0uNmwuNCA3LjNjLTEuOCAxLTQuOSAxLjQtOC45IDEuNC00LjEuMi03LjktMS40LTEwLjYtNC4xLTIuNi0zLjItMy43LTcuNy0zLjctMTQuMnYtMjkuNmgtOC41di03LjNoOC4zVjkyLjNsMTAtMi40elwiLz48cGF0aCBpZD1cInBhdGgzOFwiIGNsYXNzPVwic3QwXCIgZD1cIk0zODEuMyA5MC4zYzAgMy4yLTIuNCA1LjktNS43IDYuMWgtLjRjLTMuMiAwLTUuOS0yLjQtNS45LTUuNXYtLjRjLS4yLTMuMiAyLjQtNi4xIDUuNy02LjFoLjRjMy4zLS40IDUuOSAyLjQgNS45IDUuOSAwLS4yIDAtLjIgMCAwem0tMTAuOSA2OS40di01NC4yaDkuN3Y1NGgtOS43di4yelwiLz48cGF0aCBpZD1cInBhdGg0MFwiIGNsYXNzPVwic3QwXCIgZD1cIk00MDAuNCAxMDUuNUw0MTEgMTM2YzEuOCA0LjkgMy4yIDkuNSA0LjUgMTRoLjRjMS4yLTQuNSAyLjgtOS4xIDQuNS0xNGwxMC42LTMwLjVoMTAuNGwtMjEuMyA1NGgtOS41bC0yMC41LTU0aDEwLjN6XCIvPjxwYXRoIGlkPVwicGF0aDQyXCIgY2xhc3M9XCJzdDBcIiBkPVwiTTQ1NC44IDEzNC4zYy4yIDEzLjQgOC43IDE4LjkgMTguNSAxOC45IDcuMSAwIDExLjYtMS4yIDE1LTIuOGwxLjYgNy4xYy01LjcgMi40LTExLjggMy43LTE4LjEgMy41LTE2LjYgMC0yNi42LTExLjItMjYuNi0yNy40IDAtMTYuNCA5LjUtMjkuMiAyNS42LTI5LjIgMTcuNyAwIDIyLjMgMTUuNCAyMi4zIDI1LjQgMCAxLjYtLjIgMy0uNCA0LjdoLTM3Ljl2LS4yem0yOC44LTcuMWMuMi02LjEtMi42LTE1LjgtMTMuNi0xNS44LTkuOSAwLTE0LjQgOS4xLTE1LjIgMTUuOGgyOC44elwiLz48cGF0aCBpZD1cInBhdGg0NFwiIGNsYXNzPVwic3QwXCIgZD1cIk01MjkuMyA4NS4yYzYuOS0xIDEzLjgtMS42IDIwLjktMS42IDE0IDAgMjQgMy4yIDMwLjUgOS41IDYuNyA2LjEgMTAuNiAxNSAxMC42IDI3IDAgMTIuNC0zLjkgMjIuMy0xMSAyOS40LTcuMSA3LjEtMTguNyAxMS0zMy4zIDExLTUuOSAwLTEyLS4yLTE3LjktMWwuMi03NC4zem0xMCA2Ni44YzMuMi40IDYuNS42IDkuNy42IDIwLjkgMCAzMi4zLTExLjYgMzIuMy0zMi4xLjItMTcuOS05LjktMjktMzAuNS0yOS0zLjkgMC03LjcuNC0xMS42IDFsLjEgNTkuNXpcIi8+PHBhdGggaWQ9XCJwYXRoNDZcIiBjbGFzcz1cInN0MFwiIGQ9XCJNNjE1IDkwLjNjMCAzLjItMi40IDUuOS01LjcgNi4xaC0uNGMtMy4yIDAtNS45LTIuNC01LjktNS41di0uNGMtLjItMy4yIDIuNC02LjEgNS43LTYuMWguNGMzLjEtLjQgNS45IDIuNCA1LjkgNS45IDAtLjIgMC0uMiAwIDB6bS0xMS4xIDY5LjR2LTU0LjJoOS43djU0aC05Ljd2LjJ6XCIvPjxwYXRoIGlkPVwicGF0aDQ4XCIgY2xhc3M9XCJzdDBcIiBkPVwiTTYzMCAxMjIuNGMwLTYuMy0uMi0xMS44LS40LTE2LjloOC43bC40IDEwLjZoLjRjMi42LTcuMyA4LjctMTEuOCAxNS4yLTExLjggMSAwIDEuOCAwIDIuNi4ydjkuM2MtMS0uMi0yLS40LTMuMi0uNC03LjEgMC0xMS44IDUuMy0xMy4yIDEyLjYtLjQgMS40LS40IDMtLjQgNC41djI5aC05LjdsLS40LTM3LjF6XCIvPjxwYXRoIGlkPVwicGF0aDUwXCIgY2xhc3M9XCJzdDBcIiBkPVwiTTY3MS4xIDEzNC4zYy4yIDEzLjQgOC43IDE4LjkgMTguNSAxOC45IDcuMSAwIDExLjYtMS4yIDE1LTIuOGwxLjYgNy4xYy01LjcgMi40LTExLjggMy43LTE4LjEgMy41LTE2LjYgMC0yNi42LTExLjItMjYuNi0yNy40IDAtMTYuNCA5LjUtMjkuMiAyNS42LTI5LjIgMTcuNyAwIDIyLjMgMTUuNCAyMi4zIDI1LjQgMCAxLjYtLjIgMy0uNCA0LjdoLTM3Ljl2LS4yem0yOC44LTcuMWMuMi02LjEtMi42LTE1LjgtMTMuNi0xNS44LTkuOSAwLTE0LjQgOS4xLTE1LjIgMTUuOGgyOC44elwiLz48cGF0aCBpZD1cInBhdGg1MlwiIGNsYXNzPVwic3QwXCIgZD1cIk03NjAuMiAxNTcuN2MtNC45IDIuMi0xMC4yIDMuMi0xNS42IDMuMi0xNi4yIDAtMjctMTEuMi0yNy0yNy42czExLjYtMjguOCAyOS0yOC44YzQuNyAwIDkuMy44IDEzLjYgMi44bC0yLjIgNy41Yy0zLjUtMS44LTcuNS0yLjYtMTEuNi0yLjYtMTIuNCAwLTE5LjEgOS4zLTE5LjEgMjAuNSAwIDEyLjYgOC4xIDIwLjMgMTguOSAyMC4zIDQuMSAwIDguMy0uOCAxMi0yLjZsMiA3LjN6XCIvPjxwYXRoIGlkPVwicGF0aDU0XCIgY2xhc3M9XCJzdDBcIiBkPVwiTTc4NS4yIDg5Ljl2MTUuNmgxNHY3LjNoLTE0VjE0MmMwIDYuNyAxLjggMTAuNiA3LjMgMTAuNiAxLjggMCAzLjktLjIgNS43LS42bC40IDcuM2MtMS44IDEtNC45IDEuNC04LjkgMS40LTQuMS4yLTcuOS0xLjQtMTAuNi00LjEtMi42LTMuMi0zLjctNy43LTMuNy0xNC4ydi0yOS42aC04LjN2LTcuM2g4LjNWOTIuM2w5LjgtMi40elwiLz48cGF0aCBpZD1cInBhdGg1NlwiIGNsYXNzPVwic3QwXCIgZD1cIk04NTguNyAxMzIuNWMwIDE5LjktMTQuNiAyOC40LTI3LjIgMjguNC0xNC4yIDAtMjUuOC0xMC42LTI1LjgtMjguMiAwLTE4LjEgMTIuNC0yOC40IDI3LTI4LjQgMTUuMiAwIDI2IDEwLjggMjYgMjguMnptLTQyLjkuMmMwIDExIDUuNSAyMC43IDE2LjQgMjAuNyAxMC44IDAgMTYuNi05LjcgMTYuNi0yMC45IDAtOS41LTQuNS0yMS4xLTE2LjYtMjEuMS0xMi4xIDAtMTYuNCAxMS42LTE2LjQgMjEuM3pcIi8+PHBhdGggaWQ9XCJwYXRoNThcIiBjbGFzcz1cInN0MFwiIGQ9XCJNODcxLjEgMTIyLjRjMC02LjMtLjItMTEuOC0uNC0xNi45aDguN2wuNCAxMC42aC40YzIuNi03LjMgOC43LTExLjggMTUuMi0xMS44IDEgMCAxLjggMCAyLjYuMnY5LjNjLTEtLjItMi0uNC0zLjItLjQtNy4xIDAtMTEuOCA1LjMtMTMuMiAxMi42LS40IDEuNC0uNCAzLS40IDQuNXYyOWgtOS43bC0uNC0zNy4xelwiLz48cGF0aCBpZD1cInBhdGg2MFwiIGNsYXNzPVwic3QwXCIgZD1cIk05MTQuMSAxMDUuNWwxMS44IDMxLjljMS4yIDMuNSAyLjYgNy43IDMuNSAxMS4yaC4yYzEtMy4yIDItNy4zIDMuNS0xMS4ybDEwLjgtMzEuOWgxMC40bC0xNC44IDM4LjZjLTcuMSAxOC41LTExLjggMjguMi0xOC41IDM0LjEtMy41IDMtNy41IDUuMS0xMiA2LjNsLTIuNC04LjNjMy4yLTEgNi4xLTIuNiA4LjctNC45IDMuNS0zIDYuMy02LjcgOC4xLTExIC40LS44LjgtMS42LjgtMi40IDAtMS0uNC0xLjgtLjgtMi42bC0xOS45LTQ5LjdoMTAuNnpcIi8+PC9nPjwvZz48L3N2Zz5gXHJcbn07XHJcbi8qKiAqL1xyXG5leHBvcnQgY2xhc3MgRGVzaWduZXJSZWY8TyA9IGFueT4ge1xyXG4gIF91bmxvY2skID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcclxuICBfc3RhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KG51bGwpO1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2Rlc2lnbmVyOiBEZXNpZ25lck1vZGVsLFxyXG4gICAgcHJpdmF0ZSBfZWxlbWVudDogRWxlbWVudE1vZGVsLFxyXG4gICAgcHVibGljIG1vZGU6IERlc2lnbk1vZGUpIHsgfVxyXG4gIGdldCBkZXNpZ25lcigpOiBEZXNpZ25lckluZm8geyByZXR1cm4gdGhpcy5fZGVzaWduZXI7IH1cclxuICBnZXQgbW9kZWwoKTogRWxlbWVudEluZm88Tz4geyByZXR1cm4gdGhpcy5fZWxlbWVudDsgfVxyXG4gIGdldCB1bmxvY2soKSB7IHJldHVybiB0aGlzLl91bmxvY2skLmFzT2JzZXJ2YWJsZSgpOyB9XHJcbiAgZ2V0IHN0YXRlKCkgeyByZXR1cm4gdGhpcy5fc3RhdGUkLnZhbHVlOyB9XHJcbiAgc2V0IHN0YXRlKHZhbCkgeyB0aGlzLl9zdGF0ZSQubmV4dCh2YWwpOyB9XHJcbiAgY3JlYXRlKGVsZW1lbnQ6IEVsZW1lbnRJbmZvLCB0ZW1wbGF0ZT86IHN0cmluZykge1xyXG4gICAgY29uc3QgcmVmID0gbmV3IERlc2lnbmVyUmVmKHRoaXMuX2Rlc2lnbmVyLCBlbGVtZW50IGFzIEVsZW1lbnRNb2RlbCwgJ3dpZGdldCcpO1xyXG4gICAgY29uc3QgaW5qZWN0b3IgPSBJbmplY3Rvci5jcmVhdGUoW3tcclxuICAgICAgcHJvdmlkZTogRGVzaWduZXJSZWYsIHVzZVZhbHVlOiByZWZcclxuICAgIH1dLCAodGhpcy5fZWxlbWVudCBhcyBFbGVtZW50TW9kZWwpLmluamVjdG9yKTtcclxuICAgIChlbGVtZW50IGFzIEVsZW1lbnRNb2RlbCkudGVtcGxhdGUgPSB0ZW1wbGF0ZTtcclxuICAgIChlbGVtZW50IGFzIEVsZW1lbnRNb2RlbCkuaW5qZWN0b3IgPSBpbmplY3RvcjtcclxuICAgIHJldHVybiBlbGVtZW50O1xyXG4gIH1cclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIERlc2lnbmVyRWxlbWVudENvbXBvbmVudDxUPiB7XHJcbiAgbW9kZWw6IEVsZW1lbnRJbmZvPFQ+O1xyXG4gIG1vZGU6IERlc2lnbk1vZGU7XHJcbiAgZm9ybTogRm9ybUdyb3VwO1xyXG4gIG9uQ29udGludWU/KCk7XHJcbiAgb25GaW5pc2g/KCk7XHJcbn1cclxuZXhwb3J0IGRlY2xhcmUgdHlwZSBEZXNpZ25Nb2RlID0gJ2FkZCcgfCAnZWRpdCcgfCAnd2lkZ2V0JztcclxuZXhwb3J0IGZ1bmN0aW9uIGNsb25lKGVsZW1lbnQ6IEVsZW1lbnRNb2RlbCkge1xyXG4gIHJldHVybiBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGVsZW1lbnQpKTtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gYXJyYXlPZih2YWw6IHN0cmluZyB8IHN0cmluZ1tdKSB7XHJcbiAgaWYgKCF2YWwpIHJldHVybiBbXTtcclxuICBpZiAoaXNTdHJpbmcodmFsKSkgcmV0dXJuIFt2YWxdO1xyXG4gIHJldHVybiB2YWw7XHJcbn1cclxuXHJcbmNvbnN0IE5BTUVfQ0hBUiA9IC9bQS1aXSsvZyxcclxuICBOT05fTkFNRV9DSEFSID0gL1teXFx3XSsvZztcclxuLyoqXHJcbiAqIFxyXG4gKiBAcGFyYW0gbmFtZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHByb2dyYW1OYW1lKG5hbWU6IHN0cmluZykge1xyXG4gIHJldHVybiBuYW1lLlxyXG4gICAgcmVwbGFjZSgnICcsICctJykuXHJcbiAgICByZXBsYWNlKE5BTUVfQ0hBUiwgKGMsIGkpID0+IChpID4gMCAmJiBuYW1lLmNoYXJBdChpIC0gMSkgIT09ICctJyA/ICctJyA6ICcnKSArIGMudG9Mb3dlckNhc2UoKSkuXHJcbiAgICByZXBsYWNlKE5PTl9OQU1FX0NIQVIsICdfJyk7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBEZXNpZ25lck1vZGVsIHtcclxuICB0eXBlczogRWxlbWVudE1vZGVsPGFueT5bXTtcclxuICB0VHlwZXM6IFRlbXBsYXRlSW5mb1tdO1xyXG4gIGd1aWRlczogRWxlbWVudE1vZGVsPGFueT5bXTtcclxuICByZXBvcnRzOiBFbGVtZW50TW9kZWw8YW55PltdO1xyXG4gIHRSZXBvcnRzOiBUZW1wbGF0ZUluZm9bXTtcclxuICBmb3JtczogRWxlbWVudE1vZGVsPGFueT5bXTtcclxuICB0Rm9ybXM6IFRlbXBsYXRlSW5mb1tdO1xyXG4gIGN1YmVzOiBFbGVtZW50TW9kZWw8YW55PltdO1xyXG4gIHRDdWJlczogVGVtcGxhdGVJbmZvW107XHJcbiAgdXRpbGl0aWVzOiBFbGVtZW50TW9kZWw8YW55PltdO1xyXG4gIHRVdGlsaXRpZXM6IFRlbXBsYXRlSW5mb1tdO1xyXG4gIGZvbGRlcnM6IEVsZW1lbnRNb2RlbDxhbnk+W107XHJcbiAgcm9sZXM6IEVsZW1lbnRNb2RlbDxhbnk+W107XHJcbiAgcnVsZXM6IEVsZW1lbnRNb2RlbDxhbnk+W107XHJcbiAgdFJ1bGVzOiBUZW1wbGF0ZUluZm9bXTtcclxuICB2aWV3czogRWxlbWVudE1vZGVsPGFueT5bXTtcclxuICB0Vmlld3M6IFRlbXBsYXRlSW5mb1tdO1xyXG4gIHdpZGdldHM6IEVsZW1lbnRNb2RlbDxhbnk+W107XHJcbiAgdFdpZGdldHM6IFRlbXBsYXRlSW5mb1tdO1xyXG4gIGFjdGlvbnM6IEVsZW1lbnRNb2RlbDxhbnk+W107XHJcbiAgdEFjdGlvbnM6IFRlbXBsYXRlSW5mb1tdO1xyXG4gIHN0YXRlczogRWxlbWVudE1vZGVsPGFueT5bXTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFRlbXBsYXRlSW5mbyB7XHJcbiAgdGVtcGxhdGU/OiBzdHJpbmc7XHJcbiAgdGl0bGU/OiBzdHJpbmc7XHJcbiAga2V5Pzogc3RyaW5nO1xyXG4gIGljb24/OiBzdHJpbmc7XHJcbiAgZmFtaWx5Pzogc3RyaW5nO1xyXG4gIGhlbHA/OiBzdHJpbmc7XHJcbiAgdHlwZT86IHN0cmluZztcclxuICBhcmd1bWVudHM/OiBGaWVsZEluZm9bXTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIEVsZW1lbnRNb2RlbDxUID0gYW55PiB7XHJcbiAga2V5Pzogc3RyaW5nO1xyXG4gIGluamVjdG9yOiBJbmplY3RvcjtcclxuICBvcmRpbmFsPzogbnVtYmVyO1xyXG4gIGhlbHA/OiBzdHJpbmc7XHJcbiAgY29uZmlndXJhdGlvbkZpbGU/OiBzdHJpbmc7XHJcbiAgdGVtcGxhdGU/OiBzdHJpbmc7XHJcbiAgaWNvbj86IHN0cmluZztcclxuICByZXNvdXJjZT86IHN0cmluZztcclxuICBjb3B5T2Y/OiBzdHJpbmc7XHJcbiAgZmFtaWx5Pzogc3RyaW5nO1xyXG4gIHR5cGU/OiBzdHJpbmc7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xyXG4gIGRyYWZ0PzogYm9vbGVhbjtcclxuICBlbXB0eT86IGJvb2xlYW47XHJcbiAgb3B0aW9ucz86IFQ7XHJcbiAgYXJndW1lbnRzPzogRmllbGRJbmZvW107XHJcbiAgcHJpdmlsZWdlcz86IFByaXZpbGVnZXNNb2RlbDtcclxuICBmaWx0ZXJzPzogQ3ViZUZpbHRlcjtcclxuICBjb2x1bW5zPzogRm9sZGVyQ29sdW1uW107XHJcbiAgYW5vbWFseT86IEFub21hbHlQb2xpY3k7XHJcbiAgdmVyYj86IHN0cmluZztcclxuICB5b3U/OiBzdHJpbmc7XHJcbiAgeW91TWFsZT86IHN0cmluZztcclxuICB5b3VGZW1hbGU/OiBzdHJpbmc7XHJcbiAgcGFzdD86IHN0cmluZztcclxuICBwYXN0TWFsZT86IHN0cmluZztcclxuICBwYXN0RmVtYWxlPzogc3RyaW5nO1xyXG4gIGFkamVjdGl2ZT86IHN0cmluZztcclxuICBsb2dnYWJsZT86IGJvb2xlYW47XHJcbiAgYWRqZWN0aXZlUGx1cmFsPzogc3RyaW5nO1xyXG4gIGFzc2lnbmFibGU/OiBib29sZWFuO1xyXG4gIHBvc2l0aW9uPzogUG9zaXRpb25Qb2xpY3k7XHJcbiAgbXVsdGlwbGU/OiBib29sZWFuO1xyXG4gIHNoYXBlPzogc3RyaW5nO1xyXG4gIGdyb3VwPzogbnVtYmVyO1xyXG4gIGRhdGFUeXBlPzogc3RyaW5nO1xyXG4gIHN0ZXBzPzogR3VpZGVTdGVwW107XHJcbiAgY3VycmVuY3lDb2RlPzogc3RyaW5nO1xyXG4gIGF4ZXM/OiBDdWJlQXhpc01vZGVsW107XHJcbiAgdmlld3M/OiBDdWJlVmlld01vZGVsW107XHJcbiAgaW5kaWNlcz86IEN1YmVJbmRleE1vZGVsW107XHJcbiAgc2NvcGU/OiBTY29wZVR5cGU7XHJcbiAgY29sb3I/OiBzdHJpbmc7XHJcbiAgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xyXG4gIHJ1bGVzPzogUGVybWlzc2lvbk1vZGVsW107XHJcbiAgcG9zaXRpb25zPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmdbXSB9O1xyXG4gIHBhdHRlcm5zPzogUGF0dGVybk1vZGVsW107XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBDdWJlSW5kZXhNb2RlbCB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIGFjY3VtdWxhdGU/OiBib29sZWFuO1xyXG4gIGhpZGRlbj86IGJvb2xlYW47XHJcbiAgdGl0bGU6IHN0cmluZztcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIEN1YmVWaWV3TW9kZWwge1xyXG4gIHByaXZpbGVnZXM/OiBQcml2aWxlZ2VzTW9kZWw7XHJcbiAgeEF4aXM6IHN0cmluZ1tdO1xyXG4gIHNlcmllcz86IHN0cmluZ1tdO1xyXG4gIGZpbHRlcnM/OiBBeGVzTWFwO1xyXG4gIGluZGljZXM/OiBzdHJpbmdbXTtcclxuICBpY29uPzogc3RyaW5nO1xyXG4gIGd1aWRlPzogc3RyaW5nO1xyXG4gIG5hbWU6IHN0cmluZztcclxuICB0aXRsZTogc3RyaW5nO1xyXG4gIHR5cGU6IFZpZXdUeXBlO1xyXG4gIGNoYXJ0VHlwZT86IENoYXJ0VHlwZTtcclxuICBpbmRpY2VzQ2hhcnRUeXBlPzogQ2hhcnRUeXBlO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgUGF0dGVybk1vZGVsIHtcclxuICB0aXRsZTogc3RyaW5nO1xyXG4gIGF4ZXM6IEF4ZXNNYXA7XHJcbiAgaGlkZGVuPzogYm9vbGVhbjtcclxuICBydWxlPzogc3RyaW5nO1xyXG4gIHJvbGVzPzogc3RyaW5nW107XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBDdWJlQXhpc01vZGVsIHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICBkYXRhVHlwZTogc3RyaW5nO1xyXG4gIGhpZGRlbj86IGJvb2xlYW47XHJcbiAgY29tYmluYXRpb24/OiBib29sZWFuO1xyXG4gIGluZGV4YWJsZT86IGJvb2xlYW47XHJcbiAgc2Vuc2l0aXZlPzogYm9vbGVhbjtcclxuICByZXNvdXJjZVR5cGU/OiBzdHJpbmc7XHJcbiAgc2VsZWN0aW9uTW9kZT86ICdTaW5nbGUnIHwgJ1BhdHRlcm4nIHwgJ011bHRpcGxlJyB8ICdTZWFyY2gnIHwgJ05vbmUnO1xyXG4gIGRlc2NlbmRlbnRPZj86IHN0cmluZztcclxufVxyXG5leHBvcnQgdHlwZSBBbm9tYWx5UG9saWN5ID0gJ1Bvc2l0aW9ucycgfCAnUmVjaXBpZW50cyc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFBhdHRlcm5Nb2RlbCB7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICByZXNvdXJjZVR5cGU/OiBzdHJpbmc7XHJcbiAgYXhlczogQXhlc01hcDtcclxuICBydWxlPzogc3RyaW5nO1xyXG4gIHJvbGVzPzogc3RyaW5nW107XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBQZXJtaXNzaW9uTW9kZWwge1xyXG4gIG5hbWU6IHN0cmluZztcclxuICB0aXRsZTogc3RyaW5nO1xyXG4gIHJ1bGU/OiBzdHJpbmc7XHJcbiAgcm9sZXM/OiBzdHJpbmdbXTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFByaXZpbGVnZXNNb2RlbCB7XHJcbiAgcnVsZT86IHN0cmluZztcclxuICByb2xlcz86IHN0cmluZ1tdO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgRGVzaWduZXJJbmZvIHtcclxuICB0eXBlczogRWxlbWVudEluZm9bXTtcclxuICBndWlkZXM6IEVsZW1lbnRJbmZvW107XHJcbiAgcmVwb3J0czogRWxlbWVudEluZm9bXTtcclxuICB0UmVwb3J0czogVGVtcGxhdGVJbmZvW107XHJcbiAgZm9ybXM6IEVsZW1lbnRJbmZvW107XHJcbiAgY3ViZXM6IEVsZW1lbnRJbmZvW107XHJcbiAgdXRpbGl0aWVzOiBFbGVtZW50SW5mb1tdO1xyXG4gIGZvbGRlcnM6IEVsZW1lbnRJbmZvW107XHJcbiAgcm9sZXM6IEVsZW1lbnRJbmZvW107XHJcbiAgcnVsZXM6IEVsZW1lbnRJbmZvW107XHJcbiAgdmlld3M6IEVsZW1lbnRJbmZvW107XHJcbiAgd2lkZ2V0czogRWxlbWVudEluZm9bXTtcclxuICBhY3Rpb25zOiBFbGVtZW50SW5mb1tdO1xyXG4gIHN0YXRlczogRWxlbWVudEluZm9bXTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIEVsZW1lbnRJbmZvPFQgPSBhbnk+IHtcclxuICBmYW1pbHk/OiBzdHJpbmc7XHJcbiAgdHlwZT86IHN0cmluZztcclxuICBrZXk/OiBzdHJpbmc7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xyXG4gIGRyYWZ0PzogYm9vbGVhbjtcclxuICBlbXB0eT86IGJvb2xlYW47XHJcbiAgb3B0aW9ucz86IFQ7XHJcbn1cclxuIl19