@eui/components 18.0.0-rc.13 → 18.0.0-rc.14
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.
- package/docs/components/EuiAppTopMessageComponent.html +1 -1
- package/docs/components/EuiDateRangeSelectorComponent.html +25 -1
- package/docs/components/EuiDatepickerComponent.html +25 -1
- package/docs/components/EuiEditorComponent.html +1 -1
- package/docs/components/EuiEditorCountersComponent.html +1 -1
- package/docs/components/EuiGrowlComponent.html +1 -1
- package/docs/components/EuiMenuItemComponent.html +1 -1
- package/docs/components/EuiOverlayHeaderTitleComponent.html +1 -1
- package/docs/components/EuiPageBreadcrumbComponent.html +3 -3
- package/docs/components/EuiPageColumnsComponent.html +3 -3
- package/docs/components/EuiPageContentComponent.html +3 -3
- package/docs/components/EuiPageFooterComponent.html +46 -3
- package/docs/components/EuiPageTopContentComponent.html +3 -3
- package/docs/components/EuiPopoverComponent.html +1 -1
- package/docs/components/EuiTimepickerComponent.html +25 -1
- package/docs/dependencies.html +1 -1
- package/docs/js/menu-wc.js +3 -3
- package/docs/js/menu-wc_es5.js +1 -1
- package/docs/js/search/search_index.js +2 -2
- package/docs/miscellaneous/variables.html +1 -1
- package/docs/modules/EuiOverlayModule.html +3 -0
- package/esm2022/eui-date-range-selector/eui-date-range-selector.component.mjs +7 -3
- package/esm2022/eui-date-range-selector/eui-date-range-selector.validators.mjs +2 -2
- package/esm2022/eui-datepicker/eui-datepicker.component.mjs +7 -4
- package/esm2022/eui-fieldset/eui-fieldset.component.mjs +2 -2
- package/esm2022/eui-growl/eui-growl.component.mjs +3 -3
- package/esm2022/eui-icon/eui-icon-svg.component.mjs +2 -2
- package/esm2022/eui-icon-button/eui-icon-button.component.mjs +2 -2
- package/esm2022/eui-menu/eui-menu-item.component.mjs +3 -3
- package/esm2022/eui-overlay/components/eui-overlay-header/eui-overlay-header-title/eui-overlay-header-title.component.mjs +5 -4
- package/esm2022/eui-overlay/eui-overlay.component.mjs +2 -2
- package/esm2022/eui-overlay/eui-overlay.module.mjs +5 -4
- package/esm2022/eui-page/components/eui-page-breadcrumb/eui-page-breadcrumb.component.mjs +7 -3
- package/esm2022/eui-page/components/eui-page-columns/eui-page-columns.component.mjs +7 -3
- package/esm2022/eui-page/components/eui-page-content/eui-page-content.component.mjs +7 -3
- package/esm2022/eui-page/components/eui-page-footer/eui-page-footer.component.mjs +16 -10
- package/esm2022/eui-page/components/eui-page-top-content/eui-page-top-content.component.mjs +7 -3
- package/esm2022/eui-page/eui-page.component.mjs +2 -2
- package/esm2022/eui-popover/eui-popover.component.mjs +8 -7
- package/esm2022/eui-timepicker/eui-timepicker.component.mjs +7 -4
- package/esm2022/externals/eui-editor/counters/eui-editor-counters.component.mjs +3 -4
- package/esm2022/externals/eui-editor/eui-editor.component.mjs +3 -3
- package/esm2022/layout/eui-app/eui-app-top-message/top-message.component.mjs +3 -3
- package/esm2022/layout/eui-toolbar/toolbar.component.mjs +2 -2
- package/eui-date-range-selector/eui-date-range-selector.component.d.ts +2 -1
- package/eui-date-range-selector/eui-date-range-selector.component.d.ts.map +1 -1
- package/eui-datepicker/eui-datepicker.component.d.ts +2 -1
- package/eui-datepicker/eui-datepicker.component.d.ts.map +1 -1
- package/eui-overlay/eui-overlay.module.d.ts +3 -2
- package/eui-overlay/eui-overlay.module.d.ts.map +1 -1
- package/eui-page/components/eui-page-footer/eui-page-footer.component.d.ts +3 -0
- package/eui-page/components/eui-page-footer/eui-page-footer.component.d.ts.map +1 -1
- package/eui-timepicker/eui-timepicker.component.d.ts +2 -1
- package/eui-timepicker/eui-timepicker.component.d.ts.map +1 -1
- package/fesm2022/eui-components-eui-date-range-selector.mjs +7 -3
- package/fesm2022/eui-components-eui-date-range-selector.mjs.map +1 -1
- package/fesm2022/eui-components-eui-datepicker.mjs +6 -3
- package/fesm2022/eui-components-eui-datepicker.mjs.map +1 -1
- package/fesm2022/eui-components-eui-fieldset.mjs +2 -2
- package/fesm2022/eui-components-eui-fieldset.mjs.map +1 -1
- package/fesm2022/eui-components-eui-growl.mjs +2 -2
- package/fesm2022/eui-components-eui-growl.mjs.map +1 -1
- package/fesm2022/eui-components-eui-icon-button.mjs +2 -2
- package/fesm2022/eui-components-eui-icon-button.mjs.map +1 -1
- package/fesm2022/eui-components-eui-icon.mjs +2 -2
- package/fesm2022/eui-components-eui-icon.mjs.map +1 -1
- package/fesm2022/eui-components-eui-menu.mjs +2 -2
- package/fesm2022/eui-components-eui-menu.mjs.map +1 -1
- package/fesm2022/eui-components-eui-overlay.mjs +10 -8
- package/fesm2022/eui-components-eui-overlay.mjs.map +1 -1
- package/fesm2022/eui-components-eui-page.mjs +41 -19
- package/fesm2022/eui-components-eui-page.mjs.map +1 -1
- package/fesm2022/eui-components-eui-popover.mjs +9 -8
- package/fesm2022/eui-components-eui-popover.mjs.map +1 -1
- package/fesm2022/eui-components-eui-timepicker.mjs +6 -3
- package/fesm2022/eui-components-eui-timepicker.mjs.map +1 -1
- package/fesm2022/eui-components-externals-eui-editor.mjs +4 -4
- package/fesm2022/eui-components-externals-eui-editor.mjs.map +1 -1
- package/fesm2022/eui-components-layout.mjs +4 -4
- package/fesm2022/eui-components-layout.mjs.map +1 -1
- package/package.json +3 -3
@@ -417,14 +417,14 @@ export class EuiEditorComponent {
|
|
417
417
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.0", type: EuiEditorComponent, selector: "eui-editor", inputs: { e2eAttr: "e2eAttr", id: "id", placeholder: "placeholder", format: "format", theme: "theme", debug: "debug", customToolbarPosition: "customToolbarPosition", tabindex: "tabindex", modules: "modules", formats: "formats", customToolbarConfig: "customToolbarConfig", height: "height", isReadOnly: "isReadOnly", showCounters: "showCounters", isEnabledOnFocus: "isEnabledOnFocus", isMinimalToolbar: "isMinimalToolbar" }, outputs: { editorCreate: "editorCreate", editorChange: "editorChange", contentChange: "contentChange", selectionChange: "selectionChange", focus: "focus", blur: "blur", charactersCountChange: "charactersCountChange", wordsCountChange: "wordsCountChange" }, host: { listeners: { "click": "enableEditorOnFocus()", "focusin": "enableEditorOnFocus()" }, properties: { "class": "this.class", "attr.tabindex": "this.tabindex", "style.height": "this.height", "class.eui-editor": "this.true", "attr.readonly": "this.readonly", "attr.aria-invalid": "this.isInvalid" } }, providers: [
|
418
418
|
// TODO: Check to change the providing way. Provide with injector reference
|
419
419
|
EuiDialogService,
|
420
|
-
], queries: [{ propertyName: "euiEditorCustomToolbar", first: true, predicate: i0.forwardRef(() => EuiEditorCustomToolbarTagDirective), descendants: true }], ngImport: i0, template: "<ng-container *ngIf=\"readyToRender\">\n@if (!isReadOnly) {\n <quill-editor\n [id]=\"generatedId\"\n class=\"{{ class | classFilter }}\"\n [class.eui-editor--focused]=\"isFocused\"\n [format]=\"format\"\n [formats]=\"formats\"\n [sanitize]=\"true\"\n [modules]=\"modules\"\n [theme]=\"theme\"\n [placeholder]=\"placeholder\"\n [customToolbarPosition]=\"customToolbarPosition\"\n [formControl]=\"formControl\"\n [debug]=\"debug\"\n [tabindex]=\"tabindex\"\n [preserveWhitespace]=\"true\"\n [hasImageFeature]=\"hasImageFeature\"\n (onEditorCreated)=\"_onEditorCreated($event)\"\n (onEditorChanged)=\"_onEditorChanged($event)\"\n (onContentChanged)=\"_onContentChanged($event)\"\n (onSelectionChanged)=\"_onSelectionChanged($event)\"\n (onFocus)=\"_onFocus($event)\"\n (onBlur)=\"_onBlur($event)\">\n <div *ngIf=\"!euiEditorCustomToolbar\" quill-editor-toolbar>\n <div\n *ngIf=\"toolbarConfig.headings\"\n class=\"ql-formats\"\n role=\"application\"\n aria-label=\"Select headings style\"\n euiTooltip=\"{{ toolbarConfig.headings.label }}\">\n <select class=\"ql-header\" [attr.aria-label]=\"toolbarConfig.headings.label\">\n <option value=\"{{ value }}\" *ngFor=\"let value of toolbarConfig.headings.options\">Heading {{ value }}</option>\n <option selected>Normal</option>\n </select>\n </div>\n <div\n *ngIf=\"toolbarConfig.font\"\n class=\"ql-formats\"\n role=\"application\"\n aria-label=\"Select font style\"\n euiTooltip=\"{{ toolbarConfig.font.label }}\">\n <select class=\"ql-font\" [attr.aria-label]=\"toolbarConfig.font.label\">\n <option selected>Sans Serif</option>\n <option value=\"serif\">Serif</option>\n <option value=\"monospace\">Monospace</option>\n </select>\n </div>\n <div *ngIf=\"toolbarConfig.bold || toolbarConfig.italic || toolbarConfig.underline || toolbarConfig.strike\" class=\"ql-formats\">\n <button\n *ngIf=\"toolbarConfig.bold\"\n class=\"ql-bold\"\n type=\"button\"\n [attr.aria-label]=\"toolbarConfig.bold.label\"\n euiTooltip=\"{{ toolbarConfig.bold.label }}\">\n </button>\n <button\n *ngIf=\"toolbarConfig.italic\"\n class=\"ql-italic\"\n type=\"button\"\n [attr.aria-label]=\"toolbarConfig.italic.label\"\n euiTooltip=\"{{ toolbarConfig.italic.label }}\">\n </button>\n <button\n *ngIf=\"toolbarConfig.underline\"\n class=\"ql-underline\"\n type=\"button\"\n [attr.aria-label]=\"toolbarConfig.underline.label\"\n euiTooltip=\"{{ toolbarConfig.underline.label }}\">\n </button>\n <button\n *ngIf=\"toolbarConfig.strike\"\n class=\"ql-strike\"\n type=\"button\"\n [attr.aria-label]=\"toolbarConfig.strike.label\"\n euiTooltip=\"{{ toolbarConfig.strike.label }}\">\n </button>\n </div>\n <div *ngIf=\"toolbarConfig.fontColor || toolbarConfig.fontBackground\" class=\"ql-formats\">\n <span *ngIf=\"toolbarConfig.fontColor\" euiTooltip=\"{{ toolbarConfig.fontColor.label }}\">\n <select class=\"ql-color\" [attr.aria-label]=\"toolbarConfig.fontColor.label\"></select>\n </span>\n <span *ngIf=\"toolbarConfig.fontBackground\" euiTooltip=\"{{ toolbarConfig.fontBackground.label }}\">\n <select class=\"ql-background\" [attr.aria-label]=\"toolbarConfig.fontBackground.label\"></select>\n </span>\n </div>\n <div *ngIf=\"toolbarConfig.subscript || toolbarConfig.superscript\" class=\"ql-formats\">\n <button\n *ngIf=\"toolbarConfig.subscript\"\n class=\"ql-script\"\n value=\"sub\"\n type=\"button\"\n [attr.aria-label]=\"toolbarConfig.subscript.label\"\n euiTooltip=\"{{ toolbarConfig.subscript.label }}\">\n </button>\n <button\n *ngIf=\"toolbarConfig.superscript\"\n class=\"ql-script\"\n value=\"super\"\n type=\"button\"\n [attr.aria-label]=\"toolbarConfig.superscript.label\"\n euiTooltip=\"{{ toolbarConfig.superscript.label }}\">\n </button>\n </div>\n <div *ngIf=\"toolbarConfig.textAlign\" class=\"ql-formats\">\n <span euiTooltip=\"{{ toolbarConfig.textAlign.label }}\">\n <select class=\"ql-align\" [attr.aria-label]=\"toolbarConfig.textAlign.label\">\n <option selected></option>\n <option value=\"center\"></option>\n <option value=\"right\"></option>\n <option value=\"justify\"></option>\n </select>\n </span>\n </div>\n <div\n *ngIf=\"toolbarConfig.orderedList || toolbarConfig.bulletList || toolbarConfig.indentLess || toolbarConfig.indentMore\"\n class=\"ql-formats\">\n <button\n *ngIf=\"toolbarConfig.orderedList\"\n class=\"ql-list\"\n value=\"ordered\"\n type=\"button\"\n [attr.aria-label]=\"toolbarConfig.orderedList.label\"\n euiTooltip=\"{{ toolbarConfig.orderedList.label }}\">\n </button>\n <button\n *ngIf=\"toolbarConfig.bulletList\"\n class=\"ql-list\"\n value=\"bullet\"\n type=\"button\"\n [attr.aria-label]=\"toolbarConfig.bulletList.label\"\n euiTooltip=\"{{ toolbarConfig.bulletList.label }}\">\n </button>\n <button\n type=\"button\"\n *ngIf=\"toolbarConfig.indentLess\"\n class=\"ql-indent\"\n value=\"-1\"\n [attr.aria-label]=\"toolbarConfig.indentLess.label\"\n euiTooltip=\"{{ toolbarConfig.indentLess.label }}\">\n </button>\n <button\n type=\"button\"\n *ngIf=\"toolbarConfig.indentMore\"\n class=\"ql-indent\"\n value=\"+1\"\n [attr.aria-label]=\"toolbarConfig.indentMore.label\"\n euiTooltip=\"{{ toolbarConfig.indentMore.label }}\">\n </button>\n </div>\n <div\n *ngIf=\"\n toolbarConfig.blockquote ||\n toolbarConfig.codeBlock ||\n toolbarConfig.link ||\n toolbarConfig.image ||\n toolbarConfig.imageUrl ||\n toolbarConfig.video ||\n toolbarConfig.table\n \"\n class=\"ql-formats\">\n <button\n *ngIf=\"toolbarConfig.blockquote\"\n class=\"ql-blockquote\"\n type=\"button\"\n [attr.aria-label]=\"toolbarConfig.blockquote.label\"\n euiTooltip=\"{{ toolbarConfig.blockquote.label }}\">\n </button>\n <button\n *ngIf=\"toolbarConfig.codeBlock\"\n class=\"ql-code-block\"\n type=\"button\"\n [attr.aria-label]=\"toolbarConfig.codeBlock.label\"\n euiTooltip=\"{{ toolbarConfig.codeBlock.label }}\">\n </button>\n <button\n *ngIf=\"toolbarConfig.link\"\n class=\"ql-link\"\n type=\"button\"\n [attr.aria-label]=\"toolbarConfig.link.label\"\n euiTooltip=\"{{ toolbarConfig.link.label }}\">\n </button>\n <button\n *ngIf=\"toolbarConfig.image\"\n class=\"ql-image\"\n type=\"button\"\n [attr.aria-label]=\"toolbarConfig.image.label\"\n euiTooltip=\"{{ toolbarConfig.image.label }}\">\n </button>\n <button\n type=\"button\"\n *ngIf=\"toolbarConfig.imageUrl\"\n [attr.aria-label]=\"toolbarConfig.imageUrl.label\"\n euiTooltip=\"{{ toolbarConfig.imageUrl.label }}\"\n (click)=\"imageUrlHandler()\">\n <eui-icon-svg icon=\"eui-ecl-image\"></eui-icon-svg>\n </button>\n <button\n *ngIf=\"toolbarConfig.video\"\n class=\"ql-video\"\n type=\"button\"\n [attr.aria-label]=\"toolbarConfig.video.label\"\n euiTooltip=\"{{ toolbarConfig.video.label }}\">\n </button>\n <button\n type=\"button\"\n *ngIf=\"toolbarConfig.table\"\n [attr.aria-label]=\"toolbarConfig.table.label\"\n euiTooltip=\"{{ toolbarConfig.table.label }}\"\n (click)=\"insertTable()\">\n <eui-icon-svg icon=\"eui-ecl-spreadsheet\"></eui-icon-svg>\n </button>\n </div>\n <div *ngIf=\"toolbarConfig.clean || toolbarConfig.delete\" class=\"ql-formats\">\n <button\n *ngIf=\"toolbarConfig.clean\"\n class=\"ql-clean\"\n type=\"button\"\n [attr.aria-label]=\"toolbarConfig.clean.label\"\n euiTooltip=\"{{ toolbarConfig.clean.label }}\">\n </button>\n <button\n type=\"button\"\n *ngIf=\"toolbarConfig.delete\"\n [attr.aria-label]=\"toolbarConfig.delete.label\"\n euiTooltip=\"{{ toolbarConfig.delete.label }}\"\n (click)=\"editorDeleteContent()\">\n <eui-icon-svg icon=\"eui-ecl-trash\"></eui-icon-svg>\n </button>\n </div>\n <div *ngIf=\"toolbarConfig.undo || toolbarConfig.redo\" class=\"ql-formats\">\n <button\n type=\"button\"\n *ngIf=\"toolbarConfig.undo\"\n [attr.aria-label]=\"toolbarConfig.undo.label\"\n euiTooltip=\"{{ toolbarConfig.undo.label }}\"\n (click)=\"editorUndo()\">\n <eui-icon-svg icon=\"arrow-undo:sharp\"></eui-icon-svg>\n </button>\n <button\n type=\"button\"\n *ngIf=\"toolbarConfig.redo\"\n [attr.aria-label]=\"toolbarConfig.redo.label\"\n euiTooltip=\"{{ toolbarConfig.redo.label }}\"\n (click)=\"editorRedo()\">\n <eui-icon-svg icon=\"arrow-redo:sharp\"></eui-icon-svg>\n </button>\n </div>\n <div *ngIf=\"toolbarConfig.counters\" class=\"ql-formats\">\n <eui-editor-counters\n [hasCharactersCounter]=\"hasCharactersCounter\"\n [charactersCounter]=\"charactersCount\"\n [charactersLabel]=\"charactersCounterLabel\"\n [hasWordsCounter]=\"hasWordsCounter\"\n [wordsCounter]=\"wordsCount\"\n [wordsLabel]=\"wordsCounterLabel\"\n [attr.aria-label]=\"toolbarConfig.counters.label\"\n role=\"button\"\n euiTooltip=\"{{ toolbarConfig.counters.label }}\">\n </eui-editor-counters>\n </div>\n </div>\n <div *ngIf=\"euiEditorCustomToolbar\" quill-editor-toolbar>\n <ng-content select=\"euiEditorCustomToolbar\"></ng-content>\n </div>\n </quill-editor>\n<!-- READONLY MODE -->\n} @else {\n <eui-editor-html-view *ngIf=\"format === 'html'\" [content]=\"value\" [theme]=\"theme\"></eui-editor-html-view>\n <eui-editor-json-view *ngIf=\"format === 'json'\" [content]=\"jsonToHtmlContent\" [theme]=\"theme\"></eui-editor-json-view>\n}\n</ng-container>\n", styles: ["@charset \"UTF-8\";.qlbt-operation-menu .qlbt-operation-color-picker{padding:0 12px 10px!important}.eui-editor{--editor-base-font-size: calc(var(--eui-f-size-m) + 1px);--editor-base-line-height: 1.25;--editor-paragraph-spacer: var(--eui-s-m);--editor-lists-spacer: var(--eui-s-s);--picker-font-size: var(--eui-f-s);--picker-height: var(--eui-s-xl);--picker-width: calc(6 * var(--eui-s-m));--button-height: var(--eui-s-xl);--button-width: var(--eui-s-xl)}.eui-editor .ql-container{box-sizing:border-box;font-size:var(--eui-f-size-base);height:100%;margin:0;position:relative;resize:vertical;white-space:pre-wrap;font:var(--eui-f-m)}.eui-editor .ql-container.ql-snow .ql-tooltip{align-items:center;display:flex;background:var(--eui-c-info-bg);box-shadow:var(--eui-sh-z-depth-1);left:50%!important;position:absolute;transform:translate(-50%,60%);width:75%}.eui-editor .ql-container.ql-snow .ql-tooltip.ql-hidden{display:none}.eui-editor .ql-container.ql-snow .ql-tooltip.ql-editing{align-items:center;display:flex;left:50%!important;position:absolute;transform:translate(-50%,60%);width:75%}.eui-editor .ql-container.ql-snow .ql-tooltip.ql-editing.ql-hidden{display:none}.eui-editor .ql-container.ql-snow .ql-tooltip.ql-editing input[type=text]{display:inline-block;width:100%}.eui-editor .ql-container.ql-snow .ql-tooltip.ql-flip{z-index:1}.eui-editor .ql-container.ql-snow a.ql-preview{max-width:100%;overflow-x:hidden;text-overflow:ellipsis;vertical-align:top;width:100%}.eui-editor .ql-toolbar{background-color:var(--eui-c-neutral-bg-light);border:var(--eui-bw-xs) solid var(--eui-c-neutral-lighter);padding:var(--eui-s-xs) var(--eui-s-xs) 0 var(--eui-s-xs);font:var(--eui-f-m)}.eui-editor .ql-toolbar.ql-snow{box-sizing:border-box}.eui-editor .ql-toolbar.ql-snow .ql-formats{align-items:center;background-color:transparent;border:var(--eui-bw-xs) solid var(--eui-c-neutral-lighter);border-radius:var(--eui-br-m);display:inline-flex;margin-bottom:var(--eui-s-xs);margin-right:var(--eui-s-xs);vertical-align:middle}.eui-editor .ql-toolbar.ql-snow .ql-formats .ql-picker{align-items:center;color:var(--eui-c-neutral);display:inline-flex;height:var(--picker-height);max-height:var(--picker-height);position:relative;vertical-align:middle}.eui-editor .ql-toolbar.ql-snow .ql-formats .ql-picker:focus:not([readonly]){outline:2px solid var(--eui-c-focus)!important;outline-offset:-2px!important;transition:none}.eui-editor .ql-toolbar.ql-snow .ql-formats .ql-picker:focus-visible:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-editor .ql-toolbar.ql-snow .ql-formats .ql-picker [tabindex=\"0\"]:focus:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-editor .ql-toolbar.ql-snow .ql-formats .ql-picker:hover{background-color:var(--eui-c-neutral-bg-light);color:var(--eui-c-info)}.eui-editor .ql-toolbar.ql-snow .ql-formats .ql-picker .ql-picker-label{align-items:center;border-color:transparent;display:flex;font-size:var(--picker-font-size)}.eui-editor .ql-toolbar.ql-snow .ql-formats select{background-color:transparent}.eui-editor .ql-toolbar.ql-snow .ql-formats select:focus:not([readonly]){outline:2px solid var(--eui-c-focus)!important;outline-offset:-2px!important;transition:none}.eui-editor .ql-toolbar.ql-snow .ql-formats select:focus-visible:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-editor .ql-toolbar.ql-snow .ql-formats select [tabindex=\"0\"]:focus:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-editor .ql-toolbar.ql-snow .ql-formats button{align-items:center;background-color:transparent;border:var(--eui-bw-none) solid var(--eui-c-neutral-lighter);box-shadow:none;color:var(--eui-c-neutral-light);cursor:pointer;display:inline-flex;height:var(--button-height);justify-content:center;min-width:var(--button-width)}.eui-editor .ql-toolbar.ql-snow .ql-formats button:focus:not([readonly]){outline:2px solid var(--eui-c-focus)!important;outline-offset:-2px!important;transition:none}.eui-editor .ql-toolbar.ql-snow .ql-formats button:focus-visible:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-editor .ql-toolbar.ql-snow .ql-formats button [tabindex=\"0\"]:focus:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-editor .ql-toolbar.ql-snow .ql-formats button:hover{background-color:var(--eui-c-neutral-bg-light);color:var(--eui-c-info)}.eui-editor .ql-toolbar.ql-snow .ql-formats button.active,.eui-editor .ql-toolbar.ql-snow .ql-formats button.ql-active{background:var(--eui-c-accent);color:var(--eui-c-primary)}.eui-editor .ql-toolbar.ql-snow .ql-formats button:first-child{border-radius:var(--eui-br-m) 0 0 var(--eui-br-m)}.eui-editor .ql-toolbar.ql-snow .ql-formats button:last-child{border-radius:0 var(--eui-br-m) var(--eui-br-m) 0}.eui-editor .ql-toolbar.ql-snow .ql-formats button.editor-counters{align-items:center;cursor:auto;display:inline-flex;width:auto}.eui-editor .ql-toolbar.ql-snow .ql-formats button.editor-counters .chars-counter,.eui-editor .ql-toolbar.ql-snow .ql-formats button.editor-counters .words-counter,.eui-editor .ql-toolbar.ql-snow .ql-formats button.editor-counters .bytes-counter{color:var(--eui-c-info);font:var(--eui-f-s-bold)}.eui-editor .ql-toolbar.ql-snow .ql-formats button.editor-counters .chars-counter.chars-counter--error,.eui-editor .ql-toolbar.ql-snow .ql-formats button.editor-counters .words-counter.chars-counter--error,.eui-editor .ql-toolbar.ql-snow .ql-formats button.editor-counters .bytes-counter.chars-counter--error{color:var(--eui-c-danger)}.eui-editor .ql-toolbar.ql-snow .ql-formats button.editor-counters .chars-label,.eui-editor .ql-toolbar.ql-snow .ql-formats button.editor-counters .words-label,.eui-editor .ql-toolbar.ql-snow .ql-formats button.editor-counters .bytes-label{color:var(--eui-c-neutral);font-size:var(--eui-f-xs)}.eui-editor .ql-toolbar.ql-snow .ql-formats .ql-stroke{fill:none;stroke:#444;stroke-linecap:round;stroke-linejoin:round;stroke-width:1px}.eui-editor .ql-toolbar.ql-snow .ql-size.ql-picker{height:var(--eui-s-xl);padding:var(--eui-s-2xs) 0;width:calc(7 * var(--eui-s-m))}.eui-editor .ql-toolbar.ql-snow .ql-size.ql-picker .ql-picker-label:before,.eui-editor .ql-toolbar.ql-snow .ql-size.ql-picker .ql-picker-item:before{content:\"Normal\"}.eui-editor .ql-toolbar.ql-snow .ql-size.ql-picker .ql-picker-label[data-value=small]:before,.eui-editor .ql-toolbar.ql-snow .ql-size.ql-picker .ql-picker-item[data-value=small]:before{content:\"Small\"}.eui-editor .ql-toolbar.ql-snow .ql-size.ql-picker .ql-picker-label[data-value=smaller]:before,.eui-editor .ql-toolbar.ql-snow .ql-size.ql-picker .ql-picker-item[data-value=smaller]:before{content:\"Smaller\"}.eui-editor .ql-toolbar.ql-snow .ql-size.ql-picker .ql-picker-label[data-value=smallest]:before,.eui-editor .ql-toolbar.ql-snow .ql-size.ql-picker .ql-picker-item[data-value=smallest]:before{content:\"Smallest\"}.eui-editor .ql-toolbar.ql-snow .ql-size.ql-picker .ql-picker-label[data-value=large]:before,.eui-editor .ql-toolbar.ql-snow .ql-size.ql-picker .ql-picker-item[data-value=large]:before{content:\"Large\"}.eui-editor .ql-toolbar.ql-snow .ql-size.ql-picker .ql-picker-label[data-value=huge]:before,.eui-editor .ql-toolbar.ql-snow .ql-size.ql-picker .ql-picker-item[data-value=huge]:before{content:\"Huge\"}.eui-editor .ql-toolbar.ql-snow .ql-size.ql-picker .ql-picker-item[data-value=small]:before,.eui-editor .ql-toolbar.ql-snow .ql-size.ql-picker .ql-size-small{font-size:var(--eui-f-s)}.eui-editor .ql-toolbar.ql-snow .ql-size.ql-picker .ql-picker-item[data-value=smaller]:before{font-size:var(--eui-f-xs)}.eui-editor .ql-toolbar.ql-snow .ql-size.ql-picker .ql-picker-item[data-value=smallest]:before{font-size:var(--eui-f-size-2xs)}.eui-editor .ql-toolbar.ql-snow .ql-size.ql-picker .ql-picker-item[data-value=large]:before,.eui-editor .ql-toolbar.ql-snow .ql-size.ql-picker .ql-size-large{font-size:var(--eui-f-xl)}.eui-editor .ql-toolbar.ql-snow .ql-size.ql-picker .ql-picker-item[data-value=huge]:before,.eui-editor .ql-toolbar.ql-snow .ql-size.ql-picker .ql-size-huge{font-size:var(--eui-f-size-4xl)}.eui-editor .ql-toolbar.ql-snow .ql-header.ql-picker{align-items:center;display:flex;height:var(--picker-height);width:var(--picker-width)}.eui-editor .ql-toolbar.ql-snow .ql-header.ql-picker .ql-picker-label:before,.eui-editor .ql-toolbar.ql-snow .ql-header.ql-picker .ql-picker-item:before{content:\"Normal\"}.eui-editor .ql-toolbar.ql-snow .ql-header.ql-picker .ql-picker-label[data-value=\"1\"]:before,.eui-editor .ql-toolbar.ql-snow .ql-header.ql-picker .ql-picker-item[data-value=\"1\"]:before{content:\"Heading 1\"}.eui-editor .ql-toolbar.ql-snow .ql-header.ql-picker .ql-picker-label[data-value=\"2\"]:before,.eui-editor .ql-toolbar.ql-snow .ql-header.ql-picker .ql-picker-item[data-value=\"2\"]:before{content:\"Heading 2\"}.eui-editor .ql-toolbar.ql-snow .ql-header.ql-picker .ql-picker-label[data-value=\"3\"]:before,.eui-editor .ql-toolbar.ql-snow .ql-header.ql-picker .ql-picker-item[data-value=\"3\"]:before{content:\"Heading 3\"}.eui-editor .ql-toolbar.ql-snow .ql-header.ql-picker .ql-picker-label[data-value=\"4\"]:before,.eui-editor .ql-toolbar.ql-snow .ql-header.ql-picker .ql-picker-item[data-value=\"4\"]:before{content:\"Heading 4\"}.eui-editor .ql-toolbar.ql-snow .ql-header.ql-picker .ql-picker-label[data-value=\"5\"]:before,.eui-editor .ql-toolbar.ql-snow .ql-header.ql-picker .ql-picker-item[data-value=\"5\"]:before{content:\"Heading 5\"}.eui-editor .ql-toolbar.ql-snow .ql-header.ql-picker .ql-picker-label[data-value=\"6\"]:before,.eui-editor .ql-toolbar.ql-snow .ql-header.ql-picker .ql-picker-item[data-value=\"6\"]:before{content:\"Heading 6\"}.eui-editor .ql-toolbar.ql-snow .ql-header.ql-picker .ql-picker-item[data-value=\"1\"]:before{font:var(--eui-f-4xl)}.eui-editor .ql-toolbar.ql-snow .ql-header.ql-picker .ql-picker-item[data-value=\"2\"]:before{font:var(--eui-f-3xl)}.eui-editor .ql-toolbar.ql-snow .ql-header.ql-picker .ql-picker-item[data-value=\"3\"]:before{font:var(--eui-f-2xl)}.eui-editor .ql-toolbar.ql-snow .ql-header.ql-picker .ql-picker-item[data-value=\"4\"]:before{font:var(--eui-f-xl)}.eui-editor .ql-toolbar.ql-snow .ql-header.ql-picker .ql-picker-item[data-value=\"5\"]:before{font:var(--eui-f-l)}.eui-editor .ql-toolbar.ql-snow .ql-header.ql-picker .ql-picker-item[data-value=\"6\"]:before{font:var(--eui-f-m)}.eui-editor .ql-toolbar.ql-snow .ql-font.ql-picker{align-items:center;display:flex;height:var(--picker-height);width:var(--picker-width)}.eui-editor .ql-toolbar.ql-snow .ql-font.ql-picker .ql-picker-label:before,.eui-editor .ql-toolbar.ql-snow .ql-font.ql-picker .ql-picker-item:before{content:\"Sans Serif\"}.eui-editor .ql-toolbar.ql-snow .ql-font.ql-picker .ql-picker-label[data-value=serif]:before,.eui-editor .ql-toolbar.ql-snow .ql-font.ql-picker .ql-picker-item[data-value=serif]:before{content:\"Serif\"}.eui-editor .ql-toolbar.ql-snow .ql-font.ql-picker .ql-picker-label[data-value=monospace]:before,.eui-editor .ql-toolbar.ql-snow .ql-font.ql-picker .ql-picker-item[data-value=monospace]:before{content:\"Monospace\"}.eui-editor .ql-toolbar.ql-snow .ql-font.ql-picker .ql-picker-item[data-value=sans-serif]:before{font-family:arial,sans-serif!important}.eui-editor .ql-toolbar.ql-snow .ql-font.ql-picker .ql-picker-item[data-value=serif]:before{font-family:times new roman,serif!important}.eui-editor .ql-toolbar.ql-snow .ql-font.ql-picker .ql-picker-item[data-value=monospace]:before{font-family:courier new,monospace!important}.eui-editor .ql-toolbar.ql-snow .ql-color-picker{width:var(--eui-s-xl)}.eui-editor .ql-toolbar .eui-editor-custom-toolbar{display:inline-flex;margin:0;padding:0;vertical-align:middle}.eui-editor .ql-editor{box-sizing:border-box;height:100%;line-height:var(--editor-base-line-height);outline:none;overflow-y:auto;padding:var(--eui-s-s);-moz-tab-size:4;tab-size:4;text-align:left;white-space:inherit;word-break:normal;word-wrap:break-word;font:var(--eui-f-m)}.eui-editor .ql-editor h1{font:var(--eui-f-4xl)}.eui-editor .ql-editor h2{font:var(--eui-f-3xl)}.eui-editor .ql-editor h3{font:var(--eui-f-2xl)}.eui-editor .ql-editor h4{font:var(--eui-f-xl)}.eui-editor .ql-editor h5{font:var(--eui-f-l)}.eui-editor .ql-editor h6{font:var(--eui-f-m)}.eui-editor .ql-editor .h7{font:var(--eui-f-s)}.eui-editor .ql-editor .h8{font:var(--eui-f-xs)}.eui-editor .ql-editor .h9{font:var(--eui-f-2xs)}.eui-editor .ql-editor p{margin-bottom:var(--editor-paragraph-spacer)}.eui-editor .ql-editor p:first-child{margin-top:0}.eui-editor .ql-editor p:last-child{margin-bottom:0}.eui-editor .ql-editor em,.eui-editor .ql-editor i{font-style:italic!important}.eui-editor .ql-editor strong,.eui-editor .ql-editor b{font-weight:700!important}.eui-editor .ql-editor strong em,.eui-editor .ql-editor strong i,.eui-editor .ql-editor b em,.eui-editor .ql-editor b i{font-style:italic!important;font-weight:700!important}.eui-editor .ql-editor strong em u,.eui-editor .ql-editor strong i u,.eui-editor .ql-editor b em u,.eui-editor .ql-editor b i u{text-decoration:underline!important}.eui-editor .ql-editor blockquote{border-left:var(--eui-s-xs) solid var(--eui-c-neutral-light);margin-bottom:0;margin-top:0;padding-left:var(--eui-s-m)}.eui-editor .ql-editor code,.eui-editor .ql-editor pre{background-color:#f0f0f0;border-radius:var(--eui-br-m)}.eui-editor .ql-editor pre{margin-bottom:var(--eui-s-xs);margin-top:var(--eui-s-xs);padding:var(--eui-s-xs) var(--eui-s-m);white-space:pre-wrap}.eui-editor .ql-editor code{font-size:85%;padding:2px 4px;word-break:break-word}.eui-editor .ql-editor ol,.eui-editor .ql-editor ul{margin-bottom:var(--editor-lists-spacer)}.eui-editor .ql-editor ol{counter-reset:inherit;list-style:none}.eui-editor .ql-editor ol li{padding-left:var(--eui-s-s)}.eui-editor .ql-editor ol li[data-list=bullet]{list-style:none}.eui-editor .ql-editor ol li[data-list=bullet]>.ql-ui:before{content:\"\\2022\";font-size:var(--eui-f-xl);margin-left:calc(-2.125 * var(--eui-s-m));position:absolute;top:calc(-.75 * var(--eui-s-2xs))}.eui-editor .ql-editor ol li[data-list=ordered]{list-style:none}.eui-editor .ql-editor pre.ql-syntax{background-color:var(--eui-c-neutral);color:#f5f5f5;overflow:visible}.eui-editor .ql-editor iframe,.eui-editor .ql-editor img{display:inline-block;height:1;width:1}.eui-editor .ql-editor.ql-blank:before{left:var(--eui-s-m);position:absolute;right:0}.eui-editor .ql-editor p,.eui-editor .ql-editor label,.eui-editor .ql-editor .label,.eui-editor .ql-editor blockquote,.eui-editor .ql-editor abbr,.eui-editor .ql-editor mark,.eui-editor .ql-editor del{font-size:var(--editor-base-font-size)}.eui-editor.eui-editor--focused .ql-container{box-shadow:var(--eui-sh-z-depth-0)}.eui-editor.eui-editor--focused .ql-container:focus:not([readonly]){outline:2px solid var(--eui-c-focus)!important;outline-offset:-2px!important;transition:none}.eui-editor.eui-editor--focused .ql-container:focus-visible:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-editor.eui-editor--focused .ql-container [tabindex=\"0\"]:focus:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-editor.eui-editor--readonly .ql-container{border:var(--eui-bw-none)}.eui-editor.eui-editor--readonly .ql-editor{min-height:calc(var(--eui-s-2xl) + 2px);padding:0 0 var(--eui-s-m) 0}.eui-editor.eui-editor--readonly.eui-editor--empty .ql-container{border:var(--eui-bw-none);outline:1px dashed var(--eui-c-neutral-lighter)}.eui-editor.eui-editor--readonly.eui-editor--empty .ql-container:hover{outline:1px solid var(--eui-c-neutral-light)}.eui-editor-wrapper{position:relative}.eui-editor-wrapper .eui-editor{display:flex;flex-direction:column;height:100%;position:relative;width:100%}.eui-editor-wrapper .eui-editor .ql-container{background-color:var(--eui-c-white);border:var(--eui-bw-xs) solid #ccc;flex-grow:1;padding:.35rem}.eui-editor-wrapper .eui-editor .ql-container .ngx-quill-view{border:var(--eui-bw-none)}eui-editor{position:relative;width:100%}eui-editor.ng-invalid.ng-touched .eui-editor:not(.eui-editor--readonly) .ql-container{outline:1px solid var(--eui-c-danger)}.ql-container .qlbt-selection-line.qlbt-selection-line-left:before{background-color:#0589f3;border-radius:var(--eui-br-m);content:\"\";height:5px;left:-2px;position:absolute;top:-2px;width:5px}.ql-container .qlbt-selection-line.qlbt-selection-line-right:before{background-color:#0589f3;border-radius:var(--eui-br-m);bottom:-3px;content:\"\";height:5px;position:absolute;right:-2px;width:5px}.quill-better-table-wrapper{overflow-x:auto}table.quill-better-table{border-collapse:collapse;table-layout:fixed}table.quill-better-table td{border:var(--eui-bw-xs) solid #000;padding:2px 5px}.qlbt-operation-menu{background-color:#fff;box-shadow:0 2px 8px #00000026;font-size:14px;overflow:hidden;z-index:100}.qlbt-operation-menu .qlbt-operation-menu-dividing{background-color:#efefef;height:1px}.qlbt-operation-menu .qlbt-operation-menu-subtitle{color:#999;font-size:14px;padding:5px 16px}.qlbt-operation-menu .qlbt-operation-color-picker{align-items:center;background-color:#fff;display:flex;flex-wrap:wrap;overflow:hidden;padding:0 16px 10px}.qlbt-operation-menu .qlbt-operation-color-picker .qlbt-operation-color-picker-item{border:var(--eui-bw-xs) solid #595959;cursor:pointer;height:20px;margin-bottom:5px;margin-right:5px;width:20px}.qlbt-operation-menu .qlbt-operation-menu-item{align-items:center;background-color:#fff;color:#595959;cursor:pointer;display:flex;overflow:hidden;padding:10px 16px;text-overflow:ellipsis}.qlbt-operation-menu .qlbt-operation-menu-item:hover{background-color:#efefef}.qlbt-operation-menu .qlbt-operation-menu-item .qlbt-operation-menu-icon{font-size:0;height:20px;margin-right:8px;width:20px}.qlbt-col-tool{align-items:flex-end;display:flex;height:16px;overflow:hidden;position:absolute;z-index:99}.qlbt-col-tool .qlbt-col-tool-cell{background-color:#fff;border-bottom:1px solid #000;border-right:1px solid #000;border-top:1px solid #000;position:relative}.qlbt-col-tool .qlbt-col-tool-cell:first-child{border-left:1px solid #000}.qlbt-col-tool .qlbt-col-tool-cell-holder{background-color:transparent;bottom:0;cursor:ew-resize;position:absolute;right:-1px;top:0;width:1px;z-index:3}.qlbt-col-tool .qlbt-col-tool-cell-holder:hover{background-color:#0589f3}.qlbt-col-tool .qlbt-col-tool-cell-holder:before{content:\"\";display:block;height:100%;left:-6px;position:absolute;top:0;width:8px}.qlbt-col-tool .qlbt-col-tool-cell-holder:after{content:\"\";display:block;height:100%;position:absolute;right:-6px;top:0;width:8px}\n"], dependencies: [{ kind: "directive", type: i0.forwardRef(() => i4.NgForOf), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i0.forwardRef(() => i4.NgIf), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i0.forwardRef(() => i2.NgSelectOption), selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i0.forwardRef(() => i2.ɵNgSelectMultipleOption), selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i0.forwardRef(() => i2.NgControlStatus), selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i0.forwardRef(() => i2.FormControlDirective), selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i0.forwardRef(() => i5.EuiTooltipDirective), selector: "[euiTooltip]", inputs: ["e2eAttr", "showDelay", "hideDelay", "contentAlignment", "position", "isDisabled", "euiTooltip", "euiTooltipPrimary", "euiTooltipSecondary", "euiTooltipInfo", "euiTooltipSuccess", "euiTooltipWarning", "euiTooltipDanger", "euiTooltipAccent"], exportAs: ["euiTooltip"] }, { kind: "component", type: i0.forwardRef(() => i3.QuillEditorComponent), selector: "quill-editor", inputs: ["id", "format", "theme", "modules", "debug", "placeholder", "maxLength", "minLength", "formats", "customToolbarPosition", "styles", "scrollingContainer", "bounds", "customOptions", "trackChanges", "hasImageFeature", "readOnly", "required", "sanitize", "strict", "preserveWhitespace", "valueGetter", "valueSetter"], outputs: ["onEditorCreated", "onContentChanged", "onSelectionChanged", "onFocus", "onBlur"] }, { kind: "component", type: i0.forwardRef(() => i6.EuiIconSvgComponent), selector: "eui-icon-svg, span[euiIconSvg], i[euiIconSvg]", inputs: ["icon", "fillColor", "set", "size", "style", "iconUrl", "transform", "euiVariant", "aria-label", "ariaHidden", "focusable", "isLoading", "isInputIcon", "euiStart", "euiEnd"] }, { kind: "component", type: i0.forwardRef(() => i7.EuiEditorJsonViewComponent), selector: "eui-editor-json-view", inputs: ["theme", "content"] }, { kind: "component", type: i0.forwardRef(() => i8.EuiEditorHtmlViewComponent), selector: "eui-editor-html-view", inputs: ["content", "theme"] }, { kind: "component", type: i0.forwardRef(() => i9.EuiEditorCountersComponent), selector: "eui-editor-counters", inputs: ["charactersCounter", "charactersLabel", "wordsCounter", "wordsLabel", "isMaxLengthValid", "hasCharactersCounter", "hasWordsCounter"] }, { kind: "pipe", type: i0.forwardRef(() => ClassFilterPipe), name: "classFilter" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
420
|
+
], queries: [{ propertyName: "euiEditorCustomToolbar", first: true, predicate: i0.forwardRef(() => EuiEditorCustomToolbarTagDirective), descendants: true }], ngImport: i0, template: "<ng-container *ngIf=\"readyToRender\">\n@if (!isReadOnly) {\n <quill-editor\n [id]=\"generatedId\"\n class=\"{{ class | classFilter }}\"\n [class.eui-editor--focused]=\"isFocused\"\n [format]=\"format\"\n [formats]=\"formats\"\n [sanitize]=\"true\"\n [modules]=\"modules\"\n [theme]=\"theme\"\n [placeholder]=\"placeholder\"\n [customToolbarPosition]=\"customToolbarPosition\"\n [formControl]=\"formControl\"\n [debug]=\"debug\"\n [tabindex]=\"tabindex\"\n [preserveWhitespace]=\"true\"\n [hasImageFeature]=\"hasImageFeature\"\n (onEditorCreated)=\"_onEditorCreated($event)\"\n (onEditorChanged)=\"_onEditorChanged($event)\"\n (onContentChanged)=\"_onContentChanged($event)\"\n (onSelectionChanged)=\"_onSelectionChanged($event)\"\n (onFocus)=\"_onFocus($event)\"\n (onBlur)=\"_onBlur($event)\">\n <div *ngIf=\"!euiEditorCustomToolbar\" quill-editor-toolbar>\n <div\n *ngIf=\"toolbarConfig.headings\"\n class=\"ql-formats\"\n role=\"application\"\n aria-label=\"Select headings style\"\n euiTooltip=\"{{ toolbarConfig.headings.label }}\">\n <select class=\"ql-header\" [attr.aria-label]=\"toolbarConfig.headings.label\">\n <option value=\"{{ value }}\" *ngFor=\"let value of toolbarConfig.headings.options\">Heading {{ value }}</option>\n <option selected>Normal</option>\n </select>\n </div>\n <div\n *ngIf=\"toolbarConfig.font\"\n class=\"ql-formats\"\n role=\"application\"\n aria-label=\"Select font style\"\n euiTooltip=\"{{ toolbarConfig.font.label }}\">\n <select class=\"ql-font\" [attr.aria-label]=\"toolbarConfig.font.label\">\n <option selected>Sans Serif</option>\n <option value=\"serif\">Serif</option>\n <option value=\"monospace\">Monospace</option>\n </select>\n </div>\n <div *ngIf=\"toolbarConfig.bold || toolbarConfig.italic || toolbarConfig.underline || toolbarConfig.strike\" class=\"ql-formats\">\n <button\n *ngIf=\"toolbarConfig.bold\"\n class=\"ql-bold\"\n type=\"button\"\n [attr.aria-label]=\"toolbarConfig.bold.label\"\n euiTooltip=\"{{ toolbarConfig.bold.label }}\">\n </button>\n <button\n *ngIf=\"toolbarConfig.italic\"\n class=\"ql-italic\"\n type=\"button\"\n [attr.aria-label]=\"toolbarConfig.italic.label\"\n euiTooltip=\"{{ toolbarConfig.italic.label }}\">\n </button>\n <button\n *ngIf=\"toolbarConfig.underline\"\n class=\"ql-underline\"\n type=\"button\"\n [attr.aria-label]=\"toolbarConfig.underline.label\"\n euiTooltip=\"{{ toolbarConfig.underline.label }}\">\n </button>\n <button\n *ngIf=\"toolbarConfig.strike\"\n class=\"ql-strike\"\n type=\"button\"\n [attr.aria-label]=\"toolbarConfig.strike.label\"\n euiTooltip=\"{{ toolbarConfig.strike.label }}\">\n </button>\n </div>\n <div *ngIf=\"toolbarConfig.fontColor || toolbarConfig.fontBackground\" class=\"ql-formats\">\n <span *ngIf=\"toolbarConfig.fontColor\" euiTooltip=\"{{ toolbarConfig.fontColor.label }}\">\n <select class=\"ql-color\" [attr.aria-label]=\"toolbarConfig.fontColor.label\"></select>\n </span>\n <span *ngIf=\"toolbarConfig.fontBackground\" euiTooltip=\"{{ toolbarConfig.fontBackground.label }}\">\n <select class=\"ql-background\" [attr.aria-label]=\"toolbarConfig.fontBackground.label\"></select>\n </span>\n </div>\n <div *ngIf=\"toolbarConfig.subscript || toolbarConfig.superscript\" class=\"ql-formats\">\n <button\n *ngIf=\"toolbarConfig.subscript\"\n class=\"ql-script\"\n value=\"sub\"\n type=\"button\"\n [attr.aria-label]=\"toolbarConfig.subscript.label\"\n euiTooltip=\"{{ toolbarConfig.subscript.label }}\">\n </button>\n <button\n *ngIf=\"toolbarConfig.superscript\"\n class=\"ql-script\"\n value=\"super\"\n type=\"button\"\n [attr.aria-label]=\"toolbarConfig.superscript.label\"\n euiTooltip=\"{{ toolbarConfig.superscript.label }}\">\n </button>\n </div>\n <div *ngIf=\"toolbarConfig.textAlign\" class=\"ql-formats\">\n <span euiTooltip=\"{{ toolbarConfig.textAlign.label }}\">\n <select class=\"ql-align\" [attr.aria-label]=\"toolbarConfig.textAlign.label\">\n <option selected></option>\n <option value=\"center\"></option>\n <option value=\"right\"></option>\n <option value=\"justify\"></option>\n </select>\n </span>\n </div>\n <div\n *ngIf=\"toolbarConfig.orderedList || toolbarConfig.bulletList || toolbarConfig.indentLess || toolbarConfig.indentMore\"\n class=\"ql-formats\">\n <button\n *ngIf=\"toolbarConfig.orderedList\"\n class=\"ql-list\"\n value=\"ordered\"\n type=\"button\"\n [attr.aria-label]=\"toolbarConfig.orderedList.label\"\n euiTooltip=\"{{ toolbarConfig.orderedList.label }}\">\n </button>\n <button\n *ngIf=\"toolbarConfig.bulletList\"\n class=\"ql-list\"\n value=\"bullet\"\n type=\"button\"\n [attr.aria-label]=\"toolbarConfig.bulletList.label\"\n euiTooltip=\"{{ toolbarConfig.bulletList.label }}\">\n </button>\n <button\n type=\"button\"\n *ngIf=\"toolbarConfig.indentLess\"\n class=\"ql-indent\"\n value=\"-1\"\n [attr.aria-label]=\"toolbarConfig.indentLess.label\"\n euiTooltip=\"{{ toolbarConfig.indentLess.label }}\">\n </button>\n <button\n type=\"button\"\n *ngIf=\"toolbarConfig.indentMore\"\n class=\"ql-indent\"\n value=\"+1\"\n [attr.aria-label]=\"toolbarConfig.indentMore.label\"\n euiTooltip=\"{{ toolbarConfig.indentMore.label }}\">\n </button>\n </div>\n <div\n *ngIf=\"\n toolbarConfig.blockquote ||\n toolbarConfig.codeBlock ||\n toolbarConfig.link ||\n toolbarConfig.image ||\n toolbarConfig.imageUrl ||\n toolbarConfig.video ||\n toolbarConfig.table\n \"\n class=\"ql-formats\">\n <button\n *ngIf=\"toolbarConfig.blockquote\"\n class=\"ql-blockquote\"\n type=\"button\"\n [attr.aria-label]=\"toolbarConfig.blockquote.label\"\n euiTooltip=\"{{ toolbarConfig.blockquote.label }}\">\n </button>\n <button\n *ngIf=\"toolbarConfig.codeBlock\"\n class=\"ql-code-block\"\n type=\"button\"\n [attr.aria-label]=\"toolbarConfig.codeBlock.label\"\n euiTooltip=\"{{ toolbarConfig.codeBlock.label }}\">\n </button>\n <button\n *ngIf=\"toolbarConfig.link\"\n class=\"ql-link\"\n type=\"button\"\n [attr.aria-label]=\"toolbarConfig.link.label\"\n euiTooltip=\"{{ toolbarConfig.link.label }}\">\n </button>\n <button\n *ngIf=\"toolbarConfig.image\"\n class=\"ql-image\"\n type=\"button\"\n [attr.aria-label]=\"toolbarConfig.image.label\"\n euiTooltip=\"{{ toolbarConfig.image.label }}\">\n </button>\n <button\n type=\"button\"\n *ngIf=\"toolbarConfig.imageUrl\"\n [attr.aria-label]=\"toolbarConfig.imageUrl.label\"\n euiTooltip=\"{{ toolbarConfig.imageUrl.label }}\"\n (click)=\"imageUrlHandler()\">\n <eui-icon-svg icon=\"eui-ecl-image\" size=\"s\"></eui-icon-svg>\n </button>\n <button\n *ngIf=\"toolbarConfig.video\"\n class=\"ql-video\"\n type=\"button\"\n [attr.aria-label]=\"toolbarConfig.video.label\"\n euiTooltip=\"{{ toolbarConfig.video.label }}\">\n </button>\n <button\n type=\"button\"\n *ngIf=\"toolbarConfig.table\"\n [attr.aria-label]=\"toolbarConfig.table.label\"\n euiTooltip=\"{{ toolbarConfig.table.label }}\"\n (click)=\"insertTable()\">\n <eui-icon-svg icon=\"eui-ecl-spreadsheet\" size=\"s\"></eui-icon-svg>\n </button>\n </div>\n <div *ngIf=\"toolbarConfig.clean || toolbarConfig.delete\" class=\"ql-formats\">\n <button\n *ngIf=\"toolbarConfig.clean\"\n class=\"ql-clean\"\n type=\"button\"\n [attr.aria-label]=\"toolbarConfig.clean.label\"\n euiTooltip=\"{{ toolbarConfig.clean.label }}\">\n </button>\n <button\n type=\"button\"\n *ngIf=\"toolbarConfig.delete\"\n [attr.aria-label]=\"toolbarConfig.delete.label\"\n euiTooltip=\"{{ toolbarConfig.delete.label }}\"\n (click)=\"editorDeleteContent()\">\n <eui-icon-svg icon=\"eui-ecl-trash\" size=\"s\"></eui-icon-svg>\n </button>\n </div>\n <div *ngIf=\"toolbarConfig.undo || toolbarConfig.redo\" class=\"ql-formats\">\n <button\n type=\"button\"\n *ngIf=\"toolbarConfig.undo\"\n [attr.aria-label]=\"toolbarConfig.undo.label\"\n euiTooltip=\"{{ toolbarConfig.undo.label }}\"\n (click)=\"editorUndo()\">\n <eui-icon-svg icon=\"arrow-undo:outline\" size=\"s\"></eui-icon-svg>\n </button>\n <button\n type=\"button\"\n *ngIf=\"toolbarConfig.redo\"\n [attr.aria-label]=\"toolbarConfig.redo.label\"\n euiTooltip=\"{{ toolbarConfig.redo.label }}\"\n (click)=\"editorRedo()\">\n <eui-icon-svg icon=\"arrow-redo:outline\" size=\"s\"></eui-icon-svg>\n </button>\n </div>\n <div *ngIf=\"toolbarConfig.counters\" class=\"ql-formats\">\n <eui-editor-counters\n [hasCharactersCounter]=\"hasCharactersCounter\"\n [charactersCounter]=\"charactersCount\"\n [charactersLabel]=\"charactersCounterLabel\"\n [hasWordsCounter]=\"hasWordsCounter\"\n [wordsCounter]=\"wordsCount\"\n [wordsLabel]=\"wordsCounterLabel\"\n [attr.aria-label]=\"toolbarConfig.counters.label\"\n role=\"button\"\n euiTooltip=\"{{ toolbarConfig.counters.label }}\">\n </eui-editor-counters>\n </div>\n </div>\n <div *ngIf=\"euiEditorCustomToolbar\" quill-editor-toolbar>\n <ng-content select=\"euiEditorCustomToolbar\"></ng-content>\n </div>\n </quill-editor>\n<!-- READONLY MODE -->\n} @else {\n <eui-editor-html-view *ngIf=\"format === 'html'\" [content]=\"value\" [theme]=\"theme\"></eui-editor-html-view>\n <eui-editor-json-view *ngIf=\"format === 'json'\" [content]=\"jsonToHtmlContent\" [theme]=\"theme\"></eui-editor-json-view>\n}\n</ng-container>\n", styles: ["@charset \"UTF-8\";.qlbt-operation-menu .qlbt-operation-color-picker{padding:0 12px 10px!important}.eui-editor{--editor-base-font-size: calc(var(--eui-f-size-m) + 1px);--editor-base-line-height: 1.25;--editor-paragraph-spacer: var(--eui-s-m);--editor-lists-spacer: var(--eui-s-s);--picker-font-size: var(--eui-f-s)}.eui-editor .ql-container{box-sizing:border-box;font-size:var(--eui-f-size-base);height:100%;margin:0;position:relative;resize:vertical;white-space:pre-wrap;font:var(--eui-f-m)}.eui-editor .ql-container.ql-snow .ql-tooltip{align-items:center;display:flex;background:var(--eui-c-info-bg);box-shadow:var(--eui-sh-z-depth-1);left:50%!important;position:absolute;transform:translate(-50%,60%);width:75%}.eui-editor .ql-container.ql-snow .ql-tooltip.ql-hidden{display:none}.eui-editor .ql-container.ql-snow .ql-tooltip.ql-editing{align-items:center;display:flex;left:50%!important;position:absolute;transform:translate(-50%,60%);width:75%}.eui-editor .ql-container.ql-snow .ql-tooltip.ql-editing.ql-hidden{display:none}.eui-editor .ql-container.ql-snow .ql-tooltip.ql-editing input[type=text]{display:inline-block;width:100%}.eui-editor .ql-container.ql-snow .ql-tooltip.ql-flip{z-index:1}.eui-editor .ql-container.ql-snow a.ql-preview{max-width:100%;overflow-x:hidden;text-overflow:ellipsis;vertical-align:top;width:100%}.eui-editor .ql-toolbar{background-color:var(--eui-c-neutral-bg-light);border:var(--eui-bw-xs) solid var(--eui-c-neutral-lighter);padding:var(--eui-s-s);font:var(--eui-f-m);display:flex;flex-wrap:wrap;gap:var(--eui-s-s)}.eui-editor .ql-toolbar.ql-snow{box-sizing:border-box}.eui-editor .ql-toolbar.ql-snow .ql-formats{align-items:center;background-color:transparent;border:var(--eui-bw-xs) solid var(--eui-c-neutral-lighter);border-radius:var(--eui-br-m);display:inline-flex;font:var(--eui-f-m);margin-bottom:0;margin-right:0;vertical-align:middle}.eui-editor .ql-toolbar.ql-snow .ql-formats .ql-picker{align-items:center;color:var(--eui-c-neutral);display:inline-flex;height:var(--eui-s-2xl);position:relative;vertical-align:middle}.eui-editor .ql-toolbar.ql-snow .ql-formats .ql-picker:focus:not([readonly]){outline:2px solid var(--eui-c-focus)!important;outline-offset:-2px!important;transition:none}.eui-editor .ql-toolbar.ql-snow .ql-formats .ql-picker:focus-visible:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-editor .ql-toolbar.ql-snow .ql-formats .ql-picker [tabindex=\"0\"]:focus:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-editor .ql-toolbar.ql-snow .ql-formats .ql-picker:hover{background-color:var(--eui-c-neutral-bg-light);color:var(--eui-c-info)}.eui-editor .ql-toolbar.ql-snow .ql-formats .ql-picker .ql-picker-label{align-items:center;border-color:transparent;display:flex;font-size:var(--picker-font-size)}.eui-editor .ql-toolbar.ql-snow .ql-formats select{background-color:transparent}.eui-editor .ql-toolbar.ql-snow .ql-formats select:focus:not([readonly]){outline:2px solid var(--eui-c-focus)!important;outline-offset:-2px!important;transition:none}.eui-editor .ql-toolbar.ql-snow .ql-formats select:focus-visible:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-editor .ql-toolbar.ql-snow .ql-formats select [tabindex=\"0\"]:focus:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-editor .ql-toolbar.ql-snow .ql-formats button{align-items:center;background-color:transparent;border:var(--eui-bw-none) solid var(--eui-c-neutral-lighter);box-shadow:none;color:var(--eui-c-neutral-light);cursor:pointer;display:inline-flex;height:var(--eui-s-2xl);justify-content:center;padding:var(--eui-s-2xs);width:var(--eui-s-2xl)}.eui-editor .ql-toolbar.ql-snow .ql-formats button:focus:not([readonly]){outline:2px solid var(--eui-c-focus)!important;outline-offset:-2px!important;transition:none}.eui-editor .ql-toolbar.ql-snow .ql-formats button:focus-visible:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-editor .ql-toolbar.ql-snow .ql-formats button [tabindex=\"0\"]:focus:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-editor .ql-toolbar.ql-snow .ql-formats button:hover{background-color:var(--eui-c-primary-bg);color:var(--eui-c-info)}.eui-editor .ql-toolbar.ql-snow .ql-formats button.active,.eui-editor .ql-toolbar.ql-snow .ql-formats button.ql-active{background:var(--eui-c-accent);color:var(--eui-c-primary)}.eui-editor .ql-toolbar.ql-snow .ql-formats button:first-child{border-radius:var(--eui-br-m) 0 0 var(--eui-br-m)}.eui-editor .ql-toolbar.ql-snow .ql-formats button:last-child{border-radius:0 var(--eui-br-m) var(--eui-br-m) 0}.eui-editor .ql-toolbar.ql-snow .ql-formats button.editor-counters{align-items:center;cursor:auto;display:inline-flex;gap:var(--eui-s-xs);padding:0 var(--eui-s-xs);width:auto}.eui-editor .ql-toolbar.ql-snow .ql-formats button.editor-counters .editor-counters-chars-container,.eui-editor .ql-toolbar.ql-snow .ql-formats button.editor-counters .editor-counters-words-container{align-items:center;display:flex}.eui-editor .ql-toolbar.ql-snow .ql-formats button.editor-counters .editor-counters-words-container{border-left:1px solid var(--eui-c-neutral-lighter);height:60%}.eui-editor .ql-toolbar.ql-snow .ql-formats button.editor-counters .chars-counter,.eui-editor .ql-toolbar.ql-snow .ql-formats button.editor-counters .words-counter,.eui-editor .ql-toolbar.ql-snow .ql-formats button.editor-counters .bytes-counter{color:var(--eui-c-info);font:var(--eui-f-m-bold);margin-right:var(--eui-s-2xs)}.eui-editor .ql-toolbar.ql-snow .ql-formats button.editor-counters .chars-counter.chars-counter--error,.eui-editor .ql-toolbar.ql-snow .ql-formats button.editor-counters .words-counter.chars-counter--error,.eui-editor .ql-toolbar.ql-snow .ql-formats button.editor-counters .bytes-counter.chars-counter--error{color:var(--eui-c-danger)}.eui-editor .ql-toolbar.ql-snow .ql-formats button.editor-counters .words-counter,.eui-editor .ql-toolbar.ql-snow .ql-formats button.editor-counters .bytes-counter{margin-left:var(--eui-s-xs)}.eui-editor .ql-toolbar.ql-snow .ql-formats button.editor-counters .chars-label,.eui-editor .ql-toolbar.ql-snow .ql-formats button.editor-counters .words-label,.eui-editor .ql-toolbar.ql-snow .ql-formats button.editor-counters .bytes-label{color:var(--eui-c-neutral);font:var(--eui-f-xs-compact)}.eui-editor .ql-toolbar.ql-snow .ql-formats .ql-stroke{fill:none;stroke:var(--eui-c-neutral);stroke-linecap:round;stroke-linejoin:round;stroke-width:1px}.eui-editor .ql-toolbar.ql-snow .ql-size.ql-picker{height:var(--eui-s-xl);padding:var(--eui-s-2xs) 0;width:calc(7 * var(--eui-s-m))}.eui-editor .ql-toolbar.ql-snow .ql-size.ql-picker .ql-picker-label:before,.eui-editor .ql-toolbar.ql-snow .ql-size.ql-picker .ql-picker-item:before{content:\"Normal\"}.eui-editor .ql-toolbar.ql-snow .ql-size.ql-picker .ql-picker-label[data-value=small]:before,.eui-editor .ql-toolbar.ql-snow .ql-size.ql-picker .ql-picker-item[data-value=small]:before{content:\"Small\"}.eui-editor .ql-toolbar.ql-snow .ql-size.ql-picker .ql-picker-label[data-value=smaller]:before,.eui-editor .ql-toolbar.ql-snow .ql-size.ql-picker .ql-picker-item[data-value=smaller]:before{content:\"Smaller\"}.eui-editor .ql-toolbar.ql-snow .ql-size.ql-picker .ql-picker-label[data-value=smallest]:before,.eui-editor .ql-toolbar.ql-snow .ql-size.ql-picker .ql-picker-item[data-value=smallest]:before{content:\"Smallest\"}.eui-editor .ql-toolbar.ql-snow .ql-size.ql-picker .ql-picker-label[data-value=large]:before,.eui-editor .ql-toolbar.ql-snow .ql-size.ql-picker .ql-picker-item[data-value=large]:before{content:\"Large\"}.eui-editor .ql-toolbar.ql-snow .ql-size.ql-picker .ql-picker-label[data-value=huge]:before,.eui-editor .ql-toolbar.ql-snow .ql-size.ql-picker .ql-picker-item[data-value=huge]:before{content:\"Huge\"}.eui-editor .ql-toolbar.ql-snow .ql-size.ql-picker .ql-picker-item[data-value=small]:before,.eui-editor .ql-toolbar.ql-snow .ql-size.ql-picker .ql-size-small{font-size:var(--eui-f-s)}.eui-editor .ql-toolbar.ql-snow .ql-size.ql-picker .ql-picker-item[data-value=smaller]:before{font-size:var(--eui-f-xs)}.eui-editor .ql-toolbar.ql-snow .ql-size.ql-picker .ql-picker-item[data-value=smallest]:before{font-size:var(--eui-f-size-2xs)}.eui-editor .ql-toolbar.ql-snow .ql-size.ql-picker .ql-picker-item[data-value=large]:before,.eui-editor .ql-toolbar.ql-snow .ql-size.ql-picker .ql-size-large{font-size:var(--eui-f-xl)}.eui-editor .ql-toolbar.ql-snow .ql-size.ql-picker .ql-picker-item[data-value=huge]:before,.eui-editor .ql-toolbar.ql-snow .ql-size.ql-picker .ql-size-huge{font-size:var(--eui-f-size-4xl)}.eui-editor .ql-toolbar.ql-snow .ql-header.ql-picker{align-items:center;display:flex}.eui-editor .ql-toolbar.ql-snow .ql-header.ql-picker .ql-picker-label:before,.eui-editor .ql-toolbar.ql-snow .ql-header.ql-picker .ql-picker-item:before{content:\"Normal\"}.eui-editor .ql-toolbar.ql-snow .ql-header.ql-picker .ql-picker-label[data-value=\"1\"]:before,.eui-editor .ql-toolbar.ql-snow .ql-header.ql-picker .ql-picker-item[data-value=\"1\"]:before{content:\"Heading 1\"}.eui-editor .ql-toolbar.ql-snow .ql-header.ql-picker .ql-picker-label[data-value=\"2\"]:before,.eui-editor .ql-toolbar.ql-snow .ql-header.ql-picker .ql-picker-item[data-value=\"2\"]:before{content:\"Heading 2\"}.eui-editor .ql-toolbar.ql-snow .ql-header.ql-picker .ql-picker-label[data-value=\"3\"]:before,.eui-editor .ql-toolbar.ql-snow .ql-header.ql-picker .ql-picker-item[data-value=\"3\"]:before{content:\"Heading 3\"}.eui-editor .ql-toolbar.ql-snow .ql-header.ql-picker .ql-picker-label[data-value=\"4\"]:before,.eui-editor .ql-toolbar.ql-snow .ql-header.ql-picker .ql-picker-item[data-value=\"4\"]:before{content:\"Heading 4\"}.eui-editor .ql-toolbar.ql-snow .ql-header.ql-picker .ql-picker-label[data-value=\"5\"]:before,.eui-editor .ql-toolbar.ql-snow .ql-header.ql-picker .ql-picker-item[data-value=\"5\"]:before{content:\"Heading 5\"}.eui-editor .ql-toolbar.ql-snow .ql-header.ql-picker .ql-picker-label[data-value=\"6\"]:before,.eui-editor .ql-toolbar.ql-snow .ql-header.ql-picker .ql-picker-item[data-value=\"6\"]:before{content:\"Heading 6\"}.eui-editor .ql-toolbar.ql-snow .ql-header.ql-picker .ql-picker-item[data-value=\"1\"]:before{font:var(--eui-f-4xl)}.eui-editor .ql-toolbar.ql-snow .ql-header.ql-picker .ql-picker-item[data-value=\"2\"]:before{font:var(--eui-f-3xl)}.eui-editor .ql-toolbar.ql-snow .ql-header.ql-picker .ql-picker-item[data-value=\"3\"]:before{font:var(--eui-f-2xl)}.eui-editor .ql-toolbar.ql-snow .ql-header.ql-picker .ql-picker-item[data-value=\"4\"]:before{font:var(--eui-f-xl)}.eui-editor .ql-toolbar.ql-snow .ql-header.ql-picker .ql-picker-item[data-value=\"5\"]:before{font:var(--eui-f-l)}.eui-editor .ql-toolbar.ql-snow .ql-header.ql-picker .ql-picker-item[data-value=\"6\"]:before{font:var(--eui-f-m)}.eui-editor .ql-toolbar.ql-snow .ql-font.ql-picker{align-items:center;display:flex}.eui-editor .ql-toolbar.ql-snow .ql-font.ql-picker .ql-picker-label:before,.eui-editor .ql-toolbar.ql-snow .ql-font.ql-picker .ql-picker-item:before{content:\"Sans Serif\"}.eui-editor .ql-toolbar.ql-snow .ql-font.ql-picker .ql-picker-label[data-value=serif]:before,.eui-editor .ql-toolbar.ql-snow .ql-font.ql-picker .ql-picker-item[data-value=serif]:before{content:\"Serif\"}.eui-editor .ql-toolbar.ql-snow .ql-font.ql-picker .ql-picker-label[data-value=monospace]:before,.eui-editor .ql-toolbar.ql-snow .ql-font.ql-picker .ql-picker-item[data-value=monospace]:before{content:\"Monospace\"}.eui-editor .ql-toolbar.ql-snow .ql-font.ql-picker .ql-picker-item[data-value=sans-serif]:before{font-family:arial,sans-serif!important}.eui-editor .ql-toolbar.ql-snow .ql-font.ql-picker .ql-picker-item[data-value=serif]:before{font-family:times new roman,serif!important}.eui-editor .ql-toolbar.ql-snow .ql-font.ql-picker .ql-picker-item[data-value=monospace]:before{font-family:courier new,monospace!important}.eui-editor .ql-toolbar.ql-snow .ql-color-picker,.eui-editor .ql-toolbar.ql-snow .ql-icon-picker{height:var(--eui-s-2xl);width:var(--eui-s-2xl)}.eui-editor .ql-toolbar .eui-editor-custom-toolbar{display:inline-flex;margin:0;padding:0;vertical-align:middle}.eui-editor .ql-editor{box-sizing:border-box;height:100%;line-height:var(--editor-base-line-height);outline:none;overflow-y:auto;padding:var(--eui-s-s);-moz-tab-size:4;tab-size:4;text-align:left;white-space:inherit;word-break:normal;word-wrap:break-word;font:var(--eui-f-m)}.eui-editor .ql-editor h1{font:var(--eui-f-4xl)}.eui-editor .ql-editor h2{font:var(--eui-f-3xl)}.eui-editor .ql-editor h3{font:var(--eui-f-2xl)}.eui-editor .ql-editor h4{font:var(--eui-f-xl)}.eui-editor .ql-editor h5{font:var(--eui-f-l)}.eui-editor .ql-editor h6{font:var(--eui-f-m)}.eui-editor .ql-editor .h7{font:var(--eui-f-s)}.eui-editor .ql-editor .h8{font:var(--eui-f-xs)}.eui-editor .ql-editor .h9{font:var(--eui-f-2xs)}.eui-editor .ql-editor p{margin-bottom:var(--editor-paragraph-spacer)}.eui-editor .ql-editor p:first-child{margin-top:0}.eui-editor .ql-editor p:last-child{margin-bottom:0}.eui-editor .ql-editor em,.eui-editor .ql-editor i{font-style:italic!important}.eui-editor .ql-editor strong,.eui-editor .ql-editor b{font-weight:700!important}.eui-editor .ql-editor strong em,.eui-editor .ql-editor strong i,.eui-editor .ql-editor b em,.eui-editor .ql-editor b i{font-style:italic!important;font-weight:700!important}.eui-editor .ql-editor strong em u,.eui-editor .ql-editor strong i u,.eui-editor .ql-editor b em u,.eui-editor .ql-editor b i u{text-decoration:underline!important}.eui-editor .ql-editor blockquote{border-left:var(--eui-s-xs) solid var(--eui-c-neutral-light);margin-bottom:0;margin-top:0;padding-left:var(--eui-s-m)}.eui-editor .ql-editor code,.eui-editor .ql-editor pre{background-color:#f0f0f0;border-radius:var(--eui-br-m)}.eui-editor .ql-editor pre{margin-bottom:var(--eui-s-xs);margin-top:var(--eui-s-xs);padding:var(--eui-s-xs) var(--eui-s-m);white-space:pre-wrap}.eui-editor .ql-editor code{font-size:85%;padding:2px 4px;word-break:break-word}.eui-editor .ql-editor ol,.eui-editor .ql-editor ul{margin-bottom:var(--editor-lists-spacer)}.eui-editor .ql-editor ol{counter-reset:inherit;list-style:none}.eui-editor .ql-editor ol li{padding-left:var(--eui-s-s)}.eui-editor .ql-editor ol li[data-list=bullet]{list-style:none}.eui-editor .ql-editor ol li[data-list=bullet]>.ql-ui:before{content:\"\\2022\";font-size:var(--eui-f-xl);margin-left:calc(-2.125 * var(--eui-s-m));position:absolute;top:calc(-.75 * var(--eui-s-2xs))}.eui-editor .ql-editor ol li[data-list=ordered]{list-style:none}.eui-editor .ql-editor pre.ql-syntax{background-color:var(--eui-c-neutral);color:#f5f5f5;overflow:visible}.eui-editor .ql-editor iframe,.eui-editor .ql-editor img{display:inline-block;height:1;width:1}.eui-editor .ql-editor.ql-blank:before{left:var(--eui-s-m);position:absolute;right:0}.eui-editor .ql-editor p,.eui-editor .ql-editor label,.eui-editor .ql-editor .label,.eui-editor .ql-editor blockquote,.eui-editor .ql-editor abbr,.eui-editor .ql-editor mark,.eui-editor .ql-editor del{font-size:var(--editor-base-font-size)}.eui-editor.eui-editor--focused .ql-container{box-shadow:var(--eui-sh-z-depth-0)}.eui-editor.eui-editor--focused .ql-container:focus:not([readonly]){outline:2px solid var(--eui-c-focus)!important;outline-offset:-2px!important;transition:none}.eui-editor.eui-editor--focused .ql-container:focus-visible:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-editor.eui-editor--focused .ql-container [tabindex=\"0\"]:focus:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-editor.eui-editor--readonly .ql-container{border:var(--eui-bw-none)}.eui-editor.eui-editor--readonly .ql-editor{min-height:calc(var(--eui-s-2xl) + 2px);padding:0 0 var(--eui-s-m) 0}.eui-editor.eui-editor--readonly.eui-editor--empty .ql-container{border:var(--eui-bw-none);outline:1px dashed var(--eui-c-neutral-lighter)}.eui-editor.eui-editor--readonly.eui-editor--empty .ql-container:hover{outline:1px solid var(--eui-c-neutral-light)}.eui-editor-wrapper{position:relative}.eui-editor-wrapper .eui-editor{display:flex;flex-direction:column;height:100%;position:relative;width:100%}.eui-editor-wrapper .eui-editor .ql-container{background-color:var(--eui-c-white);border:var(--eui-bw-xs) solid #ccc;flex-grow:1;padding:.35rem}.eui-editor-wrapper .eui-editor .ql-container .ngx-quill-view{border:var(--eui-bw-none)}eui-editor{position:relative;width:100%}eui-editor.ng-invalid.ng-touched .eui-editor:not(.eui-editor--readonly) .ql-container{outline:1px solid var(--eui-c-danger)}.ql-container .qlbt-selection-line.qlbt-selection-line-left:before{background-color:#0589f3;border-radius:var(--eui-br-m);content:\"\";height:5px;left:-2px;position:absolute;top:-2px;width:5px}.ql-container .qlbt-selection-line.qlbt-selection-line-right:before{background-color:#0589f3;border-radius:var(--eui-br-m);bottom:-3px;content:\"\";height:5px;position:absolute;right:-2px;width:5px}.quill-better-table-wrapper{overflow-x:auto}table.quill-better-table{border-collapse:collapse;table-layout:fixed}table.quill-better-table td{border:var(--eui-bw-xs) solid #000;padding:2px 5px}.qlbt-operation-menu{background-color:#fff;box-shadow:0 2px 8px #00000026;font-size:14px;overflow:hidden;z-index:100}.qlbt-operation-menu .qlbt-operation-menu-dividing{background-color:#efefef;height:1px}.qlbt-operation-menu .qlbt-operation-menu-subtitle{color:#999;font-size:14px;padding:5px 16px}.qlbt-operation-menu .qlbt-operation-color-picker{align-items:center;background-color:#fff;display:flex;flex-wrap:wrap;overflow:hidden;padding:0 16px 10px}.qlbt-operation-menu .qlbt-operation-color-picker .qlbt-operation-color-picker-item{border:var(--eui-bw-xs) solid #595959;cursor:pointer;height:20px;margin-bottom:5px;margin-right:5px;width:20px}.qlbt-operation-menu .qlbt-operation-menu-item{align-items:center;background-color:#fff;color:#595959;cursor:pointer;display:flex;overflow:hidden;padding:10px 16px;text-overflow:ellipsis}.qlbt-operation-menu .qlbt-operation-menu-item:hover{background-color:#efefef}.qlbt-operation-menu .qlbt-operation-menu-item .qlbt-operation-menu-icon{font-size:0;height:20px;margin-right:8px;width:20px}.qlbt-col-tool{align-items:flex-end;display:flex;height:16px;overflow:hidden;position:absolute;z-index:99}.qlbt-col-tool .qlbt-col-tool-cell{background-color:#fff;border-bottom:1px solid #000;border-right:1px solid #000;border-top:1px solid #000;position:relative}.qlbt-col-tool .qlbt-col-tool-cell:first-child{border-left:1px solid #000}.qlbt-col-tool .qlbt-col-tool-cell-holder{background-color:transparent;bottom:0;cursor:ew-resize;position:absolute;right:-1px;top:0;width:1px;z-index:3}.qlbt-col-tool .qlbt-col-tool-cell-holder:hover{background-color:#0589f3}.qlbt-col-tool .qlbt-col-tool-cell-holder:before{content:\"\";display:block;height:100%;left:-6px;position:absolute;top:0;width:8px}.qlbt-col-tool .qlbt-col-tool-cell-holder:after{content:\"\";display:block;height:100%;position:absolute;right:-6px;top:0;width:8px}\n"], dependencies: [{ kind: "directive", type: i0.forwardRef(() => i4.NgForOf), selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i0.forwardRef(() => i4.NgIf), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i0.forwardRef(() => i2.NgSelectOption), selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i0.forwardRef(() => i2.ɵNgSelectMultipleOption), selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i0.forwardRef(() => i2.NgControlStatus), selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i0.forwardRef(() => i2.FormControlDirective), selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i0.forwardRef(() => i5.EuiTooltipDirective), selector: "[euiTooltip]", inputs: ["e2eAttr", "showDelay", "hideDelay", "contentAlignment", "position", "isDisabled", "euiTooltip", "euiTooltipPrimary", "euiTooltipSecondary", "euiTooltipInfo", "euiTooltipSuccess", "euiTooltipWarning", "euiTooltipDanger", "euiTooltipAccent"], exportAs: ["euiTooltip"] }, { kind: "component", type: i0.forwardRef(() => i3.QuillEditorComponent), selector: "quill-editor", inputs: ["id", "format", "theme", "modules", "debug", "placeholder", "maxLength", "minLength", "formats", "customToolbarPosition", "styles", "scrollingContainer", "bounds", "customOptions", "trackChanges", "hasImageFeature", "readOnly", "required", "sanitize", "strict", "preserveWhitespace", "valueGetter", "valueSetter"], outputs: ["onEditorCreated", "onContentChanged", "onSelectionChanged", "onFocus", "onBlur"] }, { kind: "component", type: i0.forwardRef(() => i6.EuiIconSvgComponent), selector: "eui-icon-svg, span[euiIconSvg], i[euiIconSvg]", inputs: ["icon", "fillColor", "set", "size", "style", "iconUrl", "transform", "euiVariant", "aria-label", "ariaHidden", "focusable", "isLoading", "isInputIcon", "euiStart", "euiEnd"] }, { kind: "component", type: i0.forwardRef(() => i7.EuiEditorJsonViewComponent), selector: "eui-editor-json-view", inputs: ["theme", "content"] }, { kind: "component", type: i0.forwardRef(() => i8.EuiEditorHtmlViewComponent), selector: "eui-editor-html-view", inputs: ["content", "theme"] }, { kind: "component", type: i0.forwardRef(() => i9.EuiEditorCountersComponent), selector: "eui-editor-counters", inputs: ["charactersCounter", "charactersLabel", "wordsCounter", "wordsLabel", "isMaxLengthValid", "hasCharactersCounter", "hasWordsCounter"] }, { kind: "pipe", type: i0.forwardRef(() => ClassFilterPipe), name: "classFilter" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
421
421
|
}
|
422
422
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: EuiEditorComponent, decorators: [{
|
423
423
|
type: Component,
|
424
424
|
args: [{ selector: 'eui-editor', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
425
425
|
// TODO: Check to change the providing way. Provide with injector reference
|
426
426
|
EuiDialogService,
|
427
|
-
], template: "<ng-container *ngIf=\"readyToRender\">\n@if (!isReadOnly) {\n <quill-editor\n [id]=\"generatedId\"\n class=\"{{ class | classFilter }}\"\n [class.eui-editor--focused]=\"isFocused\"\n [format]=\"format\"\n [formats]=\"formats\"\n [sanitize]=\"true\"\n [modules]=\"modules\"\n [theme]=\"theme\"\n [placeholder]=\"placeholder\"\n [customToolbarPosition]=\"customToolbarPosition\"\n [formControl]=\"formControl\"\n [debug]=\"debug\"\n [tabindex]=\"tabindex\"\n [preserveWhitespace]=\"true\"\n [hasImageFeature]=\"hasImageFeature\"\n (onEditorCreated)=\"_onEditorCreated($event)\"\n (onEditorChanged)=\"_onEditorChanged($event)\"\n (onContentChanged)=\"_onContentChanged($event)\"\n (onSelectionChanged)=\"_onSelectionChanged($event)\"\n (onFocus)=\"_onFocus($event)\"\n (onBlur)=\"_onBlur($event)\">\n <div *ngIf=\"!euiEditorCustomToolbar\" quill-editor-toolbar>\n <div\n *ngIf=\"toolbarConfig.headings\"\n class=\"ql-formats\"\n role=\"application\"\n aria-label=\"Select headings style\"\n euiTooltip=\"{{ toolbarConfig.headings.label }}\">\n <select class=\"ql-header\" [attr.aria-label]=\"toolbarConfig.headings.label\">\n <option value=\"{{ value }}\" *ngFor=\"let value of toolbarConfig.headings.options\">Heading {{ value }}</option>\n <option selected>Normal</option>\n </select>\n </div>\n <div\n *ngIf=\"toolbarConfig.font\"\n class=\"ql-formats\"\n role=\"application\"\n aria-label=\"Select font style\"\n euiTooltip=\"{{ toolbarConfig.font.label }}\">\n <select class=\"ql-font\" [attr.aria-label]=\"toolbarConfig.font.label\">\n <option selected>Sans Serif</option>\n <option value=\"serif\">Serif</option>\n <option value=\"monospace\">Monospace</option>\n </select>\n </div>\n <div *ngIf=\"toolbarConfig.bold || toolbarConfig.italic || toolbarConfig.underline || toolbarConfig.strike\" class=\"ql-formats\">\n <button\n *ngIf=\"toolbarConfig.bold\"\n class=\"ql-bold\"\n type=\"button\"\n [attr.aria-label]=\"toolbarConfig.bold.label\"\n euiTooltip=\"{{ toolbarConfig.bold.label }}\">\n </button>\n <button\n *ngIf=\"toolbarConfig.italic\"\n class=\"ql-italic\"\n type=\"button\"\n [attr.aria-label]=\"toolbarConfig.italic.label\"\n euiTooltip=\"{{ toolbarConfig.italic.label }}\">\n </button>\n <button\n *ngIf=\"toolbarConfig.underline\"\n class=\"ql-underline\"\n type=\"button\"\n [attr.aria-label]=\"toolbarConfig.underline.label\"\n euiTooltip=\"{{ toolbarConfig.underline.label }}\">\n </button>\n <button\n *ngIf=\"toolbarConfig.strike\"\n class=\"ql-strike\"\n type=\"button\"\n [attr.aria-label]=\"toolbarConfig.strike.label\"\n euiTooltip=\"{{ toolbarConfig.strike.label }}\">\n </button>\n </div>\n <div *ngIf=\"toolbarConfig.fontColor || toolbarConfig.fontBackground\" class=\"ql-formats\">\n <span *ngIf=\"toolbarConfig.fontColor\" euiTooltip=\"{{ toolbarConfig.fontColor.label }}\">\n <select class=\"ql-color\" [attr.aria-label]=\"toolbarConfig.fontColor.label\"></select>\n </span>\n <span *ngIf=\"toolbarConfig.fontBackground\" euiTooltip=\"{{ toolbarConfig.fontBackground.label }}\">\n <select class=\"ql-background\" [attr.aria-label]=\"toolbarConfig.fontBackground.label\"></select>\n </span>\n </div>\n <div *ngIf=\"toolbarConfig.subscript || toolbarConfig.superscript\" class=\"ql-formats\">\n <button\n *ngIf=\"toolbarConfig.subscript\"\n class=\"ql-script\"\n value=\"sub\"\n type=\"button\"\n [attr.aria-label]=\"toolbarConfig.subscript.label\"\n euiTooltip=\"{{ toolbarConfig.subscript.label }}\">\n </button>\n <button\n *ngIf=\"toolbarConfig.superscript\"\n class=\"ql-script\"\n value=\"super\"\n type=\"button\"\n [attr.aria-label]=\"toolbarConfig.superscript.label\"\n euiTooltip=\"{{ toolbarConfig.superscript.label }}\">\n </button>\n </div>\n <div *ngIf=\"toolbarConfig.textAlign\" class=\"ql-formats\">\n <span euiTooltip=\"{{ toolbarConfig.textAlign.label }}\">\n <select class=\"ql-align\" [attr.aria-label]=\"toolbarConfig.textAlign.label\">\n <option selected></option>\n <option value=\"center\"></option>\n <option value=\"right\"></option>\n <option value=\"justify\"></option>\n </select>\n </span>\n </div>\n <div\n *ngIf=\"toolbarConfig.orderedList || toolbarConfig.bulletList || toolbarConfig.indentLess || toolbarConfig.indentMore\"\n class=\"ql-formats\">\n <button\n *ngIf=\"toolbarConfig.orderedList\"\n class=\"ql-list\"\n value=\"ordered\"\n type=\"button\"\n [attr.aria-label]=\"toolbarConfig.orderedList.label\"\n euiTooltip=\"{{ toolbarConfig.orderedList.label }}\">\n </button>\n <button\n *ngIf=\"toolbarConfig.bulletList\"\n class=\"ql-list\"\n value=\"bullet\"\n type=\"button\"\n [attr.aria-label]=\"toolbarConfig.bulletList.label\"\n euiTooltip=\"{{ toolbarConfig.bulletList.label }}\">\n </button>\n <button\n type=\"button\"\n *ngIf=\"toolbarConfig.indentLess\"\n class=\"ql-indent\"\n value=\"-1\"\n [attr.aria-label]=\"toolbarConfig.indentLess.label\"\n euiTooltip=\"{{ toolbarConfig.indentLess.label }}\">\n </button>\n <button\n type=\"button\"\n *ngIf=\"toolbarConfig.indentMore\"\n class=\"ql-indent\"\n value=\"+1\"\n [attr.aria-label]=\"toolbarConfig.indentMore.label\"\n euiTooltip=\"{{ toolbarConfig.indentMore.label }}\">\n </button>\n </div>\n <div\n *ngIf=\"\n toolbarConfig.blockquote ||\n toolbarConfig.codeBlock ||\n toolbarConfig.link ||\n toolbarConfig.image ||\n toolbarConfig.imageUrl ||\n toolbarConfig.video ||\n toolbarConfig.table\n \"\n class=\"ql-formats\">\n <button\n *ngIf=\"toolbarConfig.blockquote\"\n class=\"ql-blockquote\"\n type=\"button\"\n [attr.aria-label]=\"toolbarConfig.blockquote.label\"\n euiTooltip=\"{{ toolbarConfig.blockquote.label }}\">\n </button>\n <button\n *ngIf=\"toolbarConfig.codeBlock\"\n class=\"ql-code-block\"\n type=\"button\"\n [attr.aria-label]=\"toolbarConfig.codeBlock.label\"\n euiTooltip=\"{{ toolbarConfig.codeBlock.label }}\">\n </button>\n <button\n *ngIf=\"toolbarConfig.link\"\n class=\"ql-link\"\n type=\"button\"\n [attr.aria-label]=\"toolbarConfig.link.label\"\n euiTooltip=\"{{ toolbarConfig.link.label }}\">\n </button>\n <button\n *ngIf=\"toolbarConfig.image\"\n class=\"ql-image\"\n type=\"button\"\n [attr.aria-label]=\"toolbarConfig.image.label\"\n euiTooltip=\"{{ toolbarConfig.image.label }}\">\n </button>\n <button\n type=\"button\"\n *ngIf=\"toolbarConfig.imageUrl\"\n [attr.aria-label]=\"toolbarConfig.imageUrl.label\"\n euiTooltip=\"{{ toolbarConfig.imageUrl.label }}\"\n (click)=\"imageUrlHandler()\">\n <eui-icon-svg icon=\"eui-ecl-image\"></eui-icon-svg>\n </button>\n <button\n *ngIf=\"toolbarConfig.video\"\n class=\"ql-video\"\n type=\"button\"\n [attr.aria-label]=\"toolbarConfig.video.label\"\n euiTooltip=\"{{ toolbarConfig.video.label }}\">\n </button>\n <button\n type=\"button\"\n *ngIf=\"toolbarConfig.table\"\n [attr.aria-label]=\"toolbarConfig.table.label\"\n euiTooltip=\"{{ toolbarConfig.table.label }}\"\n (click)=\"insertTable()\">\n <eui-icon-svg icon=\"eui-ecl-spreadsheet\"></eui-icon-svg>\n </button>\n </div>\n <div *ngIf=\"toolbarConfig.clean || toolbarConfig.delete\" class=\"ql-formats\">\n <button\n *ngIf=\"toolbarConfig.clean\"\n class=\"ql-clean\"\n type=\"button\"\n [attr.aria-label]=\"toolbarConfig.clean.label\"\n euiTooltip=\"{{ toolbarConfig.clean.label }}\">\n </button>\n <button\n type=\"button\"\n *ngIf=\"toolbarConfig.delete\"\n [attr.aria-label]=\"toolbarConfig.delete.label\"\n euiTooltip=\"{{ toolbarConfig.delete.label }}\"\n (click)=\"editorDeleteContent()\">\n <eui-icon-svg icon=\"eui-ecl-trash\"></eui-icon-svg>\n </button>\n </div>\n <div *ngIf=\"toolbarConfig.undo || toolbarConfig.redo\" class=\"ql-formats\">\n <button\n type=\"button\"\n *ngIf=\"toolbarConfig.undo\"\n [attr.aria-label]=\"toolbarConfig.undo.label\"\n euiTooltip=\"{{ toolbarConfig.undo.label }}\"\n (click)=\"editorUndo()\">\n <eui-icon-svg icon=\"arrow-undo:sharp\"></eui-icon-svg>\n </button>\n <button\n type=\"button\"\n *ngIf=\"toolbarConfig.redo\"\n [attr.aria-label]=\"toolbarConfig.redo.label\"\n euiTooltip=\"{{ toolbarConfig.redo.label }}\"\n (click)=\"editorRedo()\">\n <eui-icon-svg icon=\"arrow-redo:sharp\"></eui-icon-svg>\n </button>\n </div>\n <div *ngIf=\"toolbarConfig.counters\" class=\"ql-formats\">\n <eui-editor-counters\n [hasCharactersCounter]=\"hasCharactersCounter\"\n [charactersCounter]=\"charactersCount\"\n [charactersLabel]=\"charactersCounterLabel\"\n [hasWordsCounter]=\"hasWordsCounter\"\n [wordsCounter]=\"wordsCount\"\n [wordsLabel]=\"wordsCounterLabel\"\n [attr.aria-label]=\"toolbarConfig.counters.label\"\n role=\"button\"\n euiTooltip=\"{{ toolbarConfig.counters.label }}\">\n </eui-editor-counters>\n </div>\n </div>\n <div *ngIf=\"euiEditorCustomToolbar\" quill-editor-toolbar>\n <ng-content select=\"euiEditorCustomToolbar\"></ng-content>\n </div>\n </quill-editor>\n<!-- READONLY MODE -->\n} @else {\n <eui-editor-html-view *ngIf=\"format === 'html'\" [content]=\"value\" [theme]=\"theme\"></eui-editor-html-view>\n <eui-editor-json-view *ngIf=\"format === 'json'\" [content]=\"jsonToHtmlContent\" [theme]=\"theme\"></eui-editor-json-view>\n}\n</ng-container>\n", styles: ["@charset \"UTF-8\";.qlbt-operation-menu .qlbt-operation-color-picker{padding:0 12px 10px!important}.eui-editor{--editor-base-font-size: calc(var(--eui-f-size-m) + 1px);--editor-base-line-height: 1.25;--editor-paragraph-spacer: var(--eui-s-m);--editor-lists-spacer: var(--eui-s-s);--picker-font-size: var(--eui-f-s);--picker-height: var(--eui-s-xl);--picker-width: calc(6 * var(--eui-s-m));--button-height: var(--eui-s-xl);--button-width: var(--eui-s-xl)}.eui-editor .ql-container{box-sizing:border-box;font-size:var(--eui-f-size-base);height:100%;margin:0;position:relative;resize:vertical;white-space:pre-wrap;font:var(--eui-f-m)}.eui-editor .ql-container.ql-snow .ql-tooltip{align-items:center;display:flex;background:var(--eui-c-info-bg);box-shadow:var(--eui-sh-z-depth-1);left:50%!important;position:absolute;transform:translate(-50%,60%);width:75%}.eui-editor .ql-container.ql-snow .ql-tooltip.ql-hidden{display:none}.eui-editor .ql-container.ql-snow .ql-tooltip.ql-editing{align-items:center;display:flex;left:50%!important;position:absolute;transform:translate(-50%,60%);width:75%}.eui-editor .ql-container.ql-snow .ql-tooltip.ql-editing.ql-hidden{display:none}.eui-editor .ql-container.ql-snow .ql-tooltip.ql-editing input[type=text]{display:inline-block;width:100%}.eui-editor .ql-container.ql-snow .ql-tooltip.ql-flip{z-index:1}.eui-editor .ql-container.ql-snow a.ql-preview{max-width:100%;overflow-x:hidden;text-overflow:ellipsis;vertical-align:top;width:100%}.eui-editor .ql-toolbar{background-color:var(--eui-c-neutral-bg-light);border:var(--eui-bw-xs) solid var(--eui-c-neutral-lighter);padding:var(--eui-s-xs) var(--eui-s-xs) 0 var(--eui-s-xs);font:var(--eui-f-m)}.eui-editor .ql-toolbar.ql-snow{box-sizing:border-box}.eui-editor .ql-toolbar.ql-snow .ql-formats{align-items:center;background-color:transparent;border:var(--eui-bw-xs) solid var(--eui-c-neutral-lighter);border-radius:var(--eui-br-m);display:inline-flex;margin-bottom:var(--eui-s-xs);margin-right:var(--eui-s-xs);vertical-align:middle}.eui-editor .ql-toolbar.ql-snow .ql-formats .ql-picker{align-items:center;color:var(--eui-c-neutral);display:inline-flex;height:var(--picker-height);max-height:var(--picker-height);position:relative;vertical-align:middle}.eui-editor .ql-toolbar.ql-snow .ql-formats .ql-picker:focus:not([readonly]){outline:2px solid var(--eui-c-focus)!important;outline-offset:-2px!important;transition:none}.eui-editor .ql-toolbar.ql-snow .ql-formats .ql-picker:focus-visible:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-editor .ql-toolbar.ql-snow .ql-formats .ql-picker [tabindex=\"0\"]:focus:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-editor .ql-toolbar.ql-snow .ql-formats .ql-picker:hover{background-color:var(--eui-c-neutral-bg-light);color:var(--eui-c-info)}.eui-editor .ql-toolbar.ql-snow .ql-formats .ql-picker .ql-picker-label{align-items:center;border-color:transparent;display:flex;font-size:var(--picker-font-size)}.eui-editor .ql-toolbar.ql-snow .ql-formats select{background-color:transparent}.eui-editor .ql-toolbar.ql-snow .ql-formats select:focus:not([readonly]){outline:2px solid var(--eui-c-focus)!important;outline-offset:-2px!important;transition:none}.eui-editor .ql-toolbar.ql-snow .ql-formats select:focus-visible:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-editor .ql-toolbar.ql-snow .ql-formats select [tabindex=\"0\"]:focus:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-editor .ql-toolbar.ql-snow .ql-formats button{align-items:center;background-color:transparent;border:var(--eui-bw-none) solid var(--eui-c-neutral-lighter);box-shadow:none;color:var(--eui-c-neutral-light);cursor:pointer;display:inline-flex;height:var(--button-height);justify-content:center;min-width:var(--button-width)}.eui-editor .ql-toolbar.ql-snow .ql-formats button:focus:not([readonly]){outline:2px solid var(--eui-c-focus)!important;outline-offset:-2px!important;transition:none}.eui-editor .ql-toolbar.ql-snow .ql-formats button:focus-visible:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-editor .ql-toolbar.ql-snow .ql-formats button [tabindex=\"0\"]:focus:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-editor .ql-toolbar.ql-snow .ql-formats button:hover{background-color:var(--eui-c-neutral-bg-light);color:var(--eui-c-info)}.eui-editor .ql-toolbar.ql-snow .ql-formats button.active,.eui-editor .ql-toolbar.ql-snow .ql-formats button.ql-active{background:var(--eui-c-accent);color:var(--eui-c-primary)}.eui-editor .ql-toolbar.ql-snow .ql-formats button:first-child{border-radius:var(--eui-br-m) 0 0 var(--eui-br-m)}.eui-editor .ql-toolbar.ql-snow .ql-formats button:last-child{border-radius:0 var(--eui-br-m) var(--eui-br-m) 0}.eui-editor .ql-toolbar.ql-snow .ql-formats button.editor-counters{align-items:center;cursor:auto;display:inline-flex;width:auto}.eui-editor .ql-toolbar.ql-snow .ql-formats button.editor-counters .chars-counter,.eui-editor .ql-toolbar.ql-snow .ql-formats button.editor-counters .words-counter,.eui-editor .ql-toolbar.ql-snow .ql-formats button.editor-counters .bytes-counter{color:var(--eui-c-info);font:var(--eui-f-s-bold)}.eui-editor .ql-toolbar.ql-snow .ql-formats button.editor-counters .chars-counter.chars-counter--error,.eui-editor .ql-toolbar.ql-snow .ql-formats button.editor-counters .words-counter.chars-counter--error,.eui-editor .ql-toolbar.ql-snow .ql-formats button.editor-counters .bytes-counter.chars-counter--error{color:var(--eui-c-danger)}.eui-editor .ql-toolbar.ql-snow .ql-formats button.editor-counters .chars-label,.eui-editor .ql-toolbar.ql-snow .ql-formats button.editor-counters .words-label,.eui-editor .ql-toolbar.ql-snow .ql-formats button.editor-counters .bytes-label{color:var(--eui-c-neutral);font-size:var(--eui-f-xs)}.eui-editor .ql-toolbar.ql-snow .ql-formats .ql-stroke{fill:none;stroke:#444;stroke-linecap:round;stroke-linejoin:round;stroke-width:1px}.eui-editor .ql-toolbar.ql-snow .ql-size.ql-picker{height:var(--eui-s-xl);padding:var(--eui-s-2xs) 0;width:calc(7 * var(--eui-s-m))}.eui-editor .ql-toolbar.ql-snow .ql-size.ql-picker .ql-picker-label:before,.eui-editor .ql-toolbar.ql-snow .ql-size.ql-picker .ql-picker-item:before{content:\"Normal\"}.eui-editor .ql-toolbar.ql-snow .ql-size.ql-picker .ql-picker-label[data-value=small]:before,.eui-editor .ql-toolbar.ql-snow .ql-size.ql-picker .ql-picker-item[data-value=small]:before{content:\"Small\"}.eui-editor .ql-toolbar.ql-snow .ql-size.ql-picker .ql-picker-label[data-value=smaller]:before,.eui-editor .ql-toolbar.ql-snow .ql-size.ql-picker .ql-picker-item[data-value=smaller]:before{content:\"Smaller\"}.eui-editor .ql-toolbar.ql-snow .ql-size.ql-picker .ql-picker-label[data-value=smallest]:before,.eui-editor .ql-toolbar.ql-snow .ql-size.ql-picker .ql-picker-item[data-value=smallest]:before{content:\"Smallest\"}.eui-editor .ql-toolbar.ql-snow .ql-size.ql-picker .ql-picker-label[data-value=large]:before,.eui-editor .ql-toolbar.ql-snow .ql-size.ql-picker .ql-picker-item[data-value=large]:before{content:\"Large\"}.eui-editor .ql-toolbar.ql-snow .ql-size.ql-picker .ql-picker-label[data-value=huge]:before,.eui-editor .ql-toolbar.ql-snow .ql-size.ql-picker .ql-picker-item[data-value=huge]:before{content:\"Huge\"}.eui-editor .ql-toolbar.ql-snow .ql-size.ql-picker .ql-picker-item[data-value=small]:before,.eui-editor .ql-toolbar.ql-snow .ql-size.ql-picker .ql-size-small{font-size:var(--eui-f-s)}.eui-editor .ql-toolbar.ql-snow .ql-size.ql-picker .ql-picker-item[data-value=smaller]:before{font-size:var(--eui-f-xs)}.eui-editor .ql-toolbar.ql-snow .ql-size.ql-picker .ql-picker-item[data-value=smallest]:before{font-size:var(--eui-f-size-2xs)}.eui-editor .ql-toolbar.ql-snow .ql-size.ql-picker .ql-picker-item[data-value=large]:before,.eui-editor .ql-toolbar.ql-snow .ql-size.ql-picker .ql-size-large{font-size:var(--eui-f-xl)}.eui-editor .ql-toolbar.ql-snow .ql-size.ql-picker .ql-picker-item[data-value=huge]:before,.eui-editor .ql-toolbar.ql-snow .ql-size.ql-picker .ql-size-huge{font-size:var(--eui-f-size-4xl)}.eui-editor .ql-toolbar.ql-snow .ql-header.ql-picker{align-items:center;display:flex;height:var(--picker-height);width:var(--picker-width)}.eui-editor .ql-toolbar.ql-snow .ql-header.ql-picker .ql-picker-label:before,.eui-editor .ql-toolbar.ql-snow .ql-header.ql-picker .ql-picker-item:before{content:\"Normal\"}.eui-editor .ql-toolbar.ql-snow .ql-header.ql-picker .ql-picker-label[data-value=\"1\"]:before,.eui-editor .ql-toolbar.ql-snow .ql-header.ql-picker .ql-picker-item[data-value=\"1\"]:before{content:\"Heading 1\"}.eui-editor .ql-toolbar.ql-snow .ql-header.ql-picker .ql-picker-label[data-value=\"2\"]:before,.eui-editor .ql-toolbar.ql-snow .ql-header.ql-picker .ql-picker-item[data-value=\"2\"]:before{content:\"Heading 2\"}.eui-editor .ql-toolbar.ql-snow .ql-header.ql-picker .ql-picker-label[data-value=\"3\"]:before,.eui-editor .ql-toolbar.ql-snow .ql-header.ql-picker .ql-picker-item[data-value=\"3\"]:before{content:\"Heading 3\"}.eui-editor .ql-toolbar.ql-snow .ql-header.ql-picker .ql-picker-label[data-value=\"4\"]:before,.eui-editor .ql-toolbar.ql-snow .ql-header.ql-picker .ql-picker-item[data-value=\"4\"]:before{content:\"Heading 4\"}.eui-editor .ql-toolbar.ql-snow .ql-header.ql-picker .ql-picker-label[data-value=\"5\"]:before,.eui-editor .ql-toolbar.ql-snow .ql-header.ql-picker .ql-picker-item[data-value=\"5\"]:before{content:\"Heading 5\"}.eui-editor .ql-toolbar.ql-snow .ql-header.ql-picker .ql-picker-label[data-value=\"6\"]:before,.eui-editor .ql-toolbar.ql-snow .ql-header.ql-picker .ql-picker-item[data-value=\"6\"]:before{content:\"Heading 6\"}.eui-editor .ql-toolbar.ql-snow .ql-header.ql-picker .ql-picker-item[data-value=\"1\"]:before{font:var(--eui-f-4xl)}.eui-editor .ql-toolbar.ql-snow .ql-header.ql-picker .ql-picker-item[data-value=\"2\"]:before{font:var(--eui-f-3xl)}.eui-editor .ql-toolbar.ql-snow .ql-header.ql-picker .ql-picker-item[data-value=\"3\"]:before{font:var(--eui-f-2xl)}.eui-editor .ql-toolbar.ql-snow .ql-header.ql-picker .ql-picker-item[data-value=\"4\"]:before{font:var(--eui-f-xl)}.eui-editor .ql-toolbar.ql-snow .ql-header.ql-picker .ql-picker-item[data-value=\"5\"]:before{font:var(--eui-f-l)}.eui-editor .ql-toolbar.ql-snow .ql-header.ql-picker .ql-picker-item[data-value=\"6\"]:before{font:var(--eui-f-m)}.eui-editor .ql-toolbar.ql-snow .ql-font.ql-picker{align-items:center;display:flex;height:var(--picker-height);width:var(--picker-width)}.eui-editor .ql-toolbar.ql-snow .ql-font.ql-picker .ql-picker-label:before,.eui-editor .ql-toolbar.ql-snow .ql-font.ql-picker .ql-picker-item:before{content:\"Sans Serif\"}.eui-editor .ql-toolbar.ql-snow .ql-font.ql-picker .ql-picker-label[data-value=serif]:before,.eui-editor .ql-toolbar.ql-snow .ql-font.ql-picker .ql-picker-item[data-value=serif]:before{content:\"Serif\"}.eui-editor .ql-toolbar.ql-snow .ql-font.ql-picker .ql-picker-label[data-value=monospace]:before,.eui-editor .ql-toolbar.ql-snow .ql-font.ql-picker .ql-picker-item[data-value=monospace]:before{content:\"Monospace\"}.eui-editor .ql-toolbar.ql-snow .ql-font.ql-picker .ql-picker-item[data-value=sans-serif]:before{font-family:arial,sans-serif!important}.eui-editor .ql-toolbar.ql-snow .ql-font.ql-picker .ql-picker-item[data-value=serif]:before{font-family:times new roman,serif!important}.eui-editor .ql-toolbar.ql-snow .ql-font.ql-picker .ql-picker-item[data-value=monospace]:before{font-family:courier new,monospace!important}.eui-editor .ql-toolbar.ql-snow .ql-color-picker{width:var(--eui-s-xl)}.eui-editor .ql-toolbar .eui-editor-custom-toolbar{display:inline-flex;margin:0;padding:0;vertical-align:middle}.eui-editor .ql-editor{box-sizing:border-box;height:100%;line-height:var(--editor-base-line-height);outline:none;overflow-y:auto;padding:var(--eui-s-s);-moz-tab-size:4;tab-size:4;text-align:left;white-space:inherit;word-break:normal;word-wrap:break-word;font:var(--eui-f-m)}.eui-editor .ql-editor h1{font:var(--eui-f-4xl)}.eui-editor .ql-editor h2{font:var(--eui-f-3xl)}.eui-editor .ql-editor h3{font:var(--eui-f-2xl)}.eui-editor .ql-editor h4{font:var(--eui-f-xl)}.eui-editor .ql-editor h5{font:var(--eui-f-l)}.eui-editor .ql-editor h6{font:var(--eui-f-m)}.eui-editor .ql-editor .h7{font:var(--eui-f-s)}.eui-editor .ql-editor .h8{font:var(--eui-f-xs)}.eui-editor .ql-editor .h9{font:var(--eui-f-2xs)}.eui-editor .ql-editor p{margin-bottom:var(--editor-paragraph-spacer)}.eui-editor .ql-editor p:first-child{margin-top:0}.eui-editor .ql-editor p:last-child{margin-bottom:0}.eui-editor .ql-editor em,.eui-editor .ql-editor i{font-style:italic!important}.eui-editor .ql-editor strong,.eui-editor .ql-editor b{font-weight:700!important}.eui-editor .ql-editor strong em,.eui-editor .ql-editor strong i,.eui-editor .ql-editor b em,.eui-editor .ql-editor b i{font-style:italic!important;font-weight:700!important}.eui-editor .ql-editor strong em u,.eui-editor .ql-editor strong i u,.eui-editor .ql-editor b em u,.eui-editor .ql-editor b i u{text-decoration:underline!important}.eui-editor .ql-editor blockquote{border-left:var(--eui-s-xs) solid var(--eui-c-neutral-light);margin-bottom:0;margin-top:0;padding-left:var(--eui-s-m)}.eui-editor .ql-editor code,.eui-editor .ql-editor pre{background-color:#f0f0f0;border-radius:var(--eui-br-m)}.eui-editor .ql-editor pre{margin-bottom:var(--eui-s-xs);margin-top:var(--eui-s-xs);padding:var(--eui-s-xs) var(--eui-s-m);white-space:pre-wrap}.eui-editor .ql-editor code{font-size:85%;padding:2px 4px;word-break:break-word}.eui-editor .ql-editor ol,.eui-editor .ql-editor ul{margin-bottom:var(--editor-lists-spacer)}.eui-editor .ql-editor ol{counter-reset:inherit;list-style:none}.eui-editor .ql-editor ol li{padding-left:var(--eui-s-s)}.eui-editor .ql-editor ol li[data-list=bullet]{list-style:none}.eui-editor .ql-editor ol li[data-list=bullet]>.ql-ui:before{content:\"\\2022\";font-size:var(--eui-f-xl);margin-left:calc(-2.125 * var(--eui-s-m));position:absolute;top:calc(-.75 * var(--eui-s-2xs))}.eui-editor .ql-editor ol li[data-list=ordered]{list-style:none}.eui-editor .ql-editor pre.ql-syntax{background-color:var(--eui-c-neutral);color:#f5f5f5;overflow:visible}.eui-editor .ql-editor iframe,.eui-editor .ql-editor img{display:inline-block;height:1;width:1}.eui-editor .ql-editor.ql-blank:before{left:var(--eui-s-m);position:absolute;right:0}.eui-editor .ql-editor p,.eui-editor .ql-editor label,.eui-editor .ql-editor .label,.eui-editor .ql-editor blockquote,.eui-editor .ql-editor abbr,.eui-editor .ql-editor mark,.eui-editor .ql-editor del{font-size:var(--editor-base-font-size)}.eui-editor.eui-editor--focused .ql-container{box-shadow:var(--eui-sh-z-depth-0)}.eui-editor.eui-editor--focused .ql-container:focus:not([readonly]){outline:2px solid var(--eui-c-focus)!important;outline-offset:-2px!important;transition:none}.eui-editor.eui-editor--focused .ql-container:focus-visible:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-editor.eui-editor--focused .ql-container [tabindex=\"0\"]:focus:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-editor.eui-editor--readonly .ql-container{border:var(--eui-bw-none)}.eui-editor.eui-editor--readonly .ql-editor{min-height:calc(var(--eui-s-2xl) + 2px);padding:0 0 var(--eui-s-m) 0}.eui-editor.eui-editor--readonly.eui-editor--empty .ql-container{border:var(--eui-bw-none);outline:1px dashed var(--eui-c-neutral-lighter)}.eui-editor.eui-editor--readonly.eui-editor--empty .ql-container:hover{outline:1px solid var(--eui-c-neutral-light)}.eui-editor-wrapper{position:relative}.eui-editor-wrapper .eui-editor{display:flex;flex-direction:column;height:100%;position:relative;width:100%}.eui-editor-wrapper .eui-editor .ql-container{background-color:var(--eui-c-white);border:var(--eui-bw-xs) solid #ccc;flex-grow:1;padding:.35rem}.eui-editor-wrapper .eui-editor .ql-container .ngx-quill-view{border:var(--eui-bw-none)}eui-editor{position:relative;width:100%}eui-editor.ng-invalid.ng-touched .eui-editor:not(.eui-editor--readonly) .ql-container{outline:1px solid var(--eui-c-danger)}.ql-container .qlbt-selection-line.qlbt-selection-line-left:before{background-color:#0589f3;border-radius:var(--eui-br-m);content:\"\";height:5px;left:-2px;position:absolute;top:-2px;width:5px}.ql-container .qlbt-selection-line.qlbt-selection-line-right:before{background-color:#0589f3;border-radius:var(--eui-br-m);bottom:-3px;content:\"\";height:5px;position:absolute;right:-2px;width:5px}.quill-better-table-wrapper{overflow-x:auto}table.quill-better-table{border-collapse:collapse;table-layout:fixed}table.quill-better-table td{border:var(--eui-bw-xs) solid #000;padding:2px 5px}.qlbt-operation-menu{background-color:#fff;box-shadow:0 2px 8px #00000026;font-size:14px;overflow:hidden;z-index:100}.qlbt-operation-menu .qlbt-operation-menu-dividing{background-color:#efefef;height:1px}.qlbt-operation-menu .qlbt-operation-menu-subtitle{color:#999;font-size:14px;padding:5px 16px}.qlbt-operation-menu .qlbt-operation-color-picker{align-items:center;background-color:#fff;display:flex;flex-wrap:wrap;overflow:hidden;padding:0 16px 10px}.qlbt-operation-menu .qlbt-operation-color-picker .qlbt-operation-color-picker-item{border:var(--eui-bw-xs) solid #595959;cursor:pointer;height:20px;margin-bottom:5px;margin-right:5px;width:20px}.qlbt-operation-menu .qlbt-operation-menu-item{align-items:center;background-color:#fff;color:#595959;cursor:pointer;display:flex;overflow:hidden;padding:10px 16px;text-overflow:ellipsis}.qlbt-operation-menu .qlbt-operation-menu-item:hover{background-color:#efefef}.qlbt-operation-menu .qlbt-operation-menu-item .qlbt-operation-menu-icon{font-size:0;height:20px;margin-right:8px;width:20px}.qlbt-col-tool{align-items:flex-end;display:flex;height:16px;overflow:hidden;position:absolute;z-index:99}.qlbt-col-tool .qlbt-col-tool-cell{background-color:#fff;border-bottom:1px solid #000;border-right:1px solid #000;border-top:1px solid #000;position:relative}.qlbt-col-tool .qlbt-col-tool-cell:first-child{border-left:1px solid #000}.qlbt-col-tool .qlbt-col-tool-cell-holder{background-color:transparent;bottom:0;cursor:ew-resize;position:absolute;right:-1px;top:0;width:1px;z-index:3}.qlbt-col-tool .qlbt-col-tool-cell-holder:hover{background-color:#0589f3}.qlbt-col-tool .qlbt-col-tool-cell-holder:before{content:\"\";display:block;height:100%;left:-6px;position:absolute;top:0;width:8px}.qlbt-col-tool .qlbt-col-tool-cell-holder:after{content:\"\";display:block;height:100%;position:absolute;right:-6px;top:0;width:8px}\n"] }]
|
427
|
+
], template: "<ng-container *ngIf=\"readyToRender\">\n@if (!isReadOnly) {\n <quill-editor\n [id]=\"generatedId\"\n class=\"{{ class | classFilter }}\"\n [class.eui-editor--focused]=\"isFocused\"\n [format]=\"format\"\n [formats]=\"formats\"\n [sanitize]=\"true\"\n [modules]=\"modules\"\n [theme]=\"theme\"\n [placeholder]=\"placeholder\"\n [customToolbarPosition]=\"customToolbarPosition\"\n [formControl]=\"formControl\"\n [debug]=\"debug\"\n [tabindex]=\"tabindex\"\n [preserveWhitespace]=\"true\"\n [hasImageFeature]=\"hasImageFeature\"\n (onEditorCreated)=\"_onEditorCreated($event)\"\n (onEditorChanged)=\"_onEditorChanged($event)\"\n (onContentChanged)=\"_onContentChanged($event)\"\n (onSelectionChanged)=\"_onSelectionChanged($event)\"\n (onFocus)=\"_onFocus($event)\"\n (onBlur)=\"_onBlur($event)\">\n <div *ngIf=\"!euiEditorCustomToolbar\" quill-editor-toolbar>\n <div\n *ngIf=\"toolbarConfig.headings\"\n class=\"ql-formats\"\n role=\"application\"\n aria-label=\"Select headings style\"\n euiTooltip=\"{{ toolbarConfig.headings.label }}\">\n <select class=\"ql-header\" [attr.aria-label]=\"toolbarConfig.headings.label\">\n <option value=\"{{ value }}\" *ngFor=\"let value of toolbarConfig.headings.options\">Heading {{ value }}</option>\n <option selected>Normal</option>\n </select>\n </div>\n <div\n *ngIf=\"toolbarConfig.font\"\n class=\"ql-formats\"\n role=\"application\"\n aria-label=\"Select font style\"\n euiTooltip=\"{{ toolbarConfig.font.label }}\">\n <select class=\"ql-font\" [attr.aria-label]=\"toolbarConfig.font.label\">\n <option selected>Sans Serif</option>\n <option value=\"serif\">Serif</option>\n <option value=\"monospace\">Monospace</option>\n </select>\n </div>\n <div *ngIf=\"toolbarConfig.bold || toolbarConfig.italic || toolbarConfig.underline || toolbarConfig.strike\" class=\"ql-formats\">\n <button\n *ngIf=\"toolbarConfig.bold\"\n class=\"ql-bold\"\n type=\"button\"\n [attr.aria-label]=\"toolbarConfig.bold.label\"\n euiTooltip=\"{{ toolbarConfig.bold.label }}\">\n </button>\n <button\n *ngIf=\"toolbarConfig.italic\"\n class=\"ql-italic\"\n type=\"button\"\n [attr.aria-label]=\"toolbarConfig.italic.label\"\n euiTooltip=\"{{ toolbarConfig.italic.label }}\">\n </button>\n <button\n *ngIf=\"toolbarConfig.underline\"\n class=\"ql-underline\"\n type=\"button\"\n [attr.aria-label]=\"toolbarConfig.underline.label\"\n euiTooltip=\"{{ toolbarConfig.underline.label }}\">\n </button>\n <button\n *ngIf=\"toolbarConfig.strike\"\n class=\"ql-strike\"\n type=\"button\"\n [attr.aria-label]=\"toolbarConfig.strike.label\"\n euiTooltip=\"{{ toolbarConfig.strike.label }}\">\n </button>\n </div>\n <div *ngIf=\"toolbarConfig.fontColor || toolbarConfig.fontBackground\" class=\"ql-formats\">\n <span *ngIf=\"toolbarConfig.fontColor\" euiTooltip=\"{{ toolbarConfig.fontColor.label }}\">\n <select class=\"ql-color\" [attr.aria-label]=\"toolbarConfig.fontColor.label\"></select>\n </span>\n <span *ngIf=\"toolbarConfig.fontBackground\" euiTooltip=\"{{ toolbarConfig.fontBackground.label }}\">\n <select class=\"ql-background\" [attr.aria-label]=\"toolbarConfig.fontBackground.label\"></select>\n </span>\n </div>\n <div *ngIf=\"toolbarConfig.subscript || toolbarConfig.superscript\" class=\"ql-formats\">\n <button\n *ngIf=\"toolbarConfig.subscript\"\n class=\"ql-script\"\n value=\"sub\"\n type=\"button\"\n [attr.aria-label]=\"toolbarConfig.subscript.label\"\n euiTooltip=\"{{ toolbarConfig.subscript.label }}\">\n </button>\n <button\n *ngIf=\"toolbarConfig.superscript\"\n class=\"ql-script\"\n value=\"super\"\n type=\"button\"\n [attr.aria-label]=\"toolbarConfig.superscript.label\"\n euiTooltip=\"{{ toolbarConfig.superscript.label }}\">\n </button>\n </div>\n <div *ngIf=\"toolbarConfig.textAlign\" class=\"ql-formats\">\n <span euiTooltip=\"{{ toolbarConfig.textAlign.label }}\">\n <select class=\"ql-align\" [attr.aria-label]=\"toolbarConfig.textAlign.label\">\n <option selected></option>\n <option value=\"center\"></option>\n <option value=\"right\"></option>\n <option value=\"justify\"></option>\n </select>\n </span>\n </div>\n <div\n *ngIf=\"toolbarConfig.orderedList || toolbarConfig.bulletList || toolbarConfig.indentLess || toolbarConfig.indentMore\"\n class=\"ql-formats\">\n <button\n *ngIf=\"toolbarConfig.orderedList\"\n class=\"ql-list\"\n value=\"ordered\"\n type=\"button\"\n [attr.aria-label]=\"toolbarConfig.orderedList.label\"\n euiTooltip=\"{{ toolbarConfig.orderedList.label }}\">\n </button>\n <button\n *ngIf=\"toolbarConfig.bulletList\"\n class=\"ql-list\"\n value=\"bullet\"\n type=\"button\"\n [attr.aria-label]=\"toolbarConfig.bulletList.label\"\n euiTooltip=\"{{ toolbarConfig.bulletList.label }}\">\n </button>\n <button\n type=\"button\"\n *ngIf=\"toolbarConfig.indentLess\"\n class=\"ql-indent\"\n value=\"-1\"\n [attr.aria-label]=\"toolbarConfig.indentLess.label\"\n euiTooltip=\"{{ toolbarConfig.indentLess.label }}\">\n </button>\n <button\n type=\"button\"\n *ngIf=\"toolbarConfig.indentMore\"\n class=\"ql-indent\"\n value=\"+1\"\n [attr.aria-label]=\"toolbarConfig.indentMore.label\"\n euiTooltip=\"{{ toolbarConfig.indentMore.label }}\">\n </button>\n </div>\n <div\n *ngIf=\"\n toolbarConfig.blockquote ||\n toolbarConfig.codeBlock ||\n toolbarConfig.link ||\n toolbarConfig.image ||\n toolbarConfig.imageUrl ||\n toolbarConfig.video ||\n toolbarConfig.table\n \"\n class=\"ql-formats\">\n <button\n *ngIf=\"toolbarConfig.blockquote\"\n class=\"ql-blockquote\"\n type=\"button\"\n [attr.aria-label]=\"toolbarConfig.blockquote.label\"\n euiTooltip=\"{{ toolbarConfig.blockquote.label }}\">\n </button>\n <button\n *ngIf=\"toolbarConfig.codeBlock\"\n class=\"ql-code-block\"\n type=\"button\"\n [attr.aria-label]=\"toolbarConfig.codeBlock.label\"\n euiTooltip=\"{{ toolbarConfig.codeBlock.label }}\">\n </button>\n <button\n *ngIf=\"toolbarConfig.link\"\n class=\"ql-link\"\n type=\"button\"\n [attr.aria-label]=\"toolbarConfig.link.label\"\n euiTooltip=\"{{ toolbarConfig.link.label }}\">\n </button>\n <button\n *ngIf=\"toolbarConfig.image\"\n class=\"ql-image\"\n type=\"button\"\n [attr.aria-label]=\"toolbarConfig.image.label\"\n euiTooltip=\"{{ toolbarConfig.image.label }}\">\n </button>\n <button\n type=\"button\"\n *ngIf=\"toolbarConfig.imageUrl\"\n [attr.aria-label]=\"toolbarConfig.imageUrl.label\"\n euiTooltip=\"{{ toolbarConfig.imageUrl.label }}\"\n (click)=\"imageUrlHandler()\">\n <eui-icon-svg icon=\"eui-ecl-image\" size=\"s\"></eui-icon-svg>\n </button>\n <button\n *ngIf=\"toolbarConfig.video\"\n class=\"ql-video\"\n type=\"button\"\n [attr.aria-label]=\"toolbarConfig.video.label\"\n euiTooltip=\"{{ toolbarConfig.video.label }}\">\n </button>\n <button\n type=\"button\"\n *ngIf=\"toolbarConfig.table\"\n [attr.aria-label]=\"toolbarConfig.table.label\"\n euiTooltip=\"{{ toolbarConfig.table.label }}\"\n (click)=\"insertTable()\">\n <eui-icon-svg icon=\"eui-ecl-spreadsheet\" size=\"s\"></eui-icon-svg>\n </button>\n </div>\n <div *ngIf=\"toolbarConfig.clean || toolbarConfig.delete\" class=\"ql-formats\">\n <button\n *ngIf=\"toolbarConfig.clean\"\n class=\"ql-clean\"\n type=\"button\"\n [attr.aria-label]=\"toolbarConfig.clean.label\"\n euiTooltip=\"{{ toolbarConfig.clean.label }}\">\n </button>\n <button\n type=\"button\"\n *ngIf=\"toolbarConfig.delete\"\n [attr.aria-label]=\"toolbarConfig.delete.label\"\n euiTooltip=\"{{ toolbarConfig.delete.label }}\"\n (click)=\"editorDeleteContent()\">\n <eui-icon-svg icon=\"eui-ecl-trash\" size=\"s\"></eui-icon-svg>\n </button>\n </div>\n <div *ngIf=\"toolbarConfig.undo || toolbarConfig.redo\" class=\"ql-formats\">\n <button\n type=\"button\"\n *ngIf=\"toolbarConfig.undo\"\n [attr.aria-label]=\"toolbarConfig.undo.label\"\n euiTooltip=\"{{ toolbarConfig.undo.label }}\"\n (click)=\"editorUndo()\">\n <eui-icon-svg icon=\"arrow-undo:outline\" size=\"s\"></eui-icon-svg>\n </button>\n <button\n type=\"button\"\n *ngIf=\"toolbarConfig.redo\"\n [attr.aria-label]=\"toolbarConfig.redo.label\"\n euiTooltip=\"{{ toolbarConfig.redo.label }}\"\n (click)=\"editorRedo()\">\n <eui-icon-svg icon=\"arrow-redo:outline\" size=\"s\"></eui-icon-svg>\n </button>\n </div>\n <div *ngIf=\"toolbarConfig.counters\" class=\"ql-formats\">\n <eui-editor-counters\n [hasCharactersCounter]=\"hasCharactersCounter\"\n [charactersCounter]=\"charactersCount\"\n [charactersLabel]=\"charactersCounterLabel\"\n [hasWordsCounter]=\"hasWordsCounter\"\n [wordsCounter]=\"wordsCount\"\n [wordsLabel]=\"wordsCounterLabel\"\n [attr.aria-label]=\"toolbarConfig.counters.label\"\n role=\"button\"\n euiTooltip=\"{{ toolbarConfig.counters.label }}\">\n </eui-editor-counters>\n </div>\n </div>\n <div *ngIf=\"euiEditorCustomToolbar\" quill-editor-toolbar>\n <ng-content select=\"euiEditorCustomToolbar\"></ng-content>\n </div>\n </quill-editor>\n<!-- READONLY MODE -->\n} @else {\n <eui-editor-html-view *ngIf=\"format === 'html'\" [content]=\"value\" [theme]=\"theme\"></eui-editor-html-view>\n <eui-editor-json-view *ngIf=\"format === 'json'\" [content]=\"jsonToHtmlContent\" [theme]=\"theme\"></eui-editor-json-view>\n}\n</ng-container>\n", styles: ["@charset \"UTF-8\";.qlbt-operation-menu .qlbt-operation-color-picker{padding:0 12px 10px!important}.eui-editor{--editor-base-font-size: calc(var(--eui-f-size-m) + 1px);--editor-base-line-height: 1.25;--editor-paragraph-spacer: var(--eui-s-m);--editor-lists-spacer: var(--eui-s-s);--picker-font-size: var(--eui-f-s)}.eui-editor .ql-container{box-sizing:border-box;font-size:var(--eui-f-size-base);height:100%;margin:0;position:relative;resize:vertical;white-space:pre-wrap;font:var(--eui-f-m)}.eui-editor .ql-container.ql-snow .ql-tooltip{align-items:center;display:flex;background:var(--eui-c-info-bg);box-shadow:var(--eui-sh-z-depth-1);left:50%!important;position:absolute;transform:translate(-50%,60%);width:75%}.eui-editor .ql-container.ql-snow .ql-tooltip.ql-hidden{display:none}.eui-editor .ql-container.ql-snow .ql-tooltip.ql-editing{align-items:center;display:flex;left:50%!important;position:absolute;transform:translate(-50%,60%);width:75%}.eui-editor .ql-container.ql-snow .ql-tooltip.ql-editing.ql-hidden{display:none}.eui-editor .ql-container.ql-snow .ql-tooltip.ql-editing input[type=text]{display:inline-block;width:100%}.eui-editor .ql-container.ql-snow .ql-tooltip.ql-flip{z-index:1}.eui-editor .ql-container.ql-snow a.ql-preview{max-width:100%;overflow-x:hidden;text-overflow:ellipsis;vertical-align:top;width:100%}.eui-editor .ql-toolbar{background-color:var(--eui-c-neutral-bg-light);border:var(--eui-bw-xs) solid var(--eui-c-neutral-lighter);padding:var(--eui-s-s);font:var(--eui-f-m);display:flex;flex-wrap:wrap;gap:var(--eui-s-s)}.eui-editor .ql-toolbar.ql-snow{box-sizing:border-box}.eui-editor .ql-toolbar.ql-snow .ql-formats{align-items:center;background-color:transparent;border:var(--eui-bw-xs) solid var(--eui-c-neutral-lighter);border-radius:var(--eui-br-m);display:inline-flex;font:var(--eui-f-m);margin-bottom:0;margin-right:0;vertical-align:middle}.eui-editor .ql-toolbar.ql-snow .ql-formats .ql-picker{align-items:center;color:var(--eui-c-neutral);display:inline-flex;height:var(--eui-s-2xl);position:relative;vertical-align:middle}.eui-editor .ql-toolbar.ql-snow .ql-formats .ql-picker:focus:not([readonly]){outline:2px solid var(--eui-c-focus)!important;outline-offset:-2px!important;transition:none}.eui-editor .ql-toolbar.ql-snow .ql-formats .ql-picker:focus-visible:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-editor .ql-toolbar.ql-snow .ql-formats .ql-picker [tabindex=\"0\"]:focus:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-editor .ql-toolbar.ql-snow .ql-formats .ql-picker:hover{background-color:var(--eui-c-neutral-bg-light);color:var(--eui-c-info)}.eui-editor .ql-toolbar.ql-snow .ql-formats .ql-picker .ql-picker-label{align-items:center;border-color:transparent;display:flex;font-size:var(--picker-font-size)}.eui-editor .ql-toolbar.ql-snow .ql-formats select{background-color:transparent}.eui-editor .ql-toolbar.ql-snow .ql-formats select:focus:not([readonly]){outline:2px solid var(--eui-c-focus)!important;outline-offset:-2px!important;transition:none}.eui-editor .ql-toolbar.ql-snow .ql-formats select:focus-visible:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-editor .ql-toolbar.ql-snow .ql-formats select [tabindex=\"0\"]:focus:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-editor .ql-toolbar.ql-snow .ql-formats button{align-items:center;background-color:transparent;border:var(--eui-bw-none) solid var(--eui-c-neutral-lighter);box-shadow:none;color:var(--eui-c-neutral-light);cursor:pointer;display:inline-flex;height:var(--eui-s-2xl);justify-content:center;padding:var(--eui-s-2xs);width:var(--eui-s-2xl)}.eui-editor .ql-toolbar.ql-snow .ql-formats button:focus:not([readonly]){outline:2px solid var(--eui-c-focus)!important;outline-offset:-2px!important;transition:none}.eui-editor .ql-toolbar.ql-snow .ql-formats button:focus-visible:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-editor .ql-toolbar.ql-snow .ql-formats button [tabindex=\"0\"]:focus:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-editor .ql-toolbar.ql-snow .ql-formats button:hover{background-color:var(--eui-c-primary-bg);color:var(--eui-c-info)}.eui-editor .ql-toolbar.ql-snow .ql-formats button.active,.eui-editor .ql-toolbar.ql-snow .ql-formats button.ql-active{background:var(--eui-c-accent);color:var(--eui-c-primary)}.eui-editor .ql-toolbar.ql-snow .ql-formats button:first-child{border-radius:var(--eui-br-m) 0 0 var(--eui-br-m)}.eui-editor .ql-toolbar.ql-snow .ql-formats button:last-child{border-radius:0 var(--eui-br-m) var(--eui-br-m) 0}.eui-editor .ql-toolbar.ql-snow .ql-formats button.editor-counters{align-items:center;cursor:auto;display:inline-flex;gap:var(--eui-s-xs);padding:0 var(--eui-s-xs);width:auto}.eui-editor .ql-toolbar.ql-snow .ql-formats button.editor-counters .editor-counters-chars-container,.eui-editor .ql-toolbar.ql-snow .ql-formats button.editor-counters .editor-counters-words-container{align-items:center;display:flex}.eui-editor .ql-toolbar.ql-snow .ql-formats button.editor-counters .editor-counters-words-container{border-left:1px solid var(--eui-c-neutral-lighter);height:60%}.eui-editor .ql-toolbar.ql-snow .ql-formats button.editor-counters .chars-counter,.eui-editor .ql-toolbar.ql-snow .ql-formats button.editor-counters .words-counter,.eui-editor .ql-toolbar.ql-snow .ql-formats button.editor-counters .bytes-counter{color:var(--eui-c-info);font:var(--eui-f-m-bold);margin-right:var(--eui-s-2xs)}.eui-editor .ql-toolbar.ql-snow .ql-formats button.editor-counters .chars-counter.chars-counter--error,.eui-editor .ql-toolbar.ql-snow .ql-formats button.editor-counters .words-counter.chars-counter--error,.eui-editor .ql-toolbar.ql-snow .ql-formats button.editor-counters .bytes-counter.chars-counter--error{color:var(--eui-c-danger)}.eui-editor .ql-toolbar.ql-snow .ql-formats button.editor-counters .words-counter,.eui-editor .ql-toolbar.ql-snow .ql-formats button.editor-counters .bytes-counter{margin-left:var(--eui-s-xs)}.eui-editor .ql-toolbar.ql-snow .ql-formats button.editor-counters .chars-label,.eui-editor .ql-toolbar.ql-snow .ql-formats button.editor-counters .words-label,.eui-editor .ql-toolbar.ql-snow .ql-formats button.editor-counters .bytes-label{color:var(--eui-c-neutral);font:var(--eui-f-xs-compact)}.eui-editor .ql-toolbar.ql-snow .ql-formats .ql-stroke{fill:none;stroke:var(--eui-c-neutral);stroke-linecap:round;stroke-linejoin:round;stroke-width:1px}.eui-editor .ql-toolbar.ql-snow .ql-size.ql-picker{height:var(--eui-s-xl);padding:var(--eui-s-2xs) 0;width:calc(7 * var(--eui-s-m))}.eui-editor .ql-toolbar.ql-snow .ql-size.ql-picker .ql-picker-label:before,.eui-editor .ql-toolbar.ql-snow .ql-size.ql-picker .ql-picker-item:before{content:\"Normal\"}.eui-editor .ql-toolbar.ql-snow .ql-size.ql-picker .ql-picker-label[data-value=small]:before,.eui-editor .ql-toolbar.ql-snow .ql-size.ql-picker .ql-picker-item[data-value=small]:before{content:\"Small\"}.eui-editor .ql-toolbar.ql-snow .ql-size.ql-picker .ql-picker-label[data-value=smaller]:before,.eui-editor .ql-toolbar.ql-snow .ql-size.ql-picker .ql-picker-item[data-value=smaller]:before{content:\"Smaller\"}.eui-editor .ql-toolbar.ql-snow .ql-size.ql-picker .ql-picker-label[data-value=smallest]:before,.eui-editor .ql-toolbar.ql-snow .ql-size.ql-picker .ql-picker-item[data-value=smallest]:before{content:\"Smallest\"}.eui-editor .ql-toolbar.ql-snow .ql-size.ql-picker .ql-picker-label[data-value=large]:before,.eui-editor .ql-toolbar.ql-snow .ql-size.ql-picker .ql-picker-item[data-value=large]:before{content:\"Large\"}.eui-editor .ql-toolbar.ql-snow .ql-size.ql-picker .ql-picker-label[data-value=huge]:before,.eui-editor .ql-toolbar.ql-snow .ql-size.ql-picker .ql-picker-item[data-value=huge]:before{content:\"Huge\"}.eui-editor .ql-toolbar.ql-snow .ql-size.ql-picker .ql-picker-item[data-value=small]:before,.eui-editor .ql-toolbar.ql-snow .ql-size.ql-picker .ql-size-small{font-size:var(--eui-f-s)}.eui-editor .ql-toolbar.ql-snow .ql-size.ql-picker .ql-picker-item[data-value=smaller]:before{font-size:var(--eui-f-xs)}.eui-editor .ql-toolbar.ql-snow .ql-size.ql-picker .ql-picker-item[data-value=smallest]:before{font-size:var(--eui-f-size-2xs)}.eui-editor .ql-toolbar.ql-snow .ql-size.ql-picker .ql-picker-item[data-value=large]:before,.eui-editor .ql-toolbar.ql-snow .ql-size.ql-picker .ql-size-large{font-size:var(--eui-f-xl)}.eui-editor .ql-toolbar.ql-snow .ql-size.ql-picker .ql-picker-item[data-value=huge]:before,.eui-editor .ql-toolbar.ql-snow .ql-size.ql-picker .ql-size-huge{font-size:var(--eui-f-size-4xl)}.eui-editor .ql-toolbar.ql-snow .ql-header.ql-picker{align-items:center;display:flex}.eui-editor .ql-toolbar.ql-snow .ql-header.ql-picker .ql-picker-label:before,.eui-editor .ql-toolbar.ql-snow .ql-header.ql-picker .ql-picker-item:before{content:\"Normal\"}.eui-editor .ql-toolbar.ql-snow .ql-header.ql-picker .ql-picker-label[data-value=\"1\"]:before,.eui-editor .ql-toolbar.ql-snow .ql-header.ql-picker .ql-picker-item[data-value=\"1\"]:before{content:\"Heading 1\"}.eui-editor .ql-toolbar.ql-snow .ql-header.ql-picker .ql-picker-label[data-value=\"2\"]:before,.eui-editor .ql-toolbar.ql-snow .ql-header.ql-picker .ql-picker-item[data-value=\"2\"]:before{content:\"Heading 2\"}.eui-editor .ql-toolbar.ql-snow .ql-header.ql-picker .ql-picker-label[data-value=\"3\"]:before,.eui-editor .ql-toolbar.ql-snow .ql-header.ql-picker .ql-picker-item[data-value=\"3\"]:before{content:\"Heading 3\"}.eui-editor .ql-toolbar.ql-snow .ql-header.ql-picker .ql-picker-label[data-value=\"4\"]:before,.eui-editor .ql-toolbar.ql-snow .ql-header.ql-picker .ql-picker-item[data-value=\"4\"]:before{content:\"Heading 4\"}.eui-editor .ql-toolbar.ql-snow .ql-header.ql-picker .ql-picker-label[data-value=\"5\"]:before,.eui-editor .ql-toolbar.ql-snow .ql-header.ql-picker .ql-picker-item[data-value=\"5\"]:before{content:\"Heading 5\"}.eui-editor .ql-toolbar.ql-snow .ql-header.ql-picker .ql-picker-label[data-value=\"6\"]:before,.eui-editor .ql-toolbar.ql-snow .ql-header.ql-picker .ql-picker-item[data-value=\"6\"]:before{content:\"Heading 6\"}.eui-editor .ql-toolbar.ql-snow .ql-header.ql-picker .ql-picker-item[data-value=\"1\"]:before{font:var(--eui-f-4xl)}.eui-editor .ql-toolbar.ql-snow .ql-header.ql-picker .ql-picker-item[data-value=\"2\"]:before{font:var(--eui-f-3xl)}.eui-editor .ql-toolbar.ql-snow .ql-header.ql-picker .ql-picker-item[data-value=\"3\"]:before{font:var(--eui-f-2xl)}.eui-editor .ql-toolbar.ql-snow .ql-header.ql-picker .ql-picker-item[data-value=\"4\"]:before{font:var(--eui-f-xl)}.eui-editor .ql-toolbar.ql-snow .ql-header.ql-picker .ql-picker-item[data-value=\"5\"]:before{font:var(--eui-f-l)}.eui-editor .ql-toolbar.ql-snow .ql-header.ql-picker .ql-picker-item[data-value=\"6\"]:before{font:var(--eui-f-m)}.eui-editor .ql-toolbar.ql-snow .ql-font.ql-picker{align-items:center;display:flex}.eui-editor .ql-toolbar.ql-snow .ql-font.ql-picker .ql-picker-label:before,.eui-editor .ql-toolbar.ql-snow .ql-font.ql-picker .ql-picker-item:before{content:\"Sans Serif\"}.eui-editor .ql-toolbar.ql-snow .ql-font.ql-picker .ql-picker-label[data-value=serif]:before,.eui-editor .ql-toolbar.ql-snow .ql-font.ql-picker .ql-picker-item[data-value=serif]:before{content:\"Serif\"}.eui-editor .ql-toolbar.ql-snow .ql-font.ql-picker .ql-picker-label[data-value=monospace]:before,.eui-editor .ql-toolbar.ql-snow .ql-font.ql-picker .ql-picker-item[data-value=monospace]:before{content:\"Monospace\"}.eui-editor .ql-toolbar.ql-snow .ql-font.ql-picker .ql-picker-item[data-value=sans-serif]:before{font-family:arial,sans-serif!important}.eui-editor .ql-toolbar.ql-snow .ql-font.ql-picker .ql-picker-item[data-value=serif]:before{font-family:times new roman,serif!important}.eui-editor .ql-toolbar.ql-snow .ql-font.ql-picker .ql-picker-item[data-value=monospace]:before{font-family:courier new,monospace!important}.eui-editor .ql-toolbar.ql-snow .ql-color-picker,.eui-editor .ql-toolbar.ql-snow .ql-icon-picker{height:var(--eui-s-2xl);width:var(--eui-s-2xl)}.eui-editor .ql-toolbar .eui-editor-custom-toolbar{display:inline-flex;margin:0;padding:0;vertical-align:middle}.eui-editor .ql-editor{box-sizing:border-box;height:100%;line-height:var(--editor-base-line-height);outline:none;overflow-y:auto;padding:var(--eui-s-s);-moz-tab-size:4;tab-size:4;text-align:left;white-space:inherit;word-break:normal;word-wrap:break-word;font:var(--eui-f-m)}.eui-editor .ql-editor h1{font:var(--eui-f-4xl)}.eui-editor .ql-editor h2{font:var(--eui-f-3xl)}.eui-editor .ql-editor h3{font:var(--eui-f-2xl)}.eui-editor .ql-editor h4{font:var(--eui-f-xl)}.eui-editor .ql-editor h5{font:var(--eui-f-l)}.eui-editor .ql-editor h6{font:var(--eui-f-m)}.eui-editor .ql-editor .h7{font:var(--eui-f-s)}.eui-editor .ql-editor .h8{font:var(--eui-f-xs)}.eui-editor .ql-editor .h9{font:var(--eui-f-2xs)}.eui-editor .ql-editor p{margin-bottom:var(--editor-paragraph-spacer)}.eui-editor .ql-editor p:first-child{margin-top:0}.eui-editor .ql-editor p:last-child{margin-bottom:0}.eui-editor .ql-editor em,.eui-editor .ql-editor i{font-style:italic!important}.eui-editor .ql-editor strong,.eui-editor .ql-editor b{font-weight:700!important}.eui-editor .ql-editor strong em,.eui-editor .ql-editor strong i,.eui-editor .ql-editor b em,.eui-editor .ql-editor b i{font-style:italic!important;font-weight:700!important}.eui-editor .ql-editor strong em u,.eui-editor .ql-editor strong i u,.eui-editor .ql-editor b em u,.eui-editor .ql-editor b i u{text-decoration:underline!important}.eui-editor .ql-editor blockquote{border-left:var(--eui-s-xs) solid var(--eui-c-neutral-light);margin-bottom:0;margin-top:0;padding-left:var(--eui-s-m)}.eui-editor .ql-editor code,.eui-editor .ql-editor pre{background-color:#f0f0f0;border-radius:var(--eui-br-m)}.eui-editor .ql-editor pre{margin-bottom:var(--eui-s-xs);margin-top:var(--eui-s-xs);padding:var(--eui-s-xs) var(--eui-s-m);white-space:pre-wrap}.eui-editor .ql-editor code{font-size:85%;padding:2px 4px;word-break:break-word}.eui-editor .ql-editor ol,.eui-editor .ql-editor ul{margin-bottom:var(--editor-lists-spacer)}.eui-editor .ql-editor ol{counter-reset:inherit;list-style:none}.eui-editor .ql-editor ol li{padding-left:var(--eui-s-s)}.eui-editor .ql-editor ol li[data-list=bullet]{list-style:none}.eui-editor .ql-editor ol li[data-list=bullet]>.ql-ui:before{content:\"\\2022\";font-size:var(--eui-f-xl);margin-left:calc(-2.125 * var(--eui-s-m));position:absolute;top:calc(-.75 * var(--eui-s-2xs))}.eui-editor .ql-editor ol li[data-list=ordered]{list-style:none}.eui-editor .ql-editor pre.ql-syntax{background-color:var(--eui-c-neutral);color:#f5f5f5;overflow:visible}.eui-editor .ql-editor iframe,.eui-editor .ql-editor img{display:inline-block;height:1;width:1}.eui-editor .ql-editor.ql-blank:before{left:var(--eui-s-m);position:absolute;right:0}.eui-editor .ql-editor p,.eui-editor .ql-editor label,.eui-editor .ql-editor .label,.eui-editor .ql-editor blockquote,.eui-editor .ql-editor abbr,.eui-editor .ql-editor mark,.eui-editor .ql-editor del{font-size:var(--editor-base-font-size)}.eui-editor.eui-editor--focused .ql-container{box-shadow:var(--eui-sh-z-depth-0)}.eui-editor.eui-editor--focused .ql-container:focus:not([readonly]){outline:2px solid var(--eui-c-focus)!important;outline-offset:-2px!important;transition:none}.eui-editor.eui-editor--focused .ql-container:focus-visible:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-editor.eui-editor--focused .ql-container [tabindex=\"0\"]:focus:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-editor.eui-editor--readonly .ql-container{border:var(--eui-bw-none)}.eui-editor.eui-editor--readonly .ql-editor{min-height:calc(var(--eui-s-2xl) + 2px);padding:0 0 var(--eui-s-m) 0}.eui-editor.eui-editor--readonly.eui-editor--empty .ql-container{border:var(--eui-bw-none);outline:1px dashed var(--eui-c-neutral-lighter)}.eui-editor.eui-editor--readonly.eui-editor--empty .ql-container:hover{outline:1px solid var(--eui-c-neutral-light)}.eui-editor-wrapper{position:relative}.eui-editor-wrapper .eui-editor{display:flex;flex-direction:column;height:100%;position:relative;width:100%}.eui-editor-wrapper .eui-editor .ql-container{background-color:var(--eui-c-white);border:var(--eui-bw-xs) solid #ccc;flex-grow:1;padding:.35rem}.eui-editor-wrapper .eui-editor .ql-container .ngx-quill-view{border:var(--eui-bw-none)}eui-editor{position:relative;width:100%}eui-editor.ng-invalid.ng-touched .eui-editor:not(.eui-editor--readonly) .ql-container{outline:1px solid var(--eui-c-danger)}.ql-container .qlbt-selection-line.qlbt-selection-line-left:before{background-color:#0589f3;border-radius:var(--eui-br-m);content:\"\";height:5px;left:-2px;position:absolute;top:-2px;width:5px}.ql-container .qlbt-selection-line.qlbt-selection-line-right:before{background-color:#0589f3;border-radius:var(--eui-br-m);bottom:-3px;content:\"\";height:5px;position:absolute;right:-2px;width:5px}.quill-better-table-wrapper{overflow-x:auto}table.quill-better-table{border-collapse:collapse;table-layout:fixed}table.quill-better-table td{border:var(--eui-bw-xs) solid #000;padding:2px 5px}.qlbt-operation-menu{background-color:#fff;box-shadow:0 2px 8px #00000026;font-size:14px;overflow:hidden;z-index:100}.qlbt-operation-menu .qlbt-operation-menu-dividing{background-color:#efefef;height:1px}.qlbt-operation-menu .qlbt-operation-menu-subtitle{color:#999;font-size:14px;padding:5px 16px}.qlbt-operation-menu .qlbt-operation-color-picker{align-items:center;background-color:#fff;display:flex;flex-wrap:wrap;overflow:hidden;padding:0 16px 10px}.qlbt-operation-menu .qlbt-operation-color-picker .qlbt-operation-color-picker-item{border:var(--eui-bw-xs) solid #595959;cursor:pointer;height:20px;margin-bottom:5px;margin-right:5px;width:20px}.qlbt-operation-menu .qlbt-operation-menu-item{align-items:center;background-color:#fff;color:#595959;cursor:pointer;display:flex;overflow:hidden;padding:10px 16px;text-overflow:ellipsis}.qlbt-operation-menu .qlbt-operation-menu-item:hover{background-color:#efefef}.qlbt-operation-menu .qlbt-operation-menu-item .qlbt-operation-menu-icon{font-size:0;height:20px;margin-right:8px;width:20px}.qlbt-col-tool{align-items:flex-end;display:flex;height:16px;overflow:hidden;position:absolute;z-index:99}.qlbt-col-tool .qlbt-col-tool-cell{background-color:#fff;border-bottom:1px solid #000;border-right:1px solid #000;border-top:1px solid #000;position:relative}.qlbt-col-tool .qlbt-col-tool-cell:first-child{border-left:1px solid #000}.qlbt-col-tool .qlbt-col-tool-cell-holder{background-color:transparent;bottom:0;cursor:ew-resize;position:absolute;right:-1px;top:0;width:1px;z-index:3}.qlbt-col-tool .qlbt-col-tool-cell-holder:hover{background-color:#0589f3}.qlbt-col-tool .qlbt-col-tool-cell-holder:before{content:\"\";display:block;height:100%;left:-6px;position:absolute;top:0;width:8px}.qlbt-col-tool .qlbt-col-tool-cell-holder:after{content:\"\";display:block;height:100%;position:absolute;right:-6px;top:0;width:8px}\n"] }]
|
428
428
|
}], ctorParameters: () => [{ type: i1.EuiDialogService }, { type: i0.ChangeDetectorRef }, { type: i2.NgControl }, { type: i3.LoaderService }], propDecorators: { class: [{
|
429
429
|
type: HostBinding,
|
430
430
|
args: ['class']
|
@@ -535,4 +535,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImpor
|
|
535
535
|
type: Pipe,
|
536
536
|
args: [{ name: 'classFilter' }]
|
537
537
|
}] });
|
538
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLWVkaXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9leHRlcm5hbHMvZXVpLWVkaXRvci9ldWktZWRpdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL2V4dGVybmFscy9ldWktZWRpdG9yL2V1aS1lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFFTixpQkFBaUIsRUFDakIsdUJBQXVCLEVBQ3ZCLFdBQVcsRUFFWCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFFVixZQUFZLEVBQ1osSUFBSSxHQUVQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsV0FBVyxFQUF3QixNQUFNLGdCQUFnQixDQUFDO0FBR3pGLE9BQU8sRUFBRSxxQkFBcUIsRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQUc1RSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxLQUFLLE1BQU0sYUFBYSxDQUFDO0FBRWhDLE9BQU8sRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUcvRSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQzs7Ozs7Ozs7Ozs7QUFUOUYsMEdBQTBHO0FBQzFHLE1BQU0sU0FBUyxHQUFRLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztBQVN2Qyx3Q0FBd0M7QUFDeEMsSUFBSSxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztBQWNsRCxNQUFNLE9BQU8sa0JBQWtCO0lBQzNCLElBQ0ksS0FBSztRQUNMLE9BQU87WUFDSCxZQUFZO1lBQ1osSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDN0MsSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUEsQ0FBQyxDQUFDLG1CQUFtQjtZQUN2RCxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxFQUFFO1NBQy9DLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUE0QkQsSUFDSSxRQUFRO1FBQ1IsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUMvQyxDQUFDO0lBaUJELElBQ0ksVUFBVTtRQUNWLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUM1QixDQUFDO0lBQ0QsSUFBSSxVQUFVLENBQUMsS0FBbUI7UUFDOUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsSUFDSSxZQUFZO1FBQ1osT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzlCLENBQUM7SUFDRCxJQUFJLFlBQVksQ0FBQyxLQUFtQjtRQUNoQyxJQUFJLENBQUMsYUFBYSxHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxJQUNJLGdCQUFnQjtRQUNoQixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztJQUNsQyxDQUFDO0lBQ0QsSUFBSSxnQkFBZ0IsQ0FBQyxLQUFLO1FBQ3RCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQsSUFDSSxnQkFBZ0I7UUFDaEIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUM7SUFDbEMsQ0FBQztJQUNELElBQUksZ0JBQWdCLENBQUMsS0FBbUI7UUFDcEMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFHRCxJQUNJLFNBQVM7UUFDVCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDM0IsQ0FBQztJQUNELElBQUksU0FBUyxDQUFDLEtBQW1CO1FBQzdCLElBQUksQ0FBQyxVQUFVLEdBQUcscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQTBERCxZQUFvQixnQkFBa0MsRUFDbEMsR0FBc0IsRUFDdEIsU0FBb0IsRUFDcEIsTUFBcUI7UUFIckIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ3BCLFdBQU0sR0FBTixNQUFNLENBQWU7UUFuSmhDLFlBQU8sR0FBRyxZQUFZLENBQUM7UUFFdkIsZ0JBQVcsR0FBRyxFQUFFLENBQUM7UUFDakIsV0FBTSxHQUFvQixNQUFNLENBQUM7UUFDakMsVUFBSyxHQUFzQixNQUFNLENBQUM7UUFDbEMsVUFBSyxHQUFxQyxLQUFLLENBQUM7UUFDaEQsMEJBQXFCLEdBQXFCLEtBQUssQ0FBQztRQUVoRCxhQUFRLEdBQUcsR0FBRyxDQUFDO1FBT3hCLDZCQUE2QjtRQUNuQixpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFvQixDQUFDO1FBQ3BELGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQXlDLENBQUM7UUFDekUsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBaUIsQ0FBQztRQUNsRCxvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFtQixDQUFDO1FBQ3RELFVBQUssR0FBRyxJQUFJLFlBQVksRUFBUyxDQUFDO1FBQ2xDLFNBQUksR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ2hDLDBCQUFxQixHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDbkQscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQVNqRCxVQUFLLEdBQWlCLEVBQUUsQ0FBQztRQUN6QixvQkFBZSxHQUFHLENBQUMsQ0FBQztRQUNwQixlQUFVLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsZUFBVSxHQUFHLENBQUMsQ0FBQztRQUNmLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFFbEIsZ0JBQVcsR0FBZ0IsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUcxQyxrQkFBYSxHQUFZLEtBQUssQ0FBQztRQWFqQyxnQkFBVyxHQUFHLEtBQUssQ0FBQztRQVFwQixrQkFBYSxHQUFHLElBQUksQ0FBQztRQVFyQixzQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFRMUIsc0JBQWlCLEdBQUcsS0FBSyxDQUFDO1FBUzFCLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFHbkIseUJBQW9CLEdBQXdCO1lBQ2hELEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtZQUNwQixFQUFFLElBQUksRUFBRSxNQUFNLEVBQUU7WUFDaEIsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFO1lBQ2xCLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTtZQUNyQixFQUFFLElBQUksRUFBRSxXQUFXLEVBQUU7WUFDckIsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO1lBQ3JCLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRTtZQUNoQixFQUFFLElBQUksRUFBRSxPQUFPLEVBQUU7WUFDakIsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO1lBQ3BCLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRTtZQUNqQixFQUFFLElBQUksRUFBRSxRQUFRLEVBQUU7WUFDbEIsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFO1lBQ2hCLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRTtZQUNoQixFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7U0FDdkIsQ0FBQztRQUNNLHlCQUFvQixHQUF3QjtZQUNoRCxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLDZEQUE2RCxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUU7WUFDdkgsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSw2QkFBNkIsRUFBRTtZQUN0RCxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLCtDQUErQyxFQUFFO1lBQ3hFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsaURBQWlELEVBQUU7WUFDNUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxvREFBb0QsRUFBRTtZQUNsRixFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLGdFQUFnRSxFQUFFO1lBQzNGLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsb0NBQW9DLEVBQUU7WUFDbEUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsS0FBSyxFQUFFLG9EQUFvRCxFQUFFO1lBQ3ZGLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsMkRBQTJELEVBQUU7WUFDekYsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSwrREFBK0QsRUFBRTtZQUMvRixFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLGdHQUFnRyxFQUFFO1lBQzlILEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsbUNBQW1DLEVBQUU7WUFDbkUsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxpQ0FBaUMsRUFBRTtZQUNoRSxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLDhEQUE4RCxFQUFFO1lBQzdGLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsOERBQThELEVBQUU7WUFDN0YsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSx5REFBeUQsRUFBRTtZQUN4RixFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLG9FQUFvRSxFQUFFO1lBQ2xHLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsc0dBQXNHLEVBQUU7WUFDL0gsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSwrQ0FBK0MsRUFBRTtZQUN6RSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLDhEQUE4RCxFQUFFLGFBQWEsRUFBRSxzQkFBc0IsRUFBRTtZQUNsSSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLDJDQUEyQyxFQUFFO1lBQ3JFLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsNkNBQTZDLEVBQUU7WUFDdkUsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSx3REFBd0QsRUFBRTtZQUNsRixFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLHdEQUF3RCxFQUFFO1lBQ25GLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsK0NBQStDLEVBQUU7WUFDeEUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxvREFBb0QsRUFBRTtZQUM3RTtnQkFDSSxJQUFJLEVBQUUsVUFBVTtnQkFDaEIsS0FBSyxFQUFFLDBEQUEwRDtnQkFDakUsT0FBTyxFQUFFO29CQUNMLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFO29CQUMzQyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRTtpQkFDcEM7YUFDSjtTQUNKLENBQUM7UUFDTSxhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVcsQ0FBQztRQXVQbEMsYUFBUSxHQUFRLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztRQUV6QixZQUFPLEdBQVEsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO1FBblA1QixJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7SUFDeEMsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLFNBQVMsQ0FBQztZQUN6QixRQUFRLEVBQUUsR0FBRyxFQUFFO2dCQUNYLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO2dCQUMxQixJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtvQkFDdkgsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLEtBQUssT0FBTyxDQUFDO2dCQUN4QyxDQUFDLENBQUMsQ0FBQztnQkFFSCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUU1RyxJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztnQkFDeEIsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO29CQUN0RCxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7d0JBQ3BDLElBQUksQ0FBQyxhQUFhLEdBQUc7NEJBQ2pCLEdBQUcsSUFBSSxDQUFDLGFBQWE7NEJBQ3JCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsYUFBYSxFQUFFLENBQUMsQ0FBQyxhQUFhLEVBQUU7eUJBQ25GLENBQUM7b0JBQ04sQ0FBQyxDQUFDLENBQUM7Z0JBQ1AsQ0FBQztnQkFFRCxJQUFJLElBQUksQ0FBQyxtQkFBbUIsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO29CQUNyRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7d0JBQ25DLE1BQU0sS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO3dCQUNsRyxJQUFJLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQzt3QkFDeEcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUM7d0JBRXRILElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxVQUFVLEVBQUUsQ0FBQzs0QkFDeEIsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQ0FDYixPQUFPLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDOzRCQUMvRSxDQUFDO2lDQUFNLENBQUM7Z0NBQ0osT0FBTyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7b0NBQy9CLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxLQUFLO3dDQUM1QixDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUs7d0NBQ2QsQ0FBQyxDQUFDLElBQUksQ0FBQyxvQkFBb0I7NkNBQ3RCLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksS0FBSyxVQUFVLENBQUM7NkNBQ3RDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQztvQ0FDM0QsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsQ0FBQztnQ0FDckQsQ0FBQyxDQUFDLENBQUM7NEJBQ1AsQ0FBQzt3QkFDTCxDQUFDO3dCQUVELElBQUksQ0FBQyxhQUFhLEdBQUc7NEJBQ2pCLEdBQUcsSUFBSSxDQUFDLGFBQWE7NEJBQ3JCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsQ0FBQyxFQUFFO3lCQUNqRCxDQUFDO29CQUNOLENBQUMsQ0FBQyxDQUFDO2dCQUNQLENBQUM7Z0JBRUQsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztvQkFDeEIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO3dCQUNwQyxNQUFNLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQzt3QkFDbEcsTUFBTSxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7d0JBQzFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDO3dCQUV0SCxJQUFJLENBQUMsYUFBYSxHQUFHOzRCQUNqQixHQUFHLElBQUksQ0FBQyxhQUFhOzRCQUNyQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLENBQUMsRUFBRTt5QkFDakQsQ0FBQztvQkFDTixDQUFDLENBQUMsQ0FBQztnQkFDUCxDQUFDO2dCQUNELElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDNUIsQ0FBQztTQUNKLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBSU0sbUJBQW1CO1FBQ3RCLElBQUksSUFBSSxDQUFDLGdCQUFnQixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUMzQyxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztRQUM1QixDQUFDO0lBQ0wsQ0FBQztJQUVNLGVBQWU7UUFDbEIsSUFBSSxrQkFBa0IsR0FBYyxJQUFJLENBQUM7UUFDekMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FDNUIsSUFBSSxlQUFlLENBQUM7WUFDaEIsS0FBSyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLGFBQWE7WUFDaEQscUJBQXFCLEVBQUUsSUFBSTtZQUMzQixhQUFhLEVBQUU7Z0JBQ1gsU0FBUyxFQUFFLDZCQUE2QjtnQkFDeEMsTUFBTSxFQUFFO29CQUNKLGlCQUFpQixFQUFFLENBQUMsSUFBZSxFQUFRLEVBQUU7d0JBQ3pDLGtCQUFrQixHQUFHLElBQUksQ0FBQztvQkFDOUIsQ0FBQztpQkFDSjthQUNKO1lBQ0QsTUFBTSxFQUFFLEdBQVMsRUFBRTtnQkFDZixJQUFJLGtCQUFrQixJQUFJLGtCQUFrQixDQUFDLEtBQUssRUFBRSxDQUFDO29CQUNqRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxFQUFFLENBQUM7b0JBRXBDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQztvQkFDbkUsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsa0JBQWtCLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztnQkFDOUYsQ0FBQztZQUNMLENBQUM7U0FDSixDQUFDLENBQ0wsQ0FBQztJQUNOLENBQUM7SUFFTSxVQUFVO1FBQ2IsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRU0sVUFBVTtRQUNiLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVNLG1CQUFtQjtRQUN0QixNQUFNLE1BQU0sR0FBRyxJQUFJLGVBQWUsQ0FBQztZQUMvQixLQUFLLEVBQUUsZ0JBQWdCO1lBQ3ZCLE9BQU8sRUFBRSwwREFBMEQ7WUFDbkUsY0FBYyxFQUFFLEtBQUs7WUFDckIsTUFBTSxFQUFFLEdBQVMsRUFBRTtnQkFDZixJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNqQyxDQUFDO1NBQ0osQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRU0sV0FBVztRQUNkLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsSUFBSSxlQUFlO1FBQ2YsT0FBTyxJQUFJLENBQUMsc0JBQXNCO1lBQzlCLENBQUMsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsVUFBVSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDO1lBQ2xGLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQztJQUNuQyxDQUFDO0lBRU0sZ0JBQWdCLENBQUMsS0FBdUI7UUFDM0MsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFFbkIsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3ZCLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssTUFBTSxFQUFFLENBQUM7WUFDekIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFlLEVBQUUsQ0FBQyxDQUFDO1lBQzNFLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ25DLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xDLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssTUFBTSxFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3hDLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDbkQsQ0FBQztRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDeEIsS0FBSyxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLENBQUMsT0FBZ0IsRUFBRSxLQUFZLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDOUYsS0FBSyxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFFLENBQUMsT0FBZ0IsRUFBRSxLQUFZLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDdEcsQ0FBQztRQUVELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFTSxnQkFBZ0IsQ0FBQyxLQUFvRDtRQUN4RSxPQUFPLENBQUMsSUFBSSxDQUFDLGlGQUFpRixDQUFDLENBQUM7UUFDaEcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBOEIsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFTSxpQkFBaUIsQ0FBQyxLQUFvQjtRQUN6QyxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssTUFBTSxFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsS0FBZSxDQUFDLENBQUM7WUFDN0MsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEtBQWUsQ0FBQyxDQUFDLENBQUM7UUFDakUsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxNQUFNLEVBQUUsQ0FBQztZQUN6QixJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssSUFBSSxFQUFFLENBQUM7Z0JBQ3RCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQztnQkFDM0IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDbkMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO2dCQUM3RSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1lBQzFDLENBQUM7aUJBQU0sQ0FBQztnQkFDSixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztnQkFDbEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUMzQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsRUFBRSxDQUFDO2dCQUM1QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3hCLENBQUM7UUFDTCxDQUFDO1FBQ0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxjQUFjO1FBQzlDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLDREQUE0RDtJQUM5RixDQUFDO0lBRU0sbUJBQW1CLENBQUMsS0FBc0I7UUFDN0MsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVNLFFBQVEsQ0FBQyxLQUFZO1FBQ3hCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFTSxPQUFPLENBQUMsS0FBVztRQUN0QixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN2QixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDZixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRU0sZ0JBQWdCLENBQUMsRUFBTztRQUMzQixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRU0saUJBQWlCLENBQUMsRUFBTztRQUM1QixJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRU0sVUFBVSxDQUFDLEtBQWE7UUFDM0IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLElBQUksSUFBSSxDQUFDO1FBQzNCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBRXBDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDWixJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDYixJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssTUFBTSxFQUFFLENBQUM7b0JBQ3pCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsS0FBZSxFQUFFLENBQUMsQ0FBQztvQkFDM0UsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQ25DLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNsQyxDQUFDO2dCQUVELElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxNQUFNLEVBQUUsQ0FBQztvQkFDekIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUN4QyxrREFBa0Q7Z0JBQ3RELENBQUM7Z0JBRUQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN2QyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsSUFBWSxXQUFXO1FBQ25CLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQU1PLGtCQUFrQixDQUFDLE9BQWU7UUFDdEMsSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFDO1FBQ2hCLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDSixDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDNUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ2pDLENBQUM7UUFFRCxPQUFPLENBQUMsQ0FBQztJQUNiLENBQUM7SUFFRCxJQUFJLG9CQUFvQjtRQUNwQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssWUFBWSxDQUFDLENBQUM7SUFDcEYsQ0FBQztJQUVELElBQUksc0JBQXNCO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxZQUFZLENBQUMsRUFBRSxLQUFLLENBQUM7SUFDM0YsQ0FBQztJQUVELElBQUksZUFBZTtRQUNmLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxPQUFPLENBQUMsQ0FBQztJQUMvRSxDQUFDO0lBRUQsSUFBSSxpQkFBaUI7UUFDakIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLE9BQU8sQ0FBQyxFQUFFLEtBQUssQ0FBQztJQUN0RixDQUFDO0lBRU8saUJBQWlCLENBQUMsT0FBZTtRQUNyQyxJQUFJLElBQVksQ0FBQztRQUNqQixNQUFNLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDcEIsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLE1BQU0sRUFBRSxDQUFDO1lBQ3pCLElBQUksT0FBTyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDOUMsSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQy9CLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztnQkFDbkMsSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQy9CLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDO1lBQ3hGLENBQUM7aUJBQU0sQ0FBQztnQkFDSixJQUFJLENBQUMsZUFBZSxHQUFHLENBQUMsQ0FBQztnQkFDekIsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUM7Z0JBQ3BCLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDO1lBQ3hCLENBQUM7UUFDTCxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLE1BQU0sRUFBRSxDQUFDO1lBQ3pCLElBQUksT0FBTyxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDeEIsSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQ2pELElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztnQkFFbkMsSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQ2pELElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDO1lBQ3hGLENBQUM7aUJBQU0sQ0FBQztnQkFDSixJQUFJLENBQUMsZUFBZSxHQUFHLENBQUMsQ0FBQztnQkFDekIsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUM7Z0JBQ3BCLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDO1lBQ3hCLENBQUM7UUFDTCxDQUFDO1FBRUQsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7UUFFdEQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVPLFNBQVMsQ0FBQyxPQUFlO1FBQzdCLE1BQU0sS0FBSyxHQUFHLGVBQWUsQ0FBQztRQUM5QixNQUFNLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3BELE9BQU8sZ0JBQWdCLENBQUMsT0FBTyxDQUFDLHdCQUF3QixFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFTyxTQUFTLENBQUMsT0FBZTtRQUM3QixNQUFNLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3pELE9BQU8sZ0JBQWdCLENBQUMsT0FBTyxDQUFDLHdCQUF3QixFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7OEdBemRRLGtCQUFrQjtrR0FBbEIsa0JBQWtCLCsvQkFMaEI7WUFDUCwyRUFBMkU7WUFDM0UsZ0JBQWdCO1NBQ25CLGtHQXdEOEIsa0NBQWtDLGlEQ3JHckUsdTdaQWdSQSxvb3FCRHdRYSxlQUFlOzsyRkF6ZWYsa0JBQWtCO2tCQVo5QixTQUFTOytCQUVJLFlBQVksaUJBR1AsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxhQUNwQzt3QkFDUCwyRUFBMkU7d0JBQzNFLGdCQUFnQjtxQkFDbkI7eUtBSUcsS0FBSztzQkFEUixXQUFXO3VCQUFDLE9BQU87Z0JBU1gsT0FBTztzQkFBZixLQUFLO2dCQUNHLEVBQUU7c0JBQVYsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFFRyxRQUFRO3NCQURoQixXQUFXO3VCQUFDLGVBQWU7O3NCQUMzQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBRUcsbUJBQW1CO3NCQUEzQixLQUFLO2dCQUVHLE1BQU07c0JBRGQsV0FBVzt1QkFBQyxjQUFjOztzQkFDMUIsS0FBSztnQkFFSSxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxlQUFlO3NCQUF4QixNQUFNO2dCQUNHLEtBQUs7c0JBQWQsTUFBTTtnQkFDRyxJQUFJO3NCQUFiLE1BQU07Z0JBQ0cscUJBQXFCO3NCQUE5QixNQUFNO2dCQUNHLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFFMEIsSUFBSTtzQkFBcEMsV0FBVzt1QkFBQyxrQkFBa0I7Z0JBRzNCLFFBQVE7c0JBRFgsV0FBVzt1QkFBQyxlQUFlO2dCQWtCNUIsc0JBQXNCO3NCQURyQixZQUFZO3VCQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxrQ0FBa0MsQ0FBQyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFJakYsVUFBVTtzQkFEYixLQUFLO2dCQVNGLFlBQVk7c0JBRGYsS0FBSztnQkFTRixnQkFBZ0I7c0JBRG5CLEtBQUs7Z0JBU0YsZ0JBQWdCO3NCQURuQixLQUFLO2dCQVVGLFNBQVM7c0JBRFosV0FBVzt1QkFBQyxtQkFBbUI7Z0JBK0l6QixtQkFBbUI7c0JBRnpCLFlBQVk7dUJBQUMsT0FBTzs7c0JBQ3BCLFlBQVk7dUJBQUMsU0FBUzs7QUFvUDNCLG9CQUFvQjtBQUVwQixNQUFNLE9BQU8sa0NBQWtDO0lBRzNDLFlBQW1CLFVBQXNCO1FBQXRCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFGbkIsaUJBQVksR0FBRywyQkFBMkIsQ0FBQztJQUVyQixDQUFDOzhHQUhwQyxrQ0FBa0M7a0dBQWxDLGtDQUFrQzs7MkZBQWxDLGtDQUFrQztrQkFEOUMsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSx3QkFBd0IsRUFBRTsrRUFFdkIsWUFBWTtzQkFBakMsV0FBVzt1QkFBQyxPQUFPOztBQUl4QixtQkFBbUI7QUFFbkI7O0dBRUc7QUFFSCxNQUFNLE9BQU8sZUFBZTtJQUN4QixTQUFTLENBQUMsS0FBYTtRQUNuQixPQUFPLEtBQUs7YUFDUCxPQUFPLENBQUMscUJBQXFCLEVBQUUsRUFBRSxDQUFDO2FBQ2xDLE9BQU8sQ0FBQyx1QkFBdUIsRUFBRSxFQUFFLENBQUM7YUFDcEMsT0FBTyxDQUFDLG9CQUFvQixFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzNDLENBQUM7OEdBTlEsZUFBZTs0R0FBZixlQUFlOzsyRkFBZixlQUFlO2tCQUQzQixJQUFJO21CQUFDLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbnB1dCxcbiAgICBPdXRwdXQsXG4gICAgT25Jbml0LFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIE9uRGVzdHJveSxcbiAgICBEaXJlY3RpdmUsXG4gICAgQ29udGVudENoaWxkLFxuICAgIGZvcndhcmRSZWYsXG4gICAgRWxlbWVudFJlZixcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgUGlwZSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ29udGVudENoYW5nZSwgUXVpbGxNb2R1bGVzIH0gZnJvbSAnQGV1aS9jb21wb25lbnRzL2V4dGVybmFscy9xdWlsbCc7XG5cbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSwgQm9vbGVhbklucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb24sbm8tdW5kZXJzY29yZS1kYW5nbGUsaWQtZGVueWxpc3QsaWQtbWF0Y2hcbmNvbnN0IFF1aWxsVHlwZTogYW55ID0gd2luZG93WydRdWlsbCddO1xuaW1wb3J0IHsgc3RhcnRXaXRoLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgRGVsdGEgZnJvbSAncXVpbGwtZGVsdGEnO1xuXG5pbXBvcnQgeyBFdWlEaWFsb2dDb25maWcsIEV1aURpYWxvZ1NlcnZpY2UgfSBmcm9tICdAZXVpL2NvbXBvbmVudHMvZXVpLWRpYWxvZyc7XG5cbmltcG9ydCB7IExvYWRlclNlcnZpY2UsIEJldHRlclRhYmxlTW9kdWxlLCBCbHVyLCBFZGl0b3JDaGFuZ2VTZWxlY3Rpb24sIEZvY3VzLCBTZWxlY3Rpb25DaGFuZ2UsIFRvb2xiYXJJdGVtQ29uZmlnIH0gZnJvbSAnQGV1aS9jb21wb25lbnRzL2V4dGVybmFscy9xdWlsbCc7XG5pbXBvcnQgeyBFdWlFZGl0b3JJbWFnZURpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vaW1hZ2UtdXJsLWRpYWxvZy9pbWFnZS11cmwtZGlhbG9nLmNvbXBvbmVudCc7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJlZmVyLWNvbnN0XG5sZXQgUXVpbGxCZXR0ZXJUYWJsZSA9IHdpbmRvd1sncXVpbGxCZXR0ZXJUYWJsZSddO1xuXG5AQ29tcG9uZW50KHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICBzZWxlY3RvcjogJ2V1aS1lZGl0b3InLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9ldWktZWRpdG9yLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9zdHlsZXMvX2luZGV4LnNjc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICAvLyBUT0RPOiBDaGVjayB0byBjaGFuZ2UgdGhlIHByb3ZpZGluZyB3YXkuIFByb3ZpZGUgd2l0aCBpbmplY3RvciByZWZlcmVuY2VcbiAgICAgICAgRXVpRGlhbG9nU2VydmljZSxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBFdWlFZGl0b3JDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICAgIGdldCBjbGFzcygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgJ2V1aS1lZGl0b3InLFxuICAgICAgICAgICAgdGhpcy5pc1JlYWRPbmx5ID8gJ2V1aS1lZGl0b3ItLXJlYWRvbmx5JyA6ICcnLFxuICAgICAgICAgICAgdGhpcy5pc1JlYWRPbmx5ICYmIHRoaXMudmFsdWUgPyAnJzogJ2V1aS1lZGl0b3ItLWVtcHR5JyxcbiAgICAgICAgICAgICF0aGlzLmlzUmVhZE9ubHkgPyAnZXVpLWVkaXRvci13cmFwcGVyJyA6ICcnLFxuICAgICAgICBdLmpvaW4oJyAnKS50cmltKCk7XG4gICAgfVxuICAgIEBJbnB1dCgpIGUyZUF0dHIgPSAnZXVpLWVkaXRvcic7XG4gICAgQElucHV0KCkgaWQ6IHN0cmluZztcbiAgICBASW5wdXQoKSBwbGFjZWhvbGRlciA9ICcnO1xuICAgIEBJbnB1dCgpIGZvcm1hdDogJ2h0bWwnIHwgJ2pzb24nID0gJ2h0bWwnO1xuICAgIEBJbnB1dCgpIHRoZW1lOiAnc25vdycgfCAnYnViYmxlJyA9ICdzbm93JztcbiAgICBASW5wdXQoKSBkZWJ1ZzogJ3dhcm4nIHwgJ2xvZycgfCAnZXJyb3InIHwgZmFsc2UgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBjdXN0b21Ub29sYmFyUG9zaXRpb246ICd0b3AnIHwgJ2JvdHRvbScgPSAndG9wJztcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIudGFiaW5kZXgnKVxuICAgIEBJbnB1dCgpIHRhYmluZGV4ID0gJzAnO1xuICAgIEBJbnB1dCgpIG1vZHVsZXM6IFF1aWxsTW9kdWxlcztcbiAgICBASW5wdXQoKSBmb3JtYXRzPzogc3RyaW5nW10gfCBudWxsO1xuICAgIC8vIE5FVyBFVUkgSU5QVVRTXG4gICAgQElucHV0KCkgY3VzdG9tVG9vbGJhckNvbmZpZzogVG9vbGJhckl0ZW1Db25maWdbXTtcbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLmhlaWdodCcpXG4gICAgQElucHV0KCkgaGVpZ2h0OiBzdHJpbmc7XG4gICAgLy8gTkVXIE9VVFBVVFMgPT4gZVVJMTMrIG9ubHlcbiAgICBAT3V0cHV0KCkgZWRpdG9yQ3JlYXRlID0gbmV3IEV2ZW50RW1pdHRlcjx0eXBlb2YgUXVpbGxUeXBlPigpO1xuICAgIEBPdXRwdXQoKSBlZGl0b3JDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEVkaXRvckNoYW5nZVNlbGVjdGlvbiB8IENvbnRlbnRDaGFuZ2U+KCk7XG4gICAgQE91dHB1dCgpIGNvbnRlbnRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPENvbnRlbnRDaGFuZ2U+KCk7XG4gICAgQE91dHB1dCgpIHNlbGVjdGlvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8U2VsZWN0aW9uQ2hhbmdlPigpO1xuICAgIEBPdXRwdXQoKSBmb2N1cyA9IG5ldyBFdmVudEVtaXR0ZXI8Rm9jdXM+KCk7XG4gICAgQE91dHB1dCgpIGJsdXIgPSBuZXcgRXZlbnRFbWl0dGVyPEJsdXI+KCk7XG4gICAgQE91dHB1dCgpIGNoYXJhY3RlcnNDb3VudENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuICAgIEBPdXRwdXQoKSB3b3Jkc0NvdW50Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmV1aS1lZGl0b3InKSB0cnVlOiBib29sZWFuO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLnJlYWRvbmx5JylcbiAgICBnZXQgcmVhZG9ubHkoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNSZWFkT25seSA/ICdyZWFkb25seScgOiBudWxsO1xuICAgIH1cblxuICAgIHB1YmxpYyB2YWx1ZTogc3RyaW5nIHwgYW55ID0gJyc7XG4gICAgcHVibGljIGNoYXJhY3RlcnNDb3VudCA9IDA7XG4gICAgcHVibGljIHdvcmRzQ291bnQgPSAwO1xuICAgIHB1YmxpYyBieXRlc0NvdW50ID0gMDtcbiAgICBwdWJsaWMgaXNGb2N1c2VkID0gZmFsc2U7XG4gICAgcHVibGljIGdlbmVyYXRlZElkOiBzdHJpbmc7XG4gICAgcHVibGljIGZvcm1Db250cm9sOiBGb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgpO1xuICAgIHB1YmxpYyBqc29uVG9IdG1sQ29udGVudDogc3RyaW5nO1xuICAgIHB1YmxpYyB0b29sYmFyQ29uZmlnOiB7IFtpZDogc3RyaW5nXTogeyBsYWJlbDogc3RyaW5nOyBvcHRpb25zOiBhbnlbXTsgZGlhbG9nTWVzc2FnZTogc3RyaW5nIH0gfTtcbiAgICBwcm90ZWN0ZWQgcmVhZHlUb1JlbmRlcjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG1heC1sZW5cbiAgICBAQ29udGVudENoaWxkKGZvcndhcmRSZWYoKCkgPT4gRXVpRWRpdG9yQ3VzdG9tVG9vbGJhclRhZ0RpcmVjdGl2ZSksIHsgc3RhdGljOiBmYWxzZSB9KVxuICAgIGV1aUVkaXRvckN1c3RvbVRvb2xiYXI6IEV1aUVkaXRvckN1c3RvbVRvb2xiYXJUYWdEaXJlY3RpdmU7XG5cbiAgICBASW5wdXQoKVxuICAgIGdldCBpc1JlYWRPbmx5KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNSZWFkT25seTtcbiAgICB9XG4gICAgc2V0IGlzUmVhZE9ubHkodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9pc1JlYWRPbmx5ID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfaXNSZWFkT25seSA9IGZhbHNlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IHNob3dDb3VudGVycygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Nob3dDb3VudGVycztcbiAgICB9XG4gICAgc2V0IHNob3dDb3VudGVycyh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX3Nob3dDb3VudGVycyA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIHByaXZhdGUgX3Nob3dDb3VudGVycyA9IHRydWU7XG4gICAgQElucHV0KClcbiAgICBnZXQgaXNFbmFibGVkT25Gb2N1cygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzRW5hYmxlZE9uRm9jdXM7XG4gICAgfVxuICAgIHNldCBpc0VuYWJsZWRPbkZvY3VzKHZhbHVlKSB7XG4gICAgICAgIHRoaXMuX2lzRW5hYmxlZE9uRm9jdXMgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBwcml2YXRlIF9pc0VuYWJsZWRPbkZvY3VzID0gZmFsc2U7XG4gICAgQElucHV0KClcbiAgICBnZXQgaXNNaW5pbWFsVG9vbGJhcigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzTWluaW1hbFRvb2xiYXI7XG4gICAgfVxuICAgIHNldCBpc01pbmltYWxUb29sYmFyKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5faXNNaW5pbWFsVG9vbGJhciA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIHByaXZhdGUgX2lzTWluaW1hbFRvb2xiYXIgPSBmYWxzZTtcblxuICAgIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWludmFsaWQnKVxuICAgIGdldCBpc0ludmFsaWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc0ludmFsaWQ7XG4gICAgfVxuICAgIHNldCBpc0ludmFsaWQodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9pc0ludmFsaWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBwcml2YXRlIF9pc0ludmFsaWQgPSBmYWxzZTtcblxuICAgIHByaXZhdGUgcXVpbGw6IHR5cGVvZiBRdWlsbFR5cGU7XG4gICAgcHJpdmF0ZSBtaW5pbWFsVG9vbGJhckNvbmZpZzogVG9vbGJhckl0ZW1Db25maWdbXSA9IFtcbiAgICAgICAgeyBuYW1lOiAnaGVhZGluZ3MnIH0sXG4gICAgICAgIHsgbmFtZTogJ2JvbGQnIH0sXG4gICAgICAgIHsgbmFtZTogJ2l0YWxpYycgfSxcbiAgICAgICAgeyBuYW1lOiAndW5kZXJsaW5lJyB9LFxuICAgICAgICB7IG5hbWU6ICdmb250Q29sb3InIH0sXG4gICAgICAgIHsgbmFtZTogJ3RleHRBbGlnbicgfSxcbiAgICAgICAgeyBuYW1lOiAnbGluaycgfSxcbiAgICAgICAgeyBuYW1lOiAnaW1hZ2UnIH0sXG4gICAgICAgIHsgbmFtZTogJ2ltYWdlVXJsJyB9LFxuICAgICAgICB7IG5hbWU6ICdjbGVhbicgfSxcbiAgICAgICAgeyBuYW1lOiAnZGVsZXRlJyB9LFxuICAgICAgICB7IG5hbWU6ICd1bmRvJyB9LFxuICAgICAgICB7IG5hbWU6ICdyZWRvJyB9LFxuICAgICAgICB7IG5hbWU6ICdjb3VudGVycycgfSxcbiAgICBdO1xuICAgIHByaXZhdGUgZGVmYXVsdFRvb2xiYXJDb25maWc6IFRvb2xiYXJJdGVtQ29uZmlnW10gPSBbXG4gICAgICAgIHsgbmFtZTogJ2hlYWRpbmdzJywgbGFiZWw6ICdTdHlsZSAtIEFwcGx5IGFuIEhUTUwgdGFnIG9yIENTUyBjbGFzcyB0byB0aGUgc2VsZWN0ZWQgdGV4dCcsIG9wdGlvbnM6IFsxLCAyLCAzLCA0LCA1LCA2XSB9LFxuICAgICAgICB7IG5hbWU6ICdmb250JywgbGFiZWw6ICdGb250IC0gQ2hhbmdlIHRoZSBmb250IGZhY2UnIH0sXG4gICAgICAgIHsgbmFtZTogJ2JvbGQnLCBsYWJlbDogJ0JvbGQgKEN0cmwgKyBCKSAtIE1ha2UgdGhlIHNlbGVjdGVkIHRleHQgYm9sZCcgfSxcbiAgICAgICAgeyBuYW1lOiAnaXRhbGljJywgbGFiZWw6ICdJdGFsaWMgKEN0cmwgKyBJKSAtIEl0YWxpY2l6ZSB0aGUgc2VsZWN0ZWQgdGV4dCcgfSxcbiAgICAgICAgeyBuYW1lOiAndW5kZXJsaW5lJywgbGFiZWw6ICdVbmRlcmxpbmUgKEN0cmwgKyBVKSAtIFVuZGVybGluZSB0aGUgc2VsZWN0ZWQgdGV4dCcgfSxcbiAgICAgICAgeyBuYW1lOiAnc3RyaWtlJywgbGFiZWw6ICdTdHJpa2V0aHJvdWdoIC0gRHJhdyBhIGxpbmUgdG8gdGhlIG1pZGRsZSBvZiB0aGUgc2VsZWN0ZWQgdGV4dCcgfSxcbiAgICAgICAgeyBuYW1lOiAnZm9udENvbG9yJywgbGFiZWw6ICdGb250IENvbG9yIC0gQ2hhbmdlIHRoZSB0ZXh0IGNvbG9yJyB9LFxuICAgICAgICB7IG5hbWU6ICdmb250QmFja2dyb3VuZCcsIGxhYmVsOiAnRm9udCBCYWNrZ3JvdW5kIC0gQ2hhbmdlIHRoZSB0ZXh0IGJhY2tncm91bmQgY29sb3InIH0sXG4gICAgICAgIHsgbmFtZTogJ3N1YnNjcmlwdCcsIGxhYmVsOiAnU3Vic2NyaXB0IC0gQ3JlYXRlIHNzbWFsbCBsZXR0ZXJzIGJlbG93IHRoZSB0ZXh0IGJhc2VsaW5lJyB9LFxuICAgICAgICB7IG5hbWU6ICdzdXBlcnNjcmlwdCcsIGxhYmVsOiAnU3VwZXJzY3JpcHQgLSBDcmVhdGUgc21hbGwgbGV0dGVycyBhYm92ZSB0aGUgbGluZSBvZiB0aGUgdGV4dCcgfSxcbiAgICAgICAgeyBuYW1lOiAndGV4dEFsaWduJywgbGFiZWw6ICdUZXh0IEFsaWduIC0gQWxpZ24gdGhlIHRleHQgdG8gdGhlIHNlbGVjdGVkIHBvc2l0aW9uOiBsZWZ0IChkZWZhdWx0KSwgY2VudGVyLCByaWdodCBvciBqdXN0aWZ5JyB9LFxuICAgICAgICB7IG5hbWU6ICdvcmRlcmVkTGlzdCcsIGxhYmVsOiAnTnVtYmVyaW5nIC0gU3RhcnQgYW4gb3JkZXJlZCBsaXN0JyB9LFxuICAgICAgICB7IG5hbWU6ICdidWxsZXRMaXN0JywgbGFiZWw6ICdCdWxsZXRzIC0gU3RhcnQgYSBidWxsZXRlZCBsaXN0JyB9LFxuICAgICAgICB7IG5hbWU6ICdpbmRlbnRMZXNzJywgbGFiZWw6ICdEZWNyZWFzZSBJbmRlbnQgLSBEZWNyZWFzZSB0aGUgaW5kZW50IGxldmVsIG9mIHRoZSBwYXJhZ3JhcGgnIH0sXG4gICAgICAgIHsgbmFtZTogJ2luZGVudE1vcmUnLCBsYWJlbDogJ0luY3JlYXNlIEluZGVudCAtIEluY3JlYXNlIHRoZSBpbmRlbnQgbGV2ZWwgb2YgdGhlIHBhcmFncmFwaCcgfSxcbiAgICAgICAgeyBuYW1lOiAnYmxvY2txdW90ZScsIGxhYmVsOiAnQmxvY2txdW90ZSAtIENyZWF0ZSBhIHF1b3RlZCBibG9jayBvZiB0aGUgc2VsZWN0ZWQgdGV4dCcgfSxcbiAgICAgICAgeyBuYW1lOiAnY29kZUJsb2NrJywgbGFiZWw6ICdJbnNlcnQgQ29kZSBCbG9jayAtIEluc2VydCBhIGNvZGUgYmxvY2sgYXQgdGhlIGN1cnNvciByb3cgcG9zaXRpb24nIH0sXG4gICAgICAgIHsgbmFtZTogJ2xpbmsnLCBsYWJlbDogJ0luc2VydCBIeXBlcmxpbmsgKEN0cmwgKyBLKSAtIENyZWF0ZSBhIGxpbmsgdG8gYSBXZWIgcGFnZSwgYSBwaWN0dXJlLCBhbiBlLW1haWwgYWRkcmVzcyBvciBhIHByb2dyYW0nIH0sXG4gICAgICAgIHsgbmFtZTogJ2ltYWdlJywgbGFiZWw6ICdJbnNlcnQgUGljdHVyZSAtIEluc2VydCBhIHBpY3R1cmUgZnJvbSBhIGZpbGUnIH0sXG4gICAgICAgIHsgbmFtZTogJ2ltYWdlVXJsJywgbGFiZWw6ICdJbnNlcnQgUGljdHVyZSBmcm9tIFVSTCAtIEluc2VydCBhIHBpY3R1cmUgZnJvbSBhIHJlbW90ZSBVUkwnLCBkaWFsb2dNZXNzYWdlOiAnRW50ZXIgaW1hZ2UgbGluayBVUkwnIH0sXG4gICAgICAgIHsgbmFtZTogJ3ZpZGVvJywgbGFiZWw6ICdJbnNlcnQgVmlkZW8gLSBJbnNlcnQgYSB2aWRlbyBmcm9tIGEgZmlsZScgfSxcbiAgICAgICAgeyBuYW1lOiAndGFibGUnLCBsYWJlbDogJ0luc2VydCBUYWJsZSAtIEluc2VydCBhIDN4MyByb3dzL2NvbHMgdGFibGUnIH0sXG4gICAgICAgIHsgbmFtZTogJ2NsZWFuJywgbGFiZWw6ICdSZW1vdmUgU3R5bGVzIC0gUmVtb3ZlIHRoZSBzdHlsZXMgb2YgdGhlIHNlbGVjdGVkIHRleHQnIH0sXG4gICAgICAgIHsgbmFtZTogJ2RlbGV0ZScsIGxhYmVsOiBcIkRlbGV0ZSBjb250ZW50IC0gUGVybWFuZW50bHkgZGVsZXRlcyBlZGl0b3IncyBjb250ZW50c1wiIH0sXG4gICAgICAgIHsgbmFtZTogJ3VuZG8nLCBsYWJlbDogJ1VuZG8gKEN0cmwgKyBaKSAtIENhbmNlbHMgdGhlIHByZXZpb3VzIGFjdGlvbicgfSxcbiAgICAgICAgeyBuYW1lOiAncmVkbycsIGxhYmVsOiAnUmVkbyAoQ3RybCArIFkpIC0gRG8gdGhlIG5leHQgaGlzdG9yeSBhY3Rpb24gYWdhaW4nIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdjb3VudGVycycsXG4gICAgICAgICAgICBsYWJlbDogJ0NvdW50ZXJzIC0gQ2hhcmFjdGVycyBhbmQgd29yZHMgY291bnRlcnMgKHN0cmlwcGVkIEh0bWwpJyxcbiAgICAgICAgICAgIG9wdGlvbnM6IFtcbiAgICAgICAgICAgICAgICB7IG5hbWU6ICdjaGFyYWN0ZXJzJywgbGFiZWw6ICdDaGFyYWN0ZXJzJyB9LFxuICAgICAgICAgICAgICAgIHsgbmFtZTogJ3dvcmRzJywgbGFiZWw6ICdXb3JkcycgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgXTtcbiAgICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZXVpRGlhbG9nU2VydmljZTogRXVpRGlhbG9nU2VydmljZSxcbiAgICAgICAgICAgICAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBuZ0NvbnRyb2w6IE5nQ29udHJvbCxcbiAgICAgICAgICAgICAgICBwcml2YXRlIGxvYWRlcjogTG9hZGVyU2VydmljZSkge1xuICAgICAgICB0aGlzLm5nQ29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5sb2FkZXIubG9hZCgpLnN1YnNjcmliZSh7XG4gICAgICAgICAgICBjb21wbGV0ZTogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMucmVhZHlUb1JlbmRlciA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5uZ0NvbnRyb2wuc3RhdHVzQ2hhbmdlcy5waXBlKHN0YXJ0V2l0aCh0aGlzLm5nQ29udHJvbC5jb250cm9sLnN0YXR1cyksIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKChzdGF0dXMpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc0ludmFsaWQgPSBzdGF0dXMgIT09ICdWQUxJRCc7XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICB0aGlzLmdlbmVyYXRlZElkID0gdGhpcy5pZCA/IHRoaXMuaWQgOiAnZXVpLWVkaXRvci0nICsgKE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDEwMDAwMDApICsgMSkudG9TdHJpbmcoKTtcblxuICAgICAgICAgICAgICAgIHRoaXMudG9vbGJhckNvbmZpZyA9IHt9O1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5jdXN0b21Ub29sYmFyQ29uZmlnICYmICF0aGlzLmlzTWluaW1hbFRvb2xiYXIpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kZWZhdWx0VG9vbGJhckNvbmZpZy5mb3JFYWNoKCh0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRvb2xiYXJDb25maWcgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4udGhpcy50b29sYmFyQ29uZmlnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0Lm5hbWVdOiB7IGxhYmVsOiB0LmxhYmVsLCBvcHRpb25zOiB0Lm9wdGlvbnMsIGRpYWxvZ01lc3NhZ2U6IHQuZGlhbG9nTWVzc2FnZSB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuY3VzdG9tVG9vbGJhckNvbmZpZyAmJiAhdGhpcy5pc01pbmltYWxUb29sYmFyKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY3VzdG9tVG9vbGJhckNvbmZpZy5mb3JFYWNoKCh0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsYWJlbCA9ICF0LmxhYmVsID8gdGhpcy5kZWZhdWx0VG9vbGJhckNvbmZpZy5maW5kKChjKSA9PiBjLm5hbWUgPT09IHQubmFtZSkubGFiZWwgOiB0LmxhYmVsO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG9wdGlvbnMgPSAhdC5vcHRpb25zID8gdGhpcy5kZWZhdWx0VG9vbGJhckNvbmZpZy5maW5kKChjKSA9PiBjLm5hbWUgPT09IHQubmFtZSkub3B0aW9ucyA6IHQub3B0aW9ucztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGQgPSAhdC5kaWFsb2dNZXNzYWdlID8gdGhpcy5kZWZhdWx0VG9vbGJhckNvbmZpZy5maW5kKChjKSA9PiBjLm5hbWUgPT09IHQubmFtZSkuZGlhbG9nTWVzc2FnZSA6IHQuZGlhbG9nTWVzc2FnZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHQubmFtZSA9PT0gJ2NvdW50ZXJzJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdC5vcHRpb25zKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMgPSB0aGlzLmRlZmF1bHRUb29sYmFyQ29uZmlnLmZpbmQoKGMpID0+IGMubmFtZSA9PT0gdC5uYW1lKS5vcHRpb25zO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMgPSB0Lm9wdGlvbnMubWFwKChvcHRpb24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG9wdGlvbkxhYmVsID0gb3B0aW9uLmxhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBvcHRpb24ubGFiZWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHRoaXMuZGVmYXVsdFRvb2xiYXJDb25maWdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmZpbmQoKGR0YykgPT4gZHRjLm5hbWUgPT09ICdjb3VudGVycycpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5vcHRpb25zLmZpbmQoKG8pID0+IG8ubmFtZSA9PT0gb3B0aW9uLm5hbWUpLmxhYmVsO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgbmFtZTogb3B0aW9uLm5hbWUsIGxhYmVsOiBvcHRpb25MYWJlbCB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudG9vbGJhckNvbmZpZyA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi50aGlzLnRvb2xiYXJDb25maWcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3QubmFtZV06IHsgbGFiZWwsIG9wdGlvbnMsIGRpYWxvZ01lc3NhZ2U6IGQgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzTWluaW1hbFRvb2xiYXIpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5taW5pbWFsVG9vbGJhckNvbmZpZy5mb3JFYWNoKCh0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsYWJlbCA9ICF0LmxhYmVsID8gdGhpcy5kZWZhdWx0VG9vbGJhckNvbmZpZy5maW5kKChjKSA9PiBjLm5hbWUgPT09IHQubmFtZSkubGFiZWwgOiB0LmxhYmVsO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9ucyA9ICF0Lm9wdGlvbnMgPyB0aGlzLmRlZmF1bHRUb29sYmFyQ29uZmlnLmZpbmQoKGMpID0+IGMubmFtZSA9PT0gdC5uYW1lKS5vcHRpb25zIDogdC5vcHRpb25zO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZCA9ICF0LmRpYWxvZ01lc3NhZ2UgPyB0aGlzLmRlZmF1bHRUb29sYmFyQ29uZmlnLmZpbmQoKGMpID0+IGMubmFtZSA9PT0gdC5uYW1lKS5kaWFsb2dNZXNzYWdlIDogdC5kaWFsb2dNZXNzYWdlO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRvb2xiYXJDb25maWcgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4udGhpcy50b29sYmFyQ29uZmlnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0Lm5hbWVdOiB7IGxhYmVsLCBvcHRpb25zLCBkaWFsb2dNZXNzYWdlOiBkIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XG4gICAgICAgIHRoaXMuZGVzdHJveSQudW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdjbGljaycpXG4gICAgQEhvc3RMaXN0ZW5lcignZm9jdXNpbicpXG4gICAgcHVibGljIGVuYWJsZUVkaXRvck9uRm9jdXMoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzRW5hYmxlZE9uRm9jdXMgJiYgdGhpcy5pc1JlYWRPbmx5KSB7XG4gICAgICAgICAgICB0aGlzLmlzUmVhZE9ubHkgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBpbWFnZVVybEhhbmRsZXIoKTogdm9pZCB7XG4gICAgICAgIGxldCBpbWFnZVVybERpYWxvZ0Zvcm06IEZvcm1Hcm91cCA9IG51bGw7XG4gICAgICAgIHRoaXMuZXVpRGlhbG9nU2VydmljZS5vcGVuRGlhbG9nKFxuICAgICAgICAgICAgbmV3IEV1aURpYWxvZ0NvbmZpZyh7XG4gICAgICAgICAgICAgICAgdGl0bGU6IHRoaXMudG9vbGJhckNvbmZpZy5pbWFnZVVybC5kaWFsb2dNZXNzYWdlLFxuICAgICAgICAgICAgICAgIGlzSGFuZGxlQ2xvc2VPbkFjY2VwdDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBib2R5Q29tcG9uZW50OiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudDogRXVpRWRpdG9ySW1hZ2VEaWFsb2dDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZzoge1xuICAgICAgICAgICAgICAgICAgICAgICAgb25Gb3JtVmFsdWVDaGFuZ2U6IChmb3JtOiBGb3JtR3JvdXApOiB2b2lkID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbWFnZVVybERpYWxvZ0Zvcm0gPSBmb3JtO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGFjY2VwdDogKCk6IHZvaWQgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoaW1hZ2VVcmxEaWFsb2dGb3JtICYmIGltYWdlVXJsRGlhbG9nRm9ybS52YWxpZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ldWlEaWFsb2dTZXJ2aWNlLmNsb3NlRGlhbG9nKCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJhbmdlID0gdGhpcy5xdWlsbC5nZXRTZWxlY3Rpb24oKSB8fCB7IGluZGV4OiAwLCBsZW5ndGg6IDAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucXVpbGwuaW5zZXJ0RW1iZWQocmFuZ2UuaW5kZXgsICdpbWFnZScsIGltYWdlVXJsRGlhbG9nRm9ybS5nZXQoJ3VybCcpLnZhbHVlLCAndXNlcicpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIGVkaXRvclVuZG8oKTogdm9pZCB7XG4gICAgICAgIHRoaXMucXVpbGxbJ2hpc3RvcnknXS51bmRvKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGVkaXRvclJlZG8oKTogdm9pZCB7XG4gICAgICAgIHRoaXMucXVpbGxbJ2hpc3RvcnknXS5yZWRvKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGVkaXRvckRlbGV0ZUNvbnRlbnQoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IG5ldyBFdWlEaWFsb2dDb25maWcoe1xuICAgICAgICAgICAgdGl0bGU6ICdEZWxldGUgY29udGVudCcsXG4gICAgICAgICAgICBjb250ZW50OiBcIjxwPkFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgZWRpdG9yJ3MgY29udGVudD88L3A+XCIsXG4gICAgICAgICAgICBoYXNDbG9zZUJ1dHRvbjogZmFsc2UsXG4gICAgICAgICAgICBhY2NlcHQ6ICgpOiB2b2lkID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnF1aWxsLnNldENvbnRlbnRzKG51bGwpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5ldWlEaWFsb2dTZXJ2aWNlLm9wZW5EaWFsb2coY29uZmlnKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaW5zZXJ0VGFibGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudGFibGVNb2R1bGUuaW5zZXJ0VGFibGUoMywgMyk7XG4gICAgfVxuXG4gICAgZ2V0IGhhc0ltYWdlRmVhdHVyZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZXVpRWRpdG9yQ3VzdG9tVG9vbGJhclxuICAgICAgICAgICAgPyB0aGlzLmV1aUVkaXRvckN1c3RvbVRvb2xiYXI/LmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcucWwtaW1hZ2UnKVxuICAgICAgICAgICAgOiB0aGlzLnRvb2xiYXJDb25maWcuaW1hZ2U7XG4gICAgfVxuXG4gICAgcHVibGljIF9vbkVkaXRvckNyZWF0ZWQocXVpbGw6IHR5cGVvZiBRdWlsbFR5cGUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5xdWlsbCA9IHF1aWxsO1xuXG4gICAgICAgIGlmICh0aGlzLmlzRW5hYmxlZE9uRm9jdXMpIHtcbiAgICAgICAgICAgIHRoaXMucXVpbGwuZm9jdXMoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmZvcm1hdCA9PT0gJ2h0bWwnKSB7XG4gICAgICAgICAgICBjb25zdCBkZWx0YSA9IHRoaXMucXVpbGwuY2xpcGJvYXJkLmNvbnZlcnQoeyBodG1sOiB0aGlzLnZhbHVlIGFzIHN0cmluZyB9KTtcbiAgICAgICAgICAgIHRoaXMuZm9ybUNvbnRyb2wucGF0Y2hWYWx1ZShkZWx0YSk7XG4gICAgICAgICAgICB0aGlzLnF1aWxsLnNldENvbnRlbnRzKGRlbHRhKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmZvcm1hdCA9PT0gJ2pzb24nKSB7XG4gICAgICAgICAgICB0aGlzLmZvcm1Db250cm9sLnBhdGNoVmFsdWUodGhpcy52YWx1ZSk7XG4gICAgICAgICAgICB0aGlzLnF1aWxsLnNldENvbnRlbnRzKEpTT04ucGFyc2UodGhpcy52YWx1ZSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF0aGlzLmhhc0ltYWdlRmVhdHVyZSkge1xuICAgICAgICAgICAgcXVpbGwuY2xpcGJvYXJkLmFkZE1hdGNoZXIoJ0lNRycsIChlbGVtZW50OiBFbGVtZW50LCBkZWx0YTogRGVsdGEpID0+IG5ldyBEZWx0YSgpLmluc2VydCgnJykpO1xuICAgICAgICAgICAgcXVpbGwuY2xpcGJvYXJkLmFkZE1hdGNoZXIoJ1BJQ1RVUkUnLCAoZWxlbWVudDogRWxlbWVudCwgZGVsdGE6IERlbHRhKSA9PiBuZXcgRGVsdGEoKS5pbnNlcnQoJycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZWRpdG9yQ3JlYXRlLmVtaXQocXVpbGwpO1xuICAgIH1cblxuICAgIHB1YmxpYyBfb25FZGl0b3JDaGFuZ2VkKGV2ZW50OiBFZGl0b3JDaGFuZ2VTZWxlY3Rpb24gfCBDb250ZW50Q2hhbmdlIHwgRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc29sZS53YXJuKCdvbkVkaXRvckNoYW5nZWQoKSBldmVudCBpcyBERVBSRUNBVEVEIHBsZWFzZSB1c2UgY29udGVudENoYW5nZSgpIGV2ZW50IGluc3RlYWQuJyk7XG4gICAgICAgIHRoaXMuZWRpdG9yQ2hhbmdlLmVtaXQoZXZlbnQgYXMgRWRpdG9yQ2hhbmdlU2VsZWN0aW9uKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgX29uQ29udGVudENoYW5nZWQoZXZlbnQ6IENvbnRlbnRDaGFuZ2UpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZm9ybWF0ID09PSAnaHRtbCcpIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSBldmVudC5odG1sO1xuICAgICAgICAgICAgdGhpcy5jYWxjdWxhdGVDb3VudGVycyh0aGlzLnZhbHVlIGFzIHN0cmluZyk7XG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuaHRtbEVudGl0aWVzRGVjb2RlKHRoaXMudmFsdWUgYXMgc3RyaW5nKSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuZm9ybWF0ID09PSAnanNvbicpIHtcbiAgICAgICAgICAgIGlmIChldmVudC50ZXh0ICE9PSAnXFxuJykge1xuICAgICAgICAgICAgICAgIHRoaXMudmFsdWUgPSBldmVudC5jb250ZW50O1xuICAgICAgICAgICAgICAgIHRoaXMuY2FsY3VsYXRlQ291bnRlcnMoZXZlbnQudGV4dCk7XG4gICAgICAgICAgICAgICAgdGhpcy5qc29uVG9IdG1sQ29udGVudCA9IHRoaXMuaHRtbEVudGl0aWVzRGVjb2RlKEpTT04uc3RyaW5naWZ5KHRoaXMudmFsdWUpKTtcbiAgICAgICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuanNvblRvSHRtbENvbnRlbnQpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlID0gbnVsbDtcbiAgICAgICAgICAgICAgICB0aGlzLmNhbGN1bGF0ZUNvdW50ZXJzKCcnKTtcbiAgICAgICAgICAgICAgICB0aGlzLmpzb25Ub0h0bWxDb250ZW50ID0gJyc7XG4gICAgICAgICAgICAgICAgdGhpcy5vbkNoYW5nZShudWxsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNvbnRlbnRDaGFuZ2UuZW1pdChldmVudCk7IC8vIE5ldyBlbWl0dGVyXG4gICAgICAgIHRoaXMuX29uRWRpdG9yQ2hhbmdlZChldmVudCk7IC8vIFN5bmMgd2l0aCBlZGl0b3IgY2hhbmdlIGV2ZW50IHNpbmNlIGl0J3MgZHVwbGljYXRlZCBldmVudFxuICAgIH1cblxuICAgIHB1YmxpYyBfb25TZWxlY3Rpb25DaGFuZ2VkKGV2ZW50OiBTZWxlY3Rpb25DaGFuZ2UpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2UuZW1pdChldmVudCk7XG4gICAgfVxuXG4gICAgcHVibGljIF9vbkZvY3VzKGV2ZW50OiBGb2N1cyk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzRm9jdXNlZCA9IHRydWU7XG4gICAgICAgIHRoaXMuZm9jdXMuZW1pdChldmVudCk7XG4gICAgfVxuXG4gICAgcHVibGljIF9vbkJsdXIoZXZlbnQ6IEJsdXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc0ZvY3VzZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5vblRvdWNoKCk7XG4gICAgICAgIHRoaXMuYmx1ci5lbWl0KGV2ZW50KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uVG91Y2ggPSBmbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZSB8fCBudWxsO1xuICAgICAgICB0aGlzLmpzb25Ub0h0bWxDb250ZW50ID0gdGhpcy52YWx1ZTtcblxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLnF1aWxsKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZm9ybWF0ID09PSAnaHRtbCcpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGVsdGEgPSB0aGlzLnF1aWxsLmNsaXBib2FyZC5jb252ZXJ0KHsgaHRtbDogdGhpcy52YWx1ZSBhcyBzdHJpbmcgfSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybUNvbnRyb2wucGF0Y2hWYWx1ZShkZWx0YSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucXVpbGwuc2V0Q29udGVudHMoZGVsdGEpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmZvcm1hdCA9PT0gJ2pzb24nKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybUNvbnRyb2wucGF0Y2hWYWx1ZSh0aGlzLnZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgLy8gdGhpcy5xdWlsbC5zZXRDb250ZW50cyhKU09OLnBhcnNlKHRoaXMudmFsdWUpKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB0aGlzLmNhbGN1bGF0ZUNvdW50ZXJzKHRoaXMudmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCB0YWJsZU1vZHVsZSgpOiBCZXR0ZXJUYWJsZU1vZHVsZSB7XG4gICAgICAgIHJldHVybiB0aGlzLnF1aWxsLmdldE1vZHVsZSgnYmV0dGVyLXRhYmxlJyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvbkNoYW5nZTogYW55ID0gKCkgPT4ge307XG5cbiAgICBwcml2YXRlIG9uVG91Y2g6IGFueSA9ICgpID0+IHt9O1xuXG4gICAgcHJpdmF0ZSBodG1sRW50aXRpZXNEZWNvZGUoY29udGVudDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgbGV0IGMgPSBjb250ZW50O1xuICAgICAgICBpZiAoYykge1xuICAgICAgICAgICAgYyA9IGMucmVwbGFjZSgnJmFtcDsnLCAnJicpO1xuICAgICAgICAgICAgYyA9IGMucmVwbGFjZSgnJm5ic3A7JywgJyAnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjO1xuICAgIH1cblxuICAgIGdldCBoYXNDaGFyYWN0ZXJzQ291bnRlcigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudG9vbGJhckNvbmZpZy5jb3VudGVycy5vcHRpb25zLmZpbmQoKG8pID0+IG8ubmFtZSA9PT0gJ2NoYXJhY3RlcnMnKTtcbiAgICB9XG5cbiAgICBnZXQgY2hhcmFjdGVyc0NvdW50ZXJMYWJlbCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy50b29sYmFyQ29uZmlnLmNvdW50ZXJzLm9wdGlvbnMuZmluZCgobykgPT4gby5uYW1lID09PSAnY2hhcmFjdGVycycpPy5sYWJlbDtcbiAgICB9XG5cbiAgICBnZXQgaGFzV29yZHNDb3VudGVyKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy50b29sYmFyQ29uZmlnLmNvdW50ZXJzLm9wdGlvbnMuZmluZCgobykgPT4gby5uYW1lID09PSAnd29yZHMnKTtcbiAgICB9XG5cbiAgICBnZXQgd29yZHNDb3VudGVyTGFiZWwoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudG9vbGJhckNvbmZpZy5jb3VudGVycy5vcHRpb25zLmZpbmQoKG8pID0+IG8ubmFtZSA9PT0gJ3dvcmRzJyk/LmxhYmVsO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2FsY3VsYXRlQ291bnRlcnMoY29udGVudDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGxldCB0ZXh0OiBzdHJpbmc7XG4gICAgICAgIGNvbnN0IHJlZ2V4ID0gL1xccysvO1xuICAgICAgICBpZiAodGhpcy5mb3JtYXQgPT09ICdodG1sJykge1xuICAgICAgICAgICAgaWYgKGNvbnRlbnQgJiYgY29udGVudC5sZW5ndGggPiAwICYmIHRoaXMucXVpbGwpIHtcbiAgICAgICAgICAgICAgICB0ZXh0ID0gdGhpcy5zdHJpcEh0bWwoY29udGVudCk7XG4gICAgICAgICAgICAgICAgdGhpcy5jaGFyYWN0ZXJzQ291bnQgPSB0ZXh0Lmxlbmd0aDtcbiAgICAgICAgICAgICAgICB0ZXh0ID0gdGhpcy5jbGVhbkh0bWwoY29udGVudCk7XG4gICAgICAgICAgICAgICAgdGhpcy53b3Jkc0NvdW50ID0gIXRleHQgPyAwIDogdGV4dC50cmltKCkuc3BsaXQocmVnZXgpLmZpbHRlcih0ID0+IHQgIT09ICcnKS5sZW5ndGg7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuY2hhcmFjdGVyc0NvdW50ID0gMDtcbiAgICAgICAgICAgICAgICB0aGlzLndvcmRzQ291bnQgPSAwO1xuICAgICAgICAgICAgICAgIHRoaXMuYnl0ZXNDb3VudCA9IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5mb3JtYXQgPT09ICdqc29uJykge1xuICAgICAgICAgICAgaWYgKGNvbnRlbnQgJiYgdGhpcy5xdWlsbCkge1xuICAgICAgICAgICAgICAgIHRleHQgPSB0aGlzLnN0cmlwSHRtbCh0aGlzLnF1aWxsLnJvb3QuaW5uZXJIVE1MKTtcbiAgICAgICAgICAgICAgICB0aGlzLmNoYXJhY3RlcnNDb3VudCA9IHRleHQubGVuZ3RoO1xuXG4gICAgICAgICAgICAgICAgdGV4dCA9IHRoaXMuY2xlYW5IdG1sKHRoaXMucXVpbGwucm9vdC5pbm5lckhUTUwpO1xuICAgICAgICAgICAgICAgIHRoaXMud29yZHNDb3VudCA9ICF0ZXh0ID8gMCA6IHRleHQudHJpbSgpLnNwbGl0KHJlZ2V4KS5maWx0ZXIodCA9PiB0ICE9PSAnJykubGVuZ3RoO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNoYXJhY3RlcnNDb3VudCA9IDA7XG4gICAgICAgICAgICAgICAgdGhpcy53b3Jkc0NvdW50ID0gMDtcbiAgICAgICAgICAgICAgICB0aGlzLmJ5dGVzQ291bnQgPSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jaGFyYWN0ZXJzQ291bnRDaGFuZ2UuZW1pdCh0aGlzLmNoYXJhY3RlcnNDb3VudCk7XG5cbiAgICAgICAgdGhpcy53b3Jkc0NvdW50Q2hhbmdlLmVtaXQodGhpcy53b3Jkc0NvdW50KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0cmlwSHRtbChjb250ZW50OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCByZWdleCA9IC8oPChbXj5dKyk+KS9nbTtcbiAgICAgICAgY29uc3QgY29udGVudFRvUmVwbGFjZSA9IGNvbnRlbnQucmVwbGFjZShyZWdleCwgJycpO1xuICAgICAgICByZXR1cm4gY29udGVudFRvUmVwbGFjZS5yZXBsYWNlKC9bXFx1MjAwQi1cXHUyMDBEXFx1RkVGRl0vZywgJycpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2xlYW5IdG1sKGNvbnRlbnQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGNvbnRlbnRUb1JlcGxhY2UgPSBjb250ZW50LnJlcGxhY2UoLzxbXj5dKj4vZywgJycpO1xuICAgICAgICByZXR1cm4gY29udGVudFRvUmVwbGFjZS5yZXBsYWNlKC9bXFx1MjAwQi1cXHUyMDBEXFx1RkVGRl0vZywgJycpO1xuICAgIH1cbn1cblxuLyogZXNsaW50LWRpc2FibGUgKi9cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ2V1aUVkaXRvckN1c3RvbVRvb2xiYXInIH0pXG5leHBvcnQgY2xhc3MgRXVpRWRpdG9yQ3VzdG9tVG9vbGJhclRhZ0RpcmVjdGl2ZSB7XG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpIGVsZW1lbnRDbGFzcyA9ICdldWktZWRpdG9yLWN1c3RvbS10b29sYmFyJztcblxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7fVxufVxuLyogZXNsaW50LWVuYWJsZSAqL1xuXG4vKipcbiAqIFBpcGUgdG8gcmVtb3ZlIGNsYXNzZXMgZnJvbSB0aGUgZWRpdG9yXG4gKi9cbkBQaXBlKHsgbmFtZTogJ2NsYXNzRmlsdGVyJyB9KVxuZXhwb3J0IGNsYXNzIENsYXNzRmlsdGVyUGlwZSB7XG4gICAgdHJhbnNmb3JtKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdmFsdWVcbiAgICAgICAgICAgIC5yZXBsYWNlKC9ldWktZWRpdG9yLXdyYXBwZXIvZywgJycpXG4gICAgICAgICAgICAucmVwbGFjZSgvZXVpLWVkaXRvci0tcmVhZG9ubHkvZywgJycpXG4gICAgICAgICAgICAucmVwbGFjZSgvZXVpLWVkaXRvci0tZW1wdHkvZywgJycpO1xuICAgIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJyZWFkeVRvUmVuZGVyXCI+XG5AaWYgKCFpc1JlYWRPbmx5KSB7XG4gICAgPHF1aWxsLWVkaXRvclxuICAgICAgICBbaWRdPVwiZ2VuZXJhdGVkSWRcIlxuICAgICAgICBjbGFzcz1cInt7IGNsYXNzIHwgY2xhc3NGaWx0ZXIgfX1cIlxuICAgICAgICBbY2xhc3MuZXVpLWVkaXRvci0tZm9jdXNlZF09XCJpc0ZvY3VzZWRcIlxuICAgICAgICBbZm9ybWF0XT1cImZvcm1hdFwiXG4gICAgICAgIFtmb3JtYXRzXT1cImZvcm1hdHNcIlxuICAgICAgICBbc2FuaXRpemVdPVwidHJ1ZVwiXG4gICAgICAgIFttb2R1bGVzXT1cIm1vZHVsZXNcIlxuICAgICAgICBbdGhlbWVdPVwidGhlbWVcIlxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgICBbY3VzdG9tVG9vbGJhclBvc2l0aW9uXT1cImN1c3RvbVRvb2xiYXJQb3NpdGlvblwiXG4gICAgICAgIFtmb3JtQ29udHJvbF09XCJmb3JtQ29udHJvbFwiXG4gICAgICAgIFtkZWJ1Z109XCJkZWJ1Z1wiXG4gICAgICAgIFt0YWJpbmRleF09XCJ0YWJpbmRleFwiXG4gICAgICAgIFtwcmVzZXJ2ZVdoaXRlc3BhY2VdPVwidHJ1ZVwiXG4gICAgICAgIFtoYXNJbWFnZUZlYXR1cmVdPVwiaGFzSW1hZ2VGZWF0dXJlXCJcbiAgICAgICAgKG9uRWRpdG9yQ3JlYXRlZCk9XCJfb25FZGl0b3JDcmVhdGVkKCRldmVudClcIlxuICAgICAgICAob25FZGl0b3JDaGFuZ2VkKT1cIl9vbkVkaXRvckNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgIChvbkNvbnRlbnRDaGFuZ2VkKT1cIl9vbkNvbnRlbnRDaGFuZ2VkKCRldmVudClcIlxuICAgICAgICAob25TZWxlY3Rpb25DaGFuZ2VkKT1cIl9vblNlbGVjdGlvbkNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgIChvbkZvY3VzKT1cIl9vbkZvY3VzKCRldmVudClcIlxuICAgICAgICAob25CbHVyKT1cIl9vbkJsdXIoJGV2ZW50KVwiPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwiIWV1aUVkaXRvckN1c3RvbVRvb2xiYXJcIiBxdWlsbC1lZGl0b3ItdG9vbGJhcj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAqbmdJZj1cInRvb2xiYXJDb25maWcuaGVhZGluZ3NcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwicWwtZm9ybWF0c1wiXG4gICAgICAgICAgICAgICAgcm9sZT1cImFwcGxpY2F0aW9uXCJcbiAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiU2VsZWN0IGhlYWRpbmdzIHN0eWxlXCJcbiAgICAgICAgICAgICAgICBldWlUb29sdGlwPVwie3sgdG9vbGJhckNvbmZpZy5oZWFkaW5ncy5sYWJlbCB9fVwiPlxuICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJxbC1oZWFkZXJcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInRvb2xiYXJDb25maWcuaGVhZGluZ3MubGFiZWxcIj5cbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cInt7IHZhbHVlIH19XCIgKm5nRm9yPVwibGV0IHZhbHVlIG9mIHRvb2xiYXJDb25maWcuaGVhZGluZ3Mub3B0aW9uc1wiPkhlYWRpbmcge3sgdmFsdWUgfX08L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBzZWxlY3RlZD5Ob3JtYWw8L29wdGlvbj5cbiAgICAgICAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICpuZ0lmPVwidG9vbGJhckNvbmZpZy5mb250XCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInFsLWZvcm1hdHNcIlxuICAgICAgICAgICAgICAgIHJvbGU9XCJhcHBsaWNhdGlvblwiXG4gICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIlNlbGVjdCBmb250IHN0eWxlXCJcbiAgICAgICAgICAgICAgICBldWlUb29sdGlwPVwie3sgdG9vbGJhckNvbmZpZy5mb250LmxhYmVsIH19XCI+XG4gICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cInFsLWZvbnRcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInRvb2xiYXJDb25maWcuZm9udC5sYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHNlbGVjdGVkPlNhbnMgU2VyaWY8L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cInNlcmlmXCI+U2VyaWY8L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIm1vbm9zcGFjZVwiPk1vbm9zcGFjZTwvb3B0aW9uPlxuICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidG9vbGJhckNvbmZpZy5ib2xkIHx8IHRvb2xiYXJDb25maWcuaXRhbGljIHx8IHRvb2xiYXJDb25maWcudW5kZXJsaW5lIHx8IHRvb2xiYXJDb25maWcuc3RyaWtlXCIgY2xhc3M9XCJxbC1mb3JtYXRzXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInRvb2xiYXJDb25maWcuYm9sZFwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicWwtYm9sZFwiXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInRvb2xiYXJDb25maWcuYm9sZC5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgIGV1aVRvb2x0aXA9XCJ7eyB0b29sYmFyQ29uZmlnLmJvbGQubGFiZWwgfX1cIj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwidG9vbGJhckNvbmZpZy5pdGFsaWNcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInFsLWl0YWxpY1wiXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInRvb2xiYXJDb25maWcuaXRhbGljLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgZXVpVG9vbHRpcD1cInt7IHRvb2xiYXJDb25maWcuaXRhbGljLmxhYmVsIH19XCI+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInRvb2xiYXJDb25maWcudW5kZXJsaW5lXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJxbC11bmRlcmxpbmVcIlxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0b29sYmFyQ29uZmlnLnVuZGVybGluZS5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgIGV1aVRvb2x0aXA9XCJ7eyB0b29sYmFyQ29uZmlnLnVuZGVybGluZS5sYWJlbCB9fVwiPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJ0b29sYmFyQ29uZmlnLnN0cmlrZVwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicWwtc3RyaWtlXCJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwidG9vbGJhckNvbmZpZy5zdHJpa2UubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICBldWlUb29sdGlwPVwie3sgdG9vbGJhckNvbmZpZy5zdHJpa2UubGFiZWwgfX1cIj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInRvb2xiYXJDb25maWcuZm9udENvbG9yIHx8IHRvb2xiYXJDb25maWcuZm9udEJhY2tncm91bmRcIiBjbGFzcz1cInFsLWZvcm1hdHNcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cInRvb2xiYXJDb25maWcuZm9udENvbG9yXCIgZXVpVG9vbHRpcD1cInt7IHRvb2xiYXJDb25maWcuZm9udENvbG9yLmxhYmVsIH19XCI+XG4gICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJxbC1jb2xvclwiIFthdHRyLmFyaWEtbGFiZWxdPVwidG9vbGJhckNvbmZpZy5mb250Q29sb3IubGFiZWxcIj48L3NlbGVjdD5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJ0b29sYmFyQ29uZmlnLmZvbnRCYWNrZ3JvdW5kXCIgZXVpVG9vbHRpcD1cInt7IHRvb2xiYXJDb25maWcuZm9udEJhY2tncm91bmQubGFiZWwgfX1cIj5cbiAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cInFsLWJhY2tncm91bmRcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInRvb2xiYXJDb25maWcuZm9udEJhY2tncm91bmQubGFiZWxcIj48L3NlbGVjdD5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ0b29sYmFyQ29uZmlnLnN1YnNjcmlwdCB8fCB0b29sYmFyQ29uZmlnLnN1cGVyc2NyaXB0XCIgY2xhc3M9XCJxbC1mb3JtYXRzXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInRvb2xiYXJDb25maWcuc3Vic2NyaXB0XCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJxbC1zY3JpcHRcIlxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cInN1YlwiXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInRvb2xiYXJDb25maWcuc3Vic2NyaXB0LmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgZXVpVG9vbHRpcD1cInt7IHRvb2xiYXJDb25maWcuc3Vic2NyaXB0LmxhYmVsIH19XCI+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInRvb2xiYXJDb25maWcuc3VwZXJzY3JpcHRcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInFsLXNjcmlwdFwiXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPVwic3VwZXJcIlxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0b29sYmFyQ29uZmlnLnN1cGVyc2NyaXB0LmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgZXVpVG9vbHRpcD1cInt7IHRvb2xiYXJDb25maWcuc3VwZXJzY3JpcHQubGFiZWwgfX1cIj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInRvb2xiYXJDb25maWcudGV4dEFsaWduXCIgY2xhc3M9XCJxbC1mb3JtYXRzXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gZXVpVG9vbHRpcD1cInt7IHRvb2xiYXJDb25maWcudGV4dEFsaWduLmxhYmVsIH19XCI+XG4gICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJxbC1hbGlnblwiIFthdHRyLmFyaWEtbGFiZWxdPVwidG9vbGJhckNvbmZpZy50ZXh0QWxpZ24ubGFiZWxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gc2VsZWN0ZWQ+PC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiY2VudGVyXCI+PC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwicmlnaHRcIj48L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJqdXN0aWZ5XCI+PC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICpuZ0lmPVwidG9vbGJhckNvbmZpZy5vcmRlcmVkTGlzdCB8fCB0b29sYmFyQ29uZmlnLmJ1bGxldExpc3QgfHwgdG9vbGJhckNvbmZpZy5pbmRlbnRMZXNzIHx8IHRvb2xiYXJDb25maWcuaW5kZW50TW9yZVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJxbC1mb3JtYXRzXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInRvb2xiYXJDb25maWcub3JkZXJlZExpc3RcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInFsLWxpc3RcIlxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cIm9yZGVyZWRcIlxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0b29sYmFyQ29uZmlnLm9yZGVyZWRMaXN0LmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgZXVpVG9vbHRpcD1cInt7IHRvb2xiYXJDb25maWcub3JkZXJlZExpc3QubGFiZWwgfX1cIj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwidG9vbGJhckNvbmZpZy5idWxsZXRMaXN0XCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJxbC1saXN0XCJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCJidWxsZXRcIlxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0b29sYmFyQ29uZmlnLmJ1bGxldExpc3QubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICBldWlUb29sdGlwPVwie3sgdG9vbGJhckNvbmZpZy5idWxsZXRMaXN0LmxhYmVsIH19XCI+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJ0b29sYmFyQ29uZmlnLmluZGVudExlc3NcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInFsLWluZGVudFwiXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPVwiLTFcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInRvb2xiYXJDb25maWcuaW5kZW50TGVzcy5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgIGV1aVRvb2x0aXA9XCJ7eyB0b29sYmFyQ29uZmlnLmluZGVudExlc3MubGFiZWwgfX1cIj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInRvb2xiYXJDb25maWcuaW5kZW50TW9yZVwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicWwtaW5kZW50XCJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCIrMVwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwidG9vbGJhckNvbmZpZy5pbmRlbnRNb3JlLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgZXVpVG9vbHRpcD1cInt7IHRvb2xiYXJDb25maWcuaW5kZW50TW9yZS5sYWJlbCB9fVwiPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICAgICAgdG9vbGJhckNvbmZpZy5ibG9ja3F1b3RlIHx8XG4gICAgICAgICAgICAgICAgICAgIHRvb2xiYXJDb25maWcuY29kZUJsb2NrIHx8XG4gICAgICAgICAgICAgICAgICAgIHRvb2xiYXJDb25maWcubGluayB8fFxuICAgICAgICAgICAgICAgICAgICB0b29sYmFyQ29uZmlnLmltYWdlIHx8XG4gICAgICAgICAgICAgICAgICAgIHRvb2xiYXJDb25maWcuaW1hZ2VVcmwgfHxcbiAgICAgICAgICAgICAgICAgICAgdG9vbGJhckNvbmZpZy52aWRlbyB8fFxuICAgICAgICAgICAgICAgICAgICB0b29sYmFyQ29uZmlnLnRhYmxlXG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInFsLWZvcm1hdHNcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwidG9vbGJhckNvbmZpZy5ibG9ja3F1b3RlXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJxbC1ibG9ja3F1b3RlXCJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwidG9vbGJhckNvbmZpZy5ibG9ja3F1b3RlLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgZXVpVG9vbHRpcD1cInt7IHRvb2xiYXJDb25maWcuYmxvY2txdW90ZS5sYWJlbCB9fVwiPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJ0b29sYmFyQ29uZmlnLmNvZGVCbG9ja1wiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicWwtY29kZS1ibG9ja1wiXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInRvb2xiYXJDb25maWcuY29kZUJsb2NrLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgZXVpVG9vbHRpcD1cInt7IHRvb2xiYXJDb25maWcuY29kZUJsb2NrLmxhYmVsIH19XCI+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInRvb2xiYXJDb25maWcubGlua1wiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicWwtbGlua1wiXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInRvb2xiYXJDb25maWcubGluay5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgIGV1aVRvb2x0aXA9XCJ7eyB0b29sYmFyQ29uZmlnLmxpbmsubGFiZWwgfX1cIj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwidG9vbGJhckNvbmZpZy5pbWFnZVwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicWwtaW1hZ2VcIlxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0b29sYmFyQ29uZmlnLmltYWdlLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgZXVpVG9vbHRpcD1cInt7IHRvb2xiYXJDb25maWcuaW1hZ2UubGFiZWwgfX1cIj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInRvb2xiYXJDb25maWcuaW1hZ2VVcmxcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInRvb2xiYXJDb25maWcuaW1hZ2VVcmwubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICBldWlUb29sdGlwPVwie3sgdG9vbGJhckNvbmZpZy5pbWFnZVVybC5sYWJlbCB9fVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJpbWFnZVVybEhhbmRsZXIoKVwiPlxuICAgICAgICAgICAgICAgICAgICA8ZXVpLWljb24tc3ZnIGljb249XCJldWktZWNsLWltYWdlXCI+PC9ldWktaWNvbi1zdmc+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInRvb2xiYXJDb25maWcudmlkZW9cIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInFsLXZpZGVvXCJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwidG9vbGJhckNvbmZpZy52aWRlby5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgIGV1aVRvb2x0aXA9XCJ7eyB0b29sYmFyQ29uZmlnLnZpZGVvLmxhYmVsIH19XCI+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJ0b29sYmFyQ29uZmlnLnRhYmxlXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0b29sYmFyQ29uZmlnLnRhYmxlLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgZXVpVG9vbHRpcD1cInt7IHRvb2xiYXJDb25maWcudGFibGUubGFiZWwgfX1cIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiaW5zZXJ0VGFibGUoKVwiPlxuICAgICAgICAgICAgICAgICAgICA8ZXVpLWljb24tc3ZnIGljb249XCJldWktZWNsLXNwcmVhZHNoZWV0XCI+PC9ldWktaWNvbi1zdmc+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ0b29sYmFyQ29uZmlnLmNsZWFuIHx8IHRvb2xiYXJDb25maWcuZGVsZXRlXCIgY2xhc3M9XCJxbC1mb3JtYXRzXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInRvb2xiYXJDb25maWcuY2xlYW5cIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInFsLWNsZWFuXCJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwidG9vbGJhckNvbmZpZy5jbGVhbi5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgIGV1aVRvb2x0aXA9XCJ7eyB0b29sYmFyQ29uZmlnLmNsZWFuLmxhYmVsIH19XCI+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJ0b29sYmFyQ29uZmlnLmRlbGV0ZVwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwidG9vbGJhckNvbmZpZy5kZWxldGUubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICBldWlUb29sdGlwPVwie3sgdG9vbGJhckNvbmZpZy5kZWxldGUubGFiZWwgfX1cIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZWRpdG9yRGVsZXRlQ29udGVudCgpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxldWktaWNvbi1zdmcgaWNvbj1cImV1aS1lY2wtdHJhc2hcIj48L2V1aS1pY29uLXN2Zz5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInRvb2xiYXJDb25maWcudW5kbyB8fCB0b29sYmFyQ29uZmlnLnJlZG9cIiBjbGFzcz1cInFsLWZvcm1hdHNcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInRvb2xiYXJDb25maWcudW5kb1wiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwidG9vbGJhckNvbmZpZy51bmRvLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgZXVpVG9vbHRpcD1cInt7IHRvb2xiYXJDb25maWcudW5kby5sYWJlbCB9fVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJlZGl0b3JVbmRvKClcIj5cbiAgICAgICAgICAgICAgICAgICAgPGV1aS1pY29uLXN2ZyBpY29uPVwiYXJyb3ctdW5kbzpzaGFycFwiPjwvZXVpLWljb24tc3ZnPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwidG9vbGJhckNvbmZpZy5yZWRvXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0b29sYmFyQ29uZmlnLnJlZG8ubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICBldWlUb29sdGlwPVwie3sgdG9vbGJhckNvbmZpZy5yZWRvLmxhYmVsIH19XCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImVkaXRvclJlZG8oKVwiPlxuICAgICAgICAgICAgICAgICAgICA8ZXVpLWljb24tc3ZnIGljb249XCJhcnJvdy1yZWRvOnNoYXJwXCI+PC9ldWktaWNvbi1zdmc+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ0b29sYmFyQ29uZmlnLmNvdW50ZXJzXCIgY2xhc3M9XCJxbC1mb3JtYXRzXCI+XG4gICAgICAgICAgICAgICAgPGV1aS1lZGl0b3ItY291bnRlcnNcbiAgICAgICAgICAgICAgICAgICAgW2hhc0NoYXJhY3RlcnNDb3VudGVyXT1cImhhc0NoYXJhY3RlcnNDb3VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgW2NoYXJhY3RlcnNDb3VudGVyXT1cImNoYXJhY3RlcnNDb3VudFwiXG4gICAgICAgICAgICAgICAgICAgIFtjaGFyYWN0ZXJzTGFiZWxdPVwiY2hhcmFjdGVyc0NvdW50ZXJMYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgIFtoYXNXb3Jkc0NvdW50ZXJdPVwiaGFzV29yZHNDb3VudGVyXCJcbiAgICAgICAgICAgICAgICAgICAgW3dvcmRzQ291bnRlcl09XCJ3b3Jkc0NvdW50XCJcbiAgICAgICAgICAgICAgICAgICAgW3dvcmRzTGFiZWxdPVwid29yZHNDb3VudGVyTGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInRvb2xiYXJDb25maWcuY291bnRlcnMubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgZXVpVG9vbHRpcD1cInt7IHRvb2xiYXJDb25maWcuY291bnRlcnMubGFiZWwgfX1cIj5cbiAgICAgICAgICAgICAgICA8L2V1aS1lZGl0b3ItY291bnRlcnM+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJldWlFZGl0b3JDdXN0b21Ub29sYmFyXCIgcXVpbGwtZWRpdG9yLXRvb2xiYXI+XG4gICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJldWlFZGl0b3JDdXN0b21Ub29sYmFyXCI+PC9uZy1jb250ZW50PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L3F1aWxsLWVkaXRvcj5cbjwhLS0gUkVBRE9OTFkgTU9ERSAtLT5cbn0gQGVsc2Uge1xuICAgIDxldWktZWRpdG9yLWh0bWwtdmlldyAqbmdJZj1cImZvcm1hdCA9PT0gJ2h0bWwnXCIgW2NvbnRlbnRdPVwidmFsdWVcIiBbdGhlbWVdPVwidGhlbWVcIj48L2V1aS1lZGl0b3ItaHRtbC12aWV3PlxuICAgIDxldWktZWRpdG9yLWpzb24tdmlldyAqbmdJZj1cImZvcm1hdCA9PT0gJ2pzb24nXCIgW2NvbnRlbnRdPVwianNvblRvSHRtbENvbnRlbnRcIiBbdGhlbWVdPVwidGhlbWVcIj48L2V1aS1lZGl0b3ItanNvbi12aWV3PlxufVxuPC9uZy1jb250YWluZXI+XG4iXX0=
|
538
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXVpLWVkaXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9leHRlcm5hbHMvZXVpLWVkaXRvci9ldWktZWRpdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL2V4dGVybmFscy9ldWktZWRpdG9yL2V1aS1lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFFTixpQkFBaUIsRUFDakIsdUJBQXVCLEVBQ3ZCLFdBQVcsRUFFWCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFFVixZQUFZLEVBQ1osSUFBSSxHQUVQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsV0FBVyxFQUF3QixNQUFNLGdCQUFnQixDQUFDO0FBR3pGLE9BQU8sRUFBRSxxQkFBcUIsRUFBZ0IsTUFBTSx1QkFBdUIsQ0FBQztBQUc1RSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxLQUFLLE1BQU0sYUFBYSxDQUFDO0FBRWhDLE9BQU8sRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUcvRSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQzs7Ozs7Ozs7Ozs7QUFUOUYsMEdBQTBHO0FBQzFHLE1BQU0sU0FBUyxHQUFRLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztBQVN2Qyx3Q0FBd0M7QUFDeEMsSUFBSSxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztBQWNsRCxNQUFNLE9BQU8sa0JBQWtCO0lBQzNCLElBQ0ksS0FBSztRQUNMLE9BQU87WUFDSCxZQUFZO1lBQ1osSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDN0MsSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUEsQ0FBQyxDQUFDLG1CQUFtQjtZQUN2RCxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxFQUFFO1NBQy9DLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUE0QkQsSUFDSSxRQUFRO1FBQ1IsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUMvQyxDQUFDO0lBaUJELElBQ0ksVUFBVTtRQUNWLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUM1QixDQUFDO0lBQ0QsSUFBSSxVQUFVLENBQUMsS0FBbUI7UUFDOUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsSUFDSSxZQUFZO1FBQ1osT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzlCLENBQUM7SUFDRCxJQUFJLFlBQVksQ0FBQyxLQUFtQjtRQUNoQyxJQUFJLENBQUMsYUFBYSxHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxJQUNJLGdCQUFnQjtRQUNoQixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztJQUNsQyxDQUFDO0lBQ0QsSUFBSSxnQkFBZ0IsQ0FBQyxLQUFLO1FBQ3RCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQsSUFDSSxnQkFBZ0I7UUFDaEIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUM7SUFDbEMsQ0FBQztJQUNELElBQUksZ0JBQWdCLENBQUMsS0FBbUI7UUFDcEMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFHRCxJQUNJLFNBQVM7UUFDVCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDM0IsQ0FBQztJQUNELElBQUksU0FBUyxDQUFDLEtBQW1CO1FBQzdCLElBQUksQ0FBQyxVQUFVLEdBQUcscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQTBERCxZQUFvQixnQkFBa0MsRUFDbEMsR0FBc0IsRUFDdEIsU0FBb0IsRUFDcEIsTUFBcUI7UUFIckIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ3BCLFdBQU0sR0FBTixNQUFNLENBQWU7UUFuSmhDLFlBQU8sR0FBRyxZQUFZLENBQUM7UUFFdkIsZ0JBQVcsR0FBRyxFQUFFLENBQUM7UUFDakIsV0FBTSxHQUFvQixNQUFNLENBQUM7UUFDakMsVUFBSyxHQUFzQixNQUFNLENBQUM7UUFDbEMsVUFBSyxHQUFxQyxLQUFLLENBQUM7UUFDaEQsMEJBQXFCLEdBQXFCLEtBQUssQ0FBQztRQUVoRCxhQUFRLEdBQUcsR0FBRyxDQUFDO1FBT3hCLDZCQUE2QjtRQUNuQixpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFvQixDQUFDO1FBQ3BELGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQXlDLENBQUM7UUFDekUsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBaUIsQ0FBQztRQUNsRCxvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFtQixDQUFDO1FBQ3RELFVBQUssR0FBRyxJQUFJLFlBQVksRUFBUyxDQUFDO1FBQ2xDLFNBQUksR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ2hDLDBCQUFxQixHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDbkQscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQVNqRCxVQUFLLEdBQWlCLEVBQUUsQ0FBQztRQUN6QixvQkFBZSxHQUFHLENBQUMsQ0FBQztRQUNwQixlQUFVLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsZUFBVSxHQUFHLENBQUMsQ0FBQztRQUNmLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFFbEIsZ0JBQVcsR0FBZ0IsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUcxQyxrQkFBYSxHQUFZLEtBQUssQ0FBQztRQWFqQyxnQkFBVyxHQUFHLEtBQUssQ0FBQztRQVFwQixrQkFBYSxHQUFHLElBQUksQ0FBQztRQVFyQixzQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFRMUIsc0JBQWlCLEdBQUcsS0FBSyxDQUFDO1FBUzFCLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFHbkIseUJBQW9CLEdBQXdCO1lBQ2hELEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtZQUNwQixFQUFFLElBQUksRUFBRSxNQUFNLEVBQUU7WUFDaEIsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFO1lBQ2xCLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTtZQUNyQixFQUFFLElBQUksRUFBRSxXQUFXLEVBQUU7WUFDckIsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO1lBQ3JCLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRTtZQUNoQixFQUFFLElBQUksRUFBRSxPQUFPLEVBQUU7WUFDakIsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO1lBQ3BCLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRTtZQUNqQixFQUFFLElBQUksRUFBRSxRQUFRLEVBQUU7WUFDbEIsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFO1lBQ2hCLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRTtZQUNoQixFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7U0FDdkIsQ0FBQztRQUNNLHlCQUFvQixHQUF3QjtZQUNoRCxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLDZEQUE2RCxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUU7WUFDdkgsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSw2QkFBNkIsRUFBRTtZQUN0RCxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLCtDQUErQyxFQUFFO1lBQ3hFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsaURBQWlELEVBQUU7WUFDNUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxvREFBb0QsRUFBRTtZQUNsRixFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLGdFQUFnRSxFQUFFO1lBQzNGLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsb0NBQW9DLEVBQUU7WUFDbEUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsS0FBSyxFQUFFLG9EQUFvRCxFQUFFO1lBQ3ZGLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsMkRBQTJELEVBQUU7WUFDekYsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSwrREFBK0QsRUFBRTtZQUMvRixFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLGdHQUFnRyxFQUFFO1lBQzlILEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQUUsbUNBQW1DLEVBQUU7WUFDbkUsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxpQ0FBaUMsRUFBRTtZQUNoRSxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLDhEQUE4RCxFQUFFO1lBQzdGLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsOERBQThELEVBQUU7WUFDN0YsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSx5REFBeUQsRUFBRTtZQUN4RixFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLG9FQUFvRSxFQUFFO1lBQ2xHLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsc0dBQXNHLEVBQUU7WUFDL0gsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSwrQ0FBK0MsRUFBRTtZQUN6RSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLDhEQUE4RCxFQUFFLGFBQWEsRUFBRSxzQkFBc0IsRUFBRTtZQUNsSSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLDJDQUEyQyxFQUFFO1lBQ3JFLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsNkNBQTZDLEVBQUU7WUFDdkUsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSx3REFBd0QsRUFBRTtZQUNsRixFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLHdEQUF3RCxFQUFFO1lBQ25GLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsK0NBQStDLEVBQUU7WUFDeEUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxvREFBb0QsRUFBRTtZQUM3RTtnQkFDSSxJQUFJLEVBQUUsVUFBVTtnQkFDaEIsS0FBSyxFQUFFLDBEQUEwRDtnQkFDakUsT0FBTyxFQUFFO29CQUNMLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFO29CQUMzQyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRTtpQkFDcEM7YUFDSjtTQUNKLENBQUM7UUFDTSxhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVcsQ0FBQztRQXVQbEMsYUFBUSxHQUFRLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztRQUV6QixZQUFPLEdBQVEsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO1FBblA1QixJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7SUFDeEMsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLFNBQVMsQ0FBQztZQUN6QixRQUFRLEVBQUUsR0FBRyxFQUFFO2dCQUNYLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO2dCQUMxQixJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtvQkFDdkgsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLEtBQUssT0FBTyxDQUFDO2dCQUN4QyxDQUFDLENBQUMsQ0FBQztnQkFFSCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUU1RyxJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztnQkFDeEIsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO29CQUN0RCxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7d0JBQ3BDLElBQUksQ0FBQyxhQUFhLEdBQUc7NEJBQ2pCLEdBQUcsSUFBSSxDQUFDLGFBQWE7NEJBQ3JCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsYUFBYSxFQUFFLENBQUMsQ0FBQyxhQUFhLEVBQUU7eUJBQ25GLENBQUM7b0JBQ04sQ0FBQyxDQUFDLENBQUM7Z0JBQ1AsQ0FBQztnQkFFRCxJQUFJLElBQUksQ0FBQyxtQkFBbUIsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO29CQUNyRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7d0JBQ25DLE1BQU0sS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO3dCQUNsRyxJQUFJLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQzt3QkFDeEcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUM7d0JBRXRILElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxVQUFVLEVBQUUsQ0FBQzs0QkFDeEIsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQ0FDYixPQUFPLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDOzRCQUMvRSxDQUFDO2lDQUFNLENBQUM7Z0NBQ0osT0FBTyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7b0NBQy9CLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxLQUFLO3dDQUM1QixDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUs7d0NBQ2QsQ0FBQyxDQUFDLElBQUksQ0FBQyxvQkFBb0I7NkNBQ3RCLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksS0FBSyxVQUFVLENBQUM7NkNBQ3RDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQztvQ0FDM0QsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsQ0FBQztnQ0FDckQsQ0FBQyxDQUFDLENBQUM7NEJBQ1AsQ0FBQzt3QkFDTCxDQUFDO3dCQUVELElBQUksQ0FBQyxhQUFhLEdBQUc7NEJBQ2pCLEdBQUcsSUFBSSxDQUFDLGFBQWE7NEJBQ3JCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsQ0FBQyxFQUFFO3lCQUNqRCxDQUFDO29CQUNOLENBQUMsQ0FBQyxDQUFDO2dCQUNQLENBQUM7Z0JBRUQsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztvQkFDeEIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO3dCQUNwQyxNQUFNLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQzt3QkFDbEcsTUFBTSxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7d0JBQzFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDO3dCQUV0SCxJQUFJLENBQUMsYUFBYSxHQUFHOzRCQUNqQixHQUFHLElBQUksQ0FBQyxhQUFhOzRCQUNyQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLENBQUMsRUFBRTt5QkFDakQsQ0FBQztvQkFDTixDQUFDLENBQUMsQ0FBQztnQkFDUCxDQUFDO2dCQUNELElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDNUIsQ0FBQztTQUNKLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBSU0sbUJBQW1CO1FBQ3RCLElBQUksSUFBSSxDQUFDLGdCQUFnQixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUMzQyxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztRQUM1QixDQUFDO0lBQ0wsQ0FBQztJQUVNLGVBQWU7UUFDbEIsSUFBSSxrQkFBa0IsR0FBYyxJQUFJLENBQUM7UUFDekMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FDNUIsSUFBSSxlQUFlLENBQUM7WUFDaEIsS0FBSyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLGFBQWE7WUFDaEQscUJBQXFCLEVBQUUsSUFBSTtZQUMzQixhQUFhLEVBQUU7Z0JBQ1gsU0FBUyxFQUFFLDZCQUE2QjtnQkFDeEMsTUFBTSxFQUFFO29CQUNKLGlCQUFpQixFQUFFLENBQUMsSUFBZSxFQUFRLEVBQUU7d0JBQ3pDLGtCQUFrQixHQUFHLElBQUksQ0FBQztvQkFDOUIsQ0FBQztpQkFDSjthQUNKO1lBQ0QsTUFBTSxFQUFFLEdBQVMsRUFBRTtnQkFDZixJQUFJLGtCQUFrQixJQUFJLGtCQUFrQixDQUFDLEtBQUssRUFBRSxDQUFDO29CQUNqRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxFQUFFLENBQUM7b0JBRXBDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQztvQkFDbkUsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsa0JBQWtCLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztnQkFDOUYsQ0FBQztZQUNMLENBQUM7U0FDSixDQUFDLENBQ0wsQ0FBQztJQUNOLENBQUM7SUFFTSxVQUFVO1FBQ2IsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRU0sVUFBVTtRQUNiLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVNLG1CQUFtQjtRQUN0QixNQUFNLE1BQU0sR0FBRyxJQUFJLGVBQWUsQ0FBQztZQUMvQixLQUFLLEVBQUUsZ0JBQWdCO1lBQ3ZCLE9BQU8sRUFBRSwwREFBMEQ7WUFDbkUsY0FBYyxFQUFFLEtBQUs7WUFDckIsTUFBTSxFQUFFLEdBQVMsRUFBRTtnQkFDZixJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNqQyxDQUFDO1NBQ0osQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRU0sV0FBVztRQUNkLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsSUFBSSxlQUFlO1FBQ2YsT0FBTyxJQUFJLENBQUMsc0JBQXNCO1lBQzlCLENBQUMsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsVUFBVSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDO1lBQ2xGLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQztJQUNuQyxDQUFDO0lBRU0sZ0JBQWdCLENBQUMsS0FBdUI7UUFDM0MsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFFbkIsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3ZCLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssTUFBTSxFQUFFLENBQUM7WUFDekIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFlLEVBQUUsQ0FBQyxDQUFDO1lBQzNFLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ25DLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xDLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssTUFBTSxFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3hDLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDbkQsQ0FBQztRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDeEIsS0FBSyxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLENBQUMsT0FBZ0IsRUFBRSxLQUFZLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDOUYsS0FBSyxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFFLENBQUMsT0FBZ0IsRUFBRSxLQUFZLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDdEcsQ0FBQztRQUVELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFTSxnQkFBZ0IsQ0FBQyxLQUFvRDtRQUN4RSxPQUFPLENBQUMsSUFBSSxDQUFDLGlGQUFpRixDQUFDLENBQUM7UUFDaEcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBOEIsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFTSxpQkFBaUIsQ0FBQyxLQUFvQjtRQUN6QyxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssTUFBTSxFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsS0FBZSxDQUFDLENBQUM7WUFDN0MsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEtBQWUsQ0FBQyxDQUFDLENBQUM7UUFDakUsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxNQUFNLEVBQUUsQ0FBQztZQUN6QixJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssSUFBSSxFQUFFLENBQUM7Z0JBQ3RCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQztnQkFDM0IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDbkMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO2dCQUM3RSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1lBQzFDLENBQUM7aUJBQU0sQ0FBQztnQkFDSixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztnQkFDbEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUMzQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsRUFBRSxDQUFDO2dCQUM1QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3hCLENBQUM7UUFDTCxDQUFDO1FBQ0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxjQUFjO1FBQzlDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLDREQUE0RDtJQUM5RixDQUFDO0lBRU0sbUJBQW1CLENBQUMsS0FBc0I7UUFDN0MsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVNLFFBQVEsQ0FBQyxLQUFZO1FBQ3hCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFTSxPQUFPLENBQUMsS0FBVztRQUN0QixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN2QixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDZixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRU0sZ0JBQWdCLENBQUMsRUFBTztRQUMzQixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRU0saUJBQWlCLENBQUMsRUFBTztRQUM1QixJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRU0sVUFBVSxDQUFDLEtBQWE7UUFDM0IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLElBQUksSUFBSSxDQUFDO1FBQzNCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBRXBDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDWixJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDYixJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssTUFBTSxFQUFFLENBQUM7b0JBQ3pCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsS0FBZSxFQUFFLENBQUMsQ0FBQztvQkFDM0UsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQ25DLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNsQyxDQUFDO2dCQUVELElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxNQUFNLEVBQUUsQ0FBQztvQkFDekIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUN4QyxrREFBa0Q7Z0JBQ3RELENBQUM7Z0JBRUQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN2QyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsSUFBWSxXQUFXO1FBQ25CLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQU1PLGtCQUFrQixDQUFDLE9BQWU7UUFDdEMsSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFDO1FBQ2hCLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDSixDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDNUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ2pDLENBQUM7UUFFRCxPQUFPLENBQUMsQ0FBQztJQUNiLENBQUM7SUFFRCxJQUFJLG9CQUFvQjtRQUNwQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssWUFBWSxDQUFDLENBQUM7SUFDcEYsQ0FBQztJQUVELElBQUksc0JBQXNCO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxZQUFZLENBQUMsRUFBRSxLQUFLLENBQUM7SUFDM0YsQ0FBQztJQUVELElBQUksZUFBZTtRQUNmLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxPQUFPLENBQUMsQ0FBQztJQUMvRSxDQUFDO0lBRUQsSUFBSSxpQkFBaUI7UUFDakIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLE9BQU8sQ0FBQyxFQUFFLEtBQUssQ0FBQztJQUN0RixDQUFDO0lBRU8saUJBQWlCLENBQUMsT0FBZTtRQUNyQyxJQUFJLElBQVksQ0FBQztRQUNqQixNQUFNLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDcEIsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLE1BQU0sRUFBRSxDQUFDO1lBQ3pCLElBQUksT0FBTyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDOUMsSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQy9CLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztnQkFDbkMsSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQy9CLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDO1lBQ3hGLENBQUM7aUJBQU0sQ0FBQztnQkFDSixJQUFJLENBQUMsZUFBZSxHQUFHLENBQUMsQ0FBQztnQkFDekIsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUM7Z0JBQ3BCLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDO1lBQ3hCLENBQUM7UUFDTCxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLE1BQU0sRUFBRSxDQUFDO1lBQ3pCLElBQUksT0FBTyxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDeEIsSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQ2pELElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztnQkFFbkMsSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQ2pELElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDO1lBQ3hGLENBQUM7aUJBQU0sQ0FBQztnQkFDSixJQUFJLENBQUMsZUFBZSxHQUFHLENBQUMsQ0FBQztnQkFDekIsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUM7Z0JBQ3BCLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDO1lBQ3hCLENBQUM7UUFDTCxDQUFDO1FBRUQsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7UUFFdEQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVPLFNBQVMsQ0FBQyxPQUFlO1FBQzdCLE1BQU0sS0FBSyxHQUFHLGVBQWUsQ0FBQztRQUM5QixNQUFNLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3BELE9BQU8sZ0JBQWdCLENBQUMsT0FBTyxDQUFDLHdCQUF3QixFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFTyxTQUFTLENBQUMsT0FBZTtRQUM3QixNQUFNLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3pELE9BQU8sZ0JBQWdCLENBQUMsT0FBTyxDQUFDLHdCQUF3QixFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7OEdBemRRLGtCQUFrQjtrR0FBbEIsa0JBQWtCLCsvQkFMaEI7WUFDUCwyRUFBMkU7WUFDM0UsZ0JBQWdCO1NBQ25CLGtHQXdEOEIsa0NBQWtDLGlEQ3JHckUsay9aQWdSQSx1bXJCRHdRYSxlQUFlOzsyRkF6ZWYsa0JBQWtCO2tCQVo5QixTQUFTOytCQUVJLFlBQVksaUJBR1AsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxhQUNwQzt3QkFDUCwyRUFBMkU7d0JBQzNFLGdCQUFnQjtxQkFDbkI7eUtBSUcsS0FBSztzQkFEUixXQUFXO3VCQUFDLE9BQU87Z0JBU1gsT0FBTztzQkFBZixLQUFLO2dCQUNHLEVBQUU7c0JBQVYsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFFRyxRQUFRO3NCQURoQixXQUFXO3VCQUFDLGVBQWU7O3NCQUMzQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBRUcsbUJBQW1CO3NCQUEzQixLQUFLO2dCQUVHLE1BQU07c0JBRGQsV0FBVzt1QkFBQyxjQUFjOztzQkFDMUIsS0FBSztnQkFFSSxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxlQUFlO3NCQUF4QixNQUFNO2dCQUNHLEtBQUs7c0JBQWQsTUFBTTtnQkFDRyxJQUFJO3NCQUFiLE1BQU07Z0JBQ0cscUJBQXFCO3NCQUE5QixNQUFNO2dCQUNHLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFFMEIsSUFBSTtzQkFBcEMsV0FBVzt1QkFBQyxrQkFBa0I7Z0JBRzNCLFFBQVE7c0JBRFgsV0FBVzt1QkFBQyxlQUFlO2dCQWtCNUIsc0JBQXNCO3NCQURyQixZQUFZO3VCQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxrQ0FBa0MsQ0FBQyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFJakYsVUFBVTtzQkFEYixLQUFLO2dCQVNGLFlBQVk7c0JBRGYsS0FBSztnQkFTRixnQkFBZ0I7c0JBRG5CLEtBQUs7Z0JBU0YsZ0JBQWdCO3NCQURuQixLQUFLO2dCQVVGLFNBQVM7c0JBRFosV0FBVzt1QkFBQyxtQkFBbUI7Z0JBK0l6QixtQkFBbUI7c0JBRnpCLFlBQVk7dUJBQUMsT0FBTzs7c0JBQ3BCLFlBQVk7dUJBQUMsU0FBUzs7QUFvUDNCLG9CQUFvQjtBQUVwQixNQUFNLE9BQU8sa0NBQWtDO0lBRzNDLFlBQW1CLFVBQXNCO1FBQXRCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFGbkIsaUJBQVksR0FBRywyQkFBMkIsQ0FBQztJQUVyQixDQUFDOzhHQUhwQyxrQ0FBa0M7a0dBQWxDLGtDQUFrQzs7MkZBQWxDLGtDQUFrQztrQkFEOUMsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSx3QkFBd0IsRUFBRTsrRUFFdkIsWUFBWTtzQkFBakMsV0FBVzt1QkFBQyxPQUFPOztBQUl4QixtQkFBbUI7QUFFbkI7O0dBRUc7QUFFSCxNQUFNLE9BQU8sZUFBZTtJQUN4QixTQUFTLENBQUMsS0FBYTtRQUNuQixPQUFPLEtBQUs7YUFDUCxPQUFPLENBQUMscUJBQXFCLEVBQUUsRUFBRSxDQUFDO2FBQ2xDLE9BQU8sQ0FBQyx1QkFBdUIsRUFBRSxFQUFFLENBQUM7YUFDcEMsT0FBTyxDQUFDLG9CQUFvQixFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzNDLENBQUM7OEdBTlEsZUFBZTs0R0FBZixlQUFlOzsyRkFBZixlQUFlO2tCQUQzQixJQUFJO21CQUFDLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbnB1dCxcbiAgICBPdXRwdXQsXG4gICAgT25Jbml0LFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIE9uRGVzdHJveSxcbiAgICBEaXJlY3RpdmUsXG4gICAgQ29udGVudENoaWxkLFxuICAgIGZvcndhcmRSZWYsXG4gICAgRWxlbWVudFJlZixcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgUGlwZSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ29udGVudENoYW5nZSwgUXVpbGxNb2R1bGVzIH0gZnJvbSAnQGV1aS9jb21wb25lbnRzL2V4dGVybmFscy9xdWlsbCc7XG5cbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSwgQm9vbGVhbklucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb24sbm8tdW5kZXJzY29yZS1kYW5nbGUsaWQtZGVueWxpc3QsaWQtbWF0Y2hcbmNvbnN0IFF1aWxsVHlwZTogYW55ID0gd2luZG93WydRdWlsbCddO1xuaW1wb3J0IHsgc3RhcnRXaXRoLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgRGVsdGEgZnJvbSAncXVpbGwtZGVsdGEnO1xuXG5pbXBvcnQgeyBFdWlEaWFsb2dDb25maWcsIEV1aURpYWxvZ1NlcnZpY2UgfSBmcm9tICdAZXVpL2NvbXBvbmVudHMvZXVpLWRpYWxvZyc7XG5cbmltcG9ydCB7IExvYWRlclNlcnZpY2UsIEJldHRlclRhYmxlTW9kdWxlLCBCbHVyLCBFZGl0b3JDaGFuZ2VTZWxlY3Rpb24sIEZvY3VzLCBTZWxlY3Rpb25DaGFuZ2UsIFRvb2xiYXJJdGVtQ29uZmlnIH0gZnJvbSAnQGV1aS9jb21wb25lbnRzL2V4dGVybmFscy9xdWlsbCc7XG5pbXBvcnQgeyBFdWlFZGl0b3JJbWFnZURpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vaW1hZ2UtdXJsLWRpYWxvZy9pbWFnZS11cmwtZGlhbG9nLmNvbXBvbmVudCc7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJlZmVyLWNvbnN0XG5sZXQgUXVpbGxCZXR0ZXJUYWJsZSA9IHdpbmRvd1sncXVpbGxCZXR0ZXJUYWJsZSddO1xuXG5AQ29tcG9uZW50KHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICBzZWxlY3RvcjogJ2V1aS1lZGl0b3InLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9ldWktZWRpdG9yLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9zdHlsZXMvX2luZGV4LnNjc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICAvLyBUT0RPOiBDaGVjayB0byBjaGFuZ2UgdGhlIHByb3ZpZGluZyB3YXkuIFByb3ZpZGUgd2l0aCBpbmplY3RvciByZWZlcmVuY2VcbiAgICAgICAgRXVpRGlhbG9nU2VydmljZSxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBFdWlFZGl0b3JDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICAgIGdldCBjbGFzcygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgJ2V1aS1lZGl0b3InLFxuICAgICAgICAgICAgdGhpcy5pc1JlYWRPbmx5ID8gJ2V1aS1lZGl0b3ItLXJlYWRvbmx5JyA6ICcnLFxuICAgICAgICAgICAgdGhpcy5pc1JlYWRPbmx5ICYmIHRoaXMudmFsdWUgPyAnJzogJ2V1aS1lZGl0b3ItLWVtcHR5JyxcbiAgICAgICAgICAgICF0aGlzLmlzUmVhZE9ubHkgPyAnZXVpLWVkaXRvci13cmFwcGVyJyA6ICcnLFxuICAgICAgICBdLmpvaW4oJyAnKS50cmltKCk7XG4gICAgfVxuICAgIEBJbnB1dCgpIGUyZUF0dHIgPSAnZXVpLWVkaXRvcic7XG4gICAgQElucHV0KCkgaWQ6IHN0cmluZztcbiAgICBASW5wdXQoKSBwbGFjZWhvbGRlciA9ICcnO1xuICAgIEBJbnB1dCgpIGZvcm1hdDogJ2h0bWwnIHwgJ2pzb24nID0gJ2h0bWwnO1xuICAgIEBJbnB1dCgpIHRoZW1lOiAnc25vdycgfCAnYnViYmxlJyA9ICdzbm93JztcbiAgICBASW5wdXQoKSBkZWJ1ZzogJ3dhcm4nIHwgJ2xvZycgfCAnZXJyb3InIHwgZmFsc2UgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBjdXN0b21Ub29sYmFyUG9zaXRpb246ICd0b3AnIHwgJ2JvdHRvbScgPSAndG9wJztcbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIudGFiaW5kZXgnKVxuICAgIEBJbnB1dCgpIHRhYmluZGV4ID0gJzAnO1xuICAgIEBJbnB1dCgpIG1vZHVsZXM6IFF1aWxsTW9kdWxlcztcbiAgICBASW5wdXQoKSBmb3JtYXRzPzogc3RyaW5nW10gfCBudWxsO1xuICAgIC8vIE5FVyBFVUkgSU5QVVRTXG4gICAgQElucHV0KCkgY3VzdG9tVG9vbGJhckNvbmZpZzogVG9vbGJhckl0ZW1Db25maWdbXTtcbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLmhlaWdodCcpXG4gICAgQElucHV0KCkgaGVpZ2h0OiBzdHJpbmc7XG4gICAgLy8gTkVXIE9VVFBVVFMgPT4gZVVJMTMrIG9ubHlcbiAgICBAT3V0cHV0KCkgZWRpdG9yQ3JlYXRlID0gbmV3IEV2ZW50RW1pdHRlcjx0eXBlb2YgUXVpbGxUeXBlPigpO1xuICAgIEBPdXRwdXQoKSBlZGl0b3JDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEVkaXRvckNoYW5nZVNlbGVjdGlvbiB8IENvbnRlbnRDaGFuZ2U+KCk7XG4gICAgQE91dHB1dCgpIGNvbnRlbnRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPENvbnRlbnRDaGFuZ2U+KCk7XG4gICAgQE91dHB1dCgpIHNlbGVjdGlvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8U2VsZWN0aW9uQ2hhbmdlPigpO1xuICAgIEBPdXRwdXQoKSBmb2N1cyA9IG5ldyBFdmVudEVtaXR0ZXI8Rm9jdXM+KCk7XG4gICAgQE91dHB1dCgpIGJsdXIgPSBuZXcgRXZlbnRFbWl0dGVyPEJsdXI+KCk7XG4gICAgQE91dHB1dCgpIGNoYXJhY3RlcnNDb3VudENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuICAgIEBPdXRwdXQoKSB3b3Jkc0NvdW50Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmV1aS1lZGl0b3InKSB0cnVlOiBib29sZWFuO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLnJlYWRvbmx5JylcbiAgICBnZXQgcmVhZG9ubHkoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNSZWFkT25seSA/ICdyZWFkb25seScgOiBudWxsO1xuICAgIH1cblxuICAgIHB1YmxpYyB2YWx1ZTogc3RyaW5nIHwgYW55ID0gJyc7XG4gICAgcHVibGljIGNoYXJhY3RlcnNDb3VudCA9IDA7XG4gICAgcHVibGljIHdvcmRzQ291bnQgPSAwO1xuICAgIHB1YmxpYyBieXRlc0NvdW50ID0gMDtcbiAgICBwdWJsaWMgaXNGb2N1c2VkID0gZmFsc2U7XG4gICAgcHVibGljIGdlbmVyYXRlZElkOiBzdHJpbmc7XG4gICAgcHVibGljIGZvcm1Db250cm9sOiBGb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgpO1xuICAgIHB1YmxpYyBqc29uVG9IdG1sQ29udGVudDogc3RyaW5nO1xuICAgIHB1YmxpYyB0b29sYmFyQ29uZmlnOiB7IFtpZDogc3RyaW5nXTogeyBsYWJlbDogc3RyaW5nOyBvcHRpb25zOiBhbnlbXTsgZGlhbG9nTWVzc2FnZTogc3RyaW5nIH0gfTtcbiAgICBwcm90ZWN0ZWQgcmVhZHlUb1JlbmRlcjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG1heC1sZW5cbiAgICBAQ29udGVudENoaWxkKGZvcndhcmRSZWYoKCkgPT4gRXVpRWRpdG9yQ3VzdG9tVG9vbGJhclRhZ0RpcmVjdGl2ZSksIHsgc3RhdGljOiBmYWxzZSB9KVxuICAgIGV1aUVkaXRvckN1c3RvbVRvb2xiYXI6IEV1aUVkaXRvckN1c3RvbVRvb2xiYXJUYWdEaXJlY3RpdmU7XG5cbiAgICBASW5wdXQoKVxuICAgIGdldCBpc1JlYWRPbmx5KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNSZWFkT25seTtcbiAgICB9XG4gICAgc2V0IGlzUmVhZE9ubHkodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9pc1JlYWRPbmx5ID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfaXNSZWFkT25seSA9IGZhbHNlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IHNob3dDb3VudGVycygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Nob3dDb3VudGVycztcbiAgICB9XG4gICAgc2V0IHNob3dDb3VudGVycyh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX3Nob3dDb3VudGVycyA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIHByaXZhdGUgX3Nob3dDb3VudGVycyA9IHRydWU7XG4gICAgQElucHV0KClcbiAgICBnZXQgaXNFbmFibGVkT25Gb2N1cygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzRW5hYmxlZE9uRm9jdXM7XG4gICAgfVxuICAgIHNldCBpc0VuYWJsZWRPbkZvY3VzKHZhbHVlKSB7XG4gICAgICAgIHRoaXMuX2lzRW5hYmxlZE9uRm9jdXMgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBwcml2YXRlIF9pc0VuYWJsZWRPbkZvY3VzID0gZmFsc2U7XG4gICAgQElucHV0KClcbiAgICBnZXQgaXNNaW5pbWFsVG9vbGJhcigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzTWluaW1hbFRvb2xiYXI7XG4gICAgfVxuICAgIHNldCBpc01pbmltYWxUb29sYmFyKHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5faXNNaW5pbWFsVG9vbGJhciA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuICAgIHByaXZhdGUgX2lzTWluaW1hbFRvb2xiYXIgPSBmYWxzZTtcblxuICAgIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWludmFsaWQnKVxuICAgIGdldCBpc0ludmFsaWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc0ludmFsaWQ7XG4gICAgfVxuICAgIHNldCBpc0ludmFsaWQodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICB0aGlzLl9pc0ludmFsaWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cbiAgICBwcml2YXRlIF9pc0ludmFsaWQgPSBmYWxzZTtcblxuICAgIHByaXZhdGUgcXVpbGw6IHR5cGVvZiBRdWlsbFR5cGU7XG4gICAgcHJpdmF0ZSBtaW5pbWFsVG9vbGJhckNvbmZpZzogVG9vbGJhckl0ZW1Db25maWdbXSA9IFtcbiAgICAgICAgeyBuYW1lOiAnaGVhZGluZ3MnIH0sXG4gICAgICAgIHsgbmFtZTogJ2JvbGQnIH0sXG4gICAgICAgIHsgbmFtZTogJ2l0YWxpYycgfSxcbiAgICAgICAgeyBuYW1lOiAndW5kZXJsaW5lJyB9LFxuICAgICAgICB7IG5hbWU6ICdmb250Q29sb3InIH0sXG4gICAgICAgIHsgbmFtZTogJ3RleHRBbGlnbicgfSxcbiAgICAgICAgeyBuYW1lOiAnbGluaycgfSxcbiAgICAgICAgeyBuYW1lOiAnaW1hZ2UnIH0sXG4gICAgICAgIHsgbmFtZTogJ2ltYWdlVXJsJyB9LFxuICAgICAgICB7IG5hbWU6ICdjbGVhbicgfSxcbiAgICAgICAgeyBuYW1lOiAnZGVsZXRlJyB9LFxuICAgICAgICB7IG5hbWU6ICd1bmRvJyB9LFxuICAgICAgICB7IG5hbWU6ICdyZWRvJyB9LFxuICAgICAgICB7IG5hbWU6ICdjb3VudGVycycgfSxcbiAgICBdO1xuICAgIHByaXZhdGUgZGVmYXVsdFRvb2xiYXJDb25maWc6IFRvb2xiYXJJdGVtQ29uZmlnW10gPSBbXG4gICAgICAgIHsgbmFtZTogJ2hlYWRpbmdzJywgbGFiZWw6ICdTdHlsZSAtIEFwcGx5IGFuIEhUTUwgdGFnIG9yIENTUyBjbGFzcyB0byB0aGUgc2VsZWN0ZWQgdGV4dCcsIG9wdGlvbnM6IFsxLCAyLCAzLCA0LCA1LCA2XSB9LFxuICAgICAgICB7IG5hbWU6ICdmb250JywgbGFiZWw6ICdGb250IC0gQ2hhbmdlIHRoZSBmb250IGZhY2UnIH0sXG4gICAgICAgIHsgbmFtZTogJ2JvbGQnLCBsYWJlbDogJ0JvbGQgKEN0cmwgKyBCKSAtIE1ha2UgdGhlIHNlbGVjdGVkIHRleHQgYm9sZCcgfSxcbiAgICAgICAgeyBuYW1lOiAnaXRhbGljJywgbGFiZWw6ICdJdGFsaWMgKEN0cmwgKyBJKSAtIEl0YWxpY2l6ZSB0aGUgc2VsZWN0ZWQgdGV4dCcgfSxcbiAgICAgICAgeyBuYW1lOiAndW5kZXJsaW5lJywgbGFiZWw6ICdVbmRlcmxpbmUgKEN0cmwgKyBVKSAtIFVuZGVybGluZSB0aGUgc2VsZWN0ZWQgdGV4dCcgfSxcbiAgICAgICAgeyBuYW1lOiAnc3RyaWtlJywgbGFiZWw6ICdTdHJpa2V0aHJvdWdoIC0gRHJhdyBhIGxpbmUgdG8gdGhlIG1pZGRsZSBvZiB0aGUgc2VsZWN0ZWQgdGV4dCcgfSxcbiAgICAgICAgeyBuYW1lOiAnZm9udENvbG9yJywgbGFiZWw6ICdGb250IENvbG9yIC0gQ2hhbmdlIHRoZSB0ZXh0IGNvbG9yJyB9LFxuICAgICAgICB7IG5hbWU6ICdmb250QmFja2dyb3VuZCcsIGxhYmVsOiAnRm9udCBCYWNrZ3JvdW5kIC0gQ2hhbmdlIHRoZSB0ZXh0IGJhY2tncm91bmQgY29sb3InIH0sXG4gICAgICAgIHsgbmFtZTogJ3N1YnNjcmlwdCcsIGxhYmVsOiAnU3Vic2NyaXB0IC0gQ3JlYXRlIHNzbWFsbCBsZXR0ZXJzIGJlbG93IHRoZSB0ZXh0IGJhc2VsaW5lJyB9LFxuICAgICAgICB7IG5hbWU6ICdzdXBlcnNjcmlwdCcsIGxhYmVsOiAnU3VwZXJzY3JpcHQgLSBDcmVhdGUgc21hbGwgbGV0dGVycyBhYm92ZSB0aGUgbGluZSBvZiB0aGUgdGV4dCcgfSxcbiAgICAgICAgeyBuYW1lOiAndGV4dEFsaWduJywgbGFiZWw6ICdUZXh0IEFsaWduIC0gQWxpZ24gdGhlIHRleHQgdG8gdGhlIHNlbGVjdGVkIHBvc2l0aW9uOiBsZWZ0IChkZWZhdWx0KSwgY2VudGVyLCByaWdodCBvciBqdXN0aWZ5JyB9LFxuICAgICAgICB7IG5hbWU6ICdvcmRlcmVkTGlzdCcsIGxhYmVsOiAnTnVtYmVyaW5nIC0gU3RhcnQgYW4gb3JkZXJlZCBsaXN0JyB9LFxuICAgICAgICB7IG5hbWU6ICdidWxsZXRMaXN0JywgbGFiZWw6ICdCdWxsZXRzIC0gU3RhcnQgYSBidWxsZXRlZCBsaXN0JyB9LFxuICAgICAgICB7IG5hbWU6ICdpbmRlbnRMZXNzJywgbGFiZWw6ICdEZWNyZWFzZSBJbmRlbnQgLSBEZWNyZWFzZSB0aGUgaW5kZW50IGxldmVsIG9mIHRoZSBwYXJhZ3JhcGgnIH0sXG4gICAgICAgIHsgbmFtZTogJ2luZGVudE1vcmUnLCBsYWJlbDogJ0luY3JlYXNlIEluZGVudCAtIEluY3JlYXNlIHRoZSBpbmRlbnQgbGV2ZWwgb2YgdGhlIHBhcmFncmFwaCcgfSxcbiAgICAgICAgeyBuYW1lOiAnYmxvY2txdW90ZScsIGxhYmVsOiAnQmxvY2txdW90ZSAtIENyZWF0ZSBhIHF1b3RlZCBibG9jayBvZiB0aGUgc2VsZWN0ZWQgdGV4dCcgfSxcbiAgICAgICAgeyBuYW1lOiAnY29kZUJsb2NrJywgbGFiZWw6ICdJbnNlcnQgQ29kZSBCbG9jayAtIEluc2VydCBhIGNvZGUgYmxvY2sgYXQgdGhlIGN1cnNvciByb3cgcG9zaXRpb24nIH0sXG4gICAgICAgIHsgbmFtZTogJ2xpbmsnLCBsYWJlbDogJ0luc2VydCBIeXBlcmxpbmsgKEN0cmwgKyBLKSAtIENyZWF0ZSBhIGxpbmsgdG8gYSBXZWIgcGFnZSwgYSBwaWN0dXJlLCBhbiBlLW1haWwgYWRkcmVzcyBvciBhIHByb2dyYW0nIH0sXG4gICAgICAgIHsgbmFtZTogJ2ltYWdlJywgbGFiZWw6ICdJbnNlcnQgUGljdHVyZSAtIEluc2VydCBhIHBpY3R1cmUgZnJvbSBhIGZpbGUnIH0sXG4gICAgICAgIHsgbmFtZTogJ2ltYWdlVXJsJywgbGFiZWw6ICdJbnNlcnQgUGljdHVyZSBmcm9tIFVSTCAtIEluc2VydCBhIHBpY3R1cmUgZnJvbSBhIHJlbW90ZSBVUkwnLCBkaWFsb2dNZXNzYWdlOiAnRW50ZXIgaW1hZ2UgbGluayBVUkwnIH0sXG4gICAgICAgIHsgbmFtZTogJ3ZpZGVvJywgbGFiZWw6ICdJbnNlcnQgVmlkZW8gLSBJbnNlcnQgYSB2aWRlbyBmcm9tIGEgZmlsZScgfSxcbiAgICAgICAgeyBuYW1lOiAndGFibGUnLCBsYWJlbDogJ0luc2VydCBUYWJsZSAtIEluc2VydCBhIDN4MyByb3dzL2NvbHMgdGFibGUnIH0sXG4gICAgICAgIHsgbmFtZTogJ2NsZWFuJywgbGFiZWw6ICdSZW1vdmUgU3R5bGVzIC0gUmVtb3ZlIHRoZSBzdHlsZXMgb2YgdGhlIHNlbGVjdGVkIHRleHQnIH0sXG4gICAgICAgIHsgbmFtZTogJ2RlbGV0ZScsIGxhYmVsOiBcIkRlbGV0ZSBjb250ZW50IC0gUGVybWFuZW50bHkgZGVsZXRlcyBlZGl0b3IncyBjb250ZW50c1wiIH0sXG4gICAgICAgIHsgbmFtZTogJ3VuZG8nLCBsYWJlbDogJ1VuZG8gKEN0cmwgKyBaKSAtIENhbmNlbHMgdGhlIHByZXZpb3VzIGFjdGlvbicgfSxcbiAgICAgICAgeyBuYW1lOiAncmVkbycsIGxhYmVsOiAnUmVkbyAoQ3RybCArIFkpIC0gRG8gdGhlIG5leHQgaGlzdG9yeSBhY3Rpb24gYWdhaW4nIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6ICdjb3VudGVycycsXG4gICAgICAgICAgICBsYWJlbDogJ0NvdW50ZXJzIC0gQ2hhcmFjdGVycyBhbmQgd29yZHMgY291bnRlcnMgKHN0cmlwcGVkIEh0bWwpJyxcbiAgICAgICAgICAgIG9wdGlvbnM6IFtcbiAgICAgICAgICAgICAgICB7IG5hbWU6ICdjaGFyYWN0ZXJzJywgbGFiZWw6ICdDaGFyYWN0ZXJzJyB9LFxuICAgICAgICAgICAgICAgIHsgbmFtZTogJ3dvcmRzJywgbGFiZWw6ICdXb3JkcycgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgXTtcbiAgICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZXVpRGlhbG9nU2VydmljZTogRXVpRGlhbG9nU2VydmljZSxcbiAgICAgICAgICAgICAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBuZ0NvbnRyb2w6IE5nQ29udHJvbCxcbiAgICAgICAgICAgICAgICBwcml2YXRlIGxvYWRlcjogTG9hZGVyU2VydmljZSkge1xuICAgICAgICB0aGlzLm5nQ29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5sb2FkZXIubG9hZCgpLnN1YnNjcmliZSh7XG4gICAgICAgICAgICBjb21wbGV0ZTogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMucmVhZHlUb1JlbmRlciA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5uZ0NvbnRyb2wuc3RhdHVzQ2hhbmdlcy5waXBlKHN0YXJ0V2l0aCh0aGlzLm5nQ29udHJvbC5jb250cm9sLnN0YXR1cyksIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKChzdGF0dXMpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc0ludmFsaWQgPSBzdGF0dXMgIT09ICdWQUxJRCc7XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICB0aGlzLmdlbmVyYXRlZElkID0gdGhpcy5pZCA/IHRoaXMuaWQgOiAnZXVpLWVkaXRvci0nICsgKE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDEwMDAwMDApICsgMSkudG9TdHJpbmcoKTtcblxuICAgICAgICAgICAgICAgIHRoaXMudG9vbGJhckNvbmZpZyA9IHt9O1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5jdXN0b21Ub29sYmFyQ29uZmlnICYmICF0aGlzLmlzTWluaW1hbFRvb2xiYXIpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kZWZhdWx0VG9vbGJhckNvbmZpZy5mb3JFYWNoKCh0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRvb2xiYXJDb25maWcgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4udGhpcy50b29sYmFyQ29uZmlnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0Lm5hbWVdOiB7IGxhYmVsOiB0LmxhYmVsLCBvcHRpb25zOiB0Lm9wdGlvbnMsIGRpYWxvZ01lc3NhZ2U6IHQuZGlhbG9nTWVzc2FnZSB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuY3VzdG9tVG9vbGJhckNvbmZpZyAmJiAhdGhpcy5pc01pbmltYWxUb29sYmFyKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY3VzdG9tVG9vbGJhckNvbmZpZy5mb3JFYWNoKCh0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsYWJlbCA9ICF0LmxhYmVsID8gdGhpcy5kZWZhdWx0VG9vbGJhckNvbmZpZy5maW5kKChjKSA9PiBjLm5hbWUgPT09IHQubmFtZSkubGFiZWwgOiB0LmxhYmVsO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG9wdGlvbnMgPSAhdC5vcHRpb25zID8gdGhpcy5kZWZhdWx0VG9vbGJhckNvbmZpZy5maW5kKChjKSA9PiBjLm5hbWUgPT09IHQubmFtZSkub3B0aW9ucyA6IHQub3B0aW9ucztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGQgPSAhdC5kaWFsb2dNZXNzYWdlID8gdGhpcy5kZWZhdWx0VG9vbGJhckNvbmZpZy5maW5kKChjKSA9PiBjLm5hbWUgPT09IHQubmFtZSkuZGlhbG9nTWVzc2FnZSA6IHQuZGlhbG9nTWVzc2FnZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHQubmFtZSA9PT0gJ2NvdW50ZXJzJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdC5vcHRpb25zKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMgPSB0aGlzLmRlZmF1bHRUb29sYmFyQ29uZmlnLmZpbmQoKGMpID0+IGMubmFtZSA9PT0gdC5uYW1lKS5vcHRpb25zO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMgPSB0Lm9wdGlvbnMubWFwKChvcHRpb24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG9wdGlvbkxhYmVsID0gb3B0aW9uLmxhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBvcHRpb24ubGFiZWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHRoaXMuZGVmYXVsdFRvb2xiYXJDb25maWdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmZpbmQoKGR0YykgPT4gZHRjLm5hbWUgPT09ICdjb3VudGVycycpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5vcHRpb25zLmZpbmQoKG8pID0+IG8ubmFtZSA9PT0gb3B0aW9uLm5hbWUpLmxhYmVsO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgbmFtZTogb3B0aW9uLm5hbWUsIGxhYmVsOiBvcHRpb25MYWJlbCB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudG9vbGJhckNvbmZpZyA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi50aGlzLnRvb2xiYXJDb25maWcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3QubmFtZV06IHsgbGFiZWwsIG9wdGlvbnMsIGRpYWxvZ01lc3NhZ2U6IGQgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzTWluaW1hbFRvb2xiYXIpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5taW5pbWFsVG9vbGJhckNvbmZpZy5mb3JFYWNoKCh0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBsYWJlbCA9ICF0LmxhYmVsID8gdGhpcy5kZWZhdWx0VG9vbGJhckNvbmZpZy5maW5kKChjKSA9PiBjLm5hbWUgPT09IHQubmFtZSkubGFiZWwgOiB0LmxhYmVsO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9ucyA9ICF0Lm9wdGlvbnMgPyB0aGlzLmRlZmF1bHRUb29sYmFyQ29uZmlnLmZpbmQoKGMpID0+IGMubmFtZSA9PT0gdC5uYW1lKS5vcHRpb25zIDogdC5vcHRpb25zO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZCA9ICF0LmRpYWxvZ01lc3NhZ2UgPyB0aGlzLmRlZmF1bHRUb29sYmFyQ29uZmlnLmZpbmQoKGMpID0+IGMubmFtZSA9PT0gdC5uYW1lKS5kaWFsb2dNZXNzYWdlIDogdC5kaWFsb2dNZXNzYWdlO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRvb2xiYXJDb25maWcgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4udGhpcy50b29sYmFyQ29uZmlnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0Lm5hbWVdOiB7IGxhYmVsLCBvcHRpb25zLCBkaWFsb2dNZXNzYWdlOiBkIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XG4gICAgICAgIHRoaXMuZGVzdHJveSQudW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdjbGljaycpXG4gICAgQEhvc3RMaXN0ZW5lcignZm9jdXNpbicpXG4gICAgcHVibGljIGVuYWJsZUVkaXRvck9uRm9jdXMoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzRW5hYmxlZE9uRm9jdXMgJiYgdGhpcy5pc1JlYWRPbmx5KSB7XG4gICAgICAgICAgICB0aGlzLmlzUmVhZE9ubHkgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBpbWFnZVVybEhhbmRsZXIoKTogdm9pZCB7XG4gICAgICAgIGxldCBpbWFnZVVybERpYWxvZ0Zvcm06IEZvcm1Hcm91cCA9IG51bGw7XG4gICAgICAgIHRoaXMuZXVpRGlhbG9nU2VydmljZS5vcGVuRGlhbG9nKFxuICAgICAgICAgICAgbmV3IEV1aURpYWxvZ0NvbmZpZyh7XG4gICAgICAgICAgICAgICAgdGl0bGU6IHRoaXMudG9vbGJhckNvbmZpZy5pbWFnZVVybC5kaWFsb2dNZXNzYWdlLFxuICAgICAgICAgICAgICAgIGlzSGFuZGxlQ2xvc2VPbkFjY2VwdDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBib2R5Q29tcG9uZW50OiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudDogRXVpRWRpdG9ySW1hZ2VEaWFsb2dDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZzoge1xuICAgICAgICAgICAgICAgICAgICAgICAgb25Gb3JtVmFsdWVDaGFuZ2U6IChmb3JtOiBGb3JtR3JvdXApOiB2b2lkID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbWFnZVVybERpYWxvZ0Zvcm0gPSBmb3JtO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGFjY2VwdDogKCk6IHZvaWQgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoaW1hZ2VVcmxEaWFsb2dGb3JtICYmIGltYWdlVXJsRGlhbG9nRm9ybS52YWxpZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ldWlEaWFsb2dTZXJ2aWNlLmNsb3NlRGlhbG9nKCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJhbmdlID0gdGhpcy5xdWlsbC5nZXRTZWxlY3Rpb24oKSB8fCB7IGluZGV4OiAwLCBsZW5ndGg6IDAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucXVpbGwuaW5zZXJ0RW1iZWQocmFuZ2UuaW5kZXgsICdpbWFnZScsIGltYWdlVXJsRGlhbG9nRm9ybS5nZXQoJ3VybCcpLnZhbHVlLCAndXNlcicpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIGVkaXRvclVuZG8oKTogdm9pZCB7XG4gICAgICAgIHRoaXMucXVpbGxbJ2hpc3RvcnknXS51bmRvKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGVkaXRvclJlZG8oKTogdm9pZCB7XG4gICAgICAgIHRoaXMucXVpbGxbJ2hpc3RvcnknXS5yZWRvKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGVkaXRvckRlbGV0ZUNvbnRlbnQoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IG5ldyBFdWlEaWFsb2dDb25maWcoe1xuICAgICAgICAgICAgdGl0bGU6ICdEZWxldGUgY29udGVudCcsXG4gICAgICAgICAgICBjb250ZW50OiBcIjxwPkFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgZWRpdG9yJ3MgY29udGVudD88L3A+XCIsXG4gICAgICAgICAgICBoYXNDbG9zZUJ1dHRvbjogZmFsc2UsXG4gICAgICAgICAgICBhY2NlcHQ6ICgpOiB2b2lkID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnF1aWxsLnNldENvbnRlbnRzKG51bGwpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5ldWlEaWFsb2dTZXJ2aWNlLm9wZW5EaWFsb2coY29uZmlnKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaW5zZXJ0VGFibGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudGFibGVNb2R1bGUuaW5zZXJ0VGFibGUoMywgMyk7XG4gICAgfVxuXG4gICAgZ2V0IGhhc0ltYWdlRmVhdHVyZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZXVpRWRpdG9yQ3VzdG9tVG9vbGJhclxuICAgICAgICAgICAgPyB0aGlzLmV1aUVkaXRvckN1c3RvbVRvb2xiYXI/LmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcucWwtaW1hZ2UnKVxuICAgICAgICAgICAgOiB0aGlzLnRvb2xiYXJDb25maWcuaW1hZ2U7XG4gICAgfVxuXG4gICAgcHVibGljIF9vbkVkaXRvckNyZWF0ZWQocXVpbGw6IHR5cGVvZiBRdWlsbFR5cGUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5xdWlsbCA9IHF1aWxsO1xuXG4gICAgICAgIGlmICh0aGlzLmlzRW5hYmxlZE9uRm9jdXMpIHtcbiAgICAgICAgICAgIHRoaXMucXVpbGwuZm9jdXMoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmZvcm1hdCA9PT0gJ2h0bWwnKSB7XG4gICAgICAgICAgICBjb25zdCBkZWx0YSA9IHRoaXMucXVpbGwuY2xpcGJvYXJkLmNvbnZlcnQoeyBodG1sOiB0aGlzLnZhbHVlIGFzIHN0cmluZyB9KTtcbiAgICAgICAgICAgIHRoaXMuZm9ybUNvbnRyb2wucGF0Y2hWYWx1ZShkZWx0YSk7XG4gICAgICAgICAgICB0aGlzLnF1aWxsLnNldENvbnRlbnRzKGRlbHRhKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmZvcm1hdCA9PT0gJ2pzb24nKSB7XG4gICAgICAgICAgICB0aGlzLmZvcm1Db250cm9sLnBhdGNoVmFsdWUodGhpcy52YWx1ZSk7XG4gICAgICAgICAgICB0aGlzLnF1aWxsLnNldENvbnRlbnRzKEpTT04ucGFyc2UodGhpcy52YWx1ZSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF0aGlzLmhhc0ltYWdlRmVhdHVyZSkge1xuICAgICAgICAgICAgcXVpbGwuY2xpcGJvYXJkLmFkZE1hdGNoZXIoJ0lNRycsIChlbGVtZW50OiBFbGVtZW50LCBkZWx0YTogRGVsdGEpID0+IG5ldyBEZWx0YSgpLmluc2VydCgnJykpO1xuICAgICAgICAgICAgcXVpbGwuY2xpcGJvYXJkLmFkZE1hdGNoZXIoJ1BJQ1RVUkUnLCAoZWxlbWVudDogRWxlbWVudCwgZGVsdGE6IERlbHRhKSA9PiBuZXcgRGVsdGEoKS5pbnNlcnQoJycpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZWRpdG9yQ3JlYXRlLmVtaXQocXVpbGwpO1xuICAgIH1cblxuICAgIHB1YmxpYyBfb25FZGl0b3JDaGFuZ2VkKGV2ZW50OiBFZGl0b3JDaGFuZ2VTZWxlY3Rpb24gfCBDb250ZW50Q2hhbmdlIHwgRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc29sZS53YXJuKCdvbkVkaXRvckNoYW5nZWQoKSBldmVudCBpcyBERVBSRUNBVEVEIHBsZWFzZSB1c2UgY29udGVudENoYW5nZSgpIGV2ZW50IGluc3RlYWQuJyk7XG4gICAgICAgIHRoaXMuZWRpdG9yQ2hhbmdlLmVtaXQoZXZlbnQgYXMgRWRpdG9yQ2hhbmdlU2VsZWN0aW9uKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgX29uQ29udGVudENoYW5nZWQoZXZlbnQ6IENvbnRlbnRDaGFuZ2UpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZm9ybWF0ID09PSAnaHRtbCcpIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSBldmVudC5odG1sO1xuICAgICAgICAgICAgdGhpcy5jYWxjdWxhdGVDb3VudGVycyh0aGlzLnZhbHVlIGFzIHN0cmluZyk7XG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuaHRtbEVudGl0aWVzRGVjb2RlKHRoaXMudmFsdWUgYXMgc3RyaW5nKSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuZm9ybWF0ID09PSAnanNvbicpIHtcbiAgICAgICAgICAgIGlmIChldmVudC50ZXh0ICE9PSAnXFxuJykge1xuICAgICAgICAgICAgICAgIHRoaXMudmFsdWUgPSBldmVudC5jb250ZW50O1xuICAgICAgICAgICAgICAgIHRoaXMuY2FsY3VsYXRlQ291bnRlcnMoZXZlbnQudGV4dCk7XG4gICAgICAgICAgICAgICAgdGhpcy5qc29uVG9IdG1sQ29udGVudCA9IHRoaXMuaHRtbEVudGl0aWVzRGVjb2RlKEpTT04uc3RyaW5naWZ5KHRoaXMudmFsdWUpKTtcbiAgICAgICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuanNvblRvSHRtbENvbnRlbnQpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlID0gbnVsbDtcbiAgICAgICAgICAgICAgICB0aGlzLmNhbGN1bGF0ZUNvdW50ZXJzKCcnKTtcbiAgICAgICAgICAgICAgICB0aGlzLmpzb25Ub0h0bWxDb250ZW50ID0gJyc7XG4gICAgICAgICAgICAgICAgdGhpcy5vbkNoYW5nZShudWxsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNvbnRlbnRDaGFuZ2UuZW1pdChldmVudCk7IC8vIE5ldyBlbWl0dGVyXG4gICAgICAgIHRoaXMuX29uRWRpdG9yQ2hhbmdlZChldmVudCk7IC8vIFN5bmMgd2l0aCBlZGl0b3IgY2hhbmdlIGV2ZW50IHNpbmNlIGl0J3MgZHVwbGljYXRlZCBldmVudFxuICAgIH1cblxuICAgIHB1YmxpYyBfb25TZWxlY3Rpb25DaGFuZ2VkKGV2ZW50OiBTZWxlY3Rpb25DaGFuZ2UpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2UuZW1pdChldmVudCk7XG4gICAgfVxuXG4gICAgcHVibGljIF9vbkZvY3VzKGV2ZW50OiBGb2N1cyk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzRm9jdXNlZCA9IHRydWU7XG4gICAgICAgIHRoaXMuZm9jdXMuZW1pdChldmVudCk7XG4gICAgfVxuXG4gICAgcHVibGljIF9vbkJsdXIoZXZlbnQ6IEJsdXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc0ZvY3VzZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5vblRvdWNoKCk7XG4gICAgICAgIHRoaXMuYmx1ci5lbWl0KGV2ZW50KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uVG91Y2ggPSBmbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZSB8fCBudWxsO1xuICAgICAgICB0aGlzLmpzb25Ub0h0bWxDb250ZW50ID0gdGhpcy52YWx1ZTtcblxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLnF1aWxsKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZm9ybWF0ID09PSAnaHRtbCcpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGVsdGEgPSB0aGlzLnF1aWxsLmNsaXBib2FyZC5jb252ZXJ0KHsgaHRtbDogdGhpcy52YWx1ZSBhcyBzdHJpbmcgfSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybUNvbnRyb2wucGF0Y2hWYWx1ZShkZWx0YSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucXVpbGwuc2V0Q29udGVudHMoZGVsdGEpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmZvcm1hdCA9PT0gJ2pzb24nKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybUNvbnRyb2wucGF0Y2hWYWx1ZSh0aGlzLnZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgLy8gdGhpcy5xdWlsbC5zZXRDb250ZW50cyhKU09OLnBhcnNlKHRoaXMudmFsdWUpKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB0aGlzLmNhbGN1bGF0ZUNvdW50ZXJzKHRoaXMudmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCB0YWJsZU1vZHVsZSgpOiBCZXR0ZXJUYWJsZU1vZHVsZSB7XG4gICAgICAgIHJldHVybiB0aGlzLnF1aWxsLmdldE1vZHVsZSgnYmV0dGVyLXRhYmxlJyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvbkNoYW5nZTogYW55ID0gKCkgPT4ge307XG5cbiAgICBwcml2YXRlIG9uVG91Y2g6IGFueSA9ICgpID0+IHt9O1xuXG4gICAgcHJpdmF0ZSBodG1sRW50aXRpZXNEZWNvZGUoY29udGVudDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgbGV0IGMgPSBjb250ZW50O1xuICAgICAgICBpZiAoYykge1xuICAgICAgICAgICAgYyA9IGMucmVwbGFjZSgnJmFtcDsnLCAnJicpO1xuICAgICAgICAgICAgYyA9IGMucmVwbGFjZSgnJm5ic3A7JywgJyAnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjO1xuICAgIH1cblxuICAgIGdldCBoYXNDaGFyYWN0ZXJzQ291bnRlcigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudG9vbGJhckNvbmZpZy5jb3VudGVycy5vcHRpb25zLmZpbmQoKG8pID0+IG8ubmFtZSA9PT0gJ2NoYXJhY3RlcnMnKTtcbiAgICB9XG5cbiAgICBnZXQgY2hhcmFjdGVyc0NvdW50ZXJMYWJlbCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy50b29sYmFyQ29uZmlnLmNvdW50ZXJzLm9wdGlvbnMuZmluZCgobykgPT4gby5uYW1lID09PSAnY2hhcmFjdGVycycpPy5sYWJlbDtcbiAgICB9XG5cbiAgICBnZXQgaGFzV29yZHNDb3VudGVyKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy50b29sYmFyQ29uZmlnLmNvdW50ZXJzLm9wdGlvbnMuZmluZCgobykgPT4gby5uYW1lID09PSAnd29yZHMnKTtcbiAgICB9XG5cbiAgICBnZXQgd29yZHNDb3VudGVyTGFiZWwoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudG9vbGJhckNvbmZpZy5jb3VudGVycy5vcHRpb25zLmZpbmQoKG8pID0+IG8ubmFtZSA9PT0gJ3dvcmRzJyk/LmxhYmVsO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2FsY3VsYXRlQ291bnRlcnMoY29udGVudDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGxldCB0ZXh0OiBzdHJpbmc7XG4gICAgICAgIGNvbnN0IHJlZ2V4ID0gL1xccysvO1xuICAgICAgICBpZiAodGhpcy5mb3JtYXQgPT09ICdodG1sJykge1xuICAgICAgICAgICAgaWYgKGNvbnRlbnQgJiYgY29udGVudC5sZW5ndGggPiAwICYmIHRoaXMucXVpbGwpIHtcbiAgICAgICAgICAgICAgICB0ZXh0ID0gdGhpcy5zdHJpcEh0bWwoY29udGVudCk7XG4gICAgICAgICAgICAgICAgdGhpcy5jaGFyYWN0ZXJzQ291bnQgPSB0ZXh0Lmxlbmd0aDtcbiAgICAgICAgICAgICAgICB0ZXh0ID0gdGhpcy5jbGVhbkh0bWwoY29udGVudCk7XG4gICAgICAgICAgICAgICAgdGhpcy53b3Jkc0NvdW50ID0gIXRleHQgPyAwIDogdGV4dC50cmltKCkuc3BsaXQocmVnZXgpLmZpbHRlcih0ID0+IHQgIT09ICcnKS5sZW5ndGg7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuY2hhcmFjdGVyc0NvdW50ID0gMDtcbiAgICAgICAgICAgICAgICB0aGlzLndvcmRzQ291bnQgPSAwO1xuICAgICAgICAgICAgICAgIHRoaXMuYnl0ZXNDb3VudCA9IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5mb3JtYXQgPT09ICdqc29uJykge1xuICAgICAgICAgICAgaWYgKGNvbnRlbnQgJiYgdGhpcy5xdWlsbCkge1xuICAgICAgICAgICAgICAgIHRleHQgPSB0aGlzLnN0cmlwSHRtbCh0aGlzLnF1aWxsLnJvb3QuaW5uZXJIVE1MKTtcbiAgICAgICAgICAgICAgICB0aGlzLmNoYXJhY3RlcnNDb3VudCA9IHRleHQubGVuZ3RoO1xuXG4gICAgICAgICAgICAgICAgdGV4dCA9IHRoaXMuY2xlYW5IdG1sKHRoaXMucXVpbGwucm9vdC5pbm5lckhUTUwpO1xuICAgICAgICAgICAgICAgIHRoaXMud29yZHNDb3VudCA9ICF0ZXh0ID8gMCA6IHRleHQudHJpbSgpLnNwbGl0KHJlZ2V4KS5maWx0ZXIodCA9PiB0ICE9PSAnJykubGVuZ3RoO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNoYXJhY3RlcnNDb3VudCA9IDA7XG4gICAgICAgICAgICAgICAgdGhpcy53b3Jkc0NvdW50ID0gMDtcbiAgICAgICAgICAgICAgICB0aGlzLmJ5dGVzQ291bnQgPSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jaGFyYWN0ZXJzQ291bnRDaGFuZ2UuZW1pdCh0aGlzLmNoYXJhY3RlcnNDb3VudCk7XG5cbiAgICAgICAgdGhpcy53b3Jkc0NvdW50Q2hhbmdlLmVtaXQodGhpcy53b3Jkc0NvdW50KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0cmlwSHRtbChjb250ZW50OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCByZWdleCA9IC8oPChbXj5dKyk+KS9nbTtcbiAgICAgICAgY29uc3QgY29udGVudFRvUmVwbGFjZSA9IGNvbnRlbnQucmVwbGFjZShyZWdleCwgJycpO1xuICAgICAgICByZXR1cm4gY29udGVudFRvUmVwbGFjZS5yZXBsYWNlKC9bXFx1MjAwQi1cXHUyMDBEXFx1RkVGRl0vZywgJycpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2xlYW5IdG1sKGNvbnRlbnQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGNvbnRlbnRUb1JlcGxhY2UgPSBjb250ZW50LnJlcGxhY2UoLzxbXj5dKj4vZywgJycpO1xuICAgICAgICByZXR1cm4gY29udGVudFRvUmVwbGFjZS5yZXBsYWNlKC9bXFx1MjAwQi1cXHUyMDBEXFx1RkVGRl0vZywgJycpO1xuICAgIH1cbn1cblxuLyogZXNsaW50LWRpc2FibGUgKi9cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ2V1aUVkaXRvckN1c3RvbVRvb2xiYXInIH0pXG5leHBvcnQgY2xhc3MgRXVpRWRpdG9yQ3VzdG9tVG9vbGJhclRhZ0RpcmVjdGl2ZSB7XG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpIGVsZW1lbnRDbGFzcyA9ICdldWktZWRpdG9yLWN1c3RvbS10b29sYmFyJztcblxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7fVxufVxuLyogZXNsaW50LWVuYWJsZSAqL1xuXG4vKipcbiAqIFBpcGUgdG8gcmVtb3ZlIGNsYXNzZXMgZnJvbSB0aGUgZWRpdG9yXG4gKi9cbkBQaXBlKHsgbmFtZTogJ2NsYXNzRmlsdGVyJyB9KVxuZXhwb3J0IGNsYXNzIENsYXNzRmlsdGVyUGlwZSB7XG4gICAgdHJhbnNmb3JtKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdmFsdWVcbiAgICAgICAgICAgIC5yZXBsYWNlKC9ldWktZWRpdG9yLXdyYXBwZXIvZywgJycpXG4gICAgICAgICAgICAucmVwbGFjZSgvZXVpLWVkaXRvci0tcmVhZG9ubHkvZywgJycpXG4gICAgICAgICAgICAucmVwbGFjZSgvZXVpLWVkaXRvci0tZW1wdHkvZywgJycpO1xuICAgIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJyZWFkeVRvUmVuZGVyXCI+XG5AaWYgKCFpc1JlYWRPbmx5KSB7XG4gICAgPHF1aWxsLWVkaXRvclxuICAgICAgICBbaWRdPVwiZ2VuZXJhdGVkSWRcIlxuICAgICAgICBjbGFzcz1cInt7IGNsYXNzIHwgY2xhc3NGaWx0ZXIgfX1cIlxuICAgICAgICBbY2xhc3MuZXVpLWVkaXRvci0tZm9jdXNlZF09XCJpc0ZvY3VzZWRcIlxuICAgICAgICBbZm9ybWF0XT1cImZvcm1hdFwiXG4gICAgICAgIFtmb3JtYXRzXT1cImZvcm1hdHNcIlxuICAgICAgICBbc2FuaXRpemVdPVwidHJ1ZVwiXG4gICAgICAgIFttb2R1bGVzXT1cIm1vZHVsZXNcIlxuICAgICAgICBbdGhlbWVdPVwidGhlbWVcIlxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgICBbY3VzdG9tVG9vbGJhclBvc2l0aW9uXT1cImN1c3RvbVRvb2xiYXJQb3NpdGlvblwiXG4gICAgICAgIFtmb3JtQ29udHJvbF09XCJmb3JtQ29udHJvbFwiXG4gICAgICAgIFtkZWJ1Z109XCJkZWJ1Z1wiXG4gICAgICAgIFt0YWJpbmRleF09XCJ0YWJpbmRleFwiXG4gICAgICAgIFtwcmVzZXJ2ZVdoaXRlc3BhY2VdPVwidHJ1ZVwiXG4gICAgICAgIFtoYXNJbWFnZUZlYXR1cmVdPVwiaGFzSW1hZ2VGZWF0dXJlXCJcbiAgICAgICAgKG9uRWRpdG9yQ3JlYXRlZCk9XCJfb25FZGl0b3JDcmVhdGVkKCRldmVudClcIlxuICAgICAgICAob25FZGl0b3JDaGFuZ2VkKT1cIl9vbkVkaXRvckNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgIChvbkNvbnRlbnRDaGFuZ2VkKT1cIl9vbkNvbnRlbnRDaGFuZ2VkKCRldmVudClcIlxuICAgICAgICAob25TZWxlY3Rpb25DaGFuZ2VkKT1cIl9vblNlbGVjdGlvbkNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgIChvbkZvY3VzKT1cIl9vbkZvY3VzKCRldmVudClcIlxuICAgICAgICAob25CbHVyKT1cIl9vbkJsdXIoJGV2ZW50KVwiPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwiIWV1aUVkaXRvckN1c3RvbVRvb2xiYXJcIiBxdWlsbC1lZGl0b3ItdG9vbGJhcj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAqbmdJZj1cInRvb2xiYXJDb25maWcuaGVhZGluZ3NcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwicWwtZm9ybWF0c1wiXG4gICAgICAgICAgICAgICAgcm9sZT1cImFwcGxpY2F0aW9uXCJcbiAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiU2VsZWN0IGhlYWRpbmdzIHN0eWxlXCJcbiAgICAgICAgICAgICAgICBldWlUb29sdGlwPVwie3sgdG9vbGJhckNvbmZpZy5oZWFkaW5ncy5sYWJlbCB9fVwiPlxuICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJxbC1oZWFkZXJcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInRvb2xiYXJDb25maWcuaGVhZGluZ3MubGFiZWxcIj5cbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cInt7IHZhbHVlIH19XCIgKm5nRm9yPVwibGV0IHZhbHVlIG9mIHRvb2xiYXJDb25maWcuaGVhZGluZ3Mub3B0aW9uc1wiPkhlYWRpbmcge3sgdmFsdWUgfX08L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBzZWxlY3RlZD5Ob3JtYWw8L29wdGlvbj5cbiAgICAgICAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICpuZ0lmPVwidG9vbGJhckNvbmZpZy5mb250XCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInFsLWZvcm1hdHNcIlxuICAgICAgICAgICAgICAgIHJvbGU9XCJhcHBsaWNhdGlvblwiXG4gICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIlNlbGVjdCBmb250IHN0eWxlXCJcbiAgICAgICAgICAgICAgICBldWlUb29sdGlwPVwie3sgdG9vbGJhckNvbmZpZy5mb250LmxhYmVsIH19XCI+XG4gICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cInFsLWZvbnRcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInRvb2xiYXJDb25maWcuZm9udC5sYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHNlbGVjdGVkPlNhbnMgU2VyaWY8L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cInNlcmlmXCI+U2VyaWY8L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIm1vbm9zcGFjZVwiPk1vbm9zcGFjZTwvb3B0aW9uPlxuICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidG9vbGJhckNvbmZpZy5ib2xkIHx8IHRvb2xiYXJDb25maWcuaXRhbGljIHx8IHRvb2xiYXJDb25maWcudW5kZXJsaW5lIHx8IHRvb2xiYXJDb25maWcuc3RyaWtlXCIgY2xhc3M9XCJxbC1mb3JtYXRzXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInRvb2xiYXJDb25maWcuYm9sZFwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicWwtYm9sZFwiXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInRvb2xiYXJDb25maWcuYm9sZC5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgIGV1aVRvb2x0aXA9XCJ7eyB0b29sYmFyQ29uZmlnLmJvbGQubGFiZWwgfX1cIj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwidG9vbGJhckNvbmZpZy5pdGFsaWNcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInFsLWl0YWxpY1wiXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInRvb2xiYXJDb25maWcuaXRhbGljLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgZXVpVG9vbHRpcD1cInt7IHRvb2xiYXJDb25maWcuaXRhbGljLmxhYmVsIH19XCI+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInRvb2xiYXJDb25maWcudW5kZXJsaW5lXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJxbC11bmRlcmxpbmVcIlxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0b29sYmFyQ29uZmlnLnVuZGVybGluZS5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgIGV1aVRvb2x0aXA9XCJ7eyB0b29sYmFyQ29uZmlnLnVuZGVybGluZS5sYWJlbCB9fVwiPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJ0b29sYmFyQ29uZmlnLnN0cmlrZVwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicWwtc3RyaWtlXCJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwidG9vbGJhckNvbmZpZy5zdHJpa2UubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICBldWlUb29sdGlwPVwie3sgdG9vbGJhckNvbmZpZy5zdHJpa2UubGFiZWwgfX1cIj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInRvb2xiYXJDb25maWcuZm9udENvbG9yIHx8IHRvb2xiYXJDb25maWcuZm9udEJhY2tncm91bmRcIiBjbGFzcz1cInFsLWZvcm1hdHNcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cInRvb2xiYXJDb25maWcuZm9udENvbG9yXCIgZXVpVG9vbHRpcD1cInt7IHRvb2xiYXJDb25maWcuZm9udENvbG9yLmxhYmVsIH19XCI+XG4gICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJxbC1jb2xvclwiIFthdHRyLmFyaWEtbGFiZWxdPVwidG9vbGJhckNvbmZpZy5mb250Q29sb3IubGFiZWxcIj48L3NlbGVjdD5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJ0b29sYmFyQ29uZmlnLmZvbnRCYWNrZ3JvdW5kXCIgZXVpVG9vbHRpcD1cInt7IHRvb2xiYXJDb25maWcuZm9udEJhY2tncm91bmQubGFiZWwgfX1cIj5cbiAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cInFsLWJhY2tncm91bmRcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInRvb2xiYXJDb25maWcuZm9udEJhY2tncm91bmQubGFiZWxcIj48L3NlbGVjdD5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ0b29sYmFyQ29uZmlnLnN1YnNjcmlwdCB8fCB0b29sYmFyQ29uZmlnLnN1cGVyc2NyaXB0XCIgY2xhc3M9XCJxbC1mb3JtYXRzXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInRvb2xiYXJDb25maWcuc3Vic2NyaXB0XCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJxbC1zY3JpcHRcIlxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cInN1YlwiXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInRvb2xiYXJDb25maWcuc3Vic2NyaXB0LmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgZXVpVG9vbHRpcD1cInt7IHRvb2xiYXJDb25maWcuc3Vic2NyaXB0LmxhYmVsIH19XCI+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInRvb2xiYXJDb25maWcuc3VwZXJzY3JpcHRcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInFsLXNjcmlwdFwiXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPVwic3VwZXJcIlxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0b29sYmFyQ29uZmlnLnN1cGVyc2NyaXB0LmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgZXVpVG9vbHRpcD1cInt7IHRvb2xiYXJDb25maWcuc3VwZXJzY3JpcHQubGFiZWwgfX1cIj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInRvb2xiYXJDb25maWcudGV4dEFsaWduXCIgY2xhc3M9XCJxbC1mb3JtYXRzXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gZXVpVG9vbHRpcD1cInt7IHRvb2xiYXJDb25maWcudGV4dEFsaWduLmxhYmVsIH19XCI+XG4gICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJxbC1hbGlnblwiIFthdHRyLmFyaWEtbGFiZWxdPVwidG9vbGJhckNvbmZpZy50ZXh0QWxpZ24ubGFiZWxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gc2VsZWN0ZWQ+PC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiY2VudGVyXCI+PC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwicmlnaHRcIj48L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJqdXN0aWZ5XCI+PC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICpuZ0lmPVwidG9vbGJhckNvbmZpZy5vcmRlcmVkTGlzdCB8fCB0b29sYmFyQ29uZmlnLmJ1bGxldExpc3QgfHwgdG9vbGJhckNvbmZpZy5pbmRlbnRMZXNzIHx8IHRvb2xiYXJDb25maWcuaW5kZW50TW9yZVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJxbC1mb3JtYXRzXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInRvb2xiYXJDb25maWcub3JkZXJlZExpc3RcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInFsLWxpc3RcIlxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cIm9yZGVyZWRcIlxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0b29sYmFyQ29uZmlnLm9yZGVyZWRMaXN0LmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgZXVpVG9vbHRpcD1cInt7IHRvb2xiYXJDb25maWcub3JkZXJlZExpc3QubGFiZWwgfX1cIj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwidG9vbGJhckNvbmZpZy5idWxsZXRMaXN0XCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJxbC1saXN0XCJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCJidWxsZXRcIlxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0b29sYmFyQ29uZmlnLmJ1bGxldExpc3QubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICBldWlUb29sdGlwPVwie3sgdG9vbGJhckNvbmZpZy5idWxsZXRMaXN0LmxhYmVsIH19XCI+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJ0b29sYmFyQ29uZmlnLmluZGVudExlc3NcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInFsLWluZGVudFwiXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPVwiLTFcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInRvb2xiYXJDb25maWcuaW5kZW50TGVzcy5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgIGV1aVRvb2x0aXA9XCJ7eyB0b29sYmFyQ29uZmlnLmluZGVudExlc3MubGFiZWwgfX1cIj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInRvb2xiYXJDb25maWcuaW5kZW50TW9yZVwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicWwtaW5kZW50XCJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCIrMVwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwidG9vbGJhckNvbmZpZy5pbmRlbnRNb3JlLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgZXVpVG9vbHRpcD1cInt7IHRvb2xiYXJDb25maWcuaW5kZW50TW9yZS5sYWJlbCB9fVwiPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICAgICAgdG9vbGJhckNvbmZpZy5ibG9ja3F1b3RlIHx8XG4gICAgICAgICAgICAgICAgICAgIHRvb2xiYXJDb25maWcuY29kZUJsb2NrIHx8XG4gICAgICAgICAgICAgICAgICAgIHRvb2xiYXJDb25maWcubGluayB8fFxuICAgICAgICAgICAgICAgICAgICB0b29sYmFyQ29uZmlnLmltYWdlIHx8XG4gICAgICAgICAgICAgICAgICAgIHRvb2xiYXJDb25maWcuaW1hZ2VVcmwgfHxcbiAgICAgICAgICAgICAgICAgICAgdG9vbGJhckNvbmZpZy52aWRlbyB8fFxuICAgICAgICAgICAgICAgICAgICB0b29sYmFyQ29uZmlnLnRhYmxlXG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInFsLWZvcm1hdHNcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwidG9vbGJhckNvbmZpZy5ibG9ja3F1b3RlXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJxbC1ibG9ja3F1b3RlXCJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwidG9vbGJhckNvbmZpZy5ibG9ja3F1b3RlLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgZXVpVG9vbHRpcD1cInt7IHRvb2xiYXJDb25maWcuYmxvY2txdW90ZS5sYWJlbCB9fVwiPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJ0b29sYmFyQ29uZmlnLmNvZGVCbG9ja1wiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicWwtY29kZS1ibG9ja1wiXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInRvb2xiYXJDb25maWcuY29kZUJsb2NrLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgZXVpVG9vbHRpcD1cInt7IHRvb2xiYXJDb25maWcuY29kZUJsb2NrLmxhYmVsIH19XCI+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInRvb2xiYXJDb25maWcubGlua1wiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicWwtbGlua1wiXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInRvb2xiYXJDb25maWcubGluay5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgIGV1aVRvb2x0aXA9XCJ7eyB0b29sYmFyQ29uZmlnLmxpbmsubGFiZWwgfX1cIj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwidG9vbGJhckNvbmZpZy5pbWFnZVwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicWwtaW1hZ2VcIlxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0b29sYmFyQ29uZmlnLmltYWdlLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgZXVpVG9vbHRpcD1cInt7IHRvb2xiYXJDb25maWcuaW1hZ2UubGFiZWwgfX1cIj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInRvb2xiYXJDb25maWcuaW1hZ2VVcmxcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInRvb2xiYXJDb25maWcuaW1hZ2VVcmwubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICBldWlUb29sdGlwPVwie3sgdG9vbGJhckNvbmZpZy5pbWFnZVVybC5sYWJlbCB9fVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJpbWFnZVVybEhhbmRsZXIoKVwiPlxuICAgICAgICAgICAgICAgICAgICA8ZXVpLWljb24tc3ZnIGljb249XCJldWktZWNsLWltYWdlXCIgc2l6ZT1cInNcIj48L2V1aS1pY29uLXN2Zz5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwidG9vbGJhckNvbmZpZy52aWRlb1wiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicWwtdmlkZW9cIlxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0b29sYmFyQ29uZmlnLnZpZGVvLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgZXVpVG9vbHRpcD1cInt7IHRvb2xiYXJDb25maWcudmlkZW8ubGFiZWwgfX1cIj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInRvb2xiYXJDb25maWcudGFibGVcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInRvb2xiYXJDb25maWcudGFibGUubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICBldWlUb29sdGlwPVwie3sgdG9vbGJhckNvbmZpZy50YWJsZS5sYWJlbCB9fVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJpbnNlcnRUYWJsZSgpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxldWktaWNvbi1zdmcgaWNvbj1cImV1aS1lY2wtc3ByZWFkc2hlZXRcIiBzaXplPVwic1wiPjwvZXVpLWljb24tc3ZnPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidG9vbGJhckNvbmZpZy5jbGVhbiB8fCB0b29sYmFyQ29uZmlnLmRlbGV0ZVwiIGNsYXNzPVwicWwtZm9ybWF0c1wiPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJ0b29sYmFyQ29uZmlnLmNsZWFuXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJxbC1jbGVhblwiXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInRvb2xiYXJDb25maWcuY2xlYW4ubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICBldWlUb29sdGlwPVwie3sgdG9vbGJhckNvbmZpZy5jbGVhbi5sYWJlbCB9fVwiPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwidG9vbGJhckNvbmZpZy5kZWxldGVcIlxuICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInRvb2xiYXJDb25maWcuZGVsZXRlLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgZXVpVG9vbHRpcD1cInt7IHRvb2xiYXJDb25maWcuZGVsZXRlLmxhYmVsIH19XCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImVkaXRvckRlbGV0ZUNvbnRlbnQoKVwiPlxuICAgICAgICAgICAgICAgICAgICA8ZXVpLWljb24tc3ZnIGljb249XCJldWktZWNsLXRyYXNoXCIgc2l6ZT1cInNcIj48L2V1aS1pY29uLXN2Zz5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInRvb2xiYXJDb25maWcudW5kbyB8fCB0b29sYmFyQ29uZmlnLnJlZG9cIiBjbGFzcz1cInFsLWZvcm1hdHNcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInRvb2xiYXJDb25maWcudW5kb1wiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwidG9vbGJhckNvbmZpZy51bmRvLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgZXVpVG9vbHRpcD1cInt7IHRvb2xiYXJDb25maWcudW5kby5sYWJlbCB9fVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJlZGl0b3JVbmRvKClcIj5cbiAgICAgICAgICAgICAgICAgICAgPGV1aS1pY29uLXN2ZyBpY29uPVwiYXJyb3ctdW5kbzpvdXRsaW5lXCIgc2l6ZT1cInNcIj48L2V1aS1pY29uLXN2Zz5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInRvb2xiYXJDb25maWcucmVkb1wiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwidG9vbGJhckNvbmZpZy5yZWRvLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgZXVpVG9vbHRpcD1cInt7IHRvb2xiYXJDb25maWcucmVkby5sYWJlbCB9fVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJlZGl0b3JSZWRvKClcIj5cbiAgICAgICAgICAgICAgICAgICAgPGV1aS1pY29uLXN2ZyBpY29uPVwiYXJyb3ctcmVkbzpvdXRsaW5lXCIgc2l6ZT1cInNcIj48L2V1aS1pY29uLXN2Zz5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInRvb2xiYXJDb25maWcuY291bnRlcnNcIiBjbGFzcz1cInFsLWZvcm1hdHNcIj5cbiAgICAgICAgICAgICAgICA8ZXVpLWVkaXRvci1jb3VudGVyc1xuICAgICAgICAgICAgICAgICAgICBbaGFzQ2hhcmFjdGVyc0NvdW50ZXJdPVwiaGFzQ2hhcmFjdGVyc0NvdW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICBbY2hhcmFjdGVyc0NvdW50ZXJdPVwiY2hhcmFjdGVyc0NvdW50XCJcbiAgICAgICAgICAgICAgICAgICAgW2NoYXJhY3RlcnNMYWJlbF09XCJjaGFyYWN0ZXJzQ291bnRlckxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgW2hhc1dvcmRzQ291bnRlcl09XCJoYXNXb3Jkc0NvdW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICBbd29yZHNDb3VudGVyXT1cIndvcmRzQ291bnRcIlxuICAgICAgICAgICAgICAgICAgICBbd29yZHNMYWJlbF09XCJ3b3Jkc0NvdW50ZXJMYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwidG9vbGJhckNvbmZpZy5jb3VudGVycy5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBldWlUb29sdGlwPVwie3sgdG9vbGJhckNvbmZpZy5jb3VudGVycy5sYWJlbCB9fVwiPlxuICAgICAgICAgICAgICAgIDwvZXVpLWVkaXRvci1jb3VudGVycz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiAqbmdJZj1cImV1aUVkaXRvckN1c3RvbVRvb2xiYXJcIiBxdWlsbC1lZGl0b3ItdG9vbGJhcj5cbiAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImV1aUVkaXRvckN1c3RvbVRvb2xiYXJcIj48L25nLWNvbnRlbnQ+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvcXVpbGwtZWRpdG9yPlxuPCEtLSBSRUFET05MWSBNT0RFIC0tPlxufSBAZWxzZSB7XG4gICAgPGV1aS1lZGl0b3ItaHRtbC12aWV3ICpuZ0lmPVwiZm9ybWF0ID09PSAnaHRtbCdcIiBbY29udGVudF09XCJ2YWx1ZVwiIFt0aGVtZV09XCJ0aGVtZVwiPjwvZXVpLWVkaXRvci1odG1sLXZpZXc+XG4gICAgPGV1aS1lZGl0b3ItanNvbi12aWV3ICpuZ0lmPVwiZm9ybWF0ID09PSAnanNvbidcIiBbY29udGVudF09XCJqc29uVG9IdG1sQ29udGVudFwiIFt0aGVtZV09XCJ0aGVtZVwiPjwvZXVpLWVkaXRvci1qc29uLXZpZXc+XG59XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
|