UNPKG

survey-creator-angular

Version:

Use SurveyJS Creator to create or edit JSON for SurveyJS Form Library.

61 lines 14.5 kB
import { Component, ElementRef, Input, ViewChild } from "@angular/core"; import { AngularComponentFactory, BaseAngular, SurveyContentComponent } from "survey-angular-ui"; import * as i0 from "@angular/core"; import * as i1 from "survey-angular-ui"; import * as i2 from "./tabbed-menu/tabbed-menu/tabbed-menu.component"; import * as i3 from "./side-bar/side-bar.component"; import * as i4 from "@angular/common"; export class CreatorComponent extends BaseAngular { constructor(changeDetectorRef) { super(changeDetectorRef); changeDetectorRef.detach(); } getModel() { return this.model; } get creator() { return this.model; } getShouldReattachChangeDetector() { return false; } onModelChanged() { this.changeDetectorRef.detectChanges(); if (this.previousModel) { this.previousModel.unsubscribeRootElement(); } if (this.creator && this.container.nativeElement) { this.creator.setRootElement(this.container.nativeElement); } } ngAfterViewInit() { this.creator.setRootElement(this.container.nativeElement); super.ngOnInit(); } ngOnDestroy() { this.creator.unsubscribeRootElement(); super.ngOnDestroy(); } get visibleTabs() { return this.creator.tabs.filter(tab => this.creator.viewType == tab.id && tab.visible); } trackTabBy(_, tab) { return tab.id; } } CreatorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CreatorComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); CreatorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: CreatorComponent, selector: "survey-creator", inputs: { model: "model" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"!creator.isCreatorDisposed\">\n <sv-ng-modal-container></sv-ng-modal-container>\n <div [class]=\"creator.getRootCss()\" [style]=\"creator.themeVariables\" #container>\n <div>\n <sv-svg-bundle></sv-svg-bundle>\n </div>\n <div class=\"svc-full-container svc-creator__area svc-flex-column\"\n [class.svc-creator__area--with-banner]=\"!creator.haveCommercialLicense\">\n <div class=\"svc-flex-row svc-full-container\"\n [class.svc-creator__side-bar--left]=\"creator.sidebarLocation == 'left'\">\n <div class=\"svc-flex-column svc-flex-row__element svc-flex-row__element--growing\">\n <div class=\"svc-top-bar\">\n <div class=\"svc-tabbed-menu-wrapper\" [visible]=\"creator.showTabs\">\n <svc-tabbed-menu [model]=\"creator.tabbedMenu\"></svc-tabbed-menu>\n </div>\n <div *ngIf=\"creator.showToolbar\" class=\"svc-toolbar-wrapper\" [visible]=\"creator.showToolbar\">\n <sv-action-bar [model]=\"creator.toolbar\"></sv-action-bar>\n </div>\n </div>\n <div class=\"svc-creator__content-wrapper svc-flex-row\"\n [class.svc-creator__content-wrapper--footer-toolbar]=\"creator.isMobileView\">\n <div class=\"svc-creator__content-holder svc-flex-column\">\n <ng-container *ngFor=\"let tab of visibleTabs; trackBy: trackTabBy\">\n <div role=\"tabpanel\" class=\"svc-creator-tab\" [attr.id]=\"'scrollableDiv-' + tab.id\"\n [attr.aria-labelledby]=\"'tab-' + tab.id\"\n [class.svc-creator__toolbox--right]=\"creator.toolboxLocation == 'right'\">\n <ng-template\n [component]=\"{ name: tab.componentContent, data: { model: tab.data.model } }\"></ng-template>\n </div>\n </ng-container>\n </div>\n </div>\n <div *ngIf=\"creator.isMobileView\" class=\"svc-footer-bar\">\n <div class=\"svc-toolbar-wrapper\" [visible]=\"creator.isMobileView\">\n <sv-action-bar [model]=\"creator.footerToolbar\"></sv-action-bar>\n </div>\n </div>\n </div>\n <svc-side-bar [model]=\"creator.sidebar\" *ngIf=\"creator.sidebar\"></svc-side-bar>\n </div>\n <div class=\"svc-creator__banner\" *ngIf=\"!creator.haveCommercialLicense\">\n <span class=\"svc-creator__non-commercial-text\" [innerHTML]=\"creator.licenseText | safeHtml\"></span>\n </div>\n <sv-notifier [notifier]=\"creator.notifier\"></sv-notifier>\n </div>\n </div>\n</ng-container>", components: [{ type: i1.ModalComponent, selector: "sv-ng-modal-container" }, { type: i1.SvgBundleComponent, selector: "sv-svg-bundle" }, { type: i2.TabbledMenuComponent, selector: "svc-tabbed-menu", inputs: ["model"] }, { type: i1.ActionBarComponent, selector: "sv-action-bar, sv-ng-action-bar", inputs: ["model", "handleClick"] }, { type: i3.SidebarComponent, selector: "svc-side-bar", inputs: ["model"] }, { type: i1.NotifierComponent, selector: "sv-notifier", inputs: ["notifier"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.VisibleDirective, selector: "[visible]", inputs: ["visible"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.DynamicComponentDirective, selector: "[component]", inputs: ["component"] }], pipes: { "safeHtml": i1.SafeHtmlPipe } }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: CreatorComponent, decorators: [{ type: Component, args: [{ selector: "survey-creator", templateUrl: "./creator.component.html" }] }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { model: [{ type: Input }], container: [{ type: ViewChild, args: ["container", { read: ElementRef }] }] } }); AngularComponentFactory.Instance.registerComponent("survey-widget", SurveyContentComponent); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY3JlYXRvci5jb21wb25lbnQudHMiLCIuLi8uLi9zcmMvY3JlYXRvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9DLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsV0FBVyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7OztBQU9qRyxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsV0FBK0I7SUFJbkUsWUFBWSxpQkFBb0M7UUFDOUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDekIsaUJBQWlCLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUNTLFFBQVE7UUFDaEIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFDRCxJQUFXLE9BQU87UUFDaEIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFDa0IsK0JBQStCO1FBQ2hELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUNrQixjQUFjO1FBQy9CLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN2QyxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDdEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1NBQzdDO1FBQ0QsSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxFQUFFO1lBQ2hELElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDM0Q7SUFDSCxDQUFDO0lBQ00sZUFBZTtRQUNwQixJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzFELEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBQ2UsV0FBVztRQUN6QixJQUFJLENBQUMsT0FBTyxDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFDdEMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFDRCxJQUFXLFdBQVc7UUFDcEIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsSUFBSSxHQUFHLENBQUMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN6RixDQUFDO0lBQ0QsVUFBVSxDQUFDLENBQVMsRUFBRSxHQUFtQjtRQUN2QyxPQUFPLEdBQUcsQ0FBQyxFQUFFLENBQUM7SUFDaEIsQ0FBQzs7OEdBdkNVLGdCQUFnQjtrR0FBaEIsZ0JBQWdCLHFLQUVLLFVBQVUsb0RDVjVDLHNrRkE4Q2U7NEZEdENGLGdCQUFnQjtrQkFKNUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixXQUFXLEVBQUUsMEJBQTBCO2lCQUN4Qzt3R0FFVSxLQUFLO3NCQUFiLEtBQUs7Z0JBQ3dDLFNBQVM7c0JBQXRELFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTs7QUF3QzlDLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLEVBQUUsc0JBQXNCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIElucHV0LCBWaWV3Q2hpbGQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQW5ndWxhckNvbXBvbmVudEZhY3RvcnksIEJhc2VBbmd1bGFyLCBTdXJ2ZXlDb250ZW50Q29tcG9uZW50IH0gZnJvbSBcInN1cnZleS1hbmd1bGFyLXVpXCI7XG5pbXBvcnQgeyBTdXJ2ZXlDcmVhdG9yTW9kZWwsIFRhYmJlZE1lbnVJdGVtIH0gZnJvbSBcInN1cnZleS1jcmVhdG9yLWNvcmVcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcInN1cnZleS1jcmVhdG9yXCIsXG4gIHRlbXBsYXRlVXJsOiBcIi4vY3JlYXRvci5jb21wb25lbnQuaHRtbFwiXG59KVxuZXhwb3J0IGNsYXNzIENyZWF0b3JDb21wb25lbnQgZXh0ZW5kcyBCYXNlQW5ndWxhcjxTdXJ2ZXlDcmVhdG9yTW9kZWw+IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBJbnB1dCgpIG1vZGVsITogU3VydmV5Q3JlYXRvck1vZGVsO1xuICBAVmlld0NoaWxkKFwiY29udGFpbmVyXCIsIHsgcmVhZDogRWxlbWVudFJlZiB9KSBjb250YWluZXIhOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcblxuICBjb25zdHJ1Y3RvcihjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICBzdXBlcihjaGFuZ2VEZXRlY3RvclJlZik7XG4gICAgY2hhbmdlRGV0ZWN0b3JSZWYuZGV0YWNoKCk7XG4gIH1cbiAgcHJvdGVjdGVkIGdldE1vZGVsKCk6IFN1cnZleUNyZWF0b3JNb2RlbCB7XG4gICAgcmV0dXJuIHRoaXMubW9kZWw7XG4gIH1cbiAgcHVibGljIGdldCBjcmVhdG9yKCk6IFN1cnZleUNyZWF0b3JNb2RlbCB7XG4gICAgcmV0dXJuIHRoaXMubW9kZWw7XG4gIH1cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGdldFNob3VsZFJlYXR0YWNoQ2hhbmdlRGV0ZWN0b3IoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHByb3RlY3RlZCBvdmVycmlkZSBvbk1vZGVsQ2hhbmdlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICBpZiAodGhpcy5wcmV2aW91c01vZGVsKSB7XG4gICAgICB0aGlzLnByZXZpb3VzTW9kZWwudW5zdWJzY3JpYmVSb290RWxlbWVudCgpO1xuICAgIH1cbiAgICBpZiAodGhpcy5jcmVhdG9yICYmIHRoaXMuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgIHRoaXMuY3JlYXRvci5zZXRSb290RWxlbWVudCh0aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50KTtcbiAgICB9XG4gIH1cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmNyZWF0b3Iuc2V0Um9vdEVsZW1lbnQodGhpcy5jb250YWluZXIubmF0aXZlRWxlbWVudCk7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcbiAgfVxuICBwdWJsaWMgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5jcmVhdG9yLnVuc3Vic2NyaWJlUm9vdEVsZW1lbnQoKTtcbiAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICB9XG4gIHB1YmxpYyBnZXQgdmlzaWJsZVRhYnMoKTogQXJyYXk8VGFiYmVkTWVudUl0ZW0+IHtcbiAgICByZXR1cm4gdGhpcy5jcmVhdG9yLnRhYnMuZmlsdGVyKHRhYiA9PiB0aGlzLmNyZWF0b3Iudmlld1R5cGUgPT0gdGFiLmlkICYmIHRhYi52aXNpYmxlKTtcbiAgfVxuICB0cmFja1RhYkJ5KF86IG51bWJlciwgdGFiOiBUYWJiZWRNZW51SXRlbSkge1xuICAgIHJldHVybiB0YWIuaWQ7XG4gIH1cbn1cblxuQW5ndWxhckNvbXBvbmVudEZhY3RvcnkuSW5zdGFuY2UucmVnaXN0ZXJDb21wb25lbnQoXCJzdXJ2ZXktd2lkZ2V0XCIsIFN1cnZleUNvbnRlbnRDb21wb25lbnQpO1xuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFjcmVhdG9yLmlzQ3JlYXRvckRpc3Bvc2VkXCI+XG4gIDxzdi1uZy1tb2RhbC1jb250YWluZXI+PC9zdi1uZy1tb2RhbC1jb250YWluZXI+XG4gIDxkaXYgW2NsYXNzXT1cImNyZWF0b3IuZ2V0Um9vdENzcygpXCIgW3N0eWxlXT1cImNyZWF0b3IudGhlbWVWYXJpYWJsZXNcIiAjY29udGFpbmVyPlxuICAgIDxkaXY+XG4gICAgICA8c3Ytc3ZnLWJ1bmRsZT48L3N2LXN2Zy1idW5kbGU+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInN2Yy1mdWxsLWNvbnRhaW5lciBzdmMtY3JlYXRvcl9fYXJlYSBzdmMtZmxleC1jb2x1bW5cIlxuICAgICAgW2NsYXNzLnN2Yy1jcmVhdG9yX19hcmVhLS13aXRoLWJhbm5lcl09XCIhY3JlYXRvci5oYXZlQ29tbWVyY2lhbExpY2Vuc2VcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzdmMtZmxleC1yb3cgc3ZjLWZ1bGwtY29udGFpbmVyXCJcbiAgICAgICAgW2NsYXNzLnN2Yy1jcmVhdG9yX19zaWRlLWJhci0tbGVmdF09XCJjcmVhdG9yLnNpZGViYXJMb2NhdGlvbiA9PSAnbGVmdCdcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInN2Yy1mbGV4LWNvbHVtbiBzdmMtZmxleC1yb3dfX2VsZW1lbnQgc3ZjLWZsZXgtcm93X19lbGVtZW50LS1ncm93aW5nXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInN2Yy10b3AtYmFyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ZjLXRhYmJlZC1tZW51LXdyYXBwZXJcIiBbdmlzaWJsZV09XCJjcmVhdG9yLnNob3dUYWJzXCI+XG4gICAgICAgICAgICAgIDxzdmMtdGFiYmVkLW1lbnUgW21vZGVsXT1cImNyZWF0b3IudGFiYmVkTWVudVwiPjwvc3ZjLXRhYmJlZC1tZW51PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY3JlYXRvci5zaG93VG9vbGJhclwiIGNsYXNzPVwic3ZjLXRvb2xiYXItd3JhcHBlclwiIFt2aXNpYmxlXT1cImNyZWF0b3Iuc2hvd1Rvb2xiYXJcIj5cbiAgICAgICAgICAgICAgPHN2LWFjdGlvbi1iYXIgW21vZGVsXT1cImNyZWF0b3IudG9vbGJhclwiPjwvc3YtYWN0aW9uLWJhcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdmMtY3JlYXRvcl9fY29udGVudC13cmFwcGVyIHN2Yy1mbGV4LXJvd1wiXG4gICAgICAgICAgICBbY2xhc3Muc3ZjLWNyZWF0b3JfX2NvbnRlbnQtd3JhcHBlci0tZm9vdGVyLXRvb2xiYXJdPVwiY3JlYXRvci5pc01vYmlsZVZpZXdcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdmMtY3JlYXRvcl9fY29udGVudC1ob2xkZXIgc3ZjLWZsZXgtY29sdW1uXCI+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHRhYiBvZiB2aXNpYmxlVGFiczsgdHJhY2tCeTogdHJhY2tUYWJCeVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgcm9sZT1cInRhYnBhbmVsXCIgY2xhc3M9XCJzdmMtY3JlYXRvci10YWJcIiBbYXR0ci5pZF09XCInc2Nyb2xsYWJsZURpdi0nICsgdGFiLmlkXCJcbiAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCIndGFiLScgKyB0YWIuaWRcIlxuICAgICAgICAgICAgICAgICAgW2NsYXNzLnN2Yy1jcmVhdG9yX190b29sYm94LS1yaWdodF09XCJjcmVhdG9yLnRvb2xib3hMb2NhdGlvbiA9PSAncmlnaHQnXCI+XG4gICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgICAgW2NvbXBvbmVudF09XCJ7IG5hbWU6IHRhYi5jb21wb25lbnRDb250ZW50LCBkYXRhOiB7IG1vZGVsOiB0YWIuZGF0YS5tb2RlbCB9IH1cIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJjcmVhdG9yLmlzTW9iaWxlVmlld1wiIGNsYXNzPVwic3ZjLWZvb3Rlci1iYXJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdmMtdG9vbGJhci13cmFwcGVyXCIgW3Zpc2libGVdPVwiY3JlYXRvci5pc01vYmlsZVZpZXdcIj5cbiAgICAgICAgICAgICAgPHN2LWFjdGlvbi1iYXIgW21vZGVsXT1cImNyZWF0b3IuZm9vdGVyVG9vbGJhclwiPjwvc3YtYWN0aW9uLWJhcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHN2Yy1zaWRlLWJhciBbbW9kZWxdPVwiY3JlYXRvci5zaWRlYmFyXCIgKm5nSWY9XCJjcmVhdG9yLnNpZGViYXJcIj48L3N2Yy1zaWRlLWJhcj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInN2Yy1jcmVhdG9yX19iYW5uZXJcIiAqbmdJZj1cIiFjcmVhdG9yLmhhdmVDb21tZXJjaWFsTGljZW5zZVwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInN2Yy1jcmVhdG9yX19ub24tY29tbWVyY2lhbC10ZXh0XCIgW2lubmVySFRNTF09XCJjcmVhdG9yLmxpY2Vuc2VUZXh0IHwgc2FmZUh0bWxcIj48L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxzdi1ub3RpZmllciBbbm90aWZpZXJdPVwiY3JlYXRvci5ub3RpZmllclwiPjwvc3Ytbm90aWZpZXI+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy1jb250YWluZXI+Il19