@provoly/dashboard 0.18.0 → 0.18.2

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 (28) hide show
  1. package/esm2022/admin/components/admin-classes/admin-classes-view/admin-attributes-form/admin-attributes-form.component.mjs +3 -3
  2. package/esm2022/lib/core/components/about/about.component.mjs +8 -3
  3. package/esm2022/lib/core/i18n/fr.translations.mjs +8 -8
  4. package/esm2022/lib/dashboard/components/widgets/widget-instanciator/widget-factory.service.mjs +23 -4
  5. package/esm2022/lib/dashboard/components/widgets/widget-instanciator/widgets-definition.model.mjs +1 -1
  6. package/esm2022/lib/dashboard/store/dashboard.effects.mjs +9 -6
  7. package/esm2022/widgets/widget-aggregated-chart/component/widget-aggregated-chart.component.mjs +21 -9
  8. package/fesm2022/provoly-dashboard-admin.mjs +2 -2
  9. package/fesm2022/provoly-dashboard-admin.mjs.map +1 -1
  10. package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs +20 -8
  11. package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs.map +1 -1
  12. package/fesm2022/provoly-dashboard.mjs +40 -17
  13. package/fesm2022/provoly-dashboard.mjs.map +1 -1
  14. package/lib/core/components/about/about.component.d.ts +1 -0
  15. package/lib/dashboard/components/widgets/widget-instanciator/widget-factory.service.d.ts +6 -1
  16. package/lib/dashboard/components/widgets/widget-instanciator/widgets-definition.model.d.ts +2 -0
  17. package/lib/dashboard/store/dashboard.effects.d.ts +3 -1
  18. package/package.json +25 -25
  19. package/schematics/ng-add/index.js +13 -3
  20. package/schematics/ng-add/index.js.map +1 -1
  21. package/schematics/ng-add/index.spec.js +15 -0
  22. package/schematics/ng-add/index.spec.js.map +1 -1
  23. package/styles/components/_a-chips.scss +15 -0
  24. package/styles/components/_o-about.scss +59 -0
  25. package/styles/components/_o-pry-admin-classes-customize.scss +0 -54
  26. package/styles/main.scss +2 -1
  27. package/styles-theme/components-theme/_o-pry-admin-classes-customize.theme.scss +1 -1
  28. package/widgets/widget-aggregated-chart/component/widget-aggregated-chart.component.d.ts +1 -0
@@ -138,11 +138,11 @@ export class AdminAttributesFormComponent {
138
138
  this.closeCategory();
139
139
  }
140
140
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AdminAttributesFormComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }, { token: i3.UntypedFormBuilder }, { token: i4.Overlay }, { token: i0.ViewContainerRef }, { token: i5.PryI18nService }], target: i0.ɵɵFactoryTarget.Component }); }
141
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: AdminAttributesFormComponent, selector: "pry-admin-attributes-form", inputs: { selectedClass: "selectedClass", interClass: "interClass", selectedAttribute: "selectedAttribute" }, viewQueries: [{ propertyName: "template", first: true, predicate: ["template"], descendants: true, read: TemplateRef }], ngImport: i0, template: "<form class=\"o-form\" [formGroup]=\"attrForm\" (ngSubmit)=\"addAttribute()\">\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" for=\"attr_name\">{{ '@pry.admin.classes.attributes.name' | i18n }}</label>\n <input id=\"attr_name\" type=\"text\" class=\"a-form-field\" formControlName=\"name\" required />\n <label class=\"a-label a-label--help -error\" *ngIf=\"nameAlreadyExists$ | async\">{{\n '@pry.admin.exists' | i18n\n }}</label>\n <div *ngIf=\"attrForm.get('name')?.invalid\">\n <div *ngIf=\"attrForm.get('name')?.hasError('required')\">\n <label class=\"a-label a-label--help -error\" for=\"attr_name\">{{ '@pry.admin.required' | i18n }}</label>\n </div>\n <div *ngIf=\"attrForm.get('name')?.hasError('minlength')\">\n <label class=\"a-label a-label--help -error\" for=\"attr_name\">{{\n '@pry.admin.minLength' | i18n : { len: 2 }\n }}</label>\n </div>\n <div *ngIf=\"attrForm.get('name')?.hasError('maxlength')\">\n <label class=\"a-label a-label--help -error\" for=\"attr_name\">{{\n '@pry.admin.maxLength' | i18n : { len: 100 }\n }}</label>\n </div>\n <div *ngIf=\"attrForm.get('name')?.hasError('whitespace') && !attrForm.get('name')?.hasError('minlength')\">\n <label class=\"a-label a-label--help -error\" for=\"attr_name\">{{ '@pry.admin.noWhitespace' | i18n }}</label>\n </div>\n </div>\n </div>\n\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" for=\"type\">{{ '@pry.admin.classes.attributes.field' | i18n }}</label>\n <div class=\"title-container\">\n <pry-select\n id=\"type\"\n class=\"a-pry-select\"\n formControlName=\"field\"\n [items]=\"fields$ | async\"\n [itemsAsOption]=\"true\"\n [autocomplete]=\"true\"\n bindLabel=\"name\"\n bindValue=\"id\"\n [isForm]=\"true\"\n required=\"true\"\n [templateLabel]=\"templateOption\"\n [templateOption]=\"templateOption\"\n ></pry-select>\n <ng-template #templateOption let-item=\"item\">\n <div class=\"aligned-option\">\n <p>{{ item.name }}</p>\n <div class=\"chips\" *ngIf=\"item.crs\">{{ item.crs }}</div>\n </div>\n </ng-template>\n <ng-container *ngIf=\"selectedFieldTypeDescription$ | async as description\">\n <div class=\"info-icon description-container description\">\n <span class=\"info-text\">i</span>\n </div>\n <div class=\"description-tooltip title-tooltip\">\n <p class=\"a-p -date\">{{ description }}</p>\n </div>\n </ng-container>\n </div>\n <div *ngIf=\"attrForm.get('field')?.invalid\">\n <div *ngIf=\"attrForm.get('field')?.hasError('required')\">\n <label class=\"a-label a-label--help -error\">{{ '@pry.admin.required' | i18n }}</label>\n </div>\n </div>\n </div>\n\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" for=\"category\">{{ '@pry.admin.classes.attributes.category' | i18n }}</label>\n <pry-select\n id=\"category\"\n class=\"form-control\"\n formControlName=\"category\"\n [labelTranslate]=\"true\"\n [items]=\"categories$ | async\"\n (click)=\"showCategory()\"\n bindValue=\"id\"\n bindLabel=\"name\"\n [isForm]=\"true\"\n [readonly]=\"true\"\n ></pry-select>\n </div>\n\n <div class=\"m-btn-group -width-sm\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n (click)=\"goBack()\"\n [innerHTML]=\"'@pry.admin.cancel' | i18n\"\n ></button>\n <button\n *pryAccess=\"{ module: 'admin', page: 'classes', action: 'add_attribute' }\"\n class=\"a-btn a-btn--primary\"\n type=\"submit\"\n [disabled]=\"attrForm.invalid || nameAlreadyExists\"\n [innerHTML]=\"(selectedAttribute ? '@pry.admin.edit' : '@pry.admin.create') | i18n\"\n ></button>\n </div>\n</form>\n\n<ng-template #template>\n <div class=\"o-modal o-modal--selector\">\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title\">\n {{ '@pry.admin.classes.category.select' | i18n }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"closeCategory()\">\n <pry-icon iconSvg=\"close\" [height]=\"35\" [width]=\"35\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.close' | i18n }}</span>\n </button>\n </div>\n </div>\n <form (ngSubmit)=\"addCategory()\">\n <div class=\"m-form-label-field selector\">\n <label class=\"a-label\" for=\"name-search\">{{ '@pry.admin.classes.category.searchOrCreate' | i18n }}</label>\n <input\n type=\"text\"\n class=\"a-form-field\"\n (input)=\"search($event)\"\n [(ngModel)]=\"catToAdd.name\"\n name=\"name\"\n id=\"name-search\"\n />\n </div>\n\n <table class=\"a-table\">\n <caption>\n {{\n '@pry.admin.classes.category.name' | i18n\n }}\n </caption>\n <thead>\n <tr>\n <th scole=\"col\">{{ '@pry.admin.classes.category.name' | i18n }}</th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let cat of categories$ | async\">\n <td>\n <button type=\"button\" class=\"a-btn a-btn--ghost select-it\" (click)=\"setCategory(cat)\">\n <span class=\"u-visually-hidden\">{{ '@pry.admin.classes.category.selectIt' | i18n }}</span>\n {{ cat.name }}\n </button>\n </td>\n </tr>\n </tbody>\n </table>\n <ng-container *ngIf=\"(categories$ | async)?.length === 0\">\n <p class=\"a-p a-p--create\">\n <strong>{{ catToAdd.name }} </strong>\n <span [innerHTML]=\"'@pry.admin.classes.category.add' | i18n\"></span>\n </p>\n <button\n type=\"submit\"\n class=\"a-btn a-btn--primary\"\n [innerHTML]=\"'@pry.admin.classes.category.create' | i18n\"\n ></button>\n </ng-container>\n </form>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.PryAccessDirective, selector: "[pryAccess]", inputs: ["pryAccess"] }, { kind: "component", type: i5.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { 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.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { 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: "component", type: i5.PrySelectComponent, selector: "pry-select", inputs: ["labelTranslate", "baseTranslate", "translationFn", "translationFnArgs", "clearable", "multiple", "multipleClearRight", "closeOnSelect", "placeholder", "isForm", "required", "name", "readonly", "items", "itemsAsOption", "bindData", "bindValue", "bindLabel", "bindIcon", "iconSize", "templateLabel", "templateOption", "autocomplete"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.I18nPipe, name: "i18n" }] }); }
141
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: AdminAttributesFormComponent, selector: "pry-admin-attributes-form", inputs: { selectedClass: "selectedClass", interClass: "interClass", selectedAttribute: "selectedAttribute" }, viewQueries: [{ propertyName: "template", first: true, predicate: ["template"], descendants: true, read: TemplateRef }], ngImport: i0, template: "<form class=\"o-form\" [formGroup]=\"attrForm\" (ngSubmit)=\"addAttribute()\">\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" for=\"attr_name\">{{ '@pry.admin.classes.attributes.name' | i18n }}</label>\n <input id=\"attr_name\" type=\"text\" class=\"a-form-field\" formControlName=\"name\" required />\n <label class=\"a-label a-label--help -error\" *ngIf=\"nameAlreadyExists$ | async\">{{\n '@pry.admin.exists' | i18n\n }}</label>\n <div *ngIf=\"attrForm.get('name')?.invalid\">\n <div *ngIf=\"attrForm.get('name')?.hasError('required')\">\n <label class=\"a-label a-label--help -error\" for=\"attr_name\">{{ '@pry.admin.required' | i18n }}</label>\n </div>\n <div *ngIf=\"attrForm.get('name')?.hasError('minlength')\">\n <label class=\"a-label a-label--help -error\" for=\"attr_name\">{{\n '@pry.admin.minLength' | i18n : { len: 2 }\n }}</label>\n </div>\n <div *ngIf=\"attrForm.get('name')?.hasError('maxlength')\">\n <label class=\"a-label a-label--help -error\" for=\"attr_name\">{{\n '@pry.admin.maxLength' | i18n : { len: 100 }\n }}</label>\n </div>\n <div *ngIf=\"attrForm.get('name')?.hasError('whitespace') && !attrForm.get('name')?.hasError('minlength')\">\n <label class=\"a-label a-label--help -error\" for=\"attr_name\">{{ '@pry.admin.noWhitespace' | i18n }}</label>\n </div>\n </div>\n </div>\n\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" for=\"type\">{{ '@pry.admin.classes.attributes.field' | i18n }}</label>\n <div class=\"title-container\">\n <pry-select\n id=\"type\"\n class=\"a-pry-select\"\n formControlName=\"field\"\n [items]=\"fields$ | async\"\n [itemsAsOption]=\"true\"\n [autocomplete]=\"true\"\n bindLabel=\"name\"\n bindValue=\"id\"\n [isForm]=\"true\"\n required=\"true\"\n [templateLabel]=\"templateOption\"\n [templateOption]=\"templateOption\"\n ></pry-select>\n <ng-template #templateOption let-item=\"item\">\n <div class=\"aligned-option\">\n <p>{{ item.name }}</p>\n <div class=\"a-chips\" *ngIf=\"item.crs\">{{ item.crs }}</div>\n </div>\n </ng-template>\n <ng-container *ngIf=\"selectedFieldTypeDescription$ | async as description\">\n <div class=\"info-icon description-container description\">\n <span class=\"info-text\">i</span>\n </div>\n <div class=\"description-tooltip title-tooltip\">\n <p class=\"a-p -date\">{{ description }}</p>\n </div>\n </ng-container>\n </div>\n <div *ngIf=\"attrForm.get('field')?.invalid\">\n <div *ngIf=\"attrForm.get('field')?.hasError('required')\">\n <label class=\"a-label a-label--help -error\">{{ '@pry.admin.required' | i18n }}</label>\n </div>\n </div>\n </div>\n\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" for=\"category\">{{ '@pry.admin.classes.attributes.category' | i18n }}</label>\n <pry-select\n id=\"category\"\n class=\"form-control\"\n formControlName=\"category\"\n [labelTranslate]=\"true\"\n [items]=\"categories$ | async\"\n (click)=\"showCategory()\"\n bindValue=\"id\"\n bindLabel=\"name\"\n [isForm]=\"true\"\n [readonly]=\"true\"\n ></pry-select>\n </div>\n\n <div class=\"m-btn-group -width-sm\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n (click)=\"goBack()\"\n [innerHTML]=\"'@pry.admin.cancel' | i18n\"\n ></button>\n <button\n *pryAccess=\"{ module: 'admin', page: 'classes', action: 'add_attribute' }\"\n class=\"a-btn a-btn--primary\"\n type=\"submit\"\n [disabled]=\"attrForm.invalid || nameAlreadyExists\"\n [innerHTML]=\"(selectedAttribute ? '@pry.admin.edit' : '@pry.admin.create') | i18n\"\n ></button>\n </div>\n</form>\n\n<ng-template #template>\n <div class=\"o-modal o-modal--selector\">\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title\">\n {{ '@pry.admin.classes.category.select' | i18n }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"closeCategory()\">\n <pry-icon iconSvg=\"close\" [height]=\"35\" [width]=\"35\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.close' | i18n }}</span>\n </button>\n </div>\n </div>\n <form (ngSubmit)=\"addCategory()\">\n <div class=\"m-form-label-field selector\">\n <label class=\"a-label\" for=\"name-search\">{{ '@pry.admin.classes.category.searchOrCreate' | i18n }}</label>\n <input\n type=\"text\"\n class=\"a-form-field\"\n (input)=\"search($event)\"\n [(ngModel)]=\"catToAdd.name\"\n name=\"name\"\n id=\"name-search\"\n />\n </div>\n\n <table class=\"a-table\">\n <caption>\n {{\n '@pry.admin.classes.category.name' | i18n\n }}\n </caption>\n <thead>\n <tr>\n <th scole=\"col\">{{ '@pry.admin.classes.category.name' | i18n }}</th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let cat of categories$ | async\">\n <td>\n <button type=\"button\" class=\"a-btn a-btn--ghost select-it\" (click)=\"setCategory(cat)\">\n <span class=\"u-visually-hidden\">{{ '@pry.admin.classes.category.selectIt' | i18n }}</span>\n {{ cat.name }}\n </button>\n </td>\n </tr>\n </tbody>\n </table>\n <ng-container *ngIf=\"(categories$ | async)?.length === 0\">\n <p class=\"a-p a-p--create\">\n <strong>{{ catToAdd.name }} </strong>\n <span [innerHTML]=\"'@pry.admin.classes.category.add' | i18n\"></span>\n </p>\n <button\n type=\"submit\"\n class=\"a-btn a-btn--primary\"\n [innerHTML]=\"'@pry.admin.classes.category.create' | i18n\"\n ></button>\n </ng-container>\n </form>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.PryAccessDirective, selector: "[pryAccess]", inputs: ["pryAccess"] }, { kind: "component", type: i5.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { 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.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { 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: "component", type: i5.PrySelectComponent, selector: "pry-select", inputs: ["labelTranslate", "baseTranslate", "translationFn", "translationFnArgs", "clearable", "multiple", "multipleClearRight", "closeOnSelect", "placeholder", "isForm", "required", "name", "readonly", "items", "itemsAsOption", "bindData", "bindValue", "bindLabel", "bindIcon", "iconSize", "templateLabel", "templateOption", "autocomplete"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.I18nPipe, name: "i18n" }] }); }
142
142
  }
143
143
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AdminAttributesFormComponent, decorators: [{
144
144
  type: Component,
145
- args: [{ selector: 'pry-admin-attributes-form', template: "<form class=\"o-form\" [formGroup]=\"attrForm\" (ngSubmit)=\"addAttribute()\">\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" for=\"attr_name\">{{ '@pry.admin.classes.attributes.name' | i18n }}</label>\n <input id=\"attr_name\" type=\"text\" class=\"a-form-field\" formControlName=\"name\" required />\n <label class=\"a-label a-label--help -error\" *ngIf=\"nameAlreadyExists$ | async\">{{\n '@pry.admin.exists' | i18n\n }}</label>\n <div *ngIf=\"attrForm.get('name')?.invalid\">\n <div *ngIf=\"attrForm.get('name')?.hasError('required')\">\n <label class=\"a-label a-label--help -error\" for=\"attr_name\">{{ '@pry.admin.required' | i18n }}</label>\n </div>\n <div *ngIf=\"attrForm.get('name')?.hasError('minlength')\">\n <label class=\"a-label a-label--help -error\" for=\"attr_name\">{{\n '@pry.admin.minLength' | i18n : { len: 2 }\n }}</label>\n </div>\n <div *ngIf=\"attrForm.get('name')?.hasError('maxlength')\">\n <label class=\"a-label a-label--help -error\" for=\"attr_name\">{{\n '@pry.admin.maxLength' | i18n : { len: 100 }\n }}</label>\n </div>\n <div *ngIf=\"attrForm.get('name')?.hasError('whitespace') && !attrForm.get('name')?.hasError('minlength')\">\n <label class=\"a-label a-label--help -error\" for=\"attr_name\">{{ '@pry.admin.noWhitespace' | i18n }}</label>\n </div>\n </div>\n </div>\n\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" for=\"type\">{{ '@pry.admin.classes.attributes.field' | i18n }}</label>\n <div class=\"title-container\">\n <pry-select\n id=\"type\"\n class=\"a-pry-select\"\n formControlName=\"field\"\n [items]=\"fields$ | async\"\n [itemsAsOption]=\"true\"\n [autocomplete]=\"true\"\n bindLabel=\"name\"\n bindValue=\"id\"\n [isForm]=\"true\"\n required=\"true\"\n [templateLabel]=\"templateOption\"\n [templateOption]=\"templateOption\"\n ></pry-select>\n <ng-template #templateOption let-item=\"item\">\n <div class=\"aligned-option\">\n <p>{{ item.name }}</p>\n <div class=\"chips\" *ngIf=\"item.crs\">{{ item.crs }}</div>\n </div>\n </ng-template>\n <ng-container *ngIf=\"selectedFieldTypeDescription$ | async as description\">\n <div class=\"info-icon description-container description\">\n <span class=\"info-text\">i</span>\n </div>\n <div class=\"description-tooltip title-tooltip\">\n <p class=\"a-p -date\">{{ description }}</p>\n </div>\n </ng-container>\n </div>\n <div *ngIf=\"attrForm.get('field')?.invalid\">\n <div *ngIf=\"attrForm.get('field')?.hasError('required')\">\n <label class=\"a-label a-label--help -error\">{{ '@pry.admin.required' | i18n }}</label>\n </div>\n </div>\n </div>\n\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" for=\"category\">{{ '@pry.admin.classes.attributes.category' | i18n }}</label>\n <pry-select\n id=\"category\"\n class=\"form-control\"\n formControlName=\"category\"\n [labelTranslate]=\"true\"\n [items]=\"categories$ | async\"\n (click)=\"showCategory()\"\n bindValue=\"id\"\n bindLabel=\"name\"\n [isForm]=\"true\"\n [readonly]=\"true\"\n ></pry-select>\n </div>\n\n <div class=\"m-btn-group -width-sm\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n (click)=\"goBack()\"\n [innerHTML]=\"'@pry.admin.cancel' | i18n\"\n ></button>\n <button\n *pryAccess=\"{ module: 'admin', page: 'classes', action: 'add_attribute' }\"\n class=\"a-btn a-btn--primary\"\n type=\"submit\"\n [disabled]=\"attrForm.invalid || nameAlreadyExists\"\n [innerHTML]=\"(selectedAttribute ? '@pry.admin.edit' : '@pry.admin.create') | i18n\"\n ></button>\n </div>\n</form>\n\n<ng-template #template>\n <div class=\"o-modal o-modal--selector\">\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title\">\n {{ '@pry.admin.classes.category.select' | i18n }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"closeCategory()\">\n <pry-icon iconSvg=\"close\" [height]=\"35\" [width]=\"35\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.close' | i18n }}</span>\n </button>\n </div>\n </div>\n <form (ngSubmit)=\"addCategory()\">\n <div class=\"m-form-label-field selector\">\n <label class=\"a-label\" for=\"name-search\">{{ '@pry.admin.classes.category.searchOrCreate' | i18n }}</label>\n <input\n type=\"text\"\n class=\"a-form-field\"\n (input)=\"search($event)\"\n [(ngModel)]=\"catToAdd.name\"\n name=\"name\"\n id=\"name-search\"\n />\n </div>\n\n <table class=\"a-table\">\n <caption>\n {{\n '@pry.admin.classes.category.name' | i18n\n }}\n </caption>\n <thead>\n <tr>\n <th scole=\"col\">{{ '@pry.admin.classes.category.name' | i18n }}</th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let cat of categories$ | async\">\n <td>\n <button type=\"button\" class=\"a-btn a-btn--ghost select-it\" (click)=\"setCategory(cat)\">\n <span class=\"u-visually-hidden\">{{ '@pry.admin.classes.category.selectIt' | i18n }}</span>\n {{ cat.name }}\n </button>\n </td>\n </tr>\n </tbody>\n </table>\n <ng-container *ngIf=\"(categories$ | async)?.length === 0\">\n <p class=\"a-p a-p--create\">\n <strong>{{ catToAdd.name }} </strong>\n <span [innerHTML]=\"'@pry.admin.classes.category.add' | i18n\"></span>\n </p>\n <button\n type=\"submit\"\n class=\"a-btn a-btn--primary\"\n [innerHTML]=\"'@pry.admin.classes.category.create' | i18n\"\n ></button>\n </ng-container>\n </form>\n </div>\n</ng-template>\n" }]
145
+ args: [{ selector: 'pry-admin-attributes-form', template: "<form class=\"o-form\" [formGroup]=\"attrForm\" (ngSubmit)=\"addAttribute()\">\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" for=\"attr_name\">{{ '@pry.admin.classes.attributes.name' | i18n }}</label>\n <input id=\"attr_name\" type=\"text\" class=\"a-form-field\" formControlName=\"name\" required />\n <label class=\"a-label a-label--help -error\" *ngIf=\"nameAlreadyExists$ | async\">{{\n '@pry.admin.exists' | i18n\n }}</label>\n <div *ngIf=\"attrForm.get('name')?.invalid\">\n <div *ngIf=\"attrForm.get('name')?.hasError('required')\">\n <label class=\"a-label a-label--help -error\" for=\"attr_name\">{{ '@pry.admin.required' | i18n }}</label>\n </div>\n <div *ngIf=\"attrForm.get('name')?.hasError('minlength')\">\n <label class=\"a-label a-label--help -error\" for=\"attr_name\">{{\n '@pry.admin.minLength' | i18n : { len: 2 }\n }}</label>\n </div>\n <div *ngIf=\"attrForm.get('name')?.hasError('maxlength')\">\n <label class=\"a-label a-label--help -error\" for=\"attr_name\">{{\n '@pry.admin.maxLength' | i18n : { len: 100 }\n }}</label>\n </div>\n <div *ngIf=\"attrForm.get('name')?.hasError('whitespace') && !attrForm.get('name')?.hasError('minlength')\">\n <label class=\"a-label a-label--help -error\" for=\"attr_name\">{{ '@pry.admin.noWhitespace' | i18n }}</label>\n </div>\n </div>\n </div>\n\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" for=\"type\">{{ '@pry.admin.classes.attributes.field' | i18n }}</label>\n <div class=\"title-container\">\n <pry-select\n id=\"type\"\n class=\"a-pry-select\"\n formControlName=\"field\"\n [items]=\"fields$ | async\"\n [itemsAsOption]=\"true\"\n [autocomplete]=\"true\"\n bindLabel=\"name\"\n bindValue=\"id\"\n [isForm]=\"true\"\n required=\"true\"\n [templateLabel]=\"templateOption\"\n [templateOption]=\"templateOption\"\n ></pry-select>\n <ng-template #templateOption let-item=\"item\">\n <div class=\"aligned-option\">\n <p>{{ item.name }}</p>\n <div class=\"a-chips\" *ngIf=\"item.crs\">{{ item.crs }}</div>\n </div>\n </ng-template>\n <ng-container *ngIf=\"selectedFieldTypeDescription$ | async as description\">\n <div class=\"info-icon description-container description\">\n <span class=\"info-text\">i</span>\n </div>\n <div class=\"description-tooltip title-tooltip\">\n <p class=\"a-p -date\">{{ description }}</p>\n </div>\n </ng-container>\n </div>\n <div *ngIf=\"attrForm.get('field')?.invalid\">\n <div *ngIf=\"attrForm.get('field')?.hasError('required')\">\n <label class=\"a-label a-label--help -error\">{{ '@pry.admin.required' | i18n }}</label>\n </div>\n </div>\n </div>\n\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" for=\"category\">{{ '@pry.admin.classes.attributes.category' | i18n }}</label>\n <pry-select\n id=\"category\"\n class=\"form-control\"\n formControlName=\"category\"\n [labelTranslate]=\"true\"\n [items]=\"categories$ | async\"\n (click)=\"showCategory()\"\n bindValue=\"id\"\n bindLabel=\"name\"\n [isForm]=\"true\"\n [readonly]=\"true\"\n ></pry-select>\n </div>\n\n <div class=\"m-btn-group -width-sm\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n (click)=\"goBack()\"\n [innerHTML]=\"'@pry.admin.cancel' | i18n\"\n ></button>\n <button\n *pryAccess=\"{ module: 'admin', page: 'classes', action: 'add_attribute' }\"\n class=\"a-btn a-btn--primary\"\n type=\"submit\"\n [disabled]=\"attrForm.invalid || nameAlreadyExists\"\n [innerHTML]=\"(selectedAttribute ? '@pry.admin.edit' : '@pry.admin.create') | i18n\"\n ></button>\n </div>\n</form>\n\n<ng-template #template>\n <div class=\"o-modal o-modal--selector\">\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title\">\n {{ '@pry.admin.classes.category.select' | i18n }}\n </h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"closeCategory()\">\n <pry-icon iconSvg=\"close\" [height]=\"35\" [width]=\"35\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.close' | i18n }}</span>\n </button>\n </div>\n </div>\n <form (ngSubmit)=\"addCategory()\">\n <div class=\"m-form-label-field selector\">\n <label class=\"a-label\" for=\"name-search\">{{ '@pry.admin.classes.category.searchOrCreate' | i18n }}</label>\n <input\n type=\"text\"\n class=\"a-form-field\"\n (input)=\"search($event)\"\n [(ngModel)]=\"catToAdd.name\"\n name=\"name\"\n id=\"name-search\"\n />\n </div>\n\n <table class=\"a-table\">\n <caption>\n {{\n '@pry.admin.classes.category.name' | i18n\n }}\n </caption>\n <thead>\n <tr>\n <th scole=\"col\">{{ '@pry.admin.classes.category.name' | i18n }}</th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let cat of categories$ | async\">\n <td>\n <button type=\"button\" class=\"a-btn a-btn--ghost select-it\" (click)=\"setCategory(cat)\">\n <span class=\"u-visually-hidden\">{{ '@pry.admin.classes.category.selectIt' | i18n }}</span>\n {{ cat.name }}\n </button>\n </td>\n </tr>\n </tbody>\n </table>\n <ng-container *ngIf=\"(categories$ | async)?.length === 0\">\n <p class=\"a-p a-p--create\">\n <strong>{{ catToAdd.name }} </strong>\n <span [innerHTML]=\"'@pry.admin.classes.category.add' | i18n\"></span>\n </p>\n <button\n type=\"submit\"\n class=\"a-btn a-btn--primary\"\n [innerHTML]=\"'@pry.admin.classes.category.create' | i18n\"\n ></button>\n </ng-container>\n </form>\n </div>\n</ng-template>\n" }]
146
146
  }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }, { type: i3.UntypedFormBuilder }, { type: i4.Overlay }, { type: i0.ViewContainerRef }, { type: i5.PryI18nService }]; }, propDecorators: { selectedClass: [{
147
147
  type: Input
148
148
  }], interClass: [{
@@ -153,4 +153,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImpor
153
153
  type: ViewChild,
154
154
  args: ['template', { read: TemplateRef }]
155
155
  }] } });
