@microsoft/windows-admin-center-sdk
Version:
Microsoft - Windows Admin Center Shell
192 lines • 27.5 kB
JavaScript
import { Component } from '@angular/core';
import { ObjectDefaultFormFieldLoaderComponent } from '../form/form-field/object/object-default-form-field-loader.component';
import { SchemaPrimitiveType } from './schema-models';
import { SchemaDataTypeStore } from './schema-store';
import * as i0 from "@angular/core";
import * as i1 from "@angular/common";
import * as i2 from "../layout/layout.component";
import * as i3 from "../layout/layout-item.component";
import * as i4 from "../layout/layout-definition.component";
import * as i5 from "../loading-wheel/loading-wheel.component";
import * as i6 from "./schema-field-host.component";
function BasicFormLoaderComponent_sme_loading_wheel_2_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵelement(0, "sme-loading-wheel");
} }
const _c0 = function (a0, a1) { return { "sme-icon-chevronDown": a0, "sme-icon-chevronRight": a1 }; };
function BasicFormLoaderComponent_div_3_a_1_Template(rf, ctx) { if (rf & 1) {
const _r6 = i0.ɵɵgetCurrentView();
i0.ɵɵelementStart(0, "a", 9);
i0.ɵɵlistener("click", function BasicFormLoaderComponent_div_3_a_1_Template_a_click_0_listener() { i0.ɵɵrestoreView(_r6); const ctx_r5 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r5.clickToggle()); });
i0.ɵɵelement(1, "span", 10);
i0.ɵɵelementStart(2, "b", 11);
i0.ɵɵtext(3);
i0.ɵɵelementEnd()();
} if (rf & 2) {
const ctx_r2 = i0.ɵɵnextContext(2);
i0.ɵɵadvance(1);
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction2(2, _c0, ctx_r2.isExpanded(), !ctx_r2.isExpanded()));
i0.ɵɵadvance(2);
i0.ɵɵtextInterpolate(ctx_r2.localize(ctx_r2.propertySchema.label));
} }
function BasicFormLoaderComponent_div_3_b_2_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵelementStart(0, "b", 12);
i0.ɵɵtext(1);
i0.ɵɵelementEnd();
} if (rf & 2) {
const ctx_r3 = i0.ɵɵnextContext(2);
i0.ɵɵadvance(1);
i0.ɵɵtextInterpolate(ctx_r3.localize(ctx_r3.propertySchema.label));
} }
function BasicFormLoaderComponent_div_3_sme_layout_item_6_sme_schema_field_host_1_Template(rf, ctx) { if (rf & 1) {
const _r11 = i0.ɵɵgetCurrentView();
i0.ɵɵelementStart(0, "sme-schema-field-host", 14);
i0.ɵɵlistener("dataChange", function BasicFormLoaderComponent_div_3_sme_layout_item_6_sme_schema_field_host_1_Template_sme_schema_field_host_dataChange_0_listener($event) { i0.ɵɵrestoreView(_r11); const property_r7 = i0.ɵɵnextContext().$implicit; const ctx_r10 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r10.data && (ctx_r10.data[property_r7.name] = $event)); });
i0.ɵɵelementEnd();
} if (rf & 2) {
const ctx_r13 = i0.ɵɵnextContext();
const i_r8 = ctx_r13.index;
const property_r7 = ctx_r13.$implicit;
const ctx_r9 = i0.ɵɵnextContext(2);
i0.ɵɵclassProp("sme-schema-field-host-not-first", i_r8 >= (ctx_r9.propertySchema.options && ctx_r9.propertySchema.options.columnCount || 1));
i0.ɵɵproperty("propertySchema", property_r7)("context", ctx_r9.context)("data", ctx_r9.data && ctx_r9.data[property_r7.name]);
i0.ɵɵattribute("data-property-name", property_r7.name);
} }
function BasicFormLoaderComponent_div_3_sme_layout_item_6_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵelementStart(0, "sme-layout-item");
i0.ɵɵtemplate(1, BasicFormLoaderComponent_div_3_sme_layout_item_6_sme_schema_field_host_1_Template, 1, 6, "sme-schema-field-host", 13);
i0.ɵɵelementEnd();
} if (rf & 2) {
const property_r7 = ctx.$implicit;
const ctx_r4 = i0.ɵɵnextContext(2);
i0.ɵɵadvance(1);
i0.ɵɵproperty("ngIf", !(property_r7.hideCondition && ctx_r4.evalExpression(property_r7.hideCondition)));
} }
function BasicFormLoaderComponent_div_3_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵelementStart(0, "div");
i0.ɵɵtemplate(1, BasicFormLoaderComponent_div_3_a_1_Template, 4, 5, "a", 3);
i0.ɵɵtemplate(2, BasicFormLoaderComponent_div_3_b_2_Template, 2, 1, "b", 4);
i0.ɵɵelementStart(3, "div", 5)(4, "sme-layout", 6);
i0.ɵɵelement(5, "sme-layout-definition", 7);
i0.ɵɵtemplate(6, BasicFormLoaderComponent_div_3_sme_layout_item_6_Template, 2, 1, "sme-layout-item", 8);
i0.ɵɵelementEnd()()();
} if (rf & 2) {
const ctx_r1 = i0.ɵɵnextContext();
i0.ɵɵadvance(1);
i0.ɵɵproperty("ngIf", ctx_r1.shouldShowHeader() && ctx_r1.propertySchema.label && ctx_r1.isCollapsible());
i0.ɵɵadvance(1);
i0.ɵɵproperty("ngIf", ctx_r1.shouldShowHeader() && ctx_r1.propertySchema.label && !ctx_r1.isCollapsible());
i0.ɵɵadvance(1);
i0.ɵɵproperty("hidden", !ctx_r1.isExpanded());
i0.ɵɵadvance(1);
i0.ɵɵproperty("itemVerticalSpace", 0)("itemHorizontalSpace", 10);
i0.ɵɵadvance(1);
i0.ɵɵproperty("columns", ctx_r1.propertySchema.options && ctx_r1.propertySchema.options.columnCount || 1);
i0.ɵɵadvance(1);
i0.ɵɵproperty("ngForOf", ctx_r1.propertySchema.properties);
} }
export class BasicFormLoaderComponent extends ObjectDefaultFormFieldLoaderComponent {
static registerDataType() {
SchemaDataTypeStore.registerDataType({
type: SchemaPrimitiveType.Object,
format: 'basic-form',
isDefaultFormat: true,
description: 'It\'s a special form field control that recursively renders all the properties as fields. '
+ 'This is like a container of other schema items.',
loaderComponent: BasicFormLoaderComponent,
optionProperties: [
{
type: SchemaPrimitiveType.String,
format: 'textbox',
name: 'formID',
label: 'actual_string:Form ID',
description: 'actual_string:You may need the ID to link with the "form" attribute value of the submit button.'
},
{
type: SchemaPrimitiveType.String,
format: 'textbox',
name: 'busyCondition',
label: 'actual_string:Busy Condition'
},
{
type: SchemaPrimitiveType.Number,
format: 'textbox',
name: 'columnCount',
label: 'resources:strings:MsftSmeShell.Angular.SchemaForm.Editor.PropertyForm.ObjectType.ColumnCount',
defaultValue: 1
},
{
type: SchemaPrimitiveType.Boolean,
format: 'checkbox',
name: 'hideHeader',
label: 'resources:strings:MsftSmeShell.Angular.SchemaForm.Editor.PropertyForm.ObjectType.HideHeader'
},
{
type: SchemaPrimitiveType.Object,
format: 'default',
name: 'collapsible',
label: 'resources:strings:MsftSmeShell.Angular.SchemaForm.Editor.PropertyForm.ObjectType.Collapsible',
required: false,
properties: [
{
type: SchemaPrimitiveType.Boolean,
format: 'checkbox',
name: 'yes',
label: 'resources:strings:MsftSmeShell.Angular.SchemaForm.Editor.PropertyForm.ObjectType.Yes',
required: false,
options: {}
},
{
type: SchemaPrimitiveType.String,
format: 'combobox',
name: 'state',
label: 'resources:strings:MsftSmeShell.Angular.SchemaForm.Editor.PropertyForm.ObjectType.State',
required: false,
defaultValue: 'collapsed',
options: {
items: [
{
label: 'resources:strings:MsftSmeShell.Angular.SchemaForm.Editor.PropertyForm.ObjectType.Collapsed',
value: 'collapsed'
},
{
label: 'resources:strings:MsftSmeShell.Angular.SchemaForm.Editor.PropertyForm.ObjectType.Expanded',
value: 'expanded'
}
]
}
}
]
}
],
predefinedObjectProperties: [
{
type: SchemaPrimitiveType.String,
format: 'textbox'
}
],
tags: ['form-container']
});
}
}
/** @nocollapse */ BasicFormLoaderComponent.ɵfac = /** @pureOrBreakMyCode */ function () { let ɵBasicFormLoaderComponent_BaseFactory; return function BasicFormLoaderComponent_Factory(t) { return (ɵBasicFormLoaderComponent_BaseFactory || (ɵBasicFormLoaderComponent_BaseFactory = i0.ɵɵgetInheritedFactory(BasicFormLoaderComponent)))(t || BasicFormLoaderComponent); }; }();
/** @nocollapse */ BasicFormLoaderComponent.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: BasicFormLoaderComponent, selectors: [["ng-component"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 4, vars: 7, consts: [[3, "submit"], [1, "sme-layout-relative"], [4, "ngIf"], ["class", "sme-padding-bottom-xs sme-arrange-stack-h", 3, "click", 4, "ngIf"], ["class", "sme-layout-block sme-margin-top-xxxs sme-padding-bottom-xs", 4, "ngIf"], [3, "hidden"], [3, "itemVerticalSpace", "itemHorizontalSpace"], ["name", "wide", 3, "columns"], [4, "ngFor", "ngForOf"], [1, "sme-padding-bottom-xs", "sme-arrange-stack-h", 3, "click"], [1, "sme-position-flex-none", "sme-icon", "sme-padding-right-xxs", 3, "ngClass"], [1, "sme-position-flex-auto", "sme-margin-top-xxxs"], [1, "sme-layout-block", "sme-margin-top-xxxs", "sme-padding-bottom-xs"], [3, "sme-schema-field-host-not-first", "propertySchema", "context", "data", "dataChange", 4, "ngIf"], [3, "propertySchema", "context", "data", "dataChange"]], template: function BasicFormLoaderComponent_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵelementStart(0, "form", 0);
i0.ɵɵlistener("submit", function BasicFormLoaderComponent_Template_form_submit_0_listener($event) { return $event.preventDefault(); });
i0.ɵɵelementStart(1, "div", 1);
i0.ɵɵtemplate(2, BasicFormLoaderComponent_sme_loading_wheel_2_Template, 1, 0, "sme-loading-wheel", 2);
i0.ɵɵtemplate(3, BasicFormLoaderComponent_div_3_Template, 7, 7, "div", 2);
i0.ɵɵelementEnd()();
} if (rf & 2) {
i0.ɵɵattribute("id", ctx.propertySchema.options && ctx.propertySchema.options.formID);
i0.ɵɵadvance(1);
i0.ɵɵclassProp("sme-margin-bottom-xl", ctx.shouldShowLoadingWheel())("sme-height-xxxl", ctx.shouldShowLoadingWheel());
i0.ɵɵadvance(1);
i0.ɵɵproperty("ngIf", ctx.shouldShowLoadingWheel());
i0.ɵɵadvance(1);
i0.ɵɵproperty("ngIf", !ctx.shouldShowLoadingWheel());
} }, dependencies: [i1.NgClass, i1.NgForOf, i1.NgIf, i2.LayoutComponent, i3.LayoutItemComponent, i4.LayoutDefinitionComponent, i5.LoadingWheelComponent, i6.SchemaFieldHostComponent], encapsulation: 2 });
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(BasicFormLoaderComponent, [{
type: Component,
args: [{ template: "<form [attr.id]=\"propertySchema.options && propertySchema.options.formID\" (submit)=\"$event.preventDefault()\">\r\n <div class=\"sme-layout-relative\" [class.sme-margin-bottom-xl]=\"shouldShowLoadingWheel()\"\r\n [class.sme-height-xxxl]=\"shouldShowLoadingWheel()\">\r\n <sme-loading-wheel *ngIf=\"shouldShowLoadingWheel()\"></sme-loading-wheel>\r\n <div *ngIf=\"!shouldShowLoadingWheel()\">\r\n <a *ngIf=\"shouldShowHeader() && propertySchema.label && isCollapsible()\" (click)='clickToggle()'\r\n class=\"sme-padding-bottom-xs sme-arrange-stack-h\">\r\n <span class=\"sme-position-flex-none sme-icon sme-padding-right-xxs\"\r\n [ngClass]=\"{'sme-icon-chevronDown':isExpanded(), 'sme-icon-chevronRight':!isExpanded()}\">\r\n </span>\r\n <b class=\"sme-position-flex-auto sme-margin-top-xxxs\">{{localize(propertySchema.label)}}</b>\r\n </a>\r\n <b *ngIf=\"shouldShowHeader() && propertySchema.label && !isCollapsible()\"\r\n class=\"sme-layout-block sme-margin-top-xxxs sme-padding-bottom-xs\">{{localize(propertySchema.label)}}</b>\r\n <div [hidden]=\"!isExpanded()\">\r\n <sme-layout [itemVerticalSpace]=\"0\" [itemHorizontalSpace]=\"10\">\r\n <sme-layout-definition name=\"wide\"\r\n [columns]=\"(propertySchema.options && propertySchema.options.columnCount) || 1\">\r\n </sme-layout-definition>\r\n <sme-layout-item *ngFor=\"let property of propertySchema.properties; let i = index\">\r\n <sme-schema-field-host\r\n *ngIf=\"!(property.hideCondition && evalExpression(property.hideCondition))\"\r\n [class.sme-schema-field-host-not-first]=\"i>=(propertySchema.options && propertySchema.options.columnCount || 1)\"\r\n [propertySchema]=\"property\" [context]=\"context\" [(data)]=\"data && data[property.name]\"\r\n [attr.data-property-name]=\"property.name\">\r\n </sme-schema-field-host>\r\n </sme-layout-item>\r\n </sme-layout>\r\n </div>\r\n </div>\r\n </div>\r\n</form>" }]
}], null, null); })();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzaWMtZm9ybS1sb2FkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYW5ndWxhci9zcmMvY29udHJvbHMvc2NoZW1hL2Jhc2ljLWZvcm0tbG9hZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2FuZ3VsYXIvc3JjL2NvbnRyb2xzL3NjaGVtYS9iYXNpYy1mb3JtLWxvYWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxxQ0FBcUMsRUFBRSxNQUFNLHNFQUFzRSxDQUFDO0FBQzdILE9BQU8sRUFBd0IsbUJBQW1CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7O0lDQTdDLG9DQUF3RTs7Ozs7SUFFcEUsNEJBQ3NEO0lBRG1CLHFLQUFTLGVBQUEsb0JBQWEsQ0FBQSxJQUFDO0lBRTVGLDJCQUVPO0lBQ1AsNkJBQXNEO0lBQUEsWUFBa0M7SUFBQSxpQkFBSSxFQUFBOzs7SUFGeEYsZUFBd0Y7SUFBeEYsK0ZBQXdGO0lBRXRDLGVBQWtDO0lBQWxDLGtFQUFrQzs7O0lBRTVGLDZCQUN1RTtJQUFBLFlBQWtDO0lBQUEsaUJBQUk7OztJQUF0QyxlQUFrQztJQUFsQyxrRUFBa0M7Ozs7SUFPN0YsaURBSThDO0lBRE0sbVNBQVUseUVBQ2pGLElBRDZHO0lBRTFGLGlCQUF3Qjs7Ozs7O0lBSHBCLDRJQUFnSDtJQUNoSCw0Q0FBMkIsMkJBQUEsc0RBQUE7SUFDM0Isc0RBQXlDOzs7SUFMakQsdUNBQW1GO0lBQy9FLHNJQUt3QjtJQUM1QixpQkFBa0I7Ozs7SUFMVCxlQUF5RTtJQUF6RSx1R0FBeUU7OztJQWpCOUYsMkJBQXVDO0lBQ25DLDJFQU1JO0lBQ0os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UUNQckMsK0JBQTZHO1FBQW5DLDJHQUFVLHVCQUF1QixJQUFDO1FBQ3hHLDhCQUN1RDtRQUNuRCxxR0FBd0U7UUFDeEUseUVBeUJNO1FBQ1YsaUJBQU0sRUFBQTs7UUE5QkoscUZBQW1FO1FBQ3BDLGVBQXVEO1FBQXZELG9FQUF1RCxpREFBQTtRQUVoRSxlQUE4QjtRQUE5QixtREFBOEI7UUFDNUMsZUFBK0I7UUFBL0Isb0RBQStCOzt1RkRHaEMsd0JBQXdCO2NBSHBDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT2JqZWN0RGVmYXVsdEZvcm1GaWVsZExvYWRlckNvbXBvbmVudCB9IGZyb20gJy4uL2Zvcm0vZm9ybS1maWVsZC9vYmplY3Qvb2JqZWN0LWRlZmF1bHQtZm9ybS1maWVsZC1sb2FkZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU2NoZW1hT2JqZWN0UHJvcGVydHksIFNjaGVtYVByaW1pdGl2ZVR5cGUgfSBmcm9tICcuL3NjaGVtYS1tb2RlbHMnO1xyXG5pbXBvcnQgeyBTY2hlbWFEYXRhVHlwZVN0b3JlIH0gZnJvbSAnLi9zY2hlbWEtc3RvcmUnO1xyXG5AQ29tcG9uZW50KHtcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9iYXNpYy1mb3JtLWxvYWRlci5jb21wb25lbnQuaHRtbCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEJhc2ljRm9ybUxvYWRlckNvbXBvbmVudCBleHRlbmRzIE9iamVjdERlZmF1bHRGb3JtRmllbGRMb2FkZXJDb21wb25lbnQge1xyXG4gICAgcHVibGljIHN0YXRpYyByZWdpc3RlckRhdGFUeXBlKCkge1xyXG4gICAgICAgIFNjaGVtYURhdGFUeXBlU3RvcmUucmVnaXN0ZXJEYXRhVHlwZSh7XHJcbiAgICAgICAgICAgIHR5cGU6IFNjaGVtYVByaW1pdGl2ZVR5cGUuT2JqZWN0LFxyXG4gICAgICAgICAgICBmb3JtYXQ6ICdiYXNpYy1mb3JtJyxcclxuICAgICAgICAgICAgaXNEZWZhdWx0Rm9ybWF0OiB0cnVlLFxyXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogJ0l0XFwncyBhIHNwZWNpYWwgZm9ybSBmaWVsZCBjb250cm9sIHRoYXQgcmVjdXJzaXZlbHkgcmVuZGVycyBhbGwgdGhlIHByb3BlcnRpZXMgYXMgZmllbGRzLiAnXHJcbiAgICAgICAgICAgICAgICArICdUaGlzIGlzIGxpa2UgYSBjb250YWluZXIgb2Ygb3RoZXIgc2NoZW1hIGl0ZW1zLicsXHJcbiAgICAgICAgICAgIGxvYWRlckNvbXBvbmVudDogQmFzaWNGb3JtTG9hZGVyQ29tcG9uZW50LFxyXG4gICAgICAgICAgICBvcHRpb25Qcm9wZXJ0aWVzOiBbXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogU2NoZW1hUHJpbWl0aXZlVHlwZS5TdHJpbmcsXHJcbiAgICAgICAgICAgICAgICAgICAgZm9ybWF0OiAndGV4dGJveCcsXHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogJ2Zvcm1JRCcsXHJcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdhY3R1YWxfc3RyaW5nOkZvcm0gSUQnLFxyXG4gICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnYWN0dWFsX3N0cmluZzpZb3UgbWF5IG5lZWQgdGhlIElEIHRvIGxpbmsgd2l0aCB0aGUgXCJmb3JtXCIgYXR0cmlidXRlIHZhbHVlIG9mIHRoZSBzdWJtaXQgYnV0dG9uLidcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogU2NoZW1hUHJpbWl0aXZlVHlwZS5TdHJpbmcsXHJcbiAgICAgICAgICAgICAgICAgICAgZm9ybWF0OiAndGV4dGJveCcsXHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogJ2J1c3lDb25kaXRpb24nLFxyXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiAnYWN0dWFsX3N0cmluZzpCdXN5IENvbmRpdGlvbidcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogU2NoZW1hUHJpbWl0aXZlVHlwZS5OdW1iZXIsXHJcbiAgICAgICAgICAgICAgICAgICAgZm9ybWF0OiAndGV4dGJveCcsXHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogJ2NvbHVtbkNvdW50JyxcclxuICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ3Jlc291cmNlczpzdHJpbmdzOk1zZnRTbWVTaGVsbC5Bbmd1bGFyLlNjaGVtYUZvcm0uRWRpdG9yLlByb3BlcnR5Rm9ybS5PYmplY3RUeXBlLkNvbHVtbkNvdW50JyxcclxuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0VmFsdWU6IDFcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogU2NoZW1hUHJpbWl0aXZlVHlwZS5Cb29sZWFuLFxyXG4gICAgICAgICAgICAgICAgICAgIGZvcm1hdDogJ2NoZWNrYm94JyxcclxuICAgICAgICAgICAgICAgICAgICBuYW1lOiAnaGlkZUhlYWRlcicsXHJcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdyZXNvdXJjZXM6c3RyaW5nczpNc2Z0U21lU2hlbGwuQW5ndWxhci5TY2hlbWFGb3JtLkVkaXRvci5Qcm9wZXJ0eUZvcm0uT2JqZWN0VHlwZS5IaWRlSGVhZGVyJ1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIDxTY2hlbWFPYmplY3RQcm9wZXJ0eT57XHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogU2NoZW1hUHJpbWl0aXZlVHlwZS5PYmplY3QsXHJcbiAgICAgICAgICAgICAgICAgICAgZm9ybWF0OiAnZGVmYXVsdCcsXHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogJ2NvbGxhcHNpYmxlJyxcclxuICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ3Jlc291cmNlczpzdHJpbmdzOk1zZnRTbWVTaGVsbC5Bbmd1bGFyLlNjaGVtYUZvcm0uRWRpdG9yLlByb3BlcnR5Rm9ybS5PYmplY3RUeXBlLkNvbGxhcHNpYmxlJyxcclxuICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgcHJvcGVydGllczogW1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBTY2hlbWFQcmltaXRpdmVUeXBlLkJvb2xlYW4sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXQ6ICdjaGVja2JveCcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAneWVzJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAncmVzb3VyY2VzOnN0cmluZ3M6TXNmdFNtZVNoZWxsLkFuZ3VsYXIuU2NoZW1hRm9ybS5FZGl0b3IuUHJvcGVydHlGb3JtLk9iamVjdFR5cGUuWWVzJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnM6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogU2NoZW1hUHJpbWl0aXZlVHlwZS5TdHJpbmcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXQ6ICdjb21ib2JveCcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAnc3RhdGUnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6ICdyZXNvdXJjZXM6c3RyaW5nczpNc2Z0U21lU2hlbGwuQW5ndWxhci5TY2hlbWFGb3JtLkVkaXRvci5Qcm9wZXJ0eUZvcm0uT2JqZWN0VHlwZS5TdGF0ZScsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0VmFsdWU6ICdjb2xsYXBzZWQnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uczoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1zOiBbXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiAncmVzb3VyY2VzOnN0cmluZ3M6TXNmdFNtZVNoZWxsLkFuZ3VsYXIuU2NoZW1hRm9ybS5FZGl0b3IuUHJvcGVydHlGb3JtLk9iamVjdFR5cGUuQ29sbGFwc2VkJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiAnY29sbGFwc2VkJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogJ3Jlc291cmNlczpzdHJpbmdzOk1zZnRTbWVTaGVsbC5Bbmd1bGFyLlNjaGVtYUZvcm0uRWRpdG9yLlByb3BlcnR5Rm9ybS5PYmplY3RUeXBlLkV4cGFuZGVkJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiAnZXhwYW5kZWQnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBdXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgIHByZWRlZmluZWRPYmplY3RQcm9wZXJ0aWVzOiBbXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogU2NoZW1hUHJpbWl0aXZlVHlwZS5TdHJpbmcsXHJcbiAgICAgICAgICAgICAgICAgICAgZm9ybWF0OiAndGV4dGJveCdcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgdGFnczogWydmb3JtLWNvbnRhaW5lciddXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbn1cclxuIiwiPGZvcm0gW2F0dHIuaWRdPVwicHJvcGVydHlTY2hlbWEub3B0aW9ucyAmJiBwcm9wZXJ0eVNjaGVtYS5vcHRpb25zLmZvcm1JRFwiIChzdWJtaXQpPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KClcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJzbWUtbGF5b3V0LXJlbGF0aXZlXCIgW2NsYXNzLnNtZS1tYXJnaW4tYm90dG9tLXhsXT1cInNob3VsZFNob3dMb2FkaW5nV2hlZWwoKVwiXHJcbiAgICAgICAgW2NsYXNzLnNtZS1oZWlnaHQteHh4bF09XCJzaG91bGRTaG93TG9hZGluZ1doZWVsKClcIj5cclxuICAgICAgICA8c21lLWxvYWRpbmctd2hlZWwgKm5nSWY9XCJzaG91bGRTaG93TG9hZGluZ1doZWVsKClcIj48L3NtZS1sb2FkaW5nLXdoZWVsPlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCIhc2hvdWxkU2hvd0xvYWRpbmdXaGVlbCgpXCI+XHJcbiAgICAgICAgICAgIDxhICpuZ0lmPVwic2hvdWxkU2hvd0hlYWRlcigpICYmIHByb3BlcnR5U2NoZW1hLmxhYmVsICYmIGlzQ29sbGFwc2libGUoKVwiIChjbGljayk9J2NsaWNrVG9nZ2xlKCknXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInNtZS1wYWRkaW5nLWJvdHRvbS14cyBzbWUtYXJyYW5nZS1zdGFjay1oXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNtZS1wb3NpdGlvbi1mbGV4LW5vbmUgc21lLWljb24gc21lLXBhZGRpbmctcmlnaHQteHhzXCJcclxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J3NtZS1pY29uLWNoZXZyb25Eb3duJzppc0V4cGFuZGVkKCksICdzbWUtaWNvbi1jaGV2cm9uUmlnaHQnOiFpc0V4cGFuZGVkKCl9XCI+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8YiBjbGFzcz1cInNtZS1wb3NpdGlvbi1mbGV4LWF1dG8gc21lLW1hcmdpbi10b3AteHh4c1wiPnt7bG9jYWxpemUocHJvcGVydHlTY2hlbWEubGFiZWwpfX08L2I+XHJcbiAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgPGIgKm5nSWY9XCJzaG91bGRTaG93SGVhZGVyKCkgJiYgcHJvcGVydHlTY2hlbWEubGFiZWwgJiYgIWlzQ29sbGFwc2libGUoKVwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInNtZS1sYXlvdXQtYmxvY2sgc21lLW1hcmdpbi10b3AteHh4cyBzbWUtcGFkZGluZy1ib3R0b20teHNcIj57e2xvY2FsaXplKHByb3BlcnR5U2NoZW1hLmxhYmVsKX19PC9iPlxyXG4gICAgICAgICAgICA8ZGl2IFtoaWRkZW5dPVwiIWlzRXhwYW5kZWQoKVwiPlxyXG4gICAgICAgICAgICAgICAgPHNtZS1sYXlvdXQgW2l0ZW1WZXJ0aWNhbFNwYWNlXT1cIjBcIiBbaXRlbUhvcml6b250YWxTcGFjZV09XCIxMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzbWUtbGF5b3V0LWRlZmluaXRpb24gbmFtZT1cIndpZGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbY29sdW1uc109XCIocHJvcGVydHlTY2hlbWEub3B0aW9ucyAmJiBwcm9wZXJ0eVNjaGVtYS5vcHRpb25zLmNvbHVtbkNvdW50KSB8fCAxXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zbWUtbGF5b3V0LWRlZmluaXRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNtZS1sYXlvdXQtaXRlbSAqbmdGb3I9XCJsZXQgcHJvcGVydHkgb2YgcHJvcGVydHlTY2hlbWEucHJvcGVydGllczsgbGV0IGkgPSBpbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c21lLXNjaGVtYS1maWVsZC1ob3N0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiEocHJvcGVydHkuaGlkZUNvbmRpdGlvbiAmJiBldmFsRXhwcmVzc2lvbihwcm9wZXJ0eS5oaWRlQ29uZGl0aW9uKSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLnNtZS1zY2hlbWEtZmllbGQtaG9zdC1ub3QtZmlyc3RdPVwiaT49KHByb3BlcnR5U2NoZW1hLm9wdGlvbnMgJiYgcHJvcGVydHlTY2hlbWEub3B0aW9ucy5jb2x1bW5Db3VudCB8fCAxKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcHJvcGVydHlTY2hlbWFdPVwicHJvcGVydHlcIiBbY29udGV4dF09XCJjb250ZXh0XCIgWyhkYXRhKV09XCJkYXRhICYmIGRhdGFbcHJvcGVydHkubmFtZV1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1wcm9wZXJ0eS1uYW1lXT1cInByb3BlcnR5Lm5hbWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zbWUtc2NoZW1hLWZpZWxkLWhvc3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zbWUtbGF5b3V0LWl0ZW0+XHJcbiAgICAgICAgICAgICAgICA8L3NtZS1sYXlvdXQ+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZm9ybT4iXX0=