@cleavelandprice/ngx-lib 3.1.48 → 3.1.49

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.
@@ -91,6 +91,9 @@ export class EditorComponent {
91
91
  this.showToolbar = this.showToolbar !== undefined ?
92
92
  this.showToolbar :
93
93
  this.data?.showToolbar ?? this.config.showToolbar;
94
+ this.showBorder = this.showBorder !== undefined ?
95
+ this.showBorder :
96
+ this.data?.showBorder ?? this.config.showBorder;
94
97
  }
95
98
  toggleFullscreen() {
96
99
  if (this.fullscreenMode === 'expand') {
@@ -122,6 +125,7 @@ export class EditorComponent {
122
125
  readonly: this.readonly,
123
126
  applyReadonlyStyle: this.applyReadonlyStyle,
124
127
  showToolbar: this.showToolbar,
128
+ showBorder: this.showBorder,
125
129
  users: this.users
126
130
  };
127
131
  this.dialog.open(EditorComponent, {
@@ -193,10 +197,10 @@ export class EditorComponent {
193
197
  }
194
198
  }
195
199
  EditorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: EditorComponent, deps: [{ token: MAT_DIALOG_DATA, optional: true }, { token: i1.MatDialogRef, optional: true }, { token: i2.ActiveDirectoryService }, { token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Component });
196
- EditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.1", type: EditorComponent, selector: "cpquill-editor", inputs: { formGroup: "formGroup", controlName: "controlName", ngModelValue: "ngModelValue", config: "config", placeholder: "placeholder", users: "users", format: "format", height: "height", width: "width", fullscreenHeight: "fullscreenHeight", fullscreenWidth: "fullscreenWidth", fullscreenMode: "fullscreenMode", enableTooltips: "enableTooltips", fullscreen: "fullscreen", readonly: "readonly", applyReadonlyStyle: "applyReadonlyStyle", showToolbar: "showToolbar", debug: "debug", imageResizeModule: "imageResizeModule", imageDropModule: "imageDropModule", mentionModule: "mentionModule", syntaxModule: "syntaxModule" }, outputs: { fullscreenChanged: "fullscreenChanged", onBlur: "onBlur", onContentChanged: "onContentChanged", onEditorChanged: "onEditorChanged", onEditorCreated: "onEditorCreated", onFocus: "onFocus", onSelectionChanged: "onSelectionChanged" }, viewQueries: [{ propertyName: "editor", first: true, predicate: QuillEditorComponent, descendants: true }], ngImport: i0, template: "<ng-container *ngIf=\"users\">\n <!-- Reactive forms -->\n <form *ngIf=\"formGroup\" [formGroup]=\"formGroup\">\n <quill-editor\n [formControlName]=\"controlName\"\n [placeholder]=\"placeholder\"\n [format]=\"format\"\n [style.height]=\"fullscreen ? fullscreenHeight : height\"\n [style.width]=\"fullscreen ? fullscreenWidth : width\"\n [readOnly]=\"readonly\"\n [class.readonly]=\"readonly && applyReadonlyStyle\"\n [class.no-toolbar]=\"!showToolbar\"\n [modules]=\"modules\"\n \n (onBlur)=\"onBlur.emit($event)\"\n (onContentChanged)=\"onContentChanged.emit($event)\"\n (onEditorChanged)=\"onEditorChanged.emit($event)\"\n (onEditorCreated)=\"onEditorCreated.emit()\"\n (onFocus)=\"onFocus.emit($event)\"\n (onSelectionChanged)=\"onSelectionChanged.emit($event)\">\n \n <div quill-editor-toolbar *ngIf=\"showToolbar\">\n <ng-container [ngTemplateOutlet]=\"toolbar\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"editorSize\"></ng-container>\n </div>\n </quill-editor>\n </form>\n \n <!-- NgModel forms -->\n <form *ngIf=\"!formGroup\">\n <quill-editor name=\"editor\"\n [(ngModel)]=\"ngModelValue\"\n [placeholder]=\"placeholder\"\n [format]=\"format\"\n [style.height]=\"fullscreen ? fullscreenHeight : height\"\n [style.width]=\"fullscreen ? fullscreenWidth : width\"\n [readOnly]=\"readonly\"\n [class.readonly]=\"readonly && applyReadonlyStyle\"\n [class.no-toolbar]=\"!showToolbar\"\n [modules]=\"modules\"\n \n (onBlur)=\"onBlur.emit($event)\"\n (onContentChanged)=\"onContentChanged.emit($event)\"\n (onEditorChanged)=\"onEditorChanged.emit($event)\"\n (onEditorCreated)=\"onEditorCreated.emit()\"\n (onFocus)=\"onFocus.emit($event)\"\n (onSelectionChanged)=\"onSelectionChanged.emit($event)\">\n \n <div quill-editor-toolbar *ngIf=\"showToolbar\">\n <ng-container [ngTemplateOutlet]=\"toolbar\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"editorSize\"></ng-container>\n </div>\n </quill-editor>\n </form>\n</ng-container>\n\n<ng-template #toolbar>\n <div>\n <ng-container [ngTemplateOutlet]=\"fontStyle\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"blockStyle\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"headingStyle\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"listStyle\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"scriptStyle\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"indentStyle\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"rtl\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"fontSize\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"heading\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"color\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"font\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"align\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"clean\"></ng-container>\n <nt-container [ngTemplateOutlet]=\"formula\"></nt-container>\n <ng-container [ngTemplateOutlet]=\"media\"></ng-container>\n </div>\n</ng-template>\n\n<ng-template #fontStyle>\n <span class=\"ql-formats\" *ngIf=\"config.showFontStyle\">\n <button class=\"ql-bold\" *ngIf=\"config.buttons.bold\" [matTooltip]=\"tooltip(config.tooltips.bold)\"></button>\n <button class=\"ql-italic\" *ngIf=\"config.buttons.italic\" [matTooltip]=\"tooltip(config.tooltips.italic)\"></button>\n <button class=\"ql-underline\" *ngIf=\"config.buttons.underline\" [matTooltip]=\"tooltip(config.tooltips.underline)\"></button>\n <button class=\"ql-strike\" *ngIf=\"config.buttons.strike\" [matTooltip]=\"tooltip(config.tooltips.strike)\"></button>\n </span>\n</ng-template>\n\n<ng-template #blockStyle>\n <span class=\"ql-formats\" *ngIf=\"config.showBlockStyle\">\n <button class=\"ql-blockquote\" *ngIf=\"config.buttons.blockquote\" [matTooltip]=\"tooltip(config.tooltips.blockquote)\"></button>\n <button class=\"ql-code-block\" *ngIf=\"config.buttons.codeblock\" [matTooltip]=\"tooltip(config.tooltips.codeblock)\"></button>\n </span>\n</ng-template>\n\n<ng-template #headingStyle>\n <span class=\"ql-formats\" *ngIf=\"config.showQuickHeadingStyle\">\n <button class=\"ql-header\" value=\"1\" *ngIf=\"config.buttons.h1\" [matTooltip]=\"tooltip(config.tooltips.h1)\"></button>\n <button class=\"ql-header\" value=\"2\" *ngIf=\"config.buttons.h2\" [matTooltip]=\"tooltip(config.tooltips.h2)\"></button>\n </span>\n</ng-template>\n\n<ng-template #listStyle>\n <span class=\"ql-formats\" *ngIf=\"config.showListStyle\">\n <button class=\"ql-list\" value=\"ordered\" *ngIf=\"config.buttons.ordered\" [matTooltip]=\"tooltip(config.tooltips.ordered)\"></button>\n <button class=\"ql-list\" value=\"bullet\" *ngIf=\"config.buttons.bulleted\" [matTooltip]=\"tooltip(config.tooltips.bulleted)\"></button>\n </span>\n</ng-template>\n\n<ng-template #scriptStyle>\n <span class=\"ql-formats\" *ngIf=\"config.showScriptStyle\">\n <button class=\"ql-script\" value=\"sub\" *ngIf=\"config.buttons.subScript\" [matTooltip]=\"tooltip(config.tooltips.subScript)\"></button>\n <button class=\"ql-script\" value=\"super\" *ngIf=\"config.buttons.superScript\" [matTooltip]=\"tooltip(config.tooltips.superScript)\"></button>\n </span>\n</ng-template>\n \n<ng-template #indentStyle>\n <span class=\"ql-formats\" *ngIf=\"config.showIndentStyle\">\n <button class=\"ql-indent\" value=\"-1\" *ngIf=\"config.buttons.decreaseIndent\" [matTooltip]=\"tooltip(config.tooltips.decreaseIndent)\"></button>\n <button class=\"ql-indent\" value=\"+1\" *ngIf=\"config.buttons.increaseIndent\" [matTooltip]=\"tooltip(config.tooltips.increaseIndent)\"></button>\n </span>\n</ng-template>\n\n<ng-template #rtl>\n <span class=\"ql-formats\" *ngIf=\"config.buttons.rtl\">\n <button class=\"ql-direction\" value=\"rtl\" [matTooltip]=\"tooltip(config.tooltips.rtl)\"></button>\n </span>\n</ng-template>\n\n<ng-template #fontSize>\n <span class=\"ql-formats\" *ngIf=\"config.buttons.fontSize\" [matTooltip]=\"tooltip(config.tooltips.fontSize)\">\n <select class=\"ql-size\">\n <option value=\"small\"></option>\n <option selected></option>\n <option value=\"large\"></option>\n <option value=\"huge\"></option>\n </select>\n </span>\n</ng-template>\n\n<ng-template #heading>\n <span class=\"ql-formats\" *ngIf=\"config.buttons.headingStyle\" [matTooltip]=\"tooltip(config.tooltips.headingStyle)\">\n <select class=\"ql-header\">\n <option value=\"1\"></option>\n <option value=\"2\"></option>\n <option value=\"3\"></option>\n <option value=\"4\"></option>\n <option value=\"5\"></option>\n <option value=\"6\"></option>\n <option selected=\"selected\"></option>\n </select>\n </span>\n</ng-template>\n\n<ng-template #color>\n <span class=\"ql-formats\" *ngIf=\"config.buttons.color\" [matTooltip]=\"tooltip(config.tooltips.color)\">\n <select class=\"ql-color\"></select>\n <select class=\"ql-background\"></select>\n </span>\n</ng-template>\n\n<ng-template #font>\n <span class=\"ql-formats\" *ngIf=\"config.buttons.font\" [matTooltip]=\"tooltip(config.tooltips.font)\">\n <select class=\"ql-font\">\n <option selected></option>\n <option value=\"serif\"></option>\n <option value=\"monospace\"></option>\n </select>\n </span>\n</ng-template>\n\n<ng-template #align>\n <span class=\"ql-formats\" *ngIf=\"config.buttons.align\" [matTooltip]=\"tooltip(config.tooltips.align)\">\n <select class=\"ql-align\">\n <option selected></option>\n <option value=\"center\"></option>\n <option value=\"right\"></option>\n <option value=\"justify\"></option>\n </select>\n </span>\n</ng-template>\n\n<ng-template #clean>\n <span class=\"ql-formats\" *ngIf=\"config.buttons.clean\" [matTooltip]=\"tooltip(config.tooltips.clean)\">\n <button class=\"ql-clean\"></button>\n </span>\n</ng-template>\n\n<ng-template #media>\n <span class=\"ql-formats\" *ngIf=\"config.showMedia\">\n <button class=\"ql-link\" *ngIf=\"config.buttons.link\" [matTooltip]=\"tooltip(config.tooltips.link)\"></button>\n <button class=\"ql-image\" *ngIf=\"config.buttons.image\" [matTooltip]=\"tooltip(config.tooltips.image)\"></button>\n <button class=\"ql-video\" *ngIf=\"config.buttons.video\" [matTooltip]=\"tooltip(config.tooltips.video)\"></button>\n </span>\n</ng-template>\n\n<ng-template #editorSize>\n <span class=\"ql-formats\" *ngIf=\"config.buttons.editorSize\">\n <button id=\"fullscreen\"\n [matTooltip]=\"tooltip(fullscreen ?\n (fullscreenMode === 'expand' ? config.tooltips.minimize : config.tooltips.popin) :\n (fullscreenMode === 'expand' ? config.tooltips.maximize : config.tooltips.popout))\">\n\n <mat-icon (click)=\"toggleFullscreen()\">\n {{ fullscreen ?\n (fullscreenMode === 'expand' ? config.icons.minimize : config.icons.popin) :\n (fullscreenMode === 'expand' ? config.icons.maximize : config.icons.popout)\n }}\n </mat-icon>\n </button>\n </span>\n</ng-template>\n\n<ng-template #formula>\n <span class=\"ql-formats\" *ngIf=\"config.buttons.formula\" [matTooltip]=\"tooltip(config.tooltips.formula)\">\n <button class=\"ql-formula\"></button>\n </span>\n</ng-template>", styles: [".ql-toolbar{display:grid;grid-template-columns:1fr auto}mat-icon{color:#ff4500}quill-editor.readonly .ql-toolbar{opacity:.5}::ng-deep quill-editor.no-toolbar .ql-toolbar{height:0;padding:0}::ng-deep quill-editor.readonly .ql-container{background-color:#f5f5f5!important}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i6.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i7.QuillEditorComponent, selector: "quill-editor" }] });
200
+ EditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.1", type: EditorComponent, selector: "cpquill-editor", inputs: { formGroup: "formGroup", controlName: "controlName", ngModelValue: "ngModelValue", config: "config", placeholder: "placeholder", users: "users", format: "format", height: "height", width: "width", fullscreenHeight: "fullscreenHeight", fullscreenWidth: "fullscreenWidth", fullscreenMode: "fullscreenMode", enableTooltips: "enableTooltips", fullscreen: "fullscreen", readonly: "readonly", applyReadonlyStyle: "applyReadonlyStyle", showToolbar: "showToolbar", showBorder: "showBorder", imageResizeModule: "imageResizeModule", imageDropModule: "imageDropModule", mentionModule: "mentionModule", syntaxModule: "syntaxModule" }, outputs: { fullscreenChanged: "fullscreenChanged", onBlur: "onBlur", onContentChanged: "onContentChanged", onEditorChanged: "onEditorChanged", onEditorCreated: "onEditorCreated", onFocus: "onFocus", onSelectionChanged: "onSelectionChanged" }, viewQueries: [{ propertyName: "editor", first: true, predicate: QuillEditorComponent, descendants: true }], ngImport: i0, template: "<ng-container *ngIf=\"users\">\n <!-- Reactive forms -->\n <form *ngIf=\"formGroup\" [formGroup]=\"formGroup\">\n <quill-editor\n [formControlName]=\"controlName\"\n [placeholder]=\"placeholder\"\n [format]=\"format\"\n [style.height]=\"fullscreen ? fullscreenHeight : height\"\n [style.width]=\"fullscreen ? fullscreenWidth : width\"\n [readOnly]=\"readonly\"\n [class.readonly]=\"readonly && applyReadonlyStyle\"\n [class.no-toolbar]=\"!showToolbar\"\n [class.no-border]=\"!showBorder\"\n [modules]=\"modules\"\n \n (onBlur)=\"onBlur.emit($event)\"\n (onContentChanged)=\"onContentChanged.emit($event)\"\n (onEditorChanged)=\"onEditorChanged.emit($event)\"\n (onEditorCreated)=\"onEditorCreated.emit()\"\n (onFocus)=\"onFocus.emit($event)\"\n (onSelectionChanged)=\"onSelectionChanged.emit($event)\">\n \n <div quill-editor-toolbar *ngIf=\"showToolbar\">\n <ng-container [ngTemplateOutlet]=\"toolbar\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"editorSize\"></ng-container>\n </div>\n </quill-editor>\n </form>\n \n <!-- NgModel forms -->\n <form *ngIf=\"!formGroup\">\n <quill-editor name=\"editor\"\n [(ngModel)]=\"ngModelValue\"\n [placeholder]=\"placeholder\"\n [format]=\"format\"\n [style.height]=\"fullscreen ? fullscreenHeight : height\"\n [style.width]=\"fullscreen ? fullscreenWidth : width\"\n [readOnly]=\"readonly\"\n [class.readonly]=\"readonly && applyReadonlyStyle\"\n [class.no-toolbar]=\"!showToolbar\"\n [class.no-border]=\"!showBorder\"\n [modules]=\"modules\"\n \n (onBlur)=\"onBlur.emit($event)\"\n (onContentChanged)=\"onContentChanged.emit($event)\"\n (onEditorChanged)=\"onEditorChanged.emit($event)\"\n (onEditorCreated)=\"onEditorCreated.emit()\"\n (onFocus)=\"onFocus.emit($event)\"\n (onSelectionChanged)=\"onSelectionChanged.emit($event)\">\n \n <div quill-editor-toolbar *ngIf=\"showToolbar\">\n <ng-container [ngTemplateOutlet]=\"toolbar\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"editorSize\"></ng-container>\n </div>\n </quill-editor>\n </form>\n</ng-container>\n\n<ng-template #toolbar>\n <div>\n <ng-container [ngTemplateOutlet]=\"fontStyle\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"blockStyle\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"headingStyle\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"listStyle\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"scriptStyle\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"indentStyle\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"rtl\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"fontSize\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"heading\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"color\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"font\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"align\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"clean\"></ng-container>\n <nt-container [ngTemplateOutlet]=\"formula\"></nt-container>\n <ng-container [ngTemplateOutlet]=\"media\"></ng-container>\n </div>\n</ng-template>\n\n<ng-template #fontStyle>\n <span class=\"ql-formats\" *ngIf=\"config.showFontStyle\">\n <button class=\"ql-bold\" *ngIf=\"config.buttons.bold\" [matTooltip]=\"tooltip(config.tooltips.bold)\"></button>\n <button class=\"ql-italic\" *ngIf=\"config.buttons.italic\" [matTooltip]=\"tooltip(config.tooltips.italic)\"></button>\n <button class=\"ql-underline\" *ngIf=\"config.buttons.underline\" [matTooltip]=\"tooltip(config.tooltips.underline)\"></button>\n <button class=\"ql-strike\" *ngIf=\"config.buttons.strike\" [matTooltip]=\"tooltip(config.tooltips.strike)\"></button>\n </span>\n</ng-template>\n\n<ng-template #blockStyle>\n <span class=\"ql-formats\" *ngIf=\"config.showBlockStyle\">\n <button class=\"ql-blockquote\" *ngIf=\"config.buttons.blockquote\" [matTooltip]=\"tooltip(config.tooltips.blockquote)\"></button>\n <button class=\"ql-code-block\" *ngIf=\"config.buttons.codeblock\" [matTooltip]=\"tooltip(config.tooltips.codeblock)\"></button>\n </span>\n</ng-template>\n\n<ng-template #headingStyle>\n <span class=\"ql-formats\" *ngIf=\"config.showQuickHeadingStyle\">\n <button class=\"ql-header\" value=\"1\" *ngIf=\"config.buttons.h1\" [matTooltip]=\"tooltip(config.tooltips.h1)\"></button>\n <button class=\"ql-header\" value=\"2\" *ngIf=\"config.buttons.h2\" [matTooltip]=\"tooltip(config.tooltips.h2)\"></button>\n </span>\n</ng-template>\n\n<ng-template #listStyle>\n <span class=\"ql-formats\" *ngIf=\"config.showListStyle\">\n <button class=\"ql-list\" value=\"ordered\" *ngIf=\"config.buttons.ordered\" [matTooltip]=\"tooltip(config.tooltips.ordered)\"></button>\n <button class=\"ql-list\" value=\"bullet\" *ngIf=\"config.buttons.bulleted\" [matTooltip]=\"tooltip(config.tooltips.bulleted)\"></button>\n </span>\n</ng-template>\n\n<ng-template #scriptStyle>\n <span class=\"ql-formats\" *ngIf=\"config.showScriptStyle\">\n <button class=\"ql-script\" value=\"sub\" *ngIf=\"config.buttons.subScript\" [matTooltip]=\"tooltip(config.tooltips.subScript)\"></button>\n <button class=\"ql-script\" value=\"super\" *ngIf=\"config.buttons.superScript\" [matTooltip]=\"tooltip(config.tooltips.superScript)\"></button>\n </span>\n</ng-template>\n \n<ng-template #indentStyle>\n <span class=\"ql-formats\" *ngIf=\"config.showIndentStyle\">\n <button class=\"ql-indent\" value=\"-1\" *ngIf=\"config.buttons.decreaseIndent\" [matTooltip]=\"tooltip(config.tooltips.decreaseIndent)\"></button>\n <button class=\"ql-indent\" value=\"+1\" *ngIf=\"config.buttons.increaseIndent\" [matTooltip]=\"tooltip(config.tooltips.increaseIndent)\"></button>\n </span>\n</ng-template>\n\n<ng-template #rtl>\n <span class=\"ql-formats\" *ngIf=\"config.buttons.rtl\">\n <button class=\"ql-direction\" value=\"rtl\" [matTooltip]=\"tooltip(config.tooltips.rtl)\"></button>\n </span>\n</ng-template>\n\n<ng-template #fontSize>\n <span class=\"ql-formats\" *ngIf=\"config.buttons.fontSize\" [matTooltip]=\"tooltip(config.tooltips.fontSize)\">\n <select class=\"ql-size\">\n <option value=\"small\"></option>\n <option selected></option>\n <option value=\"large\"></option>\n <option value=\"huge\"></option>\n </select>\n </span>\n</ng-template>\n\n<ng-template #heading>\n <span class=\"ql-formats\" *ngIf=\"config.buttons.headingStyle\" [matTooltip]=\"tooltip(config.tooltips.headingStyle)\">\n <select class=\"ql-header\">\n <option value=\"1\"></option>\n <option value=\"2\"></option>\n <option value=\"3\"></option>\n <option value=\"4\"></option>\n <option value=\"5\"></option>\n <option value=\"6\"></option>\n <option selected=\"selected\"></option>\n </select>\n </span>\n</ng-template>\n\n<ng-template #color>\n <span class=\"ql-formats\" *ngIf=\"config.buttons.color\" [matTooltip]=\"tooltip(config.tooltips.color)\">\n <select class=\"ql-color\"></select>\n <select class=\"ql-background\"></select>\n </span>\n</ng-template>\n\n<ng-template #font>\n <span class=\"ql-formats\" *ngIf=\"config.buttons.font\" [matTooltip]=\"tooltip(config.tooltips.font)\">\n <select class=\"ql-font\">\n <option selected></option>\n <option value=\"serif\"></option>\n <option value=\"monospace\"></option>\n </select>\n </span>\n</ng-template>\n\n<ng-template #align>\n <span class=\"ql-formats\" *ngIf=\"config.buttons.align\" [matTooltip]=\"tooltip(config.tooltips.align)\">\n <select class=\"ql-align\">\n <option selected></option>\n <option value=\"center\"></option>\n <option value=\"right\"></option>\n <option value=\"justify\"></option>\n </select>\n </span>\n</ng-template>\n\n<ng-template #clean>\n <span class=\"ql-formats\" *ngIf=\"config.buttons.clean\" [matTooltip]=\"tooltip(config.tooltips.clean)\">\n <button class=\"ql-clean\"></button>\n </span>\n</ng-template>\n\n<ng-template #media>\n <span class=\"ql-formats\" *ngIf=\"config.showMedia\">\n <button class=\"ql-link\" *ngIf=\"config.buttons.link\" [matTooltip]=\"tooltip(config.tooltips.link)\"></button>\n <button class=\"ql-image\" *ngIf=\"config.buttons.image\" [matTooltip]=\"tooltip(config.tooltips.image)\"></button>\n <button class=\"ql-video\" *ngIf=\"config.buttons.video\" [matTooltip]=\"tooltip(config.tooltips.video)\"></button>\n </span>\n</ng-template>\n\n<ng-template #editorSize>\n <span class=\"ql-formats\" *ngIf=\"config.buttons.editorSize\">\n <button id=\"fullscreen\"\n [matTooltip]=\"tooltip(fullscreen ?\n (fullscreenMode === 'expand' ? config.tooltips.minimize : config.tooltips.popin) :\n (fullscreenMode === 'expand' ? config.tooltips.maximize : config.tooltips.popout))\">\n\n <mat-icon (click)=\"toggleFullscreen()\">\n {{ fullscreen ?\n (fullscreenMode === 'expand' ? config.icons.minimize : config.icons.popin) :\n (fullscreenMode === 'expand' ? config.icons.maximize : config.icons.popout)\n }}\n </mat-icon>\n </button>\n </span>\n</ng-template>\n\n<ng-template #formula>\n <span class=\"ql-formats\" *ngIf=\"config.buttons.formula\" [matTooltip]=\"tooltip(config.tooltips.formula)\">\n <button class=\"ql-formula\"></button>\n </span>\n</ng-template>", styles: [".ql-toolbar{display:grid;grid-template-columns:1fr auto}mat-icon{color:#ff4500}quill-editor.readonly .ql-toolbar{opacity:.5}::ng-deep quill-editor.no-toolbar .ql-toolbar{visibility:hidden}::ng-deep quill-editor.no-border .ql-container{border:none}::ng-deep quill-editor.readonly .ql-container{background-color:#f5f5f5!important}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i6.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i7.QuillEditorComponent, selector: "quill-editor" }] });
197
201
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: EditorComponent, decorators: [{
198
202
  type: Component,
199
- args: [{ selector: 'cpquill-editor', template: "<ng-container *ngIf=\"users\">\n <!-- Reactive forms -->\n <form *ngIf=\"formGroup\" [formGroup]=\"formGroup\">\n <quill-editor\n [formControlName]=\"controlName\"\n [placeholder]=\"placeholder\"\n [format]=\"format\"\n [style.height]=\"fullscreen ? fullscreenHeight : height\"\n [style.width]=\"fullscreen ? fullscreenWidth : width\"\n [readOnly]=\"readonly\"\n [class.readonly]=\"readonly && applyReadonlyStyle\"\n [class.no-toolbar]=\"!showToolbar\"\n [modules]=\"modules\"\n \n (onBlur)=\"onBlur.emit($event)\"\n (onContentChanged)=\"onContentChanged.emit($event)\"\n (onEditorChanged)=\"onEditorChanged.emit($event)\"\n (onEditorCreated)=\"onEditorCreated.emit()\"\n (onFocus)=\"onFocus.emit($event)\"\n (onSelectionChanged)=\"onSelectionChanged.emit($event)\">\n \n <div quill-editor-toolbar *ngIf=\"showToolbar\">\n <ng-container [ngTemplateOutlet]=\"toolbar\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"editorSize\"></ng-container>\n </div>\n </quill-editor>\n </form>\n \n <!-- NgModel forms -->\n <form *ngIf=\"!formGroup\">\n <quill-editor name=\"editor\"\n [(ngModel)]=\"ngModelValue\"\n [placeholder]=\"placeholder\"\n [format]=\"format\"\n [style.height]=\"fullscreen ? fullscreenHeight : height\"\n [style.width]=\"fullscreen ? fullscreenWidth : width\"\n [readOnly]=\"readonly\"\n [class.readonly]=\"readonly && applyReadonlyStyle\"\n [class.no-toolbar]=\"!showToolbar\"\n [modules]=\"modules\"\n \n (onBlur)=\"onBlur.emit($event)\"\n (onContentChanged)=\"onContentChanged.emit($event)\"\n (onEditorChanged)=\"onEditorChanged.emit($event)\"\n (onEditorCreated)=\"onEditorCreated.emit()\"\n (onFocus)=\"onFocus.emit($event)\"\n (onSelectionChanged)=\"onSelectionChanged.emit($event)\">\n \n <div quill-editor-toolbar *ngIf=\"showToolbar\">\n <ng-container [ngTemplateOutlet]=\"toolbar\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"editorSize\"></ng-container>\n </div>\n </quill-editor>\n </form>\n</ng-container>\n\n<ng-template #toolbar>\n <div>\n <ng-container [ngTemplateOutlet]=\"fontStyle\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"blockStyle\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"headingStyle\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"listStyle\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"scriptStyle\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"indentStyle\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"rtl\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"fontSize\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"heading\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"color\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"font\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"align\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"clean\"></ng-container>\n <nt-container [ngTemplateOutlet]=\"formula\"></nt-container>\n <ng-container [ngTemplateOutlet]=\"media\"></ng-container>\n </div>\n</ng-template>\n\n<ng-template #fontStyle>\n <span class=\"ql-formats\" *ngIf=\"config.showFontStyle\">\n <button class=\"ql-bold\" *ngIf=\"config.buttons.bold\" [matTooltip]=\"tooltip(config.tooltips.bold)\"></button>\n <button class=\"ql-italic\" *ngIf=\"config.buttons.italic\" [matTooltip]=\"tooltip(config.tooltips.italic)\"></button>\n <button class=\"ql-underline\" *ngIf=\"config.buttons.underline\" [matTooltip]=\"tooltip(config.tooltips.underline)\"></button>\n <button class=\"ql-strike\" *ngIf=\"config.buttons.strike\" [matTooltip]=\"tooltip(config.tooltips.strike)\"></button>\n </span>\n</ng-template>\n\n<ng-template #blockStyle>\n <span class=\"ql-formats\" *ngIf=\"config.showBlockStyle\">\n <button class=\"ql-blockquote\" *ngIf=\"config.buttons.blockquote\" [matTooltip]=\"tooltip(config.tooltips.blockquote)\"></button>\n <button class=\"ql-code-block\" *ngIf=\"config.buttons.codeblock\" [matTooltip]=\"tooltip(config.tooltips.codeblock)\"></button>\n </span>\n</ng-template>\n\n<ng-template #headingStyle>\n <span class=\"ql-formats\" *ngIf=\"config.showQuickHeadingStyle\">\n <button class=\"ql-header\" value=\"1\" *ngIf=\"config.buttons.h1\" [matTooltip]=\"tooltip(config.tooltips.h1)\"></button>\n <button class=\"ql-header\" value=\"2\" *ngIf=\"config.buttons.h2\" [matTooltip]=\"tooltip(config.tooltips.h2)\"></button>\n </span>\n</ng-template>\n\n<ng-template #listStyle>\n <span class=\"ql-formats\" *ngIf=\"config.showListStyle\">\n <button class=\"ql-list\" value=\"ordered\" *ngIf=\"config.buttons.ordered\" [matTooltip]=\"tooltip(config.tooltips.ordered)\"></button>\n <button class=\"ql-list\" value=\"bullet\" *ngIf=\"config.buttons.bulleted\" [matTooltip]=\"tooltip(config.tooltips.bulleted)\"></button>\n </span>\n</ng-template>\n\n<ng-template #scriptStyle>\n <span class=\"ql-formats\" *ngIf=\"config.showScriptStyle\">\n <button class=\"ql-script\" value=\"sub\" *ngIf=\"config.buttons.subScript\" [matTooltip]=\"tooltip(config.tooltips.subScript)\"></button>\n <button class=\"ql-script\" value=\"super\" *ngIf=\"config.buttons.superScript\" [matTooltip]=\"tooltip(config.tooltips.superScript)\"></button>\n </span>\n</ng-template>\n \n<ng-template #indentStyle>\n <span class=\"ql-formats\" *ngIf=\"config.showIndentStyle\">\n <button class=\"ql-indent\" value=\"-1\" *ngIf=\"config.buttons.decreaseIndent\" [matTooltip]=\"tooltip(config.tooltips.decreaseIndent)\"></button>\n <button class=\"ql-indent\" value=\"+1\" *ngIf=\"config.buttons.increaseIndent\" [matTooltip]=\"tooltip(config.tooltips.increaseIndent)\"></button>\n </span>\n</ng-template>\n\n<ng-template #rtl>\n <span class=\"ql-formats\" *ngIf=\"config.buttons.rtl\">\n <button class=\"ql-direction\" value=\"rtl\" [matTooltip]=\"tooltip(config.tooltips.rtl)\"></button>\n </span>\n</ng-template>\n\n<ng-template #fontSize>\n <span class=\"ql-formats\" *ngIf=\"config.buttons.fontSize\" [matTooltip]=\"tooltip(config.tooltips.fontSize)\">\n <select class=\"ql-size\">\n <option value=\"small\"></option>\n <option selected></option>\n <option value=\"large\"></option>\n <option value=\"huge\"></option>\n </select>\n </span>\n</ng-template>\n\n<ng-template #heading>\n <span class=\"ql-formats\" *ngIf=\"config.buttons.headingStyle\" [matTooltip]=\"tooltip(config.tooltips.headingStyle)\">\n <select class=\"ql-header\">\n <option value=\"1\"></option>\n <option value=\"2\"></option>\n <option value=\"3\"></option>\n <option value=\"4\"></option>\n <option value=\"5\"></option>\n <option value=\"6\"></option>\n <option selected=\"selected\"></option>\n </select>\n </span>\n</ng-template>\n\n<ng-template #color>\n <span class=\"ql-formats\" *ngIf=\"config.buttons.color\" [matTooltip]=\"tooltip(config.tooltips.color)\">\n <select class=\"ql-color\"></select>\n <select class=\"ql-background\"></select>\n </span>\n</ng-template>\n\n<ng-template #font>\n <span class=\"ql-formats\" *ngIf=\"config.buttons.font\" [matTooltip]=\"tooltip(config.tooltips.font)\">\n <select class=\"ql-font\">\n <option selected></option>\n <option value=\"serif\"></option>\n <option value=\"monospace\"></option>\n </select>\n </span>\n</ng-template>\n\n<ng-template #align>\n <span class=\"ql-formats\" *ngIf=\"config.buttons.align\" [matTooltip]=\"tooltip(config.tooltips.align)\">\n <select class=\"ql-align\">\n <option selected></option>\n <option value=\"center\"></option>\n <option value=\"right\"></option>\n <option value=\"justify\"></option>\n </select>\n </span>\n</ng-template>\n\n<ng-template #clean>\n <span class=\"ql-formats\" *ngIf=\"config.buttons.clean\" [matTooltip]=\"tooltip(config.tooltips.clean)\">\n <button class=\"ql-clean\"></button>\n </span>\n</ng-template>\n\n<ng-template #media>\n <span class=\"ql-formats\" *ngIf=\"config.showMedia\">\n <button class=\"ql-link\" *ngIf=\"config.buttons.link\" [matTooltip]=\"tooltip(config.tooltips.link)\"></button>\n <button class=\"ql-image\" *ngIf=\"config.buttons.image\" [matTooltip]=\"tooltip(config.tooltips.image)\"></button>\n <button class=\"ql-video\" *ngIf=\"config.buttons.video\" [matTooltip]=\"tooltip(config.tooltips.video)\"></button>\n </span>\n</ng-template>\n\n<ng-template #editorSize>\n <span class=\"ql-formats\" *ngIf=\"config.buttons.editorSize\">\n <button id=\"fullscreen\"\n [matTooltip]=\"tooltip(fullscreen ?\n (fullscreenMode === 'expand' ? config.tooltips.minimize : config.tooltips.popin) :\n (fullscreenMode === 'expand' ? config.tooltips.maximize : config.tooltips.popout))\">\n\n <mat-icon (click)=\"toggleFullscreen()\">\n {{ fullscreen ?\n (fullscreenMode === 'expand' ? config.icons.minimize : config.icons.popin) :\n (fullscreenMode === 'expand' ? config.icons.maximize : config.icons.popout)\n }}\n </mat-icon>\n </button>\n </span>\n</ng-template>\n\n<ng-template #formula>\n <span class=\"ql-formats\" *ngIf=\"config.buttons.formula\" [matTooltip]=\"tooltip(config.tooltips.formula)\">\n <button class=\"ql-formula\"></button>\n </span>\n</ng-template>", styles: [".ql-toolbar{display:grid;grid-template-columns:1fr auto}mat-icon{color:#ff4500}quill-editor.readonly .ql-toolbar{opacity:.5}::ng-deep quill-editor.no-toolbar .ql-toolbar{height:0;padding:0}::ng-deep quill-editor.readonly .ql-container{background-color:#f5f5f5!important}\n"] }]
203
+ args: [{ selector: 'cpquill-editor', template: "<ng-container *ngIf=\"users\">\n <!-- Reactive forms -->\n <form *ngIf=\"formGroup\" [formGroup]=\"formGroup\">\n <quill-editor\n [formControlName]=\"controlName\"\n [placeholder]=\"placeholder\"\n [format]=\"format\"\n [style.height]=\"fullscreen ? fullscreenHeight : height\"\n [style.width]=\"fullscreen ? fullscreenWidth : width\"\n [readOnly]=\"readonly\"\n [class.readonly]=\"readonly && applyReadonlyStyle\"\n [class.no-toolbar]=\"!showToolbar\"\n [class.no-border]=\"!showBorder\"\n [modules]=\"modules\"\n \n (onBlur)=\"onBlur.emit($event)\"\n (onContentChanged)=\"onContentChanged.emit($event)\"\n (onEditorChanged)=\"onEditorChanged.emit($event)\"\n (onEditorCreated)=\"onEditorCreated.emit()\"\n (onFocus)=\"onFocus.emit($event)\"\n (onSelectionChanged)=\"onSelectionChanged.emit($event)\">\n \n <div quill-editor-toolbar *ngIf=\"showToolbar\">\n <ng-container [ngTemplateOutlet]=\"toolbar\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"editorSize\"></ng-container>\n </div>\n </quill-editor>\n </form>\n \n <!-- NgModel forms -->\n <form *ngIf=\"!formGroup\">\n <quill-editor name=\"editor\"\n [(ngModel)]=\"ngModelValue\"\n [placeholder]=\"placeholder\"\n [format]=\"format\"\n [style.height]=\"fullscreen ? fullscreenHeight : height\"\n [style.width]=\"fullscreen ? fullscreenWidth : width\"\n [readOnly]=\"readonly\"\n [class.readonly]=\"readonly && applyReadonlyStyle\"\n [class.no-toolbar]=\"!showToolbar\"\n [class.no-border]=\"!showBorder\"\n [modules]=\"modules\"\n \n (onBlur)=\"onBlur.emit($event)\"\n (onContentChanged)=\"onContentChanged.emit($event)\"\n (onEditorChanged)=\"onEditorChanged.emit($event)\"\n (onEditorCreated)=\"onEditorCreated.emit()\"\n (onFocus)=\"onFocus.emit($event)\"\n (onSelectionChanged)=\"onSelectionChanged.emit($event)\">\n \n <div quill-editor-toolbar *ngIf=\"showToolbar\">\n <ng-container [ngTemplateOutlet]=\"toolbar\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"editorSize\"></ng-container>\n </div>\n </quill-editor>\n </form>\n</ng-container>\n\n<ng-template #toolbar>\n <div>\n <ng-container [ngTemplateOutlet]=\"fontStyle\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"blockStyle\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"headingStyle\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"listStyle\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"scriptStyle\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"indentStyle\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"rtl\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"fontSize\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"heading\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"color\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"font\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"align\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"clean\"></ng-container>\n <nt-container [ngTemplateOutlet]=\"formula\"></nt-container>\n <ng-container [ngTemplateOutlet]=\"media\"></ng-container>\n </div>\n</ng-template>\n\n<ng-template #fontStyle>\n <span class=\"ql-formats\" *ngIf=\"config.showFontStyle\">\n <button class=\"ql-bold\" *ngIf=\"config.buttons.bold\" [matTooltip]=\"tooltip(config.tooltips.bold)\"></button>\n <button class=\"ql-italic\" *ngIf=\"config.buttons.italic\" [matTooltip]=\"tooltip(config.tooltips.italic)\"></button>\n <button class=\"ql-underline\" *ngIf=\"config.buttons.underline\" [matTooltip]=\"tooltip(config.tooltips.underline)\"></button>\n <button class=\"ql-strike\" *ngIf=\"config.buttons.strike\" [matTooltip]=\"tooltip(config.tooltips.strike)\"></button>\n </span>\n</ng-template>\n\n<ng-template #blockStyle>\n <span class=\"ql-formats\" *ngIf=\"config.showBlockStyle\">\n <button class=\"ql-blockquote\" *ngIf=\"config.buttons.blockquote\" [matTooltip]=\"tooltip(config.tooltips.blockquote)\"></button>\n <button class=\"ql-code-block\" *ngIf=\"config.buttons.codeblock\" [matTooltip]=\"tooltip(config.tooltips.codeblock)\"></button>\n </span>\n</ng-template>\n\n<ng-template #headingStyle>\n <span class=\"ql-formats\" *ngIf=\"config.showQuickHeadingStyle\">\n <button class=\"ql-header\" value=\"1\" *ngIf=\"config.buttons.h1\" [matTooltip]=\"tooltip(config.tooltips.h1)\"></button>\n <button class=\"ql-header\" value=\"2\" *ngIf=\"config.buttons.h2\" [matTooltip]=\"tooltip(config.tooltips.h2)\"></button>\n </span>\n</ng-template>\n\n<ng-template #listStyle>\n <span class=\"ql-formats\" *ngIf=\"config.showListStyle\">\n <button class=\"ql-list\" value=\"ordered\" *ngIf=\"config.buttons.ordered\" [matTooltip]=\"tooltip(config.tooltips.ordered)\"></button>\n <button class=\"ql-list\" value=\"bullet\" *ngIf=\"config.buttons.bulleted\" [matTooltip]=\"tooltip(config.tooltips.bulleted)\"></button>\n </span>\n</ng-template>\n\n<ng-template #scriptStyle>\n <span class=\"ql-formats\" *ngIf=\"config.showScriptStyle\">\n <button class=\"ql-script\" value=\"sub\" *ngIf=\"config.buttons.subScript\" [matTooltip]=\"tooltip(config.tooltips.subScript)\"></button>\n <button class=\"ql-script\" value=\"super\" *ngIf=\"config.buttons.superScript\" [matTooltip]=\"tooltip(config.tooltips.superScript)\"></button>\n </span>\n</ng-template>\n \n<ng-template #indentStyle>\n <span class=\"ql-formats\" *ngIf=\"config.showIndentStyle\">\n <button class=\"ql-indent\" value=\"-1\" *ngIf=\"config.buttons.decreaseIndent\" [matTooltip]=\"tooltip(config.tooltips.decreaseIndent)\"></button>\n <button class=\"ql-indent\" value=\"+1\" *ngIf=\"config.buttons.increaseIndent\" [matTooltip]=\"tooltip(config.tooltips.increaseIndent)\"></button>\n </span>\n</ng-template>\n\n<ng-template #rtl>\n <span class=\"ql-formats\" *ngIf=\"config.buttons.rtl\">\n <button class=\"ql-direction\" value=\"rtl\" [matTooltip]=\"tooltip(config.tooltips.rtl)\"></button>\n </span>\n</ng-template>\n\n<ng-template #fontSize>\n <span class=\"ql-formats\" *ngIf=\"config.buttons.fontSize\" [matTooltip]=\"tooltip(config.tooltips.fontSize)\">\n <select class=\"ql-size\">\n <option value=\"small\"></option>\n <option selected></option>\n <option value=\"large\"></option>\n <option value=\"huge\"></option>\n </select>\n </span>\n</ng-template>\n\n<ng-template #heading>\n <span class=\"ql-formats\" *ngIf=\"config.buttons.headingStyle\" [matTooltip]=\"tooltip(config.tooltips.headingStyle)\">\n <select class=\"ql-header\">\n <option value=\"1\"></option>\n <option value=\"2\"></option>\n <option value=\"3\"></option>\n <option value=\"4\"></option>\n <option value=\"5\"></option>\n <option value=\"6\"></option>\n <option selected=\"selected\"></option>\n </select>\n </span>\n</ng-template>\n\n<ng-template #color>\n <span class=\"ql-formats\" *ngIf=\"config.buttons.color\" [matTooltip]=\"tooltip(config.tooltips.color)\">\n <select class=\"ql-color\"></select>\n <select class=\"ql-background\"></select>\n </span>\n</ng-template>\n\n<ng-template #font>\n <span class=\"ql-formats\" *ngIf=\"config.buttons.font\" [matTooltip]=\"tooltip(config.tooltips.font)\">\n <select class=\"ql-font\">\n <option selected></option>\n <option value=\"serif\"></option>\n <option value=\"monospace\"></option>\n </select>\n </span>\n</ng-template>\n\n<ng-template #align>\n <span class=\"ql-formats\" *ngIf=\"config.buttons.align\" [matTooltip]=\"tooltip(config.tooltips.align)\">\n <select class=\"ql-align\">\n <option selected></option>\n <option value=\"center\"></option>\n <option value=\"right\"></option>\n <option value=\"justify\"></option>\n </select>\n </span>\n</ng-template>\n\n<ng-template #clean>\n <span class=\"ql-formats\" *ngIf=\"config.buttons.clean\" [matTooltip]=\"tooltip(config.tooltips.clean)\">\n <button class=\"ql-clean\"></button>\n </span>\n</ng-template>\n\n<ng-template #media>\n <span class=\"ql-formats\" *ngIf=\"config.showMedia\">\n <button class=\"ql-link\" *ngIf=\"config.buttons.link\" [matTooltip]=\"tooltip(config.tooltips.link)\"></button>\n <button class=\"ql-image\" *ngIf=\"config.buttons.image\" [matTooltip]=\"tooltip(config.tooltips.image)\"></button>\n <button class=\"ql-video\" *ngIf=\"config.buttons.video\" [matTooltip]=\"tooltip(config.tooltips.video)\"></button>\n </span>\n</ng-template>\n\n<ng-template #editorSize>\n <span class=\"ql-formats\" *ngIf=\"config.buttons.editorSize\">\n <button id=\"fullscreen\"\n [matTooltip]=\"tooltip(fullscreen ?\n (fullscreenMode === 'expand' ? config.tooltips.minimize : config.tooltips.popin) :\n (fullscreenMode === 'expand' ? config.tooltips.maximize : config.tooltips.popout))\">\n\n <mat-icon (click)=\"toggleFullscreen()\">\n {{ fullscreen ?\n (fullscreenMode === 'expand' ? config.icons.minimize : config.icons.popin) :\n (fullscreenMode === 'expand' ? config.icons.maximize : config.icons.popout)\n }}\n </mat-icon>\n </button>\n </span>\n</ng-template>\n\n<ng-template #formula>\n <span class=\"ql-formats\" *ngIf=\"config.buttons.formula\" [matTooltip]=\"tooltip(config.tooltips.formula)\">\n <button class=\"ql-formula\"></button>\n </span>\n</ng-template>", styles: [".ql-toolbar{display:grid;grid-template-columns:1fr auto}mat-icon{color:#ff4500}quill-editor.readonly .ql-toolbar{opacity:.5}::ng-deep quill-editor.no-toolbar .ql-toolbar{visibility:hidden}::ng-deep quill-editor.no-border .ql-container{border:none}::ng-deep quill-editor.readonly .ql-container{background-color:#f5f5f5!important}\n"] }]
200
204
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
201
205
  type: Optional
202
206
  }, {
@@ -241,7 +245,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
241
245
  type: Input
242
246
  }], showToolbar: [{
243
247
  type: Input
244
- }], debug: [{
248
+ }], showBorder: [{
245
249
  type: Input
246
250
  }], imageResizeModule: [{
247
251
  type: Input
@@ -266,4 +270,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
266
270
  }], onSelectionChanged: [{
267
271
  type: Output
268
272
  }] } });
269
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL3F1aWxsLWVkaXRvci9zcmMvY29tcG9uZW50cy9lZGl0b3IvZWRpdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL3F1aWxsLWVkaXRvci9zcmMvY29tcG9uZW50cy9lZGl0b3IvZWRpdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFNUcsT0FBTyxFQUEyQixlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUdwRixPQUFPLEVBQTJGLG9CQUFvQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRTFJLE9BQU8sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFcEQscUZBQXFGO0FBQ3JGLHNEQUFzRDtBQUN0RCxxREFBcUQ7QUFFckQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7Ozs7Ozs7QUFRNUMsTUFBTSxPQUFPLGVBQWU7SUEwQzFCLFlBQVk7SUFFWixZQUF5RCxJQUFnQixFQUN6QyxTQUF3QyxFQUNwRCxzQkFBOEMsRUFDOUMsTUFBaUI7UUFIb0IsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUN6QyxjQUFTLEdBQVQsU0FBUyxDQUErQjtRQUNwRCwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBQzlDLFdBQU0sR0FBTixNQUFNLENBQVc7UUF4QzVCLFdBQU0s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c0JBQW5CLEtBQUs7Z0JBQ0MsS0FBSztzQkFBYixLQUFLO2dCQUVLLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFJSSxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBR0csTUFBTTtzQkFBZixNQUFNO2dCQUNHLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFDRyxlQUFlO3NCQUF4QixNQUFNO2dCQUNHLGVBQWU7c0JBQXhCLE1BQU07Z0JBQ0csT0FBTztzQkFBaEIsTUFBTTtnQkFDRyxrQkFBa0I7c0JBQTNCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5qZWN0LCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdERpYWxvZywgTWF0RGlhbG9nUmVmLCBNQVRfRElBTE9HX0RBVEEgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgQWN0aXZlRGlyZWN0b3J5U2VydmljZSwgVXNlciB9IGZyb20gJ0BjbGVhdmVsYW5kcHJpY2Uvbmd4LWxpYi9hY3RpdmUtZGlyZWN0b3J5JztcblxuaW1wb3J0IHsgQ29udGVudENoYW5nZSwgQmx1ciwgRm9jdXMsIEVkaXRvckNoYW5nZUNvbnRlbnQsIEVkaXRvckNoYW5nZVNlbGVjdGlvbiwgU2VsZWN0aW9uQ2hhbmdlLCBRdWlsbEVkaXRvckNvbXBvbmVudCB9IGZyb20gJ25neC1xdWlsbCc7XG5cbmltcG9ydCAncXVpbGwtbWVudGlvbic7XG5pbXBvcnQgUXVpbGwgZnJvbSAncXVpbGwnO1xuaW1wb3J0IHsgSW1hZ2VEcm9wIH0gZnJvbSAncXVpbGwtaW1hZ2UtZHJvcC1tb2R1bGUnO1xuXG4vLyBUaGlzIGRvZXNuJ3Qgd29yayB3aGVuIGRvbmUgZnJvbSB0aGUgbGlicmFyeSAtIGl0IG11c3QgYmUgZG9uZSBmcm9tIHRoZSBjbGllbnQgYXBwXG4vL2ltcG9ydCBJbWFnZVJlc2l6ZSBmcm9tICdxdWlsbC1pbWFnZS1yZXNpemUtbW9kdWxlJztcbi8vUXVpbGwucmVnaXN0ZXIoJ21vZHVsZXMvaW1hZ2VSZXNpemUnLCBJbWFnZVJlc2l6ZSk7XG5cbmltcG9ydCB7IENvbmZpZyB9IGZyb20gJy4uLy4uL21vZGVsL2NvbmZpZyc7XG5pbXBvcnQgeyBEaWFsb2dEYXRhIH0gZnJvbSAnLi4vLi4vbW9kZWwvZGlhbG9nLWRhdGEnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjcHF1aWxsLWVkaXRvcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9lZGl0b3IuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9lZGl0b3IuY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIEVkaXRvckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBWaWV3Q2hpbGQoUXVpbGxFZGl0b3JDb21wb25lbnQsIHsgc3RhdGljOiBmYWxzZSB9KSBlZGl0b3I6IFF1aWxsRWRpdG9yQ29tcG9uZW50IHwgdW5kZWZpbmVkO1xuXG4gIEBJbnB1dCgpIGZvcm1Hcm91cCE6IEZvcm1Hcm91cDtcbiAgQElucHV0KCkgY29udHJvbE5hbWUhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIG5nTW9kZWxWYWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIEBJbnB1dCgpIGNvbmZpZzogQ29uZmlnID0gbmV3IENvbmZpZygpO1xuICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSB1c2VyczogVXNlcltdIHwgdW5kZWZpbmVkO1xuXG4gIC8vI3JlZ2lvbiBUaGVzZSBjYW4gYmUgcGFzc2VkIGluIGFzIEBJbnB1dCgpLCBvciB1c2UgdmFsdWVzIGZyb20gY29uZmlnXG4gIEBJbnB1dCgpIGZvcm1hdDogJ29iamVjdCcgfCAnaHRtbCcgfCAndGV4dCcgfCAnanNvbicgPSB0aGlzLmNvbmZpZy5mb3JtYXQ7XG4gIEBJbnB1dCgpIGhlaWdodCA9IHRoaXMuY29uZmlnLmhlaWdodDtcbiAgQElucHV0KCkgd2lkdGggPSB0aGlzLmNvbmZpZy53aWR0aDtcbiAgQElucHV0KCkgZnVsbHNjcmVlbkhlaWdodCA9IHRoaXMuY29uZmlnLmZ1bGxzY3JlZW5IZWlnaHQ7XG4gIEBJbnB1dCgpIGZ1bGxzY3JlZW5XaWR0aCA9IHRoaXMuY29uZmlnLmZ1bGxzY3JlZW5XaWR0aDtcbiAgQElucHV0KCkgZnVsbHNjcmVlbk1vZGU6ICdleHBhbmQnIHwgJ3BvcG91dCcgPSB0aGlzLmNvbmZpZy5mdWxsc2NyZWVuTW9kZTtcblxuICBASW5wdXQoKSBlbmFibGVUb29sdGlwczogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgZnVsbHNjcmVlbjogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgcmVhZG9ubHk6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIGFwcGx5UmVhZG9ubHlTdHlsZTogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgc2hvd1Rvb2xiYXI6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5ASW5wdXQoKSBkZWJ1ZzogYm9vbGVhbiB8IHVuZGVmaW5lZDsgLy8gZGVidWdcbiAgLy8jcmVnaW9uIE9wdGlvbmFsIFF1aWxsIG1vZHVsZXNcbiAgQElucHV0KCkgaW1hZ2VSZXNpemVNb2R1bGU6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIGltYWdlRHJvcE1vZHVsZTogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgbWVudGlvbk1vZHVsZTogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgc3ludGF4TW9kdWxlOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICAvLyNlbmRyZWdpb25cbiAgLy8jZW5kcmVnaW9uXG5cbiAgQE91dHB1dCgpIGZ1bGxzY3JlZW5DaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIC8vI3JlZ2lvbiBQYXNzdGhyb3VnaCBldmVudHNcbiAgQE91dHB1dCgpIG9uQmx1ciA9IG5ldyBFdmVudEVtaXR0ZXI8Qmx1cj4oKTtcbiAgQE91dHB1dCgpIG9uQ29udGVudENoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPENvbnRlbnRDaGFuZ2U+KCk7XG4gIEBPdXRwdXQoKSBvbkVkaXRvckNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEVkaXRvckNoYW5nZUNvbnRlbnQgfCBFZGl0b3JDaGFuZ2VTZWxlY3Rpb24+KCk7XG4gIEBPdXRwdXQoKSBvbkVkaXRvckNyZWF0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBvbkZvY3VzID0gbmV3IEV2ZW50RW1pdHRlcjxGb2N1cz4oKTtcbiAgQE91dHB1dCgpIG9uU2VsZWN0aW9uQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8U2VsZWN0aW9uQ2hhbmdlPigpO1xuICAvLyNlbmRyZWdpb25cbiAgXG4gIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwcml2YXRlIGRhdGE6IERpYWxvZ0RhdGEsXG4gICAgICAgICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8RWRpdG9yQ29tcG9uZW50PixcbiAgICAgICAgICAgICAgcHJpdmF0ZSBhY3RpdmVEaXJlY3RvcnlTZXJ2aWNlOiBBY3RpdmVEaXJlY3RvcnlTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nKSB7ICBcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaW5pdGlhbGl6ZSgpO1xuICAgIFxuICAgIGlmICghdGhpcy51c2Vycykge1xuICAgICAgdGhpcy5hY3RpdmVEaXJlY3RvcnlTZXJ2aWNlLmdldFVzZXJzKCkuc3Vic2NyaWJlKHVzZXJzID0+XG4gICAgICAgIHRoaXMudXNlcnMgPSB1c2Vyc1xuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBpbml0aWFsaXplKCk6IHZvaWQge1xuICAgIHRoaXMuY29uZmlnID0gdGhpcy5jb25maWcgPz8gdGhpcy5kYXRhPy5jb25maWcgPz8gbmV3IENvbmZpZygpO1xuXG4gICAgdGhpcy5pbWFnZVJlc2l6ZU1vZHVsZSA9IHRoaXMuaW1hZ2VSZXNpemVNb2R1bGUgIT09IHVuZGVmaW5lZCA/XG4gICAgICB0aGlzLmltYWdlUmVzaXplTW9kdWxlIDpcbiAgICAgIHRoaXMuaW1hZ2VSZXNpemVNb2R1bGUgPz8gdGhpcy5jb25maWcuaW1hZ2VSZXNpemVNb2R1bGU7XG5cbiAgICB0aGlzLmltYWdlRHJvcE1vZHVsZSA9IHRoaXMuaW1hZ2VEcm9wTW9kdWxlICE9PSB1bmRlZmluZWQgP1xuICAgICAgdGhpcy5pbWFnZURyb3BNb2R1bGUgOlxuICAgICAgdGhpcy5pbWFnZURyb3BNb2R1bGUgPz8gdGhpcy5jb25maWcuaW1hZ2VEcm9wTW9kdWxlO1xuXG4gICAgdGhpcy5tZW50aW9uTW9kdWxlID0gdGhpcy5tZW50aW9uTW9kdWxlICE9PSB1bmRlZmluZWQgP1xuICAgICAgdGhpcy5tZW50aW9uTW9kdWxlIDpcbiAgICAgIHRoaXMubWVudGlvbk1vZHVsZSA/PyB0aGlzLmNvbmZpZy5tZW50aW9uTW9kdWxlO1xuXG4gICAgdGhpcy5zeW50YXhNb2R1bGUgPSB0aGlzLnN5bnRheE1vZHVsZSAhPT0gdW5kZWZpbmVkID9cbiAgICAgIHRoaXMuc3ludGF4TW9kdWxlIDpcbiAgICAgIHRoaXMuc3ludGF4TW9kdWxlID8/IHRoaXMuY29uZmlnLnN5bnRheE1vZHVsZTtcbiAgICAgIFxuICAgIGlmICh0aGlzLmltYWdlRHJvcE1vZHVsZSkge1xuICAgICAgUXVpbGwucmVnaXN0ZXIoJ21vZHVsZXMvaW1hZ2VEcm9wJywgSW1hZ2VEcm9wKTtcbiAgICB9XG5cbiAgICB0aGlzLmZvcm1Hcm91cCA9IHRoaXMuZm9ybUdyb3VwID8/IHRoaXMuZGF0YT8uZm9ybUdyb3VwO1xuICAgIHRoaXMuY29udHJvbE5hbWUgPSB0aGlzLmNvbnRyb2xOYW1lID8/IHRoaXMuZGF0YT8uY29udHJvbE5hbWU7XG4gICAgdGhpcy5uZ01vZGVsVmFsdWUgPSB0aGlzLm5nTW9kZWxWYWx1ZSA/PyB0aGlzLmRhdGE/LnZhbHVlO1xuXG4gICAgdGhpcy5wbGFjZWhvbGRlciA9IHRoaXMucGxhY2Vob2xkZXIgPz8gdGhpcy5kYXRhPy5wbGFjZWhvbGRlcjtcbiAgICB0aGlzLnVzZXJzID0gdGhpcy51c2VycyA/PyB0aGlzLmRhdGE/LnVzZXJzO1xuXG4gICAgdGhpcy5mb3JtYXQgPSB0aGlzLmZvcm1hdCA/PyB0aGlzLmRhdGE/LmZvcm1hdCA/PyB0aGlzLmNvbmZpZy5mb3JtYXQ7XG4gICAgdGhpcy5oZWlnaHQgPSB0aGlzLmhlaWdodCA/PyB0aGlzLmRhdGE/LmhlaWdodCA/PyB0aGlzLmNvbmZpZy5oZWlnaHQ7XG4gICAgdGhpcy53aWR0aCA9IHRoaXMud2lkdGggPz8gdGhpcy5kYXRhPy53aWR0aCA/PyB0aGlzLmNvbmZpZy53aWR0aDtcbiAgICB0aGlzLmZ1bGxzY3JlZW5IZWlnaHQgPSB0aGlzLmZ1bGxzY3JlZW5IZWlnaHQgPz8gdGhpcy5kYXRhPy5tYXhIZWlnaHQgPz8gdGhpcy5jb25maWcuZnVsbHNjcmVlbkhlaWdodDtcbiAgICB0aGlzLmZ1bGxzY3JlZW5XaWR0aCA9IHRoaXMuZnVsbHNjcmVlbldpZHRoID8/IHRoaXMuZGF0YT8ubWF4V2lkdGggPz8gdGhpcy5jb25maWcuZnVsbHNjcmVlbldpZHRoO1xuICAgIHRoaXMuZnVsbHNjcmVlbk1vZGUgPSB0aGlzLmZ1bGxzY3JlZW5Nb2RlID8/IHRoaXMuZGF0YT8uZnVsbHNjcmVlbk1vZGUgPz8gdGhpcy5jb25maWcuZnVsbHNjcmVlbk1vZGU7XG5cbiAgICB0aGlzLmVuYWJsZVRvb2x0aXBzID0gdGhpcy5lbmFibGVUb29sdGlwcyAhPT0gdW5kZWZpbmVkID9cbiAgICAgIHRoaXMuZW5hYmxlVG9vbHRpcHMgOlxuICAgICAgdGhpcy5kYXRhPy5lbmFibGVUb29sdGlwcyA/PyB0aGlzLmNvbmZpZy5lbmFibGVUb29sdGlwcztcblxuICAgIHRoaXMuZnVsbHNjcmVlbiA9IHRoaXMuZnVsbHNjcmVlbiAhPT0gdW5kZWZpbmVkID9cbiAgICAgIHRoaXMuZnVsbHNjcmVlbiA6XG4gICAgICB0aGlzLmRhdGE/LmZ1bGxzY3JlZW4gPz8gdGhpcy5jb25maWcuZnVsbHNjcmVlbjtcblxuICAgIHRoaXMucmVhZG9ubHkgPSB0aGlzLnJlYWRvbmx5ICE9PSB1bmRlZmluZWQgP1xuICAgICAgdGhpcy5yZWFkb25seSA6XG4gICAgICB0aGlzLmRhdGE/LnJlYWRvbmx5ID8/IHRoaXMuY29uZmlnLnJlYWRvbmx5O1xuXG4gICAgdGhpcy5hcHBseVJlYWRvbmx5U3R5bGUgPSB0aGlzLmFwcGx5UmVhZG9ubHlTdHlsZSAhPT0gdW5kZWZpbmVkID9cbiAgICAgIHRoaXMuYXBwbHlSZWFkb25seVN0eWxlIDpcbiAgICAgIHRoaXMuZGF0YT8uYXBwbHlSZWFkb25seVN0eWxlID8/IHRoaXMuY29uZmlnLmFwcGx5UmVhZG9ubHlTdHlsZTtcblxuICAgIHRoaXMuc2hvd1Rvb2xiYXIgPSB0aGlzLnNob3dUb29sYmFyICE9PSB1bmRlZmluZWQgP1xuICAgICAgdGhpcy5zaG93VG9vbGJhciA6XG4gICAgICB0aGlzLmRhdGE/LnNob3dUb29sYmFyID8/IHRoaXMuY29uZmlnLnNob3dUb29sYmFyO1xuICB9XG5cbiAgdG9nZ2xlRnVsbHNjcmVlbigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5mdWxsc2NyZWVuTW9kZSA9PT0gJ2V4cGFuZCcpIHtcbiAgICAgICAgdGhpcy5mdWxsc2NyZWVuID0gIXRoaXMuZnVsbHNjcmVlbjtcbiAgICAgICAgdGhpcy5mdWxsc2NyZWVuQ2hhbmdlZC5lbWl0KHRoaXMuZnVsbHNjcmVlbik7XG4gICAgICB9XG4gICAgZWxzZSB7XG4gICAgICBpZiAodGhpcy5mdWxsc2NyZWVuKSB7XG4gICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHRoaXMuZm9ybUdyb3VwID9cbiAgICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQodGhpcy5jb250cm9sTmFtZSk/LnZhbHVlIDpcbiAgICAgICAgICB0aGlzLm5nTW9kZWxWYWx1ZSk7XG4gICAgICAgICAgdGhpcy5mdWxsc2NyZWVuQ2hhbmdlZC5lbWl0KGZhbHNlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGRhdGE6IERpYWxvZ0RhdGEgPSB7XG4gICAgICAgICAgZm9ybUdyb3VwOiB0aGlzLmZvcm1Hcm91cCxcbiAgICAgICAgICBjb250cm9sTmFtZTogdGhpcy5jb250cm9sTmFtZSxcbiAgICAgICAgICB2YWx1ZTogdGhpcy5uZ01vZGVsVmFsdWUsXG5cbiAgICAgICAgICBjb25maWc6IHRoaXMuY29uZmlnLFxuICAgICAgICAgIHBsYWNlaG9sZGVyOiB0aGlzLnBsYWNlaG9sZGVyLFxuICAgICAgICAgIGZvcm1hdDogdGhpcy5mb3JtYXQsXG4gICAgICAgICAgaGVpZ2h0OiB0aGlzLmZ1bGxzY3JlZW5IZWlnaHQsXG4gICAgICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgICAgICBtYXhIZWlnaHQ6IHRoaXMuZnVsbHNjcmVlbkhlaWdodCxcbiAgICAgICAgICBtYXhXaWR0aDogJzEwMCUnLFxuICAgICAgICAgIGVuYWJsZVRvb2x0aXBzOiB0aGlzLmVuYWJsZVRvb2x0aXBzISxcbiAgICAgICAgICBmdWxsc2NyZWVuOiB0cnVlLFxuICAgICAgICAgIGZ1bGxzY3JlZW5Nb2RlOiB0aGlzLmZ1bGxzY3JlZW5Nb2RlLFxuICAgICAgICAgIHJlYWRvbmx5OiB0aGlzLnJlYWRvbmx5ISxcbiAgICAgICAgICBhcHBseVJlYWRvbmx5U3R5bGU6IHRoaXMuYXBwbHlSZWFkb25seVN0eWxlISxcbiAgICAgICAgICBzaG93VG9vbGJhcjogdGhpcy5zaG93VG9vbGJhciEsXG4gICAgICAgICAgdXNlcnM6IHRoaXMudXNlcnNcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLmRpYWxvZy5vcGVuKEVkaXRvckNvbXBvbmVudCwge1xuICAgICAgICAgIGRpc2FibGVDbG9zZTogdHJ1ZSxcbiAgICAgICAgICB3aWR0aDogdGhpcy5mdWxsc2NyZWVuV2lkdGgsXG4gICAgICAgICAgaGVpZ2h0OiB0aGlzLmZ1bGxzY3JlZW5IZWlnaHQsXG4gICAgICAgICAgZGF0YVxuICAgICAgICB9KVxuICAgICAgICAuYWZ0ZXJDbG9zZWQoKVxuICAgICAgICAuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgICAgICBpZiAodGhpcy5mb3JtR3JvdXApIHtcbiAgICAgICAgICAgIHRoaXMuZm9ybUdyb3VwLmdldCh0aGlzLmNvbnRyb2xOYW1lKT8uc2V0VmFsdWUodmFsdWUpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm5nTW9kZWxWYWx1ZSA9IHZhbHVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5mdWxsc2NyZWVuQ2hhbmdlZC5lbWl0KHRydWUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHRvb2x0aXAodmFsOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmVuYWJsZVRvb2x0aXBzID8gdmFsIDogJyc7XG4gIH1cblxuICBnZXQgbW9kdWxlcygpIHtcbiAgICBpZiAoIXRoaXMudXNlcnMpIHsgcmV0dXJuIHVuZGVmaW5lZDsgfVxuXG4gICAgY29uc3QgbW9kdWxlcyA9IHsgfTtcblxuICAgIGlmICghdGhpcy5zaG93VG9vbGJhcikge1xuICAgICAgbW9kdWxlc1sndG9vbGJhciddID0gW107XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaW1hZ2VSZXNpemVNb2R1bGUpIHtcbiAgICAgIG1vZHVsZXNbJ2ltYWdlUmVzaXplJ10gPSB7fTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5pbWFnZURyb3BNb2R1bGUpIHtcbiAgICAgIG1vZHVsZXNbJ2ltYWdlRHJvcCddID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zeW50YXhNb2R1bGUpIHtcbiAgICAgIG1vZHVsZXNbJ3N5bnRheCddID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5tZW50aW9uTW9kdWxlKSB7XG4gICAgICBtb2R1bGVzWydtZW50aW9uJ10gPSB7XG4gICAgICAgIGFsbG93ZWRDaGFyczogL15bQS1aYS16XFxzw4XDhMOWw6XDpMO2XSokLyxcblxuICAgICAgICBvblNlbGVjdDogKGl0ZW06IERPTVN0cmluZ01hcCwgaW5zZXJ0SXRlbTogYW55KSA9PiB7XG4gICAgICAgICAgY29uc3QgZWRpdG9yID0gdGhpcy5lZGl0b3IhLnF1aWxsRWRpdG9yXG4gICAgICAgICAgaW5zZXJ0SXRlbShpdGVtKVxuICAgICAgICAgIC8vIG5lY2Vzc2FyeSBiZWNhdXNlIHF1aWxsLW1lbnRpb24gdHJpZ2dlcnMgY2hhbmdlcyBhcyAnYXBpJyBpbnN0ZWFkIG9mICd1c2VyJ1xuICAgICAgICAgIGVkaXRvci5pbnNlcnRUZXh0KGVkaXRvci5nZXRMZW5ndGgoKSAtIDEsICcnLCAndXNlcicpXG4gICAgICAgIH0sXG5cbiAgICAgICAgc291cmNlOiAoc2VhcmNoVGVybTogc3RyaW5nLCByZW5kZXJMaXN0OiBhbnkpID0+IHtcbiAgICAgICAgICBpZiAoc2VhcmNoVGVybS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJlbmRlckxpc3QodGhpcy51c2Vycz8ubWFwKHUgPT4gKHsgdmFsdWU6IGAke3UuZGlzcGxheU5hbWV9ICgke3Uuc0FNQWNjb3VudE5hbWUudG9Mb3dlckNhc2UoKX0pYCB9KSksIHNlYXJjaFRlcm0pXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IG1hdGNoZXM6IGFueVtdID0gW11cblxuICAgICAgICAgICAgdGhpcy51c2VycyEuZm9yRWFjaCgoZW50cnkpID0+IHtcbiAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIGVudHJ5LmRpc3BsYXlOYW1lLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihzZWFyY2hUZXJtLnRvTG93ZXJDYXNlKCkpICE9PSAtMSB8fFxuICAgICAgICAgICAgICAgIGVudHJ5LnNBTUFjY291bnROYW1lLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihzZWFyY2hUZXJtLnRvTG93ZXJDYXNlKCkpICE9PSAtMVxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIG1hdGNoZXMucHVzaCh7IHZhbHVlOiBgJHtlbnRyeS5kaXNwbGF5TmFtZX0gKCR7ZW50cnkuc0FNQWNjb3VudE5hbWUudG9Mb3dlckNhc2UoKX0pYCB9KVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuXG4gICAgICAgICAgICByZW5kZXJMaXN0KG1hdGNoZXMsIHNlYXJjaFRlcm0pXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiBtb2R1bGVzO1xuICB9XG59IiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cInVzZXJzXCI+XG4gICAgPCEtLSBSZWFjdGl2ZSBmb3JtcyAtLT5cbiAgICA8Zm9ybSAqbmdJZj1cImZvcm1Hcm91cFwiIFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwXCI+XG4gICAgICAgIDxxdWlsbC1lZGl0b3JcbiAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiY29udHJvbE5hbWVcIlxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgICAgICAgIFtmb3JtYXRdPVwiZm9ybWF0XCJcbiAgICAgICAgICAgIFtzdHlsZS5oZWlnaHRdPVwiZnVsbHNjcmVlbiA/IGZ1bGxzY3JlZW5IZWlnaHQgOiBoZWlnaHRcIlxuICAgICAgICAgICAgW3N0eWxlLndpZHRoXT1cImZ1bGxzY3JlZW4gPyBmdWxsc2NyZWVuV2lkdGggOiB3aWR0aFwiXG4gICAgICAgICAgICBbcmVhZE9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgICAgICAgW2NsYXNzLnJlYWRvbmx5XT1cInJlYWRvbmx5ICYmIGFwcGx5UmVhZG9ubHlTdHlsZVwiXG4gICAgICAgICAgICBbY2xhc3Mubm8tdG9vbGJhcl09XCIhc2hvd1Rvb2xiYXJcIlxuICAgICAgICAgICAgW21vZHVsZXNdPVwibW9kdWxlc1wiXG4gICAgXG4gICAgICAgICAgICAob25CbHVyKT1cIm9uQmx1ci5lbWl0KCRldmVudClcIlxuICAgICAgICAgICAgKG9uQ29udGVudENoYW5nZWQpPVwib25Db250ZW50Q2hhbmdlZC5lbWl0KCRldmVudClcIlxuICAgICAgICAgICAgKG9uRWRpdG9yQ2hhbmdlZCk9XCJvbkVkaXRvckNoYW5nZWQuZW1pdCgkZXZlbnQpXCJcbiAgICAgICAgICAgIChvbkVkaXRvckNyZWF0ZWQpPVwib25FZGl0b3JDcmVhdGVkLmVtaXQoKVwiXG4gICAgICAgICAgICAob25Gb2N1cyk9XCJvbkZvY3VzLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAob25TZWxlY3Rpb25DaGFuZ2VkKT1cIm9uU2VsZWN0aW9uQ2hhbmdlZC5lbWl0KCRldmVudClcIj5cbiAgICBcbiAgICAgICAgICAgIDxkaXYgcXVpbGwtZWRpdG9yLXRvb2xiYXIgKm5nSWY9XCJzaG93VG9vbGJhclwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwidG9vbGJhclwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiZWRpdG9yU2l6ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvcXVpbGwtZWRpdG9yPlxuICAgIDwvZm9ybT5cbiAgICBcbiAgICA8IS0tIE5nTW9kZWwgZm9ybXMgLS0+XG4gICAgPGZvcm0gKm5nSWY9XCIhZm9ybUdyb3VwXCI+XG4gICAgICAgIDxxdWlsbC1lZGl0b3IgbmFtZT1cImVkaXRvclwiXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cIm5nTW9kZWxWYWx1ZVwiXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgICAgICAgW2Zvcm1hdF09XCJmb3JtYXRcIlxuICAgICAgICAgICAgW3N0eWxlLmhlaWdodF09XCJmdWxsc2NyZWVuID8gZnVsbHNjcmVlbkhlaWdodCA6IGhlaWdodFwiXG4gICAgICAgICAgICBbc3R5bGUud2lkdGhdPVwiZnVsbHNjcmVlbiA/IGZ1bGxzY3JlZW5XaWR0aCA6IHdpZHRoXCJcbiAgICAgICAgICAgIFtyZWFkT25seV09XCJyZWFkb25seVwiXG4gICAgICAgICAgICBbY2xhc3MucmVhZG9ubHldPVwicmVhZG9ubHkgJiYgYXBwbHlSZWFkb25seVN0eWxlXCJcbiAgICAgICAgICAgIFtjbGFzcy5uby10b29sYmFyXT1cIiFzaG93VG9vbGJhclwiXG4gICAgICAgICAgICBbbW9kdWxlc109XCJtb2R1bGVzXCJcbiAgICBcbiAgICAgICAgICAgIChvbkJsdXIpPVwib25CbHVyLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAob25Db250ZW50Q2hhbmdlZCk9XCJvbkNvbnRlbnRDaGFuZ2VkLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAob25FZGl0b3JDaGFuZ2VkKT1cIm9uRWRpdG9yQ2hhbmdlZC5lbWl0KCRldmVudClcIlxuICAgICAgICAgICAgKG9uRWRpdG9yQ3JlYXRlZCk9XCJvbkVkaXRvckNyZWF0ZWQuZW1pdCgpXCJcbiAgICAgICAgICAgIChvbkZvY3VzKT1cIm9uRm9jdXMuZW1pdCgkZXZlbnQpXCJcbiAgICAgICAgICAgIChvblNlbGVjdGlvbkNoYW5nZWQpPVwib25TZWxlY3Rpb25DaGFuZ2VkLmVtaXQoJGV2ZW50KVwiPlxuICAgIFxuICAgICAgICAgICAgPGRpdiBxdWlsbC1lZGl0b3ItdG9vbGJhciAqbmdJZj1cInNob3dUb29sYmFyXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJ0b29sYmFyXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJlZGl0b3JTaXplXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9xdWlsbC1lZGl0b3I+XG4gICAgPC9mb3JtPlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy10ZW1wbGF0ZSAjdG9vbGJhcj5cbiAgICA8ZGl2PlxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImZvbnRTdHlsZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImJsb2NrU3R5bGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJoZWFkaW5nU3R5bGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJsaXN0U3R5bGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJzY3JpcHRTdHlsZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImluZGVudFN0eWxlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwicnRsXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiZm9udFNpemVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJoZWFkaW5nXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiY29sb3JcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJmb250XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiYWxpZ25cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJjbGVhblwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8bnQtY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImZvcm11bGFcIj48L250LWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJtZWRpYVwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNmb250U3R5bGU+XG4gICAgPHNwYW4gY2xhc3M9XCJxbC1mb3JtYXRzXCIgKm5nSWY9XCJjb25maWcuc2hvd0ZvbnRTdHlsZVwiPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtYm9sZFwiICAgICAgKm5nSWY9XCJjb25maWcuYnV0dG9ucy5ib2xkXCIgICAgICBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZy50b29sdGlwcy5ib2xkKVwiPjwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtaXRhbGljXCIgICAgKm5nSWY9XCJjb25maWcuYnV0dG9ucy5pdGFsaWNcIiAgICBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZy50b29sdGlwcy5pdGFsaWMpXCI+PC9idXR0b24+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC11bmRlcmxpbmVcIiAqbmdJZj1cImNvbmZpZy5idXR0b25zLnVuZGVybGluZVwiIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnLnRvb2x0aXBzLnVuZGVybGluZSlcIj48L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInFsLXN0cmlrZVwiICAgICpuZ0lmPVwiY29uZmlnLmJ1dHRvbnMuc3RyaWtlXCIgICAgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWcudG9vbHRpcHMuc3RyaWtlKVwiPjwvYnV0dG9uPlxuICAgIDwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjYmxvY2tTdHlsZT5cbiAgICA8c3BhbiBjbGFzcz1cInFsLWZvcm1hdHNcIiAqbmdJZj1cImNvbmZpZy5zaG93QmxvY2tTdHlsZVwiPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtYmxvY2txdW90ZVwiICpuZ0lmPVwiY29uZmlnLmJ1dHRvbnMuYmxvY2txdW90ZVwiIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnLnRvb2x0aXBzLmJsb2NrcXVvdGUpXCI+PC9idXR0b24+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1jb2RlLWJsb2NrXCIgKm5nSWY9XCJjb25maWcuYnV0dG9ucy5jb2RlYmxvY2tcIiAgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWcudG9vbHRpcHMuY29kZWJsb2NrKVwiPjwvYnV0dG9uPlxuICAgIDwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjaGVhZGluZ1N0eWxlPlxuICAgIDxzcGFuIGNsYXNzPVwicWwtZm9ybWF0c1wiICpuZ0lmPVwiY29uZmlnLnNob3dRdWlja0hlYWRpbmdTdHlsZVwiPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtaGVhZGVyXCIgdmFsdWU9XCIxXCIgKm5nSWY9XCJjb25maWcuYnV0dG9ucy5oMVwiIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnLnRvb2x0aXBzLmgxKVwiPjwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtaGVhZGVyXCIgdmFsdWU9XCIyXCIgKm5nSWY9XCJjb25maWcuYnV0dG9ucy5oMlwiIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnLnRvb2x0aXBzLmgyKVwiPjwvYnV0dG9uPlxuICAgIDwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjbGlzdFN0eWxlPlxuICAgIDxzcGFuIGNsYXNzPVwicWwtZm9ybWF0c1wiICpuZ0lmPVwiY29uZmlnLnNob3dMaXN0U3R5bGVcIj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInFsLWxpc3RcIiB2YWx1ZT1cIm9yZGVyZWRcIiAqbmdJZj1cImNvbmZpZy5idXR0b25zLm9yZGVyZWRcIiAgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWcudG9vbHRpcHMub3JkZXJlZClcIj48L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInFsLWxpc3RcIiB2YWx1ZT1cImJ1bGxldFwiICAqbmdJZj1cImNvbmZpZy5idXR0b25zLmJ1bGxldGVkXCIgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWcudG9vbHRpcHMuYnVsbGV0ZWQpXCI+PC9idXR0b24+XG4gICAgPC9zcGFuPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNzY3JpcHRTdHlsZT5cbiAgICA8c3BhbiBjbGFzcz1cInFsLWZvcm1hdHNcIiAqbmdJZj1cImNvbmZpZy5zaG93U2NyaXB0U3R5bGVcIj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInFsLXNjcmlwdFwiIHZhbHVlPVwic3ViXCIgICAqbmdJZj1cImNvbmZpZy5idXR0b25zLnN1YlNjcmlwdFwiIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnLnRvb2x0aXBzLnN1YlNjcmlwdClcIj48L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInFsLXNjcmlwdFwiIHZhbHVlPVwic3VwZXJcIiAqbmdJZj1cImNvbmZpZy5idXR0b25zLnN1cGVyU2NyaXB0XCIgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWcudG9vbHRpcHMuc3VwZXJTY3JpcHQpXCI+PC9idXR0b24+XG4gICAgPC9zcGFuPlxuPC9uZy10ZW1wbGF0ZT5cbiAgICBcbjxuZy10ZW1wbGF0ZSAjaW5kZW50U3R5bGU+XG4gICAgPHNwYW4gY2xhc3M9XCJxbC1mb3JtYXRzXCIgKm5nSWY9XCJjb25maWcuc2hvd0luZGVudFN0eWxlXCI+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1pbmRlbnRcIiB2YWx1ZT1cIi0xXCIgKm5nSWY9XCJjb25maWcuYnV0dG9ucy5kZWNyZWFzZUluZGVudFwiIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnLnRvb2x0aXBzLmRlY3JlYXNlSW5kZW50KVwiPjwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtaW5kZW50XCIgdmFsdWU9XCIrMVwiICpuZ0lmPVwiY29uZmlnLmJ1dHRvbnMuaW5jcmVhc2VJbmRlbnRcIiBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZy50b29sdGlwcy5pbmNyZWFzZUluZGVudClcIj48L2J1dHRvbj5cbiAgICA8L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3J0bD5cbiAgICA8c3BhbiBjbGFzcz1cInFsLWZvcm1hdHNcIiAqbmdJZj1cImNvbmZpZy5idXR0b25zLnJ0bFwiPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtZGlyZWN0aW9uXCIgdmFsdWU9XCJydGxcIiBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZy50b29sdGlwcy5ydGwpXCI+PC9idXR0b24+XG4gICAgPC9zcGFuPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNmb250U2l6ZT5cbiAgICA8c3BhbiBjbGFzcz1cInFsLWZvcm1hdHNcIiAqbmdJZj1cImNvbmZpZy5idXR0b25zLmZvbnRTaXplXCIgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWcudG9vbHRpcHMuZm9udFNpemUpXCI+XG4gICAgICAgIDxzZWxlY3QgY2xhc3M9XCJxbC1zaXplXCI+XG4gICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwic21hbGxcIj48L29wdGlvbj5cbiAgICAgICAgICAgIDxvcHRpb24gc2VsZWN0ZWQ+PC9vcHRpb24+XG4gICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwibGFyZ2VcIj48L29wdGlvbj5cbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJodWdlXCI+PC9vcHRpb24+XG4gICAgICAgIDwvc2VsZWN0PlxuICAgIDwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjaGVhZGluZz5cbiAgICA8c3BhbiBjbGFzcz1cInFsLWZvcm1hdHNcIiAqbmdJZj1cImNvbmZpZy5idXR0b25zLmhlYWRpbmdTdHlsZVwiIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnLnRvb2x0aXBzLmhlYWRpbmdTdHlsZSlcIj5cbiAgICAgICAgPHNlbGVjdCBjbGFzcz1cInFsLWhlYWRlclwiPlxuICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjFcIj48L29wdGlvbj5cbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCIyXCI+PC9vcHRpb24+XG4gICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiM1wiPjwvb3B0aW9uPlxuICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjRcIj48L29wdGlvbj5cbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCI1XCI+PC9vcHRpb24+XG4gICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiNlwiPjwvb3B0aW9uPlxuICAgICAgICAgICAgPG9wdGlvbiBzZWxlY3RlZD1cInNlbGVjdGVkXCI+PC9vcHRpb24+XG4gICAgICAgIDwvc2VsZWN0PlxuICAgIDwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjY29sb3I+XG4gICAgPHNwYW4gY2xhc3M9XCJxbC1mb3JtYXRzXCIgKm5nSWY9XCJjb25maWcuYnV0dG9ucy5jb2xvclwiIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnLnRvb2x0aXBzLmNvbG9yKVwiPlxuICAgICAgICA8c2VsZWN0IGNsYXNzPVwicWwtY29sb3JcIj48L3NlbGVjdD5cbiAgICAgICAgPHNlbGVjdCBjbGFzcz1cInFsLWJhY2tncm91bmRcIj48L3NlbGVjdD5cbiAgICA8L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2ZvbnQ+XG4gICAgPHNwYW4gY2xhc3M9XCJxbC1mb3JtYXRzXCIgKm5nSWY9XCJjb25maWcuYnV0dG9ucy5mb250XCIgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWcudG9vbHRpcHMuZm9udClcIj5cbiAgICAgICAgPHNlbGVjdCBjbGFzcz1cInFsLWZvbnRcIj5cbiAgICAgICAgICAgIDxvcHRpb24gc2VsZWN0ZWQ+PC9vcHRpb24+XG4gICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwic2VyaWZcIj48L29wdGlvbj5cbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJtb25vc3BhY2VcIj48L29wdGlvbj5cbiAgICAgICAgPC9zZWxlY3Q+XG4gICAgPC9zcGFuPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNhbGlnbj5cbiAgICA8c3BhbiBjbGFzcz1cInFsLWZvcm1hdHNcIiAqbmdJZj1cImNvbmZpZy5idXR0b25zLmFsaWduXCIgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWcudG9vbHRpcHMuYWxpZ24pXCI+XG4gICAgICAgIDxzZWxlY3QgY2xhc3M9XCJxbC1hbGlnblwiPlxuICAgICAgICAgICAgPG9wdGlvbiBzZWxlY3RlZD48L29wdGlvbj5cbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJjZW50ZXJcIj48L29wdGlvbj5cbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJyaWdodFwiPjwvb3B0aW9uPlxuICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cImp1c3RpZnlcIj48L29wdGlvbj5cbiAgICAgICAgPC9zZWxlY3Q+XG4gICAgPC9zcGFuPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNjbGVhbj5cbiAgICA8c3BhbiBjbGFzcz1cInFsLWZvcm1hdHNcIiAqbmdJZj1cImNvbmZpZy5idXR0b25zLmNsZWFuXCIgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWcudG9vbHRpcHMuY2xlYW4pXCI+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1jbGVhblwiPjwvYnV0dG9uPlxuICAgIDwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjbWVkaWE+XG4gICAgPHNwYW4gY2xhc3M9XCJxbC1mb3JtYXRzXCIgKm5nSWY9XCJjb25maWcuc2hvd01lZGlhXCI+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1saW5rXCIgICpuZ0lmPVwiY29uZmlnLmJ1dHRvbnMubGlua1wiIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnLnRvb2x0aXBzLmxpbmspXCI+PC9idXR0b24+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1pbWFnZVwiICpuZ0lmPVwiY29uZmlnLmJ1dHRvbnMuaW1hZ2VcIiBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZy50b29sdGlwcy5pbWFnZSlcIj48L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInFsLXZpZGVvXCIgKm5nSWY9XCJjb25maWcuYnV0dG9ucy52aWRlb1wiIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnLnRvb2x0aXBzLnZpZGVvKVwiPjwvYnV0dG9uPlxuICAgIDwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZWRpdG9yU2l6ZT5cbiAgICA8c3BhbiBjbGFzcz1cInFsLWZvcm1hdHNcIiAqbmdJZj1cImNvbmZpZy5idXR0b25zLmVkaXRvclNpemVcIj5cbiAgICAgICAgPGJ1dHRvbiBpZD1cImZ1bGxzY3JlZW5cIlxuICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwidG9vbHRpcChmdWxsc2NyZWVuID9cbiAgICAgICAgICAgICAgICAoZnVsbHNjcmVlbk1vZGUgPT09ICdleHBhbmQnID8gY29uZmlnLnRvb2x0aXBzLm1pbmltaXplIDogY29uZmlnLnRvb2x0aXBzLnBvcGluKSA6XG4gICAgICAgICAgICAgICAgKGZ1bGxzY3JlZW5Nb2RlID09PSAnZXhwYW5kJyA/IGNvbmZpZy50b29sdGlwcy5tYXhpbWl6ZSA6IGNvbmZpZy50b29sdGlwcy5wb3BvdXQpKVwiPlxuXG4gICAgICAgICAgICA8bWF0LWljb24gKGNsaWNrKT1cInRvZ2dsZUZ1bGxzY3JlZW4oKVwiPlxuICAgICAgICAgICAgICAgIHt7IGZ1bGxzY3JlZW4gP1xuICAgICAgICAgICAgICAgICAgICAoZnVsbHNjcmVlbk1vZGUgPT09ICdleHBhbmQnID8gY29uZmlnLmljb25zLm1pbmltaXplIDogY29uZmlnLmljb25zLnBvcGluKSA6XG4gICAgICAgICAgICAgICAgICAgIChmdWxsc2NyZWVuTW9kZSA9PT0gJ2V4cGFuZCcgPyBjb25maWcuaWNvbnMubWF4aW1pemUgOiBjb25maWcuaWNvbnMucG9wb3V0KVxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICA8L21hdC1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICA8L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2Zvcm11bGE+XG4gICAgPHNwYW4gY2xhc3M9XCJxbC1mb3JtYXRzXCIgKm5nSWY9XCJjb25maWcuYnV0dG9ucy5mb3JtdWxhXCIgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWcudG9vbHRpcHMuZm9ybXVsYSlcIj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInFsLWZvcm11bGFcIj48L2J1dHRvbj5cbiAgICA8L3NwYW4+XG48L25nLXRlbXBsYXRlPiJdfQ==
273
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL3F1aWxsLWVkaXRvci9zcmMvY29tcG9uZW50cy9lZGl0b3IvZWRpdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL3F1aWxsLWVkaXRvci9zcmMvY29tcG9uZW50cy9lZGl0b3IvZWRpdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFNUcsT0FBTyxFQUEyQixlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUdwRixPQUFPLEVBQTJGLG9CQUFvQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRTFJLE9BQU8sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFcEQscUZBQXFGO0FBQ3JGLHNEQUFzRDtBQUN0RCxxREFBcUQ7QUFFckQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7Ozs7Ozs7QUFRNUMsTUFBTSxPQUFPLGVBQWU7SUEyQzFCLFlBQVk7SUFFWixZQUF5RCxJQUFnQixFQUN6QyxTQUF3QyxFQUNwRCxzQkFBOEMsRUFDOUMsTUFBaUI7UUFIb0IsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUN6QyxjQUFTLEdBQVQsU0FBUyxDQUErQjtRQUNwRCwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBQzlDLFdBQU0sR0FBTixNQUFNLENBQVc7UUF6QzVCLFdBQU0s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QUs7c0JBQWIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUVHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBR0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUlJLGlCQUFpQjtzQkFBMUIsTUFBTTtnQkFHRyxNQUFNO3NCQUFmLE1BQU07Z0JBQ0csZ0JBQWdCO3NCQUF6QixNQUFNO2dCQUNHLGVBQWU7c0JBQXhCLE1BQU07Z0JBQ0csZUFBZTtzQkFBeEIsTUFBTTtnQkFDRyxPQUFPO3NCQUFoQixNQUFNO2dCQUNHLGtCQUFrQjtzQkFBM0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbmplY3QsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0RGlhbG9nLCBNYXREaWFsb2dSZWYsIE1BVF9ESUFMT0dfREFUQSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBBY3RpdmVEaXJlY3RvcnlTZXJ2aWNlLCBVc2VyIH0gZnJvbSAnQGNsZWF2ZWxhbmRwcmljZS9uZ3gtbGliL2FjdGl2ZS1kaXJlY3RvcnknO1xuXG5pbXBvcnQgeyBDb250ZW50Q2hhbmdlLCBCbHVyLCBGb2N1cywgRWRpdG9yQ2hhbmdlQ29udGVudCwgRWRpdG9yQ2hhbmdlU2VsZWN0aW9uLCBTZWxlY3Rpb25DaGFuZ2UsIFF1aWxsRWRpdG9yQ29tcG9uZW50IH0gZnJvbSAnbmd4LXF1aWxsJztcblxuaW1wb3J0ICdxdWlsbC1tZW50aW9uJztcbmltcG9ydCBRdWlsbCBmcm9tICdxdWlsbCc7XG5pbXBvcnQgeyBJbWFnZURyb3AgfSBmcm9tICdxdWlsbC1pbWFnZS1kcm9wLW1vZHVsZSc7XG5cbi8vIFRoaXMgZG9lc24ndCB3b3JrIHdoZW4gZG9uZSBmcm9tIHRoZSBsaWJyYXJ5IC0gaXQgbXVzdCBiZSBkb25lIGZyb20gdGhlIGNsaWVudCBhcHBcbi8vaW1wb3J0IEltYWdlUmVzaXplIGZyb20gJ3F1aWxsLWltYWdlLXJlc2l6ZS1tb2R1bGUnO1xuLy9RdWlsbC5yZWdpc3RlcignbW9kdWxlcy9pbWFnZVJlc2l6ZScsIEltYWdlUmVzaXplKTtcblxuaW1wb3J0IHsgQ29uZmlnIH0gZnJvbSAnLi4vLi4vbW9kZWwvY29uZmlnJztcbmltcG9ydCB7IERpYWxvZ0RhdGEgfSBmcm9tICcuLi8uLi9tb2RlbC9kaWFsb2ctZGF0YSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NwcXVpbGwtZWRpdG9yJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2VkaXRvci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2VkaXRvci5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgRWRpdG9yQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQFZpZXdDaGlsZChRdWlsbEVkaXRvckNvbXBvbmVudCwgeyBzdGF0aWM6IGZhbHNlIH0pIGVkaXRvcjogUXVpbGxFZGl0b3JDb21wb25lbnQgfCB1bmRlZmluZWQ7XG5cbiAgQElucHV0KCkgZm9ybUdyb3VwITogRm9ybUdyb3VwO1xuICBASW5wdXQoKSBjb250cm9sTmFtZSE6IHN0cmluZztcbiAgQElucHV0KCkgbmdNb2RlbFZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgQElucHV0KCkgY29uZmlnOiBDb25maWcgPSBuZXcgQ29uZmlnKCk7XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIHVzZXJzOiBVc2VyW10gfCB1bmRlZmluZWQ7XG5cbiAgLy8jcmVnaW9uIFRoZXNlIGNhbiBiZSBwYXNzZWQgaW4gYXMgQElucHV0KCksIG9yIHVzZSB2YWx1ZXMgZnJvbSBjb25maWdcbiAgQElucHV0KCkgZm9ybWF0OiAnb2JqZWN0JyB8ICdodG1sJyB8ICd0ZXh0JyB8ICdqc29uJyA9IHRoaXMuY29uZmlnLmZvcm1hdDtcbiAgQElucHV0KCkgaGVpZ2h0ID0gdGhpcy5jb25maWcuaGVpZ2h0O1xuICBASW5wdXQoKSB3aWR0aCA9IHRoaXMuY29uZmlnLndpZHRoO1xuICBASW5wdXQoKSBmdWxsc2NyZWVuSGVpZ2h0ID0gdGhpcy5jb25maWcuZnVsbHNjcmVlbkhlaWdodDtcbiAgQElucHV0KCkgZnVsbHNjcmVlbldpZHRoID0gdGhpcy5jb25maWcuZnVsbHNjcmVlbldpZHRoO1xuICBASW5wdXQoKSBmdWxsc2NyZWVuTW9kZTogJ2V4cGFuZCcgfCAncG9wb3V0JyA9IHRoaXMuY29uZmlnLmZ1bGxzY3JlZW5Nb2RlO1xuXG4gIEBJbnB1dCgpIGVuYWJsZVRvb2x0aXBzOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBmdWxsc2NyZWVuOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSByZWFkb25seTogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgYXBwbHlSZWFkb25seVN0eWxlOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBzaG93VG9vbGJhcjogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgc2hvd0JvcmRlcjogYm9vbGVhbiB8IHVuZGVmaW5lZDtcblxuICAvLyNyZWdpb24gT3B0aW9uYWwgUXVpbGwgbW9kdWxlc1xuICBASW5wdXQoKSBpbWFnZVJlc2l6ZU1vZHVsZTogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgaW1hZ2VEcm9wTW9kdWxlOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBtZW50aW9uTW9kdWxlOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBzeW50YXhNb2R1bGU6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gIC8vI2VuZHJlZ2lvblxuICAvLyNlbmRyZWdpb25cblxuICBAT3V0cHV0KCkgZnVsbHNjcmVlbkNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgLy8jcmVnaW9uIFBhc3N0aHJvdWdoIGV2ZW50c1xuICBAT3V0cHV0KCkgb25CbHVyID0gbmV3IEV2ZW50RW1pdHRlcjxCbHVyPigpO1xuICBAT3V0cHV0KCkgb25Db250ZW50Q2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Q29udGVudENoYW5nZT4oKTtcbiAgQE91dHB1dCgpIG9uRWRpdG9yQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8RWRpdG9yQ2hhbmdlQ29udGVudCB8IEVkaXRvckNoYW5nZVNlbGVjdGlvbj4oKTtcbiAgQE91dHB1dCgpIG9uRWRpdG9yQ3JlYXRlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIG9uRm9jdXMgPSBuZXcgRXZlbnRFbWl0dGVyPEZvY3VzPigpO1xuICBAT3V0cHV0KCkgb25TZWxlY3Rpb25DaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxTZWxlY3Rpb25DaGFuZ2U+KCk7XG4gIC8vI2VuZHJlZ2lvblxuICBcbiAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHByaXZhdGUgZGF0YTogRGlhbG9nRGF0YSxcbiAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxFZGl0b3JDb21wb25lbnQ+LFxuICAgICAgICAgICAgICBwcml2YXRlIGFjdGl2ZURpcmVjdG9yeVNlcnZpY2U6IEFjdGl2ZURpcmVjdG9yeVNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgZGlhbG9nOiBNYXREaWFsb2cpIHsgIFxuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pbml0aWFsaXplKCk7XG4gICAgXG4gICAgaWYgKCF0aGlzLnVzZXJzKSB7XG4gICAgICB0aGlzLmFjdGl2ZURpcmVjdG9yeVNlcnZpY2UuZ2V0VXNlcnMoKS5zdWJzY3JpYmUodXNlcnMgPT5cbiAgICAgICAgdGhpcy51c2VycyA9IHVzZXJzXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIGluaXRpYWxpemUoKTogdm9pZCB7XG4gICAgdGhpcy5jb25maWcgPSB0aGlzLmNvbmZpZyA/PyB0aGlzLmRhdGE/LmNvbmZpZyA/PyBuZXcgQ29uZmlnKCk7XG5cbiAgICB0aGlzLmltYWdlUmVzaXplTW9kdWxlID0gdGhpcy5pbWFnZVJlc2l6ZU1vZHVsZSAhPT0gdW5kZWZpbmVkID9cbiAgICAgIHRoaXMuaW1hZ2VSZXNpemVNb2R1bGUgOlxuICAgICAgdGhpcy5pbWFnZVJlc2l6ZU1vZHVsZSA/PyB0aGlzLmNvbmZpZy5pbWFnZVJlc2l6ZU1vZHVsZTtcblxuICAgIHRoaXMuaW1hZ2VEcm9wTW9kdWxlID0gdGhpcy5pbWFnZURyb3BNb2R1bGUgIT09IHVuZGVmaW5lZCA/XG4gICAgICB0aGlzLmltYWdlRHJvcE1vZHVsZSA6XG4gICAgICB0aGlzLmltYWdlRHJvcE1vZHVsZSA/PyB0aGlzLmNvbmZpZy5pbWFnZURyb3BNb2R1bGU7XG5cbiAgICB0aGlzLm1lbnRpb25Nb2R1bGUgPSB0aGlzLm1lbnRpb25Nb2R1bGUgIT09IHVuZGVmaW5lZCA/XG4gICAgICB0aGlzLm1lbnRpb25Nb2R1bGUgOlxuICAgICAgdGhpcy5tZW50aW9uTW9kdWxlID8/IHRoaXMuY29uZmlnLm1lbnRpb25Nb2R1bGU7XG5cbiAgICB0aGlzLnN5bnRheE1vZHVsZSA9IHRoaXMuc3ludGF4TW9kdWxlICE9PSB1bmRlZmluZWQgP1xuICAgICAgdGhpcy5zeW50YXhNb2R1bGUgOlxuICAgICAgdGhpcy5zeW50YXhNb2R1bGUgPz8gdGhpcy5jb25maWcuc3ludGF4TW9kdWxlO1xuICAgICAgXG4gICAgaWYgKHRoaXMuaW1hZ2VEcm9wTW9kdWxlKSB7XG4gICAgICBRdWlsbC5yZWdpc3RlcignbW9kdWxlcy9pbWFnZURyb3AnLCBJbWFnZURyb3ApO1xuICAgIH1cblxuICAgIHRoaXMuZm9ybUdyb3VwID0gdGhpcy5mb3JtR3JvdXAgPz8gdGhpcy5kYXRhPy5mb3JtR3JvdXA7XG4gICAgdGhpcy5jb250cm9sTmFtZSA9IHRoaXMuY29udHJvbE5hbWUgPz8gdGhpcy5kYXRhPy5jb250cm9sTmFtZTtcbiAgICB0aGlzLm5nTW9kZWxWYWx1ZSA9IHRoaXMubmdNb2RlbFZhbHVlID8/IHRoaXMuZGF0YT8udmFsdWU7XG5cbiAgICB0aGlzLnBsYWNlaG9sZGVyID0gdGhpcy5wbGFjZWhvbGRlciA/PyB0aGlzLmRhdGE/LnBsYWNlaG9sZGVyO1xuICAgIHRoaXMudXNlcnMgPSB0aGlzLnVzZXJzID8/IHRoaXMuZGF0YT8udXNlcnM7XG5cbiAgICB0aGlzLmZvcm1hdCA9IHRoaXMuZm9ybWF0ID8/IHRoaXMuZGF0YT8uZm9ybWF0ID8/IHRoaXMuY29uZmlnLmZvcm1hdDtcbiAgICB0aGlzLmhlaWdodCA9IHRoaXMuaGVpZ2h0ID8/IHRoaXMuZGF0YT8uaGVpZ2h0ID8/IHRoaXMuY29uZmlnLmhlaWdodDtcbiAgICB0aGlzLndpZHRoID0gdGhpcy53aWR0aCA/PyB0aGlzLmRhdGE/LndpZHRoID8/IHRoaXMuY29uZmlnLndpZHRoO1xuICAgIHRoaXMuZnVsbHNjcmVlbkhlaWdodCA9IHRoaXMuZnVsbHNjcmVlbkhlaWdodCA/PyB0aGlzLmRhdGE/Lm1heEhlaWdodCA/PyB0aGlzLmNvbmZpZy5mdWxsc2NyZWVuSGVpZ2h0O1xuICAgIHRoaXMuZnVsbHNjcmVlbldpZHRoID0gdGhpcy5mdWxsc2NyZWVuV2lkdGggPz8gdGhpcy5kYXRhPy5tYXhXaWR0aCA/PyB0aGlzLmNvbmZpZy5mdWxsc2NyZWVuV2lkdGg7XG4gICAgdGhpcy5mdWxsc2NyZWVuTW9kZSA9IHRoaXMuZnVsbHNjcmVlbk1vZGUgPz8gdGhpcy5kYXRhPy5mdWxsc2NyZWVuTW9kZSA/PyB0aGlzLmNvbmZpZy5mdWxsc2NyZWVuTW9kZTtcblxuICAgIHRoaXMuZW5hYmxlVG9vbHRpcHMgPSB0aGlzLmVuYWJsZVRvb2x0aXBzICE9PSB1bmRlZmluZWQgP1xuICAgICAgdGhpcy5lbmFibGVUb29sdGlwcyA6XG4gICAgICB0aGlzLmRhdGE/LmVuYWJsZVRvb2x0aXBzID8/IHRoaXMuY29uZmlnLmVuYWJsZVRvb2x0aXBzO1xuXG4gICAgdGhpcy5mdWxsc2NyZWVuID0gdGhpcy5mdWxsc2NyZWVuICE9PSB1bmRlZmluZWQgP1xuICAgICAgdGhpcy5mdWxsc2NyZWVuIDpcbiAgICAgIHRoaXMuZGF0YT8uZnVsbHNjcmVlbiA/PyB0aGlzLmNvbmZpZy5mdWxsc2NyZWVuO1xuXG4gICAgdGhpcy5yZWFkb25seSA9IHRoaXMucmVhZG9ubHkgIT09IHVuZGVmaW5lZCA/XG4gICAgICB0aGlzLnJlYWRvbmx5IDpcbiAgICAgIHRoaXMuZGF0YT8ucmVhZG9ubHkgPz8gdGhpcy5jb25maWcucmVhZG9ubHk7XG5cbiAgICB0aGlzLmFwcGx5UmVhZG9ubHlTdHlsZSA9IHRoaXMuYXBwbHlSZWFkb25seVN0eWxlICE9PSB1bmRlZmluZWQgP1xuICAgICAgdGhpcy5hcHBseVJlYWRvbmx5U3R5bGUgOlxuICAgICAgdGhpcy5kYXRhPy5hcHBseVJlYWRvbmx5U3R5bGUgPz8gdGhpcy5jb25maWcuYXBwbHlSZWFkb25seVN0eWxlO1xuXG4gICAgdGhpcy5zaG93VG9vbGJhciA9IHRoaXMuc2hvd1Rvb2xiYXIgIT09IHVuZGVmaW5lZCA/XG4gICAgICB0aGlzLnNob3dUb29sYmFyIDpcbiAgICAgIHRoaXMuZGF0YT8uc2hvd1Rvb2xiYXIgPz8gdGhpcy5jb25maWcuc2hvd1Rvb2xiYXI7XG5cbiAgICB0aGlzLnNob3dCb3JkZXIgPSB0aGlzLnNob3dCb3JkZXIgIT09IHVuZGVmaW5lZCA/XG4gICAgICB0aGlzLnNob3dCb3JkZXIgOlxuICAgICAgdGhpcy5kYXRhPy5zaG93Qm9yZGVyID8/IHRoaXMuY29uZmlnLnNob3dCb3JkZXI7XG4gIH1cblxuICB0b2dnbGVGdWxsc2NyZWVuKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmZ1bGxzY3JlZW5Nb2RlID09PSAnZXhwYW5kJykge1xuICAgICAgICB0aGlzLmZ1bGxzY3JlZW4gPSAhdGhpcy5mdWxsc2NyZWVuO1xuICAgICAgICB0aGlzLmZ1bGxzY3JlZW5DaGFuZ2VkLmVtaXQodGhpcy5mdWxsc2NyZWVuKTtcbiAgICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIGlmICh0aGlzLmZ1bGxzY3JlZW4pIHtcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UodGhpcy5mb3JtR3JvdXAgP1xuICAgICAgICAgIHRoaXMuZm9ybUdyb3VwLmdldCh0aGlzLmNvbnRyb2xOYW1lKT8udmFsdWUgOlxuICAgICAgICAgIHRoaXMubmdNb2RlbFZhbHVlKTtcbiAgICAgICAgICB0aGlzLmZ1bGxzY3JlZW5DaGFuZ2VkLmVtaXQoZmFsc2UpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgZGF0YTogRGlhbG9nRGF0YSA9IHtcbiAgICAgICAgICBmb3JtR3JvdXA6IHRoaXMuZm9ybUdyb3VwLFxuICAgICAgICAgIGNvbnRyb2xOYW1lOiB0aGlzLmNvbnRyb2xOYW1lLFxuICAgICAgICAgIHZhbHVlOiB0aGlzLm5nTW9kZWxWYWx1ZSxcblxuICAgICAgICAgIGNvbmZpZzogdGhpcy5jb25maWcsXG4gICAgICAgICAgcGxhY2Vob2xkZXI6IHRoaXMucGxhY2Vob2xkZXIsXG4gICAgICAgICAgZm9ybWF0OiB0aGlzLmZvcm1hdCxcbiAgICAgICAgICBoZWlnaHQ6IHRoaXMuZnVsbHNjcmVlbkhlaWdodCxcbiAgICAgICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgICAgIG1heEhlaWdodDogdGhpcy5mdWxsc2NyZWVuSGVpZ2h0LFxuICAgICAgICAgIG1heFdpZHRoOiAnMTAwJScsXG4gICAgICAgICAgZW5hYmxlVG9vbHRpcHM6IHRoaXMuZW5hYmxlVG9vbHRpcHMhLFxuICAgICAgICAgIGZ1bGxzY3JlZW46IHRydWUsXG4gICAgICAgICAgZnVsbHNjcmVlbk1vZGU6IHRoaXMuZnVsbHNjcmVlbk1vZGUsXG4gICAgICAgICAgcmVhZG9ubHk6IHRoaXMucmVhZG9ubHkhLFxuICAgICAgICAgIGFwcGx5UmVhZG9ubHlTdHlsZTogdGhpcy5hcHBseVJlYWRvbmx5U3R5bGUhLFxuICAgICAgICAgIHNob3dUb29sYmFyOiB0aGlzLnNob3dUb29sYmFyISxcbiAgICAgICAgICBzaG93Qm9yZGVyOiB0aGlzLnNob3dCb3JkZXIhLFxuICAgICAgICAgIHVzZXJzOiB0aGlzLnVzZXJzXG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5kaWFsb2cub3BlbihFZGl0b3JDb21wb25lbnQsIHtcbiAgICAgICAgICBkaXNhYmxlQ2xvc2U6IHRydWUsXG4gICAgICAgICAgd2lkdGg6IHRoaXMuZnVsbHNjcmVlbldpZHRoLFxuICAgICAgICAgIGhlaWdodDogdGhpcy5mdWxsc2NyZWVuSGVpZ2h0LFxuICAgICAgICAgIGRhdGFcbiAgICAgICAgfSlcbiAgICAgICAgLmFmdGVyQ2xvc2VkKClcbiAgICAgICAgLnN1YnNjcmliZSh2YWx1ZSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMuZm9ybUdyb3VwKSB7XG4gICAgICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQodGhpcy5jb250cm9sTmFtZSk/LnNldFZhbHVlKHZhbHVlKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5uZ01vZGVsVmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuZnVsbHNjcmVlbkNoYW5nZWQuZW1pdCh0cnVlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB0b29sdGlwKHZhbDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5lbmFibGVUb29sdGlwcyA/IHZhbCA6ICcnO1xuICB9XG5cbiAgZ2V0IG1vZHVsZXMoKSB7XG4gICAgaWYgKCF0aGlzLnVzZXJzKSB7IHJldHVybiB1bmRlZmluZWQ7IH1cblxuICAgIGNvbnN0IG1vZHVsZXMgPSB7IH07XG5cbiAgICBpZiAoIXRoaXMuc2hvd1Rvb2xiYXIpIHtcbiAgICAgIG1vZHVsZXNbJ3Rvb2xiYXInXSA9IFtdO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmltYWdlUmVzaXplTW9kdWxlKSB7XG4gICAgICBtb2R1bGVzWydpbWFnZVJlc2l6ZSddID0ge307XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaW1hZ2VEcm9wTW9kdWxlKSB7XG4gICAgICBtb2R1bGVzWydpbWFnZURyb3AnXSA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc3ludGF4TW9kdWxlKSB7XG4gICAgICBtb2R1bGVzWydzeW50YXgnXSA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMubWVudGlvbk1vZHVsZSkge1xuICAgICAgbW9kdWxlc1snbWVudGlvbiddID0ge1xuICAgICAgICBhbGxvd2VkQ2hhcnM6IC9eW0EtWmEtelxcc8OFw4TDlsOlw6TDtl0qJC8sXG5cbiAgICAgICAgb25TZWxlY3Q6IChpdGVtOiBET01TdHJpbmdNYXAsIGluc2VydEl0ZW06IGFueSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGVkaXRvciA9IHRoaXMuZWRpdG9yIS5xdWlsbEVkaXRvclxuICAgICAgICAgIGluc2VydEl0ZW0oaXRlbSlcbiAgICAgICAgICAvLyBuZWNlc3NhcnkgYmVjYXVzZSBxdWlsbC1tZW50aW9uIHRyaWdnZXJzIGNoYW5nZXMgYXMgJ2FwaScgaW5zdGVhZCBvZiAndXNlcidcbiAgICAgICAgICBlZGl0b3IuaW5zZXJ0VGV4dChlZGl0b3IuZ2V0TGVuZ3RoKCkgLSAxLCAnJywgJ3VzZXInKVxuICAgICAgICB9LFxuXG4gICAgICAgIHNvdXJjZTogKHNlYXJjaFRlcm06IHN0cmluZywgcmVuZGVyTGlzdDogYW55KSA9PiB7XG4gICAgICAgICAgaWYgKHNlYXJjaFRlcm0ubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZW5kZXJMaXN0KHRoaXMudXNlcnM/Lm1hcCh1ID0+ICh7IHZhbHVlOiBgJHt1LmRpc3BsYXlOYW1lfSAoJHt1LnNBTUFjY291bnROYW1lLnRvTG93ZXJDYXNlKCl9KWAgfSkpLCBzZWFyY2hUZXJtKVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBtYXRjaGVzOiBhbnlbXSA9IFtdXG5cbiAgICAgICAgICAgIHRoaXMudXNlcnMhLmZvckVhY2goKGVudHJ5KSA9PiB7XG4gICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICBlbnRyeS5kaXNwbGF5TmFtZS50b0xvd2VyQ2FzZSgpLmluZGV4T2Yoc2VhcmNoVGVybS50b0xvd2VyQ2FzZSgpKSAhPT0gLTEgfHxcbiAgICAgICAgICAgICAgICBlbnRyeS5zQU1BY2NvdW50TmFtZS50b0xvd2VyQ2FzZSgpLmluZGV4T2Yoc2VhcmNoVGVybS50b0xvd2VyQ2FzZSgpKSAhPT0gLTFcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICBtYXRjaGVzLnB1c2goeyB2YWx1ZTogYCR7ZW50cnkuZGlzcGxheU5hbWV9ICgke2VudHJ5LnNBTUFjY291bnROYW1lLnRvTG93ZXJDYXNlKCl9KWAgfSlcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcblxuICAgICAgICAgICAgcmVuZGVyTGlzdChtYXRjaGVzLCBzZWFyY2hUZXJtKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4gbW9kdWxlcztcbiAgfVxufSIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJ1c2Vyc1wiPlxuICAgIDwhLS0gUmVhY3RpdmUgZm9ybXMgLS0+XG4gICAgPGZvcm0gKm5nSWY9XCJmb3JtR3JvdXBcIiBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiPlxuICAgICAgICA8cXVpbGwtZWRpdG9yXG4gICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImNvbnRyb2xOYW1lXCJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgICAgICAgICBbZm9ybWF0XT1cImZvcm1hdFwiXG4gICAgICAgICAgICBbc3R5bGUuaGVpZ2h0XT1cImZ1bGxzY3JlZW4gPyBmdWxsc2NyZWVuSGVpZ2h0IDogaGVpZ2h0XCJcbiAgICAgICAgICAgIFtzdHlsZS53aWR0aF09XCJmdWxsc2NyZWVuID8gZnVsbHNjcmVlbldpZHRoIDogd2lkdGhcIlxuICAgICAgICAgICAgW3JlYWRPbmx5XT1cInJlYWRvbmx5XCJcbiAgICAgICAgICAgIFtjbGFzcy5yZWFkb25seV09XCJyZWFkb25seSAmJiBhcHBseVJlYWRvbmx5U3R5bGVcIlxuICAgICAgICAgICAgW2NsYXNzLm5vLXRvb2xiYXJdPVwiIXNob3dUb29sYmFyXCJcbiAgICAgICAgICAgIFtjbGFzcy5uby1ib3JkZXJdPVwiIXNob3dCb3JkZXJcIlxuICAgICAgICAgICAgW21vZHVsZXNdPVwibW9kdWxlc1wiXG4gICAgXG4gICAgICAgICAgICAob25CbHVyKT1cIm9uQmx1ci5lbWl0KCRldmVudClcIlxuICAgICAgICAgICAgKG9uQ29udGVudENoYW5nZWQpPVwib25Db250ZW50Q2hhbmdlZC5lbWl0KCRldmVudClcIlxuICAgICAgICAgICAgKG9uRWRpdG9yQ2hhbmdlZCk9XCJvbkVkaXRvckNoYW5nZWQuZW1pdCgkZXZlbnQpXCJcbiAgICAgICAgICAgIChvbkVkaXRvckNyZWF0ZWQpPVwib25FZGl0b3JDcmVhdGVkLmVtaXQoKVwiXG4gICAgICAgICAgICAob25Gb2N1cyk9XCJvbkZvY3VzLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAob25TZWxlY3Rpb25DaGFuZ2VkKT1cIm9uU2VsZWN0aW9uQ2hhbmdlZC5lbWl0KCRldmVudClcIj5cbiAgICBcbiAgICAgICAgICAgIDxkaXYgcXVpbGwtZWRpdG9yLXRvb2xiYXIgKm5nSWY9XCJzaG93VG9vbGJhclwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwidG9vbGJhclwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiZWRpdG9yU2l6ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvcXVpbGwtZWRpdG9yPlxuICAgIDwvZm9ybT5cbiAgICBcbiAgICA8IS0tIE5nTW9kZWwgZm9ybXMgLS0+XG4gICAgPGZvcm0gKm5nSWY9XCIhZm9ybUdyb3VwXCI+XG4gICAgICAgIDxxdWlsbC1lZGl0b3IgbmFtZT1cImVkaXRvclwiXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cIm5nTW9kZWxWYWx1ZVwiXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgICAgICAgW2Zvcm1hdF09XCJmb3JtYXRcIlxuICAgICAgICAgICAgW3N0eWxlLmhlaWdodF09XCJmdWxsc2NyZWVuID8gZnVsbHNjcmVlbkhlaWdodCA6IGhlaWdodFwiXG4gICAgICAgICAgICBbc3R5bGUud2lkdGhdPVwiZnVsbHNjcmVlbiA/IGZ1bGxzY3JlZW5XaWR0aCA6IHdpZHRoXCJcbiAgICAgICAgICAgIFtyZWFkT25seV09XCJyZWFkb25seVwiXG4gICAgICAgICAgICBbY2xhc3MucmVhZG9ubHldPVwicmVhZG9ubHkgJiYgYXBwbHlSZWFkb25seVN0eWxlXCJcbiAgICAgICAgICAgIFtjbGFzcy5uby10b29sYmFyXT1cIiFzaG93VG9vbGJhclwiXG4gICAgICAgICAgICBbY2xhc3Mubm8tYm9yZGVyXT1cIiFzaG93Qm9yZGVyXCJcbiAgICAgICAgICAgIFttb2R1bGVzXT1cIm1vZHVsZXNcIlxuICAgIFxuICAgICAgICAgICAgKG9uQmx1cik9XCJvbkJsdXIuZW1pdCgkZXZlbnQpXCJcbiAgICAgICAgICAgIChvbkNvbnRlbnRDaGFuZ2VkKT1cIm9uQ29udGVudENoYW5nZWQuZW1pdCgkZXZlbnQpXCJcbiAgICAgICAgICAgIChvbkVkaXRvckNoYW5nZWQpPVwib25FZGl0b3JDaGFuZ2VkLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAob25FZGl0b3JDcmVhdGVkKT1cIm9uRWRpdG9yQ3JlYXRlZC5lbWl0KClcIlxuICAgICAgICAgICAgKG9uRm9jdXMpPVwib25Gb2N1cy5lbWl0KCRldmVudClcIlxuICAgICAgICAgICAgKG9uU2VsZWN0aW9uQ2hhbmdlZCk9XCJvblNlbGVjdGlvbkNoYW5nZWQuZW1pdCgkZXZlbnQpXCI+XG4gICAgXG4gICAgICAgICAgICA8ZGl2IHF1aWxsLWVkaXRvci10b29sYmFyICpuZ0lmPVwic2hvd1Rvb2xiYXJcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRvb2xiYXJcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImVkaXRvclNpemVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3F1aWxsLWVkaXRvcj5cbiAgICA8L2Zvcm0+XG48L25nLWNvbnRhaW5lcj5cblxuPG5nLXRlbXBsYXRlICN0b29sYmFyPlxuICAgIDxkaXY+XG4gICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiZm9udFN0eWxlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiYmxvY2tTdHlsZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImhlYWRpbmdTdHlsZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImxpc3RTdHlsZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInNjcmlwdFN0eWxlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiaW5kZW50U3R5bGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJydGxcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJmb250U2l6ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImhlYWRpbmdcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJjb2xvclwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImZvbnRcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJhbGlnblwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNsZWFuXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDxudC1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiZm9ybXVsYVwiPjwvbnQtY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIm1lZGlhXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2ZvbnRTdHlsZT5cbiAgICA8c3BhbiBjbGFzcz1cInFsLWZvcm1hdHNcIiAqbmdJZj1cImNvbmZpZy5zaG93Rm9udFN0eWxlXCI+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1ib2xkXCIgICAgICAqbmdJZj1cImNvbmZpZy5idXR0b25zLmJvbGRcIiAgICAgIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnLnRvb2x0aXBzLmJvbGQpXCI+PC9idXR0b24+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1pdGFsaWNcIiAgICAqbmdJZj1cImNvbmZpZy5idXR0b25zLml0YWxpY1wiICAgIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnLnRvb2x0aXBzLml0YWxpYylcIj48L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInFsLXVuZGVybGluZVwiICpuZ0lmPVwiY29uZmlnLmJ1dHRvbnMudW5kZXJsaW5lXCIgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWcudG9vbHRpcHMudW5kZXJsaW5lKVwiPjwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtc3RyaWtlXCIgICAgKm5nSWY9XCJjb25maWcuYnV0dG9ucy5zdHJpa2VcIiAgICBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZy50b29sdGlwcy5zdHJpa2UpXCI+PC9idXR0b24+XG4gICAgPC9zcGFuPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNibG9ja1N0eWxlPlxuICAgIDxzcGFuIGNsYXNzPVwicWwtZm9ybWF0c1wiICpuZ0lmPVwiY29uZmlnLnNob3dCbG9ja1N0eWxlXCI+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1ibG9ja3F1b3RlXCIgKm5nSWY9XCJjb25maWcuYnV0dG9ucy5ibG9ja3F1b3RlXCIgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWcudG9vbHRpcHMuYmxvY2txdW90ZSlcIj48L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInFsLWNvZGUtYmxvY2tcIiAqbmdJZj1cImNvbmZpZy5idXR0b25zLmNvZGVibG9ja1wiICBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZy50b29sdGlwcy5jb2RlYmxvY2spXCI+PC9idXR0b24+XG4gICAgPC9zcGFuPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNoZWFkaW5nU3R5bGU+XG4gICAgPHNwYW4gY2xhc3M9XCJxbC1mb3JtYXRzXCIgKm5nSWY9XCJjb25maWcuc2hvd1F1aWNrSGVhZGluZ1N0eWxlXCI+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1oZWFkZXJcIiB2YWx1ZT1cIjFcIiAqbmdJZj1cImNvbmZpZy5idXR0b25zLmgxXCIgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWcudG9vbHRpcHMuaDEpXCI+PC9idXR0b24+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1oZWFkZXJcIiB2YWx1ZT1cIjJcIiAqbmdJZj1cImNvbmZpZy5idXR0b25zLmgyXCIgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWcudG9vbHRpcHMuaDIpXCI+PC9idXR0b24+XG4gICAgPC9zcGFuPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNsaXN0U3R5bGU+XG4gICAgPHNwYW4gY2xhc3M9XCJxbC1mb3JtYXRzXCIgKm5nSWY9XCJjb25maWcuc2hvd0xpc3RTdHlsZVwiPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtbGlzdFwiIHZhbHVlPVwib3JkZXJlZFwiICpuZ0lmPVwiY29uZmlnLmJ1dHRvbnMub3JkZXJlZFwiICBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZy50b29sdGlwcy5vcmRlcmVkKVwiPjwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtbGlzdFwiIHZhbHVlPVwiYnVsbGV0XCIgICpuZ0lmPVwiY29uZmlnLmJ1dHRvbnMuYnVsbGV0ZWRcIiBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZy50b29sdGlwcy5idWxsZXRlZClcIj48L2J1dHRvbj5cbiAgICA8L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3NjcmlwdFN0eWxlPlxuICAgIDxzcGFuIGNsYXNzPVwicWwtZm9ybWF0c1wiICpuZ0lmPVwiY29uZmlnLnNob3dTY3JpcHRTdHlsZVwiPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtc2NyaXB0XCIgdmFsdWU9XCJzdWJcIiAgICpuZ0lmPVwiY29uZmlnLmJ1dHRvbnMuc3ViU2NyaXB0XCIgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWcudG9vbHRpcHMuc3ViU2NyaXB0KVwiPjwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtc2NyaXB0XCIgdmFsdWU9XCJzdXBlclwiICpuZ0lmPVwiY29uZmlnLmJ1dHRvbnMuc3VwZXJTY3JpcHRcIiBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZy50b29sdGlwcy5zdXBlclNjcmlwdClcIj48L2J1dHRvbj5cbiAgICA8L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuICAgIFxuPG5nLXRlbXBsYXRlICNpbmRlbnRTdHlsZT5cbiAgICA8c3BhbiBjbGFzcz1cInFsLWZvcm1hdHNcIiAqbmdJZj1cImNvbmZpZy5zaG93SW5kZW50U3R5bGVcIj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInFsLWluZGVudFwiIHZhbHVlPVwiLTFcIiAqbmdJZj1cImNvbmZpZy5idXR0b25zLmRlY3JlYXNlSW5kZW50XCIgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWcudG9vbHRpcHMuZGVjcmVhc2VJbmRlbnQpXCI+PC9idXR0b24+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1pbmRlbnRcIiB2YWx1ZT1cIisxXCIgKm5nSWY9XCJjb25maWcuYnV0dG9ucy5pbmNyZWFzZUluZGVudFwiIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnLnRvb2x0aXBzLmluY3JlYXNlSW5kZW50KVwiPjwvYnV0dG9uPlxuICAgIDwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjcnRsPlxuICAgIDxzcGFuIGNsYXNzPVwicWwtZm9ybWF0c1wiICpuZ0lmPVwiY29uZmlnLmJ1dHRvbnMucnRsXCI+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJxbC1kaXJlY3Rpb25cIiB2YWx1ZT1cInJ0bFwiIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnLnRvb2x0aXBzLnJ0bClcIj48L2J1dHRvbj5cbiAgICA8L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2ZvbnRTaXplPlxuICAgIDxzcGFuIGNsYXNzPVwicWwtZm9ybWF0c1wiICpuZ0lmPVwiY29uZmlnLmJ1dHRvbnMuZm9udFNpemVcIiBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZy50b29sdGlwcy5mb250U2l6ZSlcIj5cbiAgICAgICAgPHNlbGVjdCBjbGFzcz1cInFsLXNpemVcIj5cbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJzbWFsbFwiPjwvb3B0aW9uPlxuICAgICAgICAgICAgPG9wdGlvbiBzZWxlY3RlZD48L29wdGlvbj5cbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJsYXJnZVwiPjwvb3B0aW9uPlxuICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cImh1Z2VcIj48L29wdGlvbj5cbiAgICAgICAgPC9zZWxlY3Q+XG4gICAgPC9zcGFuPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNoZWFkaW5nPlxuICAgIDxzcGFuIGNsYXNzPVwicWwtZm9ybWF0c1wiICpuZ0lmPVwiY29uZmlnLmJ1dHRvbnMuaGVhZGluZ1N0eWxlXCIgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWcudG9vbHRpcHMuaGVhZGluZ1N0eWxlKVwiPlxuICAgICAgICA8c2VsZWN0IGNsYXNzPVwicWwtaGVhZGVyXCI+XG4gICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiMVwiPjwvb3B0aW9uPlxuICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjJcIj48L29wdGlvbj5cbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCIzXCI+PC9vcHRpb24+XG4gICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiNFwiPjwvb3B0aW9uPlxuICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjVcIj48L29wdGlvbj5cbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCI2XCI+PC9vcHRpb24+XG4gICAgICAgICAgICA8b3B0aW9uIHNlbGVjdGVkPVwic2VsZWN0ZWRcIj48L29wdGlvbj5cbiAgICAgICAgPC9zZWxlY3Q+XG4gICAgPC9zcGFuPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNjb2xvcj5cbiAgICA8c3BhbiBjbGFzcz1cInFsLWZvcm1hdHNcIiAqbmdJZj1cImNvbmZpZy5idXR0b25zLmNvbG9yXCIgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWcudG9vbHRpcHMuY29sb3IpXCI+XG4gICAgICAgIDxzZWxlY3QgY2xhc3M9XCJxbC1jb2xvclwiPjwvc2VsZWN0PlxuICAgICAgICA8c2VsZWN0IGNsYXNzPVwicWwtYmFja2dyb3VuZFwiPjwvc2VsZWN0PlxuICAgIDwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZm9udD5cbiAgICA8c3BhbiBjbGFzcz1cInFsLWZvcm1hdHNcIiAqbmdJZj1cImNvbmZpZy5idXR0b25zLmZvbnRcIiBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZy50b29sdGlwcy5mb250KVwiPlxuICAgICAgICA8c2VsZWN0IGNsYXNzPVwicWwtZm9udFwiPlxuICAgICAgICAgICAgPG9wdGlvbiBzZWxlY3RlZD48L29wdGlvbj5cbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJzZXJpZlwiPjwvb3B0aW9uPlxuICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIm1vbm9zcGFjZVwiPjwvb3B0aW9uPlxuICAgICAgICA8L3NlbGVjdD5cbiAgICA8L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2FsaWduPlxuICAgIDxzcGFuIGNsYXNzPVwicWwtZm9ybWF0c1wiICpuZ0lmPVwiY29uZmlnLmJ1dHRvbnMuYWxpZ25cIiBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZy50b29sdGlwcy5hbGlnbilcIj5cbiAgICAgICAgPHNlbGVjdCBjbGFzcz1cInFsLWFsaWduXCI+XG4gICAgICAgICAgICA8b3B0aW9uIHNlbGVjdGVkPjwvb3B0aW9uPlxuICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cImNlbnRlclwiPjwvb3B0aW9uPlxuICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cInJpZ2h0XCI+PC9vcHRpb24+XG4gICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwianVzdGlmeVwiPjwvb3B0aW9uPlxuICAgICAgICA8L3NlbGVjdD5cbiAgICA8L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2NsZWFuPlxuICAgIDxzcGFuIGNsYXNzPVwicWwtZm9ybWF0c1wiICpuZ0lmPVwiY29uZmlnLmJ1dHRvbnMuY2xlYW5cIiBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZy50b29sdGlwcy5jbGVhbilcIj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInFsLWNsZWFuXCI+PC9idXR0b24+XG4gICAgPC9zcGFuPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNtZWRpYT5cbiAgICA8c3BhbiBjbGFzcz1cInFsLWZvcm1hdHNcIiAqbmdJZj1cImNvbmZpZy5zaG93TWVkaWFcIj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInFsLWxpbmtcIiAgKm5nSWY9XCJjb25maWcuYnV0dG9ucy5saW5rXCIgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWcudG9vbHRpcHMubGluaylcIj48L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInFsLWltYWdlXCIgKm5nSWY9XCJjb25maWcuYnV0dG9ucy5pbWFnZVwiIFttYXRUb29sdGlwXT1cInRvb2x0aXAoY29uZmlnLnRvb2x0aXBzLmltYWdlKVwiPjwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtdmlkZW9cIiAqbmdJZj1cImNvbmZpZy5idXR0b25zLnZpZGVvXCIgW21hdFRvb2x0aXBdPVwidG9vbHRpcChjb25maWcudG9vbHRpcHMudmlkZW8pXCI+PC9idXR0b24+XG4gICAgPC9zcGFuPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNlZGl0b3JTaXplPlxuICAgIDxzcGFuIGNsYXNzPVwicWwtZm9ybWF0c1wiICpuZ0lmPVwiY29uZmlnLmJ1dHRvbnMuZWRpdG9yU2l6ZVwiPlxuICAgICAgICA8YnV0dG9uIGlkPVwiZnVsbHNjcmVlblwiXG4gICAgICAgICAgICBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGZ1bGxzY3JlZW4gP1xuICAgICAgICAgICAgICAgIChmdWxsc2NyZWVuTW9kZSA9PT0gJ2V4cGFuZCcgPyBjb25maWcudG9vbHRpcHMubWluaW1pemUgOiBjb25maWcudG9vbHRpcHMucG9waW4pIDpcbiAgICAgICAgICAgICAgICAoZnVsbHNjcmVlbk1vZGUgPT09ICdleHBhbmQnID8gY29uZmlnLnRvb2x0aXBzLm1heGltaXplIDogY29uZmlnLnRvb2x0aXBzLnBvcG91dCkpXCI+XG5cbiAgICAgICAgICAgIDxtYXQtaWNvbiAoY2xpY2spPVwidG9nZ2xlRnVsbHNjcmVlbigpXCI+XG4gICAgICAgICAgICAgICAge3sgZnVsbHNjcmVlbiA/XG4gICAgICAgICAgICAgICAgICAgIChmdWxsc2NyZWVuTW9kZSA9PT0gJ2V4cGFuZCcgPyBjb25maWcuaWNvbnMubWluaW1pemUgOiBjb25maWcuaWNvbnMucG9waW4pIDpcbiAgICAgICAgICAgICAgICAgICAgKGZ1bGxzY3JlZW5Nb2RlID09PSAnZXhwYW5kJyA/IGNvbmZpZy5pY29ucy5tYXhpbWl6ZSA6IGNvbmZpZy5pY29ucy5wb3BvdXQpXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIDwvbWF0LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZm9ybXVsYT5cbiAgICA8c3BhbiBjbGFzcz1cInFsLWZvcm1hdHNcIiAqbmdJZj1cImNvbmZpZy5idXR0b25zLmZvcm11bGFcIiBbbWF0VG9vbHRpcF09XCJ0b29sdGlwKGNvbmZpZy50b29sdGlwcy5mb3JtdWxhKVwiPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicWwtZm9ybXVsYVwiPjwvYnV0dG9uPlxuICAgIDwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+Il19
@@ -18,6 +18,7 @@ export class Config {
18
18
  this.readonly = false;
19
19
  this.applyReadonlyStyle = true;
20
20
  this.showToolbar = true;
21
+ this.showBorder = true;
21
22
  //#region Optional Quill modules
22
23
  this.imageResizeModule = true;
23
24
  this.imageDropModule = true;
@@ -36,4 +37,4 @@ export class Config {
36
37
  //#endregion
37
38
  }
38
39
  }
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xlYXZlbGFuZHByaWNlL25neC1saWIvcXVpbGwtZWRpdG9yL3NyYy9tb2RlbC9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNwQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFdEMsTUFBTSxPQUFPLE1BQU07SUFBbkI7UUFDSSxZQUFPLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUN4QixhQUFRLEdBQUcsSUFBSSxRQUFRLEVBQUUsQ0FBQztRQUMxQixVQUFLLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUVwQiw2Q0FBNkM7UUFDN0MsV0FBTSxHQUF3QyxNQUFNLENBQUM7UUFDckQsV0FBTSxHQUFHLE1BQU0sQ0FBQztRQUNoQixVQUFLLEdBQUcsTUFBTSxDQUFDO1FBQ2YscUJBQWdCLEdBQUcsTUFBTSxDQUFDO1FBQzFCLG9CQUFlLEdBQUcsTUFBTSxDQUFDO1FBQ3pCLG1CQUFjLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDbkIsbUJBQWMsR0FBd0IsUUFBUSxDQUFDO1FBQy9DLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsdUJBQWtCLEdBQUcsSUFBSSxDQUFDO1FBQzFCLGdCQUFXLEdBQUcsSUFBSSxDQUFDO1FBRW5CLGdDQUFnQztRQUNoQyxzQkFBaUIsR0FBRyxJQUFJLENBQUM7UUFDekIsb0JBQWUsR0FBRyxJQUFJLENBQUM7UUFDdkIsa0JBQWEsR0FBRyxJQUFJLENBQUM7UUFDckIsaUJBQVksR0FBRyxJQUFJLENBQUM7UUFDcEIsWUFBWTtRQUVaLFlBQVk7UUFFWixnQkFBZ0I7UUFDaEIsbUJBQWMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQztRQUN6RSxrQkFBYSxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDO1FBQ2hILDBCQUFxQixHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ2pFLG9CQUFlLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUM7UUFDbkYsa0JBQWEsR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQztRQUNwRSxjQUFTLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7UUFDaEYsb0JBQWUsR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQztRQUMzRSxZQUFZO0lBQ2hCLENBQUM7Q0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJ1dHRvbnMgfSBmcm9tIFwiLi9idXR0b25zXCI7XHJcbmltcG9ydCB7IEljb25zIH0gZnJvbSBcIi4vaWNvbnNcIjtcclxuaW1wb3J0IHsgVG9vbHRpcHMgfSBmcm9tIFwiLi90b29sdGlwc1wiO1xyXG5cclxuZXhwb3J0IGNsYXNzIENvbmZpZyB7XHJcbiAgICBidXR0b25zID0gbmV3IEJ1dHRvbnMoKTtcclxuICAgIHRvb2x0aXBzID0gbmV3IFRvb2x0aXBzKCk7XHJcbiAgICBpY29ucyA9IG5ldyBJY29ucygpO1xyXG5cclxuICAgIC8vI3JlZ2lvbiBUaGVzZSBjYW4gYmUgb3ZlcnJpZGVuIHZpYSBASW5wdXQoKVxyXG4gICAgZm9ybWF0OiAnb2JqZWN0JyB8ICdodG1sJyB8ICd0ZXh0JyB8ICdqc29uJyA9ICdodG1sJztcclxuICAgIGhlaWdodCA9ICc1MHZoJztcclxuICAgIHdpZHRoID0gJzEwMCUnO1xyXG4gICAgZnVsbHNjcmVlbkhlaWdodCA9ICc4NXZoJztcclxuICAgIGZ1bGxzY3JlZW5XaWR0aCA9ICcxMDAlJztcclxuICAgIGVuYWJsZVRvb2x0aXBzID0gdHJ1ZTtcclxuICAgIGZ1bGxzY3JlZW4gPSBmYWxzZTtcclxuICAgIGZ1bGxzY3JlZW5Nb2RlOiAnZXhwYW5kJyB8ICdwb3BvdXQnID0gJ3BvcG91dCc7XHJcbiAgICByZWFkb25seSA9IGZhbHNlO1xyXG4gICAgYXBwbHlSZWFkb25seVN0eWxlID0gdHJ1ZTtcclxuICAgIHNob3dUb29sYmFyID0gdHJ1ZTtcclxuXHJcbiAgICAvLyNyZWdpb24gT3B0aW9uYWwgUXVpbGwgbW9kdWxlc1xyXG4gICAgaW1hZ2VSZXNpemVNb2R1bGUgPSB0cnVlO1xyXG4gICAgaW1hZ2VEcm9wTW9kdWxlID0gdHJ1ZTtcclxuICAgIG1lbnRpb25Nb2R1bGUgPSB0cnVlO1xyXG4gICAgc3ludGF4TW9kdWxlID0gdHJ1ZTtcclxuICAgIC8vI2VuZHJlZ2lvblxyXG5cclxuICAgIC8vI2VuZHJlZ2lvblxyXG5cclxuICAgIC8vI3JlZ2lvbiBHcm91cHNcclxuICAgIHNob3dCbG9ja1N0eWxlID0gKCkgPT4gdGhpcy5idXR0b25zLmJsb2NrcXVvdGUgfHwgdGhpcy5idXR0b25zLmNvZGVibG9jaztcclxuICAgIHNob3dGb250U3R5bGUgPSAoKSA9PiB0aGlzLmJ1dHRvbnMuYm9sZCB8fCB0aGlzLmJ1dHRvbnMuaXRhbGljIHx8IHRoaXMuYnV0dG9ucy5zdHJpa2UgfHwgdGhpcy5idXR0b25zLnVuZGVybGluZTtcclxuICAgIHNob3dRdWlja0hlYWRpbmdTdHlsZSA9ICgpID0+IHRoaXMuYnV0dG9ucy5oMSB8fCB0aGlzLmJ1dHRvbnMuaDI7XHJcbiAgICBzaG93SW5kZW50U3R5bGUgPSAoKSA9PiB0aGlzLmJ1dHRvbnMuZGVjcmVhc2VJbmRlbnQgfHwgdGhpcy5idXR0b25zLmluY3JlYXNlSW5kZW50O1xyXG4gICAgc2hvd0xpc3RTdHlsZSA9ICgpID0+IHRoaXMuYnV0dG9ucy5idWxsZXRlZCB8fCB0aGlzLmJ1dHRvbnMub3JkZXJlZDtcclxuICAgIHNob3dNZWRpYSA9ICgpID0+IHRoaXMuYnV0dG9ucy5saW5rIHx8IHRoaXMuYnV0dG9ucy5pbWFnZSB8fCB0aGlzLmJ1dHRvbnMudmlkZW87XHJcbiAgICBzaG93U2NyaXB0U3R5bGUgPSAoKSA9PiB0aGlzLmJ1dHRvbnMuc3ViU2NyaXB0IHx8IHRoaXMuYnV0dG9ucy5zdXBlclNjcmlwdDtcclxuICAgIC8vI2VuZHJlZ2lvblxyXG59Il19
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xlYXZlbGFuZHByaWNlL25neC1saWIvcXVpbGwtZWRpdG9yL3NyYy9tb2RlbC9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNwQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFdEMsTUFBTSxPQUFPLE1BQU07SUFBbkI7UUFDSSxZQUFPLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUN4QixhQUFRLEdBQUcsSUFBSSxRQUFRLEVBQUUsQ0FBQztRQUMxQixVQUFLLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUVwQiw2Q0FBNkM7UUFDN0MsV0FBTSxHQUF3QyxNQUFNLENBQUM7UUFDckQsV0FBTSxHQUFHLE1BQU0sQ0FBQztRQUNoQixVQUFLLEdBQUcsTUFBTSxDQUFDO1FBQ2YscUJBQWdCLEdBQUcsTUFBTSxDQUFDO1FBQzFCLG9CQUFlLEdBQUcsTUFBTSxDQUFDO1FBQ3pCLG1CQUFjLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDbkIsbUJBQWMsR0FBd0IsUUFBUSxDQUFDO1FBQy9DLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsdUJBQWtCLEdBQUcsSUFBSSxDQUFDO1FBQzFCLGdCQUFXLEdBQUcsSUFBSSxDQUFDO1FBQ25CLGVBQVUsR0FBRyxJQUFJLENBQUM7UUFFbEIsZ0NBQWdDO1FBQ2hDLHNCQUFpQixHQUFHLElBQUksQ0FBQztRQUN6QixvQkFBZSxHQUFHLElBQUksQ0FBQztRQUN2QixrQkFBYSxHQUFHLElBQUksQ0FBQztRQUNyQixpQkFBWSxHQUFHLElBQUksQ0FBQztRQUNwQixZQUFZO1FBRVosWUFBWTtRQUVaLGdCQUFnQjtRQUNoQixtQkFBYyxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDO1FBQ3pFLGtCQUFhLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUM7UUFDaEgsMEJBQXFCLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDakUsb0JBQWUsR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQztRQUNuRixrQkFBYSxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDO1FBQ3BFLGNBQVMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztRQUNoRixvQkFBZSxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDO1FBQzNFLFlBQVk7SUFDaEIsQ0FBQztDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQnV0dG9ucyB9IGZyb20gXCIuL2J1dHRvbnNcIjtcclxuaW1wb3J0IHsgSWNvbnMgfSBmcm9tIFwiLi9pY29uc1wiO1xyXG5pbXBvcnQgeyBUb29sdGlwcyB9IGZyb20gXCIuL3Rvb2x0aXBzXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgQ29uZmlnIHtcclxuICAgIGJ1dHRvbnMgPSBuZXcgQnV0dG9ucygpO1xyXG4gICAgdG9vbHRpcHMgPSBuZXcgVG9vbHRpcHMoKTtcclxuICAgIGljb25zID0gbmV3IEljb25zKCk7XHJcblxyXG4gICAgLy8jcmVnaW9uIFRoZXNlIGNhbiBiZSBvdmVycmlkZW4gdmlhIEBJbnB1dCgpXHJcbiAgICBmb3JtYXQ6ICdvYmplY3QnIHwgJ2h0bWwnIHwgJ3RleHQnIHwgJ2pzb24nID0gJ2h0bWwnO1xyXG4gICAgaGVpZ2h0ID0gJzUwdmgnO1xyXG4gICAgd2lkdGggPSAnMTAwJSc7XHJcbiAgICBmdWxsc2NyZWVuSGVpZ2h0ID0gJzg1dmgnO1xyXG4gICAgZnVsbHNjcmVlbldpZHRoID0gJzEwMCUnO1xyXG4gICAgZW5hYmxlVG9vbHRpcHMgPSB0cnVlO1xyXG4gICAgZnVsbHNjcmVlbiA9IGZhbHNlO1xyXG4gICAgZnVsbHNjcmVlbk1vZGU6ICdleHBhbmQnIHwgJ3BvcG91dCcgPSAncG9wb3V0JztcclxuICAgIHJlYWRvbmx5ID0gZmFsc2U7XHJcbiAgICBhcHBseVJlYWRvbmx5U3R5bGUgPSB0cnVlO1xyXG4gICAgc2hvd1Rvb2xiYXIgPSB0cnVlO1xyXG4gICAgc2hvd0JvcmRlciA9IHRydWU7XHJcblxyXG4gICAgLy8jcmVnaW9uIE9wdGlvbmFsIFF1aWxsIG1vZHVsZXNcclxuICAgIGltYWdlUmVzaXplTW9kdWxlID0gdHJ1ZTtcclxuICAgIGltYWdlRHJvcE1vZHVsZSA9IHRydWU7XHJcbiAgICBtZW50aW9uTW9kdWxlID0gdHJ1ZTtcclxuICAgIHN5bnRheE1vZHVsZSA9IHRydWU7XHJcbiAgICAvLyNlbmRyZWdpb25cclxuXHJcbiAgICAvLyNlbmRyZWdpb25cclxuXHJcbiAgICAvLyNyZWdpb24gR3JvdXBzXHJcbiAgICBzaG93QmxvY2tTdHlsZSA9ICgpID0+IHRoaXMuYnV0dG9ucy5ibG9ja3F1b3RlIHx8IHRoaXMuYnV0dG9ucy5jb2RlYmxvY2s7XHJcbiAgICBzaG93Rm9udFN0eWxlID0gKCkgPT4gdGhpcy5idXR0b25zLmJvbGQgfHwgdGhpcy5idXR0b25zLml0YWxpYyB8fCB0aGlzLmJ1dHRvbnMuc3RyaWtlIHx8IHRoaXMuYnV0dG9ucy51bmRlcmxpbmU7XHJcbiAgICBzaG93UXVpY2tIZWFkaW5nU3R5bGUgPSAoKSA9PiB0aGlzLmJ1dHRvbnMuaDEgfHwgdGhpcy5idXR0b25zLmgyO1xyXG4gICAgc2hvd0luZGVudFN0eWxlID0gKCkgPT4gdGhpcy5idXR0b25zLmRlY3JlYXNlSW5kZW50IHx8IHRoaXMuYnV0dG9ucy5pbmNyZWFzZUluZGVudDtcclxuICAgIHNob3dMaXN0U3R5bGUgPSAoKSA9PiB0aGlzLmJ1dHRvbnMuYnVsbGV0ZWQgfHwgdGhpcy5idXR0b25zLm9yZGVyZWQ7XHJcbiAgICBzaG93TWVkaWEgPSAoKSA9PiB0aGlzLmJ1dHRvbnMubGluayB8fCB0aGlzLmJ1dHRvbnMuaW1hZ2UgfHwgdGhpcy5idXR0b25zLnZpZGVvO1xyXG4gICAgc2hvd1NjcmlwdFN0eWxlID0gKCkgPT4gdGhpcy5idXR0b25zLnN1YlNjcmlwdCB8fCB0aGlzLmJ1dHRvbnMuc3VwZXJTY3JpcHQ7XHJcbiAgICAvLyNlbmRyZWdpb25cclxufSJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLWRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGVhdmVsYW5kcHJpY2Uvbmd4LWxpYi9xdWlsbC1lZGl0b3Ivc3JjL21vZGVsL2RpYWxvZy1kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHsgVXNlciB9IGZyb20gXCJAY2xlYXZlbGFuZHByaWNlL25neC1saWIvYWN0aXZlLWRpcmVjdG9yeVwiO1xyXG5pbXBvcnQgeyBDb25maWcgfSBmcm9tIFwiLi9jb25maWdcIjtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRGlhbG9nRGF0YSB7XHJcbiAgICBmb3JtR3JvdXA6IEZvcm1Hcm91cDtcclxuICAgIGNvbnRyb2xOYW1lOiBzdHJpbmc7XHJcbiAgICB2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG5cclxuICAgIGNvbmZpZzogQ29uZmlnO1xyXG4gICAgcGxhY2Vob2xkZXI6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIGZvcm1hdDogJ29iamVjdCcgfCAnaHRtbCcgfCAndGV4dCcgfCAnanNvbic7XHJcbiAgICBoZWlnaHQ6IHN0cmluZztcclxuICAgIHdpZHRoOiBzdHJpbmc7XHJcbiAgICBtYXhIZWlnaHQ6IHN0cmluZztcclxuICAgIG1heFdpZHRoOiBzdHJpbmc7XHJcbiAgICBlbmFibGVUb29sdGlwczogYm9vbGVhbjtcclxuICAgIGZ1bGxzY3JlZW46IGJvb2xlYW47XHJcbiAgICBmdWxsc2NyZWVuTW9kZTogJ2V4cGFuZCcgfCAncG9wb3V0JztcclxuICAgIHJlYWRvbmx5OiBib29sZWFuO1xyXG4gICAgYXBwbHlSZWFkb25seVN0eWxlOiBib29sZWFuO1xyXG4gICAgdXNlcnM6IFVzZXJbXSB8IHVuZGVmaW5lZDtcclxuICAgIHNob3dUb29sYmFyOiBib29sZWFuO1xyXG59Il19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLWRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGVhdmVsYW5kcHJpY2Uvbmd4LWxpYi9xdWlsbC1lZGl0b3Ivc3JjL21vZGVsL2RpYWxvZy1kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHsgVXNlciB9IGZyb20gXCJAY2xlYXZlbGFuZHByaWNlL25neC1saWIvYWN0aXZlLWRpcmVjdG9yeVwiO1xyXG5pbXBvcnQgeyBDb25maWcgfSBmcm9tIFwiLi9jb25maWdcIjtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRGlhbG9nRGF0YSB7XHJcbiAgICBmb3JtR3JvdXA6IEZvcm1Hcm91cDtcclxuICAgIGNvbnRyb2xOYW1lOiBzdHJpbmc7XHJcbiAgICB2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG5cclxuICAgIGNvbmZpZzogQ29uZmlnO1xyXG4gICAgcGxhY2Vob2xkZXI6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICAgIGZvcm1hdDogJ29iamVjdCcgfCAnaHRtbCcgfCAndGV4dCcgfCAnanNvbic7XHJcbiAgICBoZWlnaHQ6IHN0cmluZztcclxuICAgIHdpZHRoOiBzdHJpbmc7XHJcbiAgICBtYXhIZWlnaHQ6IHN0cmluZztcclxuICAgIG1heFdpZHRoOiBzdHJpbmc7XHJcbiAgICBlbmFibGVUb29sdGlwczogYm9vbGVhbjtcclxuICAgIGZ1bGxzY3JlZW46IGJvb2xlYW47XHJcbiAgICBmdWxsc2NyZWVuTW9kZTogJ2V4cGFuZCcgfCAncG9wb3V0JztcclxuICAgIHJlYWRvbmx5OiBib29sZWFuO1xyXG4gICAgYXBwbHlSZWFkb25seVN0eWxlOiBib29sZWFuO1xyXG4gICAgdXNlcnM6IFVzZXJbXSB8IHVuZGVmaW5lZDtcclxuICAgIHNob3dUb29sYmFyOiBib29sZWFuO1xyXG4gICAgc2hvd0JvcmRlcjogYm9vbGVhbjtcclxufSJdfQ==