156
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtaW4tYXR0cmlidXRlcy1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2FkbWluL2NvbXBvbmVudHMvYWRtaW4tY2xhc3Nlcy9hZG1pbi1jbGFzc2VzLXZpZXcvYWRtaW4tYXR0cmlidXRlcy1mb3JtL2FkbWluLWF0dHJpYnV0ZXMtZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9hZG1pbi9jb21wb25lbnRzL2FkbWluLWNsYXNzZXMvYWRtaW4tY2xhc3Nlcy12aWV3L2FkbWluLWF0dHJpYnV0ZXMtZm9ybS9hZG1pbi1hdHRyaWJ1dGVzLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFXLGFBQWEsRUFBYyxNQUFNLHNCQUFzQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBcUIsV0FBVyxFQUFFLFNBQVMsRUFBb0IsTUFBTSxlQUFlLENBQUM7QUFDOUcsT0FBTyxFQUF3QyxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUdsRixPQUFPLEVBR0wsZUFBZSxFQUNmLGlCQUFpQixFQUVqQixhQUFhLEVBQ2IscUJBQXFCLEVBRXJCLGFBQWEsRUFDYixZQUFZLEVBQ1osY0FBYyxFQUVmLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUNMLGVBQWUsRUFDZixhQUFhLEVBQ2Isb0JBQW9CLEVBQ3BCLEdBQUcsRUFFSCxFQUFFLEVBQ0YsU0FBUyxFQUNULFlBQVksRUFDWixTQUFTLEVBQ1YsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRSxNQUFN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QUM7SUFDdkIsQ0FBQzs4R0ExS1UsNEJBQTRCO2tHQUE1Qiw0QkFBNEIsZ1FBa0JSLFdBQVcsNkJDMUQ1Qyxxck1BbUtBOzsyRkQzSGEsNEJBQTRCO2tCQUp4QyxTQUFTOytCQUNFLDJCQUEyQjtpUUFnQjVCLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBR3dDLFFBQVE7c0JBQXJELFNBQVM7dUJBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE92ZXJsYXksIE92ZXJsYXlDb25maWcsIE92ZXJsYXlSZWYgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBUZW1wbGF0ZVBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVudHlwZWRGb3JtQnVpbGRlciwgVW50eXBlZEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQge1xuICBBdHRyaWJ1dGUsXG4gIENhdGVnb3J5LFxuICBDYXRlZ29yeUFjdGlvbnMsXG4gIENhdGVnb3J5U2VsZWN0b3JzLFxuICBDbGFzcyxcbiAgQ29uZmlnQWN0aW9ucyxcbiAgREVGQVVMVF9DQVRFR09SWV9VVUlELFxuICBGaWVsZCxcbiAgRklFTERfT1BUSU9OUyxcbiAgRmllbGRBY3Rpb25zLFxuICBGaWVsZFNlbGVjdG9ycyxcbiAgUHJ5STE4blNlcnZpY2Vcbn0gZnJvbSAnQHByb3ZvbHkvZGFzaGJvYXJkJztcbmltcG9ydCB7XG4gIEJlaGF2aW9yU3ViamVjdCxcbiAgY29tYmluZUxhdGVzdCxcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gIG1hcCxcbiAgT2JzZXJ2YWJsZSxcbiAgb2YsXG4gIHN0YXJ0V2l0aCxcbiAgU3Vic2NyaXB0aW9uLFxuICBzd2l0Y2hNYXBcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB2NCBhcyB1dWlkIH0gZnJvbSAndXVpZCc7XG5pbXBvcnQgeyBub1doaXRlc3BhY2VWYWxpZGF0b3IgfSBmcm9tICcuLi8uLi8uLi8uLi9jb21wb25lbnRzL2FkbWluLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZG1pbkFjdGlvbnMgfSBmcm9tICcuLi8uLi8uLi8uLi9zdG9yZS9hZG1pbi5hY3Rpb25zJztcbmltcG9ydCB7IEFkbWluQ2xhc3NBY3Rpb25zIH0gZnJvbSAnLi4vLi4vc3RvcmUvYWRtaW4tY2xhc3MuYWN0aW9ucyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ByeS1hZG1pbi1hdHRyaWJ1dGVzLWZvcm0nLFxuICB0ZW1wbGF0ZVVybDogJy4vYWRtaW4tYXR0cmlidXRlcy1mb3JtLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBBZG1pbkF0dHJpYnV0ZXNGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBhdHRyRm9ybTogVW50eXBlZEZvcm1Hcm91cDtcbiAgc3ViID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuICBuYW1lQWxyZWFkeUV4aXN0cyQ/OiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBhdHRyaWJ1dGVOYW1lcz86IHN0cmluZ1tdO1xuICBmaWVsZHMkOiBPYnNlcnZhYmxlPEZpZWxkW10+O1xuICBzZWxlY3RlZEZpZWxkVHlwZURlc2NyaXB0aW9uJD86IE9ic2VydmFibGU8c3RyaW5nIHwgdW5kZWZpbmVkPjtcbiAgZmllbGRUeXBlRGVzY3JpcHRpb24gPSBGSUVMRF9PUFRJT05TO1xuICBjYXRlZ29yaWVzJDogT2JzZXJ2YWJsZTxDYXRlZ29yeVtdPjtcbiAgbmFtZUFscmVhZHlFeGlzdHMgPSBmYWxzZTtcbiAgaXNTaG93ZWRDYXRlZ29yeSA9IGZhbHNlO1xuICBjYXRUb0FkZCA9IHt9IGFzIENhdGVnb3J5O1xuXG4gIEBJbnB1dCgpIHNlbGVjdGVkQ2xhc3M/OiBDbGFzcztcbiAgQElucHV0KCkgaW50ZXJDbGFzcz86IENsYXNzO1xuICBASW5wdXQoKSBzZWxlY3RlZEF0dHJpYnV0ZT86IEF0dHJpYnV0ZTtcblxuICBwcml2YXRlIG92ZXJsYXlSZWY/OiBPdmVybGF5UmVmO1xuICBAVmlld0NoaWxkKCd0ZW1wbGF0ZScsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSkgdGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBwcml2YXRlIGZpbHRlckNhdGVnb3JpZXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzdG9yZTogU3RvcmU8YW55PixcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgZm9ybUJ1aWxkZXI6IFVudHlwZWRGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIG92ZXJsYXk6IE92ZXJsYXksXG4gICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgIHByaXZhdGUgaTE4blNlcnZpY2U6IFByeUkxOG5TZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRmllbGRBY3Rpb25zLmxvYWQoKSk7XG4gICAgdGhpcy5maWVsZHMkID0gdGhpcy5zdG9yZS5zZWxlY3QoRmllbGRTZWxlY3RvcnMuZmllbGRzKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKENhdGVnb3J5QWN0aW9ucy5sb2FkKCkpO1xuICAgIHRoaXMuY2F0ZWdvcmllcyQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLnN0b3JlLnNlbGVjdChDYXRlZ29yeVNlbGVjdG9ycy5jYXRlZ29yaWVzKSwgdGhpcy5maWx0ZXJDYXRlZ29yaWVzJF0pLnBpcGUoXG4gICAgICBtYXAoKFtjYXRlZ29yaWVzLCBmaWx0ZXJdKSA9PlxuICAgICAgICBjYXRlZ29yaWVzLmZpbHRlcigoY2F0KSA9PiAhZmlsdGVyIHx8IGNhdC5uYW1lLnRvTG9jYWxlTG93ZXJDYXNlKCkuaW5jbHVkZXMoZmlsdGVyLnRvTG9jYWxlTG93ZXJDYXNlKCkpKVxuICAgICAgKVxuICAgICk7XG5cbiAgICB0aGlzLmF0dHJGb3JtID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICBpZDogW3V1aWQoKV0sXG4gICAgICBuYW1lOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1pbkxlbmd0aCgyKSwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMTAwKSwgbm9XaGl0ZXNwYWNlVmFsaWRhdG9yXV0sXG4gICAgICBkZXNjcmlwdGlvbjogW3sgdmFsdWU6ICcnLCBkaXNhYmxlZDogdHJ1ZSB9XSxcbiAgICAgIGZpZWxkOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICBjYXRlZ29yeTogW0RFRkFVTFRfQ0FURUdPUllfVVVJRF0sXG4gICAgICBtdWx0aVZhbHVlZDogW2ZhbHNlXVxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5hdHRyaWJ1dGVOYW1lcyA9IHRoaXMuaW50ZXJDbGFzcz8uYXR0cmlidXRlcy5tYXAoKGF0dHI6IEF0dHJpYnV0ZSkgPT4gYXR0ci5uYW1lKTtcblxuICAgIGlmICh0aGlzLnNlbGVjdGVkQ2xhc3MpIHtcbiAgICAgIHRoaXMuYXR0cmlidXRlTmFtZXMgPSB0aGlzLnNlbGVjdGVkQ2xhc3MuYXR0cmlidXRlcy5tYXAoKGF0dHI6IEF0dHJpYnV0ZSkgPT4gYXR0ci5uYW1lKTtcblxuICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRBdHRyaWJ1dGUpIHtcbiAgICAgICAgdGhpcy5hdHRyRm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgICAgICBpZDogdGhpcy5zZWxlY3RlZEF0dHJpYnV0ZS5pZCxcbiAgICAgICAgICBuYW1lOiB0aGlzLnNlbGVjdGVkQXR0cmlidXRlLm5hbWUsXG4gICAgICAgICAgZmllbGQ6IHRoaXMuc2VsZWN0ZWRBdHRyaWJ1dGUuZmllbGQsXG4gICAgICAgICAgY2F0ZWdvcnk6IHRoaXMuc2VsZWN0ZWRBdHRyaWJ1dGUuY2F0ZWdvcnlcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuYXR0ckZvcm0uY29udHJvbHNbJ2ZpZWxkJ10uZGlzYWJsZSgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0aGlzLmF0dHJpYnV0ZU5hbWVzKSB7XG4gICAgICB0aGlzLm5hbWVBbHJlYWR5RXhpc3RzJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICB0aGlzLmF0dHJGb3JtLmdldCgnbmFtZScpPy52YWx1ZUNoYW5nZXMgYXMgT2JzZXJ2YWJsZTxzdHJpbmc+LFxuICAgICAgICBvZih0aGlzLmF0dHJpYnV0ZU5hbWVzKVxuICAgICAgXSkucGlwZShcbiAgICAgICAgbWFwKChbdmFsdWUsIGF0dHJpYnV0ZU5hbWVzXSkgPT4gYXR0cmlidXRlTmFtZXMuaW5jbHVkZXModmFsdWUpICYmIHZhbHVlICE9IHRoaXMuc2VsZWN0ZWRBdHRyaWJ1dGU/Lm5hbWUpXG4gICAgICApO1xuICAgICAgdGhpcy5zdWIuYWRkKHRoaXMubmFtZUFscmVhZHlFeGlzdHMkLnN1YnNjcmliZSgodmFsdWUpID0+ICh0aGlzLm5hbWVBbHJlYWR5RXhpc3RzID0gdmFsdWUpKSk7XG4gICAgfVxuXG4gICAgdGhpcy5zZWxlY3RlZEZpZWxkVHlwZURlc2NyaXB0aW9uJCA9IHRoaXMuYXR0ckZvcm0uZ2V0KCdmaWVsZCcpPy52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgIHN0YXJ0V2l0aCh0aGlzLmF0dHJGb3JtLmdldCgnZmllbGQnKT8udmFsdWUpLFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgIHN3aXRjaE1hcCgoc2VsZWN0ZWRGaWVsZElkKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpZWxkcyQucGlwZShcbiAgICAgICAgICBtYXAoKGZpZWxkcykgPT4ge1xuICAgICAgICAgICAgY29uc3QgZmllbGREZXNjcmlwdGlvbiA9IHRoaXMuZmllbGRUeXBlRGVzY3JpcHRpb24uZmluZChcbiAgICAgICAgICAgICAgKGZpZWxkVHlwZSkgPT4gZmllbGRUeXBlLnZhclR5cGUgPT09IGZpZWxkcy5maW5kKChmaWVsZCkgPT4gZmllbGQuaWQgPT09IHNlbGVjdGVkRmllbGRJZCk/LnR5cGVcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICByZXR1cm4gZmllbGREZXNjcmlwdGlvbiA/IHRoaXMuaTE4blNlcnZpY2UuaW5zdGFudChmaWVsZERlc2NyaXB0aW9uLmRlc2NyaXB0aW9uKSA6ICcnO1xuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnN1Yi51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgZ29CYWNrKCkge1xuICAgIGNvbnN0IHJlZGlyZWN0UGF0aCA9IHRoaXMuc2VsZWN0ZWRBdHRyaWJ1dGUgPyAnLi4vLi4nIDogJy4uJztcbiAgICBjb25zdCBwYXRoID0gdGhpcy5yb3V0ZXIuY3JlYXRlVXJsVHJlZShbcmVkaXJlY3RQYXRoXSwgeyByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlIH0pO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQWRtaW5BY3Rpb25zLnJvdXRlVG8oeyBwYXRoOiBwYXRoLnRvU3RyaW5nKCkgfSkpO1xuICB9XG5cbiAgYWRkQXR0cmlidXRlKCkge1xuICAgIHRoaXMuYXR0ckZvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICBuYW1lOiB0aGlzLmF0dHJGb3JtLnZhbHVlLm5hbWUudHJpbSgpXG4gICAgfSk7XG5cbiAgICBpZiAodGhpcy5hdHRyRm9ybS52YWxpZCkge1xuICAgICAgbGV0IGF0dHJUb1NhdmUgPSB0aGlzLmF0dHJGb3JtLmdldFJhd1ZhbHVlKCkgYXMgQXR0cmlidXRlO1xuICAgICAgbGV0IHBhdGggPSB0aGlzLnJvdXRlci5jcmVhdGVVcmxUcmVlKFsnLi4nXSwgeyByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlIH0pO1xuXG4gICAgICBpZiAodGhpcy5zZWxlY3RlZEF0dHJpYnV0ZSkge1xuICAgICAgICBwYXRoID0gdGhpcy5yb3V0ZXIuY3JlYXRlVXJsVHJlZShbJy4uLy4uJ10sIHsgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSB9KTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRDbGFzcykge1xuICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgICAgIEFkbWluQ2xhc3NBY3Rpb25zLnNhdmVBdHRyaWJ1dGVGb3JDbGFzcyh7XG4gICAgICAgICAgICBjbGFzc0lkOiB0aGlzLnNlbGVjdGVkQ2xhc3MuaWQsXG4gICAgICAgICAgICBhdHRyaWJ1dGU6IGF0dHJUb1NhdmUsXG4gICAgICAgICAgICByb3V0ZTogcGF0aC50b1N0cmluZygpXG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5pbnRlckNsYXNzKSB7XG4gICAgICAgIGxldCBpbnRlckF0dHJpYnV0ZSA9IE9iamVjdC5hc3NpZ24oW10sIHRoaXMuaW50ZXJDbGFzcy5hdHRyaWJ1dGVzKTtcbiAgICAgICAgbGV0IGludGVyQ2xhc3NVcGRhdGVkID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5pbnRlckNsYXNzKTtcbiAgICAgICAgaW50ZXJBdHRyaWJ1dGUucHVzaChhdHRyVG9TYXZlKTtcbiAgICAgICAgaW50ZXJDbGFzc1VwZGF0ZWQuYXR0cmlidXRlcyA9IGludGVyQXR0cmlidXRlO1xuICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKEFkbWluQ2xhc3NBY3Rpb25zLnNhdmVJbnRlckNsYXNzKHsgY2xhc3M6IGludGVyQ2xhc3NVcGRhdGVkLCByb3V0ZTogcGF0aC50b1N0cmluZygpIH0pKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBzaG93Q2F0ZWdvcnkoKSB7XG4gICAgdGhpcy5pc1Nob3dlZENhdGVnb3J5ID0gdHJ1ZTtcbiAgICB0aGlzLm92ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKFxuICAgICAgbmV3IE92ZXJsYXlDb25maWcoe1xuICAgICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcbiAgICAgICAgcGFuZWxDbGFzczogWydvLW1vZGFsLXdyYXBwZXInXSxcbiAgICAgICAgYmFja2Ryb3BDbGFzczogJ2JhY2tkcm9wJ1xuICAgICAgfSlcbiAgICApO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQ29uZmlnQWN0aW9ucy5hZGRpbmdPdmVybGF5KHsgaWQ6IHRoaXMuY29uc3RydWN0b3IubmFtZSB9KSk7XG4gICAgdGhpcy5vdmVybGF5UmVmLmJhY2tkcm9wQ2xpY2soKS5zdWJzY3JpYmUoKF8pID0+IHRoaXMuY2xvc2VDYXRlZ29yeSgpKTtcbiAgICB0aGlzLm92ZXJsYXlSZWYuYXR0YWNoKG5ldyBUZW1wbGF0ZVBvcnRhbCh0aGlzLnRlbXBsYXRlLCB0aGlzLnZpZXdDb250YWluZXJSZWYpKTtcbiAgfVxuXG4gIGNsb3NlQ2F0ZWdvcnkoKSB7XG4gICAgdGhpcy5pc1Nob3dlZENhdGVnb3J5ID0gZmFsc2U7XG4gICAgdGhpcy5jYXRUb0FkZCA9IHt9IGFzIENhdGVnb3J5O1xuICAgIHRoaXMub3ZlcmxheVJlZj8uZGlzcG9zZSgpO1xuICAgIHRoaXMuY2F0ZWdvcmllcyQgPSB0aGlzLnN0b3JlLnNlbGVjdChDYXRlZ29yeVNlbGVjdG9ycy5jYXRlZ29yaWVzKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKENvbmZpZ0FjdGlvbnMuY2xvc2VPdmVybGF5KHsgaWQ6IHRoaXMuY29uc3RydWN0b3IubmFtZSB9KSk7XG4gIH1cblxuICBzZWFyY2goZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuZmlsdGVyQ2F0ZWdvcmllcyQubmV4dChldmVudC50YXJnZXQudmFsdWUpO1xuICB9XG5cbiAgYWRkQ2F0ZWdvcnkoKSB7XG4gICAgdGhpcy5jYXRUb0FkZC5pZCA9IHV1aWQoKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKEFkbWluQ2xhc3NBY3Rpb25zLnNhdmVDYXRlZ29yeSh7IGNhdGVnb3J5OiB0aGlzLmNhdFRvQWRkIH0pKTtcbiAgICB0aGlzLnNldENhdGVnb3J5KHRoaXMuY2F0VG9BZGQpO1xuICB9XG5cbiAgc2V0Q2F0ZWdvcnkoY2F0OiBDYXRlZ29yeSkge1xuICAgIHRoaXMuYXR0ckZvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICBjYXRlZ29yeTogY2F0LmlkXG4gICAgfSk7XG4gICAgdGhpcy5jbG9zZUNhdGVnb3J5KCk7XG4gIH1cbn1cbiIsIjxmb3JtIGNsYXNzPVwiby1mb3JtXCIgW2Zvcm1Hcm91cF09XCJhdHRyRm9ybVwiIChuZ1N1Ym1pdCk9XCJhZGRBdHRyaWJ1dGUoKVwiPlxuICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkIC13aWR0aC1zbVwiPlxuICAgIDxsYWJlbCBjbGFzcz1cImEtbGFiZWxcIiBmb3I9XCJhdHRyX25hbWVcIj57eyAnQHByeS5hZG1pbi5jbGFzc2VzLmF0dHJpYnV0ZXMubmFtZScgfCBpMThuIH19PC9sYWJlbD5cbiAgICA8aW5wdXQgaWQ9XCJhdHRyX25hbWVcIiB0eXBlPVwidGV4dFwiIGNsYXNzPVwiYS1mb3JtLWZpZWxkXCIgZm9ybUNvbnRyb2xOYW1lPVwibmFtZVwiIHJlcXVpcmVkIC8+XG4gICAgPGxhYmVsIGNsYXNzPVwiYS1sYWJlbCBhLWxhYmVsLS1oZWxwIC1lcnJvclwiICpuZ0lmPVwibmFtZUFscmVhZHlFeGlzdHMkIHwgYXN5bmNcIj57e1xuICAgICAgJ0BwcnkuYWRtaW4uZXhpc3RzJyB8IGkxOG5cbiAgICB9fTwvbGFiZWw+XG4gICAgPGRpdiAqbmdJZj1cImF0dHJGb3JtLmdldCgnbmFtZScpPy5pbnZhbGlkXCI+XG4gICAgICA8ZGl2ICpuZ0lmPVwiYXR0ckZvcm0uZ2V0KCduYW1lJyk/Lmhhc0Vycm9yKCdyZXF1aXJlZCcpXCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImEtbGFiZWwgYS1sYWJlbC0taGVscCAtZXJyb3JcIiBmb3I9XCJhdHRyX25hbWVcIj57eyAnQHByeS5hZG1pbi5yZXF1aXJlZCcgfCBpMThuIH19PC9sYWJlbD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cImF0dHJGb3JtLmdldCgnbmFtZScpPy5oYXNFcnJvcignbWlubGVuZ3RoJylcIj5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiYS1sYWJlbCBhLWxhYmVsLS1oZWxwIC1lcnJvclwiIGZvcj1cImF0dHJfbmFtZVwiPnt7XG4gICAgICAgICAgJ0BwcnkuYWRtaW4ubWluTGVuZ3RoJyB8IGkxOG4gOiB7IGxlbjogMiB9XG4gICAgICAgIH19PC9sYWJlbD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cImF0dHJGb3JtLmdldCgnbmFtZScpPy5oYXNFcnJvcignbWF4bGVuZ3RoJylcIj5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiYS1sYWJlbCBhLWxhYmVsLS1oZWxwIC1lcnJvclwiIGZvcj1cImF0dHJfbmFtZVwiPnt7XG4gICAgICAgICAgJ0BwcnkuYWRtaW4ubWF4TGVuZ3RoJyB8IGkxOG4gOiB7IGxlbjogMTAwIH1cbiAgICAgICAgfX08L2xhYmVsPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwiYXR0ckZvcm0uZ2V0KCduYW1lJyk/Lmhhc0Vycm9yKCd3aGl0ZXNwYWNlJykgJiYgIWF0dHJGb3JtLmdldCgnbmFtZScpPy5oYXNFcnJvcignbWlubGVuZ3RoJylcIj5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiYS1sYWJlbCBhLWxhYmVsLS1oZWxwIC1lcnJvclwiIGZvcj1cImF0dHJfbmFtZVwiPnt7ICdAcHJ5LmFkbWluLm5vV2hpdGVzcGFjZScgfCBpMThuIH19PC9sYWJlbD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkIC13aWR0aC1zbVwiPlxuICAgIDxsYWJlbCBjbGFzcz1cImEtbGFiZWxcIiBmb3I9XCJ0eXBlXCI+e3sgJ0BwcnkuYWRtaW4uY2xhc3Nlcy5hdHRyaWJ1dGVzLmZpZWxkJyB8IGkxOG4gfX08L2xhYmVsPlxuICAgIDxkaXYgY2xhc3M9XCJ0aXRsZS1jb250YWluZXJcIj5cbiAgICAgIDxwcnktc2VsZWN0XG4gICAgICAgIGlkPVwidHlwZVwiXG4gICAgICAgIGNsYXNzPVwiYS1wcnktc2VsZWN0XCJcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZmllbGRcIlxuICAgICAgICBbaXRlbXNdPVwiZmllbGRzJCB8IGFzeW5jXCJcbiAgICAgICAgW2l0ZW1zQXNPcHRpb25dPVwidHJ1ZVwiXG4gICAgICAgIFthdXRvY29tcGxldGVdPVwidHJ1ZVwiXG4gICAgICAgIGJpbmRMYWJlbD1cIm5hbWVcIlxuICAgICAgICBiaW5kVmFsdWU9XCJpZFwiXG4gICAgICAgIFtpc0Zvcm1dPVwidHJ1ZVwiXG4gICAgICAgIHJlcXVpcmVkPVwidHJ1ZVwiXG4gICAgICAgIFt0ZW1wbGF0ZUxhYmVsXT1cInRlbXBsYXRlT3B0aW9uXCJcbiAgICAgICAgW3RlbXBsYXRlT3B0aW9uXT1cInRlbXBsYXRlT3B0aW9uXCJcbiAgICAgID48L3ByeS1zZWxlY3Q+XG4gICAgICA8bmctdGVtcGxhdGUgI3RlbXBsYXRlT3B0aW9uIGxldC1pdGVtPVwiaXRlbVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWxpZ25lZC1vcHRpb25cIj5cbiAgICAgICAgICA8cD57eyBpdGVtLm5hbWUgfX08L3A+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNoaXBzXCIgKm5nSWY9XCJpdGVtLmNyc1wiPnt7IGl0ZW0uY3JzIH19PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWxlY3RlZEZpZWxkVHlwZURlc2NyaXB0aW9uJCB8IGFzeW5jIGFzIGRlc2NyaXB0aW9uXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbmZvLWljb24gZGVzY3JpcHRpb24tY29udGFpbmVyIGRlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJpbmZvLXRleHRcIj5pPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImRlc2NyaXB0aW9uLXRvb2x0aXAgdGl0bGUtdG9vbHRpcFwiPlxuICAgICAgICAgIDxwIGNsYXNzPVwiYS1wIC1kYXRlXCI+e3sgZGVzY3JpcHRpb24gfX08L3A+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cImF0dHJGb3JtLmdldCgnZmllbGQnKT8uaW52YWxpZFwiPlxuICAgICAgPGRpdiAqbmdJZj1cImF0dHJGb3JtLmdldCgnZmllbGQnKT8uaGFzRXJyb3IoJ3JlcXVpcmVkJylcIj5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiYS1sYWJlbCBhLWxhYmVsLS1oZWxwIC1lcnJvclwiPnt7ICdAcHJ5LmFkbWluLnJlcXVpcmVkJyB8IGkxOG4gfX08L2xhYmVsPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJtLWZvcm0tbGFiZWwtZmllbGQgLXdpZHRoLXNtXCI+XG4gICAgPGxhYmVsIGNsYXNzPVwiYS1sYWJlbFwiIGZvcj1cImNhdGVnb3J5XCI+e3sgJ0BwcnkuYWRtaW4uY2xhc3Nlcy5hdHRyaWJ1dGVzLmNhdGVnb3J5JyB8IGkxOG4gfX08L2xhYmVsPlxuICAgIDxwcnktc2VsZWN0XG4gICAgICBpZD1cImNhdGVnb3J5XCJcbiAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgIGZvcm1Db250cm9sTmFtZT1cImNhdGVnb3J5XCJcbiAgICAgIFtsYWJlbFRyYW5zbGF0ZV09XCJ0cnVlXCJcbiAgICAgIFtpdGVtc109XCJjYXRlZ29yaWVzJCB8IGFzeW5jXCJcbiAgICAgIChjbGljayk9XCJzaG93Q2F0ZWdvcnkoKVwiXG4gICAgICBiaW5kVmFsdWU9XCJpZFwiXG4gICAgICBiaW5kTGFiZWw9XCJuYW1lXCJcbiAgICAgIFtpc0Zvcm1dPVwidHJ1ZVwiXG4gICAgICBbcmVhZG9ubHldPVwidHJ1ZVwiXG4gICAgPjwvcHJ5LXNlbGVjdD5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cIm0tYnRuLWdyb3VwIC13aWR0aC1zbVwiPlxuICAgIDxidXR0b25cbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tc2Vjb25kYXJ5XCJcbiAgICAgIChjbGljayk9XCJnb0JhY2soKVwiXG4gICAgICBbaW5uZXJIVE1MXT1cIidAcHJ5LmFkbWluLmNhbmNlbCcgfCBpMThuXCJcbiAgICA+PC9idXR0b24+XG4gICAgPGJ1dHRvblxuICAgICAgKnByeUFjY2Vzcz1cInsgbW9kdWxlOiAnYWRtaW4nLCBwYWdlOiAnY2xhc3NlcycsIGFjdGlvbjogJ2FkZF9hdHRyaWJ1dGUnIH1cIlxuICAgICAgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tcHJpbWFyeVwiXG4gICAgICB0eXBlPVwic3VibWl0XCJcbiAgICAgIFtkaXNhYmxlZF09XCJhdHRyRm9ybS5pbnZhbGlkIHx8IG5hbWVBbHJlYWR5RXhpc3RzXCJcbiAgICAgIFtpbm5lckhUTUxdPVwiKHNlbGVjdGVkQXR0cmlidXRlID8gJ0BwcnkuYWRtaW4uZWRpdCcgOiAnQHByeS5hZG1pbi5jcmVhdGUnKSB8IGkxOG5cIlxuICAgID48L2J1dHRvbj5cbiAgPC9kaXY+XG48L2Zvcm0+XG5cbjxuZy10ZW1wbGF0ZSAjdGVtcGxhdGU+XG4gIDxkaXYgY2xhc3M9XCJvLW1vZGFsIG8tbW9kYWwtLXNlbGVjdG9yXCI+XG4gICAgPGRpdiBjbGFzcz1cIm8tbW9kYWxfX3RvcFwiPlxuICAgICAgPGRpdiBjbGFzcz1cIm8tbW9kYWxfX3RvcF9fdGl0bGVcIj5cbiAgICAgICAgPGgyIGNsYXNzPVwiYS1oMlwiIGlkPVwiZGlhbG9nX3RpdGxlXCI+XG4gICAgICAgICAge3sgJ0BwcnkuYWRtaW4uY2xhc3Nlcy5jYXRlZ29yeS5zZWxlY3QnIHwgaTE4biB9fVxuICAgICAgICA8L2gyPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiby1tb2RhbF9fdG9wX19jbG9zZVwiPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYS1idG4gYS1idG4tLWljb24tb25seVwiIChjbGljayk9XCJjbG9zZUNhdGVnb3J5KClcIj5cbiAgICAgICAgICA8cHJ5LWljb24gaWNvblN2Zz1cImNsb3NlXCIgW2hlaWdodF09XCIzNVwiIFt3aWR0aF09XCIzNVwiPjwvcHJ5LWljb24+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ1LXZpc3VhbGx5LWhpZGRlblwiPnt7ICdAcHJ5LnRvb2xib3guY2xvc2UnIHwgaTE4biB9fTwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8Zm9ybSAobmdTdWJtaXQpPVwiYWRkQ2F0ZWdvcnkoKVwiPlxuICAgICAgPGRpdiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZCBzZWxlY3RvclwiPlxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJhLWxhYmVsXCIgZm9yPVwibmFtZS1zZWFyY2hcIj57eyAnQHByeS5hZG1pbi5jbGFzc2VzLmNhdGVnb3J5LnNlYXJjaE9yQ3JlYXRlJyB8IGkxOG4gfX08L2xhYmVsPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgY2xhc3M9XCJhLWZvcm0tZmllbGRcIlxuICAgICAgICAgIChpbnB1dCk9XCJzZWFyY2goJGV2ZW50KVwiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJjYXRUb0FkZC5uYW1lXCJcbiAgICAgICAgICBuYW1lPVwibmFtZVwiXG4gICAgICAgICAgaWQ9XCJuYW1lLXNlYXJjaFwiXG4gICAgICAgIC8+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPHRhYmxlIGNsYXNzPVwiYS10YWJsZVwiPlxuICAgICAgICA8Y2FwdGlvbj5cbiAgICAgICAgICB7e1xuICAgICAgICAgICAgJ0BwcnkuYWRtaW4uY2xhc3Nlcy5jYXRlZ29yeS5uYW1lJyB8IGkxOG5cbiAgICAgICAgICB9fVxuICAgICAgICA8L2NhcHRpb24+XG4gICAgICAgIDx0aGVhZD5cbiAgICAgICAgICA8dHI+XG4gICAgICAgICAgICA8dGggc2NvbGU9XCJjb2xcIj57eyAnQHByeS5hZG1pbi5jbGFzc2VzLmNhdGVnb3J5Lm5hbWUnIHwgaTE4biB9fTwvdGg+XG4gICAgICAgICAgPC90cj5cbiAgICAgICAgPC90aGVhZD5cbiAgICAgICAgPHRib2R5PlxuICAgICAgICAgIDx0ciAqbmdGb3I9XCJsZXQgY2F0IG9mIGNhdGVnb3JpZXMkIHwgYXN5bmNcIj5cbiAgICAgICAgICAgIDx0ZD5cbiAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tZ2hvc3Qgc2VsZWN0LWl0XCIgKGNsaWNrKT1cInNldENhdGVnb3J5KGNhdClcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInUtdmlzdWFsbHktaGlkZGVuXCI+e3sgJ0BwcnkuYWRtaW4uY2xhc3Nlcy5jYXRlZ29yeS5zZWxlY3RJdCcgfCBpMThuIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIHt7IGNhdC5uYW1lIH19XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICA8L3RyPlxuICAgICAgICA8L3Rib2R5PlxuICAgICAgPC90YWJsZT5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIoY2F0ZWdvcmllcyQgfCBhc3luYyk/Lmxlbmd0aCA9PT0gMFwiPlxuICAgICAgICA8cCBjbGFzcz1cImEtcCBhLXAtLWNyZWF0ZVwiPlxuICAgICAgICAgIDxzdHJvbmc+e3sgY2F0VG9BZGQubmFtZSB9fSA8L3N0cm9uZz5cbiAgICAgICAgICA8c3BhbiBbaW5uZXJIVE1MXT1cIidAcHJ5LmFkbWluLmNsYXNzZXMuY2F0ZWdvcnkuYWRkJyB8IGkxOG5cIj48L3NwYW4+XG4gICAgICAgIDwvcD5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgIGNsYXNzPVwiYS1idG4gYS1idG4tLXByaW1hcnlcIlxuICAgICAgICAgIFtpbm5lckhUTUxdPVwiJ0BwcnkuYWRtaW4uY2xhc3Nlcy5jYXRlZ29yeS5jcmVhdGUnIHwgaTE4blwiXG4gICAgICAgID48L2J1dHRvbj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZm9ybT5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
156
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtaW4tYXR0cmlidXRlcy1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2FkbWluL2NvbXBvbmVudHMvYWRtaW4tY2xhc3Nlcy9hZG1pbi1jbGFzc2VzLXZpZXcvYWRtaW4tYXR0cmlidXRlcy1mb3JtL2FkbWluLWF0dHJpYnV0ZXMtZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9hZG1pbi9jb21wb25lbnRzL2FkbWluLWNsYXNzZXMvYWRtaW4tY2xhc3Nlcy12aWV3L2FkbWluLWF0dHJpYnV0ZXMtZm9ybS9hZG1pbi1hdHRyaWJ1dGVzLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFXLGFBQWEsRUFBYyxNQUFNLHNCQUFzQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBcUIsV0FBVyxFQUFFLFNBQVMsRUFBb0IsTUFBTSxlQUFlLENBQUM7QUFDOUcsT0FBTyxFQUF3QyxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUdsRixPQUFPLEVBR0wsZUFBZSxFQUNmLGlCQUFpQixFQUVqQixhQUFhLEVBQ2IscUJBQXFCLEVBRXJCLGFBQWEsRUFDYixZQUFZLEVBQ1osY0FBYyxFQUVmLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUNMLGVBQWUsRUFDZixhQUFhLEVBQ2Isb0JBQW9CLEVBQ3BCLEdBQUcsRUFFSCxFQUFFLEVBQ0YsU0FBUyxFQUNULFlBQVksRUFDWixTQUFTLEVBQ1YsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMvRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDL0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUNBQWlDLENBQUM7Ozs7Ozs7O0FBTXBFLE1BQU0sT0FBTyw0QkFBNEI7SUFxQnZDLFlBQ1UsS0FBaUIsRUFDakIsTUFBYyxFQUNkLEtBQXFCLEVBQ3JCLFdBQStCLEVBQy9CLE9BQWdCLEVBQ2hCLGdCQUFrQyxFQUNsQyxXQUEyQjtRQU4zQixVQUFLLEdBQUwsS0FBSyxDQUFZO1FBQ2pCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNyQixnQkFBVyxHQUFYLFdBQVcsQ0FBb0I7UUFDL0IsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUNoQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLGdCQUFXLEdBQVgsV0FBVyxDQUFnQjtRQTFCckMsUUFBRyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFLekIseUJBQW9CLEdBQUcsYUFBYSxDQUFDO1FBRXJDLHNCQUFpQixHQUFHLEtBQUssQ0FBQztRQUMxQixxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFDekIsYUFBUSxHQUFHLEVBQWMsQ0FBQztRQVFsQixzQkFBaUIsR0FBRyxJQUFJLGVBQWUsQ0FBcUIsU0FBUyxDQUFDLENBQUM7UUFXN0UsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7UUFDNUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDOUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLEVBQUUsRUFBRSxDQUMzQixVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLE1BQU0sSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLENBQUMsQ0FDekcsQ0FDRixDQUFDO1FBRUYsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQztZQUNyQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNaLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxVQUFVLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLHFCQUFxQixDQUFDLENBQUM7WUFDNUcsV0FBVyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQztZQUM1QyxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDbEMsUUFBUSxFQUFFLENBQUMscUJBQXFCLENBQUM7WUFDakMsV0FBVyxFQUFFLENBQUMsS0FBSyxDQUFDO1NBQ3JCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFlLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV0RixJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDdEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFlLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUV4RixJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtnQkFDMUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUM7b0JBQ3ZCLEVBQUUsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsRUFBRTtvQkFDN0IsSUFBSSxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJO29CQUNqQyxLQUFLLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUs7b0JBQ25DLFFBQVEsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUTtpQkFDMUMsQ0FBQyxDQUFDO2dCQUNILElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO2FBQzNDO1NBQ0Y7UUFFRCxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDdkIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLGFBQWEsQ0FBQztnQkFDdEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsWUFBa0M7Z0JBQzdELEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDO2FBQ3hCLENBQUMsQ0FBQyxJQUFJLENBQ0wsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsY0FBYyxDQUFDLEVBQUUsRUFBRSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsQ0FDMUcsQ0FBQztZQUNGLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUM5RjtRQUVELElBQUksQ0FBQyw2QkFBNkIsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxZQUFZLENBQUMsSUFBSSxDQUNoRixTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsS0FBSyxDQUFDLEVBQzVDLG9CQUFvQixFQUFFLEVBQ3RCLFNBQVMsQ0FBQyxDQUFDLGVBQWUsRUFBRSxFQUFFO1lBQzVCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQ3RCLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO2dCQUNiLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FDckQsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEtBQUssTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSyxlQUFlLENBQUMsRUFBRSxJQUFJLENBQ2hHLENBQUM7Z0JBQ0YsT0FBTyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUN4RixDQUFDLENBQUMsQ0FDSCxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsTUFBTTtRQUNKLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDN0QsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxZQUFZLENBQUMsRUFBRSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUNuRixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDO1lBQ3ZCLElBQUksRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFO1NBQ3RDLENBQUMsQ0FBQztRQUVILElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUU7WUFDdkIsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQWUsQ0FBQztZQUMxRCxJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1lBRXpFLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFO2dCQUMxQixJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQzthQUN6RTtZQUVELElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtnQkFDdEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQ2pCLGlCQUFpQixDQUFDLHFCQUFxQixDQUFDO29CQUN0QyxPQUFPLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFO29CQUM5QixTQUFTLEVBQUUsVUFBVTtvQkFDckIsS0FBSyxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUU7aUJBQ3ZCLENBQUMsQ0FDSCxDQUFDO2FBQ0g7aUJBQU0sSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUMxQixJQUFJLGNBQWMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUNuRSxJQUFJLGlCQUFpQixHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDM0QsY0FBYyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDaEMsaUJBQWlCLENBQUMsVUFBVSxHQUFHLGNBQWMsQ0FBQztnQkFDOUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsY0FBYyxDQUFDLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7YUFDN0c7U0FDRjtJQUNILENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztRQUM3QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUNuQyxJQUFJLGFBQWEsQ0FBQztZQUNoQixXQUFXLEVBQUUsSUFBSTtZQUNqQixVQUFVLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztZQUMvQixhQUFhLEVBQUUsVUFBVTtTQUMxQixDQUFDLENBQ0gsQ0FBQztRQUNGLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDaEYsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZFLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksY0FBYyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQztJQUNuRixDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFDOUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFjLENBQUM7UUFDL0IsSUFBSSxDQUFDLFVBQVUsRUFBRSxPQUFPLEVBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ25FLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDakYsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFVO1FBQ2YsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEdBQUcsSUFBSSxFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDakYsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELFdBQVcsQ0FBQyxHQUFhO1FBQ3ZCLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDO1lBQ3ZCLFFBQVEsRUFBRSxHQUFHLENBQUMsRUFBRTtTQUNqQixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkIsQ0FBQzs4R0ExS1UsNEJBQTRCO2tHQUE1Qiw0QkFBNEIsZ1FBa0JSLFdBQVcsNkJDMUQ1Qyx1ck1BbUtBOzsyRkQzSGEsNEJBQTRCO2tCQUp4QyxTQUFTOytCQUNFLDJCQUEyQjtpUUFnQjVCLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBR3dDLFFBQVE7c0JBQXJELFNBQVM7dUJBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE92ZXJsYXksIE92ZXJsYXlDb25maWcsIE92ZXJsYXlSZWYgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBUZW1wbGF0ZVBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVudHlwZWRGb3JtQnVpbGRlciwgVW50eXBlZEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQge1xuICBBdHRyaWJ1dGUsXG4gIENhdGVnb3J5LFxuICBDYXRlZ29yeUFjdGlvbnMsXG4gIENhdGVnb3J5U2VsZWN0b3JzLFxuICBDbGFzcyxcbiAgQ29uZmlnQWN0aW9ucyxcbiAgREVGQVVMVF9DQVRFR09SWV9VVUlELFxuICBGaWVsZCxcbiAgRklFTERfT1BUSU9OUyxcbiAgRmllbGRBY3Rpb25zLFxuICBGaWVsZFNlbGVjdG9ycyxcbiAgUHJ5STE4blNlcnZpY2Vcbn0gZnJvbSAnQHByb3ZvbHkvZGFzaGJvYXJkJztcbmltcG9ydCB7XG4gIEJlaGF2aW9yU3ViamVjdCxcbiAgY29tYmluZUxhdGVzdCxcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gIG1hcCxcbiAgT2JzZXJ2YWJsZSxcbiAgb2YsXG4gIHN0YXJ0V2l0aCxcbiAgU3Vic2NyaXB0aW9uLFxuICBzd2l0Y2hNYXBcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB2NCBhcyB1dWlkIH0gZnJvbSAndXVpZCc7XG5pbXBvcnQgeyBub1doaXRlc3BhY2VWYWxpZGF0b3IgfSBmcm9tICcuLi8uLi8uLi8uLi9jb21wb25lbnRzL2FkbWluLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZG1pbkFjdGlvbnMgfSBmcm9tICcuLi8uLi8uLi8uLi9zdG9yZS9hZG1pbi5hY3Rpb25zJztcbmltcG9ydCB7IEFkbWluQ2xhc3NBY3Rpb25zIH0gZnJvbSAnLi4vLi4vc3RvcmUvYWRtaW4tY2xhc3MuYWN0aW9ucyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ByeS1hZG1pbi1hdHRyaWJ1dGVzLWZvcm0nLFxuICB0ZW1wbGF0ZVVybDogJy4vYWRtaW4tYXR0cmlidXRlcy1mb3JtLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBBZG1pbkF0dHJpYnV0ZXNGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBhdHRyRm9ybTogVW50eXBlZEZvcm1Hcm91cDtcbiAgc3ViID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuICBuYW1lQWxyZWFkeUV4aXN0cyQ/OiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBhdHRyaWJ1dGVOYW1lcz86IHN0cmluZ1tdO1xuICBmaWVsZHMkOiBPYnNlcnZhYmxlPEZpZWxkW10+O1xuICBzZWxlY3RlZEZpZWxkVHlwZURlc2NyaXB0aW9uJD86IE9ic2VydmFibGU8c3RyaW5nIHwgdW5kZWZpbmVkPjtcbiAgZmllbGRUeXBlRGVzY3JpcHRpb24gPSBGSUVMRF9PUFRJT05TO1xuICBjYXRlZ29yaWVzJDogT2JzZXJ2YWJsZTxDYXRlZ29yeVtdPjtcbiAgbmFtZUFscmVhZHlFeGlzdHMgPSBmYWxzZTtcbiAgaXNTaG93ZWRDYXRlZ29yeSA9IGZhbHNlO1xuICBjYXRUb0FkZCA9IHt9IGFzIENhdGVnb3J5O1xuXG4gIEBJbnB1dCgpIHNlbGVjdGVkQ2xhc3M/OiBDbGFzcztcbiAgQElucHV0KCkgaW50ZXJDbGFzcz86IENsYXNzO1xuICBASW5wdXQoKSBzZWxlY3RlZEF0dHJpYnV0ZT86IEF0dHJpYnV0ZTtcblxuICBwcml2YXRlIG92ZXJsYXlSZWY/OiBPdmVybGF5UmVmO1xuICBAVmlld0NoaWxkKCd0ZW1wbGF0ZScsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSkgdGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBwcml2YXRlIGZpbHRlckNhdGVnb3JpZXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzdG9yZTogU3RvcmU8YW55PixcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgZm9ybUJ1aWxkZXI6IFVudHlwZWRGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIG92ZXJsYXk6IE92ZXJsYXksXG4gICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgIHByaXZhdGUgaTE4blNlcnZpY2U6IFByeUkxOG5TZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goRmllbGRBY3Rpb25zLmxvYWQoKSk7XG4gICAgdGhpcy5maWVsZHMkID0gdGhpcy5zdG9yZS5zZWxlY3QoRmllbGRTZWxlY3RvcnMuZmllbGRzKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKENhdGVnb3J5QWN0aW9ucy5sb2FkKCkpO1xuICAgIHRoaXMuY2F0ZWdvcmllcyQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLnN0b3JlLnNlbGVjdChDYXRlZ29yeVNlbGVjdG9ycy5jYXRlZ29yaWVzKSwgdGhpcy5maWx0ZXJDYXRlZ29yaWVzJF0pLnBpcGUoXG4gICAgICBtYXAoKFtjYXRlZ29yaWVzLCBmaWx0ZXJdKSA9PlxuICAgICAgICBjYXRlZ29yaWVzLmZpbHRlcigoY2F0KSA9PiAhZmlsdGVyIHx8IGNhdC5uYW1lLnRvTG9jYWxlTG93ZXJDYXNlKCkuaW5jbHVkZXMoZmlsdGVyLnRvTG9jYWxlTG93ZXJDYXNlKCkpKVxuICAgICAgKVxuICAgICk7XG5cbiAgICB0aGlzLmF0dHJGb3JtID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICBpZDogW3V1aWQoKV0sXG4gICAgICBuYW1lOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1pbkxlbmd0aCgyKSwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMTAwKSwgbm9XaGl0ZXNwYWNlVmFsaWRhdG9yXV0sXG4gICAgICBkZXNjcmlwdGlvbjogW3sgdmFsdWU6ICcnLCBkaXNhYmxlZDogdHJ1ZSB9XSxcbiAgICAgIGZpZWxkOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICBjYXRlZ29yeTogW0RFRkFVTFRfQ0FURUdPUllfVVVJRF0sXG4gICAgICBtdWx0aVZhbHVlZDogW2ZhbHNlXVxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5hdHRyaWJ1dGVOYW1lcyA9IHRoaXMuaW50ZXJDbGFzcz8uYXR0cmlidXRlcy5tYXAoKGF0dHI6IEF0dHJpYnV0ZSkgPT4gYXR0ci5uYW1lKTtcblxuICAgIGlmICh0aGlzLnNlbGVjdGVkQ2xhc3MpIHtcbiAgICAgIHRoaXMuYXR0cmlidXRlTmFtZXMgPSB0aGlzLnNlbGVjdGVkQ2xhc3MuYXR0cmlidXRlcy5tYXAoKGF0dHI6IEF0dHJpYnV0ZSkgPT4gYXR0ci5uYW1lKTtcblxuICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRBdHRyaWJ1dGUpIHtcbiAgICAgICAgdGhpcy5hdHRyRm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgICAgICBpZDogdGhpcy5zZWxlY3RlZEF0dHJpYnV0ZS5pZCxcbiAgICAgICAgICBuYW1lOiB0aGlzLnNlbGVjdGVkQXR0cmlidXRlLm5hbWUsXG4gICAgICAgICAgZmllbGQ6IHRoaXMuc2VsZWN0ZWRBdHRyaWJ1dGUuZmllbGQsXG4gICAgICAgICAgY2F0ZWdvcnk6IHRoaXMuc2VsZWN0ZWRBdHRyaWJ1dGUuY2F0ZWdvcnlcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuYXR0ckZvcm0uY29udHJvbHNbJ2ZpZWxkJ10uZGlzYWJsZSgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0aGlzLmF0dHJpYnV0ZU5hbWVzKSB7XG4gICAgICB0aGlzLm5hbWVBbHJlYWR5RXhpc3RzJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICB0aGlzLmF0dHJGb3JtLmdldCgnbmFtZScpPy52YWx1ZUNoYW5nZXMgYXMgT2JzZXJ2YWJsZTxzdHJpbmc+LFxuICAgICAgICBvZih0aGlzLmF0dHJpYnV0ZU5hbWVzKVxuICAgICAgXSkucGlwZShcbiAgICAgICAgbWFwKChbdmFsdWUsIGF0dHJpYnV0ZU5hbWVzXSkgPT4gYXR0cmlidXRlTmFtZXMuaW5jbHVkZXModmFsdWUpICYmIHZhbHVlICE9IHRoaXMuc2VsZWN0ZWRBdHRyaWJ1dGU/Lm5hbWUpXG4gICAgICApO1xuICAgICAgdGhpcy5zdWIuYWRkKHRoaXMubmFtZUFscmVhZHlFeGlzdHMkLnN1YnNjcmliZSgodmFsdWUpID0+ICh0aGlzLm5hbWVBbHJlYWR5RXhpc3RzID0gdmFsdWUpKSk7XG4gICAgfVxuXG4gICAgdGhpcy5zZWxlY3RlZEZpZWxkVHlwZURlc2NyaXB0aW9uJCA9IHRoaXMuYXR0ckZvcm0uZ2V0KCdmaWVsZCcpPy52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgIHN0YXJ0V2l0aCh0aGlzLmF0dHJGb3JtLmdldCgnZmllbGQnKT8udmFsdWUpLFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgIHN3aXRjaE1hcCgoc2VsZWN0ZWRGaWVsZElkKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpZWxkcyQucGlwZShcbiAgICAgICAgICBtYXAoKGZpZWxkcykgPT4ge1xuICAgICAgICAgICAgY29uc3QgZmllbGREZXNjcmlwdGlvbiA9IHRoaXMuZmllbGRUeXBlRGVzY3JpcHRpb24uZmluZChcbiAgICAgICAgICAgICAgKGZpZWxkVHlwZSkgPT4gZmllbGRUeXBlLnZhclR5cGUgPT09IGZpZWxkcy5maW5kKChmaWVsZCkgPT4gZmllbGQuaWQgPT09IHNlbGVjdGVkRmllbGRJZCk/LnR5cGVcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICByZXR1cm4gZmllbGREZXNjcmlwdGlvbiA/IHRoaXMuaTE4blNlcnZpY2UuaW5zdGFudChmaWVsZERlc2NyaXB0aW9uLmRlc2NyaXB0aW9uKSA6ICcnO1xuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnN1Yi51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgZ29CYWNrKCkge1xuICAgIGNvbnN0IHJlZGlyZWN0UGF0aCA9IHRoaXMuc2VsZWN0ZWRBdHRyaWJ1dGUgPyAnLi4vLi4nIDogJy4uJztcbiAgICBjb25zdCBwYXRoID0gdGhpcy5yb3V0ZXIuY3JlYXRlVXJsVHJlZShbcmVkaXJlY3RQYXRoXSwgeyByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlIH0pO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQWRtaW5BY3Rpb25zLnJvdXRlVG8oeyBwYXRoOiBwYXRoLnRvU3RyaW5nKCkgfSkpO1xuICB9XG5cbiAgYWRkQXR0cmlidXRlKCkge1xuICAgIHRoaXMuYXR0ckZvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICBuYW1lOiB0aGlzLmF0dHJGb3JtLnZhbHVlLm5hbWUudHJpbSgpXG4gICAgfSk7XG5cbiAgICBpZiAodGhpcy5hdHRyRm9ybS52YWxpZCkge1xuICAgICAgbGV0IGF0dHJUb1NhdmUgPSB0aGlzLmF0dHJGb3JtLmdldFJhd1ZhbHVlKCkgYXMgQXR0cmlidXRlO1xuICAgICAgbGV0IHBhdGggPSB0aGlzLnJvdXRlci5jcmVhdGVVcmxUcmVlKFsnLi4nXSwgeyByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlIH0pO1xuXG4gICAgICBpZiAodGhpcy5zZWxlY3RlZEF0dHJpYnV0ZSkge1xuICAgICAgICBwYXRoID0gdGhpcy5yb3V0ZXIuY3JlYXRlVXJsVHJlZShbJy4uLy4uJ10sIHsgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSB9KTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRDbGFzcykge1xuICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgICAgIEFkbWluQ2xhc3NBY3Rpb25zLnNhdmVBdHRyaWJ1dGVGb3JDbGFzcyh7XG4gICAgICAgICAgICBjbGFzc0lkOiB0aGlzLnNlbGVjdGVkQ2xhc3MuaWQsXG4gICAgICAgICAgICBhdHRyaWJ1dGU6IGF0dHJUb1NhdmUsXG4gICAgICAgICAgICByb3V0ZTogcGF0aC50b1N0cmluZygpXG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5pbnRlckNsYXNzKSB7XG4gICAgICAgIGxldCBpbnRlckF0dHJpYnV0ZSA9IE9iamVjdC5hc3NpZ24oW10sIHRoaXMuaW50ZXJDbGFzcy5hdHRyaWJ1dGVzKTtcbiAgICAgICAgbGV0IGludGVyQ2xhc3NVcGRhdGVkID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5pbnRlckNsYXNzKTtcbiAgICAgICAgaW50ZXJBdHRyaWJ1dGUucHVzaChhdHRyVG9TYXZlKTtcbiAgICAgICAgaW50ZXJDbGFzc1VwZGF0ZWQuYXR0cmlidXRlcyA9IGludGVyQXR0cmlidXRlO1xuICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKEFkbWluQ2xhc3NBY3Rpb25zLnNhdmVJbnRlckNsYXNzKHsgY2xhc3M6IGludGVyQ2xhc3NVcGRhdGVkLCByb3V0ZTogcGF0aC50b1N0cmluZygpIH0pKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBzaG93Q2F0ZWdvcnkoKSB7XG4gICAgdGhpcy5pc1Nob3dlZENhdGVnb3J5ID0gdHJ1ZTtcbiAgICB0aGlzLm92ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKFxuICAgICAgbmV3IE92ZXJsYXlDb25maWcoe1xuICAgICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcbiAgICAgICAgcGFuZWxDbGFzczogWydvLW1vZGFsLXdyYXBwZXInXSxcbiAgICAgICAgYmFja2Ryb3BDbGFzczogJ2JhY2tkcm9wJ1xuICAgICAgfSlcbiAgICApO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQ29uZmlnQWN0aW9ucy5hZGRpbmdPdmVybGF5KHsgaWQ6IHRoaXMuY29uc3RydWN0b3IubmFtZSB9KSk7XG4gICAgdGhpcy5vdmVybGF5UmVmLmJhY2tkcm9wQ2xpY2soKS5zdWJzY3JpYmUoKF8pID0+IHRoaXMuY2xvc2VDYXRlZ29yeSgpKTtcbiAgICB0aGlzLm92ZXJsYXlSZWYuYXR0YWNoKG5ldyBUZW1wbGF0ZVBvcnRhbCh0aGlzLnRlbXBsYXRlLCB0aGlzLnZpZXdDb250YWluZXJSZWYpKTtcbiAgfVxuXG4gIGNsb3NlQ2F0ZWdvcnkoKSB7XG4gICAgdGhpcy5pc1Nob3dlZENhdGVnb3J5ID0gZmFsc2U7XG4gICAgdGhpcy5jYXRUb0FkZCA9IHt9IGFzIENhdGVnb3J5O1xuICAgIHRoaXMub3ZlcmxheVJlZj8uZGlzcG9zZSgpO1xuICAgIHRoaXMuY2F0ZWdvcmllcyQgPSB0aGlzLnN0b3JlLnNlbGVjdChDYXRlZ29yeVNlbGVjdG9ycy5jYXRlZ29yaWVzKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKENvbmZpZ0FjdGlvbnMuY2xvc2VPdmVybGF5KHsgaWQ6IHRoaXMuY29uc3RydWN0b3IubmFtZSB9KSk7XG4gIH1cblxuICBzZWFyY2goZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuZmlsdGVyQ2F0ZWdvcmllcyQubmV4dChldmVudC50YXJnZXQudmFsdWUpO1xuICB9XG5cbiAgYWRkQ2F0ZWdvcnkoKSB7XG4gICAgdGhpcy5jYXRUb0FkZC5pZCA9IHV1aWQoKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKEFkbWluQ2xhc3NBY3Rpb25zLnNhdmVDYXRlZ29yeSh7IGNhdGVnb3J5OiB0aGlzLmNhdFRvQWRkIH0pKTtcbiAgICB0aGlzLnNldENhdGVnb3J5KHRoaXMuY2F0VG9BZGQpO1xuICB9XG5cbiAgc2V0Q2F0ZWdvcnkoY2F0OiBDYXRlZ29yeSkge1xuICAgIHRoaXMuYXR0ckZvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICBjYXRlZ29yeTogY2F0LmlkXG4gICAgfSk7XG4gICAgdGhpcy5jbG9zZUNhdGVnb3J5KCk7XG4gIH1cbn1cbiIsIjxmb3JtIGNsYXNzPVwiby1mb3JtXCIgW2Zvcm1Hcm91cF09XCJhdHRyRm9ybVwiIChuZ1N1Ym1pdCk9XCJhZGRBdHRyaWJ1dGUoKVwiPlxuICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkIC13aWR0aC1zbVwiPlxuICAgIDxsYWJlbCBjbGFzcz1cImEtbGFiZWxcIiBmb3I9XCJhdHRyX25hbWVcIj57eyAnQHByeS5hZG1pbi5jbGFzc2VzLmF0dHJpYnV0ZXMubmFtZScgfCBpMThuIH19PC9sYWJlbD5cbiAgICA8aW5wdXQgaWQ9XCJhdHRyX25hbWVcIiB0eXBlPVwidGV4dFwiIGNsYXNzPVwiYS1mb3JtLWZpZWxkXCIgZm9ybUNvbnRyb2xOYW1lPVwibmFtZVwiIHJlcXVpcmVkIC8+XG4gICAgPGxhYmVsIGNsYXNzPVwiYS1sYWJlbCBhLWxhYmVsLS1oZWxwIC1lcnJvclwiICpuZ0lmPVwibmFtZUFscmVhZHlFeGlzdHMkIHwgYXN5bmNcIj57e1xuICAgICAgJ0BwcnkuYWRtaW4uZXhpc3RzJyB8IGkxOG5cbiAgICB9fTwvbGFiZWw+XG4gICAgPGRpdiAqbmdJZj1cImF0dHJGb3JtLmdldCgnbmFtZScpPy5pbnZhbGlkXCI+XG4gICAgICA8ZGl2ICpuZ0lmPVwiYXR0ckZvcm0uZ2V0KCduYW1lJyk/Lmhhc0Vycm9yKCdyZXF1aXJlZCcpXCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImEtbGFiZWwgYS1sYWJlbC0taGVscCAtZXJyb3JcIiBmb3I9XCJhdHRyX25hbWVcIj57eyAnQHByeS5hZG1pbi5yZXF1aXJlZCcgfCBpMThuIH19PC9sYWJlbD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cImF0dHJGb3JtLmdldCgnbmFtZScpPy5oYXNFcnJvcignbWlubGVuZ3RoJylcIj5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiYS1sYWJlbCBhLWxhYmVsLS1oZWxwIC1lcnJvclwiIGZvcj1cImF0dHJfbmFtZVwiPnt7XG4gICAgICAgICAgJ0BwcnkuYWRtaW4ubWluTGVuZ3RoJyB8IGkxOG4gOiB7IGxlbjogMiB9XG4gICAgICAgIH19PC9sYWJlbD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cImF0dHJGb3JtLmdldCgnbmFtZScpPy5oYXNFcnJvcignbWF4bGVuZ3RoJylcIj5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiYS1sYWJlbCBhLWxhYmVsLS1oZWxwIC1lcnJvclwiIGZvcj1cImF0dHJfbmFtZVwiPnt7XG4gICAgICAgICAgJ0BwcnkuYWRtaW4ubWF4TGVuZ3RoJyB8IGkxOG4gOiB7IGxlbjogMTAwIH1cbiAgICAgICAgfX08L2xhYmVsPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwiYXR0ckZvcm0uZ2V0KCduYW1lJyk/Lmhhc0Vycm9yKCd3aGl0ZXNwYWNlJykgJiYgIWF0dHJGb3JtLmdldCgnbmFtZScpPy5oYXNFcnJvcignbWlubGVuZ3RoJylcIj5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiYS1sYWJlbCBhLWxhYmVsLS1oZWxwIC1lcnJvclwiIGZvcj1cImF0dHJfbmFtZVwiPnt7ICdAcHJ5LmFkbWluLm5vV2hpdGVzcGFjZScgfCBpMThuIH19PC9sYWJlbD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkIC13aWR0aC1zbVwiPlxuICAgIDxsYWJlbCBjbGFzcz1cImEtbGFiZWxcIiBmb3I9XCJ0eXBlXCI+e3sgJ0BwcnkuYWRtaW4uY2xhc3Nlcy5hdHRyaWJ1dGVzLmZpZWxkJyB8IGkxOG4gfX08L2xhYmVsPlxuICAgIDxkaXYgY2xhc3M9XCJ0aXRsZS1jb250YWluZXJcIj5cbiAgICAgIDxwcnktc2VsZWN0XG4gICAgICAgIGlkPVwidHlwZVwiXG4gICAgICAgIGNsYXNzPVwiYS1wcnktc2VsZWN0XCJcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZmllbGRcIlxuICAgICAgICBbaXRlbXNdPVwiZmllbGRzJCB8IGFzeW5jXCJcbiAgICAgICAgW2l0ZW1zQXNPcHRpb25dPVwidHJ1ZVwiXG4gICAgICAgIFthdXRvY29tcGxldGVdPVwidHJ1ZVwiXG4gICAgICAgIGJpbmRMYWJlbD1cIm5hbWVcIlxuICAgICAgICBiaW5kVmFsdWU9XCJpZFwiXG4gICAgICAgIFtpc0Zvcm1dPVwidHJ1ZVwiXG4gICAgICAgIHJlcXVpcmVkPVwidHJ1ZVwiXG4gICAgICAgIFt0ZW1wbGF0ZUxhYmVsXT1cInRlbXBsYXRlT3B0aW9uXCJcbiAgICAgICAgW3RlbXBsYXRlT3B0aW9uXT1cInRlbXBsYXRlT3B0aW9uXCJcbiAgICAgID48L3ByeS1zZWxlY3Q+XG4gICAgICA8bmctdGVtcGxhdGUgI3RlbXBsYXRlT3B0aW9uIGxldC1pdGVtPVwiaXRlbVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWxpZ25lZC1vcHRpb25cIj5cbiAgICAgICAgICA8cD57eyBpdGVtLm5hbWUgfX08L3A+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImEtY2hpcHNcIiAqbmdJZj1cIml0ZW0uY3JzXCI+e3sgaXRlbS5jcnMgfX08L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlbGVjdGVkRmllbGRUeXBlRGVzY3JpcHRpb24kIHwgYXN5bmMgYXMgZGVzY3JpcHRpb25cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImluZm8taWNvbiBkZXNjcmlwdGlvbi1jb250YWluZXIgZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImluZm8tdGV4dFwiPmk8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGVzY3JpcHRpb24tdG9vbHRpcCB0aXRsZS10b29sdGlwXCI+XG4gICAgICAgICAgPHAgY2xhc3M9XCJhLXAgLWRhdGVcIj57eyBkZXNjcmlwdGlvbiB9fTwvcD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwiYXR0ckZvcm0uZ2V0KCdmaWVsZCcpPy5pbnZhbGlkXCI+XG4gICAgICA8ZGl2ICpuZ0lmPVwiYXR0ckZvcm0uZ2V0KCdmaWVsZCcpPy5oYXNFcnJvcigncmVxdWlyZWQnKVwiPlxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJhLWxhYmVsIGEtbGFiZWwtLWhlbHAgLWVycm9yXCI+e3sgJ0BwcnkuYWRtaW4ucmVxdWlyZWQnIHwgaTE4biB9fTwvbGFiZWw+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZCAtd2lkdGgtc21cIj5cbiAgICA8bGFiZWwgY2xhc3M9XCJhLWxhYmVsXCIgZm9yPVwiY2F0ZWdvcnlcIj57eyAnQHByeS5hZG1pbi5jbGFzc2VzLmF0dHJpYnV0ZXMuY2F0ZWdvcnknIHwgaTE4biB9fTwvbGFiZWw+XG4gICAgPHByeS1zZWxlY3RcbiAgICAgIGlkPVwiY2F0ZWdvcnlcIlxuICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiY2F0ZWdvcnlcIlxuICAgICAgW2xhYmVsVHJhbnNsYXRlXT1cInRydWVcIlxuICAgICAgW2l0ZW1zXT1cImNhdGVnb3JpZXMkIHwgYXN5bmNcIlxuICAgICAgKGNsaWNrKT1cInNob3dDYXRlZ29yeSgpXCJcbiAgICAgIGJpbmRWYWx1ZT1cImlkXCJcbiAgICAgIGJpbmRMYWJlbD1cIm5hbWVcIlxuICAgICAgW2lzRm9ybV09XCJ0cnVlXCJcbiAgICAgIFtyZWFkb25seV09XCJ0cnVlXCJcbiAgICA+PC9wcnktc2VsZWN0PlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwibS1idG4tZ3JvdXAgLXdpZHRoLXNtXCI+XG4gICAgPGJ1dHRvblxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBjbGFzcz1cImEtYnRuIGEtYnRuLS1zZWNvbmRhcnlcIlxuICAgICAgKGNsaWNrKT1cImdvQmFjaygpXCJcbiAgICAgIFtpbm5lckhUTUxdPVwiJ0BwcnkuYWRtaW4uY2FuY2VsJyB8IGkxOG5cIlxuICAgID48L2J1dHRvbj5cbiAgICA8YnV0dG9uXG4gICAgICAqcHJ5QWNjZXNzPVwieyBtb2R1bGU6ICdhZG1pbicsIHBhZ2U6ICdjbGFzc2VzJywgYWN0aW9uOiAnYWRkX2F0dHJpYnV0ZScgfVwiXG4gICAgICBjbGFzcz1cImEtYnRuIGEtYnRuLS1wcmltYXJ5XCJcbiAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgW2Rpc2FibGVkXT1cImF0dHJGb3JtLmludmFsaWQgfHwgbmFtZUFscmVhZHlFeGlzdHNcIlxuICAgICAgW2lubmVySFRNTF09XCIoc2VsZWN0ZWRBdHRyaWJ1dGUgPyAnQHByeS5hZG1pbi5lZGl0JyA6ICdAcHJ5LmFkbWluLmNyZWF0ZScpIHwgaTE4blwiXG4gICAgPjwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZm9ybT5cblxuPG5nLXRlbXBsYXRlICN0ZW1wbGF0ZT5cbiAgPGRpdiBjbGFzcz1cIm8tbW9kYWwgby1tb2RhbC0tc2VsZWN0b3JcIj5cbiAgICA8ZGl2IGNsYXNzPVwiby1tb2RhbF9fdG9wXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiby1tb2RhbF9fdG9wX190aXRsZVwiPlxuICAgICAgICA8aDIgY2xhc3M9XCJhLWgyXCIgaWQ9XCJkaWFsb2dfdGl0bGVcIj5cbiAgICAgICAgICB7eyAnQHByeS5hZG1pbi5jbGFzc2VzLmNhdGVnb3J5LnNlbGVjdCcgfCBpMThuIH19XG4gICAgICAgIDwvaDI+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJvLW1vZGFsX190b3BfX2Nsb3NlXCI+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJhLWJ0biBhLWJ0bi0taWNvbi1vbmx5XCIgKGNsaWNrKT1cImNsb3NlQ2F0ZWdvcnkoKVwiPlxuICAgICAgICAgIDxwcnktaWNvbiBpY29uU3ZnPVwiY2xvc2VcIiBbaGVpZ2h0XT1cIjM1XCIgW3dpZHRoXT1cIjM1XCI+PC9wcnktaWNvbj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInUtdmlzdWFsbHktaGlkZGVuXCI+e3sgJ0BwcnkudG9vbGJveC5jbG9zZScgfCBpMThuIH19PC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxmb3JtIChuZ1N1Ym1pdCk9XCJhZGRDYXRlZ29yeSgpXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkIHNlbGVjdG9yXCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImEtbGFiZWxcIiBmb3I9XCJuYW1lLXNlYXJjaFwiPnt7ICdAcHJ5LmFkbWluLmNsYXNzZXMuY2F0ZWdvcnkuc2VhcmNoT3JDcmVhdGUnIHwgaTE4biB9fTwvbGFiZWw+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICBjbGFzcz1cImEtZm9ybS1maWVsZFwiXG4gICAgICAgICAgKGlucHV0KT1cInNlYXJjaCgkZXZlbnQpXCJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cImNhdFRvQWRkLm5hbWVcIlxuICAgICAgICAgIG5hbWU9XCJuYW1lXCJcbiAgICAgICAgICBpZD1cIm5hbWUtc2VhcmNoXCJcbiAgICAgICAgLz5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8dGFibGUgY2xhc3M9XCJhLXRhYmxlXCI+XG4gICAgICAgIDxjYXB0aW9uPlxuICAgICAgICAgIHt7XG4gICAgICAgICAgICAnQHByeS5hZG1pbi5jbGFzc2VzLmNhdGVnb3J5Lm5hbWUnIHwgaTE4blxuICAgICAgICAgIH19XG4gICAgICAgIDwvY2FwdGlvbj5cbiAgICAgICAgPHRoZWFkPlxuICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgIDx0aCBzY29sZT1cImNvbFwiPnt7ICdAcHJ5LmFkbWluLmNsYXNzZXMuY2F0ZWdvcnkubmFtZScgfCBpMThuIH19PC90aD5cbiAgICAgICAgICA8L3RyPlxuICAgICAgICA8L3RoZWFkPlxuICAgICAgICA8dGJvZHk+XG4gICAgICAgICAgPHRyICpuZ0Zvcj1cImxldCBjYXQgb2YgY2F0ZWdvcmllcyQgfCBhc3luY1wiPlxuICAgICAgICAgICAgPHRkPlxuICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImEtYnRuIGEtYnRuLS1naG9zdCBzZWxlY3QtaXRcIiAoY2xpY2spPVwic2V0Q2F0ZWdvcnkoY2F0KVwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidS12aXN1YWxseS1oaWRkZW5cIj57eyAnQHByeS5hZG1pbi5jbGFzc2VzLmNhdGVnb3J5LnNlbGVjdEl0JyB8IGkxOG4gfX08L3NwYW4+XG4gICAgICAgICAgICAgICAge3sgY2F0Lm5hbWUgfX1cbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L3RkPlxuICAgICAgICAgIDwvdHI+XG4gICAgICAgIDwvdGJvZHk+XG4gICAgICA8L3RhYmxlPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihjYXRlZ29yaWVzJCB8IGFzeW5jKT8ubGVuZ3RoID09PSAwXCI+XG4gICAgICAgIDxwIGNsYXNzPVwiYS1wIGEtcC0tY3JlYXRlXCI+XG4gICAgICAgICAgPHN0cm9uZz57eyBjYXRUb0FkZC5uYW1lIH19IDwvc3Ryb25nPlxuICAgICAgICAgIDxzcGFuIFtpbm5lckhUTUxdPVwiJ0BwcnkuYWRtaW4uY2xhc3Nlcy5jYXRlZ29yeS5hZGQnIHwgaTE4blwiPjwvc3Bhbj5cbiAgICAgICAgPC9wPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgICAgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tcHJpbWFyeVwiXG4gICAgICAgICAgW2lubmVySFRNTF09XCInQHByeS5hZG1pbi5jbGFzc2VzLmNhdGVnb3J5LmNyZWF0ZScgfCBpMThuXCJcbiAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9mb3JtPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -24,11 +24,16 @@ export class PryAboutComponent {
24
24
  }
