@alauda-fe/common
Version:
Alauda frontend team common codes.
141 lines • 18.8 kB
JavaScript
import { DialogRef, DIALOG_DATA, ButtonModule, DialogModule, InputModule, FormModule, } from '@alauda/ui';
import { AsyncPipe, NgIf } from '@angular/common';
import { ChangeDetectionStrategy, Component, Inject } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { snakeCase } from 'lodash-es';
import { BehaviorSubject, finalize } from 'rxjs';
import { K8sApiService } from '../../api/public-api';
import { DISPLAY_NAME, K8sUtilService, K8S_UTIL_PIPES_MODULE, } from '../../core/public-api';
import { TRANSLATE_MODULE } from '../../translate/public-api';
import * as i0 from "@angular/core";
import * as i1 from "@alauda/ui";
import * as i2 from "../../api/public-api";
import * as i3 from "../../core/public-api";
import * as i4 from "@angular/forms";
import * as i5 from "../../translate/translate.pipe";
import * as i6 from "../../core/pipes/k8s-util.pipe";
function UpdateDisplayNameDialogComponent_input_14_Template(rf, ctx) { if (rf & 1) {
const _r2 = i0.ɵɵgetCurrentView();
i0.ɵɵelementStart(0, "input", 6);
i0.ɵɵtwoWayListener("ngModelChange", function UpdateDisplayNameDialogComponent_input_14_Template_input_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r2.displayName, $event) || (ctx_r2.displayName = $event); return i0.ɵɵresetView($event); });
i0.ɵɵelementEnd();
} if (rf & 2) {
const ctx_r2 = i0.ɵɵnextContext();
i0.ɵɵtwoWayProperty("ngModel", ctx_r2.displayName);
} }
function UpdateDisplayNameDialogComponent_ng_template_15_Template(rf, ctx) { if (rf & 1) {
const _r4 = i0.ɵɵgetCurrentView();
i0.ɵɵelementStart(0, "input", 7);
i0.ɵɵtwoWayListener("ngModelChange", function UpdateDisplayNameDialogComponent_ng_template_15_Template_input_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r2 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r2.displayName, $event) || (ctx_r2.displayName = $event); return i0.ɵɵresetView($event); });
i0.ɵɵelementEnd();
} if (rf & 2) {
const ctx_r2 = i0.ɵɵnextContext();
i0.ɵɵtwoWayProperty("ngModel", ctx_r2.displayName);
i0.ɵɵproperty("maxlength", 64);
} }
export class UpdateDisplayNameDialogComponent {
constructor(dialogRef, k8sApi, k8sUtil, data) {
this.dialogRef = dialogRef;
this.k8sApi = k8sApi;
this.k8sUtil = k8sUtil;
this.data = data;
this.displayName = this.k8sUtil.getDisplayName(this.data.resource);
this.confirming$$ = new BehaviorSubject(false);
}
confirm() {
this.confirming$$.next(true);
this.k8sApi
.patchResource({
...(this.data.definition
? {
definition: this.data.definition,
}
: {
type: this.data.type ||
snakeCase(this.data.resource.kind).toUpperCase(),
}),
cluster: this.data.cluster,
resource: this.data.resource,
part: {
metadata: {
annotations: {
[this.k8sUtil.normalizeType(DISPLAY_NAME)]: this.displayName,
},
},
},
})
.pipe(finalize(() => this.confirming$$.next(false)))
.subscribe(resource => this.dialogRef.close(resource));
}
static { this.ɵfac = function UpdateDisplayNameDialogComponent_Factory(t) { return new (t || UpdateDisplayNameDialogComponent)(i0.ɵɵdirectiveInject(i1.DialogRef), i0.ɵɵdirectiveInject(i2.K8sApiService), i0.ɵɵdirectiveInject(i3.K8sUtilService), i0.ɵɵdirectiveInject(DIALOG_DATA)); }; }
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: UpdateDisplayNameDialogComponent, selectors: [["ng-component"]], standalone: true, features: [i0.ɵɵStandaloneFeature], decls: 26, vars: 26, consts: [["validateMaxLength", ""], ["auiFormItemLabel", ""], [1, "last-form-item-no-margin"], ["aui-input", "", "name", "displayName", "autocomplete", "off", 3, "ngModel", "ngModelChange", 4, "ngIf", "ngIfElse"], ["aui-button", "primary", 3, "click", "loading", "disabled"], ["aui-button", "", "auiDialogClose", ""], ["aui-input", "", "name", "displayName", "autocomplete", "off", 3, "ngModelChange", "ngModel"], ["aui-input", "", "name", "displayName", "autocomplete", "off", 3, "ngModelChange", "ngModel", "maxlength"]], template: function UpdateDisplayNameDialogComponent_Template(rf, ctx) { if (rf & 1) {
const _r1 = i0.ɵɵgetCurrentView();
i0.ɵɵelementStart(0, "aui-dialog-header");
i0.ɵɵtext(1);
i0.ɵɵpipe(2, "translate");
i0.ɵɵelementEnd();
i0.ɵɵelementStart(3, "aui-dialog-content")(4, "aui-form-item")(5, "label", 1);
i0.ɵɵtext(6);
i0.ɵɵpipe(7, "translate");
i0.ɵɵelementEnd();
i0.ɵɵtext(8);
i0.ɵɵpipe(9, "aclName");
i0.ɵɵelementEnd();
i0.ɵɵelementStart(10, "aui-form-item", 2)(11, "label", 1);
i0.ɵɵtext(12);
i0.ɵɵpipe(13, "translate");
i0.ɵɵelementEnd();
i0.ɵɵtemplate(14, UpdateDisplayNameDialogComponent_input_14_Template, 1, 1, "input", 3)(15, UpdateDisplayNameDialogComponent_ng_template_15_Template, 1, 2, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor);
i0.ɵɵelementEnd()();
i0.ɵɵelementStart(17, "aui-dialog-footer")(18, "button", 4);
i0.ɵɵpipe(19, "async");
i0.ɵɵpipe(20, "async");
i0.ɵɵlistener("click", function UpdateDisplayNameDialogComponent_Template_button_click_18_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.confirm()); });
i0.ɵɵtext(21);
i0.ɵɵpipe(22, "translate");
i0.ɵɵelementEnd();
i0.ɵɵelementStart(23, "button", 5);
i0.ɵɵtext(24);
i0.ɵɵpipe(25, "translate");
i0.ɵɵelementEnd()();
} if (rf & 2) {
const validateMaxLength_r5 = i0.ɵɵreference(16);
i0.ɵɵadvance();
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 10, "update_display_name"), "\n");
i0.ɵɵadvance(5);
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(7, 12, "name"), " ");
i0.ɵɵadvance(2);
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(9, 14, ctx.data.resource), " ");
i0.ɵɵadvance(4);
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(13, 16, "display_name"), " ");
i0.ɵɵadvance(2);
i0.ɵɵproperty("ngIf", !ctx.data.validateMaxLength)("ngIfElse", validateMaxLength_r5);
i0.ɵɵadvance(4);
i0.ɵɵproperty("loading", i0.ɵɵpipeBind1(19, 18, ctx.confirming$$))("disabled", i0.ɵɵpipeBind1(20, 20, ctx.confirming$$));
i0.ɵɵadvance(3);
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(22, 22, "update"), " ");
i0.ɵɵadvance(3);
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(25, 24, "cancel"), " ");
} }, dependencies: [AsyncPipe,
ButtonModule, i1.ButtonComponent, DialogModule, i1.DialogHeaderComponent, i1.DialogContentComponent, i1.DialogFooterComponent, i1.DialogCloseDirective, NgIf,
InputModule, i1.InputComponent, FormModule, i1.FormItemComponent, i1.FormItemLabelDirective, FormsModule, i4.DefaultValueAccessor, i4.NgControlStatus, i4.MaxLengthValidator, i4.NgModel, i5.TranslatePipe, i6.K8sNamePipe], encapsulation: 2, changeDetection: 0 }); }
}
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(UpdateDisplayNameDialogComponent, [{
type: Component,
args: [{ standalone: true, preserveWhitespaces: false, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
AsyncPipe,
ButtonModule,
DialogModule,
NgIf,
InputModule,
FormModule,
FormsModule,
TRANSLATE_MODULE,
K8S_UTIL_PIPES_MODULE,
], template: "<aui-dialog-header>\n {{ 'update_display_name' | translate }}\n</aui-dialog-header>\n<aui-dialog-content>\n <aui-form-item>\n <label auiFormItemLabel>\n {{ 'name' | translate }}\n </label>\n {{ data.resource | aclName }}\n </aui-form-item>\n <aui-form-item class=\"last-form-item-no-margin\">\n <label auiFormItemLabel>\n {{ 'display_name' | translate }}\n </label>\n <input\n *ngIf=\"!data.validateMaxLength; else validateMaxLength\"\n aui-input\n name=\"displayName\"\n autocomplete=\"off\"\n [(ngModel)]=\"displayName\"\n />\n <ng-template #validateMaxLength>\n <input\n aui-input\n name=\"displayName\"\n autocomplete=\"off\"\n [(ngModel)]=\"displayName\"\n [maxlength]=\"64\"\n />\n </ng-template>\n </aui-form-item>\n</aui-dialog-content>\n<aui-dialog-footer>\n <button\n aui-button=\"primary\"\n [loading]=\"confirming$$ | async\"\n [disabled]=\"confirming$$ | async\"\n (click)=\"confirm()\"\n >\n {{ 'update' | translate }}\n </button>\n <button\n aui-button\n auiDialogClose\n >\n {{ 'cancel' | translate }}\n </button>\n</aui-dialog-footer>\n" }]
}], () => [{ type: i1.DialogRef }, { type: i2.K8sApiService }, { type: i3.K8sUtilService }, { type: undefined, decorators: [{
type: Inject,
args: [DIALOG_DATA]
}] }], null); })();
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(UpdateDisplayNameDialogComponent, { className: "UpdateDisplayNameDialogComponent" }); })();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2s4cy1zaGFyZWQvdXBkYXRlLWRpc3BsYXktbmFtZS1kaWFsb2cvY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vc3JjL2s4cy1zaGFyZWQvdXBkYXRlLWRpc3BsYXktbmFtZS1kaWFsb2cvdGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFdBQVcsRUFDWCxZQUFZLEVBQ1osWUFBWSxFQUNaLFdBQVcsRUFDWCxVQUFVLEdBQ1gsTUFBTSxZQUFZLENBQUM7QUFDcEIsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN0QyxPQUFPLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUdqRCxPQUFPLEVBQUUsYUFBYSxFQUF5QixNQUFNLHNCQUFzQixDQUFDO0FBQzVFLE9BQU8sRUFDTCxZQUFZLEVBQ1osY0FBYyxFQUdkLHFCQUFxQixHQUN0QixNQUFNLHVCQUF1QixDQUFDO0FBQy9CLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7Ozs7O0lDVDFELGdDQU1FO0lBREEseVRBQXlCO0lBTDNCLGlCQU1FOzs7SUFEQSxrREFBeUI7Ozs7SUFHekIsZ0NBTUU7SUFGQSwrVEFBeUI7SUFKM0IsaUJBTUU7OztJQUZBLGtEQUF5QjtJQUN6Qiw4QkFBZ0I7O0FEZXhCLE1BQU0sT0FBTyxn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QUFTO29CQUNULFlBQVk7b0JBQ1osWUFBWTtvQkFDWixJQUFJO29CQUNKLFdBQVc7b0JBQ1gsVUFBVTtvQkFDVixXQUFXO29CQUNYLGdCQUFnQjtvQkFDaEIscUJBQXFCO2lCQUN0Qjs7c0JBV0UsTUFBTTt1QkFBQyxXQUFXOztrRkFUVixnQ0FBZ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEaWFsb2dSZWYsXG4gIERJQUxPR19EQVRBLFxuICBCdXR0b25Nb2R1bGUsXG4gIERpYWxvZ01vZHVsZSxcbiAgSW5wdXRNb2R1bGUsXG4gIEZvcm1Nb2R1bGUsXG59IGZyb20gJ0BhbGF1ZGEvdWknO1xuaW1wb3J0IHsgQXN5bmNQaXBlLCBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBzbmFrZUNhc2UgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBmaW5hbGl6ZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRGVlcFBhcnRpYWwgfSBmcm9tICd0cy1lc3NlbnRpYWxzL2Rpc3QvZGVlcC1wYXJ0aWFsJztcblxuaW1wb3J0IHsgSzhzQXBpU2VydmljZSwgSzhzUmVzb3VyY2VEZWZpbml0aW9uIH0gZnJvbSAnLi4vLi4vYXBpL3B1YmxpYy1hcGknO1xuaW1wb3J0IHtcbiAgRElTUExBWV9OQU1FLFxuICBLOHNVdGlsU2VydmljZSxcbiAgS3ViZXJuZXRlc1Jlc291cmNlLFxuICBSZXNvdXJjZVR5cGUsXG4gIEs4U19VVElMX1BJUEVTX01PRFVMRSxcbn0gZnJvbSAnLi4vLi4vY29yZS9wdWJsaWMtYXBpJztcbmltcG9ydCB7IFRSQU5TTEFURV9NT0RVTEUgfSBmcm9tICcuLi8uLi90cmFuc2xhdGUvcHVibGljLWFwaSc7XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICB0ZW1wbGF0ZVVybDogJ3RlbXBsYXRlLmh0bWwnLFxuICBwcmVzZXJ2ZVdoaXRlc3BhY2VzOiBmYWxzZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtcbiAgICBBc3luY1BpcGUsXG4gICAgQnV0dG9uTW9kdWxlLFxuICAgIERpYWxvZ01vZHVsZSxcbiAgICBOZ0lmLFxuICAgIElucHV0TW9kdWxlLFxuICAgIEZvcm1Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgVFJBTlNMQVRFX01PRFVMRSxcbiAgICBLOFNfVVRJTF9QSVBFU19NT0RVTEUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFVwZGF0ZURpc3BsYXlOYW1lRGlhbG9nQ29tcG9uZW50PFQgZXh0ZW5kcyBLdWJlcm5ldGVzUmVzb3VyY2U+IHtcbiAgZGlzcGxheU5hbWUgPSB0aGlzLms4c1V0aWwuZ2V0RGlzcGxheU5hbWUodGhpcy5kYXRhLnJlc291cmNlKTtcblxuICBjb25maXJtaW5nJCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRpYWxvZ1JlZjogRGlhbG9nUmVmLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgazhzQXBpOiBLOHNBcGlTZXJ2aWNlPFJlc291cmNlVHlwZT4sXG4gICAgcHJpdmF0ZSByZWFkb25seSBrOHNVdGlsOiBLOHNVdGlsU2VydmljZSxcbiAgICBASW5qZWN0KERJQUxPR19EQVRBKVxuICAgIHB1YmxpYyBkYXRhOiB7XG4gICAgICBkZWZpbml0aW9uPzogSzhzUmVzb3VyY2VEZWZpbml0aW9uO1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVwcmVjYXRlZCB1c2UgYGRlZmluaXRpb25gIGluc3RlYWRcbiAgICAgICAqL1xuICAgICAgdHlwZT86IFJlc291cmNlVHlwZTtcbiAgICAgIGNsdXN0ZXI/OiBzdHJpbmc7XG4gICAgICByZXNvdXJjZTogVDtcbiAgICAgIHZhbGlkYXRlTWF4TGVuZ3RoPzogYm9vbGVhbjtcbiAgICB9LFxuICApIHt9XG5cbiAgY29uZmlybSgpIHtcbiAgICB0aGlzLmNvbmZpcm1pbmckJC5uZXh0KHRydWUpO1xuICAgIHRoaXMuazhzQXBpXG4gICAgICAucGF0Y2hSZXNvdXJjZTxUPih7XG4gICAgICAgIC4uLih0aGlzLmRhdGEuZGVmaW5pdGlvblxuICAgICAgICAgID8ge1xuICAgICAgICAgICAgICBkZWZpbml0aW9uOiB0aGlzLmRhdGEuZGVmaW5pdGlvbixcbiAgICAgICAgICAgIH1cbiAgICAgICAgICA6IHtcbiAgICAgICAgICAgICAgdHlwZTpcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGEudHlwZSB8fFxuICAgICAgICAgICAgICAgIChzbmFrZUNhc2UoXG4gICAgICAgICAgICAgICAgICB0aGlzLmRhdGEucmVzb3VyY2Uua2luZCxcbiAgICAgICAgICAgICAgICApLnRvVXBwZXJDYXNlKCkgYXMgUmVzb3VyY2VUeXBlKSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICBjbHVzdGVyOiB0aGlzLmRhdGEuY2x1c3RlcixcbiAgICAgICAgcmVzb3VyY2U6IHRoaXMuZGF0YS5yZXNvdXJjZSxcbiAgICAgICAgcGFydDoge1xuICAgICAgICAgIG1ldGFkYXRhOiB7XG4gICAgICAgICAgICBhbm5vdGF0aW9uczoge1xuICAgICAgICAgICAgICBbdGhpcy5rOHNVdGlsLm5vcm1hbGl6ZVR5cGUoRElTUExBWV9OQU1FKV06IHRoaXMuZGlzcGxheU5hbWUsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0gYXMgRGVlcFBhcnRpYWw8VD4sXG4gICAgICB9KVxuICAgICAgLnBpcGUoZmluYWxpemUoKCkgPT4gdGhpcy5jb25maXJtaW5nJCQubmV4dChmYWxzZSkpKVxuICAgICAgLnN1YnNjcmliZShyZXNvdXJjZSA9PiB0aGlzLmRpYWxvZ1JlZi5jbG9zZShyZXNvdXJjZSkpO1xuICB9XG59XG4iLCI8YXVpLWRpYWxvZy1oZWFkZXI+XG4gIHt7ICd1cGRhdGVfZGlzcGxheV9uYW1lJyB8IHRyYW5zbGF0ZSB9fVxuPC9hdWktZGlhbG9nLWhlYWRlcj5cbjxhdWktZGlhbG9nLWNvbnRlbnQ+XG4gIDxhdWktZm9ybS1pdGVtPlxuICAgIDxsYWJlbCBhdWlGb3JtSXRlbUxhYmVsPlxuICAgICAge3sgJ25hbWUnIHwgdHJhbnNsYXRlIH19XG4gICAgPC9sYWJlbD5cbiAgICB7eyBkYXRhLnJlc291cmNlIHwgYWNsTmFtZSB9fVxuICA8L2F1aS1mb3JtLWl0ZW0+XG4gIDxhdWktZm9ybS1pdGVtIGNsYXNzPVwibGFzdC1mb3JtLWl0ZW0tbm8tbWFyZ2luXCI+XG4gICAgPGxhYmVsIGF1aUZvcm1JdGVtTGFiZWw+XG4gICAgICB7eyAnZGlzcGxheV9uYW1lJyB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvbGFiZWw+XG4gICAgPGlucHV0XG4gICAgICAqbmdJZj1cIiFkYXRhLnZhbGlkYXRlTWF4TGVuZ3RoOyBlbHNlIHZhbGlkYXRlTWF4TGVuZ3RoXCJcbiAgICAgIGF1aS1pbnB1dFxuICAgICAgbmFtZT1cImRpc3BsYXlOYW1lXCJcbiAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgICBbKG5nTW9kZWwpXT1cImRpc3BsYXlOYW1lXCJcbiAgICAvPlxuICAgIDxuZy10ZW1wbGF0ZSAjdmFsaWRhdGVNYXhMZW5ndGg+XG4gICAgICA8aW5wdXRcbiAgICAgICAgYXVpLWlucHV0XG4gICAgICAgIG5hbWU9XCJkaXNwbGF5TmFtZVwiXG4gICAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgICAgIFsobmdNb2RlbCldPVwiZGlzcGxheU5hbWVcIlxuICAgICAgICBbbWF4bGVuZ3RoXT1cIjY0XCJcbiAgICAgIC8+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9hdWktZm9ybS1pdGVtPlxuPC9hdWktZGlhbG9nLWNvbnRlbnQ+XG48YXVpLWRpYWxvZy1mb290ZXI+XG4gIDxidXR0b25cbiAgICBhdWktYnV0dG9uPVwicHJpbWFyeVwiXG4gICAgW2xvYWRpbmddPVwiY29uZmlybWluZyQkIHwgYXN5bmNcIlxuICAgIFtkaXNhYmxlZF09XCJjb25maXJtaW5nJCQgfCBhc3luY1wiXG4gICAgKGNsaWNrKT1cImNvbmZpcm0oKVwiXG4gID5cbiAgICB7eyAndXBkYXRlJyB8IHRyYW5zbGF0ZSB9fVxuICA8L2J1dHRvbj5cbiAgPGJ1dHRvblxuICAgIGF1aS1idXR0b25cbiAgICBhdWlEaWFsb2dDbG9zZVxuICA+XG4gICAge3sgJ2NhbmNlbCcgfCB0cmFuc2xhdGUgfX1cbiAgPC9idXR0b24+XG48L2F1aS1kaWFsb2ctZm9vdGVyPlxuIl19