ngx-extended-pdf-viewer
Version:
Embedding PDF files in your Angular application. Highly configurable viewer including the toolbar, sidebar, and all the features you're used to.
196 lines • 41.7 kB
JavaScript
import { Component, EventEmitter, Input, Output } from '@angular/core';
import * as i0 from "@angular/core";
import * as i1 from "@angular/common";
import * as i2 from "../pdf-book-mode/pdf-book-mode.component";
import * as i3 from "../pdf-document-properties/pdf-document-properties.component";
import * as i4 from "../pdf-download/pdf-download.component";
import * as i5 from "../pdf-editor/pdf-editor.component";
import * as i6 from "../pdf-even-spread/pdf-even-spread.component";
import * as i7 from "../pdf-find-button/pdf-find-button.component";
import * as i8 from "../pdf-hand-tool/pdf-hand-tool.component";
import * as i9 from "../pdf-horizontal-scroll/pdf-horizontal-scroll.component";
import * as i10 from "../pdf-infinite-scroll/pdf-infinite-scroll.component";
import * as i11 from "../pdf-move-down/pdf-move-down.component";
import * as i12 from "../pdf-move-up/pdf-move-up.component";
import * as i13 from "../pdf-no-spread/pdf-no-spread.component";
import * as i14 from "../pdf-odd-spread/pdf-odd-spread.component";
import * as i15 from "../pdf-open-file/pdf-open-file.component";
import * as i16 from "../pdf-paging-area/pdf-paging-area.component";
import * as i17 from "../pdf-presentation-mode/pdf-presentation-mode.component";
import * as i18 from "../pdf-print/pdf-print.component";
import * as i19 from "../pdf-rotate-page-cw/pdf-rotate-page-cw.component";
import * as i20 from "../pdf-rotate-page-ccw/pdf-rotate-page-ccw.component";
import * as i21 from "../pdf-select-tool/pdf-select-tool.component";
import * as i22 from "../pdf-single-page-mode/pdf-single-page-mode.component";
import * as i23 from "../pdf-toggle-secondary-toolbar/pdf-toggle-secondary-toolbar.component";
import * as i24 from "../pdf-toggle-sidebar/pdf-toggle-sidebar.component";
import * as i25 from "../pdf-vertical-scroll-button/pdf-vertical-scroll-mode.component";
import * as i26 from "../pdf-wrapped-scroll-mode/pdf-wrapped-scroll-mode.component";
import * as i27 from "../pdf-zoom-toolbar/pdf-zoom-toolbar.component";
export class PdfToolbarComponent {
elementRef;
customToolbar;
// This is set internally by the viewer after loading a document. If the document has a text layer, the viewer will set this to true.
hasTextLayer = false;
mobileFriendlyZoomScale = 1;
primaryMenuVisible = true;
showDownloadButton = true;
showCommentEditor = false;
showDrawEditor = false;
showHighlightEditor = true;
showTextEditor = false;
showStampEditor = false;
showFindButton = undefined;
showHandToolButton = true;
showZoomDropdown = true;
handTool = false;
showOpenFileButton = true;
showPrintButton = true;
showPagingButtons = true;
showFirstAndLastPageButtons = true;
showMovePageButton = true;
showPreviousAndNextPageButtons = true;
showPageNumber = true;
showPageLabel = true;
showPresentationModeButton = false;
showRotateCwButton = true;
showRotateCcwButton = true;
showSecondaryToolbarButton = true;
showSidebarButton = true;
showSignatureEditor = false;
sidebarVisible = false;
showZoomButtons = true;
textLayer = undefined;
toolbarMarginTop = '0px';
toolbarWidth = '100%';
zoomLevels = ['auto', 'page-actual', 'page-fit', 'page-width', 0.5, 0.75, 1, 1.25, 1.5, 2, 3, 4];
pageViewMode;
pageViewModeChange = new EventEmitter();
spread;
scrollMode;
showPropertiesButton = true;
showSpreadButton = true;
showSinglePageModeButton = true;
showVerticalScrollButton = true;
showHorizontalScrollButton = true;
showWrappedScrollButton = true;
showInfiniteScrollButton = true;
showBookModeButton = true;
onToolbarLoaded = new EventEmitter();
findbarVisible = false;
constructor(elementRef) {
this.elementRef = elementRef;
}
ngAfterViewInit() {
this.onToolbarLoaded.emit(this.elementRef.nativeElement.getElementsByClassName('toolbar')[0]);
}
updatePageViewMode(pageViewMode) {
if (pageViewMode) {
this.pageViewModeChange.emit(pageViewMode);
this.pageViewMode = pageViewMode;
}
}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PdfToolbarComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: PdfToolbarComponent, selector: "pdf-toolbar", inputs: { customToolbar: "customToolbar", hasTextLayer: "hasTextLayer", mobileFriendlyZoomScale: "mobileFriendlyZoomScale", primaryMenuVisible: "primaryMenuVisible", showDownloadButton: "showDownloadButton", showCommentEditor: "showCommentEditor", showDrawEditor: "showDrawEditor", showHighlightEditor: "showHighlightEditor", showTextEditor: "showTextEditor", showStampEditor: "showStampEditor", showFindButton: "showFindButton", showHandToolButton: "showHandToolButton", showZoomDropdown: "showZoomDropdown", handTool: "handTool", showOpenFileButton: "showOpenFileButton", showPrintButton: "showPrintButton", showPagingButtons: "showPagingButtons", showFirstAndLastPageButtons: "showFirstAndLastPageButtons", showMovePageButton: "showMovePageButton", showPreviousAndNextPageButtons: "showPreviousAndNextPageButtons", showPageNumber: "showPageNumber", showPageLabel: "showPageLabel", showPresentationModeButton: "showPresentationModeButton", showRotateCwButton: "showRotateCwButton", showRotateCcwButton: "showRotateCcwButton", showSecondaryToolbarButton: "showSecondaryToolbarButton", showSidebarButton: "showSidebarButton", showSignatureEditor: "showSignatureEditor", sidebarVisible: "sidebarVisible", showZoomButtons: "showZoomButtons", textLayer: "textLayer", toolbarMarginTop: "toolbarMarginTop", toolbarWidth: "toolbarWidth", zoomLevels: "zoomLevels", pageViewMode: "pageViewMode", spread: "spread", scrollMode: "scrollMode", showPropertiesButton: "showPropertiesButton", showSpreadButton: "showSpreadButton", showSinglePageModeButton: "showSinglePageModeButton", showVerticalScrollButton: "showVerticalScrollButton", showHorizontalScrollButton: "showHorizontalScrollButton", showWrappedScrollButton: "showWrappedScrollButton", showInfiniteScrollButton: "showInfiniteScrollButton", showBookModeButton: "showBookModeButton", findbarVisible: "findbarVisible" }, outputs: { pageViewModeChange: "pageViewModeChange", onToolbarLoaded: "onToolbarLoaded" }, ngImport: i0, template: "<div\n class=\"toolbar\"\n [class.invisible]=\"!primaryMenuVisible\"\n [style.transform]=\"'scale(' + mobileFriendlyZoomScale + ')'\"\n [style.transformOrigin]=\"'left center'\"\n [style.width]=\"toolbarWidth\"\n [style.marginTop]=\"toolbarMarginTop\"\n>\n <div id=\"toolbarContainer\">\n <ng-content *ngTemplateOutlet=\"customToolbar ? customToolbar : defaultToolbar\"></ng-content>\n <div id=\"loadingBar\">\n <div class=\"progress\">\n <div class=\"glimmer\"></div>\n </div>\n </div>\n </div>\n</div>\n\n<ng-template #defaultToolbar>\n <div id=\"toolbarViewer\">\n <div id=\"toolbarViewerLeft\">\n <pdf-toggle-sidebar\n [show]=\"showSidebarButton\"\n [sidebarVisible]=\"sidebarVisible\"\n ></pdf-toggle-sidebar>\n <pdf-find-button\n [showFindButton]=\"showFindButton\"\n [textLayer]=\"textLayer\"\n [findbarVisible]=\"findbarVisible\"\n [hasTextLayer]=\"hasTextLayer\"\n ></pdf-find-button>\n <pdf-paging-area\n [showPagingButtons]=\"showPagingButtons\"\n [showFirstAndLastPageButtons]=\"showFirstAndLastPageButtons\"\n [showPreviousAndNextPageButtons]=\"showPreviousAndNextPageButtons\"\n [showPageNumber]=\"showPageNumber\"\n [showPageLabel]=\"showPageLabel\"\n ></pdf-paging-area>\n </div>\n <pdf-zoom-toolbar\n id=\"toolbarViewerMiddleContainer\"\n [showZoomButtons]=\"showZoomButtons\"\n [showZoomDropdown]=\"showZoomDropdown\"\n [zoomLevels]=\"zoomLevels\"\n ></pdf-zoom-toolbar>\n <div id=\"toolbarViewerRight\">\n <pdf-document-properties [show]=\"showPropertiesButton\"></pdf-document-properties>\n <pdf-no-spread\n [scrollMode]=\"scrollMode\"\n [show]=\"showSpreadButton\"\n ></pdf-no-spread>\n <pdf-odd-spread\n [scrollMode]=\"scrollMode\"\n [show]=\"showSpreadButton\"\n ></pdf-odd-spread>\n <pdf-even-spread\n [scrollMode]=\"scrollMode\"\n [show]=\"showSpreadButton\"\n ></pdf-even-spread>\n <pdf-single-page-mode\n [show]=\"showSinglePageModeButton\"\n [pageViewMode]=\"pageViewMode\"\n (pageViewModeChange)=\"updatePageViewMode($event)\"\n [scrollMode]=\"scrollMode\"\n ></pdf-single-page-mode>\n <pdf-vertical-scroll-mode\n [show]=\"showVerticalScrollButton\"\n [pageViewMode]=\"pageViewMode\"\n (pageViewModeChange)=\"updatePageViewMode($event)\"\n [scrollMode]=\"scrollMode\"\n ></pdf-vertical-scroll-mode>\n <pdf-horizontal-scroll\n [show]=\"showHorizontalScrollButton\"\n [pageViewMode]=\"pageViewMode\"\n (pageViewModeChange)=\"updatePageViewMode($event)\"\n [scrollMode]=\"scrollMode\"\n ></pdf-horizontal-scroll>\n <pdf-wrapped-scroll-mode\n [show]=\"showWrappedScrollButton\"\n [pageViewMode]=\"pageViewMode\"\n (pageViewModeChange)=\"updatePageViewMode($event)\"\n [scrollMode]=\"scrollMode\"\n ></pdf-wrapped-scroll-mode>\n <pdf-infinite-scroll\n [show]=\"showInfiniteScrollButton\"\n [pageViewMode]=\"pageViewMode\"\n (pageViewModeChange)=\"updatePageViewMode($event)\"\n [scrollMode]=\"scrollMode\"\n ></pdf-infinite-scroll>\n <pdf-book-mode\n [show]=\"showBookModeButton\"\n [pageViewMode]=\"pageViewMode\"\n (pageViewModeChange)=\"updatePageViewMode($event)\"\n [scrollMode]=\"scrollMode\"\n ></pdf-book-mode>\n <pdf-hand-tool\n [showHandToolButton]=\"showHandToolButton\"\n [handTool]=\"handTool\"\n ></pdf-hand-tool>\n <pdf-select-tool\n [showSelectToolButton]=\"showHandToolButton\"\n [handTool]=\"handTool\"\n ></pdf-select-tool>\n <pdf-rotate-page-cw [showRotateCwButton]=\"showRotateCwButton\"> </pdf-rotate-page-cw>\n <pdf-rotate-page-ccw [showRotateCcwButton]=\"showRotateCcwButton\"> </pdf-rotate-page-ccw>\n <pdf-presentation-mode [showPresentationModeButton]=\"showPresentationModeButton\"></pdf-presentation-mode>\n <pdf-open-file [showOpenFileButton]=\"showOpenFileButton\"></pdf-open-file>\n <pdf-print [showPrintButton]=\"showPrintButton\"></pdf-print>\n <pdf-download [showDownloadButton]=\"showDownloadButton\"></pdf-download>\n\n <!-- #2943 modified by ngx-extended-pdf-viewer -->\n <pdf-move-down [showMoveDownButton]=\"showMovePageButton\"></pdf-move-down>\n <pdf-move-up [showMoveUpButton]=\"showMovePageButton\"></pdf-move-up>\n\n <!-- #2943 end of modification by ngx-extended-pdf-viewer -->\n\n <pdf-editor\n [showCommentEditor]=\"showCommentEditor\"\n [showDrawEditor]=\"showDrawEditor\"\n [showHighlightEditor]=\"showHighlightEditor\"\n [showTextEditor]=\"showTextEditor\"\n [showStampEditor]=\"showStampEditor\"\n [showSignatureEditor]=\"showSignatureEditor\"\n ></pdf-editor>\n <pdf-toggle-secondary-toolbar [showSecondaryToolbarButton]=\"showSecondaryToolbarButton\"> </pdf-toggle-secondary-toolbar>\n </div>\n </div>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.PdfBookModeComponent, selector: "pdf-book-mode", inputs: ["show", "pageViewMode", "scrollMode"], outputs: ["pageViewModeChange"] }, { kind: "component", type: i3.PdfDocumentPropertiesComponent, selector: "pdf-document-properties", inputs: ["show"] }, { kind: "component", type: i4.PdfDownloadComponent, selector: "pdf-download", inputs: ["showDownloadButton"] }, { kind: "component", type: i5.PdfEditorComponent, selector: "pdf-editor", inputs: ["showCommentEditor", "showDrawEditor", "showHighlightEditor", "showTextEditor", "showSignatureEditor", "showStampEditor"] }, { kind: "component", type: i6.PdfEvenSpreadComponent, selector: "pdf-even-spread", inputs: ["show", "scrollMode"] }, { kind: "component", type: i7.PdfFindButtonComponent, selector: "pdf-find-button", inputs: ["showFindButton", "hasTextLayer", "textLayer", "findbarVisible"] }, { kind: "component", type: i8.PdfHandToolComponent, selector: "pdf-hand-tool", inputs: ["showHandToolButton", "handTool"] }, { kind: "component", type: i9.PdfHorizontalScrollComponent, selector: "pdf-horizontal-scroll", inputs: ["show", "scrollMode", "pageViewMode"], outputs: ["pageViewModeChange"] }, { kind: "component", type: i10.PdfInfiniteScrollComponent, selector: "pdf-infinite-scroll", inputs: ["show", "pageViewMode", "scrollMode"], outputs: ["pageViewModeChange"] }, { kind: "component", type: i11.PdfMoveDownComponent, selector: "pdf-move-down", inputs: ["showMoveDownButton"] }, { kind: "component", type: i12.PdfMoveUpComponent, selector: "pdf-move-up", inputs: ["showMoveUpButton"] }, { kind: "component", type: i13.PdfNoSpreadComponent, selector: "pdf-no-spread", inputs: ["show", "scrollMode"] }, { kind: "component", type: i14.PdfOddSpreadComponent, selector: "pdf-odd-spread", inputs: ["show", "scrollMode"] }, { kind: "component", type: i15.PdfOpenFileComponent, selector: "pdf-open-file", inputs: ["showOpenFileButton"] }, { kind: "component", type: i16.PdfPagingAreaComponent, selector: "pdf-paging-area", inputs: ["showPagingButtons", "showFirstAndLastPageButtons", "showPreviousAndNextPageButtons", "showPageNumber", "showPageLabel"] }, { kind: "component", type: i17.PdfPresentationModeComponent, selector: "pdf-presentation-mode", inputs: ["showPresentationModeButton"] }, { kind: "component", type: i18.PdfPrintComponent, selector: "pdf-print", inputs: ["showPrintButton"] }, { kind: "component", type: i19.PdfRotatePageCwComponent, selector: "pdf-rotate-page-cw", inputs: ["showRotateCwButton", "clockwise", "counterClockwise"] }, { kind: "component", type: i20.PdfRotatePageCcwComponent, selector: "pdf-rotate-page-ccw", inputs: ["showRotateCcwButton", "counterClockwise"] }, { kind: "component", type: i21.PdfSelectToolComponent, selector: "pdf-select-tool", inputs: ["showSelectToolButton", "handTool"] }, { kind: "component", type: i22.PdfSinglePageModeComponent, selector: "pdf-single-page-mode", inputs: ["show", "scrollMode", "pageViewMode"], outputs: ["pageViewModeChange"] }, { kind: "component", type: i23.PdfToggleSecondaryToolbarComponent, selector: "pdf-toggle-secondary-toolbar", inputs: ["showSecondaryToolbarButton"] }, { kind: "component", type: i24.PdfToggleSidebarComponent, selector: "pdf-toggle-sidebar", inputs: ["show", "sidebarVisible"], outputs: ["showChange"] }, { kind: "component", type: i25.PdfVerticalScrollModeComponent, selector: "pdf-vertical-scroll-mode", inputs: ["show", "scrollMode", "pageViewMode"], outputs: ["pageViewModeChange"] }, { kind: "component", type: i26.PdfWrappedScrollModeComponent, selector: "pdf-wrapped-scroll-mode", inputs: ["show", "scrollMode", "pageViewMode"], outputs: ["pageViewModeChange"] }, { kind: "component", type: i27.PdfZoomToolbarComponent, selector: "pdf-zoom-toolbar", inputs: ["showZoomButtons", "zoomLevels", "showZoomDropdown"] }] });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: PdfToolbarComponent, decorators: [{
type: Component,
args: [{ selector: 'pdf-toolbar', template: "<div\n class=\"toolbar\"\n [class.invisible]=\"!primaryMenuVisible\"\n [style.transform]=\"'scale(' + mobileFriendlyZoomScale + ')'\"\n [style.transformOrigin]=\"'left center'\"\n [style.width]=\"toolbarWidth\"\n [style.marginTop]=\"toolbarMarginTop\"\n>\n <div id=\"toolbarContainer\">\n <ng-content *ngTemplateOutlet=\"customToolbar ? customToolbar : defaultToolbar\"></ng-content>\n <div id=\"loadingBar\">\n <div class=\"progress\">\n <div class=\"glimmer\"></div>\n </div>\n </div>\n </div>\n</div>\n\n<ng-template #defaultToolbar>\n <div id=\"toolbarViewer\">\n <div id=\"toolbarViewerLeft\">\n <pdf-toggle-sidebar\n [show]=\"showSidebarButton\"\n [sidebarVisible]=\"sidebarVisible\"\n ></pdf-toggle-sidebar>\n <pdf-find-button\n [showFindButton]=\"showFindButton\"\n [textLayer]=\"textLayer\"\n [findbarVisible]=\"findbarVisible\"\n [hasTextLayer]=\"hasTextLayer\"\n ></pdf-find-button>\n <pdf-paging-area\n [showPagingButtons]=\"showPagingButtons\"\n [showFirstAndLastPageButtons]=\"showFirstAndLastPageButtons\"\n [showPreviousAndNextPageButtons]=\"showPreviousAndNextPageButtons\"\n [showPageNumber]=\"showPageNumber\"\n [showPageLabel]=\"showPageLabel\"\n ></pdf-paging-area>\n </div>\n <pdf-zoom-toolbar\n id=\"toolbarViewerMiddleContainer\"\n [showZoomButtons]=\"showZoomButtons\"\n [showZoomDropdown]=\"showZoomDropdown\"\n [zoomLevels]=\"zoomLevels\"\n ></pdf-zoom-toolbar>\n <div id=\"toolbarViewerRight\">\n <pdf-document-properties [show]=\"showPropertiesButton\"></pdf-document-properties>\n <pdf-no-spread\n [scrollMode]=\"scrollMode\"\n [show]=\"showSpreadButton\"\n ></pdf-no-spread>\n <pdf-odd-spread\n [scrollMode]=\"scrollMode\"\n [show]=\"showSpreadButton\"\n ></pdf-odd-spread>\n <pdf-even-spread\n [scrollMode]=\"scrollMode\"\n [show]=\"showSpreadButton\"\n ></pdf-even-spread>\n <pdf-single-page-mode\n [show]=\"showSinglePageModeButton\"\n [pageViewMode]=\"pageViewMode\"\n (pageViewModeChange)=\"updatePageViewMode($event)\"\n [scrollMode]=\"scrollMode\"\n ></pdf-single-page-mode>\n <pdf-vertical-scroll-mode\n [show]=\"showVerticalScrollButton\"\n [pageViewMode]=\"pageViewMode\"\n (pageViewModeChange)=\"updatePageViewMode($event)\"\n [scrollMode]=\"scrollMode\"\n ></pdf-vertical-scroll-mode>\n <pdf-horizontal-scroll\n [show]=\"showHorizontalScrollButton\"\n [pageViewMode]=\"pageViewMode\"\n (pageViewModeChange)=\"updatePageViewMode($event)\"\n [scrollMode]=\"scrollMode\"\n ></pdf-horizontal-scroll>\n <pdf-wrapped-scroll-mode\n [show]=\"showWrappedScrollButton\"\n [pageViewMode]=\"pageViewMode\"\n (pageViewModeChange)=\"updatePageViewMode($event)\"\n [scrollMode]=\"scrollMode\"\n ></pdf-wrapped-scroll-mode>\n <pdf-infinite-scroll\n [show]=\"showInfiniteScrollButton\"\n [pageViewMode]=\"pageViewMode\"\n (pageViewModeChange)=\"updatePageViewMode($event)\"\n [scrollMode]=\"scrollMode\"\n ></pdf-infinite-scroll>\n <pdf-book-mode\n [show]=\"showBookModeButton\"\n [pageViewMode]=\"pageViewMode\"\n (pageViewModeChange)=\"updatePageViewMode($event)\"\n [scrollMode]=\"scrollMode\"\n ></pdf-book-mode>\n <pdf-hand-tool\n [showHandToolButton]=\"showHandToolButton\"\n [handTool]=\"handTool\"\n ></pdf-hand-tool>\n <pdf-select-tool\n [showSelectToolButton]=\"showHandToolButton\"\n [handTool]=\"handTool\"\n ></pdf-select-tool>\n <pdf-rotate-page-cw [showRotateCwButton]=\"showRotateCwButton\"> </pdf-rotate-page-cw>\n <pdf-rotate-page-ccw [showRotateCcwButton]=\"showRotateCcwButton\"> </pdf-rotate-page-ccw>\n <pdf-presentation-mode [showPresentationModeButton]=\"showPresentationModeButton\"></pdf-presentation-mode>\n <pdf-open-file [showOpenFileButton]=\"showOpenFileButton\"></pdf-open-file>\n <pdf-print [showPrintButton]=\"showPrintButton\"></pdf-print>\n <pdf-download [showDownloadButton]=\"showDownloadButton\"></pdf-download>\n\n <!-- #2943 modified by ngx-extended-pdf-viewer -->\n <pdf-move-down [showMoveDownButton]=\"showMovePageButton\"></pdf-move-down>\n <pdf-move-up [showMoveUpButton]=\"showMovePageButton\"></pdf-move-up>\n\n <!-- #2943 end of modification by ngx-extended-pdf-viewer -->\n\n <pdf-editor\n [showCommentEditor]=\"showCommentEditor\"\n [showDrawEditor]=\"showDrawEditor\"\n [showHighlightEditor]=\"showHighlightEditor\"\n [showTextEditor]=\"showTextEditor\"\n [showStampEditor]=\"showStampEditor\"\n [showSignatureEditor]=\"showSignatureEditor\"\n ></pdf-editor>\n <pdf-toggle-secondary-toolbar [showSecondaryToolbarButton]=\"showSecondaryToolbarButton\"> </pdf-toggle-secondary-toolbar>\n </div>\n </div>\n</ng-template>\n" }]
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { customToolbar: [{
type: Input
}], hasTextLayer: [{
type: Input
}], mobileFriendlyZoomScale: [{
type: Input
}], primaryMenuVisible: [{
type: Input
}], showDownloadButton: [{
type: Input
}], showCommentEditor: [{
type: Input
}], showDrawEditor: [{
type: Input
}], showHighlightEditor: [{
type: Input
}], showTextEditor: [{
type: Input
}], showStampEditor: [{
type: Input
}], showFindButton: [{
type: Input
}], showHandToolButton: [{
type: Input
}], showZoomDropdown: [{
type: Input
}], handTool: [{
type: Input
}], showOpenFileButton: [{
type: Input
}], showPrintButton: [{
type: Input
}], showPagingButtons: [{
type: Input
}], showFirstAndLastPageButtons: [{
type: Input
}], showMovePageButton: [{
type: Input
}], showPreviousAndNextPageButtons: [{
type: Input
}], showPageNumber: [{
type: Input
}], showPageLabel: [{
type: Input
}], showPresentationModeButton: [{
type: Input
}], showRotateCwButton: [{
type: Input
}], showRotateCcwButton: [{
type: Input
}], showSecondaryToolbarButton: [{
type: Input
}], showSidebarButton: [{
type: Input
}], showSignatureEditor: [{
type: Input
}], sidebarVisible: [{
type: Input
}], showZoomButtons: [{
type: Input
}], textLayer: [{
type: Input
}], toolbarMarginTop: [{
type: Input
}], toolbarWidth: [{
type: Input
}], zoomLevels: [{
type: Input
}], pageViewMode: [{
type: Input
}], pageViewModeChange: [{
type: Output
}], spread: [{
type: Input
}], scrollMode: [{
type: Input
}], showPropertiesButton: [{
type: Input
}], showSpreadButton: [{
type: Input
}], showSinglePageModeButton: [{
type: Input
}], showVerticalScrollButton: [{
type: Input
}], showHorizontalScrollButton: [{
type: Input
}], showWrappedScrollButton: [{
type: Input
}], showInfiniteScrollButton: [{
type: Input
}], showBookModeButton: [{
type: Input
}], onToolbarLoaded: [{
type: Output
}], findbarVisible: [{
type: Input
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGRmLXRvb2xiYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWV4dGVuZGVkLXBkZi12aWV3ZXIvc3JjL2xpYi90b29sYmFyL3BkZi10b29sYmFyL3BkZi10b29sYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1leHRlbmRlZC1wZGYtdmlld2VyL3NyYy9saWIvdG9vbGJhci9wZGYtdG9vbGJhci9wZGYtdG9vbGJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBZSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFVL0csTUFBTSxPQUFPLG1CQUFtQjtJQWtKVjtJQWhKYixhQUFhLENBQStCO0lBRW5ELHFJQUFxSTtJQUU5SCxZQUFZLEdBQUcsS0FBSyxDQUFDO0lBR3JCLHVCQUF1QixHQUFHLENBQUMsQ0FBQztJQUc1QixrQkFBa0IsR0FBRyxJQUFJLENBQUM7SUFHMUIsa0JBQWtCLEdBQXlCLElBQUksQ0FBQztJQUdoRCxpQkFBaUIsR0FBeUIsS0FBSyxDQUFDO0lBR2hELGNBQWMsR0FBeUIsS0FBSyxDQUFDO0lBRzdDLG1CQUFtQixHQUF5QixJQUFJLENBQUM7SUFHakQsY0FBYyxHQUF5QixLQUFLLENBQUM7SUFHN0MsZUFBZSxHQUF5QixLQUFLLENBQUM7SUFHOUMsY0FBYyxHQUFxQyxTQUFTLENBQUM7SUFHN0Qsa0JBQWtCLEdBQXlCLElBQUksQ0FBQztJQUdoRCxnQkFBZ0IsR0FBeUIsSUFBSSxDQUFDO0lBRzlDLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFHakIsa0JBQWtCLEdBQXlCLElBQUksQ0FBQztJQUdoRCxlQUFlLEdBQXlCLElBQUksQ0FBQztJQUc3QyxpQkFBaUIs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QkFJQyxpQkFBaUI7c0JBRHZCLEtBQUs7Z0JBSUMsMkJBQTJCO3NCQURqQyxLQUFLO2dCQUlDLGtCQUFrQjtzQkFEeEIsS0FBSztnQkFJQyw4QkFBOEI7c0JBRHBDLEtBQUs7Z0JBSUMsY0FBYztzQkFEcEIsS0FBSztnQkFJQyxhQUFhO3NCQURuQixLQUFLO2dCQUlDLDBCQUEwQjtzQkFEaEMsS0FBSztnQkFJQyxrQkFBa0I7c0JBRHhCLEtBQUs7Z0JBSUMsbUJBQW1CO3NCQUR6QixLQUFLO2dCQUlDLDBCQUEwQjtzQkFEaEMsS0FBSztnQkFJQyxpQkFBaUI7c0JBRHZCLEtBQUs7Z0JBSUMsbUJBQW1CO3NCQUR6QixLQUFLO2dCQUlDLGNBQWM7c0JBRHBCLEtBQUs7Z0JBSUMsZUFBZTtzQkFEckIsS0FBSztnQkFJQyxTQUFTO3NCQURmLEtBQUs7Z0JBSUMsZ0JBQWdCO3NCQUR0QixLQUFLO2dCQUlDLFlBQVk7c0JBRGxCLEtBQUs7Z0JBSUMsVUFBVTtzQkFEaEIsS0FBSztnQkFJQyxZQUFZO3NCQURsQixLQUFLO2dCQUlDLGtCQUFrQjtzQkFEeEIsTUFBTTtnQkFJQSxNQUFNO3NCQURaLEtBQUs7Z0JBSUMsVUFBVTtzQkFEaEIsS0FBSztnQkFJQyxvQkFBb0I7c0JBRDFCLEtBQUs7Z0JBSUMsZ0JBQWdCO3NCQUR0QixLQUFLO2dCQUlDLHdCQUF3QjtzQkFEOUIsS0FBSztnQkFJQyx3QkFBd0I7c0JBRDlCLEtBQUs7Z0JBSUMsMEJBQTBCO3NCQURoQyxLQUFLO2dCQUlDLHVCQUF1QjtzQkFEN0IsS0FBSztnQkFJQyx3QkFBd0I7c0JBRDlCLEtBQUs7Z0JBSUMsa0JBQWtCO3NCQUR4QixLQUFLO2dCQUlDLGVBQWU7c0JBRHJCLE1BQU07Z0JBSUEsY0FBYztzQkFEcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUGFnZVZpZXdNb2RlVHlwZSwgU2Nyb2xsTW9kZVR5cGUgfSBmcm9tICcuLi8uLi9vcHRpb25zL3BkZi12aWV3ZXInO1xuaW1wb3J0IHsgU3ByZWFkVHlwZSB9IGZyb20gJy4uLy4uL29wdGlvbnMvc3ByZWFkLXR5cGUnO1xuaW1wb3J0IHsgUmVzcG9uc2l2ZVZpc2liaWxpdHkgfSBmcm9tICcuLi8uLi9yZXNwb25zaXZlLXZpc2liaWxpdHknO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwZGYtdG9vbGJhcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9wZGYtdG9vbGJhci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3BkZi10b29sYmFyLmNvbXBvbmVudC5jc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgUGRmVG9vbGJhckNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICBASW5wdXQoKVxuICBwdWJsaWMgY3VzdG9tVG9vbGJhcjogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZDtcblxuICAvLyBUaGlzIGlzIHNldCBpbnRlcm5hbGx5IGJ5IHRoZSB2aWV3ZXIgYWZ0ZXIgbG9hZGluZyBhIGRvY3VtZW50LiBJZiB0aGUgZG9jdW1lbnQgaGFzIGEgdGV4dCBsYXllciwgdGhlIHZpZXdlciB3aWxsIHNldCB0aGlzIHRvIHRydWUuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBoYXNUZXh0TGF5ZXIgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgbW9iaWxlRnJpZW5kbHlab29tU2NhbGUgPSAxO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBwcmltYXJ5TWVudVZpc2libGUgPSB0cnVlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzaG93RG93bmxvYWRCdXR0b246IFJlc3BvbnNpdmVWaXNpYmlsaXR5ID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2hvd0NvbW1lbnRFZGl0b3I6IFJlc3BvbnNpdmVWaXNpYmlsaXR5ID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNob3dEcmF3RWRpdG9yOiBSZXNwb25zaXZlVmlzaWJpbGl0eSA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzaG93SGlnaGxpZ2h0RWRpdG9yOiBSZXNwb25zaXZlVmlzaWJpbGl0eSA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNob3dUZXh0RWRpdG9yOiBSZXNwb25zaXZlVmlzaWJpbGl0eSA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzaG93U3RhbXBFZGl0b3I6IFJlc3BvbnNpdmVWaXNpYmlsaXR5ID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNob3dGaW5kQnV0dG9uOiBSZXNwb25zaXZlVmlzaWJpbGl0eSB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2hvd0hhbmRUb29sQnV0dG9uOiBSZXNwb25zaXZlVmlzaWJpbGl0eSA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNob3dab29tRHJvcGRvd246IFJlc3BvbnNpdmVWaXNpYmlsaXR5ID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgaGFuZFRvb2wgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2hvd09wZW5GaWxlQnV0dG9uOiBSZXNwb25zaXZlVmlzaWJpbGl0eSA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNob3dQcmludEJ1dHRvbjogUmVzcG9uc2l2ZVZpc2liaWxpdHkgPSB0cnVlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzaG93UGFnaW5nQnV0dG9uczogUmVzcG9uc2l2ZVZpc2liaWxpdHkgPSB0cnVlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzaG93Rmlyc3RBbmRMYXN0UGFnZUJ1dHRvbnM6IFJlc3BvbnNpdmVWaXNpYmlsaXR5ID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2hvd01vdmVQYWdlQnV0dG9uOiBSZXNwb25zaXZlVmlzaWJpbGl0eSA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNob3dQcmV2aW91c0FuZE5leHRQYWdlQnV0dG9uczogUmVzcG9uc2l2ZVZpc2liaWxpdHkgPSB0cnVlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzaG93UGFnZU51bWJlcjogUmVzcG9uc2l2ZVZpc2liaWxpdHkgPSB0cnVlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzaG93UGFnZUxhYmVsOiBSZXNwb25zaXZlVmlzaWJpbGl0eSA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNob3dQcmVzZW50YXRpb25Nb2RlQnV0dG9uOiBSZXNwb25zaXZlVmlzaWJpbGl0eSA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzaG93Um90YXRlQ3dCdXR0b246IFJlc3BvbnNpdmVWaXNpYmlsaXR5ID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2hvd1JvdGF0ZUNjd0J1dHRvbjogUmVzcG9uc2l2ZVZpc2liaWxpdHkgPSB0cnVlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzaG93U2Vjb25kYXJ5VG9vbGJhckJ1dHRvbjogUmVzcG9uc2l2ZVZpc2liaWxpdHkgPSB0cnVlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzaG93U2lkZWJhckJ1dHRvbjogUmVzcG9uc2l2ZVZpc2liaWxpdHkgPSB0cnVlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzaG93U2lnbmF0dXJlRWRpdG9yOiBSZXNwb25zaXZlVmlzaWJpbGl0eSA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzaWRlYmFyVmlzaWJsZTogYm9vbGVhbiB8IHVuZGVmaW5lZCA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzaG93Wm9vbUJ1dHRvbnM6IFJlc3BvbnNpdmVWaXNpYmlsaXR5ID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgdGV4dExheWVyOiBib29sZWFuIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB0b29sYmFyTWFyZ2luVG9wID0gJzBweCc7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHRvb2xiYXJXaWR0aCA9ICcxMDAlJztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgem9vbUxldmVscyA9IFsnYXV0bycsICdwYWdlLWFjdHVhbCcsICdwYWdlLWZpdCcsICdwYWdlLXdpZHRoJywgMC41LCAwLjc1LCAxLCAxLjI1LCAxLjUsIDIsIDMsIDRdO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBwYWdlVmlld01vZGU6IFBhZ2VWaWV3TW9kZVR5cGU7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBwYWdlVmlld01vZGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFBhZ2VWaWV3TW9kZVR5cGU+KCk7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNwcmVhZDogU3ByZWFkVHlwZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2Nyb2xsTW9kZTogU2Nyb2xsTW9kZVR5cGU7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNob3dQcm9wZXJ0aWVzQnV0dG9uOiBSZXNwb25zaXZlVmlzaWJpbGl0eSA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNob3dTcHJlYWRCdXR0b246IFJlc3BvbnNpdmVWaXNpYmlsaXR5ID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2hvd1NpbmdsZVBhZ2VNb2RlQnV0dG9uOiBSZXNwb25zaXZlVmlzaWJpbGl0eSA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNob3dWZXJ0aWNhbFNjcm9sbEJ1dHRvbjogUmVzcG9uc2l2ZVZpc2liaWxpdHkgPSB0cnVlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzaG93SG9yaXpvbnRhbFNjcm9sbEJ1dHRvbjogUmVzcG9uc2l2ZVZpc2liaWxpdHkgPSB0cnVlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzaG93V3JhcHBlZFNjcm9sbEJ1dHRvbjogUmVzcG9uc2l2ZVZpc2liaWxpdHkgPSB0cnVlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzaG93SW5maW5pdGVTY3JvbGxCdXR0b246IFJlc3BvbnNpdmVWaXNpYmlsaXR5ID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2hvd0Jvb2tNb2RlQnV0dG9uOiBSZXNwb25zaXZlVmlzaWJpbGl0eSA9IHRydWU7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBvblRvb2xiYXJMb2FkZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEhUTUxFbGVtZW50PigpO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBmaW5kYmFyVmlzaWJsZSA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZikge31cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5vblRvb2xiYXJMb2FkZWQuZW1pdCh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCd0b29sYmFyJylbMF0gYXMgSFRNTEVsZW1lbnQpO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZVBhZ2VWaWV3TW9kZShwYWdlVmlld01vZGU6IFBhZ2VWaWV3TW9kZVR5cGUpOiB2b2lkIHtcbiAgICBpZiAocGFnZVZpZXdNb2RlKSB7XG4gICAgICB0aGlzLnBhZ2VWaWV3TW9kZUNoYW5nZS5lbWl0KHBhZ2VWaWV3TW9kZSk7XG4gICAgICB0aGlzLnBhZ2VWaWV3TW9kZSA9IHBhZ2VWaWV3TW9kZTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJ0b29sYmFyXCJcbiAgW2NsYXNzLmludmlzaWJsZV09XCIhcHJpbWFyeU1lbnVWaXNpYmxlXCJcbiAgW3N0eWxlLnRyYW5zZm9ybV09XCInc2NhbGUoJyArIG1vYmlsZUZyaWVuZGx5Wm9vbVNjYWxlICsgJyknXCJcbiAgW3N0eWxlLnRyYW5zZm9ybU9yaWdpbl09XCInbGVmdCBjZW50ZXInXCJcbiAgW3N0eWxlLndpZHRoXT1cInRvb2xiYXJXaWR0aFwiXG4gIFtzdHlsZS5tYXJnaW5Ub3BdPVwidG9vbGJhck1hcmdpblRvcFwiXG4+XG4gIDxkaXYgaWQ9XCJ0b29sYmFyQ29udGFpbmVyXCI+XG4gICAgPG5nLWNvbnRlbnQgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjdXN0b21Ub29sYmFyID8gY3VzdG9tVG9vbGJhciA6IGRlZmF1bHRUb29sYmFyXCI+PC9uZy1jb250ZW50PlxuICAgIDxkaXYgaWQ9XCJsb2FkaW5nQmFyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwicHJvZ3Jlc3NcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImdsaW1tZXJcIj48L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI2RlZmF1bHRUb29sYmFyPlxuICA8ZGl2IGlkPVwidG9vbGJhclZpZXdlclwiPlxuICAgIDxkaXYgaWQ9XCJ0b29sYmFyVmlld2VyTGVmdFwiPlxuICAgICAgPHBkZi10b2dnbGUtc2lkZWJhclxuICAgICAgICBbc2hvd109XCJzaG93U2lkZWJhckJ1dHRvblwiXG4gICAgICAgIFtzaWRlYmFyVmlzaWJsZV09XCJzaWRlYmFyVmlzaWJsZVwiXG4gICAgICA+PC9wZGYtdG9nZ2xlLXNpZGViYXI+XG4gICAgICA8cGRmLWZpbmQtYnV0dG9uXG4gICAgICAgIFtzaG93RmluZEJ1dHRvbl09XCJzaG93RmluZEJ1dHRvblwiXG4gICAgICAgIFt0ZXh0TGF5ZXJdPVwidGV4dExheWVyXCJcbiAgICAgICAgW2ZpbmRiYXJWaXNpYmxlXT1cImZpbmRiYXJWaXNpYmxlXCJcbiAgICAgICAgW2hhc1RleHRMYXllcl09XCJoYXNUZXh0TGF5ZXJcIlxuICAgICAgPjwvcGRmLWZpbmQtYnV0dG9uPlxuICAgICAgPHBkZi1wYWdpbmctYXJlYVxuICAgICAgICBbc2hvd1BhZ2luZ0J1dHRvbnNdPVwic2hvd1BhZ2luZ0J1dHRvbnNcIlxuICAgICAgICBbc2hvd0ZpcnN0QW5kTGFzdFBhZ2VCdXR0b25zXT1cInNob3dGaXJzdEFuZExhc3RQYWdlQnV0dG9uc1wiXG4gICAgICAgIFtzaG93UHJldmlvdXNBbmROZXh0UGFnZUJ1dHRvbnNdPVwic2hvd1ByZXZpb3VzQW5kTmV4dFBhZ2VCdXR0b25zXCJcbiAgICAgICAgW3Nob3dQYWdlTnVtYmVyXT1cInNob3dQYWdlTnVtYmVyXCJcbiAgICAgICAgW3Nob3dQYWdlTGFiZWxdPVwic2hvd1BhZ2VMYWJlbFwiXG4gICAgICA+PC9wZGYtcGFnaW5nLWFyZWE+XG4gICAgPC9kaXY+XG4gICAgPHBkZi16b29tLXRvb2xiYXJcbiAgICAgIGlkPVwidG9vbGJhclZpZXdlck1pZGRsZUNvbnRhaW5lclwiXG4gICAgICBbc2hvd1pvb21CdXR0b25zXT1cInNob3dab29tQnV0dG9uc1wiXG4gICAgICBbc2hvd1pvb21Ecm9wZG93bl09XCJzaG93Wm9vbURyb3Bkb3duXCJcbiAgICAgIFt6b29tTGV2ZWxzXT1cInpvb21MZXZlbHNcIlxuICAgID48L3BkZi16b29tLXRvb2xiYXI+XG4gICAgPGRpdiBpZD1cInRvb2xiYXJWaWV3ZXJSaWdodFwiPlxuICAgICAgPHBkZi1kb2N1bWVudC1wcm9wZXJ0aWVzIFtzaG93XT1cInNob3dQcm9wZXJ0aWVzQnV0dG9uXCI+PC9wZGYtZG9jdW1lbnQtcHJvcGVydGllcz5cbiAgICAgIDxwZGYtbm8tc3ByZWFkXG4gICAgICAgIFtzY3JvbGxNb2RlXT1cInNjcm9sbE1vZGVcIlxuICAgICAgICBbc2hvd109XCJzaG93U3ByZWFkQnV0dG9uXCJcbiAgICAgID48L3BkZi1uby1zcHJlYWQ+XG4gICAgICA8cGRmLW9kZC1zcHJlYWRcbiAgICAgICAgW3Njcm9sbE1vZGVdPVwic2Nyb2xsTW9kZVwiXG4gICAgICAgIFtzaG93XT1cInNob3dTcHJlYWRCdXR0b25cIlxuICAgICAgPjwvcGRmLW9kZC1zcHJlYWQ+XG4gICAgICA8cGRmLWV2ZW4tc3ByZWFkXG4gICAgICAgIFtzY3JvbGxNb2RlXT1cInNjcm9sbE1vZGVcIlxuICAgICAgICBbc2hvd109XCJzaG93U3ByZWFkQnV0dG9uXCJcbiAgICAgID48L3BkZi1ldmVuLXNwcmVhZD5cbiAgICAgIDxwZGYtc2luZ2xlLXBhZ2UtbW9kZVxuICAgICAgICBbc2hvd109XCJzaG93U2luZ2xlUGFnZU1vZGVCdXR0b25cIlxuICAgICAgICBbcGFnZVZpZXdNb2RlXT1cInBhZ2VWaWV3TW9kZVwiXG4gICAgICAgIChwYWdlVmlld01vZGVDaGFuZ2UpPVwidXBkYXRlUGFnZVZpZXdNb2RlKCRldmVudClcIlxuICAgICAgICBbc2Nyb2xsTW9kZV09XCJzY3JvbGxNb2RlXCJcbiAgICAgID48L3BkZi1zaW5nbGUtcGFnZS1tb2RlPlxuICAgICAgPHBkZi12ZXJ0aWNhbC1zY3JvbGwtbW9kZVxuICAgICAgICBbc2hvd109XCJzaG93VmVydGljYWxTY3JvbGxCdXR0b25cIlxuICAgICAgICBbcGFnZVZpZXdNb2RlXT1cInBhZ2VWaWV3TW9kZVwiXG4gICAgICAgIChwYWdlVmlld01vZGVDaGFuZ2UpPVwidXBkYXRlUGFnZVZpZXdNb2RlKCRldmVudClcIlxuICAgICAgICBbc2Nyb2xsTW9kZV09XCJzY3JvbGxNb2RlXCJcbiAgICAgID48L3BkZi12ZXJ0aWNhbC1zY3JvbGwtbW9kZT5cbiAgICAgIDxwZGYtaG9yaXpvbnRhbC1zY3JvbGxcbiAgICAgICAgW3Nob3ddPVwic2hvd0hvcml6b250YWxTY3JvbGxCdXR0b25cIlxuICAgICAgICBbcGFnZVZpZXdNb2RlXT1cInBhZ2VWaWV3TW9kZVwiXG4gICAgICAgIChwYWdlVmlld01vZGVDaGFuZ2UpPVwidXBkYXRlUGFnZVZpZXdNb2RlKCRldmVudClcIlxuICAgICAgICBbc2Nyb2xsTW9kZV09XCJzY3JvbGxNb2RlXCJcbiAgICAgID48L3BkZi1ob3Jpem9udGFsLXNjcm9sbD5cbiAgICAgIDxwZGYtd3JhcHBlZC1zY3JvbGwtbW9kZVxuICAgICAgICBbc2hvd109XCJzaG93V3JhcHBlZFNjcm9sbEJ1dHRvblwiXG4gICAgICAgIFtwYWdlVmlld01vZGVdPVwicGFnZVZpZXdNb2RlXCJcbiAgICAgICAgKHBhZ2VWaWV3TW9kZUNoYW5nZSk9XCJ1cGRhdGVQYWdlVmlld01vZGUoJGV2ZW50KVwiXG4gICAgICAgIFtzY3JvbGxNb2RlXT1cInNjcm9sbE1vZGVcIlxuICAgICAgPjwvcGRmLXdyYXBwZWQtc2Nyb2xsLW1vZGU+XG4gICAgICA8cGRmLWluZmluaXRlLXNjcm9sbFxuICAgICAgICBbc2hvd109XCJzaG93SW5maW5pdGVTY3JvbGxCdXR0b25cIlxuICAgICAgICBbcGFnZVZpZXdNb2RlXT1cInBhZ2VWaWV3TW9kZVwiXG4gICAgICAgIChwYWdlVmlld01vZGVDaGFuZ2UpPVwidXBkYXRlUGFnZVZpZXdNb2RlKCRldmVudClcIlxuICAgICAgICBbc2Nyb2xsTW9kZV09XCJzY3JvbGxNb2RlXCJcbiAgICAgID48L3BkZi1pbmZpbml0ZS1zY3JvbGw+XG4gICAgICA8cGRmLWJvb2stbW9kZVxuICAgICAgICBbc2hvd109XCJzaG93Qm9va01vZGVCdXR0b25cIlxuICAgICAgICBbcGFnZVZpZXdNb2RlXT1cInBhZ2VWaWV3TW9kZVwiXG4gICAgICAgIChwYWdlVmlld01vZGVDaGFuZ2UpPVwidXBkYXRlUGFnZVZpZXdNb2RlKCRldmVudClcIlxuICAgICAgICBbc2Nyb2xsTW9kZV09XCJzY3JvbGxNb2RlXCJcbiAgICAgID48L3BkZi1ib29rLW1vZGU+XG4gICAgICA8cGRmLWhhbmQtdG9vbFxuICAgICAgICBbc2hvd0hhbmRUb29sQnV0dG9uXT1cInNob3dIYW5kVG9vbEJ1dHRvblwiXG4gICAgICAgIFtoYW5kVG9vbF09XCJoYW5kVG9vbFwiXG4gICAgICA+PC9wZGYtaGFuZC10b29sPlxuICAgICAgPHBkZi1zZWxlY3QtdG9vbFxuICAgICAgICBbc2hvd1NlbGVjdFRvb2xCdXR0b25dPVwic2hvd0hhbmRUb29sQnV0dG9uXCJcbiAgICAgICAgW2hhbmRUb29sXT1cImhhbmRUb29sXCJcbiAgICAgID48L3BkZi1zZWxlY3QtdG9vbD5cbiAgICAgIDxwZGYtcm90YXRlLXBhZ2UtY3cgW3Nob3dSb3RhdGVDd0J1dHRvbl09XCJzaG93Um90YXRlQ3dCdXR0b25cIj4gPC9wZGYtcm90YXRlLXBhZ2UtY3c+XG4gICAgICA8cGRmLXJvdGF0ZS1wYWdlLWNjdyBbc2hvd1JvdGF0ZUNjd0J1dHRvbl09XCJzaG93Um90YXRlQ2N3QnV0dG9uXCI+IDwvcGRmLXJvdGF0ZS1wYWdlLWNjdz5cbiAgICAgIDxwZGYtcHJlc2VudGF0aW9uLW1vZGUgW3Nob3dQcmVzZW50YXRpb25Nb2RlQnV0dG9uXT1cInNob3dQcmVzZW50YXRpb25Nb2RlQnV0dG9uXCI+PC9wZGYtcHJlc2VudGF0aW9uLW1vZGU+XG4gICAgICA8cGRmLW9wZW4tZmlsZSBbc2hvd09wZW5GaWxlQnV0dG9uXT1cInNob3dPcGVuRmlsZUJ1dHRvblwiPjwvcGRmLW9wZW4tZmlsZT5cbiAgICAgIDxwZGYtcHJpbnQgW3Nob3dQcmludEJ1dHRvbl09XCJzaG93UHJpbnRCdXR0b25cIj48L3BkZi1wcmludD5cbiAgICAgIDxwZGYtZG93bmxvYWQgW3Nob3dEb3dubG9hZEJ1dHRvbl09XCJzaG93RG93bmxvYWRCdXR0b25cIj48L3BkZi1kb3dubG9hZD5cblxuICAgICAgPCEtLSAjMjk0MyBtb2RpZmllZCBieSBuZ3gtZXh0ZW5kZWQtcGRmLXZpZXdlciAtLT5cbiAgICAgIDxwZGYtbW92ZS1kb3duIFtzaG93TW92ZURvd25CdXR0b25dPVwic2hvd01vdmVQYWdlQnV0dG9uXCI+PC9wZGYtbW92ZS1kb3duPlxuICAgICAgPHBkZi1tb3ZlLXVwIFtzaG93TW92ZVVwQnV0dG9uXT1cInNob3dNb3ZlUGFnZUJ1dHRvblwiPjwvcGRmLW1vdmUtdXA+XG5cbiAgICAgIDwhLS0gIzI5NDMgZW5kIG9mIG1vZGlmaWNhdGlvbiBieSBuZ3gtZXh0ZW5kZWQtcGRmLXZpZXdlciAtLT5cblxuICAgICAgPHBkZi1lZGl0b3JcbiAgICAgICAgW3Nob3dDb21tZW50RWRpdG9yXT1cInNob3dDb21tZW50RWRpdG9yXCJcbiAgICAgICAgW3Nob3dEcmF3RWRpdG9yXT1cInNob3dEcmF3RWRpdG9yXCJcbiAgICAgICAgW3Nob3dIaWdobGlnaHRFZGl0b3JdPVwic2hvd0hpZ2hsaWdodEVkaXRvclwiXG4gICAgICAgIFtzaG93VGV4dEVkaXRvcl09XCJzaG93VGV4dEVkaXRvclwiXG4gICAgICAgIFtzaG93U3RhbXBFZGl0b3JdPVwic2hvd1N0YW1wRWRpdG9yXCJcbiAgICAgICAgW3Nob3dTaWduYXR1cmVFZGl0b3JdPVwic2hvd1NpZ25hdHVyZUVkaXRvclwiXG4gICAgICA+PC9wZGYtZWRpdG9yPlxuICAgICAgPHBkZi10b2dnbGUtc2Vjb25kYXJ5LXRvb2xiYXIgW3Nob3dTZWNvbmRhcnlUb29sYmFyQnV0dG9uXT1cInNob3dTZWNvbmRhcnlUb29sYmFyQnV0dG9uXCI+IDwvcGRmLXRvZ2dsZS1zZWNvbmRhcnktdG9vbGJhcj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19