25
25
  return this.i18nService.instant('@pry.about.noVersion');
26
26
  }
27
+ hasVersion(value) {
28
+ const backVersion = value;
29
+ const frontVersion = value;
30
+ return !!value && (!!backVersion.chartVersion || !!frontVersion.libVersion);
31
+ }
27
32
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PryAboutComponent, deps: [{ token: i1.Store }, { token: i2.PryI18nService }], target: i0.ɵɵFactoryTarget.Component }); }
28
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: PryAboutComponent, selector: "pry-about", ngImport: i0, template: "<div class=\"info-icon description-container description\">\n <span class=\"info-text\">i</span>\n</div>\n<div class=\"description-tooltip title-tooltip\">\n <ul *ngFor=\"let version of (version$ | async) ?? {} | keyvalue\">\n <li>{{ '@pry.about.' + version.key | i18n }} {{ displayVersion(version.value) }}</li>\n </ul>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.KeyValuePipe, name: "keyvalue" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
33
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: PryAboutComponent, selector: "pry-about", ngImport: i0, template: "<div class=\"o-about\">\n <div class=\"info-icon description-container description\">\n <span class=\"info-text\">i</span>\n </div>\n <div class=\"description-tooltip title-tooltip\">\n <ng-container *ngFor=\"let version of (version$ | async) ?? {} | keyvalue\">\n <div class=\"o-about__line\">\n {{ '@pry.about.' + version.key | i18n }}\n <p class=\"a-chips -md\" [class.-not-found]=\"!hasVersion(version.value)\">\n {{ displayVersion(version.value) }}\n </p>\n </div>\n </ng-container>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.KeyValuePipe, name: "keyvalue" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
29
34
  }
