UNPKG

@rangertechnologies/ngnxt

Version:

This library was used for creating dymanic UI based on the input JSON/data

408 lines (402 loc) 42.1 kB
import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'; import { NxtAppComponent } from './nxt-app.component'; import { QuestionnaireComponent } from './pages/questionnaire/questionnaire.component'; import { CommonModule } from "@angular/common"; import { FormsModule, ReactiveFormsModule } from '@angular/forms'; import { NgCircleProgressModule } from 'ng-circle-progress'; import { NgxSpinnerModule } from "ngx-spinner"; import { PickLocationComponent } from './components/pick-location/pick-location.component'; import { NgSelectModule } from '@ng-select/ng-select'; import { CustomInputComponent } from './components/custom-input/custom-input.component'; import { CustomTextAreaComponent } from './components/custom-text-area/custom-text-area.component'; import { CustomTableComponent } from './components/custom-table/custom-table.component'; import { CustomRichTextComponent } from './components/custom-rich-text/custom-rich-text.component'; //RS 06JAN2025 Imports modules and components for browser compatibility, Quill-based rich text editing, and custom configurations import { QuillModule } from 'ngx-quill'; import { DropdownWithFlagComponent } from './components/dropdown-with-flag/dropdown-with-flag.component'; import { OwlDateTimeModule, OwlNativeDateTimeModule } from '@danielmoncada/angular-datetime-picker'; //import { OWL_MOMENT_DATE_TIME_ADAPTER_OPTIONS } from 'ng-pick-datetime/date-time/adapter/moment-adapter/moment-date-time-adapter.class'; import { CustomDatePickerComponent } from './components/custom-date-picker/custom-date-picker.component'; import { CustomDropdownComponent } from './components/custom-dropdown/custom-dropdown.component'; // VD 23JAN24 removed HttpClientModule import { BookletComponent } from './pages/booklet/booklet.component'; import { GoogleMapsModule } from '@angular/google-maps'; import { SearchBoxComponent } from './components/search-box/search-box.component'; import { QuestionbookComponent } from './pages/questionbook/questionbook.component'; import { FileUploadComponent } from './components/file-upload/file-upload.component'; import { SummaryPageComponent } from './pages/summary-page/summary-page.component'; import { FileViewComponent } from './components/file-view/file-view.component'; import { DependentTableComponent } from './components/dependent-table/dependent-table.component'; import { CustomLabelComponent } from './components/custom-label/custom-label.component'; import { TableAppendixComponent } from './components/table-appendix/table-appendix.component'; import { CustomDateComponent } from './components/custom-date/custom-date.component'; import { CustomTimeComponent } from './components/custom-time/custom-time.component'; import { CustomButtonComponent } from './components/custom-button/custom-button.component'; // HA 19DEC23 Importing for translation import { I18nModule } from './i18n.module'; import { I18nComponent } from './i18n.component'; import { I18nPipe } from './i18n.pipe'; import * as enI18n from './en.i18n'; import * as arI18n from './ar.i18n'; import * as tamI18n from './tam.i18n'; import { I18nService } from './i18n.service'; import { MatTooltipModule } from '@angular/material/tooltip'; // VD 20JUN24 - help text changes import { GetValuePipe } from './pipe/get-value.pipe'; // VD 26JUN24 - pipe changes import { CustomCalendarComponent } from './components/custom-calendar/custom-calendar.component'; import { CustomModelComponent } from './components/custom-model/custom-model.component'; import { CustomImageComponent } from './components/custom-image/custom-image.component'; import { CustomRadioComponent } from './components/custom-radio/custom-radio.component'; import { LoaderComponent } from './components/loader/loader.component'; import { ComponenthostDirective } from './directives/componenthost/componenthost.directive'; // AP 22JAN2025 Added the below components import { ElementComponent } from './pages/builder/element/element.component'; import { PropertiesComponent } from './pages/builder/properties/properties.component'; import { MenuComponent } from './pages/builder/menu/menu.component'; // AP 22JAN2025 Added the DragDropModule import { DragDropModule } from '@angular/cdk/drag-drop'; //AP 22JAN2025 Added the FormBuilderService import { FormBuilderService } from './services/form-builder.service'; import { FormComponent } from './pages/builder/form/form.component'; import { NxtDatatable } from './components/datatable/datatable.component'; import { ImageCropperComponent } from './components/image-cropper/component/image-cropper.component'; import * as i0 from "@angular/core"; import * as i1 from "ngx-quill"; import * as i2 from "./i18n.module"; import * as i3 from "ng-circle-progress"; // export const MY_CUSTOM_FORMATS = { // fullPickerInput: 'DD/MM/YYYY HH:mm:ss', // useUtc: true, // }; // HA 19DEC23 variable created for translation const languages = [ // { lang: 'EN', flag: 'assets/images/en.i18n.png', file: enI18n }, { lang: 'EN', file: enI18n }, { lang: 'TAM', file: tamI18n }, { lang: 'AR', file: arI18n } ]; export class NxtAppModule { static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NxtAppModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: NxtAppModule, bootstrap: [NxtAppComponent], declarations: [NxtAppComponent, QuestionnaireComponent, PickLocationComponent, CustomInputComponent, CustomTextAreaComponent, CustomTableComponent, CustomCalendarComponent, CustomDatePickerComponent, DropdownWithFlagComponent, CustomDropdownComponent, BookletComponent, SearchBoxComponent, QuestionbookComponent, FileUploadComponent, SummaryPageComponent, FileViewComponent, DependentTableComponent, CustomLabelComponent, TableAppendixComponent, CustomDateComponent, CustomTimeComponent, CustomButtonComponent, CustomModelComponent, LoaderComponent, I18nComponent, I18nPipe, CustomImageComponent, CustomRadioComponent, //AP 22JAN2025 Added the below components ElementComponent, PropertiesComponent, MenuComponent, FormComponent], imports: [i1.QuillModule, // RS 06JAN2025 Initializes the QuillModule with default settings for integrating the Quill editor. CustomRichTextComponent, CommonModule, FormsModule, NxtDatatable, // BrowserModule, ReactiveFormsModule, OwlDateTimeModule, OwlNativeDateTimeModule, ComponenthostDirective, GetValuePipe, // VD 23JAN24 removed HttpClientModule NgSelectModule, GoogleMapsModule, MatTooltipModule, DragDropModule, //AP 22JAN25 Added the DragDropModule ImageCropperComponent, //AgmCoreModule.forRoot({ // apiKey: GOOGLE_MAP_API_KEY, // libraries: ['geometry', 'places', 'visualization', 'drawing'] // }), NgxSpinnerModule, i2.I18nModule, i3.NgCircleProgressModule], exports: [NxtAppComponent, QuestionnaireComponent, BookletComponent, SummaryPageComponent, I18nPipe, I18nComponent, ElementComponent, PropertiesComponent, MenuComponent, FormComponent, NxtDatatable // CustomRichTextComponent ] }); static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NxtAppModule, providers: [ I18nService, I18nPipe, FormBuilderService //AP 22JAN2025 Added the FormBuilderService ], imports: [QuillModule.forRoot(), // RS 06JAN2025 Initializes the QuillModule with default settings for integrating the Quill editor. CustomRichTextComponent, CommonModule, FormsModule, NxtDatatable, // BrowserModule, ReactiveFormsModule, OwlDateTimeModule, OwlNativeDateTimeModule, // VD 23JAN24 removed HttpClientModule NgSelectModule, GoogleMapsModule, MatTooltipModule, DragDropModule, //AgmCoreModule.forRoot({ // apiKey: GOOGLE_MAP_API_KEY, // libraries: ['geometry', 'places', 'visualization', 'drawing'] // }), NgxSpinnerModule, I18nModule.forRoot(languages), /*NgCircleProgressModule.forRoot({ "backgroundPadding": -10, "radius": 60, "space": -6, "innerStrokeColor": "#919191", "outerStrokeColor": "#db9594", "outerStrokeGradientStopColor": "#e0b1b0", "innerStrokeWidth": 2, "backgroundGradient": true, "backgroundColor": "#dd2e13", "backgroundGradientStopColor": "#dd2e13", "backgroundStroke": "#d3cfcf", "title": [ "%" ], // titleFontSize: 12, // "subtitleFontSize": 20, "animateTitle": false, "animationDuration": 1000, "showUnits": false, "clockwise":true //"backgroundStrokeWidth": "0", "backgroundGradient": true, //"backgroundColor": "#dd2e13", "backgroundGradientStopColor": "#dd2e13", "backgroundStroke": "#000000", "backgroundPadding": -10, "radius": 60, "unitsFontWeight": "600", "unitsColor": "#f2f2f2", "outerStrokeGradient": true, "outerStrokeColor": "#e0b1b0", "outerStrokeGradientStopColor": "#e0b1b0", "outerStrokeLinecap": "inherit", "innerStrokeColor": "#f6dfdf", "title": [ "%" ], "titleColor": "#e7d9d9", "titleFontSize": "31", "titleFontWeight": "100", "subtitleColor": "#f7f7f7", "subtitleFontSize": "36", "subtitleFontWeight": "900", "animateTitle": false, "animationDuration": 1000, "showTitle": true, "showUnits": true, "clockwise": false, "startFromZero": true, "showZeroOuterStroke": false, "lazy": true})*/ NgCircleProgressModule.forRoot({ "backgroundGradient": true, "backgroundColor": "#e29d98", "backgroundGradientStopColor": "#c5281c", "backgroundStroke": "#ece4e4", "backgroundStrokeWidth": 0, "backgroundPadding": -10, "radius": 60, "space": 4, "maxPercent": 100, "unitsFontSize": "35", "unitsColor": "#f0ebeb", "outerStrokeGradient": true, "outerStrokeWidth": 10, "outerStrokeColor": "#f7c0bf", "outerStrokeGradientStopColor": "#f9c9c8", "innerStrokeWidth": 0, "titleColor": "#f3eded", "titleFontSize": "40", "subtitleColor": "#444444", "showSubtitle": false })] }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NxtAppModule, decorators: [{ type: NgModule, args: [{ declarations: [NxtAppComponent, QuestionnaireComponent, PickLocationComponent, CustomInputComponent, CustomTextAreaComponent, CustomTableComponent, CustomCalendarComponent, CustomDatePickerComponent, DropdownWithFlagComponent, CustomDropdownComponent, BookletComponent, SearchBoxComponent, QuestionbookComponent, FileUploadComponent, SummaryPageComponent, FileViewComponent, DependentTableComponent, CustomLabelComponent, TableAppendixComponent, CustomDateComponent, CustomTimeComponent, CustomButtonComponent, CustomModelComponent, LoaderComponent, I18nComponent, I18nPipe, CustomImageComponent, CustomRadioComponent, //AP 22JAN2025 Added the below components ElementComponent, PropertiesComponent, MenuComponent, FormComponent ], imports: [ QuillModule.forRoot(), // RS 06JAN2025 Initializes the QuillModule with default settings for integrating the Quill editor. CustomRichTextComponent, CommonModule, FormsModule, NxtDatatable, // BrowserModule, ReactiveFormsModule, OwlDateTimeModule, OwlNativeDateTimeModule, ComponenthostDirective, GetValuePipe, // VD 23JAN24 removed HttpClientModule NgSelectModule, GoogleMapsModule, MatTooltipModule, DragDropModule, //AP 22JAN25 Added the DragDropModule ImageCropperComponent, //AgmCoreModule.forRoot({ // apiKey: GOOGLE_MAP_API_KEY, // libraries: ['geometry', 'places', 'visualization', 'drawing'] // }), NgxSpinnerModule, I18nModule.forRoot(languages), /*NgCircleProgressModule.forRoot({ "backgroundPadding": -10, "radius": 60, "space": -6, "innerStrokeColor": "#919191", "outerStrokeColor": "#db9594", "outerStrokeGradientStopColor": "#e0b1b0", "innerStrokeWidth": 2, "backgroundGradient": true, "backgroundColor": "#dd2e13", "backgroundGradientStopColor": "#dd2e13", "backgroundStroke": "#d3cfcf", "title": [ "%" ], // titleFontSize: 12, // "subtitleFontSize": 20, "animateTitle": false, "animationDuration": 1000, "showUnits": false, "clockwise":true //"backgroundStrokeWidth": "0", "backgroundGradient": true, //"backgroundColor": "#dd2e13", "backgroundGradientStopColor": "#dd2e13", "backgroundStroke": "#000000", "backgroundPadding": -10, "radius": 60, "unitsFontWeight": "600", "unitsColor": "#f2f2f2", "outerStrokeGradient": true, "outerStrokeColor": "#e0b1b0", "outerStrokeGradientStopColor": "#e0b1b0", "outerStrokeLinecap": "inherit", "innerStrokeColor": "#f6dfdf", "title": [ "%" ], "titleColor": "#e7d9d9", "titleFontSize": "31", "titleFontWeight": "100", "subtitleColor": "#f7f7f7", "subtitleFontSize": "36", "subtitleFontWeight": "900", "animateTitle": false, "animationDuration": 1000, "showTitle": true, "showUnits": true, "clockwise": false, "startFromZero": true, "showZeroOuterStroke": false, "lazy": true})*/ NgCircleProgressModule.forRoot({ "backgroundGradient": true, "backgroundColor": "#e29d98", "backgroundGradientStopColor": "#c5281c", "backgroundStroke": "#ece4e4", "backgroundStrokeWidth": 0, "backgroundPadding": -10, "radius": 60, "space": 4, "maxPercent": 100, "unitsFontSize": "35", "unitsColor": "#f0ebeb", "outerStrokeGradient": true, "outerStrokeWidth": 10, "outerStrokeColor": "#f7c0bf", "outerStrokeGradientStopColor": "#f9c9c8", "innerStrokeWidth": 0, "titleColor": "#f3eded", "titleFontSize": "40", "subtitleColor": "#444444", "showSubtitle": false }) ], bootstrap: [NxtAppComponent], schemas: [CUSTOM_ELEMENTS_SCHEMA], exports: [NxtAppComponent, QuestionnaireComponent, BookletComponent, SummaryPageComponent, I18nPipe, I18nComponent, ElementComponent, PropertiesComponent, MenuComponent, FormComponent, NxtDatatable // CustomRichTextComponent ], providers: [ I18nService, I18nPipe, FormBuilderService //AP 22JAN2025 Added the FormBuilderService ] // providers: [ // { provide: OWL_MOMENT_DATE_TIME_ADAPTER_OPTIONS, useValue: { useUtc: false } }, // { provide: OWL_DATE_TIME_FORMATS, useValue: MY_CUSTOM_FORMATS }, // ] }] }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnh0LWFwcC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9ueHQtYXBwL3NyYy9saWIvbnh0LWFwcC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDdkYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUMsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFL0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDM0YsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ3hGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQ25HLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ3hGLE9BQU8sRUFBRSx1QkFBdUIsRUFBc0IsTUFBTSwwREFBMEQsQ0FBQyxDQUFDLGlJQUFpSTtBQUN6UCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3hDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FB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O3dCQUN0QixnQkFBZ0I7d0JBQ2hCLG9CQUFvQjt3QkFDcEIsUUFBUTt3QkFDUixhQUFhO3dCQUNiLGdCQUFnQjt3QkFDaEIsbUJBQW1CO3dCQUNuQixhQUFhO3dCQUNiLGFBQWE7d0JBQ2IsWUFBWTt3QkFDWiwwQkFBMEI7cUJBQzNCO29CQUNELFNBQVMsRUFBRTt3QkFDVCxXQUFXO3dCQUNYLFFBQVE7d0JBQ1Isa0JBQWtCLENBQUEsMkNBQTJDO3FCQUM5RDtvQkFDRCxlQUFlO29CQUNmLG9GQUFvRjtvQkFDcEYscUVBQXFFO29CQUNyRSxJQUFJO2lCQUNMIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUsIENVU1RPTV9FTEVNRU5UU19TQ0hFTUEgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE54dEFwcENvbXBvbmVudCB9IGZyb20gJy4vbnh0LWFwcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUXVlc3Rpb25uYWlyZUNvbXBvbmVudCB9IGZyb20gJy4vcGFnZXMvcXVlc3Rpb25uYWlyZS9xdWVzdGlvbm5haXJlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSxSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTmdDaXJjbGVQcm9ncmVzc01vZHVsZSB9IGZyb20gJ25nLWNpcmNsZS1wcm9ncmVzcyc7XG5pbXBvcnQgeyBOZ3hTcGlubmVyTW9kdWxlIH0gZnJvbSBcIm5neC1zcGlubmVyXCI7XG5pbXBvcnQgeyBHT09HTEVfTUFQX0FQSV9LRVkgfSBmcm9tICcuLi9saWIvc2FtcGxlJztcbmltcG9ydCB7IFBpY2tMb2NhdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9waWNrLWxvY2F0aW9uL3BpY2stbG9jYXRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IE5nU2VsZWN0TW9kdWxlIH0gZnJvbSAnQG5nLXNlbGVjdC9uZy1zZWxlY3QnO1xuaW1wb3J0IHsgQ3VzdG9tSW5wdXRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY3VzdG9tLWlucHV0L2N1c3RvbS1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ3VzdG9tVGV4dEFyZWFDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY3VzdG9tLXRleHQtYXJlYS9jdXN0b20tdGV4dC1hcmVhLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDdXN0b21UYWJsZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jdXN0b20tdGFibGUvY3VzdG9tLXRhYmxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDdXN0b21SaWNoVGV4dENvbXBvbmVudCwgUXVpbGxDb25maWd1cmF0aW9uIH0gZnJvbSAnLi9jb21wb25lbnRzL2N1c3RvbS1yaWNoLXRleHQvY3VzdG9tLXJpY2gtdGV4dC5jb21wb25lbnQnOyAvL1JTIDA2SkFOMjAyNSBJbXBvcnRzIG1vZHVsZXMgYW5kIGNvbXBvbmVudHMgZm9yIGJyb3dzZXIgY29tcGF0aWJpbGl0eSwgUXVpbGwtYmFzZWQgcmljaCB0ZXh0IGVkaXRpbmcsIGFuZCBjdXN0b20gY29uZmlndXJhdGlvbnNcbmltcG9ydCB7IFF1aWxsTW9kdWxlIH0gZnJvbSAnbmd4LXF1aWxsJztcbmltcG9ydCB7IERyb3Bkb3duV2l0aEZsYWdDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZHJvcGRvd24td2l0aC1mbGFnL2Ryb3Bkb3duLXdpdGgtZmxhZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgT3dsRGF0ZVRpbWVNb2R1bGUsIE93bE5hdGl2ZURhdGVUaW1lTW9kdWxlIH0gZnJvbSAnQGRhbmllbG1vbmNhZGEvYW5ndWxhci1kYXRldGltZS1waWNrZXInO1xuXG4vL2ltcG9ydCB7IE9XTF9NT01FTlRfREFURV9USU1FX0FEQVBURVJfT1BUSU9OUyB9IGZyb20gJ25nLXBpY2stZGF0ZXRpbWUvZGF0ZS10aW1lL2FkYXB0ZXIvbW9tZW50LWFkYXB0ZXIvbW9tZW50LWRhdGUtdGltZS1hZGFwdGVyLmNsYXNzJztcbmltcG9ydCB7IEN1c3RvbURhdGVQaWNrZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY3VzdG9tLWRhdGUtcGlja2VyL2N1c3RvbS1kYXRlLXBpY2tlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ3VzdG9tRHJvcGRvd25Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY3VzdG9tLWRyb3Bkb3duL2N1c3RvbS1kcm9wZG93bi5jb21wb25lbnQnO1xuLy8gVkQgMjNKQU4yNCByZW1vdmVkIEh0dHBDbGllbnRNb2R1bGVcbmltcG9ydCB7IEJvb2tsZXRDb21wb25lbnQgfSBmcm9tICcuL3BhZ2VzL2Jvb2tsZXQvYm9va2xldC5jb21wb25lbnQnO1xuaW1wb3J0IHsgR29vZ2xlTWFwc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2dvb2dsZS1tYXBzJztcbmltcG9ydCB7IFNlYXJjaEJveENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9zZWFyY2gtYm94L3NlYXJjaC1ib3guY29tcG9uZW50JztcbmltcG9ydCB7IFF1ZXN0aW9uYm9va0NvbXBvbmVudCB9IGZyb20gJy4vcGFnZXMvcXVlc3Rpb25ib29rL3F1ZXN0aW9uYm9vay5jb21wb25lbnQnO1xuaW1wb3J0IHsgRmlsZVVwbG9hZENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9maWxlLXVwbG9hZC9maWxlLXVwbG9hZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU3VtbWFyeVBhZ2VDb21wb25lbnQgfSBmcm9tICcuL3BhZ2VzL3N1bW1hcnktcGFnZS9zdW1tYXJ5LXBhZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IEZpbGVWaWV3Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2ZpbGUtdmlldy9maWxlLXZpZXcuY29tcG9uZW50JztcbmltcG9ydCB7IERlcGVuZGVudFRhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2RlcGVuZGVudC10YWJsZS9kZXBlbmRlbnQtdGFibGUuY29tcG9uZW50JztcbmltcG9ydCB7IEN1c3RvbUxhYmVsQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2N1c3RvbS1sYWJlbC9jdXN0b20tbGFiZWwuY29tcG9uZW50JztcbmltcG9ydCB7IFRhYmxlQXBwZW5kaXhDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdGFibGUtYXBwZW5kaXgvdGFibGUtYXBwZW5kaXguY29tcG9uZW50JztcbmltcG9ydCB7IEN1c3RvbURhdGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY3VzdG9tLWRhdGUvY3VzdG9tLWRhdGUuY29tcG9uZW50JztcbmltcG9ydCB7IEN1c3RvbVRpbWVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY3VzdG9tLXRpbWUvY3VzdG9tLXRpbWUuY29tcG9uZW50JztcbmltcG9ydCB7IEN1c3RvbUJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jdXN0b20tYnV0dG9uL2N1c3RvbS1idXR0b24uY29tcG9uZW50Jztcbi8vIEhBIDE5REVDMjMgSW1wb3J0aW5nIGZvciB0cmFuc2xhdGlvblxuaW1wb3J0IHsgSTE4bk1vZHVsZSB9IGZyb20gJy4vaTE4bi5tb2R1bGUnXG5pbXBvcnQgeyBJMThuQ29tcG9uZW50IH0gZnJvbSAnLi9pMThuLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJMThuUGlwZSB9IGZyb20gJy4vaTE4bi5waXBlJztcbmltcG9ydCAqIGFzIGVuSTE4biBmcm9tICcuL2VuLmkxOG4nO1xuaW1wb3J0ICogYXMgYXJJMThuIGZyb20gJy4vYXIuaTE4bic7XG5pbXBvcnQgKiBhcyB0YW1JMThuIGZyb20gJy4vdGFtLmkxOG4nXG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4vaTE4bi5zZXJ2aWNlJztcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJzsgLy8gVkQgMjBKVU4yNCAtIGhlbHAgdGV4dCBjaGFuZ2VzXG5pbXBvcnQgeyBHZXRWYWx1ZVBpcGUgfSBmcm9tICcuL3BpcGUvZ2V0LXZhbHVlLnBpcGUnOyAvLyBWRCAyNkpVTjI0IC0gcGlwZSBjaGFuZ2VzXG5pbXBvcnQgeyBDdXN0b21DYWxlbmRhckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jdXN0b20tY2FsZW5kYXIvY3VzdG9tLWNhbGVuZGFyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDdXN0b21Nb2RlbENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jdXN0b20tbW9kZWwvY3VzdG9tLW1vZGVsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDdXN0b21JbWFnZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jdXN0b20taW1hZ2UvY3VzdG9tLWltYWdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDdXN0b21SYWRpb0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jdXN0b20tcmFkaW8vY3VzdG9tLXJhZGlvLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMb2FkZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbG9hZGVyL2xvYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29tcG9uZW50aG9zdERpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9jb21wb25lbnRob3N0L2NvbXBvbmVudGhvc3QuZGlyZWN0aXZlJztcbi8vIEFQIDIySkFOMjAyNSBBZGRlZCB0aGUgYmVsb3cgY29tcG9uZW50c1xuaW1wb3J0IHsgRWxlbWVudENvbXBvbmVudCB9IGZyb20gJy4vcGFnZXMvYnVpbGRlci9lbGVtZW50L2VsZW1lbnQuY29tcG9uZW50JztcbmltcG9ydCB7IFByb3BlcnRpZXNDb21wb25lbnQgfSBmcm9tICcuL3BhZ2VzL2J1aWxkZXIvcHJvcGVydGllcy9wcm9wZXJ0aWVzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNZW51Q29tcG9uZW50IH0gZnJvbSAnLi9wYWdlcy9idWlsZGVyL21lbnUvbWVudS5jb21wb25lbnQnO1xuLy8gQVAgMjJKQU4yMDI1IEFkZGVkIHRoZSBEcmFnRHJvcE1vZHVsZVxuaW1wb3J0IHsgRHJhZ0Ryb3BNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcbi8vQVAgMjJKQU4yMDI1IEFkZGVkIHRoZSBGb3JtQnVpbGRlclNlcnZpY2VcbmltcG9ydCB7IEZvcm1CdWlsZGVyU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvZm9ybS1idWlsZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgRm9ybUNvbXBvbmVudCB9IGZyb20gJy4vcGFnZXMvYnVpbGRlci9mb3JtL2Zvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IE54dERhdGF0YWJsZSB9IGZyb20gJy4vY29tcG9uZW50cy9kYXRhdGFibGUvZGF0YXRhYmxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJbWFnZUNyb3BwZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvaW1hZ2UtY3JvcHBlci9jb21wb25lbnQvaW1hZ2UtY3JvcHBlci5jb21wb25lbnQnO1xuIFxuIFxuLy8gZXhwb3J0IGNvbnN0IE1ZX0NVU1RPTV9GT1JNQVRTID0ge1xuLy8gICBmdWxsUGlja2VySW5wdXQ6ICdERC9NTS9ZWVlZIEhIOm1tOnNzJyxcbi8vICAgdXNlVXRjOiB0cnVlLFxuLy8gfTtcblxuLy8gSEEgMTlERUMyMyB2YXJpYWJsZSBjcmVhdGVkIGZvciB0cmFuc2xhdGlvblxuY29uc3QgbGFuZ3VhZ2VzID0gW1xuICAvLyB7IGxhbmc6ICdFTicsIGZsYWc6ICdhc3NldHMvaW1hZ2VzL2VuLmkxOG4ucG5nJywgZmlsZTogZW5JMThuIH0sXG4gIHsgbGFuZzogJ0VOJywgZmlsZTogZW5JMThuIH0sXG4gIHsgbGFuZzogJ1RBTScsIGZpbGU6IHRhbUkxOG4gfSxcbiAgeyBsYW5nOiAnQVInLCBmaWxlOiBhckkxOG4gfVxuXVxuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtOeHRBcHBDb21wb25lbnQsXG4gICAgUXVlc3Rpb25uYWlyZUNvbXBvbmVudCxcbiAgICBQaWNrTG9jYXRpb25Db21wb25lbnQsXG4gICAgQ3VzdG9tSW5wdXRDb21wb25lbnQsXG4gICAgQ3VzdG9tVGV4dEFyZWFDb21wb25lbnQsXG4gICAgQ3VzdG9tVGFibGVDb21wb25lbnQsXG4gICAgQ3VzdG9tQ2FsZW5kYXJDb21wb25lbnQsXG4gICAgQ3VzdG9tRGF0ZVBpY2tlckNvbXBvbmVudCxcbiAgICBEcm9wZG93bldpdGhGbGFnQ29tcG9uZW50LFxuICAgIEN1c3RvbURyb3Bkb3duQ29tcG9uZW50LFxuICAgIEJvb2tsZXRDb21wb25lbnQsXG4gICAgU2VhcmNoQm94Q29tcG9uZW50LFxuICAgIFF1ZXN0aW9uYm9va0NvbXBvbmVudCxcbiAgICBGaWxlVXBsb2FkQ29tcG9uZW50LFxuICAgIFN1bW1hcnlQYWdlQ29tcG9uZW50LFxuICAgIEZpbGVWaWV3Q29tcG9uZW50LFxuICAgIERlcGVuZGVudFRhYmxlQ29tcG9uZW50LFxuICAgIEN1c3RvbUxhYmVsQ29tcG9uZW50LFxuICAgIFRhYmxlQXBwZW5kaXhDb21wb25lbnQsXG4gICAgQ3VzdG9tRGF0ZUNvbXBvbmVudCxcbiAgICBDdXN0b21UaW1lQ29tcG9uZW50LFxuICAgIEN1c3RvbUJ1dHRvbkNvbXBvbmVudCxcbiAgICBDdXN0b21Nb2RlbENvbXBvbmVudCxcbiAgICBMb2FkZXJDb21wb25lbnQsXG4gICAgSTE4bkNvbXBvbmVudCxcbiAgICBJMThuUGlwZSxcbiAgICBDdXN0b21JbWFnZUNvbXBvbmVudCxcbiAgICBDdXN0b21SYWRpb0NvbXBvbmVudCxcbiAgICAvL0FQIDIySkFOMjAyNSBBZGRlZCB0aGUgYmVsb3cgY29tcG9uZW50c1xuICAgIEVsZW1lbnRDb21wb25lbnQsXG4gICAgUHJvcGVydGllc0NvbXBvbmVudCxcbiAgICBNZW51Q29tcG9uZW50LFxuICAgIEZvcm1Db21wb25lbnRcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIFF1aWxsTW9kdWxlLmZvclJvb3QoKSwvLyBSUyAwNkpBTjIwMjUgSW5pdGlhbGl6ZXMgdGhlIFF1aWxsTW9kdWxlIHdpdGggZGVmYXVsdCBzZXR0aW5ncyBmb3IgaW50ZWdyYXRpbmcgdGhlIFF1aWxsIGVkaXRvci5cbiAgICBDdXN0b21SaWNoVGV4dENvbXBvbmVudCxcbiAgICBDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlLFxuICAgIE54dERhdGF0YWJsZSxcbiAgICAvLyBCcm93c2VyTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgT3dsRGF0ZVRpbWVNb2R1bGUsXG4gICAgT3dsTmF0aXZlRGF0ZVRpbWVNb2R1bGUsXG4gICAgQ29tcG9uZW50aG9zdERpcmVjdGl2ZSxcbiAgICBHZXRWYWx1ZVBpcGUsXG4gICAgLy8gICAgVkQgMjNKQU4yNCByZW1vdmVkIEh0dHBDbGllbnRNb2R1bGVcbiAgICBOZ1NlbGVjdE1vZHVsZSxcbiAgICBHb29nbGVNYXBzTW9kdWxlLFxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXG4gICAgRHJhZ0Ryb3BNb2R1bGUsIC8vQVAgMjJKQU4yNSBBZGRlZCB0aGUgRHJhZ0Ryb3BNb2R1bGVcbiAgICBJbWFnZUNyb3BwZXJDb21wb25lbnQsXG4gICAgLy9BZ21Db3JlTW9kdWxlLmZvclJvb3Qoe1xuICAgIC8vICBhcGlLZXk6IEdPT0dMRV9NQVBfQVBJX0tFWSxcbiAgICAvLyAgbGlicmFyaWVzOiBbJ2dlb21ldHJ5JywgJ3BsYWNlcycsICd2aXN1YWxpemF0aW9uJywgJ2RyYXdpbmcnXVxuICAvLyAgfSksXG4gICAgTmd4U3Bpbm5lck1vZHVsZSxcbiAgICBJMThuTW9kdWxlLmZvclJvb3QobGFuZ3VhZ2VzKSxcbiAgICAvKk5nQ2lyY2xlUHJvZ3Jlc3NNb2R1bGUuZm9yUm9vdCh7XG4gICAgICBcImJhY2tncm91bmRQYWRkaW5nXCI6IC0xMCxcbiAgICAgIFwicmFkaXVzXCI6IDYwLFxuICAgICAgXCJzcGFjZVwiOiAtNixcbiAgICAgIFwiaW5uZXJTdHJva2VDb2xvclwiOiBcIiM5MTkxOTFcIixcbiAgICAgIFwib3V0ZXJTdHJva2VDb2xvclwiOiBcIiNkYjk1OTRcIixcbiAgICAgIFwib3V0ZXJTdHJva2VHcmFkaWVudFN0b3BDb2xvclwiOiBcIiNlMGIxYjBcIixcbiAgICAgIFwiaW5uZXJTdHJva2VXaWR0aFwiOiAyLFxuICAgICAgXCJiYWNrZ3JvdW5kR3JhZGllbnRcIjogdHJ1ZSxcbiAgICAgIFwiYmFja2dyb3VuZENvbG9yXCI6IFwiI2RkMmUxM1wiLFxuICAgICAgXCJiYWNrZ3JvdW5kR3JhZGllbnRTdG9wQ29sb3JcIjogXCIjZGQyZTEzXCIsXG4gICAgICBcImJhY2tncm91bmRTdHJva2VcIjogXCIjZDNjZmNmXCIsXG4gICAgICBcInRpdGxlXCI6IFtcblxuICAgICAgICAgICAgICAgIFwiJVwiXG4gICAgICBdLFxuICAgICAgLy8gdGl0bGVGb250U2l6ZTogMTIsXG4gICAgICAvLyBcInN1YnRpdGxlRm9udFNpemVcIjogMjAsXG4gICAgICBcImFuaW1hdGVUaXRsZVwiOiBmYWxzZSxcbiAgICAgIFwiYW5pbWF0aW9uRHVyYXRpb25cIjogMTAwMCxcbiAgICAgIFwic2hvd1VuaXRzXCI6IGZhbHNlLFxuICAgICAgXCJjbG9ja3dpc2VcIjp0cnVlXG5cbiAgICAgIC8vXCJiYWNrZ3JvdW5kU3Ryb2tlV2lkdGhcIjogXCIwXCIsXG5cImJhY2tncm91bmRHcmFkaWVudFwiOiB0cnVlLFxuICAgICAgLy9cImJhY2tncm91bmRDb2xvclwiOiBcIiNkZDJlMTNcIixcbiAgICAgIFwiYmFja2dyb3VuZEdyYWRpZW50U3RvcENvbG9yXCI6IFwiI2RkMmUxM1wiLFxuICAgICAgXCJiYWNrZ3JvdW5kU3Ryb2tlXCI6IFwiIzAwMDAwMFwiLFxuICAgICAgXCJiYWNrZ3JvdW5kUGFkZGluZ1wiOiAtMTAsXG4gICAgICBcInJhZGl1c1wiOiA2MCxcbiAgICAgIFwidW5pdHNGb250V2VpZ2h0XCI6IFwiNjAwXCIsXG4gICAgICBcInVuaXRzQ29sb3JcIjogXCIjZjJmMmYyXCIsXG4gICAgICBcIm91dGVyU3Ryb2tlR3JhZGllbnRcIjogdHJ1ZSxcbiAgICAgIFwib3V0ZXJTdHJva2VDb2xvclwiOiBcIiNlMGIxYjBcIixcbiAgICAgIFwib3V0ZXJTdHJva2VHcmFkaWVudFN0b3BDb2xvclwiOiBcIiNlMGIxYjBcIixcbiAgICAgIFwib3V0ZXJTdHJva2VMaW5lY2FwXCI6IFwiaW5oZXJpdFwiLFxuICAgICAgXCJpbm5lclN0cm9rZUNvbG9yXCI6IFwiI2Y2ZGZkZlwiLFxuICAgICAgXCJ0aXRsZVwiOiBbXG5cbiAgICAgICAgXCIlXCJcbl0sXG4gICAgICBcInRpdGxlQ29sb3JcIjogXCIjZTdkOWQ5XCIsXG4gICAgICBcInRpdGxlRm9udFNpemVcIjogXCIzMVwiLFxuICAgICAgXCJ0aXRsZUZvbnRXZWlnaHRcIjogXCIxMDBcIixcbiAgICAgIFwic3VidGl0bGVDb2xvclwiOiBcIiNmN2Y3ZjdcIixcbiAgICAgIFwic3VidGl0bGVGb250U2l6ZVwiOiBcIjM2XCIsXG4gICAgICBcInN1YnRpdGxlRm9udFdlaWdodFwiOiBcIjkwMFwiLFxuICAgICAgXCJhbmltYXRlVGl0bGVcIjogZmFsc2UsXG4gICAgICBcImFuaW1hdGlvbkR1cmF0aW9uXCI6IDEwMDAsXG4gICAgICBcInNob3dUaXRsZVwiOiB0cnVlLFxuICAgICAgXCJzaG93VW5pdHNcIjogdHJ1ZSxcbiAgICAgIFwiY2xvY2t3aXNlXCI6IGZhbHNlLFxuICAgICAgXCJzdGFydEZyb21aZXJvXCI6IHRydWUsXG4gICAgICBcInNob3daZXJvT3V0ZXJTdHJva2VcIjogZmFsc2UsXG4gICAgICBcImxhenlcIjogdHJ1ZX0pKi9cblxuICAgICAgTmdDaXJjbGVQcm9ncmVzc01vZHVsZS5mb3JSb290KHtcbiAgICAgICAgXCJiYWNrZ3JvdW5kR3JhZGllbnRcIjogdHJ1ZSxcbiAgICAgICAgXCJiYWNrZ3JvdW5kQ29sb3JcIjogXCIjZTI5ZDk4XCIsXG4gICAgICAgIFwiYmFja2dyb3VuZEdyYWRpZW50U3RvcENvbG9yXCI6IFwiI2M1MjgxY1wiLFxuICAgICAgICBcImJhY2tncm91bmRTdHJva2VcIjogXCIjZWNlNGU0XCIsXG4gICAgICAgIFwiYmFja2dyb3VuZFN0cm9rZVdpZHRoXCI6IDAsXG4gICAgICAgIFwiYmFja2dyb3VuZFBhZGRpbmdcIjogLTEwLFxuICAgICAgICBcInJhZGl1c1wiOiA2MCxcbiAgICAgICAgXCJzcGFjZVwiOiA0LFxuICAgICAgICBcIm1heFBlcmNlbnRcIjogMTAwLFxuICAgICAgICBcInVuaXRzRm9udFNpemVcIjogXCIzNVwiLFxuICAgICAgICBcInVuaXRzQ29sb3JcIjogXCIjZjBlYmViXCIsXG4gICAgICAgIFwib3V0ZXJTdHJva2VHcmFkaWVudFwiOiB0cnVlLFxuICAgICAgICBcIm91dGVyU3Ryb2tlV2lkdGhcIjogMTAsXG4gICAgICAgIFwib3V0ZXJTdHJva2VDb2xvclwiOiBcIiNmN2MwYmZcIixcbiAgICAgICAgXCJvdXRlclN0cm9rZUdyYWRpZW50U3RvcENvbG9yXCI6IFwiI2Y5YzljOFwiLFxuICAgICAgICBcImlubmVyU3Ryb2tlV2lkdGhcIjogMCxcbiAgICAgICAgXCJ0aXRsZUNvbG9yXCI6IFwiI2YzZWRlZFwiLFxuICAgICAgICBcInRpdGxlRm9udFNpemVcIjogXCI0MFwiLFxuICAgICAgICBcInN1YnRpdGxlQ29sb3JcIjogXCIjNDQ0NDQ0XCIsXG4gICAgICAgIFwic2hvd1N1YnRpdGxlXCI6IGZhbHNlfSlcbiAgXSxcbiAgYm9vdHN0cmFwOiBbIE54dEFwcENvbXBvbmVudCBdLFxuICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG4gIGV4cG9ydHM6IFtOeHRBcHBDb21wb25lbnQsXG4gICAgUXVlc3Rpb25uYWlyZUNvbXBvbmVudCxcbiAgICBCb29rbGV0Q29tcG9uZW50LFxuICAgIFN1bW1hcnlQYWdlQ29tcG9uZW50LFxuICAgIEkxOG5QaXBlLFxuICAgIEkxOG5Db21wb25lbnQsXG4gICAgRWxlbWVudENvbXBvbmVudCxcbiAgICBQcm9wZXJ0aWVzQ29tcG9uZW50LFxuICAgIE1lbnVDb21wb25lbnQsXG4gICAgRm9ybUNvbXBvbmVudCxcbiAgICBOeHREYXRhdGFibGVcbiAgICAvLyBDdXN0b21SaWNoVGV4dENvbXBvbmVudFxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICBJMThuU2VydmljZSxcbiAgICBJMThuUGlwZSxcbiAgICBGb3JtQnVpbGRlclNlcnZpY2UvL0FQIDIySkFOMjAyNSBBZGRlZCB0aGUgRm9ybUJ1aWxkZXJTZXJ2aWNlXG4gIF1cbiAgLy8gcHJvdmlkZXJzOiBbXG4gIC8vICAgeyBwcm92aWRlOiBPV0xfTU9NRU5UX0RBVEVfVElNRV9BREFQVEVSX09QVElPTlMsIHVzZVZhbHVlOiB7IHVzZVV0YzogZmFsc2UgfSB9LFxuICAvLyAgIHsgcHJvdmlkZTogT1dMX0RBVEVfVElNRV9GT1JNQVRTLCB1c2VWYWx1ZTogTVlfQ1VTVE9NX0ZPUk1BVFMgfSxcbiAgLy8gXVxufSlcbmV4cG9ydCBjbGFzcyBOeHRBcHBNb2R1bGUgeyB9XG4iXX0=