30
35
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: PryAboutComponent, decorators: [{
31
36
  type: Component,
32
- args: [{ selector: 'pry-about', template: "<div class=\"info-icon description-container description\">\n <span class=\"info-text\">i</span>\n</div>\n<div class=\"description-tooltip title-tooltip\">\n <ul *ngFor=\"let version of (version$ | async) ?? {} | keyvalue\">\n <li>{{ '@pry.about.' + version.key | i18n }} {{ displayVersion(version.value) }}</li>\n </ul>\n</div>\n" }]
37
+ args: [{ selector: 'pry-about', template: "<div class=\"o-about\">\n <div class=\"info-icon description-container description\">\n <span class=\"info-text\">i</span>\n </div>\n <div class=\"description-tooltip title-tooltip\">\n <ng-container *ngFor=\"let version of (version$ | async) ?? {} | keyvalue\">\n <div class=\"o-about__line\">\n {{ '@pry.about.' + version.key | i18n }}\n <p class=\"a-chips -md\" [class.-not-found]=\"!hasVersion(version.value)\">\n {{ displayVersion(version.value) }}\n </p>\n </div>\n </ng-container>\n </div>\n</div>\n" }]
33
38
  }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.PryI18nService }]; } });
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvbGliL2NvcmUvY29tcG9uZW50cy9hYm91dC9hYm91dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9saWIvY29yZS9jb21wb25lbnRzL2Fib3V0L2Fib3V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJMUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7Ozs7O0FBT3RFLE1BQU0sT0FBTyxpQkFBaUI7SUFHNUIsWUFBb0IsS0FBWSxFQUFVLFdBQTJCO1FBQWpELFVBQUssR0FBTCxLQUFLLENBQU87UUFBVSxnQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7UUFDbkUsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUVELGNBQWMsQ0FBQyxLQUF1QztRQUNwRCxNQUFNLFdBQVcsR0FBRyxLQUF1QixDQUFDO1FBQzVDLElBQUksQ0FBQyxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUU7WUFDOUIsT0FBTyxHQUFHLFdBQVcsQ0FBQyxZQUFZLElBQUksV0FBVyxDQUFDLGtCQUFrQixHQUFHLENBQUM7U0FDekU7UUFDRCxNQUFNLFlBQVksR0FBRyxLQUF3QixDQUFDO1FBQzlDLElBQUksQ0FBQyxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUU7WUFDN0IsT0FBTyxZQUFZLENBQUMsVUFBVSxDQUFDO1NBQ2hDO1FBQ0QsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0lBQzFELENBQUM7OEdBbEJVLGlCQUFpQjtrR0FBakIsaUJBQWlCLGlEQ1o5QixrVkFRQTs7MkZESWEsaUJBQWlCO2tCQUo3QixTQUFTOytCQUNFLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUHJ5STE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi9pMThuL2kxOG4uc2VydmljZSc7XG5pbXBvcnQgeyBDb25maWdBY3Rpb25zIH0gZnJvbSAnLi4vLi4vc3RvcmUvY29uZmlnL2NvbmZpZy5hY3Rpb25zJztcbmltcG9ydCB7IENvbmZpZ1NlbGVjdG9ycyB9IGZyb20gJy4uLy4uL3N0b3JlL2NvbmZpZy9jb25maWcuc2VsZWN0b3JzJztcbmltcG9ydCB7IEJhY2tlbmRWZXJzaW9uLCBGcm9udGVuZFZlcnNpb24sIFZlcnNpb25zIH0gZnJvbSAnLi4vLi4vc3RvcmUvY29uZmlnL3ZlcnNpb25zLmludGVyZmFjZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ByeS1hYm91dCcsXG4gIHRlbXBsYXRlVXJsOiAnYWJvdXQuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFByeUFib3V0Q29tcG9uZW50IHtcbiAgdmVyc2lvbiQ6IE9ic2VydmFibGU8VmVyc2lvbnMgfCBudWxsPjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHN0b3JlOiBTdG9yZSwgcHJpdmF0ZSBpMThuU2VydmljZTogUHJ5STE4blNlcnZpY2UpIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKENvbmZpZ0FjdGlvbnMubG9hZFZlcnNpb25zKCkpO1xuICAgIHRoaXMudmVyc2lvbiQgPSB0aGlzLnN0b3JlLnNlbGVjdChDb25maWdTZWxlY3RvcnMuc2VsZWN0VmVyc2lvbnMpO1xuICB9XG5cbiAgZGlzcGxheVZlcnNpb24odmFsdWU6IEJhY2tlbmRWZXJzaW9uIHwgRnJvbnRlbmRWZXJzaW9uKSB7XG4gICAgY29uc3QgYmFja1ZlcnNpb24gPSB2YWx1ZSBhcyBCYWNrZW5kVmVyc2lvbjtcbiAgICBpZiAoISFiYWNrVmVyc2lvbi5jaGFydFZlcnNpb24pIHtcbiAgICAgIHJldHVybiBgJHtiYWNrVmVyc2lvbi5jaGFydFZlcnNpb259WyR7YmFja1ZlcnNpb24uYXBwbGljYXRpb25WZXJzaW9ufV1gO1xuICAgIH1cbiAgICBjb25zdCBmcm9udFZlcnNpb24gPSB2YWx1ZSBhcyBGcm9udGVuZFZlcnNpb247XG4gICAgaWYgKCEhZnJvbnRWZXJzaW9uLmxpYlZlcnNpb24pIHtcbiAgICAgIHJldHVybiBmcm9udFZlcnNpb24ubGliVmVyc2lvbjtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuaTE4blNlcnZpY2UuaW5zdGFudCgnQHByeS5hYm91dC5ub1ZlcnNpb24nKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImluZm8taWNvbiBkZXNjcmlwdGlvbi1jb250YWluZXIgZGVzY3JpcHRpb25cIj5cbiAgPHNwYW4gY2xhc3M9XCJpbmZvLXRleHRcIj5pPC9zcGFuPlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwiZGVzY3JpcHRpb24tdG9vbHRpcCB0aXRsZS10b29sdGlwXCI+XG4gIDx1bCAqbmdGb3I9XCJsZXQgdmVyc2lvbiBvZiAodmVyc2lvbiQgfCBhc3luYykgPz8ge30gfCBrZXl2YWx1ZVwiPlxuICAgIDxsaT57eyAnQHByeS5hYm91dC4nICsgdmVyc2lvbi5rZXkgfCBpMThuIH19IHt7IGRpc3BsYXlWZXJzaW9uKHZlcnNpb24udmFsdWUpIH19PC9saT5cbiAgPC91bD5cbjwvZGl2PlxuIl19
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvbGliL2NvcmUvY29tcG9uZW50cy9hYm91dC9hYm91dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9saWIvY29yZS9jb21wb25lbnRzL2Fib3V0L2Fib3V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJMUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7Ozs7O0FBT3RFLE1BQU0sT0FBTyxpQkFBaUI7SUFHNUIsWUFBb0IsS0FBWSxFQUFVLFdBQTJCO1FBQWpELFVBQUssR0FBTCxLQUFLLENBQU87UUFBVSxnQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7UUFDbkUsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUVELGNBQWMsQ0FBQyxLQUF1QztRQUNwRCxNQUFNLFdBQVcsR0FBRyxLQUF1QixDQUFDO1FBQzVDLElBQUksQ0FBQyxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUU7WUFDOUIsT0FBTyxHQUFHLFdBQVcsQ0FBQyxZQUFZLElBQUksV0FBVyxDQUFDLGtCQUFrQixHQUFHLENBQUM7U0FDekU7UUFDRCxNQUFNLFlBQVksR0FBRyxLQUF3QixDQUFDO1FBQzlDLElBQUksQ0FBQyxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUU7WUFDN0IsT0FBTyxZQUFZLENBQUMsVUFBVSxDQUFDO1NBQ2hDO1FBQ0QsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRCxVQUFVLENBQUMsS0FBdUM7UUFDaEQsTUFBTSxXQUFXLEdBQUcsS0FBdUIsQ0FBQztRQUM1QyxNQUFNLFlBQVksR0FBRyxLQUF3QixDQUFDO1FBQzlDLE9BQU8sQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsWUFBWSxJQUFJLENBQUMsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDOUUsQ0FBQzs4R0F4QlUsaUJBQWlCO2tHQUFqQixpQkFBaUIsaURDWjlCLGlqQkFlQTs7MkZESGEsaUJBQWlCO2tCQUo3QixTQUFTOytCQUNFLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUHJ5STE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi9pMThuL2kxOG4uc2VydmljZSc7XG5pbXBvcnQgeyBDb25maWdBY3Rpb25zIH0gZnJvbSAnLi4vLi4vc3RvcmUvY29uZmlnL2NvbmZpZy5hY3Rpb25zJztcbmltcG9ydCB7IENvbmZpZ1NlbGVjdG9ycyB9IGZyb20gJy4uLy4uL3N0b3JlL2NvbmZpZy9jb25maWcuc2VsZWN0b3JzJztcbmltcG9ydCB7IEJhY2tlbmRWZXJzaW9uLCBGcm9udGVuZFZlcnNpb24sIFZlcnNpb25zIH0gZnJvbSAnLi4vLi4vc3RvcmUvY29uZmlnL3ZlcnNpb25zLmludGVyZmFjZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ByeS1hYm91dCcsXG4gIHRlbXBsYXRlVXJsOiAnYWJvdXQuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFByeUFib3V0Q29tcG9uZW50IHtcbiAgdmVyc2lvbiQ6IE9ic2VydmFibGU8VmVyc2lvbnMgfCBudWxsPjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHN0b3JlOiBTdG9yZSwgcHJpdmF0ZSBpMThuU2VydmljZTogUHJ5STE4blNlcnZpY2UpIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKENvbmZpZ0FjdGlvbnMubG9hZFZlcnNpb25zKCkpO1xuICAgIHRoaXMudmVyc2lvbiQgPSB0aGlzLnN0b3JlLnNlbGVjdChDb25maWdTZWxlY3RvcnMuc2VsZWN0VmVyc2lvbnMpO1xuICB9XG5cbiAgZGlzcGxheVZlcnNpb24odmFsdWU6IEJhY2tlbmRWZXJzaW9uIHwgRnJvbnRlbmRWZXJzaW9uKSB7XG4gICAgY29uc3QgYmFja1ZlcnNpb24gPSB2YWx1ZSBhcyBCYWNrZW5kVmVyc2lvbjtcbiAgICBpZiAoISFiYWNrVmVyc2lvbi5jaGFydFZlcnNpb24pIHtcbiAgICAgIHJldHVybiBgJHtiYWNrVmVyc2lvbi5jaGFydFZlcnNpb259WyR7YmFja1ZlcnNpb24uYXBwbGljYXRpb25WZXJzaW9ufV1gO1xuICAgIH1cbiAgICBjb25zdCBmcm9udFZlcnNpb24gPSB2YWx1ZSBhcyBGcm9udGVuZFZlcnNpb247XG4gICAgaWYgKCEhZnJvbnRWZXJzaW9uLmxpYlZlcnNpb24pIHtcbiAgICAgIHJldHVybiBmcm9udFZlcnNpb24ubGliVmVyc2lvbjtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuaTE4blNlcnZpY2UuaW5zdGFudCgnQHByeS5hYm91dC5ub1ZlcnNpb24nKTtcbiAgfVxuXG4gIGhhc1ZlcnNpb24odmFsdWU6IEJhY2tlbmRWZXJzaW9uIHwgRnJvbnRlbmRWZXJzaW9uKSB7XG4gICAgY29uc3QgYmFja1ZlcnNpb24gPSB2YWx1ZSBhcyBCYWNrZW5kVmVyc2lvbjtcbiAgICBjb25zdCBmcm9udFZlcnNpb24gPSB2YWx1ZSBhcyBGcm9udGVuZFZlcnNpb247XG4gICAgcmV0dXJuICEhdmFsdWUgJiYgKCEhYmFja1ZlcnNpb24uY2hhcnRWZXJzaW9uIHx8ICEhZnJvbnRWZXJzaW9uLmxpYlZlcnNpb24pO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiby1hYm91dFwiPlxuICA8ZGl2IGNsYXNzPVwiaW5mby1pY29uIGRlc2NyaXB0aW9uLWNvbnRhaW5lciBkZXNjcmlwdGlvblwiPlxuICAgIDxzcGFuIGNsYXNzPVwiaW5mby10ZXh0XCI+aTwvc3Bhbj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJkZXNjcmlwdGlvbi10b29sdGlwIHRpdGxlLXRvb2x0aXBcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCB2ZXJzaW9uIG9mICh2ZXJzaW9uJCB8IGFzeW5jKSA/PyB7fSB8IGtleXZhbHVlXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiby1hYm91dF9fbGluZVwiPlxuICAgICAgICB7eyAnQHByeS5hYm91dC4nICsgdmVyc2lvbi5rZXkgfCBpMThuIH19XG4gICAgICAgIDxwIGNsYXNzPVwiYS1jaGlwcyAtbWRcIiBbY2xhc3MuLW5vdC1mb3VuZF09XCIhaGFzVmVyc2lvbih2ZXJzaW9uLnZhbHVlKVwiPlxuICAgICAgICAgIHt7IGRpc3BsYXlWZXJzaW9uKHZlcnNpb24udmFsdWUpIH19XG4gICAgICAgIDwvcD5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -1,13 +1,13 @@
1
1
  export const frTranslations = {
2
2
  '@pry': {
3
3
  about: {
4
- front: 'Librairie front version : ',
5
- ref: 'Référentiel version : ',
6
- data: 'Données version : ',
7
- replay: 'Rejeu version : ',
8
- exec: 'Exécution version : ',
9
- transfo: 'Transformation version : ',
10
- monitor: 'Supervision version : ',
4
+ front: 'Librairie front',
5
+ ref: 'Référentiel',
6
+ data: 'Données',
7
+ replay: 'Rejeu',
8
+ exec: 'Exécution',
9
+ transfo: 'Transformation',
10
+ monitor: 'Supervision',
11
11
  noVersion: 'Version non trouvée'
12
12
  },
13
13
  header: {
@@ -341,4 +341,4 @@ export const frTranslations = {
341
341
  }
342
342
  }
343
343
  };
344
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnIudHJhbnNsYXRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvbGliL2NvcmUvaTE4bi9mci50cmFuc2xhdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHO0lBQzVCLE1BQU0sRUFBRTtRQUNOLEtBQUssRUFBRTtZQUNMLEtBQUssRUFBRSw0QkFBNEI7WUFDbkMsR0FBRyxFQUFFLHdCQUF3QjtZQUM3QixJQUFJLEVBQUUsb0JBQW9CO1lBQzFCLE1BQU0sRUFBRSxrQkFBa0I7WUFDMUIsSUFBSSxFQUFFLHNCQUFzQjtZQUM1QixPQUFPLEVBQUUsMkJBQTJCO1lBQ3BDLE9BQU8sRUFBRSx3QkFBd0I7WUFDakMsU0FBUyxFQUFFLHFCQUFxQjtTQUNqQztRQUNELE1BQU0sRUFBRTtZQUNOLHFCQUFxQixFQUFFLDhCQUE4QjtTQUN0RDtRQUNELE1BQU0sRUFBRTtZQUNOLE1BQU0sRUFBRSx1Q0FBdUM7WUFDL0MsWUFBWSxFQUFFLDhDQUE4QztZQUM1RCxXQUFXLEVBQUUsc0RBQXNEO1lBQ25FLGFBQWEsRUFBRSwwREFBMEQ7WUFDekUsUUFBUSxFQUFFO2dCQUNSLEtBQUssRUFBRSxhQUFhO2dCQUNwQixXQUFXLEVBQUUsaUJBQWlCO2dCQUM5QixnQkFBZ0IsRUFBRSx5QkFBeUI7YUFDNUM7WUFDRCxhQUFhLEVBQUUsc0NBQXNDO1lBQ3JELFlBQVksRUFBRSw4QkFBOEI7WUFDNUMsT0FBTyxFQUFFO2dCQUNQLGFBQWEsRUFBRSx1QkFBdUI7Z0JBQ3RDLE1BQU0sRUFBRSx3Q0FBd0M7Z0JBQ2hELFVBQVUsRUFBRSxxQkFBcUI7Z0JBQ2pDLFlBQVksRUFBRSw2QkFBNkI7Z0JBQzNDLGFBQWEsRUFBRSxzQkFBc0I7Z0JBQ3JDLFVBQVUsRUFBRSx1QkFBdUI7Z0JBQ25DLFFBQVEsRUFBRSx5QkFBeUI7YUFDcEM7WUFDRCxNQUFNLEVBQUU7Z0JBQ04sR0FBRyxFQUFFLCtCQUErQjtnQkFDcEMsUUFBUSxFQUFFLHVDQUF1QztnQkFDakQsTUFBTSxFQUFFLFdBQVc7Z0JBQ25CLFFBQVEsRUFBRSxXQUFXO2dCQUNyQixTQUFTLEVBQUUsOEJBQThCO2dCQUN6QyxXQUFXLEVBQUUsbUJBQW1CO2dCQUNoQyxPQUFPLEVBQUUsWUFBWTthQUN0QjtZQUNELFVBQVUsRUFBRTtnQkFDVixTQUFTLEVBQUUsb0JBQW9CO2dCQUMvQixlQUFlLEVBQUUsV0FBVztnQkFDNUIsa0JBQWtCLEVBQUUscUNBQXFDO2FBQzFEO1lBQ0QsVUFBVSxFQUFFLHlCQUF5QjtZQUNyQyxNQUFNLEVBQUUsSUFBSTtZQUNaLEtBQUssRUFBRSxRQUFRO1NBQ2hCO1FBQ0QsSUFBSSxFQUFFO1lBQ0osSUFBSSxFQUFFLGlCQUFpQjtTQUN4QjtRQUNELE9BQU8sRUFBRTtZQUNQLFdBQVcsRUFBRSx1QkFBdUI7WUFDcEMsUUFBUSxFQUFFO2dCQUNSLElBQUksRUFBRSx3QkFBd0I7Z0JBQzlCLFdBQVcsRUFBRSxnQ0FBZ0M7Z0JBQzdDLEtBQUssRUFBRSxxQ0FBcUM7Z0JBQzVDLGFBQWEsRUFBRTtvQkFDYixTQUFTLEVBQUUsd0RBQXdEO29CQUNuRSxpQkFBaUIsRUFBRSwwRkFBMEY7b0JBQzdHLGFBQWEsRUFBRSx1RUFBdUU7aUJBQ3ZGO2dCQUNELFNBQVMsRUFBRSw0Q0FBNEM7Z0JBQ3ZELFdBQVcsRUFBRSwwREFBMEQ7Z0JBQ3ZFLFNBQVMsRUFBRSxTQUFTO2dCQUNwQixLQUFLLEVBQUUsYUFBYTtnQkFDcEIsS0FBSyxFQUFFLFNBQVM7Z0JBQ2hCLFFBQVEsRUFBRSxTQUFTO2FBQ3BCO1lBQ0QsT0FBTyxFQUFFO2dCQUNQLEtBQUssRUFBRSxlQUFlO2dCQUN0QixLQUFLLEVBQUUsS0FBSztnQkFDWixXQUFXLEVBQUUsYUFBYTtnQkFDMUIsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsTUFBTSxFQUFFO29CQUNOLE1BQU0sRUFBRSxxQkFBcUI7b0JBQzdCLElBQUksRUFBRSxrQkFBa0I7b0JBQ3hCLElBQUksRUFBRSxpQkFBaUI7aUJBQ3hCO2dCQUNELGFBQWEsRUFBRTtvQkFDYixpQkFBaUIsRUFBRSx5RkFBeUY7aUJBQzdHO2dCQUNELEtBQUssRUFBRSxxQ0FBcUM7YUFDN0M7WUFDRCxJQUFJLEVBQUUseUJBQXlCO1lBQy9CLE9BQU8sRUFBRSwyQkFBMkI7WUFDcEMsTUFBTSxFQUFFLGVBQWU7WUFDdkIsZ0JBQWdCLEVBQUUsMkJBQTJCO1lBQzdDLFVBQVUsRUFBRSxtQkFBbUI7WUFDL0IsS0FBSyxFQUFFLG1CQUFtQjtZQUMxQixPQUFPLEVBQUUsWUFBWTtZQUNyQixlQUFlLEVBQUUsNkJBQTZCO1lBQzlDLE9BQU8sRUFBRSxTQUFTO1lBQ2xCLEtBQUssRUFBRSxRQUFRO1lBQ2YsT0FBTyxFQUFFLGVBQWU7WUFDeEIsU0FBUyxFQUFFLFFBQVE7WUFDbkIsU0FBUyxFQUFFLFdBQVc7WUFDdEIsU0FBUyxFQUFFLE9BQU87WUFDbEIsR0FBRyxFQUFFLE9BQU87WUFDWixLQUFLLEVBQUUsU0FBUztZQUNoQixNQUFNLEVBQUUsUUFBUTtZQUNoQixLQUFLLEVBQUUsV0FBVztZQUNsQixTQUFTLEVBQUUsb0JBQW9CO1lBQy9CLFFBQVEsRUFBRSxrQkFBa0I7WUFDNUIsTUFBTSxFQUFFLGtCQUFrQjtZQUMxQixPQUFPLEVBQUUscUJBQXFCO1lBQzlCLElBQUksRUFBRSxhQUFhO1lBQ25CLElBQUksRUFBRSxnQkFBZ0I7WUFDdEIsY0FBYyxFQUFFLFlBQVk7WUFDNUIsUUFBUSxFQUFFLFFBQVE7WUFDbEIsU0FBUyxFQUFFLGFBQWE7WUFDeEIsU0FBUyxFQUFFLFFBQVE7WUFDbkIsVUFBVSxFQUFFLFFBQVE7WUFDcEIsU0FBUyxFQUFFLE1BQU07WUFDakIsUUFBUSxFQUFFLFlBQVk7WUFDdEIsVUFBVSxFQUFFLE9BQU87WUFDbkIsV0FBVyxFQUFFLG9CQUFvQjtZQUNqQyxNQUFNLEVBQUUscUJBQXFCO1lBQzdCLElBQUksRUFBRSxrQkFBa0I7WUFDeEIsS0FBSyxFQUFFLFdBQVc7WUFDbEIsV0FBVyxFQUFFLEVBQUU7WUFDZixHQUFHLEVBQUU7Z0JBQ0gsR0FBRyxFQUFFLGNBQWM7Z0JBQ25CLEtBQUssRUFBRSxXQUFXO2dCQUNsQixLQUFLLEVBQUUsT0FBTzthQUNmO1lBQ0QsSUFBSSxFQUFFLFFBQVE7WUFDZCxHQUFHLEVBQUUsYUFBYTtZQUNsQixTQUFTLEVBQUUsK0JBQStCO1lBQzFDLE1BQU0sRUFBRTtnQkFDTixHQUFHLEVBQUUsbUJBQW1CO2dCQUN4QixhQUFhLEVBQ1gsNEhBQTRIO2dCQUM5SCxHQUFHLEVBQUUsYUFBYTtnQkFDbEIsYUFBYSxFQUNYLHFHQUFxRztnQkFDdkcsTUFBTSxFQUFFLG9CQUFvQjtnQkFDNUIsZ0JBQWdCLEVBQ2QsK0tBQStLO2dCQUNqTCxNQUFNLEVBQUUsc0JBQXNCO2dCQUM5QixnQkFBZ0IsRUFDZCxpTEFBaUw7Z0JBQ25MLE1BQU0sRUFBRSxvQkFBb0I7Z0JBQzVCLGdCQUFnQixFQUNkLGdMQUFnTDtnQkFDbEwsTUFBTSxFQUFFLHNCQUFzQjtnQkFDOUIsZ0JBQWdCLEVBQ2Qsa0xBQWtMO2dCQUNwTCxLQUFLLEVBQUUsV0FBVztnQkFDbEIsZUFBZSxFQUNiLHVLQUF1SzthQUMxSztTQUNGO1FBQ0QsUUFBUSxFQUFFO1lBQ1IsSUFBSSxFQUFFLEtBQUs7WUFDWCxXQUFXLEVBQUUsYUFBYTtZQUMxQixRQUFRLEVBQUUsa0JBQWtCO1lBQzVCLFlBQVksRUFBRSxzQkFBc0I7WUFDcEMsT0FBTyxFQUFFLFNBQVM7WUFDbEIsTUFBTSxFQUFFLFVBQVU7WUFDbEIsU0FBUyxFQUFFLDJCQUEyQjtZQUN0QyxLQUFLLEVBQUUsZUFBZTtZQUN0QixHQUFHLEVBQUU7Z0JBQ0gsVUFBVSxFQUFFLHlCQUF5QjtnQkFDckMsU0FBUyxFQUFFLG1DQUFtQzthQUMvQztZQUNELE9BQU8sRUFBRSxvQkFBb0I7WUFDN0IsUUFBUSxFQUFFLGFBQWE7WUFDdkIsSUFBSSxFQUFFLFNBQVM7WUFDZixNQUFNLEVBQUUsV0FBVztZQUNuQixXQUFXLEVBQ1Qsc0dBQXNHO1NBQ3pHO1FBQ0QsTUFBTSxFQUFFO1lBQ04sSUFBSSxFQUFFLFlBQVk7WUFDbEIsUUFBUSxFQUFFLHFCQUFxQjtZQUMvQixPQUFPLEVBQUUsR0FBRztZQUNaLFNBQVMsRUFBRSxHQUFHO1NBQ2Y7UUFDRCxPQUFPLEVBQUU7WUFDUCxHQUFHLEVBQUUsd0JBQXdCO1lBQzdCLE1BQU0sRUFBRSx5QkFBeUI7WUFDakMsSUFBSSxFQUFFLHFCQUFxQjtZQUMzQixNQUFNLEVBQUUsdUJBQXVCO1lBQy9CLFNBQVMsRUFBRSw0QkFBNEI7WUFDdkMsT0FBTyxFQUFFLGlDQUFpQztZQUMxQyxNQUFNLEVBQUUsOEJBQThCO1lBQ3RDLFlBQVksRUFBRSxtQkFBbUI7WUFDakMsY0FBYyxFQUFFLG1CQUFtQjtZQUNuQyxrQkFBa0IsRUFBRSxxQkFBcUI7WUFDekMsTUFBTSxFQUFFLFNBQVM7WUFDakIsTUFBTSxFQUFFLE9BQU87WUFDZixZQUFZLEVBQUU7Z0JBQ1osS0FBSyxFQUFFO29CQUNMLE1BQU0sRUFBRSxnQkFBZ0I7b0JBQ3hCLElBQUksRUFBRSxvQkFBb0I7b0JBQzFCLFNBQVMsRUFBRSxzQkFBc0I7b0JBQ2pDLFlBQVksRUFBRSxvQkFBb0I7aUJBQ25DO2dCQUNELEtBQUssRUFBRSxtQkFBbUI7Z0JBQzFCLElBQUksRUFBRSwrQkFBK0I7Z0JBQ3JDLE9BQU8sRUFBRSxvQkFBb0I7Z0JBQzdCLE9BQU8sRUFBRSxnQkFBZ0I7Z0JBQ3pCLGFBQWEsRUFBRSxnQ0FBZ0M7YUFDaEQ7U0FDRjtRQUNELE1BQU0sRUFBRTtZQUNOLEtBQUssRUFBRSxRQUFRO1lBQ2YsVUFBVSxFQUFFLG1CQUFtQjtZQUMvQixNQUFNLEVBQUUsV0FBVztZQUNuQixJQUFJLEVBQUUsUUFBUTtZQUNkLFVBQVUsRUFBRSxrQkFBa0I7WUFDOUIsTUFBTSxFQUFFLGlCQUFpQjtZQUN6QixZQUFZLEVBQUUsa0NBQWtDO1lBQ2hELElBQUksRUFBRSxxQkFBcUI7WUFDM0Isb0JBQW9CLEVBQUUsdURBQXVEO1lBQzdFLFdBQVcsRUFBRSxrQkFBa0I7WUFDL0IsVUFBVSxFQUFFLGtCQUFrQjtZQUM5QixhQUFhLEVBQUUsbUNBQW1DO1lBQ2xELFFBQVEsRUFBRSxrQkFBa0I7WUFDNUIsYUFBYSxFQUFFLHdCQUF3QjtZQUN2QyxRQUFRLEVBQUUsc0JBQXNCO1lBQ2hDLE1BQU0sRUFBRSx1QkFBdUI7WUFDL0IsY0FBYyxFQUFFLG9CQUFvQjtZQUNwQyxjQUFjLEVBQUUsd0JBQXdCO1lBQ3hDLE1BQU0sRUFBRSxZQUFZO1lBQ3BCLE1BQU0sRUFBRSxtQkFBbUI7WUFDM0IsSUFBSSxFQUFFLFNBQVM7WUFDZixJQUFJLEVBQUUsUUFBUTtZQUNkLFlBQVksRUFBRSxrQkFBa0I7WUFDaEMsWUFBWSxFQUFFLHdCQUF3QjtZQUN0QyxXQUFXLEVBQUUsdUJBQXVCO1NBQ3JDO1FBQ0QsS0FBSyxFQUFFO1lBQ0wsT0FBTyxFQUFFLHNFQUFzRTtZQUMvRSxhQUFhLEVBQUUsc0ZBQXNGO1lBQ3JHLFlBQVksRUFBRSx5RkFBeUY7WUFDdkcsV0FBVyxFQUFFLG9HQUFvRztZQUNqSCxZQUFZLEVBQUUsMEZBQTBGO1lBQ3hHLG9CQUFvQixFQUFFLHdDQUF3QztTQUMvRDtRQUNELEtBQUssRUFBRTtZQUNMLFNBQVMsRUFBRTtnQkFDVCxNQUFNLEVBQUUsUUFBUTthQUNqQjtZQUNELGFBQWEsRUFBRSxnQkFBZ0I7WUFDL0IsU0FBUyxFQUFFLGNBQWM7WUFDekIsUUFBUSxFQUFFO2dCQUNSLENBQUMsRUFBRSxPQUFPO2dCQUNWLENBQUMsRUFBRSxPQUFPO2dCQUNWLENBQUMsRUFBRSxVQUFVO2dCQUNiLENBQUMsRUFBRSxPQUFPO2dCQUNWLENBQUMsRUFBRSxVQUFVO2dCQUNiLENBQUMsRUFBRSxRQUFRO2dCQUNYLENBQUMsRUFBRSxVQUFVO2FBQ2Q7WUFDRCxhQUFhLEVBQUU7Z0JBQ2IsQ0FBQyxFQUFFLElBQUk7Z0JBQ1AsQ0FBQyxFQUFFLElBQUk7Z0JBQ1AsQ0FBQyxFQUFFLElBQUk7Z0JBQ1AsQ0FBQyxFQUFFLElBQUk7Z0JBQ1AsQ0FBQyxFQUFFLElBQUk7Z0JBQ1AsQ0FBQyxFQUFFLElBQUk7Z0JBQ1AsQ0FBQyxFQUFFLElBQUk7YUFDUjtZQUNELE1BQU0sRUFBRTtnQkFDTixDQUFDLEVBQUUsU0FBUztnQkFDWixDQUFDLEVBQUUsU0FBUztnQkFDWixDQUFDLEVBQUUsTUFBTTtnQkFDVCxDQUFDLEVBQUUsT0FBTztnQkFDVixDQUFDLEVBQUUsS0FBSztnQkFDUixDQUFDLEVBQUUsTUFBTTtnQkFDVCxDQUFDLEVBQUUsU0FBUztnQkFDWixDQUFDLEVBQUUsTUFBTTtnQkFDVCxDQUFDLEVBQUUsV0FBVztnQkFDZCxDQUFDLEVBQUUsU0FBUztnQkFDWixFQUFFLEVBQUUsVUFBVTtnQkFDZCxFQUFFLEVBQUUsVUFBVTthQUNmO1NBQ0Y7UUFDRCxLQUFLLEVBQUU7WUFDTCxPQUFPLEVBQUUsT0FBTztZQUNoQixNQUFNLEVBQUUsUUFBUTtZQUNoQixVQUFVLEVBQUUsV0FBVztZQUN2QixJQUFJLEVBQUUsWUFBWTtZQUNsQixLQUFLLEVBQUUsd0JBQXdCO1NBQ2hDO1FBQ0QsUUFBUSxFQUFFO1lBQ1IsSUFBSSxFQUFFO2dCQUNKLEtBQUssRUFBRSxtQkFBbUI7Z0JBQzFCLElBQUksRUFBRSxtQkFBbUI7YUFDMUI7U0FDRjtRQUNELFFBQVEsRUFBRTtZQUNSLElBQUksRUFBRSwyQkFBMkI7U0FDbEM7UUFDRCxNQUFNLEVBQUU7WUFDTixPQUFPLEVBQ0wsdUhBQXVIO1lBQ3pILEtBQUssRUFBRTtnQkFDTCxDQUFDLEVBQUUsc0lBQXNJO2dCQUN6SSxHQUFHLEVBQUUsMEJBQTBCO2dCQUMvQixHQUFHLEVBQUUsMkRBQTJEO2dCQUNoRSxHQUFHLEVBQUUsMkRBQTJEO2dCQUNoRSxHQUFHLEVBQUUsb0NBQW9DO2dCQUN6QyxHQUFHLEVBQUUscUNBQXFDO2dCQUMxQyxHQUFHLEVBQUUsMEJBQTBCO2dCQUMvQixHQUFHLEVBQUUsc0VBQXNFO2FBQzVFO1NBQ0Y7UUFDRCxPQUFPLEVBQUU7WUFDUCxLQUFLLEVBQUUsd0JBQXdCO1lBQy9CLFlBQVksRUFBRSwwRUFBMEU7WUFDeEYsU0FBUyxFQUFFLDZDQUE2QztZQUN4RCxLQUFLLEVBQUUsU0FBUztZQUNoQixJQUFJLEVBQUU7Z0JBQ0osVUFBVSxFQUFFLGFBQWE7Z0JBQ3pCLEdBQUcsRUFBRSxpQkFBaUI7Z0JBQ3RCLE1BQU0sRUFBRSxXQUFXO2dCQUNuQixNQUFNLEVBQUUsVUFBVTthQUNuQjtZQUNELFFBQVEsRUFBRTtnQkFDUixNQUFNLEVBQUUsZ0JBQWdCO2dCQUN4QixNQUFNLEVBQUUsb0JBQW9CO2dCQUM1QixJQUFJLEVBQUUsZUFBZTtnQkFDckIsSUFBSSxFQUFFLGdCQUFnQjtnQkFDdEIsTUFBTSxFQUFFLFFBQVE7Z0JBQ2hCLFVBQVUsRUFBRSxXQUFXO2dCQUN2QixLQUFLLEVBQUUsUUFBUTtnQkFDZixNQUFNLEVBQUUsU0FBUztnQkFDakIsUUFBUSxFQUFFLFNBQVM7YUFDcEI7WUFDRCxVQUFVLEVBQUU7Z0JBQ1YsVUFBVSxFQUFFLFlBQVk7Z0JBQ3hCLEtBQUssRUFBRSxRQUFRO2dCQUNmLFFBQVEsRUFBRSxXQUFXO2FBQ3RCO1lBQ0QsS0FBSyxFQUFFO2dCQUNMLElBQUksRUFBRSxPQUFPO2dCQUNiLElBQUksRUFBRSxNQUFNO2dCQUNaLElBQUksRUFBRSxPQUFPO2dCQUNiLE1BQU0sRUFBRSxXQUFXO2FBQ3BCO1NBQ0Y7S0FDRjtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgZnJUcmFuc2xhdGlvbnMgPSB7XG4gICdAcHJ5Jzoge1xuICAgIGFib3V0OiB7XG4gICAgICBmcm9udDogJ0xpYnJhaXJpZSBmcm9udCB2ZXJzaW9uIDogJyxcbiAgICAgIHJlZjogJ1LDqWbDqXJlbnRpZWwgdmVyc2lvbiA6ICcsXG4gICAgICBkYXRhOiAnRG9ubsOpZXMgdmVyc2lvbiA6ICcsXG4gICAgICByZXBsYXk6ICdSZWpldSB2ZXJzaW9uIDogJyxcbiAgICAgIGV4ZWM6ICdFeMOpY3V0aW9uIHZlcnNpb24gOiAnLFxuICAgICAgdHJhbnNmbzogJ1RyYW5zZm9ybWF0aW9uIHZlcnNpb24gOiAnLFxuICAgICAgbW9uaXRvcjogJ1N1cGVydmlzaW9uIHZlcnNpb24gOiAnLFxuICAgICAgbm9WZXJzaW9uOiAnVmVyc2lvbiBub24gdHJvdXbDqWUnXG4gICAgfSxcbiAgICBoZWFkZXI6IHtcbiAgICAgIG5vQ3VycmVudFByZXNlbnRhdGlvbjogJ1Byw6lzZW50YXRpb24gbm9uIHNhdXZlZ2FyZMOpZSdcbiAgICB9LFxuICAgIHdpZGdldDoge1xuICAgICAgbm9EYXRhOiAnQXVjdW5lIHNvdXJjZSBkZSBkb25uw6llcyBzw6lsZWN0aW9ubsOpZScsXG4gICAgICB1bnJlY29nbml6ZWQ6ICdMYSByZXN0aXR1dGlvbiBkZSB0eXBlIHt7dHlwZX19IGVzdCBpbmNvbm51LicsXG4gICAgICBhZGRlZEluVmlldzogJ0xhIHJlc3RpdHV0aW9uIGEgw6l0w6kgYWpvdXTDqWUgc3VyIGxhIHBhZ2UgbsKwe3tpbmRleH19JyxcbiAgICAgIHVwZGF0ZWRJblZpZXc6ICdMYSByZXN0aXR1dGlvbiBhIMOpdMOpIG1pc2Ugw6Agam91ciBzdXIgbGEgcGFnZSBuwrB7e2luZGV4fX0nLFxuICAgICAgc2V0dGluZ3M6IHtcbiAgICAgICAgdGl0bGU6ICdQYXJhbcOpdHJhZ2UnLFxuICAgICAgICBjaGFuZ2VUaXRsZTogJ1RpdHJlIGR1IHdpZGdldCcsXG4gICAgICAgIHZhbGlkYXRlVXBkYXRpbmc6ICdWYWxpZGVyIGxhIG1vZGlmaWNhdGlvbidcbiAgICAgIH0sXG4gICAgICBkZWZpbmVDYXRhbG9nOiAnRMOpZmluaXNzZXogdm90cmUgZW50csOpZSBkZSBjYXRhbG9ndWUnLFxuICAgICAgYnV0dG9uQ2hvaWNlOiAnU8OpbGVjdGlvbm5lciB1bmUgcmVzdGl0dXRpb24nLFxuICAgICAgdG9vbHRpcDoge1xuICAgICAgICBvcGVuUGFyYW1ldGVyOiAnT3V2cmlyIGxlcyBwYXJhbcOodHJlcycsXG4gICAgICAgIHBhcmFtczogJ1BhcmFtw6l0cmVyIGxhIHZ1ZSBkZSB2b3RyZSByZXN0aXR1dGlvbicsXG4gICAgICAgIHJlYWRTZWFyY2g6ICdDaG9pc2lyIGxlcyBkb25uw6llcycsXG4gICAgICAgIGRlbGV0ZVdpZGdldDogJ1N1cHByaW1lciB2b3RyZSByZXN0aXR1dGlvbicsXG4gICAgICAgIGNhdGFsb2dXaWRnZXQ6ICdBam91dGVyIGF1IGNhdGFsb2d1ZScsXG4gICAgICAgIGNoYW5nZVNwb3Q6IFwiQ2hhbmdlciBkJ2VtcGxhY2VtZW50XCIsXG4gICAgICAgIHNwb3ROYW1lOiAnRW1wbGFjZW1lbnQgbsKwe3twbGFjZX19J1xuICAgICAgfSxcbiAgICAgIHRhcmdldDoge1xuICAgICAgICBuZXc6ICdPdXZyaXIgZGFucyB1bmUgbm91dmVsbGUgcGFnZScsXG4gICAgICAgIGV4aXN0aW5nOiAnT3V2cmlyIGRhbnMgbGEgcGFnZSBuwrB7e3RhcmdldEluZGV4fX0nLFxuICAgICAgICBkZWxldGU6ICdTdXBwcmltZXInLFxuICAgICAgICBtYXhpbWl6ZTogJ01heGltaXNlcicsXG4gICAgICAgIG5vbmVfYXV0bzogJ0luc8OpcmV6IGljaSB2b3MgcmVzdGl0dXRpb25zJyxcbiAgICAgICAgbm9uZV9tYW51YWw6ICdHbGlzc2VyIC0gRMOpcG9zZXInLFxuICAgICAgICBsb2FkaW5nOiAnQ2hhcmdlbWVudCdcbiAgICAgIH0sXG4gICAgICBuYW1lZFF1ZXJ5OiB7XG4gICAgICAgIGRlZmF1bHRSczogJ1JlY2hlcmNoZSBjb3VyYW50ZScsXG4gICAgICAgIHJlc3VsdHNBY2N1cmF0ZTogJ3t7dG90YWx9fScsXG4gICAgICAgIHJlc3VsdHNOb25BY2N1cmF0ZTogJ3t7ZGlzcGxheWVkfX0gc3VyIGVudmlyb24ge3t0b3RhbH19J1xuICAgICAgfSxcbiAgICAgIG1vZGFsVGl0bGU6ICdWb3VsZXotdm91cyBjb25maXJtZXIgPycsXG4gICAgICBpdGVtSWQ6ICdJZCcsXG4gICAgICBjbGFzczogJ0NsYXNzZSdcbiAgICB9LFxuICAgIHZpZXc6IHtcbiAgICAgIG5hbWU6ICdQYWdlIG7CsHt7cmFua319J1xuICAgIH0sXG4gICAgdG9vbGJveDoge1xuICAgICAgZGVmYXVsdFNpemU6ICdUYWlsbGUgZGUgcmVzdGl0dXRpb24nLFxuICAgICAgbWFuaWZlc3Q6IHtcbiAgICAgICAgbmFtZTogJ05vbSBkZSBsYSBwcsOpc2VudGF0aW9uJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdEZXNjcmlwdGlvbiBkZSBsYSBwcsOpc2VudGF0aW9uJyxcbiAgICAgICAgc2F2ZWQ6ICdQcsOpc2VudGF0aW9uIHt7dmlld0lkfX0gc2F1dmVnYXJkw6llJyxcbiAgICAgICAgc2F2ZUVycm9yQ29kZToge1xuICAgICAgICAgIEZPUkJJRERFTjogXCJWb3VzIG4nw6p0ZXMgcGFzIGxlIHByb3ByacOpdGFpcmUgZGUgY2V0dGUgcHLDqXNlbnRhdGlvbiBcIixcbiAgICAgICAgICBOQU1FX0FMUkVBRFlfVVNFRDogJ1VuZSBwcsOpc2VudGF0aW9uIGF2ZWMgbGUgbm9tIFwie3tuYW1lfX1cIiBleGlzdGUgZMOpasOgLCB2ZXVpbGxleiBzw6lsZWN0aW9ubmVyIHVuIGF1dHJlIG5vbS4nLFxuICAgICAgICAgIFNBVkVfTUVUQURBVEE6ICdWZXVpbGxleiBzYXV2ZWdhcmRlciBsYSBwcmVzZW50YXRpb24gYXZhbnQgZGUgY2hvaXNpciB1bmUgdGjDqW1hdGlxdWUuJ1xuICAgICAgICB9LFxuICAgICAgICBkZWZhdWx0ZWQ6ICdQcsOpc2VudGF0aW9uIHt7dmlld0lkfX0gbWFycXXDqWUgcGFyIGTDqWZhdXQnLFxuICAgICAgICB1bmRlZmF1bHRlZDogXCJMYSBwcsOpc2VudGF0aW9uIHt7dmlld0lkfX0gbidlc3QgcGx1cyBtYXJxdcOpZSBwYXIgZMOpZmF1dFwiLFxuICAgICAgICB2YWxpZGF0ZWQ6ICdWYWxpZGVyJyxcbiAgICAgICAgY2hlY2s6ICdFbnJlZ2lzdHJlcicsXG4gICAgICAgIGNsb3NlOiAnQW5udWxlcicsXG4gICAgICAgIHZhbGlkYXRlOiAnVmFsaWRlcidcbiAgICAgIH0sXG4gICAgICBjYXRhbG9nOiB7XG4gICAgICAgIHRpdGxlOiAnUGVyc29ubmFsaXPDqXMnLFxuICAgICAgICBsYWJlbDogJ05vbScsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnRGVzY3JpcHRpb24nLFxuICAgICAgICBpY29uOiAnSW1hZ2UnLFxuICAgICAgICBmaWx0ZXI6IHtcbiAgICAgICAgICBkZWxldGU6ICdTdXBwcmltZXIgY2UgZmlsdHJlJyxcbiAgICAgICAgICB0eXBlOiAnRmlsdHJlciBwYXIgdHlwZScsXG4gICAgICAgICAgbmFtZTogJ0ZpbHRyZXIgcGFyIG5vbSdcbiAgICAgICAgfSxcbiAgICAgICAgc2F2ZUVycm9yQ29kZToge1xuICAgICAgICAgIE5BTUVfQUxSRUFEWV9VU0VEOiAnVW5lIHJlc3RpdHV0aW9uIGF2ZWMgbGUgbm9tIFwie3tuYW1lfX1cIiBleGlzdGUgZMOpasOgLCB2ZXVpbGxleiBzw6lsZWN0aW9ubmVyIHVuIGF1dHJlIG5vbS4nXG4gICAgICAgIH0sXG4gICAgICAgIHNhdmVkOiAnUHLDqXNlbnRhdGlvbiB7e3ZpZXdJZH19IHNhdXZlZ2FyZMOpZSdcbiAgICAgIH0sXG4gICAgICBlZGl0OiAnTW9kaWZpZXIgbGEgZGlzcG9zaXRpb24nLFxuICAgICAgZWRpdE9mZjogJ1Zpc3VhbGlzZXIgbGEgZGlzcG9zaXRpb24nLFxuICAgICAgbGF1bmNoOiAnTm91dmVsbGUgcGFnZScsXG4gICAgICBsYXVuY2hJbmRpY2F0aW9uOiAnT3V2cmlyIGNldHRlIHBhZ2UgZGFucyB1bicsXG4gICAgICBjaG9vc2VHcmlkOiAnQ2hhbmdlciBsYSBncmlsbGUnLFxuICAgICAgY2xlYXI6IFwiVmlkZXIgbCdhZmZpY2hhZ2VcIixcbiAgICAgIHJlZnJlc2g6ICdBY3R1YWxpc2VyJyxcbiAgICAgIGF1dG9tYXRlUmVmcmVzaDogXCJBdXRvbWF0aXNlciBsJ2FjdHVhbGlzYXRpb25cIixcbiAgICAgIG9wdGlvbnM6ICdPcHRpb25zJyxcbiAgICAgIGNsb3NlOiAnRmVybWVyJyxcbiAgICAgIGhlYXRtYXA6ICdGcsOpcXVlbnRhdGlvbicsXG4gICAgICBidWJibGVtYXA6ICdCdWxsZXMnLFxuICAgICAgbWFya2VybWFwOiAnTWFycXVldXJzJyxcbiAgICAgIHNpbXBsZW1hcDogJ0NhcnRlJyxcbiAgICAgIG1hcDogJ0NhcnRlJyxcbiAgICAgIHRhYmxlOiAnVGFibGVhdScsXG4gICAgICBkZXRhaWw6ICdEw6l0YWlsJyxcbiAgICAgIGNoYXJ0OiAnR3JhcGhpcXVlJyxcbiAgICAgIHJlc3VsdFNldDogJ1JlY2hlcmNoZXMgbm9tbcOpZXMnLFxuICAgICAgc2F2ZVZpZXc6ICdFbnJlZ2lzdHJlciBzb3VzJyxcbiAgICAgIHJlbmFtZTogJ0VucmVnaXN0cmVyIHNvdXMnLFxuICAgICAgcmVzdG9yZTogJ1Jlc3RhdXJlciBsZXMgcGFnZXMnLFxuICAgICAgc2F2ZTogJ0VucmVnaXN0cmVyJyxcbiAgICAgIGRyYWc6ICdSZXN0aXR1dGlvbi4uLicsXG4gICAgICBkcmFnSW5kaWNhdGlvbjogJ0luc8OpcmVyIHVuJyxcbiAgICAgIGJhcmNoYXJ0OiAnQmFycmVzJyxcbiAgICAgIGhpc3RvZ3JhbTogJ0hpc3RvZ3JhbW1lJyxcbiAgICAgIGxpbmVjaGFydDogJ0NvdXJiZScsXG4gICAgICBwb2ludGNoYXJ0OiAnUG9pbnRzJyxcbiAgICAgIGFyZWFjaGFydDogJ0FpcmUnLFxuICAgICAgYXJjY2hhcnQ6ICdDaXJjdWxhaXJlJyxcbiAgICAgIHJhZGFyY2hhcnQ6ICdSYWRhcicsXG4gICAgICBjaXJjbGVjaGFydDogJ1BhcXVldHMgZGUgY2VyY2xlcycsXG4gICAgICBpZnJhbWU6ICdBcHBsaWNhdGlvbiBleHRlcm5lJyxcbiAgICAgIHZlZ2E6ICdHcmFwaGlxdWUgYXZhbmPDqScsXG4gICAgICBncmFwaDogJ1JlbGF0aW9ucycsXG4gICAgICBwbGFjZWhvbGRlcjogJycsXG4gICAgICBzdWI6IHtcbiAgICAgICAgbWFwOiAnQ2FydG9ncmFwaGllJyxcbiAgICAgICAgY2hhcnQ6ICdHcmFwaGlxdWUnLFxuICAgICAgICBvdGhlcjogJ0F1dHJlJ1xuICAgICAgfSxcbiAgICAgIHRpbGU6ICdUdWlsZXMnLFxuICAgICAgbm93OiBcIkF1am91cmQnaHVpXCIsXG4gICAgICBzaW5jZV9kYXk6ICdJbCB5IGEge3tkYXl9fSBqb3Vye3twbHVyYWx9fScsXG4gICAgICBsYXlvdXQ6IHtcbiAgICAgICAgJzAnOiAnQ29tcG9zaXRpb24gbGlicmUnLFxuICAgICAgICAnMF9kZXRhaWxsZWQnOlxuICAgICAgICAgIFwiQWZmaWNoYWdlIGVuIG1vZGUgbGlicmUsIGxhIHRhaWxsZSBldCBsZSBwb3NpdGlvbm5lbWVudCBkZXMgcmVzdGl0dXRpb25zIHNvbnQgZW50acOocmVtZW50IHBhcmFtw6l0cmFibGVzIHBhciBsJ3V0aWxpc2F0ZXVyLlwiLFxuICAgICAgICAnMSc6ICdQbGVpbiDDqWNyYW4nLFxuICAgICAgICAnMV9kZXRhaWxsZWQnOlxuICAgICAgICAgIFwiQWZmaWNoYWdlIGTigJl1bmUgc2V1bGUgcmVzdGl0dXRpb24gc3VyIGwnZW5zZW1ibGUgZGUgbCfDqWNyYW4sIGxlIHBsYWNlbWVudCBlc3QgZ3VpZMOpIHBhciBsZSBzeXN0w6htZS5cIixcbiAgICAgICAgJzEvMnYnOiAnMS8yIMOpY3JhbiB2ZXJ0aWNhbCcsXG4gICAgICAgICcxLzJ2X2RldGFpbGxlZCc6XG4gICAgICAgICAgXCJBZmZpY2hhZ2UgZGUgMiByZXN0aXR1dGlvbnMgbWF4aW11bSBzdXIgbCfDqWNyYW4gZMOpY291cMOpIGVuIGRldXggem9uZXMgdmVydGljYWxlcywgbCdham91dCBkZSByZXN0aXR1dGlvbiBzZSBmYWl0IGRhbnMgbGVzIHpvbmVzIHZpZGVzLiBMZSBwbGFjZW1lbnQgZXN0IGd1aWTDqSBwYXIgbGUgc3lzdMOobWUuXCIsXG4gICAgICAgICcxLzJoJzogJzEvMiDDqWNyYW4gaG9yaXpvbnRhbCcsXG4gICAgICAgICcxLzJoX2RldGFpbGxlZCc6XG4gICAgICAgICAgXCJBZmZpY2hhZ2UgZGUgMiByZXN0aXR1dGlvbnMgbWF4aW11bSBzdXIgbOKAmcOpY3JhbiBkw6ljb3Vww6kgZW4gZGV1eCB6b25lcyBob3Jpem9udGFsZXMsIGwnYWpvdXQgZGUgcmVzdGl0dXRpb24gc2UgZmFpdCBkYW5zIGxlcyB6b25lcyB2aWRlcy4gTGUgcGxhY2VtZW50IGVzdCBndWlkw6kgcGFyIGxlIHN5c3TDqG1lLlwiLFxuICAgICAgICAnMS8zdic6ICcxLzMgw6ljcmFuIHZlcnRpY2FsJyxcbiAgICAgICAgJzEvM3ZfZGV0YWlsbGVkJzpcbiAgICAgICAgICBcIkFmZmljaGFnZSBkZSAzIHJlc3RpdHV0aW9ucyBtYXhpbXVtIHN1ciBs4oCZw6ljcmFuIGTDqWNvdXDDqSBlbiB0cm9pcyB6b25lcyB2ZXJ0aWNhbGVzLCBsJ2Fqb3V0IGRlIHJlc3RpdHV0aW9uIHNlIGZhaXQgZGFucyBsZXMgem9uZXMgdmlkZXMuIExlIHBsYWNlbWVudCBlc3QgZ3VpZMOpIHBhciBsZSBzeXN0w6htZS5cIixcbiAgICAgICAgJzEvM2gnOiAnMS8zIMOpY3JhbiBob3Jpem9udGFsJyxcbiAgICAgICAgJzEvM2hfZGV0YWlsbGVkJzpcbiAgICAgICAgICBcIkFmZmljaGFnZSBkZSAzIHJlc3RpdHV0aW9ucyBtYXhpbXVtIHN1ciBs4oCZw6ljcmFuIGTDqWNvdXDDqSBlbiB0cm9pcyB6b25lcyBob3Jpem9udGFsZXMsIGwnYWpvdXQgZGUgcmVzdGl0dXRpb24gc2UgZmFpdCBkYW5zIGxlcyB6b25lcyB2aWRlcy4gTGUgcGxhY2VtZW50IGVzdCBndWlkw6kgcGFyIGxlIHN5c3TDqG1lLlwiLFxuICAgICAgICAnMS80JzogJzEvNCDDqWNyYW4nLFxuICAgICAgICAnMS80X2RldGFpbGxlZCc6XG4gICAgICAgICAgXCJBZmZpY2hhZ2UgZGUgNCByZXN0aXR1dGlvbnMgbWF4aW11bSBzdXIgbOKAmcOpY3JhbiBkw6ljb3Vww6kgZW4gcXVhdHJlIHpvbmVzICwgbCdham91dCBkZSByZXN0aXR1dGlvbiBzZSBmYWl0IGRhbnMgbGVzIHpvbmVzIHZpZGVzLiBMZSBwbGFjZW1lbnQgZXN0IGd1aWTDqSBwYXIgbGUgc3lzdMOobWUuXCJcbiAgICAgIH1cbiAgICB9LFxuICAgIG1hbmlmZXN0OiB7XG4gICAgICBuYW1lOiAnTm9tJyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnRGVzY3JpcHRpb24nLFxuICAgICAgY3JlYXRpb246ICdEYXRlIGRlIGNyw6lhdGlvbicsXG4gICAgICBtb2RpZmljYXRpb246ICdEYXRlIGRlIG1vZGlmaWNhdGlvbicsXG4gICAgICBhY3Rpb25zOiAnQWN0aW9ucycsXG4gICAgICBpbXBvcnQ6ICdJbXBvcnRlcicsXG4gICAgICBpbXBvcnRBbHQ6ICdJbXBvcnRlciB1bmUgcHLDqXNlbnRhdGlvbicsXG4gICAgICB0aXRsZTogJ1Byw6lzZW50YXRpb25zJyxcbiAgICAgIGdldDoge1xuICAgICAgICBlcnJvckZyb250OiAnRXJyZXVyIGNsaWVudCA6IHt7bXNnfX0nLFxuICAgICAgICBlcnJvckJhY2s6ICdFcnJldXIgc2VydmV1ciBkZSBjb2RlIFt7e2NvZGV9fV0nXG4gICAgICB9LFxuICAgICAgZGVmYXVsdDogJ0TDqWZpbmlyIHBhciBkw6lmYXV0JyxcbiAgICAgIGRvd25sb2FkOiAnVMOpbMOpY2hhcmdlcicsXG4gICAgICBsb2FkOiAnQ2hhcmdlcicsXG4gICAgICBkZWxldGU6ICdTdXBwcmltZXInLFxuICAgICAgZGVsZXRlRXJyb3I6XG4gICAgICAgIFwiUmVjaGVyY2hlIHV0aWxpc8OpZSBkYW5zIHVuZSBvdSBwbHVzaWV1cnMgcmVzdGl0dXRpb24ocyksIHZldWlsbGV6IHN1cHByaW1lciBsZXMgdXRpbGlzYXRpb25zIGQnYWJvcmRcIlxuICAgIH0sXG4gICAgZm9ybWF0OiB7XG4gICAgICBkYXRlOiAnZGQvTU0veXl5eScsXG4gICAgICBkYXRldGltZTogJ2RkL01NL3l5eXkgSEg6bW06c3MnLFxuICAgICAgZGVjaW1hbDogJywnLFxuICAgICAgdGhvdXNhbmRzOiAnICdcbiAgICB9LFxuICAgIGNvbnRleHQ6IHtcbiAgICAgIGFkZDogJ0Fqb3V0ZXIgw6AgbGEgc8OpbGVjdGlvbicsXG4gICAgICByZW1vdmU6ICdFbmxldmVyIGRlIGxhIHPDqWxlY3Rpb24nLFxuICAgICAgbGluazogJ0xpZXIgw6AgbGEgc8OpbGVjdGlvbicsXG4gICAgICBpbnZlcnQ6ICdJbnZlcnNlciBsYSBzw6lsZWN0aW9uJyxcbiAgICAgIHByb3hpbWl0eTogJ1JlY2hlcmNoZXIgbGVzIG9iamV0cyBsacOpcycsXG4gICAgICBleHBsb3JlOiAnT3V2cmlyIGxhIHJlc3RpdHV0aW9uIFJlbGF0aW9ucycsXG4gICAgICBkZXRhaWw6ICdPdXZyaXIgbGEgcmVzdGl0dXRpb24gRMOpdGFpbCcsXG4gICAgICBmbHlpbmdEZXRhaWw6IFwiQ29uc3VsdGVyIGwnb2JqZXRcIixcbiAgICAgIGFkZHJlc3NGcm9tTG9jOiBcIk9idGVuaXIgbCdhZHJlc3NlXCIsXG4gICAgICBlcnJvclNlYXJjaEFkZHJlc3M6ICdBZHJlc3NlIGludHJvdXZhYmxlJyxcbiAgICAgIGNhbmNlbDogJ0FubnVsZXInLFxuICAgICAgY3JlYXRlOiAnQ3LDqWVyJyxcbiAgICAgIGNyZWF0ZU9iamVjdDoge1xuICAgICAgICB0aXRsZToge1xuICAgICAgICAgIG9iamVjdDogJ0Nyw6llciB1biBvYmpldCcsXG4gICAgICAgICAgbGluazogJ0Nyw6llciB1bmUgcmVsYXRpb24nLFxuICAgICAgICAgIGludmVyc2lvbjogJ0ludmVyc2VyIGxhIHJlbGF0aW9uJyxcbiAgICAgICAgICBsaW5rZWRPYmplY3Q6ICdDcsOpZXIgdW4gb2JqZXQgbGnDqSdcbiAgICAgICAgfSxcbiAgICAgICAgY2xhc3M6IFwiQ2xhc3NlIGRlIGwnb2JqZXRcIixcbiAgICAgICAgbGluazogJ1JlbGF0aW9uIGF2ZWMgbGUgbm91dmVsIG9iamV0JyxcbiAgICAgICAgY3JlYXRlZDogXCJMJ29iamV0IGEgw6l0w6kgY3LDqcOpXCIsXG4gICAgICAgIGRldGFpbHM6ICdWb2lyIGxlIGTDqXRhaWwnLFxuICAgICAgICBhZGRNdWx0aUZpZWxkOiAnQWpvdXRlciB1bmUgdmFsZXVyIGRlIHt7bmFtZX19J1xuICAgICAgfVxuICAgIH0sXG4gICAgYWN0aW9uOiB7XG4gICAgICBjbG9zZTogJ0Zlcm1lcicsXG4gICAgICBjbG9zZVBhbmVsOiAnRmVybWVyIGxlIHBhbm5lYXUnLFxuICAgICAgZGVsZXRlOiAnU3VwcHJpbWVyJyxcbiAgICAgIGVkaXQ6ICdFZGl0ZXInLFxuICAgICAgZWRpdFByb2ZpbDogJ0VkaXRlciBsZSBwcm9maWwnLFxuICAgICAgY2hvaWNlOiAnQ2hvaXNpciB1biAuLi4uJyxcbiAgICAgIGNob2ljZUluTGlzdDogJ0Nob2lzaXIgdW4gw6lsw6ltZW50IGRhbnMgbGEgbGlzdGUnLFxuICAgICAgdGV4dDogJ1JlbXBsaXNzZXIgbGUgY2hhbXAnLFxuICAgICAgc29ydGFibGVDb2x1bW5IZWFkZXI6IFwiVXRpbGlzZXogbGVzIGJvdXRvbnMgZCdlbi10w6p0ZSBkZSBjb2xvbm5lIHBvdXIgdHJpZXIuXCIsXG4gICAgICB2aWV3RGV0YWlsczogJ1ZvaXIgbGVzIGTDqXRhaWxzJyxcbiAgICAgIHNlbGVjdERhdGU6ICdDaG9pc2lyIHVuZSBkYXRlJyxcbiAgICAgIG9wZW5zSW5OZXdUYWI6IFwiUydvdXZyZSBkYW5zIHVuZSBub3V2ZWxsZSBmZW7DqnRyZVwiLFxuICAgICAgc2tpcExpbms6ICdBbGxlciBhdSBjb250ZW51JyxcbiAgICAgIHNlbGVjdFBpY3R1cmU6ICdTw6lsZWN0aW9ubmVyIHVuZSBpbWFnZScsXG4gICAgICBtb3ZlRG93bjogJ0TDqXBsYWNlciB2ZXJzIGxlIGJhcycsXG4gICAgICBtb3ZlVXA6ICdEw6lwbGFjZXIgdmVycyBsZSBoYXV0JyxcbiAgICAgIGV4cG9ydEFzRm9ybWF0OiAnRXhwb3J0ZXIgYXUgZm9ybWF0JyxcbiAgICAgIG9wZW5NZW51V2lkZ2V0OiAnTWVudSBkZSBsYSByZXN0aXR1dGlvbicsXG4gICAgICBzZWFyY2g6ICdSZWNoZXJjaGVyJyxcbiAgICAgIHVwbG9hZDogJ0Fqb3V0ZXIgdW5lIGltYWdlJyxcbiAgICAgIG5leHQ6ICdTdWl2YW50JyxcbiAgICAgIGJhY2s6ICdSZXRvdXInLFxuICAgICAgZmlsdGVyQnlUeXBlOiAnRmlsdHJlciBwYXIgdHlwZScsXG4gICAgICBlZGl0TWV0YWRhdGE6ICdNb2RpZmllciBsYSBtw6l0YWRvbm7DqWUnLFxuICAgICAgYWRkTWV0YWRhdGE6ICdBam91dGVyIGxhIG3DqXRhZG9ubsOpZSdcbiAgICB9LFxuICAgIHNuYWNrOiB7XG4gICAgICBkZWZhdWx0OiAnVmVnYSBhIHJlbmNvbnRyw6kgdW5lIGVycmV1ciBlbiB1dGlsaXNhbnQgdm9zIGRvbm7DqWVzIGV0IHBhcmFtw6l0cmFnZS4nLFxuICAgICAgbWlzc2luZ1BhcmVudDogXCJVbiBub2V1ZCBlc3QgbWFucXVhbnQgZGFucyBsJ2FyYnJlIGRlIHJlcHLDqXNlbnRhdGlvbi4gTWVyY2kgZGUgY29ycmlnZXIgdm9zIGRvbm7DqWVzLlwiLFxuICAgICAgbWlzc2luZ1ZhbHVlOiBcIlVuIGl0ZW0gw6AgYWZmaWNoZXIgbmUgcG9zc8OoZGUgcGFzIGwnYXR0cmlidXQgw6AgYWZmaWNoZXIuIE1lcmNpIGRlIGNvcnJpZ2VyIHZvcyBkb25uw6llcy5cIixcbiAgICAgIGVtcHR5VmFsdWVzOiBcIkxlcyB2YWxldXJzIGRlIGwnYXR0cmlidXQgw6AgYWZmaWNoZXIgbmUgcGV1dmVudCDDqnRyZSB0b3V0ZXMgbnVsbGVzLiBNZXJjaSBkZSBjb3JyaWdlciB2b3MgZG9ubsOpZXMuXCIsXG4gICAgICBwYWdlc0NoYW5nZWQ6ICdBdHRlbnRpb24sIGxlIG5vbWJyZSBkZSBwYWdlcyBkZSB2b3RyZSBwcsOpc2VudGF0aW9uIGEgY2hhbmfDqSwgcXVlIHNvdWhhaXRlei12b3VzIGZhaXJlID8nLFxuICAgICAgaW1hZ2VOYW1lQWxyZWFkeVVzZWQ6ICdMZSBub20gZGUgY2V0dGUgaW1hZ2UgZXN0IGTDqWrDoCB1dGlsaXPDqSdcbiAgICB9LFxuICAgIHRoZW1lOiB7XG4gICAgICBlZGl0SW5wdXQ6IHtcbiAgICAgICAgdG9nZ2xlOiAnRWRpdGVyJ1xuICAgICAgfSxcbiAgICAgIHByZXZpb3VzTW9udGg6ICdNb2lzIHByw6ljw6lkZW50JyxcbiAgICAgIG5leHRNb250aDogJ01vaXMgc3VpdmFudCcsXG4gICAgICB3ZWVrZGF5czoge1xuICAgICAgICAwOiAnTHVuZGknLFxuICAgICAgICAxOiAnTWFyZGknLFxuICAgICAgICAyOiAnTWVyY3JlZGknLFxuICAgICAgICAzOiAnSmV1ZGknLFxuICAgICAgICA0OiAnVmVuZHJlZGknLFxuICAgICAgICA1OiAnU2FtZWRpJyxcbiAgICAgICAgNjogJ0RpbWFuY2hlJ1xuICAgICAgfSxcbiAgICAgIHNob3J0V2Vla2RheXM6IHtcbiAgICAgICAgMDogJ0x1JyxcbiAgICAgICAgMTogJ01hJyxcbiAgICAgICAgMjogJ01lJyxcbiAgICAgICAgMzogJ0plJyxcbiAgICAgICAgNDogJ1ZlJyxcbiAgICAgICAgNTogJ1NhJyxcbiAgICAgICAgNjogJ0RpJ1xuICAgICAgfSxcbiAgICAgIG1vbnRoczoge1xuICAgICAgICAwOiAnSmFudmllcicsXG4gICAgICAgIDE6ICdGw6l2cmllcicsXG4gICAgICAgIDI6ICdNYXJzJyxcbiAgICAgICAgMzogJ0F2cmlsJyxcbiAgICAgICAgNDogJ01haScsXG4gICAgICAgIDU6ICdKdWluJyxcbiAgICAgICAgNjogJ0p1aWxsZXQnLFxuICAgICAgICA3OiAnQW/Du3QnLFxuICAgICAgICA4OiAnU2VwdGVtYnJlJyxcbiAgICAgICAgOTogJ09jdG9icmUnLFxuICAgICAgICAxMDogJ05vdmVtYnJlJyxcbiAgICAgICAgMTE6ICdEw6ljZW1icmUnXG4gICAgICB9XG4gICAgfSxcbiAgICBzaGFyZToge1xuICAgICAgcHJpdmF0ZTogJ1ByaXbDqScsXG4gICAgICBwdWJsaWM6ICdQdWJsaWMnLFxuICAgICAgcmVzdHJpY3RlZDogJ1Jlc3RyZWludCcsXG4gICAgICB0eXBlOiAnVmlzaWJpbGl0w6knLFxuICAgICAgdXNlcnM6ICdVdGlsaXNhdGV1cnMgYXV0b3Jpc8OpcydcbiAgICB9LFxuICAgIGhvbWVwYWdlOiB7XG4gICAgICBtZW51OiB7XG4gICAgICAgIG1vZGVsOiAnTW9kw6hsZSBkZSBkb25uw6llcycsXG4gICAgICAgIGRhdGE6ICdBY2PDqHMgYXV4IGRvbm7DqWVzJ1xuICAgICAgfVxuICAgIH0sXG4gICAgbWV0YWRhdGE6IHtcbiAgICAgIHZpZXc6ICdDb25zdWx0ZXIgbGVzIG1ldGFkb25uw6llcydcbiAgICB9LFxuICAgIGVycm9yczoge1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgJ1VuZSBlcnJldXIgZXN0IHN1cnZlbnVlLiBWZXVpbGxleiB2w6lyaWZpZXogbGVzIGluZm9ybWF0aW9ucyBvdSBjb250YWN0ZXIgdm90cmUgYWRtaW5pc3RyYXRldXIgc2kgbGUgcHJvYmzDqG1lIHBlcnNpc3RlJyxcbiAgICAgIGNvZGVzOiB7XG4gICAgICAgIDA6ICdVbmUgZXJyZXVyIGVzdCBzdXJ2ZW51ZSBhdSBuaXZlYXUgbmF2aWdhdGV1ci4gQ2VsYSBwZXV0LcOqdHJlIHVuZSBlcnJldXIgQ09SUywgZGUgcsOpc2VhdSAuLi4gTGEgcmVzc291cmNlIG5lIHBldXQgcGFzIMOqdHJlIHLDqWN1cMOpcsOpZS4nLFxuICAgICAgICA0MDA6ICdVbmUgZXJyZXVyIGVzdCBzdXJ2ZW51ZS4nLFxuICAgICAgICA0MDE6ICdWb3RyZSBzZXNzaW9uIGVzdCBpbnZhbGlkZS4gRXNzYXlleiBkZSB2b3VzIHJlY29ubmVjdGVyICEnLFxuICAgICAgICA0MDM6IFwiVm91cyBuJ2F2ZXogcGFzIGxlcyBkcm9pdHMgcG91ciBjb25zdWx0ZXIgY2V0dGUgcmVzc291cmNlXCIsXG4gICAgICAgIDQwNDogXCJMYSByZXNzb3VyY2UgZGVtYW5kw6llIG4nZXhpc3RlIHBhc1wiLFxuICAgICAgICA0MDk6ICdVbmUgcmVzc291cmNlIHNpbWlsYWlyZSBleGlzdGUgZMOpasOgJyxcbiAgICAgICAgNTAwOiAnVW5lIGVycmV1ciBlc3Qgc3VydmVudWUuJyxcbiAgICAgICAgNTAzOiAnTGUgc2VydmljZSBlc3QgYWN0dWVsbGVtZW50IGluZGlzcG9uaWJsZS4gUsOpZXNzYXllciB1bHTDqXJpZXVyZW1lbnQgISdcbiAgICAgIH1cbiAgICB9LFxuICAgIGZpbHRlcnM6IHtcbiAgICAgIGxhYmVsOiAnUGFyYW3DqXRyZXIgbGVzIGZpbHRyZXMnLFxuICAgICAgbm9BdHRyaWJ1dGVzOiBcIkxhIHByw6lzZW50YXRpb24gZW4gY291cnMgbmUgZGlzcG9zZSBkJ2F1Y3VuZSBhdHRyaWJ1dCBzdXIgbGVxdWVsIGZpbHRyZXJcIixcbiAgICAgIG5vRmlsdGVyczogXCJWb3VzIG4nYXZleiBwYXMgZW5jb3JlIHBhcmFtw6l0csOpIGRlIGZpbHRyZS5cIixcbiAgICAgIGNsZWFyOiAnRWZmYWNlcicsXG4gICAgICBsaXN0OiB7XG4gICAgICAgIGF0dHJpYnV0ZXM6ICdBdHRyaWJ1dHM6ICcsXG4gICAgICAgIGFkZDogJ0Nyw6llciB1biBmaWx0cmUnLFxuICAgICAgICBkZWxldGU6ICdTdXBwcmltZXInLFxuICAgICAgICBtb2RpZnk6ICdNb2RpZmllcidcbiAgICAgIH0sXG4gICAgICBjcmVhdGlvbjoge1xuICAgICAgICBjcmVhdGU6ICdOb3V2ZWF1IGZpbHRyZScsXG4gICAgICAgIHVwZGF0ZTogJ01vZGlmaWVyIHVuIGZpbHRyZScsXG4gICAgICAgIG5hbWU6ICdOb20gZHUgZmlsdHJlJyxcbiAgICAgICAgdHlwZTogJ1R5cGUgZHUgZmlsdHJlJyxcbiAgICAgICAgZmlsdGVyOiAnRmlsdHJlJyxcbiAgICAgICAgYXR0cmlidXRlczogJ0F0dHJpYnV0cycsXG4gICAgICAgIHZhbHVlOiAnVmFsZXVyJyxcbiAgICAgICAgdmFsdWVzOiAnVmFsZXVycycsXG4gICAgICAgIHZhbGlkYXRlOiAnVmFsaWRlcidcbiAgICAgIH0sXG4gICAgICBhdHRyaWJ1dGVzOiB7XG4gICAgICAgIGRhdGFzb3VyY2U6ICdEYXRhc291cmNlJyxcbiAgICAgICAgY2xhc3M6ICdDbGFzc2UnLFxuICAgICAgICBvcGVyYXRvcjogJ09ww6lyYXRldXInXG4gICAgICB9LFxuICAgICAgdHlwZXM6IHtcbiAgICAgICAgdGV4dDogJ1RleHRlJyxcbiAgICAgICAgZGF0ZTogJ0RhdGUnLFxuICAgICAgICBsaXN0OiAnTGlzdGUnLFxuICAgICAgICBudW1iZXI6ICdOdW3DqXJpcXVlJ1xuICAgICAgfVxuICAgIH1cbiAgfVxufTtcbiJdfQ==
344
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnIudHJhbnNsYXRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvbGliL2NvcmUvaTE4bi9mci50cmFuc2xhdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHO0lBQzVCLE1BQU0sRUFBRTtRQUNOLEtBQUssRUFBRTtZQUNMLEtBQUssRUFBRSxpQkFBaUI7WUFDeEIsR0FBRyxFQUFFLGFBQWE7WUFDbEIsSUFBSSxFQUFFLFNBQVM7WUFDZixNQUFNLEVBQUUsT0FBTztZQUNmLElBQUksRUFBRSxXQUFXO1lBQ2pCLE9BQU8sRUFBRSxnQkFBZ0I7WUFDekIsT0FBTyxFQUFFLGFBQWE7WUFDdEIsU0FBUyxFQUFFLHFCQUFxQjtTQUNqQztRQUNELE1BQU0sRUFBRTtZQUNOLHFCQUFxQixFQUFFLDhCQUE4QjtTQUN0RDtRQUNELE1BQU0sRUFBRTtZQUNOLE1BQU0sRUFBRSx1Q0FBdUM7WUFDL0MsWUFBWSxFQUFFLDhDQUE4QztZQUM1RCxXQUFXLEVBQUUsc0RBQXNEO1lBQ25FLGFBQWEsRUFBRSwwREFBMEQ7WUFDekUsUUFBUSxFQUFFO2dCQUNSLEtBQUssRUFBRSxhQUFhO2dCQUNwQixXQUFXLEVBQUUsaUJBQWlCO2dCQUM5QixnQkFBZ0IsRUFBRSx5QkFBeUI7YUFDNUM7WUFDRCxhQUFhLEVBQUUsc0NBQXNDO1lBQ3JELFlBQVksRUFBRSw4QkFBOEI7WUFDNUMsT0FBTyxFQUFFO2dCQUNQLGFBQWEsRUFBRSx1QkFBdUI7Z0JBQ3RDLE1BQU0sRUFBRSx3Q0FBd0M7Z0JBQ2hELFVBQVUsRUFBRSxxQkFBcUI7Z0JBQ2pDLFlBQVksRUFBRSw2QkFBNkI7Z0JBQzNDLGFBQWEsRUFBRSxzQkFBc0I7Z0JBQ3JDLFVBQVUsRUFBRSx1QkFBdUI7Z0JBQ25DLFFBQVEsRUFBRSx5QkFBeUI7YUFDcEM7WUFDRCxNQUFN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QztZQUN4RCxLQUFLLEVBQUUsU0FBUztZQUNoQixJQUFJLEVBQUU7Z0JBQ0osVUFBVSxFQUFFLGFBQWE7Z0JBQ3pCLEdBQUcsRUFBRSxpQkFBaUI7Z0JBQ3RCLE1BQU0sRUFBRSxXQUFXO2dCQUNuQixNQUFNLEVBQUUsVUFBVTthQUNuQjtZQUNELFFBQVEsRUFBRTtnQkFDUixNQUFNLEVBQUUsZ0JBQWdCO2dCQUN4QixNQUFNLEVBQUUsb0JBQW9CO2dCQUM1QixJQUFJLEVBQUUsZUFBZTtnQkFDckIsSUFBSSxFQUFFLGdCQUFnQjtnQkFDdEIsTUFBTSxFQUFFLFFBQVE7Z0JBQ2hCLFVBQVUsRUFBRSxXQUFXO2dCQUN2QixLQUFLLEVBQUUsUUFBUTtnQkFDZixNQUFNLEVBQUUsU0FBUztnQkFDakIsUUFBUSxFQUFFLFNBQVM7YUFDcEI7WUFDRCxVQUFVLEVBQUU7Z0JBQ1YsVUFBVSxFQUFFLFlBQVk7Z0JBQ3hCLEtBQUssRUFBRSxRQUFRO2dCQUNmLFFBQVEsRUFBRSxXQUFXO2FBQ3RCO1lBQ0QsS0FBSyxFQUFFO2dCQUNMLElBQUksRUFBRSxPQUFPO2dCQUNiLElBQUksRUFBRSxNQUFNO2dCQUNaLElBQUksRUFBRSxPQUFPO2dCQUNiLE1BQU0sRUFBRSxXQUFXO2FBQ3BCO1NBQ0Y7S0FDRjtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgZnJUcmFuc2xhdGlvbnMgPSB7XG4gICdAcHJ5Jzoge1xuICAgIGFib3V0OiB7XG4gICAgICBmcm9udDogJ0xpYnJhaXJpZSBmcm9udCcsXG4gICAgICByZWY6ICdSw6lmw6lyZW50aWVsJyxcbiAgICAgIGRhdGE6ICdEb25uw6llcycsXG4gICAgICByZXBsYXk6ICdSZWpldScsXG4gICAgICBleGVjOiAnRXjDqWN1dGlvbicsXG4gICAgICB0cmFuc2ZvOiAnVHJhbnNmb3JtYXRpb24nLFxuICAgICAgbW9uaXRvcjogJ1N1cGVydmlzaW9uJyxcbiAgICAgIG5vVmVyc2lvbjogJ1ZlcnNpb24gbm9uIHRyb3V2w6llJ1xuICAgIH0sXG4gICAgaGVhZGVyOiB7XG4gICAgICBub0N1cnJlbnRQcmVzZW50YXRpb246ICdQcsOpc2VudGF0aW9uIG5vbiBzYXV2ZWdhcmTDqWUnXG4gICAgfSxcbiAgICB3aWRnZXQ6IHtcbiAgICAgIG5vRGF0YTogJ0F1Y3VuZSBzb3VyY2UgZGUgZG9ubsOpZXMgc8OpbGVjdGlvbm7DqWUnLFxuICAgICAgdW5yZWNvZ25pemVkOiAnTGEgcmVzdGl0dXRpb24gZGUgdHlwZSB7e3R5cGV9fSBlc3QgaW5jb25udS4nLFxuICAgICAgYWRkZWRJblZpZXc6ICdMYSByZXN0aXR1dGlvbiBhIMOpdMOpIGFqb3V0w6llIHN1ciBsYSBwYWdlIG7CsHt7aW5kZXh9fScsXG4gICAgICB1cGRhdGVkSW5WaWV3OiAnTGEgcmVzdGl0dXRpb24gYSDDqXTDqSBtaXNlIMOgIGpvdXIgc3VyIGxhIHBhZ2UgbsKwe3tpbmRleH19JyxcbiAgICAgIHNldHRpbmdzOiB7XG4gICAgICAgIHRpdGxlOiAnUGFyYW3DqXRyYWdlJyxcbiAgICAgICAgY2hhbmdlVGl0bGU6ICdUaXRyZSBkdSB3aWRnZXQnLFxuICAgICAgICB2YWxpZGF0ZVVwZGF0aW5nOiAnVmFsaWRlciBsYSBtb2RpZmljYXRpb24nXG4gICAgICB9LFxuICAgICAgZGVmaW5lQ2F0YWxvZzogJ0TDqWZpbmlzc2V6IHZvdHJlIGVudHLDqWUgZGUgY2F0YWxvZ3VlJyxcbiAgICAgIGJ1dHRvbkNob2ljZTogJ1PDqWxlY3Rpb25uZXIgdW5lIHJlc3RpdHV0aW9uJyxcbiAgICAgIHRvb2x0aXA6IHtcbiAgICAgICAgb3BlblBhcmFtZXRlcjogJ091dnJpciBsZXMgcGFyYW3DqHRyZXMnLFxuICAgICAgICBwYXJhbXM6ICdQYXJhbcOpdHJlciBsYSB2dWUgZGUgdm90cmUgcmVzdGl0dXRpb24nLFxuICAgICAgICByZWFkU2VhcmNoOiAnQ2hvaXNpciBsZXMgZG9ubsOpZXMnLFxuICAgICAgICBkZWxldGVXaWRnZXQ6ICdTdXBwcmltZXIgdm90cmUgcmVzdGl0dXRpb24nLFxuICAgICAgICBjYXRhbG9nV2lkZ2V0OiAnQWpvdXRlciBhdSBjYXRhbG9ndWUnLFxuICAgICAgICBjaGFuZ2VTcG90OiBcIkNoYW5nZXIgZCdlbXBsYWNlbWVudFwiLFxuICAgICAgICBzcG90TmFtZTogJ0VtcGxhY2VtZW50IG7CsHt7cGxhY2V9fSdcbiAgICAgIH0sXG4gICAgICB0YXJnZXQ6IHtcbiAgICAgICAgbmV3OiAnT3V2cmlyIGRhbnMgdW5lIG5vdXZlbGxlIHBhZ2UnLFxuICAgICAgICBleGlzdGluZzogJ091dnJpciBkYW5zIGxhIHBhZ2UgbsKwe3t0YXJnZXRJbmRleH19JyxcbiAgICAgICAgZGVsZXRlOiAnU3VwcHJpbWVyJyxcbiAgICAgICAgbWF4aW1pemU6ICdNYXhpbWlzZXInLFxuICAgICAgICBub25lX2F1dG86ICdJbnPDqXJleiBpY2kgdm9zIHJlc3RpdHV0aW9ucycsXG4gICAgICAgIG5vbmVfbWFudWFsOiAnR2xpc3NlciAtIETDqXBvc2VyJyxcbiAgICAgICAgbG9hZGluZzogJ0NoYXJnZW1lbnQnXG4gICAgICB9LFxuICAgICAgbmFtZWRRdWVyeToge1xuICAgICAgICBkZWZhdWx0UnM6ICdSZWNoZXJjaGUgY291cmFudGUnLFxuICAgICAgICByZXN1bHRzQWNjdXJhdGU6ICd7e3RvdGFsfX0nLFxuICAgICAgICByZXN1bHRzTm9uQWNjdXJhdGU6ICd7e2Rpc3BsYXllZH19IHN1ciBlbnZpcm9uIHt7dG90YWx9fSdcbiAgICAgIH0sXG4gICAgICBtb2RhbFRpdGxlOiAnVm91bGV6LXZvdXMgY29uZmlybWVyID8nLFxuICAgICAgaXRlbUlkOiAnSWQnLFxuICAgICAgY2xhc3M6ICdDbGFzc2UnXG4gICAgfSxcbiAgICB2aWV3OiB7XG4gICAgICBuYW1lOiAnUGFnZSBuwrB7e3Jhbmt9fSdcbiAgICB9LFxuICAgIHRvb2xib3g6IHtcbiAgICAgIGRlZmF1bHRTaXplOiAnVGFpbGxlIGRlIHJlc3RpdHV0aW9uJyxcbiAgICAgIG1hbmlmZXN0OiB7XG4gICAgICAgIG5hbWU6ICdOb20gZGUgbGEgcHLDqXNlbnRhdGlvbicsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnRGVzY3JpcHRpb24gZGUgbGEgcHLDqXNlbnRhdGlvbicsXG4gICAgICAgIHNhdmVkOiAnUHLDqXNlbnRhdGlvbiB7e3ZpZXdJZH19IHNhdXZlZ2FyZMOpZScsXG4gICAgICAgIHNhdmVFcnJvckNvZGU6IHtcbiAgICAgICAgICBGT1JCSURERU46IFwiVm91cyBuJ8OqdGVzIHBhcyBsZSBwcm9wcmnDqXRhaXJlIGRlIGNldHRlIHByw6lzZW50YXRpb24gXCIsXG4gICAgICAgICAgTkFNRV9BTFJFQURZX1VTRUQ6ICdVbmUgcHLDqXNlbnRhdGlvbiBhdmVjIGxlIG5vbSBcInt7bmFtZX19XCIgZXhpc3RlIGTDqWrDoCwgdmV1aWxsZXogc8OpbGVjdGlvbm5lciB1biBhdXRyZSBub20uJyxcbiAgICAgICAgICBTQVZFX01FVEFEQVRBOiAnVmV1aWxsZXogc2F1dmVnYXJkZXIgbGEgcHJlc2VudGF0aW9uIGF2YW50IGRlIGNob2lzaXIgdW5lIHRow6ltYXRpcXVlLidcbiAgICAgICAgfSxcbiAgICAgICAgZGVmYXVsdGVkOiAnUHLDqXNlbnRhdGlvbiB7e3ZpZXdJZH19IG1hcnF1w6llIHBhciBkw6lmYXV0JyxcbiAgICAgICAgdW5kZWZhdWx0ZWQ6IFwiTGEgcHLDqXNlbnRhdGlvbiB7e3ZpZXdJZH19IG4nZXN0IHBsdXMgbWFycXXDqWUgcGFyIGTDqWZhdXRcIixcbiAgICAgICAgdmFsaWRhdGVkOiAnVmFsaWRlcicsXG4gICAgICAgIGNoZWNrOiAnRW5yZWdpc3RyZXInLFxuICAgICAgICBjbG9zZTogJ0FubnVsZXInLFxuICAgICAgICB2YWxpZGF0ZTogJ1ZhbGlkZXInXG4gICAgICB9LFxuICAgICAgY2F0YWxvZzoge1xuICAgICAgICB0aXRsZTogJ1BlcnNvbm5hbGlzw6lzJyxcbiAgICAgICAgbGFiZWw6ICdOb20nLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ0Rlc2NyaXB0aW9uJyxcbiAgICAgICAgaWNvbjogJ0ltYWdlJyxcbiAgICAgICAgZmlsdGVyOiB7XG4gICAgICAgICAgZGVsZXRlOiAnU3VwcHJpbWVyIGNlIGZpbHRyZScsXG4gICAgICAgICAgdHlwZTogJ0ZpbHRyZXIgcGFyIHR5cGUnLFxuICAgICAgICAgIG5hbWU6ICdGaWx0cmVyIHBhciBub20nXG4gICAgICAgIH0sXG4gICAgICAgIHNhdmVFcnJvckNvZGU6IHtcbiAgICAgICAgICBOQU1FX0FMUkVBRFlfVVNFRDogJ1VuZSByZXN0aXR1dGlvbiBhdmVjIGxlIG5vbSBcInt7bmFtZX19XCIgZXhpc3RlIGTDqWrDoCwgdmV1aWxsZXogc8OpbGVjdGlvbm5lciB1biBhdXRyZSBub20uJ1xuICAgICAgICB9LFxuICAgICAgICBzYXZlZDogJ1Byw6lzZW50YXRpb24ge3t2aWV3SWR9fSBzYXV2ZWdhcmTDqWUnXG4gICAgICB9LFxuICAgICAgZWRpdDogJ01vZGlmaWVyIGxhIGRpc3Bvc2l0aW9uJyxcbiAgICAgIGVkaXRPZmY6ICdWaXN1YWxpc2VyIGxhIGRpc3Bvc2l0aW9uJyxcbiAgICAgIGxhdW5jaDogJ05vdXZlbGxlIHBhZ2UnLFxuICAgICAgbGF1bmNoSW5kaWNhdGlvbjogJ091dnJpciBjZXR0ZSBwYWdlIGRhbnMgdW4nLFxuICAgICAgY2hvb3NlR3JpZDogJ0NoYW5nZXIgbGEgZ3JpbGxlJyxcbiAgICAgIGNsZWFyOiBcIlZpZGVyIGwnYWZmaWNoYWdlXCIsXG4gICAgICByZWZyZXNoOiAnQWN0dWFsaXNlcicsXG4gICAgICBhdXRvbWF0ZVJlZnJlc2g6IFwiQXV0b21hdGlzZXIgbCdhY3R1YWxpc2F0aW9uXCIsXG4gICAgICBvcHRpb25zOiAnT3B0aW9ucycsXG4gICAgICBjbG9zZTogJ0Zlcm1lcicsXG4gICAgICBoZWF0bWFwOiAnRnLDqXF1ZW50YXRpb24nLFxuICAgICAgYnViYmxlbWFwOiAnQnVsbGVzJyxcbiAgICAgIG1hcmtlcm1hcDogJ01hcnF1ZXVycycsXG4gICAgICBzaW1wbGVtYXA6ICdDYXJ0ZScsXG4gICAgICBtYXA6ICdDYXJ0ZScsXG4gICAgICB0YWJsZTogJ1RhYmxlYXUnLFxuICAgICAgZGV0YWlsOiAnRMOpdGFpbCcsXG4gICAgICBjaGFydDogJ0dyYXBoaXF1ZScsXG4gICAgICByZXN1bHRTZXQ6ICdSZWNoZXJjaGVzIG5vbW3DqWVzJyxcbiAgICAgIHNhdmVWaWV3OiAnRW5yZWdpc3RyZXIgc291cycsXG4gICAgICByZW5hbWU6ICdFbnJlZ2lzdHJlciBzb3VzJyxcbiAgICAgIHJlc3RvcmU6ICdSZXN0YXVyZXIgbGVzIHBhZ2VzJyxcbiAgICAgIHNhdmU6ICdFbnJlZ2lzdHJlcicsXG4gICAgICBkcmFnOiAnUmVzdGl0dXRpb24uLi4nLFxuICAgICAgZHJhZ0luZGljYXRpb246ICdJbnPDqXJlciB1bicsXG4gICAgICBiYXJjaGFydDogJ0JhcnJlcycsXG4gICAgICBoaXN0b2dyYW06ICdIaXN0b2dyYW1tZScsXG4gICAgICBsaW5lY2hhcnQ6ICdDb3VyYmUnLFxuICAgICAgcG9pbnRjaGFydDogJ1BvaW50cycsXG4gICAgICBhcmVhY2hhcnQ6ICdBaXJlJyxcbiAgICAgIGFyY2NoYXJ0OiAnQ2lyY3VsYWlyZScsXG4gICAgICByYWRhcmNoYXJ0OiAnUmFkYXInLFxuICAgICAgY2lyY2xlY2hhcnQ6ICdQYXF1ZXRzIGRlIGNlcmNsZXMnLFxuICAgICAgaWZyYW1lOiAnQXBwbGljYXRpb24gZXh0ZXJuZScsXG4gICAgICB2ZWdhOiAnR3JhcGhpcXVlIGF2YW5jw6knLFxuICAgICAgZ3JhcGg6ICdSZWxhdGlvbnMnLFxuICAgICAgcGxhY2Vob2xkZXI6ICcnLFxuICAgICAgc3ViOiB7XG4gICAgICAgIG1hcDogJ0NhcnRvZ3JhcGhpZScsXG4gICAgICAgIGNoYXJ0OiAnR3JhcGhpcXVlJyxcbiAgICAgICAgb3RoZXI6ICdBdXRyZSdcbiAgICAgIH0sXG4gICAgICB0aWxlOiAnVHVpbGVzJyxcbiAgICAgIG5vdzogXCJBdWpvdXJkJ2h1aVwiLFxuICAgICAgc2luY2VfZGF5OiAnSWwgeSBhIHt7ZGF5fX0gam91cnt7cGx1cmFsfX0nLFxuICAgICAgbGF5b3V0OiB7XG4gICAgICAgICcwJzogJ0NvbXBvc2l0aW9uIGxpYnJlJyxcbiAgICAgICAgJzBfZGV0YWlsbGVkJzpcbiAgICAgICAgICBcIkFmZmljaGFnZSBlbiBtb2RlIGxpYnJlLCBsYSB0YWlsbGUgZXQgbGUgcG9zaXRpb25uZW1lbnQgZGVzIHJlc3RpdHV0aW9ucyBzb250IGVudGnDqHJlbWVudCBwYXJhbcOpdHJhYmxlcyBwYXIgbCd1dGlsaXNhdGV1ci5cIixcbiAgICAgICAgJzEnOiAnUGxlaW4gw6ljcmFuJyxcbiAgICAgICAgJzFfZGV0YWlsbGVkJzpcbiAgICAgICAgICBcIkFmZmljaGFnZSBk4oCZdW5lIHNldWxlIHJlc3RpdHV0aW9uIHN1ciBsJ2Vuc2VtYmxlIGRlIGwnw6ljcmFuLCBsZSBwbGFjZW1lbnQgZXN0IGd1aWTDqSBwYXIgbGUgc3lzdMOobWUuXCIsXG4gICAgICAgICcxLzJ2JzogJzEvMiDDqWNyYW4gdmVydGljYWwnLFxuICAgICAgICAnMS8ydl9kZXRhaWxsZWQnOlxuICAgICAgICAgIFwiQWZmaWNoYWdlIGRlIDIgcmVzdGl0dXRpb25zIG1heGltdW0gc3VyIGwnw6ljcmFuIGTDqWNvdXDDqSBlbiBkZXV4IHpvbmVzIHZlcnRpY2FsZXMsIGwnYWpvdXQgZGUgcmVzdGl0dXRpb24gc2UgZmFpdCBkYW5zIGxlcyB6b25lcyB2aWRlcy4gTGUgcGxhY2VtZW50IGVzdCBndWlkw6kgcGFyIGxlIHN5c3TDqG1lLlwiLFxuICAgICAgICAnMS8yaCc6ICcxLzIgw6ljcmFuIGhvcml6b250YWwnLFxuICAgICAgICAnMS8yaF9kZXRhaWxsZWQnOlxuICAgICAgICAgIFwiQWZmaWNoYWdlIGRlIDIgcmVzdGl0dXRpb25zIG1heGltdW0gc3VyIGzigJnDqWNyYW4gZMOpY291cMOpIGVuIGRldXggem9uZXMgaG9yaXpvbnRhbGVzLCBsJ2Fqb3V0IGRlIHJlc3RpdHV0aW9uIHNlIGZhaXQgZGFucyBsZXMgem9uZXMgdmlkZXMuIExlIHBsYWNlbWVudCBlc3QgZ3VpZMOpIHBhciBsZSBzeXN0w6htZS5cIixcbiAgICAgICAgJzEvM3YnOiAnMS8zIMOpY3JhbiB2ZXJ0aWNhbCcsXG4gICAgICAgICcxLzN2X2RldGFpbGxlZCc6XG4gICAgICAgICAgXCJBZmZpY2hhZ2UgZGUgMyByZXN0aXR1dGlvbnMgbWF4aW11bSBzdXIgbOKAmcOpY3JhbiBkw6ljb3Vww6kgZW4gdHJvaXMgem9uZXMgdmVydGljYWxlcywgbCdham91dCBkZSByZXN0aXR1dGlvbiBzZSBmYWl0IGRhbnMgbGVzIHpvbmVzIHZpZGVzLiBMZSBwbGFjZW1lbnQgZXN0IGd1aWTDqSBwYXIgbGUgc3lzdMOobWUuXCIsXG4gICAgICAgICcxLzNoJzogJzEvMyDDqWNyYW4gaG9yaXpvbnRhbCcsXG4gICAgICAgICcxLzNoX2RldGFpbGxlZCc6XG4gICAgICAgICAgXCJBZmZpY2hhZ2UgZGUgMyByZXN0aXR1dGlvbnMgbWF4aW11bSBzdXIgbOKAmcOpY3JhbiBkw6ljb3Vww6kgZW4gdHJvaXMgem9uZXMgaG9yaXpvbnRhbGVzLCBsJ2Fqb3V0IGRlIHJlc3RpdHV0aW9uIHNlIGZhaXQgZGFucyBsZXMgem9uZXMgdmlkZXMuIExlIHBsYWNlbWVudCBlc3QgZ3VpZMOpIHBhciBsZSBzeXN0w6htZS5cIixcbiAgICAgICAgJzEvNCc6ICcxLzQgw6ljcmFuJyxcbiAgICAgICAgJzEvNF9kZXRhaWxsZWQnOlxuICAgICAgICAgIFwiQWZmaWNoYWdlIGRlIDQgcmVzdGl0dXRpb25zIG1heGltdW0gc3VyIGzigJnDqWNyYW4gZMOpY291cMOpIGVuIHF1YXRyZSB6b25lcyAsIGwnYWpvdXQgZGUgcmVzdGl0dXRpb24gc2UgZmFpdCBkYW5zIGxlcyB6b25lcyB2aWRlcy4gTGUgcGxhY2VtZW50IGVzdCBndWlkw6kgcGFyIGxlIHN5c3TDqG1lLlwiXG4gICAgICB9XG4gICAgfSxcbiAgICBtYW5pZmVzdDoge1xuICAgICAgbmFtZTogJ05vbScsXG4gICAgICBkZXNjcmlwdGlvbjogJ0Rlc2NyaXB0aW9uJyxcbiAgICAgIGNyZWF0aW9uOiAnRGF0ZSBkZSBjcsOpYXRpb24nLFxuICAgICAgbW9kaWZpY2F0aW9uOiAnRGF0ZSBkZSBtb2RpZmljYXRpb24nLFxuICAgICAgYWN0aW9uczogJ0FjdGlvbnMnLFxuICAgICAgaW1wb3J0OiAnSW1wb3J0ZXInLFxuICAgICAgaW1wb3J0QWx0OiAnSW1wb3J0ZXIgdW5lIHByw6lzZW50YXRpb24nLFxuICAgICAgdGl0bGU6ICdQcsOpc2VudGF0aW9ucycsXG4gICAgICBnZXQ6IHtcbiAgICAgICAgZXJyb3JGcm9udDogJ0VycmV1ciBjbGllbnQgOiB7e21zZ319JyxcbiAgICAgICAgZXJyb3JCYWNrOiAnRXJyZXVyIHNlcnZldXIgZGUgY29kZSBbe3tjb2RlfX1dJ1xuICAgICAgfSxcbiAgICAgIGRlZmF1bHQ6ICdEw6lmaW5pciBwYXIgZMOpZmF1dCcsXG4gICAgICBkb3dubG9hZDogJ1TDqWzDqWNoYXJnZXInLFxuICAgICAgbG9hZDogJ0NoYXJnZXInLFxuICAgICAgZGVsZXRlOiAnU3VwcHJpbWVyJyxcbiAgICAgIGRlbGV0ZUVycm9yOlxuICAgICAgICBcIlJlY2hlcmNoZSB1dGlsaXPDqWUgZGFucyB1bmUgb3UgcGx1c2lldXJzIHJlc3RpdHV0aW9uKHMpLCB2ZXVpbGxleiBzdXBwcmltZXIgbGVzIHV0aWxpc2F0aW9ucyBkJ2Fib3JkXCJcbiAgICB9LFxuICAgIGZvcm1hdDoge1xuICAgICAgZGF0ZTogJ2RkL01NL3l5eXknLFxuICAgICAgZGF0ZXRpbWU6ICdkZC9NTS95eXl5IEhIOm1tOnNzJyxcbiAgICAgIGRlY2ltYWw6ICcsJyxcbiAgICAgIHRob3VzYW5kczogJyAnXG4gICAgfSxcbiAgICBjb250ZXh0OiB7XG4gICAgICBhZGQ6ICdBam91dGVyIMOgIGxhIHPDqWxlY3Rpb24nLFxuICAgICAgcmVtb3ZlOiAnRW5sZXZlciBkZSBsYSBzw6lsZWN0aW9uJyxcbiAgICAgIGxpbms6ICdMaWVyIMOgIGxhIHPDqWxlY3Rpb24nLFxuICAgICAgaW52ZXJ0OiAnSW52ZXJzZXIgbGEgc8OpbGVjdGlvbicsXG4gICAgICBwcm94aW1pdHk6ICdSZWNoZXJjaGVyIGxlcyBvYmpldHMgbGnDqXMnLFxuICAgICAgZXhwbG9yZTogJ091dnJpciBsYSByZXN0aXR1dGlvbiBSZWxhdGlvbnMnLFxuICAgICAgZGV0YWlsOiAnT3V2cmlyIGxhIHJlc3RpdHV0aW9uIETDqXRhaWwnLFxuICAgICAgZmx5aW5nRGV0YWlsOiBcIkNvbnN1bHRlciBsJ29iamV0XCIsXG4gICAgICBhZGRyZXNzRnJvbUxvYzogXCJPYnRlbmlyIGwnYWRyZXNzZVwiLFxuICAgICAgZXJyb3JTZWFyY2hBZGRyZXNzOiAnQWRyZXNzZSBpbnRyb3V2YWJsZScsXG4gICAgICBjYW5jZWw6ICdBbm51bGVyJyxcbiAgICAgIGNyZWF0ZTogJ0Nyw6llcicsXG4gICAgICBjcmVhdGVPYmplY3Q6IHtcbiAgICAgICAgdGl0bGU6IHtcbiAgICAgICAgICBvYmplY3Q6ICdDcsOpZXIgdW4gb2JqZXQnLFxuICAgICAgICAgIGxpbms6ICdDcsOpZXIgdW5lIHJlbGF0aW9uJyxcbiAgICAgICAgICBpbnZlcnNpb246ICdJbnZlcnNlciBsYSByZWxhdGlvbicsXG4gICAgICAgICAgbGlua2VkT2JqZWN0OiAnQ3LDqWVyIHVuIG9iamV0IGxpw6knXG4gICAgICAgIH0sXG4gICAgICAgIGNsYXNzOiBcIkNsYXNzZSBkZSBsJ29iamV0XCIsXG4gICAgICAgIGxpbms6ICdSZWxhdGlvbiBhdmVjIGxlIG5vdXZlbCBvYmpldCcsXG4gICAgICAgIGNyZWF0ZWQ6IFwiTCdvYmpldCBhIMOpdMOpIGNyw6nDqVwiLFxuICAgICAgICBkZXRhaWxzOiAnVm9pciBsZSBkw6l0YWlsJyxcbiAgICAgICAgYWRkTXVsdGlGaWVsZDogJ0Fqb3V0ZXIgdW5lIHZhbGV1ciBkZSB7e25hbWV9fSdcbiAgICAgIH1cbiAgICB9LFxuICAgIGFjdGlvbjoge1xuICAgICAgY2xvc2U6ICdGZXJtZXInLFxuICAgICAgY2xvc2VQYW5lbDogJ0Zlcm1lciBsZSBwYW5uZWF1JyxcbiAgICAgIGRlbGV0ZTogJ1N1cHByaW1lcicsXG4gICAgICBlZGl0OiAnRWRpdGVyJyxcbiAgICAgIGVkaXRQcm9maWw6ICdFZGl0ZXIgbGUgcHJvZmlsJyxcbiAgICAgIGNob2ljZTogJ0Nob2lzaXIgdW4gLi4uLicsXG4gICAgICBjaG9pY2VJbkxpc3Q6ICdDaG9pc2lyIHVuIMOpbMOpbWVudCBkYW5zIGxhIGxpc3RlJyxcbiAgICAgIHRleHQ6ICdSZW1wbGlzc2VyIGxlIGNoYW1wJyxcbiAgICAgIHNvcnRhYmxlQ29sdW1uSGVhZGVyOiBcIlV0aWxpc2V6IGxlcyBib3V0b25zIGQnZW4tdMOqdGUgZGUgY29sb25uZSBwb3VyIHRyaWVyLlwiLFxuICAgICAgdmlld0RldGFpbHM6ICdWb2lyIGxlcyBkw6l0YWlscycsXG4gICAgICBzZWxlY3REYXRlOiAnQ2hvaXNpciB1bmUgZGF0ZScsXG4gICAgICBvcGVuc0luTmV3VGFiOiBcIlMnb3V2cmUgZGFucyB1bmUgbm91dmVsbGUgZmVuw6p0cmVcIixcbiAgICAgIHNraXBMaW5rOiAnQWxsZXIgYXUgY29udGVudScsXG4gICAgICBzZWxlY3RQaWN0dXJlOiAnU8OpbGVjdGlvbm5lciB1bmUgaW1hZ2UnLFxuICAgICAgbW92ZURvd246ICdEw6lwbGFjZXIgdmVycyBsZSBiYXMnLFxuICAgICAgbW92ZVVwOiAnRMOpcGxhY2VyIHZlcnMgbGUgaGF1dCcsXG4gICAgICBleHBvcnRBc0Zvcm1hdDogJ0V4cG9ydGVyIGF1IGZvcm1hdCcsXG4gICAgICBvcGVuTWVudVdpZGdldDogJ01lbnUgZGUgbGEgcmVzdGl0dXRpb24nLFxuICAgICAgc2VhcmNoOiAnUmVjaGVyY2hlcicsXG4gICAgICB1cGxvYWQ6ICdBam91dGVyIHVuZSBpbWFnZScsXG4gICAgICBuZXh0OiAnU3VpdmFudCcsXG4gICAgICBiYWNrOiAnUmV0b3VyJyxcbiAgICAgIGZpbHRlckJ5VHlwZTogJ0ZpbHRyZXIgcGFyIHR5cGUnLFxuICAgICAgZWRpdE1ldGFkYXRhOiAnTW9kaWZpZXIgbGEgbcOpdGFkb25uw6llJyxcbiAgICAgIGFkZE1ldGFkYXRhOiAnQWpvdXRlciBsYSBtw6l0YWRvbm7DqWUnXG4gICAgfSxcbiAgICBzbmFjazoge1xuICAgICAgZGVmYXVsdDogJ1ZlZ2EgYSByZW5jb250csOpIHVuZSBlcnJldXIgZW4gdXRpbGlzYW50IHZvcyBkb25uw6llcyBldCBwYXJhbcOpdHJhZ2UuJyxcbiAgICAgIG1pc3NpbmdQYXJlbnQ6IFwiVW4gbm9ldWQgZXN0IG1hbnF1YW50IGRhbnMgbCdhcmJyZSBkZSByZXByw6lzZW50YXRpb24uIE1lcmNpIGRlIGNvcnJpZ2VyIHZvcyBkb25uw6llcy5cIixcbiAgICAgIG1pc3NpbmdWYWx1ZTogXCJVbiBpdGVtIMOgIGFmZmljaGVyIG5lIHBvc3PDqGRlIHBhcyBsJ2F0dHJpYnV0IMOgIGFmZmljaGVyLiBNZXJjaSBkZSBjb3JyaWdlciB2b3MgZG9ubsOpZXMuXCIsXG4gICAgICBlbXB0eVZhbHVlczogXCJMZXMgdmFsZXVycyBkZSBsJ2F0dHJpYnV0IMOgIGFmZmljaGVyIG5lIHBldXZlbnQgw6p0cmUgdG91dGVzIG51bGxlcy4gTWVyY2kgZGUgY29ycmlnZXIgdm9zIGRvbm7DqWVzLlwiLFxuICAgICAgcGFnZXNDaGFuZ2VkOiAnQXR0ZW50aW9uLCBsZSBub21icmUgZGUgcGFnZXMgZGUgdm90cmUgcHLDqXNlbnRhdGlvbiBhIGNoYW5nw6ksIHF1ZSBzb3VoYWl0ZXotdm91cyBmYWlyZSA/JyxcbiAgICAgIGltYWdlTmFtZUFscmVhZHlVc2VkOiAnTGUgbm9tIGRlIGNldHRlIGltYWdlIGVzdCBkw6lqw6AgdXRpbGlzw6knXG4gICAgfSxcbiAgICB0aGVtZToge1xuICAgICAgZWRpdElucHV0OiB7XG4gICAgICAgIHRvZ2dsZTogJ0VkaXRlcidcbiAgICAgIH0sXG4gICAgICBwcmV2aW91c01vbnRoOiAnTW9pcyBwcsOpY8OpZGVudCcsXG4gICAgICBuZXh0TW9udGg6ICdNb2lzIHN1aXZhbnQnLFxuICAgICAgd2Vla2RheXM6IHtcbiAgICAgICAgMDogJ0x1bmRpJyxcbiAgICAgICAgMTogJ01hcmRpJyxcbiAgICAgICAgMjogJ01lcmNyZWRpJyxcbiAgICAgICAgMzogJ0pldWRpJyxcbiAgICAgICAgNDogJ1ZlbmRyZWRpJyxcbiAgICAgICAgNTogJ1NhbWVkaScsXG4gICAgICAgIDY6ICdEaW1hbmNoZSdcbiAgICAgIH0sXG4gICAgICBzaG9ydFdlZWtkYXlzOiB7XG4gICAgICAgIDA6ICdMdScsXG4gICAgICAgIDE6ICdNYScsXG4gICAgICAgIDI6ICdNZScsXG4gICAgICAgIDM6ICdKZScsXG4gICAgICAgIDQ6ICdWZScsXG4gICAgICAgIDU6ICdTYScsXG4gICAgICAgIDY6ICdEaSdcbiAgICAgIH0sXG4gICAgICBtb250aHM6IHtcbiAgICAgICAgMDogJ0phbnZpZXInLFxuICAgICAgICAxOiAnRsOpdnJpZXInLFxuICAgICAgICAyOiAnTWFycycsXG4gICAgICAgIDM6ICdBdnJpbCcsXG4gICAgICAgIDQ6ICdNYWknLFxuICAgICAgICA1OiAnSnVpbicsXG4gICAgICAgIDY6ICdKdWlsbGV0JyxcbiAgICAgICAgNzogJ0Fvw7t0JyxcbiAgICAgICAgODogJ1NlcHRlbWJyZScsXG4gICAgICAgIDk6ICdPY3RvYnJlJyxcbiAgICAgICAgMTA6ICdOb3ZlbWJyZScsXG4gICAgICAgIDExOiAnRMOpY2VtYnJlJ1xuICAgICAgfVxuICAgIH0sXG4gICAgc2hhcmU6IHtcbiAgICAgIHByaXZhdGU6ICdQcml2w6knLFxuICAgICAgcHVibGljOiAnUHVibGljJyxcbiAgICAgIHJlc3RyaWN0ZWQ6ICdSZXN0cmVpbnQnLFxuICAgICAgdHlwZTogJ1Zpc2liaWxpdMOpJyxcbiAgICAgIHVzZXJzOiAnVXRpbGlzYXRldXJzIGF1dG9yaXPDqXMnXG4gICAgfSxcbiAgICBob21lcGFnZToge1xuICAgICAgbWVudToge1xuICAgICAgICBtb2RlbDogJ01vZMOobGUgZGUgZG9ubsOpZXMnLFxuICAgICAgICBkYXRhOiAnQWNjw6hzIGF1eCBkb25uw6llcydcbiAgICAgIH1cbiAgICB9LFxuICAgIG1ldGFkYXRhOiB7XG4gICAgICB2aWV3OiAnQ29uc3VsdGVyIGxlcyBtZXRhZG9ubsOpZXMnXG4gICAgfSxcbiAgICBlcnJvcnM6IHtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgICdVbmUgZXJyZXVyIGVzdCBzdXJ2ZW51ZS4gVmV1aWxsZXogdsOpcmlmaWV6IGxlcyBpbmZvcm1hdGlvbnMgb3UgY29udGFjdGVyIHZvdHJlIGFkbWluaXN0cmF0ZXVyIHNpIGxlIHByb2Jsw6htZSBwZXJzaXN0ZScsXG4gICAgICBjb2Rlczoge1xuICAgICAgICAwOiAnVW5lIGVycmV1ciBlc3Qgc3VydmVudWUgYXUgbml2ZWF1IG5hdmlnYXRldXIuIENlbGEgcGV1dC3DqnRyZSB1bmUgZXJyZXVyIENPUlMsIGRlIHLDqXNlYXUgLi4uIExhIHJlc3NvdXJjZSBuZSBwZXV0IHBhcyDDqnRyZSByw6ljdXDDqXLDqWUuJyxcbiAgICAgICAgNDAwOiAnVW5lIGVycmV1ciBlc3Qgc3VydmVudWUuJyxcbiAgICAgICAgNDAxOiAnVm90cmUgc2Vzc2lvbiBlc3QgaW52YWxpZGUuIEVzc2F5ZXogZGUgdm91cyByZWNvbm5lY3RlciAhJyxcbiAgICAgICAgNDAzOiBcIlZvdXMgbidhdmV6IHBhcyBsZXMgZHJvaXRzIHBvdXIgY29uc3VsdGVyIGNldHRlIHJlc3NvdXJjZVwiLFxuICAgICAgICA0MDQ6IFwiTGEgcmVzc291cmNlIGRlbWFuZMOpZSBuJ2V4aXN0ZSBwYXNcIixcbiAgICAgICAgNDA5OiAnVW5lIHJlc3NvdXJjZSBzaW1pbGFpcmUgZXhpc3RlIGTDqWrDoCcsXG4gICAgICAgIDUwMDogJ1VuZSBlcnJldXIgZXN0IHN1cnZlbnVlLicsXG4gICAgICAgIDUwMzogJ0xlIHNlcnZpY2UgZXN0IGFjdHVlbGxlbWVudCBpbmRpc3BvbmlibGUuIFLDqWVzc2F5ZXIgdWx0w6lyaWV1cmVtZW50ICEnXG4gICAgICB9XG4gICAgfSxcbiAgICBmaWx0ZXJzOiB7XG4gICAgICBsYWJlbDogJ1BhcmFtw6l0cmVyIGxlcyBmaWx0cmVzJyxcbiAgICAgIG5vQXR0cmlidXRlczogXCJMYSBwcsOpc2VudGF0aW9uIGVuIGNvdXJzIG5lIGRpc3Bvc2UgZCdhdWN1bmUgYXR0cmlidXQgc3VyIGxlcXVlbCBmaWx0cmVyXCIsXG4gICAgICBub0ZpbHRlcnM6IFwiVm91cyBuJ2F2ZXogcGFzIGVuY29yZSBwYXJhbcOpdHLDqSBkZSBmaWx0cmUuXCIsXG4gICAgICBjbGVhcjogJ0VmZmFjZXInLFxuICAgICAgbGlzdDoge1xuICAgICAgICBhdHRyaWJ1dGVzOiAnQXR0cmlidXRzOiAnLFxuICAgICAgICBhZGQ6ICdDcsOpZXIgdW4gZmlsdHJlJyxcbiAgICAgICAgZGVsZXRlOiAnU3VwcHJpbWVyJyxcbiAgICAgICAgbW9kaWZ5OiAnTW9kaWZpZXInXG4gICAgICB9LFxuICAgICAgY3JlYXRpb246IHtcbiAgICAgICAgY3JlYXRlOiAnTm91dmVhdSBmaWx0cmUnLFxuICAgICAgICB1cGRhdGU6ICdNb2RpZmllciB1biBmaWx0cmUnLFxuICAgICAgICBuYW1lOiAnTm9tIGR1IGZpbHRyZScsXG4gICAgICAgIHR5cGU6ICdUeXBlIGR1IGZpbHRyZScsXG4gICAgICAgIGZpbHRlcjogJ0ZpbHRyZScsXG4gICAgICAgIGF0dHJpYnV0ZXM6ICdBdHRyaWJ1dHMnLFxuICAgICAgICB2YWx1ZTogJ1ZhbGV1cicsXG4gICAgICAgIHZhbHVlczogJ1ZhbGV1cnMnLFxuICAgICAgICB2YWxpZGF0ZTogJ1ZhbGlkZXInXG4gICAgICB9LFxuICAgICAgYXR0cmlidXRlczoge1xuICAgICAgICBkYXRhc291cmNlOiAnRGF0YXNvdXJjZScsXG4gICAgICAgIGNsYXNzOiAnQ2xhc3NlJyxcbiAgICAgICAgb3BlcmF0b3I6ICdPcMOpcmF0ZXVyJ1xuICAgICAgfSxcbiAgICAgIHR5cGVzOiB7XG4gICAgICAgIHRleHQ6ICdUZXh0ZScsXG4gICAgICAgIGRhdGU6ICdEYXRlJyxcbiAgICAgICAgbGlzdDogJ0xpc3RlJyxcbiAgICAgICAgbnVtYmVyOiAnTnVtw6lyaXF1ZSdcbiAgICAgIH1cbiAgICB9XG4gIH1cbn07XG4iXX0=
@@ -2,17 +2,23 @@ import { Inject, Injectable, InjectionToken } from '@angular/core';
2
2
  import { BehaviorSubject, from, map, of } from 'rxjs';
3
3
  import { WidgetFillerComponent } from '../widget-filler/widget-filler.component';
4
4
  import { WidgetPlaceholderComponent } from '../widget-placeholder/widget-placeholder.component';
5
+ import { DatasourceUtils } from '../../../../core/store/data-source/datasource-utils';
6
+ import { DataSourceSelectors } from '../../../../core/store/data-source/data-source.selectors';
5
7
  import * as i0 from "@angular/core";
8
+ import * as i1 from "@ngrx/store";
6
9
  export const WIDGET_DEFINITION = new InjectionToken('Widgets definition');
7
10
  export class WidgetFactoryService {
8
- constructor(injector, reference) {
11
+ constructor(injector, reference, store) {
9
12
  this.injector = injector;
13
+ this.store = store;
10
14
  this.reference$ = new BehaviorSubject({
11
15
  placeholder: { name: 'placeholder', component: WidgetPlaceholderComponent },
12
16
  filler: { name: 'filler', component: WidgetFillerComponent }
13
17
  });
14
18
  this.moduleRefCache = {};
19
+ this.datasources = [];
15
20
  this.putDefinitions(reference);
21
+ this.store.select(DataSourceSelectors.getDataSources).subscribe((datasources) => (this.datasources = datasources));
16
22
  }
17
23
  resolveComponent(manifest) {
18
24
  if (this.moduleRefCache[manifest.type]) {
@@ -45,7 +51,20 @@ export class WidgetFactoryService {
45
51
  isModuleLoaded(type) {
46
52
  return this.reference$.pipe(map((componentDefs) => !!componentDefs[type]));
47
53
  }
48
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: WidgetFactoryService, deps: [{ token: i0.Injector }, { token: WIDGET_DEFINITION }], target: i0.ɵɵFactoryTarget.Injectable }); }
54
+ datasourcesToAutoLoad(manifest) {
55
+ const widgetDefinition = this.reference$.getValue()[manifest.type];
56
+ const datasourcesArray = Array.isArray(manifest.datasource ?? [])
57
+ ? (manifest.datasource ?? [])
58
+ : [manifest.datasource];
59
+ return datasourcesArray.filter((datasource) => {
60
+ const matching = this.datasources.find((ds) => ds.id === datasource);
61
+ return (widgetDefinition.autoLoadDatasource === undefined ||
62
+ widgetDefinition.autoLoadDatasource === 'all' ||
63
+ (widgetDefinition.autoLoadDatasource === 'geo' && DatasourceUtils.isGeo(matching)) ||
64
+ (widgetDefinition.autoLoadDatasource === 'not-geo' && !DatasourceUtils.isGeo(matching)));
65
+ });
66
+ }
67
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: WidgetFactoryService, deps: [{ token: i0.Injector }, { token: WIDGET_DEFINITION }, { token: i1.Store }], target: i0.ɵɵFactoryTarget.Injectable }); }
49
68
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: WidgetFactoryService, providedIn: 'root' }); }
50
69
  }
51
70
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: WidgetFactoryService, decorators: [{
@@ -56,5 +75,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImpor
56
75
  }], ctorParameters: function () { return [{ type: i0.Injector }, { type: undefined, decorators: [{
57
76
  type: Inject,
58
77
  args: [WIDGET_DEFINITION]
59
- }] }]; } });
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWZhY3Rvcnkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2xpYi9kYXNoYm9hcmQvY29tcG9uZW50cy93aWRnZXRzL3dpZGdldC1pbnN0YW5jaWF0b3Ivd2lkZ2V0LWZhY3Rvcnkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQWtCLE1BQU0sZUFBZSxDQUFDO0FBQ25GLE9BQU8sRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHbEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDakYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7O0FBR2hHLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLElBQUksY0FBYyxDQUFTLG9CQUFvQixDQUFDLENBQUM7QUFLbEYsTUFBTSxPQUFPLG9CQUFvQjtJQU8vQixZQUNVLFFBQWtCLEVBQ0MsU0FBOEM7UUFEakUsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQVA1QixlQUFVLEdBQUcsSUFBSSxlQUFlLENBQXNDO1lBQ3BFLFdBQVcsRUFBRSxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLDBCQUEwQixFQUFFO1lBQzNFLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLHFCQUFxQixFQUFFO1NBQzdELENBQUMsQ0FBQztRQUNILG1CQUFjLEdBQUcsRUFBMkQsQ0FBQztRQU0zRSxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxRQUF3QjtRQUN2QyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3RDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7U0FDL0M7UUFDRCxJQUFJLENBQUMsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDM0QsYUFBYTtZQUNiLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLFNBQVMsRUFBRTtnQkFDaEUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQ2hDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDekMsQ0FBQyxTQUFTLENBQUM7Z0JBQ1osT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQzthQUMvQztpQkFBTTtnQkFDTCxPQUFPLElBQUksQ0FDUixJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQTBCLENBQUMsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUU7b0JBQ3JGLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7b0JBQ3ZELE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzVDLENBQUMsQ0FBQyxDQUNILENBQUM7YUFDSDtTQUNGO2FBQU07WUFDTCxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FDaEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxhQUFhLENBQ3pDLENBQUMsU0FBUyxDQUFDO1lBQ1osT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztTQUMvQztJQUNILENBQUM7SUFFTyxjQUFjLENBQUMsV0FBZ0Q7UUFDckUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUM7WUFDbkIsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRTtZQUM3QixHQUFHLFdBQVc7U0FDZixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsY0FBYyxDQUFDLElBQVk7UUFDekIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzdFLENBQUM7OEdBbERVLG9CQUFvQiwwQ0FTckIsaUJBQWlCO2tIQVRoQixvQkFBb0IsY0FGbkIsTUFBTTs7MkZBRVAsb0JBQW9CO2tCQUhoQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBVUksTUFBTTsyQkFBQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIEluamVjdGlvblRva2VuLCBJbmplY3RvciwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBmcm9tLCBtYXAsIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBXaWRnZXRNYW5pZmVzdCB9IGZyb20gJy4uLy4uLy4uLy4uL2NvcmUvbW9kZWwvbWFuaWZlc3QuaW50ZXJmYWNlJztcbmltcG9ydCB7IEJhc2VXaWRnZXRDb21wb25lbnQgfSBmcm9tICcuLi9iYXNlLXdpZGdldC5jb21wb25lbnQnO1xuaW1wb3J0IHsgV2lkZ2V0RmlsbGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vd2lkZ2V0LWZpbGxlci93aWRnZXQtZmlsbGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBXaWRnZXRQbGFjZWhvbGRlckNvbXBvbmVudCB9IGZyb20gJy4uL3dpZGdldC1wbGFjZWhvbGRlci93aWRnZXQtcGxhY2Vob2xkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFdpZGdldERlZmluaXRpb24sIFdpZGdldExhenlEZWZpbml0aW9uLCBXaWRnZXRTdGF0aWNEZWZpbml0aW9uIH0gZnJvbSAnLi93aWRnZXRzLWRlZmluaXRpb24ubW9kZWwnO1xuXG5leHBvcnQgY29uc3QgV0lER0VUX0RFRklOSVRJT04gPSBuZXcgSW5qZWN0aW9uVG9rZW48c3RyaW5nPignV2lkZ2V0cyBkZWZpbml0aW9uJyk7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFdpZGdldEZhY3RvcnlTZXJ2aWNlIHtcbiAgcmVmZXJlbmNlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8eyBba2V5OiBzdHJpbmddOiBXaWRnZXREZWZpbml0aW9uIH0+KHtcbiAgICBwbGFjZWhvbGRlcjogeyBuYW1lOiAncGxhY2Vob2xkZXInLCBjb21wb25lbnQ6IFdpZGdldFBsYWNlaG9sZGVyQ29tcG9uZW50IH0sXG4gICAgZmlsbGVyOiB7IG5hbWU6ICdmaWxsZXInLCBjb21wb25lbnQ6IFdpZGdldEZpbGxlckNvbXBvbmVudCB9XG4gIH0pO1xuICBtb2R1bGVSZWZDYWNoZSA9IHt9IGFzIHsgW21hbmlmZXN0VHlwZTogc3RyaW5nXTogVHlwZTxCYXNlV2lkZ2V0Q29tcG9uZW50PiB9O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIEBJbmplY3QoV0lER0VUX0RFRklOSVRJT04pIHJlZmVyZW5jZTogeyBba2V5OiBzdHJpbmddOiBXaWRnZXREZWZpbml0aW9uIH1cbiAgKSB7XG4gICAgdGhpcy5wdXREZWZpbml0aW9ucyhyZWZlcmVuY2UpO1xuICB9XG5cbiAgcmVzb2x2ZUNvbXBvbmVudChtYW5pZmVzdDogV2lkZ2V0TWFuaWZlc3QpIHtcbiAgICBpZiAodGhpcy5tb2R1bGVSZWZDYWNoZVttYW5pZmVzdC50eXBlXSkge1xuICAgICAgcmV0dXJuIG9mKHRoaXMubW9kdWxlUmVmQ2FjaGVbbWFuaWZlc3QudHlwZV0pO1xuICAgIH1cbiAgICBpZiAoISFtYW5pZmVzdCAmJiB0aGlzLnJlZmVyZW5jZSQuZ2V0VmFsdWUoKVttYW5pZmVzdC50eXBlXSkge1xuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgaWYgKHRoaXMucmVmZXJlbmNlJC5nZXRWYWx1ZSgpW21hbmlmZXN0LnR5cGVdLmxvYWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLm1vZHVsZVJlZkNhY2hlW21hbmlmZXN0LnR5cGVdID0gKFxuICAgICAgICAgIHRoaXMucmVmZXJlbmNlJC5nZXRWYWx1ZSgpW21hbmlmZXN0LnR5cGVdIGFzIFdpZGdldFN0YXRpY0RlZmluaXRpb25cbiAgICAgICAgKS5jb21wb25lbnQ7XG4gICAgICAgIHJldHVybiBvZih0aGlzLm1vZHVsZVJlZkNhY2hlW21hbmlmZXN0LnR5cGVdKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBmcm9tKFxuICAgICAgICAgICh0aGlzLnJlZmVyZW5jZSQuZ2V0VmFsdWUoKVttYW5pZmVzdC50eXBlXSBhcyBXaWRnZXRMYXp5RGVmaW5pdGlvbikubG9hZCgpLnRoZW4oKGZuKSA9PiB7XG4gICAgICAgICAgICB0aGlzLm1vZHVsZVJlZkNhY2hlW21hbmlmZXN0LnR5cGVdID0gZm4odGhpcy5pbmplY3Rvcik7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5tb2R1bGVSZWZDYWNoZVttYW5pZmVzdC50eXBlXTtcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm1vZHVsZVJlZkNhY2hlW21hbmlmZXN0LnR5cGVdID0gKFxuICAgICAgICB0aGlzLnJlZmVyZW5jZSQuZ2V0VmFsdWUoKVsncGxhY2Vob2xkZXInXSBhcyBXaWRnZXRTdGF0aWNEZWZpbml0aW9uXG4gICAgICApLmNvbXBvbmVudDtcbiAgICAgIHJldHVybiBvZih0aGlzLm1vZHVsZVJlZkNhY2hlW21hbmlmZXN0LnR5cGVdKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHB1dERlZmluaXRpb25zKGRlZmluaXRpb25zOiB7IFtrZXk6IHN0cmluZ106IFdpZGdldERlZmluaXRpb24gfSkge1xuICAgIHRoaXMucmVmZXJlbmNlJC5uZXh0KHtcbiAgICAgIC4uLnRoaXMucmVmZXJlbmNlJC5nZXRWYWx1ZSgpLFxuICAgICAgLi4uZGVmaW5pdGlvbnNcbiAgICB9KTtcbiAgfVxuXG4gIGlzTW9kdWxlTG9hZGVkKHR5cGU6IHN0cmluZyk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLnJlZmVyZW5jZSQucGlwZShtYXAoKGNvbXBvbmVudERlZnMpID0+ICEhY29tcG9uZW50RGVmc1t0eXBlXSkpO1xuICB9XG59XG4iXX0=
78
+ }] }, { type: i1.Store }]; } });
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWZhY3Rvcnkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2xpYi9kYXNoYm9hcmQvY29tcG9uZW50cy93aWRnZXRzL3dpZGdldC1pbnN0YW5jaWF0b3Ivd2lkZ2V0LWZhY3Rvcnkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQWtCLE1BQU0sZUFBZSxDQUFDO0FBQ25GLE9BQU8sRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHbEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDakYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFFaEcsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBEQUEwRCxDQUFDOzs7QUFJL0YsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxjQUFjLENBQVMsb0JBQW9CLENBQUMsQ0FBQztBQUtsRixNQUFNLE9BQU8sb0JBQW9CO0lBUS9CLFlBQ1UsUUFBa0IsRUFDQyxTQUE4QyxFQUNqRSxLQUFZO1FBRlosYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUVsQixVQUFLLEdBQUwsS0FBSyxDQUFPO1FBVnRCLGVBQVUsR0FBRyxJQUFJLGVBQWUsQ0FBc0M7WUFDcEUsV0FBVyxFQUFFLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsMEJBQTBCLEVBQUU7WUFDM0UsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUscUJBQXFCLEVBQUU7U0FDN0QsQ0FBQyxDQUFDO1FB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QUFDLFFBQVEsQ0FBQyxVQUFVLElBQUksRUFBRSxDQUFjO1lBQzNDLENBQUMsQ0FBRSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQWMsQ0FBQztRQUN4QyxPQUFPLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFO1lBQzVDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLFVBQVUsQ0FBRSxDQUFDO1lBQ3RFLE9BQU8sQ0FDTCxnQkFBZ0IsQ0FBQyxrQkFBa0IsS0FBSyxTQUFTO2dCQUNqRCxnQkFBZ0IsQ0FBQyxrQkFBa0IsS0FBSyxLQUFLO2dCQUM3QyxDQUFDLGdCQUFnQixDQUFDLGtCQUFrQixLQUFLLEtBQUssSUFBSSxlQUFlLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUNsRixDQUFDLGdCQUFnQixDQUFDLGtCQUFrQixLQUFLLFNBQVMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FDeEYsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs4R0FyRVUsb0JBQW9CLDBDQVVyQixpQkFBaUI7a0hBVmhCLG9CQUFvQixjQUZuQixNQUFNOzsyRkFFUCxvQkFBb0I7a0JBSGhDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFXSSxNQUFNOzJCQUFDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4sIEluamVjdG9yLCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGZyb20sIG1hcCwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFdpZGdldE1hbmlmZXN0IH0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS9tb2RlbC9tYW5pZmVzdC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQmFzZVdpZGdldENvbXBvbmVudCB9IGZyb20gJy4uL2Jhc2Utd2lkZ2V0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBXaWRnZXRGaWxsZXJDb21wb25lbnQgfSBmcm9tICcuLi93aWRnZXQtZmlsbGVyL3dpZGdldC1maWxsZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFdpZGdldFBsYWNlaG9sZGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vd2lkZ2V0LXBsYWNlaG9sZGVyL3dpZGdldC1wbGFjZWhvbGRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgV2lkZ2V0RGVmaW5pdGlvbiwgV2lkZ2V0TGF6eURlZmluaXRpb24sIFdpZGdldFN0YXRpY0RlZmluaXRpb24gfSBmcm9tICcuL3dpZGdldHMtZGVmaW5pdGlvbi5tb2RlbCc7XG5pbXBvcnQgeyBEYXRhc291cmNlVXRpbHMgfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL3N0b3JlL2RhdGEtc291cmNlL2RhdGFzb3VyY2UtdXRpbHMnO1xuaW1wb3J0IHsgRGF0YVNvdXJjZVNlbGVjdG9ycyB9IGZyb20gJy4uLy4uLy4uLy4uL2NvcmUvc3RvcmUvZGF0YS1zb3VyY2UvZGF0YS1zb3VyY2Uuc2VsZWN0b3JzJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgRGF0YVNvdXJjZSB9IGZyb20gJy4uLy4uLy4uLy4uL2NvcmUvc3RvcmUvZGF0YS1zb3VyY2UvZGF0YS1zb3VyY2UubW9kZWwnO1xuXG5leHBvcnQgY29uc3QgV0lER0VUX0RFRklOSVRJT04gPSBuZXcgSW5qZWN0aW9uVG9rZW48c3RyaW5nPignV2lkZ2V0cyBkZWZpbml0aW9uJyk7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFdpZGdldEZhY3RvcnlTZXJ2aWNlIHtcbiAgcmVmZXJlbmNlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8eyBba2V5OiBzdHJpbmddOiBXaWRnZXREZWZpbml0aW9uIH0+KHtcbiAgICBwbGFjZWhvbGRlcjogeyBuYW1lOiAncGxhY2Vob2xkZXInLCBjb21wb25lbnQ6IFdpZGdldFBsYWNlaG9sZGVyQ29tcG9uZW50IH0sXG4gICAgZmlsbGVyOiB7IG5hbWU6ICdmaWxsZXInLCBjb21wb25lbnQ6IFdpZGdldEZpbGxlckNvbXBvbmVudCB9XG4gIH0pO1xuICBtb2R1bGVSZWZDYWNoZSA9IHt9IGFzIHsgW21hbmlmZXN0VHlwZTogc3RyaW5nXTogVHlwZTxCYXNlV2lkZ2V0Q29tcG9uZW50PiB9O1xuICBkYXRhc291cmNlczogRGF0YVNvdXJjZVtdID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgQEluamVjdChXSURHRVRfREVGSU5JVElPTikgcmVmZXJlbmNlOiB7IFtrZXk6IHN0cmluZ106IFdpZGdldERlZmluaXRpb24gfSxcbiAgICBwcml2YXRlIHN0b3JlOiBTdG9yZVxuICApIHtcbiAgICB0aGlzLnB1dERlZmluaXRpb25zKHJlZmVyZW5jZSk7XG4gICAgdGhpcy5zdG9yZS5zZWxlY3QoRGF0YVNvdXJjZVNlbGVjdG9ycy5nZXREYXRhU291cmNlcykuc3Vic2NyaWJlKChkYXRhc291cmNlcykgPT4gKHRoaXMuZGF0YXNvdXJjZXMgPSBkYXRhc291cmNlcykpO1xuICB9XG5cbiAgcmVzb2x2ZUNvbXBvbmVudChtYW5pZmVzdDogV2lkZ2V0TWFuaWZlc3QpIHtcbiAgICBpZiAodGhpcy5tb2R1bGVSZWZDYWNoZVttYW5pZmVzdC50eXBlXSkge1xuICAgICAgcmV0dXJuIG9mKHRoaXMubW9kdWxlUmVmQ2FjaGVbbWFuaWZlc3QudHlwZV0pO1xuICAgIH1cbiAgICBpZiAoISFtYW5pZmVzdCAmJiB0aGlzLnJlZmVyZW5jZSQuZ2V0VmFsdWUoKVttYW5pZmVzdC50eXBlXSkge1xuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgaWYgKHRoaXMucmVmZXJlbmNlJC5nZXRWYWx1ZSgpW21hbmlmZXN0LnR5cGVdLmxvYWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLm1vZHVsZVJlZkNhY2hlW21hbmlmZXN0LnR5cGVdID0gKFxuICAgICAgICAgIHRoaXMucmVmZXJlbmNlJC5nZXRWYWx1ZSgpW21hbmlmZXN0LnR5cGVdIGFzIFdpZGdldFN0YXRpY0RlZmluaXRpb25cbiAgICAgICAgKS5jb21wb25lbnQ7XG4gICAgICAgIHJldHVybiBvZih0aGlzLm1vZHVsZVJlZkNhY2hlW21hbmlmZXN0LnR5cGVdKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBmcm9tKFxuICAgICAgICAgICh0aGlzLnJlZmVyZW5jZSQuZ2V0VmFsdWUoKVttYW5pZmVzdC50eXBlXSBhcyBXaWRnZXRMYXp5RGVmaW5pdGlvbikubG9hZCgpLnRoZW4oKGZuKSA9PiB7XG4gICAgICAgICAgICB0aGlzLm1vZHVsZVJlZkNhY2hlW21hbmlmZXN0LnR5cGVdID0gZm4odGhpcy5pbmplY3Rvcik7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5tb2R1bGVSZWZDYWNoZVttYW5pZmVzdC50eXBlXTtcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm1vZHVsZVJlZkNhY2hlW21hbmlmZXN0LnR5cGVdID0gKFxuICAgICAgICB0aGlzLnJlZmVyZW5jZSQuZ2V0VmFsdWUoKVsncGxhY2Vob2xkZXInXSBhcyBXaWRnZXRTdGF0aWNEZWZpbml0aW9uXG4gICAgICApLmNvbXBvbmVudDtcbiAgICAgIHJldHVybiBvZih0aGlzLm1vZHVsZVJlZkNhY2hlW21hbmlmZXN0LnR5cGVdKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHB1dERlZmluaXRpb25zKGRlZmluaXRpb25zOiB7IFtrZXk6IHN0cmluZ106IFdpZGdldERlZmluaXRpb24gfSkge1xuICAgIHRoaXMucmVmZXJlbmNlJC5uZXh0KHtcbiAgICAgIC4uLnRoaXMucmVmZXJlbmNlJC5nZXRWYWx1ZSgpLFxuICAgICAgLi4uZGVmaW5pdGlvbnNcbiAgICB9KTtcbiAgfVxuXG4gIGlzTW9kdWxlTG9hZGVkKHR5cGU6IHN0cmluZyk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLnJlZmVyZW5jZSQucGlwZShtYXAoKGNvbXBvbmVudERlZnMpID0+ICEhY29tcG9uZW50RGVmc1t0eXBlXSkpO1xuICB9XG5cbiAgZGF0YXNvdXJjZXNUb0F1dG9Mb2FkKG1hbmlmZXN0OiBXaWRnZXRNYW5pZmVzdCkge1xuICAgIGNvbnN0IHdpZGdldERlZmluaXRpb24gPSB0aGlzLnJlZmVyZW5jZSQuZ2V0VmFsdWUoKVttYW5pZmVzdC50eXBlXTtcbiAgICBjb25zdCBkYXRhc291cmNlc0FycmF5OiBzdHJpbmdbXSA9IEFycmF5LmlzQXJyYXkobWFuaWZlc3QuZGF0YXNvdXJjZSA/PyBbXSlcbiAgICAgID8gKChtYW5pZmVzdC5kYXRhc291cmNlID8/IFtdKSBhcyBzdHJpbmdbXSlcbiAgICAgIDogKFttYW5pZmVzdC5kYXRhc291cmNlXSBhcyBzdHJpbmdbXSk7XG4gICAgcmV0dXJuIGRhdGFzb3VyY2VzQXJyYXkuZmlsdGVyKChkYXRhc291cmNlKSA9PiB7XG4gICAgICBjb25zdCBtYXRjaGluZyA9IHRoaXMuZGF0YXNvdXJjZXMuZmluZCgoZHMpID0+IGRzLmlkID09PSBkYXRhc291cmNlKSE7XG4gICAgICByZXR1cm4gKFxuICAgICAgICB3aWRnZXREZWZpbml0aW9uLmF1dG9Mb2FkRGF0YXNvdXJjZSA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICAgIHdpZGdldERlZmluaXRpb24uYXV0b0xvYWREYXRhc291cmNlID09PSAnYWxsJyB8fFxuICAgICAgICAod2lkZ2V0RGVmaW5pdGlvbi5hdXRvTG9hZERhdGFzb3VyY2UgPT09ICdnZW8nICYmIERhdGFzb3VyY2VVdGlscy5pc0dlbyhtYXRjaGluZykpIHx8XG4gICAgICAgICh3aWRnZXREZWZpbml0aW9uLmF1dG9Mb2FkRGF0YXNvdXJjZSA9PT0gJ25vdC1nZW8nICYmICFEYXRhc291cmNlVXRpbHMuaXNHZW8obWF0Y2hpbmcpKVxuICAgICAgKTtcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0cy1kZWZpbml0aW9uLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvbGliL2Rhc2hib2FyZC9jb21wb25lbnRzL3dpZGdldHMvd2lkZ2V0LWluc3RhbmNpYXRvci93aWRnZXRzLWRlZmluaXRpb24ubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdG9yLCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCYXNlV2lkZ2V0Q29tcG9uZW50IH0gZnJvbSAnLi4vYmFzZS13aWRnZXQuY29tcG9uZW50JztcblxuZXhwb3J0IHR5cGUgV2lkZ2V0U3RhdGljRGVmaW5pdGlvbiA9IHtcbiAgbmFtZTogc3RyaW5nO1xuICBjb21wb25lbnQ6IFR5cGU8QmFzZVdpZGdldENvbXBvbmVudD47XG59O1xuZXhwb3J0IHR5cGUgV2lkZ2V0TGF6eURlZmluaXRpb24gPSB7XG4gIG5hbWU6IHN0cmluZztcbiAgbG9hZDogKCkgPT4gUHJvbWlzZTwoaW5qZWN0b3I6IEluamVjdG9yKSA9PiBUeXBlPEJhc2VXaWRnZXRDb21wb25lbnQ+Pjtcbn07XG5leHBvcnQgdHlwZSBXaWRnZXREZWZpbml0aW9uID0gV2lkZ2V0U3RhdGljRGVmaW5pdGlvbiB8IFdpZGdldExhenlEZWZpbml0aW9uO1xuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0cy1kZWZpbml0aW9uLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvbGliL2Rhc2hib2FyZC9jb21wb25lbnRzL3dpZGdldHMvd2lkZ2V0LWluc3RhbmNpYXRvci93aWRnZXRzLWRlZmluaXRpb24ubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdG9yLCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCYXNlV2lkZ2V0Q29tcG9uZW50IH0gZnJvbSAnLi4vYmFzZS13aWRnZXQuY29tcG9uZW50JztcblxuZXhwb3J0IHR5cGUgV2lkZ2V0U3RhdGljRGVmaW5pdGlvbiA9IHtcbiAgbmFtZTogc3RyaW5nO1xuICBjb21wb25lbnQ6IFR5cGU8QmFzZVdpZGdldENvbXBvbmVudD47XG4gIGF1dG9Mb2FkRGF0YXNvdXJjZT86ICdhbGwnIHwgJ25vbmUnIHwgJ25vdC1nZW8nIHwgJ2dlbyc7XG59O1xuZXhwb3J0IHR5cGUgV2lkZ2V0TGF6eURlZmluaXRpb24gPSB7XG4gIG5hbWU6IHN0cmluZztcbiAgbG9hZDogKCkgPT4gUHJvbWlzZTwoaW5qZWN0b3I6IEluamVjdG9yKSA9PiBUeXBlPEJhc2VXaWRnZXRDb21wb25lbnQ+PjtcbiAgYXV0b0xvYWREYXRhc291cmNlPzogJ2FsbCcgfCAnbm9uZScgfCAnbm90LWdlbycgfCAnZ2VvJztcbn07XG5leHBvcnQgdHlwZSBXaWRnZXREZWZpbml0aW9uID0gV2lkZ2V0U3RhdGljRGVmaW5pdGlvbiB8IFdpZGdldExhenlEZWZpbml0aW9uO1xuIl19